From f12ff7b602b1ea4d10dbe8f7ad5e0cee7d065d46 Mon Sep 17 00:00:00 2001 From: ymote <151983+ymote@users.noreply.github.com> Date: Sun, 11 Oct 2026 09:59:23 -0700 Subject: [PATCH 1/9] Read launch-time test hooks only in development builds Home's main activity is exported, so any installed app can start it with intent extras, and Makepad copies `makepad.` extras into the environment. OctoSense code read several of them in release builds. - shell: `launch_input` is the one reader of MAKEPAD_APP_CONFIG. Its test actions, Mail's demo mailbox and module open parameters apply only in a development build (cfg(dev_mode): debug or --features dev-mode); a release build ignores them and logs that once. Desktop --test-action command-line flags are unchanged. - kernel: the launch proxy (makepad.OCTOS_PROXY) applies only in a development build; new `dev-mode` feature, forwarded from the shell through ai-host. - AppCard: every MAKEPAD_* hook (provisioning, seeding, auto prompt, fake GPS, proxy, dumps) goes through `launch_var`, development builds only; new `dev-mode` feature, forwarded from the shell through the module. - OpenHarmony: EntryAbility forwards no launch parameters unless build-home-ohos.py --dev-mode stages it (a separate bundle id required). - Android: Home's `dev-mode` feature comes from build-home.py's `--dev-mode` (App Studio's, #477): standalone only, never the installed Home's identity under its signer, and ROM staging refuses it. So a build that reads launch input is never the installed Home. Co-Authored-By: Claude Opus 5.5 --- apps/appcard/app/app/Cargo.toml | 7 ++ apps/appcard/app/app/build.rs | 8 ++ apps/appcard/app/app/src/app/l0_card.rs | 5 +- apps/appcard/app/app/src/lib.rs | 138 ++++++++++++++++----- apps/appcard/module/Cargo.toml | 5 + crates/ai-host/Cargo.toml | 3 + crates/kernel/Cargo.toml | 5 + crates/kernel/build.rs | 9 ++ crates/kernel/src/launch.rs | 31 ++++- crates/shell/Cargo.toml | 7 +- crates/shell/src/apps.rs | 17 ++- crates/shell/src/launch_input.rs | 152 ++++++++++++++++++++++++ crates/shell/src/lib.rs | 16 ++- phone/ohos/EntryAbility.ets | 17 ++- rom/scripts/build-home-ohos.py | 36 +++++- rom/tests/test_home_build.py | 32 +++++ 16 files changed, 418 insertions(+), 70 deletions(-) create mode 100644 crates/shell/src/launch_input.rs diff --git a/apps/appcard/app/app/Cargo.toml b/apps/appcard/app/app/Cargo.toml index e19eb19ad..8eb3a8b69 100644 --- a/apps/appcard/app/app/Cargo.toml +++ b/apps/appcard/app/app/Cargo.toml @@ -28,6 +28,13 @@ default = ["standalone"] # dev monitor. A host that mounts the app as a widget (`octos_app::AppShell`) # builds with `default-features = false` and brings its own. standalone = [] +# A development build (build.rs sets `dev_mode`; debug builds are development +# builds without it). Only a development build reads the launch-time hooks: +# the `MAKEPAD_*` settings an Android intent extra or OpenHarmony launch +# parameter can carry (provisioning, seeding, auto prompt, fake GPS, proxy, +# dumps; `launch_var` in src/lib.rs). The shell's `dev-mode` turns it on for +# the hosted app. +dev-mode = ["octosense-kernel/dev-mode"] [dependencies] # One framework source, locked by Octoscript-Makepad/runtime.json. diff --git a/apps/appcard/app/app/build.rs b/apps/appcard/app/app/build.rs index 93a7bdb79..bdaa66a22 100644 --- a/apps/appcard/app/app/build.rs +++ b/apps/appcard/app/app/build.rs @@ -22,6 +22,14 @@ fn main() { { println!("cargo:rustc-cfg=mobile"); } + // `dev_mode` — a development build, as the shell's build.rs decides it: + // debug assertions, or feature `dev-mode`. Only then does the app read + // its launch-time `MAKEPAD_*` hooks (`launch_var` in src/lib.rs): on a + // phone another app can set them when it starts this one. + println!("cargo:rustc-check-cfg=cfg(dev_mode)"); + if env::var_os("CARGO_FEATURE_DEV_MODE").is_some() || env::var_os("CARGO_CFG_DEBUG_ASSERTIONS").is_some() { + println!("cargo:rustc-cfg=dev_mode"); + } } // Pin source contents, resources and lockfiles, including local path patches. diff --git a/apps/appcard/app/app/src/app/l0_card.rs b/apps/appcard/app/app/src/app/l0_card.rs index c7f67de1e..d8af3fc48 100644 --- a/apps/appcard/app/app/src/app/l0_card.rs +++ b/apps/appcard/app/app/src/app/l0_card.rs @@ -319,8 +319,7 @@ fn kit_for(source: &str) -> String { // Measurement only. Nothing sets this in normal operation, and an unreadable // path is ignored rather than fatal — a missing override should render the // shipped look, not a blank screen. - let axis = std::env::var("MAKEPAD_L0_PALETTE_OVERRIDE") - .ok() + let axis = crate::launch_var("MAKEPAD_L0_PALETTE_OVERRIDE") .and_then(|p| std::fs::read_to_string(p).ok()) .unwrap_or_default(); // Axes BEFORE the env override, so a measurement run still wins over what @@ -1856,7 +1855,7 @@ fn render_capturing( // was chased through six layers on the evidence of a screenshot, which can // only ever say "not there" and never says which layer dropped it. Every // other layer already has a probe; this was the gap. - if let Ok(path) = std::env::var("MAKEPAD_DUMP_DSL") { + if let Some(path) = crate::launch_var("MAKEPAD_DUMP_DSL") { let _ = std::fs::write(&path, &dsl); } let captured = LAST_CAPTURED diff --git a/apps/appcard/app/app/src/lib.rs b/apps/appcard/app/app/src/lib.rs index 3bbca2521..043711ff9 100644 --- a/apps/appcard/app/app/src/lib.rs +++ b/apps/appcard/app/app/src/lib.rs @@ -30,6 +30,78 @@ use streaming_markdown_kit::{ use crate::backend::OctosUiAgent; +/// A launch-time `MAKEPAD_*` hook: the test, provisioning, seeding and +/// measurement settings this app reads from its environment. On Android +/// Makepad copies the launch extras `makepad.` into `MAKEPAD_`, +/// and OpenHarmony entry abilities pass `makepad.*` launch parameters the +/// same way, so on a phone another app can set them by starting this one. +/// Only a development build reads them (`dev_mode`: debug assertions or +/// feature `dev-mode`, build.rs); a release build behaves as if none were +/// set. Read every `MAKEPAD_*` hook through this, never `std::env::var`. +pub(crate) fn launch_var(name: &str) -> Option { + launch_set_in(cfg!(dev_mode), name).then(|| std::env::var(name).ok()).flatten() +} + +/// [`launch_var`] for a variable whose presence is the setting. +pub(crate) fn launch_flag(name: &str) -> bool { + launch_set_in(cfg!(dev_mode), name) +} + +/// Whether `name` is set and this build may read it. A release build +/// notes once that it ignored a launch-time hook, without its value. +fn launch_set_in(development: bool, name: &str) -> bool { + if std::env::var_os(name).is_none() { + return false; + } + if !development { + static NOTED: std::sync::atomic::AtomicBool = std::sync::atomic::AtomicBool::new(false); + if !NOTED.swap(true, std::sync::atomic::Ordering::Relaxed) { + log::info!("launch input: {name} ignored; a release build reads no launch-time hooks"); + } + return false; + } + true +} + +#[cfg(test)] +mod launch_input_tests { + use super::launch_set_in; + + #[test] + fn a_release_build_reads_no_launch_hook() { + // A name no other test sets. + let name = "MAKEPAD_LAUNCH_INPUT_TEST_PROBE"; + std::env::set_var(name, "/sdcard/Download/provision"); + assert!(!launch_set_in(false, name), "a release build ignores it"); + assert!(launch_set_in(true, name), "a development build reads it"); + std::env::remove_var(name); + assert!(!launch_set_in(true, name)); + } + + /// Every `MAKEPAD_*` hook goes through `launch_var`/`launch_flag`, so + /// none bypasses the build check. + #[test] + fn no_source_reads_a_makepad_hook_directly() { + let root = std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("src"); + let mut offenders = Vec::new(); + let mut stack = vec![root.clone()]; + while let Some(dir) = stack.pop() { + for entry in std::fs::read_dir(&dir).expect("read src") { + let path = entry.expect("entry").path(); + if path.is_dir() { + stack.push(path); + } else if path.extension().is_some_and(|e| e == "rs") { + let text = std::fs::read_to_string(&path).expect("read source"); + if text.contains("env::var(\"MAKEPAD_") || text.contains("env::var_os(\"MAKEPAD_") { + offenders.push(path.strip_prefix(&root).unwrap().display().to_string()); + } + } + } + } + assert!(offenders.is_empty(), "read MAKEPAD_* hooks through launch_var: {offenders:?}"); + } +} + /// Octos profiles supply system prompts server-side, so the client ships an /// empty placeholder. Replaces aichat's `BackendType::system_prompt` (and the /// `splash.md` `include_str!`) which baked huge LLM-shaped diagram preambles @@ -458,7 +530,7 @@ fn refresh_youtube_live_ids() { }; rt.block_on(async { let mut builder = reqwest::Client::builder(); - if let Ok(proxy) = std::env::var("MAKEPAD_OCTOS_PROXY") { + if let Some(proxy) = crate::launch_var("MAKEPAD_OCTOS_PROXY") { let proxy = proxy.trim().to_owned(); if !proxy.is_empty() { if let Ok(p) = reqwest::Proxy::all(&proxy) { @@ -1485,8 +1557,7 @@ fn pin_fullbleed_root_height(body: &str) -> String { let attrs = &body[root_open + 1..attr_end]; // The seed-render harness treats the card as THE SCREEN: a Fill root // means "the design frame", not the chat feed's tall fullbleed canvas. - let pin_h = std::env::var("MAKEPAD_SEED_L0_FILL_HEIGHT") - .ok() + let pin_h = crate::launch_var("MAKEPAD_SEED_L0_FILL_HEIGHT") .and_then(|v| v.parse::().ok()) .unwrap_or(FULLBLEED_FALLBACK_HEIGHT); let fixed = format!("height: {pin_h}"); @@ -5606,7 +5677,7 @@ impl Widget for ChatList { } item_widget.draw_all_unscoped(cx); // LOCAL DEBUG: where did this item actually land? - if std::env::var_os("MAKEPAD_GL_DRAW_TRACE").is_some() { + if crate::launch_flag("MAKEPAD_GL_DRAW_TRACE") { let r = item_widget.area().rect(cx); log::info!( "[CHATLIST] item {item_id} rect pos=({:.1},{:.1}) size=({:.1},{:.1})", @@ -6194,7 +6265,7 @@ impl App { /// silent in M1. W04 follow-up #5 — `/api/version` probe runs /// off-thread so we don't stall the caller. fn connect_transport(&mut self, cx: &mut Cx) { - if std::env::var_os("MAKEPAD_L0_REVIEW").is_some() { return; } + if crate::launch_flag("MAKEPAD_L0_REVIEW") { return; } let transport_config = Self::placeholder_transport_config(); log::info!( "connect transport: base_url={} profile_id={}", @@ -6696,20 +6767,20 @@ impl App { // that embeds this app as a library (`default-features = false`, // no `standalone`) gets neither — nor does a standalone build // launched with `OCTOS_APP_DEVGOAL=0`. An explicit - // `MAKEPAD_DEV_GOAL_FILE` still runs anywhere. + // `MAKEPAD_DEV_GOAL_FILE` still runs anywhere, in a development + // build (`launch_var`). #[cfg(target_os = "android")] - let mission: Option<(String, String)> = match std::env::var("MAKEPAD_DEV_GOAL_FILE") { - Ok(p) => std::fs::read_to_string(&p).ok().map(|g| (g, p)), - Err(_) if Self::bundled_mission_enabled() => { + let mission: Option<(String, String)> = match crate::launch_var("MAKEPAD_DEV_GOAL_FILE") { + Some(p) => std::fs::read_to_string(&p).ok().map(|g| (g, p)), + None if Self::bundled_mission_enabled() => { let p = "/data/data/dev.makepad.octos_app/files/dev_goal.txt".to_owned(); let _ = std::fs::write(&p, BUNDLED_MISSION); Some((BUNDLED_MISSION.to_owned(), p)) } - Err(_) => None, + None => None, }; #[cfg(not(target_os = "android"))] - let mission: Option<(String, String)> = std::env::var("MAKEPAD_DEV_GOAL_FILE") - .ok() + let mission: Option<(String, String)> = crate::launch_var("MAKEPAD_DEV_GOAL_FILE") .and_then(|p| std::fs::read_to_string(&p).ok().map(|g| (g, p))); if let Some((goal, goal_path)) = mission { { @@ -6993,9 +7064,9 @@ impl App { /// live LLM generation can be driven without touching the native composer via /// adb input. Fires once (clears the env var). Session/open and turn/start /// are ordered on the stdio pipe, so submitting right after `clear_chat` is - /// safe. + /// safe. A development build only (`launch_var`). fn fire_auto_prompt(&mut self, cx: &mut Cx) { - if let Ok(p) = std::env::var("MAKEPAD_AUTO_PROMPT") { + if let Some(p) = crate::launch_var("MAKEPAD_AUTO_PROMPT") { std::env::remove_var("MAKEPAD_AUTO_PROMPT"); let p = p.trim().to_string(); if !p.is_empty() { @@ -8279,7 +8350,7 @@ impl MatchEvent for App { target_arch = "wasm32" )))] { - std::env::var_os("MAKEPAD_MOBILE_PREVIEW").is_some() + crate::launch_flag("MAKEPAD_MOBILE_PREVIEW") || modifiers.logo || modifiers.control } }; @@ -8974,13 +9045,18 @@ impl MatchEvent for App { } } + // Launch-time provisioning below is for development builds only + // (`launch_var`): any app on the phone can start this one with these + // extras, so a release build provisions only through the person's + // own QR scan and PIN, or the login screen. + // // Provisioning deploy (non-rooted devices): `makepad.PROVISION_DIR` // (→ env MAKEPAD_PROVISION_DIR) names a world-readable staging dir // (`adb push …/octos-provision`) whose tree is copied into the app's // octos-home BEFORE octos spawns — deploying the GLM profile + a2app // memory tree onto a device that can't be written via su/run-as. #[cfg(target_os = "android")] - if let Ok(src) = std::env::var("MAKEPAD_PROVISION_DIR") { + if let Some(src) = crate::launch_var("MAKEPAD_PROVISION_DIR") { let home = kernel_home(); match deploy_provision(std::path::Path::new(&src), &home) { Ok(n) => log::info!("provision: deployed {n} files from {src}"), @@ -8995,7 +9071,7 @@ impl MatchEvent for App { // BEFORE the boot-auth decision, so a provisioned device lands // straight on the home shell — no LoginScreen typing. A QR-scan // onboarding can feed the same `apply_provision_string` entry later. - if let Ok(prov) = std::env::var("MAKEPAD_APP_CONFIG") { + if let Some(prov) = crate::launch_var("MAKEPAD_APP_CONFIG") { match crate::app::login::apply_provision_string(&prov) { Ok(()) => log::info!("provisioned from launch intent"), Err(e) => log::warn!("provisioning failed: {e}"), @@ -9005,7 +9081,7 @@ impl MatchEvent for App { // payload `{"llm_family":..,"llm_model":..,"llm_key":..}`, the same content // the composer's QR scan yields) writes the provider + key into the octos // profile config BEFORE the kernel spawns below, so the first turn uses it. - if let Ok(cfg) = std::env::var("MAKEPAD_PROVISION_CONFIG") { + if let Some(cfg) = crate::launch_var("MAKEPAD_PROVISION_CONFIG") { match crate::app::login::apply_provision_config_json(&cfg) { Ok(what) => log::info!("provisioned LLM from intent: {what}"), Err(e) => log::warn!("LLM provisioning failed: {e}"), @@ -9017,7 +9093,7 @@ impl MatchEvent for App { // A deployment may explicitly request re-admission after changing the // runtime bundle. Preserve previous receipts before opening any cards. // A stale receipt still fails closed during normal app launches. - if let Ok(migration) = std::env::var("MAKEPAD_REAPPROVE_CARDS") { + if let Some(migration) = crate::launch_var("MAKEPAD_REAPPROVE_CARDS") { std::env::remove_var("MAKEPAD_REAPPROVE_CARDS"); let result = crate::app::login::config_dir() .ok_or_else(|| "card approval directory unavailable".to_owned()) @@ -9076,7 +9152,7 @@ impl MatchEvent for App { // W04 / M2 — make sure the chat_screen / content_screen pair // matches the boot navigation state (defaults to Home → Chat). self.show_screen_for_nav(cx); - if std::env::var_os("MAKEPAD_L0_REVIEW").is_some() { + if crate::launch_flag("MAKEPAD_L0_REVIEW") { // Offline native review uses only the seeded ledger below. } else if authed { // Open the first session immediately so the composer is live. @@ -9090,7 +9166,7 @@ impl MatchEvent for App { // generation. `--es makepad.SEED_CARD_FILE ` surfaces as // MAKEPAD_SEED_CARD_FILE. Push AFTER the boot decision above (clear_chat // wipes CHAT_DATA), then refresh the empty-state + redraw so it shows. - if let Ok(path) = std::env::var("MAKEPAD_SEED_CARD_FILE") { + if let Some(path) = crate::launch_var("MAKEPAD_SEED_CARD_FILE") { match std::fs::read_to_string(&path) { Ok(body) => { let body_trim = body.trim(); @@ -9123,8 +9199,8 @@ impl MatchEvent for App { // source and can re-realize it when a tap arrives. SEED_CARD_FILE above // pushes already-lowered DSL, which is inert by construction: nothing on // device knows what card produced it or what a tap would mean. - if let Ok(card_path) = std::env::var("MAKEPAD_SEED_L0_FILE") { - let data_path = std::env::var("MAKEPAD_SEED_L0_DATA").unwrap_or_default(); + if let Some(card_path) = crate::launch_var("MAKEPAD_SEED_L0_FILE") { + let data_path = crate::launch_var("MAKEPAD_SEED_L0_DATA").unwrap_or_default(); let builtin = card_path.strip_prefix("builtin:"); let card = if let Some(name) = builtin { bundled_l0_source(name) @@ -9171,9 +9247,9 @@ impl MatchEvent for App { // passed these all along and nothing read them, so // every "detail view" capture was silently a capture // of the list. - if let Ok(event) = std::env::var("MAKEPAD_SEED_L0_EVENT") { + if let Some(event) = crate::launch_var("MAKEPAD_SEED_L0_EVENT") { let value = - std::env::var("MAKEPAD_SEED_L0_VALUE").unwrap_or_default(); + crate::launch_var("MAKEPAD_SEED_L0_VALUE").unwrap_or_default(); match app::l0_card::tap(cx, item, "root", &event, &value) { Ok(Some(_)) => { log::info!("SEED_L0 event {event}({value}) applied") @@ -9258,7 +9334,7 @@ impl MatchEvent for App { // by the path a real one does and bumps the same epoch. Nothing in the // language, the kit or the widgets knows the difference — which is the // point: it tests the real chain rather than a parallel one. - if let Some(track_path) = std::env::var("MAKEPAD_FAKE_GPS_FILE").ok().filter(|p| !p.is_empty()) { + if let Some(track_path) = crate::launch_var("MAKEPAD_FAKE_GPS_FILE").filter(|p| !p.is_empty()) { match std::fs::read_to_string(&track_path) { Ok(text) => { let track: Vec<(f64, f64)> = text @@ -9268,8 +9344,7 @@ impl MatchEvent for App { Some((a.trim().parse().ok()?, b.trim().parse().ok()?)) }) .collect(); - let step_ms: u64 = std::env::var("MAKEPAD_FAKE_GPS_MS") - .ok() + let step_ms: u64 = crate::launch_var("MAKEPAD_FAKE_GPS_MS") .and_then(|v| v.parse().ok()) .unwrap_or(1000); log::info!( @@ -9671,7 +9746,7 @@ impl AppMain for App { // phone's shape. Layout is the thing under test, and a card // laid out at 900x700 is a different card — the desktop // default is landscape and the device is not. - if let Ok(spec) = std::env::var("MAKEPAD_WINDOW_SIZE") { + if let Some(spec) = crate::launch_var("MAKEPAD_WINDOW_SIZE") { if let Some((w, h)) = spec.split_once(['x', 'X']) { if let (Ok(w), Ok(h)) = (w.trim().parse::(), h.trim().parse::()) { self.ui.window(cx, ids!(main_window)).resize(cx, dvec2(w, h)); @@ -9707,12 +9782,11 @@ impl AppMain for App { // frames to let the card settle first; sources land asynchronously and // a dump taken too early measures the pending state. if let Event::Draw(_) = event { - if let Ok(path) = std::env::var("MAKEPAD_DUMP_GEOMETRY") { + if let Some(path) = crate::launch_var("MAKEPAD_DUMP_GEOMETRY") { static DRAWS: std::sync::atomic::AtomicU32 = std::sync::atomic::AtomicU32::new(0); let n = DRAWS.fetch_add(1, std::sync::atomic::Ordering::Relaxed) + 1; - let wait: u32 = std::env::var("MAKEPAD_DUMP_GEOMETRY_FRAMES") - .ok() + let wait: u32 = crate::launch_var("MAKEPAD_DUMP_GEOMETRY_FRAMES") .and_then(|v| v.parse().ok()) .unwrap_or(90); if n >= wait { diff --git a/apps/appcard/module/Cargo.toml b/apps/appcard/module/Cargo.toml index 4f4453233..d0f431d89 100644 --- a/apps/appcard/module/Cargo.toml +++ b/apps/appcard/module/Cargo.toml @@ -5,6 +5,11 @@ edition = "2021" license = "Apache-2.0" publish = false +[features] +# A development build: the app reads its launch-time test and provisioning +# hooks (octos-app's `dev_mode`). The shell's `dev-mode` turns it on. +dev-mode = ["octos-app/dev-mode"] + [dependencies] makepad-widgets = { workspace = true, features = ["appcard", "maps"] } makepad-app-module = { workspace = true } diff --git a/crates/ai-host/Cargo.toml b/crates/ai-host/Cargo.toml index 4d7b230eb..a0082436d 100644 --- a/crates/ai-host/Cargo.toml +++ b/crates/ai-host/Cargo.toml @@ -42,6 +42,9 @@ license.workspace = true default = [] octos-core = ["dep:octosense-kernel", "octosense-app-peers/octos-core", "octosense-llm-service?/octos-core"] llm = ["dep:octosense-llm-service"] +# A development build: the kernel then takes launch-time test settings +# (crates/kernel/build.rs `dev_mode`). The shell's `dev-mode` turns it on. +dev-mode = ["octosense-kernel?/dev-mode"] # The system toolbox for app agents (ADR 0002 section 6, ADR 0004 section # 12): `toolbox_peers`, over the octos research engine and the `model` # service's host. diff --git a/crates/kernel/Cargo.toml b/crates/kernel/Cargo.toml index 990493a5c..e39bebac8 100644 --- a/crates/kernel/Cargo.toml +++ b/crates/kernel/Cargo.toml @@ -14,6 +14,11 @@ authors = ["octos-app contributors"] description = "The OctoSense shell's octos kernel: one per process, shared by every consumer over UI Protocol frames" publish = false +[features] +# A development build (build.rs sets `dev_mode`; debug builds are development +# builds without it): only then does an Android kernel take the launch extra +# `makepad.OCTOS_PROXY`. The shells' and AppCard's `dev-mode` turn it on. +dev-mode = [] [dependencies] tokio = { version = "1", features = ["rt-multi-thread", "sync", "io-util", "process", "time", "macros"] } diff --git a/crates/kernel/build.rs b/crates/kernel/build.rs index 2d3c79ff1..ead8c42b2 100644 --- a/crates/kernel/build.rs +++ b/crates/kernel/build.rs @@ -7,10 +7,19 @@ //! it; else `octos-core`, which this crate links). `OCTOSENSE_OCTOS_REVISION` //! at build time overrides it. Empty when neither is found: the desktop then //! refuses a packaged kernel it cannot check (an explicit program still runs). +//! +//! `dev_mode` marks a development build, as the shell's build.rs does: any +//! build with debug assertions, or feature `dev-mode` (a shell's `dev-mode` +//! turns it on). Only then does an Android kernel take the launch extra +//! `makepad.OCTOS_PROXY` (`launch::launch_proxy`). use std::path::Path; fn main() { + println!("cargo:rustc-check-cfg=cfg(dev_mode)"); + if std::env::var_os("CARGO_FEATURE_DEV_MODE").is_some() || std::env::var_os("CARGO_CFG_DEBUG_ASSERTIONS").is_some() { + println!("cargo:rustc-cfg=dev_mode"); + } println!("cargo:rerun-if-env-changed=OCTOSENSE_OCTOS_REVISION"); let lock = Path::new(env!("CARGO_MANIFEST_DIR")).join("../../Cargo.lock"); println!("cargo:rerun-if-changed={}", lock.display()); diff --git a/crates/kernel/src/launch.rs b/crates/kernel/src/launch.rs index d78119918..f18b43972 100644 --- a/crates/kernel/src/launch.rs +++ b/crates/kernel/src/launch.rs @@ -441,18 +441,28 @@ pub(crate) fn phone_stdio(program: PathBuf, core_dir: &Path, extra: &[(String, S env.extend(PHONE_KERNEL_ENV.iter().map(|(k, v)| ((*k).to_owned(), (*v).to_owned()))); // Route the kernel's HTTPS through a proxy when the device has no route // of its own (an `adb reverse` tunnel): launch extra `makepad.OCTOS_PROXY`. - if let Ok(proxy) = std::env::var("MAKEPAD_OCTOS_PROXY") { - let proxy = proxy.trim().to_owned(); - if !proxy.is_empty() { - for k in ["HTTPS_PROXY", "HTTP_PROXY", "https_proxy", "http_proxy", "ALL_PROXY"] { - env.push((k.to_owned(), proxy.clone())); - } + if let Some(proxy) = launch_proxy(cfg!(dev_mode), std::env::var("MAKEPAD_OCTOS_PROXY").ok()) { + for k in ["HTTPS_PROXY", "HTTP_PROXY", "https_proxy", "http_proxy", "ALL_PROXY"] { + env.push((k.to_owned(), proxy.clone())); } } env.extend(extra.iter().cloned()); Launch::Stdio { program, args, env, cwd: Some(home) } } +/// The kernel's proxy from the launch extra `makepad.OCTOS_PROXY` +/// (`MAKEPAD_OCTOS_PROXY`), in a development build only (`dev_mode`: a +/// debug build or feature `dev-mode`, build.rs). Any app on the phone can +/// start Home with that extra, so a release build never routes the kernel's +/// traffic through it. +#[cfg_attr(not(target_os = "android"), allow(dead_code))] +fn launch_proxy(development: bool, value: Option) -> Option { + if !development { + return None; + } + value.map(|proxy| proxy.trim().to_owned()).filter(|proxy| !proxy.is_empty()) +} + /// Make what a start needs: the core dir, the cwd (a missing cwd fails the /// spawn's chdir with ENOENT, permanently, since the kernel would create it), /// on Android the kernel config's memory budget (as AppCard did), the @@ -678,6 +688,15 @@ mod tests { assert_eq!(args, ["serve", "--stdio", "--data-dir", "/f/core"]); } + #[test] + fn only_a_development_build_takes_the_launch_proxy() { + let proxy = Some(" http://127.0.0.1:8899 ".to_owned()); + assert_eq!(launch_proxy(false, proxy.clone()), None, "a release build ignores the launch extra"); + assert_eq!(launch_proxy(true, proxy).as_deref(), Some("http://127.0.0.1:8899")); + assert_eq!(launch_proxy(true, Some(" ".into())), None); + assert_eq!(launch_proxy(true, None), None); + } + #[test] fn kernel_config_is_merged_not_replaced() { let home = tmp("cfg"); diff --git a/crates/shell/Cargo.toml b/crates/shell/Cargo.toml index 5aa65ddfe..2950de5c8 100644 --- a/crates/shell/Cargo.toml +++ b/crates/shell/Cargo.toml @@ -195,8 +195,11 @@ app-aichat = ["dep:makepad-aichat"] # A development build for developer mode (ADR 0004 §13, src/dev_mode.rs): # Settings and OCTOSENSE_DEV_MODE may turn it on. Debug builds are # development builds without it (build.rs); a release build without it -# honours only the `--dev-grant-all` launch flag. -dev-mode = [] +# honours only the `--dev-grant-all` launch flag. Only a development build +# reads launch input: the app config's test actions and demo settings +# (src/launch_input.rs), the kernel's launch proxy and AppCard's +# provisioning and seeding hooks. +dev-mode = ["octosense-ai-host/dev-mode", "octosense-appcard?/dev-mode"] # The `wasm` host service (ADR 0011), which runs an app's own # WebAssembly functions (crates/wasm-host). On in every standard shell # build (tools/native_apps.py's BASE_DEFAULT); it runs where build.rs sets diff --git a/crates/shell/src/apps.rs b/crates/shell/src/apps.rs index 25084ffa1..25030c316 100644 --- a/crates/shell/src/apps.rs +++ b/crates/shell/src/apps.rs @@ -211,7 +211,8 @@ pub(crate) mod test_system_apps { /// app can open: `mail` keeps accounts and passwords for the Mail app; /// `glance` takes the cards apps publish to the glance screen (glance.rs). /// `mail_demo` in MAKEPAD_APP_CONFIG serves a demo mailbox from a file vault -/// instead (no keychain, no network): `MAKEPAD_APP_CONFIG='{"mail_demo":true}'`. +/// instead (no keychain, no network): `MAKEPAD_APP_CONFIG='{"mail_demo":true}'`, +/// in a development build only (`launch_input`). /// `news` fetches News's feeds on a timer, with no model (ADR 0002), into /// the Card runner's host directory, so it keeps fetching while News is /// closed. Last, every system app no service answers gets the notice @@ -229,12 +230,7 @@ pub fn register_mail_services() { static ONCE: std::sync::Once = std::sync::Once::new(); ONCE.call_once(|| { crate::glance::register(); - let demo = std::env::var("MAKEPAD_APP_CONFIG") - .ok() - .and_then(|text| makepad_strict_json::parse(text.as_bytes()).ok()) - .and_then(|config| config.get("mail_demo").and_then(|v| v.as_bool())) - .unwrap_or(false); - if demo { + if crate::launch_input::flag("mail_demo") { octosense_mail_service::register_demo() } else { octosense_mail_service::register() @@ -683,8 +679,9 @@ pub fn matches_running_app(app: &crate::clients::AppDef, running_id: &str, title /// What a launch of `app` opens `module` with. The Card runner opens the app /// the launcher row names — a system app by its `os.*` manifest id, an /// installed one by its own. Any other module opens with what -/// MAKEPAD_APP_CONFIG gives it (`{"module_open": {"": {...}}}`, or -/// `mail_endpoint` for a linked `mail` module), else empty. +/// MAKEPAD_APP_CONFIG gives it in a development build +/// (`{"module_open": {"": {...}}}`, or `mail_endpoint` for a linked +/// `mail` module; `launch_input`), else empty. pub fn module_open(module: &'static dyn AppModule, app: &crate::clients::AppDef) -> Result { let schema = module.open_schema(); if module.id() == "card" { @@ -695,7 +692,7 @@ pub fn module_open(module: &'static dyn AppModule, app: &crate::clients::AppDef) let instance = app.args.iter().find_map(|a| a.strip_prefix("--studio-instance=")).ok_or("Studio launch requires an admitted instance")?; return schema.validate(&format!("{{\"instance_id\":{}}}", makepad_strict_json::Value::Str(instance.into()).to_json()), &[]); } - let config = std::env::var("MAKEPAD_APP_CONFIG").ok().and_then(|text| makepad_strict_json::parse(text.as_bytes()).ok()); + let config = crate::launch_input::app_config(); if let Some(json) = config.as_ref().and_then(|c| c.get("module_open")).and_then(|v| v.get(module.id())).map(|v| v.to_json()) { return schema.validate(&json, &[]); } diff --git a/crates/shell/src/launch_input.rs b/crates/shell/src/launch_input.rs new file mode 100644 index 000000000..cf568335e --- /dev/null +++ b/crates/shell/src/launch_input.rs @@ -0,0 +1,152 @@ +//! Launch input: settings that arrive with a launch, which another app on +//! the device may have chosen. +//! +//! **Who can send it.** Home's main activity is exported: it is the app +//! drawer entry, the Home app, a share target and a deep-link target, so any +//! installed app can start it, with extras. When the activity is created, +//! Makepad's Android glue copies the extras `makepad.` into the +//! environment as `MAKEPAD_` (`APP_CONFIG`, `PROVISION_CONFIG`, +//! `OCTOS_PROXY`, the `SEED_*` hooks and others). On OpenHarmony the entry +//! ability passes the Want's `makepad.*` parameters on in the same way, but +//! only in a development build (`phone/ohos/EntryAbility.ets`). On a desktop +//! these variables come from the local user's own environment, as +//! command-line flags do. +//! +//! **The rule.** OctoSense reads launch input only in a development build +//! (`cfg(dev_mode)`: a debug build, or `--features dev-mode`; never a store +//! build). That covers the app config below (test actions, Mail's demo +//! mailbox, module open parameters), the kernel's launch proxy +//! (`octosense-kernel`) and AppCard's provisioning and seeding hooks +//! (`octos-app`). A release build ignores them, and says so once in the log +//! without echoing the value. `--test-action` flags on a desktop command +//! line are arguments only the local user can pass; they work in every +//! build (`App::run_test_actions` in `lib.rs`). +//! +//! Test builds that need these hooks on a phone are development builds +//! under a separate package name (`rom/scripts/build-home.py --dev-mode`). + +use crate::dev_mode::BuildKind; +use makepad_strict_json::Value; + +/// The app config: one JSON object, +/// `{"test_actions": ["", …], "mail_demo": true, +/// "module_open": {"": {…}}, "mail_endpoint": "…"}`. +pub const APP_CONFIG: &str = "MAKEPAD_APP_CONFIG"; + +/// Whether a build of this kind reads launch input: a development build +/// only. +pub fn honoured(build: BuildKind) -> bool { + build == BuildKind::Development +} + +/// The app config, parsed, when this build reads launch input. A release +/// build answers `None` whatever the variable holds. +pub fn app_config() -> Option { + let text = std::env::var(APP_CONFIG).ok()?; + let build = BuildKind::current(); + if !honoured(build) { + note_ignored(); + } + parse_app_config(build, &text) +} + +/// [`app_config`] for a given build and variable text. +pub fn parse_app_config(build: BuildKind, text: &str) -> Option { + if !honoured(build) { + return None; + } + makepad_strict_json::parse(text.as_bytes()).ok() +} + +/// The app config's `test_actions`, in order, as `--test-action` names; +/// none in a release build. +pub fn test_actions() -> Vec { + app_config().map(|config| test_actions_in(&config)).unwrap_or_default() +} + +/// [`test_actions`] for a given build and variable text. +pub fn test_actions_for(build: BuildKind, text: &str) -> Vec { + parse_app_config(build, text).map(|config| test_actions_in(&config)).unwrap_or_default() +} + +fn test_actions_in(config: &Value) -> Vec { + config + .get("test_actions") + .and_then(|actions| actions.as_arr()) + .map(|actions| actions.iter().filter_map(|action| action.as_str()).map(str::to_owned).collect()) + .unwrap_or_default() +} + +/// The `true`/`false` value `key` has in the app config, when this build +/// reads it. +pub fn flag(key: &str) -> bool { + app_config().and_then(|config| config.get(key).and_then(|value| value.as_bool())).unwrap_or(false) +} + +fn note_ignored() { + static ONCE: std::sync::Once = std::sync::Once::new(); + ONCE.call_once(|| { + makepad_widgets::log!( + "launch input: {APP_CONFIG} ignored; a release build takes no test actions or demo settings from a launch" + ) + }); +} + +#[cfg(test)] +mod tests { + use super::*; + + const CONFIG: &str = r#"{"test_actions":["capture:/sdcard/Download/frame.png","launch-mail","system-chat-send:hello"],"mail_demo":true}"#; + + #[test] + fn a_release_build_ignores_test_actions_from_the_launch() { + for build in [BuildKind::Release, BuildKind::Store] { + assert!(!honoured(build), "{build:?}"); + assert!(test_actions_for(build, CONFIG).is_empty(), "{build:?}"); + assert!(parse_app_config(build, CONFIG).is_none(), "{build:?}"); + } + } + + #[test] + fn a_development_build_keeps_them_in_order() { + assert!(honoured(BuildKind::Development)); + assert_eq!( + test_actions_for(BuildKind::Development, CONFIG), + ["capture:/sdcard/Download/frame.png", "launch-mail", "system-chat-send:hello"] + ); + let config = parse_app_config(BuildKind::Development, CONFIG).expect("parsed"); + assert_eq!(config.get("mail_demo").and_then(|v| v.as_bool()), Some(true)); + } + + #[test] + fn malformed_or_missing_actions_give_none() { + for text in ["", "not json", r#"{"test_actions":"launch-mail"}"#, r#"{"mail_demo":true}"#] { + assert!(test_actions_for(BuildKind::Development, text).is_empty(), "{text:?}"); + } + // Entries that are not strings are skipped, the rest kept. + assert_eq!(test_actions_for(BuildKind::Development, r#"{"test_actions":[1,"launch-news",null]}"#), ["launch-news"]); + } + + /// The shell has one reader of the app config: this module. Anything + /// else reading the variable directly would bypass the build check. + #[test] + fn no_other_shell_source_reads_the_app_config_directly() { + let root = std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("src"); + let mut offenders = Vec::new(); + let mut stack = vec![root.clone()]; + while let Some(dir) = stack.pop() { + for entry in std::fs::read_dir(&dir).expect("read src") { + let path = entry.expect("entry").path(); + if path.is_dir() { + stack.push(path); + } else if path.extension().is_some_and(|e| e == "rs") && !path.ends_with("launch_input.rs") { + let text = std::fs::read_to_string(&path).expect("read source"); + if text.contains("env::var(\"MAKEPAD_APP_CONFIG\"") || text.contains("env::var_os(\"MAKEPAD_APP_CONFIG\"") { + offenders.push(path.strip_prefix(&root).unwrap().display().to_string()); + } + } + } + } + assert!(offenders.is_empty(), "read MAKEPAD_APP_CONFIG through launch_input: {offenders:?}"); + } +} diff --git a/crates/shell/src/lib.rs b/crates/shell/src/lib.rs index 60d5c6263..13b780040 100644 --- a/crates/shell/src/lib.rs +++ b/crates/shell/src/lib.rs @@ -19,6 +19,7 @@ pub mod ai_bus; pub mod app_chat; pub mod app_storage; pub mod dev_mode; +pub mod launch_input; pub mod approvals; pub mod apps; pub mod binds; @@ -5443,17 +5444,14 @@ impl App { /// `--test-action ` fires one WmAction at startup, so every /// binding can be driven from a script even where the host OS keeps a - /// chord for itself. + /// chord for itself. Command-line flags, which only the local user can + /// pass, work in every build. The app config's `test_actions` arrive + /// with a launch that another app may have made (an Android intent + /// extra), so only a development build takes them (`launch_input`). fn run_test_actions(&mut self, cx: &mut Cx) { let mut args: Vec = std::env::args().collect(); - if let Ok(config) = std::env::var("MAKEPAD_APP_CONFIG") { - if let Ok(config) = makepad_strict_json::parse(config.as_bytes()) { - if let Some(actions) = config.get("test_actions").and_then(|v| v.as_arr()) { - for action in actions.iter().filter_map(|v| v.as_str()) { - args.extend(["--test-action".into(), action.into()]); - } - } - } + for action in launch_input::test_actions() { + args.extend(["--test-action".into(), action]); } let mut i = 0; while i < args.len() { diff --git a/phone/ohos/EntryAbility.ets b/phone/ohos/EntryAbility.ets index 29324c2cf..08c84bff4 100644 --- a/phone/ohos/EntryAbility.ets +++ b/phone/ohos/EntryAbility.ets @@ -5,16 +5,25 @@ import { BusinessError } from '@kit.BasicServicesKit'; import makepad from 'libmakepad.so' import {ArkGlue} from '../makepad/makepad' +// Any app can start this exported ability with any parameters, and Makepad +// turns each `makepad.` launch parameter into the environment variables +// MAKEPAD_ and : test hooks, provisioning, a Studio connection, +// or any other variable Home reads. Only a development build passes them on; +// rom/scripts/build-home-ohos.py --dev-mode stages this file with `true`. +const FORWARD_LAUNCH_PARAMETERS: boolean = false; + export default class EntryAbility extends UIAbility { private studioReview: boolean = false; onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { let x = ArkGlue.initInstance(this.context); const parameters: Record = {}; - for (const key of Object.keys(want.parameters ?? {})) { - const value = want.parameters?.[key]; - if (key.startsWith('makepad.') && typeof value === 'string') { - parameters[key] = value; + if (FORWARD_LAUNCH_PARAMETERS) { + for (const key of Object.keys(want.parameters ?? {})) { + const value = want.parameters?.[key]; + if (key.startsWith('makepad.') && typeof value === 'string') { + parameters[key] = value; + } } } x.launchParameters = JSON.stringify(parameters); diff --git a/rom/scripts/build-home-ohos.py b/rom/scripts/build-home-ohos.py index 758eef2ac..93ed1b866 100644 --- a/rom/scripts/build-home-ohos.py +++ b/rom/scripts/build-home-ohos.py @@ -22,6 +22,26 @@ def read_json5(path): return json.loads(token.sub(lambda m: m.group() if m.group().startswith('"') else '', path.read_text())) +# The one line of phone/ohos/EntryAbility.ets that decides whether launch +# parameters reach Makepad's environment. Only a development build turns it on. +FORWARD_LAUNCH_PARAMETERS = 'const FORWARD_LAUNCH_PARAMETERS: boolean = false;' + + +def stage_entry_ability(project, home, dev_mode): + """Copy the product's EntryAbility over the template's. Any app can start + the exported ability with parameters, and Makepad turns each `makepad.*` + one into environment variables, so a release build forwards none; a + development build (`--dev-mode`) forwards them for test hooks.""" + source = (home / 'ohos/EntryAbility.ets').read_text() + if source.count(FORWARD_LAUNCH_PARAMETERS) != 1: + raise RuntimeError('EntryAbility.ets must declare FORWARD_LAUNCH_PARAMETERS false exactly once') + if dev_mode: + source = source.replace(FORWARD_LAUNCH_PARAMETERS, FORWARD_LAUNCH_PARAMETERS.replace('false', 'true')) + target = project / 'entry/src/main/ets/entryability/EntryAbility.ets' + target.parent.mkdir(parents=True, exist_ok=True) + target.write_text(source) + + def stage_app_icons(project, home): """Replace the pinned template's application, ability and launch icons.""" source = home / 'ohos/icons' @@ -44,6 +64,9 @@ def main(): p.add_argument('--packager', required=True, type=Path) p.add_argument('--compatible-sdk', default='6.0.1(21)') p.add_argument('--remote-port', type=int, help='Validation only: app-owned loopback inspection') + p.add_argument('--dev-mode', action='store_true', + help='Development test build: --features dev-mode, and launch parameters reach the app ' + '(test hooks). Needs a separate --bundle-id') p.add_argument('--offline', action='store_true') args = p.parse_args() for name in ('deveco_home', 'signing_config', 'packager'): @@ -52,6 +75,8 @@ def main(): p.error('--remote-port must be between 1024 and 65535') if not re.fullmatch(r'[A-Za-z][A-Za-z0-9_]*(?:\.[A-Za-z][A-Za-z0-9_]*)+', args.bundle_id): p.error('Invalid bundle ID') + if args.dev_mode and args.bundle_id == 'dev.makepad.octosense': + p.error('A --dev-mode build takes launch-time test hooks; give it a separate --bundle-id') if args.signing_config.is_relative_to(ROOT): p.error('Keep signing configuration outside the checkout') configs = json.loads(args.signing_config.read_text()) @@ -84,6 +109,8 @@ def main(): if args.remote_port: env['MAKEPAD_REMOTE'] = str(args.remote_port) cargo_args = ['-p', 'octosense-home', '--release', '--locked'] + if args.dev_mode: + cargo_args += ['--features', 'dev-mode'] if args.offline: cargo_args.append('--offline') command = [str(args.packager), 'makepad', 'ohos', '--deveco-home=' + str(args.deveco_home), '--arch=aarch64'] @@ -95,9 +122,9 @@ def main(): shutil.copytree(REPO / '.sources/makepad/tools/open_harmony/deveco', project, dirs_exist_ok=True) stage_app_icons(project, home) # Product-owned window policy: keep native system navigation visible and - # keep the floating controls inside its safe area. - shutil.copy2(home / 'ohos/EntryAbility.ets', - project / 'entry/src/main/ets/entryability/EntryAbility.ets') + # keep the floating controls inside its safe area. A release build passes + # no launch parameters on. + stage_entry_ability(project, home, args.dev_mode) subprocess.run(['patch', '--batch', '--forward', '-p1', '-i', str(home / 'ohos/keyboard.patch')], cwd=project, check=True) app_path = project / 'AppScope/app.json5' @@ -130,12 +157,13 @@ def main(): build['app']['signingConfigs'] = [] build_path.write_text(json.dumps(build, indent=2) + '\n') hap = project / 'entry/build/default/outputs/default/makepad-default-signed.hap' - output = ROOT / 'out/home' / ('ohos-validation' if args.remote_port else 'ohos') + output = ROOT / 'out/home' / (('ohos-validation' if args.remote_port else 'ohos') + ('-dev' if args.dev_mode else '')) output.mkdir(parents=True, exist_ok=True) shutil.copy2(hap, output / 'OctoSenseHome.hap') receipt = { 'schema_version': 1, 'variant': 'ohos', 'bundle_id': args.bundle_id, 'validation_remote': bool(args.remote_port), + 'dev_mode': args.dev_mode, 'source_revision': subprocess.check_output(['git', 'rev-parse', 'HEAD'], cwd=ROOT, text=True).strip(), 'source_dirty': bool(subprocess.check_output(['git', 'status', '--porcelain'], cwd=ROOT, text=True)), 'packager': str(args.packager), diff --git a/rom/tests/test_home_build.py b/rom/tests/test_home_build.py index 5fd692895..73a9669b6 100644 --- a/rom/tests/test_home_build.py +++ b/rom/tests/test_home_build.py @@ -7,6 +7,7 @@ import json from pathlib import Path import re +import sys import tempfile import unittest from unittest import mock @@ -51,6 +52,37 @@ def test_product_icons_replace_the_template_on_every_build(self): self.assertEqual((entry_media / "unrelated.png").read_bytes(), b"keep") +class OpenHarmonyLaunchParameterTests(unittest.TestCase): + """Any app can start Home's exported ability with parameters, and Makepad + turns each `makepad.*` one into environment variables: only a development + build passes them on.""" + + def test_the_product_ability_forwards_none_by_default(self): + source = (ROOT.parent / "phone/ohos/EntryAbility.ets").read_text() + self.assertEqual(source.count(ohos.FORWARD_LAUNCH_PARAMETERS), 1) + self.assertLess(source.index("if (FORWARD_LAUNCH_PARAMETERS)"), source.index("want.parameters"), + "the parameters are read only behind the switch") + + def test_only_a_dev_mode_build_forwards_them(self): + with tempfile.TemporaryDirectory() as temp: + project = Path(temp) + staged = project / "entry/src/main/ets/entryability/EntryAbility.ets" + ohos.stage_entry_ability(project, ROOT.parent / "phone", False) + self.assertEqual(staged.read_text(), (ROOT.parent / "phone/ohos/EntryAbility.ets").read_text()) + ohos.stage_entry_ability(project, ROOT.parent / "phone", True) + text = staged.read_text() + self.assertIn("const FORWARD_LAUNCH_PARAMETERS: boolean = true;", text) + self.assertNotIn(ohos.FORWARD_LAUNCH_PARAMETERS, text) + + def test_a_dev_mode_build_needs_its_own_bundle_id(self): + argv = ["build-home-ohos.py", "--deveco-home", "/deveco", "--signing-config", "/private/signing.json", + "--packager", "/tools/cargo-makepad", "--dev-mode"] + with mock.patch.object(sys, "argv", argv), contextlib.redirect_stderr(io.StringIO()) as err, \ + self.assertRaises(SystemExit): + ohos.main() + self.assertIn("separate --bundle-id", err.getvalue()) + + class BuildTests(unittest.TestCase): def args(self, *extra): return build.arguments(["--sdk", "/sdk with spaces", "--android-sdk", "/android", *extra]) From 9512485ec65d0c25614348520e5cca1cdbf220c4 Mon Sep 17 00:00:00 2001 From: ymote <151983+ymote@users.noreply.github.com> Date: Sun, 11 Oct 2026 10:00:44 -0700 Subject: [PATCH 2/9] Point launch-time test flows at development builds Docs and scripts that passed `makepad.*` launch extras to release packages now name a development test build: `rom/scripts/build-home.py --dev-mode` under a separate package name on Android, `build-home-ohos.py --dev-mode` on OpenHarmony, `--features dev-mode` for the desktop mail demo, and `DEV_MODE=1` / `--features dev-mode` for AppCard's own tools. `provision-appcard-llm.sh` requires PACKAGE=dev.makepad.octosense.. AGENTS.md states the rule; English and Chinese docs change together. Co-Authored-By: Claude Opus 5.5 --- AGENTS.md | 2 +- apps/AGENTS.md | 5 ++- apps/README.md | 10 +++-- apps/README.zh-CN.md | 8 ++-- apps/appcard/docs/BUILDING-ANDROID.md | 10 ++++- apps/appcard/docs/PROVISIONING-LLM.md | 5 ++- .../docs/WEBVIEW-VIDEO-BLACK-HANDOFF.md | 4 ++ apps/appcard/docs/tools/device-l0-tap.py | 6 ++- apps/appcard/docs/tools/device-l0-test.py | 4 ++ apps/appcard/docs/tools/l0-visual.py | 3 ++ apps/appcard/docs/weather-styles/README.md | 4 +- apps/appcard/tools/build-android.sh | 8 ++++ apps/appcard/tools/octos-macos.py | 4 +- apps/appcard/tools/octos-ohos.py | 5 ++- crates/kernel/README.md | 6 ++- crates/kernel/README.zh-CN.md | 3 +- desktop/README.md | 6 +-- desktop/README.zh-CN.md | 6 +-- desktop/docs/android-appcard-build.md | 12 +++++- desktop/docs/code-walkthrough.md | 7 +++- desktop/docs/code-walkthrough.zh-CN.md | 4 +- desktop/scripts/provision-appcard-llm.sh | 22 ++++++++--- phone/README.md | 38 +++++++++++++++++-- phone/README.zh-CN.md | 27 +++++++++++-- phone/docs/android-appcard-build.md | 12 +++++- .../android/perf-home-swipes-oneplus-6.md | 5 ++- phone/scripts/provision-appcard-llm.sh | 22 ++++++++--- rom/docs/home-build.md | 26 ++++++++++++- tools/connected-e2e/ANDROID-BACKEND.md | 2 +- tools/connected-e2e/ANDROID-BACKEND.zh-CN.md | 2 +- tools/connected-e2e/android-notes.md | 4 ++ tools/connected-e2e/android-notes.zh-CN.md | 4 ++ 32 files changed, 229 insertions(+), 57 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 50e827c5e..50084b38e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -56,7 +56,7 @@ On a machine that already has clones of Makepad, OctoScript or Octoscript-Makepa 4. **One kernel per process.** The kernel service starts octos on the first consumer and shares it; consumers never spawn their own. Apps reach the assistant only through `crates/app-peers`, never through the raw kernel protocol. 5. **System apps ship inside the shells.** Their ids start with `os.`, they are packed by digest from each packaging's `system-apps.json`, and they are not released separately or through the store. 6. **Test UI without taking over the screen.** Run hosted apps and shells with hidden windows and drive them over the local control surface: `MAKEPAD_HIDE_WINDOWS=1 MAKEPAD_REMOTE=` (routes under `/help`; end with `/quit`), or `makepad_test`. Use `--test-action`, `MAKEPAD_WM_TEST_APP` and `--module` to reach a state without clicking. -7. **Devices.** Use only a device you were given for the task. Install test builds under a separate package name; never replace the installed Home or flash an image unless asked. Anything not run on a device is **unverified**, and says so. +7. **Devices.** Use only a device you were given for the task. Install test builds under a separate package name; never replace the installed Home or flash an image unless asked. Anything not run on a device is **unverified**, and says so. Launch-time test hooks (the `test_actions` in the `makepad.APP_CONFIG` intent extra and the other `makepad.*` extras or OpenHarmony launch parameters) work only in a development build (`cfg(dev_mode)`: debug, or `--features dev-mode`; `rom/scripts/build-home.py --dev-mode` builds one as a test package): any app on a phone can start Home with extras, so a release build ignores them. Read such a hook only through `crates/shell/src/launch_input.rs` (AppCard: `launch_var`), never with a bare `std::env::var`. 8. **Commit with a public identity.** Author and committer are your GitHub noreply address (for the maintainer, `ymote <151983+ymote@users.noreply.github.com>`) or another address you mean to publish; never a work or machine-local address. Check `git config user.email` before the first commit in a clone: a repository-local identity on a shared machine leaked a work address into this project's history once, and removing it took a history rewrite. 9. **Keep docs honest and bilingual.** Every command in a doc was run; anything not run is marked **unverified**. User-facing docs are `README.md` plus `README.zh-CN.md`, linked by the single switcher line under the title (`English | [简体中文](README.zh-CN.md)`), and change together. `AGENTS.md` files are English only. 10. **Keep signing keys, keystores, tokens and personal paths out of the repository.** `rom/tests/test_no_local_paths.py` checks for local paths. diff --git a/apps/AGENTS.md b/apps/AGENTS.md index 4d995e4ad..8fcd72ed9 100644 --- a/apps/AGENTS.md +++ b/apps/AGENTS.md @@ -29,8 +29,9 @@ app's own agent and `tools.json`, the system toolbox, `glance.publish` and --system` (add `MAKEPAD_REMOTE=` to drive it over HTTP; Photos also takes `--static photos=`). `--system` lets an `os.*` id and an empty digest through, as the shell does. These flags are on App Hub `main`. - `card-host` registers no host services: run Mail in a shell with - `MAKEPAD_APP_CONFIG='{"mail_demo":true}'`. + `card-host` registers no host services: run Mail in a development build + of a shell (debug, or `--features dev-mode`) with + `MAKEPAD_APP_CONFIG='{"mail_demo":true}'`; a release build ignores it. - Validate on a phone through Home (`phone/`) built as a separate test package; never replace the device's installed Home. - Text on a page follows the host's appearance. On a phone, a page drawn by a diff --git a/apps/README.md b/apps/README.md index 98cb27d3f..a3b47f8d7 100644 --- a/apps/README.md +++ b/apps/README.md @@ -285,7 +285,7 @@ standalone launcher and ROM image). Each packaging: [`crates/shell`](../crates/shell) (its `app-hub` feature; the photo engine's `octosense-photo-service` comes with the desktop-only `craft-engines`, weighed per engine in [ADR 0013](../docs/adr/0013-craft-engines-as-pinned-services.md)), and registers them at startup (`crates/shell/src/apps.rs`, `register_host_services`): Mail with `register()` for real accounts, or `register_demo()` - when the shell's app config has `mail_demo: true`. Mail, News and, with the photo + when the shell's app config has `mail_demo: true` (a development build only). Mail, News and, with the photo engine, Photos install `on_notify` callbacks to the shell's common notice renderer; Calendar installs its card publisher. The shell registers `NoticeService` for remaining system-app namespaces; `llm` with the octos @@ -455,12 +455,14 @@ password `demo`, sample messages, sends that go nowhere): ```sh # the desktop, from the repository root -MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense +MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense --features dev-mode # Home in a phone-sized window, from phone/ -MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense-home --features mobile-only +MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense-home --features mobile-only,dev-mode ``` -The demo keeps its password in a file, so no keychain prompt appears. +The demo keeps its password in a file, so no keychain prompt appears. Only a +development build (debug, or `--features dev-mode`) reads `MAKEPAD_APP_CONFIG`; +both commands are **unverified** since that change. **Quick Deck's dev fixture.** `card-host` has no `deck` service, and the shipped bundle has no fixture code. Quick Deck's UI tests use diff --git a/apps/README.zh-CN.md b/apps/README.zh-CN.md index 2417fc156..6b56426d1 100644 --- a/apps/README.zh-CN.md +++ b/apps/README.zh-CN.md @@ -222,7 +222,7 @@ WebView 页面、图库导出、邮件、新闻、Glance 或单次模型调用 path 依赖;photo 引擎的 `octosense-photo-service` 随仅限桌面的 `craft-engines` 引入, 按引擎权衡见 [ADR 0013](../docs/adr/0013-craft-engines-as-pinned-services.zh-CN.md)),并在启动时注册 (`crates/shell/src/apps.rs` 的 `register_host_services`):Mail 服务在真实账户下用 - `register()`,Shell 的应用配置中 `mail_demo: true` 时用 `register_demo()`。 + `register()`,Shell 的应用配置中 `mail_demo: true` 时(仅限开发版)用 `register_demo()`。 Mail、News 以及(带 photo 引擎时)Photos 安装 `on_notify` 回调,调用 Shell 共用通知渲染器;Calendar 安装卡片发布器。 Shell 为其余系统应用命名空间注册 `NoticeService`;`llm` 服务使用 octos 内核的 core 目录以及 Shell 的二维码扫描器和图片选择器(见 [`llm` 服务](#llm-服务))。App Hub 只在根目录 @@ -374,12 +374,12 @@ card-host --bundle /apps/photos/bundle --system --static photos=<原 ```sh # 桌面端,在仓库根目录 -MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense +MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense --features dev-mode # 手机尺寸窗口中的 Home,在 phone/ 中 -MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense-home --features mobile-only +MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense-home --features mobile-only,dev-mode ``` -演示邮箱的密码存放在文件中,因此不会弹出钥匙串提示。 +演示邮箱的密码存放在文件中,因此不会弹出钥匙串提示。只有开发版(调试构建或 `--features dev-mode`)读取 `MAKEPAD_APP_CONFIG`;这一改动后两条命令均**未验证**。 **Quick Deck 的开发夹具。** `card-host` 没有 `deck` 服务,而随 Shell 发布的 bundle 中没有任何夹具代码。Quick Deck 的 UI 测试使用 bundle 之外的 diff --git a/apps/appcard/docs/BUILDING-ANDROID.md b/apps/appcard/docs/BUILDING-ANDROID.md index b249fffec..bbd20ac6f 100644 --- a/apps/appcard/docs/BUILDING-ANDROID.md +++ b/apps/appcard/docs/BUILDING-ANDROID.md @@ -64,8 +64,14 @@ Then, if you don't already have the NDK, `cargo makepad android install-toolchai tools/build-android.sh # APK only tools/build-android.sh run # APK, install, launch, stream logcat SKIP_KERNEL=1 tools/build-android.sh # reuse the kernel already built +DEV_MODE=1 tools/build-android.sh # a development build (launch-time extras) ``` +Only a development build (`DEV_MODE=1`, i.e. `--features dev-mode`, or a debug +build) reads the launch-time `makepad.*` extras in step 5: any app on the phone +can start this one with extras, so a release build ignores them (`launch_var` +in `app/app/src/lib.rs`). The `DEV_MODE=1` line is **unverified**. + That script is the supported path and it does both halves: it cross-compiles the `octos` submodule for `aarch64-linux-android` and hands the binary to `cargo makepad` as `liboctos.so`. It discovers the NDK under @@ -114,7 +120,7 @@ cargo makepad android build -p octos-app --release ADB=adb # or /mnt/c/.../adb.exe on WSL $ADB install -r app/target/android/makepad-android-apk/octos_app/apk/octos_app.apk -# launch. Extras (all optional): +# launch. Extras (all optional; read only by a development build, DEV_MODE=1): # makepad.OCTOS_PROXY http proxy for the LLM + data fetches (phones w/o direct net) # makepad.APP_CONFIG 'base_url|profile|token' (headless auth provisioning) # makepad.AUTO_PROMPT auto-submit one prompt on boot (for testing) @@ -171,5 +177,5 @@ The per-profile LLM provider + key live in `_main.json` (`config.llm` + to talk to USB phones; the SDK's Linux `adb` can't see them. - Phones without a direct internet route reach out through a host proxy: run an HTTP CONNECT proxy on the host, `adb reverse tcp:8899 tcp:8899`, and pass - `--es makepad.OCTOS_PROXY 'http://127.0.0.1:8899'`. This routes both the LLM + `--es makepad.OCTOS_PROXY 'http://127.0.0.1:8899'` to a development build. This routes both the LLM (`api.z.ai` / provider) and the card data fetches (open-meteo, Yahoo, HN). diff --git a/apps/appcard/docs/PROVISIONING-LLM.md b/apps/appcard/docs/PROVISIONING-LLM.md index 5ccf5551e..38ece54d6 100644 --- a/apps/appcard/docs/PROVISIONING-LLM.md +++ b/apps/appcard/docs/PROVISIONING-LLM.md @@ -50,7 +50,10 @@ names (`octosense_llm_config::registry`). ## Provisioning without the camera (dev / headless) The same JSON payload can be applied via the launch intent (no scanning), which is -how the flow is tested: +how the flow is tested. Any app on the phone can start this one with extras, so +only a development build (`DEV_MODE=1 tools/build-android.sh`, i.e. +`--features dev-mode`) reads it; a release build ignores it and provisions only +through the scan and its PIN: ```bash adb shell am start -S -n dev.makepad.octos_app/.MakepadApp \ --es makepad.PROVISION_CONFIG '{"llm_family":"zai","llm_model":"glm-5.2","llm_key":"sk-XXXX"}' diff --git a/apps/appcard/docs/WEBVIEW-VIDEO-BLACK-HANDOFF.md b/apps/appcard/docs/WEBVIEW-VIDEO-BLACK-HANDOFF.md index 31e0fc221..fb0bef0e1 100644 --- a/apps/appcard/docs/WEBVIEW-VIDEO-BLACK-HANDOFF.md +++ b/apps/appcard/docs/WEBVIEW-VIDEO-BLACK-HANDOFF.md @@ -214,6 +214,10 @@ $ADB -s bf0a4730 forward tcp:9222 localabstract:$(… webview_devtools_remote_

# record a golden (review it by eye first) device-l0-test.py run [case…] # check against goldens; exit 1 on failure +The installed app must be a development build (`DEV_MODE=1 +tools/build-android.sh`): a release build ignores the launch-time +`makepad.SEED_*` extras these tools seed cards with. + Goldens live in docs/tools/golden/. Regenerate deliberately, never to make a failure go away — a golden updated without looking is a test that asserts whatever the code currently does. diff --git a/apps/appcard/docs/tools/l0-visual.py b/apps/appcard/docs/tools/l0-visual.py index ff2c2e8fc..e9e32e3aa 100755 --- a/apps/appcard/docs/tools/l0-visual.py +++ b/apps/appcard/docs/tools/l0-visual.py @@ -8,6 +8,9 @@ l0-visual.py capture all three and report drift l0-visual.py weather just one + +Needs a development build of the app (`DEV_MODE=1 tools/build-android.sh`), +the only kind that reads the launch-time `makepad.SEED_L0_*` extras. """ import importlib.util, subprocess, sys from pathlib import Path diff --git a/apps/appcard/docs/weather-styles/README.md b/apps/appcard/docs/weather-styles/README.md index 893595660..97d87687d 100644 --- a/apps/appcard/docs/weather-styles/README.md +++ b/apps/appcard/docs/weather-styles/README.md @@ -56,5 +56,7 @@ To make the choices live on-device, rebuild + deploy the app memory: 1. Author one `style-.splash` (copy the closest existing one; keep every number a `sys.weather` binding). 2. Verify on device via `--es makepad.SEED_CARD_FILE /data/local/tmp/x.splash` - (raw DSL → auto-wrapped in `runsplash`; no APK rebuild needed). + (raw DSL → auto-wrapped in `runsplash`; no APK rebuild needed once a + development build, `DEV_MODE=1 tools/build-android.sh`, is installed: a + release build ignores launch-time extras). 3. Add a row to the catalog table + a keyword to the selection rule in `app.md`. diff --git a/apps/appcard/tools/build-android.sh b/apps/appcard/tools/build-android.sh index d7d25f853..6a5e9bf8a 100755 --- a/apps/appcard/tools/build-android.sh +++ b/apps/appcard/tools/build-android.sh @@ -17,6 +17,7 @@ # tools/build-android.sh # build the APK # tools/build-android.sh run # build, install and launch # SKIP_KERNEL=1 tools/build-android.sh # reuse an already-built kernel +# DEV_MODE=1 tools/build-android.sh # a development build (launch-time hooks) # set -euo pipefail @@ -96,4 +97,11 @@ cd "$ROOT/app" # Android renders through the Vulkan backend (like the OpenHarmony build): the # map's compact vertex formats only exist there. `MAKEPAD=gles` forces OpenGL. export MAKEPAD="${MAKEPAD:-vulkan}" +# DEV_MODE=1 makes a development build, the only kind that reads the +# launch-time `makepad.*` hooks (provisioning, seeding, the auto prompt; see +# `launch_var` in app/app/src/lib.rs): any app on the phone can start this one +# with extras, so a release build ignores them. +if [[ "${DEV_MODE:-}" == 1 ]]; then + exec "$CARGO_MAKEPAD" makepad android "$ACTION" -p octos-app --release --features dev-mode +fi exec "$CARGO_MAKEPAD" makepad android "$ACTION" -p octos-app --release diff --git a/apps/appcard/tools/octos-macos.py b/apps/appcard/tools/octos-macos.py index fd0cb91ea..ec1d0c7c7 100644 --- a/apps/appcard/tools/octos-macos.py +++ b/apps/appcard/tools/octos-macos.py @@ -92,8 +92,10 @@ def main(): empty_data.write_text('{}\n') env['MAKEPAD_SEED_L0_DATA'] = str(empty_data) if not request.get('skip_build', False): + # A development build: only `dev-mode` reads the MAKEPAD_* hooks set + # above (`launch_var` in app/app/src/lib.rs). subprocess.run(['cargo', 'build', '-p', 'octos-app', '--bin', 'octos-app', - '--release', '--message-format=json'], cwd=root / 'app', env=env, check=True) + '--release', '--features', 'dev-mode', '--message-format=json'], cwd=root / 'app', env=env, check=True) if not Path(env['OCTOS_APP_CORE_BIN']).is_file(): raise SystemExit('Build the current native Octos core before launching this RunItem') evidence = Path(request.get('evidence_dir', '/tmp/octos-macos-generation')) diff --git a/apps/appcard/tools/octos-ohos.py b/apps/appcard/tools/octos-ohos.py index 0e9fa4c59..47dd0e2d8 100644 --- a/apps/appcard/tools/octos-ohos.py +++ b/apps/appcard/tools/octos-ohos.py @@ -56,8 +56,11 @@ def device_run(*args, quiet=False): def build_app(command): log = evidence / f'build-{build}-{command}.log' with log.open('w') as out: + # A development build: the launch parameters below (Studio, + # REAPPROVE_CARDS, AUTO_PROMPT, PROVISION_CONFIG) reach only a + # build with `dev-mode` (`launch_var` in app/app/src/lib.rs). p = subprocess.run([str(tool), 'ohos', '--deveco-home=' + os.environ['DEVECO_HOME'], - command, '-p', 'octos-app', '--release'], + command, '-p', 'octos-app', '--release', '--features', 'dev-mode'], cwd=root / 'app', stdout=out, stderr=subprocess.STDOUT) if p.returncode: raise SystemExit(f'Release build failed; private build log: {log}') diff --git a/crates/kernel/README.md b/crates/kernel/README.md index 757b4ef02..06a3b4127 100644 --- a/crates/kernel/README.md +++ b/crates/kernel/README.md @@ -33,8 +33,10 @@ How it starts, per platform (`src/launch.rs`): - **Android**: `/liboctos.so serve --stdio`, `HOME=` (the octos home), with AppCard's environment - (`OCTOS_SKILLS_PATH`, `OCTOS_OMIT_WORKSPACE_HINT`, `RUST_LOG`, the - `makepad.OCTOS_PROXY` proxy) and the kernel config's memory budget. The APK + (`OCTOS_SKILLS_PATH`, `OCTOS_OMIT_WORKSPACE_HINT`, `RUST_LOG`, and in a + development build only the launch extra `makepad.OCTOS_PROXY` as the proxy: + feature `dev-mode` or a debug build, since any app can start Home with + extras) and the kernel config's memory budget. The APK must bundle the kernel: `MAKEPAD_ANDROID_EXTRA_LIBS=liboctos.so=` (the shells' build scripts do it). - **OpenHarmony**: the canonical core in-process, diff --git a/crates/kernel/README.zh-CN.md b/crates/kernel/README.zh-CN.md index a35ca843a..f405a189e 100644 --- a/crates/kernel/README.zh-CN.md +++ b/crates/kernel/README.zh-CN.md @@ -31,7 +31,8 @@ Shell(`phone/` 中的 Home、`desktop/` 中的桌面)拥有它;**AI provid - **Android**:`/liboctos.so serve --stdio`,`HOME=` (octos home),使用 AppCard 的环境变量(`OCTOS_SKILLS_PATH`、 - `OCTOS_OMIT_WORKSPACE_HINT`、`RUST_LOG`、`makepad.OCTOS_PROXY` 代理)以及内核配置的 + `OCTOS_OMIT_WORKSPACE_HINT`、`RUST_LOG`,以及仅在开发版中作为代理的启动 extra + `makepad.OCTOS_PROXY`:feature `dev-mode` 或调试构建,因为任何应用都能带着 extra 启动 Home)以及内核配置的 内存预算。APK 必须打包内核:`MAKEPAD_ANDROID_EXTRA_LIBS=liboctos.so=` (Shell 的构建脚本会这样做)。 - **OpenHarmony**:在进程内运行标准内核 `octos_cli::embedded::serve_io(, ..)`, diff --git a/desktop/README.md b/desktop/README.md index d91a98ed1..42cedb3b4 100644 --- a/desktop/README.md +++ b/desktop/README.md @@ -124,7 +124,7 @@ App Hub's modules have no process form and always open in-process. | `OCTOSENSE_APP_DATA` | Where App Hub keeps installed apps (default `apps/` in the platform data directory). | | `OCTOSENSE_HUB`, `OCTOSENSE_HUB_ANCHOR` | App Hub catalog origin (path or URL) and trust anchor; default is the App Hub repository's `main`. | | `OCTOSENSE_SYSTEM_APPS` | The system-app selection file; the root `.cargo/config.toml` sets it to `desktop/system-apps.json`. | -| `MAKEPAD_APP_CONFIG='{"mail_demo":true}'` | Serve Mail's demo mailbox (see [Demos](#demos)). | +| `MAKEPAD_APP_CONFIG='{"mail_demo":true}'` | Serve Mail's demo mailbox (see [Demos](#demos)); development builds only (debug, or `--features dev-mode`), like all of `MAKEPAD_APP_CONFIG` ([`launch_input.rs`](../crates/shell/src/launch_input.rs)). | | `OCTOSENSE_MAIL_VAULT=file` | Keep Mail passwords in a 0600 file instead of the macOS keychain. | | `OCTOSENSE_LLM_VAULT=file` | Keep AI providers' keys in the owner-only octos profile instead of the macOS keychain. | | `OCTOS_APP_CORE_BIN`, `OCTOS_APP_CORE_DIR` | The octos kernel binary the shell's kernel service runs, unchecked (unset: the packaged `octos-kernel`, see [Build and run](#build-and-run)) and its core dir (default `~/octos-home/.octos`; the AI providers profile is `

/profiles/_main.json`). | @@ -363,10 +363,10 @@ A card that names no theme takes the shell’s light or dark palette. Toasts and ### Mail without an account ```sh -MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense +MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense --features dev-mode ``` -Open **Mail**, sign in on the host sheet with any address and password `demo`. The demo serves sample messages from a file vault: no network, no keychain. +Open **Mail**, sign in on the host sheet with any address and password `demo`. The demo serves sample messages from a file vault: no network, no keychain. Only a development build reads `MAKEPAD_APP_CONFIG`, hence `--features dev-mode` (**unverified** since that change; a debug `cargo run` works the same way). With a real account on an unsigned development build, macOS asks for keychain access again after every rebuild. For development, keep passwords in a file instead: diff --git a/desktop/README.zh-CN.md b/desktop/README.zh-CN.md index 7a64c2479..6afe92b0a 100644 --- a/desktop/README.zh-CN.md +++ b/desktop/README.zh-CN.md @@ -124,7 +124,7 @@ App Hub 的模块没有进程形态,总是在进程内打开。 | `OCTOSENSE_APP_DATA` | App Hub 保存已安装应用的位置(默认为平台数据目录下的 `apps/`)。 | | `OCTOSENSE_HUB`、`OCTOSENSE_HUB_ANCHOR` | App Hub 目录来源(路径或 URL)和信任锚;默认是 App Hub 仓库的 `main`。 | | `OCTOSENSE_SYSTEM_APPS` | 系统应用选择文件;根目录的 `.cargo/config.toml` 把它设为 `desktop/system-apps.json`。 | -| `MAKEPAD_APP_CONFIG='{"mail_demo":true}'` | 提供邮件的演示邮箱(见[演示](#演示))。 | +| `MAKEPAD_APP_CONFIG='{"mail_demo":true}'` | 提供邮件的演示邮箱(见[演示](#演示));与整个 `MAKEPAD_APP_CONFIG` 一样仅限开发版(调试构建或 `--features dev-mode`,见 [`launch_input.rs`](../crates/shell/src/launch_input.rs))。 | | `OCTOSENSE_MAIL_VAULT=file` | 把邮件密码保存在权限为 0600 的文件中,而不是 macOS 钥匙串。 | | `OCTOSENSE_LLM_VAULT=file` | 把 AI 提供商的密钥保存在仅所有者可读的 octos profile 中,而不是 macOS 钥匙串。 | | `OCTOS_APP_CORE_BIN`、`OCTOS_APP_CORE_DIR` | Shell 内核服务运行的 octos 内核二进制,不做检查(未设置:使用随附的 `octos-kernel`,见[构建与运行](#构建与运行))及其 core 目录(默认 `~/octos-home/.octos`;AI 提供商的 profile 为 `/profiles/_main.json`)。 | @@ -348,10 +348,10 @@ cargo run --release -p octosense --features app-appcard -- --module appcard ### 无账户试用邮件 ```sh -MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense +MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense --features dev-mode ``` -打开 **Mail**,在宿主面板上用任意地址和密码 `demo` 登录。演示模式从文件保险库提供示例邮件:不联网,不用钥匙串。 +打开 **Mail**,在宿主面板上用任意地址和密码 `demo` 登录。演示模式从文件保险库提供示例邮件:不联网,不用钥匙串。只有开发版读取 `MAKEPAD_APP_CONFIG`,所以要加 `--features dev-mode`(这一改动后**未验证**;调试构建的 `cargo run` 效果相同)。 在未签名的开发构建上使用真实账户时,每次重新构建后 macOS 都会再次请求钥匙串访问权限。开发时可以改用文件保存密码: diff --git a/desktop/docs/android-appcard-build.md b/desktop/docs/android-appcard-build.md index 0d277c2b1..1db7c78c5 100644 --- a/desktop/docs/android-appcard-build.md +++ b/desktop/docs/android-appcard-build.md @@ -117,7 +117,15 @@ developer's own `octos serve` is never touched. ## Provisioning the LLM key -The quoting-safe way is `scripts/provision-appcard-llm.sh `: it builds the JSON, ships it through both shells intact, restarts OctoSense with the extra, and waits for the app to log `provisioned LLM`. GLM keys come in two families: `zhipu` for a bigmodel.cn key (OpenAI-style endpoint) and `zai` for a z.ai key (Anthropic-style endpoint); using the wrong one yields HTTP 401 even with a valid key. +In a release build, providers come from **AI providers** (the desktop's QR +code and its PIN, or typed on the host's own sheet). Any app on the phone can +start Home with intent extras, so only a development build that links AppCard +(`--features app-appcard,dev-mode`), installed as its own test package (see +[phone/README.md](../../phone/README.md#build-and-run)), reads the launch-time +provisioning below; a release build ignores it (**unverified** on a device +since that change). + +The quoting-safe way is `PACKAGE=dev.makepad.octosense. scripts/provision-appcard-llm.sh `: it builds the JSON, ships it through both shells intact, restarts that test package with the extra, and waits for the app to log `provisioned LLM`. GLM keys come in two families: `zhipu` for a bigmodel.cn key (OpenAI-style endpoint) and `zai` for a z.ai key (Anthropic-style endpoint); using the wrong one yields HTTP 401 even with a valid key. The kernel needs an LLM profile before a request can run. The buildtool @@ -126,7 +134,7 @@ environment, and the app reads `MAKEPAD_PROVISION_CONFIG` on startup and writes the profile into the kernel's config: ```sh -"$ADB" shell "am start -S -n dev.makepad.octosense/.MakepadApp \ +"$ADB" shell "am start -S -n dev.makepad.octosense./.MakepadApp \ --es makepad.PROVISION_CONFIG '{\"llm_family\":\"zai\",\"llm_model\":\"glm-5.2\",\"llm_key\":\"\"}'" "$ADB" logcat -d -s Makepad | grep -iE 'provision|turn/start|turn FAILED' ``` diff --git a/desktop/docs/code-walkthrough.md b/desktop/docs/code-walkthrough.md index 9bacd7ce3..a1ceffb0a 100644 --- a/desktop/docs/code-walkthrough.md +++ b/desktop/docs/code-walkthrough.md @@ -105,10 +105,13 @@ require the full shell. For example, run Mail's demo service from the OctoSense root: ```sh -MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --locked --release -p octosense +MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --locked --release -p octosense --features dev-mode ``` -The demo account uses password `demo`; sends stay in the demo. Develop new store +The demo account uses password `demo`; sends stay in the demo. Only a +development build reads `MAKEPAD_APP_CONFIG` (`crates/shell/src/launch_input.rs`: +on a phone it arrives as an intent extra any app can set), hence +`--features dev-mode` (**unverified** since that change). Develop new store apps in OctoSense App Flow (formerly Design Flow) and use App Hub's admission/publishing flow. The [local-catalog recipe](../README.md#try-your-own-app-before-it-is-published) tests installation into the shell before publication. diff --git a/desktop/docs/code-walkthrough.zh-CN.md b/desktop/docs/code-walkthrough.zh-CN.md index 2054bb91b..e66bcd10e 100644 --- a/desktop/docs/code-walkthrough.zh-CN.md +++ b/desktop/docs/code-walkthrough.zh-CN.md @@ -89,10 +89,10 @@ cargo run --locked --release -p octosense-card-host --bin card-host -- --bundle 例如,在 OctoSense 根目录运行 Mail 的演示服务: ```sh -MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --locked --release -p octosense +MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --locked --release -p octosense --features dev-mode ``` -演示账户密码为 `demo`,发送留在演示环境。新商店应用在 OctoSense App Flow(原 Design Flow)中开发,使用 App Hub 的准入/发布流程。[本地签名目录配方](../README.zh-CN.md#发布前试用自己的应用)用于在发布前测试应用能否安装到 Shell。 +演示账户密码为 `demo`,发送留在演示环境。只有开发版读取 `MAKEPAD_APP_CONFIG`(`crates/shell/src/launch_input.rs`:在手机上它以任何应用都能设置的 intent extra 形式到达),所以要加 `--features dev-mode`(这一改动后**未验证**)。新商店应用在 OctoSense App Flow(原 Design Flow)中开发,使用 App Hub 的准入/发布流程。[本地签名目录配方](../README.zh-CN.md#发布前试用自己的应用)用于在发布前测试应用能否安装到 Shell。 [`desktop/system-apps.json`](../system-apps.json) 和 [`phone/system-apps.json`](../../phone/system-apps.json) 选择 `apps/` 中的 bundle。 diff --git a/desktop/scripts/provision-appcard-llm.sh b/desktop/scripts/provision-appcard-llm.sh index f50e28f84..36fe87dbe 100755 --- a/desktop/scripts/provision-appcard-llm.sh +++ b/desktop/scripts/provision-appcard-llm.sh @@ -1,11 +1,23 @@ #!/usr/bin/env bash -# Provision the LLM for AppCard inside OctoSense on the connected Android phone. -# provision-appcard-llm.sh +# Provision the LLM for AppCard inside a development test build of OctoSense +# Home on the connected Android phone. +# PACKAGE=dev.makepad.octosense. provision-appcard-llm.sh # family: zhipu (bigmodel.cn key) | zai (z.ai key) | deepseek | openai | anthropic | ... # The key goes only to the phone (launch-intent extra); it is not logged here. +# Any app can start Home with extras, so a release Home ignores launch-time +# provisioning: PACKAGE must be a development build that links AppCard +# (`--features app-appcard,dev-mode`), installed as its own test package. A +# release build takes providers from AI providers (QR code and PIN) instead. set -euo pipefail -[ $# -eq 3 ] || { echo "usage: $0 " >&2; exit 2; } +[ $# -eq 3 ] || { echo "usage: PACKAGE=dev.makepad.octosense. $0 " >&2; exit 2; } family=$1 model=$2 key=$3 +package=${PACKAGE:-} +case "$package" in + *[!a-z0-9_.]*|dev.makepad.octosense.bridge|dev.makepad.octosense.quickstep|dev.makepad.octosense.agent) package= ;; + dev.makepad.octosense.?*) ;; + *) package= ;; +esac +[ -n "$package" ] || { echo "set PACKAGE to the development test package (dev.makepad.octosense.), never the installed Home" >&2; exit 2; } ADB=${ADB:-$(command -v adb || true)} [ -n "$ADB" ] || { echo "adb not found; set ADB=/path/to/adb (cargo-makepad installs one under tools/cargo_makepad/android_*/platform-tools)" >&2; exit 1; } [ -x "$ADB" ] || { echo "adb not found; set ADB=/path/to/adb" >&2; exit 1; } @@ -14,8 +26,8 @@ ADB=${ADB:-$(command -v adb || true)} json=$(python3 -c 'import json,sys; print(json.dumps({"llm_family":sys.argv[1],"llm_model":sys.argv[2],"llm_key":sys.argv[3]}))' "$family" "$model" "$key") esc=${json//\"/\\\"} "$ADB" logcat -c >/dev/null 2>&1 || true -"$ADB" shell "am start -S -n dev.makepad.octosense/.MakepadApp --es makepad.PROVISION_CONFIG '$esc'" >/dev/null -echo "launched OctoSense with provisioning extra; open the AppCard tile now (waiting up to 40 s for the app to record it)…" +"$ADB" shell "am start -S -n $package/.MakepadApp --es makepad.PROVISION_CONFIG '$esc'" >/dev/null +echo "launched $package with provisioning extra; open the AppCard tile now (waiting up to 40 s for the app to record it)…" for i in $(seq 1 40); do line=$("$ADB" logcat -d -s Makepad 2>/dev/null | grep -E 'provisioned LLM|LLM provisioning failed' | tail -1 || true) [ -n "$line" ] && break; sleep 1 diff --git a/phone/README.md b/phone/README.md index f2351aad8..8840a07e9 100644 --- a/phone/README.md +++ b/phone/README.md @@ -56,7 +56,7 @@ cargo run --release -p octosense-home --features mobile-only | `-- --module ` | Host a linked module in-process instead of as a child process | | `-- --test-action ` | Fire a shell action at startup (see [Run on a desktop](#run-on-a-desktop)) | | `MAKEPAD_WM_TEST_APP=[:]` | Launch an app (count times) once the shell is up | -| `MAKEPAD_APP_CONFIG='{"mail_demo":true}'` | Serve Mail from a demo mailbox (password `demo`) | +| `MAKEPAD_APP_CONFIG='{"mail_demo":true}'` | Serve Mail from a demo mailbox (password `demo`); development builds only (debug, or `--features dev-mode`) | | `OCTOSENSE_HOME=` | Keep state somewhere other than `~/.octosense` | **Android APK.** `rom/scripts/build-home.sh` (a wrapper for @@ -112,6 +112,33 @@ this setting and silently omit Android Back handling and other platform integration in a custom package. After installing a test build, open News or Photos and verify that an edge Back swipe returns to OctoSense Home. +**Launch-time test hooks.** Any app on the phone can start Home with intent +extras, so a release Home ignores the `makepad.*` test and provisioning +extras: the `test_actions` and demo settings in `makepad.APP_CONFIG`, +AppCard's `makepad.PROVISION_CONFIG` and seeding hooks, and the kernel's +`makepad.OCTOS_PROXY`. Only a development build (a debug build, or +`--features dev-mode`) reads them ([`launch_input.rs`](../crates/shell/src/launch_input.rs)). +`--dev-mode` (above) builds one. Give it a test `--package-name` and install +only its Home APK (**unverified** on a device): + +```sh +rom/scripts/build-home.sh --variant standalone --development --dev-mode \ + --package-name dev.makepad.octosense.devtest \ + --sdk /path/to/makepad-android \ + --android-sdk /path/to/android-sdk \ + --gradle-home /path/to/gradle-8.11.1 \ + --java-home /path/to/full-jdk \ + --packager .sources/makepad/target/release/cargo-makepad +adb install rom/out/home/standalone-dev-mode/dev.makepad.octosense.devtest/OctoSenseHome.apk +adb shell am start -n dev.makepad.octosense.devtest/.MakepadApp \ + --es makepad.APP_CONFIG '{"test_actions":["launch-mail"]}' +``` + +On OpenHarmony, `rom/scripts/build-home-ohos.py --dev-mode` does the same +with a separate `--bundle-id`; a release Home's entry ability passes no +launch parameters on. Desktop `--test-action` flags are command-line +arguments, which only the local user can pass, and work in every build. + **OpenHarmony:** `python3 rom/scripts/build-home-ohos.py --deveco-home ... --packager ... --signing-config ...` builds a normal OpenHarmony app with an existing DevEco signing profile @@ -284,11 +311,14 @@ never holds a socket or a password. For a demo mailbox (password `demo`): ```sh # desktop, from phone/ -MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense-home --features mobile-only -# phone -adb shell am start -n /.MakepadApp --es makepad.APP_CONFIG '{"mail_demo":true}' +MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense-home --features mobile-only,dev-mode +# phone: a development test package (see Launch-time test hooks) +adb shell am start -n /.MakepadApp --es makepad.APP_CONFIG '{"mail_demo":true}' ``` +A release build ignores `mail_demo` (both commands are **unverified** since +that change). + The earlier native News, Photos and Maps modules are deleted (native-apps ADR 0004 §1, [#113](https://github.com/OctoSense-org/OctoSense/pull/113)); none of the system apps has a native module any more. diff --git a/phone/README.zh-CN.md b/phone/README.zh-CN.md index 2f6173ea7..12a6dac15 100644 --- a/phone/README.zh-CN.md +++ b/phone/README.zh-CN.md @@ -31,7 +31,7 @@ cargo run --release -p octosense-home --features mobile-only | `-- --module ` | 在进程内托管已链接的模块,而不是作为子进程 | | `-- --test-action ` | 启动时触发一个 Shell 动作(见[在桌面电脑上运行](#在桌面电脑上运行)) | | `MAKEPAD_WM_TEST_APP=[:]` | Shell 启动后打开某个应用(可指定次数) | -| `MAKEPAD_APP_CONFIG='{"mail_demo":true}'` | 用演示邮箱提供 Mail(密码为 `demo`) | +| `MAKEPAD_APP_CONFIG='{"mail_demo":true}'` | 用演示邮箱提供 Mail(密码为 `demo`);仅限开发版(调试构建或 `--features dev-mode`) | | `OCTOSENSE_HOME=` | 把状态数据保存在 `~/.octosense` 以外的位置 | **Android APK。** `rom/scripts/build-home.sh`(`build-home.py` 的包装脚本)构建 Home APK 及其 System Bridge APK,一起签名,把 octos 内核作为 `liboctos.so` 打包进去,并写出 `OctoSenseHome.apk`、`OctoSenseBridge.apk` 和一份 `build.json` 回执。它从不安装或刷机。在仓库根目录构建一对使用 Makepad 开发密钥签名的独立开发版: @@ -61,6 +61,23 @@ Home 默认使用 `dev.makepad.octosense`。要在已安装的应用旁构建测 平台集成功能。安装测试版后,打开 News 或 Photos,检查从屏幕边缘向内滑动返回 是否回到 OctoSense Home。 +**启动时的测试钩子。** 手机上的任何应用都能带着 intent extra 启动 Home,因此发布版 Home 会忽略 `makepad.*` 测试和配置 extra:`makepad.APP_CONFIG` 中的 `test_actions` 和演示设置、AppCard 的 `makepad.PROVISION_CONFIG` 和预置卡片钩子,以及内核的 `makepad.OCTOS_PROXY`。只有开发版(调试构建,或使用 `--features dev-mode`)才读取它们([`launch_input.rs`](../crates/shell/src/launch_input.rs))。`--dev-mode`(见上文)构建开发版:请为它指定测试用的 `--package-name`,并且只安装其中的 Home APK(**未在设备上验证**): + +```sh +rom/scripts/build-home.sh --variant standalone --development --dev-mode \ + --package-name dev.makepad.octosense.devtest \ + --sdk /path/to/makepad-android \ + --android-sdk /path/to/android-sdk \ + --gradle-home /path/to/gradle-8.11.1 \ + --java-home /path/to/full-jdk \ + --packager .sources/makepad/target/release/cargo-makepad +adb install rom/out/home/standalone-dev-mode/dev.makepad.octosense.devtest/OctoSenseHome.apk +adb shell am start -n dev.makepad.octosense.devtest/.MakepadApp \ + --es makepad.APP_CONFIG '{"test_actions":["launch-mail"]}' +``` + +在 OpenHarmony 上,`rom/scripts/build-home-ohos.py --dev-mode` 以另一个 `--bundle-id` 做同样的事;发布版 Home 的入口 ability 不转发任何启动参数。桌面上的 `--test-action` 是命令行参数,只有本机用户能传入,所有构建都支持。 + **OpenHarmony:** `python3 rom/scripts/build-home-ohos.py --deveco-home ... --packager ... --signing-config ...` 使用现有的 DevEco 签名配置构建普通的 OpenHarmony 应用([rom/docs/home-build.md(英文)](../rom/docs/home-build.md#openharmony-home))。**iOS 模拟器:** 在 `phone/` 中运行 `../.sources/makepad/target/release/cargo-makepad makepad apple ios --org=dev.makepad --app=octosense run-sim -p octosense-home --features mobile-only`。两者都不在 CI 中构建。 ## 应用图标 @@ -191,11 +208,13 @@ Mail 通过 `mail` 宿主服务([`apps/mail/host-service`](../apps/mail/host-s ```sh # desktop, from phone/ -MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense-home --features mobile-only -# phone -adb shell am start -n /.MakepadApp --es makepad.APP_CONFIG '{"mail_demo":true}' +MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense-home --features mobile-only,dev-mode +# 手机:开发版测试包(见“启动时的测试钩子”) +adb shell am start -n /.MakepadApp --es makepad.APP_CONFIG '{"mail_demo":true}' ``` +发布版会忽略 `mail_demo`(这一改动后两条命令均**未验证**)。 + 早期的原生 News、Photos 和 Maps 模块已删除(原生应用 ADR 0004 §1,[#113](https://github.com/OctoSense-org/OctoSense/pull/113));所有系统应用都不再有原生模块。 ### octos 内核 diff --git a/phone/docs/android-appcard-build.md b/phone/docs/android-appcard-build.md index 5a9aae224..998ebdb72 100644 --- a/phone/docs/android-appcard-build.md +++ b/phone/docs/android-appcard-build.md @@ -174,7 +174,15 @@ declined that finger by the time the tile sees it. ## Provisioning the LLM key -The quoting-safe way is `scripts/provision-appcard-llm.sh `: it builds the JSON, ships it through both shells intact, restarts OctoSense with the extra, and waits for the app to log `provisioned LLM`. GLM keys come in two families: `zhipu` for a bigmodel.cn key (OpenAI-style endpoint) and `zai` for a z.ai key (Anthropic-style endpoint); using the wrong one yields HTTP 401 even with a valid key. +In a release build, providers come from **AI providers** (the desktop's QR +code and its PIN, or typed on the host's own sheet). Any app on the phone can +start Home with intent extras, so only a development build that links AppCard +(`--features app-appcard,dev-mode`), installed as its own test package (see +[phone/README.md](../../phone/README.md#build-and-run)), reads the launch-time +provisioning below; a release build ignores it (**unverified** on a device +since that change). + +The quoting-safe way is `PACKAGE=dev.makepad.octosense. scripts/provision-appcard-llm.sh `: it builds the JSON, ships it through both shells intact, restarts that test package with the extra, and waits for the app to log `provisioned LLM`. GLM keys come in two families: `zhipu` for a bigmodel.cn key (OpenAI-style endpoint) and `zai` for a z.ai key (Anthropic-style endpoint); using the wrong one yields HTTP 401 even with a valid key. The kernel needs an LLM profile before a request can run. The buildtool @@ -183,7 +191,7 @@ environment, and the app reads `MAKEPAD_PROVISION_CONFIG` on startup and writes the profile into the kernel's config: ```sh -"$ADB" shell "am start -S -n dev.makepad.octosense/.MakepadApp \ +"$ADB" shell "am start -S -n dev.makepad.octosense./.MakepadApp \ --es makepad.PROVISION_CONFIG '{\"llm_family\":\"zai\",\"llm_model\":\"glm-5.2\",\"llm_key\":\"\"}'" "$ADB" logcat -d -s Makepad | grep -iE 'provision|turn/start|turn FAILED' ``` diff --git a/phone/docs/android/perf-home-swipes-oneplus-6.md b/phone/docs/android/perf-home-swipes-oneplus-6.md index 9fc009839..7ce5971dd 100644 --- a/phone/docs/android/perf-home-swipes-oneplus-6.md +++ b/phone/docs/android/perf-home-swipes-oneplus-6.md @@ -29,7 +29,10 @@ scripts can still incur their loading cost. ## Measurement method Use Makepad's `Cx::perf_monitor` and `PerfGraph` for diagnosis, enabled by -`makepad.APP_CONFIG='{"test_actions":["perf:on"]}'`. The retained diagnostic +`makepad.APP_CONFIG='{"test_actions":["perf:on"]}'`. Launch-time test actions +run only in a development build (`--features dev-mode`) installed as a +separate test package (`rom/scripts/build-home.py --dev-mode`); a release Home +ignores them. The retained diagnostic log separates `home`, `event`, `draw`, and `wait` costs. Whole-session monitor FPS includes deliberate idle periods and is not the swipe FPS. diff --git a/phone/scripts/provision-appcard-llm.sh b/phone/scripts/provision-appcard-llm.sh index f50e28f84..36fe87dbe 100755 --- a/phone/scripts/provision-appcard-llm.sh +++ b/phone/scripts/provision-appcard-llm.sh @@ -1,11 +1,23 @@ #!/usr/bin/env bash -# Provision the LLM for AppCard inside OctoSense on the connected Android phone. -# provision-appcard-llm.sh +# Provision the LLM for AppCard inside a development test build of OctoSense +# Home on the connected Android phone. +# PACKAGE=dev.makepad.octosense. provision-appcard-llm.sh # family: zhipu (bigmodel.cn key) | zai (z.ai key) | deepseek | openai | anthropic | ... # The key goes only to the phone (launch-intent extra); it is not logged here. +# Any app can start Home with extras, so a release Home ignores launch-time +# provisioning: PACKAGE must be a development build that links AppCard +# (`--features app-appcard,dev-mode`), installed as its own test package. A +# release build takes providers from AI providers (QR code and PIN) instead. set -euo pipefail -[ $# -eq 3 ] || { echo "usage: $0 " >&2; exit 2; } +[ $# -eq 3 ] || { echo "usage: PACKAGE=dev.makepad.octosense. $0 " >&2; exit 2; } family=$1 model=$2 key=$3 +package=${PACKAGE:-} +case "$package" in + *[!a-z0-9_.]*|dev.makepad.octosense.bridge|dev.makepad.octosense.quickstep|dev.makepad.octosense.agent) package= ;; + dev.makepad.octosense.?*) ;; + *) package= ;; +esac +[ -n "$package" ] || { echo "set PACKAGE to the development test package (dev.makepad.octosense.), never the installed Home" >&2; exit 2; } ADB=${ADB:-$(command -v adb || true)} [ -n "$ADB" ] || { echo "adb not found; set ADB=/path/to/adb (cargo-makepad installs one under tools/cargo_makepad/android_*/platform-tools)" >&2; exit 1; } [ -x "$ADB" ] || { echo "adb not found; set ADB=/path/to/adb" >&2; exit 1; } @@ -14,8 +26,8 @@ ADB=${ADB:-$(command -v adb || true)} json=$(python3 -c 'import json,sys; print(json.dumps({"llm_family":sys.argv[1],"llm_model":sys.argv[2],"llm_key":sys.argv[3]}))' "$family" "$model" "$key") esc=${json//\"/\\\"} "$ADB" logcat -c >/dev/null 2>&1 || true -"$ADB" shell "am start -S -n dev.makepad.octosense/.MakepadApp --es makepad.PROVISION_CONFIG '$esc'" >/dev/null -echo "launched OctoSense with provisioning extra; open the AppCard tile now (waiting up to 40 s for the app to record it)…" +"$ADB" shell "am start -S -n $package/.MakepadApp --es makepad.PROVISION_CONFIG '$esc'" >/dev/null +echo "launched $package with provisioning extra; open the AppCard tile now (waiting up to 40 s for the app to record it)…" for i in $(seq 1 40); do line=$("$ADB" logcat -d -s Makepad 2>/dev/null | grep -E 'provisioned LLM|LLM provisioning failed' | tail -1 || true) [ -n "$line" ] && break; sleep 1 diff --git a/rom/docs/home-build.md b/rom/docs/home-build.md index 51c6c775f..e918bc624 100644 --- a/rom/docs/home-build.md +++ b/rom/docs/home-build.md @@ -88,6 +88,24 @@ For a standalone release, replace `--development` with `--sign-key` and `--sign-cert` pointing to the existing application signer outside the checkout. Do not use the ROM platform key for ordinary distribution. +Launch-time test hooks (the `test_actions` and demo settings in the +`makepad.APP_CONFIG` intent extra, AppCard's provisioning and seeding extras, +the kernel's `makepad.OCTOS_PROXY`) work only in a development build: any app +on the phone can start Home with extras, so a release Home ignores them +(`crates/shell/src/launch_input.rs`). `--dev-mode` compiles that feature (see +"Developer options and a separate test Home" below for its rules); give it a +test `--package-name` so it installs beside the real Home. The plan is unit +tested; the build and a device run are **unverified**: + +```sh +rom/scripts/build-home.sh --variant standalone --development --dev-mode \ + --package-name dev.makepad.octosense.devtest \ + --sdk /path/to/makepad-android \ + --android-sdk /path/to/android-sdk \ + --gradle-home /path/to/gradle-8.11.1 \ + --java-home /path/to/full-jdk +``` + ROM Home and Bridge, signed with the existing ROM platform identity: ```sh @@ -261,5 +279,11 @@ pill; those gestures remain available to the host OS. Home paging and the central pull for the app library still work inside the content area. Artifacts and source/hash receipts go to `out/home/ohos/`. The optional `--remote-port` enables app-owned loopback inspection for validation and writes -to `out/home/ohos-validation/`; omit it for the normal package. Existing warnings +to `out/home/ohos-validation/`; omit it for the normal package. +The staged entry ability passes no launch parameters on: any app can start the +exported ability with parameters, and Makepad would turn each `makepad.*` one +into environment variables. `--dev-mode` builds a development HAP instead +(`--features dev-mode`, launch parameters passed on for test hooks) and writes +to a directory ending in `-dev`; it needs a `--bundle-id` other than +`dev.makepad.octosense` (**unverified**: no HAP was built). Existing warnings remain. Android device acceptance still requires an ordinary Android phone. diff --git a/tools/connected-e2e/ANDROID-BACKEND.md b/tools/connected-e2e/ANDROID-BACKEND.md index 5d9ffc257..edb827874 100644 --- a/tools/connected-e2e/ANDROID-BACKEND.md +++ b/tools/connected-e2e/ANDROID-BACKEND.md @@ -23,7 +23,7 @@ python3 tools/connected-e2e/android_backend_lab.py deploy \ --registrations "$LAB/prepared/backend-registrations.json" ``` -`JAVA_HOME` must point to the existing JDK for `apksigner`. For multiple attached devices, supply the assigned `--serial` to deploy; never publish it. Deployment refuses an already installed package. It transfers only the fresh signed fixture profile, configures one ADB loopback reverse, and passes the one-shot `makepad.APP_CONFIG` Intent extra. Android intentionally ignores a startup environment-only app config. A fresh suffix can be used consistently at APK build, packaging and deployment. +`JAVA_HOME` must point to the existing JDK for `apksigner`. For multiple attached devices, supply the assigned `--serial` to deploy; never publish it. Deployment refuses an already installed package. It transfers only the fresh signed fixture profile, configures one ADB loopback reverse, and passes the one-shot `makepad.APP_CONFIG` Intent extra. Android intentionally ignores a startup environment-only app config. Its `test_actions` run only because step 1 builds a development build (`--features dev-mode`): a release Home ignores launch-time test actions, since any app can start it with extras (`crates/shell/src/launch_input.rs`). A fresh suffix can be used consistently at APK build, packaging and deployment. The tracked `backend-login/glance.splash` is embedded by the preparation helper. Its publication is subject to the normal app's Glance grant. This source is test artwork and fixture UI, not a production listing. diff --git a/tools/connected-e2e/ANDROID-BACKEND.zh-CN.md b/tools/connected-e2e/ANDROID-BACKEND.zh-CN.md index 4a1924156..dcdc9c40c 100644 --- a/tools/connected-e2e/ANDROID-BACKEND.zh-CN.md +++ b/tools/connected-e2e/ANDROID-BACKEND.zh-CN.md @@ -10,7 +10,7 @@ 2. 在单独终端运行 `python3 tools/backend-login-fixture.py --directory "$LAB/server"` 并保持运行。metadata 只有本地公开端点;不要整体发布运行目录。 3. 按英文页的三个命令运行 `android_backend_lab.py prepare`、`android_backend.py` 和 `android_backend_lab.py deploy`。准备过程通过普通签名目录/安装校验,包含两个固定测试应用 ID。设置已有 JDK 的 `JAVA_HOME` 供 apksigner 使用;多设备时只选择指定的 `--serial`,不得公开设备编号。 -部署拒绝已存在的包,只传输新建的已签名测试目录,建立一个 ADB loopback reverse,并通过一次性 `makepad.APP_CONFIG` Intent extra 启动。Android 会清除只有环境变量的 app config,因此不能省略 Intent。需要新后缀时,APK 构建、封装和部署必须使用同一包名。准备脚本会嵌入已跟踪的 `backend-login/glance.splash`,发布仍经过普通应用 Glance 权限校验。测试插图和界面不是生产应用素材。 +部署拒绝已存在的包,只传输新建的已签名测试目录,建立一个 ADB loopback reverse,并通过一次性 `makepad.APP_CONFIG` Intent extra 启动。Android 会清除只有环境变量的 app config,因此不能省略 Intent。其中的 `test_actions` 之所以会执行,是因为第 1 步构建的是开发版(`--features dev-mode`):任何应用都能带着 extra 启动 Home,所以发布版 Home 会忽略启动时的测试动作(`crates/shell/src/launch_input.rs`)。需要新后缀时,APK 构建、封装和部署必须使用同一包名。准备脚本会嵌入已跟踪的 `backend-login/glance.splash`,发布仍经过普通应用 Glance 权限校验。测试插图和界面不是生产应用素材。 实际手机操作,不重放结果未知的输入: diff --git a/tools/connected-e2e/android-notes.md b/tools/connected-e2e/android-notes.md index 5b59f4cbe..ee3e786a0 100644 --- a/tools/connected-e2e/android-notes.md +++ b/tools/connected-e2e/android-notes.md @@ -73,6 +73,10 @@ the test package's `files/apps` using `run-as`, and launch `.MakepadApp` with th {"test_actions":["launch-hub:org.octosense.samples.githubnotes"]} ``` +The test action runs because the package above is a development build +(`--features dev-mode`); a release Home ignores launch-time test actions, +since any app can start it with extras (`crates/shell/src/launch_input.rs`). + Never install over the regular Home package or transfer an existing personal profile. The pinned Makepad remote implementation is a no-op on Android; `MAKEPAD_REMOTE` and ADB port forwarding do not enable it. Phone verification diff --git a/tools/connected-e2e/android-notes.zh-CN.md b/tools/connected-e2e/android-notes.zh-CN.md index d01a7d57a..763407d27 100644 --- a/tools/connected-e2e/android-notes.zh-CN.md +++ b/tools/connected-e2e/android-notes.zh-CN.md @@ -64,6 +64,10 @@ python3 tools/connected-e2e/android_notes.py \ {"test_actions":["launch-hub:org.octosense.samples.githubnotes"]} ``` +测试动作之所以会执行,是因为上面的测试包是开发版(`--features dev-mode`);任何应用 +都能带着 extra 启动 Home,所以发布版 Home 会忽略启动时的测试动作 +(`crates/shell/src/launch_input.rs`)。 + 不能覆盖日常 Home 或传输个人配置。固定版本的 Makepad remote 在 Android 是空实现, 设置 `MAKEPAD_REMOTE` 或 ADB 端口转发不会启用它。手机使用 ADB 输入和原始设备截图; Mac 浸泡使用 Makepad instrument,分别记录证据。 From 291aef5983047144f8292a963458de40c187c573 Mon Sep 17 00:00:00 2001 From: ymote <151983+ymote@users.noreply.github.com> Date: Sun, 11 Oct 2026 07:16:32 -0700 Subject: [PATCH 3/9] Read launch input on desktop; gate it only on phones MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A desktop's environment is the local user's, like a command-line flag, so `MAKEPAD_APP_CONFIG` (test actions, Mail's demo mailbox, module-open settings) and AppCard's `MAKEPAD_*` hooks are read in every desktop build. The gate applies only on Android and OpenHarmony, where a launch Intent extra or launch parameter can come from another app: there a release build ignores them and only a development build reads them. - crates/shell/src/launch_input.rs: `honoured` keys on `cfg(native_mobile)`; tests say a phone release build ignores it while a desktop build (any profile) and a phone development build read it. - apps/appcard: `launch_set_in(mobile, development, ...)` — a desktop reads the hooks, a phone only in a development build. - Docs restored to plain desktop `cargo run` commands; the phone and OpenHarmony guidance keeps the development-build note. AGENTS.md states the desktop/phone split. Co-Authored-By: Claude Opus 5.5 --- AGENTS.md | 2 +- apps/AGENTS.md | 6 +- apps/README.md | 13 +-- apps/README.zh-CN.md | 8 +- apps/appcard/app/app/src/lib.rs | 46 +++++----- apps/appcard/tools/octos-macos.py | 7 +- crates/shell/src/apps.rs | 10 +-- crates/shell/src/launch_input.rs | 118 ++++++++++++++----------- desktop/README.md | 6 +- desktop/README.zh-CN.md | 6 +- desktop/docs/code-walkthrough.md | 7 +- desktop/docs/code-walkthrough.zh-CN.md | 4 +- phone/README.md | 9 +- phone/README.zh-CN.md | 6 +- 14 files changed, 133 insertions(+), 115 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 50084b38e..812a8e5c8 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -56,7 +56,7 @@ On a machine that already has clones of Makepad, OctoScript or Octoscript-Makepa 4. **One kernel per process.** The kernel service starts octos on the first consumer and shares it; consumers never spawn their own. Apps reach the assistant only through `crates/app-peers`, never through the raw kernel protocol. 5. **System apps ship inside the shells.** Their ids start with `os.`, they are packed by digest from each packaging's `system-apps.json`, and they are not released separately or through the store. 6. **Test UI without taking over the screen.** Run hosted apps and shells with hidden windows and drive them over the local control surface: `MAKEPAD_HIDE_WINDOWS=1 MAKEPAD_REMOTE=` (routes under `/help`; end with `/quit`), or `makepad_test`. Use `--test-action`, `MAKEPAD_WM_TEST_APP` and `--module` to reach a state without clicking. -7. **Devices.** Use only a device you were given for the task. Install test builds under a separate package name; never replace the installed Home or flash an image unless asked. Anything not run on a device is **unverified**, and says so. Launch-time test hooks (the `test_actions` in the `makepad.APP_CONFIG` intent extra and the other `makepad.*` extras or OpenHarmony launch parameters) work only in a development build (`cfg(dev_mode)`: debug, or `--features dev-mode`; `rom/scripts/build-home.py --dev-mode` builds one as a test package): any app on a phone can start Home with extras, so a release build ignores them. Read such a hook only through `crates/shell/src/launch_input.rs` (AppCard: `launch_var`), never with a bare `std::env::var`. +7. **Devices.** Use only a device you were given for the task. Install test builds under a separate package name; never replace the installed Home or flash an image unless asked. Anything not run on a device is **unverified**, and says so. Launch-time test hooks (the `test_actions` in the `makepad.APP_CONFIG` intent extra and the other `makepad.*` extras or OpenHarmony launch parameters) are the local user's own setting on a desktop, like a command-line flag, and read in every build there; on a phone (Android, OpenHarmony) any app can start Home with extras, so a release build ignores them and only a development build reads them (`cfg(dev_mode)`: debug, or `--features dev-mode`; `rom/scripts/build-home.py --dev-mode` builds one as a test package). Read such a hook only through `crates/shell/src/launch_input.rs` (AppCard: `launch_var`), never with a bare `std::env::var`. 8. **Commit with a public identity.** Author and committer are your GitHub noreply address (for the maintainer, `ymote <151983+ymote@users.noreply.github.com>`) or another address you mean to publish; never a work or machine-local address. Check `git config user.email` before the first commit in a clone: a repository-local identity on a shared machine leaked a work address into this project's history once, and removing it took a history rewrite. 9. **Keep docs honest and bilingual.** Every command in a doc was run; anything not run is marked **unverified**. User-facing docs are `README.md` plus `README.zh-CN.md`, linked by the single switcher line under the title (`English | [简体中文](README.zh-CN.md)`), and change together. `AGENTS.md` files are English only. 10. **Keep signing keys, keystores, tokens and personal paths out of the repository.** `rom/tests/test_no_local_paths.py` checks for local paths. diff --git a/apps/AGENTS.md b/apps/AGENTS.md index 8fcd72ed9..6dc737d23 100644 --- a/apps/AGENTS.md +++ b/apps/AGENTS.md @@ -29,9 +29,9 @@ app's own agent and `tools.json`, the system toolbox, `glance.publish` and --system` (add `MAKEPAD_REMOTE=` to drive it over HTTP; Photos also takes `--static photos=`). `--system` lets an `os.*` id and an empty digest through, as the shell does. These flags are on App Hub `main`. - `card-host` registers no host services: run Mail in a development build - of a shell (debug, or `--features dev-mode`) with - `MAKEPAD_APP_CONFIG='{"mail_demo":true}'`; a release build ignores it. + `card-host` registers no host services: run Mail in a shell with + `MAKEPAD_APP_CONFIG='{"mail_demo":true}'` (a desktop reads it; on a phone it + needs a development build). - Validate on a phone through Home (`phone/`) built as a separate test package; never replace the device's installed Home. - Text on a page follows the host's appearance. On a phone, a page drawn by a diff --git a/apps/README.md b/apps/README.md index a3b47f8d7..7723a09ed 100644 --- a/apps/README.md +++ b/apps/README.md @@ -285,7 +285,7 @@ standalone launcher and ROM image). Each packaging: [`crates/shell`](../crates/shell) (its `app-hub` feature; the photo engine's `octosense-photo-service` comes with the desktop-only `craft-engines`, weighed per engine in [ADR 0013](../docs/adr/0013-craft-engines-as-pinned-services.md)), and registers them at startup (`crates/shell/src/apps.rs`, `register_host_services`): Mail with `register()` for real accounts, or `register_demo()` - when the shell's app config has `mail_demo: true` (a development build only). Mail, News and, with the photo + when the shell's app config has `mail_demo: true` (a desktop reads it; a phone only in a development build). Mail, News and, with the photo engine, Photos install `on_notify` callbacks to the shell's common notice renderer; Calendar installs its card publisher. The shell registers `NoticeService` for remaining system-app namespaces; `llm` with the octos @@ -455,14 +455,15 @@ password `demo`, sample messages, sends that go nowhere): ```sh # the desktop, from the repository root -MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense --features dev-mode +MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense # Home in a phone-sized window, from phone/ -MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense-home --features mobile-only,dev-mode +MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense-home --features mobile-only ``` -The demo keeps its password in a file, so no keychain prompt appears. Only a -development build (debug, or `--features dev-mode`) reads `MAKEPAD_APP_CONFIG`; -both commands are **unverified** since that change. +The demo keeps its password in a file, so no keychain prompt appears. These are +desktop builds, so they read `MAKEPAD_APP_CONFIG` as a local command-line +setting; on a real phone the demo needs a development test build +(`rom/scripts/build-home.py --dev-mode`). **Quick Deck's dev fixture.** `card-host` has no `deck` service, and the shipped bundle has no fixture code. Quick Deck's UI tests use diff --git a/apps/README.zh-CN.md b/apps/README.zh-CN.md index 6b56426d1..b9b1ef556 100644 --- a/apps/README.zh-CN.md +++ b/apps/README.zh-CN.md @@ -222,7 +222,7 @@ WebView 页面、图库导出、邮件、新闻、Glance 或单次模型调用 path 依赖;photo 引擎的 `octosense-photo-service` 随仅限桌面的 `craft-engines` 引入, 按引擎权衡见 [ADR 0013](../docs/adr/0013-craft-engines-as-pinned-services.zh-CN.md)),并在启动时注册 (`crates/shell/src/apps.rs` 的 `register_host_services`):Mail 服务在真实账户下用 - `register()`,Shell 的应用配置中 `mail_demo: true` 时(仅限开发版)用 `register_demo()`。 + `register()`,Shell 的应用配置中 `mail_demo: true` 时(桌面端读取;手机端仅限开发版)用 `register_demo()`。 Mail、News 以及(带 photo 引擎时)Photos 安装 `on_notify` 回调,调用 Shell 共用通知渲染器;Calendar 安装卡片发布器。 Shell 为其余系统应用命名空间注册 `NoticeService`;`llm` 服务使用 octos 内核的 core 目录以及 Shell 的二维码扫描器和图片选择器(见 [`llm` 服务](#llm-服务))。App Hub 只在根目录 @@ -374,12 +374,12 @@ card-host --bundle /apps/photos/bundle --system --static photos=<原 ```sh # 桌面端,在仓库根目录 -MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense --features dev-mode +MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense # 手机尺寸窗口中的 Home,在 phone/ 中 -MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense-home --features mobile-only,dev-mode +MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense-home --features mobile-only ``` -演示邮箱的密码存放在文件中,因此不会弹出钥匙串提示。只有开发版(调试构建或 `--features dev-mode`)读取 `MAKEPAD_APP_CONFIG`;这一改动后两条命令均**未验证**。 +演示邮箱的密码存放在文件中,因此不会弹出钥匙串提示。这些都是桌面构建,会把 `MAKEPAD_APP_CONFIG` 当作本机命令行设置读取;在真实手机上,演示邮箱需要开发版测试构建(`rom/scripts/build-home.py --dev-mode`)。 **Quick Deck 的开发夹具。** `card-host` 没有 `deck` 服务,而随 Shell 发布的 bundle 中没有任何夹具代码。Quick Deck 的 UI 测试使用 bundle 之外的 diff --git a/apps/appcard/app/app/src/lib.rs b/apps/appcard/app/app/src/lib.rs index 043711ff9..7c0492f8a 100644 --- a/apps/appcard/app/app/src/lib.rs +++ b/apps/appcard/app/app/src/lib.rs @@ -35,28 +35,30 @@ use crate::backend::OctosUiAgent; /// Makepad copies the launch extras `makepad.` into `MAKEPAD_`, /// and OpenHarmony entry abilities pass `makepad.*` launch parameters the /// same way, so on a phone another app can set them by starting this one. -/// Only a development build reads them (`dev_mode`: debug assertions or -/// feature `dev-mode`, build.rs); a release build behaves as if none were -/// set. Read every `MAKEPAD_*` hook through this, never `std::env::var`. +/// On a phone (`cfg(mobile)`: Android or OpenHarmony) only a development +/// build reads them (`dev_mode`: debug assertions or feature `dev-mode`, +/// build.rs); a release build behaves as if none were set. A desktop reads +/// them, because its environment is the local user's, like a command-line +/// flag. Read every `MAKEPAD_*` hook through this, never `std::env::var`. pub(crate) fn launch_var(name: &str) -> Option { - launch_set_in(cfg!(dev_mode), name).then(|| std::env::var(name).ok()).flatten() + launch_set_in(cfg!(mobile), cfg!(dev_mode), name).then(|| std::env::var(name).ok()).flatten() } /// [`launch_var`] for a variable whose presence is the setting. pub(crate) fn launch_flag(name: &str) -> bool { - launch_set_in(cfg!(dev_mode), name) + launch_set_in(cfg!(mobile), cfg!(dev_mode), name) } -/// Whether `name` is set and this build may read it. A release build +/// Whether `name` is set and this build may read it. A phone release build /// notes once that it ignored a launch-time hook, without its value. -fn launch_set_in(development: bool, name: &str) -> bool { +fn launch_set_in(mobile: bool, development: bool, name: &str) -> bool { if std::env::var_os(name).is_none() { return false; } - if !development { + if mobile && !development { static NOTED: std::sync::atomic::AtomicBool = std::sync::atomic::AtomicBool::new(false); if !NOTED.swap(true, std::sync::atomic::Ordering::Relaxed) { - log::info!("launch input: {name} ignored; a release build reads no launch-time hooks"); + log::info!("launch input: {name} ignored; a release build on a phone reads no launch-time hooks"); } return false; } @@ -68,14 +70,16 @@ mod launch_input_tests { use super::launch_set_in; #[test] - fn a_release_build_reads_no_launch_hook() { + fn only_a_phone_release_build_ignores_a_launch_hook() { // A name no other test sets. let name = "MAKEPAD_LAUNCH_INPUT_TEST_PROBE"; std::env::set_var(name, "/sdcard/Download/provision"); - assert!(!launch_set_in(false, name), "a release build ignores it"); - assert!(launch_set_in(true, name), "a development build reads it"); + assert!(!launch_set_in(true, false, name), "a phone release build ignores it"); + assert!(launch_set_in(true, true, name), "a phone development build reads it"); + assert!(launch_set_in(false, false, name), "a desktop release build reads it"); + assert!(launch_set_in(false, true, name), "a desktop development build reads it"); std::env::remove_var(name); - assert!(!launch_set_in(true, name)); + assert!(!launch_set_in(false, false, name), "unset is never read"); } /// Every `MAKEPAD_*` hook goes through `launch_var`/`launch_flag`, so @@ -6767,8 +6771,8 @@ impl App { // that embeds this app as a library (`default-features = false`, // no `standalone`) gets neither — nor does a standalone build // launched with `OCTOS_APP_DEVGOAL=0`. An explicit - // `MAKEPAD_DEV_GOAL_FILE` still runs anywhere, in a development - // build (`launch_var`). + // `MAKEPAD_DEV_GOAL_FILE` still runs anywhere (`launch_var`: on a + // phone a development build, a desktop always). #[cfg(target_os = "android")] let mission: Option<(String, String)> = match crate::launch_var("MAKEPAD_DEV_GOAL_FILE") { Some(p) => std::fs::read_to_string(&p).ok().map(|g| (g, p)), @@ -7064,7 +7068,8 @@ impl App { /// live LLM generation can be driven without touching the native composer via /// adb input. Fires once (clears the env var). Session/open and turn/start /// are ordered on the stdio pipe, so submitting right after `clear_chat` is - /// safe. A development build only (`launch_var`). + /// safe. On a phone a development build only; a desktop reads it + /// (`launch_var`). fn fire_auto_prompt(&mut self, cx: &mut Cx) { if let Some(p) = crate::launch_var("MAKEPAD_AUTO_PROMPT") { std::env::remove_var("MAKEPAD_AUTO_PROMPT"); @@ -9045,10 +9050,11 @@ impl MatchEvent for App { } } - // Launch-time provisioning below is for development builds only - // (`launch_var`): any app on the phone can start this one with these - // extras, so a release build provisions only through the person's - // own QR scan and PIN, or the login screen. + // On a phone the launch-time provisioning below is for development + // builds only (`launch_var`): any app can start this one with these + // extras, so a phone release build provisions only through the + // person's own QR scan and PIN, or the login screen. A desktop reads + // them, the way it reads a command-line flag. // // Provisioning deploy (non-rooted devices): `makepad.PROVISION_DIR` // (→ env MAKEPAD_PROVISION_DIR) names a world-readable staging dir diff --git a/apps/appcard/tools/octos-macos.py b/apps/appcard/tools/octos-macos.py index ec1d0c7c7..9a7a63924 100644 --- a/apps/appcard/tools/octos-macos.py +++ b/apps/appcard/tools/octos-macos.py @@ -92,10 +92,11 @@ def main(): empty_data.write_text('{}\n') env['MAKEPAD_SEED_L0_DATA'] = str(empty_data) if not request.get('skip_build', False): - # A development build: only `dev-mode` reads the MAKEPAD_* hooks set - # above (`launch_var` in app/app/src/lib.rs). + # A desktop build reads the MAKEPAD_* hooks set above as local + # settings (`launch_var` in app/app/src/lib.rs), so no feature is + # needed; only a phone gates them behind `dev-mode`. subprocess.run(['cargo', 'build', '-p', 'octos-app', '--bin', 'octos-app', - '--release', '--features', 'dev-mode', '--message-format=json'], cwd=root / 'app', env=env, check=True) + '--release', '--message-format=json'], cwd=root / 'app', env=env, check=True) if not Path(env['OCTOS_APP_CORE_BIN']).is_file(): raise SystemExit('Build the current native Octos core before launching this RunItem') evidence = Path(request.get('evidence_dir', '/tmp/octos-macos-generation')) diff --git a/crates/shell/src/apps.rs b/crates/shell/src/apps.rs index 25030c316..5a25f64af 100644 --- a/crates/shell/src/apps.rs +++ b/crates/shell/src/apps.rs @@ -211,8 +211,8 @@ pub(crate) mod test_system_apps { /// app can open: `mail` keeps accounts and passwords for the Mail app; /// `glance` takes the cards apps publish to the glance screen (glance.rs). /// `mail_demo` in MAKEPAD_APP_CONFIG serves a demo mailbox from a file vault -/// instead (no keychain, no network): `MAKEPAD_APP_CONFIG='{"mail_demo":true}'`, -/// in a development build only (`launch_input`). +/// instead (no keychain, no network): `MAKEPAD_APP_CONFIG='{"mail_demo":true}'`. +/// A desktop reads it; a phone only in a development build (`launch_input`). /// `news` fetches News's feeds on a timer, with no model (ADR 0002), into /// the Card runner's host directory, so it keeps fetching while News is /// closed. Last, every system app no service answers gets the notice @@ -679,9 +679,9 @@ pub fn matches_running_app(app: &crate::clients::AppDef, running_id: &str, title /// What a launch of `app` opens `module` with. The Card runner opens the app /// the launcher row names — a system app by its `os.*` manifest id, an /// installed one by its own. Any other module opens with what -/// MAKEPAD_APP_CONFIG gives it in a development build -/// (`{"module_open": {"": {...}}}`, or `mail_endpoint` for a linked -/// `mail` module; `launch_input`), else empty. +/// MAKEPAD_APP_CONFIG gives it (`{"module_open": {"": {...}}}`, or +/// `mail_endpoint` for a linked `mail` module; a desktop reads it, a phone +/// only in a development build, `launch_input`), else empty. pub fn module_open(module: &'static dyn AppModule, app: &crate::clients::AppDef) -> Result { let schema = module.open_schema(); if module.id() == "card" { diff --git a/crates/shell/src/launch_input.rs b/crates/shell/src/launch_input.rs index cf568335e..00936065c 100644 --- a/crates/shell/src/launch_input.rs +++ b/crates/shell/src/launch_input.rs @@ -1,29 +1,25 @@ -//! Launch input: settings that arrive with a launch, which another app on -//! the device may have chosen. +//! Launch input: settings that arrive with a launch. //! -//! **Who can send it.** Home's main activity is exported: it is the app -//! drawer entry, the Home app, a share target and a deep-link target, so any -//! installed app can start it, with extras. When the activity is created, -//! Makepad's Android glue copies the extras `makepad.` into the -//! environment as `MAKEPAD_` (`APP_CONFIG`, `PROVISION_CONFIG`, -//! `OCTOS_PROXY`, the `SEED_*` hooks and others). On OpenHarmony the entry -//! ability passes the Want's `makepad.*` parameters on in the same way, but -//! only in a development build (`phone/ohos/EntryAbility.ets`). On a desktop -//! these variables come from the local user's own environment, as -//! command-line flags do. +//! **Where it comes from.** On a desktop these variables are the local +//! user's own environment, the same trust as a command-line flag. On a +//! phone they are not: Home's main activity is exported (the app drawer +//! entry, the Home app, a share target and a deep-link target), so any +//! installed app can start it with extras, and Makepad's Android glue copies +//! the extras `makepad.` into the environment as `MAKEPAD_` +//! (`APP_CONFIG`, `PROVISION_CONFIG`, `SEED_*` and others). OpenHarmony passes +//! the Want's `makepad.*` parameters on the same way. //! -//! **The rule.** OctoSense reads launch input only in a development build -//! (`cfg(dev_mode)`: a debug build, or `--features dev-mode`; never a store -//! build). That covers the app config below (test actions, Mail's demo -//! mailbox, module open parameters), the kernel's launch proxy -//! (`octosense-kernel`) and AppCard's provisioning and seeding hooks -//! (`octos-app`). A release build ignores them, and says so once in the log -//! without echoing the value. `--test-action` flags on a desktop command -//! line are arguments only the local user can pass; they work in every -//! build (`App::run_test_actions` in `lib.rs`). +//! **The rule.** On Android and OpenHarmony (`cfg(native_mobile)`) OctoSense +//! reads the app config only in a development build (`cfg(dev_mode)`: a debug +//! build, or `--features dev-mode`; never a store build); a release build +//! there ignores it and says so once in the log, without the value. A desktop +//! reads it in every build, because its environment is the local user's. +//! `--test-action` flags on a desktop command line are arguments only the +//! local user can pass, and work in every build (`App::run_test_actions` in +//! `lib.rs`). //! -//! Test builds that need these hooks on a phone are development builds -//! under a separate package name (`rom/scripts/build-home.py --dev-mode`). +//! A phone build that needs these hooks is a development build under a +//! separate package name (`rom/scripts/build-home.py --dev-mode`). use crate::dev_mode::BuildKind; use makepad_strict_json::Value; @@ -33,40 +29,50 @@ use makepad_strict_json::Value; /// "module_open": {"": {…}}, "mail_endpoint": "…"}`. pub const APP_CONFIG: &str = "MAKEPAD_APP_CONFIG"; -/// Whether a build of this kind reads launch input: a development build -/// only. +/// Whether this build reads the app config. A desktop always does; Android +/// and OpenHarmony, where another app can set it, only in a development +/// build. pub fn honoured(build: BuildKind) -> bool { - build == BuildKind::Development + honoured_for(cfg!(native_mobile), build) } -/// The app config, parsed, when this build reads launch input. A release -/// build answers `None` whatever the variable holds. +/// [`honoured`] split out from the target for testing: `native_mobile` is +/// Android and OpenHarmony (and iOS, which has no such channel but is a +/// phone all the same). +fn honoured_for(native_mobile: bool, build: BuildKind) -> bool { + !native_mobile || build == BuildKind::Development +} + +/// The app config, parsed, when this build reads launch input. A phone +/// release build answers `None` whatever the variable holds. pub fn app_config() -> Option { - let text = std::env::var(APP_CONFIG).ok()?; let build = BuildKind::current(); if !honoured(build) { - note_ignored(); + if std::env::var_os(APP_CONFIG).is_some() { + note_ignored(); + } + return None; } - parse_app_config(build, &text) + std::env::var(APP_CONFIG).ok().and_then(|text| makepad_strict_json::parse(text.as_bytes()).ok()) } -/// [`app_config`] for a given build and variable text. -pub fn parse_app_config(build: BuildKind, text: &str) -> Option { - if !honoured(build) { +/// [`app_config`] for a given target and build, over the given text. +fn app_config_for(native_mobile: bool, build: BuildKind, text: &str) -> Option { + if !honoured_for(native_mobile, build) { return None; } makepad_strict_json::parse(text.as_bytes()).ok() } -/// The app config's `test_actions`, in order, as `--test-action` names; -/// none in a release build. +/// The app config's `test_actions`, in order, as `--test-action` names; none +/// in a phone release build. pub fn test_actions() -> Vec { app_config().map(|config| test_actions_in(&config)).unwrap_or_default() } -/// [`test_actions`] for a given build and variable text. -pub fn test_actions_for(build: BuildKind, text: &str) -> Vec { - parse_app_config(build, text).map(|config| test_actions_in(&config)).unwrap_or_default() +/// [`test_actions`] for a given target and build, over the given text. +fn test_actions_for(native_mobile: bool, build: BuildKind, text: &str) -> Vec { + app_config_for(native_mobile, build, text).map(|config| test_actions_in(&config)).unwrap_or_default() } fn test_actions_in(config: &Value) -> Vec { @@ -87,7 +93,7 @@ fn note_ignored() { static ONCE: std::sync::Once = std::sync::Once::new(); ONCE.call_once(|| { makepad_widgets::log!( - "launch input: {APP_CONFIG} ignored; a release build takes no test actions or demo settings from a launch" + "launch input: {APP_CONFIG} ignored; a release build on a phone takes no test actions or demo settings from a launch" ) }); } @@ -97,34 +103,40 @@ mod tests { use super::*; const CONFIG: &str = r#"{"test_actions":["capture:/sdcard/Download/frame.png","launch-mail","system-chat-send:hello"],"mail_demo":true}"#; + const ACTIONS: [&str; 3] = ["capture:/sdcard/Download/frame.png", "launch-mail", "system-chat-send:hello"]; #[test] - fn a_release_build_ignores_test_actions_from_the_launch() { + fn a_phone_release_build_ignores_test_actions_from_the_launch() { for build in [BuildKind::Release, BuildKind::Store] { - assert!(!honoured(build), "{build:?}"); - assert!(test_actions_for(build, CONFIG).is_empty(), "{build:?}"); - assert!(parse_app_config(build, CONFIG).is_none(), "{build:?}"); + assert!(!honoured_for(true, build), "phone {build:?}"); + assert!(test_actions_for(true, build, CONFIG).is_empty(), "phone {build:?}"); + assert!(app_config_for(true, build, CONFIG).is_none(), "phone {build:?}"); + } + } + + #[test] + fn a_desktop_build_reads_them_in_every_build() { + for build in [BuildKind::Release, BuildKind::Store, BuildKind::Development] { + assert!(honoured_for(false, build), "desktop {build:?}"); + assert_eq!(test_actions_for(false, build, CONFIG), ACTIONS, "desktop {build:?}"); } } #[test] - fn a_development_build_keeps_them_in_order() { - assert!(honoured(BuildKind::Development)); - assert_eq!( - test_actions_for(BuildKind::Development, CONFIG), - ["capture:/sdcard/Download/frame.png", "launch-mail", "system-chat-send:hello"] - ); - let config = parse_app_config(BuildKind::Development, CONFIG).expect("parsed"); + fn a_development_build_keeps_them_on_a_phone_too() { + assert!(honoured_for(true, BuildKind::Development)); + assert_eq!(test_actions_for(true, BuildKind::Development, CONFIG), ACTIONS); + let config = app_config_for(true, BuildKind::Development, CONFIG).expect("parsed"); assert_eq!(config.get("mail_demo").and_then(|v| v.as_bool()), Some(true)); } #[test] fn malformed_or_missing_actions_give_none() { for text in ["", "not json", r#"{"test_actions":"launch-mail"}"#, r#"{"mail_demo":true}"#] { - assert!(test_actions_for(BuildKind::Development, text).is_empty(), "{text:?}"); + assert!(test_actions_for(false, BuildKind::Release, text).is_empty(), "{text:?}"); } // Entries that are not strings are skipped, the rest kept. - assert_eq!(test_actions_for(BuildKind::Development, r#"{"test_actions":[1,"launch-news",null]}"#), ["launch-news"]); + assert_eq!(test_actions_for(false, BuildKind::Release, r#"{"test_actions":[1,"launch-news",null]}"#), ["launch-news"]); } /// The shell has one reader of the app config: this module. Anything diff --git a/desktop/README.md b/desktop/README.md index 42cedb3b4..d91a98ed1 100644 --- a/desktop/README.md +++ b/desktop/README.md @@ -124,7 +124,7 @@ App Hub's modules have no process form and always open in-process. | `OCTOSENSE_APP_DATA` | Where App Hub keeps installed apps (default `apps/` in the platform data directory). | | `OCTOSENSE_HUB`, `OCTOSENSE_HUB_ANCHOR` | App Hub catalog origin (path or URL) and trust anchor; default is the App Hub repository's `main`. | | `OCTOSENSE_SYSTEM_APPS` | The system-app selection file; the root `.cargo/config.toml` sets it to `desktop/system-apps.json`. | -| `MAKEPAD_APP_CONFIG='{"mail_demo":true}'` | Serve Mail's demo mailbox (see [Demos](#demos)); development builds only (debug, or `--features dev-mode`), like all of `MAKEPAD_APP_CONFIG` ([`launch_input.rs`](../crates/shell/src/launch_input.rs)). | +| `MAKEPAD_APP_CONFIG='{"mail_demo":true}'` | Serve Mail's demo mailbox (see [Demos](#demos)). | | `OCTOSENSE_MAIL_VAULT=file` | Keep Mail passwords in a 0600 file instead of the macOS keychain. | | `OCTOSENSE_LLM_VAULT=file` | Keep AI providers' keys in the owner-only octos profile instead of the macOS keychain. | | `OCTOS_APP_CORE_BIN`, `OCTOS_APP_CORE_DIR` | The octos kernel binary the shell's kernel service runs, unchecked (unset: the packaged `octos-kernel`, see [Build and run](#build-and-run)) and its core dir (default `~/octos-home/.octos`; the AI providers profile is `/profiles/_main.json`). | @@ -363,10 +363,10 @@ A card that names no theme takes the shell’s light or dark palette. Toasts and ### Mail without an account ```sh -MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense --features dev-mode +MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense ``` -Open **Mail**, sign in on the host sheet with any address and password `demo`. The demo serves sample messages from a file vault: no network, no keychain. Only a development build reads `MAKEPAD_APP_CONFIG`, hence `--features dev-mode` (**unverified** since that change; a debug `cargo run` works the same way). +Open **Mail**, sign in on the host sheet with any address and password `demo`. The demo serves sample messages from a file vault: no network, no keychain. With a real account on an unsigned development build, macOS asks for keychain access again after every rebuild. For development, keep passwords in a file instead: diff --git a/desktop/README.zh-CN.md b/desktop/README.zh-CN.md index 6afe92b0a..7a64c2479 100644 --- a/desktop/README.zh-CN.md +++ b/desktop/README.zh-CN.md @@ -124,7 +124,7 @@ App Hub 的模块没有进程形态,总是在进程内打开。 | `OCTOSENSE_APP_DATA` | App Hub 保存已安装应用的位置(默认为平台数据目录下的 `apps/`)。 | | `OCTOSENSE_HUB`、`OCTOSENSE_HUB_ANCHOR` | App Hub 目录来源(路径或 URL)和信任锚;默认是 App Hub 仓库的 `main`。 | | `OCTOSENSE_SYSTEM_APPS` | 系统应用选择文件;根目录的 `.cargo/config.toml` 把它设为 `desktop/system-apps.json`。 | -| `MAKEPAD_APP_CONFIG='{"mail_demo":true}'` | 提供邮件的演示邮箱(见[演示](#演示));与整个 `MAKEPAD_APP_CONFIG` 一样仅限开发版(调试构建或 `--features dev-mode`,见 [`launch_input.rs`](../crates/shell/src/launch_input.rs))。 | +| `MAKEPAD_APP_CONFIG='{"mail_demo":true}'` | 提供邮件的演示邮箱(见[演示](#演示))。 | | `OCTOSENSE_MAIL_VAULT=file` | 把邮件密码保存在权限为 0600 的文件中,而不是 macOS 钥匙串。 | | `OCTOSENSE_LLM_VAULT=file` | 把 AI 提供商的密钥保存在仅所有者可读的 octos profile 中,而不是 macOS 钥匙串。 | | `OCTOS_APP_CORE_BIN`、`OCTOS_APP_CORE_DIR` | Shell 内核服务运行的 octos 内核二进制,不做检查(未设置:使用随附的 `octos-kernel`,见[构建与运行](#构建与运行))及其 core 目录(默认 `~/octos-home/.octos`;AI 提供商的 profile 为 `/profiles/_main.json`)。 | @@ -348,10 +348,10 @@ cargo run --release -p octosense --features app-appcard -- --module appcard ### 无账户试用邮件 ```sh -MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense --features dev-mode +MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense ``` -打开 **Mail**,在宿主面板上用任意地址和密码 `demo` 登录。演示模式从文件保险库提供示例邮件:不联网,不用钥匙串。只有开发版读取 `MAKEPAD_APP_CONFIG`,所以要加 `--features dev-mode`(这一改动后**未验证**;调试构建的 `cargo run` 效果相同)。 +打开 **Mail**,在宿主面板上用任意地址和密码 `demo` 登录。演示模式从文件保险库提供示例邮件:不联网,不用钥匙串。 在未签名的开发构建上使用真实账户时,每次重新构建后 macOS 都会再次请求钥匙串访问权限。开发时可以改用文件保存密码: diff --git a/desktop/docs/code-walkthrough.md b/desktop/docs/code-walkthrough.md index a1ceffb0a..9bacd7ce3 100644 --- a/desktop/docs/code-walkthrough.md +++ b/desktop/docs/code-walkthrough.md @@ -105,13 +105,10 @@ require the full shell. For example, run Mail's demo service from the OctoSense root: ```sh -MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --locked --release -p octosense --features dev-mode +MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --locked --release -p octosense ``` -The demo account uses password `demo`; sends stay in the demo. Only a -development build reads `MAKEPAD_APP_CONFIG` (`crates/shell/src/launch_input.rs`: -on a phone it arrives as an intent extra any app can set), hence -`--features dev-mode` (**unverified** since that change). Develop new store +The demo account uses password `demo`; sends stay in the demo. Develop new store apps in OctoSense App Flow (formerly Design Flow) and use App Hub's admission/publishing flow. The [local-catalog recipe](../README.md#try-your-own-app-before-it-is-published) tests installation into the shell before publication. diff --git a/desktop/docs/code-walkthrough.zh-CN.md b/desktop/docs/code-walkthrough.zh-CN.md index e66bcd10e..2054bb91b 100644 --- a/desktop/docs/code-walkthrough.zh-CN.md +++ b/desktop/docs/code-walkthrough.zh-CN.md @@ -89,10 +89,10 @@ cargo run --locked --release -p octosense-card-host --bin card-host -- --bundle 例如,在 OctoSense 根目录运行 Mail 的演示服务: ```sh -MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --locked --release -p octosense --features dev-mode +MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --locked --release -p octosense ``` -演示账户密码为 `demo`,发送留在演示环境。只有开发版读取 `MAKEPAD_APP_CONFIG`(`crates/shell/src/launch_input.rs`:在手机上它以任何应用都能设置的 intent extra 形式到达),所以要加 `--features dev-mode`(这一改动后**未验证**)。新商店应用在 OctoSense App Flow(原 Design Flow)中开发,使用 App Hub 的准入/发布流程。[本地签名目录配方](../README.zh-CN.md#发布前试用自己的应用)用于在发布前测试应用能否安装到 Shell。 +演示账户密码为 `demo`,发送留在演示环境。新商店应用在 OctoSense App Flow(原 Design Flow)中开发,使用 App Hub 的准入/发布流程。[本地签名目录配方](../README.zh-CN.md#发布前试用自己的应用)用于在发布前测试应用能否安装到 Shell。 [`desktop/system-apps.json`](../system-apps.json) 和 [`phone/system-apps.json`](../../phone/system-apps.json) 选择 `apps/` 中的 bundle。 diff --git a/phone/README.md b/phone/README.md index 8840a07e9..b7d1bfbd3 100644 --- a/phone/README.md +++ b/phone/README.md @@ -56,7 +56,7 @@ cargo run --release -p octosense-home --features mobile-only | `-- --module ` | Host a linked module in-process instead of as a child process | | `-- --test-action ` | Fire a shell action at startup (see [Run on a desktop](#run-on-a-desktop)) | | `MAKEPAD_WM_TEST_APP=[:]` | Launch an app (count times) once the shell is up | -| `MAKEPAD_APP_CONFIG='{"mail_demo":true}'` | Serve Mail from a demo mailbox (password `demo`); development builds only (debug, or `--features dev-mode`) | +| `MAKEPAD_APP_CONFIG='{"mail_demo":true}'` | Serve Mail from a demo mailbox (password `demo`) | | `OCTOSENSE_HOME=` | Keep state somewhere other than `~/.octosense` | **Android APK.** `rom/scripts/build-home.sh` (a wrapper for @@ -311,13 +311,14 @@ never holds a socket or a password. For a demo mailbox (password `demo`): ```sh # desktop, from phone/ -MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense-home --features mobile-only,dev-mode +MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense-home --features mobile-only # phone: a development test package (see Launch-time test hooks) adb shell am start -n /.MakepadApp --es makepad.APP_CONFIG '{"mail_demo":true}' ``` -A release build ignores `mail_demo` (both commands are **unverified** since -that change). +The desktop command reads `MAKEPAD_APP_CONFIG` as a local setting; a phone +release build ignores it, so the phone line needs a development test package +(**unverified** since that change). The earlier native News, Photos and Maps modules are deleted (native-apps ADR 0004 §1, [#113](https://github.com/OctoSense-org/OctoSense/pull/113)); none of the system apps has a native module any more. diff --git a/phone/README.zh-CN.md b/phone/README.zh-CN.md index 12a6dac15..c2497ae0d 100644 --- a/phone/README.zh-CN.md +++ b/phone/README.zh-CN.md @@ -31,7 +31,7 @@ cargo run --release -p octosense-home --features mobile-only | `-- --module ` | 在进程内托管已链接的模块,而不是作为子进程 | | `-- --test-action ` | 启动时触发一个 Shell 动作(见[在桌面电脑上运行](#在桌面电脑上运行)) | | `MAKEPAD_WM_TEST_APP=[:]` | Shell 启动后打开某个应用(可指定次数) | -| `MAKEPAD_APP_CONFIG='{"mail_demo":true}'` | 用演示邮箱提供 Mail(密码为 `demo`);仅限开发版(调试构建或 `--features dev-mode`) | +| `MAKEPAD_APP_CONFIG='{"mail_demo":true}'` | 用演示邮箱提供 Mail(密码为 `demo`) | | `OCTOSENSE_HOME=` | 把状态数据保存在 `~/.octosense` 以外的位置 | **Android APK。** `rom/scripts/build-home.sh`(`build-home.py` 的包装脚本)构建 Home APK 及其 System Bridge APK,一起签名,把 octos 内核作为 `liboctos.so` 打包进去,并写出 `OctoSenseHome.apk`、`OctoSenseBridge.apk` 和一份 `build.json` 回执。它从不安装或刷机。在仓库根目录构建一对使用 Makepad 开发密钥签名的独立开发版: @@ -208,12 +208,12 @@ Mail 通过 `mail` 宿主服务([`apps/mail/host-service`](../apps/mail/host-s ```sh # desktop, from phone/ -MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense-home --features mobile-only,dev-mode +MAKEPAD_APP_CONFIG='{"mail_demo":true}' cargo run --release -p octosense-home --features mobile-only # 手机:开发版测试包(见“启动时的测试钩子”) adb shell am start -n /.MakepadApp --es makepad.APP_CONFIG '{"mail_demo":true}' ``` -发布版会忽略 `mail_demo`(这一改动后两条命令均**未验证**)。 +桌面命令会把 `MAKEPAD_APP_CONFIG` 当作本机设置读取;手机发布版会忽略它,所以手机那行需要开发版测试包(这一改动后**未验证**)。 早期的原生 News、Photos 和 Maps 模块已删除(原生应用 ADR 0004 §1,[#113](https://github.com/OctoSense-org/OctoSense/pull/113));所有系统应用都不再有原生模块。 From 5b8e4ec8d897d84401bf76df019fc7d5f64071d1 Mon Sep 17 00:00:00 2001 From: ymote <151983+ymote@users.noreply.github.com> Date: Sun, 11 Oct 2026 07:16:32 -0700 Subject: [PATCH 4/9] Carry the makepad launch-input hardening as a stacked runtime patch Protects a release Home now, without waiting for a makepad sweep: the shell's pinned makepad gains the Studio/OCTOS_PROXY launch-input gate from OctoSense-org/makepad#119 as the next stacked runtime patch over the pinned base, so a shipped Android Home ignores a Studio host or app proxy from an Intent extra. The OpenHarmony template part of #119 is not carried here, since Home builds its own OpenHarmony entry ability. Co-Authored-By: Claude Opus 5.5 --- runtime-patches.lock.json | 9 +- .../makepad-launch-input-hardening.patch | 322 ++++++++++++++++++ 2 files changed, 329 insertions(+), 2 deletions(-) create mode 100644 tools/runtime-patches/makepad-launch-input-hardening.patch diff --git a/runtime-patches.lock.json b/runtime-patches.lock.json index 8b5c0021c..35933d1d4 100644 --- a/runtime-patches.lock.json +++ b/runtime-patches.lock.json @@ -4,7 +4,7 @@ "base_revision": "d653bc4493619ab979ccff165cf48c0c63b77d19", "patch": "tools/runtime-patches/makepad-settings.patch", "sha256": "3a79cddddc89dc4d064a9f0bdd17dc8111dcab9c796a334d95f61ecb9d5011aa", - "tree": "3f4fd959f1ee43445bc7ef13cf72465bb1951829", + "tree": "d047e32fdfb91aa26b95a62464645020bfa6a4f7", "product_fixes": [ "Settings integration: Android IME synchronization, accessibility and reduced motion, GLES program-cache validation, obscured-gesture cancellation and scroll-position observation.", "Contained-app isolation and secret-input restrictions come from the pinned upstream runtime; the Settings overlay preserves those gates.", @@ -48,7 +48,8 @@ "A native host may stage up to 64 MiB into an app's jail (MAX_IMPORT_BYTES; prepare_import and commit_import), so files.import can take documents above the 1 MiB script write limit. Staged bytes never enter the script heap; the jail's byte quota and entry cap still apply, and script writes, photo picks and exports keep 1 MiB.", "An OS resume restarts only the Video playback its pause stopped, including a start it cancelled; a player paused by the person, or paused or stopped by its app during the pause, stays paused (#406).", "Camera capture and recording use explicit per-call boolean audio/library options, defaulting to silent app-local output. Permission availability never opts into recording audio or exporting captures; async microphone checks retain capture intent and background provenance. Unsupported library export fails before capture.", - "A hidden Android native composer remembers animated IME insets without requesting a root layout every frame; showing it applies the latest inset before its first visible frame." + "A hidden Android native composer remembers animated IME insets without requesting a root layout every frame; showing it applies the latest inset before its first visible frame.", + "Launch-input hardening: the Studio connection and the OCTOS_PROXY app HTTP proxy, which Makepad itself acts on from an Android Intent extra, are honoured only when the build opts into launch-time development input (debuggable, or the manifest meta-data dev.makepad.LAUNCH_STUDIO). A shipped build ignores them and drops any Studio host a development build saved. The exported activity would otherwise let another installed app point it at a host or a proxy." ], "stacked": [ { @@ -190,6 +191,10 @@ { "patch": "tools/runtime-patches/makepad-hidden-composer-insets.patch", "sha256": "75935d129cfe4adf09555d3a94b0a7ad387f2ea97cf357f9d60c728d87239037" + }, + { + "patch": "tools/runtime-patches/makepad-launch-input-hardening.patch", + "sha256": "8eaafef3ef0591bec2a25c05d5187564d5dfb87a32e6b937b6d9c4e9f6fa5b84" } ] } diff --git a/tools/runtime-patches/makepad-launch-input-hardening.patch b/tools/runtime-patches/makepad-launch-input-hardening.patch new file mode 100644 index 000000000..71447f6e7 --- /dev/null +++ b/tools/runtime-patches/makepad-launch-input-hardening.patch @@ -0,0 +1,322 @@ +diff --git a/platform/src/app_main.rs b/platform/src/app_main.rs +index a4b48f3d5..242649c56 100644 +--- a/platform/src/app_main.rs ++++ b/platform/src/app_main.rs +@@ -195,6 +195,19 @@ pub(crate) fn resolve_studio_crate() -> Option { + }) + } + ++/// Whether a build honours launch-time development input that Makepad itself ++/// acts on: the Studio connection and the `OCTOS_PROXY` app HTTP proxy, both ++/// carried in an Android Intent extra (or an OpenHarmony launch parameter). ++/// An activity that handles those is usually exported, so another installed ++/// app can start it with extras; a shipped app must not act on them. True for ++/// a debuggable build, or one that opts in through its manifest (on Android, ++/// the `dev.makepad.LAUNCH_STUDIO` meta-data). The Android glue ++/// (`os::linux::android::android_jni`) passes both signals in. ++#[cfg_attr(not(target_os = "android"), allow(dead_code))] ++pub(crate) fn launch_dev_input_allowed(debuggable: bool, manifest_opt_in: bool) -> bool { ++ debuggable || manifest_opt_in ++} ++ + fn build_studio_http( + studio_host: &str, + studio_build: Option<&str>, +@@ -239,6 +252,14 @@ pub fn resolve_studio_http() -> String { + mod tests { + use super::*; + ++ #[test] ++ fn only_debuggable_or_opted_in_builds_honour_launch_dev_input() { ++ assert!(launch_dev_input_allowed(true, false), "a debuggable build"); ++ assert!(launch_dev_input_allowed(false, true), "a manifest opt-in"); ++ assert!(launch_dev_input_allowed(true, true)); ++ assert!(!launch_dev_input_allowed(false, false), "a shipped build ignores launch dev input"); ++ } ++ + #[test] + fn extract_studio_build_id_handles_app_paths() { + assert_eq!( +diff --git a/platform/src/os/linux/android/android_jni.rs b/platform/src/os/linux/android/android_jni.rs +index 1cfc4d0a1..6b7c9468c 100644 +--- a/platform/src/os/linux/android/android_jni.rs ++++ b/platform/src/os/linux/android/android_jni.rs +@@ -526,6 +526,136 @@ unsafe fn persist_string_pref( + true + } + ++/// Remove a persisted preference. Used to drop a Studio host a development ++/// build saved, so it cannot survive into a shipped build. ++unsafe fn remove_persisted_pref( ++ env: *mut jni_sys::JNIEnv, ++ activity: jni_sys::jobject, ++ key: &str, ++) -> bool { ++ let prefs = match get_prefs_object(env, activity) { ++ Some(v) => v, ++ None => return false, ++ }; ++ let editor = ndk_utils::call_object_method!( ++ env, ++ prefs, ++ "edit", ++ "()Landroid/content/SharedPreferences$Editor;" ++ ); ++ if editor.is_null() { ++ return false; ++ } ++ let key = match new_jstring(env, key) { ++ Some(v) => v, ++ None => return false, ++ }; ++ let editor = ndk_utils::call_object_method!( ++ env, ++ editor, ++ "remove", ++ "(Ljava/lang/String;)Landroid/content/SharedPreferences$Editor;", ++ key ++ ); ++ if editor.is_null() { ++ return false; ++ } ++ ndk_utils::call_void_method!(env, editor, "apply", "()V"); ++ true ++} ++ ++/// Whether this build is debuggable (`android:debuggable="true"`): the ++/// ApplicationInfo `FLAG_DEBUGGABLE` bit. ++unsafe fn activity_is_debuggable(env: *mut jni_sys::JNIEnv, activity: jni_sys::jobject) -> bool { ++ let app_info = ndk_utils::call_object_method!( ++ env, ++ activity, ++ "getApplicationInfo", ++ "()Landroid/content/pm/ApplicationInfo;" ++ ); ++ if app_info.is_null() { ++ return false; ++ } ++ let class = ((**env).GetObjectClass.unwrap())(env, app_info); ++ if class.is_null() { ++ return false; ++ } ++ let field = ((**env).GetFieldID.unwrap())(env, class, b"flags\0".as_ptr() as _, b"I\0".as_ptr() as _); ++ if field.is_null() { ++ return false; ++ } ++ const FLAG_DEBUGGABLE: i32 = 2; // ApplicationInfo.FLAG_DEBUGGABLE ++ ((**env).GetIntField.unwrap())(env, app_info, field) & FLAG_DEBUGGABLE != 0 ++} ++ ++/// A boolean `` on the application element, default false. Lets a ++/// specific signed build opt into launch-time development input without being ++/// debuggable. ++unsafe fn application_meta_bool( ++ env: *mut jni_sys::JNIEnv, ++ activity: jni_sys::jobject, ++ key: &str, ++) -> bool { ++ let pm = ndk_utils::call_object_method!( ++ env, ++ activity, ++ "getPackageManager", ++ "()Landroid/content/pm/PackageManager;" ++ ); ++ if pm.is_null() { ++ return false; ++ } ++ let package = ndk_utils::call_object_method!( ++ env, ++ activity, ++ "getPackageName", ++ "()Ljava/lang/String;" ++ ); ++ if package.is_null() { ++ return false; ++ } ++ const GET_META_DATA: i32 = 128; // PackageManager.GET_META_DATA ++ let app_info = ndk_utils::call_object_method!( ++ env, ++ pm, ++ "getApplicationInfo", ++ "(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;", ++ package, ++ GET_META_DATA ++ ); ++ // getApplicationInfo for our own package never throws, but clear any ++ // pending exception so the next JNI call is not poisoned. ++ if (**env).ExceptionCheck.map(|f| f(env)).unwrap_or(0) != 0 { ++ ((**env).ExceptionClear.unwrap())(env); ++ return false; ++ } ++ if app_info.is_null() { ++ return false; ++ } ++ let class = ((**env).GetObjectClass.unwrap())(env, app_info); ++ if class.is_null() { ++ return false; ++ } ++ let field = ((**env).GetFieldID.unwrap())( ++ env, ++ class, ++ b"metaData\0".as_ptr() as _, ++ b"Landroid/os/Bundle;\0".as_ptr() as _, ++ ); ++ if field.is_null() { ++ return false; ++ } ++ let bundle = ((**env).GetObjectField.unwrap())(env, app_info, field); ++ if bundle.is_null() { ++ return false; ++ } ++ let key = match new_jstring(env, key) { ++ Some(v) => v, ++ None => return false, ++ }; ++ ndk_utils::call_bool_method!(env, bundle, "getBoolean", "(Ljava/lang/String;Z)Z", key, 0i32) != 0 ++} ++ + pub unsafe fn apply_studio_env_from_activity(activity: *const std::ffi::c_void) { + if activity.is_null() { + return; +@@ -533,32 +663,55 @@ pub unsafe fn apply_studio_env_from_activity(activity: *const std::ffi::c_void) + let env = attach_jni_env(); + let activity = activity as jni_sys::jobject; + ++ // A launch Intent's extras are untrusted: this activity is usually ++ // exported (an app's launcher entry, and OctoSense Home is a Home app and ++ // a share/deep-link target), so any installed app can start it with ++ // extras. The Studio connection and the OCTOS_PROXY JVM proxy below are ++ // things Makepad itself acts on, so they are honoured from launch input ++ // only when the build opts into launch-time development input: ++ // `android:debuggable="true"`, or the manifest meta-data ++ // `dev.makepad.LAUNCH_STUDIO` set true. A shipped (non-debuggable) app ++ // ignores them, and drops any Studio host it saved under an earlier ++ // development build. The other `MAKEPAD_*` passthroughs below are inert ++ // until an app reads them; the app decides whether to. ++ let allow_launch_dev = crate::app_main::launch_dev_input_allowed( ++ activity_is_debuggable(env, activity), ++ application_meta_bool(env, activity, "dev.makepad.LAUNCH_STUDIO"), ++ ); ++ + std::env::remove_var("STUDIO"); + std::env::remove_var("STUDIO_BUILD"); + std::env::remove_var("STUDIO_HOST"); + std::env::remove_var("STUDIO_CRATE"); + +- let intent_studio_host = get_intent_string_extra(env, activity, "makepad.STUDIO_HOST") +- .filter(|v| !v.trim().is_empty()); +- let intent_studio_crate = get_intent_string_extra(env, activity, "makepad.STUDIO_CRATE") +- .filter(|v| !v.trim().is_empty()); +- +- if let Some(studio_host) = intent_studio_host { +- let _ = persist_string_pref(env, activity, MAKEPAD_STUDIO_HOST_PREF_KEY, &studio_host); +- std::env::set_var("STUDIO_HOST", &studio_host); +- } else if let Some(studio_host) = +- get_persisted_string_pref(env, activity, MAKEPAD_STUDIO_HOST_PREF_KEY) +- { +- std::env::set_var("STUDIO_HOST", &studio_host); +- } ++ if allow_launch_dev { ++ let intent_studio_host = get_intent_string_extra(env, activity, "makepad.STUDIO_HOST") ++ .filter(|v| !v.trim().is_empty()); ++ let intent_studio_crate = get_intent_string_extra(env, activity, "makepad.STUDIO_CRATE") ++ .filter(|v| !v.trim().is_empty()); ++ ++ if let Some(studio_host) = intent_studio_host { ++ let _ = persist_string_pref(env, activity, MAKEPAD_STUDIO_HOST_PREF_KEY, &studio_host); ++ std::env::set_var("STUDIO_HOST", &studio_host); ++ } else if let Some(studio_host) = ++ get_persisted_string_pref(env, activity, MAKEPAD_STUDIO_HOST_PREF_KEY) ++ { ++ std::env::set_var("STUDIO_HOST", &studio_host); ++ } + +- if let Some(studio_crate) = intent_studio_crate { +- let _ = persist_string_pref(env, activity, MAKEPAD_STUDIO_CRATE_PREF_KEY, &studio_crate); +- std::env::set_var("STUDIO_CRATE", &studio_crate); +- } else if let Some(studio_crate) = +- get_persisted_string_pref(env, activity, MAKEPAD_STUDIO_CRATE_PREF_KEY) +- { +- std::env::set_var("STUDIO_CRATE", &studio_crate); ++ if let Some(studio_crate) = intent_studio_crate { ++ let _ = persist_string_pref(env, activity, MAKEPAD_STUDIO_CRATE_PREF_KEY, &studio_crate); ++ std::env::set_var("STUDIO_CRATE", &studio_crate); ++ } else if let Some(studio_crate) = ++ get_persisted_string_pref(env, activity, MAKEPAD_STUDIO_CRATE_PREF_KEY) ++ { ++ std::env::set_var("STUDIO_CRATE", &studio_crate); ++ } ++ } else { ++ // Never let a Studio host survive into a shipped build: an app built ++ // debuggable once, then released, must not keep dialing it. ++ let _ = remove_persisted_pref(env, activity, MAKEPAD_STUDIO_HOST_PREF_KEY); ++ let _ = remove_persisted_pref(env, activity, MAKEPAD_STUDIO_CRATE_PREF_KEY); + } + + // Generic app-config passthrough: `--es makepad.APP_CONFIG ` +@@ -673,10 +826,18 @@ pub unsafe fn apply_studio_env_from_activity(activity: *const std::ffi::c_void) + // `direct` / `none` / `off` / empty (or no extra at all) => NO proxy: both the + // octos LLM leg and the app-side sys.* fetches go straight out over the + // device's own network (Wi-Fi). Any other value is a proxy URL to tunnel. +- let proxy = get_intent_string_extra(env, activity, "makepad.OCTOS_PROXY").filter(|v| { +- let t = v.trim().to_ascii_lowercase(); +- !t.is_empty() && t != "direct" && t != "none" && t != "off" +- }); ++ // Makepad acts on this itself (the app-side JVM proxy below), so like the ++ // Studio connection it is honoured from launch input only when the build ++ // opts into launch-time development input; a shipped app always clears ++ // the proxy. ++ let proxy = allow_launch_dev ++ .then(|| { ++ get_intent_string_extra(env, activity, "makepad.OCTOS_PROXY").filter(|v| { ++ let t = v.trim().to_ascii_lowercase(); ++ !t.is_empty() && t != "direct" && t != "none" && t != "off" ++ }) ++ }) ++ .flatten(); + if let Some(proxy) = proxy { + std::env::set_var("MAKEPAD_OCTOS_PROXY", &proxy); + // App-side leg: MakepadNetwork opens connections with a bare +diff --git a/tools/cargo_makepad/src/android/java/dev/makepad/android/MakepadActivity.java b/tools/cargo_makepad/src/android/java/dev/makepad/android/MakepadActivity.java +index e5042071b..78d377fc0 100644 +--- a/tools/cargo_makepad/src/android/java/dev/makepad/android/MakepadActivity.java ++++ b/tools/cargo_makepad/src/android/java/dev/makepad/android/MakepadActivity.java +@@ -1521,6 +1521,24 @@ public class MakepadActivity + clearWarmResumeSurfaceSnapshot(); + } + ++ // Whether this build acts on launch-time development input that Makepad ++ // itself handles (the OCTOS_PROXY app proxy here, the Studio connection ++ // on the native side): a debuggable build, or one that opts in with the ++ // `dev.makepad.LAUNCH_STUDIO` manifest meta-data. A shipped app does ++ // neither, so an Intent extra from another app cannot point it at a proxy. ++ private boolean launchDevInputAllowed() { ++ try { ++ ApplicationInfo info = getPackageManager().getApplicationInfo( ++ getPackageName(), PackageManager.GET_META_DATA); ++ boolean debuggable = (info.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0; ++ boolean optIn = info.metaData != null ++ && info.metaData.getBoolean("dev.makepad.LAUNCH_STUDIO", false); ++ return debuggable || optIn; ++ } catch (Exception e) { ++ return false; ++ } ++ } ++ + @Override + public void onCreate(Bundle savedInstanceState) { + if (mWebSocketsThread == null || !mWebSocketsThread.isAlive()) { +@@ -1544,9 +1562,12 @@ public class MakepadActivity + // is set — needed when the device has no direct internet route (e.g. an + // adb-reverse tunnel to the dev host). HttpURLConnection honours these + // JVM proxy system properties, so no per-request change is needed. ++ // This activity is usually exported, so the extra is untrusted: only a ++ // build that opts into launch-time development input acts on it (the ++ // native side keeps the same rule and clears the properties otherwise). + try { + Intent launchIntent = getIntent(); +- String proxy = launchIntent != null ++ String proxy = launchDevInputAllowed() && launchIntent != null + ? launchIntent.getStringExtra("makepad.OCTOS_PROXY") : null; + if (proxy != null && proxy.length() > 0) { + String hp = proxy.replaceFirst("^https?://", "").replaceAll("/.*$", ""); From 509f38cda3a651e7d9cd554344a5a08571e979d6 Mon Sep 17 00:00:00 2001 From: ymote <151983+ymote@users.noreply.github.com> Date: Sun, 11 Oct 2026 08:52:27 -0700 Subject: [PATCH 5/9] pdf service: say what an edit would do first, and refuse in plain words Text editing worked on simple PDFs and broke on real-world ones. On a page a web browser printed, the engine reads a title drawn in several fonts as one paragraph per piece; text a paragraph's subset font lacks is set in a stand-in (Helvetica or Times) that runs over the pieces after it; and Chinese text is refused with the engine's build note ("set CRAFT_FONTS_DIR to a craft-fonts checkout"). pdf.edit_check takes pdf.edit_text's arguments and answers {keeps_font, font, box, covers, off_page}: the font the edit would be drawn in, where the edited text would be, how many other lines it would newly run into, and whether it would leave the page. It runs the engine's own editor (pdfcraft-edit's rewrite_block and replace_line, what text_edit runs) on a copy opened from the open document's working bytes and drops it: no engine command, nothing written, the read-only and security checks the engine makes. pdfcraft-edit joins the pins at the same ymote/pdfcraft revision; it was already in the graph. pdf.edit_text and pdf.edit_check now refuse in words for a person, still invalid: ("PDF Tools can't edit Chinese, Japanese or Korean text yet."; other scripts name the characters; a locked or read-only PDF; a stale paragraph number). pdftools_fixture --edit-sample writes a page as a browser prints it: a title in five pieces in unnamed Type 3 fonts, and Chinese text in an embedded CID-keyed TrueType subset (glyphs drawn here as placeholders). The tests use it to hold the check to what the edit then does (same font, same box), and show the refusals change nothing. Release timings: a check takes 0.4-0.6 ms on the samples and 16-19 ms on a 3.4 MB browser-printed page of 399 paragraphs. Co-Authored-By: Claude Opus 5.5 --- Cargo.lock | 1 + Cargo.toml | 3 + apps/AGENTS.md | 14 +- apps/pdf/host-service/Cargo.toml | 4 + .../host-service/examples/pdftools_fixture.rs | 372 +++++++++++++++++- apps/pdf/host-service/src/change.rs | 104 +++-- apps/pdf/host-service/src/codes.rs | 157 ++++++++ apps/pdf/host-service/src/doc_tests.rs | 191 +++++++++ apps/pdf/host-service/src/fit.rs | 205 ++++++++++ apps/pdf/host-service/src/lib.rs | 10 +- 10 files changed, 1019 insertions(+), 42 deletions(-) create mode 100644 apps/pdf/host-service/src/fit.rs diff --git a/Cargo.lock b/Cargo.lock index f7c58b7cf..a9fe5e435 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11803,6 +11803,7 @@ dependencies = [ "pdfcraft-annot", "pdfcraft-automation", "pdfcraft-cos", + "pdfcraft-edit", "pdfcraft-xfa", "serde_json", "tempfile", diff --git a/Cargo.toml b/Cargo.toml index e88a29e52..fa5c96c50 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -288,6 +288,9 @@ pdfcraft-automation = { git = "https://github.com/ymote/pdfcraft.git", rev = "61 # reader, which keep `/M` with its zone (the engine's listing drops it). pdfcraft-cos = { git = "https://github.com/ymote/pdfcraft.git", rev = "615ff308173a3dd7c595fc598508b519a895c0e9" } pdfcraft-annot = { git = "https://github.com/ymote/pdfcraft.git", rev = "615ff308173a3dd7c595fc598508b519a895c0e9" } +# The pdf service's edit check: the engine's own text editor, run on a copy of +# the open document to see what an edit would do before PDF Tools makes it. +pdfcraft-edit = { git = "https://github.com/ymote/pdfcraft.git", rev = "615ff308173a3dd7c595fc598508b519a895c0e9" } # The pdf service's tests only: the engine's own scripted XFA form, the # hostile fixture of the scripts-off fence (ADR 0013). pdfcraft-xfa = { git = "https://github.com/ymote/pdfcraft.git", rev = "615ff308173a3dd7c595fc598508b519a895c0e9" } diff --git a/apps/AGENTS.md b/apps/AGENTS.md index 6dc737d23..bcb526aa5 100644 --- a/apps/AGENTS.md +++ b/apps/AGENTS.md @@ -120,8 +120,18 @@ app's own agent and `tools.json`, the system toolbox, `glance.publish` and cleared before a write would fail with `storage_full:`. `pdf.comments` reads each date with its zone from the file once per version of the document (`src/review.rs`). `pdf.fields` marks - read-only fields, and `pdf.fill` refuses one. Errors start with a stable - code (`src/codes.rs`). + read-only fields, and `pdf.fill` refuses one. `pdf.edit_check` takes + `pdf.edit_text`'s arguments and says what that edit would do before PDF + Tools makes it (the font it would be drawn in, the lines of text it would + run into, text off the page), by running the engine's own editor + (pdfcraft-edit) on a copy opened from the open document's working bytes + and dropping it (`src/fit.rs`): no engine command, nothing written. Both + refuse an edit the engine won't make in plain words (text no available + font shows, such as Chinese, Japanese or Korean without the engine's + fallback face; a read-only or locked document; a stale paragraph number), + still `invalid:` (`codes::edit_refused`); the `--edit-sample` page of + `pdftools_fixture` reproduces the real-world cases. Errors start with a + stable code (`src/codes.rs`). - Declare an app's agent in its manifest and `bundle/tools.json`. Keep the input/output schemas consistent with the executor (octos requires an object output schema), and select the actual risk, sharing and confirmation policy. diff --git a/apps/pdf/host-service/Cargo.toml b/apps/pdf/host-service/Cargo.toml index f8cbd2972..432dc07da 100644 --- a/apps/pdf/host-service/Cargo.toml +++ b/apps/pdf/host-service/Cargo.toml @@ -29,6 +29,10 @@ pdfcraft-automation = { workspace = true } # reader, on the open document's working bytes, read only (src/review.rs). pdfcraft-cos = { workspace = true } pdfcraft-annot = { workspace = true } +# What an edit would do before it is made (`pdf.edit_check`, src/fit.rs): the +# engine's own paragraph and line rewriting, on a copy of the open document's +# working bytes that is then dropped. +pdfcraft-edit = { workspace = true } # This device's offset from UTC, from where the shell's status clock reads it # (crates/shell/src/shell/bar.rs): localtime_r on Unix, chrono elsewhere. diff --git a/apps/pdf/host-service/examples/pdftools_fixture.rs b/apps/pdf/host-service/examples/pdftools_fixture.rs index ed9f6259a..d2f7ddcc7 100644 --- a/apps/pdf/host-service/examples/pdftools_fixture.rs +++ b/apps/pdf/host-service/examples/pdftools_fixture.rs @@ -13,13 +13,17 @@ //! With `--import-sample ` it writes one more PDF, a three-page garden //! plan, to ``: what a test places in the library as `Imported PDF.pdf`, //! the name PDF Tools gives the first PDF it opens from the device, to drive -//! the path an imported PDF takes without the host's file dialog. The PDFs are -//! written by hand below, so they are the same on every run and need no -//! files of their own. Nothing here calls the engine. +//! the path an imported PDF takes without the host's file dialog. With +//! `--edit-sample ` it writes a page as a web browser prints it, whose +//! fonts break text editing the way real-world PDFs do (`printed_flyer` +//! below), for PDF Tools' Edit. The PDFs are written by hand below, so they +//! are the same on every run and need no files of their own. Nothing here +//! calls the engine. //! //! ```sh //! cargo run --locked -p octosense-pdf-service --example pdftools_fixture -- //! cargo run --locked -p octosense-pdf-service --example pdftools_fixture -- --import-sample +//! cargo run --locked -p octosense-pdf-service --example pdftools_fixture -- --edit-sample //! ``` use std::path::{Path, PathBuf}; @@ -36,8 +40,9 @@ fn main() { let args: Vec = std::env::args().skip(1).collect(); let written = match args.as_slice() { [flag, file] if flag == "--import-sample" => write(Path::new(file), &garden_plan()).map(|_| PathBuf::from(file)), + [flag, file] if flag == "--edit-sample" => write(Path::new(file), &printed_flyer()).map(|_| PathBuf::from(file)), [root] if !root.starts_with('-') => samples(Path::new(root)), - _ => Err("usage: pdftools_fixture | --import-sample ".into()), + _ => Err("usage: pdftools_fixture | --import-sample | --edit-sample ".into()), }; match written { Ok(path) => println!("Wrote {}", path.display()), @@ -558,3 +563,362 @@ pub(crate) fn garden_plan() -> Vec { pages.push(calendar); pdf(&info(title, "Allotment 14", "What grows where, and when to sow it", "garden, plan, allotment"), pages) } + +// ---------------------------------------------------- a page printed from the web +// +// Real-world PDFs break text editing in ways the samples above never do (a +// page a web browser printed, 11 Oct 2026). This sample has all three, in +// fonts made here, so the service's tests and PDF Tools' Edit can be held to +// honest answers: +// +// - A designed title in pieces. "Studio2026" is in an unnamed Type 3 font, +// then 春, 季, 发布 and 会 alternate between two more, each piece in its own +// text object, as a browser prints a title whose glyphs span several fonts. +// The engine reads five paragraphs where a person sees one title, and a +// longer "Studio2026" runs into the pieces after it. +// - Chinese text in an embedded subset font: a CID-keyed TrueType program +// with only the glyphs its paragraph uses (Identity-H, FontFile2 and a +// ToUnicode map), as office programs and browsers embed one. A Chinese +// character it lacks needs a Chinese face the engine doesn't have. +// - Subsets everywhere: a character outside a piece's or the paragraph's font +// makes the engine draw the edit in a stand-in (Helvetica), with other +// widths than the original. +// +// The glyphs are blocky placeholders drawn from bitmaps here (no one's font +// is copied); the text layer, the widths and the font dictionaries are what a +// browser writes. + +/// The page `--edit-sample` writes (the notes above): US Letter, as a +/// browser prints one. +pub(crate) fn printed_flyer() -> Vec { + const TITLE: f64 = 27.8; + const BODY: f64 = 12.65; + let mut objs: Vec> = vec![Vec::new(), Vec::new(), Vec::new()]; // the catalog, the pages, the page: last + let helvetica = add(&mut objs, b"<< /Type /Font /Subtype /Type1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >>".to_vec()); + let latin = ['S', 't', 'u', 'd', 'i', 'o', '2', '0', '6']; + let first = ['春', '发', '布']; + let second = ['季', '会']; + let t1 = type3(&mut objs, &latin, latin_glyph); + let t2 = type3(&mut objs, &first, cjk_glyph); + let t3 = type3(&mut objs, &second, cjk_glyph); + let lines = ["春季发布会展示新的应用和工具", "报名截止 2026 年 4 月 30 日"]; + let mut body: Vec = Vec::new(); + for c in lines.iter().flat_map(|l| l.chars()) { + if !body.contains(&c) { + body.push(c); + } + } + let c1 = cid_subset(&mut objs, "ABCDEF+FixtureSans-SC", &body); + + let mut ops = String::new(); + ops.push_str("BT /F1 9.14 Tf 0.35 0.37 0.4 rg 1 0 0 1 44.62 708 Tm (OctoSense sample - a page as a web browser prints it) Tj ET\n"); + // The title, a piece at a time: each in its own text object and font. + let mut x = 44.62; + for (font, chars, text) in [("T1", &latin[..], "Studio2026"), ("T2", &first[..], "春"), ("T3", &second[..], "季"), ("T2", &first[..], "发布"), ("T3", &second[..], "会")] { + let codes: String = text.chars().map(|c| format!("{:02X}", chars.iter().position(|k| *k == c).unwrap() + 1)).collect(); + ops.push_str(&format!("BT /{font} {TITLE} Tf 0.07 0.09 0.15 rg 1 0 0 1 {x:.2} 670 Tm <{codes}> Tj ET\n")); + let em: i32 = text.chars().map(|c| i32::from(if c.is_ascii() { latin_glyph(c) } else { cjk_glyph(c) }.advance)).sum(); + x += f64::from(em) / 1000.0 * TITLE; + } + // The Chinese paragraph: two lines in the embedded subset. + let cids = |line: &str| -> String { line.chars().map(|c| format!("{:04X}", body.iter().position(|k| *k == c).unwrap() + 1)).collect() }; + ops.push_str(&format!("BT /C1 {BODY} Tf 0.12 0.14 0.16 rg 1 0 0 1 44.62 630 Tm <{}> Tj 0 -22.5 Td <{}> Tj ET\n", cids(lines[0]), cids(lines[1]))); + // A paragraph in Helvetica just below it. + ops.push_str("BT /F1 12 Tf 0.12 0.14 0.16 rg 1 0 0 1 44.62 588 Tm (Doors open at nine in the main hall. Bring a) Tj 0 -16.5 Td (laptop and the badge we send you by email.) Tj ET\n"); + + let contents = add(&mut objs, pdf_stream(ops.as_bytes(), "")); + let info = add( + &mut objs, + b"<< /Title (Studio2026 spring launch) /Creator (PDF Tools sample generator: a page as a web browser prints it) \ + /Producer (octosense-pdf-service pdftools_fixture) /CreationDate (D:20261011090000Z) >>" + .to_vec(), + ); + objs[0] = b"<< /Type /Catalog /Pages 2 0 R >>".to_vec(); + objs[1] = b"<< /Type /Pages /Kids [3 0 R] /Count 1 >>".to_vec(); + objs[2] = format!( + "<< /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Resources << /Font << /F1 {helvetica} 0 R /T1 {t1} 0 R /T2 {t2} 0 R \ + /T3 {t3} 0 R /C1 {c1} 0 R >> >> /Contents {contents} 0 R >>" + ) + .into_bytes(); + let mut out = b"%PDF-1.7\n%\xe2\xe3\xcf\xd3\n".to_vec(); + let mut offsets = Vec::new(); + for (i, body) in objs.iter().enumerate() { + offsets.push(out.len()); + out.extend(format!("{} 0 obj\n", i + 1).bytes()); + out.extend(body); + out.extend(b"\nendobj\n"); + } + let xref = out.len(); + out.extend(format!("xref\n0 {}\n0000000000 65535 f \n", objs.len() + 1).bytes()); + for offset in offsets { + out.extend(format!("{offset:010} 00000 n \n").bytes()); + } + out.extend(format!("trailer\n<< /Size {} /Root 1 0 R /Info {info} 0 R >>\nstartxref\n{xref}\n%%EOF\n", objs.len() + 1).bytes()); + out +} + +/// Add an object: its number. +fn add(objs: &mut Vec>, body: Vec) -> usize { + objs.push(body); + objs.len() +} + +/// A stream object of `data`, with `extra` entries in its dictionary. +fn pdf_stream(data: &[u8], extra: &str) -> Vec { + let mut out = format!("<< /Length {}{extra} >>\nstream\n", data.len()).into_bytes(); + out.extend_from_slice(data); + out.extend_from_slice(b"\nendstream"); + out +} + +/// A glyph: its advance in thousandths of an em, and the filled boxes +/// `[x, y, w, h]` that draw it, y up from the baseline. +struct Glyph { + advance: i16, + boxes: Vec<[i16; 4]>, +} + +impl Glyph { + /// Its bounding box `[x0, y0, x1, y1]` (all zero for a blank glyph). + fn bounds(&self) -> [i16; 4] { + self.boxes.iter().fold(None, |b: Option<[i16; 4]>, r| { + let r = [r[0], r[1], r[0] + r[2], r[1] + r[3]]; + Some(b.map_or(r, |b| [b[0].min(r[0]), b[1].min(r[1]), b[2].max(r[2]), b[3].max(r[3])])) + }) + .unwrap_or([0; 4]) + } +} + +/// A 5 × 7 bitmap (top row first, the leftmost pixel the high bit) of each +/// Latin character the sample draws in its own fonts. +fn latin_bitmap(c: char) -> [u8; 7] { + match c { + 'S' => [0b01111, 0b10000, 0b10000, 0b01110, 0b00001, 0b00001, 0b11110], + 't' => [0b00100, 0b00100, 0b11111, 0b00100, 0b00100, 0b00100, 0b00011], + 'u' => [0b00000, 0b00000, 0b10001, 0b10001, 0b10001, 0b10011, 0b01101], + 'd' => [0b00001, 0b00001, 0b01101, 0b10011, 0b10001, 0b10011, 0b01101], + 'i' => [0b00100, 0b00000, 0b01100, 0b00100, 0b00100, 0b00100, 0b01110], + 'o' => [0b00000, 0b00000, 0b01110, 0b10001, 0b10001, 0b10001, 0b01110], + '0' => [0b01110, 0b10001, 0b10011, 0b10101, 0b11001, 0b10001, 0b01110], + '2' => [0b01110, 0b10001, 0b00001, 0b00010, 0b00100, 0b01000, 0b11111], + '3' => [0b11110, 0b00001, 0b00001, 0b01110, 0b00001, 0b00001, 0b11110], + '4' => [0b00010, 0b00110, 0b01010, 0b10010, 0b11111, 0b00010, 0b00010], + '6' => [0b00110, 0b01000, 0b10000, 0b11110, 0b10001, 0b10001, 0b01110], + _ => [0; 7], + } +} + +/// A Latin character in 100-unit pixels from its bitmap, each row's runs one +/// box; a space is blank. Advances: 600, a space 300. +fn latin_glyph(c: char) -> Glyph { + if c == ' ' { + return Glyph { advance: 300, boxes: Vec::new() }; + } + let mut boxes = Vec::new(); + for (row, bits) in latin_bitmap(c).iter().enumerate() { + let y = (6 - row as i16) * 100; + let mut col = 0; + while col < 5 { + if bits >> (4 - col) & 1 == 0 { + col += 1; + continue; + } + let start = col; + while col < 5 && bits >> (4 - col) & 1 == 1 { + col += 1; + } + boxes.push([50 + start as i16 * 100, y, (col - start) as i16 * 100, 100]); + } + } + Glyph { advance: 600, boxes } +} + +/// A Chinese character's placeholder: a top stroke and a spine, and strokes +/// picked by its code point, so the sample's characters look different. +fn cjk_glyph(c: char) -> Glyph { + let n = c as u32; + let mut boxes = vec![[120, 700, 760, 70], [465, -40, 70, 800]]; + let strokes = [[120, 470, 760, 60], [120, 240, 760, 60], [120, 20, 760, 60], [200, 120, 60, 520], [740, 120, 60, 520], [300, 560, 400, 50]]; + for (bit, stroke) in strokes.iter().enumerate() { + if n >> bit & 1 == 1 { + boxes.push(*stroke); + } + } + Glyph { advance: 1000, boxes } +} + +/// A ToUnicode CMap: code `i + 1` (`bytes` long) is `chars[i]`. +fn to_unicode(chars: &[char], bytes: usize) -> String { + let digits = bytes * 2; + let (lo, hi) = if bytes == 1 { ("00", "FF") } else { ("0000", "FFFF") }; + let mut s = format!( + "/CIDInit /ProcSet findresource begin\n12 dict begin\nbegincmap\n/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> def\n\ + /CMapName /Adobe-Identity-UCS def\n/CMapType 2 def\n1 begincodespacerange\n<{lo}> <{hi}>\nendcodespacerange\n{} beginbfchar\n", + chars.len() + ); + for (i, c) in chars.iter().enumerate() { + let mut units = [0u16; 2]; + let utf16: String = c.encode_utf16(&mut units).iter().map(|u| format!("{u:04X}")).collect(); + s.push_str(&format!("<{:0digits$X}> <{utf16}>\n", i + 1)); + } + s.push_str("endbfchar\nendcmap\nCMapName currentdict /CMap defineresource pop\nend\nend\n"); + s +} + +/// An unnamed Type 3 font as a browser embeds one: `chars` get the codes 1, +/// 2, … in order, each drawn by `glyph`, with a ToUnicode map. Its number. +fn type3(objs: &mut Vec>, chars: &[char], glyph: fn(char) -> Glyph) -> usize { + let (mut procs, mut widths) = (Vec::new(), Vec::new()); + for (i, &c) in chars.iter().enumerate() { + let g = glyph(c); + let [x0, y0, x1, y1] = g.bounds(); + let mut draw = format!("{} 0 {x0} {y0} {x1} {y1} d1\n", g.advance); + for [x, y, w, h] in &g.boxes { + draw.push_str(&format!("{x} {y} {w} {h} re\n")); + } + draw.push_str("f\n"); + procs.push(format!("/g{} {} 0 R", i + 1, add(objs, pdf_stream(draw.as_bytes(), "")))); + widths.push(g.advance.to_string()); + } + let cmap = add(objs, pdf_stream(to_unicode(chars, 1).as_bytes(), "")); + let names: Vec = (1..=chars.len()).map(|i| format!("/g{i}")).collect(); + add( + objs, + format!( + "<< /Type /Font /Subtype /Type3 /FontBBox [0 -120 1000 880] /FontMatrix [0.001 0 0 0.001 0 0] /CharProcs << {} >> \ + /Encoding << /Type /Encoding /Differences [1 {}] >> /FirstChar 1 /LastChar {} /Widths [{}] /ToUnicode {cmap} 0 R /Resources << >> >>", + procs.join(" "), + names.join(" "), + chars.len(), + widths.join(" ") + ) + .into_bytes(), + ) +} + +/// A CID-keyed TrueType subset (Type0, Identity-H) named `name`, with a glyph +/// for each of `chars` and no other: CID `i + 1` is `chars[i]`, its program +/// embedded (FontFile2) and its widths in `/W`. Its number. +fn cid_subset(objs: &mut Vec>, name: &str, chars: &[char]) -> usize { + let glyphs: Vec = chars.iter().map(|&c| if c.is_ascii() { latin_glyph(c) } else { cjk_glyph(c) }).collect(); + let program = truetype(&glyphs); + let file = add(objs, pdf_stream(&program, &format!(" /Length1 {}", program.len()))); + let descriptor = add( + objs, + format!( + "<< /Type /FontDescriptor /FontName /{name} /Flags 4 /FontBBox [0 -120 1000 880] /ItalicAngle 0 /Ascent 880 /Descent -120 \ + /CapHeight 700 /StemV 80 /FontFile2 {file} 0 R >>" + ) + .into_bytes(), + ); + let widths: Vec = glyphs.iter().map(|g| g.advance.to_string()).collect(); + let cid = add( + objs, + format!( + "<< /Type /Font /Subtype /CIDFontType2 /BaseFont /{name} /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> \ + /FontDescriptor {descriptor} 0 R /DW 1000 /W [1 [{}]] /CIDToGIDMap /Identity >>", + widths.join(" ") + ) + .into_bytes(), + ); + let cmap = add(objs, pdf_stream(to_unicode(chars, 2).as_bytes(), "")); + add(objs, format!("<< /Type /Font /Subtype /Type0 /BaseFont /{name} /Encoding /Identity-H /DescendantFonts [{cid} 0 R] /ToUnicode {cmap} 0 R >>").into_bytes()) +} + +/// A TrueType program whose glyph 0 is blank (.notdef) and glyph `i + 1` +/// draws `glyphs[i]`'s boxes, one contour each: the tables a renderer needs +/// to draw outlines by glyph id (`glyf`, `head`, `hhea`, `hmtx`, `loca`, +/// `maxp`), which is how a CID-keyed font with an identity CIDToGIDMap reaches +/// its glyphs. +fn truetype(glyphs: &[Glyph]) -> Vec { + let blank = Glyph { advance: 500, boxes: Vec::new() }; + let all: Vec<&Glyph> = std::iter::once(&blank).chain(glyphs).collect(); + let push16 = |v: &mut Vec, x: i32| v.extend_from_slice(&(x as u16).to_be_bytes()); + let (mut glyf, mut loca, mut hmtx) = (Vec::new(), Vec::new(), Vec::new()); + let (mut most_points, mut most_contours) = (0, 0); + for g in &all { + loca.extend_from_slice(&(glyf.len() as u32).to_be_bytes()); + let [x0, y0, x1, y1] = g.bounds(); + push16(&mut hmtx, i32::from(g.advance)); + push16(&mut hmtx, i32::from(x0)); + if g.boxes.is_empty() { + continue; + } + let n = g.boxes.len() as i32; + most_points = most_points.max(n * 4); + most_contours = most_contours.max(n); + for v in [n, i32::from(x0), i32::from(y0), i32::from(x1), i32::from(y1)] { + push16(&mut glyf, v); + } + for k in 0..n { + push16(&mut glyf, k * 4 + 3); + } + push16(&mut glyf, 0); // no instructions + glyf.extend(std::iter::repeat_n(1u8, (n * 4) as usize)); // every point on the curve + // Each box clockwise from its lower left, as deltas from the point before. + let points: Vec<(i32, i32)> = g + .boxes + .iter() + .flat_map(|&[x, y, w, h]| { + let (x, y, w, h) = (i32::from(x), i32::from(y), i32::from(w), i32::from(h)); + [(x, y), (x, y + h), (x + w, y + h), (x + w, y)] + }) + .collect(); + for axis in 0..2 { + let mut last = 0; + for p in &points { + let v = if axis == 0 { p.0 } else { p.1 }; + push16(&mut glyf, v - last); + last = v; + } + } + while glyf.len() % 4 != 0 { + glyf.push(0); + } + } + loca.extend_from_slice(&(glyf.len() as u32).to_be_bytes()); + let count = all.len() as i32; + let mut head = Vec::new(); + for v in [1, 0] { + push16(&mut head, v); // version 1.0 + } + head.extend_from_slice(&0x0001_0000u32.to_be_bytes()); // font revision + head.extend_from_slice(&0u32.to_be_bytes()); // checksum adjustment + head.extend_from_slice(&0x5F0F_3CF5u32.to_be_bytes()); // magic number + push16(&mut head, 3); // flags: baseline and left side bearing at 0 + push16(&mut head, 1000); // units per em + head.extend_from_slice(&[0; 16]); // created, modified + for v in [0, -120, 1000, 880, 0, 8, 2, 1, 0] { + push16(&mut head, v); // bounds, mac style, lowest ppem, direction, long loca, glyph format + } + let mut hhea = 0x0001_0000u32.to_be_bytes().to_vec(); + for v in [880, -120, 0, 1000, 0, 0, 1000, 1, 0, 0, 0, 0, 0, 0, 0, count] { + push16(&mut hhea, v); // ascender … caret, reserved, metric format, metrics count + } + let mut maxp = 0x0001_0000u32.to_be_bytes().to_vec(); + for v in [count, most_points, most_contours, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0] { + push16(&mut maxp, v); + } + let tables: [(&[u8; 4], Vec); 6] = [(b"glyf", glyf), (b"head", head), (b"hhea", hhea), (b"hmtx", hmtx), (b"loca", loca), (b"maxp", maxp)]; + let mut out = 0x0001_0000u32.to_be_bytes().to_vec(); + for v in [6, 64, 2, 32] { + push16(&mut out, v); // tables, search range, entry selector, range shift + } + let mut offset = 12 + 16 * tables.len(); + let mut data = Vec::new(); + for (tag, table) in &tables { + let mut padded = table.clone(); + while padded.len() % 4 != 0 { + padded.push(0); + } + let sum = padded.chunks(4).fold(0u32, |s, w| s.wrapping_add(u32::from_be_bytes([w[0], w[1], w[2], w[3]]))); + out.extend_from_slice(*tag); + out.extend_from_slice(&sum.to_be_bytes()); + out.extend_from_slice(&(offset as u32).to_be_bytes()); + out.extend_from_slice(&(table.len() as u32).to_be_bytes()); + offset += padded.len(); + data.extend(padded); + } + out.extend(data); + out +} diff --git a/apps/pdf/host-service/src/change.rs b/apps/pdf/host-service/src/change.rs index 9f3390021..015c2c341 100644 --- a/apps/pdf/host-service/src/change.rs +++ b/apps/pdf/host-service/src/change.rs @@ -178,44 +178,82 @@ pub(crate) fn pages(a: &Json, cx: &Ctx) -> Result { } } -/// `pdf.edit_text {doc, page, paragraph?, line?, text, align?, color?}`: -/// `align` and `color` format a paragraph (the module doc's review). -pub(crate) fn edit_text(a: &Json, cx: &Ctx) -> Result { - const M: &str = "pdf.edit_text"; - args::only(a, &["doc", "page", "paragraph", "line", "text", "align", "color"], M)?; - let page = args::positive(a, "page", M)?; - let text = args::opt_str(a, "text", M, MAX_EDIT)?.ok_or_else(|| invalid(format!("{M} needs `text`")))?; - let paragraph = args::opt_int(a, "paragraph", M)?; - let line = args::opt_int(a, "line", M)?; - let align = match args::opt_str(a, "align", M, 16)? { - Some(al) if ALIGNS.contains(&al) => Some(al), - Some(al) => return Err(invalid(format!("{M}: `align` is {}, not {al:?}", ALIGNS.join(", ")))), - None => None, - }; - let color = match args::opt_str(a, "color", M, 16)? { - Some(c) => Some(hex_color(c).ok_or_else(|| invalid(format!("{M}: `color` is #rrggbb, not {c:?}")))?), - None => None, - }; - let mut call = json!({ "page": page, "text": text }); - match (paragraph, line) { - (Some(n), None) if n >= 1 => { - call["paragraph"] = json!(n); - if let Some(align) = align { - call["align"] = json!(align); +/// What an edit names: a paragraph or a line, by its 1-based number from +/// `pdf.lines`. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub(crate) enum Target { + Paragraph(u64), + Line(u64), +} + +/// One edit as `pdf.edit_text` and `pdf.edit_check` take it, checked: the +/// page, what it names, the new text, and a paragraph's alignment (one of +/// [`ALIGNS`]) and colour (`#rrggbb`, as the service writes it). +pub(crate) struct EditCall<'a> { + pub page: u64, + pub target: Target, + pub text: &'a str, + pub align: Option<&'a str>, + pub color: Option, +} + +impl<'a> EditCall<'a> { + /// Read `{doc, page, paragraph?, line?, text, align?, color?}` for method + /// `m`: `align` and `color` format a paragraph (the module doc's review). + pub(crate) fn read(a: &'a Json, m: &str) -> Result { + args::only(a, &["doc", "page", "paragraph", "line", "text", "align", "color"], m)?; + let page = args::positive(a, "page", m)?; + let text = args::opt_str(a, "text", m, MAX_EDIT)?.ok_or_else(|| invalid(format!("{m} needs `text`")))?; + let paragraph = args::opt_int(a, "paragraph", m)?; + let line = args::opt_int(a, "line", m)?; + let align = match args::opt_str(a, "align", m, 16)? { + Some(al) if ALIGNS.contains(&al) => Some(al), + Some(al) => return Err(invalid(format!("{m}: `align` is {}, not {al:?}", ALIGNS.join(", ")))), + None => None, + }; + let color = match args::opt_str(a, "color", m, 16)? { + Some(c) => Some(hex_color(c).ok_or_else(|| invalid(format!("{m}: `color` is #rrggbb, not {c:?}")))?), + None => None, + }; + let target = match (paragraph, line) { + (Some(n), None) if n >= 1 => Target::Paragraph(n as u64), + (None, Some(_)) if align.is_some() || color.is_some() => { + return Err(invalid(format!("{m}: `align` and `color` format a paragraph: give `paragraph`, a number from pdf.lines, not `line`"))); } - if let Some(color) = color { - call["color"] = json!(color); + (None, Some(n)) if n >= 1 => Target::Line(n as u64), + _ => return Err(invalid(format!("{m}: give exactly one of `paragraph` or `line`, a number from pdf.lines"))), + }; + Ok(EditCall { page, target, text, align, color }) + } + + /// The engine's `text_edit` arguments, built from the checked values. + fn engine_args(&self) -> Json { + let mut call = json!({ "page": self.page, "text": self.text }); + match self.target { + Target::Paragraph(n) => { + call["paragraph"] = json!(n); + if let Some(align) = self.align { + call["align"] = json!(align); + } + if let Some(color) = &self.color { + call["color"] = json!(color); + } } + Target::Line(n) => call["line"] = json!(n), } - (None, Some(_)) if align.is_some() || color.is_some() => { - return Err(invalid(format!("{M}: `align` and `color` format a paragraph: give `paragraph`, a number from pdf.lines, not `line`"))); - } - (None, Some(n)) if n >= 1 => call["line"] = json!(n), - _ => return Err(invalid(format!("{M}: give exactly one of `paragraph` or `line`, a number from pdf.lines"))), + call } +} + +/// `pdf.edit_text {doc, page, paragraph?, line?, text, align?, color?}`. A +/// refusal is in plain words ([`codes::edit_refused`]), the ones +/// `pdf.edit_check` gives for the same edit. +pub(crate) fn edit_text(a: &Json, cx: &Ctx) -> Result { + const M: &str = "pdf.edit_text"; + let edit = EditCall::read(a, M)?; docs::with_doc(a, cx, M, |doc| { - doc.size(page)?; - doc.call("text_edit", call).map_err(|e| codes::refused(&e))?; + doc.size(edit.page)?; + doc.call("text_edit", edit.engine_args()).map_err(|e| codes::edit_refused(&e.to_string(), edit.text))?; doc.changed(); Ok(json!({ "edited": true })) }) diff --git a/apps/pdf/host-service/src/codes.rs b/apps/pdf/host-service/src/codes.rs index 7a0e3c9aa..f5b265f2a 100644 --- a/apps/pdf/host-service/src/codes.rs +++ b/apps/pdf/host-service/src/codes.rs @@ -114,3 +114,160 @@ pub(crate) fn area(words: impl Display) -> String { invalid(words) } } + +/// The engine's refusal of a text edit (`pdf.edit_text`, and `pdf.edit_check` +/// asking the same), in words for a person, still `invalid:` as SERVICE.md +/// has it: the engine's own words name a build setting, a font file or a +/// Unicode code point, never what to do. +/// +/// - Text the paragraph's font can't show, which the engine then draws in a +/// stand-in font: Helvetica, Times or Courier show only Latin text, and its +/// fallback for everything else is a Japanese face this build leaves out +/// ("needs PdfCraft's Japanese fallback font, which this build doesn't +/// include"), lacks a character ("has no glyph for U+…"), or holds at most +/// 240 different characters. +/// - A document the engine opened for reading only, or whose security +/// settings forbid changes (PDF Tools takes no passwords). +/// - A paragraph or line number that is no longer on the page. +/// +/// Anything else keeps the engine's words. +pub(crate) fn edit_refused(words: &str, text: &str) -> String { + let has = |s: &str| words.contains(s); + if has("Japanese fallback font has no glyph for U+") || has("Japanese fallback glyph U+") { + // One character the fallback face lacks (a build with the face). + let missing = words.split("U+").nth(1).and_then(|hex| u32::from_str_radix(hex.get(..hex.find(|c: char| !c.is_ascii_hexdigit()).unwrap_or(hex.len()))?, 16).ok()); + if let Some(c) = missing.and_then(char::from_u32) { + return invalid(format!("PDF Tools has no font that can draw {} yet, so it can't type it into this PDF.", quoted(&[c]))); + } + return invalid(unshowable(text)); + } + if has("Japanese replacement has too many unique characters") { + return invalid("That's more different characters than PDF Tools can type into one paragraph: shorten the text, or edit it in parts."); + } + if has("Japanese fallback") || has("can show") || has("can't be shown") { + return invalid(unshowable(text)); + } + if has("can't be edited") { + return invalid("This PDF opens for reading only, so PDF Tools can't change its text."); + } + if has("security settings don't allow") { + return invalid("This PDF's security settings don't allow changes, so PDF Tools can't edit it."); + } + if has("is out of range") || has("has no paragraph") || has("has no line") || has("the page's content changed") { + return invalid("That text isn't on the page any more: click it again."); + } + if has("has no font") { + return invalid("PDF Tools can't edit this text: the PDF doesn't say which font draws it."); + } + if needs_password(words) { + return fail(Code::Protected, "that PDF is protected with a password, and PDF Tools does not open those yet"); + } + invalid(words) +} + +/// Why `text` can't be typed into the PDF in a font PDF Tools has: Chinese, +/// Japanese or Korean text, or the characters no stand-in font shows. +fn unshowable(text: &str) -> String { + if text.chars().any(is_cjk) { + return "PDF Tools can't edit Chinese, Japanese or Korean text yet.".into(); + } + let mut odd: Vec = Vec::new(); + for c in text.chars().filter(|c| !c.is_whitespace() && !is_win_ansi(*c)) { + if !odd.contains(&c) { + odd.push(c); + } + } + if odd.is_empty() { + return "PDF Tools can't type this text into this PDF yet.".into(); + } + format!("PDF Tools can't type {} into a PDF yet.", quoted(&odd)) +} + +/// Characters quoted for a sentence: “a”, “b” or “c”; more than five as the +/// first five “and others like them”. +fn quoted(chars: &[char]) -> String { + let each: Vec = chars.iter().take(5).map(|c| format!("“{c}”")).collect(); + if chars.len() > 5 { + return format!("{} and others like them", each.join(", ")); + } + match each.split_last() { + None => String::new(), + Some((last, [])) => last.clone(), + Some((last, rest)) => format!("{} or {last}", rest.join(", ")), + } +} + +/// Chinese, Japanese or Korean script, or its punctuation and full-width +/// forms. +pub(crate) fn is_cjk(c: char) -> bool { + matches!(c as u32, + 0x1100..=0x11ff // Hangul jamo + | 0x2e80..=0x2fdf // radicals + | 0x3000..=0x303f // CJK symbols and punctuation + | 0x3040..=0x30ff // Hiragana, Katakana + | 0x3100..=0x318f // Bopomofo, Hangul compatibility jamo + | 0x31a0..=0x31ff // Bopomofo extended, strokes, Katakana extensions + | 0x3400..=0x4dbf // CJK extension A + | 0x4e00..=0x9fff // CJK unified ideographs + | 0xa960..=0xa97f // Hangul jamo extended A + | 0xac00..=0xd7ff // Hangul syllables, jamo extended B + | 0xf900..=0xfaff // compatibility ideographs + | 0xfe30..=0xfe4f // compatibility forms + | 0xff00..=0xffef // half-width and full-width forms + | 0x20000..=0x3134f) // extensions B to G +} + +/// The characters the engine's stand-in fonts show (WinAnsiEncoding), as +/// pdfcraft-edit's `is_win_ansi_char` lists them. +fn is_win_ansi(c: char) -> bool { + matches!(c, '\u{20}'..='\u{7e}' | '\u{a0}'..='\u{ff}' | '€' | '‚' | '„' | '…' | '‘' | '’' | '“' | '”' | '•' | '–' | '—' | '™' | '\t') +} + +#[cfg(test)] +mod tests { + use super::*; + + /// The engine's own refusals of an edit, as pdfcraft-edit and + /// pdfcraft-engine word them at the pinned revision, each in words + /// for a person, still `invalid:`. + #[test] + fn an_edits_refusal_is_in_plain_words() { + let no_face = "this text needs PdfCraft's Japanese fallback font, which this build doesn't include \ + (official releases do; to build it in, set CRAFT_FONTS_DIR to a craft-fonts checkout)"; + let cases = [ + (no_face, "测试中文", "invalid: PDF Tools can't edit Chinese, Japanese or Korean text yet."), + (no_face, "こんにちは", "invalid: PDF Tools can't edit Chinese, Japanese or Korean text yet."), + (no_face, "안녕하세요", "invalid: PDF Tools can't edit Chinese, Japanese or Korean text yet."), + (no_face, "Привет", "invalid: PDF Tools can't type “П”, “р”, “и”, “в”, “е” and others like them into a PDF yet."), + (no_face, "x → y", "invalid: PDF Tools can't type “→” into a PDF yet."), + (no_face, "x → y ↔ z", "invalid: PDF Tools can't type “→” or “↔” into a PDF yet."), + (no_face, "Ωmega ≈ ∞", "invalid: PDF Tools can't type “Ω”, “≈” or “∞” into a PDF yet."), + ("Japanese fallback font has no glyph for U+6D4B", "测试", "invalid: PDF Tools has no font that can draw “测” yet, so it can't type it into this PDF."), + ("Japanese replacement has too many unique characters", "…", "invalid: That's more different characters than PDF Tools can type into one paragraph: shorten the text, or edit it in parts."), + ("\"x ☃\" has characters neither ABCDEF+Arial nor Helvetica can show", "x ☃", "invalid: PDF Tools can't type “☃” into a PDF yet."), + ("this document can't be edited: the document structure could not be read for editing", "x", "invalid: This PDF opens for reading only, so PDF Tools can't change its text."), + ( + "the document's security settings don't allow changes to the document; open it with the owner password to make this change", + "x", + "invalid: This PDF's security settings don't allow changes, so PDF Tools can't edit it.", + ), + ("paragraph 9 is out of range: page 1 has 3 paragraphs", "x", "invalid: That text isn't on the page any more: click it again."), + ("page 1 has no line 4", "x", "invalid: That text isn't on the page any more: click it again."), + ("the paragraph has no font", "x", "invalid: PDF Tools can't edit this text: the PDF doesn't say which font draws it."), + ("Edit text failed unexpectedly (boom); the document was not changed", "x", "invalid: Edit text failed unexpectedly (boom); the document was not changed"), + ]; + for (engine, text, plain) in cases { + assert_eq!(edit_refused(engine, text), plain, "{engine}"); + } + } + + #[test] + fn cjk_is_told_from_other_scripts() { + for c in ['中', '文', '。', '「', 'あ', 'カ', '한', 'ㄅ', '!', '𠀀'] { + assert!(is_cjk(c), "{c}"); + } + for c in ['a', 'é', 'Ж', 'α', '→', 'ا', '€', ' '] { + assert!(!is_cjk(c), "{c}"); + } + } +} diff --git a/apps/pdf/host-service/src/doc_tests.rs b/apps/pdf/host-service/src/doc_tests.rs index c159f0095..24157f06e 100644 --- a/apps/pdf/host-service/src/doc_tests.rs +++ b/apps/pdf/host-service/src/doc_tests.rs @@ -878,6 +878,189 @@ fn a_paragraph_takes_an_alignment_and_a_colour() { assert_eq!(w.ok("state", json!({"doc": doc})), edits, "the refusals reached nothing"); } +// ------------------------------------------------------------ edits on a page as a browser prints it + +/// The page `fixture::printed_flyer` writes, open (its handle), with a +/// paragraph's number by its text. +fn flyer() -> (World, String) { + let w = World::new(); + w.put("flyer.pdf", &fixture::printed_flyer()); + let doc = w.open("flyer.pdf"); + (w, doc) +} + +/// Two `[x, y, w, h]` answers within rounding (each is rounded to 1/100 pt +/// on its own). +fn same_box(a: &Json, b: &Json) -> bool { + xywh4(a).iter().zip(xywh4(b)).all(|(x, y)| (x - y).abs() < 0.025) +} + +fn paragraph_n(w: &World, doc: &str, text: &str) -> Json { + let lines = w.ok("lines", json!({"doc": doc, "page": 1})); + lines["paragraphs"].as_array().unwrap().iter().find(|p| p["text"] == text).unwrap_or_else(|| panic!("no paragraph {text:?}: {lines}"))["n"].clone() +} + +/// The engine reads a title a browser printed in pieces as one paragraph a +/// piece, in fonts it can't type most text in: what PDF Tools' Edit must be +/// honest about. (The pieces, the fonts and the joined Chinese lines are the +/// engine's own reading, at the pinned revision.) +#[test] +fn a_printed_title_reads_as_pieces_in_subset_fonts() { + let (w, doc) = flyer(); + let lines = w.ok("lines", json!({"doc": doc, "page": 1})); + let paragraphs: Vec<(String, String)> = lines["paragraphs"].as_array().unwrap().iter().map(|p| (p["text"].as_str().unwrap().to_string(), p["font"].as_str().unwrap().to_string())).collect(); + let text: Vec<&str> = paragraphs.iter().map(|(t, _)| t.as_str()).collect(); + assert_eq!( + text, + [ + "OctoSense sample - a page as a web browser prints it", + "Studio2026", + "春", + "季", + "发布", + "会", + "春季发布会展示新的应用和工具 报名截止 2026 年 4 月 30 日", + "Doors open at nine in the main hall. Bring a laptop and the badge we send you by email.", + ], + "{lines}" + ); + for (t, font) in ¶graphs[1..6] { + assert_eq!(font, "", "{t}: an unnamed Type 3 font, as a browser embeds one"); + } + assert_eq!(paragraphs[6].1, "ABCDEF+FixtureSans-SC", "an embedded subset"); + let fonts = w.ok("info", json!({"doc": doc}))["fonts"].clone(); + let kind = |k: &str| fonts.as_array().unwrap().iter().find(|f| f["kind"] == k).unwrap_or_else(|| panic!("{fonts}")).clone(); + assert_eq!((kind("Type3")["embedded"].clone(), kind("Type3")["name"].clone()), (json!(true), json!("(unnamed)")), "{fonts}"); + assert_eq!((kind("Type0")["embedded"].clone(), kind("Type0")["subset"].clone()), (json!(true), json!(true)), "{fonts}"); +} + +/// `pdf.edit_check` says what an edit would do before PDF Tools makes it: the +/// font it would be drawn in, and the room it would take. It changes +/// nothing. +#[test] +fn an_edit_check_says_when_the_font_or_the_room_changes() { + let (w, doc) = flyer(); + let check = |n: &Json, text: &str| w.ok("edit_check", json!({"doc": doc, "page": 1, "paragraph": n, "text": text})); + let title = paragraph_n(&w, &doc, "Studio2026"); + // Its own text, or its own glyphs in another order: its font, its room. + let same = check(&title, "Studio2026"); + assert_eq!((same["keeps_font"].clone(), same["font"].clone(), same["covers"].clone(), same["off_page"].clone()), (json!(true), json!(""), json!(0), json!(false)), "{same}"); + assert_eq!(xywh4(&same["box"]), [44.62, 97.54, 166.8, 27.8], "{same}"); + let reordered = check(&title, "2026Studio"); + assert_eq!((reordered["keeps_font"].clone(), reordered["covers"].clone()), (json!(true), json!(0)), "{reordered}"); + // Letters the piece's font doesn't have: Helvetica, wider, over 春 and 季. + let longer = check(&title, "Studio2026 Beta"); + assert_eq!((longer["keeps_font"].clone(), longer["font"].clone(), longer["covers"].clone()), (json!(false), json!("Helvetica"), json!(2)), "{longer}"); + assert!(xywh4(&longer["box"])[2] > 166.8 + 30.0, "{longer}"); + // A line takes the same check. + let line = w.ok("lines", json!({"doc": doc, "page": 1}))["lines"].as_array().unwrap().iter().find(|l| l["text"] == "Studio2026").unwrap()["n"].clone(); + let by_line = w.ok("edit_check", json!({"doc": doc, "page": 1, "line": line, "text": "Studio2026 Beta"})); + assert_eq!((by_line["keeps_font"].clone(), by_line["covers"].clone()), (json!(false), json!(2)), "{by_line}"); + + // The Chinese paragraph's embedded subset: its own glyphs keep it… + let chinese = paragraph_n(&w, &doc, "春季发布会展示新的应用和工具 报名截止 2026 年 4 月 30 日"); + let digits = check(&chinese, "2026 4 30"); + assert_eq!((digits["keeps_font"].clone(), digits["font"].clone(), digits["covers"].clone()), (json!(true), json!("ABCDEF+FixtureSans-SC"), json!(0)), "{digits}"); + // …Latin letters it lacks don't, + let latin = check(&chinese, "Hello world"); + assert_eq!((latin["keeps_font"].clone(), latin["font"].clone(), latin["covers"].clone()), (json!(false), json!("Helvetica"), json!(0)), "{latin}"); + // more words wrap into more lines, down over the paragraph below, + let more = check(&chinese, &["2026 4 30"; 12].join(" ")); + assert_eq!((more["keeps_font"].clone(), more["off_page"].clone()), (json!(true), json!(false)), "{more}"); + assert!(more["covers"].as_u64().unwrap() >= 1, "runs into the Helvetica paragraph: {more}"); + // and Chinese without spaces never wraps: one line, off the page. + let long = check(&chinese, &"春季发布会展示新的应用和工具".repeat(4)); + assert_eq!((long["keeps_font"].clone(), long["off_page"].clone()), (json!(true), json!(true)), "{long}"); + + assert_eq!(w.ok("state", json!({"doc": doc})), json!({"edited": false, "can_undo": false, "can_redo": false, "pages": 1}), "a check changes nothing"); +} + +/// What `pdf.edit_check` says is what `pdf.edit_text` then does: the same +/// font and the same box. It reads the open document as it is, unsaved +/// edits included, and counts only text an edit newly runs into. +#[test] +fn an_edit_check_foretells_the_edit() { + let (w, doc) = flyer(); + let title = paragraph_n(&w, &doc, "Studio2026"); + let said = w.ok("edit_check", json!({"doc": doc, "page": 1, "paragraph": title, "text": "Studio2026 Beta"})); + w.ok("edit_text", json!({"doc": doc, "page": 1, "paragraph": title, "text": "Studio2026 Beta"})); + let lines = w.ok("lines", json!({"doc": doc, "page": 1})); + let edited = lines["paragraphs"].as_array().unwrap().iter().find(|p| p["text"] == "Studio2026 Beta").unwrap_or_else(|| panic!("{lines}")).clone(); + assert_eq!(edited["font"], said["font"], "{edited} {said}"); + assert!(same_box(&edited["box"], &said["box"]), "{edited} {said}"); + // Checked again, the edited title is in Helvetica now, already over 春 + // and 季: nothing it newly runs into. + let again = w.ok("edit_check", json!({"doc": doc, "page": 1, "paragraph": edited["n"], "text": "Studio2026 Beta"})); + assert_eq!((again["keeps_font"].clone(), again["font"].clone(), again["covers"].clone()), (json!(true), json!("Helvetica"), json!(0)), "{again}"); + + let chinese = paragraph_n(&w, &doc, "春季发布会展示新的应用和工具 报名截止 2026 年 4 月 30 日"); + let words = ["2026 4 30"; 12].join(" "); + let said = w.ok("edit_check", json!({"doc": doc, "page": 1, "paragraph": chinese, "text": words})); + w.ok("edit_text", json!({"doc": doc, "page": 1, "paragraph": chinese, "text": words})); + let lines = w.ok("lines", json!({"doc": doc, "page": 1})); + let edited = lines["paragraphs"].as_array().unwrap().iter().find(|p| p["text"] == words.as_str()).unwrap_or_else(|| panic!("{lines}")).clone(); + assert_eq!(edited["font"], said["font"], "{edited} {said}"); + assert!(same_box(&edited["box"], &said["box"]), "{edited} {said}"); +} + +/// Text no font PDF Tools has can show is refused, by the check and the +/// edit alike, in words for a person, and the page stays as it was. +#[test] +fn an_edit_the_engine_refuses_is_refused_in_plain_words() { + let (w, doc) = flyer(); + let piece = paragraph_n(&w, &doc, "季"); + let chinese = paragraph_n(&w, &doc, "春季发布会展示新的应用和工具 报名截止 2026 年 4 月 30 日"); + let title = paragraph_n(&w, &doc, "Studio2026"); + for (n, text, words) in [ + (&piece, "夏", "invalid: PDF Tools can't edit Chinese, Japanese or Korean text yet."), + (&chinese, "春季发布会 Hello", "invalid: PDF Tools can't edit Chinese, Japanese or Korean text yet."), + (&chinese, "夏季发布会", "invalid: PDF Tools can't edit Chinese, Japanese or Korean text yet."), + (&title, "Привет", "invalid: PDF Tools can't type “П”, “р”, “и”, “в”, “е” and others like them into a PDF yet."), + (&json!(99), "x", "invalid: That text isn't on the page any more: click it again."), + ] { + let args = json!({"doc": doc, "page": 1, "paragraph": n, "text": text}); + assert_eq!(w.err("edit_check", args.clone()), words, "check {text}"); + assert_eq!(w.err("edit_text", args), words, "edit {text}"); + } + assert_eq!(w.ok("state", json!({"doc": doc}))["edited"], false, "nothing changed"); + assert!(w.ok("text", json!({"doc": doc}))["pages"][0]["text"].as_str().unwrap().contains("春季发布会展示新的应用和工具")); +} + +/// A PDF whose security settings forbid changes (PDF Tools takes no +/// passwords) opens, and an edit says so in plain words. +#[test] +fn a_pdf_locked_against_changes_says_so() { + let dir = tempfile::tempdir().unwrap(); + std::fs::write(dir.path().join("plain.pdf"), paragraph_pdf()).unwrap(); + let mut a = Automation::new().with_root(dir.path()).unwrap(); + let (id, _) = open(&mut a, "plain.pdf").unwrap(); + run(&mut a, "doc_protect", &json!({ "doc": id, "permissions_password": "the owner's", "changes": "none" })).unwrap(); + run(&mut a, "doc_save", &json!({ "doc": id, "path": "locked.pdf" })).unwrap(); + let w = World::new(); + w.put("locked.pdf", &std::fs::read(dir.path().join("locked.pdf")).unwrap()); + let doc = w.open("locked.pdf"); + let n = w.ok("lines", json!({"doc": doc, "page": 1}))["paragraphs"][1]["n"].clone(); + let args = json!({"doc": doc, "page": 1, "paragraph": n, "text": "Changed"}); + let words = "invalid: This PDF's security settings don't allow changes, so PDF Tools can't edit it."; + assert_eq!(w.err("edit_check", args.clone()), words); + assert_eq!(w.err("edit_text", args), words); +} + +/// A plain PDF in a standard font keeps working as before: an edit keeps the +/// font and its room. +#[test] +fn an_edit_check_on_a_plain_pdf_finds_nothing_to_say() { + let w = World::new().samples(); + let doc = w.open("Apartment lease.pdf"); + let lines = w.ok("lines", json!({"doc": doc, "page": 1})); + let clause = lines["paragraphs"].as_array().unwrap().iter().find(|p| p["text"].as_str().unwrap().starts_with("This agreement is made")).unwrap().clone(); + let check = w.ok("edit_check", json!({"doc": doc, "page": 1, "paragraph": clause["n"], "text": "This agreement is made between the landlord and the tenant.", "align": "center", "color": "#c01c28"})); + assert_eq!((check["keeps_font"].clone(), check["font"].clone(), check["covers"].clone(), check["off_page"].clone()), (json!(true), json!("Times-Roman"), json!(0), json!(false)), "{check}"); + let b = xywh4(&check["box"]); + let was = xywh4(&clause["box"]); + assert!(b[1] >= was[1] - 1.0 && b[1] + b[3] <= was[1] + was[3] + 1.0, "within the clause's own lines: {b:?} in {was:?}"); +} + #[test] fn undo_and_redo_across_calls() { let w = World::new().samples(); @@ -1733,6 +1916,7 @@ fn every_v2_method_refuses_arguments_it_does_not_take() { ("pages", json!({"doc": doc, "op": "extract", "pages": [1], "out": "x.pdf", "delete": true})), ("pages", json!({"doc": doc, "op": "rotate", "pages": [1], "angle": 90, "subset": "odd"})), ("edit_text", json!({"doc": doc, "page": 1, "line": 1, "text": "x", "font": "times"})), + ("edit_check", json!({"doc": doc, "page": 1, "line": 1, "text": "x", "size": 20})), ("undo", json!({"doc": doc, "steps": 2})), ("save", json!({"doc": doc, "full": true})), ("export", json!({"doc": doc, "kind": "images", "out_dir": "x", "quality": 50})), @@ -1777,6 +1961,7 @@ fn timings_on_a_typical_page() { time("fill_sign (date)", "fill_sign", json!({"doc": doc, "page": 4, "kind": "date", "at": [60, 300]})); time("pages rotate", "pages", json!({"doc": doc, "op": "rotate", "pages": [1], "angle": 90})); time("page 1 at 96 dpi, after an edit", "page", json!({"doc": doc, "page": 1})); + time("edit_check (a line)", "edit_check", json!({"doc": doc, "page": 2, "line": 1, "text": "Overview"})); time("edit_text (a line)", "edit_text", json!({"doc": doc, "page": 2, "line": 1, "text": "Overview"})); time("undo", "undo", json!({"doc": doc})); time("redo", "redo", json!({"doc": doc})); @@ -1793,5 +1978,11 @@ fn timings_on_a_typical_page() { let big = time("open (112 pages)", "open", json!({"path": "guides.pdf"}))["doc"].clone(); time("its page 1 at 96 dpi", "page", json!({"doc": big, "page": 1})); time("find in 112 pages, first", "find", json!({"doc": big, "query": "garden"})); + // A page as a browser prints it: a title in pieces, Chinese in a subset. + w.put("flyer.pdf", &fixture::printed_flyer()); + let flyer = time("open (a printed page)", "open", json!({"path": "flyer.pdf"}))["doc"].clone(); + time("its lines", "lines", json!({"doc": flyer, "page": 1})); + time("edit_check (a title piece)", "edit_check", json!({"doc": flyer, "page": 1, "paragraph": 2, "text": "Studio2026 Beta"})); + time("edit_check (the Chinese subset)", "edit_check", json!({"doc": flyer, "page": 1, "paragraph": 7, "text": "2026 4 30"})); eprintln!("pdf service timings:\n{}", report.join("\n")); } diff --git a/apps/pdf/host-service/src/fit.rs b/apps/pdf/host-service/src/fit.rs new file mode 100644 index 000000000..11eb88959 --- /dev/null +++ b/apps/pdf/host-service/src/fit.rs @@ -0,0 +1,205 @@ +//! What an edit would do, before PDF Tools makes it (`pdf.edit_check`). +//! +//! Real-world PDFs draw text in fonts the engine can't always type new text +//! in. An embedded subset holds only the glyphs the document uses, and so do +//! a browser's Type 3 fonts; a designed title may come in pieces, one font +//! each. Text the paragraph's font can't show, the engine sets in a stand-in +//! (Helvetica, Times or Courier), with other widths; text no stand-in shows +//! (Chinese, Japanese or Korean, without the fallback face this build leaves +//! out) it refuses. An edited one-line paragraph grows to the right up to the +//! page's margin, and a longer one grows down, over whatever is there. So +//! PDF Tools asks first, and says what will happen before Apply. +//! +//! `pdf.edit_check` takes `pdf.edit_text`'s arguments and answers +//! `{keeps_font, font, box, covers, off_page}`, or the refusal +//! `pdf.edit_text` would give, in the same words ([`codes::edit_refused`]): +//! +//! - `keeps_font`: the new text is drawn in the paragraph's (or line's) own +//! font. `font` names the font it would be drawn in: the stand-in, or the +//! paragraph's own name (`""` for an unnamed one, as `pdf.lines` says). +//! - `box`: where the edited text would be, `[x, y, w, h]` in points from the +//! top left of the displayed page; `null` when no text would show. +//! - `covers`: how many other lines of text on the page the edited text would +//! run into that the paragraph doesn't touch now. +//! - `off_page`: part of the edited text would fall outside the page. +//! +//! **How.** The engine's own editor makes the edit (pdfcraft-edit's +//! `rewrite_block` for a paragraph and `replace_line` for a line, what the +//! engine's `text_edit` runs), on a private copy: a `pdfcraft_cos` document +//! opened on the open document's working bytes (its unsaved edits included), +//! as `review.rs` reads comment dates, and dropped after. The edit's lines are +//! the page's lines after it that weren't on the page before, or that were +//! the paragraph's own; every other line is compared with them. +//! +//! **Review.** No engine command runs and nothing is written: the copy lives +//! in memory, no file is opened or named, and the editor runs no script (a +//! fallback font it would make goes into the copy only). The session is +//! borrowed, never called. The arguments and the page are checked as +//! `pdf.edit_text` checks them, the text is at most 10,000 characters, and +//! the document's read-only state and its security settings refuse as the +//! engine would. A panic in the editor is this call's `damaged:` error and +//! leaves the open document as it was. The cost is the engine's own on the +//! UI thread (#399): opening the working bytes (the object table; objects are +//! read as they are needed) and reading the page's text before and after. + +use std::collections::HashMap; +use std::panic::{catch_unwind, AssertUnwindSafe}; + +use pdfcraft_edit::{Align, BlockStyle, TextLine}; +use serde_json::{json, Value as Json}; + +use crate::args::xywh; +use crate::change::{EditCall, Target}; +use crate::codes::{self, fail, Code}; +use crate::docs::{self, OpenDoc}; +use crate::Ctx; + +/// How far (points) the edited text may cross another line's box, or the +/// page's edge, before it counts: less is rounding. +const SLACK: f64 = 0.5; + +/// `pdf.edit_check {doc, page, paragraph?, line?, text, align?, color?}`. +pub(crate) fn edit_check(a: &Json, cx: &Ctx) -> Result { + const M: &str = "pdf.edit_check"; + let edit = EditCall::read(a, M)?; + docs::with_doc(a, cx, M, |doc| { + doc.size(edit.page)?; + check(doc, &edit) + }) +} + +/// A line's identity across the edit: its text, its box to 1/100 pt and its +/// font's resource name. +type Key = (String, [i64; 4], String); + +fn key(l: &TextLine) -> Key { + (l.text.clone(), l.rect.map(|v| (v * 100.0).round() as i64), l.font.clone()) +} + +/// The edit `edit` on a copy of `doc` (module doc). +fn check(doc: &OpenDoc, edit: &EditCall) -> Result { + let refused = |words: &str| codes::edit_refused(words, edit.text); + let page = (edit.page - 1) as usize; + let engine = doc.engine.session().docs().iter().find(|d| d.id.0 == doc.id).ok_or_else(|| fail(Code::Damaged, "the engine no longer holds this document"))?; + if let Some(reason) = &engine.read_only_reason { + return Err(refused(&format!("this document can't be edited: {reason}"))); + } + let view = engine.info.pages.get(page).cloned().ok_or_else(|| refused(&format!("page {} is out of range", edit.page)))?; + let mut copy = pdfcraft_cos::Document::open_with_password(engine.bytes.clone(), engine.password.as_deref()) + .map_err(|e| refused(&format!("this document can't be edited: {e}")))?; + if copy.permissions().is_some_and(|p| !p.modify()) { + return Err(refused("the document's security settings don't allow changes to the document")); + } + let before = pdfcraft_edit::text_lines(©, page).map_err(|e| refused(&e.to_string()))?; + // The paragraph's (or line's) own lines, and its font as pdf.lines names it. + let (own, font) = match edit.target { + Target::Paragraph(n) => { + let blocks = pdfcraft_edit::text_blocks(©, page).map_err(|e| refused(&e.to_string()))?; + let b = blocks.get((n - 1) as usize).ok_or_else(|| refused(&format!("paragraph {n} is out of range: page {} has {} paragraphs", edit.page, blocks.len())))?; + (b.lines.clone(), b.base_font.clone()) + } + Target::Line(n) => { + let l = before.get((n - 1) as usize).ok_or_else(|| refused(&format!("line {n} is out of range: page {} has {} lines", edit.page, before.len())))?; + (vec![(n - 1) as usize], l.base_font.clone()) + } + }; + let style = BlockStyle { align: edit.align.map(align), color: edit.color.as_deref().map(rgb), ..BlockStyle::default() }; + let made = catch_unwind(AssertUnwindSafe(|| match edit.target { + Target::Paragraph(n) => pdfcraft_edit::rewrite_block(&mut copy, page, (n - 1) as usize, Some(edit.text), &style), + Target::Line(n) => pdfcraft_edit::replace_line(&mut copy, page, (n - 1) as usize, edit.text), + })) + .map_err(|_| fail(Code::Damaged, "the PDF engine failed unexpectedly on this edit; the document was not changed"))? + .map_err(|e| refused(&e.to_string()))?; + let after = pdfcraft_edit::text_lines(©, page).map_err(|e| refused(&e.to_string()))?; + + // Each of the page's other lines found again is still there; what is + // left is the edited text. + let mut others: HashMap = HashMap::new(); + for (i, l) in before.iter().enumerate() { + if !own.contains(&i) { + *others.entry(key(l)).or_default() += 1; + } + } + let (mut edited, mut kept) = (Vec::new(), Vec::new()); + for l in &after { + match others.get_mut(&key(l)) { + Some(n) if *n > 0 => { + *n -= 1; + kept.push(l.rect); + } + _ => edited.push(l.rect), + } + } + let was: Vec<[f64; 4]> = own.iter().filter_map(|i| before.get(*i)).map(|l| l.rect).collect(); + let covers = kept.iter().filter(|k| edited.iter().any(|e| runs_into(**k, *e)) && !was.iter().any(|w| runs_into(**k, *w))).count(); + let crop = view.crop.map(f64::from); + let off_page = edited.iter().any(|r| r[0] < crop[0] - SLACK || r[1] < crop[1] - SLACK || r[2] > crop[2] + SLACK || r[3] > crop[3] + SLACK); + let whole = edited.iter().copied().reduce(|a, b| [a[0].min(b[0]), a[1].min(b[1]), a[2].max(b[2]), a[3].max(b[3])]); + let shown = match whole { + // Into the displayed page's points, as pdf.lines gives boxes. + Some(b) => { + let (p, q) = (view.user_to_view(b[0] as f32, b[1] as f32), view.user_to_view(b[2] as f32, b[3] as f32)); + xywh(&json!([f64::from(p[0]), f64::from(p[1]), f64::from(q[0]), f64::from(q[1])])) + } + None => Json::Null, + }; + Ok(json!({ + "keeps_font": made.substituted.is_none(), + "font": made.substituted.unwrap_or(font), + "box": shown, + "covers": covers, + "off_page": off_page, + })) +} + +/// Whether two line boxes overlap enough to show: more than [`SLACK`] +/// across, and by more than a quarter of the smaller line's height (lines +/// of a tightly set paragraph touch by less). +fn runs_into(a: [f64; 4], b: [f64; 4]) -> bool { + let across = a[2].min(b[2]) - a[0].max(b[0]); + let down = a[3].min(b[3]) - a[1].max(b[1]); + let tall = (a[3] - a[1]).min(b[3] - b[1]).max(0.01); + across > SLACK && down > tall * 0.25 +} + +/// An alignment as [`crate::change`] checked it. +fn align(name: &str) -> Align { + match name { + "center" => Align::Center, + "right" => Align::Right, + "justify" => Align::Justify, + _ => Align::Left, + } +} + +/// `#rrggbb` (as [`crate::change`] wrote it) as RGB from 0 to 1, as the +/// engine reads a colour. +fn rgb(hex: &str) -> [f64; 3] { + let byte = |i: usize| hex.get(i..i + 2).and_then(|h| u8::from_str_radix(h, 16).ok()).map_or(0.0, |b| f64::from(b) / 255.0); + [byte(1), byte(3), byte(5)] +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn lines_run_into_each_other_only_when_it_shows() { + let line = [10.0, 100.0, 110.0, 112.0]; + assert!(runs_into(line, [100.0, 101.0, 150.0, 113.0]), "the same baseline, ten points over"); + assert!(!runs_into(line, [110.0, 100.0, 150.0, 112.0]), "touching ends"); + assert!(!runs_into(line, [110.3, 100.0, 150.0, 112.0]), "within rounding"); + assert!(!runs_into(line, [10.0, 89.0, 110.0, 101.0]), "a tightly set line below touches by a point"); + assert!(runs_into(line, [10.0, 94.0, 110.0, 106.0]), "a line half under it"); + assert!(!runs_into(line, [10.0, 60.0, 110.0, 72.0]), "far below"); + } + + #[test] + fn colours_and_alignments_reach_the_editor_as_checked() { + assert_eq!(rgb("#c0392b"), [192.0 / 255.0, 57.0 / 255.0, 43.0 / 255.0]); + assert_eq!(rgb("#000000"), [0.0, 0.0, 0.0]); + assert_eq!(align("center"), Align::Center); + assert_eq!(align("justify"), Align::Justify); + assert_eq!(align("left"), Align::Left); + } +} diff --git a/apps/pdf/host-service/src/lib.rs b/apps/pdf/host-service/src/lib.rs index 32291f687..339c90532 100644 --- a/apps/pdf/host-service/src/lib.rs +++ b/apps/pdf/host-service/src/lib.rs @@ -12,9 +12,11 @@ //! `open` keeps the engine's document, its edits and undo history, //! between calls under a handle that later calls name as `doc`; `close`, //! `state`, `page`, `find`, `lines`, `comments`, `comment`, `fields`, -//! `fill`, `fill_sign`, `pages`, `edit_text`, `undo`, `redo`, `save` and -//! `export` work on it, and `info` and `text` take `{doc}` too. Who holds -//! an open document, on which thread, and what releases it: [`docs`]. +//! `fill`, `fill_sign`, `pages`, `edit_text`, `edit_check`, `undo`, +//! `redo`, `save` and `export` work on it, and `info` and `text` take +//! `{doc}` too. Who holds an open document, on which thread, and what +//! releases it: [`docs`]. What an edit would do before it is made (the +//! font it would be drawn in, the room it would take): [`fit`]. //! //! **Where a call works** (ADR 0013, 2026-10-08): the caller's own folder, //! the [`Area`] the shell's resolver gives it ([`set_area_resolver`]): an @@ -62,6 +64,7 @@ mod codes; mod covers; mod dates; mod docs; +mod fit; mod reading; mod review; @@ -188,6 +191,7 @@ fn dispatch_in(method: &str, args: &Json, cx: &Ctx) -> Result { "fill_sign" => review::fill_sign(args, cx), "pages" => change::pages(args, cx), "edit_text" => change::edit_text(args, cx), + "edit_check" => fit::edit_check(args, cx), "undo" => change::history(args, cx, false), "redo" => change::history(args, cx, true), "save" => change::save(args, cx), From 9c75e400717b55658cd20955a0ef1e1280fa3720 Mon Sep 17 00:00:00 2001 From: ymote <151983+ymote@users.noreply.github.com> Date: Sun, 11 Oct 2026 08:52:27 -0700 Subject: [PATCH 6/9] PDF Tools: Edit says before Apply when the font or the room changes The Edit panel asks the engine what the edit would do (pdf.edit_check) when a paragraph is clicked and again when typing, the alignment or the colour pauses, and says it under the Font box: that the paragraph's font can't show the new text, so it is set in Helvetica, Times or Courier; that the text needs more room and runs into N lines nearby; that part of it falls off the page; or, in red, why the engine won't make it, in the service's plain words. A paragraph that is one piece of a line the PDF stores in pieces says how many. While there is a warning Apply reads "Apply anyway"; an edit not checked as it stands is checked first and made at once only if there is nothing to say. An older engine without the check edits as before. The Font box names fonts as a person would ("Menlo Regular", not "ABCDEF+Menlo-Regular"; "Unnamed font" for a browser's Type 3 fonts). The model tests cover the new pure functions, and now also parse the whole script, views and handlers included, which the model VM never ran: one parse error there fails the whole app when it loads. READMEs in English and Chinese describe Editing text and the --edit-sample page. Co-Authored-By: Claude Opus 5.5 --- apps/pdftools/README.md | 53 ++++++- apps/pdftools/README.zh-CN.md | 41 +++++- apps/pdftools/bundle/main.splash | 171 +++++++++++++++++++++-- crates/shell/src/pdftools_model_tests.rs | 112 ++++++++++++++- 4 files changed, 362 insertions(+), 15 deletions(-) diff --git a/apps/pdftools/README.md b/apps/pdftools/README.md index 7f291ece9..08125773e 100644 --- a/apps/pdftools/README.md +++ b/apps/pdftools/README.md @@ -65,7 +65,7 @@ page fits the canvas, up to 100%. | Fill & Sign | The form's fields outlined (required empty ones in red) and listed with their values; choose one to type its value; Add text, Add date and Add initials place a mark where you tap; initials are kept | `pdf.fields`, `pdf.fill`, `pdf.fill_sign` | | Pages | Every page as a large thumbnail: choose pages, Rotate left or right, Delete, Extract (a new PDF in the library), Insert from file (another PDF here), drag a page to move it | `pdf.pages` | | Combine | This PDF and others in order (drag the grip to reorder), each with its pages ("1-4, 9" or All), "One PDF of 31 pages", a name, Combine; the new PDF opens. When the list does not fit the window, it scrolls inside the card and the total, name and Combine stay in view | `pdf.merge` | -| Edit | Click a paragraph: its text becomes editable in place; the right panel shows its font and size, its Alignment (left, centre, right or justify: the one its lines show is chosen, since the engine sets an edited paragraph flush left unless told) and its Colour (its own until you pick one of six); Apply or Cancel | `pdf.lines`, `pdf.edit_text` | +| Edit | Click a paragraph: its text becomes editable in place; the right panel shows its font and size, its Alignment (left, centre, right or justify: the one its lines show is chosen, since the engine sets an edited paragraph flush left unless told) and its Colour (its own until you pick one of six); before Apply it says what the edit would do besides changing the words, or why it can't be made ([Editing text](#editing-text)); Apply (or Apply anyway) or Cancel | `pdf.lines`, `pdf.edit_check`, `pdf.edit_text` | Undo and Redo use the engine's history; Save writes the PDF back (`pdf.undo`, `pdf.redo`, `pdf.save`, `pdf.state`). Closing a tab with unsaved @@ -78,6 +78,49 @@ host sheets and there is none for PDFs yet, so it is not opened), storage full ("Remove a PDF to make room"), eight PDFs already open, unsaved changes when closing, and no engine on the device. +## Editing text + +Edit redraws a paragraph in place with the engine's own editor. Real-world +PDFs limit what that can do, and the right panel says so before Apply. As +you click a paragraph, and again when your typing pauses, the app asks the +engine what the edit would do (`pdf.edit_check`, which makes the edit on a +copy of the document and drops it), so no edit garbles a page unannounced: + +- **Another font.** A PDF usually embeds only the glyphs it uses (a subset + font), and a web browser often prints text in unnamed Type 3 fonts. When + the paragraph's own font can't show the new text, the engine sets the + paragraph in Helvetica, Times or Courier instead, which looks different and + takes another width. The panel names the font it will use. +- **More room.** An edited one-line paragraph grows to the right up to the + page's margin, and a longer one grows down; nothing around it moves. When + the new text would run into other lines of text, or fall off the page, the + panel says so. +- **Chinese, Japanese and Korean.** The engine draws characters a + paragraph's font lacks from a fallback face this build doesn't include, so + it refuses them, and the panel says so plainly: "PDF Tools can't edit + Chinese, Japanese or Korean text yet." Characters the font already has + (the same ones in another order, say) still work. Other text no standard + font shows, such as Cyrillic or Greek, is refused the same way, naming the + characters. +- **A line in pieces.** A browser prints a title whose glyphs span several + fonts as one piece per font, and the engine reads each piece as a + paragraph of its own, so a click selects only that piece. The panel says + how many pieces the line has. + +While the panel has a warning, Apply reads "Apply anyway"; an edit that +hasn't been checked as it stands yet is checked first, and is made at once +only if there is nothing to say. A refusal shows in red and Apply only +repeats it. A document whose security settings forbid changes, or that opens +for reading only, is refused the same way. + +The pdf service's `pdftools_fixture` example writes a page as a web browser +prints it, with all four (a title in five pieces in unnamed Type 3 fonts, +Chinese text in an embedded subset font), to try Edit on: + +```sh +cargo run --locked -p octosense-pdf-service --example pdftools_fixture -- --edit-sample +``` + ## Opening a PDF from this device "Open a PDF from this device" asks the shell's files service to copy one @@ -150,7 +193,13 @@ evaluating the bundle's functions in a script VM part's title, what the library index keeps across a restart, the pages a range names, a find snippet's match in bold, an avatar's initials, a comment's date, the storage line's words, a paragraph's alignment read from -its lines, and what an edit sends. +its lines, what an edit sends, and what the Edit panel says an edit would do +(a font's name, the warnings and "Apply anyway", a line in pieces). They +also parse the whole script, views and handlers included, which the VM there +doesn't run: one parse error fails the whole app when it loads. The +pdf service's own tests hold `pdf.edit_check`'s answers to what the engine +then does, on the `--edit-sample` page (`cargo test --locked -p +octosense-pdf-service`). ```sh cargo test --locked -p octosense-shell --lib pdftools_model diff --git a/apps/pdftools/README.zh-CN.md b/apps/pdftools/README.zh-CN.md index 1026fce9f..7091c61ba 100644 --- a/apps/pdftools/README.zh-CN.md +++ b/apps/pdftools/README.zh-CN.md @@ -54,7 +54,7 @@ PDF Tools 以 1296 x 703 点打开,应用区域为 1292 x 667,即它的宽 | Fill & Sign | 用框线标出表单字段(未填的必填字段为红色)并列出其值;选中一个字段即可输入值;Add text、Add date 和 Add initials 会在点按处放置标记;姓名缩写会被保存 | `pdf.fields`、`pdf.fill`、`pdf.fill_sign` | | Pages | 每页一张大缩略图:选择页面,向左或向右旋转、删除、提取(在资料库中生成新 PDF)、从文件插入(这里的另一个 PDF),拖动页面以移动 | `pdf.pages` | | Combine | 当前 PDF 与其他 PDF 按顺序排列(拖动手柄调整顺序),每个都可指定页面(“1-4, 9”或 All),“One PDF of 31 pages”,名称,Combine;新 PDF 随即打开。列表放不下时在卡片内滚动,总页数、名称和 Combine 保持可见 | `pdf.merge` | -| Edit | 点击一个段落:它的文字可以就地编辑;右侧面板显示字体和字号、Alignment(左对齐、居中、右对齐或两端对齐:默认选中各行所显示的那种,因为引擎在未指定时会把编辑后的段落设为左对齐)和 Colour(在选择六种颜色之一前保持段落原有颜色);Apply 或 Cancel | `pdf.lines`、`pdf.edit_text` | +| Edit | 点击一个段落:它的文字可以就地编辑;右侧面板显示字体和字号、Alignment(左对齐、居中、右对齐或两端对齐:默认选中各行所显示的那种,因为引擎在未指定时会把编辑后的段落设为左对齐)和 Colour(在选择六种颜色之一前保持段落原有颜色);在 Apply 之前,面板会说明这次编辑除了改字之外还会带来什么变化,或者为什么无法进行(见[编辑文字](#编辑文字));Apply(或 Apply anyway)或 Cancel | `pdf.lines`、`pdf.edit_check`、`pdf.edit_text` | Undo 和 Redo 使用引擎的历史记录;Save 把 PDF 写回(`pdf.undo`、`pdf.redo`、`pdf.save`、 `pdf.state`)。关闭有未保存更改的标签时会询问:Save、Don't save 或 Cancel。 @@ -64,6 +64,38 @@ Undo 和 Redo 使用引擎的历史记录;Save 把 PDF 写回(`pdf.undo`、` 宿主自己的面板上处理密码,目前还没有 PDF 的密码面板,因此不打开它)、存储已满(“Remove a PDF to make room”)、已打开八个 PDF、关闭时有未保存的更改,以及设备上没有引擎。 +## 编辑文字 + +Edit 用引擎自带的编辑器在原处重新绘制一个段落。真实世界中的 PDF 限制了它能做到的程度, +右侧面板会在 Apply 之前把这些限制说出来。点击段落时,以及输入停顿时,应用都会询问引擎这次 +编辑会产生什么结果(`pdf.edit_check`:它在文档的一份副本上进行编辑,然后丢弃副本),因此 +任何编辑都不会在没有提示的情况下弄乱页面: + +- **换用其他字体。** PDF 通常只嵌入它用到的字形(子集字体),网页浏览器打印的文字也常常使用 + 没有名字的 Type 3 字体。当段落自己的字体无法显示新文字时,引擎会改用 Helvetica、Times 或 + Courier 来排这个段落,外观不同,宽度也不同。面板会写明将使用哪种字体。 +- **需要更多空间。** 编辑后的单行段落会向右延伸,最远到页面边距;较长的段落会向下延伸;周围 + 的内容都不会移动。如果新文字会压到其他文字行上,或者超出页面,面板会说明。 +- **中文、日文和韩文。** 段落字体中没有的字符,引擎要从一个后备字体中绘制,而本版本不包含这个 + 字体,所以引擎会拒绝这样的文字,面板会直接说明:“PDF Tools can't edit Chinese, Japanese + or Korean text yet.”(PDF Tools 目前还不能编辑中文、日文或韩文文字。)字体中已有的字符(例如 + 同样的字换个顺序)仍然可以使用。西里尔字母、希腊字母等其他标准字体无法显示的文字也会以同样 + 的方式被拒绝,并列出这些字符。 +- **一行文字被拆成几块。** 如果一个标题的字形分布在几种字体中,浏览器会按字体把它打印成几块, + 引擎则把每一块读作一个独立的段落,所以点击只会选中那一块。面板会说明这一行被拆成了几块。 + +只要面板上有警告,Apply 就显示为“Apply anyway”;还没有按当前内容检查过的编辑会先检查, +只有在没有任何需要说明的情况时才会立即进行。拒绝的原因以红色显示,此时按 Apply 只会再次 +显示它。安全设置禁止修改的文档,或者只能以只读方式打开的文档,也会以同样的方式被拒绝。 + +pdf 服务的 `pdftools_fixture` 示例可以写出一页“网页浏览器打印出来”的页面,包含上述全部四种 +情况(一个以无名 Type 3 字体分成五块的标题,以及使用嵌入式子集字体的中文文字),可用来试用 +Edit: + +```sh +cargo run --locked -p octosense-pdf-service --example pdftools_fixture -- --edit-sample +``` + ## 从设备打开 PDF “Open a PDF from this device”请 Shell 的文件服务把用户在宿主自己的对话框中选择的一个文件 @@ -118,7 +150,12 @@ PDF to make room”)、已打开八个 PDF、关闭时有未保存的更改, 资料库的规则是 `main.splash` 中的纯函数,由 Rust 在脚本虚拟机中执行包内函数来测试 (`crates/shell/src/pdftools_model_tests.rs`):导入的 PDF 的标题、拆分出的部分的标题、 资料库索引在重启后保留的内容、页面范围所指的页面、查找摘要中加粗的匹配、头像中的姓名缩写、 -评论的日期、状态栏的存储用量文字、从各行读出的段落对齐方式,以及一次编辑发送的内容。 +评论的日期、状态栏的存储用量文字、从各行读出的段落对齐方式、一次编辑发送的内容,以及 Edit +面板对一次编辑会产生什么结果的说明(字体的名称、警告和“Apply anyway”、被拆成几块的一行)。 +它们还会解析整个脚本,包括那里的虚拟机不会运行的界面和处理函数:只要有一处解析错误,整个应用 +在加载时就会失败。 +pdf 服务自己的测试在 `--edit-sample` 页面上核对 `pdf.edit_check` 的回答与引擎随后实际所做的 +是否一致(`cargo test --locked -p octosense-pdf-service`)。 ```sh cargo test --locked -p octosense-shell --lib pdftools_model diff --git a/apps/pdftools/bundle/main.splash b/apps/pdftools/bundle/main.splash index de7746091..a9c466963 100644 --- a/apps/pdftools/bundle/main.splash +++ b/apps/pdftools/bundle/main.splash @@ -399,6 +399,80 @@ fn colour_name(hex){ for c in TEXT_COLOURS { if c.hex == hex { return c.name } } hex } +// A font's name for a person. The engine names a font as the PDF does: a +// subset with its six-letter tag ("ABCDEF+Menlo-Regular"), an unnamed one +// (a web browser's Type 3 fonts) as "", and its own Japanese fallback as +// "Shippori Mincho Type3". +fn font_label(font){ + let f = "" + font + if f == "" { return "Unnamed font" } + f.replace(regex("^[A-Z][A-Z][A-Z][A-Z][A-Z][A-Z]\\+"), "").replace(regex(" Type3$"), "").replace(regex("-", "g"), " ") +} +// The Edit panel's Font box: the paragraph's font and its size. +fn font_text(e){ + let size = pick(e.size > 0, "" + round(e.size * 10) / 10 + " pt", "") + if size == "" { return font_label(e.font) } + font_label(e.font) + " · " + size +} +// What an edit is checked for (pdf.edit_check): its text, alignment and +// colour as they stand. +fn edit_key(e){ e.draft + "\n" + e.align + "\n" + pick(e.color == nil, "", e.color) } +// What an edit would change besides its words, from what pdf.edit_check +// answered (`check`; nil before it answers, or from an engine without the +// check): another font, text over its neighbours, text off the page. +fn edit_risks(check){ + let out = [] + if check == nil { return out } + if !optional(check, "keeps_font", true) { + out.push("This paragraph's font can't show all of this text, so PDF Tools sets it in " + font_label(optional(check, "font", "")) + ".") + } + let covers = optional(check, "covers", 0) + if covers > 0 { out.push("It needs more room than the paragraph has and runs into " + plural(covers, "line", "lines") + " of text nearby.") } + if optional(check, "off_page", false) { out.push("Part of it falls off the page.") } + out +} +// Apply says "Apply anyway" while the check has something to say. +fn apply_label(e){ pick(e.check_error == "" && edit_risks(e.check).len() > 0, "Apply anyway", "Apply") } +// How many pieces the PDF keeps the line of paragraph `n` in: the +// paragraphs (from pdf.lines) on its line (their boxes overlap by half their +// height) that follow on from it end to end (a gap under half the text's +// size), it included. A web browser prints a title whose glyphs span several +// fonts as one piece per font, and the engine reads each piece as a +// paragraph. +fn line_pieces(paragraphs, n){ + let own = nil + for p in paragraphs { if p.n == n { own = p } } + if own == nil { return 1 } + let row = [] + for p in paragraphs { + let top = max(p.box[1], own.box[1]) + let bottom = min(p.box[1] + p.box[3], own.box[1] + own.box[3]) + if bottom - top > min(p.box[3], own.box[3]) * 0.5 { row.push(p) } + } + let lo = own.box[0] + let hi = own.box[0] + own.box[2] + let taken = [own.n] + let grew = true + loop { + if !grew { break } + grew = false + for p in row { + let gap = max(optional(p, "size", 0), optional(own, "size", 0)) * 0.5 + if !has(taken, p.n) && p.box[0] <= hi + gap && p.box[0] + p.box[2] >= lo - gap { + taken.push(p.n) + lo = min(lo, p.box[0]) + hi = max(hi, p.box[0] + p.box[2]) + grew = true + } + } + } + taken.len() +} +// The note for a paragraph that is one piece of a line, or "". +fn pieces_note(pieces){ + if pieces < 2 { return "" } + "The PDF stores this line in " + pieces + " pieces, so an edit changes only the piece you clicked." +} start_timeout(0.05, || boot()) @@ -2201,12 +2275,59 @@ fn edit_tap(t, p, x, y){ for l in optional(lines, "lines", []) { if l.n == n { boxes.push(l.box) } } } let align = guess_align(boxes) + // `check`: what pdf.edit_check said for the edit as it was + // (`checked`, its edit_key), or why it can't be made (`check_error`). t.edit = {page: p n: hit.n box: hit.box text: hit.text draft: hit.text font: optional(hit, "font", "") size: optional(hit, "size", 0) - align: align align0: align color: nil colours: false} + align: align align0: align color: nil colours: false + pieces: line_pieces(optional(lines, "paragraphs", []), hit.n) + check: nil checked: "" check_error: "" check_n: 0 apply_after: ""} render_canvas() render_right() + check_edit(t) + }) +} +// Ask the engine what the edit would do as it stands (pdf.edit_check): the +// right panel says it before Apply. A check that comes back for an older +// draft is dropped. When Apply is waiting on it (`apply_after`), the edit is +// made if there is nothing to say; otherwise the panel says it, and Apply +// (now "Apply anyway") makes it. +fn check_edit(t){ + let e = t.edit + if e == nil { return } + let key = edit_key(e) + engine("edit_check", edit_args(t.doc, e), fn(a){ + let now = t.edit + if now == nil || now.page != e.page || now.n != e.n || edit_key(now) != key { return } + now.checked = key + now.check = nil + now.check_error = "" + if a.is_ok { now.check = a.data } else { now.check_error = check_refusal(a.error) } + let go = now.apply_after == key && now.check_error == "" && edit_risks(now.check).len() == 0 + now.apply_after = "" + render_right() + if go { make_edit(t) } + }) +} +// A check's refusal in the engine's plain words (SERVICE.md: the code, then +// words for a person); nothing for an engine without the check (an older +// shell) or no engine, where Apply finds out. +fn check_refusal(error){ + if missing(error) || outdated(error) { return "" } + err_words(error) +} +// Check again once typing (or a change of alignment or colour) pauses. +fn schedule_check(t){ + let e = t.edit + if e == nil { return } + e.check_n = e.check_n + 1 + let n = e.check_n + start_timeout(0.6, || { + let now = t.edit + if now != nil && now.page == e.page && now.n == e.n && now.check_n == n { check_edit(t) } }) } +// Apply: an edit checked as it stands is made (the panel has said what it +// would do); one not checked yet is checked first. fn apply_edit(t){ let e = t.edit if e == nil { return } @@ -2216,6 +2337,21 @@ fn apply_edit(t){ render_right() return } + let key = edit_key(e) + if e.checked != key { + e.apply_after = key + check_edit(t) + return + } + if e.check_error != "" { + note("Couldn't change the text: " + e.check_error) + return + } + make_edit(t) +} +fn make_edit(t){ + let e = t.edit + if e == nil { return } engine("edit_text", edit_args(t.doc, e), fn(a){ wrote(a) if !a.is_ok { @@ -2239,6 +2375,7 @@ fn set_align(t, a){ if t == nil || t.edit == nil { return } t.edit.align = a render_right() + schedule_check(t) } // `hex` nil: the paragraph keeps its own colour. fn set_colour(t, hex){ @@ -2246,18 +2383,13 @@ fn set_colour(t, hex){ t.edit.color = hex t.edit.colours = false render_right() + schedule_check(t) } fn toggle_colours(t){ if t == nil || t.edit == nil { return } t.edit.colours = !t.edit.colours render_right() } -fn font_text(e){ - let size = pick(e.size > 0, "" + round(e.size * 10) / 10 + " pt", "") - if e.font == "" { return size } - if size == "" { return e.font } - e.font + " · " + size -} // ---- modes and panels --------------------------------------------------------- @@ -2992,7 +3124,7 @@ fn edit_box(t, k){ View{margin: Inset{left: b[0] * k - 8 top: b[1] * k - 8} width: b[2] * k + 16 height: edit_height(e, k) flow: Overlay RoundedView{width: Fill height: Fill show_bg: true draw_bg +: {color: #xffffff border_size: 1.5 border_color: #x2171ef border_radius: 0.0}} TextInput{width: Fill height: Fill margin: 6 padding: 2 is_multiline: true text: e.draft - on_change: |text| { let x = cur_tab() if x != nil && x.edit != nil { x.edit.draft = text } } + on_change: |text| { let x = cur_tab() if x != nil && x.edit != nil { x.edit.draft = text schedule_check(x) } } draw_bg +: {color: #xffffff color_hover: #xffffff color_focus: #xffffff color_empty: #xffffff border_color: #x00000000 border_color_hover: #x00000000 border_color_focus: #x00000000 border_color_empty: #x00000000 border_size: 0.0} @@ -3521,12 +3653,13 @@ fn edit_panel(t){ RoundedView{width: Fill height: 40 flow: Right align: Align{y: 0.5} padding: Inset{left: 12 right: 12} show_bg: true draw_bg +: {color: pt_field border_size: 1.0 border_color: pt_field_line border_radius: 4.0} Label{padding: 0 width: Fill max_lines: 1 text_overflow: TextOverflow.Ellipsis text: font_text(t.edit) draw_text +: {color: pt_ink2 text_style: theme.font_regular{font_size: 12}}} } + if edit_says(t.edit) { edit_notes(t.edit) } View{width: Fill height: Fit padding: Inset{top: pick(short(), 4, 14)} Label{padding: 0 text: "Alignment" draw_text +: {color: pt_ink2 text_style: theme.font_regular{font_size: 12}}}} align_segments(t.edit) View{width: Fill height: Fit padding: Inset{top: pick(short(), 4, 14)} Label{padding: 0 text: "Colour" draw_text +: {color: pt_ink2 text_style: theme.font_regular{font_size: 12}}}} colour_box(t.edit) View{width: Fill height: Fit flow: Right margin: Inset{top: pick(short(), 12, 22)} spacing: 14 - Primary{width: Fill height: 37 text: "Apply" on_click: || apply_edit(cur_tab())} + Primary{width: Fill height: 37 text: apply_label(t.edit) on_click: || apply_edit(cur_tab())} Outline{width: Fill height: 37 text: "Cancel" on_click: || cancel_edit(cur_tab())} } } @@ -3535,6 +3668,26 @@ fn edit_panel(t){ } } +// Whether the Edit panel has something to say about the edit before Apply. +fn edit_says(e){ e.check_error != "" || edit_risks(e.check).len() > 0 || e.pieces > 1 } +// What the edit would do, under the paragraph's font (pdf.edit_check): why +// the engine won't make it, or what changes besides the words (another font, +// text over its neighbours or off the page); and a line the PDF keeps in +// pieces. Short lines in small type, so Apply stays in view in a short +// window. +fn edit_notes(e){ + View{width: Fill height: Fit flow: Down spacing: 6 padding: Inset{top: pick(short(), 2, 6)} + if e.check_error != "" { edit_note("warning", pt_red, e.check_error) } + if e.check_error == "" { for r in edit_risks(e.check) { edit_note("warning", pt_orange, r) } } + if e.pieces > 1 { edit_note("info", pt_icon, pieces_note(e.pieces)) } + } +} +fn edit_note(ic, colour, text){ + View{width: Fill height: Fit flow: Right spacing: 7 + Ico{width: 14 height: 14 margin: Inset{top: 1} draw_svg +: {svg: icon(ic) color: colour}} + Label{padding: 0 width: Fill flow: Flow.Right{wrap: true} text: text draw_text +: {color: pt_ink2 text_style: theme.font_regular{font_size: 11.5 line_spacing: 1.35}}} + } +} // Alignment: four segments (left, centre, right, justify), the paragraph's // own (guess_align) chosen until another is tapped. fn align_segments(e){ diff --git a/crates/shell/src/pdftools_model_tests.rs b/crates/shell/src/pdftools_model_tests.rs index 2a1460379..45bbd13c5 100644 --- a/crates/shell/src/pdftools_model_tests.rs +++ b/crates/shell/src/pdftools_model_tests.rs @@ -2,8 +2,9 @@ //! `apps/pdftools/bundle/main.splash` (everything between the shared //! interface and `start_timeout(`), run in a script VM. They decide what an //! imported PDF is called (`files.import` reports the chosen file's name; the -//! file keeps the name the app gave it) and what the library index keeps -//! across a restart. +//! file keeps the name the app gave it), what the library index keeps +//! across a restart, and what the Edit panel says an edit would do before +//! Apply (from `pdf.edit_check`). use makepad_widgets::*; use serde_json::json; @@ -319,3 +320,110 @@ fn read_mode_keeps_the_zoom_the_person_chose() { near(kept(1.0, false, "width", 5.5, 0.1, 1.0), 4.0, "at most 400%"); near(kept(1.0, false, "page", 5.5, 0.1, 1.0), 0.25, "at least 25%"); } + +#[test] +fn a_fonts_name_reads_as_a_person_would_say_it() { + let label = |font: &str| pdftools_model(&format!("font_label(\"{font}\").to_json()")); + // A subset's tag goes, and so do the engine's hyphens; a browser's Type 3 + // fonts have no name at all. + assert_eq!(label("ABCDEF+Menlo-Regular"), json!("Menlo Regular")); + assert_eq!(label("Helvetica-Bold"), json!("Helvetica Bold")); + assert_eq!(label("Times-Roman"), json!("Times Roman")); + assert_eq!(label("Shippori Mincho Type3"), json!("Shippori Mincho")); + assert_eq!(label(""), json!("Unnamed font")); + assert_eq!(label("ABCDE+Odd"), json!("ABCDE+Odd"), "five letters are no subset tag"); + // The Font box: the name and the size (whole sizes here: the script's + // numbers are single precision). + let font = |name: &str, size: u32| pdftools_model(&format!("font_text({{font: \"{name}\" size: {size}}}).to_json()")); + assert_eq!(font("", 28), json!("Unnamed font · 28 pt")); + assert_eq!(font("ABCDEF+FixtureSans-SC", 0), json!("FixtureSans SC")); +} + +#[test] +fn the_edit_panel_says_what_an_edit_would_change_before_apply() { + // What pdf.edit_check answers, as the panel puts it (the service's own + // tests hold the answers to what the engine then does). + let risks = |check: &str| pdftools_model(&format!("edit_risks({check}).to_json()")); + assert_eq!(risks("nil"), json!([]), "before the check answers, or an engine without it"); + assert_eq!(risks("{keeps_font: true font: \"\" box: [44.62, 97.54, 166.8, 27.8] covers: 0 off_page: false}"), json!([])); + assert_eq!( + risks("{keeps_font: false font: \"Helvetica-Bold\" covers: 3 off_page: false}"), + json!([ + "This paragraph's font can't show all of this text, so PDF Tools sets it in Helvetica Bold.", + "It needs more room than the paragraph has and runs into 3 lines of text nearby." + ]) + ); + assert_eq!(risks("{keeps_font: true font: \"X\" covers: 1 off_page: true}"), json!(["It needs more room than the paragraph has and runs into 1 line of text nearby.", "Part of it falls off the page."])); + // Apply says so while there is something to say, but not for a refusal + // (Apply would only be refused again). + let label = |check: &str, error: &str| pdftools_model(&format!("apply_label({{check: {check} check_error: \"{error}\"}}).to_json()")); + assert_eq!(label("nil", ""), json!("Apply")); + assert_eq!(label("{keeps_font: true covers: 0 off_page: false}", ""), json!("Apply")); + assert_eq!(label("{keeps_font: false font: \"Helvetica\" covers: 0 off_page: false}", ""), json!("Apply anyway")); + assert_eq!(label("nil", "PDF Tools can't edit Chinese, Japanese or Korean text yet."), json!("Apply")); + // A check is for the edit as it stands: its text, alignment and colour. + let key = |draft: &str, align: &str, color: &str| pdftools_model(&format!("edit_key({{draft: \"{draft}\" align: \"{align}\" color: {color}}}).to_json()")); + assert_eq!(key("Studio", "left", "nil"), json!("Studio\nleft\n")); + assert_ne!(key("Studio", "left", "nil"), key("Studio", "center", "nil")); + assert_ne!(key("Studio", "left", "nil"), key("Studio", "left", "\"#c01c28\"")); +} + +#[test] +fn a_title_printed_in_pieces_is_counted_as_pieces() { + // pdf.lines' paragraphs on the page `--edit-sample` writes (a page as a + // web browser prints it): the title in five pieces, one per font, then a + // Chinese paragraph and an English one below. + let page = r#"[ + {n: 1 box: [44.62, 75.77, 219.58, 10.51] size: 9.14}, + {n: 2 box: [44.62, 97.54, 166.8, 27.8] size: 27.8}, + {n: 3 box: [211.42, 97.54, 27.8, 27.8] size: 27.8}, + {n: 4 box: [239.22, 97.54, 27.8, 27.8] size: 27.8}, + {n: 5 box: [267.02, 97.54, 55.6, 27.8] size: 27.8}, + {n: 6 box: [322.62, 97.54, 27.8, 27.8] size: 27.8}, + {n: 7 box: [44.62, 150.87, 177.1, 35.15] size: 12.65}, + {n: 8 box: [44.62, 193.2, 235.55, 30.3] size: 12.0} + ]"#; + let pieces = |n: u32| pdftools_model(&format!("line_pieces({page}, {n}).to_json()")); + for n in 2..=6 { + assert_eq!(pieces(n), json!(5), "piece {n} of the title"); + } + for n in [1, 7, 8] { + assert_eq!(pieces(n), json!(1), "paragraph {n} is whole"); + } + assert_eq!(pieces(99), json!(1), "a paragraph that isn't there"); + // Two columns side by side are not one line in pieces. + let columns = "[{n: 1 box: [50, 100, 200, 12] size: 10}, {n: 2 box: [300, 100, 200, 12] size: 10}]"; + assert_eq!(pdftools_model(&format!("line_pieces({columns}, 1).to_json()")), json!(1)); + assert_eq!(pdftools_model("pieces_note(5).to_json()"), json!("The PDF stores this line in 5 pieces, so an edit changes only the piece you clicked.")); + assert_eq!(pdftools_model("pieces_note(1).to_json()"), json!("")); +} + +/// The errors the script's parser and tokenizer report for `code`, run in a +/// bare VM: what runs after them fails there (no widgets, no host), and is +/// not counted. +fn parse_errors(code: &str) -> Vec { + let mut host = ScriptVmHost::new((), ()); + let mut vm = ScriptVm { + host: &mut host, + bx: Box::new(ScriptVmBase::new()), + }; + vm.bx.captured_errors = Some(Vec::new()); + vm.with_instruction_limit(200_000, |vm| { + vm.eval(ScriptMod { + file: "pdftools_parse_test.splash".into(), + code: format!("use mod.math.*\nuse mod.std.regex\n{code}\n;"), + ..Default::default() + }) + }); + vm.take_errors().into_iter().filter(|e| e.contains("parser.rs") || e.contains("tokenizer.rs")).collect() +} + +#[test] +fn the_whole_bundle_parses() { + // The model tests above run only the functions before `start_timeout(`; + // the views and handlers after it are parsed when the app loads, and one + // parse error there fails the whole app. The parser reads all of it. + assert_eq!(parse_errors(PDF_TOOLS), Vec::::new()); + // The check itself finds a parse error (a reserved name, as `me` is). + assert!(!parse_errors(&format!("{PDF_TOOLS}\nfn broken(){{ let me = 1 }}")).is_empty()); +} From 5bf9561c241294d379ae62f015aa6209c409516b Mon Sep 17 00:00:00 2001 From: ymote <151983+ymote@users.noreply.github.com> Date: Sun, 11 Oct 2026 09:06:57 -0700 Subject: [PATCH 7/9] PDF Tools: Edit keeps Apply in view while it has something to say A hidden desktop shell on a headless weston showed the notes pushing Apply and Cancel out of the card in the shell's default window (an app area of 1292 x 662). With notes showing, the card now takes the panel's height: the fields (Font and the notes, Alignment, Colour) scroll, and Apply and Cancel stay at its foot. Without notes it is design 08's card, as before. The notes are shorter, the consequence first: "Set in Helvetica: this paragraph's font can't show all of this text.", "Longer than its box: it runs into 2 lines of text nearby.", "The PDF stores this line in 5 pieces: only this one changes." Co-Authored-By: Claude Opus 5.5 --- apps/pdftools/README.md | 4 +- apps/pdftools/README.zh-CN.md | 3 +- apps/pdftools/bundle/main.splash | 97 +++++++++++++++++------- crates/shell/src/pdftools_model_tests.rs | 8 +- 4 files changed, 78 insertions(+), 34 deletions(-) diff --git a/apps/pdftools/README.md b/apps/pdftools/README.md index 08125773e..2996d8f26 100644 --- a/apps/pdftools/README.md +++ b/apps/pdftools/README.md @@ -110,7 +110,9 @@ copy of the document and drops it), so no edit garbles a page unannounced: While the panel has a warning, Apply reads "Apply anyway"; an edit that hasn't been checked as it stands yet is checked first, and is made at once only if there is nothing to say. A refusal shows in red and Apply only -repeats it. A document whose security settings forbid changes, or that opens +repeats it. With notes showing, the card takes the panel's height: its +fields scroll, and Apply and Cancel stay at its foot, in view even in the +desktop's default window. A document whose security settings forbid changes, or that opens for reading only, is refused the same way. The pdf service's `pdftools_fixture` example writes a page as a web browser diff --git a/apps/pdftools/README.zh-CN.md b/apps/pdftools/README.zh-CN.md index 7091c61ba..f6e5d0daf 100644 --- a/apps/pdftools/README.zh-CN.md +++ b/apps/pdftools/README.zh-CN.md @@ -86,7 +86,8 @@ Edit 用引擎自带的编辑器在原处重新绘制一个段落。真实世界 只要面板上有警告,Apply 就显示为“Apply anyway”;还没有按当前内容检查过的编辑会先检查, 只有在没有任何需要说明的情况时才会立即进行。拒绝的原因以红色显示,此时按 Apply 只会再次 -显示它。安全设置禁止修改的文档,或者只能以只读方式打开的文档,也会以同样的方式被拒绝。 +显示它。面板显示说明时,卡片占满面板的高度:其中的字段可以滚动,Apply 和 Cancel 固定在卡片 +底部,即使在桌面的默认窗口中也始终可见。安全设置禁止修改的文档,或者只能以只读方式打开的文档,也会以同样的方式被拒绝。 pdf 服务的 `pdftools_fixture` 示例可以写出一页“网页浏览器打印出来”的页面,包含上述全部四种 情况(一个以无名 Type 3 字体分成五块的标题,以及使用嵌入式子集字体的中文文字),可用来试用 diff --git a/apps/pdftools/bundle/main.splash b/apps/pdftools/bundle/main.splash index a9c466963..d1b787054 100644 --- a/apps/pdftools/bundle/main.splash +++ b/apps/pdftools/bundle/main.splash @@ -424,10 +424,10 @@ fn edit_risks(check){ let out = [] if check == nil { return out } if !optional(check, "keeps_font", true) { - out.push("This paragraph's font can't show all of this text, so PDF Tools sets it in " + font_label(optional(check, "font", "")) + ".") + out.push("Set in " + font_label(optional(check, "font", "")) + ": this paragraph's font can't show all of this text.") } let covers = optional(check, "covers", 0) - if covers > 0 { out.push("It needs more room than the paragraph has and runs into " + plural(covers, "line", "lines") + " of text nearby.") } + if covers > 0 { out.push("Longer than its box: it runs into " + plural(covers, "line", "lines") + " of text nearby.") } if optional(check, "off_page", false) { out.push("Part of it falls off the page.") } out } @@ -471,7 +471,7 @@ fn line_pieces(paragraphs, n){ // The note for a paragraph that is one piece of a line, or "". fn pieces_note(pieces){ if pieces < 2 { return "" } - "The PDF stores this line in " + pieces + " pieces, so an edit changes only the piece you clicked." + "The PDF stores this line in " + pieces + " pieces: only this one changes." } start_timeout(0.05, || boot()) @@ -3634,39 +3634,80 @@ fn place_editor(t){ } fn edit_panel(t){ View{width: right_w(t) height: Fill flow: Down padding: 14 - RoundedView{width: Fill height: Fit flow: Down show_bg: true draw_bg +: {color: pt_card border_size: 1.0 border_color: pt_line border_radius: 6.0} - View{width: Fill height: 54 flow: Right align: Align{y: 0.5} padding: Inset{left: 16 right: 8} - Label{padding: 0 width: Fill text: "Edit text" draw_text +: {color: pt_ink text_style: theme.font_regular{font_size: 12.5}}} - if t.edit != nil { IconBtn{icon_walk: Walk{width: 15 height: 15} draw_icon +: {svg: icon("close") color: pt_icon} on_click: || cancel_edit(cur_tab())} } - } - Line{draw_bg.color: pt_line_soft} - if t.edit == nil { - View{width: Fill height: Fit padding: 16 Label{padding: 0 width: Fill flow: Flow.Right{wrap: true} text: pick(t.can_edit, "Click a paragraph on the page to edit its text.", "This PDF doesn't allow editing.") draw_text +: {color: pt_muted text_style: theme.font_regular{font_size: 12 line_spacing: 1.4}}}} - } - if t.edit != nil { - View{width: Fill height: 52 flow: Right align: Align{y: 0.5} padding: Inset{left: 16} - Label{padding: 0 text: "Paragraph " + t.edit.n draw_text +: {color: pt_ink2 text_style: theme.font_regular{font_size: 12.5}}} + // With something to say before Apply, the card takes the panel's + // height: its fields scroll and Apply and Cancel stay in view at its + // foot (the notes would push them out of a short window). Otherwise + // it is design 08's card, as tall as what it holds. + if t.edit != nil && edit_says(t.edit) { + RoundedView{width: Fill height: Fill flow: Down show_bg: true draw_bg +: {color: pt_card border_size: 1.0 border_color: pt_line border_radius: 6.0} + edit_head(t) + edit_paragraph(t.edit) + ScrollYView{width: Fill height: Fill flow: Down + View{width: Fill height: Fit flow: Down padding: Inset{left: 16 right: 16 top: pick(short(), 12, 18) bottom: 12} spacing: pick(short(), 8, 10) + edit_fields(t.edit) + } } Line{draw_bg.color: pt_line_soft} - View{width: Fill height: Fit flow: Down padding: Inset{left: 16 right: 16 top: pick(short(), 12, 18) bottom: pick(short(), 12, 20)} spacing: pick(short(), 8, 10) - Label{padding: 0 text: "Font" draw_text +: {color: pt_ink2 text_style: theme.font_regular{font_size: 12}}} - RoundedView{width: Fill height: 40 flow: Right align: Align{y: 0.5} padding: Inset{left: 12 right: 12} show_bg: true draw_bg +: {color: pt_field border_size: 1.0 border_color: pt_field_line border_radius: 4.0} - Label{padding: 0 width: Fill max_lines: 1 text_overflow: TextOverflow.Ellipsis text: font_text(t.edit) draw_text +: {color: pt_ink2 text_style: theme.font_regular{font_size: 12}}} - } - if edit_says(t.edit) { edit_notes(t.edit) } - View{width: Fill height: Fit padding: Inset{top: pick(short(), 4, 14)} Label{padding: 0 text: "Alignment" draw_text +: {color: pt_ink2 text_style: theme.font_regular{font_size: 12}}}} - align_segments(t.edit) - View{width: Fill height: Fit padding: Inset{top: pick(short(), 4, 14)} Label{padding: 0 text: "Colour" draw_text +: {color: pt_ink2 text_style: theme.font_regular{font_size: 12}}}} - colour_box(t.edit) - View{width: Fill height: Fit flow: Right margin: Inset{top: pick(short(), 12, 22)} spacing: 14 - Primary{width: Fill height: 37 text: apply_label(t.edit) on_click: || apply_edit(cur_tab())} - Outline{width: Fill height: 37 text: "Cancel" on_click: || cancel_edit(cur_tab())} + View{width: Fill height: Fit flow: Down padding: Inset{left: 16 right: 16 top: 12 bottom: pick(short(), 12, 16)} + edit_buttons(t.edit) + } + } + } + if t.edit == nil || !edit_says(t.edit) { + RoundedView{width: Fill height: Fit flow: Down show_bg: true draw_bg +: {color: pt_card border_size: 1.0 border_color: pt_line border_radius: 6.0} + edit_head(t) + if t.edit == nil { + View{width: Fill height: Fit padding: 16 Label{padding: 0 width: Fill flow: Flow.Right{wrap: true} text: pick(t.can_edit, "Click a paragraph on the page to edit its text.", "This PDF doesn't allow editing.") draw_text +: {color: pt_muted text_style: theme.font_regular{font_size: 12 line_spacing: 1.4}}}} + } + if t.edit != nil { + edit_paragraph(t.edit) + View{width: Fill height: Fit flow: Down padding: Inset{left: 16 right: 16 top: pick(short(), 12, 18) bottom: pick(short(), 12, 20)} spacing: pick(short(), 8, 10) + edit_fields(t.edit) + View{width: Fill height: Fit margin: Inset{top: pick(short(), 12, 22)} edit_buttons(t.edit)} } } } } } } +// The Edit card's head: its title, and while a paragraph is open, its close cross. +fn edit_head(t){ + View{width: Fill height: Fit flow: Down + View{width: Fill height: 54 flow: Right align: Align{y: 0.5} padding: Inset{left: 16 right: 8} + Label{padding: 0 width: Fill text: "Edit text" draw_text +: {color: pt_ink text_style: theme.font_regular{font_size: 12.5}}} + if t.edit != nil { IconBtn{icon_walk: Walk{width: 15 height: 15} draw_icon +: {svg: icon("close") color: pt_icon} on_click: || cancel_edit(cur_tab())} } + } + Line{draw_bg.color: pt_line_soft} + } +} +fn edit_paragraph(e){ + View{width: Fill height: Fit flow: Down + View{width: Fill height: 52 flow: Right align: Align{y: 0.5} padding: Inset{left: 16} + Label{padding: 0 text: "Paragraph " + e.n draw_text +: {color: pt_ink2 text_style: theme.font_regular{font_size: 12.5}}} + } + Line{draw_bg.color: pt_line_soft} + } +} +// Font (and what the edit would do, under it), Alignment and Colour. +fn edit_fields(e){ + View{width: Fill height: Fit flow: Down spacing: pick(short(), 8, 10) + Label{padding: 0 text: "Font" draw_text +: {color: pt_ink2 text_style: theme.font_regular{font_size: 12}}} + RoundedView{width: Fill height: 40 flow: Right align: Align{y: 0.5} padding: Inset{left: 12 right: 12} show_bg: true draw_bg +: {color: pt_field border_size: 1.0 border_color: pt_field_line border_radius: 4.0} + Label{padding: 0 width: Fill max_lines: 1 text_overflow: TextOverflow.Ellipsis text: font_text(e) draw_text +: {color: pt_ink2 text_style: theme.font_regular{font_size: 12}}} + } + if edit_says(e) { edit_notes(e) } + View{width: Fill height: Fit padding: Inset{top: pick(short(), 4, 14)} Label{padding: 0 text: "Alignment" draw_text +: {color: pt_ink2 text_style: theme.font_regular{font_size: 12}}}} + align_segments(e) + View{width: Fill height: Fit padding: Inset{top: pick(short(), 4, 14)} Label{padding: 0 text: "Colour" draw_text +: {color: pt_ink2 text_style: theme.font_regular{font_size: 12}}}} + colour_box(e) + } +} +fn edit_buttons(e){ + View{width: Fill height: Fit flow: Right spacing: 14 + Primary{width: Fill height: 37 text: apply_label(e) on_click: || apply_edit(cur_tab())} + Outline{width: Fill height: 37 text: "Cancel" on_click: || cancel_edit(cur_tab())} + } +} // Whether the Edit panel has something to say about the edit before Apply. fn edit_says(e){ e.check_error != "" || edit_risks(e.check).len() > 0 || e.pieces > 1 } diff --git a/crates/shell/src/pdftools_model_tests.rs b/crates/shell/src/pdftools_model_tests.rs index 45bbd13c5..3cb05f342 100644 --- a/crates/shell/src/pdftools_model_tests.rs +++ b/crates/shell/src/pdftools_model_tests.rs @@ -349,11 +349,11 @@ fn the_edit_panel_says_what_an_edit_would_change_before_apply() { assert_eq!( risks("{keeps_font: false font: \"Helvetica-Bold\" covers: 3 off_page: false}"), json!([ - "This paragraph's font can't show all of this text, so PDF Tools sets it in Helvetica Bold.", - "It needs more room than the paragraph has and runs into 3 lines of text nearby." + "Set in Helvetica Bold: this paragraph's font can't show all of this text.", + "Longer than its box: it runs into 3 lines of text nearby." ]) ); - assert_eq!(risks("{keeps_font: true font: \"X\" covers: 1 off_page: true}"), json!(["It needs more room than the paragraph has and runs into 1 line of text nearby.", "Part of it falls off the page."])); + assert_eq!(risks("{keeps_font: true font: \"X\" covers: 1 off_page: true}"), json!(["Longer than its box: it runs into 1 line of text nearby.", "Part of it falls off the page."])); // Apply says so while there is something to say, but not for a refusal // (Apply would only be refused again). let label = |check: &str, error: &str| pdftools_model(&format!("apply_label({{check: {check} check_error: \"{error}\"}}).to_json()")); @@ -394,7 +394,7 @@ fn a_title_printed_in_pieces_is_counted_as_pieces() { // Two columns side by side are not one line in pieces. let columns = "[{n: 1 box: [50, 100, 200, 12] size: 10}, {n: 2 box: [300, 100, 200, 12] size: 10}]"; assert_eq!(pdftools_model(&format!("line_pieces({columns}, 1).to_json()")), json!(1)); - assert_eq!(pdftools_model("pieces_note(5).to_json()"), json!("The PDF stores this line in 5 pieces, so an edit changes only the piece you clicked.")); + assert_eq!(pdftools_model("pieces_note(5).to_json()"), json!("The PDF stores this line in 5 pieces: only this one changes.")); assert_eq!(pdftools_model("pieces_note(1).to_json()"), json!("")); } From 4e18ff9880d2652ef83efc241e0c762bc9a19d92 Mon Sep 17 00:00:00 2001 From: ymote <151983+ymote@users.noreply.github.com> Date: Sun, 11 Oct 2026 09:14:09 -0700 Subject: [PATCH 8/9] PDF Tools: evidence of the honest Edit, from a shell on headless weston A desktop shell built at c50104da, with the real pdf engine, on the Linux build host's private headless weston (another session was running OctoSense on the Mac), driven over the remote bridge on the --edit-sample page, light and dark, at the runtime's 64 ms script budget: the five-pieces note, the font and room warnings with Apply anyway in view, the plain refusal of Chinese text inline and on Apply, an edit made anyway (the engine's result overlaps as the panel said) and one made at once. Frames cropped to the app's 1292 x 662 area, a receipt, and READMEs in English and Chinese; README's Status lists it. Co-Authored-By: Claude Opus 5.5 --- apps/pdftools/README.md | 9 ++ apps/pdftools/README.zh-CN.md | 6 + .../tests/evidence/edit-20261011/README.md | 50 ++++++++ .../evidence/edit-20261011/README.zh-CN.md | 43 +++++++ .../evidence/edit-20261011/de02-warned.png | Bin 0 -> 123202 bytes .../evidence/edit-20261011/de03-refused.png | Bin 0 -> 117688 bytes .../evidence/edit-20261011/e01-piece.png | Bin 0 -> 103925 bytes .../evidence/edit-20261011/e02-warned.png | Bin 0 -> 113936 bytes .../evidence/edit-20261011/e03-refused.png | Bin 0 -> 109274 bytes .../edit-20261011/e04-apply-refused.png | Bin 0 -> 121389 bytes .../edit-20261011/e05-applied-anyway.png | Bin 0 -> 91625 bytes .../edit-20261011/e06-applied-at-once.png | Bin 0 -> 93186 bytes .../tests/evidence/edit-20261011/receipt.json | 111 ++++++++++++++++++ 13 files changed, 219 insertions(+) create mode 100644 apps/pdftools/tests/evidence/edit-20261011/README.md create mode 100644 apps/pdftools/tests/evidence/edit-20261011/README.zh-CN.md create mode 100644 apps/pdftools/tests/evidence/edit-20261011/de02-warned.png create mode 100644 apps/pdftools/tests/evidence/edit-20261011/de03-refused.png create mode 100644 apps/pdftools/tests/evidence/edit-20261011/e01-piece.png create mode 100644 apps/pdftools/tests/evidence/edit-20261011/e02-warned.png create mode 100644 apps/pdftools/tests/evidence/edit-20261011/e03-refused.png create mode 100644 apps/pdftools/tests/evidence/edit-20261011/e04-apply-refused.png create mode 100644 apps/pdftools/tests/evidence/edit-20261011/e05-applied-anyway.png create mode 100644 apps/pdftools/tests/evidence/edit-20261011/e06-applied-at-once.png create mode 100644 apps/pdftools/tests/evidence/edit-20261011/receipt.json diff --git a/apps/pdftools/README.md b/apps/pdftools/README.md index 2996d8f26..fc5246a6a 100644 --- a/apps/pdftools/README.md +++ b/apps/pdftools/README.md @@ -284,6 +284,15 @@ that refusal. `--budget-ms 1000`: at 64 ms, under load averages of 54 to 74, the `shell` run passed every step but overran the budget after UI-thread stalls in the pdf service's file renames. +- **Verified on 11 Oct 2026, Edit on real-world PDFs** (the Linux build host: + a private headless weston and Makepad's Wayland backend, not macOS, where + another session was running OctoSense; + [tests/evidence/edit-20261011](tests/evidence/edit-20261011/README.md)): + the model tests; the pdf service's tests; in a desktop shell with the real + engine at the runtime's 64 ms budget, light and dark, on the + `--edit-sample` page: the five-pieces note, the font and room warnings with + Apply anyway, the plain refusal of Chinese text, an edit made anyway and + one made at once. Edit on macOS since this change is **unverified**. - **Not verified**: the host's file dialog and a real import (a hidden window cannot open it); with the real engine, form fields, outlines, Redo, the other comment and page operations, password-protected PDFs, the eight-PDF diff --git a/apps/pdftools/README.zh-CN.md b/apps/pdftools/README.zh-CN.md index f6e5d0daf..ad0bb3a50 100644 --- a/apps/pdftools/README.zh-CN.md +++ b/apps/pdftools/README.zh-CN.md @@ -225,6 +225,12 @@ python3 apps/pdftools/dev-fixture/make_fixture.py /os.pdftoo 运行时 64 ms 的预算通过。10 月 11 日它们使用 `--budget-ms 1000`:在 64 ms 下、54 到 74 的 平均负载中,`shell` 运行通过了每个步骤,但在 pdf 服务的文件重命名造成 UI 线程停顿之后超出了 预算。 +- **已于 2026 年 10 月 11 日验证真实世界 PDF 上的 Edit**(在 Linux 构建主机上,使用私有的无头 + weston 和 Makepad 的 Wayland 后端,而不是 macOS:当时另一个会话正在 Mac 上运行 OctoSense; + [tests/evidence/edit-20261011](tests/evidence/edit-20261011/README.zh-CN.md)):模型测试; + pdf 服务的测试;在桌面 Shell 中使用真实引擎、按运行时 64 ms 的预算,在 `--edit-sample` + 页面上进行的浅色和深色运行:五块的说明、字体和空间的警告以及 Apply anyway、对中文文字的 + 直白拒绝、一次仍然进行的编辑和一次立即生效的编辑。本次改动后 macOS 上的 Edit **未验证**。 - **未验证**:宿主的文件对话框和真实的导入(隐藏窗口无法打开它);使用真实引擎时的表单 字段、大纲、Redo、其他评论和页面操作、受密码保护的 PDF、八个 PDF 的上限以及未保存更改 的询问(开发夹具覆盖了它们的界面);其他屏幕尺寸;Linux、Windows、手机。 diff --git a/apps/pdftools/tests/evidence/edit-20261011/README.md b/apps/pdftools/tests/evidence/edit-20261011/README.md new file mode 100644 index 000000000..66f38666c --- /dev/null +++ b/apps/pdftools/tests/evidence/edit-20261011/README.md @@ -0,0 +1,50 @@ +# PDF Tools' Edit on a page as a web browser prints it — 2026-10-11 + +English | [简体中文](README.zh-CN.md) + +Before Apply, the Edit panel says what an edit would do besides changing +the words (`pdf.edit_check`), and it refuses what the engine won't do in +plain words. A desktop shell built from this branch at `c50104da` showed +it with the real `pdf` engine, on the page `pdftools_fixture --edit-sample` +writes. That page has a title a web browser printed in five pieces, in +unnamed Type 3 fonts, and Chinese text in an embedded subset font. + +The shell ran on the Linux build host, not on the Mac, because another +session was running OctoSense on the Mac at the time. + +- **Build:** `cargo build --locked -p octosense --no-default-features --features app-hub,craft-engines`. +- **Display:** a private headless weston 14.0.2 (pixman renderer, never + idle), with Makepad's Wayland backend. +- **Home:** a fresh `OCTOSENSE_HOME` with the sample alone in PDF Tools' + library, plus `MAKEPAD_REMOTE` and `MAKEPAD_WM_TEST_APP=pdftools`. +- **Run:** one instance, driven over the remote bridge, ended with `/quit`. + The driver used the Linux launch of [ui.py](../../ui.py) from #495 (its + `Shell` and `click_page`) and isn't in the repository yet; its steps are + below. + +Frames are `/g` grabs at one pixel per point, cropped to the app's area +(1292 x 662, the shell's default window for PDF Tools). Every step passed +at the runtime's 64 ms script budget, with no script errors in the log. +[receipt.json](receipt.json) holds the commit, the binary's digest and what +each step found. + +| Frame | What it shows | +| --- | --- | +| [e01-piece.png](e01-piece.png) | Edit, the title's first piece clicked ("Studio2026"): Paragraph 2, Font "Unnamed font · 27.8 pt", and "The PDF stores this line in 5 pieces: only this one changes." Its own text keeps its font, so Apply reads Apply | +| [e02-warned.png](e02-warned.png) | " Beta" typed: once typing pauses, "Set in Helvetica: this paragraph's font can't show all of this text." and "Longer than its box: it runs into 2 lines of text nearby." Apply reads "Apply anyway", and stays in view at the card's foot while the fields scroll | +| [e03-refused.png](e03-refused.png) | The piece 季 with 夏 typed (a character its font lacks), refused in red: "PDF Tools can't edit Chinese, Japanese or Korean text yet." | +| [e04-apply-refused.png](e04-apply-refused.png) | Apply then only repeats it: "Couldn't change the text: PDF Tools can't edit Chinese, Japanese or Korean text yet." Nothing changed (the status line still says Saved) | +| [de02-warned.png](de02-warned.png), [de03-refused.png](de03-refused.png) | The same two steps after the shell's switch to OctoSense dark | +| [e05-applied-anyway.png](e05-applied-anyway.png) | Apply anyway on "Studio2026 Beta": the engine's own result, in Helvetica over 春 and 季, as the panel said | +| [e06-applied-at-once.png](e06-applied-at-once.png) | An edit the check has nothing to say about, the Helvetica paragraph a sentence longer with nothing under it: Apply makes it at once | + +What the run found, and what changed for it: + +- **Apply out of view:** in the first run the notes pushed Apply and Cancel + out of the card at this window size. Since `c50104da`, a card with notes + takes the panel's height, its fields scroll, and Apply and Cancel stay at + its foot. The notes are shorter too. +- **The edit box shows only one line:** the box over the page is sized for + the paragraph's own text when it is clicked, and doesn't grow while you + type, so a longer draft shows only its last line ("Beta" in e02). This was + there before this change and is left as a follow-up. diff --git a/apps/pdftools/tests/evidence/edit-20261011/README.zh-CN.md b/apps/pdftools/tests/evidence/edit-20261011/README.zh-CN.md new file mode 100644 index 000000000..b8d1d3d83 --- /dev/null +++ b/apps/pdftools/tests/evidence/edit-20261011/README.zh-CN.md @@ -0,0 +1,43 @@ +# PDF Tools 在“网页浏览器打印出来的页面”上的 Edit — 2026-10-11 + +[English](README.md) | 简体中文 + +在 Apply 之前,Edit 面板会说明一次编辑除了改字之外还会带来什么变化(`pdf.edit_check`), +并用直白的话拒绝引擎做不到的编辑。用本分支 `c50104da` 构建的桌面 Shell 和真实的 `pdf` +引擎,在 `pdftools_fixture --edit-sample` 写出的页面上展示了这一点。这一页上有一个被网页 +浏览器以无名 Type 3 字体打印成五块的标题,以及使用嵌入式子集字体的中文文字。 + +这次 Shell 运行在 Linux 构建主机上,而不是在 Mac 上,因为当时另一个会话正在 Mac 上运行 +OctoSense。 + +- **构建:** `cargo build --locked -p octosense --no-default-features --features app-hub,craft-engines`。 +- **显示:** 一个私有的无头 weston 14.0.2(pixman 渲染器,永不空闲),使用 Makepad 的 + Wayland 后端。 +- **主目录:** 一个全新的 `OCTOSENSE_HOME`,PDF Tools 的资料库里只有这份示例,并设置 + `MAKEPAD_REMOTE` 和 `MAKEPAD_WM_TEST_APP=pdftools`。 +- **运行:** 只有一个实例,通过远程桥驱动,最后以 `/quit` 结束。驱动程序使用了 #495 中 + [ui.py](../../ui.py) 的 Linux 启动方式(它的 `Shell` 和 `click_page`),目前还不在仓库中; + 步骤见下文。 + +画面是每点一像素的 `/g` 截图,裁剪为应用区域(1292 x 662,即 Shell 为 PDF Tools 打开的 +默认窗口)。每一步都在运行时 64 ms 的脚本时间预算内通过,日志中没有脚本错误。 +[receipt.json](receipt.json) 记录了提交、二进制文件的摘要以及每一步的结果。 + +| 画面 | 内容 | +| --- | --- | +| [e01-piece.png](e01-piece.png) | Edit,点击标题的第一块(“Studio2026”):Paragraph 2,Font 显示“Unnamed font · 27.8 pt”,以及“The PDF stores this line in 5 pieces: only this one changes.”(PDF 把这一行存成 5 块:只有这一块会改变。)原文保持原字体,所以按钮显示 Apply | +| [e02-warned.png](e02-warned.png) | 输入“ Beta”:输入停顿后显示“Set in Helvetica: this paragraph's font can't show all of this text.”(改用 Helvetica 排版:这个段落的字体无法显示全部文字。)和“Longer than its box: it runs into 2 lines of text nearby.”(超出原来的框:会压到附近 2 行文字。)按钮显示“Apply anyway”,并且在字段滚动时固定在卡片底部,始终可见 | +| [e03-refused.png](e03-refused.png) | 在“季”这一块中输入“夏”(字体中没有这个字),以红色拒绝:“PDF Tools can't edit Chinese, Japanese or Korean text yet.”(PDF Tools 目前还不能编辑中文、日文或韩文文字。) | +| [e04-apply-refused.png](e04-apply-refused.png) | 此时按 Apply 只会再次显示这个原因:“Couldn't change the text: PDF Tools can't edit Chinese, Japanese or Korean text yet.” 文档没有任何改变(状态栏仍显示 Saved) | +| [de02-warned.png](de02-warned.png)、[de03-refused.png](de03-refused.png) | Shell 切换到 OctoSense 深色模式后的同样两步 | +| [e05-applied-anyway.png](e05-applied-anyway.png) | 对“Studio2026 Beta”按 Apply anyway:这是引擎自己的结果,用 Helvetica 排版并压在“春”和“季”上,与面板的说明一致 | +| [e06-applied-at-once.png](e06-applied-at-once.png) | 一次检查没有任何需要说明的编辑:给下方的 Helvetica 段落多加一句话,它下面没有其他内容,于是按 Apply 后立即生效 | + +这次运行发现的问题,以及为此做的改动: + +- **Apply 不在视野内:** 第一次运行时,在这个窗口尺寸下,说明文字把 Apply 和 Cancel 挤出了 + 卡片。从 `c50104da` 起,带说明的卡片会占满面板的高度,其中的字段可以滚动,Apply 和 + Cancel 固定在卡片底部。说明文字也更短了。 +- **编辑框只显示一行:** 页面上的编辑框在点击段落时按段落原文的大小确定,输入时不会变大, + 所以较长的草稿只显示最后一行(e02 中的“Beta”)。这个问题在本次改动之前就存在,留作后续 + 处理。 diff --git a/apps/pdftools/tests/evidence/edit-20261011/de02-warned.png b/apps/pdftools/tests/evidence/edit-20261011/de02-warned.png new file mode 100644 index 0000000000000000000000000000000000000000..be7b3f8c6c38c5e0d9b9265c688d56e57ac4a053 GIT binary patch literal 123202 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 hXGduYHVck!5wo15QVy;?T@Zjjsh9FEN<$9I3v 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%0D(PlVZOL#n4d<_zfNGY$}L<&rx*-$L)n`dg5u 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
PnELc$JDXtW* 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%0D8teLBGF-a`}4`Q9*Pv$n2>;??&TL;CDt-{qg8D& zSMoDmDs80@myHyGs7)UwAHYawwXpZcF{pN=cjaoW7Cq{=x^~X4gkB-`45o6eU18`< z9vo4Va;U+^CkU;G!pC||i!3-_xUa==OH`>yscX*9=j_xJBjZKzgOC6#2oc;*8TGet z?HM#A!t>hhw^ojkvsTtkyRxqM?MfK!QyH&bttSX)mnZcpE~l{y>?ILv$t7 zKM+tA)5jOCRU;N4v2gk2KdPW6$e9atncON``1FvD0-EbvAJAag5j&8aG+-}W-=K4WVHwgK)U#XwdkL=o$BtrKe8RvET)DvS^nfK*ARJCP4+p&n!H4* zA^-tWpJ!ti)1p7=?rS+Fjlo7(a4WH>YQ?1Q1ThLkUF#YKv|Q>h2=h+P)WkmeU1pGk zIO>n@wNxAOq}`OlBD{{f2_Y_LhNSkQ+wR1K9!WqV&O+^WBMQf^R5U8Uj0qwofq*zv2gXxFosR5Pg+FSFw)?_$2aB;k`njG?$A&g$ zKJ5yp&WK#YV#%#ptRt=CBm#t22;lzX+GmRdubX-{-yH+%-4n`YKXvnhh+j-QKQ<`A zZNYh?C)p}&YSO8!EGK5TS`oeA4mp{%HMZu`(w@F?pG6CL2j?of)XROaMd1R0G>Rk(ITC0f5nB!&z-p!#Pb2YqwZBL* z-<$i)RDMky?Tql8#qHxT|J8CZcrDas#o;g-mhKz%-StnipxLG@8DXI`07fEs26GPY zr}{Aq_bWru0nXUfhDz-6_Xj&QkE5$!$LCxJJ*zzmB=U7Q9YKfw8v$!buu@z@@c0G9 z_$_>ELVMT2cMkzPHxlJuzrjY9JK5XR)mT{#nEz@Q87GPDz*FWUDA|W7=|7SG5v{=h)A=6a|h;D1cFdFV_Gd% z@ME(-?*tH{tqo)kQ)0NkS{t-@qj}0x@$SFRCK7wWJVK&RFh5|~6;-n2J>qV^Qb9*Cv>Xad~V`0BziSPZ;u;O@iA85j4Kdrvzh@1JMvGuHOik8i6%K8DD z@trV)w~&{Q-ck|TJMlk_&N{4>G`)Po(+Aa5#BKc(H*FqgUaB%zdBe z8z2wTN)FlH-ku!;!_)!1^AZole8;dW%?!#PoX39!A&}fa`0~8PFXf5K{VPau3V#MA zbWrv|;;Ae2@82LD0^ZWgTNK+ry~w}fH()5Q;hMUmXe0mWi}+hn0rh_<@#7!I8sT*T zl4Ur>lc@gVdj9^R=Q6;gw$c-l|0!(z*KikzfpF~qiAh27f>Z{pQG4E1&2IfL?oXk0 z-*3`EAR(C^z{t}}lrGBEe%)V)`Kt@>XdYNeK(^s^eTXECu@*Buh? zR#I@zqM{W@I5^Zs$3`tSs1zyaZEOt94}8~j+uB853;G%|av-8m5O{xvm^60y@7w?1 zpFye+)XKM{Xw-@kR7!dnACc68yq+!RAh_#WI!@(K!u{0}$BG&}TAqhn)+ z1G5hIOgLeH%(n&tvUZKc+d%e2Pao2H=k&!%_`W>LnGum%D~67)+&OZNrQYEDwzxqb zvAMZCT0KBoZOip(FAfcGe&yw(I=i~Wv&uDTinSwkzk?XdI}GD{>(4yH-8$K4kEL=oPIN(E|p7jyJf69Z0}M}xH%chv9$}wwlf6UDoNI5Xlo_w zvI7o=;jt_JM}ZQ}Iw!TF+1A1`Va;!y^^dV!2$YVKYC`{=VH#D9u(qpV_CD+lg-3P~ z3b>)VaCf%po$NXW>29WEcOTcs=ZsWL@*Z+$3|%8%wW~vqfP`*m2&E{r`+=l~P8?X% zWCvfLa5ez5_Wl6AelItm(oEecHD2aB*g+49%Y6Vy${&Np z#}JMQO$Q$gyt&!jz6pzn%xoV$F48H8VN-0gn8R4|iKfc{wMx~hRph=!x0tPr0~o#^ zkq6_px&-u>q4xsJgWAzJB-KEI85Lxzq)8vHrP!T@KWt6SR+-H#ur-x_;Vn@=~Zix`J4IRNP^)y@yLx{)gj=h*_|3SwZ!YQ!(SboK_^aC5Bdp)IvobxVO#F6 ziyex)b1eWD7$^LPUQ1k4TU*C{)oI{(!s-g!&RQp(I_tQh*(AV^TzNJcJhVkbc3fI`ywD$* zd=!#cQFX)YClp=!E|XQhyk~>@@rkv7HO}OUQ4M%vR)O9#yYp2V=es|trwTrIhC$z8 z5@AATp$ah+DUiF$w4HfA&?c&>$xEmqa+1})HKv?eUS0k0B_u?CB(B3gX0>ltM}70= zd9~$){DIo%C5oD#F2Rmpw1I3-e+sLHeyrEWa{+stii!(sg#c>SEZ*+!?wt&(!CuC2 zK;kZ;0kv??x(@eLEzm&TE9w)>2b67O7*J(uy6Mr@nqAIoa9YT)vZ#n%V)x>osSQ_Ug0KV1|J9dm4z;_0NnZ*_&VMTH#+ zejEnKK{UoU0sfaoOF2bl?m+Ux$bOT}hOn5KyTV}o2ElPk?3bV*rtcQuA9iHuSzcK2 z#fNn-j4im%t+v^z%?6KvXqc3PWiqjXr&BHcL?Z#nA(9D}asY7nkMhlHBXRqqkNMh7>JdXp zW5fVXYxEfYIXiH$J+aWSv{mSuMVOvB3O+tpo1~Qot_c(^_0Qg0#-sPPN&VyK z=?4Axe)YltWcidx@~y~|q5j8N^Ogp@w+t{rx6D7@q7B4p!@&$Qum7$F{?ZDNoPfdc zZuY_9`^Q_HA^~MW-~K`2aSH!^$A&ePqbql^Og=kah@PFflrY(f+R~Xy@9f{O?tY~F&n-h zhp(c)&@**aYu#p^rdz$zQM^}%xu39KVAz*mUt%N^ zD|pqKH9f@d!4^df1?%MkkxSxReAZL2Ikys*ms67@WYYgCS3JY%7%a z__(6Ch>SnX+FI;PHwhh?r04||{V=ppcl9A3yVjfTAB#7mAKDv*>+;-9Omx7Vp5)HJ zgvpXXmgecrl-t+>{8llk(3s7Si)wdF;7@6_an5_*B36eadwN*P$Z#y%4L()^ zSWMK%yMF*b$svJ#d*fgH(^XV`l7@~nIB?LzfB%`47MJ?{Z0xqQTpaLL6eJL}?|x~o z6$-ZvtE|q@KM`~<8Bl9I1K_42r1r;9*&xs2PLaPj8j~)JfsXe>P4wX8LM z3-FYFU$-&*e(7Ps9ZwMz0&g$!!+{`@tB*%w;6Z?1`yR{lod~#k3o#VlX-SV#Kg@u0-fI9sWBS)dIRJ$*c+EG8~K z%D0d*-t2zUIFq7NS#^KVGO^&efVdON`pr{-rzPPl+siV56;*D21!KixIMr34WJZBG zi~I}wiA+51(Qpv=9IbYV`Rf(A)JB+iN@R3JeZqCvOw-o8I}&DMV(^x$eKX*w;Kd^P zwbO^Y2~=Ax{+h@Pcqa@Qs|sR2+tDEaBBJ+E(a}x41$rGXwJnBpu)q3ewv@niKh>c? z5MJ>8-TSIbd7zhhRzhpe-t21;w&#oQCJK}w`6QiDKaONMFZiprQ$BymV-w_`_-Dlj zXhWo=N3SwzXHe~_E`R;p`zl$cFXb$)LAbgAmzGDvuf$Mauw5XL(X6_gTJbHNwB^=J z$BIjv;xAuBzQ_>CA%f|QV!6WZcn_uD`SKS zxUZ$cL46{~{IW<1Wn^l(#k^}rn#%jUsG~l=wpq;#+k8au?1cPf(cx+=f0DJ_@$%`+ z)0r(wZ%-5^gX`~Ap=s9dnTB>;F^!Cj)Bcc1Ik*Jcqj8^?zXTaNZ(5wK2zT5(l#xnp- zZdHv86UNCA3aTT7=}lPxbo0)x5VZ2|sLyuBOu9Q;BY+2f0-ciSeqtjTRc@7t^43FUpM+T3ibmyufo( z?TrgP*_K@fGGX1X_?9Q$y8oO`D6{GYZsA*n z835<5FPIO~&#FIMECP|?+F2RU$WuplXlL)bpp91JKGLvH#i{8=sc;gol$=U$-#<}7 z`~beVG-G*WYe;cJYI|Z}RzU&nOYsny*`zK0DcoGOZi zf<<@khes1sWB8rNKfk$kvuP-D=gL+gfWVud z@Q{ClX|&q1vb&>Ljc#;>6WI4jC0f}ZLO%I^heX9!vGZPfB_W^+=MtqGi75%_zp$&* z<{N1-8Hp1}ku<}d$>M0^L|uxd8MN1M%h#UGf+4K3|cK=vws5y!8hV-cqX96K7_nnmWEJRcDYwfKojn+9{ zAIJo6vPXzZtCm%1cKnE2HnXn;X)G(tO2Om}0 z;m}^bxbQ&4K1S?u&upmz@SYX^s+fAcFJfAr2Gku6XZ18idy_4Ye4-(ESU z?e3NGllRrGw%<4?geZisZM1^=HKS=>fGMI=+ZF-&6Okq$CKg&u7LPqH{x~EB9ptt( zL-<6sdx4>ag@xa5jpnRf9tqb~8Dd>A^9u4_on*tD%SjH>V-q41u7-bFwvRLCjv(9H zj){om>6MsCKuT%^(+i)=K%hfxZEZyXzU5-Fb@;L2vBg1i3dhY;ToA~pGBT2$-U7!d zkacITErIa9fCwyr=`uGO&yJSmL6R)N1ln7=+;20gvZ3k198ldt-ZNS6X>+>hRELjQQf|3>Ed_x^7c z1kf0$mxzA|!2h+W3C16Rkuz$q6Y~Fj?-SvL1>!(-OzwZy)3W41&hP)82@&?={L|VJ zR6_60RH&fHq(s;r9mxaWO}L)q)e^Cov~*K zAeuiqYZhYx4%pmvfm%fXoX4qNzG|5dEj`%x>$~utUmfp`sk%-c%?}a-o4bqgDXO+}(TkRM^O93M8} zFnU~RFE;35(wStI8GvZ_H<;FI5tTjvoKhGDvF|RD9mpNUfmQQqfwnC~v2?i9JTCJT zW-(^Rz|m|DX)9nLi(_UcOpLyKdnUds^z*wXoefRehU;g)DJ|Df762{>tnP+d8q}k* z$jE@SZQ(+%beQ~;BH$yI<$S9gPBEsJF4(O{MuIc0c64;)nAaQI=h0&I@Vvq8giN3g zy*r)S;P~)O;kAQOxBB1_J7;~Z0s7*js^`xHCRO#D(+vC5S874_ip3M=BL=x}^478t z*Okk{DeM`iQX5!sF*ElW;{J;l8v)okz`H$zDSfIkACUtua-e>U#K25&DKcK$Lkh@p zkg=Lg4(H+ci<~s8SMBPOPF}N@Xz#h9;jDc&s3xIQ`8Z}&VI+0tyqXx37H5fY^*eve zOA2@?d6zRBPsd3QvOjQ4-9Mj@GXNS(l9n3}Y15)0xSw;-o>u`l=>mNzkZV~5QX|Na zOdQ1!5k<;G#6IzliK~TZq)=f|k?rb7+DwbKgP}35;+l{W!VQjK%wtg&q$^Q%U3L}S z3pr$yeej7rR!lO_26<|?&Z8DsGJ^<-+TB6ZefXP8`rAXu$O?+!zOIU2OYJ%61IUjv z*H-hjk=)0_zSS3Z`#Z#+6}e6Ocd8pFi`9FDd|%Ekbf^Odj>9u~+|C_O)|SZwxs2Z_ zgtdE8ZCj8NldyCS3XoZJSh%}8h`u_(*fcnSJ^LL4W_*Kw z%~dEb_vual-QLU%xc;ac^5nIUt>qfdTMh&+cZ}L9o!>wH0!{| zXORa0)26?HX^(=9Z!ch5J5j&*JlsgJeCQVJMnzo%@+EYA**Q5TBc%W>#!>0h{%r9D zEsJ30PqDLgV6%y_ClFX$(IMj&7h@ioqR?RD&arG<{$9lrPg3qT3glLTI)bzT9| z>xbjr)QfTr_$0Q=ozQ#QLP94I4Up`5zrBI?5Mp`KP^+~s9EQIKp+#>leI+zWH+}=O-+x8&=yR33UBRf;Sf-lKl#4hXEYLzzUF*oB;5R~; z;BqMczRdyR)~An6g+E`OGzX|ov%SCCkoZ~ekR!L!HQMOR{3WCx;rLgwT$##mweHe;Qu*zX0(i9{}ma&`pqfjEjK3tXcGk2U^zr0JjXn zu9{fy{w10oqR$|R{Df|4)XIf{gMX>^=*iLtYH;YvIj-57?9l;58YtK)Kg&p^8hb=R3P7*;C9#+xEb@A9y)aBmOy)8;yr`>Xeie6w@Lctc@;6xl zm&LI;F8K1_B1-T)9SL+I2L9Jb-nUXiBEe%lm%inRrN*Gg(00;G>kv*94Sln&HmIKA zd}36OfM;%ZQ#NU{F`ar;KL!A-Jr?)ufv?!D2B^W!*1RqG40D4A3AasYHIr2g8$gwo zR1I$-RGnkd%ByHjhwbTdYfa!-T+IVisI9qF*4DeAFOY)XtpJbRaHL%%lR;@P@^MOh z;-1mM`8t|#Faqf z+t-PoO^5*@gXY_ZPE_B=K*{;?*E`KP8*cAvpbG^ZxcNG1CEu;(U~B`AH6Sosr{%_Q zrrhw#lDsA;4F+|gbiw(s?bT{QVM)yS9@lC;LR~1A>>xa*bxUVw=QRAqQk(B_H@+w6 z{8ktS78W&zx@3MsQd~?dav-_p$3e@3W%;RD=o{A6>zxL!D!fkPjg@e|GHTDYSe0H8 z4Av^36tm5x`D&frOu0F{tmNY7C-Cj!!%xzkDe%xIE`O~u&j$~AKnbu;diej01ri;- z4F}D%2Q7Rej(f8?H#f_{L*v)<5rjf%=d};lXY>(fC3T{v69uHk<9HT@%EfW?Ew`hS zgD()_VgOY3$6n2Y3{aK*p|1vy#e7AJ=I!a2%&6p-RUnZ9LqT9XlonfAX}<^MZSXrNqL73Dw4cI*PJo!AV$9NX zItqXttHX!+Kdu=!!C@bLOD~`+PBH@AN66FN1ovxKJj)Hb5oRik!7KpZ&$50?)OjQI z(@&R#Dj4m$FKW4(Kr@TIS4*q7y-E1wd3)uO4UUQ1@HDTxL$GMWd9PK&Ua6@#6j@}z z`H`sfq`sA%in06NmGVyQQ*VZ*WlveCUPs!5VCmP(ZByK$m7ZdJ;|(h1qHlhQ7ppn( z+HtYeDxB2%@y2_7HuDr8c^-y^d?ED*?k*6=EmVipu&b(l&&=kkLs53=MyF~hRjN#t zoR`0J8y+r^R}!cetFvy+oETARR2LQFK+-Z??|_v?TORJB($Y!_**?nZ?91&t^z`&V z{2ED`EYUJ{FAO)ED#`Jik+8U`GMk$0zHI!J-o|V^y4r!r7p0IVJ=3d-Saec3IH3Nr zo5Hw61xI6tBd)6XU9xj*Roajl+{Za3tTBXjtwyI93rx(5PmAtf+1-j-Zc9^TU*(3e z4joOacd0EZ6Jk2F-7I=meAjPey9g5S#hcXOBp6bwKOJ>sG8q+aI)6lorl(b%ueb8D zfyuAl8CB!yZUky;&47Oq}n=yY;R zyT3GO{>hFr$8s>Bs(Ge2__eW+iQTxwLB(+1gdEJY-dM=XfDkR)6~pFSqAgW7KRd9O zQs{Wcfv>|4ke-!Gb{tdr5XatDhlId6$VkTlxvIORFxHcrz)y3!&W{lf3*_N7a36*?>~t(LBU?Ze%j z;rF1ma+kANx0-{#pkKd`uLa%`cQ~}Z)(IO*ZPq)RY;t8I&FYW2Sa4lTrQ+ya5_r`v zDo65}U#U=84)GdG`vBp@3(DMMbkXynxa5S(LW%HgeYvpoB>xjwX^$<U=#vg*_ccS=QXb#qH0w_oB zZv{F+ba$txs`_%3X#5=DdpppqHU?9fEN1Pw$_)Dx;$%Z8*l79gqkts(I2DhRDw0^>24}SX0;z z*tiD6SckhK2xUyzOi#UsQetWMU$8CC3vEvp=kbD}#hvcNnjh|8X)xC;%t{=Df8kL& zO0;&cNQ5cf-5t;WiVkN(tL<^McHD(+)$9G@l_YY5%Dh53xWc+A05B>+Kb?2sKYK7X z4{m5{t$>7tCH&diEGI`Q>C2?! zepW?w!FN~lQt~hnIJl>hlI-z#jr8QUZL4;X-X@ltq%@W-i#cbU)16Q0<&c(Oyng*N zhm#p&oo_eWq8f?7L$}Kk%A}LuN|id+j3f6pa#cNLBvfqp-@nOa1zLdMe z>N@jwy>9mpwk!H%x%XMc^tQ#?_ZIC52}}jrhJs0is&cx?gdjMos^td>W6Ye zo#G;hrJz@^83#b};6Vt!kD9wN=`{vM9^Umzzs4O*Uv;jO*1=+cASzj74j!HBR-or+ z_R?==quF1yxU6?Ng;@MxK$J)|1WbZ{OeVngyvAARkOv{^y?6TPXlMu$FkkP-Qm64d ze2zX{frL0d>38>kXgbTVsJ{2>0}cXG14v1?bcu9JgQ!RkEz&S_cXxM+gmiZ|($d}C zHFP|O@9+P-^A(rZnSJ)zd)=S47Rg#Rr~*-cIFQUkmp}ZmU+D1?XK4qRHq|7(;g&$w zrsc9+lty(V5C+Wy+f<>mgQ`4T5+xsUR~-F`iCMejO8QGEODw4>08W^zWF&F=1puiG zrtI+9-S|3grCJOY=;{1kP?Qcj3JOtAac96^?P0|n*fKkY2ce=^Y(DEfsGR_Fqa)}8tzHB$Q7_zTt0LF`D1=vzyTw2?dkEJ%TeHg zN;Iw$qFScS+!sMIVet!X+t0Zj0ff?N*5U$-WBaPwcD;!|+Yv%t<`)Rb2?ciVvTQ`Y z=d(UC2J2t3t-a9j>wWuB>}sJ(Gu!=1#lwMiv2$O{yxDkbw~M`erJ5g<`K@*f(&S(PbB9}JFSU2;l?)>&y^?S4`mSoZ0kfECEHX12 zOkmb9{*-%YH5R#hS8sVrDm;Siv|7buG(!C7kLaYn6FJHWS*Lgpc!*R{j_zyVPIgCp zU1fls%?^Ls6|q}P_45fq1x zd*c#1qu_15l2BJBKhs!fn{PeFS2TUf<2v9?$z{$$y_)f>p%QW>qo=^St^#)V!n!0j z3%C2DnLCYMe4!g}X@0#vMGB5zycu1A~g1u|FKW;L&;5MC-#? zRQt5x-+G!m)E~_{AF}F!UOU@_zfSeZ(u|0N&+g02+`WdmA3wj}d4)k=KRP$W%B<@Q zPKQkt)Vso<#$r%RAO#3`c3+EmkK5|Y!U)*qo1E|O^v0|)mOU`>SHeRA+i2aeyh?Yg&2OF5dSBI6aQNj$ zTc7ymzFCwx17n1egT$>9z;5t(R*uWgb;CdwOKgM>Vz;zG?yG3LbrWD^#&fN^b$I+J zH@>}`7&X^wX9j-WpXS@$z**4>RTBQV9M6}Aytsheqn+8dI|vJ*PMBKFU-U;B$JVPB zbpg^wItE5ugEN2j$I~uH4(O@~to@#hXtGBbZ&dKQ*~ZXA)jD{rub(>%Dgcy#Yp!Ar z5w3%at##8mjmLZ&58J&l=bvP})dB;})FOE`7AR(siksSrvpJY#qR7K^PYQwUuVM=b z$W%d1pXI-(8Woy>rzgk5AQOV9e-L644;1=+ah4T+*@?=^P`CQkr{y&}9re&gAmDlw zz45~nu+IzCDVJ_JZZxwnDpD;2{F63Ify@&<-dLg)`MCa%Ta_f&w>cBk< z!v}$VfS4ZxLq(;0|8O3rk?K#@O@F8vc)61)cUWq#=Gw9TW~LE#CpCAy^4#9r3DHD$ z^73@in?w4AVHU*In}`EQGZUTv4(EikT_XHoUD|OiE=#6OSGuA>x8jFSfIv|V4R)O$ z=3dc1AiCFHzq5@mzJ7C%L^9a5{+^e2?n)gh0QhL|4BMVkEW86;2h7S^3QN|8b~-Br zmNznVA@LNaEE?4!nt#@+UWZmU9XBdzGNiQg-8_sYv1_^W{?l0s&74%3H#X`H+A+s- z0A~)@;@;@LMsNkbdls3l$QIx}C^|2W(7y~i6X2da@a6_x^OOuib<>G76GT{Nf+?1T zg61pTxZ-|YqS5snYrU}?1Bj^G#z>i(YVdrPh^MzZnG2=C-QAyy(IDT!50c0Ay{a^rZ}ZG#Mx{jfwl#oT!((tXsv=F& z-uW7Z#Tv}L7GPe(=Yxn!>U0rXeBlH2@^e1=22@oFsJT%hV|43L7o##U14S0Pt|BvZ zHn)g_#a)4zW*I*hlaQF0DYlb7*zK~x;GSD*yJh9%COU(76BmlG3~d;deoNXr1A3mh z#OgAexdV4$8cTLD>)fUcOCfR8b`AgU9@=m#H(iM_@%J&ayEBGwi&)p;(b3#={8f% zNUo!C=sxdeXLx9zsR!0D`Mt9x`Gr12rV=h)pLw|4BBj&DC;sRYPgOeSL#x4T~XR}=c11|tt#C*PFl0QV_G-iS7`+2*Ax2==EJ+^3pO?<>I9GXkjW!dOO!S$j_Ep{plY7ZEd$BOK znmAjxy|1eP)7{WJQsE4zV<8nC&yn`G(-CUibvlD|gp@ahTIHp33DE#rUn?FY^7&UU@pY z-Lf4k3h>|ohpJ~vuV?p|n9qA{2HRFHUn8S@^uFR4dH#1J6+r-FoWiBA_#rt8l(!4A z)cFORR?R3loW zW9FCJ{bla37)$ZEKXN?6yMDMBWh{zQ*NF12S^i}BHRuQF4_#ankie$6o9_V)=~y@_ z+qs~EWYPy1`LQnP)}T?-ShAbIWS7GHk{^<(T8Um6k6Gu#8D^ABeTJSl3S*(FwzGn! zjq^b!C9=iiJ!ZL7>~}&9-R6 z3B$G+2zskEtLUr^ucM_%l@=vUYN3y^3W8L? z>9@3&=R>A2TaN=Ftv7C|Yke)z(>C!o+|P(inup=)5zMWYGsmGzBIL6A(GBf=D<3@# zjmFwu3{U_u6)?^+#`fw%K31lY^}7cF%6O)(QU1$Hi1I`LKb%@9iDECBrK@{nDVRgr z0PjEx68W-b4@omO<{lJ<3k8oggId6^iy75|Xpl;AAHSOElOSj0L#@By+UjTLgOa+r z;^Xqs%&C~}^x6tlvPG(jHWlEG2@}Uf@NIv5Stuc*E=M&p=A|vi)u}5SyO=5;B1%Ux zYLR+p8Nrq-5n}1eSza|1qytzo7r}I|8ABTy=9gwCo*?m~Ww?>*Qf?}581*t0jAkgh z$6ZuvV47;fJbq%t}0X~n0+v9Jn z`;+~D6@5HUjpXh8HudgkzS^*qijBh+C&hNzrRUDTQ$S6x^m{`3w4VqS^wHn{n;y*t zVmB&lv##w1mwWQ1aDK(*># zS>`R0U5ICak2FJyZ@}IkS7$Y?seF}za*MhGYr$9i;88()7#;rDpM0mW6ZU0iJQI4 z6%y!hKGhpFkVymG|K8^)B7ia~)*;wdsbw4S$CdnT{y#W3>l7J?Gr_C324#8m{I#fC z`ZOOs6@}IK)XCPDOo}8z4}-GG{kpoC{rH0XX_>W~ z)sQ$vCKb#&=hd}bOLpGagt?EFZ-YtYJD&m?5Qo^dipz}i?e@m`?n=1GvI}L(=Ure^ zs?`hkS)!O`_$q1|jj`Ysyn7KmNuMS`5Jc^LidhZYoqF?);?bQJpu=lkfPd+RU-prq z+LKPV0p-N&YOl@LrgxdV8LvvjeW2bRU#8=g*@ZBnE4A8+H|ub&vXlS~t5k-*D5b!W zP`2%^*8-eN)HDk_B^FY^!L!t$za2LvmL=dMN=kuy%C2f7cZq5}HF5EwI@u$ledjzu%1K*I0Hu$5z(%8vO4*E=K1SIOCHC%qn(+YM?Xw%a44ISx6Na9f(4= zKMLn}S(SOzHnW_eaK9384?pJtK?n)!YIU7W3kiiEt zAgRH{qX4Uc<-3+ZjPe2mVsKqTcIE4xzAQfOUUOBW7`8?9_2X+4gwe6#_l%HvumHU1 zXK**D%=fk6pQZS-FBslksFn`DRJOz_^xhhpJg6a-%Ygbon5|GqU)w0jU_~d0= zDD5N?z_ZVgE|7eb=K-ktg$Em^7E^vAgyoZ>-Kw9+{r%DX`hk4YJs@N7t1sePzp&+& z`(5YGacs(=lDg%>eYf1EE&+0FJ<^Nq$Gq#GT{WO%{ZU91QHz9`&!my$;bG z@#Yd3*A|%F@wd=1m2ws}u?bzTzGf7&C81230<>Iv{CYBlq|=1vi;;yCGvJmnx$`G~ zkQwC*rl&ahPi~WOH7SR{vCvw&&u$CpdPw$!Ru3oZm|jpt9_#Zs>io0>V|&*2$KEs2 zsFtk(6B$8UdD-5$D4_fWrS*Q;F_o~5|L9LvtoAPI?2>iw*O*CQKlw?0 z1De1r)O^K!)30a1JkS{45*XSXB2W%x3hPMucXtsKU;P|OE4gm0I@SsBqIBW`nmd0D z7e6h#-tPr+O?too0MyaYtZV%)*&BLG@re*?cvBPv0W8bTsT;VKzCqK$fh&Lh{2|_n zhUYe}#|CQdbs`BdOKAb=BqH!<(8uXOIb!i{8QFnlM)VHO(-Iv(L%(d5zW|)mfL{9T z+K9<@3}Zj%4-#tZ7{>g^`?xh+%#CU1P8U=JQD8z?tp=|L91xuP`?@|rj_zPhItk3S z%m`v|y9;$?c$>u=9Vr@Ge#4LsI262M;Ch*dNLh@2-u84yr0MsQ6Z3$v*j6&aO(qnD zeSfW=8u?vNyO~dw$Pcj(KkBPy3Y0Wa$Z_LS50O(f?|>VMvfa*guE_-I7BJ8Fw?WK* zWiLpJ913=bCJ!mrYEo%nXXVnGYti?p&pWqS<8kNHOyY|F>H(;J8d=HgRGRHV3t+5Rk$QLPEyFK^<>q5dHW*wLYHpW!l-dm$t7`4scWC#zhr#?GfV2L4)UkVWEN}K&%catp4en0C>>Qxmysypu>Hh;bG0CJtG0U z8U-EgARcOg!*kX(YK8vuXKE{_%Ts>^Aqz4NYY`Z>4{?3#_trLiDE&UPHtw~mRBce0 z+my0ufmuoPHah??Xtt9KAs*?Lg8k2E;7c`wI3lhq-rBQrq0HR4!Rq=K`=UGtnd=zv zH$)3FY41{c@yTOpTP%odS6Z+4?uoa<{Z^^LC<+L%_s0iiJq}PQGGKI37o3`x2D1m` zfa)<6QErC9`X?elbc?MSthrtAIT))?(LBJroW)^$3-nhSRV^OR$5vW$Yk2wOD;hm7 zbw1N0%50xhG+C@N`h45AO25ONNhWyr>lig}NQQ=u;{|XO5k*epwQVM!vVCB7sH@Q5 zf2|5t!gX{-^|o=ndMf(Z_hiL+4NkI=mal-gxk(Sj#-gDiI63(ns(Zvbw-1)I)`S&> zpDfY)3Vj)=)+_O~r6uc|{xQ(NXT==K0pta*oXsxT}nyV@>K-N?7n8|^2%8I@(kNx0@USJg)CI4#c+6dR_cb6cd^jNA>EWK^B!DO{M& z_uengb8Oi#8qC|}>nMFJQ=MQP*qW}R-BF(!C^I;jkuyyRV_< zRj4#IFhwO))HWP)R&`IZPO(lppLR3q%Y#@RZ99ypr%nqLAsY`nI+!yb1S9XtsP}mU zqLby7=#gB+#wz7B`X1C95UQS3Nf;akKCIv?mkx0J$0v(Li(Dlp7+o+EjCZoVEqgbT z40`Z_Yb)x1ri{{hn!7bqP%CRML{9L9UKeTBWmHb?=~j`S&sf_+fD4Vc;wo?poe_&@ zI&SqA-WW>~?fJ|tGxsx5)~TQ}Cd26y_6$o*7wXS>g;txHXPICIE*j?(6U0GThpTj_Ia$ea9R<}FTP5gLh%M8BO zY73R5_;z8_cgyD7WwqygR=r!6y!9a%#5`Z5%4?>*<;WJT6)H10og>N`;{P5I&;LDW zHqZgEmx<5XhBo|}3%rWk(W?B@x6a?D)7k4MGWZRN?``TLk~OurF8EF?`Sa48?d!CZ zmZyrEj?@O#BeiNm-5duSG^Z;B0XC*LMm56+8(NV{bU>0Qq=;!E_i z*-CT8m4V>Longi+{vqZqm6^%GB6;l{1^(@+rSszi&Lh0dn!lk+G_{tsMKvb*ZcU}% zwmWMpE%dLJ6Z%=zo1(uPd!|zlJ$AmGD1*HY`<|`mKF3Yvs)^7P>n8pJS5bpG0C+rL z=$kFz7^nvcU?B_AYu5k%c|g7DiU0(Yk4Hzl3u8z8_ZZ(qwuiDtFg5qiRfdZkc~DiW zB}LoF)_x|SEI@IkuGLm5a5xaxAeQHM_;TfOyP_Rl8?uA3j}G)x`uC|kvADJp>^P;I z{Ey5P3j&BHu!i~Pcu=zfIqMp0-91SR^15Z|Qr45V=Ew@29M*36S6U|KwQrvc&6eq*ESo^v&Le_ccaFuukHJ|fF;r5c z|IuerFEAXjbP|wD3S72S_2aAD94~ARB6n=Cp}ky2^xHT5@Irs?@84Lv0gq&vvi&~2 zPI`O!^WN*ZujQOE*cSS~3alT>gfI0z$VGicOS}W{L{Hak_o-J|;8hXg4O(F>MFtc3u;#xTMXsR!5y8()|KADt>k~Q0$Ipt~ zN8QnB6DqFKV$xw>471k<k$Bt5r3r5g$;qYXyUczy9M~al#V*s+3W`fenn19=m<^<% zq*d83ME<+8GO38cnnp8wAN4;+9J$?#8(^tsXGn$|3BC`B=)l!BZJ`L3R%Kvkd``me z7=NM`aU$`a;GE%wAn=l>XaKiZdUlZN9oE|gg;s2j9ndowv% zJtjGx9;(>kY({8%xL33{Imvl)yHDtSd1*JwQ2sx-)Jq5F^zwufQL;_@b0#{=fqWtH z!=oz+eZyKTj^V;4R!pU1YWK7mgZ-UgS)cuB-HA=uiMdJuv(^1Qt8quU{O^Qs1%o9v z&|}qFTY>)>ACQ>=R9@Vyg;x{1oJyDUi*CgW<8C4wG$1_+roohTa;o?9_utDrBuTP4 z?(##zt3F%t9h|d0GHTO5$UD4nSeg%xyfV5OApwXe{|2Qn!~fgz;=FF}Ez*}gJwr+wd{TF!PO$<6Mhxa}OP&tIq8o)Fk91<22!_JP4)uAblq3aQc z1qkPq<1RvMK^=hoGVQ6#x$m(# z4X^*9$;f->E4&{{vIW5t@OSt4$%NZred8LbdQNN+WdjUNr(H*Z&7z!a^IqN<87+^n z+tfl4U5FGh4T@7Z9O?U!_hy|F^!Zad64ATs|Gwqf?IECi(Iz4$qVz@pL#2?1BX88z zj`&hdzg}$>du{_O2t*2BBofqiCdtzsYxQ}>t38!WDoq#xj6{Mc)|YVQ_7u>lord&n zf!#32;4I4NdFP6g!_&5~cs`bvAH!%M8LiNtqT)0`1~2kGZ4IN}V9(U=90Olt6V?3s zE%PakFkhD3^P-kpLX5tnK#i$vX?+zs4JE z>C{`@a)*-GsWMCMTQy!{7cX}!#0Zg}q8UTnspaAsXaK;GA&$5FEAZZ}QtNh$Gh2%Y ze4qH>+`(%w5&~)#U!6>5N^Yc&L|-m`a@q5Vjs8Rj z_Qb{*;SG?kNbrkZ5p=W+bsN&b&(BvQuY^LfA2%@fazu7pq@_X-zk@+c@JRV&PDdoQD=@j!DP?ZGW#UHEf@D9EJHZaZMa#<9Uq$UAe;0kss{CZN0A{`6@ z8Jq6Z2I~j74MP@A)JDwlYpRKY<_Q4B1VA>U`I`Q?%&Lw*WgRx`WH8$9j6?(Xejd{C z2=6KbjYwa6Bg10nOpm(?h~tvIe?%8xSpi}JBH)-%!@n3C*{eY$jxjY5%HJ~W(di)a zvS-FjTN?%wRJSvc1gh~^elC+~b?VRiY8XHXquj*X2wPZZeYO4&m-^zzF~S&lo!@*#rf}8I((@>+60{!i$Rt zoBcUJm_aJV@uX{{zQ0F1y`f$eM{weimQhf)B~XrHkYz&KOywfeM{dXi`Vg9h@__lX zCg5X?Td-_u`Ldv@BPgv&)#>kiFl}+(gRcXW{@R*vWw;)zKjN7KwFDeL`oUXo+&=Y2 zxQm~VD65I2V>vngRztMB~j3z|xHzHF8%v;F6RdQo{glRji@$&AZ z*=~9xNe%$W?_mnSK?DihZsJs$PML0P^J`xnFHsrvHs^h+9<<|C>lFQAHe2p3a5?7d zVnW#@c-FmPbJB9%4>;axyb@w!7=XJbE7V=m6sU`AzFy|9wB2FZdLt<5@n~NfMqpip zJw-Zkf2IS7$+^Hgrcn;5HBZL7nXj`d(~7Y0XJP~nt}(#xevsz*G)DsI1zW~d!$u-BufM%H1ZetBq*rQ<0Ss(}T>Hwm z`$Yw^A4n)i1um*ft1K2AZV$@hT}bdU2_^tW5BBl-zt{jpl%#vOMKZQ%5q0b!)eCEy z_XiIm^2pFmUes4-Lm=%;X!@!Py@i+;&XBtFVCQ%Y+R@$1tF`KKW|Zy!OL*^MmU@*6 z!HGaxxdZzYy2`BgS4zvUiWK|@h%~Del2dr>^PSHx{Pd?zbp~QvQ<-*<-(4jL_&`FG z_^00axIXL%Q@udJmFjJx-+hai{6vBbXw$8G32kn-9&7#tINz}Kkri(OHVv9&KKm4w zk3hw_1qF|OH!|~Q%jITu0J3~OoHqd!ExY~6zaPvrM^d;3r`rG@i1S`9e$8pU$Kz{F z!s7Nq%mkP6b6@fx`%5H)hP^zZ_}ujc*_^aL2U)^Aq`mdJ9b$7827%32^Tq%tAGn#Q z;}H!!CbOdcufMhbZLK)(Xj#w%)#@c9!~awF`7@iZXtiMd!dHXlBF^s)4D79mPk^#i z*(A5gQoe3^HIq`c3bBtC^VBmsp6Pg|bcz|~su4slx1Cjb_(lA&@i8Tr;vL|hb>GXh zmnQawit6Zi6{WfUTPe6va9>33jeQEG1_7R9 zLVYI42f%JXr?dzv+VR*o25*1lmwj5Y7|Uw?U^@BdlVK?12dC3v1PZj{UX?+iN#A~4 z5|WbQ{e(HLD!V-!X0>cG+DAaxbU>I_H%g}mQ^&@{0K)c#1)17Vhv^t~P(=Br*?e_D zwb{&P&GDXIl@Co8a>(Yi9h6vq(*rR%6M$Lu{GE?Shr+w#Fx+Knl_|M%>_3Xc!S-?tv~K_Bh+g{mz+{;l&K-G zWx(r{fxu)0qm29asuUl>{Ulq>c8Tvynh0_efz#J>aEKsQEsX${^xH;|My+|lHr7MU zr;d_ldS5qW% z+VwP}L&gj+col~$Z91q+&>gNLgSM);#GR+eygkNkwV{z(GE7Jkg+?BI5rlf^A2RnY z@JN9Y0kdlV>?)7?fv&WmKn#*^c!`OOavd{MH!R;Fp2}9pk$Viga&?yY(g06$m?9z! z3C=2yv5P0ZZDics&27hk++^DC^hXl=tm}?8!`%K3b2sAWa2Z%H1XzUNs54PVu!{Yj=y}@*F6<~U1K?O}t|DuMiB(X%e?K9sd z=fV)LBa_ZZ%xP1wJKk;sS(AUUivCCLq7l9VgsiA&rLwJ>ti zcN~xG3rVg3C1~{5FcF3Ya`PstZ8Et!)VUN0DF0|akr)1O-8MR#BJzb`NbcseD{}UH zD8xWVUMR6c0&a$7`})TlA%v~{MfxhlMSgLQskOQsmd&u8u>Ulwn;vq;5oE{huIS1;@*-7^bn&CYFZL9?PRXZCBXKJ%8Wz% z`$%0O5|SP|qeio{uejILt31B>So&b=H63vKO#c}#7ir$jMuiDPZnr~E9PCiI?~CQA z^ffN(|1+g!fWK&e=1azp$f)k%13sMIz!yZ5O#vm=3R$H7Vsj&PxqK=Hi*2QqhH?1Y zR=SsG8NLQV!ZpCrVxl0_&-JAS+HpDR)f6I@W>K)SVRX{KC*?aHOb;_!{@o@ASGL}n zhBzo>2z$0-fPiY~1BQ_Eivi`@6ml01+^jUomg-Q7Qak|}dH|+E~zpaSJdCT6rfqO+re7m+AAb z3pP5caobVB-@b(c&kv|B3unUh99@N2(a9Z?Dc~SPmcKflg31z6PZB60YxC}e0`fkt zAG+rOihH-=tyF~DmlK!$0yx75>N?~<`>_;gH{}rPql%3$T;5F~ENd4w^W|Tp4E7!H_<2*wpH@%|d=;yO+%xKUL22tot@o# zUioTp5X2VDLwPUu!pQ9bU#+FFZRKgMt`ZXCRe3ozOf`fEjvFc8H_#B7}(|w7wgaX-qh@obw8R+v`#j3`L4gE$H}stShe`WbK{;=!lkG& za$;?dJFu~~6iBL$>%+cJ&=MsY^tt~ex-aSr9Ar-4pr+dK8=8ZL82njDxD*hS)R;U! zbZ)DjF(-!w#$hyMr!#JWVvPkw3mi3IZt>XW{lu7pW;!er1Ea zJ&Hd_CENTb8}ufK`bnD1^E~+nLs8|zvu%+uhK^-qaDNjp9&Ub9`IXH`S4M=V@qw}* zne))zcUx9jp zF4*i4%3l3SdaK$2-?Z(b!=a}0e6J&gAMU9QZF3whY7p;}fQNecMEb@mpZ^wn3|(j3 zZA;g69PFecT_`T6n01td^lepDm6pS+8F>jh*7p>Z>x~ZaK<2n|%XkYDNJnubv`FZd zVFiNJYMOcE5-9>W(59NZF=b~^8}a7eYddj&XFU^;K@=TlkTx$iV!bjd9f_05!*#-N zvUw2sW8f!frbF6RTxn1i8c@D(;Tx_+hEhaGfKh9Mi*dL-DiE$cdbm)bX7qPdmVAzoAWPZ!3KWfDt!UN+#m zJ-3tl^>@JeKctiUrcj5z=c8-HbD%VB;92mzypn?{iE61-1Z=K5z}{>e77mj)V6bq1 zevc{&)t{BXMz%wkPW>q$|4BmfR)OhZg&$`tQW)RlM@zh%kpaxNdL*Z5*AW@ z`&Jl*mYp_GH{K#cTi>p+T_F^`v1fvP8;o^!;N;}2@h9m$I%svdfbg0PYAriq?aF(7 zoPp2dI+c8b_iv2Iz>uhw&WkrJ6bIFPCG_0ckCgeh;d}_1Non!wU3HN$4jOv+oiZgg zOQTQmN-7lz5k7LLCdT%zh0^Q6i37=jUiXG?Mc{4Hd>{6-0kQ@+_ItD!-#Dsa`7`?#N3+GY(Gmiam=<`Em3au_}RS2 z)Ej5-7^GKr#%Y*8QOj7M0Ww<3H;dI`KnO8#mZw#fl{9?4!eWuiOo!P%QeT*u?guyX zQZ3&O%^`8m#85w+YTy*h>bB^U3Q@e{OQ=ZTK6rUOSW7eJtP+kj?&|qUi`;C}#*ev= zk_=m1>=9#|4L*wvsT#*@SQFQM9Z}c*dYfm#GKdNPP$IT?{nIBYu+3FR<4+filzv>C z(FwV|{L5v4^uB^aMm1u`7|Bd_Hb_!+g)rkX)Lyz>69f#tA+HNegpvj_L=u1g`_^Pr zKcry`aUdPWQR}Mt-bqmmr_i{Q4Pt&fqU{J_F~g^-_^Rh~je+B-7<*=`WM6SG5*#aa z|2+o(Cvhy2i%LxKB91H=Z9;!F3NxaR!@n(@pDQ@V=$>xC3nlP}>NtJTZvMS$0z-u! z$7L5)9xCKDJ-phXmeZR5$BHqu-z6b_5s@-V`R>1WFp4$vBYwR9#R`OP1faJ_Sds|I zSN zs_SLjM3z_o&Z4ErX7nkyzdl^Al-R(siZ;FP1v8PB9H6Df2&Px?09NF!OQl=G((U39 zfsGcLMAoaiVfz;Kq~6`H45P;(l-$d>832f9;6H`D-?m9qet+suuy)=~(YWDgzrkrf z3*BOP5(|om>N*DmU%bwBwBv@{$M$v1ziM!Iw&ri!9;Ac`7NZ}f0s$^VWK>&lD}cx< z&dHFu`}-A0_iMeLP6Xbehej$rJ;Uzbo)T0=b+|LDg*C|D-2nXFO{d50=BORvKW1&z z;N2Q)x#M{O4VPArFD}gvBFCv|)J7kJV(3^Mg?2U-%_0w6TISREw0}4uHhdx>Tc=in z;bQDwBVWo7kck+hMRdXM!Kk*?xjvkZG&)xtNj+jvIT@LFV8BoZ)>~h! zu!>-<#hCBSXTtGuTC|_h;*f4pzM%g4;nFX~og|3l*zM3P(G7K`?DnlPDqhOX+xRhz zyRh7%?+|{8Df=nf3pqtN+ax!`*U#1=xv4-tKfm3TSN7#5RcB%tL7)U!aEXh zL;Vze1?Hz#tz>!=b;N6Is8mKPgHmH%IjcecuXI9FZRwx{TCKck>teF+f_ba7QE6`S zm~hv`J-J4i9s`ym?IYp4jao{9|Zu zMk1uxUtEn--%~@QFpS5fCWtS6(t5tOr*);`?7yuup-lVPPa#(BQ3HHd z#e0$={k0C?z|G_x?Xl?(6&2R!+p{yWVR~mVxiLCJ^217b9?UwP7wML^r^DRH9uETy zq91^qhG+&#YvyDQ!w^mHFJn?c0n+6h-AI2o_t2kq91()-Ue}>ft6p5B}PfqY}-GD#_@fj-0B*l_y&xve2y#069 zCIt#~Xe8&SBEQ)pXQXJdoos%<%2Nn(51crML40X3<@y$uU-g||vakP6Um&5_w-cuM z^05Sq{+V>(>$+YT(?W(J4oQiHtzbPeH7y>pD-GgTw3e}jKZ<6VS=bRKOD&|je+@;Gewk06gFF@ z-e=1Q2N}j9Jy4U{&E&-B9`_0g%2_3#^3;_-K3Apm!CrkNk$*MA zt&gNm4)Be|^FG-nbMC0tVHknLkVPfsIh-xIx;wS$bi2in{Yw|6&RXCoz_$OAdB@3j z4GrnJf1RqO{s|OF(^<6pWuD&?8osd2BP0 zh4NFs#%4&l%?#W;T%%^G3(cYi`+*wmn?zi$kB8yt;GxI5!+{^_Z6Uvw+ik`e2=Ex7 z98`72eIU&mgbpmds>2B%=Dr%D58ILtmRl&iZ6`Rf71>wz|X)CcMsJ^aOvvqaSmB(xUm&bXRx!(mIiN0=-iIeBge+ zWM`qy<2DQCnvq0mLkY;U4ax|UHUM;r*p+zorx+Rrm!!K278wrAJ#b*PaSlUrbIha> z;R#N=vzOto3I;!?T_!>bEU_%CGw3luPhBO~RZ8A)W>XepDy9XEPy6(Dy+yjQWVcvV z)6>H}grrgM=|AyPk@Fp3UJN9_ji8Jq^OjBjPHn(^b!0VHKP>f01bI}&J<^6gNV5+o z?BJ&9eEX7O*>aR&{xy}(Rl^~2cVFM$sx}}_B^(PjP860Ojx`BKE_i^#QY{tA3Houo=OKJcN=y4+mAQs2+-SfZmW!x%u|X5RKqayA{#D`gCj?~_Gk##)bNW{x5aU# z7E$a)aj@|s1n2ICS9nz@S-oRXO ze^d@+f{PGhm%j;wM)&wOmnpG@`s?E0D7I*j&z^}=#2s=inqIKyB^0dj-{Dq2tdo2IGMWYy7+{tsT@^3h`g9RXVM68=zqZyF{G)bel9R#7VHWuAsP$LGUyvpS7pmb+KV- zUdo_z*G)ecg+tJbrOhu$jKcrJ`zCOJb5w{?QTU?zvZa}|rxUILr29{`KtJiBxSOxf zj~AWdwS%#n>{@7ODY@g7bd;&}+IW_%pTJ_%>hg^$m*Ow3C8%~Fp7Wp`PHjx2K z#~PJoBG44N#|sKSI1fNiz0_TkVRKw|Yq8uGWkNv=iVdn1a2ZnDnr~KWn+!<3Sh`+j z1@@7dzRo9AZITj1xoQ-4>zkm3%?sAn$w0OXs=UGmj7VZpJ1bg86rN^IXdT}mkcD&; z3P*YalWMR~?}693+{x?cG9Px}ZL0#Aeb_uGvpxE3PLvgj`v7OZZ&w=HLTNFdRw~Sb zdSi`5`nk!DSI2WK9FQsoJA9G0l2VjFqOXe)stve-JQ6A*Zj0%;5{=p@?G_;DY`yBJ zODaMdW;*3I?ZL(^;L-VfnKOcawfmDhEI3x^d#3|B;n=fH)5D2!b$wT0WdEsNU4QM- z!dBCXN0j%g`@bgPL<<8QZ?0Q{$=>U=gxVcC)dDP38=uA!?yLKvKMs9U!!tiReoQ!- zg~Cu-4@;McGcAiw4&vh`zpFR>)QS$AYjKP`TyYdJohhJ!9ZWM;GG*_JCY?*1Z`JTy zJ}fj20w=)yl7o8Ep%r$fG{)Yv6zKBX0fCGH%W~CSh34=!m$CStiOu}hG1_ew-B8Vp zI#t?&-Jm^_z5T`mR`e;iq6icvp@&x8Uv^DdMQP4IUHg_QmE5h|^O+hJY6Z1e8UYu~ zOq~nfnxmHbPF}`=m3C_7Yu3tF?psu$TyxM*{|a1fCNo_P8$vF@X4<-XTAL z(Xt@5zsw<7%W%-n)r8vi)<>78(#QvrGf+IMT~78d77N9BxhsD=FqMs4xq*3S*KNYP zEWxlpheElAAh%YJYn(J<4CRvKrN{Wnj%_BB!fyejt6WQW(*eE`W137@m-F z5N|kj(9hcH4|&waCU6X{3g3rpOK*2Xq zUn##RUJh_CLCR*V%K}^7&-Zrr=XRp9$mEZK!lqqP)&yE_FA81D<#z@5VjOjnx zRK`7>2Z)9Sd|V8ECK_;kMXEXMMhob-9g-i(|rnFFKYyMqCPs;r^3|Lo#`7ej?|J z$9FexfADfSFT&^aFS{4>my2E-v{enUj8~s}wSQgOX!FQ%O%O52aS#;xiiB4d6${@u zNoxe9nNwJyu$vyof)3?tM4+eLcLx4LvNBMo2_uJHRxC4;%~ldN7KxJN70TY#z9?_g z*PNW68Bq#IY<-6Xm%V9krz9Ic6gdxcf?e?$2gN=qX^WwDDV2-;KtFEJ^mzDHd&i%x zeLVC18V`1`(3a!A|F_R@H%c>3c?IjG1*x`Fid-5b;ytDFTM`}7u#vII(9Fen^Hoez zlJTHelaAX{u&(JJd9FkUKu0(%PB}w(i$D#@W`}+I-5YNHHBo^IOrlz%VKGxW*JpSJ z&|`R`K{V3jSt#x9s4T|Qb?nQ>Y{hS$Z)~IS!dFv>i}3<7Y}9Mr8t%?y;sVf#oaR4` zO?TY}s0H~UIphJ96v5W){6f+$K?~sqcyBiDuj&ew^z@^zRqNMNb`)=Sn@Zcb+;#A+ z&H4AaHqW+Z!8LSys_V#Rp(}+B;>^|*?$_(I+q;Ym7PIwV)g>*JvkS1hm@ejciY96f zZbvG8SunF-Mz4mUd`Qx-UPD+=&iwPWy!b~RoZAK~;(U0E!_)}uUi}PomxQ~&v_VH=H)gOWktZMAUF) zx2iZh5IrvL7A2oi7C|U|)Tvym)%4MOGM8gdu6$H;k3OeO<>|;onfJb!Q?T?PJcKKb zpJREMk9KqFOKG=skVfDpPo#W^3uowe@!_dGrpNme6~IEKc;3Acxx3_)x=^Sr_gI-- zqoM!Q?Wvqm2I}hFFJTvw$Sup0pYWmR?ldbS{Qmu4)cp0OQsm%0nH%-R&NE9WK65<# zZzN1T<4J_sjeA0+Xs%3)}L_#5u~SojtL*+6%?aB znX_zvFpa`faa!}wAU<~=esA&?f{u|8)$cn+y*-MS>jxyra~c)2H63d^qih{rL0P?B z-_T;eX9W!uNgP#LsJk3@WRLv6_P#Tk&aL|wA@)XMBU%u>m*|}!YILHPAOz8SuhAlU z^iBj}>%I4gULr(`-dnUFh`Xem_nhP`RjD8xobM8W&M_}1dBw8|{4R9|)J^hZ%d=Qk8zPnNkMc}3C z>w|c4WOl18D=JOfB*86RyNGT`<<0>E-lE{V-~-+R;YdXpnPMD8BAyBC%?>BnL{g7M zfi4^Dl1NmBj37cedo8Ms$9(Gna*9a(Y4$zM^|3b|JZHP-8~mHp{%5UeP6ryQP6ipk zgf_*fdL@|Dr+}tOF{-eb*sQNGuQN}t0d2LfgP3cwSFO%@N4xq`m)-*@5i+Cpefu@0 z?#_XQHy78FF9n}0me2Q0*S!->l&uxKcWmizNAShQ7kr4Y9XSa4R9`dQ*EjSL>ys>- zxH`38CPfqh5zPn|E*0ZM3!b3KEvw#xMdmARM*P)V=dmdjDeqc^_#E}3?V9H6_cP1CMoaKJ@e`w{4^4;@a!=x_AIl`Uqwn8bshAvjr2zTEL3Y2(l^g*WwHi zcx(5Lo7QxU@y#&G^b&=QC=z`P~huMO?VV$tn}&EH<4RjFl{9(uqD_{myqsw#KgvoazkPNDmg#hcqkH3_|t&TQb)4UA54I zZJoM|$G|;x8!;p`kyQ3cAMRuMBBj9OFxZ%oy~%O2rocz$ro)BRaDb->SdAd>W?URXg)%)jq@u3!Syd?>=q zJD+nazb~`pYOj19Qk*~SDfI=X5W{!ud<=Kl#H_-IF`=5!FEKC-BHaAmuuQx4!XL+f=f1zC{Fm&olYqHm3=d7b%` z#7IJP3`xV?uxxTUOK3GNqV==g(%ZEz{DfjGweyPmG!}ho-O@pCtv?Uk z6uxwgxwcUxXquF_)n|w>zil69U{>XtWwuUTYe|y{Ju<_kY_aZ-x$F{0yS*-2>R=+4 z>AYgwcC0dWr!eeJ1hG7T({21Xf~_(pe1}|%F`H<6)aru(!PV<1o=3SYm4dU0i99hMGK6Ww&osKq=F4258B*i ze!<__8&HShpo{8gI?309-Rk7O)kQ>4F07!U`jLvMF=qDFU7N}QZvPAf-RO^_qg3Q= zSL*q|_v^}i5z7H)FGs0M&@;O2_2_gSx?pl0B~<;5!iw#pm3HBqRcI3P8tIw<(Y>)kX% z0U|LiJ-wFjm3?{RMZ1Fpu2cP9!V{lQXVJZz0-tf1=v(aAA>w>C)7A1>LLot62(%H< z9aqMMdq^kPG|E(*RJBZ)$kw~Wj4~T;2WK&hFZ^Or?-4&WMB+)uXRK9djAQ*I2l{9^ z#In(@E6H-Q4{f4v{ctwWf|S920Rw@hjPMOXVQ8&PE5n^+qVMbLW->z`VB*RL-5qzt zJMMB7So8%bVWH0oGK=aEuN8XKpgUek&G2)Yb+<*lMu6x}73MY9ZB89uMBPNP8=64M zs6iBq1;R#Y+f#Kq)^`Q_msY3WNw2mg%iXb)bMcFOT2LbXN%{VRy+meUt~ELmhrYv` zWH{wi)l%y@BVfE{To^oFD|U#Vd>*zqHSc|G!L~nQXun4dRiS3l%`N(n>0!^BA$R|T z#QH-iQ-Eg3R%Z&-;eC6702i~K59-rte&zt4$gXOn3^?=zIi0fmT0m`em`oi9R2}x zReIume$dB8VuS>)x$G`GK9S*2Rf%KFb-(M&bpu(fP})rIzPU#;lZ&{7izym2QmxPN zQH}7!CZ_HI8%y{}?(*5;98*%ue(gmShfejq-q&zla3&eY)wnRrres)OpM==@^PxAb z0QuNxJ7&`YviMC#O(LHFMsno`pK;Y*o{RamLUD&#pAcP=L%HoJ|1SOEV>7Fe)r z04~FB+>dp@4-8I`WOU9pm?p8rLpja#SWmeEb(tfJ^X#cn_R6_>N1hF;7g%oX3i)hdQ=0H4jm0d`B1G!^V2!hWwEY#yx z4$w?grptvMyV;NIpU`3X8YF<{W_W=_EdSkdTHUW{VT#Sz(TTmNh?+@~`DD4LrxbDD zxkxn`%gIZfDq78+F@jdQzSx zx5L8$&OA2Ox2`N$0PD*mlY(`yUxaNV3py#IeY2~$YE$%`u>P9fap1UXTjJ|+b4GwH z$pa8}J+|H4C}H>TSnAyBR;)e~|Fjs3O+;v>+}GPM2kvF`eB+dU2xJCLbv#>kWp>Yn zI~<*EtfcT1BeGgL1IYDHo{x0q9c0@`Uk{WS4lpdF+o|dGRkVmNwutfGOscLxWD3F# zL&Hx3i-`ilmypwlPM5cN0EnKqtQm=n6yUogFWd|>dOWr~HdcwSLEZppHvoEf%{7un zR#D5unPHqyZ`&89i2B~s93^6hZ1gzFcZoq0`InEBuMnaq&!Rv%Cjc&+ua~hvks*lP zDPH0lXsU0N|WwfMFZSo7_dwuQ)$R z@??mN{~i$rM*IbjF19TRg`q{&$0_m%r1Uq~RFAk#iRlAodE{larvs3^z+jSWJ8 z8&j$|j`&MwzBPa8bj_3@bA-$bV9kZUwUfGe3(!d%_45Sb+k>aqisjkGEi3Q>* z&NdPK{&IiHya3KLzRmbbC&)k$tsDovkMvdq?--=Bt4rqDs$EZSwuOCunoh)Zm%t0@ zl%>;!qM1lG1uWutvaQ!52w0`s=$Sf_oSp1vpV@i_2cel?${Bx07TDC$M5Vocvxf*j zK^}j~|3yIa#4Zil-w#1|8)r<`UUOK56C;S@y)Z!B0C$q+8~b`8d*Yrv@!WCEfurAi zkHIAYy3hW5(&_zuJ9qoT<)=OT4A~l(AKw2J8PLh4Ag86J-SR+~LFa9df_#XmP^Fru zL9Crs1C9x!qoW(?+cW}r*D~3lNc-@;3t2O|>{h5{hi7YSt@& zC`hL9E++p;1gZR^m{2xcrvN4Wy_L(}`BNFdCz^L79f`uaZm=v03=_o%1_4vKhyJqI z5K*LB(eltBSA%@`DobzgV0?d=99NBKZaII5^2qD#qYiNh#eCGC^{)&2(ATHBn>cAN zxK$hC{v?F%!-%r7`?h*pXT3g4t8LUusIQ&kdrm>EO`Cd0{rm5f6rS*eR&C}f#6Y0Dm9$U`c z*(li^hbyM-o?I;)78<4^E3V4m+6oaRCjR3BAAsR!d5pv=CG=Wv0|fzr@S%*j=wl}1 zHG`x#K7EV;4C}KL&T1ALf^h3Sf?`11?$+0Utm7~?b zol&mNss75W8!o_7bl$(OyP|dCkoG%gh`sdXh#pKf9VbaJFv!RYxV^&X8`6C`&}HL- za*R2y>Ix;uV?rCSsi`V9G@oLh){PNyBUfTg&@gr*Wa<9twW)vY@NPjj34cHYklyd(}oAoh!wstaiYLU*#0zt&|xFDS47q2TyBp;^~ z&FR_fB(~eQCwytGhODGDoLz23BA+j`z2j>G$uk^C(Q)fXOQPzCX_^e#>p=Yawv_-< zwT$fj*Pn{PJ%X?((`u670#eC#^4pSTBSRrC(pg5D`Er-)m&)pXk?KT{vcy`y3s{Vo z9gU-=%IQ3t?HwfknB493pF!!Mp#4Lg)yYl;GeZ7~V2Jy*zk2CKU=NQNIcuVmOMGs6 zo0(8`&r-~v7>4^EyL^H_-PlFdg*)|ES5O~B_3xuqpZ?7fwN?sD)T2=|8EC@$x<#=r zrcF9?i)?csWjW1`ah<0!kEHhiPO6sZqD4NyT3-aJwK^PU8un(vwNQ~MZzglYL7-K~eL2qixfA}R z^GC?=mb_=P^_}%+1~boQwcjV(eCFNdIm?ARrEL9`nXWQPld1{S#Hl ze-7Aq9oiGka_XN0B6c!tCJAc1==6@|S&`GL5Et62FLZvS@?K4E^_Rs$l!z7%Ym0{j z$%OWMcnbAqobl{bb5$c(#@{dfn%>tW5wjB|0>Lg7j?xSiv}ktv{DEhszrG4SXrSUnjuut_?;4EmmvZy&&ANluztgZ)=kKKtD3BhK?WQfSl=;$a?vT)lH zRuvYvv(x+)@|8s2rM)!VzzVOy1G%*9Z%OPwahAWVU3_bJB%_(BKIiICI5PUUx3==%`3iTh;*wBGBK$cF^afj ze_2??Ab;T+ocQo}`Xq~j#xC;=X ze>+r)x&faM|mi9sy~xH;*Ye|#+o++E3A z2Gj1}Ks|a5EDqd9k+=TslJs+B1VH?jx+DAiUIZVRZBCTXE*J*xG$=jW`{JciW+d@W zHP1PkQt^>OyrvopKmSxQ@j)RK&1NG2BlisUR8MDU)|EfbS88J!nhg&p;^|p@+egJt zp#u7*Qxt{3xkeiJAcQi%PROv?s;Ouvz>gtJslwP?^<1Y#a+Vk;wzTnm>*X z@7o`l#mv}Va(Qnkia>*4Xg*)q^x{c1nSvup$3zOc$6_O@_)U5J?$|dMJ#bjNqLFZ#RKE;NP3X+Y4+%VK~@u;}o zDD%3Fs6#~Rb&v$4&U#A8UsUmayF4N+e|~&dMv$Itb#0BliAs?_)hk~2OHEBtdIRHw z{#0tyN*h{W2qmGOcKp#&>$IDq?t1~__IL9lWFgZFoxOGV`EH#mP#k|cTQotQ?R~nR z_vnrsuBi!)*VnQOP|+uJ?~@+|mHf%Z71Fb#iu+VFG?M!m6IKS>FryMe$G0M-w*q3* z(wLW(#$xPvJNw2hW zsE6y-d@<4a?Dv#nAmyqdO^vcs^;((P^Sl1Il!DEy${r8}O(CVxc=H@vhvHk zhuyE9wY-#FLlfH;Xgaz`-RC$<$l)_e(@sO$cdh!#O{&C@*WJ@!gz zROT)%|9B*M695*&qsRMEbzs9+dX?$8HLix9H#k+k>a=Ye57)0yXT6mw(?Yj3@aq1i zA@@$avT}5FS%-aDRk^U-qes|~ya?!BtoJvih0*A(9ic*8_rP7j>+tmJ7C=oZ-#$lg&@g zwBu7Z6%GXUys<{J~&O=|CRDd|_v^RXLNL8wV2A_I6iBX zKWgUO6zgPdMi%KfX&hJ_Z+M^HC)16=n(yq_(!6uyI_xhpG3uXZ$|ZfTYCJu#_#Rm- zak$z`dnGqbm6bSDYLg+mGUFhy+0ikBD|}$97sO@cU=oBbLAu&1tr;Bo;F~BoOdr0E zeDJ)&07K)D>c{EQko{bf%jT;at0k-zR=_r`IFi3l13tEO5&5U^@+&#~P7$8iB1!-l z)*uVagM*y&1~kO9fDB@6%2y>K7y%DBa!*u;Wx3SLJ0`WDnXrV z)KYa@1hURA{WNRM51)AAj)7d6e<`ERJmAg z5sf7P@QyjYN#eMAiMsq(so+Y732VTpH^o7Z4yGGm_4+CC_MbD*?>m5Q4%xsqAmlwP zn#@&{>_TBcQF978dQ{jN7`O-sZ zEYhZ7?Iuf-;gu$-A8+s)x3i){5zR@xzk0hJMMtw|Uae@)aHJ>max!N8Ku6vH zXAoj5wU>}#*b*5szwGhmcvU#b?uTxUNc5Q+A(@cpB&uwZtNm#u)4r}|X&w8dCeq{i z$`4blD@_jZtf-$ev1gI^HF1F@;do?bq4flg8W3nW@R{G=>_e9pVKzpudotO@!V9wp zthkp;LtXAfVhg4jisK8Nx5LSO$YF;k zN3PjPE^6i&2kS#r_kdU)e2OhWaiA2NE6wffje8r6%}}&4`;ye`M5oicl*XYy#MWZ~ z**}%7wmjaY+WW$|MZkrBsG2DLC5O+24585u9)ag&{tDHR;Q zC)Om+uc~i$olV!8S9~+(8W6Dzf5m89^WIydJ(vE;c%Lr}W5H;qOr4hGRvjGz-BPgt z`_zjw1{#zq8q0?Z68@z8u?Dp;$~K=LUAIa$oDQE59ZR9S5>FMcrAYb4YGatqKH0SJ z-9k>eftu!amuDdBPEqD#ufOVD|6G0uegM(6!cJ_8dc)ydl&nKI2Xv9?6?>SSO$?%g z*dgN!3|x;LzLSgI0i?heXz%xn@Rq{_Dhl04MwB1r$lkAP2(^!se5C4dsfEKt5iV&o z;8K0t#lrMnf}tUbJ9PD;W5)OEl(-=Db!MR_Kqm3?_J4X&%sHu$Fl;!lZJC?qp#4E6 zH;EDJd-zj-Txu0(=V~hrZ|`&~5=Maa^{3yDG6;WJM}l=)4IqzIdGxw5_v=o@n&$Q& z98D5BblaQMk+A04ByexuHyvA_x8MF8%)U#L=+eyhgIP4-?ve_|;rI&U50%w)c}Is@ zf`dbaG&4#nu^#RXITN-J*zzm9`&D(6Pv??MD?j3wf3n22fxsqjLUZe3gjh7QIaQmO zaiWSCx30^H|K3?;dSaWwXCA*+Gf*?TLqk4l-JFb5V%VYTPl}O6CQMEa+p=NkWnqF~ ztyfW*&-;4&Z%n}aCfM4{dOf*q&ZJP5KU2vo4mO!Gqu1!Ts%Dc)K55hSOKiV&cpOL7 z*3QPj{-}X0Y*EHdS7>=c8aKt)S zN{4^!?+!UAUFNj@Y>V1`ZSI_iH`qgJ<}R_>9#?S=Sb~F2c6lTiD;}m43y1 z8Tl#!9Q8ZiWm``z|0!Di<5M6zg0_Cg^q)TYXu6Im30REuLig)FaBGk`qFQzcU>{A>Dn3g1S6Di&BQsW}PP``2cB znO$d5d_9ulg>y_|rRW&i&$|8O*zG7pQ0oO4WG>?ucqm%4yccKz^R)PuF#B9y7QRPY%3~x3zpSmhs9S7M*dSA`ctF(`F!#_ zc!+>!3X3)9Le2V+G+jDEGS9CQ%gCPJc7VCV8)~yPZZqtZ<o;JQ$ZB48>Ih~ss43r5J55l)m=la=vBLaEY`ng5Hbj;Okw!H?qvC0i~654 z7SRIWO-=P2H{yTplm9j`2ofmLy_lyed-d;w@?TR@QU@ipcwF;)pv&|33HD!jaysullh6scgX z$oBRQRLqoW?aq6%%+tA> zl*LSD88FyB+pM)r_^+XmCToSXp1byq`%rTU$=FwvQyE>Q3&q5_>8eD&l~%Ej0ZCHx z`KNqbgV|>;|1F;2?~U^F!wVg~=dQuqvo%r_?F=9Myv~=e5W9!uTl=bv8WF&kjD&)C Jv6zAX{{b5UHa!3U literal 0 HcmV?d00001 diff --git a/apps/pdftools/tests/evidence/edit-20261011/e05-applied-anyway.png b/apps/pdftools/tests/evidence/edit-20261011/e05-applied-anyway.png new file mode 100644 index 0000000000000000000000000000000000000000..62fce1ee83fbfe2fdda416e5452c63c01121f196 GIT binary patch literal 91625 zcmd3Obx>U2vMvw^?!jGxy9Ot?TW}}1TLOazC%6QML4v!x1b26LcZR{`&F{W@t4`gM z^Y5!ywP*Is-fOSbOS)J0*Wb)f6(wm@Btj%8C@54}83{EgC^!@-D3~OK_mC?nqO--2 z6SS+Ev=~&yIPnqWi-fthtc9W?6a(Zl0u*$pH5BYWMIbLi$O{VUT{bk-JIEROpKIAL z|8o}(CHvj~e1=K-ryxZb9OPXTN><{tIsp1K6W*9;@8OMX<=W8swxO0bmD-F=OxwST zLR3Dd?t>hyA00_uettgl3$%Sse%%Ko^U!vRSQ7GgVz^6Q7h9j!lg{2iKABp=L-9-_ zHOwm;@Wh$t>s}Y_6PZda7eZ78@)L%MVpPyr+3Nr_LXret9@Z~=inLLKHVFxaRf{ukk{QDuw4UH5s$Mi|^KZ;Qfgo5kQ z^h3hd9SLCpRrkbvX}@ z)L%(S+z)_HP=B8qgk;fPxSsnUSXo)Qq~2Z$=hl%v167v9L@6ai_elL1*feN={GZN! zGA?#Cz2^P0va;15aByUG2>N;~oGw2}{Iyni|1iXm>gwuvU=mA35P+VZC9&<<+dny{ z1@E}jG$MoAA6GVe`hGI0c_gomZxV`#YQ#`wEl^O90F}^70VE}YJyHdrK`*iNo zC-2=BLGeag+?~+emMgYOh-Fv-9OL?%^!}F!vwBN`+9`=kQb^%Qa}jcMxFPPuO`6Em z7=?x*=hrU9Dpw_n={)i2>3WV+7>2F%^z`w0CT~*Y;%_JqA|AKBG6A0at+O-Dt7l2w z+hSlh7HfY?T=$=_GC%(JL6{`kE{K8|k}=m%{s9lK)GCK>72k8UN;;yQR}Y5nG2z!Q z>VartKKjc!AFWtCE@mNvRdWZ_@AH$EFRYr#NK++LEk7~~Q8A$m4GqOtoZ#Z%$QSR+ zMyh^}{A!~3>+(QfY3 zA=Qf$Ev3fz-RCFA9cmJ=&l$PU*@7>K{N>9`UUtVbDl8g_hW95P#**`SnWYVwB4PvNN zx9c+!g%T!3t_GXyZU$x5KW@cn*eD<_dw~Kj!IAnp$S~jcdeiG^+;dye|VvHSTZ1eBTaZ z7iwfW3HSk33j83HqnXy^w%h&m{y?5Z9&%hmpFSL^AlKFrv$ez z4PB|cKG*1!N1@Zp1>S?d47jK~<>YRF30q22xk!=N6qtdqAir>kHj4>mzOBDzgtc8_ zx!#`k?PcT5hAE+Lf|zEh0HDdS7OporLR||0{;n0^X+lz z-no}=DaG2!$*k5F?(@t9X7}}1s)wmekwhP_yA%@zzBj=g|FpCuhKY7IgY~D)m-i&= z*NKc8OsCB4UVHcyY$;X<)t8Sa6^YRd*A8n91|7P!4W9>a6*FTQ#D2p9WygG zFc_n#-0HBBqZ-Uq_tk{WWUAVW`Rlb;<2vQt>WgdF!LhbOg_&92h<&5CG-=aY4Dbb% z;R?Rj-)bv9YjXwa0i#?4{?Ke_ab4Mp0`U)&&-$@AHOX{L@LpPSI}uEhyoGw z1FVk_a^?u3eXL?#&QJo)5Zpl~<3z`0eB0H$9#Hkq4hH4+naF*I;Pu3SAc*ht-#nj5 zZ$yc5V}v{+UPm6YcQ{f%VQ+~l-&!IG`NXz&u+0uC3^;avrve27uCA`GYg^A}SAW>< zmb^C2bwvny6rF%#sT+SjF;wuj-3qL6obY7QOk|<>GSVZc3Ua21~ zRtFLb0%R;EGHG4+$3Qlmx3g0&>&*%I5&N90P0qgsuV&x!s){B{QP=gk_FxFSj*GWl zns=W;G$%K79@l;ovsQPtS*!FbTz0p63r2Ukw_h?lJw`M=KzaABV~JYB)`d}X`eF1n zzB@Gj3)`;=q!E04d@gHsrF-J2Lcv-~P1UA*V~rbeQRzG$;0Ifr=mz^03b6(w1?sI|Zw(|`@HYao@rN6klqEwh+$FaL17EtW=_f;kg zQe(+?BF`!u(=&U?o%h8d@LDEE8=YB^qS3ho{1MkD`JUleSA`0V_h=pAwSSG!HC=vM%vr)yf=yi0Dc7UQ+_TuFWhT}hG zjf_;b=LAdf4+iRfD;OI>nqLy~8eC*AOuMvHZwRr%#lt%|RdcCvHM{)tnE}mQo)rgQ zM12bfX0oodA~xNzWoYI$!h|f#37w9hMqy4#WX?WE{w1Au&ZDqo=3?R z&0rUV1&kYG1RY@wA#~a-pQMmPN8SUmbRPTN*C$_EAw{Da)u3J5PJyH{~g#~J;>ofUzZhlq{WHD&Lj}Z!!ud>w; z)vtC*6ufB+6|#?oM}zq_W2jy!p@-Sjmb;1&^Yf=Hx0vhJQoZ>I?#@#E*FCNNcjym0 z-u7GDANz@%!!)5A40Q^XGmLwiNCX<>FNE9oZmxFrUg1gOKN@+PXiCo=50Jft;wm@G z2@z-AeoIZ9lk#Q#>5=xmA1Ob-Uj1c6Lt8 zyzjGCS_ojR!rBX?@jQk8afagS!Ya7L_1#xJa)EF6Rf3O|1GY>`$`foL7{tcrf#~!-9R?)+vlnzr zK%0uC_f7Tl$yDfA^Zh-x^6=r*Z?i>u@%C_#D8TzPu5-AKk%c$6?96s%znm0(MlroH zW#X{-xAaJEUxYn&NBrMn6Ny;SSpdGF?@%9y-5^G-ZOZs~1(r4G^9Q*lxxy%S#*%jt-xx~pbwhslY8^^(KswQ60%$g zc?yr+IH_z^+OBs(==Pw}QP0n9TjgY86m40{!QrfCOlmECsseR;yzJHn(=a_;y$PGQ z(eCIwbKE5`bYbuzV=5sj^8>haBO;<^E{{xa%RR~`_qf~eHC*}y)yu(_=NyfxnYk;~ z#KUz>GCt+m*?&rr0aQ}ccHCwFHiwPsFKTM>?Jk6xQmFy=3x0xx-|pUWDfX*2*6#+g z&z_kD-O7#yt6-WO(|L4KEpP=b0(DZurw260{x^Y!Kny5 zN-TeYLj32I$QfY8wc6x)?3U?#Ji)404CAf}QZa-_sTE;Wq6zWwlp>F>cXeSsE4mM0 z$y$=#9&wpG?hnZRef<4q7PD7btEL)aa&l^4Nfsg%ToFPLo`SX32?~{ejSuqt*f<%ShI=*B3Z_|Q#$nE8qRI0weX2Ng~W=>4ce!0uhNFV6If zKsWZI+I}Tr4YOxJMhKnnblNq3t_^SZV4Ue>7V0d+{-@B`T8@;DM-P6_W}g#Gn+Ni% zs$|ZmZ4O^c0v7Jtka^Jl)>&vQ1W0ei;%8>2%|$z34Zl)^oZaZSD#35$r^$bbFO^_C zh>s=_NNa4pI|Yx9&m#R%Vq{|aB~Hk)q6K=^5tngH9?v{oi8Y*>NGe}3yT3FsJnJm& z6Dhd=Kz(I{k;B`{6^Z>oAZ_KJtja)`8&F%HSlYp1n2|8fKQqozxzTdfpWP=hT`xKs zoEC#osRVJuBS7VdejzD!N`2IT6nnKTM2+Iiq_tXx=T$z|Uq^Ss0Har@x3|=cpG7Jp zh_%4rj=5NSrJg{BI^C%%iZ(;4YIM{o_>xenvUQz7_!WY3Nm(b-QKL)QD8ck4p;{sF zqt)UB6k;|=ysM=#Z`klP_-a{j<)BTx&sp!=U@ZsjzeoR&D};%n>HvJot} zlIA<0k>@nd`AXwP5JM;U+$*3hWDCFB{-X7c*RZt0uvQc3an6?@e%9K!%5=8UFjut; z`(+F7;dxx0RS>XJuA*xC8UW`4PShHlxOn_YzCg-=kZhgavJ7HXOx}1sb|{B=^4j@1 z_k|JtH_YkA+e2lG8&2Izx1@ZX_RyTm&}@W)Y zgzy00`C4zg$At6HU=7}he$)|#+$R%;IH)$nSn9ICZ~I3yA_X{kmZKTw%jHuOo2wom z#r(@JAt*e+iX!cG1IeM}x=ZDA_6z+KZvF$5zr=dv{_m+Ul7Xq;9SyuftFV4I!<}G% zB*w#|Jpc;HYE~Lp!Uo&xoDZ&Z|@uGcDuloYXfoeR>t z@4iRjaRB(`q;#u}b!ujl`i^&s>qbIvC1iOw$kfzr%94S}ndq70I)$&@m+H(*={0LC zFASF|C8axb+oe>X2@Hb=3&SuhK1ll?Y(1h9jbdONM+kT7cdT;ekqWi^?ha$puNxc{ zhfYW|Do;`(;YScW4i69Cd%!cAelf7R=DfYw*sz<>WayW>To*sQIWS_HyOk^;V`~K3 z?;SUXcFb4k(LUXtae^=(k*jMHJiq1qfQ9|M=r10+S0i6w13q9iAAf!T3Rj`brK6Jw z+XxPBA~t+!$0U1Rp{mg$FxJ!2v4-QgZ^WB1cgda(N4CmTC~;X%Fev?=a! zdi4gF7x&7;I$UUs5queSoi=n8-6l4uJQ$~nd6mCCt>7oC?%tm0jC~HEbY1V-ao;Hz zyB-h`A@|VLA$r-=@2xh>&q}A#9V6D=S%&1h2W~nF!FPGPxJW#z>|inSelS-lGL?!+Iw>&t z=>E2E=%1`bhg*aIKmUDS8u=GdHH$qAcxzSDXJyf+LS^6oc8t$rWxYcz*5mX7oruC| zYP-)6Ws+v{-Y(0n*~jsz&wF%4)&Bzh?p4!b97v@s@>FJU>hZn8^68pMkk4cVRyW#W z@hzlkraw~Ev57MvJb3&}*B{fQh0OORu1w8@Pd(zxR)^x!{tbJXs z6603sPqU)L`%tOB#j_Y;q6rY>Pv6kv<}BTHRB58>^Sk$Q5HH~wyd^DUQq=*}%enb^CeUayK*eBV@{-wFA|@dOBEcR% z3vOW^I7SuzdAV%PSRy_wzC=Dgu$OjFlY>HWaOHd-mbBo7JqUk{#-6d!TrD~I zjF6E?qc1Waxn^6OtOcq41!%c$F!w+bWDH=@RG-bV%;X)%`OE&1O@L`t6T55CTcm?F zM~@#;^RBBmeR;ldMa;Kp`T9Di^3krep_(gnFDHaLkoH;|7dJWOId#lr&AR7bB*Cu*xS`3h^GD`uEvNE#I+Co^_ck)MRsyF=&Yw$%RGtPU$g%bFr`+t&knC`oel)3o)WxWcLI8?^40C9p^th;%eK)ofg<*~p4Mx&+c6L^)$jWIU6hxJmm;Wd!gsK=; za~teCS=d54U*C$mDBO<_Toj^T(To)LR-Kok5vRB5zt8gTJ>p{f2doA=h!q)`J8L+( zyo-rjOAsBQa8hGqnwe1f^d7w>AOHq*;L>LcXU-g!yX}JlCk_Tw{89t6d`nJ}ZT7^S z{_B$Irh?$h=c{=*cw|EN?${01*N_|od*78$;f1z zV<89to2r^*uoAEo4vj`6dfF-d2eIf_-R0H90w6gosRq;AzuE>-7)p+)4K41k;zCxM0CjVH;LdBp-(t&u&>K;CYSFH$kE9ys*neB=|Mggq z?2iDGl+C8UYQuk(sFQ%GgxEqA9R+_#ueVrT@9a|5u`H+WZvg^Z8db zunLC#`jwhp*l^o`#kqN#nukY|fl-eF{+#2Vk^6*jn6Jvfz|ecflFZSlCpSDCgeMJ8 zt^|qd?>~xmO|s&SQ~!%jSt-HBV_{MA(aXw#rJ9=Z)Q6FV^V-_P9K+LR44umUF&vXn zu%QU`kPx^``>>{}^1|RHVJVV-TN~L}`5-m1(3d;n;I1>JW;AQ;(MM2NyFK=ZG| zAOmw`UA#|oFX8JiwRmM|FJ5D@0co2#R5Vi9t_wVqzfDn*RhK0DXU-$C_pU=>yXLWR zl*De&OT*Xh_b+=Nz162qD-5ig&-NH)r@#J13$k+%^NK7fTwM0{4!$tiSuLJs!OCPy zV*YuDt1sY;+E@Pz*8rBk&Q|LJy6-za%hgMPDpMKn(BT=BSQTHtXBkm99X=1N#;xqX z>|c}Fu=<2@c$LA5k(MYV$V9)m1!y5!nFD*X{L_}MBEPACr@-92-g(*zLZiOdg4wgEi|zyu`Mx3MsLRuhf?Sf<0-K9yFug@)AyXdhJPjju@L_&Je zEWpITf$)s9aW`H1x=Nal-%y;7v>^)A)+@Mi=N6LzVn@HQCu>m5GqQhsZ6G3 z>l9lnxOfe1F_gE_(y~~*E7-=hDpTYJCVeAyGLp&8#|Zlw#V-5g3Q`KHm+uM9q)b+5 zAGBRN6L1^umW(hzX|Oj0J%s!-UAp}Kx!YK>@`{-HdW?*O^X4nz!N#6Uyp2ma%ydj_ z0b7T0RAY<3)wm*~@U%irRJ(3-h+2nFH6AROdOT@{9@{^v9anfnqt2PrBUW?xY_Tt8 z+gp97{b6d@;F=^Osk5eqRwV^-%b@#bsB69MhU1WYY68f@>k6naWT>5@=?LKhZ|bRe=6#gl;VKTX7n2DH*)yI2oH)g69@_tu(0!850rrHk1PjXSXK%! z1})!`cJrv)={HEf)i&{5EVoND0;SI7Sr6Z*4|V^lC=C16nt%C+pL4sn3|MlWBrkgo zw5Wk6ra_#|`oTE<(fnSid?)IRUOaR#k8@%&y?vB0aB%3H{(hy&y4IV^HHlcnw@r#@ z{GY@%gxnxn30YuiwzjZ+?~OE-s+~Yd<=4+Q$v){4FHdk;EVCDJGx@HCN?7H&Cioj~d z54scdY>kMCi9w1p-fnW1vI0rl3?0auPjs|%oRu(|8^66?*BZSna|yh)x$gdgxYY}t ztrKlzkR%Jo+3?8TLvq1LxQ5Zg$uQ@|>X4=U1gVg^HdDeLqt=jC=>i}LE*+oyYZJ;O zyIEeLysC5DKd65ai{8G@9t0kkW39uy9@%)UP}2Xcnq4mtJb}<8fGYCs_I&N2{$hM@ z{741X#`4L^VvE?aXy)bdCeEY~C9y$AM@>zaGM&dUNm8D$pe5-dr9X;KgC?4cwexA` zC5^Z6_~&oObT|9j-6u%)4J7iQzWzd9QvvQ+u?fFB;@hDv4}D{cs|o0F0qAU!O|H>w ze57q)zD5WUVrh~dmIs-y5V-@~^4SGp1&MZG5xJoKKYp$~cvH z$2#w?UZ1vULI&i3|2 z19cr=w>VkbidO6hEyEv)N5aEhQX4mCif~a)<5%Pq)HHqEICD>g8#hykS(%c_l&o26 zJBO2XjOHTIn%+(f1XrHNG&0A&(dC+Cc=pZr4WHa+SF`x=e%B**CHCSoJZn8MTs((j+d#qoOsmvhu*g12zApyGjozzsiwYQW7b_LZK8mv4YdTq?LVK7E& ztDK@dePbD#n_G?63Dyz;qUes#<*7xT&ciodG`X&n)?tf3=FFMm zR)wD^A$T!VE=5H-stL0sQ=MI|0axVD@~8HqwZ;&DK|{F;8nHW3m($EE)`OFzVbqv* z*JWC#eX`d1U|dUB2sgiNA19^HDa2y*R+p(H-iauSFb4-q0>z)|Z3~W~-Xu~59Q{8e z*8%a}0576ULE4X9kugGomsEFHiYTr2Pi{LN`#O_iv{=~Kxi%9(&vTEV5l}~!jz5gy zj~q{!_sjGEb+Huhy(r#25NlGJ#afG7;w!@@EJ*Hjv7;RmdCMP8naTFD<7B3F8P%t! zKrui>z+z?m!E*+6K|aP|ZLgkpBOdHIGpm34Tc_51Ed&*~6)j>PiP^d7gMaRu9pgFy zWJ+&z_y;7}KWhD`P-nX`9~Nv>1b;kIsfnz3sn!?x({&t3U3)Md5pIx~L*ZX#d|xBEZO-{<@g&o1jy~~0Pf~jGS9P=sWe>rC&a_}h)ycZv|=MWpfaEsw6>aWn23D? zt){9PH=5Z=zU#}@dI0EqRrE8{^vxnmGEf!TJ@)wCoC?vI|$Q8*5%Gu(*t7mtUJU!syx zBnC4D+)G+7XB>+)-)!uV*m9gERS^3(`{b{|NoN`Os4q)947mf6i*NHMJ6xt&=_^!v;mJHXzTfIwy)gQD(?5cp1MR z69x53nf${Z3>jaus_ejN^^a`79}8S^HJeV>T9dt7oZ>Qm+QtnfG>?Rp4W@cjYsQTX z+n8QshylRhQ}J^=0RQ$X>oXHBn}jqf zsV-;N+&6!C7wiNYlSb`(y*@^>7mFJmv3*UWb~~iaAAq=KiH`R?apTyIU+k;Y(U^SY zmSb8pr@f*R7w^rE*p6+dHQVvsCp=`5z5E8|4}&;mvf;2r{jnE^D?3WIbnvYj4@T1+ z)p{c5Z1-2;kRuoIitMu=ggn0`4<(Fq1guuC?!;$roV|lbi~Vxb|6uB~h=U4@xOErH z_PONsdukw2D>_mp?8d5-v$d^LB_xQ;Uk5_$fMZnagpWfPEF?fzt#+z9H_>4)vNy0PxN&kkUlTY06%1k_+^tbfgxu;(`16`yT zNcj&A9+m7>^(!7Q19{46#2@QuhF*2Kpf8vSU-;#Pl%q&5{`8Z2$sIELb*5`w#gAL? z@4{P|iVz8Sj*TjdjVkj4mksj{pZSK>MxVOQ7{abeJarejnp6#aHE^I=Hj+NC9|)3y z@NII*|MP^Dlk)Si2Zpz_YNhi{=*0D^5boDEoHR|J`ejaZK9Jo#Z?9O;H%+S|biq3E zub-X57Ydo^2}#>6UOXoRy~)>o-rm)=ueZA>jI#q+e7Ia2hF;*=p$4WsnR4(EdUXZs zt5-s$&Gqdv+U~Ycs9?zizp3v^;w(K8nTSQ9g1h|U>hJ>2UL5m`+BI&_JQFC z?DkJR0x&8en-TSpC-5o!*g{3|URfyy*w4B9qd@SIyAY3I9Qt&|7iSfh<#pA2pEb?J z-y`L6nz1rXgW?{Qh+jQCk>r+y{zI%1B_E%T(7*^c-kD}QE^Ug(eI%s5!f4WuPv0`z zpKg%_iQ{T7{X3t>1b6+dqC3vS;~UauoMK6_+cXgyMj{a+T{*PKUbP+7?8vrRNo$zq zP3J0&jGFgWc!zeBh35{Hi+mnJK*CSmPt+{*8feU3k_;nqd25%9b6!>DT3SPy@55S) zN`{R+rkv^dTEyc8P`O}CJ#;Yp#8`E`X9y9=X(>)e%)7|C`IbaSjaq#JuL3@|gn-eM z-7H&;XQ)EalOYN@6d6-WCFN8rs6;0Gv6mLI)!^Gb`zP_aQp4NyJbb6ZC@rQ@Q#Z?w z6P2fm^%B&o{4S~cqxyKAR7|%BUH;OGL(*@7_T$Ilqhl)$n_VXl>&Ma>^Oc6Mug7_J zqlL=El`Uf5@mVt@<%Z?NmzCNKCsd7VhQHF`&WoK1B&;C4+SINF{DH~p{O-tCSdMZQ z$HXh#B0hgs9Iiq#%dGl(@mMik8z}GMK3gv0w_+6q$`xaa)BxXcF{7wDb9gf_Gp`|# z>(yT(UTb%;@V^OCMN^nzzjwr64ci_n$3da^MG-W)Z_TL2N)Z;GIXiRsr%Rl}>{65p zSGasDpR`N7-Q3r2qEaDi>Jt4L=X|lgc0Na8j_3|T5E*;}dUeh47{Os7NH?iAY~u%e}^|6&;XmUqLCaX!DO=3F< z#Sgvl_S9&Wn#T2hOhuHJIv2|r;k4B9NbRmgZSd`pnqaS8>2sFs-mFw?)%AUTS-DyK zFg$;@5~XEbrLx}@`2NuHB&;w6mVsY9gWxv|n&3`Zrb^COxVTeg=K-DwFDV{yBF26( zsPfXxwzQjuiHAmM^K+={m}c?o=1yvj&fSFX`_u0^zt`(X1igFJdwa!$q~Bhe3NKZO zaQs=nI4<&T_%4*W=NS57FgWyyR4FRTCLoUs4IqSEmIVXu*CS&DbI-JF=MSU4Dymi> zs-`OTFmivueC-BJaOa+EkUce84tjBE(FRQ`*YOi0y=tddqBEa%P{K1;u=_nciI`;} z`LiJuUIK6HCvcf>FS{*YIyRn{0gCV=b4U|TUQu0q4=YA%;K=Wxef7IGSeg+CZ6y*88>R zmcr%>*zSag7`p_XKnP!L0Hi3=VSf*V)g^+KNEU^vgHsY)d-FM-Lb0vfz*Eb7pq!mk zL_2;5-{xqCesmZ8vbK9_l_$()U5RePFuYcyM@H;8dEs3MK2D@s(*3}!>L?du8~#DU zgP6}{c4n9BB}%iT6LG%6pc1|9G3}ekB~mE(XhzS)^LFykA5e=nU6j3;IJ1emr1d3r zllLLopw+zgwI9XoGNk8Xw4RoX6j(y9VGQ^a1m96jc--bS0VI6dTpv@~;&+8H#y2sOs)Qn79ww}CVrN0}smh2f ztn!K}B=Fs0#gwT(y!IjdfaAk;Vu52&@J^0d!)vr?HA7I>Z~i-eoKkD*Ni~G$EC0@v z)l(m^ZqNjy8ab0bvFeMJx0GR<()Xt4Y z>pC^xAGzKQnLZ?womu?Lkz9_>s1ocS()?g--SI}UHu&i}o7#TAz2|pdHfn^|*IWs3 zu*crb-j}WWO0jJEI1S%G;3(eu>d`Z8HhhU9s~oMt+OOsT0`2VMjIcKZ6Cs(Mryb`; zevyWNEayM37w*u~S){;nNsRUJuE}M99k_=w+;2-hd3#dV5Zj1wjc4ct5aiz z&CvV&UN#o<{H{3!YP)}xuuaFwG~6Z)1J|Ck7UiYu2hl9HhsKE{(N{UzEj1YePT|G3%Q`w^_78 ze6(9Q0V>*F2322ma&aGj^Z^yl?TpR@!_Mwc$(itYDFFCeZLg;qU3R^fUq-Pdy@j3D zTC{_`^Z5QK7UN8gO64AsoodmA5T$FBYI+Y znp+gu;ygLiz!II@bDqv@iEHpGX`?}p@42L2$lt^zB{A&uYYI_c;|SaPVaSA99}_$$ z4YQ59Je)A_70SY~FMJdJ0`b{ap!Jh1eZS*Ev@#j8cKkT>SVRBh!eGg$$ zWB&>vKu9t5qQ0n^AI%fTvwe8%7JPQ-cZ8AH-E40iwLd5OgMSf6I^e6kmh+tw`Um@lRlhe*3jSHA`(wFp7Cy zA)=8U0<^jq#3-CwlM@=2c|4fpgoQ}QkZ{M@5P@G`h|)^lXL(2@3qHq4Q;AtV582|J zpWz<%oKQ)NzeNR4G*oJbArR>r!_453Vn1^SQQX|ePZ7AR1@T-jZ|gg2ZM1mtxR2fQ zxSTZG@4c9N)Ofl#XYkQ!kUlB7r+U6=&iEQHNXW{Dl~dr8j#Likgx#XAO=_&aa41_; z@Ka#J7Ys*;j3=FtuCsW>1OqLnII}I-FmVDXe952B$lkcfRD$Fvz3pPwopuJW#hl7F z-5-OT`*-?=a72LQu%c{1v_yhv6rP(y))`3TNN$>dv&bvZ9o{)UL?adlY2R;dklte1`ZNYl zAhoTRX;C2Ul1F;auk!V`&Nm8mcTqG@(Gm;t3%J=iI*6`&-U)3K7+x@v46NFI#_sUg zf4~z$N6zS}8aS}i$Gc&j{0?ncei_vI7(Sx7$PuKzd-SZ{6Jv6_3KX=C-`54-4zeA% zS%jE8FZux|;mHn&s&P*!7SY?&4!?_}sP z2A_R^<#(S1qXP*ltW$q}A2A9}XSTi7-n!?j1R;O}Vk4a}ThZMz3w+1c*cgpJ?lc8) zl^ZUzd32|Fb~gL`gYMsx1{Z2&AlYI#h;fH0v!%aM&4TS(gVTB*h}%gGzHNQj$#jz; z1D>w7uTZh%kOb8#D4JfC6#S_&@s#-u-GwSf)m!(%&`klK3oiN$E%?Fts2FIA(O35U zV%Nb1ew{U zp||^8?dhYt|+|}ak;dwrlK)@v_ zteaZcZCG50F&t3;P(TR^f~H??P)W{WOU&@&ZnyDU&g->KagBd|+$#wSTwy&Xcl2@A zKlgh1Va?`aQqksC$p4zLVYqVY=!t;J7EpwNQf&m-elL#345-fV8eal_C72&U^r(9d zF4_*2c7LG=d)BS&1Sb{J1>%q?4m>J%gxI!lv1)Ryb1kz|W_%mW_P;G(U<6|HB#d5H zb?4ZdIVP1`=4Wo;SKhOuZQ%uzKjU~-Z7Z5a<~Q5FGg3zgT@vE$Urkq#f8z>qXZmieFicP6S(k*QDEc7vONN0u1mb z9SSu6v~5qzo9$L@(ZoF|ls|{rqG~Tr5VgUbM#0Ye^XYsBJRfwvnYJ-GVY{ErX$>bP z8&QtOu9wuO-5Tkej?aOR=Hh+)@F`-*B`gsp?-gh>Z@TNK8qld?S!*enKKF^GdvRpE zmfumhs7jgMI~&{;w|!FH*7qlanyVLSp!J`ZgEHK}KzX`7GVN9p-}|xJ&bF(AIuK1V zqJeqF3^G`+ceS*x=vNQzcfDdBm8}O3fVDpdg?vI5x4|b) zk3POS`hfBR&P+?&$0QsZeh!7z{p9}`9sI9HHx-GU*m(02^wMK0ll|LcpLw!#yZpHzQ}*^gZHD`Ic&GNqn6 z3CfT7~s?UBlq;j$I3g$Pu=`knV=f|>m@ zlLc%+ZYU%iy|$|e$fNUxW#hDiitG&qi!|XppV~8Eq9~O6T*AtWKD5eou#Gu&P|YGp znug!}bSD>|J1(tkQ&{&r@L^>YP&W=DnWSBQy?;fw{Ga~(AWDj_;m{mz6U>Vy}lt^H?|i232k$ezPY0i z?C;?g{IOJHUiu(T_HMQoZ9Q;s1D>^c_ZRh1?EE_Qs=LGQqM|`6v7FfXL)G82*feWF zW80qzy7g>1cLjnH6FsE!W*ZC*+SuNKamvsISi<1_QP6keBMV#I)2F8yCb~XE6?D0? z1q~RlAkF&OgPd2r%b(4>iPU2MT&keAkw);iUWQ}VM+W7mJ;|QCX7uWHtC%B2nWqgw1+<*Rc}W%*70zU|m!X7LY*4tQl4G#MgBhmaszk$ii$e1aa$ zAi2cluXp>nE`^Dfs)SrI7;sT_mW_`-)x-1nya!V@5RBe8`Qrf|F8QSH9h zPQbYvP4=pC{^-}3PJ4d|kRT-`?rFjAM`xu%$i|p51U&3jb)p>CtjW~(VVh^9FBpDL z3@;?Jtp;-clY&;HNLKe@cu5VRdsv2~7bC+0_3Z{x;d78BWt@D)SH%z6x)Xg+Ni`61 z+8+vt6djayqXMO&$MKvRB?G+|#I2ac1{~kI?gTxMyNDAl^x~UZo#i!(=D`b!Abq^k zn0Ma&P6mH`Ti5o|Bp#$+Roes@NA;)$WV zKBqwO-mNmJ@m%Bg!H6r#!P;r>b=@$XRKM8LuGUXkD z8$pnJ0Ac61^^6XHKbY8EDo92%6uO%?J#pB~B2b-El;M+7RrRI0mk8f(4Una;@>oBT zRBJ`lZGwK-Qjs=D{Qget6^QUktmy(sKQ*{?A6omQw;Yv0vo`UTzw3}fk7M2!AA7W6 zI#AuxG{=cK@6gLNbn2RPG}4?gLp`~S@W%@_7fbMdT#y9)w+L!Dl-LKXlO8*h_H4#k z6AA~ntucGo$|M`Y%yy5b(L2R#2O4W7VTl;;n<=Ipim=eNWFuee?0w(^Mul;Ge&A)< zqztw>?LhGAkUt6~RR0BI)4sp2=6-Ftd%* z2v}VXXhyp6vIWQ)Uti}s$u`$ zePME)QJ@&U-7xwphRpToUFy}#7xUf;o_ihLI~_XD8j%I&%z9D8(}U#iTySy~uP1IG z((bK+&TF^Jl$}exh|aGE(xHlaAJqNZ^Ci{R4RyhKE2CChZ?ms}8h>bV z6qtbU%0X_+b?+UU$aL*py`>5Y1oXEZcAs!wO_w@=YzGaj?`!@MjW-%^1;SFV%P!RC zJx+aZV3x4Ke1(x^{Ncb+jL4#CjED(R;GYxJ5HTz#>jq_}u~C}WgFphZlY~Qi8rAPf zNHWqf`)OolMYqm0YHJKVa#?`GF=R!gZn zt6IO-(D<64>8>u$32Do5BTdi=-MXTkldBUM%cX}CjrVBW8Sl^;)L!+Q%&2lu%h0a} zp#b2LQS^UUd+Vq=vZZ}E5L^NTcPBU`L4&)yySqbh3r^7B!6is=cMI+s-~uXsZZ#jk z7X7rd*qZwIg@Ju*6OpNv{-ugnW#c?SajJw{99bV;k&qAt^wHDfk;WQp=wJk4+9Bf`XsU!vvffRW9 z?DD&gwQl{MPtKqr3yxrty|vfbK4)L>UMG1pZ+?!|w6g&yV5zDhkD}vQdqXS#wRL)U6t=VnkloXq;B7!e`8o zWb5Z@dRM37AESy33rIDOCbgNVpg=cEJ{nT?`t^Q`RN{bb{(Uq$FjnE0 zua=@&ru%^Uc;)gMw~ixeUmAvG4GxpR8yL_Dute{w(y;&KXq4TIRPfsgp;6bTXE^IA z64^+^h(YK9Y5j`h!)P=}-h{hiw$3I54Y9IBT|`uPc*+zOMLCaRCqKK@eXqEj?zpb| zNTgoZEVc8M)gxb^Hn}u-^P-DG9%slxd}309_?Dy8^QtI>>hfv`Vk0DEQ#Rm=>UOCl zBd<|&8#-8!nXLxw$~Ee|_pVi~egVKM)7%<5;TU==m*_gai-kXWuC8W<=V$5e+G)~E zE1sKp^EJuQ=0TN%h@`uB+K0#aGUWc~`dg6LGGBF+xw>5f+!nZtoZUID8V2@?|6Hf9 zt=(1AY~T=;>B^i@K&#emF!bZjd@rSyi;Bp8twdy8q$WX+rpp}^*N(dgkq}(?_dsoB zMbe=<%$-)zh;?kW{v@q%DBW1u4pf^MI){ng<5n^r{OHclUwH#UZjxN_-6}5gYwAWg zz|fAIbvBk-w)L3bb-oYT00GvV_xDmcvu6G~G)a74aOEEKE@^s?z)>uf?Tn%iqH4y>`QGp(ETZSHO8;xD|w*KH{Edd<2zeb%5gI-q9w z9F-sAW#B0~Z{wMNBml2zy_>5Ad4y?@s*C_@v5MJc!sKd`(u~&4yxpDB43H^ze$+y3LWM@(3QMS8ETa{6 zc}9*=E;3yh5OG(L)(D7q;ehOZk=(I}twC>Pnkl}!#v1v`e8{p>06CY!x(9_~gXZ_? zZR^<~>|EOqAWVRpE%VkIyYzOwMIdAwwa}TwznFZT%H5H# zh;vu{NMZRD)r3=><;A`T8RW}^A9*xUMBO{Y9ZhZ+y@M89Bpln1dAXY%64v>Yq0y`l zhtl=5I3px_B^zT!yvT@usT%Ip#$|GbDoYeg)vk;p8u;pnLz(vT$=ehsW&x2l!JEZ6 z70}dkff;*7G9@BAmbnA{$ZQ#zzAr<3>~>fT>>>}fRJ}5MILgwL3f1?5wfA^L4_7EC z_#LR=5nE!Wv4`&k`#;0_?;MA6rBdA_W{L)vybY7Ya*@_~cDN3MJ@l&Xj}+@b?Mi|i zU~5N|E_;{}XCPPF`R0Y4Zo^oY)~gJIW5)34a8SYeELBKaIjrTimL-uDS(-)v55E-j zkDmxecuZjyL|Zv~_o7{MnX`VcJg-556hAv1^X0ScjO{DZPl$`NdGxw^wfYLGz>1}v zp=J6QFUmYre!3$7R$}asXV{fKEWvsrRT0j22DRh31D1H8Kc*{JO*ZPpBk(G%dW5?) zCw%Znf1&#KMr5@TZHtzCw4j%EBB2qX-N%tL9c&~e8`$eoD1~XhI++*m zv{15t^f?vtygpDrpz9ViTZg^u*eMNgxwaLVNaDZjnPigbe@o^gABae_4#(i);Vr0t zcl<3H+C3SKC-A{Z)k}2gJ4xgNZcdsFenmAJ8xFW+*2%a#6fOVsJp%rZH3Ag5gF2F# z!^LW~Vo|j_`DJy3j3b|9_b3;R-U18R!TpR`Q?;10(>OWolqJ=#26t?Ta*sxLE*`<< z>Ng3qzJcnRM@m~C(tu*^?_{6iWti`9%Tw?d+nZSo%R_jD2WHyMF_5~z#WT$_X{FJli)@Qt>|_)-KQEw(I*ulALri)u1#y3|O1#==+(1TV674`&mRKylK`d?kj+s<% zNz`4Rq{_2hdFD#M7*}{@7w1$;v#a39Ue0d2d{zu?gdI=91J9g9;Gy{;INy%pT6J!F$H6RiRaJ-OWH{rO+oGeWMc%*QYrE zM1(X1&R5wgJ_lc~56eR}&CN}@x>uaAURH?{dj?amU!tvF{w~z-|L%%pX?NM9ujzPr z7PB|p>IvbAbOq-QwE@b>@q1C0M@{XoohD=O{R6=_i`Qw1X=xM-ERb*p{Xn+pt4ROJ zjpe8L@A(3RPZ}i__>*H2KRd;3BFuk%(_){^&K~UN($ZWVft(N(KN%+|soMUoj79v6 zA)q2;JjLp?9dGfQ8RevuImRA7eDc7q#u3!@+r-Tc5`FPo)v{;@b1cg&HoPz=MDVmK zF-g^T(+-;F{x!FSnokiWAIVd3u64|&qP09;(VAdpV7-=+4L}LR|E-idm?R4{={9np zk>#$44<60v{&2^Z7m`B{Tvx zg%@Z8ncL-0;-hqYl}fayEbP{k+u|--TWwet4l&Jo^IIBr>SGid<>*OZ@(qKt?ozUkvgqyXP8|IvI_2YePkwC!T-1x$5C zg@dhq7me5CGD*X4xQWmg5ZY1>GR{~}pZV)A4k3-^vR3-Odk}qQHuin#Z+=~<>MbVQ zwW#S;WCgNK*_r`^Czd=Ec*=96=R;H_wEOZgkvg`!FsDUo(taw8lqbJ>)u(;_OKej8 zoZ>f){tK@2Y&1B20`UQY^8+`JD#n zNe&eC<>gSY=RExEV$R{1#r+ciiQfp-9-s`{WK24*Q6AuO5X9q1FfiJGUH=<-Nu(5i z^@nA=Fe{p}LK%~OTpXF;oX~5lQJ9tQAMcPP#4X=A;Bt<*t8rXv!o_ddu=jnKG$dsM z4}05Kk@odG!z})NFeLJ4Z-N~yavmdUYCKeAY%4!CJY!z~YP1)$BWu6II%>Ab?6>=4 zJW#&hk4w^k&x_)Ti+xpgJWzrOS>PZDw45R?)Y$`jY7fSD7K69HdjA)Z2fq+H^)!K+ z1U!6fd>S?82BzW!oQOQ0N9HfS=k~H-Kqw2#hDIkvM6i_NW76G3#>3WSUxqxuypfM- zSED_1`HtPDWjGCHhJo%fAIW$@OV)ffoK!VpCvg)qja{s=??9a`PZ~~ ziabq$>f9P>q5Z*JZD`?OTJ{;VWtV4{llUo^=-U^u7CPP6=&Obabd;ZjoHT>1&r z*WtVC2r0@+AYRAKi8v9MZiC2Q%96`9u6RVCc~fh~zDa<->-M$|P$tj;+2eD~zK8CD z5gSJSkJSK8LV!T7lu{l`c4G+jXKq%P+0@gRrPkUMeYS8COLzb$)ml!+B4^OZEA1fl znOA+K=dC3QHmoS5g3u=sxtvXTdy+po2spVQ%i7id>@mC?{bytyDlf!sR`6Jq)qiRG zH#FM6gy9b-2cT^|go=l#f6~sM?*M?4asagLdcT3{AMdE)c!svklWx5FXW-iPGqmmh zLzEx10}O{>97BE|<~hmyb5m+~-flNXdOx?p>oCs~&YzAHCI}B4HXz#)^Uuh=Zh&_* zf_a8f|8bY8^p9HC zCqGl}`)zy=&}h1G->A+6J9AX%e@XsqU!nXiV?l|C46zU$^;_j{U>ye|rZCfI23^Nc;Eu{)ent`u$FSdgWiG`Ts)= z_U`%5EKsOlek>lOLNcyF{z(kK;5Xx}1$td}fm(kE$qY36RQQj}KTgaY0H}gt_lDz+ zUK&6dyQ>!t7I_|Q{B-2<8Z?R;8l<+ajgO7anr19t6qv0^D)tlqYAfPdC-B{UeNvK& zu>f9Mc|ln%K73KHm~}qVdF_a@9e;ITy6)HYH-A-ZQYM3j$ZO)nO`d(yh6y#!1BoB^l^s@|jp)ZI&#j7Mr zn#ABR?M9rlI3zW02n+ZrD}OB@N1J^Yo*@iH&h?DG`R~J=7V?;OcyKTt!I^BhPo{cN zp|6(|DcR6Ki4fg32|yScz%4_-mDx1(u4t+`kDxmtch@p20^y1x#VpF-oDBarbYS_& zG#CRrDYQ99dUbUb&l_o;3zgkFI71F6?iLamIvBmE7$;T`|}Q$Nu+pDMU8H~^BsY%_yz zKewJe89?00jqD)PU0d0fJ%EAq?F7zA`Y)~txD>t*^!9d3b+<479$Oft$ zMeeegi?;~D7ukKze{U^bI={4Z1Yjzm-~-!p8>fKh=b|1!+1qrpz6K5219CR3H~bGO z)i_l9Mr~TGL@A^r^VC2-c7PHZb>WYnG2F9uE#zcg_;_E98E+I#`y@`KB`j2j>@PH{ zExO$;q#$yJ{M~eW(Cr&ny8&inWhAZp?9Ep|8v=#+F@?0r9ZKox=nxBFEgUE4nP2qhubf(YdP|(reHK)n!S5%{I z|0eriPkbX^=%4*WnLTXd*fIXfac15fpcv%7n>n&-Z}VQCNp0WI0P-)0BP=39D6jt) z)8FqiDSs;*3mBtPtKOEK>(#{Z@Xt3hh>&W3#`yka1brtPw}$RA({+=mv!1oQ^v@xc zGy9tg{ypeIk^D@laa5u8eed$|rFpwnV-1BMb5>k!o8G=t{)PCr0rl_My+#pIA+C!V z;}P~1(WI%$XB$tKBVD5eh?lpZuYI_Gw?zthY{<&WY&C??=^{wX1XjcfW#y?fwWPNd z48ILVNjRUGMq=&;w;!wFljs1V)mz%+_r7fezuMcg*@k?cJ3eayj)kkEVxr$( z=T6+ae$ug|p)Nq zmKw(AxCwN!x%l@0joJ_3Hv=BgJe>L@flLIHXO+HX`W4Z*s{xnVp4C*ImS)|!_q4#s z?sbPXFvf>we-T3-JY<3`mtg06#RgBAJ3HH}*HGic$>z~_z!#6gmqKILerNmRtv$qZ zZ(Y9z=6R{W|1}1X{Q#Ckq09Y+z1sG+oK#Tf3p*0L4C( z_m_Z=_t6p0LlozQa-7r&!v)oTw!u%cbcbLMMN=FgaVOJ$emZozaf+F7`CH)O#}5TL zWrHx4cJ_BKA)d8?Dy}N`L;vy&U_4!u#ix63Hj;>4&~C_m=~z|WswyEX8QVs?-_zUJ zT?)DGf_cHKrA|o?P(f<5+0N}x6WP5Y{9wFUu3IfiOGgKNP-hL^w741*d!)rpPCng7 zWEwz!@}6@eecZXalJvyHGk9-08lNo`-0#}v9OusTnw)*<fqx`Sh>25--bQZ8-A3oWv_-mWBz{+n*dbM^$ALwn$gjs+nJ5V{mpA! zR>wdzNMhepi;2qXkzdXA zg$>q1Ddlaal54nbeR94l0L7NUnW_6~rEmYVnl|Ip;~09C$r)Dip9TnmN6EV_fO&NePM*0W67{#-&cFTD?{1?; z9Wn%kI58{?q5TfjtY-J#_eS!Fc@dz;yRVC$8qUUhY;gkF?u?hE*Nj*iHHoO7CYEYZ zzG*Hn1J*>{Rf5wU!|pc^Gx5jzU~8+KG%PC3IDZS5Nwk5n*hSfQ@z-GT6I2S1-xKdy z2|S9+Vd%xVl#C2(wUkuA7U#z@{LecP5g(O0ZW4j1V44simw;=NLA5P+G2&|B4j%13c0~jVe7|vgur& zwZFSpxR4h-NL|^z&xz%~9GXymd*!XF^BcD1-U4tyqLhb{POa?Sq9^;(xy*q0*cSj@ zBLPg6l)R)J#jWk^J(MbqP)u#+Ve!pF8vy#)03V zL(+ad&10%1B0@>UXOyYi3iZ%_*{ikc!fxwUyOh2Oq&EG&KM#oSe8L33g^&L=C-DoR z@*BkLrx8sS$T5|-+v+sCv0d$XK9K;_!!wp$N*jA19V17$GOc!9HoMs(8(NuW^-@{w zi^b}cmg3H(Re&hB@S7-n*jK130Cdp@_sN_csQi`#D48DA%i2y6Zf1~|zLe>3 z4P_F!_1DOVOHZC?)1Phnt`;t8t1DAK`K(HOo?fK}S#B7s7ltJQ_A2wi_0YU`;+rSC z+|%!VNgvA4;}T!nIS6s42qKBc?TJ|Wh6LZtf*UBhGAWW zCY*+y+N-K5F!YurB_^`v+*juJ6T{df^bZ*P0FeytR%1eKFhi$Dkq&{1V=yyiE#0BG!KsJ}nX zgG}sjW3{n0t)>2M#D;JjLEKxi8VaMF<#iV48+NVy;Nt_P@!Ph8ea}FqyY~g^+uDa1 zi0NmXGS9z$1RTe?SkT#jTKI3H)ui{EYuTff4aN(B{4qPjNoc*m4@NP005ZIF+`k$c zBA$(#9%A!i3+)zmtIfHJhU{LAuU&GV4~G{c}`G z;s*s#`Y;PPI5PjEnBt4TM>EyYS>NnGXK?(1K;>%|2Pe)y#<3K3fK!dTx>?)*yI1{} znn?tJJdm_}8o_U!{D;znyi@b4J|gco8P2F1sfzhuFQn%bZnu zwQuISY1Lf11*{+c_oVm7<$N*JYaQnEE5t8dVo`&0&U;8}@r8;KtsiQ0W%d%^na*Ep zZR$42lMbY?$^-0>?nB>`s%Rx`VRhT-kKZ-RZIo%`tQg z3TQ;EcznyC2G1)ZPPgld;#Y{M@Bxk+vBhdkQf*#08@(5MRi+~!jIwc1QAscdlj6>I zCI?r##O5yp+DxR9VoPSL24}0cj1T56CNx=dc>eiIWPS+hP#vjj4@CYtJzhbe+$L2u zmQsppAmM$%$DR8x%G7G3&a%6pQif737HnT%KKS9+)b3~NiL*|dxGPNQVS#eazS@G} z7>QGbibLL!_!4LNGTPq6P3-~7#fl=3kc#31t37$(Z#vq}+JE`d`txO|W9=OX`=sS^G;1_NdYwQ`L|Y6hW8FhVDR|;h0(gb3 zXPnmiNik{T6F8l=q`tu*uV0^_pKkqf$hRH2MLspI?=uE4MULyg-VPAPYl%h@tyQT9 zQj-6(Qoek$gRB=}rY|%!ke6qCA6~3hhUZ{E7m;lG@T+pol4qL<^=vX%hJ0mZC6-A} z7ZmaEaNi@hXCt6RAuB-hg)g&2y;c*t*RW2rv$K;Tsfp4Q6oK?qwQbDuKxam7a zovJ|Pa!r-a(cl3f8l_}r9#7c7Axvb{BV|ZsO#t{%Bx#+wM&sWG&}-qw97EamH#%+2 z*x>3I*@4@H%5+*yXF`zhX=<%z#&JSS@&sBxI4&;>+!&p!t7$R*VfBBUQ1C%wGwHm> zNz!g6Isr4?5JH$qKYRVpQY1h4_{*%yzBD9)$#6v3In`g30VJ=FIxXES#VX%|d+{S` zaJZds;|uv5cH=8~)0iD%rR2HYH*3;3+&dfIfW1iqP79R^Ms^#|woFo*-hb1-`zhzb z-nq8ueK*4P`1kPY568GHOEL)pdEeP+H9KyE8IPt(pvOU(E5^~sz87;ji-)uAp{}(8 zVZiy?tBAtW$OF~v?aq53DdbvNVXO@ni%A^Nx-L%!%PPq&-^7IijcQFOE|=8iFqOjK zP3l?$%nIZ`I)g8t!ufNwaCF-pWXkleY#=#3N3|_{^w4Rh$c0DK5tDp3M-qBdhI1Wz zPJ1KWPhvL|W#V$Ro3RWmGpJ-NB?><)!Mws{98xQZ{b=!1@@}Sdy=X?S$xEX5iB&;1 zgWKeleOGT}3TtEGWvk^X30ZShsT11r|0&KVJ^P7Rc5N&8mQNf(xRV7*Lu%!NCXsJf z=-Glv>lPXuy3`>w6;Q$Qddw8UyVHe~0l}~OsFW%mk~8E0(km(BkvZplCR+V$^E+_m z+cGo4nFAN4WS4<`ng}WE?XT*%8e9)k{^Z+8CB87`P?rpl}lap%?7QtqvSHU3swDn zQUo}oXM=wQkFJ)smqwS3)~)=rAO7-5Jg135%xnN#C!Oc5R=r)){!lgU)p|UQqJ;}~ z1EF4w!>&t-vr4oUvyiGQ&B31cF8AF*xX(cLm=*Kln1TK~@t z2!6M@FC-6F=GELGrS6d^Zec8|nuAnz*R+ zj=Q6S?ppVO;q?8RQw3r(KQ7rHNe%1sK1^^jqiYw=iia#A4Wn<%9=sgH2f;hBY4KyP zw*I_;_pc7$hEmLvq||u%l2Rn>I~(i8?o6Vo3|{l*7ho7$EaU`1K|?pziPQs^cox$w zjq&ul+)bt>;cxuXW}UvC#nP#bx<$piEm*0RAG$D5E@p64QGQ|4<8{(mzUA-mBsf}v zyg36?ReCTeHN~^odFYkQEiy#r_~0!vi1n`hd4~Mgxt}?l@!(g5lp-8;W{U1<%ezsX zQ&6si`) zEu|#^Tf|77n~50q3`a$Rwl5E?x3q)#y&igd1pFPE%={w2SRMD}phH%2%Ykc8lCq7H3!>&p|CNJ8%W@n760Zmh~EEJq85C zW|MlIW8MxzHu2Gtkl3p|Pq)lj)dv00T$xna8N2yy8@K9G{zrXy22Ekp(MPc|-B!yw z0by>>%e4L3W{?@*7{b_%`^=j>XH6Wcyy}j|FZ__`zp9*@&+$2w+a4;*hi}c=wA+c$ zJbS>lWqR$0Hq}<(umr31yUg1mrU%%e;7BcPa2&Yv9y)wD#KST5Dn0FJmvwJ_IlGIu zfZ1ejiFYqnv&TOuoRWUOWXz)HoR?p0>x8O+$tx3f1mR!S*B}P}qo`t!JX(B|fYW#; zjq|iG^P9=-aI&R)yxa%A^DH@9U>ks##{ifiU_&ymI*BMuRGpl=@S(RIO>{NlG3I^F zVLT4AVuqKWqe9Hmx46TKft7H1gRzkTTf#&)5rn=Yj+7VqVd3Q~Mj>4j4zF=@qhi6JZM-^PO35P}B|A{^Q%P^BP;)XEY` zyL^&Fk#{AMWC=}}cyUy?&sExP9@X?zsywfBlUYofYOEHtHQCzbMDKYuUlDMuS9>d# zspqY#xm^e4a`#ZM*E4`!`YYGoc#T@EN;IXNyUDy>!q<3&PtY za?-oGoU5i)ypY@E6ina8o^IM9^DO+g{~;w?|6_=$O7HeUHm7b)26`QqIBW zF=zf}EUDG1oj&zf}{@nTcnP!sXSKR}&3=#lQUQ?McVM zOJHWLT~dkSS!S>MwyfL=^#TV3YGKCq%m~LuOu!mRm58)dS;!CdHbBw?eX)sfnXNW? zUreKvhq`rBZ^I1Q=J@4ui3yUCzJqyRbJ8<&^VpO2&a|K8@e#t*C-K`truPMs+NV8c z?+-kEk3I_Ob5}Tv?E{VDl$@NIJfrDQIi$=k_Y^?7x>()e8<;$O{ov|}JY?F2%x13U zopCqu>oP;Jo!A~q`Sy5ry9LJTr{p)&MJkCMLcVcUYUL7#^8%;*eQb`G^PB_UiE}lo zjAuYdr`F|%v1~G$)mKYmk#P&2SIJFpp3!c!jAc6Y9rN}#pWDy9s)|!qm%jJ~gy8=? z7}lr~zbZ?Q9G|pXW^Vj=6B|#XqNvFd9)b9>xU{3oCr+tAPU@2{!p>tix#Lc!2#~e4 z%43(d$h}*O?gs$i#tXqCrkTt~V`X|xT6NZOg9(GrUlZc(5M3Xm*w-?a$Xr)h~SMBXa-I(ELlb0wL}3if=Q#+^v#qvdKhAi_&T9$x1z8 z(&?#3ZAq%UfGBCmLy6mNv3*h!j7-2SC>xRx)>hWC3?bTLl zi!{BwLlFnFF&OU$4k*^UI45(s2WQ+Vl{sa~+OY)hUU*y|D-2-9D>b>ei${A#OW%1W zrg6J#E_$C~I=v5Wyr1(8ee@M#)N9LOXH!8caQMJTPvO8*Aek%(`Q9uhxq6ej-pT{{ zVEjx`e69%R5wyNznijj8!>mzC^|sFUQ#pLr*;cc10v?}Xo6`#ZTbrrOvOC0jNu7Z_#@=Y>9eSg_=p@2smsCsjiCSd?=tYDE zc7J_l=U$}QD(6%)*XpRRq3&lJ)1I9`F@OGEb+y5YKk208TFDC0h+abGIqm9*UV}Uq zgT}7)rY56WT?C8GygKozT!M%5Uc;^R#N7rw`kO|;5|kBor-~@Iy1Fjfs09P>Jum5# z!1TL&pwi+i6JLp*(+w2@#6)0eC?%wi5L}lqFVIMF-w8dCV+bGRJs)^dR*43#G-`I) zbPX{0@-7cRQ)}_0Z{k2;*=CKTu)Li~3z~v%`TnjN30!Ys6UY&P46y~U=X?l(cifqz zeDCv9G?JoS)5lgmY2sa;lvK)8A!S|^%8-0P9u8iCY`Un2i*IKrzq($nY3V(W6&6-2 zRzrfJE;f_sK4N6Pbn5Ph`cN))siT9w2>gO}jTHPCTpJ*@Km*Wz_2g)ExXIwLu~eS= zJ8rxVwbie%9Klm-zV(PIQZ6zsdwb9J_50Sr55JdXw{xsk;?si(8^g2A5=m6)X%n7K z#~iMQEya;KpQvX9#zvAWn5*F#$54NecnICst-%xp>D{@MQpyxfZSvySURr@le|qjF zyHJzAU{k{?ywG0NgxSg)N*anaiGhJ+EmDoyoi0jV3N1V*&>mm1SbHNIA6FpT*jtHc zf5oI)^IhX$vM?^$XbIxwNK`39u-Nq)N6_Y~OlRb7wZGD6GFt|}!%iYTL(V0s6kOljYPR3teBrGm zJ+{I0a2wuAB_CpvR_yQrMV)w!N4Z!O8J^2^rXqO!`U=R1IGmYsDOb7Y1sPOvs-#iF z&*MROnZxWQ6)`X;Gig%`UmkLq3zxGoqzvMhw~-W#1xn^~dh&C{{#hr|pUjAtw)juKh#dh()qdN}2ptv1UHi%8yBq8wTeLr}MCxowH3MWa>9 zf3lhPX17_SV&VZw^`to7Qhv~5vs)}8?wsA&z|M$yoh_nF-;$*oW^`_vpV;y^c!qao zkcq(Ge4xD1{aMNJeA~hOWVXOr)_HwDxw`7$LodqB<-8lQzvL^v z=y4!|xx|P-wBB}cEA`HE)GIRDK?l`0-~DH==yDp5Sq3;s{o|dhOt%q)Q$x9gP`VJ) zKz85Dx8oXY7GANiA8KOEGCTx(3M^=|g78&aJ$XpIbv;x8GTUs(9TOAoMYxpmmg|Up zaPtzJjgj&)gI0cSOBp@WcI0beHLYV4!hH4@=1-GOa(mdP806B7I&Ff{2NLe$A`9;a z`!z22xw4#ja>s^RO;&O!%Q*1OOnA z<7h!BXvao$pR0gfw4qR=*`?LG1s7xz5Z3P4B{%l)*69#`f&1#cN`EhU3;S(L7W+1* zanvC(`^T-(j3ieALsF_*=e<{$PnzOK1c$gjaC#J$}X+&Oaa|dfbS>xI2a{2tjfq3{z(T zkJVg1a6~{TB$*ABX(*mHuU&$y<^4G7s>F(55b_l+?drkLyS>#91!=UMf?vB^e3U@P zUU+9^O$bVLP`RNTdZBa{y~Hfy$gphU-)=9ysV{e6x~&s`TTdnSVKGz-ax{so{YE%+ zgFwg9FvO@?CCn+tJX`0T`q6rcHw@F{^C~6M`v^p|swxDbMS7f-B3`fcBS&qXkIa3* zu02hkgHX>#x9uwIeD5WYS%Xt|SW47DtfdGWgSco2_b^C!K%6WY>c5B}+>GJzgn;HU zG*cSP)7w+K&?MrdhK++rz~d+lgM?d@@$O{=N5~#3R$LwbHg~Zg2yh(9PH)W~y}aS{ zWb7lq#WQLMTJAY>*z_)$^5N{|ECMM8Q17di%iFQEM$ztI0XQhoTiU8``rOP>Uzrx) z2Mjm*ZyyZNqP!)I`2+`IDihehv;M`&&WNf>>L^swcSBHmHyqFT?(sW#{o}@P^7~Uz z{6LlC1??Fa3bb6}`*;FOVIgkOr$?(jx1N`-l&7~DtaoSPbeZ`0*)ep+w5buYY&Z4wjhMRVY@VS$ zytkvjqM`^Ew{uX#%a!$^F<$xbt~y#W#zbgZ!Grlmt;_wzf=cAOow(N8*ZDIJ)Y;iV zBR{L=Ef0P6f5DS;zD|XWJ)F6=jcygXj_BKrtcQg zS43RfMBHBwy+G$eQB7|?AIkk|iz2^Q>u4gCy3*lz6E+>(2PDC#J}{kbV(Ky9oNgp! z-tJ<53p<-gB>guRfSp@asFCf@qU1`{w6~sRi{rvguKGU=MG$u)2Z>LAmcJZv@A#>y zg@8?))p_CrY+jXGGxL_@xJ<3`m6M-aoyUmBdldU0H-d%oZ6)puN>#a<8#e4im+d8f z8Wa>99IFjNWWAzy2VO z8TkPti45S8G-kDV{p{uWIVPKGfv2Hd0{U6V2rHC(E-{Y z?yerjTQTJyWKcN{hsbn}{|G)R>weWx5Xg!ds8j$#n(KJ?`mWvq545W;Bo@H}iMU&T z^veLMP@B`qU>c*Ll1Lunc(o_ol#p?;;`B7_tj*i=0^-=~JzvFKi*qqr!SN4VXsir3 z`DoblQOIykb#+6pVM0|cYRWK7C$^tUD0?H^Z!b?%KQrpLESLV!M8opoP_5}};D}yU zYZ8X9XWaX!J@t(ciV9-U`)oD)~7d)RHgy&`!YPs6yjVMHDJ{9R@MF(ztIrzP1$=x(VN zGgEU&v=%ewSDPVD5NJQOXi8Vlcw5=54P!&SnOOIiCnFRk$7b0!g7>hzD%)+qu5S3F zwIieO0}3Qj0j|~vi|voM_*cQ2VsmdN3*Qh63#kX@=)bD4t#yhTX^<#H)`^XqoL$xy zCxL+fL5Mzp`(g2;jR;bg(5)~$nPhLoPDJQSr>7;+$cch?rP`jN<6Etk=`bBuOFmu- zW^p%&iT%(Is7K>vc^ESX3ADh6b;0r=k`-%1cBjty@x(U|B`2MB96R3daV8iqGy;IC zv;k_Ve8x2(_&(o%>O+2|+9$;a&;>P&AL2S;g zk7akIiiItlk9+_Zfs?(;E@Z65kJgu!^vBSXRT}6w+tuakYgbECOnc|2z0Jf!tm&?s z5y|InQ7KH`a7Cohr>RUI8ceW};Afa_ZDOfxEJ5QH4KG9L^?WCcu{B>|Q4{dB&gM?mi7}}Vk#Q54zIP{mlP!EC0zi)t8!9KIfX zI)*0BXU9uE-!yN}2!OdD&-lJ(I#S(Gx6oou@~$%loy>x*m66YF%h_2cqgamGY)I&; z{%qe?Sfa-4kBVS%AE^BR=fKF%b{$=EaO9|#Y0!p#XOApab^JySAug&&j&)bs!Kv?| z$mYjpSGP7YdS_NH!VZ6GjP5?r^mf=(Vfsn#z0?oH^Y775nL;xNzJHjv`J9H5df*m{ zh+T4JgZti?WyPgp!QHFjO}8Dq);Q5yGPyKI>|y)pLk;`1iZ5MVhVw~+p?=4!^chz= z%W!@J?=x0eFFsZEWSDK)!Dxl3r8WN~Qq9M~zB-?EY6y>jLpBa~P6*aIFU1P9a>R-V zx|1hhxtcPX`N4>3xG%pRB)JMK*yOpI|3j_U5uG(uYr3%#M z-BYscov7p+G7E|QQQdjY=_|1Od-h|AlO3lhYuR;er7Oe+WUg1e%W<8)N%Osn`9~65 zxD^!WlhYE7lBhQMaUz%7_7`Kt6MV>;>Q6fdwATbbJn<7_D?$TbG@2a|C3)T*q=*R~ z^gR%MmH+1Wyt=_9nf+}CdO zh;(m)tEAGZ`}R)FXunhg|HSxcH=+20F0UG~9byG9{=0n?C-RrsKP?ttolJrrTO)&P zD)fc#+iUmOi?uG?*I*8;_X_m(A7GGJ{p{!xn9OYXNm`;ZnKe3@bibV6cJKV~>k{?a zWw&oI{)vyF&LaqCvs4$qcY7isLT}Jdv{+636yl{UEFU? zpP{hFn`K6Q?Ta;`8$lOU_rE-xU3g`r>)_-2Xp;5W+21KvsC_tnBl`|Kq_*@(?e6b5 zlu)cD9U(LiMHXfJ9U;yhABW>(po5jz{p&HOOfFZ(o5wAPD$@lRa>z@s)wj->4(%s3 zcU>b`hRnCc0Ut871>K@-XufwI$a%vS56L(CFOolH}D&9k`O zhkSK~DzG>H_DVcSwl@;pVPvGiuQCp5nGh0WqHdMW;Vu}IfltdO8mjKn4%9)#h7f!4 z`=WCj3LgFd!zMabcsL=1*R^^FNjdH%GDv?Vm?wNpb2O%~;WIKkapbWjv>(de0x zaSA<^Ykku?p6%cWQei^Sl1wE-g_lsJA@jU@I3_Y{`@(1;`0Z%6nMRhwI|s(&A4FK` zsLQBb<6-d)A$*4>wp=cU^3jA>>RA~^o@ITTJZt*_XI{d-;ckusY0_?p3-Si8;ZR_r>C`a-NJ}i^v_3Bs2sv`mjsmCyevu!_R8e5)$O{*R1%;DrJH)_pc2**S zlBr{nD1RJJHxH<|v*<mN?Eu>#+_&?U4Mr>_0Xrah2Ol&wkRPI3$Q zL^R>K(dkRinzH~Gg+=!@lj?{F6;w8Z4RbriG*!2@%Okvgqio&u6uj{|e_jYAX0Nxf zW`4yN;bS}pZS7_r!l7QYb1PD>`d*?_HFFr@94a7gvr#2&@zi}e>Z1KeL6Z0!R9$gDgcVoAT4(D7mT`fNdV5AN)x^5> z?Ko>bBw}q&5L#^CLk8j^cg3e_lk6t#P8pmTTT~?1-A9{A3@}W2#jubdDuq);VyOL9 zY2L}KA#DS;BbNHhRU(8$?L5h(cUYFbQAAdC*@W|Y-i@C=^c5;s#!BeFv)EMzZBF9( zf;B4ax^3s3-Y4RhOzIn8Dggm@%iGtVnoAgh5Q2V*fQk!#K!tNNUm_)~?V^SUDOr-B z<*I%h^*;+WCT6y5K;KxG8R8#XCk_qSv5479BaXe`3}?mSrx!Xe)hw)9#?x+atF#EV zK}F+1oG)E@9R<1a+A#aU#y>Zh10}<$>*&4uRBv6H>R|=-1-*C$e7%buw8Ov(+kT^6 zi*ISq8=vy!6j!Xk-lhd;cv>3;1*l+J_h1J9TF`TXOCbrA@TmDRJZM!mx#A%t+7*GR~1k}w-4(uK{LZ|-I;_I z=G0sr?Sw1WEuVJxai*`v*G#K9f|EZ>=p^msX839&-+ccM8GP_bSk?&N{hS^HCu|{q z(n4rZ9kH9+WxaED(3o45y*s=1f-{F{yx zlnm;IF{H^~z3D^^dI&{d4UDX{)YRwk-RQ(?U{8t!7Cb)a3WwuO7fFJ|h#VH04U3&| zb@ETP^;baBaW-yE3popssfl_Gu65A5xYTboekL%M;s&bl3((|{QLWN--Xd?di310Z@Wsd|>H9qPQ()2_UkMcuhU7>B$#8wS0f17}B35~l# zhVQUsqMiIRcN(@jCGTppQXgsljEocx;qvo-4TrB5YlfjVVr(pl4@uQg&L@d)Fc%j- ze6`l$eGM+WU-hhUeqFlhwA+5;w6nLUg$Dg3PbaD>*42wy?(IG8vV#h3sdz1HEo9{# zvSd>Sr1d!47J>t*?ALgU$=(O{zG#0@?^NONlS)QYN#1BGsY*v$by=*LdtdXa_RBjJ z1nh8UJVp2|^qIQRE2LEmk0uQ82`VgVh6HM(4KNJ++s2xHsTfU!SrOS@Q|lAs;q4Yh z+d_zvwk@trTm-~~waT7wo*oCF>~bSEH04fT!3PentD75qB^blo0*Y`@=^)FkVCKOZ zUrspLp!G%<+p>&)CfVe?v2Px8Kd(0U4I}bATk$JWed$cT)S+U2m~i0+md@Q`lQYxTytXY8NUJkDn}Yx@edDB$h!x8b)p(ie z!(Jw*=H44|ZN+SB4fhHoSaKMhpI=?+rc#hJBD7en@<|PY-SH=_wW>ZQJ6aa$z8f=- z4MR*3KB)+{)1YLvQUIvz`ioCn>*p{(=9PtT53ygIhJNx zn+W7I(hYqXQqnqeimGaidc_P2=RqwF<4-|@y6J@(n$m{QUDJ4m_5H%s`79))gTqW* z^5tItcJBpi{zB9*u>A(3F1>QE%-7{As#?ezn-DcRDkJxSQxiONZh1|M;I(`iyi`t- ze8X;cVZ15so78r=MF3S}6CjAb7Q~W9qA?BcQ#Ib4>s~I?` z4owf)V%0M1ZvEyrXjNnt#8bN$U=^(&{Xk$RbLErM<#_OmzHA<|!S zW4?**T)0Yhp~|qY(l5TRTh=DYj;i+;rsAwJNxH*hZK7eh#U1KwJR@J?(+|W6?bnQ2 zgU$f!Aa)%=E&Xad+9iwK|vt9D%?%z$>y9EW;!xR^LDJ2nd2wO1Fe`gGfq9OLw<)H=FJ*=@5{HO?OF4cXxMp?r-6V zd(ZjZd;j>JhX?j%!-~1)eCHcujJMKoY@P2rpOw30S1IooIaUl~99|rRja6ALKO*J+ z)@10OF(ST<4|7EQ;v<GvkYdS7~@WNQz^O0Dq;$n)KQ)%U2<`~Hw4 zsn*ZN?D?n!l>P@H{$bi_@>dGF6Q%j^%&*I;8hu7=w>CiX{_?dkE3ZM8T3)NkDL0mR_8@;8SozpO&ntZY6Fi^6yzh zJS>0oyjTH+0Zn?lbLGDZcwMMRdHW4iu}UzT&HW%pv53NhwVlhp6}AJ9V!en0y1w^h*yj3te$v==a0hoF9bsFeAmoh4 z{<3-n=Y7tWQ3$!DwMC8ITGPrs5+C6kWwIB>SWvlzl^aN=l3Z3+r)3WkTY`_sq6Dbj zZ_3uzWZz?T`KhvifQFyXDX^7f7$mwVBIJNZm46^yYN-Jjc_a0gthrC5WUa&Iy6j3t z(w+);@0Kju>opuEm-csE%FN9?l>FjhhZvh!g35a?tzY_oVeEAX9N;p;Juf@Es2&J6 z)*6A!oPLf!Yx*no5quq(7Z5nR7G%MsRQ$g9yG@~<9v(H8``wz9a+vHs*TJ+5&IdMS z!*EF+Omq`<&esm>rs36LB`#Z}=D6o4Z;(sq2^ilxQX-c>l@Y^n{6i?lpb?^=h)KZlG>|FF|jtYvxLEj`Qww zjahe9$>OX_;aT;7+7ie_2o|&d^}#HT%ubRjD0@fkK%T4#7J4V3<7#I9_o;1B_y^sUtYLJa{wswO0;G3=g z-jVb#@Rue$9*@m*$5}{GAQGqJgR>T>|AkegS?+vT!dDXK_|{l={|xd(g9} zVG8KL z{3j^wuTiZ@2MB+2Ln*HRy>stBFk@b%;sE+DnwvG{f5-68y8{@0OJ3W<|FKE)Z@gqQ zjn^C<77)6N?@odf^}Vcg{~p?Zzp$c57qR9RPE2ReqKQd6^LqmyV` z8z9&lOG(PW5HiI!7#4;*731b?!^xhwQ3zmZkE61(%&z7=k96*{$IhZZL3F873Cu9p zIKqvQCjUjE=t%!*j*fJaRVdr}5{#`>Ag$RI4iP`jYL8Q8Efinma^5%bZj7T+;GYD~ zMH1;*qo9c#!T?Y-V&FtE8m^bU83Mwvt73=q9NBg~tI_mYZOvEFoYaH7CkXq~RZ5!9 z2M;g{GR=+7ZZG}MFleG37w>33T}_n>>7{$G{95|lm##-nzWuo9vL*!lVoM7|KUaMq zG5ipATil}5dVIP;jo^OBa571Ilm#$6j3RyhBwdp%Z*6TAidoFpu2j&~2XA*(KCFJM zJ{bC~i&3iqW09;4PaO<+T_Rq~+O}o@d)WpZvCJ9}m6Ij%aIbSeQ1!<1FsTv*>UzT7 zp`D*Zh&a%H-W}y?!S($7^bTmc`XKYVb7@Hmz+})3T^tg>+MNoPO@G5yq+IuT)?wcy zhsk=MAzwNpR3(jN!_v9lk+7oie91VP!cp2=>gqZurrc&iRgV_K;WA~t2c7h7@3%Nv zs>-gM{lyBYyOJoNw~II!Ksf@waaA=KCF=sGi^uIcuSl~(^X@Pf5tA;zG+C`co{C;5 z_)YKt*x=~VhYGDkf!H|yWycO#<8xsxPzt%7Ujj+)iXVPg=h>5i>g&^v0dTdQ5dhDXZ!3^{?xe900p^zlnEaVpM}EjVNXbixFI=Q)f3rrP65U zCts*4Q=pK)ZT`N-+<5G><)_`rg#Uur{jo@cKL4bz{n}H@%@fofE1M%hd9hcp7soS@ z$ZqMSK1wL&sMeFk`}%5s!LbH^lG}spg`=f-HPW*8^jc!PL2qoLMfbC*FM)4S(9ONb zj^`|!N$Gj6Vi(pggDElrI9Ck$ZjMt!U-?F1wn||@zeTPTL3XARM+KM8DvNVwH=?2Q zK`)0%Hr@n?32ghS#Y)Eg-q_O(BF9@oqEcn@ZQUcisiaMZv818a=_J$bapUTAZOCUm zsoN(~>?5Rv2OEBT*8zVzlx zW2T?Vm&6p)5;Ck8e z%|0a;T8IiK!*!vcu4a_=i#g_fgZ!+6lYA1pDQWu)$eUb7i|nxoUgX#-o_qC0rvvAm zGn*r|o!&osY5Vb|p)4UAXR>Vi>wkK3oJ)`^^q8HUdav(pOt156v6GkGsWfKoWXt$D zW`Lf{DIYs%l)Z@(vCr;^J)`>+;Jd05>U$*E7g7fb-;1 zgL+$g`^K77OEj7Z>qMpK^BNU%dBkO<+eV7+@YLFO-WhZHc+?!_Mlmi_ zX&FBzlgoXnP-F@BZbR>xEiEmEHuEw`N_NPHOLQYq67t2CJtG91Es2XI^L9GLkn?q1Ym z_wmci7fDYlzlDQ=NkBnF0X-%*NGDafNk7V(_6=wHE!@7dFpalp(r@)9Gj#1dHTVH$ z;-{(On6*q+-2)w;Kw#n)ArI#oHO*xjl*Rm8=o*9$tla}g0Cs0%J)gPPsN$a4C}V%j zw9q+ukjZv7UAElUQD%bmCoNrn>Q%|P^TTt>oGGe~v4$#%BrbvGn~V~-{5Csh?g-Jc zb2lI!R$(j00w%4GwBe{+}pOYg;9(UL(eZLVyAFzSU}?ifKZg&6R-uGzg@iRUF_Wb;+Bf)cP5UcsjP#br^K84XQ=ynqaMpv0Be$d!N2s5TCS|w)Z^=Lqw%|)yE7%A$CWGW;c=m2u^i*2y6zFx;F{%Z zqa-&RxFa93Njn#PUe>wueLCp36Go(h@+*a-VtpuCsbx=2ET=z_H2ra|g_p?=xzYNi zpKrol830A^LwNX7O_qMiX}cNfyVEYK1|To!RqQ0VB85Nz_MME6o8xq&k78wOXis25 zuA1@>qPWTvk%Q(7I)x~-^*c|b;w{Ty+EO^%V866?lhRkS;rOaOM;@U{HKD~es+QhX zV}KI*CjkgUz#>?Z+4=N@PKM!U=5hO#W(=mLyIS!hTdz$OmY_QS8|Ar&BZxaoUsKvH zhESx>^yLL6Vedm~eP6wOa_9sh4T=nr_bbAaT$L`4vp0w`P$Bh7S}vb?ZuU*}jBDj$ z0^U$z5wEAoQMXxo1fm2T$)QeDVr0_mZh)>l((}LRX?XRW*CNPe_9Gvxs+mj_P?@W- zvw}MiAz`I?AjC{PS8Z-Iawe4c=( z3)QX(wV@77qLMTMsuehP zIag)2WUi=}f5nRJEVmlbt;pJ)WiRZqc&vgvt2ivtB+~e3Kl;NvU?Y=<#(cCi zaZxdf(W{etX|P5Eop1yJdmjLYW;(3CL&l4Jd@h_|jxyzDp#FH?vXn3k^J;G@s@}dJ z`En3K6c?7vprTl$ZZxmL_@y{WAv>GA;aK7LjbqQKLQcKPm_JSkxyh(+aT3SnmevcP z7N!O>2?C7Hx8Y%u(_;aA7IMvn_X6)kgTjP@JMf#u7G|TmOGSkgsj=wPn#BOjy;(i? ze16l^q5ad~kK$9JMZ%`$gvqo856^1X00|kx1w$5^@^Gif#8)*tT=dBVjxk^@Wpl0&fa% z%Xf7SGL3q8(`nF)*NGO07<6%*l#dy~j{`8seW8gJEG&I`E`&280u}?&cQ|Ye)~ys$ z=@w{CkC$8Tjf*mgeY?ug$rD_6)Dm&$o&;m~WQhQVHDwCypcf2U(6jQB9FeHD`FkYn z+lHU3NF?bc(DCB;9DU0fEjkO@y?j6JS@G1`L;Evu`{CZ}_? zug^++SjT`&VgjSUn^vp7$%E0Rt-f;OF^s9^(qX9>_t^KSR3OdMGzO?R5cha7CakE` zXtuqS3$&vgsiqYDH;IB?|RWp-2pN{x*hF)9eO&4vwAycdV`CgZ}x;@xF?WIXtYs(1> z;R&)#q`^$ENk9Z1>sALii-4{n&?qn(D6rc@1%H6(bxB4q4z&=Ftsu^RN|-Ox!^9wq z(F}QXp=UyH<``t+-;vx3bWPG^B zvq`AL_&zWQJbgm9{rs8b-PwLf(ehs~bgLS)4<$=v;u_9o&P{C)$DwCYj0h0D_gLbgpcuck;HvNwjx)93_ySlZ!(LgHwq zKv$6`Spj)MY9E<3slp88Fb${dzW%%fq1K6-cGm+4qoy-P_s->(t>PAiwnOA z)T}+}k7dk4%?o}@O?4dtmT0cCgf{``dC25@R&d~OPBjs~i$Y;xRbsE?PCRQt&P)z~2Gu@K${=mf^d!kEV z-X6PIbnElxc!k2Ly;rwpGvFY#Cz5PGjxGG^``+VEyZ{TOE>s+Jw6z52%>fbI`h%m^ zw^N*U^fF)V9`@Cm5hm?n5j}+Aav}7al{rZLz>uM+W|NsiV>ziuu}aYirbZB@_^I~W zTP^1U&<$w1M3w>v3hOR`k+tm`cm2b{Ax+Q7fS>)J$%@D~2>LRGeDea1?#EC~O0_FV zB#p0^vvvBq29hr{%L2(e3oYiqITre5GA~w{cmEE4MZhp1^|&r^r~Zku~hBx@PGv z0u_e%ZG4Y_$dXgZqtYqyZM}UA}xq zihRDhCV}g{ioKU+Azh!q`nPzO#M|lnny)7|dJlos$n#5+R%H*b@p*JHDhxtUU=AFH zrhfjU0ZUr>0Nss~nVff*aB!`njc>ylLfNshVoDNMo{wC9Vxh6ep#K$o1Z!>+} zio(YQ+ZuYyfI;Rc9qD{=kq*!rIq#0g>%#h;rbFZ#_<6Qgl+EdhLIr!EP`*2{UeY6{ zk+YP?S31M*$FFXVrmJ&sdyy2WEx?b|$tXgkf+kXkz4&+!@}1zDZzI(^+ErwQ6IRzj~G^`v-NzRPoY zZA-4~c%m!xL)Wj|WpHR`;K)YL96sZ`!SeAPa`y-;_L=8~i5)D0(4yM`Y{~u$Bm$lK zwvD?D%y$v3;V<^4=v%J&3dX!5* zXbd#|^*1xxY6$&<`+Y5u;YvokFsr{~ZHRDWu(xoyAlI9&&sg>PV;vMvwMc+@5HGeX zT4OU|qU8Epd4SJ`Vwu}Yjs)-R{LpJo9_cGO%J`5YAa8ils2M}pd?$f1m`bzcah8a52x+3x_@I$wVuR&I-f}!TS8lx)m*B8h zMF9SZl6auSVShu5k}@eS1l`$<~#~Y{Yt~EvQZuSUq_$?Y!%V|G8>+6Ghxe3iK-bJ<6-+#aw+K5_T+mE z>P2-gb9THdt)%M>iUEl*qzTLBv!E^sq)3W-dp5~SlN`N0_X>4ptd`r`7uBY*Q_Q*V zXvnkV=iA`)MKp_hgsUx=$mUpPdQLYAS*dl`pBJc9Z0*@&-B|S)iW0Ev1QYoi*}>9@ z0FhKExW~LOnZq@$%RY4RB_<=043S#|#8fQQwos+1KnX5Tj>Fo<*Wg&@t$Gyq!km+- zW$iLVDjB(hSAtKpIJ&PO<`Nl8rASe(%|`EA z4(DC@j#`d)#gN8Vk(}@2O_@6owKhsb$HHLAY2a7Hxb&Bian@%W0uzD!2GGfmRAduP zgJUNzp!0hPlm7Mlovch8K^%Q60>*Qrn8wZukOSyt_%X6m=Btr%qljP0>PB-vfA)`- zfv6?#8Tk$KP=YSE z3+chX=m<3KWLhrbKXYUm8aDqRNjLHsvfrvje@x0z>B;3_ucMu7R%54On#8mCrv4|o z*GrI;!LCC@57tS5(0#^+?`X~afS1q4aO!UC883&+c^=PxXrNBuQYGLSP6kA9n%SOx zbe?6gP1j?$m~9kdvs^F~6xb83SzZ#lJ+{fkn}l)u!^s^-m{)9N$Zuc17g@FdG8Kg= zt!8LJ+u_JF`gaevRq_Rsf|kMIJuM+|U7`$);SH38uyo}zA?8O65h1g`l=GZt_U+}w z25gWVb@U0sdltqi$qlUan{8j;+b*@9F1~;$=p6X_V$hPlW7RWnjnpIUpvPjjhXeX9k`iyjLITEh%y(dy>dueqt~&Yf8RdE8Y$qGL zA=N@5Z`wlYeYE00CMQZnADBi$^F=%%<#2Gl?~om1k$E1|gNkeIZg7m}OT*_HHJ!k@ z^`Tqg4wk=6%xKp#0T}_C&R*8hM=vnllofpKM4?hNlY!XF%{N#HqHKB8mk`ih;m*k= zF1>MFyEiyP>+mcstzqo6)9A>#3T(?d4x7taZ+n-j{J6j7xITZgO^Xz@ymd!-CyvSu zIcmJo4IKk=w7yeprSJq?%bapov$%vk3U4b~9+v`SW=RCD(z77Zm*#2!lXoC<97t<- z+w7bg+-w#`NNV^am5JY@8xUFiS4*1M!>3DTybxehRr`__`fJp5>R=D3JB5BQm^v_RZba2Z)rJ3Tv{P-nMKDLESmJyN zCpx`ZQEsH=Yg%6N<%`ldQI(AyM*r3VGEcmgJcFRIbV&}m_RSaVPna5BST%+RaBo*h zXm=W`cF=6{gqbGx|5(P;wILPT> zR$+?4-5tS5V;kpu(_0Rn+j-S@CW%7ohl0_LZ08SwhPbqa`AJM#O$^gkl&zuw>xE{b z(ptRfBekbo=UmuFxE42#)9bzQ0&;}{d8>o7HHe!zOgmd~lGtm)nRbn^m|=dO+bZ1@ z$?q?7P>@0}DD%=0B=yXW3ZXi_&Oto19`Z7m-cHq5AoD-xW1z_iax`-_dYD?e*F`&b zDzvR$WBN0nOUeR;OVAmV~RO$8OGtr4V8F|&a4L6Zx0#fNZ z8)w_`y-CYxgFdCs;Ag9i8SBm1*BorAFZ~5obMfVMhSgNo-l=iWq)O8jej5R6xHj3d z&SB7~uT~7I3FV`8_8TgTr2z#1HS`MeMeokdx0yyks~HvtY3|h#;xulReLg_l;*l}f z59^urv~;AM@xpDG;mjE?-qCp?Bw>IyS-7&seA#9GW+YcbcLg!2$(e7-Quhtw2%)H^ z^yT3k;RYq3DSES%1F(_Me0v+6Gi#1*FB>K{IBZE4!Vnii>)=g4Q%3?ys!X%Qytn7n zVVIR1vuuOCsSTI4f~%U`4G6llE)`fGtcYa${Y+8+Q(cRX6quD!G_``zj`&^b~%F3wL8vCqGuO3nZH)W%L-kvKES;tgn>jBetVxrL^ z#cJi&bhK78<+dFC&$;*~7@cnwRV2zuz?HC0K4_I({M0`zxsiQY5!iHL0QhtTdDw2x zQpIMHvU}BDRWwD~HVN{=l49_i*D^BHVTNZ-?{V2JzNO#29x1Yr8)!Z=(G4Sz;@M=2 zFk|n;)Q2bF)hVy%h(|MJ^!HCC_)5Rz1}W^nb_ItfGbrfA3BfC^tYEIc4MPAtc~ykr z4xFiRgK?E*-8-kLFI4c41*;2$RPu^87eWo+3a5IRo3!L=Ix7Y(80p#vD%EGAcX1kJ zn&mJh_P2mowJzFqUmg==cey&;-I(fHsDmCkZCn@C2`cHNF?*jDIA$+ zNVh_x;iyi_f9iKBxYMg&avv>$NRPEN1@ly!O-VEXjkTjxit{n7zF0d{)iXWKp~QNi z2y60ve;MmaLw$jpm?lGBVQThtqxaX7%nOjA6%UHeu<^K?%y|t-ouH{7YP!w|*$NrD zvYS}wZG)0jWbUQ(U#tb|+9aU9yE@?f8of15Gc1yKx+Jy4r~-AsYALV4(sW0U@EDzou@7mW)@W6UX@a(#EA zkVz>f-ww3?sfKa+_HjPMvW|?O!@jo$wm@x*vsAXlLb6p$mX5IbN;M_->X8$)IvkLRciEBrO0~P2-TJx1N3g|QwS_v3q6n76t66lC(R410H>C;WM0VK8fF5eeu~d0``y?tTiQ{2CwrNhzX|<<# z)zcx$ERntwBP_Zhw$Xp;8#J~aL_nXgQANE~TQ@~wp5wfA=hGnJex}E}`#!?;5c(F!;%-Bzwz&q&rhOBaja~)g8E{3Ba#1wfDz}(W z=kybF)i^$qHJ)3MF$TvqwZ9OC9}B8x#=q`Pf6?no=xzbC!b5-crC-C^3@{b0o_uMM znO8q$7S#d*8OU5&LdDcy5)9v(;u&($=>Oq_28#Wb{VUXY;U3YQJ> zNY-O)wzFTIcP1RegywT-QArA0TGH(f$7P6mRdkR+sjwJ2?QoCpMLdtiTRwfBuY{&3 z$9Ft>4CJ~yN2hBYo?)*yfCnJk4|H1Y4>6(lph{Jhw8$Pgh=V<)MtSYIb5%{HiFLXu zE=C+(2oE?-O^=Y8QZ6S_=AAss7?xZ6_<_S@k@Mydo3L3E08bc}q!C;gH7GQT`OrcV z)vu)&&=Zi9>Qw*I_Y9Mc&BK8&MJr{?BEr5rdG#T9=(^uzBc5CBd)XVBoD-rI6O9H# zRwzWv4FKTO@A$JLXw0BkxJVd&wpf*gO?T;ilSNcxuJ~5CY^JhcN)N6LpniHUem8rX zqe{6sI-RV+!puBhv@(d~h2l}o7wW#zX=Jxg&Lq7Meb;ysg<2NHijCm$I~4l^&4mD! z(6s&V;*TBLlOFmO8ygwDbR~qeiLF?{dEFbd*a0PstM#CYmo=s1^G&WTKg8n|7k(j%m{)y}NG7*e50E%^ zuceDJGs>;^eivf{fT^;-ekE>VvrPhVPwW{~VWby{8r|Yxx^BTN7rbU)OPQTK`{*Tp z4p(Kh(B#;{hk`uO|Fbh#NHtfzA;)5z9eouzgXY5IyM*DkVbKrneU%KMguIsk#m0() z4^hC8z_DG`jRtAV_-pDLO1a(%Q>7!gH(YSPGbUEhl+Y~lW8bLJz&gKHWi1M|6IdCf zaoA0?-ARX19wPWy&S?;Cp3m+W?$o7ssOD-XDC-~X*E)u1I~h^h9Fd~1L!-FTt2b&F zsmSGiamzUSHKNyb$`~Kq00jkQooq+ry5jm$=lL?-@<2IzTzg0TOtyIZMn_K!IVEy) z40^-QjgJyS3!&Id0CSj;H&SH(#>x#a1nZIjdhnFTW6_Y1u$4ifAU2v<mIc5OsdYpkLNNTuipG(PKuE9Ej7EX7_|UP+BHy3-rQmKYZ$vN4+=)W4`71?- z*l&oh7pE8z149Lj*ybGD3wXbp!ewIYRm??j^hf)Gxq4n@ht&wbKXH+0NzYb=az&zK z7Y?*J1X>v~Zk~YWUix47UZEdj2MzVsVnAvg^nYia{(*Z0E(;w-`zsJnks*jg)h<4B zT%E3!dOCd|Ken3kUs?e4P;P9i%uGC=o!=m>xnfMG{|6p(xf-3%%-ol{E~n@I&lN-h zzs!u99(ElXDwUy)Md-5spVHY@!tm;o+K*3JYCx5;g93FMKatZBXz2pTrG9!Q8g-Hw zIP}@=b5}0VAq$!NlI$<+^WXPSs|Pcf%4-?ze8U*Ng3tM49%!J(H%ja|)W#y>keMEK zLJM55c;v&sHhm!5atQBbItA{TDYcE}(NJAzA?F>L_WvE-TMeNyq=VcyD^SvduFXO% zfs5Dj-j{m1sDFG}b;GOIyQw^ZA#W><0c0f~SW8c$ozsD-Ru35bxi8Psov-)Xjfi*< zPZASQ{JeGerPs0kafshXbPRpwPL$3Cn$?&5QaI`F?(S})W6Q0H&3`oAYSsPp_bAVy z^m)6C@Obu)69bBVT_Z`nFGFdNLT$%W{w*l}uVad)JySm(OhFji|DI23p2QMOC#ebu zIqyoYL@EY|KEl{|1OHI=1Yx9yf_fyc>-kowM9RgbPNyM;Rmi^ugC@`5TaG;k&B{{U zX{+9Fh}T|+H)lN){+|#1ki?U4@cQg3;`$T*cWi;@_a|zsmn}+1bR=9jzz{S9c&cJ( zP9gn@rx#7&L8)`+J|XZY&C}j?h9=ry2#z%Ju>hxA1~(HVU7i6Yq!Xxxk_BI$dFTEp2Eh+_ue`)quD=PCJNB75;}<% zYCKx{6FIeB6Y$`fc60_~M7_Bs{o0;0kRx^YohV-^Hx9sAcfk8|*yzXK+MD)`=m{Il zUE=d}Uy$*C)$=ne@>RZMd0Cd>#|1lR$>3Q3 z1-ts!NCR(y!3HKne;Ri(jA2ivMMrWb(L$qnVX&Q0ze6o<`%6@Fb4m<>K(3Uo2zyjh~#OS!!i*277f%*MUoY1$&!Qps}xw=_=|DOy|$;nLJGPm-{MAv9lK9`)od-Gg-i$cmClIk-w3y9llkuvv`rT^4k% z`3A*EaKrQq6S^x;T28+Yuq3Y5m9W+3{`ZXgdss+~pb<=ToN_;6L7nXOT35+ zd=Km6v+=XlM>f-m@hqN4!v)Z7RJSocee-`w-^2et(rrKXr>+$VZ04SxnA~|RqyB_X zfDX1qlbR4ou{Ocrem5X~7|Ugn?R0Z$Fh#&_IYTm4h5w)Vg1^@YAB-2wTO?vMApN0A zd(CffmBwum8iM)iTWS&q_7kXhlNE3q0a7iXkpnJU1GJJE~B12&g zn2dVY{UHF`9SzW42c*y$=jb(>^=aV7a>e(0L-!|%{l8TKBGaj=tYkmw~b>V-S>_4Z&avE{ucMSjU)qsd+o!w6Kc#)!Hfl|JiAdfQcYaAwta6;Y{ zF&8F-+ojQRXE{n#RSDYHfG(pQ``RnrlrS|maX@S?+s}}hfY&%WKVVy_PFASS{h?k| z`$_N>;rL9zR*r7Z-TY+iAn)obA}_!|XVz|K{n5dE;?+$(5hG%BVTx@BcO~fN_dfM6 z+xy4cD=Mg#bLFNux)jT{U08hUst?6!+8Rm}s)9+BzyJ9u=zZS>x zBJmTitjV_Y>Q@v7{NT|`CHn|GCghkWgB|_K3&v5@fxy|!w>DwcN%fh3fR@!ko5~gd zVT-C*oDjv-oz1PFjsM?=TazU6J6%s1>T0IxTH&CrtHj?iJ%;zgG_X` zo2kM7N1F&z`=_P|x7e%q|8*~at@Xd2H5Xx{M1X#Q za^X7(8PNg}nYU+Vpl2XFIb3k?bn1J!m)@S=n=xcZM~U%A7ZwIw2Q>^6G%%D+RGi$e zAS!8h{quFUM~-ky5CRJ#Pd+nDB5ka>bd&>uXHYOGeE<4J1P4pEmqWogZDHZ}40;5` z=`?Y$-1*F~WgSpqCv~59ivA#~3sKJSh6N(AG}|SmB4uLw=F=pPK_;~tvlzRbG0~I{ zxyUuf7oLFde-HlloX1mryp7lSe4BA5_ewPN<2R3frX|pV0ALH|%P#TLBNtp9?zXP> zXDATRy5c)>2j_xTJA-@2q<9W{X_QMv7M->HiDOXbbI-7+2;`|IUebnk5`K3gmLWw$ahPQM~m-tg4#%Bl=&gbGfW0Q z*4`b=Utu#F^#r85?WR}s1GOwNJ^ypma24Jn-Z-AU$83o-wh3O3>tj?7yY0vy5{YfR zhF>-fde|)LYYa>wDFzOQvt&KdqzV-2V*cO#46s$#pjGgu|kanvd4BvNU4M=c+|rKrP-oVHO%>O5l`Mfpye>K0aM( zqA!1tJf-rZPpmuvfcG(Xy%*jwd`5y2Gy6;0=u68JTV#s2; z!VZrkRII3MyFw2eVEceZ3hTf5)(1f z#dx<8o5`(1#QCOk@Nk&UT#4!x!RDxgbI;?Us>gn9_7%^yvRE7qF+gICMDLF1dwh67 zYMUeB?z!i==y*0sySQ;!(V997)@ld1ZEL2-G!50%WtZKflf`NV>2Pz6EH3BDiL9<* zJC|L?qsWdhbR`@8p-m61I+v>Snttkq#n^g#)1Knl>b36hzE*)3WFghmfTk{ZzWL$K z;GzD)W_29_fzy8JcK2e7lD>p#Ph2_kc&pyI4`Zg%xWW}|z1kJU3x^yPhRY__5HRc1 zsZq)S>?ntK2q5>u3l6xku_61YN#x37pGXHfgWxy7keDc$9W6GMn|Hs4pdo&&He2}O zep^<;36zT6G3D7x1aoIMFv)$MLBkWFoIK5j?HEjbosh0a=J|Rsd z(@c5lYyTNXB_5;KkVOZY1he%O2lMV9lyV#S-GuhJ(G*gf@keI@9#dd%*wefC?6Kv< z2Pfmc&0-6?jH#9!`gwYv+f;%B!;O82F(~H@Q8rgmGOdS4^dM0#%mj;HGddHZhfAAtX;1{ zQof(ZRIRpZFuMFdy_MNA2gKQArAWi~M=6V+yW?%UpKcA&4{<;Ipa!Tx*^l&J8zTAEU)QYcy;M8-O=2*u;*r8kxHGZ$1(4w!Aw8)Mm?1h;3MUSOu* z$VI2`pBL?qj2LRFHtHva;&FebDc#9d3w{&T{n3AF1-~J3Xc6Qd=|L`WPOnnq?xSjU zHpeQLi>`*-!p(XyMW2`WLbcjTtD$io@JkAJKVw-;m$t$p`D`@0dBY&A`#3JyXi-R| zZf?1{EsRmyDDcGWe3dQHh{;K@nA-Rn8kXjE9+XQWZ}6$3{o}>lVu|AtWH_}@C99sr zbaZ+HkhrDiJ;zUh9r#-4QJhm~l1c`K9bQ-{Kxbm8G$9>?}&!p9U_XW_V z)fj&)qga>G5H1I#Iv0sWBbU!1{jv0}$@8k2z8-@)q)YZvh%IR~iy$qW@shoqxI4dJ zf8X67_t{bVb7yH?_kMC71qudS$tRn-i7kO(-)mj2FS;OgTpM4rQve89ppi*zPjVxH zb+A?%;gEfx1RHoVG}k6#q=lDeMA$7K_!}nGjD`!lsgE?)@LOV~k~Q(wUkpuJR5m+Z zmD*}P${wN@OwFE!?qeP%?}x6XMTK=#64G~0RH32ocF}5bFS=?U5hMK5Z&=<%Kw)Tf zxtz!LQl=;cn#1j!j#8t}R=I7683Ql_UsQi{LbL2WLd78IL;hy2A6c)>U+B`)s#L4{ zBjM74ZZEH1i=M0s*%#Pd$4=eU`)lWJX`;-1)!QB40r$gcq?f3i-D$X|e!;BPZ@8X) zUmYSztIGX;ENAF^Pows0R46_qLVqAy$YFmrfA73FCZ&FJc`cqn;Z}Fffm@w@^+@K_ zyyWNsj5o~66u(n(mA1A@CcZF!zR2AY%~fZ6v+*B8UGxm9J>g>00=~n2^Q(4%{uQgObKI(~-E0_UqRXpUPTBJchy5&FuV!k=COHj- z=G^yM@Ey;uzY=?j6e_}WE3J7L#w7p=@{pL zLG2RayOZS7YA1^+3OqP`M-cDMtz~x-o5lKR)SY_`7=)!Dmd52bUe{zOpF8MMG+s4>C51gG7@ z&+Cr{)2ElVr{hMY;kH$K9YM$Lf)*u?lIupRhdQ8iU z#kEr{eGvR+F^L)&HO9Vl8OONRbrUdUyySSWNOo0ic0hOsEJ1y~rA1(kPm|NhWUu$c zh`w52yy2G(((N34zxWVRqJKJ`|7h(>&Ngb{_vPVIHnWsr=V2iJun>04+q~N6Y?D5A z#&#=T*zgDq;GSi3P2WO6Tp!(>AKdJi01FV*pT;Z<;3(FE)fxa%6Dr%Sp(}c+;?^E| zp1WyKjYjlbrRfpiQucco?NuJIM)QC^LY#m?$VRj4k;9TX#r}~?Izg+;`7cJ5X15LO z2iLPIB~qoq6nA|6e|h4%ioabsDdg6m8CR`%$G$(kx%z#z_l_ojGdCr4l`D}7bQ>m( zNw%QDJ9ua;ak$Rn&B3Ly$3x-C1fnn2X-OZNIKB3ta6*y+~5 zo<~GjVrqj!&!|Bk35z-47Df~6-NJVl5l*IyOX9Lw!~#Lf-2@)51Ao!0ozd)*2$jt^ z5+PEVHeb|mjYInG2*UWp3PYhhhwgBVXcA|pppv0c@kA!W=>3^;7pm6S0NUcSt7RXKf zcvDkcM})^MFQ#NN%jt7}W=Ja8T9?#u$xOLH;eCyMKG1DqlGiX%&7xTajZADk{NZ%( zs9ee?STl*!!^?N44(P__60qLY<~NALz~y!wh=kA6MxRV62S+Ja5DNjFM3a>}SvzSR zXeW+llgf1=J>KZNdyEqZc-?S>!Bwo%^b}_UJ(Xix1^nyu{1D%U4uiE@?f2MHRxaiU zeX@0YTv~NUs|TKsyu_O27RR8cN@Ow!wraXEc=YyT(%-f^D%>A=b{v~8H}usbO}&mx zW;XDXV8hq#QdFDkU#Jk5zVRYWh3CIS=gYE$BYL&GZkYjMqd{M6IM9{WMsP3a9t_ZQ zWtOsmA=;FKrB*5s`8h1GhW?L&~AvGFrCyyH_wh5!JIBN zF+NA^Zi~j4o&`j|?>}rCiKfvcju*?RF&Pb#Vl$__&U7AFEY-;ZOs&%H*T`YnswDf3 z65dA&o&U$)dj>R>ebJ+efGA)^P>`a4NDC@WI;enj0qF!#dI`O^2&gDXZvxV!L`vv{ z-bA|8&_nMnASECr@D4NM{D01y|L6BU%vVF=z2~00&)#dVwf2jtdeJ=H9}e$`*X@nF z)_j!#1v^qg?D#eqe;m%F5cgy=!7y?%j@Qzt8B9Zh<%vSRJb&z`p=HzZnQ{KBG#Byu z)EuW~ne&)n`9aOus>do>Ms{vUOgorxLOopK5wg9u<#*V9EPd=*8dLdnE?|yXS@Yv+ z@4=V@oP9VmDY|#1dVgnMN(G^aOy!yhAo|J&8@U}6$Lq2nBzzcJY~hyFo`em#%A)u# zXui1bvzm@Z(i}LPIJJ0w#)!d158MZgPPYMV&SUw;9^l?~YKyvlcE|4LD%2ZR*DR%U-3|HH)00F~Qd7BRK9vMf&iPWcVWHtg zXO1^iHjd_i-T~~2P^!urwvKgcHcF$81ffzI*mX6x;9GwLDck#?OiVn0D{*Bg=9X9d z9dgH{Y+X(QkI!AAX=%4eKN1F8D9Is$5o`4X6tCPyt>MOkW3DMX?7^!8$=blKX*MJN zyj&quD^FPj8n+8@;Rnu#Vh`NfC|cvN#4c9;if$zanwrz#c*xNzT#TGSGY*+_#Lcvg zm^A^_PYalgZJZcPU2HH~PVm;!$sHSTE!zmx=z{zAQY!D*X-+#3llcc-zm-?L7ySL> zVMrwcf8S))wH*0KO{>rVRqR#f7s;+8)fKYaRqD0~TH2v5{N-{M126_OZe$zbYe2&f z3lA?<3+-V%3Lh=EFRu_3+4cRN#M@DOREbnBO*gmD(Uj9UA28`^WQ&C$LyJYWnxv! z4bS<>C47B3srx%{6;Z5Ky4~;=&xzR{&I2c=blQbzFn3e7BrA&9AzFTow#760azy=p z%Rf$^Z*(Aj7c6LXUm=84)`4cNBh#3*hD|^ut0T1Xp3D~?f%d%a$zc3Y?W+6f$24C2 z#>+h9hdE(lM>nT)h3tRklilDG{u((eSUULO(!F9|exp_nK+&d%=c`mdPA_Y$Uby%w zsuIgrki@H9v&hN6(zh_OmbkE=Dmy1D2rd6n9`NMh;ACe;A;{HR!x$@%j3TDsc!;@* zbamq7f=Ep?ucdl>o*4PNXU%&xLlvQVa8T26KRWUp+&Q)jRa{D39O=)uE84miQn1Ch z4BWwLOskU=^moQDvm32Hw}6&DP;L4E5%Zd_z0K_;=$aY+sP0G3hfn`|K7zw19b~wg zdzxkx1ToUd4Gq}afd6NzZ}#I(DyRq_ezjYdqa@!K>B}fN+;67eoZjlHXfSO05YgG? zD7X-5w7&oGr+k=jxuTQ8+JwcoiBzM`s`B3SE$*ZH?L)w}J)|{2gPqN+z#ry=JFB>A#U90zLfz!G1K-G6dzTn4qp!!g~G_o}^)&1QREO_*N=vC(Xg2bHo{WQ_3PGnxW=E~3GEqqWDcir0U9RBSy` zK2HU?i+cOdGM8Z+JhQjs+=yn9PdehJjZOWu4yo~NW9m{($K1+;^f_|`o_t@soo{$+ zA~F&=iKNeH$6_%qPdvyUv)3xL$8f0X0acE|d5RVr|J!N7v~q+xq7k zJG+)0=iKWXVnl3$7vfAtOI^B1b~$v@UVCo#94w474=;c4c#{D^^f{6E#V0;7yQ%+= zis6yeWELS=wp!**#yTLU3JN>0y-N5pyUqoupE{va@rjx=u+rJI*6Qv(hDf;>CAg2ld=!-iBOfRamp0;ztw&KPs-vfHiIQad)*t zc=ysgF7Blqi`RZ~V)_8s{ZAFgj=bUe>v7pN4uGsN;y6`dWQd3hF zlOrLWLeutTXM^BpKW^6+TVnQa=TVrWcPdKkTt3Z`b>+nNi?UpgnmB;DF9@msaQpicU&H8JnU(nMCCttu%M z8v}CfB0bKKds$JhKuD+2{ft8OcFgXZz$1sfk3Sg$i63j^Y0+FQou<2gH~&TdQVH(m z4^#|ZokaC&7c6Y7EZWOQS_S^d zJ1kWhq+! zPw;*3>q^*cQ+&i$OyzYQ?(e=sb}?ieTtV*&#d!SB&;Osi)W?BTx8&8-5dcg_CUYH1 z*KT*MP1J(aarVJ)OYv)GJknv<*GYMcx>_y$>!1GjePduc2?pN`Ga~+{8v8$x-4mtB zECre1(W-r?l}`mTCbJJr4@6(|QtWNz-7*#Gu>05l^3uBu@tkwl=i6c*Pd8PUoepv4 z{0GwZ>q;O{h5O0=kj~SoF-fnbb2J^KY#vf4pen|hid7r?OKW*3@cNftX(JZi!+WuK#THK~W;`5C1 z;{#aS;XWoQxNhKV_0(Gq6_mU=t6q-T-6CC;i9wqo2K@d-;Nb4P8NR#$@!s_dNp~yC z2&tWTD9-lMKN!myhJq>X17`Z% z7OM}3OI`9tm1`3{54Bv(HEU~Tg`4+F04Nv=Xq;pHNeteetx-ay&vP~PHfKAp&58Ko zq_tjw{PutDU7X~c?kI#&iy*pe1!wBS+ z!gb^B8)kSM1K|LRPN{X2$C@Q87@HWfS&{$bJrf6qUF5>UcfSD4d#?B&`q)Y^&MS=fXGywdhYSIsCs=^ck8vJhpb!(-9>9S$6Szc@`e6pNsZILR~+G-lke!+ZXq@-6# z<&j!N>cChQfq%L%SY(0~gzY-YB#9!QbLfk6zL}#Ug=op2ZSAR%fqZ4wLza#&V33My%y0~gk=w2{#Y`eVksz*(ub-Cn0 z;zV}SadDW>%3vOqWYmp)D_IIIHo)AD0-n9?HTbh>7IU&S9eT85yCEnTs7=Gg^z~TP z3SVaN6vOe$(=V#3eHMrKA4DI z9WFW{RWZLH!1@Qv%R6S#&s)H`R;zP#3qJ2dqBr;T+~GD=Z?TwKeUQlX;26P3UKMbX zjkErvMWxAgiOYCoJMY_bb~Hk1!P~CnpaazC((kNxZL0O*<%RlHUAslnaB~rT!9lN1 z7i@Z>Qts)Hu}Uq|4Ha5L3@#zjl>^1QRE3S@hx-8Q#z)k=R+BLuiJbA@<3x0HOI4~^DMnX7u0K@qGYk>k_+ZrfN#^YZ8VJC6A~BZz zw#Rta&*&m*+c+iwZ$*IaU&`r@9O|E~=A~O`I;<(Of*cy!LtsG<-+x2g{Eg_YK70jA zbvWu`P)qt`pUON#A~oZImR}^~I-I z-JOxOIP1Jx=Gw&~+4R&xv6b=193(nrwkaey&VEzeWCN{n+?q<#GwC5G4=g8W%KBta z5PY8S-mM1JndSvrL8g)w-bg^TkOS#ZTC>JPSu(8kN@Kcd-Z*t}LRME*6;E~Ln-2%3 zzBdItpYRvNu{OL7dRI8HQ}cmZM0+Bo!$L?x>cdTD;NRDCa5EaS!XJL-?5>3t@G#l+j2cQqO*#br%dHaZK7#Oyum)&wqBLQ}`T^qZfSel_AeLG!(6C z_M{g2%iG%vU-q+MRqa9R(8|mDs%|yFFkcaiG*^0m@0)=i@jj>S%bu~uWmOyr7=79D zT)Hzl)=5trTR9Ak|;ED0%g4MB74ZrW1X$z&*WA9oXq@SZs#Jbtt1X;zq;JUN) zaLR<2k>zg*SLqG4Qje(J4S24dCVV72xoz|CRzFNIP<-+H=og99IYE(OUvZ!cPdwyy ze@%?&m8(3fBbOjV-TqBRb+jcLAZ@ZCYx%0)gE1u>WaDxRkTWb zIZMHBEzG+=bOSqZ`2(o5kc@)yvI|uD(Mn?8`m&ThXEp3qq4wP!C z{aq|`EVprQj~R2iM@SyeLv8Ly8~hbcQK!X@n83xnQ9N^j{*9LYnXnKi&u>JHvN3tL zfq6_HYAyV-Ak5|a#A7BfaWsBn?8)-P@Du7~?oFvpw`+OOQpNq_Zn?rSTR-B{yKUiM z0_TDcUN=cLl9lV26UrvTOEQwP1O?J=A(vrr=!9Ps-Iu5H{t~1SbZnlArL)G2;3^%< zWec_ZVsCJp{OIzC)uw*swcpwdEia79s=VyMN07gf;9>?JseCCJILcvDg|C6@ua7Kx zE2?je5?R~t<}VnengNSrAl;~S+S`jygwMLFOfbqN zf&Jw|)$^KFn4tZ-hZaKB7?w~uY32*i`W6CMslxjX02`4~jyUl_-O__80zYjoOHuhd zj$jdjU#(G!m3kFcq2cwEmG??6$*P7B2)|BgP?a+M4k#Ln&rJ;Xe4~H#bGx zpU|ycr+Zzp<*~aKK~BS0o{8ESlUw4Mv^e=9xA8z&!uvzf;k(@lLe4TN1Vm}>QEk1@ zgV~!g5VTL+l-JhshNxWDduE5$&|7{U5M=-f#+B+TBJA_fuXM{XZBLPL{j(0_$U|5 z?KLWSK3Pa((3{ccx)`Rfawt?h5j9LOiy6c4RW6Dxa!@${9;h&O^WGv$W**wDIq2s6 z!0uLCntYTBfU{SGtEuKj{gCa&C9A&n9)Z%IGwY zO$&%>f| z*4^0qhOV{`UGK?+{|E~hFPOZ;q35OQ*tR(%NL1C(04vc~YLDjBNppzF9cR8QnmS`b zH8cW-)Ql($I#CFT9z_cG<{}-vGa`s{UD{N;gsD=7-gv&x4h6Yq=<9HC`=#KvE@50* zeDo?&%vEXY$H|-dPfic2uE&UUJr?A|D6uF#+52P_iByoW$-}#@EwMOe_3P2T|Ct8A zapSjoivdOY>4;O9SesgRyIQ=)(|XEH$8+49&dg5#HRX`wy?CjQnl8xgwkNyj$61 z2hCFV<0i(w6Mbmf9=>d>tHItYCh{k{(Hp@@c^%NA$L_u;(udK1*)X+s0MyTd79iD|Tk)6oEK9 z>Nfuv6Q>hf88XIvx1d9#Gb&?II|Adl?Dl-=HSzW;zVuZwOnwWXd6wNmv6xw=tjz@> z6HC4kVu^8~pP=EDN_Kt3gqsgn8j}hPWqvF2>Pl|gy8o0TEB;xz4!5-o z8bjy2KMKF*{g^A?#c;|uTAiiN!Aku->H&>2w31!_F^r z)w{AHQ1rbb>(K&_LAt#R>D{|nI<(VpqIWJxTchOE^Pr3uQ8mXOcvq}Bl^^+u?=Dfl z*7K??sX>#*u*f9>kBywvdSFf8sdvWQS%c9fFR$jO{D_n5_n`ASz$clfpZs9}Ri$Kx zLegbpo!j(Qpad?q9vsJ#RX_Giieekle(ho8M=WhqzISKovk-~c-nIh(64#&9Y=_ri zD&AhS2+co!B~d8rf`++DSGO0+<>FnCp2LMIB~rAp+zxG87_)jl8im2x!~>?lHS21r zL21ve5^HObh9W)3;H#*xw&Wyul=?+f1TA$=u{q#I(z>97y6lFDlCm5;6vjLkOwBWQ zhmr9Kk(^L%zY)99c@fj>oYdgal>waO*lPN~4M{7bwCZC%V1-_D3_N@yCcNn=UigJ` zLj;>o$6FkZuye_@55UIOhQW+MN6Sarm-s(g`F%R77??c+qU(h0iV4d(r{Wx)WjF;hLDWA9TfAPR$Xclp}Fsp(mH~Y z;3p`!97s7-Kx>6e+A&;MZ6=7)xIO$u0fXz*TrG+ zNO}t{Ln$(W8T$i&h)zt8RO`t03j3T>Q;@(3{-N6px`CS^kU`8$iPnwm!MAzlUe&mu zqmvY4utNMp@I7Jr=%BBy$ka#PUO-w zo8vGuQvJ{slT%}me@}DVSIHC{yZ$!B_Nc7|L2DR@&Dr`)*KZa(#0X8!O+4iuzjLSF zFouzS>{J@AgAY}Hvo%o(m4jF*bfV6CQs{Kna9WfK?Y!c!g2Fl}e0L6Km%gx+D&)X# zGs4uC#qony=isujpTO_<2O(kS5siEDGkIf&g|;Q@5*Y+Dd=FPjNNRXK@qoeh8WG6# z8Tlt%XVk1tmr60X6Yv#o?k1fr>v?l5|LJbfde!3*(IGZ>D%JD9ZK1Nagt_}94aB%* zsY&fDboD;@^+l=cQV;8?2rrdEh^+I}W-3;x5-LQA>=#?Uve2*CdN~K{{SL7q{`d*N z>{CJ|j!g9qumONfkC4<&ZfX{ziQ+QIst+lKBPQ z`Ukn{7rLdP0azvdxP>(m-TOWw9y={HUI)3Fc#YI)kS??|Da3brtaRw0S_%xCJ9XBq zh(H;~fkCZ5#4MT7PZSs;ZVEfz9huAX_dR=&E*uEE#?~HjKyYsQE!B|XRRE$I59W@o z6#_(K z?b*WnzxNDsubuWTs!>m*z&@G0LI_O$Gg8;q!Zy_`p5le#+a?6hfA1~ZxH=m(I37B` zTNF%ilLNEQ1*G=ES<-L@!OF5=IY6&f}lGb+TDhGvy4pO`8#0VSMm^Mv<; z*WS;fu5{<>xAutO)dR^hLCVbWi3dXwN^*@^C28(h_stQS^_Kgzjb=+5id}7?Qw{0b z*nNBdV9NNtb&lGA8=&LIhZTHUG{4&(`hxLrrv5vXz85o#Qet0C)zW&Qs1ycMX6|4< zT!B11Sif2O^N@%%{S6(vMrNF&=V!DQqD%YIX4K$BBymt&8=yKORAm|vl)T)j&0nzF&N-0jAR~mMYz1nOAjJNn~ue-=sc|9)Rr#y7jw$@B^)2 zdLan3vKo@9k`Z}A^v>Zo3Ij-OYwsMpZfHKH9cuJ*asn`DczUM_SafME2lHZXJ@#)` zIq=d2jVy(rel#7kpa?BrH- z5dhg(4e;E8aS7zFzapbK%qH8Lfj@xPd)^Qf77pEuRFqImf+TpNQ!ANdBcI(-h@H*_ zy~8}>dAg|Jk&6zA0+!L=Kkns`+6Sxq+0-29)f^pi@8K6tKX7W2FX&0AkG%Kd(R+Ha zngRZPTDk{TA5VB_=tm-TN{O=V>lG{) z4%Vw!Q>71?mwFLB2l%zNs+_Lz@t7CzqdPXWds)HV8CG19Nz6Q#A^La2ZlEdA|t zxiK~_QmPSj`iGT zdsvL|Z-e$dN#!QIr%u~c&d2D(BY?yw$*!E}wafYl<74k*;A%3Cp=R<_7|7LGAD~&y ztFHlw>ypO-;-;YMGiuA^Qk_A_=FG*3cFejL(+Uo+57YvVXoHfVCcNo)lJZn*+6hzK zND1(3|IEGC`rFwm&cH_s&WR2sf7C788-zeuiKs6~QOP!O(yDe3BDKEx(6;U(Q&dIC z>qrh|-78G*xRhMnb-jHkJ#iqUfM`BzXSO}v)GBCU zx1KrK;nlG|kSuF26VHbf9;%2U_Bj$xo$C@iD6ZNaps^SCgK(R4h66~yB|t4hAy?#= z7eMx*J*N(ji_@rmdk5s6v1M-%t(b&0yQ*veCFk_WhQ;8I*Zk|2SW1mzZJfmv$(HHQ!u;{<{Wf!pluP6o7^0XzT z4;Ad=zufEz3v{zzh?YFYvs}F+-)pMcN_5emjP_Q4wt7@LwV65CAnPYVqhTMoc>5OpsPL1o{)k z0Flz#w`4(C0Sd;UQrdwaP~`&O1TQriGT|9kJQhku=Gvan0qeJn)Y%3 z%u7*$9uzw+*^{5Ai@pM+f|IwV>J@aTwj^Nsy=gM(pG0dxeh-)|HsSKI4`h7^_Kc>c zk98*yN_*1wAVI8I?+?p}DSSJBgM9YyjOvff=~4qh&Wq~}lcN`WK2qjqR`9WPN+IVu zVl)DlTO@QA*1?FkT-F=Cra$717)d$B3mJPa)YI@ThV#LwYd;Z@!}_AIik7U8_qUJA zKM1nfU`L$5almakaFgGjUE(XDitd>Q;P|~1pS7GWAIt5gC3BN9L!!zHQfH2H%M?GV z(%Y#@q7>d#`AT?h%o1nl#Z5 z3uxS~=d=^RYspp@q%cliSf_-xDmguPdNu_*dDT0?r^c>qCOAPSK9649)UJJyFs3kK%)8jKo7Mb$cpwHIeO7Of;i zxe~S?>@UGAu0EVK1r6b)1#aW-i@vXSIM%9C6Av?0lWdfW;`?~L_8q+i+J}lJvQ$I- zL7&F13diNdWVOF-4lSo(RVgz_@sjz1FAe*ocV3QSo}lO~FUfcb#uCEdRYZKX$f#{r zs@Q$*ALOiDUY{*uGHguyA`_`>C}^SXoa4}|dg8uJZ5PoTV$b-~8BjXu;UiE#-Kmwc z5WT{0L@znsm3cOv=O=*p5x-hpuc1n2)ntIbR@SHNF2HTu8(qAZ#kp_uzAsm;!D&20 zU+UTqcV&bd$`Ye}(gABLu{g-D-AST-w_MA^_o$oTrCxxASJh;Ro<~DSf|g;TaJl1o zYe6_;3|^4Uwl2hv$tmmkIOky(xnO#~9Od((%zOc-$Yf-{%Y=xF+?GdN1v*4{Crxoq z^v;R)5+JqZB^Nl8O^y|GKQj(k3|?u?^Xc>vOG;FPb?WJCEl~{L6tLfC1oOjmXMLgL z)zw{AT1B#&U+35V4r=OBei{fVut$9+RyNKXV?Fhy_ zU-J;f$MiXjKRH^=#Q3PUOZX?kHw2*~Z-T#hE^kOTl17i*t*jCZ-_UJM?4c%)UKUr3 ziRK{JujJa~-SOtN*3|dz-BF4agpRwGWV46sPaxg4sGg>)qT7(id%XEDRwVHP>eG2y zjG!O;8AcVTPaQq5s0;lrxZKqXNaOuqKDAHuFDmjg!=s2z;(0DyRH?X%ILZ(6a~@;F z(%UndVSnUbW^~#%bbZAycuZraC>MitM2~VlHD6z47^97S{aYN+%_dkNzb>`*5&yu* zQWtu0$+MQ^3Sl)};sdXzK)+1-eK^i@!|8P&KgiOhe!zw)ML)x$6!9er^0Lcj<>SD< zOGD3dJZ1Q44&1aOdgJPy00jx`29E!PmnIY2TiOP6!i-3#xC{kD)V5a=y(6KXN_CeV zfB1&Kp2*n7B>jyCX%UiwUTELP$7Tt93jBeJG9nsT%E&CwjedU678SGnaW}|wv|2i{ z5f&syb8e>xktDZZnix>{ftEujdf)lGIUV!aB4mg*QsS}HN}!PD?>GP6jR@t7U#h&zJO6PSB6 z!YF%X{CtFS=!&IHxi{CK!PHByuJJxzF3vghq~XW$_JLN<6`ZxQ-gt(Z z9CW=PP#A%Z0}LpZb@=xCT!a8aTcI-T_hh(+^Xd=;RnVb0MmFz&KX`#21?ukWYIZK) z2ehi>5at?4-HjaMhd#gWHBKK_R&)k@PM3ez*P?V~G3708xfND1uhAObhzpMZZT&m^ z=UdqglS~f;21Ouqqr+=dd#=xS^B?F{EH!<#u1HWQ+R80)&>KJ4ZcDhbLr@3i3W?pmyNRIw>!g@sawpmCHM|JUc?9T^g2x` zE{ZV?k(72Sx!A8%mdg^rhurM}v>Von&R8*_c$0>X2x*&F(3w@oufNAD6g$maS)tJ8 zy4KH{Mp;~p+qC|x(zRaCKIE900Zdz@b9^00jG6>AGAZbu6dgl!;2d>UT^&;7^X*Apu(qo?gX0Yc>#(%}TKO;a z^)Z#g2wYO)ood;MKwqM*l`U5Ks_$JowJPaPmwXW@%DI)iDyDL$*|Z=J1&Zhv&?sX`Ktrd{c~n05ji2eI5>PT@zib6nDq zTYMV(6QXHq`C6+`a>u4Sj3?Xiz8B4lmzG`~eM^DTP7%Zh)+<5C{v}^Mk5S2ee`J4@ zB){TN9=dLRxwx6p|6--8`nXiRrWYUeH>shazWX}0-+Mbo);B@=>Zk6y&LsT=qtCTlktu1gH zSDR-sd7l&Yys8C<-m-9KbVZ6**Ss%)jO6w!EmN#?c8N;n-)rhCzx=;^aNUap3$!mZ zYpk>q-g;(N9k(J(w+CrbVnDH3dZC|gjPS)lFs&f@gUXzqSBcoy=Eh*OCf9~jfWhb2 z??)YxG`wc~rsKk;>`V22{-a#>l=%m$j>@*Hcw z(1RkFL=t>O53ZDO`R(8Yce*st+~7$*xx7w+85snYCb6rban*dV@oDGUVtZC6&My}( zmO7;pbG|ZV%^X1MoN>6Lzj`0Rf6G3IF?#d0^v>7dyvF*r0=M0iqzn$z~h03SL~e{RH9@!O?_TPwnx7t;>dRrjwO+lPRd^~n z=E~y!JJxVS=*{6mH~-Ov098wf)I-$~lFwe9X> zGSR=MmVdE0>TqnAoStxXV*nqcjQ135#Ktxv>`G%`dB+u#?}r+|V8*SJyi%>x>BI6Lw#HC+0P@W`qvryla+36`y0XW7z5(0MYtfmP3Cy*r?v@^uIUx_l6#TE4<%?Rw98{BTdD#_C3E0y`pjTMhzd z>PGQos&R>qWoDb`sU4>J=M5WC@azbZi>H&4rNV*okCx`_qWi;-q%Pk4dkfz6Lnf~)=x1? zw*u{S`I=%Z-{ULh;vK#Lc23#_FyUU8x>K}nWh*(1ht8|OXrRrR`$7h-(Cx&D5(k$b z#qCKCc}w`f!*bIjdIjM+v~LogG^)@)dxFEB;U~JxP@iw7Jf>$ zv`S{vn4>fB=vwKJFzx@ef&cm+rHB-5o8e z?y%-oz)!8bQtvPx_o{wNy`^nvvC8l4MPiFMHO^?2`1_?ZH-h`Ux9Q3eFX6C z`FMlV!z;6g=2xp_a`W8D8MLV;rBLvQL3+ok&>dT$*+WVFM{;>dd9q41oRN}BO!N9) z+3pzW9rp<=_x08Y+CZIz@R{$m1CQ$F?P#7Mohy?IU#UaGvDi{<ou} z|F*>6EAZcz_(#P3FG~EkCH~tI|K$?@rCh&q%>N?de-ZJ&i1=Sb{4XN@7ZHE0!2gF4 z@n~Y)OMF=E(>c21KIOa3>e0`FNuCkj3UkP}I@2`dnjjK9v*GSyy0H3b1~+`q)LEE& zMc_J32>PX8tJLjb1|}woQ1MsxRz%t<%qi-Mw52uSH5vOm9%FerwBsJT@GiFsr8|5yKilS7wgRB_I7OY)E*5y^w|f>u2AfKz}wWcDnBb(f&up1?;4NsojfL z68~<9S9U`DI$(LV{|_^yKM|)(B$w`y-Fy14sO=>efEC#t6F&RDU`625)5J3Way_RB zry;;2b}i}D^1l+M#Tme-bqw!+>&*UzfQgR+>%b=bRdM{khe==rL42L*Uq5?S37n0} z-~?a9{`Ahd^9l!!ATzPl& zrNFP@@Okh1;3DCHKmWieOZ>Be{zp@Dd~R{^0I$6NMCuFgj5yngzrG*p2Cjg6U1TQs zvYCU=5C1@@@OQaLRF#pXNC>vbq43X3V4xxV%8-BjD}p`jEG*3n8144gON;mSMY7zcK4aqYBLRs3MW?ne?hPXTthbvWX zgF$jeDi^1vTl9cap~ll}<5eLYG{?VO?%VT27s;x<27>qSXP-mZ*}j*f`G_-JD;;-Aq_lEA;5wzmV#GN=5trjswh z=G6N@*L*uPg*dyVcLT;D6Kq^kYsMYZf_-TSEy{ zXE3hI_m9IyJcIPf87In7(!m#}?g4W&PMf6>C;ywRTrDw>1R=RDI*~LRW&K)pZqB@k z^ooJT8Vwl6bo1=rD@F)bOrh@cU4mf-1F_r1kZ4h$PO};+lR;T?MT73COgZT#=T*(S zBU=)NZoE{!Z?r{++kM|uh{^lUHCV=_ubKWSY+=wL{461e8F1P*t{3mPi0-kcx3RQ& zd>Pvc-&qx4wLSe!j;s24(+6tSt1KU4tj8+cq&V{ey_>a1On>}+HKCuuiAIrf_w65d zXn|ZqON{tp)<<;h_aJE(0gP~iByHNr2chgS3UQj4hG(_M=cwbZTmJRb&E!FHWB6!Q znxTQ{tHBgd@z2g_98bG5u5LVz1EZE^{rqp}Nm~Dz82MJ|3Un1$N*e%sjm zdKhDbJD_iYx{ThD^g7u0A|yA&-%r{6^P+fUz>i0i-TfeLa!xb<*`Q6HE;BrC_w)Ah zuqx<$GG~vw@fWc*jQy1#iKh|>28io(XDCJZ9(wMz)*e0=<=v$#x0olJXb4Syk^1^? zA14;^y3ml*1X_0ud>$d=GW0(le?HjASKb`E=#NPB3SPKkGUcHd^;hysv@J$F2t0jV z#=YaKj+$<>ir9*a?!EW0@O!HreXA|y`meA;LS+Ay90Z5ZJ%S#CDZ`NC9tDfSj^k(D zbZ_NfhVQN4=lv@yxpo@gIk@gkPHCYdjv?%Ee#EwrLiX1-{-y+O`f%LA;!`6*5B=%d z1N_X<=|!3`s}>uGH+!I^V*g)(ogwxW>U1$@azwfrhG9hSsq@XfznE8M<3 zNf?N29;kiy_AyI6#u1SkH|IhNopcI-$RAJ82b}l+xDM*8-LFzmC|#%)iQrEu-9ERjLdr&J?%6GjMQH;cbT zMxEh$KHx9GnmF0XaW|=u5irbYK<))yu^bQNl6&#Or)ocDu&8pn53)k!zP*@;b4v3a zX00>jcbFI~t8y8U>PGpZZsg#T*W*f9AMDc3cK-E$C8vWQL`5t|=De_35vxVj z@$O_BFBM+H+VboE%F!Q4iet`?m~^B3AOq3)P8ofE2Y;oPJ_F#ch6HmzUGq_=$|tTy zwg=w~=SRp`g_C)j5q_*W zBq=f~dpyiVqgDfMN<4SiKUgz;hjuveN3hta>g~oxp%pBRuvzj4I^Hb38k3t4_K1>| z0hZAi+4*?6=(g&lxE0K$q_P9ZQg_N@?28c;NvWkv=wD@vk0v6fz?TK~R#H={<%#$9D!SP-8Kk82J;cVzFk7OQR z@!`3&*i-GV>%GTBA39uH%R|2QPUoHv@IG%9ahX`+?@AOg9A?c64A|eF2>}y{G2w)x zDxz9K*Q%x}ERB;%kCxbb>=(Olx%~{2Uctuku2{rAeBoK`*4)XHWDt{eX;k>Fj#kS#V@IG}$%ndb)xsT`*qWJ(6$URIZ-`ob)OBCF zN5wEfIo6+s-5u8lGF?YM8#!HG2Ptd;HBTQOaeagKl`DU~yx(L&oX8osW{Y1UpyVK1 zNpTarnORu)=)z6m>uVMfj@LPKi=3hAgrur?yU0bn+0|{zs&~XLI4|_8JR+}i)F=j9 zngq7~uAC^##Ue}N?ExCLm>i1^fjh(HEqPqY4em&U9=^Jx9fVIuw~cfSZKpCD<=UE~ zdG(qt>muvTuDoi9{^8dJ9j2!vIW%SkeiokjKRWnh(mb1{r)jOfYzDi}36;?WQs1i@ zlEhpXdE1S8ec{H%WAbi?m5C*@@kYIfnO`9Q53;e0V~=mNx1TAA)2#0ZI?U%#tPin* z$thVHxh346>%Tf);3*jhNyzxb4?V-WQ*)We3R`=>Lkw=1RAdXU@a~M$_Xs8<;?Q)R ztdroc#I8)`nxva5Cf%873c~q(-tiVqCa%4LtFlyYeE3C%;9v|+m+;U|rC6aS6U|)G z{Pq~tXA=JZeg`BNlrM>I1)R`V#wuG6EC*2Lyxgps*WdKeizf)VgfC}V2zcGWnVJXD z3Q1)sls}?7o=^&`FznH6Wjs<0_v_lQ5OI_2P9VhA?+ zvg<5WtyS1ntnKmCwhR0Kj1GU&dz;^OifQ7oY0#+d)sgp#wAfJ+r<+A*ly4mh+h{*l zQsfo?viI9LoI8buhu`Fj^Pv=fWjcW%Ae!{V%cxD?N)Fojp;l;`H(Pc}Q%5w9J;Luz zwL31-rc8@%Yio1vgU62}rK33nE8G?m&!a3jJIkYa6di99Nt0LG8RItB1-Ii?g4pDH z3SybeJ}RzDO?#A&i0H3g-5s5C$#wNe|L)T8G&S&oR>Df#>|DZefSA|*hePvmPp#S) zh6$f9de3{u3cIPm#@{N$&u*|JW{nMe)Azz>udV+-ZGCqE$)Rdre; z+8VX#QdOg<9qQOyZDQ6)TUAu860vG;5?fkYo5T!a)E*Iv7!maMIHlju`JIzLyk2=F z?&ryUU-xxg_xt^RuB(l_uBD~jmLB!`d||Cm>4;Y|ajh5Te=Xq;?jlVkv0=#bWxnM? z5X)lc{AMi~jHLK}TR2$`O0}o6*PK7jKipLuBA=>Me0a(*q6Yn33y(X2e86pgq9L?q zEaLXeC2&UQG5jJ}xT*vInh6ZFQ$ z#lqGJuH&f+_k1%`g(UCmjXTDYn2VoJG>EhE)m;X?8YhgEgkc-ekT{LT*y*Lhzz z;_w5J3)W%DEA8E+T{L1y-ur1aEs?wu<*#Nj|w)Zkc+L-c5}3 z7>5UUr=4S&Uz_AFY5`QKyTZV830~T{5XaO!3)MUsGoW8?sXNhIuYS^A0!YVKe6s@` zh%W{!Jix|%g{Ax7+6|IvnSz_K%e(w z*=f1$=ivmeiZB2Z_5c6sI~onn;#JXmZ@B^&j_R6IJ$WqQA1Zlb_iABZ)#a__000pR|R{ z!cF9|Jjw0si2RB$Hoz`P_3Pco72qRDo^YRs#zWzkKgxyA*IDN=vI>t_rDW zmBuBaB))j~uUYJ--b=|+p?E%WP1BqgsHvXcnN4(fqLm@$IFtL#PkV6qEraUr7T2Em ziwO?nAYY+7c3&!rA3F*{X0IXRr-I%L=dI|V_aT*uBGmPQsrGM*!&AQ~;IFB-z>fbq z)_MX>n%?3lD)zV4KeH1C)N!FTpWF&$sO+4B1`5Z3%AdEzbUkm1?HE=TLaN(BI}^dP zB5YpyCqXbqwktpd2`7xtQhb!#t6mjW7M8084uOfCx^WFJcQedg6&1daUF-&nTelwX zelhmP#2KS}LJ;A5HRC({dc@FC0^#=7D1W+QIElh4Xfz4CLkZX3o?2_?YfTy|(~w+` z{1SBE7$kW9{7jE-L}%zbwK!jvt4KC9%FZ@; z;X;)9vtK6ummsjy2OQ;MF!!nK%ke)q33~+QGBeC=+ngQiqPs-%Oa&f}k9IN`{l(n{ zKTi0~H9*k2@8z`MS0w1`zvD-s6t=%Q(`c|mN-7FD0mP{>eC6(lgg??{W)5~<5e)C0 z*fkAzYsnP^*C;(DnFId3s~zLgxMF-3e&>@K!e}i*j%+zj`H^~x>kr?iELlRaC{V%- zrR?Xo7LaYE8T6d}&%Oksi}ayDMbdgvhq6vg&c=vlDGq(g`-Shx6h=b0(6F)=B4nt_ z#S)!&6EVMPXNd-WYueA7W`PY$MKYpCnRqsEzRsq_)0)N0n>62*@VLy3)vs`%YN%vX z=^u)!IB$t_n$nWxPuL%6(^`zr?ijq8e$G7WLl%b04l~ozon9zz7w27(;#I8{XWAS= zb}Kgo;!N&}bQ>2XP0>q&!yTQZYU49{Gjl6jJ}Q zI!vFB-GO5yjVm-C$OuCPJ$YO#`I!hG9`ER&$?(D34B#5O_q(KVKkXG^X!%#@ihraw zMmXOi-K;!OUcs;4D)Hqnqy?}`b>PtE!^qs?6zBk{sfG>mE#K^W|18WFD?Gjzz&?G= zLw9YUG9#G7`ijLfIqlaV19*i5Coot`G6J6ejRW@>i;o(!*qfoUkc@ z^>Yahaj~2~qSM}9kTtZk(C@5}x3*sJ8_loqSq`M^jnlxtE3y(t4Iz80$M5z(6Mdfu zt&jVwE~wSYEzqkFm&M3O^qXM&@LI@o9;;~0D&RA}j)(y=l^V;h$t$ZlGM7cwps$6D zcD2)N%j5aNT<~srILTgGBN`rne>`&)s;uVWP#G0PLj? znpvtyCBa)VR@pKcl92fa&(z~rp!b1~!i^^cT_uAKt8-I)Q34=nmzsV9YC zC`3@A7%#(x#ibTW13SP=T%tr05?EB_)6a>_DIN;%Rm=Dn9u|^9T#cIse6`H zi7D+`H=Ht(wDbPb@F1L{ZJ&h&>u*`EVnPH#U>Frt`JPlyL)@I}A%+oY0f5WBOP~pN z=2xe$+N9Vf*O9y+wgUyxR5Ux{J3dA8Rf#q59EHXc^sH@?xS$)|&a)ju_lNvW4(j|| z({J!KnFZ38=^V>s`m)80a~nqan%p2UT9(W&iILMR2j|`eOGMmA(nv6GgFKw^_5iLp z_1*|`|Hll4+AM^xsu6S#Bz~zp?ve*aRGQR15j;0mVw<(wtG4e*WVYnbK#=`+=lnNt z-AZEbIUHy7cp{(3!!&Kx^@BpVmW7mROnO_Fr4rYWpr=IY;Ni^T%?GXp8~xHpJLVM( zaC4run7&)>$IHJI%G@IP|J;x;YaWd(JktoaFAGR@w)hLHPQ$K3XT!iH`{V{B#bSL{ z@Vf6yS1Zd*q2u(uKjHZD>*P7%?g&rl!1H^eQr=71^LeQN0@=3lUgoFt*ZVUXRjO%I zEj4!nPmSK@)u~@!{s#Zb;Y%r~c+~tZ?$yZvybF0nZr|81*4Dz&0pS7Q8FTovjlPt- z_zSQ1A=ZeRsoWz(i4#~2{5`ns73|*u2+J+i_c9bN3Aw_f$Ph*kv{aKWM6g z>YLT4El&v$oph72o;-eC%DGQ`6EEp>0mLq3yoy4EAW!5CJ7o2|etgTi^!=>-#>%*w z5W*)x&b4#c4Jo6T=pyt^;aK1RD|TYG`5jkWo@LjEG(TVP4p0{A();uLI&DBV5Acp5 z2rggLi&SPEPhX8P?(^lexYs;XpU|5{&e-(qB+c|F!&*0R#s)>~yu7>)w?4o(*4)IV zpQbDJx1(JLi@m)%Te0#c^@;h)__HSXG>N&%3rET8L4TZ~bt8>v0aon8+Rfc=q~OO* zrZ9x_r`p{`W5e&3?`u)dQ;7~`$djOm>Hu>jl=_*qHD2X&kN)|$noRt@XxEoi5R$}S z0<>nOpWB}0Wu&DU4&>`0TKla?W1^L~VXFFvj%lw?i2NzxJnbZ|pc=Kit>{1gHC;}q zzOHh6Dx5)?Lx_LfLwe-I4(U9Ev1%xq%Wt~d3f19!&V6C2tu?kZED3IiX9RkhL|!ix zR9I;M$_o7Au9)QxFi9vT=LHL$u3A9DOX>s((~m&$<$e&~;#Em11p_esxZ%h^+_bmg zRr!?S5N-*T8hW5Ux&{kaZ+Lm@3#gA3dn^l-RfrZxUXqdRrT%2n3DjZ%*FiT<0~;3; z6Nei@f#89=>hCR|*f48g@FNfK40X`0*wv|~S3t4^=^j~sap}+`%pw4jSn>krD7`(N zR>$B5-4rb|8(OO{?-JE%Hy-K8IwVapq60d=!&SHX2DVDAR^MMUF0J&0UCgabZ*BhM z9DrhLGsHf{GXwYwE+;AI){#qsQ%el#3EG6nyPpmQ0OnNDMK{`~MaeQVp@bqAnG@cv zK$cf}EM}F+uBCv;01-N@zku32n_XBKn+U;B z!6k0u>=6-YT%rh%UH z*hb;86*(lviOLoWv%RQK`nOFdA`g!?$aMQ!Xe?{drO`!S$Oa(PFB4F9Z# z)*;{FdD`ltJf3>^8Wt6ZI#XW2jN;I0LQUn|FE~QJ{s1s?o5+XU_fF&oI@(e$rx0MA zKA&aMt=^JWaB9m{1jg$E0xej5XZ(?a{o@yRU{7Opz#W)eRKS?qpE3}i+5Pa~muM$& z3Fy!mU$-JC8kP_sO0qAIqg@i+O0Joiy;u~Nn|q^bE84}piDZ4VH?{iLpkI~c(S!{t zV>AT`O0lQ1Wu4b&wY@z!{6E~<_v7)T-~-0wY6{2?PRnaZh@ghkKCpan>E>URwQF;@ zjM}sYnIArpc0<*Wfr9bK2h>`J9HJ+^p_p~rTaMdpmt7W$9Pne|vcA0*~jwf=0+N2o!61GF5(7O|)fPj>{k9zCv4rs86yO%@5qkJh_ z?V;g`)AQY?Y(~%{ercPIG~Yd{W_8Qy^D!MV`@%p$qM^7Y>Pfww23+1m z(M-kzE}$uRFhc(1>0pJ%ADec?1RFb%XzG<-@+GsvL)#ML&hbpBT{QSN^h=oxe zD}Tz*f6@i#XHru*%GHLS$|IBq^K`&$gJ`r>in_6vmzVR>Hl18fD=A0QtYP~FvM~aw z!d$;JK*#d&_>sLo0(x8vN1gVfH46+l0YcvB<~kvE)p{~`b@}qV>C9k>sjO#ZfhUZs zex$@ykxkOISgx?Tx@qPane&ZgxgPX}7>code#6bc7!_>YZu$%8kw?)5kD~$N6oU77 z5s#{!CK!5*keeeu#OXXzP^f3%l-7M1acLqbc(letjs4GZ+q@U?U1BbaNBdcj2iVW% zmn7(^t*@uZ(F)wLlw%YCcdT@$!~C04Ww{|-?~L51UjYTL9s&I;Zvg1*dlyTLQVc!2 z4e-15n|iv5P6(rWTZCbw)8@E$X}s+bv8EUQ-Z_D;XNy+`=VkQj3yJ4X(ul$n^AtX> zpNk1u@TNFBe=0UjbzKDX%iqx7x)H_dEA(6V^ zAKVA`HR?^7i+&aQ>R9SP_Dg-KUtbTHBxe%MXNZ?3Bt$ukz_q7LE2QxjN5~oN)dPs+ zNvO~9(np{DxOJVdxtZjTmgMRJxjQ12tc4q}Hz()?Us>T%s(%Q)J;~6Rk~$h>lz3?R zc4vxL3=1MMi8Z1O%X-JuaV*En-73|3y_072B&Flvr~iJ2?}jqxuN5Kk zM$SXER=%yd*^hrhp^iPTM3wu^g<8`y50_Ni&%G^dBs}b`?mS|rX+?mFeI}aae}>7k z(9JV}=sT>3S=uW;Cl`vU`Da)Szw~1f?z^lNJAgbv+bFF9Yqrs6HNYeFekBo+AnMJ! zTw4kw5_y8ko&&@jIwMd(FavM&_)eT1W!#GTk4e;^q9~XIO5q0de5uefn?{zZK zyzDNwhs}_7C%oK#FBWt0N{>^)IJ~+5O#g>|vOT`OIO&spfo!*{RVGFEkaay47z^ml z2G71pq6uVRE#|tw^0myqAU0EUd_eo5|97ilBa`Rq>kUL<`)2&`d>TF$a~Ox7Fw>%? zHvH@jaGRyvsSdD(`}mKRb9BA2a~?+9jhis9jKi343Bojp z&onFS5rvJeA^}#EMr1OdbW@k@Z*ffElRs$D;(~xaWOPuOU~ev9&*ENa_WRO+;aBPc z*%vE+%POr|YQP?MiF~p>>{-7wo~uw(iQtuQ=&1_O)(3IgEG)p+Bb1=kqwmiT^mSFK z9ADG@Elm^zD79iwwNVM(!16#ZotfB<70rp=01 zMGZKkz#rcwH=+)g5V%Oe!7!q365>EKVcw4{kvEQK)qb{)d{R07uEe?9zTNWBor%!~ zj|b`_G9CCNuU$0EraANhW}$%Dc6cHxm5=v4=HBf#4MYp8IcftFWN*MLBBwvLS@O#c z03FABUmR~c&Re`3Y+#suq|L}c%fs?!N7SSDD_S}JQ(PG!Z$LX8vowll!A-Cq#*3pg z=J0JK6}1GLQ^d$2Py7FWsXPj}NwJr+M>*j?|J&>(@aYrJxJt#t2?~BoEdRd6gacmx+!*ij znZs)x+4bLV1I5k)#{Cd$c=A6#eFB(%Jl)FKt$&srKGGOo1YlJ=9xI`vc=C@qk-r8o z%N@ZUuc7~`)JzFKpytnr#Qh?sj(+Rm-Ep5g;HesFzRLXPa$z4*d)d3f%WI#&7&+MM z!2FuPE6dKcrmL$Z6wdP=;#hWlF5g3#?H_k^pgD?sNR{oV!tH%6-bjhnRmjwP?OB1)Xyli+;ak}>=5x?1b^D2 zk#qG%mKS@G#EZ%MrK7Ure@VKJzdmhS=c=T24bZkhvcjxJ?Ml{A5J2*kg-I&uEY}_P z+}r3$SM>1O5Ah;8%el$15uNF|jJ0S&T=;a_`g!s)vI*qNpHHc|MxOsxb<5G-sEh{Y zG3uB2mQ6-qHCdXx`pwYB-#SN{+)?JXX2&Bgr}$=PvqS~R@@kS~peT1Jz;O0tsX21V z+XYGjs<{DaNUCPPN{~#V$3kZvR zD}WN!udN#@R~-^rfVd<|ls9UyvZg>MBh=d1 zSjQ{(1`Nz5gXx4K-RpT`jHJZH)dunn_=^NR(>L#^=o+T0S`?pIMg!+Jv%RKp=f&xT zl>2+ro#JEMx3kpZyZ~9*oNOb|^M@g_$d{}vONc}77kuFS6XZd0{pq(iJGNOUG6lH(-B4ayk8MdCt zAtEqTrZZc^WKtRI_#__j=N_pH)9=M2#lq4y_|#Otw%H`jHX8P~cJF`x4Dn$BAxqWr zu*6y%j991l{FkD9NXpWqAE|rpgvokv+ab*~lna`uj_NL^4H* zOf-$)z2Az#6h#+(sk$5lYjO1d2_28_n!L=#AuE9PpNy!_KY6A3ExVw{hRx0j!wCw^IWpJoVOqzEh9B6?-4&KMT>uk=Se1f2_;6H z+@~#EMEoLQZyIYZ~ zf5>3QTOjn_%W>nfrc(@VB4(ulCQqLlCrDerk3cNpD~!kV>V^@T>&@Y8gqI#1=G#9^ z9QrJxYLPwwqrVV(a+Tz_|D8Gp1S%M?otH>PY`tVqVc~*g!E8ag>@G0<&__5Oj@)(AddLz&J&l4*6O4S=2AH_?lonpC0ygG9E)@B0MJ(R zZ2ATvNXf_>GH3K2Wy|FzqO2Y_Z8T>Z##oRnIdghpVGIWpJ!)I4&>0p&YoqzEscn{I z7AzYLLtCv^E@BC`D|b0UM+Vc(%k7lG>{oZ&SkZq@HN9JfsPk1%G>wijPdl;6Ipi~N z+#0k5UBVid!%X}X>ixS+;tm+0C#x1Et*2_u@+3>3N*N%K8v!_!DB`!)(ay! z(JOa-h`?g0&#g}_6)+qf@%}HSzk&t0i}ZZ&%Z}o)<i&T1afI$FCp>36 znj>IgvGf&N%cBI?T}-u2CMFqB9)uBHl?Sg2NO$$X4ejPrTp|E&AARz!W97d7!eXcl zUZby~i0Rny=G-WD?s_55a5s-41Y4Buvp{dm>NqpjUxAlpu+?;Q@ZGDsw8)X11o)eVypKcUZCT(UnU(BS413nI@e=R0|kb!_RU7SyeYAyzLy@C%zT|8<<7 zR_3ONfS?Tb0f90)-yuo|yGmF;31i@#CXl|%9S(&WysCCC%+-%dgr*82dmm6 zX8WES?3Is$bxmzw+8WW^w;j-l+3<@riglNg6I`~ycnA10Hb zrXKclJw^%Zqqmt0_~vIj4SZxa1``b}OGkORb}qbk07Ic6yPY2BDa8UCa0eRzPczz0 zIL%{5Jc?NCD|iK|L+zhJeP7LWn<}0&viXq`2=ty?9)6z6BI&*x&k&_R*Ur~=X*Tpv zTZ{s{;86{3QDbU9PM&9i-2~@v z&V|h1Y7AGcCA`DWu;KKS;y$&}h6mUmjcFQ#$B=3XYy<;#kdw z$Cg(N^No~|XX|u5j84fsG-cVTy=y>9cq3`2jX_(k$hL3Va=?dh8@UG4*UU;DOtEt< z4^0Inh=~ks^6E1=@rb$QI5*~U?UU1G3nBt~$AW7hh8BRlHSOld939mtMgP5vX!Lde z`HVmH=V~BDZ9vCS^5t&Hq&wZE7?oh?V&8SNvQ)6OV@Hl=<~H<^R(+~8F($h)aw8#( zoiemyQ9WRJXE^!XeL=Iu6954;O|XinXSfeE*)zLP6Ij930>e!&`NgL#@`eMWc$ zNC92NrklLkY}f?xNuQQl&XCt_=@&2AI3~%4{Q%l=x^0TO-NU4|n+vrWyQSI|JFu>d zOhB(JGFw1yjF$bO_pi+67!~}o9;{%$QEo4T#WXRob&E1ien(G&Ow2vSa$tbtl1O|O zM@;#>5ARY8_x7R4=BtnGMrxH<>dBd0tJ|$=BRmEpE~|F?C-{rz^ih-ccoG3DL-Oi= zt-}f3eJx35!C{Az8b76_-Ic7FW63Pl{UO94WV17n=;*9arXZ{9u^ukodK$;Gwp}vi z_mUN)wHUdidfmvhwa0v)Ev((pu`!f|2x9A!N?pC^YdAXCoqlffo!z`)^-4v=-j^!K z+{3soR}5n5G6f>P_Bt!sIq<9VPs4_8he2|{{v1uFzL8YYLWWqi)e|K|PQ0qJ{&5Dk zSF3L(4dpI6-@BuqDbW~pQ8H_}_qja#S>X33$jZ!uCK~lqImSm0m=BjN9XVd3{DfMZVqEeLSGp^E)V*i4dqppX^@R!_s zc}L|n;X#h_9g3?+a(dl)V;}N)W7WO-{TXoUv)h)h81Vz~QL;tOt399m(0e8vL#owY z!qr!WE1ZcXs)<(pwMeg0Zx06zn$awCA&c%ISQ=Pne3Rqb{+IV+A9RDDG!&*s3mPmO zxWWt=Q(UWC+1xgp8|nF8ia&v1ygnyEtn z25xW0(T^u$cP$QC)C_s9735Xz=lkU%vRU+lF1bqzL@XS&+!&aA8K4%~rQxn^3`tM(!7MXXDq;?%`3mi~7G(v#j({e3>t{N=L7#nqX^Ohf%$ zy02qr8RnjaIdxO8J3}s@M&FM{^ViI)W|}UJuAeXZP+H2ff5vr3;30%`!MA>z6~g=@ zm>`&4rnBOLxoNn%NjB-06sc|5NZQRLXl0ta(UvmG;4H-!(@N5*3a5teA)r_p=xTX{ zg!PDZBsAF+D#&p%{KEQb4c5rxOw}@Q)b
  • m0CTF?y1sUgNPC#P4#>_4;UyKf+4K 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 literal 0 HcmV?d00001 diff --git a/apps/pdftools/tests/evidence/edit-20261011/receipt.json b/apps/pdftools/tests/evidence/edit-20261011/receipt.json new file mode 100644 index 000000000..9a039187f --- /dev/null +++ b/apps/pdftools/tests/evidence/edit-20261011/receipt.json @@ -0,0 +1,111 @@ +{ + "result": "passed", + "date": "2026-10-11", + "platform": "Linux x86_64 (the build host), weston 14.0.2 headless (pixman, --idle-time=0), Makepad's Wayland backend", + "commit": "c50104da", + "binary": { + "build": "cargo build --locked -p octosense --no-default-features --features app-hub,craft-engines", + "sha256": "412d3570bebd2ca29041ca801b23ebab1bd30d9e25d61d3ea7b6eb7e0845abd8" + }, + "source_sha256": { + "apps/pdftools/bundle/main.splash": "d91831ea9125355df5bdd74f6c8f5b05e58923e745404b2ff29bd64e2a0bc6a0" + }, + "sample": "cargo run --locked -p octosense-pdf-service --example pdftools_fixture -- --edit-sample /apps/os.pdftools/accounts/device/library/Launch flyer.pdf", + "launch": "a fresh OCTOSENSE_HOME (OCTOS_APP_CORE_DIR and MAKEPAD_HOME inside it), MAKEPAD_REMOTE=127.0.0.1:8937, MAKEPAD_WM_TEST_APP=pdftools, on its own weston; one instance; ended with /quit", + "driver": "a scratch driver over the Linux launch of apps/pdftools/tests/ui.py from #495 (Shell, click_page); not in the repository", + "script_budget_ms": 64, + "script_budget_overruns": 0, + "steps": [ + "Home: open Launch flyer.pdf; Edit", + "click the title's first piece (page point 128, 111): Paragraph 2, the five-pieces note, Apply", + "type ' Beta' at its end: the font and room warnings, Apply anyway (e02)", + "Cancel; click the piece 季 (253, 111), type 夏: the red refusal (e03); Apply: the banner repeats it (e04)", + "Cancel; switch to OctoSense dark; the same steps (de01-de04)", + "the title piece again, ' Beta', Apply anyway: the edit made, over 春 and 季 (e05)", + "the Helvetica paragraph (100, 200), ' Lunch is at one.' appended, Apply: made at once (e06)" + ], + "panel_labels_seen": { + "title": [ + "Launch flyer.pdf", + "Pages", + "Outline", + "Comments", + "1 / 1", + "100%", + "Edit text", + "Paragraph 2", + "Font", + "Unnamed font · 27.8 pt", + "Set in Helvetica: this paragraph's font can't show all of this text.", + "Longer than its box: it runs into 2 lines of text nearby.", + "The PDF stores this line in 5 pieces: only this one changes.", + "Alignment", + "Saved", + "80 KB of 64 MB used" + ], + "cjk": [ + "Launch flyer.pdf", + "Pages", + "Outline", + "Comments", + "1 / 1", + "100%", + "Edit text", + "Paragraph 4", + "Font", + "Unnamed font · 27.8 pt", + "PDF Tools can't edit Chinese, Japanese or Korean text yet.", + "The PDF stores this line in 5 pieces: only this one changes.", + "Alignment", + "Colour", + "Its own colour", + "Saved", + "80 KB of 64 MB used" + ], + "dtitle": [ + "Launch flyer.pdf", + "Pages", + "Outline", + "Comments", + "1 / 1", + "100%", + "Edit text", + "Paragraph 2", + "Font", + "Unnamed font · 27.8 pt", + "Set in Helvetica: this paragraph's font can't show all of this text.", + "Longer than its box: it runs into 2 lines of text nearby.", + "The PDF stores this line in 5 pieces: only this one changes.", + "Alignment", + "Saved", + "80 KB of 64 MB used" + ], + "dcjk": [ + "Launch flyer.pdf", + "Pages", + "Outline", + "Comments", + "1 / 1", + "100%", + "Edit text", + "Paragraph 4", + "Font", + "Unnamed font · 27.8 pt", + "PDF Tools can't edit Chinese, Japanese or Korean text yet.", + "The PDF stores this line in 5 pieces: only this one changes.", + "Alignment", + "Colour", + "Its own colour", + "Saved", + "80 KB of 64 MB used" + ] + }, + "findings": [ + "fixed in c50104da: the notes pushed Apply and Cancel out of the card in the 1292 x 662 app area; a card with notes now takes the panel's height, its fields scroll, Apply and Cancel stay at its foot", + "follow-up, older than this change: the edit box over the page is sized at the click and doesn't grow while typing, so a longer draft shows only its last line" + ], + "not_verified": [ + "macOS (another session was running OctoSense on the Mac)", + "a person's eyes on a phone-sized window (desktop only)" + ] +} \ No newline at end of file From dabda6df0d4f461dc97b6f1785211262770f4027 Mon Sep 17 00:00:00 2001 From: ymote <151983+ymote@users.noreply.github.com> Date: Sun, 11 Oct 2026 09:42:48 -0700 Subject: [PATCH 9/9] SERVICE.md: pdf.edit_check, and when an edit keeps its font The coordinator's contract text for #501: pdf.edit_check's arguments and answer, its plain refusals, and the correction that an edited paragraph keeps its own font only when that font can show the new text (otherwise the engine draws a stand-in, which edit_check reports first). Co-Authored-By: Claude Opus 5.5 --- apps/pdftools/design/SERVICE.md | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/apps/pdftools/design/SERVICE.md b/apps/pdftools/design/SERVICE.md index a6f9899a1..f8624ea08 100644 --- a/apps/pdftools/design/SERVICE.md +++ b/apps/pdftools/design/SERVICE.md @@ -130,11 +130,36 @@ Caps: at most 512 pages named in one call. | Method | Arguments | Answer | | --- | --- | --- | | `pdf.edit_text` | `{doc, page, paragraph?, line?, text, align?, color?}` | `{edited: true}`; exactly one of `paragraph` or `line`, numbers from `pdf.lines` | +| `pdf.edit_check` | `{doc, page, paragraph?, line?, text, align?, color?}`, as `pdf.edit_text` | `{keeps_font, font, box, covers, off_page}`: what that edit would do, without making it | `align` (`left`, `center`, `right` or `justify`) and `color` (`#rrggbb`) format -a paragraph and are refused with `line`; the paragraph keeps its font, size -and place. Without `align` its lines are set flush left, and without `color` -it keeps its own; `pdf.lines` reports neither. +a paragraph and are refused with `line`. The paragraph keeps its size and +place, and its own font when that font can show the new text; otherwise the +engine draws it in a stand-in (Helvetica, Times or Courier, bold or italic to +match), which `pdf.edit_check` reports before the edit. Without `align` its +lines are set flush left, and without `color` it keeps its own; `pdf.lines` +reports neither. + +`pdf.edit_check` makes the edit on a copy of the open document (its unsaved +edits included) with the engine's own editor, and drops the copy, so nothing +changes: + +- `keeps_font`: whether the new text is drawn in the paragraph's (or line's) + own font. +- `font`: the font it would be drawn in: its own name (`""` when the PDF + names none, as `pdf.lines` says) or the stand-in. +- `box`: where the edited text would be, `[x, y, w, h]`; `null` when none + would show. +- `covers`: how many other lines of text on the page it would run into that + the paragraph does not touch now. +- `off_page`: whether part of it would fall outside the page. + +It refuses as `pdf.edit_text` would, in the same words. Both refuse an edit +the engine will not make with `invalid:` and words for a person: text no font +the engine has can show ("PDF Tools can't edit Chinese, Japanese or Korean +text yet.", other characters named); a document that opens for reading only, +or whose security settings forbid changes; a paragraph or line number that is +no longer on the page. ## History and saving
  • &9)Y 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