From bef73303236d83b9b2cea015807b4afcb6ebe042 Mon Sep 17 00:00:00 2001 From: "Q. T. Felix" <53819958+Quant-TheodoreFelix@users.noreply.github.com> Date: Thu, 7 May 2026 23:21:04 +0900 Subject: [PATCH 01/19] docs: map existing codebase Adds .planning/codebase/ with 7 GSD reference documents produced by parallel gsd-codebase-mapper agents (tech / arch / quality / concerns). --- .planning/codebase/ARCHITECTURE.md | 346 ++++++++++++++++++++ .planning/codebase/CONCERNS.md | 430 ++++++++++++++++++++++++ .planning/codebase/CONVENTIONS.md | 392 ++++++++++++++++++++++ .planning/codebase/INTEGRATIONS.md | 279 ++++++++++++++++ .planning/codebase/STACK.md | 203 ++++++++++++ .planning/codebase/STRUCTURE.md | 443 +++++++++++++++++++++++++ .planning/codebase/TESTING.md | 508 +++++++++++++++++++++++++++++ 7 files changed, 2601 insertions(+) create mode 100644 .planning/codebase/ARCHITECTURE.md create mode 100644 .planning/codebase/CONCERNS.md create mode 100644 .planning/codebase/CONVENTIONS.md create mode 100644 .planning/codebase/INTEGRATIONS.md create mode 100644 .planning/codebase/STACK.md create mode 100644 .planning/codebase/STRUCTURE.md create mode 100644 .planning/codebase/TESTING.md diff --git a/.planning/codebase/ARCHITECTURE.md b/.planning/codebase/ARCHITECTURE.md new file mode 100644 index 0000000..13b88e8 --- /dev/null +++ b/.planning/codebase/ARCHITECTURE.md @@ -0,0 +1,346 @@ +--- +last_mapped_commit: 7c6fc8c +analysis_date: 2026-05-07 +focus: architecture +--- + +# Architecture + +**Analysis Date:** 2026-05-07 + +## System Overview + +Lumen is a zero-trust, verifiable AI-agent framework that isolates agent logic in WASM sandboxes while enforcing security through capability-based access control, cryptographic provenance, and optional zero-knowledge proofs of tool routing decisions. + +```text +┌────────────────────────────────────────────────────────────────────┐ +│ Agent Runtime │ +│ `crates/lumen-agent/src/runtime.rs` │ +│ - step() pipeline: defense → infer → policy → tool → prove │ +└────────────┬────────────────────────────────┬─────────────────────┘ + │ │ + ┌────────▼──────────┐ ┌──────────▼─────────────┐ + │ Defense Engine │ │ Inference Engine │ + │ `lumen-defense/` │ │ `lumen-inference/` │ + │ - Aho-Corasick │ │ - DummyEngine │ + │ - RegexSet │ │ - CandleEngine (ONNX) │ + │ - Heuristics │ │ - LlamaCppEngine │ + └───────────────────┘ │ - ChannelEngine (TEE) │ + └──────────┬────────────┘ + │ + ┌────────────────────────────────────┼─────────────────────────┐ + │ │ │ + ┌────▼──────────────┐ ┌─────────────────▼────┐ ┌───────────────▼──┐ + │ Policy Engine │ │ Tool Registry │ │ Proving System │ + │ `lumen-capability`│ │ `lumen-agent/tool.rs`│ │ `lumen-zkml/` │ + │ - Verify Cap │ │ - Tool handlers │ │ - MockProver │ + │ - Replay defense │ │ - JSON args │ │ - ezkl stub │ + │ - Audit logging │ │ │ │ - BLAKE3 commit │ + └───────────────────┘ └──────────────────────┘ └──────────────────┘ +``` + +## Component Responsibilities + +| Component | Responsibility | File | +|-----------|----------------|------| +| **AgentRuntime** | Orchestrates defense→infer→policy→tool→prove pipeline | `crates/lumen-agent/src/runtime.rs` | +| **DefenseEngine** | Real-time prompt injection / jailbreak detection | `crates/lumen-defense/src/engine.rs` | +| **InferenceEngine** | Backend-agnostic completion generation (trait) | `crates/lumen-inference/src/backend.rs` | +| **PolicyEngine** | Capability verification, replay prevention, audit logging | `crates/lumen-capability/src/policy.rs` | +| **Sandbox** | WASM isolation via wasmtime with deterministic config | `crates/lumen-sandbox/src/runner.rs` | +| **ProvingSystem** | Abstract proof generation (mock BLAKE3 commitment) | `crates/lumen-zkml/src/mock.rs` | +| **SecureChannel** | Typed async message transport (inproc / encrypted / attested) | `crates/lumen-channel/src/lib.rs` | +| **ModelManifest** | Provenance: BLAKE3 + Ed25519 signature verification | `crates/lumen-provenance/src/manifest.rs` | +| **Orchestrator** | Multi-agent supervisor with capability-gated inter-agent messaging | `crates/lumen-orchestrator/src/supervisor.rs` | + +## Pattern Overview + +**Overall:** Multi-crate workspace with **strict layering** via capability-based security and WASM sandboxing. Core pattern: + +1. **Entry point** → Agent step invoked by host (CLI, SDK) +2. **Defense filter** → Prompt analyzed for jailbreak patterns +3. **Inference** → LLM or reasoning engine produces completion + optional tool call +4. **Policy gate** → Capability checked before tool execution +5. **Tool exec** → WASM agent calls host tool via explicit capability +6. **ZK bind** → Routing decision committed to BLAKE3 (mock) or ZK proof +7. **Audit trail** → All decisions logged with deterministic field names + +**Security boundary:** Host (LLM inference, TEE trust) ↔ WASM guest (agent logic) = **capability-only**. + +## Layers + +**Core Primitives:** +- Purpose: Lightweight, zero-IO types used by all crates +- Location: `crates/lumen-core/src/` +- Contains: `AgentId`, `CapabilityId`, `Blake3Hash`, `Ed25519` wrappers, `Timestamp`, error types +- Depends on: `elib-k0-nt/*` crypto (BLAKE3, ED25519, X25519, AES, RNG) +- Used by: All other crates + +**Fixed-Point Arithmetic:** +- Purpose: Deterministic quantization (no floating-point nondeterminism for ZK) +- Location: `crates/lumen-fixed/src/` +- Contains: `Q16_16`, `Q8_24` fixed-point types, quantization utilities +- Depends on: `lumen-core` +- Used by: `lumen-inference` (weight quantization), `lumen-zkml` (deterministic arithmetic) + +**Cryptography & Capabilities:** +- Purpose: Signed capability tokens, policy enforcement, audit +- Location: `crates/lumen-capability/src/` +- Contains: `Capability` (signed token), `PolicyEngine` (verify + replay defense), `Resource` (file / net / tool / inference) +- Depends on: `lumen-core` +- Used by: `lumen-sandbox`, `lumen-orchestrator`, `lumen-agent` + +**Secure Channels:** +- Purpose: Typed message transport between sandbox and host (or inter-agent) +- Location: `crates/lumen-channel/src/` +- Contains: `SecureChannel` trait, `InProcChannel`, `AttestedChannel`, `EncryptedChannel` (feature-gated), `TeeChannel` (stub) +- Depends on: `lumen-core` +- Used by: `lumen-sandbox`, `lumen-orchestrator`, `lumen-inference::ChannelEngine` + +**Defense Engine:** +- Purpose: Sub-µs prompt-injection / jailbreak detection +- Location: `crates/lumen-defense/src/` +- Contains: `DefenseEngine` (Aho-Corasick lexicon + RegexSet + heuristics), `Verdict` +- Depends on: `lumen-core`, `aho-corasick`, `regex` +- Used by: `lumen-agent::runtime` + +**Model Provenance:** +- Purpose: BLAKE3 hash verification, signature validation, SBOM emission +- Location: `crates/lumen-provenance/src/` +- Contains: `ModelManifest`, `verify_model()`, ONNX/Safetensors/GGUF sniffing +- Depends on: `lumen-core`, `safetensors` +- Used by: `lumen-inference::loader`, CLI commands + +**Proving System:** +- Purpose: Pluggable ZK backend abstraction (mock BLAKE3, ezkl stub) +- Location: `crates/lumen-zkml/src/` +- Contains: `ProvingSystem` trait, `MockCommitmentProver` (BLAKE3), `Verification` enum +- Depends on: `lumen-core` +- Used by: `lumen-agent::runtime` + +**Inference Engine:** +- Purpose: Backend-agnostic completion generation with streaming support +- Location: `crates/lumen-inference/src/` +- Contains: `InferenceEngine` trait, `DummyEngine` (deterministic), `CandleEngine` (ONNX), `ChannelEngine` (TEE forward) +- Depends on: `lumen-core`, `lumen-provenance`, `lumen-fixed` +- Optional deps: `candle-*` (feature: `candle`) +- Used by: `lumen-agent::runtime` + +**WASM Sandbox:** +- Purpose: Capability-gated wasmtime isolation for agent code +- Location: `crates/lumen-sandbox/src/` +- Contains: `Sandbox`, `SandboxConfig::deterministic_engine()`, `HostState`, capability-gated imports (`lumen_log`, `lumen_call_tool`) +- Depends on: `lumen-core`, `lumen-capability`, `wasmtime` +- Used by: Agent runtime for untrusted WASM execution + +**Agent Runtime:** +- Purpose: Orchestrates full step pipeline (defense → infer → policy → tool → prove) +- Location: `crates/lumen-agent/src/` +- Contains: `AgentRuntime`, `AgentRuntimeBuilder`, `StepResult`, `Tool` / `ToolRegistry`, routing decision types +- Depends on: `lumen-core`, `lumen-defense`, `lumen-inference`, `lumen-capability`, `lumen-zkml` +- Used by: `lumen-orchestrator`, CLI commands, SDK agents + +**Orchestrator (Multi-agent):** +- Purpose: Supervisor for isolated multi-agent systems with capability-gated inter-agent messaging +- Location: `crates/lumen-orchestrator/src/` +- Contains: `Orchestrator`, `AgentHandle`, `AgentInbox` (bounded mpsc), `InterAgentMessage` +- Depends on: `lumen-core`, `lumen-agent`, `lumen-capability`, `lumen-channel` +- Used by: Multi-agent deployments + +**SDK & Macros:** +- Purpose: WASM-targeted SDK for agent code (`no_std` compatible, `#[lumen_agent]` proc-macro) +- Location: `crates/lumen-sdk/src/`, `crates/lumen-sdk-macros/src/` +- Contains: `log()`, `call_tool()` host imports, `LogLevel`, `ToolError` +- Depends on: None (SDK is `no_std`) +- Used by: WASM agents compiled to `wasm32-unknown-unknown` + +**Attestation (TEE):** +- Purpose: Parse and format-verify Intel TDX and AMD SEV-SNP attestation documents +- Location: `crates/lumen-attestation/src/` +- Contains: `AttestationDoc`, `TdxQuote`, `SevSnpReport`, format parsing (no crypto verification yet) +- Depends on: `lumen-core` +- Used by: TEE channel backends (future), host trust decisions + +**On-Chain Verifiers:** +- Purpose: Emit contract scaffolds (EVM Solidity + Mina o1js) for on-chain proof verification +- Location: `crates/lumen-onchain/src/` +- Contains: `emit_artifacts()`, `deploy_evm()`, routing verifier contracts +- Depends on: `lumen-core` +- Used by: CLI verifier commands + +**CLI:** +- Purpose: User-facing command-line interface (init, verify-model, sbom, defend, prove, run, verifier) +- Location: `crates/lumen-cli/src/` +- Contains: Subcommands, policy file loading, end-to-end agent execution +- Depends on: All policy/inference/zkml/provenance crates +- Used by: `lumen` binary + +## Data Flow + +### Primary Request Path (Agent Step) + +1. **Input:** Host calls `AgentRuntime::step(prompt: &str)` (`crates/lumen-agent/src/runtime.rs:99`) +2. **Defense:** `DefenseEngine::analyze(prompt)` → `Verdict` (block or pass) (`crates/lumen-defense/src/engine.rs`) +3. **Inference:** `InferenceEngine::complete(prompt, params)` → `Completion { text, tool_call }` (`crates/lumen-inference/src/backend.rs`) +4. **Policy Check:** For each `tool_call`, `PolicyEngine::check(cap, agent, Action::CallTool(tool_id), now)` verifies capability (`crates/lumen-capability/src/policy.rs:61`) +5. **Tool Execution:** If policy passes, invoke tool via `ToolHandler::call(args_json)` → JSON result (`crates/lumen-agent/src/tool.rs`) +6. **ZK Bind:** `RoutingDecision` (public inputs + witness) created (`crates/lumen-agent/src/route.rs`), passed to `ProvingSystem::prove()` → `MockProof` (`crates/lumen-zkml/src/mock.rs`) +7. **Verification:** `ProvingSystem::verify(vk, public, proof)` → `Verification::CommitmentOnly` or `Invalid` (mock never `ZkVerified`) (`crates/lumen-zkml/src/verification.rs`) +8. **Output:** `StepResult { completion, tool_output, routing, proof, verification, defense_verdict }` (`crates/lumen-agent/src/runtime.rs:22`) + +### Streaming Path + +1. **Input:** Host calls `AgentRuntime::stream_step(prompt: &str)` +2. **Defense:** Same as step path +3. **Stream Init:** `StreamingEngine::stream_complete(prompt, params)` → `TokenStream` yields `Token` events +4. **Tee Stream:** Accumulate tokens to full `Completion`, then proceed as step path +5. **Event Output:** Stream yields `StreamEvent::Token(token)` in real-time, finally `StreamEvent::Complete(StepResult)` + +### WASM Sandbox Execution + +1. **Guest:** WASM agent calls `lumen_call_tool(tool_ptr, tool_len, args_ptr, args_len)` (imported from host) +2. **Host Memcpy:** `lumen_sandbox::imports::lumen_call_tool()` copies `tool_id` and `args_json` out of guest linear memory (`crates/lumen-sandbox/src/imports.rs`) +3. **Policy Gate:** `HostState::policy.check(cap, agent, Action::CallTool(tool_id), now)` blocks if capability missing +4. **Tool Lookup:** `ToolRegistry::call(tool_id, args_json)` executes registered handler +5. **Result Buffer:** Result (or error code) placed in shared memory; guest reads via future `lumen_recv` import (v0.4) + +### Multi-Agent Inter-Communication + +1. **Send:** Agent A calls `Orchestrator::send_agent_message(recipient, msg)` +2. **Policy Check:** `PolicyEngine::check(cap, agent, Action::SendAgentMessage(recipient_id), now)` +3. **Routing:** Message queued in `AgentInbox` (bounded mpsc) of agent B +4. **Receive:** Agent B polls `AgentInbox::recv()` → typed message via `SecureChannel::recv()` + +**State Management:** +- Each agent in orchestrator owns **separate tokio task** with no shared memory access +- `Orchestrator` maintains agent registry (`HashMap`) and inbox map +- All inter-agent data passed through `SecureChannel` (postcard-encoded) +- No global mutable state (enforced by Rust ownership model) + +## Key Abstractions + +**InferenceEngine:** +- Purpose: Pluggable completion backend selection +- Examples: `DummyEngine` (deterministic test), `CandleEngine` (ONNX routing), `ChannelEngine` (TEE forward) +- Pattern: Trait object with builder factory (`backend::create_engine()`) selects concrete type at runtime +- File: `crates/lumen-inference/src/backend.rs` + +**ProvingSystem:** +- Purpose: Pluggable ZK proof backend (mock BLAKE3 or ezkl) +- Pattern: Generic trait with associated types (`Witness`, `PublicInputs`, `Proof`, `Vk`) +- Enables boxed trait objects in hot path without backend knowledge +- File: `crates/lumen-zkml/src/lib.rs:48` + +**SecureChannel:** +- Purpose: Abstract typed message transport (inproc, encrypted, attested, TEE) +- Pattern: Trait with `send_bytes()` / `recv_bytes()`, plus convenience `send()` / `recv()` +- Implementations hidden behind feature flags (e.g., `crypto-channel` for encrypted) +- File: `crates/lumen-channel/src/lib.rs:38` + +**BackendConfig:** +- Purpose: Runtime selection of inference backend + sampling parameters +- Pattern: Serializable enum with per-backend config fields +- Used by CLI to instantiate correct `InferenceEngine` type +- File: `crates/lumen-inference/src/backend.rs` + +**Capability:** +- Purpose: Unforgeable signed token binding audience, resource, nonce, expiry, and issuer signature +- Pattern: Serializable struct with Ed25519 signature; `PolicyEngine::check()` validates before action +- Design: No implicit permissions — every meaningful action requires explicit capability +- File: `crates/lumen-capability/src/capability.rs` + +**RoutingDecision:** +- Purpose: Record of tool selection with public inputs (prompt hash, policy hash, tool ID) and witness (args hash, defense corpus) +- Pattern: Opaque witness never leaves proving system in true ZK; mock prover exposes it for testing +- Enables on-chain re-verification of tool routing logic +- File: `crates/lumen-agent/src/route.rs:39` + +## Entry Points + +**CLI Binary:** +- Location: `crates/lumen-cli/src/main.rs` +- Triggers: `lumen init|verify-model|sbom|defend|prove|run|verifier` +- Responsibilities: Policy loading, model verification, defense testing, ZK proof demo, full agent step execution, contract generation + +**SDK Agent (WASM):** +- Location: `crates/lumen-sdk/src/lib.rs` +- Triggers: Agent code compiled to `wasm32-unknown-unknown`, linked against SDK +- Responsibilities: Expose `log()` and `call_tool()` wrappers that marshal arguments to host imports +- Pattern: Optional `#[lumen_agent]` proc-macro generates `_start()` entry point + +**Agent Runtime API (Library):** +- Location: `crates/lumen-agent/src/runtime.rs:99` +- Triggers: `AgentRuntime::step(prompt)` or `AgentRuntime::stream_step(prompt)` +- Responsibilities: Execute full defense→infer→policy→tool→prove pipeline, return `StepResult` + +## Architectural Constraints + +- **Threading:** Tokio async runtime; single-threaded or multi-threaded depending on `tokio` feature setup. Agent tasks isolated per tokio task, no shared memory. +- **Global state:** Orchestrator maintains shared `Arc`, `Arc`, agent registry. No module-level singletons beyond these. +- **Circular imports:** None detected. Dependency graph is DAG: `lumen-core` ← all others; `lumen-inference` ← `lumen-agent`; `lumen-zkml` ← `lumen-agent`. +- **Determinism:** WASM engine config disables SIMD, threads, relaxed ops, forces Cranelift NaN canonicalization. Fixed-point arithmetic enforced for ZK-bound code. RNG seed pinned in tests. +- **Memory isolation:** WASM linear memory separate from host; capability-gated imports prevent host data leak. +- **Namespace collision:** Feature flags (`candle`, `llama-cpp`, `crypto-channel`, `ezkl`) ensure only enabled code is compiled. + +## Anti-Patterns + +### Implicit Permissions + +**What happens:** Code assumes a tool can be called without checking `PolicyEngine` first. + +**Why it's wrong:** Enables privilege escalation in multi-agent deployments. A malicious tool could execute without capability checks, bypassing audit. + +**Do this instead:** Always wrap tool invocation in `policy.check(cap, agent, Action::CallTool(tool_id), now)` before calling `ToolHandler::call()`. See `crates/lumen-agent/src/runtime.rs:111` for the correct pattern. + +### Floating-Point in Proof-Bound Code + +**What happens:** LLM weight quantization or routing scores computed with `f32` operations. + +**Why it's wrong:** Floating-point is nondeterministic across CPU architectures (denormals, FMA contraction, x87 extended precision). ZK proof fails reproducibility. + +**Do this instead:** Use `lumen-fixed::Q16_16` or `Q8_24` for all computation in proof paths. Calibration (f32↔Qn_m conversion) permitted only offline, behind the `calibration` feature flag disabled in ZK-bound binaries. See `crates/lumen-fixed/src/lib.rs`. + +### Direct WASM Host Function Calls + +**What happens:** Agent WASM code calls `lumen_log` or `lumen_call_tool` directly instead of via SDK wrapper. + +**Why it's wrong:** Raw FFI pointers bypass SDK safety checks (linear memory bounds validation, panic handling). + +**Do this instead:** Use `lumen_sdk::log(level, msg)` and `lumen_sdk::call_tool(tool_id, args_json)`. These handle pointer/length marshalling safely. See `crates/lumen-sdk/src/lib.rs:81`. + +### Unbounded Nonce Cache + +**What happens:** `PolicyEngine::seen_nonces` allowed to grow without limit, consuming unbounded memory under reuse attacks. + +**Why it's wrong:** Attacker repeatedly issues capabilities with unique nonces, exhausting host memory. + +**Do this instead:** Cache enforces `MAX_NONCES = 65_536` limit with LRU eviction. See `crates/lumen-capability/src/policy.rs:35`. + +## Error Handling + +**Strategy:** Result-based with `lumen_core::Error` enum. No panic-on-error; all failable operations return `Result`. + +**Patterns:** +- **Defense block:** `Error::Defense(reason)` stops execution immediately, returns blocked verdict to caller +- **Policy denial:** `Error::Capability(reason)` logged to audit trail, blocks action +- **Inference failure:** `Error::Inference(reason)` returned; step fails (no tool call attempted) +- **Proof failure:** `Error::Proving(reason)` returned; step result includes `Verification::Invalid` +- **Provenance mismatch:** `Error::Provenance(reason)` halts model load; invalid model cannot reach inference engine + +## Cross-Cutting Concerns + +**Logging:** Via `tracing` crate with `tracing-subscriber` in CLI. All audit events use deterministic field names for external SIEM ingestion. See `crates/lumen-capability/src/audit.rs`. + +**Validation:** +- **Capabilities:** `PolicyEngine::check()` validates signature, replay, audience, expiry, resource matching +- **Models:** `ModelManifest::verify_model()` checks BLAKE3 hash and Ed25519 signature before load +- **Attestation:** `AttestationDoc::parse()` validates wire format (v0.4 will add crypto verification) + +**Authentication:** +- **Agent identity:** `AgentId` (16-byte random) identifies sender; no human username involved +- **Capability issuer:** `VerifyingKey` (Ed25519 public) identifies issuer; must be in `PolicyEngine::trusted` list +- **Policy enforcement:** Per-action capability requirement; no role-based access control (purely capability-based) + +--- + +*Architecture analysis: 2026-05-07* diff --git a/.planning/codebase/CONCERNS.md b/.planning/codebase/CONCERNS.md new file mode 100644 index 0000000..cb16811 --- /dev/null +++ b/.planning/codebase/CONCERNS.md @@ -0,0 +1,430 @@ +--- +analysis_date: 2026-05-07 +focus: concerns +last_mapped_commit: dfba311 +--- + +# Codebase Concerns + +**Analysis Date:** 2026-05-07 + +## Air-Gap Migration Debt (v0.4→v0.5) + +### Stale Documentation (PRACTICE_LLM.md / PRACTICE_LLM_EN.md) + +**Issue:** Documentation still references removed feature `candle-llm` and deleted type `CandleLlmEngine`. + +**Files affected:** +- `PRACTICE_LLM.md` (~660 lines) — lines 31–41, 141, 171, 277–281, 341, 356, 419, 503–507, 564, 590, 614 mention `candle-llm` feature, `CandleLlmEngine::from_gguf()`, and GGUF-based text generation workflow +- `PRACTICE_LLM_EN.md` (~660 lines) — English translation with identical references + +**Impact:** Users following these guides will encounter broken imports and missing types. Builds with `features = ["candle-llm"]` will fail. + +**Root cause:** kernel-comp.md (lines 99–106) documents removal of `candle-transformers` + `tokenizers` for air-gap compliance, but docs were not updated. Feature gate was removed but documentation remains. + +**Fix approach:** +1. Remove or relocate PRACTICE_LLM*.md to a `docs/deprecated/` directory with a deprecation notice. +2. Create new guide `PRACTICE_ONNX.md` for `CandleEngine` (ONNX routing only). +3. Create future `PRACTICE_LLAMA_CPP.md` once `llama-cpp-2` backend is implemented (v0.5). + +**Priority:** High — blocks users from following written examples. + +--- + +### Stub Inference Backends (Not Yet Implemented) + +#### LlamaCppEngine — v0.5 milestone + +**Issue:** `lumen-inference/src/llama_cpp.rs` is a stub returning `Error::NotImplemented`. + +**Files:** +- `crates/lumen-inference/src/llama_cpp.rs:54–56` — `InferenceEngine::complete()` returns error +- `crates/lumen-inference/src/llama_cpp.rs:67–69` — `StreamingEngine::stream_complete()` returns error + +**Symptoms:** +- Code compiles with `--features llama-cpp` but runtime fails with "llama-cpp-2 연동이 v0.5 에서 구현됩니다" +- No actual llama.cpp bindings present + +**Workaround:** Disable `llama-cpp` feature; use `CandleEngine` (ONNX routing) until v0.5. + +**Fix approach:** Implement `llama-cpp-2` crate bindings per kernel-comp.md lines 272–276. + +**Priority:** Medium — v0.5 milestone task, documented. + +--- + +#### TeeChannel (Host-TEE Secure Channel) — v0.3 stub + +**Issue:** `lumen-channel/src/tee.rs` implements `SecureChannel` trait but returns `Error::NotImplemented` for all operations. + +**Files:** +- `crates/lumen-channel/src/tee.rs:36` — `send_bytes()` stub +- `crates/lumen-channel/src/tee.rs:40` — `recv_bytes()` stub + +**Symptoms:** +- Any agent step using GPU inference via TEE channel will fail +- Current inference pipeline cannot forward GPU inference to hardware-accelerated TEE + +**Impact:** No E2E Host-WASM-TEE integration. LLM inference runs only in WASM sandbox (CPU only) or via `ChannelEngine` forward (not yet wired). + +**Workaround:** Use `CandleEngine` (CPU-bound ONNX routing) for tool selection; do not attempt TEE inference yet. + +**Fix approach:** +1. Implement attested TLS-like handshake over postcard frames (kernel-comp.md lines 5–6 envision attested handshake, but not yet implemented). +2. Wire `lumen-attestation` TDX quote validation into handshake (see `/crates/lumen-attestation/src/tdx.rs:19–25` — PCK chain validation deferred to v0.4). +3. Define `SecureChannel` framing protocol. + +**Priority:** Medium-High — blocks TEE + WASM split-execution model, a core security goal. + +--- + +#### EzklProver (ZK Backend) — v0.3 stub + +**Issue:** `lumen-zkml/src/ezkl.rs` is a feature-gated stub without real ezkl implementation. + +**Files:** +- `crates/lumen-zkml/src/ezkl.rs:31` — `setup()` returns `Error::NotImplemented("ezkl::setup")` +- `crates/lumen-zkml/src/ezkl.rs:39` — `prove()` stub +- `crates/lumen-zkml/src/ezkl.rs:47` — `verify()` stub + +**Symptoms:** +- `--features ezkl` compiles but calls fail at runtime +- No actual zero-knowledge proofs; only mock (BLAKE3 commitment) verification available + +**Impact:** ZK proof path is not wired. Agent routing decisions are *not* zero-knowledge; mock prover only commits to witness (CommitmentOnly verification). Per Cargo.toml line 100–102, halo2 was removed and no succinct ZK backend replaces it. + +**Current state:** Mock prover uses BLAKE3-based commitment (cheap, deterministic) instead of actual ZK. Per `lumen-agent/src/runtime.rs:31–32`, verification is always `CommitmentOnly` or `Invalid`, never `ZkVerified`. + +**Fix approach:** kernel-comp.md (line 246) defers to SP1 / RISC Zero selection at v0.4 milestone review. No action needed until then. + +**Priority:** Low — deferred by design; mock prover sufficient for audit trail. + +--- + +## External System Dependencies (Require Vendor Bundling) + +### Candle Build Dependency: Protocol Buffers (protoc) + +**Issue:** `candle-core` feature requires `protoc` (Protocol Buffers compiler) at build time. + +**Files:** `Cargo.toml:96` — `candle-core = { version = "0.10", default-features = false }` + +**Symptoms:** +- Building with `--features candle` fails if `protoc` is not in `$PATH` +- Air-gap environment: no network to download protoc; must be pre-bundled + +**Workaround:** Pre-install `protoc` (via `apt`, `brew`, or direct download) before building in air-gap. + +**Fix approach:** +- kernel-comp.md (line 277) recommends source vendoring. Add vendoring instructions to build docs. +- Consider alternative: `llama-cpp-2` backend does not require protoc (only cmake + llama.cpp C++ build). + +**Priority:** Medium — affects reproducible air-gap builds; documented in kernel-comp.md but not yet automated. + +--- + +### Llama.cpp Build Dependency: cmake + llama.cpp library + +**Issue:** Future `llama-cpp-2` feature will require cmake and precompiled llama.cpp library. + +**Files:** `crates/lumen-inference/src/llama_cpp.rs` (stub; no deps yet) + +**Current state:** Not yet a blocker (stub stage), but will be in v0.5. + +**Workaround:** Pre-build llama.cpp library for target OS/architecture. + +**Priority:** Low — future concern (v0.5 milestone). + +--- + +## In-House Cryptography Dependencies (Non-Portable) + +### Workspace Path Dependencies: elib-k0-nt Modules + +**Issue:** Workspace imports cryptographic functions from sibling `../elib-k0-nt/*` path dependencies. + +**Files:** +- `Cargo.toml:55–61` — workspace dependencies declared: + - `elib-blake` (BLAKE3 KDF + hashing) + - `elib-ed25519` (Ed25519 signing/verification) + - `elib-x25519` (X25519 ECDH) + - `elib-aes` (AES-256-GCM) + - `elib-rng` (Hash-DRBG-SHA256) + - `elib-constant-time` (constant-time comparison) + - `elib-zeroize` (memory zeroization) + +**Impact:** +- **Downstream consumers cannot use Lumen as a library** — crates importing Lumen must also have `../elib-k0-nt/` in their workspace. +- Not published on crates.io (path-only). +- Violates Rust crate ecosystem conventions. + +**Root cause:** Intentional per kernel-comp.md (air-gap strategy). elib-k0-nt replaces standard crates (blake3, ed25519-dalek, x25519-dalek, aes-gcm, rand) for FIPS 140-3 compliance path. + +**Fix approach (v1.0 milestone):** +1. Publish elib-k0-nt modules to crates.io with stable semver. +2. Switch path dependencies to `crates.io` versions with version bounds. +3. Implement FIPS 140-3 audit trail (currently deferred per CLAUDE.md line 28). + +**Priority:** Low — accepted trade-off for air-gap compliance; v1.0 concern. + +--- + +## Determinism Risk: Floating-Point in Candle Path + +### F32 Inference Non-Determinism + +**Issue:** `CandleEngine` uses f32 operations which may differ across hardware/compiler. + +**Files:** +- `crates/lumen-inference/src/candle.rs:6` — documents f32 concern +- `crates/lumen-inference/src/candle.rs:12` — "candle의 f32 연산은 미세하게 비결정적일 수 있으므로" +- `crates/lumen-inference/src/candle.rs:66–77` — `encode_prompt()` converts BLAKE3 hash to f32 vector +- `crates/lumen-inference/src/candle.rs:99–104` — inference output to f32, then argmax + +**Impact:** +- ZK proofs are NOT bound to Candle's floating-point outputs (by design). +- Per runtime.rs:16, proofs bind only to "integer routing index" (argmax result), not float values. +- This breaks reproducibility if Candle's f32 argmax differs between runs. + +**Current mitigation:** +- `lumen-fixed/src/q16_16.rs` (233 lines) implements fixed-point arithmetic. +- Per candle.rs:14–17, ZK witnesses use integer decision only. + +**Residual risk:** If two runs produce different argmax due to f32 rounding, the tool routing changes without proof notification. No automated test yet checks cross-platform f32 determinism. + +**Fix approach:** +- Add CI test comparing Candle f32 outputs across x86-64 and ARM64. +- Migrate Candle inference to fixed-point engine (`lumen-fixed`) for tooling (v0.5 milestone). + +**Priority:** Medium — affects audit trail integrity; partially mitigated by integer binding. + +--- + +## Missing TEE Attestation Chain Integration + +### Incomplete Policy Enforcement + TEE Attestation Wiring + +**Issue:** `lumen-agent/src/runtime.rs` does not enforce TEE attestation policy in agent step. + +**Files:** +- `crates/lumen-agent/src/runtime.rs:98–112` — `step()` orchestrates defense → inference → policy → tool → prove, but no attestation checkpoint +- `crates/lumen-attestation/src/tdx.rs:19–25` — TDX Quote v4 parser exists, but X.509 chain + signature verification deferred to v0.4 +- `crates/lumen-channel/src/tee.rs:1–7` — TeeChannel stub; no actual attested handshake + +**Symptoms:** +- TEE hardware attestation is parsed but not enforced. +- No check that GPU inference host is inside a TEE with valid quote. +- Agent step proceeds even if TEE attestation fails. + +**Impact:** E2E zero-trust guarantee is incomplete. WASM sandbox is isolated, but GPU inference (TEE) can silently fail attestation and agent does not know. + +**Fix approach:** +1. Implement X.509 PCK chain verification in TDX parser (kernel-comp.md lines 25–26 flag as v0.4 work). +2. Wire quote validation into `TeeChannel::new()` handshake. +3. Fail agent step if TEE attestation invalid. + +**Priority:** High — core security property (zero-trust) is not fully enforced. + +--- + +## Secret Scanning & SBOM Automation + +### No Automated Secret Detection + +**Issue:** No pre-commit secret scanner (e.g., git-secrets, truffleHog) in CI/CD. + +**Risk:** Credentials (AWS keys, HF tokens, PCS API keys) may be committed to repo. + +**Current state:** Manual review only. No automated detection. + +**Fix approach:** +- Add `git-secrets` or `truffleHog` to CI pipeline. +- Run `cargo deny` for crate advisories (already done per commit eed4194). + +**Priority:** Medium — security hygiene. + +--- + +### SBOM Generation Not Automated + +**Issue:** CLAUDE.md line 20 lists "SBOM를 강제 생성" but no automation present. + +**Files:** Cargo.toml (workspace), no `cyclonedx` or `cargo-sbom` integration + +**Current state:** Manual `cargo tree` only. + +**Fix approach:** +- Add `cargo cyclonedx` or `cargo-sbom` to CI. +- Generate CycloneDX / SPDX SBOM on every release. + +**Priority:** Medium — compliance (v1.0 milestone goal). + +--- + +## Performance Concerns + +### WASM Sandbox Cold-Start Not Benchmarked + +**Issue:** No benchmark for wasmtime instance creation + compilation time. + +**Files:** No benchmark files found (`crates/*/benches/` empty) + +**Symptoms:** +- Unknown latency for agent step startup. +- Unclear if fuel-based epoch enforcement adds overhead. +- Can't track regression. + +**Current state:** DummyEngine used in tests (instant completion); no real inference + WASM overhead measured. + +**Fix approach:** +- Add criterion benchmark: `Agent step (end-to-end, ONNX routing via Candle)`. +- Measure wasmtime instantiation overhead separately. +- Set performance gates in CI. + +**Priority:** Medium — needed for production SLA planning. + +--- + +### Fixed-Point Pipeline Not Enforced + +**Issue:** `lumen-fixed/src/q16_16.rs` exists but not integrated into Candle inference path. + +**Files:** `crates/lumen-fixed/src/q16_16.rs` (233 lines) — standalone fixed-point type, no usage in lumen-inference or lumen-agent + +**Impact:** Floating-point non-determinism risk (above) persists because fixed-point is not applied. + +**Current state:** Placeholder for future quantization path. + +**Fix approach:** Integrate fixed-point routing into CandleEngine (v0.5 work). + +**Priority:** Medium — depends on llama-cpp and determinism testing. + +--- + +## Workspace Feature Fragmentation + +### Candle Feature Scattered Across Codebase + +**Issue:** `candle` feature activates candle-core + candle-onnx, but feature state unclear in dependent crates. + +**Files:** +- `Cargo.toml:96–97` — workspace-level optional deps +- `crates/lumen-inference/Cargo.toml:21` — `candle` feature gate + +**Risk:** Accidental feature activation in transitive dependencies. No enforcement that downstream crates properly gate Candle code. + +**Fix approach:** +- Document feature hygiene in CONTRIBUTING.md. +- Add CI check: `cargo build --no-default-features --features candle` to verify isolated build. + +**Priority:** Low — feature flags are documented; low risk. + +--- + +## Code Hygiene Issues + +### Dead Code Markers Without Cleanup + +**Issue:** `#[allow(dead_code)]` on struct fields in stub implementations. + +**Files:** +- `crates/lumen-inference/src/llama_cpp.rs:28–34` — three `#[allow(dead_code)]` on LlamaCppEngine fields +- `crates/lumen-capability/src/policy.rs:134` — `#[allow(dead_code)]` on policy field + +**Symptoms:** Suppresses legitimate warnings during stub phase, but masks real unused code when stubs are removed. + +**Fix approach:** +- Remove `#[allow]` when stubs are implemented. +- Use `#[cfg(feature = "...")]` instead of `#[allow]` for conditional code. + +**Priority:** Low — cleanup task; low risk. + +--- + +### Defense Pattern Library Needs Tuning + +**Issue:** `lumen-defense/src/lexicon.rs:11` flags TODO. + +**Files:** `crates/lumen-defense/src/lexicon.rs:11–46` + +**Text:** +``` +TODO: 구글링 해보니 이 부분에 대해 토큰 사용량과 적절한 패턴의 밸런스를 +중시해야 한다고 하네요. 검토 필요 있음. +``` + +**Issue:** Jailbreak lexicon is conservative (46 patterns) but may need expansion or refinement based on token budget vs false-positive rate. + +**Current patterns:** "ignore previous instructions", "dan mode", "developer mode", etc. + +**Impact:** May miss novel jailbreak attempts; false positives block legitimate prompts. + +**Fix approach:** +- Add tuning parameter (toxicity threshold) to `LexiconEngine`. +- Expand pattern set post-deployment based on telemetry. +- Implement allowlist for safe keywords (e.g., "developer" in code context). + +**Priority:** Low — current lexicon is conservative (safe); tuning is a v0.5+ task. + +--- + +## Dependency Monitoring + +### Wasmtime Security Advisory Backlog + +**Issue:** `Cargo.toml:75` pins wasmtime v44, which has had multiple security fixes. + +**Current version:** v44 (comment: "최신 line. RUSTSEC 다수 advisory (fd_renumber / wasi:http fields / ...)") + +**Risk:** +- New advisories may emerge after v44 release. +- No automated tracking (dependabot not visible in config). + +**Fix approach:** +- Enable GitHub Dependabot for Cargo.lock updates. +- Monitor RUSTSEC for wasmtime advisories. +- Establish upgrade cadence (quarterly wasmtime bump). + +**Priority:** Medium — security-critical dependency. + +--- + +## Documentation Coverage + +### Architectural Decision Records (ADRs) Missing + +**Issue:** No ADR for kernel-comp.md migration decisions. + +**Files:** `kernel-comp.md` (15K lines) documents air-gap migration but is not indexed in README or ARCHITECTURE docs. + +**Impact:** Future maintainers may not understand why elib-k0-nt is used, why halo2 was removed, etc. + +**Fix approach:** +- Extract kernel-comp.md decisions into `.adr/` directory as individual ADRs. +- Link from README.md and CLAUDE.md. + +**Priority:** Low — knowledge preservation; no code impact. + +--- + +## Summary by Risk Level + +| Issue | Severity | Category | Status | +|-------|----------|----------|--------| +| PRACTICE_LLM*.md stale docs | High | Air-gap debt | Immediate | +| Missing TEE attestation enforcement | High | Security | High priority | +| LlamaCppEngine stub (v0.5) | Medium | Feature milestone | Expected | +| TeeChannel stub (v0.3) | Medium-High | Integration | Blocks TEE model | +| Candle f32 non-determinism | Medium | Audit integrity | Mitigated by design | +| No secret scanning | Medium | CI/CD hygiene | Preventive | +| SBOM automation missing | Medium | Compliance (v1.0) | Deferred | +| Wasmtime advisory backlog | Medium | Dependency | Monitoring | +| WASM cold-start benchmark | Medium | Perf | Nice-to-have | +| Candle feature fragmentation | Low | Code hygiene | Low risk | +| Dead code markers | Low | Cleanup | Low risk | +| Defense lexicon tuning | Low | Content | v0.5+ | +| ADR documentation | Low | Preservation | Nice-to-have | + +--- + +*Concerns audit: 2026-05-07* diff --git a/.planning/codebase/CONVENTIONS.md b/.planning/codebase/CONVENTIONS.md new file mode 100644 index 0000000..eb14162 --- /dev/null +++ b/.planning/codebase/CONVENTIONS.md @@ -0,0 +1,392 @@ +--- +title: Lumen Coding Conventions +last_mapped_commit: dfba311a939388c5892574e844e73a7953796cdd +last_mapped_date: 2026-05-07 +--- + +# Coding Conventions + +**Analysis Date:** 2026-05-07 + +## Language & Edition + +**Rust 2021 Edition** +- Minimum Supported Rust Version (MSRV): `1.85` (enforced in `Cargo.toml`) +- All crates compile with Rust 2021 edition semantics + +## Safety & Lint Policy + +### Workspace-wide Lints (Cargo.toml) + +**Deny List:** +- `unsafe_code = "deny"` — Entire workspace forbids `unsafe` blocks + - Every crate enforces `#![forbid(unsafe_code)]` in `src/lib.rs` or `src/main.rs` + - Exception handling: Only elib cryptographic libraries (`elib-k0-nt`) may contain unsafe code; Lumen crates never do + +**Warning List:** +- `missing_docs = "warn"` — All public items require documentation + - Applies to all public types, functions, modules, traits + - Korean docstrings (see below) +- `unreachable_pub = "warn"` — Flag unused public visibility +- `rust_2018_idioms = "warn"` (priority -1) +- `clippy::all = "warn"` (priority -1) — Core Clippy checks required +- `clippy::undocumented_unsafe_blocks = "warn"` — Even if `unsafe` exists elsewhere, block-level docs required + +**CI Gate:** +- All Clippy warnings are treated as errors: `cargo clippy --workspace --all-targets -- -D warnings` +- `RUSTFLAGS: -D warnings` set globally in `.github/workflows/ci.yml` + +## Documentation + +**Language:** Korean (한국어) +- All docstrings and module docs written in Korean +- Example: `crates/lumen-core/src/lib.rs` — "Lumen 의 코어 프리미티브..." +- All comments explaining logic use Korean + +**Doc Comment Format:** +```rust +/// 이 함수가 무엇을 하는지 한 줄 요약. +/// +/// 더 상세한 설명이 필요하면 추가 단락으로 작성합니다. +/// +/// ## 에러 +/// 어떤 상황에서 실패하는지 설명. +/// +/// ## 예시 +/// ```rust +/// let result = my_function()?; +/// ``` +pub fn my_function() -> Result { } +``` + +**Module Header:** +```rust +//! 모듈 전체 목적과 구조. +//! +//! 주요 타입이나 패턴 설명. +``` + +## Naming Conventions + +### Files & Directories + +**Crate Names:** +- `lumen-*` prefix (kebab-case) +- Examples: `lumen-core`, `lumen-agent`, `lumen-sandbox`, `lumen-inference` +- Directory structure: `crates/lumen-*/src/` + +**Module Files:** +- Snake_case: `capability.rs`, `error.rs`, `host.rs`, `runner.rs` +- Re-exports in `lib.rs`: `pub mod capability;` + +### Types + +**PascalCase** for all public types: +```rust +pub struct CapabilityBody { } +pub enum BackendConfig { } +pub trait InferenceEngine { } +pub struct AgentRuntime { } +``` + +### Functions & Methods + +**snake_case** for all function and method names: +```rust +pub fn verify_signature(&self) -> Result<()> { } +pub async fn complete(&self, prompt: &str) -> Result { } +pub fn build() -> AgentRuntime { } +``` + +### Variables & Constants + +**snake_case** for local variables and function parameters: +```rust +let mut agent_id = AgentId::random(&mut rng); +let policy_engine = Arc::new(PolicyEngine::new(vec![])); +``` + +**SCREAMING_SNAKE_CASE** for constants: +```rust +const DEFAULT_TIMEOUT_MS: u64 = 5000; +``` + +### Error Variants + +**PascalCase** - part of enum variant naming: +```rust +#[error("crypto: {0}")] +Crypto(String), + +#[error("policy: {0}")] +Policy(String), + +#[error("not implemented: {0}")] +NotImplemented(&'static str), +``` + +## Error Handling + +### Error Type Strategy + +**Unified Error Enum:** +- Defined in `crates/lumen-core/src/error.rs` +- Single `Error` enum with module-scoped variants +- `#[derive(Debug, Error)]` from `thiserror` crate +- Marked `#[non_exhaustive]` to allow future variants + +**Common Variants:** +```rust +pub enum Error { + #[error("io: {0}")] + Io(#[from] std::io::Error), // Auto-convert from std::io::Error + + #[error("crypto: {0}")] + Crypto(String), + + #[error("policy: {0}")] + Policy(String), + + #[error("not implemented: {0}")] + NotImplemented(&'static str), + + // ... subsystem-specific variants +} + +pub type Result = std::result::Result; +``` + +### Mapping Subsystem Errors + +**Pattern:** +1. Subsystems define native errors (e.g., `CryptoError`) +2. Map into `lumen_core::Error` at public API boundaries +3. Use `.map_err()` or `?` operator to lift errors +4. Prefer reusing existing variants over creating new ones + +**Example (from `capability.rs`):** +```rust +pub fn sign(body: CapabilityBody, key: &SigningKey) -> Result { + let bytes = postcard::to_allocvec(&body) + .map_err(|e| Error::Decode(format!("capability body encode: {e}")))?; + // ... rest of logic +} +``` + +### Result Usage + +- Always return `Result` from fallible functions +- Use `?` operator for error propagation +- `NotImplemented(&'static str)` for unfinished features +- Avoid generic error strings; use contextual `Error::*` variants + +**Example:** +```rust +pub fn verify_model(path: &Path, manifest: &ModelManifest) -> Result { + let computed = Blake3Hash::of_file(path)?; + if computed != manifest.hash { + return Err(Error::Provenance("hash mismatch".into())); + } + Ok(VerificationInfo { /* ... */ }) +} +``` + +## Async & Concurrency + +### Async Runtime + +**Tokio with Selective Features:** +- `tokio` v1 with features: `["rt-multi-thread", "macros", "sync", "time", "io-util", "fs"]` +- Multi-threaded async executor for runtime +- Default is async-first design + +### Trait Bounds for Async + +**async-trait Macro:** +```rust +use async_trait::async_trait; + +#[async_trait] +pub trait InferenceEngine: Send + Sync { + /// Completion execution. + async fn complete(&self, prompt: &str, params: &SamplingParams) -> Result; +} +``` + +**Pattern:** +- All async traits use `#[async_trait]` from `async-trait` crate +- Trait methods return `Result` not `impl Future` +- Concrete implementers use regular `async fn` inside trait impl + +### Testing Async Code + +- Use `#[tokio::test]` for async tests (see TESTING.md) +- Never use blocking operations in async contexts +- Use `Arc` for shared state in multi-agent scenarios + +### Synchronization Primitives + +**Preferred:** +- `Arc` for thread-safe shared ownership +- `parking_lot::Mutex` for shared mutable state (faster than `std::sync::Mutex`) +- `tokio::sync::*` for async-aware primitives + +**Example (from `tests/determinism.rs`):** +```rust +let policy = Arc::new(PolicyEngine::new(vec![vk])); +let runtime = AgentRuntime::builder(agent, policy).build()?; +``` + +## Code Organization + +### Module Structure + +**lib.rs Pattern:** +```rust +//! Module-level docstring in Korean. + +#![forbid(unsafe_code)] +#![warn(missing_docs)] + +pub mod submodule1; +pub mod submodule2; + +pub use submodule1::{Type1, Type2}; +pub use submodule2::Type3; +``` + +**Barrel Re-exports:** +- Use re-exports in `lib.rs` for public API +- Keep internal modules private when possible +- Example: `pub use crypto::{Signature, SigningKey, VerifyingKey};` + +### Function Size Guidelines + +- Prefer functions under 50 lines +- Extracting builder patterns and setup into separate helpers +- Complex logic split into named helper functions + +**Example (Agent Runtime):** +```rust +pub struct AgentRuntime { /* ... */ } + +impl AgentRuntime { + pub fn builder(agent: AgentId, policy: Arc) -> RuntimeBuilder { } + + pub async fn step(&self, prompt: &str) -> Result { + // Step through pipeline: Defense → Inference → Policy → Exec → ZK + } +} +``` + +## Serialization + +### Preferred Format + +**postcard:** +- Binary serialization for capability tokens and wire formats +- `postcard::to_allocvec()` for encoding +- `postcard::from_bytes()` for decoding +- Map errors: `.map_err(|e| Error::Decode(format!(...)))?` + +**serde with Derive:** +```rust +use serde::{Deserialize, Serialize}; + +#[derive(Serialize, Deserialize, Debug)] +pub struct MyType { + pub field: String, +} +``` + +**JSON for config/debug:** +- `serde_json` for human-readable JSON +- Example: tool schema definitions use JSON + +## Comments & Code Style + +### When to Comment + +- **Do:** Explain non-obvious design decisions +- **Do:** Document security-critical assumptions (capability gating, ZK bindings) +- **Do:** Note workarounds and version-specific issues +- **Do Not:** Repeat function signatures or obvious logic +- **Do Not:** Comment out dead code; delete it + +### Comment Style + +```rust +// Single-line comment for brief explanations + +/* Multi-line comment rare; prefer stacked // lines instead */ + +// TODO / FIXME with context: +// TODO: Implement support for token refresh once EVM mainnet stable +``` + +### Security Comments + +```rust +// SECURITY: This capability check is mandatory before any tool execution. +// Bypassing it would allow sandbox escape. +``` + +## Import Organization + +### Import Order + +```rust +// 1. Workspace crates (lumen-*) +use lumen_core::{Result, AgentId}; +use lumen_capability::PolicyEngine; + +// 2. External crates (alphabetical) +use async_trait::async_trait; +use serde::{Deserialize, Serialize}; +use std::sync::Arc; +use tokio::sync::Mutex; + +// 3. Re-exports from current crate (pub use) +pub use some_module::{PublicType}; +``` + +### Path Aliases + +No custom path aliases are configured. Use fully qualified paths: +- `use crate::submodule::Type;` for intra-crate +- `use lumen_core::Error;` for cross-workspace + +## Formatting & Linting + +### Formatting Tool + +- **rustfmt** (implicit; no `.rustfmt.toml` — uses workspace defaults) +- Enforced in CI: `cargo fmt --all -- --check` +- Auto-format before commit: `cargo fmt --all` + +### Lint Enforcement + +- **clippy** with `-D warnings` in CI pipeline +- Run locally: `cargo clippy --workspace --all-targets -- -D warnings` +- Address all warnings before push + +### Unsafe Code + +- **Forbidden** in Lumen crates +- Only elib cryptographic dependencies (`elib-blake`, `elib-ed25519`, etc.) contain unsafe +- If unsafe is ever needed, must justify in comments and pass security review + +## Build & Test Compliance + +All code must pass the **4-gate CI pipeline** (from CLAUDE.md): + +```bash +cargo build --workspace --all-targets # No compile errors +cargo test --workspace # All tests pass +cargo clippy --workspace --all-targets -- -D warnings # No Clippy warnings +cargo fmt --all -- --check # Consistent formatting +``` + +--- + +*Convention analysis: 2026-05-07* diff --git a/.planning/codebase/INTEGRATIONS.md b/.planning/codebase/INTEGRATIONS.md new file mode 100644 index 0000000..7d1262e --- /dev/null +++ b/.planning/codebase/INTEGRATIONS.md @@ -0,0 +1,279 @@ +--- +last_mapped: dfba311a939388c5892574e844e73a7953796cdd +last_mapped_date: 2026-05-07 +--- + +# External Integrations + +**Analysis Date:** 2026-05-07 + +## WASM Sandbox & Runtime + +**wasmtime (v44.x):** +- What it's used for: Agent code isolation and deterministic execution + - Location: `lumen-sandbox` crate (enforced in `crates/lumen-sandbox/Cargo.toml`) + - Imports: `lumen-sandbox/src/runner.rs` - Module::new(), Store, Linker, async execution control +- Configuration: + - JIT: Cranelift (runtime code generation for performance) + - Fuel-based execution limits (deterministic step counting) + - Epoch deadline enforcement (time-based timeout) + - Address2line + demangle for error diagnostics +- Security Model: + - Capabilities-based host import gating (`lumen-capability`) + - Memory isolation via linear memory with explicit bounds + - Export-only functions (no host function imports by default) + - Host state passed via Store (no global mutable state) +- Production Readiness: Mature; used for production WASM execution across ecosystem + +## Model Inference & Routing + +**ONNX Routing (candle-onnx, optional feature: `candle`):** +- Service: ONNX model inference for tool routing decisions + - Crates: `lumen-inference` (feature-gated in `crates/lumen-inference/Cargo.toml`) + - Implementation: `crates/lumen-inference/src/candle.rs`, `crates/lumen-inference/src/backend.rs` + - Model formats: ONNX (.onnx files) + - Use case: Agent tool selection routing via neural network (argmax → tool ID mapping) +- SDK: candle-core (CPU tensor ops), candle-onnx (ONNX model loading) +- Deployment: Air-gapped environments require source vendoring via `cargo vendor` (see `AIR-GAPPED.md`) +- Model Loading: + - Verified by `lumen-provenance` (BLAKE3 + Ed25519 signature check before loading) + - Output: `VerifiedModelHandle` passed to inference engine + - Safetensors header inspection supported + +**LLM Inference (llama.cpp backend, optional feature: `llama-cpp`):** +- Service: Full LLM text generation via llama.cpp + - Status: Stub interface in v0.4; full implementation targeting v0.5 + - Location: `crates/lumen-inference/src/llama_cpp.rs` + - Integration: C FFI bindings (not yet materialized) +- Use case: Agent prompt reasoning when ONNX routing is insufficient +- Model support: GGUF format (built-in tokenizer, no separate tokenizer dependency) +- Note: Supersedes removed `candle-transformers` + `tokenizers` stack for text generation +- TODO: Implement C bindings and integration tests + +**Dummy Engine (test/demo):** +- Location: `crates/lumen-inference/src/lib.rs` +- Purpose: Deterministic pattern-matching inference for tests and demos (no model dependencies) + +## Secure Channel & Cryptographic Communication + +**Encrypted Channels (feature: `crypto-channel`):** +- What: End-to-end encrypted async message channels + - Location: `lumen-channel` crate + - Implementation: `crates/lumen-channel/src/encrypted.rs` + - Used by: Multi-agent orchestration via `lumen-orchestrator` +- Cryptographic Stack: + - Key Agreement: x25519 ECDH (`elib-x25519`) + - Encryption: AES-256-GCM (`elib-aes`) + - Key Derivation: BLAKE3 keyed hash from shared secret (`elib-blake`) + - Handshake Signature: Ed25519 (`elib-ed25519`) + - Nonce: Incremental counter (replay prevention) +- Transport: in-process channel (tokio channels) +- Attestation: Each channel endpoint attested via signed certificates + - Attestation data format: `lumen-attestation` wire format parsers + - Intel TDX / AMD SEV-SNP document support (wiring in v0.4+) + +## Model Provenance & Supply-Chain Security + +**Provenance Verification Module:** +- What: BLAKE3 hash + Ed25519 signature verification for model files + - Location: `crates/lumen-provenance/` + - Core API: `verify_model()` (blocks loading on any mismatch) + - Manifest format: `ModelManifest` (JSON/TOML serialized, signed variant `SignedManifest`) +- Supported Formats: + - ONNX models (`.onnx`) - header sniffed via `crates/lumen-provenance/src/onnx.rs` + - Safetensors (`.safetensors`) - header parsing via `safetensors` crate + custom inspection + - GGUF models (`.gguf`) - stub parser in `crates/lumen-provenance/src/gguf.rs` +- Signature Verification: + - Signing algorithm: Ed25519 (via `elib-ed25519`) + - Signer identity: Verifying key pinned in deployment manifest + - Certificate chain: Single-level (key → model hash) +- SBOM Generation: + - CycloneDX-compatible software bill of materials (`crates/lumen-provenance/src/sbom.rs`) + - Captured at model load time, exported via `generate_sbom()` + - Includes: model name, hash, signer identity, timestamp +- Pinset Validation: + - `PinSet` - Immutable set of approved (hash, signer) pairs + - `PinAcceptance` - Allow/Deny/Suspect result codes + - `RetiredPin` - Signature-invalid or compromised hashes can be retired + +## Agent Sandboxing & Capability-Based Access Control + +**Capability Framework:** +- What: Signed permission tokens for resource access + - Location: `crates/lumen-capability/` + - Core types: `Capability`, `CapabilityId`, capability policies +- Enforced Access: + - File operations: Glob patterns matching (via `globset`) + - Network operations: Hostname/port allowlisting (capability-gated import) + - Tool execution: Whitelisted tool names (capability token for each) + - System resources: Explicit per-capability grants +- Replay Prevention: + - Nonce-based challenge-response (per-invocation freshness) + - Timestamp validation (expiry enforcement) + - Signature: Ed25519 over capability bytes +- Integration with WASM: + - `lumen-sandbox` gates host imports to capabilities present in Store + - Capabilities re-validated on each `call_async()` invocation + +**Defense Module (prompt injection / jailbreak detection):** +- What: Real-time threat detection with minimal latency + - Location: `crates/lumen-defense/` + - Engine: Aho-Corasick multi-pattern matcher + RegexSet +- Detection Patterns: + - Prompt injection markers (e.g., "ignore previous instructions", SQL keywords) + - Known jailbreak payloads (curated set) + - Heuristic patterns (unusual control characters, excessive Unicode) +- Integration: + - Called by `lumen-agent` before inference (defense → infer → policy-check pipeline) + - Blocks malicious prompts before reaching LLM +- Performance: Sub-millisecond latency via pre-compiled DFAs + +## Deterministic Control & Fixed-Point Arithmetic + +**Fixed-Point Math (lumen-fixed):** +- What: Q-format quantization for deterministic proof-bound arithmetic + - Location: `crates/lumen-fixed/` + - Use case: ZK proof generation requires hardware-independent computation + - Feature: `calibration` - offline float-to-Q conversion (MUST NOT be used in proof path) +- Formats Supported: + - Q15 (1 sign + 15 integer bits) + - Q16 (1 sign + 16 integer bits) + - Q24 (1 sign + 24 integer bits) + - Custom precision via generic parameters +- Integration: LLM model weight quantization pipeline + - Offline: candle-onnx float32 weights → Q-format (uses `calibration` feature) + - Runtime: Quantized models loaded, deterministic inference executed + +**Deterministic Agent Runtime (lumen-agent):** +- What: State machine execution with no floating-point, no randomness in main path + - Location: `crates/lumen-agent/` + - Pipeline: defense (regex) → inference (ONNX or dummy) → policy check (ZK proof) → tool exec → routing decision binding + - State isolation: No shared mutable state; async isolation via tokio channels + - Execution guarantee: Same input + same seed → identical output (for ZK verification) + +## ZK Proving System & Circuit Logic + +**Mock Prover (lumen-zkml):** +- What: Proof generation for routing decisions (v0.4: mock-only, witness exposed) + - Location: `crates/lumen-zkml/` + - Feature: `ezkl` (optional; stub for real proving system integration) + - Implementation: `crates/lumen-zkml/src/mock.rs` +- Proof Subject: Agent tool-routing decision constraints + - Witness: Prompt embedding, tool scores, selection threshold + - Constraint: `selected_tool_score >= threshold && selected_tool_score > all_other_scores` + - Commitment: BLAKE3 hash of witness (only publicly revealed commitment) +- Removed Dependencies (v0.4): + - `halo2_proofs` - Mock prover replaced with direct assertion checking + - `ff` / `pasta_curves` - Elliptic curve ops no longer needed for mock +- Future Milestone (v1.0): + - Real succinct ZK backend (SP1 / RISC Zero / Aleo) + - Proof sizes: ~200-300 bytes (estimated) + - Verification gas cost: EVM-compatible (~200K gas for batch verification) + +## Attestation & TEE Support + +**TEE Attestation Parsers (lumen-attestation):** +- What: Intel TDX and AMD SEV-SNP attestation document wire format parsing + - Location: `crates/lumen-attestation/` + - Status: Wire format parsing only (v0.4); cryptographic validation deferred to v0.5+ + - Formats: + - Intel TDX attestation quote + token (ECDSA-based) + - AMD SEV-SNP attestation report (signed attestation) +- Use Case: + - Host-side TEE attestation: Proof that LLM inference runs in trusted execution environment + - Agent-side validation: Verify attestation before sending sensitive prompts to TEE +- Integration Path: + - Secure channel (`lumen-channel` encrypted channels) between agent (WASM) and host TEE + - Attestation certificates pinned in agent capability set + - Ongoing: Cryptographic signature validation in v0.5 + +## On-Chain Verification & Deployment + +**On-Chain Verifier Scaffolding (lumen-onchain):** +- What: Automated smart contract generation and deployment for proof verification + - Location: `crates/lumen-onchain/` + - Targets: + - EVM (Solidity): Bytecode generation for proof verification circuits + - Mina (o1js): Zero-knowledge DSL for ZK proof verification + - Use Case: + - Off-chain ZK proof generation (agent routing) + - On-chain submission + verification (immutable audit trail) + - Settlement: Confirmed proofs unlock fund transfer or policy enforcement +- Proof Format: + - Input: Proving system circuit (from `lumen-zkml`) + - Output: Solidity verifier contract OR Mina o1js verification circuit + - Integration: Manual deployment flow (v0.4; automated in v0.5+) +- Example: "Agent was authorized to access resource X based on approved ZK proof Y" + +## Logging & Audit + +**Structured Logging (tracing):** +- Framework: `tracing` + `tracing-subscriber` +- Usage: Audit trail for all agent decisions, model loads, capability grants + - Location: Used throughout workspace (e.g., `lumen-agent`, `lumen-provenance`) + - Output: Console formatter with environment filter (`fmt`, `env-filter` features) +- Filtering: `RUST_LOG` environment variable (e.g., `lumen_agent=debug,lumen_provenance=info`) + +## Build & Deployment Environment + +**Vendoring for Air-Gapped Environments:** +- Tool: `cargo vendor` (standard Cargo command) +- When Required: + - `candle` feature enabled (large dep tree, includes HF Hub examples) + - All workspace dependencies (for deployment in closed networks) +- How: `cargo vendor --locked > vendors.tar.gz` (commit sources) +- Guide: `AIR-GAPPED.md` in repository root + +**Continuous Integration:** +- CI Pipeline: `.github/docker/Dockerfile.ci` (Docker image with Rust 1.93.0) +- Build Checks: + ```bash + cargo build --workspace --all-targets + cargo test --workspace + cargo clippy --workspace --all-targets -- -D warnings + cargo fmt --all -- --check + ``` +- Enforcement: All four commands must pass for merge + +## Environment Configuration + +**Required Environment Variables:** +- None at runtime (all configs are manifest-based or CLI-provided) +- Development: + - `RUST_LOG` - Logging filter (optional, defaults to info) + - `RUST_BACKTRACE` - Backtrace verbosity (optional) + +**Configuration Files:** +- Manifest format: JSON or TOML (parsed by `serde` + `serde_json` / `toml`) + - Model manifests: `ModelManifest` type in `lumen-provenance` + - Capability policies: `Policy` serialized via `postcard` or JSON + - CLI config: `lumen.toml` (optional, parsed by `clap`) +- No secrets in environment (all cryptographic keys loaded from manifest or stored in TEE) + +## External API / Network Integrations + +**None Exposed (Design Principle):** +- No HTTP client dependencies (no `reqwest`, `hyper`) +- No cloud SDK integrations (no AWS, GCP, Azure SDKs) +- No external service calls from agent runtime +- TEE Integration: Channels only (no REST/gRPC) +- On-chain: Manual smart contract deployment (scaffolding provided, but no automated chain interaction) + +**Rationale:** Zero-trust, air-gapped deployment model requires all I/O to be explicit and capability-gated. + +## Build Artifacts & Performance + +**Binary Output:** +- CLI binary: `target/release/lumen` (~15-20 MB with symbols, ~3-5 MB stripped) +- Library artifacts: `target/release/liblumen*.rlib` / `liblumen*.so` +- WASM agent modules: Compiled with `wasm32-unknown-unknown` target + +**Optimization Profile (Release):** +- Optimization level: 3 (maximal) +- LTO: thin (balances speed + link-time cost) +- Panic: abort (smaller binary, no unwinding overhead) +- Debug symbols: stripped by default (use `release-debug` profile for debugging) + +--- + +*Integration audit: 2026-05-07* diff --git a/.planning/codebase/STACK.md b/.planning/codebase/STACK.md new file mode 100644 index 0000000..12a11db --- /dev/null +++ b/.planning/codebase/STACK.md @@ -0,0 +1,203 @@ +--- +last_mapped: dfba311a939388c5892574e844e73a7953796cdd +last_mapped_date: 2026-05-07 +--- + +# Technology Stack + +**Analysis Date:** 2026-05-07 + +## Languages + +**Primary:** +- Rust 1.85 (Edition 2021) - Entire workspace; enforced by `rust-toolchain.toml` +- WebAssembly (WASM32) - Agent sandbox bytecode (wasm32-unknown-unknown target) + +**Secondary:** +- Korean docstrings/comments - Project convention (see `CLAUDE.md`) + +## Runtime + +**Rust Toolchain:** +- Channel: 1.93.0 (synced with CI in `.github/docker/Dockerfile.ci`) +- Components: clippy, rustfmt +- Target: wasm32-unknown-unknown (for agent WASM compilation) +- Profile: minimal + +**Package Manager:** +- Cargo (bundled with Rust toolchain) +- Lockfile: `Cargo.lock` (present, must be updated when dependencies change) +- Resolver: v2 (workspace resolver) + +## Frameworks & Core Dependencies + +**Async Runtime:** +- `tokio` 1.x - Multi-threaded async runtime with macros, sync channels, time, I/O, filesystem + - Features: rt-multi-thread, macros, sync, time, io-util, fs + - Location: workspace-level dependency in `[workspace.dependencies]` + +**Serialization:** +- `serde` 1.x - Serialization framework with derive macros +- `serde_json` 1.x - JSON codec +- `postcard` 1.x - Binary serialization (no-heapless-cas, std only to avoid unmaintained atomic-polyfill) +- `toml` 0.8 - TOML parsing for manifests + +**Cryptography (In-House via elib-k0-nt):** +- `elib-blake` (path: `../elib-k0-nt/blake` v1.0.0) - BLAKE3 hashing (replaces upstream blake3) +- `elib-ed25519` (path: `../elib-k0-nt/ed25519` v1.0.0) - EdDSA signing/verification (replaces ed25519-dalek) +- `elib-x25519` (path: `../elib-k0-nt/x25519` v1.0.0) - ECDH key agreement for crypto-channel feature (replaces x25519-dalek) +- `elib-aes` (path: `../elib-k0-nt/aes` v1.0.0) - AES-256-GCM encryption for crypto-channel feature (replaces aes-gcm) +- `elib-rng` (path: `../elib-k0-nt/rng` v1.0.0) - HashDRBG-SHA256 deterministic random generation (replaces rand/rand_core) +- `elib-constant-time` (path: `../elib-k0-nt/constant-time` v1.0.0) - Timing-attack-resistant comparisons (replaces subtle) +- `elib-zeroize` (path: `../elib-k0-nt/zeroize` v1.0.0) - Secure memory clearing + +**WASM Sandbox:** +- `wasmtime` 44.x - WASM runtime with JIT compilation (Cranelift), async support, deterministic fuel/epoch control + - Features: async, cranelift, runtime, addr2line, demangle + - Security boundary: used exclusively in `lumen-sandbox` + - Rationale: No viable pure-Rust replacement (wasmi too slow, wasm3 requires C) + - Note: Unsafe code required for FFI; documented with `// SAFETY:` comments per clippy rules + +**CLI & Configuration:** +- `clap` 4.x - Command-line argument parsing with derive macros +- `tracing` 0.1.x - Structured logging framework +- `tracing-subscriber` 0.3.x - Log formatting and filtering (fmt, env-filter features) + +**Pattern Matching & Defense:** +- `aho-corasick` 1.x - Multi-pattern string matching (prompt injection detection) +- `regex` 1.x - Regular expression matching (jailbreak detection) +- `once_cell` 1.x - Lazy static initialization for compiled pattern sets +- `globset` 0.4.x - Path pattern matching for capability-gated file access + +**Concurrency Utilities:** +- `parking_lot` 0.12.x - Fast synchronization primitives (Mutex, RwLock) with fair scheduling + +**Model Provenance:** +- `safetensors` 0.7.x - Model file header inspection (read-only, no network dependencies) + - Note: aligned with candle-onnx's same version to avoid dependency duplication + +**Error Handling:** +- `thiserror` 2.x - Error type derivation +- `anyhow` 1.x - Generic error handling for CLI + +**Utilities:** +- `hex` 0.4.x - Hexadecimal encoding/decoding +- `futures` 0.3.x - Async utilities and combinator traits + +## Feature Flags + +**lumen-inference** (`crates/lumen-inference/Cargo.toml`): +- `candle` (optional) - ONNX routing engine via candle-core + candle-onnx + - Requires source vendoring in air-gapped environments (see `AIR-GAPPED.md`) + - CPU-only (no GPU acceleration) +- `llama-cpp` (optional) - llama.cpp backend for full LLM text generation (v0.5 in-progress) + +**lumen-fixed** (`crates/lumen-fixed/Cargo.toml`): +- `calibration` (optional) - Float-to-Q-format conversions for offline weight preparation + - MUST NOT be enabled in deterministic proof-bound codepath +- `serde` (optional) - Serialization support for fixed-point numbers + +**lumen-zkml** (`crates/lumen-zkml/Cargo.toml`): +- `ezkl` (optional) - ezkl proving system integration (stub; actual backend TBD at v1.0 milestone) + - Note: `halo2` feature removed in v0.4 (see kernel-comp.md) + +**lumen-channel** (`crates/lumen-channel/Cargo.toml`): +- `crypto-channel` (optional) - AES-GCM + x25519 encrypted channels + - Depends on elib-aes, elib-x25519 + +**lumen-sdk** (`crates/lumen-sdk/Cargo.toml`): +- `alloc` (optional) - Enables String/Vec helper functions (requires agent-side global allocator) +- `macros` (optional) - Re-exports `#[lumen_agent]` proc-macro from lumen-sdk-macros + +## Build Profiles + +**Release Profile:** +```toml +[profile.release] +opt-level = 3 # Full optimization +lto = "thin" # Thin Link-Time Optimization +codegen-units = 1 # Single codegen unit for maximum optimization +panic = "abort" # Abort on panic (no unwinding) +strip = "symbols" # Strip debug symbols +``` + +**Release-Debug Profile:** +- Inherits release settings but with `debug = true` and `strip = "none"` +- For debugging optimized binaries + +## Workspace Lints + +**Rust Lints (workspace-level):** +- `unsafe_code = "deny"` - Forbid unsafe blocks by default (overridden per crate: `lumen-sandbox`, `lumen-sdk`) +- `missing_docs = "warn"` - Require public item documentation +- `unreachable_pub = "warn"` - Warn on unnecessarily public items +- `rust_2018_idioms = "warn"` (priority -1) + +**Clippy Lints (workspace-level):** +- `all = "warn"` (priority -1) - Enable all correctness/suspicion/style/complexity/performance groups (basis for CI -D warnings) +- `undocumented_unsafe_blocks = "warn"` - Require `// SAFETY:` comments on all unsafe blocks +- Pedantic group NOT enabled workspace-wide (too noisy; crates can opt-in locally) + +**CI Enforcement:** +- `cargo clippy --workspace --all-targets -- -D warnings` (converts warnings to hard errors) +- `cargo fmt --all -- --check` (formatting checked; no auto-fix) + +## Critical Dependencies Removed (v0.4 Air-Gapped Compatibility) + +**Replaced:** +- `blake3` → `elib-blake` (cryptographically identical API) +- `ed25519-dalek` → `elib-ed25519` (keying strategy updated) +- `subtle` → `elib-constant-time` (constant-time comparisons) +- `rand`/`rand_core` → `elib-rng` (deterministic DRBG, requires RngCore adapter) +- `aes-gcm` → `elib-aes` (via crypto-channel feature) +- `x25519-dalek` → `elib-x25519` (via crypto-channel feature) + +**Removed Entirely:** +- `halo2_proofs` / `ff` / `pasta_curves` - ZK proof circuit library (v0.4: mock prover uses BLAKE3 commitment only; no succinct ZK yet) +- `candle-transformers` - LLM text generation via Hugging Face models (too large for air-gapped; replaced by llama-cpp stub) +- `tokenizers` - HuggingFace tokenizer library (contains C Oniguruma regex; GGUF models have built-in vocab) + +## Platform Requirements + +**Development:** +- Rust 1.85+ (enforced by rust-toolchain.toml) +- WASM compilation support: `rustup target add wasm32-unknown-unknown` +- Cargo (bundled) + +**Build Requirements:** +```bash +cargo build --workspace --all-targets +cargo test --workspace +cargo clippy --workspace --all-targets -- -D warnings +cargo fmt --all -- --check +``` + +**Production / Deployment:** +- Linux kernel 5.10+ with TEE support (Intel TDX / AMD SEV-SNP) for host-side TEE inference +- WASM sandbox runs in Ring 3 userspace (not suitable for kernel Ring 0 without separate trusted process) +- Air-gapped environments: source vendoring via `cargo vendor` (see `AIR-GAPPED.md`) + +## Workspace Members (v0.4.1) + +| Crate | Purpose | +|-------|---------| +| `lumen-core` | Shared IDs, BLAKE3 hashing, Ed25519 wrappers, error types, time utilities | +| `lumen-fixed` | Q-format fixed-point arithmetic (deterministic quantization) | +| `lumen-capability` | Capability-based access control with signed permission tokens | +| `lumen-channel` | Typed async secure channels (AES-GCM/x25519 behind feature) | +| `lumen-provenance` | Model file provenance: BLAKE3 + Ed25519 verification + SBOM (safetensors parsing) | +| `lumen-defense` | Low-latency prompt injection / jailbreak detection (Aho-Corasick + regex) | +| `lumen-zkml` | ZK proving-system trait + mock BLAKE3 commitment prover (ezkl stub) | +| `lumen-inference` | InferenceEngine trait + verified loader + quantization config (candle/llama.cpp features) | +| `lumen-sandbox` | wasmtime WASM sandbox with deterministic config and capability-gated host imports | +| `lumen-agent` | Agent runtime: defense → infer → policy-check → tool-exec → ZK-bind routing | +| `lumen-orchestrator` | Multi-agent supervisor with channel-only inter-agent communication | +| `lumen-sdk` | WASM agent SDK: safe Rust wrappers for host imports (no_std compatible) | +| `lumen-sdk-macros` | Procedural macros for `#[lumen_agent]` annotation | +| `lumen-attestation` | TEE attestation document parsers (Intel TDX, AMD SEV-SNP) | +| `lumen-onchain` | On-chain verifier scaffold (EVM Solidity / Mina o1js) + deployment automation | +| `lumen-cli` | `lumen` command-line interface | + +--- + +*Stack analysis: 2026-05-07* diff --git a/.planning/codebase/STRUCTURE.md b/.planning/codebase/STRUCTURE.md new file mode 100644 index 0000000..f810a23 --- /dev/null +++ b/.planning/codebase/STRUCTURE.md @@ -0,0 +1,443 @@ +--- +last_mapped_commit: 7c6fc8c +analysis_date: 2026-05-07 +focus: structure +--- + +# Codebase Structure + +**Analysis Date:** 2026-05-07 + +## Directory Layout + +``` +lumen/ +├── crates/ # Workspace members (15 crates) +│ ├── lumen-core/ +│ │ ├── src/ +│ │ │ ├── lib.rs # Core exports +│ │ │ ├── ids.rs # AgentId, CapabilityId, RequestId, ToolId +│ │ │ ├── crypto.rs # Ed25519 wrappers (SigningKey, VerifyingKey) +│ │ │ ├── hash.rs # Blake3Hash + constant-time comparison +│ │ │ ├── rng.rs # RNG trait + HashDrbg, OsRng adapters +│ │ │ ├── error.rs # Error enum, Result type +│ │ │ ├── time.rs # Timestamp +│ │ │ └── Cargo.toml +│ │ └── tests/ +│ │ +│ ├── lumen-fixed/ +│ │ ├── src/ +│ │ │ ├── lib.rs # Q16_16, Q8_24 exports +│ │ │ ├── q16_16.rs # Q-format fixed-point (range ±2^15) +│ │ │ ├── q8_24.rs # Q-format fixed-point (range ±2^7, precise) +│ │ │ ├── quant.rs # Quantization helpers (i8 quantize) +│ │ │ └── Cargo.toml +│ │ └── tests/ +│ │ +│ ├── lumen-capability/ +│ │ ├── src/ +│ │ │ ├── lib.rs # Capability, PolicyEngine, Action, Resource exports +│ │ │ ├── capability.rs # Capability struct, signing, verification +│ │ │ ├── policy.rs # PolicyEngine (verify, replay defense, audit) +│ │ │ ├── resource.rs # Resource enum (FsRead, FsWrite, Net, CallTool, etc) +│ │ │ ├── audit.rs # Audit logging (deterministic field names) +│ │ │ └── Cargo.toml +│ │ ├── tests/ +│ │ │ └── policy_enforcement.rs # Policy check tests +│ │ └── examples/ +│ │ +│ ├── lumen-channel/ +│ │ ├── src/ +│ │ │ ├── lib.rs # SecureChannel trait +│ │ │ ├── inproc.rs # InProcChannel (tokio mpsc) +│ │ │ ├── attested.rs # AttestedChannel (Ed25519 handshake + frame signing) +│ │ │ ├── encrypted.rs # EncryptedChannel (AES-256-GCM + x25519, feature-gated) +│ │ │ ├── tee.rs # TeeChannel stub (unimplemented) +│ │ │ ├── codec.rs # postcard encode/decode +│ │ │ └── Cargo.toml +│ │ ├── tests/ +│ │ │ └── roundtrip.rs # Serialization tests +│ │ └── examples/ +│ │ +│ ├── lumen-defense/ +│ │ ├── src/ +│ │ │ ├── lib.rs # DefenseEngine, Verdict, BlockReason exports +│ │ │ ├── engine.rs # DefenseEngine::analyze() pipeline +│ │ │ ├── lexicon.rs # Aho-Corasick jailbreak corpus (30+ triggers) +│ │ │ ├── regex_stage.rs # RegexSet for pattern matching +│ │ │ ├── heuristics.rs # Heuristic scoring (non-printable, base64, length) +│ │ │ └── Cargo.toml +│ │ ├── tests/ +│ │ │ └── verdicts.rs # Defense verdict tests +│ │ └── examples/ +│ │ +│ ├── lumen-provenance/ +│ │ ├── src/ +│ │ │ ├── lib.rs # ModelManifest, verify_model, SBOM exports +│ │ │ ├── manifest.rs # ModelManifest, SignedManifest, Format enum +│ │ │ ├── verify.rs # verify_model() hash + signature validation +│ │ │ ├── gguf.rs # GGUF header sniffing +│ │ │ ├── onnx.rs # ONNX header sniffing +│ │ │ ├── safetensors_check.rs # Safetensors header validation +│ │ │ ├── sbom.rs # CycloneDX SBOM generation +│ │ │ ├── pinset.rs # Pin acceptance lists (retired pins) +│ │ │ └── Cargo.toml +│ │ ├── tests/ +│ │ │ └── verify_safetensors.rs # Safetensors verification tests +│ │ └── examples/ +│ │ +│ ├── lumen-zkml/ +│ │ ├── src/ +│ │ │ ├── lib.rs # ProvingSystem trait, Verification exports +│ │ │ ├── mock.rs # MockCommitmentProver (BLAKE3 commitment) +│ │ │ ├── verification.rs # Verification enum (CommitmentOnly, ZkVerified, Invalid) +│ │ │ ├── ezkl.rs # ezkl stub (feature-gated) +│ │ │ └── Cargo.toml +│ │ ├── tests/ +│ │ │ └── routing_proof.rs # Mock proof generation tests +│ │ └── examples/ +│ │ +│ ├── lumen-inference/ +│ │ ├── src/ +│ │ │ ├── lib.rs # InferenceEngine trait, SamplingParams, Completion, ToolCall +│ │ │ ├── backend.rs # BackendConfig, create_engine() factory +│ │ │ ├── dummy.rs # DummyEngine (deterministic test responses) +│ │ │ ├── candle.rs # CandleEngine (ONNX routing, feature: candle) +│ │ │ ├── llama_cpp.rs # LlamaCppEngine stub (feature: llama-cpp) +│ │ │ ├── loader.rs # VerifiedModelLoader, VerifiedModelHandle +│ │ │ ├── quantize.rs # QuantizationConfig, GgufLevel, QuantizationKind +│ │ │ ├── streaming.rs # StreamingEngine trait, Token, TokenStream, FinishReason +│ │ │ ├── tee_channel.rs # ChannelEngine (TEE forward via SecureChannel) +│ │ │ └── Cargo.toml +│ │ ├── tests/ +│ │ │ └── engine_selection.rs # Backend selection tests +│ │ └── examples/ +│ │ +│ ├── lumen-sandbox/ +│ │ ├── src/ +│ │ │ ├── lib.rs # Sandbox, SandboxConfig, HostState exports +│ │ │ ├── runner.rs # Sandbox::run_module() execution +│ │ │ ├── config.rs # SandboxConfig::deterministic_engine() +│ │ │ ├── host.rs # HostState (policy, agent, audit, tool_calls) +│ │ │ ├── imports.rs # Host import implementations (lumen_log, lumen_call_tool) +│ │ │ └── Cargo.toml +│ │ ├── tests/ +│ │ │ └── wasm_echo_agent.rs # WASM agent test (determinism check) +│ │ └── examples/ +│ │ +│ ├── lumen-agent/ +│ │ ├── src/ +│ │ │ ├── lib.rs # AgentRuntime, StepResult, ToolRegistry exports +│ │ │ ├── runtime.rs # AgentRuntime::step() / stream_step() pipeline +│ │ │ ├── tool.rs # Tool trait, ToolHandler, ToolRegistry +│ │ │ ├── route.rs # RoutingDecision, RoutingPublicInputs, RoutingWitness +│ │ │ └── Cargo.toml +│ │ ├── tests/ +│ │ │ ├── determinism.rs # Determinism checks (same input → same output) +│ │ │ └── determinism_stress.rs # Stress test for determinism +│ │ └── examples/ +│ │ +│ ├── lumen-orchestrator/ +│ │ ├── src/ +│ │ │ ├── lib.rs # Orchestrator, AgentHandle, InterAgentMessage exports +│ │ │ ├── supervisor.rs # Orchestrator (registry, inboxes, message routing) +│ │ │ └── Cargo.toml +│ │ ├── tests/ +│ │ │ └── multi_agent.rs # Multi-agent execution tests +│ │ └── examples/ +│ │ +│ ├── lumen-sdk/ +│ │ ├── src/ +│ │ │ ├── lib.rs # log(), call_tool(), LogLevel, ToolError, no_std +│ │ │ ├── alloc_helpers.rs # alloc-only helpers (feature: alloc) +│ │ │ └── Cargo.toml +│ │ └── examples/ +│ │ └── hello_agent.rs # Minimal WASM agent example +│ │ +│ ├── lumen-sdk-macros/ +│ │ ├── src/ +│ │ │ ├── lib.rs # #[lumen_agent] proc-macro definition +│ │ │ └── Cargo.toml +│ │ └── tests/ +│ │ +│ ├── lumen-attestation/ +│ │ ├── src/ +│ │ │ ├── lib.rs # AttestationDoc, parse() exports +│ │ │ ├── tdx.rs # Intel TDX Quote v4 parser +│ │ │ ├── sev_snp.rs # AMD SEV-SNP Attestation Report v2 parser +│ │ │ └── Cargo.toml +│ │ └── tests/ +│ │ +│ ├── lumen-onchain/ +│ │ ├── src/ +│ │ │ ├── lib.rs # Chain enum, VerifierMeta, emit/deploy exports +│ │ │ ├── emit.rs # emit_artifacts() (Solidity + o1js) +│ │ │ ├── deploy.rs # deploy_evm(), deploy_mina() (child processes) +│ │ │ ├── evm.rs # Solidity RoutingVerifier.sol codegen +│ │ │ ├── mina.rs # o1js RoutingVerifier.ts codegen +│ │ │ └── Cargo.toml +│ │ └── examples/ +│ │ +│ └── lumen-cli/ +│ ├── src/ +│ │ ├── main.rs # CLI entry, subcommand dispatch +│ │ ├── policy_file.rs # Policy TOML loading / validation +│ │ ├── cmd/ +│ │ │ ├── init.rs # `lumen init` — emit policy template +│ │ │ ├── verify_model.rs # `lumen verify-model` — check BLAKE3 + sig +│ │ │ ├── sbom.rs # `lumen sbom` — emit CycloneDX SBOM +│ │ │ ├── defend.rs # `lumen defend` — test prompt defense +│ │ │ ├── prove.rs # `lumen prove` — generate routing proof +│ │ │ ├── run.rs # `lumen run` — end-to-end agent step +│ │ │ └── verifier.rs # `lumen verifier deploy` — emit+deploy contracts +│ │ └── Cargo.toml +│ ├── tests/ +│ │ └── e2e.rs # End-to-end CLI tests +│ └── examples/ +│ +├── agents/ # (excluded from workspace; example WASM agents) +│ └── echo-agent/ # Sample WASM agent using lumen-sdk +│ ├── src/ +│ │ └── lib.rs # Agent logic (step fn) +│ ├── Cargo.toml # target: wasm32-unknown-unknown +│ └── build.sh # wasm compilation + linking +│ +├── Cargo.toml # Workspace root, workspace dependencies, lints +├── Cargo.lock # Locked dependency versions +├── CLAUDE.md # Project-specific instructions (Korean) +├── kernel-comp.md # Air-gap compatibility audit (detailed dependency review) +├── README.md # Project overview +├── .github/ +│ └── workflows/ # CI/CD (linter, tests, clippy, fmt) +└── .planning/ + └── codebase/ + ├── ARCHITECTURE.md # This file: system design, layers, data flow + ├── STRUCTURE.md # This file: directory layout, naming conventions + └── (STACK.md, INTEGRATIONS.md, CONVENTIONS.md, TESTING.md, CONCERNS.md → on request) +``` + +## Directory Purposes + +**crates/lumen-core/:** +- Purpose: Shared primitives (IDs, hashing, crypto, errors, time) +- Contains: `AgentId`, `Blake3Hash`, `Ed25519` wrappers, `Rng` trait, `Error` enum +- Key files: `ids.rs` (newtype IDs), `crypto.rs` (signing/verification wrappers), `hash.rs` (BLAKE3), `error.rs` (Result type) + +**crates/lumen-fixed/:** +- Purpose: Deterministic fixed-point arithmetic (Q-format) for ZK-bound code +- Contains: `Q16_16`, `Q8_24` types, quantization utilities +- Key files: `q16_16.rs`, `q8_24.rs`, `quant.rs` (i8 quantizer) +- Constraint: `calibration` feature disabled in proof-bound binaries (f32 only offline) + +**crates/lumen-capability/:** +- Purpose: Signed capability tokens and policy enforcement +- Contains: `Capability` (signed token), `PolicyEngine` (verify + replay defense), `Action` (enum of gated actions), `Resource` (target of action) +- Key files: `capability.rs` (token structure), `policy.rs` (enforcement), `audit.rs` (deterministic logging) + +**crates/lumen-channel/:** +- Purpose: Typed async message transport between isolation boundaries +- Contains: `SecureChannel` trait (send/recv bytes or typed messages), implementations: `InProcChannel`, `AttestedChannel`, `EncryptedChannel` (feature-gated), `TeeChannel` (stub) +- Key files: `lib.rs` (trait), `inproc.rs`, `attested.rs`, `encrypted.rs` (crypto-channel feature), `tee.rs` (TEE stub) + +**crates/lumen-defense/:** +- Purpose: Real-time prompt-injection / jailbreak detection (sub-µs/kB) +- Contains: `DefenseEngine` (three-stage pipeline), `Verdict` enum, jailbreak lexicon (~30 triggers) +- Key files: `engine.rs` (pipeline), `lexicon.rs` (Aho-Corasick corpus), `regex_stage.rs` (RegexSet patterns), `heuristics.rs` (scoring) + +**crates/lumen-provenance/:** +- Purpose: Model file provenance (hash verification, signature, SBOM) +- Contains: `ModelManifest`, `verify_model()` function, format sniffers (ONNX, Safetensors, GGUF), SBOM generation +- Key files: `manifest.rs` (manifest struct), `verify.rs` (hash/sig check), `sbom.rs` (CycloneDX emission) + +**crates/lumen-zkml/:** +- Purpose: Pluggable ZK proof system abstraction +- Contains: `ProvingSystem` trait (generic over witness/public/proof/vk types), `MockCommitmentProver` (BLAKE3), `Verification` enum +- Key files: `mock.rs` (BLAKE3 commitment implementation), `verification.rs` (Verification::CommitmentOnly vs ZkVerified) + +**crates/lumen-inference/:** +- Purpose: Backend-agnostic completion generation with streaming support +- Contains: `InferenceEngine` trait, concrete engines: `DummyEngine`, `CandleEngine` (ONNX, feature: candle), `LlamaCppEngine` (stub, feature: llama-cpp), `ChannelEngine` (TEE forward) +- Key files: `backend.rs` (trait + factory), `dummy.rs` (deterministic test engine), `streaming.rs` (StreamingEngine trait), `loader.rs` (model verification + loading) + +**crates/lumen-sandbox/:** +- Purpose: WASM isolation via wasmtime with deterministic config and capability-gated host imports +- Contains: `Sandbox` (module runner), `SandboxConfig` (deterministic engine setup), `HostState` (policy, agent, audit), host imports (`lumen_log`, `lumen_call_tool`) +- Key files: `runner.rs` (run_module execution), `config.rs` (deterministic_engine), `imports.rs` (host FFI implementations), `host.rs` (HostState) + +**crates/lumen-agent/:** +- Purpose: Orchestrates agent step pipeline (defense → infer → policy → tool → prove) +- Contains: `AgentRuntime` (main orchestrator), `StepResult` (output), `Tool` / `ToolRegistry` (executable tools), routing decision types +- Key files: `runtime.rs` (AgentRuntime::step pipeline), `tool.rs` (Tool trait + ToolRegistry), `route.rs` (RoutingDecision types) + +**crates/lumen-orchestrator/:** +- Purpose: Multi-agent supervisor with capability-gated inter-agent messaging +- Contains: `Orchestrator` (registry + inboxes), `AgentHandle`, `InterAgentMessage`, `MessagePolicy` +- Key files: `supervisor.rs` (all logic) + +**crates/lumen-sdk/:** +- Purpose: WASM-targeted SDK for agent code (no_std compatible) +- Contains: `log()`, `call_tool()` host import wrappers, `LogLevel` enum, `ToolError` enum +- Key files: `lib.rs` (all public exports; 100% of SDK) +- Constraint: `no_std`, compiled to `wasm32-unknown-unknown` + +**crates/lumen-sdk-macros/:** +- Purpose: Proc-macro for `#[lumen_agent]` attribute +- Contains: Macro expansion for generating `_start()` WASM entry point +- Key files: `lib.rs` + +**crates/lumen-attestation/:** +- Purpose: Parse Intel TDX Quote v4 and AMD SEV-SNP Attestation Report v2 (format-only verification in v0.3) +- Contains: `AttestationDoc` enum, `TdxQuote`, `SevSnpReport`, wire format parsers +- Key files: `tdx.rs`, `sev_snp.rs`, `lib.rs` (parse dispatcher) + +**crates/lumen-onchain/:** +- Purpose: Emit and deploy on-chain verifiers (EVM Solidity + Mina o1js) for routing proof verification +- Contains: `Chain` enum, `VerifierMeta`, `emit_artifacts()`, `deploy_evm()` / `deploy_mina()` +- Key files: `emit.rs` (code generation), `deploy.rs` (deployment automation), `evm.rs` (Solidity), `mina.rs` (o1js) + +**crates/lumen-cli/:** +- Purpose: User-facing command-line interface +- Contains: Seven subcommands (init, verify-model, sbom, defend, prove, run, verifier) +- Key files: `main.rs` (entry + dispatch), `cmd/*.rs` (subcommand implementations), `policy_file.rs` (TOML loading) + +**agents/:** (Excluded from workspace) +- Purpose: Example WASM agents demonstrating SDK usage +- Contains: `echo-agent/` (minimal agent calling host tools) +- Key files: Agent `src/lib.rs`, `Cargo.toml` with `target: wasm32-unknown-unknown` + +## Naming Conventions + +**Files:** +- **Trait definitions:** `lib.rs` (e.g., `SecureChannel` trait in `lumen-channel/src/lib.rs`) +- **Concrete implementations:** `{name}.rs` matching implementation (e.g., `inproc.rs`, `encrypted.rs` in lumen-channel) +- **Type definitions:** `{plural_of_type}.rs` (e.g., `ids.rs` for `AgentId`, `CapabilityId`, etc.) +- **Entry points:** `main.rs` (CLI binary), `lib.rs` (library crates) +- **Tests:** `{module}_test.rs` or `tests/{feature}_test.rs` +- **Examples:** `examples/{demo_name}.rs` +- **Config:** `config.rs` when config struct is main export + +**Directories:** +- Crate name prefix: `lumen-{feature}` (snake_case, hyphenated) +- Module pattern: One feature = one crate (e.g., `lumen-defense`, `lumen-zkml`) +- Nested modules: Within a crate, use `.rs` files not subdirs (flat structure preferred) + +**Functions:** +- **Constructors:** `new()`, `with_*()` for builder variants (e.g., `PolicyEngine::new()`, `HostState::with_now()`) +- **Factory functions:** `create_*()` or `{type_name}_*()` (e.g., `create_engine()`, `build_stream()`) +- **Verifiers:** `verify_*()`, `check()`, `is_*()` for booleans (e.g., `verify_model()`, `is_human_readable()`) +- **Type conversions:** `as_*()`, `to_*()`, `from_*()` following Rust conventions +- **Async functions:** `_async()` suffix only if no `.await` syntax available; prefer async/await + +**Types:** +- **Newtype IDs:** `{Entity}Id` (e.g., `AgentId`, `ToolId`, `CapabilityId`) +- **Enums:** `PascalCase` with `camelCase` variants (e.g., `Verdict::Block`, `Verification::CommitmentOnly`) +- **Traits:** `{Action}Engine` or `{Concept}` (e.g., `InferenceEngine`, `SecureChannel`, `ProvingSystem`) +- **Structs:** `PascalCase` (e.g., `ModelManifest`, `ToolCall`, `SamplingParams`) +- **Constants:** `SCREAMING_SNAKE_CASE` (e.g., `MAX_NONCES`, `DEFAULT_INBOX_DEPTH`) + +**Modules:** +- **Public modules:** Exported in `lib.rs` (e.g., `pub mod policy;`, `pub mod capability;`) +- **Private modules:** File-only or nested (not re-exported) + +## Key File Locations + +**Entry Points:** +- `crates/lumen-cli/src/main.rs` — CLI binary entry +- `crates/lumen-agent/src/runtime.rs:99` — `AgentRuntime::step()` API entry +- `crates/lumen-sdk/src/lib.rs` — WASM SDK exports (`log`, `call_tool`) +- `agents/echo-agent/src/lib.rs` — Example WASM agent + +**Configuration:** +- `Cargo.toml` (workspace root) — Workspace members, lints, workspace dependencies +- `crates/lumen-sandbox/src/config.rs` — Deterministic WASM engine configuration +- `crates/lumen-inference/src/backend.rs` — Backend selection + sampling parameter defaults +- `crates/lumen-cli/src/policy_file.rs` — Policy TOML schema + loading + +**Core Logic:** +- `crates/lumen-core/src/` — All primitives (IDs, hashing, crypto, errors) +- `crates/lumen-agent/src/runtime.rs` — Main step pipeline +- `crates/lumen-capability/src/policy.rs` — Capability verification +- `crates/lumen-sandbox/src/runner.rs` — WASM execution +- `crates/lumen-defense/src/engine.rs` — Defense pipeline +- `crates/lumen-inference/src/backend.rs` — Engine trait + factories +- `crates/lumen-zkml/src/mock.rs` — Mock BLAKE3 prover + +**Testing:** +- `crates/lumen-agent/tests/determinism.rs` — Determinism validation +- `crates/lumen-sandbox/tests/wasm_echo_agent.rs` — WASM sandbox tests +- `crates/lumen-capability/tests/policy_enforcement.rs` — Policy check tests + +## Where to Add New Code + +**New inference backend:** +1. Create `crates/lumen-inference/src/{backend_name}.rs` +2. Implement `InferenceEngine` trait +3. Add variant to `BackendConfig` enum in `backend.rs` +4. Extend `create_engine()` factory function +5. Add feature flag in `lumen-inference/Cargo.toml` + +**New capability resource type:** +1. Add variant to `Resource` enum in `crates/lumen-capability/src/resource.rs` +2. Implement `matches_action()` for new `Action` variant +3. Add matching rule to `PolicyEngine::check()` in `policy.rs` +4. Update audit logging in `audit.rs` + +**New defense stage:** +1. Add function to `crates/lumen-defense/src/{stage_name}.rs` +2. Call from `DefenseEngine::analyze()` pipeline in `engine.rs` +3. Return `Verdict` or score contribution +4. Register corpus version in `DefenseEngine::corpus_version()` + +**New tool type:** +1. Create handler struct implementing `Tool` trait in `crates/lumen-agent/src/tool.rs` +2. Register in `ToolRegistry` via `register()` method +3. Include required `Capability` with matching `Resource::CallTool(tool_id)` + +**New on-chain verifier:** +1. Add variant to `Chain` enum in `crates/lumen-onchain/src/lib.rs` +2. Create `{chain}.rs` module with codegen function +3. Update `emit::emit_artifacts()` to call new codegen +4. Update `deploy::deploy()` to handle new chain + +**New WASM host import:** +1. Add FFI signature in `crates/lumen-sdk/src/lib.rs` (behind `#[cfg(target_arch = "wasm32")]`) +2. Implement panic in non-WASM in `lib.rs` +3. Add host-side handler in `crates/lumen-sandbox/src/imports.rs` +4. Register import in `crates/lumen-sandbox/src/runner.rs` linker + +**New CLI subcommand:** +1. Create `crates/lumen-cli/src/cmd/{command}.rs` +2. Define `Args` struct with clap derive macros +3. Implement `run()` function +4. Add variant to `Cmd` enum in `main.rs` +5. Dispatch in `main()` match block + +**New model format support:** +1. Create format sniff function in `crates/lumen-provenance/src/{format}.rs` +2. Add `Format` variant in `manifest.rs` +3. Call sniff from `verify_model()` in `verify.rs` + +## Special Directories + +**Generated / Non-committed:** +- `target/` — Cargo build output (in .gitignore) +- `.git/` — Git repository (not part of codebase) + +**Build artifacts (in git):** +- `Cargo.lock` — Locked dependency versions (committed for reproducibility) + +**Documentation:** +- `README.md` — Project overview +- `CLAUDE.md` — Project instructions (Korean, checked in) +- `kernel-comp.md` — Air-gap dependency audit (checked in) +- `.planning/codebase/` — GSD codebase maps (generated, committed) + +**CI/CD:** +- `.github/workflows/` — GitHub Actions (linter, tests, clippy, fmt) + +**Examples:** +- `agents/echo-agent/` — Sample WASM agent (excluded from workspace to avoid build issues) + +--- + +*Structure analysis: 2026-05-07* diff --git a/.planning/codebase/TESTING.md b/.planning/codebase/TESTING.md new file mode 100644 index 0000000..2ed821f --- /dev/null +++ b/.planning/codebase/TESTING.md @@ -0,0 +1,508 @@ +--- +title: Lumen Testing Patterns +last_mapped_commit: dfba311a939388c5892574e844e73a7953796cdd +last_mapped_date: 2026-05-07 +--- + +# Testing Patterns + +**Analysis Date:** 2026-05-07 + +## Test Framework + +### Test Runner + +**Framework:** `#[tokio::test]` macro (from `tokio` crate) +- For async functions: use `#[tokio::test]` +- For sync functions: use `#[test]` +- Config: No separate test config file; uses workspace default + +**Runtime Config:** +- `tokio` version: `1.x` with features `["macros", "rt-multi-thread", "sync", "time"]` +- Tests run with multi-threaded executor by default +- Can override per-test with `#[tokio::test(flavor = "multi_thread")]` or `flavor = "current_thread"` + +### Assertion Library + +**Built-in assertions:** +- `assert!()`, `assert_eq!()`, `assert_ne!()` +- `.expect()` / `.unwrap()` for test setup +- `.is_ok()` / `.is_err()` for Result testing + +**Custom assertions:** +- No dedicated assertion crate +- Manual string matching where needed + +### Run Commands + +```bash +# Run all tests +cargo test --workspace + +# Run tests with output (don't capture stdout) +cargo test --workspace -- --nocapture + +# Run single test +cargo test --lib agent_step_succeeds + +# Run integration tests only +cargo test --test determinism + +# Run with multiple threads (default) +cargo test --workspace -- --test-threads=4 + +# Run with single thread +cargo test --workspace -- --test-threads=1 +``` + +## Test File Organization + +### Location Pattern + +**Integration Tests (per-crate):** +- Path: `crates/[crate-name]/tests/[test-name].rs` +- Top-level `tests/` directory at crate root +- Examples: + - `crates/lumen-agent/tests/determinism.rs` + - `crates/lumen-agent/tests/determinism_stress.rs` + - `crates/lumen-sandbox/tests/wasm_echo_agent.rs` + - `crates/lumen-provenance/tests/verify_safetensors.rs` + - `crates/lumen-provenance/tests/pinset_rotation.rs` + - `crates/lumen-sdk/tests/macro_expansion.rs` + +**Unit Tests (co-located):** +- Placed in same file as code or in `#[cfg(test)]` module at bottom +- Example: `crates/lumen-core/src/crypto.rs` has `#[cfg(test)] mod tests { }` + +**Fixture Data:** +- No dedicated fixture directory; fixtures inline or in test functions +- Use `tempfile` crate for temporary directories in tests +- Example: `write_tiny_safetensors(&dir)` in `verify_safetensors.rs` + +### Naming Convention + +**Test File Names:** +- Descriptive: `determinism.rs`, `verify_safetensors.rs`, `wasm_echo_agent.rs` +- Not `test.rs` or generic names + +**Test Function Names:** +- snake_case +- Describe behavior: `step_succeeds_with_capability`, `missing_capability_rejected` +- Pattern: `[subject]_[scenario]_[outcome]` + +**Module Structure:** +``` +tests/ +├── determinism.rs # Agent step determinism + policy tests +├── determinism_stress.rs # Stress testing determinism +├── wasm_echo_agent.rs # End-to-end WASM echo agent tests +├── verify_safetensors.rs # Model provenance verification +└── pinset_rotation.rs # Pin rotation lifecycle tests +``` + +## Test Structure + +### Async Test Pattern + +```rust +#[tokio::test] +async fn step_succeeds_with_capability() { + // Arrange: Set up fixtures + let runtime = build_runtime(); + + // Act: Execute the code being tested + let result = runtime.step("echo hello").await; + + // Assert: Verify outcomes + let r = result.expect("step ok"); + assert!(r.completion.tool_call.is_some()); + let out = r.tool_output.expect("tool output"); + assert!(out.contains("hello")); +} +``` + +### Sync Test Pattern + +```rust +#[test] +fn verify_clean_file_passes() { + // Arrange + let dir = tempfile::tempdir().unwrap(); + let path = write_tiny_safetensors(&dir); + let hash = Blake3Hash::of_file(&path).unwrap(); + + let manifest = ModelManifest { /* ... */ }; + + // Act + let info = verify_model(&path, &manifest, &[]).unwrap(); + + // Assert + assert_eq!(info.name, "tiny"); +} +``` + +### Setup/Teardown Pattern + +**Setup helpers:** +- Define `fn build_*()` helper functions above tests +- Example: `fn build_runtime() -> AgentRuntime { ... }` +- Helpers initialize shared fixtures + +**Teardown:** +- Implicit via Rust ownership; `Drop` traits clean up +- `tempfile::TempDir` auto-deletes on drop +- No explicit cleanup needed in most cases + +```rust +fn build_runtime() -> AgentRuntime { + let sk = SigningKey::generate(&mut OsRng); + let vk = sk.verifying_key(); + let agent = AgentId::random(&mut OsRng); + let policy = Arc::new(PolicyEngine::new(vec![vk])); + + let echo_tool_id = ToolId::new("echo").unwrap(); + let cap = Capability::sign( + CapabilityBody { /* ... */ }, + &sk, + ).unwrap(); + + AgentRuntime::builder(agent, policy) + .inference(Arc::new(DummyEngine::new())) + .tool(Tool { /* ... */ }) + .capability(echo_tool_id, cap) + .build() + .unwrap() +} + +#[tokio::test] +async fn step_succeeds_with_capability() { + let runtime = build_runtime(); + // ... test logic +} +``` + +## Mocking Strategy + +### Mock Implementations + +**DummyEngine (from `lumen-inference`):** +- Deterministic pattern-matching inference engine for tests +- Returns predictable results based on input text +- No external dependencies or randomness + +```rust +use lumen_inference::DummyEngine; + +let engine = Arc::new(DummyEngine::new()); +``` + +**MockVk (from `lumen-zkml::mock`):** +- Mock verification key for proof validation +- Used in agent runtime tests + +```rust +use lumen_zkml::mock::MockVk; + +let proving_vk = MockVk { + circuit_id: "lumen.routing.v1".into(), +}; +``` + +### What to Mock + +**Mock these:** +- `InferenceEngine` implementations (use `DummyEngine` in tests) +- Verification keys (use `MockVk`) +- Large/slow external resources (models, services) + +**Don't Mock these:** +- Core types (`AgentId`, `CapabilityId`, `Error`) +- Cryptographic operations (use real signing/verification) +- Policy engines (use real `PolicyEngine::new()`) +- Capability tokens (use real `Capability::sign()`) + +### Fixture & Factory Pattern + +**Test Data Construction:** +```rust +// Factory helper in test file: +fn build_runtime() -> AgentRuntime { + let sk = SigningKey::generate(&mut OsRng); + let vk = sk.verifying_key(); + // ... build and return fully configured runtime +} + +// Use in multiple tests: +#[tokio::test] +async fn test_1() { + let rt = build_runtime(); + // ... +} + +#[tokio::test] +async fn test_2() { + let rt = build_runtime(); + // ... +} +``` + +**Temporary Files:** +```rust +use tempfile::TempDir; + +fn write_tiny_safetensors(dir: &tempfile::TempDir) -> PathBuf { + let data: Vec = vec![1, 2, 3, 4, 5, 6, 7, 8]; + let view = TensorView::new(Dtype::U8, vec![data.len()], &data).unwrap(); + let mut tensors = HashMap::new(); + tensors.insert("t0".to_string(), view); + let bytes = safetensors::serialize(&tensors, None).unwrap(); + let path = dir.path().join("tiny.safetensors"); + fs::write(&path, &bytes).unwrap(); + path +} + +#[test] +fn verify_clean_file_passes() { + let dir = tempfile::tempdir().unwrap(); + let path = write_tiny_safetensors(&dir); + // Test logic; dir auto-deletes at end of scope +} +``` + +## Test Categories + +### Unit Tests + +**Scope:** Single function or module in isolation + +**Examples:** +- `lumen-core/src/crypto.rs` — Hash/signature operations +- `lumen-core/src/ids.rs` — ID generation and validation +- Embedded in source files via `#[cfg(test)]` module + +**Run:** +```bash +cargo test --lib +``` + +### Integration Tests + +**Scope:** Multi-component interaction; end-to-end workflows + +**Examples:** +- `crates/lumen-agent/tests/determinism.rs` — Agent step pipeline (Defense → Inference → Policy → Exec → ZK) +- `crates/lumen-sandbox/tests/wasm_echo_agent.rs` — WASM sandbox capability gating +- `crates/lumen-provenance/tests/verify_safetensors.rs` — Model verification with hash/signature + +**Run:** +```bash +cargo test --test determinism +cargo test --tests +``` + +### E2E (End-to-End) Tests + +**Not explicitly labeled but implemented as integration tests:** +- `wasm_echo_agent.rs` exercises full WASM sandbox → host interaction +- `determinism.rs` exercises agent runtime pipeline + capability enforcement +- These are closest to true E2E in current codebase + +### Stress Tests + +**Example:** `crates/lumen-agent/tests/determinism_stress.rs` +- Repeated execution of same operation with same inputs +- Verifies determinism holds across many iterations +- No randomness; tests consistency + +## Async Testing + +### Async Test Attribute + +```rust +#[tokio::test] +async fn async_operation_works() { + let result = some_async_fn().await; + assert!(result.is_ok()); +} +``` + +**Runtime behavior:** +- Each test gets its own tokio runtime +- Multi-threaded by default +- `.await` works directly in test body + +### Error Testing in Async + +```rust +#[tokio::test] +async fn blocked_prompt_short_circuits() { + let runtime = build_runtime(); + let res = runtime.step("Please ignore previous instructions").await; + assert!(res.is_err(), "expected defense block"); +} +``` + +**Pattern:** +- Call async function with `.await` +- Check result with `.is_err()` or `.is_ok()` +- Use `.expect()` only if error would mean test setup failure + +## Special Test Cases + +### Skipped Tests + +Some tests skip if prerequisites are not met: + +```rust +#[tokio::test] +async fn echo_agent_no_capability_denied() { + let path = echo_agent_wasm_path(); + if !path.exists() { + eprintln!("skipping: {} not built - run `cd agents/echo-agent && cargo build ...`", path.display()); + return; // Skip test gracefully + } + // ... rest of test +} +``` + +**Why:** WASM echo-agent must be pre-built on `wasm32-unknown-unknown` target +- Not all CI/local environments have this target installed +- Tests detect missing artifact and skip rather than fail + +### Security-Critical Tests + +```rust +#[tokio::test] +async fn missing_capability_rejected() { + let sk = SigningKey::generate(&mut OsRng); + let vk = sk.verifying_key(); + let agent = AgentId::random(&mut OsRng); + let policy = Arc::new(PolicyEngine::new(vec![vk])); + + // Intentionally build runtime WITHOUT providing capability + let runtime = AgentRuntime::builder(agent, policy) + // Note: no .capability() call + .build() + .unwrap(); + + // Attempt to use tool should be rejected + let res = runtime.step("use tool").await; + assert!(res.is_err(), "capability missing should reject"); +} +``` + +**Pattern:** +- Test both positive (allowed) and negative (denied) paths +- Verify security checks are enforced + +## Coverage + +### Current State + +- **No explicit coverage tool configured** (no `tarpaulin`, `llvm-cov`, etc.) +- Tests exist but coverage percentage not tracked in CI +- Encouraged but not enforced + +### Test Categories by Coverage + +**Well-covered:** +- Core cryptographic primitives (`lumen-core`) +- Agent runtime determinism (`lumen-agent`) +- Policy enforcement and capability gating +- Model provenance verification (`lumen-provenance`) + +**Partially covered:** +- WASM sandbox (requires `wasm32-unknown-unknown` target) +- Inference backends (optional features) + +**Not covered:** +- Optional features (`candle`, `llama-cpp`, `halo2`) — feature-gated in CI + +## CI/CD Testing Pipeline + +### 4-Gate Validation (from `.github/workflows/ci.yml`) + +Every commit must pass: + +```bash +# 1. Build all targets +cargo build --workspace --all-targets --locked + +# 2. Run tests +cargo test --workspace --locked + +# 3. Linting (Clippy with -D warnings) +cargo clippy --workspace --all-targets -- -D warnings + +# 4. Formatting check +cargo fmt --all -- --check +``` + +**Job runs:** +- Linux container: `build-test` job +- macOS native: `build-test-macos` job +- Feature tests: `features` job (halo2, candle) +- Linting: `lint` job (Clippy + rustfmt) +- Documentation: `docs` job (cargo doc, intra-doc links) + +### WASM Target Build + +In CI (both Linux and macOS): +```bash +cd agents/echo-agent +cargo build --release --target wasm32-unknown-unknown --locked +``` + +This artifact is used by `wasm_echo_agent.rs` tests. + +## Running Tests Locally + +### Before Committing + +```bash +# Run full test suite +cargo test --workspace + +# Run with output +cargo test --workspace -- --nocapture + +# Check formatting +cargo fmt --all -- --check + +# Check Clippy +cargo clippy --workspace --all-targets -- -D warnings + +# Build all targets (including binaries, examples) +cargo build --workspace --all-targets + +# Build WASM echo-agent +cd agents/echo-agent && cargo build --release --target wasm32-unknown-unknown +``` + +### Troubleshooting + +**WASM test skipped:** +- Install wasm32 target: `rustup target add wasm32-unknown-unknown` +- Build echo-agent: `cd agents/echo-agent && cargo build --release --target wasm32-unknown-unknown` +- Retry: `cargo test --test wasm_echo_agent` + +**Test timeout:** +- Some determinism stress tests may take time +- Use `--release` profile for faster execution: `cargo test --release --workspace` +- Run single test: `cargo test stress_determinism -- --nocapture` + +## Dependencies for Testing + +**From workspace Cargo.toml:** +- `tokio` (v1, with test executor built-in) +- `tempfile` — For temporary directories in tests +- No separate testing framework dependency + +**Optional test dependencies per-crate:** +- `lumen-inference::DummyEngine` — Mock inference +- `lumen-zkml::mock::MockVk` — Mock verification key +- Elib cryptographic operations (signing, hashing) + +--- + +*Testing analysis: 2026-05-07* From 0818055ff4653e58ab6ac75722938e7a7815119a Mon Sep 17 00:00:00 2001 From: "Q. T. Felix" <53819958+Quant-TheodoreFelix@users.noreply.github.com> Date: Fri, 8 May 2026 00:21:59 +0900 Subject: [PATCH 02/19] add kernel-comp dependency audit and project CLAUDE.md --- CLAUDE.md | 41 ++++++ kernel-comp.md | 377 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 418 insertions(+) create mode 100644 CLAUDE.md create mode 100644 kernel-comp.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..e7d830d --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,41 @@ +# Lumen 프로젝트 목표 + +제로 트러스트(Zero-Trust) 및 폐쇄(Air-Gapped) 환경을 위한 고보안, 검증 가능한 Rust 기반 AI 에이전트 프레임워크. 권한 통제(WASM 샌드박스)와 결과 검증(zkML)을 결합하여, 국가기관 수준의 엄격한 보안 규격을 충족하는 안전한 자율형 AI 구동을 목표. + +**AI 및 보안 오픈소스 생태계 기여를 위한 프로젝트.** + +구현 필요 기능 다음과 같음: + +1. 하이브리드 zkML 파이프라인 + - 선택적 ZK 증명: 연산 비용이 높은 LLM 전체 텍스트 생성 대신, 에이전트의 '도구 선택(Tool-use routing)' 및 '출력 필터링/정책 준수' 로직에만 ezkl 또는 ZKTorch를 적용하여 ZK Proof 생성. + - 자동화 및 검증: CI/CD 파이프라인에서 Proof를 자동 생성하고, 온체인(Mina/EVM) 또는 오프체인 검증기(Verifier)에 배포 및 확인하는 모듈. +2. 권한 분리형 Host-WASM 샌드박스 + - WASM 격리 (Agent Logic): wasmtime과 Rust의 소유권 모델을 활용해 에이전트의 도구 실행 및 통신 로직을 완벽히 격리. 파일, 네트워크, 시스템 환경 접근은 명시적인 Capability 기반으로만 최소한으로 허용. + - Host TEE 실행 (LLM Inference): 하드웨어 가속(GPU)을 온전히 활용하기 위해 무거운 모델 추론은 호스트의 신뢰 실행 환경(TEE) 내부에서 실행하고, WASM 샌드박스와는 격리된 보안 채널(Secure Channel)로만 통신. +3. 결정론적(Deterministic) 제어 모듈 + - 상태 격리: 멀티 에이전트 오케스트레이션 시 메모리 공유 없이 tokio 기반 비동기 처리로 상태 전이의 안정성 확보. + - 연산 통제: ZK 증명의 신뢰성을 보장하기 위해 부동소수점 연산의 하드웨어 의존성을 배제하는 모델 양자화(Quantization) 및 고정소수점(Fixed-point) 연산 파이프라인 구축. +4. 고속 보안 방어 및 출처 검증 엔진 + - 실시간 위협 탐지: Rust의 성능을 살려 지연 시간(Latency)을 최소화한 프롬프트 인젝션 및 제일브레이크 방어/필터링 모듈 탑재. + - 모델 Provenance (공급망 보안): ONNX, Safetensors 모델 로드 시 파일 해시 및 서명을 즉각 검증하고, SBOM을 강제 생성하여 승인되지 않은 모델 가중치 변조를 원천 차단. + +# 구현에 앞서 + +모든 설계는 보안성 우선. 단, 연산 비용 (작업 속도) 극강 최적화 필요. + +Docstring 한국어로 작성. + +마일스톤 `v1.0`(정부 또는 규제 환경에서 production 배포, [FIPS 140-3 compliance audit](https://csrc.nist.gov/pubs/fips/140-3/final), [Kani](https://www.in-com.com/ko/blog/the-rust-developers-toolbox-best-static-code-analysis-tools/#Kani) 또는 [Prusti](https://github.com/viperproject/prusti-dev) 등을 활용한 일부 모듈의 형식 검증, 외부 보안 audit 1회 통과)은 당분간 진행 X. + +# 기능 수정 또는 추가 시 + +`Cargo.toml`이 변경된 경우 `.lock` 파일 갱신하기. + +프로젝트는 항상 다음 네 개의 명령어를 모두 통과해야 함. + +```bash +$ cargo build --workspace --all-targets +$ cargo test --workspace +$ cargo clippy --workspace --all-targets -- -D warnings +$ cargo fmt --all -- --check +``` \ No newline at end of file diff --git a/kernel-comp.md b/kernel-comp.md new file mode 100644 index 0000000..64c0fb3 --- /dev/null +++ b/kernel-comp.md @@ -0,0 +1,377 @@ +# 폐쇄형(Air-Gapped) 환경 의존성 점검 보고서 + +> **목적**: Lumen을 iso-light-k0 마이크로커널 환경에서 동작하도록 개조하기 위해, +> 현재 사용 중인 외부 의존성을 전수 점검하고 교체/제거/유지 방침을 정리. + +--- + +## 요약 + +| 분류 | 의존성 | 조치 | +|------|--------|------| +| **암호학 (교체 대상)** | `blake3` | elib-k0-nt/blake 로 교체 | +| | `ed25519-dalek` | elib-k0-nt/ed25519 로 교체 | +| | `subtle` | elib-k0-nt/constant-time 로 교체 | +| | `rand` + `rand_core` | elib-k0-nt/rng 로 교체 + 어댑터 작성 | +| | `aes-gcm` (crypto-channel) | elib-k0-nt/aes 로 교체 | +| | `x25519-dalek` (crypto-channel) | elib-k0-nt/x25519 로 교체 | +| **대형 외부 (평가 필요)** | `wasmtime` | 벤더링 유지 (대체재 없음) | +| | `halo2_proofs` + `ff` + `pasta_curves` | 현재 mock-only → 별도 결정 필요 | +| | `candle-*` | 벤더링 또는 llama.cpp 백엔드 전환 | +| | `tokenizers` | GGUF 내장 토크나이저로 제거 가능 | +| **유지** | 나머지 (serde, tokio 등) | 순수 Rust, 네트워크 무관 → 벤더링으로 유지 | + +--- + +## 1. 교체 대상: 암호학 의존성 + +### 1-1. `blake3` + +**현재 사용처** + +| 위치 | 사용 내용 | +|------|-----------| +| `lumen-core/src/hash.rs` | `Blake3Hash::of()`, `Blake3Hash::of_file()` — 모델 파일 및 데이터 해시 | +| `lumen-channel/src/encrypted.rs:290` | `blake3::Hasher::new_keyed(shared)` — x25519 공유 비밀에서 방향별 AES 키 도출 (KDF) | +| `lumen-zkml` | 증명 witness commitment 해시 | +| `lumen-inference` | 프롬프트/모델 디제스트 tracing용 해시 | + +**elib-k0-nt 대체** + +`elib-k0-nt/blake` 에 `Blake3` 구현 존재. API 매핑: + +```rust +// 기존: blake3::hash(data) +// 신규: Blake3::new().update(data).finalize() + +// 기존: blake3::Hasher::new_keyed(&key).update(data).finalize() +// → elib-k0-nt/blake 에 keyed 모드 없음 → 추가 구현 필요 (아래 참고) +``` + +**추가 구현 필요 사항** + +`elib-k0-nt/blake` 에 `Blake3::new_keyed(key: &[u8; 32])` 지원 추가 필요. +BLAKE3 스펙의 keyed hash 모드(domain separation context `"hash")는 입력 첫 블록에 키를 혼합하는 방식으로 구현되어 있음. 현재 `lumen-channel` 의 KDF 사용처 1곳이 이에 해당. + +--- + +### 1-2. `ed25519-dalek` + +**현재 사용처** + +| 위치 | 사용 내용 | +|------|-----------| +| `lumen-core/src/crypto.rs` | `SigningKey`, `VerifyingKey` 래퍼 — 에이전트 ID 서명 키쌍 | +| `lumen-channel/src/encrypted.rs` | 핸드셰이크 서명/검증 | +| `lumen-capability` | Capability 토큰 서명/검증 | +| `lumen-provenance` | 모델 매니페스트 Ed25519 서명 검증 | + +**elib-k0-nt 대체** + +`elib-k0-nt/ed25519` 로 직접 교체. API 차이: + +```rust +// 기존 키 생성: SigningKey::generate(&mut OsRng) +// 신규: +let mut seed = [0u8; 32]; +rng.fill_bytes(&mut seed); // elib-k0-nt/rng 사용 +let sk = SecretKey::from_bytes(&seed)?; +let pk = PublicKey::from(&sk); + +// 기존 서명: sk.sign(msg) +// 신규: sign(msg, &sk) → Signature + +// 기존 검증: pk.verify(msg, &sig) +// 신규: verify(msg, &sig, &pk) → Result +``` + +`lumen-core` 의 `SigningKey`/`VerifyingKey` 공개 타입 래퍼 유지 가능 (내부 구현만 교체). + +--- + +### 1-3. `subtle` + +**현재 사용처** + +`lumen-core/src/hash.rs:56–58` 한 곳: `Blake3Hash` 의 타이밍 공격 방어용 상수시간 동등 비교. + +```rust +// 기존: subtle::ConstantTimeEq::ct_eq(&self.0, &other.0).into() +// 신규: CtEqOps::eq(&a, &b).unwrap_u8() == 1 (elib-k0-nt/constant-time) +``` + +단일 사용처이므로 교체 난이도 낮음. + +--- + +### 1-4. `rand` + `rand_core` + +**현재 사용처** + +| 위치 | 사용 내용 | +|------|-----------| +| `lumen-core/src/ids.rs` | `AgentId::random(&mut rng)`, `CapabilityId::random(&mut rng)` — `rand_core::RngCore` 트레이트 수용 | +| `lumen-core/src/crypto.rs` | `SigningKey::generate(&mut OsRng)` | +| `lumen-channel/src/encrypted.rs` | `OsRng` 기반 x25519 임시 키 생성, 논스 생성 | +| 다수 테스트/예제 | `OsRng` | + +**elib-k0-nt 대체** + +`elib-k0-nt/rng` 제공 API: `HashDRBGSHA256::new(entropy, nonce, personalization)` + `generate_fixed::()`. + +```rust +// OS 엔트로피 수집 (elib-k0-nt/rng) +let entropy = rng::os_entropy::get_entropy(64)?; +let mut drbg = HashDRBGSHA256::new(&entropy, &nonce, &personalization)?; +let key_bytes: [u8; 32] = drbg.generate_fixed()?; +``` + +**마이그레이션 시 주의 사항** + +- `rand_core::RngCore` 트레이트를 수용하는 제네릭 함수들(`AgentId::random`)이 있어 트레이트 바운드를 변경하거나, 얇은 `RngCore` 어댑터를 구현해야 함. +- `rand` 크레이트 자체는 dev-only (`[dev-dependencies]`)로 쓰이는 곳이 많으므로, 프로덕션 코드에서는 `rand_core` 만 정리하면 됨. +- `rand_core::OsRng` 는 `elib-k0-nt/rng::os_entropy` 로 대체. + +--- + +### 1-5. `aes-gcm` (feature: `crypto-channel`) + +**현재 사용처** + +`lumen-channel/src/encrypted.rs` 전용: +- `Aes256Gcm::new(key)` — tx/rx 방향별 사이퍼 초기화 +- `cipher.encrypt(nonce, payload)` / `cipher.decrypt(nonce, payload)` — 프레임 암복호화 +- `aes-gcm` 은 태그를 암호문 뒤에 붙여 반환 + +**elib-k0-nt 대체** + +`elib-k0-nt/aes` 의 `AES256GCM` 사용. API 차이 (태그 분리): + +```rust +// 기존: let ciphertext_with_tag = cipher.encrypt(nonce, Payload { msg, aad })?; +// 신규: +let mut ciphertext = vec![0u8; plaintext.len()]; +let mut tag = [0u8; 16]; +AES256GCM::new(key).encrypt(nonce, aad, plaintext, &mut ciphertext, &mut tag)?; +// 프레임 직렬화 시 ciphertext || tag 로 직접 이어붙이면 동일 포맷 유지 가능 +``` + +--- + +### 1-6. `x25519-dalek` (feature: `crypto-channel`) + +**현재 사용처** + +`lumen-channel/src/encrypted.rs:137`: +```rust +let my_eph = EphemeralSecret::random_from_rng(OsRng); +let my_pub = X25519Public::from(&my_eph); +let shared = my_eph.diffie_hellman(&their_pub); +``` + +**elib-k0-nt 대체** + +`elib-k0-nt/x25519` 직접 교체: + +```rust +// 임시 키 생성: rng로 32바이트 생성 후 SecretKey 래핑 +let eph_bytes: [u8; 32] = drbg.generate_fixed()?; +let my_eph = x25519::SecretKey::from_bytes(eph_bytes); +let my_pub = my_eph.public_key(); +let shared: SharedSecret = my_eph.diffie_hellman(&their_pub); +// shared.expose() 로 [u8;32] 접근 가능 +``` + +`EphemeralSecret` 타입 소멸 후 키 파기는 elib-k0-nt `SharedSecret` 의 자동 zeroize로 동일하게 보장됨. + +--- + +## 2. 평가 대상: 대형 외부 의존성 + +### 2-1. `wasmtime` + +**현재 사용처** + +`lumen-sandbox` 전용. 에이전트 코드를 WASM으로 격리 실행하는 핵심 보안 경계. + +- `Engine::new()` — 결정론적 설정 (fuel, epoch, Cranelift JIT) +- `Module::new()` — WASM 바이트코드 컴파일 +- `Store::new()` + `set_fuel()` / `set_epoch_deadline()` — 실행 한계 강제 +- `Linker::instantiate_async()` — 격리 인스턴스 생성 +- `instance.get_func().call_async()` — 진입점 호출 + +**폐쇄형 환경 문제점** + +- 네트워크 비의존적(런타임 무관), 하지만 Cranelift JIT 컴파일러 포함으로 소스 트리가 방대함 (~100개 이상 크레이트). +- 커널 Ring 0/1에서는 JIT 실행 불가 — Ring 3 또는 별도 프로세스에서만 사용 가능. + +**대안 검토** + +| 대안 | 장점 | 단점 | +|------|------|------| +| `wasmi` v0.31+ | 순수 Rust 인터프리터, 소스 트리 소형 | 성능 10–50배 저하, fuel API 상이 | +| `wasm3-sys` | 경량 C 인터프리터 | C 바인딩 → 커널 no_std 불가 | +| wasmtime 벤더링 | 현재 보안 속성 그대로 유지 | 벤더 소스 관리 부담 (~15 MB) | + +**권고**: WASM 샌드박스는 보안의 핵심이므로 wasmtime을 벤더링하여 유지. `wasmi` 로의 전환은 성능 허용 시 별도 검토. 커널 통합 시 Ring 3 사용자공간 프로세스에서 실행하는 구조 필요. + +--- + +### 2-2. `halo2_proofs` + `ff` + `pasta_curves` + +**현재 사용처** + +`lumen-zkml` 의 `halo2` feature 뒤에서만 활성화. + +- `MockProver::verify()` — ZK 회로 제약 충족 여부 검증 (증명 비공개 X, witness 노출) +- `RoutingProofCircuit` — 에이전트 툴 라우팅 결정의 PLONKish 회로 정의 +- 현재 v0.3 기준으로 간결한 ZK(succinct proof)는 구현되지 않음 + +**폐쇄형 환경 문제점** + +- `pasta_curves` 등 타원곡선 연산 의존성이 크고 빌드 시간이 매우 긺. +- MockProver는 실제 ZK가 아니어서 witness가 노출됨 → 보안 기여 미미. +- 네트워크 비의존적이지만 벤더링 크기 상당. + +**직접 구현 방향 (mock 대체)** + +현재 MockProver 사용처는 "회로 제약 만족 여부 검증"에 불과. halo2 없이 대체 가능: + +```rust +// RoutingProofCircuit의 제약 조건들을 순수 단언(assertion) 기반으로 직접 검증 +// → lumen-zkml의 mock 프루버를 halo2 불필요 버전으로 재작성 +// BLAKE3 기반 commitment만 유지 (elib-k0-nt/blake) +``` + +실제 succinct ZK가 필요한 v0.4 시점에는 별도 프레임워크(SP1, RISC Zero 등) 선택 필요. + +**권고**: `halo2` feature를 기본에서 제거하고, mock prover를 halo2 불필요 버전으로 재구현. 실제 ZK는 마일스톤 재검토 시 결정. + +--- + +### 2-3. `candle-core` + `candle-onnx` + `candle-transformers` + +**현재 사용처** + +`lumen-inference` 의 `candle` / `candle-llm` feature 뒤에서만 활성화. + +- `candle-core`: `Device::Cpu`, `Tensor` 연산 (CPU 전용) +- `candle-transformers`: `ModelWeights` (GGUF 양자화 LLaMA), `LogitsProcessor` 샘플링 +- `candle-onnx`: ONNX 모델 라우팅 엔진 + +**폐쇄형 환경 문제점** + +- 런타임 네트워크 비의존적이나, candle은 HuggingFace Hub 다운로드 예제 코드 포함 → **소스 벤더링 시 해당 부분 제거 필요**. +- `rayon` (병렬 연산), `blas`/`metal` 선택적 의존 → 커널 환경에서는 단일 스레드 강제 필요. +- 빌드 의존 크레이트 수 매우 많음. + +**대안** + +| 대안 | 비고 | +|------|------| +| `llama-cpp-2` (C 바인딩) | 이미 `lumen-inference/src/llama_cpp.rs` 스텁 존재. GGUF 내장 토크나이저 지원. | +| candle 소스 벤더링 | CPU-only feature 강제, HF Hub 코드 제거 필요 | +| 자체 GGUF 파서 + 추론 | 구현 비용 매우 높음 | + +**권고**: llama.cpp 백엔드(`llama-cpp-2`)를 우선 완성. air-gapped에서는 C 코드가 허용된다면 llama.cpp가 더 성숙하고 가벼움. candle은 소스 벤더링 후 CPU-only로 유지하는 것도 가능. + +--- + +### 2-4. `tokenizers` (HuggingFace) + +**현재 사용처** + +`lumen-inference/src/candle_llm.rs:86`: +```rust +let tokenizer = Tokenizer::from_file(tokenizer_path) // HF tokenizer.json 로컬 파일 +``` + +- BPE/WordPiece 토크나이저를 `tokenizer.json` 형식으로 로드 +- `encode()` / `decode()` — 텍스트 ↔ 토큰 ID 변환 +- EOS 토큰 감지 (``, `<|endoftext|>`) + +**폐쇄형 환경 문제점** + +- `onig` feature: C 소스(Oniguruma 정규식)를 소스에서 빌드 → 커널 no_std 환경 불가. +- 대형 dep tree (rayon, serde_json, unicode 등). +- **GGUF 모델 파일에는 토크나이저 어휘/머지 규칙이 내장되어 있음** — `tokenizer.json` 불필요. + +**직접 구현 방향** + +GGUF 형식(`gguf-rs` 또는 직접 파서)에서 어휘를 추출 후 최소 BPE 토크나이저 구현: + +``` +GGUF 헤더 → tokenizer.ggml.* 메타데이터 추출 + → vocab (id → str), merges (str pair → id) 로딩 + → encode(): pre-tokenize → BPE 머지 반복 + → decode(): id → str 매핑 +``` + +LLaMA 3 / Mistral 계열은 SentencePiece BPE, GPT-2 계열은 Byte-BPE. +약 300–500 LoC 순수 Rust 구현 가능 (no_std 호환). + +**권고**: `tokenizers` 제거하고 GGUF 내장 어휘 기반 최소 BPE 토크나이저를 `lumen-inference` 에 직접 구현. llama.cpp 백엔드 사용 시 해당 백엔드가 토크나이저를 내장 처리하므로 불필요. + +--- + +## 3. 유지 대상 (문제없는 의존성) + +아래 의존성들은 순수 Rust, 네트워크 무관하며 직접 구현 비용이 유지 비용을 초과. **소스 벤더링**으로 유지. + +| 의존성 | 이유 | +|--------|------| +| `tokio` | 비동기 런타임. OS API만 사용. 커널 Ring 3 프로세스에서 동작 가능. | +| `async-trait`, `futures` | 순수 Rust 비동기 추상화. | +| `serde`, `serde_json`, `toml`, `postcard` | 직렬화. 네트워크 무관. | +| `hex` | 16진수 인코딩. 60 LoC 대체 가능하나 유지가 합리적. | +| `thiserror`, `anyhow` | 에러 추상화. 순수 Rust. | +| `aho-corasick`, `regex` | 프롬프트 인젝션 방어 패턴 매칭. 순수 Rust, 네트워크 무관. | +| `globset` | 파일 경로 Capability 매칭. 순수 Rust. | +| `once_cell` | 정적 초기화. 순수 Rust. | +| `parking_lot` | 동시성 기본기. 순수 Rust. | +| `safetensors` | 모델 헤더 읽기 전용. 네트워크 무관. 순수 Rust. | +| `clap` | CLI 전용. 커널 내부 로직 불관여. | +| `tracing`, `tracing-subscriber` | 감사 로그. 순수 Rust. | +| `criterion` | dev-only 벤치마크. | +| `wat` | dev-only WASM 텍스트 변환. | +| `safetensors` | 테스트 픽스처 생성 전용 (프로덕션 불사용). | + +--- + +## 4. 마이그레이션 우선순위 + +### Phase 1 — 암호학 교체 (즉시 착수) + +교체 자체가 API 레벨 수정에 그침. elib-k0-nt 모듈로 1:1 대체. + +1. `subtle` → `elib-k0-nt/constant-time` (`lumen-core/src/hash.rs` 1곳) +2. `blake3` → `elib-k0-nt/blake` (keyed 모드 추가 필요) +3. `ed25519-dalek` → `elib-k0-nt/ed25519` +4. `rand` + `rand_core` → `elib-k0-nt/rng` + `RngCore` 어댑터 작성 +5. `aes-gcm` → `elib-k0-nt/aes` (crypto-channel feature) +6. `x25519-dalek` → `elib-k0-nt/x25519` (crypto-channel feature) + +### Phase 2 — 추론 백엔드 정비 + +1. `tokenizers` 제거 → GGUF 내장 BPE 토크나이저 직접 구현 또는 llama.cpp 백엔드 전환 +2. candle 의존성을 llama.cpp 백엔드로 대체 (또는 소스 벤더링 후 CPU-only 강제) + +### Phase 3 — ZK 정리 및 WASM 벤더링 + +1. `halo2` feature 기본 비활성화 + mock prover 독립 재구현 (halo2_proofs 제거) +2. `wasmtime` 전체 소스 벤더링 + HF Hub 참조 제거 + +### Phase 4 — 나머지 의존성 벤더링 + +나머지 "유지 대상" 의존성들을 오프라인 소스 벤더링(`cargo vendor`)으로 전환. `iso-light-k0` 빌드 시스템에 통합. + +--- + +## 5. elib-k0-nt 미지원 기능 (신규 구현 필요) + +| 필요 기능 | 현재 대응 | 구현 방향 | +|-----------|-----------|-----------| +| **BLAKE3 keyed 해시** | `blake3::Hasher::new_keyed()` | elib-k0-nt/blake에 `Blake3::new_keyed(key: &[u8;32])` 추가 | +| **RngCore 어댑터** | `rand_core::RngCore` 트레이트 | `elib-k0-nt/rng::HashDRBG`를 `RngCore` 구현체로 감싸는 어댑터 (Lumen 내부 구현) | +| **GGUF 토크나이저** | `tokenizers` crate | `lumen-inference` 에 최소 BPE 구현 (~400 LoC, no_std 가능) | +| **Halo2-free mock prover** | `halo2_proofs::MockProver` | 제약 조건 직접 평가 로직으로 대체 (BLAKE3 commitment 유지) | From 56d081428c7e5bb093ae0f32bef812e5efd37c7a Mon Sep 17 00:00:00 2001 From: "Q. T. Felix" <53819958+Quant-TheodoreFelix@users.noreply.github.com> Date: Fri, 8 May 2026 00:22:11 +0900 Subject: [PATCH 03/19] switch crypto primitives to elib-k0-nt and harden key zeroization Replaces blake3 / ed25519-dalek / subtle / rand / aes-gcm / x25519-dalek with elib-k0-nt modules so the crate graph contains no external crypto dependencies. Adds explicit zeroization for ephemeral X25519 seeds, AES session keys, and the DRBG reseed entropy buffer. Removes the dead SigningKey::to_seed footgun. --- Cargo.lock | 907 ++---------------- Cargo.toml | 43 +- crates/lumen-agent/Cargo.toml | 1 - crates/lumen-agent/tests/determinism.rs | 2 +- .../lumen-agent/tests/determinism_stress.rs | 4 +- crates/lumen-capability/Cargo.toml | 1 - crates/lumen-channel/Cargo.toml | 9 +- crates/lumen-channel/src/encrypted.rs | 119 ++- crates/lumen-cli/Cargo.toml | 1 - crates/lumen-cli/examples/hello_agent.rs | 2 +- crates/lumen-core/Cargo.toml | 10 +- crates/lumen-core/src/crypto.rs | 91 +- crates/lumen-core/src/hash.rs | 49 +- crates/lumen-core/src/ids.rs | 6 +- crates/lumen-core/src/lib.rs | 2 + crates/lumen-core/src/rng.rs | 135 +++ crates/lumen-orchestrator/Cargo.toml | 1 - crates/lumen-orchestrator/src/supervisor.rs | 2 +- crates/lumen-provenance/Cargo.toml | 1 - crates/lumen-sandbox/Cargo.toml | 1 - crates/lumen-sandbox/src/runner.rs | 2 +- crates/lumen-sandbox/tests/wasm_echo_agent.rs | 2 +- 22 files changed, 432 insertions(+), 959 deletions(-) create mode 100644 crates/lumen-core/src/rng.rs diff --git a/Cargo.lock b/Cargo.lock index 77bf10e..6e01ca1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11,39 +11,12 @@ dependencies = [ "gimli", ] -[[package]] -name = "aead" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" -dependencies = [ - "crypto-common", - "generic-array", -] - [[package]] name = "aes" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" -dependencies = [ - "cfg-if", - "cipher", - "cpufeatures 0.2.17", -] - -[[package]] -name = "aes-gcm" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" +version = "1.0.0" dependencies = [ - "aead", - "aes", - "cipher", - "ctr", - "ghash", - "subtle", + "constant-time", + "zeroize", ] [[package]] @@ -111,7 +84,7 @@ version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -122,7 +95,7 @@ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -137,18 +110,6 @@ version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" -[[package]] -name = "arrayref" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" - -[[package]] -name = "arrayvec" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" - [[package]] name = "async-trait" version = "0.1.89" @@ -172,27 +133,6 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" -[[package]] -name = "base64ct" -version = "1.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" - -[[package]] -name = "bit-set" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" - [[package]] name = "bitflags" version = "2.11.1" @@ -200,40 +140,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" [[package]] -name = "bitvec" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" -dependencies = [ - "funty", - "radium", - "tap", - "wyz", -] - -[[package]] -name = "blake2b_simd" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b79834656f71332577234b50bfc009996f7449e0c056884e6a02492ded0ca2f3" -dependencies = [ - "arrayref", - "arrayvec", - "constant_time_eq", -] - -[[package]] -name = "blake3" -version = "1.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aa83c34e62843d924f905e0f5c866eb1dd6545fc4d719e803d9ba6030371fce" +name = "blake" +version = "1.0.0" dependencies = [ - "arrayref", - "arrayvec", - "cc", - "cfg-if", - "constant_time_eq", - "cpufeatures 0.3.0", + "constant-time", + "zeroize", ] [[package]] @@ -310,12 +221,12 @@ dependencies = [ "memmap2", "num-traits", "num_cpus", - "rand 0.9.4", + "rand", "rand_distr", "rayon", "safetensors", "thiserror 2.0.18", - "tokenizers 0.22.2", + "tokenizers", "yoke", "zip", ] @@ -348,25 +259,6 @@ dependencies = [ "prost-build", ] -[[package]] -name = "candle-transformers" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f59d08c89e9f4af9c464e2f3a8e16199e7cc601e6f34538c2cfbb42b623b1783" -dependencies = [ - "byteorder", - "candle-core", - "candle-nn", - "fancy-regex", - "num-traits", - "rand 0.9.4", - "rayon", - "serde", - "serde_json", - "serde_plain", - "tracing", -] - [[package]] name = "castaway" version = "0.2.4" @@ -392,16 +284,6 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", -] - [[package]] name = "clap" version = "4.6.1" @@ -473,29 +355,8 @@ dependencies = [ ] [[package]] -name = "console" -version = "0.15.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" -dependencies = [ - "encode_unicode", - "libc", - "once_cell", - "unicode-width", - "windows-sys 0.59.0", -] - -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - -[[package]] -name = "constant_time_eq" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" +name = "constant-time" +version = "1.0.0" [[package]] name = "cpp_demangle" @@ -515,15 +376,6 @@ dependencies = [ "libc", ] -[[package]] -name = "cpufeatures" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" -dependencies = [ - "libc", -] - [[package]] name = "cranelift-assembler-x64" version = "0.131.1" @@ -713,46 +565,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" dependencies = [ "generic-array", - "rand_core 0.6.4", "typenum", ] -[[package]] -name = "ctr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" -dependencies = [ - "cipher", -] - -[[package]] -name = "curve25519-dalek" -version = "4.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" -dependencies = [ - "cfg-if", - "cpufeatures 0.2.17", - "curve25519-dalek-derive", - "digest", - "fiat-crypto", - "rustc_version", - "subtle", - "zeroize", -] - -[[package]] -name = "curve25519-dalek-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "darling" version = "0.20.11" @@ -797,16 +612,6 @@ dependencies = [ "serde", ] -[[package]] -name = "der" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" -dependencies = [ - "const-oid", - "zeroize", -] - [[package]] name = "derive_builder" version = "0.20.2" @@ -866,26 +671,9 @@ checksum = "e1d926b4d407d372f141f93bb444696142c29d32962ccbd3531117cf3aa0bfa9" [[package]] name = "ed25519" -version = "2.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" -dependencies = [ - "pkcs8", - "signature", -] - -[[package]] -name = "ed25519-dalek" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" +version = "1.0.0" dependencies = [ - "curve25519-dalek", - "ed25519", - "rand_core 0.6.4", - "serde", - "sha2", - "subtle", + "sha2 1.0.0", "zeroize", ] @@ -907,12 +695,6 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" -[[package]] -name = "encode_unicode" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" - [[package]] name = "enum-as-inner" version = "0.6.1" @@ -938,7 +720,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -946,20 +728,6 @@ name = "esaxx-rs" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d817e038c30374a4bcb22f94d0a8a0e216958d4c3dcde369b1439fec4bdda6e6" -dependencies = [ - "cc", -] - -[[package]] -name = "fancy-regex" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72cf461f865c862bb7dc573f643dd6a2b6842f7c30b07882b56bd148cc2761b8" -dependencies = [ - "bit-set", - "regex-automata", - "regex-syntax", -] [[package]] name = "fastrand" @@ -967,23 +735,6 @@ version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" -[[package]] -name = "ff" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" -dependencies = [ - "bitvec", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "fiat-crypto" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" - [[package]] name = "find-msvc-tools" version = "0.1.9" @@ -1004,7 +755,7 @@ checksum = "c2d1f04709a8ac06e8e8042875a3c466cc4832d3c1a18dbcb9dba3c6e83046bc" dependencies = [ "half", "num-traits", - "rand 0.9.4", + "rand", "rand_distr", ] @@ -1026,12 +777,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - [[package]] name = "futures" version = "0.3.32" @@ -1249,17 +994,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "getrandom" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - [[package]] name = "getrandom" version = "0.3.4" @@ -1285,16 +1019,6 @@ dependencies = [ "wasip3", ] -[[package]] -name = "ghash" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" -dependencies = [ - "opaque-debug", - "polyval", -] - [[package]] name = "gimli" version = "0.33.0" @@ -1303,7 +1027,7 @@ checksum = "0bf7f043f89559805f8c7cacc432749b2fa0d0a0a9ee46ce47164ed5ba7f126c" dependencies = [ "fnv", "hashbrown 0.16.1", - "indexmap 2.14.0", + "indexmap", "stable_deref_trait", ] @@ -1320,17 +1044,6 @@ dependencies = [ "regex-syntax", ] -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff", - "rand_core 0.6.4", - "subtle", -] - [[package]] name = "half" version = "2.7.1" @@ -1341,33 +1054,11 @@ dependencies = [ "cfg-if", "crunchy", "num-traits", - "rand 0.9.4", + "rand", "rand_distr", "zerocopy", ] -[[package]] -name = "halo2_proofs" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05713f117155643ce10975e0bee44a274bcda2f4bb5ef29a999ad67c1fa8d4d3" -dependencies = [ - "blake2b_simd", - "ff", - "group", - "indexmap 1.9.3", - "maybe-rayon", - "pasta_curves", - "rand_core 0.6.4", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - [[package]] name = "hashbrown" version = "0.15.5" @@ -1429,16 +1120,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", -] - [[package]] name = "indexmap" version = "2.14.0" @@ -1451,52 +1132,12 @@ dependencies = [ "serde_core", ] -[[package]] -name = "indicatif" -version = "0.17.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235" -dependencies = [ - "console", - "number_prefix", - "portable-atomic", - "unicode-width", - "web-time", -] - -[[package]] -name = "inout" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" -dependencies = [ - "generic-array", -] - [[package]] name = "is_terminal_polyfill" version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" -[[package]] -name = "itertools" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.14.0" @@ -1512,26 +1153,11 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" -[[package]] -name = "js-sys" -version = "0.3.97" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1840c94c045fbcf8ba2812c95db44499f7c64910a912551aaaa541decebcacf" -dependencies = [ - "cfg-if", - "futures-util", - "once_cell", - "wasm-bindgen", -] - [[package]] name = "lazy_static" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -dependencies = [ - "spin", -] [[package]] name = "leb128fmt" @@ -1585,7 +1211,6 @@ dependencies = [ "lumen-zkml", "parking_lot", "postcard", - "rand 0.8.6", "serde", "serde_json", "tokio", @@ -1611,7 +1236,6 @@ dependencies = [ "lumen-core", "parking_lot", "postcard", - "rand 0.8.6", "serde", "serde_json", "thiserror 2.0.18", @@ -1623,17 +1247,16 @@ dependencies = [ name = "lumen-channel" version = "0.4.1" dependencies = [ - "aes-gcm", + "aes", "async-trait", - "blake3", "lumen-attestation", "lumen-core", "postcard", - "rand 0.8.6", "serde", "thiserror 2.0.18", "tokio", - "x25519-dalek", + "x25519", + "zeroize", ] [[package]] @@ -1652,7 +1275,6 @@ dependencies = [ "lumen-orchestrator", "lumen-provenance", "lumen-zkml", - "rand 0.8.6", "serde", "serde_json", "tokio", @@ -1665,16 +1287,16 @@ dependencies = [ name = "lumen-core" version = "0.4.1" dependencies = [ - "blake3", - "ed25519-dalek", + "blake", + "constant-time", + "ed25519", "hex", "postcard", - "rand 0.8.6", - "rand_core 0.6.4", + "rng", "serde", "serde_json", - "subtle", "thiserror 2.0.18", + "zeroize", ] [[package]] @@ -1703,10 +1325,8 @@ name = "lumen-inference" version = "0.4.1" dependencies = [ "async-trait", - "blake3", "candle-core", "candle-onnx", - "candle-transformers", "futures", "lumen-channel", "lumen-core", @@ -1714,7 +1334,6 @@ dependencies = [ "lumen-provenance", "serde", "serde_json", - "tokenizers 0.19.1", "tokio", "tracing", ] @@ -1744,7 +1363,6 @@ dependencies = [ "lumen-inference", "lumen-zkml", "parking_lot", - "rand 0.8.6", "serde", "serde_json", "tokio", @@ -1757,7 +1375,6 @@ version = "0.4.1" dependencies = [ "lumen-core", "postcard", - "rand 0.8.6", "safetensors", "serde", "serde_json", @@ -1774,7 +1391,6 @@ dependencies = [ "lumen-capability", "lumen-core", "parking_lot", - "rand 0.8.6", "serde", "thiserror 2.0.18", "tokio", @@ -1803,11 +1419,8 @@ dependencies = [ name = "lumen-zkml" version = "0.4.1" dependencies = [ - "blake3", - "ff", - "halo2_proofs", + "blake", "lumen-core", - "pasta_curves", "postcard", "serde", "serde_json", @@ -1849,16 +1462,6 @@ dependencies = [ "regex-automata", ] -[[package]] -name = "maybe-rayon" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" -dependencies = [ - "cfg-if", - "rayon", -] - [[package]] name = "memchr" version = "2.8.0" @@ -1934,7 +1537,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -1967,12 +1570,6 @@ dependencies = [ "libc", ] -[[package]] -name = "number_prefix" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" - [[package]] name = "object" version = "0.39.1" @@ -1981,7 +1578,7 @@ checksum = "2e5a6c098c7a3b6547378093f5cc30bc54fd361ce711e05293a5cc589562739b" dependencies = [ "crc32fast", "hashbrown 0.17.0", - "indexmap 2.14.0", + "indexmap", "memchr", ] @@ -2019,12 +1616,6 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "opaque-debug" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" - [[package]] name = "parking_lot" version = "0.12.5" @@ -2048,21 +1639,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "pasta_curves" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e57598f73cc7e1b2ac63c79c517b31a0877cd7c402cdcaa311b5208de7a095" -dependencies = [ - "blake2b_simd", - "ff", - "group", - "lazy_static", - "rand 0.8.6", - "static_assertions", - "subtle", -] - [[package]] name = "paste" version = "1.0.15" @@ -2077,7 +1653,7 @@ checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" dependencies = [ "fixedbitset", "hashbrown 0.15.5", - "indexmap 2.14.0", + "indexmap", ] [[package]] @@ -2086,40 +1662,12 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - [[package]] name = "pkg-config" version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" -[[package]] -name = "polyval" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" -dependencies = [ - "cfg-if", - "cpufeatures 0.2.17", - "opaque-debug", - "universal-hash", -] - -[[package]] -name = "portable-atomic" -version = "1.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" - [[package]] name = "postcard" version = "1.1.3" @@ -2177,7 +1725,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "343d3bd7056eda839b03204e68deff7d1b13aba7af2b2fd16890697274262ee7" dependencies = [ "heck", - "itertools 0.14.0", + "itertools", "log", "multimap", "petgraph", @@ -2196,7 +1744,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b" dependencies = [ "anyhow", - "itertools 0.14.0", + "itertools", "proc-macro2", "quote", "syn", @@ -2278,41 +1826,14 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" -[[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - -[[package]] -name = "rand" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - [[package]] name = "rand" version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.5", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", + "rand_chacha", + "rand_core", ] [[package]] @@ -2322,16 +1843,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.5", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.17", + "rand_core", ] [[package]] @@ -2350,7 +1862,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8615d50dcf34fa31f7ab52692afec947c4dd0ab803cc87cb3b0b4570ff7463" dependencies = [ "num-traits", - "rand 0.9.4", + "rand", ] [[package]] @@ -2372,17 +1884,6 @@ dependencies = [ "rayon-core", ] -[[package]] -name = "rayon-cond" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "059f538b55efd2309c9794130bc149c6a553db90e9d99c2030785c82f0bd7df9" -dependencies = [ - "either", - "itertools 0.11.0", - "rayon", -] - [[package]] name = "rayon-cond" version = "0.4.0" @@ -2390,7 +1891,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2964d0cf57a3e7a06e8183d14a8b527195c706b7983549cd5462d5aa3747438f" dependencies = [ "either", - "itertools 0.14.0", + "itertools", "rayon", ] @@ -2462,6 +1963,14 @@ version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" +[[package]] +name = "rng" +version = "1.0.0" +dependencies = [ + "sha2 1.0.0", + "zeroize", +] + [[package]] name = "rustc-demangle" version = "0.1.27" @@ -2474,15 +1983,6 @@ version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" -[[package]] -name = "rustc_version" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" -dependencies = [ - "semver", -] - [[package]] name = "rustix" version = "1.1.4" @@ -2493,7 +1993,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -2589,15 +2089,6 @@ dependencies = [ "zmij", ] -[[package]] -name = "serde_plain" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce1fc6db65a611022b23a0dec6975d63fb80a302cb3388835ff02c097258d50" -dependencies = [ - "serde", -] - [[package]] name = "serde_spanned" version = "0.6.9" @@ -2614,10 +2105,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", - "cpufeatures 0.2.17", + "cpufeatures", "digest", ] +[[package]] +name = "sha2" +version = "1.0.0" +dependencies = [ + "constant-time", + "zeroize", +] + [[package]] name = "sharded-slab" version = "0.1.7" @@ -2633,15 +2132,6 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "rand_core 0.6.4", -] - [[package]] name = "slab" version = "0.4.12" @@ -2657,22 +2147,6 @@ dependencies = [ "serde", ] -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - [[package]] name = "spm_precompiled" version = "0.1.4" @@ -2703,12 +2177,6 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - [[package]] name = "syn" version = "2.0.117" @@ -2745,12 +2213,6 @@ dependencies = [ "walkdir", ] -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - [[package]] name = "target-lexicon" version = "0.13.5" @@ -2767,7 +2229,7 @@ dependencies = [ "getrandom 0.4.2", "once_cell", "rustix", - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -2828,38 +2290,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "tokenizers" -version = "0.19.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e500fad1dd3af3d626327e6a3fe5050e664a6eaa4708b8ca92f1794aaf73e6fd" -dependencies = [ - "aho-corasick", - "derive_builder", - "esaxx-rs", - "getrandom 0.2.17", - "indicatif", - "itertools 0.12.1", - "lazy_static", - "log", - "macro_rules_attribute", - "monostate", - "onig", - "paste", - "rand 0.8.6", - "rayon", - "rayon-cond 0.3.0", - "regex", - "regex-syntax", - "serde", - "serde_json", - "spm_precompiled", - "thiserror 1.0.69", - "unicode-normalization-alignments", - "unicode-segmentation", - "unicode_categories", -] - [[package]] name = "tokenizers" version = "0.22.2" @@ -2873,15 +2303,15 @@ dependencies = [ "derive_builder", "esaxx-rs", "getrandom 0.3.4", - "itertools 0.14.0", + "itertools", "log", "macro_rules_attribute", "monostate", "onig", "paste", - "rand 0.9.4", + "rand", "rayon", - "rayon-cond 0.4.0", + "rayon-cond", "regex", "regex-syntax", "serde", @@ -2942,7 +2372,7 @@ version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.14.0", + "indexmap", "serde", "serde_spanned", "toml_datetime", @@ -3068,16 +2498,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" -[[package]] -name = "universal-hash" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" -dependencies = [ - "crypto-common", - "subtle", -] - [[package]] name = "utf8parse" version = "0.2.2" @@ -3106,12 +2526,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "wasi" -version = "0.11.1+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" - [[package]] name = "wasip2" version = "1.0.3+wasi-0.2.9" @@ -3130,51 +2544,6 @@ dependencies = [ "wit-bindgen 0.51.0", ] -[[package]] -name = "wasm-bindgen" -version = "0.2.120" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df52b6d9b87e0c74c9edfa1eb2d9bf85e5d63515474513aa50fa181b3c4f5db1" -dependencies = [ - "cfg-if", - "once_cell", - "rustversion", - "wasm-bindgen-macro", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.120" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b1041f495fb322e64aca85f5756b2172e35cd459376e67f2a6c9dffcedb103" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.120" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dcd0ff20416988a18ac686d4d4d0f6aae9ebf08a389ff5d29012b05af2a1b41" -dependencies = [ - "bumpalo", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.120" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49757b3c82ebf16c57d69365a142940b384176c24df52a087fb748e2085359ea" -dependencies = [ - "unicode-ident", -] - [[package]] name = "wasm-encoder" version = "0.244.0" @@ -3212,7 +2581,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" dependencies = [ "anyhow", - "indexmap 2.14.0", + "indexmap", "wasm-encoder 0.244.0", "wasmparser 0.244.0", ] @@ -3225,7 +2594,7 @@ checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" dependencies = [ "bitflags", "hashbrown 0.15.5", - "indexmap 2.14.0", + "indexmap", "semver", ] @@ -3237,7 +2606,7 @@ checksum = "71cde4757396defafd25417cfb36aa3161027d06d865b0c24baaae229aac005d" dependencies = [ "bitflags", "hashbrown 0.16.1", - "indexmap 2.14.0", + "indexmap", "semver", "serde", ] @@ -3249,7 +2618,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa4439c5eee9df71ee0c6efb37f63b1fcb1fec38f85f5142c54e7ed05d33091a" dependencies = [ "bitflags", - "indexmap 2.14.0", + "indexmap", "semver", ] @@ -3300,7 +2669,7 @@ dependencies = [ "wasmtime-internal-jit-icache-coherence", "wasmtime-internal-unwinder", "wasmtime-internal-versioned-export-macros", - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -3316,14 +2685,14 @@ dependencies = [ "cranelift-entity", "gimli", "hashbrown 0.16.1", - "indexmap 2.14.0", + "indexmap", "log", "object", "postcard", "rustc-demangle", "serde", "serde_derive", - "sha2", + "sha2 0.10.9", "smallvec", "target-lexicon", "wasm-encoder 0.246.2", @@ -3377,7 +2746,7 @@ dependencies = [ "cranelift-frontend", "cranelift-native", "gimli", - "itertools 0.14.0", + "itertools", "log", "object", "pulley-interpreter", @@ -3403,7 +2772,7 @@ dependencies = [ "rustix", "wasmtime-environ", "wasmtime-internal-versioned-export-macros", - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -3425,7 +2794,7 @@ dependencies = [ "cfg-if", "libc", "wasmtime-internal-core", - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -3461,7 +2830,7 @@ dependencies = [ "anyhow", "bitflags", "heck", - "indexmap 2.14.0", + "indexmap", "wit-parser 0.246.2", ] @@ -3487,23 +2856,13 @@ dependencies = [ "wast", ] -[[package]] -name = "web-time" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - [[package]] name = "winapi-util" version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -3512,15 +2871,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets", -] - [[package]] name = "windows-sys" version = "0.61.2" @@ -3530,70 +2880,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - [[package]] name = "winnow" version = "0.7.15" @@ -3637,7 +2923,7 @@ checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" dependencies = [ "anyhow", "heck", - "indexmap 2.14.0", + "indexmap", "prettyplease", "syn", "wasm-metadata", @@ -3668,7 +2954,7 @@ checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" dependencies = [ "anyhow", "bitflags", - "indexmap 2.14.0", + "indexmap", "log", "serde", "serde_derive", @@ -3687,7 +2973,7 @@ checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" dependencies = [ "anyhow", "id-arena", - "indexmap 2.14.0", + "indexmap", "log", "semver", "serde", @@ -3706,7 +2992,7 @@ dependencies = [ "anyhow", "hashbrown 0.16.1", "id-arena", - "indexmap 2.14.0", + "indexmap", "log", "semver", "serde", @@ -3717,23 +3003,10 @@ dependencies = [ ] [[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - -[[package]] -name = "x25519-dalek" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" +name = "x25519" +version = "1.0.0" dependencies = [ - "curve25519-dalek", - "rand_core 0.6.4", - "serde", + "constant-time", "zeroize", ] @@ -3803,23 +3076,7 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] +version = "1.0.0" [[package]] name = "zip" @@ -3828,7 +3085,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c42e33efc22a0650c311c2ef19115ce232583abbe80850bc8b66509ebef02de0" dependencies = [ "crc32fast", - "indexmap 2.14.0", + "indexmap", "memchr", "typed-path", ] diff --git a/Cargo.toml b/Cargo.toml index 9bb301b..ce039f8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -51,12 +51,14 @@ toml = "0.8" postcard = { version = "1", default-features = false, features = ["use-std"] } hex = "0.4" -# Crypto -blake3 = "1" -ed25519-dalek = { version = "2", features = ["rand_core"] } -rand = "0.8" -rand_core = "0.6" -subtle = "2" +# Crypto +elib-blake = { package = "blake", path = "../elib-k0-nt/blake", version = "1.0.0" } +elib-ed25519 = { package = "ed25519", path = "../elib-k0-nt/ed25519", version = "1.0.0" } +elib-x25519 = { package = "x25519", path = "../elib-k0-nt/x25519", version = "1.0.0" } +elib-aes = { package = "aes", path = "../elib-k0-nt/aes", version = "1.0.0" } +elib-rng = { package = "rng", path = "../elib-k0-nt/rng", version = "1.0.0" } +elib-constant-time = { package = "constant-time", path = "../elib-k0-nt/constant-time", version = "1.0.0" } +elib-zeroize = { package = "zeroize", path = "../elib-k0-nt/zeroize", version = "1.0.0" } # Defense / matchers aho-corasick = "1" @@ -68,7 +70,7 @@ globset = "0.4" parking_lot = "0.12" # WASM (sandbox) -# v25 → 최신 line. RUSTSEC 다수 advisory (fd_renumber / wasi:http fields / +# v25 -> 최신 line. RUSTSEC 다수 advisory (fd_renumber / wasi:http fields / # 컴포넌트 model flags lift / Winch table.fill / UTF-16 transcoding panic) 패치 포함. wasmtime = { version = "44", default-features = false, features = ["async", "cranelift", "runtime", "addr2line", "demangle"] } wat = "1" @@ -83,26 +85,25 @@ clap = { version = "4", features = ["derive"] } tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["fmt", "env-filter"] } -# Optional crypto-channel feature -aes-gcm = "0.10" -x25519-dalek = { version = "2", features = ["static_secrets"] } +# Q. T. Felix NOTE: AES-GCM / x25519는 elib-k0-nt 모듈을 사용하므로 별도 외부 +# 크레이트가 필요하지 않음(위 elib-aes / elib-x25519 워크스페이스 정의 사용) # Dev / bench criterion = "0.5" -# halo2 (ZK 회로) - 매우 무거운 의존성. feature 뒤에서만 활성화. -halo2_proofs = "0.3" -ff = "0.13" -pasta_curves = "0.5" - -# candle (LLM 추론) - feature 뒤에서만 활성화. CPU 전용 빌드. +# candle (ONNX 라우팅 추론) - feature 뒤에서만 활성화. CPU 전용 빌드. +# 폐쇄망 배포에서는 `cargo vendor` 로 사전 fetch 필요 (AIR-GAPPED.md 참고). candle-core = { version = "0.10", default-features = false } candle-onnx = { version = "0.10", default-features = false } -# candle-transformers: 실제 LLM 아키텍처 (LLaMA, Mistral, GPT-2 등). CPU 전용. -candle-transformers = { version = "0.10", default-features = false } -# HuggingFace 토크나이저 (tokenizer.json 형식). -# onig 는 C 소스에서 빌드되므로 시스템 라이브러리 불필요. -tokenizers = { version = "0.19" } + +# 참고: 다음 의존성은 v0.4 폐쇄형(Air-Gapped) 호환성 작업으로 제거되었습니다. +# - `halo2_proofs` / `ff` / `pasta_curves` : ZK 백엔드. mock prover 가 +# 이미 BLAKE3 기반이라 halo2 회로 없이 동작합니다. 실제 succinct ZK +# 백엔드 (SP1 / RISC Zero 등) 는 마일스톤 재검토 시 결정. +# - `candle-transformers` + `tokenizers` : GGUF LLM 텍스트 생성 백엔드. +# 의존 트리가 너무 크고 HF Hub 다운로드 코드를 포함하므로 폐쇄망에 +# 부적합. 전체 LLM 생성은 `llama-cpp` 백엔드 또는 호스트 TEE 의 +# ChannelEngine forward 경로를 사용. [workspace.lints.rust] unsafe_code = "deny" diff --git a/crates/lumen-agent/Cargo.toml b/crates/lumen-agent/Cargo.toml index 32904a3..c90848b 100644 --- a/crates/lumen-agent/Cargo.toml +++ b/crates/lumen-agent/Cargo.toml @@ -29,6 +29,5 @@ tracing.workspace = true parking_lot.workspace = true [dev-dependencies] -rand = { workspace = true } postcard = { workspace = true } tokio = { workspace = true, features = ["macros", "rt-multi-thread"] } diff --git a/crates/lumen-agent/tests/determinism.rs b/crates/lumen-agent/tests/determinism.rs index 1d665ba..173c705 100644 --- a/crates/lumen-agent/tests/determinism.rs +++ b/crates/lumen-agent/tests/determinism.rs @@ -8,10 +8,10 @@ use lumen_capability::{ capability::{Capability, CapabilityBody}, PolicyEngine, Resource, }; +use lumen_core::rng::OsRng; use lumen_core::{AgentId, Blake3Hash, CapabilityId, SigningKey, Timestamp, ToolId}; use lumen_inference::DummyEngine; use lumen_zkml::mock::MockVk; -use rand::rngs::OsRng; fn build_runtime() -> AgentRuntime { let sk = SigningKey::generate(&mut OsRng); diff --git a/crates/lumen-agent/tests/determinism_stress.rs b/crates/lumen-agent/tests/determinism_stress.rs index 231e677..e653e00 100644 --- a/crates/lumen-agent/tests/determinism_stress.rs +++ b/crates/lumen-agent/tests/determinism_stress.rs @@ -88,9 +88,9 @@ fn make_runtime() -> AgentRuntime { /// `OsRng` here only feeds the *capability nonce* - the policy engine's replay /// table demands uniqueness; everything else in the proof binding is fixed. fn rand_nonce() -> [u8; 16] { - use rand::RngCore; + use lumen_core::rng::Rng; let mut n = [0u8; 16]; - rand::rngs::OsRng.fill_bytes(&mut n); + lumen_core::rng::OsRng.fill_bytes(&mut n); n } diff --git a/crates/lumen-capability/Cargo.toml b/crates/lumen-capability/Cargo.toml index 602d8d0..dc6cea2 100644 --- a/crates/lumen-capability/Cargo.toml +++ b/crates/lumen-capability/Cargo.toml @@ -23,6 +23,5 @@ parking_lot.workspace = true tracing.workspace = true [dev-dependencies] -rand = { workspace = true } serde_json = { workspace = true } toml.workspace = true diff --git a/crates/lumen-channel/Cargo.toml b/crates/lumen-channel/Cargo.toml index 3a71ae9..3c7bc96 100644 --- a/crates/lumen-channel/Cargo.toml +++ b/crates/lumen-channel/Cargo.toml @@ -15,7 +15,7 @@ workspace = true [features] default = [] -crypto-channel = ["dep:aes-gcm", "dep:x25519-dalek", "dep:blake3"] +crypto-channel = ["dep:elib-aes", "dep:elib-x25519", "dep:elib-zeroize"] [dependencies] lumen-core.workspace = true @@ -25,10 +25,9 @@ tokio = { workspace = true } serde = { workspace = true } postcard.workspace = true thiserror.workspace = true -rand = { workspace = true } -aes-gcm = { workspace = true, optional = true } -x25519-dalek = { workspace = true, optional = true } -blake3 = { workspace = true, optional = true } +elib-aes = { workspace = true, optional = true } +elib-x25519 = { workspace = true, optional = true } +elib-zeroize = { workspace = true, optional = true } [dev-dependencies] tokio = { workspace = true, features = ["macros", "rt-multi-thread"] } diff --git a/crates/lumen-channel/src/encrypted.rs b/crates/lumen-channel/src/encrypted.rs index f22e94c..4eebb2f 100644 --- a/crates/lumen-channel/src/encrypted.rs +++ b/crates/lumen-channel/src/encrypted.rs @@ -24,15 +24,20 @@ //! 아닙니다. attested 채널은 무결성 + 신원 + 리플레이 저항을 제공하지만 //! **기밀성** 은 없습니다. 이 모듈은 동일한 ed25519 핀을 재사용해 KEX 를 //! 인증하면서 기밀성을 추가합니다. +//! +//! 폐쇄형(Air-Gapped) iso-light-k0 마이크로커널 환경 호환을 위해 모든 +//! 암호 프리미티브는 `elib-k0-nt` 모듈을 사용합니다 - AES-GCM 은 +//! `elib-k0-nt/aes::AES256GCM`, ECDH 는 `elib-k0-nt/x25519`, KDF 는 +//! `lumen_core::hash::blake3_keyed_derive_32` (BLAKE3 keyed 모드). -use aes_gcm::aead::{Aead, KeyInit, Payload}; -use aes_gcm::{Aes256Gcm, Key, Nonce}; use async_trait::async_trait; +use elib_aes::{AES256GCM, GCM_NONCE_SIZE, GCM_TAG_SIZE}; +use elib_x25519::{PublicKey as X25519Public, SecretKey as X25519Secret}; +use elib_zeroize::Zeroize; +use lumen_core::hash::blake3_keyed_derive_32; +use lumen_core::rng::{OsRng, Rng}; use lumen_core::{Error, Result, Signature, SigningKey, VerifyingKey}; -use rand::rngs::OsRng; -use rand::RngCore; use serde::{Deserialize, Serialize}; -use x25519_dalek::{EphemeralSecret, PublicKey as X25519Public}; use crate::SecureChannel; @@ -74,7 +79,8 @@ struct SignedEncryptedHello { struct EncryptedFrame { /// 송신 측 카운터; 수신 측은 정확히 다음 기대값과 일치해야 합니다. seq: u64, - /// AEAD 출력 (ciphertext || tag). + /// AEAD 출력 (ciphertext || tag) - 외부 와이어 호환을 위해 elib-k0-nt + /// 의 (ciphertext, tag) 쌍을 단일 바이트열로 직렬화한 것. ciphertext: Vec, } @@ -85,9 +91,9 @@ struct EncryptedFrame { pub struct EncryptedChannel { inner: C, /// 송신용 키 (자기 → 피어). - tx_cipher: Aes256Gcm, + tx_cipher: AES256GCM, /// 수신용 키 (피어 → 자기). - rx_cipher: Aes256Gcm, + rx_cipher: AES256GCM, /// 자신의 역할 (initiator=0, responder=1) - nonce 첫 바이트로 사용. my_role: u8, /// 피어의 역할 - 수신 시 nonce 검증. @@ -134,8 +140,15 @@ impl EncryptedChannel { my_role: u8, ) -> Result { let my_vk = sk.verifying_key(); - let my_eph = EphemeralSecret::random_from_rng(OsRng); - let my_eph_pub = X25519Public::from(&my_eph); + + // 임시 x25519 키 + 16 바이트 핸드셰이크 nonce 를 OS 엔트로피에서 생성. + // eph_seed 는 X25519Secret 으로 흡수된 직후 zeroize 하여 forensic + // 메모리 덤프에서 ephemeral 비밀이 회수되지 않도록 합니다. + let mut eph_seed = [0u8; 32]; + OsRng.fill_bytes(&mut eph_seed); + let my_eph = X25519Secret::from_bytes(eph_seed); + eph_seed.zeroize(); + let my_eph_pub = my_eph.public_key(); let mut nonce16 = [0u8; 16]; OsRng.fill_bytes(&mut nonce16); @@ -183,20 +196,34 @@ impl EncryptedChannel { peer_vk.verify(&peer_payload, &peer.signature)?; // x25519 ECDH. - let peer_x25519 = X25519Public::from(peer.hello.ephemeral_x25519); + let peer_x25519 = X25519Public::from_bytes(peer.hello.ephemeral_x25519); let shared = my_eph.diffie_hellman(&peer_x25519); + // RFC 7748 권고: 모든 비트가 0 인 공유 비밀은 비여직성(non-contributory) + // 키 합의를 의미하므로 거부합니다. + if shared.is_zero() { + return Err(Error::Crypto( + "encrypted: x25519 produced all-zero shared secret".into(), + )); + } + // 디렉션별 키 도출. initiator → responder 와 responder → initiator // 두 개를 만들고, 자신의 송신/수신을 그에 매핑합니다. - let key_i2r = derive_key(shared.as_bytes(), KDF_LABEL_INITIATOR, epoch); - let key_r2i = derive_key(shared.as_bytes(), KDF_LABEL_RESPONDER, epoch); - let (tx_key, rx_key, peer_role) = if my_role == 0 { + // AES256GCM 이 키를 라운드키로 확장한 직후 원본 32 바이트 사본을 + // zeroize 하여 스택 잔류 비밀을 최소화합니다. + let mut key_i2r = derive_key(shared.as_bytes(), KDF_LABEL_INITIATOR, epoch); + let mut key_r2i = derive_key(shared.as_bytes(), KDF_LABEL_RESPONDER, epoch); + let (mut tx_key, mut rx_key, peer_role) = if my_role == 0 { (key_i2r, key_r2i, 1u8) } else { (key_r2i, key_i2r, 0u8) }; - let tx_cipher = Aes256Gcm::new(Key::::from_slice(&tx_key)); - let rx_cipher = Aes256Gcm::new(Key::::from_slice(&rx_key)); + let tx_cipher = AES256GCM::new(&tx_key); + let rx_cipher = AES256GCM::new(&rx_key); + tx_key.zeroize(); + rx_key.zeroize(); + key_i2r.zeroize(); + key_r2i.zeroize(); Ok(Self { inner, @@ -226,16 +253,13 @@ impl SecureChannel for EncryptedChannel { async fn send_bytes(&mut self, bytes: Vec) -> Result<()> { let nonce = build_nonce(self.my_role, self.next_send_seq); let aad = aad_bytes(self.epoch, self.my_role); - let ciphertext = self - .tx_cipher - .encrypt( - Nonce::from_slice(&nonce), - Payload { - msg: &bytes, - aad: &aad, - }, - ) - .map_err(|e| Error::Crypto(format!("aes-gcm seal: {e}")))?; + let mut ciphertext = vec![0u8; bytes.len()]; + let mut tag = [0u8; GCM_TAG_SIZE]; + self.tx_cipher + .encrypt(&nonce, &aad, &bytes, &mut ciphertext, &mut tag); + // 와이어 포맷: ciphertext || tag (구버전 aes-gcm 0.10 호환). + ciphertext.extend_from_slice(&tag); + let frame = EncryptedFrame { seq: self.next_send_seq, ciphertext, @@ -256,18 +280,26 @@ impl SecureChannel for EncryptedChannel { self.next_recv_seq, frame.seq ))); } + if frame.ciphertext.len() < GCM_TAG_SIZE { + return Err(Error::Crypto( + "encrypted: frame shorter than GCM tag".into(), + )); + } let nonce = build_nonce(self.peer_role, frame.seq); let aad = aad_bytes(self.epoch, self.peer_role); - let plaintext = self + let split = frame.ciphertext.len() - GCM_TAG_SIZE; + let (ct, tag_slice) = frame.ciphertext.split_at(split); + let mut tag = [0u8; GCM_TAG_SIZE]; + tag.copy_from_slice(tag_slice); + let mut plaintext = vec![0u8; ct.len()]; + let ok = self .rx_cipher - .decrypt( - Nonce::from_slice(&nonce), - Payload { - msg: &frame.ciphertext, - aad: &aad, - }, - ) - .map_err(|_| Error::Crypto("encrypted: AEAD authentication failed".into()))?; + .decrypt(&nonce, &aad, ct, &tag, &mut plaintext); + if !ok { + return Err(Error::Crypto( + "encrypted: AEAD authentication failed".into(), + )); + } self.next_recv_seq = self .next_recv_seq .checked_add(1) @@ -287,16 +319,11 @@ fn signing_payload(hello: &EncryptedHello) -> Result> { fn derive_key(shared: &[u8; 32], label: &[u8], epoch: u64) -> [u8; 32] { // BLAKE3 keyed-hash 로 (shared || label || epoch) → 32-byte key. - let mut hasher = blake3::Hasher::new_keyed(shared); - hasher.update(label); - hasher.update(&epoch.to_le_bytes()); - let mut out = [0u8; 32]; - out.copy_from_slice(hasher.finalize().as_bytes()); - out + blake3_keyed_derive_32(shared, label, &epoch.to_le_bytes()) } -fn build_nonce(role: u8, seq: u64) -> [u8; 12] { - let mut n = [0u8; 12]; +fn build_nonce(role: u8, seq: u64) -> [u8; GCM_NONCE_SIZE] { + let mut n = [0u8; GCM_NONCE_SIZE]; n[0] = role; // n[1..4] 은 0 으로 둡니다 - 카운터 오버플로 시 명시적 거부. n[4..12].copy_from_slice(&seq.to_le_bytes()); @@ -321,7 +348,7 @@ mod tests { EncryptedChannel, EncryptedChannel, )> { - let mut rng = rand::rngs::OsRng; + let mut rng = OsRng; let sk_a = SigningKey::generate(&mut rng); let sk_b = SigningKey::generate(&mut rng); let vk_a = sk_a.verifying_key(); @@ -373,7 +400,7 @@ mod tests { #[tokio::test] async fn handshake_with_wrong_peer_pin_fails() { - let mut rng = rand::rngs::OsRng; + let mut rng = OsRng; let sk_a = SigningKey::generate(&mut rng); let sk_b = SigningKey::generate(&mut rng); let sk_c = SigningKey::generate(&mut rng); // 공격자 @@ -394,7 +421,7 @@ mod tests { #[tokio::test] async fn epoch_mismatch_rejected() { - let mut rng = rand::rngs::OsRng; + let mut rng = OsRng; let sk_a = SigningKey::generate(&mut rng); let sk_b = SigningKey::generate(&mut rng); let vk_a = sk_a.verifying_key(); diff --git a/crates/lumen-cli/Cargo.toml b/crates/lumen-cli/Cargo.toml index 87f4cd8..b507e92 100644 --- a/crates/lumen-cli/Cargo.toml +++ b/crates/lumen-cli/Cargo.toml @@ -36,4 +36,3 @@ tracing.workspace = true tracing-subscriber.workspace = true anyhow.workspace = true hex.workspace = true -rand = { workspace = true } diff --git a/crates/lumen-cli/examples/hello_agent.rs b/crates/lumen-cli/examples/hello_agent.rs index bc354db..7e4e6f7 100644 --- a/crates/lumen-cli/examples/hello_agent.rs +++ b/crates/lumen-cli/examples/hello_agent.rs @@ -17,11 +17,11 @@ use lumen_capability::{ capability::{Capability, CapabilityBody}, PolicyEngine, Resource, }; +use lumen_core::rng::OsRng; use lumen_core::{AgentId, Blake3Hash, CapabilityId, SigningKey, Timestamp, ToolId}; use lumen_inference::DummyEngine; use lumen_orchestrator::{AgentSpec, Orchestrator}; use lumen_zkml::mock::MockVk; -use rand::rngs::OsRng; fn issue_tool_cap( sk: &SigningKey, diff --git a/crates/lumen-core/Cargo.toml b/crates/lumen-core/Cargo.toml index 85c93b6..cdc266c 100644 --- a/crates/lumen-core/Cargo.toml +++ b/crates/lumen-core/Cargo.toml @@ -16,13 +16,13 @@ workspace = true [dependencies] thiserror.workspace = true serde = { workspace = true } -blake3 = { workspace = true } -ed25519-dalek = { workspace = true } -rand_core.workspace = true -subtle.workspace = true +elib-blake.workspace = true +elib-ed25519.workspace = true +elib-rng.workspace = true +elib-constant-time.workspace = true +elib-zeroize.workspace = true hex.workspace = true postcard.workspace = true [dev-dependencies] -rand = { workspace = true } serde_json = { workspace = true } diff --git a/crates/lumen-core/src/crypto.rs b/crates/lumen-core/src/crypto.rs index 5664829..b17c5d6 100644 --- a/crates/lumen-core/src/crypto.rs +++ b/crates/lumen-core/src/crypto.rs @@ -1,51 +1,60 @@ //! Ed25519 래퍼 + serde 글루. //! -//! `lumen-core` 가 `ed25519-dalek` 에 직접 의존하는 유일한 크레이트가 되어야 -//! 합니다. Capability 토큰과 provenance 서명 모두 이 타입들을 거칩니다. +//! `lumen-core` 가 Ed25519 구현 (`elib-k0-nt/ed25519`) 에 직접 의존하는 +//! 유일한 크레이트가 되어야 합니다. Capability 토큰과 provenance 서명 +//! 모두 이 타입들을 거칩니다. +//! +//! 폐쇄형(Air-Gapped) iso-light-k0 환경 호환을 위해 외부 `ed25519-dalek` +//! 크레이트는 모두 elib-k0-nt 모듈로 교체되었습니다. use std::fmt; -use ed25519_dalek::{ - Signer, SigningKey as DalekSigningKey, Verifier, VerifyingKey as DalekVerifyingKey, - SECRET_KEY_LENGTH, SIGNATURE_LENGTH, -}; -use rand_core::{CryptoRng, RngCore}; +use elib_ed25519::{self as ed25519, Ed25519Error}; use serde::{Deserialize, Deserializer, Serialize, Serializer}; use crate::error::{Error, Result}; +use crate::rng::Rng; + +/// Ed25519 비밀키 시드 길이 (32 바이트). +pub const SECRET_KEY_LENGTH: usize = 32; +/// Ed25519 서명 길이 (64 바이트). +pub const SIGNATURE_LENGTH: usize = 64; /// Ed25519 서명 (개인) 키. /// -/// `ed25519_dalek::SigningKey` 를 감쌉니다. **절대 직렬화되지 않습니다** - +/// `elib-k0-nt/ed25519::SecretKey` 를 감쌉니다. **절대 직렬화되지 않습니다** - /// 개인 키 export 는 명시적이고 감사된 작업이어야 합니다. 그 이유로 래퍼는 /// 의도적으로 `Serialize` / `Display` impl 을 두지 않습니다. #[derive(Clone)] -pub struct SigningKey(DalekSigningKey); +pub struct SigningKey { + secret: ed25519::SecretKey, + /// 공개 검증 키. 시드에서 매번 재유도하지 않도록 캐시. + public: ed25519::PublicKey, +} impl SigningKey { /// CSPRNG 으로부터 새 키를 생성합니다. - pub fn generate(rng: &mut R) -> Self { - Self(DalekSigningKey::generate(rng)) + pub fn generate(rng: &mut R) -> Self { + let mut seed = [0u8; SECRET_KEY_LENGTH]; + rng.fill_bytes(&mut seed); + Self::from_seed(&seed) } /// 32 바이트 원시 시드로부터 생성. pub fn from_seed(seed: &[u8; SECRET_KEY_LENGTH]) -> Self { - Self(DalekSigningKey::from_bytes(seed)) - } - - /// 시드 바이트를 반환 (민감 - 로그에 남기지 마세요). - pub fn to_seed(&self) -> [u8; SECRET_KEY_LENGTH] { - self.0.to_bytes() + let secret = ed25519::SecretKey::from_bytes(seed); + let public = ed25519::PublicKey::from(&secret); + Self { secret, public } } /// 공개 검증 키를 도출합니다. pub fn verifying_key(&self) -> VerifyingKey { - VerifyingKey(self.0.verifying_key()) + VerifyingKey(self.public) } /// 메시지에 서명합니다. pub fn sign(&self, msg: &[u8]) -> Signature { - Signature(self.0.sign(msg)) + Signature(ed25519::sign(msg, &self.secret)) } } @@ -58,32 +67,38 @@ impl fmt::Debug for SigningKey { } /// Ed25519 검증 (공개) 키. -#[derive(Clone, Copy, PartialEq, Eq, Hash)] -pub struct VerifyingKey(DalekVerifyingKey); +#[derive(Clone, Copy, PartialEq, Eq)] +pub struct VerifyingKey(ed25519::PublicKey); + +impl std::hash::Hash for VerifyingKey { + fn hash(&self, state: &mut H) { + self.0.as_bytes().hash(state); + } +} impl VerifyingKey { /// 32 바이트 원시 데이터로부터 파싱. + /// + /// 현재 elib-k0-nt 의 `PublicKey::from_bytes` 는 형태 검증 없이 32 바이트를 + /// 그대로 받아들이고, 실제 곡선 점 디코딩은 `verify` 시점에 수행됩니다. + /// API 계약 유지를 위해 길이 검증만 수행합니다. pub fn from_bytes(bytes: &[u8; 32]) -> Result { - DalekVerifyingKey::from_bytes(bytes) - .map(Self) - .map_err(|e| Error::Crypto(format!("verifying key: {e}"))) + Ok(Self(ed25519::PublicKey::from_bytes(bytes))) } /// 32 바이트 원시 데이터로 인코딩. pub fn to_bytes(&self) -> [u8; 32] { - self.0.to_bytes() + *self.0.as_bytes() } /// 서명 검증. pub fn verify(&self, msg: &[u8], sig: &Signature) -> Result<()> { - self.0 - .verify(msg, &sig.0) - .map_err(|e| Error::Crypto(format!("signature: {e}"))) + ed25519::verify(msg, &sig.0, &self.0).map_err(map_ed25519_err) } /// 64자 소문자 hex 로 렌더. pub fn to_hex(&self) -> String { - hex::encode(self.0.to_bytes()) + hex::encode(self.0.as_bytes()) } } @@ -104,7 +119,7 @@ impl Serialize for VerifyingKey { if ser.is_human_readable() { ser.serialize_str(&self.to_hex()) } else { - ser.serialize_bytes(&self.0.to_bytes()) + ser.serialize_bytes(self.0.as_bytes()) } } } @@ -129,22 +144,22 @@ impl<'de> Deserialize<'de> for VerifyingKey { /// Ed25519 detached 서명. #[derive(Clone, Copy, PartialEq, Eq)] -pub struct Signature(ed25519_dalek::Signature); +pub struct Signature(ed25519::Signature); impl Signature { /// 64 바이트 원시 데이터로부터 파싱. pub fn from_bytes(bytes: &[u8; SIGNATURE_LENGTH]) -> Self { - Self(ed25519_dalek::Signature::from_bytes(bytes)) + Self(ed25519::Signature::from_bytes(bytes)) } /// 64 바이트 원시 데이터로 렌더. pub fn to_bytes(&self) -> [u8; SIGNATURE_LENGTH] { - self.0.to_bytes() + *self.0.as_bytes() } /// 소문자 hex (128자). pub fn to_hex(&self) -> String { - hex::encode(self.0.to_bytes()) + hex::encode(self.0.as_bytes()) } } @@ -165,7 +180,7 @@ impl Serialize for Signature { if ser.is_human_readable() { ser.serialize_str(&self.to_hex()) } else { - ser.serialize_bytes(&self.0.to_bytes()) + ser.serialize_bytes(self.0.as_bytes()) } } } @@ -188,10 +203,14 @@ impl<'de> Deserialize<'de> for Signature { } } +fn map_ed25519_err(e: Ed25519Error) -> Error { + Error::Crypto(format!("signature: {e:?}")) +} + #[cfg(test)] mod tests { use super::*; - use rand::rngs::OsRng; + use crate::rng::OsRng; #[test] fn sign_verify_roundtrip() { diff --git a/crates/lumen-core/src/hash.rs b/crates/lumen-core/src/hash.rs index ed465b9..6b35d10 100644 --- a/crates/lumen-core/src/hash.rs +++ b/crates/lumen-core/src/hash.rs @@ -1,11 +1,15 @@ //! Lumen 전체에서 사용되는 BLAKE3 기반 해시 프리미티브. +//! +//! 폐쇄형(Air-Gapped) iso-light-k0 환경 호환을 위해 구현체는 +//! `elib-k0-nt/blake` 의 [`Blake3`] 를 사용합니다. 외부 `blake3` 크레이트 +//! 의존을 제거합니다. use std::fmt; use std::path::Path; use std::str::FromStr; +use elib_blake::Blake3; use serde::{Deserialize, Deserializer, Serialize, Serializer}; -use subtle::ConstantTimeEq; use crate::error::{Error, Result}; @@ -19,7 +23,9 @@ pub struct Blake3Hash(pub [u8; 32]); impl Blake3Hash { /// 주어진 byte 슬라이스에 대해 해시를 계산합니다. pub fn of(bytes: &[u8]) -> Self { - Self(*blake3::hash(bytes).as_bytes()) + let mut hasher = Blake3::new(); + hasher.update(bytes); + Self(finalize_32(hasher)) } /// 디스크의 파일을 스트리밍으로 점진적으로 해시합니다. @@ -29,7 +35,7 @@ impl Blake3Hash { pub fn of_file(path: &Path) -> std::io::Result { use std::io::Read; let mut file = std::fs::File::open(path)?; - let mut hasher = blake3::Hasher::new(); + let mut hasher = Blake3::new(); let mut buf = [0u8; 64 * 1024]; loop { let n = file.read(&mut buf)?; @@ -38,7 +44,7 @@ impl Blake3Hash { } hasher.update(&buf[..n]); } - Ok(Self(*hasher.finalize().as_bytes())) + Ok(Self(finalize_32(hasher))) } /// 원시 바이트 차용. @@ -54,7 +60,8 @@ impl Blake3Hash { impl PartialEq for Blake3Hash { fn eq(&self, other: &Self) -> bool { - self.0.ct_eq(&other.0).into() + // elib-k0-nt/constant-time 의 상수시간 슬라이스 비교. + elib_blake::ct_eq_slice(&self.0, &other.0).unwrap_u8() == 1 } } @@ -134,6 +141,29 @@ pub fn hash_postcard(value: &T) -> Result { Ok(Blake3Hash::of(&bytes)) } +/// `Blake3` 해시를 32 바이트 배열로 종결합니다. +/// +/// elib-k0-nt 의 `finalize` 는 메모리 보안을 위해 `SecureBuffer` 를 반환합니다. +/// Lumen 의 식별자는 short-lived 한 32 바이트 다이제스트이므로 즉시 일반 배열로 +/// 복사해 사용합니다 (`SecureBuffer` 는 함수 종료와 동시에 zeroize 됨). +fn finalize_32(hasher: Blake3) -> [u8; 32] { + let buf = hasher.finalize().expect("blake3 finalize failed"); + let mut out = [0u8; 32]; + out.copy_from_slice(buf.as_slice()); + out +} + +/// `(key, label, epoch_le_bytes)` 트리플로 32 바이트 키 자료를 도출합니다. +/// +/// `lumen-channel` 의 키 도출에서 사용됩니다. BLAKE3 keyed 모드는 +/// `key` 자체를 IV 로 사용하므로 키 바이트가 누설되지 않습니다. +pub fn blake3_keyed_derive_32(key: &[u8; 32], label: &[u8], extra: &[u8]) -> [u8; 32] { + let mut hasher = Blake3::new_keyed(key); + hasher.update(label); + hasher.update(extra); + finalize_32(hasher) +} + #[cfg(test)] mod tests { use super::*; @@ -157,4 +187,13 @@ mod tests { fn distinct_inputs_distinct_hashes() { assert_ne!(Blake3Hash::of(b"a"), Blake3Hash::of(b"b")); } + + #[test] + fn keyed_derive_distinct_for_different_keys() { + let k1 = [1u8; 32]; + let k2 = [2u8; 32]; + let a = blake3_keyed_derive_32(&k1, b"label", b""); + let b = blake3_keyed_derive_32(&k2, b"label", b""); + assert_ne!(a, b); + } } diff --git a/crates/lumen-core/src/ids.rs b/crates/lumen-core/src/ids.rs index dbdb49b..f0e7ef8 100644 --- a/crates/lumen-core/src/ids.rs +++ b/crates/lumen-core/src/ids.rs @@ -8,10 +8,10 @@ use std::fmt; use std::str::FromStr; -use rand_core::RngCore; use serde::{Deserialize, Deserializer, Serialize, Serializer}; use crate::error::{Error, Result}; +use crate::rng::Rng; macro_rules! binary_id { ($name:ident, $doc:literal) => { @@ -21,7 +21,7 @@ macro_rules! binary_id { impl $name { #[doc = "암호학적으로 안전한 RNG 로 임의의 ID 를 생성합니다."] - pub fn random(rng: &mut R) -> Self { + pub fn random(rng: &mut R) -> Self { let mut bytes = [0u8; 16]; rng.fill_bytes(&mut bytes); Self(bytes) @@ -169,7 +169,7 @@ impl<'de> Deserialize<'de> for ToolId { #[cfg(test)] mod tests { use super::*; - use rand::rngs::OsRng; + use crate::rng::OsRng; #[test] fn agent_id_hex_roundtrip() { diff --git a/crates/lumen-core/src/lib.rs b/crates/lumen-core/src/lib.rs index ddc5f89..e118227 100644 --- a/crates/lumen-core/src/lib.rs +++ b/crates/lumen-core/src/lib.rs @@ -11,10 +11,12 @@ pub mod crypto; pub mod error; pub mod hash; pub mod ids; +pub mod rng; pub mod time; pub use crypto::{Signature, SigningKey, VerifyingKey}; pub use error::{Error, Result}; pub use hash::Blake3Hash; pub use ids::{AgentId, CapabilityId, RequestId, ToolId}; +pub use rng::{HashDrbg, OsRng, Rng}; pub use time::Timestamp; diff --git a/crates/lumen-core/src/rng.rs b/crates/lumen-core/src/rng.rs new file mode 100644 index 0000000..1137f33 --- /dev/null +++ b/crates/lumen-core/src/rng.rs @@ -0,0 +1,135 @@ +//! Lumen의 RNG 추상화 모듈입니다. +//! +//! 폐쇄형(Air-Gapped) iso-light-k0 마이크로커널 환경 호환을 위해 외부 +//! `rand` / `rand_core` 크레이트 대신 `elib-k0-nt/rng` 의 OS 엔트로피 +//! 수집과 NIST SP 800-90A Hash_DRBG 를 그대로 노출하는 얇은 래퍼입니다. +//! +//! # 트레이트와 구체 타입 +//! +//! - [`Rng`] : 단일 메서드 `fill_bytes` 만 갖는 최소 트레이트. 임의의 +//! 고정 길이 식별자 / 키 시드 / nonce 채움에 사용됩니다. +//! - [`OsRng`] : OS 엔트로피 (Linux `getrandom`, macOS / *BSD `arc4random`, +//! Windows BCrypt 등) 를 직접 사용하는 무상태 RNG. 프로덕션 기본값. +//! - [`HashDrbg`] : OS 엔트로피로 한번 시드된 SHA-256 기반 Hash_DRBG. +//! 동일 페어가 다량의 키 자료를 생성할 때 외부 entropy 호출 횟수를 +//! 줄이고 reseed 인터벌을 명시적으로 제어할 수 있습니다. + +use elib_rng::{DrbgError, HashDRBGSHA256}; +use elib_zeroize::Zeroize; + +use crate::error::{Error, Result}; + +/// 단일 책임의 RNG 트레이트입니다. +/// +/// `rand_core::RngCore` 를 대체합니다. 호출자는 이 트레이트만 의존하면 +/// 테스트에서는 결정론적 RNG (예: 직접 시딩한 [`HashDrbg`]) 를, 프로덕션 +/// 에서는 [`OsRng`] 를 주입할 수 있습니다. +pub trait Rng { + /// 주어진 슬라이스를 암호학적으로 안전한 난수로 채웁니다. + /// + /// # Panics + /// OS 엔트로피 소스가 사용 불가 등 회복 불가능한 실패 시 panic 합니다. + /// 회복 가능한 처리가 필요한 경우 [`Rng::try_fill_bytes`] 를 사용하세요. + fn fill_bytes(&mut self, dst: &mut [u8]) { + self.try_fill_bytes(dst) + .expect("CSPRNG fill_bytes failed irrecoverably") + } + + /// 주어진 슬라이스를 암호학적으로 안전한 난수로 채우고, 실패를 + /// `Result` 로 보고합니다. + fn try_fill_bytes(&mut self, dst: &mut [u8]) -> Result<()>; +} + +/// OS 엔트로피 직접 사용 RNG (무상태). +/// +/// 매 호출마다 `elib-k0-nt/rng::os_entropy::fill_bytes` 를 호출해 OS 의 +/// 보안 엔트로피 소스를 직접 사용합니다. 단일 호출당 32~64 바이트 수준의 +/// 사용에는 충분히 빠르고, 이 정도 RNG 호출 빈도는 핸드셰이크 / ID 생성 +/// 등 매 단위 동작당 1~2 회뿐입니다. +#[derive(Clone, Copy, Debug, Default)] +pub struct OsRng; + +impl Rng for OsRng { + fn try_fill_bytes(&mut self, dst: &mut [u8]) -> Result<()> { + elib_rng::os_entropy::fill_bytes(dst).map_err(map_drbg_err) + } +} + +/// SHA-256 기반 Hash_DRBG 어댑터. +/// +/// OS 엔트로피로 한번 시드한 뒤 [`Rng`] 인터페이스로 노출합니다. NIST +/// SP 800-90A 의 reseed 인터벌 (`2^48` 호출) 도달 시 자동으로 OS 엔트 +/// 로피를 추가 수집해 reseed 합니다. 호출자는 이 동작을 신경 쓸 필요가 +/// 없습니다. +pub struct HashDrbg(HashDRBGSHA256); + +impl HashDrbg { + /// OS 엔트로피로 새 DRBG 인스턴스를 생성합니다. + /// + /// `personalization` 은 "이 DRBG 인스턴스가 어떤 컨텍스트에서 사용 + /// 되는지" 를 나타내는 도메인 분리 라벨입니다 (예: `b"lumen.agent.v1"`). + /// 동일 컨텍스트의 두 호출자가 다른 DRBG 출력을 받도록 보장합니다. + pub fn from_os(personalization: Option<&[u8]>) -> Result { + HashDRBGSHA256::new_from_os(personalization) + .map(Self) + .map_err(map_drbg_err) + } +} + +impl Rng for HashDrbg { + fn try_fill_bytes(&mut self, dst: &mut [u8]) -> Result<()> { + // 단일 generate 호출당 최대 65536 바이트. lumen 호출자는 보통 + // 16~64 바이트만 채우므로 일반적으로 단일 호출로 끝납니다. + let mut remaining = dst; + while !remaining.is_empty() { + let chunk = remaining.len().min(65_536); + let (head, tail) = remaining.split_at_mut(chunk); + match self.0.generate(head, None) { + Ok(()) => {} + Err(DrbgError::ReseedRequired) => { + let mut entropy = [0u8; 64]; + elib_rng::os_entropy::fill_bytes(&mut entropy).map_err(map_drbg_err)?; + let reseed_res = self.0.reseed(&entropy, None); + // 엔트로피가 DRBG 내부 상태에 흡수되었으므로 스택 사본은 + // 즉시 zeroize 합니다 - 실패 경로에서도 누설되지 않도록 + // map_err 보다 먼저 수행합니다. + entropy.zeroize(); + reseed_res.map_err(map_drbg_err)?; + self.0.generate(head, None).map_err(map_drbg_err)?; + } + Err(e) => return Err(map_drbg_err(e)), + } + remaining = tail; + } + Ok(()) + } +} + +fn map_drbg_err(e: DrbgError) -> Error { + Error::Crypto(format!("rng: {e:?}")) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn os_rng_fills_bytes() { + let mut a = [0u8; 32]; + let mut b = [0u8; 32]; + OsRng.fill_bytes(&mut a); + OsRng.fill_bytes(&mut b); + assert_ne!(a, b, "OsRng must produce distinct outputs across calls"); + assert_ne!(a, [0u8; 32], "OsRng must not return all-zero buffer"); + } + + #[test] + fn hash_drbg_fills_bytes() { + let mut drbg = HashDrbg::from_os(Some(b"lumen.test.v1")).unwrap(); + let mut a = [0u8; 32]; + let mut b = [0u8; 32]; + drbg.fill_bytes(&mut a); + drbg.fill_bytes(&mut b); + assert_ne!(a, b); + } +} diff --git a/crates/lumen-orchestrator/Cargo.toml b/crates/lumen-orchestrator/Cargo.toml index e760d44..222cddd 100644 --- a/crates/lumen-orchestrator/Cargo.toml +++ b/crates/lumen-orchestrator/Cargo.toml @@ -29,5 +29,4 @@ lumen-defense.workspace = true lumen-inference.workspace = true lumen-zkml.workspace = true serde_json = { workspace = true } -rand = { workspace = true } tokio = { workspace = true, features = ["macros", "rt-multi-thread"] } diff --git a/crates/lumen-orchestrator/src/supervisor.rs b/crates/lumen-orchestrator/src/supervisor.rs index 8311a31..734f4d7 100644 --- a/crates/lumen-orchestrator/src/supervisor.rs +++ b/crates/lumen-orchestrator/src/supervisor.rs @@ -426,10 +426,10 @@ mod tests { capability::{Capability, CapabilityBody}, PolicyEngine, Resource, }; + use lumen_core::rng::OsRng; use lumen_core::{Blake3Hash, CapabilityId, SigningKey, Timestamp, ToolId}; use lumen_inference::DummyEngine; use lumen_zkml::mock::MockVk; - use rand::rngs::OsRng; fn build_runtime(nonce: [u8; 16]) -> (AgentId, Arc) { let sk = SigningKey::generate(&mut OsRng); diff --git a/crates/lumen-provenance/Cargo.toml b/crates/lumen-provenance/Cargo.toml index 00294c1..d5c6971 100644 --- a/crates/lumen-provenance/Cargo.toml +++ b/crates/lumen-provenance/Cargo.toml @@ -25,4 +25,3 @@ tracing.workspace = true [dev-dependencies] tempfile = "3" -rand = { workspace = true } diff --git a/crates/lumen-sandbox/Cargo.toml b/crates/lumen-sandbox/Cargo.toml index 0f8083e..7c25da4 100644 --- a/crates/lumen-sandbox/Cargo.toml +++ b/crates/lumen-sandbox/Cargo.toml @@ -37,5 +37,4 @@ thiserror.workspace = true [dev-dependencies] wat.workspace = true -rand = { workspace = true } tokio = { workspace = true, features = ["macros", "rt-multi-thread"] } diff --git a/crates/lumen-sandbox/src/runner.rs b/crates/lumen-sandbox/src/runner.rs index 46e57bb..4a3dbf1 100644 --- a/crates/lumen-sandbox/src/runner.rs +++ b/crates/lumen-sandbox/src/runner.rs @@ -72,8 +72,8 @@ impl Sandbox { mod tests { use super::*; use lumen_capability::PolicyEngine; + use lumen_core::rng::OsRng; use lumen_core::{AgentId, SigningKey, Timestamp}; - use rand::rngs::OsRng; const LOG_ONLY_WAT: &str = r#" (module diff --git a/crates/lumen-sandbox/tests/wasm_echo_agent.rs b/crates/lumen-sandbox/tests/wasm_echo_agent.rs index c4e7264..8a37d39 100644 --- a/crates/lumen-sandbox/tests/wasm_echo_agent.rs +++ b/crates/lumen-sandbox/tests/wasm_echo_agent.rs @@ -19,9 +19,9 @@ use lumen_capability::{ capability::{Capability, CapabilityBody}, PolicyEngine, Resource, }; +use lumen_core::rng::OsRng; use lumen_core::{AgentId, CapabilityId, SigningKey, Timestamp, ToolId}; use lumen_sandbox::{HostState, Sandbox, SandboxConfig}; -use rand::rngs::OsRng; /// 워크스페이스 루트 기준 wasm 산출물 경로. fn echo_agent_wasm_path() -> PathBuf { From dfa49aeb8bf39f5ce73d92ef27f245998e669121 Mon Sep 17 00:00:00 2001 From: "Q. T. Felix" <53819958+Quant-TheodoreFelix@users.noreply.github.com> Date: Fri, 8 May 2026 00:22:18 +0900 Subject: [PATCH 04/19] drop tokenizers and candle-llm feature for air-gapped builds Removes the candle-transformers + HuggingFace tokenizers stack: it shipped with HF Hub download code and a multi-hundred-crate dependency tree that does not survive cargo vendor bundling. Full LLM text generation now flows through the llama.cpp stub or the host-TEE ChannelEngine forward path. --- crates/lumen-inference/Cargo.toml | 8 +- crates/lumen-inference/src/backend.rs | 35 +-- crates/lumen-inference/src/candle.rs | 2 +- crates/lumen-inference/src/candle_llm.rs | 301 ----------------------- crates/lumen-inference/src/lib.rs | 17 +- crates/lumen-inference/src/llama_cpp.rs | 4 +- 6 files changed, 24 insertions(+), 343 deletions(-) delete mode 100644 crates/lumen-inference/src/candle_llm.rs diff --git a/crates/lumen-inference/Cargo.toml b/crates/lumen-inference/Cargo.toml index 8cc8064..6b832e3 100644 --- a/crates/lumen-inference/Cargo.toml +++ b/crates/lumen-inference/Cargo.toml @@ -16,10 +16,11 @@ workspace = true [features] default = [] # ONNX 라우팅 엔진 (candle-onnx 기반, 기존 CandleEngine). +# 폐쇄망 배포에서는 cargo vendor 로 candle 소스를 미리 가져와야 합니다 - +# `AIR-GAPPED.md` 가이드 참고. candle = ["dep:candle-core", "dep:candle-onnx"] -# 전체 LLM 생성 엔진 (candle-transformers + GGUF 양자화 모델 + HF 토크나이저). -candle-llm = ["dep:candle-core", "dep:candle-transformers", "dep:tokenizers"] # llama.cpp 백엔드 (cmake 빌드 필요, 현재 인터페이스 스텁). +# 전체 LLM 텍스트 생성이 필요한 경우 이 백엔드를 사용하세요. llama-cpp = [] [dependencies] @@ -32,12 +33,9 @@ futures.workspace = true serde = { workspace = true } serde_json.workspace = true tokio = { workspace = true, features = ["sync"] } -blake3 = { workspace = true } tracing.workspace = true candle-core = { workspace = true, optional = true } candle-onnx = { workspace = true, optional = true } -candle-transformers = { workspace = true, optional = true } -tokenizers = { workspace = true, optional = true } [dev-dependencies] tokio = { workspace = true, features = ["macros", "rt-multi-thread"] } diff --git a/crates/lumen-inference/src/backend.rs b/crates/lumen-inference/src/backend.rs index c0f7042..f6423b6 100644 --- a/crates/lumen-inference/src/backend.rs +++ b/crates/lumen-inference/src/backend.rs @@ -9,13 +9,15 @@ //! |--------------------|--------------|--------------------------------------| //! | `Dummy` | *(없음)* | 결정론적 패턴 매칭, 테스트 전용. | //! | `CandleOnnx` | `candle` | ONNX 라우팅 (기존 `CandleEngine`). | -//! | `CandleLlm` | `candle-llm` | GGUF LLM (candle-transformers). | -//! | `LlamaCpp` | `llama-cpp` | llama.cpp 스텁 (v0.5 완성 예정). | +//! | `LlamaCpp` | `llama-cpp` | llama.cpp 연동 (v0.5 완성 예정). | +//! +//! `candle-llm` (candle-transformers + HF tokenizers) 백엔드는 폐쇄형 +//! 환경 호환을 위해 v0.4 에서 제거되었습니다. 전체 LLM 텍스트 생성은 +//! `llama-cpp` 백엔드 또는 호스트 TEE 의 추론 서비스로 forward 하는 +//! [`crate::ChannelEngine`] 경로를 사용하세요. -#[cfg(any(feature = "candle", feature = "candle-llm", feature = "llama-cpp"))] +#[cfg(any(feature = "candle", feature = "llama-cpp"))] use crate::loader::VerifiedModelHandle; -#[cfg(feature = "candle-llm")] -use std::path::PathBuf; use std::sync::Arc; use lumen_core::Result; @@ -39,17 +41,6 @@ pub enum BackendConfig { tool_table: Vec, }, - /// GGUF 양자화 LLM (candle-transformers 기반). - /// - /// `candle-llm` feature 가 활성화되어야 합니다. - #[cfg(feature = "candle-llm")] - CandleLlm { - /// 검증된 `.gguf` 모델 핸들. - handle: VerifiedModelHandle, - /// HuggingFace `tokenizer.json` 경로. - tokenizer_path: PathBuf, - }, - /// llama.cpp 기반 엔진 (v0.5 완성 예정). /// /// `llama-cpp` feature 가 활성화되어야 합니다. @@ -78,18 +69,6 @@ pub fn create_engine(config: BackendConfig) -> Result> Ok(Arc::new(CandleEngine::load(handle.path(), tool_table)?)) } - #[cfg(feature = "candle-llm")] - BackendConfig::CandleLlm { - handle, - tokenizer_path, - } => { - use crate::candle_llm::CandleLlmEngine; - Ok(Arc::new(CandleLlmEngine::from_gguf( - &handle, - tokenizer_path, - )?)) - } - #[cfg(feature = "llama-cpp")] BackendConfig::LlamaCpp { handle, diff --git a/crates/lumen-inference/src/candle.rs b/crates/lumen-inference/src/candle.rs index 316d73c..ed17644 100644 --- a/crates/lumen-inference/src/candle.rs +++ b/crates/lumen-inference/src/candle.rs @@ -68,7 +68,7 @@ impl CandleEngine { /// BLAKE3 다이제스트의 32 바이트를 8 개 `f32` 로 분할한 다음, 모델 입력 /// 길이에 맞게 반복/잘라냅니다. 진짜 토크나이저는 v0.4 에서. fn encode_prompt(&self, prompt: &str) -> Vec { - let digest = blake3::hash(prompt.as_bytes()); + let digest = lumen_core::Blake3Hash::of(prompt.as_bytes()); let bytes = digest.as_bytes(); let mut out = Vec::with_capacity(self.input_len); for i in 0..self.input_len { diff --git a/crates/lumen-inference/src/candle_llm.rs b/crates/lumen-inference/src/candle_llm.rs deleted file mode 100644 index bb4c3f5..0000000 --- a/crates/lumen-inference/src/candle_llm.rs +++ /dev/null @@ -1,301 +0,0 @@ -//! candle-transformers 기반 LLM 추론 엔진 — `candle-llm` feature 가 활성화된 경우만 컴파일. -//! -//! ## 지원 모델 -//! -//! GGUF 양자화 가중치 (LLaMA / Mistral 계열) 를 candle-transformers 의 -//! `quantized_llama::ModelWeights` 로 로드합니다. Safetensors 포맷은 -//! 추후 지원 예정입니다. -//! -//! ## 보안 불변식 -//! -//! 생성자 [`CandleLlmEngine::from_gguf`] 는 raw 경로 대신 -//! [`VerifiedModelHandle`] 을 받습니다. 검증을 건너뛰면 컴파일 에러가 -//! 발생합니다. -//! -//! ## 스트리밍 -//! -//! [`StreamingEngine::stream_complete`] 는 별도 `tokio::task` 에서 생성 루프를 -//! 실행하고 [`tokio::sync::mpsc`] 채널을 통해 토큰을 전달합니다. -//! 스트림을 drop 하면 채널이 닫히고 task 가 자동 종료됩니다. -//! -//! ## 결정성 주의 -//! -//! candle 의 f32 연산은 CPU 아키텍처 간 미세하게 비결정적일 수 있습니다. -//! 텍스트 생성 출력은 ZK witness 에 직접 바인딩하지 마세요. 도구 라우팅 -//! *결정* (정수 인덱스) 만 ZK 에 바인딩하며, `CandleEngine` (ONNX) 과 -//! 동일한 접근 방식을 따릅니다. - -use std::path::Path; -use std::sync::Arc; - -use async_trait::async_trait; -use candle_core::{DType, Device, Tensor}; -use candle_transformers::generation::LogitsProcessor; -use candle_transformers::models::quantized_llama::ModelWeights; -use futures::stream; -use lumen_core::{Error, Result}; -use tokenizers::Tokenizer; -use tokio::sync::Mutex; - -use crate::loader::VerifiedModelHandle; -use crate::streaming::{FinishReason, StreamingEngine, Token, TokenStream}; -use crate::{Completion, InferenceEngine, SamplingParams}; - -/// candle-transformers 기반 LLM 엔진. -/// -/// 생성은 항상 CPU 에서 실행됩니다 (`Device::Cpu`). GPU/Metal 지원은 -/// 추후 feature flag 로 추가 예정입니다. -pub struct CandleLlmEngine { - model: Arc>, - tokenizer: Arc, - eos_token_id: Option, -} - -impl CandleLlmEngine { - /// GGUF 양자화 모델을 검증된 핸들로부터 로드합니다. - /// - /// `tokenizer_path` 는 HuggingFace `tokenizer.json` 형식이어야 합니다. - /// - /// # 에러 - /// - /// - 파일 열기 실패 → [`Error::Inference`] - /// - GGUF 파싱 실패 → [`Error::Inference`] - /// - 토크나이저 로드 실패 → [`Error::Inference`] - pub fn from_gguf( - handle: &VerifiedModelHandle, - tokenizer_path: impl AsRef, - ) -> Result { - let device = Device::Cpu; - - tracing::info!( - target: "lumen.inference.candle_llm", - path = ?handle.path(), - model = %handle.model_info.name, - "GGUF 모델 로딩 중" - ); - - // GGUF 파싱 - let mut file = std::fs::File::open(handle.path()) - .map_err(|e| Error::Inference(format!("GGUF 파일 열기 실패: {e}")))?; - let gguf_content = candle_core::quantized::gguf_file::Content::read(&mut file) - .map_err(|e| Error::Inference(format!("GGUF 파싱 실패: {e}")))?; - let model = ModelWeights::from_gguf(gguf_content, &mut file, &device) - .map_err(|e| Error::Inference(format!("모델 가중치 로드 실패: {e}")))?; - - // 토크나이저 로드 - let tokenizer = Tokenizer::from_file(tokenizer_path) - .map_err(|e| Error::Inference(format!("토크나이저 로드 실패: {e}")))?; - - // EOS 토큰 탐색 (LLaMA: , GPT-계열: <|endoftext|>) - let eos_token_id = tokenizer - .token_to_id("") - .or_else(|| tokenizer.token_to_id("<|endoftext|>")) - .or_else(|| tokenizer.token_to_id("")); - - tracing::info!( - target: "lumen.inference.candle_llm", - eos_token_id, - "모델 로드 완료" - ); - - Ok(Self { - model: Arc::new(Mutex::new(model)), - tokenizer: Arc::new(tokenizer), - eos_token_id, - }) - } - - /// 프롬프트를 토큰 ID 벡터로 인코딩합니다. - fn encode_prompt(&self, prompt: &str) -> Result> { - let encoding = self - .tokenizer - .encode(prompt, true) - .map_err(|e| Error::Inference(format!("인코딩 실패: {e}")))?; - Ok(encoding.get_ids().to_vec()) - } -} - -#[async_trait] -impl InferenceEngine for CandleLlmEngine { - /// 스트림을 내부적으로 소진해 전체 completion 텍스트로 조립합니다. - async fn complete(&self, prompt: &str, params: &SamplingParams) -> Result { - use futures::StreamExt as _; - let mut token_stream = self.stream_complete(prompt, params).await?; - let mut text = String::new(); - while let Some(tok) = token_stream.next().await { - text.push_str(&tok?.text); - } - Ok(Completion { - text, - tool_call: None, - }) - } -} - -#[async_trait] -impl StreamingEngine for CandleLlmEngine { - async fn stream_complete(&self, prompt: &str, params: &SamplingParams) -> Result { - let prompt_tokens = self.encode_prompt(prompt)?; - if prompt_tokens.is_empty() { - return Err(Error::Inference( - "프롬프트 토큰화 결과가 비어있습니다".into(), - )); - } - - let max_tokens = params.max_tokens as usize; - let seed = params.seed.unwrap_or(0); - let temperature = params.temperature; - let top_p = params.top_p; - let eos_token_id = self.eos_token_id; - let model = Arc::clone(&self.model); - let tokenizer = Arc::clone(&self.tokenizer); - - let (tx, rx) = tokio::sync::mpsc::channel::>(128); - - tokio::spawn(async move { - if let Err(e) = run_generation( - model, - tokenizer, - prompt_tokens, - max_tokens, - temperature, - top_p, - eos_token_id, - seed, - tx.clone(), - ) - .await - { - // 채널이 이미 닫혔으면(호출자가 drop) 에러 전송은 무시합니다. - let _ = tx.send(Err(e)).await; - } - }); - - // mpsc Receiver → futures::Stream 변환 - let s = stream::unfold(rx, |mut rx| async move { - rx.recv().await.map(|item| (item, rx)) - }); - - Ok(Box::pin(s)) - } -} - -/// 생성 루프 (별도 tokio task 에서 실행). -/// -/// 모델 잠금을 보유한 채 토큰을 순차적으로 생성하고 `tx` 로 전달합니다. -/// 채널 수신자가 drop 되면 (`tx.send` 실패) 즉시 종료합니다. -async fn run_generation( - model: Arc>, - tokenizer: Arc, - prompt_tokens: Vec, - max_tokens: usize, - temperature: f32, - top_p: f32, - eos_token_id: Option, - seed: u64, - tx: tokio::sync::mpsc::Sender>, -) -> Result<()> { - let device = Device::Cpu; - - // LogitsProcessor: temperature == 0 이면 greedy decoding. - let temp_opt = if temperature == 0.0 { - None - } else { - Some(temperature as f64) - }; - let top_p_opt = if top_p > 0.0 && top_p < 1.0 { - Some(top_p as f64) - } else { - None - }; - let mut logits_processor = LogitsProcessor::new(seed, temp_opt, top_p_opt); - - let prompt_len = prompt_tokens.len(); - - // 모델 잠금을 보유한 채 프롬프트 prefill + 첫 토큰 샘플링 - let mut model_guard = model.lock().await; - - let input = Tensor::new(prompt_tokens.as_slice(), &device) - .and_then(|t| t.unsqueeze(0)) - .map_err(|e| Error::Inference(format!("프롬프트 텐서 생성 실패: {e}")))?; - - // prefill — KV 캐시 위치 0부터 시작 - let logits = model_guard - .forward(&input, 0) - .map_err(|e| Error::Inference(format!("prefill forward 실패: {e}")))?; - - // 마지막 위치의 로짓 추출: [1, seq_len, vocab] → [vocab] - let logits = extract_last_logit(logits, prompt_len)?; - - let mut next_token = logits_processor - .sample(&logits) - .map_err(|e| Error::Inference(format!("샘플링 실패: {e}")))?; - - let mut pos = prompt_len; - - for step in 0..max_tokens { - let decoded = tokenizer - .decode(&[next_token], true) - .map_err(|e| Error::Inference(format!("토큰 디코딩 실패: {e}")))?; - - let is_eos = eos_token_id.map_or(false, |eos| next_token == eos); - let finish_reason = if is_eos { - Some(FinishReason::Eos) - } else if step + 1 >= max_tokens { - Some(FinishReason::MaxTokens) - } else { - None - }; - - let token = Token { - id: next_token, - text: decoded, - logprob: None, - finish_reason, - }; - - // 채널 수신자가 drop 되면 생성을 중단합니다. - if tx.send(Ok(token)).await.is_err() { - break; - } - - if is_eos || finish_reason.is_some() { - break; - } - - // 다음 토큰 생성 - let input = Tensor::new(&[next_token], &device) - .and_then(|t| t.unsqueeze(0)) - .map_err(|e| Error::Inference(format!("단일 토큰 텐서 실패: {e}")))?; - - let logits = model_guard - .forward(&input, pos) - .map_err(|e| Error::Inference(format!("autoregressive forward 실패: {e}")))?; - - let logits = extract_last_logit(logits, 1)?; - - next_token = logits_processor - .sample(&logits) - .map_err(|e| Error::Inference(format!("샘플링 실패: {e}")))?; - - pos += 1; - } - - Ok(()) -} - -/// `[1, n, vocab]` 텐서에서 위치 `n - 1` 의 로짓 벡터 `[vocab]` 를 추출합니다. -fn extract_last_logit(logits: Tensor, n: usize) -> Result { - // [1, n, vocab] → [n, vocab] - let logits = logits - .squeeze(0) - .map_err(|e| Error::Inference(format!("batch squeeze 실패: {e}")))?; - // [n, vocab] → [vocab] (마지막 시퀀스 위치) - let logits = logits - .get(n - 1) - .map_err(|e| Error::Inference(format!("마지막 로짓 추출 실패: {e}")))?; - // 양자화 텐서를 f32 로 변환 (LogitsProcessor 요구사항) - logits - .to_dtype(DType::F32) - .map_err(|e| Error::Inference(format!("f32 변환 실패: {e}"))) -} diff --git a/crates/lumen-inference/src/lib.rs b/crates/lumen-inference/src/lib.rs index 11bdbd0..7777a2c 100644 --- a/crates/lumen-inference/src/lib.rs +++ b/crates/lumen-inference/src/lib.rs @@ -14,20 +14,27 @@ //! |------------------|--------------|----------------------------------| //! | `DummyEngine` | *(없음)* | 결정론적 테스트 / 데모 | //! | `CandleEngine` | `candle` | ONNX 도구 라우팅 | -//! | `CandleLlmEngine`| `candle-llm` | GGUF LLM 텍스트 생성 + 스트리밍 | -//! | `LlamaCppEngine` | `llama-cpp` | llama.cpp (v0.5 예정) | +//! | `LlamaCppEngine` | `llama-cpp` | llama.cpp 연동 (v0.5 예정) | //! | `ChannelEngine` | *(없음)* | TEE 채널 forward | //! //! [`BackendConfig`] + [`backend::create_engine`] 으로 팩토리 패턴을 사용할 //! 수 있습니다. +//! +//! ## 폐쇄형(Air-Gapped) 환경 메모 +//! +//! HuggingFace 의 `tokenizers` 크레이트와 `candle-transformers` 의 GGUF +//! 텍스트 생성 백엔드는 외부 다운로드 코드를 포함하고 의존 트리가 매우 +//! 커서 폐쇄망 빌드 부담이 큽니다. 따라서 v0.4 부터 `candle-llm` feature +//! 는 제거되었습니다. 전체 LLM 텍스트 생성이 필요한 경우 `llama-cpp` +//! (llama.cpp 백엔드, 내장 BPE / SentencePiece 토크나이저) 또는 +//! 호스트 TEE 의 추론 서비스로 [`ChannelEngine`] 을 통해 forward 하는 +//! 경로를 사용하세요. #![forbid(unsafe_code)] #![warn(missing_docs)] #[cfg(feature = "candle")] pub mod candle; -#[cfg(feature = "candle-llm")] -pub mod candle_llm; #[cfg(feature = "llama-cpp")] pub mod llama_cpp; @@ -118,7 +125,5 @@ pub use quantize::{GgufLevel, QuantizationConfig, QuantizationKind}; pub use streaming::{FinishReason, StreamingEngine, Token, TokenStream}; pub use tee_channel::ChannelEngine; -#[cfg(feature = "candle-llm")] -pub use candle_llm::CandleLlmEngine; #[cfg(feature = "llama-cpp")] pub use llama_cpp::LlamaCppEngine; diff --git a/crates/lumen-inference/src/llama_cpp.rs b/crates/lumen-inference/src/llama_cpp.rs index bca3dcd..bc06e49 100644 --- a/crates/lumen-inference/src/llama_cpp.rs +++ b/crates/lumen-inference/src/llama_cpp.rs @@ -52,7 +52,7 @@ impl LlamaCppEngine { impl InferenceEngine for LlamaCppEngine { async fn complete(&self, _prompt: &str, _params: &SamplingParams) -> Result { Err(Error::NotImplemented( - "LlamaCppEngine: llama-cpp-2 연동이 v0.5 에서 구현됩니다".into(), + "LlamaCppEngine: llama-cpp-2 연동이 v0.5 에서 구현됩니다", )) } } @@ -65,7 +65,7 @@ impl StreamingEngine for LlamaCppEngine { _params: &SamplingParams, ) -> Result { Err(Error::NotImplemented( - "LlamaCppEngine: 스트리밍은 v0.5 에서 구현됩니다".into(), + "LlamaCppEngine: 스트리밍은 v0.5 에서 구현됩니다", )) } } From 3fd4b51434c3d5af4a6013d1b28c2243dbeb6e7b Mon Sep 17 00:00:00 2001 From: "Q. T. Felix" <53819958+Quant-TheodoreFelix@users.noreply.github.com> Date: Fri, 8 May 2026 00:22:26 +0900 Subject: [PATCH 05/19] remove halo2 zkml backend Drops the halo2_proofs / ff / pasta_curves dependency tree (~30 elliptic curve crates) along with the halo2 feature and RoutingProofCircuit. The mock prover is already BLAKE3-based and remains intact. Real succinct ZK (SP1 / RISC Zero) is deferred to a future milestone review. --- crates/lumen-zkml/Cargo.toml | 8 +- crates/lumen-zkml/src/halo2.rs | 379 --------------------------------- crates/lumen-zkml/src/lib.rs | 14 +- crates/lumen-zkml/src/mock.rs | 10 +- 4 files changed, 20 insertions(+), 391 deletions(-) delete mode 100644 crates/lumen-zkml/src/halo2.rs diff --git a/crates/lumen-zkml/Cargo.toml b/crates/lumen-zkml/Cargo.toml index 542e724..fd9935e 100644 --- a/crates/lumen-zkml/Cargo.toml +++ b/crates/lumen-zkml/Cargo.toml @@ -6,7 +6,7 @@ rust-version.workspace = true license.workspace = true authors.workspace = true repository.workspace = true -description = "Lumen - proving-system trait + mock commitment prover; ezkl/halo2 stubs behind feature flags" +description = "Lumen - proving-system trait + mock BLAKE3 commitment prover; ezkl stub behind feature flag" keywords.workspace = true categories.workspace = true @@ -16,18 +16,14 @@ workspace = true [features] default = [] ezkl = [] -halo2 = ["dep:halo2_proofs", "dep:ff", "dep:pasta_curves"] [dependencies] lumen-core.workspace = true serde = { workspace = true } postcard.workspace = true -blake3 = { workspace = true } +elib-blake.workspace = true thiserror.workspace = true tracing.workspace = true -halo2_proofs = { workspace = true, optional = true } -ff = { workspace = true, optional = true } -pasta_curves = { workspace = true, optional = true } [dev-dependencies] serde_json = { workspace = true } diff --git a/crates/lumen-zkml/src/halo2.rs b/crates/lumen-zkml/src/halo2.rs deleted file mode 100644 index 3d89ed3..0000000 --- a/crates/lumen-zkml/src/halo2.rs +++ /dev/null @@ -1,379 +0,0 @@ -//! halo2 기반 라우팅 증명 - `halo2` feature 가 활성화된 경우에만 컴파일됩니다. -//! -//! v0.3 범위: 도구 라우팅 결정의 핵심 제약을 halo2 `Circuit` 으로 표현하고 -//! `MockProver::verify` 로 *제약 만족* 을 검증합니다. 진정한 succinct ZK -//! proof (KZG 셋업 + `create_proof`/`verify_proof`) 는 v0.4 작업입니다. -//! -//! ## 회로 -//! -//! `RoutingProofCircuit` 는 다음을 증명합니다. -//! -//! - 공개 입력 `selected_value` 가 -//! - 비공개 witness `(score_a, score_b, choice_bit)` 와 함께, -//! - 제약 `selected_value = choice_bit * score_b + (1 - choice_bit) * score_a` 를 -//! 만족함. -//! - 추가 제약 `choice_bit * (1 - choice_bit) = 0` 으로 `choice_bit ∈ {0, 1}` -//! 을 강제. -//! -//! 이는 두 후보 라우팅 점수 중 하나를 선택하는 *binary argmax* 의 최소 -//! 형태입니다. 더 큰 N 에 대한 일반적 argmax 는 비교 게이트 (range check) -//! 가 필요하므로 v0.4 까지 미룹니다. -//! -//! ## 진정한 ZK 가 아닌 이유 -//! -//! `MockProver` 는 회로의 모든 advice 셀을 평문으로 보유한 채 제약식을 -//! 평가하므로 **소중한 (소위 "real") ZK 보장은 제공하지 않습니다.** 다만: -//! -//! - 회로 자체는 진짜 halo2 PLONKish 제약식이며, -//! - 위트니스가 제약을 만족하는지 검증한다는 점에서 정직하고, -//! - v0.4 에서 동일한 회로를 KZG 백엔드로 옮기면 그대로 succinct ZK 증명이 -//! 됩니다. -//! -//! 따라서 본 백엔드의 [`ProvingSystem::verify`] 는 [`Verification::ZkVerified`] -//! 를 반환합니다 - 회로 + 제약식이 진짜이기 때문이며, 다만 succinct 형태의 -//! "off-line verifiability" 가 빠져 있다는 점은 docstring 으로 명시합니다. - -use ff::{Field, PrimeField}; -use halo2_proofs::{ - circuit::{AssignedCell, Layouter, SimpleFloorPlanner, Value}, - dev::MockProver, - plonk::{Advice, Circuit, Column, ConstraintSystem, Error as Halo2Error, Instance, Selector}, - poly::Rotation, -}; -use lumen_core::{Error, Result}; -use pasta_curves::pallas::Base as Fp; -use serde::{Deserialize, Serialize}; - -use crate::{ProvingSystem, Verification}; - -/// halo2 회로 회로의 행 크기 = 2^K. -pub const CIRCUIT_K: u32 = 4; - -/// `RoutingProofCircuit` 의 PLONK 게이트 설정. -#[derive(Clone, Debug)] -pub struct RoutingConfig { - advice: Column, - instance: Column, - selector: Selector, - bit_selector: Selector, -} - -/// Witness - 두 후보 점수와 선택 비트. -#[derive(Clone, Debug, Default)] -pub struct RoutingProofCircuit { - /// 후보 A 의 점수. - pub score_a: Value, - /// 후보 B 의 점수. - pub score_b: Value, - /// 선택 비트 (0 = A, 1 = B). - pub choice_bit: Value, -} - -impl Circuit for RoutingProofCircuit { - type Config = RoutingConfig; - type FloorPlanner = SimpleFloorPlanner; - - fn without_witnesses(&self) -> Self { - Self::default() - } - - fn configure(meta: &mut ConstraintSystem) -> Self::Config { - let advice = meta.advice_column(); - let instance = meta.instance_column(); - let selector = meta.selector(); - let bit_selector = meta.selector(); - meta.enable_equality(advice); - meta.enable_equality(instance); - - // 게이트 1: selected_value = choice_bit * score_b + (1 - choice_bit) * score_a - // 행 레이아웃 (advice 컬럼): - // row+0: score_a - // row+1: score_b - // row+2: choice_bit - // row+3: selected_value - meta.create_gate("선택값 일치", |meta| { - let s = meta.query_selector(selector); - let a = meta.query_advice(advice, Rotation::cur()); - let b = meta.query_advice(advice, Rotation::next()); - let bit = meta.query_advice(advice, Rotation(2)); - let sel = meta.query_advice(advice, Rotation(3)); - // sel = bit * b + (1 - bit) * a - // = bit * (b - a) + a - let computed = bit * (b - a.clone()) + a; - vec![s * (sel - computed)] - }); - - // 게이트 2: choice_bit * (1 - choice_bit) = 0 ⇒ bit ∈ {0, 1} - meta.create_gate("선택 비트는 0 또는 1", |meta| { - let s = meta.query_selector(bit_selector); - let bit = meta.query_advice(advice, Rotation::cur()); - let one = halo2_proofs::plonk::Expression::Constant(Fp::ONE); - vec![s * bit.clone() * (one - bit)] - }); - - RoutingConfig { - advice, - instance, - selector, - bit_selector, - } - } - - fn synthesize( - &self, - config: Self::Config, - mut layouter: impl Layouter, - ) -> std::result::Result<(), Halo2Error> { - let selected_cell: AssignedCell = layouter.assign_region( - || "라우팅 영역", - |mut region| { - config.selector.enable(&mut region, 0)?; - config.bit_selector.enable(&mut region, 2)?; - region.assign_advice(|| "score_a", config.advice, 0, || self.score_a)?; - region.assign_advice(|| "score_b", config.advice, 1, || self.score_b)?; - region.assign_advice(|| "choice_bit", config.advice, 2, || self.choice_bit)?; - let zero = Fp::from(0u64); - let selected: Value = self - .choice_bit - .zip(self.score_a.zip(self.score_b)) - .map(|(bit, (a, b))| if bit == zero { a } else { b }); - region.assign_advice(|| "selected", config.advice, 3, || selected) - }, - )?; - layouter.constrain_instance(selected_cell.cell(), config.instance, 0)?; - Ok(()) - } -} - -/// halo2 백엔드의 검증 키 - 회로 식별자만 보유. -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct Halo2Vk { - /// 회로 식별자 (예: `"lumen.routing.binary.v1"`). - pub circuit_id: String, -} - -/// halo2 백엔드의 증명 - witness 평문 + 공개 입력의 직렬화. -/// -/// `MockProver` 가 succinct 한 증명 객체를 노출하지 않으므로, v0.3 에서는 -/// 회로를 재현하기 위한 평문 witness 를 운반합니다. v0.4 에서 KZG 기반 -/// `create_proof` 의 byte vector 로 대체됩니다. -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct Halo2Proof { - /// 직렬화된 witness 트리플 `(score_a, score_b, choice_bit)`. - pub witness_repr: Vec<[u8; 32]>, -} - -/// halo2 회로의 공개 입력. -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct Halo2Public { - /// 32 바이트 LE 직렬화된 선택 점수. - pub selected_value: [u8; 32], -} - -/// halo2 회로의 비공개 witness. -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct Halo2Witness { - /// 32 바이트 LE 직렬화된 score_a. - pub score_a: [u8; 32], - /// 32 바이트 LE 직렬화된 score_b. - pub score_b: [u8; 32], - /// 32 바이트 LE 직렬화된 choice_bit (0 또는 1). - pub choice_bit: [u8; 32], -} - -/// halo2 백엔드 - 무상태. -#[derive(Clone, Debug, Default)] -pub struct Halo2Prover; - -impl Halo2Prover { - /// 새 인스턴스. - pub fn new() -> Self { - Self - } -} - -fn fp_from_u64(v: u64) -> Fp { - Fp::from(v) -} - -fn fp_from_bytes(b: &[u8; 32]) -> Result { - let opt: Option = Fp::from_repr(*b).into(); - opt.ok_or_else(|| Error::Zkml("halo2: invalid Fp bytes".into())) -} - -fn fp_to_bytes(v: Fp) -> [u8; 32] { - v.to_repr() -} - -impl ProvingSystem for Halo2Prover { - type Witness = Halo2Witness; - type PublicInputs = Halo2Public; - type Proof = Halo2Proof; - type Vk = Halo2Vk; - - fn setup(&self, circuit_id: &str) -> Result { - Ok(Halo2Vk { - circuit_id: circuit_id.to_string(), - }) - } - - fn prove( - &self, - _vk: &Self::Vk, - public: &Self::PublicInputs, - witness: &Self::Witness, - ) -> Result { - // 회로 + MockProver 로 제약 만족 검증을 시도하고, 통과 시 witness 를 - // 그대로 운반하는 proof 를 반환합니다. - let score_a = fp_from_bytes(&witness.score_a)?; - let score_b = fp_from_bytes(&witness.score_b)?; - let choice_bit = fp_from_bytes(&witness.choice_bit)?; - let selected = fp_from_bytes(&public.selected_value)?; - - let circuit = RoutingProofCircuit { - score_a: Value::known(score_a), - score_b: Value::known(score_b), - choice_bit: Value::known(choice_bit), - }; - let prover = MockProver::run(CIRCUIT_K, &circuit, vec![vec![selected]]) - .map_err(|e| Error::Zkml(format!("halo2 mockprover run: {e:?}")))?; - prover - .verify() - .map_err(|e| Error::Zkml(format!("halo2 제약 미만족: {e:?}")))?; - Ok(Halo2Proof { - witness_repr: vec![witness.score_a, witness.score_b, witness.choice_bit], - }) - } - - fn verify( - &self, - _vk: &Self::Vk, - public: &Self::PublicInputs, - proof: &Self::Proof, - ) -> Result { - // 회로를 proof 의 witness 로 재구성하고 MockProver 를 다시 돌립니다. - if proof.witness_repr.len() != 3 { - return Ok(Verification::Invalid); - } - let score_a = match fp_from_bytes(&proof.witness_repr[0]) { - Ok(v) => v, - Err(_) => return Ok(Verification::Invalid), - }; - let score_b = match fp_from_bytes(&proof.witness_repr[1]) { - Ok(v) => v, - Err(_) => return Ok(Verification::Invalid), - }; - let choice_bit = match fp_from_bytes(&proof.witness_repr[2]) { - Ok(v) => v, - Err(_) => return Ok(Verification::Invalid), - }; - let selected = match fp_from_bytes(&public.selected_value) { - Ok(v) => v, - Err(_) => return Ok(Verification::Invalid), - }; - let circuit = RoutingProofCircuit { - score_a: Value::known(score_a), - score_b: Value::known(score_b), - choice_bit: Value::known(choice_bit), - }; - let prover = match MockProver::run(CIRCUIT_K, &circuit, vec![vec![selected]]) { - Ok(p) => p, - Err(_) => return Ok(Verification::Invalid), - }; - match prover.verify() { - Ok(()) => Ok(Verification::ZkVerified), - Err(_) => Ok(Verification::Invalid), - } - } -} - -/// 편의 헬퍼 - 작은 정수 점수로 witness 와 공개 입력을 만듭니다. -pub fn build_inputs(score_a: u64, score_b: u64, choice_bit: u64) -> (Halo2Witness, Halo2Public) { - debug_assert!(choice_bit == 0 || choice_bit == 1); - let a = fp_from_u64(score_a); - let b = fp_from_u64(score_b); - let bit = fp_from_u64(choice_bit); - let sel = if choice_bit == 0 { a } else { b }; - ( - Halo2Witness { - score_a: fp_to_bytes(a), - score_b: fp_to_bytes(b), - choice_bit: fp_to_bytes(bit), - }, - Halo2Public { - selected_value: fp_to_bytes(sel), - }, - ) -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn prove_verify_roundtrip_choice_zero() { - let p = Halo2Prover::new(); - let vk = p.setup("lumen.routing.binary.v1").unwrap(); - let (w, pub_) = build_inputs(7, 13, 0); // 후보 A 선택 - let proof = p.prove(&vk, &pub_, &w).unwrap(); - let v = p.verify(&vk, &pub_, &proof).unwrap(); - assert_eq!(v, Verification::ZkVerified); - } - - #[test] - fn prove_verify_roundtrip_choice_one() { - let p = Halo2Prover::new(); - let vk = p.setup("lumen.routing.binary.v1").unwrap(); - let (w, pub_) = build_inputs(7, 13, 1); // 후보 B 선택 - let proof = p.prove(&vk, &pub_, &w).unwrap(); - let v = p.verify(&vk, &pub_, &proof).unwrap(); - assert_eq!(v, Verification::ZkVerified); - } - - #[test] - fn tampered_witness_invalid() { - let p = Halo2Prover::new(); - let vk = p.setup("lumen.routing.binary.v1").unwrap(); - let (w, pub_) = build_inputs(7, 13, 0); - let mut proof = p.prove(&vk, &pub_, &w).unwrap(); - // witness[0] (score_a) 를 변조 -> 제약 미만족 - proof.witness_repr[0][0] ^= 0xFF; - let v = p.verify(&vk, &pub_, &proof).unwrap(); - assert_eq!(v, Verification::Invalid); - } - - #[test] - fn wrong_public_input_invalid() { - let p = Halo2Prover::new(); - let vk = p.setup("lumen.routing.binary.v1").unwrap(); - let (w, _pub) = build_inputs(7, 13, 0); - // 잘못된 공개 입력 - 13 (score_b) 을 선택했다고 주장하지만 witness 는 0 - let bad_public = Halo2Public { - selected_value: fp_to_bytes(fp_from_u64(13)), - }; - let proof = p.prove(&vk, &bad_public, &w); - // prove 가 거부해야 함 (제약 미만족) - assert!(proof.is_err()); - } - - #[test] - fn invalid_choice_bit_rejected() { - let p = Halo2Prover::new(); - let vk = p.setup("lumen.routing.binary.v1").unwrap(); - // bit = 2 - bit constraint (bit ∈ {0,1}) 위반 - let a = fp_from_u64(7); - let b = fp_from_u64(13); - let bit = fp_from_u64(2); - let sel = b * bit + a * (Fp::ONE - bit); // 알파 산술상 일치하지만 bit constraint 가 위반 - let w = Halo2Witness { - score_a: fp_to_bytes(a), - score_b: fp_to_bytes(b), - choice_bit: fp_to_bytes(bit), - }; - let pub_ = Halo2Public { - selected_value: fp_to_bytes(sel), - }; - let res = p.prove(&vk, &pub_, &w); - assert!(res.is_err(), "bit ∈ {{0, 1}} 제약을 위반해야 함"); - } -} diff --git a/crates/lumen-zkml/src/lib.rs b/crates/lumen-zkml/src/lib.rs index cbe7509..c622046 100644 --- a/crates/lumen-zkml/src/lib.rs +++ b/crates/lumen-zkml/src/lib.rs @@ -6,7 +6,7 @@ //! 실행 가능합니다. //! //! [`ProvingSystem`] trait 가 백엔드 선택을 에이전트 런타임으로부터 숨깁니다. -//! 세 가지 백엔드가 scaffold 되어 있습니다: +//! 두 가지 백엔드가 scaffold 되어 있습니다: //! //! - **`mock`** - 항상 사용 가능. `(circuit_id, public_inputs, witness)` 를 //! 바인드하는 BLAKE3 commitment 를 생성합니다. 검증은 binding 을 다시 @@ -14,7 +14,15 @@ //! 아닙니다.** Verdict variant 는 의도적으로 [`Verification::ZkVerified`] //! 와 분리되어 있어 호출 사이트가 두 가지를 절대 혼동할 수 없습니다. //! - **`ezkl`** - feature-gated stub. -//! - **`halo2`** - feature 뒤 실제 PLONK 회로 (binary argmax). v0.3. +//! +//! ## 폐쇄형(Air-Gapped) 환경 메모 +//! +//! v0.3 까지 존재하던 `halo2` feature 와 그 PLONK 라우팅 회로는 v0.4 에서 +//! 제거되었습니다. `halo2_proofs` / `pasta_curves` 등 타원곡선 의존성이 +//! 매우 무거우면서도 `MockProver` 검증 단계에서는 witness 가 평문으로 +//! 노출되어 ZK 보장 자체가 없었기 때문입니다. 향후 succinct ZK 가 필요해 +//! 지면 SP1 / RISC Zero 등 별도 프레임워크 채택 여부를 마일스톤 재검토 +//! 시점에 결정합니다. #![forbid(unsafe_code)] #![warn(missing_docs)] @@ -24,8 +32,6 @@ pub mod verification; #[cfg(feature = "ezkl")] pub mod ezkl; -#[cfg(feature = "halo2")] -pub mod halo2; use lumen_core::Result; use serde::{de::DeserializeOwned, Serialize}; diff --git a/crates/lumen-zkml/src/mock.rs b/crates/lumen-zkml/src/mock.rs index c265116..676a75c 100644 --- a/crates/lumen-zkml/src/mock.rs +++ b/crates/lumen-zkml/src/mock.rs @@ -10,6 +10,7 @@ //! 제공하지 않으며**, 약한 soundness 만 - 유일한 보장은 `(public, witness)` //! 양쪽을 모두 가진 누군가가 증명을 생성했다는 사실 - 만 제공합니다. +use elib_blake::Blake3; use lumen_core::{Blake3Hash, Error, Result}; use serde::{Deserialize, Serialize}; @@ -48,7 +49,7 @@ impl MockCommitmentProver { postcard::to_allocvec(public).map_err(|e| Error::Decode(format!("public: {e}")))?; let witness_bytes = postcard::to_allocvec(witness).map_err(|e| Error::Decode(format!("witness: {e}")))?; - let mut hasher = blake3::Hasher::new(); + let mut hasher = Blake3::new(); hasher.update(b"lumen.mock.commit.v1\x00"); hasher.update(&u64::to_le_bytes(circuit_id.len() as u64)); hasher.update(circuit_id.as_bytes()); @@ -56,7 +57,12 @@ impl MockCommitmentProver { hasher.update(&public_bytes); hasher.update(&u64::to_le_bytes(witness_bytes.len() as u64)); hasher.update(&witness_bytes); - Ok(Blake3Hash(*hasher.finalize().as_bytes())) + let buf = hasher + .finalize() + .map_err(|e| Error::Zkml(format!("blake3 finalize: {e:?}")))?; + let mut out = [0u8; 32]; + out.copy_from_slice(buf.as_slice()); + Ok(Blake3Hash(out)) } } From 98247e9a2f67b9de8083294c1d92e892a0bd2733 Mon Sep 17 00:00:00 2001 From: "Q. T. Felix" <53819958+Quant-TheodoreFelix@users.noreply.github.com> Date: Fri, 8 May 2026 00:22:33 +0900 Subject: [PATCH 06/19] add cargo vendor scaffolding for air-gapped builds Introduces .cargo/vendor-config.toml as a source-replacement template that scripts/vendor.sh activates after running cargo vendor. AIR-GAPPED .md documents the end-to-end procedure: vendor the workspace, bundle, transfer, then validate the four CI gates with --offline. Online builds remain untouched because .cargo/config.toml is gitignored. --- .cargo/vendor-config.toml | 24 ++++++ .gitignore | 10 ++- AIR-GAPPED.md | 177 ++++++++++++++++++++++++++++++++++++++ scripts/vendor.sh | 99 +++++++++++++++++++++ 4 files changed, 309 insertions(+), 1 deletion(-) create mode 100644 .cargo/vendor-config.toml create mode 100644 AIR-GAPPED.md create mode 100755 scripts/vendor.sh diff --git a/.cargo/vendor-config.toml b/.cargo/vendor-config.toml new file mode 100644 index 0000000..631aa00 --- /dev/null +++ b/.cargo/vendor-config.toml @@ -0,0 +1,24 @@ +# 폐쇄형(Air-Gapped) 빌드용 cargo source-replacement 템플릿. +# +# scripts/vendor.sh 가 이 파일을 .cargo/config.toml 로 복사하여 활성화합니다. +# 일반 (온라인) 빌드는 이 파일을 무시하므로 영향이 없습니다. +# +# 활성화 후: +# - cargo build --offline --workspace +# - cargo test --offline --workspace +# - cargo clippy --offline --workspace --all-targets -- -D warnings +# - cargo fmt --all -- --check +# +# vendor/ 디렉토리는 .gitignore 에 등록되어 있고, scripts/vendor.sh 의 +# `cargo vendor` 실행 산출물입니다 (~500MB–1GB). + +[source.crates-io] +replace-with = "vendored-sources" + +[source.vendored-sources] +directory = "vendor" + +# 결정론적 빌드를 위해 net.offline 강제. 활성화 후 외부 fetch 시도가 있으면 +# 빌드가 즉시 실패하여 폐쇄망 정책 위반을 컴파일 시점에 차단합니다. +[net] +offline = true diff --git a/.gitignore b/.gitignore index 56317c9..7aaa9bc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,12 @@ target/ .idea/ *.swp -.DS_Store \ No newline at end of file +.DS_Store +.claude/ + +# 폐쇄형 빌드 산출물 (scripts/vendor.sh 가 생성). +# 템플릿 .cargo/vendor-config.toml 만 커밋되며, 실제 활성 설정과 +# vendor/ 디렉토리는 빌드 환경별로 생성됩니다. AIR-GAPPED.md 참고. +/vendor/ +/.cargo/config.toml +/.cargo/config.toml.backup-* \ No newline at end of file diff --git a/AIR-GAPPED.md b/AIR-GAPPED.md new file mode 100644 index 0000000..083640b --- /dev/null +++ b/AIR-GAPPED.md @@ -0,0 +1,177 @@ +# 폐쇄형(Air-Gapped) 환경 빌드 가이드 + +> **목적**: Lumen 을 외부 네트워크가 차단된 고보안 구역(High-Side)에서 +> 빌드/테스트/배포할 수 있도록 의존성을 사전 벤더링하고 오프라인 +> 4-게이트를 통과시키는 절차를 정의합니다. iso-light-k0 마이크로커널의 +> Ring 3 사용자공간 컴포넌트로 통합되는 시점부터 본 가이드의 절차가 +> 빌드 시스템에 강제됩니다. + +--- + +## 1. 사전 정리 — v0.4 의존성 변경 사항 + +폐쇄망 호환을 위해 v0.4 에서 다음 의존성이 제거되었습니다: + +| 제거 의존성 | 사유 | 대체 | +|-------------|------|------| +| `blake3`, `ed25519-dalek`, `subtle`, `rand`, `rand_core`, `aes-gcm`, `x25519-dalek` | 외부 crates.io 의존, FIPS 미인증 | `elib-k0-nt/*` (in-house, 인증 경로) | +| `halo2_proofs` + `ff` + `pasta_curves` | 타원곡선 의존성 ~30 크레이트, MockProver 는 ZK 보장 없음 | mock prover 가 BLAKE3 commitment 만 사용. succinct ZK 는 SP1/RISC Zero 마일스톤에서 재검토. | +| `candle-transformers` + `tokenizers` | HuggingFace Hub 다운로드 코드 포함, onig C 빌드 의존 | `llama-cpp` 백엔드 (v0.5) 또는 호스트 TEE 의 `ChannelEngine` forward 경로 | + +자세한 사유는 [`kernel-comp.md`](kernel-comp.md) 참고. + +--- + +## 2. 의존성 벤더링 (온라인 단계) + +폐쇄망 이전을 위해 온라인 환경에서 한 번 수행합니다. + +```bash +# 워크스페이스 루트에서: +./scripts/vendor.sh # default features 만 (가장 가벼움) +./scripts/vendor.sh --all # crypto-channel + llama-cpp 까지 포함 +``` + +스크립트가 수행하는 작업: + +1. `cargo vendor` 로 `Cargo.lock` 의 모든 크레이트 소스를 `vendor/` 에 복제 +2. `.cargo/vendor-config.toml` → `.cargo/config.toml` 활성화 (소스 교체 + `net.offline = true`) +3. 산출물 크기/개수 출력 + +산출물: + +| 경로 | 크기 | git | 비고 | +|------|------|-----|------| +| `vendor/` | ~500MB–1GB | ❌ ignored | `cargo vendor` 산출물 | +| `.cargo/config.toml` | ~700B | ❌ ignored | 활성화된 source-replacement 설정 | +| `.cargo/vendor-config.toml` | ~700B | ✅ committed | 템플릿 | + +--- + +## 3. 시스템 바이너리 사전 패키징 + +워크스페이스 외부의 빌드 도구는 별도로 폐쇄망에 옮겨야 합니다. + +| 바이너리 | 활성화 조건 | 용도 | +|----------|-------------|------| +| `rustc` 1.85.0 + cargo | 항상 (`rust-toolchain.toml`) | Rust 컴파일러 | +| `protoc` (Protocol Buffers) | `lumen-inference/candle` feature | `candle-onnx` 의 build script 가 빌드 시점에 호출 | +| `cmake` ≥ 3.20 | `lumen-inference/llama-cpp` feature (v0.5) | llama.cpp 네이티브 라이브러리 빌드 | + +폐쇄망 반입 시 권장: `~/.cargo/`, `protoc` 바이너리, `cmake`, 그리고 본 +저장소(벤더링 완료 상태)를 함께 묶어 `tar.gz` 단일 번들로 전송. + +```bash +# 온라인 측에서: +./scripts/vendor.sh --all +tar czf lumen-airgap-bundle.tar.gz \ + --exclude=target --exclude=.git \ + . + +# 폐쇄망 측에서 (예: 데이터 다이오드/CDS 통과 후): +tar xzf lumen-airgap-bundle.tar.gz +``` + +--- + +## 4. 오프라인 4-게이트 검증 + +폐쇄망에서 다음 명령이 모두 통과해야 합니다. + +```bash +cargo build --offline --workspace --all-targets +cargo test --offline --workspace +cargo clippy --offline --workspace --all-targets -- -D warnings +cargo fmt --all -- --check +``` + +`vendor-config.toml` 의 `net.offline = true` 설정 덕분에 외부 fetch 시도가 +있으면 빌드가 즉시 실패합니다 — 폐쇄망 정책 위반을 컴파일 시점에 +탐지하는 안전장치입니다. + +선택적 feature 별 검증: + +```bash +# 보안 채널 (X25519 + AES-256-GCM, elib-k0-nt 백엔드) +cargo test --offline --workspace --features lumen-channel/crypto-channel + +# llama.cpp 추론 백엔드 (v0.5 스텁) +cargo test --offline --workspace --features lumen-inference/llama-cpp + +# ONNX 라우팅 추론 (protoc 시스템 바이너리 필요) +cargo build --offline --workspace --features lumen-inference/candle +``` + +--- + +## 5. iso-light-k0 마이크로커널 통합 메모 + +Lumen 은 iso-light-k0 의 Ring 3 사용자공간 컴포넌트로 동작합니다. +보안 경계는 다음과 같습니다. + +``` +┌─────────────────────────── High-Side (Air-Gapped) ───────────────────────────┐ +│ │ +│ Ring 0 ┃ iso-light-k0 마이크로커널 (PSK 기반 mutual auth, TLS-PSK-PQ) │ +│ ┃ - elib-k0-nt 암호 모듈 (FIPS 인증 경로) │ +│ ─────────┃───────────────────────────────────────────────────────────────── │ +│ Ring 3 ┃ Lumen 에이전트 프레임워크 (본 저장소) │ +│ ┃ - WASM 샌드박스 (wasmtime, JIT) │ +│ ┃ - 호스트 TEE 추론 forward (ChannelEngine, AES-256-GCM) │ +│ ┃ - 결정론적 상태 (tokio + lumen-fixed) │ +│ │ +└──────────────────────────────────────────────────────────────────────────────┘ +``` + +**제약 사항:** +- **Ring 0 에서 Cranelift JIT 실행 불가** — 따라서 `lumen-sandbox` 는 + 반드시 Ring 3 사용자공간 프로세스로 실행. 커널-에이전트 간 통신은 + iso-light-k0 의 syscall 또는 PSK 기반 IPC 채널 사용. +- **모든 외부 fetch 금지** — `cargo build` 의 네트워크 시도조차 + `net.offline = true` 로 차단. crates.io 미러 운용 금지. +- **모델 가중치 외부 반입** — Safetensors / ONNX / GGUF 파일은 + `lumen-provenance` 의 BLAKE3 + Ed25519 매니페스트 검증을 통과해야만 + Ring 3 에서 로드 가능. + +--- + +## 6. 운영 점검 (정기) + +| 점검 항목 | 주기 | 명령 | +|-----------|------|------| +| `vendor/` 무결성 | 빌드 전 | `./scripts/vendor.sh --check` | +| 4-게이트 | 매 변경 | 위 §4 참고 | +| `Cargo.lock` 변동 | PR 검토 | `git diff Cargo.lock` | +| 시스템 바이너리 버전 | 분기 | `rustc --version`, `protoc --version` | + +--- + +## 7. 트러블슈팅 + +### `error: failed to get ... from registry` + +→ `.cargo/config.toml` 의 `vendored-sources` 가 활성화되지 않았거나 + `vendor/` 가 누락. `./scripts/vendor.sh` 재실행. + +### `error: Could not find protoc` + +→ `lumen-inference/candle` feature 사용 시 발생. 폐쇄망에 `protoc` 바이너리 + 사전 배치 필요. `PROTOC=/path/to/protoc cargo build ...` 로 명시 가능. + +### `error: vendor/ 디렉토리가 없습니다` + +→ `./scripts/vendor.sh --check` 를 vendor 디렉토리 없이 실행한 경우. + 먼저 `./scripts/vendor.sh` 또는 `./scripts/vendor.sh --all` 실행. + +### 빌드가 오래 걸림 + +→ `wasmtime` (Cranelift JIT) 빌드가 ~2–3 분 소요. 정상. + `cargo build --offline --jobs $(nproc)` 로 병렬화 권장. + +--- + +## 참고 + +- [`kernel-comp.md`](kernel-comp.md) — 의존성 점검 보고서 +- [`CLAUDE.md`](CLAUDE.md) — 프로젝트 헌장 (4-게이트, 한국어 docstring 등) +- [iso-light-k0 AIR-GAP.md](../iso-light-k0/AIR-GAP.md) — 커널 측 폐쇄망 프로토콜 diff --git a/scripts/vendor.sh b/scripts/vendor.sh new file mode 100755 index 0000000..75894cf --- /dev/null +++ b/scripts/vendor.sh @@ -0,0 +1,99 @@ +#!/usr/bin/env bash +# +# Lumen 폐쇄형(Air-Gapped) 환경 의존성 벤더링 스크립트. +# +# 동작: +# 1. cargo vendor 로 모든 워크스페이스 의존성 소스를 vendor/ 에 복제 +# 2. .cargo/vendor-config.toml 을 .cargo/config.toml 로 활성화 +# 3. 폐쇄망에서 필요한 시스템 바이너리 (protoc 등) 위치 안내 +# +# 사용: +# ./scripts/vendor.sh # 기본 (default features) +# ./scripts/vendor.sh --all # candle/llama-cpp/crypto-channel 포함 +# ./scripts/vendor.sh --check # vendor/ 무결성 재검증 (재실행 안전) +# +# 산출물: +# vendor/ ~500MB–1GB, .gitignore 됨 +# .cargo/config.toml 소스 교체 + net.offline=true +# +# 폐쇄망 이전 절차: +# 1. (온라인) ./scripts/vendor.sh --all +# 2. tar czf lumen-airgap-bundle.tar.gz . --exclude=target --exclude=.git +# 3. (오프라인) tar xzf lumen-airgap-bundle.tar.gz && cargo build --offline ... +# + +set -euo pipefail + +REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +cd "$REPO_ROOT" + +MODE="default" +if [[ "${1:-}" == "--all" ]]; then + MODE="all" +elif [[ "${1:-}" == "--check" ]]; then + MODE="check" +elif [[ -n "${1:-}" ]]; then + echo "사용법: $0 [--all | --check]" >&2 + exit 1 +fi + +echo "==> Lumen 의존성 벤더링 (mode=${MODE})" + +# 1. 사전 점검: cargo, git +command -v cargo >/dev/null 2>&1 || { echo "cargo 가 PATH 에 없습니다." >&2; exit 1; } + +# 2. cargo vendor 실행 +VENDOR_ARGS=() +if [[ "$MODE" == "all" ]]; then + # 모든 optional feature 의 의존성도 함께 가져옵니다. + # candle 은 protoc 사전 설치 필요. 이 스크립트는 vendor 만 수행하고 + # 빌드는 별도이므로 protoc 부재여도 vendor 는 성공합니다. + VENDOR_ARGS+=( + --sync crates/lumen-channel/Cargo.toml + --sync crates/lumen-inference/Cargo.toml + ) +fi + +if [[ "$MODE" == "check" ]]; then + if [[ ! -d vendor ]]; then + echo "vendor/ 디렉토리가 없습니다. 먼저 $0 또는 $0 --all 을 실행하세요." >&2 + exit 1 + fi + echo "==> cargo vendor 무결성 재검증 (--no-delete)" + cargo vendor --no-delete vendor >/dev/null +else + echo "==> cargo vendor 실행 — 약 500MB~1GB 의 소스를 vendor/ 로 가져옵니다..." + cargo vendor "${VENDOR_ARGS[@]}" vendor >/dev/null +fi + +# 3. .cargo/config.toml 활성화 (이미 존재하면 백업) +if [[ -f .cargo/config.toml && ! -L .cargo/config.toml ]]; then + cp .cargo/config.toml ".cargo/config.toml.backup-$(date +%Y%m%d-%H%M%S)" + echo "==> 기존 .cargo/config.toml 을 백업했습니다." +fi + +cp .cargo/vendor-config.toml .cargo/config.toml +echo "==> .cargo/config.toml 활성화 (vendor-config.toml 복사)" + +# 4. 결과 요약 +VENDOR_SIZE=$(du -sh vendor 2>/dev/null | cut -f1) +VENDOR_COUNT=$(find vendor -mindepth 1 -maxdepth 1 -type d | wc -l | tr -d ' ') +echo "" +echo "==> 완료" +echo " vendor/ 크기 : ${VENDOR_SIZE}" +echo " 벤더된 크레이트 : ${VENDOR_COUNT} 개" +echo "" +echo "다음 단계 (4-게이트):" +echo " cargo build --offline --workspace --all-targets" +echo " cargo test --offline --workspace" +echo " cargo clippy --offline --workspace --all-targets -- -D warnings" +echo " cargo fmt --all -- --check" +echo "" +echo "옵셔널 feature 빌드:" +echo " cargo build --offline --workspace --features lumen-channel/crypto-channel,lumen-inference/llama-cpp" +echo "" +echo "polleur 폐쇄망 시스템 바이너리 (워크스페이스 외부):" +echo " - protoc (lumen-inference/candle feature 활성화 시 필수)" +echo " - cmake (lumen-inference/llama-cpp feature 활성화 시 필수, v0.5)" +echo "" +echo "AIR-GAPPED.md 참고." From 2c57f8b8b8bbd56d8c3169c812349e313d9d087e Mon Sep 17 00:00:00 2001 From: "Q. T. Felix" <53819958+Quant-TheodoreFelix@users.noreply.github.com> Date: Fri, 8 May 2026 00:23:06 +0900 Subject: [PATCH 07/19] fix domain prefix, manifest verification and sandbox limits - Add Ed25519 domain separation prefixes for capability bodies, attested channel handshakes/frames, and provenance manifests so that the same identity key cannot have a signature replayed across protocols. - Reject unsigned manifests when trusted_signers is configured, instead of silently skipping signature verification (verify_model and verify_model_against_pinset). - Cap guest-controlled buffer copies at 64 KiB and bound audit/tool call vectors per execution to block host-memory DoS via repeated lumen_log / lumen_call_tool invocations. - Reorder attested channel recv to short-circuit on epoch / seq before ed25519 verify. - Migrate trailing rand::OsRng test import to lumen_core::rng::OsRng. - Add regression tests for the domain prefix and unsigned-manifest hardenings. --- crates/lumen-capability/src/capability.rs | 59 +++++++++++++++-- crates/lumen-capability/src/policy.rs | 2 +- crates/lumen-channel/src/attested.rs | 65 +++++++++++++------ crates/lumen-provenance/src/lib.rs | 29 ++++++--- crates/lumen-provenance/src/manifest.rs | 18 ++++- crates/lumen-provenance/src/pinset.rs | 33 +++++++--- .../tests/verify_safetensors.rs | 33 +++++++++- crates/lumen-sandbox/src/imports.rs | 44 +++++++++++-- 8 files changed, 228 insertions(+), 55 deletions(-) diff --git a/crates/lumen-capability/src/capability.rs b/crates/lumen-capability/src/capability.rs index 6f7af28..98febb2 100644 --- a/crates/lumen-capability/src/capability.rs +++ b/crates/lumen-capability/src/capability.rs @@ -7,6 +7,14 @@ use serde::{Deserialize, Serialize}; use crate::resource::Resource; +/// Ed25519 도메인 분리 prefix. +/// +/// Lumen 의 다른 서명 페이로드 (보안 채널 핸드셰이크 / 데이터 프레임 / 모델 +/// 매니페스트) 와 동일한 신원 키를 공유하더라도, 이 prefix 가 서명 입력 첫 +/// 부분에 포함되므로 다른 프로토콜의 정상 서명을 capability 검증에 재사용 +/// 하는 cross-protocol replay 가 차단됩니다. +const CAPABILITY_SIGN_DOMAIN: &[u8] = b"lumen.capability.body.v1"; + /// Capability 의 본문 - 서명되는 모든 데이터. /// /// 본문과 서명을 분리해 두면 동일한 정규 표현을 서명과 검증 양쪽에서 @@ -39,9 +47,8 @@ pub struct Capability { impl Capability { /// 주어진 서명 키로 본문에 서명해 완성된 capability 를 만듭니다. pub fn sign(body: CapabilityBody, key: &SigningKey) -> Result { - let bytes = postcard::to_allocvec(&body) - .map_err(|e| Error::Decode(format!("capability body encode: {e}")))?; - let signature = key.sign(&bytes); + let payload = signing_payload(&body)?; + let signature = key.sign(&payload); Ok(Self { body, signature }) } @@ -50,17 +57,26 @@ impl Capability { /// 만료, audience, 리플레이는 **검사하지 않습니다** - 그것은 /// [`crate::PolicyEngine`] 의 책임입니다. pub fn verify_signature(&self, key: &VerifyingKey) -> Result<()> { - let bytes = postcard::to_allocvec(&self.body) - .map_err(|e| Error::Decode(format!("capability body encode: {e}")))?; - key.verify(&bytes, &self.signature) + let payload = signing_payload(&self.body)?; + key.verify(&payload, &self.signature) } } +/// `(CAPABILITY_SIGN_DOMAIN || postcard(body))` 를 정규 서명 페이로드로 반환. +fn signing_payload(body: &CapabilityBody) -> Result> { + let body_bytes = postcard::to_allocvec(body) + .map_err(|e| Error::Decode(format!("capability body encode: {e}")))?; + let mut out = Vec::with_capacity(CAPABILITY_SIGN_DOMAIN.len() + body_bytes.len()); + out.extend_from_slice(CAPABILITY_SIGN_DOMAIN); + out.extend_from_slice(&body_bytes); + Ok(out) +} + #[cfg(test)] mod tests { use super::*; + use lumen_core::rng::OsRng; use lumen_core::ToolId; - use rand::rngs::OsRng; use crate::Resource; @@ -86,4 +102,33 @@ mod tests { tampered.body.resource = Resource::ZkProofRequest; assert!(tampered.verify_signature(&vk).is_err()); } + + /// 도메인 분리 검증: domain prefix 가 없는 직접 postcard 서명은 + /// `verify_signature` 에서 거부되어야 합니다. cross-protocol replay + /// 보호의 회귀 테스트입니다. + #[test] + fn rejects_signature_without_domain_prefix() { + let sk = SigningKey::generate(&mut OsRng); + let vk = sk.verifying_key(); + let body = CapabilityBody { + id: CapabilityId::random(&mut OsRng), + audience: AgentId::random(&mut OsRng), + resource: Resource::Tool(ToolId::new("echo").unwrap()), + nonce: [3u8; 16], + expires_at: Timestamp::FOREVER, + issuer: AgentId::random(&mut OsRng), + }; + // 공격자가 도메인 prefix 없이 postcard(body) 만 서명 - 다른 프로토콜의 + // 정상 서명을 capability 서명으로 재사용하는 시나리오. + let raw = postcard::to_allocvec(&body).unwrap(); + let bad_sig = sk.sign(&raw); + let bad_cap = Capability { + body, + signature: bad_sig, + }; + assert!( + bad_cap.verify_signature(&vk).is_err(), + "domain prefix 없는 서명은 거부되어야 함" + ); + } } diff --git a/crates/lumen-capability/src/policy.rs b/crates/lumen-capability/src/policy.rs index 48a50e6..283bedb 100644 --- a/crates/lumen-capability/src/policy.rs +++ b/crates/lumen-capability/src/policy.rs @@ -137,8 +137,8 @@ fn _ensure_pattern_types_compile(_: &PathPattern, _: &HostPattern) {} #[cfg(test)] mod tests { use super::*; + use lumen_core::rng::OsRng; use lumen_core::{AgentId, CapabilityId, SigningKey}; - use rand::rngs::OsRng; use crate::capability::{Capability, CapabilityBody}; diff --git a/crates/lumen-channel/src/attested.rs b/crates/lumen-channel/src/attested.rs index 659f4dd..639a73e 100644 --- a/crates/lumen-channel/src/attested.rs +++ b/crates/lumen-channel/src/attested.rs @@ -44,6 +44,16 @@ pub const SOFTWARE_HELLO_MARKER: &str = "lumen.attested.v1"; /// 활성화됩니다. pub const TEE_HELLO_MARKER: &str = "lumen.attested-tee.v1"; +/// 핸드셰이크 Hello 서명 도메인 분리 prefix. +/// +/// 같은 Ed25519 신원 키가 capability / manifest / 데이터 프레임 서명에도 +/// 사용되므로, 다른 프로토콜의 서명을 Hello 서명으로 재사용하는 cross- +/// protocol replay 를 차단하기 위한 prefix 입니다. +const HELLO_SIGN_DOMAIN: &[u8] = b"lumen.attested.hello.v1"; + +/// 데이터 프레임 서명 도메인 분리 prefix. +const FRAME_SIGN_DOMAIN: &[u8] = b"lumen.attested.frame.v1"; + /// 서명되는 핸드셰이크 평문 페이로드. #[derive(Clone, Debug, Serialize, Deserialize)] struct Hello { @@ -158,9 +168,7 @@ impl AttestedChannel { nonce, attestation_doc, }; - let hello_bytes = - postcard::to_allocvec(&hello).map_err(|e| Error::Decode(format!("hello: {e}")))?; - let signature = sk.sign(&hello_bytes); + let signature = sk.sign(&hello_signing_payload(&hello)?); let signed = SignedHello { hello: hello.clone(), signature, @@ -184,9 +192,7 @@ impl AttestedChannel { "attested: peer hello 의 수신자가 우리 ID 가 아님".into(), )); } - let peer_bytes = postcard::to_allocvec(&peer.hello) - .map_err(|e| Error::Decode(format!("peer hello: {e}")))?; - peer_vk.verify(&peer_bytes, &peer.signature)?; + peer_vk.verify(&hello_signing_payload(&peer.hello)?, &peer.signature)?; // TEE 변종: peer attestation 문서 형식 + measurement 핀 검증. if marker == TEE_HELLO_MARKER { @@ -234,9 +240,7 @@ impl SecureChannel for AttestedChannel { seq: self.next_send_seq, payload: bytes, }; - let frame_bytes = postcard::to_allocvec(&frame) - .map_err(|e| Error::Decode(format!("frame encode: {e}")))?; - let signature = self.sk.sign(&frame_bytes); + let signature = self.sk.sign(&frame_signing_payload(&frame)?); let signed = SignedFrame { frame, signature }; self.inner.send(&signed).await?; self.next_send_seq = self @@ -248,9 +252,10 @@ impl SecureChannel for AttestedChannel { async fn recv_bytes(&mut self) -> Result> { let signed: SignedFrame = self.inner.recv().await?; - let frame_bytes = postcard::to_allocvec(&signed.frame) - .map_err(|e| Error::Decode(format!("frame decode: {e}")))?; - self.peer_vk.verify(&frame_bytes, &signed.signature)?; + // epoch / seq 를 먼저 빠르게 거부 - 적대적 가비지 위에서 ed25519 + // 검증을 낭비하지 않습니다. AEAD 가 없는 attested 변종에서도 위 + // 두 검사는 인증에 영향을 주지 않으며 실제 신원 검증은 아래 + // peer_vk.verify 가 담당합니다. if signed.frame.epoch != self.epoch { return Err(Error::Channel(format!( "attested: epoch mismatch (expected {}, got {})", @@ -263,6 +268,8 @@ impl SecureChannel for AttestedChannel { self.next_recv_seq, signed.frame.seq ))); } + self.peer_vk + .verify(&frame_signing_payload(&signed.frame)?, &signed.signature)?; self.next_recv_seq = self .next_recv_seq .checked_add(1) @@ -271,10 +278,28 @@ impl SecureChannel for AttestedChannel { } } +/// `(HELLO_SIGN_DOMAIN || postcard(hello))` 정규 서명 페이로드. +fn hello_signing_payload(hello: &Hello) -> Result> { + let body = postcard::to_allocvec(hello).map_err(|e| Error::Decode(format!("hello: {e}")))?; + let mut out = Vec::with_capacity(HELLO_SIGN_DOMAIN.len() + body.len()); + out.extend_from_slice(HELLO_SIGN_DOMAIN); + out.extend_from_slice(&body); + Ok(out) +} + +/// `(FRAME_SIGN_DOMAIN || postcard(frame))` 정규 서명 페이로드. +fn frame_signing_payload(frame: &DataFrame) -> Result> { + let body = postcard::to_allocvec(frame).map_err(|e| Error::Decode(format!("frame: {e}")))?; + let mut out = Vec::with_capacity(FRAME_SIGN_DOMAIN.len() + body.len()); + out.extend_from_slice(FRAME_SIGN_DOMAIN); + out.extend_from_slice(&body); + Ok(out) +} + fn random_nonce() -> [u8; 16] { - use rand::RngCore; + use lumen_core::rng::{OsRng, Rng}; let mut n = [0u8; 16]; - rand::rngs::OsRng.fill_bytes(&mut n); + OsRng.fill_bytes(&mut n); n } @@ -290,7 +315,7 @@ mod tests { AttestedChannel, AttestedChannel, ) { - let mut rng = rand::rngs::OsRng; + let mut rng = lumen_core::rng::OsRng; let sk_a = SigningKey::generate(&mut rng); let sk_b = SigningKey::generate(&mut rng); let vk_a = sk_a.verifying_key(); @@ -327,7 +352,7 @@ mod tests { #[tokio::test] async fn handshake_with_wrong_peer_fails() { - let mut rng = rand::rngs::OsRng; + let mut rng = lumen_core::rng::OsRng; let sk_a = SigningKey::generate(&mut rng); let sk_b = SigningKey::generate(&mut rng); let sk_c = SigningKey::generate(&mut rng); // attacker @@ -373,7 +398,7 @@ mod tests { async fn tampered_payload_rejected() { // We can't easily tamper without breaking the abstraction; instead, // wire two pairs and inject a different signer's frame. - let mut rng = rand::rngs::OsRng; + let mut rng = lumen_core::rng::OsRng; let sk_a = SigningKey::generate(&mut rng); let sk_b = SigningKey::generate(&mut rng); let sk_evil = SigningKey::generate(&mut rng); @@ -407,7 +432,7 @@ mod tests { doc_b[144..192].fill(0x22); let pin_b = vec![0x22u8; 48]; - let mut rng = rand::rngs::OsRng; + let mut rng = lumen_core::rng::OsRng; let sk_a = SigningKey::generate(&mut rng); let sk_b = SigningKey::generate(&mut rng); let vk_a = sk_a.verifying_key(); @@ -443,7 +468,7 @@ mod tests { // A 가 기대하는 pin 은 0xAA 인데 실제 B 는 0x22 -> 불일치. let bad_pin = vec![0xAAu8; 48]; - let mut rng = rand::rngs::OsRng; + let mut rng = lumen_core::rng::OsRng; let sk_a = SigningKey::generate(&mut rng); let sk_b = SigningKey::generate(&mut rng); let vk_a = sk_a.verifying_key(); @@ -465,7 +490,7 @@ mod tests { let mut doc = vec![0u8; 1184]; doc[0..4].copy_from_slice(&2u32.to_le_bytes()); - let mut rng = rand::rngs::OsRng; + let mut rng = lumen_core::rng::OsRng; let sk_a = SigningKey::generate(&mut rng); let sk_b = SigningKey::generate(&mut rng); let vk_a = sk_a.verifying_key(); diff --git a/crates/lumen-provenance/src/lib.rs b/crates/lumen-provenance/src/lib.rs index 5f2fa10..7ee3adb 100644 --- a/crates/lumen-provenance/src/lib.rs +++ b/crates/lumen-provenance/src/lib.rs @@ -63,20 +63,31 @@ pub fn verify_model( ))); } - if let (Some(sig), Some(signer)) = (&manifest.signature, &manifest.signer) { - let body = manifest.signing_payload()?; - let mut accepted = false; - for trusted in trusted_signers { - if trusted == signer && trusted.verify(&body, sig).is_ok() { - accepted = true; - break; + // trusted_signers 가 비어있지 않다면 매니페스트는 반드시 서명되어 + // 있어야 합니다 - 이전 구현은 None 매니페스트를 silently skip 하여 + // 미서명 모델이 hash 매칭만으로 통과될 수 있는 결함이 있었습니다. + match (&manifest.signature, &manifest.signer) { + (Some(sig), Some(signer)) => { + let body = manifest.signing_payload()?; + let mut accepted = false; + for trusted in trusted_signers { + if trusted == signer && trusted.verify(&body, sig).is_ok() { + accepted = true; + break; + } + } + if !accepted { + return Err(Error::Provenance( + "signature did not verify against any trusted signer".into(), + )); } } - if !accepted { + _ if !trusted_signers.is_empty() => { return Err(Error::Provenance( - "signature did not verify against any trusted signer".into(), + "manifest is unsigned but trusted signers were configured".into(), )); } + _ => {} } match manifest.format { diff --git a/crates/lumen-provenance/src/manifest.rs b/crates/lumen-provenance/src/manifest.rs index d47c358..f6a72d5 100644 --- a/crates/lumen-provenance/src/manifest.rs +++ b/crates/lumen-provenance/src/manifest.rs @@ -5,6 +5,13 @@ use std::path::PathBuf; use lumen_core::{Blake3Hash, Error, Result, Signature, SigningKey, VerifyingKey}; use serde::{Deserialize, Serialize}; +/// Ed25519 도메인 분리 prefix. +/// +/// Capability / 보안 채널 핸드셰이크 / 프레임 서명과 동일한 신원 키를 공유 +/// 하는 환경에서, 매니페스트 서명을 다른 프로토콜의 서명에 재사용하는 +/// cross-protocol replay 를 차단합니다. +const MANIFEST_SIGN_DOMAIN: &[u8] = b"lumen.provenance.manifest.v1"; + /// 매니페스트가 기술하는 파일 형식. #[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)] pub enum Format { @@ -43,8 +50,8 @@ pub struct ModelManifest { impl ModelManifest { /// 서명이 덮는 바이트. /// - /// `name | version | format | hash | license` 를 연접합니다. 경로를 - /// 제외하면 배포 위치에 무관하게 서명이 안정적입니다. + /// `MANIFEST_SIGN_DOMAIN || postcard({name | version | format | hash | license})`. + /// 경로 (`path`) 를 제외하므로 배포 위치에 무관하게 서명이 안정적입니다. pub fn signing_payload(&self) -> Result> { #[derive(Serialize)] struct Body<'a> { @@ -61,7 +68,12 @@ impl ModelManifest { hash: self.hash, license: self.license.as_deref(), }; - postcard::to_allocvec(&body).map_err(|e| Error::Decode(format!("manifest payload: {e}"))) + let body_bytes = postcard::to_allocvec(&body) + .map_err(|e| Error::Decode(format!("manifest payload: {e}")))?; + let mut out = Vec::with_capacity(MANIFEST_SIGN_DOMAIN.len() + body_bytes.len()); + out.extend_from_slice(MANIFEST_SIGN_DOMAIN); + out.extend_from_slice(&body_bytes); + Ok(out) } /// `key` 로 매니페스트에 서명하고 `signature` 와 `signer` 를 채웁니다. diff --git a/crates/lumen-provenance/src/pinset.rs b/crates/lumen-provenance/src/pinset.rs index 2f38a59..5dc76df 100644 --- a/crates/lumen-provenance/src/pinset.rs +++ b/crates/lumen-provenance/src/pinset.rs @@ -154,20 +154,35 @@ pub fn verify_model_against_pinset( }; debug_assert!(accepted); - if let (Some(sig), Some(signer)) = (&manifest.signature, &manifest.signer) { - let body = manifest.signing_payload()?; - let mut ok = false; - for trusted in trusted_signers { - if trusted == signer && trusted.verify(&body, sig).is_ok() { - ok = true; - break; + // trusted_signers 가 비어있지 않다면 매니페스트는 반드시 서명되어 + // 있어야 합니다. 이전 구현은 signature/signer 가 None 인 매니페스트에 + // 대해 검증을 silently skip 하여, pinset 의 grace 윈도가 느슨한 경우 + // 미서명 매니페스트가 통과될 수 있는 결함이 있었습니다. + match (&manifest.signature, &manifest.signer) { + (Some(sig), Some(signer)) => { + let body = manifest.signing_payload()?; + let mut ok = false; + for trusted in trusted_signers { + if trusted == signer && trusted.verify(&body, sig).is_ok() { + ok = true; + break; + } + } + if !ok { + return Err(Error::Provenance( + "signature did not verify against any trusted signer".into(), + )); } } - if !ok { + _ if !trusted_signers.is_empty() => { return Err(Error::Provenance( - "signature did not verify against any trusted signer".into(), + "manifest is unsigned but trusted signers were configured".into(), )); } + _ => { + // trusted_signers 가 비어 있고 매니페스트도 미서명 - pinset + // 검증만으로 진행 (호출자가 명시적으로 unsigned 모드 선택). + } } match manifest.format { diff --git a/crates/lumen-provenance/tests/verify_safetensors.rs b/crates/lumen-provenance/tests/verify_safetensors.rs index de094e5..98efcdf 100644 --- a/crates/lumen-provenance/tests/verify_safetensors.rs +++ b/crates/lumen-provenance/tests/verify_safetensors.rs @@ -68,8 +68,8 @@ fn verify_tampered_file_fails() { #[test] fn verify_with_signature() { + use lumen_core::rng::OsRng; use lumen_core::SigningKey; - use rand::rngs::OsRng; let dir = tempfile::tempdir().unwrap(); let path = write_tiny_safetensors(&dir); @@ -95,3 +95,34 @@ fn verify_with_signature() { let err = verify_model(&path, &manifest, &[other.verifying_key()]).unwrap_err(); assert!(err.to_string().contains("signature")); } + +/// 회귀: trusted_signers 가 비어있지 않은데 매니페스트가 미서명이면 거부. +/// 이전 구현은 (signature, signer) 가 None 이면 silently skip 했음. +#[test] +fn unsigned_manifest_rejected_when_signers_required() { + use lumen_core::rng::OsRng; + use lumen_core::SigningKey; + + let dir = tempfile::tempdir().unwrap(); + let path = write_tiny_safetensors(&dir); + let hash = Blake3Hash::of_file(&path).unwrap(); + let trusted = SigningKey::generate(&mut OsRng); + + // signature/signer 가 None 이지만 trusted_signers 는 비어있지 않음. + let manifest = ModelManifest { + name: "tiny".into(), + version: "0.0.1".into(), + path: path.clone(), + format: Format::Safetensors, + hash, + license: None, + signature: None, + signer: None, + }; + let err = verify_model(&path, &manifest, &[trusted.verifying_key()]).unwrap_err(); + let msg = err.to_string(); + assert!( + msg.contains("unsigned"), + "expected unsigned-rejection, got: {msg}" + ); +} diff --git a/crates/lumen-sandbox/src/imports.rs b/crates/lumen-sandbox/src/imports.rs index 60f8b7e..67869fa 100644 --- a/crates/lumen-sandbox/src/imports.rs +++ b/crates/lumen-sandbox/src/imports.rs @@ -18,6 +18,26 @@ use wasmtime::{Caller, Linker, Memory}; use crate::host::{HostState, ToolCallRecord}; +/// 단일 호스트 임포트 호출이 게스트 메모리에서 호스트 Vec 으로 복사할 수 +/// 있는 최대 바이트 수 (64 KiB). +/// +/// 이 한도가 없으면 게스트가 16 MiB 선형 메모리 페이지를 모두 채워 +/// `lumen_log` / `lumen_call_tool` 인자로 반복 전달함으로써 호스트 측 +/// 메모리를 과다 소비시키는 `DoS` 가 가능합니다. 도구 인자나 로그 메시지가 +/// 정상 운영에서 64 KiB 를 넘는 경우는 거의 없으므로 보수적인 상한으로 +/// 충분합니다. +const MAX_GUEST_BUFFER: usize = 64 * 1024; + +/// 단일 실행에서 audit 버퍼가 누적할 수 있는 최대 항목 수. +/// +/// 게스트가 짧은 메시지로 반복 `lumen_log` 를 호출해 호스트 audit Vec 을 +/// 무한 증식시키지 못하도록 보호합니다. 한도 도달 후 모든 후속 `lumen_log` +/// 호출은 무시됩니다 (실행은 계속 — fail-safe). +const MAX_AUDIT_ENTRIES: usize = 4096; + +/// 단일 실행에서 기록할 수 있는 최대 도구 호출 시도 수. +const MAX_TOOL_CALLS: usize = 1024; + /// 모듈 이름 `lumen` 아래 Lumen 호스트 임포트를 등록합니다. /// /// `caps` 콜백은 도구 호출 시도에 적용 가능한 capability 토큰을 반환합니다 - @@ -43,7 +63,12 @@ where let msg = String::from_utf8_lossy(&b).into_owned(); let line = format!("[guest level={level}] {msg}"); tracing::info!(target: "lumen.sandbox", "{line}"); - caller.data().audit.lock().push(line); + let mut audit = caller.data().audit.lock(); + if audit.len() < MAX_AUDIT_ENTRIES { + audit.push(line); + } + // 한도 도달 시 silently 드롭 - tracing 은 이미 발행되었고, + // panic 또는 trap 으로 호스트를 흔들지 않습니다. }, ) .map_err(|e| Error::Sandbox(format!("register lumen_log: {e}")))?; @@ -113,6 +138,11 @@ fn read_guest_bytes( ) -> Result> { let start = usize::try_from(ptr).map_err(|_| Error::Sandbox("negative ptr".into()))?; let n = usize::try_from(len).map_err(|_| Error::Sandbox("negative len".into()))?; + if n > MAX_GUEST_BUFFER { + return Err(Error::Sandbox(format!( + "guest buffer too large: {n} > {MAX_GUEST_BUFFER}" + ))); + } let data = memory.data(&*caller); let end = start .checked_add(n) @@ -124,8 +154,12 @@ fn read_guest_bytes( } fn record(caller: &Caller<'_, HostState>, tool: &str, authorised: bool) { - caller.data().tool_calls.lock().push(ToolCallRecord { - tool: tool.to_string(), - authorised, - }); + let mut tool_calls = caller.data().tool_calls.lock(); + if tool_calls.len() < MAX_TOOL_CALLS { + tool_calls.push(ToolCallRecord { + tool: tool.to_string(), + authorised, + }); + } + // 한도 도달 시 드롭 - 이미 audit::deny / allow 가 tracing 으로 기록. } From 3084aa5d279a91f1f0b62be2a8ccc92b351573cd Mon Sep 17 00:00:00 2001 From: "Q. T. Felix" <53819958+Quant-TheodoreFelix@users.noreply.github.com> Date: Fri, 8 May 2026 00:28:09 +0900 Subject: [PATCH 08/19] fix .gitignore --- .gitignore | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.gitignore b/.gitignore index 7aaa9bc..627afe4 100644 --- a/.gitignore +++ b/.gitignore @@ -2,11 +2,6 @@ target/ .idea/ *.swp .DS_Store -.claude/ - -# 폐쇄형 빌드 산출물 (scripts/vendor.sh 가 생성). -# 템플릿 .cargo/vendor-config.toml 만 커밋되며, 실제 활성 설정과 -# vendor/ 디렉토리는 빌드 환경별로 생성됩니다. AIR-GAPPED.md 참고. /vendor/ /.cargo/config.toml /.cargo/config.toml.backup-* \ No newline at end of file From 6b06efd338f674ff817e5590d39fbd567013f470 Mon Sep 17 00:00:00 2001 From: "Q. T. Felix" <53819958+Quant-TheodoreFelix@users.noreply.github.com> Date: Fri, 8 May 2026 00:35:15 +0900 Subject: [PATCH 09/19] fix .gitignore --- CLAUDE.md | 41 ------ kernel-comp.md | 377 ------------------------------------------------- 2 files changed, 418 deletions(-) delete mode 100644 CLAUDE.md delete mode 100644 kernel-comp.md diff --git a/CLAUDE.md b/CLAUDE.md deleted file mode 100644 index e7d830d..0000000 --- a/CLAUDE.md +++ /dev/null @@ -1,41 +0,0 @@ -# Lumen 프로젝트 목표 - -제로 트러스트(Zero-Trust) 및 폐쇄(Air-Gapped) 환경을 위한 고보안, 검증 가능한 Rust 기반 AI 에이전트 프레임워크. 권한 통제(WASM 샌드박스)와 결과 검증(zkML)을 결합하여, 국가기관 수준의 엄격한 보안 규격을 충족하는 안전한 자율형 AI 구동을 목표. - -**AI 및 보안 오픈소스 생태계 기여를 위한 프로젝트.** - -구현 필요 기능 다음과 같음: - -1. 하이브리드 zkML 파이프라인 - - 선택적 ZK 증명: 연산 비용이 높은 LLM 전체 텍스트 생성 대신, 에이전트의 '도구 선택(Tool-use routing)' 및 '출력 필터링/정책 준수' 로직에만 ezkl 또는 ZKTorch를 적용하여 ZK Proof 생성. - - 자동화 및 검증: CI/CD 파이프라인에서 Proof를 자동 생성하고, 온체인(Mina/EVM) 또는 오프체인 검증기(Verifier)에 배포 및 확인하는 모듈. -2. 권한 분리형 Host-WASM 샌드박스 - - WASM 격리 (Agent Logic): wasmtime과 Rust의 소유권 모델을 활용해 에이전트의 도구 실행 및 통신 로직을 완벽히 격리. 파일, 네트워크, 시스템 환경 접근은 명시적인 Capability 기반으로만 최소한으로 허용. - - Host TEE 실행 (LLM Inference): 하드웨어 가속(GPU)을 온전히 활용하기 위해 무거운 모델 추론은 호스트의 신뢰 실행 환경(TEE) 내부에서 실행하고, WASM 샌드박스와는 격리된 보안 채널(Secure Channel)로만 통신. -3. 결정론적(Deterministic) 제어 모듈 - - 상태 격리: 멀티 에이전트 오케스트레이션 시 메모리 공유 없이 tokio 기반 비동기 처리로 상태 전이의 안정성 확보. - - 연산 통제: ZK 증명의 신뢰성을 보장하기 위해 부동소수점 연산의 하드웨어 의존성을 배제하는 모델 양자화(Quantization) 및 고정소수점(Fixed-point) 연산 파이프라인 구축. -4. 고속 보안 방어 및 출처 검증 엔진 - - 실시간 위협 탐지: Rust의 성능을 살려 지연 시간(Latency)을 최소화한 프롬프트 인젝션 및 제일브레이크 방어/필터링 모듈 탑재. - - 모델 Provenance (공급망 보안): ONNX, Safetensors 모델 로드 시 파일 해시 및 서명을 즉각 검증하고, SBOM을 강제 생성하여 승인되지 않은 모델 가중치 변조를 원천 차단. - -# 구현에 앞서 - -모든 설계는 보안성 우선. 단, 연산 비용 (작업 속도) 극강 최적화 필요. - -Docstring 한국어로 작성. - -마일스톤 `v1.0`(정부 또는 규제 환경에서 production 배포, [FIPS 140-3 compliance audit](https://csrc.nist.gov/pubs/fips/140-3/final), [Kani](https://www.in-com.com/ko/blog/the-rust-developers-toolbox-best-static-code-analysis-tools/#Kani) 또는 [Prusti](https://github.com/viperproject/prusti-dev) 등을 활용한 일부 모듈의 형식 검증, 외부 보안 audit 1회 통과)은 당분간 진행 X. - -# 기능 수정 또는 추가 시 - -`Cargo.toml`이 변경된 경우 `.lock` 파일 갱신하기. - -프로젝트는 항상 다음 네 개의 명령어를 모두 통과해야 함. - -```bash -$ cargo build --workspace --all-targets -$ cargo test --workspace -$ cargo clippy --workspace --all-targets -- -D warnings -$ cargo fmt --all -- --check -``` \ No newline at end of file diff --git a/kernel-comp.md b/kernel-comp.md deleted file mode 100644 index 64c0fb3..0000000 --- a/kernel-comp.md +++ /dev/null @@ -1,377 +0,0 @@ -# 폐쇄형(Air-Gapped) 환경 의존성 점검 보고서 - -> **목적**: Lumen을 iso-light-k0 마이크로커널 환경에서 동작하도록 개조하기 위해, -> 현재 사용 중인 외부 의존성을 전수 점검하고 교체/제거/유지 방침을 정리. - ---- - -## 요약 - -| 분류 | 의존성 | 조치 | -|------|--------|------| -| **암호학 (교체 대상)** | `blake3` | elib-k0-nt/blake 로 교체 | -| | `ed25519-dalek` | elib-k0-nt/ed25519 로 교체 | -| | `subtle` | elib-k0-nt/constant-time 로 교체 | -| | `rand` + `rand_core` | elib-k0-nt/rng 로 교체 + 어댑터 작성 | -| | `aes-gcm` (crypto-channel) | elib-k0-nt/aes 로 교체 | -| | `x25519-dalek` (crypto-channel) | elib-k0-nt/x25519 로 교체 | -| **대형 외부 (평가 필요)** | `wasmtime` | 벤더링 유지 (대체재 없음) | -| | `halo2_proofs` + `ff` + `pasta_curves` | 현재 mock-only → 별도 결정 필요 | -| | `candle-*` | 벤더링 또는 llama.cpp 백엔드 전환 | -| | `tokenizers` | GGUF 내장 토크나이저로 제거 가능 | -| **유지** | 나머지 (serde, tokio 등) | 순수 Rust, 네트워크 무관 → 벤더링으로 유지 | - ---- - -## 1. 교체 대상: 암호학 의존성 - -### 1-1. `blake3` - -**현재 사용처** - -| 위치 | 사용 내용 | -|------|-----------| -| `lumen-core/src/hash.rs` | `Blake3Hash::of()`, `Blake3Hash::of_file()` — 모델 파일 및 데이터 해시 | -| `lumen-channel/src/encrypted.rs:290` | `blake3::Hasher::new_keyed(shared)` — x25519 공유 비밀에서 방향별 AES 키 도출 (KDF) | -| `lumen-zkml` | 증명 witness commitment 해시 | -| `lumen-inference` | 프롬프트/모델 디제스트 tracing용 해시 | - -**elib-k0-nt 대체** - -`elib-k0-nt/blake` 에 `Blake3` 구현 존재. API 매핑: - -```rust -// 기존: blake3::hash(data) -// 신규: Blake3::new().update(data).finalize() - -// 기존: blake3::Hasher::new_keyed(&key).update(data).finalize() -// → elib-k0-nt/blake 에 keyed 모드 없음 → 추가 구현 필요 (아래 참고) -``` - -**추가 구현 필요 사항** - -`elib-k0-nt/blake` 에 `Blake3::new_keyed(key: &[u8; 32])` 지원 추가 필요. -BLAKE3 스펙의 keyed hash 모드(domain separation context `"hash")는 입력 첫 블록에 키를 혼합하는 방식으로 구현되어 있음. 현재 `lumen-channel` 의 KDF 사용처 1곳이 이에 해당. - ---- - -### 1-2. `ed25519-dalek` - -**현재 사용처** - -| 위치 | 사용 내용 | -|------|-----------| -| `lumen-core/src/crypto.rs` | `SigningKey`, `VerifyingKey` 래퍼 — 에이전트 ID 서명 키쌍 | -| `lumen-channel/src/encrypted.rs` | 핸드셰이크 서명/검증 | -| `lumen-capability` | Capability 토큰 서명/검증 | -| `lumen-provenance` | 모델 매니페스트 Ed25519 서명 검증 | - -**elib-k0-nt 대체** - -`elib-k0-nt/ed25519` 로 직접 교체. API 차이: - -```rust -// 기존 키 생성: SigningKey::generate(&mut OsRng) -// 신규: -let mut seed = [0u8; 32]; -rng.fill_bytes(&mut seed); // elib-k0-nt/rng 사용 -let sk = SecretKey::from_bytes(&seed)?; -let pk = PublicKey::from(&sk); - -// 기존 서명: sk.sign(msg) -// 신규: sign(msg, &sk) → Signature - -// 기존 검증: pk.verify(msg, &sig) -// 신규: verify(msg, &sig, &pk) → Result -``` - -`lumen-core` 의 `SigningKey`/`VerifyingKey` 공개 타입 래퍼 유지 가능 (내부 구현만 교체). - ---- - -### 1-3. `subtle` - -**현재 사용처** - -`lumen-core/src/hash.rs:56–58` 한 곳: `Blake3Hash` 의 타이밍 공격 방어용 상수시간 동등 비교. - -```rust -// 기존: subtle::ConstantTimeEq::ct_eq(&self.0, &other.0).into() -// 신규: CtEqOps::eq(&a, &b).unwrap_u8() == 1 (elib-k0-nt/constant-time) -``` - -단일 사용처이므로 교체 난이도 낮음. - ---- - -### 1-4. `rand` + `rand_core` - -**현재 사용처** - -| 위치 | 사용 내용 | -|------|-----------| -| `lumen-core/src/ids.rs` | `AgentId::random(&mut rng)`, `CapabilityId::random(&mut rng)` — `rand_core::RngCore` 트레이트 수용 | -| `lumen-core/src/crypto.rs` | `SigningKey::generate(&mut OsRng)` | -| `lumen-channel/src/encrypted.rs` | `OsRng` 기반 x25519 임시 키 생성, 논스 생성 | -| 다수 테스트/예제 | `OsRng` | - -**elib-k0-nt 대체** - -`elib-k0-nt/rng` 제공 API: `HashDRBGSHA256::new(entropy, nonce, personalization)` + `generate_fixed::()`. - -```rust -// OS 엔트로피 수집 (elib-k0-nt/rng) -let entropy = rng::os_entropy::get_entropy(64)?; -let mut drbg = HashDRBGSHA256::new(&entropy, &nonce, &personalization)?; -let key_bytes: [u8; 32] = drbg.generate_fixed()?; -``` - -**마이그레이션 시 주의 사항** - -- `rand_core::RngCore` 트레이트를 수용하는 제네릭 함수들(`AgentId::random`)이 있어 트레이트 바운드를 변경하거나, 얇은 `RngCore` 어댑터를 구현해야 함. -- `rand` 크레이트 자체는 dev-only (`[dev-dependencies]`)로 쓰이는 곳이 많으므로, 프로덕션 코드에서는 `rand_core` 만 정리하면 됨. -- `rand_core::OsRng` 는 `elib-k0-nt/rng::os_entropy` 로 대체. - ---- - -### 1-5. `aes-gcm` (feature: `crypto-channel`) - -**현재 사용처** - -`lumen-channel/src/encrypted.rs` 전용: -- `Aes256Gcm::new(key)` — tx/rx 방향별 사이퍼 초기화 -- `cipher.encrypt(nonce, payload)` / `cipher.decrypt(nonce, payload)` — 프레임 암복호화 -- `aes-gcm` 은 태그를 암호문 뒤에 붙여 반환 - -**elib-k0-nt 대체** - -`elib-k0-nt/aes` 의 `AES256GCM` 사용. API 차이 (태그 분리): - -```rust -// 기존: let ciphertext_with_tag = cipher.encrypt(nonce, Payload { msg, aad })?; -// 신규: -let mut ciphertext = vec![0u8; plaintext.len()]; -let mut tag = [0u8; 16]; -AES256GCM::new(key).encrypt(nonce, aad, plaintext, &mut ciphertext, &mut tag)?; -// 프레임 직렬화 시 ciphertext || tag 로 직접 이어붙이면 동일 포맷 유지 가능 -``` - ---- - -### 1-6. `x25519-dalek` (feature: `crypto-channel`) - -**현재 사용처** - -`lumen-channel/src/encrypted.rs:137`: -```rust -let my_eph = EphemeralSecret::random_from_rng(OsRng); -let my_pub = X25519Public::from(&my_eph); -let shared = my_eph.diffie_hellman(&their_pub); -``` - -**elib-k0-nt 대체** - -`elib-k0-nt/x25519` 직접 교체: - -```rust -// 임시 키 생성: rng로 32바이트 생성 후 SecretKey 래핑 -let eph_bytes: [u8; 32] = drbg.generate_fixed()?; -let my_eph = x25519::SecretKey::from_bytes(eph_bytes); -let my_pub = my_eph.public_key(); -let shared: SharedSecret = my_eph.diffie_hellman(&their_pub); -// shared.expose() 로 [u8;32] 접근 가능 -``` - -`EphemeralSecret` 타입 소멸 후 키 파기는 elib-k0-nt `SharedSecret` 의 자동 zeroize로 동일하게 보장됨. - ---- - -## 2. 평가 대상: 대형 외부 의존성 - -### 2-1. `wasmtime` - -**현재 사용처** - -`lumen-sandbox` 전용. 에이전트 코드를 WASM으로 격리 실행하는 핵심 보안 경계. - -- `Engine::new()` — 결정론적 설정 (fuel, epoch, Cranelift JIT) -- `Module::new()` — WASM 바이트코드 컴파일 -- `Store::new()` + `set_fuel()` / `set_epoch_deadline()` — 실행 한계 강제 -- `Linker::instantiate_async()` — 격리 인스턴스 생성 -- `instance.get_func().call_async()` — 진입점 호출 - -**폐쇄형 환경 문제점** - -- 네트워크 비의존적(런타임 무관), 하지만 Cranelift JIT 컴파일러 포함으로 소스 트리가 방대함 (~100개 이상 크레이트). -- 커널 Ring 0/1에서는 JIT 실행 불가 — Ring 3 또는 별도 프로세스에서만 사용 가능. - -**대안 검토** - -| 대안 | 장점 | 단점 | -|------|------|------| -| `wasmi` v0.31+ | 순수 Rust 인터프리터, 소스 트리 소형 | 성능 10–50배 저하, fuel API 상이 | -| `wasm3-sys` | 경량 C 인터프리터 | C 바인딩 → 커널 no_std 불가 | -| wasmtime 벤더링 | 현재 보안 속성 그대로 유지 | 벤더 소스 관리 부담 (~15 MB) | - -**권고**: WASM 샌드박스는 보안의 핵심이므로 wasmtime을 벤더링하여 유지. `wasmi` 로의 전환은 성능 허용 시 별도 검토. 커널 통합 시 Ring 3 사용자공간 프로세스에서 실행하는 구조 필요. - ---- - -### 2-2. `halo2_proofs` + `ff` + `pasta_curves` - -**현재 사용처** - -`lumen-zkml` 의 `halo2` feature 뒤에서만 활성화. - -- `MockProver::verify()` — ZK 회로 제약 충족 여부 검증 (증명 비공개 X, witness 노출) -- `RoutingProofCircuit` — 에이전트 툴 라우팅 결정의 PLONKish 회로 정의 -- 현재 v0.3 기준으로 간결한 ZK(succinct proof)는 구현되지 않음 - -**폐쇄형 환경 문제점** - -- `pasta_curves` 등 타원곡선 연산 의존성이 크고 빌드 시간이 매우 긺. -- MockProver는 실제 ZK가 아니어서 witness가 노출됨 → 보안 기여 미미. -- 네트워크 비의존적이지만 벤더링 크기 상당. - -**직접 구현 방향 (mock 대체)** - -현재 MockProver 사용처는 "회로 제약 만족 여부 검증"에 불과. halo2 없이 대체 가능: - -```rust -// RoutingProofCircuit의 제약 조건들을 순수 단언(assertion) 기반으로 직접 검증 -// → lumen-zkml의 mock 프루버를 halo2 불필요 버전으로 재작성 -// BLAKE3 기반 commitment만 유지 (elib-k0-nt/blake) -``` - -실제 succinct ZK가 필요한 v0.4 시점에는 별도 프레임워크(SP1, RISC Zero 등) 선택 필요. - -**권고**: `halo2` feature를 기본에서 제거하고, mock prover를 halo2 불필요 버전으로 재구현. 실제 ZK는 마일스톤 재검토 시 결정. - ---- - -### 2-3. `candle-core` + `candle-onnx` + `candle-transformers` - -**현재 사용처** - -`lumen-inference` 의 `candle` / `candle-llm` feature 뒤에서만 활성화. - -- `candle-core`: `Device::Cpu`, `Tensor` 연산 (CPU 전용) -- `candle-transformers`: `ModelWeights` (GGUF 양자화 LLaMA), `LogitsProcessor` 샘플링 -- `candle-onnx`: ONNX 모델 라우팅 엔진 - -**폐쇄형 환경 문제점** - -- 런타임 네트워크 비의존적이나, candle은 HuggingFace Hub 다운로드 예제 코드 포함 → **소스 벤더링 시 해당 부분 제거 필요**. -- `rayon` (병렬 연산), `blas`/`metal` 선택적 의존 → 커널 환경에서는 단일 스레드 강제 필요. -- 빌드 의존 크레이트 수 매우 많음. - -**대안** - -| 대안 | 비고 | -|------|------| -| `llama-cpp-2` (C 바인딩) | 이미 `lumen-inference/src/llama_cpp.rs` 스텁 존재. GGUF 내장 토크나이저 지원. | -| candle 소스 벤더링 | CPU-only feature 강제, HF Hub 코드 제거 필요 | -| 자체 GGUF 파서 + 추론 | 구현 비용 매우 높음 | - -**권고**: llama.cpp 백엔드(`llama-cpp-2`)를 우선 완성. air-gapped에서는 C 코드가 허용된다면 llama.cpp가 더 성숙하고 가벼움. candle은 소스 벤더링 후 CPU-only로 유지하는 것도 가능. - ---- - -### 2-4. `tokenizers` (HuggingFace) - -**현재 사용처** - -`lumen-inference/src/candle_llm.rs:86`: -```rust -let tokenizer = Tokenizer::from_file(tokenizer_path) // HF tokenizer.json 로컬 파일 -``` - -- BPE/WordPiece 토크나이저를 `tokenizer.json` 형식으로 로드 -- `encode()` / `decode()` — 텍스트 ↔ 토큰 ID 변환 -- EOS 토큰 감지 (``, `<|endoftext|>`) - -**폐쇄형 환경 문제점** - -- `onig` feature: C 소스(Oniguruma 정규식)를 소스에서 빌드 → 커널 no_std 환경 불가. -- 대형 dep tree (rayon, serde_json, unicode 등). -- **GGUF 모델 파일에는 토크나이저 어휘/머지 규칙이 내장되어 있음** — `tokenizer.json` 불필요. - -**직접 구현 방향** - -GGUF 형식(`gguf-rs` 또는 직접 파서)에서 어휘를 추출 후 최소 BPE 토크나이저 구현: - -``` -GGUF 헤더 → tokenizer.ggml.* 메타데이터 추출 - → vocab (id → str), merges (str pair → id) 로딩 - → encode(): pre-tokenize → BPE 머지 반복 - → decode(): id → str 매핑 -``` - -LLaMA 3 / Mistral 계열은 SentencePiece BPE, GPT-2 계열은 Byte-BPE. -약 300–500 LoC 순수 Rust 구현 가능 (no_std 호환). - -**권고**: `tokenizers` 제거하고 GGUF 내장 어휘 기반 최소 BPE 토크나이저를 `lumen-inference` 에 직접 구현. llama.cpp 백엔드 사용 시 해당 백엔드가 토크나이저를 내장 처리하므로 불필요. - ---- - -## 3. 유지 대상 (문제없는 의존성) - -아래 의존성들은 순수 Rust, 네트워크 무관하며 직접 구현 비용이 유지 비용을 초과. **소스 벤더링**으로 유지. - -| 의존성 | 이유 | -|--------|------| -| `tokio` | 비동기 런타임. OS API만 사용. 커널 Ring 3 프로세스에서 동작 가능. | -| `async-trait`, `futures` | 순수 Rust 비동기 추상화. | -| `serde`, `serde_json`, `toml`, `postcard` | 직렬화. 네트워크 무관. | -| `hex` | 16진수 인코딩. 60 LoC 대체 가능하나 유지가 합리적. | -| `thiserror`, `anyhow` | 에러 추상화. 순수 Rust. | -| `aho-corasick`, `regex` | 프롬프트 인젝션 방어 패턴 매칭. 순수 Rust, 네트워크 무관. | -| `globset` | 파일 경로 Capability 매칭. 순수 Rust. | -| `once_cell` | 정적 초기화. 순수 Rust. | -| `parking_lot` | 동시성 기본기. 순수 Rust. | -| `safetensors` | 모델 헤더 읽기 전용. 네트워크 무관. 순수 Rust. | -| `clap` | CLI 전용. 커널 내부 로직 불관여. | -| `tracing`, `tracing-subscriber` | 감사 로그. 순수 Rust. | -| `criterion` | dev-only 벤치마크. | -| `wat` | dev-only WASM 텍스트 변환. | -| `safetensors` | 테스트 픽스처 생성 전용 (프로덕션 불사용). | - ---- - -## 4. 마이그레이션 우선순위 - -### Phase 1 — 암호학 교체 (즉시 착수) - -교체 자체가 API 레벨 수정에 그침. elib-k0-nt 모듈로 1:1 대체. - -1. `subtle` → `elib-k0-nt/constant-time` (`lumen-core/src/hash.rs` 1곳) -2. `blake3` → `elib-k0-nt/blake` (keyed 모드 추가 필요) -3. `ed25519-dalek` → `elib-k0-nt/ed25519` -4. `rand` + `rand_core` → `elib-k0-nt/rng` + `RngCore` 어댑터 작성 -5. `aes-gcm` → `elib-k0-nt/aes` (crypto-channel feature) -6. `x25519-dalek` → `elib-k0-nt/x25519` (crypto-channel feature) - -### Phase 2 — 추론 백엔드 정비 - -1. `tokenizers` 제거 → GGUF 내장 BPE 토크나이저 직접 구현 또는 llama.cpp 백엔드 전환 -2. candle 의존성을 llama.cpp 백엔드로 대체 (또는 소스 벤더링 후 CPU-only 강제) - -### Phase 3 — ZK 정리 및 WASM 벤더링 - -1. `halo2` feature 기본 비활성화 + mock prover 독립 재구현 (halo2_proofs 제거) -2. `wasmtime` 전체 소스 벤더링 + HF Hub 참조 제거 - -### Phase 4 — 나머지 의존성 벤더링 - -나머지 "유지 대상" 의존성들을 오프라인 소스 벤더링(`cargo vendor`)으로 전환. `iso-light-k0` 빌드 시스템에 통합. - ---- - -## 5. elib-k0-nt 미지원 기능 (신규 구현 필요) - -| 필요 기능 | 현재 대응 | 구현 방향 | -|-----------|-----------|-----------| -| **BLAKE3 keyed 해시** | `blake3::Hasher::new_keyed()` | elib-k0-nt/blake에 `Blake3::new_keyed(key: &[u8;32])` 추가 | -| **RngCore 어댑터** | `rand_core::RngCore` 트레이트 | `elib-k0-nt/rng::HashDRBG`를 `RngCore` 구현체로 감싸는 어댑터 (Lumen 내부 구현) | -| **GGUF 토크나이저** | `tokenizers` crate | `lumen-inference` 에 최소 BPE 구현 (~400 LoC, no_std 가능) | -| **Halo2-free mock prover** | `halo2_proofs::MockProver` | 제약 조건 직접 평가 로직으로 대체 (BLAKE3 commitment 유지) | From fe34154cf35e1989999bfb8c738fc26611fbb3e6 Mon Sep 17 00:00:00 2001 From: "Q. T. Felix" <53819958+Quant-TheodoreFelix@users.noreply.github.com> Date: Fri, 8 May 2026 00:52:20 +0900 Subject: [PATCH 10/19] fix CI/CD (added action) --- .github/actions/checkout-deps/action.yml | 48 ++++++++++++++++++++++++ .github/workflows/ci.yml | 7 ++++ 2 files changed, 55 insertions(+) create mode 100644 .github/actions/checkout-deps/action.yml diff --git a/.github/actions/checkout-deps/action.yml b/.github/actions/checkout-deps/action.yml new file mode 100644 index 0000000..a4bc950 --- /dev/null +++ b/.github/actions/checkout-deps/action.yml @@ -0,0 +1,48 @@ +# 워크스페이스 `Cargo.toml`의 path dependency (`../elib-k0-nt/*`)가 가리키는 +# 시블링 디렉토리를 CI 환경에 재현합니다. `actions/checkout`는 `path` 입력에 +# 워크스페이스 외부(`..`)를 허용하지 않으므로 `git clone`으로 직접 시블링 +# 위치에 배치합니다. +# +# 핀: lumen의 `workspace.dependencies`가 `version = "1.0.0"` 을 요구하므로 +# elib-k0-nt 의 동명 태그(`1.0.0`)에 고정해 재현 가능한 빌드를 보장합니다. + +name: checkout-deps +description: Lumen 워크스페이스의 시블링 path dependency(elib-k0-nt) 체크아웃 + +inputs: + ref: + description: elib-k0-nt에서 체크아웃할 git ref(태그/브랜치/커밋 SHA) + required: false + default: "1.0.0" + token: + description: 비공개 elib-k0-nt 접근용 토큰; 비워두면 익명 HTTPS clone 시도 + required: false + default: "" + +runs: + using: composite + steps: + - name: clone elib-k0-nt as sibling + shell: bash + run: | + set -euo pipefail + TARGET="$(dirname "$GITHUB_WORKSPACE")/elib-k0-nt" + REF="${{ inputs.ref }}" + TOKEN="${{ inputs.token }}" + + if [ -n "$TOKEN" ]; then + URL="https://x-access-token:${TOKEN}@github.com/Quant-Off/elib-k0-nt.git" + else + URL="https://github.com/Quant-Off/elib-k0-nt.git" + fi + + if [ -d "$TARGET/.git" ]; then + echo "elib-k0-nt 이미 존재: '$REF'로 갱신합니다." + git -C "$TARGET" fetch --depth=1 origin "$REF" + git -C "$TARGET" checkout --detach FETCH_HEAD + else + echo "elib-k0-nt를 '$REF'로 $TARGET에 클론합니다." + git clone --depth=1 --branch "$REF" "$URL" "$TARGET" + fi + + echo "elib-k0-nt HEAD: $(git -C "$TARGET" rev-parse HEAD)" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9de1ce9..3d22a65 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -77,6 +77,7 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v4 + - uses: ./.github/actions/checkout-deps - uses: Swatinem/rust-cache@v2 - name: cargo build run: cargo build --workspace --all-targets --locked @@ -98,6 +99,7 @@ jobs: runs-on: macos-latest steps: - uses: actions/checkout@v4 + - uses: ./.github/actions/checkout-deps - name: install protoc run: brew install protobuf - uses: Swatinem/rust-cache@v2 @@ -125,6 +127,7 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v4 + - uses: ./.github/actions/checkout-deps - uses: Swatinem/rust-cache@v2 - name: cargo build --features halo2 run: cargo build -p lumen-zkml --features halo2 --locked @@ -147,6 +150,7 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v4 + - uses: ./.github/actions/checkout-deps - uses: Swatinem/rust-cache@v2 - run: cargo fmt --all -- --check - run: cargo clippy --workspace --all-targets -- -D warnings @@ -167,6 +171,7 @@ jobs: RUSTDOCFLAGS: -D warnings steps: - uses: actions/checkout@v4 + - uses: ./.github/actions/checkout-deps - uses: Swatinem/rust-cache@v2 - run: cargo doc --workspace --no-deps --document-private-items @@ -184,6 +189,7 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v4 + - uses: ./.github/actions/checkout-deps - run: cargo deny check # --------------------------------------------------------------------------- @@ -200,4 +206,5 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v4 + - uses: ./.github/actions/checkout-deps - run: cargo audit From 18cafa6d4d2fdd7a5f40ab7d64b25de79e42b78f Mon Sep 17 00:00:00 2001 From: "Q. T. Felix" <53819958+Quant-TheodoreFelix@users.noreply.github.com> Date: Fri, 8 May 2026 00:54:46 +0900 Subject: [PATCH 11/19] fix action --- .github/actions/checkout-deps/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/checkout-deps/action.yml b/.github/actions/checkout-deps/action.yml index a4bc950..083426b 100644 --- a/.github/actions/checkout-deps/action.yml +++ b/.github/actions/checkout-deps/action.yml @@ -41,7 +41,7 @@ runs: git -C "$TARGET" fetch --depth=1 origin "$REF" git -C "$TARGET" checkout --detach FETCH_HEAD else - echo "elib-k0-nt를 '$REF'로 $TARGET에 클론합니다." + echo "elib-k0-nt를 '$REF'로 '$TARGET'에 클론합니다." git clone --depth=1 --branch "$REF" "$URL" "$TARGET" fi From 99d91bfdbe196f4534afe7857da187b8f460dca3 Mon Sep 17 00:00:00 2001 From: "Q. T. Felix" <53819958+Quant-TheodoreFelix@users.noreply.github.com> Date: Fri, 8 May 2026 01:03:19 +0900 Subject: [PATCH 12/19] fix action --- .github/actions/checkout-deps/action.yml | 29 ++++++++++++++++-------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/.github/actions/checkout-deps/action.yml b/.github/actions/checkout-deps/action.yml index 083426b..d6be5fc 100644 --- a/.github/actions/checkout-deps/action.yml +++ b/.github/actions/checkout-deps/action.yml @@ -3,8 +3,11 @@ # 워크스페이스 외부(`..`)를 허용하지 않으므로 `git clone`으로 직접 시블링 # 위치에 배치합니다. # -# 핀: lumen의 `workspace.dependencies`가 `version = "1.0.0"` 을 요구하므로 -# elib-k0-nt 의 동명 태그(`1.0.0`)에 고정해 재현 가능한 빌드를 보장합니다. +# 핀: 의존성 그래프(특히 zeroize 엣지)가 `Cargo.lock`과 일치해야 `--locked` +# 빌드가 통과합니다. elib-k0-nt 태그 `1.0.0`은 zeroize 엣지가 없는 옛 +# 스냅샷이므로 사용 불가. 현재 lock은 master HEAD에서 생성되었기에 +# 동일 커밋 SHA에 고정합니다. lock을 갱신할 때 본 SHA도 함께 +# 갱신해야 CI가 재현 가능 상태로 유지됩니다. name: checkout-deps description: Lumen 워크스페이스의 시블링 path dependency(elib-k0-nt) 체크아웃 @@ -13,7 +16,8 @@ inputs: ref: description: elib-k0-nt에서 체크아웃할 git ref(태그/브랜치/커밋 SHA) required: false - default: "1.0.0" + # `Cargo.lock` 과 정합하는 master HEAD; 변경 시 lock 도 함께 재생성 + default: "55a96b33c2e9cd050683634badf3c96e92d15c87" token: description: 비공개 elib-k0-nt 접근용 토큰; 비워두면 익명 HTTPS clone 시도 required: false @@ -36,13 +40,20 @@ runs: URL="https://github.com/Quant-Off/elib-k0-nt.git" fi - if [ -d "$TARGET/.git" ]; then - echo "elib-k0-nt 이미 존재: '$REF'로 갱신합니다." - git -C "$TARGET" fetch --depth=1 origin "$REF" - git -C "$TARGET" checkout --detach FETCH_HEAD + # init + fetch 패턴: `git clone --branch`는 SHA를 받지 못하므로 + # 임의 ref(태그/브랜치/커밋)를 모두 처리하기 위해 빈 저장소에서 + # 시작해 단일 ref를 얕게(depth=1) 가져옵니다. + if [ ! -d "$TARGET/.git" ]; then + echo "elib-k0-nt 를 '$TARGET' 에 초기화합니다." + mkdir -p "$TARGET" + git -C "$TARGET" init -q + git -C "$TARGET" remote add origin "$URL" else - echo "elib-k0-nt를 '$REF'로 '$TARGET'에 클론합니다." - git clone --depth=1 --branch "$REF" "$URL" "$TARGET" + echo "elib-k0-nt 이미 존재: origin URL 갱신 후 재페치합니다." + git -C "$TARGET" remote set-url origin "$URL" fi + git -C "$TARGET" fetch --depth=1 origin "$REF" + git -C "$TARGET" checkout --detach FETCH_HEAD + echo "elib-k0-nt HEAD: $(git -C "$TARGET" rev-parse HEAD)" From 72bd4627edbfdf39d53c161079944b3a36915923 Mon Sep 17 00:00:00 2001 From: "Q. T. Felix" <53819958+Quant-TheodoreFelix@users.noreply.github.com> Date: Fri, 8 May 2026 10:29:10 +0900 Subject: [PATCH 13/19] fix CI/CD (bump deny) --- .github/workflows/ci.yml | 20 +++++++++++++------- Cargo.toml | 9 +++++++++ crates/lumen-sandbox/Cargo.toml | 1 + crates/lumen-sdk-macros/Cargo.toml | 1 + crates/lumen-sdk/Cargo.toml | 1 + 5 files changed, 25 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3d22a65..5fde869 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,15 @@ permissions: env: CARGO_TERM_COLOR: always - RUSTFLAGS: -D warnings + # Q. T. Felix NOTE: 과거에는 `RUSTFLAGS: -D warnings` 를 워크플로우 전역으로 + # 걸었으나, 이 환경변수는 워크스페이스 외부 path dep + # (`../elib-k0-nt/*`) 컴파일에도 그대로 적용되어 외부 + # 레포의 사소한 dead_code 경고가 lumen CI 를 깨뜨리는 + # 문제가 있었습니다. 동등한 게이트는 이제 워크스페이스 + # `[workspace.lints.rust]` 의 `warnings = "deny"` 로 + # lumen 멤버에만 한정해 적용됩니다. clippy 게이트는 + # 여전히 `cargo clippy ... -- -D warnings` 로 수행하며, + # 이 인자는 primary package (lumen 멤버) 에만 적용됩니다. jobs: # --------------------------------------------------------------------------- @@ -114,10 +122,12 @@ jobs: run: cargo build --release --target wasm32-unknown-unknown --locked # --------------------------------------------------------------------------- - # 무거운 optional features (halo2, candle). + # 무거운 optional features (candle). + # 참고: `lumen-zkml` 의 `halo2` feature 는 v0.4 (커밋 ac93393) 에서 폐쇄망 + # 호환성을 위해 제거되었습니다 (`AIR-GAPPED.md` §1 참조). # --------------------------------------------------------------------------- features: - name: optional features (halo2, candle) + name: optional features (candle) needs: image runs-on: ubuntu-latest container: @@ -129,10 +139,6 @@ jobs: - uses: actions/checkout@v4 - uses: ./.github/actions/checkout-deps - uses: Swatinem/rust-cache@v2 - - name: cargo build --features halo2 - run: cargo build -p lumen-zkml --features halo2 --locked - - name: cargo test --features halo2 - run: cargo test -p lumen-zkml --features halo2 --locked - name: cargo build --features candle run: cargo build -p lumen-inference --features candle --locked diff --git a/Cargo.toml b/Cargo.toml index ce039f8..2d770ed 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -106,6 +106,15 @@ candle-onnx = { version = "0.10", default-features = false } # ChannelEngine forward 경로를 사용. [workspace.lints.rust] +# Q. T. Felix NOTE: 모든 경고를 deny 로 격상해 lumen 멤버 크레이트의 게이트로 +# 사용합니다. 과거에는 CI의 `RUSTFLAGS=-D warnings`로 같은 +# 효과를 냈으나, 그 방식은 워크스페이스 외부 path dep +# (`elib-k0-nt/*`) 까지 격상시켜 외부 변경에 lumen CI가 +# 끌려갔습니다. lints 테이블은 `[lints] workspace = true` +# 를 선언한 멤버에만 적용되므로 외부 path dep에 영향을 +# 주지 않습니다. priority -2로 가장 먼저 emit시켜 이후 +# 특정 lint(warn 레벨)가 자유롭게 덮어쓸 수 있도록 합니다. +warnings = { level = "deny", priority = -2 } unsafe_code = "deny" missing_docs = "warn" unreachable_pub = "warn" diff --git a/crates/lumen-sandbox/Cargo.toml b/crates/lumen-sandbox/Cargo.toml index 7c25da4..1b04d18 100644 --- a/crates/lumen-sandbox/Cargo.toml +++ b/crates/lumen-sandbox/Cargo.toml @@ -13,6 +13,7 @@ categories.workspace = true # wasmtime FFI requires `unsafe`. Override the workspace deny rule locally and # enforce documented `// SAFETY:` blocks via clippy. [lints.rust] +warnings = { level = "deny", priority = -2 } unsafe_code = "allow" missing_docs = "warn" unreachable_pub = "warn" diff --git a/crates/lumen-sdk-macros/Cargo.toml b/crates/lumen-sdk-macros/Cargo.toml index 0d1014a..3cfbe8c 100644 --- a/crates/lumen-sdk-macros/Cargo.toml +++ b/crates/lumen-sdk-macros/Cargo.toml @@ -13,6 +13,7 @@ categories.workspace = true # proc-macro 크레이트는 호스트에서만 실행되며 자체적인 unsafe 사용은 없습니다. # (syn/quote 가 내부에서 unsafe 를 쓸 수 있으나 그 부분은 외부 검증.) [lints.rust] +warnings = { level = "deny", priority = -2 } unsafe_code = "deny" missing_docs = "warn" unreachable_pub = "warn" diff --git a/crates/lumen-sdk/Cargo.toml b/crates/lumen-sdk/Cargo.toml index 1c38452..f16e4cb 100644 --- a/crates/lumen-sdk/Cargo.toml +++ b/crates/lumen-sdk/Cargo.toml @@ -13,6 +13,7 @@ categories.workspace = true # `extern "C"` 호스트 임포트 선언과 메모리 포인터 변환에는 unsafe 가 불가피합니다. # 워크스페이스 lint 를 로컬에서 완화하고 모든 unsafe 블록에 SAFETY 주석을 강제합니다. [lints.rust] +warnings = { level = "deny", priority = -2 } unsafe_code = "allow" missing_docs = "warn" unreachable_pub = "warn" From 1383c5b8d642a59b842a41adee9670b3083ce2f4 Mon Sep 17 00:00:00 2001 From: "Q. T. Felix" <53819958+Quant-TheodoreFelix@users.noreply.github.com> Date: Fri, 8 May 2026 11:17:22 +0900 Subject: [PATCH 14/19] fix remove deny ID RUSTSEC-2025-0119 --- deny.toml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/deny.toml b/deny.toml index 337850f..578ca85 100644 --- a/deny.toml +++ b/deny.toml @@ -16,10 +16,6 @@ ignore = [ # feature 활성화 시에만)에서만 옵니다. Drop-in 대체(`pastey`)가 있지만 # 상위 크레이트들이 채택하기 전까지는 회피 불가. { id = "RUSTSEC-2024-0436", reason = "transitive via candle-core (feature-gated), no upstream alternative yet" }, - # `number_prefix` 는 unmaintained 이지만 알려진 보안 취약점이 없습니다. - # `tokenizers v0.19` → `indicatif` 를 통한 transitive 의존으로 직접 제거 - # 불가. 안전한 업그레이드 경로가 없으며 상위 크레이트가 채택 전까지 회피 불가. - { id = "RUSTSEC-2025-0119", reason = "transitive via tokenizers→indicatif, no safe upgrade available upstream" }, ] [licenses] From a0b1ef05756bafd7edfce6cac8e37de8453823ac Mon Sep 17 00:00:00 2001 From: "Q. T. Felix" <53819958+Quant-TheodoreFelix@users.noreply.github.com> Date: Fri, 8 May 2026 11:25:37 +0900 Subject: [PATCH 15/19] fix action.yml elib-k0nt SHA default --- .github/actions/checkout-deps/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/checkout-deps/action.yml b/.github/actions/checkout-deps/action.yml index d6be5fc..9cdcd4d 100644 --- a/.github/actions/checkout-deps/action.yml +++ b/.github/actions/checkout-deps/action.yml @@ -17,7 +17,7 @@ inputs: description: elib-k0-nt에서 체크아웃할 git ref(태그/브랜치/커밋 SHA) required: false # `Cargo.lock` 과 정합하는 master HEAD; 변경 시 lock 도 함께 재생성 - default: "55a96b33c2e9cd050683634badf3c96e92d15c87" + default: "618ac0dc8200ce740cbd698d0e93adb98ddc75e7" token: description: 비공개 elib-k0-nt 접근용 토큰; 비워두면 익명 HTTPS clone 시도 required: false From ee7e942d11fee96692e1da498b8275eda9d4ebc7 Mon Sep 17 00:00:00 2001 From: "Q. T. Felix" <53819958+Quant-TheodoreFelix@users.noreply.github.com> Date: Sun, 10 May 2026 11:43:30 +0900 Subject: [PATCH 16/19] add GGUF BPE Tokenizer --- Cargo.lock | 1027 +---------------------- Cargo.toml | 22 +- crates/lumen-inference/Cargo.toml | 8 +- crates/lumen-inference/src/backend.rs | 29 +- crates/lumen-inference/src/candle.rs | 165 ---- crates/lumen-inference/src/lib.rs | 20 +- crates/lumen-inference/src/tokenizer.rs | 321 +++++++ deny.toml | 9 +- 8 files changed, 363 insertions(+), 1238 deletions(-) delete mode 100644 crates/lumen-inference/src/candle.rs create mode 100644 crates/lumen-inference/src/tokenizer.rs diff --git a/Cargo.lock b/Cargo.lock index 6e01ca1..8b80a1e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,20 +19,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "ahash" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" -dependencies = [ - "cfg-if", - "getrandom 0.3.4", - "once_cell", - "serde", - "version_check", - "zerocopy", -] - [[package]] name = "aho-corasick" version = "1.1.4" @@ -121,18 +107,6 @@ dependencies = [ "syn", ] -[[package]] -name = "autocfg" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - [[package]] name = "bitflags" version = "2.11.1" @@ -175,99 +149,12 @@ dependencies = [ "allocator-api2", ] -[[package]] -name = "bytemuck" -version = "1.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" -dependencies = [ - "bytemuck_derive", -] - -[[package]] -name = "bytemuck_derive" -version = "1.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - [[package]] name = "bytes" version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" -[[package]] -name = "candle-core" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bd9895436c1ba5dc1037a19935d084b838db066ff4e15ef7dded020b7c12a4a" -dependencies = [ - "byteorder", - "float8", - "gemm", - "half", - "libm", - "memmap2", - "num-traits", - "num_cpus", - "rand", - "rand_distr", - "rayon", - "safetensors", - "thiserror 2.0.18", - "tokenizers", - "yoke", - "zip", -] - -[[package]] -name = "candle-nn" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9317a09d6530b758990ed7f625ac69ff43653bc9ee28b0464644ad1169ada87" -dependencies = [ - "candle-core", - "half", - "libc", - "num-traits", - "rayon", - "safetensors", - "serde", - "thiserror 2.0.18", -] - -[[package]] -name = "candle-onnx" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c26833f7747d202a47a1678c0fe11ab85c67b765a8aa99335672e4d81407a32" -dependencies = [ - "candle-core", - "candle-nn", - "prost", - "prost-build", -] - -[[package]] -name = "castaway" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a" -dependencies = [ - "rustversion", -] - [[package]] name = "cc" version = "1.2.61" @@ -330,7 +217,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" dependencies = [ - "thiserror 2.0.18", + "thiserror", ] [[package]] @@ -339,21 +226,6 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" -[[package]] -name = "compact_str" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb1325a1cece981e8a296ab8f0f9b63ae357bd0784a9faaf548cc7b480707a" -dependencies = [ - "castaway", - "cfg-if", - "itoa", - "rustversion", - "ryu", - "serde", - "static_assertions", -] - [[package]] name = "constant-time" version = "1.0.0" @@ -527,37 +399,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "crossbeam-deque" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - -[[package]] -name = "crunchy" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" - [[package]] name = "crypto-common" version = "0.1.7" @@ -568,81 +409,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "darling" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn", -] - -[[package]] -name = "darling_macro" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" -dependencies = [ - "darling_core", - "quote", - "syn", -] - -[[package]] -name = "dary_heap" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b1e3a325bc115f096c8b77bbf027a7c2592230e70be2d985be950d3d5e60ebe" -dependencies = [ - "serde", -] - -[[package]] -name = "derive_builder" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" -dependencies = [ - "derive_builder_macro", -] - -[[package]] -name = "derive_builder_core" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "derive_builder_macro" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" -dependencies = [ - "derive_builder_core", - "syn", -] - [[package]] name = "digest" version = "0.10.7" @@ -653,22 +419,6 @@ dependencies = [ "crypto-common", ] -[[package]] -name = "dyn-stack" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c4713e43e2886ba72b8271aa66c93d722116acf7a75555cce11dcde84388fe8" -dependencies = [ - "bytemuck", - "dyn-stack-macros", -] - -[[package]] -name = "dyn-stack-macros" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d926b4d407d372f141f93bb444696142c29d32962ccbd3531117cf3aa0bfa9" - [[package]] name = "ed25519" version = "1.0.0" @@ -695,18 +445,6 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" -[[package]] -name = "enum-as-inner" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "equivalent" version = "1.0.2" @@ -723,12 +461,6 @@ dependencies = [ "windows-sys", ] -[[package]] -name = "esaxx-rs" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d817e038c30374a4bcb22f94d0a8a0e216958d4c3dcde369b1439fec4bdda6e6" - [[package]] name = "fastrand" version = "2.4.1" @@ -741,24 +473,6 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" -[[package]] -name = "fixedbitset" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" - -[[package]] -name = "float8" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2d1f04709a8ac06e8e8042875a3c466cc4832d3c1a18dbcb9dba3c6e83046bc" -dependencies = [ - "half", - "num-traits", - "rand", - "rand_distr", -] - [[package]] name = "fnv" version = "1.0.7" @@ -865,125 +579,6 @@ dependencies = [ "slab", ] -[[package]] -name = "gemm" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa0673db364b12263d103b68337a68fbecc541d6f6b61ba72fe438654709eacb" -dependencies = [ - "dyn-stack", - "gemm-c32", - "gemm-c64", - "gemm-common", - "gemm-f16", - "gemm-f32", - "gemm-f64", - "num-complex", - "num-traits", - "paste", - "raw-cpuid", - "seq-macro", -] - -[[package]] -name = "gemm-c32" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "086936dbdcb99e37aad81d320f98f670e53c1e55a98bee70573e83f95beb128c" -dependencies = [ - "dyn-stack", - "gemm-common", - "num-complex", - "num-traits", - "paste", - "raw-cpuid", - "seq-macro", -] - -[[package]] -name = "gemm-c64" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20c8aeeeec425959bda4d9827664029ba1501a90a0d1e6228e48bef741db3a3f" -dependencies = [ - "dyn-stack", - "gemm-common", - "num-complex", - "num-traits", - "paste", - "raw-cpuid", - "seq-macro", -] - -[[package]] -name = "gemm-common" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88027625910cc9b1085aaaa1c4bc46bb3a36aad323452b33c25b5e4e7c8e2a3e" -dependencies = [ - "bytemuck", - "dyn-stack", - "half", - "libm", - "num-complex", - "num-traits", - "once_cell", - "paste", - "pulp", - "raw-cpuid", - "rayon", - "seq-macro", - "sysctl", -] - -[[package]] -name = "gemm-f16" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3df7a55202e6cd6739d82ae3399c8e0c7e1402859b30e4cb780e61525d9486e" -dependencies = [ - "dyn-stack", - "gemm-common", - "gemm-f32", - "half", - "num-complex", - "num-traits", - "paste", - "raw-cpuid", - "rayon", - "seq-macro", -] - -[[package]] -name = "gemm-f32" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e0b8c9da1fbec6e3e3ab2ce6bc259ef18eb5f6f0d3e4edf54b75f9fd41a81c" -dependencies = [ - "dyn-stack", - "gemm-common", - "num-complex", - "num-traits", - "paste", - "raw-cpuid", - "seq-macro", -] - -[[package]] -name = "gemm-f64" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "056131e8f2a521bfab322f804ccd652520c79700d81209e9d9275bbdecaadc6a" -dependencies = [ - "dyn-stack", - "gemm-common", - "num-complex", - "num-traits", - "paste", - "raw-cpuid", - "seq-macro", -] - [[package]] name = "generic-array" version = "0.14.7" @@ -994,18 +589,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "getrandom" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" -dependencies = [ - "cfg-if", - "libc", - "r-efi 5.3.0", - "wasip2", -] - [[package]] name = "getrandom" version = "0.4.2" @@ -1014,7 +597,7 @@ checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" dependencies = [ "cfg-if", "libc", - "r-efi 6.0.0", + "r-efi", "wasip2", "wasip3", ] @@ -1044,21 +627,6 @@ dependencies = [ "regex-syntax", ] -[[package]] -name = "half" -version = "2.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" -dependencies = [ - "bytemuck", - "cfg-if", - "crunchy", - "num-traits", - "rand", - "rand_distr", - "zerocopy", -] - [[package]] name = "hashbrown" version = "0.15.5" @@ -1096,12 +664,6 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hermit-abi" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" - [[package]] name = "hex" version = "0.4.3" @@ -1114,12 +676,6 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - [[package]] name = "indexmap" version = "2.14.0" @@ -1225,7 +781,7 @@ dependencies = [ "lumen-core", "serde", "serde_json", - "thiserror 2.0.18", + "thiserror", ] [[package]] @@ -1238,7 +794,7 @@ dependencies = [ "postcard", "serde", "serde_json", - "thiserror 2.0.18", + "thiserror", "toml", "tracing", ] @@ -1253,7 +809,7 @@ dependencies = [ "lumen-core", "postcard", "serde", - "thiserror 2.0.18", + "thiserror", "tokio", "x25519", "zeroize", @@ -1295,7 +851,7 @@ dependencies = [ "rng", "serde", "serde_json", - "thiserror 2.0.18", + "thiserror", "zeroize", ] @@ -1325,8 +881,6 @@ name = "lumen-inference" version = "0.4.1" dependencies = [ "async-trait", - "candle-core", - "candle-onnx", "futures", "lumen-channel", "lumen-core", @@ -1346,7 +900,7 @@ dependencies = [ "serde", "serde_json", "tempfile", - "thiserror 2.0.18", + "thiserror", "tracing", ] @@ -1379,7 +933,7 @@ dependencies = [ "serde", "serde_json", "tempfile", - "thiserror 2.0.18", + "thiserror", "toml", "tracing", ] @@ -1392,7 +946,7 @@ dependencies = [ "lumen-core", "parking_lot", "serde", - "thiserror 2.0.18", + "thiserror", "tokio", "tracing", "wasmtime", @@ -1424,7 +978,7 @@ dependencies = [ "postcard", "serde", "serde_json", - "thiserror 2.0.18", + "thiserror", "tracing", ] @@ -1437,22 +991,6 @@ dependencies = [ "libc", ] -[[package]] -name = "macro_rules_attribute" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65049d7923698040cd0b1ddcced9b0eb14dd22c5f86ae59c3740eab64a676520" -dependencies = [ - "macro_rules_attribute-proc_macro", - "paste", -] - -[[package]] -name = "macro_rules_attribute-proc_macro" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "670fdfda89751bc4a84ac13eaa63e205cf0fd22b4c9a5fbfa085b63c1f1d3a30" - [[package]] name = "matchers" version = "0.2.0" @@ -1477,60 +1015,6 @@ dependencies = [ "rustix", ] -[[package]] -name = "memmap2" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "714098028fe011992e1c3962653c96b2d578c4b4bce9036e15ff220319b1e0e3" -dependencies = [ - "libc", - "stable_deref_trait", -] - -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "monostate" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3341a273f6c9d5bef1908f17b7267bbab0e95c9bf69a0d4dcf8e9e1b2c76ef67" -dependencies = [ - "monostate-impl", - "serde", - "serde_core", -] - -[[package]] -name = "monostate-impl" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4db6d5580af57bf992f59068d4ea26fd518574ff48d7639b255a36f9de6e7e9" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "multimap" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" - -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - [[package]] name = "nu-ansi-term" version = "0.50.3" @@ -1540,36 +1024,6 @@ dependencies = [ "windows-sys", ] -[[package]] -name = "num-complex" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" -dependencies = [ - "bytemuck", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "num_cpus" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" -dependencies = [ - "hermit-abi", - "libc", -] - [[package]] name = "object" version = "0.39.1" @@ -1594,28 +1048,6 @@ version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" -[[package]] -name = "onig" -version = "6.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc3cbf698f9438986c11a880c90a6d04b9de27575afd28bbf45b154b6c709e2" -dependencies = [ - "bitflags", - "libc", - "once_cell", - "onig_sys", -] - -[[package]] -name = "onig_sys" -version = "69.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e68317604e77e53b85896388e1a803c1d21b74c899ec9e5e1112db90735edd7" -dependencies = [ - "cc", - "pkg-config", -] - [[package]] name = "parking_lot" version = "0.12.5" @@ -1639,35 +1071,12 @@ dependencies = [ "windows-link", ] -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "petgraph" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" -dependencies = [ - "fixedbitset", - "hashbrown 0.15.5", - "indexmap", -] - [[package]] name = "pin-project-lite" version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" -[[package]] -name = "pkg-config" -version = "0.3.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" - [[package]] name = "postcard" version = "1.1.3" @@ -1680,15 +1089,6 @@ dependencies = [ "serde", ] -[[package]] -name = "ppv-lite86" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" -dependencies = [ - "zerocopy", -] - [[package]] name = "prettyplease" version = "0.2.37" @@ -1708,57 +1108,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "prost" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2ea70524a2f82d518bce41317d0fae74151505651af45faf1ffbd6fd33f0568" -dependencies = [ - "bytes", - "prost-derive", -] - -[[package]] -name = "prost-build" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "343d3bd7056eda839b03204e68deff7d1b13aba7af2b2fd16890697274262ee7" -dependencies = [ - "heck", - "itertools", - "log", - "multimap", - "petgraph", - "prettyplease", - "prost", - "prost-types", - "regex", - "syn", - "tempfile", -] - -[[package]] -name = "prost-derive" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b" -dependencies = [ - "anyhow", - "itertools", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "prost-types" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8991c4cbdb8bc5b11f0b074ffe286c30e523de90fee5ba8132f1399f23cb3dd7" -dependencies = [ - "prost", -] - [[package]] name = "pulley-interpreter" version = "44.0.1" @@ -1782,29 +1131,6 @@ dependencies = [ "syn", ] -[[package]] -name = "pulp" -version = "0.22.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e205bb30d5b916c55e584c22201771bcf2bad9aabd5d4127f38387140c38632" -dependencies = [ - "bytemuck", - "cfg-if", - "libm", - "num-complex", - "paste", - "pulp-wasm-simd-flag", - "raw-cpuid", - "reborrow", - "version_check", -] - -[[package]] -name = "pulp-wasm-simd-flag" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40e24eee682d89fb193496edf918a7f407d30175b2e785fe057e4392dfd182e0" - [[package]] name = "quote" version = "1.0.45" @@ -1814,103 +1140,12 @@ dependencies = [ "proc-macro2", ] -[[package]] -name = "r-efi" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" - [[package]] name = "r-efi" version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" -[[package]] -name = "rand" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" -dependencies = [ - "rand_chacha", - "rand_core", -] - -[[package]] -name = "rand_chacha" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" -dependencies = [ - "getrandom 0.3.4", -] - -[[package]] -name = "rand_distr" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8615d50dcf34fa31f7ab52692afec947c4dd0ab803cc87cb3b0b4570ff7463" -dependencies = [ - "num-traits", - "rand", -] - -[[package]] -name = "raw-cpuid" -version = "11.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" -dependencies = [ - "bitflags", -] - -[[package]] -name = "rayon" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-cond" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2964d0cf57a3e7a06e8183d14a8b527195c706b7983549cd5462d5aa3747438f" -dependencies = [ - "either", - "itertools", - "rayon", -] - -[[package]] -name = "rayon-core" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "reborrow" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03251193000f4bd3b042892be858ee50e8b3719f2b08e5833ac4353724632430" - [[package]] name = "redox_syscall" version = "0.5.18" @@ -1996,18 +1231,6 @@ dependencies = [ "windows-sys", ] -[[package]] -name = "rustversion" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" - -[[package]] -name = "ryu" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" - [[package]] name = "safetensors" version = "0.7.0" @@ -2019,15 +1242,6 @@ dependencies = [ "serde_json", ] -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - [[package]] name = "scopeguard" version = "1.2.0" @@ -2040,12 +1254,6 @@ version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" -[[package]] -name = "seq-macro" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc711410fbe7399f390ca1c3b60ad0f53f80e95c5eb935e52268a0e2cd49acc" - [[package]] name = "serde" version = "1.0.228" @@ -2147,30 +1355,12 @@ dependencies = [ "serde", ] -[[package]] -name = "spm_precompiled" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5851699c4033c63636f7ea4cf7b7c1f1bf06d0cc03cfb42e711de5a5c46cf326" -dependencies = [ - "base64", - "nom", - "serde", - "unicode-segmentation", -] - [[package]] name = "stable_deref_trait" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - [[package]] name = "strsim" version = "0.11.1" @@ -2188,31 +1378,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "synstructure" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "sysctl" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01198a2debb237c62b6826ec7081082d951f46dbb64b0e8c7649a452230d1dfc" -dependencies = [ - "bitflags", - "byteorder", - "enum-as-inner", - "libc", - "thiserror 1.0.69", - "walkdir", -] - [[package]] name = "target-lexicon" version = "0.13.5" @@ -2226,7 +1391,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", - "getrandom 0.4.2", + "getrandom", "once_cell", "rustix", "windows-sys", @@ -2241,33 +1406,13 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "thiserror" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" -dependencies = [ - "thiserror-impl 1.0.69", -] - [[package]] name = "thiserror" version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ - "thiserror-impl 2.0.18", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn", + "thiserror-impl", ] [[package]] @@ -2290,39 +1435,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "tokenizers" -version = "0.22.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b238e22d44a15349529690fb07bd645cf58149a1b1e44d6cb5bd1641ff1a6223" -dependencies = [ - "ahash", - "aho-corasick", - "compact_str", - "dary_heap", - "derive_builder", - "esaxx-rs", - "getrandom 0.3.4", - "itertools", - "log", - "macro_rules_attribute", - "monostate", - "onig", - "paste", - "rand", - "rayon", - "rayon-cond", - "regex", - "regex-syntax", - "serde", - "serde_json", - "spm_precompiled", - "thiserror 2.0.18", - "unicode-normalization-alignments", - "unicode-segmentation", - "unicode_categories", -] - [[package]] name = "tokio" version = "1.52.2" @@ -2447,12 +1559,6 @@ dependencies = [ "tracing-log", ] -[[package]] -name = "typed-path" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e" - [[package]] name = "typenum" version = "1.20.0" @@ -2465,21 +1571,6 @@ version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" -[[package]] -name = "unicode-normalization-alignments" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f613e4fa046e69818dd287fdc4bc78175ff20331479dab6e1b0f98d57062de" -dependencies = [ - "smallvec", -] - -[[package]] -name = "unicode-segmentation" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" - [[package]] name = "unicode-width" version = "0.2.2" @@ -2492,12 +1583,6 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" -[[package]] -name = "unicode_categories" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" - [[package]] name = "utf8parse" version = "0.2.2" @@ -2516,16 +1601,6 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" -[[package]] -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] - [[package]] name = "wasip2" version = "1.0.3+wasi-0.2.9" @@ -2752,7 +1827,7 @@ dependencies = [ "pulley-interpreter", "smallvec", "target-lexicon", - "thiserror 2.0.18", + "thiserror", "wasmparser 0.246.2", "wasmtime-environ", "wasmtime-internal-core", @@ -3010,86 +2085,10 @@ dependencies = [ "zeroize", ] -[[package]] -name = "yoke" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abe8c5fda708d9ca3df187cae8bfb9ceda00dd96231bed36e445a1a48e66f9ca" -dependencies = [ - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerocopy" -version = "0.8.48" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" -dependencies = [ - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.8.48" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "zerofrom" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69faa1f2a1ea75661980b013019ed6687ed0e83d069bc1114e2cc74c6c04c4df" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - [[package]] name = "zeroize" version = "1.0.0" -[[package]] -name = "zip" -version = "7.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c42e33efc22a0650c311c2ef19115ce232583abbe80850bc8b66509ebef02de0" -dependencies = [ - "crc32fast", - "indexmap", - "memchr", - "typed-path", -] - [[package]] name = "zmij" version = "1.0.21" diff --git a/Cargo.toml b/Cargo.toml index 2d770ed..6865fb3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -75,7 +75,8 @@ parking_lot = "0.12" wasmtime = { version = "44", default-features = false, features = ["async", "cranelift", "runtime", "addr2line", "demangle"] } wat = "1" -# Provenance — candle-onnx 가 0.7 을 끌어오므로 동일 메이저로 정렬해 dup 회피. +# Provenance — Hugging Face safetensors 헤더 sniff 용. 단독으로 동작하는 +# 작은 크레이트라 폐쇄망 빌드에 무리 없이 포함됩니다. safetensors = "0.7" # CLI @@ -91,19 +92,18 @@ tracing-subscriber = { version = "0.3", features = ["fmt", "env-filter"] } # Dev / bench criterion = "0.5" -# candle (ONNX 라우팅 추론) - feature 뒤에서만 활성화. CPU 전용 빌드. -# 폐쇄망 배포에서는 `cargo vendor` 로 사전 fetch 필요 (AIR-GAPPED.md 참고). -candle-core = { version = "0.10", default-features = false } -candle-onnx = { version = "0.10", default-features = false } - -# 참고: 다음 의존성은 v0.4 폐쇄형(Air-Gapped) 호환성 작업으로 제거되었습니다. +# 참고: 다음 의존성은 폐쇄형(Air-Gapped) 호환성 작업으로 제거되었습니다. # - `halo2_proofs` / `ff` / `pasta_curves` : ZK 백엔드. mock prover 가 # 이미 BLAKE3 기반이라 halo2 회로 없이 동작합니다. 실제 succinct ZK # 백엔드 (SP1 / RISC Zero 등) 는 마일스톤 재검토 시 결정. -# - `candle-transformers` + `tokenizers` : GGUF LLM 텍스트 생성 백엔드. -# 의존 트리가 너무 크고 HF Hub 다운로드 코드를 포함하므로 폐쇄망에 -# 부적합. 전체 LLM 생성은 `llama-cpp` 백엔드 또는 호스트 TEE 의 -# ChannelEngine forward 경로를 사용. +# - `candle-core` / `candle-onnx` / `candle-transformers` / `tokenizers` +# : GGUF·ONNX 추론 백엔드. 의존 트리가 매우 크고 (`gemm`, `pulp`, +# `paste`, `tokenizers`, `rand_core` 등) HF Hub 다운로드 코드를 +# 포함하므로 폐쇄망에 부적합. 도구 라우팅용 토크나이저는 자체 구현인 +# `lumen_inference::BpeTokenizer` 를 사용하고, 전체 LLM 생성은 +# `llama-cpp` 백엔드 또는 호스트 TEE 의 ChannelEngine forward 경로를 +# 사용합니다. +# - `rand` / `rand_core` : `lumen_core::rng` (HashDRBG 어댑터) 로 대체. [workspace.lints.rust] # Q. T. Felix NOTE: 모든 경고를 deny 로 격상해 lumen 멤버 크레이트의 게이트로 diff --git a/crates/lumen-inference/Cargo.toml b/crates/lumen-inference/Cargo.toml index 6b832e3..68c7fa4 100644 --- a/crates/lumen-inference/Cargo.toml +++ b/crates/lumen-inference/Cargo.toml @@ -6,7 +6,7 @@ rust-version.workspace = true license.workspace = true authors.workspace = true repository.workspace = true -description = "Lumen - InferenceEngine trait + streaming + verified loader + quantization config; candle/llama.cpp behind feature flags" +description = "Lumen - InferenceEngine trait + streaming + verified loader + quantization + minimal BPE tokenizer; llama.cpp behind feature flag" keywords.workspace = true categories.workspace = true @@ -15,10 +15,6 @@ workspace = true [features] default = [] -# ONNX 라우팅 엔진 (candle-onnx 기반, 기존 CandleEngine). -# 폐쇄망 배포에서는 cargo vendor 로 candle 소스를 미리 가져와야 합니다 - -# `AIR-GAPPED.md` 가이드 참고. -candle = ["dep:candle-core", "dep:candle-onnx"] # llama.cpp 백엔드 (cmake 빌드 필요, 현재 인터페이스 스텁). # 전체 LLM 텍스트 생성이 필요한 경우 이 백엔드를 사용하세요. llama-cpp = [] @@ -34,8 +30,6 @@ serde = { workspace = true } serde_json.workspace = true tokio = { workspace = true, features = ["sync"] } tracing.workspace = true -candle-core = { workspace = true, optional = true } -candle-onnx = { workspace = true, optional = true } [dev-dependencies] tokio = { workspace = true, features = ["macros", "rt-multi-thread"] } diff --git a/crates/lumen-inference/src/backend.rs b/crates/lumen-inference/src/backend.rs index f6423b6..152a6bb 100644 --- a/crates/lumen-inference/src/backend.rs +++ b/crates/lumen-inference/src/backend.rs @@ -8,15 +8,15 @@ //! | 백엔드 | feature | 설명 | //! |--------------------|--------------|--------------------------------------| //! | `Dummy` | *(없음)* | 결정론적 패턴 매칭, 테스트 전용. | -//! | `CandleOnnx` | `candle` | ONNX 라우팅 (기존 `CandleEngine`). | //! | `LlamaCpp` | `llama-cpp` | llama.cpp 연동 (v0.5 완성 예정). | //! -//! `candle-llm` (candle-transformers + HF tokenizers) 백엔드는 폐쇄형 -//! 환경 호환을 위해 v0.4 에서 제거되었습니다. 전체 LLM 텍스트 생성은 -//! `llama-cpp` 백엔드 또는 호스트 TEE 의 추론 서비스로 forward 하는 -//! [`crate::ChannelEngine`] 경로를 사용하세요. +//! `candle` (candle-core / candle-onnx) 백엔드는 폐쇄형 환경 호환을 위해 +//! v0.4 에서 제거되었습니다. ONNX 도구 라우팅이 필요한 경우 자체 BPE +//! 토크나이저 + 호스트 TEE 의 추론 서비스로 [`crate::ChannelEngine`] 을 +//! 통해 forward 하는 경로를 사용하세요. 전체 LLM 텍스트 생성은 `llama-cpp` +//! 백엔드를 사용하세요. -#[cfg(any(feature = "candle", feature = "llama-cpp"))] +#[cfg(feature = "llama-cpp")] use crate::loader::VerifiedModelHandle; use std::sync::Arc; @@ -30,17 +30,6 @@ pub enum BackendConfig { /// 테스트 및 데모용 결정론적 패턴-매칭 엔진. Dummy, - /// ONNX 모델 기반 도구 라우팅 엔진. - /// - /// `candle` feature 가 활성화되어야 합니다. - #[cfg(feature = "candle")] - CandleOnnx { - /// 검증된 `.onnx` 모델 핸들. - handle: VerifiedModelHandle, - /// argmax 인덱스 → ToolId 매핑 테이블. - tool_table: Vec, - }, - /// llama.cpp 기반 엔진 (v0.5 완성 예정). /// /// `llama-cpp` feature 가 활성화되어야 합니다. @@ -63,12 +52,6 @@ pub fn create_engine(config: BackendConfig) -> Result> match config { BackendConfig::Dummy => Ok(Arc::new(DummyEngine::new())), - #[cfg(feature = "candle")] - BackendConfig::CandleOnnx { handle, tool_table } => { - use crate::candle::CandleEngine; - Ok(Arc::new(CandleEngine::load(handle.path(), tool_table)?)) - } - #[cfg(feature = "llama-cpp")] BackendConfig::LlamaCpp { handle, diff --git a/crates/lumen-inference/src/candle.rs b/crates/lumen-inference/src/candle.rs deleted file mode 100644 index ed17644..0000000 --- a/crates/lumen-inference/src/candle.rs +++ /dev/null @@ -1,165 +0,0 @@ -//! candle-onnx 기반 추론 엔진 - `candle` feature 가 활성화된 경우만 컴파일. -//! -//! ## 범위 (v0.3) -//! -//! - 작은 ONNX 분류 모델을 [`std::path::Path`] 로 로드. -//! - 프롬프트를 BLAKE3 해시 -> 고정 길이 `f32` 벡터로 결정론적 인코딩. -//! - 모델 forward 후 출력 벡터의 argmax 를 도구 ID 매핑으로 변환. -//! - 모든 추론 경로는 CPU 만 (CUDA/Metal feature 미활성). -//! -//! ## 결정성 -//! -//! candle 의 `f32` 연산은 미세하게 비결정적일 수 있으므로 **이 백엔드의 -//! 출력은 ZK witness 에 직접 묶어서는 안 됩니다.** 진정한 결정성 추론은 -//! `lumen-fixed` 위에 작성된 자체 quantize 그래프 (v0.5 예정) 에서 다룹니다. -//! 현재는 *Tool routing decision* 에 ONNX 출력을 *입력으로* 사용하되, ZK -//! 증명은 *호스트가 결정한 정수 라우팅 인덱스* 만을 바인드합니다 - float 의 -//! 전파를 차단하기 위해서. - -use std::path::PathBuf; - -use async_trait::async_trait; -use candle_core::{DType, Device, Tensor}; -use lumen_core::{Error, Result, ToolId}; - -use crate::{Completion, InferenceEngine, SamplingParams, ToolCall}; - -/// candle-onnx 백엔드. ONNX 모델 한 개를 로드해 inference 에 사용합니다. -pub struct CandleEngine { - /// ONNX 모델 객체 (candle 의 `ModelProto`). - model: candle_onnx::onnx::ModelProto, - /// ONNX 입력 텐서 이름 (모델의 첫 입력). - input_name: String, - /// ONNX 입력 길이 (1차원 f32 벡터로 가정). - input_len: usize, - /// argmax 인덱스를 ToolId 로 매핑하는 테이블. - tool_table: Vec, - /// 진단용 모델 경로 (audit 출력). - model_path: PathBuf, -} - -impl CandleEngine { - /// 모델 파일 (`.onnx`) 을 로드하고 `tool_table` 을 핀 합니다. - pub fn load(path: impl Into, tool_table: Vec) -> Result { - let model_path = path.into(); - let model = candle_onnx::read_file(&model_path) - .map_err(|e| Error::Inference(format!("candle-onnx read: {e}")))?; - let graph = model - .graph - .as_ref() - .ok_or_else(|| Error::Inference("candle: ONNX graph 없음".into()))?; - let input_info = graph - .input - .first() - .ok_or_else(|| Error::Inference("candle: ONNX 입력 없음".into()))?; - let input_name = input_info.name.clone(); - let input_len = input_tensor_length(input_info)?; - Ok(Self { - model, - input_name, - input_len, - tool_table, - model_path, - }) - } - - /// 프롬프트를 결정론적 `f32` 벡터로 인코딩. - /// - /// BLAKE3 다이제스트의 32 바이트를 8 개 `f32` 로 분할한 다음, 모델 입력 - /// 길이에 맞게 반복/잘라냅니다. 진짜 토크나이저는 v0.4 에서. - fn encode_prompt(&self, prompt: &str) -> Vec { - let digest = lumen_core::Blake3Hash::of(prompt.as_bytes()); - let bytes = digest.as_bytes(); - let mut out = Vec::with_capacity(self.input_len); - for i in 0..self.input_len { - let byte = bytes[i % bytes.len()]; - // 0..255 -> -1.0..1.0 (대략). - let v = (byte as f32 / 127.5) - 1.0; - out.push(v); - } - out - } - - fn run_inference(&self, prompt: &str) -> Result> { - let input_data = self.encode_prompt(prompt); - let input = Tensor::from_vec(input_data, (1, self.input_len), &Device::Cpu) - .map_err(|e| Error::Inference(format!("candle tensor: {e}")))? - .to_dtype(DType::F32) - .map_err(|e| Error::Inference(format!("candle dtype: {e}")))?; - let mut inputs = std::collections::HashMap::new(); - inputs.insert(self.input_name.clone(), input); - let outputs = candle_onnx::simple_eval(&self.model, inputs) - .map_err(|e| Error::Inference(format!("candle eval: {e}")))?; - let (_name, tensor) = outputs - .into_iter() - .next() - .ok_or_else(|| Error::Inference("candle: ONNX 출력 없음".into()))?; - tensor - .flatten_all() - .and_then(|t| t.to_vec1::()) - .map_err(|e| Error::Inference(format!("candle output: {e}"))) - } - - /// 출력 벡터의 argmax 인덱스. - fn argmax(scores: &[f32]) -> Option { - let (idx, _) = scores - .iter() - .enumerate() - .max_by(|(_, a), (_, b)| a.partial_cmp(b).unwrap_or(std::cmp::Ordering::Equal))?; - Some(idx) - } - - /// 모델 경로 (디버그/audit 용). - pub fn model_path(&self) -> &std::path::Path { - &self.model_path - } -} - -#[async_trait] -impl InferenceEngine for CandleEngine { - async fn complete(&self, prompt: &str, _params: &SamplingParams) -> Result { - let scores = self.run_inference(prompt)?; - let chosen = Self::argmax(&scores).and_then(|i| self.tool_table.get(i).cloned()); - - let tool_call = chosen.map(|tool_id| ToolCall { - id: tool_id, - args_json: serde_json::json!({ "prompt": prompt }).to_string(), - }); - - Ok(Completion { - text: format!("[candle] scores={scores:?}"), - tool_call, - }) - } -} - -fn input_tensor_length(info: &candle_onnx::onnx::ValueInfoProto) -> Result { - let ty = info - .r#type - .as_ref() - .ok_or_else(|| Error::Inference("candle: input type 없음".into()))?; - let value = ty - .value - .as_ref() - .ok_or_else(|| Error::Inference("candle: input value 없음".into()))?; - use candle_onnx::onnx::type_proto::Value as TPV; - let TPV::TensorType(tensor_type) = value else { - return Err(Error::Inference("candle: 비텐서 입력 미지원".into())); - }; - let shape = tensor_type - .shape - .as_ref() - .ok_or_else(|| Error::Inference("candle: shape 없음".into()))?; - // 마지막 차원을 입력 길이로 채택. 첫 차원이 batch size 라고 가정. - let dims = &shape.dim; - let last = dims - .last() - .ok_or_else(|| Error::Inference("candle: 빈 shape".into()))?; - use candle_onnx::onnx::tensor_shape_proto::dimension::Value as DV; - match &last.value { - Some(DV::DimValue(v)) => Ok(*v as usize), - _ => Err(Error::Inference( - "candle: 동적 shape 미지원 (마지막 dim 이 정적이어야 함)".into(), - )), - } -} diff --git a/crates/lumen-inference/src/lib.rs b/crates/lumen-inference/src/lib.rs index 7777a2c..4fcc7ed 100644 --- a/crates/lumen-inference/src/lib.rs +++ b/crates/lumen-inference/src/lib.rs @@ -13,7 +13,6 @@ //! | 백엔드 | feature | 용도 | //! |------------------|--------------|----------------------------------| //! | `DummyEngine` | *(없음)* | 결정론적 테스트 / 데모 | -//! | `CandleEngine` | `candle` | ONNX 도구 라우팅 | //! | `LlamaCppEngine` | `llama-cpp` | llama.cpp 연동 (v0.5 예정) | //! | `ChannelEngine` | *(없음)* | TEE 채널 forward | //! @@ -22,19 +21,18 @@ //! //! ## 폐쇄형(Air-Gapped) 환경 메모 //! -//! HuggingFace 의 `tokenizers` 크레이트와 `candle-transformers` 의 GGUF -//! 텍스트 생성 백엔드는 외부 다운로드 코드를 포함하고 의존 트리가 매우 -//! 커서 폐쇄망 빌드 부담이 큽니다. 따라서 v0.4 부터 `candle-llm` feature -//! 는 제거되었습니다. 전체 LLM 텍스트 생성이 필요한 경우 `llama-cpp` -//! (llama.cpp 백엔드, 내장 BPE / SentencePiece 토크나이저) 또는 -//! 호스트 TEE 의 추론 서비스로 [`ChannelEngine`] 을 통해 forward 하는 -//! 경로를 사용하세요. +//! HuggingFace 의 `tokenizers` 크레이트와 `candle-*` (candle-core / +//! candle-onnx / candle-transformers) 백엔드는 외부 다운로드 코드를 +//! 포함하고 의존 트리가 매우 커서 폐쇄망 빌드 부담이 큽니다. 따라서 +//! v0.4 부터 모든 candle feature 는 제거되었습니다. 도구 라우팅용 BPE +//! 토크나이저가 필요한 경우 자체 구현인 [`tokenizer::BpeTokenizer`] 를 +//! 사용하세요. 전체 LLM 텍스트 생성이 필요한 경우 `llama-cpp` (llama.cpp +//! 백엔드, 내장 BPE / SentencePiece 토크나이저) 또는 호스트 TEE 의 +//! 추론 서비스로 [`ChannelEngine`] 을 통해 forward 하는 경로를 사용하세요. #![forbid(unsafe_code)] #![warn(missing_docs)] -#[cfg(feature = "candle")] -pub mod candle; #[cfg(feature = "llama-cpp")] pub mod llama_cpp; @@ -44,6 +42,7 @@ pub mod loader; pub mod quantize; pub mod streaming; pub mod tee_channel; +pub mod tokenizer; use async_trait::async_trait; use lumen_core::{Result, ToolId}; @@ -124,6 +123,7 @@ pub use loader::{VerifiedModelHandle, VerifiedModelLoader}; pub use quantize::{GgufLevel, QuantizationConfig, QuantizationKind}; pub use streaming::{FinishReason, StreamingEngine, Token, TokenStream}; pub use tee_channel::ChannelEngine; +pub use tokenizer::{BpeTokenizer, TokenId}; #[cfg(feature = "llama-cpp")] pub use llama_cpp::LlamaCppEngine; diff --git a/crates/lumen-inference/src/tokenizer.rs b/crates/lumen-inference/src/tokenizer.rs new file mode 100644 index 0000000..9b29248 --- /dev/null +++ b/crates/lumen-inference/src/tokenizer.rs @@ -0,0 +1,321 @@ +//! 폐쇄형(Air-Gapped) 환경 친화적 최소 BPE 토크나이저. +//! +//! HuggingFace `tokenizers` 크레이트 의존을 끊기 위한 자체 구현입니다. +//! GGUF 토크나이저 메타데이터(`tokenizer.ggml.tokens` + `tokenizer.ggml.merges`) +//! 또는 GPT-2 호환 `vocab.json` + `merges.txt` 를 그대로 받아 사용할 수 있는 +//! 바이트 수준(byte-level) BPE 인코더/디코더입니다. +//! +//! # 결정성 +//! +//! 본 토크나이저의 출력은 동일 vocab/merges 입력에 대해 비트-동일한 결정론적 +//! 결과를 보장합니다. 부동소수 / 해시 테이블 비결정성을 피하기 위해 모든 내부 +//! 자료구조는 [`BTreeMap`] 으로 통일했습니다. +//! +//! # 알고리즘 복잡도 +//! +//! 단순 $O(n^2)$ 머지 루프(가장 낮은 rank 의 인접 페어를 매 라운드 검색) +//! 입니다. 일반적으로 토크나이저 입력은 ≤ 8 KiB 이고 호출 빈도가 적어 +//! 실제 latency 에는 무시할 만한 수준입니다. 더 큰 입력에 대해서는 우선순위 +//! 큐 기반 최적화(`O(n log n)`) 가 가능하나 본 마이크로커널 빌드에서는 +//! 필요성이 낮아 의도적으로 채택하지 않았습니다. +//! +//! # GGUF 호환 +//! +//! GGUF 의 토크나이저 메타데이터를 그대로 매핑할 수 있도록 다음 규약을 +//! 따릅니다: +//! +//! - vocab 은 `Vec>` 형태로 받으며, 인덱스가 곧 토큰 ID 입니다. +//! - merges 는 `Vec<(Vec, Vec)>` 형태로 받으며, 등록 순서가 곧 +//! 머지 우선순위(낮을수록 먼저 적용) 입니다. +//! - 토큰 ID 는 [`TokenId`] (`u32`) 로 표현됩니다. +//! +//! 실제 GGUF 파일에서 메타데이터를 읽어내는 파서는 추후 `gguf` 모듈로 +//! 분리됩니다 - 본 모듈은 순수 BPE 로직만 다룹니다. + +use std::collections::BTreeMap; + +use lumen_core::{Error, Result}; + +/// BPE 토큰 식별자. +pub type TokenId = u32; + +/// 바이트 수준 BPE 토크나이저. +#[derive(Clone, Debug)] +pub struct BpeTokenizer { + /// 토큰 ID -> 바이트 시퀀스. + vocab_by_id: Vec>, + /// 바이트 시퀀스 -> 토큰 ID (역색인). + id_by_token: BTreeMap, TokenId>, + /// 머지 규칙 `(left, right) -> rank` (낮을수록 우선). + merge_ranks: BTreeMap<(Vec, Vec), u32>, + /// 알 수 없는 토큰 fallback ID. `None` 이면 인코드 실패시 에러. + unk_id: Option, +} + +impl BpeTokenizer { + /// vocab + merges 로부터 새 인스턴스를 만듭니다. + /// + /// # Errors + /// vocab 크기가 `u32` 범위를 초과하거나, 중복 토큰이 발견되거나, merges + /// 길이가 `u32` 범위를 초과하면 [`Error::Invalid`] 를 반환합니다. + pub fn new(vocab: Vec>, merges: Vec<(Vec, Vec)>) -> Result { + if vocab.len() > u32::MAX as usize { + return Err(Error::Invalid( + "tokenizer: vocab too large for u32 ids".into(), + )); + } + let mut id_by_token = BTreeMap::new(); + for (idx, tok) in vocab.iter().enumerate() { + if id_by_token.insert(tok.clone(), idx as TokenId).is_some() { + return Err(Error::Invalid(format!( + "tokenizer: duplicate vocab token at id {idx}" + ))); + } + } + let mut merge_ranks = BTreeMap::new(); + for (rank, pair) in merges.into_iter().enumerate() { + if rank > u32::MAX as usize { + return Err(Error::Invalid( + "tokenizer: too many merges for u32 rank".into(), + )); + } + // 동일 페어가 중복 등록되어도 첫 등록이 가장 낮은 rank 이므로 + // 그것을 보존합니다. + merge_ranks.entry(pair).or_insert(rank as u32); + } + Ok(Self { + vocab_by_id: vocab, + id_by_token, + merge_ranks, + unk_id: None, + }) + } + + /// 알 수 없는 토큰을 만났을 때 사용할 fallback ID 를 설정합니다. + pub fn with_unk_id(mut self, unk_id: TokenId) -> Self { + self.unk_id = Some(unk_id); + self + } + + /// 단일 토큰 바이트를 ID 로 조회합니다. + pub fn token_to_id(&self, token: &[u8]) -> Option { + self.id_by_token.get(token).copied() + } + + /// ID 를 토큰 바이트로 조회합니다. + pub fn id_to_token(&self, id: TokenId) -> Option<&[u8]> { + self.vocab_by_id.get(id as usize).map(Vec::as_slice) + } + + /// vocab 크기. + pub fn vocab_size(&self) -> usize { + self.vocab_by_id.len() + } + + /// 등록된 머지 규칙 수. + pub fn merge_count(&self) -> usize { + self.merge_ranks.len() + } + + /// UTF-8 텍스트를 토큰 ID 시퀀스로 인코드합니다. + pub fn encode(&self, text: &str) -> Result> { + self.encode_bytes(text.as_bytes()) + } + + /// 임의의 바이트 시퀀스를 토큰 ID 시퀀스로 인코드합니다. + /// + /// # 알고리즘 + /// 1. 입력 바이트마다 한 글자 토큰으로 분해. + /// 2. 인접 페어 중 가장 낮은 rank 의 머지를 1 회 적용. + /// 3. 더 이상 적용 가능한 머지가 없을 때까지 반복. + /// 4. 각 토큰 바이트를 vocab ID 로 변환. + pub fn encode_bytes(&self, bytes: &[u8]) -> Result> { + if bytes.is_empty() { + return Ok(Vec::new()); + } + let mut pieces: Vec> = bytes.iter().map(|b| vec![*b]).collect(); + + loop { + let mut best_rank: u32 = u32::MAX; + let mut best_idx: Option = None; + for i in 0..pieces.len().saturating_sub(1) { + // 머지 규칙 검색은 페어 자체를 키로 사용합니다. BTreeMap + // 키는 빌릴 수 없으므로 검색용 페어를 만듭니다 - 짧은 + // 토큰이라 재할당 비용은 무시 가능합니다. + let pair = (pieces[i].clone(), pieces[i + 1].clone()); + if let Some(&rank) = self.merge_ranks.get(&pair) { + if rank < best_rank { + best_rank = rank; + best_idx = Some(i); + } + } + } + let Some(i) = best_idx else { break }; + let mut merged = Vec::with_capacity(pieces[i].len() + pieces[i + 1].len()); + merged.extend_from_slice(&pieces[i]); + merged.extend_from_slice(&pieces[i + 1]); + pieces[i] = merged; + pieces.remove(i + 1); + } + + let mut ids = Vec::with_capacity(pieces.len()); + for piece in pieces { + if let Some(id) = self.id_by_token.get(&piece) { + ids.push(*id); + } else if let Some(unk) = self.unk_id { + ids.push(unk); + } else { + return Err(Error::Inference(format!( + "tokenizer: unknown token (len={}) and no unk_id set", + piece.len() + ))); + } + } + Ok(ids) + } + + /// 토큰 ID 시퀀스를 바이트로 디코드합니다. + pub fn decode_bytes(&self, ids: &[TokenId]) -> Result> { + let mut out = Vec::new(); + for &id in ids { + let token = self.id_to_token(id).ok_or_else(|| { + Error::Inference(format!("tokenizer: unknown id {id} for decode")) + })?; + out.extend_from_slice(token); + } + Ok(out) + } + + /// 토큰 ID 시퀀스를 UTF-8 문자열로 디코드합니다. 비-UTF-8 시퀀스는 + /// lossy 변환됩니다. + pub fn decode(&self, ids: &[TokenId]) -> Result { + let bytes = self.decode_bytes(ids)?; + Ok(String::from_utf8_lossy(&bytes).into_owned()) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + fn b(s: &str) -> Vec { + s.as_bytes().to_vec() + } + + /// 기본: 모든 단일 바이트가 vocab 에 있고 머지가 없으면, 인코드는 + /// 입력 바이트마다 1 토큰을 생성합니다. + #[test] + fn no_merges_byte_per_token() { + let vocab = (0u8..=255u8).map(|b| vec![b]).collect(); + let tk = BpeTokenizer::new(vocab, vec![]).unwrap(); + let ids = tk.encode("abc").unwrap(); + assert_eq!(ids, vec![b'a' as u32, b'b' as u32, b'c' as u32]); + assert_eq!(tk.decode(&ids).unwrap(), "abc"); + } + + /// 우선순위 검증: rank 0 페어가 rank 1 페어보다 먼저 머지됩니다. + #[test] + fn merge_priority_lowest_rank_first() { + // vocab: a b c ab abc + let vocab = vec![b("a"), b("b"), b("c"), b("ab"), b("abc")]; + // merges: (a,b) -> rank 0, (ab,c) -> rank 1 + let merges = vec![(b("a"), b("b")), (b("ab"), b("c"))]; + let tk = BpeTokenizer::new(vocab, merges).unwrap(); + let ids = tk.encode("abc").unwrap(); + // (a,b) -> ab, (ab,c) -> abc → 단일 토큰 "abc" (id=4). + assert_eq!(ids, vec![4]); + assert_eq!(tk.decode(&ids).unwrap(), "abc"); + } + + /// 동일 입력 / 동일 vocab 에서 결정론적 출력. + #[test] + fn deterministic() { + let vocab = vec![b("a"), b("b"), b("ab")]; + let merges = vec![(b("a"), b("b"))]; + let tk = BpeTokenizer::new(vocab, merges).unwrap(); + let a = tk.encode("ab").unwrap(); + let b = tk.encode("ab").unwrap(); + assert_eq!(a, b); + } + + /// 알 수 없는 토큰: unk_id 미설정 시 에러. + #[test] + fn unknown_without_unk_errors() { + let vocab = vec![b("a")]; // 'b' 미포함 + let tk = BpeTokenizer::new(vocab, vec![]).unwrap(); + assert!(tk.encode("b").is_err()); + } + + /// 알 수 없는 토큰: unk_id 설정 시 fallback. + #[test] + fn unknown_with_unk_uses_fallback() { + let vocab = vec![b("a"), b("")]; + let tk = BpeTokenizer::new(vocab, vec![]).unwrap().with_unk_id(1); + let ids = tk.encode("b").unwrap(); + assert_eq!(ids, vec![1]); + } + + /// 빈 입력은 빈 출력. + #[test] + fn empty_input() { + let tk = BpeTokenizer::new(vec![b("a")], vec![]).unwrap(); + assert!(tk.encode("").unwrap().is_empty()); + assert!(tk.decode(&[]).unwrap().is_empty()); + } + + /// 중복 vocab 토큰은 거부. + #[test] + fn duplicate_vocab_rejected() { + let vocab = vec![b("a"), b("a")]; + assert!(BpeTokenizer::new(vocab, vec![]).is_err()); + } + + /// 디코드 시 알 수 없는 ID 는 에러. + #[test] + fn decode_unknown_id_errors() { + let tk = BpeTokenizer::new(vec![b("a")], vec![]).unwrap(); + assert!(tk.decode(&[42]).is_err()); + } + + /// 바이트 수준: UTF-8 다바이트 문자도 동작. + #[test] + fn byte_level_handles_multibyte_utf8() { + let mut vocab: Vec> = (0u8..=255u8).map(|b| vec![b]).collect(); + // "한" 의 UTF-8 = 0xED 0x95 0x9C (3 바이트). + let han: Vec = vec![0xED, 0x95, 0x9C]; + vocab.push(han.clone()); + let merges = vec![(vec![0xED], vec![0x95]), (vec![0xED, 0x95], vec![0x9C])]; + let tk = BpeTokenizer::new(vocab, merges).unwrap(); + let ids = tk.encode("한").unwrap(); + // 머지 후 단일 토큰 (마지막 ID = 256). + assert_eq!(ids, vec![256]); + assert_eq!(tk.decode(&ids).unwrap(), "한"); + } + + /// 인코드/디코드 round-trip. + #[test] + fn roundtrip_arbitrary_bytes() { + // 256 개 단일 바이트 vocab + 일부 머지 규칙. + let mut vocab: Vec> = (0u8..=255u8).map(|b| vec![b]).collect(); + vocab.push(b("ab")); + vocab.push(b("cd")); + let merges = vec![(b("a"), b("b")), (b("c"), b("d"))]; + let tk = BpeTokenizer::new(vocab, merges).unwrap(); + let original = "abcd-abcd"; + let ids = tk.encode(original).unwrap(); + assert_eq!(tk.decode(&ids).unwrap(), original); + } + + /// vocab/merge 메타데이터 조회. + #[test] + fn metadata_accessors() { + let vocab = vec![b("a"), b("b"), b("ab")]; + let merges = vec![(b("a"), b("b"))]; + let tk = BpeTokenizer::new(vocab, merges).unwrap(); + assert_eq!(tk.vocab_size(), 3); + assert_eq!(tk.merge_count(), 1); + assert_eq!(tk.token_to_id(b"ab"), Some(2)); + assert_eq!(tk.id_to_token(2), Some(&b"ab"[..])); + assert_eq!(tk.id_to_token(99), None); + } +} diff --git a/deny.toml b/deny.toml index 578ca85..2a3bc65 100644 --- a/deny.toml +++ b/deny.toml @@ -9,14 +9,7 @@ no-default-features = false db-path = "~/.cargo/advisory-db" db-urls = ["https://github.com/rustsec/advisory-db"] yanked = "deny" -ignore = [ - # `paste` 는 archived/unmaintained 이지만 eager macro expansion 만 수행하는 - # 작은 proc-macro 크레이트로 알려진 취약점이 없습니다. 우리 직접 의존이 - # 아니라 `candle-core` → `gemm` / `tokenizers` / `pulp` 트리(즉 `candle` - # feature 활성화 시에만)에서만 옵니다. Drop-in 대체(`pastey`)가 있지만 - # 상위 크레이트들이 채택하기 전까지는 회피 불가. - { id = "RUSTSEC-2024-0436", reason = "transitive via candle-core (feature-gated), no upstream alternative yet" }, -] +ignore = [] [licenses] confidence-threshold = 0.93 From 01ffa0f8d37ebf3cea25771061990dda1c7d1c0c Mon Sep 17 00:00:00 2001 From: "Q. T. Felix" <53819958+Quant-TheodoreFelix@users.noreply.github.com> Date: Sun, 10 May 2026 11:59:22 +0900 Subject: [PATCH 17/19] remove 'candle' feature job, add Air-Gapped --- .github/workflows/ci.yml | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5fde869..6ecdbd8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -122,12 +122,18 @@ jobs: run: cargo build --release --target wasm32-unknown-unknown --locked # --------------------------------------------------------------------------- - # 무거운 optional features (candle). - # 참고: `lumen-zkml` 의 `halo2` feature 는 v0.4 (커밋 ac93393) 에서 폐쇄망 - # 호환성을 위해 제거되었습니다 (`AIR-GAPPED.md` §1 참조). - # --------------------------------------------------------------------------- - features: - name: optional features (candle) + # 폐쇄 환경(Air-Gapped) 호환성: `--offline` 빌드로 네트워크 fetch 없이도 + # 워크스페이스가 빌드되는지 검증합니다. 의존성은 사전에 한 번만 받아오고, + # 그 이후의 `--offline` 단계가 통과해야 진짜 폐쇄망 배포 가능 상태입니다. + # + # 참고: + # - `lumen-zkml` 의 `halo2` feature 는 v0.4 에서 제거되었습니다. + # - `lumen-inference` 의 `candle` feature 도 v0.4 에서 제거되었습니다 + # (`tokenizers` / `rand_core` 등 외부 의존 트리 정리). 도구 라우팅용 + # 토크나이저는 자체 구현 `lumen_inference::BpeTokenizer` 를 사용합니다. + # --------------------------------------------------------------------------- + air-gapped: + name: air-gapped (--offline) needs: image runs-on: ubuntu-latest container: @@ -139,8 +145,14 @@ jobs: - uses: actions/checkout@v4 - uses: ./.github/actions/checkout-deps - uses: Swatinem/rust-cache@v2 - - name: cargo build --features candle - run: cargo build -p lumen-inference --features candle --locked + - name: cargo fetch (online, one-shot) + run: cargo fetch --locked + - name: cargo build --offline (default features) + run: cargo build --workspace --all-targets --locked --offline + - name: cargo build --offline (no default features) + run: cargo build --workspace --no-default-features --locked --offline + - name: cargo test --offline + run: cargo test --workspace --locked --offline # --------------------------------------------------------------------------- # Lint: clippy + rustfmt. From 8c5384ffa4e0d7b9ce60feb7d2cf058d04f06750 Mon Sep 17 00:00:00 2001 From: "Q. T. Felix" <53819958+Quant-TheodoreFelix@users.noreply.github.com> Date: Sun, 10 May 2026 11:59:44 +0900 Subject: [PATCH 18/19] remove protobuf-compiler apt package --- .github/docker/Dockerfile.ci | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/docker/Dockerfile.ci b/.github/docker/Dockerfile.ci index fdb7ec3..4e63593 100644 --- a/.github/docker/Dockerfile.ci +++ b/.github/docker/Dockerfile.ci @@ -2,7 +2,7 @@ # # Lumen CI 베이스 이미지. # -# 모든 GitHub Actions 잡(`build-test`, `features`, `lint`, `docs`, `deny`, +# 모든 GitHub Actions 잡(`build-test`, `air-gapped`, `lint`, `docs`, `deny`, # `audit`)이 이 컨테이너 안에서 실행되어 toolchain·시스템 의존성·사전 설치된 # cargo 도구를 동일하게 사용합니다. 이 파일·`rust-toolchain.toml`이 변경되면 # `.github/workflows/ci.yml` 의 `image` 잡이 자동으로 새 태그를 빌드/푸시합니다. @@ -12,10 +12,13 @@ FROM rust:1.93-bookworm # 워크스페이스 빌드에 필요한 시스템 패키지. -# - protobuf-compiler : `lumen-inference` 의 candle / candle-onnx 빌드 의존성 # - cmake / build-essential / pkg-config / libssl-dev : -# 일부 native crate (wasmtime / cranelift / 향후 dep) 의 보편적 빌드 요구 +# 일부 native crate (wasmtime / cranelift / 향후 llama.cpp 등) 의 +# 보편적 빌드 요구 # - git : cargo-deny advisory DB fetch 및 일부 build script 가 사용 +# +# 참고: 과거에는 `protobuf-compiler` 도 설치했으나 candle / candle-onnx +# 제거(v0.4)로 더 이상 필요하지 않습니다. RUN apt-get update \ && apt-get install -y --no-install-recommends \ ca-certificates \ @@ -23,7 +26,6 @@ RUN apt-get update \ cmake \ pkg-config \ libssl-dev \ - protobuf-compiler \ git \ && rm -rf /var/lib/apt/lists/* From ed1e37ced99d50905d201a2d556030831b05455f Mon Sep 17 00:00:00 2001 From: Quant-TheodoreFelix <53819958+Quant-TheodoreFelix@users.noreply.github.com> Date: Tue, 15 Sep 2026 00:44:40 +0900 Subject: [PATCH 19/19] =?UTF-8?q?K0=20=EC=BB=A4=EB=84=90=20=ED=98=B8?= =?UTF-8?q?=ED=99=98=20=EC=9E=91=EC=97=85=20=EB=A7=88=EB=AC=B4=EB=A6=AC=20?= =?UTF-8?q?=EB=B0=8F=20wasmtime=20=EC=B7=A8=EC=95=BD=EC=A0=90=20=EB=8C=80?= =?UTF-8?q?=EC=9D=91=20-=20iso-light-k0=20=EB=AA=85=EC=B9=AD=EC=9D=84=20K0?= =?UTF-8?q?=20=EB=A1=9C=20=ED=86=B5=EC=9D=BC=ED=95=98=EA=B3=A0=20candle/pr?= =?UTF-8?q?otoc=20=EC=9E=94=EC=9E=AC=20=EC=A0=95=EB=A6=AC=20-=20elib-k0-nt?= =?UTF-8?q?=20=EC=99=80=EC=9D=B4=EC=96=B4=20=ED=98=B8=ED=99=98=20=ED=9A=8C?= =?UTF-8?q?=EA=B7=80=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=B6=94=EA=B0=80=20?= =?UTF-8?q?(`elib=5Fwire=5Fcompat.rs`)=20-=20KERNEL-COMPAT=20=EA=B2=80?= =?UTF-8?q?=EC=A6=9D=20=EB=B3=B4=EA=B3=A0=EC=84=9C=EC=99=80=20kernel-comp?= =?UTF-8?q?=20=EC=A0=90=EA=B2=80=20=EB=B3=B4=EA=B3=A0=EC=84=9C=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20-=20wasmtime=2044=20->=2048=20(RUSTSEC-2026-0222,?= =?UTF-8?q?=200269),=20anyhow=20=EA=B0=B1=EC=8B=A0=20(RUSTSEC-2026-0190)?= =?UTF-8?q?=20-=20toolchain=201.93=20->=201.95=20(wasmtime=2048=20MSRV),?= =?UTF-8?q?=20CI=20Docker=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20=EB=8F=99?= =?UTF-8?q?=EA=B8=B0=ED=99=94=20-=20Cargo.lock=20=EC=9D=84=20CI=20?= =?UTF-8?q?=ED=95=80=20elib-k0-nt(1.0.0)=20=EA=B8=B0=EC=A4=80=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EC=9E=AC=EC=A0=95=ED=95=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Claude Fable 5.1 --- .github/docker/Dockerfile.ci | 2 +- .github/workflows/ci.yml | 2 - AIR-GAPPED.md | 38 +- CLAUDE.md | 44 +++ CONTRIBUTING.md | 22 +- Cargo.lock | 244 +++++++------ Cargo.toml | 2 +- INTRODUCTION.md | 2 +- KERNEL-COMPAT.md | 187 ++++++++++ crates/lumen-channel/src/encrypted.rs | 2 +- crates/lumen-core/Cargo.toml | 2 + crates/lumen-core/src/crypto.rs | 2 +- crates/lumen-core/src/hash.rs | 2 +- crates/lumen-core/src/rng.rs | 2 +- crates/lumen-core/tests/elib_wire_compat.rs | 187 ++++++++++ kernel-comp.md | 366 ++++++++++++++++++++ lumen-demo-screenshot.png | Bin 0 -> 108033 bytes lumen-demo.gif | Bin 0 -> 1414251 bytes rust-toolchain.toml | 2 +- scripts/vendor.sh | 11 +- 20 files changed, 968 insertions(+), 151 deletions(-) create mode 100644 CLAUDE.md create mode 100644 KERNEL-COMPAT.md create mode 100644 crates/lumen-core/tests/elib_wire_compat.rs create mode 100644 kernel-comp.md create mode 100644 lumen-demo-screenshot.png create mode 100644 lumen-demo.gif diff --git a/.github/docker/Dockerfile.ci b/.github/docker/Dockerfile.ci index 4e63593..35ebc67 100644 --- a/.github/docker/Dockerfile.ci +++ b/.github/docker/Dockerfile.ci @@ -9,7 +9,7 @@ # 베이스: Debian Bookworm 위의 Rust stable 고정. # `rust-toolchain.toml` 의 채널과 일치시켜 로컬-CI 동작을 동기화합니다. -FROM rust:1.93-bookworm +FROM rust:1.95-bookworm # 워크스페이스 빌드에 필요한 시스템 패키지. # - cmake / build-essential / pkg-config / libssl-dev : diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6ecdbd8..340151a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -108,8 +108,6 @@ jobs: steps: - uses: actions/checkout@v4 - uses: ./.github/actions/checkout-deps - - name: install protoc - run: brew install protobuf - uses: Swatinem/rust-cache@v2 - name: cargo build run: cargo build --workspace --all-targets --locked diff --git a/AIR-GAPPED.md b/AIR-GAPPED.md index 083640b..b9be6da 100644 --- a/AIR-GAPPED.md +++ b/AIR-GAPPED.md @@ -2,7 +2,7 @@ > **목적**: Lumen 을 외부 네트워크가 차단된 고보안 구역(High-Side)에서 > 빌드/테스트/배포할 수 있도록 의존성을 사전 벤더링하고 오프라인 -> 4-게이트를 통과시키는 절차를 정의합니다. iso-light-k0 마이크로커널의 +> 4-게이트를 통과시키는 절차를 정의합니다. K0 마이크로커널의 > Ring 3 사용자공간 컴포넌트로 통합되는 시점부터 본 가이드의 절차가 > 빌드 시스템에 강제됩니다. @@ -16,7 +16,7 @@ |-------------|------|------| | `blake3`, `ed25519-dalek`, `subtle`, `rand`, `rand_core`, `aes-gcm`, `x25519-dalek` | 외부 crates.io 의존, FIPS 미인증 | `elib-k0-nt/*` (in-house, 인증 경로) | | `halo2_proofs` + `ff` + `pasta_curves` | 타원곡선 의존성 ~30 크레이트, MockProver 는 ZK 보장 없음 | mock prover 가 BLAKE3 commitment 만 사용. succinct ZK 는 SP1/RISC Zero 마일스톤에서 재검토. | -| `candle-transformers` + `tokenizers` | HuggingFace Hub 다운로드 코드 포함, onig C 빌드 의존 | `llama-cpp` 백엔드 (v0.5) 또는 호스트 TEE 의 `ChannelEngine` forward 경로 | +| `candle-core` / `candle-onnx` / `candle-transformers` / `tokenizers` | HuggingFace Hub 다운로드 코드 포함, `gemm`/`pulp`/`paste` 등 무거운 native 의존 | 도구 라우팅 토크나이저는 자체 `lumen_inference::BpeTokenizer` 사용. 전체 LLM 생성은 `llama-cpp` 백엔드 (v0.5) 또는 호스트 TEE 의 `ChannelEngine` forward 경로 | 자세한 사유는 [`kernel-comp.md`](kernel-comp.md) 참고. @@ -32,6 +32,10 @@ ./scripts/vendor.sh --all # crypto-channel + llama-cpp 까지 포함 ``` +> **참고:** v0.4 이후 `candle` feature 가 제거되어 `protoc` / `cmake` 가 +> 더 이상 필수 시스템 바이너리가 아닙니다. `cmake` 는 `llama-cpp` feature +> 활성화 시에만 필요합니다. + 스크립트가 수행하는 작업: 1. `cargo vendor` 로 `Cargo.lock` 의 모든 크레이트 소스를 `vendor/` 에 복제 @@ -54,12 +58,12 @@ | 바이너리 | 활성화 조건 | 용도 | |----------|-------------|------| -| `rustc` 1.85.0 + cargo | 항상 (`rust-toolchain.toml`) | Rust 컴파일러 | -| `protoc` (Protocol Buffers) | `lumen-inference/candle` feature | `candle-onnx` 의 build script 가 빌드 시점에 호출 | +| `rustc` 1.95.0 + cargo | 항상 (`rust-toolchain.toml`) | Rust 컴파일러 | | `cmake` ≥ 3.20 | `lumen-inference/llama-cpp` feature (v0.5) | llama.cpp 네이티브 라이브러리 빌드 | -폐쇄망 반입 시 권장: `~/.cargo/`, `protoc` 바이너리, `cmake`, 그리고 본 -저장소(벤더링 완료 상태)를 함께 묶어 `tar.gz` 단일 번들로 전송. +폐쇄망 반입 시 권장: `~/.cargo/`, `cmake` 바이너리(`llama-cpp` feature +사용 시), 그리고 본 저장소(벤더링 완료 상태)를 함께 묶어 `tar.gz` 단일 +번들로 전송. ```bash # 온라인 측에서: @@ -95,24 +99,21 @@ cargo fmt --all -- --check # 보안 채널 (X25519 + AES-256-GCM, elib-k0-nt 백엔드) cargo test --offline --workspace --features lumen-channel/crypto-channel -# llama.cpp 추론 백엔드 (v0.5 스텁) +# llama.cpp 추론 백엔드 (v0.5 스텁, cmake 시스템 바이너리 필요) cargo test --offline --workspace --features lumen-inference/llama-cpp - -# ONNX 라우팅 추론 (protoc 시스템 바이너리 필요) -cargo build --offline --workspace --features lumen-inference/candle ``` --- -## 5. iso-light-k0 마이크로커널 통합 메모 +## 5. K0 마이크로커널 통합 메모 -Lumen 은 iso-light-k0 의 Ring 3 사용자공간 컴포넌트로 동작합니다. +Lumen 은 K0 의 Ring 3 사용자공간 컴포넌트로 동작합니다. 보안 경계는 다음과 같습니다. ``` ┌─────────────────────────── High-Side (Air-Gapped) ───────────────────────────┐ │ │ -│ Ring 0 ┃ iso-light-k0 마이크로커널 (PSK 기반 mutual auth, TLS-PSK-PQ) │ +│ Ring 0 ┃ K0 마이크로커널 (PSK 기반 mutual auth, TLS-PSK-PQ) │ │ ┃ - elib-k0-nt 암호 모듈 (FIPS 인증 경로) │ │ ─────────┃───────────────────────────────────────────────────────────────── │ │ Ring 3 ┃ Lumen 에이전트 프레임워크 (본 저장소) │ @@ -126,7 +127,7 @@ Lumen 은 iso-light-k0 의 Ring 3 사용자공간 컴포넌트로 동작합니 **제약 사항:** - **Ring 0 에서 Cranelift JIT 실행 불가** — 따라서 `lumen-sandbox` 는 반드시 Ring 3 사용자공간 프로세스로 실행. 커널-에이전트 간 통신은 - iso-light-k0 의 syscall 또는 PSK 기반 IPC 채널 사용. + K0 의 syscall 또는 PSK 기반 IPC 채널 사용. - **모든 외부 fetch 금지** — `cargo build` 의 네트워크 시도조차 `net.offline = true` 로 차단. crates.io 미러 운용 금지. - **모델 가중치 외부 반입** — Safetensors / ONNX / GGUF 파일은 @@ -142,7 +143,7 @@ Lumen 은 iso-light-k0 의 Ring 3 사용자공간 컴포넌트로 동작합니 | `vendor/` 무결성 | 빌드 전 | `./scripts/vendor.sh --check` | | 4-게이트 | 매 변경 | 위 §4 참고 | | `Cargo.lock` 변동 | PR 검토 | `git diff Cargo.lock` | -| 시스템 바이너리 버전 | 분기 | `rustc --version`, `protoc --version` | +| 시스템 바이너리 버전 | 분기 | `rustc --version`, `cmake --version` (`llama-cpp` 사용 시) | --- @@ -153,11 +154,6 @@ Lumen 은 iso-light-k0 의 Ring 3 사용자공간 컴포넌트로 동작합니 → `.cargo/config.toml` 의 `vendored-sources` 가 활성화되지 않았거나 `vendor/` 가 누락. `./scripts/vendor.sh` 재실행. -### `error: Could not find protoc` - -→ `lumen-inference/candle` feature 사용 시 발생. 폐쇄망에 `protoc` 바이너리 - 사전 배치 필요. `PROTOC=/path/to/protoc cargo build ...` 로 명시 가능. - ### `error: vendor/ 디렉토리가 없습니다` → `./scripts/vendor.sh --check` 를 vendor 디렉토리 없이 실행한 경우. @@ -174,4 +170,4 @@ Lumen 은 iso-light-k0 의 Ring 3 사용자공간 컴포넌트로 동작합니 - [`kernel-comp.md`](kernel-comp.md) — 의존성 점검 보고서 - [`CLAUDE.md`](CLAUDE.md) — 프로젝트 헌장 (4-게이트, 한국어 docstring 등) -- [iso-light-k0 AIR-GAP.md](../iso-light-k0/AIR-GAP.md) — 커널 측 폐쇄망 프로토콜 +- [K0 AIR-GAP.md](../K0/AIR-GAP.md) — 커널 측 폐쇄망 프로토콜 diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..2ed56d2 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,44 @@ +# Lumen 프로젝트 목표 + +제로 트러스트(Zero-Trust) 및 폐쇄(Air-Gapped) 환경을 위한 고보안, 검증 가능한 Rust 기반 AI 에이전트 프레임워크. 권한 통제(WASM 샌드박스)와 결과 검증(zkML)을 결합하여, 국가기관 수준의 엄격한 보안 규격을 충족하는 안전한 자율형 AI 구동을 목표. + +**AI 및 보안 오픈소스 생태계 기여를 위한 프로젝트.** + +구현 필요 기능 다음과 같음: + +1. 하이브리드 zkML 파이프라인 + - 선택적 ZK 증명: 연산 비용이 높은 LLM 전체 텍스트 생성 대신, 에이전트의 '도구 선택(Tool-use routing)' 및 '출력 필터링/정책 준수' 로직에만 ezkl 또는 ZKTorch를 적용하여 ZK Proof 생성. + - 자동화 및 검증: CI/CD 파이프라인에서 Proof를 자동 생성하고, 온체인(Mina/EVM) 또는 오프체인 검증기(Verifier)에 배포 및 확인하는 모듈. +2. 권한 분리형 Host-WASM 샌드박스 + - WASM 격리 (Agent Logic): wasmtime과 Rust의 소유권 모델을 활용해 에이전트의 도구 실행 및 통신 로직을 완벽히 격리. 파일, 네트워크, 시스템 환경 접근은 명시적인 Capability 기반으로만 최소한으로 허용. + - Host TEE 실행 (LLM Inference): 하드웨어 가속(GPU)을 온전히 활용하기 위해 무거운 모델 추론은 호스트의 신뢰 실행 환경(TEE) 내부에서 실행하고, WASM 샌드박스와는 격리된 보안 채널(Secure Channel)로만 통신. +3. 결정론적(Deterministic) 제어 모듈 + - 상태 격리: 멀티 에이전트 오케스트레이션 시 메모리 공유 없이 tokio 기반 비동기 처리로 상태 전이의 안정성 확보. + - 연산 통제: ZK 증명의 신뢰성을 보장하기 위해 부동소수점 연산의 하드웨어 의존성을 배제하는 모델 양자화(Quantization) 및 고정소수점(Fixed-point) 연산 파이프라인 구축. +4. 고속 보안 방어 및 출처 검증 엔진 + - 실시간 위협 탐지: Rust의 성능을 살려 지연 시간(Latency)을 최소화한 프롬프트 인젝션 및 제일브레이크 방어/필터링 모듈 탑재. + - 모델 Provenance (공급망 보안): ONNX, Safetensors 모델 로드 시 파일 해시 및 서명을 즉각 검증하고, SBOM을 강제 생성하여 승인되지 않은 모델 가중치 변조를 원천 차단. + +# 구현에 앞서 + +모든 설계는 보안성 우선. 단, 연산 비용 (작업 속도) 우선적 최적화 필요. + +Docstring 한국어로 작성. + +마일스톤 `v1.0`(정부 또는 규제 환경에서 production 배포, [FIPS 140-3 compliance audit](https://csrc.nist.gov/pubs/fips/140-3/final), [Kani](https://www.in-com.com/ko/blog/the-rust-developers-toolbox-best-static-code-analysis-tools/#Kani) 또는 [Prusti](https://github.com/viperproject/prusti-dev) 등을 활용한 일부 모듈의 형식 검증, 외부 보안 audit 1회 통과)은 당분간 진행 X. + +# 기능 수정 또는 추가 시 + +`Cargo.toml`이 변경된 경우 `.lock` 파일 갱신할 것. + +프로젝트는 항상 다음 네 개의 명령어를 모두 통과해야 함. + +```bash +$ cargo build --workspace --all-targets +$ cargo test --workspace +$ cargo clippy --workspace --all-targets -- -D warnings +$ cargo fmt --all -- --check +$ cargo deny check # Github CI/CD(action) 에서도 통과해야 함. +``` + +`Cargo.lock` 파일도 공개됨에 따라 동기화 여부(수정이 필요한지 등) 잘 파악. \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ea7cfa2..98128e0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,13 +1,15 @@ # 기여 가이드라인 -이 프로젝트는 **보안 우선**이므로 PR은 Team Quant의 다른 프로젝트들과 동일하게 비교적 엄격한 기준을 따릅니다. 새로운 의존성은 정당화가 필요하여 이유와 audit 결과를 PR description에 명시해주셔야 하며, 가능하면 `default-features = false` 로 추가하고 필요한 feature만 활성화해주세요. `unsafe` 사용은 `lumen-sandbox` 만 허용되며 다른 곳에서는 `#![forbid(unsafe_code)]`가 강제됩니다. `lumen-sandbox`의 `unsafe`는 wasmtime FFI가 불가피하기 때문이고, 모든 `unsafe` 블록에 영문 `// SAFETY:` 주석이 필수입니다! +이 프로젝트는 **보안 우선**이므로 PR은 Team Quant의 다른 프로젝트들과 동일하게 비교적 엄격한 기준을 따릅니다. 새로운 의존성은 정당화가 필요하여 이유와 audit 결과를 PR description에 명시해주셔야 하며, 가능하면 `default-features = false` 로 추가하고 필요한 feature만 활성화해주세요. `unsafe` 사용은 `lumen-sandbox` 만 허용되며 다른 곳에서는 `#![forbid(unsafe_code)]`가 강제됩니다. `lumen-sandbox`의 `unsafe`는 wasmtime FFI가 불가피하기 때문이고, 모든 `unsafe` 블록에 영문 `// SAFETY:` 주석이 필수입니다. -모든 PR 은 다음 네 가지 게이트를 통과해야 합니다. +모든 PR은 다음 네 가지 게이트를 통과해야 합니다. -- `cargo build --workspace --all-targets` -- `cargo test --workspace` -- `cargo clippy --workspace --all-targets -- -D warnings` -- `cargo fmt --all -- --check` +```bash +$ cargo build --workspace --all-targets +$ cargo test --workspace +$ cargo clippy --workspace --all-targets -- -D warnings +$ cargo fmt --all -- --check +``` 새로운 기능은 정확성과 보안 테스트를 동반해야 하며 적대적 입력 테스트가 포함되어야 합니다. 예를 들어, ONNX 디코더 PR에는 다음 부정적 테스트(negative-test)가 반드시 있어야 합니다. @@ -15,12 +17,8 @@ - deprecated group - oversized length -**결정성을 깨는 변경은 명시적 정당화가 필요**하여 `f32` 사용, `HashMap` 사용, 시스템 시각 의존 등은 PR description에 명시되고 결정론 경로 영향이 없음이 증명되어야 합니다. 보안 영향이 있는 PR은 위협 모델 업데이트를 동반하여 새로운 공격면을 열거나 닫는 변경이면 위 *위협 모델* 절을 함께 갱신해야 하며, 마지막으로 취약점 보고는 비공개로 **GitHub issue 가 아닌 maintainer 이메일로 직접 보고 (책임감 있는 공개)** 하기를 요청합니다. - -# 토의점 - -저희는 로드맵 마일스톤의 과정에서 암호학적 기능 제공자로 기본 [ELIB-K0-NT](https://github.com/Quant-Off/elib-k0-nt) 라이브러리 설정 후, 모듈식 또는 플래그를 통한 암호학 기능 추가(조립) 또는 변경하는 의견에 대해 어떻게 생각하시나요? ELIB-K0-NT는 암호학적 인증이 몇 부분 필요한 점이 있지만, 상수-시간 또는 소거 부문에선 확실함을 보이기도 해서 계속 고민 중에 있습니다. +**결정성을 깨는 변경은 명시적 정당화가 필요**하여 `f32` 사용, `HashMap` 사용, 시스템 시각 의존 등은 PR description에 명시되고 **결정론 경로 영향이 없음이 증명되어야 합니다.** 보안 영향이 있는 PR은 위협 모델 업데이트를 동반하여 새로운 공격면을 열거나 닫는 변경이면 위 *위협 모델* 절을 함께 갱신해야 하며, 마지막으로 취약점 보고는 비공개로 **GitHub issue 가 아닌 maintainer 이메일로 직접 보고 (책임감 있는 공개)** 하기를 요청합니다. # 라이선스 -이 프로젝트는 Apache License 2.0 OR MIT License 듀얼 라이선스이며 사용자는 둘 중 어느 쪽이든 선택할 수 있습니다. 자세한 내용은 [LICENSE-APACHE](LICENSE-APACHE) 와 [LICENSE-MIT](LICENSE-MIT) 를 참고하세요. 이 라이선스 선택은 Rust 생태계의 표준 관행을 따른 것이며 상업·연구·정부 사용 모두 명시적으로 허용합니다 - 보안 인프라가 광범위하게 채택되려면 라이선스가 장벽이 되어서는 안 된다는 판단입니다. \ No newline at end of file +이 프로젝트는 Apache License 2.0 OR MIT License 듀얼 라이선스이며 사용자는 둘 중 어느 쪽이든 선택할 수 있습니다. 자세한 내용은 [LICENSE-APACHE](LICENSE-APACHE) 와 [LICENSE-MIT](LICENSE-MIT)를 참고하세요. 이 라이선스 선택은 Rust 생태계의 표준 관행을 따른 것이며 상업·연구·정부 사용 모두 명시적으로 허용합니다. 이는 보안 인프라가 광범위하게 채택되려면 라이선스가 장벽이 되어서는 안 된다는 판단입니다. \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 8b80a1e..99e824d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -86,9 +86,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.102" +version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" [[package]] name = "arbitrary" @@ -232,9 +232,9 @@ version = "1.0.0" [[package]] name = "cpp_demangle" -version = "0.4.5" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2bb79cb74d735044c972aae58ed0aaa9a837e85b01106a54c39e42e97f62253" +checksum = "0667304c32ea56cb4cd6d2d7c0cfe9a2f8041229db8c033af7f8d69492429def" dependencies = [ "cfg-if", ] @@ -250,27 +250,27 @@ dependencies = [ [[package]] name = "cranelift-assembler-x64" -version = "0.131.1" +version = "0.135.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8628cc4ba7f88a9205a7ee42327697abc61195a1e3d92cfae172d6a946e722e" +checksum = "42c0ca95f115597232c3c5d7286bf847d49332bee5934749f40808b7fe0c6312" dependencies = [ "cranelift-assembler-x64-meta", ] [[package]] name = "cranelift-assembler-x64-meta" -version = "0.131.1" +version = "0.135.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d582754487e6c9a065a91c42ccf1bdd8d5977af33468dac5ae9bec0ce88acb3e" +checksum = "fdd7d59ef8a52c82ea2ac2ca96aee3c52644845440f70611b573bc20ce37e6a2" dependencies = [ "cranelift-srcgen", ] [[package]] name = "cranelift-bforest" -version = "0.131.1" +version = "0.135.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb59c81ace12ee7c33074db7903d4d75d1f40b28cd3e8e6f491de57b29129eb9" +checksum = "547433a3f4204f0ed0f5a5e3ffaf086a0c005fd0efdf040098083f38572e8a49" dependencies = [ "cranelift-entity", "wasmtime-internal-core", @@ -278,9 +278,9 @@ dependencies = [ [[package]] name = "cranelift-bitset" -version = "0.131.1" +version = "0.135.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f25c06993a681be9cf3140798a3d4ac5bec955e7444416a2fdc87fda8567285d" +checksum = "61ca4f30f5f2eb3837b6e73664d9c0c9a42c4c0dce05f0027f2f2af54c1b20d7" dependencies = [ "serde", "serde_derive", @@ -289,9 +289,9 @@ dependencies = [ [[package]] name = "cranelift-codegen" -version = "0.131.1" +version = "0.135.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b61f95c5a211918f5d336254a61a488b36a5818de47a868e8c4658dce9cccc" +checksum = "effcb11ccea65cfb2b8dd4f53b92c6449ad37745504bae036bffda597a5cfa48" dependencies = [ "bumpalo", "cranelift-assembler-x64", @@ -303,13 +303,16 @@ dependencies = [ "cranelift-entity", "cranelift-isle", "gimli", - "hashbrown 0.16.1", + "hashbrown 0.17.0", "libm", "log", + "postcard", "pulley-interpreter", "regalloc2", "rustc-hash", "serde", + "serde_derive", + "sha2 0.10.9", "smallvec", "target-lexicon", "wasmtime-internal-core", @@ -317,9 +320,9 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.131.1" +version = "0.135.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b85aa822fce72080d041d7c2cf7c3f5c6ecdea7afae68379ba4ef85269c4fa5" +checksum = "2cd5b4e429e24f7fd0bfe15d653ec5841fc1831ef68521b0d30182ef0d48bd01" dependencies = [ "cranelift-assembler-x64-meta", "cranelift-codegen-shared", @@ -330,24 +333,24 @@ dependencies = [ [[package]] name = "cranelift-codegen-shared" -version = "0.131.1" +version = "0.135.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "833eb9fc89326cd072cc19e96892f09b5692c0dfe17cd4da2858ba30c2cd85c0" +checksum = "a8aefe7ed05aa9a831a4696f55e020a6c93998325a09c642863f0be7845fe3a8" [[package]] name = "cranelift-control" -version = "0.131.1" +version = "0.135.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d005320f487e6e8a3edcc7f2fd4f43fcc9946d1013bf206ea649789ac1617fc" +checksum = "b3ceaa06b6ece027bb001093bf0c6984a96281e061fd40a99c60bae0ec57171d" dependencies = [ "arbitrary", ] [[package]] name = "cranelift-entity" -version = "0.131.1" +version = "0.135.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e62ef34c6e720f347a79ece043e8584e242d168911da640bac654a33a6aaaf5" +checksum = "bc2c3088c6be94765abea42eccff7ac2b6519488e66bb5159febabcf539afd6e" dependencies = [ "cranelift-bitset", "serde", @@ -357,11 +360,12 @@ dependencies = [ [[package]] name = "cranelift-frontend" -version = "0.131.1" +version = "0.135.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfa2ad00399dd47e7e7e33cb1dc23b0e39ed9dcd01e8f026fc37af91655031b8" +checksum = "0e2c4a0a90aedfa88408f33e65eda7b1f73de0af20ebec516c004b3a1cdc602b" dependencies = [ "cranelift-codegen", + "hashbrown 0.17.0", "log", "smallvec", "target-lexicon", @@ -369,15 +373,15 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.131.1" +version = "0.135.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02c51975ed217b4e8e5a7fd11e9ec83a96104bdff311dddcb505d1d8a9fd7fc6" +checksum = "bcb1cc85ccb60cfc53c3d55e23196fef28ae78fbcebe4e1ff3ff866a3c93d61c" [[package]] name = "cranelift-native" -version = "0.131.1" +version = "0.135.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9b1889e00da9729d8f8525f3c12998ded86ea709058ff844ebe00b97548de0e" +checksum = "5a0a8f5d008c1f5b78426e83028f7517295f6819b5cebe8193949e1bb66cc01a" dependencies = [ "cranelift-codegen", "libc", @@ -386,9 +390,9 @@ dependencies = [ [[package]] name = "cranelift-srcgen" -version = "0.131.1" +version = "0.135.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5a8f82fd5124f009f72167e60139245cd3b56cfd4b53050f22110c48c5f4da1" +checksum = "56caa8a7f1e0f2c61400996cc1567fb06dd417c49d5e673131a149cb9628625f" [[package]] name = "crc32fast" @@ -656,6 +660,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" dependencies = [ "foldhash 0.2.0", + "serde", + "serde_core", ] [[package]] @@ -843,6 +849,7 @@ dependencies = [ name = "lumen-core" version = "0.4.1" dependencies = [ + "aes", "blake", "constant-time", "ed25519", @@ -852,6 +859,7 @@ dependencies = [ "serde", "serde_json", "thiserror", + "x25519", "zeroize", ] @@ -984,12 +992,9 @@ dependencies = [ [[package]] name = "mach2" -version = "0.4.3" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44" -dependencies = [ - "libc", -] +checksum = "dae608c151f68243f2b000364e1f7b186d9c29845f7d2d85bd31b9ad77ad552b" [[package]] name = "matchers" @@ -1110,9 +1115,9 @@ dependencies = [ [[package]] name = "pulley-interpreter" -version = "44.0.1" +version = "48.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9326e3a0093d170582cf64ed9e4cf253b8aac155ec4a294ff62330450bbf094" +checksum = "6e95d890afdd44c1269bdc84e9f043c3a6c02e8bfd1781d64468e62f05880c83" dependencies = [ "cranelift-bitset", "log", @@ -1122,9 +1127,9 @@ dependencies = [ [[package]] name = "pulley-macros" -version = "44.0.1" +version = "48.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00c6433917e3789605b1f4cd2a589f637ff17212344e7fa5ba99544625ba52c7" +checksum = "550c64f4245f013664d187a37ec94b4e99bd43a00980134e0e5fd48896b1d3af" dependencies = [ "proc-macro2", "quote", @@ -1157,15 +1162,16 @@ dependencies = [ [[package]] name = "regalloc2" -version = "0.15.1" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de2c52737737f8609e94f975dee22854a2d5c125772d4b1cf292120f4d45c186" +checksum = "757712e8e61590d6d4f5d563483755538b5aa13467837a3b41cd9832509a7f85" dependencies = [ "allocator-api2", "bumpalo", "hashbrown 0.17.0", "log", "rustc-hash", + "serde", "smallvec", ] @@ -1253,6 +1259,10 @@ name = "semver" version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" +dependencies = [ + "serde", + "serde_core", +] [[package]] name = "serde" @@ -1631,22 +1641,22 @@ dependencies = [ [[package]] name = "wasm-encoder" -version = "0.246.2" +version = "0.248.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61fb705ce81adde29d2a8e99d87995e39a6e927358c91398f374474746070ef7" +checksum = "ac92cf547bc18d27ecc521015c08c353b4f18b84ab388bb6d1b6b682c620d9b6" dependencies = [ "leb128fmt", - "wasmparser 0.246.2", + "wasmparser 0.248.0", ] [[package]] name = "wasm-encoder" -version = "0.248.0" +version = "0.254.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac92cf547bc18d27ecc521015c08c353b4f18b84ab388bb6d1b6b682c620d9b6" +checksum = "09480d646178e5fdd12bb06e812d0af9a3a191dbc9cd697fdc86687beade7393" dependencies = [ "leb128fmt", - "wasmparser 0.248.0", + "wasmparser 0.254.0", ] [[package]] @@ -1661,6 +1671,18 @@ dependencies = [ "wasmparser 0.244.0", ] +[[package]] +name = "wasm-metadata" +version = "0.254.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b01df5f3b4ca7881e843f3bc0fb8a3905d79c68692250dcb8e33e698705ccdb6" +dependencies = [ + "anyhow", + "indexmap", + "wasm-encoder 0.254.0", + "wasmparser 0.254.0", +] + [[package]] name = "wasmparser" version = "0.244.0" @@ -1675,51 +1697,51 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.246.2" +version = "0.248.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71cde4757396defafd25417cfb36aa3161027d06d865b0c24baaae229aac005d" +checksum = "aa4439c5eee9df71ee0c6efb37f63b1fcb1fec38f85f5142c54e7ed05d33091a" dependencies = [ "bitflags", - "hashbrown 0.16.1", "indexmap", "semver", - "serde", ] [[package]] name = "wasmparser" -version = "0.248.0" +version = "0.254.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa4439c5eee9df71ee0c6efb37f63b1fcb1fec38f85f5142c54e7ed05d33091a" +checksum = "d5769a29f799fbab136aaf65b4fe5384cd7d93fe6fc9ba0dcb6c8382a1f16e27" dependencies = [ "bitflags", + "hashbrown 0.17.0", "indexmap", "semver", + "serde", ] [[package]] name = "wasmprinter" -version = "0.246.2" +version = "0.254.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e41f7493ba994b8a779430a4c25ff550fd5a40d291693af43a6ef48688f00e3" +checksum = "64e3ba11e024f504698f87b629b2b66c22a1231758de7607754963f7d198be39" dependencies = [ "anyhow", "termcolor", - "wasmparser 0.246.2", + "wasmparser 0.254.0", ] [[package]] name = "wasmtime" -version = "44.0.1" +version = "48.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "372db8bbad8ec962038101f75ab2c3ffcd18797d7d3ae877a58ab9873cd0c4bd" +checksum = "699c2cb832d70d284b2839ebeb12721ca2ef80aa4a3389d2d2d13acf3e19c821" dependencies = [ "addr2line", "async-trait", "bitflags", "bumpalo", "cc", - "cfg-if", + "futures", "gimli", "libc", "log", @@ -1734,7 +1756,7 @@ dependencies = [ "serde_derive", "smallvec", "target-lexicon", - "wasmparser 0.246.2", + "wasmparser 0.254.0", "wasmtime-environ", "wasmtime-internal-component-macro", "wasmtime-internal-core", @@ -1749,9 +1771,9 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "44.0.1" +version = "48.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e15aa0d1545e48d9b25ca604e9e27b4cd6d5886d30ac5787b57b3a2daf85b57" +checksum = "13f10ef166b4850535bc43c347797364cda5189870be163a617ebe5c0d72f139" dependencies = [ "anyhow", "cpp_demangle", @@ -1759,28 +1781,30 @@ dependencies = [ "cranelift-bitset", "cranelift-entity", "gimli", - "hashbrown 0.16.1", + "hashbrown 0.17.0", "indexmap", "log", "object", "postcard", "rustc-demangle", + "semver", "serde", "serde_derive", "sha2 0.10.9", "smallvec", "target-lexicon", - "wasm-encoder 0.246.2", - "wasmparser 0.246.2", + "wasm-encoder 0.254.0", + "wasmparser 0.254.0", "wasmprinter", + "wasmtime-internal-component-util", "wasmtime-internal-core", ] [[package]] name = "wasmtime-internal-component-macro" -version = "44.0.1" +version = "48.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c136cb0d2d47850d6d04a58157130ac98b0df4c17626cd30b083d26b607b7027" +checksum = "5af067a5d17e17a424f99d31f08e08c5132dcc53a0f031a7be9279719a936b71" dependencies = [ "anyhow", "proc-macro2", @@ -1788,33 +1812,32 @@ dependencies = [ "syn", "wasmtime-internal-component-util", "wasmtime-internal-wit-bindgen", - "wit-parser 0.246.2", + "wit-parser 0.254.0", ] [[package]] name = "wasmtime-internal-component-util" -version = "44.0.1" +version = "48.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49df3d3b4fa2119c6fd161e475b4e21aaefb51d082353b922b433bea37facc65" +checksum = "540b7151342d75c3d596447c136d3862a280600bc6fd10b5dfc7c9e67c2f719f" [[package]] name = "wasmtime-internal-core" -version = "44.0.1" +version = "48.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f2c7fa6523647262bfb4095dbdf4087accefe525813e783f81a0c682f418ce4" +checksum = "8679b612a408274d91d1e0edf6baa36b63cc48d937f84dd1e7fb2fbe16a907ae" dependencies = [ - "hashbrown 0.16.1", + "hashbrown 0.17.0", "libm", "serde", ] [[package]] name = "wasmtime-internal-cranelift" -version = "44.0.1" +version = "48.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98c032f422e39061dfc43f32190c0a3526b04161ec4867f362958f3fe9d1fe29" +checksum = "fc46c460fb62d839ac441ccdf4b8b94bce30842ad4ccefd7744d9e28bf631232" dependencies = [ - "cfg-if", "cranelift-codegen", "cranelift-control", "cranelift-entity", @@ -1828,7 +1851,7 @@ dependencies = [ "smallvec", "target-lexicon", "thiserror", - "wasmparser 0.246.2", + "wasmparser 0.254.0", "wasmtime-environ", "wasmtime-internal-core", "wasmtime-internal-unwinder", @@ -1837,12 +1860,11 @@ dependencies = [ [[package]] name = "wasmtime-internal-fiber" -version = "44.0.1" +version = "48.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8dd76d80adf450cc260ba58f23c28030401930b19149695b1d121f7d621e791" +checksum = "31a94596377490aa56f5c58ebbcc39af49176dd9d4051a78e3fca3c024daf4f6" dependencies = [ "cc", - "cfg-if", "libc", "rustix", "wasmtime-environ", @@ -1852,9 +1874,9 @@ dependencies = [ [[package]] name = "wasmtime-internal-jit-debug" -version = "44.0.1" +version = "48.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab453cc600b28ee5d3f9495aa6d4cb2c81eda40903e9287296b548fba8b2391d" +checksum = "70026f001b46af7552ce89cfe748f0dea59097e7c8c3740998d8019b73d87ee5" dependencies = [ "cc", "wasmtime-internal-versioned-export-macros", @@ -1862,11 +1884,10 @@ dependencies = [ [[package]] name = "wasmtime-internal-jit-icache-coherence" -version = "44.0.1" +version = "48.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a1859e920871515d324fb9757c3e448d6ed1512ca6ccdff14b6e016505d6ada" +checksum = "bf7d8a6fc6d21eb177c38f096636661ca13ae924cccbb6f447c1498ca972ab10" dependencies = [ - "cfg-if", "libc", "wasmtime-internal-core", "windows-sys", @@ -1874,11 +1895,10 @@ dependencies = [ [[package]] name = "wasmtime-internal-unwinder" -version = "44.0.1" +version = "48.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1dfe405bd6adb1386d935a30f16a236bd4ef0d3c383e7cbbab98d063c9d9b73" +checksum = "4994aca882a65d2b06a7fc57a4a149de27b8851738d07ea2e778a21f74234a14" dependencies = [ - "cfg-if", "cranelift-codegen", "log", "object", @@ -1887,9 +1907,9 @@ dependencies = [ [[package]] name = "wasmtime-internal-versioned-export-macros" -version = "44.0.1" +version = "48.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a9b9165fc45d42c81edfe3e9cb458e58720594ad5db6553c4079ea041a4a581" +checksum = "8f325614219c58c9f625b591ac79dbbefc76728720d72a721a6350c872d848e4" dependencies = [ "proc-macro2", "quote", @@ -1898,15 +1918,16 @@ dependencies = [ [[package]] name = "wasmtime-internal-wit-bindgen" -version = "44.0.1" +version = "48.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17c7ced16dc16d2027f9f8d3a503e191dcce0f53fe9218e7990135b31f8f6fdb" +checksum = "4ec33585b420181c41e26ac6153f0d18aa200e6aba9457dff6f8ebba3feedf98" dependencies = [ "anyhow", "bitflags", "heck", "indexmap", - "wit-parser 0.246.2", + "wit-component 0.254.0", + "wit-parser 0.254.0", ] [[package]] @@ -2001,9 +2022,9 @@ dependencies = [ "indexmap", "prettyplease", "syn", - "wasm-metadata", + "wasm-metadata 0.244.0", "wit-bindgen-core", - "wit-component", + "wit-component 0.244.0", ] [[package]] @@ -2035,11 +2056,30 @@ dependencies = [ "serde_derive", "serde_json", "wasm-encoder 0.244.0", - "wasm-metadata", + "wasm-metadata 0.244.0", "wasmparser 0.244.0", "wit-parser 0.244.0", ] +[[package]] +name = "wit-component" +version = "0.254.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0e65bb94c369b3c4741ce3d1d2704b1fec93db7c540df0e521a097e7ceeb5be" +dependencies = [ + "anyhow", + "bitflags", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder 0.254.0", + "wasm-metadata 0.254.0", + "wasmparser 0.254.0", + "wit-parser 0.254.0", +] + [[package]] name = "wit-parser" version = "0.244.0" @@ -2060,12 +2100,12 @@ dependencies = [ [[package]] name = "wit-parser" -version = "0.246.2" +version = "0.254.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd979042b5ff288607ccf3b314145435453f20fc67173195f91062d2289b204d" +checksum = "1655131e4f7d3f0cb141f6eca71315ca40eff0f3d4de7cff0a82bacedd8c89b4" dependencies = [ "anyhow", - "hashbrown 0.16.1", + "hashbrown 0.17.0", "id-arena", "indexmap", "log", @@ -2073,8 +2113,8 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "unicode-xid", - "wasmparser 0.246.2", + "unicode-ident", + "wasmparser 0.254.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 6865fb3..3d7724e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -72,7 +72,7 @@ parking_lot = "0.12" # WASM (sandbox) # v25 -> 최신 line. RUSTSEC 다수 advisory (fd_renumber / wasi:http fields / # 컴포넌트 model flags lift / Winch table.fill / UTF-16 transcoding panic) 패치 포함. -wasmtime = { version = "44", default-features = false, features = ["async", "cranelift", "runtime", "addr2line", "demangle"] } +wasmtime = { version = "48", default-features = false, features = ["async", "cranelift", "runtime", "addr2line", "demangle"] } wat = "1" # Provenance — Hugging Face safetensors 헤더 sniff 용. 단독으로 동작하는 diff --git a/INTRODUCTION.md b/INTRODUCTION.md index 11feb10..0f4c369 100644 --- a/INTRODUCTION.md +++ b/INTRODUCTION.md @@ -34,7 +34,7 @@ Lumen의 모든 설계 결정을 관통하는 원칙은 다음과 같습니다. Lumen은 학술 발표나 폐쇄 솔루션이 아닌 **오픈소스 라이브러리**로 공개되어, 같은 문제를 마주한 사람들이 동일한 보안 기반을 공유할 수 있도록 합니다. [Apache-2.0](LICENSE-APACHE) 또는 [MIT](LICENSE-MIT) 듀얼 라이선스로 상업, 연구, 정부 사용 모두 가능합니다. -오픈소스인 이유는 단순합니다. 보안 인프라는 *감사 가능*해야 하고, 감사 가능하려면 코드가 공개되어 있어야 합니다. 폐쇄형 보안 솔루션의 신뢰성은 그것을 만든 회사에 대한 신뢰로 환원되며, 이는 제로 트러스트 철학과 정면 충돌합니다. 제로 트러스트으ㅢ 핵심 원칙은 "Never Trust, Always Verify"이며, 이는 내부 직원 뿐만 아니라 사용하는 도구와 공급망도 포함되기 때문입니다. +오픈소스인 이유는 단순합니다. 보안 인프라는 *감사 가능*해야 하고, 감사 가능하려면 코드가 공개되어 있어야 합니다. 폐쇄형 보안 솔루션의 신뢰성은 그것을 만든 회사에 대한 신뢰로 환원되며, 이는 제로 트러스트 철학과 정면 충돌합니다. 제로 트러스트의 핵심 원칙은 "Never Trust, Always Verify"이며, 이는 내부 직원 뿐만 아니라 사용하는 도구와 공급망도 포함되기 때문입니다. **Team Quant는 막강한 보안을 이상으로 생각하며, 언제든 오픈소스 생태계의 큰 발전을 위해 기여할겁니다.** diff --git a/KERNEL-COMPAT.md b/KERNEL-COMPAT.md new file mode 100644 index 0000000..91017ca --- /dev/null +++ b/KERNEL-COMPAT.md @@ -0,0 +1,187 @@ +# 폐쇄 커널 호환성 검증 보고서 (K0) + +> **목적**: Lumen 이 폐쇄형(Air-Gapped) `K0` 마이크로커널 환경에서 +> 정상 동작할 수 있는지 기술적으로 엄밀히 검증한 결과를 정리. + +--- + +## 1. 검증 방법론 + +세 단계 검증: + +| 단계 | 산출물 | 통과 기준 | +|------|--------|-----------| +| **(A) 정적 의존성 감사** | Cargo.lock + cargo build --message-format=json 추출 | 금지 크레이트 0건, 네트워크 스택 0건 | +| **(B) 와이어 호환성 회귀 테스트** | `crates/lumen-core/tests/elib_wire_compat.rs` (7 테스트) | lumen 래퍼 ≡ elib-k0-nt 직접 호출 (비트-동일) | +| **(C) 5-게이트 (offline 모드)** | `cargo build/test/clippy/fmt --check/deny check` 모두 `--offline --locked` | 모두 통과 | + +--- + +## 2. (A) 정적 의존성 감사 결과 + +### 2.1 lumen-cli (실제 운영 바이너리) 릴리스 빌드 + +| 항목 | 결과 | +|------|------| +| 워크스페이스 멤버 | 16 크레이트 | +| `lumen-cli` 릴리스 바이너리에 컴파일되는 외부 크레이트 | **102 개** | +| `wasmtime` / `cranelift` / `pulley` 포함 여부 | **❌ 0건** (lumen-sandbox 는 별도 라이브러리) | +| `getrandom` / `rand` / `rand_core` | **❌ 0건** (dev-only, 운영 바이너리에 없음) | +| `tokenizers` | **❌ 0건** | +| `reqwest` / `hyper` / `http` / `rustls` / `openssl` / `native-tls` | **❌ 0건** | +| `mio` / `socket2` (tokio 네트워크 백엔드) | **❌ 0건** (lumen 의 tokio feature 에 `net` 미포함) | +| `Cargo.lock` 의 `git+` source dep | **❌ 0건** (전부 crates.io 레지스트리) | +| `unsafe` 사용 | 13 개 lumen 크레이트가 `#![forbid(unsafe_code)]` 선언; 유일한 예외는 `lumen-sandbox` (wasmtime FFI) | + +### 2.2 lumen-sandbox (별도 옵션 컴포넌트) + +`lumen-sandbox` 는 **다른 어떤 lumen 크레이트도 의존하지 않는 독립 라이브러리**입니다. +즉, `lumen-cli` 기본 운영 바이너리에는 wasmtime 이 포함되지 않습니다. + +`grep -rn "lumen-sandbox" crates --include="Cargo.toml"` → 자기 자신 1건뿐. + +| 항목 | 결과 | +|------|------| +| Cranelift JIT 코드 생성 (W^X 위반 가능) | ✅ 포함 (현재 `cranelift` feature) | +| Pulley 인터프리터 (W^X 안전) | ✅ wasmtime 트리에 동시 존재 | +| 결정 | 운영 환경에 맞춰 `cranelift` 또는 `pulley` 중 선택 가능. 현재 기본은 Cranelift JIT (Ring 3 RWX 페이지 가정). 엄격한 W^X 정책 환경이라면 wasmtime feature 를 `["async","pulley","runtime"]` 으로 전환 필요 | + +### 2.3 런타임 시스템콜 표면 (lumen 운영 코드) + +`grep -rn "use std::fs|std::env|std::process|tokio::net|tokio::process"` 결과: + +| 사용처 | 시스템콜 | 폐쇄 커널 영향 | +|--------|----------|----------------| +| `lumen-core::hash::Blake3Hash::of_file` | `std::fs::File::open` | 모델 파일 검증; K0 가 Ring 3 에 fs 또는 IPC 전달을 제공하면 동작 | +| `lumen-provenance::*` | `std::path::Path` (경로 처리) + `std::fs` (파일 읽기) | 위와 동일 | +| `lumen-cli::cmd::run` 등 | `std::path::Path` | 경로 인자 처리 — 순수 메모리 연산 | +| `lumen-cli::cmd::verifier` | `std::env::var` (`privkey_env`, `fee_payer_env`) | **블록체인 배포용** (low-side 전용); 폐쇄망에서는 미사용 | +| `lumen-onchain::deploy` | `std::process::Command` (`forge` / `zk` 호출) | **블록체인 배포용**, `dry_run` 모드 제공 — 폐쇄망에서 텍스트 명령만 inspect 후 low-side 로 운반하도록 설계됨 | +| `tokio` features | `["rt-multi-thread", "macros", "sync", "time", "io-util", "fs"]` | `net` 미포함; `fs` / 멀티스레드는 Ring 3 ABI 가 제공해야 함 | +| 직접 `TcpStream`/`UdpSocket`/`reqwest`/`hyper` | **❌ 0건** | — | + +--- + +## 3. (B) 와이어 호환성 회귀 테스트 결과 + +`cargo test -p lumen-core --test elib_wire_compat` — **7/7 통과**. + +| 테스트 | 검증 대상 | 결과 | +|--------|-----------|------| +| `blake3_wrapper_byte_identical_to_direct_elib` | `Blake3Hash::of` ≡ `Blake3::new().update().finalize()` (4 입력) | ✅ | +| `blake3_wrapper_byte_identical_for_large_input` | 16 KiB 입력 (cv-스택 머지 경로) | ✅ | +| `blake3_keyed_derive_byte_identical_to_direct_elib` | `lumen_core::blake3_keyed_derive_32` ≡ `Blake3::new_keyed(...).update(...).finalize()` (lumen-channel KDF) | ✅ | +| `ed25519_sign_verify_via_wrapper_matches_direct_elib` | lumen 서명 → elib 검증 / elib 서명 → lumen 검증 양방향 | ✅ | +| `ed25519_signature_is_deterministic` | RFC 8032 결정성 (동일 msg+seed → 동일 64B 서명) | ✅ | +| `x25519_ecdh_produces_matching_shared_secret` | 양 피어 ECDH 32B 공유 비밀 일치 + 32B 와이어 라운드트립 | ✅ | +| `aes256_gcm_encrypts_with_tag_appended_format_used_by_lumen_channel` | `ciphertext \|\| tag` 와이어 포맷 + 결정성 + decrypt 라운드트립 | ✅ | + +**의미**: lumen 의 `lumen-core::SigningKey/VerifyingKey/Blake3Hash`, `lumen-channel::EncryptedChannel` 의 KDF/AEAD 출력은 `K0` 의 `elib-k0d-core` 가 elib-k0-nt 를 직접 호출했을 때와 비트 단위로 동일합니다. 즉, **두 프로젝트 사이의 와이어 호환성이 회귀-방지로 보장**됩니다. + +--- + +## 4. (C) 5-게이트 (Offline 모드) 결과 + +`cargo {build,test,clippy} --workspace --locked --offline ...`, `cargo fmt --all -- --check`, `cargo deny check`. + +| 게이트 | 결과 | +|--------|------| +| `cargo build --workspace --all-targets --locked --offline` | ✅ | +| `cargo build --workspace --no-default-features --locked --offline` | ✅ | +| `cargo test --workspace --locked --offline` | ✅ 38 테스트 그룹 (와이어 컴팟 7개 포함) | +| `cargo clippy --workspace --all-targets --offline -- -D warnings` | ✅ | +| `cargo fmt --all -- --check` | ✅ | +| `cargo deny check` | ✅ `advisories ok, bans ok, licenses ok, sources ok` | +| `cargo build --release --target wasm32-unknown-unknown --locked --offline` (echo-agent) | ✅ | + +`vendor-config.toml` 의 `[net] offline = true` 설정으로 외부 fetch 시도가 있으면 즉시 컴파일 실패. + +--- + +## 5. 폐쇄 커널 배포 모델 (검증 결과 요약) + +``` +┌────────────────────── High-Side (Air-Gapped) ───────────────────────┐ +│ │ +│ Ring 0 ┃ K0 마이크로커널 (no_std, x86_64-unknown-none) │ +│ ┃ - elib-k0-nt 암호 모듈 (PSK / TLS-PQ-Hybrid / ML-KEM) │ +│ ┃ - elib-k0d-core IPC 디스패처 (ed25519 sign/verify 등) │ +│ ─────────┃───────────────────────────────────────────────────────── │ +│ Ring 3 ┃ Lumen Ring 3 사용자공간 컴포넌트 (본 저장소) │ +│ ┃ │ +│ ┃ ┌──────────────────────────────────────────────┐ │ +│ ┃ │ lumen-cli + agent + orchestrator + channel + │ │ +│ ┃ │ inference (BPE) + zkml mock + provenance │ │ +│ ┃ │ - wasmtime 없음, 네트워크 스택 없음 │ │ +│ ┃ │ - 같은 elib-k0-nt 와 와이어 호환 (§3) │ │ +│ ┃ └──────────────────────────────────────────────┘ │ +│ ┃ │ +│ ┃ ┌──────────────────────────────────────────────┐ │ +│ ┃ │ lumen-sandbox (옵션, RWX 페이지 필요) │ │ +│ ┃ │ - Cranelift JIT — 강한 W^X 환경에서는 │ │ +│ ┃ │ wasmtime feature 를 pulley 로 전환 │ │ +│ ┃ └──────────────────────────────────────────────┘ │ +│ │ +└──────────────────────────────────────────────────────────────────────┘ +``` + +**K0 가 Ring 3 에 제공해야 하는 ABI 부분집합:** + +| 카테고리 | 필요 항목 | 현재 사용처 | +|----------|-----------|-------------| +| 메모리 | `mmap` (ANONYMOUS, R/W) + `munmap` | std/tokio 일반 할당 | +| 메모리 | `mprotect` 로 RWX (Cranelift JIT) | **lumen-sandbox 한정** — 사용 안 하면 불필요 | +| 동기화 | futex / `pthread_mutex_lock` | parking_lot, tokio sync | +| 스레드 | `clone(CLONE_THREAD)` 또는 동등 | tokio rt-multi-thread | +| 시간 | 단조 시계 (CLOCK_MONOTONIC 또는 동등) | tokio time | +| 파일시스템 | `open/read/close` 또는 IPC 매핑 | 모델 가중치 / SBOM 로드 | +| 표준 입출력 | `write(stderr)` | tracing fmt subscriber | +| 엔트로피 | OS 엔트로피 또는 `RDRAND` 인터페이스 | `lumen_core::rng::OsRng` (`elib_rng::os_entropy`) | + +**K0 가 *제공하지 않아도 되는* 것:** + +- 네트워크 (TCP/UDP/HTTP) — lumen 의 모든 통신은 `lumen-channel::SecureChannel` 을 통해 외부 transport 에 위임됨. 폐쇄망에서는 PSK 기반 IPC 가 transport 로 주입됨. +- 프로세스 spawn — `lumen-onchain` 만 사용하며 폐쇄망에서는 `dry_run=true` 로만 호출. +- 동적 링킹/로딩 — 정적 바이너리. + +--- + +## 6. 검증되지 않은(현재 환경에서 불가능한) 항목 + +이 항목들은 lumen 단독 자동 검증 범위를 벗어나므로 별도 통합 환경에서 확인 필요: + +1. **K0 의 실제 Ring 3 ABI 와의 결합**: 현재 `K0` 자체는 Ring 0 베어메탈 커널 단계까지만 구현되어 있어 Ring 3 사용자공간 프로세스를 띄울 수 없습니다. 결합 검증은 K0 의 `userspace_loader` 마일스톤이 도달한 뒤 가능합니다. +2. **TLS 1.3-PSK-PQ 핸드셰이크와 lumen-channel::EncryptedChannel 의 프로토콜 변환**: 두 프로토콜은 **기본 암호 프리미티브를 공유** (BLAKE3, AES-GCM, ed25519, x25519) 하지만 핸드셰이크 메시지 포맷은 다릅니다. lumen 은 이를 **외부 transport 가 처리** 하는 추상으로 격리해 두었으므로(§5 다이어그램), 실제 결합 시 thin adapter 한 단을 추가하면 됩니다. +3. **Cranelift JIT 의 페이지 보호 동작**: 현재 호스트 (Linux/macOS) 에서는 동작하지만, K0 가 Ring 3 에 W^X 강제 페이지를 부여할 경우 Cranelift 코드 생성이 실패합니다 — Pulley 인터프리터로 전환해야 합니다 (단순 feature 변경; 위 5절 참조). + +--- + +## 7. 결론 + +| 검증 영역 | 결과 | +|-----------|------| +| **암호 와이어 호환성** | ✅ lumen ≡ K0/elib-k0d-core 비트-동일 (회귀 테스트로 영구 보장) | +| **외부 의존성 정리** | ✅ 운영 바이너리에 네트워크 스택·tokenizers·rand_core·candle 없음 | +| **결정성** | ✅ Ed25519 서명, BLAKE3, AES-GCM, mock-prover 모두 결정론적 | +| **빌드 폐쇄성** | ✅ 5-게이트 모두 `--offline --locked` 통과, git source 0건 | +| **공급망 게이트** | ✅ `cargo deny check` 통과 (advisories / bans / licenses / sources 모두 clean) | +| **메모리 안전성** | ✅ 13/16 lumen 크레이트가 `forbid(unsafe_code)`; 예외는 wasmtime FFI 한 곳 | +| **JIT-free 운영 경로** | ✅ `lumen-cli` 기본 바이너리는 wasmtime 0건 | +| **샌드박스 환경 적응** | ⚠️ 강한 W^X 정책 시 wasmtime feature 를 `pulley` 로 전환 필요 (옵션) | + +**Lumen 은 폐쇄 커널 (K0) Ring 3 사용자공간 환경에서 정상 동작할 수 있도록 설계·검증되어 있습니다.** 위의 7개 와이어 호환성 회귀 테스트가 lumen ≡ elib-k0-nt 비트 동일성을 매 빌드마다 강제하며, 외부 네트워크 의존성과 JIT 컴포넌트는 운영 바이너리에서 분리되어 있습니다. + +--- + +## 부록 A. 회귀 테스트 실행 명령 + +```bash +cargo test -p lumen-core --test elib_wire_compat --offline +# 7 passed; 0 failed +``` + +## 부록 B. 참고 문서 + +- [`AIR-GAPPED.md`](AIR-GAPPED.md) — 폐쇄망 빌드 가이드 +- [`kernel-comp.md`](kernel-comp.md) — 의존성 점검 보고서 +- [`../K0/AIR-GAP.md`](../K0/AIR-GAP.md) — 커널 측 폐쇄망 프로토콜 명세 diff --git a/crates/lumen-channel/src/encrypted.rs b/crates/lumen-channel/src/encrypted.rs index 4eebb2f..1f5e6e9 100644 --- a/crates/lumen-channel/src/encrypted.rs +++ b/crates/lumen-channel/src/encrypted.rs @@ -25,7 +25,7 @@ //! **기밀성** 은 없습니다. 이 모듈은 동일한 ed25519 핀을 재사용해 KEX 를 //! 인증하면서 기밀성을 추가합니다. //! -//! 폐쇄형(Air-Gapped) iso-light-k0 마이크로커널 환경 호환을 위해 모든 +//! 폐쇄형(Air-Gapped) K0 마이크로커널 환경 호환을 위해 모든 //! 암호 프리미티브는 `elib-k0-nt` 모듈을 사용합니다 - AES-GCM 은 //! `elib-k0-nt/aes::AES256GCM`, ECDH 는 `elib-k0-nt/x25519`, KDF 는 //! `lumen_core::hash::blake3_keyed_derive_32` (BLAKE3 keyed 모드). diff --git a/crates/lumen-core/Cargo.toml b/crates/lumen-core/Cargo.toml index cdc266c..bb08e55 100644 --- a/crates/lumen-core/Cargo.toml +++ b/crates/lumen-core/Cargo.toml @@ -26,3 +26,5 @@ postcard.workspace = true [dev-dependencies] serde_json = { workspace = true } +elib-aes.workspace = true +elib-x25519.workspace = true diff --git a/crates/lumen-core/src/crypto.rs b/crates/lumen-core/src/crypto.rs index b17c5d6..2feb53b 100644 --- a/crates/lumen-core/src/crypto.rs +++ b/crates/lumen-core/src/crypto.rs @@ -4,7 +4,7 @@ //! 유일한 크레이트가 되어야 합니다. Capability 토큰과 provenance 서명 //! 모두 이 타입들을 거칩니다. //! -//! 폐쇄형(Air-Gapped) iso-light-k0 환경 호환을 위해 외부 `ed25519-dalek` +//! 폐쇄형(Air-Gapped) K0 환경 호환을 위해 외부 `ed25519-dalek` //! 크레이트는 모두 elib-k0-nt 모듈로 교체되었습니다. use std::fmt; diff --git a/crates/lumen-core/src/hash.rs b/crates/lumen-core/src/hash.rs index 6b35d10..f19c37d 100644 --- a/crates/lumen-core/src/hash.rs +++ b/crates/lumen-core/src/hash.rs @@ -1,6 +1,6 @@ //! Lumen 전체에서 사용되는 BLAKE3 기반 해시 프리미티브. //! -//! 폐쇄형(Air-Gapped) iso-light-k0 환경 호환을 위해 구현체는 +//! 폐쇄형(Air-Gapped) K0 환경 호환을 위해 구현체는 //! `elib-k0-nt/blake` 의 [`Blake3`] 를 사용합니다. 외부 `blake3` 크레이트 //! 의존을 제거합니다. diff --git a/crates/lumen-core/src/rng.rs b/crates/lumen-core/src/rng.rs index 1137f33..0d4814d 100644 --- a/crates/lumen-core/src/rng.rs +++ b/crates/lumen-core/src/rng.rs @@ -1,6 +1,6 @@ //! Lumen의 RNG 추상화 모듈입니다. //! -//! 폐쇄형(Air-Gapped) iso-light-k0 마이크로커널 환경 호환을 위해 외부 +//! 폐쇄형(Air-Gapped) K0 마이크로커널 환경 호환을 위해 외부 //! `rand` / `rand_core` 크레이트 대신 `elib-k0-nt/rng` 의 OS 엔트로피 //! 수집과 NIST SP 800-90A Hash_DRBG 를 그대로 노출하는 얇은 래퍼입니다. //! diff --git a/crates/lumen-core/tests/elib_wire_compat.rs b/crates/lumen-core/tests/elib_wire_compat.rs new file mode 100644 index 0000000..dc4923d --- /dev/null +++ b/crates/lumen-core/tests/elib_wire_compat.rs @@ -0,0 +1,187 @@ +//! 폐쇄 커널(K0) 환경 호환성 회귀 테스트. +//! +//! Lumen 의 `lumen-core` 래퍼가 `elib-k0-nt` 의 모듈을 *직접* 호출했을 때와 +//! **비트-동일한 출력** 을 산출함을 보증합니다. K0 의 elib-k0d-core +//! 디스패처는 elib-k0-nt 를 직접 호출하므로, 본 테스트가 통과하면 lumen 이 +//! 폐쇄망 피어와 와이어 호환됩니다. +//! +//! # 검증 범위 +//! - BLAKE3: `Blake3Hash::of` ≡ 직접 호출 +//! - BLAKE3 keyed KDF: `blake3_keyed_derive_32` ≡ 직접 호출 +//! - Ed25519: `SigningKey::sign` ≡ `elib_ed25519::sign` +//! - Ed25519: `VerifyingKey::verify` ≡ `elib_ed25519::verify` +//! - x25519 ECDH: 양방향 공유 비밀 일치 +//! - 결정성: 동일 입력 → 동일 출력 (RNG 가 끼지 않은 경로) + +use elib_blake::Blake3; +use elib_ed25519::{ + self as ed25519, PublicKey as RawPublicKey, SecretKey as RawSecretKey, + Signature as RawSignature, +}; +use lumen_core::hash::{blake3_keyed_derive_32, Blake3Hash}; +use lumen_core::{SigningKey, VerifyingKey}; + +fn collect_finalize(input: &[u8]) -> [u8; 32] { + let mut h = Blake3::new(); + h.update(input); + let buf = h.finalize().expect("finalize"); + let mut out = [0u8; 32]; + out.copy_from_slice(buf.as_slice()); + out +} + +#[test] +fn blake3_wrapper_byte_identical_to_direct_elib() { + let inputs: &[&[u8]] = &[b"", b"a", b"hello world", b"lumen.air-gap.kernel.compat.v1"]; + for input in inputs { + let lumen = Blake3Hash::of(input); + let direct = collect_finalize(input); + assert_eq!( + lumen.as_bytes(), + &direct, + "BLAKE3 wrapper must match direct elib-blake call (input len={})", + input.len() + ); + } +} + +#[test] +fn blake3_wrapper_byte_identical_for_large_input() { + // 청크 경계(>1 KiB) 와 cv-스택 머지가 모두 일어나는 크기. + let big = vec![0xA5u8; 16 * 1024]; + let lumen = Blake3Hash::of(&big); + let direct = collect_finalize(&big); + assert_eq!(lumen.as_bytes(), &direct); +} + +#[test] +fn blake3_keyed_derive_byte_identical_to_direct_elib() { + // lumen-channel 의 KDF 가 폐쇄망 피어의 KDF 와 비트-동일함을 회귀 보장. + let key = [0x11u8; 32]; + let label = b"lumen.encrypted.k-i2r.v1"; + let epoch_le = 42u64.to_le_bytes(); + + let via_wrapper = blake3_keyed_derive_32(&key, label, &epoch_le); + + let mut h = Blake3::new_keyed(&key); + h.update(label); + h.update(&epoch_le); + let buf = h.finalize().expect("finalize"); + let mut direct = [0u8; 32]; + direct.copy_from_slice(buf.as_slice()); + + assert_eq!(via_wrapper, direct); +} + +#[test] +fn ed25519_sign_verify_via_wrapper_matches_direct_elib() { + // 와이어로 운반되는 객체는 (msg, signature, public_key) 3-튜플이므로 + // - lumen 으로 서명하고 elib 직접 검증 + // - elib 로 서명하고 lumen 직접 검증 + // 두 방향 모두에서 동일하게 통과해야 합니다. + let seed = [0x42u8; 32]; + let msg = b"lumen.kernel.compat.ed25519.v1"; + + // lumen 측 서명 → elib 측 검증 + let sk_lumen = SigningKey::from_seed(&seed); + let vk_lumen = sk_lumen.verifying_key(); + let sig_lumen = sk_lumen.sign(msg); + + let raw_sk = RawSecretKey::from_bytes(&seed); + let raw_pk = RawPublicKey::from(&raw_sk); + assert_eq!(*raw_pk.as_bytes(), vk_lumen.to_bytes()); + + let raw_sig = RawSignature::from_bytes(&sig_lumen.to_bytes()); + ed25519::verify(msg, &raw_sig, &raw_pk).expect("elib-direct verify of lumen signature"); + + // elib 측 서명 → lumen 측 검증 + let direct_sig = ed25519::sign(msg, &raw_sk); + assert_eq!( + direct_sig.as_bytes(), + &sig_lumen.to_bytes(), + "Ed25519 결정론적 서명: lumen 과 elib 결과가 비트-동일해야 함" + ); + + let vk_lumen_via_raw = VerifyingKey::from_bytes(raw_pk.as_bytes()).unwrap(); + let lumen_sig_obj = lumen_core::Signature::from_bytes(direct_sig.as_bytes()); + vk_lumen_via_raw + .verify(msg, &lumen_sig_obj) + .expect("lumen-wrapper verify of elib direct signature"); +} + +#[test] +fn ed25519_signature_is_deterministic() { + // RFC 8032 Ed25519 는 결정론적 서명입니다 - 동일 (msg, sk) 는 항상 동일 + // 서명을 산출해야 하며, 와이어 호환성 회귀의 사전 조건입니다. + let seed = [0x77u8; 32]; + let sk = SigningKey::from_seed(&seed); + let s1 = sk.sign(b"msg-1"); + let s2 = sk.sign(b"msg-1"); + assert_eq!(s1.to_bytes(), s2.to_bytes()); +} + +#[test] +fn x25519_ecdh_produces_matching_shared_secret() { + // 양 피어가 elib_x25519 만으로 공유 비밀을 도출할 때 비트-동일한 32 바이트 + // 결과를 얻는다는 회귀 보장. lumen-channel::EncryptedChannel 의 핸드셰이크가 + // 이 동작 위에 의존합니다. + use elib_x25519::{PublicKey, SecretKey}; + + let sk_a = SecretKey::from_bytes([0x01u8; 32]); + let sk_b = SecretKey::from_bytes([0x02u8; 32]); + let pk_a = sk_a.public_key(); + let pk_b = sk_b.public_key(); + + // 한 쪽이 만든 공유 비밀은 다른 쪽이 자신의 secret 으로 만든 결과와 동일. + let shared_a = sk_a.diffie_hellman(&pk_b); + let shared_b = sk_b.diffie_hellman(&pk_a); + assert_eq!(shared_a.as_bytes(), shared_b.as_bytes()); + + // 와이어로 운반된 32 바이트 공개키만으로 라운드트립 가능해야 함. + let pk_a_wire: [u8; 32] = *pk_a.as_bytes(); + let pk_b_wire: [u8; 32] = *pk_b.as_bytes(); + let shared_a_again = sk_a.diffie_hellman(&PublicKey::from_bytes(pk_b_wire)); + let shared_b_again = sk_b.diffie_hellman(&PublicKey::from_bytes(pk_a_wire)); + assert_eq!(shared_a_again.as_bytes(), shared_b_again.as_bytes()); + assert_eq!(shared_a_again.as_bytes(), shared_a.as_bytes()); +} + +#[test] +fn aes256_gcm_encrypts_with_tag_appended_format_used_by_lumen_channel() { + // lumen-channel 은 와이어 포맷을 `ciphertext || tag` 로 직렬화합니다. + // elib-k0-nt 의 raw API 는 (ct, tag) 분리 출력이므로 두 형태가 정확히 + // 동일한 17~N 바이트 와이어를 만드는지 회귀 보장. + use elib_aes::{AES256GCM, GCM_NONCE_SIZE, GCM_TAG_SIZE}; + + let key = [0x33u8; 32]; + let nonce = [0x44u8; GCM_NONCE_SIZE]; + let aad = b"lumen.aad.v1"; + let plaintext = b"lumen.kernel.compat.aesgcm.v1"; + + let cipher = AES256GCM::new(&key); + let mut ct_a = vec![0u8; plaintext.len()]; + let mut tag_a = [0u8; GCM_TAG_SIZE]; + cipher.encrypt(&nonce, aad, plaintext, &mut ct_a, &mut tag_a); + + let mut ct_b = vec![0u8; plaintext.len()]; + let mut tag_b = [0u8; GCM_TAG_SIZE]; + cipher.encrypt(&nonce, aad, plaintext, &mut ct_b, &mut tag_b); + + // 결정성: 동일 (key, nonce, aad, pt) → 동일 (ct, tag) + assert_eq!(ct_a, ct_b); + assert_eq!(tag_a, tag_b); + + // 와이어 형식: ciphertext || tag + let mut wire = ct_a.clone(); + wire.extend_from_slice(&tag_a); + + // 디코드 측 검증 (lumen-channel 이 수행하는 절차와 동일) + let split = wire.len() - GCM_TAG_SIZE; + let (ct_back, tag_back) = wire.split_at(split); + let mut tag_arr = [0u8; GCM_TAG_SIZE]; + tag_arr.copy_from_slice(tag_back); + let mut pt_back = vec![0u8; ct_back.len()]; + let ok = cipher.decrypt(&nonce, aad, ct_back, &tag_arr, &mut pt_back); + assert!(ok, "AEAD 검증 실패"); + assert_eq!(pt_back, plaintext); +} diff --git a/kernel-comp.md b/kernel-comp.md new file mode 100644 index 0000000..1639f78 --- /dev/null +++ b/kernel-comp.md @@ -0,0 +1,366 @@ +# 폐쇄형(Air-Gapped) 환경 의존성 점검 보고서 + +> **목적**: Lumen을 K0 마이크로커널 환경에서 동작하도록 개조하기 위해, +> 현재 사용 중인 외부 의존성을 전수 점검하고 교체/제거/유지 방침 정리. + +--- + +## 요약 + +| 분류 | 의존성 | 조치 | +|---------------------------|----------------------------------------|--------------------------------------------| +| **암호학 (교체 대상)** | `blake3` | elib-k0-nt/blake 로 교체 | +| | `ed25519-dalek` | elib-k0-nt/ed25519 로 교체 | +| | `subtle` | elib-k0-nt/constant-time 로 교체 | +| | `rand` + `rand_core` | elib-k0-nt/rng 로 교체 + 어댑터 작성 | +| | `aes-gcm` (crypto-channel) | elib-k0-nt/aes 로 교체 | +| | `x25519-dalek` (crypto-channel) | elib-k0-nt/x25519 로 교체 | +| **대형 외부 (평가 필요)** | `wasmtime` | 벤더링 유지 (대체재 없음) | +| | `halo2_proofs` + `ff` + `pasta_curves` | 현재 mock-only → 별도 결정 필요 | +| | `candle-*` | 벤더링 또는 llama.cpp 백엔드 전환 | +| | `tokenizers` | GGUF 내장 토크나이저로 제거 가능 | +| **유지** | 나머지 (serde, tokio 등) | 순수 Rust, 네트워크 무관 → 벤더링으로 유지 | + +--- + +## 1. 교체 대상: 암호학 의존성 + +### 1-1. `blake3` + +**현재 사용처** + +| 위치 | 사용 내용 | +|--------------------------------------|-------------------------------------------------------------------------------------| +| `lumen-core/src/hash.rs` | `Blake3Hash::of()`, `Blake3Hash::of_file()` — 모델 파일 및 데이터 해시 | +| `lumen-channel/src/encrypted.rs:290` | `blake3::Hasher::new_keyed(shared)` — x25519 공유 비밀에서 방향별 AES 키 도출 (KDF) | +| `lumen-zkml` | 증명 witness commitment 해시 | +| `lumen-inference` | 프롬프트/모델 디제스트 tracing용 해시 | + +**elib-k0-nt 대체** + +`elib-k0-nt/blake` 에 `Blake3` 구현 존재. API 매핑: + +```rust +// 기존: blake3::hash(data) +// 신규: Blake3::new().update(data).finalize() + +// 기존: blake3::Hasher::new_keyed(&key).update(data).finalize() +// → elib-k0-nt/blake 에 keyed 모드 없음 → 추가 구현 필요 (아래 참고) +``` + +**추가 구현 필요 사항** + +`elib-k0-nt/blake` 에 `Blake3::new_keyed(key: &[u8; 32])` 지원 추가 필요. +BLAKE3 스펙의 keyed hash 모드(domain separation context `"hash")는 입력 첫 블록에 키를 혼합하는 방식으로 구현되어 있음. 현재 `lumen-channel` 의 KDF 사용처 1곳이 이에 해당. + +--- + +### 1-2. `ed25519-dalek` + +**현재 사용처** + +| 위치 | 사용 내용 | +|----------------------------------|-----------------------------------------------------------| +| `lumen-core/src/crypto.rs` | `SigningKey`, `VerifyingKey` 래퍼 — 에이전트 ID 서명 키쌍 | +| `lumen-channel/src/encrypted.rs` | 핸드셰이크 서명/검증 | +| `lumen-capability` | Capability 토큰 서명/검증 | +| `lumen-provenance` | 모델 매니페스트 Ed25519 서명 검증 | + +**elib-k0-nt 대체** + +`elib-k0-nt/ed25519` 로 직접 교체. API 차이: + +```rust +// 기존 키 생성: SigningKey::generate(&mut OsRng) +// 신규: +let mut seed = [0u8; 32]; +rng.fill_bytes(&mut seed); // elib-k0-nt/rng 사용 +let sk = SecretKey::from_bytes(&seed)?; +let pk = PublicKey::from(&sk); + +// 기존 서명: sk.sign(msg) +// 신규: sign(msg, &sk) → Signature + +// 기존 검증: pk.verify(msg, &sig) +// 신규: verify(msg, &sig, &pk) → Result +``` + +`lumen-core` 의 `SigningKey`/`VerifyingKey` 공개 타입 래퍼 유지 가능 (내부 구현만 교체). + +--- + +### 1-3. `subtle` + +**현재 사용처** + +`lumen-core/src/hash.rs:56–58` 한 곳: `Blake3Hash` 의 타이밍 공격 방어용 상수시간 동등 비교. + +```rust +// 기존: subtle::ConstantTimeEq::ct_eq(&self.0, &other.0).into() +// 신규: CtEqOps::eq(&a, &b).unwrap_u8() == 1 (elib-k0-nt/constant-time) +``` + +단일 사용처이므로 교체 난이도 낮음. + +--- + +### 1-4. `rand` + `rand_core` + +**현재 사용처** + +| 위치 | 사용 내용 | +|----------------------------------|----------------------------------------------------------------------------------------------------| +| `lumen-core/src/ids.rs` | `AgentId::random(&mut rng)`, `CapabilityId::random(&mut rng)` — `rand_core::RngCore` 트레이트 수용 | +| `lumen-core/src/crypto.rs` | `SigningKey::generate(&mut OsRng)` | +| `lumen-channel/src/encrypted.rs` | `OsRng` 기반 x25519 임시 키 생성, 논스 생성 | +| 다수 테스트/예제 | `OsRng` | + +**elib-k0-nt 대체** + +`elib-k0-nt/rng` 제공 API: `HashDRBGSHA256::new(entropy, nonce, personalization)` + `generate_fixed::()`. + +```rust +// OS 엔트로피 수집 (elib-k0-nt/rng) +let entropy = rng::os_entropy::get_entropy(64)?; +let mut drbg = HashDRBGSHA256::new(&entropy, &nonce, &personalization)?; +let key_bytes: [u8; 32] = drbg.generate_fixed()?; +``` + +**마이그레이션 시 주의 사항** + +- `rand_core::RngCore` 트레이트를 수용하는 제네릭 함수들(`AgentId::random`)이 있어 트레이트 바운드를 변경하거나, 얇은 `RngCore` 어댑터를 구현해야 함. +- `rand` 크레이트 자체는 dev-only (`[dev-dependencies]`)로 쓰이는 곳이 많으므로, 프로덕션 코드에서는 `rand_core` 만 정리하면 됨. +- `rand_core::OsRng` 는 `elib-k0-nt/rng::os_entropy` 로 대체. + +--- + +### 1-5. `aes-gcm` (feature: `crypto-channel`) + +**현재 사용처** + +`lumen-channel/src/encrypted.rs` 전용: +- `Aes256Gcm::new(key)` — tx/rx 방향별 사이퍼 초기화 +- `cipher.encrypt(nonce, payload)` / `cipher.decrypt(nonce, payload)` — 프레임 암복호화 +- `aes-gcm` 은 태그를 암호문 뒤에 붙여 반환 + +**elib-k0-nt 대체** + +`elib-k0-nt/aes` 의 `AES256GCM` 사용. API 차이 (태그 분리): + +```rust +// 기존: let ciphertext_with_tag = cipher.encrypt(nonce, Payload { msg, aad })?; +// 신규: +let mut ciphertext = vec![0u8; plaintext.len()]; +let mut tag = [0u8; 16]; +AES256GCM::new(key).encrypt(nonce, aad, plaintext, &mut ciphertext, &mut tag)?; +// 프레임 직렬화 시 ciphertext || tag 로 직접 이어붙이면 동일 포맷 유지 가능 +``` + +--- + +### 1-6. `x25519-dalek` (feature: `crypto-channel`) + +**현재 사용처** + +`lumen-channel/src/encrypted.rs:137`: +```rust +let my_eph = EphemeralSecret::random_from_rng(OsRng); +let my_pub = X25519Public::from(&my_eph); +let shared = my_eph.diffie_hellman(&their_pub); +``` + +**elib-k0-nt 대체** + +`elib-k0-nt/x25519` 직접 교체: + +```rust +// 임시 키 생성: rng로 32바이트 생성 후 SecretKey 래핑 +let eph_bytes: [u8; 32] = drbg.generate_fixed()?; +let my_eph = x25519::SecretKey::from_bytes(eph_bytes); +let my_pub = my_eph.public_key(); +let shared: SharedSecret = my_eph.diffie_hellman(&their_pub); +// shared.expose() 로 [u8;32] 접근 가능 +``` + +`EphemeralSecret` 타입 소멸 후 키 파기는 elib-k0-nt `SharedSecret` 의 자동 zeroize로 동일하게 보장됨. + +--- + +## 2. 평가 대상: 대형 외부 의존성 + +### 2-1. `wasmtime` + +**현재 사용처** + +`lumen-sandbox` 전용. 에이전트 코드를 WASM으로 격리 실행하는 핵심 보안 경계. + +- `Engine::new()` — 결정론적 설정 (fuel, epoch, Cranelift JIT) +- `Module::new()` — WASM 바이트코드 컴파일 +- `Store::new()` + `set_fuel()` / `set_epoch_deadline()` — 실행 한계 강제 +- `Linker::instantiate_async()` — 격리 인스턴스 생성 +- `instance.get_func().call_async()` — 진입점 호출 + +**폐쇄형 환경 문제점** + +- 네트워크 비의존적(런타임 무관), 하지만 Cranelift JIT 컴파일러 포함으로 소스 트리가 방대함 (~100개 이상 크레이트). +- 커널 Ring 0/1에서는 JIT 실행 불가 — Ring 3 또는 별도 프로세스에서만 사용 가능. + +**대안 검토** + +| 대안 | 장점 | 단점 | +|-----------------|--------------------------------------|----------------------------------| +| `wasmi` v0.31+ | 순수 Rust 인터프리터, 소스 트리 소형 | 성능 10–50배 저하, fuel API 상이 | +| `wasm3-sys` | 경량 C 인터프리터 | C 바인딩 → 커널 no_std 불가 | +| wasmtime 벤더링 | 현재 보안 속성 그대로 유지 | 벤더 소스 관리 부담 (~15 MB) | + +**권고**: WASM 샌드박스는 보안의 핵심이므로 wasmtime을 벤더링하여 유지. `wasmi` 로의 전환은 성능 허용 시 별도 검토. 커널 통합 시 Ring 3 사용자공간 프로세스에서 실행하는 구조 필요. + +--- + +### 2-2. `halo2_proofs` + `ff` + `pasta_curves` + +**현재 사용처** + +`lumen-zkml` 의 `halo2` feature 뒤에서만 활성화. + +- `MockProver::verify()` — ZK 회로 제약 충족 여부 검증 (증명 비공개 X, witness 노출) +- `RoutingProofCircuit` — 에이전트 툴 라우팅 결정의 PLONKish 회로 정의 +- 현재 v0.3 기준으로 간결한 ZK(succinct proof)는 구현되지 않음 + +**폐쇄형 환경 문제점** + +- `pasta_curves` 등 타원곡선 연산 의존성이 크고 빌드 시간이 매우 긺. +- MockProver는 실제 ZK가 아니어서 witness가 노출됨 → 보안 기여 미미. +- 네트워크 비의존적이지만 벤더링 크기 상당. + +**직접 구현 방향 (mock 대체)** + +현재 MockProver 사용처는 "회로 제약 만족 여부 검증"에 불과. halo2 없이 대체 가능: + +```rust +// RoutingProofCircuit의 제약 조건들을 순수 단언(assertion) 기반으로 직접 검증 +// → lumen-zkml의 mock 프루버를 halo2 불필요 버전으로 재작성 +// BLAKE3 기반 commitment만 유지 (elib-k0-nt/blake) +``` + +실제 succinct ZK가 필요한 v0.4 시점에는 별도 프레임워크(SP1, RISC Zero 등) 선택 필요. + +**권고**: `halo2` feature를 기본에서 제거하고, mock prover를 halo2 불필요 버전으로 재구현. 실제 ZK는 마일스톤 재검토 시 결정. + +--- + +### 2-3. `candle-core` + `candle-onnx` + `candle-transformers` + +**현재 사용처** + +`lumen-inference` 의 `candle` / `candle-llm` feature 뒤에서만 활성화. + +- `candle-core`: `Device::Cpu`, `Tensor` 연산 (CPU 전용) +- `candle-transformers`: `ModelWeights` (GGUF 양자화 LLaMA), `LogitsProcessor` 샘플링 +- `candle-onnx`: ONNX 모델 라우팅 엔진 + +**폐쇄형 환경 문제점** + +- 런타임 네트워크 비의존적이나, candle은 HuggingFace Hub 다운로드 예제 코드 포함 → **소스 벤더링 시 해당 부분 제거 필요**. +- `rayon` (병렬 연산), `blas`/`metal` 선택적 의존 → 커널 환경에서는 단일 스레드 강제 필요. +- 빌드 의존 크레이트 수 매우 많음. + +**대안** + +| 대안 | 비고 | +|--------------------------|-------------------------------------------------------------------------------| +| `llama-cpp-2` (C 바인딩) | 이미 `lumen-inference/src/llama_cpp.rs` 스텁 존재. GGUF 내장 토크나이저 지원. | +| candle 소스 벤더링 | CPU-only feature 강제, HF Hub 코드 제거 필요 | +| 자체 GGUF 파서 + 추론 | 구현 비용 매우 높음 | + +**권고**: llama.cpp 백엔드(`llama-cpp-2`)를 우선 완성. air-gapped에서는 C 코드가 허용된다면 llama.cpp가 더 성숙하고 가벼움. candle은 소스 벤더링 후 CPU-only로 유지하는 것도 가능. + +--- + +### 2-4. `tokenizers` (HuggingFace) + +**현재 사용처** + +`lumen-inference/src/candle_llm.rs:86`: +```rust +let tokenizer = Tokenizer::from_file(tokenizer_path) // HF tokenizer.json 로컬 파일 +``` + +- BPE/WordPiece 토크나이저를 `tokenizer.json` 형식으로 로드 +- `encode()` / `decode()` — 텍스트 ↔ 토큰 ID 변환 +- EOS 토큰 감지 (``, `<|endoftext|>`) + +**폐쇄형 환경 문제점** + +- `onig` feature: C 소스(Oniguruma 정규식)를 소스에서 빌드 → 커널 no_std 환경 불가. +- 대형 dep tree (rayon, serde_json, unicode 등). +- **GGUF 모델 파일에는 토크나이저 어휘/머지 규칙이 내장되어 있음** — `tokenizer.json` 불필요. + +**직접 구현 방향** + +GGUF 형식(`gguf-rs` 또는 직접 파서)에서 어휘를 추출 후 최소 BPE 토크나이저 구현: + +``` +GGUF 헤더 → tokenizer.ggml.* 메타데이터 추출 + → vocab (id → str), merges (str pair → id) 로딩 + → encode(): pre-tokenize → BPE 머지 반복 + → decode(): id → str 매핑 +``` + +LLaMA 3 / Mistral 계열은 SentencePiece BPE, GPT-2 계열은 Byte-BPE. +약 300–500 LoC 순수 Rust 구현 가능 (no_std 호환). + +**권고**: `tokenizers` 제거하고 GGUF 내장 어휘 기반 최소 BPE 토크나이저를 `lumen-inference` 에 직접 구현. llama.cpp 백엔드 사용 시 해당 백엔드가 토크나이저를 내장 처리하므로 불필요. + +--- + +## 3. 유지 대상 (문제없는 의존성) + +아래 의존성들은 순수 Rust, 네트워크 무관하며 직접 구현 비용이 유지 비용을 초과. **소스 벤더링**으로 유지. + +| 의존성 | 이유 | +|-------------------------------------------|-------------------------------------------------------------------| +| `tokio` | 비동기 런타임. OS API만 사용. 커널 Ring 3 프로세스에서 동작 가능. | +| `async-trait`, `futures` | 순수 Rust 비동기 추상화. | +| `serde`, `serde_json`, `toml`, `postcard` | 직렬화. 네트워크 무관. | +| `hex` | 16진수 인코딩. 60 LoC 대체 가능하나 유지가 합리적. | +| `thiserror`, `anyhow` | 에러 추상화. 순수 Rust. | +| `aho-corasick`, `regex` | 프롬프트 인젝션 방어 패턴 매칭. 순수 Rust, 네트워크 무관. | +| `globset` | 파일 경로 Capability 매칭. 순수 Rust. | +| `once_cell` | 정적 초기화. 순수 Rust. | +| `parking_lot` | 동시성 기본기. 순수 Rust. | +| `safetensors` | 모델 헤더 읽기 전용. 네트워크 무관. 순수 Rust. | +| `clap` | CLI 전용. 커널 내부 로직 불관여. | +| `tracing`, `tracing-subscriber` | 감사 로그. 순수 Rust. | +| `criterion` | dev-only 벤치마크. | +| `wat` | dev-only WASM 텍스트 변환. | +| `safetensors` | 테스트 픽스처 생성 전용 (프로덕션 불사용). | + +--- + +## 4. 마이그레이션 우선순위 + +### Phase 1 — 암호학 교체 (즉시 착수) + +교체 자체가 API 레벨 수정에 그침. elib-k0-nt 모듈로 1:1 대체. + +1. `subtle` → `elib-k0-nt/constant-time` (`lumen-core/src/hash.rs` 1곳) +2. `blake3` → `elib-k0-nt/blake` (keyed 모드 추가 필요) +3. `ed25519-dalek` → `elib-k0-nt/ed25519` +4. `rand` + `rand_core` → `elib-k0-nt/rng` + `RngCore` 어댑터 작성 +5. `aes-gcm` → `elib-k0-nt/aes` (crypto-channel feature) +6. `x25519-dalek` → `elib-k0-nt/x25519` (crypto-channel feature) + +### Phase 2 — 추론 백엔드 정비 + +1. `tokenizers` 제거 → GGUF 내장 BPE 토크나이저 직접 구현 또는 llama.cpp 백엔드 전환 +2. candle 의존성을 llama.cpp 백엔드로 대체 (또는 소스 벤더링 후 CPU-only 강제) + +### Phase 3 — ZK 정리 및 WASM 벤더링 + +1. `halo2` feature 기본 비활성화 + mock prover 독립 재구현 (halo2_proofs 제거) +2. `wasmtime` 전체 소스 벤더링 + HF Hub 참조 제거 + +### Phase 4 — 나머지 의존성 벤더링 + +나머지 "유지 대상" 의존성들을 오프라인 소스 벤더링(`cargo vendor`)으로 전환. `K0` 빌드 시스템에 통합. \ No newline at end of file diff --git a/lumen-demo-screenshot.png b/lumen-demo-screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..3c467ee49d337d298f7c73850c9dca46f0761c44 GIT binary patch literal 108033 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 Uve6M<{9 literal 0 HcmV?d00001 diff --git a/lumen-demo.gif b/lumen-demo.gif new file mode 100644 index 0000000000000000000000000000000000000000..d6fa5d08562abc220a77ab727ecc03d4d90fb489 GIT binary patch literal 1414251 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%0AI4cC@gHxMeNg6irs|?NGLQYgx9mf#7ZS zE~p&FX~wbd0fF;ahN253BH@?xIFi%1$G? z=+@K+*ylK7Ij>oTC(1J*F|8Fs8in#z%Ih+2|K-jUU^ z=<;{uhs_(@x`&rpyy^6jhi9`rxqcwu3=EN-?tXc-0%d?qFo(#x;VfoGZm6!!7oJR- zclQaLBYaG*+Dhe!vwIiL#jnV^WROIPH>*&pVfp?M_(2@+r zwhY`z929&;sKm*~P`|wk^=O^#nIGzky%S@uz_-bCS0x~x+fhv-ONLG$q&E#wlEr12 z#i&RCz}XOCIP|~`wv;I_&zBVuMZ?v5G;JoLZaNuSHs|`-fVSQ1>p4eF+hP4 z@LD|?HX;vGyi~x&In@X#-+`;yUy`xRtWZqR!%{0fsBxuKK1<)_D1gP7?MMQ}{sBdG z095ywe1XNJuQC0?yCD9O594i_N18V>l3Tg@TbkC`vLC zfa5vf43eEQ1whe0$XpcIFkBMwJq`pQO_}{Ip}T?XiurKMe7{&!WFIgp4#c-Ij}FtZ z>=qEd14MLz!bm~9aUt;yP*KaD<_{#M>rrD1BxyhP0k}Asj|xlegE+)Wgf2}30c{RX zmgs-h1Gjh`eRHp~*Ij1~yUYwOf><)p9NAg;g4x3C2eCkoK~d5KzjDO&nrEomi;i#~ zZ|yf%9>P%5zVr!SX@qIud^kT=S%F#c0#(gvLNg0C;=k+(m>(%K94e|HbVJ#u#+cDoTYx0K8(n? zE_z47@s3*D9gY9Keo9ulW-?ReLN9u3wahBOZZ_JKaU{t4dbtm03d1hR@ke=MS-Shl zyMC}#x{}0I!@B_+=AMmrgHPIBp!w_%?ncho-Z)ng6K8zs86r3RTI`RCL-tbq$x5pQOohRgVoSLKmN!BkKgGpJHP=SIb-%2 z+*bMApo&#&gqm*|UY*m?kdH;nG2Smu1{|x5=+edIn*x8$jBe_omkB{Pu6;c>oZ3Q#$EZm6Fc$GLPKBasE59?M;D zTa62Sv-FrL_dYWBO65vz6|C;$J#Rd=&d9dB;QK{*?jtcmJ;Sb#<8wZjGrln0N3oiK z=PY3F2iQCZ{Nw$g!hZ3SzI403sHFz-{(TmLpK!@#n1?@a$x|gMfJFcFCjnK(fHIK| zu%3L9+31+Po|sungyvrO+=xgz1I!!;x*4w2qAtPfkOUAv)yWU#@swWi3j3o3uBCF; zHtIQe5P$A9ktnv>=Royy#QigD&P|BNv%msZFn!%~wx#D=5Md$Jsi+0VHQ&f|1N|wA+(u(K~hql~B#*69>?k8M)ekyasSppmt&H25clL zqZ#2Q?Snw|70>mc6#I0l`&lgehKusyBNh`1{b6NY`;EZYwd8|}3tYX)o6lPrM+Okp zC^jQDWFaaJfr`cW_sm`6748gDbtk+}+4A}GtH8D?S-g&9#Dlt^-gkv5g+X!Hq0odq z3mDK!)oFgsNq9}~QHmJq!TSNe2+9Q`RFK0}7RwQ`5sK3+BwFfx-yD!d?c+{-EOh6B zq#&DTGa~(4sovi6Om4<;Q&bHF)h}5O z^Ei>amD4UjB={Ep>?yOQ1 zVBR4eLCC7syv|q`J!6ELcLG-9pD=l3-;o|~V0aiMa-Nt7q;_}m*yljPa+DtA6dRyE z#f(i?1IC)bL1E0P7Gee7UrJOVD+mQT*F+cgQn0O;v&7t}ZN^FiIEF4}FPVA#xnIy@ zR$K;X%;tNZ2%N4SR@n`CaubEjY?7j-7PlsSbQnX&bHNDkvj>mE5sYOGb}B_>naihG7)Ws40YF7!Yo>= ztl+pMmXQZf`5PMeQQSgoTwZlt4}fxG;E8|L!1}vlWKLxtplE(0&;gbF08k7rYUEv< zn&+4Q`i>6uo`sDAbE_!+%(Bo()n?_5cV^y0u|i;;oB4@X^rN|DuDr<%eOA`bzx-ir zkAL->;%fIUyqJ-usz_kCFKcrH#TN%0AW;#&0s1EFO@6jmA$H;nDlw;*Gnejq{q3M3 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
  • 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%0AWwWvo$2tA_$2x@%*5%x2N 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%0A&|&SXk_+6WbRF5K4Da$Kvc1A zREftwKziI>KY{`WgXI*F5H`ZtmXhX zPoua!RJhYYczMU@d@;C#6C7De_;X4C`w8NWN8Cv()}1b(hcbbV1Hem(h-MvoJec6; z7_-ip$f=e%Lg-K8h(zp(KzfkakLn*|1Q%+A^&Jjf?MEyv6M%Or5hF1k3(Y^3<#}c# zAC5KwnL{s$HzR(`Bj)=};c0{U`5(F>Z5%zU9KEa@KH8Y;n%R5)!Gjd{^W^`3 z#)JHa_oJ$o-v32H0zhCKJQ5rb5zg}qTrf5sAvP`%HtzE?80+~N2*v_}QDJb;NXUO~ z!{aTK=I2II@JEpz)X~T%QK`}^l{?dprg515*@pis5;BwiIh}XFT{iL>IlQKi@B&*s zQ6Wzu=h=q;%l*h(FkPeD6GW!?H}|7-y@N|sEOG10)%L&G@P=8AunNqV|8hU-7HbBD zM6NyFdKmo}iZxal$o}JgB>6q0x3^tU?3A_!X>k7jt?=1~SMGRjrN7kKa?Ro8mtT`^ zMQBz2U(AO8H}6NS*GkVe{GabfOzq+4`*BTIQQG5%XO~=m2RNMph}BEa6s*^KlYuu( zwEKq*|Knp}cAn24HoQJ{zCP7mdLbXDP(qPbq|tscr)POup5I*{eo3#D!a-^N7dgwa z;xwDX@-p&0>k6Ujk;6*c0vH;LO2fq8A|Y!(BeVRf`x_+WnNYUrSZ_;e77@HS5b#>J z1L82=LW@w0=4$|f>U{S~Y(pv-)t8!akYbgX>Bdm+Ab%(IK{9#xex?g~xH74EiF(k! zm7%;Np_lmf9`r@K%_i|HqWH^=&%S!L2TpjPs?+Et@l?jwpae8*!Qepp122w=HydC6eclcsR!zb#0rC6Rb)3|9iCYMZW6NrV z$Hz&D#sMq?&np$zy1-<-tGQjS?B3yzjpA^`)BF#)BVXHJM7_N{sZjsX0I0Z z^l*Lr{Lck59}Y$CGXn8R0ICvYo<-?rWTBHlKukUogIq6q7>*0USUxiU(7*qFwB6^8 zxp3rjyWfz6+0F4qyi%oF5Zc71;q6RLP^3h)rI0FSgwQ*vc=1^qbcTG9j^>%9GOUun zNJDK6#^YqrdX>He*sS1|+4eDVqKR-V1qunV6N=Ilk;j8%VqAYwc@{?uVVevR@nXf< z8ymH`CJh`go{9MKpibm+$>&@s*?o-OHi=>!3@5E-&v{V&Zek+c8-n{vqACv8SYwE> ztvqp6oK~Kcpda!XH-&Y&nBKN=G^?tCuGp4N+_hy8VNDT&7>Uk>cBUAFlF zU5SfG7{Kp}o9anPb0?cV)xe@g?wE9lFkGO^=*EKeU^envYq#rI>q7g}%Muy>r9yA# zf5V1Ibx#Vipt|1BGpw|IrSjHt43He<+{%G%q;RYhK{ z-CXLOt}U}t(;>KGK!NUkznreQ!d&>cSrvh}Z9vjUf}4I{HSxxw@sB00-%XmOz(m{L zr4gFuIi^=&`ymE?vu}ZF_GK8SEb2)my7;_lEK$C8J-Jt)VXq`sbP_u#Kw@5iSgJy! zIf_)W5-_@XN$FLMV~vBbG~7~N@uGLhMio~<1vW9*fZc1a=ROKrRXO6W|M}9iMLr?m zsikg<%0VJ!IeUv!M`&_2(&=(*x$jOE+PNxc**dCM<2cX0&^6==^ajX^w5053G%)R|5zzjf@kYoMQ_#oqzSD0|c6G8eh8!Eui2qEA8JZ2rno%;gI3f)g|25Zr^i0a)w2bg#k-P2WEjn!J}t0!fs z+j*IAm$>G&Ahj30Tn&@RzO=B^_jbRb8j?-hz%t^6)RIfYh??*Fcuk}vd zh$Y2Z`;NA40%3z2pEW18QXAh6viY}-S*o08Ejgvs=}NO>O<&C(hen5ufwD;K{|=6?KG zd$&Mqa@p@vb}H;iw;j#RVSXj`6MA@eh|k4gb2j-!6nxJi$aNQyAd=CQr*lFQ>)>%}eguYFx zsxw>-qCa+3G9HmgeYxj%UEKo&Xc{Q>gAk#Fby_|c1N!>)0Y~6K;F;fNe(o~{VS)|+ z#ezVv6#*#(*kCD%2?g9<8`NHs(m^Ph%G3*6y$gDE4ZefW2pMoVgV9d|!=wp{-pB|9 z^1TQQ*5L;75gH%``{I^~;mP64Fyc>Nf|VJ`Qc7u6p)9Prfu^U*z5R4lLzD(qCgjbU z_P|g)V?(%ILk+4h9AmZPpfFPi$czwZN65cq7KQ^1hZRfE*M}eh{dF3GPCkYN5Jm)9 z5v20`qx&%;F+?PgH7HRkNq_}DS&g7KQYIzxX)6+kDk|TDVq7w^n*oHu3wV#fRqX++ z9a36!2Bdii$XzH+Xhq>u^H>H(SKY7!jG4$ynJ7UjeT=~3vS^YsZ$hA)(UxG~b~HkP z)O!=*Nwa4NZ0yJlbsQ-6#YQYjLG0`hparCIjK}fp&7(Q1j&4Vx!pBXSM$el74)y_; zWpP-}LIvDjqZcv9H}Tt6(b5*(iLKaN?%4C+swPZ8!E~G&EDF*Loffm6DN=!ZiPD%8tx#Po+_Z6f=0X&8C>4kqw4q7}5Z*p@3-=p*C*i z?|saggdvKaxNaT>y$P8*#YAg;1SxvJtqT$$C#30s%m+&0`%v zG0Ju$lLXhu;WR9$-q6*GAc=_Vh$}~m2=myC-&0ov&<{pW1K_ogZNNO4a0|0DJad0W z-umF*)Zsd* z1pw-T4$SN^JB=C%$JcO_%W0XC8=` zbXuFSp?jg6X071@eMUYCPzxMGE;Ugwi@&SrOe$*7uWa$Egl1N@ zw^w#9Rd(N1etw?L5vuCbuNrvX$H}Z3X|Ebvs+zc~nj)^A5vrcmub%U&UdXIoYOh{d zs>bef&{ns0q6e{nUDlW>t*n*@jp<0q4XOwBH z&6v zbUg-n1d_HS;kFcEiY)y$DGd)uB|~_7TkgGcx+2K`u8oS@?W=4%2+7-=v%PG& zJ-N^ue<-E~gVvJ2!;mYdC99*oqoZ@Vqx-(&GfC$c;m*GMkM;VUTEO<9O6tsxPPv)3 z30ty)1Bxc}&Tm=xBZ}|o1%QjioW^iq<3`3X*Is4qYl0*T@GoOD2}jWy}t=D!Urr>Xy9$rntZ zuZF3FPoRV+j45q9txx^3Fa@-@e}#4vZs(laPRhgc9!FRVNU-hjmH#8NX6}fjz*V`<`jAY$%Eq_9%9k$ zfrC)cl+{Ga{jg7OqG)hx8!Te_DQ0G(cyz@sX+duS`1p-sXGTn9R_fiXjPI;m&a6V$ zY+G~|_Qq^1FvUWGe5ljC&$akVTUWOA*!w<$;IY|{>fep3S%P^oC)3AvSY`%>)jz$Z zJ!l$HJ^g-)M}b+UTeXCrV^&NW*Y(BM#n&-TMTjU_lEy&AGlyjHMfVBu|+j+ z?$j;ZyTA#l%Cb)FALfsuTAVx2B!{@fv63g)gJ~W?DUbe^fkR)u5h^IqD7_T(bzSP5 zHyD{|OpR^`9ChK&$>BC>vwV`l$u z{U&Gqu50~ab^Yma9gh45g6I#V_dk?M7SIEKL{fbhF!bhwQUCBTKNoPv|>f z1r{Z`AH_>@D)RRd1!Uxu6ZqNopAA0|O8PO2#8Ibr%~5r+qKx&td0IqgG?B(8mz}_G zmItcXb8!c5&hpdM+MCqJE>ekZX8j^!S=jbJC_^vEu1jZnV@LLGLh)0^ToBcY(W_;J zCpG(xjkl@#bF83nSS~nntsGZ;)rEQ$nf$<~cl9&+ycfb=Qtm-!_d)jBLGIH*KKWsx z=wb2u!xF#4vfO7Rm#56p=jE24LZFceQ2!d}+mprITJHy2hu#+3kIPPg4Tl2>-*9WD+e0p-CA~K zej#5UpX35MO6n5`pu{k{;fb1Mhx+5ECeoE=ZH#7mmS$Rv)9EnFLv)9_631m&uGNdt zv-imMbjtukw}wQ%^RLlIsDZ!HC~UfFa4!cM=Vg9LQ~Yx6XpnmCOsi_6jnPVIctT3r zq<(CrIB5$Ox0lPhP>lx~<~7o%Ut0A1mNK{`@i`H~sblm9yutwrbzJgLT(H$%aOO2! zXCBkEUi!d}EGaIujvYllTz1%=J>&wgJ5FfwY=G>iQ#H2c-q*uymej}R+vLv4hPO-| zw=|_qk$Jyu zz0_AYce6xVj96$H6>y>OW|3bh0skgVVQR7^Jb6B3f(rCNlUfe^mp zl%0O4pH{mFYWmTikdR5gyykxnPAVIg_7RUj%J< zUCE6q9;w#Bh>1BEPkf5TSWXel>cmkfLO3MQ7Ma!ZU*J@z6=1v(Qfo-%3qh5tks6tz z1TsiDvBlJ|FvcfqE1hx>E@OmAqbZJ|4if6kOy`pe76WRN&<{`hDkRR>AmtP1iY;(C zE1U{UrNs>+O+q0DgP}2)OweHH%1i@CZ$n}`@p>cfOE9Z`V=v#g5En+)trZ)U>N+#j zN>cU1C?*b&RM{lTZ4o!kE)4x2AR)sWk2RF}cbYU+Uw=$cQ}bN_0qn}bek5e zRCb_y#e2ut|GFrZmm#9hw_&VJ%6y;4_2bBtO7zKA%mAA_5&+tB;d)`J;;(nQf6D0^5iH6Rml=5*7R5bp73ejAZ!np?hEt%ZhZpw5wwy$C)}ICnvFO6Q4*>Y&JGo&W{1P zk@R|o^6)yCSiagHKS(J_Jt>-$I&cUimBn)|J|j4krKz2;IvkW%aF%ZZnF^L@Nal68 z7BZwJ<)<4;m2<8(?NzFpYuuC*S?qYmOZ}L>*25cZud%i{O*qj zU;95^@Ade@U?@g#F9gI82&Mv1q>K>op<>8qM)X`#gXQlNlNG|z6GEmQqgiz=|JG%)Hnc& z@41poUw&T$G!Cnfb5S+JeSV3qp&(m0lQw7ii2>(J1Oj15T1=-o2mhy$uVY1MK(zqe zw^JkjT7^i+L!SwDsS;>)&z(~cZg;3d+mwxVey2X^50Q}OquWVQ!BzW6!Q*aV83*K} zA&G~;`(!9P%xO9hLB!!s+di6R#Pas*O(f8hUL?_D`*QA>DZ- zq`&yU^?#~kV?O)9$^YBdvH$Rag)0^RuL=D3A>#im6IeuCR#@z>IpQKA{uDl*5Kay| z78U^!3I11-sx!jgZaiMe@&Irv2X+Q|M>9h--Ng^Q7%g@lilmWh*wk&TLhor>-y zB`q^K?Mn(8W^!sqGAc$=Dh6^2N)k$X5(+wEa#|uX8d4HMLQ)z+Qfe>>6)8S30V^#5 z2{i!;6~VJIKtqX3LV-_2fk*iKAO{eVfWTz91kVprJOVI~fE0*Nf^MRNaA$7VTu zwO?7t6QXJQ{>UT7f7>{I(B@k zTh$g)hwM>Jdw$*3EPh2RR=tq;%`#f%hgU%VuWL{JXM~=AsbddidhY9m>jWG#nHh>> z4b0DpmG+-0iQn_`6o|vKA^i|XWd84UY-0O}1XgPF?agqOaRHzkI&csWgL4p}7BFeo zzaqwWbu;CPj6b|8F3_<5M~*o16B*As_jfJ6IYqW-Ov_7yHLV>nJ3TF24$F^3(eb)A zf*Mx#L6KQXHc5gzfB3*SxAO&J=Yo367N(-EJDEIGg6jGDo&$SD2{OzF#VOi02cIAo z6$d5R)LNFM`C-h5&pt4-W*9<&&0$4V%i&>V-2jaF=W~wu-}Hg`e*S8ll3_V&n$`Y~ z<%o~FAFlo;M|{$Y%J9!~#7=|4J}=LPXw&V^hKHV}aFfja`nX0o2FGmJ>t{6*3YDhM z@Ip`z9suKf*IFieNX?`e6Our*2cQibZE)hQ=?=~&fR@}-v>I{ zfDZ+07x^i|FS6+b zR>2J_D#b{|7hl9vn;a=cR^Fh&-dQk=9ZfOae0?vOQkF=Ci{yQOYb*iT$7MF@i$tt1 z6pOGBVHFAqL&cNBcG95#j{1qYAdxyhz$5pvAHiQv(sX(WML6=NKN{O6Z-cT>2KVwM zog7AfVG`%-VAKXGU!RCs>Lj`AhiSS~@5niVNI?CxS-icgnLzP-n0;TtKS4bXE#lT4N?eaYQw}a<2jX9 zlex^M;8?MzlrXrhL~1|)hWjwA$&{v4nq1r>5w6CinP`XhU8X_pJ+Bs3sFa+PCD(M8 zd~qRtFQXFAA+GOTU!H*aCuI(_a*KAhS3bA7(@BB}q7^Bbu~o6Z5=xYk--mo6%Q%n> zE7MH&Xkwro#}Wm9?;gR#r?R8^q=rQe;c!Z(Yb%dY|7fC;v%o|D=3|NGfF)MkKw%~E z@S$8M`ds)*Y$e)rA&!l4(qCmeM^4>VVQCT9PSh-9*%no9IXpRPWJVSRSZ-ky3=PM- zDj^oElE%9y7&r{6sc*DYSn&c5NrV=oMq-+)jx0`i@x9NAePi`nacL&=s;Nx5+UB{A zJ=cEKTo+qyXQ{Zn1Y5dlfsR)@yxIG{de`FY_*m^|u06FuobK}ZRgH5iGT#{6bsM81 zn`@~s*QmyIJGnQbTkGiRZ?E*X&W|-7IDAW|nb)2B%C%neqia{~*Ig&EwLW`_>vv1n z-8bX4e%GVxPj}ZnaJ!^uza@oj*5atoNF8PHvH=IwA-(k;htf-k8zFKxRBgo(2*<=C zQW8wi!6W;UDqGNTqI99IUc{|bvglL2hd*nMrleG-O!Pu+1X$!$oWtvNnW>`Z1uP7EgMl4?W~b=jlb~B%M)1exJ(1-X4YcngAEBazx01Ve`klHJFA zi0i^kX61>_5i@j)fz;;Ki)8BG(qB5?@gh|dNn(2@meBD~*~UdOm|`YtV&Hv`tcY-t zbyka*C8jT@m$TAVPL#Q8%j}N+_)g5O$&f-SRt8ih<;QFt)I=nmtbSGL@s8CLanz#r z2{khD;2_d*xsWE&q70IwoN3pXq*Tr=IZHNIXx7oo?CGxBL^ze~!AO1fTV5WHHPHtp zG?c!;^1U-zbdg5LqLcRUdxId}y*dN-*07;+rc||~8kWutb7JXtzd*I!++&3Bo{yP9 zj$Gu$qtvke?JB(ntA^@MD(3L<(c$Eopeik{D((7lV%hzv{uM!45PR`b4(CGI~`x&mvVahG&lZK7DJWOPutj zPe@ZYRsZC+SX`}7V0PQc1y#gPbA(4hH~l*fdC|T%xL0w2Pxm~h*RYBbRp8m+$iuF` z*4=HBpXK8d4fB^zPo3@akjSWTQ%^(dO ztFdqXFC>Edg6s(`tOe!p1fX~#5k5i!u1oXGFRg;Ug?e-Ke&7-3e-C!t4{_j542(b~ z(O{%NMZ^`TWkK}JyAXgsH|=j8$q25YEN-ApLv$DlTM)(C!3@-;gj z1Yj!w^z>j-_HciZ`0<^rcew<}Oj;W)P#bkRe61jYqc?&N1|NYBABh1UiGBlcfkXt! z0kt$E87-J_TEn$<0r~sBhON|b=0F8Gqk1#YGb$jgRIizqx#_~A9EzuuV*YUfuT~CF z>VcR3T%Cr>_6oQ;>BfwF@u8gd82BIS*t5E^bAMmQ7Kq!{jobBz+lRy*LgRid#QnaB zJ0Xle6Ntaijlc4Uzk$TxLE|45;-7BfpA*Okf(b}^3CNxas2K_9*5Me73D~y@fXMg& z{6svo4|voJ_Y|UYKZV57E%nO!c`~8@Z2xlx=0;p8Ws{&b(Rq zxTK7{hsC_7+dMepd<3CjA3uYA%65n-# zJ|-ID_IVGXk_QmU5)s>7-4YD7`3#ie(MI_)N&%SK0r$f~4g!AkTt%0mMLqrLb)4B= zB|y4tN`5fXK?@u#pAC_vL?rPyk>JWtMkPPaOz3Z$HMdEkKrfAHN zff74mb;~9N8}OFZ7r5BVKq6rvkfnZ6qsXVBetZi^_Org@OHpVV*bT)RJla4#3UDYA zQ<*YGK1F1QkzhD$H)3Zg3mP=g|72Fu_Yf?xUX=mLC;)8T8U-tX{K5cJS`kxPOJx#k zEdzk)a>Hvy=EH)V7t@lzDnN=P7z8W;Q^jX~U%e$pBW7X?(Q*rbs$nrjSu?8{f*@dW z-YmFLhmP0cCG2j~0WentxR5}#4FD6M7T4&PVd1sl`c~BGR{u(Xi$NoDAQTf=pPU7S zAmo7p<(YKA=88~V7AO`~d$DjkwsAXgqNGk`TTz1+k+_EDHE&(yjF>QZ)8`^|eVPT+Y$$rHXABm4LL4*4O#%sfumMB+zP-&Xwh^29vHe z7)kf0aQC)B_pW#MepdHkNB6JgZftmCJOYpLC?kAz<4cwvjCy|nebt3GU?ljJvuO{f z*MDR0Eu-RY@GadyfD~SZdvJG$;99u51$PbZPT}rOaCdiyAR!RkgKMy$375Prr~7oD zbEap_+&TBI`O3GVYSpU!-~0DG!1PF=-pqP>bqkmN(tZ>s0D+#@K0-|B0k3Hh6!fF7 z*35z($}0s^KxefVw561Sh@QAta_wm8A>Jr+YdM3hMGUZdZ`lVB4!{%+w7)gGuVI-m!5 zz*~W{aYh>EhDF={K`bq7M@hw}Sc)M$q2ah|M-M8D%0z36icoNurv;VeyhtOSisTnv z;rpA+qsBn-!+A+=j8FkeNEC+c+4;(jp!o7nv`n*j{XAQaJk5@TBa?5poH^?p2rt@z z0WI&d36kNoAoI!G5^pJdUL5@umZp zrGp{Mx!SS(QA9oy2NM{LE^C2?d0E9~==$>!&3^*TN^*M2d)(&>y7PX^he#zaHS-ZV zEI;#Uvllnq30Kwg%oLY*ZWMN8+~rh*W8~T6tPtUx$lv$CvTIRnd`87Qf%xGctpR+-Ka|ax-nLj*X zXQEv|857;aoL3FexM8Yc&DRQbRA>10{CkS+Z0(sMeoUoVNPB9El3H=d>Iwluc z0sZcmi%qQK9uvcepz*;|^fAJL)R~ofqm=@%o)$lv=@S|@zkL^9*>*6-Y}cC7vwH{; z)LQR>oQKo0L>k&Q1C3D{MtCJ?4;gf*NBmiD#_e()2ek27s)e%(jSrbgG-Bfpnc^B* zKvo%Y3O9w4KjY_Kwe(a;&$>wjwY5V7L68R~EtX}1&o|Ol~G$hPx83NyIP7 z%|v1-4ZoX+IO{CbtC-DWjl@%0liZp;#H(Nw08;B?)bmE6Zhe#E_f+^fAgsS5;kyIQ z*^%zvkzL=B|Fxq?w5u$ztE#`N?z^j*v#Z^`tGm9d|7-U>(VmgOo{9dRneU!O&Yo5G zp3VB6-LE|dyKzT(UIw;LAAI*Y$J*Rccx|9^DW%Y5JNEXiOXvD=FVP9CPKV?}!YDnBGtG%Y!9KGsacuQTR`Stjfzvtt(|O<1#hlaS?$g!v zQ*5%+4>>FA@_Ie`7(>a2-+ZxmbIxig4#V}2!P2UpTpzY`qAGaId8ogfBCMYLqB|y< z=vq2&Cv}3H0gnqyp%oaMv(ZP=zxS|a$0u&!*q#o`pP(6DU@Dyx6Xtjao>@$t5DTCY z`vJ*n22kvyHhnK?doJlWE*YOMncrTqJ_}y48(bC7t_>)E?GUe9s$WhWoR@;bPq?2K zvPYlRxTZ~*$3xZmfy_g*!J-iRQ9(gx8l}W#>#Q#DMqx`xv*u<`owtSeoTFH>qg{*< z1;b{mP`R_9u*)A;fv8#!gc!TTR&~A!mk9*jLbKdj`;7>kqkC>F*D(-xKW*8SfS%=9 zEF);9CiDI5(W03^pC)M&YcP^)NL`L@YKF>i8AnZH@ACLVLJYnElnDWX53E}R+zOUN zB=+i!4;2RJbv5PL=l!Ye46sZfs2Hl(cByTC>x8}=nF^0JGaLF5aV=IS)`d?*Q`1=a zpL=Mjp!<3Rgt^rCzY=u!wdYo0JhO&>D!h7Qhlg$W^euaHW45aI#n+HLbHP!Krc_;< zL446JdA=;KW-rOgr66JW6x6Vd>-f?G%lvH*j7%sHjH9$I7JO0dG8}c!uhsatKnR}Nk!rbG zmHtqM+Oc}I-tQh*{Y10gbTUUgQ~gxC*>8L@oQzLyl8fPSX{N2q;mkvnNbvvOpzxtCZe+CFuce*J8-++-UGQ;hRt zWDVPN1CB`7-PnjlNpNj7^X6<9I}_cx{-ayv+gW67bxp#2n-ds6)HiSSy>$)htn}&M z&S=rkLeGxyYO}QTZlAv)DzWH#e;f0F>Kaz{?pJ9LxHqVqY_#VB>!k-S+rvM=3XAX> z?XG|$0COAwm!bMlaFv-;P;baUq_C!m3}SCIOzMX6=*12?!{5Jb=+>AqMkU6DOuz#{ zsuK?R8@dBC;$*R633PZ=3Gt=)pfB+wA^yRa?GfD{S)~|ScF@Qz#k5)TEm07zsNTZz zvh~q=C9!@Y7Vk&tW85!nn2L5vWd6tsVy)tjaiXhk<>TQ^91VDmApb5IjbuwRDZ19k zrYuE82oVX}76nMiVrw&{u%JKG=gDc5pRjWLj8v8n1j=12Nn-Xhw?PQhl9m6a2Tt|8 z(fG$6m{Z%bq^Mcjx@L$|$F^m+S;xKymP^-hgrY_F!?ZY8kpe7U)0cqxkXT}C+Im$| z_m!c8^{}Tx@J3L?OsRh0_vi%@Ur@O?^^>kFrCylEQR8d?IU~d<5Knz{Tb`nk-4MbV zQ)C>7g#{3ir(yLVjbJg0C5;Ao!tF&HrGQfdUGqP&C-fNI8|G@DEq=_CTK2GriHd>~W5GK>V7LHw0Z3Hdn~@H#%Xz~(R_+WFw3+V7mQk6&r$MrQ*(BN`33>%9gb!Um z5+g<|+*g#2`0qmF1iOg$X}0yq4>AqFw;|U8;K%slefXy{_{*2aVR4KG#4{9u%XvSj zJhRAr+k7n*D$c1G9D`zvwEUEe^E2*9S((l-hb*MYHo?9uakpB90eDLIy(mUJVT%gH zto6jOV~xOPWPMY8;NkoCBJLHap@qRpJo%b1+^s=z477IzpYv)9II-2iq*zg-0Ja2? zm^3@`@z>#Vfn%sWWzwwN{sIe1Kij+ zVWJ$77j*uq#$a4bDuFISQ**j&Bk&YXyxfpvG)CD+DF=zT;jZ%lB=&Hui^7*Flv5Ba zi-{}p?*g6FQVN!`qO~s_%9e5VR0$E!Y6$Kba%3p;% za#rfkvl)7a6xH<}a(1q>nHw{1S6nuZo=03w%2*L6y24cOp@)GHs{oThn$%6$#LB_*e8ylu z?=JC3&n6ta3IMuc&Fmu=)*#}p6XJf++pdF2z=W!i*gghbs_%Gyc@6I+=wzTWOi>Ff zb>jD~UMDRn*$jSj?E7p{}G-7q>&KZAsvRwFgMdJ#QPa$%j$HZhF<@qPm3 zf>mN~v>!=EX|lo8REmHuP5|1eF<`ZxOpf#*snd-tfj}xwtKcBM@{S_P7f?8IDCMcw zOhc+iq0fRiuR=LEgYHNn{DTijk1953Iee6IY6XI0Doo9XPGp+o!-jso)G(@s_&Dep z>OVS9* z<{L@(e#~x%P_ET2q%apP^+$&YFY;}pboU_+l(Z=Or#0;TJ0YQ8aWR>}i$rhBEhS>& zWW!F$C{U$7!PYODSL&MKk2Us6)4WegUD=Dz|2*x5Vq?Q6{slcWh^&s0{tr;HWL#BJ)-tY|xok{2D7@j6?9IvD|W+BZQ!L$OO=Zf`o*Y8-%_-3M$J$P#SyrGrC@r1Az1pq`_WPZ=uM|o`BDS zs2IXQI89JV!U4?ua}DV@&V86!Juny$SZ_we)xN!NeVPFNt8aZHxP2tSZxK3$D8>4S zPlQKEAnVq`@VXFeBw>7V0NReogU=rdct$lL&IL^r{l=tHCkvhE;@w}__m z5D}j!lXJJg+~D^HT%D|b{lNi)ClT;?*VCP-mko??$LS-NN#DIYVKLtBP z41+^^wNG!gU)N@c-y5*`tx1KvpB7_~5UB}mPLwXISEjJfgKZs~O|ymOap zUv$W(UjK;H8+1hP>xzOB&;hg7s4sOR$jw&y9Kp1Ma+< zM?n1JbV9Mtl6lU#o&-WaW?^GwAupcKrAV=0i@{+3o*z;@9(<6hDCxkb@l%K3O_E1yl0a+drju6erx*Fv$@xe&2q2VlbnacCA4`wwHh>IBiAh{L_vyJS zhR8w$*hNZs2G}}#-#d#CxF}tyDj_lqpL)$m@^v@th)L6bA(&Jow(T`;9Kg$_pw3ok zpnv%^%{UhFsSzk=Vn{Aj;#xO~Z@^4DUW+_i+bGfFiy4|sQX+pDCz~}Dn`JDVaZFNK z4<4i$nw^@Hb-11)xlt*EnHBPu64;#ydDWAj)K7OwhO{Oq_>RMouc>FX_vP)Uw8mxU)iE2GVH#1b zFAPbDjS#%)t)k%~sOUq0k@S@~Ya)z%{&7V$bX3hFO8$ZFE1VCb`-FVss8@b7K6kWgVi*HS7_ZF%X!fO;LP&p(8<(tX%6)U&1!@+&JH%UNJ!gw>{DFKqEd^o zC<1K*YXev-Td`u*h%U&XqN$uN{vIa)LKonkoz27gE)$Y%TA=0iQp!Q1(6z(9cLerE zO~+w|p)<$rRzYg(Y9QKK+&r=T;RQ>T+5S~}{qIzimepBW4Xyxn$SCz{fCiViGJeQM zWQ1ml@IpOgb`OAhA7q|2X3Dd*B@;epRww6Y}!Txa%pDR+9s*jx7Ki2_HtRNFbSuv$d0nF^FV7=*dNH8yaE;77f zWC-QQRqSv8PQG6FXQrdJist|z=MrId@m>2XWB4XL_}3qJ^;y#*eKe!|S4Nt`;Z?%R zZ^|o^Bi7^)A$W+Vr-1V<{i&wN?y3mmZ*L)8wLHfF)DIEciW}+f`n6SX)E;%Jc91rj?gnR``8d%&&U?#A3XJwp+ z&=YNekGFF>kE~5fA=~7*hziqOo;1}D%mW^&;dVv? z^2q?0F|fjC;d<79#z}ZFGkB<9c*nLow&b5})TS5*7t8Q(8fbOUYfE{ZQJe@ml@b5L-C&2*5W#;@VR-MS&;X!z5CTKg`#&@B62BKw$1J5d0OWt@XRYKv-%eNBgz zTuqC3>h1UUsL%1WE6}e^Ld(kZec`*;b`h@tec2rI$q*Bi!*2-2am=fvuA2#Ix=-2f zxzzz*hVpL|GqdY-Kj)Y0R+x4>rAp}ol$`Y9aB8?z2)Bd*sEiPV6hp|}VFGYJCQffT zc{90|V-*wrQon#tn_1&Eyhtd7bX})DQ=cPr$MHeG*1{SoP5XpECdMu8jnXMwZPiMfkb5%?8Iq)D9BM6OQufW!nI()r6 zd`@%ZvtMWncJ^WVW3Qe)-o_(WBUhQJ=>yZZqmHu~HhcghFJNw}ZLuD>aSBBg~83jR`q7N2aXe z0XBSaE9_PPodR=y^>rbA<`Cwcg7+pCq=ihZ2r+x#n$+QcF;Yg?#_7>IsP8%Wt$pvf z`;LNr0iwD<o8%R{#ubP86{p)3SJ)MI>J?AP6>rPcyOArtg)9F3D}mc9!IDTn;I%N-HRP4Q zsN}WS8)s{>Yl-JKq6*hwgKMh~*CGZ096(?I#91oW+4TiGl2#%8);YA-S#HBw?EKmi z-9?z{Miv{QB6*{#P~sbdAWaSRdh``T+8bd>Xbi<5g!iwA!EXZ6-cUkb!GfW&9d0!J zZ$wjXqVY0{)ayeXf}w?A?16B=_t5%GujoF*X$!sL2LiYp{8fA5r~&?__O7qoe?&mr z#&5o&z`0f+_IJK}Lmubv0R-T@f)1#CMGXYFLteSq|8TW$wtasa2nhA!3J9nTD8Yq< ze0X_DI1mhCcTFyLGtoPN(rbM;_m{sr173-h-bD)DM42}u3kAkV2E<}R5MSMCT7(5~ zxkO2NI2YW6gD*85>cp8}iPVN#-33!`-lSjy@L%0)Y6iV|A7Ufqmbh`9*;7I^4KK|d z@cLzltr%3`cCVQhM&bVoRuS5?<~}j?!9?dqG7RD(=+$W80&cl)e$(6-=GBn;sQ>Y? ziRrFmzu5oPpSR2Pe^N;`{a=Pv+^mIwZ(xW|P`Gz+jCVkoS5Sgez7GJ0;nKUYcp8^h{9R!RMpfvgcm+Vi54`pvL18_-sjNj%kPf!QiZifsOqN-7$> zK)%+k4uy)rm+)PB!0S&8WaCW8+kekMmL?1OZ^b~C{@ME%m6ZCP;cu0ckwZb%KdPko z7~PEi1qL$BUYbb?4+ane>f&{VS@oh(By-5_yaC2!87RxUEtpEmd9Mug;+UeLPPO>O zeUMMTe!Zt;12-O*50NO}%<)5jIn+xcO)V=_=Z%;x&I*mlEh$LJATNu}D7Vt}orgIR zsR?~9q*f@cwyF@TqfD~)XjbzaX~pLgBuRs1X4tGABg@6$GOD8CvoH%oV|x=Y*siTSM>F8P zH_!M5iL+SAP_9|l9Cfd58HNVGQr?zK^>+CmRZ@0$TaZ7t%Unc@&yq|(uje%Ef8H#b*Zlmk>URF~H^b`J-A=0guls|Nmu1RH%l`<&Di0ca^zRr} z+TR0l{+?mwh}8l5A7LOL(vSdOR8lVtO{GPUee}Tk|7)0f672^QbGSR9}K>RL9oLPFcBkP0>dd?lB8CW*O&;GqYIBGVndm( z;#dO3i)l@?@xinlhvFYA>&=OkR$>Wm$iQRD$!KHbbOtKy3SY}DY6zCXJ&PK3ly{Ol z29cQ&>nDO>u98$mA#JLg?rnKphf2Wet!>163 zdl_53F|Ewd%07XB_)sDv$>l7;`(`cCPi!CQXfb5jUM5XQlX+}S@^Xj??A0giC6SiY zU|$5)ML<(&N)mwoky|p`rz%E1#8^6}Tq?0Wv=qLIT79EIDY*Vx#a6gn^REo#3hjmQ z`Q~;t4>{8b^$qET_T`&u_sI(V+wq0&gz6$?era9Fh=O_8W~vWA%MJdCN@}vwjO)|O zcKJs`9&(k1Wfs?QOt4b>LSmi#r z-AK;;9U!JQlh8}BE2G*a=t!lp zu$_~TrFO&LEU!FuJC&iZ6l=KI$Uqj^DqfxKMr6Z(4$k{9_TnW=^x)gHJ>$+(6`*>D z`lZ5B1b6Iq(k!ikelH}C=Q-PEel+t&W{M+dX-G`nTxxH1-E9~>MeWxIYS>9MZ>%M1 z(NMPf&J#1zipvq>ZpTb(S zkGylWKeV-2kp#8FN}Xxzo66bBk2N1X>w=OQ<^e2bENFbIatZ zo!8^arWs20fZUl==8H;7zNLL(^31j4aZQxKWl~yBQ=`Uokp?thro(@(G2m7D*39(* zCa20#2C|7^N7w&?c4mRYx4O%T^oaGT4@ETJ!uqESWa?*ywsDQA%ao3%UFO)oGOQR@ z8KzJRuClQU_sQOPiU-@-7K{uY)C+lvB%NIqzx%l-+u|{2EpSuv*nXt`Kc!^jF|E7}qbsN#~c(nA!tMA9- zchY3c3RnZ2(uc>pAHPPo>yXa#cz$)p-G=XsR347|;W9N(%RJwaaeIID>3G7s^=6G! zIDzDvJTY=~Jt~PhTqmBKS8*XcLTywnz5Nl>i~Yht_J`5*hjaG_r1|$k`5`R&qulue zaRSh|128lLu-pT1(gN^W0|*uai0%T2aRN!X1IaZ5Dcu99(*kK*1L+q78Ses_H3goT zgI-ipAgEWrRZ^plFVEDT9fEjqg82@D*a5-9X+aA&9u~sE;sB6jYY_fOFq=iNf`y)R zYp^mnM3OsLwlqWpCq(NYSOF5Gs~J>I3>0>UE&m>@;U8)Ycx8GJqz?$eqY4qE4mEDo z)1bz3;?fl=$_x<0VjYw$-NvQr?pLYH^9$}XK^LSJ=nt@=y?Oc{)pvb zIb?xoS_j&{#-smO5o4!YVVF-jWc_E;E@dg#{#5@Pkh!W&B9+*15ZNE`$h0Aj$$Fyl z-zj2H_bUHl+WkMMi1~ZduIj1(_Mc6=dp|_QzG`Y1NBv>i{YS(vc`zHTo3WhFB$IkB*p`0GAkELGF+a?su(>q%Xpx8E=h`(K1uNU}mZB<1kd>S{0r9`N# zDurLz@I|*K+2zHwd*k9Qr=#OaZ*Kn1RhX?J)z!p)7T0a@KQQgS#G^O%JY3sRe<)&9 zynk$4DBJDk-D?ru?`6HN=8?>GJJUNT_Q?UJmBF2?BNgJh!Q+4l+d7Z_s`0vxs z_Dk_*Z!n|1WnS};GI5O67e+s+i2!axQ@DHK`R3tf)607Psi)CpiR4nHLz|4(hI=BR z_Y?aT=qV{85YDDC&QOyhje{3gZ`+dG{?544vbVWtLJGS>$`#2E6L9|M((}}1FFMKP zT!|2!6Rj^^dG7Z*bAbT(&!P0!IgQ>25=aq>XZ{~@mt?_0EP*qrd>HAN6tT3Qcq*ea zR7k!*1&E>6a~Lq16p=(*Vj0r@jcIo_=i$0!{{+n7Siyq)U4_yGqf*Tu~K!7!LLo*mxB5?O1k)$VAUn3 zGQC3DrPY^s^l($-k6iiwjm%;{-j7;Hw45ILZ__TPK3mqDE*;v^i1vJPW|j>Whu2Fy z!eY-#23yFmYPTo-XkaNj`6!PlzMP-p5$W^yr=4#9N<8{~+Iib?6{M}z_mA=D_i1N^ z+WeP4pLWt||Dqi2{)PM!kD?S`q2Kj>V`ctpJo=MqH<-G$A7|<%9`Ow#ez;>J`c?aa z_%%WaZ5^aWSqxYCCyJO0ZFN3$q76HGgdcgaE-$8CCX>-Jkd;K7%?_n;>XjR_XmP%GU6TQ{ zVg=S8EepP8?D-Lq&lS#>iX)82zr)tbucHLdTa25BmoAf55?zT?Fj#5zXp<4Tj7i$^ zf8#)fsi~C*2&z0-OMYuh{wmSf%#w6!`#TBJpCKNtinb1LZ$c#5^1QMG^DYcvOl>!mqzo#IV@6lUoNqY+HBTM86Sy{$}v3Di<#E zL$knVw+q$nN0{oZ(3Z~(75dXa$HwVx7;Rj3Y{EDEox@*lB%f0Kgo1q+-G0X-gjRo~ z|G9XC6U55>J0AI5p#F|WFOrqdK>~L{jwL}Ncc^@KK@vE@qG>_m7Qq6o27MCv&!3@; z;(}#HgI@uE$0ML&h+LWh3^neCLkLVh3=bHd;zhfX2YUrXysCv}sYQimc}?>Q6}m5k z9}=Qc8Wf}W3bKjZ{|Z``7&s*aWd%fZ20~3T16`>@?Xg2V+R}mu@?c(Hz{A9$K*uA% zIlO@*Mu4eo|luVni4R z_~y|NVQwVaxL0*Tq1<42Du)+)3v@^+5|9|~bv_)j15yDXrXnqvTk~bf5`0%0E9oBl zvo&OB5po9(hPI5o!~Bcz^AAuD;;WU{N&h=RJ)70S{bSR8qf`H8Yv~_t>lte89&G6z zZ0hW9Z11ga?XGR~96Y_tXE(K9ZIT5g;h=i<=go2Q`9J`Dzku)8bsF;8Vm`_Cd ze{q`o?+xk^4kALM$#-yHd|CVC zcC20H^BR$efTeo9G&Gx%a-y})INUE$;IG0@SDf^{z3DtrH*d<{!cY8nbYhe3)Q8bE zF2gCUX;wC!4O)AlnjKB&8ysq{-&SAO4ww%soMAz-jGSVpMH#skS4~}($HT3uh&(!O z&xZu%pRoxEJMX(~rYj7lySpB5aVZ9J75olv9`3G=H>P`fUUV67)SLc)2KAI~1|o4D zYz6@(sJDVK)Gf9`aLh`#LJ9sp&ApUee@S!0)Ze1m=PkZP{|9MqCqec<7JmMb<_^`- z&5Fy+;w-8U_cA%*NPv_M^Ook3w(Dj4IV7AU<~f}n7$K${gMov>Y$F}I{N%28r3$G6{Utj+{ly0X9mQ?Mq2d;tmZjaI?U|4JeuIF zob8qa(f)PkGwEZ2IXk&?PdX+E4{dA3PSlrM+G45;M1}&`3ooViMIJF`={MFpOuZ?d z9ZYRp4q`yHu)FqXdgZ!S)#!n!d0G(o_e2c+gzk=p4UE)m{lg*F%L7Ojv#IAU8ysJqTyP0a$&+(Ubs+TaMu%Y$%d>ob9OHuT#P3AQEvL z&6jDHi4wI5j&MXv=dbvPKs3+_LRmpyx2$X^dY$g>vpeY^F|;GGc+w~;a(xFmo*fx9 z9~k3Jb7Gtv$dC{o7ocX*_gnah<+SZT2>7prpMYed%YPGo@|vlyvi(kTFT&5u__(M- z@)FYlslNz6+ay?>{<-k;GPyRYh~8Z4llJmuN-GQn_PIFwM_7`;wv&jr(}5k~7%FMd zWq9y45^;u{AA*@2%}xOp0w!z< z3LzTgxEY!Yz`SHW&>@853J-QNAs2N42p8RkghSZLt&~5y|MFVMUCWPx| z2^di@$c>e)am?zP`~j`l4>x&Sv~7%PnPa+;`GT_EcVQ~y?urlLEBKcHt8(B3hKFrg znWVF4Vj9|D2{gQ=aPYWFD#ncrw+))2y)33#UR?@W@P0@n z&)J05-3F&Oaqfy#gaWK>SU(t18%ITC3)WpjNNlU#31F~YSxn$1uNx-!vprqZ4x&x^ zC@@Rz3M*&i*e{HCI8>GzaAK-`fHsa09EuxYn8zBZ9PXT=#Qg1;m!wrxY1gC<-*C04 z*%KYoM6Qqc4MG)dB%b!1rRFCZOl?lbx)@hGpZ%YgU1y`*J=vdiM1!>1Zhk~gLYKcs zs$jdkj4{fS`{ZV9s6TthA=lDXrMlBmMn@$7{$hm|=Jq z)J)v^{h-QwN|DnB;l&fP<0-U0^b31g=q!_A4Bk&j9*v^KNSIP3Fcn%2He&2m@h8e3 zLiUF8%-)#;#ou1!`5@hh^87?sKb9X16_Ij7-mA^t#AS~SLCDNZi+>8;na3`xl2a`o zn!6Vp!lfatl`%38x_ii0oc?inrCW8f`)BW47ptg7&D;7YABk=Ti_Pbmnn}-8_tY$} zZ$0tLey~y(*)PJ+x1YW&)C(}yopPUkw3+v6yLeV>*#GH^*z-??p9b+S>{mL=7jafY z_x&#_z0MIa%6$Hw1rX>)g$T-ILmj=Y-w$dL?;aZ+`3^^Z4}BIpAUVJri6!7u3%}Au zfVu?ctI_~xC?CW*w8dMxHlgn!aubg{aMCYHN9re~{-cbZHw7A6I? z&SMA&BN_7e9H?T^#7(yaL1=)W3Wt+k&_-*9Q|5;>1S_?$p#gEMVU&o>5(PdUXgz%O z>B2@t9_6p-H{6DyL%RWDFQT<@1E0|%-w3NR#YZ%&LR3q2ToP(db^|KmgKR2+cAdEO5 z{9xO>V+c*?AZE!eoSuYU5GEGiF?PxY@^dRzy-x*(hd9IC>2&nH7qv!KL)-*Aa6CiUZw5xslimoT6= zGKMqNE!iF;1rH>ALY_iJroG4x^hIM7R%G(KOtGN>nk=RGLQ`umaRSLx zQK8feIT$a$rCMl_Qq!ObzhXooNkcbG!MNb^x#GGOO}SzNM&L5~kfjGLQM{*sx%ndh zzDPc5Db;xi7!#fvy~L?6o}La*73KlFzDh@e%7D8_PUhjf5Cx`LW?r&!CbwmPVP$J@ zGyAoG`RQpu!^~7mpl^5XIH`>JrED1C>;j&2G>n{Mn)KE147e?-G^reH%cs zSzJCS&ujof?qGN>%0u2O(rh5F)HZ8AmS;XrMm}D9KEZN6(L+A5wxEt$lBr|vYpa6s zWR5o;gKK)e&fVG-Tr3>UsI`ya6IZ2$)z)Xq1PnvCBX{1W=!J zRmoTMa;ks{4}5d2wDkV!P!Igcf6WQ-kNLenjfAu zcNsMg?KRPJl>+tUxk^=9PNnP(rGqmSv;$Gcp60f7`hZ8A7HNuUSFBTM${(iTbD8|TEMOh!F!3WQ(kx!X+4aqXh-Ae1`xG$^jRMh&jRS&FEcgs~F;Aa&>&W+jgp~Ct zj*+wKN}Vnt9_l!(I*G{J#&9dF+xwWT!{qE{C7i`E5(zPEnONaR7#hcfS}PYugC0ByY4jP4=V5 zuwr7b#{khLKh~!T7r+-<V>?snx(Ub*@}LdUXF1F7 z4>HjYfzgI244p+Qhe%~T@Lr}4eM3ZbuKE)|Go)cSqd}alK_l5Aw17b*$DxSSAsbn8 zr>v37`VsF{2H&TVK)%sn-O*6*QApNk#Ip^?NXKa0(P&(h0}1|^6{|n&MTD{R7{ixQ zn)vbzJ`w^zF?L^6;?vmUOw+rqvEt70%i^|50?MqXaZ8d~eU?O=N51+_s=BOCovWX^ zpFZ^xO!V_j4C+n{%T|u)QbIB(@L9_yWHE}ea2FpZEDgsh7mcY5CpV-gZ|Xk14Hz$* zm^1~AcNP-O&`+g&Dxdy>RUS1}8qiW01p0n5)w?x*9YwzGJzXzDFlE!ITQ~7wgEhN~ zc~9^e&gU~A`!hnvdB z5eh4zrxE0ksbaV~aCBAq0zMPyeQkOdF_Os2BjcZL^2n`k|7z8TUV&ItN0IZ(E4ki(P%@^Mx2xnR)UXR*K9n#p-7cgJB<5R6e%^?#3e$Vu3e{g$>MsIY+;t9 zuMMqV$&dLub*5Nd73HOb48;KCtSx4*u>=(?XA?g?)1a+J%fl|Ob+c6Vd!lX0t-~d(zv9hoDqka{8p9f4_|(Mzi|q`L3M~x#j|M|o()x$V^EX<$6JJQ20R(tgz?47 zTuMKb0@g3(oh~UC-EU4xp-DOhmjrdi@s^psrZXzWe1j z?_c}=LO zU3)WAA2{1r!W)5>^y?tS?(loSp=$R***dT;=54ipP4N_Fi$17w3fM7qa1Rwb6VIJm z*|5*sx+2ptG>IWI-p&K64?Z}2A7DdcMv-oY9_@RI%5ogjecDLW-4p$hQt7xyI?7mi zhCHBTn~}U?>a;HJD4y}S^zo_w_vERw zuBlV_X(BIV47*8;g!!+2KNs})=UBy0{K8)JhMx#LCX-}Ai<5Vq5Vh!s&qB|SU3f2^Zi&V57hR%?zwnG ztjdK^`1z&hXZLf>z%(kJ!P{TUP$y@XH1O0nN~P3%TPF^1rv@aa&KnX1Z_yX+uDa!a z&Y}{?DHIRcW6Uc&{Tb8)o51{su;s6y9`s1nBzKUpXfQrM%G}-OQOUmr^&mJaGgD3k zuo?68g(v3AB~R=Bdcr|73Qq*<j+n-6O&wO#mzD-&1%H|9A} zgn$?UtP3ZSoz6#*#COa`gKz&nSTDj?D~@dt%p!qnURWoA&(^^rN$6I1AwuL=C@)SN zMqUqo0rjv-QKXvGOHt(pv;HA$k*2E|WR-aV_0-ES^}w*nvW$>7$g)j~vB_~Pm^8?7 zZ3MH)^Spq1 zR4JvuFHEKkw+^i51fK+q{yI1;Uzk@v4da%_|K<|?3-2^!6KnJ|eZSd@tZNC*d%29{ zNXIIzD`(L-(3`gNd(!K$)vpy?{VRvz1O|}Z@mOCT5@J=j$B&aMH>rCwBcbkBBj>|> zP79#y)sJ(ILED-KVi!LwYAF>g66qb@~rld zGv1ivdHP{;ojfktzW(v_|9xSLw}RI=IZPCQ1i&{)l8jUsN5WVJsc)0BZ~yS(ZV3)Y z_1KmuNK2p*nF+_VhM>_HHAH_0LWJ2Pm3tvHBzKCWrUU>ytWbhM&r(g9lZvkzcZLDqX~`GB44NcNvRKW=EzF( zACKzRi)Z6xqg1#F#)pa*(fB&T2~1KGxhu-Y zExswhskPIzri;f4Rh^iGvwVs!U_zEt@hns}X&=N}NN>I>#?+_fPuNXi?x1UulwzvWVFl?jpv$Lm(as4`*CR>TDlA zP}7kA#6Smr-a(r7+0E~ci{bC=9#wKvE|hxz%Cf7o=kw=?A*rqNLqpQ(b5-|r%7=pf z^ivLU`l%;E74W)S+YuPINc9*NEVBnVoQ4F_BmMR>8%Q=;odnCRCv6~?Z+$c zG|}w6R=pUUnEVI!oK)lafu`Tho5pdo@=@b9ke-)z{9&%g))u#@SmTELhyb+Q!M#%F#>0$<@lL9_cHo>nN%r6jlEhjDs}n|6Gaa|Cdu< zhku#!!k#nyZ_y1b|D0}c{GaKDxBp5v@C?i1T$_`fbTAvIzm`n1>&bH5Z1vcid7snq zLjKCny55^&j?>uFP+Qj>|N z4|(wLBQgtGtW_J>ak9zEKgH(Vd_O+VeXd?T%X9JTHa57v=2yV(DJ;s**G zL>Da)RTXGs;J#f6AjffJPzP=3e+UB~IvD*M-H@Z_NbP%Es!tHgxr=1Y`nL=bZ|6Um z@?IV9{qIhB|Cg+KI4<{bNfd?iaVe6$?zk*L^wS-yu56l4nr7%+TbN;ammzZb!l-jM z<>ltiDM@nvRBIr4Hp*LBM>g&(CXCisFlzH6t5@mp%HYv@A=J)OHzf4-)7@#X?IUIX zcis*3ifoS-TLE&Z*%rCzsgyQ;*a>MTg%izbm&Nx(X#r~K29Hn zQ^)gpOn235txSQw+g|v`=IYOzWkbIyPML=U0O?E)CBZqp7pxMeX=6BuhUQ^P?aYsZ z^$HjD+Jp~JRdkqM3wb?aaA@!dj=~0SO)WXTOM^KrBE7eU4vm*9=6;_qSD(c4UHzRQa;$E=+Hmdqe6{J3 zeZi>uY}D{tw<~zLMM>@y-Rx&WG!dfvk`$25-XS!RO4$Wly-eN1hW%MI>xWI!98j9f z>ueEQg@TVL0*Dvi1E?h6V+jFS$;UOfE$|*m<4-@g2!gwy4$01ZN-wywDgBF_Qe)~j zEP%o8v*+&;ZY8buId7Ax%`do`}C^8 z5lbfq_R3RER!2q52f0+1ONy|`?1yW_=Yn9DtwzhWv>QuVt5q!g^lvW+QXRr zlQ7)WVx|4+shA4{^Enron96Gss|<%domGt;kv6Uk!%ix$+fn469!Fh(SUt5t&NnLSz6m=_ z_G*-gc_~iMnMF-f4OmC)Q*H1jhT~$+p=ggp9q>4eqI^?a%Jw4z$yBA4cD3S~-!NXb zgBTw!p{Jf-d}qG#eyfRzKO0GXQG)ZVERig3A!fy~=s{$SB8U27oasdw<*OQHv6;oB zz>9K5qFPlI^`*2teZ+!vt-8_7QdaLp<%7gp4F~mqXVrVlRZOEwq>1WuV%3++s4r_& zHS2V-4MD-`1I4))~L5Gwhmq+Z1?N|AeUCc(N|nNO!Ek?f_&;Vr|H2 zY3ob+k;Z)5nao;2mn9~DSB=#)mF1#?BeDQ_BrHa-lH10(>3Jd!J(4u<$e6E-Yf0sSxYTbyt{nl>9eWcXNVwQmBbZ;WU zV5@&xyPk8K&N|qr?!qQy&X~tpDUWhh>*r9HcxoHG+Yi>EdiF3TuO^Ipn19}5Jat!L ztWONXDsCC2UbKAGnBnyW<{wX;BMb6O^*=x{6%HWH+>P7MW)4bot|P{eM4 z+zhDp3|a999d*<4gix^DupvjpCs$E$ac*c4lJp@ju=DXPD|rzpf=XyN!h@3KSEecz za0;ftnjDwdv41oZVENpUbOOWd)$>bz>*p6gv@;t7d5D;8pZBLme0l{+{77lR{4lEj z*~Xc2a9wV=&^hby_*61p>w$|})C_4)wG#6*tk)BJz%CRoZ$0m@(&IZip!aQ~@`~x6 z`mVpXU#geN&%2Xeq=~Zyg=)!Tuia@&FSyG9icb^sfR?>RV8itS)^1{(fW6#Qp4;^J zY8~vL5cTH%dUZ99?yK~D=&~%mYMfr8LWTtE7*kJMt}SosoPzFBo9a=xP&TOtb!8D* zKVuz%t7UzI6*5?0x%KLAu`d?FCzw`&Mz`oDM z-?xQZs9Ra2kX&yle#=rFz_adltWIGL4xJj1Qg{+ZI`+Xk^H};jfm!y#CfmyA2a3!C z#WDHa%yB;NUQ;`yB*b>IlZ17;1Xz34sq*X-qD@59^}kfu37ByU+&7y0ZIZfuczxJM zGc||Ru$%fTc2_S3ZA#@q|IGFJ=QFVo>)rUx^ z;uABI$10tWFD=naR)^PW%kEyM&)*q60zr`x_aPq7=PbA{3`Afv{M9`qfn0tJM)hjv zSJ@SX$p}1Y{5`G@gER+7d8q1sg!S39T*W>F)`K&s#Wt%gjlz}a-{Lv;jrEshVWIf_ zfkyXS!C~yu*FmlHy6-G`VPH*%X)V*e?8wm>_v+(F=bi{=aQy}SbA=;(CYmt*vHP8$ zxr&wEF?j`>?9dnA7SJnN5+BBThuK&6tfQ}U&yQj=wwaFP!j3ED(in;vQa-&1jnXH9 z{H)K{5U*CPb!k1gbwB*EaP5xUqR{0B#((aCLm5OO7{bRChOp8&%hCWqr`6}gJ6;!LWK!3FyejqZN+hXglyOxE8I#-_Xf$_whycQad^r3W5YC1O!nO({ z#t^n#0~4=lT^q$XK_cyQVya66oY!KW{)q9QjP(+a^)`<6^^f(>i4E+I4PJ{4{Sg~Z ziHsCSMj0bx{E^5UWL!5gVGWst{((%PM5T$NGK^7K{-~TBR9-i#U=3CD164v9S0)}; zVH{WGA6JtTN2h?@HWbGLfSPLJjBw)HPZ<%<4#OVuhxD(- zZ?h+0E@EMpCX8_=%z%KgDPYbx9_K6`YdC%!nP6p*u;>pSnTp${1m64r7Vip0j){9y ziCSz)o5sLicT#V65+Ndq3YJU=Bpx^>f1OH_j7}tlCI9eGJXQs+KoCq+(v^71A8`Xr zERLh6}vn3LSnokDbDuuYkKUoe?;JsC2bf>W9}=$}d@q5p+4jR=;C3nYDXOks2a zj&c%T`KJm7q@mHAU@^6Hp7jLmoj80o?1eRmd_baPZlWkEeP<#~y$5v%IOP7w(2@8n zLu43`X`GvB+LLL%o@sfL`GiZ{lrk%vQ_xX0%STnl7@38lgey-*xpEoWd^D-A_9GDs z_B7$B_Ev8aj3Gh-N;%nVYy!cnPeqx+{JH+h5OL}<21(dTX89+Wa2-UsP+?}LOK=ZV zF}UaE7Tx5QQ00|L#w2bEi*1Q~GxzwOB1U(8pAJKt8Q8*|9_!cWdqqqJRu2V2pvtJ`0gZE#|L_;qEP${aG$gU7;XZ0XMBs4y;hk zt5EN)&UlDOMWhh{ zDr3>o*-|bEMp>@OK6^k*y5^7%{ zVgpEV@F78zwAMAu{RH0Pi?TaENUdWSzy~(e!AH(b`FW%t^Mo^gl9GOMAS?}i!~u>I z4wc7<`oUe@rqe{bQv;+5T~Iqe{+Z2gRV}U_&BN4;BUN-Y9_oVCQ1^!H%o!ZD!Td*( zJpL2w9yMxc?BNwI>`ruOmVKKnwsf3KL|pOK5lJm2e>w$ z;8;bl1Xc5xWpf_ewXp$$vwFS0qzF^;d-0V-XWGT;G4c`hRA#D@P;$*#!2V~u=0=C* zua2U#rYBOJwq~97L7k5Ioz8uouJw5YE1ek<(2(z)5Lg#8laWV|Xm7OHrZ*%wzf0h< ziw?uc)4nU*g=I%wOCCeR%Mjdo#Z_O%%}3f3eOOnw3^o2JkP$@b}FlXM3?0drRTqj-XzzkrFzl-so9yS-s_`Zr{#m zR}hOspA>jH=+W$KUm&JNiIh}Xyjj$*-j?rbSf%|<`F-m=;BGX*OXKs31cC?4v)~mM z@Hhd`aU$JI)7#VWl8~$?hG#&VxwJ~yc7>wvwi^EwWp6<Uf)yZJ+xKdQ_wfWlh*Fs3F#2&N|GW7I~goq z?hR|}abFo`zU^(p8YzO0NcNAym%63r^wH;|3esb6^D*V%G1Y=G_5Lvp4Fu7;J?q%@95sz*nD*II@^z zlA4B0LeAuqJ;g*oo%j?v;t|9qwvIQg8ypNtKUMx%`BHS>63Ad^+K3KX1y-F%F(qe< z5FKw!fL;w@J!xwELx|Y^lU6a+mk$eA&f4Hnfy6DP%!}hA&VigQ)@v6EMlHQu5oOGt zHqglC9zUvn4FecOF{)os)pz=E)K)8N8poUSgLxnb)bi>ul-#pjxS9#8-ml;Ex!dV$ zno{$6=?RVmhzqMbuiz-j@E}Gb;KQ!S3(OI_kkSPT{_1B)B4nEjE;cvSFh}&TM$GiF z1K^7xvWS_CPSR{cntWb!-uT9DLY)bKOFjeA) zTsCB(0BHG5qr~CU@YA`A?~S6>jPef_eL6@#-)aSJ`)HyMImXOH2)MFflby+Tl8Ch} z1XxU@X%Cn+6bgyxYQL3yKchQakB)uky6b0mHk@lQhBpbY^L}+Nw3&Fk@(7a^=SpvhuC=_ei_k`%dMzUR%*V>+o*j9U3 zsiCi_*N9v~g)P8m94z!jTTUSxGSy+VM5K)&`{*N}y{8?o<^#c9THwnEJx&&|V=D*p zjk;%>=>R}kvw57i&tXPE&k1JqCujMwC-(b*M6i8Enn1L%YUF+E(*cWY&H5!ZAKz0* zVJ&G7WLw}BL{W=IZVFO~e!nT-vhgT~NzM4^!z5XS#WN#WK(~AK<{c#LRcSfKTUv~% zcSJFaz-y)X^2$HD$048U20k@xeY$H9HPfH8%AT}ao^*zubQhiU4xHRIhz9=rl_46D zJsq<=od`XhDmtARIGx)%o&R&XK>vA3_H#NYWwbj{SM4)GA%4;yU`7ElAL6zL0FB(w z8-G|=LX)`#zfdB+NCkXx7D^YmNsu)Gz7i+h7^k;@5)X;LTJ0v1?4+G0r7V2_cZ0rN zfBCACmPRw2io27F`w^g&0RQ@vj<3!3kr*IROM>8~(w4@r(Vs)Z*l7e3=>!rPiZe(A z&RLS#Y1Y%|)WF+l*>9xN=_)2)#kS9nE#to?B_HyC;|IRTqP{&S{w9fLp>qF5%=Cpq zjsPZ+aa9ED%APeFpGmu4sJvkRU3974c4=NLY>B?KmbJa|QO@X_@( zSJ%xIcX_@ST4d1V8fWi{zjVhx3<8lNkoiqkvDG;A_F7+|n0#^d*5OBjwl4n9!Z#SD z<$^yF<)|}FZYZ(J_kq2f?VBR>O$o!#GP$1>kAGI((G7Adkwrh9=YN(%t|=96nqIg2 z%luLwc_rt0t;JMQ`}7wy;uoy+I{f#J<*G)G)=}Qmt1yzHpR@C%nzS#q!3j@)bl6au zhk%jVK-}v#L3GP+^)J7Yu8Pm`cyRwfE*n25Gc*k352m1Be|86cxHQWl{z}7q2)oJL zx#hx#FieHkyKmnU{3}D$_KghwpXr8wo+08oTQADsvtZ^uYb~YE6}J1Y86u@bdZoHW z?f=smqI27sOuokx1t#C^=L==R{v|`S1p5`{j!eiPPb$7Ji(7_?@%VQF7g{#+z{MW4bQCevH;%@Dr>-?J(o5 zvY&~2484Bzk3$bRh1Or!eSOeBew%om-|t@fhjK$e9z{6zY4C=^^;3I>aUOS7qpn_a z#V=0Q8e}wU6lkqeRJZe4MQO8j6A`Ag1e5XJ zyfc$A;RVr?m&UfpshB8Rq#Bz;)Dq|Y`!k9qTsU>Djrf=4s=Y|Eu_Q(T#YmEJL2?DK zER7WRn=(F}z-JT>>P_1e`DyObGa|suvr<_o{=-svvAT!qifER|2Q%WskDL(^f27G+ zRax@9$5jO^PG(wLD?Ulb;hImqDT5!7vap)Brm7{%D}5@7((*yRjpMcetuUwVs~X05 zH*&r;6$_qPO^6y_7Se2!rr_3!XG0pQhy``Bm_oV1tIcJ0qGoNvzmLb`vqq0iJQO95 zsa)x(vrC}Qd6r8|=3erbdy#uzRz712Y_Uwo&1@_4xzDY?9eJ4OrxGq`4XqO3@LJxC z|M6DTx`tLmm^-$7H?!iGw}DSdJl>3dO|lqufZ8uv1Jx-fhCASNn>9wlKG&hD$3EYE zLc*cYZyse<6oxD5SQ^XT>sX$wEa_C4ZQtuuT^u9nT#K%*>UFMvF(K*F*mcRjo=cm>E78TR{>h>^Bsi!?1zGZIRdc8pv{YQs=?t`!msfr!= zAjgv|v*gBo8DstW`0@?gZixF<0MyYVCdNxa610>%r3gJ)_6>aFAqI zP8H!Kh%NaKVsf|?6`_9~S)%tRWmeQun6i1c?}>E7(51XC6!f;B3wzI@cvb!gd{;&^ zt>YjbdsHBIK@s-j8cE_6oe;(`)MxOBcvQ-RDB9F_=w^ojGHPNbj^J&ug(HlW+ct*c z!u+GFxDtjgAxAe0ii9Dpa~1I=Qppzdalo;ADdYxrTARg_H>PF6J<*c@`L-QwUSqSxKOj{RoB5e{{W%6%$ z4^LG^$jh{JEp79qX{}T~n56Iwe=i(yLe-dOK`cLiXa1u>Ag>7#O3Q@9XFskn9Z{vZ z=|<%q7mO>2>8i(xVi#16)hJOrLp^0{bD6mG6WE!X3+08G=l{;W0e_l<|`O zQ+;#6k@V&aP)_gDU~A!^D<))|()_g^4F)&@pRBBo>vS3)V(;h{)&j3SowFAna2rMi z8dsFPO{cUvRndI}V6#oOdZ{@ofT+3W`>!}V?FgP`nnD)%tGZyhhdO}NhC!Y$BjnYT zvsBqTEIM8mOd>V+c}$DuaduHR2-4fm1~{3=lwJOf^nG}~c8J}{F|5RUx4K-u93beq zYc0uV&}_HkS6FXW2)NLdZIW`ivUvQ?R2VW#snfl#w4nN?jBQ_^%KC!|mt9MVn3uCu zL!9{@yF-jfzZLN_>^_xW9vOcc-*Vsf+lzLs{|CBZ-f!Yx>4x>!VYuFZ(+xl8_A^0c+hva2XYd(S z0|8i#)3SkKo?vRnEQ*K^V$DsOONwAupr>1We7?k7Y!50|Yb;2P>Rq1II8@_THy?k} z%b&M(v6wTvnH6Qwou%d8$npHdTUa=3pxlxSN$|yZy-S7Of@tDJU zt5nsz+rILLDO3u`bKyO5{U~7-C#y8ayuXX5cD2gDeC1wfdmu&C=xLDzDA#vEQ6Ro$RlfpV!z3!r{EIOwu1>_ z2@69h#=|C#umnn23KEva2}|;aMRvndreLIV?01`j_%#>>Z5$OXiuxUrk#HnQRe^r4 z1$v4R;Rqu!A7;}Bagz;4f)p6YV9YsptQaoA?J$QojMf}UeHy{gFcK@TfQ|%@LfeP# z4Ey|1Bhk$Y>~KM0TE!USVX+3Jq&JA!8^!`hlDUFp3lt-V6nSZp@?dym%`lvHOqq2w zsziZX7_QzvN*JW5nt`N!H_ULMn0yZohbt=Bf^_sp<;E1X%t7+zib@F}{itz`F?PNL zq|vRSU_YMx?Xa%xc*GAS)ZJ?V<%AmTSOO!a#TeW)LC~BRZdZV`g-=-C${P_*n50Y) zH%z!_AgR2^g`;4O1xog=6Q0szktyTG%M*HIBQ6>$cUy=EPS{hp$}{sZ8~w?kb``IT z3Qg=`!`pG0xl#XR6>CC8;$`{A8pwz6u?WI(McXOCTNumjI2x&;s(U&S&N~(XR|(vo zRBRpBcO8E=rW~=L#Kk(DT7cu(0J4l4L70Q=;A%;>lbNonP*w%ChG~4bVpM}l(!PAw z-QUXXbnNXE)${2L)tOP_nR1QRDqa*sSbZ>Dy_&VPju4gNO4!go({wTO0(-WZY_^4U zwpDnx4L;khKigqD+vz>q6*b$PG22ry+uJ_dH#Xb9Jo|EgcHm-m5PNQjY;Kr!ZbW!) z6h1emKR0eWH{m@u88tVRF*jW?XU-!N)jg-V2+FW&N2DWv=hAY`WGL+RM{&Mt6xUp! z?oXNpeaaa~Fn*PN+-{`Uf%Fg&bV6zJ6{a9NeO?zdpV~rpVCDtsl z>q$E3>83Bxkr|ZLV(I;82N~Eb<=;qH!;okKH<0jKWaBf+TIvVq`XCD?ZPD=sB7^Me z&VIsh-*TJ> z1M4^vqp~+`fvI+L$;KHeWPw~7lOBHb#!mtonTr1^(qN4Y#TAmuV}rbRz`8iArL9^1 zl}bvdQ5-9=I)f5AIW5qVqElA0EG>d3((xLVqBqMD=X43OXqyYgyi(amkh?sCP0 zeASa})$1-MrnKs9ulJk!CwY<@ zhvv=sealgyW9q&~W98PFN(rs?!NX20A(x56y(DndMB>xofilGs@0n$PGtHUNX&ruJ z;tyf>Oe4+&{9oeryh4)tm=sxn?q@DHu9+ow>t_Ejs{y?$t64-nST8wV92M!t0 zuP5Do9eNd~;Df6BWipP`Wf(`!UG|hwzN`OX&XriftCaE1ghrr)zF)J6O;cZ~GGUT0 z;b90>wD{(WLW?91J@B~9pQ%i=L?uYd0`wtTq`TgDs?fOZH*Z^CoPyF)*5^01jRF*J zIrkbts%&qW+*VtN@bbqAzJ#E(*zoG31rQ;xA6OVqk`jh~Cgja~8{_y`CJ}jk*^ts~ z5H(~_VL)N&gFh3EOi+TJWy(C~Gt3ZQiB?@{cQj1Kh=fbXkaigV<~{9~Kq|mKDYNRi`wA`>V|We)D22jFv-4xVp-#yO$gBut zaripJI9m93Y(RMAedBwqju;S_eXi^$RW0Yrr__d5dlC0AgguaX#3wIH4)d8#taT!7 zzTwI}xM!>C5^m{2#o`jQfJJN^PNo_it8>yHBiQO|YgFVo(iH!XFw4r{H0S&OyENxv zE$8UW!e2D!fm6O8#e8Rcu0yZI-`dEP>(3{}^NO3y$;& zj`a?T_6`X140!J4AL{8F?BN&b?i>Ep=k5w~_YQRP4s-MJcYPM@;uY-d8R+EU@8WE0 z<&Cs+^^pp<5%aYA8{f2ba@TkAv~hfThi_WhyFRgZzXLZBc20k@n`YK7W>4(@VmB@A z@2Jhc*iCb519Q87!8fh`VmD1~bd8^go0}sHEp!YlwDc{t^ewdYO*Qo`H1*6hbxr;z zI3H1f1xSouWQxdmCd1X%7kP7Z;;t1JvG+;ptG^vs<9R69&ZOG!z~LP^U^ zOHK`?VSH6 z^{e{zHb?Ras;QZc!YJ=QthW^trWTHPt4o3?PNv)l@6V>AJk3oa5}1$h2pg*2j9KHa z5(+1*(HIY^F=V0<^0Z`??=?5>dC5|k{2gy>DHZ9H#?jzJ&+i*oJ`8Ruo{o{AccEk z{}Y#i4+IUid`rSV`y{B77`8XAzTokt<2|6|y8q;Hmb6~J!XA??eIVWE%V{gHNX>%Z z&W_*X5U$$llyK}UKTBWMthEAfYnZ-;347-;vj)27GKD{jE6P{^E2Jwvj1vP|l(_QY z2ff0Zh8VCFHI=BDy^yIMQlzm^zd}Um&yR&f3DdScUrIU~APaBNcqT&+KZ;dN7XQLF z1M0lK74I=oOBSbH+g+yRby!=iBKS0GA*mcBfe8MRioGKrDXYJlgavdLJsF6~SuA_x zwOa9f#_1xy7>j5xPXVP2KUV&Y$LdrAV0=2ZJez`0xxR`D^>SSlAdyfs&cu>QXbNIC+P9mb5R5yMr+!2W zOyeuLetRv?gZ<68AJ@(MSu*i*UWhyDlwBc0{2|eU3;g|uszI4MLd&{(ubkUg7C5G3 zZZxrDCYK{$UI=UQG;H|c6%uvAdsVRtX0znmKFA}q(H0%S(K8mQQDp4PU90$l)SV(W zdq%n|W*k?da3cn{fI)ACj@^R-Kb*NSkB;k#H*v|q8;_qEeF3I0>3&Urq&K5AcONx? zQ#+l-{Fykmw=c6~vBUT7>&skpAR1Yc&b_d1t}bf&w(zKZ&P*M1~%wAz$W z5*uep9t|w?*HbD&O_(6eX+?(nYE!%uBh)Q5d)$VIzg$(QfO{46JPJg}1Q_$fwistt z%-BR*uXKpubJa9Pux?%jF2EEaKac`OSXQJdA}U3U)lwhHVrPN{E4jFsADQZoW#WIV zRFOmhX4dc=5QaV6_h!nTB06;?$5u%dTx6tU#c26$iHp4zX)$`&NC;KbFSI!Cz#9%x^)sxkT+5KZ# zpOlK66RW(i4e(Oy;6tWBMJH>WqUMSICr;JkoJ&si#AW%pO6EJE*g`eKcZ}rr1)!`nHwUpOMffLhJFam`s_CNK3U5W2E^NM|ww=0xeDI zE9>t}#hGf(q^%oM)=}*+ay3wU;MxYdiIpUw!3KP9diD*wZ6*FXr@{yqxEC{$MLVR9 zUbpp8v?*)Pig6SCn0kJ1WQj%d6|ZKUOX3N81z%O7n-hs7_=tFwdgT)2_p%{o{S>fBe@#qt)agk53fM!D1G3eGnZvwQ_%VV*Xgf7U zJ|mZG>iMM92RSB6CMdBQ5_M_CmuWo8bS3~-mIl0&+$;5a^pZSo3x^`8k>-g zLJFHHHKxqXzCQ4r7F~nyrmO^Y-;^RhmqdW16v7u-;i5eycoD6HiN{myqt9FC)hpI# zaFeAQt=uB+Wej=^70NfiI!4aH-bvwiDNVi1v9Zf%K2ipC^!!fo&*oS^usoMPeD4<3 z@5~Z+*&fQV?u6vLN{J=&kJow$@Smy8b`6MyaJ6>bJ*y&`xNMiM)@S3lv#WU7T&IyStHq$+#vV?9+%<(er&5F5BvzLr>y{I>3b|TGnf*i zS0O1W#hnD(Zbd#2o?)441he==g$Sf_p8OVjOXFIfvVo3xC!Yy$EU%0bAZtP0^Bsk(5(H%k_n9!#X zuA`rfB+STL(_9a2fqM3hlToE6oZa|}hMAQUltHKHQeJ>}ADQw+KcAY;t&YcVka=--abhDAaiFMvaB#VxfL;yeHW;AgREkiU|EJ_NZ|z zlnx^t>gf`SsSjxh2S+@s-4BCeMBq^Zpc*i-e<)39=+j+qQqKsyVM{uu$nx>W^y1(Y zLA@0nTKv>Vd_77}Lx7hPyfEo@$l;>>Js6XTP>eD}84B=&yfCc-seve4u!Eo2Q^g#x z$kg-k32`tGHH>&J-2Gfe9GtNNbU-zIu(9JR?@HcISc1;9XF)3u2szt$@knW99iN;> z2pI|qU?TLM$=|PQArus6;+P89>U7hg*F73%;U+ z5UzzvW9Xw8A#68#oFZx59ppRv5zrrA6yo3q66AbNfPfQFf+q7P^^24+0mvM+S3clU z2qGcS3~k2@5G;fAEFIAmT*AVm$pySfjdtY(Yf~lL$~)OTVA9WZ4Q6>-k&=nolBo$z zQWi^scqTys&}=p9i7_<@$TFpR{>4$;5tX{am~Eq$&D@flomEi&`+1feQs9zdt9AVmJ>|Fkb>Hy=#vr2bF${l}rK@fFcsf5V*rOL^JC# zF<8Ky8Zh9*M=0U*ib@hd6k?_Zyi@aCmjK71n;B=QVi|U_JE7PS65xK07`h#fal}*G z@Ep)t&U-O%_YZI)R|pLZpF|?pW!fVTRV;@vRy<3!|3-0W0x&+!AIX0n-AT(S;pxE38%i+{$Q^z**D6H&vb+7)rgF;$H2Pw@RNr+ZXD@eSDY6T6(X z+Z7jBDpCl$wFDm#TPNsP!Qx+N$F^_HhkQ~zED2t9M$W_`u~(2_#N&s<8sQ&s_PtD~ z)q#V+rj?W?{IlwvILr4U>K}fBcLT{Db*fQyK<9?SSF6dcJ z@C}vZZ)ZT7RxScDEp@veV+*e>;c7Wfob-yFu zBD)d)41|cm<9&^)iYLD_)kWF)p2Y)W7hNoZE)=ERJIf_sl}w-i>^%F_%@Wa# zPz8u+fLsFW=VsmIpl(dS>Q=0`boTN6lh_(xxP-DoeSU9Ky`mC@1v6RS!<*htGes>5 zg`S|k{>{FDUwuO~{UcKSV`lvmLH$$t{WE?2bDRD1zxo$~@a~o^ZD`SfX-FA%*TQAAe(+Cq5+A)A3?SPGgcq7 z|J7BcWIN!Y+>9AKl(gL4g$l!q`BzsJM0%Lae3&A5n6hA)x_|iYY={1Kn2~mbS$c%k ze1tuCgtK6zfYgcAg&pKMXpPV6c9oPQ3d9;ZWMzRvt{nI^km9xAXnP>lKGW=HB(ONr zx-%NL)R5Mi%YxDVQz_=eq`lO)9UtMmnwm@zF)nE650qNXnAH*hx$=(ZhwtU#!H^woi1=6Q6LjdQ_rJCv%A z4mz!bTxsIL!mUp@R}I>vr_VRMS~q8fu4h?*XQI%EPV;I!!O3TNb2OfwfAk?zOKJ+! z4JKXBG7;W#UC$oj1FIVK%6^4ExjGS0Uk-mCU9R~|6!@?KFrD-v+ZlUbP-nx{$=Rl6 zHd$G!0Vr|r7T!TneK0z1EK55e>lN#7oyKx;G8TVhANm=!Fzl)#Yn1d;o5C$vf0`p zadY)8mIxT95D9IO+v#%08y?5&vxbPjp!5tQ^K>nAiDyPwjTrRZy#cRyxb*G=*r)0A zf&=(W;S3;viW3~8nSxciw05}?;Wjt0A4AW%#6C5bWeee+T%9o=1OQLnn#SyU@sd(p z!CP?dMwAgJpj)$nVVy++Y=99o5-+>8No#MX-v}gZl*<6!AzZm$gV#a8@yF;#nlm7) z8BD8js8x*PRH93c>wdhW?+@)@wanukzLdPTSMlHr^bTLP^8#rpUiLN6R+BJyT#Cg+ zSilL8;{XgIrKE^BnzJp?&Kh;ZmY~u$Y+Q?#X&bL}fO>eF0=7gB`_R%qKd^ma{Bu`UsxsV?u@LJEKL zLL4|Z-t0_IGEfB)BI(UTcEN&4-Nv||9DAjkz;=be@p`ge|2v!GpyVp>6OR0TquBX~x06Nb>0pHSQS@A_t_iHt7(HcCsqu1u^3^*EtDF_% zF@3XgOTS#joW?8(@DKuz;Ld*8;`ct-kiXQ~RhG04SEm#E11lnoZ)crK@SQ+pK6YLH zr^p^$0)tH|AWM^IG~~;f53rFGHfgZBgjWD!Di}n8$JKx-2{6CK*J-M~a@hijdhklF z&yGn3xfLis^(#oQ@I_*~Y zr-)P8Tl^a2+n7De=t@uNEFVgvOPv#*5bd;2asfsQ(!ejCyC)ZtDpN)Y8;Ugr_yvFs zp9?~JB8K0(_%I{QV&JJ3>T@07mR~MZ_mzD3{F41OwB;)nMxE>oAW9D?_TpCao&0)M zZu&UaJo$>`4A+(UkT$ix*YpHKMhzx6516d3mzI}n(FxaRbzroYW!$uwYNz3=@~P8iT}f)=4dqsF@SWBhXtUft=Z;(# z0ZyprNWNHpi-vsbUASlUiki(O9D4-#o91jxRXvWjN<-nj5+BP!*o?5#$T(MYr_QTH zv*aFlQ0jhAjV;Fh$%R^Eorw~r+PL+vDG_m|_vBu7YIab_VvT1FJ~*oxsvt68kK#(1 znM@*N!q0GYgCf!}i|sRPG>IQ14;>ntDGHsgMLWIq_Bqbl5$g8AQExqI(W6Qm$4c`al=&k652A`cro79$5m82UJFQxtmZD$n~g%`JLg#m`1p_?hXyI~lHuAxIvx>dSS zVg`m%8cAUU38fnpkPb-!1!++cL0Uro&hf0X&dqoK-R-sZTKjUZwSW74-p845nL1s{ ztxfXm7&lI~LjFZ%OUk$LG?Ez)fG4MtBvGlZg31TzhlgeMAFchWe?`6QYV=$Ls(HTA z7I{Mz7Oi){6Y|$w0-1F==q1%-Vm8x{I~lAO`NaT}}@ICu2c9w zyQ=2J`O9x!82;~cRiQ(+lA)FdKLcsfdO?B!utNMIhn<>vMn#QnFmt{A!$mwhd6c`} zC&p9`2?;k>WkEgH@2ku+#&SQh<~*oRSNgfVul$@pB&nUdW0gS$W>XgO zS*~NnKcF=O8vb!gt~`nn#xnA7+3jfJQP}H=7jYtL&&p?m=LKcc1NFr0nAkn=+c<{5 zUe1)t!$B3~LT}6|tOrrtn3!b*D(NnDsu z29@W~f)0**F}P0xH8(#m+3cX#cm4`SBvxyQNnHM{Ej{xgl>Yjc=3HvT{E*E;;>JuN zG)6!GSs)Vky1@gXfA1{|>>V*p4--ZA?ir~}R&Sb98dmlLeuyQD=RA4_KEn7p!UUkj z%wLfh0e03o%gf$Md2)aXG!3<;HnHM-*QS*Ws()M4{tZwu`+*#VpO~!26pfv8|>P*4JIcO^I zX)=|-Xt(8b7{B@5VU8@lr;_G(9ia&JsZJ4E<#~=|(c+W(POtMd5sl!B@8@M}vOvD%BG6DnygX|b$I^X7Y`qbFS6VtPkx4uFmjh5m zKhPwtIJ@}e9WxjgVTNh#MEOh>EZ+d1^$iTd8JksUy^qB_6}5yAf_6VBx?rB(T7aHd z;>npA=CJbE7oC0^x`dC+X#-yc_@)dg17*##*i0*FBfM=)cFmK97PJM1fCe%yAB4|Q z5LGoZTKfuQmD^BNmtiI*qGF-`EMAFinMGKiVNr}9T}uPqvyjTNlI31R+fV5|!u#;0 zuni?KNQ*oQ9T;e~|ML2d70`C^#awyodEM};gFW}af|4^$wPrkY#KEgC5x|0#W_YRf z#{R>g%T582Cc-bBp@%2yMlOj?=$`pfC&R$}JV%kSw~e?8bVR;FEjwha8zul*R{Di| zzNnWh%X#O+z?c?ImzWObryOGqO9@qhn1c?d#+EdrxQ=3d0B4rnCy$|ywxW{2mL+KL>S;V%j%5>`X$kVZ-6Km1qB|33 z)X=)LOG{Ca2n-zZVNw}&(lMPjolRq`Bwf&~o2V*Z&r}HA(s$7U{im)K)IMV@Z&m=t zGwB3{LL>ejK4i@LYEGwz%(DK8LejFPfYI({IW7tctYvq*eFc^T&tIL+`vhf*E>-1y zGnrP{OI(fATa-I+WHo1dLoRra!)*33TUPmEiv6dp9G6tsLWZk^TONk*ON&VJ-ru9f zdBN58u->|T%Wv}VkEQL8Sjf={Zn>Qn0-~J>aP`C_j{3Kj#^YH9FNI}Q7!6^4F0x=|~Oy`k+LYX=XLqE^4E zhjo8k`xQ1CwSL|k)_bvb_?RMklT0IgfOY*SNjG|%xi5S~Vg2}NQuGd=M#O~8`bqw1 z^f$S_i0QEP)8`a1yV@F&^ZDy%Rk|^IR(+969qZ=}NiqBG8c{1B*ME16#{3HDBSx)X ztY7p|JUYT@L~pZhT#o8K`j_U6{-&^THIww{tWqP!q6-D7@ye3kcS`5o8KYaPdUQG5 zP^unG{BwIxE0sSJbo6oe=F7h{r`k!v8PN%}YeT$#Jo||K?Y+N53S?SFVw$Z+oM3*qZpi@WSS^F`v0kiNiow-B0NKO=n=HPb)! zpMU7R4S0vM)nK{lr(f-*<$9Nv(Vtj`Ovh{bViMVz@VpS}d*T1KkW~BcctqdvsrH^Q zYW@wvlLq5C0jQr}khoZ6`j}?oC(U#xq)00{`w$X$8As#SC+apJ3s5Ise^D160;*&T zVEqSimzu;>EiNqTc8yljQJ)yiJ0;6O(L?{x6!G_XeI_l@*XX0qD6{uNHdr-*GYyi~1l}Qa zA?%Rkg0`kY=j+Q7}?8qnAL0*4!BJiD}Wg@j@ zKjaKa@dkApIwI&c41SNi+8g}+XVA-X^j7h3NbqPFS5_!?G@?TH5I!6^G#b4y8nZL{ z=xp>cU@VqtEDkXiFFTfi9>ZFW;h5CRUB{BpOn>JX^BM(-x7j7|Lt{qCqy_=GzWUv1 z0R6_#V@9{@GGxc=f6~V3rM7xew_J?(Lr4;MBa)>6Oro9tK3>R`fm?aOu= z;eAPS4$JA^A}B`@T<>y>qze*+e;VK}CmPQf@dm&aOZ<1AOwN}2afGp$CZKJZ>J~J$ zEQhdoBZE9{TZor)w0Nqb#q)6h|4DReEsbF}gN~TnN-o#<1nZx=b=IOZE>;sMzme5Z z5R_5)r@iRQ)Q>dvq>AaEL(}^U(+4}#zs{x)0W(KTGslRT6WN(l^vs#%%(>eP-zs2c zxnTlc@H80s({H9DdrY-lkB$9x6USSMo|$_1djvbCM-ZdwBc7M3F-(KWEY2duQ3I_q zvlhS(Efb>00_S5G^ztnER8LN@ex4;hmkGpR1#F8*>(K*B-!fym4+P=B&ss|j_exBQ z#(Co51r>A22ASxD)Sg=Xo-utK2I>n#B)<`Oe}Wl+8!U!aeEdaZ#rP5+2u!?+cfiE_cC$Qlk(wshY`#)1% z%vEwvR^e-t8V2UoS}06WtA~L59p)?HMpFR8hWFIEF_uaF=D5c9`ful1p@z64Bccz! zbroDP&;&W2gC4(6%$U!VoTPJH80N$bIsk30=rSuoZZeqR8-*?(QH zXO7G0?%p(H@qL}HXq_aubjy3GHW_lt?&_3)G;{fXfbG~6L#4lKed(m(O0nt z+&vRJJbJ^HaUjD^{{_=sePWWCEv^hane$1fB{9VjJbfdSb<6m66Gq5IDGM~!iw55k zS`PIA=Eh{oi?N$n(L1SFCB@pM`P*UBdp=mg76C;It>hn7O=`T22}8irHrox`MCr1{ zM5H~}+?0Efak(P++K8`qaV~Ol>MC6BvtOopo$<<>C)HDCUO{b{i_0UY#vrljJSLO8 z|M2a`_&Gt^&=@*j{FC*u`3+IpdCByZ{yV*LnLBUvmxJYVe-^)uHhBn_&AK&zmZ5~p zuat#?|U6UCe5tCWr}%ve-9f^>};1L|KeLPYyJ7$hGr0a=iK|Nb- z=7X(<00QB(kS}1EEj<$9RFmmGm-mB~ZCATJ@zy=R@zU=8^~Yq5q)M#!9Pt;6txz2G zo+I$gaf6$AB>T8L7GfWT)-003j`J2FQ zjDHSQD%W44&64IScY1c^lwMu@)Z3x?n6kvXbH#<@u$Vf3CAX(LGCJ4 zslMhk_bvSiIAlDJ$?WzDaK15-znxsmA8!Jo)z8?u$Cj+~*Su*A$d)UVv$|r*-hg2j-{=`tSLJw|*5qg5Jyj|*ItJF-U=3NDVVV*auB@=^8A%`fTwjkT(qjn-{J*FMzsWgxA9C3@NW>iNC+>d?9SBP~4PdHW)3(<|krSIp(Y zCwLK+;~5-AxI3QOoB1Gp%#XchANa`mGy*jCvMqNO{JIRWov^?X}xymfw$UHgM8|!=|L3qZL8|7 zX^lSTv;K@t{%6wOd){F3d%mxH@O#Hcw+fE`THC)|1eP(|a|=v-@z{9Nxlo5G{F741 z36=K^w?EHl)%JBT{)2D8w7C6p-yNCK?3wcLP0k0&R)|*PHe3CgK-*0xHGIlM=??ma zI#(gym7n+%BNe~u*ki}gqQUhBi3Wq$UsH6Wq#^JJYF`6AzMc;5$P|0|KJ~!MZ*0y2 zPc=TAN<0dZpbsV=-n_ByeM|PW6FBXccc(Owy6?VAm$YYGBNjQEz7(F0Wy2{Px%E%o zIlF34mQkE9I1HjbUba-EY)VWK2_l+0bt+Ep- z;vutX%-)yKt+W&(O?u~L>f`VdStnNgJ=PkUxXm;!N|JH^%-nmx_m^oiw<4a>U%h^P z{8R9X<;NxVQv`d!Ri5V+Rxu)uE%NEJt3sR6toa>n4?I%OEv{@QUGPcuL*ScT5?XOw z=9~7MipWICxldyrJ%ZQcyJ=*>hTaA%I#z@Oe|Fk`fBIHM<0V7*&qT2gtT8R<9 zUg0TWmx)eSt)}?0!>G3pff*F>r5%YcbgwV7-O@0gIQ(_pT_CR~Ua2f$!InI@oxIC_ z^Ff|@K4d?=KPnM_HEjCNAwtt~?`DzWrjIpp>0wN-4c=DozZTCcq7~@I4RrI#6JNFw zv6fG>o*$DTah>)sngPpKDYS<@YP=H$oNP$d*}W#qTPS~YQ@{HkPVl({!v@$}9XU>p*H|LAPt`ht z3?x)C(7hQvf}(wqCz62Xlucm>eH`M|C$MV3BJA zy8Jh55?r6o8+n0Wm~_a~7v?1U?@V_~F%pW$=Q-|ni&GF={G$Bp+tOl*F8B8@rFO=$ z1T5%_Cb=PofCmqL-6);y&R1D9JoqmXqwGZatC{7xWo}OG`>eCa)D2P@4DL$& z^k2T5)A}8e`^_~)ByOHcN>pE(c9M_^dp1Y}kgPD946IblKv0G(k=aV|EU>dJ#d;a1QoQw=;#jIS zgT)w>%a$9*(0;u4c;X!kR;QQN(ncC%622J_rma6qjEOzIDASYU`vxs=FO1+X^sepV zFS=h_Q(P1V$xR8^Oh< z%%Xyqv}RyTJ8k3flcJj6mD@gRLu2$o#iVNr(8nNdMo&IXTAJ4tmdIfv1{&tubNo;m zw7%&uy5h)ej~0+*?k)9iPRiyAY?cF?M$ZyiNpZ2`rZD=-Cb{bLR8XYkq!ETaoe5WJ za}?K+J@uV-p~drG1Q-(**l&oLmC=6p`Ae0N- z&DD&1IapBVMt#A|Nb3BK=R3<>oMdH^>cY_+X^7|4AWg_<6X)r1PC^9NAH=a{qznM4 zS!DZy!VCeam_+9BVwJ4Z;9swhPXsEIG>hpU7;lN#lLooE@9V7~kA4(q`~;X$TY4{z z@#I-+ES6dwlAgzaqL%8$(4?2a4J8arxk z&iM)+iqQ2&U+|c##g{eOf+8GyjPN~Nbnel@?D_`N9hvXgD%HNsV>{k3tDIvF=+M{t zY28lgTe$>Lh!!V%>?iG35H^M~z}a;6GUH?2t`o|e1TC8{9gl$vMnix*;RMCRXHX$m z%mfcT!`L`;+3|M9s!=HSwUXU>;xm(lfID=E9$06^3``^Dy3H3m!I~!p!jL!yCfpTvP+R3=hVBBT| z|CMhI{QN_zgRwJD|GB7MwPgwHNX9xSY#iwUjcWj#6Y|s#MmJ2mb2l`@RQ5jnl`($_J#ewmA{(YhJpPC&)UJm$gS`Wi}Co zId#%B|o4F|5m%e;OaU6n9Y+S5Uhfyt_P-@}zf*_VrK%qcgEf#W|kNfUt zMfgbvTR>ACSZKWm#PG4}ZwSPLiB~1z18cZ6R^v8f3L_&)qO^&Ogc0uK4j!KrqPZ-Fj*rTCZLix!&u()=-n@|T zZ0iMeuz^^dP6qWaK-bLpFHFBk&K})Pd_l#kWez94uX%(+#i8M18wYZ3&v&eVXr)fX zas&^H7Mk@ud^DqEKHyQ=3})Y_jw88;t&W2vf29Qfqy~@4&-A-$jm1BA8QL65Y>D1t zQ1d3{fuyTbp{r>UT8O#LIN%URmZZ3*jbA#84T%Snhrxa4(Koec1Hxu}WBwASu3NN# zOwDwvA3UU!rJ@l+ALQHyAr~K>i)KM@4k*W-sbuh&exIP<3PeS2eJw{Xb69-S&n_@e z^yWhNhmN>-CJGL8;&{f2 z&wbK$>F*11KA1F66=jQHa2Fd|$TkJbWX-9v{dGK;zWFmqQ2}NZYA^+b1zAvun{=;7%+!^;S4x`9 zQ`}~cEMA{U*i(UGc=g~%J;TzmGCTC+*U4Nf=jtk^dlM}RrWKFUSi3l3iELNMaYfMC z&AT2z=JioEj~G5Yy2MxHz4Q7Ar0Z&D_MEFJy8D#74e<3j%5X-Ds{6c!jaV8(_h0fB z?*PxgFqTkcLNU}T`9sOA0qW|-LK+kkdv%$kEun#DG)8))GY+}tzpxi6 zXZkHS{u%$-<>zKxBp*>U2NMwgovw0}9MC?G7*o_Z>&^S`G}R^Ck;6vq{q8><%RXb+ zF@WuLQ=_`R#WrM$y#Xa{Zv`sOF?r1ig9~Uu6!ri5#<^cpNNHq%$Uy%Adi`xZxFM)u zeNc2>C^wehEuBA_V|#cS?_f5pz1}g4PX*^Zp&9!5UN1cdtWchMw~3B&DOGL<2%fM=EMsCjgrF!4$rpg51s9ZZY*TX6 z7<=itt?@T(xgKVLziECeVI!Sxowqm>ONPk^h#5IO{e35?I0 zz;_qM??K>y022r$2t0xbCK3dnz=ZM$LZvX_mjvN@m`FQ8q!%Xom+G7C2J-!O;ikQv z-QdL85Z3|Bw4WOz`rK?2hCXxIQ~UUHi(^ob?EUQBEif7)2X_~JQ4EAD(`s9@f6>x| zj(fpTZZ9S(O2=(UxhB?-X|78A0A-#bWd^K*wf1xg5&k8dQ?mJsDg!`D8YdSz2DaB# zH_^UaE3CSK|IA=UU2bSXOlXyHnjAYC94i!3fDI6Ly>Z3y@esVNbf+vI{D)$;;EROL~-FcC7E84-yjOm^$<||y8Pt!636OJ(heI;jqVr@R#xb?yu%V+Au z*JedwLkD1G7_zt5x-*fiIl}iJq|yck2urrQ``ZXl^2oFrb_@l6r6E3Tk;7Tt9ro;=5T-?QuJc%GVnxrK^3b8jg^%Bs$VGwFshue}7EnZpS*nLI-p^2}KCJNDdUsV7*obh>Oh zZ6hf_LhS;^?T1;kNB$#>=U+evEug@DuwdG>NL{-y<%b!YX6T%d^--neF0DX`jp>n4 z=x&W57@!+D{wr%fNOsPA~bzo73PWo(p3-9U{}c zQ9$2GO6{0OFPrQKo29j5%&Ut1?OHgrX_4B6l;85D>?|yQy84S?@XID{1!j2PB!(e% zgO|#h0MYaUTr9hJBT=M1Q6MzO?h!xe_o4`gLBZR-SNC4N5`hA8)_h@KUlnL#J0>XW zjYZtB{Pm09kQFt?+*wi9WJA)p68@oK6P;lavZo|=aU{4-yMz>-y+NwsP9fX?Y$y&k zM9(843?3Tsa7NAY8L9!M7>35xhg!diYUQ|2O5+%(q3{2qM^6A;9IP|Hg#^iPhwq9_ z74MrO#WeNA_@U_eiPsp}&srF#Mq%g^p|zV>o-r8NuR=Kb`hh8c7sb_J0tTE0G9U9yV=_zteBAE# z4HMD_rs#(jIqN@?_mQy=$MFr9&F{-r9=HM?>el%s2p_)SaXUHr^@p7G0%u$=Wo)`C zF&A?GzrXcnUJ{Wye#8N`KX)qvlpbR3>vO*yu%USGFlg^{dtz+qqG^2IFbo%#8u1u6 zn)yj8#s71`k#F7|{aEjO73Jj&Xn~r_I$QqJYaI`fJT~&(eif6l$WDg_ zOE-c%i5uGUjizi;bXr*2B4*SogjhYo@EcBLLq;=LN$r|#-gsnk>kH>^G%NKt`l1GA zo*`BNfFw-nA%mk^o|Mu9C_BA}a-j#CNB~D+)h5Fh_h=H8mMiM0(c-9V^Tx@G1j-AY zn)&+)!ie_XgFv*<{9;l$*8qf8b5L|F?9R7NSkMd`VWa#f3RgN#ZC zu|=g%Ms>7Bbw)<*V~g5`jQaN$^+Oqrixv%{43eT1NiVC(+N#MbixOx>Nyus`v}$R{ zqIFx*VJRXsXko=9=}+&FH?a~%!}MOksOU5F(^jF2cl5Ri+{LYCXSXf?{aOl=8n7B$ z;)C@PWc4?KMgQJ1B=$qN$P6`xO&PJq8f3-;vC1cE+wyMfHP$!43e%^8v=#6_1lzcIU$| zXX^IY$03otm+-vb^h{xBfLwye;A4#rgXf`EMPV4X-^eosEo8WRONVWOysfE1{8L5I zW`*SE;mSpdDGiEBuM|`J6w^jK(`FRYKX#^XC_ee#`Q%XX=|$&LqGHA%F;IX)DbpsA zb1Qk|y|^EXQg)Eu6YU9JD5sEuQtrig_MM3_>#n>nlpwP4dl6kPX4l^}i)PWih%3Fy ztBSB#unr5BjmGK}$vpjUhf*xBhA=?k{ncyy8e6QcJyNSwMvuPVr4t2KF53Z%R{G7U z|1_C>Sf!~wHIy_j^m6I?5 zUqhUT-ze+8arcTg^^Z1pi*UtA7NJI}5^KoLB}Zn0@+q9$%AcFYD!n=!dJ+o;>ASbs z;GT_|6~MJUeqjTC4?Tn90&+bk4rPiCFN#{Sir{>su(vm9_V@MIHSHki@Mw-8tMMv| z(gd$p;|Haj!*fHwv_9?bCQdCq&-$d`ggJ{wheytto|g4RijJ#!&8aO2pht{NQMNI< z{4Ym;RhUXDTL#x+(&|=Tz5o0tsQN>$x#jiR^YksXzm^W&?WshscDnl*#VWbi(pFsX z@6=>(#BrYm)MX|9o<6xArXcIdNUMUP7oOYxDQb%zJg4M zq~f=<&6r0e(X-CSu?4tjr?N_UEOchN>OSSwOk`5Za?{TiFnej)mE~@jFX2400G#4r z`^UW0H@zHLK$WQS8oa-3@kANBJ%HKkec(6o&3eEREX+)-;jg4B&{4ZGgfinjgykLd zNcIP$I5lkdD~|`cae7qzO@g6YD`_bAZ;L(o5AXFozD>cR`pn;XFbOPxE&SAo^bKV1 z09b;YbsU$fwU^!$1bNOp*Gytjvp;j0uQIE$ep?vg`?0}!H1Gc0ncwG*fbUChi^3jm z^uPFYu<0$12>L!#uA8r35*hOIW0U8{-jb-W!;N=ItQw`!5vSkhs%-j7 zW1=n&w?^|dowcICp|7pYCH=`51AZ*!e#fU_6MP(tvSl^Mf_7YKKI^A>T&6BmTNK%^U3S*ckL z?f~sxAhf=Y8!F@yoey~-%}gZ?b%mZA+ND1;9$QY1p2FL@X5#ce`RH@ELmp5ww3qp@ zqB~ieRp_gJ(!Uq>se>MQ5@l5eXM?(3#c294#I_s;YG$EJ6w0BtQ5vXarOeD=S`}nN0V7n z!d=1dctt1|u~e^f&x4a}^v;%Cjfh?sAEaRAq4;@+-mp~bcJhmqEY?TCD|J`JKe6?u zyJ4vYz5iiw{$agQvrXRx|4e_B(7X1frdlsQsym)oOxtIzdE7l|Q8X%s4WzWQ)%=FZ zAhn0bQR)|KFO+2@S|MDQo^5izgwa?S?*#IV+i!@TXzpf;LH+OOEgg~6i&WC^ng6lG zDK-xzU5a`B!zNJgk5b}eQ{f6{5H#8r#KezH;w~@OGg8dt`UQdu0k%<3o`GI1OF|_a z2-Ovr?Uq(`Ff$`CScI8LQg|qpw+q&JBP*VZ0LSiUqVpupsqkZ97=0_A`*18%0euAJ zR!wtcF(>sEora6MJVy}$R}82`L?&Zq&N3G)e>{f_7OP76+1zC;+18xzt!;&NF`vFK zW*$~}HU`UpRaWK(%pt}v14r+b~`QcHc+5ltRnHx5K}N9&2PZcoam=rT~h0djZP zfZS^7p7MLY)Yh9rrZXqfvkARJ?*@Wnn0E?A1B$eoBQhT-n?s+*{v+#M065E2_%0St zw~@~f+?36CR-CG}`E2@b96u^MX1*_ffhf-*7a7pWN1@9ll-%^4s0>pZ zpC&?q1YNo=Vqf|FfCpC$`X=14g-nN6RT`B-W{mL*aU=Ju+}to7FRQ_?^sV4>G5GGz z>&%xvIj^BjMVS+^@9U50*x<~JHYJklYVm-i>wtx{0MUQGMvQlXf9R}b(CI)Q7uF(%WXZuA_BcOHMTJj?KQPejsg=LYZnp1NwVSm3KBIS8>-A2& zu}O|AT~t{!@p$Vz(6JVZ0brkIY2BvrYSBYQ1w8Xeti5q(|El{tXv!MfL07XM=xwOI zZBP1y^i7@4t(DCEyj&H}#R+YEykr^V3EV1fQG~M!WC$3L?K`69K9f&Tu!RTO){KW4 z6J#ri_E=Fd{R5x6+xb~JyRZzf|2)3P$`{lLp}R&ZKGvB?mF$Gs2$wwu^KB*VhQa?U znarO3y6MNk*5+>LuO}$FEt)mtz_m2?*svJH`V^PN5{gfe;`~B7lNSbSk_sEOC|VfP ztV7D5WM&rcECKCgZ@;R`D(7++GG&)EqN5f07DYj2Q84NF`y~Gzmxt8Tg7@z7rv-Dx z9&!x@Q};tpi?+Btm1YX2L)uSEj*C6j4hv>texC+ggRvU)g|oP&u}9YlMMzR8aNJhE zjDj&0BB{*68W5~0e&5UZA&0uQ3)J8S_zVJE;mDdc1X<59SV|1d<<`zz}UplHkcvSS~t0Zq{y^YCf{A-d;;l~kOVWk<4r>cwUVZhhJYDWbM z#XpQC(#)Z_ch$-}1FSXSx*SsXpK2j0C<`_R6-fM(5NbcDZ=;&114D7hNGOsRhF^JH z;$2F82l`;+d^QdlW-YR_DHnFVahvy9f8EX=)z*v_!fal{$O5h{579Sz5E?i0AJpfu z%IoF3VSPp12fnTkTjAlUvn`Ibgcwc z>{EjO^q=0nn!fYsyG)qMcj~O8*zCKfS@f4D=hGLDzQ4VA)$#Y-0+rpE1^68ysuu(9 zJbopFF6`ORo02g8T}h0(e5UaC8#Bqplqb)boXz9o7c(avtlWS8yCBB8&2SvmLfTE? z-B05rO`6y$VSk0;>k}N?d&hdHRinCv1(UBiGZ!l}ry~#klbt0A5@Wwf|4ZDdyRffY zFsCDKr*G6YZ2mnYb8dvIj=XiDUVStUo%gM9prl|PgnALEFSW*+2ZUxtpaX^^`Yszg zCbLf@4&*@xkHil*XHK%5=h^N93L1V@V0NGRpPfjoKl$~|#h+%pk>-4cW=@j!zlQ6D zM%p#d^0On_ul{sD8tD#>=#C}n&;9AI8tMN#qQ5N#A`1XfHi2l5L0~B`a{!pVDcuVO zwNG~4DQkGW1y-W_H&cNjG8yXPnDg9v#RnKD^r5PA9LNCJWg-Xc9YvTVd|oimS_+PC z%KH|}7(lCz*SHD8cj^{23&{Bf!QCOCK`3O--QTxQ&?KHR>eXN_YhsX@acIadf8a z458`X9B_>Xz`m8mpUi#6P6o^#Gn&-$vTn2T5_lPZLOIL}M7Mbb1|}q3s9rijMWvyl zCoo17`@45+?Z}R^fjb9j_~@nH z;-Tb+(=BLHN}~8YVc~%&5tQJq7C3(njdCp~v5tX(m!PS%r^&j_h_S3wPu3D3c_tn& ztv}DMkj){JC8CfmDkOuba^e*Jz@g?M`zKK(a2C1~xFbuV)AtZ6{7X;YE08K4#%S@1 z31D%f-&I-#`}Q6F#E>mzQ!TwJJn|IUzObb3V#r7$N(C_bh%ju}F<>1K3D#@B`_*78$TAgSi`QSqTvK7`6wn%znf`IRhwx0l6*Gu_g2Fwpa`khfokF6@k5APG@Rf zG_Dnn{dZ9R!-^-j_^Kr&V3p#63C|Xw(~CSG+8|EDMqikD-eTb+-ig0qU=+;PXXW z^%iNu@!4#o56t4TAMCjjAtbJ9D8+lI2h1c7?~y$G9GZP;h)_%hKdO|tX_xWh3y2Ej z2ycRjI`eZYK+S!uc?t0_1*p9he8MSEE({j_8>)N(^GRkT4T9=~LF5KNH~&^Bup4zK zZ+wW2JoI|+mcX`*zPa?P%sWb1G961Ylg+-viw#sHe#6#s_qP2+V1<((Dq_x)lF zqvZxLZ|#A|+l%nmtb8OF@R4K-V?vaYOVqvXsJggl0a!F=En+r5)`297>`P35jEIB_ zU2tGfR3Q9_6>)X}L)k$8UI-Q$!^sr|fWM*Z{pW0Y0?Z^}$OjIHZJeX&nE5$eeqQGB z1q;IfTb(tW*w+T>%?el8W)#;I%ura7k9U-bkGO!n;z}qICb@S31MIb93;Fn6KEeF> zA_U@Jv9a>CC!70y(tpq?$q@>TzeK#Dg0J`_9saJNdx4iCylj7(GMtPMWesJ3rMExx zJK~QEYDlFffL&PXjF_ys2hvzQ*(b_0Njo9E&te}-!+S5;<|pIKG6&ShwdZ%~`ROt| z^Pkq-hl+oKSAg$$=SUBmW9PDDDnmH}EI9^4w4`7-3e4S-X6+^6hKb+4su9^g0`{(j zv%Q}cOESavDxg_GUE#xRND|N+WC8$I`ioKhj&G|uteb}r0P!O{n&hxv<`8X1#G?nZ zItPe&yZqZ)7+#lWsS(g{cK8!^3#ThfhWK30eFzgO&wDwe7QG{T7gjcu4JAw*zyxC~*$jczU*p<*L#@Z;6 zft&5eSY>#Q@?iB9T-6U=k(~qB?^}Uk+J>uMbi)QBq0g?X1h!vAt%#i-kv4No6L&c3 z53Z*lK`C#(;dVqDF0Siuf1WmF}R%v36YGUtc;{MYFRcYpnY8L8g7W>mI zrP3l7)uN=*nEtXwQ>Ar=6}D^BYW$~FV7tXEs!ipy>UVp0y`naEl@`VjOESr}u1<)D zXM03XM?~6=+gJzgPV<3FvH&5I#Je+BrEyWAMwaAZdQ?|s4}E!fcU@F_)fHS^q@ca1 zss2yTX=8O8$D8quIvW%z!iDjr|06&qb_$JyG zS|%+Vl*xMMhf{2_lZ6jLe1$``6Ov{2Z=TNnyosYGKu3(ErYb?9DZvE(qII!|7dpU2 zdBVJy$*p_ET~s}m?U2n(!u!LQw}1Va*4}O#jC@Th z`+Qc#Md*h)x?FnZ)jV{!d8U#9TDKJ|LLlHia!6GB03h{vaqEO$YwLkdk4WA#YScGUG4_SGgr&Ax=5L=y^8q&i$5(67*&MAG}^M& zXaO*iGt*uad~a1%38tJ2ROLlswj4Jeva57ur%`V!t$lzMvm+T{g$e|9PW2J0zu}89 zub6u`*n1&drHZl(;k+m<#+-M&;ZPn+HqqdL2T@kWcb`Xv!jyT8irbzjZEIO_j3eRbUxmhB7Wmj~wWb)TwuUMw#PTD++R_ktS zkKbB~nX}bDhPyEb2dsURBG^qu|5hg0JZ6UH<=W~Kp^X;<$j3qK)b<)E`-I=6Z;5wPV%v6}uX=@h>b~CP0&gUsWE<;Ntct6shjw zBs1Wo65lTa+h@P{6X)Y%6#gED1y)fInq$N1)JsY1yD~zZEKx0 z$zY56{(HueZYSqJ?0}N`9c+{(Xtec~qVO)&6TuV$#UM>q8-5 zQtv}yw@TT|qxcdgR+~=_?h|?1j}OnPXAe+)Ggb!bzQFpx+>~AsQPT`@%^j*Lg(1!; zs=9`gK6{a$&_0SkcPO9yONPeWEeKh@izk9wt+npI&9#9hZC7vGt+&8 zf=rfZK*&gu7UZrxlO{)P>!jf~IawDxS;?-8pJeUAwkMfbvt@cqiM2}_;C%Osw~R2E zTZT?I8@F+g?7*tIPDxvZr~b&-QY{(HFgqjb5xGhO-{RHZ8>!9L?yNLK#oZL#uu(wuur~!r{qVE5&cV5wOhTpxeTjNV5ldJse~ z>KG+jbkTc>-rK078=W9(bV5Xn=+UBgLX?P3NYNs3eCzuz&egd-YkmK<_QiYqK5Ol@ zpS7R8f4>9ks`~b5o=V=4QK#o{LuFo#Dyil}qc=M!m-?eBZxn)%>2qq(P%46_Y4jF4 z2Uh)*;lZLY#;aGSxM-I!qh?UQo0~Qm|E(*c^S~e(5$k$Mm z)n{gA>Y7VNt0QiWO1YldEc=;<+9yeA7r*GpWDV{%W~+)vp^bzQ)b=iHr)I_exS7L7UakQ9k0GlCg!UqtqI_`&)PwIacz(D5z?z$qF#BemFr2uV~T{Fk!2i zS^x?jFoddVh-s(}mA@6UJ8FJsZ`hy?OvxP<-wEJNa7AA@nf&}|YiAPatMIfxe{o5v z`G|RtY8es|gWv0h@xCkJbazUt8vrq06PtSH=u8chA*?m10gdOW z9OxW+X+%HuE%b+lVQFCbzIw;tHsT4ZmU18fwp!yX&G(&^Zt#@)dS#|tpOo~TGW=ZQg!Vl8}$BIGiqg(5fK zThu(4M>Kr<7!m%UnD8m4kD}T=n$M*ewGB{EkGjW*)>MmB~VOUVm{CJ#RZ3$%q<|ChzM*`eR>FG(h1jAs}# zC|d226?r|ei7sVq z%!DIIlxJE-Z5fAP+=#l9XL|lo8J8^Ks8;-)PlKbHY!Cqn=sK zwdMRT;y#%kcxHDVl?#Ruj#&_S7EXy9v*Gp19dmj8@D<^>1IjCJuJ*N9L)^HF zlh@1Dqt}nR2`Aj+z4EvDDkLZ4CcLY?3XWVV9rxdu0KZb;5+PI+eZhxjBk}sq8*>dbYYqln5z`4H^QD0WijH;gl^DHw zx?rapX7xErYyNtt#rTEKJ6Wv@?#ddpk0GBIyxVUpT!(d&-W%(l`PPQ?IQp76 z>mK_0cK&s#(kMPmZR%pLvH!Mj0)Gsdtu}yrJ^AET*J!v_lHHE2tM~9RNv+~#?;iW> zY6&)7>z69~0Gig+@EBdaklKE?T_+@+8E;N>=-WkDIP7#dx><0u_)ze}Uij~tv@a#T zA5pzkac8_U5p&s`f)kbgu`5=62>)6R(#9Bm5*vT{9L{>+AeAs}9?+#62t}OQKJPFD zA9}a)at;S)<{QTHCLrS3ESOn;vHOe0;r3iyO9l0moNUUH)1B=m~ioGJVUu6;QJqg#~aNh z!FESsX1&I%G1;7b&%E@1cESoYsk*sij!QxwAMicep0zjg$$nYmphK_UpgCAm@s`Bt zn963z8LvS*$ZX#x1=cUy)0Dd`ee}#kvO)g1#?EnznDa4cUNoReg!7N~l)eFt)89Ad zM$*nsu6N29y^GhYG=2Nj`p$2xOx$$JHf#IySNT-m&ch10 zfxp5pz;W{cDnUced%=)n>)=lFdntYs z-P=?dt(Kd9$X~;;PjU)Vv=5ES17j_EH8UTTjM;nO@%601b6N-Iyv#3+EH;UZE8p+D zEsCx({7PkXuWKn*&};fJh@sgb^e{Ipnr|wUYiS5)@tu~B^Ki*Q>*U`P!kNDt-V#k4AgO}Gs5WP1zwZkUUv-n+hE1pdA{RmVu^}rJz+d~Y%LhK>I zKAVq1@iu)ncf$@J`F9hb7v#eGxdI!ggDAk^L}x+2htMXwXm*KU`nF)JV!VM0Zz3e@ zTSXAzUW5=P^lZp4vLb+T37{MHk>(EM!ihJ+i4FYx zjO3yWPGg2s@!sE!z!3P&ECQ`^#CTr*&Gz2D5hQPmyi12-H#TB-xx#cSyd9B#z+Oz+ zWvnMM)_2&ip*1cY38073Tdm<_d$+)A3CtdKT$w*t`EGp3QXGRno~ehw|58K}O=N>% z0>~q*`ZAJNIKJC3&hQk2>wsPmiuLi2eG85amI!Y}`pr2+KC(x@9;SRA8`S2I^pYla zk1I67p6laf7z`cfOcUKCm;7lr;eECrjN6wAoIK+nL9yqPz)h8$6GpX^G+&vJIGp0? zAL!ec>}}8WY%gwtCcb*l>o+p!HYWj8oYI*ScHtMJ7!`yk?9*uwM774Wg>by* z)ESLSfLd<4`L2&IG+mAGHj$(aR*lST_fID~OSRg(W4&UZj`)_?N2zUkspMwh()el< zWN8~_=~Y3kma$uxS=`I%21UW=IZ@22XiFZn_Ht@djkIK!Cs`n^rf zjgf@tIpm(Js9P{5!!THxP0Hz=Da5?NNO*J1mjp}gWYqmsj` zLhKb3qgsxXELZF(SE4SZlY(?R7Kt`v%l%*G5ai0x<~^rP^Yl-aAIXKGfWWw5=?)lY zRfHUMl;xxBDBffjqKu&U429fyWx^^h!Z?ln%7kSAsI2td%NImvCLaV14@cNKRX|s= z^@wiE9rDWaC94t$bCE=eMReI1I^S>YRo+}wCi^A9%RV$lA)ZJ~=`}R+sx)^c)%-d# zw<*lq&VT@0=~T`apSSE^-_;t$LY%Z_TnKv{xzvGv5Y+fD z7q7Ldn)zkUG)?A7b)(&WiY!s%_k#w>j;2qsZ;6*1C~`{6M(fTG-b&SEiz3n&MsF2F z+bTja{wRW|&Gt}KMF6ZlSTH9fwj(SwFtVeP#x zO5O?_%xN*B%o1quLxIO#hJ2SCFWkqIQypkuX4pw0j>5bIt*TLoh*) z&Bu>^_S&O+$W-}04wgngG0Hc`|{a(@uvHPn}|rU{Rj)vMlC>69T+)B_)|;h2ObE5Llfp8Cx^s(FK?HIqlY87tLTkgy3mNP7*i??f(%n^3i_(U9^F9Mf|ZlhVT2JQuwLnC_<+1RAU$^554u0FAU8?|ACNif zuQ^gyXP}PQqH7-0Fm++lfsLqPah=hF^~IlvAY+1CwC%Of`YonPFV`5!bIKEm9 zbKp$wT?o6hLSVAoEAx)B;e( z>53cWreLa;BU+|94bxR1C7dn(KHKYBbjL*y~b zmoy_)r|fJYu&oaB+?W!*KZggOvu=VG7SAn&3&eEZGIl^lHOJ|b-c0ZvaUlLeulT5Y zisz}Z5(a;#s`IC7+(#+vpmM3BRkbv6I^21uy&R?!v1kcDIq3jlAhi>^*v~m)O?qOv z2s!51ev;(Ak z*FP606IXlhV5e&er(0w2Qs|Ux|Ni}6!TSQBVpx>)G77P_axAQpN$3qX`l~CO=)fF1~ zRn8zIbrd{J+6vg21tHEWE7Cixx^p9mg$`tle~w3+bqsd~}T1$aqYgS9^y)a>uEDFx2CldFZf8 zl*AoaJ#!Vn=&svn&5@#a1KmhTL#Z$ddzlq)phkdAq(4K5gepiYo&l2;Fck*dV=+fBpks)m!*q$(OlOKvo-2 zl83d_Pc(lS6V=}0`v*;$nq%UJcl=|k$AURU`FQHKJ8OYwGK$=9CEGN{1<}VUHpljj z$7JanVMyZ;?;`UHhO8D$j4gP$mEL)*y~h^D{8 z?nBN(pt2AJ+C~T`wwLTa=lzsZj{BTn*PwwKu;ec+skKb$^%RFLr-HqQ#j9s9_(GHR z0S)6o^$Ae5dJw(2;L_Mf)H^+2K%EtN=y8UhtPAv$jUHH1OUgn>LfHFR>A6H0lhIQ0 z-&qsUzqs{qWq#b=7eyRbHc~vDq}MQ)*MCL*p=Vw5Ic>$}lGDH6_K4r4wG`Ifr&e=} zSPkG4dSU^~G=ya!>OEgL-90-x2WekG1yB9D*I@{W)~<`)0_sf!@KqSH2U&Nsyd*$?b2ZU% z&x*E}uyGA+^FnwhK2Ws15OF;@Ark)cxbaVC<1ak)AGPTxxjJ-sXMe~bfAAV-y-%u3MwpN{OkrUc*E`5dv|RC9z01J7t8Mn|A*NyB3_IF``DCok|h=)AbcO4-m< zwkx8RIu+W&GYmXOY|o+%35_#X<_`@bYNZRMXr}X);y;lwv03Y|8(~27SYbO?BU(k~ zY2JL33%4(kPQv)8w(N?s_$U=RWq%UaQfy2-yfz4^7ke8P6QY=Z+GI46L7ujsHA`T$`!J)@rO#g(q#!SxYunymy!fim!=y-& z)-rT^Ko||%{Y#ljUGuWm@)}v#$@DswOs5GS!@}@JZQWY$dm-IYLzxh)^Cs0OIsFD# ztC*Ab$Je6bgSR^}IYcff*|!3pkUi|o5io)i!^u8_YCQG%v`mkcOay}27 zfIcct;l_%=kwfzJA8=0cLU^1qJ>iTtX+@|WQizuDfTUJ)G~7|dc^DjpjPRGP6yR{y z-9u*9R-LhM7DVa5H6n~TiiJs89a@&5@wP=Q7Lg;U2vN8OtS5_&`;l|#GKNf-tm&kT z`40o3nym0lI*SZB-8WKx%7{Tap<2S(QkC~wX;Ug}1#>FSbAad|`M&`$VZ`?1VddMa zELKXkhh!qjA6WhRFj4wS@|j$hwc76}WxH&pz`r^Zo2|Vdnoe)9-oUA;$r()A9UW zfAr7q3-fSXDu0UzV)09hDA@U4HoLgOQ%ek6mcLc}gO*FH#D@$1UjysrQmj)Ir~+)# z)WolBGIaF=Y_m*!uWWOyvjXh$oLjE!^1T)U>_fD%?fm?u4%b;s(rf<=v@E){Mxygxj+QYLkN9YG)g5^b@YbLO0Vo~o$4RH+g4eT zC>AGH554B}BU7#K>05<=iX;OEDk)NycJ$n$ZzfFGSw7Igibbp+JN%dxF@|Bpm83Xr zw0o(ZtO<);M-&0Wuzhc59p(|EGAlka&IPku46Pes-iNc*xF!*Ub#k09dF%V{X4t#G zvWE8m1@q#Hl#HPq+t#I}x~}#^=yi(Mwx=M)hv^Lt$=?YNx^51^^3OwNMz6tV*qeVj z9KR+nD*rxsDN-jUE-1@Aeru#D&QHv!O$W`yO(t`C|8lBf=204hqK&_f_ERO^N&tTp zq)Dv~*1~}5NtgyA3GQbjV|;*%yR~-muc}0Kjq(v~K#aQNrm9m;s)&ozEk{oT6WOER zEsPMGJHs84g~BV1fpZ7rtBq;Os!U}s1gU9~peQ~~#mRpVWP8lOs{AG=l?S>V2c}KF z>_TSzWmII5bBFER%b^piwzI_}LE+r3r{Ib6M==KsuwroHPAH-yiSFCHxHiNpSZVRb zNsllk=+vSqq3~2i47)0*lI>W?!=7P;P9z}pJ)=#c5MenD>_<7PZ?x9yBNSV>zeJ+H zh#JlE975kQNgGgjK*HItL~ta31k=047j5H*GNnlda9*R+r+LMADgNNXYdH8)!{ zFyM`jW5MnqLeJErMHSO2tIBB_R8w^rw2TR=%9E=dHD622u<_nnts#CyW4{C_$|P^& z65aW!DC43E3ER04#u=;;bF*{=jB(NrMYN(Q^x#(vgbK2(lc_~uHrkKFq|A9*x&9QK zKbpDS!6nmJe7usK&vr_}Y5cEynpwqGNqHgivss)rA{=F!Z=0hv?;OzlT=&Ni&HFFC zx=tzkJZDaKJ0^L!dUNJ$`Zwl+F=Ua$!y~R`4nkM zD-D^rjIVxx98=UNVY^0_EUV61$0j>Q1Cu#$dz2cPf5l?MM3@tlhLzLP9X6-@7G5wU z@eT{B1i|sl^6jDT#9Jn4e!LYM?OD18`$2n>s8k#`z)NOF1K2qxocJ$bA0| zLpsDNdMcC0PXk;iGBY1P6~K!d!B(0- zVLQrgmEW1_uU8P}G#5lIJ&AY`l~eFAmnm)~WWW&HX*tUdXY~o>F>0}%{aVVSv9nRB zjCnAi?wVPuP7|@Svx)yz0IizJ^CdGYe?TH6DVWNVp_Gn}mQy^AaCbeiY0U5A&ws|> zRZuVL;|sdX^$d`|dF6jwwab{Dgx39;h=8y*;+@c3C7RycP=Bx}6ZGvRmY-tEDiJki zzx7EpW&K*){`(7Ep3$FZ+f~1RBe#vGFUA;L@FmjB4F+Dcdras9B_2?m8VOcJvggEl zzMTBf;A%11b-#JoaiwhPrEq4@6AD4ytK?G}@{&tggi{J0HvV5JIVhtlbR>1j0dQsrZR;Ws!v7F(J{HJ=kyvk#pfE7KF2q9H3pL)`Xwoi6}RLMD6v&7xmIk zr+w4~GZepOSxNIt5Gw)Fbak>#;^W!RGC2dFO})L1RZ!)}g!yb-!f;q0v2-^~SRCG1 zjRH$zDH0yM+n1o&x}x~?r`K&1W5UZKtWFVOn4zqSQO9PaRA#856_D8eNHB#zHZxv= z$^=r3ZKHf~SpDZvA@25oCBl$W0i@`xHSl_)pF(mV3K%%&%~af`%yp;oM1U=^y-3BZ z;jM19UsWmhdgFyYzD^%--Oo~1$Gk97G8~|f;x5(zDP?_PGaXZk?4>r_Rx-O$vLI2m zl%|RC$dTq%b`Ec{G*z~9QMNawP8lh62v&BgRd()Fb{SK4T~&5FQhsrx>`tQM!Jy*F zr{X28;;pXYW2)loqT&~<;-9DzkgpP0s}j_y5KOQ)Em&Exij8lZcGlraj3+CUhbb2XgPOX30m$lpAC!i7FN}6i%m_F0GoOu9|78 znpI0n;i8&zo2Z&=6HoFuJGWCce@wMtRkiR)_0^4P5ecf80ae0>DwRf+siVqGQLkN4 z6~U;=L{wEis=5|c(}}7bL)ERK>W@$jH>fuxYK;tPO?+x^rPZ3%)!vz^wYaFY2CKCt zsXganELptdgv9w$O(L6it zd}-bS$#_oq_)@;cI(z)HdpHrpxY)7r$zY8y4CCvj6FH|{Xv1i0qFlr%-Pd30+v=J- zW1868VcgBy@%ke1sHQu{izL|%_nCBDCM!5DaJXJ5^H*(_FP2+k_#RGAxahrcrF-Gl z?r4zV{kP#Ds8Be`Wki4kW}98(SY0bIhvEATkrYkx_-Xx?lt4-9)Y^*hs))c^JT)=L z)61f|26w@T;kp$G5RQM8TQ~?8h?*Rmq`imddJj+5I0}a)%Iy*lNKL_griphv9gop` zgXw#XPFZ^Z9e<30R-z}z?n4~3@A*eXZQN5j0^uMDB9^r8ooe%QfUQx~MQj-B1c*I- zoY2RV+4tk|G`ga;)UUn5g)hfMKLiNy3*si%#7fZe(;$?FBT(JNc&;Eq&sSAu0cZQxvtKnjSkl{45&EX51tC?Dchj6ieQyT5Bu0*|yy2;88dF&X@U^JVoWic)|$9 z6eKPQO*pYoWQg2CR5%DGaS!iQ!CC8>{#YS&1k$dTI zdpxRODI|X|C44FJiB|lYA!fiZ=hPs1ZS21*uqp2+<8a)A+>6~g{`u|b$M)gb*Mrlo z{qLK5CmXxR>pMqZz8$V@AFO`e|Gc%gvbnpwv9q-PZRyMQ;@a1RwXbuZH)mHiW|r5d z7uP1{Kab5Wf0|w#on9Q7S{R<39~z(i_-XoohXT9wKML&sD6s!01$O1VTS5lpR9uk%KXnPmC^K)zBZQ-8)P(_svScK>j(~5b%)Uuv~l-F z_aKK~{mKIw&c0}kk0oyfb1%)%+i?qK_o#iVY$G9xluPlY;n^MGg;7?M z7Ptq$0^JAQyYtrz+$As9f0Fk<{(6o7-~IL5_v(!PsJtmc-1+Ny6~RTt{joTtsGC-y zO)Lcwvl9sLuXA$O4 z1J?4n4Ahh?bH~&ec97YeT#j|LJXXcl_-lBX1sBf#KSuef@s)PG@OnC1Ze4nn=nwy} zx^lyGrMN3|$)@{RlOqfQwIeyzj}B4J^vU@kv3oRV4dTY8C&9z_ik#-8BzYVf`oM%g zSsN%Z8L#7TiI6$MOQ3scQLn}O;C1irda0CZpU*Lm?Od}3gJxwqgG$`{*>Q3HU*a#` z<0HREd~Xdm1LuEf)h?@kQ}nvFu&g@2q_Qs=9?)}}RoakKSe9K-n)$N$Mc0aKyB61o ztb603Sw-`cCQXTAWJX?5T23K0yC5a=Wnx-R0yaA?B@>gB?uo5`l4h0^A08E-8X1=o zfk_UJP6&xky*1ar)K;x>>J$!@R{UToYhP(R&x%q^<`GmRpgt>VKxp;-Rdipzi z20M8KIy>3gzX-5*^|5vFv2}8{cJj7yeDO56Tp;|3nRDPn7ei|YH%kXkOFI_}yBFp* zPTIDP&#fIztzAs4oJ}n3j4d3Dp4%CkS?inGJu|U>W^AcvWUgppu48DfZSef5o{8qO z=bCzVVWx2xy2fhS#%fvys!t8o)m2qA^;Oh${%_${LTM?eYAYb0DyV26lr?yD)Pz+O zWtG%r6x3wok<#+0CkPcmgj|iZMD`=mgoh$N{QNSqGLo_?k}`^BJY1@9_PfsBBWVTk z$MWLh(xQ?Gk-K;#BP8}jQ1r3DLrH!Si3dWDcm>6I1jM-cMFp4`=_MYp^NVrv3bXSF zvT+H(xdh=Hd@Ss|%xt`j?0ihD+>CH81~?ZJGYdTnCp|L<9TPh(BO4N7rXQrfOrl7eCCV++>M$HJNx(fyhDryK71B8;EoQfU> zqX8)B02nnn1wA>8_J69{xAz+Es`i_r|5LSjO^4syB|gB0%11Vqd`zHuDAHWsSUQx# zq7cuZ+O#buv#6hII?`1BDO<>TG+*`Y>+zQoUI(iqZ!4b0b3gmXfNHLsE=8vEnvFJB z%~ohV#7{!KtDdhheCxDk>^_0e<7(Ix-g9IrLvuF-Fn(^T?RiV6hW*XG_&}kZ^1-sw zWo6N4XZQYU%9p}#db-_vOKcKOzpHgdEP58Gw>N$Jl=JYxsv2-4)>=A7woRk5vE`hB z%A(>=^_EZ0)-q2hFlJMk05O_G1q+E=_mno&$(X&|dJ%y(3&MYrdhW8!YQU`Q-;uU+ zxb)U}ec}nH8@f=E==Pf{VC#Thm-Rf#{rBxUdWWDTmRryAG6QGiZSd2-D_6a1c-$M| zAgW5Uzzf3P=7{)Bu2gR(ql?@S(RT*SOxNvm79l`<6eTqYvnw+o#MzTnov3ZC zInJ_yRB@Evwt+~fQM$FMjN?wO!|VMmqW}`oZ(<>gdaqT6NGWy|CO+C3s<==^88`$v zZPO$Cs6;CieTeibUs^&lxZJ%5DOt;6s~z{tbL{fw4S}w>=K*3JqU-VGz6hxMK32Zs$k_z#ZW3{W|{D7N^YFEoycA0EA(692?o zHm&b`{BFsv=D20m_wcxNBj&+L+jf@oN&DXGnv;&Bmcx_xr-Ki^cm7&%{{G=|r{;Ut z&H3T??t27$r#&EQm(yM_SM6yZ$)lswen5rqY=FYR6^g!IMH&q+A~{$Eoham(q`rf{>gX%y_Z z`E?b^uc28z1O7&lMT?MeW^I$>--`rK>&(cgCE=;i$5_%d67fb??DArfM%s$ev}@|B z#jZyB5>vsgXXKa-0^V|cR#);HJoMNWyWA!SL)RWv?nG6o#s-E#wi12CVSsNEQ zY~66&J>w^#>SfulQG@P=6q;qt)FVAc9>{Mx%aqg$E%b{r^=(+jzw;L+-$S*-gkE9K zA-Uv`)1I&s$T!$#Skgbd#&w@Dm2PKbN|-vtLY~M0viIRTnsM{xO%dxO4vAAXa0U`j z&;h{f*bDC(WdW%m`=EJ%l_%~7p-EaFWk;$=BHKq|OK3ms%4v+mSTUL3a6i-aX{;Pc z32+;W9AKq8!ywg5pxMI%oIgMUj+S5wm90z(QCFh~IFd5Dq&h-zi$%9{n3@?nnCj99 zw-wDmOkC#04X3;?{%owUMWezcpWsj4`&C|IkK&2I8!uYzVnsb}WFos03$HenB@|lm zfQTIn3P=&EFXo73&`HY>O;#schN$Z|vE-YQzmN_{-NM*JfP0M@=S6uj&1ta~JnWJG zE`Sc6rX;C2TLnc7@Lb0xq?>^m=@wA-fwvoDdj#rB-0 zKP7jxuQe_o)2SAIMbvn=o`J3zr)XyVN`aL4s5+5IQ7xEvxkZE5r^+W#CexbuMgBa4 z+hplmI?nyqua2NIXn*oDmCY~9tXpb1b8~Pp+agsPx<@fIPb;!b%(Sd8TGLn>Tnb^; zPqza|i-;5p)qhv1iP%8S%m%6-^x_(VuAy}^Z&iv`oi0uLI^%x0dY8UOQv1wI$01<_ z1e@fh3Vo88CCx0Vst1TSC}2r4s)2aAMlLx|A`#pI_bX84AUA3b zEi^sYtjM^AjRbv(*0zWkmPI6Br|Cc4NyEF@ZFGZL{XpuxKvdUaQMKZ)&uPDPK(ChB!C`n?>l0)) zJ#0MA3RBhCFJzROq{}W!G`kj8>^Ai{8Yxjp@`l+MKP5&t6UD@#xnoxLYIefLROnV~ zmU7uge6+Bl#GchxA{*oWf(k`#FMqc4Gv1Bk}wguAc;wzVKJ0WMzh(xa4*r^3h zS0;>4=g8PT%{Js*si}b1b31`zrHD$>TaJx&Twd0Ds)8Mv;rifP+);TQdDZD{iSzU; zIfEfi;WM3fwu4ul%WUPE!m2sE(iD+4?GUt>vT35)^1t?8aUP);v>KK76ryCEIesXy zUjonMLF9d1FWj$KvAka1@C4(OOCckO`U4a8DmzRKG4$E^m4k}won5S_j$eDP|~gaum;J`~tHiQto7 z$3fdugcivjex@Ig>{lcg5{1w`=@_aKL0y!oBVL%H~HtwpMMuU{2~8iyo-7KOau5fg48MmlW49Cm1HT zkfXg6EY*y&ASd(cc-rcC9_q3=>cF)9tZ39^RMfN$WNsiNjn!efRl~54Zr9J_qn#(a ziVI#zI8||k;KK-fk8u3yNL&wpB1DXOHsG+NtJfHl;T3MR1Yypm!`lVW#ZP5+>=Vv; zNX4`^FCZi5&uA<)QcfMNqhrAkjC&IuSezi`c1PJ5>6vKZn9K=^4}UKs33BN$Wd{@3GFrXC}Cfrt!nb!X?131WR#- zy0N1OeHKfNHUrMmJSe?c;pyqO==5Xjbb{jagMk$3k#q-cb7n+_B0QbM2;wa97#?Fz z1i^yQ=KXDeE)UdV7|`D{na(ng8w5N~JvGl0NqQ{`#4S??J<7e2hkAqzOVRky#O|47 zDoL1o0Hlk}`W}H78#-GC3{l+&k~uu+;5HJ<{F-gn@1Qoa_*%jU8&}$laczJjE>2Yp z4L`GiaKst5F_YZS+EB6Zr=)Rlgw}26W?4qEZGy{&DUBmie&fQhj{=Dy0W!r{UPr)r z0jOVw1XD#7{TgX+Ny#VISl~TKo)ESWi)Y^gdz!-32#+orqttt`^QqPX4)5q4WG}fFpRdfw9 zz8ZxlT)bZ0VYM=>aN`F4I%RTQH-Hea33p3Chrk62O7K2v|BC&Dj^(tPUHW5f`=!OI zZZ;{pk*1^ST^o!;+?q=tQYBGLUfifrY(<#>h(sq`b9wV00zQ~3!N-P%9#smr=tu6$ zZ|qq)3#tLB2QL@zH9tTkbW>SNProJIOkpl=e)kqQZ!5}vm$C>q{i+IN%~~D>(z??? zdW~Yw<{jSC9(Bqx>oA2N1f({$b zKDJ818`2T4^dAG{LC@uQA_R{aLoV|9dJFLOS+P51)uuh#1R{%LRd)O_!_yIO-L!k>F z-Yjy~kqd(Cq<=^YjQ=_NK^85w^9OqJ>4QVsJ3O2ZLid~ZOdw^|=?f zT7~qw>*_5`njS5;TH<6kAiCNJMwH|Qk{XUR%J2>1p(UT2c8V0sD@RI7OAie4c3LO8 z?oxFDQmkNj7YSUB$U#)27UF*co4M9ACH7IlzHZ8EHmK+|zRfO|m{$`=yr!TV4hsTu z-Xb2I4RKdP%!A77uWM^YyfgZ%n*)d6T#t}f_Z7H!C)U>11jEu+v!C9%Ll|I#rM)SE zpZ2YM+d4me?(^-u6C^Q=^+}Hnn2rqwj}7OKjdqTWt&UCHj7>3&&q$BYnT{_6-@UDl zuXK*Du8x1X8Q)--*pi;uHl5fBp4iKuIOv=>TAet#nK)&b{2@L0%XIQQc=9rT^15^K z=4QO}VUqMFfe?J^uXJTN%T%b`6y<#|t1zKR@f03oWh@Io<_aNUgr;jv3*MiG{H>&` zo5nAmy7ib|44=a3ou;@yLnJ(dhn~R+nFgLrkLlg zEYBK1c03C{o8@={P@2vCo1PVO4HgNRA}OB1htH|<1Esjr+)p5SA#*d8bI&yZq9+Sa zU4uj2r$xts(5ZQS#sz6Jm`TVymj=LIuwZ*!Q9ZS=Xfba_I&Jm@8gjhg`C$>)a?y`5 zxRVVce>_7_JWqSJ2oC|mj+bx|3$cvBI{fpxA=BFF`rPAli>XA&x~V`?NU8=<#J>W* zKWjz0Pz({P2w86Bnr(anu#+ycYAkvs&CzIoPPh78#}D)hEoN!}qGl^i$CVxhtJxn` z$3hk-{;tkES(`IkTL@WODp*_ju(rCk_T~2P+A?F`QgPQth=|yopxN|Gh~F21v@ZuA z`~;(Ig=_@{gMr&WUmo^<$zlB>jA|k~dvi%DI{DG@CBBnDM28A`THu-DanNDQ*z$i91$|xlhZYJo% zt}WrWUO(FbeJ2(%&1~_1U*(v#ZMXTcH;{a58(RMt zQ6t&g2SzAo7CR+GbE&*g1i%8oY;2y2bs9F1**_qaTBnc;}(}LGhDFV38|b*y?kVSGFhu@ z?x&p>p%7e|r>ruTpp%!zWqaILwtv++vWqu3?{9E!9t`nDHvQXI_tcd;w%GoJ2@hn-paugUBBN08N-CT zfR)gmmi(a>yHk z_6zyy7pnVL-j6M5_~>hrZW}&WA6aY5Qh%i}^qDM#SG1bK@^PuU53u=Lu<UG&d{CWi>-XW63xUmjB5mEoL-(0b*td8- zk;coY$BUAi3V0L{y$2WYpqhC?in zw{*QXLXAx%y*CYNJ#(_X=C?1l<`NX{rNBmYs5q)HFXnG*{{TNOo9%UW9B%$em;(17 z9SI|Ts6K#T#r#jq-+L1W{%LT%=b^D77lB7gCGDfN*@q^im5HL!-cpRGCH^HJ#1oR;5NUsj}gWCY=O&#JL@w%I6 zkpB1QT_Jz};pJnYh4JP1o{SELEL+L^TvE>sb&G9ktcZE<4p%Uqm^B0B>C)?*U*k}oVM^!rI@VJQtdJc1^HX1(bS9NR+Q-G&<*UFq(C8^VXu&DfG=hlv)`t2ngDar^|V^raIrY$ejfLMYgNz|x0LS1uK;_b$%hZ}9jY1x@A@X306R067>J#qn&pE7f+` z(1F_OoW+75t%c=p(P#^sy_dJ|N_+>$T$eM)b(RTwKpj2aXtRhUSC+7hrnZx43s+4lwT$C>-DZ^_I4EJA^k}EeIz<*=(gv%- z*>02mR9VtC)4;CXHrqT#(k|Ejb-Ufm7lV@a1%5m2_OHV5r5uW5IXfImQOhX2YQ`3>^Xhu--n+K0pCFIchdCWw zyQegXj%Diy>D{_-@q@pbD1Fv1(qXrDvxq)YKPfU~J1}ACXvn?EdwtOoT=YqBk>SUL z@b{N5M)BgMy=ETE7M#o+l6Cqlnzv%v@#E-&i#xaf)qSsBY%%eS=2clMnt8C!=ra+* z1^zz5B^&A;GxnU(cfX?Ix!@a%G)K8*g1)~j1k7O!CBsVV4mWY~PoKYt_z%-oR|NM9mNB(gyL+v2_~P#H+(^|2Qf3ZS7 zN+`G1MLlaFQr`q`#l`XnXaZCdEP57=;uwX16S&ZNHr*>WpMqI9xmGAa~pd7rhT^jl^! z8=`FaY$ZSKf}_ZxjwAeaI_VNZ$?$eju;4Mp5L&U%qh%W-%p5tEIF-QKkq?M6S`OEK^-f-H_Y6nhci#z54kJ^RRpQX&7BH3&DJa9NQ0}lp-ME^N|{!V?b(zTa+0z zS1m>WJoVhDqV&{>*kEd8Iw@HB*#x#gjR4wc3ysPl$5v^0N@*t@>B+yf#>g}4rAnY2 zDnx&)BUZUnU#-|UfB(bAMm{)R?BJb6@tg34d=qC%ju*GFFqNV8+_O|FMN^Xkus;1m zpv-$xSmRrjTs50Uf<#O`6QMa`4h1J+eFm4W%QU6-9Aqa2)f1to7;cQUe~`Y3xux6u zFZSLtD9$ilv?XYx!GZ@GmtesyKttp15;O@e!6CRb(6~Fn-QC?SxCM8I;1DEznVCKN z%-(08d*q(8@4Z#?k6%q!b-i8vuIKsIqLAS-mN!A$$rAtm`VaP?ra9J$T?Q^dqr7JJ zk6WH3BL69<$+Eh@lS??cMcVR>1ev{eU+E!!v8ZKf+7hy9{e#*J=*v5ju1_=}#QbMM z%{5vb!2Jr;53jEY9JmE+cM6o7nPsdbbp3q;1tEczXWEopYO?Oo>T3VE+ z!)Y59)gtFtLG6UuUsZQX2`h&18XmV!b#ATVo;YT*v$z5JKOD5tsrZT~oHV2|K4R~% z^HSkOLUp!cMF6e~RVd#o%x%p1Wmv(XZ=27!tAhJba+1q&er7;FoEmU{6+Fq>e+RCYz`%T$QG(DW}XRx*xuVXvFb!RM3b!OW;ZxH?oHzU@%c zF@0Hu&%bBW7{l?Qz9ab{a0?PPh`B0B=PkCkk&q>4N{o_Wb9%s22Rh>@_=RTUbpIIh zc)s!{+E@L32Iboi$I(|vqf(rx(a18uS=j{5lWd+{xiHMJqCrB@-&2*=RA9TO>egBB zl$CUis^{669U=4cf(E>C9KK7;J?b_~397onYgke3?0BplVi9$)L4E~NU<;MksVowc z@v(gI+@bv?ItUv8#SMDy^T(^m6)&m-E@4YC$1?L)umRrjrmGJz}gSav{S(R%^58^a? zD8D-ak8^M%lGwgwtC(edL-@#?Yv8y8@&cQOP13l)F$d!k>GSko$=4 zO3BCL0JwcgzY#FL*%Q1$Bo?9uRp+493ZU18g8cd39c&kKXLmPkg%@o%5k{5HQUK9KS3q+uwh93MI!sy}D%u7XMU1?O1<02rQ|TpoUWn6^2p2L$6$7~74;kok zp}{z~xL^)0bTm0Rj(K*F|4V>?OX7pLgrr`vE*HRPr^_g>Szjos*(j2#Re;{AhD8rR zK7($$Q@>Hu%lQN_#|Kz@0+iDM7GNSXPw2aJu;eU2Hk@V42uoxJ;GBn8Kj&Nvs}>+8juKh5NWDb@UNnI0FD<4En}H1>2Be zk6A;fRXFR*1QA@&upLatmEI5rvS2a*wCy!0ZV2~1PdElfEClKwpDZ<-9Por5dM(XE zjFtSdUOkI$7V|nf9xCw^y#XidP27)QFK&4JusOqz}j%j*nqe4C%;SmSo*z`b8vHR2Btl4iXE&tP5vpx(2U2wEO6dwDooO z3rfr#0DOg@DWd%Tz%eWA*Qb+MA9m3BW^wDs@N;JHTflfj*BL|ccrFsFDa)Fu*d~)Tv0edXE_}e-V-9oUs62zQXdel7!IVj z#T6kw8HchfZb&PBmnE*&R=TlPJi{k^oRnGZop`z?{cJ4%d_4hkN~!migQJ~<=bl86 zm_*c=L^7E~cAi8DoCG9HqUKMc)lZ`LPh!kXV(w02-Aukln!)& z^~Pk1zMCeltaZG!1++O-VaV#XU_eF-@Z}O=~hu z=R8dxIL(kS&6q#UR6qT$f13FXt%fK$!bO0eFH*<-bO4bW3%6SOD+rA3CV- z1qf<4Qu9xq;jC9n;YajKhD6w@6%DBgB&Y=z%?Q%YX8ct9pbzDE8|Zg1W2LO-M>HE; zG$S4em3&r{?w{p&J0rz1tLT-&o&c3_Ru3>&2j|Z!yw&hymo$ z71~u*te;bfP*>WWi~c>s6$sF#)d*mi88)8L&j%O>Lb=~UKig=Ep3a%m5{n$n$mwgE z=+A*^0VW^9q@CwDo;5ArXr-zIT5D(oC~NZUYJPf)<{UV01z508(2Cle4%40!c&l!v zugMpo5wfA_rJy1IeZjAt$OviP=v1wyI9(=CYZx@g!L8+Ar3nkv)&eCgS^?Db`nC0G z7bDA)Mas4P&1ao8)MI|A`>jHwX*IoeXVqdU(Xwgz^^HSN3Zn<@Q z%qOyLp;Wk5Xxh^f*{W`;-;%1{VBH(7>Ti^Viy6_iFA8*wuaITt1X3(P_MB0oxRZ`{ zo28DojGYn0M?08xv@37FFIN{WN7y4U83X!lRx%T^4wCso?Qw8w_3}s=XWI0bb`!EV z84`c51oO51_8gvaUR?-WT})X0nZLSJzq;JNx-z%Ay1NQnyIEaFTHAQDCZ(EiOSZP{ z1#MVOIVQ#2iO8=v!92h$Xg^rWXqMZL5IV%fIL(jjELw}h!6Cx_;fy zdH|441C&tpWj*lTAp3A4FHii^g!b%17zS=y1Zk81q+yZrT5cUdSdlE4(I}?Na5Zju zD1TX_7CK1F1ZT=glxsBAwH$LefyDEn*O|Sq9)P`;iM|$dvbElUt=ESU{t7e7-^e&+ z+vw+&Q4p?iXwhcCf#CqgMy>Q}wJwyL2Vk@;G7w>`;;x5EfQmxEJn9d4jA7_Z)`NDv z2hw3Jt{7dje3~6y@n2l2;Y*0y=G!>XOMF5n<|~Kw%FDm$XtjC&IaFFWb98I+o&FM- zI!g^u{TXnl@Wv0wER<*npS`vI1lW#F{965Ks%e5Rqy3{$@>aXyJn)mmt%_vgj_f?T zY{QQH{Eoujj^gc(67sGx!LAD3t}4&2T99%pcgnjzQ2dui*)b;~qv`i{(KQQJ4o0Ep zkBUK6CXC)4Zn3TUbl4wGc7uWR@WN^uYtXj@$+gj0e@L;+$p^xt_coIa*U?r<#zwk| z_H_DUj@tJ^iqN(rG)?9KrhhPtpV6HO!aGg?7hct>erBsLm6Dx^Z{#(=GO>9hGj&H! zS4r$pZ4i=|;rSRp%E$G3cK|9X>X13r$LMgFFPfPhBhP-_06zqcjSMXUxp!fj&H5JI z9q|yQZhf;!afYc}0d$CXvu^%}U87;SNp$~sw|Az`WOG(-J@;^P@o=x+q65&EHGaq; z{{yr7^V;#@{W~0S3@$BA1z>ptwdPisIa4wL^i69}33#71hNYbaYT^{3tqw@JmPm`1 z(WH?K7d?)^u4%xs`q~ilB^*#4845PAYG%M`*)wTs2#xO9!L;Ed6<)C(2b6k4&wg6k zX0UagqF(}+6IchLh*+IX2fe9};>w^StlJZH+q_F*BZ^W34bXQgN8<)iZ@PB%cj4WN z>pc~K0{{~l-5cEOaWL{K&_E=979D2qVB$tB;|AK(9hCL32Q3z)iEp z0TAX!;NMtr5hF{9IQ%mb(QRvhC|B|n7CR3;y*>npro1=WUuear=>Id*b zdWVJVZ{0oKZCw{D8RR_!XHJ& z3Xj1fk_k`6D^%FtREx^}z&w@F3JLmU$N669A${*B83k^=)Lk~aCCOY0EAA1Qd@!^U z?^-j}a$~4sIiw<>spvHtjo?w%y761<5watAYAM$Yt)v?bpC+Z?{9}IVi}^6TM8JNK zEq{%(h)>z438&4?>`x-qvM}lp0F9pE*)X;>iX3Oed8Y0ll$4~JP1QwbfvP;fMcW^E zLynD>>N0REgxBL@wM6~e($%)}X5hg^lfK$6iuU1*(5N%W$>&zo?Alc;OZ)4sY~>w! z>YZfcotC>f0YZ3qZ77UB)v$|lMg+Ulq*=i;wK+RE?NMtKXFpy7mX<@yAuL-+{i z19j@W(eb$rQ+6gEp|cl&oH%0m|6LpJ?G4(~&*)I*-u zL;ixQr9Yrh3C&obzBTs2%Lh6lTW4j?1MPY!PrDNg~1Q&w`o6q0E=djIO$_##9)8{SZVqr zMpYK!uohNC)1_6kN0X9=Z5I-0*5lZqhucq&g2GP9iH6**Qk)LxcmD{={q8x}=Mrx~ z_6SdaFBfVx2Q1XRHT3+ct@5$1@^RztX>!41dV*-syp+JIPIHIcf6;w+!MzC3+{qIw zHROQy5xUd4ecBnck{Ny+1+DK48t?Sj_~ki<;(bl;-Js+%=30%DQD)WkFsf=ATmg9a zRRJ}%hf^bTO~G77hLSBH<1(9{Z-~+(Bmk|YqbbFpSo8$=()KywVOT7dCvGa6+#%%X zwwB5EG_v7@{OfzZ;l1OVDYmhdV5qQzue46yjr~nBZ+ZQc2;al(_HrEyosIHvufwgcIX)zh4V50C|lirhThlS$6+iE9o>;xoG;Prjva@dba;g3T6FzE;?lteA~ zP~@JqZDqyCVPiAdFtC7Rzdaif&A5`&@nHa~!yWi_3o!!WtG31dT*a9+O>Id66Nq%F zKC0jSyhN!Mf7={wwTh+xC&E-5uSoT?MexDfp3b0Du2nxSnb9AVj+{QP_FR8>zry89 z^|OC z-?6YnaVn<}kU>Q-UNU0LVoY+4OoFMewQyi;>_YrEWokE|`u-ccFg?SPZx{L)12C2mmU3V^o7q;lWmyGmX`iMKq+${qH zb%7k|R2h6(k*nFlM*$hMguWANBiXS6)fKdux%@=ZrPe~~FJg{jd&?jF-NXW%lQwOu zqbkm|s)b#YZBU!_adD*HMq(}XBX$!$KeV{%ZMg@l?9SFTtKzUiorQQ?bLw;lD%!DT z=i8s?%c0c7S}d|UQ*Iip8#>&YH3+nE3BB4HC)nfwPLj-A^ORvtP~@;x^bqEEqBIyg z(-Ps9Bcrq2R2SxPf`%)b5bxVT`+Xkz6HBam>BH5PfpNPbWLg$H!%u1>AVr%9%n)sM^d zvgt~yzQ*lfg?|cq1;e}qL0t2iijg96T(-ck!H44L&j;Aku^wss62guZ-+VJg05P~4 zN{S@AnQ^x6`{^oJ0w>j@!h)yu%ie-#&Bq;rzuF)F2%dMN!-&9@uYH7!3#mJWu6_u@ zgs!KwNQfDyKPuteELe4ZxLfsreYoEY6A}Kso8}|@a9G+Y{CL_56MniF6%m0w-z@ux z{P}&{`SRx@Oau;r;pN$>DqmzFAUs}C7ZOL6AC@N&k(!}cL%PbJpbd!3S=5c`P!&M_ z1O$jP^x(u+K~i&*P}Pch-qhH6z~$)WVmV?HH&g}jv{7RDxiU8HRs{<`QDSdz6$5dr zp^`#d0VIK0lvLFrik>-$Nc2gxV%4FVZJ%D7D1Y!LlMF-3rX=WP7@Z5*-O+_eVqeeKR51he+qP&*>lrbJ8z7XC&QuP!4g)==kP{lm*eB+*Y3y z{#fJDmeWXc<$uF`&5sP;`c@#hu@|RLa!j&vAKFhg&wC7F_3wS*Aoc+)`jmsfE%-$G zv=m&gmcXpHDusj6m(_YxK^pMffU;Qx<@l^qT6{IltRAW&Lx;)?>^6E~DZb1NH+*|b z4kAzwvRvqxSw7oTa@hP%Q3%OS8dZy=%qv&y@0$3Oj#Vrr{)3WuK_SL4b`~13?!Ny$04l= zcLJ8`df?Z78Tmbp_*V%N1>D3xrQt{ki-5DD^7e;vPXgFZxJWuY4$^%a#EEC@&NM+D zWBEo$(XkGpmB^^2y2l*iDeZ_s+A{$2Z86P8-*{PLiBv0kn#F0dFAd3?>N5j(sY_g7 z-f9r(R~%eUh`D)FMVqu^yuUUCzp$X}V)*OV?db9d8i9pmMQ0w_Mv;&}X8xLa4<{zJ zACaoU2*nd_5%@W1KgLA}jeqS%BO3n6a{*qJuX^<-89wAgsYVm%)bNjSUR@PdaUWV# zdd?c!mxKdh325O}9M!}&NkurH6E#ZIbfWY$*%6z|{J3G7G&i!g^;NmCA@np_#bs`C zTCsXzn{PhvQ(7zL_k2;X4mS!S|1zkK88gu29?kc&3FwxCw>c!oo^x&i6g#CAJWl)$ z@>&oTI$@7e2+0Y%ht|#nWEiSicN0_eC4)JynuU%9)i2bn10TPpSxJyk4C2!}bwDe( zo=StxWi@8FiL2Y*ndGiPbuO(nmjF~dkw*Mk;aF2zsC{uES;Pj;ZykK$JS=i%7l3I7 zs(H1}Ld!WCJ_EGGve)_Xk|+aRg2wfBzckp91yhF?j2Bmd1VtfJ`4&6g0d{#M* z(zM5miA5eUvWDBU=@m8`87|l+uHZ4G>;|bS7Dkv2{Z|>;I2T(Bo(glNQ<5?Ap}8S< z+W!8jL2AgFs=c%9$treK119BjqHNLI8vRy{-#uizX;MTeO}>w$ljIi= zdsBo0A00%T$-u4t*>oAwe=BP*=D_Ko@qaG=@eYMs<>;vYX9X86Wl;x zyYI&9I1dsL+QO^6@8|5ei1ZQKp=SF%tOo12Of<}y}*QyUH*pT}gEiYMfia$x%nZFTZUR;t6 zf2`8IpAjj2Zby}{?+kk%2rW9r;nwdD*B__WpWYh5xn#l%BQv`p{+S}b++Dj1Tzk^* zy`=>2A@zb5*TH3LG$#fK6`9v6hKD$YXTL%F#r}x?hOhi705wLi;dKem4N*uI$l4IG z2l$KwW{ReOof@I8ZNOt?e{3>5`2hn;h#DSxkw4UDAy6Tr&>6v1tN})VuXr-C1Ss)B z4G;1+uyXoNP$|V2C|@gr_rH@P;%1W&1X7%=y;em$i!hd&U6|**&y&qW_nFdk4QG7g%!{0LKIbYQ9%*k2DUlLg%#e|sns;xD9e(qT!v>lG0=IYW z`73H(v<+s(+-u^`*q7NH1F&sS(>jl?5nWIY#ThxgDi~pHn|Xu^IWgnrISYBji2Gq1 zv_nmZ3%Qy5OvD2bz=DXaQSrIwg0gajOli!Fb|lYUOIgxL2MtLH4{-NPNC(l#A`i*P z_Jj5&WD98I2lC{{X%y!36xL`I_wp3aXq0aAl>X2tpFx=IURk_2wJ~;YfV&We{1bK) zf1-RL0h4??KW6A_jhCNXmVL}bv?``(EI5JcEl7kr3L035grX)ONd8q3txpy0R8zh( zZl4Ybm^nV5qsJufi^;ilH**`r;H=MZdR)stQh$6G?Sj?}xEFv=ryE3Lz#(Jw5cw$w z{N*8EUlCE|+o(|xEL5F?4qc%@&)3w~tpH@+ZCbLae49_8S0FywL!cL6LGtoOO~mb9 z5e@}twb7Z|?s8+$T9HEpoA$V^L2CeddrL&t15?9P6J~5Mvy+Ks&z{5Ho}J>p=-3{& z(=IO=M4!&gnE>(YgDI$O&w>Q(c9id`NN43j8^J&i!k}d#GI7L(*zYO0>+ahT%t@s0 zd5!FP8uU5}6zVw8+f46U4eU8b=6jMr%wzXN$LKw<`o1O7da@Sz^%QtvF?ih4OMnXr zwCPoFc7s~zL0{gM{87uO14>`jv_;y*JjrkM5!CJg)lf z?pG2-R&BGO+dT>2!!HA-o*nz#%=G>>hfbD<+;)dwYynC!H6!$G7>9Z6OTY5}&j*dYq@47qab-k@x$@{t=tiI_U zHG-=tSzV;{ zK*NEjWnildVl|!hkB*Zj7sk;6=2l(nL>G%OQ?m-wvT=8$iAcnDy3Y+g*5YO6SzI>a zLd=7j1#KfHi4_Ht94v(cWttlW;>s)?;}Lo})(IIb4lc}9l1vLDfpb(~L)>z;*wZp( zwAksBB65=gQ&UZjV^3L|ss}{1pz>*Vh+r~v0RdzK{?x~|d%5P+Edwx+%{rDtn47j$fHOSZw143Dyvk94K|HI=`5EFW}_`W)CEWQ!gZAw2>t zjjCX{IOcmE$SWz!6mRAw|B`}?cT(ux+!NAqUv4*zTdJ*(GUO+mM%U@BONBXYN#G*d?$V);&QREEy4FK`n$q)Gn)F zFNSA#J4C6km=xfytxDukHe3q3pQg4TqW3Vmi!xSw3l6qBnL`53gD73bQQK}SI@T%6 z?s3ySht!fPo<4#xGeei%6fD+!0XsxIjp}hmaC#1(9E{WWt+=3G+7=z0Zhm*iBP(Z~E7DR^gt3ERA zwNL?ZwXH(>wdxTE?gf|P>nO!L6%FrRF%e0X*UmF6H{_`F$}lc9C2kF^dJRKvO|yE< zuiRR$^;$mM+QIeOQT5Mds-hnjr6IVVEp*h#Ai7BlU}+6dGPmN;3!;+#y5TG}G!1(4 z1Kr<)KdB+hI;94CNoGige)$TM;SHQoe>?KY8DeTS zBdUxip^e9L;k*MG%F&nud-9lfrgL(C1Yr|(%pn>R-f|PUJoTk5w5cdZYkW=86*&ya zd%7LYhKyJs{?PB!qUALsyR&P zlMRVpZ+iKTl8PpgQ2wTZt(icUsARC_25> zO%p2_OUF+|s%#oe0z0Zg+H*z4v<32x1Y7=Cq2rsyNsa&g;8aeIINDIHLyfap>7;JE-! z!b~YWR`li%N^8{;JBa+e*#F_xW7g-;Wq_b;mqH$M)1_Vj*$Maymmo;UBcDOAkU3dg z+ucXzcY!!+y%MB71yE8yo&OY8kB8WV0!X%c`7f}oQvOyqB?0U0KBx*-1 zQOiVk4<~W;#W;gw-hjU(-^#%?cqBa-hBYVHr&#v7l^D8<*TuHGKBc<4w|$lAHtY-2 z7cZiS!sP}R+5~0KfK-UwWrs8hi+_p&p)-cyN$QYkgm#en^E|k{u`1;o=R2WQ2d>EipNr`M2lKq&}+oei3igp{@WD+H)C1ygAc##z!OoBjL#$8 z=)#+hLGL3ZH(&{>+TZk;g$sm)%sn6_r?3yPPJ&~P;IZ(>++0)(H#aE&Pl+LT0K32X zjiT%jt`;NFpuG3UMqkRrl8#fvobSh!-BGaovw;xu&at3`8xA20!L;0xL|M-{;gEls zvn+=2`D;YXi=YdN=1$lO_kFX$&+uPLhzd@lw+r9C5C-m;jr^e31tmYru%PZmHGVw* zSo7G62o!+G`&Qk25-&dxfS%*d z7xSs#>Kn6xnwau%cnB$f(3p1Bv~(Q3N~nCX%C2kxxl&J^_OyvY5)i}`FLMze9{0gU zcx*WKU^p8&3fUReiBd6NDO)l@AOU8nQL0sKI@gk5rB!Lz9rQ*p(ORe0Y^p$`HPPl{ z%ez3({{i+mh`+4@OZ+B?_fDn2aX9H=A!u zaWtFA1O*d(NOiK9DO4%cY)^HzTBtN0O#G1MVzb<6zdzre=K6KL(+`DEINi;DdoYGx zt3!{8#@|y?pc8rZsEe`YtFL(f+1+3c2wsT7vnjonEp{f(Hw#p3G@Sre|BvgV#^+2|ot2u%1;^;_u5!rp5q}<0&gD7V~LY^y!)(;9W@E zls}dU8!d}Oprs;D+Q$PNcE%D%C1v_)aJGzAYJf&D@{2cCEV~C!NTJX17YV@|0cT3g zAL-D7kUbh6FnJu8xk8}q=6fAxbg@KM>SGRB7F$%+NgDe>c&%)D%u5SO2OEL0m5>#E z>DAJ`@1d*yTh8b+R%iJzz>F752`{x@t%F9fahBNPJ0Y5!n^Iyqh3d_CuGymjF=twa z1b-fHw26lF`eGGD1+kc&3Pqjb^{@)rZ5EV$KErSH%l^U9L? zZ&LN%YZh&jdDJst>7e>IFNR(MXS9>@T3dnbi~>J%qWDh*XUZIs7Y=GjDw!|s(65wN zzQ1lE%dZ#=<#F^>b69k&W)YB&bU_z*>*TNQgDxCENac~UfbQ=_yWCFIUQnVEy8U@c z&Qsd8hIQQhtU2HTMwH(hUwAc?nmjRN*GuS-{H1Q6%8hwUYg(A?*Bm^I^4Fc0Cyj44 z?s{pN+MZDE?HhlQf&e~x_M=YpmcH=|%jtEs`0#$gv<Jt2`V)S;&5l zSSG07Mwoc}=O%}L`%eFmC3-fw#GX_8etnR~KuF@<*d2c$%_-2y4GrBUM>sHV637v^ zAZ`tfZKy{ILiuU@8dDYbmBF?mOmK+$OQT2t*H;?x_)t6+4xv!dYPv?IEiqdY#<&wZ zIW0y52?q&mG}%fq=k2uhu|?Mp zz-{qHFb5LFmOa#torn!=h>f;V`>A2Bg9E|^BZn|TM>RKltlEw#yJ-OLf8XR3mZ?&< zb3rF!O~#A|CX)~;b(PoZ}X{-)Rkx1$!zphU9F?j2FL=&T(X-@9jM(;9vfSy1iirxpfFz*hrA-b_b_$Xld2g0vbXd)jde`WT6e4|K_o z@)8$mlHy51M3)_=0?uO?sTnQQgQ%usgcx(f91i7-Nz_ut;|sWVUrWxsiWs_(WD<+g^)E{Y7r)rejCY0*m9BFlvXjVri zl$mfJ>rAC;)>q6GZhblaxJjaw(x6`9Tz{;8k*d{xmQWdMZ)Nz3RJ$81u_}<8S#RN+ zc0X%kb%gWDXUftdGRef6gnH|b0`59LY!hoWEX>VbMnsbt_>81)PAyc@bmuA(>&u-_ zt&B-O{v1zisINb@u}}NBdY0JOeslWOk5q3HE2*iU`|PFQqqobN)cnKw%rTo(|4=ch zWv>3rxjIe%)HbPg_2$gAo7CVUGO2Bs``5RrG=rOpr1n$iUmlyJhQG&?I&SKJd0nI# zKEuwEI-hTT`Me@Cdi6TF3yJ644=3FSiH(mBW_KPy8IB7lpWO4t^gPfN-53)l-t*>` zJ!tA<^@%NC5BfIBe`s6i6}e1HG8_ zfl?C5ud|8Odx~r8@qfPKZx4Dl4AMVkJe zx3&jMk|_tFRK9wZ$-@OI>-IyZd4)5@4k*!3Smk~Vr2^Wpy!|V5q(;pun9Z)7id2pU zA!5KG=S`$rUsBcmRC<0_upoA36`zHietRv_HR<`Xx-xH%%R~H_u>7YD>z_8P z|0Ek${$CxI=l|AWsV^QYmfdfK#R(79j^2_8B%yG?zrXl26htkPi1^K6TbdZ-9XZ$m zUI7W2fBLQUp~DV11vv)4D(Cc#zmVX^g7^db0?0RH!vkq|heIWZv@BT}Wq_r0sX{=; zB1vzlWR)m=B)4|%iC8{k<+z?ldHK(9Y6W8_X(^VUtyEqW@-G0 ze>}OqFDIAo|GNUqf1ccbp4|VWlRFJp`AjNZwNd{UkDbup1eWNsdeZMVd&A(UWNEak zsU@ML=q`X6`%S4}67iR(GS9#CT6qZo;Xvl=B6b)r58)jE;5Z0THMvH=UCwdK90m~^ z)5YfXWN?VtpzlHt1|{L!0-qW$8GWVc^mVuGC{c6Faa-w5h*?gCtxm;aaJu2NX97Pk zwv0(*8w9c=iEDSKO`S@K83pApt9Pk(6VvB?n>(H+CB^~>@5B%>OTfbkzTV>wf4?i4 zn8%iy0bR-&okRXey@H;WYh6n8ugCnwQ;Q474L6Tq`A=Qt|AekG=%232|9n>^;Tz)r z)4Iy?|5#T^)z41AX}L1=Uv!mu!*L91CI7Lmaw1bS0PXF+(^clme*afpDbFqd5Mc>_meJEOug~ z>5BiVtK5l;M@8L@SJ$-IP0%(i-c8hVIowS$3S!(#{*w4tU1jlJs&&KRUYgwi<9@o+ zyv6=^x4q*14A0xc{Y+nErh_a90m*W9?R)9i9Mbm!vAIpeOow^#;|wM*x=PtS?`6;t zUSVobNoFC%6x~sA(U!y!2y5Wmi}V*4hHq6;7qqZmhQFzM9M^JobZk=khp9}r8_Vh> zsI;Mlp;V9Y(E^+m^k%bq_J2fINt#~K9;;E=_Fr_BgKHo0+HFuzlDpxwpmtsWmh|&p znKiV(>nbaGY(S)D|FgPEFrm%$lr(+$^|UGh1V6wA%5x|Yq&oVHo{&AguLi>}fr znB{iyOOnm)PxHd^+a>G9)7xdcL6*A}rv;n4Rk!`}yEV@{*y-K6FAD3+$4O{=zX_$U zxZeurJ-gqImSX+A6R&0adp8;O!=f&Qu>IS9RxsE-PK@^E&Sioc+GWm!8NFy~y?XxD?xmuyKJp!AjH&{sAfSCk(%5gasItHs=Y;7k_+k+#iQe-5BoY0YHpwz+ZKh=MV<@Y&5N* z9)gzhK=$x#3^VCok{4a&?h+6yIKTJpe?wO(a1o*$p40Ci_*ShNF@VqsmEePF|C+T* zs1bf7La(%B+;tV7A!L|%)STd5O^g%lIICp<5dW$pM%<|_SM;(-YBsMr$~Ru82A5hY z{n{=<>rfj=I6NdNa2XRFo<~D3Gc2on8Jj$oN2dg?YB{%$%fiTKkQ%O43d)PKdY^Bg z9wH)04oS#cN$mS1Gpf5(BOZz`&H8nC)ZpPVsSBfkJy>S!6UkNbkbD70((st6z*Wj* zcmY?T%nwW5tJKA@0-naWhUI0 zt}^b&3We{6VH4gDSDA2_MWQIOll~;vSpbD1u~Yc&K&+x{tcW5oz3fz|?sX2)k0MFl zk*P@c>s%mav9y%zbZqK%-gkd2<^a^G5Fl=TltnSvfFvcMXO_~Ztys}VLmHx2$=143 ztQ;&mn?rI_B&|@Qnlv(7AaGOsrG`R+hsjvwq9ZbxaHA*Rw#Uaw}DHlDO8Rn@V5IG9whZ#U7H|DyTx)C&JOi z0fF1<=m_iVd#0b=$_+KiKgvvbM}LmH-_~YfmYYk-ElsB;im6{)7~s_`&DGr2iNK>+ zo5>}O!dUwoWbMn_-KOhtYAG9Q2JbnV*qH4opU81f59$I9O^ zEwErYsMYI7I4v-&M^v~C%B@|d-nAVlRJt#WuHClWwVy{+dhW}uKP=sK-2bTbz8hWt z^KjP*hgIdfnYIM3&#Tu(4E>6dPQ1-=-<^*eWt-Mw#I?83jlG5zw2HrmVTRZ;Zc(8w zda`M)kgN?XKQpee!X=C!$#`btx zn_;P>4btfW9Q%%QDb%i5y5Fz#u!Sr8CNO_;g5fZ6#nAgEdst9&@NA+bS`nur$+MF>hZGxXl75_+3XLT( zTh`&fP%YHQb#QEjEE`BSI3k~A)P2;h;F509zdidt+X}oAZtRFE+Dd5BW`uRfN8Bl# z`;$Ix0F;_~2*=M~OSS^{ywzp;+B<_jJFXJEo@$>nCk&kBqY@y;!$;am-?TME8#_^j9kLMR%W$WUg;%!aZ^NG1q>(avbE#>p}i>}fG3@7@c ztNif8e&SJN&-SikTmP5czQ_9UAJ?v5ZzXPlWg2<>shqFkW9h|Tvw@5)4@hX{AB;iR8;*E4=M^7fGQ zineVj87hA7l)7m%`+&~?_j^-`yo;(q8rKCDMa+=-yC+HLVge%wtIG?q4A%aM9UB*Z zY2EwLv;xA-bb%>E-Mls~pg!d15jD~;Gh5u50cIALf&;-blwlWG@0icluJ$FdXv40dd=+QHXDFd}mo={lrjSNMY=cH}FDWW0x}i zDnv{OKNy_A{%ZsMt&W;4%YiS37&jm%QB?agop`xa^B=26o{IVmr_XtBn-h&fNR0ab ze86!#ALv1N^9DK_5$gw1A*Lv!ytf@uMc>Cz4>0Zu+r%DJO;4-!WejFwBp&Kg*`XVzV8uQ8U8!Qki6j?_P)qS3`TqR zzs?vW0sj?ai2Z-g7#^Ynrl;m(190Du#N?8KED!SHH6OC$6HQBslVgz=EEF#V=kINt1OrCS) z;q*C0L!YC(S8FKXrEbfR9%THe{jw0~rMuB|&;5zUvXFU)y0QL4#-Jio73l9y`FFtk{a6+3M+Ck<6mhWM}H6aq5gRWCvnFedQq10>p*tHaWdX9-kH`ZEt+hm$c; zlT>C8aA%l?+lJ>3Mkf&QDbj?PS>%%44GjuETtxX|wnR@F2HT)#UwnZjdJb56RN`Vna%#f7%mf= z#`0NR|4%Rm>(^o@$uOlkvZ{a27zjrug9NU#vH#8(oCKddDCH51>7F_4EM-(&G2B7E=!H3(bCro1l*K_G@Xqx^tS zgkwp-;g;r%@6?#-_#0dr z1l6BKuo2d~E#7XKwH7D*(%L|$-xOQu?0aRa4p+8raXQb0;%#dCdS(I9HL$A(hg}`0 zw}JNYzK3YMDu{P%6U*bi7l>62m6G4WO}p=7P^=Es8rvdhz3*p_tPVGm-zNF*G6ptv za`NFym5wP^rntTlaBmH$ZVa1sv~LvuRjp`WI5tO8-xvz$N_;jQher?*HfHKw8EIv44C0wfx_m-C-X?PMR<`Rf{N+T)w&F_n*lP--HiL7Do6hpU@ zVqe)|64;&kd!%mBGlwN&LJP1kL#BiRb3&u`VXi8&zRXPFShsh!ZK3KbV(rk!kE8ab z4%ta9W+(Wb%7OEF?0^+`W$$XFM7##Dbav?`oA zq&==2C^oh%{IK2G)Lpn*y~$aM7&Dvk051y9mSCX&@_;!k-&SaLL=UU`DPE;6Kke~NG>`uq#&DfO`g|ZgxFC}F!WgI#;r_xHKCfPvz_t%nCj{oo|3tmj z`%J#z20{eHI+ypR9_z#07YBu-Ym}Z(^zH-}`xRXp#Xrn@9l*hhib7u&p3bZ)TUU*r zL#?E#-uAM?bEbP^x2`|WMPU2#PDb8z2RQ8PRwJXZMk9j3xkm}E9-nAe;$0yA7*s}Z z>_lI&2N8^pVZJXrM_mv8FO>xdTrc}{bqKt6&aFRTyRpnV{=cjVk&CXo4fbXnXR|$C zm6Lnbc9NXRRsLD7jPg2_^0IsN>aSMGHgRnyc_)!1H9*HTu~R8rkoQq@pcURzLB zlV4h$TU?o$U;4LJUP@;EOC>KoE#{?|_p-6|w@RLQ#hhTdd}4aeOFHjwl|1G2#OTEI z$oSNkN?vGmA~Z5SC_FYWEaq>CJe9cb9Fd^LAmG2Y@+PeWeSE%oLLxo=f?vvb9=<^@ z>AW*VsW~aJMlk>1LV4eO!~QXp=j;{i;u+xV?(5_c z=Dp+PY;BIN>W^U(hVe4dS<7)L;`HPL)7fS~*Zx23ulg}3RFQGgE zi?7C}Hio8lFReTS6WhP-7;u>weKa=z*H)gEzM00yFB-Z=YPz4*bUwWl^VGBrRJDy& zwDfs(wEnf2r>w3m|My~^w4#=rf})hdUy6Ae;-vp|G*3)g`K6mDDxtt6C&4Q&@vqT5 zK~X6I(Z5vkSVTa10=$VlT>kIb<+ym1scCsXNWA3oxCKBjxjZgTp7(qrf6L{uaPa>_ zE02?jmY$rG{jZ@s_Loo|6&(xk@1Z<$YNo%2@)*b{87L^o|1p$DM*1(Iyq8MeODpf+ zOdf&2|GkyGKvc4(e53A{JSH7RcXW2oKUVVoK6d0^LX)Za``FQeiqg1J_wSWFE0UFO z)!7s2e;qqInbhP+b4pq@a}`$=C^~k86aTG}r@As+pEFUZ`vPJ<*%Wc_k zvF%^Rj#^X;t$3YBH#PF&J zQ6W?rkS+B{u9SEd)MbX^wl;*kq*x%_EvE)7cJW@wWyZ(+c z%IIY$_qG6{^wUoBhHI##xxUZ5May2}8J2RPMBb0JRh%y<&61W44(;{e{+HTw^HMBT zv_|pk`KgXS66(0LLN{x^!?WDqX7sRE7I2t4RJ1cYowuNV$StX^M>5pcWW96V+aHvv z3#roj_2I7p_oHlxwHfmF55;o~YgCrNm(HV-`tp1V?ycf2osPTSu6*z>*qt%bVrQ2Jw;e^gAjh8vtSem@q4+ViqoZ~vgR zi}qZnw;oWs|9S5f?v2>dP-GG&{)^#CSvS@lxS!)Wbw#vqVnn*`LdJRek~mRM z`r|ix9~mI$lmd)muA{+kT%Y@dL*`ucn7VktMb~YX*y1E+?Q$O;e^LLo&Ul(T)4CgW z5U}y8KTPw#D0w2J^Z#i(%9$h_h|B!59seq`dTr}-S3Ledl)Q*JW;fa-KH(4Oe<*qX zZ9B3*Gw6}JdYEWGRK(fT-y?VDFo}RF=I%4-Rm?q1_A)8vo$2pYZaqv1OfKfzGU!vE zKTN$nR4nknOM?I1c2pS{FuQZ~-?rmFNsxP#QEu{oNrIvcL7JDSoc}*bFyaOP2oIb* zh2nrBLG-Rg!?|msFXN$bZF?TMXOA+y_pO9x{v;{gm`n4sb$g5eJ(KT4_IP*dfDP~l z=XGm9ZuD+Ql2@a6|c8xQ}jzIy&mAwU|-6l+6=* zvw~pj3R?~--F%~|{K)zWfMeJGxzTjF$K?uaiu9E-o)pjq5%U!T;v<8s>pZT}BMZ`T zD=VbSZe2*w%8qSyqD`|Vx!hFgg{{)sY@ec1xnsl&hpEKj+JLEANpBgW2NiSUzrNPz zH|%+c|DGckWYtxRf*L+i{j zIqf`4uO6uItq6<9asmh4=j?=ru%6mI$`VnyaTY*tZ@g2j@l|Bc>&21InLZ3hP?F)x z^{QIsK3&^a5my{pznNvx+Es2=B>ptqI@j0u`V5ogqY2cOdeiq2$HuxeI!1O86M_KP zsYcUxG^)rM-_q%I=|-K#vh0hnO6RI`rC)t_6n=BPk2sajnQ2=ydAia1I94v@ypx03 zy`OKD_k-d-epvpScxT!XTVEA>^x($10wmNakij4*#gE$+a781|2&~ZiW4?EOpYm}B z4HLcB)kP+-p?PP|&-?pwPp@34%hx&o;WSrm(x>ul>R6t0&>5RW&(uauz1?Y!1D zfPssAAQBPkQ1mhf1mnbm@q5K(#v~Frqh`XiNolE!=|@{N|7K|4&0g%yYCjd(FHDfR zHA7f%m`-xQEpxs#1)6))fP%@@4CA(s*Q;(7IOTuIt=1j2hyA!5D5sY%J+P(Be8-Y> zn&$V#am!Xz{Z6vnaoH`Y23N~FY^Bb_><@k{nf8@UBi;yG==7p z;-$**cgE|kVS1=tTnG5%C<7f!qAr*ri+I%nX0iZK_>)!b!!3i>gqDjX`w&Zg+RlT+h%d_g z3IPOxAIX58E9;OIW`m=%{@$ep=6l@zPsLRGB9T#%Xpo7iz6nAB#s&Zq6f}K5sVBrF z2aE2*K_OHy!V;xM05R5p{|&>_0xdrm!1w|IVX8<_+?_MCQGyca_XQ?H_4ErRQGDA` z5QS*5+tDsPbOI!RpF$_t6Qg;Nu^(LH{qk2UMc_|Vq+ne zvG;CXLqwsJRscpE?DGnV;WimAVS?z7g&ZRP$tA%9H^nU5xnrTy!hbX;HWi)wnqL*v zj_K#=SZ+1ncP>)u={uh)6d$7%&k;pOuY3M7O(dTE6Fn4mBf9l%tsnSQ6hHPRCXYnbW+VUM5D=Oco|##tt~BEYZ0-))6M zI+EyFBDy6|ovM-xo{=1uOg8vP&LFySss~1kq_uhj=(%^O;zYAx1PbmUI#QO(Q;<<9 zr(2eW9ITTPEL$075K9IC!$7~9dXR(Ooit;cML-TfXGl>HB3Qu!^#KQiVeCJISX!e& zRR@gWIDj#he2SoeCG8JH&5zxrn0Y7=Ni^Lf3d0;F4g+LaFg?Wq9Y<+GYUv%(#z#59 zT*P!?9)2GQG_xd%Bi8ntgym(LgssY>SX;#PU!sic6vzm`6h^z!nM|&< zB=CCHSGsJK=-Uyad}w0QLs(WP9%VCn|2NLm?urvB?5sB_yOWso_$E($6U%E=G#-HA zsY&lWlhGhp_VY)1>B+nu$s_hGqY^2CX{l<&lzF{Wnu^CtIl9t26;YU5li(j|$5Mu5 zVVI(T#}KdsblXofa|3~-jHD2lanuK3BHeck`Zor2uGE!F3}l5fl|Vz6v+~|aqK1Fw z{nE9Z9mpGzM32*2jHe{giZx)!N3a|rUm9onY0kRsr#DwnKIAZ8K@v5H%wPD)+>!9` zcAxv-frkooE>@$UgJ&LZ2hv-@o^)cMf*3SIEW|n?_=mLyWb7iuvatLxha)XXdJW;A zoy}QTh*3uitFwsbqIu^FnbV3mUKNoqv4jtpU#AG}j>2yjV5gzQ|K{KBQjEXiVQJ#X zP#`>{#+$o>C2cM#_h)!^STbS^GJ8Mb%%Kp3to~*UIT#eyg}!4wLGMG-c^8lLLBq+T zDDW6lMIfCEp02XSI0ug?z`;EZkaN$={63W}Ohy#q;BKQxx?k85I>gRprp`drT>Tjv ze0ejio2l{A9fliBgcXJmJ=o$Qa|ov76lSIzYpq^t|8E2rUI4lpSU@8%>RW)2RPfgm z=5uJ13u@??(HKDjg3ivSnjUzSXdG4mf>J<%R8s>I*w+GtqCj?P{1>|K32}oKY?!<- zC>RywN3vb%H?LMhxBq(4A%)@s$kR{+`)I+JnU~uit;;JaUP_@yKY=C&;Y~(RX)2Tf z02!mpuVub?m3vo345fbAANS1aVoxe0h-@(GhTfKvYao37Rn?@9?i)z&v;e7D*gVO# zW}IOHsB{*Ykd*JtjK-DB4wu=bozHRvh`o3fjx!aIMxP_)>wN<&tkiBN7%S4G(R3f& zE}bwJs#la&pbaf9%b!Q9NTV+pSDYlGIUH*<)mQmMPU$-Dy1Ies?UH_YAo`}DL?WNIM2O-p#-T=Z*?#>kYUAw zK}pT@)-BV0FXRpZrB5nz;OJPGL_l%KWdagTLZ~_b)-{avB!KTX!vmu`jIlO}Bv^I_ zJ&Kb4VK!wcqq39QA%N->&VwkgIICGe47UA07f?}qRPbTvAcaYhPevCF7-LYiXpk?? zl~&LJUVVF?0{|CxN-uOa+t}gb(eVU;*|HazX4lb5FdFJU+h*UF5Y*i5mP+Y~ZRpVu z198L}OA>lJM|(~8u7>Q{k@P6Wa3E9$b%z%29=S)4TtR+B|NE=Fmx>xl=Sy`Dx1}8P z!NRF*mIG-T10W6RlVs}Zx&D@CcC;G8B{XnOjDfWPrc^q}q8D40$59gM#HNJ|4*FHXd<{tFwU zUky|2GP%=+KQ7$nNNesSjU@Cn%T}=L^J#*GnpubpR1(uX328?v`;LcIjG{aa7_0HH z9u3nS%CLxo*cE_j0ZQ*ZirT|55b?0s^!L9P-n)sQUaqkiSA-ArJ!*V`ZaH5nKrE%c zKojvYJkaJ@*CI7`mJU2@igw`NB8vPSjdTkvC<)~K`da=m4o($AmE+-#ut>z}8->_O zh(hj+Xyo_-bEN^t&lk^KvFL$VwrL3Acrp{WS~dYV9d#{OWX>E4wfNXJZz zE|f8F)E?Kw5i~uZgnlvL($e7I8QV)QG~fQs;f0K&OV11>KF^_n@k|YP?$H#jW~yZp z%8FrFq0%7%fUe0jJq2CG_`yQY5g<6uiJ?0DnHwTLw6uR{YNY@;;3f$@D!YhG8$gUr zO+cpy)Gtrb{OMj#PFeIUUdUVkuR0tA&f7EtTO?!G17Pc~Lq~)0CF+vix24sx`2zqz z0*K`mdh`L6hM)H;b!g+Dx>cJ0PJuT7pfLg+P&2Kde61n{?R$l<^%0sYRZ)t{>MDL+k&M?t8i=)1q`24n@gM`2eYUr8{ zn2Vn+G`lh1KY*{ST)n-55QH(SGQpEb^!I#CFKC8g562!#q9(+dM4q6<+Fv)nW08w`^KNJxJQtYk(k=RoM}U#3p<)(z(^y$0mPMB@*x<&(PQ$ihi4 zTF+#&=-W9mUBLl!*8wa}-P2B%C@h1v?`1@sF}WfPV-F1IB=yh&8Tm;d!vch*tf%K^ zz_Z3UkOZjuf+0bWvzS-LJIeY55PTLKxtLP5vkU3?)B@Y>0f1pDoRb6}2Y@R_fymVz z6As1}O#nOwZq|j?rmj3>aZ2y8c9IjoQH^gZWSip$({g=O|UqJFGcQojw z1ydCcq;%zw>*=AABzjgBo%?3z_T44U2Zy}!D3J#>)#C@>cZAE?TIXWB1L~#@X_N^D)VtTWqO`vN{d`pkFu{T2FeoqFu$S`jzS(VW ziUfxc(&+)3@mQ2!XoL;)-I*58yISNW$f{I@_7`MvrmvyZAR;Kn*KzRfS4e+?sn>h+ z;eTH*nng>_`R035xg(aV`z3kE2((bC>k`YuyPLuzXPGTGSywj?LJ<)F<2yrSchD9@ zVd7ce&wP1Q0c|VjEXpR3=>qJn;bQWa-H0TCl(};Z-ZVsBYnREkr; zCc|P@UW!B3s-^TmP!`A+5YTnQ7u8S@b|CyCR(#n#Su<#ixD0|Jg@IUOe`3D!2E&?q z!GsG_L}k}zmGjfqE-=nf^xoeKL#{zdLm4LYn1`>Lx8blYRL@{YxiCNSF zfKoRIb-N--H`W>}ZD&9IRNcHn_mSZ&ODR|!)ZA#qy^={oY~_jW<>JZ|JmtCxHU$E} z=W|(kt*@?`5v?S;Bg&&dNfDhCd&ICUk@oRkHY}0X5VNbG~8(bS+DoqLsoV)FD`thv!qE}ZU1))EhLJ!2#>m2A_`$j`q`tH3G> zA&f~J-<~?(YoG(waCQ~}w~H#1uKH>zu2@R0+b}sWzDU_|XwSKvez`H#euXcpJDy}o zw7(GVbc+_nWp5bTN`x^!QvG~3&Eofc8|xbttd2t98Y^y=K+?n%;YY&doGWBYk1AWH zJEN}2TeYxjXSp2%uF=8LMfHjC4*P4#Y(_sZSx;W?W3oBe%heNn0)DQOGg|Dq4NV*a zSlq@}%N|Onvur<-QO*}jN~L*%MAk)Dg&-ME9X$4robbQT)Ia#mniX9VKNGkbmKOU>U!sndEhrU@8cPLMs%mJ-m@?sFT^v zb)B!h>L1IBVJlGOgNwdB(N`WNLs1SGdzuascK0JYAivolBU?@_~3P}zd z)5W*9&aWV=Rh_zvIAMyt%dqQb%^lf)PKr@PpcrIlK@U_}wXb7V;Y^sHD?Qf<`xO)w zy>c4{MK@C#!Z!p3{5p&1Z?|nAH@KjLF0~UJDVf9|6zy1e;{cOvY39jH&+9J9T%<&7 zTlGT_OQl`Z-sO#1sTC3C+_GX&+7uzi`(FBviD^czHKmMPh2Z#85Q?aK&GIW%jEAq# zn0P=N&!#2|YHJ25+lxZ+er)}bOhw8G|86pTcRg@B+A#U`DO7+#Fx$5ZJ}sGOx`>jmdP99$Rt*evA%qNDLo1>_r$Lynyu3OmMG3>j$#4Qg)?Pl=c|K+QRylZx z4+%9{bh*Ji>a(lG5xeaW3Cw^2VcO^&GBrLnwk&?uqOOur+yKP*Bo1HZu(%tkBc9Cn zS?9FF`YHGu#u$xoD>Zi7b+yyk_`Aa!(z%dP|4mSw&xBs%BOrPkYZk5%9mz#?p_Mhh z;vFO-Pz4~F6FZ@ly*5jm$xx{`DD{~Rlr#0DR~;TqiPdlu=9=rjq)!V@&unwUei$z>6);r$ zHTqa2`&*wyZ*b&o8CPj8<##Ud8#z519*Ws>L!JU(A9nC1$nbSyF3U;he$=QIV8~V| z^`Ax=E_{@JKllC~Jfr}2!AqNKe)PV6ND)W7m%hsU*n_x`f8`|JMt1Y#*}WlUO6}fe zx8^6F!bAT(1|O^J`N?Pcp%s_geQcZNr>f&ZU%FrLy*e{L-P9Xe7259W9MdAy4*y

    &sz3(SP(Ccd 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

      {jsj=I~d!4q@6&+n#M^Ylc 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%0D3q5Q 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

      c^Qa0y{Qh zKJ14S7oPxxPYS{#!Nw=S!65|V5(9AvuyIMSafq;CzX20q;SyqjiLk)1UkNZ_e*_U= zf(QUmxG`@Mxtg5rKx8CpgZ`S_zu;%9rT)Lg&tNUa`l6AHzvkzOe7S_*_*t5vvFu0i z`n`UtTgBTI@jZC`m7hN}JFE|8Db88WxBb1~6;?l0`jwwse+pjz)BNnYL;PFtYP$jj zsCK@-IotUIKTq|o|3&cn5Aw55;Nu^zx}SqrWLFbd@Y*u2d-xoA38^7-V>dqo5U2-k1>VG> zdRd)kV!3>~rzwlt{MW%f595&Vq*_TTYwcQRruMk{cZM!|Wv@^p@fzv*OxdjC?1W33 zMf~sL;y#rL0i!p$lk5~YzZY9Gs3f9|;6`o&cThr;@^s}2^t{@~}oRX=4t z?Waw#IUQguuF&jY{s;J(q4K+{4wItkHRP~Co>ld+$xLQUOW<*Wi`1&{jBK@}tUkey;LZ?(}jI zlnijwdLjD;hhpKx@!qm_4Vz%s#4)RSO!|d1L=1G<60T@>%zl4V<8+mT&O39Pr?6dW zYH{OAe3D0%XYKhwM%-7#HR$+yjAIN43c4|bdkQZ;9;QmWA!&Gn|36nhl|uH2Vf<#D z_ak`44`J3((#Nguf6wlD@`IoI{$B73R-}N{Ph}AYs$+0*D1QlF!xbp02?l=UX9oEJ zg!V9IN>E>Epv&(qH-%ZBMPeX}Zlc+6F|I z;v(3M^C@Ke1%+HyXp?~x%geOzstYZe+*bt!?7nr-vHbI?jAx)^ffI07QcL-x=EXtr zmBg{b_tL%&Tn00gLgis_3 zVfppR;y4X;q4Qi5yX+)w<-4*-5RpW$#CgnPX0#dNO z<1EuDY;2WG;u$;3%@E(h=|m1Xk(;ZBuxD_j%+SC@K*bG|5(%+Bb6aU!=)=vZ`)Gak z)$q3H-OZRE);aDN>yDU6E3MH>Kms<|Ly0@OQPtX0{klvr7f;Vb@F=e|YX=ASl|5rB zxqAA_sacqK!!(kALy_*to=*Gi%pdEgRu{K(Z?KwbLY4pN`l;tSZ`<5U0!E&mk4pYm zvXRvG@zWVm)6cGak1Fl^Puo}Euv^}ss2m57d|3skw!9@6Jq{6m-Ji>@)I*^XAFimv zma5#qI#7oD$#8S!UcGw;Q#5C+qWVTAG?Cq2rbDbVxo1P!UvR)&l`nsn#);4?6`h%a@7P2$_RY4nvf~E8q+HHI_XJKt?UnaTp$L*zH@Rc#b`Ay8PRfal_G)G4*Ud!uzj) zI9RP${dP-C>=ua&dN2WXV31qAxa9Y_mIdCLdw;o-J5HhbcI7Eg>9Ycxh7|xJ2>|D0 z9ZzL_3(S#7#eq~n{}oRE6*YhEL_b1_0JdCjYBlr?HFTXEkE~g}Kgl;A>!;0oE`0`uVV zKFIG$W*-*BGyGSj_x}q){J%-&e_y=)e~V;_;JUo;WNUID{s0_iDL@X4WZ*FszBF@E z#p9q+SRn!(O}Zlh9A-;9oYW|6liOei@HUiO4CFoFCdM(1Z)|4`!hAL4^ zliNxOjG<+$gU2O91&F$+(-!Yd#)??u-Xab-mreOndq84WHRPF|{%>GLU%@&f+Hc z_dmK2gGbu>###@bXzD-J&@)okHB!?tP|-3}(R!?^rLUs-P)YNVqMDw9njW*3jGT&& zjFPsjl7_URmXy4@q@1dhtO7(vSzJa{T1s40N>KzN3#)z$i^~d$$qI@}QOgN3i;3`y zNbw0v+!uoI3PN}UM5%>%lKFUF@^X7~a9A<3D6zA1@jcL_r57Qm;@}l#;}K-xD*>o7h=Ml*h88KHZ0R0+&rkA~+GoXwgLaI$Ye*}~jBWaEk`RiJuD?@rk; zKHzZ&MYgMDWeR+UzSxWDopXB3RIGdDn#Jld|5N+hS8)MJdV9p2wALw-zlbPN5rQ(< zKq)cA#t>^tj;aUd1M!`&ies8gX9XZ)xf?MPd75j6ek&~b1bc)iq3}aQCCp>Nw38b* zH%`JOwd9+X0Y+Tl6)1Az2a*fFy(<{sv#~dA6}Bcngp&WqE#+J7F1TP99`Wi z))XwHMOTTPBxICne7~fO|Fym#unc9us<`;a4eV$qK~bg*UvF_Wo`1?XZ#;FufK$6a z?V)&1&Rad1W?aRJCPc?az$Wyx;@I{sPf1(I%G)_m`$l>s@bx(I_eTif8CuA|v2fXA zm`g6M4vT4MS;E`cRqZXxM0zZx zTw*~j_N-q?aTx7@2H7S!sL|xcmw-ei2v&&giJi;5Ca8EKCv}H z=zUoGo18fOovBkc&)bve?>DgaTWAgaYeC){^QgizG9|c9F=3et{`gX~*zA)eFAoyw z;%68nQRQixBH}toxd)^?<6T2-0PKh+Xn|@BG{vLq5R{?lzyAI{;17TlP1%ofvBQktc}7zkHGX;o5%@W(Fpe`s?EeAp?VEgot$Tu{GP@3w+RCQq?(kgFXV|)ouFebw>VLEUyA>O z8`!KovMYk|D23Wr&snBOmAN%yzSS4B2`w|fo+yf)m@L3M+|V@j1f?r*Q!@saF2Uc( z3g0-!3Vhv_o)pB5ecM~YBvB?Q?pc*Ity%2tWlCF3RAS?)My-MQM4D3oH-p|vPhd!bmLSn{IlPC+d!XB~Ish1Gjr}3!oi94j}1^~6` zH-qS9u)J`4BM@2p*CZv6^y8Cnwe8>H7D@4vfP6r~spk*F*qJ7$1Ktc$wE9I;hOs4mtuU(n~?#saxz8{9@+3St-0Oq;~`gTS1&3BM0L)8ZPm1WEtTrPG= zg<9YaT2R|uWtGb5?sODmQ#(b>$y>_4Qg4UQ!fPIYAVPq<7DcmW{|)wETw`*#FjTPOcj7w+6U%xRwh@r zAZ{(ztu$vrd;+itxVD?V+hd1(hZbZ8f?Lz zO;O5Vwn*Y)#Xa;gUByl-?*WWNVKkQu+<04CM-0SGB4;qy%ah9xJ67`X+<7ZyC3E7`5QWwh^(CE%dc@yv$-k- zoA@QL6fZ)6WVDJLfN`?C-ICCa-L*td$v2(gy1vvQx&a|b6Fac_)rLe>Ctw(J=V371 zoZF2ZAZlO4;)=DP(c+|08~L?H+;+h}@6DBl#;|(`ZZ?&jZ`dbCjD&v0jo#2cxh><< z>tLJgQ}nbKYOFDR?Q<-jF&4b`P~$gk?~s^zR?=$3z+NT8%Os84T1V1OcOUP#KlpkA zNNuWsf~#Msb$#T9G zR|_`I_s!2@-Pe&;P?^p=-p=IA;v?|ScSPTp*YHJdB%{$a!}@s7hk?Pdjz$f}K0#_8w4o_iFW@VEyc(%o%L z7dIBl6E4(QWusX?oHZ|u6E53XtCM1|K?(4Q1#{*cP}c%zNeDXG1U+-dwVyX3oN%%Z z113*|aBzhHW*%wJhWcEGcJksm0>Xmy!b04`!cxN`TEe2{!=jowVT5Tf*H>*F~@@+(Ai3}v(uHVF# z6ye3S6j;q7z?~m7JWEjvz-idQe7}SFN-xq-%Uah(Z@0-4IDrxshf!yOUg*ax*zJ0# zt*!Z7Klc7j7D3FhIfqa>yI*?ej3r}6;Mon28bZ$in+T6 z)&gPxkjNpqm?wz%5hkFUFd&X3u*(AUP8tV#9Rr5M5mLpXoWu}X#y;BcB&>~{oCUtv z27&}}a28@tEaFK^Wo-OI!S~`hihwECV3M>rgz)(LP)HnpYrO8X?^SVZ)_cNXzsIY_ z4rptJw4m4x_Xt$S_+7c^td<0{?!?mmgjdtC>ahEA6QCxQyRrZfdlwVtW5ym}c_K(D zCkIAqjo@!h#>tJizYA2b1ld_8xwg`4c%*o?ro324@wrLyBT5YrObvRN8sd=}mX;dP zni{o`>cW%!h$$2WAq{>)BZZK5mKU#6B8?S^Co!s{zlIf!h5NZ!H>EFog}AY(%4>CFxJh6-Majf&()5YQh_^#94JDFKpC! z>c~Fg5nv#g&Q6$x2%(+x&&UC>Oz)=WCh0grXDIP`vfg?S5t(zL8fRmyKi6TM(3{mxAmVzn+>>vzDQ7Zbei3yx`If73A;e7Dx`Vu650Lm4=&{ zZ1o%&gp39fFXWhQ$o-50nlS^Bw*ejR>(Z0~Ux)b+rvrOr2>_rxR^li`|D@tRTnYuy zS4-gO4l81rWdAHsECSe!0#eciOSUn|>I0?QfDj?D(|A4xDoB+WXDt=4`hFo1B%diR zAA>4~LS4UI-F7ZH544t%F0J*ZfKZk}?hB+C*SJ`>mVjEO$WsXD zONGLdmj1|tY~CE`y_gnc1=O|*U55JQXt?Kr9ZRly14=A`Oc7Y)bfvy%dhzudvRKd((AZs)3O)Y4F6`@re47i;>I{zM12&+~&YBm9ZCnDY^8(@D>sXD!6;g_jd{ z7oyi@)a`(*@n0fRRZ!LXsab&&1uJpl^sMt7dUt`~M>roNKvw*~FXrwb3YYlrQvMn)}QRv3*Ku0@PPQOfwM#)d>S+v z3(x~EebN&xc||SxjGCOqLQF^*cC8uwoee4^$7MUCt0WW;LiXeX5Yb(c9aPVxF4v?D zjP}H_ZpT3`0lEwUUu`?_FzS=VHADG>YA2fWf`BbG&H8aHx*rHr;+}QJH(aBDNN`$Z zSwIr`4JdI+D&BWt$2uFU-yXJ)Jf(6Vt zp&{VJ{xuR<O;ohVQHFhI$POlUhF`qWB_QdwLVosxUN zxYh2!PN)}fa)!#_Q$P15o{27PeiKfou4<8D3vTzju#npi(YWoks z@0Tdvkv^tn3{AHI52aC$Rqy~&GHH$5-@5Y=3XfoQ=b*>sa-EFWSU(-*Zq|Z~qVEM@ z#N`$t=NbVX$YK9iYq>p^&Aw>pgDTM z)@fcd6vzzD0Z*tn`y4yG@MHu*X6EB459SpQj0omP9s2?cnVpf0U1@~tbr?V^g~Oow6nii5 zIxxYyq@EySzfi@o=Q?KHA3Y|%jM+S>3=>|+k+s7xTe1c(rOSSlhP2Nf;#iRtM?giu z5||4U-k{{>kGgSlk8rDq{g(r17T1t)6h6+&qE@z-gV)%=SCzme(iPRj4@he(PXoKC z9lKh{K*Lwym8%zX%{XvX3c|*{taTr1)aOC>g0u}5bu#Dqzq}(dUNdb{7wHF%Z>}Yj z0db>yXm^Heb?F#K*RWy#g3TTr$5k+7ElC6DNAhWy*l6T7E4<^G*6Z~>nI0yUN<)GT zp(D&K5fdqP7szt`rw4(|?CbJt1C3xDON&jqq)l`Kzs>hfLHsaTE+>WKh~=;jqVXnX z_X-Xqb7go*yJa~A5!8sXU9BGa)M5+Ocez za8mSe+VF7J=WsszaIy1nY58#Z+oAB8*fBAVs8r`_XFOPHZ@cs8VDtf|R4^t)WHuk? z^YRh;3BeU_eBrL#W;YD?T_1~NH|5<$l#j?aK_s-QXG z8N1dQD^!hIOjPLPOhoKl>dCo`@44KobA_&RrIm9P=(!rjg$Bm~GuF7~XT^`+7gF?V z=H@sq1s6sXmr`6&3~M&S@fRkqg!lP24nvMv>U0J_(T(G-1XT80+NqU8AjXw2U z_o08k*-Wgy`~oWI^O@D318ie>9f4Ewa9*i!_?k4>XHWX(V3XqNLOITUA=?AQt+J`k zdgFy-Oz0X^_yp)#K}?ZH-RqURPUxMPGfyq{ zm!QB)3yqPUF(HGPc{Z>$%lqytor{4nks~(HOpN9f2dAkjy&04v>Ld1hIpZ&|abMKh z>jfyWwW_x5*v7s+s9_Js;fefnF&(tmi&)D*M+zO_(PD`AH>dS$xHaWf@c<-Da;Y6Q zmA8Q{i0Ryf5o=Nrcx>FxJD8uOqsii25Q#K4KW{-?wd( zx*v0j)1EFUA&^j}>-yYuj#c?F8ZTCPX#AYLww zBsF&{BMTEG$~m0RnvlheO{X8{zu%~+eA1Ww_|El+C6~;Uu8$-$V6Bg)LV4nWN92lX zoBhqgs=>NqhmiJ7Cgr!(tu`nMr}#Y-+8S{LY+O!WL;}+q2nt0IrvxfPL5&1DM-QhY zCjUl_B(@kLmlQ~rwpI#9Rf_x1mB+{fInS-_Q$>WI3_}h2O-ffb8=ECeX=jOO)kxsn7ES zf*YjT6`2Q}3zcyW%cko2l%uArrS9)*1}d@1Yul?G_Rq)*S5$Qd7=To;21{j@*zLB{|R zzdd-9Me$uR*pXUqLXp! zR(ZdwD7ve>Xa?3+i?Ka9x!ig<`<9$(I7CRW++Q5u!YKZog5a|dLo*A-Sh}Vg%5)J; zCf+p3+lL0AQe3%>*ww-?J^!Qoa?$!}mqmj9(Cc=2t5|ZZmg=}kB`eA(?Y#Peims+M zO6all&VHbtOnZKg{3jvm$ib~J+n_I6UU@AHd0sj79B3IiuaR!s3*MscW#o3?=s$1_ zuoJa7zTaW&lGn`EW?%uBss~j0KcE2Y#swAv3`K+i~8}9BO8>;6T>)gy}ZSQ~`?lEGC*unM+O<#m+N|E6) zrA2)86|=DUc{SE0u}g83(kbix!Ss zFG&F+78Pg&KvogdC*LG6a#DdGgdwR)h(OUg3j&`Hy-MtNNs^&r<=;-nyxQ1&88dI~ zjxaITT10TaP&tH&Axg2*$%OG8l3gfUdBV9wUFLwcQkd=98W2fC%09@ezHvfqF*n#A62jqcpYUbK!Dp%qf0$d8^lCU$Qwo%9tc*}kb0Vk zxT(xZ6#q%7AdxE96jgarJ|J_FG2a=L6_gySX~#u%(hguhvtR=sO{R1qnsEjTDw*I< zrOxHzu*9?~nek1fjRl$U778j`=|HE_=X%We8e5g^T&FTt5X}YN3#vFJPi1aPnG4Od zs<<{yWzom2yS~XK)5j>t#z`v{cRf+@xqL4E5q?~xwtmcW_W3J(!4fgNw({g6PG@^Z}h4SDy=I3AWm z#);=!@GlG3dE_6XI_U;wRy~K>aVb6-A)ctdhH3D;cil7|g5T>P#-1Re8zV&mhnxx; z?w{;ia<%Kb{Xh2Z`YVqA!Sg*qyK#4ScMneEp5X58E-|2K8VT+Yf=h6BZ=4V;NP=5% z_XK+R%*@{J?2hcroV#c4?w#NI59m{M>Q(Q0KKkoOV|SDtfJv`Ccy0Li>$0_90|=Vf zQ}cj{M=I|^w7w_lm!sObd8cBSD7*qEAmu0T<#OPP@95D^lR{Z5e~#=#4Y9nW}yd;;`sqZ!V-~Wu@_Cz zGmNOy5>;fe4+r82X6n>9YLBD+C}tJW5rR8q9!M)%G)sz6U`0%v)J|+g9#uMy%glXD z&(5rD=cz0Ow!HJ&WIG@8R39s#*0la_$+t8~5!8k7E$Sr#7 z#7a>a-Q3!UnT8B{XFC>`AKq@~c6N}rnY6W5stG9gyYvM{E=Xd|1Snx!p|$t)zG*%+ zoYoE=oR9?RU6rGWBP?y09NR0lt9&G`-b_)W5kxlrWQ@%{m<-t@2E9*O)hIFIX2R@J z)l8(y#eOtw=}l1yRA~TxDI8&HMpE%P$Z?2eeVxIN=|rbixq-!W8ceG!1xRN5NUAn| zCX+euE3#v`Qsia3WEOSl7yQRHd6Ar1Vb`y@E7aCCr10lYML=!j+a!8ppwZX`tCH!X zm9GJ~aQw^29q#WF-*1dQBXK&r*hr4`e`42I?*nAv!rpjqhnd#7*hJ;}=h}UF{`mN$ z)yuM9;+4EfpvC6#8pOhPi?+<6dn?nVEJ1y);9aD>P88SX-2Ea1noga$|6 z8EiAL=_3J9cF6n{Mk~yCu+=JC|4zDg1&ir`;!c*`&i|Ju_!y^6O{tdhwjgu+B#dHY zL2UCn;cO+ugL-tWi})^l-H257}ig> z$gAJN+0zw1VK|4#_o(z5P7%%fn|@$QtQ92;9+Gn_zKD|FCK7C(MDvr-tA~F5ykfG~ zMGtg_)>n9`kYrM?y~gOu5Hweh#6LJ3aXeo-a+?qTe1frkFW}V)%K5G~WwJ7ssMB-v z<03KsE^`2-&qs4_?N?c3(IaY~NP?$?&KW}zw8#7cBT+@>S2S?>r_k!Su*G;AU9wDA zVDAP)6pfGMq-ys70rhvj7_dw9-f#3hSs(!?5O0DCrY%b-2qY;25P@*X7@2y*oeu`+Jas@CcO;X3;);>KygMboek)COk zDIu2bQPHmhg-Zc6U)~ODN5uv;#Vk*Lrer~;@LsMtNsnI1Y@{d!bZi?q6OfUYs7tO@8aPvGBvp=P9oZ)s ziCI^IP{xLXpfwGA(IZ&!z(Q!0V38?aQ6etNM^_k(bvRVJggtgR?GP!Jt|*yMrJA+g z>}M1GVZR#)pj8P~5C`aRs$_3NKl;{zz6cQULwCu6`K~~e^62sDMMK=d2*d_a)WVlQ*d$%G`X!ixnn!I>pS@iJh_)LxnDGS(5Tr(`0}@R z*~|yNqzPV&&YqYzT_3I>#YdVKrV~XB(90qyO#|!@QHz0d6kID5`zM2{gD>NCESR-7 zOuGTR4%0{(4XYJXi5VqS(Tbr}JRX@mYy?Un708Bb?-(lZ6l#1{Z-~m!7Wtheih(tp zt*vOIBw3+SU_$WQq+pCd@Q1qKJ%gaU&$NlrRH~@kIEid94wWhfxwvLkR(KFJUkMgatccLW1>KVFXKGtsuOfm%jOWzTS;F6;tzphd7%5E*2YdiEXDV3ydlkN zR1##dR8q0H1a$t(vQ&Aog8R8Zd_F2FKqiKihaiBl;&tfraq45}XAJQsq>)mN_L=i? ze2$DaI^P28#O*ZnvUjP^nN9ko=9hpea3mPCmN~-7ntdL*|qfh zBYeEDKkrH_lq(+m;dQiUuN$~mysFm>MT$=^YEuBv41&HO2b9SgCCDg1)|Hk70p}Po zsDo0t_1IZVz)uQP7eAHgRC?^ArfERX?ZBR5lb*<*(u5!DBlLdY7ve{B$)cD=y*Sc} zQ2+5kueWZzAZu?i{;On8!|Zc!7h`)iS^+3bG%(<)YZ|x|C#nH4oQsBI8^cI0ogWzj{m0TO-eb|Na$kw& za~J^DJAfRJe9|HbBKb;%Pj;N+Kt?Z9Au!A95xvI_xb)FX+SaTW07DJs0_6bUhg)VI zxcwu3a`#6Pep~1&$a;x^--P=sGI~Mu1Fsou09lm)?M{_O$*Au-OSznRSXs1sjIR?A z)OKv}4096Fgz#(xp?11!{JQ$rq)>X}shf}A;u`@EpMZb3v}`Na>|(PVIRTEois6fc z8+K976JoBE05{}jcSfLRBaT<2p&ur2`67cfNs0Uc11bS{1J3YOP|i^RV0QzuHS}rh z0Qjq&)!G|PQNYXO#zijk(%y;IfhR>&d|jKs;bZ|j?<#Jd*U(7X54gKQgOoep{DI>OO|5Rw>z5ZQfQJ+E$<6*4W+FyxG=5-O(oA(P7?sCA{-maYt8wN6&so-+#vdvSXOG zV^p$Z+`MBlv|~EIW460vezRkNx@$?iYsGAj5Q;MYGDgwZEWIouRCG5>)c%Bh*9d|` z&K>1;25~5fa?IUzF9EvF?`E#sd$>>f$N-!ap{lrmXCdk}0;Uft(6brf2f?}ZbO`_8 z5Kih4I`S)g?^mehuP}gPc&kI0qkSByqxXDc_(`R`|1Y~URJboQz)$}dgVbJJt$k>o zgHshCND3M=?-(j-ZkBoO^1}~ zgXneV8b#9#1gD&*#)>rOc9;`nYM0>z;HSCQL+YHa=#&g_NLY<-P}~hoIBe1shDhO7 zL1u#DT#7XJV`z_3*AL&L9DTY$g|0?vVH_sx?w8HG6k=+KjJ4}z7-2SA*(=HM9Na6( zK^=qAf^l$shC`B0WB{akA4T!mGZYuXKjIP1>Xj&Zo)CC`xb6i}_GUcwgxsOf#bc1i zV?5q?LF6tC6Lk&IXeswY2o`vpt&<*$V@mwKPlczUT4enlAI8`^rN zb_=J}ZXptIKUy3U-5wu{HQz8tBwe&?6$8KUDL?bbMmroo zMYx{};Kqpt>RjsSk$!#$@!!|Dbc6ePoC+J0T(NjeUYmO?Bh3o%)IVWgpu~GA{XR82 zJY(hIU-l8S;0=HB=MNTvTI@x@(f(YlTtc3xQOyxN={dr~NTl`^0xdXv-35`{$L|zq zTHeR|OVR{|x6Fdq0wKdUsRn@_A3VcYf>MS9KL!Yzvm&ujKoTu{qgw)%)$Tt=nnxq} zWEtF>pWcO)c_!ody}J$i^egCdy!manPnt!b`dX0t)&1MgfnQENgx7EB<%0{fpz%E( zmKeY5ZkzK18VMcl9&R4qy}$OR@m)rGh>?aqqy<+G3wQn+%5wzyv@&}DpdOhz(;pl?$+N5h?zSqGfK_u*^gWeP~gNJ@rvxyFLrG6Q0zhsBvx{QSP zlIhJ7z8EyPA3q2kE!I1POFdlJ?oO)-{eIA6KH4tVBk{))H#Jlhup-mE8Di%9-a11d z^~aPX|15T?#wL=Rz{)9f#LC=_yV>gU7v}!S(AS&uuOpvWN>q!UX z)bUX|~K$uzU&`GNPD8 zN_74&v!o5GluUT?Z-u#>WRMhaRhE&9Oi$O?Uu7wdmyC!yi!Vt`heBzr+$K{lQ52jz{bJj$zSrB}ZV5FmzoQ_=UZVMblb%$GH|QzkROAu#5b# za+*r8xKe>U!qr0UUYM(PN%28nqvJ-wS!1O?dL?}#ljEo$T&&Htt=PX}C&|an300-> z9Y(sx#S=1Z^DlAT%G}Hsoz>yX4{8i5-RB(cHNb4t{OZo6kPWvWVbh_aGwaTc8jO$; zy;kDi#wGB8+%KK{<6Iq>Ny=RrR*KFBD5(^VoG49SWCXhoG|2eum<7Hv;19jxaV&<- zq%fkaWQfc|=V>*$W-6CvKSvcc$O;ZNrq0R_J6&>^+@&6 zs1Re?khzcQdajcm#xxa-Dt0%L^hA~TPNVoMMAN&%mu21>N1c2r;itVwas-QJ>%71% zqI-h6d}G^IK>*h5NVoB0+Zz*%Re=L>w^iZe;@L;sEuO>fm#1C7pF&ES5Tzx~_4^ie ziW$)@BrY?secoJ7t4T{izmxs`Np`)k=UplCpfA7M zL4&k3{PFtdd+De9!=C4#zv0pdNUXgt@M}MyO3)$_l=Y(U*M?%hp+#n3?E}854I}QP zMHMLP!}6{Tr~X3=kZ0}3OR5DkOVFXeF6$?%uZ`g5v=GD$!wknQr0ru>#>C(sh)AHP z7a|4JHA!e1}V^^C#IK_Sv007bWo^C^Cin>9BggLQhV zsFBN2j9g^rSR<)lf${|^t@zjx7mPQF=Zo3!r0XJ$Q!6d+#j$c zqA(!iXRIT-XOjyf*M%51GQ8#-!s;VUNEV)ygmU0`>xC;D zDBOZ{glj6Yj=Wo10r%CiFq4U}b$!}{rYaF=_Sc(Wn{JF3Y+f`M=8tl))ZcDod^$Q> z)%XJ4O)2|w$eam5?*!^G=1H2yey2cz$5h&q zgvD1c|73#4$YYd^a$Y7|#)&IwO-84UU8LaYic25gMrSPrO(9F#4fo6pgbBLoc^O;Y zB;nEdMl{Hy^be9v)<&lJ9dR@nk4wc|(EFG}?S$mib$as|0*BZrrnC2y(#r<1gZSiZ zJMqXx8W~I?lp#FUaWWk@^xBd~;%`L`prS31_s4uumS3~<478pPU0o}cVc?lDAd?6j zodh>Txwy`g&_yHrgWgHv*@+aj49u?xVtPAa@@w>sn-1BtbxdAOqZxTI3 zVD+Dx0c|+=&ge?8gk9__h0ZcOH4)_5+Kon;=8i-yY1RQhdTsnta$)J*uUP`# zXDf*dU##DXD)CF4y_ee_N6Qp#Wx_ZJckZMmaEJC-5L_4_2Gf)FjEp+Sdq5UnGF+Sp zcMls}KvEuP1tLW!3j=mzk4!(vs|&vTdglXiz1>9virX>q`+@|vw~{LDqSD^s8c6)4 z3!KZBP2f(j&Oo9<2!PIad0mTF*zbIMV=ve>?X8wciBkR65rbA-0{pET{^4m&+ zlzJlBitxyCmrlUP1?|)05})_y)ZgZ>C>bl(n`DGH*kY96Bp1Nl9idd^t>{(|6#EHHtlt%#H7F*2-z_t_!HrzMpHw1f zswilRC=5fU1|jWIqT1)7y3?Zh=b^o`L|%El6-obF zQo;kxf~9pt$hX~yHKhb2MZji)TQn!rE2!8EonJ2Qu~m>+lB{h~sMid=b<$6b0-2&T z4!l`9O=M2D0+4S3i!2obY7UZ|HP7R#Tqlb4%$cYRGy6J9!LOS?cIZk(3oy*`>WpCf zvS1OnXl`L}l^Bfo;+rL(?z|VJ0`awd)`quRCb-*boiytHxDXHO$#CGr*;?8I0$fl2PohFqgjnpr8A8JRpI3!N0`+s9vllSNNP_6nVu7S4rDl4MJt()I?I zY|ocipO$!mS#QPXUkihsvhtNUvncJ6i``0!f}&-}k!9)a6k*FsXW8;HG@#fYq#8^L z6U==dOG*hDE(sa-xsbWvl(~48DM9zn682m&$`m}e% zDdZEL4~QehTmMuKH62y}wMW3SFZDp}d@C;Qpd@=r#j8D=L~BMl80-BSQ@x>E`(hN# zRKXk>jP9i1Tb>&V5{@f}R6{(gl})&FBD&SHyj3lt_mv8uu+VaON{2BrryjOKkygF; z{##M8%cfSKOn+oZFeuD?&bjj$T1Q6E#8K0fSINl68EP8!f@B@QYb<@nVI7_HxgOTpPPyO65S;tyc zNO`rY0oHq1k;kk^B&JsMedSGlNbWx7+poA~bRf%FdKyuR(q2}WI@0Wpx9hY)6TQn7 zwMW9tQW@>SL;U){4Zd_xY}N7Vz;~DWV9C6B=}^A1LguW3T#B6-n+AkH(@OXGf~@k( z(`406z6>rWoBn6TJXTlNHL75m`nZjxYP$RD*?SFGzI|m)^V;vw>_0{}!`xq75nPw) zz^PIxJ|~*vUm#<-fB|6`A~~&cXSws7tL*ZgO|`NGv5TJuc+&jKG&R=@bJa|40-#xY zmYZu%@ff3g9bKnt&YWxBzG~i`Yr(&2;T_i^q-rsaYbmX2DVOUPuAk3}W;fUJ zP}MTORoi6M%BmZ_D(C76*V;|h+7s70YV|rc_r^Q$dm`>lW^R~Q>85b?mVR=BWc9Wt z_l|z`jydH_xST&7~C2m1516CeO8g&9ynt zjeX6HJI}3u&Fwp$J4nr49M64P&3!JyE$JIT3WY2KO z=VysQ)BN^k52R*a%H{u*I|sT;$bnICj(vnd7!)7?1+t_&vqv?msWAvs8f;?^!lD6T z`_y7&!Dq46O1$+!P53PG+U(_rLIQh9juhutCBsdAPMl2 zzvFNPdzD(&%4XCll<~>sojyWMwqRq=uzjD4X z;-zbdC;IJ0Fv-{A3~CJ~!&iebq$`Isr6YKZy?6y9P~umzi5UV;FPs;t24OH1N>~@Ut}V z^9TrtGzdrw2r4xQY6+}G=MO~Zzrl7re>=+*Lnk7TNKpJmzB8Y>Wdr|oTGsNiEI3@; z1HOuE)!)1ufrqLyCp2qp#N+@&&c>3wZAl1cgYx z@e!|Ct{ljEGbmUxYP5Uu8^c7{Kg%p$kp&;ffwRINKgoHQIIlw`8_+lAe58=H@==c; zdVSRmaAZ_rRrY>Styg0JKlQFyjYR<|nwWG6&3w>x3D=wk(zNaiKiRe>Q1zOLJhFnK zwOO{ZpK%k)#>KefS+w$5m);qQ5{_j!*dk^nh8xsUUc|=7rsE+c zD(PC{sWtjLfzd;5D(KMc0d{5mE14A5iPvsSMdW5iddyFhNh?{So}m&I3JUh9!ar z*?oh>mb^{=xU~G@GGyL?>%25y1=&IbR74k4ZzTAJ`rgN8#bpXP&NFb15Ug4XjvV*@ znByBR{>8afKfie&q|Iua%cl%3JE`SU*b4#%u%6HHeO3eI5tJY@3CGL9;@_3L|KaqC z0hEaCq)%Ty9#*L+G1J7>o>a}*q(YG(E}k*G(m@1bS3;hY0ll8^&yH=)ZgEiRZ5zN6 z@eg5>v%OUSi23P*b3(wD2VObd>ek7gC0D^wf7-{E>-q-yY0!koaz&41LAi3`pAnru zCza?oV1CpJY!I zsg#)GMN&n*cuM$6>AN8L?T~^Xzitzkg|}wYR-kSgi8AwhXI7AF$IW5h10-a?#ROJU z?aeks&|r=1p%qBv*6H0+ATqTwa-7@{j5LxAV0($oO}@nV61mF+)}#btvI$nKd=p24 zGwIObGVx~nv83r{a*_wk`m&Pa+qFFDJDd%U|04jTrqCZ|oD~)8a z7S7tw`;#f}%?&|cbD>R^r>%#2T>kD&pBi2?t8Hni9Rqmxj)l~&L-($S)USZ7AbN}nDA@$@RX4|}AJhP#hK+)U742L8G^`qhnJGZb{teLDQZd2a6% z2VSx$bx!mCs!{5K2afmhf;3&~Qb~GjpzF$@=h{O0#-ZoNL;5zL=k~qyU1ZN)y!3r~ z&;953cP~FKAjLnVk7Rj{{m$0<(*U@fkXBxV8Lao*oi@1YD(Kd}kjXd~PFRo$M~x&S z^iQyokHn}FaP$`jFuRX=-b*WaqqFoLxnr2m6W9(A!EAiqBTf86@Pg z7^&yrEaXJ&X42w8@!-wg^5sV;kbxieJhEBzynlg4EOE#7y~nQB+4it%cd%Ndhrdw` z-)kw9l}w8H$gO^0GFvuMSUH_-zbu)6dG1i7$#J2^YB){uB{N_6P^T3IX=S{KSTXs5 zJ?lZ9RZ>PrecCkv~KqV6c1Um~H%;l4zX4nC`o0d#6I zJl2kBN+etjM0J1c+^+>?p-X5F?8tHMN#=6ee$mKZpohlH*;x}yJN`x4yBjO%{1I~0->@QiH@@b=?uq3G> zO|{JaN=`a7qN~B!lVrN*;1Un!R z>&l;PP&X0?Z&cyn!kf+i^Ex(vi1tyS;s)Q?k<|Q5;%ZJ2O`}q8-qLPQO}h{Fr9@b6 z&Ye`FXJS^7_fZ{FTXwwj`J;C`KUQ(N@~ZhCE)`va#n$9A#dMpP(e+&V7MpfVFDbGn zyW^Wd{`pSw`0=KqT2(sX23QjPoM~<(Va}WGK9oW%sv$JTkGaCwcHs(Ph_tHTv}_ zXmw)5)SsWONz`UK0O+{=WXcM zR`J-^+~sTUXWf4v#14W?q#*77vxbvlJ9Y=bdPBc;<#pzR2SW4aiH5?zb$7U?-Pp4( zUI)jSUW~HEs}g5|sg;*Eioy)fj%OsxPB?)9vF&OL&EzHfGWPN(-3{)JS2YG$9r<;A z*t}j-9`RA2a|xDK*HEj^kM6>9gm6gr+V1BffT z_lDxX#?R#kB591wtiK2lOkrV;3E_33BrUf=RT$(9u!&9SYRn+zwy*o}*?XjTJFx59 zc{!$b3PU~jb)9+Rm-rq0d|EiLoD9x|m0$-*BeVg_N@ly4q$@ z*cwFw0dw7yz@L362vt5u~I3`dWThB9ot^JkP(qh@^%gM^-jdJAykUUqB3}^TX8? zBn@WwDsczImY#v*L|905y{9BgKI7cQPFHp~uAq?hDz!SLn9FZpEuJaiIjC47)U>bR zmG%15NlK~Y^}bdpIb1g%JGD$f=s+hiOShOiwOqsR;B`K^Ub$xK7rmwfy}B&DD)-b1 zv+DzcK63rKxYSBJp+loObnNh>f)ZycfXQ2A1CJ5EY8OeU>3+0+*GX#4_c0E2xT=)# zRcdX7kgFpiMRp%Pb6vfWt3361!pIDLePq*-UB%9r-dLZAx;503G>kFB)Sb47Y4o8p zlw#v-NJLoz;D}{yJPUyl<)nr?q|Yp->k6}VGDUgFUo4KUGS>7C9(g5le5W^dqWytr z%-fkL24Nkg-3wIV?|fnA;fUDG6!mHs^b?oK%AjMJDaxmTVkO)Z*a4b8HVb-bxJ7Q; zjp}tMyB(5v2M;dn{xis9`}mTeeK&yZo{9HEa<(N(%bW>qqJ^?2T{2}7*aXw5R+b(! z>o#n=hGJF4OQn9}X}*ar%8k?P+&Bqu95#UAe;)ImQ8hfTpSBfCh0UT~eo{4^QF=Bi z?)xD=ISy<{#mOtm!P_FT@~%hG${QMvY|1u}F{Za06N|>b&BUiLE|$rq-mZ?%MMB1= zWDhX?OlkTU25WI*uCtZ*wiXqbAM+u*Z{^L zyg;!!bD~yx_>t~s$v0Hl0yk=|jnJdoNTxR5VEF zhjmAR82r1Be^iBon?d$A$#-`B%cO-^M=PA4%vq8E4pEHA-jTa$(cCC@oc=K;CX<0G z|7fqDImsLNJEN7%P1S4YCn6PDi#x)%ZEN(7ePt9Y$Nsk+8&n=a-?CS)n{T_$KY6@8 z&0c%Fx$SvD?HP)bvyLKi*N2zu8NrjYffaB!Ku7HrrIoWu)N(h-m+SS>BWH{1_HI~~ z+B-2mXPZgnepDydJGCZfhb!QI+=|*K^IOiYP|N*SuUwx`r#ZhQZ|}c_Qv2rPeA-hG zd6-Vj^)2T4w678HFq=>9SFZKxK(FQDd)?~Ad)H5gX6ZnLUTXh3hfhaFrw>c;bHBQp zt|Lu&s{hZf^P4LFE)$F7kbnoExX)iWz6rf5-u2(`E2S8tEPdYo#g z)(raBR_LGxowB4fHzOU{s+ds&3fw#ylQi3xFFCppM*s<)tNBaFj!E{d^N+Xnvb{Drq1P`_2O_!nPGKip>)S zFX)G>(!+l|Kgem7;d=7o1AZbM zu@?)r7c+TX;dXgOC9E2DZy#zXUD`aE@gn1<-={hn_AME4k zM8=G1vhu{;yy-J*Yw`*&3X2nR4<3r}1d74Lolc!6OF4>RuY5$rzafP5h;fL_|J6PW zcmw|TRowq8p!R=TK+!FOdrSCpKuzNB+lLscrpkO912G8ns*Hwp42n<+EdQdr z>HMJt29-4A4@JnbXhF+vd`o!f=9tvN z-yWQ8a_er65Xz3-)E{aI=mQ^bUZ=f?+Dy&u48s3aieTHGBogGK`$1dCIX}mit4%8^ z990dG;iK!_dNDpKJ~Xi5VQcgw8wvKKBwy=bDolag!-QXKcxOWTA2$>w|LYPED+>w# zuS>xH?;DEs|A9*YEE|aKT13#MjsL-x6SvHA$dd^lQMzcjkwxYEQ}V5R3Goho09Jiz#5)@>c;Ym{iRUB8EnS+sc+M-oDNIb;0t;-xCL9%1Z9=qvyOR?jC?G5#8UL5Z@}GAn zcX0LoKQx7!Dl8Zyz#q)R?ZD2i!p-x4Uka7zA?hDI(|^Td8Ou@mUwJIq7g7ID3ia7z zS*Wob_-8$qmg<#`|7{*i2SGfC#bjsO<*%tK=6KDn|L&Pe?#z9e?TCTX;5`0TzoeK> ze)de?>RzAxkDe**pC<%VQIkOHN0z@l(~R6OOyRwCM`Wpgw`b~4n6HAW|9wm4<>vL4 zmNcr{>AP^*+CN16YFhR;achnZJ9M-E8Rv4+RvHy^(tgx@c+zn;#K9xK)2)Bn8C3rF zp6O}Nzv!{#riSpmBIziqk&$&bH6D6WK(1G1xZLF%WX15S2U}PFNgk&OUgp>4-7@hW zqg|EQoG|^qoIingkC`+j`gbYRzdRN{ypL&v^bAD;@j4v4g0nh)vCp0zV%V zO`-nHGnH7j!1+7RwC2xq3ib5Q<&+Z7ifsLUo}0yZcn8PXEhH$!`ETmp#aYh9qhD-B>$|(qEgh0 zWDE;mMaWkmBu&QVj&Pt*-zZgPO-!my;OEiJ$1Elq2uHvb70P)|p^gktr)h%aRMBza zYg_-G6zULv*7-m2Oj~6w2)9X)>k6sx5HZ8nb!bD17-EC_5+pb4;!%M`v`*j=31;NP zXj9v$o5f*ia&Ow`SVm?MwowAQqy!`VgwNfq&4O$pmJeMm5qw+eC0Mm#xroU(|mlnvKJuAa8p)*M@) zUIU+QmLkw~S2jARG|@L%LuA5Oa3Lzw2NLy9JkwG5w|5VhpHG0y|EmPw*z2qxbLq5Lct0eia21cdb>TSVdGOOt}{j7h%fl&LyK zZV-`#&~8%J z%A>o^I7q>I5OvOEm4jE0nHM{l+@N5V=l4~@K5b>1^~*h% zZKt$SDyZ+wi>?2Z-8KzXza2x>7hpm8w1s+UG>wTTknHfVN1$aewJ&+*yHBZ)NwVFp zlgp#B7P8NT(>|HitmkV&X$$EU9ip69{z$;TY8~y<(E#x+u=$j5l+->fkA0Kt^!U04 zzheQw*5qI6>WGX%L60C++rWb5@>(mnd+qCWU4`2*|NA-GCG(LQ3jCAk+8??z&1?lR zE4XeX+u!B=1M0Ra+@6{ZS4~R*-Q(jJZ{&-*vQ1BYx5jNE?tV_L>Xuk4?7om% z3%X+c#uxY4y84Z!;VPd-GWuKGemrIH)sFw!TQlj9>=X0r5Us$2_#pQ_n%rx=(d$Ys zt~Xl*7DhSDo|?t*^WBmTk~3`E0WwOJ!|}&EcdZim?f2E+#yqPT8{eO9Uurxls!4nk z*6>Q&&`gwMCmq@^t*fJYe^;B`))@k`1O$Ze+~WGDyhpk7pWc0=lxC%I>-Brc&@|n& zeA-l5DYTR?l(aRJaxs+pE|iuuj9xU1v5Z-JfGE^Xo-$vEX)!E9h=jF>C>ll4nCTVU zURWbuxDj8t=;B|VX=8u5%pK7)X{t!dp%D0wJX6w$SE3QR$^p!w7Ry zd~qm|8C2TnPFC(JVi^x&zz5OQg*Yw>c#uYV1NgKyAwGeTVZ~&w(8xE7f2B}AkV3;m z|FslqR9awEMn+UtYgEo+RPJ3=9%*!eXmpWbbV*=zSw{4i*67N`=<2)ZTGE($(U?ZV znC8G3v)AFW+p4-&k*#+zy`-@ot&#V#u}D_2&;(*;FZ+QN9bk@ zu2pz+emu@b{M3f7H<8}?2)_Q{yP_5f1Sc)TySKLy@zy)W4uiJ1MhT?T`dW4xUP6)+ zcd_XBcGr4|y|$Xg1+iKiiNsOjtWl&KnMvIDfAdTWzb6U*<(Xy@V6^=Up6QYzqmntt zc?uU@sxX?=O}Rs)hHM`RO>0 zZpsT8?JaI5_JJF>K87UL0%$K+c5D-t-sBm)-*Uw3M6>^BVBe(Vh$mC*+o3P zBmHcGd@z1|{<;4SSHy?v!Hc&2-5<2iL1}?_W1n%v3jkROEk5~xeNP&?41;|)e-@u* zC%jcQKkhLfh6l@-+mz9^_gv!n<-kG#@w~11q9v7={%lUDXhrSwpY~Mp0_Q`XbI)?@ z*%`lb#co0@9s)YZ9Kd8nJ!}Q*jcEsDw!cc=9PO73i{%^bN=y$IeNcHHQ5uK;5C;MJ z+8E>AL|Wb5=A*!)Gx~|mo)+v8%G^5?KQKGH0s_muT0X2Vd@$52>=wxdJ&4__5EN$- z(eG26IXM%NYY{J|grPql7piD9u4oRfXw9l>)%uSxIB)f~arLv8yO&jc(4MmM zqZ;m6eL!AwbWpvGUUQyReW_Y=8jVYthl1)=bND6YLA)9`T?0q2-D^(?@_d2h`NB)4 zT3H(rNfwD`9c$CGMwJ&AkX`#{CfPe*fEt5<4ugbb3xH$^T=oQ_cmlS_>j+HhkgRG^ z>go{kQkYtKk+z+YXs7D&IdBQpaQW461uIf85m2|u(a?GucrY5D#2YBo8WmqwE5EE( znQB<2MdE$_BBY{DD?8cu6{285!^__|`n@lZ@DPm-v1kxb&|+#Q!;;Hq5}9OK;$#rg zd$F>$5x~6Fx$9WDw0}udP8>)~xLBHp&E|)=UY;)ywO@GD;%v3!sIDVm)gl|J;r4kV z0uT_$IB?~kPky@8AY|8EvA5rPx#+?7px;8j+(0{|2^Jc{1pW?cEy-|w)2-p4e zpFieojU@l~F-L>}#Z2I@F=s>nbK6^++qT(;=P~D-n8f5M;nzcuR(IF$+q1vM9GZfM zhiBKuVdPy89F8FV-Qoi>vE#ZX5_Q@7-;FupxQhSgF~>$9*sX8lEizeFsCMg@Qm7%R zcva{qf1%45CXdp_@J_X4&L){i7MPqOrPG#}$|yOCoA%PnC?Op$v~4@%8P{djw+`59YhRmIJFk4e=HaYUP4q^wgAq7X^0fd@ zA?Hps9+ie8lzyh!qalf$^p9)OT$|ynPPX}NYM_@2*T~+__vfTY^7Y=Dv{^PhPW$S}|R=OqTT5cA&AnbNs-8O}G)K!(F&zYpt2N8}yQ+ zA^B4_ENHJN-8^H#@nx?60a?5zUtY<}?ck%ob8Yw~{2RxdbdRU!F{kF~ z;i%>G>G#<%5B$&7f(QJsF$ezi=l1mZABdTUfTrAwNPhMKpq}?Hj5#7Beb~Wg;k3`L z4Tew$Ue+0yRXrcwV5Fb8{VakvHXqYLd4T-K8ANpA@5h{nvq%}t0$g~cGK`*_55go- z;F**`xWeXTPGz%6;I{)~Gd_8m0%2#LO%dEwT z65*E7ukOK@+3T34qQfea-dUG9d+Md)3!{_%?U$btC^Wg0`bUGj2XpEASpIn5!*Sm+ z7rCdfXY2i05`5c#nK#L}XH6KbJSMKUsoKhc@n5*^$ql&!ZtqiL3ToSqYUfL)Q7mCk zf!XTdC^?-f|IyBUsxK>FW?5ky_}#`T^Z}31l~$?wo?iBi%3G~y>|qp_o5V0G!S6XdoKdgn^FZt1dT`+kgn3CH)$#Yn#11j^PJi5 zKIeVjb7sz*ulbP4OlD=}TG#!*e>zKc)a_4S2)&446y`dTJnaRNUf}q3mMN@H^Urz9 zy?W2f^^;_sPk#tKI1Y2zRCcIPS~IL9K~XdNK;Sp8 z|7)pdvfd85f%Aqze_E>4bv+0gos(61tu_CO>lV`MKUJOBH>GM&on6t1^r_<(s{O5} zyW^-$akEXyr-_Ww!wLR*b}T8#wTO+$L;HMwcC@YS<%qYK)vM1-YW+>`*mis=74+Bn zg4;jT?+3j)|9X)0vTH;4`-9Kt3#X$myMK**4?jQupW?a~%Rq8Fo?q`U&iZ17>0^7J z?C4=q*u^&lZAZVl-cefq#i{^7zhlsR^eF4q#hQ3>$MApPx>3Jl{(%P99 zgrhsK*-)bGoQV0GT*~o>L(^PgEcfrdG8N1=x-xhwnEig;%uP}viL=pEg9uq2<*PCp zG0MA#5Hg+~sL++S$}g1e$Cg|BHV+Sd?UmFojW67UJVDFY`9Im-bhuj4LrPDC2*!^6 z*&w|eY@7dxaiA8-AHE?EM~Ks6Tb4+PI|NB4k4YS8AHKLsZckLD40Mn^F`c<@L?-edNkjBX^%dcN z6Es(M4!><5tZaQ>-rQf>*jrrRU0B=sy1M=4+t&Q@#@y2S?Bd$&!s^V|Z_{7D{a*+h z&#Iq4Ew3$nR$Wk9mHV_jr>HEnhv3(}c)P=Zf8e(7i*3!O0LACJ*@e$C^Gh=Fiqmq6 z44!7l6so0U6(nWk#iwS+rDTCg8PN%8QSqsfvB?o&QbbJRlc@MdQ7O72b+t`UbiBhPry+ z`$uQ&b^lV(yzB0N$!FTTcwfSq?gp%CVR4smriojaum{TSuDi`$FB=DUJx6zIdlySP z7Yp0FX0|S-)^~5&nEkKVnQBIMye0}7dgdCsCjZH28ms)1&s0-G|AWs|)%zdqOl}Q@ zf3q_$=f1LK{{d%)iHW)hA~6yYlCnzwy)YJ+zIDlGir$bHk^HBiDJm@>a)VDuLWq@> zRZ@aSP@MaJPtfH4e-KU9Ys`$7cILk#n%o?47IymU9RCLeP2>MU(EOL$__qNtkS_55 z5;W;}oATrWx4-00@O*r#{NDvl#s!_hmg-MQN>8=^Gifl}%=?)l(;q^Jm<6`&Cruu< zdpyi|vD+(K%|xxpo08EZ>qEzE3^i|1?xb9swOgO6{vl{Gm&`}m-F^gji{o6+iy%2W%DFk^6V*(@r_Gzd zW!vzWD!Mh1;qGkH1ExM2yPGZtChy{t?G`#;{rbN2E}r1}+p1&+yP=w|Yg)+n3`48zmW(mT_%lF+i+;1Iq)PaF>B&JS>a5+@;o&pTkINIswAA~ zu*442&0}sL0pSFTB3Yf8N+KY+r7KaKww1*(#D&gFiE`^z-;$Jb-GF#v35#cXEZv*= zaWvljDR-EvXQ(82Wt{G+Y5WaIi6`j=;pr+zn`_zj(Sj~&m&c~Q-r;9<(#qW_yjP*@ z)h(Tt<{PeIruya@ePt23ZY&2ntfHe>%a^$&=jmO(n$6M#NeUkCY95(>hihD&;{jn> zT7oF8fJt|Br8xIf9+tfU+p=mMEt~Aoaw0ZVUIQU-@Yzu+t{PR6giI+<{AX=!#;a3O zjc6`-+-zrQp3e!>9&;hRkEF0EG%YJ@B;t(EQ5|11t9TrHYiL*X9Veu|ScF1K#5L1- zbr-c<%C!6MNrR_8AjhVR$m^gN%3pWz)>3l!;2oeYe2Awv_d0yf>gq zwA>=dPgB83B;f<2O$vi(Ar(y;(w5^~8$y#*5a>|uWc3A@Ksv3zoMw)1!`b#?;SHET z__25>vVoCaem6tir+qo)wo@l6JaPfpe@%yzUykN>lt&F3@5}F8*2dSCD*2^;OO|ff zjjg7$7%P5DIzCWTdBaG5aZr8lj^bMQt9`jsV)BoV&Q7#1lZFbXBnCOhEp-#U!(u}? zjp^FvEPDu%=TIS%OWC>3bH93aacMZ_4TY5ff6y4cxavf&9U?P^uZH(0=R#h$C|pBQf*O49_ec7a6K(TeKmR5G5yXUaS| zaqE`wlwvAp-6sNrMtMetWs2oU^Xg|NO-Gq863T^LHHWO`kFwf_|Hq_Z?5ngr$`0j; zysVAw&_`2FJ)as}t&9!F>*l4N4~*Cef~t!bnbh}INR!5j^EauCrH)O2AZE9GD*qw& zp!5Ng%VqUs_{ zpu~RJolk{H!6XsLD%Wh&^Bi<9d&3UXei&oE|#&wER_avshP$Z2vt$?`Jg z!`AnETBpTC5KekIZD5&NJ}_8jxS8_~rr(5D^2;Q88?hmt>hDPc|H!O`IMz|U^*dKT zA;a_Osbc?aI{0Ut!As7WM2+BgLaDRijJ(~6paGi}?C5WsI|*Aq>Mrt5lnkbV#L`Db zvxMhQG_D!$@Z1oA%-C0mdQRFmplfw*S9re#6^P2lh*F423&wE%y-%UV1{aVzEDNG+ zO!v=8OPI5R;3;7Kk%>Q-Ou)%^qHP))jJ2?l!D%j*w*Da6rupdAcJAA4mFNc#VO+*M z{XAH_#(plq{g~&q5PPn+ZhqWv3dkFHYW0(Rl@vjKC;EuF0F&2>aJptl&)jQJ*ILqM zpS_GQqAVz!@5{WFt$V-y_9JKkXF$?&l?88r8Z?hu(k)I-W{h0$o@yF}{f$bZ@hfXc zHF{l`ma*xWl{2)Aj%!Zgd0jQRk;aYEyp(Yyq_Rs33_P3!)bB9!H@NhB-My6x3ByfO z^xki9jc|vHpaZY-&-rBZj#!}>py#-2~u`ODhB zZS9<9Bc;qdUlz8+?-iE%WbIn;w@quj;tfd1?Kt}U^OaJ|}ZN`xGHQ{c={p|9U%{xL)ORx@a z&$4iMo&uY6XApFXmgs)$JvMG@j{Yg*)T!r@JiBBAXUgeez#BkrWUmD@Px7aMnzC}P z>Ala7zVRi4+vyua2fsO53EtzGExo~}u|kp-(i_RDnB*#_%CK12Um0;A*r>S9J-FDu z@v{5m8kos@MEdHfHJ7hGxTu~HgsUoCvz-!oqnY*q`-FI}RUOUHfu4izhS6JxtFQrUkIgNR$=^7S&CLMv|w##c4!A8GXeK17`p|`e-;+l5BHP< zdOY2dhJx@fHnr-1$D*(4Pa=}Au=nD)*+U}!P9ah*5n7+UkPCCLyDPT&8l%^SeMFE zpwkUj0!8M_g@wJ1vyhIhPPv=93A~;K(wH2=j;u;gwW?isVJk3oRV>7xO+yx_Ow;|F zP4~$uBrFRy@8-s7m_+NJM09Ai-ww3(!2;AQvb)?lfVrTR1-S|9<-2I66Z@xC+h;io0&c&7 z7-hhvBTFzeO=}>HuNv?U&Cp< zvY1q=y?~_gRf|6+3@$GLPfehym{>tRr(hsWUNDbVBAX~R4L6tT6q=2UO)u62v@|oE z=F%{8c^;ZMPhx>O%bb~$pm*h|mM#v^tNIpMUiRd${4Jn0Gz-#LFc1q=is#J5AXHln;kB>f&-dw#kjyqX04w*y3C^1p5?g`IO54DU()C zxh0^Kl08)o5NVYVQ<$xh!|+W}=1?J%{!)6*j3M_7uDFtF`;zN}g;ENz@oHFvV1}eg zY1awqdNzpDC?em^d5AzZy=49E76G~H3S)*j&E?+wT_~;fOlJP+rK#5>p0hrd{;C7` zTb+I#R;t{oZI;7tBo9E{0jMAo)-me9DH#=myf&U5K9G&9E;O&nx|a70(p$pckuSrX z%|B2=AyM@}Aqz%us35{txiVKfN@iTDnT}k=S$Wm+O=&~b)kSC3#mqIO3N>X`H5CtP zs`6@TI&1vzm)7NRr(I!;P{xjzkX?t@-a%o*Q-hPLgA*(&O)uvxL)gIqUNUTL^BM4& zAJ+dMscjIrYFTTVR(Hf(N77ge8LwlP$gbxa3pugNiF<|n10M1Xyc}^4$7;Febc7X4WcNi-~&#V|a zt~owQ6aEz!e)@pl`R((pMtbs_jR;r;IqGutSOewNjMEzdoF)DohyH1<;s?lJsz#PS zaeyjwa}dD_G}d%~CaoKpVzU2(MM)jjN6}I?#Q?xkZbjuxt(f2}DrI|X_dC)NwE{e~ z0AH<^W4okCWn^GLLBV0`xRE&W44C8s5`b&`9|TDP+Xl=4+e$azrB+f2U-x|80G4ub zQfB+l;=Y`121C~a&Kn5>0EYtbAQ!gGg(S26(95$&aOY9D3W0pwod zHRcV7tL}W6CSj)!$Wfi-hSrd);VcfFVL9*$7P?$Ppx%?dkpf2bnPp<~R78_3b!5P$BY)j<>XnxUc#W=P{A-#S9b zEo_N}#R}Q_sR`#)zetH?OOLgI1|&UlD@znCIEsqkK!vt3!VHXFQ5`lVm*{-|`@XJ@{C9+VN&J(>;C(PNUq-J! zh(w=TX`iqnz@C6T+~nrk?IZGMBh9vQ6Sg72emFvZu(%Fidyyt43`ks5T@XTHYo0)Y zK#?c~>*JR%%lt#M-m)pK)u7UH{1{<5AWYAVnYWMrsSR+y3a|VHAhj68-=u%K`)J|A zYf8=`8iyy{q;Q3YjC0H!bCj@v{NTW@A!`4m>l0la7v!EboMea4%CsTU0e z*2cO73kS-^Vwi(q&ci1n=YD9a5(x`i_QPbZUL0GA6E}7=Miy350N?!r5bxUlsf9m< z4#Eyc(WEe$s%x8GugOcu4vEGjOcSrNiAif;KkH1qgjQ&V8fq>8NMbO|p^k`i?676b zJX(Nmq$ebw-cjuxng58=un6>ORDsSLJ*_7$6QT&UAts0DVLVKd@P~IHIEH*YTHf%J zUBo9bL-v?M$5-a;GxzB>0sz!4pfi){N8g*Z-pQ1mw%8z`=oK(x%`UsFka{3^F+256 zV3OF7YQx~>0cw)iVNyl-0aXGW*A5Wc229&vC!C`=>Vq}&D75q5^sl+HmClfk$6R@9 z?mLo0eRYJ=!I7&gzPjfVgpoe-XQ!+T%<|VD^VN8o#)L2G@w&{gzS9r1umn>tQ!-&# z&1pjiUwlQ?I8pDQW+^cGc8V$t_?|ZQFbq%~d}AX5f4aiJ@CZnefUd3yQ->g5-0Ih~ z1SaYL$AQYytl^Mb6St;jX1@S_9zamGM^JFbd_M4OeX53_Hq{^mtIF@BkXXpQMW1qu zZe7;~!Ii9$n!NRz?t4Fc-fi^xgT>QF*X|cCUKG+TH_iQFTOv|gg4ivQhA%;jmMFTH zs1}xJ{w|STU1GTU3CX!kd3F3V$@r*70CXIWC|O=cEsJrlgpWv6dBOO@qtj#%2WJV$ z9s2h%O%vvCBckztKU|KXeKYlRllsdhmIPy8h|80sM-{k(aIVC2Q4J)*S+@Z-q-FwSIeP1~3!>TH%0q(ly@&_-f`# z)2kI0)Hmnwq16H;1lGv}YrK}aK@Ho8WWSF=Z5k20nGZ!^E~FvPKEvWixwpK%jtgMx ziFow1i)s-aEi0n12skP8sAi6K?1rp7t3Ke_iU7+C*g!WdM+x}!myXAJw_$&0w!!m@ z()=_dy!GY7=J)2-(!0YkgC9rlMrH0xbH4wzvY*JcPK(;0Kz+Z{KhHhqge&YSQlvYZ z0SKe1wU6FFOFkk|E6MBhZ8j!6@3EA(Gjppps-GOd4i6|C4wpAZsIlJ}0(W?Nu`g+c zjFu0@7d8s^VVR=9mg*6u!+~k4o#;moK|&WGObgF1x+d|M8Rc`ZTX4(-`>1;LD;f)YPy z9DWKk>O|;Cxa!fxK5D5cq!?*m#!5bEt-6$74{4YaeJYl-s1r#Ke|Zl*B)%PQV|Qx# zG$w-@7QwMdg)9%?~#$2PQwPdhJtw{u}l*sB|%@eDOE<5uWpP zlBwsqt1r+!@XB_u+Ka!;#=9qV3e`VO?%Eav`<5l0Q>d7Y*`hh2HO{?mK0 z)d#jyNKv!1v!_8fdi#(Wc7fr%;3UxfdGiMTnijt7OP{iSl0dV(`382v^Ji=EFKf}u zeGbCWZNkYN!q3Nq)2D>9H-w8t!r#m8H&yFD1kD_SWpp$(n-Y%6aOEF@rX4=V@S9o^ z+pX~bZ$WbbpKH9KS9I&qUkJ0wra`G{BD-py$(B)tZlO{Xv+1@;jcL8z`#jT~e-kwG z&GxL?yuWrwv6%1Mbl%@vc%N_n-LCu5pMMcF3oH&D`x4o1N3&WUISpot-03T@Ja!o^ zy!Dur&FaMMKLt&X>3Z8Y(QMW~310K9-iv*OmuGGlUOys`vfG^ct-Md(xgFwg};OLzj`ynp$lBJhwPzLxisB58hfOl!(uq@{JoEvWJwfTZ2YTy zwA=jgAA+W!f-9Fn!MCgQSPJ2)F5+sTkHAsQ(DRbbQ|&dS=us4;_s`pB2e-%v!hDr4 z1x=XBHmi|eF2y;w28tvR3sXD{IZaWGDEQ>ZX)yQ=^^WEpw_CpnQb$6QcUc8;lZVzw zoRjHyn9*Bo-M#)!wi|eTRp@IQNgavIT3?X0oJVYs?WrPk$b=qKS;8q=);~fyRYvzw z;@9epjx8qU@f>MtqjZEU;hK{l=j9qyw^0$2iNIow^RgDBFQw0J3|&;vgP(-N?%m)d zpSc05v)z18uYv4sX)!go{G6kL{!zpk3$fm~JDuWM-2m$t!+-k@#BM)@z> z(4F_PcOLy(dwJ(Efke(8OUBo3A4#hw=Mcr{((Vw$5iRE!%U{vX?bJ7~B6Jy?OdE?8+~1jMK3^whuN&pvLl`Lh@_-wTx+f*)p+iitC6uG zPv%of3VcbK7=yrO0ikj~a0APAT?2lrVf4XH6KRKAMvB*Ljz{ya7OP@oN3(qI_jwHh z;}NS$uY67?^qjr1CY&1IO-{{f*W;E(HyNJofw zPz}o;V{UVI`R6?@J-dZ`T7J>0^|WN*8(FdHzIpmpblDSqcUzmEjLM{Hkl^-aTL}M= zGVXGJRfIiA;wyQBkOsZNjnlSAU)oSVuJK%lOR!>CXOtOaR>NP@L8Ve@{|jhQsHf5aS$nxM2sI0@zCS4 zRfN)#X~fCm#t}+o8c<%Yw)~JWF0VR`YeE4MvUcN1L{i`)qDnpfU_61O_wzmjSKl+l zIOm8mxL8mDQ&n4K3dZqhAFRvvw0iqKV%6Zi9?_?p#S=m+QKs6%iH;i^lF^PBKn%It|fI4~nWEX=YU!x(iG2qE|!Uh=!v$$+D6y z_B0)^fbb2MXftpQIO;_DrE~rMw2tcO!{DAgqlJ-IqO(F%?lWLwMsfUT4>DB5STmwC z5WK}=bdyS}EVmp|gaJF!0&B_&X-lkCCa&v8_o-zHgt}?;<pA3Yv`X-PEKz4U>W< zpK*}5Yp5z1rDaW)@vFLP$)4$FwoS?r!axa2k4!_O)nZ7spnkw$R{q3l>h&#ms|c%< zk_V7fQEx{h?v;@gzaxRjs=G)Rt+#pf(n%6nB&wnl?y_sbWy#iWhEY{Q2~XcG(9#x&uFC;CZbXDyG@~$}T0%|6ao|tFZI+R9PljPRCnT z{IY172*@b{Vx}>8Pw4Gry>TzM#0G772tZ8BQ$idoj5;iNskY4GWI1N~K|I|8 zxi_>O_iuv31&GPA{vldXxJbMtpUlhH(ekj=+2w+dG!hCbY2k)mZBtwNF%Kr=kI0HI zM|R9VJeY3nzTXi1b>|LQ*z9|ypr-6c%GS=mRVI9b+TN8v{MsO@F|C)Xa@s>?ma2-p zml9{t^7T8v&4Frxby{~N4~$#B3w2Z!9Fz0zdvay}(rq{eTgF{P!fnkJmD137IrgK} zRW%gRZafDa53bu;aGQ2Qn|~pfvu3ePdDpV&N|^(5A4Z zjX(PZ8?U}z<9fK@sRRq-&=APD1AL^#vnuuf*&vpKvKvh!y6eT~DND(e5R%siRFD50 z&Adt_vE%IF2Zisw2-*Gc^n2VJf=Y^5N|)=Mza6ehueH0*xS^xXU0-%?4$<{24s~y< zfLA7!G-|||;cq}hndviDlN+z+)1jwjU zDME=7dNi~oscuSwDa?L!py76Tq`{jArY5!;D17x61k$~&jb8MG(wV%CcSAuGQPC;A zSU~A_?OWy(c1?@I{o_h-7KOVa&-bne>v!v71)#-Q4zVQqQHTJ4_YG*Sgp9wam9)NzDx1pVo07^Fr?mSaeTYh&C8aZ(+ z!!E26bHIAE)5uN-MZr6tz3M)MJ}dL4!`zqloX!$jn~dllKECe{5a|J^U` zs4HEs-JL)?deHae{k_SALE{fWlL^B2K7?c>ye3A4wtNV~e|R|g;nC`c@RJXZA^lJ2 z`>{Oz5qJen0dCYmQ~fxx|4<(8L~=3W=66pG0?xiKMu#M-rQi6xJ4(4ffmO}01x%jQ z7!1&ea_h9wii(p0(}bbfIs;f>AV~lhQ8j?A8pxM|-WVG&85_8~2LzXrW9h(HJVl9= zMoCY3syq_ok((u7Q$GBXy^eEEWf1E(Xzl;9EPb$^N(2XOX}AX}TMxtlLnchQC%FTW z8UuB>LB!3zkoW<6NARu_w5Ub%h6R{+5nXV(k%pe46r%W|eX#5zHeRt}5GAZv)>c#3 zfC{NirDX2El;_WK-XzMK2CP22P^Q5g9o}o#W#%sztKb0nCcekp=&xM zn>NC9T*6VsdQmTib~3=d;hw0Rp)DPfRjJW+sdu=|(S&x*H+b#&Ro#fqftl5TncWdf zILLmCp3sKQdtMS%h`$AVy22kV6u?2aK@oH`{t9Oel|V_cbo6FN98mBJ`Mx+~fT>ml zn+9#YfYOezB^cL0Tcy6+fKe1hq`D*}#D-vqJe;IC(!em{po!>6@{PmjZ%q!in^5Fu z!^mP0-x>uaCiyLTs8~MhZEffq{{eO*FwlOmBX+`_4&>vVz@6qe2!mhCMt%Fcf#AV9K_tB)62f7`ajd5<={0sQ+!U_l*fa!Ov1qNjIvgkvAfwJsOzAB22XJL$!2SRT9D3!%1w4i9Rto zpOuO34XDYU3AV~4s@)*edg^xlM7JRqo>}DxtsN~FW&KqH>^CJZHT`4^+VADdUxRYj zn_>;>Oh}AwoR}6J=Hd*vlqtzS*Xc)`lFqMAL~fdilNcvf733<`P~2@q35-tN9mXyh zM#|0Hvju}}p~>+xnX@KBk>i;mrnnSyaLBw*0C08&!`7e?Yhd^uG?Ikn`4O|1l|=-T ziWD~qA+v14J*;dB_bD=Gc4xS{wPV(n4McpcxaJMMm70iQgAxKnsXb*DH z_mpPd>k$)hM6y*^s#RH98cY`kS*Sk77#KwYRxxr`NhXr4I$&9AY;oz#MqE)}1TGb5 zO=_PnTapTqhOVy8$Dg9sg`o|F8mZFYb7`m)vDFsF+J)EPuL7tpaI3=<+FCyFWl~c@ zf}f+X6MlD49fX3=BBlvXp58n!Ow)4RgpY(2Qx@^wBDoE+vQh-E+* z*c28YfqwOx5`Q#*vqB{vjm%Ac24C=^;9pD-Hc`Mr#w~I&uhwL69_QB<|J%IXPiB91 zrU|;38N!dLDa(Dx&)=DoX!`NZz*x=0GLuLAb-9bKY?f1Bpj!_s;{{VRQs&sp4YA6L zr@W$s$IrO z5rl<*b>w!Cx|ld^dCU#a~N)4jGW<7^=4K zVEa`b*FQ-nO`*{TYE>A}tjWiYIbk>D)m=b+GpJ!Wxe<-?vKOUJAGMj;+GZ@5F-?+1 z_!=p)ka^}A~8P76><({-1ib=T;1Hy3L2taXoR(C8Yd-Ma3b6-)N1 z&0%fbPbszsF5}m-eZiMx1Je=Nmw7wDkbK^1T z<`afZEZ=5?%x0w8CeCa#%7-e=rau#6MTilF#1VW!L1+d}oUiS^2WM}wh#H$s(aircheEk5F|*etZ%&DV+Q#_2by zQ4VOw=4Ztf?6WtjQsC)z=TtzUA~VXo;r`)XX+6Y{&UA#b4sOYI^r12C$xhsT%MZfP zPrLIamdi!*Y6+QOLHXUevJpxp&jJx+YCXzUHS)G3ikCl&I#~2V?vFOqzgB(-erg+i z6Aj(=+LP`Zz3?7w{JvYvi_d>upr8NZleye_crQ zcodI|PIjD0gnph{;j#-&?6IYa`TF(Nn8$NO_6Jna9q5XxkBj=kYgM21y^}jfa}fx4 z^j{UXkLB;yUnXoWX#R-v3kHwAQtES1);}ko_!)Z~wOF3LI>-wCv;~QNTAu$24h|?k zw>|JtfbRYL5wm%Rmv||wHX5j+?XARMsyzvq&*BY*P-LMZNuYY{@ z%jt(JAvWhR?h2?>O$z^~poybkT$kT;;Y4Ervca5x5j45`Q@GUAgx!yLv@$AR|Q_-~9{ulg)`rk>Ts>Yx(4{gFM-!p?QOq@@;uFxz$!J zLg}w%<^&t6pD4H@L8kOU$?9PRH1N~u zQ6N~GGCc0G%U7LtYu)7g(J%N;8mE4#)%lNB zr&%8l>WmKWx3Sz{ahf=7_#^f8v~?>8A1$?`g|s(UlxY`K(neyo;;NBqzwP2hM&x{A zy`RZ)-xEqeiH5Jtx!UbljU_Q+Se+)URH^G!O6(UqYd+9N`nXBqP$U&G}4amlf5K_Ze(zo^yJ`q`N-l$B<||= zoxY1mxtgHAy9A+IQA;-P=e9MWWNyvDi0&J5b|Hw3y4~<{`zZ(~j2^pTnnq65A;M|t zJ8|-)wnU9F^e-^YFPDpzj8k|q@_F{UECBSq4S={yqYp{bs~N7O1S`;N&K3Y50YiT8^RNIu_nMIx#bq`{`7MH3D2A;cJ1;aGZ2w^HX3R=5rOCs! zI#+Y&n&4*nPFK8;{Y!eCM*fYliNctr4$I+*l;_Sbgv7tQTQGA4AuOr)L;?>j>l^3_ z84s77X7VW5w;5VWTfKGH1`SQDfV7IJ{yW6lfQDrDvyY~Z@Hszy+6A))MYaYla`gOS zQd4`^t^SbwExqjthP1^Wg68h|7Qr5Y8DB^Cd{l1Ecm55^GukV5k+vL@ui$+3H?s;o z_ChyEGzY_9uDT1`W`o9*uNR(Yc@!VzXxMo+Di49q|6_%~1VG zq(zre#F1AFQs@DmV004S>RL0TGZi*ViX?6^Hz{x{%ADN1NsTuonn!$4t#w&sS&&Pg zsfWn7$~e^DiQvh5+u#x)`zYVV=|fxolnpXY;d(+_wI_4v`(-u)x>tq^??I z6FWkSbCGX+yqZ4gzVn|sE635an2>q{f}@9DW9@=92^t=vkC`U`%Xhio1+|$toCe4T z+)>@0cVoCsCf9K?MQ2cQ1{fmo4~SVTN$uMPvY;sAq7K^z;jB+-I&9>SDunBq?JVs1&3o#WAr1OD z!(LSZeZ0wrB8**!9_-~?e`@2A&m3lhf)%#BKkDmCW^K!q-ztn@{Wu)|dsl7r78-&4 zl^*|9z$DWLIZ$o(MW%W1j<;|x1(`gZ%=x%JI?$J9CJo!{@L?oltT?r~H)Tq7bX^m>1%*4@-6 zk+pT1y(^UCDn$XLZNcN}(itbi39Rt^&(pI^Y&psGZ{7&LKd{2wJ8rfHp@N^SuNPl* zz>dcON;3|W7d^``2L(IAJ2acBb7_Vb-zrVG(_MX)*AkAtfL~+FEF&>R&6+Zlqj=X0 z(T|==R$;~6$7F?BbuDq%@;*@ss@yK0(i3#xm7ZlJIg4UsWuEC+DheN1*{8`XVs;mI!sEv%Z*pzhyHnd zYNcHRj!b%Z<_s=4^9NWp88jABFo%~kQ@_E-9f;w6(laG{VYoDalQw!LOLNH!e0Y2R zlOFDyY!SCY#WRHl?wf7TZgz7k_7R>bj&k3ces*htTWS57(mwZXJseLL3JE1Lr^m6E zMX*CvP#1TVX?RfLZV6HvNDTy3>Oog6Tk=n7+oYrjtVDS7C}??Ru>JCJmJPXiPU+xYQW^IDfLcO zfY&$)V*z4J*zqQ3cw;*f4gi8t;x!H*{-Ee=rsRZFEI0IUTBKS--*a9}a7GEdSH(Fa zy_~K2Fp|ZqsGjmm9S_ybqqf9r-RF!fc1E_Bp$p1TRcq$#crBYXTH#&MkQ)NLW;hr06|}7*#3LGyfGVS|pw(N}J!x=WaER9t z-oq+tQ2=L@v*yEq=MTa7&hw$D-XfIozN38J?EI**b(;#JKsYAA4x$dnS*!5}AR!n> zoD&z`j~&nA<*IVzqDF%WX2%=E@oSzcyIAqL-*eIEaea94L~X3nX14NC7nbLVEAk3Y z$bKcN##QY~*<;BF1bwC2=7utpKm-HsQhE;hyMZyNKw&mj1vXJRYv_VX6d-^;-B31g zi}_g@x{Y)0bVZ-`=+I!eE}S%SoHabEP^UyTNBmD*Hk5TLqte`viUP309(a4CTrGmtsGw2ihv}DMp+{vsYEWt zX&Wd%o~PSaImDeMtN1b9HFu}iYS=Ml6%lppkjlRvDL$*p2i59;N-`hLy%a)igK382 zxFCG~6-1ddI8O$A%TJ^!X zqur`_T97Xp1pD-MRWCd~FyIo<9?@`o->930Q?34&%P&euZT3pO<9lyXq+CWd`b(V$ zk?M#CZqy3mfUL|X-Ba)JLYwR=OL?|%iRb|JrmU{n`_92=Z`6_}(hn&J;3oTc%v*$} zt-O#a>st3j>}4v^vqDpPID0PK>mu)2B7PK5i|*f?h6|(W>QR#-=nP@76eEAJ`j!Fn zE^E6w9D`@ZX|dyO6nH(;+CbfN_tV1+FymLa2HXF7WHS?-7nw0dMNR=(p6WWan(f1? zJds%qBwIc>>KFLoJj~7m{C0(pM!PWjvU3>oLHl_WpF;As_w(Sm@5qfVo%bJ(_y>z1 z;6n9nF5D3f<~0}Qa6%BxBYMvTa{|ZnPj0Gv?JFyy%>s}=;E-SYm?Z{W92^s$h5J;2 zJ{85Ua^X|;Fso?%`T9#lu! zgGSBCD@GRn+HU?j0<{_;hmK1k)@R@C8E{NDHw;|7ttyDFzbaD;An9q^8F(vE+$r)P z4fB}`$3(l9fq8pM;fbQ+F>aGU(Z7>-)BH;#i2~NuX;#A{8uaX4)DC)oh#sA2Z5!1c zDDxZ!s_}5(R?o63Q97CuZb!;gjjA|ao-lrGR(__t_>XA(79Z~QXn@cnPQ-Wf4#VZo zq(Jk&B&y#B2|;(PAEKbmYQhz$)c~=(cv{+Klt42|@tB0WMs>DfXf*(B-;DA*Rz=)E zKRHGj1ftw-7+m<@Wqxk!g8!38XhIh^-xS-4T8Ak3R#FRL29+z5_k~nEzSFT_lxWec zf%v$UGW9R3`U<u~;uB~Ri(&oXf=3-+S@G_Kz?wOH#j?*)tLQtrhU5R6d@!2y#*B##NT|NKz!(C z9kh_S)g2KfVkR7v$~tbI1kn7DN(QiT1I> z-wVTd(_r*f@b|T4y_{`73OqY&NU|@weUur+K)l z?Y4%z@eN_dKeRp$BW^A#`thJ`!+ljujj7#H;H5X>g{pYFwOqT0y&Ec|3PBhW5H;~oEem^~Xp%OaPbZYGv)>|tgf_?oOk(hgTaW&?iD1n_wu1G%?O#6Rh?me8EjH5r@5E2L> z388mM0wSGIr4t}P=)HGDrKxm5Md?j?QHnt5L5g&dCRG9Hy{R-25D)|rEM)m@xqI*K z%$=P(J9qYPc;`LyJ)d*V^IZJEpD1Y0C-Vs8+t`s^gc`Go;dskiLVA3w? ztE23S?t!}bT{Zi=>TY5w9375|wQBtj?RAL0|H;sO*KvFO zarrmV6ZEki|J@e9CX9bu_^+4uRi2&ru~5|bwN1@1@dZ~h{_XAWgv3|B4*sece@`wB z(IbQkjRXsoitEUoXcFZ{8|(kFNZkMQYBKUquJ&Ow1$$LAW zm)H6a=%SW2@Zat5M}7TAJkgZ2n#T{LsO+Ms#K~HCRm(x28xhzr?TEdSW*V={n(V*% z^h+(P2aNJeP0n}vGnN1e^~f8LqQfJd{C3+f-o94UB3(pDN&I;$i!0SF)6T?2R$|yQ zOTRj6#L}U)GUd`-HJ>u4m8JWp-Ox_qQHx>P@!23emC-NHv^Kq}{Y+Gq!Ay{`d>|2? zS7v%Mb+IRpI)i%>@91KZ9x3+H$Kkk96Bo<7wk z1yoP-|Ktv5YStiBWim6N_68XZrfZ#pw-5SD;nCcGZAHY)pLWUZu1z1`>x+U@vj(x9 z@$!TRiep-Yf9!81TY4yL>ee6QuQTXXDD0m*d(Kf=`731!-R@Iv68}^yD(8wCfjem1 zd-JMs^epL?~r$OofRJcj~bsj=xKni(SM$*&gAAr&V% zij3N>kGDMER@#95#xf(s-SjXxrG#-53n!Fp(vzB+=Uc48(YxF7)U$L_EA~N?Fx?!Y zi9`sO+Y=a!P5+x#o$TBppo_Zp`wpKlU9V(ga&ExX2k{=5*@(oD$n=Pms4c^&Os9Fq z==HTkvoZOd>gh4XqY*PBS$bi9X0BhblRERiAoB?gdIR%GP4+u8liKJz9`DU>JvE=u z5pFi0Hjv++nKn{`Tg;f~h|bQKnHX5iTG-r~owagFvY4~+sF|I!^BuLAcL>>^op%a{ zTQ0c7i_R_FNHefpyqR-nZt-?elI4=ee>P~=!=LqgzuBK#zSon*j0E?@%~zp)u)i1n)y!;k4CLNhq8{6Q$IhUKv=KZl!)A0jifiUcG2{ZBcw&6ldad| z1#1`9pGs_*E9^FXSlCEWL!4`->4+_EW|$b-e95x8yZGg~OR~*Yjz{g{R-W(Je;70m z7QYsTBW$;e;>DJ>OVSK&cgk|^F6~qlCEM;+R@N@-aH}Y8Js>ZrpYfN_RKKiS8$@W?DV^)C&)8(wjr3!1*I` zeh~D8C(TKSZTl_Ik?$ck#2NJVwxmBnfH_{^eIhKo8VUR+JWfkPc8u(uKikn08X*p= z_oyu_4mqD!7Ij@v#{X5?lTnJwq;raEI2w(+!Ar5OmSCO6XSx}uYKy5T7)*m2zSrN4 zjAv$!9zZ?t_E$c0{;YNOa>Coh6DA4S#{&@>Y47;%O0H>q3Qqml$)6nj@&-3rQd`Nd zRNB)U4zi)leRgJ|c8`gVove4-Gexuc)G4=wa79pAF+WB)jVb;DwL`D>*e#>7yOdA7 z;oZ|mKeT)>Wu6KcU3`Rh9QNC$kPCaIW%=Htmx*6QnPUa*57M7^o_rAxXV-T@WMmIW zZ%L%(=-(8}$QcdT61z&zqQ(`Een3pb73U;)$Zo1uZqsSL3>js!;LBTn6ql&)mU>sK z^o4e>vEE3fVfdpA%!TK*>t91sAIg>nS8iA6KqphfIQWQ^fpP4xTxcXe6Q;yw`pS-n zP^`+dEvpdWjvqrYa`s(uYtd6v)B1#X4!#ofPl5DP*VLz1`V-)fQg8}wqNhrmWh~)i z+C03bPdlW`XFu#1Ja|A(&4s#=OD~!YtCD?-Q>nc-@nO( z5nCU$)aFlB>yW5I#7|jQP9aA#%d5F;uIZZ9zmM!FQgv(|v@`gPY~PZ>1ZUmW=sc&F z68MRVWR8<$%7ykbG}Qr3JjFpk3*{jT3(L-z&7UTozbSWBeX&oghGTekj8#W|+92El ztJ_XtQb-rMRRKQL$OUqptyuw!$r77TY^-tRS6TW<^ zBh7@F4CtsXUh?wqvnpy|+!?d1Sxm~fsjc3bV!4@hbLq;pJ59Nt4NNfe8f7|ToN0z_ zto$eYHENd@(JXS@eau&Qdhnvx=LB7W)sRRT!{FVbsq-v6Rxx z6hPFqZ2VFeu{q3a2ZUvCgp;_Gud{e~7aaGEV z3maE9$(-?7M;dqU+~BMN4e~J$Mqh)y-`~|9>gj^i*-3fFqn3HEE6HYejnH#4o$0$g zf;5gx?+0Z~h)veUzxIl_0}i*FvDP&z@3?){sBZy{NAJe5!#7MD+tCMFhxcyvWrjRw z$Mn=gADX#X3@gl|z7@oEzt7u!$)~g$mPEL%ZR!=N`=Y)QyO+%RZ6o=F1B>*HagqB$ z9slSBFQ4jQY=fCv#(TlBRC*mo?&p2nV@jsl=0O3>uFrpF=jPK%1bXrK9fORv`nW@) z?h7`oc|o}`%NA`@UXl~5wjF4>D*~=%jyIB?lm@TAAoyRy{Fs+!oeTGi6e@uni<)e* zJSJPZJ}wR>eQr`_enO?QA{zZmLl6I5mZ3rCLQG&ZE?b!g(}Bad9OgeJEvS60!DYfu z_*GT-DDNk(EBggU2{;~Ksia*{Z1@&t+qo`Z{yUlZ;qMeSteV4H$TsIxaCX=QoIWPL zQB+c^ur=uvN<8e=t}MU72op2EL}s ze0nkH-ugZC(9}%~;Pf(?61q50?)VNCEt2eO?^@1TxJ?y5qTzfmHQ%kj_SdU8GB+=# z0|DqPP39Mpk=;oJ3aX0G@o}VT%WhD7-b{WJmE>8RGDo1;SEqc{|4h~gBZpl71pi9D zB_wgO+l0aV5K{*oZ{QkeXE!x4o(bR{KH}VXC0E2dSa03>tCrLQls((zDmo zb05*8kF;&Y7z8KXsCuHyOBrN*8RhGdYpF{L5=`S|;~-ZC%_An8cT6U}%r^DRuSwtS zC0K6yvLxvM_2@C(kt~5nwwqYJpd;3B3ASiow)lFsq$9R83HB^s_MCcla{du}kpxGX zFGr<>yX2AfL>Mf9!nDDcGoO!jrrWUF#NyqN-mr=Bn6Fkant9lno6ePcxt`;Fzf7&K z)NQjqv%r;)bAtAfdr443(BkrrA&#kP)Dzy@cO@}F zrcM*itd1MkI!mw7(PCWv_@0#V_$qX%=f%Wj`&T@e> z`Tvv4kVQv`4-sMbDY-N=c;>M@d|H^5_ByA!jG`IJ){I|Gia8j~If)YHRaYcW$}pPA zz0ZIRn@Ooop-QFX?M$VAN+`WulP>WSQe#ktM=08uDZ3nV4@q6^@e@^bMgF)4qASj` z-X2VcVI)l?{4neoPeD~z)t>3<-ZV zE#U^~qyYU2X`QS!L%Lp(FaGH90PeTPD)4pfNNJOd8AUxQ!;ij3X*1{xCL`Yln2I!3 zVpf=b29sT*^ND!0D}ljg@}i`!U+pE3GlVN7;jS5yljd5J0IWlRjy9vkHCLhAG8j@O ztoOvk>=oMHg5QN%;@m`zcU@B)!%Z%lMh&lCw`njibFuzOZ#g-G4hpmhwLk^=8`o!9 zau#bH*WdnT;d%xhU2(O-)$FFn%D;{D;TA&gyrKL+AsI)vz)|>T}89z zfc}^;2K^7SD3unpoF(c-lS)q`+F$DG?CSL+3zTDvCb>mlo&QB~co~HK4 zC#WFVThT!d?F?}2tlo1ABYze`kt}Petns%j=V||2fo3kvE%JK)92Pj(l(aXrV+;{nkH~$#=d6u1xsc&O5@09Pu zz-ik_qG7&;TSkl5{nu#q00Z%3bU@GJ<17tdbMH~+(3>q!=+>WHi_p+x5&R6;fgGYw z#hFh%)mclUGxPIlW`FcF64AKsC9AYZKcWm=0hE7bou%EpqQ zbEf-&^+}fblY7_izopQ<&lWr0glB%O_tqswHQPwzB<`m5bxt)m+ep1JZm%A-}B`~$t`Uk}KfJ7IJ&%ZTQ*NEKgCZJrm8Hf2|r)*Azy7aRwFP zqyoa*S+k?xpl74l<#iDfUqG?z; z$Cr7M5~QCRZCVlK+`uG$4srL(J`2P2Xtfxa&i455+j zgH7({?fpag5idD`;!AC%;9fQ3rNl>oSKJX*W<6X=56k2gnGF?RNhvlP*-_)#YvAio ztvP}$6*0DzE%4sP59p@jwltC6L~9Olx1QIkcBn)}jPo+8>A@Rt@tfw~)!>JYDsJc* zT@0b9aXW}lWtLa6zAe@hxpfbN{e$8VtTR%mL-$e}+I8CHHeJPZ@3y(Zm*?i=ep%yL%-4;>fBTD&>>UAOi5oab>h6PkJYZ&#bFHf z;2ILVJ>;tn`4@S>e}gwP}i?E3PcN|Os?`=Yw+PgSSF8;cI!fNnMX66)?F^4DO&u_pqJY9g$#Q+lx)h|0~uug z#8XA45f}fve=vmQCJLn{Gl%AHZN)~)b5@;b^`bZM;yH_d0gq7KS0mo^ zk^^z#>B|F8{-I6V$_n#KHJ286JMFbVB*h4lQ#J3NZi*mK<4^W03}!+QIMV)LmPT0| zkXNGttQO~}S`4lF9QyGU7lw`RlU42~!OIJ`;T|@D=yGnE&vr2<;n$W)$yBPMPR}5`u?YHM=E>V5e%rFEB343;h4kvF29Mm zZ=&l#DC4W3k$D8>?XcT19q_m+O8Sqxv;5%X1~ z?)KHTL(D`MI~9@fP#CbcarD{o2Su1)Z^gm&l1F3L!lIC4nfURr@94d;b4qd8&Ce5< zh;y1RXiM@~H7UYe;<{nkct2Us_4619=9E7Ak9Z=JnakgwUgN!P+FK*2!%tx2-f@%@ zDvsxn0vOgEPHD!j6o)P9jfQb5Jc39R_s25{+jhiBl)OvgLg!AqU`^g6BgxunN|lH9 zFVzI>45fD(TZacqPq~a*XCcD>hRmHn(7he6tK<& znX0)Od)^pej*$6$ZKA0f$5YvwrDpGCSBo84vG*m~LxKXdJ7FzRCKZ;V0@v$Sd!i(A z+d1O+Tc5?pinW}dxoz}j3L4fXo)=+io=Z8EK0JwiYA)d^u=n&(+`uzdY4Yd6|WHglbS!fSLXU)2StjW-QvJ}Lp_6oPCFSOC>;A=kKvN;R`+0|kF^h3V2)#s4>q~t8BSP_<1P!%h?jjcNT29lA3X7d zX;LmNk%``Y)kGhV3Q|8dA8;0$)Vb!8uIn1KkZ!0#b2HP_P;l}Ak=tT2&HV0AnUO&d z&8=+LWSuReu2M;}`w#~Y^JkM;G`C;)jp^LZ51RAX5cFy|PsyYEMB`43KnKwpz25Qmy{~o!+cbaQA-&-K?1& zB9VamKLp);)6@5cXTbkJZ`OPmEgU3oaXUoVQ}zF%HygX&{-5a0=Km}7W`c?R{|dcX zMV+9euB)s@P{e5~sA|ir;L!wGAyuX8%6M5tbr}UUX?Zn_g5>`8eZb?|)OpyzTn;=Ta5(dHn5vsA8zB?L_FDDa}RcjCofhPX8U#2_YJy5*e8| zHc}($TQZ9Xr<+G=K%Ne@WP(6|+5{b7Br<^(X>J}xgDfIpo`Q#*L6LI9tZOmQMU!DQ zB}sfTBa38|OR6Ax$Ap#EM;#%|bw7>Rgt}xax;4Dsh=iR( z_;L|&n@x4?hBxWyoG#t{xG^7wDWotH-;HNty=N1JP6%l_O4DbR?jgSK;*p9>TD$mb z$cqvvmw9&)H1GMXwn`kLO{YSQ;2K<1LM&bq$Ri=7V;O6t$xLdDkdNUM6l@)6V-dhY zcQ-vw1kjJmOmqfNS&-yXshS++OP&FlA9^=Xnn;1bG}YY+IPnIx9^my-snnX*T_I%A z1Y#2if7+twSmJZBQBp~oQ6CWfcIFBe1ui~))%Dj>=;aG&mV%I4RryPyj;xl1;i`Jc z(thA$0fI3vNPh}`l?oOCeN|)(#9iqE7{i28m{JMXyB?)R6;S}zjfaI_|CJQlkHP^( zS39P>>A})zNy3m#H1ZvX|DLY~K5X@1dNtppv_qAlpPG+eDJ8cIlUi23Etxv~x1 zGuV{|RFs~@HU%-wWyq4F?SZ(eC0px<+uh(p^UDnB7|HfCLRz&rW8b{E&fl*#ai+n- zFOzEcW{v4Z?~K&q7V*}0IMgtXip!4F63i_a{@K2Cxp!xfSF)c~r49g;!$#8!(os^@ z0XVtj2B5a|%$e983MMQWD9eNgf3qW~{8}9MbfBdWCV|DqD=x=cW(B(TaY=DHlfO@} zSP;XO5z?(b;lYVA>pv1f`*(I~`bnvPL8Y$M@YJ)mlQL}5e^tetl*^6&7gfxsD8?%S z00wC{(-nv-fX$j$LvDAv{9u4mW+DbxTNGAyKBTv!PFPwvDJ~Z42dm=17B#yfI6=2+ zYPES>>q)AGeF_uEx9aDrC*vDnSS>Y0m339FWijQp*(+XVcK_RqqdouvpV-I3I|drT<2cVCdEk~c&5&-&+^y)^tM*> zTAU`QKSNal0FscrS!@zbz1+=e&8T)}C&VT@Bs=QPXxr#$E-{bwT*NO+(RPd9t?h#- zlO392IU?W}|7V%FfQ-D4)oniwNQ2cyNU(i+kggf!B#4I!NTW#vnx?z*3yIJ}j4qM3 z`N*0_J6=wIbrVc&&Z(6^6LD~EHPBk-q^fm4zeiDoEwX{7r72qPUU-!+31w9a!HBvE zdR@^83j-!jL@XAs_k0nJqtdcOvRPTR^B?-O#@!TQWaR4rQZ&SkW+7=;ick;PoZ{}u ztcO3MXBQo0k)mR7WU9&@5NnaRN84Lv=lupH=>1*$U)HNo8n

      >$c>@3^fdH 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 z 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�>T)Q1i1KM_iums_X9j9 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 literal 0 HcmV?d00001 diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 0459460..9381a24 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,7 +1,7 @@ [toolchain] # Lumen CI 와 동일한 toolchain 으로 로컬 개발 환경을 강제 동기화합니다. # 변경 시 .github/docker/Dockerfile.ci 의 `FROM rust:-bookworm` 도 함께 갱신. -channel = "1.93.0" +channel = "1.95.0" components = ["clippy", "rustfmt"] targets = ["wasm32-unknown-unknown"] profile = "minimal" diff --git a/scripts/vendor.sh b/scripts/vendor.sh index 75894cf..be78933 100755 --- a/scripts/vendor.sh +++ b/scripts/vendor.sh @@ -5,11 +5,11 @@ # 동작: # 1. cargo vendor 로 모든 워크스페이스 의존성 소스를 vendor/ 에 복제 # 2. .cargo/vendor-config.toml 을 .cargo/config.toml 로 활성화 -# 3. 폐쇄망에서 필요한 시스템 바이너리 (protoc 등) 위치 안내 +# 3. 폐쇄망에서 필요한 시스템 바이너리 (cmake 등) 위치 안내 # # 사용: # ./scripts/vendor.sh # 기본 (default features) -# ./scripts/vendor.sh --all # candle/llama-cpp/crypto-channel 포함 +# ./scripts/vendor.sh --all # crypto-channel + llama-cpp 까지 포함 # ./scripts/vendor.sh --check # vendor/ 무결성 재검증 (재실행 안전) # # 산출물: @@ -46,8 +46,8 @@ command -v cargo >/dev/null 2>&1 || { echo "cargo 가 PATH 에 없습니다." >& VENDOR_ARGS=() if [[ "$MODE" == "all" ]]; then # 모든 optional feature 의 의존성도 함께 가져옵니다. - # candle 은 protoc 사전 설치 필요. 이 스크립트는 vendor 만 수행하고 - # 빌드는 별도이므로 protoc 부재여도 vendor 는 성공합니다. + # llama-cpp 는 cmake 사전 설치 필요. 이 스크립트는 vendor 만 수행하고 + # 빌드는 별도이므로 cmake 부재여도 vendor 는 성공합니다. VENDOR_ARGS+=( --sync crates/lumen-channel/Cargo.toml --sync crates/lumen-inference/Cargo.toml @@ -92,8 +92,7 @@ echo "" echo "옵셔널 feature 빌드:" echo " cargo build --offline --workspace --features lumen-channel/crypto-channel,lumen-inference/llama-cpp" echo "" -echo "polleur 폐쇄망 시스템 바이너리 (워크스페이스 외부):" -echo " - protoc (lumen-inference/candle feature 활성화 시 필수)" +echo "폐쇄망 시스템 바이너리 (워크스페이스 외부):" echo " - cmake (lumen-inference/llama-cpp feature 활성화 시 필수, v0.5)" echo "" echo "AIR-GAPPED.md 참고."

      rMOz0SG-O>C7In` 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