From 3a70e6207825f2282457023c510e6b8cfc2c58b2 Mon Sep 17 00:00:00 2001 From: thomas Date: Fri, 17 Jul 2026 09:48:24 +0800 Subject: [PATCH 01/53] fix(agent-hooks): stop console windows flashing on each Windows hook MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Debug builds are console-subsystem (so println! logging stays visible while developing the GUI), so every `tty7 agent-hook ` process Claude Code spawns for a hook gets its own console window. At end of turn several hooks fire (Stop, SessionEnd, PostToolUse, ...), so a cluster of terminal windows flashes open and vanishes as each tiny emitter runs and exits. The emitter never uses its own console for I/O — stdin is piped and it writes to the agent's console via AttachConsole — so free the throwaway console the instant run_agent_hook starts. With no other process attached, the console and its window are torn down before they can paint. No-op in release (GUI subsystem, no console) and on Unix. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/core/agent_hooks.rs | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/core/agent_hooks.rs b/src/core/agent_hooks.rs index d85f55ca..68ef7c5a 100644 --- a/src/core/agent_hooks.rs +++ b/src/core/agent_hooks.rs @@ -33,6 +33,14 @@ const MAX_STDIN: u64 = 64 * 1024; /// the controlling terminal. Always exits quietly — a hook that fails must /// never break the agent's own flow (agents surface nonzero exits). pub fn run_agent_hook(agent: &str, event: &str) { + // Shed our own console before doing anything else. Debug builds are + // console-subsystem (so `println!` logging works while developing the GUI), + // so every hook process Claude Code spawns gets its *own* console window — + // a rash of terminal windows that flash open and vanish as each end-of-turn + // hook fires. We never use this console for I/O (stdin is piped and we write + // to the *agent's* console via AttachConsole), so freeing it now tears the + // window down before it can paint. No-op in release (GUI subsystem) and Unix. + detach_console(); // Not inside tty7 (or a remote shell): stay silent, so globally-installed // hooks don't leak escape sequences into other terminals. if std::env::var_os(TTY7_ENV_MARKER).is_none() { @@ -54,6 +62,26 @@ pub fn run_agent_hook(agent: &str, event: &str) { write_to_controlling_tty(&build_hook_sequence(agent, event, &input)); } +/// Detach from — and, when we're the only process attached, destroy — the +/// calling process's console. On Windows debug builds each `tty7 agent-hook …` +/// process owns a throwaway console whose window would otherwise flash on +/// screen; freeing it before the window paints removes the flash. The emitter +/// re-attaches to the agent's console via `AttachConsole` when it writes, so +/// this doesn't cost us the output path. No-op where there's no console to free. +#[cfg(not(unix))] +fn detach_console() { + use windows_sys::Win32::System::Console::FreeConsole; + // SAFETY: FreeConsole takes no arguments; it simply returns 0 when the + // process has no attached console (release/GUI builds) and is otherwise a + // clean detach. + unsafe { + FreeConsole(); + } +} + +#[cfg(unix)] +fn detach_console() {} + /// The sentinel event one hook invocation maps onto, or `None` to stay silent. /// Most hooks pass their event through; the exception is Copilot's single /// `notification` hook, which fires for *every* notification type — only From 37a894fc49228a0e4507f69221991a999b8fc47c Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Fri, 17 Jul 2026 14:23:47 +0800 Subject: [PATCH 02/53] feat(tabs): add Mark as Unread to the tab context menu --- src/terminal/view.rs | 34 +++++++++++++++++++++++++++++++--- src/ui/app.rs | 24 ++++++++++++++++++++++++ src/ui/tab_strip.rs | 21 +++++++++++++++++++++ 3 files changed, 76 insertions(+), 3 deletions(-) diff --git a/src/terminal/view.rs b/src/terminal/view.rs index 538d631f..dde827b1 100644 --- a/src/terminal/view.rs +++ b/src/terminal/view.rs @@ -247,6 +247,13 @@ pub struct TerminalView { /// while this is true, so a result you've already seen stops nagging. Blue /// (working) / amber (waiting) are unaffected — they track live state. agent_result_unread: bool, + /// One-shot guard for a manual "Mark as Unread" on the pane the dismissed + /// context menu is about to refocus: closing the menu returns window focus + /// to that pane, and the resulting focus-in would instantly clear the mark + /// the user just made. Armed by [`mark_agent_result_unread`] + /// (Self::mark_agent_result_unread); the next focus-in consumes it instead + /// of clearing, so the mark survives until the user genuinely comes back. + keep_unread_on_focus: bool, /// The cwd this pane's git line reads from (and last scheduled a probe /// for), so the poll loop only reprobes when the working directory /// actually changes. The snapshot itself lives in the process-wide @@ -824,8 +831,14 @@ impl TerminalView { view.focused = true; view.cursor_visible = true; // Looking at the pane marks its finished turn read, so the tab - // avatar's green Done dot clears. - view.agent_result_unread = false; + // avatar's green Done dot clears — unless this focus-in is + // just the context menu handing focus back after a manual + // "Mark as Unread" (the one-shot guard eats it). + if view.keep_unread_on_focus { + view.keep_unread_on_focus = false; + } else { + view.agent_result_unread = false; + } view.report_focus_change(true); cx.notify(); }), @@ -944,6 +957,7 @@ impl TerminalView { agent_turn_started: None, agent_was_rich: false, agent_result_unread: false, + keep_unread_on_focus: false, git_status_cwd: None, cmd: CmdEditor::new(), typeahead: Typeahead::new(), @@ -1028,6 +1042,16 @@ impl TerminalView { self.agent_result_unread } + /// Re-flag this pane's finished turn as unread — the tab context menu's + /// "Mark as Unread". `refocus_incoming` is true for the pane the dismissed + /// menu is about to hand window focus back to (the active tab's focused + /// leaf): that focus-in is the menu closing, not the user reading the + /// result, so it must not clear the mark it just made. + pub fn mark_agent_result_unread(&mut self, refocus_incoming: bool) { + self.agent_result_unread = true; + self.keep_unread_on_focus = refocus_incoming; + } + /// The git snapshot for this pane's cwd (branch + working-tree diff), for /// the sidebar row's branch line — read from the shared per-repo /// [`GitStatusCache`](crate::terminal::git_status::GitStatusCache), so @@ -2549,9 +2573,13 @@ impl TerminalView { match status { Some(AgentStatus::Done) if prev != Some(AgentStatus::Done) => { self.agent_result_unread = !self.focused; + self.keep_unread_on_focus = false; } Some(AgentStatus::Done) => {} - _ => self.agent_result_unread = false, + _ => { + self.agent_result_unread = false; + self.keep_unread_on_focus = false; + } } let rich = session.as_ref().is_some_and(|s| s.rich); diff --git a/src/ui/app.rs b/src/ui/app.rs index 873ab764..bbdc9480 100644 --- a/src/ui/app.rs +++ b/src/ui/app.rs @@ -2471,6 +2471,30 @@ impl Tty7App { } } + /// "Mark as Unread" (tab context menu): re-flag every finished (`Done`) + /// agent turn in the tab as unread, so the avatar's green dot swells back + /// into its count badge until the user next looks at those panes. The + /// active tab's focus target is told the dismissed menu is about to hand + /// focus back to it, so that focus-in doesn't immediately re-read the mark + /// (see `TerminalView::mark_agent_result_unread`). + pub(crate) fn mark_tab_unread(&mut self, index: usize, cx: &mut Context) { + use crate::core::cli_agent::AgentStatus; + let Some(tab) = self.tabs.get(index) else { + return; + }; + let refocus = (index == self.active).then(|| tab.focus_target()).flatten(); + for leaf in tab.pane.leaves() { + let refocus_incoming = refocus.as_ref() == Some(&leaf); + leaf.update(cx, |view, cx| { + if view.agent_session().map(|s| s.status) == Some(AgentStatus::Done) { + view.mark_agent_result_unread(refocus_incoming); + cx.notify(); + } + }); + } + cx.notify(); + } + /// The cwd of the tab's label-driving terminal (focused leaf, else first) — /// what the tab context menu's "Copy Working Directory" copies and "New /// Worktree Tab" derives the repo from. diff --git a/src/ui/tab_strip.rs b/src/ui/tab_strip.rs index 39ef8d12..9d463704 100644 --- a/src/ui/tab_strip.rs +++ b/src/ui/tab_strip.rs @@ -403,6 +403,27 @@ impl Tty7App { } })); + // Mark as Unread — re-arm the avatar's green Done badge so a result + // you want to revisit nags again. Only agent tabs get the entry, and + // only a settled (`Done`) tab has a finished turn to mark; a busier + // status (working/waiting) owns the dot anyway, so the entry disables + // rather than promising a badge that can't show yet. + let tab = this.tabs.get(index); + if tab.is_some_and(|t| t.agent(cx).is_some()) { + let done = tab.and_then(|t| t.agent_status(cx)) + == Some(crate::core::cli_agent::AgentStatus::Done); + menu = menu.item( + PopupMenuItem::new("Mark as Unread") + .disabled(!done) + .on_click({ + let app = app.clone(); + move |_, _window, cx| { + let _ = app.update(cx, |this, cx| this.mark_tab_unread(index, cx)); + } + }), + ); + } + // Worktree: an isolated checkout of this tab's repo on a fresh branch, // opened as a new tab — parallel-agent fuel. Only offered when the // tab's cwd actually sits in a git repository (a filesystem-only From 1cd801e902a432e5bb83c2066b0e58ee33c44f1b Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Fri, 17 Jul 2026 14:57:48 +0800 Subject: [PATCH 03/53] feat(theme): follow the OS appearance with separate light/dark themes Add a "Sync with system" mode: when on, the active theme resolves from two user-picked slots (theme_preset_light / theme_preset_dark) by the current OS appearance and switches live when the OS mode flips. - config: theme_follow_system + theme_preset_light/theme_preset_dark - theme: effective_preset_id() resolver; release the native appearance pin while following (it would blind the OS-appearance reads) - app: observe_window_appearance re-applies the theme on OS flips; set_preset writes the slot matching the current appearance while following; explicit set_slot_preset for the Settings cards - settings: sync switch + one card per slot; the picker panel aims at the slot whose card opened it Closes #107 --- src/core/config.rs | 17 ++++++ src/ui/app.rs | 132 ++++++++++++++++++++++++++++++++++++++++--- src/ui/palette.rs | 3 +- src/ui/settings.rs | 136 ++++++++++++++++++++++++++++++++++++--------- src/ui/theme.rs | 82 ++++++++++++++++++++------- 5 files changed, 313 insertions(+), 57 deletions(-) diff --git a/src/core/config.rs b/src/core/config.rs index 7acd1d40..03d1b5f9 100644 --- a/src/core/config.rs +++ b/src/core/config.rs @@ -42,6 +42,18 @@ pub struct Config { /// `~/.config/tty7/themes/*`); unknown ids fall back to the default theme. The /// native chrome is forced to match the theme's light/dark brightness. pub theme_preset: String, + /// Follow the OS light/dark appearance. When `true` the active theme is + /// resolved from `theme_preset_light` / `theme_preset_dark` by the current + /// system appearance (switching live when the OS mode flips) and + /// `theme_preset` is ignored; the native chrome follows the OS instead of + /// being pinned to the theme. + pub theme_follow_system: bool, + /// Theme id used while `theme_follow_system` is on and the OS is in light + /// mode. Same registry/fallback rules as `theme_preset`. + pub theme_preset_light: String, + /// Theme id used while `theme_follow_system` is on and the OS is in dark + /// mode. Same registry/fallback rules as `theme_preset`. + pub theme_preset_dark: String, /// Global window-opacity override, 0.2–1.0. `None` (the default) follows the /// active theme's own `opacity`; when set it applies to every theme, so a /// chosen translucency survives theme switches. @@ -431,6 +443,11 @@ impl Default for Config { // The default theme id (mirrors `ui::presets::DEFAULT_ID`; core can't // depend on ui). Unknown ids fall back to it anyway. theme_preset: "light".to_string(), + theme_follow_system: false, + // The built-in light/dark pair; each side is user-swappable in + // Settings once "sync with system" is on. + theme_preset_light: "light".to_string(), + theme_preset_dark: "dark".to_string(), window_opacity: None, window_blur: None, keybindings: HashMap::new(), diff --git a/src/ui/app.rs b/src/ui/app.rs index 6a0de650..88b8ae9b 100644 --- a/src/ui/app.rs +++ b/src/ui/app.rs @@ -303,6 +303,10 @@ pub struct Tty7App { /// the same repo shows the just-refreshed branch/diff line, not a stale /// per-row copy. Never read. _git_status_watch: Subscription, + /// Keeps the window-appearance observer alive: while + /// `Config::theme_follow_system` is on, an OS light/dark flip re-resolves + /// the theme slot and repaints. Never read. + _appearance_watch: Subscription, /// `Some` while the command palette overlay is open; `None` when closed. /// The view owns its search input, filtered list and keyboard handling and /// emits a `PaletteEvent`; we build the catalog and run the chosen command. @@ -534,6 +538,24 @@ impl Tty7App { // release; holding ⌘ again re-arms it via `on_modifiers_changed`. this.set_link_modifier(false, cx); }); + // Follow OS light/dark flips live: while "sync with system" is on, an + // appearance change re-resolves the theme slot and repaints. While it's + // off the appearance only ever changes because `apply_theme` pinned it + // to the theme — skip, or the pin would re-trigger a redundant apply. + let this = cx.weak_entity(); + let appearance_watch = window.observe_window_appearance(move |window, cx| { + if !cx.global::().theme_follow_system { + return; + } + apply_theme(Some(window), cx); + let _ = this.update(cx, |this, cx| { + // The editor targets the on-screen theme, and with no global + // override the opacity slider follows it — keep both in step. + this.rebuild_theme_editor(window, cx); + this.sync_window_opacity_slider(window, cx); + cx.notify(); + }); + }); // Paint the configured color theme (defaults to a light one) and build // the menu bar. apply_theme(Some(window), cx); @@ -578,6 +600,7 @@ impl Tty7App { _keystroke_watch: keystroke_watch, _activation_watch: activation_watch, _git_status_watch: git_status_watch, + _appearance_watch: appearance_watch, palette: None, palette_sub: None, closed: Vec::new(), @@ -1079,8 +1102,89 @@ impl Tty7App { /// Switch the active color theme by id, repaint, and persist the choice so /// it survives a restart. The theme carries its own dark/light brightness. + /// While the system is being followed, the choice lands in the slot for the + /// *current* OS appearance (the theme visibly on screen changes either way). pub(crate) fn set_preset(&mut self, id: &str, window: &mut Window, cx: &mut Context) { - cx.global_mut::().theme_preset = id.to_string(); + let dark_now = crate::ui::theme::system_dark(cx); + let cfg = cx.global_mut::(); + if !cfg.theme_follow_system { + cfg.theme_preset = id.to_string(); + } else if dark_now { + cfg.theme_preset_dark = id.to_string(); + } else { + cfg.theme_preset_light = id.to_string(); + } + self.after_theme_change(window, cx); + } + + /// Set the theme for one follow-system slot explicitly (the Light / Dark + /// cards in Settings). Only visibly changes anything when that slot is the + /// one currently on screen; either way the choice is persisted. + pub(crate) fn set_slot_preset( + &mut self, + dark_slot: bool, + id: &str, + window: &mut Window, + cx: &mut Context, + ) { + let cfg = cx.global_mut::(); + if dark_slot { + cfg.theme_preset_dark = id.to_string(); + } else { + cfg.theme_preset_light = id.to_string(); + } + self.after_theme_change(window, cx); + } + + /// Turn "sync with system appearance" on/off (the Appearance switch). + /// Flipping it never visibly changes the theme by itself: turning it on + /// seeds the slot matching the manual theme's own brightness with that + /// theme, and turning it off adopts whatever is on screen as the manual + /// choice. + pub(crate) fn set_theme_follow_system( + &mut self, + on: bool, + window: &mut Window, + cx: &mut Context, + ) { + if on { + let manual = cx.global::().theme_preset.clone(); + let manual_dark = crate::ui::presets::by_id(cx, &manual).dark; + let cfg = cx.global_mut::(); + cfg.theme_follow_system = true; + if manual_dark { + cfg.theme_preset_dark = manual; + } else { + cfg.theme_preset_light = manual; + } + } else { + // Resolve while following is still on (the pin is released, so + // this reads the real OS appearance). + let effective = crate::ui::theme::effective_preset_id(cx); + let cfg = cx.global_mut::(); + cfg.theme_follow_system = false; + cfg.theme_preset = effective; + } + self.after_theme_change(window, cx); + // Re-aim an open picker panel at a slot that exists in the new mode — + // after the apply above, so `system_dark` reads the unpinned OS value. + let slot = if on { + if crate::ui::theme::system_dark(cx) { + crate::ui::settings::ThemeSlot::Dark + } else { + crate::ui::settings::ThemeSlot::Light + } + } else { + crate::ui::settings::ThemeSlot::Manual + }; + if let Some(s) = self.active_settings_mut() { + s.theme_panel_slot = slot; + } + } + + /// The shared tail of every theme-selection change: repaint, persist, and + /// keep the dependent Settings widgets in step. + fn after_theme_change(&mut self, window: &mut Window, cx: &mut Context) { apply_theme(Some(window), cx); set_menus(cx); cx.global::().save(); @@ -1092,10 +1196,21 @@ impl Tty7App { cx.notify(); } - /// Show/hide the theme picker panel beside the Appearance page. - pub(crate) fn toggle_theme_panel(&mut self, cx: &mut Context) { + /// Show/hide the theme picker panel beside the Appearance page. Clicking + /// the card whose slot the open panel already targets closes it; clicking + /// another card re-aims the open panel at that slot. + pub(crate) fn toggle_theme_panel( + &mut self, + slot: crate::ui::settings::ThemeSlot, + cx: &mut Context, + ) { if let Some(s) = self.active_settings_mut() { - s.theme_panel_open = !s.theme_panel_open; + if s.theme_panel_open && s.theme_panel_slot == slot { + s.theme_panel_open = false; + } else { + s.theme_panel_open = true; + s.theme_panel_slot = slot; + } cx.notify(); } } @@ -1121,7 +1236,7 @@ impl Tty7App { /// and open the color editor on it. This is the entry point for customizing a /// read-only built-in (or an imported iTerm scheme). pub(crate) fn fork_active_theme(&mut self, window: &mut Window, cx: &mut Context) { - let id = cx.global::().theme_preset.clone(); + let id = crate::ui::theme::effective_preset_id(cx); let theme = crate::ui::presets::by_id(cx, &id); match crate::ui::presets::fork_to_file(&theme) { Ok(new_id) => { @@ -1142,7 +1257,7 @@ impl Tty7App { window: &mut Window, cx: &mut Context, ) { - let id = cx.global::().theme_preset.clone(); + let id = crate::ui::theme::effective_preset_id(cx); let mut theme = crate::ui::presets::by_id(cx, &id); if !theme.editable() { return; @@ -1184,7 +1299,7 @@ impl Tty7App { /// set, else the active theme's own value, else fully opaque. pub(crate) fn effective_window_opacity(cx: &App) -> f32 { let config = cx.global::(); - let theme = crate::ui::presets::by_id(cx, &config.theme_preset); + let theme = crate::ui::presets::by_id(cx, &crate::ui::theme::effective_preset_id(cx)); config.window_opacity.or(theme.opacity).unwrap_or(1.0) } @@ -1311,7 +1426,7 @@ impl Tty7App { if self.settings.is_none() { return; } - let id = cx.global::().theme_preset.clone(); + let id = crate::ui::theme::effective_preset_id(cx); let theme = crate::ui::presets::by_id(cx, &id); if !theme.editable() { if let Some(s) = self.settings.as_mut() { @@ -3010,6 +3125,7 @@ impl Tty7App { window_opacity_slider, theme_editor: None, theme_panel_open: false, + theme_panel_slot: crate::ui::settings::ThemeSlot::Manual, theme_search, recording: None, rebinding_note: None, diff --git a/src/ui/palette.rs b/src/ui/palette.rs index be95557f..84b8045d 100644 --- a/src/ui/palette.rs +++ b/src/ui/palette.rs @@ -21,7 +21,6 @@ use gpui_component::{ use uuid::Uuid; -use crate::core::config::Config; use crate::core::ssh_profile::parse_quick_connect; /// What a command actually does. Most variants map to an existing `Tty7App` @@ -234,7 +233,7 @@ impl Command { /// preset. The active theme is marked with a check so the list doubles as a /// "which theme am I on?" indicator. pub fn theme_commands(cx: &App) -> Vec { - let active = cx.global::().theme_preset.clone(); + let active = crate::ui::theme::effective_preset_id(cx); crate::ui::presets::all(cx) .into_iter() .enumerate() diff --git a/src/ui/settings.rs b/src/ui/settings.rs index 457fde94..9454da29 100644 --- a/src/ui/settings.rs +++ b/src/ui/settings.rs @@ -94,7 +94,7 @@ fn settings_search_entries() -> &'static [SearchEntry] { SearchEntry { section: Appearance, title: "Theme", - keywords: "appearance color colours scheme dark light palette background foreground accent", + keywords: "appearance color colours scheme dark light palette background foreground accent sync system os auto follow", }, SearchEntry { section: Appearance, @@ -364,8 +364,11 @@ pub(crate) struct SettingsState { /// theme is read-only (a built-in / import) or the system is being followed. pub(crate) theme_editor: Option, /// Whether the theme picker panel is open beside the content pane - /// (Appearance section only). Toggled from the "Current theme" card. + /// (Appearance section only). Toggled from the theme card(s). pub(crate) theme_panel_open: bool, + /// Which theme choice the open picker panel writes to (see [`ThemeSlot`]). + /// Set by the card that opened the panel. + pub(crate) theme_panel_slot: ThemeSlot, /// Live filter for the theme picker panel's list. pub(crate) theme_search: Entity, /// `Some` while a Keybindings row is capturing a new shortcut: the action @@ -403,6 +406,16 @@ pub(crate) struct SettingsState { pub(crate) _subs: Vec, } +/// The theme choice a picker card / the picker panel targets. `Manual` is the +/// single `Config::theme_preset` (sync-with-system off); `Light` / `Dark` are +/// the two follow-system slots (`Config::theme_preset_light` / `_dark`). +#[derive(Clone, Copy, PartialEq, Eq)] +pub(crate) enum ThemeSlot { + Manual, + Light, + Dark, +} + /// The SSH section's right-pane selection (see [`SettingsState::ssh_detail`]). #[derive(Clone, Copy, PartialEq, Eq)] pub(crate) enum SshDetail { @@ -1191,7 +1204,7 @@ impl Tty7App { "Pick a color theme. Each one sets its own light or dark look.", cx, )) - .child(self.render_current_theme(cx)) + .child(self.render_theme_selection(cx)) // Custom-theme management (duplicate / edit colors / open folder) is // *about* themes, so it lives with the picker rather than stranded at // the foot of the page after Cursor. @@ -1266,7 +1279,7 @@ impl Tty7App { }; let config = cx.global::(); let overridden = config.window_opacity.is_some() || config.window_blur.is_some(); - let theme = presets::by_id(cx, &config.theme_preset.clone()); + let theme = presets::by_id(cx, &crate::ui::theme::effective_preset_id(cx)); let opacity = Tty7App::effective_window_opacity(cx); let blur = cx.global::().window_blur.unwrap_or(theme.blur); @@ -1349,7 +1362,7 @@ impl Tty7App { // The theme's current image, for the filename label and the // opacity readout (the slider owns its own thumb position). - let theme = presets::by_id(cx, &cx.global::().theme_preset.clone()); + let theme = presets::by_id(cx, &crate::ui::theme::effective_preset_id(cx)); let image = theme.image.clone(); let image_name = image.as_ref().map(|i| { i.path @@ -3277,11 +3290,39 @@ impl Tty7App { ) } - /// The compact "Current theme" card on the Appearance page: a preview of the - /// active theme beside its kind (built-in vs custom) and light/dark mode, - /// its name, and its six chromatic ANSI swatches; the whole row a click - /// target that opens the picker panel on the right. - fn render_current_theme(&self, cx: &mut Context) -> AnyElement { + /// The theme choice block on the Appearance page: the "Sync with system" + /// switch, then either the single manual-theme card or — while following + /// the OS — one card per light/dark slot. + fn render_theme_selection(&self, cx: &mut Context) -> AnyElement { + let follow = cx.global::().theme_follow_system; + let follow_switch = Switch::new("theme-follow-system") + .checked(follow) + .on_click(cx.listener(|this, on: &bool, window, cx| { + this.set_theme_follow_system(*on, window, cx) + })) + .into_any_element(); + let root = v_flex().child(self.settings_row( + "Sync with system", + "Follow the OS appearance with separate light and dark themes.", + follow_switch, + cx, + )); + if follow { + root.child(self.render_theme_card(ThemeSlot::Light, cx)) + .child(self.render_theme_card(ThemeSlot::Dark, cx)) + .into_any_element() + } else { + root.child(self.render_theme_card(ThemeSlot::Manual, cx)) + .into_any_element() + } + } + + /// One compact theme card: a preview of the slot's theme beside its caption + /// (kind + light/dark mode for the manual card, the slot's role for the + /// follow-system cards), its name, and its six chromatic ANSI swatches; the + /// whole row a click target that opens the picker panel on the right, + /// aimed at this slot. + fn render_theme_card(&self, slot: ThemeSlot, cx: &mut Context) -> AnyElement { let theme = cx.theme(); let border = theme.border; let foreground = theme.foreground; @@ -3289,16 +3330,36 @@ impl Tty7App { let hover_bg = theme.secondary.opacity(0.5); let surface = theme.secondary.opacity(0.28); - let active_id = cx.global::().theme_preset.clone(); + let config = cx.global::(); + let (card_id, active_id) = match slot { + ThemeSlot::Manual => ("theme-card-manual", config.theme_preset.clone()), + ThemeSlot::Light => ("theme-card-light", config.theme_preset_light.clone()), + ThemeSlot::Dark => ("theme-card-dark", config.theme_preset_dark.clone()), + }; let active = presets::by_id(cx, &active_id); let name = active.name.clone(); - let mode = if active.dark { "Dark" } else { "Light" }; // A user file (duplicated or dropped in the themes folder) vs a built-in. let kind = if active.path.is_some() { "Custom" } else { "Built-in" }; + let caption = match slot { + ThemeSlot::Manual => { + let mode = if active.dark { "Dark" } else { "Light" }; + format!("{kind} · {mode}") + } + // The slot cards are captioned by their role; the one matching the + // current OS appearance is the theme actually on screen. + ThemeSlot::Light if !crate::ui::theme::system_dark(cx) => { + format!("Light mode · {kind} · Active") + } + ThemeSlot::Light => format!("Light mode · {kind}"), + ThemeSlot::Dark if crate::ui::theme::system_dark(cx) => { + format!("Dark mode · {kind} · Active") + } + ThemeSlot::Dark => format!("Dark mode · {kind}"), + }; // The six chromatic ANSI slots (red…cyan) as tiny swatches — the part of // a theme the mini preview's few bars can't show, and what actually // distinguishes two same-background themes at a glance. @@ -3311,15 +3372,17 @@ impl Tty7App { .bg(rgb(to_u32(active.ansi16[i]))) })); let preview = self.theme_preview(&active); - let open = self.active_settings().is_some_and(|s| s.theme_panel_open); + let open = self + .active_settings() + .is_some_and(|s| s.theme_panel_open && s.theme_panel_slot == slot); div() - .id("current-theme") + .id(card_id) .mt_1() .mb_2() .w_full() .cursor_pointer() - .on_click(cx.listener(|this, _, _w, cx| this.toggle_theme_panel(cx))) + .on_click(cx.listener(move |this, _, _w, cx| this.toggle_theme_panel(slot, cx))) .child( h_flex() .items_center() @@ -3338,12 +3401,7 @@ impl Tty7App { .child( v_flex() .gap_0p5() - .child( - div() - .text_xs() - .text_color(muted_fg) - .child(format!("{kind} · {mode}")), - ) + .child(div().text_xs().text_color(muted_fg).child(caption)) .child( div() .text_sm() @@ -3379,14 +3437,34 @@ impl Tty7App { // as its own surface rather than an extension of the page. let bg = theme.sidebar; - let active_id = cx.global::().theme_preset.clone(); - let (search, query) = match self.active_settings() { + let (search, query, slot) = match self.active_settings() { Some(s) => ( s.theme_search.clone(), s.theme_search.read(cx).value().trim().to_lowercase(), + s.theme_panel_slot, ), None => return div().into_any_element(), }; + let config = cx.global::(); + // Guard against a slot that no longer exists in the current mode (the + // sync switch flipped while the panel was open re-aims it, but stale + // state must still render something sensible). + let slot = match (config.theme_follow_system, slot) { + (false, _) => ThemeSlot::Manual, + (true, ThemeSlot::Manual) => { + if crate::ui::theme::system_dark(cx) { + ThemeSlot::Dark + } else { + ThemeSlot::Light + } + } + (true, s) => s, + }; + let active_id = match slot { + ThemeSlot::Manual => config.theme_preset.clone(), + ThemeSlot::Light => config.theme_preset_light.clone(), + ThemeSlot::Dark => config.theme_preset_dark.clone(), + }; let header = h_flex() .items_center() @@ -3414,7 +3492,11 @@ impl Tty7App { .pb_3() .text_xs() .text_color(muted_fg) - .child("Change your current theme."); + .child(match slot { + ThemeSlot::Manual => "Change your current theme.", + ThemeSlot::Light => "Choose the theme for light mode.", + ThemeSlot::Dark => "Choose the theme for dark mode.", + }); // Plain text input, the same shape the Shell section uses — our own // field, not a bespoke pill. The Input fills its parent, but a percent @@ -3483,8 +3565,10 @@ impl Tty7App { s.child(Icon::new(IconName::Check).small().text_color(foreground)) }), ) - .on_click(cx.listener(move |this, _, window, cx| { - this.set_preset(&click_id, window, cx) + .on_click(cx.listener(move |this, _, window, cx| match slot { + ThemeSlot::Manual => this.set_preset(&click_id, window, cx), + ThemeSlot::Light => this.set_slot_preset(false, &click_id, window, cx), + ThemeSlot::Dark => this.set_slot_preset(true, &click_id, window, cx), })), ); } diff --git a/src/ui/theme.rs b/src/ui/theme.rs index eee5e9e2..936e8202 100644 --- a/src/ui/theme.rs +++ b/src/ui/theme.rs @@ -87,12 +87,37 @@ pub(crate) fn window_background(bg: &presets::ActiveBackground) -> Background { } } +/// Whether the OS is currently in dark mode, as gpui reports it. Only +/// meaningful while the native appearance isn't pinned (see +/// [`sync_native_appearance`]) — a pinned appearance reports the pin, not the +/// OS setting, which is why callers gate on `Config::theme_follow_system`. +pub(crate) fn system_dark(cx: &App) -> bool { + matches!( + cx.window_appearance(), + gpui::WindowAppearance::Dark | gpui::WindowAppearance::VibrantDark + ) +} + +/// The id of the theme that should be on screen right now: the light/dark +/// slot matching the OS appearance while `Config::theme_follow_system` is on, +/// otherwise the manual `Config::theme_preset`. +pub(crate) fn effective_preset_id(cx: &App) -> String { + let config = cx.global::(); + if !config.theme_follow_system { + config.theme_preset.clone() + } else if system_dark(cx) { + config.theme_preset_dark.clone() + } else { + config.theme_preset_light.clone() + } +} + /// The background appearance the window should be *created* with: Blurred when /// the effective theme wants blur, otherwise Transparent — never Opaque, so the /// opacity slider works live (see the comment in [`apply_theme`]). pub(crate) fn background_appearance(cx: &App) -> WindowBackgroundAppearance { let config = cx.global::(); - let theme = presets::by_id(cx, &config.theme_preset); + let theme = presets::by_id(cx, &effective_preset_id(cx)); if config.window_blur.unwrap_or(theme.blur) { WindowBackgroundAppearance::Blurred } else { @@ -100,15 +125,23 @@ pub(crate) fn background_appearance(cx: &App) -> WindowBackgroundAppearance { } } -/// Paint gpui-component's `Theme` from the active color theme (selected by -/// `Config::theme_preset`). The theme's inferred `dark` brightness picks the +/// Paint gpui-component's `Theme` from the active color theme (resolved by +/// [`effective_preset_id`]). The theme's inferred `dark` brightness picks the /// component `ThemeMode`; every shell surface is then derived from the theme's /// background/foreground (see `Theme::neutrals`). Also publishes the /// terminal-facing palette as the `ActivePalette` global so the renderer matches, /// and applies the theme's window opacity/blur. pub(crate) fn apply_theme(mut window: Option<&mut Window>, cx: &mut App) { + let follow = cx.global::().theme_follow_system; + // While following the OS the native pin must be released *before* the + // theme is resolved: `effective_preset_id` reads the system appearance + // through `effectiveAppearance`, which keeps reporting the pinned value + // until the pin is cleared. + if follow { + sync_native_appearance(None); + } + let theme = presets::by_id(cx, &effective_preset_id(cx)); let config = cx.global::(); - let theme = presets::by_id(cx, &config.theme_preset.clone()); let mode = if theme.dark { ThemeMode::Dark } else { @@ -120,8 +153,12 @@ pub(crate) fn apply_theme(mut window: Option<&mut Window>, cx: &mut App) { let opacity = config.window_opacity.or(theme.opacity).filter(|o| *o < 1.0); let blur = config.window_blur.unwrap_or(theme.blur); // Force the native macOS chrome (traffic lights, system menus, scrollbars) - // into the theme's own light/dark mode regardless of the OS setting. - sync_native_appearance(theme.dark); + // into the theme's own light/dark mode regardless of the OS setting — + // only while *not* following the OS, where the chrome should track the + // system (and pinning would blind `system_dark` to OS flips). + if !follow { + sync_native_appearance(Some(theme.dark)); + } let m = theme.neutrals(); let active = theme.active_palette(); @@ -278,8 +315,9 @@ pub(crate) fn apply_cursor_hide_mode(cx: &mut App) { cx.set_cursor_hide_mode(mode); } -/// Force the macOS app appearance to match the active theme's light/dark mode -/// instead of following the OS `Appearance` setting. +/// Pin the macOS app appearance to the active theme's light/dark mode +/// (`Some(dark)`), or release the pin so it follows the OS `Appearance` +/// setting again (`None`, used while `Config::theme_follow_system` is on). /// /// macOS draws the native traffic-light buttons according to the window's /// effective appearance. With a dark tty7 theme on a light-mode macOS, the @@ -289,7 +327,7 @@ pub(crate) fn apply_cursor_hide_mode(cx: &mut App) { /// no setter, so we pin `NSApplication.appearance` ourselves via AppKit. This /// also keeps system menus, context menus and scrollbars in the right mode. #[cfg(target_os = "macos")] -fn sync_native_appearance(dark: bool) { +fn sync_native_appearance(dark: Option) { use objc2::MainThreadMarker; use objc2_app_kit::{ NSAppearance, NSAppearanceNameAqua, NSAppearanceNameDarkAqua, NSApplication, @@ -300,18 +338,20 @@ fn sync_native_appearance(dark: bool) { let Some(mtm) = MainThreadMarker::new() else { return; }; - // SAFETY: reading the framework-provided appearance-name statics. - let name = unsafe { - if dark { - NSAppearanceNameDarkAqua - } else { - NSAppearanceNameAqua - } - }; - if let Some(appearance) = NSAppearance::appearanceNamed(name) { - NSApplication::sharedApplication(mtm).setAppearance(Some(&appearance)); - } + let appearance = dark.and_then(|dark| { + // SAFETY: reading the framework-provided appearance-name statics. + let name = unsafe { + if dark { + NSAppearanceNameDarkAqua + } else { + NSAppearanceNameAqua + } + }; + NSAppearance::appearanceNamed(name) + }); + // `None` here means "inherit from the system" — the AppKit way to unpin. + NSApplication::sharedApplication(mtm).setAppearance(appearance.as_deref()); } #[cfg(not(target_os = "macos"))] -fn sync_native_appearance(_dark: bool) {} +fn sync_native_appearance(_dark: Option) {} From df36292db11987db7a6c5fa1d5574c981fcef25b Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Fri, 17 Jul 2026 15:11:11 +0800 Subject: [PATCH 04/53] test(config): round-trip follow-system fields; docs + comment fixes from review --- docs/features.md | 1 + docs/features.zh-CN.md | 1 + src/core/config.rs | 21 +++++++++++++++++++++ src/ui/app.rs | 9 +++++---- src/ui/settings.rs | 4 ++-- 5 files changed, 30 insertions(+), 6 deletions(-) diff --git a/docs/features.md b/docs/features.md index 05330455..4e42bfa0 100644 --- a/docs/features.md +++ b/docs/features.md @@ -19,6 +19,7 @@ - **Command palette** ⌘ P · scrollback search ⌘ F - **⌘-click links** · desktop notifications · copy on select (opt-in, Settings → Terminal → Clipboard) - **Eight themes, plus your own** — YAML seed themes with solid, gradient, or image backgrounds; iTerm2 `.itermcolors` import; in-app color editor with a background-image picker +- **Sync with system** — Settings → Appearance; pick separate light and dark themes and tty7 follows the OS appearance live (`theme_follow_system`, `theme_preset_light` / `theme_preset_dark` in `config.json`) - **Window opacity & blur** — Settings → Appearance → Window; applies to every theme, *Follow theme* returns to the theme's own `opacity` / `blur` - **CJK / IME input** diff --git a/docs/features.zh-CN.md b/docs/features.zh-CN.md index bba83eae..0a7e2222 100644 --- a/docs/features.zh-CN.md +++ b/docs/features.zh-CN.md @@ -19,6 +19,7 @@ - **命令面板** ⌘ P · 回滚搜索 ⌘ F - **⌘ 点击打开链接** · 桌面通知 · 划选即复制(可选,设置 → 终端 → 剪贴板) - **8 套主题,也能自定义** — YAML 种子主题,背景支持纯色、渐变或图片;可导入 iTerm2 `.itermcolors`;应用内颜色编辑器带背景图选择 +- **跟随系统外观** — 设置 → Appearance;分别选好浅色和深色主题,tty7 随系统深浅模式实时切换(`config.json` 中的 `theme_follow_system`、`theme_preset_light` / `theme_preset_dark`) - **窗口透明与模糊** — 设置 → Appearance → Window;对所有主题生效,*Follow theme* 恢复主题自带的 `opacity` / `blur` - **CJK / 输入法输入** diff --git a/src/core/config.rs b/src/core/config.rs index 03d1b5f9..68cfc5ac 100644 --- a/src/core/config.rs +++ b/src/core/config.rs @@ -851,6 +851,27 @@ mod tests { assert_eq!(back.ssh_profile_frecency.get(&id).unwrap().count, 4); } + #[test] + fn theme_follow_system_defaults_and_round_trips() { + // Old configs (no follow-system keys) must land on off + the built-in + // light/dark pair, so nothing changes until the user opts in. + let cfg: Config = serde_json::from_str(r#"{"theme_preset":"dracula"}"#).unwrap(); + assert!(!cfg.theme_follow_system); + assert_eq!(cfg.theme_preset_light, "light"); + assert_eq!(cfg.theme_preset_dark, "dark"); + assert_eq!(cfg.theme_preset, "dracula"); + + let mut cfg = Config::default(); + cfg.theme_follow_system = true; + cfg.theme_preset_light = "one_light".to_string(); + cfg.theme_preset_dark = "dracula".to_string(); + let json = serde_json::to_string(&cfg).unwrap(); + let back: Config = serde_json::from_str(&json).unwrap(); + assert!(back.theme_follow_system); + assert_eq!(back.theme_preset_light, "one_light"); + assert_eq!(back.theme_preset_dark, "dracula"); + } + #[test] fn font_features_are_optional_and_parse_as_gpui_features() { let cfg: Config = diff --git a/src/ui/app.rs b/src/ui/app.rs index 88b8ae9b..a4fb4435 100644 --- a/src/ui/app.rs +++ b/src/ui/app.rs @@ -1137,10 +1137,11 @@ impl Tty7App { } /// Turn "sync with system appearance" on/off (the Appearance switch). - /// Flipping it never visibly changes the theme by itself: turning it on - /// seeds the slot matching the manual theme's own brightness with that - /// theme, and turning it off adopts whatever is on screen as the manual - /// choice. + /// Turning it off never visibly changes the theme: whatever is on screen + /// is adopted as the manual choice. Turning it on seeds the slot matching + /// the manual theme's own brightness with that theme — so the look only + /// changes when the OS is currently in the *other* mode, where switching + /// to that mode's slot is exactly what the feature promises. pub(crate) fn set_theme_follow_system( &mut self, on: bool, diff --git a/src/ui/settings.rs b/src/ui/settings.rs index 9454da29..f88f1640 100644 --- a/src/ui/settings.rs +++ b/src/ui/settings.rs @@ -360,8 +360,8 @@ pub(crate) struct SettingsState { /// Global window-opacity slider (Appearance's Window section). Shows the /// effective value; dragging sets the config override. pub(crate) window_opacity_slider: Entity, - /// The color editor for the active editable theme, or `None` when the active - /// theme is read-only (a built-in / import) or the system is being followed. + /// The color editor for the effective (on-screen) theme, or `None` when + /// that theme is read-only (a built-in / import). pub(crate) theme_editor: Option, /// Whether the theme picker panel is open beside the content pane /// (Appearance section only). Toggled from the theme card(s). From 3f61bbbc34cd4b374c7a78656af23f3823da90c9 Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Fri, 17 Jul 2026 15:23:58 +0800 Subject: [PATCH 05/53] fix(tray): keep the macOS icon a template image in every state The attention state left template mode to carry the amber badge, which forced the glyph to a hardcoded mid-grey that was illegible on many menu bar appearances. Drop the badge (and the grey recolor) on macOS: the icon now stays a template glyph the system recolors for the bar, and agent status lives in the tooltip and tray menu. Windows/Linux keep the amber corner badge on their colored icon. --- src/ui/tray/icon.rs | 49 +++++++++++++++++++++++++++++++------------ src/ui/tray/mod.rs | 18 ++++++++++------ src/ui/tray/native.rs | 39 +++++++++++++++++++++------------- 3 files changed, 73 insertions(+), 33 deletions(-) diff --git a/src/ui/tray/icon.rs b/src/ui/tray/icon.rs index 1d7c92a6..cde24399 100644 --- a/src/ui/tray/icon.rs +++ b/src/ui/tray/icon.rs @@ -1,12 +1,12 @@ //! Tray bitmap rendering: the bundled SVGs rasterized with `resvg` (gpui's //! own SVG path only yields a tinted alpha mask, so the tray draws its own). //! -//! Two states per platform: +//! Per platform: //! - macOS: the outline terminal glyph (`tray.svg`) as a *template* image — -//! the system recolors its alpha for light/dark menu bars. Attention swaps -//! to a non-template variant: the glyph recolored to a mid-grey that reads -//! on both bar appearances, plus an amber badge (template images can't -//! carry color, so attention opts out of templating). +//! the system recolors its alpha for light/dark menu bars, permanently. +//! Attention never touches the bitmap (template images can't carry color, +//! and leaving template mode made the glyph illegible); the tooltip and +//! menu carry agent status instead (see `native.rs`). //! - Windows / Linux: the colored app icon (`app-icon.svg`); attention //! punches a transparent ring into the corner and fills an amber badge, so //! the badge separates from the orange tile behind it. @@ -37,22 +37,32 @@ const SIZE: u32 = 32; /// The `Waiting` amber, same hue as the in-window status dot /// (`AgentStatus::dot_rgb`). +#[cfg(not(target_os = "macos"))] const AMBER: (u8, u8, u8) = (0xF5, 0x9E, 0x0B); -/// Render the tray icon. `attention` = some agent is blocked on the user. -/// `None` only on a malformed bundled SVG, i.e. never in practice — callers -/// treat it as "no icon change". +/// Render the tray icon: the template outline glyph, always — attention +/// never touches the bitmap, so the icon stays a template image the system +/// keeps legible on any bar. `None` only on a malformed bundled SVG, i.e. +/// never in practice — callers treat it as "no icon change". +#[cfg(target_os = "macos")] +pub(super) fn render() -> Option { + let tree = usvg::Tree::from_data(GLYPH_SVG, &usvg::Options::default()).ok()?; + let mut pixmap = tiny_skia::Pixmap::new(SIZE, SIZE)?; + resvg::render(&tree, fit_center(&tree, SIZE), &mut pixmap.as_mut()); + Some(to_rgba(&pixmap)) +} + +/// Render the tray icon. `attention` = some agent is blocked on the user — +/// stamps the amber badge into the colored app icon. `None` only on a +/// malformed bundled SVG, i.e. never in practice — callers treat it as "no +/// icon change". +#[cfg(not(target_os = "macos"))] pub(super) fn render(attention: bool) -> Option { let tree = usvg::Tree::from_data(GLYPH_SVG, &usvg::Options::default()).ok()?; let mut pixmap = tiny_skia::Pixmap::new(SIZE, SIZE)?; resvg::render(&tree, fit_center(&tree, SIZE), &mut pixmap.as_mut()); if attention { - // macOS attention leaves template mode (color needs real RGB), so the - // glyph must carry its own color: a mid-grey legible on both light - // and dark menu bars. Colored platforms keep the icon's own colors. - #[cfg(target_os = "macos")] - recolor(&mut pixmap, (0x8E, 0x8E, 0x93)); badge(&mut pixmap); } @@ -202,6 +212,7 @@ fn recolor(pixmap: &mut tiny_skia::Pixmap, rgb: (u8, u8, u8)) { /// Stamp the amber attention badge in the top-right corner: first clear a /// slightly larger disc so the badge is ringed by transparency (separating it /// from whatever the glyph or a colored tile puts behind it), then fill. +#[cfg(not(target_os = "macos"))] fn badge(pixmap: &mut tiny_skia::Pixmap) { let s = SIZE as f32; let (cx, cy) = (s * 0.78, s * 0.22); @@ -301,8 +312,20 @@ mod tests { assert_eq!((px[1], px[2]), (0, 0)); } + /// The template glyph renders at the declared size with visible coverage. + #[cfg(target_os = "macos")] + #[test] + fn render_produces_template_glyph() { + let img = render().unwrap(); + assert_eq!((img.width, img.height), (SIZE, SIZE)); + assert_eq!(img.data.len(), (SIZE * SIZE * 4) as usize); + let covered = img.data.chunks_exact(4).filter(|p| p[3] > 0).count(); + assert!(covered > 0, "icon rendered fully transparent"); + } + /// Both tray states render at the declared size with visible coverage, /// and the attention badge actually changes the bitmap. + #[cfg(not(target_os = "macos"))] #[test] fn render_produces_both_states() { let normal = render(false).unwrap(); diff --git a/src/ui/tray/mod.rs b/src/ui/tray/mod.rs index a41d246c..df8b0a0b 100644 --- a/src/ui/tray/mod.rs +++ b/src/ui/tray/mod.rs @@ -1,10 +1,12 @@ //! System tray / menu bar status item. //! -//! The tray is the app's face outside the window: the icon flips to an -//! attention state the moment any pane's coding agent blocks on the user -//! (amber `Waiting`), and the menu lists every agent pane — click one to -//! reveal it — plus window/notification/quit controls. Menu labels are -//! English, matching the native app menus (`ui::theme::set_menus`). +//! The tray is the app's face outside the window: on Windows/Linux the icon +//! flips to an amber-badged attention state the moment any pane's coding +//! agent blocks on the user (`Waiting`); on macOS the icon is a template +//! image that stays calm in every state (legible on any bar) — agent status +//! lives in the tooltip and menu instead. The menu lists every agent pane — +//! click one to reveal it — plus window/notification/quit controls. Menu +//! labels are English, matching the native app menus (`ui::theme::set_menus`). //! //! Platform split (see Cargo.toml for the why): //! - macOS / Windows: tauri's `tray-icon` (NSStatusItem / Shell_NotifyIcon), @@ -90,7 +92,10 @@ pub(crate) struct TraySnapshot { } impl TraySnapshot { - /// Whether any agent is blocked on the user — drives the attention icon. + /// Whether any agent is blocked on the user — drives the attention badge + /// on Windows/Linux (the macOS icon stays calm; the tooltip and menu + /// carry agent status there). + #[cfg_attr(target_os = "macos", allow(dead_code))] pub(crate) fn attention(&self) -> bool { self.agents.iter().any(|a| a.status == AgentStatus::Waiting) } @@ -266,6 +271,7 @@ mod tests { fn attention_follows_waiting_and_tooltip_counts() { assert!(snapshot_with_agent(AgentStatus::Waiting).attention()); assert!(!snapshot_with_agent(AgentStatus::Working).attention()); + assert!(!snapshot_with_agent(AgentStatus::Done).attention()); assert_eq!( snapshot_with_agent(AgentStatus::Waiting).tooltip(), "tty7 — 1 waiting" diff --git a/src/ui/tray/native.rs b/src/ui/tray/native.rs index 5e818250..cecbd24d 100644 --- a/src/ui/tray/native.rs +++ b/src/ui/tray/native.rs @@ -14,8 +14,10 @@ use tray_icon::{Icon, TrayIcon, TrayIconBuilder}; pub(super) struct Backend { tray: TrayIcon, - /// The icon state currently shown, so a snapshot diff that doesn't flip - /// attention skips the bitmap rebuild. + /// Whether the amber badge is currently stamped, so a snapshot diff that + /// doesn't flip attention skips the bitmap rebuild. macOS tracks nothing: + /// its template glyph never changes (see `icon.rs`). + #[cfg(not(target_os = "macos"))] attention: bool, } @@ -37,12 +39,15 @@ impl Backend { } })); + #[cfg(target_os = "macos")] + let img = icon::render()?; + #[cfg(not(target_os = "macos"))] let img = icon::render(false)?; let icon = Icon::from_rgba(img.data, img.width, img.height).ok()?; let tray = TrayIconBuilder::new() .with_icon(icon) - // The calm glyph is a template on macOS (system recolors it for - // the bar); a no-op on Windows. + // The glyph is a template on macOS (system recolors it for the + // bar, in both states); a no-op on Windows. .with_icon_as_template(true) .with_tooltip("tty7") .with_menu(Box::new(build_menu(&TraySnapshot::default()))) @@ -59,24 +64,30 @@ impl Backend { }; Some(Self { tray, + #[cfg(not(target_os = "macos"))] attention: false, }) } /// Push a changed snapshot into the native item: menu always (it's what - /// changed), icon only across an attention flip. + /// changed); on Windows, the badge only across an attention flip. The + /// macOS icon is a template image in every state — the system recolors it + /// for the bar, and it never carries an attention mark (status lives in + /// the tooltip and menu). pub(super) fn update(&mut self, snap: &TraySnapshot) { self.tray.set_menu(Some(Box::new(build_menu(snap)))); let _ = self.tray.set_tooltip(Some(snap.tooltip())); - let attention = snap.attention(); - if attention != self.attention { - self.attention = attention; - if let Some(img) = icon::render(attention) - && let Ok(icon) = Icon::from_rgba(img.data, img.width, img.height) - { - // Attention leaves template mode: the amber badge needs - // its real color (macOS; the flag is a no-op on Windows). - let _ = self.tray.set_icon_with_as_template(Some(icon), !attention); + // Windows: flip the amber corner badge on the colored icon. + #[cfg(not(target_os = "macos"))] + { + let attention = snap.attention(); + if attention != self.attention { + self.attention = attention; + if let Some(img) = icon::render(attention) + && let Ok(icon) = Icon::from_rgba(img.data, img.width, img.height) + { + let _ = self.tray.set_icon(Some(icon)); + } } } } From 4d2094ff90dc731339dab949b83f16dca8cb8569 Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Fri, 17 Jul 2026 15:48:25 +0800 Subject: [PATCH 06/53] test(daemon): poll for the child's exec before asserting its path Command::spawn returns after the fork, possibly before the child has exec'd sleep; until then /proc//exe still points at the test binary itself, so asserting the basename immediately is a race. This intermittently failed the Linux CI job on main (runs 29549626571, 29560431777, 29563049775). Poll process_path for up to 5s and carry the last-seen basename into the failure message. --- src/daemon/spawn.rs | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/daemon/spawn.rs b/src/daemon/spawn.rs index d71fe63f..51aced8a 100644 --- a/src/daemon/spawn.rs +++ b/src/daemon/spawn.rs @@ -528,6 +528,10 @@ mod tests { /// match — this is what keeps a stale pidfile with a recycled pid from /// getting an innocent process killed. Driven with a real `sleep` child: /// alive, path readable, basename `sleep` ≠ the test binary's. + /// + /// `spawn` returns after the fork, possibly before the child has exec'd — + /// until then its executable path still reads as *this* test binary — so + /// the path assertions poll until the exec is visible. #[cfg(any(target_os = "macos", target_os = "linux"))] #[test] fn reap_guard_rejects_a_live_process_of_another_executable() { @@ -538,11 +542,19 @@ mod tests { let pid = child.id() as libc::pid_t; assert!(process_alive(pid), "the sleep child is alive and ours"); - assert_eq!( - process_path(pid).and_then(|p| p.file_name().map(|n| n.to_os_string())), - Some("sleep".into()), - "process_path resolves an arbitrary pid, not just our parent" - ); + let deadline = Instant::now() + Duration::from_secs(5); + loop { + let basename = process_path(pid).and_then(|p| p.file_name().map(|n| n.to_os_string())); + if basename == Some("sleep".into()) { + break; + } + assert!( + Instant::now() < deadline, + "process_path resolves an arbitrary pid, not just our parent \ + (still {basename:?} after 5s)" + ); + std::thread::sleep(Duration::from_millis(10)); + } assert!( !process_matches_own_exe(pid), "sleep must not match the test binary; matching here would mean the reap could kill it" From 6af47dfb5309287f5a3265c69c864fd4e1f6ef04 Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Fri, 17 Jul 2026 16:31:41 +0800 Subject: [PATCH 07/53] =?UTF-8?q?feat(brand):=20"Duo"=20logo=20refresh=20?= =?UTF-8?q?=E2=80=94=20mint=20panes=20mark=20across=20all=20icon=20assets?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace the orange window-and-cursor identity with the "Duo" mark: two offset session panes (mint #3FDD8C behind, ink #17171A in front) with a prompt chevron, on a cream tile following the Big Sur icon grid. - app-icon.svg is the master; app-icon.png, tty7.icns and favicon.ico are re-rendered from it (rsvg-convert + iconutil + PIL) - logo.svg/logo.png/logo@256.png carry the tile-less transparent mark - tray.svg redrawn as the same mark in template form: solid front pane with the chevron masked out, back pane at partial alpha - bare (non-bundled) macOS binaries now set the Dock icon at runtime via NSApplication.setApplicationIconImage, so cargo dev/run shows the logo instead of the generic executable icon - README version badge and the social preview switch to the new brand green; social preview copy re-aligned with the current README slogan --- Cargo.lock | 1 + Cargo.toml | 5 ++++- README.md | 2 +- README.zh-CN.md | 2 +- assets/app-icon.png | Bin 28594 -> 27240 bytes assets/app-icon.svg | 15 ++++++++++----- assets/favicon.ico | Bin 13417 -> 13679 bytes assets/logo.png | Bin 18678 -> 24621 bytes assets/logo.svg | 9 +++++---- assets/logo@256.png | Bin 4001 -> 5345 bytes assets/social-preview.png | Bin 544609 -> 140101 bytes assets/tray.svg | 19 +++++++++++++++---- assets/tty7.icns | Bin 105770 -> 103254 bytes src/main.rs | 35 +++++++++++++++++++++++++++++++++++ 14 files changed, 72 insertions(+), 16 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 50b59989..2ff600ab 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9042,6 +9042,7 @@ dependencies = [ "notify-rust", "objc2 0.6.4", "objc2-app-kit 0.3.2", + "objc2-foundation 0.3.2", "plist", "portable-pty", "reqwest_client", diff --git a/Cargo.toml b/Cargo.toml index bf654808..4cef75ce 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -172,7 +172,10 @@ winresource = "0.1" # so the native traffic-light buttons render in the right light/dark style. [target.'cfg(target_os = "macos")'.dependencies] objc2 = "0.6" -objc2-app-kit = { version = "0.3", features = ["NSApplication", "NSResponder", "NSAppearance", "NSGraphics"] } +objc2-app-kit = { version = "0.3", features = ["NSApplication", "NSResponder", "NSAppearance", "NSGraphics", "NSImage"] } +# NSData feeds the runtime Dock icon for bare (non-bundled) binaries — see +# `set_dock_icon_for_bare_binary` in main.rs. +objc2-foundation = { version = "0.3", features = ["NSData"] } # x11/wayland are the Linux windowing backends; only pull them on Linux. The # Windows backend (`gpui_windows`) and macOS backend are selected by gpui_platform diff --git a/README.md b/README.md index 7352b5cd..15278946 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@
[![CI](https://github.com/l0ng-ai/tty7/actions/workflows/ci.yml/badge.svg)](https://github.com/l0ng-ai/tty7/actions/workflows/ci.yml) -[![Version](https://img.shields.io/github/v/tag/l0ng-ai/tty7?label=version&color=ff8a5c)](https://github.com/l0ng-ai/tty7/releases) +[![Version](https://img.shields.io/github/v/tag/l0ng-ai/tty7?label=version&color=3FDD8C)](https://github.com/l0ng-ai/tty7/releases) [![License](https://img.shields.io/badge/license-Apache--2.0-blue)](LICENSE) [![Discord](https://img.shields.io/badge/Discord-join%20chat-5865F2?logo=discord&logoColor=white)](https://discord.gg/s3dethqz2V) diff --git a/README.zh-CN.md b/README.zh-CN.md index 4ef795ea..91be1423 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -11,7 +11,7 @@
[![CI](https://github.com/l0ng-ai/tty7/actions/workflows/ci.yml/badge.svg)](https://github.com/l0ng-ai/tty7/actions/workflows/ci.yml) -[![Version](https://img.shields.io/github/v/tag/l0ng-ai/tty7?label=version&color=ff8a5c)](https://github.com/l0ng-ai/tty7/releases) +[![Version](https://img.shields.io/github/v/tag/l0ng-ai/tty7?label=version&color=3FDD8C)](https://github.com/l0ng-ai/tty7/releases) [![License](https://img.shields.io/badge/license-Apache--2.0-blue)](LICENSE) [![Discord](https://img.shields.io/badge/Discord-%E5%8A%A0%E5%85%A5%E7%BE%A4%E7%BB%84-5865F2?logo=discord&logoColor=white)](https://discord.gg/s3dethqz2V) diff --git a/assets/app-icon.png b/assets/app-icon.png index 322eb4c73ffef97215195c1660e680e5ac369f45..1dfc4225f05adaf686fae53c6ec1d2fb3df837a8 100644 GIT binary patch literal 27240 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 I=5y(P08$@PCIA2c literal 28594 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 U{Miz%fKC*50{>U;pN@C_4`~`>^8f$< diff --git a/assets/app-icon.svg b/assets/app-icon.svg index 4bccf439..2b53f763 100644 --- a/assets/app-icon.svg +++ b/assets/app-icon.svg @@ -1,6 +1,11 @@ - - - - - + + + + + + + + diff --git a/assets/favicon.ico b/assets/favicon.ico index 0e500f7aed7278c3d2873e62e5abc506b3fbc06f..f4cbfc6dde0c123ea941be5fe73f7ea9cf8866cd 100644 GIT binary patch literal 13679 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 literal 13417 zcmb_@Ra9Kf(&(PSEw~dH+>+pK6Ck(*55XORyTb$s5?q1>ch{hS;O-U(?(Pmj?tJH* z^{@NzuXXOj-7kB3cU5(DS9MwU000O;25@iy_yYlkK>%R>&o9Wo+X@H(zzGHbcJ_a_ z!w><$4+#LE(0{jikO2S%9ROgkf49{z0YLa)wEo?mCkB9M3IGUuuOy9yP6meruw-Q< zRpIY{pm0#(_yE<#vk?G*;$7juJ|pkM2_;Ac6ypY~ ziJ9hjJ+OcBQGKkBo;~ALrwQvY)vk;BHeGWH!A$e*SSM-&gLx z#|b8NkEA-uhSGTm?tLM1-p-IcX?7h-^*!sd{=>6+iZ3@^+~dC^AgRYy%E7Y7fh0uL z#VNxHPxxcb^4=f6XOi~8r3A>nQjmsiOssLBg*;9j~MkLiJylN~%65 zMbgr5hB=^OL4SWM%t3Dc-0hDJY>>=Qs61w2LnoRU!QVntwrMH9z4(cdq!l^X^GUV8 zLAxq-qX3&ei-oYgM+WGqIMx0Hbt->kotG2a#KHsbTnSXcvzbnaC_(J+di zSL5<>_|#Eu{sBs~r~rSJ(WF+84`FLhZ44GC-&Z)mvo9IQB^C{z)cSzmI&Ps4D@`p>>58!d6P`-z| z<6t7`-&|7Z_k+1lcZw5=ojkH({7a(C^U`~iPGk3Ec8ax5UJEQzt$ynf0j&o#ne)fg zd@o-R1J)LQB#5(&odu74X+36upC_%`3LT$RUz;ysoojxqyC(k`&Uc+<^js7|Ug>qF zB$Y+O=Bos}UPj?77@yzDgRg~BLo~)%vn%nKmbX*fpEgl}Y3hlR@23K zFyisNGg1i<>fUK{f7_ONfqJMm@*a`S7S+uX0lA~8Q-S4TYR@5pb3LqrPRCpmF3;*@ z7bWdUUVNaAGT~DJVZNp_MNesb4rivs2E<<3*Yb>ThYAzM|CcY_g}$5F@yYKQZsi;+ znn2Xbz_GufNH9*Hq@uG)P~ozIwpPZV5<&4wC>X z@}RNSf7wg_SX%af?IkVnT?hamzW>i&O3{0tpaHjw7D-FIA5slF5&&E>m#iud_Ud8L zUAd6v-5kg9-t1`xwohLp3#?N2UL@}oa1;hpgj6m}ALdNtk@YBqyL3=+QQxV9%k&~1 zy;j~3r7R^aZMFP7{EFXJDzf97aq*PtIqG@cveS+y-~A=OUC0Hec0Bk-lUwT}U4ym}QKtg2 zyT5lXH?u8vRe_4Ic!Y2%WXj&OhAwq3-`}O_+x89r*aIubPS8iAoMP`& zD8hOrdIp$34ED{B#$Y0rL}u$)|0u!O3l7K*$mNcDLQSS7PKo|IXH={= zVRmfqv#gXJWy@E*B+B@XcBj&m!4}L(1t~P_x>t>aWH1)W(CvMfzqh*~tP~Hfs10nQ zYad@pAqdTGop-3c`!K>hq2L@qP9|?eEsp-wyk%tFH>OMB+{4TxJmvT0(W3Iq_ZiW^ zp0zKLtT-y@7@QMKrf{^Dp?$_U*Y z5iUxIzCPoYSVKf`cCCNf=#wL`yrAA)s3XTbP~ZES64C=<8mO=FmuEf^)kbX(`{nrS zAT#DX34L{Fr2-))-fk^@Fkmi0?tMdb4B>BYfZt`WIU!md&|Q>5~8Qc96Wuw+7PuEpCe_{gg;yDUEXe2V?bI%L8F+8s{Rjgeu{#-Gum4& zNblp!%w|nIoAtAj#zwK&Pj7zwXsrM!TgJpSj1uisy!gF56_R|{HBI9h4-m$Az8J6F zCDx{qHVZ5)tHmmt%;BO5@DZitZoKG`Ohk6=L5&w&(T0x0krzQ?{$M%SjfVO zO!SimZ@4QtoCs0MAa4d0iZn|F*_<{*9W6BiER|&p=ywyLCc|SAypgcD+>2OB?MG zW^VQJ?XD4QM=yss+?`Gen{pXGwUqB~ONKiV2j4rWIalQiLR+|3NQxO~$I9gn-QP+E zIUw>$>;%xfVAN1}#UvNn8v~dh=lxPFf#`)QsjN`aBY+NJi~<2JYf>sJlWwDE5Ql6A zH%96BH`l>G>o9e&zqDRKPRYV)@$KGQe`zfjSnLW#(wkdIQlay4PwYDrI>+YK1%l@Ykf_bjHs{NQ zcx4QeQF?FuX{6W?+drLByt0cqj&=hN`0+0s3Ew`bRT(3F)y>MkIRx2CcrPqFTb^jl zj!m_;c|Sdj-emaSq&a^^M8kW?q!x~~T#7QrQAGw}Kx0wHFFyzsU~+=NC`@*rW87-m zngRuo@@KAz9XbtyW~>$06w6<6_hw||AqhBu$v5e;C>9+<>PRc$M4s7%4(uM zoN~b4%|6PH37P^f9na)NgkyrR)=~q@fJ+%g&PC%LF3qDZ3CEY_8|Y0@D!;Hv@NPu; zzMudB;+WwYPSKl4kXuN`lV!K4fJrED8Lmg~;njDSQkC%gs2-VI!Wu?rtJ?GOH6-4w zqaZH^3MLAuDYSKtS`9EkMaUuE(5FiBpO8`fO+AzlQRit+VBt9YD=db}2AvQ_BW>lC z02X^X=(gCg%R0#JKOVko`EGpf{&B;B__+6oi*wbYF}hwvaw`C~rZoV#q3+C4UB~*S|>cn|EQ$SNTII`5sK zSMBy9*r!lt3&|A)GDDzeMTXYb$Y)J2G&0SZuD?h{Oz!h)Z;XQV5zvJIo&t8u- z7(}U9!zsOA-=#>k)Q_*XiMe~Ti(7goBRNDw{H>I)nJK+q`yjx_ZYi+1fh#`PwT$8c zmWble?n^T&8lq~;z0S!ak670cFmT*){GyY_5zjBe{3MtV)ECSU~P}dMS4G_&caqZ5!#Q| zIMVjaGG{Ncnt+ZkHw(=EW1|7vU`xe+kw^^!J_=>=41<#|Kl8v;PD~Zj*NjYQRwca9 z|NaQphAmzaJlBl~bfy`xTX}gFPIb)%Rxe?fNpG6xNun}i*P7=8A9Tle$&xRZCIqdemg}xB|$2Uk_!;k~)S;<6YW>iK14Bkbt-F(WhK&9)bsE|r8v>GoQ*KJmw+8xR0jpfdYr z7=3LdQ^dvZ54{zmM0)AvDbz%S^tt z{KN)HgpNlTU?)Wwbb`~qM5%qEoON7XKfsI#-{6?bFr_DG+m@dHyqS<$&bZppcF1F0D;*^PP2I+4Bt3x!IA8d1UQ;0HbA@)_H zvK!8Fiil3E-2`}{F>V@Z6X38kI4P=xvdYHKJ12P`hy@&K*yos5yx)8AA0HQCbtE~N zdxCl?uz-r5DXMSPv|S#$$Dhl9&DB4$GU8Z(vhI><2%1b0<_*HTIZ(oM20yl(_4-bd z9L_yuvB;fPV;`;s&gMoU!+UkWP|Pz+gc9~k@w$Oq3O(;IDWzHO0Gek4LEU?osd^am zo^)?S?DJV6b2U05m1vLj-cRU&QN)sf+=~p2AG$qv3yXHF{ic7W|L6!R*RE`%E@lNF z1YHM=yPd1Z7c%(K$;7OtY>AO)&NJEcnEkit6$W=2uzxv?E>WW)0Kg>skJCu^c2J*r z*(YYh*l0iq-#tJGhpICX1OO1Z~6Sn31Gey zaJymAbE>CEa{1FLxQOaZF^F{MsMLu4CP}8XH<#GR*>3jNc1|aM6p!y7yvH`&PwtkT z$3%AA{ZP2cBBgRCEdTv#M2h_?w>3HNmJ9(2^&YYd4vH}?=uAwY=Es_*Ef%k#^6%2; z*trVz;v#@xF#bg|TMjj)ATfE1sjA^l-U+x-Zy_Tdpz&4Uf2rgX)GN-7giw7~ff)@; zIibYtnCczHuppMk^x_-qtAwe2YkWYKJDMKR-T@ z`;H2kgBW#AyFM5hCmhwA_-kj9(t<{jEjT8;088?ejD5O-lgIJTm$h^nO5OUYs7_%w z0vck)%uqwt<}(d;RQp5xCewXHA$03HU~_%Xop!Sn+K=qbtr=rVE7IdM@FS)Cb%{nM z(ByG10?D*3$4w=o#dRu3{yTW_`gK+hn1AYMXm&jJK^JJ04!zB8hIPuPBLg(zqBUgw{X?j{U@pbk=rfa5R+Mgw$NkrfCRR%Z& zO|J;JGQ%0S|u#J43N&v~r=auJ2 z=HJ-FE$S-BH;LrL?ELkfW(U`x(-^J?9;yqsR}&-?$qM;svhiz#L7b}hQ=8NT2iQI{ zx;foooE)km&s){b`mbcakIOeV0vU^ntT!DL5n>CH+ zC0J(kZV#KZzU26h12(l}pQJ1v26WIy$R;d=ntsTQ!g#H~SACj?UqkVuV^RHQY0+0( zcjYLa9ts8p*hhQ1(U5+{1iESf2gE1}f=@mBI{^#`>N>Oludwr;i?nPaIU-xjMLxPA$2wHJCm=g=S%A+tiq3&{ds^m5bNX0yL% zUh}^-JCmu4%d9t{ib2@d8r3%*7dJkura?co{5!s@1;?*x+~~t=ClA>2e_U3B_FSn~ z69bNgg$vjMn+18V6+j4oJj{v`jGUTSz$=fQ-J9d1+uac&I`HThh3C@Ex0IoaJn#{K|lp z>u+&m^NOW^D93V=9sKJyy6sks5Umf>En5*6E z*UZM*ydWO$jW%|-TuHz_<>ADA=$z|s$uf(AjJ$btb7)2OZDv5-2qw`{w-5BeqB6J~2>RwL}1wSdr(NiDx?zYR7RrDXO7`zw! z974A*DTv!+%{6b38@g6nO|6bexo-{+JK;2^dro>E^xy7e-91<7?8a^NokWTad3JC9 z`4hGQE{g7T-|ingEpd*JF$vW3d7FoQZ&vXaxpI;w z_ou%3Cu!l^3jehgzKKxJ^1$&p?)9O>p1rYs9%|D(^%PD+BYII1SahHa8=3$+2z&(I zNMp2bS%MlVUjLio4?s8Sex{u}mu0cv_vG08@fS-c!!HaVJ&<%!G!G^E$pJQ5uA?;N zcbxZS@#ff0^F(0YW&=T8I!Cy*DUFdYiM2)ntAe=w-d97mz}`S-UXKkXY5(NT;p}K# z+NclM{V(GY{cp@{Gy*k`XL>L8bCH9!4@roPWMqB0{T{k0+AhxGDTtxJWC_YFhqDB8 zMERYXRS3gUk;e~Xj~L)qQ>a{u9LzhvN&g6*xQY?!+lj`o-Ft%@>+|$Wf z0Nb~%5}j+EvssJLZJ4Ypv8%8sJT;tyZP#M@%gg>B6V#VunUw5U$ezxhQ%SzcA+oQ< z9X}YUSuMh1<;9lA=0ww*N-U%a3%c{w#`_xmJmn4^HdkdSpH2N2t;O44Bg~*e2ZW(- z^@;G=!l>}-vIh)5o)Hh`m=q#-N6m7Td!R%zgcvP*S&1SDS}<3?`y)AiQn6=GhI3}= zi!l3oWw^O!Q`lvJ<|I+maj9lRJ=NtAlo@h2d#Pm}%?Y|ZO6VzL9ia`(6ntqmX}ysA zu_drF^^WILsgJhy(2>23#o)n0krg|Y^~0ylcbCT`>gGxFT!9sPeNnkQHV@77+#~a? z-^!MB24JJwy0euS#5>4)Wak@Pdm@wHYD1)s#0a+oePQ8Pvh_}tp!*N@aUANvLDk@>sV#z+#dX3Un1DHzuFMqPb z9oF-VZ}LT}s7+~zWwS~o)ly7VKaF_Iu2EbjKvCp%e?y|(% zob+IPSR5S@Ou9R>%N3wD^oZ6CzPVlL$-TFXC>ki!ZjM_cEEdC&_man>mwg4;=LHqO z-l8w{iIeJ&7Y@;dcUZ-qqD}@yvTV0df-VPM*uvxAoYVZEKxnvq-K~Z7(FBuJO@|z3 zIGFu+T`!R$`f2}FVw^ThnZ&M0)+5_Y9aU5;zSoMJxI7pK?)_;#%m{wx9*l9yPrgf| zPqIFs_1^QPkSRyV>_z7Y@)`VOJOswMNc=|anQO*tl|XG8o2->^`uzNA;Bf(C;|BUS zqttdm(lYMLfT@feV39yiL~j-+MSZTko}J@6uqor`#&)QO>J#fC8aZXdSnE8=W)Ys~ zxw&49&|Zra+O{E)OZ4_74X>(jm6Lmowhnh2+cx1hNCYW#LASu#fctaud|Ypc=Bv|C zcwF^an@Q~WgEJ)_wRu<*Tcwp1sQlv^{)J`>EJ5tu7dQ%4P)Gl5|Y{%#G z)*xRkT2DkgA=*!I3}7eG4kfLHncLNI*&e60A5R|4h;}Hdhr~16R$xtBu5Cu40TU$Y zC6TR8tH-ncKd6o<<1+)z^VHvDn$Xw0#fNng$LmV-nf`>(WwtT~s>M1&?12iTHxeO5 zf8QXV5~|v?TbI!?UjCY)U-}&r_cG}`><_4O2Fb(BAg^D-qlP1|`E~UkOjZLd( ziaqJ)DEjqT<^31s_7=+9%d_So30$o*4 zXV>Mc2KIc_S8@DAD2WInl#U5vri-Aa9S|TL74TjX!wDx~`D=P~_xM$2OMh2f{6) zctsF{W)9B}sRU8N>SkuzMiyYRg<0hDttnI=$&epLSL#ipwF~POyxo-F9ZwAPPNJx4 zrq-aK0-QS12Q2MdNK_MnMm*^FdSd_5I!qTWloRzVCs~E4zBzl;!3O9LVaNoJ++aW# zL6E6^zy5eK$QjA{ua&O?W7FD83N#eNfRmrByX84A>LONF>C7Vz2vuV63+nw&nAO-} zbu+051wK&YqDmYT_l(h=zB(dYQ^*T_13O*XNsvd7MuepqaN??pB16XZ^+T09^?}-+ z;hwP%Oa1QEu0X#hAAxu`WeCAaZ8I^=65TSaV2RrN*)?RQJT24~0Xq7+iA?+rqWx)X zEf2zNN^+A&*i0lv^br`Es3iOLlgpc++oqXT9A;Wm(oU;}xuY*MI!G{|+k2Ysx_n^t z2b?B?&sTnius`7q+DrYo^=N=V!zKmlogj>&)SH?!swe~}DV%i7$Iz7#Sgmaa0WlZy zy>I&oS38s|7;CBP{QEs;^^9E^VOZdQ@uK?c1!M_64~017RWpH;<^fGU<30NJ*=Hc! zC=fzZ14E{+Amkd%s4W2v!7*B|X;9C|ZZ)Yqb>LMc_`K~uax~I|AXLrQx-!*ZJiRiK z%zkqkoL^^}izM74z%Re)2IO{T^Jqm=6BOJ&PjfLE?yGs7f99(Dm)zqN|0OGm-$SO4 zscK0|V5;}UYo1>~NZ~e3j=w9i@c{OBfh?;e!0E|#7P@Y49x1)~0dF=;J3N!egh>s~ z&ChI{P=B!K0iz&k2&7xvSn7{bE(+%!9^@Awd>f{usRi|(jQEU+4G2`4;=zU@C`0-+ z@@_NI{EsxGuuXR9VQJnbf|7maK$BFI#HLaXS#15=92cu_6m3yncY^LrgF$!!V z%(_dwFWvn4Bq23FQuOCmLjnFG-^uWa3P!*h=TJrg^-G^R+!c^2=Gi77HPuevuA@V@{~zD3cbKBzMXKD<53zLU)7m z3JyQ0kpOWZsA*KVI-x2aaDFH22S}(-)8w4cJZ&79R7_2$!4m=WcDCox;kbY!D_?a2 zRTs1@!qQ?1Nyc~G-zc0*^ykl90Pco9oT%OjqNy^w9(+}>Xdcp|jPmuVkcA%sf=6ks z8Nnll+$;)IT6cZJH}W>C8BOP)tEdRe#9IRKs$8X1=i-N5HUzzPl08cY_1)4WI}IPg z&gCF<{Nx&`aE8M9D;Ro-oR_M~J2^+x6>f0Ub$v_+QC;YLN z6eoveJwig(90x~Ex*t8z?L>vJP0p7tzcs(F84WJsg1PXefy&Cty6l%1&dOI9Hf@eL zu!aV$tIArCySy!o=lj9BlVT{Hm#)>{YE=N46uT$!jeVQ)Xv2FQovNCe(S6N+=)n#5 zx-^^5R~63`kK6SrcBZ}o#)?m)!1N+B?r7R`B~O9Ts1PB^Q(v9%t%#|j25ql!E9G-j z4%pVQP=8&P90@SoPu*rwpMJ+~H{m5*Z$xaIdckHOlWD2jWj}k;`7WH-P{(&}-wh8} zRi*oAOfKr+%gA5Hj;VvHy(}ZvH?a~vDpL^`naeQZHdWq%s9cXXK*mEAI$!HKeWy>J zw1M?r=vr@*SYPe|OSxT-O9mRi{Mn##@vF9dl0>}lR-wI6jsJt!mZpc*&8Y&g*zoB) zBYwuEr;8r_u|ey|KCi+?7~rwL@k#ihL#cED5|Z3z&X_Ux-prM}z+p`&Zl%5@2bt?x z#ZKl3rkn-g3R>2S$3?%7UBAB>JIa1tL5&w_a+A$__{oN6lX*0akZ||=x3BUjn@p9q zj1@0nB?X#`*YgZ!vk#)w?1F6gNta_C$t^aRgR&Rx(u~(ck=AqS_`Uo4UM&9tG`dB(eqL^okiC0oeDD>kj4M?Pf0vhn%dH zkXo<&jWYecM&}QrCEw?(PUAm4IBwW+H@F{Ltc;U&C72nkMp}=#*^d9butzfN2-dr` zv{x(qg!m}BDDaBvyFFFlb90p#wjauFd~CoZ28!W@ZLZ@&l`x`Dy0^4%SB8}EQ?~aB zN+Tx#C(nNJIJ$I6?jc8}sYn{UqN^TMp`YQ=na!yhaJv%z_3Sudjp;b?ckxH(m6gv+ zA@hW;=4=(1Fz;n%Y3o;K#J&tz$6*?3Asd&+a{3Jn80mj#UzQfU=)+bzh;@i`;Eoco zw^y0_=G*uN5M5Y_&>FJFTYkEBzBnrkvw-kqnNDide11P3{Y5M7v(DIvd}HqrA^=dPa+{SyR_WV6$d%ffAo!zZwTGSdo*tw6Gkpip=#&$PesbSSZg1*y39Ad@$ zd-VLcPMPd~2JLwnyCm$Pg3CZae{JLcCy}hsPryUG0v*=o(=3#2@#I@8?qS>sxxFo2 zx$+TTy}?JO6;pdAK1@wu`fF1O($nta0pU#1CE6`ldJ9p*7#T6w)BUgqWYE^bhL9Ou zifEOMs+gLH%B@o;f_`l`x5->kuguHfQ_uD2qwNo$RNhGk*{ zhSeVo-zzUIl+SC}L-~F?yaOmO-3{f_pY~eqNSsPQOEK|_?2^y-WZz%#<}yqgLHV|w z-vK_24YD`HhMuIwBq>AI{*~l2jPf^pl&WCz8%oY1TIVJjp#HbCi#^vb1HNCU5;$Oz z*@o}OM~mm8FjlakPWls7@2>FEbz#@2vf)70SHx=pA*Xl1q2;tc^6H_6kxahi^_TR> za%2}{Q7uGh{HUy$k9d|reVi*{KN5QFl#9U&-ufmJZ4Y>-bI31c|EYL{w6^G9v1F&& z@^QcT-s-p?7Gi$2>~SpaiVAqDoI`?4}u?xz~)_tKuT zMMeP#O^6AA<4J-5>+f28#(i+q$F;MJTz}G77&-Z3Q<}}=wdjlV#$RW83j}d&L1}sE zh?P0pxS?mKnoC=ezG|4{;EaBX2S+9WBq@6V$T>SQ5F5e)gbGK1pqoZ-{4qTq`uIR? z(3MwyFBG1CxVh6hEVB75{YAxb@C7Ig8m8%nUmDoBlAF@n+m-fEr(ei5g4jU+LB|AW zu>Xg>|9yo22at?3yojfn9hB6w-DbHKE$!%38R<^fI0Vtl5rrOXl&kKSUFUE!Md&75 z!U3R;+0TdQ7%W6s>K?e1Und8@t}|MEUUq9~yaV(zgb74`(y{KwMYPKU(SIMHwKajy z9}H&d4flsKSu5rD*#Y6>3D|PWH6UYCk%oz}1=V?(&f*=dAHW4wo~+B zAVcyL!Kn}NctZQM$gUDfwXLFM-k_*LC z0e7Uu!O;_JpSieeEme(sMg^A^uEr*x<@^32wUd?#%DzZaa8)D!t;t6=86B_d`cYZp z0Oe6sS3k{Umn8knPlNWFyWwD73U&2R?I+oEY!e($z)F^6t~~tsh{(5o0cMxBHEQI! zYrT4Ps7HGqYtgAKmGczWF6!W=B&dW&PdXlX2gd;%{N5%W+v?A?PzjN>JaR*5=|i>r zgb6IJWwbudp5QlnOM;GHsulgHkP{-O@z^UxXl@V^6N8g4%RT`$N9xUsq4?hxeVpZW zR9x@4abJzbSLQ2XwdfyH=qX|DI=lZJ_(5+8h9IaM7M)0Nn$6A{RH}RsM)Q4z>2Kyu zJ#E2W8?KA&vl@Jf$STla80WPUrShEDb-N3mnJYiAXEXnho19-|zHJO!VPvmv6k;H9 zZ)he|Ythk;CgwevZPl}zHPt#|t!P3#{fk&ZTJ{{An9x3!=pPoW>1!Vl>&#Q%(Um;3Rh>NkNGqc^I?zlz(bMw`#Mdq8&CbZGI?qBX}m}?;~jqnZc|F* zRhlqT`k(kXlvJl>*DJv0#!V8g%2HyFpKB~0!~t4oE=SpC3f-8@$d08c#k;gbr83$# zXJ(4EhG8Iem0k z|J`If!are$uF7K9zNW%X3KuL_kEaS{`MV&dg^QLD#tVV5n2bI6vNSSc`$6@9-RJsA zm)6oQ@Mr%n>fS>Yq7X0WDsUY%I`vQGenqXgBoV4<%YacY}ikjH*vf^QuCl@p$%B?#S7 zwhy4*A_m`#cAqY%JfA;zPVj#eG`5U9cj~|_eoNI%hZOTWOx7SxnJJ}Rb%qpHXfdUL zaWC?VD{gQ7QnAMMcoTffIL;ZOMKxLXe{h0csp-du0>w{rs#L(|C@p}SsZxH^ zDu=SXW2>Z;1smY7wPK~CRMSi9p9<22$PqL9FD)mdO#~c8cbdfq;b==`A<;ZF;^t$a z{R1ij$>7Z4jYSc8Q@~ctlT-CsE$5yp0HF|ru_lEV@l+@GD>)Hhyq)t1dq`Kg3KL$( zb-Y>kl_KPGQ@xa#_eZFi9OnpKEJYU=Hrxb)kzq`}Ea1>Rsi?P`AMxD3lA0OOhOnFM zs|(yTZ{Z{x_I{9jb5@YtbgP<+!eOCDr}$R@CQ%UaZqr9G6vd9m1OhM13_l&bfG(Q; z1L{zk+*$-L!6@jEstmudj@6( zH#_ixk#meOUSk=Fr!q=Vqvo)W<{pK=*B@hCSAjNDiaZ}QsMbGKwKOQk`g(}w)Aq9k zD=+m5y79!LiN34_r8ztmYyOv-@tB4!QsZHC0MNF2DR*>@E=!vO8Z2txX5H(016QOL%K@+I)yw*;;8%DQo0sd4U!%r^) zss~~k@nUE}c^{VWo5aasbueAz%=+#k4X?7*l7E0qRatUmcR;_YPY0@FNYIhN>1n*E zHbDuj5Fb|D>q;JDBPAgRTYy47G4Vd8UWCe#po0+w%!IsI3`_zBM3A4rE*N5JTWDH^ z3L}F406rqX*df>Ap|3-8Dg4wSx{dM)iRWCdH2>}4oP9>XZq43nxGhbGtJnYhZRGy| D0SLsE diff --git a/assets/logo.png b/assets/logo.png index 29ee58aa7fb45d7795ab77a82fdabc43050980b9..3c68a106fb2401ca390b94cfa42a9d460af823e8 100644 GIT binary patch literal 24621 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 literal 18678 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 vB+US{K6>y!we - - - + + + + + diff --git a/assets/logo@256.png b/assets/logo@256.png index eb844b0df420c5a0934d6b79946cf12fccf5efe9..9f262685446071c3fc51084ae4b71c489054f0ef 100644 GIT binary patch literal 5345 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 F{{vXzIye9T literal 4001 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 diff --git a/assets/social-preview.png b/assets/social-preview.png index 68636648325c07341900f09e3b1e9d671f00adaf..8a05db4e62f4c4896b3f672a35c9dca41670d4cc 100644 GIT binary patch literal 140101 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≧;;+tGJ_ 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 UX;+TXmK@Q}+R>`W((Bs402(DCjsO4v literal 544609 zcma&NcR1Vs+dfPcZ7Ef?Y85S7o7zEJrGrv!&BPXa#wKQ~_Nv;e)T})tR_qnTUO^D6 zVy8CA)9>%O@8@^lpU*$fKY8Ui-Z^r-k87OQb)DDw3V*Nh>h`Vsw@64xZohf`@&gIU zf4-8F+_?7lxbB}}NkVdmu`ZcsKmNjxM#}8~M$3pWb>WX!Yb* zs&KuRojWnALtDqnr_T2{onRDKA*{xI<{jw;+MVg!!}*pr*kriMo~Q8a2lu9EC}_R@ znU5xNp%aFl1@-8DL>+}XL*?rm>4KqE>icV8#L!bfjle$KJo%v;LpsWnxqN#} zYPW2f1H~dOgQ_$1JeAOk+;L~KGd1V3-l!6d#HsjJbT`#1M8$V|rS=SeCB_OALesZ> zfd~0(PdFNHvk-VJ;yw+eRSlS{F9O>m<9$OzMSP7^DPb-)Rt*pFQwyft-1|jQ<&oAc zYW^ogE0A##k8dGC7LT9vS$O=4O&GwEVGR9H4B()0oTSco8K!+Zw;vpOT-_NJO6L{+2wLx@5i&_gPOxnf1g>?${g;* zc-;CuxZ=*R@=Iu&(zSdVEyv`G(sDTXzHgc8L+uJ2+>KTTQa{L7uSQJ*P>=hv(UqTBUjDm8N-9etYl2pN^(`SZ!+0#XexdW+ ztY17?Evse2rG3o~^dW7Mi*q%U%B9Qq#NEwotBY@=%A>HNanZciL0KrlH2c+NQ$A0V zRGEnOBUZkH;#oQw{ zf6fesRZbZQIyIKI851_ZPGxhY-w?pPFt|V9>T{dDhkABR)ku;mdj9)D(MgSj$p~@9NfriX7ITuC z{Ol&NN9rYPWa)oaW+3>jvK>fGt|%}MYLQ9}^x_RQr(y$=6iy14>No?>DX-Yo5#e%_ zBeEk?MPEF$d8uilqS*L>KP*%eg3t6V3|&MOpH<$^K+|*J6X zl$Eo+mk6^KrZ0uHXIt}bb+SL(rf>#rm;Byle)08Z0W6$CnNcyyap)R~X_2cvxkWKK zB;X4M5OA(2O-mW;c+gmJ`0{WFo3~aLFR&p`WLL4#9$l>8(700r15CWxrWBvx$USB= z^QEc6Fg~z&$*;PLNUdb34Jx!SBY67rd{Ep#JP+sNVVgbTYY({l=5K~h)y*l5sil%; z{0}sE$$gOf;7Hj8?H@rI;bc~*6?eEII4smu&t?VPo=<2w;Z}HrG+#^yPbX1%$jD9& zB)R-jOWuGmdfP^Bfy-roLY!c%5dhcuOuNoI&>1^gmjs zet?%2|Yl0QNgc|){~%g-CeYRK9TuQjbVcUybk#{RZnb(hOtn zyo0>;0giYPzze(OE!kOmK2@?gwR7#I5!NLrd*Tf+ZICfFVhl4QE<;iTSnnYXo9*D+g?QD2JStKEK~*`?j1fvaRerY|-QKQvV_eFJ%60 zV^@MTbR2G&Au;I9da1N(`P)qJweW3Ur@`f_z~5+NMy6;r71zgMRF7$UVGlMHvwI@9 zojK%1>(gZ*C!zS1>I0Pp3CUIsv!M>tb*{Uo<+%#$sw=i%>e;n-7T4e0YmszmzNO2{ zINjXsn5XF(xG(4SpgIu}$|WG}K`ssiG>GRn3-Wx2XK&y>9R7TEPLIPqxR+++_&PV=iL~wLNp?L`m4dCHWy4h1h-Y7` z>lAzQPI>P;OG7s#;AE<(%7Aa9ze11D_F&~B@?u#k{;P*v8Mb=E5rH6_mO|6t-*u%n>n^(i!}Zb-?i3q z@qt{l5p#5-7bZ{k=o`gzf8W}&@x>-78|O6IYwtS!)`_b&TP07@zx`>-!vQC%BKNa+ z9iDSh=1pBnX0hR@CRTs%nAdmH3BuN2Vlw~?fb3>Hk0dx2?5CUPaO#y_P$i9ah#NM~ zcRi^=t~Y-O((l5X*}!-AxNyyS8+SfAHz8dXj9&sgMI_AGI(xSQu0yU=(T}z znOOxL3+cP&XM6Kz`ich<>(zS3t-Csw_CfZ^a6U?H=+~?Vzvw~rTi3@y@Hsj6V6@^h zy#?jVs}0`ttF6AJEybW^b`gU^5!0x(FW zx+we?h(dl45StGS=bMaN>1>zQ^wldQ1){3AD(BkNZ_=$$YjFg5a^WkBQB{+Cw1?>8hKp&;-p0YyGi*w|JirK`4=7ad;!$dz=~KvX02rbT+pn z;rsuZ#s5HNGh>kz2~$+*jY+e-=Hjg!!g5^S{<9JWPip6+$J+Aj$-20l80ajaxGa%s zwqx}#U4tOyU& z`wY&qwea!_s^xleLUIaG^wJ6f!b*8jLgOe-ddO+tsj#%IP3kl|D|u=BF{9MF+7>NX z>bbYI_99DDXT{E|*yxV?)70O{I)CklQ_Zz+@@=>FlysVPlk;}-m*OM6{V>&xqvNkB z`}fTll845hyE#zHCLe7H_Sbr5!tVHvz6G|vZnBQY3e5f4Xr$&soxRU1-J+}+0`5?6 zvi}J4>cN|VNd#kjES7iW+5w9W4om0B+zNatJA7u@;U~F`#tWAy$3k&NS8&VqiSf{~ zZuYt$E`POqvu!DTBt(a3g+%M^#v%JI?>2Li-hb!*i%m-TtD{%G>D)@z5T&xOGPj;= zM~%g|=vx|2u4x0qdfLw>BFrhY)?6Hpqh>!*1 zxZSbr+}?wMov6QcedSF%NY~jic}>}3`X)@FDXDQxvNL8G=Cue_OWQcOhGr2txDGI? zv`9_+F=V&%s5?MlTmy75cluNxbNs+ljjJYTm@=Q=qX7{9(?n!$PC!uZXeK{13>fxu zPruXM7)T+6w`u8f{}YRjw$XL;mhA(V##iHAo)-hwDRnWbxKcDP%<1R;(?0$}pSzn$1 z2x3^0eD1FC&@Oxk^K_$g0{4N)I~^6VE>;ZRoG;_=WGsUAuA{c@ap|IQvJY;R3JtGL zDQs0DjJ}Cia8Rbc%XJ`iQB=nfAWe7H9Xmc(My41Vt&PUf-q>RConNmuXL8%6$uO0H zMM_!Dn4t}`IK|&&F-h-}Fv5Sjdw&3&+<-6m^aSV;V1CMzZR^KhtL~ti?lbYoMai=y zTZ);PAr2#Qy@KdPEQ$B({9!Abaei;lpLgFm->@_^PHvQArLzKy%SW9k&}Z1H(G4iv z1Xj3txgUOsuqdX1x}V0iS(q~mxq3cKXw`Up8e+T4)>Jj$hp;2I?JfReB0`^ZWJ(*Lh+ z%;?(X_1DH@JEx{CyA{lkqvOp(_}>xA%qo7{Fus1Jt;c@VC}L->>d}7XnDNZYi7{-= z;^?zc;W>J$SYBW;_YA)adA3>A1@n)I8frvnFNQzZNV1zEcRd406GWQu*%z+&k@86l z!n&D!mz+-b8K=PXr0)*s`%UEQ$<_x+PXUtl`3fVelG&i_ zhA0C#WTmYAn(@L-@T7_>hV`IK%9ko|gr(`+g5n>8q}r0llD>df%V*xB`%bUq#|@(P zgiteHoa3v6DN~Dr8>)OH3RF3UCfd8FK$NmBX)y4=xd2BNskIS=f!3GxW)+94Mnvq(k7j4d-B1aC{wkC*#)VsU!py*IcQ4L>f9YUIeM*wTW8Y* z*Ml6;`xw>!ga^`8FXOc0+2h^AsFy{Z3L+@Gex23MIFWwB$R821(1?iQjaIuNYZu@* zie}R>F~G}2F|kTM#CAt!Cdim2^JG6e4RVd`x5bDyQ7+ep5Y@x=ZHp`wbl$mh->Yxk zTUHj;ToHs6(hUK(6sKY6!ayEP04H)43Bgo4gaiBP%bZNB;YRDzJM^;OkbH(Psq&fp z3W2@&cx_xcO|DMqk+`PCYm~RO&9J`0%CjEX4mQPA26O^abTs!iUiW%X{0t?%~q zJK68^+qUw+zO0L$vyhuyoHRi*u3LSX&?2MT$4_1vrXX<<;ClGfV@HvFwguuxU_S^_l6uGQ}_a8{rdIjyCNir%#{$j4$?LysYO{`wIOSo3d2PloZ}$9K!v zyqva9?LG>{uh2i^4o+GH!ocu~y>k1reYryg55xUssNviP#y4oq=S3*T<_0>?HshoV z+;v=%UvHaOzp%81duxoJQaay@y%7sk=s39vB>tjC=V^h>Kl=ozqL+e1B1RO#lTupq z5N8^zptdDTc|)T7Je)yYS0-FLwDo8HXf;&7$Tm2O0i4mY)rfewVR0)J&=e&yYx^oI9HVB zW&NL!0QCh-hwx)w%2Emo$>&Hb^W-HdkA`Bh2iR=-F4 z@M)|&L6-$kzMvOpFa8#OES@GH%oP^@Sw%ps!-2CoxPN79)=;3zweRVv&eFaRiA!pV z)u%e$Hq>+DXqn2n42AQ)@K)K$jH0M!KD=Lxb*5^0;*qFSV|o<-7<;OU-$Tl>>;<6P zQx)+ao(wIW{BTg>L5KJPpE+;#6j#=yt`yF9Ae3G>1aPnE%a7)Hd%c;1bZ&i$uMzT$ z>6%6KAT$A3a{i8@Z1+@Lx@{`Hj4mOyrr#4Dy8f*L9E|9co(0g&Iq8?vrepNvzq3N{ z3{e$r&@ls-e1pt?&Pv(T{);@c172#|fPIe+4$S?b6?GO*1$k~N2Qe(YJl*)mG@n}e z8o*3aTj$#VQ!0>3mV=roG7oPxab@_y;S>s=+gyVew0M-7E8US-#;lz6Ty|(9cV}T* zr7HT%L@(E8o`bA2I3u~7&V~gyMfS~IuY*5u4C}H?NkN;Ud|Iv8OZzR2PmVSmG<&r8 z$9f-TJ(Zdl%vBa`Xbm|Y;g7R$v56J6I7Qkijq*BMB|0^^Z3+d}iNoeE^q|zzzWb{X zv*NB#D9;r1-phu8!gUVL3C~*5sU5+p*qMK%hj^Z{6-0UMn&u zd6h5z{^^!1%bw6A==v!fVKkk^ADl1{HUU0#9bKIjP?g_$mn0=7YSAIHUe!nm5CkTM%eD&5Tj;*tWX8U#%}Evgl#9DxI8;17nc;S_;Yvf{Z7WDm3si( z@O^34Ay;)tf**XV(9El@r1X$Yu6Lp2!p?hT`l>sM?=ybY#lLSAZ(I!?Aa1?At2JWw z+{LnLw_*k51Nx)0ah_a#m#5hktI>n9mbkVa!D(_eT!k zj{HnlchO586AV`3t^%N0AETF)#&lJ*Kgw>9d*@ye8ZTt47Zh|>GZ|?U4}Sa~>q;mw zapCH4B~fbz9hEz`Fr|WLf*odG)E3U#1A@e*O}Qu*{&uP5zInL*jH`B=jk+MakfpI> z;SbfAw4-Z4Ccz8+wslg@YQ!rz>c;W)<+{~T*WzvtwJE0^2Nz>cEmki8DSNiX?SHyL zRjFsM;>GH7{fi&{+)7Thl-msQB+y zbOw4@YApgeUeApUV|#uZv3{DV-V~53F=R?>T7I9)fn&kK0TjRd3ywW1(PLnFUFWm; z+;_Y%;IF~$G#Tz{WW%zH$0V0#!;Z)*I4jvT;Jh;uuo?f)`vfB^Xi5>Z?|`nOJ6o6`7MQ8Cshdd@Bn1iogME}eg(cgnyJO#1kOE*}c$WJ>k;>SJD z{J7!%$}fc_CyCh9z&)){P;-A?bN+^Vilm`5?)bTH+J2$BzSx7fkO06taWa|zN!7nx zk$A4~Du?5JwA%KnOP{!%j=vhmT)(9Qrs6$vafxBUvF4ej&;+Runx46_z#o0coW>BM zuNCzdTvK3x_l@jcjQk8|nqD1vxZ`kO^uo7p zhpNuMj&rG-rbn@Dm8HW$vh)a8#wbjNc530rp=h4z&KX5EEC;oJU0Fsq7Z!Q*s*a!R9ur`gCY zQXHOL4pOSZffVt;)qpzH_B4%#oZJSL+Z}@@;+OZD>*m)V(5XtP8k|i7i=4AW#{5AP~zRz zNRE$9@*_GsJ^fc}t9X0D$RXvYD51SUy6;Np(7rGAQOeBTQ&u~(kcKV|18p>K0r^m; zeiFO0l+V&~DuKWce4yJcP_HiM>tAm5vj%>w1I|SU8`l0%!o6QBaW$+eIk`=72zSWU z-VBh_mBp|)mv8(6ch3T|1_O*g!&_owsOWhpA7U6+9!)I^XK&_c4z5W51~O&cm*1_w ze?Gn_aXBEQ`CP^+;NnIdch_Q^zIS0=d3d>IDk%7PM7nXfcebVc=lb^f!0Dr5q53Jq zT*IXed}74ZG^B0+;jvbGFIR?3YgD1b$PpKPC4*AWA3?pT{Vv+{nG-AD>ONYjROqw8 z?YVFNszINViXQxu<&eFFeMooZbT<2#87FEHuj^umL1noK^`N^(^x3P&cOdWIj9M0* zYSUuzAMdDB)MSgiHdF+CP&NB3XU=X_;YT7~FFF)T2tnpSIMrP2Nk93zn!?}t+EFQm z*j3l(i%-a`k z9>g^`H{9#Kp_limwXBOuy}1_Yxa~X}&QmFK7fMzjrrn?^N7h~=@$UQC9xH!@B1!Im zNHZVO*3Xze$NcVK?qtA|p`Utvg0~FZ@b!I+Mn)B&cry>OFI5swrgKYjaG@>(;Mw}p zzT6L7rLfV4JbK`$`#=Ghi<|V&n?2f^M{Nj%^dE6s3?&Q~d9Rs-mb}P11UZUHdHASD zy8!=$dx0X2IrdiMNtU#4NNKuSq2e#Tt*BylTG(mZ7p;0J!nD;8AaNwmVHwF$boMJ#C^vic#U|%mb%eZq6}x3-NOp0{nCV?Ptt2MT83tgDzvhjxv692H3;i)iC2_A_E4JDZN7; z`!k_opHdPeF19j5sPwA((MKC|Zlo^8@qt-iP0JEoH4sT-lx>^X68q)n+{3X%z&wai zH?NBS8|@=E3x=A6?E$8#b7cSY<;U$5KD)ft8h2fQ>{5S*?_2*TrP9cOcfZI|hvU_H zgr=v?TZFLb)LR6dFX$;T6z+fWFD1~OBN;egHgw35XDe=Tw> zJDVsS%V0`{9E&^et^X0`iZEN40-8tm>$6Dbtl`4!X+28&K<^z$?TvVlGNbyB)p@V$g6;wM%4 zhsT%t#fdii*|0m+ZZ$vPG2{(ZBWJFC-;{2w1f%7b@5;Ids4c!td#L(c6%q|M{P&?VS5f*c%i+-a-3Y#~ zYPlND50vZaO4td#2iyRoFM}MfM(?K56u4qIU-x4#$OaY3c;umXFahHy(sMv6Q6he3 z4>k^`dX(o&6T{v!+2A21L$I*%H)+kiru{0lP8rS>seZo2;)eRy^vxGILEG(c@t9f4 z6<%+7bJw`WjCurB(*}>9s^s_^>G^KFL@7H$rT#d#{O z`E%sSlqAj?Jga!?)zpSs`a+lwfqJ7G-;dVEebd$`)b}$h3Gi(i+3HUPSdP>5GO1GT z0ph7Cf2sJYAIpepK=Or{4^28KvgLDRID5>#c+km|R1G=Yo%iq-ZWyik8DTyhwGqV% zuw?19$`G;2;OjmcrvKrVwY`tn=a0)UmHK)dqi2nYW9cG4b7?O-#$)-!a!=kU8G$0+ z==ah*Rx;suWpbhXTaiu-%wtz?{!E1>wvNN)TWWWBL&)px;YwI7!yk|;vO3Cm-86F# zjb3+PUASS+HAgz=_``!@k+C94Xm!^#>zlyg3pJ`~B{ic_3HyA_$}O09S!UFDV@DEM zN!dCpN?yr>q#IahQ2BRWds#jIZIFI7Y{G*1bC$%1KsnTkxdq1A0>*yGlB3HMLJMtB_IV@5@`wF!)dSiB(aO z{`E@pYPE>C1Rc@*-WATw`DUP6s*JhxW_1E!*g$3Sv)6hAVC}j*YuSm@>Z@H;1l*^nDu7iAOTcsqc+)gSBK?{gx9X=Yomnp zyiM|&tHpGR>A=qWNH6J`B~{st{K(2KZQ;mv?e&~?S0=QbEjun1L&VRn@9h-ei`oEM^zW3 z`R5a|I>Zl=%2zQPiiC5rNxc0RNg=wZ34Xa#g$)Gs89qylMXVW@Ck^1y2J4IlSwYip z9zLN4&$8G}*VH{MnYt~|hl+x~C5j5c7`j zsCH3owNtWa0nA@=WTbrVi6iRf6BeV1I9qSj-_`FdOA=m?wYuifO8C0co8goD8H4#$ zm%U3$HJ)OOf&tvVk^y%nt}?sGlbt%9(RFo-VK4~lI&&{GnI^WVJmk+!H;R2T3rQW4 zMoT_fEswh{U~%m#+U(qU3kz{N+uS-|hDv$aPxm6jD0&o8Yj5&iLC~aaTc=6hJ4T{s zZoM;!v59HMd;zb%oj|vaUZdQ7r&rBZAvsC=VFT4|EU`}X8ZVsn@EHe)Dzm#ZkK3jTo`JGPF zsEL*dqm;K+U}l=t|Idh~C5I~+_z<$V455CvF>VT#-SrQl+b0%XCrLI{|Yy6v`@tu}x9 zpsBv0 zb;iCTC%He;J9;NSVje4zCE^ylx*HKQR^l$a%By{g$c>fRYe^XF2H0p>YN%nMKqz?& zXpDs~_3Vq5Odp#g$g(H?c6}Ym37{-;M-sjZwfG|5lNinn}f+JCMbf zu!z5V45-#ma|?5xx!WB+Ef42CwR*m)`--~~4G+hf^%~08s-6AbF*@wCQUN`S1ff8s znKCx&PH8y@$?Qic0iq@(xO<#bB2`Ijh`zA5!Of^CJZjtFmS6U7&1WB3QwlCp#(nHa zwOE-*z3b5?B6s^oY*<+{q@5q0KY3y@_#2lCRk7+CB zC=UyUnsdim;lgPuo*$Bv%YGdEiVMrcMPn5_gzK|8ZI1S;rPTrF7C*QhZ1}9PpUR^r zRt=36I+9Wepr7fr`j|h#LeLa2Z$c$Fwg2tt#y*^8_H^4B`0CLc#h3Fmb$a+5rNJ~q zBtVH*6tHn98F1@!{b|Lt%W#00<{+o}UTSueN3z4lXA|=>AxsRq1j_izH{QKk4yRnc zPf)x;J5#9n@Z+{NU#^N9=Tr)tv5?65)CAWV0{5fhNxGr~52?x_6jAS|2PoT&*Pe+1gMRy>H{eCL<^KFd^I2>-@iG`5#=CkjOVOI+BV=29&&C}KHCJ4BhhFg++-byTa($BqjtPAiY;_OZdtvtK z{29x#`?u;kayg(|P3DDht(x7yagYAh5@CY*A_~EZ;ymn18zP_1vENS}X++o^l zpb@hHaaq+9nhU*eu!O>}U(kUA| zZ5-fdM?A&SDx$BUBE2H-*ffO)(v;v%uab=y=Qx%8`-Th2RE~Gg&Z;MOZy+uYk!V^a z!l{@x+qNG?lDXC6G*HZD8tefF1=GlZYK{n_}W!NCsT z9@6b(s_IVTQkqo^Q#JvH5s5)mqwR6ceZg~64gPxv$BIW4Vq3pOC#hDBFJ`rQIZx$k z`R-#;^IL^hB%H+RwT@|(|Luo=JLxplUUo4BvW#2lwAU}sFwi`2P77X#hORwp4*%;J zrC3wK(O$rrYWv7trGuZcKR zv@cjHTWiP&M<}n)3Q5P7O)8Vukn=ZFZ2c9wE!@6p0>%FRCA4?`6nM(|SiD{x60jyu z-J7(9(k~ld|GO_jqNL4fnk5mfh$}zX+5&%a=cZ6eXYUMdL*y;*3AJcwCu#O0%3ouy ziU`D2i`dyvl8U0Q2Pqd!h?BeNg<`F#8-r?3^vUtn&fZYDalqB9nuD9}0SZk~rN0BW zfHvlXL^K+6auIO0HeDYR(z|CM=sO9d?;-odvHeESlA| zI^E>aRXsR4k#^l4i_E*#H33QtpK z)yWCJY_6T^zey4Kl1rDn9=(XM`Rr$c&2-{oIR0Ebh)8$_)eRarE+j;TwN|Mbx1;jm22lj%_}C{_5}}t3nT%Wi3dX!i(zi49Q9(wI@Em za3}W2{{Kkx8K!(=Y1-5Oli=}?0H$F7^N+OIQ-^VjYXJ+8fL_rr#H*74b13=^r>2nJ z=;GZ(Vc#@?gppx6zef}IV8=TlY;Q!u=k;Z&hhDkO5B)8E;QZTjsJ&YW+WtG&&KHvH z58QR!e($U`BEYF+y$*k)M2ump5@3Q1!ZPNUW$O3wO}-IsF5nUA#$2f(&)eg?8WYg>|J7eIUx@M zMjC~uR2}wsupMbA2PH_rnTMW3_)7kdtlyy*ZN>BHOJ`je4DWf!EHy%Tnx>jsKF41|N0Ca7Dl-v8A#m6v!GD~chy zGra>}fAmwJZ9pzlzE#wJ1-$TZdB4S|yjvcSSpEE78R}|K3_CbsC0$nt{9UIM46ON& zq5y|I*Z6NP;C~2vyT%Xv?|!7G))6Rt0hNBRnyMlH`zKdyX)=$}k9&T1@+h9ENtx{2 zerj;P%$QGdB%`hp{!N|hMo3$=x1LU%YtiIok8Q{`=aO7T%fI8ycNdL0a3DB}R4$gK zd(>DHtqW}qWED{SV5LUWl%*TF z#(nPgFt=@D?z;DpUnF16jm($AUhF!jl76(vORHVL7>_<|(>GY}abOwKJiGD&nFsrB zc{O*k2xOtJyYEp_ozs~+pKgj(+SJkAvYJ*>PBX$io~De_X2W%OL-|Tb_oqlnUW`Gl zPS@io5Rh4am)8C#d(5bCJo|Z>x|D21?|rSM0Gz9te^L`}2kzP^@mcHoFRA?ob*kMU zY{~H-u4$Kg1rN2|gt3;KxpX5`Iq4v=?W`nO=I#Hjtp7&z|CC*&1R;RSaY-^Mff=}U zM(GK;%*7qY)Hn{G1iI4r^;!ix84NYawxN`g6gFpj4OgU$hV}Tl8Px zc0g)T%&fU4d@ceVEhZU)Pz-G3fw9Z}mj^$$@gSR~kjiNqzF5~Y7!koY>;bf8Sz?LI zh$ver!(-3r)2uBo*QSjdFR>_2GjVzm@MBw5E6roU-0^6Oo;H7^2nKP2YoXo;XLv0x zKj{IoWcN!r@?-pogh(r7CTON|n(rDy+dUHPgn;fH`li|FZ@IUuQOvt8)U92>Ox4bC z@oBFJwTjs^l`&4+=x>;hsnSdG<)sr)q45Qy-gr?|<`IeJHKRAgOg-&f+FCdjuILr; z{^nJBb~*@Ck3-ad@favpw4XxC9K?>-^RbJX_KiyfUMN{3&Jp&1`<^HN?tA`+cl>#Q z=aFL-gkvU7GphbUQJEbVNGSGFLpxxCQi*pu&#J09-T5M}92= z`Oj$KNOsfv^3#J%)LwGhe;AvEe&n8giO8P{aTnmP-nZXHxTh8>oNTAq?HAI8q$d}R zzb|f|U&Sh!@jB^N>Zl7xz&JvejV+hr>BFxVu z61_*fzz%&$SHdi&FamziD$aY-v;x4M?6?(W=EAfBeE}g}{feQ14${)=wSB6&} zw}gD@#G+{IPC622@5@3)#f?)C{u6u9#ej>yRGh=A;$|Zs@yP0Gc%unJfFMlQH9cBF z);|cDwobip1i<|^@J*MFk;q505gAKk6=COfYc}q|+JM6hlPD+Vo-p5r1EYYY3uTPK zoTJlx+X*M!Lq=aDvC6^oHGYC*!Ki225Q7&=Q6jyC9iy5ecWk;Vc{8Wgq4 zE{~b|ezgt#r&Igi0@};WQCivF{!}>|6{R)V;Zoe2RKPIcPJhC|mB!X#HN#HysMwlJ zy7{ZJ-ZR3^HbmissZhtOb0oagVAsf@?#1lck__1H=PjV{sqHkQv6ZHx*9!;ck0%o` z82%7SbndKxgZ=~Vgo<+q+UmJYEDbN?&>zM$8>Bex-y?CHH|)x98<)O(1jIwAG_ z(Vezq6qT`ktai`=w)N)+FY7x?iI(AgS%y=j&KuZ#DqiJ>jhKJZR+=2JGipKg%myQY zx~sUn*WO#olN>S$M`_i?yKPyf!mvp3neh0)?+MJ`U3{{mbLy5U@$RKQjRhdyR}0Z< zs{&Zd@>pLa`4>OKqgc*U^i@xU)QkT6|G1B#+2s;E`+`WGv9D}pG7vwxLk2*{$lVa#u$aYk2GyX(YK1W z5Fx*f^^z!%37dtvSijDZ>@~mOY30OoH8+9Pj)9tvc#E#JAB$ENk-rkvN*np6Id!CP z96!o0qd4S9>zxbpmWQRg6}=9^ zBKyq^jdAAxX>vZI~Td@9HMPFC4Ix zig80jyH}T)4-L7whJ*$s2KC=MN=->V*-q`N&XxG5C?Wj8(dPidjAlV)>g{^b*3rVj zm>iu_lfsB!4)jhNgq6WtvV&<1oh61P@fSE8t!})E%t^(pncSdUq)*byJ9N#oUw8}n zXG}4hm)Uu-V-sUI96*EVwKDDc#j0BIj#-D=5fHMWQ87-Q-MuHfp?OM-DeQeQb24ER zJCBUdrHm*r9J3l|tO3^3*}dM5j!CqN-xSXQMUT8fgTuBx8Vc)p702f(pX}Dhc0~ka zSp-@Q(hD(2Y|cjLlIy_0=Wg#0m}ich)!zOIk~;XJzG$uc+62JD&yHXAH&u#1(nb(!vg$P6gT!u z#w`!!n^M{~Mq4@$Dz7cEyeRtyk{v}jr+(V4s0cVoDGQww8aqF+iA1cZ2biiEAEYx( zCYk*ac`MxfO$^8udHodq9I^$^s_`t0d0hGZ0_pJk3HrRjAYj-u z&ID3N&XG-b$YKYz^az?d1=L0Ao0@%e_1&iRJYf5nrTl?pNLvwgRJP`@Ye6Z1F#K3doSF=bLm8@20*0r&aN8h=!ZtyNyTn*2# zRwb*J7SChWtGGRAg+k+Juyp=@#$9v<%n7;{MSS=4u5`6|7`OTv`WFws%6CG0!z>0@ z@AH>a6MZ&1dDg1PzTg|DHSP1jXI&`MCOswQDAr8AOeMPBq|?U+$g_=!o2~J!wMpx< zZGt9jse636QlcsHvm7d_$Hz|(uB7dCC*%v`GIg$Y6$sUNJBzuGDioSOoeS~Oo^~m% zg!q~w;NFT=sHOw9)uX_FMeF0uPz~~}k$!*YCWJpoQ*G^Rf>elpTXbCG1*qml>I7}k zM7U{Y$(@k7;a=LZ{jWLwVOTtubZ^aHxyPmMrZL7eBZ_mdu{5BmyIf{(n|eYA`g8ZU z3UGopM=rm3L_;gHS+)31f{p7!q9f8n+e(b)4^rg`*BP{UcaMHM&4p+6SnS)fRPx^H znSxX`jlkj1nB_Dh@j@s|4#|7cT4H*h!oHZ0d=;QNV^^XSYGHoI1w^C3sJimk#4*~D z{p>Eg-pj!?9_5F3>7aF-l9vjLAhmWN6+SULbGA>y zGf(SQ2fI{=k+u!VObva{*^RrQn=oVNk*}H&-n-JY|0140I$N-C@PQ?<&KadF@D0vd z^|!8F{A<|P#a4j*>k(PEP2_|40>ka2{>nFLjOyt8^LxaHDb3nmS2(JEI3H* z7vp4XxSfqQRHVsgKvi|RvefYM3~T^=29sulIS`#=)kDO_n5U}Q` zDv*5+6jg=aykD@a`;z+1bp$kK8uAs0r|KxOghHu*Z;P%pCN6_|KbMcMo~IG!7q>{U z+3ZRp$X}9dae#v}^D`+s2NK_b%;}pRS#G58mXv5)vS~!0O;1?T9tQ&`2~ngYX+GZX zwmE8R0lcldQ&dIU4NH0I(OnlbNig;!Pq}r_<&U%_+#FRG9ON5({x%8aw;S{?V7k@U zk~e&NmeNhg7b4zzIRhuE6J3<5=#?i29;Y(M*NpselN@`(rirYXD{AKl${2^VB|Qs3 zxc@SolITrv$JB+C`R2tOyS6QkoN6C0TB!l1WwUKsz3}iP*%4pE%Kn41L19hJ?RI?; z$@#50A&+%Cmq1tlL?V-*!tW+JrryvEDMfLk0`;ct=o@3Cd6;LOs8WUJ_h87$*Ud%5 zm3KHQJx0EnEGatEUBY2okj@<0V%P3IZAey5U*Fi)p_kxz;TxMYsk7Wrrdp9v%B_MK zVwH|B6&t}1%}vR%oLybv|IalZfJ3tX<&>iR#u64gMWM}wvxyzlwVpMpKgZ@#>~qy? zy-a+SYJ9SXMajKh z#%FcX#_U#Uu=;%o=^O+ISHJQfMeN^QN}0+D6!**^X;M>wUS})oaNgJ^(!lenvDh(V zEDS)#Ygti6{+aAsi_xx=g_`l_M>G`(ns{?g*pj>^#5J8m z|Ac8!Sg)x~N_5E83m}~_%@S0K|AL<%>!Ba^?zm61NhL;e1xAxQ6H0r@0m3R`E4@@Z z-Bh27_S@g?-%C-YPgb#b-ow;?-m2nlxqP$Zr{>NRsk@QlvEG9Vu;GIL<^uYhe==yd z|0r-WSM1>XG*Qi$Oi$-SX)X4_lT1p8;cNmczA8sy_m)*0ddA}LbovvjPk4tiUAh$N zg{$yeq!70YHDPBuBkAF!HhSFZ&T;LP7sI+Ja{2B+?jvo!l-}vE;`UAni) z7O0z?o&r<0cT~(;zK25tc&aWKcuIb?b%oN)m+46z_wiA_TivFA)|a- z10W`IrntI)rgD;P7X8st#V^~3RexF?{I)X5wj^UYJK+gsTe0Aby$z+wq}ou#FC`?1 zB~|$S;Rs^?^7Uf%O?{+8P|eCEZ=8`!v6AO=-~qSYk7`#vFjb1s9XMkDL8SHr^s$mHHTcgIN9ZMmDqSZgR zEZudok-GL3|9rtXmQ5RkMVRj;>ZSCM!~DclRTpa_n7$l9TJd-dSEh!tgTb)Unyop< zt_3Iq;Q6Zbo9i4{AybYV2hy|gLa)+eX>4Lx4A^Yz4v@)kT4#sC!-{`@t+x)0{eQ@M z3%{oS_5UA4K|w)8N*V+tMt2&7N=bJ!x??nx?h@&kfJltd-AK0zY{2N2hS9L`-TD1) zpZ7VpbN+?rYtL(s=i|B__e;Xb1QLID3BTq%0ieLf>D4A)qIk$z5%F&ZYZ0z2`sHMg zSq2Ejy+Ra4__Q1)j+Hd}qtMJ7d^8!))uzgVVd?Yhs>(u=O#LpD^15p5oA3TeRyF$U zU*KXb$zP7gO<){N`Nbi;P2wX)mA%~uDB9XUft2+6ANt-MMFRyQVnybh?sF zxd^1B*G$!3(hu?wU+&$sfsRkd)Dn?}fa}TaehFS;x!_91yoZtw*Hp4Tg4X|?WMcX4 z{@r;?U~8Ir;YH+5)BAPSBU-kZy$|qG5R752rCHnfmA>{JOlJ@!Gf2Vd@@0eai&jws zpU&r8rjN~_nrRI2nEps@f>rnwY_3EZ%%>YNs{!ozu0r~!;dPzVB(y^Qn0WuvaHtBO z^HYvdS9X)}Mcu5$sjfo90~D91J(_=grP`TDbr(Y%TLyS%*JEzc@Q}FCE7R3Xj@frw zK{zsy_^WFFz;WgX1Gf5dt4=#p%oZ8uR+QttmY) zBO+OzTPh|x7P07LF_WkJx5|0Gp+oDkq>ffhG2Ay(R2_dNWcU)95;~5C{uDj~aB7DU zR!Y!=sEI{m!i~f~6&hZd!sPiKm>>^7FFYwolX=af)`795CPKIsRk)feDu|8+!@CFB z+d^Qbu@Y7ruvL#O@z@7Bz3(-@f@{Nvn;F2FD^soUdBT1S+c!P>PG+N4n6H!$>Y|<2 zVOL#)B8#!*PaM71TKHa4lnyTW=!>`p5>~ZWR0>~wsIN{b(#?Wgzxj;7<7ua_I`6Xm zA6aaUr9LFP%i_vOR~LX<>U0jV3<4^_j=k@72Gs?f(r+av1hP;b)!*#btOC3ke7R2^J4yhwE);qUAZj8rGc;mkU#Eh!%p&Lq}yoya);h#-fT;I%b zZgu;|n0a~lEj6`&n$bN` z#un@#>}FI2#7s5PVqjt8%ZNglb*hun`Ez^ficNaie#7Ns>HJRE*P1(Tamnqu=kpsA zf6ik<_JfCKt`ZNdKPd(cO4!TxmXG|mKatpT!x1-3kEcbCGeNR_rS{T2@7h;YQXgxk zb0_`OY>xqt11HxbYW_bbefGC)g?sa&B2Sq;OW3pe2l0;|AEoOX*)U0JU$<=bB|`_~ zQipfilgZz($bNbF<6hAkjHmHYs?s`*{tGR}R5IUkF`P#FGCen05)I@%Ya)XRn}EFc zLDS$Yw*p{I2DysZ| zmsZ9jv&=ZEdA|v6eEx>AXa61Bw*3zqDfWii`uQabvC91uF_#^a8@;v8`F1)CK{X%x zT#J`yy+T#h$jlzLvTz_pHZCR9>1dK-`cBHxt>W@W0Cny^st` zli2PR=8Xmyq1v`>+p-+xJuCv^v98&A^Urv;)6Fr0DyhOG%_GZjW z;*n}?OA0x;zBPRDctsw|ryuyGJZc+d-EySNcJUwmjnpBb;+q&K|8Kg9*eA(tqJ+5X zXpMI7=9rz;%LJL$>+B)MiL;nY%(gb%hUMbVRLsV2yh`klryZkH0DC_8me#*K!&*_&;QXftQk4YRHs%&|2Nw||)&KKQc>Lb#%bBKoRKUZym&A<* z>$bj_?wghDAvA2jS)dcQfUK3T67xRN$OkIK{wI@x>MA^A3zJ~yu=vs-&9J>fN=I^9 zIm-`Y*s>|iGO$C!4gc^!HhsN0lpwBq!JSxAd%@kcr= z4mcKPc}8CJmM}-ZVmV@lY>4|iB+dv0L^Ut`SXe!0BCD8cJog> z$CukeS{H^QmF;zHZt@qWL#gcAYSOn_rPHH*dthgVqnbEkzLP9yyp%)9g19ZZpRrP7!3)J*{_$|?S!=Fb3IE>8ZEQ~vY%DO z-(Xq_exDb|>*Dfm7X#Hv8lQQplQfzeXfdWGLH(Q9vt)jJ;nR#hcH+j?XmRLfPcWSG zJ-Su-Eq67hXLSb|q`>XiybSG11NJu~9kR7|7n@R`oAnntJ09tKAX3gQYIx+*LEJUqk_& za6)+vv~^KaXRyASam%EApeMKh0VH<|*r!iWJW)Q(jCxWldups-0X0ez()5%R)3T;Gd94 zWmfu>gPjc7VoD+<(mcw2QqO?BPa7QhC~~TQrX^JyQ)KQg>-g+>Ipz<3UaTn>Shl03 zr!}MHk%_#*iNSlw?3Ow4@QQo?tC{_9Y2r(5 zE$x=xnLigKqaN@ea+8LOnzjWx=}thF=T&p@S?_p4?6^qR6;tNau>_c>^y~7O(M>zm zjMt0{E{3B(3$kY{S(>P`jB+ZAF#`d0GiK>83pog8Zz)4dFV2fxxxtKKy{3fln=SW8 z8^$!2 z&75EN5I)26|WO%njS}q?$%5^rKfNpKWAtQID1)CC>&$jSIx+ zZMB2{N2)OW%Wqais3lZoN;imgc#O1Qu7fPt{mS~R_)z zXsuJci&{UW!M;JYdF=5~$ZhOuOT50% zbf$be*G7{zJm!;l2jn1pyRU=3rA4X|Ga=QPWX7s zvlZpLovc6hQS<`%wCI~K$JESmg}Z9_=b;-dE*UHRaCMlNq1K`f^VgNYp!J8%2h%a~ z{R!Eh`X3#>g=sF^2WqmtJxZhL5mUxG9n%`;GT-W*7nYdMC{OeP$IVB@=f##?eFjhY zWO_<(X!;8YS$ZO)kT08zv6ISu6chZ8_vb+wC*N8+-;GIQpz{}JdR_gh2fgwPar^8d z3YUKr=&984Qqgho4|ilT{qVm8n^-+bCDKd@vC&%X zAeX;f6KBb4#F09(r}Z9l9V8ciU85v$klyJMUgFl8VfKFq-n{b}etr#luP19OE5>jt z_`)klNI|2}ug9k`nTrU6z}36t8aEsOwORW|hch{-GFklE zmF*kw)4N}wsCCe@{cVPptNEM$7`HnQD&*cu1C@spB5?5}INd?lbj-BzAfN1d@@iX# zLAk*+dpSRVczhkCsj+_Ehj1c1zRjg%ljUjx7_*s6MX?u2>A3YNxrSWWV6oz? zwQObEH{6JQaBDBnZ;91M2z=eYN3%W75EIu;I}~;5~~Z_!MwZV|YP% zbT8XeiCDDBI9AF#nz)Bd2n;$?Y@oIrT)T4Fdyp88$~7YXyZDTU(=)E=UnkEQ(yM8v zBcJUlrt9UG?}y+ zGtcn<+^uAbyjJq(Z*@k6s@+b&iI7*_z+k09z%Qxi?zq#&l#Zf#?u)Sr6pA7pJ`r4w zj_^0l-0YHh!rWWr+%!}N^vs~S&37)wVRyT^eC|%&w;bLhnb*b#%Fy!@>CnS-#RpO#@_b>-iLuO-o zm#eQD52_~|pb zHPm^wz9=sqK56)RsJ{pMSofY~?h6*#p1hp*cbXAKno~4)uX)<>2wy*lT1iJ#oGn;% z2qtA*Olc=JNS}Vbc_Ti175XqnduiI~q`P5lq906E{*I)y{U*44O=&MtvAhjIZycIy z9<(q_`}^!yY&If&6Bvlt_cL=qysxn9wnHxy6v`DMpBgz*4s@3MWm0j#o45tPOJOK7 z%!EpvX_xox+`BKnLFCZuIV1nyBEv}W#uA;T269lMW|${-^n=!rAWNUhI+e3aY5z!r zRO`r}!D~H_+k!Ypyv2ned68*lu<{47`5x1>YdJe?BsQ;{23jL!UXOWl3{bbgAz9e0 z>q|i&;@ntiHAld-$A_pF1sXQOFnwiB_SC;i7LXswN$HgB$GU?r4f zlwyp4_d-;Lp>uHSUc(*}B-}WZX0oNTMtGhvwa}Ch#l8jN$4+Q_NeZn6vg^dk&a&&)`LY!CY&7Zb6Bov(;ukOxzG|^27W%`tABOX) zgesp%=@a2du+zBF^VQK_f8rRId4(AtJ^9=UHV|<=!=uhLgS;pL%YrW68GmljC=m7+ z&LAjn?_s4I;KVk_R@n(wQ0htlF;NGhUOOWA#XhxNthDxHf%A(h`Sb@})JikPcIzX$ z%Q1(yR&Wf&skm=60g<6)h}FsYTS@Tcx{>V4Ee4^mdV-1WZo%xQ&E@lDdcpCc?XxWV zVr6=O9?63HndIya$Bg|35+LzyzeqrA+jLMKATI|ve=I~S8f}b~*t16Y_}(+ZTeY%J z_g#?)vWY6UabM>{&b!|fb|Z~O9SuJyG>Uz{H>qp-%QnCdr;a_I;M`jo4G3 zprs1*h6{ne=@hS7fD_SE@W%V@tvAW;40i#+kgb%#yOjD^1bT*lSSGy+e>eA8Am88D zWvC==N0UGAM*+;&D2OOt|ztp~w8AL@i$4Uhd{9~vUw|ykVx3q#@Fp+;Ef7Kxp(qtr! zm*EonkcB9!a5P#hF3O`|BKA#=Tv7C|{`G?uUlmi)m?ERLZDM9LeRD;jktSDqfkP9; zO)t1^egLuyKLdYN3!}YSGHfkTg^g+l28=C_TN$!9ophq{`#^_`Ag$OJr$-iK1#hby zdmfeT?a^Qp+y}BRffS1Hi7|f|IelpI#t&rtw`h(%(csm+on8>8At8VAO7sJ*|JR#S z{-9-lvG4oA*mx~&j*s}$XM)fF1D&?2{Tl0E2RPkU8L4ZKh|@7(&<@wTH`B9qqO49B zWZ;-mH=4bL;Tg?)2+T5P>mdHHq^$(p$xlCYVejT)vv%AFpZjeeUu|R59$Sr_*5|sn z_%;thVL1{UKN|+9FfMM%opF2bXydv_lDv9^F?v(k3b$Q-o`}ST+UD92<-38o!PX)% z^)oBCtQc8|3N;0>cw(1El02OYdtni(tx#>=W)|6pI?eCwmja(ue!Q?-kJ$g6D&H7& znq)^N>v(h)Ztf-Hl&&Ztw}z5593n8j@#SE@#C_Oaz458kpjk-?y!uS#&_83}*!mPZ z{WmQz9W&|c_N^)6bgreG5sN8<;1gn$Mw5e-{(UNxZ=}P-P3&h{I=^EoAk!Msz=?7mDo)9fBU z`EDdhDj210zfMg*6&PNdRr-lqwvk8~?3Sn3|3|?0Rg(t$8C+um@%LI1DrKb)sDWXA znU=fP-g|k*ARx=O?9#EziD00hj^&C2#K!eCwS8JT&1pQE*l@!3S0=f%UlMqpx;4MX zr>Ul@n}aB9smHv#NsrE z;yIsbF3r8qi+2Jvh|5}?T$$2hZmK^`0s9#&t0*ZKK$^$%HG&cm@R3dx@Dj$YSGKh${}m2H&F>joj=ReX&t2G^SW+&6IpX zN7<9Oil|g=2T0rg{-uJ`a&_XgaeMtJv|_1C3g6Z=*h&5~x@*wl@aJVNLEwc)9&y0k z^O{q<42J8L!SgD=`M3RIH3~M^;?DB=eE>1xe_$?;X z8%G+_kzQU6xw}_hvJiQ5o0@rwCEZxYvmR>8zX9Dc!PQ=a&^Evb?V^$Q!tvC-o|Qao zo`28v8+xHfzLWZbdq!UAc)P*F*>r}0!qG@$(mQNMZJg3@Q1zfguo7`5;~(DK=>5{< zi2>UZ4F`>cMz7HEF&tmed%ctgTBD1sS1dXK#KPYd+O3-;_q=GCCqXWa9&1`0KpG78 zQXF=FB6Q1JuXba)sXKZQbU*f7HJDq7C(bYNSfM(qMGf&Pmt?i`w&H>2E^4tf-fww| z>Gk1`KWdKE_EMx3iDb6XR{_SGgO8VcL*FcdqbJ_-DE=D;E=97Rc%lncN_f0%k?7%v zKa}JTm#-9skJEbT)>RbMcZo4O+)+5bXn{y%5RNOX2FEpdH3mhre|_^0Rei~Z!v=HfKVU69;gsvcI{5vyI7QQdW9&7EB+vW=MthcyON>xdvGQndXb|Fp#PCJd(BMU_f5- zQ1rvPrXvTm`_{*@t}!F#>x|z49kVR!p@$e9f<~;nDEg zLE~hXo^8K&kg>8!C2EXTAYHfd0me&Aa!Anx^4D%(LS=<_r}m%rdx#9@&CL4J17Z@5@ln#EuZWRTEDSq zj#vzfQU8T?i|3!bU3DmA{0{;V@*C(gMNTg1%>{hlb7BIm9qF{YMsRILz8X~2EYWRs zv3RhQ5y?hIpyQ~&e3>#D%`|z%!`pnVWY~7hP8VY-FTIuxyG%%r)8XxzS#&^93{*KS z=2e+_FVHQh_R|X-kMi9Cer7t4)aDJWH5+dQh=8P%Nz9jkd7^f|EAW1PHqHx^Fn!xr zL#80#npE$c?ciCq{YBHpnBjhpwk(mXPfgT$)5c4878c&-m&a61Uxgq@XUD*i92z$+ z@qSKa1_>%-&VpV4H0LH3(5L3|_&lB7<&3yP-PL``??$OjrVuWS`0}nJ zzY0H+@yc`+%0emh?{nZ;2H~)lDZw3Ug9IKVpRP}7-j~EJ-x6VoeQTuwU*pXLfByYw z*;oDcaTHoIaVxomv+SdX05z4ZZ)D`AvjS;#ri*|V!IWD5Qg0lt0SK|rCR-T$6>F5! z=S^u-ks$ccF5@)xFKT`>aQ`jfVAh$R5hzXJTx#W;g}!>!qF z)N8!=%A)^|jHUV%P^UR1VDZ{_RM$tTxQ%rPSumdUByy;9aNE5}kC;pa8hNh`kiwal z)}ul}OZAbOSV=~()lX&j5ko}zE{0xQgBar5I_PBUtmW<3+({(W`9WX_or8*u&jol5 zfW!__5G0Wv#?qiQcR$j(&s2*K`TZ zuYCg1+hj)M;#qrkA?~XaEpYba5$~6aY2kkDpOP!Aj@}Nj182m zoW*o0iM#-yW8L=bahtpl7B0Fh`(}CYS~O{ggET-UHVM2tZump@UqZ~yp; zD6i3FAb1p?jU~lzHF2S%3jGw8iV02|3lg}MoVuSuX726t`0n|6>#ypLQP2czFS-ZK z2+=%(0Jj@ZBMC)V%_By@bbKNI=HJ!pC2d?NT?U!c>12W1nyUR zFZ+BnCZ+yY9Gy)sJHD>3H|z#rc(fzUz%UbaBer;Mn8xjc6WNG{w;I(rjN5>}?RfNU z0U4a#TFX8vib8cOmh*__36m({djCr+cGJX!nhHxQ;nlV2l?&^yX#rc>2`ktdA4Xzv$BG$$&-QN(6!xGx z2T!iKQyETeJ^ovL;-PPP^afd%b!xXKFx}AqR&cxyAX=cs^>O0muUT>`_T|Q7ue6Me zc<3`NuxGr2f2c-TI!;rnCedVP7j%4P(bs2ITyz%pW#-q!({QNV3v9kXVuzIp^`bzm zG{w&+8u7%b`OBy4(2*JuPAU77G`^^21CrF~0Bs}r-kB4sem^3dalQ5fzvOYBSi!}g zYfi_$BdulEO%GQS{*DT?i-^Yoh%eGwBi)u&WjtCx))GlwAZ8vUBB?+sO=IfPkK|hU zLB7PJ-qvjXA|ZV)qLx3YsVRC)f^I4Le=;dyaK84{Zn%hz_3P8~rPsf^SwtdUl@W{r`H*kEL+^R7VJ#Z| z*Y98I{O7|JtapWI~JO+8_weL!}R`i&Gjo5FW4Ek0)Sylcs+s z@!b~#%yJ$(#~qH=Rmir!-dn<=rp5@5MGmY|M-l+z=#@)tNCs4}KVr?))M0=^uwz2o zGPV#k#4Xw22z$S6<1~_gVoXacJa1C?MCQh~T5UOW(%ZZOm=~GTxvA#0CVif!&pp_L z&BdE+9U?{=1m1K7S7TPysVGmj zMvjoo!zy5p84@%DIV`(st#mYkK`Lbr^%P!n47{fEog_hEmiQ`(nl#Dus+LdpYYcDGshx6ZAX3I@1Cax%9 zkxc%{w!Zk8QaI?oaEE+eX=uONedU63UuDIdu?qmyWzAEIe%}eMF4@p49LPi+bp4XB z(lpt3*QmI`@*BbIK)uCcbDsCj%IJip@$H#AqOnqDEn?-d`FOPja9po{J-gEH6LyP= zGp*Mw9N#&?+|3@0vZK4~3EskOyw$yb6a7_QsX?SFgZq?;v6Jq59ee~YBK697{(?D~ z9WW)-ivCoKQRuz>=E#ov%4FSYNYaGUJqd$7tflO+x57VKdKMTY>HVOG(88ZdO@(vnIde~8Y(yqS~Tc~^CRZ$@*~ zyv^8o4k^bU|`g+|KRnVfLMyrwfR_kTJERX2~FmJ%^qk|+0`%yfH6oAY(ObOu{ zj&ihRdkSIDcg-(23_4uS+M}TX+$6CA_Ksg`d|bl#uD_Es!^?U0avK8f=X|zhkS7UC zOk)XDz6o*Nl~{^u>f++!3Zf4sy^(}9;L*0uqP;=@kxHk*EkiuYRUIRO4*Hky*`*mP zd-n2cxsJKlgYCcE5*T8Z-gr?EKSAgsxvX{bCLS+$l9r$^8gbg!!C<`GTt}6E3OZQv zw6nZ&R`;`%q7JyYl1pWng_(olklkhgz|!k^_MG{?4} zk-Bff-#>$m=38OMzLWG#^D$D;P+-qv-pt1|51Xxb;-dM9ciJ9ZS=1<@=bt#HuE5FY ziv8bVZwrl=MjtT0J*?^{G=8W0G$|6(NL=f9mOb$S*b>G){ShKakyX8WR_3y%wxfO1 zRus4x0#rF3vEW+<#FQyKl66QLQ3(eS3lifLT7Tb)QaozjH_k!I6cUuN zII6TiRI;qGtMkwA3nvPR6UQUWDE0%{6Y&k28mG#!`UX7oW{j%_csl6L#{+ zwH(lSdH&(4{-~~SO`gUQ8_)phLWD@^Y*IYl}nk}bG@C>)p7EGCg<=DaBySY z>Mz^0$Yc1T|9i(zPV%yEh(V!1pCH4z4>RE&#MwUc-zJ1xb2`{1kD5vYoBB|krl{hU zfEWo0sm)1&QZ$SoPuv5T68WLj!?0I4+ zNL6USw}#At!0Nq1V#{3?)(WVNR4qO>aEkbk)~NjKZK@@yL+3A=%)FSL>vBDZh~T1Z z#=>DPt?hIZiKoMmpWwnM)aU$-Z}e4KWM-nr?Dy{a9~zT4%_;4a5?+PP!3ekuHbGc= zDp=%c2U|zkA|yVfGODuF>)*nB5Zw0cW=jQZ^C=@BCo4L%8ZUp(D!eS3XbRAJjYz2s zQk5R3p4B&(6n5B3?LJ+()IiPP{{QlPX?&zV+7K(xDckD)mEieTLsh_V?sW$S!b^D?~_C^|_PJr;SfR%dH-G}JqD2#GpO-SR?~!M^jGtcVW}+;x0&a5g7&|Px*_F_y0&U{j(3YExcfBjC zxscNfl8}|)4NANn-tRCL?92?7#c^w@g20@WB#_!;0nNOm9 z4vmMtOCA8;^UM6vklww5epy6)W~uMbp$yW+*P?bNBpI@l{gIitw<(|Jz@|9s=!;pD z>`~{0=;p?8>UP#Y#o^iG!vT(<=^><>QgY3(+`DC;(EsxS%8NyA^-63wv}cD1!v}NL zjJtW><-ALF_9yP$AB{yYIN2x|d4M9sphd%TKZ@NxdlL_;{V-T$T80O5E8kh19#Zq& zN@cj2d+I%;|aR$+pK1!LQx% zamXU6lxYpxd4QgM(0<)O9`Mv=o*mleAfJh3mesSiOPv_#?0|QpiHv}83sH~!EP4Sa z4N+t}u^taDWP^Jm1PRhE+Z>VwfZaSTEqFJr)rGw^@fUgq0hrdDXzz?tFUeZ9sH3F! znY#j3Hp1+A;{FoK%C~%BMs>m4pvytfs|&HKP~;$lC|3sOIBwJpn2VZwp`&=-C4ckw z&JlLl9z>rKt{ogWQHR6TXW&WgAH>J-vzekHxV;uv0PhkSG6$}F_~lO8W{Q3E==Zlo z{+*57vuOnXe-!>-n5spcNg;6p#`|ZKeM4T-^`+D}FHv|inZhYd5(_-Y7cm-t;Ro<9 zQ&(T*ZMm#=FdRukk2Zy3^mGj$x!aDc|2!4VG+8xLvl^P`@kF~B9^nms6(YXJ#B-H6|~0$(595OXBDB=iqciajDi1;()tB zumcVN0u3Z3Aaf(u%^r~J)i!J)r}R~dX>?pr+22_`Y8YTNHEB2?jZ}PWQh9^Ctopgt zlV&U<>iwl!X}?`>KA6aQUI98j2gY1o3t@o!m|8-t)aH>oQK}S86^tJM$;#gN8 zGd%={!qyII)Hf zUTvGW6C=!fN}A{+GBi{t75gp4SSUc^6Iy1P?rcwC{<9 ze^*MOu!b=MG2$zdglL{egvY0?PRycpteK_ZY+j#o4f)`bEXuFzHm};SVQA`r^E_=o zReNr9N@`^$Z!N*=`PFq$(?&_d^-0jCjZ{Uvj zuII262h)lFMBKt9w3+k?SQ;J4OFKumR|V$u7gf<(YTy*z;Kd#7gtJ56lx1PfNQ~8K zr*S@0Uak^++EXuvL&;okhgZ*%!*h|{(@Cpx_iK^S-MDs`(FPzw`3rQ8;t$O0(Tuw9 zHokuM)RvPC+ax#@D~(W1yRh%M;GbywzbOQ-qaMdkOh@LBhgY+1 zHk95FHP>y;r@0Mt8!U^5|K_ADuNPW^4DC&5Vw5(+w1VEted~1M9H99c)Ef63*y^M| z<@sYpC`1*c&R)~C6QLliKf&TWsQNN%1K7Ln{^qh*Jy?$$iH^dEQIoV_qP9`Hc5Yh+UYq;;E9#?)>`bYI#-h@n%V0?9C>%09HmU53nZxE*l53*=cd-obU zw%OH7!NR|ua=wRe&jx~q6|&bV|MEH=_d`6JOa#4%B)MS*DxM95(U1w33qP2?`h>X> zwSY(+3y4$Q2(wq&6TFghHw7L)fyj~&1 znZxcT!5UkbmT0Xoo+bPeUmRO;+W+o;nGaQsUV)o&9 z9Di0a(S+SAzGx$^Xg=+LwSQVLjhL(7fTY+EEv!4>A9#4{*RSnkM0X`>W(1=ryN1@| z_Zy(1EV*+}D84lIr|q`wI}7g8pQQCI4>DWmJg?|n=tHnlW97 zogXA}_`(==MpTmai~5y2SAN0coJ@97U7%&s%O6&}Ri{?7sZb5>7M1T8KHdh8n=2P$ z;s}f(gGQp$6*If8XCaU=zv`6_D)JF??6=hdVdYK3;sI4J+Jx1}8teHt5cqim<&HPj zOBcZ%pygZ7+sB(WM^ei=)S@S;0X2zw6ifI1oP0hT9}2iP=wh_}duIdp-N?}nu99$f z-g9joe@FjSK4@yZW#k@D>@IGozC;OjrzbDrPom|rXT13V%&)t(jSjE)+CCHhqij|W zqt=$1AMB;#&WRHZk?j0de}nCr6Bt*y^L2Q){vjA)J4L-Q^>{}8@<#h*{ia8uO%^h^ z3A4}bnDe7P`7JuVsf_yQ?rRQ(!DsW@x1?wPL^6zI_C(7HZB@y3B$`2>qOxZHR>4o9y{9&)+Wo30kR1s0i@#iyA4 z`vg7s+`sU--_s)wM(^Ha{npqcP5z8EEcm1~JsFTaU{Uf=tOc2ZCuNiUJZm9PK^6HZ<+|wz>yvOs^suhGx*&m&zBuCE zy)s(on`v>#$`o3={Ja^ki&1SdHZqtUaZGM|fVY>|W_Y0sY(74;JIb8cuow2jmzsU` zkhx{3cV2LIh*X{cg$F$&+KvC&Mye2>O49Lxccra^H$C)$*2t@S(5B=;yb(Fz)BIg` zXe+ltHIEdt)s&)pA|21#BX_zxWd>8wUPua8K%@)$Eab~H+sjsL5TpN50(R`<-2!%z zsNwmR)8|^M6-iKRWfO5llqQou|KdzRGeNV9(5wR;n1aI1f*=L&QRZO`un6niyQGx* zb-8Jqxi;_oF3u{|*J{-#X&N?>HiIN!|KQ&;2GH}2p)(2D>ElC`nr8NKFWWNz*_+q9 zM0D%((ey-Sdud2qdb>p=$n`E0gIznGH?D@4jj8>s)-NmSr{a-6akQljUhp7Y#Ry|X zzr~%@nIsKb_kDHX`k%y7%6_nX+PMjK)t<{Tn~`+Y@HDI*LjZO8n%1zbKuMjdlko{V!D)`pQPy)1&3!%`h})M}Ma+V*;&K{O5Nwl9uB zv>Fwfi?#N^iaBZ<<;V|P)%F@^-dIb(^qwcMIB33C(ql4J)s*~{p7l)jcCV?a1~L%Q z`RLKVkED1F6!zzY)WvD+{Vu@IUlMFSt-TwqY+j5!)3UJ=Jeo@>={X`R0VUuK#C@aSg{hfuFQi7D1tf}1*ZDLuWxusr((bUh^HBTDpYOW8p?hYU&nUc^pp9XXP)@iW8Br0Hl4oo}0;9c*mqv!o9wP@~D2-m!hG@x{OqMSSC2T2PI01l}m~)b!FC z-v`5pQ4-HfL)YSiLwOlW2(~X|fD->g0~?jGer&iQzA3dd4+-4t(Xxjq;94fkw@T#sK^{BM6^FWSUO90N59G<{pbAXH z4}G?W&U_K;=lAz+2@FK|6ymhRr=&6k+6x4Lf~178^&1LzzNB~WVS z7-~tYN`g^$D?`a!oWUiDgxuzV)Bu@ac1qvtB=S4tC?8lI~d} z-R<}^1g)&U4epk0y>2AQqTQ7>--`fW0}Nev^6{^|b?WSNn?EM?aL?3?OtV$LnQqZd z9=h=Yhp&=s!sts-@RcfTW9>KuL$U z((x&s$e)Gx(cYI8^0C{oq@D%s#z}+alc16SHbJ&*!%HuNgw@2azBkDzo}pxt)PB5H z2i^1er{n$v-zD~nUnRuEOVTIy=mICU@|~4}WKc-Yh|GEStVD)Amrm~GX`a9(zvzw% zd-<8cjT*(KZhILyYaB4!Lk8lx?9>MTfLA^d6=)LPh{~e{j>Pb)R6uzCYHv7b$NQa^BGh>^@ zFP^Wp-!Leg3D%d%j(LD1G2BXVz>>>Zv$xMJ3JP|kRIYlij77#oWfYZr8BOTVU496Pw|`hMObC|I z^+i%4BRCw4SjVUDDKWMlm`yADTa)9vD7G;Vpl@17xt%b+)P zcIxdyx8R2*cl`~}l|ru249pp3_C1WT(ml3)^C_J*PVDz}vMo@1KzF*nZ_pg@G410# z`y?GAT0Dea2oqRi=rVI=Ztl-w)mj5e;J*B%U34p8vry1fmZ>zQH>hkGFQibW#Wenv13;<2JM1vdpEyHx}Y0RTpUo96~|rF>frUUA9ZYb6&r`MswiE2a71we5q% zN`d(90&U)GjM1dc7-TaI823oe$x<8_%pwD_=AV^zczK;Sw|jmvK!kM0uC@jXMZpfC zV~Pxwd6oEq(R(wA-B4f4?3WBmrMis&-p_iO`Kv}qONZ43IYjypn8O9r(lv&?js~4; zU4Qu1w)2wCeVSGx`;Cok9eiE0plUD74PV|EoHUg~JtiRadT&ozC)#o@frY=U!#Zqv{haQvDd{C@YJ{cHK2c^~a!$t@6-H;e74Bo?cy+9>5kMEfcF2f_0>^Pw_VpDB~sELr68h`f^>{1p;FS_B{_7%ARrwA(lLP2 z4Kgs)&;txGAl=>FF~EHDeCvDf`}x*-&)+QmxaN0VXPWG)1jBOK3x26=$eHiD8bJzk2V@FlKD+xN0_UJVe=(X*U4O6m>L? ze(-dv?~_!7jN8)L;ONw|Z5`=%Yp6y=oRx=v#c|$_FzYXBcRd9%_fVfmk z2~VOOYtDktGKx6u{SGRkdWl25J1S14_ot$@{S=CJYM)AM*3uF+3puIQee?F~enU5o z-;*@cHV2kxfovY#$@8RNkx=dltEkFP-^kPnk?9=P4|u%1o~lOOJ3*P9w)F+EFK`@r zyI|zuv)!Ri-V0#b`5w%y|I1^k$B0D#BCXa3;EE2~p2EV1Kt=So^ne=m|L?+*2k}A3AHm4{2Vw|D{U8m5pw)E&Udq- zw1C{wRoZ|9h;PGxYKuaSdP2Y2YQN)=!d( zyevy3DX z!nn;ydaUq|2)<3F`*kUvwK1^7DIWPhm6}gukhys`jVs>4A+&d^}?rO&GiecdOPAwXHf3`dKdE=}PgmszC zJ}f?^(#=ew-z{9NO?662nSF@ly0oDE*6wP#6X_Yf18JoUYo0Oe< zo?~c(hFKF&eXMiF$2!NmbIdyby6wENtx94?D%l_n_&UsSkex`CZ@NWE1~=_Eb$`d` zcQ4a|oKm%-00YvVJi2o0ZGV{rzyIz6Cu_V0a|uHdC;#>RC9BUw!YFHkLR0~_w^#w- zu!4GAfa=P6u%6>Qcs8A99ap|)W&AjIo|sO-Uy3YS|32y?eYN_WSi`pg^V;j_a*{nK z-baA6L!(f#O%%m@<6;Su1s|L=2@^;0PxJ#GCYWMEHtIKMn{BZtPwyNUg7}XB-qrR~ zKdNNw8CbkQk6!MOUxnYtktv8SA2xLa%TRar$G6=(1$tQe(y6wtrfFbZ_C-$Y}T5! zeX$^V7DM34&Yj=FGcW{sHtrY0*l?%fIHPK6bE_2c>)1;o#-N&2Z98n+^`O)rNn8;c zeNx`)Y6LH1_qA?Geu-H=MB*)fc&8vRvJ(^6PTPOX-gv(lwYsWp8f?WP3r{i5{})(B ziWFCTey!VCJ~pK+u^SQ7t1RL|JFM^A_**5N&m|(3sO$kdx^Vm1qF&<{pv%|TH*Y4J zhyI?2jWpMDmEv%h+J9B{&zU(Xi%-_2u!xQy(!%DMRNE&tvFktQC;)ihlxi~9jIlV) zE-&#Xi(#e-{N4j&Tue8+K6xVMHpuc~==P8v!(Ey#UF#FE+PYT%ejU9@f1e5B49aaM z%`(BL8uki`(l0O1;-Hc7yO1u;s>o;qG=*!O(z+%`jJLw;VArsENn;wGuw2o13H1q` zkvN?+j~pUIqbWA-ACanet$7v3>^*od^|k40!EWb1`P@GhxBl|d;wz+*k7bp{)COB) z&8KGiQrQ#8Ax27ecGq>VbNZ2xtw=QcH^}E5*W~4Qgd$^D1+JkuMCGXk6=g)KyyeTp z)`Ru2od!s`-$vfm?!y2K-PzYz7B;B(SSk49lwp`*t?e%cq#H z13BD~rKO)MHmXO~qRqs~pfN}zWUT97{`*0e9nc0i>IUhykyR>nclWsn-37SZs?_~l zIzYug%0l#eVR#X0?5ufGyHh)$B6vSZ~^j#K{=9UBC9>6^QBJsLn#3pvbpbxOo0eTP7QGe5Zj8@Pp3-P z@3ynQG&c`Vc7^g_v5ea+(_8CqVga+q=mbXRoGxeK#6gXNjgiAfd{J&xU(YMhqwqQ} zbj~$wh8bo12{Wb-x0nR%3iL_)?)@}H?W?z@(X<`xXm5-^8QA0QkmE`DG3&FJAQ%Y7 z?Fi1+@I)Syr_Tx1sq~%YS0<;T#2$gB63Y3Ht`+Z6b^hy(A@e9Holvhz$1_u*$Ttu$ z`J&@rIeYcP8>^gC=QF-Z&2YM7ndHL#$xNa|u(Y)(mcF~@G+(|rR_ll$L%}ATFDr^o zU2?=R8(0WjCFviABA%bq#+JUEGwmliQL}@;cD+Mrp#Po`AP8jBw#oL!RV0bAtgW2S zCb`ycR3=lVFn>UQ{UG@SQ6#E1upOEo5b)eDU`0)GEE~l+DYo)DHFs3P{SmZ(BHf@O z&xP7ZP(25QRJ0RfXfW6prnZ*vpaDAf%tCmA>M?s4Y=prjww{KYd`o^n4yrI`qf5_t zB%dEML`Q4Xao$)2#b@PQqA%6#UGQ`!Eu+(dIa`-cbl8?EbzVF=`~bTy5wTTuyAn?! zLlRxv&ic^FeX|G8EmkZ*GkD|2$;=OG_Oi zwBCi$vA;h|LEm3mU)4{+(C3x)7ch*w%rP6lEU5AK>@1-8j)O@81QD16 z-LHay`~PvEDZ%V%gUb#h+6!0FtCRKa?HE6q3P;^Z&>XA{>DYZPaX2-HaT_@=zgvw1 zc$A5pi5_U%?H{S1&vnpfL%Az3SUEYc-V^Sg15e}re_k>HwLd=av|i|*5HV+3gn>YI=-X4|E7yKMxW^gX{9PeZYa#%3aaVq~ z3kS!8UUa6auwE~C_;EJa7PoZ6=CAir_4OB(01$4xzECB|3Ki4ZQi%YAvbMaZq$+BK zJ??Ir*1Qg-sDGW;F?y{|`QEI9L3ivG9#c8SnG#_3{Kb{ineh#^^912Uu@S_bo~)Y0IdO6Ee&H>85{5P` z*|7A`+tlW@8vR9Pd=nyB|M%;HzS#|>z}Iwr?@Z5n#v0Jv!hLHD8d>jtd>)n<{PI3k z>@SNF==EpoT-eZAP~!5Sw(b^EAo>0}4#dcbLW1tp%TF{g#Kf?Vav*Tp@r~RKPIQ{Y zs>RlS{!t&=OQ7To;pZPVx?KGeKKTj|Mjd|A?47J)Xtxnc4*=b*Pj)7uug)i*_V@0P z9qqByO{9aHE$s}CzE<$--!FHkcaB5YB0guDG=HC6c?2YbmPgfnZ{R)zDgt-!5gDq2 z_#BL(D}0MK&ph?$qtTnG=9cU@C`lShe62lqnD*K4z|#bnX`XBlJyU(P*j1@3*n%GLDuJ8&sYT zk(pnOth7Y3C0szNJ=44Y*Sevo>O;uBZTxY6_ST`h6Diwwvf0<#`cqfq$(m@98p(0EXKt=9nggE)h;z!0R))=5etL(@?!&O^j2TDu2MdxV_)>P^*xxNT zOC03^47c`M9J~u06m0*nftvXh-PLl? zh9H$zlbRvrQhCAKsRHZ#W<*J22^fWFszEG4Vdr2$rTU44GHi*ro7_4V_o|G!964=BXSApXxH!*-gfdr6yMF``6*{-|GZ0w)< zck)U0cEW~jx#@(SlVH*56BqX_{* zlgBR)ZsE@#`N({bbE6|Scp+mO`Sj~hau--OCg~FZ%7sHNLzBtW>8sW@R?L0c2-&mA z19N@miL(2~`%=Z>%+Kr&@&!QmPD7wU#M!wg>>?v~iK5!4{!d$9yXi|^M?N#xgySHd z*{hQHhxBpzX9iP&3LWUKTZz_Z!Ry^M9IZ#xsg-SaI2-vT1@nt~oVQ|X_;0__x4PF%Y#P-*Lr{Cv&TzvgX=m0zu&&B=8gPc zJ?w%wutDeiZ4!i6FL4aemU2V%>f&mz_mf94CKBimTDN`yO)XWX3fwq~zg4!TEELh~ z4+#_njYq*#u)b6&VTWsB0Qv%TxZ34lek;FSc^<8&nicOa(t1tLc1MdGH!eR+Xy;so zflggJSzzb@S&*|$6j-5_UN{88DC-)B3O+Ly9DY{)?dN?*vQ8-;uELXq0{%yKZfVc#MY-Lue@&bbEC=5Q%V&(C2x&A#mdxbUcXsOY^ry8`^S)3$0;5Zu-IZ zOQE~Cp!;*}-dh_ggTL6DtC@+0ZbhHkgm2G{{$6R+FNdx7tyqW5PZzbUr_1L}2B6k` zQ_wfND)0q|JpU)Q6nu`5pRh)W+I6$t>s!Mo)zjKLGr09@dt&XzAnG2LZ>-RDQ1jQy z?VHDQLbbVFUfWKMI3ZGVnRjCVvZG)Rx9e!1wra857(9;o>}>2gjKA18+L8#Fym^r9 zc7JV&m*?(nPdz2J;s2_{;$D4=*B^!rAap(|`AWGSWqvShE_snM;Ad5p z6?^A;Xl_jVzhXrh&^Bs(@jkERZ2!GNW2#26gmTaV@O5L*FVWx2prl2#3kzITE#5j_ zQBGXp^<9xQ<~?sBtmg_rGXd$d=DJ3tiYsgdDnTN}Jh}~Br3`<8!unmai`hKRcE#D_ zX61So#%)!ve~%bj?Em>T)=#RdX>D=+reXSo2V+oIUP}d8TCjPxjiEsaPro0!$>yVM z7ONWp3!Gxy$pB(?^)NGkg)#s#K{{2OQ!hS#bjSia^q#rYAeDh{c?a`3IB%gZdVb2% zzrj#P`Ucf6k*$K-)&1jn$$xxQc6nzO!?*!EdIJ;wd|ESk6D_Gs#l#DHCt9=bM-FaQ z<5=L0u$DK5i-ve%3@ln6dNwP5h3g)KQo>DgxEUsnT?9#t-qM*~UWA=qPh1buL1z~w z1a8$^-nf7wUZ`L{OY{;8x9$p;ngT|r%H~Zjw4PoYwzk~W5vNe4xEcQ}wKc>~)UFV| zcB@#ml)&H?j+;a8zCQs*f_QcIS?TR=9p5h38%Smr?uB?h#kwCbN#Opf+bCbh=uDFn zm2t|v19xjj^}ntc@dvNnp-O=%k1j!UC~n?~<6KRJUL(n+1Mr3P8YLef5TyQKiZXXp zxwlf4EVbBN1YplK(AZI?j_i_)wYJ7WcRiILaogOS-0)i~a&xcZ@Hyvr-!A(TAvr&C zG`zf%dbxP~r}*E3e-Z1>#Nn3h8`DqOn@SLfo7p|w@@wZq56AVI zjl1OH0zDyWc3piq5Xi>kV>O9c5h$n~xRb8eE!xi(0p3dbzSQF5&BJXx%zAhv1*gvL^VRSa~ z-7<8B+jF|$Pw5Iu{;3%=4WRCPSp<|3N?Wzn3Y&|Go!-$eIF{C4({0j$dtxlP8-Vru zbq!09&AyUxVP|_4liTg9Y2&DsaY8AN3~C~XMLil1KCQHMpYq_Z!)T$=2na9l;)fvk zO6=?RpDyYEE`9HhWz0^dz)J<^Oofh-^|6Fv{A{sj$v(~wtyQ|NRtE^J zr|?*2QJ{FMgAmM3kayKj;-0H8oZ2@ORzKfP`KRU|RxZ9-Jo#WK)%5c9(J%zjpP$q5Gc0&$tB)y8%wdNb&~AE8H(+T_xOoq>D%d{!dTZo z6(Gcuc3s19HN_WczB3aqxCHJTAcJP-@W1EU6FU0K)~cO~X9ODgDk8UM4gJ5$ZibI)5gO1ZTS!S-mn2xd zQ^QX8Oh_qQFKjw2+}jtz)~>e1v%pVZ+QjMY4$A+_z$mBhIpCpJc9OPlcy`qYTjOhX z{qP1CG%GR!Y|EVuzAVFYDwLa7vX@sRSOPJ%k(!S%cLfrIOMurQ&Y{8 z9vbNF$FhrD6n#=k%9e8Zc{3gg-xA)yVhIdsR}+5%Z%1wpXLxRV?zXRVuRul|sg`vR z=S+_ng;f-m%%4d6CDD3Obg)u*P>$zHMW2K`49;sxbGQVn^+xqP`*0xeq9Dhkq|uWE zeB>1dBOslH4^7)>=+lW}wnIH!FifhcA_C%8EO$paeH(3Zmr<~Djm^Uz+k=7utX8ZJ z*LR))t>UxhJ-_Zuv)9|4gwXER|I-U-3_^ame&@HY5&QXx?T zOu6PCw?9+$y80u2zkO$&P7CsLW}YncGcwfNyl20ge)oA39u11S@49c<@_aFVeSAMX zjy`)avV6VE5W{j(tEBTE9bPp?OK~l?^8N?fyW2tzHb{&RFWE#8#>jg(n%k&lC!$iS zD_QoAOami$37iKq&@lb6)PD~Od%Jm>xO<;{VVG{+TYea_FWYJm^rO<}N(Rk|d)$;g z2%V1w&I1N7=bv09zz-NU>P%8J>c|*A)-U)lWzDA3Ko7(fe3!a{C>eyq7B8kEqy};= z8v#_%uq{|>SF(}s!jI0%!Q2Rnib{yafNxwqLNSXEs~O6V$wsnLGZRh8-1N1VT#W|&5G(@cw31vx`67f&q86n zg)-G?a_>QWccy2aTHX<9dZ4(pr2)nhLIDzm4^|y~l)>O|mv=Y;e@OxDcE9qb*41uh zwp&FuIlh*;Y`(TKkSxPOs)y;>{Q`N;;#FY4YeYkdgXro`?%Q8jwU%XqXN}tRlF9WR zp6pAQiQ}KHS^3vpE zvzot&(Pj2j0pb4Lx6mz6wUGx?l&4Q`%Xlh*?RMQsq%LXFJfG4^Mi7y;W&OcB2no5> zWL};p8^jNIz!YE=%Kpy`k`4}oKbqpiuVTq0yNP%%KF@$IqdX~MF9#~1?ZidgB<|=?qOIUZx@p1P!lkZX(d}f()@A5QuBL?LVLu&w83Xy`x|$z zSlqNKj=s|ZHKI(7hTB=^gx&>|IGfjyaOpYwbx2bstm$sAm~u*x zio6~(n#9kpasRtc=DC?G&eHNHk>m3|3?+^1P0ug9yTlr21|BAR=o2v^Kb}4I92+^f zz9JNO@y|(vsf|2neIDSYsIGU^OsvH#BE5?E(M0~q@(->(@9H>nMl~8Ef8~$V5bM3$ zv~eEXJ)cc&#IH&X&^cZxF)ewNJpzv|+4();=Vlicj~ZvUbYusPr%z05E%MfRKx)*i z9X<3dGtSq!p4kod<9{vPdqYW^wp~4DZ8axoQs5>g0=T|0ivmwAS#LY09@TF1o;2rg zq=QXvGM*qw0lBM0c+A@QrNkudQh^(u zeX!xG3#5xx&kBFa!TQsFm!_hJMVUu@gDI}w%JhZH}z{FQ&Wao%B1vh z%Y);}M|KLe^jib2HsNLQPu@Xw+Bog~s0p^KAVl0go+pbJnmnd4#(S22| zLhABeo2r|Jm-f~fdxU?1EBZ#U{srEI9UL=&Ur8!01!Z2JefF1AFBl%Y(c|;g#E{=Z z?_*>|>d`|z_V&pgQo2t*UZszGnZ=`7Q$pL)nm?`O5eQ6?_IkT@64rD&CrHPA8Srx` zq=`i?&bS=D?6}&`HZc1)Z?5nZr}i7dkOkn=`0u#R^&1Q2w!#8|vfyw-=f)Kp;ER6Z zx?4XVCT+flzPpXvUtM*zXMsEVi5^R;?sa+OJ*|7~K>;V>E>UH8{MeX+gZs~?-Gmp< zk0OLZ0@}$x$_{G3d!G|7R6t5dp%%>k{L!`0C4WhK z8ivNq<$Wkr8O6R-MQal?NN`0U;JCdmWIRzeIelHnV800Vq`cN8!YySh;Voxk%9=?m z)B=-gWyHnQl{xm8G>}do@V#bd*npswm#)_#V*eEQ1DM9uavb0d`3b-Hs0Od-pT-~bZ3-^_URm9jQ7_tkv+q~*p1hnu52?6`EmH@h zlNqEgK$j-13kFL$I<|hs?~lGuw|Py@YOACq{1YcWeGUw;>}+4o;=R4#-qOJ2V!7Aq zF;^8@*R3yHpn7t&KTSXGF}&Y(v(P?6$cGtizGC1KA2cDom{&Zg1j|RYNXabp^PNUd zvY#|&2uazT&{28uFkNvx%xmXm>XjhMwkFaGHui>0u0yNbdp4Tmt=Von5aVg316?Fm zW_3t>0n@}ZtgYojY=A?>THS5P!QyI12)ONvK2x-qIoO%4&$$vbwjn4d!M`CLoSKn9E#R$984wDTiRgy!qCjLS*1U**J zU#=``+4U@@JwN}A$@gDco}S`k`(9ve*>kn$99YbYu13As?M1Yzp*l7W8<=Xx3?bxt zlC9Z_ie+KCvpNsCrZ0G;O{{|d9u&aSt%EO!9>vwPZ>$=BN5A49?c~*cWRD(eKmBvH zZ7By~(izlbd>XsiiFa!`+Hl~XL8{7Rx;eKvG1?@dipyxYL*%lfmcr>JUO$^Hapww} z7lw<`hn}K7nm4!-V2|a(zczC7NWbr<(dydRIpX-RD-FVv9Wk*XRMJ%RmT-1ZuA&R^ znqTc4DVi7;ZSOhdXee1$qzZN_amrLGp00)yQ3}6Dor!b#y0B~?3?cLyZdN{CvJdX$ ztVo!!o_-3&<9DCrdn{y?b(8X2*jEyX#oT}HOd}s`#6K@NoqTom3f7QRA9(`1${O`D z${Wy}(gq@%+wD)2J)h$mCy+?AUq7_>TAxb#=Q1VKa88|!$JW?`&xEHOl@V`Vi)#&o zps|Phf4IWJ8VBefB(pu>XDRZ)%Z}}U{WRg_>@c6q1}lp8PrOefpjkp|1p95S7 zJS%DtdLcZoS-&0EsS7uL49i+AKNcUW$luuwa=bo6-j#nAhZ$j!FK0d^PMkA#%5%;s z*2jPM;KPLQ*lQhq@-m)5g7%$ZPP{9^(Z}*$%-ES;F3tm-jLM^` zjP`janC#SEaIqW1?sptv?y8_*+}j57nZiZW%OM>6z`N5xJ2&=%%J9zo+F@Z4GP->Z zdYaxD$#@LHP15AGbX;;*kd!r0J$y26Mtfd_VVbZ(c}w<4JkbVmS?9h!XEB@c4er-5 zk7oipg(PfXN%UV2al)UVV}~q5d>2~XD*nAFKedgk92xO^s1Uv2F3n;))}kM3s5JwoG$rC2dLFMV#oC$}Fsnj$K+ z7`o-uKC`vqhuDeg2-3`U^tX)q@XB4-*Q>Wu)P#6{G93cnWKP8^DcG^EBv?!m6t zck#fWP}m{BOObHD%05R^J`iyJd(eNn%?Ygd*k~sWzG3?LpXf&<)vybSRo5Ksy&KdM z;LwW9S~=m4zLS(XgAH4wjLS&ff#EawLsvgPOYGoXtCC%eJy^5+Z1xp3F;YH6{BCLQ z?Xxq}SjDncr6@*Dmlbz^%;~Y{4AD;|zM!^}au~Fu2eaz-C&;UD0gmj8DFIB7DL7}7 zb+JI_U7{_O(Tf;RhvHxBSSfES{M(S18As!59No9LRBv&Q8v2j4xh=BA;@f!}cC6nF zH9QhGz#GymSLoG$lBvyfM04pae%4f}Fy4!R0k4EbqJ!xWtkmut;1vP)7OK*Ae%!2w zLROfKQi4JQxIOKFe4n4y^3%^5;TRoGHzFz}?|DOV$dHQk0cU<)7h>qr{X|KD5*Zr* zv~o4g=lH<|kx@(c5n^}Mn|dfwObqgXXKsko8vg@=5Px;|Q^ZQ9$zw3f6=8cIPDN0W zZzj-A+5)H3LP?cHZ4Fld6%0$39=rB#lO#(`VJ``c5op@Pc6Az{<{}dr%Zm9Kd+|TL zfQ-jNNStKY7ngPKww&EP$MLhjEKy?cMkB6E+E`ypD=ds`P4QBM=LB3z6o2R@i-ESV z{^e0v>(mBW>DtM&Ly8VOggr@vv!F=$kO9Q1aiVvVd8l5g?Yfvw;P-9 z$)z5*pPzbJRD3p^`-=^C^Ojjie#Q;dH{4YdG1#YZ7Lob3)1BmVO-!GS61QqNdypAF zpH#X_YAUSNCHH*O-64@u#JE7D;GAaNv4xCjvNAntX}z~?Tp>nmUc%_p0Xg6UtpP^v zu(;k`x^&8HF{`e55Agz0EjuOCl~3b=<8OU>u-jBNt=hCJvBa%Aj`)fxEn^KBV~@MU zcg?}{IM%uuUMuP&pVMFMfg+`Q~>E<+4rN9z}Yq*F4f6@_h`gcz<8G?vs44aHRd zxi6plIXU6V>Zn=2sx+gVnhBHLuFtNlv|F%gYeQ6qzi=dow%sV%fZpAMEqnlHSl56q zySo3gJv-l;Wz|Dbsx^LLRg)K?nONi7-9{b{!^I*5+(fNjkwD#Y{KOC^=2h03{K(G( z2K%cvcE@ER+T#d(PIqMOH!7sqKuBs@L!Y8w^+4HG-%?>DOYae-S%43QuJJzXHbg1l z?+>ua)hqN`mVvtSE!F91(P1`qLf;dSa{#|C^ZZ7AW%ZRXCCwQaQeDXzvzDZ}1CpM1u){hwkz2j7{@Q|}|fWB`MwUk&MlvbGC9(`>ewGXN6kiEmQd!q@6FMSaq|&Ajd$uOpB!1@Zd~4HhqIB%8 z9Y!TxF{_)jrb{%X3vD|Iyz^R_?m{UN)f{jK(%?96N-UM|N>6HZS?4pIHBtYNAfw9^ ze?a6x4VbL9T}!7+HIfW{Iw{-Ieh_ghu{3}+QNuzq6zz`YDrC7E3Z4Hh%^9Z27}#xCv2@=UMxGcvB?_z#N$^9(FYPi})r=dvcS%wG8` zhh8WK_*~&MDeAngW#DM-k=@NOB64!#jtpILDmhr);a}ksSGoKlzg%V8@N4u@=_iR& zKD|9X{w}|s>x1=*6m4)Bkxf`hW#pRO)SRwys(nW@+@80DakY$p>!!oPW`W&boXqCX zeyMud>LG1tGaQoZxtFDpRJr8c=JOTMXgllJmu*zfFA(_MfIb~_8KQ7jBMM<&?i0MR z>L26pIC%H^iH3G1i3RTuN8Zfk^6ROu&fPSmJ(h4^7yXd63SnHH^PL?07cM27JnHY9 z%uS$rBU(*iKk=lRY3-!D#L`}3OxHsjUFrwfWUqJazoMoFR40HC7$HI&xh%Eq!(U1B ze*$b*|I(N0TdVo>RuhkXPHt(h8Sec+`r=e^LrV?b_vW-X+M3?#o3VA0cedqux}=bp zHnj#JF$iYhkS9SjP>U^)W=?8vDwS{YqKsc%6(<^G8VLH9_Edonx@{racZ_2j(D5lC zZ<)iWU&W?NYjK_94>9mN3o$^tR%7En2(D?O=T<>;_Iy%XJx5!3=!%1O{pD@#Hyo*8QhKZ%ZPp#b z5800f`n^ad0_W#7_XTth=d}C{i`2jEXZ=au*A`C2lVM!_B4daadWX}US2P@-LDDQ? zQjv1|b|s6zAk;2?bTsNT^R;$9PtNYLD4dZrN|~t_vlxjzhr29>sY19&n(_i)eus^^YX622lV~gY z%dEj`?OmeH7|5=*@Q=2M;NzB!<#js0`Qk#Y!zM3#(2pH~@>$x7U8GL=VIU}N&Zqu) z4cv3zPNKT8=J|l^Wu|`XTeIw#Beo(+)L1|spw(Bj2S`|y`HcGXC=RQ8wNv)W+{%YC z%GH+Es(}=CxI02vY?;$^MQFNq9H>>;!4HTV>b>?pJHWu?D~KMI2CtvUyy+I8o=#Sk zuhVNMvZ7%%igfV=(z^WE@l{3W%ZWWmDeYldn1>6t$7ilC^RHJF`X>zIiK??|6FlGpk`0NN zn|Vg4BtRzePqt@Y?~ahLK4^HrdYn6vdmvX$ECd~4-G#@h^lcVR8-BS&DY{~1@%(+d zQ?ueWq+pk-YW-}khcQ#7uYZ zJ8`0s*4G#tn{)e+MT?yu0~@M5T(l1vk^JNb)YH$#hVchvSYSxGADj0cXtiEN1Jf55 z6!3wutL|4mB11}tL_hz4UKxZB*976;%BU8~Z)~booKTM6q@Pl5SZn-(Yi6(0D;x__ z8Gq21dmSm(%{L2^#FJk)g+$c#`AEb&E}@AgEKzXVcXDwc)F^th)p^&ujqA%NZW%h; zUd-Bow8zBxb@f5o`bpQ~`SRnhw;s2)rbo4DtzP-a>>rANXCX|&0>L&XdM!}fgE!%n zGxLd$6gd`~9FzaM@R9k_a&#H$i0Zxj2{*wh{#aaE+Iid#gvB-+n4y&X3yT#g*FqO; z=;@Y^<lKy0-X9n5J zMR-yaDtFRj$eGdYbsG!;Wovs~l~|G(g|j!sEIfxJ#(oD^l2>TdN_JB+l(q z%6H3?w;|!+KV2$)nyj5FkFK|EbFXb0W{!AWlEAH^F`1F2M%kD>=RqwAm8{H{{qF<} zXV%#lC^osdPlOuT0@t{w8zK?TNv>Y6diY=C;x3~~4+ik6{>&*gZDng6MJT6s{j-DOm|c-( zDR`}cOY57aSH4CbR(uaDIUU~)y_4j)^7`er>PIQDcDuKmvWcBxZ^Cc4j9oN{}m> z-0&q)0d3%|B~_1HDbZHrFwqQ&yuo`_B(X`I35#WpZ-L11nJ}}hzuJ>#TG*4=PbsfX zdLE5fq1OMHq&IIImWf&MT|!u^rlrp$FBfFh|3Qeqe@i&nEIRe`sG$57je3P?l(nhd zkMoV94+R$&-whXPT=;_!c5Y1s-f-(-6vR;*8Pjo5J7KDpq2n++4$ zA>Yoe*Jeqcohv_Z%*Wp~DXkWRg&C_XLI74TRxKQ0U44S6y_HFvPq%caOPiC#5*qub zAph%IgG)ikg-U2C<5V)AAl-HKwrJ5z1xVa^hZZLjRtWxd{kk10xU9x|UwV@79dw!(8^*a*ekz8W+BF*nJ zsU98El`U&1m^c8Oh!4;Sm@qB6*4}s5y6rt83i!O14yFJsmin__MVQnw-<{*N3|&q0 z*pXYgHt10kK_j)Dl0pr>-@V*9fdnEtME|E3AZ`;@-_C@sGZ(08;4VUJ|IM*mhyOCX z2RDSiwE8Q7ei^f*;oe^H_LC(%YeoQOLg-5!oY~kAq+Y&ME zk-*3=P5j`d&Mfyb&dVdjwGZD=eri~LwP|gwukw*9P|B7ZdAY49lVjHW#Hn(E6H|dv z*T?(wzbXw}ByX-$U)79zJ+A%!8v1c*lJR6;Sar~KoB2?te%UVD3aE{y}SHTO8X|jTYB|R{?fZy2BugT z`_}7Kf!d{rBsZ+`nE#|Mz!5M6WOrM7MBqhpbuDu5o?fLrI>c~$W~KYLgXqV>JFD?% zta-#ZH+P3oT<2_g1C^QngiT7{0ZO`X;}@%c|l7FKlS=4&hB@ z4H@E>zsBbJXViCkvNH2qwK68=9&(>Vb9?yOYKss-z23S8 zF29mZ;@A89cwpz2Vji6%6W(pUwIa1Q?=TX558BHSQ6C)7dX`(9EuTiah^Z1+^Uuij zZ!7elb<>_KMrqkjr$&)d=ymBW>j@oAz0hZD6EBOJ1^(B&)V!f4Y_vBW@}eF4^U!Bh z)BS|>UR6rvN7lvC^~YnOHKci?)rs9gK~ussROdmrMYVnpvK+oBgf=UFq9~Up#fSb; z+YV{_OHAxi)*CUYYUP6K>o+I`XI>;7x)JWEy!CwpFzry;*WlyGu$A85{rthXzrgC1YeF=j_r%g+t?Rw` zFo!0uOI@7cs_nRJms+6Y!uwu*erFrhobeB5P1mWd4yf}w6vmwBU?>XHa~X0fB9>2D z=hCw4y(p+`sC|oy)BXl$6#-3Dnm)PkVNdCOBRGQfZL_Nw@uXK!*V58)AxMk({6k$+!-5v8`vaM9c3$caM&IuaGx6gf}VLZV|t>-Y{SK(kXBV9Nx4D(#LL2X3Z_ioA8G{i1#2$ zuXyA4_RDE6&8fTpe2O>)S9q?Tloc@NJGK0&7%$s9^_(b6k$@2EXmFXdr-R^kn=tDX zUUIXjmm4Lzu*l75GzXPB#Jvsbj+EMTBap0&P<_7`7O7a;-RDEPlB$)0 zzzXG&%EqmYFczO7X$vG;ba;zo5Uce?`0B)Z((%!E$-8dniOPzeRW7TaQhKetKIrej zoL@_t==PcBU#+z1mV-;1ltEcSrPFQ8`iRgey;lW?2MpT8+5hCPgp=pp0AO6sVJgBW zwO#A;OL6sK7yiI3>8~}d?+$pzamh@8Lcd!iJaz`tOkaba_G$+Qfv<>3yg9#P2TDpg z#cLz5-T~}lOfhZ4HgR)J>q6`!AHOI0F4nS+M*{NOdo+7c-mV{Z1La-G4x^G$V)9{7 zN=anUrcQ*h1)KE1KsK)|n~>Z9*CGA@mCf@fZ#7V73AXf^`6YJK#_@YMY$%Tc1gFE2T^Lt<7M})3Yf03LxuD-FAh_6w{+w~qb z`|WrV?|`+yYsiorE$O%8Ml91XEv>M#B!0l+B)93Gny%NSp19R3za4_bc!3wzo|Fef zwJw?&NxMFoLckC>+~C~hB$(FTa;LyTid7dV+8zd~yKEmbC-<|HAcopb0N0_tI0dad zWAoT6f|d@Y6E-?P@<0rbTGR=x{Qbcba_}{sVBnnE)An`i4^P*sr#F>E;Sx)Ew74>k zKc5x+ias?_h$pZ=dw&dli1nLig;JxFci{D=d9HF;m9P+wmjit^{mNNy%I)6i%HypC z=x}*YaM|6^>3Wbt3Vw=l`tS*ZDZ>F?J{$!97^; z0Kq-DySuvucL?t8?(Xgc+rY+MHt_iFxaXaWyMDr&-LrdES5=?7r+KShTIx|w(>jcI zUXen-hvmcwG(UA0h;zTe#wQHZvtJ!(W2eCRG~;ZgS}$KzE*E_cvUlo?8cpcJt)5{) zOUS=qn^k4ajGv)#Y}B4;a;)a!`|)V`soHV$j@sRarOnr}@66p}O+Qt}h)pvr;#pbN zJX&Cog35&$6~1Md<_~VHn$1_NEum+diPN3TXK#gS8}7fzKBgE74|xJlf~KO^Or7EQ zJqWJIHafcawvF_=Itsq_agSQ>SuyOB_=7Sx-imKP-ESA&#Wdt2X}rr5T|0^Ft3C38 z?MnX5sgB+xmz&ox;r~z|Fs0;7@UolX3mZ%~M_=)OwKq@`=BId@!V53T+^7m1p5Vc5 zcu;ejV~g29($}5~L_7F`g4#`02=+(f@yiCIq1z=|RRPO*F%`9MgM#bS%m}5-j+N*62U=58te_jRmP=qbrq( zyP>Ir(-u_(jR$S-E%*R0;jxpfpY1RM982NfqOa)Rp&lxDQ`V;C;2|6}za)+l%Qs0q zLK(lIK8;=)4hro8tgo?%e2^ykmW?$p7L=M#L6I&L098F##<5e!sy+%ef8*;r`p-hF z)=`CTvc}ZO5*@J9D2o*k0!)=dD)?D{j@m|y*ksl9okLC38S$7}4e;eZu@N~D-QU96 z$^3BEZyPT6i`2pB&{c!44{uh|Z?dpzxIhUS>hJep;j31w& zpygj*HAsxwU=BLD{DshM=)$+*Ou{lRBg=e3=1W`KWqR;>E@JNIWDwNKEuee~4 zWrj$C*Up!opiblxMczN`<6?xy`-{{&Xc-w;=@M-?=!IZJKX%4L`WLncyt{uV?sJ-- zMS9_cX~D9#Kc|u~+b299r0-x+23ZxOzpbfyx68jnFY84O_+M;Ni9~XZM&TWXnRDQT zuu*sWr)Od)_ucB_AD(o@p_SN+M`PQPiv^j9pKO4dGXWkm1$7DZzyyptVcNLm&XKNq z4av4eF2;U_(jr*X+!MKT4N^z(7-u}kxdNfL?23BDT~`_8FhgB4AGmHKL*L!SX2qwj z8(zSA9PZx-?@k}4JFAbLGnS_m9!XxPGbV?~q@`=H8n>kYp4b{JAiuxE(Eer3&QcvygHfiUd6`B z|9b+u7_HV#VeDHcZ^*Zsj;h7KlT=*NSF)ojNEIS2lY7Rb%8hSA3jv!juh%P#4%3Lr zsq1g?Jk7u5rpF@c(SDqqzp2%$sL1TkN>2>LgZO8gd_#9kJs~a==%`KToWGs-Sm3`& zR0aylvGh$?>9Sd6CeS1yyPrFFJNn_H5Souj)U+m5B_KIKcr!6PwszAV<+90W&s6?2 zEq&HFuBhUc5|t15OZAkwuVZY}ENt_NtOZo+A2Kh6F!7fL3ks$ALK=l6k1PDd*MCdr zomSBA=H1Cuw0>MoOaxi()C`W$wM0l)`a>yKeQQ{PQ8S+6_0YDaw-HEYy2fF!-E3*Y z(@~UAbNEB=E=x;s&0{4Z+H)>*C^jTq0F!qFK?G*AlgWhU5^L+V5*i z{5yWrSvOXUae`8vVu-EjC(qYQxebJ5EgeaBIQUVkW0!ySEvtq}Pja5YeAUI(;5#(G zyqF#*n4PuBBbrk34&Tj_Z0lj19OV3QEI<`hX#I+W%=pEC!j>v z{_%ws5`imWEX%vdPP=tPZzLA<_7kmZJ6ErO1BGo;0PX{1YcvbtuS`_gzmYE1zc$RA zG?&h_Nm#7A?H@+y{`XT5y=_+XRj%z`nP}1`((7oA(QcM(N(u5vCws8@`bOdK!QQ)j zOdM+)cR$V1)lZ8***fs=TQ{w!qQpJJwd(4Tnv__>e-AoXMK)46^)j&mzLnvsIb4@i zIyjhm`SD%CyQHxt7C8*$m$J4Tmx zc_VOaxT`9_*Xge4w+s6;ql9<=P<=ct1(bw|#rhQ4!q+MT9j5Ob@91TIn*u!fH;Cru zlXr9x0cq(#w|qh4ujw|lSSNKX69O)A&vo1qx`|l4Bz3Ge*)FEHNF6&Mik%Bh1q07O zHb0E>WRMLBC_E3Zz+Bfh$^Cz@fL$xyj*FIU`+ES>erz8M33QL{PJl%tRu#?KF1S1Y zeakoU?0nevmfO0)Za+;F;I&i#;*=#;hVafixwM>k+W0cGNm=~AZ9hLG9UmpNzkwZ% z-fC9wqjqQ8FvYc6jScHi=eA?5_7GULxC$&pL-r5>T@8gDQNeAg~R7HPGH zRZI-Yc|QJoxTzTl7`#1y5#uLV@#-+J3G?c=zFM}@AFlbFv_Z~XCW1Egw7c;A~4x?oggifFZ2&B8^@TLFP7>-S>oQ} zx2~1M0hoB8{j%1@lQn-g*h>DmSt92 z&AP}D?cJTzwjg@y@yK3yYL|XFSt?JO?x$neGhE`Dt@>Y`5jd0T5w^kRM@guFaXNV2 zy3s_~aBm+zhI=?;2+9pWi?ciLijojNA6>*oxf zX+HZ!k*iFT?ea#EAj6#V-JimXqtUW$ga(u4;@E zLB6_Sr_JJk1PHt+^jJUNq@1DdYCNIXXIh7~!w*i1!BPuvB=}038x_#S1nS@bRShnV zyntiuito;6Z6+)PXoZHIE)qfYRYHEswCQO=*k55JA z%OLL9Frkuir4{W3%I)Zr7*Cai`9EI~w~w4JlvSI%n*t$-7c#sNa3&Z+6;m!|mIuD( z?THF`EZq31-Cd(DJXXU~I|3|BOzya+u^1;FVf~&>d^cvkj7?5wpPP`{Hx%akvn266L)M`2g&pI8_)0y4QkT(SLX+$e*m- z5u1I(bbj$McQVzl3ZFk6X(y-O6<)Ilo7CJHgq@+(Rm;-uEX_^pL&s`Gq4zW<3#YS1&-Fw2o_1tqoH^E;n zpXJ1wLJx6m^bupm_bUjw@&R8He@_hjE)HNN9F(9zQi;lo_ML2kB9;2ebQ{t{htPo!4^ta=wD@KbREt3LVV13$Os!CZ^uBd|>*> zyCdf9eY*QF-XT|*YAXB1uvJid7WQ=hgiji3_5=qMws)=FWE9;%@1UIxJ%T!11_SH_ z7_Xr;`QCm> zjPu=Un}B4paL$~Z!$Fmv?H)Qy#SZSXCf|Sy{c6vrmG?(w>Sfn_-bl`LK(Nq{j7wqa zlkCqM2j`A>Wcyx~lr?w1PGcvsO;E>14A0orF9c|u_{?tnn*3sfzz>LFMIY*YNuv(b zUy(XnY*6fDxuQ9uig_unBsKda&Yf}QMlC^qm?-&WZ~S1@?{}j|AhH?%B#36>xx5~K z{`Ixb&5PhR?Uq>ZSpd+24n3sW*IS<8@J4RUxj~Kk1?8tnD-2`5*xUeeyh@4V%NjK{xuIhu+a?g|sgL&E*+zIbGg|BIHgvyL zdx*;c@VMi?8JnD6I?Cum2)%&ZZ>*WabmjMNp+iSsb+U|mRpk>H1ytQZnh^I?r;U}w zWqf^ZWbw|M*#i}T#*| zMqS$({2m}IZna#f##vBr6gPejoHv{|e0aATC#ZQk>Od&7bjP&)&!fV}J~y_<3!hda zq)lp)KCVQr&lf(LtB~+T@X*M@&zp)15i?cwS7KjSY_#S6|Dm6hdn4>Bk9Dp>UBSJ? zq=}=#++ZD+PS@rw3QP8dQnSU} zj^A+c>NGAoIgOQ&7!1*)P(TwJ9g?P$#L6E3H$~&PH=E%R*cY%*WhVdamE9p)@21`@ z+3`1?I0TGPp=sU=*H$QTri?(JUNqMppg$J7dwP`IXHXWT7XTPi&^`pzjN8fW!w5M9 zj49^~DClc5;t)C{xo3j<)Cn$emfev9!^SwSSCHi>u?3$9^S?*>6u_FG*=eBiQu2?z z!g4_wF5~tsj={PUr_~;4bQh@Bwj-TJ_zjgnAliEY9Ms~JyVD>#e|KPR{2nMK zAodr}H~^UtaWJR1eMyp-GOZb*SqiCZ=+b{mpA1|qE;;ehaGT>%Ze2)m{@mz?tl(%d z`?ABSoDMJ9{h6nZg%2HXm3Ps-=L0*{z#oROEGx_Z5Jh^E0{Qj5o2@hT6*Z42#&FK) z36q$9CwxnpqTea3mg)922h)bnaaf?Z)9SsW=m)*P{NE@kHW6!L`I#fKJzno)Z|Z`V zN*(34H>*pX=g3HBAu2-|*IGyU*_F@;IzibImqtEc4zK7X`wud2X8eoCKYf)p!n=|Hmtzxw$L}N}B7NGOUnJ|(2rq(IpPiHFK?Tt^l z#9;5(>3(y*Jp)mzcIJWynAfZ7KIT++KmA8|`D+COlrv~#2G)^P zC2$Xe?_M{h?dw+hhgZr;JI>yGf03)3)7yKf)A?&YcO?FE45r1?&U6B8G_r!Q8$@_)`5#3;8LMe#LoK<=;vXy^OeiA zpIyQC%AdY~Z>Qs;QKQ>?O0(bX-n@>vT;4?6{MdCE^u7*VgQEKt`T3D1iSlv{F|s#~ z5UAu&d@tcm9VPi2mY9i{^B>-e@koElr+1X@^>d_AUOp_eKkQF2IvJq`0~)R~4tmm# z^>^aCY++f%|7TtZ5678-y29?4{KCiEsh$X!t_;#uofwEq5ZPiQ?3vzgS+un!@zm|y z7u?4pD890mO~{+OVF)J&1a=EbGPg>O@JI4C!+GfFECqCk`5g*hh)G?ijb5RzAZ*b^ zWw|VMYhuH;8QM@^)twD_Siv|Zf9VZM7-6&G1^iX|@0E$d9ZmumJ)ru2A_YbR^xFOY zC9i6NR!=2zlTb+)qaM+7aq!0baj51AIW>a{iMC9%GYvoDu|nc+Z%1pBBADs$-yRa4A&A;yYzOd=Dp`>YZIB3X4V=JCtWd3Cp^{Q(yL&@Tc2Z0>oP9R*4_bD^w9KQJ0M(Z$bEMWE5u9Jv#0vMCg3=y*9>f&;}aweZ##o@5k@EGjgihY&=(%0y@(M9AZ-Qq+i|cuaYjo#dR2i3-^YOjlb%Z3QeV5Quq)6BzVHXtgui1m z7IrNu!5G?mG9)c@dQI$3HihMI2r=e$$>0S^Xi0RNZgG$XKiAE2_f2Wn-6U-V_x|3}pnR564{>puWhk^tD&9S$X zw-E>2T%f;!lPc*nr8}P01(i%m3gi$#Lp8I*=n2xLd7O+{`JVUNw#dl{B((#Zr^2Kl zCQrY{tn~f~icVuQH9OB2dCb&|2i`*ys>6m+{PG`cZZ;#xKEF~6O=aYhQcO#wkFp12 zawwDaejz__6Y}`vM3X7RP&Inu)xtFl(IO!w`G16jOHHw zKwJZEt>Q%Kco6SCtElf7Wf=JOg?(BjWFzK~+|tskzM&#KGmGLD@-_GHqfBpSUi;tp&i309>K^8qy0y`M%NMr2Nn9x#LmljTenbCE_g?gGUfVin4GAmI~AW#z35e;YF&CV z_q0?KO!ki0N6S?o98&z(^EBXuv+z;Iviq!n4b}gH1xzjB)=|0R4yChesu6{;9Y(1u zck;OW)~xcNxY-(SfEsHtV>51$Hj>opb>_%< z3PPeq^aB9=FM`al(LE^gyG~e6u!WvCF~4%4X#HBi$1TQdSbYe!Z63y010pl#<`24# zc8N#oxLAMg%`S#Yc)^kPV1$nIZq^a1UvBE)zW#?-jRLzEd2i5p28UUma?#|q2aKzk znqmmDS95j`(ad^NXMNC_?V?k0i2#}%5cLr}kbTfz_ML@lFHV-?Exd=>3h_0-nC$a) zXK9+jjn|VQQ|5_VkB;>8m&s1FNmr`~NTy%e&pEcY##3u+m*vhc2EH9V-_G)kjMQggknWh7!FQ1n^$ThBC{gN zW(s5QT0NwoU51aNC?a_Joi#8$qS^f}5MLjh5Bn$J+YXPJ@7Hx#KoP~=D@FS3f3`7a zw;oJKixOP9=1fOl(P;uQ-gTl3#Cuhs(|Z8~n`MBtPb2>1p%ERNBAXo-*f`@53$o1NY1|H%QdtsqQ=#}@LmI_a0$ zMbdL7JNy+p(JjUR^g1Y^LZ6CM?o(-xNooJ3;>rA6^bK7|OF2CU;W=>z65xNp&ieib z*IJsGxD1YB=_e2{@o0X9#ZT_D8s0spdgXK z_rx|dc7b8ti%-uaEFueE9sh%ccM;hBths5-rs(Ec;(Vz}y(}$lrq2uoy~k4>I)M?- z0}c)e!#S#su^@%GoEA@h>gqs?HiF=%SxGvmsQY_2Ts7?WV@ap8fEWSn7@(C+|Ht-5 zDc0X1=h+lGa5|yu8|p9&I_Th;X|ECxgLqt&rOn)ELkS1-p%n6Q`PJxQ><08&#OU)_ zl;M!9qWm)H@%nb-rvkpZE3>Zva!EQN=uE1w;UCybf%*(v`teJVFJH0>5TG(H?j}Cc zR^cOU-J%Lf!kYHn)FXJsh^swr+j+A*OqYDFm!Q6**qpa5o)eCLE8b>cJp2>}w~4z& z;hcrDUaj8bilix7+JnKLx*C*R%t_q*IX(S2YGax2pH2&kj!$5u>6ch3Go#VXNc>`C z%~N-DRjJM9K^yJrG+*l^W^HF%A}rudY!+gtn)z%U@l$Z<(q=Y+NJ1gN>1g zH7W$E2T3kPo|p55MC>fi`nCjY;^*4kd)PPr7aXUn&d!~%f-bJ$V{XRmWCwe!Hk)V+ zA>I;wZbBbCDRftGg#<3lAvNnF%GcdWhiD(xLQ1Yb#PB+>jA(^hK^U$7*hLxFy$1Nw z163(JG%SZ<-%#UIDo^SvVPLD(`J-h>E0lH~rNoF)O2Z_}88epou*6u&eU8c%D9h2H{T4H1T|@UA^_AfxO;cXk_lA#M&^gpk?VZqO8~=|7s= zt_ABE5EgWx8!u5H`Mbj{MaOMl@ICXbr!foFpsieWLYw^j(3RDemQFQoN1xXJt7U_<8AxyE>KM%Z+^^E(F6BL)!^ziP2VG z;}U|b(m7k+RTeYO{_NhlLy(~f#$KxMK1`=10Ng9j;!ul;4R@63y-b*VfuWz6_WVBsySBZt8=F1DZ8G2XNvhzRKP;^*wk zjQ*9NR2%=a0I3rfY6UYWaX60!ER)9N(TVis0SHVCEMbTYNU^+O7vG-QW8!inZXM^z z8U*L)Uud5M5M`R}wd1PWG&_DN!)4$H3j!#8T#%r|7D&X$+n>UJ=k(vfZaoK(_)6#) z7gex!-rhxh9O%9#3ciemW=<_adM)oChv>u8;7&(hk;PiI@Z-I3Q_ZQ9KF7gJZYby^ z08>dm>$3NbPbbpMhA|xQ<>ZK1>^g}TiK5+v)7dTP*-rOzEKm2!Xv}7!X_luK;+&_Y zh>2f!OpB45kb6hPlz5M7&*E>T2}i0&Qh>tBJV!$~RY<4^2}>9U+CwHh!^93~#3=wX zM+6AD&et*%Ih=Xy-qXo&b#^%1o9^H|n|7ctW7L*A3(NCn_#;MdV^iO#YnkPPbWrh; znOAr>BrQA`W$XCzZDK+%9ZVx{BHfUEYz3bH67>nbY43X-evPh7pl>yd4fiCdovS3<9j}Ph9mImv)3$`~7;(5%9Mx551@Y5gv!)=IApQ#9vDGn~22O!D zCR^n`5O`sAqkQP2tCgeZYL_pt?D+6#X)B|KFA)m3iq(#FQ64F#3cERWb*5&2d4Z(R zzWNH?qE^$A!$P~J^S@yFGN=c9#l2X%VlGJ?ewULsaYW08ngdf@&M)wZ{u;p&GE@}GS zo`mHHktN2kg}?N;1$c>d>t>Mu&tI;PS>=R;@GL8wdFeMDem=p{HzipjbGv-tdjz?fod^^U6kL1_DhMMp9g{va$vvdFR{gQgk~=jzXV4?%{O3y)cleB>s7O{# z2}?7ttA4N{c%2v;!4s%demeTQ9@`F6cBmj!@3Fa>Zs#p&!f4>zUp<&Xg@xI=1M$KC zh_tz&*}7fQD=aVYrz6!O)j(dg*x=L&nA4ZnT) z4m$)ZucNW{i(3ep7CgjZ%3*a+@z6z`mFwBZTI>08->HEb25=DOyoKZG5Dq^)lS_2s zojEbHRiFEaV14hsd(TeG;PrZpV66jqVM?QknG++dk7I|I%Mg#Kpy+i&n#or_ zRbNZ{>7u=`W7gqw7X$gvScOD+jmG6&OxHzapU_ye@GQL)HCxn)*gbkBvB}+yM?&}E zxpYxr0u`t_bs#>XVj2;@T!$j&)vf;^Bd}%;A9J#`|6viqHhqov{p?}%%6>KDSJ$V2 zdxrBGdjs%RNBgh%=v~-*+Z})3)pM#!JJQ8SWBI8cYVr=EwC}1DQ3(yNlKZiP`vOlf z|APgL<~P|poG9<@E4s?_WUZJgNPuCQa<(ofSkZ^{?(QaVJ;?T16F_W{ISu_QGkcXx zjoc^PtRe*%Hnq4^5sWliUZ9G@JHNk*=Gbu))pt@xx}@cAQD zosZ#RH8rY-mwr8ld3FikH+S2hcMg8&$Eg3?=P-jejCs8^+&=ru2N%&@n!F=o=N6lnPf zt72^VzOV#+o>gVzyR23zTsJ`a7 z1wow$k#lHwFml8hBSD}b2sg9dXPhMgoBV|Ah%P;Y_p>i53htu)9j{H3URmS{^@RRi z(jk{iORwi7EbicLL-?*OcvLk zR8f;98)6*du#F|#Z5#QkPpOOvM5sWsM24VL-z43q5$h9|R-kE);?j({UkyY*{Gp|s zjoMSJyXW8Cu~TNnq8ud%KOE-YZSvQ0+L>8!Y6D06T={lHYF;SJ9O#eKG>|!G{}4wV zbpO*v+B`=ZY)z9FR#l-5!*{=;wBqXtqQ_zB4>x_C-Xmk?q*~##b(XP%tT)5oX(${) z7V9tslRMxB`0SN1(vHGwS^FeMdw07{NMyuzalgU61z*Jw80LHbDdKV8=GEDw3ZLX8 zNP&At-rsi#a)Q`2&7lTcfq8`FoYv9~6qlC$Pt0N?S?llk$t_7-KeQ-{#Cr%e1G?~k zV{{vKOSw;YU8~$pi%C$rHQ;#HG?dX4X|yfAG6h!k=0;)>QKA59@GQLlZ2su$`rEPa zMzL={{jnA~^Vpba@ZtIXr;mG+V_O4_C4qir?O!i2mw{Ip6}#UnUMn`2eYHD?!!2^7 z$R-6j`|Z~(~zB;V>+VBu^n*8kc|4B=Ew=u}5sdxHzMs6Nw?6H^+L*z9+=cHm? zq9cz@Ft$)trUfDq&!u*u<#c@oz9JHj$B05!v&V`uSfDzvRj#jN)DCH)@Uw;`D!Uq{ zc&D*tZy#NfIx8-HyKn474nvGWzR?u-2{~bWeQhGe!^4OOE6To8iw>H+_5SugHevWc z8RF^)d(QrV@KEuo*c>@}MpD@uRCn(8b;TsBg4r%Rtzys20%G}la9@C4c^P*&+8gf3 z=ov!kQ#kG3KFc?#@bPS4p0~qo5`fyH)Pn0fX;RMC^R*$({2%c=#R>kCiDhpBBz4U@ zhl_9k9`XcC?jKrh`*Y^+_n5xdd1-b(<1ti^uFAi7Jq%Jz(hV7wZ4}y=t{gin&aDTXb*~F6P`K)a-my{R`!}cI;3gpzT_5`$jq;4V zpf2Z(>295+qky9Akbb&+D&lOMv!M9*Zy_J@#!AZW^#E5AyXDz%c81K{pS&@Kn$=HI zJ(3!Zrr`&W3E@LMPO}{ZCs5#Jr^jMTbYGDzI5zhla-X5lWcX9|zjvb$65RCMoh;`9 zwlRFlWckdtCoVj%x46crS#St9oHcCiOGirzkO;bRQSHUY<5-&JqJ)$`E;-#V5^DYV zaK+Wa^z!U8=FQ(PU5yj|=#%2I z-k+z(rl&Vol?$rxF|FsQto#iwa4coGz<8~Chka+?%8RO{coYZqgfuRWH;>g}b3V$R zXZ#-8qIAj&9axy&9-ID%gukS981}O?NYj5Z_49>liJuA-hCgIs_k*1SQkfK8aPQ+l zDhSJN401Id#Ko4B=Ve8Imq(4$C!xc=~F2ilm(+q#^RQ4G+L-5jmlJ0J(-}we-%>pIyF3=2I z@(s+pSFAia=(4H?iQg5;BS>ifDZKpI8gNqHVzF0N6zYua)xf`#gl%7)nY9Zm{Ew2^ zJb;1};fcB_f#T$pU%WL7n(-xXLBl3t1UJ5wrjfoRF*~L*0bhbQrsFV448X6*Zz`L$H)Xu)hTkMzVwHy2o)UB?YB zYAO~|5tt$w@EWDmFX4aa& zwXQr$!pwyhBD=f~ZRxI|XXU(v*sPb$a50QEZLp)>|#h;c2e`q@{9ev$#UT_j( z@60rag$}Oq(Rwwy17^@}vPMw6+!hO#Agu;sPOLgV@(U=fO?#0(_$&KJ{iH8w$!4+a zG`c15%c@S&K`hiGa4)@W|94wGWz^&9Dzc;zgnkZ1O{L!QPo@1j$7yIdZ_`BAoDW+w z;UO3y^p&CHIYgaB5oN#Ope{7obB4$Gdhucc^VRAFzuCeR>JY3jetisfaXRPtr`>>n zLdTblb)imIFzqE5bZt9{1U-Uo=@zhN-Lw zFPbHDjsL;8^A_drc<*ckVZ~5Z zzY<>fNS~DUN4gF^^Beod1voexnbN?kMv)rSLbLwo9gx4Umm@46J251l5q94`GMGwE zXt_*{ya}9VJ;@(}`_`V1l$@Ydcc^@2vLR9*|3ULw!Sf9O*YdRT`^@+dc1I;+d3K5U zT;D_c@Uqt5uVoo4ATQcg-ne|unrtjk`;^tu%1a+}s0Db-{`HuCZnK<1p>;WYXa1x_ zmFX=5Ie&L54CY@GJ%K^SJFndzK#S=@It%f40rD27%t!8qjh%LLte4@KIwLYpWRInA z50QAb>;XU6LP0J7psml>?u&xq{B!ji*KN`oUFca;MMzPnkIP1~%Z1s$|-{31_;x3G~h<9@T~c zP^|Y>*)2^!!)3~8)q0#Ku#zMj_I+UNTqC3O(6mxz8uNy(Cn%aNr(Jdf6cVk@f}Eo? zBH=SubWJy`ZI8s+heVk7=;SkGA&G`l-!EkZxDmOl9@MUcNpMub_zcKU-~dpgKmDYX zhq`QD<+W(dLqjL@nahM>ZqBHrfe0bR`vvHOaFFjyO!)Gx&m(AGZ5IJiHxqw1Wdep- zGr)*up!JwWp6&hj*M4en5XZ-{VfCdVZYDyQB=u_U!(a&E8-j8vhpNOCBPf*c6w_{a zus*o>*}5U4S=fHNUEvwPH>j1HN}Ui%=NXv=Yp5*op-(Nk5BNui7jv43$am(YCO{Cy zkkEn}W-v3_Z;T@5t3%k&(G=T@8#WM!uKWFn*)X7B@2Srp_G`NCL{-$5N{_Zye`NnG z|J1Uafa2&IaUSz^@8c6t1F4Lg_~MIt91oC|w+&q!Lvdh|C}IRNQAAuHNz3NP@MtoV zefV|S{~jcoOem89Mn#Yl34I2CKcUhWzEQKh#-$9v{&1DpLk_IEX=>pYWcye|ZS&%& z;2ZxMIMvSkHFw>cyL16cME)dZj~=fi@QS10gRREJjHT(5!IOXkPfmbtu8Y~-7m&{y zLcB_vycesVFu#dyIyXEDT?G5}!waOr>G<@=KkpnhnU}*K_rD+IVVw zojI^|Q|*1)MyQ7sECSyGDPyIIK_2YLZ+!kK74kx^I%6wwE|l`GbRuRj=|d z4@&|Q8izn8UfS?Fri&IOTwa`LM3h&QHfu)EPduDcEGfOccct5zjjk-b&Q|oA_H|Ly z#I4>{Wmw-o%ta;e5H9m?%}4qhoq2nii-XOB8i=)pV{yqrkB0IV!we2{yL$JwUw1jc zLC?P)9!SLAJt<9plCmUQ!dTLKh*slGWsWwGn#c0mtg)BvQQ%g8GOcP07}1eiUd+FW zj{E^;MCMPXJH(QVB1z^{);TcU7EbktZ^ zTOCpmk^`c+{X=42Y7lw(;>d%A?wpo~;~WnuTd;?xC3&D$ByiE)i{HcDX}5hjz9-aJ z+-V3bG1eLh^K4Md1`R3BUO(f>KHgJ5w;o@6^&-nNabfd`Uw$t zwaPo|TU-)?vb;;q2SG`8S_QT%rU#jd3B6H4RNiHRg;!kVvWBOwI=?6mdr%50%%NQ} z69(diFsTNMe6+CNBPgg4f$lMUqWjYodssrtCqUldsN`O8#C>k1_>%q(EFNUgVSEBk zgI|j4c{P?IZW@2fa%hFb$Kog%6xS8B6`l)DQ=|;ubZi4vNiE8b0vj&k#mz-3)g|J) z-ba2UbAC*rio|5v-@<+1sNdGdq2=xEA4G9@0(xH4o`r+H@&{MEL&zImmi2(TJk?Et zTxk*IW#WL&`b!1Dky~ub4hywC2yTqnY7T7E0^P!LCE`jZ1peJxb|*`eJnjhI9C^Zd z3LU>=D5VrX_H3r>w_R709N{0{bq-NV*>7V<@B%a)rT9H9Zj2`a=8ri@GiRV4)Ny&|I`KeBi-kyc}_+q4? z8MarCY~9`HMZ`PBf|788aN9-(jxj~T1e&g4If|5$i*eG}XnUw(ZSVyNxb=v&KhTWh zTv|&WB)2%Rd)M(qZFMW%E1{WVIwf)PqBcGfh+WA_`pw!E)M2a*p1&7m&Q}%Gmb`i- zzm}VlB{Y|3Dm`k_>nDx+0EiO>P!H{JI=?d4ynhj*R&#x#BV%?GDK)DqePC2W|I3iY ze%~QM$^ADM+1{DN9B`k>5QClSIy(2b>j>*w{o3)jvcj_({zkf%=4TdD;^+u8GpQ2j z`dS#ec)xp(;@Yyff5Q}iZNc@4N*^9$RRfOw9E82L9bG0K+ujfQ?biDgvXxG!LWUSU(dIPDL`(tt}IGwUw zD|cQT+2fs&Llb;4;Ph#)y1IR=E}R%^FGydDIgn7IL`cjI-f3tVh3#zi7!+|M2@&{_ z*%&DRUZKz0l*{DO|H}tPJZO?q>NbS*n{o(z9xMTd<~jCJCla6O`qI`Oyb8bG{DjG( zgmQK*vR#OpzUdE0NbyGBT<@fCE;CM><6FnXb2u8gi@~ll2)JPo$xRw@b_pJ(F;5Pk z)`E?0l^e`7k@u=dCA{82(f^e3pe~)gsdTMFG%*v83-I*xC=t*iHe+#|{=!LuLS-we zSQj6_?#FCkXgBm_a%JSowI4C(+YKG-qGYC#AY&&VK+*p9Q=+GaAzTQN(fNh{O0U(D zqShxfmIq8ebpJ}SgLz%a+H^8qN%$W=RX3RlD7oPgx zT_&Z77royxHC(T%7P~Qga&lVw6jYzVKf9JRQ7B^7H6jYX1iBOP7&v_p4r}uy5QbhP z7wd3`PO;abQ%|eKhTyYakYQv{Or2K;B-r!$(LfbZQ&%b=*oe(%U_@QOgtOg=)9jtT zZn%qGmEHVuMMc`CACM%^L6KC(f#cTptR@rQihGEAR4BNP=*Ot(sN)h$DIw(?v4@x6 z{W1NVT8ixO^Rk0s=gCTsV7R+`kGytW8Q1X7PHi2JOrtAO210QXyV>Aju2K3MsTQUq zgzhNxQ=7g=2ry3Hh4h)t!9JvGcYT{S?&Mze$J?`yuJ<_D{zA%8n}igfPm8blDoeq4 z)*X2`Vb_i~oM`nu>wIbl3rl5Z|ADkbux`xTCkKg9C%p?RX73PYeMl@HQmRX2%8wgw zGEKhgFDas|j~+eR;{m@u61epj#k?`Bm1T#+@dEchwS5_}4EK!EZ9R!nm3cdT6-Pe4 z#Bz$8@NhUcPBm9z55djMF%pTIfOM z;?QJJLHu4Zyk6m*YJ5NBF`4G|VRfEy-=VOL-MT}x?Y~J?1jES!~&RfIS5vh)=8FV%Z6J#js8>qtcjbQ-C%t++ zW*(z2NpRZR^O19H2xKk*C-1ARl4cEEY0#5YIgx3WqG(`6pQQjiG29X+`lJck!QcZ>(ao zU1*eyw?K@g|3tfU0GCuv=#^7^-nY?Y9CsiJ@y+XPyRvLPXF#n@mt^`&2m8(A_8TY@ z0%9&L1;?GvzuuMEXEf9X}3gm{9O zXAs|NC>Yf-N}Z=EX9b?qRPl>MNc5+A3@sl-!~6*)Odb0P2{A2)98RcKE2>F}F!zxq zG!~L?6;)$E9GWIUSf}e*QIdes0>C9V9j>KgmbN4spiqI@w zO3Du^IjCDu6dN!If98=P=ED2X9>ZyD&KrDEH0-32t@7I8t*T4^&~_Qi`m?T!6AylY z=%u(+7=&x${o`TPELmZw&Bd)ltm0!=AKsW$Q)cLR%p|cW4GB`lymOJHoWx3|8+W4) zQyP07#ah5$tVQ)-g-`WPZ#yby5)KcWZHK} zUjf8Dm(KkcPeatq=y+nC66hrl17tx9N^SCrV+)|-hh$`?E6RR7IL5~`9PIbALF5sL zw-HIf>kjaQsUUO;(*L;<;=LZ@(aD!!Q{W|?CHre$Kg?4o?qX|n@Hhb@m8*a#+re#5_e zM*P=9vHEcxvL|nnf4Mu*+pjNoDM{UD4%l;^70}pm$hWoRJn1RA2Rrq)&00Sg$8ZU{ zy>|j91z%dHiBoXo;S>M!K)*S&E&3x+=1r=)G@4E6`~Lcn)BL&-$b`(0jEDphJiVsJoEZoue!4w}4T>j+~O$k^D zM$Vt0hJiTanw1N_?HLQ-V9^~W3y!0CJp%p6TI3UKZhY?3*sfwjkC95N_nt6J{=2D| zkyWbMGZRRu)or{fC>C(zsjRiglZwO}MO!EVrWARTmT#Uj5KjsIpBAY_ClQpJVejsc zo?P;T#aMP!UBuB$ozcQ#fgUfulh4BMoqyKyliL!U=DyM%sKTCj>0u%;1* zhU#u-n3<)NLcE&A%5ZNEm9{2ba-syPr}SO z-ovdR?U$?kJga(5si8;26#EmB;`F%06}F40hIy=uhfkT;&U#8eQ2Rz#`sPbgPv-`>#iAnBXLt9w_f)=M(S9|dzGz?Z370$@ z;?J`Z;eVhS_L?>dA@W&otDia8+b;7eBg%MMlt3>Zuz=!B@5vU#*wp3qtrUjbYH*qu zWG1)S7K^?Ls@Q~Y#Q#0Hb=Yws=08HE|CBZep7=1kaMm;PuTox3?IdB4&Mq?~QV~FJ z{b42SfOW9bG+`uT{n4;`3a3|O+_cmi#f6`D`qYm?ca^YVHXz*2&A>5+&k833wdI!z zZ@&@T_&SpEeShvG-Z!p7IhFF_*n6x; zHa>kt?f!_%00a&QM0Sbi*WT37XVV_@Y32tyxV5cw#sDCsJ0B8Y31YBsVhMvnhbV65 zwvcwahPNckjZ1bG@cw<%mTk03zzAar7};$msmgORFZj1{_qDQs*mP`Z?U`njF&<4 z;qj3!YtQ?SeLbdFg_D6yRixTJBV(B&~?f%Y^ThLah9_C7uwmsf~5x&P>KPcFZ0iXQu)0X9pne#f6Wg zK_Mw9@~+SnF5V0FF^-&y!zR5?*ZqYw$!P9cisj*-$}#*qg@`vLiR{`iV{yXs4dUMC z-y(L^=}>gBqn_L>?0c9Z8Wf;*9^y7!+>c-t`KOZqzhf~d->(+%47jYcYNnsnQBLz# z`#SxI@o>g0 zcfL-KYW{ziTLZXi*q{pTq!eP99Bx&xMVvarsKM|j^50rOC6J_fykqIvvNrMC3;_wv@V z~QMvfkxT&$8c@ht*Lf3L~au=JZyVjHvDwC8Vzj)|HfV%16IO9GSfYhQRgRs-^L4Z zPx9V{yA|$aKsuYnv=ha{?qh0jCDom(mwT+?Sm`D_Zh{p@ARBeFc3fsW%Zpoq_DAkA zaw9Dfe?ds8mD>yt*S} z{hc%M7|uwUDQAABEN1l@{5X*T-_511J^VsAKpZ79B9)N$ZrW2q#=`sIc+7N`yv!qm zn=ab4;OiK;-s-N8(ndo`QYY+S03us_-0J7xO?w8pd(;}$)}t~7c2SC`Nzlj?rSuy< zj66^|`#fc*KjxpWrDW43#9o2!zu$U1S64*C0U0Q{mRmFgRNvuMC1NRoRz?0OM&m9r|n2m5s;BD5Zv9R-V0&kJpX zAL{{6is86;9?bXZt5^UW-5Ylpew1>}|NC<*q8^Ar?LR%*#`oY6_zMVj8i)sg_VJ4= z#$9;`*SgUU5I41(r38I{-|Qz?y8>2o)7R(wQOwAq%#Bxc&V>r1aWAsP0HUVt(xhw*8Y7v1W*ZtG+>stRd@~q2KWI3tnlQun<&(i zgAao)DPj9@z}kbBP>&!)c~K%1aCh^*&TmE!bl}FxUE6S4FWU&OJCp{72L%rD53|$w zZ(KT?rx4ReQYpO{ai5HRH}^Zmif+bFzU?YTJbYp~N%8%meJ0v($#lkdnxV9UY|wctS9tRyOh!fsH8-8;_bDiFWoB!Wat3IJroz2AW_u zB-ZbC>B?ob+#^sRy!RMrEMY2~Pjn@y7oQ%7D2(A}&b?b7ckbcr`P`#4^b zB_=~l98@ooV+YKtQNDt$#s!Ti){nddP8BJ>`pPZ=HbBn-A_~LJK!XOLF2KOBwXUUE z79o7CCD{OXDLs?$TkQMVp-SG!Pyy}>Wz)9-nFwzxRN&dlA`It?pPR+b1%$4HG3N%M z%i1e3pIHSU$2sDdLmU`_GXtH?;`{MvSrvRq98B`TS3@rduPJ|!p7N`b%M|}Mr2=Aj zI3{PWwdTl|P8b$3Sl;y#7QxZ)!dYCR%RGPRt;NlM4kw!~5e9PcaKlp^TooZV3#6Pt;=D1lsQj;iCD6wg4m zOTU;nfHu48?B>;r{_(Ah4BC2|315Bsu;5XJ7G=_VZw;QK3nc5f;vCiA2T9;IH2YSb zYV|E1B3@eGlDjcEeY!3;n2a;*@DEW5P?BtC0D%%>$B&VVP$ucwNr}XYMm*vwd=1$DrWH9X>Zv<>hdDE<0f4NCENFRDh0$y0(|2ltFY2^Hzv8~ zdM4Ym{p{9D^NBvu%E~3!<_M<-HgsY~R{VAr+Pc`ri^HD+Op=Z$Nm@A^ub_ z9Oj8@xqy#7hiBafqyJ>#-$PC~Ag4_rY&8asU)k9RJkpX3R zroh7?Vou)4b#fkxw!oi6qSgyMcmHb&L9N!&Q*wU1m{nle-cf$u0r=ky0Ou6P&x~6w zq5&Mh1D$6h0}g67W44$_h%>Gu@lTZ@P~?g^F?3f^KIjeRk!!tdSYG2vrD?!UO61&F zxDrkZ6+hbQgsg%;;E17{CfGLUxBjdg#1}i*?!2H@^CERaKh*d^@gytGefFh~k8g~W zv#v~&${9hDQUSG4zF|@q;*pc=Y1N+o*?C^_FA2vQT8So0j@}20Un6HEC!GrXkGVi1Gjx-oQhB zv!Z&kBF*gxd1ld(Ro(Zie@d`w|1~~7$ow)K)4S_4pfUAQKM4}#t0dZw;;6(Pp7v$y z3)T;&w)C1Z^;r2zg^q;l!)Ti|m>xRG*v&9=?G|iM1!Y&SZt=dHO~3SD<@mZr04Cl> zh+DqR^+QZ4D?)#D7Vyt;aT_rx2sx@Jn+o;29Rx8eBV675#0Qi<%iJ{gmIikdoYF(L z-R32Td$Yh_lFAIoUw>{gY@ow!8f zodcBxDUBvJ5qD$`ygmk4Z+`27AmKZ#!GyF|?cp2JhbfucuY$#V*!#Pw?U#kvk>rzT zbl#v?MbJ|unArAh(1$u(cY3kftj)<;VNzn#h zdE_u3kYx#+2L^)ca>7+Y zjw=Z7H(muse($M)6bl=U({HLBa#uQuQ`f(?s5J27)6Ui8wxzQI?*Gz=3qNqpdA%=z z%#Hc@3MRH3?CX?Ot?s>ye5{`nSV(?Xq@cVP9nf_- z47H|0(S=5CS9;tL=O%02-Z}Pii5)Ok+o^WOGwOxiYw~2aICB{f|8~@GKIQ&X8k*(S zamiVh3i(#F7*3}eQrkPYa9!g2FQgi!Pg&nD?9!~$7Tdb&waa`#rRnFcrj?)Fw~-zx$rqRcES^n0A5vNq4?E{Fi#b1*gDFc2M@*X0B|$-X`bss z_=zZwCu@c*S1SBfU(T?3@|JqhEkqBkpat`G)}KCATebhEY<~8;)QC`Bw z)R&QViYnUH9&!!&GjZ3)7wFB_fgYkzGozW*s?Mf2X|o~bFQh%j(-v4lu31m(94Ky% zj8B}S*gB@-pppBZR<2dsg1&0Taw;Q4Xvj3QVpei~Y!c`h4I(!Dl)ky&UT4aYZy9sT zl@nsZ8sDuN#8YqeNWF4j&sff#s$6P%`IUxGJ%#p*9Y0my^$k#RGP^IiQP79w)SHqu z{Bc_^NZI|{kJGNDA2@-3Ro=NNO!bfhhGI|v6kgwa!c7h4YgW=&&AZ#LHQJK`@iA_p zZ!zdPaZ&S_N$=??P9gC zRPY?8+nRd zM@_}@*#-aWi~jkSp8a`Wmgi$T{1cx&63?xnk^aL`Z{HU@>0DX=)&kTYdJ-PzH9h;W zntLV(-MMN_Lo00%4|I_B1!)X4YwK0lQsbktjWw>kvFUqTCc5(XC`s*wPx`+&^O7Q0 zho21{&wdfNZ0q?$$k zYYeC1WXx*xvW$P>om~{9jOb(N(LMSB2sNk^G<;%19XpwuLyXapr0qdI^mGVW>$d7C zg$OzI1Rf^39_;JW(4}2&rVMV)B zOMYCNB#~(Ie6td%tJZZs6BxF7{f9-uc?R(;=-YqOy7Y%@VJj%5-AvJ8@<^MkpkKRL z@Ldm@bA_2Uy0=ex2DUO5R)1JN>=ZLu1KOr#^$s_x#%y`wd19r_J=mLH`22%(b3Gs+ z-BP9`>zR=H^LFk+In3iyJ&(U8r<2~GNtgKO{beaaJS#B&nInfJqM&=aexFPcAblDv zirfr5tO{-$;bvEGBO{%(kB}#4Tqol?B;*s1hH`l zgdd^)s!ajeqzk2`UzvBBKR{7+F~g=UMW)kF#@{f=2Pwb)Iim^Kpja@JoDvvPjQUVz zc*g#BvAC+`Q!tp)_Lq;Qe8QZWmF$K=O?+@7tg2&NUxyrbJAR(-P5ykIL;D*?S2zne zsvLPIuHylDsdMkas|4LGA#5;=gvJOo*`2j;-<%8U?1aF#Ns~>btaRreSkfr+klDWnZJO^M2Pn1M>QJ?$zOC@hmCYoZ!cV$tL|K69r@`n+H8>PFuaGzRwC}TI( z2Wi+wqfWZgv5C z8`1J4_}AnyDvb;Qt<}Tl)5ZlSlL(S>1;oLfz( z8GIvB5O=R>#%N0M@wSOh3M8n$xP9GZ_+UP`+5W)4HOIK#y{z4Jo~rT`X1Q-}6`RZ^ zId0EiK@EO8GF{rM+whi_!(XL|aPBS%y)a{7!&EXau=E}k_tB2~0_6ZM{pwa5ynfP2 zK~z!6n&OVy8C3NJ-!=sOYdiA~EN{7FceMq>4@R^Dgtd)8v{bK!G|=@fX>v7 z@Uzs9EPt{}dh1paf;ljHo7mO5v!6JJa!EROd5+{ct20EtYvwoez|W$Os&y;JlSb7R zHD$uH)}vqd0}yX{K5{x=7LLV@9CAX0D#9Xyl(tl%dAPJil~2G6TH8FE57)`;>kBnd zof(U=Os5oFp9SMAdRl^{Fp=)6W*`2WAJbXdaSgvJ1)&F20x6Ac#IHi|N51%V$VC$l z1~~^yt)mRq*11EbblN68Ho~>1O=$1Hnaq;s43ZuIvh%)lZng8!i!G)WHaH4r$!P2R zp9M)?z`vfV_rg}n^Rs(RV~;@7+k_7ailDJ1&)ma9m!II4A4h@EP3Ugls|iLQSJRZX zgX0G4?%2i|ZJ~{;*Pd@NLT!VJa{0A>$zwL{u-p`OdeT-pR<^lDU+3-9p?VqMYx^cU zjeGJwp5C+6>?djVT3K=R$Ji_G__)=}hpTJ%!LN}m3@o)X0mZL*KEbGGtN8x{8Chub zIjgvwFmJ#Lfe-(*zTP-~tq3mQuvJSG?0a6-_c_Prm(?4Wufqicu$?}%KHm>!Ytf3o zRrTT9&SydeSFox1>;R}0&|lwcHeQ^G#^fp{ef{CHb@8GW^Qec1ox|NA_8oyQ$a}59 zE&{sk{m}%|NGVHsLMaL6{Z}tVZ20kWQ zJ>AjPvu}U=KBXwdov3s^uw>PZ*ZTKe@lUL>FaD37^NiK4S>u23tZ4oseUU7kgF&c* zA|<0GJtY()xWW?rMNJrx)V_C{q9%NISCUh~3FrN*=(Bv5wB}3h%FgGs^0yJnG#Z8b ziZ9mp{@Acr}L7yRW7|I?4bzR3}O{b#k66NI?2Vk=$Qr-h)|=37;Wj(*Yxd z)oZuk>yNdKhF4-f?AEZ;Rcz>R7{4==s!`zR=x#0>>o+-xr6PoPge?aDZ8X09i8!l8 z{Hr$Gj}8K$s13ngT@)Cl;!thWltEyrj#6clu13&l=v5QP7%{v$M3*hj4%G z4X*ZgXjwI6WpN@pwV>dx)@Xmn@*wsycRAv?a0*K(3t9S_N5V&>Jpd-q;fgmFb z72lDq73*}!*$O33jG6XP$4ug~_%r;pxLf^jDo%58B`FCTn@B~%t*_9X3c5yu)&x87 zl}^=Y@i<5qYN;85Zwkd$YAk- z@2UOeQ;(otPad`|`WUojkp#&pjI_I?p`Rsu%>T9%`~qO+zH&UWU)1h$dyd6^g_B^d z3oK*Xsbx$yD1}CXU}mk!Ny&Rz+{7DP#_#h|RoB)~)a*xTR@^fz2o%Hq4$%R1{>k`o zqu<<|MbUcUz+h!roty9GWPVwo`VOzzX#VgE43VzU#83WLi3wE0DlZv{)I-#{@J#yG z_4|P{tJ=x8wiy3NFn1A^a+*r6h9o-nbY>_5mgrdaBpNtxG3;Xc5(UF!zt+A z#sY5(@N|w3+!$*eaP}iD-Nl5Jf{09*itY(p=38ja?wy$_TE!l?ZY(_1Sm1VT-)YzL zfVBXj^)()pdHqEpjzW3RvJe%@V8wpRo;xqk4AWCxT>dw^)JzO-884+6dO{lxsw;G7esX5CC2kF|FazlcbN3U~>tcK^ z@VW$uxxiz==nW93@z~IS%6Tn*1#;zy83kTtfc6cr+u07x9|X-5sIKNOUTf~m{(sGBIcozZa@4Xayi z@ltVjn{!7EtB)(?fqx~0aXpG@k&HIr0Pvr)=1(vl3yIUXMyUjFi`dvrXLjuMAboxI9(yDYRERHM&GzV|+;_xTqoW``S@Id_wK z+pWG^w*jR^&x-`8Gh@>Qlk$GwlyA22xS2ffnw^w1=sZSTsjrzjZPWgK*I)rUd_g{| zV$>cHvl=|kdRodT709li0xGg^xBS)Iw~65n$BLhxVmgoBcfqE~3wRDSFB^B&E-k#-tj<-YfJo^G@1wWl zE>jE>jRBOr)7>(Q`uIm1Kb5eX{L&_8UpSeuHULz4Y6l*ItHz8EsG`KawcSR!;^((< zy7&|PWHq)2Hh4L<`{PO7PScwS8n>Mi(<)Sv$G^1zK?(bzDvMKSS?;Gx?XNyx`uKCt z?X4>3FVFPhIZB8hxCvF1wCag85Zyq~#30B?aO`KjD^d7WKIj~VZRWYMhS0b&V3344 z1fE9q!Z+>TT`p?q*`mm6c)Z#k-*mOqJ>Q+Q8nKSVievYaW#wdhaP46>|Du2cN7V;^ z6q;bujJL{dAaTp>>OF5OJA4!k)sCWDAlYh}e`nQruzkjXx=#8Ark20cecN;F_NxK| zsu7R-M5Am~UjR94e5@*!Lm#;Q*oQvJt72EKE6{59?%xXgs=dzpa}o2nwnx2e^@Dfa zYW2(6dxu++J0Ir)yHzG5CKgiX%k;j^@7#fW z$vKgo8e$h3DJ}^(@T>^2CS}R`COKnQZJnT|k(~3qH8W+jSu?JF^T4W$NIhq{Stdq&+XV= za#A6jVL|&6ef+U&SEg~EcwBT`B*E4#J0W|*r;oz8D2ufI$P%iAC>)bkFz~Ch4tQr>rxlDv01MnW9 ze`){ISvKqJ@^mFilOxA;7J2MI_u&RF6gw1;lyfra40rV#g^sL*<}<7*RzV#J?GEPT zQ2nFVuthn?M(H>Dt$yFD1?t>5oB{lgA9{woYl`LAw)*(^;Ef5929y8+)VUqc@l}y6 z+o0sN$V`_uih(+|^Fo0i7y-v5+)`jZ*jH5GtF-!IZpN5&hnd;5 zxXz$J4I=hq23ml>sX$UOAK@>jOh?}YfrKU}^w;Mnzh*0R{+*)XMwS}4>2m7m*4zE` zNbWB)aP<(1rMew>t21%;D{N?!k*Smsr6kSk;8;^9M9(ue#5BRQ9wMudl`OWCSvJP- z(&%P)$o27QQxHUXusAa1txHazWvPHnB~N5&yt*@BH%S$i69WCVV<~ z3RgS7GTb8ODLHSw6TsL7rZDaKjMULGVuI{iU5WUKycwl;LPm+eBmR;zY!cH5{179N zlI+n9DJpw`cYhnpqyA*cW)^s9_(qMsZS3V9)Tr>lpCpJvVwC{|gp6!(g2c-+Ux5Uo z)&fkUH-orF1fQYxs4}-JRZ?%9uiOLqOGS9sx9``;b+5v(UhdBkKdEPigRjMdYo;dQ zLY+r;!Vfg6`LC@LFn!?5O35Z2H8(H}u01B78&_**vsX+Q1mCAaM-E09UaSaIO%So~N4tg~CZ zNF~38YE+GlnNr?K=-nL~l)KFl?YNIVs$S{By)K^f&0Rpz>z+n7miNc33#nQq7B5u% z1Iz9KKX>{Iiad`3IH;`{c8t)&2ow1i(6I3ekQ*RgD<2{Jm497gR4Or~Akmup%sJX_p}$7z1~717QE;!d)M_u9^#pJp|wPY#D%CxZ6k zIvx@3DzzwP_!%AShSxanowlD)h~DaO7j}{4#ei4T<0;gQPZ9Z>4DG6{ORi$UHh(Y! z;fIH#R@3NBdmi*0fNXr5LJ&ooQW>d62=ne`h-h62YDgiCAR{Pebv zt}|4bg2c(Tnnx+xG?w<879qK(cEVOh2|*y3J+749Q^I_Cp|>Mqly^6Al!&<#Q8}Y_;pp*}D!| z)(x~0;4gC@Vn59tu?oxQ?QPk*`PmnnYp*tYbZU*eku|1-I)0fZL;dZJr@ApTyq#U{ z1Bw%-*_x2D{kzbfJAF)RFB;Mlq7dOw&0}40L+=}Tzt_>6%6)T(cXBcv9k0H?OlSoq z+ke!?FH;H!dkTaQs}NH48C_@*d-oZ4%jBtBIkBzdgyFG*enSBPaA+YWo}hA-wRid6`OK z__s(Irfj>JFP?55Q+lF%K;3H(#nXJL9|o*L`lb@KT%gX(1sfH*3h z9_e1s(YMt1sC(WaceEyG9pgm|>zXQ$paDg%&nApbri9;@@~7_5 z@h$#g*gRX{J0@OOFd-DRA->`*)YwFfGo+cFO2+@bx#WCH@Lgl{2M8}YF z|Ci6KZ$7%!3r)m(rqtHYYLn0Zi$)p z1HB|F1_;rrV7j-eydMl0`wLnQQa~)Yv>sl2Pn3*O&^%pTs$}s%Yz!E14>m6pk4Lz~6tCwduh1T!imZLN?(z zRUB7Kn9XW>y#_Cb{;>3_PjkQhL|^*GWFl4)d+E3VurDA6e`1_s6@Z^8!%s@_dthuK z56-Ub0d0HwKObW-+8(qA!A+`WsGj}Xii*-2bf+o7G%gy=SZ7!~5%vVWtHI0UL!@mw z;6ydRlGgo!jF0;vGvad%->&y_fgLx_K0X_itX~eTulLRU{W>Cee*S+(GL+k5d#^F9@u$%5_y4M8t5 ziRgVIUnM+VY5RMe7A-ADIuSrCuSAw;9??&(FwT{CWB*(5Ja%?IJuTPd>hw&Y$jg3 zjl8}evvv_w^~(BCLz+HdWkH(X3UNhrne-KuZbB11FDC~k>C+^`U$dqD-YjD0*_Q+0 z!%wkIVAT_X+LVh~0$}a&laQ+b{G@njIR(3#IF9x=ghiFqgRh_QjPTof;PU&VgvOu8 zzj(g~+O%K@de<@N$^bX$iEi}d&`kK8^S_4zK1cP0GJIW7DoEj9GwV&d&vm6e=Swc~ z8~Z!UNa(xrA^NXFgK`~?3?WR}DtVz9{{WPPOBDBQG40bW zfe`weh8-)%s1#H`!|2wp9)!@Jej_stfOlAv%|Lv!LjT_#odPa0qn~t#!utsxC2oJc zV&@%hq;TwZuXR~}5lM5)z+GOyV2F?Rcd@5RA8=yueu`**r!J>t*JgaqI8irsL8rE| z%iVAxr@C3ceiR`oUz+}JEubkSEcT)|l*lSt)iUho{Y((1xsgg@5Gi;2fl2zou|!%W{`_918j;XE(YHNqV>X%4=+fsvX}H)lOO^Zre8I2S*P|# zFZ#6Jy%G4Zc+{lhNr7_6`2apf6$ixjfG+KUCz3kN>K)r59osMml;6MP@}XQ&01w$y z1P&DpXH)EGfMRls1FD&8D%m3nSjiuqpyrCo{fTS|x3=>u6OY*p;lS0s+xDFoQ*v9T zPZn=5Ws{?1c%@1v=G#ct{om(-wky!yygqx2CqhUPc?kqpsf2OY^AVzG;;ksm<%8yk z+ks;OM*}nsQ!5%<4u?pJ8!#2m<1uN>(Xtay8+HcmsTzVOtn!5CT6VmyI9qg0@9Jsv z%?l2>rs?70KZ^LG;EzEdtj-nEQ02M4@x%b{G4j(1pwSr%Z z!N2AidemPdsTOc`hTmsBWq43&nwq;Rnj4eoVm>x-RQ)8KKe;(~5lmf3((0sUR&Ai4 zorw$(roXa_a409~4z)%j1Ae6-sQH*#hU=d*vP}3@2$#LiG@3|ETdtqJ!4<^7tG7(% zBFpY47$Q8(1#g{BEgmJ2RwnfHNqj+QSIY$N=^C-LRuM_vqqd+X1+vguc_0YW4oN-({!$ z?@)?8jxlo@W9tpzs9n7INn@yG`PoNeH`UzfkWJ}8ESa5IzX52voeayU(=eyaOZhm& zTk0F;;ZrPoVg_IeKMJeva}spa>M)s; zFqy&6$iWB;n^Q4t5|@FATkV#T98uI*5rct=o{ zM4kckXTw9`owh%zL|)nMaxSG0yB&q|6?2^I#ED}yhvzk16b{;+A5aZMTXt-`@Dnr8Q9NNk;b^%D9*)i#?!1m}P}W7dae9uAo#&T!Lj+}qKU**NKQ@LLsvSzm zP|%wh-v3L&-928qx);~Iam>Kyk2bk;fh0A^J70G;bk5ej`_pJs1aQ^!t1jxZ!4)-X ze{$ti!v59A<3lbbvU7BvKw#Rpj7gTDyBBj*d7p$1?tf}<+g+7@a`~&3KCd*4?+J=U z<1vNk-!iIu4;rT(_#BRL+3i%)@9$%}B__*UwN1%*QUNROp_;^7Zyv)N>*ELf$x@p- zi=8XbFZB3W>ekZ3qW|U@G5*fjS0J0M(3|p?4-Yd6@8Sv) z5a$QuJ(Sgh{ZMg&NMTuDM)B7ZSIdJN&B5gohF&)=DIr&^;a93vb|<{g8p@_s+(;v? z4T(D!n*jXnG@gT$oA(>T_>@I*iTaw#eV=x|3w^YQC0)=x1RZrjPO@-+4lfDa6WDa+ zK7P*thX5fB@W`u6rGNXmHq+|1{n3<+rv(k6u@m}#q~tSn%cAxe{C5%gQLNe8WS{+i!L8twu#O z)}qCdbyNrXPJ$8f{oY@!xBr+x9sNiyr~FMsp=^cxW0kazAHd4^0}Rd*c(S6%(}A9` zgw-I&+i%-x#kPe^9vO}d2IRGeZEM=OeH&9ZzFKmhW}|q^9UFMC&MR_am?a(+*O91G z`)2D_z}brMRC=7!shQ!3`mGy5O3?=|RGFf90HTgQ&puCBY7-FlSJ81&AJw5+kyefY z-ppA{mhGDfYJLXCVJc!720>JXw&cg9u^!<+I9TGhcaw_=o`Q$kdvv!BitI!R`!_73 zM3Q0CQOzW5pVj+ha_*Srjb2nLtjDjJ`(^kOvG{9po%&N%QSNVE=7YmB7zdty7t>{= z_^r2a;v#h(oqr?B*rh3((#r9Pk;3%@u1Mq@Po);0N{QQoFBO~%qD|DE_TvT8DZbxs z*Wg_c#-&jdqh<>#@45A^qLp*?d=1Gq`)uH`3?Y@u)SAX;U*s~Nf6=0G3Ah6)e~}^h z0;DV*k#omNWCwV6dVM9Rxa|pNn@{H*Dy68sGK!!(x=-;~Xe($34PyTGjqR$O=Q7hE z{PIAQNAoBK&F_Kh85$ z3i*!*SZ~O~1a4Oz)LHVaqv^?>*|N}zm6De7x!(eJ$((PNzfk_d8|NURrr?300;Q{* zERXrLETwqMr#?K?g`Nw8VK3_pXugC!6MP6A)xV8eZm9$GN%iv~I(@~4qcuh(>c+Sg ze(h^fOJuc6zt8z48`6Ft`eg}d^Um|_h^J~#HF|a56FrB9qtAH4hi5~Nrg_>3t0gV4N_EDfsX`^s+=E>Uo+ zkY*~8ZA~g1eU6jxGJ>qObbnx9wXsvlKVn!Ge9jHfyNftxu(++!{q`jMim;vN=nMmN z76~v94kjWbws^Cj4-o^}1Lr7T3mj)}ydhd-T4&P8U(3>0XXo=YN?+a}$_wF4O%U=q zi#1}LORfK?8^94r8(nL6v+(GTQ-{Dm(R2s1&xs2bsTKJ1&UNP;MQDq5vH^xi zl-FN^?Hg)3O$X5n%@0&Ly!I$oFB5NY>Q(BcY#D+Tq(eTI(V#tp=pJv%@<79Ah+IAW z!D>Rm#FN7uHbc&sc`M@3M=FsP=-0gEzX@^LYAel;5nVa&D5cH1VCP_0j%#bEJS62c&y4#LA3nohPdU9mdRC&Mg4`{+hW8$%C6mczG z3@&8FvT0WJDhwQam_LgVCp8`$BwX;vRMG9=;IgN?eijOQqWIqqzhFsf@E5Vjt`8(% zGgs`X3X&E7Q%3jir;0YwF?%lv%y5;pi~W_lIoPfJpni;@8fl z_WN~94;|BB;0XKh4u8}c;f(p43OZ5-V~%n=uCb{d7w?SJRP-G5U0299^n_GmV(QIY z+c)JJxty?+b17sYU%w%!uAfTdI&*L8l$MX~Ei-ilN^9k4L4_y~EA!SUL&nWweQI)-? zvOdtU@hR;i6Vx~OCWV~=$yQW;&2Dms%H}?kW<~iJ3;i$P`Mb^YjFQcXs6Z03mMZC$rF^c&l4!z0iDwBE!aLodTq9Ig z)Lx1cq01a2s)A|$Z)ucB5y2xrTE3dQxNWzw_cA4KUp+D`p+{ew6uIPhs#K(gnENa8=6-2Y$5=H{=^gBL#W^`MbAj#Gjp?s8_?2w1=92* zw0N%K)HRL8wTmE|4 z)nsXBjojyOhDIO{yb_s=_tONGwTY8 zp(&@|^rZZlb{|D0&Q^z_%Dy{M1y4P$6~`ja0h0@`@>;osD^3ry4&4nY^M{%GFnP^|uCxl1OePi32*K*o;weSr% z_3&G7CaB*ikCJ1WnpRb%@J4{^qe^%jZ^m)k;{mzw*^zqN^UMQ2RRh%?XLNwkPWldo z-LO|f+r&RVdx2+gOSnfrLZuD0_8>8qY}47Mmi72TjTaGy^n(ClA0GzzOXi6~Ni6ba z&I8Ns5G&<}o)W-@5+Z#gX4=&O9&dc z29;0rLTXN}k-}uaJ|-L4(BE;0e_V6yJFO%8%hso6`s~#yVT%fHI!)9<54*D;hOliQ ze~%7&&osNptk2NWYnhLNzamg#I-98Sq;(qPjNZd;R}z3JSG5Q0r9B{7+$`q@-uxV9QIr8bQ;5 zH+`*k^R>|ib1;?cWnVAODnv^VwO-Ai6TRn~*Kh+%;_xJHgZ>B36__2Z_-eIvV%Wry zFkxj`$9!>r>t0emD}EaC(kn%Wm2i_^{+&3>mhdHg|67I1ZL?ohVe~vB+GW~(I7d|# z9~f{MIbv|-QQ+Vu zs6szcK?*-DSjFS#f5N-PdaT>DDAZjTj)kfulrh$qm zMbY!fJ}Q)@{U#3u%Qn&pfc>V!!^hcMMBqsQ8H(JT2g65Wm8&-C&QGI$-Pq)C!=FQD z*YquA*4$N-3FfNf+sEp9S|}Qekdo_bzTeAQI{SbWj&KClwg-j^j+2OEdyI9hS$K4q zYmlZF8cBnFDz4^lx_gg5tC%B&;TR}fb_t^)+@L<%Z@GWRV3WQ-ssF5lTHf6+`ha6V zMk?b>VqA9SI@~~Z8uPq@_k2imd6=2s2X04GN^{t3>aB&StH&;+oB!$ z@@)7?MgDJEp`+W%?YHgvY|=apypq#D#X%J_X%-uuXIk}=ZrS`aC5X{_-CgS+ZSOa; zcY^cxN%n0jfd)4`h`1ZO#P>LamX#osh33RfCR3yb*EmphM z=z3MuCE7qxw6|b)cW|4W5{U_h?wrgMTO$)>c&HwXAEtObsIE$gE0rTAZ%mDE^vaib@ z3%iE%SNOeENt|a&h_2@EmzvFatc!8$%=z?>p0wdeJ%LSml$~9PSN1><@ zHbH$kk%OCQGR^kO5hI2ze;&!@FZditaR*sJPW1*Ys!S{Eq}&HIXU$M2(wBwevX_Fc zJ~p=AHH{!)^zJ22QCH(;%axK@?&7U@bFr@zt$9oE(J~Y+pNGB|MJwk5z+HpF!}G3g zdjO>tZf?facW?2nHMwHhCfA8FO-@aE2Q(K&B4jt8I>~5tE*n2uj}+;-j3i6x7O{Z$ zMjJ=X7l&g1Dk40vkd?y}X62etEQTkVN*qWb9`_g0qlwPn^EC;!<+X;ti{2PDP#%{| zIiv5~GH-%iz%MSh2cyL9d2O#f5)#cD+fm=D0yM1L(=c(=QK#hM?5s<1eZOd>P30%0 zRk0SqyXRztP(5PsORx)>NGP}uzV?U+RtvM36ITVA!2@FYw$6o*kau=SdfxhU`n%<3 z@kEp%^Y-@qaXt|#cyg;+o9%rX9UK2&IQIYgNe>Kr&4?S=+?l_=++O02q<$xqWw}(OE@N8JhLP4z+vI_ZHuO?@TyJV>$YVQry4#%jJ z`?tXlvacuBc1))~X6_2&!5@Co4LdPLrL~c%n0}(X)0CxTW6T^+KaG6Lgj#>)+B0KX z)hALtgx$2i4Kz?eRr##bA%`K5+-*Ow*NO)dND08ugG?%vYdVO=lz3=@+X5 zTc5OaC#zy&K{*QzHYfGZRZ-q!a{1q~vW*FO(}f$D<1+Q+)LP+j?+)>P`_F5piA^v1 z=LnA-kbf9C`Xn*hC!F?G>VMJK`x?Z2^(s$CsW}9Ss$**H*#8PNAfIL3#_iVQkCMVc z>djH;7 zC7!oOX*BL%Yk=a1xh6hfd(cU0Jt=UraNP%Rk^WS+lYnq2LxvuxTc|7NA%~8K)|nT# zf?yKy6wj2elQCVaVf2^>SZ8Agf6UCWtj(MZJhJrmALQ=KzHtJpU`*^;Fe?)|Z-kqz zMVLGzarI`uE2j+H)2}YtET>|5o@z5Ub5Jrpq0vsgQuoi}U)Sas%+&kT`&Itea82S( zWTaw(I((2fKI*7R_B((>Dfqb+MjC?ipBZ) zkB+AKX!p}Gk3ZK%^!>InEYaidWYIqzJMVS*?)}*#=<-p55N#KHo>)QNbr>(8nxux1 z<+;oWf_rYi?EE?KBy`od?`jURb?r}G+r^iRc9#%=fBT`u}Ur=q!x9D?-4t{KU2$m ztbNI%XPsTGlGb+iy+{{Jj#XPD6H!K2{{Hp9uTRwNedL*DCxU*{izftyCl1PiHO9P7Lhmqm>q zCT>^nrrSVUoKy?x&r9qt{Z-B=h?q}jS-aE&FMcHxVsUlQrEmMo({Js9teU_E`xD9M z{iMWc4l|^%X*0dFBai^_e_=+mA_ch-{zJ&kOqB?1p`{8l%T`-kl_eLzda3HM>n|5trYz9f+-tIPnOhgpU8PV$vC4cpJYx6jg(OB zt*$zZR$AAYvgU&`Znx)Sov!dfUJPFAX>}!IEVcx^1(k1Ne#7Thn$LZAu;uObQEkrFik}{ELqYPPN+rxK$Fm!k{1VI#1 zg#cFEgEZV2m!AWAv6QT2RgHwpdacl~BgnFQr#P*8s;9OK6_fQG;pBx$;6Jn$He9B) ziV@_h@I>ilMIIYQCfjMt?xb=0oXwj3j#Lp{-f(ATEeWAFF+g&oJmQ|S%%RRX6r zYjdBx6Dwg@&{tK^G+~@U;~!co)qQ$t!5(B~M-m`oos&635qzyG(LKV2rIU$+!VELI zedgc4c4psXaI3>h4$923HVIJnlHM{HSJ}Pr@DXz!Dg9zTl3MI_1}RyqwOg}tRZ17z zS9Y%TZ!38M!i+cYE@?B+)iF6XIp+PT`exwx=d+zS+le{;=S8i@<;QJm^ZWC3 z0W(8+rdLFAtvDJ~M$v9=!%gjykB&C_BaQpDlJFE$2;U6A@yjo zCr}i~zGgU`E8-4UN-kg!g=HpY$0k>`5IW-qIEFJ?iwJ>%4pE(|g*d_cFW zVh}ZeX`}|%&;<*#DCRd_I8WdilQGm``h|@WWQ}Q0A=T*~*i8XuNV$Y)MPw>v+c9yD z8e?YDVs%r5G*o;b3yOFlE41NEnU*lCVBG$pIjc`3Jn}QcOiX>aB zen0nx$H(b+5xC#^PJEgk(-_{#BW6{r4oSx@IQ1=JIuA(lWfVJDf>0dsSC>3wZ@A z$l+QMv)zc?u@*I>`ar&54)54=CwThgxnXeDA(XIe(i?Y>gias1hHQR^;_wfYn5wfS zxKAukSY^*?=PFPY9H~x}D__}h{3a-M=h=QEjbf*7P7J32K3~MoVSIJ@|AIy8#Z-!9Q$tsmILP44wBK_;bnv%;wVI-$G=A+s{q9vmY+Ka@&$KltDOx`eNNc|sNnh?X{ zL`nd{ervZ^+NdxoGTgmyr5?*OGw()W`?cW!aG4Rcx}7Y z6z0}@Z}=%+?AeB;;U5Wux5~~Fj#@o>EDDq|xPvA#t)V&XCc{~xiZ2L#4VST|ha7AN zU&K;e+Z3>SXxg2-?nEXpnO1&=beJR#1mG%PxW(hUQRtVD#xv)Wd^ALef?$Ayzp zsyTRtrIjaXS)|CbMdUvaXj?qKfw#)rI9MHT%NQf2cEw{+R2?gRNYnG-m1uFDT4nj3 z+dMEOh6=`9l9WID!q3W{!|BiCM#D-D{-!Xi+DT&~VX)1-0Y;`3>+X9-$U>ZSZk>zJ zo01PkmpV>hRb~sF9E@|Ui3hQVp)Z@SrBgr>qy_h3g8rA}p`P!aHUkCyNo_H&oCYE9 z@70Ej_?hpE8dS??n!G;P7q(b{a;q)}l4W5v35n$c-B%}{kY3`VcdwH4Ub8g>aZHn( z^4uoqO|W{JGj=Bn-Di-0OXK^#!_oPCAmqM$_v@Uh{&*epsO9GA{*&*?%1f$N2lQDW z;u`SHM_y>-)s9aZTiJEI(CDSNzw1)5-M2e(r>kT% zoQjtHNV|nDcfRJ8If?eK;{OlRfIzc%fx^;+l#L^%J{SOoD_w|*cwxTz3_4Im!Kh;- z)6#jwb!=6`C3Q-mjY^&SI9Eo$Uk4827PggV&?u!<@QkCorsQ<@0$r{N!n0e_yeg+6 zxIfA(>zfP{b)`jt+vo4ogja$u7>DA8!&5erC+)UYWYmvJfvLab(6qEC=bi51CW_56hKTJkzp5UZuYj)#@DcDA~&8 zwOo~J`HF!xbudC>cdVi*O40os-_lntthEz~$-5Z>8M$k8kF_73Im}eSUSsZL+}j~f zis@b$~Yw1+;}`u)3zjl$qNNujZ&Rv zu=-AcS}(@&zIQ*4uHzf1vo#f;b!FMK@`uLV1llC}hACmH4?)SRVt(}fF*_>t{s8Iv z-Nh@B58Z{6i6d!0+4^fi#E)|nM$QMWs^_kf#%JAF_O$c1jDcEH@_7xW3vhN zfgg(7((&}WhTsZzd;C9nra&W1{imxR%yWXb_a5G8@k=7p;V2~b#Z14Fqw4nR5yU81 z-*pnIQibLEgpFTDd*pGW0w%EXpyYrT=8@at(>2^3t70L}f`4I-w>OweE_?N#X~h^C z2WMhg&|VLEX!krF0l}WvFVA|IcT*fISs2-z%(y!>c(y}-p~&bm8QP{#2twI5m~{6-dj(|Jm&NP5M=X-J-_hq3pGnA$W%(z-T_+PWmKmHL6j)NOkB`G zjHq62Vb|w22V!0|{Jy+xY(<@%aYK!)uF$G|Y)#1A58MiDz+f^E_L(;qq`8Ba?^=*3 z@WO_ZO8s3*bdo$H+q6`Y{K(MQu(r3J+cb&fbTB*jj9$gb^;G}W^x#xg)zmQhUj}6) za2|XjrDko}9_M4J*~zbYAH_8FU#b9c_t(`t&3*L)RI1)z|LlG1y)uEaGuuahv$4q$ zq+WGbwS6y?_@r~`T*^E~MU#U^hcDk1*oF@l_(b*q+M`2WV%O-kq^v3gCszGz5vY7{ zCiM+V5)&`5d8Ha9oH@s631gU9k%I8;}3HG{lbITICZ>ZecIO`W~3VBf`twEm`@cuv8zI4~4&JBo^!s3QpP9b(qV;%k`R8TKBT^sPE0zA% zq_ZFN(Rdl$2CvO|GOgoW)fDT@R(3B7W#6#rQgE&zj3{aQG5*L!ALu4)h;5W!a& zO?L~ll8+H9M&Vp}+Jj}xQ3d{WIiWf{AKhLu;pp%w7=e9Cc7)d?-p_<&+yv&9dn-x2 z=_}b?RM~{b^a-!|@y6O`a!L=v=3a`ecpgn4im8hyy|2uauSKOf{Az$a+(BycLA$RjT+lqv&vsIc5?KYF^KS0x7t1+# zH$UQK;Ji}fDId26M5P^^PACq4QY8C!xoaKakTU+s_dDf#OIVf7bk8Mb)yVPXgw0d6 zIceKoELn)wfqa*<;b{0`T~F#U1)H1ndYGoUUW_M*lceRGeehybq)EOk!X1f9F1Shp zegOZ@1ea$Q2nN4k7E8=;rD{>(KzQ1-~3X5bsxSD9YO>6U=2YX+?Y&~;K zf3Co5SMB_0E>AqmwIsm@6#>`Z(aPEOu6kkaDf5xrmL1-F{SR=&uSY%aME%QzImTAJ zeHG%!@GeflG!z1tP0JJ}{@tPA1UJ><#|H$m>Q900et+63_BhSa zKfoL0dtDM|7m*SwcA+2l*fgthMWrB#rCqKL&+T$khh1 zv$5PLn=pBv7=uz7x@0vQKl+45uo&ta*qz zCn&?L#ZCPk%kQzlwgSw(or}*Yd(T(IEEh`C2`%Ds0^;$-F<#ddsN91S=l%Hn6K7)y z&c7&&8`@oDB!x|w{7o9?;Jtcfq7TP0Digj)jFA(|R{hLQHNNNLD{UxT_LTv?kemrG zIUCou5_CECk+80t$1!UT0vdQAv5{y|N4<$vls)%6H^GnGra8 z4AMs|Pahw^`^9ZxCv{ZK*F)d0Skupn?Y;VR)#(lI)~=f}FMs8L&#EXF)@8kEj!9wA zh^qZp*{E{yH-x8Vf4VkeFCN7Z%vvAuY4f%qCg49IMatOCWkNkypd219TH1;uPlnU+ zsuznP98f={NUsVB6)Js!&2tsIgPX2&z!*=vwoua5}2Z zG@rMIfv-EfSKW_S_UzYKwR}P%Ek-&N-zlY!X)omw78qqHzd*Bvs=Om+!Y8bIRfaO3 zr>COp_Lpaplmert-b}nHcTkC>ft6cOjgzw*G*fni zUg{iR*xaI6o;06!IDN3%s>VV~mHV|o-}Os#F*%cz{<1>^khdBXAl&8Su*xhpnL z?qyqDE17X0tFSdHR^s|^0BkD~?^*oN&^O?0_N}hrL>hQu!bJg$3eK%Nl(ZWoA3euu zwqz;)hToexAu?*vmu9{-+0#~k&8&e^b+OvRSS;7jSh$Pe7`}XapoAjrJ)ul+(K13Zuc~6aO6|vh;-1|L8@7c!)K7RmOm=*zX z8(7a3`R^ehW{%LV<+A12XItQ3R^Ku9mv}J0Hx5%WwrZ5MW$8-UKIcjd2f+oRKvj+I&RiDVw6EBWXLZ^+N+Pj}2et9dsJZgyOi!`r?89ZzwgpG@3YO4($x zaftKtlBMmjxeH`sY7rAE*@WD`QB0*H+WQZ}B?eQ=m9+J16rIS;r}9TNSNS(_hL)aB zgur$+6_!q^H3{Fc^~G%aMoB+dJ~SGm z4KkahN1q?8?KF5K3Ytw@aTRP3WSuFe0i(#2=e2Gr_7nPN_@m-|7ZQEvx7#lZ2J+se z(3n;akDHS!Yv{))Bu{<+@h$IB(sc6d=!bN~>;i3u>5TAji^<4o%1>GQkxN31s!z0Z|3f{>&FV zESy96eitVa_}^9=w{T^gj_#+iOig}h4jLfw^r}w&#s;7w{&ml~11m;x#OnF=$Y-N| zl+7{x{DK_88Tv+Gom6w=>0DUa_dTAw9}-1Wv#`A%B)v28py6Rd!bd#+cV z#UcU4B?Fbk_YVHP6Lb1$BE3QpWYf7ep9iN0w17GpF`B?7g>)F;Qo)zAw2P3gZ(Vr& zVfOG)6R2Y~9N{IN3rfoF`X!uN+Wr+V$m3d{Ucp%iaz>dz^v{Rv`71BQnLCb51ld%o zz9z1@zV(hHcDA0p`&mZc?NnY_JvysE3x|!IH{bbaho>7VhRmyXr*e9f>fH$&_zvzC zt8AxR%pRzH24LXU@{$9OA7~#r7ip%Gc1XS%780oN@!u8CGq<#+ooFDHDO4Wt8#YXh<%z+z(lH z*`wx#GKsA!{p@UK+X|EsIKDf%eW~ttr3MCAS02>6ljEt zb|tCC?L%!zZJ;Z|MUL{E7qpuADvxy)5azBkRa0kSZ1B{#noFlF|;_h~);Y4yq)l?o<2PlZG25#EK_rsewLH4 z#QkF{Z+v_M=W!0s0>_Ng#uP*_aHzodFI$yY>hDFXPh%x#8BHHgV(}#Vk8)O?~ z@ELvi;ynM(_RoL$LK_PHD?)LAtF$AP9LA+LTOD9!znE_BS5 z)N|J0-AFF1?NO@rC!>rDPIq%^-UYTOdtT=2X&ZMe&a1l!NH;VXQ$04DM@r`$=DHUWd>634vJ2q3^Z0 zf3rK`{Nhh&46Z1YW&T4ls{W1%eQzgU?VVr>hcnD`(NrS~G!A?}k|R{Ky|YaL2+9G$ z#xi+k>v01mTe3mLLML~~3O6A1QsYq^n?>NJ11KCz-b?%seQX}RiwoZ23KneFyuOx8Jt{mDIsc2XQhbD9ft)1 z=^5%$j1EQG*W7Y`6(woQUm!u|pa?HCKe?=FEVYdtEGC}PDUx}NVbVBtE@lv?;O1C7 z5$G)b)u{2bwmqJLbvjC{^{Fd&dcX3%a>@4f!Z&wTBWQNYeq%c136Be8O0HVVd_^~^ ze49HFpOqd>l*`vOLj<1q)8{$&`(}R?EsqVVQrXa9U;Uo$^@lxr4t&?)xk_lpTK z1F3PQ+}lR`ouqDQO^Fi2{dt;ka=&mnAB22EXXqoc+2zjWU_5{goIPicW2Bkn5;Oc$ zLXV5LKhPlr91^mUyk+AoRR!@uX7e<=#+Tc|W%U@JbmwpH^uKSA+dpFgYkxdHwMGeU zsjs@Q$)CGj(pr4^bOI^19YW_727VZ&$D}>wcCZLRutOAfsV%1m8&uC8Hprv*`SZN>*7Rmv(rawclOKhRGnByWhPO!q^98yo~-ykVOkEjb z$6R{8IEAeEXra%|Rq{*ATrPuG?=zi`Z~FsVL@>3b?gFdo^|@nAAu9&x@r^Yfn!|bj z;fUthHPA7#Mc01hWQ(f2kbTT13}#24Ap4ptiCg~xkT>aZn-GV)nCkl<29XYk^U_5l z>!b!(5z}jJ^C=$4lwza;>DXf%usw%5_~Eh_fo2Je+Mo*IR|Vhle=V>;MKm)&J)|6E zU4LEyBE32l;l0TN%<$i`Uto&tb@6oQBgqN-ORMqpFjxfl;(29?kbW`yzQdmnOyyZb zB$7hZOd|u8h_-18;$;H(tbKnLhdp7js^+rq2pdV(U7+ zHdlh532?qs{ut9Z_xUnTz4d7}b)XgQi7}r%n0J8fZ>eTF*`IuimyCxxs+I1ye>;ow zU>zk5(P3R4TSp|;-0G(v`)ZI~cS@L`)_L+EQfnjIDA?`@Zu9!te@%IyDX`K{7fH+K z%#W699ZP^saKG-UvHZ!7sJ!j6YxTLPt=G@bu23>AXoesmF8n$jExf@A%5U(`Iu-XL z^s?mm?R+!yec$5q=|_9dm;dt7k-`CI9~HKbM5j@EpyJpaD0!6G6T!s-e#Y{CZt||N z`02RGA^Pz?C|}Y%v6b^-Lvt^PT$N1MlfK~(nzjVdY_rB=5mH6d7!d-7U~8Lu9aD5p zk}$0w*AeWxV=hQaLVfs_^eQt;i%yeYJrQ)N#R!lg(fF?L``X#a>Z;?h?%OhaaKQnw zL4flCfyu~MzXJaJ{*r;u_RRQ-eyKvJP03k!+$mCod^!@0_;ToZ6JdTlE(Mh(DAdQkOS4f1>+t>)Yd$@5V7tYDB~gQZ)53oQMnytGOJpzy=!&-wOW%fqqW>t4@(aC}TBsI>sZz#X(-a-iHU}mDwfgWovu1{oEa!wZCyc?w z+=_M+z$Pive%~c^68-7hJ!fO(Gh;4oqHP+ZUYX^R(1z)c+l7-4;>qE#%NDOYxvoT9 zTIT|8-Cv9VqgLDvRu95+k5JktT!RkP?z^{dpXVN{CA(8U-$W@*Cq!2DiMeh%KOX?v z?s)51ft$v5z)S9^#~s$&ZcLGjyh*&~wQf}T^u}9Q&GY(R)2M#yerHe9h;HlU(M#}6 zB;M1V_S5O(wO%s#ru^aZF#So9_xbNO7^OCR$8twTZz*xfwZJ`ss;u_w29M)Y?ta7( z=05b~uY;H8cB%}`Zvc1t8VJoXTK2r zZGc3NV+P2F+3kB_dSpRX79C~&Oaz1S3z~0Jh0(zH%6Q@Lr06k zc?|+MH3<;>gLak4K@CwbAxM@~rUthMjXKbE$12JOm?>H+SpmdpMKMfF$Wvd~SUyZS z?{y_fwy$?_>CZM(f^TetLKhW+;IB-N*vL3uc9-qhHbxl4-*f#D+Ht;P4GvENWy| z^3@@Um#80xX>F88|M^ii(i9pkrI1mS4^m_nEhC#J2vvNS(A^wPYl&OGsY<~OTz<8s zyw`2ZE(qWw-D#^;Qry%{O+}+ zPL?o<_*35+^ac9vJx^2%QOpsQJ8Lq((PxA zpngaJ=GGQMscJmYdXwGYass_x(}Z11do!~+YP88#6w{fek)c&HnMP&P!9BnO()QP8 zjlaDxXIvjocjkMqE=HzX8+WoKx`iL+Q)eFpQVv>AwCz2g+q{Ptw~wEvqgu9VR&PDQ zE2Qf&`0ZR_K8KD~WQ$FHwNyoE}hj*RM(nj)5M&(wwB@!LMP`OSx`g16kOr}AxQ z<8?5RuIKxx)w?Epf#5opurld=|7npoKWhJ?Ur`l)AUNfR#hqNVt5nmM34;^e5xHnX z5%qk~CvroL*PB;SRdpVk{_x*5vJSzQ*TgZWy}1#-qdw=Rk-)?2;eJt-PHB(w<61{Hkn#J7)Bg4U(% z_(>7r#vc~bchZl!;=%IWkb7pzu-2p~N~iweO5o@vk$EhMQUAjW-|=-Bm(R|)ktm9Y z8|3^5Wr~ytJrUM|V5Vs3_pCUn;%O2M$e7iXn=DMsQCl8z`p$35W*sUA@Ja;$ypnAD z6IfG~ufunv`RL(5b1q6Gd2gn3Cxao^T4OQ+2?()~Ez@wt#?HwXZ}Av^%CRYG%_>sx zC{HP${0`gJr#e?GMd;Y{+T2`HF{o4&Zc{Q~jLAfx%NRYhK)|7GJp5HYc#z<~sacES zcMHWINZ!QD2CR9BhkJ;BDpgMspp8*aQpv8cl!@Tr5Qu>=-pRhztQ*;;-ol%GqoSvE zuHxBlHe$OQZtvp30D1=%c*9^Ii;6CENzkIlHE)heS+4S@QU>eH!(dIMr}d+0iZ9gW31p z+~eH^Z1t`84lliY^dv^{(=yz<6yNG?v!ws*HP%Pg!?13M&3QVh5Oe>!uFChL(aVy+k6zM}-UbwthX-`!? zz!s(5h&anVlaLl-m+BFuB4h~2os$j+hP;sMB}tFDXHG7q@a`c zD9W$WkPOcF-{_@eRVX!bNu2Xsn7JWUp$rx&RwI6V0tlp5-CUkFtlVG$1l+(Xm9aw1ToTuEw8cbFo?+n7*ric7E7PjAl-~vIX(@HdovaXr8_{q6};k1Ud?R*2L69ea&EcamVRHBq} z>r|twusl#?OJ^e4Zup}m$0AK#v7LbQb8M^h8?&fVuaxsYw_l0k4u3;Pec&YEiI5Rm zs+(Ca)JL%gYU$6=T7W%;)yR^;72a3Nc;}++3N{-%$J(n`felyGk#f{#fR?K=y6ct` zNKN5cK%OR-4%r>oo&8eBZ#h#Hh*2+N)GEd{;%^=|yb{#%^S<0?My-!yWH53|aW0DZ zji1jnu_V)bWs~>Jr2jgwEh>nmqYb>gc--n?Is%oyor1JJc|Xs`h!~!0%FQCVHEprB zUSrEYUqFWEZxQMd@P+(p$RTJ#Bo6cJsv=VL(11|bt)ch(&r9x>-uAbahi+`B#o5^# zz@FX7e39dG5j^eobLct6f8muG-^-pY#q`NjubHf{Dx5Q9dfC^}IGI|RS;jd!rbJDN+o5j^qasW5w*iVMxn6$rG1K0|12Vu}JpJ z>_zjBjvE%7v5wDV@)_r6BHkDj0=kIOcWf-xjS|m z@DB`ICDdWdll*usAAHulqX}iZZcG-Ce`gc>u5Xfz>K{}USg$W zIE74drugzr*14cRPF0A>=%lEbUbTr&u<_(37=P+P!+YU?O3j#>9kPvWTgBuTjjPO< z^Oft!U?8$%g^`=z-}OsvSK~j~214Z86V}dfb}qQ1kv<$At5csq;2qnRR#z%#`FiDX z&6)N2_&90lu$$fUC;@y1zDbrBa4Z?B3{mcjYB?wtxs+-09!TN!#fTdrI7rCfy6 zt3J9br%wQv_sp1=srtn$YTXk2U;F;EPU1ODTfNlnt7TJPIqeWwd4Tg~{!8I$iLo7j zBnTDV+M$<-&Rh*M^JgcN9aPM}5b!0kFY=E@b`54_Q~VT|O_C%5L)l>^0-USH)e0;tOYNWh_BZa^i*TuK9aU zuP5l@g=G9P^1-z8Q`1n>Z~3I-h76k0%m6jrR2Hl;=O66y5SV5ZKnk)lXSp{7^4&rWxmUl1@2-y>UtnjDI6S?Xs zi$vDb0FJWu;!SMR4JcygSt!X%u&nxyopl`z$Ig3$OsT%AH zb^7SKtiuG5gfG!(wc&i!5_FOX4i?x8!$GcU-SLVuvHldMecJn7O$Dphs;Fv^`%C}b z`hn%wXE)Q>UK!vIsrUkORuF%(%GnZiQptKrGFc;vWmpv; zEX9v$AW|op$cvJde1e)y9-@&0nj^aCzH0Qy-uv;mxrr@MdMR%lCFeOm^i9)S|I+eA zIL2yZUY?nFeYFK{o8aELY1eiZk$y{;euM7+7|xr4#66W@j`6W+&ZC4xa&@AkdeJ3@lC|w_U3P+QzZcKfYT=UQe1Je zbX2et{F74_$D$x8wd?iZAfo3|E8$#JXobzMFv#Z3MRFi!X0qQ|b6@mfvE16JFJn@^ z0l@tc`D|UupvT%K)+NUyC4X>*O@?rIxD3V{U-WQU3iNLpG4~F!=Yr_*KvnvG)>757 zQ_fgv-)ns>(5(@IE4>+d87W`of5bL5fIeF?e6yYRXTRijP7H*o@6#KAOF8s}v--o+ z2)zwRvj9XU08)?Gjn)M?7xSGrSIJv{x(*oOItWkBh5p%6jrSHmvbC^28Y0NL3P@^` z_2{&cthLhF#IEooP5L@Vsu^W5v|2sHPaM~YJZYb}Tc}hh95@*w<}J=8Dfh{>$?8cf z#)9pXkNhc;=QqCfC;{BUJ4fE-8Mb?F1yiC@1NGhb3C;wGz~?HK>4nXgCu*kMGxW;yyMgOP~#Jl?R zOaDG)k>34Yr0pUGLG#l1?9vNwu7U^X9~VVDhHmWIE@tbV$3(n0H|!d)QzQv?(j{rgfrmG9S;oib_D)r_QW=LY39 z9|acW{al~X#{;(wzh64!`SR()Y`>cT9AM;|@u=??@xele+O1pp;Jti@np4Io@1?gs zYj2HS)^8s*Aw(OCoK%X2E8dR>a;EyO;Lp4Q?y1;-V>OAdGao2#g_|!HnXdXD=~u2l0|uE0gUw6l z4736lA$(_gC5*&7{7G3Dr;<=XqlWd*l7R zG>a_I8v1Y-=v;{TvGwy9gTfAKcCSHYa2^p!35w7NzH*wv-!YN(g=(dD3>$LW`W)uD zT`pvW!%F*OYdFO%Ipg(A!JA+1~IwPv6q)N#M1{Ty?e2(z^?xn z+w>PopJ3)ShI>5}|Nb(7##t~^I0E3HafI#nINGoCQ)rC@JT3HlIUGz`(0JO5Oe9Y! z7N;xD_GlpU#wnwBUNL4!@hR>@)pB6^U70|jkOl+)sULq8y=*Pn3H2a;ZT!l;;6?U$S8iOxF5EU8}?>7sZXCI7go@I(khQY73; z_U^|F$J`YX3qcUhTfZcrteXmg8Xi6xUC_nkIQsw@0$M~U`{3*I|ZoernpvBxyEY_hHdqJq4b#O`D)6`R4L9D2%$zsnA6 zuG|t%IbB^SUj4J(d_isS(qoVKP1tPvwa@Xjk$}gpjNZ@e@PAx3JBUwud7IZB8l3;5 z=Gv(bivG^c%5)WL%&TxIdRjTat54H6BlpmF0NrCS6asJ&w8`?LQJ>+_rb4CzqqAE2 z?Vr!Gz9pFhk$XfD>|R?1i$q2SE*pDZCyxTNbT=v6CB-%DSod6(L}n6MVThOx3f%}n z=+wx+QHsQu45Yed_^N*2dC0w9cFr_0j@>EcS^U#T!Jh!Nb&T}=3F9wfztVOfGb1EH zBp3g_d-;qN?82PUp*~dUUGj^7dyH;rSMfV3bGVf(L+R7>W=aNiylz^u{Z3v}Hn#88>2Wpi43|*_fND2m5MjjW z+55UV6w2F>sK#4(iet^`CO!Cd?GNuGgqPdXg}kGQr8bL`w?`<|aky67g3lf9g+oAtg5mv*7(lv9knWNgLb`M4?mnCQxu0|1bAIQ;{sewqKh4!JauM!i-R=+QN}s#qrM(qqYuRgHnLUfa)^dcUr#`tD^PV zvt?6B=slROp#TeN_^q^+K%whjJ2TOf5bWXZ5~Qd!ku#EYE!EFF!p23NN}du)ve|Vq zI12f-xjQbaoUy0Z(J-7c57?#9>TRrN)G&s955HqrvgC&G>{0$(_o5WJ-0!JzFSGIT z)!PbvPwgI~@?2H;_@AGRu>RB2S-p;89xDPzg$P9HaePo#Me0aYjQV&|3-ox z9#coVX(MfN<;bs4Uf80f6%bco|GJ+@2-nsT7AITaZqK>ulLgRq+sPny zbDK(=geAFsIfKKC_Az28Gh}DvJ8u&q>Z)a&9A{FX46_actm;XVdW5Lri$W$L(GFnr zNIEBHeomJ{fE}g9@Kr$f(RTvFZJZ};y*4pC`p|U-!s*ihM=^xb6oTERm56f<=X)Eina-heLl6Tfo%}%oL?+uafHH@XkKw@F29Y)?n@YBJ8>IXj^_Q%&-Cz+gwo)SR-S+i5O#2E+j<@5~Gzvn5MO_wv?XU2HvQzcgrJ$0MCivc!| z7CfN1!1EXQK#PByddK#!1fu(uxLADRI*Cm(v?%9qt{V}Ukpd*E?g6Kg(dqU0EVc#^ z%jr)ainV(my;+reY=JrMjT#vw)(>@nUYXNEx={>ag4eP(S&N+kXjLRnIAXicoHd%ry>J!~8*0sr5>0->vFDI2xvw%&i z)EKqIpHGXx3O^$brhQ*QHDDeZKs*ac&ynocemkcRrWM?U!gHOp%3FlMQ)Lw<*1y)m zQ%qFzIW0_OzJhg4E&LJofd77i$OJ)$&jQtQVCA)SvzyPpcjPw$tJb!%GSln#9g~F^ zWRF^vUxsRGqi`x_rOMRD^fJY`1q5;1C7`6mjdal*PP68;O61~W9Y>IV&i*SUj89`T= zL;~f7!sFB1gvM~8Z36n3+)3dL7^E=(Iic;kj;x>ea2v0gh%msa_XV9L1+5~F=aiG> z0RhRK&ClP#kXIwzV;_-T^_RALRP&3IsaFT<6I78QK=Va6mnKy6w23PCcgS_^XcIRG z7Rb8#uw|Qe)Q2*nV;@sPOs31Yqri7<6!;vTmcqUJy5yToygbjpu$@cTpzXO2cmm_6 z3x&4Op>mYRd7J37q|V*PTVa<#hVj0^FBS-(KK*rR5iA_|^pfRZSC4?04Nu_sJ5p^^ z<)>nSr0K6jlMlD)z`oU!zKlFFKVxMVKiRoHPpZe!MyJp2P8gZL0tzOs_y1bam79sd zX+a_$)C2iqJZ&DC*68x+@B7Y=6bH=4L!Zfk0kV06$fPJwfZ!MU+)28pt6Kv#ENC%Y zg(}ji@V!!yei~3w__mK)Rnz)?FuI7GRi)n(n7t5pZdWbfnEtk@ii_VZ4FppAP1J0P zKnbwVA%=nweD&KmfOY%iJxb3h*hVI@m5<-Qvv++0EdrcN;pC>2Ob`hC=SWDY`bsd^ zBj}=egzg13-b8Xna6ao8FNvVb6eJ)+(t5O&OzEj9@>sl#`GcO{%!0R@gi!&4PzPQi zl&)c9WKBs4r7xzlp(lLn2ejih6GWkFIMzHrH*mBg+y~ME@`4n_Yh+*E*O{j43&4YD zBlWtv%Wc2r#zp{3*jGT9CYp<}#W5S%6N>wRM(jek#NQ3u3MoEX@l%4VH?y|3h4G9p zV9Mz2n)`Jq@8U?kYpNJIfHy!Ra*S?_NPc-y=WIuCoix zR3|*hX@u`Ze8?xSBhfkVwP3loc(P8u$1o@7kA5yIgRT8nHWkky#TfPb7t=bwJ;%;O z$u)6OPqb4jv(`lKS_f_@A~}5kQt3n8X2ZKt!&&dM*?&9ws%GUJbun5C1Btg1a@-oS zdFW-3$cj+b)m)-A-F4EB5NyUxsYTAv*@x<5eGE@?mQ76NVzB)le?qewYR2T64eC@8 zeycQ-OY}(99~nT{rv0`{_B99W*;$=wZS-f!z|w;oHJ_Oq#f&9AZCFYD4&rEyl?nAH zkzz83lVgC4MU3V=uePf)o0UO?{1>`DYBI4B-Rw1Pi9j#CCA)<@J>ll#FN6t7FNbA= z9`EyZDOQ;>@K~gmsU8C7=d8e-7JD0RvVd%M;5pYY3%h z)0-j)%fgi1B_s%0ByAYI=mZW-y=;sbj*(0b{fkQT3cu}`!ED2k#xLxt9OxDd8BiAsW z3Vjyji4(^zM{LE`L^$+oIp^l-`!eUA_oF%c9wJPP_L%m$4YHdlGiawv8f(#4x*P<# zE9(531syH{hutv}V=snvxH-qSW?C33)|APbTkvs+QQwO!ZxH4NPVszQe;*VpFklH^ ztONm(OyeS9R%`Is6s${eld5l!dK=fn#IxbUgOV8Bb%e|v882)~K$F{4&zI4BZIM9P zH}KmJLEjzny_@d91F*=N@tN=7@?!GHBFPeB+b2`tN0-pJ~!o zn=w2guzb<;p!-%aXAVgw%KPhd5eU5Uy9T}rxkkw$o4Cg)CO}DeYbu)5q~cF>LVYly z5g+g^8I{7(Ib{64dnQ3dPD7S(io{CMInu>G0%yKIfe+*Qy!aJ96P^8nL??0;o;s!+ z!BOi<4v67&UQJc_pHyP-&veOV?I!sKwT)7z4T~4RJZGN2LUT8Z4;8H!tIy}&{HzMUnI#JQGfrS6veBO*;hItFaa?+=p}e>Dcl5z+}bRI||9O95eP{ElgH zN^t$=QU5w=OoVzWV?sG50cNJaH8(0R>)q-|@i(2=8aZryU{~Rcoh2E*QOaH-;IGd! zU*?%yaDdnF1>troBgTY12JfDMWv@AyM!%<*few~mVQ$cZodH#DID&{V07@zY$?KqmR+~t%FZ^H3^zBbzPFZTXTf~F5rnu{eyAo;=y|F z_aZ)LUVOm9d5A+QG%U-bXEwxnO22;JG_7CNu94W!9d78)#lKtxKI0zZh;a^h zn(V(0DP!qF!&S=jz~0q;s!HZ5EhCBttI~yVj4}aYSB<79>mp!O!63Q`AA2Yx#HLqs zxJ!@09p&JHe8NgKqHj_Ca#YL}6!gRKq&VWwD$FW?IV z{k2qUugC&K9-y@JVX=Te`zbhx4AOT)gPtLrAvr2)uxppsHpMMd76V$`QmR_PY0CvM zA;o5iFW=l&2^(j%l}gROE&`dbW^{8b%Gw%PPyZB4_#GfTac{?IeFI#A8F&e$2Y4}5x=a^*C zk2J&w!V5{~h~e}<7aFe)g=~kPuA&Jp2a@N(;&i7l=NmrM5h)bwrYZ?3p1#(D`UDAt zks>p9lCP3BqjxqVQZfhLLPku}$AF-MMWve*{98>g+0w?~vfeMg${B7FTTD(g2 zCPARzoDW=VSMVV^p6w6E)jyOWn?ISI_h(u7?Q_KUZ)$|)6~06AsObOJwm3bOUm9&v zq|XVeb(JW;l~8W=_=#?|6!#|e!O|MJL&{-<2~(nS4!|dR8Qtsg_$`uB?g@P^hJ1Kl z>En^mrw*9%`mZe3la(W!#Q#yYJd-FrjsWhk&v(8COcx@8zS-YqtijA$Y(mtXb6vji43)SLfD)8gzR3JQeG)YJ9h z|G`2IQC~HS`_bGx)vShW)b2<5h2d`8LEtnHU4Q}gI%1GoI9k@P8B@r3#g3RX*1h#X z-${U08__1&WIl%)Vz5ZpE>G6e2Pq0vQD^SKRJ_`vp3PvB(yiIg4iTZ)(557rf(R+? z-e@$vEvdt8v1@VD7RNAT7S4aQ0L2E$+7o)>N~|m9=$)z z*Z*SY8;XL2d}cD>*JE`8Ze23}ELz+bi6gVy>q?!@@j^8T=~Cf_Z;QkR!IkV#`7Od9 zkPiby+YBHRwDWCT{x5`C{=zf%ZIiQirNm!O%J#LC?^Ytxr>dr7g{8=L;l>!h0d6Vw zI(*j7q`%x$gp#*1(PvBJ+2^yDI}v;{_U4+V=36F3;Dvq5RN7?y$3B2nhloxwx!G}B zasO_Wrvwm5@5QXKRv*;O-UXsa=*Fd4#rsE3&X%k(Y%#If_>){Dlq!*r0 zH>Q>hr*!d8-Nz@Fzs*`0`SSz#XZggzANs{6O#vK@y?G>c@#Yf8xYQaG;SXHBn1ZTg zO!NASa(cqSp#fqHo~dR3a2}4Il38L5W^(X^qd&7%$wF_RpR%`ScP&tT9ht#nezV&7KC3Dlfc(R$IsEN9=SF@e&97p9OTC;=^X%JnlOL z_Dxz~4cwJsAer|HN}o&OX7fmpMi)xT2qn!n|KLz3^GoxWd4SGgLHE>=>h7KaLs#S< zqd4i*HT=DzHoV2sg=U;hPUh`Q~a_e=s!W{*aNH z1ywR-n8g_tPAV-2fGW|19(}(bq6>krsjM;<^$Cd513`KoZPnVLZHCm@3MzZhekO2k= zNY_0aOJYhrn^^<4P6yfK_x=tlys`oJI~=GRde!Ioi&;%m0nmVOAHnTDfia$2ukM`V zc#7*%?jrlVF6&#n-bE?kX|EiKB_DAu%ZQMiizPPxlknJC+eF?|F1+AfPXZTTz#yn| zJ6$S8#jQUC5~HNLz}Or`w6rJsKZG_%{w0#rSW?ZCzd4$QwT~|Fdg)=gZYH4+lB#6q zc54#IW_wvq^MQ9{7zqly1@9Ft(o;ceXj1Yc6>wP?15DCIU&?zEF zH|u(vKduvYq&AOJI|Lz<_#hv4hBoocL;_<$@Pdb&Y*8t~+blQ5mn%{_*7##YCNo6; zq$sE_fP@#Y9d#Wi#R4Npw>cN@mAYsFoed>gue4#~4tII@(uTe3H;0A#IwxQkwhj%Y zjX2$&U{Ij?Yn*j&maAzd+O0HG7k0R=J`Ly_(^7SpAVy`s=Qo1VcP$O??Jm`?3JnmI zzYxIU<`y>A8X%%Y^^>_*hO-n@QD6;pw^zIn|J)F#WMC#A(X;4o&Wz|1;5DRPCtwJp|Ht# zLv6MHv1yZ!l5$7F6f(6GG@R4As`!5zGw|SVx6MSeY zSHAPE4Q^Fle0ExJ>-g&}_K$|bd6LzT01uOZ5=pYZ#ypYXpg{Al$8`y^@M--AyoN}= z3w?e2X7-RK)WDd|A*N;MT@HV0J_)-8oE$mVO#b^={{|7J+38w+u;SokgMB6{{Eh!S z{YcmAC`+x9%W6myGa_VaR3pn-@hns>D0X}AwRx!>2f=ystWMWr`wQ6W^!#bn^ryPV zy3J?8M+sr4^K11@b#q>AF0GerK8s5C(h=?2oh0vEqP_1WXuyf5RIbZ^2}FpJM)>1HGWG+T z#tck80WD}Lpd?~AxH#nsJO@Ukwpn4<=g+m_mXEbyiq2&Qft_J51d~@yowXuT`krN& z=1fHA3%Lyc1g_Q!5KJu2><5roB<$dv<+Sw>?Xt3h^2vJ|cowqh@QdlB@FOoF$%lTj z_kHi^#GisDWzRPR@lK@U7!%p1rWUgB3`D6(BT(=xMnC8PPiJUNRbh^pB|V`6a`-gB z`0*o3L7#A8<3AXP9h_NrZ9Sf6);%78!>UG*X6;eU$G@fpmC}0#CX?Yp*_|pfq%28Y zUoHcr{W1;Z+HWa*xQvBrJgmNmKD{^;3hkO}$hZBbU~4Or9QHe%&iDhu)A#+xohb&4 zp@PJj$VPZF@r~XVnaPRj>QF0{Ankz2X%J3Wc9CO4nOK6Ewlae;bL2H zl?uH__z#^iOV@A|D%i8$$6%$(@GZ>0?Hfw>xok~@s0n$4QS<#DtKNIAPw+mp7EhjP zkF*;2wtRvK>zWuUdoaX-5={|Kj(S)msv|Qn;XKCxh=l6b*8{iARiAw?-BaNh?Ocsp zf@P2D*M#@n=Utw46JQ$N@Z4?oCGU%HMa$?Y+XYXJS-%~KnaxRhD zL%K2dhz}%>BqPNF*&RQEGR$1$qkE%;dF{szvY#@9{Xbs4>ImedsoEySgV0EKcRO~Q z>An_inr>%Y7fZ>Q^$CD@B$DmYb5Q=Bprbpl}unBdHApM4FvYsSf-Fi^5C?t zastl0vMTgNhC%bD^t@(viCQfp6{f*MXcgwB&;sDks{z}8B;fzikvpLS=3Eo_ABtjf z(nCs~)|#fUhQ%m!`~^r7 zgc*>&r$WNb$ICDwq5S~ zKYCw*96Q`$5zt4qn2O zkCrn=Exb#3xn3O~@A_uzLb(fcgSGbsc2Z3tgOJ?SM8%g~P$)q6&8PXDzm}6?S^pePADm#gkc2r^Uv03uk1b}&#aV+Ty5=pn zADU2h0$C5XILX;E+=Cb-6V&*REim-7oKDT=er@d5$`n^pN;flE zBhkn60`aw8Hms%$6+kETm#C+jZl=aD(0%V#U<2o5!eJy=*qBuLAJ5=@wZEL?u9&TH z6oAdKxVoU9)RbAS;!ImbEAzY{m}K6%ac-09FDmav)aTcc%o6CrFx-P{}X8)mx3Va01#I!Ar*-_>y5ec->ddNfoEyz(!l+b zo6g}kgB!4Y_w;uOs$;JzmxQVE-VKG6t75Fn-H`P7B zH}X5z8s2kcsz`&UE{R4#Q@t;KE{Y;jNkhajynH0Vws1{L=tSC>v%@9&;xq9nrH5lB z0=VQlKRY@f_T0pYUwZNEc0&I~zhQUqkl^y#6;bDP(1Vn)&iCn!eLMpHR<>lek;SJEyY4M-_`iQgfPBau^wuyhZIe^R7O)3VWW=F3-kn%USuJP)Nwo zRS|?F6}0iLC3tgYw|$J0dk#$zs?^PSq*gH5mM8sREkIHW#sCJAOvxf-CyZ#ZN5P=1 zqPAJu?S^6g%#MW_c!lty7gA1$`iiRWI3SMIP{jRkWmiPASTDV7-drS#OS^0HYtK|F zfXJ@1Ztl{AuCNv~5kU@|yPukVBC(h!DmGJ?9+1=pt}zufZCqotRMCYy5l@G>7o7&w z?CQcA>6nvU$19>zCp-_2kTEHtM-YQ7fz6JCfVum=U}0Xa9k$DAL^bW1_jSNa zpFnBADH5Kn&bG$DyJ{Wi*S0%#z4>Rr{N(rPS86x!Fssu(SI&q!@L16B`;V1o;Y~~R zb)RZIemFeP3*(<-yAiLF{=S1n|FPt;|YoPK!t6N3^-obPtXLQpGB9sM3&n_h{CFi`1VAX1)GR;o0H~`vuCx)$2!yv&Cgq?u8o29rdyZbf7Y9N z7`>uo4J>e?`)6E5x7aUhKD=!vmRQo^C?cp@C9ju}fPYO=Nr)b9tR`&6(FxgM-5dnY zlu^(J=eL?m3bgad2?f;u%T|M`^?3 zB}y?9pZ$c|=P^0`yA!3&=SahD>T;*sQMjPs?-{qA)uyFnnx;h{SD4ABlK_iMQGP9~ z!zH6xWJctTTU$Mko56zxdF%JQLLYa{Bs}ei4W9Br-misma2cONUF9XkBhU>^u|mj^ z0i`_|8zIL;AtFA=XRbz)uVy4`A>k;4a5{+t2J>5{^$fw`dIoPTBT+l%vTOP zmhHgI?c|p5Bi=NX`6!@W+dW1Ho}Sef3fmodi`YNxVKx3Zn@cCvM$}n8Or0WaRpEB~ z!4GsY5#j?`Elr*8_@N>pycX!{6PAnh`pN+12 zN<0}SYBe7K68I;WXX;BOy#gETfV7}FgsV1IIHKhcBuXPEyzu>xu2r9p=ezD_Q^RVe zo2g^l6jnTn$dQW8RiQ7k7k&bIH6}F-w*vlS36IKK1GnCGw@_{9h_()FRN5*hW+p2a z085Q%ED9OFC4&3ye7D2TLiE;Ammy!uru3|ak$1yZp3ZZs$ApM5)u{KVLN9TKSSif0W{ZfS9l# znh+NV>kMGz2ZnobpOW#qz4xY0fV|68`6ck~RI((4rUm!CO-y$7H;xvN>q^@yY0U}+ zFBmNI(9Y*5Y4>~qJi!f&ou|<`LL}2&v2%Ra|51m-C|iW7L=UKLG5)pGI%m3RhX-XE z&g4uyRufj*W=Lxg8Xb7E;nNUcZRRzBxWn!$R^GV<`;-{Qizz>DIMeXFOq7oFv zILu1YgNFuYxcaz0RHdzJnSIrJppChVD^AXAHySn^mbr{C-&3eQWXCr4$ekj zY(y)2O0>o9z?wrw4%i(56a(`;3sLgGNozuJLkX7MZL_`eQ}~dvk8Ey&L3qniu`iI{ zuI+v`-X`uL(RUD#Kz-4?4V88RQhoG5wo=rkJN5iODdt*J^f*LeZX5tU`k*>u6<#2I zBxJ0u?Pu`Viqxf#$V1Y)kxt4z$o4qEIDu~E$!j$QNI*l}=M3p(^?<@jCtFFn&EFsS zTxDz!8PdN-NriY+?#?SJC>5q8YiW9qO_o*9zy4>i8O&69GcPA z3<=O*`?SR_EJ+R&Sk5|Lvo1V3lv(uSC0E{Uyf>M4IZOslz;TD1)Xry#5Y?rNcc9jG z0am0ueuft@hMmv$N9-=1*^n9T2O3sKtclKh4m9{4){ZZBFUd7+_kOD1khXd8oK^2U zs_C-e-#z@;6WPYM4C%6Yrt@hQm>$$*_9O3&md4#>lnDb z&Q+!U#)%W`UXf1Elu@=@uCQAA{To-AG*`rf(77*;($++sDn^oD>Q;d;b->8C_Es0? z$rOMs`@W<13yZ>Od^`_Mu8LU{8cp(_#CVmLg*-!J#-Yx*TS`{oP#lST%$g~hBt`mC zm5ija@!@oOFo2txjX|e#)*_|{&Io^%>CXiD=SWhrWfyivhOaA`8PtvifCZ17f$Y5f zH@fzCy67TLi6UT-hnUE|>4vk7P|Iq=6#K#mhI;xgYFPQ>7xQ5Vdq=U+XNJ#K`qAPp z>54JS6jFAB)C``q9E7GHh7$doh&Q8RTInjR-Td}50k6n;mG>355YFtMOm*&8t0yj- z+sB?XtSSDzm#O~*Je!5)AH5_O2NK6Wso%w^<65lhqJ#`oXeQgNQF9aAXT#b4!tp{2 z-5M~B>llT%{ZUgwOViOk)ux3>=ITHdX{SCmvr_mu;Uoc1bgwmvAEria5mthTrW+sB zW3{MDBbYnLg%vzFtD-(MNhf92z+}2ieg(Wfu~_=3+c_{gmkfQQsb5WViboOF)dyJQ9CsiV4*PUX%s(W}V`^xN~OTkQXE^~TX&2g%BJlB?M~ zVLSyNMSLL-e?kP6V)Z9-?lC40UBK^>vp0o8Hhao|r0|fbqH@k>#$(0#^rtYjK3Lw^ zyLj8~GP+3goOh~Vj1#U1LepSK26j7HpEg#b$?2c6&q<0@CH!$G4+;-iM7)gGT31sT zRkG1{xXQa^6L{gnO)VVe<=~$@Ar|(;q!HA#G&x0L>+5To=;BFq#JL%%c>@?TJpP%I zNp%zyJK~(Mc&++TW1)Bamw8UuznthHa((Ud5ugSjt=#(@nFlx+58adxv_o5SLJBoWz=`DhA`Y1pN0hqFxp#0gA_bJ+E$V>py;nou#dm{9qO?NC*{ft_DmO@u3p5f%3 zF+zYKewW+H(>bBP*pXHICeITHdY)K0*w&dCrpOfZ4!3>oCwt`PtvvaJ#P?x`wy)8} zmZ9u{oAQ8jxBIW;I(#m{c8AaLmvogmZrxcUU*kc<1h)%aI7>qs-!e?(3_*+v z|NDi+00P90M-i_B{Uk%bzB1ZKVgqhD*c9?o-di0-a_N-~jqO40B@jr`gIn<}W51cIdSwI2z6$fi< z(S@Jqz;h(~KYC@>Dt_c}c7Ex%kcu+e?nDj^rhg!N_9XlxzkfCpXT+s*-$V9}W3-Ym zGa4w6@+ih+xrTDfO`i_!Xt28QdOby`nII$@0LUOfe+t4k?47nhQ~>~xekPJ-n=TbQ z*jx$Syt-mJ%xUQ+vEHA?s*#*0(niF{13?gySd?$~k=3M2 zqo{(LPD6WR1V&C0&6F!h(iO}uer2MW?gy)cSLNxLvGhQl>Fn!Wu}|MjNuB(9QW&1G8$=&Njjyq4Q=`P zH!8c1J8|y@fI#ucEXQ}@bjxSX75vUcJ3+MRJY?SHxqG1`7PhLrlbeK@ZS0b8$<+4w zSM;cFYdCsaN(Dc+5KBe`PHTOgV{g~MljVCqT=k;9^7DltGGjnbnz1Ib zqBwtJc+K{ycEddWkH9bJaObW#f$w>n?-EH#bM^s=;i(xv;S6kGRtxX0tLg5n=^U@= zbN^x%o9{&iHLz|J_1ODTy@GB9RE!9T4gG;yk-M(dTc&JVWnW9 zi?GJ^-lN_-c5XFKgGfiScFp2ze5)+qiHGF25d#TYASXr>yP zgq`nIrZ!y_>4*v02w%h#+KlAUTbksM3qrDcUf-&{d8XUX-;6Z`C@zoby#~L5o8_Za zj$yhpgKDo`&M%Q}iaIb2J6!XTU$1sg(dSr&L8(%WoObYD0unvU4MvVKu z($Z~`xkMaY-BgS`1DQSkn`(X9_iiAHqonJdb2;ZsmrZRcG@Dys7~V)56O}Sg_h~@y z3a^<}s+8*8*Myw!DhZ95Zp+fNAWOS%Ws>oyw-8fSjW$`HePw{wl3_RH)qZ!`E;{GE z2%U#L2T}CEzUP1^E9cUM&A3Gs;$E!rUKiSIUi%+WYyv}MydQzjf`8pzIs~>K2{Ij@ zzuF$|D0SrnM0f|F0IX*tyyp$0v7)s2kS{rEJl6opnC<{C+@J;yF9(I`4hd z&u5z92KZx7W20(UG4}2rRDHJaTGK$>U5AM_{YiaJA=G%f)kLY=4B$9&{xx}c8~p?O zBM}UHqbATUedZEcHZ>X>ubcLBU*NTW`ifV^uT7Lx!V}l1`Ie0&H>00=xLjEEVwH@R z{V!!G>m56Ue4=EtdU<2SagSbp7XV0eB|j&Kd5%mi=)q+WF0&^B$-PZPIOCJM7&%h>9aO$nEiU0=^a6zg8Q{#O&eQpBy z6hq;mHR?uLZ7=bFBO+zAuu^~M;5Q$1^AB~ za!HPaGBbvoU9bigxMU$cqB)+<=JY7Cy^c$tf{dxW64^D6Pg-Py z?p38c53Zycc5rv9zG4|nzN&0x|1a1t%k#kty!IJOb}lOOi5WLnHS<+E6p7j6C+4g! zstl6mil?I)b?jIiSWS;G^k|{Ew)ukOHJ@y7dsJnzpjqlXk;Jg`L}n{|+obQb89W@& z2s28DQMZ-npUsy39t@m$`zeUU>b*+jqc^d+aOzp00xp@05l#>8U2R8Q6~gDJz)8*I zpRV=??nbZdPpCVRLR0WFXJU1pi+J@lg(Z15Z0rAqzYVx1>h6BAKS~+_9_RO29{0W3 zn7=HV;6_{&THM^-{l25B`aE!(Jn$ca3zz84U;c8p;pbj0H+#P?7!HTCvv->&N(v?P>;!x`&$+nG8^nKKwxgyrLbn;dA z-k>h}YWb{C^;sm-qkUMJM(|8*wqd^aOGkiR`xigK3AOY^IxLQ(Es@JZSG(%ic!nYq zwDr2T6Z`yH#2Dny18dkkBEw}q@!(RCu|{%TWwy-Z4vqhj04FN{rHs*Pt>M^wzHT4D z)qT`=z=#IxROFyMGyaggMbQ%Mz2w&V#uRpk_}Yckg9ZbB>m+x9EJ;d0_y7`^&m&T@ zAko^852&kO=3y6urZ8dZP&ylq)E)I~X(ijqQ*1^=X?fvc=#lhCGu81Q&u=@*^T>6s zIfMmEvidFl(%!+;+3GwnT=wAh-@kd1v&o|am?7;3ml{)lrV^01>H}#UXg-ou=rtS#B zD|rNp+a%8bC{_CBQa8SC*_q9i#z9!_h+uWj53;rA3#CpTUCIGxTT*r<&Q(3N%Vw(I zpIuor8;kK%a6>>G_o1`^mi3i_#?6AVM_vbUUVrjbb4o4i4<6f9100n|=Gzm3Yv3I; z-mqI)C%63XR42k7pnAI0eG#Ps;)qr;eDqgV<6(!t<2&h5)l;p)t#js)@l5JIUEa8L zMD1^?O=>fe6*rIY?}EuRN7al<{L?m5pAT)b*`w&>u#|1Meb~Kd@InQ?VyLm7^tp5h z$?VGo>yJw=<&EPzF8m#VWt<`Jnz`t@6G3;g!lI4`hl+#~*K(+2;Pq61H!H!`~q+C^eo$YON4SsP5(;w1|9k5ME5Y!8&vdmt0Vr3F{nQj&JY z&Q&h zsVPuDu?{I5@F*;!jSyi{2y#%cLMkMoJl_>{0$9IKXl_p)!imerWX#|;ME=}4rA1`DypL+xH)-$Twt>UJux~8`5g9W(I`L`sWjziYQ8^J~l z-R53{OBD+38K=Jr_b&cGmW7J}ch-OV81fZtMP`9eu!^3%;|Tc$*{7B;NC%|kTQ?z| zw9)}*w9*fdawsl<*^~A1&?P-j;%Al@?%ewJvo;;q;R)H z^d$KpBR=OTyK_jgdII65Vo$_e(Tx43TepqecJ+v>=*|8G)1SnbfUo%1C*mT84+@bR z{^yd|sGtnP zMjjp`iUt7oYVH}2^nm-i#R*y@NecdM7RCb{?d_TIXa(Z6YAFSs9~Al$;<5zTDhOm& z|Hz=sA2@Ku;}t~^N_@r-?Rx48tBOjMRr;# z2V-ggh5uoXq0Krw10mybziDw`+6y&$4{*fK2CYa&LLnDv;&>-|JZJhJkiLUSS-%WO zz%aG!WO<%F1L=7BB6BEL5fQgjurfHmPYyuoh0@K00;olMjC=1CUx{Sp)u~fFB7SNl zU4D~L8vb!hX+gVUjJkm1*C@6LQqLQ>@-VDI!v$P<7#E@@^~E-fm`kr>2&yQ{Q_qNh zGNMKk-1I#1x8iOcer+~BZ_ zeUF5eb4)f>dSS1ISg8u^pszQws@3*<$*6r{f4Nk+R{kS?ev{!gzeOOmaVhmuHcEy8 zxJ+f;6XKq!y&L_GMDb767+Et9%+zpe>*-rU*hzXzk@_7PDdOBdHZon# ze)B$~1;|-fD&7dT+aw|U@hX5e4Ej)w#;$NT*y zGY(F4k`vSnwy1nHyjgjC6i033{b;%gv_OJ>oi22D-!fDzJw~`Q>vHtYK9G^1S}H)9 zAA(ZxLg?=gtt zh@ag08LD*bLxqF3Nm|*DFH3oac_h`0f5R;Oet?Bf5I# zocc=#X^wF{unIo+Qx;y50!ape;~x-t2V1TCtj2e(9rZ$xTmB&KlF;5bOGxaN+rm#0Ha%0|Ral}`BNOb=^NkHs- zBKV-+@M2#moAI_LPAx(7*8q(7sa$u33L+iX*P+M8+QXoBRc~9dB46wRcS?D{=~vjP zT>28lj$EI&Fjmoo5VU_JM=WB#HXVU?IBo2_uwbnOYxz8-Of2LhWy>tTb#-f7GCryNQ0B>INNxQku`4-(=j;a6o7MrR$o_i~_mPp1 z(gJXP0f!b87zQKLhzTORRXCN8vCARtUcfO;&EznU|NRjUdf;6$O8o*7%~4|Fto7>f zYJ{2*9J^@(Hb=gSUj*21>{z*Nr3zqN;BqQ_A_&yhvZ2J`>gX#s%gL9pUi3tbd5eCK zQ!}uDG!%ctFNq4MVp(LPs?HhvpTSj_4{Mo!E3aa~^!vgE z3^cp)htjWN$I6r})u-Q7^8FTewz9us^pW>YQix-2rBSqIp8N)5Wvcr@d92ET3SW>(8##5g!6BC%G1Jn>RP4kF zH8T|ct6b5iWr{3l%Gy7x=Z1B96(NUntcpD_n}rlmB6;y$29Q>=<}U>pI9mqVC58S!mfYxCaBo7V5<4*@VV!8ZZu7z*%2j-7B9h)&imYcwyl9IZA)T^1W}aRm&`byvJtjO> zd+{+ll4e{z&(2k&a9%p=gXU=A4>f|S-Ia5c_2co!J|brJ(@%}2$YpXxLr*N#5N6$S zDbjeWMlX^!8++^cmVGLm<2g4J^h>rA(zpgov4J zs?ezY*$(miJLH$zz&a?bx`~bP3vK$C9x6QktHA>9yl~SpIbY1{s$Dizz9%@z_@}0mb zi4eXws0cp1*q2#iO&tnmcqFKN8kOws{9XI1xT#r>)0G3$E-9|xV>395*Q;Ms1L;3~ zX3?o&hkINZRb{jK5$|D~@OHjl*Q&@9vsFO46-fF|CPw?_5!0&^et&_sYgWx`hFoet zi+Ry@KF#_#L>9iA``+y9i4#3KvIb~gnEw}5Zxt2S)^+V7ArLeWTtf)%4uw-#aCdjN z!XXeKPy}~(g1ZL~?(QBSxVyu@_I~%*+BtW1QFm*$ImhUukEc)Ou%&WFnyBpX7lXOo zJu}fagk6>O2{Q7#pE$;bK1A-n2iQd#N>EtR%e+FcDyZ(|y*jjW7+yl%r0PX+7xodk zESbnA*GO}0FpZCySMr_1c1>nGU(S> zRQkkO<;03=w84$X=5eWya%{6^3<5PKz4yK;pVy7BkC2v`roKuU`P8#APrZn(9;clG zHG|c3q^ZVbbZQvkpWHkg>^gq>A$znq$%>L0ZE8AxzigrF=1i@%%W^6P#RSG*CfGvP zLmGzD3wk+Eo6L(NY2UJ5%GX2xdM{+*O>uoS5`;`8l}tBc6I(rmcVfuYg6R zUCMP15BLFAYL#`de-mV?xJg?b`8z)pwC}Ydpy3~n_?}jD-t`S#qP+`e!hPdw>19&v z;wQudr=dF#Z=uXx{+G8U|JQn{vH)1UO^kcXBD?e;tVjzxP zwz&rp>64f?!BZV4w`?_KMU4{?wC_QL=y?*r4pKAvGOI^AV(#{xXp^$xfxUviW#5Bb zqE1o0@ zAk!Hw6rh`RfKYX&j24Q}S&PBFx*?wV62&t`{7uyi3g-E;66iP%W(x~4*7}hn)VpR* zJKHJx)w}^0BBi5U)~La?o0XY+(LYG z73Iz%{!mSQuu9flbH07FV#FfmSBW%qKF(_`pRnu;p&yWOn9N|(kea*X`pVe{Df3Lj zz7v_7{XLciXr1W=j1^gxUDE~2DL8LSYAea_JgMP)X8rUf^R%aA7m-+RA`M*l`0q`-ulRl!Ir3~_w5m2;$L-TK4BEP6N!3z?FA_t%; z_^*#k=4gd-zmtxP33t}7*2}0LVl7F*(17hY9~);1oy^y){5KdX$(EeQ)1jIh4se!U z`mmB`Dqef+rNs5KA>d3)7Oz9jV;iW7JV!ixQbqcOZETeL(um%n(KSd(KrWfX%t}`b z;+xe!rZWiGsc62m609_ZLK+GRe=7pf2Qz-R*425*A%$}}?0;&|^XGDED9ZkmPXL~1 zK6tMYwHYKf*p~(@g36J^QopItBME*-5==`n6oOujK{8Z_-c1GMTtZoawl~65PBNl5 zwOAe*HL;P+Rv&F>1gvh7FYKT%p*U(&s>J3O9{%w&xtNVKl?mJn_0}V?rQ|-qD0Ly{G(1|{!GL4Gt8d;)YpML{qjLG zt%)Bz4m!JIp(eN42gU2cp1Il@UeQ&CvyNB|EmktoHB{RB(n*sTKMg#hrIkjJ%+j&^ zRG)Cf%9~Q1@GLksK-;O)njg`s3TMaJY4{gUW@R-NHRiWGOoev5t!j$1r!GV6x86Am z{L;R@*0REi6pV9thh#}p%M3$?jMUZjJWEz{6&)FQY*N8swn+YPW(Hq~5g2)h*24X% z^6RKyXTdo^)_uz3xbm}x!6oNETYLrQCIC7wl0oo#TJShe@FB0t>ged`X<^vle>Y3y zAqK5S*C|UL54v+QR=DMrTeE}FtDel_S%-`G`-dF{KS1h!uLuJ_Zd)zrgU;z~i6 zp~O2H@xJTNaOz=J}Q%Q0gE}4Y_W4g;G1Gybpa>Y~tq53lZfRc!wTe@X&_m zUdIWWA)=hRR9A3E;J`&Xq^ksB8ZpWGU6K99X7L_b7DS7TN{2qNuP^P&|3Wx8l z+&>nA{^RoDpJY0G=_XH-p>~%LX=unw zl@m$x3kwjS*iZ~Ex&~J4_}vwf^TA3~m9q=x6|K_h6o$#&mw(^$1@P~s4@@Y2l%iyV5Fy`W~>l3QJ~gwfS=gPek?W zp6C!}^rv65xvWW2V-sYbGG=v`?^bXHBEze$!n6CVaz@f|IQ+&niU{QBUPPY+&}f8! zxb^e#2Bx$Pm!@OmhRW0YxUa5E-rh&?o@8aqa}$jPNJ~U8z(EnJKHN)S!{`NiAi^GB z!hGUypqMj~X1|cS@t}(^;ZDw_QxXl7&(y3J)|NGt!l{}Ui&W?-ffcurhabkjoc+!#4VX|J1xW|J1zye^}m2H1Gn;nS%l(&Z&Gemk&%P zt81|{I~6a8<^f?P1=&a>=;d?GGAB=+7A4`}oE;W4c$^n)@svrNY=dGcHzij(Y#jjtH+0 z_uf-2tX0uM^cA2y$RO0mDWD_Ve6wSnq~U+@GBkFXmG^gc!x03Gph z0awbnYMxqdkWhd95WoCk*%hwee2unS!kbacPc~gk?zWMnD(0?H{+MR!Tf^79_0mm5 zp{t{|NR6oWdLEyZ2Rk&14wW4oG9>M+qG-)C6NnF148kKfb3-*TR+ftnVD5#Hv?iA3 zr-jv}ik2(15v}tGHTAd60+cS@+*j=pKBC*i)#1 zR?{bi@*?}yw2)#2dp5Yi&_(y@`t8~iO8C)q>-Ke5dt-jmzj;{s_6JIc{S*#S=NJ!wgc7_LV`kb`TH;tCt28rcwZ~6tYO<{o=AtL+1ygb9q}qs6;bBRHm^CsOQFo zXP8WSn5?h0y8%5%4r;8D1yn07rAm4IPcXBZqmy!+peNYOjE&-I|Bjtyqo0rzOl@qkN5)a<`#n`Opi0)#BhuzTF{ANHhlX_M6FJ`lHRm^x-Aj zTaiq$RWicIsb(tKHHdu%N8Qh*{I}|u`OArhC*q6jrISW|=;aJ=e-pTW)_LaN6(vAr zzX1Zq9pYCEEZQrsRqo)gmVwGd0A<&FyH8|Mdw%fHT&T|-slH$S2JOakvL{7`E$@wc zIvvFSazPD?;JnrveDlji!lbaO-N&0eAsB_7IqRVtN~WmmBT!6a=p}Fxp;#zy9au zqF09{cowX}_6O48R59YobGCS}Wu;vc&fnsA=YoT}(~7k_;v9;UO$)DmI}LdX@6i8r z7&!jP>Pqk4A6-8EC%TeA5s+vRjpbQuROd(3R5@x%m<)Dx6PtJVU4HLxbq`fkQ$f)2 zy5-H}6fcu&tIa>!y#0VtUPfzbdOB>Xm`ItY)Tfg#9M8b55TWf~+*l3=0K`Vr42vCP z{qHXZ3yi!$s0WM*ETA4iSDGbVsWv0mLk`XV2>|WC6ukmRI(DN8Q83lrp8HY zRkTVf)mIo4K2vK80;z@?txNu&7O*;aTmJ+vn%CCM?PB0WHiZyjA?3E=Rig(JrC#Hp z=vrJ4D=Bo3VQr$lH2I)(OojWIcx3TFOM#Y@x-9*8k#7Ek|r$vwY*u^;n%Mv5EoQmW`{fq>MWO;5Y z=(YP05cQt4^}74?vsW=?K3o+7uLz)vtpAdkNlb7O2YEq? zG42b^qpSgVqhHRk$2=|};a54>qXb-M+)%7(B^ww}R8IwQwpbpE7?GNOOoXt%N#_i# z{2RJVVVciHHT@jB!Xp&RBk7xph7H}@v^KE%6`5@_#asRC7RWfry`I~Et#2rGfNK`G zCS27+wIU{{WM^TBkY=TfR%fUcOQ|whr{dT*%yQ`w3f3xc@O2SHxy9KVkr_ar5rP+y z%Ou_}flyUIV&&i{$d9RDOcG;hX!1l30UsmD&V!(9h>a4I1;j9OTM1t5KnLqUHTN*+ z71nN`*2JS1(E9yQIRVb#?oAw&*RnptWN(Pe!UFLzJ^KQ$7X_(uX?$yh675q%k#ea^ z;_k>OQt5EC*VYmi{o*uxe2I>0O7*yATl|QaQ*FBBa;d`jeS8_>^7w<;6E>`?pZHqA z0{5c8Vdq-MHro_jJ-1#<-Q>i(l8S3tdOwD9Yg9uNauVBPEJVa@ji2WtlKm3GxyIFcjGYe0SUT>QBqV9QyXLYo%+$%tUV?m1hTYrFHPe4x}kj|}OHz=?l-m+&k9Bhb|A9JTM z4iHO7-P0cr%XH~p5=c=m2eR4>*f5*kj~awD#ZOhtX>4&@JWHQP|6t$QC%~~NSKBbR z!hk7^KR7Av^|{0#Y8@kA_%t-lkw_X6`E}zdpZ+yV$oKHH?Ku$0{%oQ*@_HpwAbFh8 zv44p1yD6&l8e#kuN&Yg!@^#_8%OcjC>Fgwcmh9RUI(?_$1IHCA$-jw-;WH6<(tIh; z(8KLB&3#e(TXLBEA&Jm6u|h$?2}rqUlA6_=;(VNg^ulsaeO_~ zYO!MB>Qam%Ua;~k^Jb`6MQu~Mk92SOUB-GkZ+Io_WoEX;v`BS?KdcC7w~BYq^^n+T z&%Ua^`mELqFwl5zwg@8aX*%VM>2HaRTPXD#Ah>L9T$V06~K?u+@ImW@{wSst}XJlB5CF*6wof zj?aRN)HNkYcXP1cbs)WZfvm!0T0JXivCPt0Tr}&O-GPqVBrzVY$2V5agGtr+MZoz@ zYR=_19(b&fGUii$!fLL)c%8U(>5*wCT@5k6%pna}em!{ksqQh0VdZT?+1`{frjoV3 z9nCv$S1f;e_2s0rv;FU^tB}oDpG2~iiXLbUwZ0-8wVcYeCEdnImffZ?-?DpSoSoum zq4G}QYWC%>@l?BZwQbSIA&c_4w(ON81EbwUw2{Apx=#BsT4`rq?`;(lI?+$rZ{1nL z=<2&MJB3fsI=B6^v!q7fyC0Qzmr1X;x2;>?T6I5nr_Nc9lGtYG~JGn)|a++ zRRAdNo0i76_D5Ml_k#dS`C=3AziOhmuhwTBZ~25+ zf%OWU1{E4T7d=+!*lgeie|&%B_GSOCWYu)$>urt;(y3T zl-Uxxj8Rg}YBmd1(_c?fSCa52;CgJgL zk^7N`Hg9cDY*tMOo8ay54k*JhmUU8TTuH?#%~I-{sLmrbpO>;Ps_Ze_m94s)WOOeg z^PPevn+E$iM`KS$0v08Z9f9$e3X3^G#mc4~6pi%7Ij!ZM#mVw2`wi=Q$KV_C9^F|) zGyP`-!%j{pBe#`G;qIlBup~;y?F~lj_1I$-?#uN0s_*>0%rA+~n#Ev-#sHh~t?zAUKrHdIMm1 zQqYxx`ky_dE~9B9&7y9vk8{A40Y7Qi+7xX_iu*Wex z4Ho^fPlZ5ea9Nl)^U2fNvS7#|>ZSMs!s4Wpp~wBOL1GsHQ8y!*>u|r{Q$G;Sn3j1l zN(3OQ+HP08e`#DjV|XGVp$bHqo6V{0Lja*Nk_;80 zD{ zBzkoZFym#$W{GY?%~mZl32|O&Ib+RO9U{>o0;Xo$*3l^qitxG)KiGy?98S=!<6%`o zM~_4CV8_GtTdXPhu7wLLFP*{=*&hZU4V_zx*kS-$CN}!u3C_4%N`d0U6C1wdEoq4t zu}yWas9SY={tf>kbB+gH9$JyGZdt!g9KNgfVx$@MwuxPfbspVmxy~DpTk>k0*yXPH z(q;k*^KCvJv-H)^>+sQyB5IXad2?bomp@^DbFez$n(H0OXEtn(vpdwdZe*P>eQZus zO}U4rf8a0KwOTdbq0qkekvD+Rhk3{5KF<3%BCwcS>t;&|R42Sg@UL6&&(C3pMk#-G zQH$;^(uEfIK#|D*E{e46%l+ejJvue0d*v3|E?(ex`Get0CW%Y-SWR|2ASsBI)_0O| zb(!_b|6l!j8*;vfrEYE7njfW>`DPOrN0)ePC`QqLtZC9UUf2nwPlGSD&d0+e7UNR4 zeq?5Rl~O)xj2)k?XCz2W*vb>Hh$KU|!-d|9LdA-PDpIKmb`^l@0E&a+T-qq9GKhA=jqN z&?FGbk=mWj0IBK8vMzNl_~^yx@C7cKMYL(4^nW+ta9<+NKV53Nx(-~Y05;b+Q2ez^ z2&b!NvNu6ue%YmE7?su0PtvhM+Vs_(0!)ytdM5wh6DBT%WmWS%$3L`}E+M8gPA)t$ z5yiV;fq>{aEFO(0nR1Dpr~-|7V8}-SaWTqd;F|{1Iq(+9D&(hjRI{B!3#U}GF8H-e z^BEJ2n`Y)T4&+=lDG?nZn zhM64~z0dZtV@vYVW7!FOTl1?F?NiL*Ox8rf99c4#y4MZoX$0o#C;V};ev(jX0=uva zd0LG6-mE^7p>Xv%2Bpzp#c}G7+tCU@+Ub+hIrNnG`cC=@9#C5&uK^k6V1WOgw0){$ z2Bh(1WM=>)_;ElRfVEl;mVF5KW!YsT`Q4ks{L&`KN=cgXoWsyM z;AK*hx8?QEO2;Q#LW7HZ1CZY?0Mz<=LG8!J6@e%CiU3UeI>}zhfspjqTR%U5DfZuZ z*rbj#{QtCo=6*WE+%*d>+b@%LdWHNyh@o_zH4F|kw+d$-;`)>kzwLTA(5-8`oX9}OJxKzsJ$!k=YXorwoO68sC}M|zzCAf%v=fzxj>2iC0)?0hDnL`3W^>9a!DZ!O2EbadUv-SLdl-GEky_@G zyuj6JJZV${wXNt%v9;#h_i~1{CizrO?~%DOX;fpCoY$>->ypfG%9#omQDD1>d#Nj` zi=ib;lVB!bX3d$%i1?ShJN90?Zp)PZgWqhT>0v>yh38lU9$Ez+BjE%oCpM+`TK%!r zs+X3UcyXm*86@b~?OG?xCsQ?RbHcPj(q`7}_dfk^Yw#^V@q!^uKwI9os6%zTtrz(m znkZ%8+?GkD;$6C;b(h-M)RB!k+05v+5>skfFYZ}*wE~yqm)e_sU_DxMBLp0qkgc{0 zlNsF`-x0F*U52N@lT2$%CZ;Nqa z2bSy)b~2ngAUxUAjGS+~sdry*+pxe|dG)=0rGEX(ZhrD4xBe6#A@q6=P`JLHdancW zJM-fOb3g9cMN&KV|AaIWR*&48{%_dRBB8n}#1WUD`z}J&VH0L^a(XxdLnV5LFLNeD zPDN{baxBqclrKJ97xYsHY`C5Jqu1W z3h5XU<5r#)ElSG`3FsTh1}kSLL5gQAvGEm`uPpai!Zqv5^Z~~1(a+i>QT$0Gb6-bb zK37BZ5-$^raZ6%jIei7d-%U@#DI}qT1ziMI zaqUV9#vjwvt>bgQ)RdW@cn&CfN@+wiWtPA)$|=)#QSqB5s~31&UNbnn+h#0%YiN9u zd6iya+`rUoc2Tra!LqNnoat5;ss0+TyW!=%wwYxi2vxPNpFiH#qDoi`GAZDEdMQ-e zU#Ms}HFQ@GP?HiBaB00s%&=Z9nO)JH&&Y@Pky|!UCRQ{4G|CcOvMVOUwcHU;nS^Vl zw#~c9P4&B~>%6q`j6`w6i}F+IDq2nHc>ii^lllYu73Xq*Z040whtJF2hKJPFg^0+2 zo{JTr@Y^AwlbAXOJ{-Mo$liMJkA8V$Vw|9rR>Ae)c<_trEUn|52zY|7pCMUr&+&zJ zFZbgeS129dDZ(o6mnsDyJ3wk1gfAuX$9qA^+r+EgGH=9gO z^~+~8%YLNRny5@;b6_WzX+?dM^e^jwFa8)$=oytO!xtyeDyj9oz`kj5pwUSJtcVWKi7i6H^~;aRiK zzrH7D`Lpl9q?=!>p?Ks^c!6|WrzO_6i)g__PpOH4nxS|lv)q)NlQMDwE7i3rn{PEd zUBu)2v<(~Lg|j;K*fVRMCH5sGaoAG`<^b!jsZ|yW=AQU(0#~DguJcb~r0dp{`2pqL z$RnX32K)GI?AU0Wg#6v>FZaKOp10>>#$36#pFFIS4tU(-)$EG*yX%6q$$c*^cW^GC zJ?qI$A)MZH7J3G(^Go=LzU8okbBK#1<&$(SmC0ocYrRu?(ie?6oVaX|@?BaqomF|d z8!rPODA#OYFDtKQc(0Iz#Kut9(8PPo@~|>0Ba-4fUi%+}eY_r`?hl!F-+5ay1iwC1 zM}1}B3eCvK$nx5zcQid80W51ezyAqe_}?66Pinvu73@R(o$gG+sqS|SZ4V`$p?8)`c}$5V4d znKm|M+SZ^NK{3HIWy1o$g(=5Y?{jXfBAJp&xS`cxsT@`C4r8#XBkeL8CZ%7^+>%CR zpS=epv3saHZ%6x6QX=I%ogF7__zrt>Glq~fLB^lp2Mzp^hAVi(ysjXO=9y-^)s`>I z;;ET*yqVEo;-q9N?Q56nK|5Nx+8488@6>jV*dgl-cw^{ieCQZ?Ux(siihjJ~&M z$s;YK1qf@rs1{6vKe1MvHuimF$4eMqIw#8u7Xa9)-i+3-fL_h5=u+RENE_0rB8O8t z8?vdm4L%SXpqY&|wr(>n(Ae{M-~6MK#I*=qTPb{4JTvqGEJZ#WT?oW-D;G+Q{12>A z0NpoWR}kaBXXTyI;3L9ec=f?(Og`z%GDro9eqQ99_AiamO8O$}WR2O0_ZyXX>b@h< z>l0z~Ooj0#d&Zq6csM&Z$m;iGnO@!A9JXaFl`xB&^Bml)t;%k7B#Nt>yl+b zOqmu_J1Yc!&ka^>4vo!_jAg=+<5&i5MIb_;9k>7K(sgeU+XN)5Pg&%1_2-`*UPFRY4X7h8Uwcs7r=1Qf*9LUx z0b8XdJ8gzk+XZ{x)J~mknWCZ{$}u!@ z*gmChPH0fH#FnGHnkedJ8jmKxt5dDr_Lo=h`hnm$rvxe`SyzZwUr4EvWU@Sj$W^x* zk0xmD_6L(t^u#%*bN=MRDl{GZqqRh1nX(9Qr`xJLrxhlW#+twR7==mbWz#4SQfgNT zzQi|(eI)8PJowUWAacN3ac48G9>J$w`+W;SN0!g_&E~b>4m=|)OObF`bjn}a0@u4v zG>l`R*w0(LT=b%~+@1-Ww_$3K+%#U~Zn%v1t&$Jv-)q0Z0C08a2g_}>v_G~`-`@8* zJeb=O3cb`MZ4GQfefOY%sd?+zq2u{x`G4!8lQGdZHzQso@z|4!NFN;jchCmX8s%D5o%m;CnaCM|*+pTAclMDk9CQvA* zHhmD%%a~?Cv@rRMrRa+M7ZjrsEf+JNtM2yKGH;`-%K-%L6_YYLph=&GqQ@I0z=6U3 zMLgra-IS`qib(Zu6odTa45<0&NV-g`M8w4-G7mn;(Rgdl6Pyd&BFc{5c#_5*l-BQACHoLS5TlM8LE6pT7dK2r1pjT??(8J zFK^XmpeQ-5I_6LGbH<5gBb>XK!iN4WcAf?=Y)^GOHWM;v{*Ap>a#G>Jk0utwWN249 z+>ZjWY%pZpbcc%yI34kYY-9Wq__NDQrP+GLhz;h*VP8n>RQV9X+r8BgH+sxn5kF9m zrpIw2oWXUp8+9k6yLKPA!-Pe$5ON|XDN9Pt=BTNl?lz!r^h#{(zpv+x( z>dlru>-87Q<@nhFIR_$XR)s`6$1yX+!wYyM6FYTe8(QW*)F*fNHs|y%#d{;5N#Sp!<#E(0Vvi=6zQFCFOPV#-E_uF6p7FT=fLoZ9mL#@L zFr4ofi7EYmT7c^H&&K3if-=0Wkkx6jdh>t>@Zsn&Sqr*#8&jRd7zmR_K|hM(0Onoq zGeqZiQNME$(N1{r?=^*n!`{NNN#kl zg3gcoe~eRapC>`#Ak|r_=<_{b)ff!AU;FY1=Ln>ePX+;*l_tFUXRW(HKHS{t-A#-_ z#|BXcW?COgR>!?MF@EOtk%bA$U7iqs7wzQ#ZVw$%$2CHo-W69rACaPZAj}f~bHi}WCmaa6cKSc1MUq-(w3!YQ4NU|t^?St7z}@8daem1R z)r{m)8f$YMRz%kEiFB2I)j6?9F6)=cf~C~#%zvbd7|4c0Ic>3Gx=cd2)*MDW+y+hb zK_r|>7LT=R${t8myHv@6RKp}3IwZ?!tQyf9Ng10q(n~R5b+Y3EjAZ~F-8cum8(5%O zu%FpzZLEMZBNjQYbV>H&G4mpj>pBmmoi1`DJr4zeU8d+mNtG@4s%G#!#qabnXL*LW zwr!~-;jAL+Sw4)52n ziblCgrlOOXuhJnnIxc)NZ56SBO3wP!Y3zJ;GXYw>ooj8Q5{En52hG)&-`}cR7pqi0 zh}>dC71T6XJTBJCn6(K1O?6Z7n^6v!17Nq$ANrjA)RyIZ*=e}z<}}YSJj?P$#_eD! z1R`LHg{Em7``WKD8W`)dXvdX+tkPH;C$3O{A$|-1nK2@%0HO{e|A|vnH!g5`_!0kmSqNiICQAKO%cv#S zAn9gmB%Z%VtF)Vhqq!3t3d^Ne~C-HaMdzgm@vQ*(BwZk_?OuHe|b`YA1S;~aI@{BL?6UwPa-Hh zYsLStMq9=}Y0Sn#d+nR}E6*o-FmcVq&CF=zE7EW_EX3pAjfGKcsX*guSh$hr1|mAQ ze#%0WS1dmvGA*W9Hl7>*vzi(M>-(XvX{o&R=gV#)dr%Y@`6}P;0-ptvH z%}GmXxNf%Wkj)Q2KP2GOCoX=AM-0f9b`}%b4#I>JZ00$8IL+n6n<(EeFKq3B1PSYs zG!Ig1x#Dv@(xjN7oD&n|XMt2eU3? ze>asDgew*84Q9zH_!!=Yp_cu<%?v2H2>k258dUPcw99EV#4pTNI$ix2c*eeeG@M5| z=DrTzv8&57!N`@4=)^o{-9i@>Cz3)}6hbxU>wdoXWKXa+ zjHIvM4OV`MxK-7Ddienu4*u^%R)^=U5%14BuBmhiWU7o$f_)7YZiyU6HFU zMj!C0QpHm`w5Y~bGU1MFi$^qX6;|y1@;>N;aY+iK_B^NzC1IB^R}%prQ4F#{)%TSK zW!Ju6(>lu$%#N|};Xa3Xz2P6MEw*M0EQwf3qlE8V8(HN)Td-_vN+o*hWvhy8Ci0cb zoV3ftuv234RNuAhTS$EfG<)4XXdSYDrg+t&VZ-0^1|!ghbdwzCI|^x6tHUhw+j$Qf zat~W<3QzT3QGzduroE{n6Qz^M=jeZ~YjbPZu&Kk!Xi#c%XKFTCq)Am~+s}%}2g`T* zS`Q3)i_5p2rzqx+P=C;x4}CIMHl0;6m8q+te6n3MwCdEfG8>~aIo@F@mnCHPhMjr% zCPQ_2bg)7~#a^!T+ob&moX2x#J+Ju)(XRh}TIQ1G&}n!c$z40afH9Sj>WSGR-k^%| z&C5m6lVCs=S^%c*6=E;`46^Z91*dw_!wxlaaiodQBuQuV{Krt;Cw&(rm1d;!ovFP8 zEcVz-cNpoH^N*KC;x8jWX48836FQl4pUfijkOLD}B!i#hez7EDN57}!3xdNdNgn{C zW5)cSt*ly5|7J?)*M31-mD1C16S715*Y?v#Ut8?{ND}W26t329Uq79%u3riOrS54^ zN7#R*42G&aYnvEYXTO6uc=nElCF8ej|S7OvuMlXpoZ6V~sYWXmgxGv_K84fUrn zjf89{9k@bpM2c!Bca2oPQehZ*A`OE*Twe(>I!S)J`150^zsT0nl6LKq^Jke4QeXtm z(BH+tr9$Z<>l7p}zpJZ%S7umR84k@E2n~*4qR!b)WW-!7=t0`xvqDhSnztW3qRWml%?|Ifrujn(7pbDN{%_Dhk&`j97M~=u zsr~z1h=j7&BEO-RAK3BYM&I>rb(G9sdCeNk~N*j((qd z5Y01wEE!^V({(DRPO_WvDSL@3RJx`GafAm^sOjf5rZ^|Km9g=C74<|fxqvw{GasDZ zhd0(5Z1tBV`RrLpQ+v=f0x4;W{To=ZH&5CF=LPybet zVdj8)s*j+il*gNE0yZ)`3lJ{3q)MUCDe}WijEEd5akO0g1>%rpd*3M=v=|cl1kP~T zY0)s@Y{C_pE5xFpk-bn%hF0-^-zJ~?V^qaI0;#?TQw;e`n){bLRWN9iJe41tp4|mO z2tS2DwGz+EBzGtj0po*{E3ukq(N@u)VX*}PV!>K7;-KiF?3=Qb@V?f&NU(7z#) zoN#)RT&8~(?UTAC6+#>erQ(i#YS52Tx5uu*^^re_BQSrPl`>hIJSaPp{0^F;6js-S ztJOCgXbIAROKx|sjNz?i!h)D*RM&?LBV*sX_?@sBv9%n?(j$P=%lLK)`b< zm{_f;c8@Q4=G87mUz#Ha(Vvo#C*3OqV8>rff(QAr=cC5>pGn@066uC&37Ds~Hb)VE zRX)#nQTyTlx-aHR0+H<<C0NR;s~GOkaoCP+BYMVhMAXxsO-HKR5F6l z6q@9wk2<){d7F-(wpP3wjjZS))_oKExSZHZRoRW>~`z8Isiry6ykI4_Z zCcc!&9;l<93lldDsM_X3rlYFNu+R&z?zr<=Bm7A6iW)Ru> zqinC+Ao#V2nBN`r-REj0aOFwSciO%dCw~!F`Gz4JuCRkyJMzA9B|2E(-_PfpkieaT zL2@VIkavBKO}84u2JiUj{RAX*$B2Rv*|n)|5&rz|1yR8ydmfNv>UeUt#omr0@;kkC zxVz1&>^OO7Y~3GS$l`fCswKMuU;-!}Lk`cl|D6FkO&sMJK7@^M>s16Ru`^^YPhz^U zkh}`T!r|SEN)77|smM{_@=>>@^AP@}H8WM@18HYE4lD8czs-4+!?FnF44(QTQL*0F z#ht{ZtZLd{2XmMb(s9*xaR@J+Vs%{;f0KN1-pf?-8;Ql3_S)z0a=W5pBbqeby3%1R z_ObNPJcS=~36b%)H9OYYB!6mjez5&1sI4{BJ+VnHb8_?I{05=so`KZ(9flGW#xU5j z*N_jp{{t_7oo)K2QKC;WJQ^t+ZKSz*FD)rp0(CuIP!7r~t`l~NiJGtKem)Pu z(m{#rVwMaRMyfacrg1`z93gTth1Bk&(7qIdeKj^tL1%#)DhF)5C6 zy#4{!b{pZITkU^7dchB+F(1WnT8qAVF!>|T5#w=mrin@@bAOD9XP|K0jQAv<%%t9| zS0)F4(tPF)4*c8vS%$RKytpS{LswI~ zV;-$q5aGlDeh^h{fufMywZc>=Kqzue_Y1nm+Rsnv8X~yG>Pm6EY8Gi82s3+Huv9?w z&tefM1(gWCmNlOL`<4o;SO}Yi2ucb&Mh*xnB_9=$FvfnA3AH?XFTFDWPHwE=^5F4^ z_5s-!nhwG4iB=VLA5R>3mHkNvgWo1OvO`%LMf>yfj5P^ zRI9pc(2$q5sQl!k###N7W>#E~AD&}Ps)hB%F0!Dsy!pM-K*zTf$H#9UWKhfxP%%h3 z**()!7(MmPW#+_JQDaMGcXWFe3<;Lo3n5pFqXV)u*pN?3&urhZLGo-sq&ekzk5Rk1 zlE5bqRGrMjm~Gl^)2spuQm1BLs~I=?ELom7B(vlxgKwwnJ+NRu9Z@)le zhrwef9G@AyZ;!e$TOlqCSH?ISJ!NylYY7r<&gS5@TW%XnJDNWo-G+?9O)|S2Ym`IG zWgcMu)#TmB=BW^$S}+-On4U0X7CmNvWu7!+z=#Pb`WG z4kxZso20?;ZR~p z#~S0HIODIN&M%96>0(!9!(aM4ti`R(GqII^IL4-AqnktX5!k0eDwzHyX;ZHUx+^tTOd3ZQy zO799gc8k+81$OmlFY$xjI-?i@k&+wd=7g_zb`C(k~ z7Sq4vT6lDt?&B{Z=1kgglWp-8cf_}i!gYkUy>tt#b3c{Q@R~7r=5stwuAh05BopHl zxb#<;?Rv+mR0){rRGMz2r>qC%7}>^E+7ce)2D~FZe+f(H_eLLDlFwc(rhPl%$x$Zu zR&lRDdYmcE7fn$98lI?R8$RS=tJL2kvLR6Leif zI`|DPn;hTB`HkC*Mhzd7bf7*Ht0Rv*h@t8^fEmxTuNfjsN#lW(1zjrqb^?F1S#(jL zR#_l40wGqTKqJ(@X)sGeCF!@lISNV&-FZfQHr`a78m+0G36}z z9k)(yCZpLW9S}ppHbc-fqHM|s83Mip@m`Bccf6|4u}!i}@#)5{85>N?p5GTn)CH-t z_b}8ak0l>YcDCerJR<0O$mbV89J%Z{+h<~7=F0;m5+)m4T? z)oyJO5h;<929fUW6r_crJETjc8G4jdx^rMaK)O4JhM`6}q*EG(9P*p@ocH|r_I1s_ z`M1}8p0)0E2ZZjA*JL}i*BwHMERGW0E-s)`8Q8>0{VRIe*RQ#krRGawIKKBZ!5qHv zPDOso14fZwan)&*lrFSgkw6)bPlDVKX}wA{O+tPwtGIu;wsP(2Lo<-DR(Srj>i-QS zq=42F);X53_KoJN)|GoNCLpS1M49S$;8OOnn_co97)z|B24Wd^wk}^(WC?!!&oScR zAwc&)`60JtI>(cA$;!e}vN{C)cjYvOZUMGUpPh)#2M1TiENZI&=BmwAHeDV*(gb>u zdR0QpByfa!uGHIEmbI%!O==h2#r3h+udB*0jW1&OFe@hG^0qW`&ZrBI4K!dljw;to`?zD!NcofAr_VC%r0M8Hrr@hHehZpBBZ_Nl2L0 z^l;Nw8IS_8u8OKs1+RXIl9wQE!5lTdUHyWhFa*FYVT;)|OhSEIx!2w(j@cq@w|0t$ z|Ay4wR<&H7-MHrUnV}fF`%y%-#M3(LzJrT%#4dj@EW5Pkm*`4257mfE?BRtS`X-cl zxH?WTiuWh~Ws!B2N98E573~gqllt$n9y{~U^n3oBnZbs2lX$o9Q!Rl7QI=Z+nxzXW z`EN7eKQ$_Re-WrpSTH#a^PJuPRf>wZdF|-HqC3*kM11DWTtMTSo9sYQt1#%>H^N^q z>|KO>)xl+mzDE%YyySrPkO$iSHcE?(wp!)of5-MEDufz1z8ub<5?JX@b0W6jhk4Qw zf~pJDV}6T36j;I{jdV@eSjDBWVQ9_)yz_71!ST}iM)R37wX5~uIS8E%qY?LU zk(AL9jJ=;FY0s9Z(nwAft?SU%-CAgwW3Gri&09%|Bs^Nf!{De%ELnEYWHtM@s{;kOG5Z+tZq3dX{BTc%&~Wi z!K|#YIa)8mC*|oqw`zTIGfoM{rNMUsZwmfkVzy$+Uo6_X5@n@a&);H}$@X;1iyJWt zJd4@U+*ZgQ83B(Z8b*rom&Vs~7(XuzCZ|z7Bg;CLPq$=+XQtPt%a=xZo(CnW_QjYf zeCACz&}4ZHzLnZ7C8OEVvhlm0@9cdVyKMU0eY@(9=6nZ=7MD9HnwaMt{i$?3L2EOv z`{9FBcIy|o;p}baC=GqyqAol>JfdJL@yQ=W{*``=LqY~jmC$gp*cVHNWo9y`9s={X z!}Ln2*2Xh^Fnxt3;&U)c+tmX==p>j|+iYSTq}kYJdjsfuz?=G3BMd!UNG$LfAe$XY zg1HA~ZeR|}gQ8#e%2YYwf=b4lWY0EYV%o!n9OMfR>MK#5DDMybj&+hb78>NB^E^59 zmUksOdi`f4mzeK4%O!K*ja}e&=eJR557U6@X;Ra3w11C~5AXV)#`wm5EHQ{)QD65j z8gK=CD7ok*jLA6jYhzj=EfNMm5BX;AH_Xq)Ng$_pi?>dtpFHB@K5HdQP^(-FF&;N_ z_;P8UbI&l)j(cB~q*)f9aumJ&VGv2xj-?fABea}^JT}u^`b2lVIjo@NygI!6zDq%1 zzKHz$r^C(3=|!uLKjjcs)-=gky)~M>KKwSEL2<1^8t-2zJshkcB|>_7{NMKU*psI~ z`{a_SBaT$QM&~JnRf9)JK;em9E_}#38pR=~X0j0#IppQf;)JfXU zG^ks}0Erp;#4L(Ml=Y+f)38LbUrC^Sa1tByw_kTd&@W$5^W%1*5LtVv1-iPX>oiE!_dgVMq3g_VO!9B~X%LEfKo=n^wvuBHZCZC?4 z&1E0*#HSDY9O1@{^SZ}`{;?bNnZ|Q9ok^u7a{o+Z)noBx_G$h78i6ZAjaO?E=%r`UgFDH4#bqiN;R+$C;>Pv%ajl64EWaBA+P?Q6YB@Ql!cj z+OsWzF*-JQ*+Z7dbK%wu+!2XWM0Nr#@kT<(V1+h}>7hbqy|d`ca`Mj5F`L<4Q&CmG zj(Gr@x7y#|D00}`)!%nZu0!kdaNm?q0#C+TmJC-=@&}*B)+K7nKKJYkjsxSn;m3>c zDvY+ft=ntiYVrS!tLh9vhq>QMjNgqiPSgZ6kV#+MCQ+hZT>DFLOw+&u6AbGol;v+U6anjTbfpMXSfP)Fvx5`uGKq!WT(7 z2j~rm9d(br71`+Uaa_v)BhALmT-!V{b+>0EOA!&_*#JTOWI*0#xyaj^?VF}8>#m-U z{zkF%TZ2>O7&st5+`K)qJZ@xeqht~6O1zqKV$9!mCE#5ls!jKwqe zlZ0CszgO{a8lc8Ub~suTAE&tJNW35am$cMle=H@bXTv|3#^<$zN&E(2)5Es$cr~4g zu+2y&SYx=k?+>V86S=}FRA;8qLDhDcY zuLDtdpwPcihpo&A<;9cMpze#*MJJM5&eiEE%jAgGMOl`8y*-U@Tqm!CGBn$`8ci(1 zDRiarqGhT%c!qEbKM2$LY)PgX+M3Bz&OU9H!qE0Cs0X)DqUHWsBqUAEc+qTd%XF zvNUa8CYGj`WI06ooZ>z)Y9;(bWKt^!V+4o&PX8YkKus`u@cHL2$*^q^pXWO*pGBQ~ z9dM#>f4Ex-uZ*#5FDT}z!V2S=4qUh8mXjg)!Dbgx^H1#E_%2af=}^HKGh$*ddri20 zpU3FWC?`5!et8a#Jf!JbX+JtT@>WCy}r z`r>~;$B2Y8;f=`sXPwfgtL0k^F!>N%`XQx-Cq2^nDDjIEdeD(A zk#=03Per|QeMQ898tjt`lp1r(&_YPXP_;fg+SG}QGT6e(pu1l-nTgV&KJ4w_b={DH zHBuA7GY!byFHA`sDom6ZIeU$-IQ*M(s*IEum(+!QFY@e|rgqY>B5=GHD#^Pw04Fluuh`><@eT20O zBA;U<(S8&5X~?>u3}b4&`cbV7#g^L6bk6 zIlYahlsOv>>{BDN0aQzq4}4F&ufU|W9XmlaD{5z~F5dmuU?D_A?y9mOOOlo`mB~4! zgA2)n2&rkDyHMZGw6uavuN~{V9dpNKJk~{K=%0sn_UA;X73BTcU%ZWU%bM86j^lzg zIB-&(8nJP^c3674_ir>;MmAm^^P*}drL=s*W(wRC&nF$lCD!HL4&{J$5V0cJd2Q;R zC`EGoBdCGB@|07hB+asD^i%E>a#@}ynto)jT&b*dTMTZxYxyyKeg@Arh&9J&^m$!P zn)$Jn@;$24jXb$*Y(E^VSF8#@jVhGHyCn*LN$uM!96;3YwNL^H` ze*Z?l#%+{zV-IJx+!9N1RM$DK!gxH_M}6|r4{cx%uF=T0@>pmyHch+dW(9kf5L>8! z|5*j$QFPK4XQG7ANt7)yb%g2mr8wypcl^5fD)*-6nGFNoxMe(FXR4te|Ka<9&YuzP zIm_nIOuU&|0X!+By}Ej-#}@~oFvd?wht=`EpvgU1TY79E-*%|amjH?)rEHrq_nebm z6PkX(G;#?KR6$McSg&cv0dfa3HU`)7Q|7NdxR@CS#(!+(k45O@R=5yiFpqEMi+~wW zEAm~}nsxIYWh3pbZAAWo7@$AnK|q?GKkvSlmnXKMCa&N&G~@SFHyjLW6+07OPIc)2 zdGbK)=fjc45dj-s#w>dpWI%A?AdPKx5Ms}wKP8LlMO?>>WlXKkuvl2OYeGTH3vKiNFB3k z2E7NNf$kh2Nv&mi{k2lWjbBVC1om?E%(*ccV>JLx)D^XspBwNVh1_9X zvY`NX#4uMY?k$n@jg@pm?ei$LjSRT?**~c||4u`-ygH!%@u{khI}O8lCBA}VD3Ijh zIiB%*-O7<%opuVLXN3Hlyp_6d(x88ZJxfhK13WEKXnCy40DVMC6&jHxy7Dk|PFs>H98^y1y-syWI@#rk1*kP99&9 zKP3f48w@J22rbAJ&XbiEum&Xn@??o7<= z4|pzje})o~Id1_&-4Z{LK5neid0oV4KMD*6wH&Gil-S*$bGyg1d_=RVRp{Dv#m(l5 zz*_gJ)?ai;<4|YlZWYf-8_@1<|CUqX+2tk7jI%1qoOIUpQUVA8l@Qb+kyD<*{LcGn z2X7Y9$gwHK3~fRp7!SFXeU!)F-%7?X0(u{O-9w!-(zUFY8p;W2UqvjhXnEq5SL)HI zw5~;{aOa9Ak$Wzaonh_jZqg2^vhK+rCwLOf`fVRG{JfJ_&_&fn9!K zU#~=pU!-I8sH0(E%Cti@*!ShBeoQ>wzB0Obdg7&7A%XSUDq7Aq+fLig%Qdw)W%4Ru z8|UxbtL58tZdBtkJWu%`s#iSXWb6e>KBRV=aP5hn&9fqELZ%p_dJ~aXE{?0+IFN|; z2>rGLo4Lm8c-mXdPiU2a)3pB;H0J!KYM5xnR&lfL|(4XhNzn9Jjxt?EO$~a~*mY!bhU0mm3NZjebq19D_{P=IJxYQ0Ge#Owgzz z&6ToTyKn!8kgy3ZJFoXD_hlLZfu2WDOc@M};L;JZ54aNBaU7u6$P`xu&FF7Y2}exxXYbx` z@j8Wr0hVE>=j&|(G(!=Nra}Ad=LhjeVfm3gJuO`QE=G}Mk;8b5prLj;el#}0s=IXb z7w;Zv>e;3Jpx=YE1JDerAatW3E>U7*o<3{LlRwg@&D=CgcaEd|r@BBfoYqcsxHzV9 z|IU{tB=^Hn#w7|PME52S^+M6`!j^_R3LwjpSL(oS*04O`FAw2c&Y-bFSI5;1ly_c& zDp%KX56Tz~70$F{1zOL(YMC`Xz9~Q@%+YLTBmY37|Mgl#rKoNUJtbBYlZiCL>suv)yf#7g4gOXMgdqjkDd7oMNKSKM*XdjnFY4 z)+3~$6f`f2(B;sNxXiXSSl!)J&TBgm|yRPwa~y& zVbN9I9~9ogm|p6d-;%Tbg9AT#Q#59E<{nl^cqcL;6@8{hr7QA-jk)K?Mt%ac8}?St z7a?~$yRAG58{Pg-@pzvM-c1E``gdi#HblG~LfGq(!gw!5_`naD+FOxR~?fNk2pC`-X;N{p_3>?}`8?W6(Smtn4e;cH3GmotG< zzz1RHq_P{k63DJ)^F9pam}NAR@Q?6!Ou|KQ^@``f_Iq-m*jZiw%YkQ=&70TO@DvloA@2p|J&Rc z1f9>GzI9c9{F;r^4k;`9-M6lmUHOulecPl_w&L~~7h~UU+0`T7H2ZCsDlgxF%5MYw ztqLZMQ>^BjbVfxwA2A*8I z!N*~D1331?wv4~KbxbLBuzhkx*=x#Z0JV@7WM5%EO&Thvha;5(WTK4=y0KElBNrwa zPe&q6tzMG~Ol7X-0mu#?mv!b2rkC*Jw&1668`z^!8y>j+rhw;!ia;|o><;XoE`64U z8N`S%M9Vx3_FEmtx)vVqzF9^rS_N^~@%7P1nC-X@pp;aNX{HGY?rHdZA@gSYSYGM< znt5-FgzzaB%$h6GBmV}Pr%1=VDxND$bK)b~NP{eUJ_21tWL9j3{wmR+IJSORD1;?r zzv0Jm2i$Z)T;k9a(wRK~4eXVq@lLI+ejRubf7SMfdaPHdnrH&khe?tx8>c zueslAYA?M(yLdsnO577Iy!c&hM>?D4cYG*vTUCR^3{oRTLrWoAbDB~o7ptzW7$I_+-xMSSf136 z4a+!T83yV$MkEvxF!*q|t0`r-3g?K^x&82{i;6eNY3TwRRee8nID_6Y!pbL`l2o?- z#NE!xw(hvqMa_0Sr{`~4FB6;lnlYm3R_TPNE3}|qKf%iYC3Y^(zY!m=80yy`S~zo1 z+ZN!X#7Xyw0u!%Wd&RpKow8EVII1(Hqe#7}I~t`pW>nu8mp^gCQ2H{RCcT zW_x8CXg$hk9zbd~a;*}Cu*m#ioSM23a&{~(0qHAJXNp6MSi)SAQ?r|@w5wTo(*I+49>1{jf!8|!Y}a7&K>6LW3n ze*gYfEKD;(Dc#@BI5Eq%2M*~$a92hL|> zCxNd$v(l#+f_BX-sA>5-;9Sp+{qmU!rkE#WVY09 zV{5@HF0+52dziH6IQaK&pUAm8{!XU)U$$IIt@s>cDVD{uA_foeZPw&xB8w#>tp;K& zCcS&7iwRXg}hTe5&B~PR`PbrjclgkB61Xec2#AAcH;O;;PT~U9e5wR7i|efe0Ti$J}4} zS9iRsF^OUDl=d7+1XD&*lSQyM}-mg(?PDovG!s}z}x)%xvCaZDV zPhDmiElG?`TL zmvi6&4)iZWG4u;*{WnvO2Y_8eHSKl>QjbxDDW(BebB0f(Tu$ByMTAQptcmow^t=va zxvra3Z(Y#`U4(OYkQF{ht&p@)+m6_->@MS#o7X4+yBF|4jEbzggF*hgOG61*!i5h$eGIv=c?>gh4HGj{}(*N+WE87?RPLxn3 z!MA~}C3g)ha4DOmGzl^JNPsT0c?qX-#}l5GM9!-~fPsKO0D`r_nzE(`CtYz~C7p5y zXfyV}IY%ZT9-Q9-C6Se^L+Uteen}oMz?4ZkIlfa=Aq-ZifKR>W%!i!kA=2eQFrmZ}~ z(`w=A-oiQYod+rIi9(OEmECQ-k9n;YQg+*Xs&Lp`y-(Xr-5s-y4k246e8%-W%Zk0m zj!CxW@hwPjQ@>CMJZ=S(Oz$$btlR=EF<~>!XiyXouqv#0MG=eb@rxr1f2Jl*8ju#u zeo|Gx9Xr*JQ3M1EX0(RYoZ%X)Ir8?<-!tbp6QQ!j+IO%zcQNrL_OgkbJMTy0^8h!s z_<2^GcXv*YHwb#7%Gmo$zbxR1Oea>aKVkMq*&~}p|4Ed?&e3V|m59sglnMg!xF|UH zwBr#I^rR413JHTgUJppeNCp?0d(&MqA9*#lg8KCRF@&PCn41fwE?EE91>ye`=l*6; zNnlh%xg&QEEb8u^F4h@COZMU+_BJ|x`pm5lGiS8;E!M?_ec6n1Mxl{ck|;6XfbVY= z^|P0&vIvixceca{!3ELotPISeR=L9?%5Gc^b`Cf&f|?PmTmix)G=||3!KOB%3}=7q z^hqTrp}YVC+fAQrL?*`?j6)gGiyHBt=aI4TVd~5m**w=}2KMy3(#+V=pYq)5xN0e6 zGEW-@ZlHjj9XG8q6rz{Z3?4Z{f~oSUMX)x^T}8;hCl+Vi|V zH?9$&u547X_2mR0I=3{6Ucs1ZfW# zmLzQwGGeM4E76p84qELhBA7^xBH1{f!Y3V{DRYJ1{nRr{9O2>XDb3y)ko=v zXM5eAzJn*klz#DtMYu=75E9L@Y!Q`^cq)Lw+_#fY44z70SAWh9{p;JZWql&@1J6|p zTfK#^P;+LB!4a(U%dst$qIG9;0@s0o8MzzjQ#B%R7lpXJOTw0}j)NEs!o9|brR~Cu z#-0rW@(SgH3#e@Bq`H=8p^p3fUTl%CfoLOEm8#}J6YMVMhD?4}zQiB&&N7@N!-k8v z!MM2P^)?UhiJx)5tpn!%>`5oJa^dqA#g66cQ1zaB>p}VoNW1*f^Am-!KKB;*w`+(c zl=#dZpxi9q+;|>&VY+J$gU&>b;EBa&$6Bo$|6V+UJo6BuY%+CQ7ETV+i$sK}HhHHC z9N%A@d%DT`u4{>j0qozje;m<>(>HNWHC%#&Ph%k2*7jK>oTduVuWH3uez{a>_RSwRV*w3h22hC;)%{P0cDEH${z=QStv$jGv1eb+J^QQB| zbK_2OJMbw^EJ&gus(m9hwd0&oc*URp@`)J|k-A}R^%?5_Cyxf@Og9hrXPW8zEOL1z z*uv#UWSZLk<4*z?Qq<>hqlw85{4F5JAk5Pbp0r)j(W8L|i-8#(ciPDnT}&*q*t>PV6Df{U^_qs>$(J8;1v93O(BuNb;n!)HXub@6`}7Q1TQ5@S%3Fy{e6QI?

f%SFWa_p;VOnlUU;$SF7)<`SAR7jg!vrRYMsEW25H>M+AKB#GmcW~kKA446 z7pxn~uKUsfS-kpIieGd8p7Yva8SQ}Iovilm>o)VRYf*3HY8QHV4D_VVzmz8*N z254So>|M@)D08pB@^ZU%nHj{zpI2JXRFT63`{;l9EWx!C!zRwL0p;6N z3Qr}PSW5Q@Dcnc{iO^%rBIkW({(M8w6$o_(Ao8hN*?yvzwS75b_>JseK9ZI|t8TY`qMgr3y8_*A#a!)9^UEmF7K;!2=G2y=ld1Y_EL zvN>(f)iFx2sizP^qsMn#mKk&Z>}NrJLNJ4HL0b;n7fzT}@@E|~+bykpqaLFydz6!! zMS>{T{gBAGJe1?(0mW%)qvk`kiufSMg_|ijQ8==qzPq;gM#xO#Kp(!L3T1bufoxI~ z^eE_!lwmPC7)z!$OhhnIVmfITkihgt`Zp&x5+Dr|Hg=Fn;N9D=lZ9kpk)ILy1IjY9 zy5%D_KJzEPON%JfRW1)$&c^nR-<&xVLiF4c{6O`9S`<@BXG6)AZ%XtB1#=HEb1XM+ z#df$?Qbrf-U}ao_UnKoL(lP8@FWPE63QJWH$u2uUo^@yVPSc%8dxc@v_c*&}2 zm&t(Ld(dcPDIv9@IRxKSpE|ImLAjx%7up=44?Nnw1$CZf#DvZ#h}JH7e7Dc^BQHKD zy{AEcZ-X@)zLwn_5rjUamhCfra4*<~0awkwy`19VC8<&K!0nG;7wAhp5K-DY&32RB zyAL&Eg&WGRkegDcOR>ei8`Zv4?byaefeOgv(Cbv0-vAtcix@!_oh0U93afndn~Haf zPl)1=q#`H{aR7m14y9e~g;WDxq+dr<&jL0OPl_>D&%KYqphh%*-)*n9#5^uzkYrLMauotw~@@mo)a;gUzLDBAbc&8!9I z;f!sV_Sa!T%RUWQgG``YtImQTOM!`Iudpbhkw|HA?X zpy#yvz~VY|wzH2#V|B}qm?iFXDK>h9lKqDY;w4_OZTy`#zIU9mYsaZuZ;k#183}vHK zc;rK`ZPw?eq{yf4*FEMyl4@P+To^vh?S`$rZGiK&p!kGuXLRLK((^Aw$cdRJ_l^g9 zCZ7w(-)(>PpU*Se77(r|b=R6%%@+`DHo8~i4V5dTc68T50zHl?z~_AV1F(oYDQ2J^ z=v}VYqFM$-@1aO0EtwN1up3bu2MU7Zj={6!%U%Vv^V3k>d_@=eg{zP5N!l4d*oiifMANjI{>N}13?)oKKDTml~)^Tj!Ywdu}@5`_QH8bFk&JQs_T9;oz zwil)i_%_kRV%x0R3WkVH?D39>o zvKK}T(@MaQB;GpepbTwrSh5)3!x+zpC^@^Te0mS6bbrE~oVh76$D1OF=YsgiW>Qgj za1Eo~*t+_=r4ben7!^)0FT3>Ive4!>9$*wb2WK40S8{VDdOG1$Ppeuay>oMqc>qC$nrns%o+}Sd6 z@hZS=Y%Cm~=31J@2XNpsveWSUlax6Iv%u5~-)!zF zmp?-Lze?ZnYVjyRZgTcvD@hC;N)=REf?Kr4{_UEm=XSYz-o8oSky2)JH-?L(QgmNy zhmPd%5cj)_DBo0gLadd$4FFz4a-jWp+Gmv1qnt6Qa+g5xhMWs?o?C^gT@E*;{6P!4IU=Z0?6^>6rwITU`oQg{>7 z$m<(vUeBHz-Vh`W=&j%Bi=X=rN?Suh(indV)1_k{A30-UpbD$SZ(``)_0RlGXo(#kBoNJ>HJI7 zBUx|lK9&y`jTfo%8Q2$mJJ9lN3G0XzF?vP-NJWgHOanr>47YP|8<#Lv_bZ_tr||nw z$}bw-E2!=uQJ6Z|4Hys>T6k9RCR&Dh(Is!MxaFarvf9Rf_YmH6GJciWd=_3IfuQC_ zmV!=)P&A=QbD05b@n6>usZi$u4qD`aCqKT=P~NfMtb4qujkfd|KZ*)D-_swEmFRSp3b=^ys&x5VyB6c+6$Go523nt!F&1*mlXc z$42vjoXz)po|$+xW6e38R_?Y)FKuy6tfTPZ>FM8bN<+jn{^oamKV1xj$!|G(cCiD7 z%cX*P&2kgji|Tn5y*kl}V^dm5-=xQD#IMXRT+s|I`3g1$C3~_|u=s)QOhbfy;#@O{ z3fz{oMp(^L;a)4A>d}sPw5FO2T{(N6OyW60q)Q?8g?w&u2ebCt*)M7+?x#i3y}4@R zFU`$m)i0Mn7qZfSf9ZKUZsAR~1>gTGuC;{1bH2@apK&(Yt3PdNta%IV zfw4eM_3hmz*cqJEgYuNmPEs5Wm zy+(LT+0T6V92g0ts^+JO1QpN?h|YW$32!vwz7FV=_bR~Sd@UYieMnpi46{NX_=y#B z+c(_8BECc^VYl=HX_*G`RBWeQ9-d1^mJh^y^IFk-zWtkr=2;fzoxR(3&DJ6LfL?du zVUM(GdZJnXCl-CYKbRtLhav6*ZaQb#5Vs(B2(=O3*(tdj$^17|T*Fhqj)6GS@*c^e zvU|dktkBoy0o^?3x*pfDW04@evVvT}5$zc=MGY~rn;7QRQ7M}`?a5=|&AYe@H#ggf z7k9RJW1TPc4O4j&|0qpac{sc=HG0O#8PWJCThbB*#Gdj4DfWcAk4e%R_n+XHMmz6n z!~U#zB8oIt7zN-&gylg?Yi0bgk2yzpnxt19iTAb)xzX=b2`kC2=W@8;2}=fKUk5+k zIGXCf_iN}Re=OU8I)+l}uS@_N?uMj0;8&ng(`vQ5+s43i*zw(U0=-M)AIRxnzh$K6 zRm+(vToje_^D@it`rLg?B;=1+Mf+)rQ_Ql*C|;xg_Tad5`*{iKw+Ary^B5<8xS;P? z*N57)IzI+Xhf7^RmM;mCU-pe`MNP+cQ=9Wf|FiZ>Sl?@YcFL6IMFvu1s)UvB@7#wM zFHD0KA%Dyw>3mC{1x%fq*NJBjc)boT7$nz{j$JN)n8!YTT*W+7m1DkS{2=wkn4YDZuJ*lG+!%_i-NR| z*Eag*0T=bNfu|@t?`{;Il@y{!x`6_jLHGM+x2U)pVn6gkNZ<{o)H&Tvdlpf|KmNUd zg)zQ8tq)Q?N#2i`Tw?oPnU9|*Kv&L>hqN7gx^oyazir_E>)-yFb8w}z+bZ=zL}BKE z%iN_FC`dt&E8@UOf6yDjUGYOYnKZ!>cs|S^j z40P!Q9c(V%1Kg#vc_S!fdSCfvNrZ}oM^Xv{#DN@34OafEboL2;rLWH_(yrEGHMx(g znA+P*%oo91>~Nzel^i?~xcw7b+OTkF9}Mp-%WkweiivK=!9YH`!VSA%v8A1~_LL@DjV4a=6(X-#(B+M=`@cdVah z7q>d084?m4B2R_4v14G>DteWpp4%p3a8M$z^KBclD;P6IKPp!HgArojZ;z~TS8eSF zpMg^cQSK(*4qp9_aDG9G3chgNFji4Gu!xMF)yq*~YF5{s0zWGG_}38?JxM^8gq#?H zRjni9tZa6(-myg>V6WFZhV=MLg@QX!LkMEg=(EV;p=n3sz?w#fs{n=B##0S)TV8{DBHY)hG^8oQmmd&cqP*yU95VP78P221`s$JDXE zywiSuOB=%3!}Vm+8Fec@?N#J%K`W4yTNoLL3Gb0MnW$Yf!s)y*z!^6l#`w6YI#-o? z<8%Jy04 zr#=nfLT1MP-Ws`f>gW#;jjmhcoox)p+dY@wap$9MrbDVe&TKlLCT?=;Z~zBz`^k_# zkDMpkyQ0PyRSb5ve}rbh{b!{T+_q+B_@%qcy$UHputT2gdR&cuvq^j zCH-L!l+gFomANuNK zXrI+8m;|Rt6Mfu=2IlC_(a19+-yKVJ_#)ZvDe1?mxP9`TZcwxq`$C+$VlN8 zxuBqETT;<*1sXyWosl0uZ&Oxiwq4MmSDAGbomw$r!#*NWpmG@EBNCpdkx+<-k#vV6 zVwk$JV@>xs2#~>6?-!-2S6Y<)w);tR6ySiEjO5lL1))Ma z)l|kvkG=h@3S{o z$Z13-*9|r;x&YgUgF8Y$vp%;8;7Lj)iyq&HRtJ;6YeCmDPiu?c>7(X9T;EMI<#L^B zuE-$Kv>xxu20Iv%(pcpe9+>{97jaCTSi+NXRZi9TOQ@9Ei+6keHt){$d}NmNYayKk z{(r)vb#MO{7CrysC9T-W9_S&*xyi{KeHokPrl1itZAI&G(?vu)+nST|f#%Hxdc*C_ zCHDWY05$!>`>T*uHD_;nF`;jOKt$r-xo68)`p50t8Su4`4U$T4QPghD`>5Ice%d^m za~1Zu1^wU3RE}(KgA4@xLgi`0qwg@VVoli!0%z!RAU~1~18=)L1YJjmi9hR2ROi^D zumjzCrEQ7lB`%{rjf|wlcZ4e}&2gK2F@|o&f1Xau&>aGwp!?boxYmWr1jM7<3Z$a| z^}ZHG4nd4S9Pbieac}M0Iv0!8tG*OBafEYB^m>h^(I;Fyp#%VRE-$P`a@ziAznHVr= zJ+Fan*mGw2TVXp@j!ottt=}Q`XW9d#6nAw-QH8EZSa=H(Q?0_1KwtND#>XwaEe%Z-1(e_T#SjQ=J)z6ooOUAV>p1%AtN#V{c^`W}T{fBJ70-q^1RJ82OGo2E zf8|^}^$y{WL2^3jxBz0=EYfscMCe_gzdOzU6}qNi97*73gXSI4$c*LmgK;b+o!Q7= z(y%E@Iz5$FD3)7v|70I@P1&*20em;0a5`7nyy_`^j)$VMd4LVP-zW5EpEbgp4mQzAglX#o(>!RxVDf+Rb*3Z4BdNKS~?`Bp$G!WDT#< zK+vcE-XB6CIyginK0hiz1-_#O%-tFVf_*e^bRGLeLlg^rV@%cwv!50>KDp6^IC^~( z`?Ko7l|tebw^>zR{`F3mSv5x1%~X^cA3JnY{&VDOxes_#$Ibb?y7m3bFJNv7HVKEWkVWD8$%&krPg3i((B^w&Z*&&F0CQO-CWFEm?$)2+;DT<9Qby~Pv_ctGm=Hs1On8; zQY|Y`?EEjUgX~GZCkmPprarkpU*DBYu%qm*>6>Mo=X^}Ycf9Ii@i~4XmHVm;-SaVG zCvK1N>2_pwwoGe3YR`Z7a20q6eN?=Xa3EZ4sMAFhvQ@nb}nvxC2zL;(ff4qisQPgiuY2gj+I4 zKJ8HIjhlC-h&8tFriv^KfN*R$4s5bQsjo_al-;Mqkxswq`S90S2^qvdqRsFLi}e%O zx_!DLOwl>PPBOiARPOTNjr-9r3|(h}eb>CiV1Se)(E9aoCpP7`3FVAv7cp4Lr}xp( zaT#|~lm#F2Dq8eJ(z!?`3SPTv`Kw!^gQ>O@i*6d3Ks_jxi_y1}JDfh4<^$iK?`EnR z51)sQul2!c3D2c*kaC%j&6Opa;U$E&tEbo4=JgPgC?0Wf$B(_^u8UnUBxb@%mMP%K zEA%5yf=jo*B&y}PpK|5fR!OhU8hg8kuOA&JU4-Q+lz=YFb{Kp}E$;Ph$sP{$ptw8Bqrt+jq>!oq^Cu`KwWF}iZTAH=(H$ii96(s>R-#Y zG0~lmlTFC&O!J$Bf0F|9tlX7IcuVB9MqlWV23O#}jm}x1m0_ekdQH;UUx+W5nTzw& zXJnt~MKOL3+nLBhwyL>X+@=OK?yo_tlDfB*aJ1s*%nY>x45=n-Ll9BqKih@e2l(a}n!|0lTbhmUjNO!7) zfPi$3Zbo+_Dlr%!-Jrzi+L$mHyFeEQwI9U+x{efZ ztN|qqZyXY&mVhDBXnRtL00dx=Mb^&ufrFD7McLe%;y^dpwg%TI@IHB6If$wTeNvQw zj+Hk}7dM=tFsdi%;3MR3vvi*TXY}eg@b2%di?9LQ=H)4R1I<$H;{LD$&IA#PE{~Td z30uYFW7GjLC!aUkahPKV#XT}~EHJTj`QZcPbl)DNo>gvGWiu*+;`Glpi zJ}SRT9sc>FaDF64^4^#gk=@8E9!mv#r5+cL)vAg-S5g2@+oi~1osHt8jr8mB-%cC~ zs&h9kNDjas_Wpxg^5hG&T9;!l-(GrnZIS$=ul-~j>~-2ZI)4o}zlee$l0_0Y&*fC& z9=83aHx4ER(H_CNnob4)N#6dc5x&G=3!g=-9hRkEs+$pOIr0xXos`~;p+6&G^*vzs zeED0EK49VUZdK$s>lqtuLGKBxTCy|b(K(`FNM_8>n|M{8V$pT;`fQNW0?`>*Z%QQP zXneJ{&fh5}iD(a}VZ#?O4Zkhu!yp$6uA(f^@~-z!v3t!R#o&LiH^pK5X9N}p>c(xa z6z1Nnb-oLnWSHxT7XN*qRWVdCs@?@}rPib4P3kJ9yk~MKQo#H1Ao!7 zgk5+#i=!brp~2O*+eBD^&8h@q#nkZOQfGl+3bGuRDh((>GhQ!jF)xD%D*-cGwhbwo z9y+S;#bQ6EB3*yL**Jw>;dj{{UoY%BAZjZ`W6@lj;B+z0bKKcZ75m4I<*9pz@+i`6 z&u!`7TH^(tWP>KQe-$1I&`;7(kqe!&5yvO=X*rfEXouuyI|0Dje!D+D70PB%QFR20 z#QL?N0yndZgcGL*jz*KMhu<`kihexsuUw{8c(ID~@tz=SJ?lcPQ+Mb++!&!Whzs~rf@ASsGiS1s&+!{7u7f(Hug{}> zu=IssD=H2PX_~9c!S<(Tt0vkMQ5uH`Yrc*)V~1V8g%+f>5A(a+pJqWszR=NmyZEse z>Hvn5h2S z%{}z+2>`aT{#W=&6BPP)i6rRPC#>gV-W|jGzi}v`QCz`SZmN~9?g?@K7A5GtYV|Ck z1D&%%BR;FfAZ_O_@_6C%tC#P`Ikm=>7LcXp$8cuF8a#HV{g1MEU!8INB-zPQa+fJ) zQw-TRuHL26I_ibYaW zvtZ2ZIS=(Ute>#y(?(@mv-8RG`m}Yo3JNaKAYs$r82zKKy3S>+I5A zy17bFcdrx)skhU_T&0`Nc6LS{H&ALLHorYgQ9L0BXuX>qlWbbFUA@yV9GHlEOhBV( z%YQ>jI49cbchA}70L0+4&IcY~)#BY0G(BNtC4a8>TT(vaLbk|o zoAGnZ)@xNW=nExE_d&CLoM~K-pm3_|{HC1KT3pMeJxtS8$o{v8HJd+!yQX@e>@H$9 zzDuR5f{W&bwJ)hLHz5DNV`0As+)<4&(nqSN5s9pQ=kNW|h=PDc)&4t~%bpn{(ZG?& z*Y9?oV-av?N-h|Fwjhe({T!5~Kjru%6~xS!U8&1XLvv4-<;S@r+U-t9tCZo#3t{AR zG~dI6$6Y*RvB>^^0az@!v>)H(F?5W#A8nIq{y&Gcx(%}RZ7;%o@wtnfGtcbq0J8oa z=0i3%Ct^s|2}>VU56Uk;ZZ}Shsw{%F{;masy}cPs8d54|bWiJ3BsZ=bxl<(T z<)EQ4EL!2gW$w%Z5pY+={<@;1eB7#0feK@`y<^X_u9+H#TM^xA-XAta{I-+S!o{{s zJ?k5iyo-An*_aMZ#0ip7S0hsa_cvH->@J)R4%6plk2 z3#hTd=Y@V!{-~A=OVQW3Y!yv*j{nB)FLFHJKLIMpvUTUjK##fWinpB?=?t5B?hR*d zx|xzcPVF(v(57sn)K8$WH)J;$1F5;Zt9`*!X=?^9v41=+?_d*y%A&!2f3bn<3ACTO<|I8?}Af6Z3xY%a1Sc&CVlj#I&R~FE8cJJA**3gLm8F zc~4#!yv>zBv1JQkM14StGNY!3yMHRRt5m6@e3E4;GXVqr@iN{_<~maSwGWTzzL|We zL29pCc~$H@Kf^nh?!CUI@oYN(+P(fK0eJoE@^+O8v*F%-*}j38xJ7<@;*jTu-HY`g z+{0Ev{k|Zg8Bo#ny}$p8E?v#GK0eIt{+|{gA}UrMq+0D}{5YFZW(>Hj8!$~8{)Dc3 z$i)JYqYAv%_Ho703|`i43^ffLOuzAOL_ETvNURA0rsBgG{u`$?`KIMYHC$vI`7Zqa zT$1HMZQ#RnHbZ32yVk0Uoo$X6adJ+8*#(MfsvRU7Gyq&yDuxX6WXSE4OsM)akcRoq zP%Y7$hE3AW;QwUreBl8 zjFOnET25XU#-#EojZpljoT{FB;1C2F+MZU9m zG`Wx_mg!ACYo&0=vr`$sX+Sx7iW`jkULntt*Yxizem@yMWENrOToY(6&6gnhhU^lu zX>T(a!gpt){nVQdN^QFYTrO35CM2o(ci@W0Bb8T0rULXLIt<ziB@X=K^M8m2CaZi3U z;G=PeW38CuYYTFIV%`NOx(7R{vqGF8ZDn3+T;qCt^*BkVh3|;_T0Ns(k^c_W=EmUk zo_0)L_~T$gfy`Z(6W~qD{`+Wk^C%6$K#g^oO(wzcSFGZ)hlH(&ByAc$iU`dK%{Q4H z3wiI`5&gqb+hhK)aMa~O$U(e_x$mvIp_%_o`oab_L!#L4abd7J?-}#s(Pa19{%)S{ zHD4HZJsWVfHaSTD!=c`ySI`*9H~&)CWUcB-0^0F&dmZueZ^4R^aAL#hEx12u*8;O6 zB8~ooxo^d3y~=uiRd9z|=>J1hWa7GTbu?FSJHo=yc^P_=;I^4wAA980R=l_g^~6-{XqS6%LYIoW%ripv z90j6g>{!s(9H#sshMC&W4h+p<6cU@R!%2;DHekK10yBy>C^7aVV3yN+%D^ zJ)ucF`rGg3Jnu#+HrmCn$hd`d)V;M_rD^^&^Up3m2FLLWVmaH{@s98%>{NBMgvaJB zXjJe%CAH~mYKoZAs5@_&*}|r+Sy)VJKKik*1_iwNC-tc1b5;}<90NPo{gMerbA?Ee zTg)#+7YzK=ivkI*!P4W*SLo{%ql@Kv-yFw^-j9$SeNY?~f#HlSHfg z7m}acc)TUy&llqzG~L19mD6+~HXb!}E|Yw-e`pIdRPmwk=ifcGXHXQ7n?%L%)fez z9p!^|CH&_j{sV5Enrg)TqR;#cP^=?oc=OVrQqJfh{4YbiMxaKktL3V0`r#HT=C%Ij zkjhskZ*@#yielB%4WMDVWWo9<#RblX()6}BNX1EkLL^`z z*HgNH+qHeq))T`eRBCM7RMb`>Sp9(C*s0b!Q_b&ktsNoJ8 z)k^2LU|afK(%p?Tv{<45FkN%5XJ~TguMs@tZPTTTH?zLC-JGzTV#J(-ZaMh}Cuxi9?QP z5rH#X;e6{pxN)F^(_+6>>a;Y%ZD+j}%~>aOz;-_|2ibm@Tw*`qC^$aL3w`QlfpK+G16`|4&c4iDzAzwe*iMB;gM_QyS7Pp%PH zvQziJ`Nv#Qb5bf7wc$I`h1nVL7wf-=R_0Kuz7qCFwZ8gf(kw#2F2sEALvNmdMVw}5lR+m+a}o@l`Hv2V1f&u^j`S5=O0z&wTI-t4hIa|GMjkZEbukSV~q7%Pi0m;Jm}>L(jQ(e!<35 zd(wcRi%^h47#X@Hn{*Bev4Iw+h1>5;I=+B8bB4d#Eq*nx z&pv8cfYb@kEK6I8zjGlQMS1jRW%}k3eo?{8hYmqQsA`FuV` zP-Ok(0&G8DgKB!b7_#?a7h+ktEh05U@AFoJ+Klk>B2`nVxBr(vLzaY|eC9`hC+XV3 zF!E>xgL6jR>%a3_KlgdePVd~A4x%Rc>XC^(k4O2QMWELL4QooTaBsmaZ64`HPH}0ul23c+l7%h zx%+1Kn5oh`Jk^9sWbFBoyn8|sEwW$N#qC)PZPGxa5oh=nB@`c+84Sp9pjiF{2;t6_ zVrMO-I%_&+in1@`O;`2kWK#%#gFuhPl%Vs!Pc>h#ia`SbW!uhX2nj2$*+5sa%!JS6 z9w{5*<+iYngReUxt}SF_b<^Lmo;UZje%lgz`x-L=w!E(|!&o(9VINyIk?Zpe_wDW zyGqn*%3<5_rr~Npisq9xk`v-BMr^@9G6;!cctsYzs|HdhtmlE%EtFA_`cTjtIuPoGe zMUatHrv}QImI53~ihCh*5w=#@MWAblgt{rxljJ_lx`llx7&*=BWG1O#f^X7$wC|dtE4;3#@%)Ot@EAGn%QQRW*C0k zCz`r`jBkA?_g^;5U_aUdTSHRi(Pp; z50?80J1`jq79LB3_e1&j>Y^*2wM8d3dPPP!ThVl4Pd=}<9AaUgn-WTl z+WtL9z2>klE|8>mpoVQO$d8)6=E{4up>;k>=QL1-%7A0BfcbQXozgU|)}JMzph%N; z@?+giTaW6NBa0Gz+R2nDBd-8guB?4|QuLIUz${rp1tdS}MEz1>$0$uIjXcbLGFr#J zQjA}BIPI#07pu7op+1NMy=~p13M_fY2*Zps47SE}Y_wrD9&_=$RXdtbbWK^39zh{x zB~;ct#uFw}bnama*qS51#%6BilGm)0&=$^P(*(YB-%LJ`;x%8hRErXc;Jp6(qfV$|hV9ulL$3K7? zQw0&iPeHcKnNL6_TKbYs$4rm?z@k*qBzLC;9e8wffU}ITI)ywXoiJA7_Ok1w*ztWm zuO_+6ho*N}w-ef?@31@n{GtM)yx>=`WygE_Nip;gh{AHHqY{13A)1)mjoY;iEMxX& zWh3!6_6GR-{_fh2q$~BmPMyDig4q8ePPjke3za85vK!}z?vKUdGS85qV;Yv%`fjH!^*<#gG#yNC){`XrVmdp$(yg=4dt~mszLFq-mbzVaPTE6 zU!Hjr%+5HCYM0j2`_>_X!i{(<#b&W=R&8Z^^#8N~@1VnuM5|({3#bUz{5O7ytooDG?R~!x;rW`3ppR$Tf~({R%v3k6vM`_e9;=3 zx>I0HFKgH(F7Ho@vlcAx9`lp5;DQ-Dng^c-C(%p&Pr2e|q8N@?>zNbCuc{%>xm=t& zk)ew-osP|ATkoQl5c|r3(GFwrPNRj@+OYHTI^{1gZbD>@?&1uocB8hds3a_f+q}K_hStB49FZ~Q}a_%}6i2hzaa=TJ_ebj4R z_ON&%0(>My&7wMP<(2Rxkhow@$HABBaQ;R9ypp~B)^??qRi7&DDTcsWyX{lo*5X`; zUuk9Kd4b5PD{t)v)6$Tsy=!LFjk|${)cb4fX0IJX6!gCHk5?7QWzqkZHAsAQp1*GE zRa)aGfxb8Ma$^SKb^1N=IhppV_;1$+l85^%lTR9O1mQ2>fHUW9wa08Gtj9Q$-qt+c znQ}Y`L7hE2(I*(><1jd**=L*UI>9{w%$ik7;78#1(ift?C?j@dsTo?Of8g;}@iOZ^ zDtl8yZ_5nyn&Cc0rQJGhBocq}4?jS()6TRA*pf-4hY&dZjMUToOcbMYC_D2gkM^J2 zf8#Q17(Ih^q=lm|@20vx_?lq|3^GWhz1{XMXUVmU_a$h?aNJa&|y^ljp=CgN+nr z^*wuHd7k};NEVhWo0BNnlLygk-i72iYr`sUZ4f9@A!OLKtcJiwE zJGR*+fl;<4=aKl<(MkjF5qnzP$LV+Q?&Q0u`Ur@`us6r z+Lq~ee=`4q8?vbQ2?3JM=!w*qqZ#&oGI+b_YXY&?(rnsWrR)$Bkn45kPRv26EkT(W zdE`=paac@&_{u%8-8WV0=$d|RavtCh*)VHHAm_Qh=L;Mxv|7RKtlvn9U}rzS71ShtSh^Dpban4l8n8Xvl^v7N|(UkKMA zAe$OW-9e8icofjj;XTj57Xq`I!ekwoZ#%T8%_h|h4f>YfF zk|s;cyU8T$yBl_U1LCeN zOylE@;lg}dk~bEpOd6Evku>L!Ai+i(?F_MAnAp4X*h!h3w*pTQ8`dIJcYlWlLGLO- z{$9=N6;!i!vWprVIija_nPz`UfqzRju71Tx-(VL#E2_Y@^Rf=zhZ2_)l#+L-jVmIO z+s*=1c6%R^`#&3;z>Xhur`XJAbOEh7vf9u(eDhx)2UaF%bTUPtT-FgM{{P|RVEMN< zj~j;~m)y;8ow0xEpTBabU@LoYBx3M=0(bwJ^~Ld42FevvOw+bKT&$`xD2bka+mTW9 zVuZ|@Y)V3O%_MyJf(0`58}x5gP0DeqLw00M=bB5PA7M8J@(CBhDlOMsTUqOihUpe! zenTrP-g*3Y8BF~qbzd2xQ#q3#O$yL_dLOdfONFh{B&kq9RS{q!S%i0gw_ummHqd&URu#4;BD7|6hoalsqyQs z@ySfnmrUo3$ZGR_X*|Exm^ue?HV3Lw@APy@cJo-m^~&8Eb2^Fc>a^`ThP{hi4H|kU zLfB!CM2+fj=$?(#c@#56`h6+P`;%JxO=`dnR^gBmQN^AMP;pD-cHcUqoAXTtT`L5aJ}!>S zm$dM`b-g_knBdIKSWY#eQ;VuNj_UdixTQqMW)EGjSsE11^kBed{&A_Hz20n@vq~lz zmlD>zBKFlvnDnCupP5s(tqo661>57JI&ksuRI+d$LZd=LxBYktgK(p58py3!)`w@TvWQ> z&QtdN#?3VKQnny`zeP!ZN3h85r!$JRBDfxDqR)~r>}?UikR9-Ub4#AGZ}d~%$n)u{ zlh#SdU8XHo8~qm3d9--&(9VvwlaEyrSI5jrX!3cC>BQ@G+x^+Wckn{yM{3+$FT+bl zIiHqoFRN_H6ul0t-q?AbbH+Y*y>L*vnkVcU@xYCl<7axleqyHSVEnD04)4u}L;sRt z`8WZ#C)6SiMYk!crXie%`LE=adByR{+g!4$ma;^tS~Lf3n2e;W1n_fq2d*+jl?7Cz zQcb~j8n8|nGY6;z{kCpM0cErC{9<+Vv|qLL->EXYqky|CFfI>!r6|H2(y-2MGA7`U zKf9|?Dpmo9N(YVXR56)c{$w#H4YQyTn{=@Fd;@!?HKTipLOh(q)jTiLtVqmsQcoJ} zqQ?G?D05}Rh!Q}RfAUh?m~peQcLMF`FoqVuUw)RnTSQIwsxA~~b*l79P7+14Yt3a3 z#WTZP%_Q2Ql|^%g75G?B=Y9c?8<^YTGI4iiYM}w~k?ogvflX|TPq@|kfi?nk#jy3= z%#+K8V}*h?cVP8XO{msHf|wJFPEHrWzPS;yWr+(WGU{7=@iFIc3Q}jJ81n@SFznv0 z$w$@fmKwh7C48`zg~ah;Ksd`y8i$`!oCtP?R~|k8xKt~t zMeXopw&jKF@${4sOz=bdV(QOdRCmCDZrsqX%MQLu>mLL(JsE9Z4RZ5h2I|AV;kGL( z#>9}AV+I+*c7o&8Qrr#Dj%5BX+|QohG1*J5sNL`xk=q~jchU8C)xjG#6aIaO;|b}T8o;FZ z?Zr%^-BFFyDVO|K+ef(=;?P?;dia^5nfNz2RonxK;l9xx#lhRvIfbcrXc(aT* z5E6ccv>2uzlGs3;cu)3{3di(gWi(9Ruq58iQ|!|;p10F>t7b89HhAO{mfoXuCl~pD z*8$QP)31?LSCMEtyLSxKKtZ9=`xC36a?yUNS=aoG5Xtb74Fy?t7u)@mfy_2fn7Z0Bz*F(P;WW9Lhm@jqNDI~b}b@!Bu?+i z6GLIUCjyg#z+UK*URLSjF~5R=eA%R@1i*nm9EZ<+c$V4SMKTRbuE28xOH004kIc7* z1w`>wWz*T*BBTOwB2?ak`v zTP^>B_XaCK6=r?1T`phEW&J5$r3U6(SVQo7>PT;%0DB^`WF4A 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

M_VD6Sv=b(wWL<`ISGFGSW(i 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 z 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 SMG$ZW?S;b2=k; - - - + + + + + + + + + + + + diff --git a/assets/tty7.icns b/assets/tty7.icns index 5ddf6e7e7603abd02b1df7c9af889ddba60d5103..75988eb0dfe15f19ba3782945eb9001db0a83407 100644 GIT binary patch literal 103254 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

PsToY<6!`E?@|_QXX`I!| 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≻6(GMQHf8)Yf&#m%oCLb$a&vGcU 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

>n`5;jV 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 diff --git a/src/main.rs b/src/main.rs index 13a48a18..efb02d23 100644 --- a/src/main.rs +++ b/src/main.rs @@ -246,6 +246,39 @@ fn enrich_path_from_login_shell() { unsafe { std::env::set_var("PATH", merged) }; } +/// A bare (non-bundled) binary — `cargo dev` / `cargo run` — has no +/// `Info.plist` pointing the Dock at `tty7.icns`, so macOS shows the generic +/// executable icon. Feed the Dock the bundled logo at runtime in that case; +/// launches from the real `.app` keep the `.icns` and skip this. +#[cfg(target_os = "macos")] +fn set_dock_icon_for_bare_binary() { + use objc2::{AnyThread, MainThreadMarker}; + use objc2_app_kit::{NSApplication, NSImage}; + use objc2_foundation::NSData; + + let bundled = std::env::current_exe().is_ok_and(|p| { + p.components() + .any(|c| c.as_os_str().to_string_lossy().ends_with(".app")) + }); + if bundled { + return; + } + // gpui's `run` closure executes on the main thread; bail defensively + // rather than panic if that ever stops holding. + let Some(mtm) = MainThreadMarker::new() else { + return; + }; + static ICON_PNG: &[u8] = include_bytes!("../assets/app-icon.png"); + let data = NSData::with_bytes(ICON_PNG); + if let Some(image) = NSImage::initWithData(NSImage::alloc(), &data) { + // SAFETY: passing a valid NSImage on the main thread; AppKit copies the + // reference, no ownership transferred. + unsafe { + NSApplication::sharedApplication(mtm).setApplicationIconImage(Some(&image)); + } + } +} + fn main() { // Agent-hook mode: `tty7 agent-hook ` is the tiny emitter // Claude Code's hooks invoke (see `core::agent_hooks`). It reads the hook @@ -323,6 +356,8 @@ fn main() { gpui_component::init(cx); register_bundled_fonts(cx); cx.activate(true); + #[cfg(target_os = "macos")] + set_dock_icon_for_bare_binary(); // Load user config once and stash it as a global for views to read. cx.set_global(Config::load()); // Build the theme registry (built-ins + user theme files) before the From 96ff361209f4e41c5469ac623198d9a009bcb1a3 Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Fri, 17 Jul 2026 16:42:28 +0800 Subject: [PATCH 08/53] chore(release): v26.7.1 --- CHANGELOG.md | 36 ++++++++++++++++++++++++++++++++++++ Cargo.lock | 2 +- Cargo.toml | 2 +- 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bfa6f405..226157d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,42 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [26.7.1] - 2026-07-17 + +### Added + +- **Follow the OS appearance** — a "Sync with system" mode with separate + light and dark theme slots: the theme flips live when the OS switches + appearance, native chrome follows along, and picking a theme while + syncing writes the slot matching the current mode. Old configs are + unchanged (sync defaults off). (#121) +- **Mark as Unread on tabs** — the tab context menu can re-flag a finished + agent result you've already looked at, re-arming the unread badge on the + Done dot. Agent tabs only; disabled while the agent is still working. + (#120) + +### Changed + +- **"Duo" logo refresh** — a new brand mark (two offset session panes, + mint behind ink, with a prompt chevron) replaces the orange window + identity across every icon asset: app icon, logo, tray glyph, favicon, + and social preview. Bare macOS binaries (`cargo run`) now show the icon + in the Dock too. (#124) + +### Fixed + +- **Linked git worktrees group under their main repository** — the sidebar + keys groups on the repository home instead of each worktree's own root, + so a repo and its worktrees share one header while branch status stays + per-worktree. (#118) +- **macOS tray icon stays a template image in every state** — the + attention state no longer swaps in a grey non-template glyph that was + illegible on many menu-bar appearances; agent status lives in the + tooltip and tray menu. (#122) +- **No more console-window flashes from Windows agent hooks** — each hook + emitter frees its throwaway console before it can paint (debug builds + only; release builds were unaffected). (#119) + ## [26.7.0] - 2026-07-16 First CalVer release: versions are now `YY.M.PATCH`, so the number says when diff --git a/Cargo.lock b/Cargo.lock index 2ff600ab..a49362ce 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9022,7 +9022,7 @@ dependencies = [ [[package]] name = "tty7" -version = "26.7.0" +version = "26.7.1" dependencies = [ "alacritty_terminal", "anyhow", diff --git a/Cargo.toml b/Cargo.toml index 4cef75ce..cbdea1e3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tty7" -version = "26.7.0" +version = "26.7.1" edition = "2024" description = "A terminal workbench: shells, persistent sessions, SSH, coding agents — GPU-rendered on Zed's gpui, pure Rust" repository = "https://github.com/l0ng-ai/tty7" From 72056f4195207f4f6a761ef11548097f091edd5b Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Fri, 17 Jul 2026 17:21:22 +0800 Subject: [PATCH 09/53] fix(settings): keep Agents rows aligned and notes terse MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The install/uninstall outcome note repeated the agent name and full target path inside the row's shrink-proof control column; a long path inflated the column past the 640px content cap and crushed the label column (min_w_0) to zero width, wrapping the title one character per line. - Terse action summaries: "Installed" / "Removed" — the row already shows the agent and target path. Codex keeps the feature-flag failure advice; the launch-refresh log line carries the agent name and target path itself now. - Control column gets items_end so status, buttons, and note share one right edge across all agent rows. - Note is width-capped (max_w_80) and wraps, so long error text can never expand the column again. - Outdated status text shortened to one word; the Update button says what to do. --- src/core/agent_hooks.rs | 34 ++++++++++++++-------------------- src/ui/settings.rs | 17 +++++++++++++++-- 2 files changed, 29 insertions(+), 22 deletions(-) diff --git a/src/core/agent_hooks.rs b/src/core/agent_hooks.rs index 68ef7c5a..7f4efc50 100644 --- a/src/core/agent_hooks.rs +++ b/src/core/agent_hooks.rs @@ -432,7 +432,9 @@ pub fn hooks_state(agent: HookAgent) -> HooksState { /// Install (or rewrite in place) one agent's tty7 hooks. Idempotent: existing /// tty7 entries/files are replaced, never duplicated, and anything -/// user-authored is left untouched. Returns a short human-readable summary. +/// user-authored is left untouched. Returns a terse summary meant for the +/// settings row's note line — the row already shows the agent and target +/// path, so the summary never repeats them. pub fn install_hooks(agent: HookAgent) -> anyhow::Result { let path = agent .target_path() @@ -440,10 +442,7 @@ pub fn install_hooks(agent: HookAgent) -> anyhow::Result { match agent { HookAgent::Claude => { hook_map_install(&path, agent, CLAUDE_HOOK_EVENTS)?; - Ok(format!( - "Claude Code hooks installed in {} — restart running claude sessions to pick them up", - path.display() - )) + Ok("Installed".to_string()) } HookAgent::Codex => { hook_map_install(&path, agent, CODEX_HOOK_EVENTS)?; @@ -451,11 +450,10 @@ pub fn install_hooks(agent: HookAgent) -> anyhow::Result { // Best-effort: the file install above is complete and correct // either way, so a missing codex binary downgrades to advice // instead of failing the install. - let summary = format!("Codex hooks installed in {}", path.display()); Ok(match enable_codex_hooks_feature() { - Ok(()) => summary, + Ok(()) => "Installed".to_string(), Err(e) => format!( - "{summary} — couldn't run `codex features enable hooks` ({e}); run it once manually" + "Installed, but couldn't run `codex features enable hooks` ({e}) — run it once manually" ), }) } @@ -463,11 +461,7 @@ pub fn install_hooks(agent: HookAgent) -> anyhow::Result { let content = owned_file_content(agent) .ok_or_else(|| anyhow::anyhow!("cannot resolve tty7's own executable path"))?; owned_file_install(&path, &content, &agent.marker())?; - Ok(format!( - "{} integration installed at {}", - agent.display_name(), - path.display() - )) + Ok("Installed".to_string()) } } } @@ -505,7 +499,11 @@ pub fn refresh_hooks_at_launch() -> usize { match install_hooks(agent) { Ok(summary) => { refreshed += 1; - log::info!("refreshed stale agent hooks: {summary}"); + log::info!( + "refreshed stale {} hooks at {}: {summary}", + agent.display_name(), + agent.target_display() + ); } Err(e) => log::warn!( "could not refresh stale {} hooks: {e}", @@ -733,11 +731,7 @@ fn hook_map_uninstall(path: &Path, agent: HookAgent) -> anyhow::Result { return Ok("No tty7 hooks found; nothing to remove".to_string()); } crate::core::config::write_atomic(path, serde_json::to_string_pretty(&root)?.as_bytes())?; - Ok(format!( - "{} hooks removed from {}", - agent.display_name(), - path.display() - )) + Ok("Removed".to_string()) } /// The tty7 hook command inside one matcher entry @@ -856,7 +850,7 @@ fn owned_file_uninstall(path: &Path, marker: &str) -> anyhow::Result { { let _ = std::fs::remove_dir(parent); } - Ok(format!("Removed {}", path.display())) + Ok("Removed".to_string()) } /// Copilot hook file (`~/.copilot/hooks/tty7.json`): Copilot auto-loads every diff --git a/src/ui/settings.rs b/src/ui/settings.rs index f88f1640..02ad4ae3 100644 --- a/src/ui/settings.rs +++ b/src/ui/settings.rs @@ -3031,7 +3031,7 @@ impl Tty7App { let (dot_color, status_text) = match state { HooksState::NotInstalled => (muted_fg, "Not installed"), HooksState::Installed => (success, "Installed"), - HooksState::Outdated => (warning, "Outdated — installed by another tty7 version"), + HooksState::Outdated => (warning, "Outdated"), }; // The primary action reads as what it will *do* from this state. let primary_label = match state { @@ -3044,8 +3044,11 @@ impl Tty7App { .filter(|(for_agent, _)| *for_agent == agent) .map(|(_, text)| text.clone()); + // items_end: the whole stack shares the row's right edge, so + // status, buttons, and note line up across every agent row. let control = v_flex() .gap_2() + .items_end() .child( h_flex() .gap_2() @@ -3075,8 +3078,18 @@ impl Tty7App { ) }), ) + // Width-capped so a long note (error text) wraps instead of + // inflating the shrink-proof control column and crushing the + // label to zero width. .when_some(row_note, |col, text| { - col.child(div().text_xs().text_color(muted_fg).child(text)) + col.child( + div() + .max_w_80() + .text_xs() + .text_right() + .text_color(muted_fg) + .child(text), + ) }) .into_any_element(); From 58d0596015b860ad101ac5b9065d24bd3de29b34 Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Fri, 17 Jul 2026 17:56:09 +0800 Subject: [PATCH 10/53] feat(tab-strip): float the close button over the label instead of reserving a slot MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every chip permanently reserved a 6px gap + 20px slot for a close button that is invisible until hover, which read as a hole between an ellipsized label and the chip edge, and wasted label width on crowded strips. Drop the in-flow slot: the label now runs the full chip width, and on hover the ✕ floats over its right edge on a solid backing in the chip's own fill with a short gradient run-in, so covered text fades out and nothing reflows. The ⌘N hint badge keeps an in-flow slot: it also shows on unhovered inactive chips, which are transparent over the window background, so an overlay has no solid colour to back onto. --- src/ui/tab_strip.rs | 114 +++++++++++++++++++++++++++----------------- 1 file changed, 70 insertions(+), 44 deletions(-) diff --git a/src/ui/tab_strip.rs b/src/ui/tab_strip.rs index 9d463704..a110e045 100644 --- a/src/ui/tab_strip.rs +++ b/src/ui/tab_strip.rs @@ -6,7 +6,7 @@ use gpui::{ App, Axis, Context, FontWeight, MouseButton, MouseDownEvent, SharedString, Window, div, - prelude::*, px, + linear_color_stop, linear_gradient, prelude::*, px, }; use gpui_component::button::{Button, ButtonVariants as _}; use gpui_component::input::Input; @@ -735,50 +735,76 @@ impl Tty7App { }) // Clickable / editable label region. .child(label_region) - // Trailing slot: normally the close affordance — kept out of the - // way (opacity 0) on every chip, active or not, and fades in on - // chip hover, so a row of tabs reads clean instead of - // three-icons-per-chip busy. Space is reserved either way, so - // nothing shifts on hover. While the shortcut hints are armed, - // the same slot shows the tab's ⌘N badge instead. - .child(if show_badges && i < 9 { + // Trailing ⌘N badge: while the shortcut hints are armed the + // badge takes an in-flow 20px slot (the strip reflows once as + // the hints arm/disarm — a deliberate, all-chips-at-once modal + // moment). It can't float like the close button below: badges + // also show on unhovered inactive chips, which are transparent + // over the window background (possibly a gradient or image), so + // there's no solid colour to back an overlay with. + .when(show_badges && i < 9, |chip| { // Bare digit, no keycap box — the hint blends into the chip - // rather than reading as another button. Sized to the exact - // 20px square of the close button it stands in for, so the - // swap can never change the chip's width (an ellipsized - // label would otherwise reflow and the strip would jitter). - div() - .flex_shrink_0() - .flex() - .items_center() - .justify_center() - .size(px(20.)) - .text_xs() - .font_weight(FontWeight::MEDIUM) - .text_color(if is_active { - cx.theme().foreground - } else { - cx.theme().muted_foreground - }) - .child(tab_badge_label(i)) - .into_any_element() - } else { - div() - .flex_shrink_0() - .opacity(0.) - .group_hover(SharedString::from(format!("tab-chip-{i}")), |s| { - s.opacity(1.) - }) - .child( - Button::new(("tab-close", i)) - .icon(IconName::Close) - .ghost() - .xsmall() - .on_click(cx.listener(move |this, _, window, cx| { - this.close_tab(i, window, cx); - })), - ) - .into_any_element() + // rather than reading as another button. + chip.child( + div() + .flex_shrink_0() + .flex() + .items_center() + .justify_center() + .size(px(20.)) + .text_xs() + .font_weight(FontWeight::MEDIUM) + .text_color(if is_active { + cx.theme().foreground + } else { + cx.theme().muted_foreground + }) + .child(tab_badge_label(i)), + ) + }) + // Close affordance: out of flow, so the label runs the full + // chip width instead of always reserving a 20px slot for a + // button that's invisible until hover. On hover the ✕ floats + // over the label's right edge (Safari-style) on a solid backing + // in the chip's current fill — `secondary` on the active chip, + // `muted` on an inactive one, whose hover fill is exactly what + // the ✕'s visibility implies — with a short gradient run-in so + // covered text fades out instead of hard-cutting mid-glyph. + // Nothing reflows on hover. + .when(!(show_badges && i < 9), |chip| { + let backing = if is_active { + cx.theme().secondary + } else { + cx.theme().muted + }; + let mut fade_from = backing; + fade_from.a = 0.; + chip.child( + h_flex() + .absolute() + .top(px(5.)) + .right(px(6.)) + .opacity(0.) + .group_hover(SharedString::from(format!("tab-chip-{i}")), |s| { + s.opacity(1.) + }) + .child(div().w(px(10.)).h(px(20.)).bg(linear_gradient( + 90., + linear_color_stop(fade_from, 0.), + linear_color_stop(backing, 1.), + ))) + .child( + div().bg(backing).child( + Button::new(("tab-close", i)) + .icon(IconName::Close) + .ghost() + .xsmall() + .on_click(cx.listener(move |this, _, window, cx| { + this.close_tab(i, window, cx); + })), + ), + ), + ) }); // Per-tab right-click menu (rename / worktree / split / copy cwd / From c70f9e0881e12600115aa9932992b8fe74ffd078 Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Fri, 17 Jul 2026 18:01:29 +0800 Subject: [PATCH 11/53] feat(agent-hooks): follow the agent's own cwd for the sidebar git line Claude Code's EnterWorktree chdirs the agent without any shell cd, so the sidebar's branch/diff line could not see the move on platforms without the proc-cwd fallback. Forward the cwd field every Claude Code hook payload already carries through the OSC 777 sentinel, keep it on the pane's agent session state, and let it take precedence over the proc probe for the git line. The claim is released on session-end (and when the agent leaves the foreground), so an exited agent falls back to the pane's real directory. --- src/core/agent_hooks.rs | 37 +++++++++++-------------- src/core/cli_agent.rs | 61 +++++++++++++++++++++++++++++++++++++++++ src/daemon/pane.rs | 1 + src/daemon/protocol.rs | 1 + src/terminal/remote.rs | 1 + src/terminal/view.rs | 13 ++++++++- 6 files changed, 92 insertions(+), 22 deletions(-) diff --git a/src/core/agent_hooks.rs b/src/core/agent_hooks.rs index 68ef7c5a..de31a4f9 100644 --- a/src/core/agent_hooks.rs +++ b/src/core/agent_hooks.rs @@ -110,7 +110,7 @@ fn build_hook_sequence(agent: &str, event: &str, stdin_json: &str) -> Vec { "agent": agent, "event": event, }); - for key in ["session_id", "message"] { + for key in ["session_id", "message", "cwd"] { if let Some(v) = payload .get(key) .and_then(|v| v.as_str()) @@ -432,7 +432,9 @@ pub fn hooks_state(agent: HookAgent) -> HooksState { /// Install (or rewrite in place) one agent's tty7 hooks. Idempotent: existing /// tty7 entries/files are replaced, never duplicated, and anything -/// user-authored is left untouched. Returns a short human-readable summary. +/// user-authored is left untouched. Returns a terse summary meant for the +/// settings row's note line — the row already shows the agent and target +/// path, so the summary never repeats them. pub fn install_hooks(agent: HookAgent) -> anyhow::Result { let path = agent .target_path() @@ -440,10 +442,7 @@ pub fn install_hooks(agent: HookAgent) -> anyhow::Result { match agent { HookAgent::Claude => { hook_map_install(&path, agent, CLAUDE_HOOK_EVENTS)?; - Ok(format!( - "Claude Code hooks installed in {} — restart running claude sessions to pick them up", - path.display() - )) + Ok("Installed".to_string()) } HookAgent::Codex => { hook_map_install(&path, agent, CODEX_HOOK_EVENTS)?; @@ -451,11 +450,10 @@ pub fn install_hooks(agent: HookAgent) -> anyhow::Result { // Best-effort: the file install above is complete and correct // either way, so a missing codex binary downgrades to advice // instead of failing the install. - let summary = format!("Codex hooks installed in {}", path.display()); Ok(match enable_codex_hooks_feature() { - Ok(()) => summary, + Ok(()) => "Installed".to_string(), Err(e) => format!( - "{summary} — couldn't run `codex features enable hooks` ({e}); run it once manually" + "Installed, but couldn't run `codex features enable hooks` ({e}) — run it once manually" ), }) } @@ -463,11 +461,7 @@ pub fn install_hooks(agent: HookAgent) -> anyhow::Result { let content = owned_file_content(agent) .ok_or_else(|| anyhow::anyhow!("cannot resolve tty7's own executable path"))?; owned_file_install(&path, &content, &agent.marker())?; - Ok(format!( - "{} integration installed at {}", - agent.display_name(), - path.display() - )) + Ok("Installed".to_string()) } } } @@ -505,7 +499,11 @@ pub fn refresh_hooks_at_launch() -> usize { match install_hooks(agent) { Ok(summary) => { refreshed += 1; - log::info!("refreshed stale agent hooks: {summary}"); + log::info!( + "refreshed stale {} hooks at {}: {summary}", + agent.display_name(), + agent.target_display() + ); } Err(e) => log::warn!( "could not refresh stale {} hooks: {e}", @@ -733,11 +731,7 @@ fn hook_map_uninstall(path: &Path, agent: HookAgent) -> anyhow::Result { return Ok("No tty7 hooks found; nothing to remove".to_string()); } crate::core::config::write_atomic(path, serde_json::to_string_pretty(&root)?.as_bytes())?; - Ok(format!( - "{} hooks removed from {}", - agent.display_name(), - path.display() - )) + Ok("Removed".to_string()) } /// The tty7 hook command inside one matcher entry @@ -856,7 +850,7 @@ fn owned_file_uninstall(path: &Path, marker: &str) -> anyhow::Result { { let _ = std::fs::remove_dir(parent); } - Ok(format!("Removed {}", path.display())) + Ok("Removed".to_string()) } /// Copilot hook file (`~/.copilot/hooks/tty7.json`): Copilot auto-loads every @@ -985,6 +979,7 @@ mod tests { assert_eq!(ev.kind, AgentEventKind::Notification); assert_eq!(ev.session_id.as_deref(), Some("abc-123")); assert!(ev.message.as_deref().unwrap().contains("permission")); + assert_eq!(ev.cwd.as_deref(), Some(std::path::Path::new("/w"))); // Garbage stdin still yields a well-formed bare event. let seq = build_hook_sequence("claude", "stop", "not json at all"); diff --git a/src/core/cli_agent.rs b/src/core/cli_agent.rs index d411fa12..eb6a2964 100644 --- a/src/core/cli_agent.rs +++ b/src/core/cli_agent.rs @@ -485,6 +485,13 @@ pub struct AgentSessionState { /// agent's own notification text was already toasted by the client). #[serde(default)] pub rich: bool, + /// The agent's working directory as its hook payloads report it — the + /// agent's own claim, which tracks internal chdirs the PTY can't show + /// (Claude Code's EnterWorktree moves the session without any shell `cd`). + /// Cleared on `session-end` so a finished session can't pin consumers to + /// a stale path; while absent, consumers fall back to the pane's proc cwd. + #[serde(default)] + pub cwd: Option, } impl AgentStatus { @@ -512,6 +519,9 @@ impl AgentSessionState { if let Some(id) = &ev.session_id { self.session_id = Some(id.clone()); } + if let Some(cwd) = &ev.cwd { + self.cwd = Some(cwd.clone()); + } match ev.kind { AgentEventKind::SessionStart => { self.status = AgentStatus::Idle; @@ -560,9 +570,12 @@ impl AgentSessionState { } // The agent session ended but its id stays: Claude & friends can // resume an *ended* session, which is exactly what restore does. + // Its cwd claim does NOT stay: with no agent running, the pane's + // real (proc-observed) directory is the truth again. AgentEventKind::SessionEnd => { self.status = AgentStatus::Idle; self.message = None; + self.cwd = None; } } } @@ -596,6 +609,9 @@ pub struct AgentEvent { pub kind: AgentEventKind, pub session_id: Option, pub message: Option, + /// The agent's working directory at the moment the hook fired, when the + /// payload carries one (Claude Code sends it on every hook event). + pub cwd: Option, } /// Parse a complete OSC payload (identifier included, e.g. @@ -621,6 +637,8 @@ pub fn parse_agent_event(payload: &[u8]) -> Option { session_id: Option, #[serde(default)] message: Option, + #[serde(default)] + cwd: Option, } let w: Wire = serde_json::from_slice(json).ok()?; @@ -631,6 +649,7 @@ pub fn parse_agent_event(payload: &[u8]) -> Option { kind, session_id: nonempty(w.session_id), message: nonempty(w.message), + cwd: nonempty(w.cwd).map(std::path::PathBuf::from), }) } @@ -880,6 +899,7 @@ mod tests { kind, session_id: id.map(String::from), message: msg.map(String::from), + cwd: None, }; s.apply_event(&ev(AgentEventKind::SessionStart, None, Some("sid-1"))); @@ -939,6 +959,47 @@ mod tests { assert_eq!(s.session_id.as_deref(), Some("sid-1")); } + /// The agent's cwd claim: any event carrying one sets it, later events + /// without one leave it alone (mid-turn events keep the worktree path + /// alive), and session end drops it — an exited agent must not pin the + /// pane's git line to a directory nothing runs in anymore. + #[test] + fn session_state_tracks_and_releases_the_agent_cwd() { + use std::path::PathBuf; + + let ev = |kind, cwd: Option<&str>| AgentEvent { + agent: Some(CLIAgent::Claude), + kind, + session_id: None, + message: None, + cwd: cwd.map(PathBuf::from), + }; + + let mut s = AgentSessionState::default(); + s.apply_event(&ev(AgentEventKind::SessionStart, Some("/repo"))); + assert_eq!(s.cwd.as_deref(), Some(std::path::Path::new("/repo"))); + + // EnterWorktree lands as a tool-complete carrying the new directory. + s.apply_event(&ev( + AgentEventKind::ToolComplete, + Some("/repo/.claude/worktrees/fix-x"), + )); + assert_eq!( + s.cwd.as_deref(), + Some(std::path::Path::new("/repo/.claude/worktrees/fix-x")) + ); + + // An event without a cwd (another agent's sparser payload) keeps it. + s.apply_event(&ev(AgentEventKind::Stop, None)); + assert_eq!( + s.cwd.as_deref(), + Some(std::path::Path::new("/repo/.claude/worktrees/fix-x")) + ); + + s.apply_event(&ev(AgentEventKind::SessionEnd, None)); + assert_eq!(s.cwd, None, "session end releases the cwd claim"); + } + #[test] fn resume_commands_are_shell_safe() { assert_eq!( diff --git a/src/daemon/pane.rs b/src/daemon/pane.rs index da802527..4072e27a 100644 --- a/src/daemon/pane.rs +++ b/src/daemon/pane.rs @@ -2980,6 +2980,7 @@ mod tests { message: None, session_id: Some("sid".into()), rich: true, + cwd: None, }); apply_signals(&mut st, sniffer.feed(b"\x1b]9;noise\x07")); assert_eq!( diff --git a/src/daemon/protocol.rs b/src/daemon/protocol.rs index fc99bcf0..7cddf932 100644 --- a/src/daemon/protocol.rs +++ b/src/daemon/protocol.rs @@ -1540,6 +1540,7 @@ mod tests { message: Some("Claude needs your permission to use Bash".into()), session_id: Some("abc-123".into()), rich: true, + cwd: Some("/repo/.claude/worktrees/fix-x".into()), })), DaemonMsg::AgentStatus(None), DaemonMsg::LoopbackForward(LoopbackForward { local_port: 49152 }), diff --git a/src/terminal/remote.rs b/src/terminal/remote.rs index cf5500bb..0031248c 100644 --- a/src/terminal/remote.rs +++ b/src/terminal/remote.rs @@ -2329,6 +2329,7 @@ mod tests { message: Some("Claude needs your permission".into()), session_id: Some("sid-1".into()), rich: true, + cwd: None, })) .encode(&mut daemon_side) .unwrap(); diff --git a/src/terminal/view.rs b/src/terminal/view.rs index 8a62949f..7bf44e45 100644 --- a/src/terminal/view.rs +++ b/src/terminal/view.rs @@ -2573,7 +2573,18 @@ impl TerminalView { // an agent's session is one long foreground command, so its edits would // otherwise stay invisible until it exits. All rare edges, so the // off-thread `git` shell-out runs seldom, not every 300ms tick. - let cwd_now = self.cwd(); + // + // An agent that reports its own cwd through the hook channel wins over + // the proc probe: it tracks internal chdirs the PTY can't observe + // (Claude Code's EnterWorktree) and works where the proc fallback + // doesn't (Windows). The claim dies with the session (`session-end` + // clears it, and the agent leaving the foreground drops the whole + // state), so an exited agent falls back to the pane's real directory. + let cwd_now = self + .terminal + .agent_session() + .and_then(|s| s.cwd) + .or_else(|| self.cwd()); if cwd_now.as_ref() != self.git_status_cwd.as_ref() || cmd_finished || turn_finished { self.refresh_git_status(cwd_now, cx); } From 88c694df9e51fb7145b7a66687846f542c4e481b Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Fri, 17 Jul 2026 18:55:13 +0800 Subject: [PATCH 12/53] feat(terminal): smart double-click selection with CJK segmentation - Double-click expands to the whole URL, email, file path, sci-notation number, identifier chain, OSC 8 hyperlink run, or matching bracket/quote pair containing the clicked word. Candidates only ever grow the plain word selection, so nothing regresses below the stock word behavior. - Chinese segments with jieba's dictionary on all platforms; Kana/Hangul use CFStringTokenizer on macOS. The table builds lazily on a background thread so the first double-click never pays the cost. - Latin words glued to CJK text narrow to the clicked script's sub-run instead of selecting the mixed blob. - Bracket pairs (ASCII and full-width) and symmetric quotes (parity matched) select through their match, in the grid and prompt editor alike. - Shift+click extends the existing grid selection instead of restarting. - Word separators are configurable (word_separators, shared by grid and prompt editor); new 'Smart selection' toggle in Settings > Terminal. --- Cargo.lock | 179 +++++++- Cargo.toml | 10 + docs/features.md | 1 + docs/features.zh-CN.md | 1 + src/core/config.rs | 22 + src/terminal/cmd_editor.rs | 105 ++++- src/terminal/element.rs | 2 +- src/terminal/mod.rs | 1 + src/terminal/remote.rs | 1 + src/terminal/smart_select.rs | 808 +++++++++++++++++++++++++++++++++++ src/terminal/view.rs | 48 ++- src/ui/app.rs | 4 + src/ui/settings.rs | 16 + 13 files changed, 1173 insertions(+), 25 deletions(-) create mode 100644 src/terminal/smart_select.rs diff --git a/Cargo.lock b/Cargo.lock index a49362ce..a276f256 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -116,6 +116,12 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + [[package]] name = "aead" version = "0.6.1" @@ -1007,6 +1013,12 @@ version = "3.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" +[[package]] +name = "bytecount" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" + [[package]] name = "bytemuck" version = "1.25.0" @@ -1152,6 +1164,15 @@ dependencies = [ "shlex 2.0.1", ] +[[package]] +name = "cedarwood" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0524a528a6a0288df1863c3c20fe92c301875b4941e7b6c4b394ab08c5a4c55" +dependencies = [ + "smallvec", +] + [[package]] name = "cesu8" version = "1.1.0" @@ -1814,6 +1835,12 @@ dependencies = [ "syn 2.0.118", ] +[[package]] +name = "dary_heap" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b1e3a325bc115f096c8b77bbf027a7c2592230e70be2d985be950d3d5e60ebe" + [[package]] name = "dashmap" version = "6.2.1" @@ -4035,6 +4062,39 @@ version = "1.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89194689a993ab15268672e99e7b0e19da2da3268ac682e8f02d29d4d1434cd7" +[[package]] +name = "include-flate" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48f173716febb1ad596c16ea5637b5f1790ea32de8e627493ff82bc73b0876ce" +dependencies = [ + "include-flate-codegen", + "include-flate-compress", +] + +[[package]] +name = "include-flate-codegen" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a7875b62a72ad3f3203cdd8950d4cf9947db036030b974b8b37ceae90c8d8c0" +dependencies = [ + "include-flate-compress", + "proc-macro-error3", + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "include-flate-compress" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44fbb9c5ccb9a5b67b4afa2974c27e5507ea1bf6d22828cef418e4dfaeca51dd" +dependencies = [ + "libflate", + "zstd", +] + [[package]] name = "indexmap" version = "2.14.0" @@ -4221,6 +4281,30 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" +[[package]] +name = "jieba-macros" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38fc0f3831de71556de69643b80a08a5c8cd260a23c6b8dbeb7cd923c779cac5" +dependencies = [ + "phf_codegen 0.13.1", +] + +[[package]] +name = "jieba-rs" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a813bbf185c8c62eb6fcf54a223177b644824d91612045dfd80bb779acd080eb" +dependencies = [ + "bytecount", + "cedarwood", + "include-flate", + "jieba-macros", + "phf 0.13.1", + "regex", + "rustc-hash 2.1.2", +] + [[package]] name = "jni" version = "0.21.1" @@ -4476,6 +4560,30 @@ version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" +[[package]] +name = "libflate" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd96e993e5f3368b0cb8497dae6c860c22af8ff18388c61c6c0b86c58d86b5df" +dependencies = [ + "adler32", + "crc32fast", + "dary_heap", + "libflate_lz77", + "no_std_io2", +] + +[[package]] +name = "libflate_lz77" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff7a10e427698aef6eef269482776debfef63384d30f13aad39a1a95e0e098fd" +dependencies = [ + "hashbrown 0.16.1", + "no_std_io2", + "rle-decode-fast", +] + [[package]] name = "libfuzzer-sys" version = "0.4.13" @@ -4758,7 +4866,7 @@ checksum = "16ce3abbeba692c8b8441d036ef91aea6df8da2c6b6e21c7e14d3c18e526be45" dependencies = [ "log", "phf 0.11.3", - "phf_codegen", + "phf_codegen 0.11.3", "string_cache", "string_cache_codegen", "tendril", @@ -5950,6 +6058,16 @@ dependencies = [ "phf_shared 0.11.3", ] +[[package]] +name = "phf_codegen" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1" +dependencies = [ + "phf_generator 0.13.1", + "phf_shared 0.13.1", +] + [[package]] name = "phf_generator" version = "0.11.3" @@ -6370,6 +6488,16 @@ dependencies = [ "quote", ] +[[package]] +name = "proc-macro-error-attr3" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34e4dd828515431dd6c4a030d26f7eaed7dd4778226e9d2bb968d65ca4ec3d4d" +dependencies = [ + "proc-macro2", + "quote", +] + [[package]] name = "proc-macro-error2" version = "2.0.1" @@ -6382,6 +6510,18 @@ dependencies = [ "syn 2.0.118", ] +[[package]] +name = "proc-macro-error3" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ee475e440453418ff1335189eddf7101ba502cd818ab7ae04209bc83aa925aa" +dependencies = [ + "proc-macro-error-attr3", + "proc-macro2", + "quote", + "syn 2.0.118", +] + [[package]] name = "proc-macro2" version = "1.0.106" @@ -6956,6 +7096,12 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "rle-decode-fast" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" + [[package]] name = "ropey" version = "2.0.0-beta.1" @@ -9026,12 +9172,14 @@ version = "26.7.1" dependencies = [ "alacritty_terminal", "anyhow", + "core-foundation 0.10.0", "getrandom 0.3.4", "gpui", "gpui-component", "gpui-component-assets", "gpui_platform", "image", + "jieba-rs", "keyring", "ksni", "libc", @@ -9045,6 +9193,7 @@ dependencies = [ "objc2-foundation 0.3.2", "plist", "portable-pty", + "regex", "reqwest_client", "resvg", "russh", @@ -11110,6 +11259,34 @@ version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" +[[package]] +name = "zstd" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "7.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" +dependencies = [ + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.16+zstd.1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" +dependencies = [ + "cc", + "pkg-config", +] + [[package]] name = "ztracing" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index cbdea1e3..20b739d5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,6 +21,13 @@ gpui-component-assets = { workspace = true } anyhow.workspace = true log.workspace = true +# Smart double-click selection patterns (URL/email/path). Already in the tree +# transitively, so pinning it here adds no new native code. +regex = "1" +# Dictionary-based Chinese word segmentation for double-click selection +# (`terminal::smart_select`). The default dict ships deflate-compressed inside +# the binary (~1.8 MB); the table is built lazily on a background thread. +jieba-rs = "0.10" smol.workspace = true smallvec.workspace = true serde = { workspace = true } @@ -171,6 +178,9 @@ winresource = "0.1" # app appearance to match the active theme (see `ui::theme::sync_native_appearance`) # so the native traffic-light buttons render in the right light/dark style. [target.'cfg(target_os = "macos")'.dependencies] +# CFStringTokenizer FFI for dictionary-based CJK word segmentation on +# double-click (`terminal::smart_select`). Already in the tree transitively. +core-foundation = "0.10" objc2 = "0.6" objc2-app-kit = { version = "0.3", features = ["NSApplication", "NSResponder", "NSAppearance", "NSGraphics", "NSImage"] } # NSData feeds the runtime Dock icon for bare (non-bundled) binaries — see diff --git a/docs/features.md b/docs/features.md index 4e42bfa0..d687f237 100644 --- a/docs/features.md +++ b/docs/features.md @@ -18,6 +18,7 @@ - **Repo-grouped sidebar** — the left tab sidebar groups rows under a header per git repository, non-repo tabs in a trailing *Scratch* section; branch switches and in-repo `cd`s never move a row (`sidebar_grouping` in `config.json`: `repo` default, `none` for a flat list) - **Command palette** ⌘ P · scrollback search ⌘ F - **⌘-click links** · desktop notifications · copy on select (opt-in, Settings → Terminal → Clipboard) +- **Smart double-click selection** — double-click grabs the whole URL, file path, bracket/quote pair, or dictionary-segmented CJK word under the cursor; Shift-click extends a selection (toggle in Settings → Terminal → Mouse; word separators via `word_separators` in `config.json`) - **Eight themes, plus your own** — YAML seed themes with solid, gradient, or image backgrounds; iTerm2 `.itermcolors` import; in-app color editor with a background-image picker - **Sync with system** — Settings → Appearance; pick separate light and dark themes and tty7 follows the OS appearance live (`theme_follow_system`, `theme_preset_light` / `theme_preset_dark` in `config.json`) - **Window opacity & blur** — Settings → Appearance → Window; applies to every theme, *Follow theme* returns to the theme's own `opacity` / `blur` diff --git a/docs/features.zh-CN.md b/docs/features.zh-CN.md index 0a7e2222..e9582526 100644 --- a/docs/features.zh-CN.md +++ b/docs/features.zh-CN.md @@ -18,6 +18,7 @@ - **侧栏按仓库分组** —— 左侧标签栏按 git 仓库分组、每组一个标题行,不在仓库里的标签归入末尾的 *Scratch* 组;切分支、仓库内 `cd` 都不会挪动行(`config.json` 的 `sidebar_grouping`:默认 `repo`,`none` 恢复扁平列表) - **命令面板** ⌘ P · 回滚搜索 ⌘ F - **⌘ 点击打开链接** · 桌面通知 · 划选即复制(可选,设置 → 终端 → 剪贴板) +- **智能双击选中** —— 双击直接选中整条 URL、文件路径、括号/引号对,中文按词典分词出词;Shift 点击扩展选区(设置 → 终端 → 鼠标可开关;分隔符用 `config.json` 的 `word_separators` 配置) - **8 套主题,也能自定义** — YAML 种子主题,背景支持纯色、渐变或图片;可导入 iTerm2 `.itermcolors`;应用内颜色编辑器带背景图选择 - **跟随系统外观** — 设置 → Appearance;分别选好浅色和深色主题,tty7 随系统深浅模式实时切换(`config.json` 中的 `theme_follow_system`、`theme_preset_light` / `theme_preset_dark`) - **窗口透明与模糊** — 设置 → Appearance → Window;对所有主题生效,*Follow theme* 恢复主题自带的 `opacity` / `blur` diff --git a/src/core/config.rs b/src/core/config.rs index 68cfc5ac..bb16b895 100644 --- a/src/core/config.rs +++ b/src/core/config.rs @@ -182,6 +182,19 @@ pub struct Config { /// the clipboard is never overwritten by a stray selection unless opted /// into. pub copy_on_select: bool, + /// Double-click smart selection: expand the selection to the whole URL, + /// email address, file path, or matching bracket pair under the cursor + /// when the plain word sits inside one. On by default; off restores the + /// bare word-boundary double-click. + #[serde(default = "default_true")] + pub smart_select: bool, + /// Characters (besides whitespace) that end a double-click word + /// selection, in both the terminal grid and the prompt's command editor. + /// The default mirrors alacritty's semantic escape set — note `/ . - _` + /// are *not* separators, so paths select as one word. JSON-only (no GUI + /// widget yet). + #[serde(default = "default_word_separators")] + pub word_separators: String, /// Window state at launch: normal / maximized / fullscreen. #[serde(default, deserialize_with = "de_lenient")] pub startup_mode: StartupMode, @@ -494,6 +507,8 @@ impl Default for Config { mouse_reporting: true, clipboard_trim_trailing_spaces: false, copy_on_select: false, + smart_select: true, + word_separators: default_word_separators(), startup_mode: StartupMode::Normal, remember_window_size: true, working_directory: WorkingDirectory::default(), @@ -762,6 +777,13 @@ fn default_true() -> bool { true } +/// Serde default for [`Config::word_separators`]: alacritty's stock semantic +/// escape set, the boundary characters double-click word selection used +/// before this was configurable. +fn default_word_separators() -> String { + ",│`|:\"' ()[]{}<>\t".to_string() +} + /// Serde default for [`Config::notify_threshold_secs`]: the 10-second floor a /// command had to cross before this was configurable. fn default_notify_threshold_secs() -> u64 { diff --git a/src/terminal/cmd_editor.rs b/src/terminal/cmd_editor.rs index e002dadf..ec551f8a 100644 --- a/src/terminal/cmd_editor.rs +++ b/src/terminal/cmd_editor.rs @@ -222,24 +222,68 @@ impl CmdEditor { self.cursor = self.chars.len(); } - /// Bounds `(start, end)` of the word (run of non-whitespace) containing char - /// index `idx`. On whitespace this collapses to `(idx, idx)`. - pub fn word_bounds(&self, idx: usize) -> (usize, usize) { + /// Bounds `(start, end)` of the word containing char index `idx`: the run + /// of chars that are neither whitespace nor in `separators` (the + /// configured word-separator set, shared with the grid's semantic + /// selection). A separator char is its own one-char word, matching the + /// grid; on whitespace the run collapses and the leftward walk snaps to + /// the previous word's start. + pub fn word_bounds(&self, idx: usize, separators: &str) -> (usize, usize) { let idx = idx.min(self.chars.len()); + // A bracket or quote selects through its match, same as the grid. + // Checked before CJK segmentation so full-width `()`/`“”` pair + // instead of being segmented as lone punctuation tokens. Only for + // the double-click itself — drags use `plain_word_bounds` so the + // selection doesn't lurch when the pointer crosses a quote. + if let Some((s, e)) = super::smart_select::pair_range(&self.chars, idx) { + return (s, e + 1); + } + // CJK prose has no separators between words: segment it (jieba for + // Chinese, the OS tokenizer for Kana/Hangul on macOS) instead of + // selecting the whole unbroken run. + if let Some(&c) = self.chars.get(idx) + && super::smart_select::is_cjk(c) + { + let text: String = self.chars.iter().collect(); + if let Some((s, e)) = super::smart_select::cjk_word_range(&text, idx) { + return (s, e + 1); + } + } + self.plain_word_bounds(idx, separators) + } + + /// [`Self::word_bounds`] without the pair/segmentation smarts: the plain + /// separator-walk word. Used for word-granular drags, where pair matching + /// would make the selection jump around as the pointer crosses a quote. + fn plain_word_bounds(&self, idx: usize, separators: &str) -> (usize, usize) { + let idx = idx.min(self.chars.len()); + if let Some(&c) = self.chars.get(idx) + && !c.is_whitespace() + && separators.contains(c) + { + return (idx, idx + 1); + } + let boundary = |c: char| c.is_whitespace() || separators.contains(c); let mut s = idx; - while s > 0 && !self.chars[s - 1].is_whitespace() { + while s > 0 && !boundary(self.chars[s - 1]) { s -= 1; } let mut e = idx; - while e < self.chars.len() && !self.chars[e].is_whitespace() { + while e < self.chars.len() && !boundary(self.chars[e]) { e += 1; } + // Mixed-script runs (a Latin word glued to CJK text) shrink to the + // clicked char's script class — same correction as the grid's. + if idx < e { + let (ns, ne) = super::smart_select::narrow_to_script(&self.chars, idx, s, e - 1); + return (ns, ne + 1); + } (s, e) } - /// Select the word (run of non-whitespace) containing char index `idx`. - pub fn select_word_at(&mut self, idx: usize) { - let (s, e) = self.word_bounds(idx); + /// Select the word containing char index `idx` (see [`Self::word_bounds`]). + pub fn select_word_at(&mut self, idx: usize, separators: &str) { + let (s, e) = self.word_bounds(idx, separators); self.anchor = Some(s); self.cursor = e; } @@ -249,8 +293,14 @@ impl CmdEditor { /// selection grows by whole words: dragging past the anchor word selects /// forward to the far edge of the word under `idx`, dragging before it selects /// backward to that word's near edge. The cursor sits at the moving edge. - pub fn extend_word_to(&mut self, anchor_start: usize, anchor_end: usize, idx: usize) { - let (ws, we) = self.word_bounds(idx.min(self.chars.len())); + pub fn extend_word_to( + &mut self, + anchor_start: usize, + anchor_end: usize, + idx: usize, + separators: &str, + ) { + let (ws, we) = self.plain_word_bounds(idx.min(self.chars.len()), separators); if we >= anchor_end { self.anchor = Some(anchor_start); self.cursor = we; @@ -573,15 +623,34 @@ mod tests { assert_eq!(e.selection(), None); } + /// The default word-separator set (mirrors `Config::word_separators`). + const SEPS: &str = ",│`|:\"' ()[]{}<>\t"; + #[test] fn select_word_and_all() { let mut e = ed("git push origin", 6); - e.select_word_at(6); // cursor on "push" + e.select_word_at(6, SEPS); // cursor on "push" assert_eq!(e.selected_text().as_deref(), Some("push")); e.select_all(); assert_eq!(e.selection(), Some((0, 15))); } + #[test] + fn select_word_stops_at_separators() { + // Quotes and commas bound a word; a separator char is its own word. + let mut e = ed("echo 'a,b'", 0); + e.select_word_at(6, SEPS); // on "a" + assert_eq!(e.selected_text().as_deref(), Some("a")); + e.select_word_at(7, SEPS); // on the comma itself + assert_eq!(e.selected_text().as_deref(), Some(",")); + e.select_word_at(5, SEPS); // on the opening quote: pairs to the close + assert_eq!(e.selected_text().as_deref(), Some("'a,b'")); + // `/ . - _ =` are not separators: a path stays one word. + let mut e = ed("cat ./a-b/c_d.txt", 0); + e.select_word_at(8, SEPS); + assert_eq!(e.selected_text().as_deref(), Some("./a-b/c_d.txt")); + } + #[test] fn extend_to_keeps_anchor() { let mut e = ed("abcdef", 2); @@ -595,20 +664,20 @@ mod tests { fn extend_word_to_grows_by_whole_words_both_directions() { // Double-click "push" (chars 4..8), then drag over later/earlier words. let mut e = ed("git push origin main", 4); - e.select_word_at(6); + e.select_word_at(6, SEPS); let (s, a) = e.selection().unwrap(); // (4, 8) == "push" assert_eq!((s, a), (4, 8)); // Drag forward into "origin": selection reaches that word's far edge. - e.extend_word_to(s, a, 10); + e.extend_word_to(s, a, 10, SEPS); assert_eq!(e.selected_text().as_deref(), Some("push origin")); // Drag on into "main": grows to its end. - e.extend_word_to(s, a, 18); + e.extend_word_to(s, a, 18, SEPS); assert_eq!(e.selected_text().as_deref(), Some("push origin main")); // Drag backward before the anchor word into "git": anchor flips to the // word's far edge, selection covers "git push". - e.extend_word_to(s, a, 1); + e.extend_word_to(s, a, 1, SEPS); assert_eq!(e.selected_text().as_deref(), Some("git push")); } @@ -673,15 +742,15 @@ mod tests { // that word — the same left-scan that makes a double-click at the end // of the line select the last word. let mut e = ed("ab cd", 0); - e.select_word_at(2); // the space between the words + e.select_word_at(2, SEPS); // the space between the words assert_eq!(e.selected_text().as_deref(), Some("ab")); // Index at/past the end selects the trailing word, clamped. - e.select_word_at(99); + e.select_word_at(99, SEPS); assert_eq!(e.selected_text().as_deref(), Some("cd")); // On a gap wider than one cell there is no adjacent word to the left of // the clicked cell: the empty range collapses to no selection. let mut e = ed("ab cd", 0); - e.select_word_at(3); // second space: both neighbours are whitespace + e.select_word_at(3, SEPS); // second space: both neighbours are whitespace assert_eq!(e.selection(), None); } diff --git a/src/terminal/element.rs b/src/terminal/element.rs index 78de9894..d54fe708 100644 --- a/src/terminal/element.rs +++ b/src/terminal/element.rs @@ -1209,7 +1209,7 @@ impl TerminalElement { return; } if button == MouseButton::Left { - v.on_select_start(col, row, left, clicks, cx); + v.on_select_start(col, row, left, clicks, mods.shift, cx); } }); }); diff --git a/src/terminal/mod.rs b/src/terminal/mod.rs index 34f06527..f2294ce3 100644 --- a/src/terminal/mod.rs +++ b/src/terminal/mod.rs @@ -34,6 +34,7 @@ mod reverse_search; pub mod search; mod signature; mod size; +mod smart_select; mod typeahead; pub mod view; diff --git a/src/terminal/remote.rs b/src/terminal/remote.rs index 0031248c..05aa96b1 100644 --- a/src/terminal/remote.rs +++ b/src/terminal/remote.rs @@ -1511,6 +1511,7 @@ fn terminal_config_from_user(user_config: &crate::core::config::Config) -> Confi Config { scrolling_history: user_config.scrollback_limit, default_cursor_style: alacritty_cursor_style(user_config.cursor_style), + semantic_escape_chars: user_config.word_separators.clone(), ..Config::default() } } diff --git a/src/terminal/smart_select.rs b/src/terminal/smart_select.rs new file mode 100644 index 00000000..14968390 --- /dev/null +++ b/src/terminal/smart_select.rs @@ -0,0 +1,808 @@ +//! Double-click smart selection (à la iTerm2): when a double-click's +//! plain word selection sits inside a larger semantic object — a URL, an +//! email address, a file path, a matching bracket pair, or an OSC 8 +//! hyperlink — expand the selection to cover the whole object. +//! +//! The expansion is strictly additive: a candidate is only applied when it +//! *contains* the plain word the double-click would have selected, so the +//! feature can never shrink a selection below what alacritty's semantic +//! (word) selection yields. With no candidate the caller falls back to the +//! stock `SelectionType::Semantic` behavior unchanged. + +use std::sync::OnceLock; + +use alacritty_terminal::event::EventListener; +use alacritty_terminal::grid::Dimensions; +use alacritty_terminal::index::{Column, Line, Point}; +use alacritty_terminal::term::Term; +use alacritty_terminal::term::cell::Flags; +use regex::Regex; + +/// How many soft-wrapped rows to join on each side of the clicked row when +/// reconstructing the logical line. Caps the text a pathological fully-wrapped +/// scrollback line (minified JS piped to `cat`) can feed the regexes. +const MAX_WRAP_ROWS: usize = 32; + +/// How many chars around the click offset the regex window covers on each +/// side. Matches never straddle real whitespace anyway, so a bounded window +/// only drops matches on absurdly long unbroken runs. +const MATCH_WINDOW: usize = 2000; + +/// Bracket pairs a double-click on either half expands across (with +/// nesting): the ASCII pairs plus the full-width/CJK ones. +const BRACKET_PAIRS: [(char, char); 15] = [ + ('(', ')'), + ('[', ']'), + ('{', '}'), + ('<', '>'), + ('(', ')'), + ('[', ']'), + ('{', '}'), + ('〈', '〉'), + ('《', '》'), + ('「', '」'), + ('『', '』'), + ('【', '】'), + ('〔', '〕'), + ('“', '”'), + ('‘', '’'), +]; + +/// Symmetric quotes: open and close are the same char, so pairing needs the +/// parity heuristic in [`quote_range`] instead of the bracket scan. +const SYMMETRIC_QUOTES: [char; 3] = ['\'', '"', '`']; + +/// A resolved smart selection: an inclusive grid-point span, plus whether the +/// span is `exact`. Exact spans have endpoints that may sit mid-word-run (CJK +/// prose, a candidate glued to non-separator text), so the caller must select +/// them with `SelectionType::Simple` — a `Semantic` anchor would re-expand the +/// endpoints across the very boundary the smart range established. Non-exact +/// spans end on run boundaries and can keep `Semantic` for word-wise dragging. +pub(super) struct SmartRange { + pub start: Point, + pub end: Point, + pub exact: bool, +} + +/// Resolve a smart selection range for a double-click at `click` (grid +/// coordinates). `None` means "no candidate beats the plain word" and the +/// caller should keep the stock semantic selection. +pub(super) fn grid_smart_range( + term: &Term, + click: Point, +) -> Option { + // 1) An explicit OSC 8 hyperlink run wins outright — the program told us + // the exact extent, no guessing needed. + if let Some((start, end)) = hyperlink_run(term, click) { + return Some(SmartRange { + start, + end, + exact: true, + }); + } + + let (text, points, click_idx) = logical_line_at(term, click)?; + let chars: Vec = text.chars().collect(); + let separators = term.semantic_escape_chars(); + // A span whose flanks are separator chars ends exactly where alacritty's + // semantic re-expansion would stop anyway; anything else must stay exact. + // Only the separator set counts here — alacritty stops at nothing else, + // so a flank of e.g. U+3000 ideographic space would still re-expand. + let resolved = |s: usize, e: usize| SmartRange { + start: points[s], + end: points[e], + exact: !(s == 0 || separators.contains(chars[s - 1])) + || !(e + 1 == chars.len() || separators.contains(chars[e + 1])), + }; + + // 2) Double-click on a bracket or quote selects through its match. + if let Some((s, e)) = pair_range(&chars, click_idx) { + return Some(resolved(s, e)); + } + + // 3) CJK prose has no separators to walk — the whole clause is one run — + // so segment it with the OS tokenizer (dictionary-based on macOS) + // instead of selecting the entire unbroken run. + if is_cjk(chars[click_idx]) + && let Some((s, e)) = cjk_word_range(&text, click_idx) + { + return Some(resolved(s, e)); + } + + // 4) URL / email / path / identifier patterns around the click. + let (s, e) = smart_range(&text, &chars, click_idx, separators)?; + Some(resolved(s, e)) +} + +/// Whether a char belongs to a CJK script (Han, Kana, Hangul, or the +/// full-width/CJK punctuation blocks) — text whose words aren't delimited by +/// whitespace or the separator set. +pub(super) fn is_cjk(c: char) -> bool { + matches!( + u32::from(c), + 0x1100..=0x11FF // Hangul Jamo + | 0x2E80..=0x9FFF // CJK radicals, punctuation, Kana, ideographs + | 0xAC00..=0xD7AF // Hangul syllables + | 0xF900..=0xFAFF // CJK compatibility ideographs + | 0xFF00..=0xFFEF // full-width forms + | 0x20000..=0x3134F // ideograph extensions + ) +} + +/// Whether the char routes to jieba: Han ideographs and CJK punctuation, +/// where jieba's Chinese dictionary beats the system tokenizer. Kana and +/// Hangul stay with the platform tokenizer (jieba has no Japanese/Korean +/// dictionary and would return the whole run). +fn prefers_jieba(c: char) -> bool { + matches!( + u32::from(c), + 0x3400..=0x9FFF // Han ideographs (unified + ext A) + | 0xF900..=0xFAFF // compatibility ideographs + | 0x20000..=0x3134F // ideograph extensions + | 0x3000..=0x303F // CJK punctuation + | 0xFF00..=0xFFEF // full-width forms + ) +} + +/// The jieba segmenter, built once. Building the 350k-entry table takes a +/// few hundred ms, hence [`warm`] to move that off the first double-click. +static JIEBA: std::sync::OnceLock = std::sync::OnceLock::new(); + +/// Kick off dictionary construction on a background thread (idempotent). +/// Called when a terminal view is created, so the table is ready long before +/// the first CJK double-click; a click that races it just blocks briefly. +pub(crate) fn warm() { + static ONCE: std::sync::Once = std::sync::Once::new(); + ONCE.call_once(|| { + std::thread::spawn(|| { + let _ = JIEBA.get_or_init(jieba_rs::Jieba::new); + }); + }); +} + +/// Dictionary-based word bounds for CJK text: the inclusive char range of +/// the word containing char index `click`. Chinese goes through jieba (full +/// dictionary, all platforms); Kana/Hangul fall back to the platform +/// tokenizer (CFStringTokenizer on macOS), and elsewhere the caller keeps +/// the whole run. +pub(super) fn cjk_word_range(text: &str, click: usize) -> Option<(usize, usize)> { + let chars: Vec = text.chars().collect(); + let c = *chars.get(click)?; + if prefers_jieba(c) + && let Some(r) = jieba_word_range(&chars, click) + { + return Some(r); + } + #[cfg(target_os = "macos")] + if let Some(r) = tokenizer::word_range(text, click) { + return Some(r); + } + None +} + +/// Segment the contiguous CJK run around `click` with jieba and return the +/// token containing it. +fn jieba_word_range(chars: &[char], click: usize) -> Option<(usize, usize)> { + let mut rs = click; + while rs > 0 && is_cjk(chars[rs - 1]) { + rs -= 1; + } + let mut re = click; + while re + 1 < chars.len() && is_cjk(chars[re + 1]) { + re += 1; + } + let run: String = chars[rs..=re].iter().collect(); + let jieba = JIEBA.get_or_init(jieba_rs::Jieba::new); + // Token start/end are Unicode char offsets into `run`. + let rel = click - rs; + jieba + .cut(&run, true) + .iter() + .find(|tok| rel < tok.end) + .map(|tok| (rs + tok.start, rs + tok.end - 1)) +} + +/// CFStringTokenizer FFI. The tokenizer functions aren't wrapped by the +/// `core-foundation` crate, so declare them directly against its types. +#[cfg(target_os = "macos")] +mod tokenizer { + use core_foundation::base::{CFIndex, CFRange, TCFType}; + use core_foundation::string::{CFString, CFStringRef}; + use std::os::raw::c_void; + + type CFStringTokenizerRef = *mut c_void; + type CFLocaleRef = *const c_void; + + /// `kCFStringTokenizerUnitWordBoundary`: every position belongs to a + /// token (words, punctuation runs, whitespace runs alike), which is the + /// double-click contract. + const UNIT_WORD_BOUNDARY: u64 = 4; + + unsafe extern "C" { + fn CFStringTokenizerCreate( + alloc: *const c_void, + string: CFStringRef, + range: CFRange, + options: u64, + locale: CFLocaleRef, + ) -> CFStringTokenizerRef; + fn CFStringTokenizerGoToTokenAtIndex( + tokenizer: CFStringTokenizerRef, + index: CFIndex, + ) -> u64; + fn CFStringTokenizerGetCurrentTokenRange(tokenizer: CFStringTokenizerRef) -> CFRange; + fn CFLocaleCopyCurrent() -> CFLocaleRef; + fn CFRelease(cf: *const c_void); + } + + /// Inclusive char range of the token containing char index `click`. + /// CFString ranges are UTF-16 code-unit offsets, so map through a + /// per-char offset table both ways. + pub(super) fn word_range(text: &str, click: usize) -> Option<(usize, usize)> { + let mut u16_of: Vec = Vec::new(); + let mut total: CFIndex = 0; + for c in text.chars() { + u16_of.push(total); + total += c.len_utf16() as CFIndex; + } + let click_u16 = *u16_of.get(click)?; + + let cf = CFString::new(text); + let range = unsafe { + let locale = CFLocaleCopyCurrent(); + let tok = CFStringTokenizerCreate( + std::ptr::null(), + cf.as_concrete_TypeRef(), + CFRange::init(0, total), + UNIT_WORD_BOUNDARY, + locale, + ); + let token_type = CFStringTokenizerGoToTokenAtIndex(tok, click_u16); + let range = (token_type != 0).then(|| CFStringTokenizerGetCurrentTokenRange(tok)); + CFRelease(tok); + if !locale.is_null() { + CFRelease(locale); + } + range? + }; + if range.location < 0 || range.length <= 0 { + return None; + } + let start = u16_of.binary_search(&range.location).ok()?; + let end = u16_of.partition_point(|&v| v < range.location + range.length) - 1; + (start <= click && click <= end).then_some((start, end)) + } +} + +/// The contiguous run of cells carrying the same OSC 8 hyperlink URI as the +/// clicked cell, following soft wraps in both directions (a long link wraps +/// across rows; stopping at the row edge would truncate the selection). +fn hyperlink_run(term: &Term, click: Point) -> Option<(Point, Point)> { + let grid = term.grid(); + let cols = term.columns(); + if click.column.0 >= cols { + return None; + } + let uri = grid[click.line][click.column] + .hyperlink()? + .uri() + .to_string(); + let same = |p: Point| { + grid[p.line][p.column] + .hyperlink() + .is_some_and(|h| h.uri() == uri) + }; + let wraps = |line: Line| grid[line][Column(cols - 1)].flags.contains(Flags::WRAPLINE); + let top = term.topmost_line(); + let bottom = term.bottommost_line(); + + let mut start = click; + let mut rows = 0; + loop { + let prev = if start.column.0 > 0 { + Point::new(start.line, Column(start.column.0 - 1)) + } else if start.line > top && rows < MAX_WRAP_ROWS && wraps(start.line - 1) { + rows += 1; + Point::new(start.line - 1, Column(cols - 1)) + } else { + break; + }; + if !same(prev) { + break; + } + start = prev; + } + let mut end = click; + rows = 0; + loop { + let next = if end.column.0 + 1 < cols { + Point::new(end.line, Column(end.column.0 + 1)) + } else if end.line < bottom && rows < MAX_WRAP_ROWS && wraps(end.line) { + rows += 1; + Point::new(end.line + 1, Column(0)) + } else { + break; + }; + if !same(next) { + break; + } + end = next; + } + Some((start, end)) +} + +/// Reconstruct the logical (soft-wrap-joined) line containing `click`: +/// the text with wide-char spacers dropped, a per-char grid point, and the +/// char index the click landed on. `None` when the click maps to no char +/// (out-of-bounds column). +fn logical_line_at( + term: &Term, + click: Point, +) -> Option<(String, Vec, usize)> { + let cols = term.columns(); + if click.column.0 >= cols { + return None; + } + let grid = term.grid(); + let last_col = Column(cols - 1); + let wraps = |line: Line| grid[line][last_col].flags.contains(Flags::WRAPLINE); + + let mut start_line = click.line; + let top = term.topmost_line(); + let mut guard = 0; + while start_line > top && guard < MAX_WRAP_ROWS && wraps(start_line - 1) { + start_line -= 1; + guard += 1; + } + let mut end_line = click.line; + let bottom = term.bottommost_line(); + guard = 0; + while end_line < bottom && guard < MAX_WRAP_ROWS && wraps(end_line) { + end_line += 1; + guard += 1; + } + + let mut text = String::new(); + let mut points = Vec::new(); + let mut click_idx = None; + let mut line = start_line; + while line <= end_line { + for col in 0..cols { + let cell = &grid[line][Column(col)]; + let p = Point::new(line, Column(col)); + // Spacer cells pad wide (CJK/emoji) glyphs. A trailing spacer + // follows its wide char; a leading spacer pads the end of a row + // whose wide char wrapped to the next row, so it belongs to the + // *next* pushed char. + if cell.flags.contains(Flags::LEADING_WIDE_CHAR_SPACER) { + if p == click { + click_idx = Some(points.len()); + } + continue; + } + if cell.flags.contains(Flags::WIDE_CHAR_SPACER) { + if p == click && !points.is_empty() { + click_idx = Some(points.len() - 1); + } + continue; + } + if p == click { + click_idx = Some(points.len()); + } + text.push(cell.c); + points.push(p); + } + line += 1; + } + // A leading spacer at the very end of the collected range can point one + // past the last char; treat that as no hit. + let click_idx = click_idx.filter(|&i| i < points.len())?; + Some((text, points, click_idx)) +} + +/// Double-click on a paired delimiter — bracket or quote — selects through +/// its match. `None` when the clicked char is neither, or has no match on +/// the logical line. +pub(super) fn pair_range(chars: &[char], click: usize) -> Option<(usize, usize)> { + bracket_range(chars, click).or_else(|| quote_range(chars, click)) +} + +/// Select through a matching symmetric quote (`'`, `"`, `` ` ``). Open and +/// close are the same char, so direction comes from parity: an even count of +/// that quote before the click means it opens (match forward), odd means it +/// closes (match backward). Apostrophes in prose skew the parity, but a +/// missing match just falls through to `None`. +pub(super) fn quote_range(chars: &[char], click: usize) -> Option<(usize, usize)> { + let q = *chars.get(click)?; + if !SYMMETRIC_QUOTES.contains(&q) { + return None; + } + let before = chars[..click].iter().filter(|&&c| c == q).count(); + if before % 2 == 0 { + let close = (click + 1..chars.len()).find(|&i| chars[i] == q)?; + Some((click, close)) + } else { + let open = (0..click).rev().find(|&i| chars[i] == q)?; + Some((open, click)) + } +} + +/// Select through a matching bracket: `click` on an opener scans forward, +/// on a closer scans backward, nesting-aware. Inclusive char range covering +/// both brackets, or `None` when the clicked char isn't a bracket or the +/// match isn't on the logical line. +pub(super) fn bracket_range(chars: &[char], click: usize) -> Option<(usize, usize)> { + let c = *chars.get(click)?; + if let Some((open, close)) = BRACKET_PAIRS.iter().find(|(o, _)| *o == c) { + let mut depth = 0usize; + for (i, &ch) in chars.iter().enumerate().skip(click) { + if ch == *open { + depth += 1; + } else if ch == *close { + depth -= 1; + if depth == 0 { + return Some((click, i)); + } + } + } + return None; + } + if let Some((open, close)) = BRACKET_PAIRS.iter().find(|(_, c2)| *c2 == c) { + let mut depth = 0usize; + for i in (0..=click).rev() { + let ch = chars[i]; + if ch == *close { + depth += 1; + } else if ch == *open { + depth -= 1; + if depth == 0 { + return Some((i, click)); + } + } + } + } + None +} + +/// Patterns tried in specificity order after the URL detector: email, +/// scientific-notation number, file path, dotted/hyphenated identifier. +/// (URLs go through `search::url_span_at` first — it handles scheme +/// detection, wrapper stripping and trailing-punctuation trimming better +/// than a lone regex.) +fn regexes() -> &'static [Regex] { + static RE: OnceLock> = OnceLock::new(); + RE.get_or_init(|| { + [ + // Email address. + r"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}", + // Scientific notation (6.02e+23). + r"\b[0-9]+(?:\.[0-9]+)?[eE][+-]?[0-9]+\b", + // File path: at least two segments, or ~/.-anchored. + r"[A-Za-z0-9._+@%~-]*(?:/[A-Za-z0-9._+@%~-]+)+/?", + // Identifier chained with `.`/`-` (foo-bar.baz, 10.0.0.1). + // ASCII classes only: the regex crate's `\w` matches Han + // ideographs, which would swallow CJK text glued to a Latin + // word and defeat the script narrowing. + r"[0-9A-Za-z_]+(?:[.-][0-9A-Za-z_]+)*", + ] + .iter() + .map(|p| Regex::new(p).expect("static smart-select regex")) + .collect() + }) +} + +/// Find a semantic object containing char index `click` in `text` that +/// strictly extends the plain word selection the configured `separators` +/// would produce. Inclusive char range, or `None` to keep the stock word. +pub(super) fn smart_range( + text: &str, + chars: &[char], + click: usize, + separators: &str, +) -> Option<(usize, usize)> { + if click >= chars.len() || chars[click].is_whitespace() { + return None; + } + + // The plain word the double-click would select: the run of chars around + // the click that are neither whitespace nor configured separators. + // (Mirrors alacritty's semantic expansion over the same separator set.) + let boundary = |c: char| c.is_whitespace() || separators.contains(c); + let (mut pws, mut pwe) = (click, click); + if !boundary(chars[click]) { + while pws > 0 && !boundary(chars[pws - 1]) { + pws -= 1; + } + while pwe + 1 < chars.len() && !boundary(chars[pwe + 1]) { + pwe += 1; + } + } + // CJK chars/punctuation glue onto Latin runs (`分支name,已` is one + // separator-free run), so the word the user *means* is the same-script + // sub-run around the click. Candidates are judged against that; if + // nothing beats it, the narrowed run itself is the answer. + let (ws, we) = narrow_to_script(chars, click, pws, pwe); + // Applied only when the candidate strictly contains the (narrowed) word, + // so smart select can grow the meant word but never shrink it. + let extends = |s: usize, e: usize| s <= ws && e >= we && (s < ws || e > we); + + if let Some((s, e, _url)) = super::search::url_span_at(text, click) + && extends(s, e) + { + return Some((s, e)); + } + + // Regexes run over a bounded byte window around the click. + let byte_of: Vec = text.char_indices().map(|(b, _)| b).collect(); + let w_start = click.saturating_sub(MATCH_WINDOW); + let w_end = (click + MATCH_WINDOW).min(chars.len() - 1); + let wb_start = byte_of[w_start]; + let wb_end = byte_of[w_end] + chars[w_end].len_utf8(); + let window = &text[wb_start..wb_end]; + let click_byte = byte_of[click] - wb_start; + + for re in regexes() { + let Some(m) = re + .find_iter(window) + .find(|m| m.range().contains(&click_byte)) + else { + continue; + }; + let s = text[..wb_start + m.start()].chars().count(); + let e = text[..wb_start + m.end()].chars().count() - 1; + if extends(s, e) { + return Some((s, e)); + } + } + // No pattern beat the meant word — but if script narrowing shrank the + // raw run (Latin word glued to CJK text), that narrowed word *is* the + // correction. + ((ws, we) != (pws, pwe)).then_some((ws, we)) +} + +/// Shrink the inclusive run `[lo, hi]` to the chars sharing `click`'s script +/// class (CJK vs not) — the sub-run a double-click on mixed-script text +/// means. A no-op on single-script runs. +pub(super) fn narrow_to_script( + chars: &[char], + click: usize, + lo: usize, + hi: usize, +) -> (usize, usize) { + let class = is_cjk(chars[click]); + let mut s = click; + while s > lo && is_cjk(chars[s - 1]) == class { + s -= 1; + } + let mut e = click; + while e < hi && is_cjk(chars[e + 1]) == class { + e += 1; + } + (s, e) +} + +#[cfg(test)] +mod tests { + use super::*; + + /// alacritty's stock separator set, which is also the config default. + const SEPS: &str = ",│`|:\"' ()[]{}<>\t"; + + fn range(text: &str, click: usize) -> Option<(usize, usize)> { + let chars: Vec = text.chars().collect(); + smart_range(text, &chars, click, SEPS) + } + + fn selected(text: &str, click: usize) -> Option { + let chars: Vec = text.chars().collect(); + range(text, click).map(|(s, e)| chars[s..=e].iter().collect()) + } + + #[test] + fn url_expands_past_scheme_colon() { + let text = "fetch https://example.com/a/b?q=1 done"; + // Click inside "example" — the plain word starts after the `:` + // separator; smart select recovers the whole URL. + let click = text.find("example").unwrap(); + assert_eq!( + selected(text, click).as_deref(), + Some("https://example.com/a/b?q=1") + ); + } + + #[test] + fn url_trailing_comma_excluded() { + let text = "see https://a.com/x, then"; + let click = text.find("a.com").unwrap(); + assert_eq!(selected(text, click).as_deref(), Some("https://a.com/x")); + } + + #[test] + fn email_only_fires_when_it_extends_the_word() { + // With the default separators the plain word already covers the whole + // address (`@` and `.` are word chars) — the candidate equals the word + // and must be rejected, keeping the stock selection. + let text = "author:dev@example.com pushed"; + let click = text.find("example").unwrap(); + assert_eq!(range(text, click), None); + // With `@` configured as a separator, the email regex reassembles the + // full address across it. + let chars: Vec = text.chars().collect(); + let got = smart_range(text, &chars, click, ",@:() "); + let (s, e) = got.expect("email should match"); + let sel: String = chars[s..=e].iter().collect(); + assert_eq!(sel, "dev@example.com"); + } + + #[test] + fn plain_word_yields_none() { + let text = "just some words"; + let click = text.find("some").unwrap(); + assert_eq!(range(text, click), None); + } + + #[test] + fn path_across_quote_boundary_stays_plain() { + // The whole path is one plain word already (no separators inside); + // candidates equal to the word are rejected → stock selection. + let text = "cat /usr/local/bin/tool"; + let click = text.find("local").unwrap(); + assert_eq!(range(text, click), None); + } + + #[test] + fn path_glued_to_colon_expands() { + // `error:/tmp/x/y` — the word starts after `:`; the path regex + // must not leak left past the colon but the URL/identifier ones + // must not shrink it either. Path candidate is `/tmp/x/y`, equal + // to the plain word → None. Click on `error` side: word `error`. + let text = "error:/tmp/x/y"; + let click = text.find("tmp").unwrap(); + assert_eq!(range(text, click), None); + } + + #[test] + fn whitespace_click_yields_none() { + assert_eq!(range("a b", 1), None); + } + + #[test] + fn scientific_notation_with_custom_separators() { + // With `.` and `+` configured as separators (finer-grained + // boundaries), the sci-notation regex reassembles the number. + let text = "n = 6.02e+23 mol"; + let chars: Vec = text.chars().collect(); + let click = text.find("02").unwrap(); + let got = smart_range(text, &chars, click, ",.+():"); + let (s, e) = got.expect("sci notation should match"); + let sel: String = chars[s..=e].iter().collect(); + assert_eq!(sel, "6.02e+23"); + } + + #[test] + fn identifier_with_custom_separators() { + // Fine-grained separators split `foo-bar.baz`; the identifier + // regex restores the full dotted chain. + let text = "run foo-bar.baz now"; + let chars: Vec = text.chars().collect(); + let click = text.find("bar").unwrap(); + let got = smart_range(text, &chars, click, ",.-():"); + let (s, e) = got.expect("identifier should match"); + let sel: String = chars[s..=e].iter().collect(); + assert_eq!(sel, "foo-bar.baz"); + } + + #[test] + fn latin_word_glued_directly_to_han_narrows_without_punctuation() { + // No separator or punctuation between the scripts at all — the + // identifier regex must not reassemble the mixed run (`\w` would). + let text = "已合并到main分支"; + let chars: Vec = text.chars().collect(); + let click = chars.iter().position(|&c| c == 'm').unwrap(); + let (s, e) = smart_range(text, &chars, click, SEPS).expect("narrowed word"); + let sel: String = chars[s..=e].iter().collect(); + assert_eq!(sel, "main"); + } + + #[test] + fn latin_word_glued_to_cjk_narrows_to_the_latin_run() { + // `,` and `已` are not separators, so the raw run is + // `worktree-feat-smart-select,已`; the meant word is the Latin part. + let text = "分支 worktree-feat-smart-select,已 rebase"; + let chars: Vec = text.chars().collect(); + let click = chars.iter().position(|&c| c == 'w').unwrap() + 10; + let (s, e) = smart_range(text, &chars, click, SEPS).expect("narrowed word"); + let sel: String = chars[s..=e].iter().collect(); + assert_eq!(sel, "worktree-feat-smart-select"); + } + + #[test] + fn symmetric_quotes_pair_by_parity() { + let chars: Vec = r#"echo 'a,b' "c d" x"#.chars().collect(); + // First ' opens (0 quotes before), second closes. + assert_eq!(quote_range(&chars, 5), Some((5, 9))); + assert_eq!(quote_range(&chars, 9), Some((5, 9))); + // Double quotes pair independently of the single ones. + assert_eq!(quote_range(&chars, 11), Some((11, 15))); + assert_eq!(quote_range(&chars, 15), Some((11, 15))); + // An unmatched opener finds nothing. + let chars: Vec = "say 'oops".chars().collect(); + assert_eq!(quote_range(&chars, 4), None); + // Non-quote chars never match. + assert_eq!(quote_range(&chars, 1), None); + } + + #[test] + fn directional_cjk_quotes_pair_like_brackets() { + let chars: Vec = "他说“你好”了".chars().collect(); + assert_eq!(bracket_range(&chars, 2), Some((2, 5))); + assert_eq!(bracket_range(&chars, 5), Some((2, 5))); + } + + #[test] + fn fullwidth_brackets_pair() { + let chars: Vec = "说(worktree 分支)好".chars().collect(); + let open = chars.iter().position(|&c| c == '(').unwrap(); + let close = chars.iter().position(|&c| c == ')').unwrap(); + assert_eq!(bracket_range(&chars, open), Some((open, close))); + assert_eq!(bracket_range(&chars, close), Some((open, close))); + let chars: Vec = "书名《三体》完".chars().collect(); + assert_eq!(bracket_range(&chars, 2), Some((2, 5))); + } + + #[test] + fn bracket_forward_and_backward_with_nesting() { + let chars: Vec = "f(a(b)c) x".chars().collect(); + assert_eq!(bracket_range(&chars, 1), Some((1, 7))); + assert_eq!(bracket_range(&chars, 7), Some((1, 7))); + assert_eq!(bracket_range(&chars, 3), Some((3, 5))); + assert_eq!(bracket_range(&chars, 0), None); + } + + #[test] + fn unmatched_bracket_yields_none() { + let chars: Vec = "f(a".chars().collect(); + assert_eq!(bracket_range(&chars, 1), None); + } + + #[test] + fn cjk_segmentation_selects_a_dictionary_word_not_the_whole_run() { + let text = "run 北京欢迎你 done"; + let chars: Vec = text.chars().collect(); + let click = chars.iter().position(|&c| c == '京').unwrap(); + let (s, e) = cjk_word_range(text, click).expect("segmented range"); + let sel: String = chars[s..=e].iter().collect(); + assert_eq!(sel, "北京"); + } + + #[test] + fn cjk_segmentation_survives_surrogate_pairs_before_the_click() { + // The emoji before the run must not skew the char↔offset mapping. + let text = "🙂 你好世界"; + let chars: Vec = text.chars().collect(); + let click = chars.iter().position(|&c| c == '好').unwrap(); + let (s, e) = cjk_word_range(text, click).expect("segmented range"); + let sel: String = chars[s..=e].iter().collect(); + assert_eq!(sel, "你好"); + } + + #[test] + fn cjk_punctuation_is_its_own_token() { + let text = "比赛,天气"; + let chars: Vec = text.chars().collect(); + let click = chars.iter().position(|&c| c == ',').unwrap(); + let (s, e) = cjk_word_range(text, click).expect("segmented range"); + let sel: String = chars[s..=e].iter().collect(); + assert_eq!(sel, ","); + } + + #[test] + fn is_cjk_covers_han_kana_hangul_fullwidth() { + for c in ['中', 'あ', 'ア', '한', ',', '('] { + assert!(is_cjk(c), "{c} should be CJK"); + } + for c in ['a', '1', '-', '/', 'é'] { + assert!(!is_cjk(c), "{c} should not be CJK"); + } + } +} diff --git a/src/terminal/view.rs b/src/terminal/view.rs index 7bf44e45..8e047cd5 100644 --- a/src/terminal/view.rs +++ b/src/terminal/view.rs @@ -711,6 +711,9 @@ impl TerminalView { window: &mut Window, cx: &mut Context, ) -> anyhow::Result { + // Build the CJK segmentation dictionary off-thread now, so the first + // double-click on Chinese text doesn't pay the ~0.5s table build. + super::smart_select::warm(); // Provisional size; corrected on the first prepaint once we can measure. // The PTY lives in the daemon now. On session restore (`restore_pane`), // re-`attach` to the still-running pane so its process + scrollback come @@ -2849,7 +2852,8 @@ impl TerminalView { self.editor_drag_word = None; } 2 => { - self.cmd.select_word_at(idx); + let seps = &cx.global::().word_separators; + self.cmd.select_word_at(idx, seps); // Drag now grows the selection by whole words around this one. self.editor_selecting = true; self.editor_drag_word = self.cmd.selection(); @@ -2880,7 +2884,8 @@ impl TerminalView { }; // A drag begun on a double-click extends by whole words; otherwise by char. if let Some((s, e)) = self.editor_drag_word { - self.cmd.extend_word_to(s, e, idx); + let seps = &cx.global::().word_separators; + self.cmd.extend_word_to(s, e, idx, seps); } else { self.cmd.extend_to(idx); } @@ -3637,18 +3642,51 @@ impl TerminalView { row: usize, left: bool, clicks: usize, + shift: bool, cx: &mut Context, ) { + let smart = cx.global::().smart_select; let mut term = self.terminal.term.lock(); let display_offset = term.grid().display_offset() as i32; let point = Point::new(Line(row as i32 - display_offset), Column(col)); let side = if left { Side::Left } else { Side::Right }; + // Shift+click extends the existing selection to the click instead of + // starting over (à la iTerm2). A plain click always leaves a + // collapsed Simple selection behind, so the anchor is wherever the + // last gesture ended. + if shift && clicks == 1 && term.selection.is_some() { + if let Some(sel) = term.selection.as_mut() { + sel.update(point, side); + } + drop(term); + self.selecting = true; + cx.notify(); + return; + } let ty = match clicks { 2 => SelectionType::Semantic, // word n if n >= 3 => SelectionType::Lines, _ => SelectionType::Simple, }; - term.selection = Some(Selection::new(ty, point, side)); + let mut selection = Selection::new(ty, point, side); + // Double-click smart selection: a URL / path / email / bracket pair / + // CJK word containing the clicked word replaces the plain word span. + // Boundary-flanked candidates anchor a Semantic selection (keeping + // the drag gesture word-wise); exact ones use Simple so alacritty + // can't re-expand the endpoints past the smart boundary. + if clicks == 2 + && smart + && let Some(r) = super::smart_select::grid_smart_range(&term, point) + { + let ty = if r.exact { + SelectionType::Simple + } else { + SelectionType::Semantic + }; + selection = Selection::new(ty, r.start, Side::Left); + selection.update(r.end, Side::Right); + } + term.selection = Some(selection); drop(term); self.selecting = true; cx.notify(); @@ -6908,7 +6946,7 @@ mod gpui_tests { let drag_hello = |cx: &mut TestAppContext| { window .update(cx, |view, _, cx| { - view.on_select_start(0, 0, true, 1, cx); + view.on_select_start(0, 0, true, 1, false, cx); view.on_select_update(4, 0, false, cx); view.on_select_end(cx); }) @@ -6973,7 +7011,7 @@ mod gpui_tests { .update(cx, |view, window, cx| { // Mouse-select "hello" (copy-on-select is off by default, so // the selection survives mouse-up). - view.on_select_start(0, 0, true, 1, cx); + view.on_select_start(0, 0, true, 1, false, cx); view.on_select_update(4, 0, false, cx); view.on_select_end(cx); assert!(view.has_selection(), "the drag must leave a selection"); diff --git a/src/ui/app.rs b/src/ui/app.rs index a4fb4435..c9b7ad0c 100644 --- a/src/ui/app.rs +++ b/src/ui/app.rs @@ -1992,6 +1992,10 @@ impl Tty7App { self.update_config(cx, |cfg| cfg.copy_on_select = on); } + pub(crate) fn set_smart_select(&mut self, on: bool, cx: &mut Context) { + self.update_config(cx, |cfg| cfg.smart_select = on); + } + pub(crate) fn set_startup_mode( &mut self, mode: crate::core::config::StartupMode, diff --git a/src/ui/settings.rs b/src/ui/settings.rs index 02ad4ae3..1e237067 100644 --- a/src/ui/settings.rs +++ b/src/ui/settings.rs @@ -177,6 +177,11 @@ fn settings_search_entries() -> &'static [SearchEntry] { title: "Forward SSH loopback links", keywords: "ssh remote port tunnel localhost forward", }, + SearchEntry { + section: Terminal, + title: "Smart selection", + keywords: "double click word url path select semantic", + }, SearchEntry { section: Terminal, title: "Copy on select", @@ -2763,6 +2768,7 @@ impl Tty7App { let clip_trim = cfg.clipboard_trim_trailing_spaces; let copy_on_select = cfg.copy_on_select; let mouse_reporting = cfg.mouse_reporting; + let smart_select = cfg.smart_select; let bell = cfg.bell; // Map the persisted threshold onto its preset radio index (nearest slot // for any off-preset value a hand-edit might leave). @@ -2848,6 +2854,10 @@ impl Tty7App { .checked(mouse_reporting) .on_click(cx.listener(|this, on: &bool, _w, cx| this.set_mouse_reporting(*on, cx))) .into_any_element(); + let smart_select_switch = Switch::new("term-smart-select") + .checked(smart_select) + .on_click(cx.listener(|this, on: &bool, _w, cx| this.set_smart_select(*on, cx))) + .into_any_element(); let bell_idx = match bell { BellMode::None => 0, BellMode::Visual => 1, @@ -2948,6 +2958,12 @@ impl Tty7App { mouse_report_switch, cx, )) + .child(self.settings_row( + "Smart selection", + "Double-click selects the whole URL, file path, email, or bracket pair under the cursor.", + smart_select_switch, + cx, + )) .when_some(option_alt_row, |v, row| { v.child(self.section_rule(cx)) .child(self.section_header("Keyboard", cx)) From ceb303aa6ccee23096342eb30978dd93aa32334d Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Sat, 18 Jul 2026 21:41:58 +0800 Subject: [PATCH 13/53] fix(terminal): prefer the OS tokenizer over jieba for CJK selection jieba's dictionary costs ~55 MB resident and ~130 ms to build, and it was built eagerly on every terminal-view creation regardless of the `smart_select` setting or whether the user ever selects CJK text. macOS already ships a Chinese lexicon in CFStringTokenizer that matches jieba on most prose, is locale-independent (identical output for current / NULL / zh_CN / en_US), and segments Japanese and Korean properly where jieba shreds them into single characters. Make the OS tokenizer the primary path and keep jieba only as the fallback for platforms with no such API: - gate the dependency behind `cfg(not(target_os = "macos"))` so the embedded dictionary isn't even linked into the macOS build - never warm eagerly; the first CJK double-click kicks the build off in the background and settles for the unsegmented run, so the UI thread never blocks on it - skip jieba for runs containing kana or hangul, where selecting the whole run beats per-character tokens Also honor `Config::smart_select` in the prompt's command editor, which did bracket pairing, CJK segmentation and mixed-script narrowing even with the Settings toggle off. --- Cargo.toml | 17 +++-- src/terminal/cmd_editor.rs | 53 ++++++++------ src/terminal/smart_select.rs | 133 ++++++++++++++++++++++++----------- src/terminal/view.rs | 13 ++-- 4 files changed, 140 insertions(+), 76 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 20b739d5..89c0ed7f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,10 +24,6 @@ log.workspace = true # Smart double-click selection patterns (URL/email/path). Already in the tree # transitively, so pinning it here adds no new native code. regex = "1" -# Dictionary-based Chinese word segmentation for double-click selection -# (`terminal::smart_select`). The default dict ships deflate-compressed inside -# the binary (~1.8 MB); the table is built lazily on a background thread. -jieba-rs = "0.10" smol.workspace = true smallvec.workspace = true serde = { workspace = true } @@ -179,7 +175,8 @@ winresource = "0.1" # so the native traffic-light buttons render in the right light/dark style. [target.'cfg(target_os = "macos")'.dependencies] # CFStringTokenizer FFI for dictionary-based CJK word segmentation on -# double-click (`terminal::smart_select`). Already in the tree transitively. +# double-click (`terminal::smart_select`). Already in the tree transitively, +# and it makes jieba unnecessary here — see the non-macos section below. core-foundation = "0.10" objc2 = "0.6" objc2-app-kit = { version = "0.3", features = ["NSApplication", "NSResponder", "NSAppearance", "NSGraphics", "NSImage"] } @@ -187,6 +184,16 @@ objc2-app-kit = { version = "0.3", features = ["NSApplication", "NSResponder", " # `set_dock_icon_for_bare_binary` in main.rs. objc2-foundation = { version = "0.3", features = ["NSData"] } +# Dictionary-based Chinese word segmentation for double-click selection +# (`terminal::smart_select`), as a *fallback* where the OS has no tokenizer of +# its own. macOS is excluded on purpose: CFStringTokenizer segments Chinese +# about as well (and Japanese/Korean far better) at zero cost, while jieba's +# table costs ~55 MB resident once built and ~2 MB of binary for the embedded +# dictionary. Keeping the dep off macOS means that dictionary isn't even +# linked into the build that can't use it. +[target.'cfg(not(target_os = "macos"))'.dependencies] +jieba-rs = "0.10" + # x11/wayland are the Linux windowing backends; only pull them on Linux. The # Windows backend (`gpui_windows`) and macOS backend are selected by gpui_platform # itself via `cfg`, so no feature is needed for them. diff --git a/src/terminal/cmd_editor.rs b/src/terminal/cmd_editor.rs index ec551f8a..971bf46f 100644 --- a/src/terminal/cmd_editor.rs +++ b/src/terminal/cmd_editor.rs @@ -228,8 +228,15 @@ impl CmdEditor { /// selection). A separator char is its own one-char word, matching the /// grid; on whitespace the run collapses and the leftward walk snaps to /// the previous word's start. - pub fn word_bounds(&self, idx: usize, separators: &str) -> (usize, usize) { + /// + /// `smart` mirrors `Config::smart_select`: with it off this is exactly + /// [`Self::plain_word_bounds`], so the Settings toggle governs the prompt + /// editor and the grid alike. + pub fn word_bounds(&self, idx: usize, separators: &str, smart: bool) -> (usize, usize) { let idx = idx.min(self.chars.len()); + if !smart { + return self.plain_word_bounds(idx, separators, smart); + } // A bracket or quote selects through its match, same as the grid. // Checked before CJK segmentation so full-width `()`/`“”` pair // instead of being segmented as lone punctuation tokens. Only for @@ -238,9 +245,8 @@ impl CmdEditor { if let Some((s, e)) = super::smart_select::pair_range(&self.chars, idx) { return (s, e + 1); } - // CJK prose has no separators between words: segment it (jieba for - // Chinese, the OS tokenizer for Kana/Hangul on macOS) instead of - // selecting the whole unbroken run. + // CJK prose has no separators between words: segment it with the + // platform dictionary instead of selecting the whole unbroken run. if let Some(&c) = self.chars.get(idx) && super::smart_select::is_cjk(c) { @@ -249,13 +255,15 @@ impl CmdEditor { return (s, e + 1); } } - self.plain_word_bounds(idx, separators) + self.plain_word_bounds(idx, separators, smart) } /// [`Self::word_bounds`] without the pair/segmentation smarts: the plain /// separator-walk word. Used for word-granular drags, where pair matching /// would make the selection jump around as the pointer crosses a quote. - fn plain_word_bounds(&self, idx: usize, separators: &str) -> (usize, usize) { + /// `smart` still governs the mixed-script narrowing, so a drag matches + /// what the double-click that started it selected. + fn plain_word_bounds(&self, idx: usize, separators: &str, smart: bool) -> (usize, usize) { let idx = idx.min(self.chars.len()); if let Some(&c) = self.chars.get(idx) && !c.is_whitespace() @@ -274,7 +282,7 @@ impl CmdEditor { } // Mixed-script runs (a Latin word glued to CJK text) shrink to the // clicked char's script class — same correction as the grid's. - if idx < e { + if smart && idx < e { let (ns, ne) = super::smart_select::narrow_to_script(&self.chars, idx, s, e - 1); return (ns, ne + 1); } @@ -282,8 +290,8 @@ impl CmdEditor { } /// Select the word containing char index `idx` (see [`Self::word_bounds`]). - pub fn select_word_at(&mut self, idx: usize, separators: &str) { - let (s, e) = self.word_bounds(idx, separators); + pub fn select_word_at(&mut self, idx: usize, separators: &str, smart: bool) { + let (s, e) = self.word_bounds(idx, separators, smart); self.anchor = Some(s); self.cursor = e; } @@ -299,8 +307,9 @@ impl CmdEditor { anchor_end: usize, idx: usize, separators: &str, + smart: bool, ) { - let (ws, we) = self.plain_word_bounds(idx.min(self.chars.len()), separators); + let (ws, we) = self.plain_word_bounds(idx.min(self.chars.len()), separators, smart); if we >= anchor_end { self.anchor = Some(anchor_start); self.cursor = we; @@ -629,7 +638,7 @@ mod tests { #[test] fn select_word_and_all() { let mut e = ed("git push origin", 6); - e.select_word_at(6, SEPS); // cursor on "push" + e.select_word_at(6, SEPS, true); // cursor on "push" assert_eq!(e.selected_text().as_deref(), Some("push")); e.select_all(); assert_eq!(e.selection(), Some((0, 15))); @@ -639,15 +648,15 @@ mod tests { fn select_word_stops_at_separators() { // Quotes and commas bound a word; a separator char is its own word. let mut e = ed("echo 'a,b'", 0); - e.select_word_at(6, SEPS); // on "a" + e.select_word_at(6, SEPS, true); // on "a" assert_eq!(e.selected_text().as_deref(), Some("a")); - e.select_word_at(7, SEPS); // on the comma itself + e.select_word_at(7, SEPS, true); // on the comma itself assert_eq!(e.selected_text().as_deref(), Some(",")); - e.select_word_at(5, SEPS); // on the opening quote: pairs to the close + e.select_word_at(5, SEPS, true); // on the opening quote: pairs to the close assert_eq!(e.selected_text().as_deref(), Some("'a,b'")); // `/ . - _ =` are not separators: a path stays one word. let mut e = ed("cat ./a-b/c_d.txt", 0); - e.select_word_at(8, SEPS); + e.select_word_at(8, SEPS, true); assert_eq!(e.selected_text().as_deref(), Some("./a-b/c_d.txt")); } @@ -664,20 +673,20 @@ mod tests { fn extend_word_to_grows_by_whole_words_both_directions() { // Double-click "push" (chars 4..8), then drag over later/earlier words. let mut e = ed("git push origin main", 4); - e.select_word_at(6, SEPS); + e.select_word_at(6, SEPS, true); let (s, a) = e.selection().unwrap(); // (4, 8) == "push" assert_eq!((s, a), (4, 8)); // Drag forward into "origin": selection reaches that word's far edge. - e.extend_word_to(s, a, 10, SEPS); + e.extend_word_to(s, a, 10, SEPS, true); assert_eq!(e.selected_text().as_deref(), Some("push origin")); // Drag on into "main": grows to its end. - e.extend_word_to(s, a, 18, SEPS); + e.extend_word_to(s, a, 18, SEPS, true); assert_eq!(e.selected_text().as_deref(), Some("push origin main")); // Drag backward before the anchor word into "git": anchor flips to the // word's far edge, selection covers "git push". - e.extend_word_to(s, a, 1, SEPS); + e.extend_word_to(s, a, 1, SEPS, true); assert_eq!(e.selected_text().as_deref(), Some("git push")); } @@ -742,15 +751,15 @@ mod tests { // that word — the same left-scan that makes a double-click at the end // of the line select the last word. let mut e = ed("ab cd", 0); - e.select_word_at(2, SEPS); // the space between the words + e.select_word_at(2, SEPS, true); // the space between the words assert_eq!(e.selected_text().as_deref(), Some("ab")); // Index at/past the end selects the trailing word, clamped. - e.select_word_at(99, SEPS); + e.select_word_at(99, SEPS, true); assert_eq!(e.selected_text().as_deref(), Some("cd")); // On a gap wider than one cell there is no adjacent word to the left of // the clicked cell: the empty range collapses to no selection. let mut e = ed("ab cd", 0); - e.select_word_at(3, SEPS); // second space: both neighbours are whitespace + e.select_word_at(3, SEPS, true); // second space: both neighbours are whitespace assert_eq!(e.selection(), None); } diff --git a/src/terminal/smart_select.rs b/src/terminal/smart_select.rs index 14968390..291ba194 100644 --- a/src/terminal/smart_select.rs +++ b/src/terminal/smart_select.rs @@ -101,8 +101,8 @@ pub(super) fn grid_smart_range( } // 3) CJK prose has no separators to walk — the whole clause is one run — - // so segment it with the OS tokenizer (dictionary-based on macOS) - // instead of selecting the entire unbroken run. + // so segment it with a dictionary instead of selecting the entire + // unbroken run. No segmenter available means the run stands as-is. if is_cjk(chars[click_idx]) && let Some((s, e)) = cjk_word_range(&text, click_idx) { @@ -129,29 +129,34 @@ pub(super) fn is_cjk(c: char) -> bool { ) } -/// Whether the char routes to jieba: Han ideographs and CJK punctuation, -/// where jieba's Chinese dictionary beats the system tokenizer. Kana and -/// Hangul stay with the platform tokenizer (jieba has no Japanese/Korean -/// dictionary and would return the whole run). -fn prefers_jieba(c: char) -> bool { +/// Kana or Hangul — the scripts jieba has no dictionary for. A run holding +/// either is left unsegmented rather than handed to jieba, which shreds it +/// into single characters (`です` → `で` `す`); selecting the whole run is the +/// friendlier failure. +#[cfg(not(target_os = "macos"))] +fn is_kana_or_hangul(c: char) -> bool { matches!( u32::from(c), - 0x3400..=0x9FFF // Han ideographs (unified + ext A) - | 0xF900..=0xFAFF // compatibility ideographs - | 0x20000..=0x3134F // ideograph extensions - | 0x3000..=0x303F // CJK punctuation - | 0xFF00..=0xFFEF // full-width forms + 0x1100..=0x11FF // Hangul Jamo + | 0x3040..=0x30FF // Hiragana + Katakana + | 0x31F0..=0x31FF // Katakana phonetic extensions + | 0xA960..=0xA97F // Hangul Jamo Extended-A + | 0xAC00..=0xD7FF // Hangul syllables + Jamo Extended-B + | 0xFF66..=0xFF9F // half-width Katakana ) } -/// The jieba segmenter, built once. Building the 350k-entry table takes a -/// few hundred ms, hence [`warm`] to move that off the first double-click. -static JIEBA: std::sync::OnceLock = std::sync::OnceLock::new(); +/// The jieba segmenter, built once on a background thread. The table costs +/// ~55 MB resident and ~130 ms to build, so it is constructed only if a CJK +/// double-click actually happens — see [`jieba_word_range`]. +#[cfg(not(target_os = "macos"))] +static JIEBA: OnceLock = OnceLock::new(); /// Kick off dictionary construction on a background thread (idempotent). -/// Called when a terminal view is created, so the table is ready long before -/// the first CJK double-click; a click that races it just blocks briefly. -pub(crate) fn warm() { +/// Never called eagerly: the first CJK double-click triggers it and settles +/// for the unsegmented run, so the UI thread never blocks on the build. +#[cfg(not(target_os = "macos"))] +fn warm() { static ONCE: std::sync::Once = std::sync::Once::new(); ONCE.call_once(|| { std::thread::spawn(|| { @@ -160,28 +165,30 @@ pub(crate) fn warm() { }); } -/// Dictionary-based word bounds for CJK text: the inclusive char range of -/// the word containing char index `click`. Chinese goes through jieba (full -/// dictionary, all platforms); Kana/Hangul fall back to the platform -/// tokenizer (CFStringTokenizer on macOS), and elsewhere the caller keeps -/// the whole run. +/// Dictionary-based word bounds for CJK text: the inclusive char range of the +/// word containing char index `click`, or `None` to keep the whole run. +/// +/// The OS tokenizer wins wherever there is one. macOS's CFStringTokenizer +/// carries a Chinese lexicon that matches jieba on most prose, is locale- +/// independent, handles Japanese and Korean properly, and costs nothing — +/// jieba is only worth its ~55 MB on platforms with no such API. pub(super) fn cjk_word_range(text: &str, click: usize) -> Option<(usize, usize)> { - let chars: Vec = text.chars().collect(); - let c = *chars.get(click)?; - if prefers_jieba(c) - && let Some(r) = jieba_word_range(&chars, click) - { - return Some(r); - } #[cfg(target_os = "macos")] - if let Some(r) = tokenizer::word_range(text, click) { - return Some(r); + { + tokenizer::word_range(text, click) + } + #[cfg(not(target_os = "macos"))] + { + let chars: Vec = text.chars().collect(); + chars.get(click)?; + jieba_word_range(&chars, click) } - None } /// Segment the contiguous CJK run around `click` with jieba and return the -/// token containing it. +/// token containing it. `None` — meaning "select the whole run" — when the +/// dictionary isn't built yet or the run isn't Chinese. +#[cfg(not(target_os = "macos"))] fn jieba_word_range(chars: &[char], click: usize) -> Option<(usize, usize)> { let mut rs = click; while rs > 0 && is_cjk(chars[rs - 1]) { @@ -191,8 +198,19 @@ fn jieba_word_range(chars: &[char], click: usize) -> Option<(usize, usize)> { while re + 1 < chars.len() && is_cjk(chars[re + 1]) { re += 1; } + // Japanese/Korean: jieba's Chinese dictionary would cut the run into + // single characters, which is worse than not segmenting at all. + if chars[rs..=re].iter().copied().any(is_kana_or_hangul) { + return None; + } + // Building the table takes ~130 ms — far too long to hold the UI thread + // on a click. Start it in the background and let this one click select + // the whole run; every later click finds the table ready. + let Some(jieba) = JIEBA.get() else { + warm(); + return None; + }; let run: String = chars[rs..=re].iter().collect(); - let jieba = JIEBA.get_or_init(jieba_rs::Jieba::new); // Token start/end are Unicode char offsets into `run`. let rel = click - rs; jieba @@ -588,6 +606,14 @@ mod tests { /// alacritty's stock separator set, which is also the config default. const SEPS: &str = ",│`|:\"' ()[]{}<>\t"; + /// In production the jieba table builds lazily off-thread and the racing + /// click settles for the whole run; tests want it ready up front. No-op on + /// macOS, where CFStringTokenizer needs no warm-up. + fn ensure_segmenter() { + #[cfg(not(target_os = "macos"))] + let _ = JIEBA.get_or_init(jieba_rs::Jieba::new); + } + fn range(text: &str, click: usize) -> Option<(usize, usize)> { let chars: Vec = text.chars().collect(); smart_range(text, &chars, click, SEPS) @@ -767,6 +793,7 @@ mod tests { #[test] fn cjk_segmentation_selects_a_dictionary_word_not_the_whole_run() { + ensure_segmenter(); let text = "run 北京欢迎你 done"; let chars: Vec = text.chars().collect(); let click = chars.iter().position(|&c| c == '京').unwrap(); @@ -777,17 +804,22 @@ mod tests { #[test] fn cjk_segmentation_survives_surrogate_pairs_before_the_click() { - // The emoji before the run must not skew the char↔offset mapping. - let text = "🙂 你好世界"; - let chars: Vec = text.chars().collect(); - let click = chars.iter().position(|&c| c == '好').unwrap(); - let (s, e) = cjk_word_range(text, click).expect("segmented range"); - let sel: String = chars[s..=e].iter().collect(); - assert_eq!(sel, "你好"); + // The emoji is two UTF-16 units: a tokenizer offset table that counted + // chars instead would shift every index after it. Both backends agree + // on `世界`, so a skewed mapping shows up as a different token. + ensure_segmenter(); + for text in ["你好世界", "🙂 你好世界", "🙂🙂🙂 你好世界"] { + let chars: Vec = text.chars().collect(); + let click = chars.iter().position(|&c| c == '世').unwrap(); + let (s, e) = cjk_word_range(text, click).expect("segmented range"); + let sel: String = chars[s..=e].iter().collect(); + assert_eq!(sel, "世界", "{text:?} segmented wrong"); + } } #[test] fn cjk_punctuation_is_its_own_token() { + ensure_segmenter(); let text = "比赛,天气"; let chars: Vec = text.chars().collect(); let click = chars.iter().position(|&c| c == ',').unwrap(); @@ -796,6 +828,23 @@ mod tests { assert_eq!(sel, ","); } + /// Japanese must not be run through jieba's Chinese dictionary — it cuts + /// kana into single characters, which is worse than leaving the run whole. + /// macOS hands it to CFStringTokenizer, which segments it properly. + #[test] + fn japanese_is_not_shredded_into_single_kana() { + ensure_segmenter(); + let text = "日本語の文章です"; + let chars: Vec = text.chars().collect(); + let click = chars.iter().position(|&c| c == 'で').unwrap(); + // macOS yields a real token, never a lone kana; elsewhere the run + // comes back unsegmented and the caller selects all of it. + if let Some((s, e)) = cjk_word_range(text, click) { + let sel: String = chars[s..=e].iter().collect(); + assert_eq!(sel, "です"); + } + } + #[test] fn is_cjk_covers_han_kana_hangul_fullwidth() { for c in ['中', 'あ', 'ア', '한', ',', '('] { diff --git a/src/terminal/view.rs b/src/terminal/view.rs index 8e047cd5..2fc21a5f 100644 --- a/src/terminal/view.rs +++ b/src/terminal/view.rs @@ -711,9 +711,6 @@ impl TerminalView { window: &mut Window, cx: &mut Context, ) -> anyhow::Result { - // Build the CJK segmentation dictionary off-thread now, so the first - // double-click on Chinese text doesn't pay the ~0.5s table build. - super::smart_select::warm(); // Provisional size; corrected on the first prepaint once we can measure. // The PTY lives in the daemon now. On session restore (`restore_pane`), // re-`attach` to the still-running pane so its process + scrollback come @@ -2852,8 +2849,9 @@ impl TerminalView { self.editor_drag_word = None; } 2 => { - let seps = &cx.global::().word_separators; - self.cmd.select_word_at(idx, seps); + let cfg = cx.global::(); + let (seps, smart) = (cfg.word_separators.clone(), cfg.smart_select); + self.cmd.select_word_at(idx, &seps, smart); // Drag now grows the selection by whole words around this one. self.editor_selecting = true; self.editor_drag_word = self.cmd.selection(); @@ -2884,8 +2882,9 @@ impl TerminalView { }; // A drag begun on a double-click extends by whole words; otherwise by char. if let Some((s, e)) = self.editor_drag_word { - let seps = &cx.global::().word_separators; - self.cmd.extend_word_to(s, e, idx, seps); + let cfg = cx.global::(); + let (seps, smart) = (cfg.word_separators.clone(), cfg.smart_select); + self.cmd.extend_word_to(s, e, idx, &seps, smart); } else { self.cmd.extend_to(idx); } From 142a4f109c9912f7205fa53aa9d83460282cc26c Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Sat, 18 Jul 2026 21:50:56 +0800 Subject: [PATCH 14/53] test(terminal): cover the grid side of smart selection MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The existing tests all drove the pure string helpers; the grid path — where the index arithmetic is actually hard — had none. Add tests that feed a real `Term` through the VT parser and assert on the resolved selection: - OSC 8 hyperlink runs, including one spilling across a soft wrap in both directions, and a cell outside the run not picking the link up - a URL split by a soft wrap, clicked from the head (joins forwards) and from the continuation row (joins backwards) - wide CJK glyphs, where clicking the glyph cell and its trailing spacer must resolve to the same word, plus a glyph pushed onto the next row by a leading spacer - a click past the last column resolving to no range Verified by mutation: breaking the trailing-spacer offset, the hyperlink wrap walk, or the logical-line backward join each turns one of these red. --- src/terminal/smart_select.rs | 144 +++++++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) diff --git a/src/terminal/smart_select.rs b/src/terminal/smart_select.rs index 291ba194..9e2a66a4 100644 --- a/src/terminal/smart_select.rs +++ b/src/terminal/smart_select.rs @@ -602,6 +602,7 @@ pub(super) fn narrow_to_script( #[cfg(test)] mod tests { use super::*; + use alacritty_terminal::event::VoidListener; /// alacritty's stock separator set, which is also the config default. const SEPS: &str = ",│`|:\"' ()[]{}<>\t"; @@ -619,6 +620,149 @@ mod tests { smart_range(text, &chars, click, SEPS) } + // ---- Grid-level tests ---- + // + // The functions above operate on a plain `&str`; everything below drives a + // real `Term` through the VT parser instead, because the grid is where the + // index arithmetic actually gets hard: wide CJK glyphs occupy two cells + // (the second a spacer), soft-wrapped rows have to be stitched back into + // one logical line, and OSC 8 runs can straddle both. + + /// A `cols`×`rows` terminal with `input` fed through the VT parser, so the + /// grid holds exactly what a PTY would have produced. + fn term_with(cols: usize, rows: usize, input: &str) -> Term { + let config = alacritty_terminal::term::Config { + semantic_escape_chars: SEPS.to_string(), + ..Default::default() + }; + let mut term = Term::new( + config, + &crate::terminal::size::TermSize::new(cols, rows), + VoidListener, + ); + let mut parser: alacritty_terminal::vte::ansi::Processor = + alacritty_terminal::vte::ansi::Processor::new(); + parser.advance(&mut term, input.as_bytes()); + term + } + + /// The text a double-click at `(line, col)` would select, or `None` when + /// no smart candidate applies and the caller keeps the stock word. + fn grid_select(term: &Term, line: i32, col: usize) -> Option { + let r = grid_smart_range(term, Point::new(Line(line), Column(col)))?; + Some(term.bounds_to_string(r.start, r.end)) + } + + /// Column of the first occurrence of `needle` on row 0 — keeps the tests + /// from hard-coding offsets that shift when the fixture text changes. + fn col_of(row: &str, needle: &str) -> usize { + row.find(needle).expect("needle in fixture") + } + + #[test] + fn osc8_hyperlink_selects_the_declared_extent_not_the_visible_word() { + // The link text has a space in it: only the OSC 8 run knows where the + // link really ends, which is the whole point of checking it first. + let term = term_with( + 40, + 3, + "go \x1b]8;;https://example.com/x\x1b\\click here\x1b]8;;\x1b\\ now", + ); + let line = "go click here now"; + assert_eq!( + grid_select(&term, 0, col_of(line, "here")).as_deref(), + Some("click here"), + ); + // A cell outside the run must not pick the link up. + assert_ne!( + grid_select(&term, 0, col_of(line, "now")).as_deref(), + Some("click here"), + ); + } + + #[test] + fn osc8_hyperlink_follows_a_soft_wrap() { + // 30 chars of link text in 20 columns: the run fills row 0 and spills + // 10 cells onto row 1. Stopping at the row edge would truncate the + // selection to the visible first half. + let term = term_with( + 20, + 4, + "\x1b]8;;https://e.com\x1b\\aaaaaaaaaabbbbbbbbbbcccccccccc\x1b]8;;\x1b\\", + ); + let whole = "aaaaaaaaaabbbbbbbbbbcccccccccc"; + // Click on the wrapped remainder (row 1) — walks backwards over the wrap. + assert_eq!(grid_select(&term, 1, 2).as_deref(), Some(whole)); + // ...and from the first row, walking forwards over it. + assert_eq!(grid_select(&term, 0, 3).as_deref(), Some(whole)); + } + + #[test] + fn soft_wrapped_url_is_stitched_back_into_one_selection() { + // No OSC 8 here — the URL is recovered from the joined logical line, + // so this exercises `logical_line_at`'s wrap walk rather than the + // hyperlink path. + let term = term_with(20, 4, "see https://example.com/deep/path here"); + let whole = "https://example.com/deep/path"; + // Row 0 holds "see https://example.", row 1 the "com/deep/path here" + // remainder. Clicking the head joins forwards over the wrap... + assert_eq!( + grid_select(&term, 0, col_of("see https://example", "example")).as_deref(), + Some(whole), + ); + // ...and clicking the tail joins backwards, which is the direction a + // click on a continuation row depends on entirely. + assert_eq!( + grid_select(&term, 1, col_of("com/deep/path here", "deep")).as_deref(), + Some(whole), + ); + } + + #[test] + fn wide_glyph_and_its_spacer_resolve_to_the_same_word() { + // Each Han char occupies two cells; the second carries WIDE_CHAR_SPACER + // and has no `c` of its own. Clicking either half must select the same + // segmented word — an off-by-one in the spacer branch shows up here. + ensure_segmenter(); + let term = term_with(40, 3, "run 北京欢迎你 done"); + // "run " is 4 cells, then 北 at col 4 (spacer at 5), 京 at 6 (spacer 7). + let expected = grid_select(&term, 0, 4); + assert_eq!(expected.as_deref(), Some("北京"), "click on 北"); + assert_eq!( + grid_select(&term, 0, 5).as_deref(), + expected.as_deref(), + "spacer of 北" + ); + assert_eq!( + grid_select(&term, 0, 6).as_deref(), + Some("北京"), + "click on 京" + ); + assert_eq!( + grid_select(&term, 0, 7).as_deref(), + Some("北京"), + "spacer of 京" + ); + } + + #[test] + fn wide_glyph_wrapping_to_the_next_row_keeps_its_word_intact() { + // An odd column count leaves one cell at the end of the row: the wide + // char can't fit, so alacritty pads with LEADING_WIDE_CHAR_SPACER and + // moves the glyph to the next row. The logical line must still join. + ensure_segmenter(); + let term = term_with(9, 4, "abcdefgh北京欢迎你"); + // 北 is pushed to row 1 col 0 by the leading spacer at row 0 col 8. + assert_eq!(grid_select(&term, 1, 0).as_deref(), Some("北京")); + } + + #[test] + fn click_past_the_last_column_yields_no_range() { + let term = term_with(10, 2, "hello"); + assert!(grid_smart_range(&term, Point::new(Line(0), Column(10))).is_none()); + assert!(grid_smart_range(&term, Point::new(Line(0), Column(99))).is_none()); + } + fn selected(text: &str, click: usize) -> Option { let chars: Vec = text.chars().collect(); range(text, click).map(|(s, e)| chars[s..=e].iter().collect()) From 80af90614650fda7913390f5060734bb451383a4 Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Sat, 18 Jul 2026 22:19:04 +0800 Subject: [PATCH 15/53] fix(terminal): require angle-bracket pairs to hug their contents MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `<` and `>` are comparison and redirection operators at least as often as they are delimiters, and the bracket path returns before the `extends` guard that keeps every other smart candidate additive — so a bad match there has no safety net and can select half a line. Accept an angle pair only when neither delimiter is followed (resp. preceded) by whitespace. Measured against the repo's own source plus a corpus of shell commands, logs and diagnostics, that keeps every real delimiter — `Vec`, `

`, ``, ``, `` — and drops the operator matches (`a < b > c`, `x <= 0 || y > 9`, `WHERE a < 10 AND b > 20`). Redirections need no handling: `2>&1` and `cmd > out` have no partner to match, so the scan already failed on them. Other pairs are unaffected — `( a )` is a legitimate subshell and `[ 1 ]` a legitimate index. --- src/terminal/smart_select.rs | 69 +++++++++++++++++++++++++++++++++--- 1 file changed, 65 insertions(+), 4 deletions(-) diff --git a/src/terminal/smart_select.rs b/src/terminal/smart_select.rs index 9e2a66a4..ad076369 100644 --- a/src/terminal/smart_select.rs +++ b/src/terminal/smart_select.rs @@ -445,10 +445,29 @@ pub(super) fn quote_range(chars: &[char], click: usize) -> Option<(usize, usize) } } +/// Whether a candidate span is an acceptable match for its bracket pair. +/// +/// Every pair but `<>` is accepted outright — `( a )` is a legitimate subshell, +/// `[ 1 ]` a legitimate index. `<` and `>` are different: they are comparison +/// and redirection operators at least as often as delimiters, and the bracket +/// path returns before the `extends` guard that keeps every other candidate +/// additive, so a bad match here has no safety net. Require the span to hug its +/// contents, which real delimiters do (`Vec`, `
`, ``, +/// ``) and a comparison doesn't (`a < b > c`, `x <= 0 || y > 9`). +/// +/// Redirections need no special handling: `2>&1` or `cmd > out` have no +/// partner to match, so the scan already fails. +fn pair_is_plausible(chars: &[char], open: char, s: usize, e: usize) -> bool { + if open != '<' { + return true; + } + e > s + 1 && !chars[s + 1].is_whitespace() && !chars[e - 1].is_whitespace() +} + /// Select through a matching bracket: `click` on an opener scans forward, /// on a closer scans backward, nesting-aware. Inclusive char range covering -/// both brackets, or `None` when the clicked char isn't a bracket or the -/// match isn't on the logical line. +/// both brackets, or `None` when the clicked char isn't a bracket, the match +/// isn't on the logical line, or the span fails [`pair_is_plausible`]. pub(super) fn bracket_range(chars: &[char], click: usize) -> Option<(usize, usize)> { let c = *chars.get(click)?; if let Some((open, close)) = BRACKET_PAIRS.iter().find(|(o, _)| *o == c) { @@ -459,7 +478,7 @@ pub(super) fn bracket_range(chars: &[char], click: usize) -> Option<(usize, usiz } else if ch == *close { depth -= 1; if depth == 0 { - return Some((click, i)); + return pair_is_plausible(chars, *open, click, i).then_some((click, i)); } } } @@ -474,7 +493,7 @@ pub(super) fn bracket_range(chars: &[char], click: usize) -> Option<(usize, usiz } else if ch == *open { depth -= 1; if depth == 0 { - return Some((i, click)); + return pair_is_plausible(chars, *open, i, click).then_some((i, click)); } } } @@ -929,6 +948,48 @@ mod tests { assert_eq!(bracket_range(&chars, 0), None); } + #[test] + fn angle_brackets_pair_only_when_they_hug_their_contents() { + // Real delimiters: generics, tags, placeholders, bracketed addresses. + for (text, want) in [ + ("let v: Vec = x", ""), + ("
hi", "
"), + ("usage: tty7 [opts]", ""), + ("From: Jo ok", ""), + ("map: HashMap here", ""), + ] { + let chars: Vec = text.chars().collect(); + let click = chars.iter().position(|&c| c == '<').unwrap(); + let (s, e) = bracket_range(&chars, click).unwrap_or_else(|| panic!("{text}")); + let got: String = chars[s..=e].iter().collect(); + assert_eq!(got, want, "{text}"); + } + // Comparison operators must not pair across half a line — a space just + // inside either end is the tell. + for text in [ + "if a < b then c > d", + "awk '{ if ($1 > 100 && $2 < 5) print }'", + "WHERE a < 10 AND b > 20", + "empty <> pair", + ] { + let chars: Vec = text.chars().collect(); + for (i, &c) in chars.iter().enumerate() { + if c == '<' || c == '>' { + assert_eq!(bracket_range(&chars, i), None, "{text} at {i}"); + } + } + } + // Redirections never had a partner to match in the first place. + for text in ["cargo build 2>&1 | tee out", "grep -rn foo src/ > /tmp/o"] { + let chars: Vec = text.chars().collect(); + for (i, &c) in chars.iter().enumerate() { + if c == '<' || c == '>' { + assert_eq!(bracket_range(&chars, i), None, "{text} at {i}"); + } + } + } + } + #[test] fn unmatched_bracket_yields_none() { let chars: Vec = "f(a".chars().collect(); From 3231d315bfb041bd75924671d08da5d4613b964e Mon Sep 17 00:00:00 2001 From: thomas Date: Sun, 19 Jul 2026 16:37:43 +0800 Subject: [PATCH 16/53] fix(windows): stop console windows flashing on every git status probe MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit tty7 is a GUI process with no console, so launching a console-subsystem child makes Windows allocate one for it — a black window that pops up and vanishes. The git status probe is the worst offender: it shells out four times (rev-parse --show-toplevel, branch name, --git-dir / --git-common-dir, diff --numstat) and runs on every pane cwd change, command end, and agent-turn end. Opening a shell in a repo flashed four windows. Add core::proc::hide_console — CREATE_NO_WINDOW on Windows, a no-op on Unix so callers stay cfg-free — and route every non-PTY shell-out through it: the status probe, worktree's git, the diff-review git calls, the codex CLI, and shells.rs's WSL probe (which had its own copy of the constant, now one source of truth). PTY children are out of scope; daemon::spawn already passes its own flags for those. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/core/agent_hooks.rs | 7 +++---- src/core/mod.rs | 1 + src/core/proc.rs | 27 +++++++++++++++++++++++++++ src/core/shells.rs | 14 +++++--------- src/core/worktree.rs | 7 +++---- src/terminal/git_status.rs | 15 ++++++++------- src/ui/app.rs | 6 +++--- 7 files changed, 50 insertions(+), 27 deletions(-) create mode 100644 src/core/proc.rs diff --git a/src/core/agent_hooks.rs b/src/core/agent_hooks.rs index de31a4f9..ddce9d08 100644 --- a/src/core/agent_hooks.rs +++ b/src/core/agent_hooks.rs @@ -762,10 +762,9 @@ fn enable_codex_hooks_feature() -> Result<(), String> { .chain(home_dir().map(|h| h.join(".local/bin/codex"))) .find(|p| p.exists()); let program = candidates.unwrap_or_else(|| PathBuf::from("codex")); - match std::process::Command::new(&program) - .args(["features", "enable", "hooks"]) - .output() - { + let mut cmd = std::process::Command::new(&program); + cmd.args(["features", "enable", "hooks"]); + match crate::core::proc::hide_console(&mut cmd).output() { Ok(out) if out.status.success() => Ok(()), Ok(out) => Err(format!( "codex exited with {}: {}", diff --git a/src/core/mod.rs b/src/core/mod.rs index 073b26a7..aa190f83 100644 --- a/src/core/mod.rs +++ b/src/core/mod.rs @@ -18,6 +18,7 @@ pub mod config; #[allow(dead_code)] pub mod keychain; pub mod osc; +pub mod proc; pub mod session; pub mod shells; pub mod ssh_config; diff --git a/src/core/proc.rs b/src/core/proc.rs new file mode 100644 index 00000000..fc473426 --- /dev/null +++ b/src/core/proc.rs @@ -0,0 +1,27 @@ +//! One place for the Windows subprocess flag every helper shell-out needs. +//! +//! tty7 is a GUI process with no console of its own, so launching a console +//! subsystem program (`git.exe`, `wsl.exe`, …) makes Windows allocate a fresh +//! console for it — a black window that pops up and vanishes. That is invisible +//! on a one-off invocation and very visible on the git-status probe, which runs +//! four `git` calls every time a pane's cwd changes or a command ends. +//! +//! `CREATE_NO_WINDOW` suppresses the console entirely; stdout/stderr pipes are +//! unaffected, so output capture keeps working. Every non-PTY `Command` in the +//! app should go through [`hide_console`] before it runs. PTY children are not +//! in scope — the daemon owns those and passes its own flags (see +//! [`crate::daemon::spawn`]). + +use std::process::Command; + +/// Suppress the console window Windows would otherwise allocate for a console +/// subsystem child. No-op on Unix, so callers stay `cfg`-free. +pub fn hide_console(cmd: &mut Command) -> &mut Command { + #[cfg(windows)] + { + use std::os::windows::process::CommandExt as _; + const CREATE_NO_WINDOW: u32 = 0x0800_0000; + cmd.creation_flags(CREATE_NO_WINDOW); + } + cmd +} diff --git a/src/core/shells.rs b/src/core/shells.rs index 97e6bb21..e4249bcf 100644 --- a/src/core/shells.rs +++ b/src/core/shells.rs @@ -319,17 +319,13 @@ fn find_git_bash() -> Option { } /// Installed WSL distribution names via `wsl.exe -l -q`, or empty when WSL is -/// absent. `CREATE_NO_WINDOW` keeps the probe from flashing a console window -/// (we're a GUI process). +/// absent. [`hide_console`](crate::core::proc::hide_console) keeps the probe +/// from flashing a console window (we're a GUI process). #[cfg(windows)] fn list_wsl_distros() -> Vec { - use std::os::windows::process::CommandExt as _; - const CREATE_NO_WINDOW: u32 = 0x0800_0000; - let Ok(output) = std::process::Command::new("wsl.exe") - .args(["-l", "-q"]) - .creation_flags(CREATE_NO_WINDOW) - .output() - else { + let mut cmd = std::process::Command::new("wsl.exe"); + cmd.args(["-l", "-q"]); + let Ok(output) = crate::core::proc::hide_console(&mut cmd).output() else { return Vec::new(); }; if !output.status.success() { diff --git a/src/core/worktree.rs b/src/core/worktree.rs index d88796d7..e908ff37 100644 --- a/src/core/worktree.rs +++ b/src/core/worktree.rs @@ -62,10 +62,9 @@ pub fn is_inside_repo(cwd: &Path) -> bool { /// Run `git -C `, returning trimmed stdout on success and trimmed /// stderr as the error otherwise. fn git(dir: &Path, args: &[&str]) -> Result { - let out = std::process::Command::new("git") - .arg("-C") - .arg(dir) - .args(args) + let mut cmd = std::process::Command::new("git"); + cmd.arg("-C").arg(dir).args(args); + let out = crate::core::proc::hide_console(&mut cmd) .output() .map_err(|e| format!("failed to run git: {e}"))?; if out.status.success() { diff --git a/src/terminal/git_status.rs b/src/terminal/git_status.rs index 098165d6..8bca6ed5 100644 --- a/src/terminal/git_status.rs +++ b/src/terminal/git_status.rs @@ -251,18 +251,19 @@ fn diff_numstat(cwd: &Path) -> Option<(u32, u32)> { /// Run `git -C ` and return stdout on success, `None` on a /// non-zero exit or a missing `git`. `GIT_OPTIONAL_LOCKS=0` makes the read /// truly read-only; stdin is nulled so a misconfigured git can't block on a -/// prompt. Shared with [`git_diff`](crate::terminal::git_diff) so every git -/// read in the app goes through the same lock-free, prompt-proof invocation. +/// prompt; `hide_console` keeps this GUI process from flashing a console window +/// on Windows for every probe. Shared with [`git_diff`](crate::terminal::git_diff) +/// so every git read in the app goes through the same lock-free, prompt-proof +/// invocation. pub(crate) fn git(cwd: &Path, args: &[&str]) -> Option { - let out = Command::new("git") - .arg("-C") + let mut cmd = Command::new("git"); + cmd.arg("-C") .arg(cwd) .args(args) .env("GIT_OPTIONAL_LOCKS", "0") .stdin(Stdio::null()) - .stderr(Stdio::null()) - .output() - .ok()?; + .stderr(Stdio::null()); + let out = crate::core::proc::hide_console(&mut cmd).output().ok()?; if !out.status.success() { return None; } diff --git a/src/ui/app.rs b/src/ui/app.rs index a4fb4435..fdcab0dc 100644 --- a/src/ui/app.rs +++ b/src/ui/app.rs @@ -3048,9 +3048,9 @@ impl Tty7App { // which is what a review pass wants. Both invocations are quick; the // prompt builder caps runaway diffs. let run = |args: &[&str]| { - std::process::Command::new("git") - .args(args) - .current_dir(&cwd) + let mut cmd = std::process::Command::new("git"); + cmd.args(args).current_dir(&cwd); + crate::core::proc::hide_console(&mut cmd) .output() .ok() .filter(|o| o.status.success()) From a95f8904970c37f5f21d5c68cdcdbe78b31ba9ab Mon Sep 17 00:00:00 2001 From: thomas Date: Sun, 19 Jul 2026 17:39:19 +0800 Subject: [PATCH 17/53] feat(shell-integration): support Git Bash on Windows MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PowerShell was the only Windows shell that got OSC 133 integration. Git Bash was excluded by two unrelated gates, neither deliberate: `shell_kind` stripped `.exe` only for PowerShell, so the `bash.exe` that `core::shells::find_git_bash` resolves matched nothing — even though the comment right above it reasons about exactly that suffix. Strip it for every shell instead. The Git Bash dropdown row also ships `-i -l`, which tripped `has_custom_args` and made `setup` decline bash outright. But that guard exists to protect args the *user* configured; these are tty7's own, from `detect_shells`. `ShellSpec` now carries who authored its args, so integration may respell tty7's (`--rcfile … -i` plus the replayed login-file chain means the same thing) while still leaving the user's alone. The `-i -l` stay as the fallback for when integration doesn't apply or fails to set up. One msys2 detail: the rcfile path is now spelled with forward slashes, which its runtime accepts just as readily and which carry no second meaning in the bash string contexts the path can reach. Verified end to end, not just by construction: a new live-PTY test spawns the real Git Bash through the real `setup` output and asserts the full A/B/C/D cycle plus OSC 7 come back. It skips when Git for Windows isn't installed. Getting it green surfaced two ConPTY-isms worth recording — the master doesn't reliably EOF when the child exits, and closing its input side raises a console control event that kills the shell with STATUS_CONTROL_C_EXIT — both noted at the call sites. cmd and WSL stay unintegrated, now documented as decisions rather than gaps: cmd's only hook is PROMPT, which cannot emit C or D, and since only C clears `at_prompt` an A/B-only shell would leave the line editor holding the keyboard for the whole of every command. WSL would need per-distro shell detection and WSLENV path translation to reach the shell that actually runs. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/core/shells.rs | 14 ++- src/daemon/pane.rs | 109 ++++++++++++++++--- src/daemon/protocol.rs | 15 +++ src/daemon/shell_integration.rs | 180 +++++++++++++++++++++++++++++--- src/ui/tab_strip.rs | 3 + 5 files changed, 291 insertions(+), 30 deletions(-) diff --git a/src/core/shells.rs b/src/core/shells.rs index e4249bcf..55359c3a 100644 --- a/src/core/shells.rs +++ b/src/core/shells.rs @@ -278,7 +278,11 @@ fn detect_windows() -> Vec { out.push(DetectedShell { label: "Git Bash".into(), program: bash.to_string_lossy().into_owned(), - // Interactive login shell — matches Git Bash's own launcher. + // Interactive login shell — matches Git Bash's own launcher. These + // are tty7's args, not the user's, so shell integration may replace + // them with its own spelling of the same thing (see + // `protocol::ShellSpec::args_are_tty7_defaults`); they stand as the + // fallback for when integration doesn't apply or fails to set up. args: vec!["-i".into(), "-l".into()], }); } @@ -296,6 +300,14 @@ fn detect_windows() -> Vec { out } +/// Git Bash's `bash.exe`, if Git for Windows is installed. Exposed only to +/// tests, so `daemon::shell_integration`'s live-PTY check can spawn the same +/// binary the dropdown does (and skip itself when there is none). +#[cfg(all(windows, test))] +pub fn git_bash_path() -> Option { + find_git_bash() +} + /// Git Bash from the usual Git-for-Windows install roots (machine-wide x64, /// x86, and the per-user installer's home). #[cfg(windows)] diff --git a/src/daemon/pane.rs b/src/daemon/pane.rs index 4072e27a..2a30e6a7 100644 --- a/src/daemon/pane.rs +++ b/src/daemon/pane.rs @@ -102,6 +102,33 @@ fn default_shell_name(cmd: &CommandBuilder) -> String { cmd.get_shell() } +/// The shell a spawn resolved to, plus who authored its args. +#[cfg_attr(test, derive(Debug, PartialEq, Eq))] +struct ChosenShell { + program: String, + args: Vec, + /// True when `args` are tty7's own defaults from shell discovery rather + /// than the user's, so shell integration may replace them. See + /// [`ShellSpec::args_are_tty7_defaults`]. + args_are_tty7_defaults: bool, +} + +/// Whether the chosen shell carries args tty7 must not second-guess, which is +/// what makes `shell_integration::setup` decline bash and PowerShell (their +/// injections replace argv rather than extend it). Two things have to hold for +/// the args to be off-limits: +/// +/// - there are some — an empty `args: []` (just picking the program) leaves +/// nothing for bash's `--rcfile … -i` to conflict with; and +/// - the *user* wrote them. The new-tab dropdown's args are tty7's own +/// (`core::shells::detect_shells`), so integration is free to express the +/// same intent its own way: Git Bash's `-i -l` means "interactive login +/// shell", exactly what `setup_bash` rebuilds out of `--rcfile … -i` plus a +/// replayed login-file chain. See [`ShellSpec::args_are_tty7_defaults`]. +fn has_custom_args(chosen: Option<&ChosenShell>) -> bool { + chosen.is_some_and(|c| !c.args.is_empty() && !c.args_are_tty7_defaults) +} + /// Which shell a spawn launches, by precedence: the explicit per-spawn override /// (the new-tab dropdown) > the configured `shell` in `config.json` > `None`, /// meaning the platform default (`default_prog()`). Kept as a function so the @@ -109,8 +136,21 @@ fn default_shell_name(cmd: &CommandBuilder) -> String { fn choose_shell( spawn_override: Option, configured: Option<(String, Vec)>, -) -> Option<(String, Vec)> { - spawn_override.map(|s| (s.program, s.args)).or(configured) +) -> Option { + spawn_override + .map(|s| ChosenShell { + program: s.program, + args: s.args, + args_are_tty7_defaults: s.args_are_tty7_defaults, + }) + .or_else(|| { + // Straight from `config.json` — the user wrote these. + configured.map(|(program, args)| ChosenShell { + program, + args, + args_are_tty7_defaults: false, + }) + }) } fn apply_shell_integration( @@ -161,9 +201,9 @@ fn build_shell_command( // shell on Unix, PowerShell on Windows). let configured = choose_shell(shell, crate::core::config::shell_command()); let mut cmd = match &configured { - Some((program, args)) => { - let mut c = CommandBuilder::new(program); - c.args(args); + Some(chosen) => { + let mut c = CommandBuilder::new(&chosen.program); + c.args(&chosen.args); c } None => default_prog(), @@ -174,20 +214,18 @@ fn build_shell_command( // it's whatever `default_prog()` resolved (passwd/`$SHELL` on Unix, // `powershell.exe` on Windows — see `default_shell_name`). let resolved_program = match &configured { - Some((program, _)) => program.clone(), + Some(chosen) => chosen.program.clone(), None => default_shell_name(&cmd), }; // Shell integration: inject OSC 7 / OSC 133 hooks (zsh/fish/bash/PowerShell // — see `daemon::shell_integration`). Best effort — `None` (an unsupported // shell, or a bash/PowerShell with unpreservable custom args) means we launch - // bare. A configured shell only counts as having "custom args" to preserve - // when it actually specifies any — an empty `args: []` (just picking the - // program) leaves nothing for bash's `--rcfile -i` to conflict with. - let has_custom_args = configured - .as_ref() - .is_some_and(|(_, args)| !args.is_empty()); - let integration = shell_integration::setup(Some(&resolved_program), has_custom_args); + // bare. + let integration = shell_integration::setup( + Some(&resolved_program), + has_custom_args(configured.as_ref()), + ); if let Some(integration) = &integration { apply_shell_integration(&mut cmd, &resolved_program, integration); } @@ -2163,20 +2201,57 @@ mod tests { let over = ShellSpec { program: "fish".into(), args: vec!["-l".into()], + args_are_tty7_defaults: true, }; let cfg = ("zsh".to_string(), vec!["-i".to_string()]); - // Override wins even when a shell is configured. + // Override wins even when a shell is configured, carrying its + // arg-ownership flag through. assert_eq!( choose_shell(Some(over.clone()), Some(cfg.clone())), - Some(("fish".to_string(), vec!["-l".to_string()])) + Some(ChosenShell { + program: "fish".to_string(), + args: vec!["-l".to_string()], + args_are_tty7_defaults: true, + }) + ); + // No override → the configured shell, whose args are the user's and so + // are never tty7 defaults. + assert_eq!( + choose_shell(None, Some(cfg.clone())), + Some(ChosenShell { + program: "zsh".to_string(), + args: vec!["-i".to_string()], + args_are_tty7_defaults: false, + }) ); - // No override → the configured shell. - assert_eq!(choose_shell(None, Some(cfg.clone())), Some(cfg)); // Neither → platform default. assert_eq!(choose_shell(None, None), None); } + /// Only *user*-authored args block integration. Locks the contract stated + /// on [`has_custom_args`] — in particular that the Git Bash dropdown row's + /// `-i -l` does not, which is what lets it get shell integration at all. + #[test] + fn only_user_authored_args_block_shell_integration() { + let chosen = |args: Vec<&str>, tty7: bool| ChosenShell { + program: r"C:\Program Files\Git\bin\bash.exe".to_string(), + args: args.into_iter().map(str::to_string).collect(), + args_are_tty7_defaults: tty7, + }; + + // The Git Bash dropdown row: tty7 wrote `-i -l`, so `setup_bash` may + // replace them. + assert!(!has_custom_args(Some(&chosen(vec!["-i", "-l"], true)))); + // The same args from the user's config.json are theirs to keep. + assert!(has_custom_args(Some(&chosen(vec!["-i", "-l"], false)))); + // No args at all: nothing to preserve either way. + assert!(!has_custom_args(Some(&chosen(vec![], false)))); + assert!(!has_custom_args(Some(&chosen(vec![], true)))); + // Platform default — no configured shell at all. + assert!(!has_custom_args(None)); + } + #[test] fn arg_based_integration_rebuilds_default_shell_builder() { let mut cmd = CommandBuilder::new_default_prog(); diff --git a/src/daemon/protocol.rs b/src/daemon/protocol.rs index 7cddf932..7b5348f5 100644 --- a/src/daemon/protocol.rs +++ b/src/daemon/protocol.rs @@ -76,6 +76,18 @@ pub struct ShellSpec { pub program: String, #[serde(default)] pub args: Vec, + /// True when `args` were authored by tty7's own shell discovery + /// (`core::shells`) rather than by the user, and so may be replaced by + /// shell integration — Git Bash's `-i -l` is tty7's way of saying "an + /// interactive login shell", which `setup_bash`'s `--rcfile … -i` plus its + /// replayed login-file chain expresses differently but equivalently. + /// User-configured args get no such liberty; see + /// `daemon::shell_integration::setup`'s `has_custom_args`. + /// + /// Defaults to `false` on the wire so an older client's frame — which can + /// only carry user-configured args — keeps them untouched. + #[serde(default)] + pub args_are_tty7_defaults: bool, } /// Whether a short `ssh` option flag consumes the following argument as its @@ -1396,6 +1408,7 @@ mod tests { shell: Some(ShellSpec { program: "wsl.exe".into(), args: vec!["--distribution".into(), "Ubuntu".into()], + args_are_tty7_defaults: true, }), }, ClientMsg::Attach { @@ -1691,6 +1704,8 @@ mod tests { let shell = ShellSpec { program: "fish".to_string(), args: vec!["-l".to_string()], + // Set so the round-trip covers the flag, not just program + args. + args_are_tty7_defaults: true, }; let msg = ClientMsg::Spawn { cwd: Some(PathBuf::from("/work")), diff --git a/src/daemon/shell_integration.rs b/src/daemon/shell_integration.rs index abc4f101..7fa172c9 100644 --- a/src/daemon/shell_integration.rs +++ b/src/daemon/shell_integration.rs @@ -33,7 +33,10 @@ //! [`Injection::force_non_login`]. Bash also has no native precmd/preexec, //! so the hook body vendors the relevant parts of //! [bash-preexec](https://github.com/rcaloras/bash-preexec) (MIT), the -//! same shim VS Code relies on for this. +//! same shim VS Code relies on for this. This path covers Git Bash too — +//! the msys2 bash Git for Windows ships is spawned as `bash.exe` by +//! absolute path, and needs only its rcfile path spelled with forward +//! slashes (see [`bash_path`]). //! - **PowerShell** (the Windows default, and any `pwsh`) has no dotfile //! redirect either, but `-EncodedCommand` runs a script *after* its own //! profiles load — like fish's `-C`, no file on disk. It has no @@ -44,6 +47,17 @@ //! //! Across all four: **the user's own dotfiles are never modified** — the //! mechanisms above only affect shells tty7 itself launches. +//! +//! The two remaining Windows dropdown entries stay unintegrated by design, not +//! omission. **cmd** exposes exactly one hook, the `PROMPT` env var, which can +//! emit the `A`/`B` marks but not `C` or `D`: it has no preexec/postexec, and +//! `PROMPT` is expanded when it is *set*, so even `%ERRORLEVEL%` is out of +//! reach. Since only `C` clears `at_prompt` (see `pane::handle_osc133`), an +//! A/B-only shell would leave the line editor owning the keyboard for the +//! whole of every command — worse than no integration. **WSL** is spawned as +//! `wsl.exe`, the Windows-side launcher; reaching the distro's own shell would +//! mean detecting which shell that is per distro and routing the injection +//! through `WSLENV` path translation, which is its own piece of work. use std::collections::HashMap; use std::path::{Path, PathBuf}; @@ -727,19 +741,21 @@ fn shell_kind(program: Option<&str>) -> Option { Some(p) => p.to_string(), None => std::env::var("SHELL").ok()?, }; - // Lowercase the basename: Windows program names are case-insensitive and - // carry an `.exe` suffix, so `PowerShell.exe`, `powershell.exe` and `pwsh` - // must all match. The Unix shells are conventionally lowercase already, so - // this only ever normalizes the Windows spellings. + // Lowercase the basename and drop any `.exe`: Windows program names are + // case-insensitive and carry the suffix, so `PowerShell.exe` and `pwsh` + // must both match — as must Git Bash, which tty7 launches by its absolute + // `...\Git\bin\bash.exe` path (`core::shells::find_git_bash`). The Unix + // shells are conventionally lowercase and suffix-free already, so this only + // ever normalizes the Windows spellings. let base = Path::new(&owned) .file_name()? .to_str()? .to_ascii_lowercase(); - match base.as_str() { + match base.strip_suffix(".exe").unwrap_or(&base) { "zsh" => Some(ShellKind::Zsh), "bash" => Some(ShellKind::Bash), "fish" => Some(ShellKind::Fish), - "powershell" | "powershell.exe" | "pwsh" | "pwsh.exe" => Some(ShellKind::PowerShell), + "powershell" | "pwsh" => Some(ShellKind::PowerShell), _ => None, } } @@ -876,6 +892,23 @@ if [[ -f ~/.bashrc ]]; then source ~/.bashrc; fi ) } +/// Render a path for bash's own consumption. The only bash reachable on +/// Windows is the msys2 one Git for Windows ships: its runtime does accept a +/// native `C:\...` path, but the backslashes then survive into any bash string +/// context that path is later interpolated into (`$BASH_SOURCE`, an error +/// message re-evaluated by a user's `PROMPT_COMMAND`) where they *are* escape +/// characters. Forward slashes are accepted just as readily by the msys +/// runtime and carry no such second meaning, so normalize to them. No-op on +/// Unix, where the separator is already `/`. +fn bash_path(path: &Path) -> String { + let s = path.to_string_lossy().into_owned(); + if cfg!(windows) { + s.replace('\\', "/") + } else { + s + } +} + /// Force a non-login bash with our rcfile, replaying the login-file chain /// ourselves inside it (see [`bash_rcfile`]) since `--rcfile` only takes effect /// on non-login shells in the first place. Only offered when the caller has no @@ -892,11 +925,7 @@ fn setup_bash() -> Option { // `--rcfile` (a GNU long option) must precede `-i`: bash 3.2 — still // macOS's shipped `/bin/bash` — refuses to parse a long option once a // short one has been seen. - args: vec![ - "--rcfile".to_string(), - rcfile.to_string_lossy().into_owned(), - "-i".to_string(), - ], + args: vec!["--rcfile".to_string(), bash_path(&rcfile), "-i".to_string()], force_non_login: true, dir: Some(dir), }) @@ -982,6 +1011,95 @@ mod tests { assert!(!is_our_zdotdir("/tmp/not-tty7-zdotdir-1")); } + /// End-to-end on a real PTY: spawn the actual Git Bash through the actual + /// `setup` output and assert the full A/B/C/D cycle comes back. Guards the + /// parts no pure test can see — that msys2 bash accepts the rcfile path we + /// hand it, that our hooks survive Git Bash's own `/etc/profile` (which + /// installs a `PROMPT_COMMAND` of its own), and that bash-preexec's DEBUG + /// trap actually fires under a Windows pty. Skips when Git for Windows + /// isn't installed, so it's a no-op on a machine without it. + #[cfg(windows)] + #[test] + fn git_bash_reports_the_full_prompt_cycle_over_a_real_pty() { + use portable_pty::{CommandBuilder, PtySize, native_pty_system}; + use std::io::{Read, Write}; + + let Some(bash) = crate::core::shells::git_bash_path() else { + eprintln!("skipping: Git for Windows not installed"); + return; + }; + let bash = bash.to_string_lossy().into_owned(); + // `has_custom_args: false` — the dropdown's `-i -l` are tty7's own, so + // the real spawn path reaches setup_bash with them overridable. + let injection = setup(Some(&bash), false).expect("bash integration"); + + let pty = native_pty_system() + .openpty(PtySize { + rows: 24, + cols: 80, + pixel_width: 0, + pixel_height: 0, + }) + .expect("openpty"); + let mut cmd = CommandBuilder::new(&bash); + cmd.args(&injection.args); + for (k, v) in &injection.env { + cmd.env(k, v); + } + let mut child = pty.slave.spawn_command(cmd).expect("spawn git bash"); + + let mut writer = pty.master.take_writer().expect("writer"); + let mut reader = pty.master.try_clone_reader().expect("reader"); + // `false` gives D a non-zero exit code to carry, so a hardcoded 0 in + // the report path can't pass this. `writer` is deliberately held for + // the rest of the test: closing a ConPTY's input side raises a console + // control event, which kills the shell with STATUS_CONTROL_C_EXIT + // before it ever reaches a prompt. + writer.write_all(b"false\n").expect("write"); + writer.flush().expect("flush"); + + // Drain on a worker: a Windows ConPTY master does not reliably EOF when + // its child exits, so reading inline would block past the shell's own + // exit. The worker feeds chunks over a channel and the test stops at the + // D mark that ends the cycle — or at a deadline, so a shell that never + // reports fails the assert instead of hanging. + let (tx, rx) = std::sync::mpsc::channel(); + std::thread::spawn(move || { + let mut buf = [0u8; 4096]; + while let Ok(n) = reader.read(&mut buf) { + if n == 0 || tx.send(buf[..n].to_vec()).is_err() { + break; + } + } + }); + + let deadline = std::time::Instant::now() + std::time::Duration::from_secs(30); + let mut out = Vec::new(); + while std::time::Instant::now() < deadline { + match rx.recv_timeout(std::time::Duration::from_millis(200)) { + Ok(chunk) => out.extend_from_slice(&chunk), + Err(std::sync::mpsc::RecvTimeoutError::Timeout) => {} + Err(std::sync::mpsc::RecvTimeoutError::Disconnected) => break, + } + if String::from_utf8_lossy(&out).contains("133;D") { + break; + } + } + let _ = child.kill(); + let _ = child.wait(); + drop(pty.master); + let text = String::from_utf8_lossy(&out); + + for mark in ["133;A", "133;B", "133;C", "133;D;1"] { + assert!( + text.contains(mark), + "Git Bash must report {mark}; got:\n{text}" + ); + } + // cwd reporting rides along on the same hooks. + assert!(text.contains("]7;file://"), "expected OSC 7; got:\n{text}"); + } + #[test] fn shell_kind_maps_known_basenames() { assert!(matches!(shell_kind(Some("/bin/zsh")), Some(ShellKind::Zsh))); @@ -1014,6 +1132,44 @@ mod tests { // Unknown shells (and absolute paths to them) resolve to None. assert!(shell_kind(Some("/bin/sh")).is_none()); assert!(shell_kind(Some("cmd.exe")).is_none()); + // cmd has no preexec hook of any kind, and `wsl.exe` is only the + // Windows-side launcher — injecting into it would never reach the + // distro's own shell. Both stay unsupported on purpose. + assert!(shell_kind(Some("wsl.exe")).is_none()); + } + + /// Git Bash is spawned by its absolute `bash.exe` path, so `.exe` must be + /// stripped for *every* shell and not just PowerShell — otherwise the one + /// bash reachable on Windows silently gets no integration. + #[test] + fn shell_kind_strips_exe_for_non_powershell_shells() { + for prog in ["bash.exe", "BASH.EXE", "C:/Program Files/Git/bin/bash.exe"] { + assert!( + matches!(shell_kind(Some(prog)), Some(ShellKind::Bash)), + "{prog} should map to Bash" + ); + } + } + + /// The rcfile path is handed to msys2 bash, which reads `\` as an escape in + /// the string contexts the path can later reach — see [`bash_path`]. + #[test] + fn bash_rcfile_path_uses_forward_slashes_on_windows() { + let rendered = bash_path(Path::new( + r"C:\Users\a\AppData\Local\Temp\tty7-bashrc-1-0\bashrc", + )); + if cfg!(windows) { + assert_eq!( + rendered, + "C:/Users/a/AppData/Local/Temp/tty7-bashrc-1-0/bashrc" + ); + } + // Unix paths are already separator-correct and must pass through + // untouched on every host. + assert_eq!( + bash_path(Path::new("/tmp/tty7-bashrc-1-0/bashrc")), + "/tmp/tty7-bashrc-1-0/bashrc" + ); } #[test] diff --git a/src/ui/tab_strip.rs b/src/ui/tab_strip.rs index a110e045..f805b553 100644 --- a/src/ui/tab_strip.rs +++ b/src/ui/tab_strip.rs @@ -326,6 +326,9 @@ impl Tty7App { let spec = ShellSpec { program: shell.program.clone(), args: shell.args.clone(), + // Every arg on a dropdown row was written by + // `core::shells::detect_shells`, not the user. + args_are_tty7_defaults: true, }; let open = app.clone(); let item = if shell.label == default_name { From 9b1c7bfcac5136b412808ab7c701ece55f61058f Mon Sep 17 00:00:00 2001 From: thomas Date: Sun, 19 Jul 2026 17:54:31 +0800 Subject: [PATCH 18/53] fix(windows): align the titlebar ... with the window-control rhythm MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The three native window controls are 34px tiles, so consecutive glyph centres sit 34px apart. The overflow ... was inset by `pr_3` (12px), putting its centre `15 + 12 + 17` = 44px from the minimise glyph — a 10px overshoot that read as the button drifting away from the group rather than as deliberate separation. `pr_1` (4px) lands it at 36px. Measured on a 1.5x display: 54.5 physical px between ... and minimise vs 51px between the window controls, i.e. within ~2 logical px of the native rhythm, while keeping just enough slack that it does not read as a fourth window control. macOS is unaffected (controls are on the left there; `pr_2` still holds). The `strip_w` 114px reserve is untouched -- this padding lives inside the strip box, so shrinking it only shifts the ... right and hands the chip row 8px more. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/ui/tab_strip.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/ui/tab_strip.rs b/src/ui/tab_strip.rs index a110e045..7592163e 100644 --- a/src/ui/tab_strip.rs +++ b/src/ui/tab_strip.rs @@ -897,9 +897,13 @@ impl Tty7App { .pl_0() .pr_2() // On Windows/Linux the window controls (─ ▢ ✕) sit on the right, right - // where the "⋯" lands; give it extra right breathing room there so it - // reads as a menu affordance, not a fourth window control. - .when(!cfg!(target_os = "macos"), |this| this.pr_3()) + // where the "⋯" lands, so its inset has to match *their* rhythm: the + // 34px tiles put consecutive glyph centres 34px apart, and the "⋯" + // centre sits `15 + pr + 17` from the minimise glyph. `pr_1` (4px) + // lands at 36px — reading as part of the same row, with just enough + // slack to not be mistaken for a fourth window control. The old + // `pr_3` (12px) made it 44px, visibly adrift from the group. + .when(!cfg!(target_os = "macos"), |this| this.pr_1()) .min_w_0() .child(chips) // In sidebar mode the rail owns "New Tab" (a "+" in its own top bar), From 83676d2e0158af9a1ce13eecec1200711dbcdb04 Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Sun, 19 Jul 2026 18:04:03 +0800 Subject: [PATCH 19/53] fix(input): route macOS text through the IME so synthesized keys keep their text MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit gpui derives `key_char` by running the event's virtual keycode back through the current layout; it never reads the event's Unicode payload. That is fine for a physical keyboard, but remote-control apps synthesize keystrokes as `CGEventCreateKeyboardEvent(src, 0, ...)` + `CGEventKeyboardSetUnicodeString()`, putting the real text only in the payload. Keycode 0 is `a`, so every character typed from a phone arrived in the terminal as `a`. gpui does divert printable keys to the input context, but only while a composing input source is active (`is_ime_input_source_active`), so the bug appeared and vanished depending on the selected input method — and the plain ABC layout, the macOS default, always lost the text. Make the IME the single delivery path for text on macOS: `on_key_down` declines plain printable keys without consuming them, so gpui falls through to `handleEvent:` and the Unicode payload survives into `commit_text`. Chords are excluded — Ctrl/Cmd/Fn belong to the encoders, Option to the Meta policy — and a pending multi-key chord still wins, matching `prefers_ime_for_printable_keys`. Answer `apple_press_and_hold_enabled()` with false as well. `on_key_down` used to consume printable keys before gpui consulted it; now that gpui reaches its held-key branch, false is what keeps auto-repeat instead of handing the key to the accent palette — a terminal wants `jjj`, not `ĵ`. Tests that assert on text input now go through a `type_char` helper that follows the platform: `commit_text` on macOS, `on_key_down` elsewhere. Building a `KeyDownEvent` by hand exercised a path macOS no longer takes. Production semantics are unchanged: `input_active()` is already false at a shell vi-mode prompt and `write_gap_text` has its own `shell_vi_prompt()` branch. Linux is unaffected and still uses the `key_char` path, since gpui's IBus integration does not commit plain ASCII back through `replace_text_in_range`. --- src/terminal/input.rs | 42 +++++++++++++++++++++++++++++ src/terminal/view.rs | 62 +++++++++++++++++++++++++++++-------------- 2 files changed, 84 insertions(+), 20 deletions(-) diff --git a/src/terminal/input.rs b/src/terminal/input.rs index e4fc4bfe..cda6a89d 100644 --- a/src/terminal/input.rs +++ b/src/terminal/input.rs @@ -105,6 +105,38 @@ pub(super) fn reshape_option_keystroke( } } +/// True when a keystroke is ordinary text that macOS should deliver through the +/// input context (`insertText:` → `replace_text_in_range` → `commit_text`) +/// rather than the raw `key_char` path. +/// +/// gpui derives `key_char` by running the event's *virtual keycode* back through +/// the current layout (`chars_for_modified_key` in its macOS backend); it never +/// reads the event's Unicode payload. That is fine for a physical keyboard, where +/// the keycode is the truth, but wrong for any event whose text lives only in the +/// payload — notably remote-control apps, which synthesize keystrokes as +/// `CGEventCreateKeyboardEvent(src, 0, …)` + `CGEventKeyboardSetUnicodeString()`. +/// Keycode 0 is `a`, so every remotely typed character arrived as `a`. +/// +/// gpui already diverts printable keys to the input context, but only while a +/// composing input source is active (`is_ime_input_source_active`), so the bug +/// appeared and vanished depending on which input method was selected — and the +/// plain ABC layout, the macOS default, always lost the text. Declining the key +/// here instead makes the IME the single delivery path for text on macOS: gpui +/// falls through to `handleEvent:`, and the Unicode payload survives. +/// +/// Chords are deliberately excluded: Ctrl/Cmd/Fn belong to the encoders below, +/// and Option is owned by [`reshape_option_keystroke`]'s Meta policy. +#[cfg(target_os = "macos")] +pub(super) fn defer_to_ime(ks: &gpui::Keystroke) -> bool { + let m = &ks.modifiers; + if m.control || m.platform || m.function || m.alt { + return false; + } + ks.key_char + .as_deref() + .is_some_and(|ch| !ch.is_empty() && ch.chars().all(|c| c >= '\u{20}' && c != '\u{7f}')) +} + /// Translate a GPUI keystroke into the bytes a PTY expects. /// /// When the app has enabled the Kitty keyboard protocol (`kitty.active()`) we try @@ -522,6 +554,16 @@ impl InputHandler for TerminalInputHandler { None } + fn apple_press_and_hold_enabled(&mut self) -> bool { + // A terminal wants auto-repeat, not the accent palette: holding `j` in + // vim scrolls, it does not offer `ĵ`. This used to be moot because + // `on_key_down` consumed printable keys before gpui consulted it; now + // that text defers to the IME (see `defer_to_ime`), gpui reaches its + // held-key branch, and answering `false` there makes it repeat the + // character instead of handing the key to press-and-hold. + false + } + fn prefers_ime_for_printable_keys(&mut self, window: &mut Window, _cx: &mut App) -> bool { // While a multi-key keybinding is mid-sequence — e.g. the tmux preset's // `ctrl-b` prefix is held pending — the next key belongs to the keymap, diff --git a/src/terminal/view.rs b/src/terminal/view.rs index 7bf44e45..f37210f7 100644 --- a/src/terminal/view.rs +++ b/src/terminal/view.rs @@ -1367,6 +1367,18 @@ impl TerminalView { return; } + // On macOS all ordinary text goes out through the IME, never through + // `key_char` — see `input::defer_to_ime` for why (gpui reconstructs + // `key_char` from the virtual keycode, which is a lie for synthesized + // events). Decline the key without consuming it and gpui hands the + // native event to the input context, which delivers the real text via + // `commit_text`. A pending multi-key chord is the exception: that key + // belongs to the keymap, matching `prefers_ime_for_printable_keys`. + #[cfg(target_os = "macos")] + if !window.has_pending_keystrokes() && super::input::defer_to_ime(ks) { + return; + } + // While idle at the prompt, our local command editor owns the keyboard: // editing keys act on the in-memory line and Enter ships it to the PTY. // Printable text is delivered through the IME path (`commit_text`), so we @@ -6060,6 +6072,34 @@ mod gpui_tests { } } + /// Deliver one printable character the way the running platform actually + /// does. macOS hands all text to the input context, which arrives as + /// `commit_text` (see `input::defer_to_ime`); elsewhere it travels the + /// `on_key_down` / `key_char` path. Tests that assert on *text* input must + /// go through here, or they exercise a path the platform never takes. + fn type_char( + view: &mut TerminalView, + ch: &str, + window: &mut Window, + cx: &mut Context, + ) { + if cfg!(target_os = "macos") { + let _ = window; + view.commit_text(ch, cx); + } else { + let ev = KeyDownEvent { + keystroke: gpui::Keystroke { + modifiers: gpui::Modifiers::default(), + key: ch.to_string(), + key_char: Some(ch.to_string()), + }, + is_held: false, + prefer_character_input: false, + }; + view.on_key_down(&ev, window, cx); + } + } + fn next_input_until_timeout(daemon: &mut UnixStream) -> Option> { use std::io::ErrorKind; @@ -6131,16 +6171,7 @@ mod gpui_tests { !view.input_active(), "shell vi-mode lets the shell line editor own prompt input" ); - let a = KeyDownEvent { - keystroke: gpui::Keystroke { - modifiers: gpui::Modifiers::default(), - key: "a".to_string(), - key_char: Some("a".to_string()), - }, - is_held: false, - prefer_character_input: false, - }; - view.on_key_down(&a, window, cx); + type_char(view, "a", window, cx); assert_eq!( view.cmd.text(), "", @@ -6206,16 +6237,7 @@ mod gpui_tests { window .update(cx, |view, window, cx| { - let i = KeyDownEvent { - keystroke: gpui::Keystroke { - modifiers: gpui::Modifiers::default(), - key: "i".to_string(), - key_char: Some("i".to_string()), - }, - is_held: false, - prefer_character_input: false, - }; - view.on_key_down(&i, window, cx); + type_char(view, "i", window, cx); }) .unwrap(); assert_eq!( From caec744bfaec2cd7f40178da158591eb57005a87 Mon Sep 17 00:00:00 2001 From: thomas Date: Sun, 19 Jul 2026 18:26:40 +0800 Subject: [PATCH 20/53] fix(shell-integration): report a Windows path from Git Bash MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Git Bash's $PWD is an msys path (`/c/Users/x`, and `/tmp` for mounts with no drive at all). The daemon runs Windows-side, where `/c/Users/x` is not absolute but drive-relative, so it resolved to a bogus `C:\c\Users\x`: `strip_uri_drive_slash` only un-prefixes the `/C:/…` shape. That silently disabled the git-status probe and path completion in every Git Bash pane, and broke split/new-tab outright — an inherited cwd wins over every fallback in `initial_working_directory`, so the next shell was spawned with a working directory that does not exist. Worse than either, `/c/Users/x` is a *valid* drive-relative path, so a machine that happens to have `C:\c\...` would have shown an unrelated repo's status as the pane's own. Use `pwd -W`, msys's own translation to the real Windows path, which also maps msys-only mounts correctly (`/tmp` -> `AppData/Local/Temp`). It has no leading slash, so add one for the file: URI shape. Falls back to $PWD if it fails or returns empty, and the branch is taken once at install time rather than on every prompt. The live-PTY test now round-trips what Git Bash actually emits through the daemon's own `parse_osc7` and asserts the path exists, so the two halves are verified to agree rather than checked in isolation. Co-Authored-By: Claude Opus 4.8 --- src/daemon/pane.rs | 4 +- src/daemon/shell_integration.rs | 84 +++++++++++++++++++++++++++++++-- 2 files changed, 84 insertions(+), 4 deletions(-) diff --git a/src/daemon/pane.rs b/src/daemon/pane.rs index 2a30e6a7..c64714e4 100644 --- a/src/daemon/pane.rs +++ b/src/daemon/pane.rs @@ -2051,7 +2051,9 @@ fn strip_uri_drive_slash(path: &str) -> &str { } /// Parse an OSC 7 `file://HOST/PATH` (or bare absolute path) payload. -fn parse_osc7(payload: &[u8]) -> Option { +/// `pub(crate)` so the shell-integration tests can round-trip what the snippets +/// actually emit through the parser that consumes it. +pub(crate) fn parse_osc7(payload: &[u8]) -> Option { let rest = payload.strip_prefix(b"7;")?; let path_bytes: &[u8] = if let Some(after) = rest.strip_prefix(b"file://") { let idx = after.iter().position(|&c| c == b'/')?; diff --git a/src/daemon/shell_integration.rs b/src/daemon/shell_integration.rs index 7fa172c9..b062673f 100644 --- a/src/daemon/shell_integration.rs +++ b/src/daemon/shell_integration.rs @@ -274,7 +274,26 @@ if [[ $- == *i* ]] && [[ -z "$TTY7_SHELL_INTEGRATION" ]]; then fi } # Escape literal `%` as %25 — the daemon percent-decodes the OSC 7 payload. - __tty7_report_cwd() { builtin printf '\e]7;file://%s%s\a' "${HOSTNAME:-localhost}" "${PWD//\%/%25}"; } + # + # Under Git Bash (msys) `$PWD` is an msys path — `/c/Users/x`, and `/tmp` for + # mounts with no drive at all. The daemon runs Windows-side, where `/c/Users/x` + # is not absolute but *drive-relative*, so it resolves to a bogus `C:\c\Users\x` + # (see `pane::strip_uri_drive_slash`, which only un-prefixes `/C:/…`). `pwd -W` + # is msys's own translation to the real Windows path and maps msys-only mounts + # correctly (`/tmp` -> `C:/Users/x/AppData/Local/Temp`). It has no leading + # slash, so add one to make it the absolute-path shape a file: URI expects. + # Branch once at install time rather than on every prompt. + if [[ "$OSTYPE" == msys* || "$OSTYPE" == cygwin* ]]; then + __tty7_report_cwd() { + local d + d="$(builtin pwd -W 2>/dev/null)" || d="$PWD" + [[ -z "$d" ]] && d="$PWD" + [[ "$d" != /* ]] && d="/$d" + builtin printf '\e]7;file://%s%s\a' "${HOSTNAME:-localhost}" "${d//\%/%25}" + } + else + __tty7_report_cwd() { builtin printf '\e]7;file://%s%s\a' "${HOSTNAME:-localhost}" "${PWD//\%/%25}"; } + fi # Own hook for D, prepended to precmd_functions (same rationale as the zsh # path): the app flips back to prompt-editing on D, so it must fire the @@ -1096,8 +1115,25 @@ mod tests { "Git Bash must report {mark}; got:\n{text}" ); } - // cwd reporting rides along on the same hooks. - assert!(text.contains("]7;file://"), "expected OSC 7; got:\n{text}"); + // cwd reporting rides along on the same hooks. Assert the *decoded* + // path, not just the marker's presence: Git Bash's `$PWD` is an msys + // path (`/c/Users/x`) that Windows resolves drive-relative to a + // non-existent `C:\c\Users\x`, which silently disables the git-status + // probe and breaks split/new-tab. Round-tripping through the daemon's + // own parser is what proves the two halves agree. + let payload = text + .split("\u{1b}]") + .find(|s| s.starts_with("7;file://")) + .and_then(|s| s.split(['\u{7}', '\u{1b}']).next()) + .unwrap_or_else(|| panic!("expected OSC 7; got:\n{text}")); + let cwd = crate::daemon::pane::parse_osc7(payload.as_bytes()) + .unwrap_or_else(|| panic!("daemon could not parse OSC 7 payload {payload:?}")); + assert!( + cwd.exists(), + "Git Bash reported a cwd the Windows side cannot resolve: {cwd:?} \ + (from {payload:?}) — a drive-relative msys path, so `pwd -W` \ + translation regressed" + ); } #[test] @@ -1364,6 +1400,48 @@ mod tests { "{shell} must not emit the raw $PWD in its OSC 7 report" ); } + // bash's msys branch reports `pwd -W` output rather than $PWD, so it + // needs the same escaping on its own variable. + assert!( + BASH_INTEGRATION.contains(r"${d//\%/%25}"), + "bash's msys OSC 7 reporter must %-escape the literal percent too" + ); + } + + /// Under Git Bash `$PWD` is an msys path (`/c/Users/x`). Windows reads that + /// as drive-relative, so it would land on `C:\c\Users\x` — a directory that + /// does not exist, silently killing the git-status probe and path completion, + /// and actively breaking split/new-tab (the client cwd wins over every + /// fallback in `pane::initial_working_directory`, so the next shell is + /// spawned with a bogus working directory). `pwd -W` is msys's translation + /// to the real Windows path. + #[test] + fn bash_reports_a_windows_path_under_msys() { + let s = BASH_INTEGRATION; + assert!( + s.contains(r#"if [[ "$OSTYPE" == msys* || "$OSTYPE" == cygwin* ]]"#), + "bash must detect msys/cygwin to pick its cwd reporter" + ); + assert!( + s.contains("builtin pwd -W"), + "bash's msys branch must translate the cwd with `pwd -W`" + ); + // `pwd -W` yields `C:/Users/x` with no leading slash; a file: URI needs + // one so the daemon's `strip_uri_drive_slash` recognises the drive. + assert!( + s.contains(r#"[[ "$d" != /* ]] && d="/$d""#), + "bash's msys branch must make the translated path URI-absolute" + ); + // Both `pwd -W` failing and it returning empty must fall back to $PWD + // rather than reporting an empty cwd. + assert!( + s.contains(r#"d="$(builtin pwd -W 2>/dev/null)" || d="$PWD""#), + "bash's msys branch must fall back to $PWD when `pwd -W` fails" + ); + assert!( + s.contains(r#"[[ -z "$d" ]] && d="$PWD""#), + "bash's msys branch must fall back to $PWD when `pwd -W` is empty" + ); } #[test] From 4e97253b534b17eff0b64d603d9a77aa9da8a3d9 Mon Sep 17 00:00:00 2001 From: thomas Date: Sun, 19 Jul 2026 18:27:01 +0800 Subject: [PATCH 21/53] fix(cwd): never run local filesystem operations on a remote pane's cwd MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A remote pane's OSC 7 reports a path in the remote's namespace. The git-status probe, path completion, link resolution, the git-diff and worktree shell-outs, session persistence and cwd inheritance all took it as a local path. Nothing gated this. `refresh_git_status`'s doc claimed remote panes have no cwd, but that holds only *before* the remote shell's OSC 7 arrives — after it, a native-SSH pane's remote path was fed to a local `git`, with only `Path::exists()` incidentally saving it. That guard is weakest exactly where it matters: on Windows `/home/me/proj` is not an invalid path but a drive-relative one resolving to `C:\home\me\proj`, so a machine that has such a directory would report an unrelated repo's branch and diff as the pane's own. Correctness must not rest on that collision never happening. Add `TerminalView::local_cwd()` — the pane's cwd only when the pane is not remote — and route every local filesystem/Command consumer through it. Cwd inheritance for new tabs and splits is gated too: an inherited cwd wins over every fallback in `initial_working_directory`, so a remote path reached the spawn as a Win32 working directory. Deliberately unchanged: `tab_cwd`, so "Copy Working Directory" still copies a remote pane's remote path, which is what it is for. Not fixed here: on a remote pane, path completion falls back to tty7's own directory and link resolution stops matching relative paths. Both degrade rather than mislead now; sourcing either from the remote is a separate piece of work. Co-Authored-By: Claude Opus 4.8 --- .gitignore | 5 +++-- src/terminal/view.rs | 48 ++++++++++++++++++++++++++++++++++------ src/ui/app.rs | 52 ++++++++++++++++++++++++++++++++++++-------- 3 files changed, 87 insertions(+), 18 deletions(-) diff --git a/.gitignore b/.gitignore index 2a91e011..2e73c3e6 100644 --- a/.gitignore +++ b/.gitignore @@ -8,8 +8,9 @@ .brooks-lint-history.json openwiki/.last-update.json -# dev-build throwaway config dir (cargo dev) -.tty7-dev/ +# dev-build throwaway config dirs (`cargo dev`, plus per-branch ones passed as +# --config-dir so a test run can't disturb a real profile) +.tty7-dev*/ # Claude Code agent worktrees (transient) .claude/worktrees/ diff --git a/src/terminal/view.rs b/src/terminal/view.rs index 7bf44e45..27257844 100644 --- a/src/terminal/view.rs +++ b/src/terminal/view.rs @@ -1065,6 +1065,26 @@ impl TerminalView { self.terminal.remote_context() } + /// The pane's cwd *only when it names a directory on this machine* — the + /// accessor every local filesystem or `Command` use must go through. + /// + /// A remote pane's OSC 7 reports a path in the remote's namespace + /// (`/home/me/proj` from an SSH host). Feeding that to a local `git` or + /// `read_dir` is meaningless, and on Windows it is worse than meaningless: + /// `/home/me/proj` is not an absolute path there but a *drive-relative* + /// one, so it silently resolves to `C:\home\me\proj`. That usually just + /// fails an `exists()` check — but if such a directory happens to exist, + /// the pane reports an unrelated local repo's branch and diff as its own. + /// Correctness must not rest on that collision never happening. + /// + /// Note this gates on the pane being remote, not on the shape of the path: + /// a local shell may legitimately sit in a directory whose name looks + /// remote, and Git Bash reports genuinely local paths (via `pwd -W`) that + /// merely originate from a POSIX-looking shell. + pub fn local_cwd(&self) -> Option { + self.remote_context().is_none().then(|| self.cwd())? + } + /// The coding agent running in this pane's foreground, or `None` when none /// is. Identity comes from the daemon's foreground-`argv` detection (plus /// the sentinel event channel, which can brand wrappers argv can't see @@ -2584,7 +2604,7 @@ impl TerminalView { .terminal .agent_session() .and_then(|s| s.cwd) - .or_else(|| self.cwd()); + .or_else(|| self.local_cwd()); if cwd_now.as_ref() != self.git_status_cwd.as_ref() || cmd_finished || turn_finished { self.refresh_git_status(cwd_now, cx); } @@ -2595,8 +2615,11 @@ impl TerminalView { /// brackets the flight (`begin_probe`/`finish_probe`): a probe already in /// flight for the same cwd absorbs this trigger instead of spawning a /// duplicate `git` shell-out, and reruns once when it lands. With no cwd - /// (e.g. a native-SSH pane pre-OSC-7, where a local `git` would be - /// meaningless) the pane simply stops reading a status. + /// (e.g. a remote pane, where a local `git` would be meaningless) the pane + /// simply stops reading a status. Callers must source the cwd from + /// [`local_cwd`](Self::local_cwd): a remote pane *does* get a cwd once its + /// OSC 7 lands, so "remote panes have no cwd" holds only before that and + /// cannot be what keeps the local probe away from a remote path. /// /// [`GitStatusCache`]: crate::terminal::git_status::GitStatusCache fn refresh_git_status(&mut self, cwd: Option, cx: &mut Context) { @@ -3320,8 +3343,13 @@ impl TerminalView { return; } - // Fresh completion. - let Some(cwd) = self.cwd().or_else(|| std::env::current_dir().ok()) else { + // Fresh completion. Path candidates come off the local filesystem, so + // the cwd must be a local one; on a remote pane this falls back to + // tty7's own dir, which is what already happened there before OSC 7 + // landed. Command/history completion is unaffected either way. Real + // remote-aware path completion would need the listing to come from the + // remote and is out of scope here. + let Some(cwd) = self.local_cwd().or_else(|| std::env::current_dir().ok()) else { return; }; let line = self.cmd.text(); @@ -3868,7 +3896,11 @@ impl TerminalView { text.push(term.grid()[line][Column(c)].c); } drop(term); - let cwd = self.cwd(); + // A relative path in the output is resolved against the cwd and + // stat-checked, then handed to the local file opener — so a remote + // pane's cwd must not be used. There, only absolute-looking local hits + // and URLs remain clickable. + let cwd = self.local_cwd(); if let Some(link) = super::search::link_at(&text, col, cwd.as_deref(), true) { match link.target { LinkTarget::Url(url) => self.open_url(&url, cx), @@ -4020,7 +4052,9 @@ impl TerminalView { text.push(term.grid()[line][Column(c)].c); } drop(term); - let cwd = self.cwd(); + // Same gate as the click path above — hover must not underline a link + // the click cannot open. + let cwd = self.local_cwd(); let link = super::search::link_at(&text, col, cwd.as_deref(), include_files).or_else(|| { include_loopback.then(|| { diff --git a/src/ui/app.rs b/src/ui/app.rs index a4fb4435..677dbf46 100644 --- a/src/ui/app.rs +++ b/src/ui/app.rs @@ -2073,11 +2073,14 @@ impl Tty7App { cx: &mut Context, ) { // Inherit the cwd of the active tab's focused terminal so the new tab - // opens in the same directory the user is currently working in. + // opens in the same directory the user is currently working in. Local + // cwds only: the new tab is a local shell, and an inherited cwd wins + // over every fallback in `pane::initial_working_directory`, so a remote + // path would be handed straight to the spawn as a working directory. let cwd = self.tabs.get(self.active).and_then(|t| { t.pane .focused_or_first(window, cx) - .and_then(|leaf| leaf.read(cx).cwd()) + .and_then(|leaf| leaf.read(cx).local_cwd()) }); let tab = new_terminal(self.font_size, cwd, None, shell, window, cx); // Leaving the current tab for the new one; snapshot its focused pane @@ -2172,8 +2175,10 @@ impl Tty7App { }; // The new pane inherits the cwd — and the shell, when the pane being // split was opened with an explicit pick (a WSL/fish tab splits into - // more WSL/fish, not back to the default). - let cwd = target.read(cx).cwd(); + // more WSL/fish, not back to the default). Local cwds only: the + // native-SSH branch below has the daemon discard it regardless, and the + // local branch would otherwise spawn against a remote path. + let cwd = target.read(cx).local_cwd(); // Splitting a native-SSH pane opens another SSH pane on the same // connection rather than dropping back to a local shell. Re-resolve the // persisted (secret-free) spec from its saved profile so keychain @@ -2470,7 +2475,7 @@ impl Tty7App { // Capture the tab's cwd *before* its panes are killed (the daemon can't // report it afterwards): if it sat in a tty7-managed worktree, the // cleanup offer below needs it. - let worktree_cwd = self.tab_cwd(index, window, cx); + let worktree_cwd = self.tab_local_cwd(index, window, cx); // Snapshot the tab (layout + each pane's current cwd + name) onto the // recently-closed stack so Cmd+Shift+T can bring it back. let snapshot = tab_to_session(&self.tabs[index], cx); @@ -2517,11 +2522,14 @@ impl Tty7App { let Some(cwd) = cwd else { return }; // Every leaf of every surviving tab, not just focused panes — a shell // tucked away in a split occupies the worktree all the same. + // Local paths only: this list is what stops a worktree being removed + // out from under a live shell, and a remote cwd can neither occupy a + // local worktree nor be compared against one meaningfully. let open_cwds: Vec = self .tabs .iter() .flat_map(|tab| tab.pane.leaves()) - .filter_map(|leaf| leaf.read(cx).cwd()) + .filter_map(|leaf| leaf.read(cx).local_cwd()) .collect(); cx.spawn(async move |this, cx| { let Some(wt) = cx @@ -2655,6 +2663,23 @@ impl Tty7App { .and_then(|leaf| leaf.read(cx).cwd()) } + /// [`tab_cwd`](Self::tab_cwd) restricted to a directory on this machine — + /// for the worktree operations, which shell out to a local `git`. "Copy + /// Working Directory" deliberately keeps using `tab_cwd`: copying a remote + /// pane's remote path is exactly what the user wants there. + fn tab_local_cwd( + &self, + index: usize, + window: &Window, + cx: &App, + ) -> Option { + self.tabs + .get(index)? + .pane + .focused_or_first(window, cx) + .and_then(|leaf| leaf.read(cx).local_cwd()) + } + /// "New Worktree Tab": probe the repository containing the tab's cwd for /// defaults (a fresh generated name, the current branch as start point) on /// the background executor, then open the confirmation sheet @@ -2666,7 +2691,7 @@ impl Tty7App { window: &mut Window, cx: &mut Context, ) { - let Some(cwd) = self.tab_cwd(index, window, cx) else { + let Some(cwd) = self.tab_local_cwd(index, window, cx) else { window.push_notification("This tab has no working directory yet", cx); return; }; @@ -3039,7 +3064,10 @@ impl Tty7App { .tabs .get(self.active) .and_then(|t| t.pane.focused_or_first(window, cx)) - .and_then(|view| view.read(cx).cwd()); + // Local `git` shell-out, so a remote pane's cwd is not usable — + // it reports "no known directory" rather than silently diffing + // whatever the path collides with locally. + .and_then(|view| view.read(cx).local_cwd()); let Some(cwd) = cwd else { crate::terminal::notify_desktop(Some("tty7"), "This pane has no known directory."); return; @@ -4519,7 +4547,13 @@ fn pane_to_session(pane: &Pane, cx: &App) -> SessionPane { Pane::Leaf(view) => { let view = view.read(cx); SessionPane::Leaf { - cwd: view.cwd(), + // Local cwd only. A restored pane whose daemon pane is gone + // respawns on the *default local shell* (a shell pick isn't + // persisted), so a remote cwd would come back paired with a + // local shell that cannot chdir into it. Native-SSH panes + // reconnect from `ssh_spec` and the daemon discards the cwd + // for them anyway (`server::SpawnNativeSsh`). + cwd: view.local_cwd(), pane_id: Some(view.pane_id), // Persist the secret-free native-SSH spec so a *dead* pane can be // reconnected on restore (FR-E4/C2); `None` for local panes. A From 87f865d55a926683c36618cfe67ed956b92d2437 Mon Sep 17 00:00:00 2001 From: thomas Date: Sun, 19 Jul 2026 18:46:52 +0800 Subject: [PATCH 22/53] fix(ssh): hide the console for ProxyCommand children too MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The daemon is spawned detached with no console of its own, so a ProxyCommand launched from it (`ssh -W`, `connect.exe`, `cloudflared`) had Windows allocate one — not a flash but a black window that stayed up for the whole session. `hide_console` takes `std::process::Command`; this site builds a `tokio::process::Command`, which is a distinct type with its own `creation_flags`. Add `hide_console_tokio` alongside it so the module comment's claim that every non-PTY Command goes through this file holds again. Co-Authored-By: Claude Opus 4.8 --- src/core/proc.rs | 21 +++++++++++++++++---- src/daemon/ssh/connect.rs | 4 ++++ 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/core/proc.rs b/src/core/proc.rs index fc473426..a23bdb0e 100644 --- a/src/core/proc.rs +++ b/src/core/proc.rs @@ -8,19 +8,32 @@ //! //! `CREATE_NO_WINDOW` suppresses the console entirely; stdout/stderr pipes are //! unaffected, so output capture keeps working. Every non-PTY `Command` in the -//! app should go through [`hide_console`] before it runs. PTY children are not -//! in scope — the daemon owns those and passes its own flags (see -//! [`crate::daemon::spawn`]). +//! app should go through [`hide_console`] (or [`hide_console_tokio`] for the +//! async flavor) before it runs. PTY children are not in scope — the daemon +//! owns those and passes its own flags (see [`crate::daemon::spawn`]). use std::process::Command; +#[cfg(windows)] +const CREATE_NO_WINDOW: u32 = 0x0800_0000; + /// Suppress the console window Windows would otherwise allocate for a console /// subsystem child. No-op on Unix, so callers stay `cfg`-free. pub fn hide_console(cmd: &mut Command) -> &mut Command { #[cfg(windows)] { use std::os::windows::process::CommandExt as _; - const CREATE_NO_WINDOW: u32 = 0x0800_0000; + cmd.creation_flags(CREATE_NO_WINDOW); + } + cmd +} + +/// [`hide_console`] for `tokio::process::Command`. Separate because tokio's +/// builder is a distinct type with its own `creation_flags`, not a `Deref` to +/// the std one. +pub fn hide_console_tokio(cmd: &mut tokio::process::Command) -> &mut tokio::process::Command { + #[cfg(windows)] + { cmd.creation_flags(CREATE_NO_WINDOW); } cmd diff --git a/src/daemon/ssh/connect.rs b/src/daemon/ssh/connect.rs index bc10c484..319d989c 100644 --- a/src/daemon/ssh/connect.rs +++ b/src/daemon/ssh/connect.rs @@ -173,6 +173,10 @@ fn spawn_proxy_command( .stdout(std::process::Stdio::piped()) .stderr(std::process::Stdio::inherit()) .kill_on_drop(true); + // The daemon is detached and has no console to lend this child, so without + // the flag a `ProxyCommand` (`ssh -W`, `connect.exe`, `cloudflared`) gets a + // console of its own that stays up for the whole session. + crate::core::proc::hide_console_tokio(&mut cmd); let mut child = cmd .spawn() .map_err(|e| anyhow::anyhow!("spawn ProxyCommand failed: {e}"))?; From 2dbeb21b19dc5bebc5e6365363378720deab6ba1 Mon Sep 17 00:00:00 2001 From: thomas Date: Sun, 19 Jul 2026 18:49:08 +0800 Subject: [PATCH 23/53] fix(terminal): keep contraction apostrophes out of quote pairing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `quote_range` paired quotes by parity, so English prose broke it: in `it's a test, isn't it` the apostrophe in `it's` reads as an opener and pairs with the one in `isn't`, and a double-click on either selects `'s a test, isn'` instead of the stock `it's`. The existing comment anticipated this and claimed a missing match would fall through to `None`, but that only holds when the line has a single apostrophe — prose usually has two. This path also returns before the `extends` guard, so there was no safety net. Exclude contraction apostrophes (alphanumeric on both sides) throughout: clicking one falls through to the stock word, and they count neither toward the parity nor as a candidate match. `"` and `` ` `` are unaffected — they don't occur inside words. Genuine possessives like `the 'dogs' bark` still pair, since a delimiter always has a non-word char or a line edge on one side. Co-Authored-By: Claude Opus 4.8 --- src/terminal/smart_select.rs | 67 ++++++++++++++++++++++++++++++++---- 1 file changed, 61 insertions(+), 6 deletions(-) diff --git a/src/terminal/smart_select.rs b/src/terminal/smart_select.rs index ad076369..d71cbf84 100644 --- a/src/terminal/smart_select.rs +++ b/src/terminal/smart_select.rs @@ -425,22 +425,45 @@ pub(super) fn pair_range(chars: &[char], click: usize) -> Option<(usize, usize)> bracket_range(chars, click).or_else(|| quote_range(chars, click)) } +/// Whether the `'` at `i` is a contraction apostrophe rather than a quote. +/// +/// A delimiter has whitespace, punctuation, or a line edge on at least one +/// side; a contraction is welded into a word on both (`it's`, `isn't`, +/// `won't`). Only `'` needs this — `"` and `` ` `` don't appear inside words. +fn is_contraction(chars: &[char], i: usize) -> bool { + if chars[i] != '\'' { + return false; + } + let flanked = |j: Option| { + j.and_then(|j| chars.get(j)) + .is_some_and(|c| c.is_alphanumeric()) + }; + flanked(i.checked_sub(1)) && flanked(Some(i + 1)) +} + /// Select through a matching symmetric quote (`'`, `"`, `` ` ``). Open and /// close are the same char, so direction comes from parity: an even count of /// that quote before the click means it opens (match forward), odd means it -/// closes (match backward). Apostrophes in prose skew the parity, but a -/// missing match just falls through to `None`. +/// closes (match backward). +/// +/// Contraction apostrophes are excluded throughout — clicking one falls +/// through to the stock word, and they count neither toward the parity nor as +/// a candidate match. Without that, `it's a test, isn't it` pairs the two +/// contractions and a double-click on either selects `'s a test, isn'`. This +/// path returns before the `extends` guard that keeps other candidates +/// additive (see [`pair_is_plausible`]), so a bad match here has no safety net. pub(super) fn quote_range(chars: &[char], click: usize) -> Option<(usize, usize)> { let q = *chars.get(click)?; - if !SYMMETRIC_QUOTES.contains(&q) { + if !SYMMETRIC_QUOTES.contains(&q) || is_contraction(chars, click) { return None; } - let before = chars[..click].iter().filter(|&&c| c == q).count(); + let quote_at = |i: usize| chars[i] == q && !is_contraction(chars, i); + let before = (0..click).filter(|&i| quote_at(i)).count(); if before % 2 == 0 { - let close = (click + 1..chars.len()).find(|&i| chars[i] == q)?; + let close = (click + 1..chars.len()).find(|&i| quote_at(i))?; Some((click, close)) } else { - let open = (0..click).rev().find(|&i| chars[i] == q)?; + let open = (0..click).rev().find(|&i| quote_at(i))?; Some((open, click)) } } @@ -921,6 +944,38 @@ mod tests { assert_eq!(quote_range(&chars, 1), None); } + #[test] + fn contraction_apostrophes_do_not_pair() { + let chars: Vec = "it's a test, isn't it".chars().collect(); + // Clicking either contraction falls through to the stock word. + assert_eq!(quote_range(&chars, 2), None); + assert_eq!(quote_range(&chars, 16), None); + // And the whole line yields no smart candidate at all, so the + // double-click keeps alacritty's `it's`. + let text = "it's a test, isn't it"; + assert_eq!(range(text, 2), None); + } + + #[test] + fn contractions_do_not_skew_a_real_quote() { + // The apostrophes inside the quoted span must not flip the parity or + // steal the match from the genuine delimiters. + let chars: Vec = "echo 'it isn't so' done".chars().collect(); + let open = 5; + let close = chars.iter().rposition(|&c| c == '\'').unwrap(); + assert_eq!(quote_range(&chars, open), Some((open, close))); + assert_eq!(quote_range(&chars, close), Some((open, close))); + } + + #[test] + fn trailing_apostrophe_still_closes() { + // `dogs'` — the apostrophe has a word char only on its left, so it is + // a delimiter, not a contraction. + let chars: Vec = "the 'dogs' bark".chars().collect(); + assert_eq!(quote_range(&chars, 4), Some((4, 9))); + assert_eq!(quote_range(&chars, 9), Some((4, 9))); + } + #[test] fn directional_cjk_quotes_pair_like_brackets() { let chars: Vec = "他说“你好”了".chars().collect(); From 6c07356ea695d06c3dfc70a8cb7d264ec1d66874 Mon Sep 17 00:00:00 2001 From: thomas Date: Sun, 19 Jul 2026 18:53:34 +0800 Subject: [PATCH 24/53] fix(input): keep Kitty full mode off the IME path MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The `defer_to_ime` early return sat above `keystroke_to_bytes`, and the IME path terminates in `write_gap_text`, which writes raw UTF-8 with no Kitty awareness. So under REPORT_ALL_KEYS_AS_ESC a plain `a` reached the PTY as `a` instead of the `CSI 97;1;97u` the app negotiated — on macOS, unconditionally. Before this branch it worked on the default ABC layout, since the key reached the encoder whenever no IME source was active. Fold the check into `defer_to_ime` so both routing sites agree: it now declines under `report_all_keys`, and `prefers_ime_for_printable_keys` gets the same gate (CJK composition and "escape every key" are mutually exclusive by construction — an app that asks for the latter gets it). Disambiguate-only sessions are untouched: `encode_kitty` already declines unmodified text keys there, so the IME route is equivalent. The existing Kitty tests call `keystroke_to_bytes` directly and so could not see this. `defer_to_ime` now compiles under `test` on every platform and has coverage for the routing rule itself, so all three CI targets exercise it rather than the macOS runner alone. Co-Authored-By: Claude Opus 4.8 --- src/terminal/input.rs | 117 ++++++++++++++++++++++++++++++++++++++++-- src/terminal/view.rs | 16 ++++-- 2 files changed, 125 insertions(+), 8 deletions(-) diff --git a/src/terminal/input.rs b/src/terminal/input.rs index cda6a89d..5e0259bc 100644 --- a/src/terminal/input.rs +++ b/src/terminal/input.rs @@ -126,8 +126,21 @@ pub(super) fn reshape_option_keystroke( /// /// Chords are deliberately excluded: Ctrl/Cmd/Fn belong to the encoders below, /// and Option is owned by [`reshape_option_keystroke`]'s Meta policy. -#[cfg(target_os = "macos")] -pub(super) fn defer_to_ime(ks: &gpui::Keystroke) -> bool { +/// +/// REPORT_ALL_KEYS_AS_ESC is excluded too: it asks for every key as +/// `CSI ;[;]u`, and the IME path terminates in +/// `write_gap_text`, which writes raw UTF-8 with no Kitty awareness. Under that +/// mode text keys must stay on the [`keystroke_to_bytes`] path so they get +/// encoded. Disambiguate-only sessions are unaffected — [`encode_kitty`] +/// declines unmodified text keys there, so the IME route is equivalent. +/// +/// Compiled under `test` on every platform so the routing rule is covered by +/// CI everywhere, not just on the macOS runner. +#[cfg(any(target_os = "macos", test))] +pub(super) fn defer_to_ime(ks: &gpui::Keystroke, kitty: KittyFlags) -> bool { + if kitty.report_all_keys { + return false; + } let m = &ks.modifiers; if m.control || m.platform || m.function || m.alt { return false; @@ -564,7 +577,16 @@ impl InputHandler for TerminalInputHandler { false } - fn prefers_ime_for_printable_keys(&mut self, window: &mut Window, _cx: &mut App) -> bool { + fn prefers_ime_for_printable_keys(&mut self, window: &mut Window, cx: &mut App) -> bool { + // REPORT_ALL_KEYS_AS_ESC wants every key as `CSI ;[;]u`, + // which only `keystroke_to_bytes` produces — the IME path commits raw + // UTF-8. Keep printable keys on the dispatch path so they get encoded, + // matching the same gate in `on_key_down`. CJK composition and "escape + // every key" are mutually exclusive by construction; an app that asks + // for the latter gets it. + if self.view.read(cx).kitty_flags().report_all_keys { + return false; + } // While a multi-key keybinding is mid-sequence — e.g. the tmux preset's // `ctrl-b` prefix is held pending — the next key belongs to the keymap, // not the IME. macOS otherwise diverts printable keys straight to the IME @@ -596,9 +618,29 @@ impl InputHandler for TerminalInputHandler { #[cfg(test)] mod tests { - use super::{KittyFlags, keystroke_to_bytes, reshape_option_keystroke, tab_bytes}; + use super::{ + KittyFlags, defer_to_ime, keystroke_to_bytes, reshape_option_keystroke, tab_bytes, + }; use gpui::{Keystroke, Modifiers}; + /// Kitty full mode: every key escaped, with the produced text attached. + fn full_mode() -> KittyFlags { + KittyFlags { + disambiguate: true, + report_all_keys: true, + report_text: true, + } + } + + /// Level 1 only — the mode a shell leaves on after a TUI exits. + fn disambiguate_only() -> KittyFlags { + KittyFlags { + disambiguate: true, + report_all_keys: false, + report_text: false, + } + } + /// The legacy call shape used by the pre-existing tests: encode with the Kitty /// protocol off, exercising exactly the byte output shells see by default. fn legacy(ks: &Keystroke) -> Option> { @@ -613,6 +655,73 @@ mod tests { } } + #[test] + fn plain_text_defers_to_the_ime_unless_kitty_wants_every_key() { + let plain = Modifiers::default(); + let a = ks(plain, "a", Some("a")); + + // Default and disambiguate-only: text belongs to the IME, which is the + // only path that carries a synthesized event's real Unicode payload. + assert!(defer_to_ime(&a, KittyFlags::default())); + assert!(defer_to_ime(&a, disambiguate_only())); + + // Full mode: the IME commits raw UTF-8, so deferring would drop the + // `CSI 97;1;97u` the app negotiated for. Stay on the encoder path. + assert!(!defer_to_ime(&a, full_mode())); + assert_eq!( + keystroke_to_bytes(&a, full_mode()), + Some(b"\x1b[97;1;97u".to_vec()), + ); + + // Space is text too, and follows the same rule. + let space = ks(plain, "space", Some(" ")); + assert!(defer_to_ime(&space, KittyFlags::default())); + assert!(!defer_to_ime(&space, full_mode())); + } + + #[test] + fn shifted_text_follows_the_same_ime_rule() { + let shift = Modifiers { + shift: true, + ..Default::default() + }; + let upper = ks(shift, "a", Some("A")); + assert!(defer_to_ime(&upper, KittyFlags::default())); + assert!(!defer_to_ime(&upper, full_mode())); + } + + #[test] + fn non_text_keys_never_defer_to_the_ime() { + let plain = Modifiers::default(); + // No `key_char` at all — arrows, F-keys, backspace, escape. + assert!(!defer_to_ime( + &ks(plain, "left", None), + KittyFlags::default() + )); + assert!(!defer_to_ime( + &ks(plain, "backspace", None), + KittyFlags::default() + )); + // Control chars are filtered even when a `key_char` is present. + assert!(!defer_to_ime( + &ks(plain, "enter", Some("\n")), + KittyFlags::default() + )); + assert!(!defer_to_ime( + &ks(plain, "tab", Some("\t")), + KittyFlags::default() + )); + // Chords belong to the encoders, not the IME. + let ctrl = Modifiers { + control: true, + ..Default::default() + }; + assert!(!defer_to_ime( + &ks(ctrl, "c", Some("c")), + KittyFlags::default() + )); + } + #[test] fn keystroke_to_bytes_maps_control_letters() { let ctrl = Modifiers { diff --git a/src/terminal/view.rs b/src/terminal/view.rs index f37210f7..91a050b0 100644 --- a/src/terminal/view.rs +++ b/src/terminal/view.rs @@ -1372,10 +1372,18 @@ impl TerminalView { // `key_char` from the virtual keycode, which is a lie for synthesized // events). Decline the key without consuming it and gpui hands the // native event to the input context, which delivers the real text via - // `commit_text`. A pending multi-key chord is the exception: that key - // belongs to the keymap, matching `prefers_ime_for_printable_keys`. + // `commit_text`. + // + // Kitty's REPORT_ALL_KEYS_AS_ESC is the exception — `defer_to_ime` + // declines under it so the key reaches the encoder below. + // + // A pending multi-key chord is already handled before this point: a key + // that completes a sequence is dispatched as an action and never + // reaches `on_key_down`. The check below is belt-and-braces (gpui takes + // `pending_input` earlier in `dispatch_key_event`, so it never fires + // here) and mirrors `prefers_ime_for_printable_keys`, which *is* live. #[cfg(target_os = "macos")] - if !window.has_pending_keystrokes() && super::input::defer_to_ime(ks) { + if !window.has_pending_keystrokes() && super::input::defer_to_ime(ks, self.kitty_flags()) { return; } @@ -2070,7 +2078,7 @@ impl TerminalView { /// local `Term`'s mode bits (the reader thread keeps them current by advancing /// the emulator over all child output). Consulted by the key encoder so TUIs /// that opt into the protocol get `CSI u` reports. - fn kitty_flags(&self) -> super::input::KittyFlags { + pub(super) fn kitty_flags(&self) -> super::input::KittyFlags { super::input::KittyFlags::from_mode(self.terminal.term.lock().mode()) } From e723bc7fd1ac9b694b8ac91b8ec66f8b8d612ddf Mon Sep 17 00:00:00 2001 From: thomas Date: Sun, 19 Jul 2026 18:58:43 +0800 Subject: [PATCH 25/53] fix(shell-integration): decline WSL's bash.exe and untranslatable cwds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two holes in the Git Bash support. `shell_kind` matched any `bash.exe`, including `C:\Windows\System32\bash.exe` — the WSL launcher, which exists on any machine with WSL and normally precedes `Git\bin` on PATH. Injecting into it is destructive rather than merely useless: `--rcfile` *replaces* `~/.bashrc` instead of supplementing it, and the Windows path we pass does not exist inside the distro, so the user silently loses aliases, prompt, and PATH. Identify msys bash positively and fail closed — a bare `bash`/`bash.exe` is declined too, since its PATH lookup is exactly what we cannot predict. The cost of a false negative is only the absence of a feature that did not exist before. `pwd -W` is the identity for msys-only virtual mounts (`/proc`, `/dev`), which have no Windows path at all, and the `[[ "$d" != /* ]]` test could not tell a translated path from an untranslated one. Require a drive letter and report nothing otherwise: the `$PWD` fallback would have re-emitted the very msys path this branch exists to avoid, landing as drive-relative `C:\proc` and failing the next spawn. Staying silent leaves the daemon holding the last usable cwd. The prior OSC 7 test asserted only that the marker was emitted, so the payload shape went unchecked; it now round-trips through the daemon's own `parse_osc7`, including the case the guard suppresses. Co-Authored-By: Claude Opus 4.8 --- src/daemon/shell_integration.rs | 167 ++++++++++++++++++++++++++++---- 1 file changed, 149 insertions(+), 18 deletions(-) diff --git a/src/daemon/shell_integration.rs b/src/daemon/shell_integration.rs index b062673f..7b9c362a 100644 --- a/src/daemon/shell_integration.rs +++ b/src/daemon/shell_integration.rs @@ -279,17 +279,27 @@ if [[ $- == *i* ]] && [[ -z "$TTY7_SHELL_INTEGRATION" ]]; then # mounts with no drive at all. The daemon runs Windows-side, where `/c/Users/x` # is not absolute but *drive-relative*, so it resolves to a bogus `C:\c\Users\x` # (see `pane::strip_uri_drive_slash`, which only un-prefixes `/C:/…`). `pwd -W` - # is msys's own translation to the real Windows path and maps msys-only mounts - # correctly (`/tmp` -> `C:/Users/x/AppData/Local/Temp`). It has no leading - # slash, so add one to make it the absolute-path shape a file: URI expects. - # Branch once at install time rather than on every prompt. + # is msys's own translation to the real Windows path, and it resolves mounts + # that have a real backing directory (`/tmp` -> `C:/Users/x/AppData/Local/Temp`). + # It has no leading slash, so add one to make it the absolute-path shape a + # file: URI expects. + # + # For msys-only virtual mounts (`/proc`, `/dev`) there *is* no Windows path + # and `pwd -W` is the identity, so require a drive letter and stay silent + # otherwise — a `/proc` payload would land as drive-relative `C:\proc` and + # fail the next spawn, whereas reporting nothing leaves the daemon holding + # the last usable cwd. Testing the shape beats testing for a leading slash, + # which cannot tell a translated path from an untranslated one. + # + # The branch is resolved once at install time; the `$(…)` inside still forks + # per prompt (~6.8 ms under msys, vs ~0.3 ms for the plain `$PWD` path), which + # is the price of a correct path and only paid by Git Bash panes. if [[ "$OSTYPE" == msys* || "$OSTYPE" == cygwin* ]]; then __tty7_report_cwd() { local d - d="$(builtin pwd -W 2>/dev/null)" || d="$PWD" - [[ -z "$d" ]] && d="$PWD" - [[ "$d" != /* ]] && d="/$d" - builtin printf '\e]7;file://%s%s\a' "${HOSTNAME:-localhost}" "${d//\%/%25}" + d="$(builtin pwd -W 2>/dev/null)" || return 0 + [[ "$d" == ?:* ]] || return 0 + builtin printf '\e]7;file://%s/%s\a' "${HOSTNAME:-localhost}" "${d//\%/%25}" } else __tty7_report_cwd() { builtin printf '\e]7;file://%s%s\a' "${HOSTNAME:-localhost}" "${PWD//\%/%25}"; } @@ -772,6 +782,7 @@ fn shell_kind(program: Option<&str>) -> Option { .to_ascii_lowercase(); match base.strip_suffix(".exe").unwrap_or(&base) { "zsh" => Some(ShellKind::Zsh), + "bash" if cfg!(windows) && !is_msys_bash(&owned) => None, "bash" => Some(ShellKind::Bash), "fish" => Some(ShellKind::Fish), "powershell" | "pwsh" => Some(ShellKind::PowerShell), @@ -779,6 +790,38 @@ fn shell_kind(program: Option<&str>) -> Option { } } +/// Whether a Windows `bash` program path is the msys bash that Git for Windows +/// (or msys2) ships, as opposed to `C:\Windows\System32\bash.exe` — the WSL +/// launcher, which exists on any machine with WSL and normally sits ahead of +/// `Git\bin` on PATH. +/// +/// The asymmetry is why this fails closed: getting it wrong in the WSL +/// direction is destructive, because `--rcfile` *replaces* `~/.bashrc` rather +/// than supplementing it and the path we pass does not exist inside the distro +/// — the user silently loses aliases, prompt, and PATH. Getting it wrong in the +/// Git Bash direction merely costs them shell integration, which they did not +/// have before it was implemented. So anything not positively identifiable as +/// msys is declined, including a bare `bash` / `bash.exe` whose PATH lookup we +/// cannot predict. +/// +/// Always `true` off Windows: `cfg!(windows)` gates the only call site, and +/// keeping the body platform-neutral lets the tests run everywhere. +fn is_msys_bash(program: &str) -> bool { + if !cfg!(windows) { + return true; + } + let normalized = program.replace('/', "\\").to_ascii_lowercase(); + let Some((dir, _)) = normalized.rsplit_once('\\') else { + return false; // bare name — resolved through PATH at spawn time + }; + let system_root = std::env::var("SystemRoot") + .unwrap_or_else(|_| r"C:\Windows".to_string()) + .replace('/', "\\") + .to_ascii_lowercase(); + let system_root = system_root.trim_end_matches('\\'); + !(dir == system_root || dir.starts_with(&format!("{system_root}\\"))) +} + /// A unique throwaway dir under the OS temp dir, prefixed for later /// recognition (see `is_our_zdotdir`), one *per pane*. We avoid Date/random by /// combining the process id with a monotonic counter: the daemon is one @@ -1179,12 +1222,51 @@ mod tests { /// bash reachable on Windows silently gets no integration. #[test] fn shell_kind_strips_exe_for_non_powershell_shells() { - for prog in ["bash.exe", "BASH.EXE", "C:/Program Files/Git/bin/bash.exe"] { + for prog in [ + "C:/Program Files/Git/bin/bash.exe", + "C:/msys64/usr/bin/bash.exe", + ] { assert!( matches!(shell_kind(Some(prog)), Some(ShellKind::Bash)), "{prog} should map to Bash" ); } + // Off Windows the guard is inert, so the bare spellings still resolve. + if !cfg!(windows) { + for prog in ["bash.exe", "BASH.EXE", "bash"] { + assert!(matches!(shell_kind(Some(prog)), Some(ShellKind::Bash))); + } + } + } + + /// `C:\Windows\System32\bash.exe` is the WSL launcher, not a shell we can + /// inject into: `--rcfile` replaces `~/.bashrc` rather than adding to it, + /// and the Windows path we pass does not exist inside the distro, so the + /// user would silently lose their whole bash config. It also normally sits + /// ahead of `Git\bin` on PATH, which is why a bare name is declined too. + #[test] + #[cfg(windows)] + fn shell_kind_declines_the_wsl_bash_launcher() { + let system_root = std::env::var("SystemRoot").unwrap_or_else(|_| r"C:\Windows".into()); + for prog in [ + format!(r"{system_root}\System32\bash.exe"), + format!(r"{system_root}/System32/bash.exe"), + format!(r"{system_root}\SysWOW64\bash.exe"), + format!(r"{system_root}\system32\BASH.EXE"), + ] { + assert!( + shell_kind(Some(&prog)).is_none(), + "{prog} is the WSL launcher and must not be treated as Bash" + ); + } + // A bare name resolves through PATH at spawn time, where System32 + // usually wins — unpredictable, so fail closed. + for prog in ["bash", "bash.exe", "BASH.EXE"] { + assert!( + shell_kind(Some(prog)).is_none(), + "{prog} cannot be identified as msys bash and must be declined" + ); + } } /// The rcfile path is handed to msys2 bash, which reads `\` as an escape in @@ -1429,21 +1511,63 @@ mod tests { // `pwd -W` yields `C:/Users/x` with no leading slash; a file: URI needs // one so the daemon's `strip_uri_drive_slash` recognises the drive. assert!( - s.contains(r#"[[ "$d" != /* ]] && d="/$d""#), + s.contains(r#"file://%s/%s"#), "bash's msys branch must make the translated path URI-absolute" ); - // Both `pwd -W` failing and it returning empty must fall back to $PWD - // rather than reporting an empty cwd. + // `pwd -W` is the identity for msys-only virtual mounts (`/proc`, + // `/dev`), which have no Windows path at all. Requiring a drive letter + // is what separates a translated path from an untranslated one — a + // leading-slash test cannot. Falling back to `$PWD` would defeat the + // whole point, so silence is the only safe answer here. assert!( - s.contains(r#"d="$(builtin pwd -W 2>/dev/null)" || d="$PWD""#), - "bash's msys branch must fall back to $PWD when `pwd -W` fails" + s.contains(r#"[[ "$d" == ?:* ]] || return 0"#), + "bash's msys branch must report nothing when `pwd -W` yields no drive" ); assert!( - s.contains(r#"[[ -z "$d" ]] && d="$PWD""#), - "bash's msys branch must fall back to $PWD when `pwd -W` is empty" + !s.contains(r#"d="$PWD""#), + "bash's msys branch must never fall back to the untranslated $PWD" ); } + /// The payload the msys branch builds must survive the daemon's own parser + /// and come out as a path Windows can actually use — the shape assertions + /// above cannot see that. Mirrors what `__tty7_report_cwd` emits. + #[test] + fn msys_payload_round_trips_through_parse_osc7() { + let parse = |payload: &str| { + crate::daemon::pane::parse_osc7(payload.as_bytes()) + .unwrap_or_else(|| panic!("{payload} should parse")) + }; + for (translated, want) in [ + ("C:/Users/thoma/repo", "C:/Users/thoma/repo"), + ("C:/", "C:/"), + ("D:/work/a b", "D:/work/a b"), + // The `%` the reporter escapes must survive the round trip. + ("C:/tmp/a%25c", "C:/tmp/a%c"), + ] { + let got = parse(&format!("7;file://localhost/{translated}")); + let want = if cfg!(windows) { + PathBuf::from(want) + } else { + PathBuf::from(format!("/{want}")) + }; + assert_eq!(got, want, "payload for {translated}"); + } + + // And the shape the guard exists to suppress: an untranslated msys path + // parses fine but yields a drive-relative path Windows resolves against + // the current drive, which is how `/c/Users/x` became `C:\c\Users\x`. + if cfg!(windows) { + let got = parse("7;file://localhost/c/Users/thoma"); + assert_ne!(got, PathBuf::from("C:/Users/thoma")); + assert!( + !got.is_absolute(), + "{got:?} is drive-relative — Windows resolves it against the \ + current drive, which is why it must never be emitted" + ); + } + } + #[test] fn setup_fish_injects_startup_command_without_files() { let inj = setup_fish().expect("fish injection is infallible"); @@ -1508,7 +1632,14 @@ mod tests { assert!(inj.env.contains_key("TTY7_SHELL_INTEGRATION")); // bash without custom args → full injection with non-login override. - let inj = setup(Some("bash"), false).expect("bash setup"); + // On Windows only a path identifiable as msys counts as Bash, since a + // bare name could resolve to the WSL launcher — see `is_msys_bash`. + let bash = if cfg!(windows) { + "C:/Program Files/Git/bin/bash.exe" + } else { + "bash" + }; + let inj = setup(Some(bash), false).expect("bash setup"); assert!(inj.force_non_login); assert!(inj.env.contains_key("TTY7_SHELL_INTEGRATION")); if let Some(d) = inj.dir { @@ -1516,7 +1647,7 @@ mod tests { } // bash WITH custom args → we must not second-guess the user: no injection. - assert!(setup(Some("bash"), true).is_none()); + assert!(setup(Some(bash), true).is_none()); // PowerShell without custom args → encoded-command injection, no files. let inj = setup(Some("powershell.exe"), false).expect("powershell setup"); From 08ca3a3cf78c2dd42496514e1477d9cf5ab1d3ab Mon Sep 17 00:00:00 2001 From: thomas Date: Sun, 19 Jul 2026 19:04:59 +0800 Subject: [PATCH 26/53] fix(cwd): close the agent-cwd bypass and validate inherited dirs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Follow-ups to the `local_cwd` gate. The agent-reported cwd sat ahead of `local_cwd` in the git-status chain and bypassed the gate entirely. A native-SSH pane keeps sentinel-sourced agent state on purpose, so an agent running *on the remote host* reported a remote path that won unconditionally and reached the local `git` — the exact collision the gate exists to prevent, on its most likely trigger (running `claude` in an SSH pane). Route the agent's report through the same remote check. Completion's fallback to `std::env::current_dir()` meant a remote pane now offers *this* machine's filenames for insertion into a remote command line, where before the remote path simply failed `read_dir` and produced nothing. `complete` takes `Option<&Path>` so "no local filesystem" is an explicit contract: command completion still runs, path and signature sources are skipped. `apply_remote_context` left `st.cwd` pointing into the namespace it just left, so after `exit` from `ssh` a local shell without shell integration kept serving the remote's last path to the local `git` probe. Clear it on both sides of the boundary; `DaemonMsg::Cwd` has no cleared form, so the client mirrors it off `RemoteContext`. Finally, validate in `initial_working_directory`: whatever wins must be a directory *here*. This bounds the whole class rather than one shell's spelling — an unresolvable path now falls through to the next candidate instead of failing the spawn with "The directory name is invalid". Co-Authored-By: Claude Opus 4.8 --- src/daemon/pane.rs | 64 ++++++++++++++++++++++++++++- src/terminal/completion.rs | 83 +++++++++++++++++++++++++++++--------- src/terminal/remote.rs | 11 +++++ src/terminal/view.rs | 38 +++++++++++------ src/ui/app.rs | 7 +--- 5 files changed, 164 insertions(+), 39 deletions(-) diff --git a/src/daemon/pane.rs b/src/daemon/pane.rs index 4072e27a..3d46eda4 100644 --- a/src/daemon/pane.rs +++ b/src/daemon/pane.rs @@ -212,7 +212,17 @@ fn initial_working_directory(cwd: Option) -> Option { // client didn't pass an explicit cwd (tab-inherit / session restore still // win). Inherit -> `forced` is `None`, so we keep the fallback as before. let forced = crate::core::config::working_directory_base(); - cwd.or(forced).or(fallback) + // Whatever wins must actually be a directory *here*. A client cwd is only + // as good as the OSC 7 that produced it, and a shell that reports a path + // this machine cannot resolve — a remote namespace, or an msys path like + // `/c/Users/x` that Windows reads as drive-relative — would otherwise turn + // a new tab or split into a hard spawn failure ("The directory name is + // invalid") instead of quietly falling back. Cheap to check, and it bounds + // the whole class rather than one shell's spelling at a time. + [cwd, forced, fallback] + .into_iter() + .flatten() + .find(|d| d.is_dir()) } fn apply_common_command_setup(cmd: &mut CommandBuilder, initial_cwd: &Option) { @@ -1736,6 +1746,16 @@ fn apply_remote_context(st: &mut PaneState, remote: Option) { if st.remote == remote { return; } + // The cwd belonged to whichever side we are leaving, and it does not + // survive the crossing: a remote path is meaningless locally, and a local + // one is meaningless on the remote. Drop it so the pane reports no cwd + // until the new shell's OSC 7 lands, rather than attributing the old + // namespace's directory to the new one — otherwise a local shell without + // shell integration keeps serving the remote's last path to the local + // `git` probe for the rest of its life. + // `DaemonMsg::Cwd` carries a bare path with no "cleared" form, so the + // client mirrors this on its own when it sees the `RemoteContext` below. + st.cwd = None; if let Some(sub) = &st.subscriber { let _ = sub.send(DaemonMsg::RemoteContext(remote.clone())); } @@ -2102,6 +2122,48 @@ fn proc_name(pid: i32) -> Option { #[cfg(test)] mod tests { use super::*; + use std::path::Path; + + /// A cwd the client reports is only as trustworthy as the OSC 7 behind it. + /// Passing one this machine cannot resolve straight to `cmd.cwd()` turns a + /// new tab or split into a hard spawn failure, so anything that isn't a + /// real directory here must fall through to the next candidate instead. + #[test] + fn initial_working_directory_skips_paths_that_are_not_directories() { + let real = std::env::temp_dir(); + assert!(real.is_dir(), "temp dir should exist"); + + // A usable client cwd still wins outright. + assert_eq!( + initial_working_directory(Some(real.clone())), + Some(real.clone()) + ); + + // A remote-namespace path, and the msys shape Windows reads as + // drive-relative: neither resolves here, so neither may be used. + for bogus in [ + "/home/someone/definitely-not-here", + "/c/Users/definitely-not-here", + ] { + let got = initial_working_directory(Some(PathBuf::from(bogus))); + assert_ne!( + got.as_deref(), + Some(Path::new(bogus)), + "{bogus} is not a directory here and must not be handed to spawn" + ); + // Whatever we fall back to must itself be usable. + if let Some(d) = got { + assert!(d.is_dir(), "fallback {d:?} must be a real directory"); + } + } + + // A file is not a directory either. + let file = real.join("tty7-iwd-probe"); + std::fs::write(&file, b"x").expect("write probe file"); + let got = initial_working_directory(Some(file.clone())); + assert_ne!(got.as_deref(), Some(file.as_path())); + let _ = std::fs::remove_file(&file); + } /// End-to-end check of the *live* agent-detection chain this feature rides /// on macOS/Linux: spawn a real PTY child whose `argv[0]` names a coding diff --git a/src/terminal/completion.rs b/src/terminal/completion.rs index 119328bb..76cce717 100644 --- a/src/terminal/completion.rs +++ b/src/terminal/completion.rs @@ -121,7 +121,11 @@ const MAX_CANDIDATES: usize = 400; /// Compute completions for `line` at char position `cursor`, resolving relative /// paths against `cwd`: command names in command position, filesystem paths /// elsewhere. Returns `None` when there's nothing to offer. -pub fn complete(line: &str, cursor: usize, cwd: &Path) -> Option { +/// +/// `cwd` is `None` when the pane has no directory on *this* machine — a remote +/// pane. Command completion still runs; everything that would touch the local +/// filesystem is skipped rather than answered from the wrong machine. +pub fn complete(line: &str, cursor: usize, cwd: Option<&Path>) -> Option { let chars: Vec = line.chars().collect(); let cursor = cursor.min(chars.len()); @@ -141,9 +145,18 @@ pub fn complete(line: &str, cursor: usize, cwd: &Path) -> Option { // back to filesystem paths. A signature slot that declares suggestions // or generators owns the position: it returns `Some` (possibly with no // sync candidates but pending scripts) rather than ceding to paths. - match complete_signature(&chars, word_start, &word, cwd) { - Some(sig) => (sig.cands, sig.pending), - None => (complete_path(&word, cwd), Vec::new()), + match cwd { + // No local cwd — a remote pane. The filesystem here is not the one + // the command will run against, so offer nothing rather than this + // machine's names, which would be inserted into a remote command + // line where they do not exist. Command completion above still + // works; real remote-aware path completion would have to source + // the listing from the remote and is out of scope. + None => (Vec::new(), Vec::new()), + Some(cwd) => match complete_signature(&chars, word_start, &word, cwd) { + Some(sig) => (sig.cands, sig.pending), + None => (complete_path(&word, cwd), Vec::new()), + }, } }; let candidates: Vec = word_cands @@ -688,7 +701,7 @@ mod tests { /// The candidate texts `complete` returns for `line` with the cursor at the /// end, or an empty vec when it offers nothing. fn texts(line: &str) -> Vec { - complete(line, line.chars().count(), Path::new("/")) + complete(line, line.chars().count(), Some(Path::new("/"))) .map(|c| c.candidates.into_iter().map(|c| c.text).collect()) .unwrap_or_default() } @@ -699,7 +712,7 @@ mod tests { assert!(t.iter().any(|s| s == "commit"), "git subcommands: {t:?}"); assert!(t.iter().any(|s| s == "status")); // Descriptions ride along for the menu's second column. - let c = complete("git ", 4, Path::new("/")).unwrap(); + let c = complete("git ", 4, Some(Path::new("/"))).unwrap(); let commit = c.candidates.iter().find(|c| c.text == "commit").unwrap(); assert_eq!(commit.kind, CandidateKind::Value); assert!(commit.description.is_some()); @@ -714,7 +727,7 @@ mod tests { #[test] fn signature_offers_flags_for_the_active_subcommand() { - let c = complete("git commit --", 13, Path::new("/")).unwrap(); + let c = complete("git commit --", 13, Some(Path::new("/"))).unwrap(); let msg = c.candidates.iter().find(|c| c.text == "--message").unwrap(); assert_eq!(msg.kind, CandidateKind::Flag); assert_eq!( @@ -741,7 +754,8 @@ mod tests { // position — it returns the generator scripts and no path candidates. let dir = temp_tree("gen-checkout", &[("sentinel.txt", false), ("subdir", true)]); let line = "git checkout "; - let c = complete(line, line.chars().count(), &dir).expect("generator slot is a completion"); + let c = complete(line, line.chars().count(), Some(dir.as_path())) + .expect("generator slot is a completion"); assert!( !c.pending.is_empty(), "the branch/tag generators ride along as pending scripts" @@ -767,7 +781,7 @@ mod tests { fn generator_script_tokens_join_with_single_spaces() { // The converter word-split original string scripts; joining restores a // single `/bin/sh -c` command. - let c = complete("git checkout ", 13, Path::new("/")).unwrap(); + let c = complete("git checkout ", 13, Some(Path::new("/"))).unwrap(); let branch = c .pending .iter() @@ -825,7 +839,12 @@ mod tests { fn unknown_command_falls_back_to_paths() { // A command with no signature still path-completes (no panic, no menu here). let dir = temp_tree("fallback", &[("readme.md", false)]); - let c = complete("frobnicate read", "frobnicate read".chars().count(), &dir).unwrap(); + let c = complete( + "frobnicate read", + "frobnicate read".chars().count(), + Some(dir.as_path()), + ) + .unwrap(); assert_eq!(c.candidates[0].text, "readme.md"); } @@ -925,7 +944,7 @@ mod tests { #[test] fn command_position_offers_builtins_with_word_range() { - let c = complete("ech", 3, Path::new("/")).unwrap(); + let c = complete("ech", 3, Some(Path::new("/"))).unwrap(); let echo = c.candidates.iter().find(|c| c.text == "echo").unwrap(); assert_eq!(echo.kind, CandidateKind::Command); assert_eq!((echo.start, echo.end), (0, 3)); // replaces the word "ech" @@ -938,7 +957,7 @@ mod tests { &[("apple.txt", false), ("apply.sh", false), ("assets", true)], ); let line = "cat a"; - let c = complete(line, line.chars().count(), &dir).unwrap(); + let c = complete(line, line.chars().count(), Some(dir.as_path())).unwrap(); let names: Vec<&str> = c.candidates.iter().map(|c| c.text.as_str()).collect(); // Closeness order: assets(6) < apply.sh(8) < apple.txt(9). assert_eq!(names, vec!["assets", "apply.sh", "apple.txt"]); @@ -952,7 +971,7 @@ mod tests { let dir = temp_tree("nested", &[("sub", true)]); std::fs::write(dir.join("sub/file.rs"), b"").unwrap(); let line = "cat sub/f"; - let c = complete(line, line.chars().count(), &dir).unwrap(); + let c = complete(line, line.chars().count(), Some(dir.as_path())).unwrap(); assert_eq!(c.candidates[0].text, "sub/file.rs"); assert_eq!(c.candidates[0].start, 4); } @@ -960,9 +979,9 @@ mod tests { #[test] fn hidden_files_only_with_dot_prefix() { let dir = temp_tree("hidden", &[(".secret", false), ("visible", false)]); - let c = complete("ls v", 4, &dir).unwrap(); + let c = complete("ls v", 4, Some(dir.as_path())).unwrap(); assert!(c.candidates.iter().all(|c| !c.text.starts_with('.'))); - let c = complete("ls .", 4, &dir).unwrap(); + let c = complete("ls .", 4, Some(dir.as_path())).unwrap(); assert!(c.candidates.iter().any(|c| c.text == ".secret")); } @@ -978,18 +997,42 @@ mod tests { ], ); let line = "cat x"; - let c = complete(line, line.chars().count(), &dir).unwrap(); + let c = complete(line, line.chars().count(), Some(dir.as_path())).unwrap(); let names: Vec<&str> = c.candidates.iter().map(|c| c.text.as_str()).collect(); assert_eq!(names, vec!["xa", "xy", "xyz", "xyzzy"]); } + /// A remote pane has no local cwd. Path candidates must come back empty + /// rather than from tty7's own directory — inserting a local filename into + /// a remote command line names a file that isn't there. Command completion + /// is unaffected: it reads `$PATH`, not the cwd. + #[test] + fn a_remote_pane_completes_commands_but_never_local_paths() { + let dir = temp_tree("remote", &[("only-here.txt", false), ("subdir", true)]); + + // With a local cwd the file is offered... + let c = complete("cat only", 8, Some(dir.as_path())).expect("local pane completes paths"); + assert!(c.candidates.iter().any(|c| c.text.starts_with("only-here"))); + + // ...and with none it is not, from the same line. + assert!(complete("cat only", 8, None).is_none()); + // Nor does a bare argument position dump anything. + assert!(complete("cat ", 4, None).is_none()); + // A signature-owned slot must not shell out to a local generator either. + assert!(complete("git checkout ", 13, None).is_none()); + + // Command position still works — that source never touches the cwd. + let c = complete("ech", 3, None).expect("command completion needs no cwd"); + assert!(c.candidates.iter().any(|c| c.text == "echo")); + } + #[test] fn no_candidates_returns_none() { let dir = temp_tree("empty", &[("zzz", false)]); - assert!(complete("cat q", 5, &dir).is_none()); + assert!(complete("cat q", 5, Some(dir.as_path())).is_none()); // A blank line offers nothing (no dump of every command on bare Tab). - assert!(complete("", 0, &dir).is_none()); - assert!(complete(" ", 3, &dir).is_none()); + assert!(complete("", 0, Some(dir.as_path())).is_none()); + assert!(complete(" ", 3, Some(dir.as_path())).is_none()); } #[test] @@ -997,7 +1040,7 @@ mod tests { // Caret sits right after "ap" with more text following; the candidate // replaces only `word_start..cursor`, leaving the tail untouched. let dir = temp_tree("midline", &[("apple.txt", false)]); - let c = complete("cat ap x.log", 6, &dir).unwrap(); + let c = complete("cat ap x.log", 6, Some(dir.as_path())).unwrap(); let apple = c.candidates.iter().find(|c| c.text == "apple.txt").unwrap(); assert_eq!((apple.start, apple.end), (4, 6)); // Applying it splices over just that range. diff --git a/src/terminal/remote.rs b/src/terminal/remote.rs index 0031248c..fa4e20ec 100644 --- a/src/terminal/remote.rs +++ b/src/terminal/remote.rs @@ -668,6 +668,17 @@ impl RemoteTerminal { } DaemonMsg::RemoteContext(ctx) => { flush_batch!(); + // Crossing the local/remote boundary invalidates + // the cwd: it names a directory in the namespace + // we just left. Drop it so the pane reports none + // until the new shell's OSC 7 lands — otherwise + // an `exit` from `ssh` leaves the remote's last + // path in place, and a local shell without shell + // integration never overwrites it, so the local + // `git` probe keeps running against it. + if let Ok(mut guard) = cwd.lock() { + *guard = None; + } if let Ok(mut guard) = remote.lock() { *guard = ctx; } diff --git a/src/terminal/view.rs b/src/terminal/view.rs index 27257844..37f2c11d 100644 --- a/src/terminal/view.rs +++ b/src/terminal/view.rs @@ -2600,11 +2600,22 @@ impl TerminalView { // doesn't (Windows). The claim dies with the session (`session-end` // clears it, and the agent leaving the foreground drops the whole // state), so an exited agent falls back to the pane's real directory. + // The agent's report goes through the same remote gate as the pane's own + // cwd. A native-SSH pane keeps sentinel-sourced agent state on purpose + // (`spawn_native_ssh`), so an agent running *on the remote host* reports + // a remote path — and being first in the chain it would win over + // `local_cwd` unconditionally and hand that path straight to the local + // `git`, which is the collision `local_cwd` exists to prevent. let cwd_now = self - .terminal - .agent_session() - .and_then(|s| s.cwd) - .or_else(|| self.local_cwd()); + .remote_context() + .is_none() + .then(|| { + self.terminal + .agent_session() + .and_then(|s| s.cwd) + .or_else(|| self.cwd()) + }) + .flatten(); if cwd_now.as_ref() != self.git_status_cwd.as_ref() || cmd_finished || turn_finished { self.refresh_git_status(cwd_now, cx); } @@ -3344,17 +3355,17 @@ impl TerminalView { } // Fresh completion. Path candidates come off the local filesystem, so - // the cwd must be a local one; on a remote pane this falls back to - // tty7's own dir, which is what already happened there before OSC 7 - // landed. Command/history completion is unaffected either way. Real - // remote-aware path completion would need the listing to come from the - // remote and is out of scope here. - let Some(cwd) = self.local_cwd().or_else(|| std::env::current_dir().ok()) else { - return; + // they need a local cwd — a remote pane passes `None` and gets command + // completion only. Falling back to tty7's own directory there would + // offer *this* machine's filenames for insertion into a remote command + // line, where they don't exist. + let cwd = match self.remote_context() { + Some(_) => None, + None => self.local_cwd().or_else(|| std::env::current_dir().ok()), }; let line = self.cmd.text(); let cursor = self.cmd.cursor(); - let Some(comp) = super::completion::complete(&line, cursor, &cwd) else { + let Some(comp) = super::completion::complete(&line, cursor, cwd.as_deref()) else { return; }; @@ -3404,6 +3415,9 @@ impl TerminalView { // Kick off each generator on the background executor and merge results // back on the main thread, tagged with this session's generation. + // Generators are local shell-outs and only ever come from `complete`'s + // `Some(cwd)` branch, so a remote pane has none to run. + let Some(cwd) = cwd else { return }; for pending in comp.pending { let script = pending.script; let cwd = cwd.clone(); diff --git a/src/ui/app.rs b/src/ui/app.rs index 677dbf46..9e86a525 100644 --- a/src/ui/app.rs +++ b/src/ui/app.rs @@ -2667,12 +2667,7 @@ impl Tty7App { /// for the worktree operations, which shell out to a local `git`. "Copy /// Working Directory" deliberately keeps using `tab_cwd`: copying a remote /// pane's remote path is exactly what the user wants there. - fn tab_local_cwd( - &self, - index: usize, - window: &Window, - cx: &App, - ) -> Option { + fn tab_local_cwd(&self, index: usize, window: &Window, cx: &App) -> Option { self.tabs .get(index)? .pane From 5f7a7719386b76817720dd5efca13d6522183ecc Mon Sep 17 00:00:00 2001 From: thomas Date: Sun, 19 Jul 2026 19:58:27 +0800 Subject: [PATCH 27/53] feat(shell-integration): support WSL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `wsl.exe` is a launcher, not a shell, so the integration has to reach through it into the distro. Probe the distro's login shell, write the matching rcfile on the Windows side, and pass its path in via `WSLENV`, whose `/p` flag rewrites it to the distro's own view of the filesystem (`C:\…` -> `/mnt/c/…`) — so the `/mnt` automount root, which is configurable in `/etc/wsl.conf`, is never hardcoded. The argv becomes `[] -- sh -c 'exec --rcfile "$RC" -i'` rather than `-- --rcfile `: the path only exists as an env var *inside* the distro after translation, and `wsl.exe` execs its command directly with no shell to expand it. The one-shot `sh` execs away at once. No new shell code — the distro runs bash, so the existing snippet applies verbatim. Only bash is wired up; zsh and fish inside a distro are reachable the same way but each needs its own verification pass, and declining leaves those panes launching bare, as every WSL pane did before. Tag WSL panes with a new `RemoteKind::Wsl` so `TerminalView::local_cwd` declines their cwd. This is the load-bearing half: the distro reports `/home/me/proj`, which Windows reads not as invalid but as *drive-relative*, resolving to `C:\home\me\proj`. Without the tag, the local git probe, path completion, link resolution and cwd inheritance would all consume it — and on a machine that happens to have such a directory, silently consume the wrong one. The gate itself landed in #133; this adds the third kind to it. Two consequences of that tag needed explicit handling, since nothing matches exhaustively on `RemoteKind` and every miss would have been a silent fall-through: - the foreground-`ssh` poll cleared any context the probe didn't produce, which would have blanked the WSL tag (and the pane's cwd with it) twice a second. It now only replaces the kind it authors. - the tab status dot and `active_ssh_pane` treated "has a RemoteContext" as "is an SSH pane". Both now test the kind. `Injection::force_non_login` is renamed `replaces_argv`: bash needed it because `--rcfile` is ignored for login shells, WSL needs it because the launch flags and command must be reordered around `--`. The mechanism was always "these args replace rather than extend"; only the name was bash's. Verified end-to-end on a real ConPTY into a real distro — the new test asserts the full A/B/C/D cycle comes back through `wsl.exe`, which is the only way to show `WSLENV` translation, `wsl.exe`'s argv passing and the distro's own startup chain all survive together. It shares its harness with the Git Bash test, including the two ConPTY behaviors that harness encodes. 736 tests pass, clippy warning count unchanged. Co-Authored-By: Claude Opus 4.8 --- src/core/shells.rs | 8 + src/daemon/pane.rs | 128 +++++++- src/daemon/protocol.rs | 29 +- src/daemon/shell_integration.rs | 516 +++++++++++++++++++++++++++----- src/ui/app.rs | 19 +- 5 files changed, 600 insertions(+), 100 deletions(-) diff --git a/src/core/shells.rs b/src/core/shells.rs index 55359c3a..581023b2 100644 --- a/src/core/shells.rs +++ b/src/core/shells.rs @@ -308,6 +308,14 @@ pub fn git_bash_path() -> Option { find_git_bash() } +/// Installed WSL distributions. Exposed only to tests, for the same reason as +/// [`git_bash_path`]: the live-PTY check needs a real distro to launch into, +/// and skips itself when there is none. +#[cfg(all(windows, test))] +pub fn wsl_distros() -> Vec { + list_wsl_distros() +} + /// Git Bash from the usual Git-for-Windows install roots (machine-wide x64, /// x86, and the per-user installer's home). #[cfg(windows)] diff --git a/src/daemon/pane.rs b/src/daemon/pane.rs index 43309c3e..9dd2d813 100644 --- a/src/daemon/pane.rs +++ b/src/daemon/pane.rs @@ -163,7 +163,7 @@ fn apply_shell_integration( // sentinel builder. Integrations that need argv (fish `-C`, bash `--rcfile`, // PowerShell flags) must use an explicit command builder first. Env-only zsh // integration keeps the default login-shell path. - if integration.force_non_login || (cmd.is_default_prog() && !integration.args.is_empty()) { + if integration.replaces_argv || (cmd.is_default_prog() && !integration.args.is_empty()) { *cmd = CommandBuilder::new(resolved_program); } cmd.args(&integration.args); @@ -184,12 +184,52 @@ fn build_spawn_config( shell: Option, ) -> anyhow::Result { let initial_cwd = initial_working_directory(cwd); + // Computed before `build_shell_command` consumes the spec. + let remote = wsl_remote_context(shell.as_ref()); let (cmd, integration_dir) = build_shell_command(shell, &initial_cwd)?; Ok(SpawnConfig { cmd, initial_cwd, integration_dir, - remote: None, + remote, + }) +} + +/// Tag a `wsl.exe` pane as living in another filesystem namespace, from the +/// spawn spec rather than the process table — `wsl.exe` is exactly what tty7 +/// launched, so there is nothing to detect. +/// +/// This is what makes `TerminalView::local_cwd` decline the distro's cwd, and +/// so what keeps the local git probe, path completion, link resolution and cwd +/// inheritance away from a path that means nothing on this side (and that +/// Windows would read as drive-relative). It is set whether or not shell +/// integration succeeded: an unintegrated WSL pane reports no cwd today, but if +/// it ever does the gate must already be in place. +fn wsl_remote_context(shell: Option<&ShellSpec>) -> Option { + if !cfg!(windows) { + return None; + } + let spec = shell?; + let base = std::path::Path::new(&spec.program) + .file_name()? + .to_str()? + .to_ascii_lowercase(); + if base.strip_suffix(".exe").unwrap_or(&base) != "wsl" { + return None; + } + // The distro, when the args name one; otherwise `wsl.exe` picks the default + // and we have no name for it without another probe. + let target = spec + .args + .iter() + .position(|a| a == "--distribution" || a == "-d") + .and_then(|i| spec.args.get(i + 1)) + .cloned() + .unwrap_or_default(); + Some(RemoteContext { + kind: RemoteKind::Wsl, + argv: Vec::new(), + target, }) } @@ -218,12 +258,14 @@ fn build_shell_command( None => default_shell_name(&cmd), }; - // Shell integration: inject OSC 7 / OSC 133 hooks (zsh/fish/bash/PowerShell - // — see `daemon::shell_integration`). Best effort — `None` (an unsupported - // shell, or a bash/PowerShell with unpreservable custom args) means we launch - // bare. + // Shell integration: inject OSC 7 / OSC 133 hooks (zsh/fish/bash/PowerShell, + // and through `wsl.exe` into a distro — see `daemon::shell_integration`). + // Best effort — `None` (an unsupported shell, or one with unpreservable + // custom args) means we launch bare. The args go in because the WSL path + // reads the distro out of them. let integration = shell_integration::setup( Some(&resolved_program), + configured.as_ref().map_or(&[][..], |c| c.args.as_slice()), has_custom_args(configured.as_ref()), ); if let Some(integration) = &integration { @@ -938,15 +980,23 @@ impl DaemonPane { std::time::Instant::now() + REMOTE_CONTEXT_POLL_INTERVAL; } let remote = if poll_now { - // A native-SSH pane already carries its own remote - // context; process-table detection must not clobber - // it (this pane *is* SSH). Only a plain PTY pane gets - // foreground `ssh` detection. + // A pane tty7 itself spawned as remote (native SSH, + // or WSL) already carries its own context from the + // spawn spec; process-table detection must not + // clobber it. Only `Ssh` — the kind this very probe + // produces — may be replaced, so a pane that has + // since left a foreground `ssh` clears correctly. + // + // Testing `!= Ssh` rather than `== NativeSsh` is + // load-bearing for WSL: `wsl.exe` is not `ssh`, so + // the probe returns `None` and would blank the + // context on the very next poll — twice a second, + // each time also clearing the pane's cwd. let managed = { let st = state.lock().unwrap(); st.remote .as_ref() - .is_some_and(|remote| remote.kind == RemoteKind::NativeSsh) + .is_some_and(|remote| remote.kind != RemoteKind::Ssh) }; (!managed).then(&foreground_remote) } else { @@ -2316,13 +2366,65 @@ mod tests { assert!(!has_custom_args(None)); } + /// A WSL pane must be tagged as living in another filesystem namespace, so + /// `TerminalView::local_cwd` declines the distro's cwd and the local git + /// probe / completion / link resolution / cwd inheritance never see a path + /// that means nothing here — and that Windows would read as drive-relative + /// (`/home/me` -> `C:\home\me`) rather than reject. + #[cfg(windows)] + #[test] + fn wsl_panes_are_tagged_as_a_foreign_filesystem() { + let spec = |program: &str, args: Vec<&str>| ShellSpec { + program: program.to_string(), + args: args.into_iter().map(str::to_string).collect(), + args_are_tty7_defaults: true, + }; + + // The dropdown's WSL row. + let ctx = wsl_remote_context(Some(&spec( + "wsl.exe", + vec!["--distribution", "Ubuntu-24.04", "--cd", "~"], + ))) + .expect("wsl.exe must be tagged"); + assert_eq!(ctx.kind, RemoteKind::Wsl); + // The distro rides along as the target so the UI has a name for it. + assert_eq!(ctx.target, "Ubuntu-24.04"); + // Nothing reads `argv` for this kind; it is not an ssh invocation. + assert!(ctx.argv.is_empty()); + + // Short flag, and no flag at all (wsl.exe then picks the default + // distro — still a WSL pane, just one we have no name for). + assert_eq!( + wsl_remote_context(Some(&spec("wsl.exe", vec!["-d", "Debian"]))) + .expect("short flag") + .target, + "Debian" + ); + assert_eq!( + wsl_remote_context(Some(&spec("wsl.exe", vec![]))) + .expect("default distro is still WSL") + .target, + "" + ); + // Case- and suffix-insensitive, like every other Windows program name. + assert!(wsl_remote_context(Some(&spec(r"C:\Windows\System32\WSL.EXE", vec![]))).is_some()); + + // Everything else is a local pane and must not be tagged — tagging it + // would silently disable its git status, completion and cwd inheritance. + assert!(wsl_remote_context(Some(&spec("powershell.exe", vec![]))).is_none()); + assert!( + wsl_remote_context(Some(&spec(r"C:\Program Files\Git\bin\bash.exe", vec![]))).is_none() + ); + assert!(wsl_remote_context(None).is_none()); + } + #[test] fn arg_based_integration_rebuilds_default_shell_builder() { let mut cmd = CommandBuilder::new_default_prog(); let injection = shell_integration::Injection { env: std::collections::HashMap::new(), args: vec!["-C".to_string(), "echo ready".to_string()], - force_non_login: false, + replaces_argv: false, dir: None, }; @@ -2345,7 +2447,7 @@ mod tests { let injection = shell_integration::Injection { env, args: Vec::new(), - force_non_login: false, + replaces_argv: false, dir: None, }; diff --git a/src/daemon/protocol.rs b/src/daemon/protocol.rs index 7b5348f5..bfa5488e 100644 --- a/src/daemon/protocol.rs +++ b/src/daemon/protocol.rs @@ -132,14 +132,21 @@ pub struct PaneInfo { pub alive: bool, } -/// A foreground remote session the daemon can prove from the local process table. +/// A pane whose filesystem is not the host's — either a remote session, or a +/// local one behind a boundary the host's own tools can't follow (WSL). +/// +/// The common consequence, whatever the kind, is that the pane's cwd names a +/// path in *that* namespace: see `TerminalView::local_cwd`, which is what keeps +/// a local `git` / `read_dir` / spawn away from it. #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct RemoteContext { pub kind: RemoteKind, /// Original foreground argv. Kept so follow-up operations can preserve ssh - /// config flags such as `-F`, `-p`, and `-J` rather than guessing. + /// config flags such as `-F`, `-p`, and `-J` rather than guessing. Empty + /// for kinds that aren't detected from a foreground process. pub argv: Vec, - /// The destination token (`host`, `user@host`, or ssh config alias). + /// The destination token: `host`, `user@host`, or ssh config alias for the + /// ssh kinds; the distro name for [`RemoteKind::Wsl`]. pub target: String, } @@ -154,6 +161,15 @@ pub enum RemoteKind { /// (`daemon::ssh`). Forwarding / SFTP reach the connection through the /// in-memory registry. NativeSsh, + /// A `wsl.exe` pane: not remote in the network sense, but its shell lives + /// inside a distro with its own filesystem namespace, so a cwd it reports + /// (`/home/me/proj`) means nothing to the Windows-side host — and on + /// Windows is *drive-relative* rather than invalid, so it silently resolves + /// to `C:\home\me\proj`. Set at spawn time from the `ShellSpec`, not + /// detected from the process table. Nothing SSH-specific applies to it: + /// callers that mean "an SSH pane" must test the kind, not merely that a + /// `RemoteContext` is present. + Wsl, } #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] @@ -1544,6 +1560,13 @@ mod tests { argv: vec!["ssh".into(), "-p".into(), "2222".into(), "dev".into()], target: "dev".into(), })), + // A WSL pane's context rides the same wire; `kind` is serialized + // kebab-case, so this pins the encoding of the new variant. + DaemonMsg::RemoteContext(Some(RemoteContext { + kind: RemoteKind::Wsl, + argv: Vec::new(), + target: "Ubuntu-24.04".into(), + })), DaemonMsg::RemoteContext(None), DaemonMsg::Agent(Some(crate::core::cli_agent::CLIAgent::Claude)), DaemonMsg::Agent(Some(crate::core::cli_agent::CLIAgent::Codex)), diff --git a/src/daemon/shell_integration.rs b/src/daemon/shell_integration.rs index 7b9c362a..ab058a73 100644 --- a/src/daemon/shell_integration.rs +++ b/src/daemon/shell_integration.rs @@ -30,13 +30,18 @@ //! plain non-login shell instead and have our rcfile manually replay the //! login-shell startup-file chain (`/etc/profile`, `~/.bash_profile` & //! co.) before layering hooks on top — see [`setup_bash`] and -//! [`Injection::force_non_login`]. Bash also has no native precmd/preexec, +//! [`Injection::replaces_argv`]. Bash also has no native precmd/preexec, //! so the hook body vendors the relevant parts of //! [bash-preexec](https://github.com/rcaloras/bash-preexec) (MIT), the //! same shim VS Code relies on for this. This path covers Git Bash too — //! the msys2 bash Git for Windows ships is spawned as `bash.exe` by //! absolute path, and needs only its rcfile path spelled with forward //! slashes (see [`bash_path`]). +//! - **WSL** is not a shell but a launcher: `wsl.exe` starts a shell *inside* +//! a distro, so the integration has to reach through it. We probe the +//! distro's login shell, write the matching rcfile on the Windows side, and +//! pass its path in via `WSLENV`, which translates it to the distro's view +//! of the filesystem. See [`setup_wsl`]. Only bash is wired up so far. //! - **PowerShell** (the Windows default, and any `pwsh`) has no dotfile //! redirect either, but `-EncodedCommand` runs a script *after* its own //! profiles load — like fish's `-C`, no file on disk. It has no @@ -45,19 +50,22 @@ //! `PSConsoleHostReadLine`, PSReadLine's line reader (the closest thing to //! a preexec, for the C mark). See [`setup_powershell`]. //! -//! Across all four: **the user's own dotfiles are never modified** — the +//! Across all of them: **the user's own dotfiles are never modified** — the //! mechanisms above only affect shells tty7 itself launches. //! -//! The two remaining Windows dropdown entries stay unintegrated by design, not -//! omission. **cmd** exposes exactly one hook, the `PROMPT` env var, which can -//! emit the `A`/`B` marks but not `C` or `D`: it has no preexec/postexec, and -//! `PROMPT` is expanded when it is *set*, so even `%ERRORLEVEL%` is out of -//! reach. Since only `C` clears `at_prompt` (see `pane::handle_osc133`), an -//! A/B-only shell would leave the line editor owning the keyboard for the -//! whole of every command — worse than no integration. **WSL** is spawned as -//! `wsl.exe`, the Windows-side launcher; reaching the distro's own shell would -//! mean detecting which shell that is per distro and routing the injection -//! through `WSLENV` path translation, which is its own piece of work. +//! **cmd** stays unintegrated by design, not omission. It exposes exactly one +//! hook, the `PROMPT` env var, which can emit the `A`/`B` marks but not `C` or +//! `D`: it has no preexec/postexec, and `PROMPT` is expanded when it is *set*, +//! so even `%ERRORLEVEL%` is out of reach. Since only `C` clears `at_prompt` +//! (see `pane::handle_osc133`), an A/B-only shell would leave the line editor +//! owning the keyboard for the whole of every command — worse than no +//! integration at all. +//! +//! The install-guard sentinel (`TTY7_SHELL_INTEGRATION`, see [`setup`]) does +//! not cross into WSL, and deliberately isn't listed in `WSLENV`: only vars +//! named there cross, so a distro shell always starts with it unset — which is +//! correct, since it *is* a fresh top-level interactive shell. Its own +//! descendants inside the distro then see the `1` it exports, as on any Linux. use std::collections::HashMap; use std::path::{Path, PathBuf}; @@ -709,13 +717,20 @@ pub struct Injection { pub env: HashMap, /// Extra argv entries to append after the program (e.g. bash's /// `--rcfile `, fish's `-C