From 6f60939d301ae08e0dd384154a0a325dfa409f43 Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Wed, 16 Jul 2025 14:48:50 -0400 Subject: [PATCH 0001/1052] Bump Zed to v0.197 (#34569) Release Notes: -N/A --- Cargo.lock | 2 +- crates/zed/Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3950871688..b1b3ec32c8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -20095,7 +20095,7 @@ dependencies = [ [[package]] name = "zed" -version = "0.196.0" +version = "0.197.0" dependencies = [ "activity_indicator", "agent", diff --git a/crates/zed/Cargo.toml b/crates/zed/Cargo.toml index 3af1709b74..ae96a48b53 100644 --- a/crates/zed/Cargo.toml +++ b/crates/zed/Cargo.toml @@ -2,7 +2,7 @@ description = "The fast, collaborative code editor." edition.workspace = true name = "zed" -version = "0.196.0" +version = "0.197.0" publish.workspace = true license = "GPL-3.0-or-later" authors = ["Zed Team "] From 0bde929d548dc2f0733d8a33449067c642737d44 Mon Sep 17 00:00:00 2001 From: Anthony Eid <56899983+Anthony-Eid@users.noreply.github.com> Date: Wed, 16 Jul 2025 15:50:53 -0400 Subject: [PATCH 0002/1052] Add keymap editor UI telemetry events (#34571) - Search queries - Keybinding update or removed - Copy action name - Copy context name cc @katie-z-geer Release Notes: - N/A Co-authored-by: Ben Kunkle --- Cargo.lock | 1 + crates/settings/src/keymap_file.rs | 52 +++++++++++++++++ crates/settings_ui/Cargo.toml | 1 + crates/settings_ui/src/keybindings.rs | 81 ++++++++++++++++++++++++++- 4 files changed, 132 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b1b3ec32c8..091b944169 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14720,6 +14720,7 @@ dependencies = [ "serde", "serde_json", "settings", + "telemetry", "theme", "tree-sitter-json", "tree-sitter-rust", diff --git a/crates/settings/src/keymap_file.rs b/crates/settings/src/keymap_file.rs index d738e30c4f..e6a32f731b 100644 --- a/crates/settings/src/keymap_file.rs +++ b/crates/settings/src/keymap_file.rs @@ -847,6 +847,7 @@ impl KeymapFile { } } +#[derive(Clone)] pub enum KeybindUpdateOperation<'a> { Replace { /// Describes the keybind to create @@ -865,6 +866,47 @@ pub enum KeybindUpdateOperation<'a> { }, } +impl KeybindUpdateOperation<'_> { + pub fn generate_telemetry( + &self, + ) -> ( + // The keybind that is created + String, + // The keybinding that was removed + String, + // The source of the keybinding + String, + ) { + let (new_binding, removed_binding, source) = match &self { + KeybindUpdateOperation::Replace { + source, + target, + target_keybind_source, + } => (Some(source), Some(target), Some(*target_keybind_source)), + KeybindUpdateOperation::Add { source, .. } => (Some(source), None, None), + KeybindUpdateOperation::Remove { + target, + target_keybind_source, + } => (None, Some(target), Some(*target_keybind_source)), + }; + + let new_binding = new_binding + .map(KeybindUpdateTarget::telemetry_string) + .unwrap_or("null".to_owned()); + let removed_binding = removed_binding + .map(KeybindUpdateTarget::telemetry_string) + .unwrap_or("null".to_owned()); + + let source = source + .as_ref() + .map(KeybindSource::name) + .map(ToOwned::to_owned) + .unwrap_or("null".to_owned()); + + (new_binding, removed_binding, source) + } +} + impl<'a> KeybindUpdateOperation<'a> { pub fn add(source: KeybindUpdateTarget<'a>) -> Self { Self::Add { source, from: None } @@ -905,6 +947,16 @@ impl<'a> KeybindUpdateTarget<'a> { keystrokes.pop(); keystrokes } + + fn telemetry_string(&self) -> String { + format!( + "action_name: {}, context: {}, action_arguments: {}, keystrokes: {}", + self.action_name, + self.context.unwrap_or("global"), + self.action_arguments.unwrap_or("none"), + self.keystrokes_unparsed() + ) + } } #[derive(Clone, Copy, PartialEq, Eq)] diff --git a/crates/settings_ui/Cargo.toml b/crates/settings_ui/Cargo.toml index 4502d994e7..e512c4e4d4 100644 --- a/crates/settings_ui/Cargo.toml +++ b/crates/settings_ui/Cargo.toml @@ -34,6 +34,7 @@ search.workspace = true serde.workspace = true serde_json.workspace = true settings.workspace = true +telemetry.workspace = true theme.workspace = true tree-sitter-json.workspace = true tree-sitter-rust.workspace = true diff --git a/crates/settings_ui/src/keybindings.rs b/crates/settings_ui/src/keybindings.rs index 78636f7023..e0105fa875 100644 --- a/crates/settings_ui/src/keybindings.rs +++ b/crates/settings_ui/src/keybindings.rs @@ -1,6 +1,7 @@ use std::{ ops::{Not as _, Range}, sync::Arc, + time::Duration, }; use anyhow::{Context as _, anyhow}; @@ -12,7 +13,7 @@ use gpui::{ Action, Animation, AnimationExt, AppContext as _, AsyncApp, Axis, ClickEvent, Context, DismissEvent, Entity, EventEmitter, FocusHandle, Focusable, FontWeight, Global, IsZero, KeyContext, Keystroke, Modifiers, ModifiersChangedEvent, MouseButton, Point, ScrollStrategy, - ScrollWheelEvent, StyledText, Subscription, WeakEntity, actions, anchored, deferred, div, + ScrollWheelEvent, StyledText, Subscription, Task, WeakEntity, actions, anchored, deferred, div, }; use language::{Language, LanguageConfig, ToOffset as _}; use notifications::status_toast::{StatusToast, ToastIcon}; @@ -151,6 +152,13 @@ impl SearchMode { SearchMode::KeyStroke { .. } => SearchMode::Normal, } } + + fn exact_match(&self) -> bool { + match self { + SearchMode::Normal => false, + SearchMode::KeyStroke { exact_match } => *exact_match, + } + } } #[derive(Default, PartialEq, Copy, Clone)] @@ -249,6 +257,7 @@ struct KeymapEditor { keybinding_conflict_state: ConflictState, filter_state: FilterState, search_mode: SearchMode, + search_query_debounce: Option>, // corresponds 1 to 1 with keybindings string_match_candidates: Arc>, matches: Vec, @@ -347,6 +356,7 @@ impl KeymapEditor { context_menu: None, previous_edit: None, humanized_action_names, + search_query_debounce: None, }; this.on_keymap_changed(cx); @@ -371,10 +381,32 @@ impl KeymapEditor { } } - fn on_query_changed(&self, cx: &mut Context) { + fn on_query_changed(&mut self, cx: &mut Context) { let action_query = self.current_action_query(cx); let keystroke_query = self.current_keystroke_query(cx); + let exact_match = self.search_mode.exact_match(); + let timer = cx.background_executor().timer(Duration::from_secs(1)); + self.search_query_debounce = Some(cx.background_spawn({ + let action_query = action_query.clone(); + let keystroke_query = keystroke_query.clone(); + async move { + timer.await; + + let keystroke_query = keystroke_query + .into_iter() + .map(|keystroke| keystroke.unparse()) + .collect::>() + .join(" "); + + telemetry::event!( + "Keystroke Search Completed", + action_query = action_query, + keystroke_query = keystroke_query, + keystroke_exact_match = exact_match + ) + } + })); cx.spawn(async move |this, cx| { Self::update_matches(this.clone(), action_query, keystroke_query, cx).await?; this.update(cx, |this, cx| { @@ -474,6 +506,7 @@ impl KeymapEditor { } this.selected_index.take(); this.matches = matches; + cx.notify(); }) } @@ -864,6 +897,26 @@ impl KeymapEditor { return; }; let keymap_editor = cx.entity(); + + let arguments = keybind + .action_arguments + .as_ref() + .map(|arguments| arguments.text.clone()); + let context = keybind + .context + .as_ref() + .map(|context| context.local_str().unwrap_or("global")); + let source = keybind.source.as_ref().map(|source| source.1.clone()); + + telemetry::event!( + "Edit Keybinding Modal Opened", + keystroke = keybind.keystroke_text, + action = keybind.action_name, + source = source, + context = context, + arguments = arguments, + ); + self.workspace .update(cx, |workspace, cx| { let fs = workspace.app_state().fs.clone(); @@ -899,7 +952,7 @@ impl KeymapEditor { return; }; - let Ok(fs) = self + let std::result::Result::Ok(fs) = self .workspace .read_with(cx, |workspace, _| workspace.app_state().fs.clone()) else { @@ -929,6 +982,8 @@ impl KeymapEditor { let Some(context) = context else { return; }; + + telemetry::event!("Keybinding Context Copied", context = context.clone()); cx.write_to_clipboard(gpui::ClipboardItem::new_string(context.clone())); } @@ -944,6 +999,8 @@ impl KeymapEditor { let Some(action) = action else { return; }; + + telemetry::event!("Keybinding Action Copied", action = action.clone()); cx.write_to_clipboard(gpui::ClipboardItem::new_string(action.clone())); } @@ -2222,6 +2279,9 @@ async fn save_keybinding_update( from: Some(target), } }; + + let (new_keybinding, removed_keybinding, source) = operation.generate_telemetry(); + let updated_keymap_contents = settings::KeymapFile::update_keybinding(operation, keymap_contents, tab_size) .context("Failed to update keybinding")?; @@ -2231,6 +2291,13 @@ async fn save_keybinding_update( ) .await .context("Failed to write keymap file")?; + + telemetry::event!( + "Keybinding Updated", + new_keybinding = new_keybinding, + removed_keybinding = removed_keybinding, + source = source + ); Ok(()) } @@ -2266,6 +2333,7 @@ async fn remove_keybinding( .unwrap_or(KeybindSource::User), }; + let (new_keybinding, removed_keybinding, source) = operation.generate_telemetry(); let updated_keymap_contents = settings::KeymapFile::update_keybinding(operation, keymap_contents, tab_size) .context("Failed to update keybinding")?; @@ -2275,6 +2343,13 @@ async fn remove_keybinding( ) .await .context("Failed to write keymap file")?; + + telemetry::event!( + "Keybinding Removed", + new_keybinding = new_keybinding, + removed_keybinding = removed_keybinding, + source = source + ); Ok(()) } From 0023773c68d8c065cfd99d2a6dad3f8c23bf856c Mon Sep 17 00:00:00 2001 From: Peter Tripp Date: Wed, 16 Jul 2025 15:57:02 -0400 Subject: [PATCH 0003/1052] docs: Add Zed as Git Editor example (#34572) Release Notes: - N/A --- docs/src/git.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/src/git.md b/docs/src/git.md index 642861c7b0..76db15a767 100644 --- a/docs/src/git.md +++ b/docs/src/git.md @@ -151,3 +151,17 @@ When viewing files with changes, Zed displays diff hunks that can be expanded or | {#action editor::ToggleSelectedDiffHunks} | {#kb editor::ToggleSelectedDiffHunks} | > Not all actions have default keybindings, but can be bound by [customizing your keymap](./key-bindings.md#user-keymaps). + +## Git CLI Configuration + +If you would like to also use Zed for your [git commit message editor](https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration#_core_editor) when committing from the command line you can use `zed --wait`: + +```sh +git config --global core.editor "zed --wait" +``` + +Or add the following to your shell environment (in `~/.zshrc`, `~/.bashrc`, etc): + +```sh +export GIT_EDITOR="zed --wait" +``` From b4c2ae5196910d204370731892863aa3f931c90d Mon Sep 17 00:00:00 2001 From: Richard Feldman Date: Wed, 16 Jul 2025 16:31:31 -0400 Subject: [PATCH 0004/1052] Handle `upstream_http_error` completion responses (#34573) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Addresses upstream errors such as: Screenshot 2025-07-16 at 3 37 03 PM These should now automatically retry like other upstream HTTP error codes. Release Notes: - N/A --- crates/language_model/src/language_model.rs | 128 ++++++++++++++++++++ 1 file changed, 128 insertions(+) diff --git a/crates/language_model/src/language_model.rs b/crates/language_model/src/language_model.rs index 81a0f7d8a1..8962e9d8d1 100644 --- a/crates/language_model/src/language_model.rs +++ b/crates/language_model/src/language_model.rs @@ -178,6 +178,21 @@ pub enum LanguageModelCompletionError { } impl LanguageModelCompletionError { + fn parse_upstream_error_json(message: &str) -> Option<(StatusCode, String)> { + let error_json = serde_json::from_str::(message).ok()?; + let upstream_status = error_json + .get("upstream_status") + .and_then(|v| v.as_u64()) + .and_then(|status| u16::try_from(status).ok()) + .and_then(|status| StatusCode::from_u16(status).ok())?; + let inner_message = error_json + .get("message") + .and_then(|v| v.as_str()) + .unwrap_or(message) + .to_string(); + Some((upstream_status, inner_message)) + } + pub fn from_cloud_failure( upstream_provider: LanguageModelProviderName, code: String, @@ -191,6 +206,18 @@ impl LanguageModelCompletionError { Self::PromptTooLarge { tokens: Some(tokens), } + } else if code == "upstream_http_error" { + if let Some((upstream_status, inner_message)) = + Self::parse_upstream_error_json(&message) + { + return Self::from_http_status( + upstream_provider, + upstream_status, + inner_message, + retry_after, + ); + } + anyhow!("completion request failed, code: {code}, message: {message}").into() } else if let Some(status_code) = code .strip_prefix("upstream_http_") .and_then(|code| StatusCode::from_str(code).ok()) @@ -701,3 +728,104 @@ impl From for LanguageModelProviderName { Self(SharedString::from(value)) } } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_from_cloud_failure_with_upstream_http_error() { + let error = LanguageModelCompletionError::from_cloud_failure( + String::from("anthropic").into(), + "upstream_http_error".to_string(), + r#"{"code":"upstream_http_error","message":"Received an error from the Anthropic API: upstream connect error or disconnect/reset before headers. reset reason: connection timeout","upstream_status":503}"#.to_string(), + None, + ); + + match error { + LanguageModelCompletionError::ServerOverloaded { provider, .. } => { + assert_eq!(provider.0, "anthropic"); + } + _ => panic!( + "Expected ServerOverloaded error for 503 status, got: {:?}", + error + ), + } + + let error = LanguageModelCompletionError::from_cloud_failure( + String::from("anthropic").into(), + "upstream_http_error".to_string(), + r#"{"code":"upstream_http_error","message":"Internal server error","upstream_status":500}"#.to_string(), + None, + ); + + match error { + LanguageModelCompletionError::ApiInternalServerError { provider, message } => { + assert_eq!(provider.0, "anthropic"); + assert_eq!(message, "Internal server error"); + } + _ => panic!( + "Expected ApiInternalServerError for 500 status, got: {:?}", + error + ), + } + } + + #[test] + fn test_from_cloud_failure_with_standard_format() { + let error = LanguageModelCompletionError::from_cloud_failure( + String::from("anthropic").into(), + "upstream_http_503".to_string(), + "Service unavailable".to_string(), + None, + ); + + match error { + LanguageModelCompletionError::ServerOverloaded { provider, .. } => { + assert_eq!(provider.0, "anthropic"); + } + _ => panic!("Expected ServerOverloaded error for upstream_http_503"), + } + } + + #[test] + fn test_upstream_http_error_connection_timeout() { + let error = LanguageModelCompletionError::from_cloud_failure( + String::from("anthropic").into(), + "upstream_http_error".to_string(), + r#"{"code":"upstream_http_error","message":"Received an error from the Anthropic API: upstream connect error or disconnect/reset before headers. reset reason: connection timeout","upstream_status":503}"#.to_string(), + None, + ); + + match error { + LanguageModelCompletionError::ServerOverloaded { provider, .. } => { + assert_eq!(provider.0, "anthropic"); + } + _ => panic!( + "Expected ServerOverloaded error for connection timeout with 503 status, got: {:?}", + error + ), + } + + let error = LanguageModelCompletionError::from_cloud_failure( + String::from("anthropic").into(), + "upstream_http_error".to_string(), + r#"{"code":"upstream_http_error","message":"Received an error from the Anthropic API: upstream connect error or disconnect/reset before headers. reset reason: connection timeout","upstream_status":500}"#.to_string(), + None, + ); + + match error { + LanguageModelCompletionError::ApiInternalServerError { provider, message } => { + assert_eq!(provider.0, "anthropic"); + assert_eq!( + message, + "Received an error from the Anthropic API: upstream connect error or disconnect/reset before headers. reset reason: connection timeout" + ); + } + _ => panic!( + "Expected ApiInternalServerError for connection timeout with 500 status, got: {:?}", + error + ), + } + } +} From f82ef1f76ffd06670ebd7a509dd34666346fb679 Mon Sep 17 00:00:00 2001 From: Peter Tripp Date: Wed, 16 Jul 2025 16:55:54 -0400 Subject: [PATCH 0005/1052] agent: Support GEMINI_API_KEY environment variable (#34574) Google Gemini Docs now recommend usage of `GEMINI_API_KEY` and the legacy `GOOGLE_AI_API_KEY` variable is no longer supported in the modern SDKs. Zed will now accept either. Release Notes: - N/A --- crates/language_models/src/provider/google.rs | 9 ++++++--- docs/src/ai/configuration.md | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/crates/language_models/src/provider/google.rs b/crates/language_models/src/provider/google.rs index d1539dd22c..bd8a09970a 100644 --- a/crates/language_models/src/provider/google.rs +++ b/crates/language_models/src/provider/google.rs @@ -94,6 +94,7 @@ pub struct State { _subscription: Subscription, } +const GEMINI_API_KEY_VAR: &str = "GEMINI_API_KEY"; const GOOGLE_AI_API_KEY_VAR: &str = "GOOGLE_AI_API_KEY"; impl State { @@ -151,6 +152,8 @@ impl State { cx.spawn(async move |this, cx| { let (api_key, from_env) = if let Ok(api_key) = std::env::var(GOOGLE_AI_API_KEY_VAR) { (api_key, true) + } else if let Ok(api_key) = std::env::var(GEMINI_API_KEY_VAR) { + (api_key, true) } else { let (_, api_key) = credentials_provider .read_credentials(&api_url, &cx) @@ -903,7 +906,7 @@ impl Render for ConfigurationView { ) .child( Label::new( - format!("You can also assign the {GOOGLE_AI_API_KEY_VAR} environment variable and restart Zed."), + format!("You can also assign the {GEMINI_API_KEY_VAR} environment variable and restart Zed."), ) .size(LabelSize::Small).color(Color::Muted), ) @@ -922,7 +925,7 @@ impl Render for ConfigurationView { .gap_1() .child(Icon::new(IconName::Check).color(Color::Success)) .child(Label::new(if env_var_set { - format!("API key set in {GOOGLE_AI_API_KEY_VAR} environment variable.") + format!("API key set in {GEMINI_API_KEY_VAR} environment variable.") } else { "API key configured.".to_string() })), @@ -935,7 +938,7 @@ impl Render for ConfigurationView { .icon_position(IconPosition::Start) .disabled(env_var_set) .when(env_var_set, |this| { - this.tooltip(Tooltip::text(format!("To reset your API key, unset the {GOOGLE_AI_API_KEY_VAR} environment variable."))) + this.tooltip(Tooltip::text(format!("To reset your API key, make sure {GEMINI_API_KEY_VAR} and {GOOGLE_AI_API_KEY_VAR} environment variables are unset."))) }) .on_click(cx.listener(|this, _, window, cx| this.reset_api_key(window, cx))), ) diff --git a/docs/src/ai/configuration.md b/docs/src/ai/configuration.md index 56eb4ab76c..1201fa2173 100644 --- a/docs/src/ai/configuration.md +++ b/docs/src/ai/configuration.md @@ -237,7 +237,7 @@ You can use Gemini models with the Zed agent by choosing it via the model dropdo The Google AI API key will be saved in your keychain. -Zed will also use the `GOOGLE_AI_API_KEY` environment variable if it's defined. +Zed will also use the `GEMINI_API_KEY` environment variable if it's defined. See [Using Gemini API keys](Using Gemini API keys) in the Gemini docs for more. #### Custom Models {#google-ai-custom-models} From e23a4564ccf9f12c79ea4d32c30c4055cbb754f3 Mon Sep 17 00:00:00 2001 From: Umesh Yadav <23421535+imumesh18@users.noreply.github.com> Date: Thu, 17 Jul 2025 03:00:08 +0530 Subject: [PATCH 0006/1052] keymap_ui: Open Keymap editor from settings dropdown (#34576) @probably-neb I guess we should be opening the keymap editor from title bar and menu as well. I believe this got missed in this: #34568. Release Notes: - Open Keymap editor from settings from menu and title bar. --- Cargo.lock | 1 + crates/title_bar/Cargo.toml | 1 + crates/title_bar/src/title_bar.rs | 5 +++-- crates/zed/src/zed/app_menus.rs | 3 ++- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 091b944169..59e444f1f8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -16452,6 +16452,7 @@ dependencies = [ "schemars", "serde", "settings", + "settings_ui", "smallvec", "story", "telemetry", diff --git a/crates/title_bar/Cargo.toml b/crates/title_bar/Cargo.toml index 123d0468ac..3c39e6b946 100644 --- a/crates/title_bar/Cargo.toml +++ b/crates/title_bar/Cargo.toml @@ -40,6 +40,7 @@ rpc.workspace = true schemars.workspace = true serde.workspace = true settings.workspace = true +settings_ui.workspace = true smallvec.workspace = true story = { workspace = true, optional = true } telemetry.workspace = true diff --git a/crates/title_bar/src/title_bar.rs b/crates/title_bar/src/title_bar.rs index 4b8902d14e..453bb54db8 100644 --- a/crates/title_bar/src/title_bar.rs +++ b/crates/title_bar/src/title_bar.rs @@ -30,6 +30,7 @@ use onboarding_banner::OnboardingBanner; use project::Project; use rpc::proto; use settings::Settings as _; +use settings_ui::keybindings; use std::sync::Arc; use theme::ActiveTheme; use title_bar_settings::TitleBarSettings; @@ -683,7 +684,7 @@ impl TitleBar { ) .separator() .action("Settings", zed_actions::OpenSettings.boxed_clone()) - .action("Key Bindings", Box::new(zed_actions::OpenKeymap)) + .action("Key Bindings", Box::new(keybindings::OpenKeymapEditor)) .action( "Themes…", zed_actions::theme_selector::Toggle::default().boxed_clone(), @@ -727,7 +728,7 @@ impl TitleBar { .menu(|window, cx| { ContextMenu::build(window, cx, |menu, _, _| { menu.action("Settings", zed_actions::OpenSettings.boxed_clone()) - .action("Key Bindings", Box::new(zed_actions::OpenKeymap)) + .action("Key Bindings", Box::new(keybindings::OpenKeymapEditor)) .action( "Themes…", zed_actions::theme_selector::Toggle::default().boxed_clone(), diff --git a/crates/zed/src/zed/app_menus.rs b/crates/zed/src/zed/app_menus.rs index ddab724f4a..c4131dbee9 100644 --- a/crates/zed/src/zed/app_menus.rs +++ b/crates/zed/src/zed/app_menus.rs @@ -1,5 +1,6 @@ use collab_ui::collab_panel; use gpui::{Menu, MenuItem, OsAction}; +use settings_ui::keybindings; use terminal_view::terminal_panel; pub fn app_menus() -> Vec { @@ -16,7 +17,7 @@ pub fn app_menus() -> Vec { name: "Settings".into(), items: vec![ MenuItem::action("Open Settings", super::OpenSettings), - MenuItem::action("Open Key Bindings", zed_actions::OpenKeymap), + MenuItem::action("Open Key Bindings", keybindings::OpenKeymapEditor), MenuItem::action("Open Default Settings", super::OpenDefaultSettings), MenuItem::action( "Open Default Key Bindings", From f43bcc14927f68fa99d721bad41e52810cdc630b Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Wed, 16 Jul 2025 18:04:53 -0400 Subject: [PATCH 0007/1052] collab: Remove `GET /billing/subscriptions` endpoint (#34580) This PR removes the `GET /billing/subscriptions` endpoint, as it has been moved to `cloud.zed.dev`. Release Notes: - N/A --- crates/collab/src/api/billing.rs | 89 +------------------------------- 1 file changed, 1 insertion(+), 88 deletions(-) diff --git a/crates/collab/src/api/billing.rs b/crates/collab/src/api/billing.rs index 72a9a1b46b..1ca71726f9 100644 --- a/crates/collab/src/api/billing.rs +++ b/crates/collab/src/api/billing.rs @@ -49,10 +49,7 @@ use crate::{ pub fn router() -> Router { Router::new() .route("/billing/preferences", put(update_billing_preferences)) - .route( - "/billing/subscriptions", - get(list_billing_subscriptions).post(create_billing_subscription), - ) + .route("/billing/subscriptions", post(create_billing_subscription)) .route( "/billing/subscriptions/manage", post(manage_billing_subscription), @@ -166,90 +163,6 @@ async fn update_billing_preferences( })) } -#[derive(Debug, Deserialize)] -struct ListBillingSubscriptionsParams { - github_user_id: i32, -} - -#[derive(Debug, Serialize)] -struct BillingSubscriptionJson { - id: BillingSubscriptionId, - name: String, - status: StripeSubscriptionStatus, - period: Option, - trial_end_at: Option, - cancel_at: Option, - /// Whether this subscription can be canceled. - is_cancelable: bool, -} - -#[derive(Debug, Serialize)] -struct BillingSubscriptionPeriodJson { - start_at: String, - end_at: String, -} - -#[derive(Debug, Serialize)] -struct ListBillingSubscriptionsResponse { - subscriptions: Vec, -} - -async fn list_billing_subscriptions( - Extension(app): Extension>, - Query(params): Query, -) -> Result> { - let user = app - .db - .get_user_by_github_user_id(params.github_user_id) - .await? - .context("user not found")?; - - let subscriptions = app.db.get_billing_subscriptions(user.id).await?; - - Ok(Json(ListBillingSubscriptionsResponse { - subscriptions: subscriptions - .into_iter() - .map(|subscription| BillingSubscriptionJson { - id: subscription.id, - name: match subscription.kind { - Some(SubscriptionKind::ZedPro) => "Zed Pro".to_string(), - Some(SubscriptionKind::ZedProTrial) => "Zed Pro (Trial)".to_string(), - Some(SubscriptionKind::ZedFree) => "Zed Free".to_string(), - None => "Zed LLM Usage".to_string(), - }, - status: subscription.stripe_subscription_status, - period: maybe!({ - let start_at = subscription.current_period_start_at()?; - let end_at = subscription.current_period_end_at()?; - - Some(BillingSubscriptionPeriodJson { - start_at: start_at.to_rfc3339_opts(SecondsFormat::Millis, true), - end_at: end_at.to_rfc3339_opts(SecondsFormat::Millis, true), - }) - }), - trial_end_at: if subscription.kind == Some(SubscriptionKind::ZedProTrial) { - maybe!({ - let end_at = subscription.stripe_current_period_end?; - let end_at = DateTime::from_timestamp(end_at, 0)?; - - Some(end_at.to_rfc3339_opts(SecondsFormat::Millis, true)) - }) - } else { - None - }, - cancel_at: subscription.stripe_cancel_at.map(|cancel_at| { - cancel_at - .and_utc() - .to_rfc3339_opts(SecondsFormat::Millis, true) - }), - is_cancelable: subscription.kind != Some(SubscriptionKind::ZedFree) - && subscription.stripe_subscription_status.is_cancelable() - && subscription.stripe_cancel_at.is_none(), - }) - .collect(), - })) -} - #[derive(Debug, PartialEq, Clone, Copy, Deserialize)] #[serde(rename_all = "snake_case")] enum ProductCode { From c0261a1ea9c380b59c914c7dc6304add40496e24 Mon Sep 17 00:00:00 2001 From: Anthony Eid <56899983+Anthony-Eid@users.noreply.github.com> Date: Wed, 16 Jul 2025 18:05:26 -0400 Subject: [PATCH 0008/1052] keymap ui: Fix keymap editor search bugs (#34579) Keystroke input now gets cleared when toggling to normal search mode Main search bar is focused when toggling to normal search mode This also gets rid of highlight on focus from keystroke_editor because it also matched the search bool field and was redundant Release Notes: - N/A --- crates/settings_ui/src/keybindings.rs | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/crates/settings_ui/src/keybindings.rs b/crates/settings_ui/src/keybindings.rs index e0105fa875..21eec538b3 100644 --- a/crates/settings_ui/src/keybindings.rs +++ b/crates/settings_ui/src/keybindings.rs @@ -303,7 +303,7 @@ impl KeymapEditor { let keystroke_editor = cx.new(|cx| { let mut keystroke_editor = KeystrokeInput::new(None, window, cx); - keystroke_editor.highlight_on_focus = false; + keystroke_editor.search = true; keystroke_editor }); @@ -1029,18 +1029,16 @@ impl KeymapEditor { self.search_mode = self.search_mode.invert(); self.on_query_changed(cx); - // Update the keystroke editor to turn the `search` bool on - self.keystroke_editor.update(cx, |keystroke_editor, cx| { - keystroke_editor - .set_search_mode(matches!(self.search_mode, SearchMode::KeyStroke { .. })); - cx.notify(); - }); - match self.search_mode { SearchMode::KeyStroke { .. } => { window.focus(&self.keystroke_editor.read(cx).recording_focus_handle(cx)); } - SearchMode::Normal => {} + SearchMode::Normal => { + self.keystroke_editor.update(cx, |editor, cx| { + editor.clear_keystrokes(&ClearKeystrokes, window, cx) + }); + window.focus(&self.filter_editor.focus_handle(cx)); + } } } @@ -2373,7 +2371,6 @@ enum KeyPress<'a> { struct KeystrokeInput { keystrokes: Vec, placeholder_keystrokes: Option>, - highlight_on_focus: bool, outer_focus_handle: FocusHandle, inner_focus_handle: FocusHandle, intercept_subscription: Option, @@ -2401,7 +2398,6 @@ impl KeystrokeInput { Self { keystrokes: Vec::new(), placeholder_keystrokes, - highlight_on_focus: true, inner_focus_handle, outer_focus_handle, intercept_subscription: None, @@ -2618,10 +2614,6 @@ impl KeystrokeInput { self.inner_focus_handle.clone() } - fn set_search_mode(&mut self, search: bool) { - self.search = search; - } - fn start_recording(&mut self, _: &StartRecording, window: &mut Window, cx: &mut Context) { if !self.outer_focus_handle.is_focused(window) { return; @@ -2781,7 +2773,7 @@ impl Render for KeystrokeInput { .track_focus(&self.inner_focus_handle) .on_modifiers_changed(cx.listener(Self::on_modifiers_changed)) .size_full() - .when(self.highlight_on_focus, |this| { + .when(!self.search, |this| { this.focus(|mut style| { style.border_color = Some(colors.border_focused); style From b9ff538747556f3f2f5ed4ee109654eb80cc9c9c Mon Sep 17 00:00:00 2001 From: Cole Miller Date: Wed, 16 Jul 2025 19:35:30 -0400 Subject: [PATCH 0009/1052] docs: Discuss `inlay_hints.show_value_hints` in debugger docs (#34581) This isn't under the `debugger` settings key, but it seems good to document on the debugger page anyway. Release Notes: - N/A --- docs/src/debugger.md | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/docs/src/debugger.md b/docs/src/debugger.md index 02c17c4127..7cfbf63cd8 100644 --- a/docs/src/debugger.md +++ b/docs/src/debugger.md @@ -177,8 +177,8 @@ The debug adapter will then stop whenever an exception of a given kind occurs. W ### Stepping granularity - Description: The Step granularity that the debugger will use -- Default: line -- Setting: debugger.stepping_granularity +- Default: `line` +- Setting: `debugger.stepping_granularity` **Options** @@ -217,8 +217,8 @@ The debug adapter will then stop whenever an exception of a given kind occurs. W ### Save Breakpoints - Description: Whether the breakpoints should be saved across Zed sessions. -- Default: true -- Setting: debugger.save_breakpoints +- Default: `true` +- Setting: `debugger.save_breakpoints` **Options** @@ -235,8 +235,8 @@ The debug adapter will then stop whenever an exception of a given kind occurs. W ### Button - Description: Whether the button should be displayed in the debugger toolbar. -- Default: true -- Setting: debugger.show_button +- Default: `true` +- Setting: `debugger.show_button` **Options** @@ -253,8 +253,8 @@ The debug adapter will then stop whenever an exception of a given kind occurs. W ### Timeout - Description: Time in milliseconds until timeout error when connecting to a TCP debug adapter. -- Default: 2000 -- Setting: debugger.timeout +- Default: `2000` +- Setting: `debugger.timeout` **Options** @@ -268,6 +268,24 @@ The debug adapter will then stop whenever an exception of a given kind occurs. W } ``` +### Inline Values + +- Description: Whether to enable editor inlay hints showing the values of variables in your code during debugging sessions. +- Default: `true` +- Setting: `inlay_hints.show_value_hints` + +**Options** + +```json +{ + "inlay_hints": { + "show_value_hints": false + } +} +``` + +Inline value hints can also be toggled from the Editor Controls menu in the editor toolbar. + ### Log Dap Communications - Description: Whether to log messages between active debug adapters and Zed. (Used for DAP development) From ebad5ca50e11fc9d3fbbab397888d0944a825bb7 Mon Sep 17 00:00:00 2001 From: Smit Barmase Date: Thu, 17 Jul 2025 06:36:02 +0530 Subject: [PATCH 0010/1052] =?UTF-8?q?linux:=20Fix=20buttons=20clicks=20wou?= =?UTF-8?q?ldn=E2=80=99t=20work=20on=20startup=20until=20clicked=20on=20ce?= =?UTF-8?q?nter=20pane=20(#34590)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #31805 This is an issue with Linux currently that `window.focus` is `None` upon startup in both X11 and Wayland. Specifically, the order in which [this](https://github.com/zed-industries/zed/blob/8d05a3d389b6a1caa80bb18f26c3dac0c26debcb/crates/gpui/src/window.rs#L3116) and [this](https://github.com/zed-industries/zed/blob/8d05a3d389b6a1caa80bb18f26c3dac0c26debcb/crates/gpui/src/app.rs#L956) are executed varies between Linux and macOS. That is, one tries to remove (blur) focus from a window, while other checks window focus to put that focus id to a frame. In macOS, blur happens afterwards setting focus on a frame, but in Linux, the inverse of it happens, leading to `window.focus` to `None`. For the time being, we handle all visible buttons to take care of this **focus can be `None`** case, and make it work anyway. But, we should look at the deeper issue mentioned above with GPUI. Created new issue to track that https://github.com/zed-industries/zed/issues/34591. Release Notes: - Fixed an issue where button clicks wouldn’t work on startup until clicked on the center pane on Linux. --- crates/title_bar/src/title_bar.rs | 9 +++++---- crates/workspace/src/dock.rs | 3 +++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/crates/title_bar/src/title_bar.rs b/crates/title_bar/src/title_bar.rs index 453bb54db8..977b5c3ecd 100644 --- a/crates/title_bar/src/title_bar.rs +++ b/crates/title_bar/src/title_bar.rs @@ -22,9 +22,9 @@ use auto_update::AutoUpdateStatus; use call::ActiveCall; use client::{Client, UserStore}; use gpui::{ - Action, AnyElement, App, Context, Corner, Element, Entity, InteractiveElement, IntoElement, - MouseButton, ParentElement, Render, StatefulInteractiveElement, Styled, Subscription, - WeakEntity, Window, actions, div, + Action, AnyElement, App, Context, Corner, Element, Entity, Focusable, InteractiveElement, + IntoElement, MouseButton, ParentElement, Render, StatefulInteractiveElement, Styled, + Subscription, WeakEntity, Window, actions, div, }; use onboarding_banner::OnboardingBanner; use project::Project; @@ -504,7 +504,8 @@ impl TitleBar { ) }) .on_click(move |_, window, cx| { - let _ = workspace.update(cx, |_this, cx| { + let _ = workspace.update(cx, |this, cx| { + window.focus(&this.active_pane().focus_handle(cx)); window.dispatch_action(zed_actions::git::Branch.boxed_clone(), cx); }); }) diff --git a/crates/workspace/src/dock.rs b/crates/workspace/src/dock.rs index c8301dcf35..4e39c2d182 100644 --- a/crates/workspace/src/dock.rs +++ b/crates/workspace/src/dock.rs @@ -873,6 +873,8 @@ impl Render for PanelButtons { (action, icon_tooltip.into()) }; + let focus_handle = dock.focus_handle(cx); + Some( right_click_menu(name) .menu(move |window, cx| { @@ -909,6 +911,7 @@ impl Render for PanelButtons { .on_click({ let action = action.boxed_clone(); move |_, window, cx| { + window.focus(&focus_handle); window.dispatch_action(action.boxed_clone(), cx) } }) From 9f302df6d6977626e3ae0fe5d8df3fc5ebcb0c88 Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Wed, 16 Jul 2025 20:09:38 -0600 Subject: [PATCH 0011/1052] Don't override ascii graphical shortcuts (#34592) Closes #34536 Release Notes: - (preview only) Fix shortcuts on Extended Latin keyboards on Linux --- crates/gpui/src/platform/linux/platform.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/crates/gpui/src/platform/linux/platform.rs b/crates/gpui/src/platform/linux/platform.rs index bab44e0069..1e901387b0 100644 --- a/crates/gpui/src/platform/linux/platform.rs +++ b/crates/gpui/src/platform/linux/platform.rs @@ -827,6 +827,9 @@ impl crate::Keystroke { let name = xkb::keysym_get_name(key_sym).to_lowercase(); if key_sym.is_keypad_key() { name.replace("kp_", "") + } else if key_utf8.len() == 1 && key_utf8.chars().next().unwrap().is_ascii_graphic() + { + key_utf8.clone() } else if let Some(key_en) = guess_ascii(keycode, modifiers.shift) { String::from(key_en) } else { From 1ce384bbda2afa90069eac4f9d36c342cd860f8c Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Wed, 16 Jul 2025 21:27:46 -0600 Subject: [PATCH 0012/1052] Fix ctrl-q on AZERTY on Linux (#34597) Closes #ISSUE Release Notes: - N/A --- crates/gpui/src/platform/linux/platform.rs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/crates/gpui/src/platform/linux/platform.rs b/crates/gpui/src/platform/linux/platform.rs index 1e901387b0..a24838339e 100644 --- a/crates/gpui/src/platform/linux/platform.rs +++ b/crates/gpui/src/platform/linux/platform.rs @@ -822,14 +822,28 @@ impl crate::Keystroke { Keysym::underscore => "_".to_owned(), Keysym::equal => "=".to_owned(), Keysym::plus => "+".to_owned(), + Keysym::space => "space".to_owned(), + Keysym::BackSpace => "backspace".to_owned(), + Keysym::Tab => "tab".to_owned(), + Keysym::Delete => "delete".to_owned(), + Keysym::Escape => "escape".to_owned(), _ => { let name = xkb::keysym_get_name(key_sym).to_lowercase(); if key_sym.is_keypad_key() { name.replace("kp_", "") - } else if key_utf8.len() == 1 && key_utf8.chars().next().unwrap().is_ascii_graphic() + } else if let Some(key) = key_utf8.chars().next() + && key_utf8.len() == 1 + && key.is_ascii() { - key_utf8.clone() + if key.is_ascii_graphic() { + key_utf8.clone() + // map ctrl-a to a + } else if key_utf32 <= 0x1f { + ((key_utf32 as u8 + 0x60) as char).to_string() + } else { + name + } } else if let Some(key_en) = guess_ascii(keycode, modifiers.shift) { String::from(key_en) } else { From 1d72fa8e9e4b358bf8a207dd73bf934b90d56cd9 Mon Sep 17 00:00:00 2001 From: Eric Cornelissen Date: Thu, 17 Jul 2025 05:39:54 +0200 Subject: [PATCH 0013/1052] git: Add ability to pass `--signoff` (#29874) This adds an option for `--signoff` to the git panel and commit modal. It allows users to enable the [`--signoff` flag](https://git-scm.com/docs/git-commit#Documentation/git-commit.txt-code--signoffcode) when committing through Zed. The option is added to the context menu of the commit button (following the style of the "Editor Controls"). To support this, the commit+amend experience was revamped (following the ideas of [this comment](https://github.com/zed-industries/zed/pull/29874#issuecomment-2950848000)). Amending is now also a toggle in the commit button's dropdown menu. I've kept some of the original experience such as the changed button text and ability to cancel outside the context menu. The tooltip of the commit buttons now also includes the flags that will be used based on the amending and signoff status (which I couldn't capture in screenshots unfortunately). So, by default the tooltip will say `git commit` and if you toggle, e.g., amending on it will say `git commit --amend`. | What | Panel | Modal | | --- | --- | --- | | Not amending, dropdown | ![git modal preview, not amending, dropdown](https://github.com/user-attachments/assets/82c2b338-b3b5-418c-97bf-98c33202d7dd) | ![commit modal preview, not amending, dropdown](https://github.com/user-attachments/assets/f7a6f2fb-902d-447d-a473-2efb4ba0f444) | | Amending, dropdown | ![git modal preview, amending, dropdown](https://github.com/user-attachments/assets/9e755975-4a27-43f0-aa62-be002ecd3a92) | ![commit modal preview, amending, dropdown](https://github.com/user-attachments/assets/cad03817-14e1-46f6-ba39-8ccc7dd12161) | | Amending | ![git modal preview, amending](https://github.com/user-attachments/assets/e1ec4eba-174e-4e5f-9659-5867d6b0fdc2) | - | The initial implementation was based on the changeset of https://github.com/zed-industries/zed/pull/28187. Closes https://github.com/zed-industries/zed/discussions/26114 Release Notes: - Added git `--signoff` support. - Update the git `--amend` experience. - Improved git panel to persist width as well as amend and signoff on a per-workspace basis. --- crates/git/src/git.rs | 2 + crates/git/src/repository.rs | 5 + crates/git_ui/src/commit_modal.rs | 253 +++++++++--------- crates/git_ui/src/git_panel.rs | 416 +++++++++++++++--------------- crates/project/src/git_store.rs | 2 + crates/proto/proto/git.proto | 1 + 6 files changed, 342 insertions(+), 337 deletions(-) diff --git a/crates/git/src/git.rs b/crates/git/src/git.rs index fccedaa809..3714086dd0 100644 --- a/crates/git/src/git.rs +++ b/crates/git/src/git.rs @@ -77,6 +77,8 @@ actions!( Commit, /// Amends the last commit with staged changes. Amend, + /// Enable the --signoff option. + Signoff, /// Cancels the current git operation. Cancel, /// Expands the commit message editor. diff --git a/crates/git/src/repository.rs b/crates/git/src/repository.rs index 2ecd4bb894..9cc3442392 100644 --- a/crates/git/src/repository.rs +++ b/crates/git/src/repository.rs @@ -96,6 +96,7 @@ impl Upstream { #[derive(Clone, Copy, Default)] pub struct CommitOptions { pub amend: bool, + pub signoff: bool, } #[derive(Clone, Copy, Debug, Hash, PartialEq, Eq)] @@ -1209,6 +1210,10 @@ impl GitRepository for RealGitRepository { cmd.arg("--amend"); } + if options.signoff { + cmd.arg("--signoff"); + } + if let Some((name, email)) = name_and_email { cmd.arg("--author").arg(&format!("{name} <{email}>")); } diff --git a/crates/git_ui/src/commit_modal.rs b/crates/git_ui/src/commit_modal.rs index 15d0bec313..ac3d24e3eb 100644 --- a/crates/git_ui/src/commit_modal.rs +++ b/crates/git_ui/src/commit_modal.rs @@ -1,8 +1,8 @@ use crate::branch_picker::{self, BranchList}; use crate::git_panel::{GitPanel, commit_message_editor}; use git::repository::CommitOptions; -use git::{Amend, Commit, GenerateCommitMessage}; -use panel::{panel_button, panel_editor_style, panel_filled_button}; +use git::{Amend, Commit, GenerateCommitMessage, Signoff}; +use panel::{panel_button, panel_editor_style}; use ui::{ ContextMenu, KeybindingHint, PopoverMenu, PopoverMenuHandle, SplitButton, Tooltip, prelude::*, }; @@ -273,14 +273,51 @@ impl CommitModal { .child(Icon::new(IconName::ChevronDownSmall).size(IconSize::XSmall)), ), ) - .menu(move |window, cx| { - Some(ContextMenu::build(window, cx, |context_menu, _, _| { - context_menu - .when_some(keybinding_target.clone(), |el, keybinding_target| { - el.context(keybinding_target.clone()) - }) - .action("Amend", Amend.boxed_clone()) - })) + .menu({ + let git_panel_entity = self.git_panel.clone(); + move |window, cx| { + let git_panel = git_panel_entity.read(cx); + let amend_enabled = git_panel.amend_pending(); + let signoff_enabled = git_panel.signoff_enabled(); + let has_previous_commit = git_panel.head_commit(cx).is_some(); + + Some(ContextMenu::build(window, cx, |context_menu, _, _| { + context_menu + .when_some(keybinding_target.clone(), |el, keybinding_target| { + el.context(keybinding_target.clone()) + }) + .when(has_previous_commit, |this| { + this.toggleable_entry( + "Amend", + amend_enabled, + IconPosition::Start, + Some(Box::new(Amend)), + { + let git_panel = git_panel_entity.clone(); + move |window, cx| { + git_panel.update(cx, |git_panel, cx| { + git_panel.toggle_amend_pending(&Amend, window, cx); + }) + } + }, + ) + }) + .toggleable_entry( + "Signoff", + signoff_enabled, + IconPosition::Start, + Some(Box::new(Signoff)), + { + let git_panel = git_panel_entity.clone(); + move |window, cx| { + git_panel.update(cx, |git_panel, cx| { + git_panel.toggle_signoff_enabled(&Signoff, window, cx); + }) + } + }, + ) + })) + } }) .with_handle(self.commit_menu_handle.clone()) .anchor(Corner::TopRight) @@ -295,7 +332,7 @@ impl CommitModal { generate_commit_message, active_repo, is_amend_pending, - has_previous_commit, + is_signoff_enabled, ) = self.git_panel.update(cx, |git_panel, cx| { let (can_commit, tooltip) = git_panel.configure_commit_button(cx); let title = git_panel.commit_button_title(); @@ -303,10 +340,7 @@ impl CommitModal { let generate_commit_message = git_panel.render_generate_commit_message_button(cx); let active_repo = git_panel.active_repository.clone(); let is_amend_pending = git_panel.amend_pending(); - let has_previous_commit = active_repo - .as_ref() - .and_then(|repo| repo.read(cx).head_commit.as_ref()) - .is_some(); + let is_signoff_enabled = git_panel.signoff_enabled(); ( can_commit, tooltip, @@ -315,7 +349,7 @@ impl CommitModal { generate_commit_message, active_repo, is_amend_pending, - has_previous_commit, + is_signoff_enabled, ) }); @@ -396,126 +430,59 @@ impl CommitModal { .px_1() .gap_4() .children(close_kb_hint) - .when(is_amend_pending, |this| { - let focus_handle = focus_handle.clone(); - this.child( - panel_filled_button(commit_label) - .tooltip(move |window, cx| { - if can_commit { - Tooltip::for_action_in( - tooltip, - &Amend, - &focus_handle, - window, - cx, - ) - } else { - Tooltip::simple(tooltip, cx) - } - }) - .disabled(!can_commit) - .on_click(cx.listener(move |this, _: &ClickEvent, window, cx| { - telemetry::event!("Git Amended", source = "Git Modal"); - this.git_panel.update(cx, |git_panel, cx| { - git_panel.set_amend_pending(false, cx); - git_panel.commit_changes( - CommitOptions { amend: true }, - window, - cx, - ); - }); - cx.emit(DismissEvent); - })), + .child(SplitButton::new( + ui::ButtonLike::new_rounded_left(ElementId::Name( + format!("split-button-left-{}", commit_label).into(), + )) + .layer(ui::ElevationIndex::ModalSurface) + .size(ui::ButtonSize::Compact) + .child( + div() + .child(Label::new(commit_label).size(LabelSize::Small)) + .mr_0p5(), ) - }) - .when(!is_amend_pending, |this| { - this.when(has_previous_commit, |this| { - this.child(SplitButton::new( - ui::ButtonLike::new_rounded_left(ElementId::Name( - format!("split-button-left-{}", commit_label).into(), - )) - .layer(ui::ElevationIndex::ModalSurface) - .size(ui::ButtonSize::Compact) - .child( - div() - .child(Label::new(commit_label).size(LabelSize::Small)) - .mr_0p5(), + .on_click(cx.listener(move |this, _: &ClickEvent, window, cx| { + telemetry::event!("Git Committed", source = "Git Modal"); + this.git_panel.update(cx, |git_panel, cx| { + git_panel.commit_changes( + CommitOptions { + amend: is_amend_pending, + signoff: is_signoff_enabled, + }, + window, + cx, ) - .on_click(cx.listener(move |this, _: &ClickEvent, window, cx| { - telemetry::event!("Git Committed", source = "Git Modal"); - this.git_panel.update(cx, |git_panel, cx| { - git_panel.commit_changes( - CommitOptions { amend: false }, - window, - cx, - ) - }); - cx.emit(DismissEvent); - })) - .disabled(!can_commit) - .tooltip({ - let focus_handle = focus_handle.clone(); - move |window, cx| { - if can_commit { - Tooltip::with_meta_in( - tooltip, - Some(&git::Commit), - "git commit", - &focus_handle.clone(), - window, - cx, - ) - } else { - Tooltip::simple(tooltip, cx) - } - } - }), - self.render_git_commit_menu( - ElementId::Name( - format!("split-button-right-{}", commit_label).into(), - ), - Some(focus_handle.clone()), - ) - .into_any_element(), - )) - }) - .when(!has_previous_commit, |this| { - this.child( - panel_filled_button(commit_label) - .tooltip(move |window, cx| { - if can_commit { - Tooltip::with_meta_in( - tooltip, - Some(&git::Commit), - "git commit", - &focus_handle, - window, - cx, - ) - } else { - Tooltip::simple(tooltip, cx) - } - }) - .disabled(!can_commit) - .on_click(cx.listener( - move |this, _: &ClickEvent, window, cx| { - telemetry::event!( - "Git Committed", - source = "Git Modal" - ); - this.git_panel.update(cx, |git_panel, cx| { - git_panel.commit_changes( - CommitOptions { amend: false }, - window, - cx, - ) - }); - cx.emit(DismissEvent); - }, - )), - ) - }) - }), + }); + cx.emit(DismissEvent); + })) + .disabled(!can_commit) + .tooltip({ + let focus_handle = focus_handle.clone(); + move |window, cx| { + if can_commit { + Tooltip::with_meta_in( + tooltip, + Some(&git::Commit), + format!( + "git commit{}{}", + if is_amend_pending { " --amend" } else { "" }, + if is_signoff_enabled { " --signoff" } else { "" } + ), + &focus_handle.clone(), + window, + cx, + ) + } else { + Tooltip::simple(tooltip, cx) + } + } + }), + self.render_git_commit_menu( + ElementId::Name(format!("split-button-right-{}", commit_label).into()), + Some(focus_handle.clone()), + ) + .into_any_element(), + )), ) } @@ -534,7 +501,14 @@ impl CommitModal { } telemetry::event!("Git Committed", source = "Git Modal"); self.git_panel.update(cx, |git_panel, cx| { - git_panel.commit_changes(CommitOptions { amend: false }, window, cx) + git_panel.commit_changes( + CommitOptions { + amend: false, + signoff: git_panel.signoff_enabled(), + }, + window, + cx, + ) }); cx.emit(DismissEvent); } @@ -559,7 +533,14 @@ impl CommitModal { telemetry::event!("Git Amended", source = "Git Modal"); self.git_panel.update(cx, |git_panel, cx| { git_panel.set_amend_pending(false, cx); - git_panel.commit_changes(CommitOptions { amend: true }, window, cx); + git_panel.commit_changes( + CommitOptions { + amend: true, + signoff: git_panel.signoff_enabled(), + }, + window, + cx, + ); }); cx.emit(DismissEvent); } diff --git a/crates/git_ui/src/git_panel.rs b/crates/git_ui/src/git_panel.rs index 52bed2cc79..2397f51f82 100644 --- a/crates/git_ui/src/git_panel.rs +++ b/crates/git_ui/src/git_panel.rs @@ -25,7 +25,7 @@ use git::repository::{ UpstreamTrackingStatus, get_git_committer, }; use git::status::StageStatus; -use git::{Amend, ToggleStaged, repository::RepoPath, status::FileStatus}; +use git::{Amend, Signoff, ToggleStaged, repository::RepoPath, status::FileStatus}; use git::{ExpandCommitEditor, RestoreTrackedFiles, StageAll, TrashUntrackedFiles, UnstageAll}; use gpui::{ Action, Animation, AnimationExt as _, AsyncApp, AsyncWindowContext, Axis, ClickEvent, Corner, @@ -61,8 +61,8 @@ use std::{collections::HashSet, sync::Arc, time::Duration, usize}; use strum::{IntoEnumIterator, VariantNames}; use time::OffsetDateTime; use ui::{ - Checkbox, ContextMenu, ElevationIndex, PopoverMenu, Scrollbar, ScrollbarState, SplitButton, - Tooltip, prelude::*, + Checkbox, ContextMenu, ElevationIndex, IconPosition, Label, LabelSize, PopoverMenu, Scrollbar, + ScrollbarState, SplitButton, Tooltip, prelude::*, }; use util::{ResultExt, TryFutureExt, maybe}; @@ -174,6 +174,10 @@ pub enum Event { #[derive(Serialize, Deserialize)] struct SerializedGitPanel { width: Option, + #[serde(default)] + amend_pending: bool, + #[serde(default)] + signoff_enabled: bool, } #[derive(Debug, PartialEq, Eq, Clone, Copy)] @@ -337,6 +341,7 @@ pub struct GitPanel { pending: Vec, pending_commit: Option>, amend_pending: bool, + signoff_enabled: bool, pending_serialization: Task>, pub(crate) project: Entity, scroll_handle: UniformListScrollHandle, @@ -512,6 +517,7 @@ impl GitPanel { pending: Vec::new(), pending_commit: None, amend_pending: false, + signoff_enabled: false, pending_serialization: Task::ready(None), single_staged_entry: None, single_tracked_entry: None, @@ -690,14 +696,38 @@ impl GitPanel { cx.notify(); } + fn serialization_key(workspace: &Workspace) -> Option { + workspace + .database_id() + .map(|id| i64::from(id).to_string()) + .or(workspace.session_id()) + .map(|id| format!("{}-{:?}", GIT_PANEL_KEY, id)) + } + fn serialize(&mut self, cx: &mut Context) { let width = self.width; + let amend_pending = self.amend_pending; + let signoff_enabled = self.signoff_enabled; + + let Some(serialization_key) = self + .workspace + .read_with(cx, |workspace, _| Self::serialization_key(workspace)) + .ok() + .flatten() + else { + return; + }; + self.pending_serialization = cx.background_spawn( async move { KEY_VALUE_STORE .write_kvp( - GIT_PANEL_KEY.into(), - serde_json::to_string(&SerializedGitPanel { width })?, + serialization_key, + serde_json::to_string(&SerializedGitPanel { + width, + amend_pending, + signoff_enabled, + })?, ) .await?; anyhow::Ok(()) @@ -1432,7 +1462,14 @@ impl GitPanel { .contains_focused(window, cx) { telemetry::event!("Git Committed", source = "Git Panel"); - self.commit_changes(CommitOptions { amend: false }, window, cx) + self.commit_changes( + CommitOptions { + amend: false, + signoff: self.signoff_enabled, + }, + window, + cx, + ) } else { cx.propagate(); } @@ -1444,19 +1481,21 @@ impl GitPanel { .focus_handle(cx) .contains_focused(window, cx) { - if self - .active_repository - .as_ref() - .and_then(|repo| repo.read(cx).head_commit.as_ref()) - .is_some() - { + if self.head_commit(cx).is_some() { if !self.amend_pending { self.set_amend_pending(true, cx); self.load_last_commit_message_if_empty(cx); } else { telemetry::event!("Git Amended", source = "Git Panel"); self.set_amend_pending(false, cx); - self.commit_changes(CommitOptions { amend: true }, window, cx); + self.commit_changes( + CommitOptions { + amend: true, + signoff: self.signoff_enabled, + }, + window, + cx, + ); } } } else { @@ -1464,21 +1503,21 @@ impl GitPanel { } } + pub fn head_commit(&self, cx: &App) -> Option { + self.active_repository + .as_ref() + .and_then(|repo| repo.read(cx).head_commit.as_ref()) + .cloned() + } + pub fn load_last_commit_message_if_empty(&mut self, cx: &mut Context) { if !self.commit_editor.read(cx).is_empty(cx) { return; } - let Some(active_repository) = self.active_repository.as_ref() else { - return; - }; - let Some(recent_sha) = active_repository - .read(cx) - .head_commit - .as_ref() - .map(|commit| commit.sha.to_string()) - else { + let Some(head_commit) = self.head_commit(cx) else { return; }; + let recent_sha = head_commit.sha.to_string(); let detail_task = self.load_commit_details(recent_sha, cx); cx.spawn(async move |this, cx| { if let Ok(message) = detail_task.await.map(|detail| detail.message) { @@ -1495,12 +1534,6 @@ impl GitPanel { .detach(); } - fn cancel(&mut self, _: &git::Cancel, _: &mut Window, cx: &mut Context) { - if self.amend_pending { - self.set_amend_pending(false, cx); - } - } - fn custom_or_suggested_commit_message( &self, window: &mut Window, @@ -3003,14 +3036,35 @@ impl GitPanel { .child(Icon::new(IconName::ChevronDownSmall).size(IconSize::XSmall)), ), ) - .menu(move |window, cx| { - Some(ContextMenu::build(window, cx, |context_menu, _, _| { - context_menu - .when_some(keybinding_target.clone(), |el, keybinding_target| { - el.context(keybinding_target.clone()) - }) - .action("Amend", Amend.boxed_clone()) - })) + .menu({ + let has_previous_commit = self.head_commit(cx).is_some(); + let amend = self.amend_pending(); + let signoff = self.signoff_enabled; + + move |window, cx| { + Some(ContextMenu::build(window, cx, |context_menu, _, _| { + context_menu + .when_some(keybinding_target.clone(), |el, keybinding_target| { + el.context(keybinding_target.clone()) + }) + .when(has_previous_commit, |this| { + this.toggleable_entry( + "Amend", + amend, + IconPosition::Start, + Some(Box::new(Amend)), + move |window, cx| window.dispatch_action(Box::new(Amend), cx), + ) + }) + .toggleable_entry( + "Signoff", + signoff, + IconPosition::Start, + Some(Box::new(Signoff)), + move |window, cx| window.dispatch_action(Box::new(Signoff), cx), + ) + })) + } }) .anchor(Corner::TopRight) } @@ -3187,7 +3241,6 @@ impl GitPanel { let editor_is_long = self.commit_editor.update(cx, |editor, cx| { editor.max_point(cx).row().0 >= MAX_PANEL_EDITOR_LINES as u32 }); - let has_previous_commit = head_commit.is_some(); let footer = v_flex() .child(PanelRepoFooter::new( @@ -3231,7 +3284,7 @@ impl GitPanel { h_flex() .gap_0p5() .children(enable_coauthors) - .child(self.render_commit_button(has_previous_commit, cx)), + .child(self.render_commit_button(cx)), ), ) .child( @@ -3280,14 +3333,12 @@ impl GitPanel { Some(footer) } - fn render_commit_button( - &self, - has_previous_commit: bool, - cx: &mut Context, - ) -> impl IntoElement { + fn render_commit_button(&self, cx: &mut Context) -> impl IntoElement { let (can_commit, tooltip) = self.configure_commit_button(cx); let title = self.commit_button_title(); let commit_tooltip_focus_handle = self.commit_editor.focus_handle(cx); + let amend = self.amend_pending(); + let signoff = self.signoff_enabled; div() .id("commit-wrapper") @@ -3296,165 +3347,86 @@ impl GitPanel { *hovered && !this.has_staged_changes() && !this.has_unstaged_conflicts(); cx.notify() })) - .when(self.amend_pending, { - |this| { - this.h_flex() - .gap_1() - .child( - panel_filled_button("Cancel") - .tooltip({ - let handle = commit_tooltip_focus_handle.clone(); - move |window, cx| { - Tooltip::for_action_in( - "Cancel amend", - &git::Cancel, - &handle, - window, - cx, - ) - } - }) - .on_click(move |_, window, cx| { - window.dispatch_action(Box::new(git::Cancel), cx); - }), - ) - .child( - panel_filled_button(title) - .tooltip({ - let handle = commit_tooltip_focus_handle.clone(); - move |window, cx| { - if can_commit { - Tooltip::for_action_in( - tooltip, &Amend, &handle, window, cx, - ) - } else { - Tooltip::simple(tooltip, cx) - } - } - }) - .disabled(!can_commit || self.modal_open) - .on_click({ - let git_panel = cx.weak_entity(); - move |_, window, cx| { - telemetry::event!("Git Amended", source = "Git Panel"); - git_panel - .update(cx, |git_panel, cx| { - git_panel.set_amend_pending(false, cx); - git_panel.commit_changes( - CommitOptions { amend: true }, - window, - cx, - ); - }) - .ok(); - } - }), - ) - } - }) - .when(!self.amend_pending, |this| { - this.when(has_previous_commit, |this| { - this.child(SplitButton::new( - ui::ButtonLike::new_rounded_left(ElementId::Name( - format!("split-button-left-{}", title).into(), - )) - .layer(ui::ElevationIndex::ModalSurface) - .size(ui::ButtonSize::Compact) - .child( - div() - .child(Label::new(title).size(LabelSize::Small)) - .mr_0p5(), - ) - .on_click({ - let git_panel = cx.weak_entity(); - move |_, window, cx| { - telemetry::event!("Git Committed", source = "Git Panel"); - git_panel - .update(cx, |git_panel, cx| { - git_panel.commit_changes( - CommitOptions { amend: false }, - window, - cx, - ); - }) - .ok(); - } - }) - .disabled(!can_commit || self.modal_open) - .tooltip({ - let handle = commit_tooltip_focus_handle.clone(); - move |window, cx| { - if can_commit { - Tooltip::with_meta_in( - tooltip, - Some(&git::Commit), - "git commit", - &handle.clone(), - window, - cx, - ) - } else { - Tooltip::simple(tooltip, cx) - } - } - }), - self.render_git_commit_menu( - ElementId::Name(format!("split-button-right-{}", title).into()), - Some(commit_tooltip_focus_handle.clone()), - cx, - ) - .into_any_element(), - )) - }) - .when(!has_previous_commit, |this| { - this.child( - panel_filled_button(title) - .tooltip(move |window, cx| { - if can_commit { - Tooltip::with_meta_in( - tooltip, - Some(&git::Commit), - "git commit", - &commit_tooltip_focus_handle, - window, - cx, - ) - } else { - Tooltip::simple(tooltip, cx) - } + .child(SplitButton::new( + ui::ButtonLike::new_rounded_left(ElementId::Name( + format!("split-button-left-{}", title).into(), + )) + .layer(ui::ElevationIndex::ModalSurface) + .size(ui::ButtonSize::Compact) + .child( + div() + .child(Label::new(title).size(LabelSize::Small)) + .mr_0p5(), + ) + .on_click({ + let git_panel = cx.weak_entity(); + move |_, window, cx| { + telemetry::event!("Git Committed", source = "Git Panel"); + git_panel + .update(cx, |git_panel, cx| { + git_panel.set_amend_pending(false, cx); + git_panel.commit_changes( + CommitOptions { amend, signoff }, + window, + cx, + ); }) - .disabled(!can_commit || self.modal_open) - .on_click({ - let git_panel = cx.weak_entity(); - move |_, window, cx| { - telemetry::event!("Git Committed", source = "Git Panel"); - git_panel - .update(cx, |git_panel, cx| { - git_panel.commit_changes( - CommitOptions { amend: false }, - window, - cx, - ); - }) - .ok(); - } - }), - ) + .ok(); + } }) - }) + .disabled(!can_commit || self.modal_open) + .tooltip({ + let handle = commit_tooltip_focus_handle.clone(); + move |window, cx| { + if can_commit { + Tooltip::with_meta_in( + tooltip, + Some(&git::Commit), + format!( + "git commit{}{}", + if amend { " --amend" } else { "" }, + if signoff { " --signoff" } else { "" } + ), + &handle.clone(), + window, + cx, + ) + } else { + Tooltip::simple(tooltip, cx) + } + } + }), + self.render_git_commit_menu( + ElementId::Name(format!("split-button-right-{}", title).into()), + Some(commit_tooltip_focus_handle.clone()), + cx, + ) + .into_any_element(), + )) } fn render_pending_amend(&self, cx: &mut Context) -> impl IntoElement { - div() - .p_2() + h_flex() + .py_1p5() + .px_2() + .gap_1p5() + .justify_between() .border_t_1() - .border_color(cx.theme().colors().border) + .border_color(cx.theme().colors().border.opacity(0.8)) .child( - Label::new( - "This will update your most recent commit. Cancel to make a new one instead.", - ) - .size(LabelSize::Small), + div() + .flex_grow() + .overflow_hidden() + .max_w(relative(0.85)) + .child( + Label::new("This will update your most recent commit.") + .size(LabelSize::Small) + .truncate(), + ), ) + .child(panel_button("Cancel").size(ButtonSize::Default).on_click( + cx.listener(|this, _, window, cx| this.toggle_amend_pending(&Amend, window, cx)), + )) } fn render_previous_commit(&self, cx: &mut Context) -> Option { @@ -4218,17 +4190,56 @@ impl GitPanel { cx.notify(); } + pub fn toggle_amend_pending( + &mut self, + _: &Amend, + _window: &mut Window, + cx: &mut Context, + ) { + self.set_amend_pending(!self.amend_pending, cx); + self.serialize(cx); + } + + pub fn signoff_enabled(&self) -> bool { + self.signoff_enabled + } + + pub fn set_signoff_enabled(&mut self, value: bool, cx: &mut Context) { + self.signoff_enabled = value; + self.serialize(cx); + cx.notify(); + } + + pub fn toggle_signoff_enabled( + &mut self, + _: &Signoff, + _window: &mut Window, + cx: &mut Context, + ) { + self.set_signoff_enabled(!self.signoff_enabled, cx); + } + pub async fn load( workspace: WeakEntity, mut cx: AsyncWindowContext, ) -> anyhow::Result> { - let serialized_panel = cx - .background_spawn(async move { KEY_VALUE_STORE.read_kvp(&GIT_PANEL_KEY) }) - .await - .context("loading git panel") - .log_err() + let serialized_panel = match workspace + .read_with(&cx, |workspace, _| Self::serialization_key(workspace)) + .ok() .flatten() - .and_then(|panel| serde_json::from_str::(&panel).log_err()); + { + Some(serialization_key) => cx + .background_spawn(async move { KEY_VALUE_STORE.read_kvp(&serialization_key) }) + .await + .context("loading git panel") + .log_err() + .flatten() + .map(|panel| serde_json::from_str::(&panel)) + .transpose() + .log_err() + .flatten(), + None => None, + }; workspace.update_in(&mut cx, |workspace, window, cx| { let panel = GitPanel::new(workspace, window, cx); @@ -4236,6 +4247,8 @@ impl GitPanel { if let Some(serialized_panel) = serialized_panel { panel.update(cx, |panel, cx| { panel.width = serialized_panel.width; + panel.amend_pending = serialized_panel.amend_pending; + panel.signoff_enabled = serialized_panel.signoff_enabled; cx.notify(); }) } @@ -4320,7 +4333,8 @@ impl Render for GitPanel { .on_action(cx.listener(Self::stage_range)) .on_action(cx.listener(GitPanel::commit)) .on_action(cx.listener(GitPanel::amend)) - .on_action(cx.listener(GitPanel::cancel)) + .on_action(cx.listener(GitPanel::toggle_amend_pending)) + .on_action(cx.listener(GitPanel::toggle_signoff_enabled)) .on_action(cx.listener(Self::stage_all)) .on_action(cx.listener(Self::unstage_all)) .on_action(cx.listener(Self::stage_selected)) diff --git a/crates/project/src/git_store.rs b/crates/project/src/git_store.rs index 9ff3823e0f..5f07bafe5b 100644 --- a/crates/project/src/git_store.rs +++ b/crates/project/src/git_store.rs @@ -1738,6 +1738,7 @@ impl GitStore { name.zip(email), CommitOptions { amend: options.amend, + signoff: options.signoff, }, cx, ) @@ -3488,6 +3489,7 @@ impl Repository { email: email.map(String::from), options: Some(proto::commit::CommitOptions { amend: options.amend, + signoff: options.signoff, }), }) .await diff --git a/crates/proto/proto/git.proto b/crates/proto/proto/git.proto index 6593062ed2..1d544b15ff 100644 --- a/crates/proto/proto/git.proto +++ b/crates/proto/proto/git.proto @@ -298,6 +298,7 @@ message Commit { message CommitOptions { bool amend = 1; + bool signoff = 2; } } From ad2bfa3edd0991d9c15f349dab0e416a08210e9f Mon Sep 17 00:00:00 2001 From: Finn Evers Date: Thu, 17 Jul 2025 11:22:04 +0200 Subject: [PATCH 0014/1052] Disable minimap in the inspector (#34607) This disables the minimap in the inspector UI as it doesn't bring any value to it and just takes up unnecessary space. Release Notes: - N/A --- crates/inspector_ui/src/div_inspector.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/crates/inspector_ui/src/div_inspector.rs b/crates/inspector_ui/src/div_inspector.rs index 7d162bcc35..bd395aa01b 100644 --- a/crates/inspector_ui/src/div_inspector.rs +++ b/crates/inspector_ui/src/div_inspector.rs @@ -1,5 +1,8 @@ use anyhow::{Result, anyhow}; -use editor::{Bias, CompletionProvider, Editor, EditorEvent, EditorMode, ExcerptId, MultiBuffer}; +use editor::{ + Bias, CompletionProvider, Editor, EditorEvent, EditorMode, ExcerptId, MinimapVisibility, + MultiBuffer, +}; use fuzzy::StringMatch; use gpui::{ AsyncWindowContext, DivInspectorState, Entity, InspectorElementId, IntoElement, @@ -499,6 +502,7 @@ impl DivInspector { editor.set_show_git_diff_gutter(false, cx); editor.set_show_runnables(false, cx); editor.set_show_edit_predictions(Some(false), window, cx); + editor.set_minimap_visibility(MinimapVisibility::Disabled, window, cx); editor }) } From acb3ecef0c494fa8dbc346c08f722491182a192d Mon Sep 17 00:00:00 2001 From: Oleksiy Syvokon Date: Thu, 17 Jul 2025 13:08:20 +0300 Subject: [PATCH 0015/1052] Do not send project notifications when agent creates a file (#34610) Release Notes: - N/A --- crates/assistant_tool/src/action_log.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/crates/assistant_tool/src/action_log.rs b/crates/assistant_tool/src/action_log.rs index dce1b0cdc1..ecbbcc785e 100644 --- a/crates/assistant_tool/src/action_log.rs +++ b/crates/assistant_tool/src/action_log.rs @@ -331,16 +331,17 @@ impl ActionLog { .get_mut(buffer) .context("buffer not tracked")?; - if let ChangeAuthor::User = author { - tracked_buffer.has_unnotified_user_edits = true; - } - let rebase = cx.background_spawn({ let mut base_text = tracked_buffer.diff_base.clone(); let old_snapshot = tracked_buffer.snapshot.clone(); let new_snapshot = buffer_snapshot.clone(); let unreviewed_edits = tracked_buffer.unreviewed_edits.clone(); let edits = diff_snapshots(&old_snapshot, &new_snapshot); + if let ChangeAuthor::User = author + && !edits.is_empty() + { + tracked_buffer.has_unnotified_user_edits = true; + } async move { if let ChangeAuthor::User = author { apply_non_conflicting_edits( From 758c5fb9551fb7a520da1b76b0d6357ea462fcb1 Mon Sep 17 00:00:00 2001 From: Arseny Kapoulkine Date: Thu, 17 Jul 2025 03:52:26 -0700 Subject: [PATCH 0016/1052] Allow disabling snippet completion by setting `snippet_sort_order` to `none` (#34565) This mirrors VSCode setting that inspired `snippet_sort_order` to begin with; VSCode supports inline/top/bottom/none, with none completely disabling snippet completion. See https://code.visualstudio.com/docs/editing/intellisense#_snippets-in-suggestions This is helpful for LSPs that do not allow configuring snippets via configuration such as clangd. Release Notes: - Added `none` as one of the values for `snippet_sort_order` to completely disable snippet completion. --- assets/settings/default.json | 2 ++ crates/editor/src/code_context_menus.rs | 15 +++++++++++++++ crates/editor/src/editor_settings.rs | 2 ++ docs/src/configuring-zed.md | 6 ++++++ docs/src/visual-customization.md | 2 +- 5 files changed, 26 insertions(+), 1 deletion(-) diff --git a/assets/settings/default.json b/assets/settings/default.json index 32d4c496c1..2c980603bf 100644 --- a/assets/settings/default.json +++ b/assets/settings/default.json @@ -197,6 +197,8 @@ // "inline" // 3. Place snippets at the bottom of the completion list: // "bottom" + // 4. Do not show snippets in the completion list: + // "none" "snippet_sort_order": "inline", // How to highlight the current line in the editor. // diff --git a/crates/editor/src/code_context_menus.rs b/crates/editor/src/code_context_menus.rs index 8fbae8d605..c7477837dd 100644 --- a/crates/editor/src/code_context_menus.rs +++ b/crates/editor/src/code_context_menus.rs @@ -1074,6 +1074,20 @@ impl CompletionsMenu { .and_then(|q| q.chars().next()) .and_then(|c| c.to_lowercase().next()); + if snippet_sort_order == SnippetSortOrder::None { + matches.retain(|string_match| { + let completion = &completions[string_match.candidate_id]; + + let is_snippet = matches!( + &completion.source, + CompletionSource::Lsp { lsp_completion, .. } + if lsp_completion.kind == Some(CompletionItemKind::SNIPPET) + ); + + !is_snippet + }); + } + matches.sort_unstable_by_key(|string_match| { let completion = &completions[string_match.candidate_id]; @@ -1112,6 +1126,7 @@ impl CompletionsMenu { SnippetSortOrder::Top => Reverse(if is_snippet { 1 } else { 0 }), SnippetSortOrder::Bottom => Reverse(if is_snippet { 0 } else { 1 }), SnippetSortOrder::Inline => Reverse(0), + SnippetSortOrder::None => Reverse(0), }; let sort_positions = string_match.positions.clone(); let sort_exact = Reverse(if Some(completion.label.filter_text()) == query { diff --git a/crates/editor/src/editor_settings.rs b/crates/editor/src/editor_settings.rs index 5d8379ddfb..14f46c0e60 100644 --- a/crates/editor/src/editor_settings.rs +++ b/crates/editor/src/editor_settings.rs @@ -395,6 +395,8 @@ pub enum SnippetSortOrder { Inline, /// Place snippets at the bottom of the completion list Bottom, + /// Do not show snippets in the completion list + None, } #[derive(Clone, Default, Serialize, Deserialize, JsonSchema)] diff --git a/docs/src/configuring-zed.md b/docs/src/configuring-zed.md index eec9da60dd..91a39d1ccd 100644 --- a/docs/src/configuring-zed.md +++ b/docs/src/configuring-zed.md @@ -639,6 +639,12 @@ List of `string` values "snippet_sort_order": "bottom" ``` +4. Do not show snippets in the completion list at all: + +```json +"snippet_sort_order": "none" +``` + ## Editor Scrollbar - Description: Whether or not to show the editor scrollbar and various elements in it. diff --git a/docs/src/visual-customization.md b/docs/src/visual-customization.md index 636e0f9c4e..ad38b86406 100644 --- a/docs/src/visual-customization.md +++ b/docs/src/visual-customization.md @@ -317,7 +317,7 @@ TBD: Centered layout related settings ### Editor Completions, Snippets, Actions, Diagnostics {#editor-lsp} ```json - "snippet_sort_order": "inline", // Snippets completions: top, inline, bottom + "snippet_sort_order": "inline", // Snippets completions: top, inline, bottom, none "show_completions_on_input": true, // Show completions while typing "show_completion_documentation": true, // Show documentation in completions "auto_signature_help": false, // Show method signatures inside parentheses From 1e67e30034ca2b54bb3910825b045d038bfaa310 Mon Sep 17 00:00:00 2001 From: Oleksiy Syvokon Date: Thu, 17 Jul 2025 14:21:20 +0300 Subject: [PATCH 0017/1052] Fix shortcuts with `Shift` (#34614) Closes #34605, #34606, #34609 Release Notes: - Fixed shortcuts involving Shift --- crates/gpui/src/platform/linux/platform.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/gpui/src/platform/linux/platform.rs b/crates/gpui/src/platform/linux/platform.rs index a24838339e..c4b90ccf08 100644 --- a/crates/gpui/src/platform/linux/platform.rs +++ b/crates/gpui/src/platform/linux/platform.rs @@ -837,7 +837,7 @@ impl crate::Keystroke { && key.is_ascii() { if key.is_ascii_graphic() { - key_utf8.clone() + key_utf8.to_lowercase() // map ctrl-a to a } else if key_utf32 <= 0x1f { ((key_utf32 as u8 + 0x60) as char).to_string() From 4df7f52bf3aa2e94dfbb4002a8881b08ee1ae8e1 Mon Sep 17 00:00:00 2001 From: Oleksiy Syvokon Date: Thu, 17 Jul 2025 14:55:38 +0300 Subject: [PATCH 0018/1052] agent: Disable `project_notifications` by default (#34615) This tool needs more polishing before being generally available. Release Notes: - agent: Disabled `project_notifications` tool by default for the time being --- assets/settings/default.json | 4 ++-- crates/agent/src/thread.rs | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/assets/settings/default.json b/assets/settings/default.json index 2c980603bf..358871650b 100644 --- a/assets/settings/default.json +++ b/assets/settings/default.json @@ -819,7 +819,7 @@ "edit_file": true, "fetch": true, "list_directory": true, - "project_notifications": true, + "project_notifications": false, "move_path": true, "now": true, "find_path": true, @@ -839,7 +839,7 @@ "diagnostics": true, "fetch": true, "list_directory": true, - "project_notifications": true, + "project_notifications": false, "now": true, "find_path": true, "read_file": true, diff --git a/crates/agent/src/thread.rs b/crates/agent/src/thread.rs index d46dada270..dca0f5a430 100644 --- a/crates/agent/src/thread.rs +++ b/crates/agent/src/thread.rs @@ -3583,6 +3583,7 @@ fn main() {{ } #[gpui::test] + #[ignore] // turn this test on when project_notifications tool is re-enabled async fn test_stale_buffer_notification(cx: &mut TestAppContext) { init_test_settings(cx); From ceab139f54717aff87f2fc9175423303c61944bf Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Thu, 17 Jul 2025 15:20:47 +0300 Subject: [PATCH 0019/1052] Rework extension-related errors (#34620) Before: before After: after Makes clear which path is causing the FS error and removes backtraces from logging. Release Notes: - N/A --- crates/extension_host/src/extension_host.rs | 38 ++++++++++++++------- crates/extension_host/src/headless_host.rs | 5 ++- crates/extension_host/src/wasm_host.rs | 2 +- 3 files changed, 28 insertions(+), 17 deletions(-) diff --git a/crates/extension_host/src/extension_host.rs b/crates/extension_host/src/extension_host.rs index 075c68d51a..fd64d3fa59 100644 --- a/crates/extension_host/src/extension_host.rs +++ b/crates/extension_host/src/extension_host.rs @@ -1313,10 +1313,17 @@ impl ExtensionStore { } for snippets_path in &snippets_to_add { - if let Some(snippets_contents) = fs.load(snippets_path).await.log_err() { - proxy - .register_snippet(snippets_path, &snippets_contents) - .log_err(); + match fs + .load(snippets_path) + .await + .with_context(|| format!("Loading snippets from {snippets_path:?}")) + { + Ok(snippets_contents) => { + proxy + .register_snippet(snippets_path, &snippets_contents) + .log_err(); + } + Err(e) => log::error!("Cannot load snippets: {e:#}"), } } } @@ -1331,20 +1338,25 @@ impl ExtensionStore { let extension_path = root_dir.join(extension.manifest.id.as_ref()); let wasm_extension = WasmExtension::load( - extension_path, + &extension_path, &extension.manifest, wasm_host.clone(), &cx, ) - .await; + .await + .with_context(|| format!("Loading extension from {extension_path:?}")); - if let Some(wasm_extension) = wasm_extension.log_err() { - wasm_extensions.push((extension.manifest.clone(), wasm_extension)); - } else { - this.update(cx, |_, cx| { - cx.emit(Event::ExtensionFailedToLoad(extension.manifest.id.clone())) - }) - .ok(); + match wasm_extension { + Ok(wasm_extension) => { + wasm_extensions.push((extension.manifest.clone(), wasm_extension)) + } + Err(e) => { + log::error!("Failed to load extension: {e:#}"); + this.update(cx, |_, cx| { + cx.emit(Event::ExtensionFailedToLoad(extension.manifest.id.clone())) + }) + .ok(); + } } } diff --git a/crates/extension_host/src/headless_host.rs b/crates/extension_host/src/headless_host.rs index dbc9bbfe13..adc9638c29 100644 --- a/crates/extension_host/src/headless_host.rs +++ b/crates/extension_host/src/headless_host.rs @@ -173,9 +173,8 @@ impl HeadlessExtensionStore { return Ok(()); } - let wasm_extension: Arc = Arc::new( - WasmExtension::load(extension_dir.clone(), &manifest, wasm_host.clone(), &cx).await?, - ); + let wasm_extension: Arc = + Arc::new(WasmExtension::load(&extension_dir, &manifest, wasm_host.clone(), &cx).await?); for (language_server_id, language_server_config) in &manifest.language_servers { for language in language_server_config.languages() { diff --git a/crates/extension_host/src/wasm_host.rs b/crates/extension_host/src/wasm_host.rs index 3971fa4263..3e0f06fa38 100644 --- a/crates/extension_host/src/wasm_host.rs +++ b/crates/extension_host/src/wasm_host.rs @@ -715,7 +715,7 @@ fn parse_wasm_extension_version_custom_section(data: &[u8]) -> Option, wasm_host: Arc, cx: &AsyncApp, From 5b97cd190002c798512fd18f92f26f96e13dbdbf Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Thu, 17 Jul 2025 15:39:41 +0300 Subject: [PATCH 0020/1052] Better serialize the git panel (#34622) Follow-up of https://github.com/zed-industries/zed/pull/29874 Closes https://github.com/zed-industries/zed/issues/34618 Closes https://github.com/zed-industries/zed/issues/34611 Release Notes: - N/A --- crates/git_ui/src/git_panel.rs | 65 ++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 27 deletions(-) diff --git a/crates/git_ui/src/git_panel.rs b/crates/git_ui/src/git_panel.rs index 2397f51f82..e998586af4 100644 --- a/crates/git_ui/src/git_panel.rs +++ b/crates/git_ui/src/git_panel.rs @@ -65,6 +65,7 @@ use ui::{ ScrollbarState, SplitButton, Tooltip, prelude::*, }; use util::{ResultExt, TryFutureExt, maybe}; +use workspace::SERIALIZATION_THROTTLE_TIME; use workspace::{ Workspace, @@ -342,7 +343,7 @@ pub struct GitPanel { pending_commit: Option>, amend_pending: bool, signoff_enabled: bool, - pending_serialization: Task>, + pending_serialization: Task<()>, pub(crate) project: Entity, scroll_handle: UniformListScrollHandle, max_width_item_index: Option, @@ -518,7 +519,7 @@ impl GitPanel { pending_commit: None, amend_pending: false, signoff_enabled: false, - pending_serialization: Task::ready(None), + pending_serialization: Task::ready(()), single_staged_entry: None, single_tracked_entry: None, project, @@ -709,31 +710,41 @@ impl GitPanel { let amend_pending = self.amend_pending; let signoff_enabled = self.signoff_enabled; - let Some(serialization_key) = self - .workspace - .read_with(cx, |workspace, _| Self::serialization_key(workspace)) - .ok() - .flatten() - else { - return; - }; - - self.pending_serialization = cx.background_spawn( - async move { - KEY_VALUE_STORE - .write_kvp( - serialization_key, - serde_json::to_string(&SerializedGitPanel { - width, - amend_pending, - signoff_enabled, - })?, - ) - .await?; - anyhow::Ok(()) - } - .log_err(), - ); + self.pending_serialization = cx.spawn(async move |git_panel, cx| { + cx.background_executor() + .timer(SERIALIZATION_THROTTLE_TIME) + .await; + let Some(serialization_key) = git_panel + .update(cx, |git_panel, cx| { + git_panel + .workspace + .read_with(cx, |workspace, _| Self::serialization_key(workspace)) + .ok() + .flatten() + }) + .ok() + .flatten() + else { + return; + }; + cx.background_spawn( + async move { + KEY_VALUE_STORE + .write_kvp( + serialization_key, + serde_json::to_string(&SerializedGitPanel { + width, + amend_pending, + signoff_enabled, + })?, + ) + .await?; + anyhow::Ok(()) + } + .log_err(), + ) + .await; + }); } pub(crate) fn set_modal_open(&mut self, open: bool, cx: &mut Context) { From 8e4555455c6469b33803c8c653e38b2755ad9aad Mon Sep 17 00:00:00 2001 From: Agus Zubiaga Date: Thu, 17 Jul 2025 11:25:55 -0300 Subject: [PATCH 0021/1052] Claude experiment (#34577) Release Notes: - N/A --------- Co-authored-by: Conrad Irwin Co-authored-by: Anthony Eid Co-authored-by: Ben Brandt Co-authored-by: Nathan Sobo Co-authored-by: Oleksiy Syvokon --- Cargo.lock | 33 +- Cargo.toml | 8 +- assets/icons/ai_claude.svg | 3 + assets/keymaps/default-linux.json | 4 +- assets/keymaps/default-macos.json | 4 +- crates/{acp => acp_thread}/Cargo.toml | 9 +- crates/{acp => acp_thread}/LICENSE-GPL | 0 .../acp.rs => acp_thread/src/acp_thread.rs} | 670 +++++------------ crates/acp_thread/src/connection.rs | 20 + crates/agent_servers/Cargo.toml | 21 + crates/agent_servers/src/agent_servers.rs | 213 +----- crates/agent_servers/src/claude.rs | 680 +++++++++++++++++ crates/agent_servers/src/claude/mcp_server.rs | 303 ++++++++ crates/agent_servers/src/claude/tools.rs | 670 +++++++++++++++++ crates/agent_servers/src/gemini.rs | 501 +++++++++++++ crates/agent_servers/src/settings.rs | 41 + .../agent_servers/src/stdio_agent_server.rs | 169 +++++ crates/agent_ui/Cargo.toml | 2 +- crates/agent_ui/src/acp/thread_view.rs | 704 +++++++----------- crates/agent_ui/src/agent_diff.rs | 4 +- crates/agent_ui/src/agent_panel.rs | 152 ++-- crates/agent_ui/src/agent_ui.rs | 31 +- crates/context_server/Cargo.toml | 2 + crates/context_server/src/client.rs | 29 +- crates/context_server/src/context_server.rs | 1 + crates/context_server/src/listener.rs | 236 ++++++ crates/context_server/src/types.rs | 2 +- crates/icons/src/icons.rs | 1 + crates/nc/Cargo.toml | 20 + crates/nc/LICENSE-GPL | 1 + crates/nc/src/nc.rs | 56 ++ crates/zed/Cargo.toml | 1 + crates/zed/src/main.rs | 16 + 33 files changed, 3437 insertions(+), 1170 deletions(-) create mode 100644 assets/icons/ai_claude.svg rename crates/{acp => acp_thread}/Cargo.toml (92%) rename crates/{acp => acp_thread}/LICENSE-GPL (100%) rename crates/{acp/src/acp.rs => acp_thread/src/acp_thread.rs} (75%) create mode 100644 crates/acp_thread/src/connection.rs create mode 100644 crates/agent_servers/src/claude.rs create mode 100644 crates/agent_servers/src/claude/mcp_server.rs create mode 100644 crates/agent_servers/src/claude/tools.rs create mode 100644 crates/agent_servers/src/gemini.rs create mode 100644 crates/agent_servers/src/settings.rs create mode 100644 crates/agent_servers/src/stdio_agent_server.rs create mode 100644 crates/context_server/src/listener.rs create mode 100644 crates/nc/Cargo.toml create mode 120000 crates/nc/LICENSE-GPL create mode 100644 crates/nc/src/nc.rs diff --git a/Cargo.lock b/Cargo.lock index 59e444f1f8..540e3039ef 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3,10 +3,9 @@ version = 4 [[package]] -name = "acp" +name = "acp_thread" version = "0.1.0" dependencies = [ - "agent_servers", "agentic-coding-protocol", "anyhow", "assistant_tool", @@ -21,6 +20,7 @@ dependencies = [ "language", "markdown", "project", + "serde", "serde_json", "settings", "smol", @@ -139,16 +139,29 @@ dependencies = [ name = "agent_servers" version = "0.1.0" dependencies = [ + "acp_thread", + "agentic-coding-protocol", "anyhow", "collections", + "context_server", + "env_logger 0.11.8", "futures 0.3.31", "gpui", + "indoc", + "itertools 0.14.0", + "language", + "log", "paths", "project", "schemars", "serde", + "serde_json", "settings", + "smol", + "tempfile", + "ui", "util", + "watch", "which 6.0.3", "workspace-hack", ] @@ -176,7 +189,7 @@ dependencies = [ name = "agent_ui" version = "0.1.0" dependencies = [ - "acp", + "acp_thread", "agent", "agent_servers", "agent_settings", @@ -3411,12 +3424,14 @@ dependencies = [ "futures 0.3.31", "gpui", "log", + "net", "parking_lot", "postage", "schemars", "serde", "serde_json", "smol", + "tempfile", "url", "util", "workspace-hack", @@ -10288,6 +10303,17 @@ dependencies = [ "uuid", ] +[[package]] +name = "nc" +version = "0.1.0" +dependencies = [ + "anyhow", + "futures 0.3.31", + "net", + "smol", + "workspace-hack", +] + [[package]] name = "ndk" version = "0.8.0" @@ -20171,6 +20197,7 @@ dependencies = [ "menu", "migrator", "mimalloc", + "nc", "nix 0.29.0", "node_runtime", "notifications", diff --git a/Cargo.toml b/Cargo.toml index afb47c006e..1c79f4c1c8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,7 @@ resolver = "2" members = [ "crates/activity_indicator", - "crates/acp", + "crates/acp_thread", "crates/agent_ui", "crates/agent", "crates/agent_settings", @@ -102,6 +102,7 @@ members = [ "crates/migrator", "crates/mistral", "crates/multi_buffer", + "crates/nc", "crates/net", "crates/node_runtime", "crates/notifications", @@ -219,7 +220,7 @@ edition = "2024" # Workspace member crates # -acp = { path = "crates/acp" } +acp_thread = { path = "crates/acp_thread" } agent = { path = "crates/agent" } activity_indicator = { path = "crates/activity_indicator" } agent_ui = { path = "crates/agent_ui" } @@ -317,6 +318,7 @@ menu = { path = "crates/menu" } migrator = { path = "crates/migrator" } mistral = { path = "crates/mistral" } multi_buffer = { path = "crates/multi_buffer" } +nc = { path = "crates/nc" } net = { path = "crates/net" } node_runtime = { path = "crates/node_runtime" } notifications = { path = "crates/notifications" } @@ -406,7 +408,7 @@ zlog_settings = { path = "crates/zlog_settings" } # External crates # -agentic-coding-protocol = { version = "0.0.9" } +agentic-coding-protocol = "0.0.9" aho-corasick = "1.1" alacritty_terminal = { git = "https://github.com/zed-industries/alacritty.git", branch = "add-hush-login-flag" } any_vec = "0.14" diff --git a/assets/icons/ai_claude.svg b/assets/icons/ai_claude.svg new file mode 100644 index 0000000000..423a963eba --- /dev/null +++ b/assets/icons/ai_claude.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/keymaps/default-linux.json b/assets/keymaps/default-linux.json index da4d79eca1..b52b6c614d 100644 --- a/assets/keymaps/default-linux.json +++ b/assets/keymaps/default-linux.json @@ -269,10 +269,10 @@ } }, { - "context": "AgentPanel && acp_thread", + "context": "AgentPanel && external_agent_thread", "use_key_equivalents": true, "bindings": { - "ctrl-n": "agent::NewAcpThread", + "ctrl-n": "agent::NewExternalAgentThread", "ctrl-alt-t": "agent::NewThread" } }, diff --git a/assets/keymaps/default-macos.json b/assets/keymaps/default-macos.json index 962760098b..240b42fd1f 100644 --- a/assets/keymaps/default-macos.json +++ b/assets/keymaps/default-macos.json @@ -310,10 +310,10 @@ } }, { - "context": "AgentPanel && acp_thread", + "context": "AgentPanel && external_agent_thread", "use_key_equivalents": true, "bindings": { - "cmd-n": "agent::NewAcpThread", + "cmd-n": "agent::NewExternalAgentThread", "cmd-alt-t": "agent::NewThread" } }, diff --git a/crates/acp/Cargo.toml b/crates/acp_thread/Cargo.toml similarity index 92% rename from crates/acp/Cargo.toml rename to crates/acp_thread/Cargo.toml index 1570aeaef0..b44c25ccc9 100644 --- a/crates/acp/Cargo.toml +++ b/crates/acp_thread/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "acp" +name = "acp_thread" version = "0.1.0" edition.workspace = true publish.workspace = true @@ -9,15 +9,13 @@ license = "GPL-3.0-or-later" workspace = true [lib] -path = "src/acp.rs" +path = "src/acp_thread.rs" doctest = false [features] test-support = ["gpui/test-support", "project/test-support"] -gemini = [] [dependencies] -agent_servers.workspace = true agentic-coding-protocol.workspace = true anyhow.workspace = true assistant_tool.workspace = true @@ -29,6 +27,8 @@ itertools.workspace = true language.workspace = true markdown.workspace = true project.workspace = true +serde.workspace = true +serde_json.workspace = true settings.workspace = true smol.workspace = true ui.workspace = true @@ -41,7 +41,6 @@ env_logger.workspace = true gpui = { workspace = true, "features" = ["test-support"] } indoc.workspace = true project = { workspace = true, "features" = ["test-support"] } -serde_json.workspace = true tempfile.workspace = true util.workspace = true settings.workspace = true diff --git a/crates/acp/LICENSE-GPL b/crates/acp_thread/LICENSE-GPL similarity index 100% rename from crates/acp/LICENSE-GPL rename to crates/acp_thread/LICENSE-GPL diff --git a/crates/acp/src/acp.rs b/crates/acp_thread/src/acp_thread.rs similarity index 75% rename from crates/acp/src/acp.rs rename to crates/acp_thread/src/acp_thread.rs index a7e72b0c2d..1e3947351a 100644 --- a/crates/acp/src/acp.rs +++ b/crates/acp_thread/src/acp_thread.rs @@ -1,7 +1,12 @@ +mod connection; +pub use connection::*; + pub use acp::ToolCallId; -use agent_servers::AgentServer; -use agentic_coding_protocol::{self as acp, ToolCallLocation, UserMessageChunk}; -use anyhow::{Context as _, Result, anyhow}; +use agentic_coding_protocol::{ + self as acp, AgentRequest, ProtocolVersion, ToolCallConfirmationOutcome, ToolCallLocation, + UserMessageChunk, +}; +use anyhow::{Context as _, Result}; use assistant_tool::ActionLog; use buffer_diff::BufferDiff; use editor::{Bias, MultiBuffer, PathKey}; @@ -97,7 +102,7 @@ pub struct AssistantMessage { } impl AssistantMessage { - fn to_markdown(&self, cx: &App) -> String { + pub fn to_markdown(&self, cx: &App) -> String { format!( "## Assistant\n\n{}\n\n", self.chunks @@ -455,9 +460,8 @@ pub struct AcpThread { action_log: Entity, shared_buffers: HashMap, BufferSnapshot>, send_task: Option>, - connection: Arc, + connection: Arc, child_status: Option>>, - _io_task: Task<()>, } pub enum AcpThreadEvent { @@ -476,7 +480,11 @@ pub enum ThreadStatus { #[derive(Debug, Clone)] pub enum LoadError { - Unsupported { current_version: SharedString }, + Unsupported { + error_message: SharedString, + upgrade_message: SharedString, + upgrade_command: String, + }, Exited(i32), Other(SharedString), } @@ -484,13 +492,7 @@ pub enum LoadError { impl Display for LoadError { fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { match self { - LoadError::Unsupported { current_version } => { - write!( - f, - "Your installed version of Gemini {} doesn't support the Agentic Coding Protocol (ACP).", - current_version - ) - } + LoadError::Unsupported { error_message, .. } => write!(f, "{}", error_message), LoadError::Exited(status) => write!(f, "Server exited with status {}", status), LoadError::Other(msg) => write!(f, "{}", msg), } @@ -500,75 +502,38 @@ impl Display for LoadError { impl Error for LoadError {} impl AcpThread { - pub async fn spawn( - server: impl AgentServer + 'static, - root_dir: &Path, + pub fn new( + connection: impl AgentConnection + 'static, + title: SharedString, + child_status: Option>>, project: Entity, - cx: &mut AsyncApp, - ) -> Result> { - let command = match server.command(&project, cx).await { - Ok(command) => command, - Err(e) => return Err(anyhow!(LoadError::Other(format!("{e}").into()))), - }; + cx: &mut Context, + ) -> Self { + let action_log = cx.new(|_| ActionLog::new(project.clone())); - let mut child = util::command::new_smol_command(&command.path) - .args(command.args.iter()) - .current_dir(root_dir) - .stdin(std::process::Stdio::piped()) - .stdout(std::process::Stdio::piped()) - .stderr(std::process::Stdio::inherit()) - .kill_on_drop(true) - .spawn()?; + Self { + action_log, + shared_buffers: Default::default(), + entries: Default::default(), + title, + project, + send_task: None, + connection: Arc::new(connection), + child_status, + } + } - let stdin = child.stdin.take().unwrap(); - let stdout = child.stdout.take().unwrap(); - - cx.new(|cx| { - let foreground_executor = cx.foreground_executor().clone(); - - let (connection, io_fut) = acp::AgentConnection::connect_to_agent( - AcpClientDelegate::new(cx.entity().downgrade(), cx.to_async()), - stdin, - stdout, - move |fut| foreground_executor.spawn(fut).detach(), - ); - - let io_task = cx.background_spawn(async move { - io_fut.await.log_err(); - }); - - let child_status = cx.background_spawn(async move { - match child.status().await { - Err(e) => Err(anyhow!(e)), - Ok(result) if result.success() => Ok(()), - Ok(result) => { - if let Some(version) = server.version(&command).await.log_err() - && !version.supported - { - Err(anyhow!(LoadError::Unsupported { - current_version: version.current_version - })) - } else { - Err(anyhow!(LoadError::Exited(result.code().unwrap_or(-127)))) - } - } - } - }); - - let action_log = cx.new(|_| ActionLog::new(project.clone())); - - Self { - action_log, - shared_buffers: Default::default(), - entries: Default::default(), - title: "ACP Thread".into(), - project, - send_task: None, - connection: Arc::new(connection), - child_status: Some(child_status), - _io_task: io_task, - } - }) + /// Send a request to the agent and wait for a response. + pub fn request( + &self, + params: R, + ) -> impl use + Future> { + let params = params.into_any(); + let result = self.connection.request_any(params); + async move { + let result = result.await?; + Ok(R::response_from_any(result)?) + } } pub fn action_log(&self) -> &Entity { @@ -579,45 +544,6 @@ impl AcpThread { &self.project } - #[cfg(test)] - pub fn fake( - stdin: async_pipe::PipeWriter, - stdout: async_pipe::PipeReader, - project: Entity, - cx: &mut Context, - ) -> Self { - let foreground_executor = cx.foreground_executor().clone(); - - let (connection, io_fut) = acp::AgentConnection::connect_to_agent( - AcpClientDelegate::new(cx.entity().downgrade(), cx.to_async()), - stdin, - stdout, - move |fut| { - foreground_executor.spawn(fut).detach(); - }, - ); - - let io_task = cx.background_spawn({ - async move { - io_fut.await.log_err(); - } - }); - - let action_log = cx.new(|_| ActionLog::new(project.clone())); - - Self { - action_log, - shared_buffers: Default::default(), - entries: Default::default(), - title: "ACP Thread".into(), - project, - send_task: None, - connection: Arc::new(connection), - child_status: None, - _io_task: io_task, - } - } - pub fn title(&self) -> SharedString { self.title.clone() } @@ -711,7 +637,7 @@ impl AcpThread { } } - pub fn request_tool_call( + pub fn request_new_tool_call( &mut self, tool_call: acp::RequestToolCallConfirmationParams, cx: &mut Context, @@ -731,6 +657,30 @@ impl AcpThread { ToolCallRequest { id, outcome: rx } } + pub fn request_tool_call_confirmation( + &mut self, + tool_call_id: ToolCallId, + confirmation: acp::ToolCallConfirmation, + cx: &mut Context, + ) -> Result { + let project = self.project.read(cx).languages().clone(); + let Some((_, call)) = self.tool_call_mut(tool_call_id) else { + anyhow::bail!("Tool call not found"); + }; + + let (tx, rx) = oneshot::channel(); + + call.status = ToolCallStatus::WaitingForConfirmation { + confirmation: ToolCallConfirmation::from_acp(confirmation, project, cx), + respond_tx: tx, + }; + + Ok(ToolCallRequest { + id: tool_call_id, + outcome: rx, + }) + } + pub fn push_tool_call( &mut self, request: acp::PushToolCallParams, @@ -912,19 +862,17 @@ impl AcpThread { false } - pub fn initialize( - &self, - ) -> impl use<> + Future> { - let connection = self.connection.clone(); - async move { connection.initialize().await } + pub fn initialize(&self) -> impl use<> + Future> { + self.request(acp::InitializeParams { + protocol_version: ProtocolVersion::latest(), + }) } - pub fn authenticate(&self) -> impl use<> + Future> { - let connection = self.connection.clone(); - async move { connection.request(acp::AuthenticateParams).await } + pub fn authenticate(&self) -> impl use<> + Future> { + self.request(acp::AuthenticateParams) } - #[cfg(test)] + #[cfg(any(test, feature = "test-support"))] pub fn send_raw( &mut self, message: &str, @@ -945,7 +893,6 @@ impl AcpThread { message: acp::SendUserMessageParams, cx: &mut Context, ) -> BoxFuture<'static, Result<(), acp::Error>> { - let agent = self.connection.clone(); self.push_entry( AgentThreadEntry::UserMessage(UserMessage::from_acp( &message, @@ -959,11 +906,16 @@ impl AcpThread { let cancel = self.cancel(cx); self.send_task = Some(cx.spawn(async move |this, cx| { - cancel.await.log_err(); + async { + cancel.await.log_err(); - let result = agent.request(message).await; - tx.send(result).log_err(); - this.update(cx, |this, _cx| this.send_task.take()).log_err(); + let result = this.update(cx, |this, _| this.request(message))?.await; + tx.send(result).log_err(); + this.update(cx, |this, _cx| this.send_task.take())?; + anyhow::Ok(()) + } + .await + .log_err(); })); async move { @@ -976,12 +928,10 @@ impl AcpThread { } pub fn cancel(&mut self, cx: &mut Context) -> Task> { - let agent = self.connection.clone(); - if self.send_task.take().is_some() { + let request = self.request(acp::CancelSendMessageParams); cx.spawn(async move |this, cx| { - agent.request(acp::CancelSendMessageParams).await?; - + request.await?; this.update(cx, |this, _cx| { for entry in this.entries.iter_mut() { if let AgentThreadEntry::ToolCall(call) = entry { @@ -1019,6 +969,7 @@ impl AcpThread { pub fn read_text_file( &self, request: acp::ReadTextFileParams, + reuse_shared_snapshot: bool, cx: &mut Context, ) -> Task> { let project = self.project.clone(); @@ -1032,28 +983,60 @@ impl AcpThread { }); let buffer = load??.await?; - action_log.update(cx, |action_log, cx| { - action_log.buffer_read(buffer.clone(), cx); - })?; - project.update(cx, |project, cx| { - let position = buffer - .read(cx) - .snapshot() - .anchor_before(Point::new(request.line.unwrap_or_default(), 0)); - project.set_agent_location( - Some(AgentLocation { - buffer: buffer.downgrade(), - position, - }), - cx, - ); - })?; - let snapshot = buffer.update(cx, |buffer, _| buffer.snapshot())?; + let snapshot = if reuse_shared_snapshot { + this.read_with(cx, |this, _| { + this.shared_buffers.get(&buffer.clone()).cloned() + }) + .log_err() + .flatten() + } else { + None + }; + + let snapshot = if let Some(snapshot) = snapshot { + snapshot + } else { + action_log.update(cx, |action_log, cx| { + action_log.buffer_read(buffer.clone(), cx); + })?; + project.update(cx, |project, cx| { + let position = buffer + .read(cx) + .snapshot() + .anchor_before(Point::new(request.line.unwrap_or_default(), 0)); + project.set_agent_location( + Some(AgentLocation { + buffer: buffer.downgrade(), + position, + }), + cx, + ); + })?; + + buffer.update(cx, |buffer, _| buffer.snapshot())? + }; + this.update(cx, |this, _| { let text = snapshot.text(); this.shared_buffers.insert(buffer.clone(), snapshot); - text - }) + if request.line.is_none() && request.limit.is_none() { + return Ok(text); + } + let limit = request.limit.unwrap_or(u32::MAX) as usize; + let Some(line) = request.line else { + return Ok(text.lines().take(limit).collect::()); + }; + + let count = text.lines().count(); + if count < line as usize { + anyhow::bail!("There are only {} lines", count); + } + Ok(text + .lines() + .skip(line as usize + 1) + .take(limit) + .collect::()) + })? }) } @@ -1134,16 +1117,49 @@ impl AcpThread { } } -struct AcpClientDelegate { +#[derive(Clone)] +pub struct AcpClientDelegate { thread: WeakEntity, cx: AsyncApp, // sent_buffer_versions: HashMap, HashMap>, } impl AcpClientDelegate { - fn new(thread: WeakEntity, cx: AsyncApp) -> Self { + pub fn new(thread: WeakEntity, cx: AsyncApp) -> Self { Self { thread, cx } } + + pub async fn request_existing_tool_call_confirmation( + &self, + tool_call_id: ToolCallId, + confirmation: acp::ToolCallConfirmation, + ) -> Result { + let cx = &mut self.cx.clone(); + let ToolCallRequest { outcome, .. } = cx + .update(|cx| { + self.thread.update(cx, |thread, cx| { + thread.request_tool_call_confirmation(tool_call_id, confirmation, cx) + }) + })? + .context("Failed to update thread")??; + + Ok(outcome.await?) + } + + pub async fn read_text_file_reusing_snapshot( + &self, + request: acp::ReadTextFileParams, + ) -> Result { + let content = self + .cx + .update(|cx| { + self.thread + .update(cx, |thread, cx| thread.read_text_file(request, true, cx)) + })? + .context("Failed to update thread")? + .await?; + Ok(acp::ReadTextFileResponse { content }) + } } impl acp::Client for AcpClientDelegate { @@ -1172,7 +1188,7 @@ impl acp::Client for AcpClientDelegate { let ToolCallRequest { id, outcome } = cx .update(|cx| { self.thread - .update(cx, |thread, cx| thread.request_tool_call(request, cx)) + .update(cx, |thread, cx| thread.request_new_tool_call(request, cx)) })? .context("Failed to update thread")?; @@ -1218,7 +1234,7 @@ impl acp::Client for AcpClientDelegate { .cx .update(|cx| { self.thread - .update(cx, |thread, cx| thread.read_text_file(request, cx)) + .update(cx, |thread, cx| thread.read_text_file(request, false, cx)) })? .context("Failed to update thread")? .await?; @@ -1260,7 +1276,7 @@ pub struct ToolCallRequest { #[cfg(test)] mod tests { use super::*; - use agent_servers::{AgentServerCommand, AgentServerVersion}; + use anyhow::anyhow; use async_pipe::{PipeReader, PipeWriter}; use futures::{channel::mpsc, future::LocalBoxFuture, select}; use gpui::{AsyncApp, TestAppContext}; @@ -1269,7 +1285,7 @@ mod tests { use serde_json::json; use settings::SettingsStore; use smol::{future::BoxedLocal, stream::StreamExt as _}; - use std::{cell::RefCell, env, path::Path, rc::Rc, time::Duration}; + use std::{cell::RefCell, rc::Rc, time::Duration}; use util::path; fn init_test(cx: &mut TestAppContext) { @@ -1515,265 +1531,6 @@ mod tests { }); } - #[gpui::test] - #[cfg_attr(not(feature = "gemini"), ignore)] - async fn test_gemini_basic(cx: &mut TestAppContext) { - init_test(cx); - - cx.executor().allow_parking(); - - let fs = FakeFs::new(cx.executor()); - let project = Project::test(fs, [], cx).await; - let thread = gemini_acp_thread(project.clone(), "/private/tmp", cx).await; - thread - .update(cx, |thread, cx| thread.send_raw("Hello from Zed!", cx)) - .await - .unwrap(); - - thread.read_with(cx, |thread, _| { - assert_eq!(thread.entries.len(), 2); - assert!(matches!( - thread.entries[0], - AgentThreadEntry::UserMessage(_) - )); - assert!(matches!( - thread.entries[1], - AgentThreadEntry::AssistantMessage(_) - )); - }); - } - - #[gpui::test] - #[cfg_attr(not(feature = "gemini"), ignore)] - async fn test_gemini_path_mentions(cx: &mut TestAppContext) { - init_test(cx); - - cx.executor().allow_parking(); - let tempdir = tempfile::tempdir().unwrap(); - std::fs::write( - tempdir.path().join("foo.rs"), - indoc! {" - fn main() { - println!(\"Hello, world!\"); - } - "}, - ) - .expect("failed to write file"); - let project = Project::example([tempdir.path()], &mut cx.to_async()).await; - let thread = gemini_acp_thread(project.clone(), tempdir.path(), cx).await; - thread - .update(cx, |thread, cx| { - thread.send( - acp::SendUserMessageParams { - chunks: vec![ - acp::UserMessageChunk::Text { - text: "Read the file ".into(), - }, - acp::UserMessageChunk::Path { - path: Path::new("foo.rs").into(), - }, - acp::UserMessageChunk::Text { - text: " and tell me what the content of the println! is".into(), - }, - ], - }, - cx, - ) - }) - .await - .unwrap(); - - thread.read_with(cx, |thread, cx| { - assert_eq!(thread.entries.len(), 3); - assert!(matches!( - thread.entries[0], - AgentThreadEntry::UserMessage(_) - )); - assert!(matches!(thread.entries[1], AgentThreadEntry::ToolCall(_))); - let AgentThreadEntry::AssistantMessage(assistant_message) = &thread.entries[2] else { - panic!("Expected AssistantMessage") - }; - assert!( - assistant_message.to_markdown(cx).contains("Hello, world!"), - "unexpected assistant message: {:?}", - assistant_message.to_markdown(cx) - ); - }); - } - - #[gpui::test] - #[cfg_attr(not(feature = "gemini"), ignore)] - async fn test_gemini_tool_call(cx: &mut TestAppContext) { - init_test(cx); - - cx.executor().allow_parking(); - - let fs = FakeFs::new(cx.executor()); - fs.insert_tree( - path!("/private/tmp"), - json!({"foo": "Lorem ipsum dolor", "bar": "bar", "baz": "baz"}), - ) - .await; - let project = Project::test(fs, [path!("/private/tmp").as_ref()], cx).await; - let thread = gemini_acp_thread(project.clone(), "/private/tmp", cx).await; - thread - .update(cx, |thread, cx| { - thread.send_raw( - "Read the '/private/tmp/foo' file and tell me what you see.", - cx, - ) - }) - .await - .unwrap(); - thread.read_with(cx, |thread, _cx| { - assert!(matches!( - &thread.entries()[2], - AgentThreadEntry::ToolCall(ToolCall { - status: ToolCallStatus::Allowed { .. }, - .. - }) - )); - - assert!(matches!( - thread.entries[3], - AgentThreadEntry::AssistantMessage(_) - )); - }); - } - - #[gpui::test] - #[cfg_attr(not(feature = "gemini"), ignore)] - async fn test_gemini_tool_call_with_confirmation(cx: &mut TestAppContext) { - init_test(cx); - - cx.executor().allow_parking(); - - let fs = FakeFs::new(cx.executor()); - let project = Project::test(fs, [path!("/private/tmp").as_ref()], cx).await; - let thread = gemini_acp_thread(project.clone(), "/private/tmp", cx).await; - let full_turn = thread.update(cx, |thread, cx| { - thread.send_raw(r#"Run `echo "Hello, world!"`"#, cx) - }); - - run_until_first_tool_call(&thread, cx).await; - - let tool_call_id = thread.read_with(cx, |thread, _cx| { - let AgentThreadEntry::ToolCall(ToolCall { - id, - status: - ToolCallStatus::WaitingForConfirmation { - confirmation: ToolCallConfirmation::Execute { root_command, .. }, - .. - }, - .. - }) = &thread.entries()[2] - else { - panic!(); - }; - - assert_eq!(root_command, "echo"); - - *id - }); - - thread.update(cx, |thread, cx| { - thread.authorize_tool_call(tool_call_id, acp::ToolCallConfirmationOutcome::Allow, cx); - - assert!(matches!( - &thread.entries()[2], - AgentThreadEntry::ToolCall(ToolCall { - status: ToolCallStatus::Allowed { .. }, - .. - }) - )); - }); - - full_turn.await.unwrap(); - - thread.read_with(cx, |thread, cx| { - let AgentThreadEntry::ToolCall(ToolCall { - content: Some(ToolCallContent::Markdown { markdown }), - status: ToolCallStatus::Allowed { .. }, - .. - }) = &thread.entries()[2] - else { - panic!(); - }; - - markdown.read_with(cx, |md, _cx| { - assert!( - md.source().contains("Hello, world!"), - r#"Expected '{}' to contain "Hello, world!""#, - md.source() - ); - }); - }); - } - - #[gpui::test] - #[cfg_attr(not(feature = "gemini"), ignore)] - async fn test_gemini_cancel(cx: &mut TestAppContext) { - init_test(cx); - - cx.executor().allow_parking(); - - let fs = FakeFs::new(cx.executor()); - let project = Project::test(fs, [path!("/private/tmp").as_ref()], cx).await; - let thread = gemini_acp_thread(project.clone(), "/private/tmp", cx).await; - let full_turn = thread.update(cx, |thread, cx| { - thread.send_raw(r#"Run `echo "Hello, world!"`"#, cx) - }); - - let first_tool_call_ix = run_until_first_tool_call(&thread, cx).await; - - thread.read_with(cx, |thread, _cx| { - let AgentThreadEntry::ToolCall(ToolCall { - id, - status: - ToolCallStatus::WaitingForConfirmation { - confirmation: ToolCallConfirmation::Execute { root_command, .. }, - .. - }, - .. - }) = &thread.entries()[first_tool_call_ix] - else { - panic!("{:?}", thread.entries()[1]); - }; - - assert_eq!(root_command, "echo"); - - *id - }); - - thread - .update(cx, |thread, cx| thread.cancel(cx)) - .await - .unwrap(); - full_turn.await.unwrap(); - thread.read_with(cx, |thread, _| { - let AgentThreadEntry::ToolCall(ToolCall { - status: ToolCallStatus::Canceled, - .. - }) = &thread.entries()[first_tool_call_ix] - else { - panic!(); - }; - }); - - thread - .update(cx, |thread, cx| { - thread.send_raw(r#"Stop running and say goodbye to me."#, cx) - }) - .await - .unwrap(); - thread.read_with(cx, |thread, _| { - assert!(matches!( - &thread.entries().last().unwrap(), - AgentThreadEntry::AssistantMessage(..), - )) - }); - } - async fn run_until_first_tool_call( thread: &Entity, cx: &mut TestAppContext, @@ -1801,66 +1558,39 @@ mod tests { } } - pub async fn gemini_acp_thread( - project: Entity, - current_dir: impl AsRef, - cx: &mut TestAppContext, - ) -> Entity { - struct DevGemini; - - impl agent_servers::AgentServer for DevGemini { - async fn command( - &self, - _project: &Entity, - _cx: &mut AsyncApp, - ) -> Result { - let cli_path = Path::new(env!("CARGO_MANIFEST_DIR")) - .join("../../../gemini-cli/packages/cli") - .to_string_lossy() - .to_string(); - - Ok(AgentServerCommand { - path: "node".into(), - args: vec![cli_path, "--experimental-acp".into()], - env: None, - }) - } - - async fn version( - &self, - _command: &agent_servers::AgentServerCommand, - ) -> Result { - Ok(AgentServerVersion { - current_version: "0.1.0".into(), - supported: true, - }) - } - } - - let thread = AcpThread::spawn(DevGemini, current_dir.as_ref(), project, &mut cx.to_async()) - .await - .unwrap(); - - thread - .update(cx, |thread, _| thread.initialize()) - .await - .unwrap(); - thread - } - pub fn fake_acp_thread( project: Entity, cx: &mut TestAppContext, ) -> (Entity, Entity) { let (stdin_tx, stdin_rx) = async_pipe::pipe(); let (stdout_tx, stdout_rx) = async_pipe::pipe(); - let thread = cx.update(|cx| cx.new(|cx| AcpThread::fake(stdin_tx, stdout_rx, project, cx))); + + let thread = cx.new(|cx| { + let foreground_executor = cx.foreground_executor().clone(); + let (connection, io_fut) = acp::AgentConnection::connect_to_agent( + AcpClientDelegate::new(cx.entity().downgrade(), cx.to_async()), + stdin_tx, + stdout_rx, + move |fut| { + foreground_executor.spawn(fut).detach(); + }, + ); + + let io_task = cx.background_spawn({ + async move { + io_fut.await.log_err(); + Ok(()) + } + }); + AcpThread::new(connection, "Test".into(), Some(io_task), project, cx) + }); let agent = cx.update(|cx| cx.new(|cx| FakeAcpServer::new(stdin_rx, stdout_tx, cx))); (thread, agent) } pub struct FakeAcpServer { connection: acp::ClientConnection, + _io_task: Task<()>, on_user_message: Option< Rc< diff --git a/crates/acp_thread/src/connection.rs b/crates/acp_thread/src/connection.rs new file mode 100644 index 0000000000..7c0ba4f41c --- /dev/null +++ b/crates/acp_thread/src/connection.rs @@ -0,0 +1,20 @@ +use agentic_coding_protocol as acp; +use anyhow::Result; +use futures::future::{FutureExt as _, LocalBoxFuture}; + +pub trait AgentConnection { + fn request_any( + &self, + params: acp::AnyAgentRequest, + ) -> LocalBoxFuture<'static, Result>; +} + +impl AgentConnection for acp::AgentConnection { + fn request_any( + &self, + params: acp::AnyAgentRequest, + ) -> LocalBoxFuture<'static, Result> { + let task = self.request_any(params); + async move { Ok(task.await?) }.boxed_local() + } +} diff --git a/crates/agent_servers/Cargo.toml b/crates/agent_servers/Cargo.toml index 549162c5dd..d65235aee3 100644 --- a/crates/agent_servers/Cargo.toml +++ b/crates/agent_servers/Cargo.toml @@ -5,6 +5,10 @@ edition.workspace = true publish.workspace = true license = "GPL-3.0-or-later" +[features] +test-support = ["acp_thread/test-support", "gpui/test-support", "project/test-support"] +gemini = [] + [lints] workspace = true @@ -13,15 +17,32 @@ path = "src/agent_servers.rs" doctest = false [dependencies] +acp_thread.workspace = true +agentic-coding-protocol.workspace = true anyhow.workspace = true collections.workspace = true +context_server.workspace = true futures.workspace = true gpui.workspace = true +itertools.workspace = true +log.workspace = true paths.workspace = true project.workspace = true schemars.workspace = true serde.workspace = true +serde_json.workspace = true settings.workspace = true +smol.workspace = true +tempfile.workspace = true +ui.workspace = true util.workspace = true +watch.workspace = true which.workspace = true workspace-hack.workspace = true + +[dev-dependencies] +env_logger.workspace = true +language.workspace = true +indoc.workspace = true +acp_thread = { workspace = true, features = ["test-support"] } +gpui = { workspace = true, features = ["test-support"] } diff --git a/crates/agent_servers/src/agent_servers.rs b/crates/agent_servers/src/agent_servers.rs index ba43122570..ebebeca511 100644 --- a/crates/agent_servers/src/agent_servers.rs +++ b/crates/agent_servers/src/agent_servers.rs @@ -1,30 +1,24 @@ -use std::{ - path::{Path, PathBuf}, - sync::Arc, -}; +mod claude; +mod gemini; +mod settings; +mod stdio_agent_server; -use anyhow::{Context as _, Result}; +pub use claude::*; +pub use gemini::*; +pub use settings::*; +pub use stdio_agent_server::*; + +use acp_thread::AcpThread; +use anyhow::Result; use collections::HashMap; -use gpui::{App, AsyncApp, Entity, SharedString}; +use gpui::{App, Entity, SharedString, Task}; use project::Project; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; -use settings::{Settings, SettingsSources, SettingsStore}; -use util::{ResultExt, paths}; +use std::path::{Path, PathBuf}; pub fn init(cx: &mut App) { - AllAgentServersSettings::register(cx); -} - -#[derive(Default, Deserialize, Serialize, Clone, JsonSchema, Debug)] -pub struct AllAgentServersSettings { - gemini: Option, -} - -#[derive(Deserialize, Serialize, Clone, JsonSchema, Debug)] -pub struct AgentServerSettings { - #[serde(flatten)] - command: AgentServerCommand, + settings::init(cx); } #[derive(Deserialize, Serialize, Clone, PartialEq, Eq, JsonSchema)] @@ -36,153 +30,28 @@ pub struct AgentServerCommand { pub env: Option>, } -pub struct Gemini; - -pub struct AgentServerVersion { - pub current_version: SharedString, - pub supported: bool, +pub enum AgentServerVersion { + Supported, + Unsupported { + error_message: SharedString, + upgrade_message: SharedString, + upgrade_command: String, + }, } pub trait AgentServer: Send { - fn command( + fn logo(&self) -> ui::IconName; + fn name(&self) -> &'static str; + fn empty_state_headline(&self) -> &'static str; + fn empty_state_message(&self) -> &'static str; + fn supports_always_allow(&self) -> bool; + + fn new_thread( &self, + root_dir: &Path, project: &Entity, - cx: &mut AsyncApp, - ) -> impl Future>; - - fn version( - &self, - command: &AgentServerCommand, - ) -> impl Future> + Send; -} - -const GEMINI_ACP_ARG: &str = "--experimental-acp"; - -impl AgentServer for Gemini { - async fn command( - &self, - project: &Entity, - cx: &mut AsyncApp, - ) -> Result { - let custom_command = cx.read_global(|settings: &SettingsStore, _| { - let settings = settings.get::(None); - settings - .gemini - .as_ref() - .map(|gemini_settings| AgentServerCommand { - path: gemini_settings.command.path.clone(), - args: gemini_settings - .command - .args - .iter() - .cloned() - .chain(std::iter::once(GEMINI_ACP_ARG.into())) - .collect(), - env: gemini_settings.command.env.clone(), - }) - })?; - - if let Some(custom_command) = custom_command { - return Ok(custom_command); - } - - if let Some(path) = find_bin_in_path("gemini", project, cx).await { - return Ok(AgentServerCommand { - path, - args: vec![GEMINI_ACP_ARG.into()], - env: None, - }); - } - - let (fs, node_runtime) = project.update(cx, |project, _| { - (project.fs().clone(), project.node_runtime().cloned()) - })?; - let node_runtime = node_runtime.context("gemini not found on path")?; - - let directory = ::paths::agent_servers_dir().join("gemini"); - fs.create_dir(&directory).await?; - node_runtime - .npm_install_packages(&directory, &[("@google/gemini-cli", "latest")]) - .await?; - let path = directory.join("node_modules/.bin/gemini"); - - Ok(AgentServerCommand { - path, - args: vec![GEMINI_ACP_ARG.into()], - env: None, - }) - } - - async fn version(&self, command: &AgentServerCommand) -> Result { - let version_fut = util::command::new_smol_command(&command.path) - .args(command.args.iter()) - .arg("--version") - .kill_on_drop(true) - .output(); - - let help_fut = util::command::new_smol_command(&command.path) - .args(command.args.iter()) - .arg("--help") - .kill_on_drop(true) - .output(); - - let (version_output, help_output) = futures::future::join(version_fut, help_fut).await; - - let current_version = String::from_utf8(version_output?.stdout)?.into(); - let supported = String::from_utf8(help_output?.stdout)?.contains(GEMINI_ACP_ARG); - - Ok(AgentServerVersion { - current_version, - supported, - }) - } -} - -async fn find_bin_in_path( - bin_name: &'static str, - project: &Entity, - cx: &mut AsyncApp, -) -> Option { - let (env_task, root_dir) = project - .update(cx, |project, cx| { - let worktree = project.visible_worktrees(cx).next(); - match worktree { - Some(worktree) => { - let env_task = project.environment().update(cx, |env, cx| { - env.get_worktree_environment(worktree.clone(), cx) - }); - - let path = worktree.read(cx).abs_path(); - (env_task, path) - } - None => { - let path: Arc = paths::home_dir().as_path().into(); - let env_task = project.environment().update(cx, |env, cx| { - env.get_directory_environment(path.clone(), cx) - }); - (env_task, path) - } - } - }) - .log_err()?; - - cx.background_executor() - .spawn(async move { - let which_result = if cfg!(windows) { - which::which(bin_name) - } else { - let env = env_task.await.unwrap_or_default(); - let shell_path = env.get("PATH").cloned(); - which::which_in(bin_name, shell_path.as_ref(), root_dir.as_ref()) - }; - - if let Err(which::Error::CannotFindBinaryPath) = which_result { - return None; - } - - which_result.log_err() - }) - .await + cx: &mut App, + ) -> Task>>; } impl std::fmt::Debug for AgentServerCommand { @@ -209,23 +78,3 @@ impl std::fmt::Debug for AgentServerCommand { .finish() } } - -impl settings::Settings for AllAgentServersSettings { - const KEY: Option<&'static str> = Some("agent_servers"); - - type FileContent = Self; - - fn load(sources: SettingsSources, _: &mut App) -> Result { - let mut settings = AllAgentServersSettings::default(); - - for value in sources.defaults_and_customizations() { - if value.gemini.is_some() { - settings.gemini = value.gemini.clone(); - } - } - - Ok(settings) - } - - fn import_from_vscode(_vscode: &settings::VsCodeSettings, _current: &mut Self::FileContent) {} -} diff --git a/crates/agent_servers/src/claude.rs b/crates/agent_servers/src/claude.rs new file mode 100644 index 0000000000..897158dc57 --- /dev/null +++ b/crates/agent_servers/src/claude.rs @@ -0,0 +1,680 @@ +mod mcp_server; +mod tools; + +use collections::HashMap; +use project::Project; +use std::cell::RefCell; +use std::fmt::Display; +use std::path::Path; +use std::rc::Rc; + +use agentic_coding_protocol::{ + self as acp, AnyAgentRequest, AnyAgentResult, Client, ProtocolVersion, + StreamAssistantMessageChunkParams, ToolCallContent, UpdateToolCallParams, +}; +use anyhow::{Context as _, Result, anyhow}; +use futures::channel::oneshot; +use futures::future::LocalBoxFuture; +use futures::{AsyncBufReadExt, AsyncWriteExt}; +use futures::{ + AsyncRead, AsyncWrite, FutureExt, StreamExt, + channel::mpsc::{self, UnboundedReceiver, UnboundedSender}, + io::BufReader, + select_biased, +}; +use gpui::{App, AppContext, Entity, Task}; +use serde::{Deserialize, Serialize}; +use util::ResultExt; + +use crate::claude::mcp_server::ClaudeMcpServer; +use crate::claude::tools::ClaudeTool; +use crate::{AgentServer, find_bin_in_path}; +use acp_thread::{AcpClientDelegate, AcpThread, AgentConnection}; + +#[derive(Clone)] +pub struct ClaudeCode; + +impl AgentServer for ClaudeCode { + fn name(&self) -> &'static str { + "Claude Code" + } + + fn empty_state_headline(&self) -> &'static str { + self.name() + } + + fn empty_state_message(&self) -> &'static str { + "" + } + + fn logo(&self) -> ui::IconName { + ui::IconName::AiClaude + } + + fn supports_always_allow(&self) -> bool { + false + } + + fn new_thread( + &self, + root_dir: &Path, + project: &Entity, + cx: &mut App, + ) -> Task>> { + let project = project.clone(); + let root_dir = root_dir.to_path_buf(); + let title = self.name().into(); + cx.spawn(async move |cx| { + let (mut delegate_tx, delegate_rx) = watch::channel(None); + let tool_id_map = Rc::new(RefCell::new(HashMap::default())); + + let permission_mcp_server = + ClaudeMcpServer::new(delegate_rx, tool_id_map.clone(), cx).await?; + + let mut mcp_servers = HashMap::default(); + mcp_servers.insert( + mcp_server::SERVER_NAME.to_string(), + permission_mcp_server.server_config()?, + ); + let mcp_config = McpConfig { mcp_servers }; + + let mcp_config_file = tempfile::NamedTempFile::new()?; + let (mcp_config_file, mcp_config_path) = mcp_config_file.into_parts(); + + let mut mcp_config_file = smol::fs::File::from(mcp_config_file); + mcp_config_file + .write_all(serde_json::to_string(&mcp_config)?.as_bytes()) + .await?; + mcp_config_file.flush().await?; + + let command = find_bin_in_path("claude", &project, cx) + .await + .context("Failed to find claude binary")?; + + let mut child = util::command::new_smol_command(&command) + .args([ + "--input-format", + "stream-json", + "--output-format", + "stream-json", + "--print", + "--verbose", + "--mcp-config", + mcp_config_path.to_string_lossy().as_ref(), + "--permission-prompt-tool", + &format!( + "mcp__{}__{}", + mcp_server::SERVER_NAME, + mcp_server::PERMISSION_TOOL + ), + "--allowedTools", + "mcp__zed__Read,mcp__zed__Edit", + "--disallowedTools", + "Read,Edit", + ]) + .current_dir(root_dir) + .stdin(std::process::Stdio::piped()) + .stdout(std::process::Stdio::piped()) + .stderr(std::process::Stdio::inherit()) + .kill_on_drop(true) + .spawn()?; + + let stdin = child.stdin.take().unwrap(); + let stdout = child.stdout.take().unwrap(); + + let (incoming_message_tx, mut incoming_message_rx) = mpsc::unbounded(); + let (outgoing_tx, outgoing_rx) = mpsc::unbounded(); + + let io_task = + ClaudeAgentConnection::handle_io(outgoing_rx, incoming_message_tx, stdin, stdout); + cx.background_spawn(async move { + io_task.await.log_err(); + drop(mcp_config_path); + drop(child); + }) + .detach(); + + cx.new(|cx| { + let end_turn_tx = Rc::new(RefCell::new(None)); + let delegate = AcpClientDelegate::new(cx.entity().downgrade(), cx.to_async()); + delegate_tx.send(Some(delegate.clone())).log_err(); + + let handler_task = cx.foreground_executor().spawn({ + let end_turn_tx = end_turn_tx.clone(); + let tool_id_map = tool_id_map.clone(); + async move { + while let Some(message) = incoming_message_rx.next().await { + ClaudeAgentConnection::handle_message( + delegate.clone(), + message, + end_turn_tx.clone(), + tool_id_map.clone(), + ) + .await + } + } + }); + + let mut connection = ClaudeAgentConnection { + outgoing_tx, + end_turn_tx, + _handler_task: handler_task, + _mcp_server: None, + }; + + connection._mcp_server = Some(permission_mcp_server); + acp_thread::AcpThread::new(connection, title, None, project.clone(), cx) + }) + }) + } +} + +impl AgentConnection for ClaudeAgentConnection { + /// Send a request to the agent and wait for a response. + fn request_any( + &self, + params: AnyAgentRequest, + ) -> LocalBoxFuture<'static, Result> { + let end_turn_tx = self.end_turn_tx.clone(); + let outgoing_tx = self.outgoing_tx.clone(); + async move { + match params { + // todo: consider sending an empty request so we get the init response? + AnyAgentRequest::InitializeParams(_) => Ok(AnyAgentResult::InitializeResponse( + acp::InitializeResponse { + is_authenticated: true, + protocol_version: ProtocolVersion::latest(), + }, + )), + AnyAgentRequest::AuthenticateParams(_) => { + Err(anyhow!("Authentication not supported")) + } + AnyAgentRequest::SendUserMessageParams(message) => { + let (tx, rx) = oneshot::channel(); + end_turn_tx.borrow_mut().replace(tx); + let mut content = String::new(); + for chunk in message.chunks { + match chunk { + agentic_coding_protocol::UserMessageChunk::Text { text } => { + content.push_str(&text) + } + agentic_coding_protocol::UserMessageChunk::Path { path } => { + content.push_str(&format!("@{path:?}")) + } + } + } + outgoing_tx.unbounded_send(SdkMessage::User { + message: Message { + role: Role::User, + content: Content::UntaggedText(content), + id: None, + model: None, + stop_reason: None, + stop_sequence: None, + usage: None, + }, + session_id: None, + })?; + rx.await??; + Ok(AnyAgentResult::SendUserMessageResponse( + acp::SendUserMessageResponse, + )) + } + AnyAgentRequest::CancelSendMessageParams(_) => Ok( + AnyAgentResult::CancelSendMessageResponse(acp::CancelSendMessageResponse), + ), + } + } + .boxed_local() + } +} + +struct ClaudeAgentConnection { + outgoing_tx: UnboundedSender, + end_turn_tx: Rc>>>>, + _mcp_server: Option, + _handler_task: Task<()>, +} + +impl ClaudeAgentConnection { + async fn handle_message( + delegate: AcpClientDelegate, + message: SdkMessage, + end_turn_tx: Rc>>>>, + tool_id_map: Rc>>, + ) { + match message { + SdkMessage::Assistant { message, .. } | SdkMessage::User { message, .. } => { + for chunk in message.content.chunks() { + match chunk { + ContentChunk::Text { text } | ContentChunk::UntaggedText(text) => { + delegate + .stream_assistant_message_chunk(StreamAssistantMessageChunkParams { + chunk: acp::AssistantMessageChunk::Text { text }, + }) + .await + .log_err(); + } + ContentChunk::ToolUse { id, name, input } => { + if let Some(resp) = delegate + .push_tool_call(ClaudeTool::infer(&name, input).as_acp()) + .await + .log_err() + { + tool_id_map.borrow_mut().insert(id, resp.id); + } + } + ContentChunk::ToolResult { + content, + tool_use_id, + } => { + let id = tool_id_map.borrow_mut().remove(&tool_use_id); + if let Some(id) = id { + delegate + .update_tool_call(UpdateToolCallParams { + tool_call_id: id, + status: acp::ToolCallStatus::Finished, + content: Some(ToolCallContent::Markdown { + // For now we only include text content + markdown: content.to_string(), + }), + }) + .await + .log_err(); + } + } + ContentChunk::Image + | ContentChunk::Document + | ContentChunk::Thinking + | ContentChunk::RedactedThinking + | ContentChunk::WebSearchToolResult => { + delegate + .stream_assistant_message_chunk(StreamAssistantMessageChunkParams { + chunk: acp::AssistantMessageChunk::Text { + text: format!("Unsupported content: {:?}", chunk), + }, + }) + .await + .log_err(); + } + } + } + } + SdkMessage::Result { + is_error, subtype, .. + } => { + if let Some(end_turn_tx) = end_turn_tx.borrow_mut().take() { + if is_error { + end_turn_tx.send(Err(anyhow!("Error: {subtype}"))).ok(); + } else { + end_turn_tx.send(Ok(())).ok(); + } + } + } + SdkMessage::System { .. } => {} + } + } + + async fn handle_io( + mut outgoing_rx: UnboundedReceiver, + incoming_tx: UnboundedSender, + mut outgoing_bytes: impl Unpin + AsyncWrite, + incoming_bytes: impl Unpin + AsyncRead, + ) -> Result<()> { + let mut output_reader = BufReader::new(incoming_bytes); + let mut outgoing_line = Vec::new(); + let mut incoming_line = String::new(); + loop { + select_biased! { + message = outgoing_rx.next() => { + if let Some(message) = message { + outgoing_line.clear(); + serde_json::to_writer(&mut outgoing_line, &message)?; + log::trace!("send: {}", String::from_utf8_lossy(&outgoing_line)); + outgoing_line.push(b'\n'); + outgoing_bytes.write_all(&outgoing_line).await.ok(); + } else { + break; + } + } + bytes_read = output_reader.read_line(&mut incoming_line).fuse() => { + if bytes_read? == 0 { + break + } + log::trace!("recv: {}", &incoming_line); + match serde_json::from_str::(&incoming_line) { + Ok(message) => { + incoming_tx.unbounded_send(message).log_err(); + } + Err(error) => { + log::error!("failed to parse incoming message: {error}. Raw: {incoming_line}"); + } + } + incoming_line.clear(); + } + } + } + Ok(()) + } +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +struct Message { + role: Role, + content: Content, + #[serde(skip_serializing_if = "Option::is_none")] + id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + model: Option, + #[serde(skip_serializing_if = "Option::is_none")] + stop_reason: Option, + #[serde(skip_serializing_if = "Option::is_none")] + stop_sequence: Option, + #[serde(skip_serializing_if = "Option::is_none")] + usage: Option, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +enum Content { + UntaggedText(String), + Chunks(Vec), +} + +impl Content { + pub fn chunks(self) -> impl Iterator { + match self { + Self::Chunks(chunks) => chunks.into_iter(), + Self::UntaggedText(text) => vec![ContentChunk::Text { text: text.clone() }].into_iter(), + } + } +} + +impl Display for Content { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Content::UntaggedText(txt) => write!(f, "{}", txt), + Content::Chunks(chunks) => { + for chunk in chunks { + write!(f, "{}", chunk)?; + } + Ok(()) + } + } + } +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(tag = "type", rename_all = "snake_case")] +enum ContentChunk { + Text { + text: String, + }, + ToolUse { + id: String, + name: String, + input: serde_json::Value, + }, + ToolResult { + content: Content, + tool_use_id: String, + }, + // TODO + Image, + Document, + Thinking, + RedactedThinking, + WebSearchToolResult, + #[serde(untagged)] + UntaggedText(String), +} + +impl Display for ContentChunk { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + ContentChunk::Text { text } => write!(f, "{}", text), + ContentChunk::UntaggedText(text) => write!(f, "{}", text), + ContentChunk::ToolResult { content, .. } => write!(f, "{}", content), + ContentChunk::Image + | ContentChunk::Document + | ContentChunk::Thinking + | ContentChunk::RedactedThinking + | ContentChunk::ToolUse { .. } + | ContentChunk::WebSearchToolResult => { + write!(f, "\n{:?}\n", &self) + } + } + } +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +struct Usage { + input_tokens: u32, + cache_creation_input_tokens: u32, + cache_read_input_tokens: u32, + output_tokens: u32, + service_tier: String, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "snake_case")] +enum Role { + System, + Assistant, + User, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +struct MessageParam { + role: Role, + content: String, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(tag = "type", rename_all = "snake_case")] +enum SdkMessage { + // An assistant message + Assistant { + message: Message, // from Anthropic SDK + #[serde(skip_serializing_if = "Option::is_none")] + session_id: Option, + }, + + // A user message + User { + message: Message, // from Anthropic SDK + #[serde(skip_serializing_if = "Option::is_none")] + session_id: Option, + }, + + // Emitted as the last message in a conversation + Result { + subtype: ResultErrorType, + duration_ms: f64, + duration_api_ms: f64, + is_error: bool, + num_turns: i32, + #[serde(skip_serializing_if = "Option::is_none")] + result: Option, + session_id: String, + total_cost_usd: f64, + }, + // Emitted as the first message at the start of a conversation + System { + cwd: String, + session_id: String, + tools: Vec, + model: String, + mcp_servers: Vec, + #[serde(rename = "apiKeySource")] + api_key_source: String, + #[serde(rename = "permissionMode")] + permission_mode: PermissionMode, + }, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "snake_case")] +enum ResultErrorType { + Success, + ErrorMaxTurns, + ErrorDuringExecution, +} + +impl Display for ResultErrorType { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + ResultErrorType::Success => write!(f, "success"), + ResultErrorType::ErrorMaxTurns => write!(f, "error_max_turns"), + ResultErrorType::ErrorDuringExecution => write!(f, "error_during_execution"), + } + } +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +struct McpServer { + name: String, + status: String, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +enum PermissionMode { + Default, + AcceptEdits, + BypassPermissions, + Plan, +} + +#[derive(Serialize)] +#[serde(rename_all = "camelCase")] +struct McpConfig { + mcp_servers: HashMap, +} + +#[derive(Serialize)] +#[serde(rename_all = "camelCase")] +struct McpServerConfig { + command: String, + args: Vec, + #[serde(skip_serializing_if = "Option::is_none")] + env: Option>, +} + +#[cfg(test)] +mod tests { + use super::*; + use serde_json::json; + + #[test] + fn test_deserialize_content_untagged_text() { + let json = json!("Hello, world!"); + let content: Content = serde_json::from_value(json).unwrap(); + match content { + Content::UntaggedText(text) => assert_eq!(text, "Hello, world!"), + _ => panic!("Expected UntaggedText variant"), + } + } + + #[test] + fn test_deserialize_content_chunks() { + let json = json!([ + { + "type": "text", + "text": "Hello" + }, + { + "type": "tool_use", + "id": "tool_123", + "name": "calculator", + "input": {"operation": "add", "a": 1, "b": 2} + } + ]); + let content: Content = serde_json::from_value(json).unwrap(); + match content { + Content::Chunks(chunks) => { + assert_eq!(chunks.len(), 2); + match &chunks[0] { + ContentChunk::Text { text } => assert_eq!(text, "Hello"), + _ => panic!("Expected Text chunk"), + } + match &chunks[1] { + ContentChunk::ToolUse { id, name, input } => { + assert_eq!(id, "tool_123"); + assert_eq!(name, "calculator"); + assert_eq!(input["operation"], "add"); + assert_eq!(input["a"], 1); + assert_eq!(input["b"], 2); + } + _ => panic!("Expected ToolUse chunk"), + } + } + _ => panic!("Expected Chunks variant"), + } + } + + #[test] + fn test_deserialize_tool_result_untagged_text() { + let json = json!({ + "type": "tool_result", + "content": "Result content", + "tool_use_id": "tool_456" + }); + let chunk: ContentChunk = serde_json::from_value(json).unwrap(); + match chunk { + ContentChunk::ToolResult { + content, + tool_use_id, + } => { + match content { + Content::UntaggedText(text) => assert_eq!(text, "Result content"), + _ => panic!("Expected UntaggedText content"), + } + assert_eq!(tool_use_id, "tool_456"); + } + _ => panic!("Expected ToolResult variant"), + } + } + + #[test] + fn test_deserialize_tool_result_chunks() { + let json = json!({ + "type": "tool_result", + "content": [ + { + "type": "text", + "text": "Processing complete" + }, + { + "type": "text", + "text": "Result: 42" + } + ], + "tool_use_id": "tool_789" + }); + let chunk: ContentChunk = serde_json::from_value(json).unwrap(); + match chunk { + ContentChunk::ToolResult { + content, + tool_use_id, + } => { + match content { + Content::Chunks(chunks) => { + assert_eq!(chunks.len(), 2); + match &chunks[0] { + ContentChunk::Text { text } => assert_eq!(text, "Processing complete"), + _ => panic!("Expected Text chunk"), + } + match &chunks[1] { + ContentChunk::Text { text } => assert_eq!(text, "Result: 42"), + _ => panic!("Expected Text chunk"), + } + } + _ => panic!("Expected Chunks content"), + } + assert_eq!(tool_use_id, "tool_789"); + } + _ => panic!("Expected ToolResult variant"), + } + } +} diff --git a/crates/agent_servers/src/claude/mcp_server.rs b/crates/agent_servers/src/claude/mcp_server.rs new file mode 100644 index 0000000000..fa61e67112 --- /dev/null +++ b/crates/agent_servers/src/claude/mcp_server.rs @@ -0,0 +1,303 @@ +use std::{cell::RefCell, rc::Rc}; + +use acp_thread::AcpClientDelegate; +use agentic_coding_protocol::{self as acp, Client, ReadTextFileParams, WriteTextFileParams}; +use anyhow::{Context, Result}; +use collections::HashMap; +use context_server::{ + listener::McpServer, + types::{ + CallToolParams, CallToolResponse, Implementation, InitializeParams, InitializeResponse, + ListToolsResponse, ProtocolVersion, ServerCapabilities, Tool, ToolAnnotations, + ToolResponseContent, ToolsCapabilities, requests, + }, +}; +use gpui::{App, AsyncApp, Task}; +use schemars::JsonSchema; +use serde::{Deserialize, Serialize}; +use util::debug_panic; + +use crate::claude::{ + McpServerConfig, + tools::{ClaudeTool, EditToolParams, EditToolResponse, ReadToolParams, ReadToolResponse}, +}; + +pub struct ClaudeMcpServer { + server: McpServer, +} + +pub const SERVER_NAME: &str = "zed"; +pub const READ_TOOL: &str = "Read"; +pub const EDIT_TOOL: &str = "Edit"; +pub const PERMISSION_TOOL: &str = "Confirmation"; + +#[derive(Deserialize, JsonSchema, Debug)] +struct PermissionToolParams { + tool_name: String, + input: serde_json::Value, + tool_use_id: Option, +} + +#[derive(Serialize)] +#[serde(rename_all = "camelCase")] +struct PermissionToolResponse { + behavior: PermissionToolBehavior, + updated_input: serde_json::Value, +} + +#[derive(Serialize)] +#[serde(rename_all = "snake_case")] +enum PermissionToolBehavior { + Allow, + Deny, +} + +impl ClaudeMcpServer { + pub async fn new( + delegate: watch::Receiver>, + tool_id_map: Rc>>, + cx: &AsyncApp, + ) -> Result { + let mut mcp_server = McpServer::new(cx).await?; + mcp_server.handle_request::(Self::handle_initialize); + mcp_server.handle_request::(Self::handle_list_tools); + mcp_server.handle_request::(move |request, cx| { + Self::handle_call_tool(request, delegate.clone(), tool_id_map.clone(), cx) + }); + + Ok(Self { server: mcp_server }) + } + + pub fn server_config(&self) -> Result { + #[cfg(not(target_os = "windows"))] + let zed_path = util::get_shell_safe_zed_path()?; + #[cfg(target_os = "windows")] + let zed_path = std::env::current_exe() + .context("finding current executable path for use in mcp_server")? + .to_string_lossy() + .to_string(); + + Ok(McpServerConfig { + command: zed_path, + args: vec![ + "--nc".into(), + self.server.socket_path().display().to_string(), + ], + env: None, + }) + } + + fn handle_initialize(_: InitializeParams, cx: &App) -> Task> { + cx.foreground_executor().spawn(async move { + Ok(InitializeResponse { + protocol_version: ProtocolVersion("2025-06-18".into()), + capabilities: ServerCapabilities { + experimental: None, + logging: None, + completions: None, + prompts: None, + resources: None, + tools: Some(ToolsCapabilities { + list_changed: Some(false), + }), + }, + server_info: Implementation { + name: SERVER_NAME.into(), + version: "0.1.0".into(), + }, + meta: None, + }) + }) + } + + fn handle_list_tools(_: (), cx: &App) -> Task> { + cx.foreground_executor().spawn(async move { + Ok(ListToolsResponse { + tools: vec![ + Tool { + name: PERMISSION_TOOL.into(), + input_schema: schemars::schema_for!(PermissionToolParams).into(), + description: None, + annotations: None, + }, + Tool { + name: READ_TOOL.into(), + input_schema: schemars::schema_for!(ReadToolParams).into(), + description: Some("Read the contents of a file. In sessions with mcp__zed__Read always use it instead of Read as it contains the most up-to-date contents.".to_string()), + annotations: Some(ToolAnnotations { + title: Some("Read file".to_string()), + read_only_hint: Some(true), + destructive_hint: Some(false), + open_world_hint: Some(false), + // if time passes the contents might change, but it's not going to do anything different + // true or false seem too strong, let's try a none. + idempotent_hint: None, + }), + }, + Tool { + name: EDIT_TOOL.into(), + input_schema: schemars::schema_for!(EditToolParams).into(), + description: Some("Edits a file. In sessions with mcp__zed__Edit always use it instead of Edit as it will show the diff to the user better.".to_string()), + annotations: Some(ToolAnnotations { + title: Some("Edit file".to_string()), + read_only_hint: Some(false), + destructive_hint: Some(false), + open_world_hint: Some(false), + idempotent_hint: Some(false), + }), + }, + ], + next_cursor: None, + meta: None, + }) + }) + } + + fn handle_call_tool( + request: CallToolParams, + mut delegate_watch: watch::Receiver>, + tool_id_map: Rc>>, + cx: &App, + ) -> Task> { + cx.spawn(async move |cx| { + let Some(delegate) = delegate_watch.recv().await? else { + debug_panic!("Sent None delegate"); + anyhow::bail!("Server not available"); + }; + + if request.name.as_str() == PERMISSION_TOOL { + let input = + serde_json::from_value(request.arguments.context("Arguments required")?)?; + + let result = + Self::handle_permissions_tool_call(input, delegate, tool_id_map, cx).await?; + Ok(CallToolResponse { + content: vec![ToolResponseContent::Text { + text: serde_json::to_string(&result)?, + }], + is_error: None, + meta: None, + }) + } else if request.name.as_str() == READ_TOOL { + let input = + serde_json::from_value(request.arguments.context("Arguments required")?)?; + + let result = Self::handle_read_tool_call(input, delegate, cx).await?; + Ok(CallToolResponse { + content: vec![ToolResponseContent::Text { + text: serde_json::to_string(&result)?, + }], + is_error: None, + meta: None, + }) + } else if request.name.as_str() == EDIT_TOOL { + let input = + serde_json::from_value(request.arguments.context("Arguments required")?)?; + + let result = Self::handle_edit_tool_call(input, delegate, cx).await?; + Ok(CallToolResponse { + content: vec![ToolResponseContent::Text { + text: serde_json::to_string(&result)?, + }], + is_error: None, + meta: None, + }) + } else { + anyhow::bail!("Unsupported tool"); + } + }) + } + + fn handle_read_tool_call( + params: ReadToolParams, + delegate: AcpClientDelegate, + cx: &AsyncApp, + ) -> Task> { + cx.foreground_executor().spawn(async move { + let response = delegate + .read_text_file(ReadTextFileParams { + path: params.abs_path, + line: params.offset, + limit: params.limit, + }) + .await?; + + Ok(ReadToolResponse { + content: response.content, + }) + }) + } + + fn handle_edit_tool_call( + params: EditToolParams, + delegate: AcpClientDelegate, + cx: &AsyncApp, + ) -> Task> { + cx.foreground_executor().spawn(async move { + let response = delegate + .read_text_file_reusing_snapshot(ReadTextFileParams { + path: params.abs_path.clone(), + line: None, + limit: None, + }) + .await?; + + let new_content = response.content.replace(¶ms.old_text, ¶ms.new_text); + if new_content == response.content { + return Err(anyhow::anyhow!("The old_text was not found in the content")); + } + + delegate + .write_text_file(WriteTextFileParams { + path: params.abs_path, + content: new_content, + }) + .await?; + + Ok(EditToolResponse) + }) + } + + fn handle_permissions_tool_call( + params: PermissionToolParams, + delegate: AcpClientDelegate, + tool_id_map: Rc>>, + cx: &AsyncApp, + ) -> Task> { + cx.foreground_executor().spawn(async move { + let claude_tool = ClaudeTool::infer(¶ms.tool_name, params.input.clone()); + + let tool_call_id = match params.tool_use_id { + Some(tool_use_id) => tool_id_map + .borrow() + .get(&tool_use_id) + .cloned() + .context("Tool call ID not found")?, + + None => delegate.push_tool_call(claude_tool.as_acp()).await?.id, + }; + + let outcome = delegate + .request_existing_tool_call_confirmation( + tool_call_id, + claude_tool.confirmation(None), + ) + .await?; + + match outcome { + acp::ToolCallConfirmationOutcome::Allow + | acp::ToolCallConfirmationOutcome::AlwaysAllow + | acp::ToolCallConfirmationOutcome::AlwaysAllowMcpServer + | acp::ToolCallConfirmationOutcome::AlwaysAllowTool => Ok(PermissionToolResponse { + behavior: PermissionToolBehavior::Allow, + updated_input: params.input, + }), + acp::ToolCallConfirmationOutcome::Reject + | acp::ToolCallConfirmationOutcome::Cancel => Ok(PermissionToolResponse { + behavior: PermissionToolBehavior::Deny, + updated_input: params.input, + }), + } + }) + } +} diff --git a/crates/agent_servers/src/claude/tools.rs b/crates/agent_servers/src/claude/tools.rs new file mode 100644 index 0000000000..89d42c0daa --- /dev/null +++ b/crates/agent_servers/src/claude/tools.rs @@ -0,0 +1,670 @@ +use std::path::PathBuf; + +use agentic_coding_protocol::{self as acp, PushToolCallParams, ToolCallLocation}; +use itertools::Itertools; +use schemars::JsonSchema; +use serde::{Deserialize, Serialize}; +use util::ResultExt; + +pub enum ClaudeTool { + Task(Option), + NotebookRead(Option), + NotebookEdit(Option), + Edit(Option), + MultiEdit(Option), + ReadFile(Option), + Write(Option), + Ls(Option), + Glob(Option), + Grep(Option), + Terminal(Option), + WebFetch(Option), + WebSearch(Option), + TodoWrite(Option), + ExitPlanMode(Option), + Other { + name: String, + input: serde_json::Value, + }, +} + +impl ClaudeTool { + pub fn infer(tool_name: &str, input: serde_json::Value) -> Self { + match tool_name { + // Known tools + "mcp__zed__Read" => Self::ReadFile(serde_json::from_value(input).log_err()), + "mcp__zed__Edit" => Self::Edit(serde_json::from_value(input).log_err()), + "MultiEdit" => Self::MultiEdit(serde_json::from_value(input).log_err()), + "Write" => Self::Write(serde_json::from_value(input).log_err()), + "LS" => Self::Ls(serde_json::from_value(input).log_err()), + "Glob" => Self::Glob(serde_json::from_value(input).log_err()), + "Grep" => Self::Grep(serde_json::from_value(input).log_err()), + "Bash" => Self::Terminal(serde_json::from_value(input).log_err()), + "WebFetch" => Self::WebFetch(serde_json::from_value(input).log_err()), + "WebSearch" => Self::WebSearch(serde_json::from_value(input).log_err()), + "TodoWrite" => Self::TodoWrite(serde_json::from_value(input).log_err()), + "exit_plan_mode" => Self::ExitPlanMode(serde_json::from_value(input).log_err()), + "Task" => Self::Task(serde_json::from_value(input).log_err()), + "NotebookRead" => Self::NotebookRead(serde_json::from_value(input).log_err()), + "NotebookEdit" => Self::NotebookEdit(serde_json::from_value(input).log_err()), + // Inferred from name + _ => { + let tool_name = tool_name.to_lowercase(); + + if tool_name.contains("edit") || tool_name.contains("write") { + Self::Edit(None) + } else if tool_name.contains("terminal") { + Self::Terminal(None) + } else { + Self::Other { + name: tool_name.to_string(), + input, + } + } + } + } + } + + pub fn label(&self) -> String { + match &self { + Self::Task(Some(params)) => params.description.clone(), + Self::Task(None) => "Task".into(), + Self::NotebookRead(Some(params)) => { + format!("Read Notebook {}", params.notebook_path.display()) + } + Self::NotebookRead(None) => "Read Notebook".into(), + Self::NotebookEdit(Some(params)) => { + format!("Edit Notebook {}", params.notebook_path.display()) + } + Self::NotebookEdit(None) => "Edit Notebook".into(), + Self::Terminal(Some(params)) => format!("`{}`", params.command), + Self::Terminal(None) => "Terminal".into(), + Self::ReadFile(_) => "Read File".into(), + Self::Ls(Some(params)) => { + format!("List Directory {}", params.path.display()) + } + Self::Ls(None) => "List Directory".into(), + Self::Edit(Some(params)) => { + format!("Edit {}", params.abs_path.display()) + } + Self::Edit(None) => "Edit".into(), + Self::MultiEdit(Some(params)) => { + format!("Multi Edit {}", params.file_path.display()) + } + Self::MultiEdit(None) => "Multi Edit".into(), + Self::Write(Some(params)) => { + format!("Write {}", params.file_path.display()) + } + Self::Write(None) => "Write".into(), + Self::Glob(Some(params)) => { + format!("Glob {params}") + } + Self::Glob(None) => "Glob".into(), + Self::Grep(Some(params)) => params.to_string(), + Self::Grep(None) => "Grep".into(), + Self::WebFetch(Some(params)) => format!("Fetch {}", params.url), + Self::WebFetch(None) => "Fetch".into(), + Self::WebSearch(Some(params)) => format!("Web Search: {}", params), + Self::WebSearch(None) => "Web Search".into(), + Self::TodoWrite(Some(params)) => format!( + "Update TODOs: {}", + params.todos.iter().map(|todo| &todo.content).join(", ") + ), + Self::TodoWrite(None) => "Update TODOs".into(), + Self::ExitPlanMode(_) => "Exit Plan Mode".into(), + Self::Other { name, .. } => name.clone(), + } + } + + pub fn content(&self) -> Option { + match &self { + ClaudeTool::Other { input, .. } => Some(acp::ToolCallContent::Markdown { + markdown: format!( + "```json\n{}```", + serde_json::to_string_pretty(&input).unwrap_or("{}".to_string()) + ), + }), + _ => None, + } + } + + pub fn icon(&self) -> acp::Icon { + match self { + Self::Task(_) => acp::Icon::Hammer, + Self::NotebookRead(_) => acp::Icon::FileSearch, + Self::NotebookEdit(_) => acp::Icon::Pencil, + Self::Edit(_) => acp::Icon::Pencil, + Self::MultiEdit(_) => acp::Icon::Pencil, + Self::Write(_) => acp::Icon::Pencil, + Self::ReadFile(_) => acp::Icon::FileSearch, + Self::Ls(_) => acp::Icon::Folder, + Self::Glob(_) => acp::Icon::FileSearch, + Self::Grep(_) => acp::Icon::Regex, + Self::Terminal(_) => acp::Icon::Terminal, + Self::WebSearch(_) => acp::Icon::Globe, + Self::WebFetch(_) => acp::Icon::Globe, + Self::TodoWrite(_) => acp::Icon::LightBulb, + Self::ExitPlanMode(_) => acp::Icon::Hammer, + Self::Other { .. } => acp::Icon::Hammer, + } + } + + pub fn confirmation(&self, description: Option) -> acp::ToolCallConfirmation { + match &self { + Self::Edit(_) | Self::Write(_) | Self::NotebookEdit(_) | Self::MultiEdit(_) => { + acp::ToolCallConfirmation::Edit { description } + } + Self::WebFetch(params) => acp::ToolCallConfirmation::Fetch { + urls: params + .as_ref() + .map(|p| vec![p.url.clone()]) + .unwrap_or_default(), + description, + }, + Self::Terminal(Some(BashToolParams { + description, + command, + .. + })) => acp::ToolCallConfirmation::Execute { + command: command.clone(), + root_command: command.clone(), + description: description.clone(), + }, + Self::ExitPlanMode(Some(params)) => acp::ToolCallConfirmation::Other { + description: if let Some(description) = description { + format!("{description} {}", params.plan) + } else { + params.plan.clone() + }, + }, + Self::Task(Some(params)) => acp::ToolCallConfirmation::Other { + description: if let Some(description) = description { + format!("{description} {}", params.description) + } else { + params.description.clone() + }, + }, + Self::Ls(Some(LsToolParams { path, .. })) + | Self::ReadFile(Some(ReadToolParams { abs_path: path, .. })) => { + let path = path.display(); + acp::ToolCallConfirmation::Other { + description: if let Some(description) = description { + format!("{description} {path}") + } else { + path.to_string() + }, + } + } + Self::NotebookRead(Some(NotebookReadToolParams { notebook_path, .. })) => { + let path = notebook_path.display(); + acp::ToolCallConfirmation::Other { + description: if let Some(description) = description { + format!("{description} {path}") + } else { + path.to_string() + }, + } + } + Self::Glob(Some(params)) => acp::ToolCallConfirmation::Other { + description: if let Some(description) = description { + format!("{description} {params}") + } else { + params.to_string() + }, + }, + Self::Grep(Some(params)) => acp::ToolCallConfirmation::Other { + description: if let Some(description) = description { + format!("{description} {params}") + } else { + params.to_string() + }, + }, + Self::WebSearch(Some(params)) => acp::ToolCallConfirmation::Other { + description: if let Some(description) = description { + format!("{description} {params}") + } else { + params.to_string() + }, + }, + Self::TodoWrite(Some(params)) => { + let params = params.todos.iter().map(|todo| &todo.content).join(", "); + acp::ToolCallConfirmation::Other { + description: if let Some(description) = description { + format!("{description} {params}") + } else { + params + }, + } + } + Self::Terminal(None) + | Self::Task(None) + | Self::NotebookRead(None) + | Self::ExitPlanMode(None) + | Self::Ls(None) + | Self::Glob(None) + | Self::Grep(None) + | Self::ReadFile(None) + | Self::WebSearch(None) + | Self::TodoWrite(None) + | Self::Other { .. } => acp::ToolCallConfirmation::Other { + description: description.unwrap_or("".to_string()), + }, + } + } + + pub fn locations(&self) -> Vec { + match &self { + Self::Edit(Some(EditToolParams { abs_path, .. })) => vec![ToolCallLocation { + path: abs_path.clone(), + line: None, + }], + Self::MultiEdit(Some(MultiEditToolParams { file_path, .. })) => { + vec![ToolCallLocation { + path: file_path.clone(), + line: None, + }] + } + Self::Write(Some(WriteToolParams { file_path, .. })) => vec![ToolCallLocation { + path: file_path.clone(), + line: None, + }], + Self::ReadFile(Some(ReadToolParams { + abs_path, offset, .. + })) => vec![ToolCallLocation { + path: abs_path.clone(), + line: *offset, + }], + Self::NotebookRead(Some(NotebookReadToolParams { notebook_path, .. })) => { + vec![ToolCallLocation { + path: notebook_path.clone(), + line: None, + }] + } + Self::NotebookEdit(Some(NotebookEditToolParams { notebook_path, .. })) => { + vec![ToolCallLocation { + path: notebook_path.clone(), + line: None, + }] + } + Self::Glob(Some(GlobToolParams { + path: Some(path), .. + })) => vec![ToolCallLocation { + path: path.clone(), + line: None, + }], + Self::Ls(Some(LsToolParams { path, .. })) => vec![ToolCallLocation { + path: path.clone(), + line: None, + }], + Self::Grep(Some(GrepToolParams { + path: Some(path), .. + })) => vec![ToolCallLocation { + path: PathBuf::from(path), + line: None, + }], + Self::Task(_) + | Self::NotebookRead(None) + | Self::NotebookEdit(None) + | Self::Edit(None) + | Self::MultiEdit(None) + | Self::Write(None) + | Self::ReadFile(None) + | Self::Ls(None) + | Self::Glob(_) + | Self::Grep(_) + | Self::Terminal(_) + | Self::WebFetch(_) + | Self::WebSearch(_) + | Self::TodoWrite(_) + | Self::ExitPlanMode(_) + | Self::Other { .. } => vec![], + } + } + + pub fn as_acp(&self) -> PushToolCallParams { + PushToolCallParams { + label: self.label(), + content: self.content(), + icon: self.icon(), + locations: self.locations(), + } + } +} + +#[derive(Deserialize, JsonSchema, Debug)] +pub struct EditToolParams { + /// The absolute path to the file to read. + pub abs_path: PathBuf, + /// The old text to replace (must be unique in the file) + pub old_text: String, + /// The new text. + pub new_text: String, +} + +#[derive(Serialize)] +#[serde(rename_all = "camelCase")] +pub struct EditToolResponse; + +#[derive(Deserialize, JsonSchema, Debug)] +pub struct ReadToolParams { + /// The absolute path to the file to read. + pub abs_path: PathBuf, + /// Which line to start reading from. Omit to start from the beginning. + #[serde(skip_serializing_if = "Option::is_none")] + pub offset: Option, + /// How many lines to read. Omit for the whole file. + #[serde(skip_serializing_if = "Option::is_none")] + pub limit: Option, +} + +#[derive(Serialize)] +#[serde(rename_all = "camelCase")] +pub struct ReadToolResponse { + pub content: String, +} + +#[derive(Deserialize, JsonSchema, Debug)] +pub struct WriteToolParams { + /// Absolute path for new file + pub file_path: PathBuf, + /// File content + pub content: String, +} + +#[derive(Deserialize, JsonSchema, Debug)] +pub struct BashToolParams { + /// Shell command to execute + pub command: String, + /// 5-10 word description of what command does + #[serde(skip_serializing_if = "Option::is_none")] + pub description: Option, + /// Timeout in ms (max 600000ms/10min, default 120000ms) + #[serde(skip_serializing_if = "Option::is_none")] + pub timeout: Option, +} + +#[derive(Deserialize, JsonSchema, Debug)] +pub struct GlobToolParams { + /// Glob pattern like **/*.js or src/**/*.ts + pub pattern: String, + /// Directory to search in (omit for current directory) + #[serde(skip_serializing_if = "Option::is_none")] + pub path: Option, +} + +impl std::fmt::Display for GlobToolParams { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + if let Some(path) = &self.path { + write!(f, "{}", path.display())?; + } + write!(f, "{}", self.pattern) + } +} + +#[derive(Deserialize, JsonSchema, Debug)] +pub struct LsToolParams { + /// Absolute path to directory + pub path: PathBuf, + /// Array of glob patterns to ignore + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub ignore: Vec, +} + +#[derive(Deserialize, JsonSchema, Debug)] +pub struct GrepToolParams { + /// Regex pattern to search for + pub pattern: String, + /// File/directory to search (defaults to current directory) + #[serde(skip_serializing_if = "Option::is_none")] + pub path: Option, + /// "content" (shows lines), "files_with_matches" (default), "count" + #[serde(skip_serializing_if = "Option::is_none")] + pub output_mode: Option, + /// Filter files with glob pattern like "*.js" + #[serde(skip_serializing_if = "Option::is_none")] + pub glob: Option, + /// File type filter like "js", "py", "rust" + #[serde(rename = "type", skip_serializing_if = "Option::is_none")] + pub file_type: Option, + /// Case insensitive search + #[serde(rename = "-i", default, skip_serializing_if = "is_false")] + pub case_insensitive: bool, + /// Show line numbers (content mode only) + #[serde(rename = "-n", default, skip_serializing_if = "is_false")] + pub line_numbers: bool, + /// Lines after match (content mode only) + #[serde(rename = "-A", skip_serializing_if = "Option::is_none")] + pub after_context: Option, + /// Lines before match (content mode only) + #[serde(rename = "-B", skip_serializing_if = "Option::is_none")] + pub before_context: Option, + /// Lines before and after match (content mode only) + #[serde(rename = "-C", skip_serializing_if = "Option::is_none")] + pub context: Option, + /// Enable multiline/cross-line matching + #[serde(default, skip_serializing_if = "is_false")] + pub multiline: bool, + /// Limit output to first N results + #[serde(skip_serializing_if = "Option::is_none")] + pub head_limit: Option, +} + +impl std::fmt::Display for GrepToolParams { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "grep")?; + + // Boolean flags + if self.case_insensitive { + write!(f, " -i")?; + } + if self.line_numbers { + write!(f, " -n")?; + } + + // Context options + if let Some(after) = self.after_context { + write!(f, " -A {}", after)?; + } + if let Some(before) = self.before_context { + write!(f, " -B {}", before)?; + } + if let Some(context) = self.context { + write!(f, " -C {}", context)?; + } + + // Output mode + if let Some(mode) = &self.output_mode { + match mode { + GrepOutputMode::FilesWithMatches => write!(f, " -l")?, + GrepOutputMode::Count => write!(f, " -c")?, + GrepOutputMode::Content => {} // Default mode + } + } + + // Head limit + if let Some(limit) = self.head_limit { + write!(f, " | head -{}", limit)?; + } + + // Glob pattern + if let Some(glob) = &self.glob { + write!(f, " --include=\"{}\"", glob)?; + } + + // File type + if let Some(file_type) = &self.file_type { + write!(f, " --type={}", file_type)?; + } + + // Multiline + if self.multiline { + write!(f, " -P")?; // Perl-compatible regex for multiline + } + + // Pattern (escaped if contains special characters) + write!(f, " \"{}\"", self.pattern)?; + + // Path + if let Some(path) = &self.path { + write!(f, " {}", path)?; + } + + Ok(()) + } +} + +#[derive(Deserialize, Serialize, JsonSchema, Debug)] +#[serde(rename_all = "snake_case")] +pub enum TodoPriority { + High, + Medium, + Low, +} + +#[derive(Deserialize, Serialize, JsonSchema, Debug)] +#[serde(rename_all = "snake_case")] +pub enum TodoStatus { + Pending, + InProgress, + Completed, +} + +#[derive(Deserialize, Serialize, JsonSchema, Debug)] +pub struct Todo { + /// Unique identifier + pub id: String, + /// Task description + pub content: String, + /// Priority level of the todo + pub priority: TodoPriority, + /// Current status of the todo + pub status: TodoStatus, +} + +#[derive(Deserialize, JsonSchema, Debug)] +pub struct TodoWriteToolParams { + pub todos: Vec, +} + +#[derive(Deserialize, JsonSchema, Debug)] +pub struct ExitPlanModeToolParams { + /// Implementation plan in markdown format + pub plan: String, +} + +#[derive(Deserialize, JsonSchema, Debug)] +pub struct TaskToolParams { + /// Short 3-5 word description of task + pub description: String, + /// Detailed task for agent to perform + pub prompt: String, +} + +#[derive(Deserialize, JsonSchema, Debug)] +pub struct NotebookReadToolParams { + /// Absolute path to .ipynb file + pub notebook_path: PathBuf, + /// Specific cell ID to read + #[serde(skip_serializing_if = "Option::is_none")] + pub cell_id: Option, +} + +#[derive(Deserialize, Serialize, JsonSchema, Debug)] +#[serde(rename_all = "snake_case")] +pub enum CellType { + Code, + Markdown, +} + +#[derive(Deserialize, Serialize, JsonSchema, Debug)] +#[serde(rename_all = "snake_case")] +pub enum EditMode { + Replace, + Insert, + Delete, +} + +#[derive(Deserialize, JsonSchema, Debug)] +pub struct NotebookEditToolParams { + /// Absolute path to .ipynb file + pub notebook_path: PathBuf, + /// New cell content + pub new_source: String, + /// Cell ID to edit + #[serde(skip_serializing_if = "Option::is_none")] + pub cell_id: Option, + /// Type of cell (code or markdown) + #[serde(skip_serializing_if = "Option::is_none")] + pub cell_type: Option, + /// Edit operation mode + #[serde(skip_serializing_if = "Option::is_none")] + pub edit_mode: Option, +} + +#[derive(Deserialize, Serialize, JsonSchema, Debug)] +pub struct MultiEditItem { + /// The text to search for and replace + pub old_string: String, + /// The replacement text + pub new_string: String, + /// Whether to replace all occurrences or just the first + #[serde(default, skip_serializing_if = "is_false")] + pub replace_all: bool, +} + +#[derive(Deserialize, JsonSchema, Debug)] +pub struct MultiEditToolParams { + /// Absolute path to file + pub file_path: PathBuf, + /// List of edits to apply + pub edits: Vec, +} + +fn is_false(v: &bool) -> bool { + !*v +} + +#[derive(Deserialize, JsonSchema, Debug)] +#[serde(rename_all = "snake_case")] +pub enum GrepOutputMode { + Content, + FilesWithMatches, + Count, +} + +#[derive(Deserialize, JsonSchema, Debug)] +pub struct WebFetchToolParams { + /// Valid URL to fetch + #[serde(rename = "url")] + pub url: String, + /// What to extract from content + pub prompt: String, +} + +#[derive(Deserialize, JsonSchema, Debug)] +pub struct WebSearchToolParams { + /// Search query (min 2 chars) + pub query: String, + /// Only include these domains + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub allowed_domains: Vec, + /// Exclude these domains + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub blocked_domains: Vec, +} + +impl std::fmt::Display for WebSearchToolParams { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "\"{}\"", self.query)?; + + if !self.allowed_domains.is_empty() { + write!(f, " (allowed: {})", self.allowed_domains.join(", "))?; + } + + if !self.blocked_domains.is_empty() { + write!(f, " (blocked: {})", self.blocked_domains.join(", "))?; + } + + Ok(()) + } +} diff --git a/crates/agent_servers/src/gemini.rs b/crates/agent_servers/src/gemini.rs new file mode 100644 index 0000000000..bf1d13429e --- /dev/null +++ b/crates/agent_servers/src/gemini.rs @@ -0,0 +1,501 @@ +use crate::stdio_agent_server::{StdioAgentServer, find_bin_in_path}; +use crate::{AgentServerCommand, AgentServerVersion}; +use anyhow::{Context as _, Result}; +use gpui::{AsyncApp, Entity}; +use project::Project; +use settings::SettingsStore; + +use crate::AllAgentServersSettings; + +#[derive(Clone)] +pub struct Gemini; + +const ACP_ARG: &str = "--experimental-acp"; + +impl StdioAgentServer for Gemini { + fn name(&self) -> &'static str { + "Gemini" + } + + fn empty_state_headline(&self) -> &'static str { + "Welcome to Gemini" + } + + fn empty_state_message(&self) -> &'static str { + "Ask questions, edit files, run commands.\nBe specific for the best results." + } + + fn supports_always_allow(&self) -> bool { + true + } + + fn logo(&self) -> ui::IconName { + ui::IconName::AiGemini + } + + async fn command( + &self, + project: &Entity, + cx: &mut AsyncApp, + ) -> Result { + let custom_command = cx.read_global(|settings: &SettingsStore, _| { + let settings = settings.get::(None); + settings + .gemini + .as_ref() + .map(|gemini_settings| AgentServerCommand { + path: gemini_settings.command.path.clone(), + args: gemini_settings + .command + .args + .iter() + .cloned() + .chain(std::iter::once(ACP_ARG.into())) + .collect(), + env: gemini_settings.command.env.clone(), + }) + })?; + + if let Some(custom_command) = custom_command { + return Ok(custom_command); + } + + if let Some(path) = find_bin_in_path("gemini", project, cx).await { + return Ok(AgentServerCommand { + path, + args: vec![ACP_ARG.into()], + env: None, + }); + } + + let (fs, node_runtime) = project.update(cx, |project, _| { + (project.fs().clone(), project.node_runtime().cloned()) + })?; + let node_runtime = node_runtime.context("gemini not found on path")?; + + let directory = ::paths::agent_servers_dir().join("gemini"); + fs.create_dir(&directory).await?; + node_runtime + .npm_install_packages(&directory, &[("@google/gemini-cli", "latest")]) + .await?; + let path = directory.join("node_modules/.bin/gemini"); + + Ok(AgentServerCommand { + path, + args: vec![ACP_ARG.into()], + env: None, + }) + } + + async fn version(&self, command: &AgentServerCommand) -> Result { + let version_fut = util::command::new_smol_command(&command.path) + .args(command.args.iter()) + .arg("--version") + .kill_on_drop(true) + .output(); + + let help_fut = util::command::new_smol_command(&command.path) + .args(command.args.iter()) + .arg("--help") + .kill_on_drop(true) + .output(); + + let (version_output, help_output) = futures::future::join(version_fut, help_fut).await; + + let current_version = String::from_utf8(version_output?.stdout)?; + let supported = String::from_utf8(help_output?.stdout)?.contains(ACP_ARG); + + if supported { + Ok(AgentServerVersion::Supported) + } else { + Ok(AgentServerVersion::Unsupported { + error_message: format!( + "Your installed version of Gemini {} doesn't support the Agentic Coding Protocol (ACP).", + current_version + ).into(), + upgrade_message: "Upgrade Gemini to Latest".into(), + upgrade_command: "npm install -g @google/gemini-cli@latest".into(), + }) + } + } +} + +#[cfg(test)] +mod test { + use std::{path::Path, time::Duration}; + + use acp_thread::{ + AcpThread, AgentThreadEntry, ToolCall, ToolCallConfirmation, ToolCallContent, + ToolCallStatus, + }; + use agentic_coding_protocol as acp; + use anyhow::Result; + use futures::{FutureExt, StreamExt, channel::mpsc, select}; + use gpui::{AsyncApp, Entity, TestAppContext}; + use indoc::indoc; + use project::{FakeFs, Project}; + use serde_json::json; + use settings::SettingsStore; + use util::path; + + use crate::{AgentServer, AgentServerCommand, AgentServerVersion, StdioAgentServer}; + + pub async fn gemini_acp_thread( + project: Entity, + current_dir: impl AsRef, + cx: &mut TestAppContext, + ) -> Entity { + #[derive(Clone)] + struct DevGemini; + + impl StdioAgentServer for DevGemini { + async fn command( + &self, + _project: &Entity, + _cx: &mut AsyncApp, + ) -> Result { + let cli_path = Path::new(env!("CARGO_MANIFEST_DIR")) + .join("../../../gemini-cli/packages/cli") + .to_string_lossy() + .to_string(); + + Ok(AgentServerCommand { + path: "node".into(), + args: vec![cli_path, "--experimental-acp".into()], + env: None, + }) + } + + async fn version(&self, _command: &AgentServerCommand) -> Result { + Ok(AgentServerVersion::Supported) + } + + fn logo(&self) -> ui::IconName { + ui::IconName::AiGemini + } + + fn name(&self) -> &'static str { + "test" + } + + fn empty_state_headline(&self) -> &'static str { + "test" + } + + fn empty_state_message(&self) -> &'static str { + "test" + } + + fn supports_always_allow(&self) -> bool { + true + } + } + + let thread = cx + .update(|cx| AgentServer::new_thread(&DevGemini, current_dir.as_ref(), &project, cx)) + .await + .unwrap(); + + thread + .update(cx, |thread, _| thread.initialize()) + .await + .unwrap(); + thread + } + + fn init_test(cx: &mut TestAppContext) { + env_logger::try_init().ok(); + cx.update(|cx| { + let settings_store = SettingsStore::test(cx); + cx.set_global(settings_store); + Project::init_settings(cx); + language::init(cx); + }); + } + + #[gpui::test] + #[cfg_attr(not(feature = "gemini"), ignore)] + async fn test_gemini_basic(cx: &mut TestAppContext) { + init_test(cx); + + cx.executor().allow_parking(); + + let fs = FakeFs::new(cx.executor()); + let project = Project::test(fs, [], cx).await; + let thread = gemini_acp_thread(project.clone(), "/private/tmp", cx).await; + thread + .update(cx, |thread, cx| thread.send_raw("Hello from Zed!", cx)) + .await + .unwrap(); + + thread.read_with(cx, |thread, _| { + assert_eq!(thread.entries().len(), 2); + assert!(matches!( + thread.entries()[0], + AgentThreadEntry::UserMessage(_) + )); + assert!(matches!( + thread.entries()[1], + AgentThreadEntry::AssistantMessage(_) + )); + }); + } + + #[gpui::test] + #[cfg_attr(not(feature = "gemini"), ignore)] + async fn test_gemini_path_mentions(cx: &mut TestAppContext) { + init_test(cx); + + cx.executor().allow_parking(); + let tempdir = tempfile::tempdir().unwrap(); + std::fs::write( + tempdir.path().join("foo.rs"), + indoc! {" + fn main() { + println!(\"Hello, world!\"); + } + "}, + ) + .expect("failed to write file"); + let project = Project::example([tempdir.path()], &mut cx.to_async()).await; + let thread = gemini_acp_thread(project.clone(), tempdir.path(), cx).await; + thread + .update(cx, |thread, cx| { + thread.send( + acp::SendUserMessageParams { + chunks: vec![ + acp::UserMessageChunk::Text { + text: "Read the file ".into(), + }, + acp::UserMessageChunk::Path { + path: Path::new("foo.rs").into(), + }, + acp::UserMessageChunk::Text { + text: " and tell me what the content of the println! is".into(), + }, + ], + }, + cx, + ) + }) + .await + .unwrap(); + + thread.read_with(cx, |thread, cx| { + assert_eq!(thread.entries().len(), 3); + assert!(matches!( + thread.entries()[0], + AgentThreadEntry::UserMessage(_) + )); + assert!(matches!(thread.entries()[1], AgentThreadEntry::ToolCall(_))); + let AgentThreadEntry::AssistantMessage(assistant_message) = &thread.entries()[2] else { + panic!("Expected AssistantMessage") + }; + assert!( + assistant_message.to_markdown(cx).contains("Hello, world!"), + "unexpected assistant message: {:?}", + assistant_message.to_markdown(cx) + ); + }); + } + + #[gpui::test] + #[cfg_attr(not(feature = "gemini"), ignore)] + async fn test_gemini_tool_call(cx: &mut TestAppContext) { + init_test(cx); + + cx.executor().allow_parking(); + + let fs = FakeFs::new(cx.executor()); + fs.insert_tree( + path!("/private/tmp"), + json!({"foo": "Lorem ipsum dolor", "bar": "bar", "baz": "baz"}), + ) + .await; + let project = Project::test(fs, [path!("/private/tmp").as_ref()], cx).await; + let thread = gemini_acp_thread(project.clone(), "/private/tmp", cx).await; + thread + .update(cx, |thread, cx| { + thread.send_raw( + "Read the '/private/tmp/foo' file and tell me what you see.", + cx, + ) + }) + .await + .unwrap(); + thread.read_with(cx, |thread, _cx| { + assert!(matches!( + &thread.entries()[2], + AgentThreadEntry::ToolCall(ToolCall { + status: ToolCallStatus::Allowed { .. }, + .. + }) + )); + + assert!(matches!( + thread.entries()[3], + AgentThreadEntry::AssistantMessage(_) + )); + }); + } + + #[gpui::test] + #[cfg_attr(not(feature = "gemini"), ignore)] + async fn test_gemini_tool_call_with_confirmation(cx: &mut TestAppContext) { + init_test(cx); + + cx.executor().allow_parking(); + + let fs = FakeFs::new(cx.executor()); + let project = Project::test(fs, [path!("/private/tmp").as_ref()], cx).await; + let thread = gemini_acp_thread(project.clone(), "/private/tmp", cx).await; + let full_turn = thread.update(cx, |thread, cx| { + thread.send_raw(r#"Run `echo "Hello, world!"`"#, cx) + }); + + run_until_first_tool_call(&thread, cx).await; + + let tool_call_id = thread.read_with(cx, |thread, _cx| { + let AgentThreadEntry::ToolCall(ToolCall { + id, + status: + ToolCallStatus::WaitingForConfirmation { + confirmation: ToolCallConfirmation::Execute { root_command, .. }, + .. + }, + .. + }) = &thread.entries()[2] + else { + panic!(); + }; + + assert_eq!(root_command, "echo"); + + *id + }); + + thread.update(cx, |thread, cx| { + thread.authorize_tool_call(tool_call_id, acp::ToolCallConfirmationOutcome::Allow, cx); + + assert!(matches!( + &thread.entries()[2], + AgentThreadEntry::ToolCall(ToolCall { + status: ToolCallStatus::Allowed { .. }, + .. + }) + )); + }); + + full_turn.await.unwrap(); + + thread.read_with(cx, |thread, cx| { + let AgentThreadEntry::ToolCall(ToolCall { + content: Some(ToolCallContent::Markdown { markdown }), + status: ToolCallStatus::Allowed { .. }, + .. + }) = &thread.entries()[2] + else { + panic!(); + }; + + markdown.read_with(cx, |md, _cx| { + assert!( + md.source().contains("Hello, world!"), + r#"Expected '{}' to contain "Hello, world!""#, + md.source() + ); + }); + }); + } + + #[gpui::test] + #[cfg_attr(not(feature = "gemini"), ignore)] + async fn test_gemini_cancel(cx: &mut TestAppContext) { + init_test(cx); + + cx.executor().allow_parking(); + + let fs = FakeFs::new(cx.executor()); + let project = Project::test(fs, [path!("/private/tmp").as_ref()], cx).await; + let thread = gemini_acp_thread(project.clone(), "/private/tmp", cx).await; + let full_turn = thread.update(cx, |thread, cx| { + thread.send_raw(r#"Run `echo "Hello, world!"`"#, cx) + }); + + let first_tool_call_ix = run_until_first_tool_call(&thread, cx).await; + + thread.read_with(cx, |thread, _cx| { + let AgentThreadEntry::ToolCall(ToolCall { + id, + status: + ToolCallStatus::WaitingForConfirmation { + confirmation: ToolCallConfirmation::Execute { root_command, .. }, + .. + }, + .. + }) = &thread.entries()[first_tool_call_ix] + else { + panic!("{:?}", thread.entries()[1]); + }; + + assert_eq!(root_command, "echo"); + + *id + }); + + thread + .update(cx, |thread, cx| thread.cancel(cx)) + .await + .unwrap(); + full_turn.await.unwrap(); + thread.read_with(cx, |thread, _| { + let AgentThreadEntry::ToolCall(ToolCall { + status: ToolCallStatus::Canceled, + .. + }) = &thread.entries()[first_tool_call_ix] + else { + panic!(); + }; + }); + + thread + .update(cx, |thread, cx| { + thread.send_raw(r#"Stop running and say goodbye to me."#, cx) + }) + .await + .unwrap(); + thread.read_with(cx, |thread, _| { + assert!(matches!( + &thread.entries().last().unwrap(), + AgentThreadEntry::AssistantMessage(..), + )) + }); + } + + async fn run_until_first_tool_call( + thread: &Entity, + cx: &mut TestAppContext, + ) -> usize { + let (mut tx, mut rx) = mpsc::channel::(1); + + let subscription = cx.update(|cx| { + cx.subscribe(thread, move |thread, _, cx| { + for (ix, entry) in thread.read(cx).entries().iter().enumerate() { + if matches!(entry, AgentThreadEntry::ToolCall(_)) { + return tx.try_send(ix).unwrap(); + } + } + }) + }); + + select! { + _ = cx.executor().timer(Duration::from_secs(10)).fuse() => { + panic!("Timeout waiting for tool call") + } + ix = rx.next().fuse() => { + drop(subscription); + ix.unwrap() + } + } + } +} diff --git a/crates/agent_servers/src/settings.rs b/crates/agent_servers/src/settings.rs new file mode 100644 index 0000000000..8e6914352b --- /dev/null +++ b/crates/agent_servers/src/settings.rs @@ -0,0 +1,41 @@ +use crate::AgentServerCommand; +use anyhow::Result; +use gpui::App; +use schemars::JsonSchema; +use serde::{Deserialize, Serialize}; +use settings::{Settings, SettingsSources}; + +pub fn init(cx: &mut App) { + AllAgentServersSettings::register(cx); +} + +#[derive(Default, Deserialize, Serialize, Clone, JsonSchema, Debug)] +pub struct AllAgentServersSettings { + pub gemini: Option, +} + +#[derive(Deserialize, Serialize, Clone, JsonSchema, Debug)] +pub struct AgentServerSettings { + #[serde(flatten)] + pub command: AgentServerCommand, +} + +impl settings::Settings for AllAgentServersSettings { + const KEY: Option<&'static str> = Some("agent_servers"); + + type FileContent = Self; + + fn load(sources: SettingsSources, _: &mut App) -> Result { + let mut settings = AllAgentServersSettings::default(); + + for value in sources.defaults_and_customizations() { + if value.gemini.is_some() { + settings.gemini = value.gemini.clone(); + } + } + + Ok(settings) + } + + fn import_from_vscode(_vscode: &settings::VsCodeSettings, _current: &mut Self::FileContent) {} +} diff --git a/crates/agent_servers/src/stdio_agent_server.rs b/crates/agent_servers/src/stdio_agent_server.rs new file mode 100644 index 0000000000..d78506022d --- /dev/null +++ b/crates/agent_servers/src/stdio_agent_server.rs @@ -0,0 +1,169 @@ +use crate::{AgentServer, AgentServerCommand, AgentServerVersion}; +use acp_thread::{AcpClientDelegate, AcpThread, LoadError}; +use agentic_coding_protocol as acp; +use anyhow::{Result, anyhow}; +use gpui::{App, AsyncApp, Entity, Task, prelude::*}; +use project::Project; +use std::{ + path::{Path, PathBuf}, + sync::Arc, +}; +use util::{ResultExt, paths}; + +pub trait StdioAgentServer: Send + Clone { + fn logo(&self) -> ui::IconName; + fn name(&self) -> &'static str; + fn empty_state_headline(&self) -> &'static str; + fn empty_state_message(&self) -> &'static str; + fn supports_always_allow(&self) -> bool; + + fn command( + &self, + project: &Entity, + cx: &mut AsyncApp, + ) -> impl Future>; + + fn version( + &self, + command: &AgentServerCommand, + ) -> impl Future> + Send; +} + +impl AgentServer for T { + fn name(&self) -> &'static str { + self.name() + } + + fn empty_state_headline(&self) -> &'static str { + self.empty_state_headline() + } + + fn empty_state_message(&self) -> &'static str { + self.empty_state_message() + } + + fn logo(&self) -> ui::IconName { + self.logo() + } + + fn supports_always_allow(&self) -> bool { + self.supports_always_allow() + } + + fn new_thread( + &self, + root_dir: &Path, + project: &Entity, + cx: &mut App, + ) -> Task>> { + let root_dir = root_dir.to_path_buf(); + let project = project.clone(); + let this = self.clone(); + let title = self.name().into(); + + cx.spawn(async move |cx| { + let command = this.command(&project, cx).await?; + + let mut child = util::command::new_smol_command(&command.path) + .args(command.args.iter()) + .current_dir(root_dir) + .stdin(std::process::Stdio::piped()) + .stdout(std::process::Stdio::piped()) + .stderr(std::process::Stdio::inherit()) + .kill_on_drop(true) + .spawn()?; + + let stdin = child.stdin.take().unwrap(); + let stdout = child.stdout.take().unwrap(); + + cx.new(|cx| { + let foreground_executor = cx.foreground_executor().clone(); + + let (connection, io_fut) = acp::AgentConnection::connect_to_agent( + AcpClientDelegate::new(cx.entity().downgrade(), cx.to_async()), + stdin, + stdout, + move |fut| foreground_executor.spawn(fut).detach(), + ); + + let io_task = cx.background_spawn(async move { + io_fut.await.log_err(); + }); + + let child_status = cx.background_spawn(async move { + let result = match child.status().await { + Err(e) => Err(anyhow!(e)), + Ok(result) if result.success() => Ok(()), + Ok(result) => { + if let Some(AgentServerVersion::Unsupported { + error_message, + upgrade_message, + upgrade_command, + }) = this.version(&command).await.log_err() + { + Err(anyhow!(LoadError::Unsupported { + error_message, + upgrade_message, + upgrade_command + })) + } else { + Err(anyhow!(LoadError::Exited(result.code().unwrap_or(-127)))) + } + } + }; + drop(io_task); + result + }); + + AcpThread::new(connection, title, Some(child_status), project.clone(), cx) + }) + }) + } +} + +pub async fn find_bin_in_path( + bin_name: &'static str, + project: &Entity, + cx: &mut AsyncApp, +) -> Option { + let (env_task, root_dir) = project + .update(cx, |project, cx| { + let worktree = project.visible_worktrees(cx).next(); + match worktree { + Some(worktree) => { + let env_task = project.environment().update(cx, |env, cx| { + env.get_worktree_environment(worktree.clone(), cx) + }); + + let path = worktree.read(cx).abs_path(); + (env_task, path) + } + None => { + let path: Arc = paths::home_dir().as_path().into(); + let env_task = project.environment().update(cx, |env, cx| { + env.get_directory_environment(path.clone(), cx) + }); + (env_task, path) + } + } + }) + .log_err()?; + + cx.background_executor() + .spawn(async move { + let which_result = if cfg!(windows) { + which::which(bin_name) + } else { + let env = env_task.await.unwrap_or_default(); + let shell_path = env.get("PATH").cloned(); + which::which_in(bin_name, shell_path.as_ref(), root_dir.as_ref()) + }; + + if let Err(which::Error::CannotFindBinaryPath) = which_result { + return None; + } + + which_result.log_err() + }) + .await +} diff --git a/crates/agent_ui/Cargo.toml b/crates/agent_ui/Cargo.toml index 72466fe8e7..d4feceb0b6 100644 --- a/crates/agent_ui/Cargo.toml +++ b/crates/agent_ui/Cargo.toml @@ -16,7 +16,7 @@ doctest = false test-support = ["gpui/test-support", "language/test-support"] [dependencies] -acp.workspace = true +acp_thread.workspace = true agent.workspace = true agentic-coding-protocol.workspace = true agent_settings.workspace = true diff --git a/crates/agent_ui/src/acp/thread_view.rs b/crates/agent_ui/src/acp/thread_view.rs index 7ab395815f..765f4fe6c0 100644 --- a/crates/agent_ui/src/acp/thread_view.rs +++ b/crates/agent_ui/src/acp/thread_view.rs @@ -1,3 +1,4 @@ +use agent_servers::AgentServer; use std::cell::RefCell; use std::collections::BTreeMap; use std::path::Path; @@ -35,7 +36,7 @@ use util::ResultExt; use workspace::{CollaboratorId, Workspace}; use zed_actions::agent::{Chat, NextHistoryMessage, PreviousHistoryMessage}; -use ::acp::{ +use ::acp_thread::{ AcpThread, AcpThreadEvent, AgentThreadEntry, AssistantMessage, AssistantMessageChunk, Diff, LoadError, MentionPath, ThreadStatus, ToolCall, ToolCallConfirmation, ToolCallContent, ToolCallId, ToolCallStatus, @@ -49,6 +50,7 @@ use crate::{AgentDiffPane, Follow, KeepAll, OpenAgentDiff, RejectAll}; const RESPONSE_PADDING_X: Pixels = px(19.); pub struct AcpThreadView { + agent: Rc, workspace: WeakEntity, project: Entity, thread_state: ThreadState, @@ -80,8 +82,15 @@ enum ThreadState { }, } +struct AlwaysAllowOption { + id: &'static str, + label: SharedString, + outcome: acp::ToolCallConfirmationOutcome, +} + impl AcpThreadView { pub fn new( + agent: Rc, workspace: WeakEntity, project: Entity, message_history: Rc>>, @@ -158,9 +167,10 @@ impl AcpThreadView { ); Self { + agent: agent.clone(), workspace: workspace.clone(), project: project.clone(), - thread_state: Self::initial_state(workspace, project, window, cx), + thread_state: Self::initial_state(agent, workspace, project, window, cx), message_editor, message_set_from_history: false, _message_editor_subscription: message_editor_subscription, @@ -177,6 +187,7 @@ impl AcpThreadView { } fn initial_state( + agent: Rc, workspace: WeakEntity, project: Entity, window: &mut Window, @@ -189,9 +200,9 @@ impl AcpThreadView { .map(|worktree| worktree.read(cx).abs_path()) .unwrap_or_else(|| paths::home_dir().as_path().into()); + let task = agent.new_thread(&root_dir, &project, cx); let load_task = cx.spawn_in(window, async move |this, cx| { - let thread = match AcpThread::spawn(agent_servers::Gemini, &root_dir, project, cx).await - { + let thread = match task.await { Ok(thread) => thread, Err(err) => { this.update(cx, |this, cx| { @@ -410,6 +421,33 @@ impl AcpThreadView { ); } + fn open_agent_diff(&mut self, _: &OpenAgentDiff, window: &mut Window, cx: &mut Context) { + if let Some(thread) = self.thread() { + AgentDiffPane::deploy(thread.clone(), self.workspace.clone(), window, cx).log_err(); + } + } + + fn open_edited_buffer( + &mut self, + buffer: &Entity, + window: &mut Window, + cx: &mut Context, + ) { + let Some(thread) = self.thread() else { + return; + }; + + let Some(diff) = + AgentDiffPane::deploy(thread.clone(), self.workspace.clone(), window, cx).log_err() + else { + return; + }; + + diff.update(cx, |diff, cx| { + diff.move_to_path(PathKey::for_buffer(&buffer, cx), window, cx) + }) + } + fn set_draft_message( message_editor: Entity, mention_set: Arc>, @@ -485,33 +523,6 @@ impl AcpThreadView { true } - fn open_agent_diff(&mut self, _: &OpenAgentDiff, window: &mut Window, cx: &mut Context) { - if let Some(thread) = self.thread() { - AgentDiffPane::deploy(thread.clone(), self.workspace.clone(), window, cx).log_err(); - } - } - - fn open_edited_buffer( - &mut self, - buffer: &Entity, - window: &mut Window, - cx: &mut Context, - ) { - let Some(thread) = self.thread() else { - return; - }; - - let Some(diff) = - AgentDiffPane::deploy(thread.clone(), self.workspace.clone(), window, cx).log_err() - else { - return; - }; - - diff.update(cx, |diff, cx| { - diff.move_to_path(PathKey::for_buffer(&buffer, cx), window, cx) - }) - } - fn handle_thread_event( &mut self, thread: &Entity, @@ -608,6 +619,7 @@ impl AcpThreadView { let authenticate = thread.read(cx).authenticate(); self.auth_task = Some(cx.spawn_in(window, { let project = self.project.clone(); + let agent = self.agent.clone(); async move |this, cx| { let result = authenticate.await; @@ -617,8 +629,13 @@ impl AcpThreadView { Markdown::new(format!("Error: {err}").into(), None, None, cx) })) } else { - this.thread_state = - Self::initial_state(this.workspace.clone(), project.clone(), window, cx) + this.thread_state = Self::initial_state( + agent, + this.workspace.clone(), + project.clone(), + window, + cx, + ) } this.auth_task.take() }) @@ -1047,14 +1064,6 @@ impl AcpThreadView { ) -> AnyElement { let confirmation_container = v_flex().mt_1().py_1p5(); - let button_container = h_flex() - .pt_1p5() - .px_1p5() - .gap_1() - .justify_end() - .border_t_1() - .border_color(self.tool_card_border_color(cx)); - match confirmation { ToolCallConfirmation::Edit { description } => confirmation_container .child( @@ -1068,60 +1077,15 @@ impl AcpThreadView { })), ) .children(content.map(|content| self.render_tool_call_content(content, window, cx))) - .child( - button_container - .child( - Button::new(("always_allow", tool_call_id.0), "Always Allow Edits") - .icon(IconName::CheckDouble) - .icon_position(IconPosition::Start) - .icon_size(IconSize::XSmall) - .icon_color(Color::Success) - .on_click(cx.listener({ - let id = tool_call_id; - move |this, _, _, cx| { - this.authorize_tool_call( - id, - acp::ToolCallConfirmationOutcome::AlwaysAllow, - cx, - ); - } - })), - ) - .child( - Button::new(("allow", tool_call_id.0), "Allow") - .icon(IconName::Check) - .icon_position(IconPosition::Start) - .icon_size(IconSize::XSmall) - .icon_color(Color::Success) - .on_click(cx.listener({ - let id = tool_call_id; - move |this, _, _, cx| { - this.authorize_tool_call( - id, - acp::ToolCallConfirmationOutcome::Allow, - cx, - ); - } - })), - ) - .child( - Button::new(("reject", tool_call_id.0), "Reject") - .icon(IconName::X) - .icon_position(IconPosition::Start) - .icon_size(IconSize::XSmall) - .icon_color(Color::Error) - .on_click(cx.listener({ - let id = tool_call_id; - move |this, _, _, cx| { - this.authorize_tool_call( - id, - acp::ToolCallConfirmationOutcome::Reject, - cx, - ); - } - })), - ), - ) + .child(self.render_confirmation_buttons( + &[AlwaysAllowOption { + id: "always_allow", + label: "Always Allow Edits".into(), + outcome: acp::ToolCallConfirmationOutcome::AlwaysAllow, + }], + tool_call_id, + cx, + )) .into_any(), ToolCallConfirmation::Execute { command, @@ -1140,66 +1104,15 @@ impl AcpThreadView { }), )) .children(content.map(|content| self.render_tool_call_content(content, window, cx))) - .child( - button_container - .child( - Button::new( - ("always_allow", tool_call_id.0), - format!("Always Allow {root_command}"), - ) - .icon(IconName::CheckDouble) - .icon_position(IconPosition::Start) - .icon_size(IconSize::XSmall) - .icon_color(Color::Success) - .label_size(LabelSize::Small) - .on_click(cx.listener({ - let id = tool_call_id; - move |this, _, _, cx| { - this.authorize_tool_call( - id, - acp::ToolCallConfirmationOutcome::AlwaysAllow, - cx, - ); - } - })), - ) - .child( - Button::new(("allow", tool_call_id.0), "Allow") - .icon(IconName::Check) - .icon_position(IconPosition::Start) - .icon_size(IconSize::XSmall) - .icon_color(Color::Success) - .label_size(LabelSize::Small) - .on_click(cx.listener({ - let id = tool_call_id; - move |this, _, _, cx| { - this.authorize_tool_call( - id, - acp::ToolCallConfirmationOutcome::Allow, - cx, - ); - } - })), - ) - .child( - Button::new(("reject", tool_call_id.0), "Reject") - .icon(IconName::X) - .icon_position(IconPosition::Start) - .icon_size(IconSize::XSmall) - .icon_color(Color::Error) - .label_size(LabelSize::Small) - .on_click(cx.listener({ - let id = tool_call_id; - move |this, _, _, cx| { - this.authorize_tool_call( - id, - acp::ToolCallConfirmationOutcome::Reject, - cx, - ); - } - })), - ), - ) + .child(self.render_confirmation_buttons( + &[AlwaysAllowOption { + id: "always_allow", + label: format!("Always Allow {root_command}").into(), + outcome: acp::ToolCallConfirmationOutcome::AlwaysAllow, + }], + tool_call_id, + cx, + )) .into_any(), ToolCallConfirmation::Mcp { server_name, @@ -1220,87 +1133,22 @@ impl AcpThreadView { })), ) .children(content.map(|content| self.render_tool_call_content(content, window, cx))) - .child( - button_container - .child( - Button::new( - ("always_allow_server", tool_call_id.0), - format!("Always Allow {server_name}"), - ) - .icon(IconName::CheckDouble) - .icon_position(IconPosition::Start) - .icon_size(IconSize::XSmall) - .icon_color(Color::Success) - .label_size(LabelSize::Small) - .on_click(cx.listener({ - let id = tool_call_id; - move |this, _, _, cx| { - this.authorize_tool_call( - id, - acp::ToolCallConfirmationOutcome::AlwaysAllowMcpServer, - cx, - ); - } - })), - ) - .child( - Button::new( - ("always_allow_tool", tool_call_id.0), - format!("Always Allow {tool_display_name}"), - ) - .icon(IconName::CheckDouble) - .icon_position(IconPosition::Start) - .icon_size(IconSize::XSmall) - .icon_color(Color::Success) - .label_size(LabelSize::Small) - .on_click(cx.listener({ - let id = tool_call_id; - move |this, _, _, cx| { - this.authorize_tool_call( - id, - acp::ToolCallConfirmationOutcome::AlwaysAllowTool, - cx, - ); - } - })), - ) - .child( - Button::new(("allow", tool_call_id.0), "Allow") - .icon(IconName::Check) - .icon_position(IconPosition::Start) - .icon_size(IconSize::XSmall) - .icon_color(Color::Success) - .label_size(LabelSize::Small) - .on_click(cx.listener({ - let id = tool_call_id; - move |this, _, _, cx| { - this.authorize_tool_call( - id, - acp::ToolCallConfirmationOutcome::Allow, - cx, - ); - } - })), - ) - .child( - Button::new(("reject", tool_call_id.0), "Reject") - .icon(IconName::X) - .icon_position(IconPosition::Start) - .icon_size(IconSize::XSmall) - .icon_color(Color::Error) - .label_size(LabelSize::Small) - .on_click(cx.listener({ - let id = tool_call_id; - move |this, _, _, cx| { - this.authorize_tool_call( - id, - acp::ToolCallConfirmationOutcome::Reject, - cx, - ); - } - })), - ), - ) + .child(self.render_confirmation_buttons( + &[ + AlwaysAllowOption { + id: "always_allow_server", + label: format!("Always Allow {server_name}").into(), + outcome: acp::ToolCallConfirmationOutcome::AlwaysAllowMcpServer, + }, + AlwaysAllowOption { + id: "always_allow_tool", + label: format!("Always Allow {tool_display_name}").into(), + outcome: acp::ToolCallConfirmationOutcome::AlwaysAllowTool, + }, + ], + tool_call_id, + cx, + )) .into_any(), ToolCallConfirmation::Fetch { description, urls } => confirmation_container .child( @@ -1328,63 +1176,15 @@ impl AcpThreadView { })), ) .children(content.map(|content| self.render_tool_call_content(content, window, cx))) - .child( - button_container - .child( - Button::new(("always_allow", tool_call_id.0), "Always Allow") - .icon(IconName::CheckDouble) - .icon_position(IconPosition::Start) - .icon_size(IconSize::XSmall) - .icon_color(Color::Success) - .label_size(LabelSize::Small) - .on_click(cx.listener({ - let id = tool_call_id; - move |this, _, _, cx| { - this.authorize_tool_call( - id, - acp::ToolCallConfirmationOutcome::AlwaysAllow, - cx, - ); - } - })), - ) - .child( - Button::new(("allow", tool_call_id.0), "Allow") - .icon(IconName::Check) - .icon_position(IconPosition::Start) - .icon_size(IconSize::XSmall) - .icon_color(Color::Success) - .label_size(LabelSize::Small) - .on_click(cx.listener({ - let id = tool_call_id; - move |this, _, _, cx| { - this.authorize_tool_call( - id, - acp::ToolCallConfirmationOutcome::Allow, - cx, - ); - } - })), - ) - .child( - Button::new(("reject", tool_call_id.0), "Reject") - .icon(IconName::X) - .icon_position(IconPosition::Start) - .icon_size(IconSize::XSmall) - .icon_color(Color::Error) - .label_size(LabelSize::Small) - .on_click(cx.listener({ - let id = tool_call_id; - move |this, _, _, cx| { - this.authorize_tool_call( - id, - acp::ToolCallConfirmationOutcome::Reject, - cx, - ); - } - })), - ), - ) + .child(self.render_confirmation_buttons( + &[AlwaysAllowOption { + id: "always_allow", + label: "Always Allow".into(), + outcome: acp::ToolCallConfirmationOutcome::AlwaysAllow, + }], + tool_call_id, + cx, + )) .into_any(), ToolCallConfirmation::Other { description } => confirmation_container .child(v_flex().px_2().pb_1p5().child(self.render_markdown( @@ -1392,67 +1192,87 @@ impl AcpThreadView { default_markdown_style(false, window, cx), ))) .children(content.map(|content| self.render_tool_call_content(content, window, cx))) - .child( - button_container - .child( - Button::new(("always_allow", tool_call_id.0), "Always Allow") - .icon(IconName::CheckDouble) - .icon_position(IconPosition::Start) - .icon_size(IconSize::XSmall) - .icon_color(Color::Success) - .label_size(LabelSize::Small) - .on_click(cx.listener({ - let id = tool_call_id; - move |this, _, _, cx| { - this.authorize_tool_call( - id, - acp::ToolCallConfirmationOutcome::AlwaysAllow, - cx, - ); - } - })), - ) - .child( - Button::new(("allow", tool_call_id.0), "Allow") - .icon(IconName::Check) - .icon_position(IconPosition::Start) - .icon_size(IconSize::XSmall) - .icon_color(Color::Success) - .label_size(LabelSize::Small) - .on_click(cx.listener({ - let id = tool_call_id; - move |this, _, _, cx| { - this.authorize_tool_call( - id, - acp::ToolCallConfirmationOutcome::Allow, - cx, - ); - } - })), - ) - .child( - Button::new(("reject", tool_call_id.0), "Reject") - .icon(IconName::X) - .icon_position(IconPosition::Start) - .icon_size(IconSize::XSmall) - .icon_color(Color::Error) - .label_size(LabelSize::Small) - .on_click(cx.listener({ - let id = tool_call_id; - move |this, _, _, cx| { - this.authorize_tool_call( - id, - acp::ToolCallConfirmationOutcome::Reject, - cx, - ); - } - })), - ), - ) + .child(self.render_confirmation_buttons( + &[AlwaysAllowOption { + id: "always_allow", + label: "Always Allow".into(), + outcome: acp::ToolCallConfirmationOutcome::AlwaysAllow, + }], + tool_call_id, + cx, + )) .into_any(), } } + fn render_confirmation_buttons( + &self, + always_allow_options: &[AlwaysAllowOption], + tool_call_id: ToolCallId, + cx: &Context, + ) -> Div { + h_flex() + .pt_1p5() + .px_1p5() + .gap_1() + .justify_end() + .border_t_1() + .border_color(self.tool_card_border_color(cx)) + .when(self.agent.supports_always_allow(), |this| { + this.children(always_allow_options.into_iter().map(|always_allow_option| { + let outcome = always_allow_option.outcome; + Button::new( + (always_allow_option.id, tool_call_id.0), + always_allow_option.label.clone(), + ) + .icon(IconName::CheckDouble) + .icon_position(IconPosition::Start) + .icon_size(IconSize::XSmall) + .icon_color(Color::Success) + .on_click(cx.listener({ + let id = tool_call_id; + move |this, _, _, cx| { + this.authorize_tool_call(id, outcome, cx); + } + })) + })) + }) + .child( + Button::new(("allow", tool_call_id.0), "Allow") + .icon(IconName::Check) + .icon_position(IconPosition::Start) + .icon_size(IconSize::XSmall) + .icon_color(Color::Success) + .on_click(cx.listener({ + let id = tool_call_id; + move |this, _, _, cx| { + this.authorize_tool_call( + id, + acp::ToolCallConfirmationOutcome::Allow, + cx, + ); + } + })), + ) + .child( + Button::new(("reject", tool_call_id.0), "Reject") + .icon(IconName::X) + .icon_position(IconPosition::Start) + .icon_size(IconSize::XSmall) + .icon_color(Color::Error) + .on_click(cx.listener({ + let id = tool_call_id; + move |this, _, _, cx| { + this.authorize_tool_call( + id, + acp::ToolCallConfirmationOutcome::Reject, + cx, + ); + } + })), + ) + } + fn render_diff_editor(&self, multibuffer: &Entity) -> AnyElement { v_flex() .h_full() @@ -1466,15 +1286,15 @@ impl AcpThreadView { .into_any() } - fn render_gemini_logo(&self) -> AnyElement { - Icon::new(IconName::AiGemini) + fn render_agent_logo(&self) -> AnyElement { + Icon::new(self.agent.logo()) .color(Color::Muted) .size(IconSize::XLarge) .into_any_element() } - fn render_error_gemini_logo(&self) -> AnyElement { - let logo = Icon::new(IconName::AiGemini) + fn render_error_agent_logo(&self) -> AnyElement { + let logo = Icon::new(self.agent.logo()) .color(Color::Muted) .size(IconSize::XLarge) .into_any_element(); @@ -1493,49 +1313,50 @@ impl AcpThreadView { .into_any_element() } - fn render_empty_state(&self, loading: bool, cx: &App) -> AnyElement { + fn render_empty_state(&self, cx: &App) -> AnyElement { + let loading = matches!(&self.thread_state, ThreadState::Loading { .. }); + v_flex() .size_full() .items_center() .justify_center() - .child( - if loading { - h_flex() - .justify_center() - .child(self.render_gemini_logo()) - .with_animation( - "pulsating_icon", - Animation::new(Duration::from_secs(2)) - .repeat() - .with_easing(pulsating_between(0.4, 1.0)), - |icon, delta| icon.opacity(delta), - ).into_any() - } else { - self.render_gemini_logo().into_any_element() - } - ) - .child( + .child(if loading { h_flex() - .mt_4() - .mb_1() .justify_center() - .child(Headline::new(if loading { - "Connecting to Gemini…" - } else { - "Welcome to Gemini" - }).size(HeadlineSize::Medium)), - ) + .child(self.render_agent_logo()) + .with_animation( + "pulsating_icon", + Animation::new(Duration::from_secs(2)) + .repeat() + .with_easing(pulsating_between(0.4, 1.0)), + |icon, delta| icon.opacity(delta), + ) + .into_any() + } else { + self.render_agent_logo().into_any_element() + }) + .child(h_flex().mt_4().mb_1().justify_center().child(if loading { + div() + .child(LoadingLabel::new("").size(LabelSize::Large)) + .into_any_element() + } else { + Headline::new(self.agent.empty_state_headline()) + .size(HeadlineSize::Medium) + .into_any_element() + })) .child( div() .max_w_1_2() .text_sm() .text_center() - .map(|this| if loading { - this.invisible() - } else { - this.text_color(cx.theme().colors().text_muted) + .map(|this| { + if loading { + this.invisible() + } else { + this.text_color(cx.theme().colors().text_muted) + } }) - .child("Ask questions, edit files, run commands.\nBe specific for the best results.") + .child(self.agent.empty_state_message()), ) .into_any() } @@ -1544,7 +1365,7 @@ impl AcpThreadView { v_flex() .items_center() .justify_center() - .child(self.render_error_gemini_logo()) + .child(self.render_error_agent_logo()) .child( h_flex() .mt_4() @@ -1559,7 +1380,7 @@ impl AcpThreadView { let mut container = v_flex() .items_center() .justify_center() - .child(self.render_error_gemini_logo()) + .child(self.render_error_agent_logo()) .child( v_flex() .mt_4() @@ -1575,43 +1396,47 @@ impl AcpThreadView { ), ); - if matches!(e, LoadError::Unsupported { .. }) { - container = - container.child(Button::new("upgrade", "Upgrade Gemini to Latest").on_click( - cx.listener(|this, _, window, cx| { - this.workspace - .update(cx, |workspace, cx| { - let project = workspace.project().read(cx); - let cwd = project.first_project_directory(cx); - let shell = project.terminal_settings(&cwd, cx).shell.clone(); - let command = - "npm install -g @google/gemini-cli@latest".to_string(); - let spawn_in_terminal = task::SpawnInTerminal { - id: task::TaskId("install".to_string()), - full_label: command.clone(), - label: command.clone(), - command: Some(command.clone()), - args: Vec::new(), - command_label: command.clone(), - cwd, - env: Default::default(), - use_new_terminal: true, - allow_concurrent_runs: true, - reveal: Default::default(), - reveal_target: Default::default(), - hide: Default::default(), - shell, - show_summary: true, - show_command: true, - show_rerun: false, - }; - workspace - .spawn_in_terminal(spawn_in_terminal, window, cx) - .detach(); - }) - .ok(); - }), - )); + if let LoadError::Unsupported { + upgrade_message, + upgrade_command, + .. + } = &e + { + let upgrade_message = upgrade_message.clone(); + let upgrade_command = upgrade_command.clone(); + container = container.child(Button::new("upgrade", upgrade_message).on_click( + cx.listener(move |this, _, window, cx| { + this.workspace + .update(cx, |workspace, cx| { + let project = workspace.project().read(cx); + let cwd = project.first_project_directory(cx); + let shell = project.terminal_settings(&cwd, cx).shell.clone(); + let spawn_in_terminal = task::SpawnInTerminal { + id: task::TaskId("install".to_string()), + full_label: upgrade_command.clone(), + label: upgrade_command.clone(), + command: Some(upgrade_command.clone()), + args: Vec::new(), + command_label: upgrade_command.clone(), + cwd, + env: Default::default(), + use_new_terminal: true, + allow_concurrent_runs: true, + reveal: Default::default(), + reveal_target: Default::default(), + hide: Default::default(), + shell, + show_summary: true, + show_command: true, + show_rerun: false, + }; + workspace + .spawn_in_terminal(spawn_in_terminal, window, cx) + .detach(); + }) + .ok(); + }), + )); } container.into_any() @@ -2267,20 +2092,23 @@ impl Render for AcpThreadView { .on_action(cx.listener(Self::next_history_message)) .on_action(cx.listener(Self::open_agent_diff)) .child(match &self.thread_state { - ThreadState::Unauthenticated { .. } => v_flex() - .p_2() - .flex_1() - .items_center() - .justify_center() - .child(self.render_pending_auth_state()) - .child(h_flex().mt_1p5().justify_center().child( - Button::new("sign-in", "Sign in to Gemini").on_click( - cx.listener(|this, _, window, cx| this.authenticate(window, cx)), - ), - )), - ThreadState::Loading { .. } => { - v_flex().flex_1().child(self.render_empty_state(true, cx)) + ThreadState::Unauthenticated { .. } => { + v_flex() + .p_2() + .flex_1() + .items_center() + .justify_center() + .child(self.render_pending_auth_state()) + .child( + h_flex().mt_1p5().justify_center().child( + Button::new("sign-in", format!("Sign in to {}", self.agent.name())) + .on_click(cx.listener(|this, _, window, cx| { + this.authenticate(window, cx) + })), + ), + ) } + ThreadState::Loading { .. } => v_flex().flex_1().child(self.render_empty_state(cx)), ThreadState::LoadError(e) => v_flex() .p_2() .flex_1() @@ -2321,7 +2149,7 @@ impl Render for AcpThreadView { }) .children(self.render_edits_bar(&thread, window, cx)) } else { - this.child(self.render_empty_state(false, cx)) + this.child(self.render_empty_state(cx)) } }), }) diff --git a/crates/agent_ui/src/agent_diff.rs b/crates/agent_ui/src/agent_diff.rs index 000e270322..e69664ce88 100644 --- a/crates/agent_ui/src/agent_diff.rs +++ b/crates/agent_ui/src/agent_diff.rs @@ -1,5 +1,5 @@ use crate::{Keep, KeepAll, OpenAgentDiff, Reject, RejectAll}; -use acp::{AcpThread, AcpThreadEvent}; +use acp_thread::{AcpThread, AcpThreadEvent}; use agent::{Thread, ThreadEvent, ThreadSummary}; use agent_settings::AgentSettings; use anyhow::Result; @@ -81,7 +81,7 @@ impl AgentDiffThread { match self { AgentDiffThread::Native(thread) => thread.read(cx).is_generating(), AgentDiffThread::AcpThread(thread) => { - thread.read(cx).status() == acp::ThreadStatus::Generating + thread.read(cx).status() == acp_thread::ThreadStatus::Generating } } } diff --git a/crates/agent_ui/src/agent_panel.rs b/crates/agent_ui/src/agent_panel.rs index 2caa9dab42..895a499502 100644 --- a/crates/agent_ui/src/agent_panel.rs +++ b/crates/agent_ui/src/agent_panel.rs @@ -5,10 +5,11 @@ use std::rc::Rc; use std::sync::Arc; use std::time::Duration; +use agent_servers::AgentServer; use db::kvp::{Dismissable, KEY_VALUE_STORE}; use serde::{Deserialize, Serialize}; -use crate::NewAcpThread; +use crate::NewExternalAgentThread; use crate::agent_diff::AgentDiffThread; use crate::language_model_selector::ToggleModelSelector; use crate::{ @@ -114,10 +115,12 @@ pub fn init(cx: &mut App) { panel.update(cx, |panel, cx| panel.new_prompt_editor(window, cx)); } }) - .register_action(|workspace, _: &NewAcpThread, window, cx| { + .register_action(|workspace, action: &NewExternalAgentThread, window, cx| { if let Some(panel) = workspace.panel::(cx) { workspace.focus_panel::(window, cx); - panel.update(cx, |panel, cx| panel.new_gemini_thread(window, cx)); + panel.update(cx, |panel, cx| { + panel.new_external_thread(action.agent, window, cx) + }); } }) .register_action(|workspace, action: &OpenRulesLibrary, window, cx| { @@ -136,7 +139,7 @@ pub fn init(cx: &mut App) { let thread = thread.read(cx).thread().clone(); AgentDiffPane::deploy_in_workspace(thread, workspace, window, cx); } - ActiveView::AcpThread { .. } + ActiveView::ExternalAgentThread { .. } | ActiveView::TextThread { .. } | ActiveView::History | ActiveView::Configuration => {} @@ -200,7 +203,7 @@ enum ActiveView { message_editor: Entity, _subscriptions: Vec, }, - AcpThread { + ExternalAgentThread { thread_view: Entity, }, TextThread { @@ -222,9 +225,9 @@ enum WhichFontSize { impl ActiveView { pub fn which_font_size_used(&self) -> WhichFontSize { match self { - ActiveView::Thread { .. } | ActiveView::AcpThread { .. } | ActiveView::History => { - WhichFontSize::AgentFont - } + ActiveView::Thread { .. } + | ActiveView::ExternalAgentThread { .. } + | ActiveView::History => WhichFontSize::AgentFont, ActiveView::TextThread { .. } => WhichFontSize::BufferFont, ActiveView::Configuration => WhichFontSize::None, } @@ -255,7 +258,7 @@ impl ActiveView { thread.scroll_to_bottom(cx); }); } - ActiveView::AcpThread { .. } => {} + ActiveView::ExternalAgentThread { .. } => {} ActiveView::TextThread { .. } | ActiveView::History | ActiveView::Configuration => {} @@ -674,7 +677,7 @@ impl AgentPanel { .clone() .update(cx, |thread, cx| thread.get_or_init_configured_model(cx)); } - ActiveView::AcpThread { .. } + ActiveView::ExternalAgentThread { .. } | ActiveView::TextThread { .. } | ActiveView::History | ActiveView::Configuration => {} @@ -757,7 +760,7 @@ impl AgentPanel { ActiveView::Thread { thread, .. } => { thread.update(cx, |thread, cx| thread.cancel_last_completion(window, cx)); } - ActiveView::AcpThread { thread_view, .. } => { + ActiveView::ExternalAgentThread { thread_view, .. } => { thread_view.update(cx, |thread_element, cx| thread_element.cancel(cx)); } ActiveView::TextThread { .. } | ActiveView::History | ActiveView::Configuration => {} @@ -767,7 +770,7 @@ impl AgentPanel { fn active_message_editor(&self) -> Option<&Entity> { match &self.active_view { ActiveView::Thread { message_editor, .. } => Some(message_editor), - ActiveView::AcpThread { .. } + ActiveView::ExternalAgentThread { .. } | ActiveView::TextThread { .. } | ActiveView::History | ActiveView::Configuration => None, @@ -889,35 +892,77 @@ impl AgentPanel { context_editor.focus_handle(cx).focus(window); } - fn new_gemini_thread(&mut self, window: &mut Window, cx: &mut Context) { + fn new_external_thread( + &mut self, + agent_choice: Option, + window: &mut Window, + cx: &mut Context, + ) { let workspace = self.workspace.clone(); let project = self.project.clone(); let message_history = self.acp_message_history.clone(); + const LAST_USED_EXTERNAL_AGENT_KEY: &str = "agent_panel__last_used_external_agent"; + + #[derive(Default, Serialize, Deserialize)] + struct LastUsedExternalAgent { + agent: crate::ExternalAgent, + } + cx.spawn_in(window, async move |this, cx| { - let thread_view = cx.new_window_entity(|window, cx| { - crate::acp::AcpThreadView::new( - workspace.clone(), - project, - message_history, - window, - cx, - ) - })?; + let server: Rc = match agent_choice { + Some(agent) => { + cx.background_spawn(async move { + if let Some(serialized) = + serde_json::to_string(&LastUsedExternalAgent { agent }).log_err() + { + KEY_VALUE_STORE + .write_kvp(LAST_USED_EXTERNAL_AGENT_KEY.to_string(), serialized) + .await + .log_err(); + } + }) + .detach(); + + agent.server() + } + None => cx + .background_spawn(async move { + KEY_VALUE_STORE.read_kvp(LAST_USED_EXTERNAL_AGENT_KEY) + }) + .await + .log_err() + .flatten() + .and_then(|value| { + serde_json::from_str::(&value).log_err() + }) + .unwrap_or_default() + .agent + .server(), + }; + this.update_in(cx, |this, window, cx| { + let thread_view = cx.new(|cx| { + crate::acp::AcpThreadView::new( + server, + workspace.clone(), + project, + message_history, + window, + cx, + ) + }); + this.set_active_view( - ActiveView::AcpThread { + ActiveView::ExternalAgentThread { thread_view: thread_view.clone(), }, window, cx, ); }) - .log_err(); - - anyhow::Ok(()) }) - .detach(); + .detach_and_log_err(cx); } fn deploy_rules_library( @@ -1084,7 +1129,7 @@ impl AgentPanel { ActiveView::Thread { message_editor, .. } => { message_editor.focus_handle(cx).focus(window); } - ActiveView::AcpThread { thread_view } => { + ActiveView::ExternalAgentThread { thread_view } => { thread_view.focus_handle(cx).focus(window); } ActiveView::TextThread { context_editor, .. } => { @@ -1211,7 +1256,7 @@ impl AgentPanel { }) .log_err(); } - ActiveView::AcpThread { .. } + ActiveView::ExternalAgentThread { .. } | ActiveView::TextThread { .. } | ActiveView::History | ActiveView::Configuration => {} @@ -1267,7 +1312,7 @@ impl AgentPanel { ) .detach_and_log_err(cx); } - ActiveView::AcpThread { thread_view } => { + ActiveView::ExternalAgentThread { thread_view } => { thread_view .update(cx, |thread_view, cx| { thread_view.open_thread_as_markdown(workspace, window, cx) @@ -1428,7 +1473,7 @@ impl AgentPanel { } }) } - ActiveView::AcpThread { .. } => {} + ActiveView::ExternalAgentThread { .. } => {} ActiveView::History | ActiveView::Configuration => {} } @@ -1517,7 +1562,7 @@ impl Focusable for AgentPanel { fn focus_handle(&self, cx: &App) -> FocusHandle { match &self.active_view { ActiveView::Thread { message_editor, .. } => message_editor.focus_handle(cx), - ActiveView::AcpThread { thread_view, .. } => thread_view.focus_handle(cx), + ActiveView::ExternalAgentThread { thread_view, .. } => thread_view.focus_handle(cx), ActiveView::History => self.history.focus_handle(cx), ActiveView::TextThread { context_editor, .. } => context_editor.focus_handle(cx), ActiveView::Configuration => { @@ -1674,9 +1719,11 @@ impl AgentPanel { .into_any_element(), } } - ActiveView::AcpThread { thread_view } => Label::new(thread_view.read(cx).title(cx)) - .truncate() - .into_any_element(), + ActiveView::ExternalAgentThread { thread_view } => { + Label::new(thread_view.read(cx).title(cx)) + .truncate() + .into_any_element() + } ActiveView::TextThread { title_editor, context_editor, @@ -1811,7 +1858,7 @@ impl AgentPanel { let active_thread = match &self.active_view { ActiveView::Thread { thread, .. } => Some(thread.read(cx).thread().clone()), - ActiveView::AcpThread { .. } + ActiveView::ExternalAgentThread { .. } | ActiveView::TextThread { .. } | ActiveView::History | ActiveView::Configuration => None, @@ -1849,7 +1896,20 @@ impl AgentPanel { .when(cx.has_flag::(), |this| { this.separator() .header("External Agents") - .action("New Gemini Thread", NewAcpThread.boxed_clone()) + .action( + "New Gemini Thread", + NewExternalAgentThread { + agent: Some(crate::ExternalAgent::Gemini), + } + .boxed_clone(), + ) + .action( + "New Claude Code Thread", + NewExternalAgentThread { + agent: Some(crate::ExternalAgent::ClaudeCode), + } + .boxed_clone(), + ) }); menu })) @@ -2090,7 +2150,11 @@ impl AgentPanel { Some(element.into_any_element()) } - _ => None, + ActiveView::ExternalAgentThread { .. } + | ActiveView::History + | ActiveView::Configuration => { + return None; + } } } @@ -2119,7 +2183,7 @@ impl AgentPanel { return false; } } - ActiveView::AcpThread { .. } => { + ActiveView::ExternalAgentThread { .. } => { return false; } ActiveView::TextThread { .. } | ActiveView::History | ActiveView::Configuration => { @@ -2706,7 +2770,7 @@ impl AgentPanel { ) -> Option { let active_thread = match &self.active_view { ActiveView::Thread { thread, .. } => thread, - ActiveView::AcpThread { .. } => { + ActiveView::ExternalAgentThread { .. } => { return None; } ActiveView::TextThread { .. } | ActiveView::History | ActiveView::Configuration => { @@ -3055,7 +3119,7 @@ impl AgentPanel { .detach(); }); } - ActiveView::AcpThread { .. } => { + ActiveView::ExternalAgentThread { .. } => { unimplemented!() } ActiveView::TextThread { context_editor, .. } => { @@ -3077,7 +3141,7 @@ impl AgentPanel { let mut key_context = KeyContext::new_with_defaults(); key_context.add("AgentPanel"); match &self.active_view { - ActiveView::AcpThread { .. } => key_context.add("acp_thread"), + ActiveView::ExternalAgentThread { .. } => key_context.add("external_agent_thread"), ActiveView::TextThread { .. } => key_context.add("prompt_editor"), ActiveView::Thread { .. } | ActiveView::History | ActiveView::Configuration => {} } @@ -3133,7 +3197,7 @@ impl Render for AgentPanel { }); this.continue_conversation(window, cx); } - ActiveView::AcpThread { .. } => {} + ActiveView::ExternalAgentThread { .. } => {} ActiveView::TextThread { .. } | ActiveView::History | ActiveView::Configuration => {} @@ -3175,7 +3239,7 @@ impl Render for AgentPanel { }) .child(h_flex().child(message_editor.clone())) .child(self.render_drag_target(cx)), - ActiveView::AcpThread { thread_view, .. } => parent + ActiveView::ExternalAgentThread { thread_view, .. } => parent .relative() .child(thread_view.clone()) .child(self.render_drag_target(cx)), diff --git a/crates/agent_ui/src/agent_ui.rs b/crates/agent_ui/src/agent_ui.rs index 3170ec4a26..7f69e8f66e 100644 --- a/crates/agent_ui/src/agent_ui.rs +++ b/crates/agent_ui/src/agent_ui.rs @@ -25,6 +25,7 @@ mod thread_history; mod tool_compatibility; mod ui; +use std::rc::Rc; use std::sync::Arc; use agent::{Thread, ThreadId}; @@ -40,7 +41,7 @@ use language_model::{ }; use prompt_store::PromptBuilder; use schemars::JsonSchema; -use serde::Deserialize; +use serde::{Deserialize, Serialize}; use settings::{Settings as _, SettingsStore}; pub use crate::active_thread::ActiveThread; @@ -57,8 +58,6 @@ actions!( [ /// Creates a new text-based conversation thread. NewTextThread, - /// Creates a new external agent conversation thread. - NewAcpThread, /// Toggles the context picker interface for adding files, symbols, or other context. ToggleContextPicker, /// Toggles the navigation menu for switching between threads and views. @@ -133,6 +132,32 @@ pub struct NewThread { from_thread_id: Option, } +/// Creates a new external agent conversation thread. +#[derive(Default, Clone, PartialEq, Deserialize, JsonSchema, Action)] +#[action(namespace = agent)] +#[serde(deny_unknown_fields)] +pub struct NewExternalAgentThread { + /// Which agent to use for the conversation. + agent: Option, +} + +#[derive(Default, Clone, Copy, PartialEq, Serialize, Deserialize, JsonSchema)] +#[serde(rename_all = "snake_case")] +enum ExternalAgent { + #[default] + Gemini, + ClaudeCode, +} + +impl ExternalAgent { + pub fn server(&self) -> Rc { + match self { + ExternalAgent::Gemini => Rc::new(agent_servers::Gemini), + ExternalAgent::ClaudeCode => Rc::new(agent_servers::ClaudeCode), + } + } +} + /// Opens the profile management interface for configuring agent tools and settings. #[derive(PartialEq, Clone, Default, Debug, Deserialize, JsonSchema, Action)] #[action(namespace = agent)] diff --git a/crates/context_server/Cargo.toml b/crates/context_server/Cargo.toml index 96bb9e071f..5e4f8369c4 100644 --- a/crates/context_server/Cargo.toml +++ b/crates/context_server/Cargo.toml @@ -21,12 +21,14 @@ collections.workspace = true futures.workspace = true gpui.workspace = true log.workspace = true +net.workspace = true parking_lot.workspace = true postage.workspace = true schemars.workspace = true serde.workspace = true serde_json.workspace = true smol.workspace = true +tempfile.workspace = true url = { workspace = true, features = ["serde"] } util.workspace = true workspace-hack.workspace = true diff --git a/crates/context_server/src/client.rs b/crates/context_server/src/client.rs index 83d815432d..6b24d9b136 100644 --- a/crates/context_server/src/client.rs +++ b/crates/context_server/src/client.rs @@ -70,12 +70,12 @@ fn is_null_value(value: &T) -> bool { } #[derive(Serialize, Deserialize)] -struct Request<'a, T> { - jsonrpc: &'static str, - id: RequestId, - method: &'a str, +pub struct Request<'a, T> { + pub jsonrpc: &'static str, + pub id: RequestId, + pub method: &'a str, #[serde(skip_serializing_if = "is_null_value")] - params: T, + pub params: T, } #[derive(Serialize, Deserialize)] @@ -88,18 +88,18 @@ struct AnyResponse<'a> { result: Option<&'a RawValue>, } -#[derive(Deserialize)] +#[derive(Serialize, Deserialize)] #[allow(dead_code)] -struct Response { - jsonrpc: &'static str, - id: RequestId, +pub(crate) struct Response { + pub jsonrpc: &'static str, + pub id: RequestId, #[serde(flatten)] - value: CspResult, + pub value: CspResult, } -#[derive(Deserialize)] +#[derive(Serialize, Deserialize)] #[serde(rename_all = "snake_case")] -enum CspResult { +pub(crate) enum CspResult { #[serde(rename = "result")] Ok(Option), #[allow(dead_code)] @@ -123,8 +123,9 @@ struct AnyNotification<'a> { } #[derive(Debug, Serialize, Deserialize)] -struct Error { - message: String, +pub(crate) struct Error { + pub message: String, + pub code: i32, } #[derive(Debug, Clone, Deserialize)] diff --git a/crates/context_server/src/context_server.rs b/crates/context_server/src/context_server.rs index 905435fcce..807b17f1ca 100644 --- a/crates/context_server/src/context_server.rs +++ b/crates/context_server/src/context_server.rs @@ -1,4 +1,5 @@ pub mod client; +pub mod listener; pub mod protocol; #[cfg(any(test, feature = "test-support"))] pub mod test; diff --git a/crates/context_server/src/listener.rs b/crates/context_server/src/listener.rs new file mode 100644 index 0000000000..9295ad979c --- /dev/null +++ b/crates/context_server/src/listener.rs @@ -0,0 +1,236 @@ +use ::serde::{Deserialize, Serialize}; +use anyhow::{Context as _, Result}; +use collections::HashMap; +use futures::{ + AsyncBufReadExt, AsyncRead, AsyncWrite, AsyncWriteExt, FutureExt, + channel::mpsc::{UnboundedReceiver, UnboundedSender, unbounded}, + io::BufReader, + select_biased, +}; +use gpui::{App, AppContext, AsyncApp, Task}; +use net::async_net::{UnixListener, UnixStream}; +use serde_json::{json, value::RawValue}; +use smol::stream::StreamExt; +use std::{ + cell::RefCell, + path::{Path, PathBuf}, + rc::Rc, +}; +use util::ResultExt; + +use crate::{ + client::{CspResult, RequestId, Response}, + types::Request, +}; + +pub struct McpServer { + socket_path: PathBuf, + handlers: Rc>>, + _server_task: Task<()>, +} + +type McpHandler = Box>, &App) -> Task>; + +impl McpServer { + pub fn new(cx: &AsyncApp) -> Task> { + let task = cx.background_spawn(async move { + let temp_dir = tempfile::Builder::new().prefix("zed-mcp").tempdir()?; + let socket_path = temp_dir.path().join("mcp.sock"); + let listener = UnixListener::bind(&socket_path).context("creating mcp socket")?; + + anyhow::Ok((temp_dir, socket_path, listener)) + }); + + cx.spawn(async move |cx| { + let (temp_dir, socket_path, listener) = task.await?; + let handlers = Rc::new(RefCell::new(HashMap::default())); + let server_task = cx.spawn({ + let handlers = handlers.clone(); + async move |cx| { + while let Ok((stream, _)) = listener.accept().await { + Self::serve_connection(stream, handlers.clone(), cx); + } + drop(temp_dir) + } + }); + Ok(Self { + socket_path, + _server_task: server_task, + handlers: handlers.clone(), + }) + }) + } + + pub fn handle_request( + &mut self, + f: impl Fn(R::Params, &App) -> Task> + 'static, + ) { + let f = Box::new(f); + self.handlers.borrow_mut().insert( + R::METHOD, + Box::new(move |req_id, opt_params, cx| { + let result = match opt_params { + Some(params) => serde_json::from_str(params.get()), + None => serde_json::from_value(serde_json::Value::Null), + }; + + let params: R::Params = match result { + Ok(params) => params, + Err(e) => { + return Task::ready( + serde_json::to_string(&Response:: { + jsonrpc: "2.0", + id: req_id, + value: CspResult::Error(Some(crate::client::Error { + message: format!("{e}"), + code: -32700, + })), + }) + .unwrap(), + ); + } + }; + let task = f(params, cx); + cx.background_spawn(async move { + match task.await { + Ok(result) => serde_json::to_string(&Response { + jsonrpc: "2.0", + id: req_id, + value: CspResult::Ok(Some(result)), + }) + .unwrap(), + Err(e) => serde_json::to_string(&Response { + jsonrpc: "2.0", + id: req_id, + value: CspResult::Error::(Some(crate::client::Error { + message: format!("{e}"), + code: -32603, + })), + }) + .unwrap(), + } + }) + }), + ); + } + + pub fn socket_path(&self) -> &Path { + &self.socket_path + } + + fn serve_connection( + stream: UnixStream, + handlers: Rc>>, + cx: &mut AsyncApp, + ) { + let (read, write) = smol::io::split(stream); + let (incoming_tx, mut incoming_rx) = unbounded(); + let (outgoing_tx, outgoing_rx) = unbounded(); + + cx.background_spawn(Self::handle_io(outgoing_rx, incoming_tx, write, read)) + .detach(); + + cx.spawn(async move |cx| { + while let Some(request) = incoming_rx.next().await { + let Some(request_id) = request.id.clone() else { + continue; + }; + if let Some(handler) = handlers.borrow().get(&request.method.as_ref()) { + let outgoing_tx = outgoing_tx.clone(); + + if let Some(task) = cx + .update(|cx| handler(request_id, request.params, cx)) + .log_err() + { + cx.spawn(async move |_| { + let response = task.await; + outgoing_tx.unbounded_send(response).ok(); + }) + .detach(); + } + } else { + outgoing_tx + .unbounded_send( + serde_json::to_string(&Response::<()> { + jsonrpc: "2.0", + id: request.id.unwrap(), + value: CspResult::Error(Some(crate::client::Error { + message: format!("unhandled method {}", request.method), + code: -32601, + })), + }) + .unwrap(), + ) + .ok(); + } + } + }) + .detach(); + } + + async fn handle_io( + mut outgoing_rx: UnboundedReceiver, + incoming_tx: UnboundedSender, + mut outgoing_bytes: impl Unpin + AsyncWrite, + incoming_bytes: impl Unpin + AsyncRead, + ) -> Result<()> { + let mut output_reader = BufReader::new(incoming_bytes); + let mut incoming_line = String::new(); + loop { + select_biased! { + message = outgoing_rx.next().fuse() => { + if let Some(message) = message { + log::trace!("send: {}", &message); + outgoing_bytes.write_all(message.as_bytes()).await?; + outgoing_bytes.write_all(&[b'\n']).await?; + } else { + break; + } + } + bytes_read = output_reader.read_line(&mut incoming_line).fuse() => { + if bytes_read? == 0 { + break + } + log::trace!("recv: {}", &incoming_line); + match serde_json::from_str(&incoming_line) { + Ok(message) => { + incoming_tx.unbounded_send(message).log_err(); + } + Err(error) => { + outgoing_bytes.write_all(serde_json::to_string(&json!({ + "jsonrpc": "2.0", + "error": json!({ + "code": -32603, + "message": format!("Failed to parse: {error}"), + }), + }))?.as_bytes()).await?; + outgoing_bytes.write_all(&[b'\n']).await?; + log::error!("failed to parse incoming message: {error}. Raw: {incoming_line}"); + } + } + incoming_line.clear(); + } + } + } + Ok(()) + } +} + +#[derive(Serialize, Deserialize)] +struct RawRequest { + #[serde(skip_serializing_if = "Option::is_none")] + id: Option, + method: String, + #[serde(skip_serializing_if = "Option::is_none")] + params: Option>, +} + +#[derive(Serialize, Deserialize)] +struct RawResponse { + jsonrpc: &'static str, + id: RequestId, + #[serde(skip_serializing_if = "Option::is_none")] + error: Option, + #[serde(skip_serializing_if = "Option::is_none")] + result: Option>, +} diff --git a/crates/context_server/src/types.rs b/crates/context_server/src/types.rs index 8e3daf9e22..4a6fdcabd3 100644 --- a/crates/context_server/src/types.rs +++ b/crates/context_server/src/types.rs @@ -153,7 +153,7 @@ pub struct InitializeParams { pub struct CallToolParams { pub name: String, #[serde(skip_serializing_if = "Option::is_none")] - pub arguments: Option>, + pub arguments: Option, #[serde(rename = "_meta", skip_serializing_if = "Option::is_none")] pub meta: Option>, } diff --git a/crates/icons/src/icons.rs b/crates/icons/src/icons.rs index b29a8b78e6..6834d56215 100644 --- a/crates/icons/src/icons.rs +++ b/crates/icons/src/icons.rs @@ -11,6 +11,7 @@ pub enum IconName { Ai, AiAnthropic, AiBedrock, + AiClaude, AiDeepSeek, AiEdit, AiGemini, diff --git a/crates/nc/Cargo.toml b/crates/nc/Cargo.toml new file mode 100644 index 0000000000..46ef2d3c62 --- /dev/null +++ b/crates/nc/Cargo.toml @@ -0,0 +1,20 @@ +[package] +name = "nc" +version = "0.1.0" +edition.workspace = true +publish.workspace = true +license = "GPL-3.0-or-later" + +[lints] +workspace = true + +[lib] +path = "src/nc.rs" +doctest = false + +[dependencies] +anyhow.workspace = true +futures.workspace = true +net.workspace = true +smol.workspace = true +workspace-hack.workspace = true diff --git a/crates/nc/LICENSE-GPL b/crates/nc/LICENSE-GPL new file mode 120000 index 0000000000..89e542f750 --- /dev/null +++ b/crates/nc/LICENSE-GPL @@ -0,0 +1 @@ +../../LICENSE-GPL \ No newline at end of file diff --git a/crates/nc/src/nc.rs b/crates/nc/src/nc.rs new file mode 100644 index 0000000000..fccb4d726c --- /dev/null +++ b/crates/nc/src/nc.rs @@ -0,0 +1,56 @@ +use anyhow::Result; + +#[cfg(windows)] +pub fn main(_socket: &str) -> Result<()> { + // It looks like we can't get an async stdio stream on Windows from smol. + // + // We decided to merge this with a panic on Windows since this is only used + // by the experimental Claude Code Agent Server. + // + // We're tracking this internally, and we will address it before shipping the integration. + panic!("--nc isn't yet supported on Windows"); +} + +/// The main function for when Zed is running in netcat mode +#[cfg(not(windows))] +pub fn main(socket: &str) -> Result<()> { + use futures::{AsyncReadExt as _, AsyncWriteExt as _, FutureExt as _, io::BufReader, select}; + use net::async_net::UnixStream; + use smol::{Async, io::AsyncBufReadExt}; + + smol::block_on(async { + let socket_stream = UnixStream::connect(socket).await?; + let (socket_read, mut socket_write) = socket_stream.split(); + let mut socket_reader = BufReader::new(socket_read); + + let mut stdout = Async::new(std::io::stdout())?; + let stdin = Async::new(std::io::stdin())?; + let mut stdin_reader = BufReader::new(stdin); + + let mut socket_line = Vec::new(); + let mut stdin_line = Vec::new(); + + loop { + select! { + bytes_read = socket_reader.read_until(b'\n', &mut socket_line).fuse() => { + if bytes_read? == 0 { + break + } + stdout.write_all(&socket_line).await?; + stdout.flush().await?; + socket_line.clear(); + } + bytes_read = stdin_reader.read_until(b'\n', &mut stdin_line).fuse() => { + if bytes_read? == 0 { + break + } + socket_write.write_all(&stdin_line).await?; + socket_write.flush().await?; + stdin_line.clear(); + } + } + } + + anyhow::Ok(()) + }) +} diff --git a/crates/zed/Cargo.toml b/crates/zed/Cargo.toml index ae96a48b53..bbceb3f101 100644 --- a/crates/zed/Cargo.toml +++ b/crates/zed/Cargo.toml @@ -95,6 +95,7 @@ svg_preview.workspace = true menu.workspace = true migrator.workspace = true mimalloc = { version = "0.1", optional = true } +nc.workspace = true nix = { workspace = true, features = ["pthread", "signal"] } node_runtime.workspace = true notifications.workspace = true diff --git a/crates/zed/src/main.rs b/crates/zed/src/main.rs index 5eb96f21a4..89b9fad6bf 100644 --- a/crates/zed/src/main.rs +++ b/crates/zed/src/main.rs @@ -175,6 +175,17 @@ pub fn main() { return; } + // `zed --nc` Makes zed operate in nc/netcat mode for use with MCP + if let Some(socket) = &args.nc { + match nc::main(socket) { + Ok(()) => return, + Err(err) => { + eprintln!("Error: {}", err); + process::exit(1); + } + } + } + // `zed --printenv` Outputs environment variables as JSON to stdout if args.printenv { util::shell_env::print_env(); @@ -1168,6 +1179,11 @@ struct Args { #[arg(long, hide = true)] askpass: Option, + /// Used for the MCP Server, to remove the need for netcat as a dependency, + /// by having Zed act like netcat communicating over a Unix socket. + #[arg(long, hide = true)] + nc: Option, + /// Run zed in the foreground, only used on Windows, to match the behavior on macOS. #[arg(long)] #[cfg(target_os = "windows")] From b0eac4267d3f0d69657593dd04fa970e1128b00f Mon Sep 17 00:00:00 2001 From: Ben Brandt Date: Thu, 17 Jul 2025 17:01:02 +0200 Subject: [PATCH 0022/1052] Mark glob/grep as code blocks (#34628) Release Notes: - N/A --- crates/agent_servers/src/claude/tools.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/agent_servers/src/claude/tools.rs b/crates/agent_servers/src/claude/tools.rs index 89d42c0daa..e3ac6c14e2 100644 --- a/crates/agent_servers/src/claude/tools.rs +++ b/crates/agent_servers/src/claude/tools.rs @@ -97,10 +97,10 @@ impl ClaudeTool { } Self::Write(None) => "Write".into(), Self::Glob(Some(params)) => { - format!("Glob {params}") + format!("Glob `{params}`") } Self::Glob(None) => "Glob".into(), - Self::Grep(Some(params)) => params.to_string(), + Self::Grep(Some(params)) => format!("`{params}`"), Self::Grep(None) => "Grep".into(), Self::WebFetch(Some(params)) => format!("Fetch {}", params.url), Self::WebFetch(None) => "Fetch".into(), From 948c1f22bb67152306b137dd8c4b31c5bbad076b Mon Sep 17 00:00:00 2001 From: Ben Kunkle Date: Thu, 17 Jul 2025 10:10:07 -0500 Subject: [PATCH 0023/1052] keymap_ui: Improve keybind display in menus (#34587) Closes #ISSUE Defines keybindings for `keymap_editor::EditBinding` and `keymap_editor::CreateBinding`, making sure those actions are used in tooltips. Release Notes: - N/A *or* Added/Fixed/Improved ... --------- Co-authored-by: Finn --- assets/keymaps/default-linux.json | 4 +- assets/keymaps/default-macos.json | 4 +- crates/settings_ui/src/keybindings.rs | 118 +++++++++++++---------- crates/ui/src/components/context_menu.rs | 6 +- 4 files changed, 75 insertions(+), 57 deletions(-) diff --git a/assets/keymaps/default-linux.json b/assets/keymaps/default-linux.json index b52b6c614d..ebc88ec135 100644 --- a/assets/keymaps/default-linux.json +++ b/assets/keymaps/default-linux.json @@ -1118,7 +1118,9 @@ "ctrl-f": "search::FocusSearch", "alt-find": "keymap_editor::ToggleKeystrokeSearch", "alt-ctrl-f": "keymap_editor::ToggleKeystrokeSearch", - "alt-c": "keymap_editor::ToggleConflictFilter" + "alt-c": "keymap_editor::ToggleConflictFilter", + "enter": "keymap_editor::EditBinding", + "alt-enter": "keymap_editor::CreateBinding" } }, { diff --git a/assets/keymaps/default-macos.json b/assets/keymaps/default-macos.json index 240b42fd1f..cec485ce88 100644 --- a/assets/keymaps/default-macos.json +++ b/assets/keymaps/default-macos.json @@ -1217,7 +1217,9 @@ "use_key_equivalents": true, "bindings": { "cmd-alt-f": "keymap_editor::ToggleKeystrokeSearch", - "cmd-alt-c": "keymap_editor::ToggleConflictFilter" + "cmd-alt-c": "keymap_editor::ToggleConflictFilter", + "enter": "keymap_editor::EditBinding", + "alt-enter": "keymap_editor::CreateBinding" } }, { diff --git a/crates/settings_ui/src/keybindings.rs b/crates/settings_ui/src/keybindings.rs index 21eec538b3..6b438ede02 100644 --- a/crates/settings_ui/src/keybindings.rs +++ b/crates/settings_ui/src/keybindings.rs @@ -683,7 +683,7 @@ impl KeymapEditor { .detach_and_log_err(cx); } - fn dispatch_context(&self, _window: &Window, _cx: &Context) -> KeyContext { + fn key_context(&self) -> KeyContext { let mut dispatch_context = KeyContext::new_with_defaults(); dispatch_context.add("KeymapEditor"); dispatch_context.add("menu"); @@ -718,14 +718,19 @@ impl KeymapEditor { self.selected_index.take(); } - fn selected_keybind_idx(&self) -> Option { + fn selected_keybind_index(&self) -> Option { self.selected_index .and_then(|match_index| self.matches.get(match_index)) .map(|r#match| r#match.candidate_id) } + fn selected_keybind_and_index(&self) -> Option<(&ProcessedKeybinding, usize)> { + self.selected_keybind_index() + .map(|keybind_index| (&self.keybindings[keybind_index], keybind_index)) + } + fn selected_binding(&self) -> Option<&ProcessedKeybinding> { - self.selected_keybind_idx() + self.selected_keybind_index() .and_then(|keybind_index| self.keybindings.get(keybind_index)) } @@ -757,40 +762,41 @@ impl KeymapEditor { let selected_binding_is_unbound = selected_binding.keystrokes().is_none(); let context_menu = ContextMenu::build(window, cx, |menu, _window, _cx| { - menu.action_disabled_when( - selected_binding_is_unbound, - "Edit", - Box::new(EditBinding), - ) - .action("Create", Box::new(CreateBinding)) - .action_disabled_when( - selected_binding_is_unbound, - "Delete", - Box::new(DeleteBinding), - ) - .separator() - .action("Copy Action", Box::new(CopyAction)) - .action_disabled_when( - selected_binding_has_no_context, - "Copy Context", - Box::new(CopyContext), - ) - .entry("Show matching keybindings", None, { - let weak = weak.clone(); - let key_strokes = key_strokes.clone(); + menu.context(self.focus_handle.clone()) + .action_disabled_when( + selected_binding_is_unbound, + "Edit", + Box::new(EditBinding), + ) + .action("Create", Box::new(CreateBinding)) + .action_disabled_when( + selected_binding_is_unbound, + "Delete", + Box::new(DeleteBinding), + ) + .separator() + .action("Copy Action", Box::new(CopyAction)) + .action_disabled_when( + selected_binding_has_no_context, + "Copy Context", + Box::new(CopyContext), + ) + .entry("Show matching keybindings", None, { + let weak = weak.clone(); + let key_strokes = key_strokes.clone(); - move |_, cx| { - weak.update(cx, |this, cx| { - this.filter_state = FilterState::All; - this.search_mode = SearchMode::KeyStroke { exact_match: true }; + move |_, cx| { + weak.update(cx, |this, cx| { + this.filter_state = FilterState::All; + this.search_mode = SearchMode::KeyStroke { exact_match: true }; - this.keystroke_editor.update(cx, |editor, cx| { - editor.set_keystrokes(key_strokes.clone(), cx); - }); - }) - .ok(); - } - }) + this.keystroke_editor.update(cx, |editor, cx| { + editor.set_keystrokes(key_strokes.clone(), cx); + }); + }) + .ok(); + } + }) }); let context_menu_handle = context_menu.focus_handle(cx); @@ -880,22 +886,16 @@ impl KeymapEditor { } } - fn confirm(&mut self, _: &menu::Confirm, window: &mut Window, cx: &mut Context) { - self.open_edit_keybinding_modal(false, window, cx); - } - fn open_edit_keybinding_modal( &mut self, create: bool, window: &mut Window, cx: &mut Context, ) { - let Some((keybind_idx, keybind)) = self - .selected_keybind_idx() - .zip(self.selected_binding().cloned()) - else { + let Some((keybind, keybind_index)) = self.selected_keybind_and_index() else { return; }; + let keybind = keybind.clone(); let keymap_editor = cx.entity(); let arguments = keybind @@ -925,7 +925,7 @@ impl KeymapEditor { let modal = KeybindingEditorModal::new( create, keybind, - keybind_idx, + keybind_index, keymap_editor, workspace_weak, fs, @@ -1142,20 +1142,19 @@ impl Item for KeymapEditor { } impl Render for KeymapEditor { - fn render(&mut self, window: &mut Window, cx: &mut ui::Context) -> impl ui::IntoElement { + fn render(&mut self, _window: &mut Window, cx: &mut ui::Context) -> impl ui::IntoElement { let row_count = self.matches.len(); let theme = cx.theme(); v_flex() .id("keymap-editor") .track_focus(&self.focus_handle) - .key_context(self.dispatch_context(window, cx)) + .key_context(self.key_context()) .on_action(cx.listener(Self::select_next)) .on_action(cx.listener(Self::select_previous)) .on_action(cx.listener(Self::select_first)) .on_action(cx.listener(Self::select_last)) .on_action(cx.listener(Self::focus_search)) - .on_action(cx.listener(Self::confirm)) .on_action(cx.listener(Self::edit_binding)) .on_action(cx.listener(Self::create_binding)) .on_action(cx.listener(Self::delete_binding)) @@ -1269,6 +1268,18 @@ impl Render for KeymapEditor { "keystrokes-exact-match", IconName::Equal, ) + .tooltip(move |window, cx| { + Tooltip::for_action( + if exact_match { + "Partial match mode" + } else { + "Exact match mode" + }, + &ToggleExactKeystrokeMatching, + window, + cx, + ) + }) .shape(IconButtonShape::Square) .toggle_state(exact_match) .on_click( @@ -1316,9 +1327,9 @@ impl Render for KeymapEditor { .icon_color(Color::Warning) .tooltip(|window, cx| { Tooltip::with_meta( - "Edit Keybinding", - None, - "Use alt+click to show conflicts", + "View conflicts", + Some(&ToggleConflictFilter), + "Use alt+click to show all conflicts", window, cx, ) @@ -1343,7 +1354,10 @@ impl Render for KeymapEditor { .unwrap_or_else(|| { base_button_style(index, IconName::Pencil) .visible_on_hover(row_group_id(index)) - .tooltip(Tooltip::text("Edit Keybinding")) + .tooltip(Tooltip::for_action_title( + "Edit Keybinding", + &EditBinding, + )) .on_click(cx.listener(move |this, _, window, cx| { this.select_index(index, cx); this.open_edit_keybinding_modal(false, window, cx); @@ -2545,6 +2559,8 @@ impl KeystrokeInput { if self.keystrokes.len() < Self::KEYSTROKE_COUNT_MAX { self.keystrokes.push(Self::dummy(keystroke.modifiers)); } + } else if close_keystroke_result != CloseKeystrokeResult::Partial { + self.clear_keystrokes(&ClearKeystrokes, window, cx); } } self.keystrokes_changed(cx); diff --git a/crates/ui/src/components/context_menu.rs b/crates/ui/src/components/context_menu.rs index 3ba73f6dff..467dd226fb 100644 --- a/crates/ui/src/components/context_menu.rs +++ b/crates/ui/src/components/context_menu.rs @@ -972,12 +972,10 @@ impl ContextMenu { .children(action.as_ref().and_then(|action| { self.action_context .as_ref() - .map(|focus| { + .and_then(|focus| { KeyBinding::for_action_in(&**action, focus, window, cx) }) - .unwrap_or_else(|| { - KeyBinding::for_action(&**action, window, cx) - }) + .or_else(|| KeyBinding::for_action(&**action, window, cx)) .map(|binding| { div().ml_4().child(binding.disabled(*disabled)).when( *disabled && documentation_aside.is_some(), From b94649ce1eca2a524852eeda0d955468158f54f2 Mon Sep 17 00:00:00 2001 From: Ben Kunkle Date: Thu, 17 Jul 2025 10:34:34 -0500 Subject: [PATCH 0024/1052] keymap_ui: Show edit icon on hovered and selected row (#34630) Closes #ISSUE Improves the behavior of the edit icon in the far left column of the keymap UI table. It is now shown in both the selected and the hovered row as an indicator that the row is editable in this configuration. When hovered a row can be double clicked or the edit icon can be clicked, and when selected it can be edited via keyboard shortcuts. Additionally, the edit icon and all other hover tooltips will now disappear when the table is navigated via keyboard shortcuts.
Video https://github.com/user-attachments/assets/6584810f-4c6d-4e6f-bdca-25b16c920cfc
Release Notes: - N/A *or* Added/Fixed/Improved ... --- crates/settings_ui/src/keybindings.rs | 98 ++++++++++++++++++--------- 1 file changed, 65 insertions(+), 33 deletions(-) diff --git a/crates/settings_ui/src/keybindings.rs b/crates/settings_ui/src/keybindings.rs index 6b438ede02..af096f4ce1 100644 --- a/crates/settings_ui/src/keybindings.rs +++ b/crates/settings_ui/src/keybindings.rs @@ -268,6 +268,7 @@ struct KeymapEditor { context_menu: Option<(Entity, Point, Subscription)>, previous_edit: Option, humanized_action_names: HashMap<&'static str, SharedString>, + show_hover_menus: bool, } enum PreviousEdit { @@ -357,6 +358,7 @@ impl KeymapEditor { previous_edit: None, humanized_action_names, search_query_debounce: None, + show_hover_menus: true, }; this.on_keymap_changed(cx); @@ -825,6 +827,7 @@ impl KeymapEditor { } fn select_next(&mut self, _: &menu::SelectNext, window: &mut Window, cx: &mut Context) { + self.show_hover_menus = false; if let Some(selected) = self.selected_index { let selected = selected + 1; if selected >= self.matches.len() { @@ -845,6 +848,7 @@ impl KeymapEditor { window: &mut Window, cx: &mut Context, ) { + self.show_hover_menus = false; if let Some(selected) = self.selected_index { if selected == 0 { return; @@ -870,6 +874,7 @@ impl KeymapEditor { _window: &mut Window, cx: &mut Context, ) { + self.show_hover_menus = false; if self.matches.get(0).is_some() { self.selected_index = Some(0); self.scroll_to_item(0, ScrollStrategy::Center, cx); @@ -878,6 +883,7 @@ impl KeymapEditor { } fn select_last(&mut self, _: &menu::SelectLast, _window: &mut Window, cx: &mut Context) { + self.show_hover_menus = false; if self.matches.last().is_some() { let index = self.matches.len() - 1; self.selected_index = Some(index); @@ -892,6 +898,7 @@ impl KeymapEditor { window: &mut Window, cx: &mut Context, ) { + self.show_hover_menus = false; let Some((keybind, keybind_index)) = self.selected_keybind_and_index() else { return; }; @@ -1167,6 +1174,9 @@ impl Render for KeymapEditor { .p_2() .gap_1() .bg(theme.colors().editor_background) + .on_mouse_move(cx.listener(|this, _, _window, _cx| { + this.show_hover_menus = true; + })) .child( v_flex() .p_2() @@ -1320,9 +1330,9 @@ impl Render for KeymapEditor { let binding = &this.keybindings[candidate_id]; let action_name = binding.action_name; - let icon = (this.filter_state != FilterState::Conflicts - && this.has_conflict(index)) - .then(|| { + let icon = if this.filter_state != FilterState::Conflicts + && this.has_conflict(index) + { base_button_style(index, IconName::Warning) .icon_color(Color::Warning) .tooltip(|window, cx| { @@ -1350,21 +1360,34 @@ impl Render for KeymapEditor { } }, )) - }) - .unwrap_or_else(|| { + .into_any_element() + } else { base_button_style(index, IconName::Pencil) - .visible_on_hover(row_group_id(index)) - .tooltip(Tooltip::for_action_title( - "Edit Keybinding", - &EditBinding, - )) + .visible_on_hover( + if this.selected_index == Some(index) { + "".into() + } else if this.show_hover_menus { + row_group_id(index) + } else { + "never-show".into() + }, + ) + .when( + this.show_hover_menus && !context_menu_deployed, + |this| { + this.tooltip(Tooltip::for_action_title( + "Edit Keybinding", + &EditBinding, + )) + }, + ) .on_click(cx.listener(move |this, _, window, cx| { this.select_index(index, cx); this.open_edit_keybinding_modal(false, window, cx); cx.stop_propagation(); })) - }) - .into_any_element(); + .into_any_element() + }; let action = div() .id(("keymap action", index)) @@ -1382,20 +1405,24 @@ impl Render for KeymapEditor { .into_any_element() } }) - .when(!context_menu_deployed, |this| { - this.tooltip({ - let action_name = binding.action_name; - let action_docs = binding.action_docs; - move |_, cx| { - let action_tooltip = Tooltip::new(action_name); - let action_tooltip = match action_docs { - Some(docs) => action_tooltip.meta(docs), - None => action_tooltip, - }; - cx.new(|_| action_tooltip).into() - } - }) - }) + .when( + !context_menu_deployed && this.show_hover_menus, + |this| { + this.tooltip({ + let action_name = binding.action_name; + let action_docs = binding.action_docs; + move |_, cx| { + let action_tooltip = + Tooltip::new(action_name); + let action_tooltip = match action_docs { + Some(docs) => action_tooltip.meta(docs), + None => action_tooltip, + }; + cx.new(|_| action_tooltip).into() + } + }) + }, + ) .into_any_element(); let keystrokes = binding.ui_key_binding.clone().map_or( binding.keystroke_text.clone().into_any_element(), @@ -1420,13 +1447,18 @@ impl Render for KeymapEditor { div() .id(("keymap context", index)) .child(context.clone()) - .when(is_local && !context_menu_deployed, |this| { - this.tooltip(Tooltip::element({ - move |_, _| { - context.clone().into_any_element() - } - })) - }) + .when( + is_local + && !context_menu_deployed + && this.show_hover_menus, + |this| { + this.tooltip(Tooltip::element({ + move |_, _| { + context.clone().into_any_element() + } + })) + }, + ) .into_any_element() }, ); From b4dc7f8a8aadd0a2f12650a0d393f7f9ae3ed29a Mon Sep 17 00:00:00 2001 From: Umesh Yadav <23421535+imumesh18@users.noreply.github.com> Date: Thu, 17 Jul 2025 21:14:40 +0530 Subject: [PATCH 0025/1052] debugger: Add support for running test methods with function receiver in Go (#34613) ![CleanShot 2025-07-17 at 16 35 10](https://github.com/user-attachments/assets/bad794fb-198e-40a1-958c-6ff30a0a4e53) Closes #33759 Release Notes: - debugger: Add support for running test methods with function receiver in Go Signed-off-by: Umesh Yadav --- crates/languages/src/go/runnables.scm | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/crates/languages/src/go/runnables.scm b/crates/languages/src/go/runnables.scm index 8d5f4375c1..bdeb77b46c 100644 --- a/crates/languages/src/go/runnables.scm +++ b/crates/languages/src/go/runnables.scm @@ -1,9 +1,21 @@ ; Functions names start with `Test` ( - ( + [ (function_declaration name: (_) @run (#match? @run "^Test.*")) - ) @_ + (method_declaration + receiver: (parameter_list + (parameter_declaration + name: (identifier) @_receiver_name + type: [ + (pointer_type (type_identifier) @_receiver_type) + (type_identifier) @_receiver_type + ] + ) + ) + name: (field_identifier) @run @_method_name + (#match? @_method_name "^Test.*")) + ] @_ (#set! tag go-test) ) From 8980526a859cc7ee3d9b120a6df6f966c8fef165 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Thu, 17 Jul 2025 17:58:54 +0200 Subject: [PATCH 0026/1052] chore: Bump lsp-types rev (#34345) Closes #ISSUE Release Notes: - N/A --- Cargo.lock | 2 +- Cargo.toml | 2 +- crates/lsp/src/lsp.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 540e3039ef..ea7bfa0a38 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9704,7 +9704,7 @@ dependencies = [ [[package]] name = "lsp-types" version = "0.95.1" -source = "git+https://github.com/zed-industries/lsp-types?rev=6add7052b598ea1f40f7e8913622c3958b009b60#6add7052b598ea1f40f7e8913622c3958b009b60" +source = "git+https://github.com/zed-industries/lsp-types?rev=39f629bdd03d59abd786ed9fc27e8bca02c0c0ec#39f629bdd03d59abd786ed9fc27e8bca02c0c0ec" dependencies = [ "bitflags 1.3.2", "serde", diff --git a/Cargo.toml b/Cargo.toml index 1c79f4c1c8..1be2eb8d77 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -496,7 +496,7 @@ libc = "0.2" libsqlite3-sys = { version = "0.30.1", features = ["bundled"] } linkify = "0.10.0" log = { version = "0.4.16", features = ["kv_unstable_serde", "serde"] } -lsp-types = { git = "https://github.com/zed-industries/lsp-types", rev = "6add7052b598ea1f40f7e8913622c3958b009b60" } +lsp-types = { git = "https://github.com/zed-industries/lsp-types", rev = "39f629bdd03d59abd786ed9fc27e8bca02c0c0ec" } markup5ever_rcdom = "0.3.0" metal = "0.29" moka = { version = "0.12.10", features = ["sync"] } diff --git a/crates/lsp/src/lsp.rs b/crates/lsp/src/lsp.rs index 4248f910ee..7dcfa61f47 100644 --- a/crates/lsp/src/lsp.rs +++ b/crates/lsp/src/lsp.rs @@ -633,7 +633,7 @@ impl LanguageServer { inlay_hint: Some(InlayHintWorkspaceClientCapabilities { refresh_support: Some(true), }), - diagnostic: Some(DiagnosticWorkspaceClientCapabilities { + diagnostics: Some(DiagnosticWorkspaceClientCapabilities { refresh_support: Some(true), }) .filter(|_| pull_diagnostics), From ae0d4f6a0d58397355896fde3b01b0e3d6a50fd3 Mon Sep 17 00:00:00 2001 From: Anthony Eid <56899983+Anthony-Eid@users.noreply.github.com> Date: Thu, 17 Jul 2025 13:05:58 -0400 Subject: [PATCH 0027/1052] debugger: Add data breakpoint access type support (#34639) Release Notes: - Support specifying a data breakpoint's access type - Read, Write, Read & Write --- Cargo.lock | 1 + crates/debugger_ui/Cargo.toml | 13 ++-- crates/debugger_ui/src/debugger_ui.rs | 20 +++++- .../src/session/running/memory_view.rs | 2 +- .../src/session/running/variable_list.rs | 61 ++++++++++++++++--- 5 files changed, 77 insertions(+), 20 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ea7bfa0a38..a8a8d12e37 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4427,6 +4427,7 @@ dependencies = [ "pretty_assertions", "project", "rpc", + "schemars", "serde", "serde_json", "serde_json_lenient", diff --git a/crates/debugger_ui/Cargo.toml b/crates/debugger_ui/Cargo.toml index ebb135c1d9..df4125860f 100644 --- a/crates/debugger_ui/Cargo.toml +++ b/crates/debugger_ui/Cargo.toml @@ -35,6 +35,7 @@ command_palette_hooks.workspace = true dap.workspace = true dap_adapters = { workspace = true, optional = true } db.workspace = true +debugger_tools.workspace = true editor.workspace = true file_icons.workspace = true futures.workspace = true @@ -54,6 +55,7 @@ picker.workspace = true pretty_assertions.workspace = true project.workspace = true rpc.workspace = true +schemars.workspace = true serde.workspace = true serde_json.workspace = true serde_json_lenient.workspace = true @@ -66,14 +68,13 @@ telemetry.workspace = true terminal_view.workspace = true text.workspace = true theme.workspace = true -tree-sitter.workspace = true tree-sitter-json.workspace = true +tree-sitter.workspace = true ui.workspace = true -util.workspace = true -workspace.workspace = true -workspace-hack.workspace = true -debugger_tools.workspace = true unindent = { workspace = true, optional = true } +util.workspace = true +workspace-hack.workspace = true +workspace.workspace = true zed_actions.workspace = true [dev-dependencies] @@ -83,8 +84,8 @@ debugger_tools = { workspace = true, features = ["test-support"] } editor = { workspace = true, features = ["test-support"] } gpui = { workspace = true, features = ["test-support"] } project = { workspace = true, features = ["test-support"] } +tree-sitter-go.workspace = true unindent.workspace = true util = { workspace = true, features = ["test-support"] } workspace = { workspace = true, features = ["test-support"] } zlog.workspace = true -tree-sitter-go.workspace = true diff --git a/crates/debugger_ui/src/debugger_ui.rs b/crates/debugger_ui/src/debugger_ui.rs index c932f1b600..9eac59af83 100644 --- a/crates/debugger_ui/src/debugger_ui.rs +++ b/crates/debugger_ui/src/debugger_ui.rs @@ -3,10 +3,12 @@ use std::any::TypeId; use dap::debugger_settings::DebuggerSettings; use debugger_panel::DebugPanel; use editor::Editor; -use gpui::{App, DispatchPhase, EntityInputHandler, actions}; +use gpui::{Action, App, DispatchPhase, EntityInputHandler, actions}; use new_process_modal::{NewProcessModal, NewProcessMode}; use onboarding_modal::DebuggerOnboardingModal; use project::debugger::{self, breakpoint_store::SourceBreakpoint, session::ThreadStatus}; +use schemars::JsonSchema; +use serde::Deserialize; use session::DebugSession; use settings::Settings; use stack_trace_view::StackTraceView; @@ -83,11 +85,23 @@ actions!( Rerun, /// Toggles expansion of the selected item in the debugger UI. ToggleExpandItem, - /// Set a data breakpoint on the selected variable or memory region. - ToggleDataBreakpoint, ] ); +/// Extends selection down by a specified number of lines. +#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)] +#[action(namespace = debugger)] +#[serde(deny_unknown_fields)] +/// Set a data breakpoint on the selected variable or memory region. +pub struct ToggleDataBreakpoint { + /// The type of data breakpoint + /// Read & Write + /// Read + /// Write + #[serde(default)] + pub access_type: Option, +} + actions!( dev, [ diff --git a/crates/debugger_ui/src/session/running/memory_view.rs b/crates/debugger_ui/src/session/running/memory_view.rs index 499091ca0f..7b62a1d55d 100644 --- a/crates/debugger_ui/src/session/running/memory_view.rs +++ b/crates/debugger_ui/src/session/running/memory_view.rs @@ -688,7 +688,7 @@ impl MemoryView { menu = menu.action_disabled_when( *memory_unreadable, "Set Data Breakpoint", - ToggleDataBreakpoint.boxed_clone(), + ToggleDataBreakpoint { access_type: None }.boxed_clone(), ); } menu.context(self.focus_handle.clone()) diff --git a/crates/debugger_ui/src/session/running/variable_list.rs b/crates/debugger_ui/src/session/running/variable_list.rs index b158314b50..906e482687 100644 --- a/crates/debugger_ui/src/session/running/variable_list.rs +++ b/crates/debugger_ui/src/session/running/variable_list.rs @@ -670,9 +670,9 @@ impl VariableList { let focus_handle = self.focus_handle.clone(); cx.spawn_in(window, async move |this, cx| { let can_toggle_data_breakpoint = if let Some(task) = can_toggle_data_breakpoint { - task.await.is_some() + task.await } else { - true + None }; cx.update(|window, cx| { let context_menu = ContextMenu::build(window, cx, |menu, _, _| { @@ -686,11 +686,35 @@ impl VariableList { menu.action("Go To Memory", GoToMemory.boxed_clone()) }) .action("Watch Variable", AddWatch.boxed_clone()) - .when(can_toggle_data_breakpoint, |menu| { - menu.action( - "Toggle Data Breakpoint", - crate::ToggleDataBreakpoint.boxed_clone(), - ) + .when_some(can_toggle_data_breakpoint, |mut menu, data_info| { + menu = menu.separator(); + if let Some(access_types) = data_info.access_types { + for access in access_types { + menu = menu.action( + format!( + "Toggle {} Data Breakpoint", + match access { + dap::DataBreakpointAccessType::Read => "Read", + dap::DataBreakpointAccessType::Write => "Write", + dap::DataBreakpointAccessType::ReadWrite => + "Read/Write", + } + ), + crate::ToggleDataBreakpoint { + access_type: Some(access), + } + .boxed_clone(), + ); + } + + menu + } else { + menu.action( + "Toggle Data Breakpoint", + crate::ToggleDataBreakpoint { access_type: None } + .boxed_clone(), + ) + } }) }) .when(entry.as_watcher().is_some(), |menu| { @@ -729,7 +753,7 @@ impl VariableList { fn toggle_data_breakpoint( &mut self, - _: &crate::ToggleDataBreakpoint, + data_info: &crate::ToggleDataBreakpoint, _window: &mut Window, cx: &mut Context, ) { @@ -759,17 +783,34 @@ impl VariableList { }); let session = self.session.downgrade(); + let access_type = data_info.access_type; cx.spawn(async move |_, cx| { - let Some(data_id) = data_breakpoint.await.and_then(|info| info.data_id) else { + let Some((data_id, access_types)) = data_breakpoint + .await + .and_then(|info| Some((info.data_id?, info.access_types))) + else { return; }; + + // Because user's can manually add this action to the keymap + // we check if access type is supported + let access_type = match access_types { + None => None, + Some(access_types) => { + if access_type.is_some_and(|access_type| access_types.contains(&access_type)) { + access_type + } else { + None + } + } + }; _ = session.update(cx, |session, cx| { session.create_data_breakpoint( context, data_id.clone(), dap::DataBreakpoint { data_id, - access_type: None, + access_type, condition: None, hit_condition: None, }, From 1ceda2babd71a07049dfce85dc64efe779bb5935 Mon Sep 17 00:00:00 2001 From: Peter Tripp Date: Thu, 17 Jul 2025 13:14:24 -0400 Subject: [PATCH 0028/1052] JetBrains keymap improvements (July 2025) (#34641) Closes: https://github.com/zed-industries/zed/issues/14639 Closes: https://github.com/zed-industries/zed/issues/33020 If would have ideas for future enhancements, please see: - https://github.com/zed-industries/zed/discussions/34643 Various Jetbrains keymaps improvements for macOS and Linux/Windows: | Area | Action | macOS | Linux | | ------------- | -------------------------- | --------------------------------- | --------------------------------- | | Workspace | Toggle Git Panel | `cmd-0` | `ctrl-0` | | Workspace | Toggle Project Panel | `cmd-1` | `alt-0` | | Workspace | Toggle Debug Panel | `cmd-5` | `alt-1` | | Workspace | Toggle Diagnostics | `cmd-6` | `alt-6` | | Workspace | Toggle Outline Panel | `cmd-7` | `alt-7` | | Workspace | Toggle Terminal Panel | `alt-f12` | `alt-f12` | | Workspace | File Finder | `cmd-e` | `ctrl-e` | | Workspace | Task Spawn | `ctrl-alt-r` | `alt-shift-f10` | | Workspace | Close All Docks | `ctrl-shift-f12` | `ctrl-shift-f12` | | Project Panel | Search in Directory | `cmd-shift-f` | `ctrl-shift-f` | | Search | Replace in Files | `cmd-shift-r` | `ctrl-shift-r` | | Search | Replace in Buffer | `cmd-r` | `ctrl-r` | | Search | Toggle Case Sensitive | `ctrl-alt-c` / `alt-c` | `ctrl-alt-c` | | Search | Toggle Search in Selection | `ctrl-alt-s` / `alt-s` | `ctrl-alt-s` | | Search | Toggle Regex | `ctrl-alt-x` / `alt-x` | `ctrl-alt-x` | | Search | Toggle Whole Word | `ctrl-alt-w` / `alt-w` | `ctrl-alt-w` | | Terminal | New Terminal Tab | `cmd-t` | `ctrl-shift-t` | | Terminal | Scroll Line | `cmd-up` / `cmd-down` | `ctrl-up` / `ctrl-down` | | Terminal | Scroll Page | `shift-pageup` / `shift-pagedown` | `shift-pageup` / `shift-pagedown` | | Git | Git Panel | `cmd-k` | `ctrl-k` | | Git | Git Push | `cmd-shift-k` | `ctrl-shift-k` | In addition, with the help of the recently merged https://github.com/zed-industries/zed/pull/34495, no matter where you are mashing `escape` will refocus you back to your most recent editor buffer similar to the behavior of JetBrains. Release Notes: - jetbrains: Added 25+ keybinds to the macOS and Linux/Windows JetBrains compatibility keymaps --- assets/keymaps/linux/jetbrains.json | 53 +++++++++++++++++++++++++++-- assets/keymaps/macos/jetbrains.json | 53 ++++++++++++++++++++++++++--- 2 files changed, 98 insertions(+), 8 deletions(-) diff --git a/assets/keymaps/linux/jetbrains.json b/assets/keymaps/linux/jetbrains.json index dbf50b0fce..7266318a9e 100644 --- a/assets/keymaps/linux/jetbrains.json +++ b/assets/keymaps/linux/jetbrains.json @@ -66,22 +66,46 @@ "context": "Editor && mode == full", "bindings": { "ctrl-f12": "outline::Toggle", - "alt-7": "outline::Toggle", + "ctrl-r": ["buffer_search::Deploy", { "replace_enabled": true }], "ctrl-shift-n": "file_finder::Toggle", "ctrl-g": "go_to_line::Toggle", "alt-enter": "editor::ToggleCodeActions" } }, + { + "context": "BufferSearchBar || ProjectSearchBar", + "bindings": { + "shift-enter": "search::SelectPreviousMatch", + "ctrl-alt-c": "search::ToggleCaseSensitive", + "ctrl-alt-e": "search::ToggleSelection", + "ctrl-alt-w": "search::ToggleWholeWord", + "ctrl-alt-x": "search::ToggleRegex" + } + }, { "context": "Workspace", "bindings": { + "ctrl-shift-f12": "workspace::CloseAllDocks", + "ctrl-shift-r": ["pane::DeploySearch", { "replace_enabled": true }], + "alt-shift-f10": "task::Spawn", + "ctrl-e": "file_finder::Toggle", + "ctrl-k": "git_panel::ToggleFocus", // bug: This should also focus commit editor "ctrl-shift-n": "file_finder::Toggle", "ctrl-shift-a": "command_palette::Toggle", "shift shift": "command_palette::Toggle", "ctrl-alt-shift-n": "project_symbols::Toggle", + "alt-0": "git_panel::ToggleFocus", "alt-1": "workspace::ToggleLeftDock", - "ctrl-e": "tab_switcher::Toggle", - "alt-6": "diagnostics::Deploy" + "alt-5": "debug_panel::ToggleFocus", + "alt-6": "diagnostics::Deploy", + "alt-7": "outline_panel::ToggleFocus" + } + }, + { + "context": "Workspace || Editor", + "bindings": { + "alt-f12": "terminal_panel::ToggleFocus", + "ctrl-shift-k": "git::Push" } }, { @@ -95,10 +119,33 @@ "context": "ProjectPanel", "bindings": { "enter": "project_panel::Open", + "ctrl-shift-f": "project_panel::NewSearchInDirectory", "backspace": ["project_panel::Trash", { "skip_prompt": false }], "delete": ["project_panel::Trash", { "skip_prompt": false }], "shift-delete": ["project_panel::Delete", { "skip_prompt": false }], "shift-f6": "project_panel::Rename" } + }, + { + "context": "Terminal", + "bindings": { + "ctrl-shift-t": "workspace::NewTerminal", + "alt-f12": "workspace::CloseActiveDock", + "alt-left": "pane::ActivatePreviousItem", + "alt-right": "pane::ActivateNextItem", + "ctrl-up": "terminal::ScrollLineUp", + "ctrl-down": "terminal::ScrollLineDown", + "shift-pageup": "terminal::ScrollPageUp", + "shift-pagedown": "terminal::ScrollPageDown" + } + }, + { "context": "GitPanel", "bindings": { "alt-0": "workspace::CloseActiveDock" } }, + { "context": "ProjectPanel", "bindings": { "alt-1": "workspace::CloseActiveDock" } }, + { "context": "DebugPanel", "bindings": { "alt-5": "workspace::CloseActiveDock" } }, + { "context": "Diagnostics > Editor", "bindings": { "alt-6": "pane::CloseActiveItem" } }, + { "context": "OutlinePanel", "bindings": { "alt-7": "workspace::CloseActiveDock" } }, + { + "context": "Dock || Workspace || Terminal || OutlinePanel || ProjectPanel || CollabPanel || (Editor && mode == auto_height)", + "bindings": { "escape": "editor::ToggleFocus" } } ] diff --git a/assets/keymaps/macos/jetbrains.json b/assets/keymaps/macos/jetbrains.json index 22c6f18383..a41e39932f 100644 --- a/assets/keymaps/macos/jetbrains.json +++ b/assets/keymaps/macos/jetbrains.json @@ -3,6 +3,7 @@ "bindings": { "cmd-{": "pane::ActivatePreviousItem", "cmd-}": "pane::ActivateNextItem", + "cmd-0": "git_panel::ToggleFocus", // overrides `cmd-0` zoom reset "ctrl-f2": "debugger::Stop", "f6": "debugger::Pause", "f7": "debugger::StepInto", @@ -63,28 +64,50 @@ "context": "Editor && mode == full", "bindings": { "cmd-f12": "outline::Toggle", - "cmd-7": "outline::Toggle", + "cmd-r": ["buffer_search::Deploy", { "replace_enabled": true }], "cmd-shift-o": "file_finder::Toggle", "cmd-l": "go_to_line::Toggle", "alt-enter": "editor::ToggleCodeActions" } }, { - "context": "BufferSearchBar > Editor", + "context": "BufferSearchBar || ProjectSearchBar", "bindings": { - "shift-enter": "search::SelectPreviousMatch" + "shift-enter": "search::SelectPreviousMatch", + "alt-c": "search::ToggleCaseSensitive", + "alt-e": "search::ToggleSelection", + "alt-x": "search::ToggleRegex", + "alt-w": "search::ToggleWholeWord", + "ctrl-alt-c": "search::ToggleCaseSensitive", + "ctrl-alt-e": "search::ToggleSelection", + "ctrl-alt-w": "search::ToggleWholeWord", + "ctrl-alt-x": "search::ToggleRegex" } }, { "context": "Workspace", "bindings": { + "cmd-shift-f12": "workspace::CloseAllDocks", + "cmd-shift-r": ["pane::DeploySearch", { "replace_enabled": true }], + "ctrl-alt-r": "task::Spawn", + "cmd-e": "file_finder::Toggle", + "cmd-k": "git_panel::ToggleFocus", // bug: This should also focus commit editor "cmd-shift-o": "file_finder::Toggle", "cmd-shift-a": "command_palette::Toggle", "shift shift": "command_palette::Toggle", "cmd-alt-o": "project_symbols::Toggle", // JetBrains: Go to Symbol "cmd-o": "project_symbols::Toggle", // JetBrains: Go to Class - "cmd-1": "workspace::ToggleLeftDock", - "cmd-6": "diagnostics::Deploy" + "cmd-1": "project_panel::ToggleFocus", + "cmd-5": "debug_panel::ToggleFocus", + "cmd-6": "diagnostics::Deploy", + "cmd-7": "outline_panel::ToggleFocus" + } + }, + { + "context": "Workspace || Editor", + "bindings": { + "alt-f12": "terminal_panel::ToggleFocus", + "cmd-shift-k": "git::Push" } }, { @@ -98,11 +121,31 @@ "context": "ProjectPanel", "bindings": { "enter": "project_panel::Open", + "cmd-shift-f": "project_panel::NewSearchInDirectory", "cmd-backspace": ["project_panel::Trash", { "skip_prompt": false }], "backspace": ["project_panel::Trash", { "skip_prompt": false }], "delete": ["project_panel::Trash", { "skip_prompt": false }], "shift-delete": ["project_panel::Delete", { "skip_prompt": false }], "shift-f6": "project_panel::Rename" } + }, + { + "context": "Terminal", + "bindings": { + "cmd-t": "workspace::NewTerminal", + "alt-f12": "workspace::CloseActiveDock", + "cmd-up": "terminal::ScrollLineUp", + "cmd-down": "terminal::ScrollLineDown", + "shift-pageup": "terminal::ScrollPageUp", + "shift-pagedown": "terminal::ScrollPageDown" + } + }, + { "context": "GitPanel", "bindings": { "cmd-0": "workspace::CloseActiveDock" } }, + { "context": "DebugPanel", "bindings": { "cmd-5": "workspace::CloseActiveDock" } }, + { "context": "Diagnostics > Editor", "bindings": { "cmd-6": "pane::CloseActiveItem" } }, + { "context": "OutlinePanel", "bindings": { "cmd-7": "workspace::CloseActiveDock" } }, + { + "context": "Dock || Workspace || Terminal || OutlinePanel || ProjectPanel || CollabPanel || (Editor && mode == auto_height)", + "bindings": { "escape": "editor::ToggleFocus" } } ] From 0f72d7ed52bad0c8f6a5e504a2adf9670d726814 Mon Sep 17 00:00:00 2001 From: Smit Barmase Date: Thu, 17 Jul 2025 22:46:44 +0530 Subject: [PATCH 0029/1052] editor: Fix sometimes green (+) cursor style appearing when cmd-clicking in same buffer (#34638) Follow-up for https://github.com/zed-industries/zed/pull/34557 This PR clears the selection drag state on click, because mouse up doesn't trigger on click event because of `cx.stop_propagation`. The issue occurs with similar repro steps as mentioned in the attached PR. Release Notes: - Fixed the issue where the green (+) cursor style sometimes appears when navigating to the definition in buffer. --- crates/editor/src/element.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/editor/src/element.rs b/crates/editor/src/element.rs index e77be3398c..fef185bb15 100644 --- a/crates/editor/src/element.rs +++ b/crates/editor/src/element.rs @@ -949,6 +949,7 @@ impl EditorElement { if !pending_nonempty_selections && hovered_link_modifier && text_hitbox.is_hovered(window) { let point = position_map.point_for_position(event.up.position); editor.handle_click_hovered_link(point, event.modifiers(), window, cx); + editor.selection_drag_state = SelectionDragState::None; cx.stop_propagation(); } From dab0b3509d2394cd073cbd8b4260454c1f1d5278 Mon Sep 17 00:00:00 2001 From: Agus Zubiaga Date: Thu, 17 Jul 2025 14:34:38 -0300 Subject: [PATCH 0030/1052] Unify agent server settings and extract e2e tests out (#34642) Release Notes: - N/A --- crates/agent_servers/Cargo.toml | 2 +- crates/agent_servers/src/agent_servers.rs | 125 +++++- crates/agent_servers/src/claude.rs | 75 ++-- crates/agent_servers/src/e2e_tests.rs | 368 +++++++++++++++ crates/agent_servers/src/gemini.rs | 422 +----------------- crates/agent_servers/src/settings.rs | 1 + .../agent_servers/src/stdio_agent_server.rs | 54 +-- 7 files changed, 547 insertions(+), 500 deletions(-) create mode 100644 crates/agent_servers/src/e2e_tests.rs diff --git a/crates/agent_servers/Cargo.toml b/crates/agent_servers/Cargo.toml index d65235aee3..2d68148264 100644 --- a/crates/agent_servers/Cargo.toml +++ b/crates/agent_servers/Cargo.toml @@ -7,7 +7,7 @@ license = "GPL-3.0-or-later" [features] test-support = ["acp_thread/test-support", "gpui/test-support", "project/test-support"] -gemini = [] +e2e = [] [lints] workspace = true diff --git a/crates/agent_servers/src/agent_servers.rs b/crates/agent_servers/src/agent_servers.rs index ebebeca511..6d9c77f296 100644 --- a/crates/agent_servers/src/agent_servers.rs +++ b/crates/agent_servers/src/agent_servers.rs @@ -3,6 +3,9 @@ mod gemini; mod settings; mod stdio_agent_server; +#[cfg(test)] +mod e2e_tests; + pub use claude::*; pub use gemini::*; pub use settings::*; @@ -11,34 +14,20 @@ pub use stdio_agent_server::*; use acp_thread::AcpThread; use anyhow::Result; use collections::HashMap; -use gpui::{App, Entity, SharedString, Task}; +use gpui::{App, AsyncApp, Entity, SharedString, Task}; use project::Project; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; -use std::path::{Path, PathBuf}; +use std::{ + path::{Path, PathBuf}, + sync::Arc, +}; +use util::ResultExt as _; pub fn init(cx: &mut App) { settings::init(cx); } -#[derive(Deserialize, Serialize, Clone, PartialEq, Eq, JsonSchema)] -pub struct AgentServerCommand { - #[serde(rename = "command")] - pub path: PathBuf, - #[serde(default)] - pub args: Vec, - pub env: Option>, -} - -pub enum AgentServerVersion { - Supported, - Unsupported { - error_message: SharedString, - upgrade_message: SharedString, - upgrade_command: String, - }, -} - pub trait AgentServer: Send { fn logo(&self) -> ui::IconName; fn name(&self) -> &'static str; @@ -78,3 +67,99 @@ impl std::fmt::Debug for AgentServerCommand { .finish() } } + +pub enum AgentServerVersion { + Supported, + Unsupported { + error_message: SharedString, + upgrade_message: SharedString, + upgrade_command: String, + }, +} + +#[derive(Deserialize, Serialize, Clone, PartialEq, Eq, JsonSchema)] +pub struct AgentServerCommand { + #[serde(rename = "command")] + pub path: PathBuf, + #[serde(default)] + pub args: Vec, + pub env: Option>, +} + +impl AgentServerCommand { + pub(crate) async fn resolve( + path_bin_name: &'static str, + extra_args: &[&'static str], + settings: Option, + project: &Entity, + cx: &mut AsyncApp, + ) -> Option { + if let Some(agent_settings) = settings { + return Some(Self { + path: agent_settings.command.path, + args: agent_settings + .command + .args + .into_iter() + .chain(extra_args.iter().map(|arg| arg.to_string())) + .collect(), + env: agent_settings.command.env, + }); + } else { + find_bin_in_path(path_bin_name, project, cx) + .await + .map(|path| Self { + path, + args: extra_args.iter().map(|arg| arg.to_string()).collect(), + env: None, + }) + } + } +} + +async fn find_bin_in_path( + bin_name: &'static str, + project: &Entity, + cx: &mut AsyncApp, +) -> Option { + let (env_task, root_dir) = project + .update(cx, |project, cx| { + let worktree = project.visible_worktrees(cx).next(); + match worktree { + Some(worktree) => { + let env_task = project.environment().update(cx, |env, cx| { + env.get_worktree_environment(worktree.clone(), cx) + }); + + let path = worktree.read(cx).abs_path(); + (env_task, path) + } + None => { + let path: Arc = paths::home_dir().as_path().into(); + let env_task = project.environment().update(cx, |env, cx| { + env.get_directory_environment(path.clone(), cx) + }); + (env_task, path) + } + } + }) + .log_err()?; + + cx.background_executor() + .spawn(async move { + let which_result = if cfg!(windows) { + which::which(bin_name) + } else { + let env = env_task.await.unwrap_or_default(); + let shell_path = env.get("PATH").cloned(); + which::which_in(bin_name, shell_path.as_ref(), root_dir.as_ref()) + }; + + if let Err(which::Error::CannotFindBinaryPath) = which_result { + return None; + } + + which_result.log_err() + }) + .await +} diff --git a/crates/agent_servers/src/claude.rs b/crates/agent_servers/src/claude.rs index 897158dc57..5760a96d8c 100644 --- a/crates/agent_servers/src/claude.rs +++ b/crates/agent_servers/src/claude.rs @@ -3,6 +3,7 @@ mod tools; use collections::HashMap; use project::Project; +use settings::SettingsStore; use std::cell::RefCell; use std::fmt::Display; use std::path::Path; @@ -12,7 +13,7 @@ use agentic_coding_protocol::{ self as acp, AnyAgentRequest, AnyAgentResult, Client, ProtocolVersion, StreamAssistantMessageChunkParams, ToolCallContent, UpdateToolCallParams, }; -use anyhow::{Context as _, Result, anyhow}; +use anyhow::{Result, anyhow}; use futures::channel::oneshot; use futures::future::LocalBoxFuture; use futures::{AsyncBufReadExt, AsyncWriteExt}; @@ -28,7 +29,7 @@ use util::ResultExt; use crate::claude::mcp_server::ClaudeMcpServer; use crate::claude::tools::ClaudeTool; -use crate::{AgentServer, find_bin_in_path}; +use crate::{AgentServer, AgentServerCommand, AllAgentServersSettings}; use acp_thread::{AcpClientDelegate, AcpThread, AgentConnection}; #[derive(Clone)] @@ -87,31 +88,41 @@ impl AgentServer for ClaudeCode { .await?; mcp_config_file.flush().await?; - let command = find_bin_in_path("claude", &project, cx) - .await - .context("Failed to find claude binary")?; + let settings = cx.read_global(|settings: &SettingsStore, _| { + settings.get::(None).claude.clone() + })?; - let mut child = util::command::new_smol_command(&command) - .args([ - "--input-format", - "stream-json", - "--output-format", - "stream-json", - "--print", - "--verbose", - "--mcp-config", - mcp_config_path.to_string_lossy().as_ref(), - "--permission-prompt-tool", - &format!( - "mcp__{}__{}", - mcp_server::SERVER_NAME, - mcp_server::PERMISSION_TOOL - ), - "--allowedTools", - "mcp__zed__Read,mcp__zed__Edit", - "--disallowedTools", - "Read,Edit", - ]) + let Some(command) = + AgentServerCommand::resolve("claude", &[], settings, &project, cx).await + else { + anyhow::bail!("Failed to find claude binary"); + }; + + let mut child = util::command::new_smol_command(&command.path) + .args( + [ + "--input-format", + "stream-json", + "--output-format", + "stream-json", + "--print", + "--verbose", + "--mcp-config", + mcp_config_path.to_string_lossy().as_ref(), + "--permission-prompt-tool", + &format!( + "mcp__{}__{}", + mcp_server::SERVER_NAME, + mcp_server::PERMISSION_TOOL + ), + "--allowedTools", + "mcp__zed__Read,mcp__zed__Edit", + "--disallowedTools", + "Read,Edit", + ] + .into_iter() + .chain(command.args.iter().map(|arg| arg.as_str())), + ) .current_dir(root_dir) .stdin(std::process::Stdio::piped()) .stdout(std::process::Stdio::piped()) @@ -562,10 +573,20 @@ struct McpServerConfig { } #[cfg(test)] -mod tests { +pub(crate) mod tests { use super::*; use serde_json::json; + // crate::common_e2e_tests!(ClaudeCode); + + pub fn local_command() -> AgentServerCommand { + AgentServerCommand { + path: "claude".into(), + args: vec![], + env: None, + } + } + #[test] fn test_deserialize_content_untagged_text() { let json = json!("Hello, world!"); diff --git a/crates/agent_servers/src/e2e_tests.rs b/crates/agent_servers/src/e2e_tests.rs new file mode 100644 index 0000000000..923c6cdd6f --- /dev/null +++ b/crates/agent_servers/src/e2e_tests.rs @@ -0,0 +1,368 @@ +use std::{path::Path, sync::Arc, time::Duration}; + +use crate::{AgentServer, AgentServerSettings, AllAgentServersSettings}; +use acp_thread::{ + AcpThread, AgentThreadEntry, ToolCall, ToolCallConfirmation, ToolCallContent, ToolCallStatus, +}; +use agentic_coding_protocol as acp; +use futures::{FutureExt, StreamExt, channel::mpsc, select}; +use gpui::{Entity, TestAppContext}; +use indoc::indoc; +use project::{FakeFs, Project}; +use serde_json::json; +use settings::{Settings, SettingsStore}; +use util::path; + +pub async fn test_basic(server: impl AgentServer + 'static, cx: &mut TestAppContext) { + let fs = init_test(cx).await; + let project = Project::test(fs, [], cx).await; + let thread = new_test_thread(server, project.clone(), "/private/tmp", cx).await; + + thread + .update(cx, |thread, cx| thread.send_raw("Hello from Zed!", cx)) + .await + .unwrap(); + + thread.read_with(cx, |thread, _| { + assert_eq!(thread.entries().len(), 2); + assert!(matches!( + thread.entries()[0], + AgentThreadEntry::UserMessage(_) + )); + assert!(matches!( + thread.entries()[1], + AgentThreadEntry::AssistantMessage(_) + )); + }); +} + +pub async fn test_path_mentions(server: impl AgentServer + 'static, cx: &mut TestAppContext) { + let _fs = init_test(cx).await; + + let tempdir = tempfile::tempdir().unwrap(); + std::fs::write( + tempdir.path().join("foo.rs"), + indoc! {" + fn main() { + println!(\"Hello, world!\"); + } + "}, + ) + .expect("failed to write file"); + let project = Project::example([tempdir.path()], &mut cx.to_async()).await; + let thread = new_test_thread(server, project.clone(), tempdir.path(), cx).await; + thread + .update(cx, |thread, cx| { + thread.send( + acp::SendUserMessageParams { + chunks: vec![ + acp::UserMessageChunk::Text { + text: "Read the file ".into(), + }, + acp::UserMessageChunk::Path { + path: Path::new("foo.rs").into(), + }, + acp::UserMessageChunk::Text { + text: " and tell me what the content of the println! is".into(), + }, + ], + }, + cx, + ) + }) + .await + .unwrap(); + + thread.read_with(cx, |thread, cx| { + assert_eq!(thread.entries().len(), 3); + assert!(matches!( + thread.entries()[0], + AgentThreadEntry::UserMessage(_) + )); + assert!(matches!(thread.entries()[1], AgentThreadEntry::ToolCall(_))); + let AgentThreadEntry::AssistantMessage(assistant_message) = &thread.entries()[2] else { + panic!("Expected AssistantMessage") + }; + assert!( + assistant_message.to_markdown(cx).contains("Hello, world!"), + "unexpected assistant message: {:?}", + assistant_message.to_markdown(cx) + ); + }); +} + +pub async fn test_tool_call(server: impl AgentServer + 'static, cx: &mut TestAppContext) { + let fs = init_test(cx).await; + fs.insert_tree( + path!("/private/tmp"), + json!({"foo": "Lorem ipsum dolor", "bar": "bar", "baz": "baz"}), + ) + .await; + let project = Project::test(fs, [path!("/private/tmp").as_ref()], cx).await; + let thread = new_test_thread(server, project.clone(), "/private/tmp", cx).await; + + thread + .update(cx, |thread, cx| { + thread.send_raw( + "Read the '/private/tmp/foo' file and tell me what you see.", + cx, + ) + }) + .await + .unwrap(); + thread.read_with(cx, |thread, _cx| { + assert!(matches!( + &thread.entries()[2], + AgentThreadEntry::ToolCall(ToolCall { + status: ToolCallStatus::Allowed { .. }, + .. + }) + )); + + assert!(matches!( + thread.entries()[3], + AgentThreadEntry::AssistantMessage(_) + )); + }); +} + +pub async fn test_tool_call_with_confirmation( + server: impl AgentServer + 'static, + cx: &mut TestAppContext, +) { + let fs = init_test(cx).await; + let project = Project::test(fs, [path!("/private/tmp").as_ref()], cx).await; + let thread = new_test_thread(server, project.clone(), "/private/tmp", cx).await; + let full_turn = thread.update(cx, |thread, cx| { + thread.send_raw(r#"Run `echo "Hello, world!"`"#, cx) + }); + + run_until_first_tool_call(&thread, cx).await; + + let tool_call_id = thread.read_with(cx, |thread, _cx| { + let AgentThreadEntry::ToolCall(ToolCall { + id, + status: + ToolCallStatus::WaitingForConfirmation { + confirmation: ToolCallConfirmation::Execute { root_command, .. }, + .. + }, + .. + }) = &thread.entries()[2] + else { + panic!(); + }; + + assert_eq!(root_command, "echo"); + + *id + }); + + thread.update(cx, |thread, cx| { + thread.authorize_tool_call(tool_call_id, acp::ToolCallConfirmationOutcome::Allow, cx); + + assert!(matches!( + &thread.entries()[2], + AgentThreadEntry::ToolCall(ToolCall { + status: ToolCallStatus::Allowed { .. }, + .. + }) + )); + }); + + full_turn.await.unwrap(); + + thread.read_with(cx, |thread, cx| { + let AgentThreadEntry::ToolCall(ToolCall { + content: Some(ToolCallContent::Markdown { markdown }), + status: ToolCallStatus::Allowed { .. }, + .. + }) = &thread.entries()[2] + else { + panic!(); + }; + + markdown.read_with(cx, |md, _cx| { + assert!( + md.source().contains("Hello, world!"), + r#"Expected '{}' to contain "Hello, world!""#, + md.source() + ); + }); + }); +} + +pub async fn test_cancel(server: impl AgentServer + 'static, cx: &mut TestAppContext) { + let fs = init_test(cx).await; + + let project = Project::test(fs, [path!("/private/tmp").as_ref()], cx).await; + let thread = new_test_thread(server, project.clone(), "/private/tmp", cx).await; + let full_turn = thread.update(cx, |thread, cx| { + thread.send_raw(r#"Run `echo "Hello, world!"`"#, cx) + }); + + let first_tool_call_ix = run_until_first_tool_call(&thread, cx).await; + + thread.read_with(cx, |thread, _cx| { + let AgentThreadEntry::ToolCall(ToolCall { + id, + status: + ToolCallStatus::WaitingForConfirmation { + confirmation: ToolCallConfirmation::Execute { root_command, .. }, + .. + }, + .. + }) = &thread.entries()[first_tool_call_ix] + else { + panic!("{:?}", thread.entries()[1]); + }; + + assert_eq!(root_command, "echo"); + + *id + }); + + thread + .update(cx, |thread, cx| thread.cancel(cx)) + .await + .unwrap(); + full_turn.await.unwrap(); + thread.read_with(cx, |thread, _| { + let AgentThreadEntry::ToolCall(ToolCall { + status: ToolCallStatus::Canceled, + .. + }) = &thread.entries()[first_tool_call_ix] + else { + panic!(); + }; + }); + + thread + .update(cx, |thread, cx| { + thread.send_raw(r#"Stop running and say goodbye to me."#, cx) + }) + .await + .unwrap(); + thread.read_with(cx, |thread, _| { + assert!(matches!( + &thread.entries().last().unwrap(), + AgentThreadEntry::AssistantMessage(..), + )) + }); +} + +#[macro_export] +macro_rules! common_e2e_tests { + ($server:expr) => { + mod common_e2e { + use super::*; + + #[::gpui::test] + #[cfg_attr(not(feature = "e2e"), ignore)] + async fn basic(cx: &mut ::gpui::TestAppContext) { + $crate::e2e_tests::test_basic($server, cx).await; + } + + #[::gpui::test] + #[cfg_attr(not(feature = "e2e"), ignore)] + async fn path_mentions(cx: &mut ::gpui::TestAppContext) { + $crate::e2e_tests::test_path_mentions($server, cx).await; + } + + #[::gpui::test] + #[cfg_attr(not(feature = "e2e"), ignore)] + async fn tool_call(cx: &mut ::gpui::TestAppContext) { + $crate::e2e_tests::test_tool_call($server, cx).await; + } + + #[::gpui::test] + #[cfg_attr(not(feature = "e2e"), ignore)] + async fn tool_call_with_confirmation(cx: &mut ::gpui::TestAppContext) { + $crate::e2e_tests::test_tool_call_with_confirmation($server, cx).await; + } + + #[::gpui::test] + #[cfg_attr(not(feature = "e2e"), ignore)] + async fn cancel(cx: &mut ::gpui::TestAppContext) { + $crate::e2e_tests::test_cancel($server, cx).await; + } + } + }; +} + +// Helpers + +pub async fn init_test(cx: &mut TestAppContext) -> Arc { + env_logger::try_init().ok(); + + cx.update(|cx| { + let settings_store = SettingsStore::test(cx); + cx.set_global(settings_store); + Project::init_settings(cx); + language::init(cx); + crate::settings::init(cx); + + crate::AllAgentServersSettings::override_global( + AllAgentServersSettings { + claude: Some(AgentServerSettings { + command: crate::claude::tests::local_command(), + }), + gemini: Some(AgentServerSettings { + command: crate::gemini::tests::local_command(), + }), + }, + cx, + ); + }); + + cx.executor().allow_parking(); + + FakeFs::new(cx.executor()) +} + +pub async fn new_test_thread( + server: impl AgentServer + 'static, + project: Entity, + current_dir: impl AsRef, + cx: &mut TestAppContext, +) -> Entity { + let thread = cx + .update(|cx| server.new_thread(current_dir.as_ref(), &project, cx)) + .await + .unwrap(); + + thread + .update(cx, |thread, _| thread.initialize()) + .await + .unwrap(); + thread +} + +pub async fn run_until_first_tool_call( + thread: &Entity, + cx: &mut TestAppContext, +) -> usize { + let (mut tx, mut rx) = mpsc::channel::(1); + + let subscription = cx.update(|cx| { + cx.subscribe(thread, move |thread, _, cx| { + for (ix, entry) in thread.read(cx).entries().iter().enumerate() { + if matches!(entry, AgentThreadEntry::ToolCall(_)) { + return tx.try_send(ix).unwrap(); + } + } + }) + }); + + select! { + // We have to use a smol timer here because + // cx.background_executor().timer isn't real in the test context + _ = futures::FutureExt::fuse(smol::Timer::after(Duration::from_secs(10))) => { + panic!("Timeout waiting for tool call") + } + ix = rx.next().fuse() => { + drop(subscription); + ix.unwrap() + } + } +} diff --git a/crates/agent_servers/src/gemini.rs b/crates/agent_servers/src/gemini.rs index bf1d13429e..8ad147cbff 100644 --- a/crates/agent_servers/src/gemini.rs +++ b/crates/agent_servers/src/gemini.rs @@ -1,4 +1,4 @@ -use crate::stdio_agent_server::{StdioAgentServer, find_bin_in_path}; +use crate::stdio_agent_server::StdioAgentServer; use crate::{AgentServerCommand, AgentServerVersion}; use anyhow::{Context as _, Result}; use gpui::{AsyncApp, Entity}; @@ -38,35 +38,15 @@ impl StdioAgentServer for Gemini { project: &Entity, cx: &mut AsyncApp, ) -> Result { - let custom_command = cx.read_global(|settings: &SettingsStore, _| { - let settings = settings.get::(None); - settings - .gemini - .as_ref() - .map(|gemini_settings| AgentServerCommand { - path: gemini_settings.command.path.clone(), - args: gemini_settings - .command - .args - .iter() - .cloned() - .chain(std::iter::once(ACP_ARG.into())) - .collect(), - env: gemini_settings.command.env.clone(), - }) + let settings = cx.read_global(|settings: &SettingsStore, _| { + settings.get::(None).gemini.clone() })?; - if let Some(custom_command) = custom_command { - return Ok(custom_command); - } - - if let Some(path) = find_bin_in_path("gemini", project, cx).await { - return Ok(AgentServerCommand { - path, - args: vec![ACP_ARG.into()], - env: None, - }); - } + if let Some(command) = + AgentServerCommand::resolve("gemini", &[ACP_ARG], settings, &project, cx).await + { + return Ok(command); + }; let (fs, node_runtime) = project.update(cx, |project, _| { (project.fs().clone(), project.node_runtime().cloned()) @@ -121,381 +101,23 @@ impl StdioAgentServer for Gemini { } #[cfg(test)] -mod test { - use std::{path::Path, time::Duration}; +pub(crate) mod tests { + use super::*; + use crate::AgentServerCommand; + use std::path::Path; - use acp_thread::{ - AcpThread, AgentThreadEntry, ToolCall, ToolCallConfirmation, ToolCallContent, - ToolCallStatus, - }; - use agentic_coding_protocol as acp; - use anyhow::Result; - use futures::{FutureExt, StreamExt, channel::mpsc, select}; - use gpui::{AsyncApp, Entity, TestAppContext}; - use indoc::indoc; - use project::{FakeFs, Project}; - use serde_json::json; - use settings::SettingsStore; - use util::path; + crate::common_e2e_tests!(Gemini); - use crate::{AgentServer, AgentServerCommand, AgentServerVersion, StdioAgentServer}; + pub fn local_command() -> AgentServerCommand { + let cli_path = Path::new(env!("CARGO_MANIFEST_DIR")) + .join("../../../gemini-cli/packages/cli") + .to_string_lossy() + .to_string(); - pub async fn gemini_acp_thread( - project: Entity, - current_dir: impl AsRef, - cx: &mut TestAppContext, - ) -> Entity { - #[derive(Clone)] - struct DevGemini; - - impl StdioAgentServer for DevGemini { - async fn command( - &self, - _project: &Entity, - _cx: &mut AsyncApp, - ) -> Result { - let cli_path = Path::new(env!("CARGO_MANIFEST_DIR")) - .join("../../../gemini-cli/packages/cli") - .to_string_lossy() - .to_string(); - - Ok(AgentServerCommand { - path: "node".into(), - args: vec![cli_path, "--experimental-acp".into()], - env: None, - }) - } - - async fn version(&self, _command: &AgentServerCommand) -> Result { - Ok(AgentServerVersion::Supported) - } - - fn logo(&self) -> ui::IconName { - ui::IconName::AiGemini - } - - fn name(&self) -> &'static str { - "test" - } - - fn empty_state_headline(&self) -> &'static str { - "test" - } - - fn empty_state_message(&self) -> &'static str { - "test" - } - - fn supports_always_allow(&self) -> bool { - true - } - } - - let thread = cx - .update(|cx| AgentServer::new_thread(&DevGemini, current_dir.as_ref(), &project, cx)) - .await - .unwrap(); - - thread - .update(cx, |thread, _| thread.initialize()) - .await - .unwrap(); - thread - } - - fn init_test(cx: &mut TestAppContext) { - env_logger::try_init().ok(); - cx.update(|cx| { - let settings_store = SettingsStore::test(cx); - cx.set_global(settings_store); - Project::init_settings(cx); - language::init(cx); - }); - } - - #[gpui::test] - #[cfg_attr(not(feature = "gemini"), ignore)] - async fn test_gemini_basic(cx: &mut TestAppContext) { - init_test(cx); - - cx.executor().allow_parking(); - - let fs = FakeFs::new(cx.executor()); - let project = Project::test(fs, [], cx).await; - let thread = gemini_acp_thread(project.clone(), "/private/tmp", cx).await; - thread - .update(cx, |thread, cx| thread.send_raw("Hello from Zed!", cx)) - .await - .unwrap(); - - thread.read_with(cx, |thread, _| { - assert_eq!(thread.entries().len(), 2); - assert!(matches!( - thread.entries()[0], - AgentThreadEntry::UserMessage(_) - )); - assert!(matches!( - thread.entries()[1], - AgentThreadEntry::AssistantMessage(_) - )); - }); - } - - #[gpui::test] - #[cfg_attr(not(feature = "gemini"), ignore)] - async fn test_gemini_path_mentions(cx: &mut TestAppContext) { - init_test(cx); - - cx.executor().allow_parking(); - let tempdir = tempfile::tempdir().unwrap(); - std::fs::write( - tempdir.path().join("foo.rs"), - indoc! {" - fn main() { - println!(\"Hello, world!\"); - } - "}, - ) - .expect("failed to write file"); - let project = Project::example([tempdir.path()], &mut cx.to_async()).await; - let thread = gemini_acp_thread(project.clone(), tempdir.path(), cx).await; - thread - .update(cx, |thread, cx| { - thread.send( - acp::SendUserMessageParams { - chunks: vec![ - acp::UserMessageChunk::Text { - text: "Read the file ".into(), - }, - acp::UserMessageChunk::Path { - path: Path::new("foo.rs").into(), - }, - acp::UserMessageChunk::Text { - text: " and tell me what the content of the println! is".into(), - }, - ], - }, - cx, - ) - }) - .await - .unwrap(); - - thread.read_with(cx, |thread, cx| { - assert_eq!(thread.entries().len(), 3); - assert!(matches!( - thread.entries()[0], - AgentThreadEntry::UserMessage(_) - )); - assert!(matches!(thread.entries()[1], AgentThreadEntry::ToolCall(_))); - let AgentThreadEntry::AssistantMessage(assistant_message) = &thread.entries()[2] else { - panic!("Expected AssistantMessage") - }; - assert!( - assistant_message.to_markdown(cx).contains("Hello, world!"), - "unexpected assistant message: {:?}", - assistant_message.to_markdown(cx) - ); - }); - } - - #[gpui::test] - #[cfg_attr(not(feature = "gemini"), ignore)] - async fn test_gemini_tool_call(cx: &mut TestAppContext) { - init_test(cx); - - cx.executor().allow_parking(); - - let fs = FakeFs::new(cx.executor()); - fs.insert_tree( - path!("/private/tmp"), - json!({"foo": "Lorem ipsum dolor", "bar": "bar", "baz": "baz"}), - ) - .await; - let project = Project::test(fs, [path!("/private/tmp").as_ref()], cx).await; - let thread = gemini_acp_thread(project.clone(), "/private/tmp", cx).await; - thread - .update(cx, |thread, cx| { - thread.send_raw( - "Read the '/private/tmp/foo' file and tell me what you see.", - cx, - ) - }) - .await - .unwrap(); - thread.read_with(cx, |thread, _cx| { - assert!(matches!( - &thread.entries()[2], - AgentThreadEntry::ToolCall(ToolCall { - status: ToolCallStatus::Allowed { .. }, - .. - }) - )); - - assert!(matches!( - thread.entries()[3], - AgentThreadEntry::AssistantMessage(_) - )); - }); - } - - #[gpui::test] - #[cfg_attr(not(feature = "gemini"), ignore)] - async fn test_gemini_tool_call_with_confirmation(cx: &mut TestAppContext) { - init_test(cx); - - cx.executor().allow_parking(); - - let fs = FakeFs::new(cx.executor()); - let project = Project::test(fs, [path!("/private/tmp").as_ref()], cx).await; - let thread = gemini_acp_thread(project.clone(), "/private/tmp", cx).await; - let full_turn = thread.update(cx, |thread, cx| { - thread.send_raw(r#"Run `echo "Hello, world!"`"#, cx) - }); - - run_until_first_tool_call(&thread, cx).await; - - let tool_call_id = thread.read_with(cx, |thread, _cx| { - let AgentThreadEntry::ToolCall(ToolCall { - id, - status: - ToolCallStatus::WaitingForConfirmation { - confirmation: ToolCallConfirmation::Execute { root_command, .. }, - .. - }, - .. - }) = &thread.entries()[2] - else { - panic!(); - }; - - assert_eq!(root_command, "echo"); - - *id - }); - - thread.update(cx, |thread, cx| { - thread.authorize_tool_call(tool_call_id, acp::ToolCallConfirmationOutcome::Allow, cx); - - assert!(matches!( - &thread.entries()[2], - AgentThreadEntry::ToolCall(ToolCall { - status: ToolCallStatus::Allowed { .. }, - .. - }) - )); - }); - - full_turn.await.unwrap(); - - thread.read_with(cx, |thread, cx| { - let AgentThreadEntry::ToolCall(ToolCall { - content: Some(ToolCallContent::Markdown { markdown }), - status: ToolCallStatus::Allowed { .. }, - .. - }) = &thread.entries()[2] - else { - panic!(); - }; - - markdown.read_with(cx, |md, _cx| { - assert!( - md.source().contains("Hello, world!"), - r#"Expected '{}' to contain "Hello, world!""#, - md.source() - ); - }); - }); - } - - #[gpui::test] - #[cfg_attr(not(feature = "gemini"), ignore)] - async fn test_gemini_cancel(cx: &mut TestAppContext) { - init_test(cx); - - cx.executor().allow_parking(); - - let fs = FakeFs::new(cx.executor()); - let project = Project::test(fs, [path!("/private/tmp").as_ref()], cx).await; - let thread = gemini_acp_thread(project.clone(), "/private/tmp", cx).await; - let full_turn = thread.update(cx, |thread, cx| { - thread.send_raw(r#"Run `echo "Hello, world!"`"#, cx) - }); - - let first_tool_call_ix = run_until_first_tool_call(&thread, cx).await; - - thread.read_with(cx, |thread, _cx| { - let AgentThreadEntry::ToolCall(ToolCall { - id, - status: - ToolCallStatus::WaitingForConfirmation { - confirmation: ToolCallConfirmation::Execute { root_command, .. }, - .. - }, - .. - }) = &thread.entries()[first_tool_call_ix] - else { - panic!("{:?}", thread.entries()[1]); - }; - - assert_eq!(root_command, "echo"); - - *id - }); - - thread - .update(cx, |thread, cx| thread.cancel(cx)) - .await - .unwrap(); - full_turn.await.unwrap(); - thread.read_with(cx, |thread, _| { - let AgentThreadEntry::ToolCall(ToolCall { - status: ToolCallStatus::Canceled, - .. - }) = &thread.entries()[first_tool_call_ix] - else { - panic!(); - }; - }); - - thread - .update(cx, |thread, cx| { - thread.send_raw(r#"Stop running and say goodbye to me."#, cx) - }) - .await - .unwrap(); - thread.read_with(cx, |thread, _| { - assert!(matches!( - &thread.entries().last().unwrap(), - AgentThreadEntry::AssistantMessage(..), - )) - }); - } - - async fn run_until_first_tool_call( - thread: &Entity, - cx: &mut TestAppContext, - ) -> usize { - let (mut tx, mut rx) = mpsc::channel::(1); - - let subscription = cx.update(|cx| { - cx.subscribe(thread, move |thread, _, cx| { - for (ix, entry) in thread.read(cx).entries().iter().enumerate() { - if matches!(entry, AgentThreadEntry::ToolCall(_)) { - return tx.try_send(ix).unwrap(); - } - } - }) - }); - - select! { - _ = cx.executor().timer(Duration::from_secs(10)).fuse() => { - panic!("Timeout waiting for tool call") - } - ix = rx.next().fuse() => { - drop(subscription); - ix.unwrap() - } + AgentServerCommand { + path: "node".into(), + args: vec![cli_path, ACP_ARG.into()], + env: None, } } } diff --git a/crates/agent_servers/src/settings.rs b/crates/agent_servers/src/settings.rs index 8e6914352b..29dcf5eb8c 100644 --- a/crates/agent_servers/src/settings.rs +++ b/crates/agent_servers/src/settings.rs @@ -12,6 +12,7 @@ pub fn init(cx: &mut App) { #[derive(Default, Deserialize, Serialize, Clone, JsonSchema, Debug)] pub struct AllAgentServersSettings { pub gemini: Option, + pub claude: Option, } #[derive(Deserialize, Serialize, Clone, JsonSchema, Debug)] diff --git a/crates/agent_servers/src/stdio_agent_server.rs b/crates/agent_servers/src/stdio_agent_server.rs index d78506022d..e60dd39de4 100644 --- a/crates/agent_servers/src/stdio_agent_server.rs +++ b/crates/agent_servers/src/stdio_agent_server.rs @@ -4,11 +4,8 @@ use agentic_coding_protocol as acp; use anyhow::{Result, anyhow}; use gpui::{App, AsyncApp, Entity, Task, prelude::*}; use project::Project; -use std::{ - path::{Path, PathBuf}, - sync::Arc, -}; -use util::{ResultExt, paths}; +use std::path::Path; +use util::ResultExt; pub trait StdioAgentServer: Send + Clone { fn logo(&self) -> ui::IconName; @@ -120,50 +117,3 @@ impl AgentServer for T { }) } } - -pub async fn find_bin_in_path( - bin_name: &'static str, - project: &Entity, - cx: &mut AsyncApp, -) -> Option { - let (env_task, root_dir) = project - .update(cx, |project, cx| { - let worktree = project.visible_worktrees(cx).next(); - match worktree { - Some(worktree) => { - let env_task = project.environment().update(cx, |env, cx| { - env.get_worktree_environment(worktree.clone(), cx) - }); - - let path = worktree.read(cx).abs_path(); - (env_task, path) - } - None => { - let path: Arc = paths::home_dir().as_path().into(); - let env_task = project.environment().update(cx, |env, cx| { - env.get_directory_environment(path.clone(), cx) - }); - (env_task, path) - } - } - }) - .log_err()?; - - cx.background_executor() - .spawn(async move { - let which_result = if cfg!(windows) { - which::which(bin_name) - } else { - let env = env_task.await.unwrap_or_default(); - let shell_path = env.get("PATH").cloned(); - which::which_in(bin_name, shell_path.as_ref(), root_dir.as_ref()) - }; - - if let Err(which::Error::CannotFindBinaryPath) = which_result { - return None; - } - - which_result.log_err() - }) - .await -} From 9efe9df80080fe09e8bfe679cdb5804611a3a8b9 Mon Sep 17 00:00:00 2001 From: Peter Tripp Date: Thu, 17 Jul 2025 14:32:04 -0400 Subject: [PATCH 0031/1052] Harmonize `buffer_font_size` between default.json and initial_settings.json (#34650) Release Notes: - N/A --- assets/settings/initial_user_settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/settings/initial_user_settings.json b/assets/settings/initial_user_settings.json index 71f3beb1d6..5ac2063bdb 100644 --- a/assets/settings/initial_user_settings.json +++ b/assets/settings/initial_user_settings.json @@ -8,7 +8,7 @@ // command palette (cmd-shift-p / ctrl-shift-p) { "ui_font_size": 16, - "buffer_font_size": 16, + "buffer_font_size": 15, "theme": { "mode": "system", "light": "One Light", From 1e60ebb2c6364279be3d08ed20ff4399fe61197c Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Thu, 17 Jul 2025 14:34:04 -0400 Subject: [PATCH 0032/1052] collab: Remove `GET /billing/usage` endpoint (#34651) This PR removes the `GET /billing/usage` endpoint, as it has been moved to `cloud.zed.dev`. Release Notes: - N/A --- crates/collab/src/api/billing.rs | 159 +------------------------------ 1 file changed, 1 insertion(+), 158 deletions(-) diff --git a/crates/collab/src/api/billing.rs b/crates/collab/src/api/billing.rs index 1ca71726f9..09f307c672 100644 --- a/crates/collab/src/api/billing.rs +++ b/crates/collab/src/api/billing.rs @@ -1,10 +1,6 @@ use anyhow::{Context as _, bail}; use axum::routing::put; -use axum::{ - Extension, Json, Router, - extract::{self, Query}, - routing::{get, post}, -}; +use axum::{Extension, Json, Router, extract, routing::post}; use chrono::{DateTime, SecondsFormat, Utc}; use collections::{HashMap, HashSet}; use reqwest::StatusCode; @@ -28,7 +24,6 @@ use crate::api::events::SnowflakeRow; use crate::db::billing_subscription::{ StripeCancellationReason, StripeSubscriptionStatus, SubscriptionKind, }; -use crate::llm::AGENT_EXTENDED_TRIAL_FEATURE_FLAG; use crate::llm::db::subscription_usage_meter::{self, CompletionMode}; use crate::rpc::{ResultExt as _, Server}; use crate::stripe_client::{ @@ -58,7 +53,6 @@ pub fn router() -> Router { "/billing/subscriptions/sync", post(sync_billing_subscription), ) - .route("/billing/usage", get(get_current_usage)) } #[derive(Debug, Serialize)] @@ -1027,157 +1021,6 @@ async fn handle_customer_subscription_event( Ok(()) } -#[derive(Debug, Deserialize)] -struct GetCurrentUsageParams { - github_user_id: i32, -} - -#[derive(Debug, Serialize)] -struct UsageCounts { - pub used: i32, - pub limit: Option, - pub remaining: Option, -} - -#[derive(Debug, Serialize)] -struct ModelRequestUsage { - pub model: String, - pub mode: CompletionMode, - pub requests: i32, -} - -#[derive(Debug, Serialize)] -struct CurrentUsage { - pub model_requests: UsageCounts, - pub model_request_usage: Vec, - pub edit_predictions: UsageCounts, -} - -#[derive(Debug, Default, Serialize)] -struct GetCurrentUsageResponse { - pub plan: String, - pub current_usage: Option, -} - -async fn get_current_usage( - Extension(app): Extension>, - Query(params): Query, -) -> Result> { - let user = app - .db - .get_user_by_github_user_id(params.github_user_id) - .await? - .context("user not found")?; - - let feature_flags = app.db.get_user_flags(user.id).await?; - let has_extended_trial = feature_flags - .iter() - .any(|flag| flag == AGENT_EXTENDED_TRIAL_FEATURE_FLAG); - - let Some(llm_db) = app.llm_db.clone() else { - return Err(Error::http( - StatusCode::NOT_IMPLEMENTED, - "LLM database not available".into(), - )); - }; - - let Some(subscription) = app.db.get_active_billing_subscription(user.id).await? else { - return Ok(Json(GetCurrentUsageResponse::default())); - }; - - let subscription_period = maybe!({ - let period_start_at = subscription.current_period_start_at()?; - let period_end_at = subscription.current_period_end_at()?; - - Some((period_start_at, period_end_at)) - }); - - let Some((period_start_at, period_end_at)) = subscription_period else { - return Ok(Json(GetCurrentUsageResponse::default())); - }; - - let usage = llm_db - .get_subscription_usage_for_period(user.id, period_start_at, period_end_at) - .await?; - - let plan = subscription - .kind - .map(Into::into) - .unwrap_or(zed_llm_client::Plan::ZedFree); - - let model_requests_limit = match plan.model_requests_limit() { - zed_llm_client::UsageLimit::Limited(limit) => { - let limit = if plan == zed_llm_client::Plan::ZedProTrial && has_extended_trial { - 1_000 - } else { - limit - }; - - Some(limit) - } - zed_llm_client::UsageLimit::Unlimited => None, - }; - - let edit_predictions_limit = match plan.edit_predictions_limit() { - zed_llm_client::UsageLimit::Limited(limit) => Some(limit), - zed_llm_client::UsageLimit::Unlimited => None, - }; - - let Some(usage) = usage else { - return Ok(Json(GetCurrentUsageResponse { - plan: plan.as_str().to_string(), - current_usage: Some(CurrentUsage { - model_requests: UsageCounts { - used: 0, - limit: model_requests_limit, - remaining: model_requests_limit, - }, - model_request_usage: Vec::new(), - edit_predictions: UsageCounts { - used: 0, - limit: edit_predictions_limit, - remaining: edit_predictions_limit, - }, - }), - })); - }; - - let subscription_usage_meters = llm_db - .get_current_subscription_usage_meters_for_user(user.id, Utc::now()) - .await?; - - let model_request_usage = subscription_usage_meters - .into_iter() - .filter_map(|(usage_meter, _usage)| { - let model = llm_db.model_by_id(usage_meter.model_id).ok()?; - - Some(ModelRequestUsage { - model: model.name.clone(), - mode: usage_meter.mode, - requests: usage_meter.requests, - }) - }) - .collect::>(); - - Ok(Json(GetCurrentUsageResponse { - plan: plan.as_str().to_string(), - current_usage: Some(CurrentUsage { - model_requests: UsageCounts { - used: usage.model_requests, - limit: model_requests_limit, - remaining: model_requests_limit.map(|limit| (limit - usage.model_requests).max(0)), - }, - model_request_usage, - edit_predictions: UsageCounts { - used: usage.edit_predictions, - limit: edit_predictions_limit, - remaining: edit_predictions_limit - .map(|limit| (limit - usage.edit_predictions).max(0)), - }, - }), - })) -} - impl From for StripeSubscriptionStatus { fn from(value: SubscriptionStatus) -> Self { match value { From 0c88189aab0bee0661ee8bcfebdcceccf47e5003 Mon Sep 17 00:00:00 2001 From: Peter Tripp Date: Thu, 17 Jul 2025 15:23:00 -0400 Subject: [PATCH 0033/1052] Refine JetBrains keymaps (#34658) Follow-up to: https://github.com/zed-industries/zed/pull/34641 Release Notes: - N/A --- assets/keymaps/linux/jetbrains.json | 15 ++++++++++----- assets/keymaps/macos/jetbrains.json | 7 ++++++- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/assets/keymaps/linux/jetbrains.json b/assets/keymaps/linux/jetbrains.json index 7266318a9e..629333663d 100644 --- a/assets/keymaps/linux/jetbrains.json +++ b/assets/keymaps/linux/jetbrains.json @@ -72,14 +72,19 @@ "alt-enter": "editor::ToggleCodeActions" } }, + { + "context": "BufferSearchBar", + "bindings": { + "shift-enter": "search::SelectPreviousMatch" + } + }, { "context": "BufferSearchBar || ProjectSearchBar", "bindings": { - "shift-enter": "search::SelectPreviousMatch", - "ctrl-alt-c": "search::ToggleCaseSensitive", - "ctrl-alt-e": "search::ToggleSelection", - "ctrl-alt-w": "search::ToggleWholeWord", - "ctrl-alt-x": "search::ToggleRegex" + "alt-c": "search::ToggleCaseSensitive", + "alt-e": "search::ToggleSelection", + "alt-x": "search::ToggleRegex", + "alt-w": "search::ToggleWholeWord" } }, { diff --git a/assets/keymaps/macos/jetbrains.json b/assets/keymaps/macos/jetbrains.json index a41e39932f..e8b796f534 100644 --- a/assets/keymaps/macos/jetbrains.json +++ b/assets/keymaps/macos/jetbrains.json @@ -70,10 +70,15 @@ "alt-enter": "editor::ToggleCodeActions" } }, + { + "context": "BufferSearchBar", + "bindings": { + "shift-enter": "search::SelectPreviousMatch" + } + }, { "context": "BufferSearchBar || ProjectSearchBar", "bindings": { - "shift-enter": "search::SelectPreviousMatch", "alt-c": "search::ToggleCaseSensitive", "alt-e": "search::ToggleSelection", "alt-x": "search::ToggleRegex", From 237ce5c8e8e3107981c6922a883527afa2ea2c83 Mon Sep 17 00:00:00 2001 From: Cole Miller Date: Thu, 17 Jul 2025 17:38:45 -0400 Subject: [PATCH 0034/1052] Report build SHA to Slack for Zed Nightly panics (#34665) There can be a bunch of nightlies with the same version number and it's helpful to know exactly which one reported a panic. Release Notes: - N/A --- crates/collab/src/api/events.rs | 81 +++++++++++++++++---------------- 1 file changed, 43 insertions(+), 38 deletions(-) diff --git a/crates/collab/src/api/events.rs b/crates/collab/src/api/events.rs index 6ccc86c520..bc7dd152b0 100644 --- a/crates/collab/src/api/events.rs +++ b/crates/collab/src/api/events.rs @@ -389,53 +389,58 @@ pub async fn post_panic( } } - let backtrace = if panic.backtrace.len() > 25 { - let total = panic.backtrace.len(); - format!( - "{}\n and {} more", - panic - .backtrace - .iter() - .take(20) - .cloned() - .collect::>() - .join("\n"), - total - 20 - ) - } else { - panic.backtrace.join("\n") - }; - if !report_to_slack(&panic) { return Ok(()); } - let backtrace_with_summary = panic.payload + "\n" + &backtrace; - if let Some(slack_panics_webhook) = app.config.slack_panics_webhook.clone() { + let backtrace = if panic.backtrace.len() > 25 { + let total = panic.backtrace.len(); + format!( + "{}\n and {} more", + panic + .backtrace + .iter() + .take(20) + .cloned() + .collect::>() + .join("\n"), + total - 20 + ) + } else { + panic.backtrace.join("\n") + }; + let backtrace_with_summary = panic.payload + "\n" + &backtrace; + + let version = if panic.release_channel == "nightly" + && !panic.app_version.contains("remote-server") + && let Some(sha) = panic.app_commit_sha + { + format!("Zed Nightly {}", sha.chars().take(7).collect::()) + } else { + panic.app_version + }; + let payload = slack::WebhookBody::new(|w| { w.add_section(|s| s.text(slack::Text::markdown("Panic request".to_string()))) .add_section(|s| { - s.add_field(slack::Text::markdown(format!( - "*Version:*\n {} ", - panic.app_version - ))) - .add_field({ - let hostname = app.config.blob_store_url.clone().unwrap_or_default(); - let hostname = hostname.strip_prefix("https://").unwrap_or_else(|| { - hostname.strip_prefix("http://").unwrap_or_default() - }); + s.add_field(slack::Text::markdown(format!("*Version:*\n {version} ",))) + .add_field({ + let hostname = app.config.blob_store_url.clone().unwrap_or_default(); + let hostname = hostname.strip_prefix("https://").unwrap_or_else(|| { + hostname.strip_prefix("http://").unwrap_or_default() + }); - slack::Text::markdown(format!( - "*{} {}:*\n", - panic.os_name, - panic.os_version.unwrap_or_default(), - CRASH_REPORTS_BUCKET, - hostname, - incident_id, - incident_id.chars().take(8).collect::(), - )) - }) + slack::Text::markdown(format!( + "*{} {}:*\n", + panic.os_name, + panic.os_version.unwrap_or_default(), + CRASH_REPORTS_BUCKET, + hostname, + incident_id, + incident_id.chars().take(8).collect::(), + )) + }) }) .add_rich_text(|r| r.add_preformatted(|p| p.add_text(backtrace_with_summary))) }); From 29030a243ca9cf3b99e6746f9addcaf318da5112 Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Thu, 17 Jul 2025 18:49:44 -0300 Subject: [PATCH 0035/1052] docs: Add instructions about how to use MCP servers (#34656) Release Notes: - N/A --- docs/src/ai/agent-panel.md | 6 ++ docs/src/ai/mcp.md | 109 +++++++++++++++++++++++++++++++------ 2 files changed, 97 insertions(+), 18 deletions(-) diff --git a/docs/src/ai/agent-panel.md b/docs/src/ai/agent-panel.md index ca35e06e11..97568d6643 100644 --- a/docs/src/ai/agent-panel.md +++ b/docs/src/ai/agent-panel.md @@ -121,6 +121,12 @@ Zed will store this profile in your settings using the same profile name as the All custom profiles can be edited via the UI or by hand under the `assistant.profiles` key in your `settings.json` file. +### Tool Approval + +Zed's Agent Panel surfaces the `agent.always_allow_tool_actions` setting that, if turned to `false`, will require you to give permission to any editing attempt as well as tool calls coming from MCP servers. + +You can change that by setting this key to `true` in either your `settings.json` or via the Agent Panel's settings view. + ### Model Support {#model-support} Tool calling needs to be individually supported by each model and model provider. diff --git a/docs/src/ai/mcp.md b/docs/src/ai/mcp.md index 202b141022..95929b2d7e 100644 --- a/docs/src/ai/mcp.md +++ b/docs/src/ai/mcp.md @@ -4,35 +4,35 @@ Zed uses the [Model Context Protocol](https://modelcontextprotocol.io/) to inter > The Model Context Protocol (MCP) is an open protocol that enables seamless integration between LLM applications and external data sources and tools. Whether you're building an AI-powered IDE, enhancing a chat interface, or creating custom AI workflows, MCP provides a standardized way to connect LLMs with the context they need. -Check out the [Anthropic news post](https://www.anthropic.com/news/model-context-protocol) and the [Zed blog post](https://zed.dev/blog/mcp) for an introduction to MCP. +Check out the [Anthropic news post](https://www.anthropic.com/news/model-context-protocol) and the [Zed blog post](https://zed.dev/blog/mcp) for a general intro to MCP. -## MCP Servers as Extensions +## Installing MCP Servers + +### As Extensions One of the ways you can use MCP servers in Zed is by exposing them as an extension. -To learn how to do that, check out the [MCP Server Extensions](../extensions/mcp-extensions.md) page for more details. +To learn how to create your own, check out the [MCP Server Extensions](../extensions/mcp-extensions.md) page for more details. -### Available extensions - -Many MCP servers have been exposed as extensions already, thanks to Zed's awesome community. -Check which ones are already available in Zed's extension store via any of these routes: +Thanks to our awesome community, many MCP servers have already been added as extensions. +You can check which ones are available via any of these routes: 1. [the Zed website](https://zed.dev/extensions?filter=context-servers) -2. in the app, run the `zed: extensions` action +2. in the app, open the Command Palette and run the `zed: extensions` action 3. in the app, go to the Agent Panel's top-right menu and look for the "View Server Extensions" menu item In any case, here are some of the ones available: -- [Postgres](https://github.com/zed-extensions/postgres-context-server) -- [GitHub](https://github.com/LoamStudios/zed-mcp-server-github) -- [Puppeteer](https://github.com/zed-extensions/mcp-server-puppeteer) -- [BrowserTools](https://github.com/mirageN1349/browser-tools-context-server) -- [Brave Search](https://github.com/zed-extensions/mcp-server-brave-search) +- [Context7](https://zed.dev/extensions/context7-mcp-server) +- [GitHub](https://zed.dev/extensions/github-mcp-server) +- [Puppeteer](https://zed.dev/extensions/puppeteer-mcp-server) +- [Gem](https://zed.dev/extensions/gem) +- [Brave Search](https://zed.dev/extensions/brave-search-mcp-server) - [Prisma](https://github.com/aqrln/prisma-mcp-zed) -- [Framelink Figma](https://github.com/LoamStudios/zed-mcp-server-figma) -- [Linear](https://github.com/LoamStudios/zed-mcp-server-linear) -- [Resend](https://github.com/danilo-leal/zed-resend-mcp-server) +- [Framelink Figma](https://zed.dev/extensions/framelink-figma-mcp-server) +- [Linear](https://zed.dev/extensions/linear-mcp-server) +- [Resend](https://zed.dev/extensions/resend-mcp-server) -## Add your own MCP server +### As Custom Servers Creating an extension is not the only way to use MCP servers in Zed. You can connect them by adding their commands directly to your `settings.json`, like so: @@ -51,4 +51,77 @@ You can connect them by adding their commands directly to your `settings.json`, ``` Alternatively, you can also add a custom server by accessing the Agent Panel's Settings view (also accessible via the `agent: open configuration` action). -From there, you can add it through the modal that appears when clicking the "Add Custom Server" button. +From there, you can add it through the modal that appears when you click the "Add Custom Server" button. + +## Using MCP Servers + +### Installation Check + +Regardless of whether you're using MCP servers as an extension or adding them directly, most servers out there need some sort of configuration as part of the set up process. + +In the case of extensions, Zed will show a modal displaying what is required for you to properly set up a given server. +For example, the GitHub MCP extension requires you to add a [Personal Access Token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens). + +In the case of custom servers, make sure you check the provider documentation to determine what type of command, arguments, and environment variables need to be added to the JSON. + +To check whether your MCP server is properly installed, go to the Agent Panel's settings view and watch the indicator dot next to its name. +If they're running correctly, the indicator will be green and its tooltip will say "Server is active". +If not, other colors and tooltip messages will indicate what is happening. + +### Using in the Agent Panel + +Once installation is complete, you can return to the Agent Panel and start prompting. +Mentioning your MCP server by name helps the agent pick it up. + +If you want to ensure a given server will be used, you can create [a custom profile](./agent-panel.md#custom-profiles) by turning off the built-in tools (either all of them or the ones that would cause conflicts) and turning on only the tools coming from the MCP server. + +As an example, [the Dagger team suggests](https://container-use.com/agent-integrations#add-container-use-agent-profile-optional) doing that with their [Container Use MCP server](https://zed.dev/extensions/container-use-mcp-server): + +```json +"agent": { + "profiles": { + "container-use": { + "name": "Container Use", + "tools": { + "fetch": true, + "thinking": true, + "copy_path": false, + "find_path": false, + "delete_path": false, + "create_directory": false, + "list_directory": false, + "diagnostics": false, + "read_file": false, + "open": false, + "move_path": false, + "grep": false, + "edit_file": false, + "terminal": false + }, + "enable_all_context_servers": false, + "context_servers": { + "container-use": { + "tools": { + "environment_create": true, + "environment_add_service": true, + "environment_update": true, + "environment_run_cmd": true, + "environment_open": true, + "environment_file_write": true, + "environment_file_read": true, + "environment_file_list": true, + "environment_file_delete": true, + "environment_checkpoint": true + } + } + } + } + } +} +``` + +### Tool Approval + +Zed's Agent Panel includes the `agent.always_allow_tool_actions` setting that, if set to `false`, will require you to give permission for any editing attempt as well as tool calls coming from MCP servers. + +You can change this by setting this key to `true` in either your `settings.json` or through the Agent Panel's settings view. From 6c741292dfc538b10fcb753a1c35e631611b386a Mon Sep 17 00:00:00 2001 From: Finn Evers Date: Fri, 18 Jul 2025 00:12:10 +0200 Subject: [PATCH 0036/1052] keymap_ui: Fix various keymap editor issues (#34647) This PR tackles miscellaneous nits for the new keymap editor UI. Release Notes: - N/A --------- Co-authored-by: Ben Kunkle --- crates/settings_ui/src/keybindings.rs | 373 ++++++++++-------- crates/settings_ui/src/ui_components/table.rs | 31 ++ 2 files changed, 246 insertions(+), 158 deletions(-) diff --git a/crates/settings_ui/src/keybindings.rs b/crates/settings_ui/src/keybindings.rs index af096f4ce1..d5ac253fb8 100644 --- a/crates/settings_ui/src/keybindings.rs +++ b/crates/settings_ui/src/keybindings.rs @@ -22,9 +22,9 @@ use settings::{BaseKeymap, KeybindSource, KeymapFile, SettingsAssets}; use util::ResultExt; use ui::{ - ActiveTheme as _, App, Banner, BorrowAppContext, ContextMenu, IconButtonShape, Modal, - ModalFooter, ModalHeader, ParentElement as _, Render, Section, SharedString, Styled as _, - Tooltip, Window, prelude::*, + ActiveTheme as _, App, Banner, BorrowAppContext, ContextMenu, IconButtonShape, Indicator, + Modal, ModalFooter, ModalHeader, ParentElement as _, Render, Section, SharedString, + Styled as _, Tooltip, Window, prelude::*, }; use ui_input::SingleLineInput; use workspace::{ @@ -179,14 +179,29 @@ impl FilterState { #[derive(Debug, Default, PartialEq, Eq, Clone, Hash)] struct ActionMapping { - keystroke_text: SharedString, + keystrokes: Vec, context: Option, } +#[derive(Debug)] +struct KeybindConflict { + first_conflict_index: usize, + remaining_conflict_amount: usize, +} + +impl KeybindConflict { + fn from_iter<'a>(mut indices: impl Iterator) -> Option { + indices.next().map(|index| Self { + first_conflict_index: *index, + remaining_conflict_amount: indices.count(), + }) + } +} + #[derive(Default)] struct ConflictState { conflicts: Vec, - action_keybind_mapping: HashMap>, + keybind_mapping: HashMap>, } impl ConflictState { @@ -197,7 +212,7 @@ impl ConflictState { .iter() .enumerate() .filter(|(_, binding)| { - !binding.keystroke_text.is_empty() + binding.keystrokes().is_some() && binding .source .as_ref() @@ -217,27 +232,26 @@ impl ConflictState { .flatten() .copied() .collect(), - action_keybind_mapping, + keybind_mapping: action_keybind_mapping, } } fn conflicting_indices_for_mapping( &self, - action_mapping: ActionMapping, + action_mapping: &ActionMapping, keybind_idx: usize, - ) -> Option> { - self.action_keybind_mapping - .get(&action_mapping) + ) -> Option { + self.keybind_mapping + .get(action_mapping) .and_then(|indices| { - let mut indices = indices.iter().filter(|&idx| *idx != keybind_idx).peekable(); - indices.peek().is_some().then(|| indices.copied().collect()) + KeybindConflict::from_iter(indices.iter().filter(|&idx| *idx != keybind_idx)) }) } - fn will_conflict(&self, action_mapping: ActionMapping) -> Option> { - self.action_keybind_mapping - .get(&action_mapping) - .and_then(|indices| indices.is_empty().not().then_some(indices.clone())) + fn will_conflict(&self, action_mapping: &ActionMapping) -> Option { + self.keybind_mapping + .get(action_mapping) + .and_then(|indices| KeybindConflict::from_iter(indices.iter())) } fn has_conflict(&self, candidate_idx: &usize) -> bool { @@ -267,7 +281,7 @@ struct KeymapEditor { selected_index: Option, context_menu: Option<(Entity, Point, Subscription)>, previous_edit: Option, - humanized_action_names: HashMap<&'static str, SharedString>, + humanized_action_names: HumanizedActionNameCache, show_hover_menus: bool, } @@ -332,14 +346,6 @@ impl KeymapEditor { }) .detach(); - let humanized_action_names = - HashMap::from_iter(cx.all_action_names().into_iter().map(|&action_name| { - ( - action_name, - command_palette::humanize_action_name(action_name).into(), - ) - })); - let mut this = Self { workspace, keybindings: vec![], @@ -356,8 +362,8 @@ impl KeymapEditor { selected_index: None, context_menu: None, previous_edit: None, - humanized_action_names, search_query_debounce: None, + humanized_action_names: HumanizedActionNameCache::new(cx), show_hover_menus: true, }; @@ -383,6 +389,24 @@ impl KeymapEditor { } } + fn filter_on_selected_binding_keystrokes(&mut self, cx: &mut Context) { + let Some(selected_binding) = self.selected_binding() else { + return; + }; + + let keystrokes = selected_binding + .keystrokes() + .map(Vec::from) + .unwrap_or_default(); + + self.filter_state = FilterState::All; + self.search_mode = SearchMode::KeyStroke { exact_match: true }; + + self.keystroke_editor.update(cx, |editor, cx| { + editor.set_keystrokes(keystrokes, cx); + }); + } + fn on_query_changed(&mut self, cx: &mut Context) { let action_query = self.current_action_query(cx); let keystroke_query = self.current_keystroke_query(cx); @@ -523,6 +547,7 @@ impl KeymapEditor { fn process_bindings( json_language: Arc, zed_keybind_context_language: Arc, + humanized_action_names: &HumanizedActionNameCache, cx: &mut App, ) -> (Vec, Vec) { let key_bindings_ptr = cx.key_bindings(); @@ -570,12 +595,14 @@ impl KeymapEditor { let action_docs = action_documentation.get(action_name).copied(); let index = processed_bindings.len(); - let string_match_candidate = StringMatchCandidate::new(index, &action_name); + let humanized_action_name = humanized_action_names.get(action_name); + let string_match_candidate = StringMatchCandidate::new(index, &humanized_action_name); processed_bindings.push(ProcessedKeybinding { keystroke_text: keystroke_text.into(), ui_key_binding, action_name, action_arguments, + humanized_action_name, action_docs, action_schema: action_schema.get(action_name).cloned(), context: Some(context), @@ -587,12 +614,14 @@ impl KeymapEditor { let empty = SharedString::new_static(""); for action_name in unmapped_action_names.into_iter() { let index = processed_bindings.len(); - let string_match_candidate = StringMatchCandidate::new(index, &action_name); + let humanized_action_name = humanized_action_names.get(action_name); + let string_match_candidate = StringMatchCandidate::new(index, &humanized_action_name); processed_bindings.push(ProcessedKeybinding { keystroke_text: empty.clone(), ui_key_binding: None, action_name, action_arguments: None, + humanized_action_name, action_docs: action_documentation.get(action_name).copied(), action_schema: action_schema.get(action_name).cloned(), context: None, @@ -612,15 +641,15 @@ impl KeymapEditor { load_keybind_context_language(workspace.clone(), cx).await; let (action_query, keystroke_query) = this.update(cx, |this, cx| { - let (key_bindings, string_match_candidates) = - Self::process_bindings(json_language, zed_keybind_context_language, cx); + let (key_bindings, string_match_candidates) = Self::process_bindings( + json_language, + zed_keybind_context_language, + &this.humanized_action_names, + cx, + ); this.keybinding_conflict_state = ConflictState::new(&key_bindings); - if !this.keybinding_conflict_state.any_conflicts() { - this.filter_state = FilterState::All; - } - this.keybindings = key_bindings; this.string_match_candidates = Arc::new(string_match_candidates); this.matches = this @@ -751,10 +780,6 @@ impl KeymapEditor { ) { let weak = cx.weak_entity(); self.context_menu = self.selected_binding().map(|selected_binding| { - let key_strokes = selected_binding - .keystrokes() - .map(Vec::from) - .unwrap_or_default(); let selected_binding_has_no_context = selected_binding .context .as_ref() @@ -784,17 +809,9 @@ impl KeymapEditor { Box::new(CopyContext), ) .entry("Show matching keybindings", None, { - let weak = weak.clone(); - let key_strokes = key_strokes.clone(); - move |_, cx| { weak.update(cx, |this, cx| { - this.filter_state = FilterState::All; - this.search_mode = SearchMode::KeyStroke { exact_match: true }; - - this.keystroke_editor.update(cx, |editor, cx| { - editor.set_keystrokes(key_strokes.clone(), cx); - }); + this.filter_on_selected_binding_keystrokes(cx); }) .ok(); } @@ -826,6 +843,24 @@ impl KeymapEditor { self.context_menu.is_some() } + fn render_no_matches_hint(&self, _window: &mut Window, _cx: &App) -> AnyElement { + let hint = match (self.filter_state, &self.search_mode) { + (FilterState::Conflicts, _) => { + if self.keybinding_conflict_state.any_conflicts() { + "No conflicting keybinds found that match the provided query" + } else { + "No conflicting keybinds found" + } + } + (FilterState::All, SearchMode::KeyStroke { .. }) => { + "No keybinds found matching the entered keystrokes" + } + (FilterState::All, SearchMode::Normal) => "No matches found for the provided query", + }; + + Label::new(hint).color(Color::Muted).into_any_element() + } + fn select_next(&mut self, _: &menu::SelectNext, window: &mut Window, cx: &mut Context) { self.show_hover_menus = false; if let Some(selected) = self.selected_index { @@ -1064,11 +1099,35 @@ impl KeymapEditor { } } +struct HumanizedActionNameCache { + cache: HashMap<&'static str, SharedString>, +} + +impl HumanizedActionNameCache { + fn new(cx: &App) -> Self { + let cache = HashMap::from_iter(cx.all_action_names().into_iter().map(|&action_name| { + ( + action_name, + command_palette::humanize_action_name(action_name).into(), + ) + })); + Self { cache } + } + + fn get(&self, action_name: &'static str) -> SharedString { + match self.cache.get(action_name) { + Some(name) => name.clone(), + None => action_name.into(), + } + } +} + #[derive(Clone)] struct ProcessedKeybinding { keystroke_text: SharedString, ui_key_binding: Option, action_name: &'static str, + humanized_action_name: SharedString, action_arguments: Option, action_docs: Option<&'static str>, action_schema: Option, @@ -1079,7 +1138,7 @@ struct ProcessedKeybinding { impl ProcessedKeybinding { fn get_action_mapping(&self) -> ActionMapping { ActionMapping { - keystroke_text: self.keystroke_text.clone(), + keystrokes: self.keystrokes().map(Vec::from).unwrap_or_default(), context: self .context .as_ref() @@ -1223,38 +1282,39 @@ impl Render for KeymapEditor { window.dispatch_action(ToggleKeystrokeSearch.boxed_clone(), cx); }), ) - .when(self.keybinding_conflict_state.any_conflicts(), |this| { - this.child( - IconButton::new("KeymapEditorConflictIcon", IconName::Warning) - .shape(ui::IconButtonShape::Square) - .tooltip({ - let filter_state = self.filter_state; + .child( + IconButton::new("KeymapEditorConflictIcon", IconName::Warning) + .shape(ui::IconButtonShape::Square) + .when(self.keybinding_conflict_state.any_conflicts(), |this| { + this.indicator(Indicator::dot().color(Color::Warning)) + }) + .tooltip({ + let filter_state = self.filter_state; - move |window, cx| { - Tooltip::for_action( - match filter_state { - FilterState::All => "Show Conflicts", - FilterState::Conflicts => "Hide Conflicts", - }, - &ToggleConflictFilter, - window, - cx, - ) - } - }) - .selected_icon_color(Color::Warning) - .toggle_state(matches!( - self.filter_state, - FilterState::Conflicts - )) - .on_click(|_, window, cx| { - window.dispatch_action( - ToggleConflictFilter.boxed_clone(), + move |window, cx| { + Tooltip::for_action( + match filter_state { + FilterState::All => "Show Conflicts", + FilterState::Conflicts => "Hide Conflicts", + }, + &ToggleConflictFilter, + window, cx, - ); - }), - ) - }), + ) + } + }) + .selected_icon_color(Color::Warning) + .toggle_state(matches!( + self.filter_state, + FilterState::Conflicts + )) + .on_click(|_, window, cx| { + window.dispatch_action( + ToggleConflictFilter.boxed_clone(), + cx, + ); + }), + ), ) .when_some( match self.search_mode { @@ -1310,13 +1370,17 @@ impl Render for KeymapEditor { Table::new() .interactable(&self.table_interaction_state) .striped() + .empty_table_callback({ + let this = cx.entity(); + move |window, cx| this.read(cx).render_no_matches_hint(window, cx) + }) .column_widths([ - rems(2.5), - rems(16.), - rems(16.), - rems(16.), - rems(32.), - rems(8.), + DefiniteLength::Absolute(AbsoluteLength::Pixels(px(40.))), + DefiniteLength::Fraction(0.25), + DefiniteLength::Fraction(0.20), + DefiniteLength::Fraction(0.14), + DefiniteLength::Fraction(0.45), + DefiniteLength::Fraction(0.08), ]) .header(["", "Action", "Arguments", "Keystrokes", "Context", "Source"]) .uniform_list( @@ -1393,10 +1457,9 @@ impl Render for KeymapEditor { .id(("keymap action", index)) .child({ if action_name != gpui::NoAction.name() { - this.humanized_action_names - .get(action_name) - .cloned() - .unwrap_or(action_name.into()) + binding + .humanized_action_name + .clone() .into_any_element() } else { const NULL: SharedString = @@ -1606,7 +1669,7 @@ impl RenderOnce for SyntaxHighlightedText { runs.push(text_style.to_run(text.len() - offset)); } - return StyledText::new(text).with_runs(runs); + StyledText::new(text).with_runs(runs) } } @@ -1621,8 +1684,8 @@ impl InputError { Self::Warning(message.into()) } - fn error(message: impl Into) -> Self { - Self::Error(message.into()) + fn error(error: anyhow::Error) -> Self { + Self::Error(error.to_string().into()) } fn content(&self) -> &SharedString { @@ -1630,10 +1693,6 @@ impl InputError { InputError::Warning(content) | InputError::Error(content) => content, } } - - fn is_warning(&self) -> bool { - matches!(self, InputError::Warning(_)) - } } struct KeybindingEditorModal { @@ -1766,17 +1825,14 @@ impl KeybindingEditorModal { } } - fn set_error(&mut self, error: InputError, cx: &mut Context) -> bool { + fn set_error(&mut self, error: InputError, cx: &mut Context) { if self .error .as_ref() - .is_some_and(|old_error| old_error.is_warning() && *old_error == error) + .is_none_or(|old_error| *old_error != error) { - false - } else { self.error = Some(error); cx.notify(); - true } } @@ -1818,66 +1874,62 @@ impl KeybindingEditorModal { Ok(Some(context)) } - fn save(&mut self, cx: &mut Context) { + fn save_or_display_error(&mut self, cx: &mut Context) { + self.save(cx).map_err(|err| self.set_error(err, cx)).ok(); + } + + fn save(&mut self, cx: &mut Context) -> Result<(), InputError> { let existing_keybind = self.editing_keybind.clone(); let fs = self.fs.clone(); let tab_size = cx.global::().json_tab_size(); - let new_keystrokes = match self.validate_keystrokes(cx) { - Err(err) => { - self.set_error(InputError::error(err.to_string()), cx); - return; - } - Ok(keystrokes) => keystrokes, - }; - let new_context = match self.validate_context(cx) { - Err(err) => { - self.set_error(InputError::error(err.to_string()), cx); - return; - } - Ok(context) => context, - }; + let new_keystrokes = self + .validate_keystrokes(cx) + .map_err(InputError::error)? + .into_iter() + .map(remove_key_char) + .collect::>(); - let new_action_args = match self.validate_action_arguments(cx) { - Err(input_err) => { - self.set_error(InputError::error(input_err.to_string()), cx); - return; - } - Ok(input) => input, - }; + let new_context = self.validate_context(cx).map_err(InputError::error)?; + let new_action_args = self + .validate_action_arguments(cx) + .map_err(InputError::error)?; let action_mapping = ActionMapping { - keystroke_text: ui::text_for_keystrokes(&new_keystrokes, cx).into(), - context: new_context.as_ref().map(Into::into), + keystrokes: new_keystrokes, + context: new_context.map(SharedString::from), }; let conflicting_indices = if self.creating { self.keymap_editor .read(cx) .keybinding_conflict_state - .will_conflict(action_mapping) + .will_conflict(&action_mapping) } else { self.keymap_editor .read(cx) .keybinding_conflict_state - .conflicting_indices_for_mapping(action_mapping, self.editing_keybind_idx) + .conflicting_indices_for_mapping(&action_mapping, self.editing_keybind_idx) }; - if let Some(conflicting_indices) = conflicting_indices { - let first_conflicting_index = conflicting_indices[0]; + + conflicting_indices.map(|KeybindConflict { + first_conflict_index, + remaining_conflict_amount, + }| + { let conflicting_action_name = self .keymap_editor .read(cx) .keybindings - .get(first_conflicting_index) + .get(first_conflict_index) .map(|keybind| keybind.action_name); let warning_message = match conflicting_action_name { Some(name) => { - let confliction_action_amount = conflicting_indices.len() - 1; - if confliction_action_amount > 0 { + if remaining_conflict_amount > 0 { format!( "Your keybind would conflict with the \"{}\" action and {} other bindings", - name, confliction_action_amount + name, remaining_conflict_amount ) } else { format!("Your keybind would conflict with the \"{}\" action", name) @@ -1886,23 +1938,26 @@ impl KeybindingEditorModal { None => { log::info!( "Could not find action in keybindings with index {}", - first_conflicting_index + first_conflict_index ); "Your keybind would conflict with other actions".to_string() } }; - if self.set_error(InputError::warning(warning_message), cx) { - return; + let warning = InputError::warning(warning_message); + if self.error.as_ref().is_some_and(|old_error| *old_error == warning) { + Ok(()) + } else { + Err(warning) } - } + }).unwrap_or(Ok(()))?; let create = self.creating; let status_toast = StatusToast::new( format!( "Saved edits to the {} action.", - command_palette::humanize_action_name(&self.editing_keybind.action_name) + &self.editing_keybind.humanized_action_name ), cx, move |this, _cx| { @@ -1924,8 +1979,7 @@ impl KeybindingEditorModal { if let Err(err) = save_keybinding_update( create, existing_keybind, - &new_keystrokes, - new_context.as_deref(), + &action_mapping, new_action_args.as_deref(), &fs, tab_size, @@ -1933,17 +1987,11 @@ impl KeybindingEditorModal { .await { this.update(cx, |this, cx| { - this.set_error(InputError::error(err.to_string()), cx); + this.set_error(InputError::error(err), cx); }) .log_err(); } else { this.update(cx, |this, cx| { - let action_mapping = ActionMapping { - keystroke_text: ui::text_for_keystrokes(new_keystrokes.as_slice(), cx) - .into(), - context: new_context.map(SharedString::from), - }; - this.keymap_editor.update(cx, |keymap, cx| { keymap.previous_edit = Some(PreviousEdit::Keybinding { action_mapping, @@ -1960,6 +2008,8 @@ impl KeybindingEditorModal { } }) .detach(); + + Ok(()) } fn key_context(&self) -> KeyContext { @@ -1982,7 +2032,7 @@ impl KeybindingEditorModal { } fn confirm(&mut self, _: &menu::Confirm, _window: &mut Window, cx: &mut Context) { - self.save(cx); + self.save_or_display_error(cx); } fn cancel(&mut self, _: &menu::Cancel, _window: &mut Window, cx: &mut Context) { @@ -1990,11 +2040,17 @@ impl KeybindingEditorModal { } } +fn remove_key_char(Keystroke { modifiers, key, .. }: Keystroke) -> Keystroke { + Keystroke { + modifiers, + key, + ..Default::default() + } +} + impl Render for KeybindingEditorModal { fn render(&mut self, _window: &mut Window, cx: &mut Context) -> impl IntoElement { let theme = cx.theme().colors(); - let action_name = - command_palette::humanize_action_name(&self.editing_keybind.action_name).to_string(); v_flex() .w(rems(34.)) @@ -2014,7 +2070,9 @@ impl Render for KeybindingEditorModal { .gap_0p5() .border_b_1() .border_color(theme.border_variant) - .child(Label::new(action_name)) + .child(Label::new( + self.editing_keybind.humanized_action_name.clone(), + )) .when_some(self.editing_keybind.action_docs, |this, docs| { this.child( Label::new(docs).size(LabelSize::Small).color(Color::Muted), @@ -2085,7 +2143,7 @@ impl Render for KeybindingEditorModal { ) .child(Button::new("save-btn", "Save").on_click(cx.listener( |this, _event, _window, cx| { - this.save(cx); + this.save_or_display_error(cx); }, ))), ), @@ -2273,8 +2331,7 @@ async fn load_keybind_context_language( async fn save_keybinding_update( create: bool, existing: ProcessedKeybinding, - new_keystrokes: &[Keystroke], - new_context: Option<&str>, + action_mapping: &ActionMapping, new_args: Option<&str>, fs: &Arc, tab_size: usize, @@ -2301,8 +2358,8 @@ async fn save_keybinding_update( }; let source = settings::KeybindUpdateTarget { - context: new_context, - keystrokes: new_keystrokes, + context: action_mapping.context.as_ref().map(|a| &***a), + keystrokes: &action_mapping.keystrokes, action_name: &existing.action_name, action_arguments: new_args, }; @@ -2772,7 +2829,7 @@ impl Render for KeystrokeInput { IconName::PlayFilled }; - return h_flex() + h_flex() .id("keystroke-input") .track_focus(&self.outer_focus_handle) .py_2() @@ -2895,7 +2952,7 @@ impl Render for KeystrokeInput { this.clear_keystrokes(&ClearKeystrokes, window, cx); })), ), - ); + ) } } diff --git a/crates/settings_ui/src/ui_components/table.rs b/crates/settings_ui/src/ui_components/table.rs index 98dd738765..6ea59cd2f4 100644 --- a/crates/settings_ui/src/ui_components/table.rs +++ b/crates/settings_ui/src/ui_components/table.rs @@ -40,6 +40,10 @@ impl TableContents { TableContents::UniformList(data) => data.row_count, } } + + fn is_empty(&self) -> bool { + self.len() == 0 + } } pub struct TableInteractionState { @@ -375,6 +379,7 @@ pub struct Table { interaction_state: Option>, column_widths: Option<[Length; COLS]>, map_row: Option AnyElement>>, + empty_table_callback: Option AnyElement>>, } impl Table { @@ -388,6 +393,7 @@ impl Table { interaction_state: None, column_widths: None, map_row: None, + empty_table_callback: None, } } @@ -460,6 +466,15 @@ impl Table { self.map_row = Some(Rc::new(callback)); self } + + /// Provide a callback that is invoked when the table is rendered without any rows + pub fn empty_table_callback( + mut self, + callback: impl Fn(&mut Window, &mut App) -> AnyElement + 'static, + ) -> Self { + self.empty_table_callback = Some(Rc::new(callback)); + self + } } fn base_cell_style(width: Option, cx: &App) -> Div { @@ -582,6 +597,7 @@ impl RenderOnce for Table { }; let width = self.width; + let no_rows_rendered = self.rows.is_empty(); let table = div() .when_some(width, |this, width| this.w(width)) @@ -662,6 +678,21 @@ impl RenderOnce for Table { }) }), ) + .when_some( + no_rows_rendered + .then_some(self.empty_table_callback) + .flatten(), + |this, callback| { + this.child( + h_flex() + .size_full() + .p_3() + .items_start() + .justify_center() + .child(callback(window, cx)), + ) + }, + ) .when_some( width.and(interaction_state.as_ref()), |this, interaction_state| { From d470411725d8de6f1129d3b9ddd322b6eaf50e42 Mon Sep 17 00:00:00 2001 From: Richard Feldman Date: Thu, 17 Jul 2025 18:12:48 -0400 Subject: [PATCH 0037/1052] Improve upstream error reporting (#34668) Now we handle more upstream error cases using the same auto-retry logic. Release Notes: - N/A --- crates/agent/src/thread.rs | 29 +++ crates/agent_ui/src/active_thread.rs | 2 +- .../assistant_tools/src/edit_agent/evals.rs | 25 +++ crates/language_model/src/language_model.rs | 6 + crates/language_models/src/provider/cloud.rs | 206 ++++++++++++++++++ 5 files changed, 267 insertions(+), 1 deletion(-) diff --git a/crates/agent/src/thread.rs b/crates/agent/src/thread.rs index dca0f5a430..54cc6296d5 100644 --- a/crates/agent/src/thread.rs +++ b/crates/agent/src/thread.rs @@ -2146,6 +2146,35 @@ impl Thread { max_attempts: MAX_RETRY_ATTEMPTS, }) } + UpstreamProviderError { + status, + retry_after, + .. + } => match *status { + StatusCode::TOO_MANY_REQUESTS | StatusCode::SERVICE_UNAVAILABLE => { + Some(RetryStrategy::Fixed { + delay: retry_after.unwrap_or(BASE_RETRY_DELAY), + max_attempts: MAX_RETRY_ATTEMPTS, + }) + } + StatusCode::INTERNAL_SERVER_ERROR => Some(RetryStrategy::Fixed { + delay: retry_after.unwrap_or(BASE_RETRY_DELAY), + // Internal Server Error could be anything, so only retry once. + max_attempts: 1, + }), + status => { + // There is no StatusCode variant for the unofficial HTTP 529 ("The service is overloaded"), + // but we frequently get them in practice. See https://http.dev/529 + if status.as_u16() == 529 { + Some(RetryStrategy::Fixed { + delay: retry_after.unwrap_or(BASE_RETRY_DELAY), + max_attempts: MAX_RETRY_ATTEMPTS, + }) + } else { + None + } + } + }, ApiInternalServerError { .. } => Some(RetryStrategy::Fixed { delay: BASE_RETRY_DELAY, max_attempts: 1, diff --git a/crates/agent_ui/src/active_thread.rs b/crates/agent_ui/src/active_thread.rs index 3cf68b887d..f5f6952519 100644 --- a/crates/agent_ui/src/active_thread.rs +++ b/crates/agent_ui/src/active_thread.rs @@ -1036,7 +1036,7 @@ impl ActiveThread { .collect::>() .join("\n"); self.last_error = Some(ThreadError::Message { - header: "Error interacting with language model".into(), + header: "Error".into(), message: error_message.into(), }); } diff --git a/crates/assistant_tools/src/edit_agent/evals.rs b/crates/assistant_tools/src/edit_agent/evals.rs index c7af7dc64e..eda7eee0e3 100644 --- a/crates/assistant_tools/src/edit_agent/evals.rs +++ b/crates/assistant_tools/src/edit_agent/evals.rs @@ -12,6 +12,7 @@ use collections::HashMap; use fs::FakeFs; use futures::{FutureExt, future::LocalBoxFuture}; use gpui::{AppContext, TestAppContext, Timer}; +use http_client::StatusCode; use indoc::{formatdoc, indoc}; use language_model::{ LanguageModelRegistry, LanguageModelRequestTool, LanguageModelToolResult, @@ -1675,6 +1676,30 @@ async fn retry_on_rate_limit(mut request: impl AsyncFnMut() -> Result) -> Timer::after(retry_after + jitter).await; continue; } + LanguageModelCompletionError::UpstreamProviderError { + status, + retry_after, + .. + } => { + // Only retry for specific status codes + let should_retry = matches!( + *status, + StatusCode::TOO_MANY_REQUESTS | StatusCode::SERVICE_UNAVAILABLE + ) || status.as_u16() == 529; + + if !should_retry { + return Err(err.into()); + } + + // Use server-provided retry_after if available, otherwise use default + let retry_after = retry_after.unwrap_or(Duration::from_secs(5)); + let jitter = retry_after.mul_f64(rand::thread_rng().gen_range(0.0..1.0)); + eprintln!( + "Attempt #{attempt}: {err}. Retry after {retry_after:?} + jitter of {jitter:?}" + ); + Timer::after(retry_after + jitter).await; + continue; + } _ => return Err(err.into()), }, Err(err) => return Err(err), diff --git a/crates/language_model/src/language_model.rs b/crates/language_model/src/language_model.rs index 8962e9d8d1..6bd33fcdf5 100644 --- a/crates/language_model/src/language_model.rs +++ b/crates/language_model/src/language_model.rs @@ -116,6 +116,12 @@ pub enum LanguageModelCompletionError { provider: LanguageModelProviderName, message: String, }, + #[error("{message}")] + UpstreamProviderError { + message: String, + status: StatusCode, + retry_after: Option, + }, #[error("HTTP response error from {provider}'s API: status {status_code} - {message:?}")] HttpResponseError { provider: LanguageModelProviderName, diff --git a/crates/language_models/src/provider/cloud.rs b/crates/language_models/src/provider/cloud.rs index c044a318b8..6aea576258 100644 --- a/crates/language_models/src/provider/cloud.rs +++ b/crates/language_models/src/provider/cloud.rs @@ -644,8 +644,62 @@ struct ApiError { headers: HeaderMap, } +/// Represents error responses from Zed's cloud API. +/// +/// Example JSON for an upstream HTTP error: +/// ```json +/// { +/// "code": "upstream_http_error", +/// "message": "Received an error from the Anthropic API: upstream connect error or disconnect/reset before headers, reset reason: connection timeout", +/// "upstream_status": 503 +/// } +/// ``` +#[derive(Debug, serde::Deserialize)] +struct CloudApiError { + code: String, + message: String, + #[serde(default)] + #[serde(deserialize_with = "deserialize_optional_status_code")] + upstream_status: Option, + #[serde(default)] + retry_after: Option, +} + +fn deserialize_optional_status_code<'de, D>(deserializer: D) -> Result, D::Error> +where + D: serde::Deserializer<'de>, +{ + let opt: Option = Option::deserialize(deserializer)?; + Ok(opt.and_then(|code| StatusCode::from_u16(code).ok())) +} + impl From for LanguageModelCompletionError { fn from(error: ApiError) -> Self { + if let Ok(cloud_error) = serde_json::from_str::(&error.body) { + if cloud_error.code.starts_with("upstream_http_") { + let status = if let Some(status) = cloud_error.upstream_status { + status + } else if cloud_error.code.ends_with("_error") { + error.status + } else { + // If there's a status code in the code string (e.g. "upstream_http_429") + // then use that; otherwise, see if the JSON contains a status code. + cloud_error + .code + .strip_prefix("upstream_http_") + .and_then(|code_str| code_str.parse::().ok()) + .and_then(|code| StatusCode::from_u16(code).ok()) + .unwrap_or(error.status) + }; + + return LanguageModelCompletionError::UpstreamProviderError { + message: cloud_error.message, + status, + retry_after: cloud_error.retry_after.map(Duration::from_secs_f64), + }; + } + } + let retry_after = None; LanguageModelCompletionError::from_http_status( PROVIDER_NAME, @@ -1279,3 +1333,155 @@ impl Component for ZedAiConfiguration { ) } } + +#[cfg(test)] +mod tests { + use super::*; + use http_client::http::{HeaderMap, StatusCode}; + use language_model::LanguageModelCompletionError; + + #[test] + fn test_api_error_conversion_with_upstream_http_error() { + // upstream_http_error with 503 status should become ServerOverloaded + let error_body = r#"{"code":"upstream_http_error","message":"Received an error from the Anthropic API: upstream connect error or disconnect/reset before headers, reset reason: connection timeout","upstream_status":503}"#; + + let api_error = ApiError { + status: StatusCode::INTERNAL_SERVER_ERROR, + body: error_body.to_string(), + headers: HeaderMap::new(), + }; + + let completion_error: LanguageModelCompletionError = api_error.into(); + + match completion_error { + LanguageModelCompletionError::UpstreamProviderError { message, .. } => { + assert_eq!( + message, + "Received an error from the Anthropic API: upstream connect error or disconnect/reset before headers, reset reason: connection timeout" + ); + } + _ => panic!( + "Expected UpstreamProviderError for upstream 503, got: {:?}", + completion_error + ), + } + + // upstream_http_error with 500 status should become ApiInternalServerError + let error_body = r#"{"code":"upstream_http_error","message":"Received an error from the OpenAI API: internal server error","upstream_status":500}"#; + + let api_error = ApiError { + status: StatusCode::INTERNAL_SERVER_ERROR, + body: error_body.to_string(), + headers: HeaderMap::new(), + }; + + let completion_error: LanguageModelCompletionError = api_error.into(); + + match completion_error { + LanguageModelCompletionError::UpstreamProviderError { message, .. } => { + assert_eq!( + message, + "Received an error from the OpenAI API: internal server error" + ); + } + _ => panic!( + "Expected UpstreamProviderError for upstream 500, got: {:?}", + completion_error + ), + } + + // upstream_http_error with 429 status should become RateLimitExceeded + let error_body = r#"{"code":"upstream_http_error","message":"Received an error from the Google API: rate limit exceeded","upstream_status":429}"#; + + let api_error = ApiError { + status: StatusCode::INTERNAL_SERVER_ERROR, + body: error_body.to_string(), + headers: HeaderMap::new(), + }; + + let completion_error: LanguageModelCompletionError = api_error.into(); + + match completion_error { + LanguageModelCompletionError::UpstreamProviderError { message, .. } => { + assert_eq!( + message, + "Received an error from the Google API: rate limit exceeded" + ); + } + _ => panic!( + "Expected UpstreamProviderError for upstream 429, got: {:?}", + completion_error + ), + } + + // Regular 500 error without upstream_http_error should remain ApiInternalServerError for Zed + let error_body = "Regular internal server error"; + + let api_error = ApiError { + status: StatusCode::INTERNAL_SERVER_ERROR, + body: error_body.to_string(), + headers: HeaderMap::new(), + }; + + let completion_error: LanguageModelCompletionError = api_error.into(); + + match completion_error { + LanguageModelCompletionError::ApiInternalServerError { provider, message } => { + assert_eq!(provider, PROVIDER_NAME); + assert_eq!(message, "Regular internal server error"); + } + _ => panic!( + "Expected ApiInternalServerError for regular 500, got: {:?}", + completion_error + ), + } + + // upstream_http_429 format should be converted to UpstreamProviderError + let error_body = r#"{"code":"upstream_http_429","message":"Upstream Anthropic rate limit exceeded.","retry_after":30.5}"#; + + let api_error = ApiError { + status: StatusCode::INTERNAL_SERVER_ERROR, + body: error_body.to_string(), + headers: HeaderMap::new(), + }; + + let completion_error: LanguageModelCompletionError = api_error.into(); + + match completion_error { + LanguageModelCompletionError::UpstreamProviderError { + message, + status, + retry_after, + } => { + assert_eq!(message, "Upstream Anthropic rate limit exceeded."); + assert_eq!(status, StatusCode::TOO_MANY_REQUESTS); + assert_eq!(retry_after, Some(Duration::from_secs_f64(30.5))); + } + _ => panic!( + "Expected UpstreamProviderError for upstream_http_429, got: {:?}", + completion_error + ), + } + + // Invalid JSON in error body should fall back to regular error handling + let error_body = "Not JSON at all"; + + let api_error = ApiError { + status: StatusCode::INTERNAL_SERVER_ERROR, + body: error_body.to_string(), + headers: HeaderMap::new(), + }; + + let completion_error: LanguageModelCompletionError = api_error.into(); + + match completion_error { + LanguageModelCompletionError::ApiInternalServerError { provider, .. } => { + assert_eq!(provider, PROVIDER_NAME); + } + _ => panic!( + "Expected ApiInternalServerError for invalid JSON, got: {:?}", + completion_error + ), + } + } +} From 1ab659c71fc8b12ab37c96dafec546d3afb744ea Mon Sep 17 00:00:00 2001 From: Richard Feldman Date: Thu, 17 Jul 2025 19:04:03 -0400 Subject: [PATCH 0038/1052] Retry on burn mode (#34669) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now we only auto-retry if burn mode is enabled. We also show a "Retry" button (so you don't have to type "continue") if you think that's the right remedy, and additionally we show a "Retry and Enable Burn Mode" button if you don't have it enabled. Screenshot 2025-07-17 at 6 25 27 PM Screenshot 2025-07-17 at 6 22 36 PM Release Notes: - Only auto-retry Agent requests when Burn Mode is enabled --- crates/agent/src/thread.rs | 200 ++++++++++++++++++++++++++++- crates/agent_ui/src/agent_panel.rs | 92 ++++++++++++- 2 files changed, 285 insertions(+), 7 deletions(-) diff --git a/crates/agent/src/thread.rs b/crates/agent/src/thread.rs index 54cc6296d5..180cc88390 100644 --- a/crates/agent/src/thread.rs +++ b/crates/agent/src/thread.rs @@ -396,6 +396,7 @@ pub struct Thread { remaining_turns: u32, configured_model: Option, profile: AgentProfile, + last_error_context: Option<(Arc, CompletionIntent)>, } #[derive(Clone, Debug)] @@ -489,10 +490,11 @@ impl Thread { retry_state: None, message_feedback: HashMap::default(), last_auto_capture_at: None, + last_error_context: None, last_received_chunk_at: None, request_callback: None, remaining_turns: u32::MAX, - configured_model, + configured_model: configured_model.clone(), profile: AgentProfile::new(profile_id, tools), } } @@ -613,6 +615,7 @@ impl Thread { feedback: None, message_feedback: HashMap::default(), last_auto_capture_at: None, + last_error_context: None, last_received_chunk_at: None, request_callback: None, remaining_turns: u32::MAX, @@ -1264,9 +1267,58 @@ impl Thread { self.flush_notifications(model.clone(), intent, cx); - let request = self.to_completion_request(model.clone(), intent, cx); + let _checkpoint = self.finalize_pending_checkpoint(cx); + self.stream_completion( + self.to_completion_request(model.clone(), intent, cx), + model, + intent, + window, + cx, + ); + } - self.stream_completion(request, model, intent, window, cx); + pub fn retry_last_completion( + &mut self, + window: Option, + cx: &mut Context, + ) { + // Clear any existing error state + self.retry_state = None; + + // Use the last error context if available, otherwise fall back to configured model + let (model, intent) = if let Some((model, intent)) = self.last_error_context.take() { + (model, intent) + } else if let Some(configured_model) = self.configured_model.as_ref() { + let model = configured_model.model.clone(); + let intent = if self.has_pending_tool_uses() { + CompletionIntent::ToolResults + } else { + CompletionIntent::UserPrompt + }; + (model, intent) + } else if let Some(configured_model) = self.get_or_init_configured_model(cx) { + let model = configured_model.model.clone(); + let intent = if self.has_pending_tool_uses() { + CompletionIntent::ToolResults + } else { + CompletionIntent::UserPrompt + }; + (model, intent) + } else { + return; + }; + + self.send_to_model(model, intent, window, cx); + } + + pub fn enable_burn_mode_and_retry( + &mut self, + window: Option, + cx: &mut Context, + ) { + self.completion_mode = CompletionMode::Burn; + cx.emit(ThreadEvent::ProfileChanged); + self.retry_last_completion(window, cx); } pub fn used_tools_since_last_user_message(&self) -> bool { @@ -2222,6 +2274,23 @@ impl Thread { window: Option, cx: &mut Context, ) -> bool { + // Store context for the Retry button + self.last_error_context = Some((model.clone(), intent)); + + // Only auto-retry if Burn Mode is enabled + if self.completion_mode != CompletionMode::Burn { + // Show error with retry options + cx.emit(ThreadEvent::ShowError(ThreadError::RetryableError { + message: format!( + "{}\n\nTo automatically retry when similar errors happen, enable Burn Mode.", + error + ) + .into(), + can_enable_burn_mode: true, + })); + return false; + } + let Some(strategy) = strategy.or_else(|| Self::get_retry_strategy(error)) else { return false; }; @@ -2302,6 +2371,13 @@ impl Thread { // Stop generating since we're giving up on retrying. self.pending_completions.clear(); + // Show error alongside a Retry button, but no + // Enable Burn Mode button (since it's already enabled) + cx.emit(ThreadEvent::ShowError(ThreadError::RetryableError { + message: format!("Failed after retrying: {}", error).into(), + can_enable_burn_mode: false, + })); + false } } @@ -3212,6 +3288,11 @@ pub enum ThreadError { header: SharedString, message: SharedString, }, + #[error("Retryable error: {message}")] + RetryableError { + message: SharedString, + can_enable_burn_mode: bool, + }, } #[derive(Debug, Clone)] @@ -4167,6 +4248,11 @@ fn main() {{ let project = create_test_project(cx, json!({})).await; let (_, _, thread, _, _base_model) = setup_test_environment(cx, project.clone()).await; + // Enable Burn Mode to allow retries + thread.update(cx, |thread, _| { + thread.set_completion_mode(CompletionMode::Burn); + }); + // Create model that returns overloaded error let model = Arc::new(ErrorInjector::new(TestError::Overloaded)); @@ -4240,6 +4326,11 @@ fn main() {{ let project = create_test_project(cx, json!({})).await; let (_, _, thread, _, _base_model) = setup_test_environment(cx, project.clone()).await; + // Enable Burn Mode to allow retries + thread.update(cx, |thread, _| { + thread.set_completion_mode(CompletionMode::Burn); + }); + // Create model that returns internal server error let model = Arc::new(ErrorInjector::new(TestError::InternalServerError)); @@ -4316,6 +4407,11 @@ fn main() {{ let project = create_test_project(cx, json!({})).await; let (_, _, thread, _, _base_model) = setup_test_environment(cx, project.clone()).await; + // Enable Burn Mode to allow retries + thread.update(cx, |thread, _| { + thread.set_completion_mode(CompletionMode::Burn); + }); + // Create model that returns internal server error let model = Arc::new(ErrorInjector::new(TestError::InternalServerError)); @@ -4423,6 +4519,11 @@ fn main() {{ let project = create_test_project(cx, json!({})).await; let (_, _, thread, _, _base_model) = setup_test_environment(cx, project.clone()).await; + // Enable Burn Mode to allow retries + thread.update(cx, |thread, _| { + thread.set_completion_mode(CompletionMode::Burn); + }); + // Create model that returns overloaded error let model = Arc::new(ErrorInjector::new(TestError::Overloaded)); @@ -4509,6 +4610,11 @@ fn main() {{ let project = create_test_project(cx, json!({})).await; let (_, _, thread, _, _base_model) = setup_test_environment(cx, project.clone()).await; + // Enable Burn Mode to allow retries + thread.update(cx, |thread, _| { + thread.set_completion_mode(CompletionMode::Burn); + }); + // We'll use a wrapper to switch behavior after first failure struct RetryTestModel { inner: Arc, @@ -4677,6 +4783,11 @@ fn main() {{ let project = create_test_project(cx, json!({})).await; let (_, _, thread, _, _base_model) = setup_test_environment(cx, project.clone()).await; + // Enable Burn Mode to allow retries + thread.update(cx, |thread, _| { + thread.set_completion_mode(CompletionMode::Burn); + }); + // Create a model that fails once then succeeds struct FailOnceModel { inner: Arc, @@ -4838,6 +4949,11 @@ fn main() {{ let project = create_test_project(cx, json!({})).await; let (_, _, thread, _, _base_model) = setup_test_environment(cx, project.clone()).await; + // Enable Burn Mode to allow retries + thread.update(cx, |thread, _| { + thread.set_completion_mode(CompletionMode::Burn); + }); + // Create a model that returns rate limit error with retry_after struct RateLimitModel { inner: Arc, @@ -5111,6 +5227,79 @@ fn main() {{ ); } + #[gpui::test] + async fn test_no_retry_without_burn_mode(cx: &mut TestAppContext) { + init_test_settings(cx); + + let project = create_test_project(cx, json!({})).await; + let (_, _, thread, _, _base_model) = setup_test_environment(cx, project.clone()).await; + + // Ensure we're in Normal mode (not Burn mode) + thread.update(cx, |thread, _| { + thread.set_completion_mode(CompletionMode::Normal); + }); + + // Track error events + let error_events = Arc::new(Mutex::new(Vec::new())); + let error_events_clone = error_events.clone(); + + let _subscription = thread.update(cx, |_, cx| { + cx.subscribe(&thread, move |_, _, event: &ThreadEvent, _| { + if let ThreadEvent::ShowError(error) = event { + error_events_clone.lock().push(error.clone()); + } + }) + }); + + // Create model that returns overloaded error + let model = Arc::new(ErrorInjector::new(TestError::Overloaded)); + + // Insert a user message + thread.update(cx, |thread, cx| { + thread.insert_user_message("Hello!", ContextLoadResult::default(), None, vec![], cx); + }); + + // Start completion + thread.update(cx, |thread, cx| { + thread.send_to_model(model.clone(), CompletionIntent::UserPrompt, None, cx); + }); + + cx.run_until_parked(); + + // Verify no retry state was created + thread.read_with(cx, |thread, _| { + assert!( + thread.retry_state.is_none(), + "Should not have retry state in Normal mode" + ); + }); + + // Check that a retryable error was reported + let errors = error_events.lock(); + assert!(!errors.is_empty(), "Should have received an error event"); + + if let ThreadError::RetryableError { + message: _, + can_enable_burn_mode, + } = &errors[0] + { + assert!( + *can_enable_burn_mode, + "Error should indicate burn mode can be enabled" + ); + } else { + panic!("Expected RetryableError, got {:?}", errors[0]); + } + + // Verify the thread is no longer generating + thread.read_with(cx, |thread, _| { + assert!( + !thread.is_generating(), + "Should not be generating after error without retry" + ); + }); + } + #[gpui::test] async fn test_retry_cancelled_on_stop(cx: &mut TestAppContext) { init_test_settings(cx); @@ -5118,6 +5307,11 @@ fn main() {{ let project = create_test_project(cx, json!({})).await; let (_, _, thread, _, _base_model) = setup_test_environment(cx, project.clone()).await; + // Enable Burn Mode to allow retries + thread.update(cx, |thread, _| { + thread.set_completion_mode(CompletionMode::Burn); + }); + // Create model that returns overloaded error let model = Arc::new(ErrorInjector::new(TestError::Overloaded)); diff --git a/crates/agent_ui/src/agent_panel.rs b/crates/agent_ui/src/agent_panel.rs index 895a499502..139e32f835 100644 --- a/crates/agent_ui/src/agent_panel.rs +++ b/crates/agent_ui/src/agent_panel.rs @@ -65,8 +65,9 @@ use theme::ThemeSettings; use time::UtcOffset; use ui::utils::WithRemSize; use ui::{ - Banner, Callout, CheckboxWithLabel, ContextMenu, ElevationIndex, KeyBinding, PopoverMenu, - PopoverMenuHandle, ProgressBar, Tab, Tooltip, Vector, VectorName, prelude::*, + Banner, Button, Callout, CheckboxWithLabel, ContextMenu, ElevationIndex, IconPosition, + KeyBinding, PopoverMenu, PopoverMenuHandle, ProgressBar, Tab, Tooltip, Vector, VectorName, + prelude::*, }; use util::ResultExt as _; use workspace::{ @@ -2977,6 +2978,21 @@ impl AgentPanel { .size(IconSize::Small) .color(Color::Error); + let retry_button = Button::new("retry", "Retry") + .icon(IconName::RotateCw) + .icon_position(IconPosition::Start) + .on_click({ + let thread = thread.clone(); + move |_, window, cx| { + thread.update(cx, |thread, cx| { + thread.clear_last_error(); + thread.thread().update(cx, |thread, cx| { + thread.retry_last_completion(Some(window.window_handle()), cx); + }); + }); + } + }); + div() .border_t_1() .border_color(cx.theme().colors().border) @@ -2985,13 +3001,72 @@ impl AgentPanel { .icon(icon) .title(header) .description(message.clone()) - .primary_action(self.dismiss_error_button(thread, cx)) - .secondary_action(self.create_copy_button(message_with_header)) + .primary_action(retry_button) + .secondary_action(self.dismiss_error_button(thread, cx)) + .tertiary_action(self.create_copy_button(message_with_header)) .bg_color(self.error_callout_bg(cx)), ) .into_any_element() } + fn render_retryable_error( + &self, + message: SharedString, + can_enable_burn_mode: bool, + thread: &Entity, + cx: &mut Context, + ) -> AnyElement { + let icon = Icon::new(IconName::XCircle) + .size(IconSize::Small) + .color(Color::Error); + + let retry_button = Button::new("retry", "Retry") + .icon(IconName::RotateCw) + .icon_position(IconPosition::Start) + .on_click({ + let thread = thread.clone(); + move |_, window, cx| { + thread.update(cx, |thread, cx| { + thread.clear_last_error(); + thread.thread().update(cx, |thread, cx| { + thread.retry_last_completion(Some(window.window_handle()), cx); + }); + }); + } + }); + + let mut callout = Callout::new() + .icon(icon) + .title("Error") + .description(message.clone()) + .bg_color(self.error_callout_bg(cx)) + .primary_action(retry_button); + + if can_enable_burn_mode { + let burn_mode_button = Button::new("enable_burn_retry", "Enable Burn Mode and Retry") + .icon(IconName::ZedBurnMode) + .icon_position(IconPosition::Start) + .on_click({ + let thread = thread.clone(); + move |_, window, cx| { + thread.update(cx, |thread, cx| { + thread.clear_last_error(); + thread.thread().update(cx, |thread, cx| { + thread.enable_burn_mode_and_retry(Some(window.window_handle()), cx); + }); + }); + } + }); + callout = callout.secondary_action(burn_mode_button); + } + + div() + .border_t_1() + .border_color(cx.theme().colors().border) + .child(callout) + .into_any_element() + } + fn render_prompt_editor( &self, context_editor: &Entity, @@ -3233,6 +3308,15 @@ impl Render for AgentPanel { ThreadError::Message { header, message } => { self.render_error_message(header, message, thread, cx) } + ThreadError::RetryableError { + message, + can_enable_burn_mode, + } => self.render_retryable_error( + message, + can_enable_burn_mode, + thread, + cx, + ), }) .into_any(), ) From f0a91502a925d74491083bd126690b6f730fbdf1 Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Thu, 17 Jul 2025 20:22:21 -0300 Subject: [PATCH 0039/1052] keymap_ui: Add some design refinements (#34673) Mostly small stuff over here. Release Notes: - N/A --- crates/settings_ui/src/keybindings.rs | 91 +++++++++++++++------------ 1 file changed, 50 insertions(+), 41 deletions(-) diff --git a/crates/settings_ui/src/keybindings.rs b/crates/settings_ui/src/keybindings.rs index d5ac253fb8..2e00426c1b 100644 --- a/crates/settings_ui/src/keybindings.rs +++ b/crates/settings_ui/src/keybindings.rs @@ -808,7 +808,8 @@ impl KeymapEditor { "Copy Context", Box::new(CopyContext), ) - .entry("Show matching keybindings", None, { + .separator() + .entry("Show Matching Keybindings", None, { move |_, cx| { weak.update(cx, |this, cx| { this.filter_on_selected_binding_keystrokes(cx); @@ -1211,10 +1212,11 @@ impl Render for KeymapEditor { fn render(&mut self, _window: &mut Window, cx: &mut ui::Context) -> impl ui::IntoElement { let row_count = self.matches.len(); let theme = cx.theme(); + let focus_handle = &self.focus_handle; v_flex() .id("keymap-editor") - .track_focus(&self.focus_handle) + .track_focus(focus_handle) .key_context(self.key_context()) .on_action(cx.listener(Self::select_next)) .on_action(cx.listener(Self::select_previous)) @@ -1229,16 +1231,15 @@ impl Render for KeymapEditor { .on_action(cx.listener(Self::toggle_conflict_filter)) .on_action(cx.listener(Self::toggle_keystroke_search)) .on_action(cx.listener(Self::toggle_exact_keystroke_matching)) + .on_mouse_move(cx.listener(|this, _, _window, _cx| { + this.show_hover_menus = true; + })) .size_full() .p_2() .gap_1() .bg(theme.colors().editor_background) - .on_mouse_move(cx.listener(|this, _, _window, _cx| { - this.show_hover_menus = true; - })) .child( v_flex() - .p_2() .gap_2() .child( h_flex() @@ -1266,13 +1267,18 @@ impl Render for KeymapEditor { IconName::Keyboard, ) .shape(ui::IconButtonShape::Square) - .tooltip(|window, cx| { - Tooltip::for_action( - "Search by Keystroke", - &ToggleKeystrokeSearch, - window, - cx, - ) + .tooltip({ + let focus_handle = focus_handle.clone(); + + move |window, cx| { + Tooltip::for_action_in( + "Search by Keystroke", + &ToggleKeystrokeSearch, + &focus_handle.clone(), + window, + cx, + ) + } }) .toggle_state(matches!( self.search_mode, @@ -1290,14 +1296,16 @@ impl Render for KeymapEditor { }) .tooltip({ let filter_state = self.filter_state; + let focus_handle = focus_handle.clone(); move |window, cx| { - Tooltip::for_action( + Tooltip::for_action_in( match filter_state { FilterState::All => "Show Conflicts", FilterState::Conflicts => "Hide Conflicts", }, &ToggleConflictFilter, + &focus_handle.clone(), window, cx, ) @@ -1331,35 +1339,36 @@ impl Render for KeymapEditor { this.pr_7() } }) + .gap_2() .child(self.keystroke_editor.clone()) .child( - div().p_1().child( - IconButton::new( - "keystrokes-exact-match", - IconName::Equal, - ) - .tooltip(move |window, cx| { - Tooltip::for_action( - if exact_match { - "Partial match mode" - } else { - "Exact match mode" - }, + IconButton::new( + "keystrokes-exact-match", + IconName::CaseSensitive, + ) + .tooltip({ + let keystroke_focus_handle = + self.keystroke_editor.read(cx).focus_handle(cx); + + move |window, cx| { + Tooltip::for_action_in( + "Toggle Exact Match Mode", &ToggleExactKeystrokeMatching, + &keystroke_focus_handle, window, cx, ) - }) - .shape(IconButtonShape::Square) - .toggle_state(exact_match) - .on_click( - cx.listener(|_, _, window, cx| { - window.dispatch_action( - ToggleExactKeystrokeMatching.boxed_clone(), - cx, - ); - }), - ), + } + }) + .shape(IconButtonShape::Square) + .toggle_state(exact_match) + .on_click( + cx.listener(|_, _, window, cx| { + window.dispatch_action( + ToggleExactKeystrokeMatching.boxed_clone(), + cx, + ); + }), ), ), ) @@ -2771,7 +2780,7 @@ impl Render for KeystrokeInput { .editor_background .blend(colors.text_accent.opacity(0.1)); - let recording_pulse = || { + let recording_pulse = |color: Color| { Icon::new(IconName::Circle) .size(IconSize::Small) .color(Color::Error) @@ -2781,7 +2790,7 @@ impl Render for KeystrokeInput { .repeat() .with_easing(gpui::pulsating_between(0.4, 0.8)), { - let color = Color::Error.color(cx); + let color = color.color(cx); move |this, delta| this.color(Color::Custom(color.opacity(delta))) }, ) @@ -2797,7 +2806,7 @@ impl Render for KeystrokeInput { .editor_background .blend(colors.text_accent.opacity(0.1))) .rounded_sm() - .child(recording_pulse()) + .child(recording_pulse(Color::Error)) .child( Label::new("REC") .size(LabelSize::XSmall) @@ -2815,7 +2824,7 @@ impl Render for KeystrokeInput { .editor_background .blend(colors.text_accent.opacity(0.1))) .rounded_sm() - .child(recording_pulse()) + .child(recording_pulse(Color::Accent)) .child( Label::new("SEARCH") .size(LabelSize::XSmall) From ed4deaa7389e6d740c32b9a3a9c0dd69b7bececf Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Thu, 17 Jul 2025 20:46:16 -0300 Subject: [PATCH 0040/1052] agent: Remove layout shift due to the "waiting for confirmation" label (#34674) Take 2 on https://github.com/zed-industries/zed/pull/33046. Release Notes: - N/A --- crates/agent/src/context_server_tool.rs | 2 +- crates/agent_ui/src/active_thread.rs | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/crates/agent/src/context_server_tool.rs b/crates/agent/src/context_server_tool.rs index da7de1e312..4c6d2b2b0b 100644 --- a/crates/agent/src/context_server_tool.rs +++ b/crates/agent/src/context_server_tool.rs @@ -38,7 +38,7 @@ impl Tool for ContextServerTool { } fn icon(&self) -> IconName { - IconName::Cog + IconName::ToolHammer } fn source(&self) -> ToolSource { diff --git a/crates/agent_ui/src/active_thread.rs b/crates/agent_ui/src/active_thread.rs index f5f6952519..14e7cf05b5 100644 --- a/crates/agent_ui/src/active_thread.rs +++ b/crates/agent_ui/src/active_thread.rs @@ -3202,7 +3202,10 @@ impl ActiveThread { .border_color(self.tool_card_border_color(cx)) .rounded_b_lg() .child( - LoadingLabel::new("Waiting for Confirmation").size(LabelSize::Small) + div() + .min_w(rems_from_px(145.)) + .child(LoadingLabel::new("Waiting for Confirmation").size(LabelSize::Small) + ) ) .child( h_flex() @@ -3247,7 +3250,6 @@ impl ActiveThread { }, )) }) - .child(ui::Divider::vertical()) .child({ let tool_id = tool_use.id.clone(); Button::new("allow-tool-action", "Allow") From 4314b3528898050c119075f0adf98e8b0c680371 Mon Sep 17 00:00:00 2001 From: Ben Kunkle Date: Thu, 17 Jul 2025 19:03:10 -0500 Subject: [PATCH 0041/1052] keymap_ui: Don't panic on `KeybindSource::from_meta` (#34652) Closes #ISSUE Log error instead of panicking when `from_meta` is passed an invalid value Release Notes: - N/A *or* Added/Fixed/Improved ... --- crates/settings/src/keymap_file.rs | 10 +++++++--- crates/settings_ui/src/keybindings.rs | 5 ++++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/crates/settings/src/keymap_file.rs b/crates/settings/src/keymap_file.rs index e6a32f731b..3a01d889c4 100644 --- a/crates/settings/src/keymap_file.rs +++ b/crates/settings/src/keymap_file.rs @@ -992,13 +992,17 @@ impl KeybindSource { } pub fn from_meta(index: KeyBindingMetaIndex) -> Self { - match index { + Self::try_from_meta(index).unwrap() + } + + pub fn try_from_meta(index: KeyBindingMetaIndex) -> Result { + Ok(match index { Self::USER => KeybindSource::User, Self::BASE => KeybindSource::Base, Self::DEFAULT => KeybindSource::Default, Self::VIM => KeybindSource::Vim, - _ => unreachable!(), - } + _ => anyhow::bail!("Invalid keybind source {:?}", index), + }) } } diff --git a/crates/settings_ui/src/keybindings.rs b/crates/settings_ui/src/keybindings.rs index 2e00426c1b..29927c4196 100644 --- a/crates/settings_ui/src/keybindings.rs +++ b/crates/settings_ui/src/keybindings.rs @@ -567,7 +567,10 @@ impl KeymapEditor { let mut string_match_candidates = Vec::new(); for key_binding in key_bindings { - let source = key_binding.meta().map(settings::KeybindSource::from_meta); + let source = key_binding + .meta() + .map(settings::KeybindSource::try_from_meta) + .and_then(|source| source.log_err()); let keystroke_text = ui::text_for_keystrokes(key_binding.keystrokes(), cx); let ui_key_binding = Some( From a7284adafab23d96330584bb0db38c85b0f171e5 Mon Sep 17 00:00:00 2001 From: Smit Barmase Date: Fri, 18 Jul 2025 06:07:52 +0530 Subject: [PATCH 0042/1052] =?UTF-8?q?editor:=20Fix=20cursor=20doesn?= =?UTF-8?q?=E2=80=99t=20move=20up=20and=20down=20on=20arrow=20keys=20when?= =?UTF-8?q?=20no=20completions=20are=20shown=20(#34678)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #34338 After https://github.com/zed-industries/zed/pull/31872, to avoid re-querying language servers, we keep the context menu around, which stores initial query, completions items, etc., even though it may not contain any items and hence not be rendered on screen. In this state, up/down arrows try to switch focus in the context menu instead of propagating it to the editor. Hence blocking buffer movement. This PR fixes it by changing the context for `menu`, `showing_completions`, and `showing_code_actions` to only be added when the menu is actually being rendered (i.e., not empty). Release Notes: - Fix an issue where the cursor doesn’t move up and down on arrow keys when no completions are shown. --- crates/editor/src/code_context_menus.rs | 2 +- crates/editor/src/editor.rs | 16 ++++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/crates/editor/src/code_context_menus.rs b/crates/editor/src/code_context_menus.rs index c7477837dd..9f842836ed 100644 --- a/crates/editor/src/code_context_menus.rs +++ b/crates/editor/src/code_context_menus.rs @@ -1384,7 +1384,7 @@ impl CodeActionsMenu { } } - fn visible(&self) -> bool { + pub fn visible(&self) -> bool { !self.actions.is_empty() } diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index 6ad4fc0318..c3187f6b51 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -2382,13 +2382,17 @@ impl Editor { } match self.context_menu.borrow().as_ref() { - Some(CodeContextMenu::Completions(_)) => { - key_context.add("menu"); - key_context.add("showing_completions"); + Some(CodeContextMenu::Completions(menu)) => { + if menu.visible() { + key_context.add("menu"); + key_context.add("showing_completions"); + } } - Some(CodeContextMenu::CodeActions(_)) => { - key_context.add("menu"); - key_context.add("showing_code_actions") + Some(CodeContextMenu::CodeActions(menu)) => { + if menu.visible() { + key_context.add("menu"); + key_context.add("showing_code_actions") + } } None => {} } From c287397a18e3f1385d634daf00f88776ca688533 Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Thu, 17 Jul 2025 21:40:02 -0300 Subject: [PATCH 0043/1052] Rename "CloseInactiveItems" action to "CloseOtherItems" (#34676) This is following feedback from folks that were searching the "close others" action, available in the tab's context menu, and not finding it because it was actually named "close inactive", which was confusing. So, this PR makes sure the tab's menu item and the action have consistent naming. Release Notes: - Rename "CloseInactiveItems" action to "CloseOtherItems" for naming consistency. --- assets/keymaps/default-linux.json | 2 +- assets/keymaps/default-macos.json | 2 +- assets/keymaps/linux/emacs.json | 2 +- assets/keymaps/macos/emacs.json | 2 +- crates/collab/src/tests/following_tests.rs | 2 +- crates/editor/src/editor_tests.rs | 6 ++--- crates/vim/src/command.rs | 4 ++-- crates/workspace/src/pane.rs | 27 +++++++++++----------- crates/workspace/src/workspace.rs | 8 +++---- 9 files changed, 28 insertions(+), 27 deletions(-) diff --git a/assets/keymaps/default-linux.json b/assets/keymaps/default-linux.json index ebc88ec135..b859d2d84c 100644 --- a/assets/keymaps/default-linux.json +++ b/assets/keymaps/default-linux.json @@ -419,7 +419,7 @@ "ctrl-shift-pagedown": "pane::SwapItemRight", "ctrl-f4": ["pane::CloseActiveItem", { "close_pinned": false }], "ctrl-w": ["pane::CloseActiveItem", { "close_pinned": false }], - "alt-ctrl-t": ["pane::CloseInactiveItems", { "close_pinned": false }], + "alt-ctrl-t": ["pane::CloseOtherItems", { "close_pinned": false }], "alt-ctrl-shift-w": "workspace::CloseInactiveTabsAndPanes", "ctrl-k e": ["pane::CloseItemsToTheLeft", { "close_pinned": false }], "ctrl-k t": ["pane::CloseItemsToTheRight", { "close_pinned": false }], diff --git a/assets/keymaps/default-macos.json b/assets/keymaps/default-macos.json index cec485ce88..748deaa05d 100644 --- a/assets/keymaps/default-macos.json +++ b/assets/keymaps/default-macos.json @@ -477,7 +477,7 @@ "ctrl-shift-pageup": "pane::SwapItemLeft", "ctrl-shift-pagedown": "pane::SwapItemRight", "cmd-w": ["pane::CloseActiveItem", { "close_pinned": false }], - "alt-cmd-t": ["pane::CloseInactiveItems", { "close_pinned": false }], + "alt-cmd-t": ["pane::CloseOtherItems", { "close_pinned": false }], "ctrl-alt-cmd-w": "workspace::CloseInactiveTabsAndPanes", "cmd-k e": ["pane::CloseItemsToTheLeft", { "close_pinned": false }], "cmd-k t": ["pane::CloseItemsToTheRight", { "close_pinned": false }], diff --git a/assets/keymaps/linux/emacs.json b/assets/keymaps/linux/emacs.json index 0c633efabe..0ff3796f03 100755 --- a/assets/keymaps/linux/emacs.json +++ b/assets/keymaps/linux/emacs.json @@ -114,7 +114,7 @@ "ctrl-x o": "workspace::ActivateNextPane", // other-window "ctrl-x k": "pane::CloseActiveItem", // kill-buffer "ctrl-x 0": "pane::CloseActiveItem", // delete-window - "ctrl-x 1": "pane::CloseInactiveItems", // delete-other-windows + "ctrl-x 1": "pane::CloseOtherItems", // delete-other-windows "ctrl-x 2": "pane::SplitDown", // split-window-below "ctrl-x 3": "pane::SplitRight", // split-window-right "ctrl-x ctrl-f": "file_finder::Toggle", // find-file diff --git a/assets/keymaps/macos/emacs.json b/assets/keymaps/macos/emacs.json index 0c633efabe..0ff3796f03 100755 --- a/assets/keymaps/macos/emacs.json +++ b/assets/keymaps/macos/emacs.json @@ -114,7 +114,7 @@ "ctrl-x o": "workspace::ActivateNextPane", // other-window "ctrl-x k": "pane::CloseActiveItem", // kill-buffer "ctrl-x 0": "pane::CloseActiveItem", // delete-window - "ctrl-x 1": "pane::CloseInactiveItems", // delete-other-windows + "ctrl-x 1": "pane::CloseOtherItems", // delete-other-windows "ctrl-x 2": "pane::SplitDown", // split-window-below "ctrl-x 3": "pane::SplitRight", // split-window-right "ctrl-x ctrl-f": "file_finder::Toggle", // find-file diff --git a/crates/collab/src/tests/following_tests.rs b/crates/collab/src/tests/following_tests.rs index 3aa86a434d..1a4c3a70a4 100644 --- a/crates/collab/src/tests/following_tests.rs +++ b/crates/collab/src/tests/following_tests.rs @@ -1013,7 +1013,7 @@ async fn test_peers_following_each_other(cx_a: &mut TestAppContext, cx_b: &mut T // and some of which were originally opened by client B. workspace_b.update_in(cx_b, |workspace, window, cx| { workspace.active_pane().update(cx, |pane, cx| { - pane.close_inactive_items(&Default::default(), None, window, cx) + pane.close_other_items(&Default::default(), None, window, cx) .detach(); }); }); diff --git a/crates/editor/src/editor_tests.rs b/crates/editor/src/editor_tests.rs index 43c9c0db65..4efb052c71 100644 --- a/crates/editor/src/editor_tests.rs +++ b/crates/editor/src/editor_tests.rs @@ -55,7 +55,7 @@ use util::{ uri, }; use workspace::{ - CloseActiveItem, CloseAllItems, CloseInactiveItems, MoveItemToPaneInDirection, NavigationEntry, + CloseActiveItem, CloseAllItems, CloseOtherItems, MoveItemToPaneInDirection, NavigationEntry, OpenOptions, ViewId, item::{FollowEvent, FollowableItem, Item, ItemHandle, SaveOptions}, }; @@ -21463,7 +21463,7 @@ println!("5"); .unwrap(); pane_1 .update_in(cx, |pane, window, cx| { - pane.close_inactive_items(&CloseInactiveItems::default(), None, window, cx) + pane.close_other_items(&CloseOtherItems::default(), None, window, cx) }) .await .unwrap(); @@ -21499,7 +21499,7 @@ println!("5"); .unwrap(); pane_2 .update_in(cx, |pane, window, cx| { - pane.close_inactive_items(&CloseInactiveItems::default(), None, window, cx) + pane.close_other_items(&CloseOtherItems::default(), None, window, cx) }) .await .unwrap(); diff --git a/crates/vim/src/command.rs b/crates/vim/src/command.rs index 74aed815a2..23e04cae2c 100644 --- a/crates/vim/src/command.rs +++ b/crates/vim/src/command.rs @@ -1085,12 +1085,12 @@ fn generate_commands(_: &App) -> Vec { ), VimCommand::new( ("tabo", "nly"), - workspace::CloseInactiveItems { + workspace::CloseOtherItems { save_intent: Some(SaveIntent::Close), close_pinned: false, }, ) - .bang(workspace::CloseInactiveItems { + .bang(workspace::CloseOtherItems { save_intent: Some(SaveIntent::Skip), close_pinned: false, }), diff --git a/crates/workspace/src/pane.rs b/crates/workspace/src/pane.rs index 19afd49848..7cc10c27f7 100644 --- a/crates/workspace/src/pane.rs +++ b/crates/workspace/src/pane.rs @@ -116,7 +116,8 @@ pub struct CloseActiveItem { #[derive(Clone, PartialEq, Debug, Deserialize, JsonSchema, Default, Action)] #[action(namespace = pane)] #[serde(deny_unknown_fields)] -pub struct CloseInactiveItems { +#[action(deprecated_aliases = ["pane::CloseInactiveItems"])] +pub struct CloseOtherItems { #[serde(default)] pub save_intent: Option, #[serde(default)] @@ -1354,9 +1355,9 @@ impl Pane { }) } - pub fn close_inactive_items( + pub fn close_other_items( &mut self, - action: &CloseInactiveItems, + action: &CloseOtherItems, target_item_id: Option, window: &mut Window, cx: &mut Context, @@ -2578,7 +2579,7 @@ impl Pane { save_intent: None, close_pinned: true, }; - let close_inactive_items_action = CloseInactiveItems { + let close_inactive_items_action = CloseOtherItems { save_intent: None, close_pinned: false, }; @@ -2610,7 +2611,7 @@ impl Pane { .action(Box::new(close_inactive_items_action.clone())) .disabled(total_items == 1) .handler(window.handler_for(&pane, move |pane, window, cx| { - pane.close_inactive_items( + pane.close_other_items( &close_inactive_items_action, Some(item_id), window, @@ -3521,8 +3522,8 @@ impl Render for Pane { }), ) .on_action( - cx.listener(|pane: &mut Self, action: &CloseInactiveItems, window, cx| { - pane.close_inactive_items(action, None, window, cx) + cx.listener(|pane: &mut Self, action: &CloseOtherItems, window, cx| { + pane.close_other_items(action, None, window, cx) .detach_and_log_err(cx); }), ) @@ -5853,8 +5854,8 @@ mod tests { assert_item_labels(&pane, ["A!", "B!", "C", "D", "E*"], cx); pane.update_in(cx, |pane, window, cx| { - pane.close_inactive_items( - &CloseInactiveItems { + pane.close_other_items( + &CloseOtherItems { save_intent: None, close_pinned: false, }, @@ -5890,8 +5891,8 @@ mod tests { assert_item_labels(&pane, ["A", "B", "C", "D", "E*"], cx); pane.update_in(cx, |pane, window, cx| { - pane.close_inactive_items( - &CloseInactiveItems { + pane.close_other_items( + &CloseOtherItems { save_intent: None, close_pinned: false, }, @@ -6256,8 +6257,8 @@ mod tests { .unwrap(); pane.update_in(cx, |pane, window, cx| { - pane.close_inactive_items( - &CloseInactiveItems { + pane.close_other_items( + &CloseOtherItems { save_intent: None, close_pinned: false, }, diff --git a/crates/workspace/src/workspace.rs b/crates/workspace/src/workspace.rs index be5d693d35..f37abe59e2 100644 --- a/crates/workspace/src/workspace.rs +++ b/crates/workspace/src/workspace.rs @@ -2793,8 +2793,8 @@ impl Workspace { if retain_active_pane { let current_pane_close = current_pane.update(cx, |pane, cx| { - pane.close_inactive_items( - &CloseInactiveItems { + pane.close_other_items( + &CloseOtherItems { save_intent: None, close_pinned: false, }, @@ -9471,8 +9471,8 @@ mod tests { ); }); let close_all_but_multi_buffer_task = pane.update_in(cx, |pane, window, cx| { - pane.close_inactive_items( - &CloseInactiveItems { + pane.close_other_items( + &CloseOtherItems { save_intent: Some(SaveIntent::Save), close_pinned: true, }, From 8a7bd5f47b69741a66b8929f5937175cee4bc544 Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Thu, 17 Jul 2025 22:19:27 -0300 Subject: [PATCH 0044/1052] agent: Adjust retry on Burn Mode layout (#34680) Quick follow-up to https://github.com/zed-industries/zed/pull/34669 so that the buttons don't look so big in comparison to the callout. Release Notes: - N/A --- crates/agent_ui/src/agent_panel.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/crates/agent_ui/src/agent_panel.rs b/crates/agent_ui/src/agent_panel.rs index 139e32f835..087eec5efb 100644 --- a/crates/agent_ui/src/agent_panel.rs +++ b/crates/agent_ui/src/agent_panel.rs @@ -2981,6 +2981,8 @@ impl AgentPanel { let retry_button = Button::new("retry", "Retry") .icon(IconName::RotateCw) .icon_position(IconPosition::Start) + .icon_size(IconSize::Small) + .label_size(LabelSize::Small) .on_click({ let thread = thread.clone(); move |_, window, cx| { @@ -3023,6 +3025,8 @@ impl AgentPanel { let retry_button = Button::new("retry", "Retry") .icon(IconName::RotateCw) .icon_position(IconPosition::Start) + .icon_size(IconSize::Small) + .label_size(LabelSize::Small) .on_click({ let thread = thread.clone(); move |_, window, cx| { @@ -3046,6 +3050,8 @@ impl AgentPanel { let burn_mode_button = Button::new("enable_burn_retry", "Enable Burn Mode and Retry") .icon(IconName::ZedBurnMode) .icon_position(IconPosition::Start) + .icon_size(IconSize::Small) + .label_size(LabelSize::Small) .on_click({ let thread = thread.clone(); move |_, window, cx| { From c1307cead48ba96c663d9d074ebeb21a1c90d96d Mon Sep 17 00:00:00 2001 From: Daniel Sauble Date: Thu, 17 Jul 2025 21:30:01 -0700 Subject: [PATCH 0045/1052] Add `;` key binding for Helix mode (#34315) Closes #34111 In Helix mode, the `;` key should collapse the current selection without moving the cursor. I've added a new action `vim::HelixCollapseSelection` to support this behavior. https://github.com/user-attachments/assets/1a40821a-f56f-456e-9d37-532500bef17b Release Notes: - Added `;` key binding to collapse the current text selection in Helix mode --- assets/keymaps/vim.json | 1 + crates/vim/src/normal.rs | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/assets/keymaps/vim.json b/assets/keymaps/vim.json index dcb52e5250..89a71e59e6 100644 --- a/assets/keymaps/vim.json +++ b/assets/keymaps/vim.json @@ -377,6 +377,7 @@ "context": "vim_mode == helix_normal && !menu", "bindings": { "ctrl-[": "editor::Cancel", + ";": "vim::HelixCollapseSelection", ":": "command_palette::Toggle", "left": "vim::WrappingLeft", "right": "vim::WrappingRight", diff --git a/crates/vim/src/normal.rs b/crates/vim/src/normal.rs index 6131032f4f..13128e7b40 100644 --- a/crates/vim/src/normal.rs +++ b/crates/vim/src/normal.rs @@ -64,6 +64,8 @@ actions!( DeleteRight, /// Deletes using Helix-style behavior. HelixDelete, + /// Collapse the current selection + HelixCollapseSelection, /// Changes from cursor to end of line. ChangeToEndOfLine, /// Deletes from cursor to end of line. @@ -143,6 +145,20 @@ pub(crate) fn register(editor: &mut Editor, cx: &mut Context) { vim.switch_mode(Mode::HelixNormal, true, window, cx); }); + Vim::action(editor, cx, |vim, _: &HelixCollapseSelection, window, cx| { + vim.update_editor(window, cx, |_, editor, window, cx| { + editor.change_selections(SelectionEffects::no_scroll(), window, cx, |s| { + s.move_with(|map, selection| { + let mut point = selection.head(); + if !selection.reversed && !selection.is_empty() { + point = movement::left(map, selection.head()); + } + selection.collapse_to(point, selection.goal) + }); + }); + }); + }); + Vim::action(editor, cx, |vim, _: &ChangeToEndOfLine, window, cx| { vim.start_recording(cx); let times = Vim::take_count(cx); From c13322397eaf81735a97d93ba236702c218dc27b Mon Sep 17 00:00:00 2001 From: Andy Waite Date: Fri, 18 Jul 2025 05:46:36 -0400 Subject: [PATCH 0046/1052] docs: Document pull diagnostics support for Ruby (#34028) This is now supported. Release Notes: - N/A --- docs/src/languages/ruby.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/src/languages/ruby.md b/docs/src/languages/ruby.md index b7856b2cd0..6f530433bd 100644 --- a/docs/src/languages/ruby.md +++ b/docs/src/languages/ruby.md @@ -127,7 +127,7 @@ Solargraph reads its configuration from a file called `.solargraph.yml` in the r ## Setting up `ruby-lsp` -Ruby LSP uses pull-based diagnostics which Zed doesn't support yet. We can tell Zed to disable it by adding the following to your `settings.json`: +You can pass Ruby LSP configuration to `initialization_options`, e.g. ```json { @@ -140,8 +140,7 @@ Ruby LSP uses pull-based diagnostics which Zed doesn't support yet. We can tell "ruby-lsp": { "initialization_options": { "enabledFeatures": { - // This disables diagnostics - "diagnostics": false + // "someFeature": false } } } From 00097df0d585c65103e1c1fd170cce3a28c631aa Mon Sep 17 00:00:00 2001 From: Arseny Kapoulkine Date: Fri, 18 Jul 2025 03:24:20 -0700 Subject: [PATCH 0047/1052] Improve C/C++ indentation flow for single statement blocks (#34549) Before this, indentation did not automatically increase after if/for/while/do/else statements in C++, and only increased after if/for in C. This led to Zed using last line logic when inserting lines *after* the indented statement, as well as not indenting the statement itself, resulting in irregular indentation during typing. Just adding indentation (similar to C) creates a new problem: now if a scope is started with a brace on a new line, that brace is indented. Thus we need to deindent it. Using else_clause in the indent guide results in the else statement being indented forward as well, so we need to deindent that too. Note: the most significant issue for me is the one where indentation jumps forward when inserting lines after indented lines. Unfortunately, it appears that fixing that issue requires all of these other changes. I would have preferred a simpler fix, but I'm not sure if disabling last line behavior for C/C++ is appropriate as it probably breaks something else, like cases where the file is incomplete and the statements can't be parsed properly. Editing flow before this change: [Screencast From 2025-07-16 08-31-36.webm](https://github.com/user-attachments/assets/3dea86c5-47bd-47c2-aee8-b0aa613948e6) Editing flow after this change: [Screencast From 2025-07-16 08-35-36.webm](https://github.com/user-attachments/assets/7ef23e60-1ee3-49fd-90f9-d53f909ca674) (note: the "else" snippet is completely breaking the flow here, but I think that comes from clangd by default? Unfortunately I haven't found a way to disable it cleanly but that is a separate problem that happens right now too.) Release Notes: - Improve indentation during typing for C/C++ around if/for/while/do blocks --- crates/languages/src/c/config.toml | 4 ++++ crates/languages/src/c/indents.scm | 10 ++++++++++ crates/languages/src/cpp/config.toml | 4 ++++ crates/languages/src/cpp/indents.scm | 12 ++++++++++++ 4 files changed, 30 insertions(+) diff --git a/crates/languages/src/c/config.toml b/crates/languages/src/c/config.toml index 08cd100f4d..78213da5be 100644 --- a/crates/languages/src/c/config.toml +++ b/crates/languages/src/c/config.toml @@ -2,6 +2,10 @@ name = "C" grammar = "c" path_suffixes = ["c"] line_comments = ["// "] +decrease_indent_patterns = [ + { pattern = "^\\s*\\{.*\\}?\\s*$", valid_after = ["if", "for", "while", "do", "switch", "else"] }, + { pattern = "^\\s*else\\s*$", valid_after = ["if"] } +] autoclose_before = ";:.,=}])>" brackets = [ { start = "{", end = "}", close = true, newline = true }, diff --git a/crates/languages/src/c/indents.scm b/crates/languages/src/c/indents.scm index fa40ce215e..3b6d5135ab 100644 --- a/crates/languages/src/c/indents.scm +++ b/crates/languages/src/c/indents.scm @@ -3,7 +3,17 @@ (assignment_expression) (if_statement) (for_statement) + (while_statement) + (do_statement) + (else_clause) ] @indent (_ "{" "}" @end) @indent (_ "(" ")" @end) @indent + +(if_statement) @start.if +(for_statement) @start.for +(while_statement) @start.while +(do_statement) @start.do +(switch_statement) @start.switch +(else_clause) @start.else diff --git a/crates/languages/src/cpp/config.toml b/crates/languages/src/cpp/config.toml index a81cbe09cd..1e28381605 100644 --- a/crates/languages/src/cpp/config.toml +++ b/crates/languages/src/cpp/config.toml @@ -2,6 +2,10 @@ name = "C++" grammar = "cpp" path_suffixes = ["cc", "hh", "cpp", "h", "hpp", "cxx", "hxx", "c++", "ipp", "inl", "ixx", "cu", "cuh", "C", "H"] line_comments = ["// ", "/// ", "//! "] +decrease_indent_patterns = [ + { pattern = "^\\s*\\{.*\\}?\\s*$", valid_after = ["if", "for", "while", "do", "switch", "else"] }, + { pattern = "^\\s*else\\s*$", valid_after = ["if"] } +] autoclose_before = ";:.,=}])>" brackets = [ { start = "{", end = "}", close = true, newline = true }, diff --git a/crates/languages/src/cpp/indents.scm b/crates/languages/src/cpp/indents.scm index a17f4c4821..d95dfe178c 100644 --- a/crates/languages/src/cpp/indents.scm +++ b/crates/languages/src/cpp/indents.scm @@ -1,7 +1,19 @@ [ (field_expression) (assignment_expression) + (if_statement) + (for_statement) + (while_statement) + (do_statement) + (else_clause) ] @indent (_ "{" "}" @end) @indent (_ "(" ")" @end) @indent + +(if_statement) @start.if +(for_statement) @start.for +(while_statement) @start.while +(do_statement) @start.do +(switch_statement) @start.switch +(else_clause) @start.else From 7e3fd7bb020077383947950f4e899c258d48c2aa Mon Sep 17 00:00:00 2001 From: tidely <43219534+tidely@users.noreply.github.com> Date: Fri, 18 Jul 2025 13:35:38 +0300 Subject: [PATCH 0048/1052] gpui: Use static keyword with `LazyLock` when loading system fonts (#34555) Use the `static` keyword to actually make the `LazyLock` static, which previously would reinitialize on every call to `SvgRenderer::new`. Related: #26335 Release Notes: - N/A --- crates/gpui/src/svg_renderer.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/gpui/src/svg_renderer.rs b/crates/gpui/src/svg_renderer.rs index 08d281b850..0107624bc8 100644 --- a/crates/gpui/src/svg_renderer.rs +++ b/crates/gpui/src/svg_renderer.rs @@ -27,7 +27,7 @@ pub enum SvgSize { impl SvgRenderer { pub fn new(asset_source: Arc) -> Self { - let font_db = LazyLock::new(|| { + static FONT_DB: LazyLock> = LazyLock::new(|| { let mut db = usvg::fontdb::Database::new(); db.load_system_fonts(); Arc::new(db) @@ -36,7 +36,7 @@ impl SvgRenderer { let font_resolver = Box::new( move |font: &usvg::Font, db: &mut Arc| { if db.is_empty() { - *db = font_db.clone(); + *db = FONT_DB.clone(); } default_font_resolver(font, db) }, From fd05f17fa7e0253bc98698e84a1f8939bcb6616f Mon Sep 17 00:00:00 2001 From: Lukas Spiss <35728419+Spissable@users.noreply.github.com> Date: Fri, 18 Jul 2025 12:38:18 +0100 Subject: [PATCH 0049/1052] go: Support raw string subtest names (#34636) Currently, we're not able to run Go sub-tests that have a raw string (e.g. we're using multi-line names a lot) via the UI. I added the changes that are needed, plus a handful of tests to cover the basics. Quick comparison: Before: before After: after Release Notes: - Added support for Go subtest runner with raw string names --- crates/languages/src/go.rs | 121 +++++++++++++++++++++++++- crates/languages/src/go/runnables.scm | 5 +- 2 files changed, 121 insertions(+), 5 deletions(-) diff --git a/crates/languages/src/go.rs b/crates/languages/src/go.rs index 25aa5a67b9..16c1b67203 100644 --- a/crates/languages/src/go.rs +++ b/crates/languages/src/go.rs @@ -41,7 +41,7 @@ static VERSION_REGEX: LazyLock = LazyLock::new(|| Regex::new(r"\d+\.\d+\.\d+").expect("Failed to create VERSION_REGEX")); static GO_ESCAPE_SUBTEST_NAME_REGEX: LazyLock = LazyLock::new(|| { - Regex::new(r#"[.*+?^${}()|\[\]\\]"#).expect("Failed to create GO_ESCAPE_SUBTEST_NAME_REGEX") + Regex::new(r#"[.*+?^${}()|\[\]\\"']"#).expect("Failed to create GO_ESCAPE_SUBTEST_NAME_REGEX") }); const BINARY: &str = if cfg!(target_os = "windows") { @@ -685,11 +685,20 @@ impl ContextProvider for GoContextProvider { } fn extract_subtest_name(input: &str) -> Option { - let replaced_spaces = input.trim_matches('"').replace(' ', "_"); + let content = if input.starts_with('`') && input.ends_with('`') { + input.trim_matches('`') + } else { + input.trim_matches('"') + }; + + let processed = content + .chars() + .map(|c| if c.is_whitespace() { '_' } else { c }) + .collect::(); Some( GO_ESCAPE_SUBTEST_NAME_REGEX - .replace_all(&replaced_spaces, |caps: ®ex::Captures| { + .replace_all(&processed, |caps: ®ex::Captures| { format!("\\{}", &caps[0]) }) .to_string(), @@ -700,7 +709,7 @@ fn extract_subtest_name(input: &str) -> Option { mod tests { use super::*; use crate::language; - use gpui::Hsla; + use gpui::{AppContext, Hsla, TestAppContext}; use theme::SyntaxTheme; #[gpui::test] @@ -790,4 +799,108 @@ mod tests { }) ); } + + #[gpui::test] + fn test_go_runnable_detection(cx: &mut TestAppContext) { + let language = language("go", tree_sitter_go::LANGUAGE.into()); + + let interpreted_string_subtest = r#" + package main + + import "testing" + + func TestExample(t *testing.T) { + t.Run("subtest with double quotes", func(t *testing.T) { + // test code + }) + } + "#; + + let raw_string_subtest = r#" + package main + + import "testing" + + func TestExample(t *testing.T) { + t.Run(`subtest with + multiline + backticks`, func(t *testing.T) { + // test code + }) + } + "#; + + let buffer = cx.new(|cx| { + crate::Buffer::local(interpreted_string_subtest, cx).with_language(language.clone(), cx) + }); + cx.executor().run_until_parked(); + + let runnables: Vec<_> = buffer.update(cx, |buffer, _| { + let snapshot = buffer.snapshot(); + snapshot + .runnable_ranges(0..interpreted_string_subtest.len()) + .collect() + }); + + assert!( + runnables.len() == 2, + "Should find test function and subtest with double quotes, found: {}", + runnables.len() + ); + + let buffer = cx.new(|cx| { + crate::Buffer::local(raw_string_subtest, cx).with_language(language.clone(), cx) + }); + cx.executor().run_until_parked(); + + let runnables: Vec<_> = buffer.update(cx, |buffer, _| { + let snapshot = buffer.snapshot(); + snapshot + .runnable_ranges(0..raw_string_subtest.len()) + .collect() + }); + + assert!( + runnables.len() == 2, + "Should find test function and subtest with backticks, found: {}", + runnables.len() + ); + } + + #[test] + fn test_extract_subtest_name() { + // Interpreted string literal + let input_double_quoted = r#""subtest with double quotes""#; + let result = extract_subtest_name(input_double_quoted); + assert_eq!(result, Some(r#"subtest_with_double_quotes"#.to_string())); + + let input_double_quoted_with_backticks = r#""test with `backticks` inside""#; + let result = extract_subtest_name(input_double_quoted_with_backticks); + assert_eq!(result, Some(r#"test_with_`backticks`_inside"#.to_string())); + + // Raw string literal + let input_with_backticks = r#"`subtest with backticks`"#; + let result = extract_subtest_name(input_with_backticks); + assert_eq!(result, Some(r#"subtest_with_backticks"#.to_string())); + + let input_raw_with_quotes = r#"`test with "quotes" and other chars`"#; + let result = extract_subtest_name(input_raw_with_quotes); + assert_eq!( + result, + Some(r#"test_with_\"quotes\"_and_other_chars"#.to_string()) + ); + + let input_multiline = r#"`subtest with + multiline + backticks`"#; + let result = extract_subtest_name(input_multiline); + assert_eq!( + result, + Some(r#"subtest_with_________multiline_________backticks"#.to_string()) + ); + + let input_with_double_quotes = r#"`test with "double quotes"`"#; + let result = extract_subtest_name(input_with_double_quotes); + assert_eq!(result, Some(r#"test_with_\"double_quotes\""#.to_string())); + } } diff --git a/crates/languages/src/go/runnables.scm b/crates/languages/src/go/runnables.scm index bdeb77b46c..49e112b860 100644 --- a/crates/languages/src/go/runnables.scm +++ b/crates/languages/src/go/runnables.scm @@ -38,7 +38,10 @@ arguments: ( argument_list . - (interpreted_string_literal) @_subtest_name + [ + (interpreted_string_literal) + (raw_string_literal) + ] @_subtest_name . (func_literal parameters: ( From cfe1adc7922e2f4b337a5613a3bbe33e742a9904 Mon Sep 17 00:00:00 2001 From: Ben Brandt Date: Fri, 18 Jul 2025 15:17:41 +0200 Subject: [PATCH 0050/1052] E2E Claude tests (#34702) - **Fix cancellation of tool calls** - **Make tool_call test more resilient** - **Fix tool call confirmation test** Release Notes: - N/A --- Cargo.lock | 1 + crates/acp_thread/src/acp_thread.rs | 13 +++- crates/agent_servers/Cargo.toml | 1 + crates/agent_servers/src/claude.rs | 14 ++-- crates/agent_servers/src/claude/tools.rs | 99 +++++++++++++++++++++++- crates/agent_servers/src/e2e_tests.rs | 98 ++++++++++++++++------- 6 files changed, 188 insertions(+), 38 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a8a8d12e37..4d84249b00 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -158,6 +158,7 @@ dependencies = [ "serde_json", "settings", "smol", + "strum 0.27.1", "tempfile", "ui", "util", diff --git a/crates/acp_thread/src/acp_thread.rs b/crates/acp_thread/src/acp_thread.rs index 1e3947351a..ae22725d5e 100644 --- a/crates/acp_thread/src/acp_thread.rs +++ b/crates/acp_thread/src/acp_thread.rs @@ -664,7 +664,7 @@ impl AcpThread { cx: &mut Context, ) -> Result { let project = self.project.read(cx).languages().clone(); - let Some((_, call)) = self.tool_call_mut(tool_call_id) else { + let Some((idx, call)) = self.tool_call_mut(tool_call_id) else { anyhow::bail!("Tool call not found"); }; @@ -675,6 +675,8 @@ impl AcpThread { respond_tx: tx, }; + cx.emit(AcpThreadEvent::EntryUpdated(idx)); + Ok(ToolCallRequest { id: tool_call_id, outcome: rx, @@ -768,8 +770,13 @@ impl AcpThread { let language_registry = self.project.read(cx).languages().clone(); let (ix, call) = self.tool_call_mut(id).context("Entry not found")?; - call.content = new_content - .map(|new_content| ToolCallContent::from_acp(new_content, language_registry, cx)); + if let Some(new_content) = new_content { + call.content = Some(ToolCallContent::from_acp( + new_content, + language_registry, + cx, + )); + } match &mut call.status { ToolCallStatus::Allowed { status } => { diff --git a/crates/agent_servers/Cargo.toml b/crates/agent_servers/Cargo.toml index 2d68148264..f3df25f709 100644 --- a/crates/agent_servers/Cargo.toml +++ b/crates/agent_servers/Cargo.toml @@ -33,6 +33,7 @@ serde.workspace = true serde_json.workspace = true settings.workspace = true smol.workspace = true +strum.workspace = true tempfile.workspace = true ui.workspace = true util.workspace = true diff --git a/crates/agent_servers/src/claude.rs b/crates/agent_servers/src/claude.rs index 5760a96d8c..52c6012267 100644 --- a/crates/agent_servers/src/claude.rs +++ b/crates/agent_servers/src/claude.rs @@ -281,14 +281,18 @@ impl ClaudeAgentConnection { } => { let id = tool_id_map.borrow_mut().remove(&tool_use_id); if let Some(id) = id { + let content = content.to_string(); delegate .update_tool_call(UpdateToolCallParams { tool_call_id: id, status: acp::ToolCallStatus::Finished, - content: Some(ToolCallContent::Markdown { - // For now we only include text content - markdown: content.to_string(), - }), + // Don't unset existing content + content: (!content.is_empty()).then_some( + ToolCallContent::Markdown { + // For now we only include text content + markdown: content, + }, + ), }) .await .log_err(); @@ -577,7 +581,7 @@ pub(crate) mod tests { use super::*; use serde_json::json; - // crate::common_e2e_tests!(ClaudeCode); + crate::common_e2e_tests!(ClaudeCode); pub fn local_command() -> AgentServerCommand { AgentServerCommand { diff --git a/crates/agent_servers/src/claude/tools.rs b/crates/agent_servers/src/claude/tools.rs index e3ac6c14e2..a2d6b487b2 100644 --- a/crates/agent_servers/src/claude/tools.rs +++ b/crates/agent_servers/src/claude/tools.rs @@ -118,13 +118,106 @@ impl ClaudeTool { pub fn content(&self) -> Option { match &self { - ClaudeTool::Other { input, .. } => Some(acp::ToolCallContent::Markdown { + Self::Other { input, .. } => Some(acp::ToolCallContent::Markdown { markdown: format!( "```json\n{}```", serde_json::to_string_pretty(&input).unwrap_or("{}".to_string()) ), }), - _ => None, + Self::Task(Some(params)) => Some(acp::ToolCallContent::Markdown { + markdown: params.prompt.clone(), + }), + Self::NotebookRead(Some(params)) => Some(acp::ToolCallContent::Markdown { + markdown: params.notebook_path.display().to_string(), + }), + Self::NotebookEdit(Some(params)) => Some(acp::ToolCallContent::Markdown { + markdown: params.new_source.clone(), + }), + Self::Terminal(Some(params)) => Some(acp::ToolCallContent::Markdown { + markdown: format!( + "`{}`\n\n{}", + params.command, + params.description.as_deref().unwrap_or_default() + ), + }), + Self::ReadFile(Some(params)) => Some(acp::ToolCallContent::Markdown { + markdown: params.abs_path.display().to_string(), + }), + Self::Ls(Some(params)) => Some(acp::ToolCallContent::Markdown { + markdown: params.path.display().to_string(), + }), + Self::Glob(Some(params)) => Some(acp::ToolCallContent::Markdown { + markdown: params.to_string(), + }), + Self::Grep(Some(params)) => Some(acp::ToolCallContent::Markdown { + markdown: format!("`{params}`"), + }), + Self::WebFetch(Some(params)) => Some(acp::ToolCallContent::Markdown { + markdown: params.prompt.clone(), + }), + Self::WebSearch(Some(params)) => Some(acp::ToolCallContent::Markdown { + markdown: params.to_string(), + }), + Self::TodoWrite(Some(params)) => Some(acp::ToolCallContent::Markdown { + markdown: params + .todos + .iter() + .map(|todo| { + format!( + "- {} {}: {}", + match todo.status { + TodoStatus::Completed => "✅", + TodoStatus::InProgress => "🚧", + TodoStatus::Pending => "⬜", + }, + todo.priority, + todo.content + ) + }) + .join("\n"), + }), + Self::ExitPlanMode(Some(params)) => Some(acp::ToolCallContent::Markdown { + markdown: params.plan.clone(), + }), + Self::Edit(Some(params)) => Some(acp::ToolCallContent::Diff { + diff: acp::Diff { + path: params.abs_path.clone(), + old_text: Some(params.old_text.clone()), + new_text: params.new_text.clone(), + }, + }), + Self::Write(Some(params)) => Some(acp::ToolCallContent::Diff { + diff: acp::Diff { + path: params.file_path.clone(), + old_text: None, + new_text: params.content.clone(), + }, + }), + Self::MultiEdit(Some(params)) => { + // todo: show multiple edits in a multibuffer? + params.edits.first().map(|edit| acp::ToolCallContent::Diff { + diff: acp::Diff { + path: params.file_path.clone(), + old_text: Some(edit.old_string.clone()), + new_text: edit.new_string.clone(), + }, + }) + } + Self::Task(None) + | Self::NotebookRead(None) + | Self::NotebookEdit(None) + | Self::Terminal(None) + | Self::ReadFile(None) + | Self::Ls(None) + | Self::Glob(None) + | Self::Grep(None) + | Self::WebFetch(None) + | Self::WebSearch(None) + | Self::TodoWrite(None) + | Self::ExitPlanMode(None) + | Self::Edit(None) + | Self::Write(None) + | Self::MultiEdit(None) => None, } } @@ -513,7 +606,7 @@ impl std::fmt::Display for GrepToolParams { } } -#[derive(Deserialize, Serialize, JsonSchema, Debug)] +#[derive(Deserialize, Serialize, JsonSchema, strum::Display, Debug)] #[serde(rename_all = "snake_case")] pub enum TodoPriority { High, diff --git a/crates/agent_servers/src/e2e_tests.rs b/crates/agent_servers/src/e2e_tests.rs index 923c6cdd6f..12f74cb13e 100644 --- a/crates/agent_servers/src/e2e_tests.rs +++ b/crates/agent_servers/src/e2e_tests.rs @@ -111,18 +111,21 @@ pub async fn test_tool_call(server: impl AgentServer + 'static, cx: &mut TestApp .await .unwrap(); thread.read_with(cx, |thread, _cx| { - assert!(matches!( - &thread.entries()[2], - AgentThreadEntry::ToolCall(ToolCall { - status: ToolCallStatus::Allowed { .. }, - .. - }) - )); - - assert!(matches!( - thread.entries()[3], - AgentThreadEntry::AssistantMessage(_) - )); + assert!(thread.entries().iter().any(|entry| { + matches!( + entry, + AgentThreadEntry::ToolCall(ToolCall { + status: ToolCallStatus::Allowed { .. }, + .. + }) + ) + })); + assert!( + thread + .entries() + .iter() + .any(|entry| { matches!(entry, AgentThreadEntry::AssistantMessage(_)) }) + ); }); } @@ -134,10 +137,26 @@ pub async fn test_tool_call_with_confirmation( let project = Project::test(fs, [path!("/private/tmp").as_ref()], cx).await; let thread = new_test_thread(server, project.clone(), "/private/tmp", cx).await; let full_turn = thread.update(cx, |thread, cx| { - thread.send_raw(r#"Run `echo "Hello, world!"`"#, cx) + thread.send_raw( + r#"Run `touch hello.txt && echo "Hello, world!" | tee hello.txt`"#, + cx, + ) }); - run_until_first_tool_call(&thread, cx).await; + run_until_first_tool_call( + &thread, + |entry| { + matches!( + entry, + AgentThreadEntry::ToolCall(ToolCall { + status: ToolCallStatus::WaitingForConfirmation { .. }, + .. + }) + ) + }, + cx, + ) + .await; let tool_call_id = thread.read_with(cx, |thread, _cx| { let AgentThreadEntry::ToolCall(ToolCall { @@ -148,12 +167,16 @@ pub async fn test_tool_call_with_confirmation( .. }, .. - }) = &thread.entries()[2] + }) = &thread + .entries() + .iter() + .find(|entry| matches!(entry, AgentThreadEntry::ToolCall(_))) + .unwrap() else { panic!(); }; - assert_eq!(root_command, "echo"); + assert!(root_command.contains("touch")); *id }); @@ -161,13 +184,13 @@ pub async fn test_tool_call_with_confirmation( thread.update(cx, |thread, cx| { thread.authorize_tool_call(tool_call_id, acp::ToolCallConfirmationOutcome::Allow, cx); - assert!(matches!( - &thread.entries()[2], + assert!(thread.entries().iter().any(|entry| matches!( + entry, AgentThreadEntry::ToolCall(ToolCall { status: ToolCallStatus::Allowed { .. }, .. }) - )); + ))); }); full_turn.await.unwrap(); @@ -177,15 +200,19 @@ pub async fn test_tool_call_with_confirmation( content: Some(ToolCallContent::Markdown { markdown }), status: ToolCallStatus::Allowed { .. }, .. - }) = &thread.entries()[2] + }) = thread + .entries() + .iter() + .find(|entry| matches!(entry, AgentThreadEntry::ToolCall(_))) + .unwrap() else { panic!(); }; markdown.read_with(cx, |md, _cx| { assert!( - md.source().contains("Hello, world!"), - r#"Expected '{}' to contain "Hello, world!""#, + md.source().contains("Hello"), + r#"Expected '{}' to contain "Hello""#, md.source() ); }); @@ -198,10 +225,26 @@ pub async fn test_cancel(server: impl AgentServer + 'static, cx: &mut TestAppCon let project = Project::test(fs, [path!("/private/tmp").as_ref()], cx).await; let thread = new_test_thread(server, project.clone(), "/private/tmp", cx).await; let full_turn = thread.update(cx, |thread, cx| { - thread.send_raw(r#"Run `echo "Hello, world!"`"#, cx) + thread.send_raw( + r#"Run `touch hello.txt && echo "Hello, world!" >> hello.txt`"#, + cx, + ) }); - let first_tool_call_ix = run_until_first_tool_call(&thread, cx).await; + let first_tool_call_ix = run_until_first_tool_call( + &thread, + |entry| { + matches!( + entry, + AgentThreadEntry::ToolCall(ToolCall { + status: ToolCallStatus::WaitingForConfirmation { .. }, + .. + }) + ) + }, + cx, + ) + .await; thread.read_with(cx, |thread, _cx| { let AgentThreadEntry::ToolCall(ToolCall { @@ -217,7 +260,7 @@ pub async fn test_cancel(server: impl AgentServer + 'static, cx: &mut TestAppCon panic!("{:?}", thread.entries()[1]); }; - assert_eq!(root_command, "echo"); + assert!(root_command.contains("touch")); *id }); @@ -340,6 +383,7 @@ pub async fn new_test_thread( pub async fn run_until_first_tool_call( thread: &Entity, + wait_until: impl Fn(&AgentThreadEntry) -> bool + 'static, cx: &mut TestAppContext, ) -> usize { let (mut tx, mut rx) = mpsc::channel::(1); @@ -347,7 +391,7 @@ pub async fn run_until_first_tool_call( let subscription = cx.update(|cx| { cx.subscribe(thread, move |thread, _, cx| { for (ix, entry) in thread.read(cx).entries().iter().enumerate() { - if matches!(entry, AgentThreadEntry::ToolCall(_)) { + if wait_until(entry) { return tx.try_send(ix).unwrap(); } } @@ -357,7 +401,7 @@ pub async fn run_until_first_tool_call( select! { // We have to use a smol timer here because // cx.background_executor().timer isn't real in the test context - _ = futures::FutureExt::fuse(smol::Timer::after(Duration::from_secs(10))) => { + _ = futures::FutureExt::fuse(smol::Timer::after(Duration::from_secs(20))) => { panic!("Timeout waiting for tool call") } ix = rx.next().fuse() => { From 1070de47ec2ac32e17ca756492cc11620cda8320 Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Fri, 18 Jul 2025 10:24:57 -0300 Subject: [PATCH 0051/1052] component preview: Add separators between sections in sidebar (#34701) Small improvement for navigating inside the component preview. Release Notes: - N/A --- crates/component/src/component_layout.rs | 4 ++-- crates/zed/src/zed/component_preview.rs | 26 ++++++++---------------- 2 files changed, 11 insertions(+), 19 deletions(-) diff --git a/crates/component/src/component_layout.rs b/crates/component/src/component_layout.rs index 9fe52507d8..58bf1d8f0c 100644 --- a/crates/component/src/component_layout.rs +++ b/crates/component/src/component_layout.rs @@ -118,8 +118,8 @@ impl RenderOnce for ComponentExampleGroup { .flex() .items_center() .gap_3() - .pb_1() - .child(div().h_px().w_4().bg(cx.theme().colors().border)) + .mt_4() + .mb_1() .child( div() .flex_none() diff --git a/crates/zed/src/zed/component_preview.rs b/crates/zed/src/zed/component_preview.rs index c32248cbe0..670793cff3 100644 --- a/crates/zed/src/zed/component_preview.rs +++ b/crates/zed/src/zed/component_preview.rs @@ -369,7 +369,6 @@ impl ComponentPreview { // Always show all components first entries.push(PreviewEntry::AllComponents); entries.push(PreviewEntry::ActiveThread); - entries.push(PreviewEntry::Separator); let mut scopes: Vec<_> = scope_groups .keys() @@ -382,7 +381,9 @@ impl ComponentPreview { for scope in scopes { if let Some(components) = scope_groups.remove(&scope) { if !components.is_empty() { + entries.push(PreviewEntry::Separator); entries.push(PreviewEntry::SectionHeader(scope.to_string().into())); + let mut sorted_components = components; sorted_components.sort_by_key(|(component, _)| component.sort_name()); @@ -515,16 +516,12 @@ impl ComponentPreview { Vec::new() }; if valid_positions.is_empty() { - Label::new(name.clone()) - .color(Color::Default) - .into_any_element() + Label::new(name.clone()).into_any_element() } else { HighlightedLabel::new(name.clone(), valid_positions).into_any_element() } } else { - Label::new(name.clone()) - .color(Color::Default) - .into_any_element() + Label::new(name.clone()).into_any_element() }) .selectable(true) .toggle_state(selected) @@ -542,7 +539,7 @@ impl ComponentPreview { let selected = self.active_page == PreviewPage::AllComponents; ListItem::new(ix) - .child(Label::new("All Components").color(Color::Default)) + .child(Label::new("All Components")) .selectable(true) .toggle_state(selected) .inset(true) @@ -555,7 +552,7 @@ impl ComponentPreview { let selected = self.active_page == PreviewPage::ActiveThread; ListItem::new(ix) - .child(Label::new("Active Thread").color(Color::Default)) + .child(Label::new("Active Thread")) .selectable(true) .toggle_state(selected) .inset(true) @@ -565,12 +562,8 @@ impl ComponentPreview { .into_any_element() } PreviewEntry::Separator => ListItem::new(ix) - .child( - h_flex() - .occlude() - .pt_3() - .child(Divider::horizontal_dashed()), - ) + .disabled(true) + .child(div().w_full().py_2().child(Divider::horizontal())) .into_any_element(), } } @@ -585,7 +578,6 @@ impl ComponentPreview { h_flex() .w_full() .h_10() - .items_center() .child(Headline::new(title).size(HeadlineSize::XSmall)) .child(Divider::horizontal()) } @@ -798,7 +790,7 @@ impl Render for ComponentPreview { ) .track_scroll(self.nav_scroll_handle.clone()) .p_2p5() - .w(px(240.)) + .w(px(229.)) .h_full() .flex_1(), ) From fd8480a9dc6cf07668b1e70f6b24b31268a88e15 Mon Sep 17 00:00:00 2001 From: Peter Tripp Date: Fri, 18 Jul 2025 09:35:36 -0400 Subject: [PATCH 0052/1052] Document terminal.cursor_shape (#34707) Release Notes: - N/A --- docs/src/configuring-zed.md | 48 ++++++++++++++++++++++++++++++++ docs/src/visual-customization.md | 2 +- 2 files changed, 49 insertions(+), 1 deletion(-) diff --git a/docs/src/configuring-zed.md b/docs/src/configuring-zed.md index 91a39d1ccd..cc4800fd6d 100644 --- a/docs/src/configuring-zed.md +++ b/docs/src/configuring-zed.md @@ -2698,6 +2698,54 @@ List of `integer` column numbers } ``` +### Terminal: Cursor Shape + +- Description: Whether or not selecting text in the terminal will automatically copy to the system clipboard. +- Setting: `cursor_shape` +- Default: `null` (defaults to block) + +**Options** + +1. A block that surrounds the following character + +```json +{ + "terminal": { + "cursor_shape": "block" + } +} +``` + +2. A vertical bar + +```json +{ + "terminal": { + "cursor_shape": "bar" + } +} +``` + +3. An underline / underscore that runs along the following character + +```json +{ + "terminal": { + "cursor_shape": "underline" + } +} +``` + +4. A box drawn around the following character + +```json +{ + "terminal": { + "cursor_shape": "hollow" + } +} +``` + ### Terminal: Keep Selection On Copy - Description: Whether or not to keep the selection in the terminal after copying text. diff --git a/docs/src/visual-customization.md b/docs/src/visual-customization.md index ad38b86406..197c9b80f8 100644 --- a/docs/src/visual-customization.md +++ b/docs/src/visual-customization.md @@ -448,7 +448,7 @@ See [Zed AI Documentation](./ai/overview.md) for additional non-visual AI settin // Set the cursor blinking behavior in the terminal (on, off, terminal_controlled) "blinking": "terminal_controlled", - // Default cursor shape for the terminal (block, bar, underline, hollow) + // Default cursor shape for the terminal cursor (block, bar, underline, hollow) "cursor_shape": "block", // Environment variables to add to terminal's process environment From 40028010347f658b4576348d8ff70cf68873213b Mon Sep 17 00:00:00 2001 From: Bennet Bo Fenner Date: Fri, 18 Jul 2025 15:58:44 +0200 Subject: [PATCH 0053/1052] agent: Fix new thread model selection when starting new thread (#34708) Release Notes: - agent: Fixed an issue where clicking on "Start New Thread" in the agent configuration would not always switch to the correct provider/model --- crates/agent_ui/src/agent_panel.rs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/crates/agent_ui/src/agent_panel.rs b/crates/agent_ui/src/agent_panel.rs index 087eec5efb..103e439615 100644 --- a/crates/agent_ui/src/agent_panel.rs +++ b/crates/agent_ui/src/agent_panel.rs @@ -53,7 +53,8 @@ use gpui::{ }; use language::LanguageRegistry; use language_model::{ - ConfigurationError, LanguageModelProviderTosView, LanguageModelRegistry, ZED_CLOUD_PROVIDER_ID, + ConfigurationError, ConfiguredModel, LanguageModelProviderTosView, LanguageModelRegistry, + ZED_CLOUD_PROVIDER_ID, }; use project::{Project, ProjectPath, Worktree}; use prompt_store::{PromptBuilder, PromptStore, UserPromptId}; @@ -1347,6 +1348,19 @@ impl AgentPanel { } self.new_thread(&NewThread::default(), window, cx); + if let Some((thread, model)) = + self.active_thread(cx).zip(provider.default_model(cx)) + { + thread.update(cx, |thread, cx| { + thread.set_configured_model( + Some(ConfiguredModel { + provider: provider.clone(), + model, + }), + cx, + ); + }); + } } } } From d604b3b29183a09579f408059e7ca0f6bf6fbc62 Mon Sep 17 00:00:00 2001 From: Peter Tripp Date: Fri, 18 Jul 2025 10:01:09 -0400 Subject: [PATCH 0054/1052] Fix incorrect minimum_contrast comment (#34710) Actual default is 45 https://github.com/zed-industries/zed/blob/fd05f17fa7e0253bc98698e84a1f8939bcb6616f/assets/settings/default.json#L1402 Release Notes: - N/A --- crates/terminal/src/terminal_settings.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/terminal/src/terminal_settings.rs b/crates/terminal/src/terminal_settings.rs index a290ce9c81..3f89afffab 100644 --- a/crates/terminal/src/terminal_settings.rs +++ b/crates/terminal/src/terminal_settings.rs @@ -248,7 +248,7 @@ pub struct TerminalSettingsContent { /// - 75: Minimum for body text /// - 90: Preferred for body text /// - /// Default: 0 (no adjustment) + /// Default: 45 pub minimum_contrast: Option, } From 2ac99e7a1158e1e6d3bfd44016fa01af000d5ad7 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Fri, 18 Jul 2025 16:28:03 +0200 Subject: [PATCH 0055/1052] debugger: Fix attaching with DebugPy (#34706) @cole-miller found a root cause of our struggles with attach scenarios; we did not fetch .so files necessary for attaching to work, as we were downloading DebugPy source tarballs from GitHub. This PR does away with it by setting up a virtualenv instead that has debugpy installed. Closes #34660 Closes #34575 Release Notes: - debugger: Fixed attaching with DebugPy. DebugPy is now installed automatically from pip (instead of GitHub), unless it is present in active virtual environment. Additionally this should resolve any startup issues with missing .so on Linux. --- Cargo.lock | 1 + crates/dap_adapters/Cargo.toml | 1 + crates/dap_adapters/src/dap_adapters.rs | 1 - crates/dap_adapters/src/python.rs | 189 ++++++++++++------------ 4 files changed, 98 insertions(+), 94 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4d84249b00..aad5349a87 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4248,6 +4248,7 @@ dependencies = [ "serde", "serde_json", "shlex", + "smol", "task", "util", "workspace-hack", diff --git a/crates/dap_adapters/Cargo.toml b/crates/dap_adapters/Cargo.toml index 65544fbb6a..e7366785c8 100644 --- a/crates/dap_adapters/Cargo.toml +++ b/crates/dap_adapters/Cargo.toml @@ -36,6 +36,7 @@ paths.workspace = true serde.workspace = true serde_json.workspace = true shlex.workspace = true +smol.workspace = true task.workspace = true util.workspace = true workspace-hack.workspace = true diff --git a/crates/dap_adapters/src/dap_adapters.rs b/crates/dap_adapters/src/dap_adapters.rs index a147861f8d..a4e6beb249 100644 --- a/crates/dap_adapters/src/dap_adapters.rs +++ b/crates/dap_adapters/src/dap_adapters.rs @@ -13,7 +13,6 @@ use dap::{ DapRegistry, adapters::{ self, AdapterVersion, DapDelegate, DebugAdapter, DebugAdapterBinary, DebugAdapterName, - GithubRepo, }, configure_tcp_connection, }; diff --git a/crates/dap_adapters/src/python.rs b/crates/dap_adapters/src/python.rs index eb541bde8e..aa64fea6ed 100644 --- a/crates/dap_adapters/src/python.rs +++ b/crates/dap_adapters/src/python.rs @@ -1,31 +1,39 @@ use crate::*; use anyhow::Context as _; -use dap::adapters::latest_github_release; use dap::{DebugRequest, StartDebuggingRequestArguments, adapters::DebugTaskDefinition}; -use gpui::{AppContext, AsyncApp, SharedString}; +use gpui::{AsyncApp, SharedString}; use json_dotpath::DotPaths; -use language::{LanguageName, Toolchain}; +use language::LanguageName; +use paths::debug_adapters_dir; use serde_json::Value; +use smol::lock::OnceCell; use std::net::Ipv4Addr; use std::{ collections::HashMap, ffi::OsStr, path::{Path, PathBuf}, - sync::OnceLock, }; -use util::ResultExt; #[derive(Default)] pub(crate) struct PythonDebugAdapter { - checked: OnceLock<()>, + python_venv_base: OnceCell, String>>, } impl PythonDebugAdapter { const ADAPTER_NAME: &'static str = "Debugpy"; const DEBUG_ADAPTER_NAME: DebugAdapterName = DebugAdapterName(SharedString::new_static(Self::ADAPTER_NAME)); - const ADAPTER_PACKAGE_NAME: &'static str = "debugpy"; - const ADAPTER_PATH: &'static str = "src/debugpy/adapter"; + const PYTHON_ADAPTER_IN_VENV: &'static str = if cfg!(target_os = "windows") { + "Scripts/python3" + } else { + "bin/python3" + }; + const ADAPTER_PATH: &'static str = if cfg!(target_os = "windows") { + "debugpy-venv/Scripts/debugpy-adapter" + } else { + "debugpy-venv/bin/debugpy-adapter" + }; + const LANGUAGE_NAME: &'static str = "Python"; async fn generate_debugpy_arguments( @@ -46,25 +54,12 @@ impl PythonDebugAdapter { vec!["-m".to_string(), "debugpy.adapter".to_string()] } else { let adapter_path = paths::debug_adapters_dir().join(Self::DEBUG_ADAPTER_NAME.as_ref()); - let file_name_prefix = format!("{}_", Self::ADAPTER_NAME); - - let debugpy_dir = - util::fs::find_file_name_in_dir(adapter_path.as_path(), |file_name| { - file_name.starts_with(&file_name_prefix) - }) - .await - .context("Debugpy directory not found")?; - - log::debug!( - "Using GitHub-downloaded debugpy adapter from: {}", - debugpy_dir.display() - ); - vec![ - debugpy_dir - .join(Self::ADAPTER_PATH) - .to_string_lossy() - .to_string(), - ] + let path = adapter_path + .join(Self::ADAPTER_PATH) + .to_string_lossy() + .into_owned(); + log::debug!("Using pip debugpy adapter from: {path}"); + vec![path] }; args.extend(if let Some(args) = user_args { @@ -100,44 +95,67 @@ impl PythonDebugAdapter { request, }) } - async fn fetch_latest_adapter_version( - &self, - delegate: &Arc, - ) -> Result { - let github_repo = GithubRepo { - repo_name: Self::ADAPTER_PACKAGE_NAME.into(), - repo_owner: "microsoft".into(), - }; - fetch_latest_adapter_version_from_github(github_repo, delegate.as_ref()).await - } - - async fn install_binary( - adapter_name: DebugAdapterName, - version: AdapterVersion, - delegate: Arc, - ) -> Result<()> { - let version_path = adapters::download_adapter_from_github( - adapter_name, - version, - adapters::DownloadedFileType::GzipTar, - delegate.as_ref(), - ) - .await?; - // only needed when you install the latest version for the first time - if let Some(debugpy_dir) = - util::fs::find_file_name_in_dir(version_path.as_path(), |file_name| { - file_name.starts_with("microsoft-debugpy-") - }) + async fn ensure_venv(delegate: &dyn DapDelegate) -> Result> { + let python_path = Self::find_base_python(delegate) .await - { - // TODO Debugger: Rename folder instead of moving all files to another folder - // We're doing unnecessary IO work right now - util::fs::move_folder_files_to_folder(debugpy_dir.as_path(), version_path.as_path()) + .context("Could not find Python installation for DebugPy")?; + let work_dir = debug_adapters_dir().join(Self::ADAPTER_NAME); + let mut path = work_dir.clone(); + path.push("debugpy-venv"); + if !path.exists() { + util::command::new_smol_command(python_path) + .arg("-m") + .arg("venv") + .arg("debugpy-venv") + .current_dir(work_dir) + .spawn()? + .output() .await?; } - Ok(()) + Ok(path.into()) + } + + // Find "baseline", user python version from which we'll create our own venv. + async fn find_base_python(delegate: &dyn DapDelegate) -> Option { + for path in ["python3", "python"] { + if let Some(path) = delegate.which(path.as_ref()).await { + return Some(path); + } + } + None + } + + async fn base_venv(&self, delegate: &dyn DapDelegate) -> Result, String> { + const BINARY_DIR: &str = if cfg!(target_os = "windows") { + "Scripts" + } else { + "bin" + }; + self.python_venv_base + .get_or_init(move || async move { + let venv_base = Self::ensure_venv(delegate) + .await + .map_err(|e| format!("{e}"))?; + let pip_path = venv_base.join(BINARY_DIR).join("pip3"); + let installation_succeeded = util::command::new_smol_command(pip_path.as_path()) + .arg("install") + .arg("debugpy") + .arg("-U") + .output() + .await + .map_err(|e| format!("{e}"))? + .status + .success(); + if !installation_succeeded { + return Err("debugpy installation failed".into()); + } + + Ok(venv_base) + }) + .await + .clone() } async fn get_installed_binary( @@ -146,15 +164,15 @@ impl PythonDebugAdapter { config: &DebugTaskDefinition, user_installed_path: Option, user_args: Option>, - toolchain: Option, + python_from_toolchain: Option, installed_in_venv: bool, ) -> Result { const BINARY_NAMES: [&str; 3] = ["python3", "python", "py"]; let tcp_connection = config.tcp_connection.clone().unwrap_or_default(); let (host, port, timeout) = crate::configure_tcp_connection(tcp_connection).await?; - let python_path = if let Some(toolchain) = toolchain { - Some(toolchain.path.to_string()) + let python_path = if let Some(toolchain) = python_from_toolchain { + Some(toolchain) } else { let mut name = None; @@ -635,25 +653,28 @@ impl DebugAdapter for PythonDebugAdapter { &config, None, user_args, - Some(toolchain.clone()), + Some(toolchain.path.to_string()), true, ) .await; } } } - - if self.checked.set(()).is_ok() { - delegate.output_to_console(format!("Checking latest version of {}...", self.name())); - if let Some(version) = self.fetch_latest_adapter_version(delegate).await.log_err() { - cx.background_spawn(Self::install_binary(self.name(), version, delegate.clone())) - .await - .context("Failed to install debugpy")?; - } - } - - self.get_installed_binary(delegate, &config, None, user_args, toolchain, false) + let toolchain = self + .base_venv(&**delegate) .await + .map_err(|e| anyhow::anyhow!(e))? + .join(Self::PYTHON_ADAPTER_IN_VENV); + + self.get_installed_binary( + delegate, + &config, + None, + user_args, + Some(toolchain.to_string_lossy().into_owned()), + false, + ) + .await } fn label_for_child_session(&self, args: &StartDebuggingRequestArguments) -> Option { @@ -666,24 +687,6 @@ impl DebugAdapter for PythonDebugAdapter { } } -async fn fetch_latest_adapter_version_from_github( - github_repo: GithubRepo, - delegate: &dyn DapDelegate, -) -> Result { - let release = latest_github_release( - &format!("{}/{}", github_repo.repo_owner, github_repo.repo_name), - false, - false, - delegate.http_client(), - ) - .await?; - - Ok(AdapterVersion { - tag_name: release.tag_name, - url: release.tarball_url, - }) -} - #[cfg(test)] mod tests { use super::*; From 6a24b2479cddc96133b9878fd560478004ead1ef Mon Sep 17 00:00:00 2001 From: Peter Tripp Date: Fri, 18 Jul 2025 10:28:20 -0400 Subject: [PATCH 0056/1052] Redact license keys in environment variables from log output (#34711) Release Notes: - N/A --- crates/util/src/redact.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/crates/util/src/redact.rs b/crates/util/src/redact.rs index 0b979fb413..6b297dfb58 100644 --- a/crates/util/src/redact.rs +++ b/crates/util/src/redact.rs @@ -1,7 +1,14 @@ /// Whether a given environment variable name should have its value redacted pub fn should_redact(env_var_name: &str) -> bool { - const REDACTED_SUFFIXES: &[&str] = - &["KEY", "TOKEN", "PASSWORD", "SECRET", "PASS", "CREDENTIALS"]; + const REDACTED_SUFFIXES: &[&str] = &[ + "KEY", + "TOKEN", + "PASSWORD", + "SECRET", + "PASS", + "CREDENTIALS", + "LICENSE", + ]; REDACTED_SUFFIXES .iter() .any(|suffix| env_var_name.ends_with(suffix)) From f461290ac352de2cf0a5a00f8a1f9264ad5b29da Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 18 Jul 2025 10:52:42 -0400 Subject: [PATCH 0057/1052] collab: Add `POST /users/:id/refresh_llm_tokens` endpoint (#34714) This PR adds a new `POST /users/:id/refresh_llm_tokens` endpoint to Collab so that we can refresh LLM tokens from Cloud. Release Notes: - N/A --- crates/collab/src/api.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/crates/collab/src/api.rs b/crates/collab/src/api.rs index 7fca27c5c2..8f1433a26f 100644 --- a/crates/collab/src/api.rs +++ b/crates/collab/src/api.rs @@ -100,6 +100,7 @@ pub fn routes(rpc_server: Arc) -> Router<(), Body> { .route("/user", get(update_or_create_authenticated_user)) .route("/users/look_up", get(look_up_user)) .route("/users/:id/access_tokens", post(create_access_token)) + .route("/users/:id/refresh_llm_tokens", post(refresh_llm_tokens)) .route("/rpc_server_snapshot", get(get_rpc_server_snapshot)) .merge(billing::router()) .merge(contributors::router()) @@ -334,3 +335,15 @@ async fn create_access_token( encrypted_access_token, })) } + +#[derive(Serialize)] +struct RefreshLlmTokensResponse {} + +async fn refresh_llm_tokens( + Path(user_id): Path, + Extension(rpc_server): Extension>, +) -> Result> { + rpc_server.refresh_llm_tokens_for_user(user_id).await; + + Ok(Json(RefreshLlmTokensResponse {})) +} From e421fc7a2dfb044fc118926fcab4aa7e13a9dab5 Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Fri, 18 Jul 2025 09:25:18 -0600 Subject: [PATCH 0058/1052] Update keymap context binding behavior of > and ! (#34664) Now ! means "no ancestors matches this", and > means "any descendent" not "any child". Updates #34570 Co-authored-by: Ben Kunkle Release Notes: - *Breaking change*. The context predicates in the keymap file now handle ! and > differently. Before this change ! meant "this node does not match", now it means "none of these nodes match". Before this change > meant "child of", now it means "descendent of". We do not expect these changes to break many keymaps, but they may cause subtle changes for complex context queries. --------- Co-authored-by: Ben Kunkle --- assets/keymaps/vim.json | 4 +- crates/gpui/src/keymap.rs | 136 ++++++------- crates/gpui/src/keymap/context.rs | 181 +++++++++++++++++- crates/language_tools/src/key_context_view.rs | 9 +- crates/settings_ui/src/keybindings.rs | 2 +- docs/src/key-bindings.md | 19 +- 6 files changed, 261 insertions(+), 90 deletions(-) diff --git a/assets/keymaps/vim.json b/assets/keymaps/vim.json index 89a71e59e6..2ef282c21e 100644 --- a/assets/keymaps/vim.json +++ b/assets/keymaps/vim.json @@ -724,7 +724,7 @@ } }, { - "context": "AgentPanel || GitPanel || ProjectPanel || CollabPanel || OutlinePanel || ChatPanel || VimControl || EmptyPane || SharedScreen || MarkdownPreview || KeyContextView || DebugPanel", + "context": "VimControl || !Editor && !Terminal", "bindings": { // window related commands (ctrl-w X) "ctrl-w": null, @@ -782,7 +782,7 @@ } }, { - "context": "ChangesList || EmptyPane || SharedScreen || MarkdownPreview || KeyContextView || Welcome", + "context": "!Editor && !Terminal", "bindings": { ":": "command_palette::Toggle", "g /": "pane::DeploySearch" diff --git a/crates/gpui/src/keymap.rs b/crates/gpui/src/keymap.rs index b5dbab15c7..174dbc80f0 100644 --- a/crates/gpui/src/keymap.rs +++ b/crates/gpui/src/keymap.rs @@ -24,7 +24,7 @@ pub struct Keymap { } /// Index of a binding within a keymap. -#[derive(Copy, Clone, Debug, Eq, PartialEq)] +#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd)] pub struct BindingIndex(usize); impl Keymap { @@ -167,65 +167,60 @@ impl Keymap { input: &[Keystroke], context_stack: &[KeyContext], ) -> (SmallVec<[(BindingIndex, KeyBinding); 1]>, bool) { - let possibilities = self + let mut possibilities = self .bindings() .enumerate() .rev() .filter_map(|(ix, binding)| { - binding - .match_keystrokes(input) - .map(|pending| (BindingIndex(ix), binding, pending)) - }); + let depth = self.binding_enabled(binding, &context_stack)?; + let pending = binding.match_keystrokes(input)?; + Some((depth, BindingIndex(ix), binding, pending)) + }) + .collect::>(); + possibilities.sort_by(|(depth_a, ix_a, _, _), (depth_b, ix_b, _, _)| { + depth_b.cmp(depth_a).then(ix_b.cmp(ix_a)) + }); let mut bindings: SmallVec<[(BindingIndex, KeyBinding, usize); 1]> = SmallVec::new(); // (pending, is_no_action, depth, keystrokes) let mut pending_info_opt: Option<(bool, bool, usize, &[Keystroke])> = None; - 'outer: for (binding_index, binding, pending) in possibilities { - for depth in (0..=context_stack.len()).rev() { - if self.binding_enabled(binding, &context_stack[0..depth]) { - let is_no_action = is_no_action(&*binding.action); - // We only want to consider a binding pending if it has an action - // This, however, means that if we have both a NoAction binding and a binding - // with an action at the same depth, we should still set is_pending to true. - if let Some(pending_info) = pending_info_opt.as_mut() { - let ( - already_pending, - pending_is_no_action, - pending_depth, - pending_keystrokes, - ) = *pending_info; + 'outer: for (depth, binding_index, binding, pending) in possibilities { + let is_no_action = is_no_action(&*binding.action); + // We only want to consider a binding pending if it has an action + // This, however, means that if we have both a NoAction binding and a binding + // with an action at the same depth, we should still set is_pending to true. + if let Some(pending_info) = pending_info_opt.as_mut() { + let (already_pending, pending_is_no_action, pending_depth, pending_keystrokes) = + *pending_info; - // We only want to change the pending status if it's not already pending AND if - // the existing pending status was set by a NoAction binding. This avoids a NoAction - // binding erroneously setting the pending status to true when a binding with an action - // already set it to false - // - // We also want to change the pending status if the keystrokes don't match, - // meaning it's different keystrokes than the NoAction that set pending to false - if pending - && !already_pending - && pending_is_no_action - && (pending_depth == depth - || pending_keystrokes != binding.keystrokes()) - { - pending_info.0 = !is_no_action; - } - } else { - pending_info_opt = Some(( - pending && !is_no_action, - is_no_action, - depth, - binding.keystrokes(), - )); - } - - if !pending { - bindings.push((binding_index, binding.clone(), depth)); - continue 'outer; - } + // We only want to change the pending status if it's not already pending AND if + // the existing pending status was set by a NoAction binding. This avoids a NoAction + // binding erroneously setting the pending status to true when a binding with an action + // already set it to false + // + // We also want to change the pending status if the keystrokes don't match, + // meaning it's different keystrokes than the NoAction that set pending to false + if pending + && !already_pending + && pending_is_no_action + && (pending_depth == depth || pending_keystrokes != binding.keystrokes()) + { + pending_info.0 = !is_no_action; } + } else { + pending_info_opt = Some(( + pending && !is_no_action, + is_no_action, + depth, + binding.keystrokes(), + )); + } + + if !pending { + bindings.push((binding_index, binding.clone(), depth)); + continue 'outer; } } // sort by descending depth @@ -245,15 +240,13 @@ impl Keymap { } /// Check if the given binding is enabled, given a certain key context. - fn binding_enabled(&self, binding: &KeyBinding, context: &[KeyContext]) -> bool { - // If binding has a context predicate, it must match the current context, + /// Returns the deepest depth at which the binding matches, or None if it doesn't match. + fn binding_enabled(&self, binding: &KeyBinding, contexts: &[KeyContext]) -> Option { if let Some(predicate) = &binding.context_predicate { - if !predicate.eval(context) { - return false; - } + predicate.depth_of(contexts) + } else { + Some(contexts.len()) } - - true } } @@ -280,18 +273,33 @@ mod tests { keymap.add_bindings(bindings.clone()); // global bindings are enabled in all contexts - assert!(keymap.binding_enabled(&bindings[0], &[])); - assert!(keymap.binding_enabled(&bindings[0], &[KeyContext::parse("terminal").unwrap()])); + assert_eq!(keymap.binding_enabled(&bindings[0], &[]), Some(0)); + assert_eq!( + keymap.binding_enabled(&bindings[0], &[KeyContext::parse("terminal").unwrap()]), + Some(1) + ); // contextual bindings are enabled in contexts that match their predicate - assert!(!keymap.binding_enabled(&bindings[1], &[KeyContext::parse("barf x=y").unwrap()])); - assert!(keymap.binding_enabled(&bindings[1], &[KeyContext::parse("pane x=y").unwrap()])); + assert_eq!( + keymap.binding_enabled(&bindings[1], &[KeyContext::parse("barf x=y").unwrap()]), + None + ); + assert_eq!( + keymap.binding_enabled(&bindings[1], &[KeyContext::parse("pane x=y").unwrap()]), + Some(1) + ); - assert!(!keymap.binding_enabled(&bindings[2], &[KeyContext::parse("editor").unwrap()])); - assert!(keymap.binding_enabled( - &bindings[2], - &[KeyContext::parse("editor mode=full").unwrap()] - )); + assert_eq!( + keymap.binding_enabled(&bindings[2], &[KeyContext::parse("editor").unwrap()]), + None + ); + assert_eq!( + keymap.binding_enabled( + &bindings[2], + &[KeyContext::parse("editor mode=full").unwrap()] + ), + Some(1) + ); } #[test] diff --git a/crates/gpui/src/keymap/context.rs b/crates/gpui/src/keymap/context.rs index eaad060982..f4b878ae77 100644 --- a/crates/gpui/src/keymap/context.rs +++ b/crates/gpui/src/keymap/context.rs @@ -178,7 +178,7 @@ pub enum KeyBindingContextPredicate { NotEqual(SharedString, SharedString), /// A predicate that will match a given predicate appearing below another predicate. /// in the element tree - Child( + Descendant( Box, Box, ), @@ -203,7 +203,7 @@ impl fmt::Display for KeyBindingContextPredicate { Self::Equal(left, right) => write!(f, "{} == {}", left, right), Self::NotEqual(left, right) => write!(f, "{} != {}", left, right), Self::Not(pred) => write!(f, "!{}", pred), - Self::Child(parent, child) => write!(f, "{} > {}", parent, child), + Self::Descendant(parent, child) => write!(f, "{} > {}", parent, child), Self::And(left, right) => write!(f, "({} && {})", left, right), Self::Or(left, right) => write!(f, "({} || {})", left, right), } @@ -249,8 +249,25 @@ impl KeyBindingContextPredicate { } } + /// Find the deepest depth at which the predicate matches. + pub fn depth_of(&self, contexts: &[KeyContext]) -> Option { + for depth in (0..=contexts.len()).rev() { + let context_slice = &contexts[0..depth]; + if self.eval_inner(context_slice, contexts) { + return Some(depth); + } + } + None + } + /// Eval a predicate against a set of contexts, arranged from lowest to highest. - pub fn eval(&self, contexts: &[KeyContext]) -> bool { + #[allow(unused)] + pub(crate) fn eval(&self, contexts: &[KeyContext]) -> bool { + self.eval_inner(contexts, contexts) + } + + /// Eval a predicate against a set of contexts, arranged from lowest to highest. + pub fn eval_inner(&self, contexts: &[KeyContext], all_contexts: &[KeyContext]) -> bool { let Some(context) = contexts.last() else { return false; }; @@ -264,12 +281,38 @@ impl KeyBindingContextPredicate { .get(left) .map(|value| value != right) .unwrap_or(true), - Self::Not(pred) => !pred.eval(contexts), - Self::Child(parent, child) => { - parent.eval(&contexts[..contexts.len() - 1]) && child.eval(contexts) + Self::Not(pred) => { + for i in 0..all_contexts.len() { + if pred.eval_inner(&all_contexts[..=i], all_contexts) { + return false; + } + } + return true; + } + // Workspace > Pane > Editor + // + // Pane > (Pane > Editor) // should match? + // (Pane > Pane) > Editor // should not match? + // Pane > !Workspace <-- should match? + // !Workspace <-- shouldn't match? + Self::Descendant(parent, child) => { + for i in 0..contexts.len() - 1 { + // [Workspace > Pane], [Editor] + if parent.eval_inner(&contexts[..=i], all_contexts) { + if !child.eval_inner(&contexts[i + 1..], &contexts[i + 1..]) { + return false; + } + return true; + } + } + return false; + } + Self::And(left, right) => { + left.eval_inner(contexts, all_contexts) && right.eval_inner(contexts, all_contexts) + } + Self::Or(left, right) => { + left.eval_inner(contexts, all_contexts) || right.eval_inner(contexts, all_contexts) } - Self::And(left, right) => left.eval(contexts) && right.eval(contexts), - Self::Or(left, right) => left.eval(contexts) || right.eval(contexts), } } @@ -285,7 +328,7 @@ impl KeyBindingContextPredicate { } match other { - KeyBindingContextPredicate::Child(_, child) => self.is_superset(child), + KeyBindingContextPredicate::Descendant(_, child) => self.is_superset(child), KeyBindingContextPredicate::And(left, right) => { self.is_superset(left) || self.is_superset(right) } @@ -375,7 +418,7 @@ impl KeyBindingContextPredicate { } fn new_child(self, other: Self) -> Result { - Ok(Self::Child(Box::new(self), Box::new(other))) + Ok(Self::Descendant(Box::new(self), Box::new(other))) } fn new_eq(self, other: Self) -> Result { @@ -598,4 +641,122 @@ mod tests { assert_eq!(a.is_superset(&b), result, "({a:?}).is_superset({b:?})"); } } + + #[test] + fn test_child_operator() { + let predicate = KeyBindingContextPredicate::parse("parent > child").unwrap(); + + let parent_context = KeyContext::try_from("parent").unwrap(); + let child_context = KeyContext::try_from("child").unwrap(); + + let contexts = vec![parent_context.clone(), child_context.clone()]; + assert!(predicate.eval(&contexts)); + + let grandparent_context = KeyContext::try_from("grandparent").unwrap(); + + let contexts = vec![ + grandparent_context, + parent_context.clone(), + child_context.clone(), + ]; + assert!(predicate.eval(&contexts)); + + let other_context = KeyContext::try_from("other").unwrap(); + + let contexts = vec![other_context.clone(), child_context.clone()]; + assert!(!predicate.eval(&contexts)); + + let contexts = vec![ + parent_context.clone(), + other_context.clone(), + child_context.clone(), + ]; + assert!(predicate.eval(&contexts)); + + assert!(!predicate.eval(&[])); + assert!(!predicate.eval(&[child_context.clone()])); + assert!(!predicate.eval(&[parent_context])); + + let zany_predicate = KeyBindingContextPredicate::parse("child > child").unwrap(); + assert!(!zany_predicate.eval(&[child_context.clone()])); + assert!(zany_predicate.eval(&[child_context.clone(), child_context.clone()])); + } + + #[test] + fn test_not_operator() { + let not_predicate = KeyBindingContextPredicate::parse("!editor").unwrap(); + let editor_context = KeyContext::try_from("editor").unwrap(); + let workspace_context = KeyContext::try_from("workspace").unwrap(); + let parent_context = KeyContext::try_from("parent").unwrap(); + let child_context = KeyContext::try_from("child").unwrap(); + + assert!(not_predicate.eval(&[workspace_context.clone()])); + assert!(!not_predicate.eval(&[editor_context.clone()])); + assert!(!not_predicate.eval(&[editor_context.clone(), workspace_context.clone()])); + assert!(!not_predicate.eval(&[workspace_context.clone(), editor_context.clone()])); + + let complex_not = KeyBindingContextPredicate::parse("!editor && workspace").unwrap(); + assert!(complex_not.eval(&[workspace_context.clone()])); + assert!(!complex_not.eval(&[editor_context.clone(), workspace_context.clone()])); + + let not_mode_predicate = KeyBindingContextPredicate::parse("!(mode == full)").unwrap(); + let mut mode_context = KeyContext::default(); + mode_context.set("mode", "full"); + assert!(!not_mode_predicate.eval(&[mode_context.clone()])); + + let mut other_mode_context = KeyContext::default(); + other_mode_context.set("mode", "partial"); + assert!(not_mode_predicate.eval(&[other_mode_context])); + + let not_descendant = KeyBindingContextPredicate::parse("!(parent > child)").unwrap(); + assert!(not_descendant.eval(&[parent_context.clone()])); + assert!(not_descendant.eval(&[child_context.clone()])); + assert!(!not_descendant.eval(&[parent_context.clone(), child_context.clone()])); + + let not_descendant = KeyBindingContextPredicate::parse("parent > !child").unwrap(); + assert!(!not_descendant.eval(&[parent_context.clone()])); + assert!(!not_descendant.eval(&[child_context.clone()])); + assert!(!not_descendant.eval(&[parent_context.clone(), child_context.clone()])); + + let double_not = KeyBindingContextPredicate::parse("!!editor").unwrap(); + assert!(double_not.eval(&[editor_context.clone()])); + assert!(!double_not.eval(&[workspace_context.clone()])); + + // Test complex descendant cases + let workspace_context = KeyContext::try_from("Workspace").unwrap(); + let pane_context = KeyContext::try_from("Pane").unwrap(); + let editor_context = KeyContext::try_from("Editor").unwrap(); + + // Workspace > Pane > Editor + let workspace_pane_editor = vec![ + workspace_context.clone(), + pane_context.clone(), + editor_context.clone(), + ]; + + // Pane > (Pane > Editor) - should not match + let pane_pane_editor = KeyBindingContextPredicate::parse("Pane > (Pane > Editor)").unwrap(); + assert!(!pane_pane_editor.eval(&workspace_pane_editor)); + + let workspace_pane_editor_predicate = + KeyBindingContextPredicate::parse("Workspace > Pane > Editor").unwrap(); + assert!(workspace_pane_editor_predicate.eval(&workspace_pane_editor)); + + // (Pane > Pane) > Editor - should not match + let pane_pane_then_editor = + KeyBindingContextPredicate::parse("(Pane > Pane) > Editor").unwrap(); + assert!(!pane_pane_then_editor.eval(&workspace_pane_editor)); + + // Pane > !Workspace - should match + let pane_not_workspace = KeyBindingContextPredicate::parse("Pane > !Workspace").unwrap(); + assert!(pane_not_workspace.eval(&[pane_context.clone(), editor_context.clone()])); + assert!(!pane_not_workspace.eval(&[pane_context.clone(), workspace_context.clone()])); + + // !Workspace - shouldn't match when Workspace is in the context + let not_workspace = KeyBindingContextPredicate::parse("!Workspace").unwrap(); + assert!(!not_workspace.eval(&[workspace_context.clone()])); + assert!(not_workspace.eval(&[pane_context.clone()])); + assert!(not_workspace.eval(&[editor_context.clone()])); + assert!(!not_workspace.eval(&workspace_pane_editor)); + } } diff --git a/crates/language_tools/src/key_context_view.rs b/crates/language_tools/src/key_context_view.rs index c933872d8c..88131781ec 100644 --- a/crates/language_tools/src/key_context_view.rs +++ b/crates/language_tools/src/key_context_view.rs @@ -132,14 +132,7 @@ impl KeyContextView { } fn matches(&self, predicate: &KeyBindingContextPredicate) -> bool { - let mut stack = self.context_stack.clone(); - while !stack.is_empty() { - if predicate.eval(&stack) { - return true; - } - stack.pop(); - } - false + predicate.depth_of(&self.context_stack).is_some() } fn action_matches(&self, a: &Option>, b: &dyn Action) -> bool { diff --git a/crates/settings_ui/src/keybindings.rs b/crates/settings_ui/src/keybindings.rs index 29927c4196..1a5bb7b459 100644 --- a/crates/settings_ui/src/keybindings.rs +++ b/crates/settings_ui/src/keybindings.rs @@ -3008,7 +3008,7 @@ fn collect_contexts_from_assets() -> Vec { contexts.insert(ident_a); contexts.insert(ident_b); } - gpui::KeyBindingContextPredicate::Child(ctx_a, ctx_b) => { + gpui::KeyBindingContextPredicate::Descendant(ctx_a, ctx_b) => { queue.push(*ctx_a); queue.push(*ctx_b); } diff --git a/docs/src/key-bindings.md b/docs/src/key-bindings.md index b2beaf9ffb..90aa400bb4 100644 --- a/docs/src/key-bindings.md +++ b/docs/src/key-bindings.md @@ -24,7 +24,7 @@ The file contains a JSON array of objects with `"bindings"`. If no `"context"` i Within each binding section a [key sequence](#keybinding-syntax) is mapped to an [action](#actions). If conflicts are detected they are resolved as [described below](#precedence). -If you are using a non-QWERTY, Latin-character keyboard, you may want to set `use_layout_keys` to `true`. See [Non-QWERTY keyboards](#non-qwerty-keyboards) for more information. +If you are using a non-QWERTY, Latin-character keyboard, you may want to set `use_key_equivalents` to `true`. See [Non-QWERTY keyboards](#non-qwerty-keyboards) for more information. For example: @@ -87,8 +87,6 @@ If a binding group has a `"context"` key it will be matched against the currentl Zed's contexts make up a tree, with the root being `Workspace`. Workspaces contain Panes and Panels, and Panes contain Editors, etc. The easiest way to see what contexts are active at a given moment is the key context view, which you can get to with `dev: Open Key Context View` in the command palette. -Contexts can contain extra attributes in addition to the name, so that you can (for example) match only in markdown files with `"context": "Editor && extension==md"`. It's worth noting that you can only use attributes at the level they are defined. - For example: ``` @@ -106,9 +104,20 @@ Workspace os=macos Context expressions can contain the following syntax: - `X && Y`, `X || Y` to and/or two conditions -- `!X` to negate a condition +- `!X` to check that a condition is false - `(X)` for grouping -- `X > Y` to match if a parent in the tree matches X and this layer matches Y. +- `X > Y` to match if an ancestor in the tree matches X and this layer matches Y. + +For example: + +- `"context": "Editor"` - matches any editor (including inline inputs) +- `"context": "Editor && mode=full"` - matches the main editors used for editing code +- `"context": "!Editor && !Terminal"` - matches anywhere except where an Editor or Terminal is focused +- `"context": "os=macos > Editor"` - matches any editor on macOS. + +It's worth noting that attributes are only available on the node they are defined on. This means that if you want to (for example) only enable a keybinding when the debugger is stopped in vim normal mode, you need to do `debugger_stopped > vim_mode == normal`. + +Note: Before Zed v0.197.x, the ! operator only looked at one node at a time, and `>` meant "parent" not "ancestor". This meant that `!Editor` would match the context `Workspace > Pane > Editor`, because (confusingly) the Pane matches `!Editor`, and that `os=macos > Editor` did not match the context `Workspace > Pane > Editor` because of the intermediate `Pane` node. If you're using Vim mode, we have information on how [vim modes influence the context](./vim.md#contexts) From 9a20843ba251324150cb072e7dcbd337a40dc7d5 Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Fri, 18 Jul 2025 12:03:08 -0400 Subject: [PATCH 0059/1052] Revert "gpui: Improve path rendering & global multisample anti-aliasing" (#34722) Reverts zed-industries/zed#29718 We've noticed some issues with Zed on Intel-based Macs where typing has become sluggish, and git bisect has seemed to point towards this PR. Reverting for now, until we can understand why it is causing this issue. --- Cargo.lock | 6 +- Cargo.toml | 12 +- crates/gpui/build.rs | 2 +- crates/gpui/examples/painting.rs | 23 +- crates/gpui/src/path_builder.rs | 5 +- crates/gpui/src/platform.rs | 1 + crates/gpui/src/platform/blade/blade_atlas.rs | 80 +++- .../gpui/src/platform/blade/blade_renderer.rs | 372 +++++++-------- crates/gpui/src/platform/blade/shaders.wgsl | 57 ++- crates/gpui/src/platform/mac/metal_atlas.rs | 35 +- .../gpui/src/platform/mac/metal_renderer.rs | 443 +++++++++++------- crates/gpui/src/platform/mac/shaders.metal | 103 ++-- crates/gpui/src/platform/test/window.rs | 2 +- crates/gpui/src/scene.rs | 61 ++- crates/gpui/src/window.rs | 2 +- docs/src/linux.md | 2 +- 16 files changed, 723 insertions(+), 483 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index aad5349a87..8bf2654370 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2162,7 +2162,7 @@ dependencies = [ [[package]] name = "blade-graphics" version = "0.6.0" -source = "git+https://github.com/kvark/blade?rev=416375211bb0b5826b3584dccdb6a43369e499ad#416375211bb0b5826b3584dccdb6a43369e499ad" +source = "git+https://github.com/kvark/blade?rev=e0ec4e720957edd51b945b64dd85605ea54bcfe5#e0ec4e720957edd51b945b64dd85605ea54bcfe5" dependencies = [ "ash", "ash-window", @@ -2195,7 +2195,7 @@ dependencies = [ [[package]] name = "blade-macros" version = "0.3.0" -source = "git+https://github.com/kvark/blade?rev=416375211bb0b5826b3584dccdb6a43369e499ad#416375211bb0b5826b3584dccdb6a43369e499ad" +source = "git+https://github.com/kvark/blade?rev=e0ec4e720957edd51b945b64dd85605ea54bcfe5#e0ec4e720957edd51b945b64dd85605ea54bcfe5" dependencies = [ "proc-macro2", "quote", @@ -2205,7 +2205,7 @@ dependencies = [ [[package]] name = "blade-util" version = "0.2.0" -source = "git+https://github.com/kvark/blade?rev=416375211bb0b5826b3584dccdb6a43369e499ad#416375211bb0b5826b3584dccdb6a43369e499ad" +source = "git+https://github.com/kvark/blade?rev=e0ec4e720957edd51b945b64dd85605ea54bcfe5#e0ec4e720957edd51b945b64dd85605ea54bcfe5" dependencies = [ "blade-graphics", "bytemuck", diff --git a/Cargo.toml b/Cargo.toml index 1be2eb8d77..8d942a4c73 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -436,9 +436,9 @@ aws-smithy-runtime-api = { version = "1.7.4", features = ["http-1x", "client"] } aws-smithy-types = { version = "1.3.0", features = ["http-body-1-x"] } base64 = "0.22" bitflags = "2.6.0" -blade-graphics = { git = "https://github.com/kvark/blade", rev = "416375211bb0b5826b3584dccdb6a43369e499ad" } -blade-macros = { git = "https://github.com/kvark/blade", rev = "416375211bb0b5826b3584dccdb6a43369e499ad" } -blade-util = { git = "https://github.com/kvark/blade", rev = "416375211bb0b5826b3584dccdb6a43369e499ad" } +blade-graphics = { git = "https://github.com/kvark/blade", rev = "e0ec4e720957edd51b945b64dd85605ea54bcfe5" } +blade-macros = { git = "https://github.com/kvark/blade", rev = "e0ec4e720957edd51b945b64dd85605ea54bcfe5" } +blade-util = { git = "https://github.com/kvark/blade", rev = "e0ec4e720957edd51b945b64dd85605ea54bcfe5" } blake3 = "1.5.3" bytes = "1.0" cargo_metadata = "0.19" @@ -491,7 +491,7 @@ json_dotpath = "1.1" jsonschema = "0.30.0" jsonwebtoken = "9.3" jupyter-protocol = { git = "https://github.com/ConradIrwin/runtimed", rev = "7130c804216b6914355d15d0b91ea91f6babd734" } -jupyter-websocket-client = { git = "https://github.com/ConradIrwin/runtimed", rev = "7130c804216b6914355d15d0b91ea91f6babd734" } +jupyter-websocket-client = { git = "https://github.com/ConradIrwin/runtimed" ,rev = "7130c804216b6914355d15d0b91ea91f6babd734" } libc = "0.2" libsqlite3-sys = { version = "0.30.1", features = ["bundled"] } linkify = "0.10.0" @@ -502,7 +502,7 @@ metal = "0.29" moka = { version = "0.12.10", features = ["sync"] } naga = { version = "25.0", features = ["wgsl-in"] } nanoid = "0.4" -nbformat = { git = "https://github.com/ConradIrwin/runtimed", rev = "7130c804216b6914355d15d0b91ea91f6babd734" } +nbformat = { git = "https://github.com/ConradIrwin/runtimed", rev = "7130c804216b6914355d15d0b91ea91f6babd734" } nix = "0.29" num-format = "0.4.4" objc = "0.2" @@ -543,7 +543,7 @@ reqwest = { git = "https://github.com/zed-industries/reqwest.git", rev = "951c77 "stream", ] } rsa = "0.9.6" -runtimelib = { git = "https://github.com/ConradIrwin/runtimed", rev = "7130c804216b6914355d15d0b91ea91f6babd734", default-features = false, features = [ +runtimelib = { git = "https://github.com/ConradIrwin/runtimed", rev = "7130c804216b6914355d15d0b91ea91f6babd734", default-features = false, features = [ "async-dispatcher-runtime", ] } rust-embed = { version = "8.4", features = ["include-exclude"] } diff --git a/crates/gpui/build.rs b/crates/gpui/build.rs index b9496cc014..aed4397440 100644 --- a/crates/gpui/build.rs +++ b/crates/gpui/build.rs @@ -126,7 +126,7 @@ mod macos { "ContentMask".into(), "Uniforms".into(), "AtlasTile".into(), - "PathInputIndex".into(), + "PathRasterizationInputIndex".into(), "PathVertex_ScaledPixels".into(), "ShadowInputIndex".into(), "Shadow".into(), diff --git a/crates/gpui/examples/painting.rs b/crates/gpui/examples/painting.rs index 9ab58cffc9..ff4b64cbda 100644 --- a/crates/gpui/examples/painting.rs +++ b/crates/gpui/examples/painting.rs @@ -1,13 +1,9 @@ use gpui::{ Application, Background, Bounds, ColorSpace, Context, MouseDownEvent, Path, PathBuilder, - PathStyle, Pixels, Point, Render, SharedString, StrokeOptions, Window, WindowBounds, - WindowOptions, canvas, div, linear_color_stop, linear_gradient, point, prelude::*, px, rgb, - size, + PathStyle, Pixels, Point, Render, SharedString, StrokeOptions, Window, WindowOptions, canvas, + div, linear_color_stop, linear_gradient, point, prelude::*, px, rgb, size, }; -const DEFAULT_WINDOW_WIDTH: Pixels = px(1024.0); -const DEFAULT_WINDOW_HEIGHT: Pixels = px(768.0); - struct PaintingViewer { default_lines: Vec<(Path, Background)>, lines: Vec>>, @@ -151,6 +147,8 @@ impl PaintingViewer { px(320.0 + (i as f32 * 10.0).sin() * 40.0), )); } + let path = builder.build().unwrap(); + lines.push((path, gpui::green().into())); Self { default_lines: lines.clone(), @@ -185,13 +183,9 @@ fn button( } impl Render for PaintingViewer { - fn render(&mut self, window: &mut Window, cx: &mut Context) -> impl IntoElement { - window.request_animation_frame(); - + fn render(&mut self, _: &mut Window, cx: &mut Context) -> impl IntoElement { let default_lines = self.default_lines.clone(); let lines = self.lines.clone(); - let window_size = window.bounds().size; - let scale = window_size.width / DEFAULT_WINDOW_WIDTH; let dashed = self.dashed; div() @@ -228,7 +222,7 @@ impl Render for PaintingViewer { move |_, _, _| {}, move |_, _, window, _| { for (path, color) in default_lines { - window.paint_path(path.clone().scale(scale), color); + window.paint_path(path, color); } for points in lines { @@ -304,11 +298,6 @@ fn main() { cx.open_window( WindowOptions { focus: true, - window_bounds: Some(WindowBounds::Windowed(Bounds::centered( - None, - size(DEFAULT_WINDOW_WIDTH, DEFAULT_WINDOW_HEIGHT), - cx, - ))), ..Default::default() }, |window, cx| cx.new(|cx| PaintingViewer::new(window, cx)), diff --git a/crates/gpui/src/path_builder.rs b/crates/gpui/src/path_builder.rs index 13c168b0bb..6c8cfddd52 100644 --- a/crates/gpui/src/path_builder.rs +++ b/crates/gpui/src/path_builder.rs @@ -336,7 +336,10 @@ impl PathBuilder { let v1 = buf.vertices[i1]; let v2 = buf.vertices[i2]; - path.push_triangle((v0.into(), v1.into(), v2.into())); + path.push_triangle( + (v0.into(), v1.into(), v2.into()), + (point(0., 1.), point(0., 1.), point(0., 1.)), + ); } path diff --git a/crates/gpui/src/platform.rs b/crates/gpui/src/platform.rs index 0250e59a9b..8918fdd28b 100644 --- a/crates/gpui/src/platform.rs +++ b/crates/gpui/src/platform.rs @@ -794,6 +794,7 @@ pub(crate) struct AtlasTextureId { pub(crate) enum AtlasTextureKind { Monochrome = 0, Polychrome = 1, + Path = 2, } #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord)] diff --git a/crates/gpui/src/platform/blade/blade_atlas.rs b/crates/gpui/src/platform/blade/blade_atlas.rs index 0b119c3910..78ba52056a 100644 --- a/crates/gpui/src/platform/blade/blade_atlas.rs +++ b/crates/gpui/src/platform/blade/blade_atlas.rs @@ -10,6 +10,8 @@ use etagere::BucketedAtlasAllocator; use parking_lot::Mutex; use std::{borrow::Cow, ops, sync::Arc}; +pub(crate) const PATH_TEXTURE_FORMAT: gpu::TextureFormat = gpu::TextureFormat::R16Float; + pub(crate) struct BladeAtlas(Mutex); struct PendingUpload { @@ -25,6 +27,7 @@ struct BladeAtlasState { tiles_by_key: FxHashMap, initializations: Vec, uploads: Vec, + path_sample_count: u32, } #[cfg(gles)] @@ -38,13 +41,13 @@ impl BladeAtlasState { } pub struct BladeTextureInfo { - #[allow(dead_code)] pub size: gpu::Extent, pub raw_view: gpu::TextureView, + pub msaa_view: Option, } impl BladeAtlas { - pub(crate) fn new(gpu: &Arc) -> Self { + pub(crate) fn new(gpu: &Arc, path_sample_count: u32) -> Self { BladeAtlas(Mutex::new(BladeAtlasState { gpu: Arc::clone(gpu), upload_belt: BufferBelt::new(BufferBeltDescriptor { @@ -56,6 +59,7 @@ impl BladeAtlas { tiles_by_key: Default::default(), initializations: Vec::new(), uploads: Vec::new(), + path_sample_count, })) } @@ -63,7 +67,6 @@ impl BladeAtlas { self.0.lock().destroy(); } - #[allow(dead_code)] pub(crate) fn clear_textures(&self, texture_kind: AtlasTextureKind) { let mut lock = self.0.lock(); let textures = &mut lock.storage[texture_kind]; @@ -72,6 +75,19 @@ impl BladeAtlas { } } + /// Allocate a rectangle and make it available for rendering immediately (without waiting for `before_frame`) + pub fn allocate_for_rendering( + &self, + size: Size, + texture_kind: AtlasTextureKind, + gpu_encoder: &mut gpu::CommandEncoder, + ) -> AtlasTile { + let mut lock = self.0.lock(); + let tile = lock.allocate(size, texture_kind); + lock.flush_initializations(gpu_encoder); + tile + } + pub fn before_frame(&self, gpu_encoder: &mut gpu::CommandEncoder) { let mut lock = self.0.lock(); lock.flush(gpu_encoder); @@ -93,6 +109,7 @@ impl BladeAtlas { depth: 1, }, raw_view: texture.raw_view, + msaa_view: texture.msaa_view, } } } @@ -183,8 +200,48 @@ impl BladeAtlasState { format = gpu::TextureFormat::Bgra8UnormSrgb; usage = gpu::TextureUsage::COPY | gpu::TextureUsage::RESOURCE; } + AtlasTextureKind::Path => { + format = PATH_TEXTURE_FORMAT; + usage = gpu::TextureUsage::COPY + | gpu::TextureUsage::RESOURCE + | gpu::TextureUsage::TARGET; + } } + // We currently only enable MSAA for path textures. + let (msaa, msaa_view) = if self.path_sample_count > 1 && kind == AtlasTextureKind::Path { + let msaa = self.gpu.create_texture(gpu::TextureDesc { + name: "msaa path texture", + format, + size: gpu::Extent { + width: size.width.into(), + height: size.height.into(), + depth: 1, + }, + array_layer_count: 1, + mip_level_count: 1, + sample_count: self.path_sample_count, + dimension: gpu::TextureDimension::D2, + usage: gpu::TextureUsage::TARGET, + external: None, + }); + + ( + Some(msaa), + Some(self.gpu.create_texture_view( + msaa, + gpu::TextureViewDesc { + name: "msaa texture view", + format, + dimension: gpu::ViewDimension::D2, + subresources: &Default::default(), + }, + )), + ) + } else { + (None, None) + }; + let raw = self.gpu.create_texture(gpu::TextureDesc { name: "atlas", format, @@ -222,6 +279,8 @@ impl BladeAtlasState { format, raw, raw_view, + msaa, + msaa_view, live_atlas_keys: 0, }; @@ -281,6 +340,7 @@ impl BladeAtlasState { struct BladeAtlasStorage { monochrome_textures: AtlasTextureList, polychrome_textures: AtlasTextureList, + path_textures: AtlasTextureList, } impl ops::Index for BladeAtlasStorage { @@ -289,6 +349,7 @@ impl ops::Index for BladeAtlasStorage { match kind { crate::AtlasTextureKind::Monochrome => &self.monochrome_textures, crate::AtlasTextureKind::Polychrome => &self.polychrome_textures, + crate::AtlasTextureKind::Path => &self.path_textures, } } } @@ -298,6 +359,7 @@ impl ops::IndexMut for BladeAtlasStorage { match kind { crate::AtlasTextureKind::Monochrome => &mut self.monochrome_textures, crate::AtlasTextureKind::Polychrome => &mut self.polychrome_textures, + crate::AtlasTextureKind::Path => &mut self.path_textures, } } } @@ -308,6 +370,7 @@ impl ops::Index for BladeAtlasStorage { let textures = match id.kind { crate::AtlasTextureKind::Monochrome => &self.monochrome_textures, crate::AtlasTextureKind::Polychrome => &self.polychrome_textures, + crate::AtlasTextureKind::Path => &self.path_textures, }; textures[id.index as usize].as_ref().unwrap() } @@ -321,6 +384,9 @@ impl BladeAtlasStorage { for mut texture in self.polychrome_textures.drain().flatten() { texture.destroy(gpu); } + for mut texture in self.path_textures.drain().flatten() { + texture.destroy(gpu); + } } } @@ -329,6 +395,8 @@ struct BladeAtlasTexture { allocator: BucketedAtlasAllocator, raw: gpu::Texture, raw_view: gpu::TextureView, + msaa: Option, + msaa_view: Option, format: gpu::TextureFormat, live_atlas_keys: u32, } @@ -356,6 +424,12 @@ impl BladeAtlasTexture { fn destroy(&mut self, gpu: &gpu::Context) { gpu.destroy_texture(self.raw); gpu.destroy_texture_view(self.raw_view); + if let Some(msaa) = self.msaa { + gpu.destroy_texture(msaa); + } + if let Some(msaa_view) = self.msaa_view { + gpu.destroy_texture_view(msaa_view); + } } fn bytes_per_pixel(&self) -> u8 { diff --git a/crates/gpui/src/platform/blade/blade_renderer.rs b/crates/gpui/src/platform/blade/blade_renderer.rs index 1b9f111b0d..cac47434ae 100644 --- a/crates/gpui/src/platform/blade/blade_renderer.rs +++ b/crates/gpui/src/platform/blade/blade_renderer.rs @@ -1,19 +1,24 @@ // Doing `if let` gives you nice scoping with passes/encoders #![allow(irrefutable_let_patterns)] -use super::{BladeAtlas, BladeContext}; +use super::{BladeAtlas, BladeContext, PATH_TEXTURE_FORMAT}; use crate::{ - Background, Bounds, ContentMask, DevicePixels, GpuSpecs, MonochromeSprite, PathVertex, - PolychromeSprite, PrimitiveBatch, Quad, ScaledPixels, Scene, Shadow, Size, Underline, + AtlasTextureKind, AtlasTile, Background, Bounds, ContentMask, DevicePixels, GpuSpecs, + MonochromeSprite, Path, PathId, PathVertex, PolychromeSprite, PrimitiveBatch, Quad, + ScaledPixels, Scene, Shadow, Size, Underline, }; -use blade_graphics::{self as gpu}; +use blade_graphics as gpu; use blade_util::{BufferBelt, BufferBeltDescriptor}; use bytemuck::{Pod, Zeroable}; +use collections::HashMap; #[cfg(target_os = "macos")] use media::core_video::CVMetalTextureCache; use std::{mem, sync::Arc}; const MAX_FRAME_TIME_MS: u32 = 10000; +// Use 4x MSAA, all devices support it. +// https://developer.apple.com/documentation/metal/mtldevice/1433355-supportstexturesamplecount +const DEFAULT_PATH_SAMPLE_COUNT: u32 = 4; #[repr(C)] #[derive(Clone, Copy, Pod, Zeroable)] @@ -61,9 +66,16 @@ struct ShaderShadowsData { } #[derive(blade_macros::ShaderData)] -struct ShaderPathsData { +struct ShaderPathRasterizationData { globals: GlobalParams, b_path_vertices: gpu::BufferPiece, +} + +#[derive(blade_macros::ShaderData)] +struct ShaderPathsData { + globals: GlobalParams, + t_sprite: gpu::TextureView, + s_sprite: gpu::Sampler, b_path_sprites: gpu::BufferPiece, } @@ -103,27 +115,13 @@ struct ShaderSurfacesData { struct PathSprite { bounds: Bounds, color: Background, -} - -/// Argument buffer layout for `draw_indirect` commands. -#[repr(C)] -#[derive(Copy, Clone, Debug, Default, Pod, Zeroable)] -pub struct DrawIndirectArgs { - /// The number of vertices to draw. - pub vertex_count: u32, - /// The number of instances to draw. - pub instance_count: u32, - /// The Index of the first vertex to draw. - pub first_vertex: u32, - /// The instance ID of the first instance to draw. - /// - /// Has to be 0, unless [`Features::INDIRECT_FIRST_INSTANCE`](crate::Features::INDIRECT_FIRST_INSTANCE) is enabled. - pub first_instance: u32, + tile: AtlasTile, } struct BladePipelines { quads: gpu::RenderPipeline, shadows: gpu::RenderPipeline, + path_rasterization: gpu::RenderPipeline, paths: gpu::RenderPipeline, underlines: gpu::RenderPipeline, mono_sprites: gpu::RenderPipeline, @@ -132,7 +130,7 @@ struct BladePipelines { } impl BladePipelines { - fn new(gpu: &gpu::Context, surface_info: gpu::SurfaceInfo, sample_count: u32) -> Self { + fn new(gpu: &gpu::Context, surface_info: gpu::SurfaceInfo, path_sample_count: u32) -> Self { use gpu::ShaderData as _; log::info!( @@ -180,10 +178,7 @@ impl BladePipelines { depth_stencil: None, fragment: Some(shader.at("fs_quad")), color_targets, - multisample_state: gpu::MultisampleState { - sample_count, - ..Default::default() - }, + multisample_state: gpu::MultisampleState::default(), }), shadows: gpu.create_render_pipeline(gpu::RenderPipelineDesc { name: "shadows", @@ -197,8 +192,26 @@ impl BladePipelines { depth_stencil: None, fragment: Some(shader.at("fs_shadow")), color_targets, + multisample_state: gpu::MultisampleState::default(), + }), + path_rasterization: gpu.create_render_pipeline(gpu::RenderPipelineDesc { + name: "path_rasterization", + data_layouts: &[&ShaderPathRasterizationData::layout()], + vertex: shader.at("vs_path_rasterization"), + vertex_fetches: &[], + primitive: gpu::PrimitiveState { + topology: gpu::PrimitiveTopology::TriangleList, + ..Default::default() + }, + depth_stencil: None, + fragment: Some(shader.at("fs_path_rasterization")), + color_targets: &[gpu::ColorTargetState { + format: PATH_TEXTURE_FORMAT, + blend: Some(gpu::BlendState::ADDITIVE), + write_mask: gpu::ColorWrites::default(), + }], multisample_state: gpu::MultisampleState { - sample_count, + sample_count: path_sample_count, ..Default::default() }, }), @@ -208,16 +221,13 @@ impl BladePipelines { vertex: shader.at("vs_path"), vertex_fetches: &[], primitive: gpu::PrimitiveState { - topology: gpu::PrimitiveTopology::TriangleList, + topology: gpu::PrimitiveTopology::TriangleStrip, ..Default::default() }, depth_stencil: None, fragment: Some(shader.at("fs_path")), color_targets, - multisample_state: gpu::MultisampleState { - sample_count, - ..Default::default() - }, + multisample_state: gpu::MultisampleState::default(), }), underlines: gpu.create_render_pipeline(gpu::RenderPipelineDesc { name: "underlines", @@ -231,10 +241,7 @@ impl BladePipelines { depth_stencil: None, fragment: Some(shader.at("fs_underline")), color_targets, - multisample_state: gpu::MultisampleState { - sample_count, - ..Default::default() - }, + multisample_state: gpu::MultisampleState::default(), }), mono_sprites: gpu.create_render_pipeline(gpu::RenderPipelineDesc { name: "mono-sprites", @@ -248,10 +255,7 @@ impl BladePipelines { depth_stencil: None, fragment: Some(shader.at("fs_mono_sprite")), color_targets, - multisample_state: gpu::MultisampleState { - sample_count, - ..Default::default() - }, + multisample_state: gpu::MultisampleState::default(), }), poly_sprites: gpu.create_render_pipeline(gpu::RenderPipelineDesc { name: "poly-sprites", @@ -265,10 +269,7 @@ impl BladePipelines { depth_stencil: None, fragment: Some(shader.at("fs_poly_sprite")), color_targets, - multisample_state: gpu::MultisampleState { - sample_count, - ..Default::default() - }, + multisample_state: gpu::MultisampleState::default(), }), surfaces: gpu.create_render_pipeline(gpu::RenderPipelineDesc { name: "surfaces", @@ -282,10 +283,7 @@ impl BladePipelines { depth_stencil: None, fragment: Some(shader.at("fs_surface")), color_targets, - multisample_state: gpu::MultisampleState { - sample_count, - ..Default::default() - }, + multisample_state: gpu::MultisampleState::default(), }), } } @@ -293,6 +291,7 @@ impl BladePipelines { fn destroy(&mut self, gpu: &gpu::Context) { gpu.destroy_render_pipeline(&mut self.quads); gpu.destroy_render_pipeline(&mut self.shadows); + gpu.destroy_render_pipeline(&mut self.path_rasterization); gpu.destroy_render_pipeline(&mut self.paths); gpu.destroy_render_pipeline(&mut self.underlines); gpu.destroy_render_pipeline(&mut self.mono_sprites); @@ -318,13 +317,12 @@ pub struct BladeRenderer { last_sync_point: Option, pipelines: BladePipelines, instance_belt: BufferBelt, + path_tiles: HashMap, atlas: Arc, atlas_sampler: gpu::Sampler, #[cfg(target_os = "macos")] core_video_texture_cache: CVMetalTextureCache, - sample_count: u32, - texture_msaa: Option, - texture_view_msaa: Option, + path_sample_count: u32, } impl BladeRenderer { @@ -333,18 +331,6 @@ impl BladeRenderer { window: &I, config: BladeSurfaceConfig, ) -> anyhow::Result { - // workaround for https://github.com/zed-industries/zed/issues/26143 - let sample_count = std::env::var("ZED_SAMPLE_COUNT") - .ok() - .or_else(|| std::env::var("ZED_PATH_SAMPLE_COUNT").ok()) - .and_then(|v| v.parse().ok()) - .or_else(|| { - [4, 2, 1] - .into_iter() - .find(|count| context.gpu.supports_texture_sample_count(*count)) - }) - .unwrap_or(1); - let surface_config = gpu::SurfaceConfig { size: config.size, usage: gpu::TextureUsage::TARGET, @@ -358,27 +344,22 @@ impl BladeRenderer { .create_surface_configured(window, surface_config) .map_err(|err| anyhow::anyhow!("Failed to create surface: {err:?}"))?; - let (texture_msaa, texture_view_msaa) = create_msaa_texture_if_needed( - &context.gpu, - surface.info().format, - config.size.width, - config.size.height, - sample_count, - ) - .unzip(); - let command_encoder = context.gpu.create_command_encoder(gpu::CommandEncoderDesc { name: "main", buffer_count: 2, }); - - let pipelines = BladePipelines::new(&context.gpu, surface.info(), sample_count); + // workaround for https://github.com/zed-industries/zed/issues/26143 + let path_sample_count = std::env::var("ZED_PATH_SAMPLE_COUNT") + .ok() + .and_then(|v| v.parse().ok()) + .unwrap_or(DEFAULT_PATH_SAMPLE_COUNT); + let pipelines = BladePipelines::new(&context.gpu, surface.info(), path_sample_count); let instance_belt = BufferBelt::new(BufferBeltDescriptor { memory: gpu::Memory::Shared, min_chunk_size: 0x1000, alignment: 0x40, // Vulkan `minStorageBufferOffsetAlignment` on Intel Xe }); - let atlas = Arc::new(BladeAtlas::new(&context.gpu)); + let atlas = Arc::new(BladeAtlas::new(&context.gpu, path_sample_count)); let atlas_sampler = context.gpu.create_sampler(gpu::SamplerDesc { name: "atlas", mag_filter: gpu::FilterMode::Linear, @@ -402,13 +383,12 @@ impl BladeRenderer { last_sync_point: None, pipelines, instance_belt, + path_tiles: HashMap::default(), atlas, atlas_sampler, #[cfg(target_os = "macos")] core_video_texture_cache, - sample_count, - texture_msaa, - texture_view_msaa, + path_sample_count, }) } @@ -461,24 +441,6 @@ impl BladeRenderer { self.surface_config.size = gpu_size; self.gpu .reconfigure_surface(&mut self.surface, self.surface_config); - - if let Some(texture_msaa) = self.texture_msaa { - self.gpu.destroy_texture(texture_msaa); - } - if let Some(texture_view_msaa) = self.texture_view_msaa { - self.gpu.destroy_texture_view(texture_view_msaa); - } - - let (texture_msaa, texture_view_msaa) = create_msaa_texture_if_needed( - &self.gpu, - self.surface.info().format, - gpu_size.width, - gpu_size.height, - self.sample_count, - ) - .unzip(); - self.texture_msaa = texture_msaa; - self.texture_view_msaa = texture_view_msaa; } } @@ -489,7 +451,8 @@ impl BladeRenderer { self.gpu .reconfigure_surface(&mut self.surface, self.surface_config); self.pipelines.destroy(&self.gpu); - self.pipelines = BladePipelines::new(&self.gpu, self.surface.info(), self.sample_count); + self.pipelines = + BladePipelines::new(&self.gpu, self.surface.info(), self.path_sample_count); } } @@ -527,6 +490,80 @@ impl BladeRenderer { objc2::rc::Retained::as_ptr(&self.surface.metal_layer()) as *mut _ } + #[profiling::function] + fn rasterize_paths(&mut self, paths: &[Path]) { + self.path_tiles.clear(); + let mut vertices_by_texture_id = HashMap::default(); + + for path in paths { + let clipped_bounds = path + .bounds + .intersect(&path.content_mask.bounds) + .map_origin(|origin| origin.floor()) + .map_size(|size| size.ceil()); + let tile = self.atlas.allocate_for_rendering( + clipped_bounds.size.map(Into::into), + AtlasTextureKind::Path, + &mut self.command_encoder, + ); + vertices_by_texture_id + .entry(tile.texture_id) + .or_insert(Vec::new()) + .extend(path.vertices.iter().map(|vertex| PathVertex { + xy_position: vertex.xy_position - clipped_bounds.origin + + tile.bounds.origin.map(Into::into), + st_position: vertex.st_position, + content_mask: ContentMask { + bounds: tile.bounds.map(Into::into), + }, + })); + self.path_tiles.insert(path.id, tile); + } + + for (texture_id, vertices) in vertices_by_texture_id { + let tex_info = self.atlas.get_texture_info(texture_id); + let globals = GlobalParams { + viewport_size: [tex_info.size.width as f32, tex_info.size.height as f32], + premultiplied_alpha: 0, + pad: 0, + }; + + let vertex_buf = unsafe { self.instance_belt.alloc_typed(&vertices, &self.gpu) }; + let frame_view = tex_info.raw_view; + let color_target = if let Some(msaa_view) = tex_info.msaa_view { + gpu::RenderTarget { + view: msaa_view, + init_op: gpu::InitOp::Clear(gpu::TextureColor::OpaqueBlack), + finish_op: gpu::FinishOp::ResolveTo(frame_view), + } + } else { + gpu::RenderTarget { + view: frame_view, + init_op: gpu::InitOp::Clear(gpu::TextureColor::OpaqueBlack), + finish_op: gpu::FinishOp::Store, + } + }; + + if let mut pass = self.command_encoder.render( + "paths", + gpu::RenderTargetSet { + colors: &[color_target], + depth_stencil: None, + }, + ) { + let mut encoder = pass.with(&self.pipelines.path_rasterization); + encoder.bind( + 0, + &ShaderPathRasterizationData { + globals, + b_path_vertices: vertex_buf, + }, + ); + encoder.draw(0, vertices.len() as u32, 0, 1); + } + } + } + pub fn destroy(&mut self) { self.wait_for_gpu(); self.atlas.destroy(); @@ -535,26 +572,17 @@ impl BladeRenderer { self.gpu.destroy_command_encoder(&mut self.command_encoder); self.pipelines.destroy(&self.gpu); self.gpu.destroy_surface(&mut self.surface); - if let Some(texture_msaa) = self.texture_msaa { - self.gpu.destroy_texture(texture_msaa); - } - if let Some(texture_view_msaa) = self.texture_view_msaa { - self.gpu.destroy_texture_view(texture_view_msaa); - } } pub fn draw(&mut self, scene: &Scene) { self.command_encoder.start(); self.atlas.before_frame(&mut self.command_encoder); + self.rasterize_paths(scene.paths()); let frame = { profiling::scope!("acquire frame"); self.surface.acquire_frame() }; - let frame_view = frame.texture_view(); - if let Some(texture_msaa) = self.texture_msaa { - self.command_encoder.init_texture(texture_msaa); - } self.command_encoder.init_texture(frame.texture()); let globals = GlobalParams { @@ -569,25 +597,14 @@ impl BladeRenderer { pad: 0, }; - let target = if let Some(texture_view_msaa) = self.texture_view_msaa { - gpu::RenderTarget { - view: texture_view_msaa, - init_op: gpu::InitOp::Clear(gpu::TextureColor::TransparentBlack), - finish_op: gpu::FinishOp::ResolveTo(frame_view), - } - } else { - gpu::RenderTarget { - view: frame_view, - init_op: gpu::InitOp::Clear(gpu::TextureColor::TransparentBlack), - finish_op: gpu::FinishOp::Store, - } - }; - - // draw to the target texture if let mut pass = self.command_encoder.render( "main", gpu::RenderTargetSet { - colors: &[target], + colors: &[gpu::RenderTarget { + view: frame.texture_view(), + init_op: gpu::InitOp::Clear(gpu::TextureColor::TransparentBlack), + finish_op: gpu::FinishOp::Store, + }], depth_stencil: None, }, ) { @@ -622,55 +639,32 @@ impl BladeRenderer { } PrimitiveBatch::Paths(paths) => { let mut encoder = pass.with(&self.pipelines.paths); - - let mut vertices = Vec::new(); - let mut sprites = Vec::with_capacity(paths.len()); - let mut draw_indirect_commands = Vec::with_capacity(paths.len()); - let mut first_vertex = 0; - - for (i, path) in paths.iter().enumerate() { - draw_indirect_commands.push(DrawIndirectArgs { - vertex_count: path.vertices.len() as u32, - instance_count: 1, - first_vertex, - first_instance: i as u32, - }); - first_vertex += path.vertices.len() as u32; - - vertices.extend(path.vertices.iter().map(|v| PathVertex { - xy_position: v.xy_position, - content_mask: ContentMask { - bounds: path.content_mask.bounds, + // todo(linux): group by texture ID + for path in paths { + let tile = &self.path_tiles[&path.id]; + let tex_info = self.atlas.get_texture_info(tile.texture_id); + let origin = path.bounds.intersect(&path.content_mask.bounds).origin; + let sprites = [PathSprite { + bounds: Bounds { + origin: origin.map(|p| p.floor()), + size: tile.bounds.size.map(Into::into), }, - })); - - sprites.push(PathSprite { - bounds: path.bounds, color: path.color, - }); - } + tile: (*tile).clone(), + }]; - let b_path_vertices = - unsafe { self.instance_belt.alloc_typed(&vertices, &self.gpu) }; - let instance_buf = - unsafe { self.instance_belt.alloc_typed(&sprites, &self.gpu) }; - let indirect_buf = unsafe { - self.instance_belt - .alloc_typed(&draw_indirect_commands, &self.gpu) - }; - - encoder.bind( - 0, - &ShaderPathsData { - globals, - b_path_vertices, - b_path_sprites: instance_buf, - }, - ); - - for i in 0..paths.len() { - encoder.draw_indirect(indirect_buf.buffer.at(indirect_buf.offset - + (i * mem::size_of::()) as u64)); + let instance_buf = + unsafe { self.instance_belt.alloc_typed(&sprites, &self.gpu) }; + encoder.bind( + 0, + &ShaderPathsData { + globals, + t_sprite: tex_info.raw_view, + s_sprite: self.atlas_sampler, + b_path_sprites: instance_buf, + }, + ); + encoder.draw(0, 4, 0, sprites.len() as u32); } } PrimitiveBatch::Underlines(underlines) => { @@ -823,47 +817,9 @@ impl BladeRenderer { profiling::scope!("finish"); self.instance_belt.flush(&sync_point); self.atlas.after_frame(&sync_point); + self.atlas.clear_textures(AtlasTextureKind::Path); self.wait_for_gpu(); self.last_sync_point = Some(sync_point); } } - -fn create_msaa_texture_if_needed( - gpu: &gpu::Context, - format: gpu::TextureFormat, - width: u32, - height: u32, - sample_count: u32, -) -> Option<(gpu::Texture, gpu::TextureView)> { - if sample_count <= 1 { - return None; - } - - let texture_msaa = gpu.create_texture(gpu::TextureDesc { - name: "msaa", - format, - size: gpu::Extent { - width, - height, - depth: 1, - }, - array_layer_count: 1, - mip_level_count: 1, - sample_count, - dimension: gpu::TextureDimension::D2, - usage: gpu::TextureUsage::TARGET, - external: None, - }); - let texture_view_msaa = gpu.create_texture_view( - texture_msaa, - gpu::TextureViewDesc { - name: "msaa view", - format, - dimension: gpu::ViewDimension::D2, - subresources: &Default::default(), - }, - ); - - Some((texture_msaa, texture_view_msaa)) -} diff --git a/crates/gpui/src/platform/blade/shaders.wgsl b/crates/gpui/src/platform/blade/shaders.wgsl index 00c9d07af7..0b34a0eea3 100644 --- a/crates/gpui/src/platform/blade/shaders.wgsl +++ b/crates/gpui/src/platform/blade/shaders.wgsl @@ -922,23 +922,59 @@ fn fs_shadow(input: ShadowVarying) -> @location(0) vec4 { return blend_color(input.color, alpha); } -// --- paths --- // +// --- path rasterization --- // struct PathVertex { xy_position: vec2, + st_position: vec2, content_mask: Bounds, } +var b_path_vertices: array; + +struct PathRasterizationVarying { + @builtin(position) position: vec4, + @location(0) st_position: vec2, + //TODO: use `clip_distance` once Naga supports it + @location(3) clip_distances: vec4, +} + +@vertex +fn vs_path_rasterization(@builtin(vertex_index) vertex_id: u32) -> PathRasterizationVarying { + let v = b_path_vertices[vertex_id]; + + var out = PathRasterizationVarying(); + out.position = to_device_position_impl(v.xy_position); + out.st_position = v.st_position; + out.clip_distances = distance_from_clip_rect_impl(v.xy_position, v.content_mask); + return out; +} + +@fragment +fn fs_path_rasterization(input: PathRasterizationVarying) -> @location(0) f32 { + let dx = dpdx(input.st_position); + let dy = dpdy(input.st_position); + if (any(input.clip_distances < vec4(0.0))) { + return 0.0; + } + + let gradient = 2.0 * input.st_position.xx * vec2(dx.x, dy.x) - vec2(dx.y, dy.y); + let f = input.st_position.x * input.st_position.x - input.st_position.y; + let distance = f / length(gradient); + return saturate(0.5 - distance); +} + +// --- paths --- // struct PathSprite { bounds: Bounds, color: Background, + tile: AtlasTile, } -var b_path_vertices: array; var b_path_sprites: array; struct PathVarying { @builtin(position) position: vec4, - @location(0) clip_distances: vec4, + @location(0) tile_position: vec2, @location(1) @interpolate(flat) instance_id: u32, @location(2) @interpolate(flat) color_solid: vec4, @location(3) @interpolate(flat) color0: vec4, @@ -947,12 +983,13 @@ struct PathVarying { @vertex fn vs_path(@builtin(vertex_index) vertex_id: u32, @builtin(instance_index) instance_id: u32) -> PathVarying { - let v = b_path_vertices[vertex_id]; + let unit_vertex = vec2(f32(vertex_id & 1u), 0.5 * f32(vertex_id & 2u)); let sprite = b_path_sprites[instance_id]; + // Don't apply content mask because it was already accounted for when rasterizing the path. var out = PathVarying(); - out.position = to_device_position_impl(v.xy_position); - out.clip_distances = distance_from_clip_rect_impl(v.xy_position, v.content_mask); + out.position = to_device_position(unit_vertex, sprite.bounds); + out.tile_position = to_tile_position(unit_vertex, sprite.tile); out.instance_id = instance_id; let gradient = prepare_gradient_color( @@ -969,15 +1006,13 @@ fn vs_path(@builtin(vertex_index) vertex_id: u32, @builtin(instance_index) insta @fragment fn fs_path(input: PathVarying) -> @location(0) vec4 { - if any(input.clip_distances < vec4(0.0)) { - return vec4(0.0); - } - + let sample = textureSample(t_sprite, s_sprite, input.tile_position).r; + let mask = 1.0 - abs(1.0 - sample % 2.0); let sprite = b_path_sprites[input.instance_id]; let background = sprite.color; let color = gradient_color(background, input.position.xy, sprite.bounds, input.color_solid, input.color0, input.color1); - return blend_color(color, 1.0); + return blend_color(color, mask); } // --- underlines --- // diff --git a/crates/gpui/src/platform/mac/metal_atlas.rs b/crates/gpui/src/platform/mac/metal_atlas.rs index 0c8e1d3703..366f2dcc3c 100644 --- a/crates/gpui/src/platform/mac/metal_atlas.rs +++ b/crates/gpui/src/platform/mac/metal_atlas.rs @@ -13,12 +13,14 @@ use std::borrow::Cow; pub(crate) struct MetalAtlas(Mutex); impl MetalAtlas { - pub(crate) fn new(device: Device) -> Self { + pub(crate) fn new(device: Device, path_sample_count: u32) -> Self { MetalAtlas(Mutex::new(MetalAtlasState { device: AssertSend(device), monochrome_textures: Default::default(), polychrome_textures: Default::default(), + path_textures: Default::default(), tiles_by_key: Default::default(), + path_sample_count, })) } @@ -26,7 +28,10 @@ impl MetalAtlas { self.0.lock().texture(id).metal_texture.clone() } - #[allow(dead_code)] + pub(crate) fn msaa_texture(&self, id: AtlasTextureId) -> Option { + self.0.lock().texture(id).msaa_texture.clone() + } + pub(crate) fn allocate( &self, size: Size, @@ -35,12 +40,12 @@ impl MetalAtlas { self.0.lock().allocate(size, texture_kind) } - #[allow(dead_code)] pub(crate) fn clear_textures(&self, texture_kind: AtlasTextureKind) { let mut lock = self.0.lock(); let textures = match texture_kind { AtlasTextureKind::Monochrome => &mut lock.monochrome_textures, AtlasTextureKind::Polychrome => &mut lock.polychrome_textures, + AtlasTextureKind::Path => &mut lock.path_textures, }; for texture in textures.iter_mut() { texture.clear(); @@ -52,7 +57,9 @@ struct MetalAtlasState { device: AssertSend, monochrome_textures: AtlasTextureList, polychrome_textures: AtlasTextureList, + path_textures: AtlasTextureList, tiles_by_key: FxHashMap, + path_sample_count: u32, } impl PlatformAtlas for MetalAtlas { @@ -87,6 +94,7 @@ impl PlatformAtlas for MetalAtlas { let textures = match id.kind { AtlasTextureKind::Monochrome => &mut lock.monochrome_textures, AtlasTextureKind::Polychrome => &mut lock.polychrome_textures, + AtlasTextureKind::Path => &mut lock.polychrome_textures, }; let Some(texture_slot) = textures @@ -120,6 +128,7 @@ impl MetalAtlasState { let textures = match texture_kind { AtlasTextureKind::Monochrome => &mut self.monochrome_textures, AtlasTextureKind::Polychrome => &mut self.polychrome_textures, + AtlasTextureKind::Path => &mut self.path_textures, }; if let Some(tile) = textures @@ -164,14 +173,31 @@ impl MetalAtlasState { pixel_format = metal::MTLPixelFormat::BGRA8Unorm; usage = metal::MTLTextureUsage::ShaderRead; } + AtlasTextureKind::Path => { + pixel_format = metal::MTLPixelFormat::R16Float; + usage = metal::MTLTextureUsage::RenderTarget | metal::MTLTextureUsage::ShaderRead; + } } texture_descriptor.set_pixel_format(pixel_format); texture_descriptor.set_usage(usage); let metal_texture = self.device.new_texture(&texture_descriptor); + // We currently only enable MSAA for path textures. + let msaa_texture = if self.path_sample_count > 1 && kind == AtlasTextureKind::Path { + let mut descriptor = texture_descriptor.clone(); + descriptor.set_texture_type(metal::MTLTextureType::D2Multisample); + descriptor.set_storage_mode(metal::MTLStorageMode::Private); + descriptor.set_sample_count(self.path_sample_count as _); + let msaa_texture = self.device.new_texture(&descriptor); + Some(msaa_texture) + } else { + None + }; + let texture_list = match kind { AtlasTextureKind::Monochrome => &mut self.monochrome_textures, AtlasTextureKind::Polychrome => &mut self.polychrome_textures, + AtlasTextureKind::Path => &mut self.path_textures, }; let index = texture_list.free_list.pop(); @@ -183,6 +209,7 @@ impl MetalAtlasState { }, allocator: etagere::BucketedAtlasAllocator::new(size.into()), metal_texture: AssertSend(metal_texture), + msaa_texture: AssertSend(msaa_texture), live_atlas_keys: 0, }; @@ -199,6 +226,7 @@ impl MetalAtlasState { let textures = match id.kind { crate::AtlasTextureKind::Monochrome => &self.monochrome_textures, crate::AtlasTextureKind::Polychrome => &self.polychrome_textures, + crate::AtlasTextureKind::Path => &self.path_textures, }; textures[id.index as usize].as_ref().unwrap() } @@ -208,6 +236,7 @@ struct MetalAtlasTexture { id: AtlasTextureId, allocator: BucketedAtlasAllocator, metal_texture: AssertSend, + msaa_texture: AssertSend>, live_atlas_keys: u32, } diff --git a/crates/gpui/src/platform/mac/metal_renderer.rs b/crates/gpui/src/platform/mac/metal_renderer.rs index 8936cf242c..3cdc2dd2cf 100644 --- a/crates/gpui/src/platform/mac/metal_renderer.rs +++ b/crates/gpui/src/platform/mac/metal_renderer.rs @@ -1,28 +1,27 @@ use super::metal_atlas::MetalAtlas; use crate::{ - AtlasTextureId, Background, Bounds, ContentMask, DevicePixels, MonochromeSprite, PaintSurface, - Path, PathVertex, PolychromeSprite, PrimitiveBatch, Quad, ScaledPixels, Scene, Shadow, Size, - Surface, Underline, point, size, + AtlasTextureId, AtlasTextureKind, AtlasTile, Background, Bounds, ContentMask, DevicePixels, + MonochromeSprite, PaintSurface, Path, PathId, PathVertex, PolychromeSprite, PrimitiveBatch, + Quad, ScaledPixels, Scene, Shadow, Size, Surface, Underline, point, size, }; -use anyhow::Result; +use anyhow::{Context as _, Result}; use block::ConcreteBlock; use cocoa::{ base::{NO, YES}, foundation::{NSSize, NSUInteger}, quartzcore::AutoresizingMask, }; +use collections::HashMap; use core_foundation::base::TCFType; use core_video::{ metal_texture::CVMetalTextureGetTexture, metal_texture_cache::CVMetalTextureCache, pixel_buffer::kCVPixelFormatType_420YpCbCr8BiPlanarFullRange, }; use foreign_types::{ForeignType, ForeignTypeRef}; -use metal::{ - CAMetalLayer, CommandQueue, MTLDrawPrimitivesIndirectArguments, MTLPixelFormat, - MTLResourceOptions, NSRange, -}; +use metal::{CAMetalLayer, CommandQueue, MTLPixelFormat, MTLResourceOptions, NSRange}; use objc::{self, msg_send, sel, sel_impl}; use parking_lot::Mutex; +use smallvec::SmallVec; use std::{cell::Cell, ffi::c_void, mem, ptr, sync::Arc}; // Exported to metal @@ -32,6 +31,9 @@ pub(crate) type PointF = crate::Point; const SHADERS_METALLIB: &[u8] = include_bytes!(concat!(env!("OUT_DIR"), "/shaders.metallib")); #[cfg(feature = "runtime_shaders")] const SHADERS_SOURCE_FILE: &str = include_str!(concat!(env!("OUT_DIR"), "/stitched_shaders.metal")); +// Use 4x MSAA, all devices support it. +// https://developer.apple.com/documentation/metal/mtldevice/1433355-supportstexturesamplecount +const PATH_SAMPLE_COUNT: u32 = 4; pub type Context = Arc>; pub type Renderer = MetalRenderer; @@ -96,7 +98,8 @@ pub(crate) struct MetalRenderer { layer: metal::MetalLayer, presents_with_transaction: bool, command_queue: CommandQueue, - path_pipeline_state: metal::RenderPipelineState, + paths_rasterization_pipeline_state: metal::RenderPipelineState, + path_sprites_pipeline_state: metal::RenderPipelineState, shadows_pipeline_state: metal::RenderPipelineState, quads_pipeline_state: metal::RenderPipelineState, underlines_pipeline_state: metal::RenderPipelineState, @@ -108,8 +111,6 @@ pub(crate) struct MetalRenderer { instance_buffer_pool: Arc>, sprite_atlas: Arc, core_video_texture_cache: core_video::metal_texture_cache::CVMetalTextureCache, - sample_count: u64, - msaa_texture: Option, } impl MetalRenderer { @@ -168,19 +169,22 @@ impl MetalRenderer { MTLResourceOptions::StorageModeManaged, ); - let sample_count = [4, 2, 1] - .into_iter() - .find(|count| device.supports_texture_sample_count(*count)) - .unwrap_or(1); - - let path_pipeline_state = build_pipeline_state( + let paths_rasterization_pipeline_state = build_path_rasterization_pipeline_state( &device, &library, - "paths", - "path_vertex", - "path_fragment", + "paths_rasterization", + "path_rasterization_vertex", + "path_rasterization_fragment", + MTLPixelFormat::R16Float, + PATH_SAMPLE_COUNT, + ); + let path_sprites_pipeline_state = build_pipeline_state( + &device, + &library, + "path_sprites", + "path_sprite_vertex", + "path_sprite_fragment", MTLPixelFormat::BGRA8Unorm, - sample_count, ); let shadows_pipeline_state = build_pipeline_state( &device, @@ -189,7 +193,6 @@ impl MetalRenderer { "shadow_vertex", "shadow_fragment", MTLPixelFormat::BGRA8Unorm, - sample_count, ); let quads_pipeline_state = build_pipeline_state( &device, @@ -198,7 +201,6 @@ impl MetalRenderer { "quad_vertex", "quad_fragment", MTLPixelFormat::BGRA8Unorm, - sample_count, ); let underlines_pipeline_state = build_pipeline_state( &device, @@ -207,7 +209,6 @@ impl MetalRenderer { "underline_vertex", "underline_fragment", MTLPixelFormat::BGRA8Unorm, - sample_count, ); let monochrome_sprites_pipeline_state = build_pipeline_state( &device, @@ -216,7 +217,6 @@ impl MetalRenderer { "monochrome_sprite_vertex", "monochrome_sprite_fragment", MTLPixelFormat::BGRA8Unorm, - sample_count, ); let polychrome_sprites_pipeline_state = build_pipeline_state( &device, @@ -225,7 +225,6 @@ impl MetalRenderer { "polychrome_sprite_vertex", "polychrome_sprite_fragment", MTLPixelFormat::BGRA8Unorm, - sample_count, ); let surfaces_pipeline_state = build_pipeline_state( &device, @@ -234,21 +233,20 @@ impl MetalRenderer { "surface_vertex", "surface_fragment", MTLPixelFormat::BGRA8Unorm, - sample_count, ); let command_queue = device.new_command_queue(); - let sprite_atlas = Arc::new(MetalAtlas::new(device.clone())); + let sprite_atlas = Arc::new(MetalAtlas::new(device.clone(), PATH_SAMPLE_COUNT)); let core_video_texture_cache = CVMetalTextureCache::new(None, device.clone(), None).unwrap(); - let msaa_texture = create_msaa_texture(&device, &layer, sample_count); Self { device, layer, presents_with_transaction: false, command_queue, - path_pipeline_state, + paths_rasterization_pipeline_state, + path_sprites_pipeline_state, shadows_pipeline_state, quads_pipeline_state, underlines_pipeline_state, @@ -259,8 +257,6 @@ impl MetalRenderer { instance_buffer_pool, sprite_atlas, core_video_texture_cache, - sample_count, - msaa_texture, } } @@ -293,8 +289,6 @@ impl MetalRenderer { setDrawableSize: size ]; } - - self.msaa_texture = create_msaa_texture(&self.device, &self.layer, self.sample_count); } pub fn update_transparency(&self, _transparent: bool) { @@ -381,23 +375,25 @@ impl MetalRenderer { let command_queue = self.command_queue.clone(); let command_buffer = command_queue.new_command_buffer(); let mut instance_offset = 0; + + let path_tiles = self + .rasterize_paths( + scene.paths(), + instance_buffer, + &mut instance_offset, + command_buffer, + ) + .with_context(|| format!("rasterizing {} paths", scene.paths().len()))?; + let render_pass_descriptor = metal::RenderPassDescriptor::new(); let color_attachment = render_pass_descriptor .color_attachments() .object_at(0) .unwrap(); - if let Some(msaa_texture_ref) = self.msaa_texture.as_deref() { - color_attachment.set_texture(Some(msaa_texture_ref)); - color_attachment.set_load_action(metal::MTLLoadAction::Clear); - color_attachment.set_store_action(metal::MTLStoreAction::MultisampleResolve); - color_attachment.set_resolve_texture(Some(drawable.texture())); - } else { - color_attachment.set_load_action(metal::MTLLoadAction::Clear); - color_attachment.set_texture(Some(drawable.texture())); - color_attachment.set_store_action(metal::MTLStoreAction::Store); - } - + color_attachment.set_texture(Some(drawable.texture())); + color_attachment.set_load_action(metal::MTLLoadAction::Clear); + color_attachment.set_store_action(metal::MTLStoreAction::Store); let alpha = if self.layer.is_opaque() { 1. } else { 0. }; color_attachment.set_clear_color(metal::MTLClearColor::new(0., 0., 0., alpha)); let command_encoder = command_buffer.new_render_command_encoder(render_pass_descriptor); @@ -429,6 +425,7 @@ impl MetalRenderer { ), PrimitiveBatch::Paths(paths) => self.draw_paths( paths, + &path_tiles, instance_buffer, &mut instance_offset, viewport_size, @@ -496,6 +493,106 @@ impl MetalRenderer { Ok(command_buffer.to_owned()) } + fn rasterize_paths( + &self, + paths: &[Path], + instance_buffer: &mut InstanceBuffer, + instance_offset: &mut usize, + command_buffer: &metal::CommandBufferRef, + ) -> Option> { + self.sprite_atlas.clear_textures(AtlasTextureKind::Path); + + let mut tiles = HashMap::default(); + let mut vertices_by_texture_id = HashMap::default(); + for path in paths { + let clipped_bounds = path.bounds.intersect(&path.content_mask.bounds); + + let tile = self + .sprite_atlas + .allocate(clipped_bounds.size.map(Into::into), AtlasTextureKind::Path)?; + vertices_by_texture_id + .entry(tile.texture_id) + .or_insert(Vec::new()) + .extend(path.vertices.iter().map(|vertex| PathVertex { + xy_position: vertex.xy_position - clipped_bounds.origin + + tile.bounds.origin.map(Into::into), + st_position: vertex.st_position, + content_mask: ContentMask { + bounds: tile.bounds.map(Into::into), + }, + })); + tiles.insert(path.id, tile); + } + + for (texture_id, vertices) in vertices_by_texture_id { + align_offset(instance_offset); + let vertices_bytes_len = mem::size_of_val(vertices.as_slice()); + let next_offset = *instance_offset + vertices_bytes_len; + if next_offset > instance_buffer.size { + return None; + } + + let render_pass_descriptor = metal::RenderPassDescriptor::new(); + let color_attachment = render_pass_descriptor + .color_attachments() + .object_at(0) + .unwrap(); + + let texture = self.sprite_atlas.metal_texture(texture_id); + let msaa_texture = self.sprite_atlas.msaa_texture(texture_id); + + if let Some(msaa_texture) = msaa_texture { + color_attachment.set_texture(Some(&msaa_texture)); + color_attachment.set_resolve_texture(Some(&texture)); + color_attachment.set_load_action(metal::MTLLoadAction::Clear); + color_attachment.set_store_action(metal::MTLStoreAction::MultisampleResolve); + } else { + color_attachment.set_texture(Some(&texture)); + color_attachment.set_load_action(metal::MTLLoadAction::Clear); + color_attachment.set_store_action(metal::MTLStoreAction::Store); + } + color_attachment.set_clear_color(metal::MTLClearColor::new(0., 0., 0., 1.)); + + let command_encoder = command_buffer.new_render_command_encoder(render_pass_descriptor); + command_encoder.set_render_pipeline_state(&self.paths_rasterization_pipeline_state); + command_encoder.set_vertex_buffer( + PathRasterizationInputIndex::Vertices as u64, + Some(&instance_buffer.metal_buffer), + *instance_offset as u64, + ); + let texture_size = Size { + width: DevicePixels::from(texture.width()), + height: DevicePixels::from(texture.height()), + }; + command_encoder.set_vertex_bytes( + PathRasterizationInputIndex::AtlasTextureSize as u64, + mem::size_of_val(&texture_size) as u64, + &texture_size as *const Size as *const _, + ); + + let buffer_contents = unsafe { + (instance_buffer.metal_buffer.contents() as *mut u8).add(*instance_offset) + }; + unsafe { + ptr::copy_nonoverlapping( + vertices.as_ptr() as *const u8, + buffer_contents, + vertices_bytes_len, + ); + } + + command_encoder.draw_primitives( + metal::MTLPrimitiveType::Triangle, + 0, + vertices.len() as u64, + ); + command_encoder.end_encoding(); + *instance_offset = next_offset; + } + + Some(tiles) + } + fn draw_shadows( &self, shadows: &[Shadow], @@ -621,6 +718,7 @@ impl MetalRenderer { fn draw_paths( &self, paths: &[Path], + tiles_by_path_id: &HashMap, instance_buffer: &mut InstanceBuffer, instance_offset: &mut usize, viewport_size: Size, @@ -630,108 +728,100 @@ impl MetalRenderer { return true; } - command_encoder.set_render_pipeline_state(&self.path_pipeline_state); + command_encoder.set_render_pipeline_state(&self.path_sprites_pipeline_state); + command_encoder.set_vertex_buffer( + SpriteInputIndex::Vertices as u64, + Some(&self.unit_vertices), + 0, + ); + command_encoder.set_vertex_bytes( + SpriteInputIndex::ViewportSize as u64, + mem::size_of_val(&viewport_size) as u64, + &viewport_size as *const Size as *const _, + ); - unsafe { - let base_addr = instance_buffer.metal_buffer.contents(); - let mut p = (base_addr as *mut u8).add(*instance_offset); - let mut draw_indirect_commands = Vec::with_capacity(paths.len()); + let mut prev_texture_id = None; + let mut sprites = SmallVec::<[_; 1]>::new(); + let mut paths_and_tiles = paths + .iter() + .map(|path| (path, tiles_by_path_id.get(&path.id).unwrap())) + .peekable(); - // copy vertices - let vertices_offset = (p as usize) - (base_addr as usize); - let mut first_vertex = 0; - for (i, path) in paths.iter().enumerate() { - if (p as usize) - (base_addr as usize) - + (mem::size_of::>() * path.vertices.len()) - > instance_buffer.size - { + loop { + if let Some((path, tile)) = paths_and_tiles.peek() { + if prev_texture_id.map_or(true, |texture_id| texture_id == tile.texture_id) { + prev_texture_id = Some(tile.texture_id); + let origin = path.bounds.intersect(&path.content_mask.bounds).origin; + sprites.push(PathSprite { + bounds: Bounds { + origin: origin.map(|p| p.floor()), + size: tile.bounds.size.map(Into::into), + }, + color: path.color, + tile: (*tile).clone(), + }); + paths_and_tiles.next(); + continue; + } + } + + if sprites.is_empty() { + break; + } else { + align_offset(instance_offset); + let texture_id = prev_texture_id.take().unwrap(); + let texture: metal::Texture = self.sprite_atlas.metal_texture(texture_id); + let texture_size = size( + DevicePixels(texture.width() as i32), + DevicePixels(texture.height() as i32), + ); + + command_encoder.set_vertex_buffer( + SpriteInputIndex::Sprites as u64, + Some(&instance_buffer.metal_buffer), + *instance_offset as u64, + ); + command_encoder.set_vertex_bytes( + SpriteInputIndex::AtlasTextureSize as u64, + mem::size_of_val(&texture_size) as u64, + &texture_size as *const Size as *const _, + ); + command_encoder.set_fragment_buffer( + SpriteInputIndex::Sprites as u64, + Some(&instance_buffer.metal_buffer), + *instance_offset as u64, + ); + command_encoder + .set_fragment_texture(SpriteInputIndex::AtlasTexture as u64, Some(&texture)); + + let sprite_bytes_len = mem::size_of_val(sprites.as_slice()); + let next_offset = *instance_offset + sprite_bytes_len; + if next_offset > instance_buffer.size { return false; } - for v in &path.vertices { - *(p as *mut PathVertex) = PathVertex { - xy_position: v.xy_position, - content_mask: ContentMask { - bounds: path.content_mask.bounds, - }, - }; - p = p.add(mem::size_of::>()); + let buffer_contents = unsafe { + (instance_buffer.metal_buffer.contents() as *mut u8).add(*instance_offset) + }; + + unsafe { + ptr::copy_nonoverlapping( + sprites.as_ptr() as *const u8, + buffer_contents, + sprite_bytes_len, + ); } - draw_indirect_commands.push(MTLDrawPrimitivesIndirectArguments { - vertexCount: path.vertices.len() as u32, - instanceCount: 1, - vertexStart: first_vertex, - baseInstance: i as u32, - }); - first_vertex += path.vertices.len() as u32; - } - - // copy sprites - let sprites_offset = (p as u64) - (base_addr as u64); - if (p as usize) - (base_addr as usize) + (mem::size_of::() * paths.len()) - > instance_buffer.size - { - return false; - } - for path in paths { - *(p as *mut PathSprite) = PathSprite { - bounds: path.bounds, - color: path.color, - }; - p = p.add(mem::size_of::()); - } - - // copy indirect commands - let icb_bytes_len = mem::size_of_val(draw_indirect_commands.as_slice()); - let icb_offset = (p as u64) - (base_addr as u64); - if (p as usize) - (base_addr as usize) + icb_bytes_len > instance_buffer.size { - return false; - } - ptr::copy_nonoverlapping( - draw_indirect_commands.as_ptr() as *const u8, - p, - icb_bytes_len, - ); - p = p.add(icb_bytes_len); - - // draw path - command_encoder.set_vertex_buffer( - PathInputIndex::Vertices as u64, - Some(&instance_buffer.metal_buffer), - vertices_offset as u64, - ); - - command_encoder.set_vertex_bytes( - PathInputIndex::ViewportSize as u64, - mem::size_of_val(&viewport_size) as u64, - &viewport_size as *const Size as *const _, - ); - - command_encoder.set_vertex_buffer( - PathInputIndex::Sprites as u64, - Some(&instance_buffer.metal_buffer), - sprites_offset, - ); - - command_encoder.set_fragment_buffer( - PathInputIndex::Sprites as u64, - Some(&instance_buffer.metal_buffer), - sprites_offset, - ); - - for i in 0..paths.len() { - command_encoder.draw_primitives_indirect( + command_encoder.draw_primitives_instanced( metal::MTLPrimitiveType::Triangle, - &instance_buffer.metal_buffer, - icb_offset - + (i * std::mem::size_of::()) as u64, + 0, + 6, + sprites.len() as u64, ); + *instance_offset = next_offset; + sprites.clear(); } - - *instance_offset = (p as usize) - (base_addr as usize); } - true } @@ -1053,7 +1143,6 @@ fn build_pipeline_state( vertex_fn_name: &str, fragment_fn_name: &str, pixel_format: metal::MTLPixelFormat, - sample_count: u64, ) -> metal::RenderPipelineState { let vertex_fn = library .get_function(vertex_fn_name, None) @@ -1066,7 +1155,6 @@ fn build_pipeline_state( descriptor.set_label(label); descriptor.set_vertex_function(Some(vertex_fn.as_ref())); descriptor.set_fragment_function(Some(fragment_fn.as_ref())); - descriptor.set_sample_count(sample_count); let color_attachment = descriptor.color_attachments().object_at(0).unwrap(); color_attachment.set_pixel_format(pixel_format); color_attachment.set_blending_enabled(true); @@ -1082,45 +1170,50 @@ fn build_pipeline_state( .expect("could not create render pipeline state") } +fn build_path_rasterization_pipeline_state( + device: &metal::DeviceRef, + library: &metal::LibraryRef, + label: &str, + vertex_fn_name: &str, + fragment_fn_name: &str, + pixel_format: metal::MTLPixelFormat, + path_sample_count: u32, +) -> metal::RenderPipelineState { + let vertex_fn = library + .get_function(vertex_fn_name, None) + .expect("error locating vertex function"); + let fragment_fn = library + .get_function(fragment_fn_name, None) + .expect("error locating fragment function"); + + let descriptor = metal::RenderPipelineDescriptor::new(); + descriptor.set_label(label); + descriptor.set_vertex_function(Some(vertex_fn.as_ref())); + descriptor.set_fragment_function(Some(fragment_fn.as_ref())); + if path_sample_count > 1 { + descriptor.set_raster_sample_count(path_sample_count as _); + descriptor.set_alpha_to_coverage_enabled(true); + } + let color_attachment = descriptor.color_attachments().object_at(0).unwrap(); + color_attachment.set_pixel_format(pixel_format); + color_attachment.set_blending_enabled(true); + color_attachment.set_rgb_blend_operation(metal::MTLBlendOperation::Add); + color_attachment.set_alpha_blend_operation(metal::MTLBlendOperation::Add); + color_attachment.set_source_rgb_blend_factor(metal::MTLBlendFactor::One); + color_attachment.set_source_alpha_blend_factor(metal::MTLBlendFactor::One); + color_attachment.set_destination_rgb_blend_factor(metal::MTLBlendFactor::One); + color_attachment.set_destination_alpha_blend_factor(metal::MTLBlendFactor::One); + + device + .new_render_pipeline_state(&descriptor) + .expect("could not create render pipeline state") +} + // Align to multiples of 256 make Metal happy. fn align_offset(offset: &mut usize) { *offset = (*offset).div_ceil(256) * 256; } -fn create_msaa_texture( - device: &metal::Device, - layer: &metal::MetalLayer, - sample_count: u64, -) -> Option { - let viewport_size = layer.drawable_size(); - let width = viewport_size.width.ceil() as u64; - let height = viewport_size.height.ceil() as u64; - - if width == 0 || height == 0 { - return None; - } - - if sample_count <= 1 { - return None; - } - - let texture_descriptor = metal::TextureDescriptor::new(); - texture_descriptor.set_texture_type(metal::MTLTextureType::D2Multisample); - - // MTLStorageMode default is `shared` only for Apple silicon GPUs. Use `private` for Apple and Intel GPUs both. - // Reference: https://developer.apple.com/documentation/metal/choosing-a-resource-storage-mode-for-apple-gpus - texture_descriptor.set_storage_mode(metal::MTLStorageMode::Private); - - texture_descriptor.set_width(width); - texture_descriptor.set_height(height); - texture_descriptor.set_pixel_format(layer.pixel_format()); - texture_descriptor.set_usage(metal::MTLTextureUsage::RenderTarget); - texture_descriptor.set_sample_count(sample_count); - - let metal_texture = device.new_texture(&texture_descriptor); - Some(metal_texture) -} - #[repr(C)] enum ShadowInputIndex { Vertices = 0, @@ -1162,10 +1255,9 @@ enum SurfaceInputIndex { } #[repr(C)] -enum PathInputIndex { +enum PathRasterizationInputIndex { Vertices = 0, - ViewportSize = 1, - Sprites = 2, + AtlasTextureSize = 1, } #[derive(Clone, Debug, Eq, PartialEq)] @@ -1173,6 +1265,7 @@ enum PathInputIndex { pub struct PathSprite { pub bounds: Bounds, pub color: Background, + pub tile: AtlasTile, } #[derive(Clone, Debug, Eq, PartialEq)] diff --git a/crates/gpui/src/platform/mac/shaders.metal b/crates/gpui/src/platform/mac/shaders.metal index 5f0dc3323d..64ebb1e22b 100644 --- a/crates/gpui/src/platform/mac/shaders.metal +++ b/crates/gpui/src/platform/mac/shaders.metal @@ -698,27 +698,76 @@ fragment float4 polychrome_sprite_fragment( return color; } -struct PathVertexOutput { +struct PathRasterizationVertexOutput { float4 position [[position]]; + float2 st_position; + float clip_rect_distance [[clip_distance]][4]; +}; + +struct PathRasterizationFragmentInput { + float4 position [[position]]; + float2 st_position; +}; + +vertex PathRasterizationVertexOutput path_rasterization_vertex( + uint vertex_id [[vertex_id]], + constant PathVertex_ScaledPixels *vertices + [[buffer(PathRasterizationInputIndex_Vertices)]], + constant Size_DevicePixels *atlas_size + [[buffer(PathRasterizationInputIndex_AtlasTextureSize)]]) { + PathVertex_ScaledPixels v = vertices[vertex_id]; + float2 vertex_position = float2(v.xy_position.x, v.xy_position.y); + float2 viewport_size = float2(atlas_size->width, atlas_size->height); + return PathRasterizationVertexOutput{ + float4(vertex_position / viewport_size * float2(2., -2.) + + float2(-1., 1.), + 0., 1.), + float2(v.st_position.x, v.st_position.y), + {v.xy_position.x - v.content_mask.bounds.origin.x, + v.content_mask.bounds.origin.x + v.content_mask.bounds.size.width - + v.xy_position.x, + v.xy_position.y - v.content_mask.bounds.origin.y, + v.content_mask.bounds.origin.y + v.content_mask.bounds.size.height - + v.xy_position.y}}; +} + +fragment float4 path_rasterization_fragment(PathRasterizationFragmentInput input + [[stage_in]]) { + float2 dx = dfdx(input.st_position); + float2 dy = dfdy(input.st_position); + float2 gradient = float2((2. * input.st_position.x) * dx.x - dx.y, + (2. * input.st_position.x) * dy.x - dy.y); + float f = (input.st_position.x * input.st_position.x) - input.st_position.y; + float distance = f / length(gradient); + float alpha = saturate(0.5 - distance); + return float4(alpha, 0., 0., 1.); +} + +struct PathSpriteVertexOutput { + float4 position [[position]]; + float2 tile_position; uint sprite_id [[flat]]; float4 solid_color [[flat]]; float4 color0 [[flat]]; float4 color1 [[flat]]; - float4 clip_distance; }; -vertex PathVertexOutput path_vertex( - uint vertex_id [[vertex_id]], - constant PathVertex_ScaledPixels *vertices [[buffer(PathInputIndex_Vertices)]], - uint sprite_id [[instance_id]], - constant PathSprite *sprites [[buffer(PathInputIndex_Sprites)]], - constant Size_DevicePixels *input_viewport_size [[buffer(PathInputIndex_ViewportSize)]]) { - PathVertex_ScaledPixels v = vertices[vertex_id]; - float2 vertex_position = float2(v.xy_position.x, v.xy_position.y); - float2 viewport_size = float2((float)input_viewport_size->width, - (float)input_viewport_size->height); +vertex PathSpriteVertexOutput path_sprite_vertex( + uint unit_vertex_id [[vertex_id]], uint sprite_id [[instance_id]], + constant float2 *unit_vertices [[buffer(SpriteInputIndex_Vertices)]], + constant PathSprite *sprites [[buffer(SpriteInputIndex_Sprites)]], + constant Size_DevicePixels *viewport_size + [[buffer(SpriteInputIndex_ViewportSize)]], + constant Size_DevicePixels *atlas_size + [[buffer(SpriteInputIndex_AtlasTextureSize)]]) { + + float2 unit_vertex = unit_vertices[unit_vertex_id]; PathSprite sprite = sprites[sprite_id]; - float4 device_position = float4(vertex_position / viewport_size * float2(2., -2.) + float2(-1., 1.), 0., 1.); + // Don't apply content mask because it was already accounted for when + // rasterizing the path. + float4 device_position = + to_device_position(unit_vertex, sprite.bounds, viewport_size); + float2 tile_position = to_tile_position(unit_vertex, sprite.tile, atlas_size); GradientColor gradient = prepare_fill_color( sprite.color.tag, @@ -728,32 +777,30 @@ vertex PathVertexOutput path_vertex( sprite.color.colors[1].color ); - return PathVertexOutput{ + return PathSpriteVertexOutput{ device_position, + tile_position, sprite_id, gradient.solid, gradient.color0, - gradient.color1, - {v.xy_position.x - v.content_mask.bounds.origin.x, - v.content_mask.bounds.origin.x + v.content_mask.bounds.size.width - - v.xy_position.x, - v.xy_position.y - v.content_mask.bounds.origin.y, - v.content_mask.bounds.origin.y + v.content_mask.bounds.size.height - - v.xy_position.y} + gradient.color1 }; } -fragment float4 path_fragment( - PathVertexOutput input [[stage_in]], - constant PathSprite *sprites [[buffer(PathInputIndex_Sprites)]]) { - if (any(input.clip_distance < float4(0.0))) { - return float4(0.0); - } - +fragment float4 path_sprite_fragment( + PathSpriteVertexOutput input [[stage_in]], + constant PathSprite *sprites [[buffer(SpriteInputIndex_Sprites)]], + texture2d atlas_texture [[texture(SpriteInputIndex_AtlasTexture)]]) { + constexpr sampler atlas_texture_sampler(mag_filter::linear, + min_filter::linear); + float4 sample = + atlas_texture.sample(atlas_texture_sampler, input.tile_position); + float mask = 1. - abs(1. - fmod(sample.r, 2.)); PathSprite sprite = sprites[input.sprite_id]; Background background = sprite.color; float4 color = fill_color(background, input.position.xy, sprite.bounds, input.solid_color, input.color0, input.color1); + color.a *= mask; return color; } diff --git a/crates/gpui/src/platform/test/window.rs b/crates/gpui/src/platform/test/window.rs index 65ee10a13f..1b88415d3b 100644 --- a/crates/gpui/src/platform/test/window.rs +++ b/crates/gpui/src/platform/test/window.rs @@ -341,7 +341,7 @@ impl PlatformAtlas for TestAtlas { crate::AtlasTile { texture_id: AtlasTextureId { index: texture_id, - kind: crate::AtlasTextureKind::Polychrome, + kind: crate::AtlasTextureKind::Path, }, tile_id: TileId(tile_id), padding: 0, diff --git a/crates/gpui/src/scene.rs b/crates/gpui/src/scene.rs index 681444a473..4eaef64afa 100644 --- a/crates/gpui/src/scene.rs +++ b/crates/gpui/src/scene.rs @@ -6,7 +6,7 @@ use serde::{Deserialize, Serialize}; use crate::{ AtlasTextureId, AtlasTile, Background, Bounds, ContentMask, Corners, Edges, Hsla, Pixels, - Point, Radians, ScaledPixels, Size, bounds_tree::BoundsTree, + Point, Radians, ScaledPixels, Size, bounds_tree::BoundsTree, point, }; use std::{fmt::Debug, iter::Peekable, ops::Range, slice}; @@ -43,7 +43,13 @@ impl Scene { self.surfaces.clear(); } - #[allow(dead_code)] + #[cfg_attr( + all( + any(target_os = "linux", target_os = "freebsd"), + not(any(feature = "x11", feature = "wayland")) + ), + allow(dead_code) + )] pub fn paths(&self) -> &[Path] { &self.paths } @@ -683,7 +689,6 @@ pub struct Path { start: Point

, current: Point

, contour_count: usize, - base_scale: f32, } impl Path { @@ -702,35 +707,25 @@ impl Path { content_mask: Default::default(), color: Default::default(), contour_count: 0, - base_scale: 1.0, } } - /// Set the base scale of the path. - pub fn scale(mut self, factor: f32) -> Self { - self.base_scale = factor; - self - } - - /// Apply a scale to the path. - pub(crate) fn apply_scale(&self, factor: f32) -> Path { + /// Scale this path by the given factor. + pub fn scale(&self, factor: f32) -> Path { Path { id: self.id, order: self.order, - bounds: self.bounds.scale(self.base_scale * factor), - content_mask: self.content_mask.scale(self.base_scale * factor), + bounds: self.bounds.scale(factor), + content_mask: self.content_mask.scale(factor), vertices: self .vertices .iter() - .map(|vertex| vertex.scale(self.base_scale * factor)) + .map(|vertex| vertex.scale(factor)) .collect(), - start: self - .start - .map(|start| start.scale(self.base_scale * factor)), - current: self.current.scale(self.base_scale * factor), + start: self.start.map(|start| start.scale(factor)), + current: self.current.scale(factor), contour_count: self.contour_count, color: self.color, - base_scale: 1.0, } } @@ -745,7 +740,10 @@ impl Path { pub fn line_to(&mut self, to: Point) { self.contour_count += 1; if self.contour_count > 1 { - self.push_triangle((self.start, self.current, to)); + self.push_triangle( + (self.start, self.current, to), + (point(0., 1.), point(0., 1.), point(0., 1.)), + ); } self.current = to; } @@ -754,15 +752,25 @@ impl Path { pub fn curve_to(&mut self, to: Point, ctrl: Point) { self.contour_count += 1; if self.contour_count > 1 { - self.push_triangle((self.start, self.current, to)); + self.push_triangle( + (self.start, self.current, to), + (point(0., 1.), point(0., 1.), point(0., 1.)), + ); } - self.push_triangle((self.current, ctrl, to)); + self.push_triangle( + (self.current, ctrl, to), + (point(0., 0.), point(0.5, 0.), point(1., 1.)), + ); self.current = to; } /// Push a triangle to the Path. - pub fn push_triangle(&mut self, xy: (Point, Point, Point)) { + pub fn push_triangle( + &mut self, + xy: (Point, Point, Point), + st: (Point, Point, Point), + ) { self.bounds = self .bounds .union(&Bounds { @@ -780,14 +788,17 @@ impl Path { self.vertices.push(PathVertex { xy_position: xy.0, + st_position: st.0, content_mask: Default::default(), }); self.vertices.push(PathVertex { xy_position: xy.1, + st_position: st.1, content_mask: Default::default(), }); self.vertices.push(PathVertex { xy_position: xy.2, + st_position: st.2, content_mask: Default::default(), }); } @@ -803,6 +814,7 @@ impl From> for Primitive { #[repr(C)] pub(crate) struct PathVertex { pub(crate) xy_position: Point

, + pub(crate) st_position: Point, pub(crate) content_mask: ContentMask

, } @@ -810,6 +822,7 @@ impl PathVertex { pub fn scale(&self, factor: f32) -> PathVertex { PathVertex { xy_position: self.xy_position.scale(factor), + st_position: self.st_position, content_mask: self.content_mask.scale(factor), } } diff --git a/crates/gpui/src/window.rs b/crates/gpui/src/window.rs index e9145bd9f5..94f1b39ba2 100644 --- a/crates/gpui/src/window.rs +++ b/crates/gpui/src/window.rs @@ -2658,7 +2658,7 @@ impl Window { path.color = color.opacity(opacity); self.next_frame .scene - .insert_primitive(path.apply_scale(scale_factor)); + .insert_primitive(path.scale(scale_factor)); } /// Paint an underline into the scene for the next frame at the current z-index. diff --git a/docs/src/linux.md b/docs/src/linux.md index 896bfdaf3f..ca65da2969 100644 --- a/docs/src/linux.md +++ b/docs/src/linux.md @@ -148,7 +148,7 @@ On some systems the file `/etc/prime-discrete` can be used to enforce the use of On others, you may be able to the environment variable `DRI_PRIME=1` when running Zed to force the use of the discrete GPU. -If you're using an AMD GPU and Zed crashes when selecting long lines, try setting the `ZED_SAMPLE_COUNT=0` environment variable. (See [#26143](https://github.com/zed-industries/zed/issues/26143)) +If you're using an AMD GPU and Zed crashes when selecting long lines, try setting the `ZED_PATH_SAMPLE_COUNT=0` environment variable. (See [#26143](https://github.com/zed-industries/zed/issues/26143)) If you're using an AMD GPU, you might get a 'Broken Pipe' error. Try using the RADV or Mesa drivers. (See [#13880](https://github.com/zed-industries/zed/issues/13880)) From 44768606641ba3c9d40de8b38d96569d0ed69661 Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Fri, 18 Jul 2025 13:25:36 -0300 Subject: [PATCH 0060/1052] Add refinements to the AI onboarding flow (#33738) This includes making sure that both the agent panel and Zed's edit prediction have a consistent narrative when it comes to onboarding users into the AI features, considering the possible different plans and conditions (such as being signed in/out, account age, etc.) Release Notes: - N/A --------- Co-authored-by: Bennet Bo Fenner <53836821+bennetbo@users.noreply.github.com> Co-authored-by: Bennet Bo Fenner --- Cargo.lock | 22 +- Cargo.toml | 2 + crates/agent_ui/Cargo.toml | 1 + crates/agent_ui/src/agent_model_selector.rs | 21 +- crates/agent_ui/src/agent_panel.rs | 747 ++++++------------ crates/agent_ui/src/inline_prompt_editor.rs | 2 +- .../agent_ui/src/language_model_selector.rs | 13 +- crates/agent_ui/src/message_editor.rs | 11 +- crates/agent_ui/src/text_thread_editor.rs | 144 +--- crates/agent_ui/src/ui.rs | 2 + crates/agent_ui/src/ui/end_trial_upsell.rs | 112 +++ crates/ai_onboarding/Cargo.toml | 27 + crates/ai_onboarding/LICENSE-GPL | 1 + .../src/agent_panel_onboarding_card.rs | 81 ++ .../src/agent_panel_onboarding_content.rs | 145 ++++ crates/ai_onboarding/src/ai_onboarding.rs | 397 ++++++++++ .../src/edit_prediction_onboarding_content.rs | 73 ++ .../ai_onboarding/src/young_account_banner.rs | 21 + crates/client/src/client.rs | 7 + crates/client/src/user.rs | 10 + crates/client/src/zed_urls.rs | 5 + crates/copilot/src/copilot.rs | 10 +- .../src/inline_completion_button.rs | 93 +-- crates/language_model/src/language_model.rs | 2 +- crates/language_models/Cargo.toml | 1 + crates/language_models/src/provider/cloud.rs | 136 ++-- crates/title_bar/src/title_bar.rs | 9 +- .../ui/src/components/button/button_like.rs | 42 + crates/zed_actions/src/lib.rs | 5 +- crates/zeta/Cargo.toml | 4 +- crates/zeta/src/init.rs | 1 - crates/zeta/src/onboarding_modal.rs | 499 ++---------- crates/zeta/src/zeta.rs | 34 +- 33 files changed, 1465 insertions(+), 1215 deletions(-) create mode 100644 crates/agent_ui/src/ui/end_trial_upsell.rs create mode 100644 crates/ai_onboarding/Cargo.toml create mode 120000 crates/ai_onboarding/LICENSE-GPL create mode 100644 crates/ai_onboarding/src/agent_panel_onboarding_card.rs create mode 100644 crates/ai_onboarding/src/agent_panel_onboarding_content.rs create mode 100644 crates/ai_onboarding/src/ai_onboarding.rs create mode 100644 crates/ai_onboarding/src/edit_prediction_onboarding_content.rs create mode 100644 crates/ai_onboarding/src/young_account_banner.rs diff --git a/Cargo.lock b/Cargo.lock index 8bf2654370..cbed9f5988 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -195,6 +195,7 @@ dependencies = [ "agent_servers", "agent_settings", "agentic-coding-protocol", + "ai_onboarding", "anyhow", "assistant_context", "assistant_slash_command", @@ -329,6 +330,22 @@ dependencies = [ "memchr", ] +[[package]] +name = "ai_onboarding" +version = "0.1.0" +dependencies = [ + "client", + "component", + "gpui", + "language_model", + "proto", + "serde", + "smallvec", + "ui", + "workspace-hack", + "zed_actions", +] + [[package]] name = "alacritty_terminal" version = "0.25.1-dev" @@ -9066,6 +9083,7 @@ dependencies = [ name = "language_models" version = "0.1.0" dependencies = [ + "ai_onboarding", "anthropic", "anyhow", "aws-config", @@ -20510,6 +20528,7 @@ dependencies = [ name = "zeta" version = "0.1.0" dependencies = [ + "ai_onboarding", "anyhow", "arrayvec", "call", @@ -20517,6 +20536,7 @@ dependencies = [ "clock", "collections", "command_palette_hooks", + "copilot", "ctor", "db", "editor", @@ -20531,8 +20551,6 @@ dependencies = [ "language_model", "log", "menu", - "migrator", - "paths", "postage", "project", "proto", diff --git a/Cargo.toml b/Cargo.toml index 8d942a4c73..aa9af9a423 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,6 +6,7 @@ members = [ "crates/agent_ui", "crates/agent", "crates/agent_settings", + "crates/ai_onboarding", "crates/agent_servers", "crates/anthropic", "crates/askpass", @@ -227,6 +228,7 @@ agent_ui = { path = "crates/agent_ui" } agent_settings = { path = "crates/agent_settings" } agent_servers = { path = "crates/agent_servers" } ai = { path = "crates/ai" } +ai_onboarding = { path = "crates/ai_onboarding" } anthropic = { path = "crates/anthropic" } askpass = { path = "crates/askpass" } assets = { path = "crates/assets" } diff --git a/crates/agent_ui/Cargo.toml b/crates/agent_ui/Cargo.toml index d4feceb0b6..e55ae86fb7 100644 --- a/crates/agent_ui/Cargo.toml +++ b/crates/agent_ui/Cargo.toml @@ -21,6 +21,7 @@ agent.workspace = true agentic-coding-protocol.workspace = true agent_settings.workspace = true agent_servers.workspace = true +ai_onboarding.workspace = true anyhow.workspace = true assistant_context.workspace = true assistant_slash_command.workspace = true diff --git a/crates/agent_ui/src/agent_model_selector.rs b/crates/agent_ui/src/agent_model_selector.rs index f7b9157bbb..b989e7bf1e 100644 --- a/crates/agent_ui/src/agent_model_selector.rs +++ b/crates/agent_ui/src/agent_model_selector.rs @@ -1,8 +1,6 @@ use crate::{ ModelUsageContext, - language_model_selector::{ - LanguageModelSelector, ToggleModelSelector, language_model_selector, - }, + language_model_selector::{LanguageModelSelector, language_model_selector}, }; use agent_settings::AgentSettings; use fs::Fs; @@ -12,6 +10,7 @@ use picker::popover_menu::PickerPopoverMenu; use settings::update_settings_file; use std::sync::Arc; use ui::{ButtonLike, PopoverMenuHandle, Tooltip, prelude::*}; +use zed_actions::agent::ToggleModelSelector; pub struct AgentModelSelector { selector: Entity, @@ -96,22 +95,18 @@ impl Render for AgentModelSelector { let model_name = model .as_ref() .map(|model| model.model.name().0) - .unwrap_or_else(|| SharedString::from("No model selected")); - let provider_icon = model - .as_ref() - .map(|model| model.provider.icon()) - .unwrap_or_else(|| IconName::Ai); + .unwrap_or_else(|| SharedString::from("Select a Model")); + + let provider_icon = model.as_ref().map(|model| model.provider.icon()); let focus_handle = self.focus_handle.clone(); PickerPopoverMenu::new( self.selector.clone(), ButtonLike::new("active-model") - .child( - Icon::new(provider_icon) - .color(Color::Muted) - .size(IconSize::XSmall), - ) + .when_some(provider_icon, |this, icon| { + this.child(Icon::new(icon).color(Color::Muted).size(IconSize::XSmall)) + }) .child( Label::new(model_name) .color(Color::Muted) diff --git a/crates/agent_ui/src/agent_panel.rs b/crates/agent_ui/src/agent_panel.rs index 103e439615..7f2fbce189 100644 --- a/crates/agent_ui/src/agent_panel.rs +++ b/crates/agent_ui/src/agent_panel.rs @@ -11,7 +11,6 @@ use serde::{Deserialize, Serialize}; use crate::NewExternalAgentThread; use crate::agent_diff::AgentDiffThread; -use crate::language_model_selector::ToggleModelSelector; use crate::{ AddContextServer, AgentDiffPane, ContinueThread, ContinueWithBurnMode, DeleteRecentlyOpenThread, ExpandMessageEditor, Follow, InlineAssistant, NewTextThread, @@ -28,7 +27,7 @@ use crate::{ render_remaining_tokens, }, thread_history::{HistoryEntryElement, ThreadHistory}, - ui::AgentOnboardingModal, + ui::{AgentOnboardingModal, EndTrialUpsell}, }; use agent::{ Thread, ThreadError, ThreadEvent, ThreadId, ThreadSummary, TokenUsageRatio, @@ -37,6 +36,7 @@ use agent::{ thread_store::{TextThreadStore, ThreadStore}, }; use agent_settings::{AgentDockPosition, AgentSettings, CompletionMode, DefaultView}; +use ai_onboarding::AgentPanelOnboarding; use anyhow::{Result, anyhow}; use assistant_context::{AssistantContext, ContextEvent, ContextSummary}; use assistant_slash_command::SlashCommandWorkingSet; @@ -48,13 +48,12 @@ use fs::Fs; use gpui::{ Action, Animation, AnimationExt as _, AnyElement, App, AsyncWindowContext, ClipboardItem, Corner, DismissEvent, Entity, EventEmitter, ExternalPaths, FocusHandle, Focusable, Hsla, - KeyContext, Pixels, Subscription, Task, UpdateGlobal, WeakEntity, linear_color_stop, - linear_gradient, prelude::*, pulsating_between, + KeyContext, Pixels, Subscription, Task, UpdateGlobal, WeakEntity, prelude::*, + pulsating_between, }; use language::LanguageRegistry; use language_model::{ ConfigurationError, ConfiguredModel, LanguageModelProviderTosView, LanguageModelRegistry, - ZED_CLOUD_PROVIDER_ID, }; use project::{Project, ProjectPath, Worktree}; use prompt_store::{PromptBuilder, PromptStore, UserPromptId}; @@ -66,9 +65,8 @@ use theme::ThemeSettings; use time::UtcOffset; use ui::utils::WithRemSize; use ui::{ - Banner, Button, Callout, CheckboxWithLabel, ContextMenu, ElevationIndex, IconPosition, - KeyBinding, PopoverMenu, PopoverMenuHandle, ProgressBar, Tab, Tooltip, Vector, VectorName, - prelude::*, + Banner, Callout, ContextMenu, ElevationIndex, KeyBinding, PopoverMenu, PopoverMenuHandle, + ProgressBar, Tab, Tooltip, prelude::*, }; use util::ResultExt as _; use workspace::{ @@ -77,7 +75,7 @@ use workspace::{ }; use zed_actions::{ DecreaseBufferFontSize, IncreaseBufferFontSize, ResetBufferFontSize, - agent::{OpenConfiguration, OpenOnboardingModal, ResetOnboarding}, + agent::{OpenConfiguration, OpenOnboardingModal, ResetOnboarding, ToggleModelSelector}, assistant::{OpenRulesLibrary, ToggleFocus}, }; use zed_llm_client::{CompletionIntent, UsageLimit}; @@ -188,7 +186,7 @@ pub fn init(cx: &mut App) { window.refresh(); }) .register_action(|_workspace, _: &ResetTrialUpsell, _window, cx| { - Upsell::set_dismissed(false, cx); + OnboardingUpsell::set_dismissed(false, cx); }) .register_action(|_workspace, _: &ResetTrialEndUpsell, _window, cx| { TrialEndUpsell::set_dismissed(false, cx); @@ -453,7 +451,7 @@ pub struct AgentPanel { height: Option, zoomed: bool, pending_serialization: Option>>, - hide_upsell: bool, + onboarding: Entity, } impl AgentPanel { @@ -555,6 +553,7 @@ impl AgentPanel { let user_store = workspace.app_state().user_store.clone(); let project = workspace.project(); let language_registry = project.read(cx).languages().clone(); + let client = workspace.client().clone(); let workspace = workspace.weak_handle(); let weak_self = cx.entity().downgrade(); @@ -688,6 +687,17 @@ impl AgentPanel { }, ); + let onboarding = cx.new(|cx| { + AgentPanelOnboarding::new( + user_store.clone(), + client, + |_window, cx| { + OnboardingUpsell::set_dismissed(true, cx); + }, + cx, + ) + }); + Self { active_view, workspace, @@ -719,7 +729,7 @@ impl AgentPanel { height: None, zoomed: false, pending_serialization: None, - hide_upsell: false, + onboarding, } } @@ -2178,191 +2188,78 @@ impl AgentPanel { return false; } + match &self.active_view { + ActiveView::Thread { thread, .. } => { + if thread + .read(cx) + .thread() + .read(cx) + .configured_model() + .map_or(false, |model| { + model.provider.id() != language_model::ZED_CLOUD_PROVIDER_ID + }) + { + return false; + } + } + ActiveView::TextThread { .. } => { + if LanguageModelRegistry::global(cx) + .read(cx) + .default_model() + .map_or(false, |model| { + model.provider.id() != language_model::ZED_CLOUD_PROVIDER_ID + }) + { + return false; + } + } + ActiveView::ExternalAgentThread { .. } + | ActiveView::History + | ActiveView::Configuration => return false, + } + let plan = self.user_store.read(cx).current_plan(); let has_previous_trial = self.user_store.read(cx).trial_started_at().is_some(); matches!(plan, Some(Plan::Free)) && has_previous_trial } - fn should_render_upsell(&self, cx: &mut Context) -> bool { + fn should_render_onboarding(&self, cx: &mut Context) -> bool { + if OnboardingUpsell::dismissed() { + return false; + } + match &self.active_view { - ActiveView::Thread { thread, .. } => { - let is_using_zed_provider = thread - .read(cx) - .thread() - .read(cx) - .configured_model() - .map_or(false, |model| model.provider.id() == ZED_CLOUD_PROVIDER_ID); - - if !is_using_zed_provider { - return false; - } - } - ActiveView::ExternalAgentThread { .. } => { - return false; - } - ActiveView::TextThread { .. } | ActiveView::History | ActiveView::Configuration => { - return false; - } - }; - - if self.hide_upsell || Upsell::dismissed() { - return false; + ActiveView::Thread { thread, .. } => thread + .read(cx) + .thread() + .read(cx) + .configured_model() + .map_or(true, |model| { + model.provider.id() == language_model::ZED_CLOUD_PROVIDER_ID + }), + ActiveView::TextThread { .. } => LanguageModelRegistry::global(cx) + .read(cx) + .default_model() + .map_or(true, |model| { + model.provider.id() == language_model::ZED_CLOUD_PROVIDER_ID + }), + ActiveView::ExternalAgentThread { .. } + | ActiveView::History + | ActiveView::Configuration => false, } - - let plan = self.user_store.read(cx).current_plan(); - if matches!(plan, Some(Plan::ZedPro | Plan::ZedProTrial)) { - return false; - } - - let has_previous_trial = self.user_store.read(cx).trial_started_at().is_some(); - if has_previous_trial { - return false; - } - - true } - fn render_upsell( + fn render_onboarding( &self, _window: &mut Window, cx: &mut Context, ) -> Option { - if !self.should_render_upsell(cx) { + if !self.should_render_onboarding(cx) { return None; } - if self.user_store.read(cx).account_too_young() { - Some(self.render_young_account_upsell(cx).into_any_element()) - } else { - Some(self.render_trial_upsell(cx).into_any_element()) - } - } - - fn render_young_account_upsell(&self, cx: &mut Context) -> impl IntoElement { - let checkbox = CheckboxWithLabel::new( - "dont-show-again", - Label::new("Don't show again").color(Color::Muted), - ToggleState::Unselected, - move |toggle_state, _window, cx| { - let toggle_state_bool = toggle_state.selected(); - - Upsell::set_dismissed(toggle_state_bool, cx); - }, - ); - - let contents = div() - .size_full() - .gap_2() - .flex() - .flex_col() - .child(Headline::new("Build better with Zed Pro").size(HeadlineSize::Small)) - .child( - Label::new("Your GitHub account was created less than 30 days ago, so we can't offer you a free trial.") - .size(LabelSize::Small), - ) - .child( - Label::new( - "Use your own API keys, upgrade to Zed Pro or send an email to billing-support@zed.dev.", - ) - .color(Color::Muted), - ) - .child( - h_flex() - .w_full() - .px_neg_1() - .justify_between() - .items_center() - .child(h_flex().items_center().gap_1().child(checkbox)) - .child( - h_flex() - .gap_2() - .child( - Button::new("dismiss-button", "Not Now") - .style(ButtonStyle::Transparent) - .color(Color::Muted) - .on_click({ - let agent_panel = cx.entity(); - move |_, _, cx| { - agent_panel.update(cx, |this, cx| { - this.hide_upsell = true; - cx.notify(); - }); - } - }), - ) - .child( - Button::new("cta-button", "Upgrade to Zed Pro") - .style(ButtonStyle::Transparent) - .on_click(|_, _, cx| cx.open_url(&zed_urls::account_url(cx))), - ), - ), - ); - - self.render_upsell_container(cx, contents) - } - - fn render_trial_upsell(&self, cx: &mut Context) -> impl IntoElement { - let checkbox = CheckboxWithLabel::new( - "dont-show-again", - Label::new("Don't show again").color(Color::Muted), - ToggleState::Unselected, - move |toggle_state, _window, cx| { - let toggle_state_bool = toggle_state.selected(); - - Upsell::set_dismissed(toggle_state_bool, cx); - }, - ); - - let contents = div() - .size_full() - .gap_2() - .flex() - .flex_col() - .child(Headline::new("Build better with Zed Pro").size(HeadlineSize::Small)) - .child( - Label::new("Try Zed Pro for free for 14 days - no credit card required.") - .size(LabelSize::Small), - ) - .child( - Label::new( - "Use your own API keys or enable usage-based billing once you hit the cap.", - ) - .color(Color::Muted), - ) - .child( - h_flex() - .w_full() - .px_neg_1() - .justify_between() - .items_center() - .child(h_flex().items_center().gap_1().child(checkbox)) - .child( - h_flex() - .gap_2() - .child( - Button::new("dismiss-button", "Not Now") - .style(ButtonStyle::Transparent) - .color(Color::Muted) - .on_click({ - let agent_panel = cx.entity(); - move |_, _, cx| { - agent_panel.update(cx, |this, cx| { - this.hide_upsell = true; - cx.notify(); - }); - } - }), - ) - .child( - Button::new("cta-button", "Start Trial") - .style(ButtonStyle::Transparent) - .on_click(|_, _, cx| cx.open_url(&zed_urls::account_url(cx))), - ), - ), - ); - - self.render_upsell_container(cx, contents) + Some(div().size_full().child(self.onboarding.clone())) } fn render_trial_end_upsell( @@ -2374,141 +2271,15 @@ impl AgentPanel { return None; } - Some( - self.render_upsell_container( - cx, - div() - .size_full() - .gap_2() - .flex() - .flex_col() - .child( - Headline::new("Your Zed Pro trial has expired.").size(HeadlineSize::Small), - ) - .child( - Label::new("You've been automatically reset to the free plan.") - .size(LabelSize::Small), - ) - .child( - h_flex() - .w_full() - .px_neg_1() - .justify_between() - .items_center() - .child(div()) - .child( - h_flex() - .gap_2() - .child( - Button::new("dismiss-button", "Stay on Free") - .style(ButtonStyle::Transparent) - .color(Color::Muted) - .on_click({ - let agent_panel = cx.entity(); - move |_, _, cx| { - agent_panel.update(cx, |_this, cx| { - TrialEndUpsell::set_dismissed(true, cx); - cx.notify(); - }); - } - }), - ) - .child( - Button::new("cta-button", "Upgrade to Zed Pro") - .style(ButtonStyle::Transparent) - .on_click(|_, _, cx| { - cx.open_url(&zed_urls::account_url(cx)) - }), - ), - ), - ), - ), - ) - } - - fn render_upsell_container(&self, cx: &mut Context, content: Div) -> Div { - div().p_2().child( - v_flex() - .w_full() - .elevation_2(cx) - .rounded(px(8.)) - .bg(cx.theme().colors().background.alpha(0.5)) - .p(px(3.)) - .child( - div() - .gap_2() - .flex() - .flex_col() - .size_full() - .border_1() - .rounded(px(5.)) - .border_color(cx.theme().colors().text.alpha(0.1)) - .overflow_hidden() - .relative() - .bg(cx.theme().colors().panel_background) - .px_4() - .py_3() - .child( - div() - .absolute() - .top_0() - .right(px(-1.0)) - .w(px(441.)) - .h(px(167.)) - .child( - Vector::new( - VectorName::Grid, - rems_from_px(441.), - rems_from_px(167.), - ) - .color(ui::Color::Custom(cx.theme().colors().text.alpha(0.1))), - ), - ) - .child( - div() - .absolute() - .top(px(-8.0)) - .right_0() - .w(px(400.)) - .h(px(92.)) - .child( - Vector::new( - VectorName::AiGrid, - rems_from_px(400.), - rems_from_px(92.), - ) - .color(ui::Color::Custom(cx.theme().colors().text.alpha(0.32))), - ), - ) - // .child( - // div() - // .absolute() - // .top_0() - // .right(px(360.)) - // .size(px(401.)) - // .overflow_hidden() - // .bg(cx.theme().colors().panel_background) - // ) - .child( - div() - .absolute() - .top_0() - .right_0() - .w(px(660.)) - .h(px(401.)) - .overflow_hidden() - .bg(linear_gradient( - 75., - linear_color_stop( - cx.theme().colors().panel_background.alpha(0.01), - 1.0, - ), - linear_color_stop(cx.theme().colors().panel_background, 0.45), - )), - ) - .child(content), - ), - ) + Some(EndTrialUpsell::new(Arc::new({ + let this = cx.entity(); + move |_, cx| { + this.update(cx, |_this, cx| { + TrialEndUpsell::set_dismissed(true, cx); + cx.notify(); + }); + } + }))) } fn render_thread_empty_state( @@ -2521,8 +2292,10 @@ impl AgentPanel { .update(cx, |this, cx| this.recent_entries(6, cx)); let model_registry = LanguageModelRegistry::read_global(cx); + let configuration_error = model_registry.configuration_error(model_registry.default_model(), cx); + let no_error = configuration_error.is_none(); let focus_handle = self.focus_handle(cx); @@ -2530,11 +2303,9 @@ impl AgentPanel { .size_full() .bg(cx.theme().colors().panel_background) .when(recent_history.is_empty(), |this| { - let configuration_error_ref = &configuration_error; this.child( v_flex() .size_full() - .max_w_80() .mx_auto() .justify_center() .items_center() @@ -2542,137 +2313,91 @@ impl AgentPanel { .child(h_flex().child(Headline::new("Welcome to the Agent Panel"))) .when(no_error, |parent| { parent + .child(h_flex().child( + Label::new("Ask and build anything.").color(Color::Muted), + )) .child( - h_flex().child( - Label::new("Ask and build anything.") - .color(Color::Muted) - .mb_2p5(), - ), - ) - .child( - Button::new("new-thread", "Start New Thread") - .icon(IconName::Plus) - .icon_position(IconPosition::Start) - .icon_size(IconSize::Small) - .icon_color(Color::Muted) - .full_width() - .key_binding(KeyBinding::for_action_in( - &NewThread::default(), - &focus_handle, - window, - cx, - )) - .on_click(|_event, window, cx| { - window.dispatch_action( - NewThread::default().boxed_clone(), - cx, - ) - }), - ) - .child( - Button::new("context", "Add Context") - .icon(IconName::FileCode) - .icon_position(IconPosition::Start) - .icon_size(IconSize::Small) - .icon_color(Color::Muted) - .full_width() - .key_binding(KeyBinding::for_action_in( - &ToggleContextPicker, - &focus_handle, - window, - cx, - )) - .on_click(|_event, window, cx| { - window.dispatch_action( - ToggleContextPicker.boxed_clone(), - cx, - ) - }), - ) - .child( - Button::new("mode", "Switch Model") - .icon(IconName::DatabaseZap) - .icon_position(IconPosition::Start) - .icon_size(IconSize::Small) - .icon_color(Color::Muted) - .full_width() - .key_binding(KeyBinding::for_action_in( - &ToggleModelSelector, - &focus_handle, - window, - cx, - )) - .on_click(|_event, window, cx| { - window.dispatch_action( - ToggleModelSelector.boxed_clone(), - cx, - ) - }), - ) - .child( - Button::new("settings", "View Settings") - .icon(IconName::Settings) - .icon_position(IconPosition::Start) - .icon_size(IconSize::Small) - .icon_color(Color::Muted) - .full_width() - .key_binding(KeyBinding::for_action_in( - &OpenConfiguration, - &focus_handle, - window, - cx, - )) - .on_click(|_event, window, cx| { - window.dispatch_action( - OpenConfiguration.boxed_clone(), - cx, - ) - }), + v_flex() + .mt_2() + .gap_1() + .max_w_48() + .child( + Button::new("context", "Add Context") + .label_size(LabelSize::Small) + .icon(IconName::FileCode) + .icon_position(IconPosition::Start) + .icon_size(IconSize::Small) + .icon_color(Color::Muted) + .full_width() + .key_binding(KeyBinding::for_action_in( + &ToggleContextPicker, + &focus_handle, + window, + cx, + )) + .on_click(|_event, window, cx| { + window.dispatch_action( + ToggleContextPicker.boxed_clone(), + cx, + ) + }), + ) + .child( + Button::new("mode", "Switch Model") + .label_size(LabelSize::Small) + .icon(IconName::DatabaseZap) + .icon_position(IconPosition::Start) + .icon_size(IconSize::Small) + .icon_color(Color::Muted) + .full_width() + .key_binding(KeyBinding::for_action_in( + &ToggleModelSelector, + &focus_handle, + window, + cx, + )) + .on_click(|_event, window, cx| { + window.dispatch_action( + ToggleModelSelector.boxed_clone(), + cx, + ) + }), + ) + .child( + Button::new("settings", "View Settings") + .label_size(LabelSize::Small) + .icon(IconName::Settings) + .icon_position(IconPosition::Start) + .icon_size(IconSize::Small) + .icon_color(Color::Muted) + .full_width() + .key_binding(KeyBinding::for_action_in( + &OpenConfiguration, + &focus_handle, + window, + cx, + )) + .on_click(|_event, window, cx| { + window.dispatch_action( + OpenConfiguration.boxed_clone(), + cx, + ) + }), + ), ) }) - .map(|parent| match configuration_error_ref { - Some( - err @ (ConfigurationError::ModelNotFound - | ConfigurationError::ProviderNotAuthenticated(_) - | ConfigurationError::NoProvider), - ) => parent - .child(h_flex().child( - Label::new(err.to_string()).color(Color::Muted).mb_2p5(), - )) - .child( - Button::new("settings", "Configure a Provider") - .icon(IconName::Settings) - .icon_position(IconPosition::Start) - .icon_size(IconSize::Small) - .icon_color(Color::Muted) - .full_width() - .key_binding(KeyBinding::for_action_in( - &OpenConfiguration, - &focus_handle, - window, - cx, - )) - .on_click(|_event, window, cx| { - window.dispatch_action( - OpenConfiguration.boxed_clone(), - cx, - ) - }), - ), - Some(ConfigurationError::ProviderPendingTermsAcceptance(provider)) => { - parent.children(provider.render_accept_terms( - LanguageModelProviderTosView::ThreadFreshStart, - cx, - )) - } - None => parent, + .when_some(configuration_error.as_ref(), |this, err| { + this.child(self.render_configuration_error( + err, + &focus_handle, + window, + cx, + )) }), ) }) .when(!recent_history.is_empty(), |parent| { let focus_handle = focus_handle.clone(); - let configuration_error_ref = &configuration_error; - parent .overflow_hidden() .p_1p5() @@ -2735,49 +2460,55 @@ impl AgentPanel { }, )), ) - .map(|parent| match configuration_error_ref { - Some( - err @ (ConfigurationError::ModelNotFound - | ConfigurationError::ProviderNotAuthenticated(_) - | ConfigurationError::NoProvider), - ) => parent.child( - Banner::new() - .severity(ui::Severity::Warning) - .child(Label::new(err.to_string()).size(LabelSize::Small)) - .action_slot( - Button::new("settings", "Configure Provider") - .style(ButtonStyle::Tinted(ui::TintColor::Warning)) - .label_size(LabelSize::Small) - .key_binding( - KeyBinding::for_action_in( - &OpenConfiguration, - &focus_handle, - window, - cx, - ) - .map(|kb| kb.size(rems_from_px(12.))), - ) - .on_click(|_event, window, cx| { - window.dispatch_action( - OpenConfiguration.boxed_clone(), - cx, - ) - }), - ), - ), - Some(ConfigurationError::ProviderPendingTermsAcceptance(provider)) => { - parent.child(Banner::new().severity(ui::Severity::Warning).child( - h_flex().w_full().children(provider.render_accept_terms( - LanguageModelProviderTosView::ThreadEmptyState, - cx, - )), - )) - } - None => parent, + .when_some(configuration_error.as_ref(), |this, err| { + this.child(self.render_configuration_error(err, &focus_handle, window, cx)) }) }) } + fn render_configuration_error( + &self, + configuration_error: &ConfigurationError, + focus_handle: &FocusHandle, + window: &mut Window, + cx: &mut App, + ) -> impl IntoElement { + match configuration_error { + ConfigurationError::ModelNotFound + | ConfigurationError::ProviderNotAuthenticated(_) + | ConfigurationError::NoProvider => Banner::new() + .severity(ui::Severity::Warning) + .child(Label::new(configuration_error.to_string())) + .action_slot( + Button::new("settings", "Configure Provider") + .style(ButtonStyle::Tinted(ui::TintColor::Warning)) + .label_size(LabelSize::Small) + .key_binding( + KeyBinding::for_action_in( + &OpenConfiguration, + &focus_handle, + window, + cx, + ) + .map(|kb| kb.size(rems_from_px(12.))), + ) + .on_click(|_event, window, cx| { + window.dispatch_action(OpenConfiguration.boxed_clone(), cx) + }), + ), + ConfigurationError::ProviderPendingTermsAcceptance(provider) => { + Banner::new().severity(ui::Severity::Warning).child( + h_flex().w_full().children( + provider.render_accept_terms( + LanguageModelProviderTosView::ThreadEmptyState, + cx, + ), + ), + ) + } + } + } + fn render_tool_use_limit_reached( &self, window: &mut Window, @@ -2910,7 +2641,7 @@ impl AgentPanel { this.clear_last_error(); }); - cx.open_url(&zed_urls::account_url(cx)); + cx.open_url(&zed_urls::upgrade_to_zed_pro_url(cx)); cx.notify(); } })) @@ -3300,7 +3031,7 @@ impl Render for AgentPanel { })) .on_action(cx.listener(Self::toggle_burn_mode)) .child(self.render_toolbar(window, cx)) - .children(self.render_upsell(window, cx)) + .children(self.render_onboarding(window, cx)) .children(self.render_trial_end_upsell(window, cx)) .map(|parent| match &self.active_view { ActiveView::Thread { @@ -3309,12 +3040,14 @@ impl Render for AgentPanel { .. } => parent .relative() - .child(if thread.read(cx).is_empty() { - self.render_thread_empty_state(window, cx) - .into_any_element() - } else { - thread.clone().into_any_element() - }) + .child( + if thread.read(cx).is_empty() && !self.should_render_onboarding(cx) { + self.render_thread_empty_state(window, cx) + .into_any_element() + } else { + thread.clone().into_any_element() + }, + ) .children(self.render_tool_use_limit_reached(window, cx)) .when_some(thread.read(cx).last_error(), |this, last_error| { this.child( @@ -3352,12 +3085,36 @@ impl Render for AgentPanel { context_editor, buffer_search_bar, .. - } => parent.child(self.render_prompt_editor( - context_editor, - buffer_search_bar, - window, - cx, - )), + } => { + let model_registry = LanguageModelRegistry::read_global(cx); + let configuration_error = + model_registry.configuration_error(model_registry.default_model(), cx); + parent + .map(|this| { + if !self.should_render_onboarding(cx) + && let Some(err) = configuration_error.as_ref() + { + this.child( + div().bg(cx.theme().colors().editor_background).p_2().child( + self.render_configuration_error( + err, + &self.focus_handle(cx), + window, + cx, + ), + ), + ) + } else { + this + } + }) + .child(self.render_prompt_editor( + context_editor, + buffer_search_bar, + window, + cx, + )) + } ActiveView::Configuration => parent.children(self.configuration.clone()), }); @@ -3526,9 +3283,9 @@ impl AgentPanelDelegate for ConcreteAssistantPanelDelegate { } } -struct Upsell; +struct OnboardingUpsell; -impl Dismissable for Upsell { +impl Dismissable for OnboardingUpsell { const KEY: &'static str = "dismissed-trial-upsell"; } diff --git a/crates/agent_ui/src/inline_prompt_editor.rs b/crates/agent_ui/src/inline_prompt_editor.rs index 7a61eef748..ade7a5e13d 100644 --- a/crates/agent_ui/src/inline_prompt_editor.rs +++ b/crates/agent_ui/src/inline_prompt_editor.rs @@ -2,7 +2,6 @@ use crate::agent_model_selector::AgentModelSelector; use crate::buffer_codegen::BufferCodegen; use crate::context_picker::{ContextPicker, ContextPickerCompletionProvider}; use crate::context_strip::{ContextStrip, ContextStripEvent, SuggestContextKind}; -use crate::language_model_selector::ToggleModelSelector; use crate::message_editor::{ContextCreasesAddon, extract_message_creases, insert_message_creases}; use crate::terminal_codegen::TerminalCodegen; use crate::{CycleNextInlineAssist, CyclePreviousInlineAssist, ModelUsageContext}; @@ -38,6 +37,7 @@ use ui::{ CheckboxWithLabel, IconButtonShape, KeyBinding, Popover, PopoverMenuHandle, Tooltip, prelude::*, }; use workspace::Workspace; +use zed_actions::agent::ToggleModelSelector; pub struct PromptEditor { pub editor: Entity, diff --git a/crates/agent_ui/src/language_model_selector.rs b/crates/agent_ui/src/language_model_selector.rs index ff18a95f3f..655e87d7cd 100644 --- a/crates/agent_ui/src/language_model_selector.rs +++ b/crates/agent_ui/src/language_model_selector.rs @@ -3,9 +3,7 @@ use std::{cmp::Reverse, sync::Arc}; use collections::{HashSet, IndexMap}; use feature_flags::ZedProFeatureFlag; use fuzzy::{StringMatch, StringMatchCandidate, match_strings}; -use gpui::{ - Action, AnyElement, App, BackgroundExecutor, DismissEvent, Subscription, Task, actions, -}; +use gpui::{Action, AnyElement, App, BackgroundExecutor, DismissEvent, Subscription, Task}; use language_model::{ AuthenticateError, ConfiguredModel, LanguageModel, LanguageModelProviderId, LanguageModelRegistry, @@ -15,15 +13,6 @@ use picker::{Picker, PickerDelegate}; use proto::Plan; use ui::{ListItem, ListItemSpacing, prelude::*}; -actions!( - agent, - [ - /// Toggles the language model selector dropdown. - #[action(deprecated_aliases = ["assistant::ToggleModelSelector", "assistant2::ToggleModelSelector"])] - ToggleModelSelector - ] -); - const TRY_ZED_PRO_URL: &str = "https://zed.dev/pro"; type OnModelChanged = Arc, &mut App) + 'static>; diff --git a/crates/agent_ui/src/message_editor.rs b/crates/agent_ui/src/message_editor.rs index d2b136f274..6967c8ab3e 100644 --- a/crates/agent_ui/src/message_editor.rs +++ b/crates/agent_ui/src/message_editor.rs @@ -4,7 +4,6 @@ use std::sync::Arc; use crate::agent_diff::AgentDiffThread; use crate::agent_model_selector::AgentModelSelector; -use crate::language_model_selector::ToggleModelSelector; use crate::tool_compatibility::{IncompatibleToolsState, IncompatibleToolsTooltip}; use crate::ui::{ MaxModeTooltip, @@ -49,6 +48,7 @@ use ui::{ use util::ResultExt as _; use workspace::{CollaboratorId, Workspace}; use zed_actions::agent::Chat; +use zed_actions::agent::ToggleModelSelector; use zed_llm_client::CompletionIntent; use crate::context_picker::{ContextPicker, ContextPickerCompletionProvider, crease_for_mention}; @@ -609,7 +609,11 @@ impl MessageEditor { ) } - fn render_follow_toggle(&self, cx: &mut Context) -> impl IntoElement { + fn render_follow_toggle( + &self, + is_model_selected: bool, + cx: &mut Context, + ) -> impl IntoElement { let following = self .workspace .read_with(cx, |workspace, _| { @@ -618,6 +622,7 @@ impl MessageEditor { .unwrap_or(false); IconButton::new("follow-agent", IconName::Crosshair) + .disabled(is_model_selected) .icon_size(IconSize::Small) .icon_color(Color::Muted) .toggle_state(following) @@ -786,7 +791,7 @@ impl MessageEditor { .justify_between() .child( h_flex() - .child(self.render_follow_toggle(cx)) + .child(self.render_follow_toggle(is_model_selected, cx)) .children(self.render_burn_mode_toggle(cx)), ) .child( diff --git a/crates/agent_ui/src/text_thread_editor.rs b/crates/agent_ui/src/text_thread_editor.rs index 2941da1965..3df0a48aa4 100644 --- a/crates/agent_ui/src/text_thread_editor.rs +++ b/crates/agent_ui/src/text_thread_editor.rs @@ -1,8 +1,6 @@ use crate::{ burn_mode_tooltip::BurnModeTooltip, - language_model_selector::{ - LanguageModelSelector, ToggleModelSelector, language_model_selector, - }, + language_model_selector::{LanguageModelSelector, language_model_selector}, }; use agent_settings::{AgentSettings, CompletionMode}; use anyhow::Result; @@ -38,8 +36,7 @@ use language::{ language_settings::{SoftWrap, all_language_settings}, }; use language_model::{ - ConfigurationError, LanguageModelExt, LanguageModelImage, LanguageModelProviderTosView, - LanguageModelRegistry, Role, + ConfigurationError, LanguageModelExt, LanguageModelImage, LanguageModelRegistry, Role, }; use multi_buffer::MultiBufferRow; use picker::{Picker, popover_menu::PickerPopoverMenu}; @@ -74,6 +71,7 @@ use workspace::{ pane, searchable::{SearchEvent, SearchableItem}, }; +use zed_actions::agent::ToggleModelSelector; use crate::{slash_command::SlashCommandCompletionProvider, slash_command_picker}; use assistant_context::{ @@ -1895,108 +1893,6 @@ impl TextThreadEditor { .update(cx, |context, cx| context.summarize(true, cx)); } - fn render_notice(&self, cx: &mut Context) -> Option { - // This was previously gated behind the `zed-pro` feature flag. Since we - // aren't planning to ship that right now, we're just hard-coding this - // value to not show the nudge. - let nudge = Some(false); - - let model_registry = LanguageModelRegistry::read_global(cx); - - if nudge.map_or(false, |value| value) { - Some( - h_flex() - .p_3() - .border_b_1() - .border_color(cx.theme().colors().border_variant) - .bg(cx.theme().colors().editor_background) - .justify_between() - .child( - h_flex() - .gap_3() - .child(Icon::new(IconName::ZedAssistant).color(Color::Accent)) - .child(Label::new("Zed AI is here! Get started by signing in →")), - ) - .child( - Button::new("sign-in", "Sign in") - .size(ButtonSize::Compact) - .style(ButtonStyle::Filled) - .on_click(cx.listener(|this, _event, _window, cx| { - let client = this - .workspace - .read_with(cx, |workspace, _| workspace.client().clone()) - .log_err(); - - if let Some(client) = client { - cx.spawn(async move |context_editor, cx| { - match client.authenticate_and_connect(true, cx).await { - util::ConnectionResult::Timeout => { - log::error!("Authentication timeout") - } - util::ConnectionResult::ConnectionReset => { - log::error!("Connection reset") - } - util::ConnectionResult::Result(r) => { - if r.log_err().is_some() { - context_editor - .update(cx, |_, cx| cx.notify()) - .ok(); - } - } - } - }) - .detach() - } - })), - ) - .into_any_element(), - ) - } else if let Some(configuration_error) = - model_registry.configuration_error(model_registry.default_model(), cx) - { - Some( - h_flex() - .px_3() - .py_2() - .border_b_1() - .border_color(cx.theme().colors().border_variant) - .bg(cx.theme().colors().editor_background) - .justify_between() - .child( - h_flex() - .gap_3() - .child( - Icon::new(IconName::Warning) - .size(IconSize::Small) - .color(Color::Warning), - ) - .child(Label::new(configuration_error.to_string())), - ) - .child( - Button::new("open-configuration", "Configure Providers") - .size(ButtonSize::Compact) - .icon(Some(IconName::SlidersVertical)) - .icon_size(IconSize::Small) - .icon_position(IconPosition::Start) - .style(ButtonStyle::Filled) - .on_click({ - let focus_handle = self.focus_handle(cx).clone(); - move |_event, window, cx| { - focus_handle.dispatch_action( - &zed_actions::agent::OpenConfiguration, - window, - cx, - ); - } - }), - ) - .into_any_element(), - ) - } else { - None - } - } - fn render_send_button(&self, window: &mut Window, cx: &mut Context) -> impl IntoElement { let focus_handle = self.focus_handle(cx).clone(); @@ -2128,12 +2024,13 @@ impl TextThreadEditor { .map(|default| default.model); let model_name = match active_model { Some(model) => model.name().0, - None => SharedString::from("No model selected"), + None => SharedString::from("Select Model"), }; let active_provider = LanguageModelRegistry::read_global(cx) .default_model() .map(|default| default.provider); + let provider_icon = match active_provider { Some(provider) => provider.icon(), None => IconName::Ai, @@ -2581,20 +2478,7 @@ impl EventEmitter for TextThreadEditor {} impl Render for TextThreadEditor { fn render(&mut self, window: &mut Window, cx: &mut Context) -> impl IntoElement { - let provider = LanguageModelRegistry::read_global(cx) - .default_model() - .map(|default| default.provider); - - let accept_terms = if self.show_accept_terms { - provider.as_ref().and_then(|provider| { - provider.render_accept_terms(LanguageModelProviderTosView::PromptEditorPopup, cx) - }) - } else { - None - }; - let language_model_selector = self.language_model_selector_menu_handle.clone(); - let burn_mode_toggle = self.render_burn_mode_toggle(cx); v_flex() .key_context("ContextEditor") @@ -2611,28 +2495,12 @@ impl Render for TextThreadEditor { language_model_selector.toggle(window, cx); }) .size_full() - .children(self.render_notice(cx)) .child( div() .flex_grow() .bg(cx.theme().colors().editor_background) .child(self.editor.clone()), ) - .when_some(accept_terms, |this, element| { - this.child( - div() - .absolute() - .right_3() - .bottom_12() - .max_w_96() - .py_2() - .px_3() - .elevation_2(cx) - .bg(cx.theme().colors().surface_background) - .occlude() - .child(element), - ) - }) .children(self.render_last_error(cx)) .child( h_flex() @@ -2649,7 +2517,7 @@ impl Render for TextThreadEditor { h_flex() .gap_0p5() .child(self.render_inject_context_menu(cx)) - .when_some(burn_mode_toggle, |this, element| this.child(element)), + .children(self.render_burn_mode_toggle(cx)), ) .child( h_flex() diff --git a/crates/agent_ui/src/ui.rs b/crates/agent_ui/src/ui.rs index 43cd0f5e89..6398f64abb 100644 --- a/crates/agent_ui/src/ui.rs +++ b/crates/agent_ui/src/ui.rs @@ -1,6 +1,7 @@ mod agent_notification; mod burn_mode_tooltip; mod context_pill; +mod end_trial_upsell; mod onboarding_modal; pub mod preview; mod upsell; @@ -8,4 +9,5 @@ mod upsell; pub use agent_notification::*; pub use burn_mode_tooltip::*; pub use context_pill::*; +pub use end_trial_upsell::*; pub use onboarding_modal::*; diff --git a/crates/agent_ui/src/ui/end_trial_upsell.rs b/crates/agent_ui/src/ui/end_trial_upsell.rs new file mode 100644 index 0000000000..9c2dd98d20 --- /dev/null +++ b/crates/agent_ui/src/ui/end_trial_upsell.rs @@ -0,0 +1,112 @@ +use std::sync::Arc; + +use ai_onboarding::{AgentPanelOnboardingCard, BulletItem}; +use client::zed_urls; +use gpui::{AnyElement, App, IntoElement, RenderOnce, Window}; +use ui::{Divider, List, prelude::*}; + +#[derive(IntoElement, RegisterComponent)] +pub struct EndTrialUpsell { + dismiss_upsell: Arc, +} + +impl EndTrialUpsell { + pub fn new(dismiss_upsell: Arc) -> Self { + Self { dismiss_upsell } + } +} + +impl RenderOnce for EndTrialUpsell { + fn render(self, _window: &mut Window, cx: &mut App) -> impl IntoElement { + let pro_section = v_flex() + .gap_1() + .child( + h_flex() + .gap_2() + .child( + Label::new("Pro") + .size(LabelSize::Small) + .color(Color::Accent) + .buffer_font(cx), + ) + .child(Divider::horizontal()), + ) + .child( + List::new() + .child(BulletItem::new("500 prompts per month with Claude models")) + .child(BulletItem::new("Unlimited edit predictions")), + ) + .child( + Button::new("cta-button", "Upgrade to Zed Pro") + .full_width() + .style(ButtonStyle::Tinted(ui::TintColor::Accent)) + .on_click(|_, _, cx| cx.open_url(&zed_urls::upgrade_to_zed_pro_url(cx))), + ); + + let free_section = v_flex() + .mt_1p5() + .gap_1() + .child( + h_flex() + .gap_2() + .child( + Label::new("Free") + .size(LabelSize::Small) + .color(Color::Muted) + .buffer_font(cx), + ) + .child(Divider::horizontal()), + ) + .child( + List::new() + .child(BulletItem::new( + "50 prompts per month with the Claude models", + )) + .child(BulletItem::new( + "2000 accepted edit predictions using our open-source Zeta model", + )), + ) + .child( + Button::new("dismiss-button", "Stay on Free") + .full_width() + .style(ButtonStyle::Outlined) + .on_click({ + let callback = self.dismiss_upsell.clone(); + move |_, window, cx| callback(window, cx) + }), + ); + + AgentPanelOnboardingCard::new() + .child(Headline::new("Your Zed Pro trial has expired.")) + .child( + Label::new("You've been automatically reset to the Free plan.") + .size(LabelSize::Small) + .color(Color::Muted) + .mb_1(), + ) + .child(pro_section) + .child(free_section) + } +} + +impl Component for EndTrialUpsell { + fn scope() -> ComponentScope { + ComponentScope::Agent + } + + fn sort_name() -> &'static str { + "AgentEndTrialUpsell" + } + + fn preview(_window: &mut Window, _cx: &mut App) -> Option { + Some( + v_flex() + .p_4() + .gap_4() + .child(EndTrialUpsell { + dismiss_upsell: Arc::new(|_, _| {}), + }) + .into_any_element(), + ) + } +} diff --git a/crates/ai_onboarding/Cargo.toml b/crates/ai_onboarding/Cargo.toml new file mode 100644 index 0000000000..e9208a7248 --- /dev/null +++ b/crates/ai_onboarding/Cargo.toml @@ -0,0 +1,27 @@ +[package] +name = "ai_onboarding" +version = "0.1.0" +edition.workspace = true +publish.workspace = true +license = "GPL-3.0-or-later" + +[lints] +workspace = true + +[lib] +path = "src/ai_onboarding.rs" + +[features] +default = [] + +[dependencies] +client.workspace = true +component.workspace = true +gpui.workspace = true +language_model.workspace = true +proto.workspace = true +serde.workspace = true +smallvec.workspace = true +ui.workspace = true +workspace-hack.workspace = true +zed_actions.workspace = true diff --git a/crates/ai_onboarding/LICENSE-GPL b/crates/ai_onboarding/LICENSE-GPL new file mode 120000 index 0000000000..89e542f750 --- /dev/null +++ b/crates/ai_onboarding/LICENSE-GPL @@ -0,0 +1 @@ +../../LICENSE-GPL \ No newline at end of file diff --git a/crates/ai_onboarding/src/agent_panel_onboarding_card.rs b/crates/ai_onboarding/src/agent_panel_onboarding_card.rs new file mode 100644 index 0000000000..8ec9ccfe22 --- /dev/null +++ b/crates/ai_onboarding/src/agent_panel_onboarding_card.rs @@ -0,0 +1,81 @@ +use gpui::{AnyElement, IntoElement, ParentElement, linear_color_stop, linear_gradient}; +use smallvec::SmallVec; +use ui::{Vector, VectorName, prelude::*}; + +#[derive(IntoElement)] +pub struct AgentPanelOnboardingCard { + children: SmallVec<[AnyElement; 2]>, +} + +impl AgentPanelOnboardingCard { + pub fn new() -> Self { + Self { + children: SmallVec::new(), + } + } +} + +impl ParentElement for AgentPanelOnboardingCard { + fn extend(&mut self, elements: impl IntoIterator) { + self.children.extend(elements) + } +} + +impl RenderOnce for AgentPanelOnboardingCard { + fn render(self, _window: &mut Window, cx: &mut App) -> impl IntoElement { + div() + .m_4() + .p(px(3.)) + .elevation_2(cx) + .rounded_lg() + .bg(cx.theme().colors().background.alpha(0.5)) + .child( + v_flex() + .relative() + .size_full() + .px_4() + .py_3() + .gap_2() + .border_1() + .rounded(px(5.)) + .border_color(cx.theme().colors().text.alpha(0.1)) + .overflow_hidden() + .bg(cx.theme().colors().panel_background) + .child( + div() + .opacity(0.5) + .absolute() + .top(px(-8.0)) + .right_0() + .w(px(400.)) + .h(px(92.)) + .child( + Vector::new( + VectorName::AiGrid, + rems_from_px(400.), + rems_from_px(92.), + ) + .color(Color::Custom(cx.theme().colors().text.alpha(0.32))), + ), + ) + .child( + div() + .absolute() + .top_0() + .right_0() + .w(px(660.)) + .h(px(401.)) + .overflow_hidden() + .bg(linear_gradient( + 75., + linear_color_stop( + cx.theme().colors().panel_background.alpha(0.01), + 1.0, + ), + linear_color_stop(cx.theme().colors().panel_background, 0.45), + )), + ) + .children(self.children), + ) + } +} diff --git a/crates/ai_onboarding/src/agent_panel_onboarding_content.rs b/crates/ai_onboarding/src/agent_panel_onboarding_content.rs new file mode 100644 index 0000000000..f3f7d6c3d7 --- /dev/null +++ b/crates/ai_onboarding/src/agent_panel_onboarding_content.rs @@ -0,0 +1,145 @@ +use std::sync::Arc; + +use client::{Client, UserStore}; +use gpui::{Action, ClickEvent, Entity, IntoElement, ParentElement}; +use language_model::{LanguageModelRegistry, ZED_CLOUD_PROVIDER_ID}; +use ui::{Divider, List, prelude::*}; +use zed_actions::agent::{OpenConfiguration, ToggleModelSelector}; + +use crate::{AgentPanelOnboardingCard, BulletItem, ZedAiOnboarding}; + +pub struct AgentPanelOnboarding { + user_store: Entity, + client: Arc, + configured_providers: Vec<(IconName, SharedString)>, + continue_with_zed_ai: Arc, +} + +impl AgentPanelOnboarding { + pub fn new( + user_store: Entity, + client: Arc, + continue_with_zed_ai: impl Fn(&mut Window, &mut App) + 'static, + cx: &mut Context, + ) -> Self { + cx.subscribe( + &LanguageModelRegistry::global(cx), + |this: &mut Self, _registry, event: &language_model::Event, cx| match event { + language_model::Event::ProviderStateChanged + | language_model::Event::AddedProvider(_) + | language_model::Event::RemovedProvider(_) => { + this.configured_providers = Self::compute_available_providers(cx) + } + _ => {} + }, + ) + .detach(); + + Self { + user_store, + client, + configured_providers: Self::compute_available_providers(cx), + continue_with_zed_ai: Arc::new(continue_with_zed_ai), + } + } + + fn compute_available_providers(cx: &App) -> Vec<(IconName, SharedString)> { + LanguageModelRegistry::read_global(cx) + .providers() + .iter() + .filter(|provider| { + provider.is_authenticated(cx) && provider.id() != ZED_CLOUD_PROVIDER_ID + }) + .map(|provider| (provider.icon(), provider.name().0.clone())) + .collect() + } + + fn configure_providers(&mut self, _: &ClickEvent, window: &mut Window, cx: &mut Context) { + window.dispatch_action(OpenConfiguration.boxed_clone(), cx); + cx.notify(); + } + + fn render_api_keys_section(&mut self, cx: &mut Context) -> impl IntoElement { + let has_existing_providers = self.configured_providers.len() > 0; + let configure_provider_label = if has_existing_providers { + "Configure Other Provider" + } else { + "Configure Providers" + }; + + let content = if has_existing_providers { + List::new() + .child(BulletItem::new( + "Or start now using API keys from your environment for the following providers:" + )) + .child( + h_flex() + .px_5() + .gap_2() + .flex_wrap() + .children(self.configured_providers.iter().cloned().map(|(icon, name)| + h_flex() + .gap_1p5() + .child(Icon::new(icon).size(IconSize::Small).color(Color::Muted)) + .child(Label::new(name)) + )) + ) + .child(BulletItem::new( + "No need for any of the plans or even to sign in", + )) + } else { + List::new() + .child(BulletItem::new( + "You can also use AI in Zed by bringing your own API keys", + )) + .child(BulletItem::new( + "No need for any of the plans or even to sign in", + )) + }; + + v_flex() + .mt_2() + .gap_1() + .child( + h_flex() + .gap_2() + .child( + Label::new("API Keys") + .size(LabelSize::Small) + .color(Color::Muted) + .buffer_font(cx), + ) + .child(Divider::horizontal()), + ) + .child(content) + .when(has_existing_providers, |this| { + this.child( + Button::new("pick-model", "Choose Model") + .full_width() + .style(ButtonStyle::Outlined) + .on_click(|_event, window, cx| { + window.dispatch_action(ToggleModelSelector.boxed_clone(), cx) + }), + ) + }) + .child( + Button::new("configure-providers", configure_provider_label) + .full_width() + .style(ButtonStyle::Outlined) + .on_click(cx.listener(Self::configure_providers)), + ) + } +} + +impl Render for AgentPanelOnboarding { + fn render(&mut self, _window: &mut Window, cx: &mut Context) -> impl IntoElement { + AgentPanelOnboardingCard::new() + .child(ZedAiOnboarding::new( + self.client.clone(), + &self.user_store, + self.continue_with_zed_ai.clone(), + cx, + )) + .child(self.render_api_keys_section(cx)) + } +} diff --git a/crates/ai_onboarding/src/ai_onboarding.rs b/crates/ai_onboarding/src/ai_onboarding.rs new file mode 100644 index 0000000000..131d385e78 --- /dev/null +++ b/crates/ai_onboarding/src/ai_onboarding.rs @@ -0,0 +1,397 @@ +mod agent_panel_onboarding_card; +mod agent_panel_onboarding_content; +mod edit_prediction_onboarding_content; +mod young_account_banner; + +pub use agent_panel_onboarding_card::AgentPanelOnboardingCard; +pub use agent_panel_onboarding_content::AgentPanelOnboarding; +pub use edit_prediction_onboarding_content::EditPredictionOnboarding; +pub use young_account_banner::YoungAccountBanner; + +use std::sync::Arc; + +use client::{Client, UserStore, zed_urls}; +use gpui::{AnyElement, Entity, IntoElement, ParentElement, SharedString}; +use ui::{Divider, List, ListItem, RegisterComponent, TintColor, prelude::*}; + +pub struct BulletItem { + label: SharedString, +} + +impl BulletItem { + pub fn new(label: impl Into) -> Self { + Self { + label: label.into(), + } + } +} + +impl IntoElement for BulletItem { + type Element = AnyElement; + + fn into_element(self) -> Self::Element { + ListItem::new("list-item") + .selectable(false) + .start_slot( + Icon::new(IconName::Dash) + .size(IconSize::XSmall) + .color(Color::Hidden), + ) + .child(div().w_full().child(Label::new(self.label))) + .into_any_element() + } +} + +pub enum SignInStatus { + SignedIn, + SigningIn, + SignedOut, +} + +impl From for SignInStatus { + fn from(status: client::Status) -> Self { + if status.is_signing_in() { + Self::SigningIn + } else if status.is_signed_out() { + Self::SignedOut + } else { + Self::SignedIn + } + } +} + +#[derive(RegisterComponent, IntoElement)] +pub struct ZedAiOnboarding { + pub sign_in_status: SignInStatus, + pub has_accepted_terms_of_service: bool, + pub plan: Option, + pub account_too_young: bool, + pub continue_with_zed_ai: Arc, + pub sign_in: Arc, + pub accept_terms_of_service: Arc, +} + +impl ZedAiOnboarding { + pub fn new( + client: Arc, + user_store: &Entity, + continue_with_zed_ai: Arc, + cx: &mut App, + ) -> Self { + let store = user_store.read(cx); + let status = *client.status().borrow(); + Self { + sign_in_status: status.into(), + has_accepted_terms_of_service: store.current_user_has_accepted_terms().unwrap_or(false), + plan: store.current_plan(), + account_too_young: store.account_too_young(), + continue_with_zed_ai, + accept_terms_of_service: Arc::new({ + let store = user_store.clone(); + move |_window, cx| { + let task = store.update(cx, |store, cx| store.accept_terms_of_service(cx)); + task.detach_and_log_err(cx); + } + }), + sign_in: Arc::new(move |_window, cx| { + cx.spawn({ + let client = client.clone(); + async move |cx| { + client.authenticate_and_connect(true, cx).await; + } + }) + .detach(); + }), + } + } + + fn render_free_plan_section(&self, cx: &mut App) -> impl IntoElement { + v_flex() + .mt_2() + .gap_1() + .when(self.account_too_young, |this| this.opacity(0.4)) + .child( + h_flex() + .gap_2() + .child( + Label::new("Free") + .size(LabelSize::Small) + .color(Color::Muted) + .buffer_font(cx), + ) + .child(Divider::horizontal()), + ) + .child( + List::new() + .child(BulletItem::new( + "50 prompts per month with the Claude models", + )) + .child(BulletItem::new( + "2000 accepted edit predictions using our open-source Zeta model", + )), + ) + .child( + Button::new("continue", "Continue Free") + .disabled(self.account_too_young) + .full_width() + .style(ButtonStyle::Outlined) + .on_click({ + let callback = self.continue_with_zed_ai.clone(); + move |_, window, cx| callback(window, cx) + }), + ) + } + + fn render_pro_plan_section(&self, cx: &mut App) -> impl IntoElement { + let (button_label, button_url) = if self.account_too_young { + ("Start with Pro", zed_urls::upgrade_to_zed_pro_url(cx)) + } else { + ("Start Pro Trial", zed_urls::account_url(cx)) + }; + + v_flex() + .mt_2() + .gap_1() + .child( + h_flex() + .gap_2() + .child( + Label::new("Pro") + .size(LabelSize::Small) + .color(Color::Accent) + .buffer_font(cx), + ) + .child(Divider::horizontal()), + ) + .child( + List::new() + .child(BulletItem::new("500 prompts per month with Claude models")) + .child(BulletItem::new("Unlimited edit predictions")) + .when(!self.account_too_young, |this| { + this.child(BulletItem::new( + "Try it out for 14 days with no charge, no credit card required", + )) + }), + ) + .child( + Button::new("pro", button_label) + .full_width() + .style(ButtonStyle::Tinted(ui::TintColor::Accent)) + .on_click(move |_, _window, cx| cx.open_url(&button_url)), + ) + } + + fn render_accept_terms_of_service(&self) -> Div { + v_flex() + .w_full() + .gap_1() + .child(Headline::new("Before starting…")) + .child(Label::new( + "Make sure you have read and accepted Zed AI's terms of service.", + )) + .child( + Button::new("terms_of_service", "View and Read the Terms of Service") + .full_width() + .style(ButtonStyle::Outlined) + .icon(IconName::ArrowUpRight) + .icon_color(Color::Muted) + .icon_size(IconSize::XSmall) + .on_click(move |_, _window, cx| { + cx.open_url("https://zed.dev/terms-of-service") + }), + ) + .child( + Button::new("accept_terms", "I've read it and accept it") + .full_width() + .style(ButtonStyle::Tinted(TintColor::Accent)) + .on_click({ + let callback = self.accept_terms_of_service.clone(); + move |_, window, cx| (callback)(window, cx) + }), + ) + } + + fn render_sign_in_disclaimer(&self, _cx: &mut App) -> Div { + const SIGN_IN_DISCLAIMER: &str = + "To start using AI in Zed with our hosted models, sign in and subscribe to a plan."; + let signing_in = matches!(self.sign_in_status, SignInStatus::SigningIn); + + v_flex() + .gap_2() + .child(Headline::new("Welcome to Zed AI")) + .child(div().w_full().child(Label::new(SIGN_IN_DISCLAIMER))) + .child( + Button::new("sign_in", "Sign In with GitHub") + .icon(IconName::Github) + .icon_position(IconPosition::Start) + .icon_size(IconSize::Small) + .icon_color(Color::Muted) + .disabled(signing_in) + .full_width() + .style(ButtonStyle::Tinted(ui::TintColor::Accent)) + .on_click({ + let callback = self.sign_in.clone(); + move |_, window, cx| callback(window, cx) + }), + ) + } + + fn render_free_plan_onboarding(&self, cx: &mut App) -> Div { + const PLANS_DESCRIPTION: &str = "Choose how you want to start."; + let young_account_banner = YoungAccountBanner; + + v_flex() + .child(Headline::new("Welcome to Zed AI")) + .child( + Label::new(PLANS_DESCRIPTION) + .size(LabelSize::Small) + .color(Color::Muted) + .mt_1() + .mb_3(), + ) + .when(self.account_too_young, |this| { + this.child(young_account_banner) + }) + .child(self.render_free_plan_section(cx)) + .child(self.render_pro_plan_section(cx)) + } + + fn render_trial_onboarding(&self, _cx: &mut App) -> Div { + v_flex() + .child(Headline::new("Welcome to the trial of Zed Pro")) + .child( + Label::new("Here's what you get for the next 14 days:") + .size(LabelSize::Small) + .color(Color::Muted) + .mt_1(), + ) + .child( + List::new() + .child(BulletItem::new("150 prompts with Claude models")) + .child(BulletItem::new( + "Unlimited edit predictions with Zeta, our open-source model", + )), + ) + .child( + Button::new("trial", "Start Trial") + .full_width() + .style(ButtonStyle::Outlined) + .on_click({ + let callback = self.continue_with_zed_ai.clone(); + move |_, window, cx| callback(window, cx) + }), + ) + } + + fn render_pro_plan_onboarding(&self, _cx: &mut App) -> Div { + v_flex() + .child(Headline::new("Welcome to Zed Pro")) + .child( + Label::new("Here's what you get:") + .size(LabelSize::Small) + .color(Color::Muted) + .mt_1(), + ) + .child( + List::new() + .child(BulletItem::new("500 prompts with Claude models")) + .child(BulletItem::new("Unlimited edit predictions")), + ) + .child( + Button::new("pro", "Continue with Zed Pro") + .full_width() + .style(ButtonStyle::Outlined) + .on_click({ + let callback = self.continue_with_zed_ai.clone(); + move |_, window, cx| callback(window, cx) + }), + ) + } +} + +impl RenderOnce for ZedAiOnboarding { + fn render(self, _window: &mut ui::Window, cx: &mut App) -> impl IntoElement { + if matches!(self.sign_in_status, SignInStatus::SignedIn) { + if self.has_accepted_terms_of_service { + match self.plan { + None | Some(proto::Plan::Free) => self.render_free_plan_onboarding(cx), + Some(proto::Plan::ZedProTrial) => self.render_trial_onboarding(cx), + Some(proto::Plan::ZedPro) => self.render_pro_plan_onboarding(cx), + } + } else { + self.render_accept_terms_of_service() + } + } else { + self.render_sign_in_disclaimer(cx) + } + } +} + +impl Component for ZedAiOnboarding { + fn scope() -> ComponentScope { + ComponentScope::Agent + } + + fn preview(_window: &mut Window, _cx: &mut App) -> Option { + fn onboarding( + sign_in_status: SignInStatus, + has_accepted_terms_of_service: bool, + plan: Option, + account_too_young: bool, + ) -> AnyElement { + ZedAiOnboarding { + sign_in_status, + has_accepted_terms_of_service, + plan, + account_too_young, + continue_with_zed_ai: Arc::new(|_, _| {}), + sign_in: Arc::new(|_, _| {}), + accept_terms_of_service: Arc::new(|_, _| {}), + } + .into_any_element() + } + + Some( + v_flex() + .p_4() + .gap_4() + .children(vec![ + single_example( + "Not Signed-in", + onboarding(SignInStatus::SignedOut, false, None, false), + ), + single_example( + "Not Accepted ToS", + onboarding(SignInStatus::SignedIn, false, None, false), + ), + single_example( + "Account too young", + onboarding(SignInStatus::SignedIn, false, None, true), + ), + single_example( + "Free Plan", + onboarding(SignInStatus::SignedIn, true, Some(proto::Plan::Free), false), + ), + single_example( + "Pro Trial", + onboarding( + SignInStatus::SignedIn, + true, + Some(proto::Plan::ZedProTrial), + false, + ), + ), + single_example( + "Pro Plan", + onboarding( + SignInStatus::SignedIn, + true, + Some(proto::Plan::ZedPro), + false, + ), + ), + ]) + .into_any_element(), + ) + } +} diff --git a/crates/ai_onboarding/src/edit_prediction_onboarding_content.rs b/crates/ai_onboarding/src/edit_prediction_onboarding_content.rs new file mode 100644 index 0000000000..e883d8da8c --- /dev/null +++ b/crates/ai_onboarding/src/edit_prediction_onboarding_content.rs @@ -0,0 +1,73 @@ +use std::sync::Arc; + +use client::{Client, UserStore}; +use gpui::{Entity, IntoElement, ParentElement}; +use ui::prelude::*; + +use crate::ZedAiOnboarding; + +pub struct EditPredictionOnboarding { + user_store: Entity, + client: Arc, + copilot_is_configured: bool, + continue_with_zed_ai: Arc, + continue_with_copilot: Arc, +} + +impl EditPredictionOnboarding { + pub fn new( + user_store: Entity, + client: Arc, + copilot_is_configured: bool, + continue_with_zed_ai: Arc, + continue_with_copilot: Arc, + _cx: &mut Context, + ) -> Self { + Self { + user_store, + copilot_is_configured, + client, + continue_with_zed_ai, + continue_with_copilot, + } + } +} + +impl Render for EditPredictionOnboarding { + fn render(&mut self, _window: &mut Window, cx: &mut Context) -> impl IntoElement { + let github_copilot = v_flex() + .gap_1() + .child(Label::new(if self.copilot_is_configured { + "Alternatively, you can continue to use GitHub Copilot as that's already set up." + } else { + "Alternatively, you can use GitHub Copilot as your edit prediction provider." + })) + .child( + Button::new( + "configure-copilot", + if self.copilot_is_configured { + "Use Copilot" + } else { + "Configure Copilot" + }, + ) + .full_width() + .style(ButtonStyle::Outlined) + .on_click({ + let callback = self.continue_with_copilot.clone(); + move |_, window, cx| callback(window, cx) + }), + ); + + v_flex() + .gap_2() + .child(ZedAiOnboarding::new( + self.client.clone(), + &self.user_store, + self.continue_with_zed_ai.clone(), + cx, + )) + .child(ui::Divider::horizontal()) + .child(github_copilot) + } +} diff --git a/crates/ai_onboarding/src/young_account_banner.rs b/crates/ai_onboarding/src/young_account_banner.rs new file mode 100644 index 0000000000..f6e1446fd0 --- /dev/null +++ b/crates/ai_onboarding/src/young_account_banner.rs @@ -0,0 +1,21 @@ +use gpui::{IntoElement, ParentElement}; +use ui::{Banner, prelude::*}; + +#[derive(IntoElement)] +pub struct YoungAccountBanner; + +impl RenderOnce for YoungAccountBanner { + fn render(self, _window: &mut Window, cx: &mut App) -> impl IntoElement { + const YOUNG_ACCOUNT_DISCLAIMER: &str = "Given your GitHub account was created less than 30 days ago, we cannot put you in the Free plan or offer you a free trial of the Pro plan. We hope you'll understand, as this is unfortunately required to prevent abuse of our service. To continue, upgrade to Pro or use your own API keys for other providers."; + + let label = div() + .w_full() + .text_sm() + .text_color(cx.theme().colors().text_muted) + .child(YOUNG_ACCOUNT_DISCLAIMER); + + div() + .my_1() + .child(Banner::new().severity(ui::Severity::Warning).child(label)) + } +} diff --git a/crates/client/src/client.rs b/crates/client/src/client.rs index c4211f72c8..1be8ffdb55 100644 --- a/crates/client/src/client.rs +++ b/crates/client/src/client.rs @@ -301,6 +301,13 @@ impl Status { matches!(self, Self::Connected { .. }) } + pub fn is_signing_in(&self) -> bool { + matches!( + self, + Self::Authenticating | Self::Reauthenticating | Self::Connecting | Self::Reconnecting + ) + } + pub fn is_signed_out(&self) -> bool { matches!(self, Self::SignedOut | Self::UpgradeRequired) } diff --git a/crates/client/src/user.rs b/crates/client/src/user.rs index 61e3064eb4..f5213fbcb6 100644 --- a/crates/client/src/user.rs +++ b/crates/client/src/user.rs @@ -764,6 +764,16 @@ impl UserStore { } pub fn current_plan(&self) -> Option { + #[cfg(debug_assertions)] + if let Ok(plan) = std::env::var("ZED_SIMULATE_ZED_PRO_PLAN").as_ref() { + return match plan.as_str() { + "free" => Some(proto::Plan::Free), + "trial" => Some(proto::Plan::ZedProTrial), + "pro" => Some(proto::Plan::ZedPro), + _ => None, + }; + } + self.current_plan } diff --git a/crates/client/src/zed_urls.rs b/crates/client/src/zed_urls.rs index bfdae468fb..442875b451 100644 --- a/crates/client/src/zed_urls.rs +++ b/crates/client/src/zed_urls.rs @@ -17,3 +17,8 @@ fn server_url(cx: &App) -> &str { pub fn account_url(cx: &App) -> String { format!("{server_url}/account", server_url = server_url(cx)) } + +/// Returns the URL to the upgrade page on zed.dev. +pub fn upgrade_to_zed_pro_url(cx: &App) -> String { + format!("{server_url}/account/upgrade", server_url = server_url(cx)) +} diff --git a/crates/copilot/src/copilot.rs b/crates/copilot/src/copilot.rs index e4370d2e67..1966d1a389 100644 --- a/crates/copilot/src/copilot.rs +++ b/crates/copilot/src/copilot.rs @@ -209,8 +209,14 @@ impl Status { matches!(self, Status::Authorized) } - pub fn is_disabled(&self) -> bool { - matches!(self, Status::Disabled) + pub fn is_configured(&self) -> bool { + matches!( + self, + Status::Starting { .. } + | Status::Error(_) + | Status::SigningIn { .. } + | Status::Authorized + ) } } diff --git a/crates/inline_completion_button/src/inline_completion_button.rs b/crates/inline_completion_button/src/inline_completion_button.rs index 7e6b77b93d..8a8eacdc6a 100644 --- a/crates/inline_completion_button/src/inline_completion_button.rs +++ b/crates/inline_completion_button/src/inline_completion_button.rs @@ -46,6 +46,7 @@ actions!( ); const COPILOT_SETTINGS_URL: &str = "https://github.com/settings/copilot"; +const PRIVACY_DOCS: &str = "https://zed.dev/docs/ai/privacy-and-security"; struct CopilotErrorToast; @@ -193,13 +194,13 @@ impl Render for InlineCompletionButton { cx.open_url(activate_url.as_str()) }) .entry( - "Use Copilot", + "Use Zed AI", None, move |_, cx| { set_completion_provider( fs.clone(), cx, - EditPredictionProvider::Copilot, + EditPredictionProvider::Zed, ) }, ) @@ -239,22 +240,13 @@ impl Render for InlineCompletionButton { IconName::ZedPredictDisabled }; - let current_user_terms_accepted = - self.user_store.read(cx).current_user_has_accepted_terms(); - let has_subscription = self.user_store.read(cx).current_plan().is_some() - && self.user_store.read(cx).subscription_period().is_some(); - - if !has_subscription || !current_user_terms_accepted.unwrap_or(false) { - let signed_in = current_user_terms_accepted.is_some(); - let tooltip_meta = if signed_in { - if has_subscription { - "Read Terms of Service" - } else { - "Choose a Plan" - } - } else { - "Sign in to use" - }; + if zeta::should_show_upsell_modal(&self.user_store, cx) { + let tooltip_meta = + match self.user_store.read(cx).current_user_has_accepted_terms() { + Some(true) => "Choose a Plan", + Some(false) => "Accept the Terms of Service", + None => "Sign In", + }; return div().child( IconButton::new("zed-predict-pending-button", zeta_icon) @@ -403,15 +395,16 @@ impl InlineCompletionButton { ) -> Entity { let fs = self.fs.clone(); ContextMenu::build(window, cx, |menu, _, _| { - menu.entry("Sign In", None, copilot::initiate_sign_in) + menu.entry("Sign In to Copilot", None, copilot::initiate_sign_in) .entry("Disable Copilot", None, { let fs = fs.clone(); move |_window, cx| hide_copilot(fs.clone(), cx) }) - .entry("Use Supermaven", None, { + .separator() + .entry("Use Zed AI", None, { let fs = fs.clone(); move |_window, cx| { - set_completion_provider(fs.clone(), cx, EditPredictionProvider::Supermaven) + set_completion_provider(fs.clone(), cx, EditPredictionProvider::Zed) } }) }) @@ -518,7 +511,7 @@ impl InlineCompletionButton { ); } - menu = menu.separator().header("Privacy Settings"); + menu = menu.separator().header("Privacy"); if let Some(provider) = &self.edit_prediction_provider { let data_collection = provider.data_collection_state(cx); if data_collection.is_supported() { @@ -569,13 +562,15 @@ impl InlineCompletionButton { .child( Label::new(indoc!{ "Help us improve our open dataset model by sharing data from open source repositories. \ - Zed must detect a license file in your repo for this setting to take effect." + Zed must detect a license file in your repo for this setting to take effect. \ + Files with sensitive data and secrets are excluded by default." }) ) .child( h_flex() .items_start() .pt_2() + .pr_1() .flex_1() .gap_1p5() .border_t_1() @@ -635,6 +630,13 @@ impl InlineCompletionButton { .detach_and_log_err(cx); } }), + ).item( + ContextMenuEntry::new("View Documentation") + .icon(IconName::FileGeneric) + .icon_color(Color::Muted) + .handler(move |_, cx| { + cx.open_url(PRIVACY_DOCS); + }) ); if !self.editor_enabled.unwrap_or(true) { @@ -672,6 +674,13 @@ impl InlineCompletionButton { ) -> Entity { ContextMenu::build(window, cx, |menu, window, cx| { self.build_language_settings_menu(menu, window, cx) + .separator() + .entry("Use Zed AI instead", None, { + let fs = self.fs.clone(); + move |_window, cx| { + set_completion_provider(fs.clone(), cx, EditPredictionProvider::Zed) + } + }) .separator() .link( "Go to Copilot Settings", @@ -750,44 +759,24 @@ impl InlineCompletionButton { menu = menu .custom_entry( |_window, _cx| { - h_flex() - .gap_1() - .child( - Icon::new(IconName::Warning) - .size(IconSize::Small) - .color(Color::Warning), - ) - .child( - Label::new("Your GitHub account is less than 30 days old") - .size(LabelSize::Small) - .color(Color::Warning), - ) + Label::new("Your GitHub account is less than 30 days old.") + .size(LabelSize::Small) + .color(Color::Warning) .into_any_element() }, |_window, cx| cx.open_url(&zed_urls::account_url(cx)), ) - .entry( - "You need to upgrade to Zed Pro or contact us.", - None, - |_window, cx| cx.open_url(&zed_urls::account_url(cx)), - ) + .entry("Upgrade to Zed Pro or contact us.", None, |_window, cx| { + cx.open_url(&zed_urls::account_url(cx)) + }) .separator(); } else if self.user_store.read(cx).has_overdue_invoices() { menu = menu .custom_entry( |_window, _cx| { - h_flex() - .gap_1() - .child( - Icon::new(IconName::Warning) - .size(IconSize::Small) - .color(Color::Warning), - ) - .child( - Label::new("You have an outstanding invoice") - .size(LabelSize::Small) - .color(Color::Warning), - ) + Label::new("You have an outstanding invoice") + .size(LabelSize::Small) + .color(Color::Warning) .into_any_element() }, |_window, cx| { diff --git a/crates/language_model/src/language_model.rs b/crates/language_model/src/language_model.rs index 6bd33fcdf5..72455b3821 100644 --- a/crates/language_model/src/language_model.rs +++ b/crates/language_model/src/language_model.rs @@ -654,7 +654,7 @@ pub enum LanguageModelProviderTosView { ThreadEmptyState, /// When there are no past interactions in the Agent Panel. ThreadFreshStart, - PromptEditorPopup, + TextThreadPopup, Configuration, } diff --git a/crates/language_models/Cargo.toml b/crates/language_models/Cargo.toml index 5d158e84f4..ed38ac7660 100644 --- a/crates/language_models/Cargo.toml +++ b/crates/language_models/Cargo.toml @@ -12,6 +12,7 @@ workspace = true path = "src/language_models.rs" [dependencies] +ai_onboarding.workspace = true anthropic = { workspace = true, features = ["schemars"] } anyhow.workspace = true aws-config = { workspace = true, features = ["behavior-version-latest"] } diff --git a/crates/language_models/src/provider/cloud.rs b/crates/language_models/src/provider/cloud.rs index 6aea576258..736107570b 100644 --- a/crates/language_models/src/provider/cloud.rs +++ b/crates/language_models/src/provider/cloud.rs @@ -1,3 +1,4 @@ +use ai_onboarding::YoungAccountBanner; use anthropic::AnthropicModelMode; use anyhow::{Context as _, Result, anyhow}; use chrono::{DateTime, Utc}; @@ -500,7 +501,7 @@ fn render_accept_terms( ) .child({ match view_kind { - LanguageModelProviderTosView::PromptEditorPopup => { + LanguageModelProviderTosView::TextThreadPopup => { button_container.w_full().justify_end() } LanguageModelProviderTosView::Configuration => { @@ -1126,6 +1127,7 @@ struct ZedAiConfiguration { subscription_period: Option<(DateTime, DateTime)>, eligible_for_trial: bool, has_accepted_terms_of_service: bool, + account_too_young: bool, accept_terms_of_service_in_progress: bool, accept_terms_of_service_callback: Arc, sign_in_callback: Arc, @@ -1133,18 +1135,18 @@ struct ZedAiConfiguration { impl RenderOnce for ZedAiConfiguration { fn render(self, _window: &mut Window, _cx: &mut App) -> impl IntoElement { - const ZED_PRICING_URL: &str = "https://zed.dev/pricing"; + let young_account_banner = YoungAccountBanner; let is_pro = self.plan == Some(proto::Plan::ZedPro); let subscription_text = match (self.plan, self.subscription_period) { (Some(proto::Plan::ZedPro), Some(_)) => { - "You have access to Zed's hosted LLMs through your Zed Pro subscription." + "You have access to Zed's hosted LLMs through your Pro subscription." } (Some(proto::Plan::ZedProTrial), Some(_)) => { - "You have access to Zed's hosted LLMs through your Zed Pro trial." + "You have access to Zed's hosted LLMs through your Pro trial." } (Some(proto::Plan::Free), Some(_)) => { - "You have basic access to Zed's hosted LLMs through your Zed Free subscription." + "You have basic access to Zed's hosted LLMs through the Free plan." } _ => { if self.eligible_for_trial { @@ -1154,68 +1156,76 @@ impl RenderOnce for ZedAiConfiguration { } } }; + let manage_subscription_buttons = if is_pro { - h_flex().child( - Button::new("manage_settings", "Manage Subscription") - .style(ButtonStyle::Tinted(TintColor::Accent)) - .on_click(|_, _, cx| cx.open_url(&zed_urls::account_url(cx))), - ) + Button::new("manage_settings", "Manage Subscription") + .style(ButtonStyle::Tinted(TintColor::Accent)) + .on_click(|_, _, cx| cx.open_url(&zed_urls::account_url(cx))) + .into_any_element() + } else if self.plan.is_none() || self.eligible_for_trial { + Button::new("start_trial", "Start 14-day Free Pro Trial") + .style(ui::ButtonStyle::Tinted(ui::TintColor::Accent)) + .full_width() + .on_click(|_, _, cx| cx.open_url(&zed_urls::account_url(cx))) + .into_any_element() } else { - h_flex() - .gap_2() - .child( - Button::new("learn_more", "Learn more") - .style(ButtonStyle::Subtle) - .on_click(|_, _, cx| cx.open_url(ZED_PRICING_URL)), - ) - .child( - Button::new( - "upgrade", - if self.plan.is_none() && self.eligible_for_trial { - "Start Trial" - } else { - "Upgrade" - }, - ) - .style(ButtonStyle::Subtle) - .color(Color::Accent) - .on_click(|_, _, cx| cx.open_url(&zed_urls::account_url(cx))), - ) + Button::new("upgrade", "Upgrade to Pro") + .style(ui::ButtonStyle::Tinted(ui::TintColor::Accent)) + .full_width() + .on_click(|_, _, cx| cx.open_url(&zed_urls::upgrade_to_zed_pro_url(cx))) + .into_any_element() }; - if self.is_connected { - v_flex() - .gap_3() - .w_full() - .when(!self.has_accepted_terms_of_service, |this| { - this.child(render_accept_terms( - LanguageModelProviderTosView::Configuration, - self.accept_terms_of_service_in_progress, - { - let callback = self.accept_terms_of_service_callback.clone(); - move |window, cx| (callback)(window, cx) - }, - )) - }) - .when(self.has_accepted_terms_of_service, |this| { - this.child(subscription_text) - .child(manage_subscription_buttons) - }) - } else { - v_flex() + if !self.is_connected { + return v_flex() .gap_2() - .child(Label::new("Use Zed AI to access hosted language models.")) + .child(Label::new("Sign in to have access to Zed's complete agentic experience with hosted models.")) .child( - Button::new("sign_in", "Sign In") + Button::new("sign_in", "Sign In to use Zed AI") .icon_color(Color::Muted) .icon(IconName::Github) + .icon_size(IconSize::Small) .icon_position(IconPosition::Start) + .full_width() .on_click({ let callback = self.sign_in_callback.clone(); move |_, window, cx| (callback)(window, cx) }), - ) + ); } + + v_flex() + .gap_2() + .w_full() + .when(!self.has_accepted_terms_of_service, |this| { + this.child(render_accept_terms( + LanguageModelProviderTosView::Configuration, + self.accept_terms_of_service_in_progress, + { + let callback = self.accept_terms_of_service_callback.clone(); + move |window, cx| (callback)(window, cx) + }, + )) + }) + .map(|this| { + if self.has_accepted_terms_of_service && self.account_too_young { + this.child(young_account_banner).child( + Button::new("upgrade", "Upgrade to Pro") + .style(ui::ButtonStyle::Tinted(ui::TintColor::Accent)) + .full_width() + .on_click(|_, _, cx| { + cx.open_url(&zed_urls::upgrade_to_zed_pro_url(cx)) + }), + ) + } else if self.has_accepted_terms_of_service { + this.text_sm() + .child(subscription_text) + .child(manage_subscription_buttons) + } else { + this + } + }) + .when(self.has_accepted_terms_of_service, |this| this) } } @@ -1264,6 +1274,7 @@ impl Render for ConfigurationView { subscription_period: user_store.subscription_period(), eligible_for_trial: user_store.trial_started_at().is_none(), has_accepted_terms_of_service: state.has_accepted_terms_of_service(cx), + account_too_young: user_store.account_too_young(), accept_terms_of_service_in_progress: state.accept_terms_of_service_task.is_some(), accept_terms_of_service_callback: self.accept_terms_of_service_callback.clone(), sign_in_callback: self.sign_in_callback.clone(), @@ -1281,6 +1292,7 @@ impl Component for ZedAiConfiguration { is_connected: bool, plan: Option, eligible_for_trial: bool, + account_too_young: bool, has_accepted_terms_of_service: bool, ) -> AnyElement { ZedAiConfiguration { @@ -1291,6 +1303,7 @@ impl Component for ZedAiConfiguration { .then(|| (Utc::now(), Utc::now() + chrono::Duration::days(7))), eligible_for_trial, has_accepted_terms_of_service, + account_too_young, accept_terms_of_service_in_progress: false, accept_terms_of_service_callback: Arc::new(|_, _| {}), sign_in_callback: Arc::new(|_, _| {}), @@ -1303,30 +1316,33 @@ impl Component for ZedAiConfiguration { .p_4() .gap_4() .children(vec![ - single_example("Not connected", configuration(false, None, false, true)), + single_example( + "Not connected", + configuration(false, None, false, false, true), + ), single_example( "Accept Terms of Service", - configuration(true, None, true, false), + configuration(true, None, true, false, false), ), single_example( "No Plan - Not eligible for trial", - configuration(true, None, false, true), + configuration(true, None, false, false, true), ), single_example( "No Plan - Eligible for trial", - configuration(true, None, true, true), + configuration(true, None, true, false, true), ), single_example( "Free Plan", - configuration(true, Some(proto::Plan::Free), true, true), + configuration(true, Some(proto::Plan::Free), true, false, true), ), single_example( "Zed Pro Trial Plan", - configuration(true, Some(proto::Plan::ZedProTrial), true, true), + configuration(true, Some(proto::Plan::ZedProTrial), true, false, true), ), single_example( "Zed Pro Plan", - configuration(true, Some(proto::Plan::ZedPro), true, true), + configuration(true, Some(proto::Plan::ZedPro), true, false, true), ), ]) .into_any_element(), diff --git a/crates/title_bar/src/title_bar.rs b/crates/title_bar/src/title_bar.rs index 977b5c3ecd..c4fdb16f4f 100644 --- a/crates/title_bar/src/title_bar.rs +++ b/crates/title_bar/src/title_bar.rs @@ -20,7 +20,7 @@ use crate::application_menu::{ use auto_update::AutoUpdateStatus; use call::ActiveCall; -use client::{Client, UserStore}; +use client::{Client, UserStore, zed_urls}; use gpui::{ Action, AnyElement, App, Context, Corner, Element, Entity, Focusable, InteractiveElement, IntoElement, MouseButton, ParentElement, Render, StatefulInteractiveElement, Styled, @@ -656,8 +656,9 @@ impl TitleBar { let user_login = user.github_login.clone(); let (plan_name, label_color, bg_color) = match plan { - None => ("None", Color::Default, free_chip_bg), - Some(proto::Plan::Free) => ("Free", Color::Default, free_chip_bg), + None | Some(proto::Plan::Free) => { + ("Free", Color::Default, free_chip_bg) + } Some(proto::Plan::ZedProTrial) => { ("Pro Trial", Color::Accent, pro_chip_bg) } @@ -680,7 +681,7 @@ impl TitleBar { .into_any_element() }, move |_, cx| { - cx.open_url("https://zed.dev/account"); + cx.open_url(&zed_urls::account_url(cx)); }, ) .separator() diff --git a/crates/ui/src/components/button/button_like.rs b/crates/ui/src/components/button/button_like.rs index a0158b2fe7..135ecdfe62 100644 --- a/crates/ui/src/components/button/button_like.rs +++ b/crates/ui/src/components/button/button_like.rs @@ -126,6 +126,10 @@ pub enum ButtonStyle { /// coloring like an error or success button. Tinted(TintColor), + /// Usually used as a secondary action that should have more emphasis than + /// a fully transparent button. + Outlined, + /// The default button style, used for most buttons. Has a transparent background, /// but has a background color to indicate states like hover and active. #[default] @@ -180,6 +184,12 @@ impl ButtonStyle { icon_color: Color::Default.color(cx), }, ButtonStyle::Tinted(tint) => tint.button_like_style(cx), + ButtonStyle::Outlined => ButtonLikeStyles { + background: element_bg_from_elevation(elevation, cx), + border_color: cx.theme().colors().border_variant, + label_color: Color::Default.color(cx), + icon_color: Color::Default.color(cx), + }, ButtonStyle::Subtle => ButtonLikeStyles { background: cx.theme().colors().ghost_element_background, border_color: transparent_black(), @@ -219,6 +229,12 @@ impl ButtonStyle { styles.background = theme.darken(styles.background, 0.05, 0.2); styles } + ButtonStyle::Outlined => ButtonLikeStyles { + background: cx.theme().colors().ghost_element_hover, + border_color: cx.theme().colors().border, + label_color: Color::Default.color(cx), + icon_color: Color::Default.color(cx), + }, ButtonStyle::Subtle => ButtonLikeStyles { background: cx.theme().colors().ghost_element_hover, border_color: transparent_black(), @@ -251,6 +267,12 @@ impl ButtonStyle { label_color: Color::Default.color(cx), icon_color: Color::Default.color(cx), }, + ButtonStyle::Outlined => ButtonLikeStyles { + background: cx.theme().colors().element_active, + border_color: cx.theme().colors().border_variant, + label_color: Color::Default.color(cx), + icon_color: Color::Default.color(cx), + }, ButtonStyle::Transparent => ButtonLikeStyles { background: transparent_black(), border_color: transparent_black(), @@ -278,6 +300,12 @@ impl ButtonStyle { label_color: Color::Default.color(cx), icon_color: Color::Default.color(cx), }, + ButtonStyle::Outlined => ButtonLikeStyles { + background: cx.theme().colors().ghost_element_background, + border_color: cx.theme().colors().border, + label_color: Color::Default.color(cx), + icon_color: Color::Default.color(cx), + }, ButtonStyle::Transparent => ButtonLikeStyles { background: transparent_black(), border_color: cx.theme().colors().border_focused, @@ -308,6 +336,12 @@ impl ButtonStyle { label_color: Color::Disabled.color(cx), icon_color: Color::Disabled.color(cx), }, + ButtonStyle::Outlined => ButtonLikeStyles { + background: cx.theme().colors().element_disabled, + border_color: cx.theme().colors().border_disabled, + label_color: Color::Default.color(cx), + icon_color: Color::Default.color(cx), + }, ButtonStyle::Transparent => ButtonLikeStyles { background: transparent_black(), border_color: transparent_black(), @@ -525,6 +559,13 @@ impl RenderOnce for ButtonLike { .when_some(self.width, |this, width| { this.w(width).justify_center().text_center() }) + .when( + match self.style { + ButtonStyle::Outlined => true, + _ => false, + }, + |this| this.border_1(), + ) .when_some(self.rounding, |this, rounding| match rounding { ButtonLikeRounding::All => this.rounded_sm(), ButtonLikeRounding::Left => this.rounded_l_sm(), @@ -538,6 +579,7 @@ impl RenderOnce for ButtonLike { } ButtonSize::None => this, }) + .border_color(style.enabled(self.layer, cx).border_color) .bg(style.enabled(self.layer, cx).background) .when(self.disabled, |this| { if self.cursor_style == CursorStyle::PointingHand { diff --git a/crates/zed_actions/src/lib.rs b/crates/zed_actions/src/lib.rs index fc7d98178e..4b4bf016c4 100644 --- a/crates/zed_actions/src/lib.rs +++ b/crates/zed_actions/src/lib.rs @@ -277,7 +277,10 @@ pub mod agent { /// Displays the previous message in the history. PreviousHistoryMessage, /// Displays the next message in the history. - NextHistoryMessage + NextHistoryMessage, + /// Toggles the language model selector dropdown. + #[action(deprecated_aliases = ["assistant::ToggleModelSelector", "assistant2::ToggleModelSelector"])] + ToggleModelSelector ] ); } diff --git a/crates/zeta/Cargo.toml b/crates/zeta/Cargo.toml index 1609773339..c2b1de08ae 100644 --- a/crates/zeta/Cargo.toml +++ b/crates/zeta/Cargo.toml @@ -17,11 +17,13 @@ doctest = false test-support = [] [dependencies] +ai_onboarding.workspace = true anyhow.workspace = true arrayvec.workspace = true client.workspace = true collections.workspace = true command_palette_hooks.workspace = true +copilot.workspace = true db.workspace = true editor.workspace = true feature_flags.workspace = true @@ -35,8 +37,6 @@ language.workspace = true language_model.workspace = true log.workspace = true menu.workspace = true -migrator.workspace = true -paths.workspace = true postage.workspace = true project.workspace = true proto.workspace = true diff --git a/crates/zeta/src/init.rs b/crates/zeta/src/init.rs index 6411e423a4..4bcd50df88 100644 --- a/crates/zeta/src/init.rs +++ b/crates/zeta/src/init.rs @@ -34,7 +34,6 @@ pub fn init(cx: &mut App) { workspace, workspace.user_store().clone(), workspace.client().clone(), - workspace.app_state().fs.clone(), window, cx, ) diff --git a/crates/zeta/src/onboarding_modal.rs b/crates/zeta/src/onboarding_modal.rs index c123d76c53..1d59f36b05 100644 --- a/crates/zeta/src/onboarding_modal.rs +++ b/crates/zeta/src/onboarding_modal.rs @@ -1,40 +1,33 @@ -use std::{sync::Arc, time::Duration}; +use std::sync::Arc; -use crate::{ZED_PREDICT_DATA_COLLECTION_CHOICE, onboarding_event}; -use anyhow::Context as _; +use crate::{ZedPredictUpsell, onboarding_event}; +use ai_onboarding::EditPredictionOnboarding; use client::{Client, UserStore}; -use db::kvp::KEY_VALUE_STORE; +use db::kvp::Dismissable; use fs::Fs; use gpui::{ - Animation, AnimationExt as _, ClickEvent, DismissEvent, Entity, EventEmitter, FocusHandle, - Focusable, MouseDownEvent, Render, ease_in_out, svg, + ClickEvent, DismissEvent, Entity, EventEmitter, FocusHandle, Focusable, MouseDownEvent, Render, + linear_color_stop, linear_gradient, }; use language::language_settings::{AllLanguageSettings, EditPredictionProvider}; -use settings::{Settings, update_settings_file}; -use ui::{Checkbox, TintColor, prelude::*}; -use util::ResultExt; -use workspace::{ModalView, Workspace, notifications::NotifyTaskExt}; +use settings::update_settings_file; +use ui::{Vector, VectorName, prelude::*}; +use workspace::{ModalView, Workspace}; /// Introduces user to Zed's Edit Prediction feature and terms of service pub struct ZedPredictModal { - user_store: Entity, - client: Arc, - fs: Arc, + onboarding: Entity, focus_handle: FocusHandle, - sign_in_status: SignInStatus, - terms_of_service: bool, - data_collection_expanded: bool, - data_collection_opted_in: bool, } -#[derive(PartialEq, Eq)] -enum SignInStatus { - /// Signed out or signed in but not from this modal - Idle, - /// Authentication triggered from this modal - Waiting, - /// Signed in after authentication from this modal - SignedIn, +pub(crate) fn set_edit_prediction_provider(provider: EditPredictionProvider, cx: &mut App) { + let fs = ::global(cx); + update_settings_file::(fs, cx, move |settings, _| { + settings + .features + .get_or_insert(Default::default()) + .edit_prediction_provider = Some(provider); + }); } impl ZedPredictModal { @@ -42,127 +35,45 @@ impl ZedPredictModal { workspace: &mut Workspace, user_store: Entity, client: Arc, - fs: Arc, window: &mut Window, cx: &mut Context, ) { - workspace.toggle_modal(window, cx, |_window, cx| Self { - user_store, - client, - fs, - focus_handle: cx.focus_handle(), - sign_in_status: SignInStatus::Idle, - terms_of_service: false, - data_collection_expanded: false, - data_collection_opted_in: false, + workspace.toggle_modal(window, cx, |_window, cx| { + let weak_entity = cx.weak_entity(); + Self { + onboarding: cx.new(|cx| { + EditPredictionOnboarding::new( + user_store.clone(), + client.clone(), + copilot::Copilot::global(cx) + .map_or(false, |copilot| copilot.read(cx).status().is_configured()), + Arc::new({ + let this = weak_entity.clone(); + move |_window, cx| { + ZedPredictUpsell::set_dismissed(true, cx); + set_edit_prediction_provider(EditPredictionProvider::Zed, cx); + this.update(cx, |_, cx| cx.emit(DismissEvent)).ok(); + } + }), + Arc::new({ + let this = weak_entity.clone(); + move |window, cx| { + ZedPredictUpsell::set_dismissed(true, cx); + set_edit_prediction_provider(EditPredictionProvider::Copilot, cx); + this.update(cx, |_, cx| cx.emit(DismissEvent)).ok(); + copilot::initiate_sign_in(window, cx); + } + }), + cx, + ) + }), + focus_handle: cx.focus_handle(), + } }); } - fn view_terms(&mut self, _: &ClickEvent, _: &mut Window, cx: &mut Context) { - cx.open_url("https://zed.dev/terms-of-service"); - cx.notify(); - - onboarding_event!("ToS Link Clicked"); - } - - fn view_blog(&mut self, _: &ClickEvent, _: &mut Window, cx: &mut Context) { - cx.open_url("https://zed.dev/blog/edit-prediction"); - cx.notify(); - - onboarding_event!("Blog Link clicked"); - } - - fn inline_completions_doc(&mut self, _: &ClickEvent, _: &mut Window, cx: &mut Context) { - cx.open_url("https://zed.dev/docs/configuring-zed#disabled-globs"); - cx.notify(); - - onboarding_event!("Docs Link Clicked"); - } - - fn accept_and_enable(&mut self, _: &ClickEvent, window: &mut Window, cx: &mut Context) { - let task = self - .user_store - .update(cx, |this, cx| this.accept_terms_of_service(cx)); - let fs = self.fs.clone(); - - cx.spawn(async move |this, cx| { - task.await?; - - let mut data_collection_opted_in = false; - this.update(cx, |this, _cx| { - data_collection_opted_in = this.data_collection_opted_in; - }) - .ok(); - - KEY_VALUE_STORE - .write_kvp( - ZED_PREDICT_DATA_COLLECTION_CHOICE.into(), - data_collection_opted_in.to_string(), - ) - .await - .log_err(); - - // Make sure edit prediction provider setting is using the new key - let settings_path = paths::settings_file().as_path(); - let settings_path = fs.canonicalize(settings_path).await.with_context(|| { - format!("Failed to canonicalize settings path {:?}", settings_path) - })?; - - if let Some(settings) = fs.load(&settings_path).await.log_err() { - if let Some(new_settings) = - migrator::migrate_edit_prediction_provider_settings(&settings)? - { - fs.atomic_write(settings_path, new_settings).await?; - } - } - - this.update(cx, |this, cx| { - update_settings_file::(this.fs.clone(), cx, move |file, _| { - file.features - .get_or_insert(Default::default()) - .edit_prediction_provider = Some(EditPredictionProvider::Zed); - }); - - cx.emit(DismissEvent); - }) - }) - .detach_and_notify_err(window, cx); - - onboarding_event!( - "Enable Clicked", - data_collection_opted_in = self.data_collection_opted_in, - ); - } - - fn sign_in(&mut self, _: &ClickEvent, window: &mut Window, cx: &mut Context) { - let client = self.client.clone(); - self.sign_in_status = SignInStatus::Waiting; - - cx.spawn(async move |this, cx| { - let result = client - .authenticate_and_connect(true, &cx) - .await - .into_response(); - - let status = match result { - Ok(_) => SignInStatus::SignedIn, - Err(_) => SignInStatus::Idle, - }; - - this.update(cx, |this, cx| { - this.sign_in_status = status; - onboarding_event!("Signed In"); - cx.notify() - })?; - - result - }) - .detach_and_notify_err(window, cx); - - onboarding_event!("Sign In Clicked"); - } - fn cancel(&mut self, _: &menu::Cancel, _: &mut Window, cx: &mut Context) { + ZedPredictUpsell::set_dismissed(true, cx); cx.emit(DismissEvent); } } @@ -177,85 +88,12 @@ impl Focusable for ZedPredictModal { impl ModalView for ZedPredictModal {} -impl ZedPredictModal { - fn render_data_collection_explanation(&self, cx: &Context) -> impl IntoElement { - fn label_item(label_text: impl Into) -> impl Element { - Label::new(label_text).color(Color::Muted).into_element() - } - - fn info_item(label_text: impl Into) -> impl Element { - h_flex() - .items_start() - .gap_2() - .child( - div() - .mt_1p5() - .child(Icon::new(IconName::Check).size(IconSize::XSmall)), - ) - .child(div().w_full().child(label_item(label_text))) - } - - fn multiline_info_item, E2: IntoElement>( - first_line: E1, - second_line: E2, - ) -> impl Element { - v_flex() - .child(info_item(first_line)) - .child(div().pl_5().child(second_line)) - } - - v_flex() - .mt_2() - .p_2() - .rounded_sm() - .bg(cx.theme().colors().editor_background.opacity(0.5)) - .border_1() - .border_color(cx.theme().colors().border_variant) - .child( - div().child( - Label::new("To improve edit predictions, please consider contributing to our open dataset based on your interactions within open source repositories.") - .mb_1() - ) - ) - .child(info_item( - "We collect data exclusively from open source projects.", - )) - .child(info_item( - "Zed automatically detects if your project is open source.", - )) - .child(info_item("Toggle participation at any time via the status bar menu.")) - .child(multiline_info_item( - "If turned on, this setting applies for all open source repositories", - label_item("you open in Zed.") - )) - .child(multiline_info_item( - "Files with sensitive data, like `.env`, are excluded by default", - h_flex() - .w_full() - .flex_wrap() - .child(label_item("via the")) - .child( - Button::new("doc-link", "disabled_globs").on_click( - cx.listener(Self::inline_completions_doc), - ), - ) - .child(label_item("setting.")), - )) - } -} - impl Render for ZedPredictModal { fn render(&mut self, window: &mut Window, cx: &mut Context) -> impl IntoElement { let window_height = window.viewport_size().height; let max_height = window_height - px(200.); - let has_subscription_period = self.user_store.read(cx).subscription_period().is_some(); - let plan = self.user_store.read(cx).current_plan().filter(|_| { - // Since the user might be on the legacy free plan we filter based on whether we have a subscription period. - has_subscription_period - }); - - let base = v_flex() + v_flex() .id("edit-prediction-onboarding") .key_context("ZedPredictModal") .relative() @@ -264,14 +102,9 @@ impl Render for ZedPredictModal { .max_h(max_height) .p_4() .gap_2() - .when(self.data_collection_expanded, |element| { - element.overflow_y_scroll() - }) - .when(!self.data_collection_expanded, |element| { - element.overflow_hidden() - }) .elevation_3(cx) .track_focus(&self.focus_handle(cx)) + .overflow_hidden() .on_action(cx.listener(Self::cancel)) .on_action(cx.listener(|_, _: &menu::Cancel, _window, cx| { onboarding_event!("Cancelled", trigger = "Action"); @@ -282,77 +115,30 @@ impl Render for ZedPredictModal { })) .child( div() - .p_1p5() + .opacity(0.5) .absolute() - .top_1() - .left_1() + .top(px(-8.0)) .right_0() - .h(px(200.)) + .w(px(400.)) + .h(px(92.)) .child( - svg() - .path("icons/zed_predict_bg.svg") - .text_color(cx.theme().colors().icon_disabled) - .w(px(530.)) - .h(px(128.)) - .overflow_hidden(), + Vector::new(VectorName::AiGrid, rems_from_px(400.), rems_from_px(92.)) + .color(Color::Custom(cx.theme().colors().text.alpha(0.32))), ), ) .child( - h_flex() - .w_full() - .mb_2() - .justify_between() - .child( - v_flex() - .gap_1() - .child( - Label::new("Introducing Zed AI's") - .size(LabelSize::Small) - .color(Color::Muted), - ) - .child(Headline::new("Edit Prediction").size(HeadlineSize::Large)), - ) - .child({ - let tab = |n: usize| { - let text_color = cx.theme().colors().text; - let border_color = cx.theme().colors().text_accent.opacity(0.4); - - h_flex().child( - h_flex() - .px_4() - .py_0p5() - .bg(cx.theme().colors().editor_background) - .border_1() - .border_color(border_color) - .rounded_sm() - .font(theme::ThemeSettings::get_global(cx).buffer_font.clone()) - .text_size(TextSize::XSmall.rems(cx)) - .text_color(text_color) - .child("tab") - .with_animation( - n, - Animation::new(Duration::from_secs(2)).repeat(), - move |tab, delta| { - let delta = (delta - 0.15 * n as f32) / 0.7; - let delta = 1.0 - (0.5 - delta).abs() * 2.; - let delta = ease_in_out(delta.clamp(0., 1.)); - let delta = 0.1 + 0.9 * delta; - - tab.border_color(border_color.opacity(delta)) - .text_color(text_color.opacity(delta)) - }, - ), - ) - }; - - v_flex() - .gap_2() - .items_center() - .pr_2p5() - .child(tab(0).ml_neg_20()) - .child(tab(1)) - .child(tab(2).ml_20()) - }), + div() + .absolute() + .top_0() + .right_0() + .w(px(660.)) + .h(px(401.)) + .overflow_hidden() + .bg(linear_gradient( + 75., + linear_color_stop(cx.theme().colors().panel_background.alpha(0.01), 1.0), + linear_color_stop(cx.theme().colors().panel_background, 0.45), + )), ) .child(h_flex().absolute().top_2().right_2().child( IconButton::new("cancel", IconName::X).on_click(cx.listener( @@ -361,148 +147,7 @@ impl Render for ZedPredictModal { cx.emit(DismissEvent); }, )), - )); - - let blog_post_button = Button::new("view-blog", "Read the Blog Post") - .full_width() - .icon(IconName::ArrowUpRight) - .icon_size(IconSize::Indicator) - .icon_color(Color::Muted) - .on_click(cx.listener(Self::view_blog)); - - if self.user_store.read(cx).current_user().is_some() { - let copy = match self.sign_in_status { - SignInStatus::Idle => { - "Zed can now predict your next edit on every keystroke. Powered by Zeta, our open-source, open-dataset language model." - } - SignInStatus::SignedIn => "Almost there! Ensure you:", - SignInStatus::Waiting => unreachable!(), - }; - - let accordion_icons = if self.data_collection_expanded { - (IconName::ChevronUp, IconName::ChevronDown) - } else { - (IconName::ChevronDown, IconName::ChevronUp) - }; - let plan = plan.unwrap_or(proto::Plan::Free); - - base.child(Label::new(copy).color(Color::Muted)) - .child( - h_flex().child( - Checkbox::new("plan", ToggleState::Selected) - .fill() - .disabled(true) - .label(format!( - "You get {} edit predictions through your {}.", - if plan == proto::Plan::Free { - "2,000" - } else { - "unlimited" - }, - match plan { - proto::Plan::Free => "Zed Free plan", - proto::Plan::ZedPro => "Zed Pro plan", - proto::Plan::ZedProTrial => "Zed Pro trial", - } - )), - ), - ) - .child( - h_flex() - .child( - Checkbox::new("tos-checkbox", self.terms_of_service.into()) - .fill() - .label("I have read and accept the") - .on_click(cx.listener(move |this, state, _window, cx| { - this.terms_of_service = *state == ToggleState::Selected; - cx.notify(); - })), - ) - .child( - Button::new("view-tos", "Terms of Service") - .icon(IconName::ArrowUpRight) - .icon_size(IconSize::Indicator) - .icon_color(Color::Muted) - .on_click(cx.listener(Self::view_terms)), - ), - ) - .child( - v_flex() - .child( - h_flex() - .flex_wrap() - .child( - Checkbox::new( - "training-data-checkbox", - self.data_collection_opted_in.into(), - ) - .label( - "Contribute to the open dataset when editing open source.", - ) - .fill() - .on_click(cx.listener( - move |this, state, _window, cx| { - this.data_collection_opted_in = - *state == ToggleState::Selected; - cx.notify() - }, - )), - ) - .child( - Button::new("learn-more", "Learn More") - .icon(accordion_icons.0) - .icon_size(IconSize::Indicator) - .icon_color(Color::Muted) - .on_click(cx.listener(|this, _, _, cx| { - this.data_collection_expanded = - !this.data_collection_expanded; - cx.notify(); - - if this.data_collection_expanded { - onboarding_event!( - "Data Collection Learn More Clicked" - ); - } - })), - ), - ) - .when(self.data_collection_expanded, |element| { - element.child(self.render_data_collection_explanation(cx)) - }), - ) - .child( - v_flex() - .mt_2() - .gap_2() - .w_full() - .child( - Button::new("accept-tos", "Enable Edit Prediction") - .disabled(!self.terms_of_service) - .style(ButtonStyle::Tinted(TintColor::Accent)) - .full_width() - .on_click(cx.listener(Self::accept_and_enable)), - ) - .child(blog_post_button), - ) - } else { - base.child( - Label::new("To set Zed as your edit prediction provider, please sign in.") - .color(Color::Muted), - ) - .child( - v_flex() - .mt_2() - .gap_2() - .w_full() - .child( - Button::new("accept-tos", "Sign in with GitHub") - .disabled(self.sign_in_status == SignInStatus::Waiting) - .style(ButtonStyle::Tinted(TintColor::Accent)) - .full_width() - .on_click(cx.listener(Self::sign_in)), - ) - .child(blog_post_button), - ) - } + )) + .child(self.onboarding.clone()) } } diff --git a/crates/zeta/src/zeta.rs b/crates/zeta/src/zeta.rs index 87cd1e604c..d6f033899d 100644 --- a/crates/zeta/src/zeta.rs +++ b/crates/zeta/src/zeta.rs @@ -7,7 +7,7 @@ mod onboarding_telemetry; mod rate_completion_modal; pub(crate) use completion_diff_element::*; -use db::kvp::KEY_VALUE_STORE; +use db::kvp::{Dismissable, KEY_VALUE_STORE}; pub use init::*; use inline_completion::DataCollectionState; use license_detection::LICENSE_FILES_TO_CHECK; @@ -95,6 +95,38 @@ impl std::fmt::Display for InlineCompletionId { } } +struct ZedPredictUpsell; + +impl Dismissable for ZedPredictUpsell { + const KEY: &'static str = "dismissed-edit-predict-upsell"; + + fn dismissed() -> bool { + // To make this backwards compatible with older versions of Zed, we + // check if the user has seen the previous Edit Prediction Onboarding + // before, by checking the data collection choice which was written to + // the database once the user clicked on "Accept and Enable" + if KEY_VALUE_STORE + .read_kvp(ZED_PREDICT_DATA_COLLECTION_CHOICE) + .log_err() + .map_or(false, |s| s.is_some()) + { + return true; + } + + KEY_VALUE_STORE + .read_kvp(Self::KEY) + .log_err() + .map_or(false, |s| s.is_some()) + } +} + +pub fn should_show_upsell_modal(user_store: &Entity, cx: &App) -> bool { + match user_store.read(cx).current_user_has_accepted_terms() { + Some(true) => !ZedPredictUpsell::dismissed(), + Some(false) | None => true, + } +} + #[derive(Clone)] struct ZetaGlobal(Entity); From 750ceeb760fb6e74d6c5b0503c2b8b34ab911efa Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 18 Jul 2025 12:28:58 -0400 Subject: [PATCH 0061/1052] collab: Don't use `screen-capture` feature from `gpui` (#34725) This PR removes the `screen-capture` feature from `gpui` when depending on it in `collab`. Release Notes: - N/A --- crates/collab/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/collab/Cargo.toml b/crates/collab/Cargo.toml index 242694d963..d3b5048283 100644 --- a/crates/collab/Cargo.toml +++ b/crates/collab/Cargo.toml @@ -35,7 +35,7 @@ dashmap.workspace = true derive_more.workspace = true envy = "0.4.2" futures.workspace = true -gpui = { workspace = true, features = ["screen-capture"] } +gpui.workspace = true hex.workspace = true http_client.workspace = true jsonwebtoken.workspace = true From 8bc8d61fa6991cf0f1a675088a2a5e6356d16a6a Mon Sep 17 00:00:00 2001 From: Finn Evers Date: Fri, 18 Jul 2025 18:55:03 +0200 Subject: [PATCH 0062/1052] theme_importer: Add missing color imports for the minimap thumb (#34724) These should have been part of https://github.com/zed-industries/zed/pull/30785 but I forgot to add them there. Release Notes: - N/A --- crates/theme_importer/src/vscode/converter.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/crates/theme_importer/src/vscode/converter.rs b/crates/theme_importer/src/vscode/converter.rs index 9a17a4cdd2..0249bdc7c9 100644 --- a/crates/theme_importer/src/vscode/converter.rs +++ b/crates/theme_importer/src/vscode/converter.rs @@ -175,6 +175,8 @@ impl VsCodeThemeConverter { scrollbar_track_background: vscode_editor_background.clone(), scrollbar_track_border: vscode_colors.editor_overview_ruler.border.clone(), minimap_thumb_background: vscode_colors.minimap_slider.background.clone(), + minimap_thumb_hover_background: vscode_colors.minimap_slider.hover_background.clone(), + minimap_thumb_active_background: vscode_colors.minimap_slider.active_background.clone(), editor_foreground: vscode_editor_foreground .clone() .or(vscode_token_colors_foreground.clone()), From 1dd470ca48fef83e920972f175f232f9ea252b44 Mon Sep 17 00:00:00 2001 From: Smit Barmase Date: Fri, 18 Jul 2025 22:39:00 +0530 Subject: [PATCH 0063/1052] editor: Fix double $ sign on completion accept in PHP (#34726) Closes #33510 https://github.com/zed-extensions/php/issues/29 If certain language servers do not provide an insert/replace range, we use `surrounding_word` as a fallback for that range, which internally uses `word_characters`. It makes sense to use `completion_query_characters` instead of `word_characters` to get that range, because we use `completion_query_characters` to query completions in the first place. That means, for some hypothetical reason (e.g., if the Tailwind server stops providing insert/replace ranges), we would correctly fall back to the range "bg-blue-200^" instead of "200^", because `completion_query_characters` includes "-" in this case. For this particular fix, right now the default PHP language server `phpactor` does not provide an insert/replace range, and hence completion query character is used, which is `$` in this case. Note that `$` isn't in word characters for reasons mentioned here: https://github.com/zed-extensions/php/issues/14 Release Notes: - Fixed an issue where accepting variable completion in PHP would result in a double $ sign in the prefix. --- crates/editor/src/editor.rs | 8 ++++---- crates/language/src/buffer.rs | 10 ++++++++-- crates/project/src/lsp_command.rs | 4 ++-- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index c3187f6b51..b8dcdd35e0 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -5451,7 +5451,7 @@ impl Editor { }; let (word_replace_range, word_to_exclude) = if let (word_range, Some(CharKind::Word)) = - buffer_snapshot.surrounding_word(buffer_position) + buffer_snapshot.surrounding_word(buffer_position, false) { let word_to_exclude = buffer_snapshot .text_for_range(word_range.clone()) @@ -6605,8 +6605,8 @@ impl Editor { } let snapshot = cursor_buffer.read(cx).snapshot(); - let (start_word_range, _) = snapshot.surrounding_word(cursor_buffer_position); - let (end_word_range, _) = snapshot.surrounding_word(tail_buffer_position); + let (start_word_range, _) = snapshot.surrounding_word(cursor_buffer_position, false); + let (end_word_range, _) = snapshot.surrounding_word(tail_buffer_position, false); if start_word_range != end_word_range { self.document_highlights_task.take(); self.clear_background_highlights::(cx); @@ -22137,7 +22137,7 @@ impl SemanticsProvider for Entity { // Fallback on using TreeSitter info to determine identifier range buffer.read_with(cx, |buffer, _| { let snapshot = buffer.snapshot(); - let (range, kind) = snapshot.surrounding_word(position); + let (range, kind) = snapshot.surrounding_word(position, false); if kind != Some(CharKind::Word) { return None; } diff --git a/crates/language/src/buffer.rs b/crates/language/src/buffer.rs index ae0184b22a..59aa63ff38 100644 --- a/crates/language/src/buffer.rs +++ b/crates/language/src/buffer.rs @@ -3364,13 +3364,19 @@ impl BufferSnapshot { /// Returns a tuple of the range and character kind of the word /// surrounding the given position. - pub fn surrounding_word(&self, start: T) -> (Range, Option) { + pub fn surrounding_word( + &self, + start: T, + for_completion: bool, + ) -> (Range, Option) { let mut start = start.to_offset(self); let mut end = start; let mut next_chars = self.chars_at(start).take(128).peekable(); let mut prev_chars = self.reversed_chars_at(start).take(128).peekable(); - let classifier = self.char_classifier_at(start); + let classifier = self + .char_classifier_at(start) + .for_completion(for_completion); let word_kind = cmp::max( prev_chars.peek().copied().map(|c| classifier.kind(c)), next_chars.peek().copied().map(|c| classifier.kind(c)), diff --git a/crates/project/src/lsp_command.rs b/crates/project/src/lsp_command.rs index 4538dc4cda..a2f6de44c9 100644 --- a/crates/project/src/lsp_command.rs +++ b/crates/project/src/lsp_command.rs @@ -350,7 +350,7 @@ impl LspCommand for PrepareRename { } Some(lsp::PrepareRenameResponse::DefaultBehavior { .. }) => { let snapshot = buffer.snapshot(); - let (range, _) = snapshot.surrounding_word(self.position); + let (range, _) = snapshot.surrounding_word(self.position, false); let range = snapshot.anchor_after(range.start)..snapshot.anchor_before(range.end); Ok(PrepareRenameResponse::Success(range)) } @@ -2297,7 +2297,7 @@ impl LspCommand for GetCompletions { range_for_token .get_or_insert_with(|| { let offset = self.position.to_offset(&snapshot); - let (range, kind) = snapshot.surrounding_word(offset); + let (range, kind) = snapshot.surrounding_word(offset, true); let range = if kind == Some(CharKind::Word) { range } else { From 5b18ce79abb0242ed91573994414160c44ed716c Mon Sep 17 00:00:00 2001 From: Finn Evers Date: Fri, 18 Jul 2025 19:16:31 +0200 Subject: [PATCH 0064/1052] editor: Ensure topmost buffer header can be properly folded (#34721) This PR fixes an issue where the topmost header in a multibuffer would jump when the corresponding buffer was folded. The issue arose because for the topmost header, the offset within the scroll anchor is negative, as the corresponding buffer only starts below the header itself and thus the offset for the scroll position has to be negative. However, upon collapsing that buffer, we end up with a negative vertical scroll position, which causes all kinds of different problems. The issue has been present for a long time, but became more visible after https://github.com/zed-industries/zed/pull/34295 landed, as that change removed the case distinction for buffers scrolled all the way to the top. This PR fixes this by clamping just the vertical scroll position upon return, which ensures the negative offset works as expected when the buffer is expanded, but the vertical scroll position does not turn negative once the buffer is folded. Release Notes: - Fixed an issue where folding the topmost buffer in a multibuffer would cause the header to jump slightly. --- crates/editor/src/scroll.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/crates/editor/src/scroll.rs b/crates/editor/src/scroll.rs index 7310d6d3c0..ecaf7c11e4 100644 --- a/crates/editor/src/scroll.rs +++ b/crates/editor/src/scroll.rs @@ -12,7 +12,7 @@ use crate::{ }; pub use autoscroll::{Autoscroll, AutoscrollStrategy}; use core::fmt::Debug; -use gpui::{App, Axis, Context, Global, Pixels, Task, Window, point, px}; +use gpui::{Along, App, Axis, Context, Global, Pixels, Task, Window, point, px}; use language::language_settings::{AllLanguageSettings, SoftWrap}; use language::{Bias, Point}; pub use scroll_amount::ScrollAmount; @@ -49,14 +49,14 @@ impl ScrollAnchor { } pub fn scroll_position(&self, snapshot: &DisplaySnapshot) -> gpui::Point { - let mut scroll_position = self.offset; - if self.anchor == Anchor::min() { - scroll_position.y = 0.; - } else { - let scroll_top = self.anchor.to_display_point(snapshot).row().as_f32(); - scroll_position.y += scroll_top; - } - scroll_position + self.offset.apply_along(Axis::Vertical, |offset| { + if self.anchor == Anchor::min() { + 0. + } else { + let scroll_top = self.anchor.to_display_point(snapshot).row().as_f32(); + (offset + scroll_top).max(0.) + } + }) } pub fn top_row(&self, buffer: &MultiBufferSnapshot) -> u32 { From 87555d3f0bb4e19895ad68bb3538978007f6d9e8 Mon Sep 17 00:00:00 2001 From: tidely <43219534+tidely@users.noreply.github.com> Date: Fri, 18 Jul 2025 20:41:12 +0300 Subject: [PATCH 0065/1052] project: Remove clones from git blame serialization (#34727) Release Notes: - N/A --- crates/project/src/git_store.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/crates/project/src/git_store.rs b/crates/project/src/git_store.rs index 5f07bafe5b..6e3d27deff 100644 --- a/crates/project/src/git_store.rs +++ b/crates/project/src/git_store.rs @@ -4397,17 +4397,17 @@ fn serialize_blame_buffer_response(blame: Option) -> proto::B start_line: entry.range.start, end_line: entry.range.end, original_line_number: entry.original_line_number, - author: entry.author.clone(), - author_mail: entry.author_mail.clone(), + author: entry.author, + author_mail: entry.author_mail, author_time: entry.author_time, - author_tz: entry.author_tz.clone(), - committer: entry.committer_name.clone(), - committer_mail: entry.committer_email.clone(), + author_tz: entry.author_tz, + committer: entry.committer_name, + committer_mail: entry.committer_email, committer_time: entry.committer_time, - committer_tz: entry.committer_tz.clone(), - summary: entry.summary.clone(), - previous: entry.previous.clone(), - filename: entry.filename.clone(), + committer_tz: entry.committer_tz, + summary: entry.summary, + previous: entry.previous, + filename: entry.filename, }) .collect::>(); From 64ce696aae27ff5afc44301035a21f40c8ca634f Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Fri, 18 Jul 2025 15:03:14 -0300 Subject: [PATCH 0066/1052] ui: Add the `SwitchField` component (#34713) This will be useful for both the current agent panel and some other onboarding stuff we're working on. Also ended up removing the `SwitchWithLabel` as it was unused. Release Notes: - N/A --- crates/ui/src/components/toggle.rs | 166 ++++++++++++++++++++++++----- 1 file changed, 142 insertions(+), 24 deletions(-) diff --git a/crates/ui/src/components/toggle.rs b/crates/ui/src/components/toggle.rs index 4672a0cfc2..759b225434 100644 --- a/crates/ui/src/components/toggle.rs +++ b/crates/ui/src/components/toggle.rs @@ -543,28 +543,48 @@ impl RenderOnce for Switch { } } -/// A [`Switch`] that has a [`Label`]. -#[derive(IntoElement)] -pub struct SwitchWithLabel { +/// # SwitchField +/// +/// A field component that combines a label, description, and switch into one reusable component. +/// +/// # Examples +/// +/// ``` +/// use ui::prelude::*; +/// +/// SwitchField::new( +/// "feature-toggle", +/// "Enable feature", +/// "This feature adds new functionality to the app.", +/// ToggleState::Unselected, +/// |state, window, cx| { +/// // Logic here +/// } +/// ); +/// ``` +#[derive(IntoElement, RegisterComponent)] +pub struct SwitchField { id: ElementId, - label: Label, + label: SharedString, + description: SharedString, toggle_state: ToggleState, on_click: Arc, disabled: bool, color: SwitchColor, } -impl SwitchWithLabel { - /// Creates a switch with an attached label. +impl SwitchField { pub fn new( id: impl Into, - label: Label, + label: impl Into, + description: impl Into, toggle_state: impl Into, on_click: impl Fn(&ToggleState, &mut Window, &mut App) + 'static, ) -> Self { Self { id: id.into(), - label, + label: label.into(), + description: description.into(), toggle_state: toggle_state.into(), on_click: Arc::new(on_click), disabled: false, @@ -572,43 +592,141 @@ impl SwitchWithLabel { } } - /// Sets the disabled state of the [`SwitchWithLabel`]. pub fn disabled(mut self, disabled: bool) -> Self { self.disabled = disabled; self } /// Sets the color of the switch using the specified [`SwitchColor`]. + /// This changes the color scheme of the switch when it's in the "on" state. pub fn color(mut self, color: SwitchColor) -> Self { self.color = color; self } } -impl RenderOnce for SwitchWithLabel { - fn render(self, _window: &mut Window, cx: &mut App) -> impl IntoElement { +impl RenderOnce for SwitchField { + fn render(self, _window: &mut Window, _cx: &mut App) -> impl IntoElement { h_flex() .id(SharedString::from(format!("{}-container", self.id))) - .gap(DynamicSpacing::Base08.rems(cx)) + .w_full() + .gap_4() + .justify_between() + .flex_wrap() .child( - Switch::new(self.id.clone(), self.toggle_state) - .disabled(self.disabled) - .color(self.color) - .on_click({ - let on_click = self.on_click.clone(); - move |checked, window, cx| { - (on_click)(checked, window, cx); - } - }), + v_flex() + .gap_0p5() + .max_w_5_6() + .child(Label::new(self.label)) + .child(Label::new(self.description).color(Color::Muted)), ) .child( - div() - .id(SharedString::from(format!("{}-label", self.id))) - .child(self.label), + Switch::new( + SharedString::from(format!("{}-switch", self.id)), + self.toggle_state, + ) + .color(self.color) + .disabled(self.disabled) + .on_click({ + let on_click = self.on_click.clone(); + move |state, window, cx| { + (on_click)(state, window, cx); + } + }), ) } } +impl Component for SwitchField { + fn scope() -> ComponentScope { + ComponentScope::Input + } + + fn description() -> Option<&'static str> { + Some("A field component that combines a label, description, and switch") + } + + fn preview(_window: &mut Window, _cx: &mut App) -> Option { + Some( + v_flex() + .gap_6() + .children(vec![ + example_group_with_title( + "States", + vec![ + single_example( + "Unselected", + SwitchField::new( + "switch_field_unselected", + "Enable notifications", + "Receive notifications when new messages arrive.", + ToggleState::Unselected, + |_, _, _| {}, + ) + .into_any_element(), + ), + single_example( + "Selected", + SwitchField::new( + "switch_field_selected", + "Enable notifications", + "Receive notifications when new messages arrive.", + ToggleState::Selected, + |_, _, _| {}, + ) + .into_any_element(), + ), + ], + ), + example_group_with_title( + "Colors", + vec![ + single_example( + "Default", + SwitchField::new( + "switch_field_default", + "Default color", + "This uses the default switch color.", + ToggleState::Selected, + |_, _, _| {}, + ) + .into_any_element(), + ), + single_example( + "Accent", + SwitchField::new( + "switch_field_accent", + "Accent color", + "This uses the accent color scheme.", + ToggleState::Selected, + |_, _, _| {}, + ) + .color(SwitchColor::Accent) + .into_any_element(), + ), + ], + ), + example_group_with_title( + "Disabled", + vec![single_example( + "Disabled", + SwitchField::new( + "switch_field_disabled", + "Disabled field", + "This field is disabled and cannot be toggled.", + ToggleState::Selected, + |_, _, _| {}, + ) + .disabled(true) + .into_any_element(), + )], + ), + ]) + .into_any_element(), + ) + } +} + impl Component for Checkbox { fn scope() -> ComponentScope { ComponentScope::Input From e1d28ff957dbc16c39e4a8e061e79526f181849a Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Fri, 18 Jul 2025 15:03:31 -0300 Subject: [PATCH 0067/1052] agent: Add `use_modifier_to_send` setting (#34709) When `use_modifier_to_send` is turned on, holding `cmd`/`ctrl` is necessary to send a message in the agent panel. Text threads already use `cmd-enter` by default to submit a message, and it was done this way to have the usual text editing bindings not taken over when writing a prompt, sort of stimulating more thoughtful writing. While `enter` to send is still somewhat a huge pattern in chat-like LLM UIs, it still makes sense to allow this for the new agent panel... hence the existence of this setting now! Release Notes: - agent: Added the `use_modifier_to_send` setting, which makes holding a modifier (`cmd`/`ctrl`), together with `enter`, required to send a new message. --- assets/keymaps/default-linux.json | 13 ++++++++- assets/keymaps/default-macos.json | 14 +++++++++- crates/agent_settings/src/agent_settings.rs | 13 +++++++++ crates/agent_ui/src/message_editor.rs | 30 +++++++++++++++++++-- 4 files changed, 66 insertions(+), 4 deletions(-) diff --git a/assets/keymaps/default-linux.json b/assets/keymaps/default-linux.json index b859d2d84c..8e67031485 100644 --- a/assets/keymaps/default-linux.json +++ b/assets/keymaps/default-linux.json @@ -277,7 +277,7 @@ } }, { - "context": "MessageEditor > Editor", + "context": "MessageEditor > Editor && !use_modifier_to_send", "bindings": { "enter": "agent::Chat", "ctrl-enter": "agent::ChatWithFollow", @@ -287,6 +287,17 @@ "ctrl-shift-n": "agent::RejectAll" } }, + { + "context": "MessageEditor > Editor && use_modifier_to_send", + "bindings": { + "ctrl-enter": "agent::Chat", + "enter": "editor::Newline", + "ctrl-i": "agent::ToggleProfileSelector", + "shift-ctrl-r": "agent::OpenAgentDiff", + "ctrl-shift-y": "agent::KeepAll", + "ctrl-shift-n": "agent::RejectAll" + } + }, { "context": "EditMessageEditor > Editor", "bindings": { diff --git a/assets/keymaps/default-macos.json b/assets/keymaps/default-macos.json index 748deaa05d..70edee8534 100644 --- a/assets/keymaps/default-macos.json +++ b/assets/keymaps/default-macos.json @@ -318,7 +318,7 @@ } }, { - "context": "MessageEditor > Editor", + "context": "MessageEditor > Editor && !use_modifier_to_send", "use_key_equivalents": true, "bindings": { "enter": "agent::Chat", @@ -329,6 +329,18 @@ "cmd-shift-n": "agent::RejectAll" } }, + { + "context": "MessageEditor > Editor && use_modifier_to_send", + "use_key_equivalents": true, + "bindings": { + "cmd-enter": "agent::Chat", + "enter": "editor::Newline", + "cmd-i": "agent::ToggleProfileSelector", + "shift-ctrl-r": "agent::OpenAgentDiff", + "cmd-shift-y": "agent::KeepAll", + "cmd-shift-n": "agent::RejectAll" + } + }, { "context": "EditMessageEditor > Editor", "use_key_equivalents": true, diff --git a/crates/agent_settings/src/agent_settings.rs b/crates/agent_settings/src/agent_settings.rs index 131cd2dc3f..13b966608c 100644 --- a/crates/agent_settings/src/agent_settings.rs +++ b/crates/agent_settings/src/agent_settings.rs @@ -69,6 +69,7 @@ pub struct AgentSettings { pub enable_feedback: bool, pub expand_edit_card: bool, pub expand_terminal_card: bool, + pub use_modifier_to_send: bool, } impl AgentSettings { @@ -174,6 +175,10 @@ impl AgentSettingsContent { self.single_file_review = Some(allow); } + pub fn set_use_modifier_to_send(&mut self, always_use: bool) { + self.use_modifier_to_send = Some(always_use); + } + pub fn set_profile(&mut self, profile_id: AgentProfileId) { self.default_profile = Some(profile_id); } @@ -301,6 +306,10 @@ pub struct AgentSettingsContent { /// /// Default: true expand_terminal_card: Option, + /// Whether to always use cmd-enter (or ctrl-enter on Linux) to send messages in the agent panel. + /// + /// Default: false + use_modifier_to_send: Option, } #[derive(Clone, Copy, Debug, Serialize, Deserialize, JsonSchema, PartialEq, Default)] @@ -456,6 +465,10 @@ impl Settings for AgentSettings { &mut settings.expand_terminal_card, value.expand_terminal_card, ); + merge( + &mut settings.use_modifier_to_send, + value.use_modifier_to_send, + ); settings .model_parameters diff --git a/crates/agent_ui/src/message_editor.rs b/crates/agent_ui/src/message_editor.rs index 6967c8ab3e..ce9cc87fe3 100644 --- a/crates/agent_ui/src/message_editor.rs +++ b/crates/agent_ui/src/message_editor.rs @@ -28,8 +28,8 @@ use fs::Fs; use futures::future::Shared; use futures::{FutureExt as _, future}; use gpui::{ - Animation, AnimationExt, App, Entity, EventEmitter, Focusable, Subscription, Task, TextStyle, - WeakEntity, linear_color_stop, linear_gradient, point, pulsating_between, + Animation, AnimationExt, App, Entity, EventEmitter, Focusable, KeyContext, Subscription, Task, + TextStyle, WeakEntity, linear_color_stop, linear_gradient, point, pulsating_between, }; use language::{Buffer, Language, Point}; use language_model::{ @@ -132,6 +132,7 @@ pub(crate) fn create_editor( placement: Some(ContextMenuPlacement::Above), }); editor.register_addon(ContextCreasesAddon::new()); + editor.register_addon(MessageEditorAddon::new()); editor }); @@ -1494,6 +1495,31 @@ pub struct ContextCreasesAddon { _subscription: Option, } +pub struct MessageEditorAddon {} + +impl MessageEditorAddon { + pub fn new() -> Self { + Self {} + } +} + +impl Addon for MessageEditorAddon { + fn to_any(&self) -> &dyn std::any::Any { + self + } + + fn to_any_mut(&mut self) -> Option<&mut dyn std::any::Any> { + Some(self) + } + + fn extend_key_context(&self, key_context: &mut KeyContext, cx: &App) { + let settings = agent_settings::AgentSettings::get_global(cx); + if settings.use_modifier_to_send { + key_context.add("use_modifier_to_send"); + } + } +} + impl Addon for ContextCreasesAddon { fn to_any(&self) -> &dyn std::any::Any { self From fd64ee1bb6756cc41967a053d83ec0ca3519adcd Mon Sep 17 00:00:00 2001 From: Anthony Eid <56899983+Anthony-Eid@users.noreply.github.com> Date: Fri, 18 Jul 2025 14:09:28 -0400 Subject: [PATCH 0068/1052] keymap ui: Fix remove key mapping bug (#34683) Release Notes: - N/A --------- Co-authored-by: Ben Kunkle --- crates/settings/src/keymap_file.rs | 40 ++++++++++++++++++++++++++++ crates/settings/src/settings_json.rs | 7 +++-- 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/crates/settings/src/keymap_file.rs b/crates/settings/src/keymap_file.rs index 3a01d889c4..67e8f7e7b2 100644 --- a/crates/settings/src/keymap_file.rs +++ b/crates/settings/src/keymap_file.rs @@ -1623,4 +1623,44 @@ mod tests { .unindent(), ); } + + #[test] + fn test_keymap_remove() { + zlog::init_test(); + + check_keymap_update( + r#" + [ + { + "context": "Editor", + "bindings": { + "cmd-k cmd-u": "editor::ConvertToUpperCase", + "cmd-k cmd-l": "editor::ConvertToLowerCase", + "cmd-[": "pane::GoBack", + } + }, + ] + "#, + KeybindUpdateOperation::Remove { + target: KeybindUpdateTarget { + context: Some("Editor"), + keystrokes: &parse_keystrokes("cmd-k cmd-l"), + action_name: "editor::ConvertToLowerCase", + action_arguments: None, + }, + target_keybind_source: KeybindSource::User, + }, + r#" + [ + { + "context": "Editor", + "bindings": { + "cmd-k cmd-u": "editor::ConvertToUpperCase", + "cmd-[": "pane::GoBack", + } + }, + ] + "#, + ); + } } diff --git a/crates/settings/src/settings_json.rs b/crates/settings/src/settings_json.rs index a448eb2737..e6683857e7 100644 --- a/crates/settings/src/settings_json.rs +++ b/crates/settings/src/settings_json.rs @@ -190,6 +190,7 @@ fn replace_value_in_json_text( } } + let mut removed_comma = false; // Look backward for a preceding comma first let preceding_text = text.get(0..removal_start).unwrap_or(""); if let Some(comma_pos) = preceding_text.rfind(',') { @@ -197,10 +198,12 @@ fn replace_value_in_json_text( let between_comma_and_key = text.get(comma_pos + 1..removal_start).unwrap_or(""); if between_comma_and_key.trim().is_empty() { removal_start = comma_pos; + removed_comma = true; } } - - if let Some(remaining_text) = text.get(existing_value_range.end..) { + if let Some(remaining_text) = text.get(existing_value_range.end..) + && !removed_comma + { let mut chars = remaining_text.char_indices(); while let Some((offset, ch)) = chars.next() { if ch == ',' { From 7b6b75b63fbcdd42e42394732e0fa2e1962512ea Mon Sep 17 00:00:00 2001 From: Peter Tripp Date: Fri, 18 Jul 2025 14:31:08 -0400 Subject: [PATCH 0069/1052] ci: Skip generating Windows release artifacts (#34704) Release Notes: - N/A --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 98b70ad834..6987022f7a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -748,7 +748,7 @@ jobs: timeout-minutes: 120 name: Create a Windows installer runs-on: [self-hosted, Windows, X64] - if: ${{ startsWith(github.ref, 'refs/tags/v') || contains(github.event.pull_request.labels.*.name, 'run-bundling') }} + if: false && (startsWith(github.ref, 'refs/tags/v') || contains(github.event.pull_request.labels.*.name, 'run-bundling')) needs: [windows_tests] env: AZURE_TENANT_ID: ${{ secrets.AZURE_SIGNING_TENANT_ID }} @@ -787,7 +787,7 @@ jobs: - name: Upload Artifacts to release uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v1 # Re-enable when we are ready to publish windows preview releases - if: false && ${{ !(contains(github.event.pull_request.labels.*.name, 'run-bundling')) && env.RELEASE_CHANNEL == 'preview' }} # upload only preview + if: ${{ !(contains(github.event.pull_request.labels.*.name, 'run-bundling')) && env.RELEASE_CHANNEL == 'preview' }} # upload only preview with: draft: true prerelease: ${{ env.RELEASE_CHANNEL == 'preview' }} From d197c96cdc83d2e3b163784944296b377d3c9f42 Mon Sep 17 00:00:00 2001 From: Michael Sloan Date: Fri, 18 Jul 2025 12:58:55 -0600 Subject: [PATCH 0070/1052] Add stripe-mock to docker compose configuration (#34732) Release Notes: - N/A --- compose.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/compose.yml b/compose.yml index 4cd4c86df6..06e8806d20 100644 --- a/compose.yml +++ b/compose.yml @@ -59,5 +59,11 @@ services: depends_on: - postgres + stripe-mock: + image: stripe/stripe-mock:v0.184.0 + ports: + - 12111:12111 + - 12112:12112 + volumes: postgres_data: From 43486c416c2be9a25322c52c71b2ed802593bcd4 Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Fri, 18 Jul 2025 13:04:05 -0600 Subject: [PATCH 0071/1052] Fix enter in branch view (#34731) Broken by #34664 Release Notes: - N/A --- assets/keymaps/default-linux.json | 2 +- assets/keymaps/default-macos.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/keymaps/default-linux.json b/assets/keymaps/default-linux.json index 8e67031485..6aba27fec8 100644 --- a/assets/keymaps/default-linux.json +++ b/assets/keymaps/default-linux.json @@ -928,7 +928,7 @@ } }, { - "context": "GitPanel > Editor", + "context": "CommitEditor > Editor", "bindings": { "escape": "git_panel::FocusChanges", "tab": "git_panel::FocusChanges", diff --git a/assets/keymaps/default-macos.json b/assets/keymaps/default-macos.json index 70edee8534..6bce3b0f28 100644 --- a/assets/keymaps/default-macos.json +++ b/assets/keymaps/default-macos.json @@ -975,7 +975,7 @@ } }, { - "context": "GitPanel > Editor", + "context": "CommitEditor > Editor", "use_key_equivalents": true, "bindings": { "enter": "editor::Newline", From 70bde54a2c861310eeb005e177019c96947dff09 Mon Sep 17 00:00:00 2001 From: Peter Tripp Date: Fri, 18 Jul 2025 15:15:07 -0400 Subject: [PATCH 0072/1052] ci: Lint GitHub Actions workflows with actionlint (#34729) Added [rhysd/actionlint](https://github.com/rhysd/actionlint/) a static checker for GitHub Actions workflow files. Install locally with `brew install actionlint` the run with `actionlint`. Inspired by: https://github.com/zed-industries/zed/pull/34704 which yielded this observation: > In github actions: > 1. strings are truthy > 2. `${{ }}` will become a string if it doesn't wrap the whole value. > > So `if: false && true` becomes `false` > and `if: ${{ false && true }}` becomes `false` > but `if: false && ${{ true }}` becomes `"false && true"` which evaluates true > The reason you sometimes need `${{ }}` is because YAML doesn't like `!` > so `if: !false` is invalid yaml > and `if: ${{ !false }}` works just fine. Changes: - Add `actionlint` job - Refactor `job_spec` job to be more readable - Fix all `actionlint` and `shellcheck` errors in Actions workflows (62 in all) - Add `self-mini-macos` and `self-32vcpu-windows-2022` labels to self-hosted runners. Not strictly related, but useful if you need to take a runner out of the rotation (since `macOS`, `self-hosted`, and `ARM64` are auto-set and cannot be added/removed). - Change ci.yml macos_relase to target `self-mini-macos` instead of `bundle` which was previously deprecated. This would've caught the error fixed in https://github.com/zed-industries/zed/pull/34704. Here's what that [job failure](https://github.com/zed-industries/zed/actions/runs/16376993944/job/46279281842?pr=34729) would've looked like. Release Notes: - N/A --- .github/actionlint.yml | 30 ++++++ .github/workflows/bump_patch_version.yml | 8 +- .github/workflows/ci.yml | 100 +++++++++++------- .../workflows/community_release_actions.yml | 6 +- .github/workflows/deploy_collab.yml | 9 +- .github/workflows/eval.yml | 2 +- .github/workflows/nix.yml | 10 +- .github/workflows/release_nightly.yml | 5 +- .github/workflows/unit_evals.yml | 2 +- 9 files changed, 111 insertions(+), 61 deletions(-) create mode 100644 .github/actionlint.yml diff --git a/.github/actionlint.yml b/.github/actionlint.yml new file mode 100644 index 0000000000..d93ec5b15e --- /dev/null +++ b/.github/actionlint.yml @@ -0,0 +1,30 @@ +# Configuration related to self-hosted runner. +self-hosted-runner: + # Labels of self-hosted runner in array of strings. + labels: + # GitHub-hosted Runners + - github-8vcpu-ubuntu-2404 + - github-16vcpu-ubuntu-2404 + - windows-2025-16 + - windows-2025-32 + - windows-2025-64 + # Buildjet Ubuntu 20.04 - AMD x86_64 + - buildjet-2vcpu-ubuntu-2004 + - buildjet-4vcpu-ubuntu-2004 + - buildjet-8vcpu-ubuntu-2004 + - buildjet-16vcpu-ubuntu-2004 + - buildjet-32vcpu-ubuntu-2004 + # Buildjet Ubuntu 22.04 - AMD x86_64 + - buildjet-2vcpu-ubuntu-2204 + - buildjet-4vcpu-ubuntu-2204 + - buildjet-8vcpu-ubuntu-2204 + - buildjet-16vcpu-ubuntu-2204 + - buildjet-32vcpu-ubuntu-2204 + # Buildjet Ubuntu 22.04 - Graviton aarch64 + - buildjet-8vcpu-ubuntu-2204-arm + - buildjet-16vcpu-ubuntu-2204-arm + - buildjet-32vcpu-ubuntu-2204-arm + - buildjet-64vcpu-ubuntu-2204-arm + # Self Hosted Runners + - self-mini-macos + - self-32vcpu-windows-2022 diff --git a/.github/workflows/bump_patch_version.yml b/.github/workflows/bump_patch_version.yml index 02857a9151..8a48ff96f1 100644 --- a/.github/workflows/bump_patch_version.yml +++ b/.github/workflows/bump_patch_version.yml @@ -28,7 +28,7 @@ jobs: run: | set -eux - channel=$(cat crates/zed/RELEASE_CHANNEL) + channel="$(cat crates/zed/RELEASE_CHANNEL)" tag_suffix="" case $channel in @@ -43,9 +43,9 @@ jobs: ;; esac which cargo-set-version > /dev/null || cargo install cargo-edit - output=$(cargo set-version -p zed --bump patch 2>&1 | sed 's/.* //') + output="$(cargo set-version -p zed --bump patch 2>&1 | sed 's/.* //')" export GIT_COMMITTER_NAME="Zed Bot" export GIT_COMMITTER_EMAIL="hi@zed.dev" git commit -am "Bump to $output for @$GITHUB_ACTOR" --author "Zed Bot " - git tag v${output}${tag_suffix} - git push origin HEAD v${output}${tag_suffix} + git tag "v${output}${tag_suffix}" + git push origin HEAD "v${output}${tag_suffix}" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6987022f7a..a4da5e99ba 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,6 +34,7 @@ jobs: run_license: ${{ steps.filter.outputs.run_license }} run_docs: ${{ steps.filter.outputs.run_docs }} run_nix: ${{ steps.filter.outputs.run_nix }} + run_actionlint: ${{ steps.filter.outputs.run_actionlint }} runs-on: - ubuntu-latest steps: @@ -47,39 +48,40 @@ jobs: run: | if [ -z "$GITHUB_BASE_REF" ]; then echo "Not in a PR context (i.e., push to main/stable/preview)" - COMPARE_REV=$(git rev-parse HEAD~1) + COMPARE_REV="$(git rev-parse HEAD~1)" else echo "In a PR context comparing to pull_request.base.ref" git fetch origin "$GITHUB_BASE_REF" --depth=350 - COMPARE_REV=$(git merge-base "origin/${GITHUB_BASE_REF}" HEAD) + COMPARE_REV="$(git merge-base "origin/${GITHUB_BASE_REF}" HEAD)" fi - # Specify anything which should skip full CI in this regex: + CHANGED_FILES="$(git diff --name-only "$COMPARE_REV" ${{ github.sha }})" + + # Specify anything which should potentially skip full test suite in this regex: # - docs/ # - script/update_top_ranking_issues/ # - .github/ISSUE_TEMPLATE/ # - .github/workflows/ (except .github/workflows/ci.yml) SKIP_REGEX='^(docs/|script/update_top_ranking_issues/|\.github/(ISSUE_TEMPLATE|workflows/(?!ci)))' - if [[ $(git diff --name-only $COMPARE_REV ${{ github.sha }} | grep -vP "$SKIP_REGEX") ]]; then - echo "run_tests=true" >> $GITHUB_OUTPUT - else - echo "run_tests=false" >> $GITHUB_OUTPUT - fi - if [[ $(git diff --name-only $COMPARE_REV ${{ github.sha }} | grep '^docs/') ]]; then - echo "run_docs=true" >> $GITHUB_OUTPUT - else - echo "run_docs=false" >> $GITHUB_OUTPUT - fi - if [[ $(git diff --name-only $COMPARE_REV ${{ github.sha }} | grep -P '^(Cargo.lock|script/.*licenses)') ]]; then - echo "run_license=true" >> $GITHUB_OUTPUT - else - echo "run_license=false" >> $GITHUB_OUTPUT - fi - NIX_REGEX='^(nix/|flake\.|Cargo\.|rust-toolchain.toml|\.cargo/config.toml)' - if [[ $(git diff --name-only $COMPARE_REV ${{ github.sha }} | grep -P "$NIX_REGEX") ]]; then - echo "run_nix=true" >> $GITHUB_OUTPUT - else - echo "run_nix=false" >> $GITHUB_OUTPUT - fi + + echo "$CHANGED_FILES" | grep -qvP "$SKIP_REGEX" && \ + echo "run_tests=true" >> "$GITHUB_OUTPUT" || \ + echo "run_tests=false" >> "$GITHUB_OUTPUT" + + echo "$CHANGED_FILES" | grep -qP '^docs/' && \ + echo "run_docs=true" >> "$GITHUB_OUTPUT" || \ + echo "run_docs=false" >> "$GITHUB_OUTPUT" + + echo "$CHANGED_FILES" | grep -qP '^\.github/(workflows/|actions/|actionlint.yml)' && \ + echo "run_actionlint=true" >> "$GITHUB_OUTPUT" || \ + echo "run_actionlint=false" >> "$GITHUB_OUTPUT" + + echo "$CHANGED_FILES" | grep -qP '^(Cargo.lock|script/.*licenses)' && \ + echo "run_license=true" >> "$GITHUB_OUTPUT" || \ + echo "run_license=false" >> "$GITHUB_OUTPUT" + + echo "$CHANGED_FILES" | grep -qP '^(nix/|flake\.|Cargo\.|rust-toolchain.toml|\.cargo/config.toml)' && \ + echo "run_nix=true" >> "$GITHUB_OUTPUT" || \ + echo "run_nix=false" >> "$GITHUB_OUTPUT" migration_checks: name: Check Postgres and Protobuf migrations, mergability @@ -89,8 +91,7 @@ jobs: needs.job_spec.outputs.run_tests == 'true' timeout-minutes: 60 runs-on: - - self-hosted - - macOS + - self-mini-macos steps: - name: Checkout repo uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 @@ -112,11 +113,11 @@ jobs: run: | if [ -z "$GITHUB_BASE_REF" ]; then - echo "BUF_BASE_BRANCH=$(git merge-base origin/main HEAD)" >> $GITHUB_ENV + echo "BUF_BASE_BRANCH=$(git merge-base origin/main HEAD)" >> "$GITHUB_ENV" else git checkout -B temp - git merge -q origin/$GITHUB_BASE_REF -m "merge main into temp" - echo "BUF_BASE_BRANCH=$GITHUB_BASE_REF" >> $GITHUB_ENV + git merge -q "origin/$GITHUB_BASE_REF" -m "merge main into temp" + echo "BUF_BASE_BRANCH=$GITHUB_BASE_REF" >> "$GITHUB_ENV" fi - uses: bufbuild/buf-setup-action@v1 @@ -140,7 +141,7 @@ jobs: - name: Checkout repo uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: Add Rust to the PATH - run: echo "$HOME/.cargo/bin" >> $GITHUB_PATH + run: echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Install cargo-hakari uses: clechasseur/rs-cargo@8435b10f6e71c2e3d4d3b7573003a8ce4bfc6386 # v2 with: @@ -178,7 +179,7 @@ jobs: - name: Prettier Check on /docs working-directory: ./docs run: | - pnpm dlx prettier@${PRETTIER_VERSION} . --check || { + pnpm dlx "prettier@${PRETTIER_VERSION}" . --check || { echo "To fix, run from the root of the Zed repo:" echo " cd docs && pnpm dlx prettier@${PRETTIER_VERSION} . --write && cd .." false @@ -188,7 +189,7 @@ jobs: - name: Prettier Check on default.json run: | - pnpm dlx prettier@${PRETTIER_VERSION} assets/settings/default.json --check || { + pnpm dlx "prettier@${PRETTIER_VERSION}" assets/settings/default.json --check || { echo "To fix, run from the root of the Zed repo:" echo " pnpm dlx prettier@${PRETTIER_VERSION} assets/settings/default.json --write" false @@ -234,6 +235,20 @@ jobs: - name: Build docs uses: ./.github/actions/build_docs + actionlint: + runs-on: ubuntu-latest + if: github.repository_owner == 'zed-industries' && needs.job_spec.outputs.run_actionlint == 'true' + needs: [job_spec] + steps: + - uses: actions/checkout@v4 + - name: Download actionlint + id: get_actionlint + run: bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash) + shell: bash + - name: Check workflow files + run: ${{ steps.get_actionlint.outputs.executable }} -color + shell: bash + macos_tests: timeout-minutes: 60 name: (macOS) Run Clippy and tests @@ -242,8 +257,7 @@ jobs: github.repository_owner == 'zed-industries' && needs.job_spec.outputs.run_tests == 'true' runs-on: - - self-hosted - - macOS + - self-mini-macos steps: - name: Checkout repo uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 @@ -312,7 +326,7 @@ jobs: - buildjet-16vcpu-ubuntu-2204 steps: - name: Add Rust to the PATH - run: echo "$HOME/.cargo/bin" >> $GITHUB_PATH + run: echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Checkout repo uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 @@ -364,7 +378,7 @@ jobs: - buildjet-8vcpu-ubuntu-2204 steps: - name: Add Rust to the PATH - run: echo "$HOME/.cargo/bin" >> $GITHUB_PATH + run: echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Checkout repo uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 @@ -444,6 +458,7 @@ jobs: - job_spec - style - check_docs + - actionlint - migration_checks # run_tests: If adding required tests, add them here and to script below. - workspace_hack @@ -465,6 +480,11 @@ jobs: if [[ "${{ needs.job_spec.outputs.run_docs }}" == "true" ]]; then [[ "${{ needs.check_docs.result }}" != 'success' ]] && { RET_CODE=1; echo "docs checks failed"; } fi + + if [[ "${{ needs.job_spec.outputs.run_actionlint }}" == "true" ]]; then + [[ "${{ needs.actionlint.result }}" != 'success' ]] && { RET_CODE=1; echo "actionlint checks failed"; } + fi + # Only check test jobs if they were supposed to run if [[ "${{ needs.job_spec.outputs.run_tests }}" == "true" ]]; then [[ "${{ needs.workspace_hack.result }}" != 'success' ]] && { RET_CODE=1; echo "Workspace Hack failed"; } @@ -484,8 +504,7 @@ jobs: timeout-minutes: 120 name: Create a macOS bundle runs-on: - - self-hosted - - bundle + - self-mini-macos if: | startsWith(github.ref, 'refs/tags/v') || contains(github.event.pull_request.labels.*.name, 'run-bundling') @@ -802,10 +821,9 @@ jobs: && endsWith(github.ref, '-pre') && !endsWith(github.ref, '.0-pre') needs: [bundle-mac, bundle-linux-x86_x64, bundle-linux-aarch64, bundle-windows-x64] runs-on: - - self-hosted - - bundle + - self-mini-macos steps: - name: gh release - run: gh release edit $GITHUB_REF_NAME --draft=false + run: gh release edit "$GITHUB_REF_NAME" --draft=false env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/community_release_actions.yml b/.github/workflows/community_release_actions.yml index 3e253978b7..31dda1fa6d 100644 --- a/.github/workflows/community_release_actions.yml +++ b/.github/workflows/community_release_actions.yml @@ -18,7 +18,7 @@ jobs: URL="https://zed.dev/releases/stable/latest" fi - echo "URL=$URL" >> $GITHUB_OUTPUT + echo "URL=$URL" >> "$GITHUB_OUTPUT" - name: Get content uses: 2428392/gh-truncate-string-action@b3ff790d21cf42af3ca7579146eedb93c8fb0757 # v1.4.1 id: get-content @@ -50,9 +50,9 @@ jobs: PREVIEW_TAG="${VERSION}-pre" if git rev-parse "$PREVIEW_TAG" > /dev/null 2>&1; then - echo "was_promoted_from_preview=true" >> $GITHUB_OUTPUT + echo "was_promoted_from_preview=true" >> "$GITHUB_OUTPUT" else - echo "was_promoted_from_preview=false" >> $GITHUB_OUTPUT + echo "was_promoted_from_preview=false" >> "$GITHUB_OUTPUT" fi - name: Send release notes email diff --git a/.github/workflows/deploy_collab.yml b/.github/workflows/deploy_collab.yml index cfd455f920..f7348a1069 100644 --- a/.github/workflows/deploy_collab.yml +++ b/.github/workflows/deploy_collab.yml @@ -79,12 +79,12 @@ jobs: - name: Build docker image run: | docker build -f Dockerfile-collab \ - --build-arg GITHUB_SHA=$GITHUB_SHA \ - --tag registry.digitalocean.com/zed/collab:$GITHUB_SHA \ + --build-arg "GITHUB_SHA=$GITHUB_SHA" \ + --tag "registry.digitalocean.com/zed/collab:$GITHUB_SHA" \ . - name: Publish docker image - run: docker push registry.digitalocean.com/zed/collab:${GITHUB_SHA} + run: docker push "registry.digitalocean.com/zed/collab:${GITHUB_SHA}" - name: Prune Docker system run: docker system prune --filter 'until=72h' -f @@ -131,7 +131,8 @@ jobs: source script/lib/deploy-helpers.sh export_vars_for_environment $ZED_KUBE_NAMESPACE - export ZED_DO_CERTIFICATE_ID=$(doctl compute certificate list --format ID --no-header) + ZED_DO_CERTIFICATE_ID="$(doctl compute certificate list --format ID --no-header)" + export ZED_DO_CERTIFICATE_ID export ZED_IMAGE_ID="registry.digitalocean.com/zed/collab:${GITHUB_SHA}" export ZED_SERVICE_NAME=collab diff --git a/.github/workflows/eval.yml b/.github/workflows/eval.yml index 6eefdfea95..2ad302a602 100644 --- a/.github/workflows/eval.yml +++ b/.github/workflows/eval.yml @@ -35,7 +35,7 @@ jobs: - buildjet-16vcpu-ubuntu-2204 steps: - name: Add Rust to the PATH - run: echo "$HOME/.cargo/bin" >> $GITHUB_PATH + run: echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Checkout repo uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 diff --git a/.github/workflows/nix.yml b/.github/workflows/nix.yml index 155fc484f5..beacd27774 100644 --- a/.github/workflows/nix.yml +++ b/.github/workflows/nix.yml @@ -43,8 +43,8 @@ jobs: - name: Set path if: ${{ ! matrix.system.install_nix }} run: | - echo "/nix/var/nix/profiles/default/bin" >> $GITHUB_PATH - echo "/Users/administrator/.nix-profile/bin" >> $GITHUB_PATH + echo "/nix/var/nix/profiles/default/bin" >> "$GITHUB_PATH" + echo "/Users/administrator/.nix-profile/bin" >> "$GITHUB_PATH" - uses: cachix/install-nix-action@02a151ada4993995686f9ed4f1be7cfbb229e56f # v31 if: ${{ matrix.system.install_nix }} @@ -56,11 +56,13 @@ jobs: name: zed authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" pushFilter: "${{ inputs.cachix-filter }}" - cachixArgs: '-v' + cachixArgs: "-v" - run: nix build .#${{ inputs.flake-output }} -L --accept-flake-config - name: Limit /nix/store to 50GB on macs if: ${{ ! matrix.system.install_nix }} run: | - [ $(du -sm /nix/store | cut -f1) -gt 50000 ] && nix-collect-garbage -d || : + if [ "$(du -sm /nix/store | cut -f1)" -gt 50000 ]; then + nix-collect-garbage -d || true + fi diff --git a/.github/workflows/release_nightly.yml b/.github/workflows/release_nightly.yml index 4be20525f9..f799133ea7 100644 --- a/.github/workflows/release_nightly.yml +++ b/.github/workflows/release_nightly.yml @@ -85,8 +85,7 @@ jobs: name: Create a macOS bundle if: github.repository_owner == 'zed-industries' runs-on: - - self-hosted - - bundle + - self-mini-macos needs: tests env: MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }} @@ -132,7 +131,7 @@ jobs: clean: false - name: Add Rust to the PATH - run: echo "$HOME/.cargo/bin" >> $GITHUB_PATH + run: echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Install Linux dependencies run: ./script/linux && ./script/install-mold 2.34.0 diff --git a/.github/workflows/unit_evals.yml b/.github/workflows/unit_evals.yml index 705caff37a..cb4e39d151 100644 --- a/.github/workflows/unit_evals.yml +++ b/.github/workflows/unit_evals.yml @@ -26,7 +26,7 @@ jobs: - buildjet-16vcpu-ubuntu-2204 steps: - name: Add Rust to the PATH - run: echo "$HOME/.cargo/bin" >> $GITHUB_PATH + run: echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Checkout repo uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 From 4bdac8026c6334f88777ab1f69145e124292a5d0 Mon Sep 17 00:00:00 2001 From: morgankrey Date: Fri, 18 Jul 2025 16:42:48 -0500 Subject: [PATCH 0073/1052] collab: Enable automatic tax calculation for all new subscriptions (#34720) Release Notes: - N/A --------- Co-authored-by: Marshall Bowers --- crates/collab/src/stripe_billing.rs | 5 ++-- crates/collab/src/stripe_client.rs | 6 +++++ .../src/stripe_client/real_stripe_client.rs | 23 ++++++++++++++----- 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/crates/collab/src/stripe_billing.rs b/crates/collab/src/stripe_billing.rs index fdd9653d7c..3d52dea0e3 100644 --- a/crates/collab/src/stripe_billing.rs +++ b/crates/collab/src/stripe_billing.rs @@ -11,8 +11,8 @@ use crate::Result; use crate::db::billing_subscription::SubscriptionKind; use crate::llm::AGENT_EXTENDED_TRIAL_FEATURE_FLAG; use crate::stripe_client::{ - RealStripeClient, StripeBillingAddressCollection, StripeCheckoutSessionMode, - StripeCheckoutSessionPaymentMethodCollection, StripeClient, + RealStripeClient, StripeAutomaticTax, StripeBillingAddressCollection, + StripeCheckoutSessionMode, StripeCheckoutSessionPaymentMethodCollection, StripeClient, StripeCreateCheckoutSessionLineItems, StripeCreateCheckoutSessionParams, StripeCreateCheckoutSessionSubscriptionData, StripeCreateMeterEventParams, StripeCreateMeterEventPayload, StripeCreateSubscriptionItems, StripeCreateSubscriptionParams, @@ -344,6 +344,7 @@ impl StripeBilling { price: Some(zed_free_price_id), quantity: Some(1), }], + automatic_tax: Some(StripeAutomaticTax { enabled: true }), }; let subscription = self.client.create_subscription(params).await?; diff --git a/crates/collab/src/stripe_client.rs b/crates/collab/src/stripe_client.rs index ec947e12f7..6e75a4d874 100644 --- a/crates/collab/src/stripe_client.rs +++ b/crates/collab/src/stripe_client.rs @@ -73,6 +73,7 @@ pub enum StripeCancellationDetailsReason { pub struct StripeCreateSubscriptionParams { pub customer: StripeCustomerId, pub items: Vec, + pub automatic_tax: Option, } #[derive(Debug)] @@ -224,6 +225,11 @@ pub struct StripeTaxIdCollection { pub enabled: bool, } +#[derive(Debug, Clone)] +pub struct StripeAutomaticTax { + pub enabled: bool, +} + #[derive(Debug)] pub struct StripeCheckoutSession { pub url: Option, diff --git a/crates/collab/src/stripe_client/real_stripe_client.rs b/crates/collab/src/stripe_client/real_stripe_client.rs index 07dde68d17..07c191ff30 100644 --- a/crates/collab/src/stripe_client/real_stripe_client.rs +++ b/crates/collab/src/stripe_client/real_stripe_client.rs @@ -10,16 +10,17 @@ use stripe::{ CreateCheckoutSessionSubscriptionData, CreateCheckoutSessionSubscriptionDataTrialSettings, CreateCheckoutSessionSubscriptionDataTrialSettingsEndBehavior, CreateCheckoutSessionSubscriptionDataTrialSettingsEndBehaviorMissingPaymentMethod, - CreateCustomer, Customer, CustomerId, ListCustomers, Price, PriceId, Recurring, Subscription, - SubscriptionId, SubscriptionItem, SubscriptionItemId, UpdateCustomer, UpdateSubscriptionItems, - UpdateSubscriptionTrialSettings, UpdateSubscriptionTrialSettingsEndBehavior, + CreateCustomer, CreateSubscriptionAutomaticTax, Customer, CustomerId, ListCustomers, Price, + PriceId, Recurring, Subscription, SubscriptionId, SubscriptionItem, SubscriptionItemId, + UpdateCustomer, UpdateSubscriptionItems, UpdateSubscriptionTrialSettings, + UpdateSubscriptionTrialSettingsEndBehavior, UpdateSubscriptionTrialSettingsEndBehaviorMissingPaymentMethod, }; use crate::stripe_client::{ - CreateCustomerParams, StripeBillingAddressCollection, StripeCancellationDetails, - StripeCancellationDetailsReason, StripeCheckoutSession, StripeCheckoutSessionMode, - StripeCheckoutSessionPaymentMethodCollection, StripeClient, + CreateCustomerParams, StripeAutomaticTax, StripeBillingAddressCollection, + StripeCancellationDetails, StripeCancellationDetailsReason, StripeCheckoutSession, + StripeCheckoutSessionMode, StripeCheckoutSessionPaymentMethodCollection, StripeClient, StripeCreateCheckoutSessionLineItems, StripeCreateCheckoutSessionParams, StripeCreateCheckoutSessionSubscriptionData, StripeCreateMeterEventParams, StripeCreateSubscriptionParams, StripeCustomer, StripeCustomerId, StripeCustomerUpdate, @@ -151,6 +152,7 @@ impl StripeClient for RealStripeClient { }) .collect(), ); + create_subscription.automatic_tax = params.automatic_tax.map(Into::into); let subscription = Subscription::create(&self.client, create_subscription).await?; @@ -366,6 +368,15 @@ impl From for StripeSubscriptionItem { } } +impl From for CreateSubscriptionAutomaticTax { + fn from(value: StripeAutomaticTax) -> Self { + Self { + enabled: value.enabled, + liability: None, + } + } +} + impl From for UpdateSubscriptionTrialSettings { fn from(value: StripeSubscriptionTrialSettings) -> Self { Self { From 2da2ae65a07dbace600e301b63640ac07ab61289 Mon Sep 17 00:00:00 2001 From: Mikayla Maki Date: Fri, 18 Jul 2025 18:27:54 -0700 Subject: [PATCH 0074/1052] gpui: Add use state APIs (#34741) This PR adds a component level state API to GPUI, as well as a few utilities for simplified interactions with entities Release Notes: - N/A --- crates/eval/src/example.rs | 7 ++ crates/gpui/src/app.rs | 96 +++++++++++++++++++- crates/gpui/src/app/async_context.rs | 20 +++- crates/gpui/src/app/context.rs | 7 ++ crates/gpui/src/app/entity_map.rs | 32 +++++-- crates/gpui/src/app/test_context.rs | 21 +++++ crates/gpui/src/element.rs | 29 +++--- crates/gpui/src/gpui.rs | 5 + crates/gpui/src/window.rs | 50 ++++++++++ crates/gpui_macros/src/derive_app_context.rs | 10 ++ 10 files changed, 252 insertions(+), 25 deletions(-) diff --git a/crates/eval/src/example.rs b/crates/eval/src/example.rs index 09770364cb..7ce3b1fdf1 100644 --- a/crates/eval/src/example.rs +++ b/crates/eval/src/example.rs @@ -422,6 +422,13 @@ impl AppContext for ExampleContext { self.app.update_entity(handle, update) } + fn as_mut<'a, T>(&'a mut self, handle: &Entity) -> Self::Result> + where + T: 'static, + { + self.app.as_mut(handle) + } + fn read_entity( &self, handle: &Entity, diff --git a/crates/gpui/src/app.rs b/crates/gpui/src/app.rs index 957c7c4be6..70e1d1e4cd 100644 --- a/crates/gpui/src/app.rs +++ b/crates/gpui/src/app.rs @@ -448,15 +448,23 @@ impl App { } pub(crate) fn update(&mut self, update: impl FnOnce(&mut Self) -> R) -> R { - self.pending_updates += 1; + self.start_update(); let result = update(self); + self.finish_update(); + result + } + + pub(crate) fn start_update(&mut self) { + self.pending_updates += 1; + } + + pub(crate) fn finish_update(&mut self) { if !self.flushing_effects && self.pending_updates == 1 { self.flushing_effects = true; self.flush_effects(); self.flushing_effects = false; } self.pending_updates -= 1; - result } /// Arrange a callback to be invoked when the given entity calls `notify` on its respective context. @@ -868,7 +876,6 @@ impl App { loop { self.release_dropped_entities(); self.release_dropped_focus_handles(); - if let Some(effect) = self.pending_effects.pop_front() { match effect { Effect::Notify { emitter } => { @@ -1819,6 +1826,13 @@ impl AppContext for App { }) } + fn as_mut<'a, T>(&'a mut self, handle: &Entity) -> GpuiBorrow<'a, T> + where + T: 'static, + { + GpuiBorrow::new(handle.clone(), self) + } + fn read_entity( &self, handle: &Entity, @@ -2015,3 +2029,79 @@ impl HttpClient for NullHttpClient { type_name::() } } + +/// A mutable reference to an entity owned by GPUI +pub struct GpuiBorrow<'a, T> { + inner: Option>, + app: &'a mut App, +} + +impl<'a, T: 'static> GpuiBorrow<'a, T> { + fn new(inner: Entity, app: &'a mut App) -> Self { + app.start_update(); + let lease = app.entities.lease(&inner); + Self { + inner: Some(lease), + app, + } + } +} + +impl<'a, T: 'static> std::borrow::Borrow for GpuiBorrow<'a, T> { + fn borrow(&self) -> &T { + self.inner.as_ref().unwrap().borrow() + } +} + +impl<'a, T: 'static> std::borrow::BorrowMut for GpuiBorrow<'a, T> { + fn borrow_mut(&mut self) -> &mut T { + self.inner.as_mut().unwrap().borrow_mut() + } +} + +impl<'a, T> Drop for GpuiBorrow<'a, T> { + fn drop(&mut self) { + let lease = self.inner.take().unwrap(); + self.app.notify(lease.id); + self.app.entities.end_lease(lease); + self.app.finish_update(); + } +} + +#[cfg(test)] +mod test { + use std::{cell::RefCell, rc::Rc}; + + use crate::{AppContext, TestAppContext}; + + #[test] + fn test_gpui_borrow() { + let cx = TestAppContext::single(); + let observation_count = Rc::new(RefCell::new(0)); + + let state = cx.update(|cx| { + let state = cx.new(|_| false); + cx.observe(&state, { + let observation_count = observation_count.clone(); + move |_, _| { + let mut count = observation_count.borrow_mut(); + *count += 1; + } + }) + .detach(); + + state + }); + + cx.update(|cx| { + // Calling this like this so that we don't clobber the borrow_mut above + *std::borrow::BorrowMut::borrow_mut(&mut state.as_mut(cx)) = true; + }); + + cx.update(|cx| { + state.write(cx, false); + }); + + assert_eq!(*observation_count.borrow(), 2); + } +} diff --git a/crates/gpui/src/app/async_context.rs b/crates/gpui/src/app/async_context.rs index c3b60dd580..d9d21c0244 100644 --- a/crates/gpui/src/app/async_context.rs +++ b/crates/gpui/src/app/async_context.rs @@ -3,7 +3,7 @@ use crate::{ Entity, EventEmitter, Focusable, ForegroundExecutor, Global, PromptButton, PromptLevel, Render, Reservation, Result, Subscription, Task, VisualContext, Window, WindowHandle, }; -use anyhow::Context as _; +use anyhow::{Context as _, anyhow}; use derive_more::{Deref, DerefMut}; use futures::channel::oneshot; use std::{future::Future, rc::Weak}; @@ -58,6 +58,15 @@ impl AppContext for AsyncApp { Ok(app.update_entity(handle, update)) } + fn as_mut<'a, T>(&'a mut self, _handle: &Entity) -> Self::Result> + where + T: 'static, + { + Err(anyhow!( + "Cannot as_mut with an async context. Try calling update() first" + )) + } + fn read_entity( &self, handle: &Entity, @@ -364,6 +373,15 @@ impl AppContext for AsyncWindowContext { .update(self, |_, _, cx| cx.update_entity(handle, update)) } + fn as_mut<'a, T>(&'a mut self, _: &Entity) -> Self::Result> + where + T: 'static, + { + Err(anyhow!( + "Cannot use as_mut() from an async context, call `update`" + )) + } + fn read_entity( &self, handle: &Entity, diff --git a/crates/gpui/src/app/context.rs b/crates/gpui/src/app/context.rs index 2d90ff35b1..392be2ffe9 100644 --- a/crates/gpui/src/app/context.rs +++ b/crates/gpui/src/app/context.rs @@ -726,6 +726,13 @@ impl AppContext for Context<'_, T> { self.app.update_entity(handle, update) } + fn as_mut<'a, E>(&'a mut self, handle: &Entity) -> Self::Result> + where + E: 'static, + { + self.app.as_mut(handle) + } + fn read_entity( &self, handle: &Entity, diff --git a/crates/gpui/src/app/entity_map.rs b/crates/gpui/src/app/entity_map.rs index f1aafa55e8..d4e5b2570e 100644 --- a/crates/gpui/src/app/entity_map.rs +++ b/crates/gpui/src/app/entity_map.rs @@ -1,4 +1,4 @@ -use crate::{App, AppContext, VisualContext, Window, seal::Sealed}; +use crate::{App, AppContext, GpuiBorrow, VisualContext, Window, seal::Sealed}; use anyhow::{Context as _, Result}; use collections::FxHashSet; use derive_more::{Deref, DerefMut}; @@ -105,7 +105,7 @@ impl EntityMap { /// Move an entity to the stack. #[track_caller] - pub fn lease<'a, T>(&mut self, pointer: &'a Entity) -> Lease<'a, T> { + pub fn lease(&mut self, pointer: &Entity) -> Lease { self.assert_valid_context(pointer); let mut accessed_entities = self.accessed_entities.borrow_mut(); accessed_entities.insert(pointer.entity_id); @@ -117,15 +117,14 @@ impl EntityMap { ); Lease { entity, - pointer, + id: pointer.entity_id, entity_type: PhantomData, } } /// Returns an entity after moving it to the stack. pub fn end_lease(&mut self, mut lease: Lease) { - self.entities - .insert(lease.pointer.entity_id, lease.entity.take().unwrap()); + self.entities.insert(lease.id, lease.entity.take().unwrap()); } pub fn read(&self, entity: &Entity) -> &T { @@ -187,13 +186,13 @@ fn double_lease_panic(operation: &str) -> ! { ) } -pub(crate) struct Lease<'a, T> { +pub(crate) struct Lease { entity: Option>, - pub pointer: &'a Entity, + pub id: EntityId, entity_type: PhantomData, } -impl core::ops::Deref for Lease<'_, T> { +impl core::ops::Deref for Lease { type Target = T; fn deref(&self) -> &Self::Target { @@ -201,13 +200,13 @@ impl core::ops::Deref for Lease<'_, T> { } } -impl core::ops::DerefMut for Lease<'_, T> { +impl core::ops::DerefMut for Lease { fn deref_mut(&mut self) -> &mut Self::Target { self.entity.as_mut().unwrap().downcast_mut().unwrap() } } -impl Drop for Lease<'_, T> { +impl Drop for Lease { fn drop(&mut self) { if self.entity.is_some() && !panicking() { panic!("Leases must be ended with EntityMap::end_lease") @@ -437,6 +436,19 @@ impl Entity { cx.update_entity(self, update) } + /// Updates the entity referenced by this handle with the given function. + pub fn as_mut<'a, C: AppContext>(&self, cx: &'a mut C) -> C::Result> { + cx.as_mut(self) + } + + /// Updates the entity referenced by this handle with the given function. + pub fn write(&self, cx: &mut C, value: T) -> C::Result<()> { + self.update(cx, |entity, cx| { + *entity = value; + cx.notify(); + }) + } + /// Updates the entity referenced by this handle with the given function if /// the referenced entity still exists, within a visual context that has a window. /// Returns an error if the entity has been released. diff --git a/crates/gpui/src/app/test_context.rs b/crates/gpui/src/app/test_context.rs index dfc7af0d9c..35e6032671 100644 --- a/crates/gpui/src/app/test_context.rs +++ b/crates/gpui/src/app/test_context.rs @@ -9,6 +9,7 @@ use crate::{ }; use anyhow::{anyhow, bail}; use futures::{Stream, StreamExt, channel::oneshot}; +use rand::{SeedableRng, rngs::StdRng}; use std::{cell::RefCell, future::Future, ops::Deref, rc::Rc, sync::Arc, time::Duration}; /// A TestAppContext is provided to tests created with `#[gpui::test]`, it provides @@ -63,6 +64,13 @@ impl AppContext for TestAppContext { app.update_entity(handle, update) } + fn as_mut<'a, T>(&'a mut self, _: &Entity) -> Self::Result> + where + T: 'static, + { + panic!("Cannot use as_mut with a test app context. Try calling update() first") + } + fn read_entity( &self, handle: &Entity, @@ -134,6 +142,12 @@ impl TestAppContext { } } + /// Create a single TestAppContext, for non-multi-client tests + pub fn single() -> Self { + let dispatcher = TestDispatcher::new(StdRng::from_entropy()); + Self::build(dispatcher, None) + } + /// The name of the test function that created this `TestAppContext` pub fn test_function_name(&self) -> Option<&'static str> { self.fn_name @@ -914,6 +928,13 @@ impl AppContext for VisualTestContext { self.cx.update_entity(handle, update) } + fn as_mut<'a, T>(&'a mut self, handle: &Entity) -> Self::Result> + where + T: 'static, + { + self.cx.as_mut(handle) + } + fn read_entity( &self, handle: &Entity, diff --git a/crates/gpui/src/element.rs b/crates/gpui/src/element.rs index 2852841b2c..e5f49c7be1 100644 --- a/crates/gpui/src/element.rs +++ b/crates/gpui/src/element.rs @@ -39,7 +39,7 @@ use crate::{ use derive_more::{Deref, DerefMut}; pub(crate) use smallvec::SmallVec; use std::{ - any::Any, + any::{Any, type_name}, fmt::{self, Debug, Display}, mem, panic, }; @@ -220,14 +220,17 @@ impl Element for Component { window: &mut Window, cx: &mut App, ) -> (LayoutId, Self::RequestLayoutState) { - let mut element = self - .component - .take() - .unwrap() - .render(window, cx) - .into_any_element(); - let layout_id = element.request_layout(window, cx); - (layout_id, element) + window.with_global_id(ElementId::Name(type_name::().into()), |_, window| { + let mut element = self + .component + .take() + .unwrap() + .render(window, cx) + .into_any_element(); + + let layout_id = element.request_layout(window, cx); + (layout_id, element) + }) } fn prepaint( @@ -239,7 +242,9 @@ impl Element for Component { window: &mut Window, cx: &mut App, ) { - element.prepaint(window, cx); + window.with_global_id(ElementId::Name(type_name::().into()), |_, window| { + element.prepaint(window, cx); + }) } fn paint( @@ -252,7 +257,9 @@ impl Element for Component { window: &mut Window, cx: &mut App, ) { - element.paint(window, cx); + window.with_global_id(ElementId::Name(type_name::().into()), |_, window| { + element.paint(window, cx); + }) } } diff --git a/crates/gpui/src/gpui.rs b/crates/gpui/src/gpui.rs index 91461a4d2c..4eb6fa8dab 100644 --- a/crates/gpui/src/gpui.rs +++ b/crates/gpui/src/gpui.rs @@ -197,6 +197,11 @@ pub trait AppContext { where T: 'static; + /// Update a entity in the app context. + fn as_mut<'a, T>(&'a mut self, handle: &Entity) -> Self::Result> + where + T: 'static; + /// Read a entity from the app context. fn read_entity( &self, diff --git a/crates/gpui/src/window.rs b/crates/gpui/src/window.rs index 94f1b39ba2..b6601829c7 100644 --- a/crates/gpui/src/window.rs +++ b/crates/gpui/src/window.rs @@ -2424,6 +2424,53 @@ impl Window { result } + /// Use a piece of state that exists as long this element is being rendered in consecutive frames. + pub fn use_keyed_state( + &mut self, + key: impl Into, + cx: &mut App, + init: impl FnOnce(&mut Self, &mut App) -> S, + ) -> Entity { + let current_view = self.current_view(); + self.with_global_id(key.into(), |global_id, window| { + window.with_element_state(global_id, |state: Option>, window| { + if let Some(state) = state { + (state.clone(), state) + } else { + let new_state = cx.new(|cx| init(window, cx)); + cx.observe(&new_state, move |_, cx| { + cx.notify(current_view); + }) + .detach(); + (new_state.clone(), new_state) + } + }) + }) + } + + /// Immediately push an element ID onto the stack. Useful for simplifying IDs in lists + pub fn with_id(&mut self, id: impl Into, f: impl FnOnce(&mut Self) -> R) -> R { + self.with_global_id(id.into(), |_, window| f(window)) + } + + /// Use a piece of state that exists as long this element is being rendered in consecutive frames, without needing to specify a key + /// + /// NOTE: This method uses the location of the caller to generate an ID for this state. + /// If this is not sufficient to identify your state (e.g. you're rendering a list item), + /// you can provide a custom ElementID using the `use_keyed_state` method. + #[track_caller] + pub fn use_state( + &mut self, + cx: &mut App, + init: impl FnOnce(&mut Self, &mut App) -> S, + ) -> Entity { + self.use_keyed_state( + ElementId::CodeLocation(*core::panic::Location::caller()), + cx, + init, + ) + } + /// Updates or initializes state for an element with the given id that lives across multiple /// frames. If an element with this ID existed in the rendered frame, its state will be passed /// to the given closure. The state returned by the closure will be stored so it can be referenced @@ -4577,6 +4624,8 @@ pub enum ElementId { NamedInteger(SharedString, u64), /// A path. Path(Arc), + /// A code location. + CodeLocation(core::panic::Location<'static>), } impl ElementId { @@ -4596,6 +4645,7 @@ impl Display for ElementId { ElementId::NamedInteger(s, i) => write!(f, "{}-{}", s, i)?, ElementId::Uuid(uuid) => write!(f, "{}", uuid)?, ElementId::Path(path) => write!(f, "{}", path.display())?, + ElementId::CodeLocation(location) => write!(f, "{}", location)?, } Ok(()) diff --git a/crates/gpui_macros/src/derive_app_context.rs b/crates/gpui_macros/src/derive_app_context.rs index bca015b8dc..d2dc250d02 100644 --- a/crates/gpui_macros/src/derive_app_context.rs +++ b/crates/gpui_macros/src/derive_app_context.rs @@ -53,6 +53,16 @@ pub fn derive_app_context(input: TokenStream) -> TokenStream { self.#app_variable.update_entity(handle, update) } + fn as_mut<'y, 'z, T>( + &'y mut self, + handle: &'z gpui::Entity, + ) -> Self::Result> + where + T: 'static, + { + self.#app_variable.as_mut(handle) + } + fn read_entity( &self, handle: &gpui::Entity, From 0ffd93774cb9b21850e8480a2e57f69763923a0e Mon Sep 17 00:00:00 2001 From: Vitaly Slobodin Date: Sat, 19 Jul 2025 17:06:35 +0200 Subject: [PATCH 0075/1052] Fix Tailwind support for HTML/ERB files (#34743) Closes #27118 Closes #34165 Fix a small issue after we landed https://github.com/zed-extensions/ruby/pull/113+ where we introduced `HTML/ERB` and `YAML/ERB` language IDs to improve user experience. Sorry about that. Thanks! Release Notes: - N/A --- crates/languages/src/lib.rs | 1 + crates/languages/src/tailwind.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/crates/languages/src/lib.rs b/crates/languages/src/lib.rs index 431c051081..a224111002 100644 --- a/crates/languages/src/lib.rs +++ b/crates/languages/src/lib.rs @@ -273,6 +273,7 @@ pub fn init(languages: Arc, node: NodeRuntime, cx: &mut App) { "Astro", "CSS", "ERB", + "HTML/ERB", "HEEX", "HTML", "JavaScript", diff --git a/crates/languages/src/tailwind.rs b/crates/languages/src/tailwind.rs index 04f30b6246..cb4e939083 100644 --- a/crates/languages/src/tailwind.rs +++ b/crates/languages/src/tailwind.rs @@ -179,6 +179,7 @@ impl LspAdapter for TailwindLspAdapter { ("Elixir".to_string(), "phoenix-heex".to_string()), ("HEEX".to_string(), "phoenix-heex".to_string()), ("ERB".to_string(), "erb".to_string()), + ("HTML/ERB".to_string(), "erb".to_string()), ("PHP".to_string(), "php".to_string()), ("Vue.js".to_string(), "vue".to_string()), ]) From 29111304dde348a00fbceca71183bd30703175b8 Mon Sep 17 00:00:00 2001 From: Oleksandr Mykhailenko <58030797+armyhaylenko@users.noreply.github.com> Date: Sat, 19 Jul 2025 18:59:57 +0300 Subject: [PATCH 0076/1052] agent: Fix Mistral tool use error message (#34692) Closes #32675 Exactly the same changes as in #33640 by @sviande The PR has been in WIP state for 3 weeks with no activity, and the issue basically makes Mistral models unusable. I have tested the changes locally, and it does indeed work. Full credit goes to @sviande, I just want this feature to be finished. Release Notes: - agent: Fixed an issue with tool calling with the Mistral provider (thanks [@sviande](https://github.com/sviande) and [@armyhaylenko](https://github.com/armyhaylenko)) Co-authored-by: sviande --- .../language_models/src/provider/mistral.rs | 34 ++++++++----------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/crates/language_models/src/provider/mistral.rs b/crates/language_models/src/provider/mistral.rs index 11497fda35..fb385308fa 100644 --- a/crates/language_models/src/provider/mistral.rs +++ b/crates/language_models/src/provider/mistral.rs @@ -410,8 +410,20 @@ pub fn into_mistral( .push_part(mistral::MessagePart::Text { text: text.clone() }); } MessageContent::RedactedThinking(_) => {} - MessageContent::ToolUse(_) | MessageContent::ToolResult(_) => { - // Tool content is not supported in User messages for Mistral + MessageContent::ToolUse(_) => { + // Tool use is not supported in User messages for Mistral + } + MessageContent::ToolResult(tool_result) => { + let tool_content = match &tool_result.content { + LanguageModelToolResultContent::Text(text) => text.to_string(), + LanguageModelToolResultContent::Image(_) => { + "[Tool responded with an image, but Zed doesn't support these in Mistral models yet]".to_string() + } + }; + messages.push(mistral::RequestMessage::Tool { + content: tool_content, + tool_call_id: tool_result.tool_use_id.to_string(), + }); } } } @@ -482,24 +494,6 @@ pub fn into_mistral( } } - for message in &request.messages { - for content in &message.content { - if let MessageContent::ToolResult(tool_result) = content { - let content = match &tool_result.content { - LanguageModelToolResultContent::Text(text) => text.to_string(), - LanguageModelToolResultContent::Image(_) => { - "[Tool responded with an image, but Zed doesn't support these in Mistral models yet]".to_string() - } - }; - - messages.push(mistral::RequestMessage::Tool { - content, - tool_call_id: tool_result.tool_use_id.to_string(), - }); - } - } - } - // The Mistral API requires that tool messages be followed by assistant messages, // not user messages. When we have a tool->user sequence in the conversation, // we need to insert a placeholder assistant message to maintain proper conversation From fb88de92234fd494bafb13c694569015bcb2356c Mon Sep 17 00:00:00 2001 From: Peter Tripp Date: Sat, 19 Jul 2025 12:01:18 -0400 Subject: [PATCH 0077/1052] Fix error in OpenRouter svg logo (#34764) Fix a spurious error in Zed logs from the OpenRouter svg Logo introduced in https://github.com/zed-industries/zed/pull/29496: ```log WARN [usvg::parser::svgtree] Failed to parse clip-path value: 'url(#clip0_205_3)'. ``` Release Notes: - N/A --- assets/icons/ai_open_router.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/icons/ai_open_router.svg b/assets/icons/ai_open_router.svg index cc8597729a..94f2849146 100644 --- a/assets/icons/ai_open_router.svg +++ b/assets/icons/ai_open_router.svg @@ -1,5 +1,5 @@ - + From 5f92ac25a7690fdfa6864e30d4528c2a5b5e56f8 Mon Sep 17 00:00:00 2001 From: Peter Tripp Date: Sat, 19 Jul 2025 12:01:33 -0400 Subject: [PATCH 0078/1052] docs: Consolidate backend setup docs into local-collaboration.md (#34653) Simplify docs for mac/linux/windows by consolidating the backend dependencies (collaboration) docs into local-collaboration.md. Most users building zed will not need to do this -- streamline them into getting setup to build the zed client app first. Release Notes: - N/A --- docs/src/development/linux.md | 15 +---- docs/src/development/local-collaboration.md | 66 ++++++++++++++++++++- docs/src/development/macos.md | 23 ++----- docs/src/development/windows.md | 15 +---- 4 files changed, 73 insertions(+), 46 deletions(-) diff --git a/docs/src/development/linux.md b/docs/src/development/linux.md index 08ac7f116b..6fff25f6c1 100644 --- a/docs/src/development/linux.md +++ b/docs/src/development/linux.md @@ -16,20 +16,9 @@ Clone down the [Zed repository](https://github.com/zed-industries/zed). If you prefer to install the system libraries manually, you can find the list of required packages in the `script/linux` file. -## Backend dependencies +### Backend Dependencies (optional) {#backend-dependencies} -> This section is still in development. The instructions are not yet complete. - -If you are developing collaborative features of Zed, you'll need to install the dependencies of zed's `collab` server: - -- Install [Postgres](https://www.postgresql.org/download/linux/) -- Install [Livekit](https://github.com/livekit/livekit-cli) and [Foreman](https://theforeman.org/manuals/3.9/quickstart_guide.html) - -Alternatively, if you have [Docker](https://www.docker.com/) installed you can bring up all the `collab` dependencies using Docker Compose: - -```sh -docker compose up -d -``` +If you are looking to develop Zed collaboration features using a local collabortation server, please see: [Local Collaboration](./local-collaboration.md) docs. ## Building from source diff --git a/docs/src/development/local-collaboration.md b/docs/src/development/local-collaboration.md index 6c96c342a8..9f0e3ef191 100644 --- a/docs/src/development/local-collaboration.md +++ b/docs/src/development/local-collaboration.md @@ -1,6 +1,6 @@ # Local Collaboration -First, make sure you've installed Zed's backend dependencies for your platform: +First, make sure you've installed Zed's dependencies for your platform: - [macOS](./macos.md#backend-dependencies) - [Linux](./linux.md#backend-dependencies) @@ -8,6 +8,70 @@ First, make sure you've installed Zed's backend dependencies for your platform: Note that `collab` can be compiled only with MSVC toolchain on Windows +## Backend Dependencies + +If you are developing collaborative features of Zed, you'll need to install the dependencies of zed's `collab` server: + +- PostgreSQL +- LiveKit +- Foreman + +You can install these dependencies natively or run them under Docker. + +### MacOS + +1. Install [Postgres.app](https://postgresapp.com) or [postgresql via homebrew](https://formulae.brew.sh/formula/postgresql@15): + + ```sh + brew install postgresql@15 + ``` + +2. Install [Livekit](https://formulae.brew.sh/formula/livekit) and [Foreman](https://formulae.brew.sh/formula/foreman) + + ```sh + brew install livekit foreman + ``` + +- Follow the steps in the [collab README](https://github.com/zed-industries/zed/blob/main/crates/collab/README.md) to configure the Postgres database for integration tests + +Alternatively, if you have [Docker](https://www.docker.com/) installed you can bring up all the `collab` dependencies using Docker Compose: + +### Linux + +1. Install [Postgres](https://www.postgresql.org/download/linux/) + + ```sh + sudo apt-get install postgresql postgresql # Ubuntu/Debian + sudo pacman -S postgresql # Arch Linux + sudo dnf install postgresql postgresql-server # RHEL/Fedora + sudo zypper install postgresql postgresql-server # OpenSUSE + ``` + +2. Install [Livekit](https://github.com/livekit/livekit-cli) + + ```sh + curl -sSL https://get.livekit.io/cli | bash + ``` + +3. Install [Foreman](https://theforeman.org/manuals/3.15/quickstart_guide.html) + +### Windows {#backend-windows} + +> This section is still in development. The instructions are not yet complete. + +- Install [Postgres](https://www.postgresql.org/download/windows/) +- Install [Livekit](https://github.com/livekit/livekit), optionally you can add the `livekit-server` binary to your `PATH`. + +Alternatively, if you have [Docker](https://www.docker.com/) installed you can bring up all the `collab` dependencies using Docker Compose. + +### Docker {#Docker} + +If you have docker or podman available, you can run the backend dependencies inside containers with Docker Compose: + +```sh +docker compose up -d +``` + ## Database setup Before you can run the `collab` server locally, you'll need to set up a `zed` Postgres database. diff --git a/docs/src/development/macos.md b/docs/src/development/macos.md index 91adf78193..f081f0b5f1 100644 --- a/docs/src/development/macos.md +++ b/docs/src/development/macos.md @@ -31,6 +31,10 @@ Clone down the [Zed repository](https://github.com/zed-industries/zed). brew install cmake ``` +### Backend Dependencies (optional) {#backend-dependencies} + +If you are looking to develop Zed collaboration features using a local collabortation server, please see: [Local Collaboration](./local-collaboration.md) docs. + ## Building Zed from Source Once you have the dependencies installed, you can build Zed using [Cargo](https://doc.rust-lang.org/cargo/). @@ -53,25 +57,6 @@ And to run the tests: cargo test --workspace ``` -## Backend Dependencies - -If you are developing collaborative features of Zed, you'll need to install the dependencies of zed's `collab` server: - -- Install [Postgres](https://postgresapp.com) -- Install [Livekit](https://formulae.brew.sh/formula/livekit) and [Foreman](https://formulae.brew.sh/formula/foreman) - - ```sh - brew install livekit foreman - ``` - -- Follow the steps in the [collab README](https://github.com/zed-industries/zed/blob/main/crates/collab/README.md) to configure the Postgres database for integration tests - -Alternatively, if you have [Docker](https://www.docker.com/) installed you can bring up all the `collab` dependencies using Docker Compose: - -```sh -docker compose up -d -``` - ## Troubleshooting ### Error compiling metal shaders diff --git a/docs/src/development/windows.md b/docs/src/development/windows.md index 6d67500aab..ac38e4d7d6 100644 --- a/docs/src/development/windows.md +++ b/docs/src/development/windows.md @@ -66,20 +66,9 @@ The list can be obtained as follows: - Click on `More` in the `Installed` tab - Click on `Export configuration` -## Backend dependencies +### Backend Dependencies (optional) {#backend-dependencies} -> This section is still in development. The instructions are not yet complete. - -If you are developing collaborative features of Zed, you'll need to install the dependencies of zed's `collab` server: - -- Install [Postgres](https://www.postgresql.org/download/windows/) -- Install [Livekit](https://github.com/livekit/livekit), optionally you can add the `livekit-server` binary to your `PATH`. - -Alternatively, if you have [Docker](https://www.docker.com/) installed you can bring up all the `collab` dependencies using Docker Compose: - -```sh -docker compose up -d -``` +If you are looking to develop Zed collaboration features using a local collabortation server, please see: [Local Collaboration](./local-collaboration.md) docs. ### Notes From 2e41e312ad73cb138475c79b5cf8ab3e4a887866 Mon Sep 17 00:00:00 2001 From: Bennet Bo Fenner Date: Sun, 20 Jul 2025 18:27:18 +0200 Subject: [PATCH 0079/1052] component preview: Fix Zed AI onboarding young account preview (#34783) Release Notes: - N/A --- crates/ai_onboarding/src/ai_onboarding.rs | 24 ++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/crates/ai_onboarding/src/ai_onboarding.rs b/crates/ai_onboarding/src/ai_onboarding.rs index 131d385e78..f19b8821fa 100644 --- a/crates/ai_onboarding/src/ai_onboarding.rs +++ b/crates/ai_onboarding/src/ai_onboarding.rs @@ -339,16 +339,18 @@ impl Component for ZedAiOnboarding { plan: Option, account_too_young: bool, ) -> AnyElement { - ZedAiOnboarding { - sign_in_status, - has_accepted_terms_of_service, - plan, - account_too_young, - continue_with_zed_ai: Arc::new(|_, _| {}), - sign_in: Arc::new(|_, _| {}), - accept_terms_of_service: Arc::new(|_, _| {}), - } - .into_any_element() + div() + .w(px(800.)) + .child(ZedAiOnboarding { + sign_in_status, + has_accepted_terms_of_service, + plan, + account_too_young, + continue_with_zed_ai: Arc::new(|_, _| {}), + sign_in: Arc::new(|_, _| {}), + accept_terms_of_service: Arc::new(|_, _| {}), + }) + .into_any_element() } Some( @@ -366,7 +368,7 @@ impl Component for ZedAiOnboarding { ), single_example( "Account too young", - onboarding(SignInStatus::SignedIn, false, None, true), + onboarding(SignInStatus::SignedIn, true, None, true), ), single_example( "Free Plan", From ff79b29f3812e8d39763e51af17c9c13e3ebf8f5 Mon Sep 17 00:00:00 2001 From: Michael Sloan Date: Sun, 20 Jul 2025 13:39:04 -0600 Subject: [PATCH 0080/1052] Set stripe-mock version to `0.178.0` to match stripe API version used (#34786) Release Notes: - N/A --- compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compose.yml b/compose.yml index 06e8806d20..d0d9bac425 100644 --- a/compose.yml +++ b/compose.yml @@ -60,7 +60,7 @@ services: - postgres stripe-mock: - image: stripe/stripe-mock:v0.184.0 + image: stripe/stripe-mock:v0.178.0 ports: - 12111:12111 - 12112:12112 From 7c1040bc938df6926a88fc5bce139c4a1ec7e3d0 Mon Sep 17 00:00:00 2001 From: Ben Kunkle Date: Sun, 20 Jul 2025 15:24:17 -0500 Subject: [PATCH 0081/1052] keymap_ui: Auto complete action arguments (#34785) Supersedes: #34242 Creates an `ActionArgumentsEditor` that implements the required logic to have a JSON language server run when editing keybinds so that there is auto-complete for action arguments. This is the first time action argument schemas are required by themselves rather than inlined in the keymap schema. Rather than add all action schemas to the configuration options we send to the JSON LSP on startup, this PR implements support for the `vscode-json-language-server` extension to the LSP whereby the server will request the client (Zed) to resolve URLs with URI schemes it does not recognize, in our case `zed://`. This limits the impact on the size of the configuration options to ~1KB as we send URLs for the language server to resolve on demand rather than the schema itself. My understanding is that this is how VSCode handles JSON schemas as well. I plan to investigate converting the rest of our schema generation logic to this method in a follow up PR. Co-Authored-By: Cole Release Notes: - N/A *or* Added/Fixed/Improved ... --- Cargo.lock | 1 + assets/keymaps/default-macos.json | 1 + crates/languages/src/json.rs | 7 + crates/project/src/lsp_store.rs | 2 + .../src/lsp_store/json_language_server_ext.rs | 101 ++++ crates/settings_ui/Cargo.toml | 1 + crates/settings_ui/src/keybindings.rs | 449 +++++++++++++----- 7 files changed, 453 insertions(+), 109 deletions(-) create mode 100644 crates/project/src/lsp_store/json_language_server_ext.rs diff --git a/Cargo.lock b/Cargo.lock index cbed9f5988..a5ea621cd1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14768,6 +14768,7 @@ dependencies = [ "serde_json", "settings", "telemetry", + "tempfile", "theme", "tree-sitter-json", "tree-sitter-rust", diff --git a/assets/keymaps/default-macos.json b/assets/keymaps/default-macos.json index 6bce3b0f28..ba903c0782 100644 --- a/assets/keymaps/default-macos.json +++ b/assets/keymaps/default-macos.json @@ -1228,6 +1228,7 @@ "context": "KeymapEditor", "use_key_equivalents": true, "bindings": { + "cmd-f": "search::FocusSearch", "cmd-alt-f": "keymap_editor::ToggleKeystrokeSearch", "cmd-alt-c": "keymap_editor::ToggleConflictFilter", "enter": "keymap_editor::EditBinding", diff --git a/crates/languages/src/json.rs b/crates/languages/src/json.rs index 7a3300eb01..15818730b8 100644 --- a/crates/languages/src/json.rs +++ b/crates/languages/src/json.rs @@ -231,6 +231,13 @@ impl JsonLspAdapter { )) } + schemas + .as_array_mut() + .unwrap() + .extend(cx.all_action_names().into_iter().map(|&name| { + project::lsp_store::json_language_server_ext::url_schema_for_action(name) + })); + // This can be viewed via `dev: open language server logs` -> `json-language-server` -> // `Server Info` serde_json::json!({ diff --git a/crates/project/src/lsp_store.rs b/crates/project/src/lsp_store.rs index e4078393ee..28cbfcdd18 100644 --- a/crates/project/src/lsp_store.rs +++ b/crates/project/src/lsp_store.rs @@ -1,4 +1,5 @@ pub mod clangd_ext; +pub mod json_language_server_ext; pub mod lsp_ext_command; pub mod rust_analyzer_ext; @@ -1034,6 +1035,7 @@ impl LocalLspStore { }) .detach(); + json_language_server_ext::register_requests(this.clone(), language_server); rust_analyzer_ext::register_notifications(this.clone(), language_server); clangd_ext::register_notifications(this, language_server, adapter); } diff --git a/crates/project/src/lsp_store/json_language_server_ext.rs b/crates/project/src/lsp_store/json_language_server_ext.rs new file mode 100644 index 0000000000..3eb93386a9 --- /dev/null +++ b/crates/project/src/lsp_store/json_language_server_ext.rs @@ -0,0 +1,101 @@ +use anyhow::Context as _; +use collections::HashMap; +use gpui::WeakEntity; +use lsp::LanguageServer; + +use crate::LspStore; +/// https://github.com/Microsoft/vscode/blob/main/extensions/json-language-features/server/README.md#schema-content-request +/// +/// Represents a "JSON language server-specific, non-standardized, extension to the LSP" with which the vscode-json-language-server +/// can request the contents of a schema that is associated with a uri scheme it does not support. +/// In our case, we provide the uris for actions on server startup under the `zed://schemas/action/{normalize_action_name}` scheme. +/// We can then respond to this request with the schema content on demand, thereby greatly reducing the total size of the JSON we send to the server on startup +struct SchemaContentRequest {} + +impl lsp::request::Request for SchemaContentRequest { + type Params = Vec; + + type Result = String; + + const METHOD: &'static str = "vscode/content"; +} + +pub fn register_requests(_lsp_store: WeakEntity, language_server: &LanguageServer) { + language_server + .on_request::(|params, cx| { + // PERF: Use a cache (`OnceLock`?) to avoid recomputing the action schemas + let mut generator = settings::KeymapFile::action_schema_generator(); + let all_schemas = cx.update(|cx| HashMap::from_iter(cx.action_schemas(&mut generator))); + async move { + let all_schemas = all_schemas?; + let Some(uri) = params.get(0) else { + anyhow::bail!("No URI"); + }; + let normalized_action_name = uri + .strip_prefix("zed://schemas/action/") + .context("Invalid URI")?; + let action_name = denormalize_action_name(normalized_action_name); + let schema = root_schema_from_action_schema( + all_schemas + .get(action_name.as_str()) + .and_then(Option::as_ref), + &mut generator, + ) + .to_value(); + + serde_json::to_string(&schema).context("Failed to serialize schema") + } + }) + .detach(); +} + +pub fn normalize_action_name(action_name: &str) -> String { + action_name.replace("::", "__") +} + +pub fn denormalize_action_name(action_name: &str) -> String { + action_name.replace("__", "::") +} + +pub fn normalized_action_file_name(action_name: &str) -> String { + normalized_action_name_to_file_name(normalize_action_name(action_name)) +} + +pub fn normalized_action_name_to_file_name(mut normalized_action_name: String) -> String { + normalized_action_name.push_str(".json"); + normalized_action_name +} + +pub fn url_schema_for_action(action_name: &str) -> serde_json::Value { + let normalized_name = normalize_action_name(action_name); + let file_name = normalized_action_name_to_file_name(normalized_name.clone()); + serde_json::json!({ + "fileMatch": [file_name], + "url": format!("zed://schemas/action/{}", normalized_name) + }) +} + +fn root_schema_from_action_schema( + action_schema: Option<&schemars::Schema>, + generator: &mut schemars::SchemaGenerator, +) -> schemars::Schema { + let Some(action_schema) = action_schema else { + return schemars::json_schema!(false); + }; + let meta_schema = generator + .settings() + .meta_schema + .as_ref() + .expect("meta_schema should be present in schemars settings") + .to_string(); + let defs = generator.definitions(); + let mut schema = schemars::json_schema!({ + "$schema": meta_schema, + "allowTrailingCommas": true, + "$defs": defs, + }); + schema + .ensure_object() + .extend(std::mem::take(action_schema.clone().ensure_object())); + schema +} diff --git a/crates/settings_ui/Cargo.toml b/crates/settings_ui/Cargo.toml index e512c4e4d4..651397dd51 100644 --- a/crates/settings_ui/Cargo.toml +++ b/crates/settings_ui/Cargo.toml @@ -35,6 +35,7 @@ serde.workspace = true serde_json.workspace = true settings.workspace = true telemetry.workspace = true +tempfile.workspace = true theme.workspace = true tree-sitter-json.workspace = true tree-sitter-rust.workspace = true diff --git a/crates/settings_ui/src/keybindings.rs b/crates/settings_ui/src/keybindings.rs index 1a5bb7b459..5f940e8a25 100644 --- a/crates/settings_ui/src/keybindings.rs +++ b/crates/settings_ui/src/keybindings.rs @@ -13,11 +13,13 @@ use gpui::{ Action, Animation, AnimationExt, AppContext as _, AsyncApp, Axis, ClickEvent, Context, DismissEvent, Entity, EventEmitter, FocusHandle, Focusable, FontWeight, Global, IsZero, KeyContext, Keystroke, Modifiers, ModifiersChangedEvent, MouseButton, Point, ScrollStrategy, - ScrollWheelEvent, StyledText, Subscription, Task, WeakEntity, actions, anchored, deferred, div, + ScrollWheelEvent, StyledText, Subscription, Task, TextStyleRefinement, WeakEntity, actions, + anchored, deferred, div, }; use language::{Language, LanguageConfig, ToOffset as _}; use notifications::status_toast::{StatusToast, ToastIcon}; -use settings::{BaseKeymap, KeybindSource, KeymapFile, SettingsAssets}; +use project::Project; +use settings::{BaseKeymap, KeybindSource, KeymapFile, Settings as _, SettingsAssets}; use util::ResultExt; @@ -283,6 +285,14 @@ struct KeymapEditor { previous_edit: Option, humanized_action_names: HumanizedActionNameCache, show_hover_menus: bool, + /// In order for the JSON LSP to run in the actions arguments editor, we + /// require a backing file In order to avoid issues (primarily log spam) + /// with drop order between the buffer, file, worktree, etc, we create a + /// temporary directory for these backing files in the keymap editor struct + /// instead of here. This has the added benefit of only having to create a + /// worktree and directory once, although the perf improvement is negligible. + action_args_temp_dir_worktree: Option>, + action_args_temp_dir: Option, } enum PreviousEdit { @@ -307,13 +317,18 @@ impl EventEmitter<()> for KeymapEditor {} impl Focusable for KeymapEditor { fn focus_handle(&self, cx: &App) -> gpui::FocusHandle { - return self.filter_editor.focus_handle(cx); + if self.selected_index.is_some() { + self.focus_handle.clone() + } else { + self.filter_editor.focus_handle(cx) + } } } impl KeymapEditor { fn new(workspace: WeakEntity, window: &mut Window, cx: &mut Context) -> Self { - let _keymap_subscription = cx.observe_global::(Self::on_keymap_changed); + let _keymap_subscription = + cx.observe_global_in::(window, Self::on_keymap_changed); let table_interaction_state = TableInteractionState::new(window, cx); let keystroke_editor = cx.new(|cx| { @@ -346,6 +361,24 @@ impl KeymapEditor { }) .detach(); + cx.spawn({ + let workspace = workspace.clone(); + async move |this, cx| { + let temp_dir = tempfile::tempdir_in(paths::temp_dir())?; + let worktree = workspace + .update(cx, |ws, cx| { + ws.project() + .update(cx, |p, cx| p.create_worktree(temp_dir.path(), false, cx)) + })? + .await?; + this.update(cx, |this, _| { + this.action_args_temp_dir = Some(temp_dir); + this.action_args_temp_dir_worktree = Some(worktree); + }) + } + }) + .detach(); + let mut this = Self { workspace, keybindings: vec![], @@ -365,9 +398,11 @@ impl KeymapEditor { search_query_debounce: None, humanized_action_names: HumanizedActionNameCache::new(cx), show_hover_menus: true, + action_args_temp_dir: None, + action_args_temp_dir_worktree: None, }; - this.on_keymap_changed(cx); + this.on_keymap_changed(window, cx); this } @@ -557,10 +592,10 @@ impl KeymapEditor { HashSet::from_iter(cx.all_action_names().into_iter().copied()); let action_documentation = cx.action_documentation(); let mut generator = KeymapFile::action_schema_generator(); - let action_schema = HashMap::from_iter( + let actions_with_schemas = HashSet::from_iter( cx.action_schemas(&mut generator) .into_iter() - .filter_map(|(name, schema)| schema.map(|schema| (name, schema))), + .filter_map(|(name, schema)| schema.is_some().then_some(name)), ); let mut processed_bindings = Vec::new(); @@ -607,7 +642,7 @@ impl KeymapEditor { action_arguments, humanized_action_name, action_docs, - action_schema: action_schema.get(action_name).cloned(), + has_schema: actions_with_schemas.contains(action_name), context: Some(context), source, }); @@ -626,7 +661,7 @@ impl KeymapEditor { action_arguments: None, humanized_action_name, action_docs: action_documentation.get(action_name).copied(), - action_schema: action_schema.get(action_name).cloned(), + has_schema: actions_with_schemas.contains(action_name), context: None, source: None, }); @@ -636,9 +671,9 @@ impl KeymapEditor { (processed_bindings, string_match_candidates) } - fn on_keymap_changed(&mut self, cx: &mut Context) { + fn on_keymap_changed(&mut self, window: &mut Window, cx: &mut Context) { let workspace = self.workspace.clone(); - cx.spawn(async move |this, cx| { + cx.spawn_in(window, async move |this, cx| { let json_language = load_json_language(workspace.clone(), cx).await; let zed_keybind_context_language = load_keybind_context_language(workspace.clone(), cx).await; @@ -673,7 +708,7 @@ impl KeymapEditor { })?; // calls cx.notify Self::update_matches(this.clone(), action_query, keystroke_query, cx).await?; - this.update(cx, |this, cx| { + this.update_in(cx, |this, window, cx| { if let Some(previous_edit) = this.previous_edit.take() { match previous_edit { // should remove scroll from process_query @@ -701,8 +736,12 @@ impl KeymapEditor { }); if let Some(scroll_position) = scroll_position { - this.scroll_to_item(scroll_position, ScrollStrategy::Top, cx); - this.selected_index = Some(scroll_position); + this.select_index( + scroll_position, + Some(ScrollStrategy::Top), + window, + cx, + ); } else { this.table_interaction_state.update(cx, |table, _| { table.set_scrollbar_offset(Axis::Vertical, fallback) @@ -768,9 +807,19 @@ impl KeymapEditor { .and_then(|keybind_index| self.keybindings.get(keybind_index)) } - fn select_index(&mut self, index: usize, cx: &mut Context) { + fn select_index( + &mut self, + index: usize, + scroll: Option, + window: &mut Window, + cx: &mut Context, + ) { if self.selected_index != Some(index) { self.selected_index = Some(index); + if let Some(scroll_strategy) = scroll { + self.scroll_to_item(index, scroll_strategy, cx); + } + window.focus(&self.focus_handle); cx.notify(); } } @@ -872,9 +921,7 @@ impl KeymapEditor { if selected >= self.matches.len() { self.select_last(&Default::default(), window, cx); } else { - self.selected_index = Some(selected); - self.scroll_to_item(selected, ScrollStrategy::Center, cx); - cx.notify(); + self.select_index(selected, Some(ScrollStrategy::Center), window, cx); } } else { self.select_first(&Default::default(), window, cx); @@ -898,36 +945,25 @@ impl KeymapEditor { if selected >= self.matches.len() { self.select_last(&Default::default(), window, cx); } else { - self.selected_index = Some(selected); - self.scroll_to_item(selected, ScrollStrategy::Center, cx); - cx.notify(); + self.select_index(selected, Some(ScrollStrategy::Center), window, cx); } } else { self.select_last(&Default::default(), window, cx); } } - fn select_first( - &mut self, - _: &menu::SelectFirst, - _window: &mut Window, - cx: &mut Context, - ) { + fn select_first(&mut self, _: &menu::SelectFirst, window: &mut Window, cx: &mut Context) { self.show_hover_menus = false; if self.matches.get(0).is_some() { - self.selected_index = Some(0); - self.scroll_to_item(0, ScrollStrategy::Center, cx); - cx.notify(); + self.select_index(0, Some(ScrollStrategy::Center), window, cx); } } - fn select_last(&mut self, _: &menu::SelectLast, _window: &mut Window, cx: &mut Context) { + fn select_last(&mut self, _: &menu::SelectLast, window: &mut Window, cx: &mut Context) { self.show_hover_menus = false; if self.matches.last().is_some() { let index = self.matches.len() - 1; - self.selected_index = Some(index); - self.scroll_to_item(index, ScrollStrategy::Center, cx); - cx.notify(); + self.select_index(index, Some(ScrollStrategy::Center), window, cx); } } @@ -963,6 +999,8 @@ impl KeymapEditor { arguments = arguments, ); + let temp_dir = self.action_args_temp_dir.as_ref().map(|dir| dir.path()); + self.workspace .update(cx, |workspace, cx| { let fs = workspace.app_state().fs.clone(); @@ -973,6 +1011,7 @@ impl KeymapEditor { keybind, keybind_index, keymap_editor, + temp_dir, workspace_weak, fs, window, @@ -1134,7 +1173,7 @@ struct ProcessedKeybinding { humanized_action_name: SharedString, action_arguments: Option, action_docs: Option<&'static str>, - action_schema: Option, + has_schema: bool, context: Option, source: Option<(KeybindSource, SharedString)>, } @@ -1428,7 +1467,7 @@ impl Render for KeymapEditor { cx, ); } else { - this.select_index(index, cx); + this.select_index(index, None, window, cx); this.open_edit_keybinding_modal( false, window, cx, ); @@ -1458,7 +1497,7 @@ impl Render for KeymapEditor { }, ) .on_click(cx.listener(move |this, _, window, cx| { - this.select_index(index, cx); + this.select_index(index, None, window, cx); this.open_edit_keybinding_modal(false, window, cx); cx.stop_propagation(); })) @@ -1506,7 +1545,7 @@ impl Render for KeymapEditor { let action_arguments = match binding.action_arguments.clone() { Some(arguments) => arguments.into_any_element(), None => { - if binding.action_schema.is_some() { + if binding.has_schema { muted_styled_text(NO_ACTION_ARGUMENTS_TEXT, cx) .into_any_element() } else { @@ -1571,7 +1610,7 @@ impl Render for KeymapEditor { cx| { match mouse_down_event.button { MouseButton::Right => { - this.select_index(row_index, cx); + this.select_index(row_index, None, window, cx); this.create_context_menu( mouse_down_event.position, window, @@ -1584,7 +1623,7 @@ impl Render for KeymapEditor { )) .on_click(cx.listener( move |this, event: &ClickEvent, window, cx| { - this.select_index(row_index, cx); + this.select_index(row_index, None, window, cx); if event.up.click_count == 2 { this.open_edit_keybinding_modal(false, window, cx); } @@ -1686,23 +1725,23 @@ impl RenderOnce for SyntaxHighlightedText { } #[derive(PartialEq)] -enum InputError { - Warning(SharedString), - Error(SharedString), +struct InputError { + severity: ui::Severity, + content: SharedString, } impl InputError { fn warning(message: impl Into) -> Self { - Self::Warning(message.into()) + Self { + severity: ui::Severity::Warning, + content: message.into(), + } } - fn error(error: anyhow::Error) -> Self { - Self::Error(error.to_string().into()) - } - - fn content(&self) -> &SharedString { - match self { - InputError::Warning(content) | InputError::Error(content) => content, + fn error(message: anyhow::Error) -> Self { + Self { + severity: ui::Severity::Error, + content: message.to_string().into(), } } } @@ -1713,7 +1752,7 @@ struct KeybindingEditorModal { editing_keybind_idx: usize, keybind_editor: Entity, context_editor: Entity, - action_arguments_editor: Option>, + action_arguments_editor: Option>, fs: Arc, error: Option, keymap_editor: Entity, @@ -1737,6 +1776,7 @@ impl KeybindingEditorModal { editing_keybind: ProcessedKeybinding, editing_keybind_idx: usize, keymap_editor: Entity, + action_args_temp_dir: Option<&std::path::Path>, workspace: WeakEntity, fs: Arc, window: &mut Window, @@ -1786,40 +1826,29 @@ impl KeybindingEditorModal { input }); - let action_arguments_editor = editing_keybind.action_schema.clone().map(|_schema| { + let action_arguments_editor = editing_keybind.has_schema.then(|| { + let arguments = editing_keybind + .action_arguments + .as_ref() + .map(|args| args.text.clone()); cx.new(|cx| { - let mut editor = Editor::auto_height_unbounded(1, window, cx); - let workspace = workspace.clone(); - - if let Some(arguments) = editing_keybind.action_arguments.clone() { - editor.set_text(arguments.text, window, cx); - } else { - // TODO: default value from schema? - editor.set_placeholder_text("Action Arguments", cx); - } - cx.spawn(async |editor, cx| { - let json_language = load_json_language(workspace, cx).await; - editor - .update(cx, |editor, cx| { - if let Some(buffer) = editor.buffer().read(cx).as_singleton() { - buffer.update(cx, |buffer, cx| { - buffer.set_language(Some(json_language), cx) - }); - } - }) - .context("Failed to load JSON language for editing keybinding action arguments input") - }) - .detach_and_log_err(cx); - editor + ActionArgumentsEditor::new( + editing_keybind.action_name, + arguments, + action_args_temp_dir, + workspace.clone(), + window, + cx, + ) }) }); let focus_state = KeybindingEditorModalFocusState::new( - keybind_editor.read_with(cx, |keybind_editor, cx| keybind_editor.focus_handle(cx)), - action_arguments_editor.as_ref().map(|args_editor| { - args_editor.read_with(cx, |args_editor, cx| args_editor.focus_handle(cx)) - }), - context_editor.read_with(cx, |context_editor, cx| context_editor.focus_handle(cx)), + keybind_editor.focus_handle(cx), + action_arguments_editor + .as_ref() + .map(|args_editor| args_editor.focus_handle(cx)), + context_editor.focus_handle(cx), ); Self { @@ -1837,14 +1866,15 @@ impl KeybindingEditorModal { } } - fn set_error(&mut self, error: InputError, cx: &mut Context) { - if self - .error - .as_ref() - .is_none_or(|old_error| *old_error != error) - { + fn set_error(&mut self, error: InputError, cx: &mut Context) -> bool { + if self.error.as_ref().is_some_and(|old_error| { + old_error.severity == ui::Severity::Warning && *old_error == error + }) { + false + } else { self.error = Some(error); cx.notify(); + true } } @@ -1852,7 +1882,7 @@ impl KeybindingEditorModal { let action_arguments = self .action_arguments_editor .as_ref() - .map(|editor| editor.read(cx).text(cx)); + .map(|editor| editor.read(cx).editor.read(cx).text(cx)); let value = action_arguments .as_ref() @@ -1938,7 +1968,7 @@ impl KeybindingEditorModal { let warning_message = match conflicting_action_name { Some(name) => { - if remaining_conflict_amount > 0 { + if remaining_conflict_amount > 0 { format!( "Your keybind would conflict with the \"{}\" action and {} other bindings", name, remaining_conflict_amount @@ -2108,38 +2138,21 @@ impl Render for KeybindingEditorModal { .mt_1p5() .gap_1() .child(Label::new("Edit Arguments")) - .child( - div() - .w_full() - .py_1() - .px_1p5() - .rounded_lg() - .bg(theme.editor_background) - .border_1() - .border_color(theme.border_variant) - .child(editor), - ), + .child(editor), ) }) .child(self.context_editor.clone()) .when_some(self.error.as_ref(), |this, error| { this.child( Banner::new() - .map(|banner| match error { - InputError::Error(_) => { - banner.severity(ui::Severity::Error) - } - InputError::Warning(_) => { - banner.severity(ui::Severity::Warning) - } - }) + .severity(error.severity) // For some reason, the div overflows its container to the //right. The padding accounts for that. .child( div() .size_full() .pr_2() - .child(Label::new(error.content())), + .child(Label::new(error.content.clone())), ), ) }), @@ -2219,6 +2232,219 @@ impl KeybindingEditorModalFocusState { } } +struct ActionArgumentsEditor { + editor: Entity, + focus_handle: FocusHandle, + is_loading: bool, + /// See documentation in `KeymapEditor` for why a temp dir is needed. + /// This field exists because the keymap editor temp dir creation may fail, + /// and rather than implement a complicated retry mechanism, we simply + /// fallback to trying to create a temporary directory in this editor on + /// demand. Of note is that the TempDir struct will remove the directory + /// when dropped. + backup_temp_dir: Option, +} + +impl Focusable for ActionArgumentsEditor { + fn focus_handle(&self, _cx: &App) -> FocusHandle { + self.focus_handle.clone() + } +} + +impl ActionArgumentsEditor { + fn new( + action_name: &'static str, + arguments: Option, + temp_dir: Option<&std::path::Path>, + workspace: WeakEntity, + window: &mut Window, + cx: &mut Context, + ) -> Self { + let focus_handle = cx.focus_handle(); + cx.on_focus_in(&focus_handle, window, |this, window, cx| { + this.editor.focus_handle(cx).focus(window); + }) + .detach(); + let editor = cx.new(|cx| { + let mut editor = Editor::auto_height_unbounded(1, window, cx); + Self::set_editor_text(&mut editor, arguments.clone(), window, cx); + editor.set_read_only(true); + editor + }); + + let temp_dir = temp_dir.map(|path| path.to_owned()); + cx.spawn_in(window, async move |this, cx| { + let result = async { + let (project, fs) = workspace.read_with(cx, |workspace, _cx| { + ( + workspace.project().downgrade(), + workspace.app_state().fs.clone(), + ) + })?; + + let file_name = project::lsp_store::json_language_server_ext::normalized_action_file_name(action_name); + + let (buffer, backup_temp_dir) = Self::create_temp_buffer(temp_dir, file_name.clone(), project.clone(), fs, cx).await.context("Failed to create temporary buffer for action arguments. Auto-complete will not work") + ?; + + let editor = cx.new_window_entity(|window, cx| { + let multi_buffer = cx.new(|cx| editor::MultiBuffer::singleton(buffer, cx)); + let mut editor = Editor::new(editor::EditorMode::Full { scale_ui_elements_with_buffer_font_size: true, show_active_line_background: false, sized_by_content: true },multi_buffer, project.upgrade(), window, cx); + editor.set_searchable(false); + editor.disable_scrollbars_and_minimap(window, cx); + editor.set_show_edit_predictions(Some(false), window, cx); + editor.set_show_gutter(false, cx); + Self::set_editor_text(&mut editor, arguments, window, cx); + editor + })?; + + this.update_in(cx, |this, window, cx| { + if this.editor.focus_handle(cx).is_focused(window) { + editor.focus_handle(cx).focus(window); + } + this.editor = editor; + this.backup_temp_dir = backup_temp_dir; + this.is_loading = false; + })?; + + anyhow::Ok(()) + }.await; + if result.is_err() { + let json_language = load_json_language(workspace.clone(), cx).await; + this.update(cx, |this, cx| { + this.editor.update(cx, |editor, cx| { + if let Some(buffer) = editor.buffer().read(cx).as_singleton() { + buffer.update(cx, |buffer, cx| { + buffer.set_language(Some(json_language.clone()), cx) + }); + } + }) + // .context("Failed to load JSON language for editing keybinding action arguments input") + }).ok(); + this.update(cx, |this, _cx| { + this.is_loading = false; + }).ok(); + } + return result; + }) + .detach_and_log_err(cx); + Self { + editor, + focus_handle, + is_loading: true, + backup_temp_dir: None, + } + } + + fn set_editor_text( + editor: &mut Editor, + arguments: Option, + window: &mut Window, + cx: &mut Context, + ) { + if let Some(arguments) = arguments { + editor.set_text(arguments, window, cx); + } else { + // TODO: default value from schema? + editor.set_placeholder_text("Action Arguments", cx); + } + } + + async fn create_temp_buffer( + temp_dir: Option, + file_name: String, + project: WeakEntity, + fs: Arc, + cx: &mut AsyncApp, + ) -> anyhow::Result<(Entity, Option)> { + let (temp_file_path, temp_dir) = { + let file_name = file_name.clone(); + async move { + let temp_dir_backup = match temp_dir.as_ref() { + Some(_) => None, + None => { + let temp_dir = paths::temp_dir(); + let sub_temp_dir = tempfile::Builder::new() + .tempdir_in(temp_dir) + .context("Failed to create temporary directory")?; + Some(sub_temp_dir) + } + }; + let dir_path = temp_dir.as_deref().unwrap_or_else(|| { + temp_dir_backup + .as_ref() + .expect("created backup tempdir") + .path() + }); + let path = dir_path.join(file_name); + fs.create_file( + &path, + fs::CreateOptions { + ignore_if_exists: true, + overwrite: true, + }, + ) + .await + .context("Failed to create temporary file")?; + anyhow::Ok((path, temp_dir_backup)) + } + } + .await + .context("Failed to create backing file")?; + + project + .update(cx, |project, cx| { + project.open_local_buffer(temp_file_path, cx) + })? + .await + .context("Failed to create buffer") + .map(|buffer| (buffer, temp_dir)) + } +} + +impl Render for ActionArgumentsEditor { + fn render(&mut self, _window: &mut Window, cx: &mut Context) -> impl IntoElement { + let background_color; + let border_color; + let text_style = { + let colors = cx.theme().colors(); + let settings = theme::ThemeSettings::get_global(cx); + background_color = colors.editor_background; + border_color = if self.is_loading { + colors.border_disabled + } else { + colors.border_variant + }; + TextStyleRefinement { + font_size: Some(rems(0.875).into()), + font_weight: Some(settings.buffer_font.weight), + line_height: Some(relative(1.2)), + font_style: Some(gpui::FontStyle::Normal), + color: self.is_loading.then_some(colors.text_disabled), + ..Default::default() + } + }; + + self.editor + .update(cx, |editor, _| editor.set_text_style_refinement(text_style)); + + return v_flex().w_full().child( + h_flex() + .min_h_8() + .min_w_48() + .px_2() + .py_1p5() + .flex_grow() + .rounded_lg() + .bg(background_color) + .border_1() + .border_color(border_color) + .track_focus(&self.focus_handle) + .child(self.editor.clone()), + ); + } +} + struct KeyContextCompletionProvider { contexts: Vec, } @@ -2643,6 +2869,11 @@ impl KeystrokeInput { { if self.search { last.key = keystroke.key.clone(); + if close_keystroke_result == CloseKeystrokeResult::Partial + && self.close_keystrokes_start.is_none() + { + self.close_keystrokes_start = Some(self.keystrokes.len() - 1); + } self.keystrokes_changed(cx); cx.stop_propagation(); return; From 137081f050c766cc2f5a3fbf913a12453912e35d Mon Sep 17 00:00:00 2001 From: Michael Sloan Date: Sun, 20 Jul 2025 17:22:13 -0600 Subject: [PATCH 0082/1052] Misc code cleanups accumulated while working on other changes (#34787) Release Notes: - N/A --- crates/command_palette/src/command_palette.rs | 2 +- crates/dap/src/registry.rs | 1 + crates/gpui/examples/set_menus.rs | 2 +- crates/gpui/src/app.rs | 4 +++- .../src/migrations/m_2025_04_15/keymap.rs | 2 +- crates/theme/src/schema.rs | 18 ++---------------- crates/util/src/schemars.rs | 1 - 7 files changed, 9 insertions(+), 21 deletions(-) diff --git a/crates/command_palette/src/command_palette.rs b/crates/command_palette/src/command_palette.rs index abb8978d5a..dfaede0dc4 100644 --- a/crates/command_palette/src/command_palette.rs +++ b/crates/command_palette/src/command_palette.rs @@ -242,7 +242,7 @@ impl CommandPaletteDelegate { self.selected_ix = cmp::min(self.selected_ix, self.matches.len() - 1); } } - /// + /// Hit count for each command in the palette. /// We only account for commands triggered directly via command palette and not by e.g. keystrokes because /// if a user already knows a keystroke for a command, they are unlikely to use a command palette to look for it. diff --git a/crates/dap/src/registry.rs b/crates/dap/src/registry.rs index 9435b16b92..d56e2f8f34 100644 --- a/crates/dap/src/registry.rs +++ b/crates/dap/src/registry.rs @@ -46,6 +46,7 @@ impl DapRegistry { let name = adapter.name(); let _previous_value = self.0.write().adapters.insert(name, adapter); } + pub fn add_locator(&self, locator: Arc) { self.0.write().locators.insert(locator.name(), locator); } diff --git a/crates/gpui/examples/set_menus.rs b/crates/gpui/examples/set_menus.rs index 2b302f78f2..f53fff7c7f 100644 --- a/crates/gpui/examples/set_menus.rs +++ b/crates/gpui/examples/set_menus.rs @@ -34,7 +34,7 @@ fn main() { }); } -// Associate actions using the `actions!` macro (or `impl_actions!` macro) +// Associate actions using the `actions!` macro (or `Action` derive macro) actions!(set_menus, [Quit]); // Define the quit function that is registered with the App diff --git a/crates/gpui/src/app.rs b/crates/gpui/src/app.rs index 70e1d1e4cd..de7ba782b2 100644 --- a/crates/gpui/src/app.rs +++ b/crates/gpui/src/app.rs @@ -1370,7 +1370,9 @@ impl App { self.keymap.clone() } - /// Register a global listener for actions invoked via the keyboard. + /// Register a global handler for actions invoked via the keyboard. These handlers are run at + /// the end of the bubble phase for actions, and so will only be invoked if there are no other + /// handlers or if they called `cx.propagate()`. pub fn on_action(&mut self, listener: impl Fn(&A, &mut Self) + 'static) { self.global_action_listeners .entry(TypeId::of::()) diff --git a/crates/migrator/src/migrations/m_2025_04_15/keymap.rs b/crates/migrator/src/migrations/m_2025_04_15/keymap.rs index d1443a922a..efbdc6b1c6 100644 --- a/crates/migrator/src/migrations/m_2025_04_15/keymap.rs +++ b/crates/migrator/src/migrations/m_2025_04_15/keymap.rs @@ -25,7 +25,7 @@ fn replace_string_action( None } -/// "ctrl-k ctrl-1": "inline_completion::ToggleMenu" -> "edit_prediction::ToggleMenu" +/// "space": "outline_panel::Open" -> "outline_panel::OpenSelectedEntry" static STRING_REPLACE: LazyLock> = LazyLock::new(|| { HashMap::from_iter([("outline_panel::Open", "outline_panel::OpenSelectedEntry")]) }); diff --git a/crates/theme/src/schema.rs b/crates/theme/src/schema.rs index b2a13b54b6..bed25d0c05 100644 --- a/crates/theme/src/schema.rs +++ b/crates/theme/src/schema.rs @@ -4,11 +4,10 @@ use anyhow::Result; use gpui::{FontStyle, FontWeight, HighlightStyle, Hsla, WindowBackgroundAppearance}; use indexmap::IndexMap; use palette::FromColor; -use schemars::{JsonSchema, json_schema}; +use schemars::{JsonSchema, JsonSchema_repr}; use serde::{Deserialize, Deserializer, Serialize}; use serde_json::Value; use serde_repr::{Deserialize_repr, Serialize_repr}; -use std::borrow::Cow; use crate::{StatusColorsRefinement, ThemeColorsRefinement}; @@ -1486,7 +1485,7 @@ impl From for FontStyle { } } -#[derive(Debug, Clone, Copy, Serialize_repr, Deserialize_repr, PartialEq)] +#[derive(Debug, Clone, Copy, Serialize_repr, Deserialize_repr, JsonSchema_repr, PartialEq)] #[repr(u16)] pub enum FontWeightContent { Thin = 100, @@ -1500,19 +1499,6 @@ pub enum FontWeightContent { Black = 900, } -impl JsonSchema for FontWeightContent { - fn schema_name() -> Cow<'static, str> { - "FontWeightContent".into() - } - - fn json_schema(_: &mut schemars::SchemaGenerator) -> schemars::Schema { - json_schema!({ - "type": "integer", - "enum": [100, 200, 300, 400, 500, 600, 700, 800, 900] - }) - } -} - impl From for FontWeight { fn from(value: FontWeightContent) -> Self { match value { diff --git a/crates/util/src/schemars.rs b/crates/util/src/schemars.rs index 4d8ab530dd..e162b41933 100644 --- a/crates/util/src/schemars.rs +++ b/crates/util/src/schemars.rs @@ -15,7 +15,6 @@ pub fn replace_subschema( generator: &mut schemars::SchemaGenerator, schema: impl Fn() -> schemars::Schema, ) -> schemars::Schema { - // fallback on just using the schema name, which could collide. let schema_name = T::schema_name(); let definitions = generator.definitions_mut(); assert!(!definitions.contains_key(&format!("{schema_name}2"))); From caa4b529e4b130006990a31b4908e4252aa96fe4 Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Mon, 21 Jul 2025 07:38:54 +0800 Subject: [PATCH 0083/1052] gpui: Add tab focus support (#33008) Release Notes: - N/A With a `tab_index` and `tab_stop` option to `FocusHandle` to us can switch focus by `Tab`, `Shift-Tab`. The `tab_index` is from [WinUI](https://learn.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.control.tabindex?view=winrt-26100) and [HTML tabindex](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/tabindex), only the `tab_stop` is enabled that can be added into the `tab_handles` list. - Added `window.focus_next()` and `window.focus_previous()` method to switch focus. - Added `tab_index` to `InteractiveElement`. ```bash cargo run -p gpui --example tab_stop ``` https://github.com/user-attachments/assets/ac4e3e49-8359-436c-9a6e-badba2225211 --- crates/gpui/examples/tab_stop.rs | 130 +++++++++++++++++++++++++ crates/gpui/src/app.rs | 4 +- crates/gpui/src/elements/div.rs | 29 ++++-- crates/gpui/src/gpui.rs | 2 + crates/gpui/src/tab_stop.rs | 157 +++++++++++++++++++++++++++++++ crates/gpui/src/window.rs | 81 ++++++++++++++-- 6 files changed, 387 insertions(+), 16 deletions(-) create mode 100644 crates/gpui/examples/tab_stop.rs create mode 100644 crates/gpui/src/tab_stop.rs diff --git a/crates/gpui/examples/tab_stop.rs b/crates/gpui/examples/tab_stop.rs new file mode 100644 index 0000000000..9c58b52a5e --- /dev/null +++ b/crates/gpui/examples/tab_stop.rs @@ -0,0 +1,130 @@ +use gpui::{ + App, Application, Bounds, Context, Div, ElementId, FocusHandle, KeyBinding, SharedString, + Stateful, Window, WindowBounds, WindowOptions, actions, div, prelude::*, px, size, +}; + +actions!(example, [Tab, TabPrev]); + +struct Example { + items: Vec, + message: SharedString, +} + +impl Example { + fn new(window: &mut Window, cx: &mut Context) -> Self { + let items = vec![ + cx.focus_handle().tab_index(1).tab_stop(true), + cx.focus_handle().tab_index(2).tab_stop(true), + cx.focus_handle().tab_index(3).tab_stop(true), + cx.focus_handle(), + cx.focus_handle().tab_index(2).tab_stop(true), + ]; + + window.focus(items.first().unwrap()); + Self { + items, + message: SharedString::from("Press `Tab`, `Shift-Tab` to switch focus."), + } + } + + fn on_tab(&mut self, _: &Tab, window: &mut Window, _: &mut Context) { + window.focus_next(); + self.message = SharedString::from("You have pressed `Tab`."); + } + + fn on_tab_prev(&mut self, _: &TabPrev, window: &mut Window, _: &mut Context) { + window.focus_prev(); + self.message = SharedString::from("You have pressed `Shift-Tab`."); + } +} + +impl Render for Example { + fn render(&mut self, window: &mut Window, cx: &mut Context) -> impl IntoElement { + fn button(id: impl Into) -> Stateful

{ + div() + .id(id) + .h_10() + .flex_1() + .flex() + .justify_center() + .items_center() + .border_1() + .border_color(gpui::black()) + .bg(gpui::black()) + .text_color(gpui::white()) + .focus(|this| this.border_color(gpui::blue())) + .shadow_sm() + } + + div() + .id("app") + .on_action(cx.listener(Self::on_tab)) + .on_action(cx.listener(Self::on_tab_prev)) + .size_full() + .flex() + .flex_col() + .p_4() + .gap_3() + .bg(gpui::white()) + .text_color(gpui::black()) + .child(self.message.clone()) + .children( + self.items + .clone() + .into_iter() + .enumerate() + .map(|(ix, item_handle)| { + div() + .id(("item", ix)) + .track_focus(&item_handle) + .h_10() + .w_full() + .flex() + .justify_center() + .items_center() + .border_1() + .border_color(gpui::black()) + .when( + item_handle.tab_stop && item_handle.is_focused(window), + |this| this.border_color(gpui::blue()), + ) + .map(|this| match item_handle.tab_stop { + true => this + .hover(|this| this.bg(gpui::black().opacity(0.1))) + .child(format!("tab_index: {}", item_handle.tab_index)), + false => this.opacity(0.4).child("tab_stop: false"), + }) + }), + ) + .child( + div() + .flex() + .flex_row() + .gap_3() + .items_center() + .child(button("el1").tab_index(4).child("Button 1")) + .child(button("el2").tab_index(5).child("Button 2")), + ) + } +} + +fn main() { + Application::new().run(|cx: &mut App| { + cx.bind_keys([ + KeyBinding::new("tab", Tab, None), + KeyBinding::new("shift-tab", TabPrev, None), + ]); + + let bounds = Bounds::centered(None, size(px(800.), px(600.0)), cx); + cx.open_window( + WindowOptions { + window_bounds: Some(WindowBounds::Windowed(bounds)), + ..Default::default() + }, + |window, cx| cx.new(|cx| Example::new(window, cx)), + ) + .unwrap(); + + cx.activate(true); + }); +} diff --git a/crates/gpui/src/app.rs b/crates/gpui/src/app.rs index de7ba782b2..2771de9aac 100644 --- a/crates/gpui/src/app.rs +++ b/crates/gpui/src/app.rs @@ -954,8 +954,8 @@ impl App { self.focus_handles .clone() .write() - .retain(|handle_id, count| { - if count.load(SeqCst) == 0 { + .retain(|handle_id, focus| { + if focus.ref_count.load(SeqCst) == 0 { for window_handle in self.windows() { window_handle .update(self, |_, window, _| { diff --git a/crates/gpui/src/elements/div.rs b/crates/gpui/src/elements/div.rs index cb53276bc2..ed1666c530 100644 --- a/crates/gpui/src/elements/div.rs +++ b/crates/gpui/src/elements/div.rs @@ -619,6 +619,13 @@ pub trait InteractiveElement: Sized { self } + /// Set index of the tab stop order. + fn tab_index(mut self, index: isize) -> Self { + self.interactivity().focusable = true; + self.interactivity().tab_index = Some(index); + self + } + /// Set the keymap context for this element. This will be used to determine /// which action to dispatch from the keymap. fn key_context(mut self, key_context: C) -> Self @@ -1462,6 +1469,7 @@ pub struct Interactivity { pub(crate) tooltip_builder: Option, pub(crate) window_control: Option, pub(crate) hitbox_behavior: HitboxBehavior, + pub(crate) tab_index: Option, #[cfg(any(feature = "inspector", debug_assertions))] pub(crate) source_location: Option<&'static core::panic::Location<'static>>, @@ -1521,12 +1529,17 @@ impl Interactivity { // as frames contain an element with this id. if self.focusable && self.tracked_focus_handle.is_none() { if let Some(element_state) = element_state.as_mut() { - self.tracked_focus_handle = Some( - element_state - .focus_handle - .get_or_insert_with(|| cx.focus_handle()) - .clone(), - ); + let mut handle = element_state + .focus_handle + .get_or_insert_with(|| cx.focus_handle()) + .clone() + .tab_stop(false); + + if let Some(index) = self.tab_index { + handle = handle.tab_index(index).tab_stop(true); + } + + self.tracked_focus_handle = Some(handle); } } @@ -1729,6 +1742,10 @@ impl Interactivity { return ((), element_state); } + if let Some(focus_handle) = &self.tracked_focus_handle { + window.next_frame.tab_handles.insert(focus_handle); + } + window.with_element_opacity(style.opacity, |window| { style.paint(bounds, window, cx, |window: &mut Window, cx: &mut App| { window.with_text_style(style.text_style().cloned(), |window| { diff --git a/crates/gpui/src/gpui.rs b/crates/gpui/src/gpui.rs index 4eb6fa8dab..09799eb910 100644 --- a/crates/gpui/src/gpui.rs +++ b/crates/gpui/src/gpui.rs @@ -95,6 +95,7 @@ mod style; mod styled; mod subscription; mod svg_renderer; +mod tab_stop; mod taffy; #[cfg(any(test, feature = "test-support"))] pub mod test; @@ -151,6 +152,7 @@ pub use style::*; pub use styled::*; pub use subscription::*; use svg_renderer::*; +pub(crate) use tab_stop::*; pub use taffy::{AvailableSpace, LayoutId}; #[cfg(any(test, feature = "test-support"))] pub use test::*; diff --git a/crates/gpui/src/tab_stop.rs b/crates/gpui/src/tab_stop.rs new file mode 100644 index 0000000000..2ec3f560e8 --- /dev/null +++ b/crates/gpui/src/tab_stop.rs @@ -0,0 +1,157 @@ +use crate::{FocusHandle, FocusId}; + +/// Represents a collection of tab handles. +/// +/// Used to manage the `Tab` event to switch between focus handles. +#[derive(Default)] +pub(crate) struct TabHandles { + handles: Vec, +} + +impl TabHandles { + pub(crate) fn insert(&mut self, focus_handle: &FocusHandle) { + if !focus_handle.tab_stop { + return; + } + + let focus_handle = focus_handle.clone(); + + // Insert handle with same tab_index last + if let Some(ix) = self + .handles + .iter() + .position(|tab| tab.tab_index > focus_handle.tab_index) + { + self.handles.insert(ix, focus_handle); + } else { + self.handles.push(focus_handle); + } + } + + pub(crate) fn clear(&mut self) { + self.handles.clear(); + } + + fn current_index(&self, focused_id: Option<&FocusId>) -> usize { + self.handles + .iter() + .position(|h| Some(&h.id) == focused_id) + .unwrap_or_default() + } + + pub(crate) fn next(&self, focused_id: Option<&FocusId>) -> Option { + let ix = self.current_index(focused_id); + + let mut next_ix = ix + 1; + if next_ix + 1 > self.handles.len() { + next_ix = 0; + } + + if let Some(next_handle) = self.handles.get(next_ix) { + Some(next_handle.clone()) + } else { + None + } + } + + pub(crate) fn prev(&self, focused_id: Option<&FocusId>) -> Option { + let ix = self.current_index(focused_id); + let prev_ix; + if ix == 0 { + prev_ix = self.handles.len().saturating_sub(1); + } else { + prev_ix = ix.saturating_sub(1); + } + + if let Some(prev_handle) = self.handles.get(prev_ix) { + Some(prev_handle.clone()) + } else { + None + } + } +} + +#[cfg(test)] +mod tests { + use crate::{FocusHandle, FocusMap, TabHandles}; + use std::sync::Arc; + + #[test] + fn test_tab_handles() { + let focus_map = Arc::new(FocusMap::default()); + let mut tab = TabHandles::default(); + + let focus_handles = vec![ + FocusHandle::new(&focus_map).tab_stop(true).tab_index(0), + FocusHandle::new(&focus_map).tab_stop(true).tab_index(1), + FocusHandle::new(&focus_map).tab_stop(true).tab_index(1), + FocusHandle::new(&focus_map), + FocusHandle::new(&focus_map).tab_index(2), + FocusHandle::new(&focus_map).tab_stop(true).tab_index(0), + FocusHandle::new(&focus_map).tab_stop(true).tab_index(2), + ]; + + for handle in focus_handles.iter() { + tab.insert(&handle); + } + assert_eq!( + tab.handles + .iter() + .map(|handle| handle.id) + .collect::>(), + vec![ + focus_handles[0].id, + focus_handles[5].id, + focus_handles[1].id, + focus_handles[2].id, + focus_handles[6].id, + ] + ); + + // next + assert_eq!(tab.next(None), Some(tab.handles[1].clone())); + assert_eq!( + tab.next(Some(&tab.handles[0].id)), + Some(tab.handles[1].clone()) + ); + assert_eq!( + tab.next(Some(&tab.handles[1].id)), + Some(tab.handles[2].clone()) + ); + assert_eq!( + tab.next(Some(&tab.handles[2].id)), + Some(tab.handles[3].clone()) + ); + assert_eq!( + tab.next(Some(&tab.handles[3].id)), + Some(tab.handles[4].clone()) + ); + assert_eq!( + tab.next(Some(&tab.handles[4].id)), + Some(tab.handles[0].clone()) + ); + + // prev + assert_eq!(tab.prev(None), Some(tab.handles[4].clone())); + assert_eq!( + tab.prev(Some(&tab.handles[0].id)), + Some(tab.handles[4].clone()) + ); + assert_eq!( + tab.prev(Some(&tab.handles[1].id)), + Some(tab.handles[0].clone()) + ); + assert_eq!( + tab.prev(Some(&tab.handles[2].id)), + Some(tab.handles[1].clone()) + ); + assert_eq!( + tab.prev(Some(&tab.handles[3].id)), + Some(tab.handles[2].clone()) + ); + assert_eq!( + tab.prev(Some(&tab.handles[4].id)), + Some(tab.handles[3].clone()) + ); + } +} diff --git a/crates/gpui/src/window.rs b/crates/gpui/src/window.rs index b6601829c7..963d2bb45c 100644 --- a/crates/gpui/src/window.rs +++ b/crates/gpui/src/window.rs @@ -12,10 +12,11 @@ use crate::{ PlatformInputHandler, PlatformWindow, Point, PolychromeSprite, PromptButton, PromptLevel, Quad, Render, RenderGlyphParams, RenderImage, RenderImageParams, RenderSvgParams, Replay, ResizeEdge, SMOOTH_SVG_SCALE_FACTOR, SUBPIXEL_VARIANTS, ScaledPixels, Scene, Shadow, SharedString, Size, - StrikethroughStyle, Style, SubscriberSet, Subscription, TaffyLayoutEngine, Task, TextStyle, - TextStyleRefinement, TransformationMatrix, Underline, UnderlineStyle, WindowAppearance, - WindowBackgroundAppearance, WindowBounds, WindowControls, WindowDecorations, WindowOptions, - WindowParams, WindowTextSystem, point, prelude::*, px, rems, size, transparent_black, + StrikethroughStyle, Style, SubscriberSet, Subscription, TabHandles, TaffyLayoutEngine, Task, + TextStyle, TextStyleRefinement, TransformationMatrix, Underline, UnderlineStyle, + WindowAppearance, WindowBackgroundAppearance, WindowBounds, WindowControls, WindowDecorations, + WindowOptions, WindowParams, WindowTextSystem, point, prelude::*, px, rems, size, + transparent_black, }; use anyhow::{Context as _, Result, anyhow}; use collections::{FxHashMap, FxHashSet}; @@ -222,7 +223,12 @@ impl ArenaClearNeeded { } } -pub(crate) type FocusMap = RwLock>; +pub(crate) type FocusMap = RwLock>; +pub(crate) struct FocusRef { + pub(crate) ref_count: AtomicUsize, + pub(crate) tab_index: isize, + pub(crate) tab_stop: bool, +} impl FocusId { /// Obtains whether the element associated with this handle is currently focused. @@ -258,6 +264,10 @@ impl FocusId { pub struct FocusHandle { pub(crate) id: FocusId, handles: Arc, + /// The index of this element in the tab order. + pub tab_index: isize, + /// Whether this element can be focused by tab navigation. + pub tab_stop: bool, } impl std::fmt::Debug for FocusHandle { @@ -268,25 +278,54 @@ impl std::fmt::Debug for FocusHandle { impl FocusHandle { pub(crate) fn new(handles: &Arc) -> Self { - let id = handles.write().insert(AtomicUsize::new(1)); + let id = handles.write().insert(FocusRef { + ref_count: AtomicUsize::new(1), + tab_index: 0, + tab_stop: false, + }); + Self { id, + tab_index: 0, + tab_stop: false, handles: handles.clone(), } } pub(crate) fn for_id(id: FocusId, handles: &Arc) -> Option { let lock = handles.read(); - let ref_count = lock.get(id)?; - if atomic_incr_if_not_zero(ref_count) == 0 { + let focus = lock.get(id)?; + if atomic_incr_if_not_zero(&focus.ref_count) == 0 { return None; } Some(Self { id, + tab_index: focus.tab_index, + tab_stop: focus.tab_stop, handles: handles.clone(), }) } + /// Sets the tab index of the element associated with this handle. + pub fn tab_index(mut self, index: isize) -> Self { + self.tab_index = index; + if let Some(focus) = self.handles.write().get_mut(self.id) { + focus.tab_index = index; + } + self + } + + /// Sets whether the element associated with this handle is a tab stop. + /// + /// When `false`, the element will not be included in the tab order. + pub fn tab_stop(mut self, tab_stop: bool) -> Self { + self.tab_stop = tab_stop; + if let Some(focus) = self.handles.write().get_mut(self.id) { + focus.tab_stop = tab_stop; + } + self + } + /// Converts this focus handle into a weak variant, which does not prevent it from being released. pub fn downgrade(&self) -> WeakFocusHandle { WeakFocusHandle { @@ -354,6 +393,7 @@ impl Drop for FocusHandle { .read() .get(self.id) .unwrap() + .ref_count .fetch_sub(1, SeqCst); } } @@ -642,6 +682,7 @@ pub(crate) struct Frame { pub(crate) next_inspector_instance_ids: FxHashMap, usize>, #[cfg(any(feature = "inspector", debug_assertions))] pub(crate) inspector_hitboxes: FxHashMap, + pub(crate) tab_handles: TabHandles, } #[derive(Clone, Default)] @@ -689,6 +730,7 @@ impl Frame { #[cfg(any(feature = "inspector", debug_assertions))] inspector_hitboxes: FxHashMap::default(), + tab_handles: TabHandles::default(), } } @@ -704,6 +746,7 @@ impl Frame { self.hitboxes.clear(); self.window_control_hitboxes.clear(); self.deferred_draws.clear(); + self.tab_handles.clear(); self.focus = None; #[cfg(any(feature = "inspector", debug_assertions))] @@ -1289,6 +1332,28 @@ impl Window { self.focus_enabled = false; } + /// Move focus to next tab stop. + pub fn focus_next(&mut self) { + if !self.focus_enabled { + return; + } + + if let Some(handle) = self.rendered_frame.tab_handles.next(self.focus.as_ref()) { + self.focus(&handle) + } + } + + /// Move focus to previous tab stop. + pub fn focus_prev(&mut self) { + if !self.focus_enabled { + return; + } + + if let Some(handle) = self.rendered_frame.tab_handles.prev(self.focus.as_ref()) { + self.focus(&handle) + } + } + /// Accessor for the text system. pub fn text_system(&self) -> &Arc { &self.text_system From 57ab09c2dabe5282926593360e0d865b19fe8e36 Mon Sep 17 00:00:00 2001 From: Ben Brandt Date: Mon, 21 Jul 2025 11:53:05 +0200 Subject: [PATCH 0084/1052] claude: Don't quote executable path in mcp configuration (#34805) This was generating an invalid string for the configuration, removing the extra quotes makes it work. This affected the versions of Zed that have a space in their name. Release Notes: - N/A --- crates/agent_servers/src/claude/mcp_server.rs | 3 --- 1 file changed, 3 deletions(-) diff --git a/crates/agent_servers/src/claude/mcp_server.rs b/crates/agent_servers/src/claude/mcp_server.rs index fa61e67112..468027c4c3 100644 --- a/crates/agent_servers/src/claude/mcp_server.rs +++ b/crates/agent_servers/src/claude/mcp_server.rs @@ -69,9 +69,6 @@ impl ClaudeMcpServer { } pub fn server_config(&self) -> Result { - #[cfg(not(target_os = "windows"))] - let zed_path = util::get_shell_safe_zed_path()?; - #[cfg(target_os = "windows")] let zed_path = std::env::current_exe() .context("finding current executable path for use in mcp_server")? .to_string_lossy() From 88af35fe4727f5187608cfb396def24f4c60c004 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Mon, 21 Jul 2025 13:44:51 +0200 Subject: [PATCH 0085/1052] collab: Add screen selector (#31506) Instead of selecting a screen to share arbitrarily, we'll now allow user to select the screen to share. Note that sharing multiple screens at the time is still not supported (though prolly not too far-fetched). Related to #4666 ![image](https://github.com/user-attachments/assets/1afb664f-3cdb-4e0a-bb29-9d7093d87fa5) Release Notes: - Added screen selector dropdown to screen share button --------- Co-authored-by: Kirill Bulatov Co-authored-by: Cole Miller --- .config/hakari.toml | 2 +- Cargo.lock | 6 +- Cargo.toml | 4 +- crates/call/src/call_impl/room.rs | 61 +++--- crates/collab/src/tests/following_tests.rs | 12 +- crates/collab/src/tests/integration_tests.rs | 21 +- crates/collab_ui/src/collab_panel.rs | 22 +- crates/gpui/src/app.rs | 2 +- crates/gpui/src/platform.rs | 31 ++- .../src/platform/linux/headless/client.rs | 2 +- crates/gpui/src/platform/linux/platform.rs | 4 +- .../gpui/src/platform/linux/wayland/client.rs | 2 +- crates/gpui/src/platform/linux/x11/client.rs | 2 +- crates/gpui/src/platform/mac/platform.rs | 2 +- .../gpui/src/platform/mac/screen_capture.rs | 102 ++++++++-- .../gpui/src/platform/scap_screen_capture.rs | 99 ++++++--- crates/gpui/src/platform/test.rs | 2 +- crates/gpui/src/platform/test/platform.rs | 22 +- crates/gpui/src/platform/windows/platform.rs | 2 +- .../src/livekit_client/playback.rs | 6 +- .../src/mock_client/participant.rs | 6 +- crates/title_bar/Cargo.toml | 1 + crates/title_bar/src/collab.rs | 192 +++++++++++++++--- crates/title_bar/src/title_bar.rs | 4 +- .../ui/src/components/button/icon_button.rs | 3 +- crates/ui/src/components/context_menu.rs | 6 + 26 files changed, 473 insertions(+), 145 deletions(-) diff --git a/.config/hakari.toml b/.config/hakari.toml index 5168887581..2050065cc2 100644 --- a/.config/hakari.toml +++ b/.config/hakari.toml @@ -24,7 +24,7 @@ workspace-members = [ third-party = [ { name = "reqwest", version = "0.11.27" }, # build of remote_server should not include scap / its x11 dependency - { name = "scap", git = "https://github.com/zed-industries/scap", rev = "270538dc780f5240723233ff901e1054641ed318" }, + { name = "scap", git = "https://github.com/zed-industries/scap", rev = "808aa5c45b41e8f44729d02e38fd00a2fe2722e7" }, ] [final-excludes] diff --git a/Cargo.lock b/Cargo.lock index a5ea621cd1..bc69de7a7c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14185,7 +14185,7 @@ dependencies = [ [[package]] name = "scap" version = "0.0.8" -source = "git+https://github.com/zed-industries/scap?rev=270538dc780f5240723233ff901e1054641ed318#270538dc780f5240723233ff901e1054641ed318" +source = "git+https://github.com/zed-industries/scap?rev=808aa5c45b41e8f44729d02e38fd00a2fe2722e7#808aa5c45b41e8f44729d02e38fd00a2fe2722e7" dependencies = [ "anyhow", "cocoa 0.25.0", @@ -16484,6 +16484,7 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" name = "title_bar" version = "0.1.0" dependencies = [ + "anyhow", "auto_update", "call", "chrono", @@ -18729,8 +18730,7 @@ dependencies = [ [[package]] name = "windows-capture" version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59d10b4be8b907c7055bc7270dd68d2b920978ffacc1599dcb563a79f0e68d16" +source = "git+https://github.com/zed-industries/windows-capture.git?rev=f0d6c1b6691db75461b732f6d5ff56eed002eeb9#f0d6c1b6691db75461b732f6d5ff56eed002eeb9" dependencies = [ "clap", "ctrlc", diff --git a/Cargo.toml b/Cargo.toml index aa9af9a423..0169d32eb6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -553,8 +553,7 @@ rustc-demangle = "0.1.23" rustc-hash = "2.1.0" rustls = { version = "0.23.26" } rustls-platform-verifier = "0.5.0" -# When updating scap rev, also update it in .config/hakari.toml -scap = { git = "https://github.com/zed-industries/scap", rev = "270538dc780f5240723233ff901e1054641ed318", default-features = false } +scap = { git = "https://github.com/zed-industries/scap", rev = "808aa5c45b41e8f44729d02e38fd00a2fe2722e7", default-features = false } schemars = { version = "1.0", features = ["indexmap2"] } semver = "1.0" serde = { version = "1.0", features = ["derive", "rc"] } @@ -708,6 +707,7 @@ features = [ [patch.crates-io] notify = { git = "https://github.com/zed-industries/notify.git", rev = "bbb9ea5ae52b253e095737847e367c30653a2e96" } notify-types = { git = "https://github.com/zed-industries/notify.git", rev = "bbb9ea5ae52b253e095737847e367c30653a2e96" } +windows-capture = { git = "https://github.com/zed-industries/windows-capture.git", rev = "f0d6c1b6691db75461b732f6d5ff56eed002eeb9" } # Makes the workspace hack crate refer to the local one, but only when you're building locally workspace-hack = { path = "tooling/workspace-hack" } diff --git a/crates/call/src/call_impl/room.rs b/crates/call/src/call_impl/room.rs index 7aac72ed46..afeee4c924 100644 --- a/crates/call/src/call_impl/room.rs +++ b/crates/call/src/call_impl/room.rs @@ -11,15 +11,18 @@ use client::{ use collections::{BTreeMap, HashMap, HashSet}; use fs::Fs; use futures::{FutureExt, StreamExt}; -use gpui::{App, AppContext as _, AsyncApp, Context, Entity, EventEmitter, Task, WeakEntity}; +use gpui::{ + App, AppContext as _, AsyncApp, Context, Entity, EventEmitter, ScreenCaptureSource, + ScreenCaptureStream, Task, WeakEntity, +}; use gpui_tokio::Tokio; use language::LanguageRegistry; use livekit::{LocalTrackPublication, ParticipantIdentity, RoomEvent}; -use livekit_client::{self as livekit, TrackSid}; +use livekit_client::{self as livekit, AudioStream, TrackSid}; use postage::{sink::Sink, stream::Stream, watch}; use project::Project; use settings::Settings as _; -use std::{any::Any, future::Future, mem, rc::Rc, sync::Arc, time::Duration}; +use std::{future::Future, mem, rc::Rc, sync::Arc, time::Duration}; use util::{ResultExt, TryFutureExt, post_inc}; pub const RECONNECT_TIMEOUT: Duration = Duration::from_secs(30); @@ -1251,12 +1254,21 @@ impl Room { }) } - pub fn is_screen_sharing(&self) -> bool { + pub fn is_sharing_screen(&self) -> bool { self.live_kit.as_ref().map_or(false, |live_kit| { !matches!(live_kit.screen_track, LocalTrack::None) }) } + pub fn shared_screen_id(&self) -> Option { + self.live_kit.as_ref().and_then(|lk| match lk.screen_track { + LocalTrack::Published { ref _stream, .. } => { + _stream.metadata().ok().map(|meta| meta.id) + } + _ => None, + }) + } + pub fn is_sharing_mic(&self) -> bool { self.live_kit.as_ref().map_or(false, |live_kit| { !matches!(live_kit.microphone_track, LocalTrack::None) @@ -1369,11 +1381,15 @@ impl Room { }) } - pub fn share_screen(&mut self, cx: &mut Context) -> Task> { + pub fn share_screen( + &mut self, + source: Rc, + cx: &mut Context, + ) -> Task> { if self.status.is_offline() { return Task::ready(Err(anyhow!("room is offline"))); } - if self.is_screen_sharing() { + if self.is_sharing_screen() { return Task::ready(Err(anyhow!("screen was already shared"))); } @@ -1386,20 +1402,8 @@ impl Room { return Task::ready(Err(anyhow!("live-kit was not initialized"))); }; - let sources = cx.screen_capture_sources(); - cx.spawn(async move |this, cx| { - let sources = sources - .await - .map_err(|error| error.into()) - .and_then(|sources| sources); - let source = - sources.and_then(|sources| sources.into_iter().next().context("no display found")); - - let publication = match source { - Ok(source) => participant.publish_screenshare_track(&*source, cx).await, - Err(error) => Err(error), - }; + let publication = participant.publish_screenshare_track(&*source, cx).await; this.update(cx, |this, cx| { let live_kit = this @@ -1426,7 +1430,7 @@ impl Room { } else { live_kit.screen_track = LocalTrack::Published { track_publication: publication, - _stream: Box::new(stream), + _stream: stream, }; cx.notify(); } @@ -1492,7 +1496,7 @@ impl Room { } } - pub fn unshare_screen(&mut self, cx: &mut Context) -> Result<()> { + pub fn unshare_screen(&mut self, play_sound: bool, cx: &mut Context) -> Result<()> { anyhow::ensure!(!self.status.is_offline(), "room is offline"); let live_kit = self @@ -1516,7 +1520,10 @@ impl Room { cx.notify(); } - Audio::play_sound(Sound::StopScreenshare, cx); + if play_sound { + Audio::play_sound(Sound::StopScreenshare, cx); + } + Ok(()) } } @@ -1624,8 +1631,8 @@ fn spawn_room_connection( struct LiveKitRoom { room: Rc, - screen_track: LocalTrack, - microphone_track: LocalTrack, + screen_track: LocalTrack, + microphone_track: LocalTrack, /// Tracks whether we're currently in a muted state due to auto-mute from deafening or manual mute performed by user. muted_by_user: bool, deafened: bool, @@ -1663,18 +1670,18 @@ impl LiveKitRoom { } } -enum LocalTrack { +enum LocalTrack { None, Pending { publish_id: usize, }, Published { track_publication: LocalTrackPublication, - _stream: Box, + _stream: Box, }, } -impl Default for LocalTrack { +impl Default for LocalTrack { fn default() -> Self { Self::None } diff --git a/crates/collab/src/tests/following_tests.rs b/crates/collab/src/tests/following_tests.rs index 1a4c3a70a4..d9fd8ffeb2 100644 --- a/crates/collab/src/tests/following_tests.rs +++ b/crates/collab/src/tests/following_tests.rs @@ -439,7 +439,7 @@ async fn test_basic_following( editor_a1.item_id() ); - #[cfg(all(not(target_os = "macos"), not(target_os = "windows")))] + // #[cfg(all(not(target_os = "macos"), not(target_os = "windows")))] { use crate::rpc::RECONNECT_TIMEOUT; use gpui::TestScreenCaptureSource; @@ -456,11 +456,19 @@ async fn test_basic_following( .await .unwrap(); cx_b.set_screen_capture_sources(vec![display]); + let source = cx_b + .read(|cx| cx.screen_capture_sources()) + .await + .unwrap() + .unwrap() + .into_iter() + .next() + .unwrap(); active_call_b .update(cx_b, |call, cx| { call.room() .unwrap() - .update(cx, |room, cx| room.share_screen(cx)) + .update(cx, |room, cx| room.share_screen(source, cx)) }) .await .unwrap(); diff --git a/crates/collab/src/tests/integration_tests.rs b/crates/collab/src/tests/integration_tests.rs index d1099a327a..9795c27574 100644 --- a/crates/collab/src/tests/integration_tests.rs +++ b/crates/collab/src/tests/integration_tests.rs @@ -277,11 +277,19 @@ async fn test_basic_calls( let events_b = active_call_events(cx_b); let events_c = active_call_events(cx_c); cx_a.set_screen_capture_sources(vec![display]); + let screen_a = cx_a + .update(|cx| cx.screen_capture_sources()) + .await + .unwrap() + .unwrap() + .into_iter() + .next() + .unwrap(); active_call_a .update(cx_a, |call, cx| { call.room() .unwrap() - .update(cx, |room, cx| room.share_screen(cx)) + .update(cx, |room, cx| room.share_screen(screen_a, cx)) }) .await .unwrap(); @@ -6312,11 +6320,20 @@ async fn test_join_call_after_screen_was_shared( // User A shares their screen let display = gpui::TestScreenCaptureSource::new(); cx_a.set_screen_capture_sources(vec![display]); + let screen_a = cx_a + .update(|cx| cx.screen_capture_sources()) + .await + .unwrap() + .unwrap() + .into_iter() + .next() + .unwrap(); + active_call_a .update(cx_a, |call, cx| { call.room() .unwrap() - .update(cx, |room, cx| room.share_screen(cx)) + .update(cx, |room, cx| room.share_screen(screen_a, cx)) }) .await .unwrap(); diff --git a/crates/collab_ui/src/collab_panel.rs b/crates/collab_ui/src/collab_panel.rs index ec23e2c3f5..4d5973481e 100644 --- a/crates/collab_ui/src/collab_panel.rs +++ b/crates/collab_ui/src/collab_panel.rs @@ -144,10 +144,22 @@ pub fn init(cx: &mut App) { if let Some(room) = room { window.defer(cx, move |_window, cx| { room.update(cx, |room, cx| { - if room.is_screen_sharing() { - room.unshare_screen(cx).ok(); + if room.is_sharing_screen() { + room.unshare_screen(true, cx).ok(); } else { - room.share_screen(cx).detach_and_log_err(cx); + let sources = cx.screen_capture_sources(); + + cx.spawn(async move |room, cx| { + let sources = sources.await??; + let first = sources.into_iter().next(); + if let Some(first) = first { + room.update(cx, |room, cx| room.share_screen(first, cx))? + .await + } else { + Ok(()) + } + }) + .detach_and_log_err(cx); }; }); }); @@ -528,10 +540,10 @@ impl CollabPanel { project_id: project.id, worktree_root_names: project.worktree_root_names.clone(), host_user_id: user_id, - is_last: projects.peek().is_none() && !room.is_screen_sharing(), + is_last: projects.peek().is_none() && !room.is_sharing_screen(), }); } - if room.is_screen_sharing() { + if room.is_sharing_screen() { self.entries.push(ListEntry::ParticipantScreen { peer_id: None, is_last: true, diff --git a/crates/gpui/src/app.rs b/crates/gpui/src/app.rs index 2771de9aac..759d33563e 100644 --- a/crates/gpui/src/app.rs +++ b/crates/gpui/src/app.rs @@ -696,7 +696,7 @@ impl App { /// Returns a list of available screen capture sources. pub fn screen_capture_sources( &self, - ) -> oneshot::Receiver>>> { + ) -> oneshot::Receiver>>> { self.platform.screen_capture_sources() } diff --git a/crates/gpui/src/platform.rs b/crates/gpui/src/platform.rs index 8918fdd28b..6f227f1d07 100644 --- a/crates/gpui/src/platform.rs +++ b/crates/gpui/src/platform.rs @@ -85,7 +85,7 @@ pub(crate) use test::*; pub(crate) use windows::*; #[cfg(any(test, feature = "test-support"))] -pub use test::{TestDispatcher, TestScreenCaptureSource}; +pub use test::{TestDispatcher, TestScreenCaptureSource, TestScreenCaptureStream}; /// Returns a background executor for the current platform. pub fn background_executor() -> BackgroundExecutor { @@ -189,13 +189,12 @@ pub(crate) trait Platform: 'static { false } #[cfg(feature = "screen-capture")] - fn screen_capture_sources( - &self, - ) -> oneshot::Receiver>>>; + fn screen_capture_sources(&self) + -> oneshot::Receiver>>>; #[cfg(not(feature = "screen-capture"))] fn screen_capture_sources( &self, - ) -> oneshot::Receiver>>> { + ) -> oneshot::Receiver>>> { let (sources_tx, sources_rx) = oneshot::channel(); sources_tx .send(Err(anyhow::anyhow!( @@ -293,10 +292,23 @@ pub trait PlatformDisplay: Send + Sync + Debug { } } +/// Metadata for a given [ScreenCaptureSource] +#[derive(Clone)] +pub struct SourceMetadata { + /// Opaque identifier of this screen. + pub id: u64, + /// Human-readable label for this source. + pub label: Option, + /// Whether this source is the main display. + pub is_main: Option, + /// Video resolution of this source. + pub resolution: Size, +} + /// A source of on-screen video content that can be captured. pub trait ScreenCaptureSource { - /// Returns the video resolution of this source. - fn resolution(&self) -> Result>; + /// Returns metadata for this source. + fn metadata(&self) -> Result; /// Start capture video from this source, invoking the given callback /// with each frame. @@ -308,7 +320,10 @@ pub trait ScreenCaptureSource { } /// A video stream captured from a screen. -pub trait ScreenCaptureStream {} +pub trait ScreenCaptureStream { + /// Returns metadata for this source. + fn metadata(&self) -> Result; +} /// A frame of video captured from a screen. pub struct ScreenCaptureFrame(pub PlatformScreenCaptureFrame); diff --git a/crates/gpui/src/platform/linux/headless/client.rs b/crates/gpui/src/platform/linux/headless/client.rs index 663a740389..da54db3710 100644 --- a/crates/gpui/src/platform/linux/headless/client.rs +++ b/crates/gpui/src/platform/linux/headless/client.rs @@ -73,7 +73,7 @@ impl LinuxClient for HeadlessClient { #[cfg(feature = "screen-capture")] fn screen_capture_sources( &self, - ) -> futures::channel::oneshot::Receiver>>> + ) -> futures::channel::oneshot::Receiver>>> { let (mut tx, rx) = futures::channel::oneshot::channel(); tx.send(Err(anyhow::anyhow!( diff --git a/crates/gpui/src/platform/linux/platform.rs b/crates/gpui/src/platform/linux/platform.rs index c4b90ccf08..a52841e1af 100644 --- a/crates/gpui/src/platform/linux/platform.rs +++ b/crates/gpui/src/platform/linux/platform.rs @@ -56,7 +56,7 @@ pub trait LinuxClient { #[cfg(feature = "screen-capture")] fn screen_capture_sources( &self, - ) -> oneshot::Receiver>>>; + ) -> oneshot::Receiver>>>; fn open_window( &self, @@ -245,7 +245,7 @@ impl Platform for P { #[cfg(feature = "screen-capture")] fn screen_capture_sources( &self, - ) -> oneshot::Receiver>>> { + ) -> oneshot::Receiver>>> { self.screen_capture_sources() } diff --git a/crates/gpui/src/platform/linux/wayland/client.rs b/crates/gpui/src/platform/linux/wayland/client.rs index 57d1dcec04..72e4477ecf 100644 --- a/crates/gpui/src/platform/linux/wayland/client.rs +++ b/crates/gpui/src/platform/linux/wayland/client.rs @@ -672,7 +672,7 @@ impl LinuxClient for WaylandClient { #[cfg(feature = "screen-capture")] fn screen_capture_sources( &self, - ) -> futures::channel::oneshot::Receiver>>> + ) -> futures::channel::oneshot::Receiver>>> { // TODO: Get screen capture working on wayland. Be sure to try window resizing as that may // be tricky. diff --git a/crates/gpui/src/platform/linux/x11/client.rs b/crates/gpui/src/platform/linux/x11/client.rs index 0606f619c6..d1cb7d00cc 100644 --- a/crates/gpui/src/platform/linux/x11/client.rs +++ b/crates/gpui/src/platform/linux/x11/client.rs @@ -1448,7 +1448,7 @@ impl LinuxClient for X11Client { #[cfg(feature = "screen-capture")] fn screen_capture_sources( &self, - ) -> futures::channel::oneshot::Receiver>>> + ) -> futures::channel::oneshot::Receiver>>> { crate::platform::scap_screen_capture::scap_screen_sources( &self.0.borrow().common.foreground_executor, diff --git a/crates/gpui/src/platform/mac/platform.rs b/crates/gpui/src/platform/mac/platform.rs index d9bb665469..1d2146cf73 100644 --- a/crates/gpui/src/platform/mac/platform.rs +++ b/crates/gpui/src/platform/mac/platform.rs @@ -583,7 +583,7 @@ impl Platform for MacPlatform { #[cfg(feature = "screen-capture")] fn screen_capture_sources( &self, - ) -> oneshot::Receiver>>> { + ) -> oneshot::Receiver>>> { super::screen_capture::get_sources() } diff --git a/crates/gpui/src/platform/mac/screen_capture.rs b/crates/gpui/src/platform/mac/screen_capture.rs index af5e02fc06..4d4ffa6896 100644 --- a/crates/gpui/src/platform/mac/screen_capture.rs +++ b/crates/gpui/src/platform/mac/screen_capture.rs @@ -1,5 +1,5 @@ use crate::{ - DevicePixels, ForegroundExecutor, Size, + DevicePixels, ForegroundExecutor, SharedString, SourceMetadata, platform::{ScreenCaptureFrame, ScreenCaptureSource, ScreenCaptureStream}, size, }; @@ -7,8 +7,9 @@ use anyhow::{Result, anyhow}; use block::ConcreteBlock; use cocoa::{ base::{YES, id, nil}, - foundation::NSArray, + foundation::{NSArray, NSString}, }; +use collections::HashMap; use core_foundation::base::TCFType; use core_graphics::display::{ CGDirectDisplayID, CGDisplayCopyDisplayMode, CGDisplayModeGetPixelHeight, @@ -32,11 +33,13 @@ use super::NSStringExt; #[derive(Clone)] pub struct MacScreenCaptureSource { sc_display: id, + meta: Option, } pub struct MacScreenCaptureStream { sc_stream: id, sc_stream_output: id, + meta: SourceMetadata, } static mut DELEGATE_CLASS: *const Class = ptr::null(); @@ -47,19 +50,31 @@ const FRAME_CALLBACK_IVAR: &str = "frame_callback"; const SCStreamOutputTypeScreen: NSInteger = 0; impl ScreenCaptureSource for MacScreenCaptureSource { - fn resolution(&self) -> Result> { - unsafe { + fn metadata(&self) -> Result { + let (display_id, size) = unsafe { let display_id: CGDirectDisplayID = msg_send![self.sc_display, displayID]; let display_mode_ref = CGDisplayCopyDisplayMode(display_id); let width = CGDisplayModeGetPixelWidth(display_mode_ref); let height = CGDisplayModeGetPixelHeight(display_mode_ref); CGDisplayModeRelease(display_mode_ref); - Ok(size( - DevicePixels(width as i32), - DevicePixels(height as i32), - )) - } + ( + display_id, + size(DevicePixels(width as i32), DevicePixels(height as i32)), + ) + }; + let (label, is_main) = self + .meta + .clone() + .map(|meta| (meta.label, meta.is_main)) + .unzip(); + + Ok(SourceMetadata { + id: display_id as u64, + label, + is_main, + resolution: size, + }) } fn stream( @@ -89,9 +104,9 @@ impl ScreenCaptureSource for MacScreenCaptureSource { Box::into_raw(Box::new(frame_callback)) as *mut c_void, ); - let resolution = self.resolution().unwrap(); - let _: id = msg_send![configuration, setWidth: resolution.width.0 as i64]; - let _: id = msg_send![configuration, setHeight: resolution.height.0 as i64]; + let meta = self.metadata().unwrap(); + let _: id = msg_send![configuration, setWidth: meta.resolution.width.0 as i64]; + let _: id = msg_send![configuration, setHeight: meta.resolution.height.0 as i64]; let stream: id = msg_send![stream, initWithFilter:filter configuration:configuration delegate:delegate]; let (mut tx, rx) = oneshot::channel(); @@ -110,6 +125,7 @@ impl ScreenCaptureSource for MacScreenCaptureSource { move |error: id| { let result = if error == nil { let stream = MacScreenCaptureStream { + meta: meta.clone(), sc_stream: stream, sc_stream_output: output, }; @@ -138,7 +154,11 @@ impl Drop for MacScreenCaptureSource { } } -impl ScreenCaptureStream for MacScreenCaptureStream {} +impl ScreenCaptureStream for MacScreenCaptureStream { + fn metadata(&self) -> Result { + Ok(self.meta.clone()) + } +} impl Drop for MacScreenCaptureStream { fn drop(&mut self) { @@ -164,24 +184,74 @@ impl Drop for MacScreenCaptureStream { } } -pub(crate) fn get_sources() -> oneshot::Receiver>>> { +#[derive(Clone)] +struct ScreenMeta { + label: SharedString, + // Is this the screen with menu bar? + is_main: bool, +} + +unsafe fn screen_id_to_human_label() -> HashMap { + let screens: id = msg_send![class!(NSScreen), screens]; + let count: usize = msg_send![screens, count]; + let mut map = HashMap::default(); + let screen_number_key = unsafe { NSString::alloc(nil).init_str("NSScreenNumber") }; + for i in 0..count { + let screen: id = msg_send![screens, objectAtIndex: i]; + let device_desc: id = msg_send![screen, deviceDescription]; + if device_desc == nil { + continue; + } + + let nsnumber: id = msg_send![device_desc, objectForKey: screen_number_key]; + if nsnumber == nil { + continue; + } + + let screen_id: u32 = msg_send![nsnumber, unsignedIntValue]; + + let name: id = msg_send![screen, localizedName]; + if name != nil { + let cstr: *const std::os::raw::c_char = msg_send![name, UTF8String]; + let rust_str = unsafe { + std::ffi::CStr::from_ptr(cstr) + .to_string_lossy() + .into_owned() + }; + map.insert( + screen_id, + ScreenMeta { + label: rust_str.into(), + is_main: i == 0, + }, + ); + } + } + map +} + +pub(crate) fn get_sources() -> oneshot::Receiver>>> { unsafe { let (mut tx, rx) = oneshot::channel(); let tx = Rc::new(RefCell::new(Some(tx))); - + let screen_id_to_label = screen_id_to_human_label(); let block = ConcreteBlock::new(move |shareable_content: id, error: id| { let Some(mut tx) = tx.borrow_mut().take() else { return; }; + let result = if error == nil { let displays: id = msg_send![shareable_content, displays]; let mut result = Vec::new(); for i in 0..displays.count() { let display = displays.objectAtIndex(i); + let id: CGDirectDisplayID = msg_send![display, displayID]; + let meta = screen_id_to_label.get(&id).cloned(); let source = MacScreenCaptureSource { sc_display: msg_send![display, retain], + meta, }; - result.push(Box::new(source) as Box); + result.push(Rc::new(source) as Rc); } Ok(result) } else { diff --git a/crates/gpui/src/platform/scap_screen_capture.rs b/crates/gpui/src/platform/scap_screen_capture.rs index c5e2267a37..32041b655f 100644 --- a/crates/gpui/src/platform/scap_screen_capture.rs +++ b/crates/gpui/src/platform/scap_screen_capture.rs @@ -1,10 +1,12 @@ //! Screen capture for Linux and Windows use crate::{ DevicePixels, ForegroundExecutor, ScreenCaptureFrame, ScreenCaptureSource, ScreenCaptureStream, - Size, size, + Size, SourceMetadata, size, }; use anyhow::{Context as _, Result, anyhow}; use futures::channel::oneshot; +use scap::Target; +use std::rc::Rc; use std::sync::Arc; use std::sync::atomic::{self, AtomicBool}; @@ -15,7 +17,7 @@ use std::sync::atomic::{self, AtomicBool}; #[allow(dead_code)] pub(crate) fn scap_screen_sources( foreground_executor: &ForegroundExecutor, -) -> oneshot::Receiver>>> { +) -> oneshot::Receiver>>> { let (sources_tx, sources_rx) = oneshot::channel(); get_screen_targets(sources_tx); to_dyn_screen_capture_sources(sources_rx, foreground_executor) @@ -29,14 +31,14 @@ pub(crate) fn scap_screen_sources( #[allow(dead_code)] pub(crate) fn start_scap_default_target_source( foreground_executor: &ForegroundExecutor, -) -> oneshot::Receiver>>> { +) -> oneshot::Receiver>>> { let (sources_tx, sources_rx) = oneshot::channel(); start_default_target_screen_capture(sources_tx); to_dyn_screen_capture_sources(sources_rx, foreground_executor) } struct ScapCaptureSource { - target: scap::Target, + target: scap::Display, size: Size, } @@ -52,7 +54,7 @@ fn get_screen_targets(sources_tx: oneshot::Sender> } }; let sources = targets - .iter() + .into_iter() .filter_map(|target| match target { scap::Target::Display(display) => { let size = Size { @@ -60,7 +62,7 @@ fn get_screen_targets(sources_tx: oneshot::Sender> height: DevicePixels(display.height as i32), }; Some(ScapCaptureSource { - target: target.clone(), + target: display, size, }) } @@ -72,8 +74,13 @@ fn get_screen_targets(sources_tx: oneshot::Sender> } impl ScreenCaptureSource for ScapCaptureSource { - fn resolution(&self) -> Result> { - Ok(self.size) + fn metadata(&self) -> Result { + Ok(SourceMetadata { + resolution: self.size, + label: Some(self.target.title.clone().into()), + is_main: None, + id: self.target.id as u64, + }) } fn stream( @@ -85,13 +92,15 @@ impl ScreenCaptureSource for ScapCaptureSource { let target = self.target.clone(); // Due to use of blocking APIs, a dedicated thread is used. - std::thread::spawn(move || match new_scap_capturer(Some(target)) { - Ok(mut capturer) => { - capturer.start_capture(); - run_capture(capturer, frame_callback, stream_tx); - } - Err(e) => { - stream_tx.send(Err(e)).ok(); + std::thread::spawn(move || { + match new_scap_capturer(Some(scap::Target::Display(target.clone()))) { + Ok(mut capturer) => { + capturer.start_capture(); + run_capture(capturer, target.clone(), frame_callback, stream_tx); + } + Err(e) => { + stream_tx.send(Err(e)).ok(); + } } }); @@ -107,6 +116,7 @@ struct ScapDefaultTargetCaptureSource { // Callback for frames. Box, )>, + target: scap::Display, size: Size, } @@ -123,33 +133,48 @@ fn start_default_target_screen_capture( .get_next_frame() .context("Failed to get first frame of screenshare to get the size.")?; let size = frame_size(&first_frame); - Ok((capturer, size)) + let target = capturer + .target() + .context("Unable to determine the target display.")?; + let target = target.clone(); + Ok((capturer, size, target)) }); match start_result { - Err(e) => { - sources_tx.send(Err(e)).ok(); - } - Ok((capturer, size)) => { + Ok((capturer, size, Target::Display(display))) => { let (stream_call_tx, stream_rx) = std::sync::mpsc::sync_channel(1); sources_tx .send(Ok(vec![ScapDefaultTargetCaptureSource { stream_call_tx, size, + target: display.clone(), }])) .ok(); let Ok((stream_tx, frame_callback)) = stream_rx.recv() else { return; }; - run_capture(capturer, frame_callback, stream_tx); + run_capture(capturer, display, frame_callback, stream_tx); + } + Err(e) => { + sources_tx.send(Err(e)).ok(); + } + _ => { + sources_tx + .send(Err(anyhow!("The screen capture source is not a display"))) + .ok(); } } }); } impl ScreenCaptureSource for ScapDefaultTargetCaptureSource { - fn resolution(&self) -> Result> { - Ok(self.size) + fn metadata(&self) -> Result { + Ok(SourceMetadata { + resolution: self.size, + label: None, + is_main: None, + id: self.target.id as u64, + }) } fn stream( @@ -189,12 +214,19 @@ fn new_scap_capturer(target: Option) -> Result, stream_tx: oneshot::Sender>, ) { let cancel_stream = Arc::new(AtomicBool::new(false)); + let size = Size { + width: DevicePixels(display.width as i32), + height: DevicePixels(display.height as i32), + }; let stream_send_result = stream_tx.send(Ok(ScapStream { cancel_stream: cancel_stream.clone(), + display, + size, })); if let Err(_) = stream_send_result { return; @@ -213,9 +245,20 @@ fn run_capture( struct ScapStream { cancel_stream: Arc, + display: scap::Display, + size: Size, } -impl ScreenCaptureStream for ScapStream {} +impl ScreenCaptureStream for ScapStream { + fn metadata(&self) -> Result { + Ok(SourceMetadata { + resolution: self.size, + label: Some(self.display.title.clone().into()), + is_main: None, + id: self.display.id as u64, + }) + } +} impl Drop for ScapStream { fn drop(&mut self) { @@ -237,12 +280,12 @@ fn frame_size(frame: &scap::frame::Frame) -> Size { } /// This is used by `get_screen_targets` and `start_default_target_screen_capture` to turn their -/// results into `Box`. They need to `Send` their capture source, and so -/// the capture source structs are used as `Box` is not `Send`. +/// results into `Rc`. They need to `Send` their capture source, and so +/// the capture source structs are used as `Rc` is not `Send`. fn to_dyn_screen_capture_sources( sources_rx: oneshot::Receiver>>, foreground_executor: &ForegroundExecutor, -) -> oneshot::Receiver>>> { +) -> oneshot::Receiver>>> { let (dyn_sources_tx, dyn_sources_rx) = oneshot::channel(); foreground_executor .spawn(async move { @@ -250,7 +293,7 @@ fn to_dyn_screen_capture_sources( Ok(Ok(results)) => dyn_sources_tx .send(Ok(results .into_iter() - .map(|source| Box::new(source) as Box) + .map(|source| Rc::new(source) as Rc) .collect::>())) .ok(), Ok(Err(err)) => dyn_sources_tx.send(Err(err)).ok(), diff --git a/crates/gpui/src/platform/test.rs b/crates/gpui/src/platform/test.rs index e4173b7c6b..9227df5b63 100644 --- a/crates/gpui/src/platform/test.rs +++ b/crates/gpui/src/platform/test.rs @@ -8,4 +8,4 @@ pub(crate) use display::*; pub(crate) use platform::*; pub(crate) use window::*; -pub use platform::TestScreenCaptureSource; +pub use platform::{TestScreenCaptureSource, TestScreenCaptureStream}; diff --git a/crates/gpui/src/platform/test/platform.rs b/crates/gpui/src/platform/test/platform.rs index bef05399e5..a26b65576c 100644 --- a/crates/gpui/src/platform/test/platform.rs +++ b/crates/gpui/src/platform/test/platform.rs @@ -2,7 +2,7 @@ use crate::{ AnyWindowHandle, BackgroundExecutor, ClipboardItem, CursorStyle, DevicePixels, ForegroundExecutor, Keymap, NoopTextSystem, Platform, PlatformDisplay, PlatformKeyboardLayout, PlatformTextSystem, PromptButton, ScreenCaptureFrame, ScreenCaptureSource, ScreenCaptureStream, - Size, Task, TestDisplay, TestWindow, WindowAppearance, WindowParams, size, + SourceMetadata, Task, TestDisplay, TestWindow, WindowAppearance, WindowParams, size, }; use anyhow::Result; use collections::VecDeque; @@ -44,11 +44,17 @@ pub(crate) struct TestPlatform { /// A fake screen capture source, used for testing. pub struct TestScreenCaptureSource {} +/// A fake screen capture stream, used for testing. pub struct TestScreenCaptureStream {} impl ScreenCaptureSource for TestScreenCaptureSource { - fn resolution(&self) -> Result> { - Ok(size(DevicePixels(1), DevicePixels(1))) + fn metadata(&self) -> Result { + Ok(SourceMetadata { + id: 0, + is_main: None, + label: None, + resolution: size(DevicePixels(1), DevicePixels(1)), + }) } fn stream( @@ -64,7 +70,11 @@ impl ScreenCaptureSource for TestScreenCaptureSource { } } -impl ScreenCaptureStream for TestScreenCaptureStream {} +impl ScreenCaptureStream for TestScreenCaptureStream { + fn metadata(&self) -> Result { + TestScreenCaptureSource {}.metadata() + } +} struct TestPrompt { msg: String, @@ -271,13 +281,13 @@ impl Platform for TestPlatform { #[cfg(feature = "screen-capture")] fn screen_capture_sources( &self, - ) -> oneshot::Receiver>>> { + ) -> oneshot::Receiver>>> { let (mut tx, rx) = oneshot::channel(); tx.send(Ok(self .screen_capture_sources .borrow() .iter() - .map(|source| Box::new(source.clone()) as Box) + .map(|source| Rc::new(source.clone()) as Rc) .collect())) .ok(); rx diff --git a/crates/gpui/src/platform/windows/platform.rs b/crates/gpui/src/platform/windows/platform.rs index f69a802da0..401ecdeffe 100644 --- a/crates/gpui/src/platform/windows/platform.rs +++ b/crates/gpui/src/platform/windows/platform.rs @@ -440,7 +440,7 @@ impl Platform for WindowsPlatform { #[cfg(feature = "screen-capture")] fn screen_capture_sources( &self, - ) -> oneshot::Receiver>>> { + ) -> oneshot::Receiver>>> { crate::platform::scap_screen_capture::scap_screen_sources(&self.foreground_executor) } diff --git a/crates/livekit_client/src/livekit_client/playback.rs b/crates/livekit_client/src/livekit_client/playback.rs index 7e36314c12..c62b8853b4 100644 --- a/crates/livekit_client/src/livekit_client/playback.rs +++ b/crates/livekit_client/src/livekit_client/playback.rs @@ -326,11 +326,11 @@ pub(crate) async fn capture_local_video_track( capture_source: &dyn ScreenCaptureSource, cx: &mut gpui::AsyncApp, ) -> Result<(crate::LocalVideoTrack, Box)> { - let resolution = capture_source.resolution()?; + let metadata = capture_source.metadata()?; let track_source = gpui_tokio::Tokio::spawn(cx, async move { NativeVideoSource::new(VideoResolution { - width: resolution.width.0 as u32, - height: resolution.height.0 as u32, + width: metadata.resolution.width.0 as u32, + height: metadata.resolution.height.0 as u32, }) })? .await?; diff --git a/crates/livekit_client/src/mock_client/participant.rs b/crates/livekit_client/src/mock_client/participant.rs index 1f4168b8e0..991d10bd50 100644 --- a/crates/livekit_client/src/mock_client/participant.rs +++ b/crates/livekit_client/src/mock_client/participant.rs @@ -5,7 +5,7 @@ use crate::{ }; use anyhow::Result; use collections::HashMap; -use gpui::{AsyncApp, ScreenCaptureSource, ScreenCaptureStream}; +use gpui::{AsyncApp, ScreenCaptureSource, ScreenCaptureStream, TestScreenCaptureStream}; #[derive(Clone, Debug)] pub struct LocalParticipant { @@ -119,7 +119,3 @@ impl RemoteParticipant { self.identity.clone() } } - -struct TestScreenCaptureStream; - -impl gpui::ScreenCaptureStream for TestScreenCaptureStream {} diff --git a/crates/title_bar/Cargo.toml b/crates/title_bar/Cargo.toml index 3c39e6b946..8e95c6f79f 100644 --- a/crates/title_bar/Cargo.toml +++ b/crates/title_bar/Cargo.toml @@ -27,6 +27,7 @@ test-support = [ ] [dependencies] +anyhow.workspace = true auto_update.workspace = true call.workspace = true chrono.workspace = true diff --git a/crates/title_bar/src/collab.rs b/crates/title_bar/src/collab.rs index b2a37a4f1c..1eebc0de0c 100644 --- a/crates/title_bar/src/collab.rs +++ b/crates/title_bar/src/collab.rs @@ -1,12 +1,20 @@ +use std::rc::Rc; use std::sync::Arc; use call::{ActiveCall, ParticipantLocation, Room}; use client::{User, proto::PeerId}; -use gpui::{AnyElement, Hsla, IntoElement, MouseButton, Path, Styled, canvas, point}; +use gpui::{ + AnyElement, Hsla, IntoElement, MouseButton, Path, ScreenCaptureSource, Styled, WeakEntity, + canvas, point, +}; use gpui::{App, Task, Window, actions}; use rpc::proto::{self}; use theme::ActiveTheme; -use ui::{Avatar, AvatarAudioStatusIndicator, Facepile, TintColor, Tooltip, prelude::*}; +use ui::{ + Avatar, AvatarAudioStatusIndicator, ContextMenu, ContextMenuItem, Facepile, PopoverMenu, + SplitButton, TintColor, Tooltip, prelude::*, +}; +use util::maybe; use workspace::notifications::DetachAndPromptErr; use crate::TitleBar; @@ -23,24 +31,49 @@ actions!( ] ); -fn toggle_screen_sharing(_: &ToggleScreenSharing, window: &mut Window, cx: &mut App) { +fn toggle_screen_sharing( + screen: Option>, + window: &mut Window, + cx: &mut App, +) { let call = ActiveCall::global(cx).read(cx); if let Some(room) = call.room().cloned() { let toggle_screen_sharing = room.update(cx, |room, cx| { - if room.is_screen_sharing() { + let clicked_on_currently_shared_screen = + room.shared_screen_id().is_some_and(|screen_id| { + Some(screen_id) + == screen + .as_deref() + .and_then(|s| s.metadata().ok().map(|meta| meta.id)) + }); + let should_unshare_current_screen = room.is_sharing_screen(); + let unshared_current_screen = should_unshare_current_screen.then(|| { telemetry::event!( "Screen Share Disabled", room_id = room.id(), channel_id = room.channel_id(), ); - Task::ready(room.unshare_screen(cx)) + room.unshare_screen(clicked_on_currently_shared_screen || screen.is_none(), cx) + }); + if let Some(screen) = screen { + if !should_unshare_current_screen { + telemetry::event!( + "Screen Share Enabled", + room_id = room.id(), + channel_id = room.channel_id(), + ); + } + cx.spawn(async move |room, cx| { + unshared_current_screen.transpose()?; + if !clicked_on_currently_shared_screen { + room.update(cx, |room, cx| room.share_screen(screen, cx))? + .await + } else { + Ok(()) + } + }) } else { - telemetry::event!( - "Screen Share Enabled", - room_id = room.id(), - channel_id = room.channel_id(), - ); - room.share_screen(cx) + Task::ready(Ok(())) } }); toggle_screen_sharing.detach_and_prompt_err("Sharing Screen Failed", window, cx, |e, _, _| Some(format!("{:?}\n\nPlease check that you have given Zed permissions to record your screen in Settings.", e))); @@ -303,7 +336,7 @@ impl TitleBar { let is_muted = room.is_muted(); let muted_by_user = room.muted_by_user(); let is_deafened = room.is_deafened().unwrap_or(false); - let is_screen_sharing = room.is_screen_sharing(); + let is_screen_sharing = room.is_sharing_screen(); let can_use_microphone = room.can_use_microphone(); let can_share_projects = room.can_share_projects(); let screen_sharing_supported = cx.is_screen_capture_supported(); @@ -428,21 +461,43 @@ impl TitleBar { ); if can_use_microphone && screen_sharing_supported { + let trigger = IconButton::new("screen-share", ui::IconName::Screen) + .style(ButtonStyle::Subtle) + .icon_size(IconSize::Small) + .toggle_state(is_screen_sharing) + .selected_style(ButtonStyle::Tinted(TintColor::Accent)) + .tooltip(Tooltip::text(if is_screen_sharing { + "Stop Sharing Screen" + } else { + "Share Screen" + })) + .on_click(move |_, window, cx| { + let should_share = ActiveCall::global(cx) + .read(cx) + .room() + .is_some_and(|room| !room.read(cx).is_sharing_screen()); + + window + .spawn(cx, async move |cx| { + let screen = if should_share { + cx.update(|_, cx| pick_default_screen(cx))?.await + } else { + None + }; + + cx.update(|window, cx| toggle_screen_sharing(screen, window, cx))?; + + Result::<_, anyhow::Error>::Ok(()) + }) + .detach(); + }); + children.push( - IconButton::new("screen-share", ui::IconName::Screen) - .style(ButtonStyle::Subtle) - .icon_size(IconSize::Small) - .toggle_state(is_screen_sharing) - .selected_style(ButtonStyle::Tinted(TintColor::Accent)) - .tooltip(Tooltip::text(if is_screen_sharing { - "Stop Sharing Screen" - } else { - "Share Screen" - })) - .on_click(move |_, window, cx| { - toggle_screen_sharing(&Default::default(), window, cx) - }) - .into_any_element(), + SplitButton::new( + trigger.render(window, cx), + self.render_screen_list().into_any_element(), + ) + .into_any_element(), ); } @@ -450,4 +505,89 @@ impl TitleBar { children } + + fn render_screen_list(&self) -> impl IntoElement { + PopoverMenu::new("screen-share-screen-list") + .with_handle(self.screen_share_popover_handle.clone()) + .trigger( + ui::ButtonLike::new_rounded_right("screen-share-screen-list-trigger") + .layer(ui::ElevationIndex::ModalSurface) + .size(ui::ButtonSize::None) + .child( + div() + .px_1() + .child(Icon::new(IconName::ChevronDownSmall).size(IconSize::XSmall)), + ) + .toggle_state(self.screen_share_popover_handle.is_deployed()), + ) + .menu(|window, cx| { + let screens = cx.screen_capture_sources(); + Some(ContextMenu::build(window, cx, |context_menu, _, cx| { + cx.spawn(async move |this: WeakEntity, cx| { + let screens = screens.await??; + this.update(cx, |this, cx| { + let active_screenshare_id = ActiveCall::global(cx) + .read(cx) + .room() + .and_then(|room| room.read(cx).shared_screen_id()); + for screen in screens { + let Ok(meta) = screen.metadata() else { + continue; + }; + + let label = meta + .label + .clone() + .unwrap_or_else(|| SharedString::from("Unknown screen")); + let resolution = SharedString::from(format!( + "{} × {}", + meta.resolution.width.0, meta.resolution.height.0 + )); + this.push_item(ContextMenuItem::CustomEntry { + entry_render: Box::new(move |_, _| { + h_flex() + .gap_2() + .child(Icon::new(IconName::Screen).when( + active_screenshare_id == Some(meta.id), + |this| this.color(Color::Accent), + )) + .child(Label::new(label.clone())) + .child( + Label::new(resolution.clone()) + .color(Color::Muted) + .size(LabelSize::Small), + ) + .into_any() + }), + selectable: true, + documentation_aside: None, + handler: Rc::new(move |_, window, cx| { + toggle_screen_sharing(Some(screen.clone()), window, cx); + }), + }); + } + }) + }) + .detach_and_log_err(cx); + context_menu + })) + }) + } +} + +/// Picks the screen to share when clicking on the main screen sharing button. +fn pick_default_screen(cx: &App) -> Task>> { + let source = cx.screen_capture_sources(); + cx.spawn(async move |_| { + let available_sources = maybe!(async move { source.await? }).await.ok()?; + available_sources + .iter() + .find(|it| { + it.as_ref() + .metadata() + .is_ok_and(|meta| meta.is_main.unwrap_or_default()) + }) + .or_else(|| available_sources.iter().next()) + .cloned() + }) } diff --git a/crates/title_bar/src/title_bar.rs b/crates/title_bar/src/title_bar.rs index c4fdb16f4f..17c4c85b6d 100644 --- a/crates/title_bar/src/title_bar.rs +++ b/crates/title_bar/src/title_bar.rs @@ -36,7 +36,7 @@ use theme::ActiveTheme; use title_bar_settings::TitleBarSettings; use ui::{ Avatar, Button, ButtonLike, ButtonStyle, Chip, ContextMenu, Icon, IconName, IconSize, - IconWithIndicator, Indicator, PopoverMenu, Tooltip, h_flex, prelude::*, + IconWithIndicator, Indicator, PopoverMenu, PopoverMenuHandle, Tooltip, h_flex, prelude::*, }; use util::ResultExt; use workspace::{Workspace, notifications::NotifyResultExt}; @@ -131,6 +131,7 @@ pub struct TitleBar { application_menu: Option>, _subscriptions: Vec, banner: Entity, + screen_share_popover_handle: PopoverMenuHandle, } impl Render for TitleBar { @@ -295,6 +296,7 @@ impl TitleBar { client, _subscriptions: subscriptions, banner, + screen_share_popover_handle: Default::default(), } } diff --git a/crates/ui/src/components/button/icon_button.rs b/crates/ui/src/components/button/icon_button.rs index 050db6addd..e5d13e09cd 100644 --- a/crates/ui/src/components/button/icon_button.rs +++ b/crates/ui/src/components/button/icon_button.rs @@ -178,7 +178,8 @@ impl VisibleOnHover for IconButton { } impl RenderOnce for IconButton { - fn render(self, window: &mut Window, cx: &mut App) -> impl IntoElement { + #[allow(refining_impl_trait)] + fn render(self, window: &mut Window, cx: &mut App) -> ButtonLike { let is_disabled = self.base.disabled; let is_selected = self.base.selected; let selected_style = self.base.selected_style; diff --git a/crates/ui/src/components/context_menu.rs b/crates/ui/src/components/context_menu.rs index 467dd226fb..77468fd295 100644 --- a/crates/ui/src/components/context_menu.rs +++ b/crates/ui/src/components/context_menu.rs @@ -139,6 +139,8 @@ impl ContextMenuEntry { } } +impl FluentBuilder for ContextMenuEntry {} + impl From for ContextMenuItem { fn from(entry: ContextMenuEntry) -> Self { ContextMenuItem::Entry(entry) @@ -353,6 +355,10 @@ impl ContextMenu { self } + pub fn push_item(&mut self, item: impl Into) { + self.items.push(item.into()); + } + pub fn entry( mut self, label: impl Into, From 56fd950d940f13bcef6b93f9c4e2bb472acb707b Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Mon, 21 Jul 2025 09:26:31 -0300 Subject: [PATCH 0086/1052] thread view: Add ability to expand message editor and fix scroll (#34766) Release Notes: - N/A --- crates/agent_ui/src/acp/thread_view.rs | 173 ++++++++++++++++++------- crates/agent_ui/src/agent_panel.rs | 3 + crates/agent_ui/src/message_editor.rs | 10 +- 3 files changed, 135 insertions(+), 51 deletions(-) diff --git a/crates/agent_ui/src/acp/thread_view.rs b/crates/agent_ui/src/acp/thread_view.rs index 765f4fe6c0..d2903ab6eb 100644 --- a/crates/agent_ui/src/acp/thread_view.rs +++ b/crates/agent_ui/src/acp/thread_view.rs @@ -45,7 +45,8 @@ use ::acp_thread::{ use crate::acp::completion_provider::{ContextPickerCompletionProvider, MentionSet}; use crate::acp::message_history::MessageHistory; use crate::agent_diff::AgentDiff; -use crate::{AgentDiffPane, Follow, KeepAll, OpenAgentDiff, RejectAll}; +use crate::message_editor::{MAX_EDITOR_LINES, MIN_EDITOR_LINES}; +use crate::{AgentDiffPane, ExpandMessageEditor, Follow, KeepAll, OpenAgentDiff, RejectAll}; const RESPONSE_PADDING_X: Pixels = px(19.); @@ -65,6 +66,7 @@ pub struct AcpThreadView { expanded_tool_calls: HashSet, expanded_thinking_blocks: HashSet<(usize, usize)>, edits_expanded: bool, + editor_is_expanded: bool, message_history: Rc>>, } @@ -94,6 +96,8 @@ impl AcpThreadView { workspace: WeakEntity, project: Entity, message_history: Rc>>, + min_lines: usize, + max_lines: Option, window: &mut Window, cx: &mut Context, ) -> Self { @@ -113,8 +117,8 @@ impl AcpThreadView { let mut editor = Editor::new( editor::EditorMode::AutoHeight { - min_lines: 4, - max_lines: None, + min_lines, + max_lines: max_lines, }, buffer, None, @@ -182,6 +186,7 @@ impl AcpThreadView { expanded_tool_calls: HashSet::default(), expanded_thinking_blocks: HashSet::default(), edits_expanded: false, + editor_is_expanded: false, message_history, } } @@ -321,6 +326,35 @@ impl AcpThreadView { } } + pub fn expand_message_editor( + &mut self, + _: &ExpandMessageEditor, + _window: &mut Window, + cx: &mut Context, + ) { + self.set_editor_is_expanded(!self.editor_is_expanded, cx); + cx.notify(); + } + + fn set_editor_is_expanded(&mut self, is_expanded: bool, cx: &mut Context) { + self.editor_is_expanded = is_expanded; + self.message_editor.update(cx, |editor, _| { + if self.editor_is_expanded { + editor.set_mode(EditorMode::Full { + scale_ui_elements_with_buffer_font_size: false, + show_active_line_background: false, + sized_by_content: false, + }) + } else { + editor.set_mode(EditorMode::AutoHeight { + min_lines: MIN_EDITOR_LINES, + max_lines: Some(MAX_EDITOR_LINES), + }) + } + }); + cx.notify(); + } + fn chat(&mut self, _: &Chat, window: &mut Window, cx: &mut Context) { self.last_error.take(); @@ -381,6 +415,7 @@ impl AcpThreadView { let mention_set = self.mention_set.clone(); + self.set_editor_is_expanded(false, cx); self.message_editor.update(cx, |editor, cx| { editor.clear(window, cx); editor.remove_creases(mention_set.lock().drain(), cx) @@ -1793,34 +1828,96 @@ impl AcpThreadView { )) } - fn render_message_editor(&mut self, cx: &mut Context) -> AnyElement { - let settings = ThemeSettings::get_global(cx); - let font_size = TextSize::Small - .rems(cx) - .to_pixels(settings.agent_font_size(cx)); - let line_height = settings.buffer_line_height.value() * font_size; - - let text_style = TextStyle { - color: cx.theme().colors().text, - font_family: settings.buffer_font.family.clone(), - font_fallbacks: settings.buffer_font.fallbacks.clone(), - font_features: settings.buffer_font.features.clone(), - font_size: font_size.into(), - line_height: line_height.into(), - ..Default::default() + fn render_message_editor(&mut self, window: &mut Window, cx: &mut Context) -> AnyElement { + let focus_handle = self.message_editor.focus_handle(cx); + let editor_bg_color = cx.theme().colors().editor_background; + let (expand_icon, expand_tooltip) = if self.editor_is_expanded { + (IconName::Minimize, "Minimize Message Editor") + } else { + (IconName::Maximize, "Expand Message Editor") }; - EditorElement::new( - &self.message_editor, - EditorStyle { - background: cx.theme().colors().editor_background, - local_player: cx.theme().players().local(), - text: text_style, - syntax: cx.theme().syntax().clone(), - ..Default::default() - }, - ) - .into_any() + v_flex() + .on_action(cx.listener(Self::expand_message_editor)) + .p_2() + .gap_2() + .border_t_1() + .border_color(cx.theme().colors().border) + .bg(editor_bg_color) + .when(self.editor_is_expanded, |this| { + this.h(vh(0.8, window)).size_full().justify_between() + }) + .child( + v_flex() + .relative() + .size_full() + .pt_1() + .pr_2p5() + .child(div().flex_1().child({ + let settings = ThemeSettings::get_global(cx); + let font_size = TextSize::Small + .rems(cx) + .to_pixels(settings.agent_font_size(cx)); + let line_height = settings.buffer_line_height.value() * font_size; + + let text_style = TextStyle { + color: cx.theme().colors().text, + font_family: settings.buffer_font.family.clone(), + font_fallbacks: settings.buffer_font.fallbacks.clone(), + font_features: settings.buffer_font.features.clone(), + font_size: font_size.into(), + line_height: line_height.into(), + ..Default::default() + }; + + EditorElement::new( + &self.message_editor, + EditorStyle { + background: editor_bg_color, + local_player: cx.theme().players().local(), + text: text_style, + syntax: cx.theme().syntax().clone(), + ..Default::default() + }, + ) + })) + .child( + h_flex() + .absolute() + .top_0() + .right_0() + .opacity(0.5) + .hover(|this| this.opacity(1.0)) + .child( + IconButton::new("toggle-height", expand_icon) + .icon_size(IconSize::XSmall) + .icon_color(Color::Muted) + .tooltip({ + let focus_handle = focus_handle.clone(); + move |window, cx| { + Tooltip::for_action_in( + expand_tooltip, + &ExpandMessageEditor, + &focus_handle, + window, + cx, + ) + } + }) + .on_click(cx.listener(|_, _, window, cx| { + window.dispatch_action(Box::new(ExpandMessageEditor), cx); + })), + ), + ), + ) + .child( + h_flex() + .flex_none() + .justify_between() + .child(self.render_follow_toggle(cx)) + .child(self.render_send_button(cx)), + ) + .into_any() } fn render_send_button(&self, cx: &mut Context) -> AnyElement { @@ -2132,7 +2229,6 @@ impl Render for AcpThreadView { .px(RESPONSE_PADDING_X) .opacity(0.4) .hover(|style| style.opacity(1.)) - .gap_1() .flex_wrap() .justify_end() .child(open_as_markdown) @@ -2166,22 +2262,7 @@ impl Render for AcpThreadView { ), ) }) - .child( - v_flex() - .p_2() - .pt_3() - .gap_1() - .bg(cx.theme().colors().editor_background) - .border_t_1() - .border_color(cx.theme().colors().border) - .child(self.render_message_editor(cx)) - .child( - h_flex() - .justify_between() - .child(self.render_follow_toggle(cx)) - .child(self.render_send_button(cx)), - ), - ) + .child(self.render_message_editor(window, cx)) } } diff --git a/crates/agent_ui/src/agent_panel.rs b/crates/agent_ui/src/agent_panel.rs index 7f2fbce189..36851e44ba 100644 --- a/crates/agent_ui/src/agent_panel.rs +++ b/crates/agent_ui/src/agent_panel.rs @@ -11,6 +11,7 @@ use serde::{Deserialize, Serialize}; use crate::NewExternalAgentThread; use crate::agent_diff::AgentDiffThread; +use crate::message_editor::{MAX_EDITOR_LINES, MIN_EDITOR_LINES}; use crate::{ AddContextServer, AgentDiffPane, ContinueThread, ContinueWithBurnMode, DeleteRecentlyOpenThread, ExpandMessageEditor, Follow, InlineAssistant, NewTextThread, @@ -960,6 +961,8 @@ impl AgentPanel { workspace.clone(), project, message_history, + MIN_EDITOR_LINES, + Some(MAX_EDITOR_LINES), window, cx, ) diff --git a/crates/agent_ui/src/message_editor.rs b/crates/agent_ui/src/message_editor.rs index ce9cc87fe3..a2cf4aac48 100644 --- a/crates/agent_ui/src/message_editor.rs +++ b/crates/agent_ui/src/message_editor.rs @@ -65,6 +65,9 @@ use agent::{ thread_store::{TextThreadStore, ThreadStore}, }; +pub const MIN_EDITOR_LINES: usize = 4; +pub const MAX_EDITOR_LINES: usize = 8; + #[derive(RegisterComponent)] pub struct MessageEditor { thread: Entity, @@ -88,9 +91,6 @@ pub struct MessageEditor { _subscriptions: Vec, } -const MIN_EDITOR_LINES: usize = 4; -const MAX_EDITOR_LINES: usize = 8; - pub(crate) fn create_editor( workspace: WeakEntity, context_store: WeakEntity, @@ -711,11 +711,11 @@ impl MessageEditor { cx.listener(|this, _: &RejectAll, window, cx| this.handle_reject_all(window, cx)), ) .capture_action(cx.listener(Self::paste)) - .gap_2() .p_2() - .bg(editor_bg_color) + .gap_2() .border_t_1() .border_color(cx.theme().colors().border) + .bg(editor_bg_color) .child( h_flex() .justify_between() From 35b4a918c91bedac4968dde188929bb59523e769 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Mon, 21 Jul 2025 15:43:51 +0200 Subject: [PATCH 0087/1052] chore: Bump taffy to 0.5.1 (#34817) We've had problems in the past with bumping past 0.5.2 due to perf regressions reported by @huacnlee; 0.5.1 was fine though. Hence, let's bump taffy to 0.5.1 as a safe bet and then try to push past 0.5.2 (after we identify the root cause of regression Related to #19189 Release Notes: - N/A --- Cargo.lock | 8 ++++---- crates/gpui/Cargo.toml | 2 +- crates/gpui/src/taffy.rs | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bc69de7a7c..5ceed10b19 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7396,9 +7396,9 @@ dependencies = [ [[package]] name = "grid" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d196ffc1627db18a531359249b2bf8416178d84b729f3cebeb278f285fb9b58c" +checksum = "be136d9dacc2a13cc70bb6c8f902b414fb2641f8db1314637c6b7933411a8f82" [[package]] name = "group" @@ -15936,9 +15936,9 @@ dependencies = [ [[package]] name = "taffy" -version = "0.4.4" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ec17858c2d465b2f734b798b920818a974faf0babb15d7fef81818a4b2d16f1" +checksum = "9cb893bff0f80ae17d3a57e030622a967b8dbc90e38284d9b4b1442e23873c94" dependencies = [ "arrayvec", "grid", diff --git a/crates/gpui/Cargo.toml b/crates/gpui/Cargo.toml index d3462e9e9c..9da01c5ff3 100644 --- a/crates/gpui/Cargo.toml +++ b/crates/gpui/Cargo.toml @@ -121,7 +121,7 @@ smallvec.workspace = true smol.workspace = true strum.workspace = true sum_tree.workspace = true -taffy = "0.4.3" +taffy = "0.5.1" thiserror.workspace = true util.workspace = true uuid.workspace = true diff --git a/crates/gpui/src/taffy.rs b/crates/gpui/src/taffy.rs index f12c62d504..6228a60490 100644 --- a/crates/gpui/src/taffy.rs +++ b/crates/gpui/src/taffy.rs @@ -182,7 +182,7 @@ impl TaffyLayoutEngine { .compute_layout_with_measure( id.into(), available_space.into(), - |known_dimensions, available_space, _id, node_context| { + |known_dimensions, available_space, _id, node_context, _style| { let Some(node_context) = node_context else { return taffy::geometry::Size::default(); }; From 405244d422e3e2baf3660749e21e4cb5fcc5e82d Mon Sep 17 00:00:00 2001 From: Agus Zubiaga Date: Mon, 21 Jul 2025 11:11:37 -0300 Subject: [PATCH 0088/1052] Display ACP plans (#34816) Release Notes: - N/A --------- Co-authored-by: Danilo Leal --- Cargo.lock | 4 +- Cargo.toml | 2 +- assets/icons/todo_complete.svg | 4 + assets/icons/todo_pending.svg | 10 + assets/icons/todo_progress.svg | 11 ++ crates/acp_thread/src/acp_thread.rs | 109 ++++++++++- crates/agent_servers/src/claude.rs | 19 +- crates/agent_servers/src/claude/tools.rs | 30 +++ crates/agent_ui/src/acp/thread_view.rs | 221 ++++++++++++++++++++--- crates/icons/src/icons.rs | 3 + 10 files changed, 379 insertions(+), 34 deletions(-) create mode 100644 assets/icons/todo_complete.svg create mode 100644 assets/icons/todo_pending.svg create mode 100644 assets/icons/todo_progress.svg diff --git a/Cargo.lock b/Cargo.lock index 5ceed10b19..a323fb70af 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -279,9 +279,9 @@ dependencies = [ [[package]] name = "agentic-coding-protocol" -version = "0.0.9" +version = "0.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e276b798eddd02562a339340a96919d90bbfcf78de118fdddc932524646fac7" +checksum = "a3e6ae951b36fa2f8d9dd6e1af6da2fcaba13d7c866cf6a9e65deda9dc6c5fe4" dependencies = [ "anyhow", "chrono", diff --git a/Cargo.toml b/Cargo.toml index 0169d32eb6..c99ba3953d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -410,7 +410,7 @@ zlog_settings = { path = "crates/zlog_settings" } # External crates # -agentic-coding-protocol = "0.0.9" +agentic-coding-protocol = "0.0.10" aho-corasick = "1.1" alacritty_terminal = { git = "https://github.com/zed-industries/alacritty.git", branch = "add-hush-login-flag" } any_vec = "0.14" diff --git a/assets/icons/todo_complete.svg b/assets/icons/todo_complete.svg new file mode 100644 index 0000000000..9fa2e818bb --- /dev/null +++ b/assets/icons/todo_complete.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/icons/todo_pending.svg b/assets/icons/todo_pending.svg new file mode 100644 index 0000000000..dfb013b52b --- /dev/null +++ b/assets/icons/todo_pending.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/icons/todo_progress.svg b/assets/icons/todo_progress.svg new file mode 100644 index 0000000000..9b2ed7375d --- /dev/null +++ b/assets/icons/todo_progress.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/crates/acp_thread/src/acp_thread.rs b/crates/acp_thread/src/acp_thread.rs index ae22725d5e..9af1eeb187 100644 --- a/crates/acp_thread/src/acp_thread.rs +++ b/crates/acp_thread/src/acp_thread.rs @@ -453,9 +453,69 @@ impl Diff { } } +#[derive(Debug, Default)] +pub struct Plan { + pub entries: Vec, +} + +#[derive(Debug)] +pub struct PlanStats<'a> { + pub in_progress_entry: Option<&'a PlanEntry>, + pub pending: u32, + pub completed: u32, +} + +impl Plan { + pub fn is_empty(&self) -> bool { + self.entries.is_empty() + } + + pub fn stats(&self) -> PlanStats<'_> { + let mut stats = PlanStats { + in_progress_entry: None, + pending: 0, + completed: 0, + }; + + for entry in &self.entries { + match &entry.status { + acp::PlanEntryStatus::Pending => { + stats.pending += 1; + } + acp::PlanEntryStatus::InProgress => { + stats.in_progress_entry = stats.in_progress_entry.or(Some(entry)); + } + acp::PlanEntryStatus::Completed => { + stats.completed += 1; + } + } + } + + stats + } +} + +#[derive(Debug)] +pub struct PlanEntry { + pub content: Entity, + pub priority: acp::PlanEntryPriority, + pub status: acp::PlanEntryStatus, +} + +impl PlanEntry { + pub fn from_acp(entry: acp::PlanEntry, cx: &mut App) -> Self { + Self { + content: cx.new(|cx| Markdown::new_text(entry.content.into(), cx)), + priority: entry.priority, + status: entry.status, + } + } +} + pub struct AcpThread { - entries: Vec, title: SharedString, + entries: Vec, + plan: Plan, project: Entity, action_log: Entity, shared_buffers: HashMap, BufferSnapshot>, @@ -515,6 +575,7 @@ impl AcpThread { action_log, shared_buffers: Default::default(), entries: Default::default(), + plan: Default::default(), title, project, send_task: None, @@ -819,6 +880,29 @@ impl AcpThread { } } + pub fn plan(&self) -> &Plan { + &self.plan + } + + pub fn update_plan(&mut self, request: acp::UpdatePlanParams, cx: &mut Context) { + self.plan = Plan { + entries: request + .entries + .into_iter() + .map(|entry| PlanEntry::from_acp(entry, cx)) + .collect(), + }; + + cx.notify(); + } + + pub fn clear_completed_plan_entries(&mut self, cx: &mut Context) { + self.plan + .entries + .retain(|entry| !matches!(entry.status, acp::PlanEntryStatus::Completed)); + cx.notify(); + } + pub fn set_project_location(&self, location: ToolCallLocation, cx: &mut Context) { self.project.update(cx, |project, cx| { let Some(path) = project.project_path_for_absolute_path(&location.path, cx) else { @@ -1136,6 +1220,17 @@ impl AcpClientDelegate { Self { thread, cx } } + pub async fn clear_completed_plan_entries(&self) -> Result<()> { + let cx = &mut self.cx.clone(); + cx.update(|cx| { + self.thread + .update(cx, |thread, cx| thread.clear_completed_plan_entries(cx)) + })? + .context("Failed to update thread")?; + + Ok(()) + } + pub async fn request_existing_tool_call_confirmation( &self, tool_call_id: ToolCallId, @@ -1233,6 +1328,18 @@ impl acp::Client for AcpClientDelegate { Ok(()) } + async fn update_plan(&self, request: acp::UpdatePlanParams) -> Result<(), acp::Error> { + let cx = &mut self.cx.clone(); + + cx.update(|cx| { + self.thread + .update(cx, |thread, cx| thread.update_plan(request, cx)) + })? + .context("Failed to update thread")?; + + Ok(()) + } + async fn read_text_file( &self, request: acp::ReadTextFileParams, diff --git a/crates/agent_servers/src/claude.rs b/crates/agent_servers/src/claude.rs index 52c6012267..8b3d93a122 100644 --- a/crates/agent_servers/src/claude.rs +++ b/crates/agent_servers/src/claude.rs @@ -153,6 +153,7 @@ impl AgentServer for ClaudeCode { let handler_task = cx.foreground_executor().spawn({ let end_turn_tx = end_turn_tx.clone(); let tool_id_map = tool_id_map.clone(); + let delegate = delegate.clone(); async move { while let Some(message) = incoming_message_rx.next().await { ClaudeAgentConnection::handle_message( @@ -167,6 +168,7 @@ impl AgentServer for ClaudeCode { }); let mut connection = ClaudeAgentConnection { + delegate, outgoing_tx, end_turn_tx, _handler_task: handler_task, @@ -186,6 +188,7 @@ impl AgentConnection for ClaudeAgentConnection { &self, params: AnyAgentRequest, ) -> LocalBoxFuture<'static, Result> { + let delegate = self.delegate.clone(); let end_turn_tx = self.end_turn_tx.clone(); let outgoing_tx = self.outgoing_tx.clone(); async move { @@ -201,6 +204,8 @@ impl AgentConnection for ClaudeAgentConnection { Err(anyhow!("Authentication not supported")) } AnyAgentRequest::SendUserMessageParams(message) => { + delegate.clear_completed_plan_entries().await?; + let (tx, rx) = oneshot::channel(); end_turn_tx.borrow_mut().replace(tx); let mut content = String::new(); @@ -241,6 +246,7 @@ impl AgentConnection for ClaudeAgentConnection { } struct ClaudeAgentConnection { + delegate: AcpClientDelegate, outgoing_tx: UnboundedSender, end_turn_tx: Rc>>>>, _mcp_server: Option, @@ -267,8 +273,17 @@ impl ClaudeAgentConnection { .log_err(); } ContentChunk::ToolUse { id, name, input } => { - if let Some(resp) = delegate - .push_tool_call(ClaudeTool::infer(&name, input).as_acp()) + let claude_tool = ClaudeTool::infer(&name, input); + + if let ClaudeTool::TodoWrite(Some(params)) = claude_tool { + delegate + .update_plan(acp::UpdatePlanParams { + entries: params.todos.into_iter().map(Into::into).collect(), + }) + .await + .log_err(); + } else if let Some(resp) = delegate + .push_tool_call(claude_tool.as_acp()) .await .log_err() { diff --git a/crates/agent_servers/src/claude/tools.rs b/crates/agent_servers/src/claude/tools.rs index a2d6b487b2..9c82139a07 100644 --- a/crates/agent_servers/src/claude/tools.rs +++ b/crates/agent_servers/src/claude/tools.rs @@ -614,6 +614,16 @@ pub enum TodoPriority { Low, } +impl Into for TodoPriority { + fn into(self) -> acp::PlanEntryPriority { + match self { + TodoPriority::High => acp::PlanEntryPriority::High, + TodoPriority::Medium => acp::PlanEntryPriority::Medium, + TodoPriority::Low => acp::PlanEntryPriority::Low, + } + } +} + #[derive(Deserialize, Serialize, JsonSchema, Debug)] #[serde(rename_all = "snake_case")] pub enum TodoStatus { @@ -622,6 +632,16 @@ pub enum TodoStatus { Completed, } +impl Into for TodoStatus { + fn into(self) -> acp::PlanEntryStatus { + match self { + TodoStatus::Pending => acp::PlanEntryStatus::Pending, + TodoStatus::InProgress => acp::PlanEntryStatus::InProgress, + TodoStatus::Completed => acp::PlanEntryStatus::Completed, + } + } +} + #[derive(Deserialize, Serialize, JsonSchema, Debug)] pub struct Todo { /// Unique identifier @@ -634,6 +654,16 @@ pub struct Todo { pub status: TodoStatus, } +impl Into for Todo { + fn into(self) -> acp::PlanEntry { + acp::PlanEntry { + content: self.content, + priority: self.priority.into(), + status: self.status.into(), + } + } +} + #[derive(Deserialize, JsonSchema, Debug)] pub struct TodoWriteToolParams { pub todos: Vec, diff --git a/crates/agent_ui/src/acp/thread_view.rs b/crates/agent_ui/src/acp/thread_view.rs index d2903ab6eb..95f4f81205 100644 --- a/crates/agent_ui/src/acp/thread_view.rs +++ b/crates/agent_ui/src/acp/thread_view.rs @@ -1,3 +1,4 @@ +use acp_thread::Plan; use agent_servers::AgentServer; use std::cell::RefCell; use std::collections::BTreeMap; @@ -66,7 +67,8 @@ pub struct AcpThreadView { expanded_tool_calls: HashSet, expanded_thinking_blocks: HashSet<(usize, usize)>, edits_expanded: bool, - editor_is_expanded: bool, + plan_expanded: bool, + editor_expanded: bool, message_history: Rc>>, } @@ -186,7 +188,8 @@ impl AcpThreadView { expanded_tool_calls: HashSet::default(), expanded_thinking_blocks: HashSet::default(), edits_expanded: false, - editor_is_expanded: false, + plan_expanded: false, + editor_expanded: false, message_history, } } @@ -332,14 +335,14 @@ impl AcpThreadView { _window: &mut Window, cx: &mut Context, ) { - self.set_editor_is_expanded(!self.editor_is_expanded, cx); + self.set_editor_is_expanded(!self.editor_expanded, cx); cx.notify(); } fn set_editor_is_expanded(&mut self, is_expanded: bool, cx: &mut Context) { - self.editor_is_expanded = is_expanded; + self.editor_expanded = is_expanded; self.message_editor.update(cx, |editor, _| { - if self.editor_is_expanded { + if self.editor_expanded { editor.set_mode(EditorMode::Full { scale_ui_elements_with_buffer_font_size: false, show_active_line_background: false, @@ -1477,7 +1480,7 @@ impl AcpThreadView { container.into_any() } - fn render_edits_bar( + fn render_activity_bar( &self, thread_entity: &Entity, window: &mut Window, @@ -1486,8 +1489,9 @@ impl AcpThreadView { let thread = thread_entity.read(cx); let action_log = thread.action_log(); let changed_buffers = action_log.read(cx).changed_buffers(cx); + let plan = thread.plan(); - if changed_buffers.is_empty() { + if changed_buffers.is_empty() && plan.is_empty() { return None; } @@ -1496,7 +1500,6 @@ impl AcpThreadView { let bg_edit_files_disclosure = editor_bg_color.blend(active_color.opacity(0.3)); let pending_edits = thread.has_pending_edit_tool_calls(); - let expanded = self.edits_expanded; v_flex() .mt_1() @@ -1512,27 +1515,165 @@ impl AcpThreadView { blur_radius: px(3.), spread_radius: px(0.), }]) - .child(self.render_edits_bar_summary( - action_log, - &changed_buffers, - expanded, - pending_edits, - window, - cx, - )) - .when(expanded, |parent| { - parent.child(self.render_edits_bar_files( - action_log, - &changed_buffers, - pending_edits, - cx, - )) + .when(!plan.is_empty(), |this| { + this.child(self.render_plan_summary(plan, window, cx)) + .when(self.plan_expanded, |parent| { + parent.child(self.render_plan_entries(plan, window, cx)) + }) + }) + .when(!changed_buffers.is_empty(), |this| { + this.child(Divider::horizontal()) + .child(self.render_edits_summary( + action_log, + &changed_buffers, + self.edits_expanded, + pending_edits, + window, + cx, + )) + .when(self.edits_expanded, |parent| { + parent.child(self.render_edited_files( + action_log, + &changed_buffers, + pending_edits, + cx, + )) + }) }) .into_any() .into() } - fn render_edits_bar_summary( + fn render_plan_summary(&self, plan: &Plan, window: &mut Window, cx: &Context) -> Div { + let stats = plan.stats(); + + let title = if let Some(entry) = stats.in_progress_entry + && !self.plan_expanded + { + h_flex() + .w_full() + .gap_1() + .text_xs() + .text_color(cx.theme().colors().text_muted) + .justify_between() + .child( + h_flex() + .gap_1() + .child( + Label::new("Current:") + .size(LabelSize::Small) + .color(Color::Muted), + ) + .child(MarkdownElement::new( + entry.content.clone(), + plan_label_markdown_style(&entry.status, window, cx), + )), + ) + .when(stats.pending > 0, |this| { + this.child( + Label::new(format!("{} left", stats.pending)) + .size(LabelSize::Small) + .color(Color::Muted) + .mr_1(), + ) + }) + } else { + let status_label = if stats.pending == 0 { + "All Done".to_string() + } else if stats.completed == 0 { + format!("{}", plan.entries.len()) + } else { + format!("{}/{}", stats.completed, plan.entries.len()) + }; + + h_flex() + .w_full() + .gap_1() + .justify_between() + .child( + Label::new("Plan") + .size(LabelSize::Small) + .color(Color::Muted), + ) + .child( + Label::new(status_label) + .size(LabelSize::Small) + .color(Color::Muted) + .mr_1(), + ) + }; + + h_flex() + .p_1() + .justify_between() + .when(self.plan_expanded, |this| { + this.border_b_1().border_color(cx.theme().colors().border) + }) + .child( + h_flex() + .id("plan_summary") + .w_full() + .gap_1() + .child(Disclosure::new("plan_disclosure", self.plan_expanded)) + .child(title) + .on_click(cx.listener(|this, _, _, cx| { + this.plan_expanded = !this.plan_expanded; + cx.notify(); + })), + ) + } + + fn render_plan_entries(&self, plan: &Plan, window: &mut Window, cx: &Context) -> Div { + v_flex().children(plan.entries.iter().enumerate().flat_map(|(index, entry)| { + let element = h_flex() + .py_1() + .px_2() + .gap_2() + .justify_between() + .bg(cx.theme().colors().editor_background) + .when(index < plan.entries.len() - 1, |parent| { + parent.border_color(cx.theme().colors().border).border_b_1() + }) + .child( + h_flex() + .id(("plan_entry", index)) + .gap_1p5() + .max_w_full() + .overflow_x_scroll() + .text_xs() + .text_color(cx.theme().colors().text_muted) + .child(match entry.status { + acp::PlanEntryStatus::Pending => Icon::new(IconName::TodoPending) + .size(IconSize::Small) + .color(Color::Muted) + .into_any_element(), + acp::PlanEntryStatus::InProgress => Icon::new(IconName::TodoProgress) + .size(IconSize::Small) + .color(Color::Accent) + .with_animation( + "running", + Animation::new(Duration::from_secs(2)).repeat(), + |icon, delta| { + icon.transform(Transformation::rotate(percentage(delta))) + }, + ) + .into_any_element(), + acp::PlanEntryStatus::Completed => Icon::new(IconName::TodoComplete) + .size(IconSize::Small) + .color(Color::Success) + .into_any_element(), + }) + .child(MarkdownElement::new( + entry.content.clone(), + plan_label_markdown_style(&entry.status, window, cx), + )), + ); + + Some(element) + })) + } + + fn render_edits_summary( &self, action_log: &Entity, changed_buffers: &BTreeMap, Entity>, @@ -1678,7 +1819,7 @@ impl AcpThreadView { ) } - fn render_edits_bar_files( + fn render_edited_files( &self, action_log: &Entity, changed_buffers: &BTreeMap, Entity>, @@ -1831,7 +1972,7 @@ impl AcpThreadView { fn render_message_editor(&mut self, window: &mut Window, cx: &mut Context) -> AnyElement { let focus_handle = self.message_editor.focus_handle(cx); let editor_bg_color = cx.theme().colors().editor_background; - let (expand_icon, expand_tooltip) = if self.editor_is_expanded { + let (expand_icon, expand_tooltip) = if self.editor_expanded { (IconName::Minimize, "Minimize Message Editor") } else { (IconName::Maximize, "Expand Message Editor") @@ -1844,7 +1985,7 @@ impl AcpThreadView { .border_t_1() .border_color(cx.theme().colors().border) .bg(editor_bg_color) - .when(self.editor_is_expanded, |this| { + .when(self.editor_expanded, |this| { this.h(vh(0.8, window)).size_full().justify_between() }) .child( @@ -2243,7 +2384,7 @@ impl Render for AcpThreadView { .child(LoadingLabel::new("").size(LabelSize::Small)) .into(), }) - .children(self.render_edits_bar(&thread, window, cx)) + .children(self.render_activity_bar(&thread, window, cx)) } else { this.child(self.render_empty_state(cx)) } @@ -2409,3 +2550,27 @@ fn default_markdown_style(buffer_font: bool, window: &Window, cx: &App) -> Markd ..Default::default() } } + +fn plan_label_markdown_style( + status: &acp::PlanEntryStatus, + window: &Window, + cx: &App, +) -> MarkdownStyle { + let default_md_style = default_markdown_style(false, window, cx); + + MarkdownStyle { + base_text_style: TextStyle { + color: cx.theme().colors().text_muted, + strikethrough: if matches!(status, acp::PlanEntryStatus::Completed) { + Some(gpui::StrikethroughStyle { + thickness: px(1.), + color: Some(cx.theme().colors().text_muted.opacity(0.8)), + }) + } else { + None + }, + ..default_md_style.base_text_style + }, + ..default_md_style + } +} diff --git a/crates/icons/src/icons.rs b/crates/icons/src/icons.rs index 6834d56215..631ccc1af3 100644 --- a/crates/icons/src/icons.rs +++ b/crates/icons/src/icons.rs @@ -256,6 +256,9 @@ pub enum IconName { TextSnippet, ThumbsDown, ThumbsUp, + TodoComplete, + TodoPending, + TodoProgress, ToolBulb, ToolCopy, ToolDeleteFile, From cc561961525b5e47e2a6eba52b3382233b6d49a6 Mon Sep 17 00:00:00 2001 From: Agus Zubiaga Date: Mon, 21 Jul 2025 11:26:00 -0300 Subject: [PATCH 0089/1052] Fix loading agent server settings (#34662) Release Notes: - N/A --- crates/agent_servers/src/settings.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/crates/agent_servers/src/settings.rs b/crates/agent_servers/src/settings.rs index 29dcf5eb8c..645674b5f1 100644 --- a/crates/agent_servers/src/settings.rs +++ b/crates/agent_servers/src/settings.rs @@ -29,9 +29,12 @@ impl settings::Settings for AllAgentServersSettings { fn load(sources: SettingsSources, _: &mut App) -> Result { let mut settings = AllAgentServersSettings::default(); - for value in sources.defaults_and_customizations() { - if value.gemini.is_some() { - settings.gemini = value.gemini.clone(); + for AllAgentServersSettings { gemini, claude } in sources.defaults_and_customizations() { + if gemini.is_some() { + settings.gemini = gemini.clone(); + } + if claude.is_some() { + settings.claude = claude.clone(); } } From c251f2a2d4f655b3380b532b74231e214398230f Mon Sep 17 00:00:00 2001 From: Kamal Ahmad Date: Mon, 21 Jul 2025 19:48:01 +0500 Subject: [PATCH 0090/1052] gpui: Throttle interactive resize events on Wayland (#34760) Wayland compositors can potentially generate thousands of resize requests when drag-resizing a window, which Zed is unable to keep up with. This commit changes the behavior to only resize once per vblank cycle, which helps significantly when resizing the window with a high poll-rate mouse (1000Hz is common these days) Here is an example of the behavior pre and post this commit, with some print-debugging added for tracking resize calls. I have a wireless mouse with a 2000Hz polling rate and a 165Hz display: Before: https://github.com/user-attachments/assets/4c657f90-5fd2-4809-97ef-363fd48e81b8 After: https://github.com/user-attachments/assets/4a0f5fbd-c3c4-40a1-9f71-3b4358c827cf Closes #20660 Release Notes: - Improved: Make resizing smoother on Wayland/Linux --- crates/gpui/src/platform/linux/wayland/window.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/crates/gpui/src/platform/linux/wayland/window.rs b/crates/gpui/src/platform/linux/wayland/window.rs index 36e070b0b0..255ae9c372 100644 --- a/crates/gpui/src/platform/linux/wayland/window.rs +++ b/crates/gpui/src/platform/linux/wayland/window.rs @@ -76,6 +76,7 @@ struct InProgressConfigure { size: Option>, fullscreen: bool, maximized: bool, + resizing: bool, tiling: Tiling, } @@ -107,6 +108,7 @@ pub struct WaylandWindowState { active: bool, hovered: bool, in_progress_configure: Option, + resize_throttle: bool, in_progress_window_controls: Option, window_controls: WindowControls, inset: Option, @@ -176,6 +178,7 @@ impl WaylandWindowState { tiling: Tiling::default(), window_bounds: options.bounds, in_progress_configure: None, + resize_throttle: false, client, appearance, handle, @@ -335,6 +338,7 @@ impl WaylandWindowStatePtr { pub fn frame(&self) { let mut state = self.state.borrow_mut(); state.surface.frame(&state.globals.qh, state.surface.id()); + state.resize_throttle = false; drop(state); let mut cb = self.callbacks.borrow_mut(); @@ -366,6 +370,12 @@ impl WaylandWindowStatePtr { state.fullscreen = configure.fullscreen; state.maximized = configure.maximized; state.tiling = configure.tiling; + // Limit interactive resizes to once per vblank + if configure.resizing && state.resize_throttle { + return; + } else if configure.resizing { + state.resize_throttle = true; + } if !configure.fullscreen && !configure.maximized { configure.size = if got_unmaximized { Some(state.window_bounds.size) @@ -472,6 +482,7 @@ impl WaylandWindowStatePtr { let mut tiling = Tiling::default(); let mut fullscreen = false; let mut maximized = false; + let mut resizing = false; for state in states { match state { @@ -481,6 +492,7 @@ impl WaylandWindowStatePtr { xdg_toplevel::State::Fullscreen => { fullscreen = true; } + xdg_toplevel::State::Resizing => resizing = true, xdg_toplevel::State::TiledTop => { tiling.top = true; } @@ -508,6 +520,7 @@ impl WaylandWindowStatePtr { size, fullscreen, maximized, + resizing, tiling, }); From 97af7e1bd92eb5c3bdd038e596378dc4054902f6 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Mon, 21 Jul 2025 11:29:16 -0400 Subject: [PATCH 0091/1052] collab: Remove `PUT /billing/preferences` endpoint (#34825) This PR removes the `PUT /billing/preferences` endpoint, as it has been moved to `cloud.zed.dev`. Release Notes: - N/A --- crates/collab/src/api/billing.rs | 110 +------------------------------ 1 file changed, 2 insertions(+), 108 deletions(-) diff --git a/crates/collab/src/api/billing.rs b/crates/collab/src/api/billing.rs index 09f307c672..9aa6578b2a 100644 --- a/crates/collab/src/api/billing.rs +++ b/crates/collab/src/api/billing.rs @@ -1,12 +1,10 @@ use anyhow::{Context as _, bail}; -use axum::routing::put; use axum::{Extension, Json, Router, extract, routing::post}; -use chrono::{DateTime, SecondsFormat, Utc}; +use chrono::{DateTime, Utc}; use collections::{HashMap, HashSet}; use reqwest::StatusCode; use sea_orm::ActiveValue; use serde::{Deserialize, Serialize}; -use serde_json::json; use std::{str::FromStr, sync::Arc, time::Duration}; use stripe::{ BillingPortalSession, CancellationDetailsReason, CreateBillingPortalSession, @@ -20,7 +18,6 @@ use stripe::{ use util::{ResultExt, maybe}; use zed_llm_client::LanguageModelProvider; -use crate::api::events::SnowflakeRow; use crate::db::billing_subscription::{ StripeCancellationReason, StripeSubscriptionStatus, SubscriptionKind, }; @@ -36,14 +33,13 @@ use crate::{ db::{ BillingSubscriptionId, CreateBillingCustomerParams, CreateBillingSubscriptionParams, CreateProcessedStripeEventParams, UpdateBillingCustomerParams, - UpdateBillingPreferencesParams, UpdateBillingSubscriptionParams, billing_customer, + UpdateBillingSubscriptionParams, billing_customer, }, stripe_billing::StripeBilling, }; pub fn router() -> Router { Router::new() - .route("/billing/preferences", put(update_billing_preferences)) .route("/billing/subscriptions", post(create_billing_subscription)) .route( "/billing/subscriptions/manage", @@ -55,108 +51,6 @@ pub fn router() -> Router { ) } -#[derive(Debug, Serialize)] -struct BillingPreferencesResponse { - trial_started_at: Option, - max_monthly_llm_usage_spending_in_cents: i32, - model_request_overages_enabled: bool, - model_request_overages_spend_limit_in_cents: i32, -} - -#[derive(Debug, Deserialize)] -struct UpdateBillingPreferencesBody { - github_user_id: i32, - #[serde(default)] - max_monthly_llm_usage_spending_in_cents: i32, - #[serde(default)] - model_request_overages_enabled: bool, - #[serde(default)] - model_request_overages_spend_limit_in_cents: i32, -} - -async fn update_billing_preferences( - Extension(app): Extension>, - Extension(rpc_server): Extension>, - extract::Json(body): extract::Json, -) -> Result> { - let user = app - .db - .get_user_by_github_user_id(body.github_user_id) - .await? - .context("user not found")?; - - let billing_customer = app.db.get_billing_customer_by_user_id(user.id).await?; - - let max_monthly_llm_usage_spending_in_cents = - body.max_monthly_llm_usage_spending_in_cents.max(0); - let model_request_overages_spend_limit_in_cents = - body.model_request_overages_spend_limit_in_cents.max(0); - - let billing_preferences = - if let Some(_billing_preferences) = app.db.get_billing_preferences(user.id).await? { - app.db - .update_billing_preferences( - user.id, - &UpdateBillingPreferencesParams { - max_monthly_llm_usage_spending_in_cents: ActiveValue::set( - max_monthly_llm_usage_spending_in_cents, - ), - model_request_overages_enabled: ActiveValue::set( - body.model_request_overages_enabled, - ), - model_request_overages_spend_limit_in_cents: ActiveValue::set( - model_request_overages_spend_limit_in_cents, - ), - }, - ) - .await? - } else { - app.db - .create_billing_preferences( - user.id, - &crate::db::CreateBillingPreferencesParams { - max_monthly_llm_usage_spending_in_cents, - model_request_overages_enabled: body.model_request_overages_enabled, - model_request_overages_spend_limit_in_cents, - }, - ) - .await? - }; - - SnowflakeRow::new( - "Billing Preferences Updated", - Some(user.metrics_id), - user.admin, - None, - json!({ - "user_id": user.id, - "model_request_overages_enabled": billing_preferences.model_request_overages_enabled, - "model_request_overages_spend_limit_in_cents": billing_preferences.model_request_overages_spend_limit_in_cents, - "max_monthly_llm_usage_spending_in_cents": billing_preferences.max_monthly_llm_usage_spending_in_cents, - }), - ) - .write(&app.kinesis_client, &app.config.kinesis_stream) - .await - .log_err(); - - rpc_server.refresh_llm_tokens_for_user(user.id).await; - - Ok(Json(BillingPreferencesResponse { - trial_started_at: billing_customer - .and_then(|billing_customer| billing_customer.trial_started_at) - .map(|trial_started_at| { - trial_started_at - .and_utc() - .to_rfc3339_opts(SecondsFormat::Millis, true) - }), - max_monthly_llm_usage_spending_in_cents: billing_preferences - .max_monthly_llm_usage_spending_in_cents, - model_request_overages_enabled: billing_preferences.model_request_overages_enabled, - model_request_overages_spend_limit_in_cents: billing_preferences - .model_request_overages_spend_limit_in_cents, - })) -} - #[derive(Debug, PartialEq, Clone, Copy, Deserialize)] #[serde(rename_all = "snake_case")] enum ProductCode { From e14c9479e40e3ce83c4222b974fc22c0fb81c5e5 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Mon, 21 Jul 2025 17:36:52 +0200 Subject: [PATCH 0092/1052] chore: Pin taffy version (#34827) Follow-up to 34817 Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ... --- Cargo.lock | 4 ++-- crates/gpui/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a323fb70af..c0d8dabf09 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -15936,9 +15936,9 @@ dependencies = [ [[package]] name = "taffy" -version = "0.5.2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cb893bff0f80ae17d3a57e030622a967b8dbc90e38284d9b4b1442e23873c94" +checksum = "e8b61630cba2afd2c851821add2e1bb1b7851a2436e839ab73b56558b009035e" dependencies = [ "arrayvec", "grid", diff --git a/crates/gpui/Cargo.toml b/crates/gpui/Cargo.toml index 9da01c5ff3..878794647a 100644 --- a/crates/gpui/Cargo.toml +++ b/crates/gpui/Cargo.toml @@ -121,7 +121,7 @@ smallvec.workspace = true smol.workspace = true strum.workspace = true sum_tree.workspace = true -taffy = "0.5.1" +taffy = "=0.5.1" thiserror.workspace = true util.workspace = true uuid.workspace = true From bf8aba566ce81a5bb1dfc4c5c70810695076f339 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Mon, 21 Jul 2025 11:47:40 -0400 Subject: [PATCH 0093/1052] collab: Remove unused billing preferences queries (#34830) This PR removes some billing preferences queries that are no longer in use. Release Notes: - N/A --- crates/collab/src/db.rs | 3 - .../src/db/queries/billing_preferences.rs | 74 ------------------- 2 files changed, 77 deletions(-) diff --git a/crates/collab/src/db.rs b/crates/collab/src/db.rs index cc29245697..8cd1e3ea83 100644 --- a/crates/collab/src/db.rs +++ b/crates/collab/src/db.rs @@ -42,9 +42,6 @@ pub use tests::TestDb; pub use ids::*; pub use queries::billing_customers::{CreateBillingCustomerParams, UpdateBillingCustomerParams}; -pub use queries::billing_preferences::{ - CreateBillingPreferencesParams, UpdateBillingPreferencesParams, -}; pub use queries::billing_subscriptions::{ CreateBillingSubscriptionParams, UpdateBillingSubscriptionParams, }; diff --git a/crates/collab/src/db/queries/billing_preferences.rs b/crates/collab/src/db/queries/billing_preferences.rs index 1a6fbe946a..f370964ecd 100644 --- a/crates/collab/src/db/queries/billing_preferences.rs +++ b/crates/collab/src/db/queries/billing_preferences.rs @@ -1,21 +1,5 @@ -use anyhow::Context as _; - use super::*; -#[derive(Debug)] -pub struct CreateBillingPreferencesParams { - pub max_monthly_llm_usage_spending_in_cents: i32, - pub model_request_overages_enabled: bool, - pub model_request_overages_spend_limit_in_cents: i32, -} - -#[derive(Debug, Default)] -pub struct UpdateBillingPreferencesParams { - pub max_monthly_llm_usage_spending_in_cents: ActiveValue, - pub model_request_overages_enabled: ActiveValue, - pub model_request_overages_spend_limit_in_cents: ActiveValue, -} - impl Database { /// Returns the billing preferences for the given user, if they exist. pub async fn get_billing_preferences( @@ -30,62 +14,4 @@ impl Database { }) .await } - - /// Creates new billing preferences for the given user. - pub async fn create_billing_preferences( - &self, - user_id: UserId, - params: &CreateBillingPreferencesParams, - ) -> Result { - self.transaction(|tx| async move { - let preferences = billing_preference::Entity::insert(billing_preference::ActiveModel { - user_id: ActiveValue::set(user_id), - max_monthly_llm_usage_spending_in_cents: ActiveValue::set( - params.max_monthly_llm_usage_spending_in_cents, - ), - model_request_overages_enabled: ActiveValue::set( - params.model_request_overages_enabled, - ), - model_request_overages_spend_limit_in_cents: ActiveValue::set( - params.model_request_overages_spend_limit_in_cents, - ), - ..Default::default() - }) - .exec_with_returning(&*tx) - .await?; - - Ok(preferences) - }) - .await - } - - /// Updates the billing preferences for the given user. - pub async fn update_billing_preferences( - &self, - user_id: UserId, - params: &UpdateBillingPreferencesParams, - ) -> Result { - self.transaction(|tx| async move { - let preferences = billing_preference::Entity::update_many() - .set(billing_preference::ActiveModel { - max_monthly_llm_usage_spending_in_cents: params - .max_monthly_llm_usage_spending_in_cents - .clone(), - model_request_overages_enabled: params.model_request_overages_enabled.clone(), - model_request_overages_spend_limit_in_cents: params - .model_request_overages_spend_limit_in_cents - .clone(), - ..Default::default() - }) - .filter(billing_preference::Column::UserId.eq(user_id)) - .exec_with_returning(&*tx) - .await?; - - Ok(preferences - .into_iter() - .next() - .context("billing preferences not found")?) - }) - .await - } } From bc5c5cf5d65654d3001bc27c43a8f511dee77952 Mon Sep 17 00:00:00 2001 From: Anthony Eid <56899983+Anthony-Eid@users.noreply.github.com> Date: Mon, 21 Jul 2025 12:20:38 -0400 Subject: [PATCH 0094/1052] onboarding: Create basic onboarding page (#34723) Release Notes: - N/A --------- Co-authored-by: Ben Kunkle --- Cargo.lock | 18 ++ Cargo.toml | 2 + crates/onboarding/Cargo.toml | 28 +++ crates/onboarding/LICENSE-GPL | 1 + crates/onboarding/src/onboarding.rs | 352 ++++++++++++++++++++++++++++ crates/zed/Cargo.toml | 1 + crates/zed/src/main.rs | 6 + crates/zed/src/zed.rs | 1 + 8 files changed, 409 insertions(+) create mode 100644 crates/onboarding/Cargo.toml create mode 120000 crates/onboarding/LICENSE-GPL create mode 100644 crates/onboarding/src/onboarding.rs diff --git a/Cargo.lock b/Cargo.lock index c0d8dabf09..1dcfb87756 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10983,6 +10983,23 @@ dependencies = [ "workspace-hack", ] +[[package]] +name = "onboarding" +version = "0.1.0" +dependencies = [ + "anyhow", + "command_palette_hooks", + "db", + "feature_flags", + "fs", + "gpui", + "settings", + "theme", + "ui", + "workspace", + "workspace-hack", +] + [[package]] name = "once_cell" version = "1.21.3" @@ -20223,6 +20240,7 @@ dependencies = [ "nix 0.29.0", "node_runtime", "notifications", + "onboarding", "outline", "outline_panel", "parking_lot", diff --git a/Cargo.toml b/Cargo.toml index c99ba3953d..ea8690f2b3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -108,6 +108,7 @@ members = [ "crates/node_runtime", "crates/notifications", "crates/ollama", + "crates/onboarding", "crates/open_ai", "crates/open_router", "crates/outline", @@ -325,6 +326,7 @@ net = { path = "crates/net" } node_runtime = { path = "crates/node_runtime" } notifications = { path = "crates/notifications" } ollama = { path = "crates/ollama" } +onboarding = { path = "crates/onboarding" } open_ai = { path = "crates/open_ai" } open_router = { path = "crates/open_router", features = ["schemars"] } outline = { path = "crates/outline" } diff --git a/crates/onboarding/Cargo.toml b/crates/onboarding/Cargo.toml new file mode 100644 index 0000000000..693e39d4ca --- /dev/null +++ b/crates/onboarding/Cargo.toml @@ -0,0 +1,28 @@ +[package] +name = "onboarding" +version = "0.1.0" +edition.workspace = true +publish.workspace = true +license = "GPL-3.0-or-later" + +[lints] +workspace = true + +[lib] +path = "src/onboarding.rs" + +[features] +default = [] + +[dependencies] +anyhow.workspace = true +command_palette_hooks.workspace = true +db.workspace = true +feature_flags.workspace = true +fs.workspace = true +gpui.workspace = true +settings.workspace = true +theme.workspace = true +ui.workspace = true +workspace.workspace = true +workspace-hack.workspace = true diff --git a/crates/onboarding/LICENSE-GPL b/crates/onboarding/LICENSE-GPL new file mode 120000 index 0000000000..dd648cce4f --- /dev/null +++ b/crates/onboarding/LICENSE-GPL @@ -0,0 +1 @@ +../../../LICENSE-GPL \ No newline at end of file diff --git a/crates/onboarding/src/onboarding.rs b/crates/onboarding/src/onboarding.rs new file mode 100644 index 0000000000..1ce236f941 --- /dev/null +++ b/crates/onboarding/src/onboarding.rs @@ -0,0 +1,352 @@ +use command_palette_hooks::CommandPaletteFilter; +use db::kvp::KEY_VALUE_STORE; +use feature_flags::{FeatureFlag, FeatureFlagViewExt as _}; +use fs::Fs; +use gpui::{ + AnyElement, App, AppContext, Context, Entity, EventEmitter, FocusHandle, Focusable, + IntoElement, Render, SharedString, Subscription, Task, WeakEntity, Window, actions, +}; +use settings::{Settings, SettingsStore, update_settings_file}; +use std::sync::Arc; +use theme::{ThemeMode, ThemeSettings}; +use ui::{ + ButtonCommon as _, ButtonSize, ButtonStyle, Clickable as _, Color, Divider, FluentBuilder, + Headline, InteractiveElement, KeyBinding, Label, LabelCommon, ParentElement as _, + StatefulInteractiveElement, Styled, ToggleButton, Toggleable as _, Vector, VectorName, div, + h_flex, rems, v_container, v_flex, +}; +use workspace::{ + AppState, Workspace, WorkspaceId, + dock::DockPosition, + item::{Item, ItemEvent}, + open_new, with_active_or_new_workspace, +}; + +pub struct OnBoardingFeatureFlag {} + +impl FeatureFlag for OnBoardingFeatureFlag { + const NAME: &'static str = "onboarding"; +} + +pub const FIRST_OPEN: &str = "first_open"; + +actions!( + zed, + [ + /// Opens the onboarding view. + OpenOnboarding + ] +); + +pub fn init(cx: &mut App) { + cx.on_action(|_: &OpenOnboarding, cx| { + with_active_or_new_workspace(cx, |workspace, window, cx| { + workspace + .with_local_workspace(window, cx, |workspace, window, cx| { + let existing = workspace + .active_pane() + .read(cx) + .items() + .find_map(|item| item.downcast::()); + + if let Some(existing) = existing { + workspace.activate_item(&existing, true, true, window, cx); + } else { + let settings_page = Onboarding::new(workspace.weak_handle(), cx); + workspace.add_item_to_active_pane( + Box::new(settings_page), + None, + true, + window, + cx, + ) + } + }) + .detach(); + }); + }); + cx.observe_new::(|_, window, cx| { + let Some(window) = window else { + return; + }; + + let onboarding_actions = [std::any::TypeId::of::()]; + + CommandPaletteFilter::update_global(cx, |filter, _cx| { + filter.hide_action_types(&onboarding_actions); + }); + + cx.observe_flag::(window, move |is_enabled, _, _, cx| { + if is_enabled { + CommandPaletteFilter::update_global(cx, |filter, _cx| { + filter.show_action_types(onboarding_actions.iter()); + }); + } else { + CommandPaletteFilter::update_global(cx, |filter, _cx| { + filter.hide_action_types(&onboarding_actions); + }); + } + }) + .detach(); + }) + .detach(); +} + +pub fn show_onboarding_view(app_state: Arc, cx: &mut App) -> Task> { + open_new( + Default::default(), + app_state, + cx, + |workspace, window, cx| { + { + workspace.toggle_dock(DockPosition::Left, window, cx); + let onboarding_page = Onboarding::new(workspace.weak_handle(), cx); + workspace.add_item_to_center(Box::new(onboarding_page.clone()), window, cx); + + window.focus(&onboarding_page.focus_handle(cx)); + + cx.notify(); + }; + db::write_and_log(cx, || { + KEY_VALUE_STORE.write_kvp(FIRST_OPEN.to_string(), "false".to_string()) + }); + }, + ) +} + +fn read_theme_selection(cx: &App) -> ThemeMode { + let settings = ThemeSettings::get_global(cx); + settings + .theme_selection + .as_ref() + .and_then(|selection| selection.mode()) + .unwrap_or_default() +} + +fn write_theme_selection(theme_mode: ThemeMode, cx: &App) { + let fs = ::global(cx); + + update_settings_file::(fs, cx, move |settings, _| { + settings.set_mode(theme_mode); + }); +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +enum SelectedPage { + Basics, + Editing, + AiSetup, +} + +struct Onboarding { + workspace: WeakEntity, + focus_handle: FocusHandle, + selected_page: SelectedPage, + _settings_subscription: Subscription, +} + +impl Onboarding { + fn new(workspace: WeakEntity, cx: &mut App) -> Entity { + cx.new(|cx| Self { + workspace, + focus_handle: cx.focus_handle(), + selected_page: SelectedPage::Basics, + _settings_subscription: cx.observe_global::(move |_, cx| cx.notify()), + }) + } + + fn render_page_nav( + &mut self, + page: SelectedPage, + _: &mut Window, + cx: &mut Context, + ) -> impl IntoElement { + let text = match page { + SelectedPage::Basics => "Basics", + SelectedPage::Editing => "Editing", + SelectedPage::AiSetup => "AI Setup", + }; + let binding = match page { + SelectedPage::Basics => { + KeyBinding::new(vec![gpui::Keystroke::parse("cmd-1").unwrap()], cx) + } + SelectedPage::Editing => { + KeyBinding::new(vec![gpui::Keystroke::parse("cmd-2").unwrap()], cx) + } + SelectedPage::AiSetup => { + KeyBinding::new(vec![gpui::Keystroke::parse("cmd-3").unwrap()], cx) + } + }; + let selected = self.selected_page == page; + h_flex() + .id(text) + .rounded_sm() + .child(text) + .child(binding) + .h_8() + .gap_2() + .px_2() + .py_0p5() + .w_full() + .justify_between() + .map(|this| { + if selected { + this.bg(Color::Selected.color(cx)) + .border_l_1() + .border_color(Color::Accent.color(cx)) + } else { + this.text_color(Color::Muted.color(cx)) + } + }) + .hover(|style| { + if selected { + style.bg(Color::Selected.color(cx).opacity(0.6)) + } else { + style.bg(Color::Selected.color(cx).opacity(0.3)) + } + }) + .on_click(cx.listener(move |this, _, _, cx| { + this.selected_page = page; + cx.notify(); + })) + } + + fn render_page(&mut self, window: &mut Window, cx: &mut Context) -> AnyElement { + match self.selected_page { + SelectedPage::Basics => self.render_basics_page(window, cx).into_any_element(), + SelectedPage::Editing => self.render_editing_page(window, cx).into_any_element(), + SelectedPage::AiSetup => self.render_ai_setup_page(window, cx).into_any_element(), + } + } + + fn render_basics_page(&mut self, _: &mut Window, cx: &mut Context) -> impl IntoElement { + let theme_mode = read_theme_selection(cx); + + v_container().child( + h_flex() + .items_center() + .justify_between() + .child(Label::new("Theme")) + .child( + h_flex() + .rounded_md() + .child( + ToggleButton::new("light", "Light") + .style(ButtonStyle::Filled) + .size(ButtonSize::Large) + .toggle_state(theme_mode == ThemeMode::Light) + .on_click(|_, _, cx| write_theme_selection(ThemeMode::Light, cx)) + .first(), + ) + .child( + ToggleButton::new("dark", "Dark") + .style(ButtonStyle::Filled) + .size(ButtonSize::Large) + .toggle_state(theme_mode == ThemeMode::Dark) + .on_click(|_, _, cx| write_theme_selection(ThemeMode::Dark, cx)) + .last(), + ) + .child( + ToggleButton::new("system", "System") + .style(ButtonStyle::Filled) + .size(ButtonSize::Large) + .toggle_state(theme_mode == ThemeMode::System) + .on_click(|_, _, cx| write_theme_selection(ThemeMode::System, cx)) + .middle(), + ), + ), + ) + } + + fn render_editing_page(&mut self, _: &mut Window, _: &mut Context) -> impl IntoElement { + // div().child("editing page") + "Right" + } + + fn render_ai_setup_page(&mut self, _: &mut Window, _: &mut Context) -> impl IntoElement { + div().child("ai setup page") + } +} + +impl Render for Onboarding { + fn render(&mut self, window: &mut Window, cx: &mut Context) -> impl IntoElement { + h_flex() + .image_cache(gpui::retain_all("onboarding-page")) + .key_context("onboarding-page") + .px_24() + .py_12() + .items_start() + .child( + v_flex() + .w_1_3() + .h_full() + .child( + h_flex() + .pt_0p5() + .child(Vector::square(VectorName::ZedLogo, rems(2.))) + .child( + v_flex() + .left_1() + .items_center() + .child(Headline::new("Welcome to Zed")) + .child( + Label::new("The editor for what's next") + .color(Color::Muted) + .italic(), + ), + ), + ) + .p_1() + .child(Divider::horizontal_dashed()) + .child( + v_flex().gap_1().children([ + self.render_page_nav(SelectedPage::Basics, window, cx) + .into_element(), + self.render_page_nav(SelectedPage::Editing, window, cx) + .into_element(), + self.render_page_nav(SelectedPage::AiSetup, window, cx) + .into_element(), + ]), + ), + ) + // .child(Divider::vertical_dashed()) + .child(div().w_2_3().h_full().child(self.render_page(window, cx))) + } +} + +impl EventEmitter for Onboarding {} + +impl Focusable for Onboarding { + fn focus_handle(&self, _: &App) -> gpui::FocusHandle { + self.focus_handle.clone() + } +} + +impl Item for Onboarding { + type Event = ItemEvent; + + fn tab_content_text(&self, _detail: usize, _cx: &App) -> SharedString { + "Onboarding".into() + } + + fn telemetry_event_text(&self) -> Option<&'static str> { + Some("Onboarding Page Opened") + } + + fn show_toolbar(&self) -> bool { + false + } + + fn clone_on_split( + &self, + _workspace_id: Option, + _: &mut Window, + cx: &mut Context, + ) -> Option> { + Some(Onboarding::new(self.workspace.clone(), cx)) + } + + fn to_item_events(event: &Self::Event, mut f: impl FnMut(workspace::item::ItemEvent)) { + f(*event) + } +} diff --git a/crates/zed/Cargo.toml b/crates/zed/Cargo.toml index bbceb3f101..e565aba26b 100644 --- a/crates/zed/Cargo.toml +++ b/crates/zed/Cargo.toml @@ -99,6 +99,7 @@ nc.workspace = true nix = { workspace = true, features = ["pthread", "signal"] } node_runtime.workspace = true notifications.workspace = true +onboarding.workspace = true outline.workspace = true outline_panel.workspace = true parking_lot.workspace = true diff --git a/crates/zed/src/main.rs b/crates/zed/src/main.rs index 89b9fad6bf..9d85923ca2 100644 --- a/crates/zed/src/main.rs +++ b/crates/zed/src/main.rs @@ -24,6 +24,7 @@ use reqwest_client::ReqwestClient; use assets::Assets; use node_runtime::{NodeBinaryOptions, NodeRuntime}; +use onboarding::show_onboarding_view; use parking_lot::Mutex; use project::project_settings::ProjectSettings; use recent_projects::{SshSettings, open_ssh_project}; @@ -619,6 +620,7 @@ pub fn main() { markdown_preview::init(cx); svg_preview::init(cx); welcome::init(cx); + onboarding::init(cx); settings_ui::init(cx); extensions_ui::init(cx); zeta::init(cx); @@ -1039,6 +1041,10 @@ async fn restore_or_create_workspace(app_state: Arc, cx: &mut AsyncApp ); } } + } else if matches!(KEY_VALUE_STORE.read_kvp(FIRST_OPEN), Ok(None)) { + let state = app_state.clone(); + cx.update(|cx| show_onboarding_view(state, cx))?.await?; + // cx.update(|cx| show_welcome_view(app_state, cx))?.await?; } else if matches!(KEY_VALUE_STORE.read_kvp(FIRST_OPEN), Ok(None)) { cx.update(|cx| show_welcome_view(app_state, cx))?.await?; } else { diff --git a/crates/zed/src/zed.rs b/crates/zed/src/zed.rs index cc3906af4d..24c7ab5ba2 100644 --- a/crates/zed/src/zed.rs +++ b/crates/zed/src/zed.rs @@ -3957,6 +3957,7 @@ mod tests { language::init(cx); workspace::init(app_state.clone(), cx); welcome::init(cx); + onboarding::init(cx); Project::init_settings(cx); app_state }) From b6cf398eab34bbc515a94f77ec01d0cd44570c61 Mon Sep 17 00:00:00 2001 From: Balboa Codes <20909423+balboacodes@users.noreply.github.com> Date: Mon, 21 Jul 2025 13:25:59 -0400 Subject: [PATCH 0095/1052] docs: Fix PHP docs typo (#34836) This fixes a minor typo in the PHP docs. Release Notes: - N/A --- docs/src/languages/php.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/languages/php.md b/docs/src/languages/php.md index 9cb7c40762..4e94c13446 100644 --- a/docs/src/languages/php.md +++ b/docs/src/languages/php.md @@ -15,7 +15,7 @@ The PHP extension offers both `phpactor` and `intelephense` language server supp ## Phpactor -The Zed PHP Extension can install `phpactor` automatically but requires `php` to installed and available in your path: +The Zed PHP Extension can install `phpactor` automatically but requires `php` to be installed and available in your path: ```sh # brew install php # macOS From 254c7a330a9c95d4ca2d7251cf601a5dac165768 Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Mon, 21 Jul 2025 20:48:07 +0300 Subject: [PATCH 0096/1052] Regroup LSP context menu items by the worktree name (#34838) Also * remove the feature gate * open buffers with an error when no logs are present * adjust the hover text to indicate that difference image Release Notes: - N/A --- Cargo.lock | 1 - .../src/activity_indicator.rs | 4 +- crates/language_tools/Cargo.toml | 1 - crates/language_tools/src/lsp_tool.rs | 604 +++++++++++------- 4 files changed, 363 insertions(+), 247 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1dcfb87756..4537d440cc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9165,7 +9165,6 @@ dependencies = [ "collections", "copilot", "editor", - "feature_flags", "futures 0.3.31", "gpui", "itertools 0.14.0", diff --git a/crates/activity_indicator/src/activity_indicator.rs b/crates/activity_indicator/src/activity_indicator.rs index aee25fc9e3..f8ea7173d8 100644 --- a/crates/activity_indicator/src/activity_indicator.rs +++ b/crates/activity_indicator/src/activity_indicator.rs @@ -231,7 +231,6 @@ impl ActivityIndicator { status, } => { let create_buffer = project.update(cx, |project, cx| project.create_buffer(cx)); - let project = project.clone(); let status = status.clone(); let server_name = server_name.clone(); cx.spawn_in(window, async move |workspace, cx| { @@ -247,8 +246,7 @@ impl ActivityIndicator { workspace.update_in(cx, |workspace, window, cx| { workspace.add_item_to_active_pane( Box::new(cx.new(|cx| { - let mut editor = - Editor::for_buffer(buffer, Some(project.clone()), window, cx); + let mut editor = Editor::for_buffer(buffer, None, window, cx); editor.set_read_only(true); editor })), diff --git a/crates/language_tools/Cargo.toml b/crates/language_tools/Cargo.toml index 45af7518d5..5aa914311a 100644 --- a/crates/language_tools/Cargo.toml +++ b/crates/language_tools/Cargo.toml @@ -18,7 +18,6 @@ client.workspace = true collections.workspace = true copilot.workspace = true editor.workspace = true -feature_flags.workspace = true futures.workspace = true gpui.workspace = true itertools.workspace = true diff --git a/crates/language_tools/src/lsp_tool.rs b/crates/language_tools/src/lsp_tool.rs index fd84391680..9e95ed4673 100644 --- a/crates/language_tools/src/lsp_tool.rs +++ b/crates/language_tools/src/lsp_tool.rs @@ -1,13 +1,17 @@ -use std::{collections::hash_map, path::PathBuf, rc::Rc, time::Duration}; +use std::{ + collections::{BTreeMap, HashMap}, + path::{Path, PathBuf}, + rc::Rc, + time::Duration, +}; use client::proto; -use collections::{HashMap, HashSet}; +use collections::HashSet; use editor::{Editor, EditorEvent}; -use feature_flags::FeatureFlagAppExt as _; use gpui::{Corner, Entity, Subscription, Task, WeakEntity, actions}; -use language::{BinaryStatus, BufferId, LocalFile, ServerHealth}; +use language::{BinaryStatus, BufferId, ServerHealth}; use lsp::{LanguageServerId, LanguageServerName, LanguageServerSelector}; -use project::{LspStore, LspStoreEvent, project_settings::ProjectSettings}; +use project::{LspStore, LspStoreEvent, Worktree, project_settings::ProjectSettings}; use settings::{Settings as _, SettingsStore}; use ui::{ Context, ContextMenu, ContextMenuEntry, ContextMenuItem, DocumentationAside, DocumentationSide, @@ -36,8 +40,7 @@ pub struct LspTool { #[derive(Debug)] struct LanguageServerState { - items: Vec, - other_servers_start_index: Option, + items: Vec, workspace: WeakEntity, lsp_store: WeakEntity, active_editor: Option, @@ -63,8 +66,13 @@ impl std::fmt::Debug for ActiveEditor { struct LanguageServers { health_statuses: HashMap, binary_statuses: HashMap, - servers_per_buffer_abs_path: - HashMap>>, + servers_per_buffer_abs_path: HashMap, +} + +#[derive(Debug, Clone)] +struct ServersForPath { + servers: HashMap>, + worktree: Option>, } #[derive(Debug, Clone)] @@ -120,8 +128,8 @@ impl LanguageServerState { }; let mut first_button_encountered = false; - for (i, item) in self.items.iter().enumerate() { - if let LspItem::ToggleServersButton { restart } = item { + for item in &self.items { + if let LspMenuItem::ToggleServersButton { restart } = item { let label = if *restart { "Restart All Servers" } else { @@ -140,22 +148,19 @@ impl LanguageServerState { }; let project = workspace.read(cx).project().clone(); let buffer_store = project.read(cx).buffer_store().clone(); - let worktree_store = project.read(cx).worktree_store(); - let buffers = state .read(cx) .language_servers .servers_per_buffer_abs_path - .keys() - .filter_map(|abs_path| { - worktree_store.read(cx).find_worktree(abs_path, cx) - }) - .filter_map(|(worktree, relative_path)| { - let entry = - worktree.read(cx).entry_for_path(&relative_path)?; - project.read(cx).path_for_entry(entry.id, cx) - }) - .filter_map(|project_path| { + .iter() + .filter_map(|(abs_path, servers)| { + let worktree = + servers.worktree.as_ref()?.upgrade()?.read(cx); + let relative_path = + abs_path.strip_prefix(&worktree.abs_path()).ok()?; + let entry = worktree.entry_for_path(&relative_path)?; + let project_path = + project.read(cx).path_for_entry(entry.id, cx)?; buffer_store.read(cx).get_by_path(&project_path) }) .collect(); @@ -165,13 +170,16 @@ impl LanguageServerState { .iter() // Do not try to use IDs as we have stopped all servers already, when allowing to restart them all .flat_map(|item| match item { - LspItem::ToggleServersButton { .. } => None, - LspItem::WithHealthCheck(_, status, ..) => Some( - LanguageServerSelector::Name(status.name.clone()), - ), - LspItem::WithBinaryStatus(_, server_name, ..) => Some( - LanguageServerSelector::Name(server_name.clone()), + LspMenuItem::Header { .. } => None, + LspMenuItem::ToggleServersButton { .. } => None, + LspMenuItem::WithHealthCheck { health, .. } => Some( + LanguageServerSelector::Name(health.name.clone()), ), + LspMenuItem::WithBinaryStatus { + server_name, .. + } => Some(LanguageServerSelector::Name( + server_name.clone(), + )), }) .collect(); lsp_store.restart_language_servers_for_buffers( @@ -190,13 +198,17 @@ impl LanguageServerState { } menu = menu.item(button); continue; - }; + } else if let LspMenuItem::Header { header, separator } = item { + menu = menu + .when(*separator, |menu| menu.separator()) + .when_some(header.as_ref(), |menu, header| menu.header(header)); + continue; + } let Some(server_info) = item.server_info() else { continue; }; - let workspace = self.workspace.clone(); let server_selector = server_info.server_selector(); // TODO currently, Zed remote does not work well with the LSP logs // https://github.com/zed-industries/zed/issues/28557 @@ -205,6 +217,7 @@ impl LanguageServerState { let status_color = server_info .binary_status + .as_ref() .and_then(|binary_status| match binary_status.status { BinaryStatus::None => None, BinaryStatus::CheckingForUpdate @@ -223,17 +236,20 @@ impl LanguageServerState { }) .unwrap_or(Color::Success); - if self - .other_servers_start_index - .is_some_and(|index| index == i) - { - menu = menu.separator().header("Other Buffers"); - } - - if i == 0 && self.other_servers_start_index.is_some() { - menu = menu.header("Current Buffer"); - } + let message = server_info + .message + .as_ref() + .or_else(|| server_info.binary_status.as_ref()?.message.as_ref()) + .cloned(); + let hover_label = if has_logs { + Some("View Logs") + } else if message.is_some() { + Some("View Message") + } else { + None + }; + let server_name = server_info.name.clone(); menu = menu.item(ContextMenuItem::custom_entry( move |_, _| { h_flex() @@ -245,42 +261,99 @@ impl LanguageServerState { h_flex() .gap_2() .child(Indicator::dot().color(status_color)) - .child(Label::new(server_info.name.0.clone())), - ) - .child( - h_flex() - .visible_on_hover("menu_item") - .child( - Label::new("View Logs") - .size(LabelSize::Small) - .color(Color::Muted), - ) - .child( - Icon::new(IconName::ChevronRight) - .size(IconSize::Small) - .color(Color::Muted), - ), + .child(Label::new(server_name.0.clone())), ) + .when_some(hover_label, |div, hover_label| { + div.child( + h_flex() + .visible_on_hover("menu_item") + .child( + Label::new(hover_label) + .size(LabelSize::Small) + .color(Color::Muted), + ) + .child( + Icon::new(IconName::ChevronRight) + .size(IconSize::Small) + .color(Color::Muted), + ), + ) + }) .into_any_element() }, { let lsp_logs = lsp_logs.clone(); + let message = message.clone(); + let server_selector = server_selector.clone(); + let server_name = server_info.name.clone(); + let workspace = self.workspace.clone(); move |window, cx| { - if !has_logs { + if has_logs { + lsp_logs.update(cx, |lsp_logs, cx| { + lsp_logs.open_server_trace( + workspace.clone(), + server_selector.clone(), + window, + cx, + ); + }); + } else if let Some(message) = &message { + let Some(create_buffer) = workspace + .update(cx, |workspace, cx| { + workspace + .project() + .update(cx, |project, cx| project.create_buffer(cx)) + }) + .ok() + else { + return; + }; + + let window = window.window_handle(); + let workspace = workspace.clone(); + let message = message.clone(); + let server_name = server_name.clone(); + cx.spawn(async move |cx| { + let buffer = create_buffer.await?; + buffer.update(cx, |buffer, cx| { + buffer.edit( + [( + 0..0, + format!("Language server {server_name}:\n\n{message}"), + )], + None, + cx, + ); + buffer.set_capability(language::Capability::ReadOnly, cx); + })?; + + workspace.update(cx, |workspace, cx| { + window.update(cx, |_, window, cx| { + workspace.add_item_to_active_pane( + Box::new(cx.new(|cx| { + let mut editor = + Editor::for_buffer(buffer, None, window, cx); + editor.set_read_only(true); + editor + })), + None, + true, + window, + cx, + ); + }) + })??; + + anyhow::Ok(()) + }) + .detach(); + } else { cx.propagate(); return; } - lsp_logs.update(cx, |lsp_logs, cx| { - lsp_logs.open_server_trace( - workspace.clone(), - server_selector.clone(), - window, - cx, - ); - }); } }, - server_info.message.map(|server_message| { + message.map(|server_message| { DocumentationAside::new( DocumentationSide::Right, Rc::new(move |_| Label::new(server_message.clone()).into_any_element()), @@ -345,81 +418,95 @@ impl LanguageServers { #[derive(Debug)] enum ServerData<'a> { - WithHealthCheck( - LanguageServerId, - &'a LanguageServerHealthStatus, - Option<&'a LanguageServerBinaryStatus>, - ), - WithBinaryStatus( - Option, - &'a LanguageServerName, - &'a LanguageServerBinaryStatus, - ), -} - -#[derive(Debug)] -enum LspItem { - WithHealthCheck( - LanguageServerId, - LanguageServerHealthStatus, - Option, - ), - WithBinaryStatus( - Option, - LanguageServerName, - LanguageServerBinaryStatus, - ), - ToggleServersButton { - restart: bool, + WithHealthCheck { + server_id: LanguageServerId, + health: &'a LanguageServerHealthStatus, + binary_status: Option<&'a LanguageServerBinaryStatus>, + }, + WithBinaryStatus { + server_id: Option, + server_name: &'a LanguageServerName, + binary_status: &'a LanguageServerBinaryStatus, }, } -impl LspItem { +#[derive(Debug)] +enum LspMenuItem { + WithHealthCheck { + server_id: LanguageServerId, + health: LanguageServerHealthStatus, + binary_status: Option, + }, + WithBinaryStatus { + server_id: Option, + server_name: LanguageServerName, + binary_status: LanguageServerBinaryStatus, + }, + ToggleServersButton { + restart: bool, + }, + Header { + header: Option, + separator: bool, + }, +} + +impl LspMenuItem { fn server_info(&self) -> Option { match self { - LspItem::ToggleServersButton { .. } => None, - LspItem::WithHealthCheck( - language_server_id, - language_server_health_status, - language_server_binary_status, - ) => Some(ServerInfo { - name: language_server_health_status.name.clone(), - id: Some(*language_server_id), - health: language_server_health_status.health(), - binary_status: language_server_binary_status.clone(), - message: language_server_health_status.message(), - }), - LspItem::WithBinaryStatus( + Self::Header { .. } => None, + Self::ToggleServersButton { .. } => None, + Self::WithHealthCheck { server_id, - language_server_name, - language_server_binary_status, - ) => Some(ServerInfo { - name: language_server_name.clone(), + health, + binary_status, + .. + } => Some(ServerInfo { + name: health.name.clone(), + id: Some(*server_id), + health: health.health(), + binary_status: binary_status.clone(), + message: health.message(), + }), + Self::WithBinaryStatus { + server_id, + server_name, + binary_status, + .. + } => Some(ServerInfo { + name: server_name.clone(), id: *server_id, health: None, - binary_status: Some(language_server_binary_status.clone()), - message: language_server_binary_status.message.clone(), + binary_status: Some(binary_status.clone()), + message: binary_status.message.clone(), }), } } } impl ServerData<'_> { - fn name(&self) -> &LanguageServerName { + fn into_lsp_item(self) -> LspMenuItem { match self { - Self::WithHealthCheck(_, state, _) => &state.name, - Self::WithBinaryStatus(_, name, ..) => name, - } - } - - fn into_lsp_item(self) -> LspItem { - match self { - Self::WithHealthCheck(id, name, status) => { - LspItem::WithHealthCheck(id, name.clone(), status.cloned()) - } - Self::WithBinaryStatus(server_id, name, status) => { - LspItem::WithBinaryStatus(server_id, name.clone(), status.clone()) - } + Self::WithHealthCheck { + server_id, + health, + binary_status, + .. + } => LspMenuItem::WithHealthCheck { + server_id, + health: health.clone(), + binary_status: binary_status.cloned(), + }, + Self::WithBinaryStatus { + server_id, + server_name, + binary_status, + .. + } => LspMenuItem::WithBinaryStatus { + server_id, + server_name: server_name.clone(), + binary_status: binary_status.clone(), + }, } } } @@ -452,7 +539,6 @@ impl LspTool { let state = cx.new(|_| LanguageServerState { workspace: workspace.weak_handle(), items: Vec::new(), - other_servers_start_index: None, lsp_store: lsp_store.downgrade(), active_editor: None, language_servers: LanguageServers::default(), @@ -542,13 +628,28 @@ impl LspTool { message: proto::update_language_server::Variant::RegisteredForBuffer(update), .. } => { - self.server_state.update(cx, |state, _| { - state + self.server_state.update(cx, |state, cx| { + let Ok(worktree) = state.workspace.update(cx, |workspace, cx| { + workspace + .project() + .read(cx) + .find_worktree(Path::new(&update.buffer_abs_path), cx) + .map(|(worktree, _)| worktree.downgrade()) + }) else { + return; + }; + let entry = state .language_servers .servers_per_buffer_abs_path .entry(PathBuf::from(&update.buffer_abs_path)) - .or_default() - .insert(*language_server_id, name.clone()); + .or_insert_with(|| ServersForPath { + servers: HashMap::default(), + worktree: worktree.clone(), + }); + entry.servers.insert(*language_server_id, name.clone()); + if worktree.is_some() { + entry.worktree = worktree; + } }); updated = true; } @@ -562,94 +663,95 @@ impl LspTool { fn regenerate_items(&mut self, cx: &mut App) { self.server_state.update(cx, |state, cx| { - let editor_buffers = state + let active_worktrees = state .active_editor .as_ref() - .map(|active_editor| active_editor.editor_buffers.clone()) - .unwrap_or_default(); - let editor_buffer_paths = editor_buffers - .iter() - .filter_map(|buffer_id| { - let buffer_path = state - .lsp_store - .update(cx, |lsp_store, cx| { - Some( - project::File::from_dyn( - lsp_store - .buffer_store() - .read(cx) - .get(*buffer_id)? - .read(cx) - .file(), - )? - .abs_path(cx), - ) + .into_iter() + .flat_map(|active_editor| { + active_editor + .editor + .upgrade() + .into_iter() + .flat_map(|active_editor| { + active_editor + .read(cx) + .buffer() + .read(cx) + .all_buffers() + .into_iter() + .filter_map(|buffer| { + project::File::from_dyn(buffer.read(cx).file()) + }) + .map(|buffer_file| buffer_file.worktree.clone()) }) - .ok()??; - Some(buffer_path) }) - .collect::>(); + .collect::>(); - let mut servers_with_health_checks = HashSet::default(); - let mut server_ids_with_health_checks = HashSet::default(); - let mut buffer_servers = - Vec::with_capacity(state.language_servers.health_statuses.len()); - let mut other_servers = - Vec::with_capacity(state.language_servers.health_statuses.len()); - let buffer_server_ids = editor_buffer_paths - .iter() - .filter_map(|buffer_path| { - state - .language_servers - .servers_per_buffer_abs_path - .get(buffer_path) - }) - .flatten() - .fold(HashMap::default(), |mut acc, (server_id, name)| { - match acc.entry(*server_id) { - hash_map::Entry::Occupied(mut o) => { - let old_name: &mut Option<&LanguageServerName> = o.get_mut(); - if old_name.is_none() { - *old_name = name.as_ref(); - } - } - hash_map::Entry::Vacant(v) => { - v.insert(name.as_ref()); + let mut server_ids_to_worktrees = + HashMap::>::default(); + let mut server_names_to_worktrees = HashMap::< + LanguageServerName, + HashSet<(Entity, LanguageServerId)>, + >::default(); + for servers_for_path in state.language_servers.servers_per_buffer_abs_path.values() { + if let Some(worktree) = servers_for_path + .worktree + .as_ref() + .and_then(|worktree| worktree.upgrade()) + { + for (server_id, server_name) in &servers_for_path.servers { + server_ids_to_worktrees.insert(*server_id, worktree.clone()); + if let Some(server_name) = server_name { + server_names_to_worktrees + .entry(server_name.clone()) + .or_default() + .insert((worktree.clone(), *server_id)); } } - acc + } + } + + let mut servers_per_worktree = BTreeMap::>::new(); + let mut servers_without_worktree = Vec::::new(); + let mut servers_with_health_checks = HashSet::default(); + + for (server_id, health) in &state.language_servers.health_statuses { + let worktree = server_ids_to_worktrees.get(server_id).or_else(|| { + let worktrees = server_names_to_worktrees.get(&health.name)?; + worktrees + .iter() + .find(|(worktree, _)| active_worktrees.contains(worktree)) + .or_else(|| worktrees.iter().next()) + .map(|(worktree, _)| worktree) }); - for (server_id, server_state) in &state.language_servers.health_statuses { - let binary_status = state - .language_servers - .binary_statuses - .get(&server_state.name); - servers_with_health_checks.insert(&server_state.name); - server_ids_with_health_checks.insert(*server_id); - if buffer_server_ids.contains_key(server_id) { - buffer_servers.push(ServerData::WithHealthCheck( - *server_id, - server_state, - binary_status, - )); - } else { - other_servers.push(ServerData::WithHealthCheck( - *server_id, - server_state, - binary_status, - )); + servers_with_health_checks.insert(&health.name); + let worktree_name = + worktree.map(|worktree| SharedString::new(worktree.read(cx).root_name())); + + let binary_status = state.language_servers.binary_statuses.get(&health.name); + let server_data = ServerData::WithHealthCheck { + server_id: *server_id, + health, + binary_status, + }; + match worktree_name { + Some(worktree_name) => servers_per_worktree + .entry(worktree_name.clone()) + .or_default() + .push(server_data), + None => servers_without_worktree.push(server_data), } } let mut can_stop_all = !state.language_servers.health_statuses.is_empty(); let mut can_restart_all = state.language_servers.health_statuses.is_empty(); - for (server_name, status) in state + for (server_name, binary_status) in state .language_servers .binary_statuses .iter() .filter(|(name, _)| !servers_with_health_checks.contains(name)) { - match status.status { + match binary_status.status { BinaryStatus::None => { can_restart_all = false; can_stop_all |= true; @@ -674,52 +776,73 @@ impl LspTool { BinaryStatus::Failed { .. } => {} } - let matching_server_id = state - .language_servers - .servers_per_buffer_abs_path - .iter() - .filter(|(path, _)| editor_buffer_paths.contains(path)) - .flat_map(|(_, server_associations)| server_associations.iter()) - .find_map(|(id, name)| { - if name.as_ref() == Some(server_name) { - Some(*id) - } else { - None + match server_names_to_worktrees.get(server_name) { + Some(worktrees_for_name) => { + match worktrees_for_name + .iter() + .find(|(worktree, _)| active_worktrees.contains(worktree)) + .or_else(|| worktrees_for_name.iter().next()) + { + Some((worktree, server_id)) => { + let worktree_name = + SharedString::new(worktree.read(cx).root_name()); + servers_per_worktree + .entry(worktree_name.clone()) + .or_default() + .push(ServerData::WithBinaryStatus { + server_name, + binary_status, + server_id: Some(*server_id), + }); + } + None => servers_without_worktree.push(ServerData::WithBinaryStatus { + server_name, + binary_status, + server_id: None, + }), } - }); - if let Some(server_id) = matching_server_id { - buffer_servers.push(ServerData::WithBinaryStatus( - Some(server_id), + } + None => servers_without_worktree.push(ServerData::WithBinaryStatus { server_name, - status, - )); - } else { - other_servers.push(ServerData::WithBinaryStatus(None, server_name, status)); + binary_status, + server_id: None, + }), } } - buffer_servers.sort_by_key(|data| data.name().clone()); - other_servers.sort_by_key(|data| data.name().clone()); - - let mut other_servers_start_index = None; let mut new_lsp_items = - Vec::with_capacity(buffer_servers.len() + other_servers.len() + 1); - new_lsp_items.extend(buffer_servers.into_iter().map(ServerData::into_lsp_item)); - if !new_lsp_items.is_empty() { - other_servers_start_index = Some(new_lsp_items.len()); + Vec::with_capacity(servers_per_worktree.len() + servers_without_worktree.len() + 2); + for (worktree_name, worktree_servers) in servers_per_worktree { + if worktree_servers.is_empty() { + continue; + } + new_lsp_items.push(LspMenuItem::Header { + header: Some(worktree_name), + separator: false, + }); + new_lsp_items.extend(worktree_servers.into_iter().map(ServerData::into_lsp_item)); + } + if !servers_without_worktree.is_empty() { + new_lsp_items.push(LspMenuItem::Header { + header: Some(SharedString::from("Unknown worktree")), + separator: false, + }); + new_lsp_items.extend( + servers_without_worktree + .into_iter() + .map(ServerData::into_lsp_item), + ); } - new_lsp_items.extend(other_servers.into_iter().map(ServerData::into_lsp_item)); if !new_lsp_items.is_empty() { if can_stop_all { - new_lsp_items.push(LspItem::ToggleServersButton { restart: true }); - new_lsp_items.push(LspItem::ToggleServersButton { restart: false }); + new_lsp_items.push(LspMenuItem::ToggleServersButton { restart: true }); + new_lsp_items.push(LspMenuItem::ToggleServersButton { restart: false }); } else if can_restart_all { - new_lsp_items.push(LspItem::ToggleServersButton { restart: true }); + new_lsp_items.push(LspMenuItem::ToggleServersButton { restart: true }); } } state.items = new_lsp_items; - state.other_servers_start_index = other_servers_start_index; }); } @@ -841,10 +964,7 @@ impl StatusItemView for LspTool { impl Render for LspTool { fn render(&mut self, _: &mut Window, cx: &mut Context) -> impl ui::IntoElement { - if !cx.is_staff() - || self.server_state.read(cx).language_servers.is_empty() - || self.lsp_menu.is_none() - { + if self.server_state.read(cx).language_servers.is_empty() || self.lsp_menu.is_none() { return div(); } @@ -852,12 +972,12 @@ impl Render for LspTool { let mut has_warnings = false; let mut has_other_notifications = false; let state = self.server_state.read(cx); - for server in state.language_servers.health_statuses.values() { - if let Some(binary_status) = &state.language_servers.binary_statuses.get(&server.name) { - has_errors |= matches!(binary_status.status, BinaryStatus::Failed { .. }); - has_other_notifications |= binary_status.message.is_some(); - } + for binary_status in state.language_servers.binary_statuses.values() { + has_errors |= matches!(binary_status.status, BinaryStatus::Failed { .. }); + has_other_notifications |= binary_status.message.is_some(); + } + for server in state.language_servers.health_statuses.values() { if let Some((message, health)) = &server.health { has_other_notifications |= message.is_some(); match health { From 589af59dfe6fe5f54e37c4b99f9aa944ff864f30 Mon Sep 17 00:00:00 2001 From: Bennet Bo Fenner Date: Mon, 21 Jul 2025 20:02:28 +0200 Subject: [PATCH 0097/1052] collab: Refresh the LLM token once the terms of service have been accepted (#34833) Release Notes: - N/A --- crates/collab/src/rpc.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/crates/collab/src/rpc.rs b/crates/collab/src/rpc.rs index 7a454e11cf..924784109b 100644 --- a/crates/collab/src/rpc.rs +++ b/crates/collab/src/rpc.rs @@ -4167,6 +4167,13 @@ async fn accept_terms_of_service( response.send(proto::AcceptTermsOfServiceResponse { accepted_tos_at: accepted_tos_at.timestamp() as u64, })?; + + // When the user accepts the terms of service, we want to refresh their LLM + // token to grant access. + session + .peer + .send(session.connection_id, proto::RefreshLlmToken {})?; + Ok(()) } From da8bf9ad795312fb83eb030586c9e369852d1f38 Mon Sep 17 00:00:00 2001 From: Richard Feldman Date: Mon, 21 Jul 2025 14:32:22 -0400 Subject: [PATCH 0098/1052] Auto-retry agent errors by default (#34842) Now we explicitly carve out exceptions for which HTTP responses we do *not* retry for, and retry at least once on all others. Release Notes: - The Agent panel now automatically retries failed requests under more circumstances. --- crates/agent/src/thread.rs | 75 ++++++++++++++++++++++++-------------- 1 file changed, 47 insertions(+), 28 deletions(-) diff --git a/crates/agent/src/thread.rs b/crates/agent/src/thread.rs index 180cc88390..e50763535a 100644 --- a/crates/agent/src/thread.rs +++ b/crates/agent/src/thread.rs @@ -51,7 +51,7 @@ use util::{ResultExt as _, debug_panic, post_inc}; use uuid::Uuid; use zed_llm_client::{CompletionIntent, CompletionRequestStatus, UsageLimit}; -const MAX_RETRY_ATTEMPTS: u8 = 3; +const MAX_RETRY_ATTEMPTS: u8 = 4; const BASE_RETRY_DELAY: Duration = Duration::from_secs(5); #[derive(Debug, Clone)] @@ -2182,8 +2182,8 @@ impl Thread { // General strategy here: // - If retrying won't help (e.g. invalid API key or payload too large), return None so we don't retry at all. - // - If it's a time-based issue (e.g. server overloaded, rate limit exceeded), try multiple times with exponential backoff. - // - If it's an issue that *might* be fixed by retrying (e.g. internal server error), just retry once. + // - If it's a time-based issue (e.g. server overloaded, rate limit exceeded), retry up to 4 times with exponential backoff. + // - If it's an issue that *might* be fixed by retrying (e.g. internal server error), retry up to 3 times. match error { HttpResponseError { status_code: StatusCode::TOO_MANY_REQUESTS, @@ -2211,8 +2211,8 @@ impl Thread { } StatusCode::INTERNAL_SERVER_ERROR => Some(RetryStrategy::Fixed { delay: retry_after.unwrap_or(BASE_RETRY_DELAY), - // Internal Server Error could be anything, so only retry once. - max_attempts: 1, + // Internal Server Error could be anything, retry up to 3 times. + max_attempts: 3, }), status => { // There is no StatusCode variant for the unofficial HTTP 529 ("The service is overloaded"), @@ -2223,20 +2223,23 @@ impl Thread { max_attempts: MAX_RETRY_ATTEMPTS, }) } else { - None + Some(RetryStrategy::Fixed { + delay: retry_after.unwrap_or(BASE_RETRY_DELAY), + max_attempts: 2, + }) } } }, ApiInternalServerError { .. } => Some(RetryStrategy::Fixed { delay: BASE_RETRY_DELAY, - max_attempts: 1, + max_attempts: 3, }), ApiReadResponseError { .. } | HttpSend { .. } | DeserializeResponse { .. } | BadRequestFormat { .. } => Some(RetryStrategy::Fixed { delay: BASE_RETRY_DELAY, - max_attempts: 1, + max_attempts: 3, }), // Retrying these errors definitely shouldn't help. HttpResponseError { @@ -2244,24 +2247,31 @@ impl Thread { StatusCode::PAYLOAD_TOO_LARGE | StatusCode::FORBIDDEN | StatusCode::UNAUTHORIZED, .. } - | SerializeRequest { .. } + | AuthenticationError { .. } + | PermissionError { .. } => None, + // These errors might be transient, so retry them + SerializeRequest { .. } | BuildRequestBody { .. } | PromptTooLarge { .. } - | AuthenticationError { .. } - | PermissionError { .. } | ApiEndpointNotFound { .. } - | NoApiKey { .. } => None, + | NoApiKey { .. } => Some(RetryStrategy::Fixed { + delay: BASE_RETRY_DELAY, + max_attempts: 2, + }), // Retry all other 4xx and 5xx errors once. HttpResponseError { status_code, .. } if status_code.is_client_error() || status_code.is_server_error() => { Some(RetryStrategy::Fixed { delay: BASE_RETRY_DELAY, - max_attempts: 1, + max_attempts: 3, }) } // Conservatively assume that any other errors are non-retryable - HttpResponseError { .. } | Other(..) => None, + HttpResponseError { .. } | Other(..) => Some(RetryStrategy::Fixed { + delay: BASE_RETRY_DELAY, + max_attempts: 2, + }), } } @@ -4352,7 +4362,7 @@ fn main() {{ let retry_state = thread.retry_state.as_ref().unwrap(); assert_eq!(retry_state.attempt, 1, "Should be first retry attempt"); assert_eq!( - retry_state.max_attempts, 1, + retry_state.max_attempts, 3, "Should have correct max attempts" ); }); @@ -4368,8 +4378,9 @@ fn main() {{ if let MessageSegment::Text(text) = seg { text.contains("internal") && text.contains("Fake") - && text.contains("Retrying in") - && !text.contains("attempt") + && text.contains("Retrying") + && text.contains("attempt 1 of 3") + && text.contains("seconds") } else { false } @@ -4464,8 +4475,8 @@ fn main() {{ let retry_state = thread.retry_state.as_ref().unwrap(); assert_eq!(retry_state.attempt, 1, "Should be first retry attempt"); assert_eq!( - retry_state.max_attempts, 1, - "Internal server errors should only retry once" + retry_state.max_attempts, 3, + "Internal server errors should retry up to 3 times" ); }); @@ -4473,7 +4484,15 @@ fn main() {{ cx.executor().advance_clock(BASE_RETRY_DELAY); cx.run_until_parked(); - // Should have scheduled second retry - count retry messages + // Advance clock for second retry + cx.executor().advance_clock(BASE_RETRY_DELAY); + cx.run_until_parked(); + + // Advance clock for third retry + cx.executor().advance_clock(BASE_RETRY_DELAY); + cx.run_until_parked(); + + // Should have completed all retries - count retry messages let retry_count = thread.update(cx, |thread, _| { thread .messages @@ -4491,24 +4510,24 @@ fn main() {{ .count() }); assert_eq!( - retry_count, 1, - "Should have only one retry for internal server errors" + retry_count, 3, + "Should have 3 retries for internal server errors" ); - // For internal server errors, we only retry once and then give up - // Check that retry_state is cleared after the single retry + // For internal server errors, we retry 3 times and then give up + // Check that retry_state is cleared after all retries thread.read_with(cx, |thread, _| { assert!( thread.retry_state.is_none(), - "Retry state should be cleared after single retry" + "Retry state should be cleared after all retries" ); }); - // Verify total attempts (1 initial + 1 retry) + // Verify total attempts (1 initial + 3 retries) assert_eq!( *completion_count.lock(), - 2, - "Should have attempted once plus 1 retry" + 4, + "Should have attempted once plus 3 retries" ); } From 3e50d997ddfb5e0fa483c4010cf1b1f4de6fc93c Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Mon, 21 Jul 2025 20:44:45 +0200 Subject: [PATCH 0099/1052] agent: Fix double-lease panic when clicking on thread to jump (#34843) Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ... --- crates/agent_ui/src/active_thread.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/crates/agent_ui/src/active_thread.rs b/crates/agent_ui/src/active_thread.rs index 14e7cf05b5..bfed81f5b7 100644 --- a/crates/agent_ui/src/active_thread.rs +++ b/crates/agent_ui/src/active_thread.rs @@ -3724,8 +3724,11 @@ pub(crate) fn open_context( AgentContextHandle::Thread(thread_context) => workspace.update(cx, |workspace, cx| { if let Some(panel) = workspace.panel::(cx) { - panel.update(cx, |panel, cx| { - panel.open_thread(thread_context.thread.clone(), window, cx); + let thread = thread_context.thread.clone(); + window.defer(cx, move |window, cx| { + panel.update(cx, |panel, cx| { + panel.open_thread(thread, window, cx); + }); }); } }), @@ -3733,8 +3736,11 @@ pub(crate) fn open_context( AgentContextHandle::TextThread(text_thread_context) => { workspace.update(cx, |workspace, cx| { if let Some(panel) = workspace.panel::(cx) { - panel.update(cx, |panel, cx| { - panel.open_prompt_editor(text_thread_context.context.clone(), window, cx) + let context = text_thread_context.context.clone(); + window.defer(cx, move |window, cx| { + panel.update(cx, |panel, cx| { + panel.open_prompt_editor(context, window, cx) + }); }); } }) From 6ea09beea8b5038c6101f0fed2715acb80faa735 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Mon, 21 Jul 2025 20:51:27 +0200 Subject: [PATCH 0100/1052] terminal: Handle spaces in cwds of remote terminals (#34844) Closes #34807 Release Notes: - Fixed "Open in terminal" action not working with paths that contain spaces in SSH projects. --- crates/project/src/terminals.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/project/src/terminals.rs b/crates/project/src/terminals.rs index 3d62b4156b..8cfbdff311 100644 --- a/crates/project/src/terminals.rs +++ b/crates/project/src/terminals.rs @@ -662,7 +662,7 @@ pub fn wrap_for_ssh( format!("cd \"$HOME/{trimmed_path}\"; {env_changes} {to_run}") } else { - format!("cd {path}; {env_changes} {to_run}") + format!("cd \"{path}\"; {env_changes} {to_run}") } } else { format!("cd; {env_changes} {to_run}") From 241acbe4be9dff7320a10817faafb9fd2518049d Mon Sep 17 00:00:00 2001 From: Anthony Eid <56899983+Anthony-Eid@users.noreply.github.com> Date: Mon, 21 Jul 2025 15:02:02 -0400 Subject: [PATCH 0101/1052] Stop onboarding page from showing up instead of welcome page (#34845) This is from PR #34723 where I was working on developing the onboarding page, but I forgot to switch the first page back to our current version. Release Notes: - N/A --- crates/zed/src/main.rs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/crates/zed/src/main.rs b/crates/zed/src/main.rs index 9d85923ca2..a9d3d63381 100644 --- a/crates/zed/src/main.rs +++ b/crates/zed/src/main.rs @@ -24,7 +24,6 @@ use reqwest_client::ReqwestClient; use assets::Assets; use node_runtime::{NodeBinaryOptions, NodeRuntime}; -use onboarding::show_onboarding_view; use parking_lot::Mutex; use project::project_settings::ProjectSettings; use recent_projects::{SshSettings, open_ssh_project}; @@ -1041,10 +1040,6 @@ async fn restore_or_create_workspace(app_state: Arc, cx: &mut AsyncApp ); } } - } else if matches!(KEY_VALUE_STORE.read_kvp(FIRST_OPEN), Ok(None)) { - let state = app_state.clone(); - cx.update(|cx| show_onboarding_view(state, cx))?.await?; - // cx.update(|cx| show_welcome_view(app_state, cx))?.await?; } else if matches!(KEY_VALUE_STORE.read_kvp(FIRST_OPEN), Ok(None)) { cx.update(|cx| show_welcome_view(app_state, cx))?.await?; } else { From 1a1715766f0f5af9d1ae5df23d58cb1763bd886d Mon Sep 17 00:00:00 2001 From: Ben Kunkle Date: Mon, 21 Jul 2025 14:16:47 -0500 Subject: [PATCH 0102/1052] Fix enter to select model in agent panel (#34846) Broken by #34664 Release Notes: - N/A *or* Added/Fixed/Improved ... --- assets/keymaps/default-linux.json | 4 ++-- assets/keymaps/default-macos.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/assets/keymaps/default-linux.json b/assets/keymaps/default-linux.json index 6aba27fec8..9585bcdecd 100644 --- a/assets/keymaps/default-linux.json +++ b/assets/keymaps/default-linux.json @@ -277,7 +277,7 @@ } }, { - "context": "MessageEditor > Editor && !use_modifier_to_send", + "context": "MessageEditor && !Picker > Editor && !use_modifier_to_send", "bindings": { "enter": "agent::Chat", "ctrl-enter": "agent::ChatWithFollow", @@ -288,7 +288,7 @@ } }, { - "context": "MessageEditor > Editor && use_modifier_to_send", + "context": "MessageEditor && !Picker > Editor && use_modifier_to_send", "bindings": { "ctrl-enter": "agent::Chat", "enter": "editor::Newline", diff --git a/assets/keymaps/default-macos.json b/assets/keymaps/default-macos.json index ba903c0782..9a72bc912c 100644 --- a/assets/keymaps/default-macos.json +++ b/assets/keymaps/default-macos.json @@ -318,7 +318,7 @@ } }, { - "context": "MessageEditor > Editor && !use_modifier_to_send", + "context": "MessageEditor && !Picker > Editor && !use_modifier_to_send", "use_key_equivalents": true, "bindings": { "enter": "agent::Chat", @@ -330,7 +330,7 @@ } }, { - "context": "MessageEditor > Editor && use_modifier_to_send", + "context": "MessageEditor && !Picker > Editor && use_modifier_to_send", "use_key_equivalents": true, "bindings": { "cmd-enter": "agent::Chat", From 8eca7f32e2041c648c3c9b0ac1e8b686fec4e5df Mon Sep 17 00:00:00 2001 From: Peter Tripp Date: Mon, 21 Jul 2025 16:09:02 -0400 Subject: [PATCH 0103/1052] Fix for vim bindings in Pickers on Linux (#34840) Closes: https://github.com/zed-industries/zed/issues/34780 Also relocated undo/redo selection in the keymap (no-op) as they are from Sublime, not VSCode. Release Notes: - vim: Fixed an issue so `ctrl-w` / `ctrl-h` and `ctrl-u` work in pickers on Linux when Vim mode is enabled. --- assets/keymaps/default-linux.json | 4 ++-- assets/keymaps/default-macos.json | 4 ++-- assets/keymaps/vim.json | 8 ++++++++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/assets/keymaps/default-linux.json b/assets/keymaps/default-linux.json index 9585bcdecd..377a26242b 100644 --- a/assets/keymaps/default-linux.json +++ b/assets/keymaps/default-linux.json @@ -484,8 +484,6 @@ "ctrl-k ctrl-shift-d": ["editor::SelectPrevious", { "replace_newest": true }], // editor.action.moveSelectionToPreviousFindMatch "ctrl-k ctrl-i": "editor::Hover", "ctrl-/": ["editor::ToggleComments", { "advance_downwards": false }], - "ctrl-u": "editor::UndoSelection", - "ctrl-shift-u": "editor::RedoSelection", "f8": ["editor::GoToDiagnostic", { "severity": { "min": "hint", "max": "error" } }], "shift-f8": ["editor::GoToPreviousDiagnostic", { "severity": { "min": "hint", "max": "error" } }], "f2": "editor::Rename", @@ -663,6 +661,8 @@ { "context": "Editor", "bindings": { + "ctrl-u": "editor::UndoSelection", + "ctrl-shift-u": "editor::RedoSelection", "ctrl-shift-j": "editor::JoinLines", "ctrl-alt-backspace": "editor::DeleteToPreviousSubwordStart", "ctrl-alt-h": "editor::DeleteToPreviousSubwordStart", diff --git a/assets/keymaps/default-macos.json b/assets/keymaps/default-macos.json index 9a72bc912c..712d73b8ec 100644 --- a/assets/keymaps/default-macos.json +++ b/assets/keymaps/default-macos.json @@ -538,8 +538,6 @@ "cmd-k ctrl-cmd-d": ["editor::SelectPrevious", { "replace_newest": true }], // editor.action.moveSelectionToPreviousFindMatch "cmd-k cmd-i": "editor::Hover", "cmd-/": ["editor::ToggleComments", { "advance_downwards": false }], - "cmd-u": "editor::UndoSelection", - "cmd-shift-u": "editor::RedoSelection", "f8": ["editor::GoToDiagnostic", { "severity": { "min": "hint", "max": "error" } }], "shift-f8": ["editor::GoToPreviousDiagnostic", { "severity": { "min": "hint", "max": "error" } }], "f2": "editor::Rename", @@ -726,6 +724,8 @@ "context": "Editor", "use_key_equivalents": true, "bindings": { + "cmd-u": "editor::UndoSelection", + "cmd-shift-u": "editor::RedoSelection", "ctrl-j": "editor::JoinLines", "ctrl-alt-backspace": "editor::DeleteToPreviousSubwordStart", "ctrl-alt-h": "editor::DeleteToPreviousSubwordStart", diff --git a/assets/keymaps/vim.json b/assets/keymaps/vim.json index 2ef282c21e..04e6b0bcd4 100644 --- a/assets/keymaps/vim.json +++ b/assets/keymaps/vim.json @@ -858,6 +858,14 @@ "shift-n": null } }, + { + "context": "Picker > Editor", + "bindings": { + "ctrl-h": "editor::Backspace", + "ctrl-u": "editor::DeleteToBeginningOfLine", + "ctrl-w": "editor::DeleteToPreviousWordStart" + } + }, { "context": "GitCommit > Editor && VimControl && vim_mode == normal", "bindings": { From 5b3e37181240d8ed1ef8e04aa0593c7ca5f46a6c Mon Sep 17 00:00:00 2001 From: Finn Evers Date: Mon, 21 Jul 2025 22:24:33 +0200 Subject: [PATCH 0104/1052] gpui: Round `scroll_max` to two decimal places (#34832) Follow up to #31836 After enabling rounding in the Taffy layout engine, we frequently run into cases where the bounds produced by Taffy and ours slightly differ after 5 or more decimal places. This leads to cases where containers become scrollable for less than 0.0000x Pixels. In case this happens for e.g. hover popovers, we render a scrollbar due to the container being technically scrollable, even though the scroll amount here will in practice never be visible. This change fixes this by rounding the `scroll_max` by which we clamp the current scroll position to two decimal places. We don't benefit from the additional floating point precision here at all and it stops such containers from becoming scrollable altogether. Furthermore, we now store the `scroll_max` instead of the `padded_content_size` as the former gives a much better idea on whether the corresponding container is scrollable or not. | `main` | After these changes | | -- | -- | | main | scroll_max_rounded | Release Notes: - Fixed an issue where scrollbars would appear in containers where no scrolling was possible. --- crates/gpui/src/elements/div.rs | 29 ++++++++++++----- crates/gpui/src/elements/list.rs | 6 ++-- .../terminal_view/src/terminal_scrollbar.rs | 11 +++++-- crates/ui/src/components/scrollbar.rs | 31 ++++++++++--------- crates/workspace/src/pane.rs | 11 +++---- 5 files changed, 55 insertions(+), 33 deletions(-) diff --git a/crates/gpui/src/elements/div.rs b/crates/gpui/src/elements/div.rs index ed1666c530..4655c92409 100644 --- a/crates/gpui/src/elements/div.rs +++ b/crates/gpui/src/elements/div.rs @@ -1664,6 +1664,11 @@ impl Interactivity { window: &mut Window, _cx: &mut App, ) -> Point { + fn round_to_two_decimals(pixels: Pixels) -> Pixels { + const ROUNDING_FACTOR: f32 = 100.0; + (pixels * ROUNDING_FACTOR).round() / ROUNDING_FACTOR + } + if let Some(scroll_offset) = self.scroll_offset.as_ref() { let mut scroll_to_bottom = false; let mut tracked_scroll_handle = self @@ -1678,8 +1683,16 @@ impl Interactivity { let rem_size = window.rem_size(); let padding = style.padding.to_pixels(bounds.size.into(), rem_size); let padding_size = size(padding.left + padding.right, padding.top + padding.bottom); + // The floating point values produced by Taffy and ours often vary + // slightly after ~5 decimal places. This can lead to cases where after + // subtracting these, the container becomes scrollable for less than + // 0.00000x pixels. As we generally don't benefit from a precision that + // high for the maximum scroll, we round the scroll max to 2 decimal + // places here. let padded_content_size = self.content_size + padding_size; - let scroll_max = (padded_content_size - bounds.size).max(&Size::default()); + let scroll_max = (padded_content_size - bounds.size) + .map(round_to_two_decimals) + .max(&Default::default()); // Clamp scroll offset in case scroll max is smaller now (e.g., if children // were removed or the bounds became larger). let mut scroll_offset = scroll_offset.borrow_mut(); @@ -1692,7 +1705,7 @@ impl Interactivity { } if let Some(mut scroll_handle_state) = tracked_scroll_handle { - scroll_handle_state.padded_content_size = padded_content_size; + scroll_handle_state.max_offset = scroll_max; } *scroll_offset @@ -2936,7 +2949,7 @@ impl ScrollAnchor { struct ScrollHandleState { offset: Rc>>, bounds: Bounds, - padded_content_size: Size, + max_offset: Size, child_bounds: Vec>, scroll_to_bottom: bool, overflow: Point, @@ -2965,6 +2978,11 @@ impl ScrollHandle { *self.0.borrow().offset.borrow() } + /// Get the maximum scroll offset. + pub fn max_offset(&self) -> Size { + self.0.borrow().max_offset + } + /// Get the top child that's scrolled into view. pub fn top_item(&self) -> usize { let state = self.0.borrow(); @@ -2999,11 +3017,6 @@ impl ScrollHandle { self.0.borrow().child_bounds.get(ix).cloned() } - /// Get the size of the content with padding of the container. - pub fn padded_content_size(&self) -> Size { - self.0.borrow().padded_content_size - } - /// scroll_to_item scrolls the minimal amount to ensure that the child is /// fully visible pub fn scroll_to_item(&self, ix: usize) { diff --git a/crates/gpui/src/elements/list.rs b/crates/gpui/src/elements/list.rs index 35a3b622b2..f24d38794f 100644 --- a/crates/gpui/src/elements/list.rs +++ b/crates/gpui/src/elements/list.rs @@ -411,9 +411,9 @@ impl ListState { self.0.borrow_mut().set_offset_from_scrollbar(point); } - /// Returns the size of items we have measured. + /// Returns the maximum scroll offset according to the items we have measured. /// This value remains constant while dragging to prevent the scrollbar from moving away unexpectedly. - pub fn content_size_for_scrollbar(&self) -> Size { + pub fn max_offset_for_scrollbar(&self) -> Size { let state = self.0.borrow(); let bounds = state.last_layout_bounds.unwrap_or_default(); @@ -421,7 +421,7 @@ impl ListState { .scrollbar_drag_start_height .unwrap_or_else(|| state.items.summary().height); - Size::new(bounds.size.width, height) + Size::new(Pixels::ZERO, Pixels::ZERO.max(height - bounds.size.height)) } /// Returns the current scroll offset adjusted for the scrollbar diff --git a/crates/terminal_view/src/terminal_scrollbar.rs b/crates/terminal_view/src/terminal_scrollbar.rs index 18e135be2e..c8565a42be 100644 --- a/crates/terminal_view/src/terminal_scrollbar.rs +++ b/crates/terminal_view/src/terminal_scrollbar.rs @@ -46,9 +46,16 @@ impl TerminalScrollHandle { } impl ScrollableHandle for TerminalScrollHandle { - fn content_size(&self) -> Size { + fn max_offset(&self) -> Size { let state = self.state.borrow(); - size(Pixels::ZERO, state.total_lines as f32 * state.line_height) + size( + Pixels::ZERO, + state + .total_lines + .checked_sub(state.viewport_lines) + .unwrap_or(0) as f32 + * state.line_height, + ) } fn offset(&self) -> Point { diff --git a/crates/ui/src/components/scrollbar.rs b/crates/ui/src/components/scrollbar.rs index 2a8c4885ac..17ab2e788f 100644 --- a/crates/ui/src/components/scrollbar.rs +++ b/crates/ui/src/components/scrollbar.rs @@ -29,8 +29,8 @@ impl ThumbState { } impl ScrollableHandle for UniformListScrollHandle { - fn content_size(&self) -> Size { - self.0.borrow().base_handle.content_size() + fn max_offset(&self) -> Size { + self.0.borrow().base_handle.max_offset() } fn set_offset(&self, point: Point) { @@ -47,8 +47,8 @@ impl ScrollableHandle for UniformListScrollHandle { } impl ScrollableHandle for ListState { - fn content_size(&self) -> Size { - self.content_size_for_scrollbar() + fn max_offset(&self) -> Size { + self.max_offset_for_scrollbar() } fn set_offset(&self, point: Point) { @@ -73,8 +73,8 @@ impl ScrollableHandle for ListState { } impl ScrollableHandle for ScrollHandle { - fn content_size(&self) -> Size { - self.padded_content_size() + fn max_offset(&self) -> Size { + self.max_offset() } fn set_offset(&self, point: Point) { @@ -91,7 +91,10 @@ impl ScrollableHandle for ScrollHandle { } pub trait ScrollableHandle: Any + Debug { - fn content_size(&self) -> Size; + fn content_size(&self) -> Size { + self.viewport().size + self.max_offset() + } + fn max_offset(&self) -> Size; fn set_offset(&self, point: Point); fn offset(&self) -> Point; fn viewport(&self) -> Bounds; @@ -149,17 +152,17 @@ impl ScrollbarState { fn thumb_range(&self, axis: ScrollbarAxis) -> Option> { const MINIMUM_THUMB_SIZE: Pixels = px(25.); - let content_size = self.scroll_handle.content_size().along(axis); + let max_offset = self.scroll_handle.max_offset().along(axis); let viewport_size = self.scroll_handle.viewport().size.along(axis); - if content_size.is_zero() || viewport_size.is_zero() || content_size <= viewport_size { + if max_offset.is_zero() || viewport_size.is_zero() { return None; } + let content_size = viewport_size + max_offset; let visible_percentage = viewport_size / content_size; let thumb_size = MINIMUM_THUMB_SIZE.max(viewport_size * visible_percentage); if thumb_size > viewport_size { return None; } - let max_offset = content_size - viewport_size; let current_offset = self .scroll_handle .offset() @@ -307,7 +310,7 @@ impl Element for Scrollbar { let compute_click_offset = move |event_position: Point, - item_size: Size, + max_offset: Size, event_type: ScrollbarMouseEvent| { let viewport_size = padded_bounds.size.along(axis); @@ -323,7 +326,7 @@ impl Element for Scrollbar { - thumb_offset) .clamp(px(0.), viewport_size - thumb_size); - let max_offset = (item_size.along(axis) - viewport_size).max(px(0.)); + let max_offset = max_offset.along(axis); let percentage = if viewport_size > thumb_size { thumb_start / (viewport_size - thumb_size) } else { @@ -347,7 +350,7 @@ impl Element for Scrollbar { } else { let click_offset = compute_click_offset( event.position, - scroll.content_size(), + scroll.max_offset(), ScrollbarMouseEvent::GutterClick, ); scroll.set_offset(scroll.offset().apply_along(axis, |_| click_offset)); @@ -373,7 +376,7 @@ impl Element for Scrollbar { ThumbState::Dragging(drag_state) if event.dragging() => { let drag_offset = compute_click_offset( event.position, - scroll.content_size(), + scroll.max_offset(), ScrollbarMouseEvent::ThumbDrag(drag_state), ); scroll.set_offset(scroll.offset().apply_along(axis, |_| drag_offset)); diff --git a/crates/workspace/src/pane.rs b/crates/workspace/src/pane.rs index 7cc10c27f7..e57b103c61 100644 --- a/crates/workspace/src/pane.rs +++ b/crates/workspace/src/pane.rs @@ -18,7 +18,7 @@ use futures::{StreamExt, stream::FuturesUnordered}; use gpui::{ Action, AnyElement, App, AsyncWindowContext, ClickEvent, ClipboardItem, Context, Corner, Div, DragMoveEvent, Entity, EntityId, EventEmitter, ExternalPaths, FocusHandle, FocusOutEvent, - Focusable, KeyContext, MouseButton, MouseDownEvent, NavigationDirection, Pixels, Point, + Focusable, IsZero, KeyContext, MouseButton, MouseDownEvent, NavigationDirection, Pixels, Point, PromptLevel, Render, ScrollHandle, Subscription, Task, WeakEntity, WeakFocusHandle, Window, actions, anchored, deferred, prelude::*, }; @@ -46,8 +46,8 @@ use theme::ThemeSettings; use ui::{ ButtonSize, Color, ContextMenu, ContextMenuEntry, ContextMenuItem, DecoratedIcon, IconButton, IconButtonShape, IconDecoration, IconDecorationKind, IconName, IconSize, Indicator, Label, - PopoverMenu, PopoverMenuHandle, ScrollableHandle, Tab, TabBar, TabPosition, Tooltip, - prelude::*, right_click_menu, + PopoverMenu, PopoverMenuHandle, Tab, TabBar, TabPosition, Tooltip, prelude::*, + right_click_menu, }; use util::{ResultExt, debug_panic, maybe, truncate_and_remove_front}; @@ -2865,10 +2865,9 @@ impl Pane { } }) .children(pinned_tabs.len().ne(&0).then(|| { - let content_width = self.tab_bar_scroll_handle.content_size().width; - let viewport_width = self.tab_bar_scroll_handle.viewport().size.width; + let max_scroll = self.tab_bar_scroll_handle.max_offset().width; // We need to check both because offset returns delta values even when the scroll handle is not scrollable - let is_scrollable = content_width > viewport_width; + let is_scrollable = !max_scroll.is_zero(); let is_scrolled = self.tab_bar_scroll_handle.offset().x < px(0.); let has_active_unpinned_tab = self.active_item_index >= self.pinned_tab_count; h_flex() From 722a05bc21aaa451908e208c674a45f0b1139b1c Mon Sep 17 00:00:00 2001 From: Agus Zubiaga Date: Mon, 21 Jul 2025 17:33:59 -0300 Subject: [PATCH 0105/1052] Wire up stop button in claude threads (#34839) Release Notes: - N/A --------- Co-authored-by: Ben Brandt --- Cargo.lock | 3 + crates/agent_servers/Cargo.toml | 5 + crates/agent_servers/src/claude.rs | 189 +++++++++++++++++++++-------- 3 files changed, 145 insertions(+), 52 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4537d440cc..ad6c40bcf2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -150,7 +150,9 @@ dependencies = [ "indoc", "itertools 0.14.0", "language", + "libc", "log", + "nix 0.29.0", "paths", "project", "schemars", @@ -162,6 +164,7 @@ dependencies = [ "tempfile", "ui", "util", + "uuid", "watch", "which 6.0.3", "workspace-hack", diff --git a/crates/agent_servers/Cargo.toml b/crates/agent_servers/Cargo.toml index f3df25f709..4714245b94 100644 --- a/crates/agent_servers/Cargo.toml +++ b/crates/agent_servers/Cargo.toml @@ -37,10 +37,15 @@ strum.workspace = true tempfile.workspace = true ui.workspace = true util.workspace = true +uuid.workspace = true watch.workspace = true which.workspace = true workspace-hack.workspace = true +[target.'cfg(unix)'.dependencies] +libc.workspace = true +nix.workspace = true + [dev-dependencies] env_logger.workspace = true language.workspace = true diff --git a/crates/agent_servers/src/claude.rs b/crates/agent_servers/src/claude.rs index 8b3d93a122..835efbd655 100644 --- a/crates/agent_servers/src/claude.rs +++ b/crates/agent_servers/src/claude.rs @@ -4,10 +4,13 @@ mod tools; use collections::HashMap; use project::Project; use settings::SettingsStore; +use smol::process::Child; use std::cell::RefCell; use std::fmt::Display; use std::path::Path; +use std::pin::pin; use std::rc::Rc; +use uuid::Uuid; use agentic_coding_protocol::{ self as acp, AnyAgentRequest, AnyAgentResult, Client, ProtocolVersion, @@ -16,7 +19,7 @@ use agentic_coding_protocol::{ use anyhow::{Result, anyhow}; use futures::channel::oneshot; use futures::future::LocalBoxFuture; -use futures::{AsyncBufReadExt, AsyncWriteExt}; +use futures::{AsyncBufReadExt, AsyncWriteExt, SinkExt}; use futures::{ AsyncRead, AsyncWrite, FutureExt, StreamExt, channel::mpsc::{self, UnboundedReceiver, UnboundedSender}, @@ -69,13 +72,12 @@ impl AgentServer for ClaudeCode { let (mut delegate_tx, delegate_rx) = watch::channel(None); let tool_id_map = Rc::new(RefCell::new(HashMap::default())); - let permission_mcp_server = - ClaudeMcpServer::new(delegate_rx, tool_id_map.clone(), cx).await?; + let mcp_server = ClaudeMcpServer::new(delegate_rx, tool_id_map.clone(), cx).await?; let mut mcp_servers = HashMap::default(); mcp_servers.insert( mcp_server::SERVER_NAME.to_string(), - permission_mcp_server.server_config()?, + mcp_server.server_config()?, ); let mcp_config = McpConfig { mcp_servers }; @@ -98,50 +100,58 @@ impl AgentServer for ClaudeCode { anyhow::bail!("Failed to find claude binary"); }; - let mut child = util::command::new_smol_command(&command.path) - .args( - [ - "--input-format", - "stream-json", - "--output-format", - "stream-json", - "--print", - "--verbose", - "--mcp-config", - mcp_config_path.to_string_lossy().as_ref(), - "--permission-prompt-tool", - &format!( - "mcp__{}__{}", - mcp_server::SERVER_NAME, - mcp_server::PERMISSION_TOOL - ), - "--allowedTools", - "mcp__zed__Read,mcp__zed__Edit", - "--disallowedTools", - "Read,Edit", - ] - .into_iter() - .chain(command.args.iter().map(|arg| arg.as_str())), - ) - .current_dir(root_dir) - .stdin(std::process::Stdio::piped()) - .stdout(std::process::Stdio::piped()) - .stderr(std::process::Stdio::inherit()) - .kill_on_drop(true) - .spawn()?; - - let stdin = child.stdin.take().unwrap(); - let stdout = child.stdout.take().unwrap(); - let (incoming_message_tx, mut incoming_message_rx) = mpsc::unbounded(); let (outgoing_tx, outgoing_rx) = mpsc::unbounded(); + let (cancel_tx, mut cancel_rx) = mpsc::unbounded::>>(); + + let session_id = Uuid::new_v4(); + + log::trace!("Starting session with id: {}", session_id); - let io_task = - ClaudeAgentConnection::handle_io(outgoing_rx, incoming_message_tx, stdin, stdout); cx.background_spawn(async move { - io_task.await.log_err(); + let mut outgoing_rx = Some(outgoing_rx); + let mut mode = ClaudeSessionMode::Start; + + loop { + let mut child = + spawn_claude(&command, mode, session_id, &mcp_config_path, &root_dir) + .await?; + mode = ClaudeSessionMode::Resume; + + let pid = child.id(); + log::trace!("Spawned (pid: {})", pid); + + let mut io_fut = pin!( + ClaudeAgentConnection::handle_io( + outgoing_rx.take().unwrap(), + incoming_message_tx.clone(), + child.stdin.take().unwrap(), + child.stdout.take().unwrap(), + ) + .fuse() + ); + + select_biased! { + done_tx = cancel_rx.next() => { + if let Some(done_tx) = done_tx { + log::trace!("Interrupted (pid: {})", pid); + let result = send_interrupt(pid as i32); + outgoing_rx.replace(io_fut.await?); + done_tx.send(result).log_err(); + continue; + } + } + result = io_fut => { + result?; + } + } + + log::trace!("Stopped (pid: {})", pid); + break; + } + drop(mcp_config_path); - drop(child); + anyhow::Ok(()) }) .detach(); @@ -171,17 +181,32 @@ impl AgentServer for ClaudeCode { delegate, outgoing_tx, end_turn_tx, + cancel_tx, + session_id, _handler_task: handler_task, _mcp_server: None, }; - connection._mcp_server = Some(permission_mcp_server); + connection._mcp_server = Some(mcp_server); acp_thread::AcpThread::new(connection, title, None, project.clone(), cx) }) }) } } +#[cfg(unix)] +fn send_interrupt(pid: libc::pid_t) -> anyhow::Result<()> { + let pid = nix::unistd::Pid::from_raw(pid); + + nix::sys::signal::kill(pid, nix::sys::signal::SIGINT) + .map_err(|e| anyhow!("Failed to interrupt process: {}", e)) +} + +#[cfg(windows)] +fn send_interrupt(_pid: i32) -> anyhow::Result<()> { + panic!("Cancel not implemented on Windows") +} + impl AgentConnection for ClaudeAgentConnection { /// Send a request to the agent and wait for a response. fn request_any( @@ -191,6 +216,8 @@ impl AgentConnection for ClaudeAgentConnection { let delegate = self.delegate.clone(); let end_turn_tx = self.end_turn_tx.clone(); let outgoing_tx = self.outgoing_tx.clone(); + let mut cancel_tx = self.cancel_tx.clone(); + let session_id = self.session_id; async move { match params { // todo: consider sending an empty request so we get the init response? @@ -229,26 +256,83 @@ impl AgentConnection for ClaudeAgentConnection { stop_sequence: None, usage: None, }, - session_id: None, + session_id: Some(session_id), })?; rx.await??; Ok(AnyAgentResult::SendUserMessageResponse( acp::SendUserMessageResponse, )) } - AnyAgentRequest::CancelSendMessageParams(_) => Ok( - AnyAgentResult::CancelSendMessageResponse(acp::CancelSendMessageResponse), - ), + AnyAgentRequest::CancelSendMessageParams(_) => { + let (done_tx, done_rx) = oneshot::channel(); + cancel_tx.send(done_tx).await?; + done_rx.await??; + + Ok(AnyAgentResult::CancelSendMessageResponse( + acp::CancelSendMessageResponse, + )) + } } } .boxed_local() } } +#[derive(Clone, Copy)] +enum ClaudeSessionMode { + Start, + Resume, +} + +async fn spawn_claude( + command: &AgentServerCommand, + mode: ClaudeSessionMode, + session_id: Uuid, + mcp_config_path: &Path, + root_dir: &Path, +) -> Result { + let child = util::command::new_smol_command(&command.path) + .args([ + "--input-format", + "stream-json", + "--output-format", + "stream-json", + "--print", + "--verbose", + "--mcp-config", + mcp_config_path.to_string_lossy().as_ref(), + "--permission-prompt-tool", + &format!( + "mcp__{}__{}", + mcp_server::SERVER_NAME, + mcp_server::PERMISSION_TOOL + ), + "--allowedTools", + "mcp__zed__Read,mcp__zed__Edit", + "--disallowedTools", + "Read,Edit", + ]) + .args(match mode { + ClaudeSessionMode::Start => ["--session-id".to_string(), session_id.to_string()], + ClaudeSessionMode::Resume => ["--resume".to_string(), session_id.to_string()], + }) + .args(command.args.iter().map(|arg| arg.as_str())) + .current_dir(root_dir) + .stdin(std::process::Stdio::piped()) + .stdout(std::process::Stdio::piped()) + .stderr(std::process::Stdio::inherit()) + .kill_on_drop(true) + .spawn()?; + + Ok(child) +} + struct ClaudeAgentConnection { delegate: AcpClientDelegate, + session_id: Uuid, outgoing_tx: UnboundedSender, end_turn_tx: Rc>>>>, + cancel_tx: UnboundedSender>>, _mcp_server: Option, _handler_task: Task<()>, } @@ -350,7 +434,7 @@ impl ClaudeAgentConnection { incoming_tx: UnboundedSender, mut outgoing_bytes: impl Unpin + AsyncWrite, incoming_bytes: impl Unpin + AsyncRead, - ) -> Result<()> { + ) -> Result> { let mut output_reader = BufReader::new(incoming_bytes); let mut outgoing_line = Vec::new(); let mut incoming_line = String::new(); @@ -384,7 +468,8 @@ impl ClaudeAgentConnection { } } } - Ok(()) + + Ok(outgoing_rx) } } @@ -507,14 +592,14 @@ enum SdkMessage { Assistant { message: Message, // from Anthropic SDK #[serde(skip_serializing_if = "Option::is_none")] - session_id: Option, + session_id: Option, }, // A user message User { message: Message, // from Anthropic SDK #[serde(skip_serializing_if = "Option::is_none")] - session_id: Option, + session_id: Option, }, // Emitted as the last message in a conversation From 19ab1eb79258759e3ee0fef7017d259345b912e6 Mon Sep 17 00:00:00 2001 From: Sergei Surovtsev <97428129+stillonearth@users.noreply.github.com> Date: Tue, 22 Jul 2025 02:16:44 +0300 Subject: [PATCH 0106/1052] Fix an issue where xkb defined hotkeys for arrows would not work (#34823) Addresses https://github.com/zed-industries/zed/pull/34053#issuecomment-3096447601 where custom-defined arrows would stop working in Zed. How to reproduce: 1. Define custom keyboard layout ```bash cd /usr/share/X11/xkb/symbols/ sudo nano mykbd ``` ``` default partial alphanumeric_keys xkb_symbols "custom" { name[Group1]= "Custom Layout"; key { [ q, Q, Escape, Escape ] }; key { [ w, W, Home, Home ] }; key { [ e, E, Up, Up ] }; key { [ r, R, End, End ] }; key { [ t, T, Tab, Tab ] }; key { [ a, A, Return, Return ] }; key { [ s, S, Left, Left ] }; key { [ d, D, Down, Down ] }; key { [ f, F, Right, Right ] }; key { [ g, G, BackSpace, BackSpace ] }; // include a base layout to inherit the rest include "us(basic)" }; ``` 2. Activate custom layout with win-key as AltGr ```bash setxkbmap mykbd -variant custom -option lv3:win_switch ``` 3. Now Win-S should produce left arrow, Win-F right arrow 4. Test whether it works in Zed Release Notes: - linux: xkb-defined hotkeys for arrow keys should behave as expected. --------- Co-authored-by: Conrad Irwin --- crates/gpui/src/platform/linux/platform.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/crates/gpui/src/platform/linux/platform.rs b/crates/gpui/src/platform/linux/platform.rs index a52841e1af..d65118e994 100644 --- a/crates/gpui/src/platform/linux/platform.rs +++ b/crates/gpui/src/platform/linux/platform.rs @@ -828,6 +828,13 @@ impl crate::Keystroke { Keysym::Delete => "delete".to_owned(), Keysym::Escape => "escape".to_owned(), + Keysym::Left => "left".to_owned(), + Keysym::Right => "right".to_owned(), + Keysym::Up => "up".to_owned(), + Keysym::Down => "down".to_owned(), + Keysym::Home => "home".to_owned(), + Keysym::End => "end".to_owned(), + _ => { let name = xkb::keysym_get_name(key_sym).to_lowercase(); if key_sym.is_keypad_key() { From 8515487bbce339414940dd2deeac8e962f14118d Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Mon, 21 Jul 2025 20:39:29 -0300 Subject: [PATCH 0107/1052] agent: Add new thread start buttons to the empty state (#34829) Release Notes: - N/A --- assets/icons/ai_claude.svg | 4 +- assets/icons/ai_gemini.svg | 4 +- assets/icons/new_from_summary.svg | 7 + assets/icons/new_text_thread.svg | 7 + assets/icons/new_thread.svg | 3 + crates/agent_ui/src/agent_panel.rs | 230 +++++++++++++++++--- crates/agent_ui/src/ui.rs | 2 + crates/agent_ui/src/ui/new_thread_button.rs | 75 +++++++ crates/icons/src/icons.rs | 3 + 9 files changed, 297 insertions(+), 38 deletions(-) create mode 100644 assets/icons/new_from_summary.svg create mode 100644 assets/icons/new_text_thread.svg create mode 100644 assets/icons/new_thread.svg create mode 100644 crates/agent_ui/src/ui/new_thread_button.rs diff --git a/assets/icons/ai_claude.svg b/assets/icons/ai_claude.svg index 423a963eba..a3e3e1f4cd 100644 --- a/assets/icons/ai_claude.svg +++ b/assets/icons/ai_claude.svg @@ -1,3 +1,3 @@ - - + + diff --git a/assets/icons/ai_gemini.svg b/assets/icons/ai_gemini.svg index 60197dc4ad..bdde44ed24 100644 --- a/assets/icons/ai_gemini.svg +++ b/assets/icons/ai_gemini.svg @@ -1 +1,3 @@ -Google Gemini + + + diff --git a/assets/icons/new_from_summary.svg b/assets/icons/new_from_summary.svg new file mode 100644 index 0000000000..3b61ca51a0 --- /dev/null +++ b/assets/icons/new_from_summary.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/icons/new_text_thread.svg b/assets/icons/new_text_thread.svg new file mode 100644 index 0000000000..75afa934a0 --- /dev/null +++ b/assets/icons/new_text_thread.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/icons/new_thread.svg b/assets/icons/new_thread.svg new file mode 100644 index 0000000000..8c2596a4c9 --- /dev/null +++ b/assets/icons/new_thread.svg @@ -0,0 +1,3 @@ + + + diff --git a/crates/agent_ui/src/agent_panel.rs b/crates/agent_ui/src/agent_panel.rs index 36851e44ba..57d16d6e59 100644 --- a/crates/agent_ui/src/agent_panel.rs +++ b/crates/agent_ui/src/agent_panel.rs @@ -12,6 +12,7 @@ use serde::{Deserialize, Serialize}; use crate::NewExternalAgentThread; use crate::agent_diff::AgentDiffThread; use crate::message_editor::{MAX_EDITOR_LINES, MIN_EDITOR_LINES}; +use crate::ui::NewThreadButton; use crate::{ AddContextServer, AgentDiffPane, ContinueThread, ContinueWithBurnMode, DeleteRecentlyOpenThread, ExpandMessageEditor, Follow, InlineAssistant, NewTextThread, @@ -66,8 +67,8 @@ use theme::ThemeSettings; use time::UtcOffset; use ui::utils::WithRemSize; use ui::{ - Banner, Callout, ContextMenu, ElevationIndex, KeyBinding, PopoverMenu, PopoverMenuHandle, - ProgressBar, Tab, Tooltip, prelude::*, + Banner, Callout, ContextMenu, ContextMenuEntry, ElevationIndex, KeyBinding, PopoverMenu, + PopoverMenuHandle, ProgressBar, Tab, Tooltip, prelude::*, }; use util::ResultExt as _; use workspace::{ @@ -1906,16 +1907,39 @@ impl AgentPanel { .when(cx.has_flag::(), |this| { this.header("Zed Agent") }) - .action("New Thread", NewThread::default().boxed_clone()) - .action("New Text Thread", NewTextThread.boxed_clone()) + .item( + ContextMenuEntry::new("New Thread") + .icon(IconName::NewThread) + .icon_color(Color::Muted) + .handler(move |window, cx| { + window.dispatch_action(NewThread::default().boxed_clone(), cx); + }), + ) + .item( + ContextMenuEntry::new("New Text Thread") + .icon(IconName::NewTextThread) + .icon_color(Color::Muted) + .handler(move |window, cx| { + window.dispatch_action(NewTextThread.boxed_clone(), cx); + }), + ) .when_some(active_thread, |this, active_thread| { let thread = active_thread.read(cx); + if !thread.is_empty() { - this.action( - "New From Summary", - Box::new(NewThread { - from_thread_id: Some(thread.id().clone()), - }), + let thread_id = thread.id().clone(); + this.item( + ContextMenuEntry::new("New From Summary") + .icon(IconName::NewFromSummary) + .icon_color(Color::Muted) + .handler(move |window, cx| { + window.dispatch_action( + Box::new(NewThread { + from_thread_id: Some(thread_id.clone()), + }), + cx, + ); + }), ) } else { this @@ -1924,19 +1948,33 @@ impl AgentPanel { .when(cx.has_flag::(), |this| { this.separator() .header("External Agents") - .action( - "New Gemini Thread", - NewExternalAgentThread { - agent: Some(crate::ExternalAgent::Gemini), - } - .boxed_clone(), + .item( + ContextMenuEntry::new("New Gemini Thread") + .icon(IconName::AiGemini) + .icon_color(Color::Muted) + .handler(move |window, cx| { + window.dispatch_action( + NewExternalAgentThread { + agent: Some(crate::ExternalAgent::Gemini), + } + .boxed_clone(), + cx, + ); + }), ) - .action( - "New Claude Code Thread", - NewExternalAgentThread { - agent: Some(crate::ExternalAgent::ClaudeCode), - } - .boxed_clone(), + .item( + ContextMenuEntry::new("New Claude Code Thread") + .icon(IconName::AiClaude) + .icon_color(Color::Muted) + .handler(move |window, cx| { + window.dispatch_action( + NewExternalAgentThread { + agent: Some(crate::ExternalAgent::ClaudeCode), + } + .boxed_clone(), + cx, + ); + }), ) }); menu @@ -2285,6 +2323,28 @@ impl AgentPanel { }))) } + fn render_empty_state_section_header( + &self, + label: impl Into, + action_slot: Option, + cx: &mut Context, + ) -> impl IntoElement { + h_flex() + .mt_2() + .pl_1p5() + .pb_1() + .w_full() + .justify_between() + .border_b_1() + .border_color(cx.theme().colors().border_variant) + .child( + Label::new(label.into()) + .size(LabelSize::Small) + .color(Color::Muted), + ) + .children(action_slot) + } + fn render_thread_empty_state( &self, window: &mut Window, @@ -2407,19 +2467,9 @@ impl AgentPanel { .justify_end() .gap_1() .child( - h_flex() - .pl_1p5() - .pb_1() - .w_full() - .justify_between() - .border_b_1() - .border_color(cx.theme().colors().border_variant) - .child( - Label::new("Recent") - .size(LabelSize::Small) - .color(Color::Muted), - ) - .child( + self.render_empty_state_section_header( + "Recent", + Some( Button::new("view-history", "View All") .style(ButtonStyle::Subtle) .label_size(LabelSize::Small) @@ -2434,8 +2484,11 @@ impl AgentPanel { ) .on_click(move |_event, window, cx| { window.dispatch_action(OpenHistory.boxed_clone(), cx); - }), + }) + .into_any_element(), ), + cx, + ), ) .child( v_flex() @@ -2463,6 +2516,113 @@ impl AgentPanel { }, )), ) + .child(self.render_empty_state_section_header("Start", None, cx)) + .child( + v_flex() + .p_1() + .gap_2() + .child( + h_flex() + .w_full() + .gap_2() + .child( + NewThreadButton::new( + "new-thread-btn", + "New Thread", + IconName::NewThread, + ) + .keybinding(KeyBinding::for_action_in( + &NewThread::default(), + &self.focus_handle(cx), + window, + cx, + )) + .on_click( + |window, cx| { + window.dispatch_action( + NewThread::default().boxed_clone(), + cx, + ) + }, + ), + ) + .child( + NewThreadButton::new( + "new-text-thread-btn", + "New Text Thread", + IconName::NewTextThread, + ) + .keybinding(KeyBinding::for_action_in( + &NewTextThread, + &self.focus_handle(cx), + window, + cx, + )) + .on_click( + |window, cx| { + window.dispatch_action(Box::new(NewTextThread), cx) + }, + ), + ), + ) + .when(cx.has_flag::(), |this| { + this.child( + h_flex() + .w_full() + .gap_2() + .child( + NewThreadButton::new( + "new-gemini-thread-btn", + "New Gemini Thread", + IconName::AiGemini, + ) + // .keybinding(KeyBinding::for_action_in( + // &OpenHistory, + // &self.focus_handle(cx), + // window, + // cx, + // )) + .on_click( + |window, cx| { + window.dispatch_action( + Box::new(NewExternalAgentThread { + agent: Some( + crate::ExternalAgent::Gemini, + ), + }), + cx, + ) + }, + ), + ) + .child( + NewThreadButton::new( + "new-claude-thread-btn", + "New Claude Code Thread", + IconName::AiClaude, + ) + // .keybinding(KeyBinding::for_action_in( + // &OpenHistory, + // &self.focus_handle(cx), + // window, + // cx, + // )) + .on_click( + |window, cx| { + window.dispatch_action( + Box::new(NewExternalAgentThread { + agent: Some( + crate::ExternalAgent::ClaudeCode, + ), + }), + cx, + ) + }, + ), + ), + ) + }), + ) .when_some(configuration_error.as_ref(), |this, err| { this.child(self.render_configuration_error(err, &focus_handle, window, cx)) }) diff --git a/crates/agent_ui/src/ui.rs b/crates/agent_ui/src/ui.rs index 6398f64abb..15f2e28e58 100644 --- a/crates/agent_ui/src/ui.rs +++ b/crates/agent_ui/src/ui.rs @@ -2,6 +2,7 @@ mod agent_notification; mod burn_mode_tooltip; mod context_pill; mod end_trial_upsell; +mod new_thread_button; mod onboarding_modal; pub mod preview; mod upsell; @@ -10,4 +11,5 @@ pub use agent_notification::*; pub use burn_mode_tooltip::*; pub use context_pill::*; pub use end_trial_upsell::*; +pub use new_thread_button::*; pub use onboarding_modal::*; diff --git a/crates/agent_ui/src/ui/new_thread_button.rs b/crates/agent_ui/src/ui/new_thread_button.rs new file mode 100644 index 0000000000..7764144150 --- /dev/null +++ b/crates/agent_ui/src/ui/new_thread_button.rs @@ -0,0 +1,75 @@ +use gpui::{ClickEvent, ElementId, IntoElement, ParentElement, Styled}; +use ui::prelude::*; + +#[derive(IntoElement)] +pub struct NewThreadButton { + id: ElementId, + label: SharedString, + icon: IconName, + keybinding: Option, + on_click: Option>, +} + +impl NewThreadButton { + pub fn new(id: impl Into, label: impl Into, icon: IconName) -> Self { + Self { + id: id.into(), + label: label.into(), + icon, + keybinding: None, + on_click: None, + } + } + + pub fn keybinding(mut self, keybinding: Option) -> Self { + self.keybinding = keybinding; + self + } + + pub fn on_click(mut self, handler: F) -> Self + where + F: Fn(&mut Window, &mut App) + 'static, + { + self.on_click = Some(Box::new( + move |_: &ClickEvent, window: &mut Window, cx: &mut App| handler(window, cx), + )); + self + } +} + +impl RenderOnce for NewThreadButton { + fn render(self, _window: &mut Window, cx: &mut App) -> impl IntoElement { + h_flex() + .id(self.id) + .w_full() + .py_1p5() + .px_2() + .gap_1() + .justify_between() + .rounded_md() + .border_1() + .border_color(cx.theme().colors().border.opacity(0.4)) + .bg(cx.theme().colors().element_active.opacity(0.2)) + .hover(|style| { + style + .bg(cx.theme().colors().element_hover) + .border_color(cx.theme().colors().border) + }) + .child( + h_flex() + .gap_1p5() + .child( + Icon::new(self.icon) + .size(IconSize::XSmall) + .color(Color::Muted), + ) + .child(Label::new(self.label).size(LabelSize::Small)), + ) + .when_some(self.keybinding, |this, keybinding| { + this.child(keybinding.size(rems_from_px(10.))) + }) + .when_some(self.on_click, |this, on_click| { + this.on_click(move |event, window, cx| on_click(event, window, cx)) + }) + } +} diff --git a/crates/icons/src/icons.rs b/crates/icons/src/icons.rs index 631ccc1af3..b85e5b517d 100644 --- a/crates/icons/src/icons.rs +++ b/crates/icons/src/icons.rs @@ -181,6 +181,9 @@ pub enum IconName { MicMute, Microscope, Minimize, + NewFromSummary, + NewTextThread, + NewThread, Option, PageDown, PageUp, From 5289b815fe8b386a737b21ec837fb4827381de07 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Mon, 21 Jul 2025 19:58:16 -0400 Subject: [PATCH 0108/1052] ai_onboarding: Send users directly into the trial checkout flow when starting the trial (#34859) This PR makes it so users will be sent immediately into the trial checkout flow (by hitting zed.dev/account/start-trial) when they click the "Start Pro Trial" button. Release Notes: - N/A --- crates/ai_onboarding/src/ai_onboarding.rs | 2 +- crates/client/src/zed_urls.rs | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/crates/ai_onboarding/src/ai_onboarding.rs b/crates/ai_onboarding/src/ai_onboarding.rs index f19b8821fa..9c53078e5a 100644 --- a/crates/ai_onboarding/src/ai_onboarding.rs +++ b/crates/ai_onboarding/src/ai_onboarding.rs @@ -146,7 +146,7 @@ impl ZedAiOnboarding { let (button_label, button_url) = if self.account_too_young { ("Start with Pro", zed_urls::upgrade_to_zed_pro_url(cx)) } else { - ("Start Pro Trial", zed_urls::account_url(cx)) + ("Start Pro Trial", zed_urls::start_trial_url(cx)) }; v_flex() diff --git a/crates/client/src/zed_urls.rs b/crates/client/src/zed_urls.rs index 442875b451..e36f5f65da 100644 --- a/crates/client/src/zed_urls.rs +++ b/crates/client/src/zed_urls.rs @@ -18,6 +18,14 @@ pub fn account_url(cx: &App) -> String { format!("{server_url}/account", server_url = server_url(cx)) } +/// Returns the URL to the start trial page on zed.dev. +pub fn start_trial_url(cx: &App) -> String { + format!( + "{server_url}/account/start-trial", + server_url = server_url(cx) + ) +} + /// Returns the URL to the upgrade page on zed.dev. pub fn upgrade_to_zed_pro_url(cx: &App) -> String { format!("{server_url}/account/upgrade", server_url = server_url(cx)) From 15353630e4f8f1f3db8f230e078de2f42bdbfb7b Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Mon, 21 Jul 2025 21:11:11 -0400 Subject: [PATCH 0109/1052] zed: Add `OpenRequestKind` (#34860) This PR refactors the `OpenRequest` to introduce an `OpenRequestKind` enum. It seems most of the fields on `OpenRequest` are mutually-exclusive, so it is better to model it as an enum rather than using a bunch of `Option`s. There are likely more of the existing fields that can be converted into `OpenRequestKind` variants, but I'm being conservative for this first pass. Release Notes: - N/A --- crates/zed/src/main.rs | 54 ++++++++++++++++------------- crates/zed/src/zed/open_listener.rs | 23 ++++++++---- 2 files changed, 45 insertions(+), 32 deletions(-) diff --git a/crates/zed/src/main.rs b/crates/zed/src/main.rs index a9d3d63381..c7856931ef 100644 --- a/crates/zed/src/main.rs +++ b/crates/zed/src/main.rs @@ -55,6 +55,8 @@ use zed::{ inline_completion_registry, open_paths_with_positions, }; +use crate::zed::OpenRequestKind; + #[cfg(feature = "mimalloc")] #[global_allocator] static GLOBAL: mimalloc::MiMalloc = mimalloc::MiMalloc; @@ -746,32 +748,34 @@ pub fn main() { } fn handle_open_request(request: OpenRequest, app_state: Arc, cx: &mut App) { - if let Some(connection) = request.cli_connection { - let app_state = app_state.clone(); - cx.spawn(async move |cx| handle_cli_connection(connection, app_state, cx).await) - .detach(); - return; - } + if let Some(kind) = request.kind { + match kind { + OpenRequestKind::CliConnection(connection) => { + let app_state = app_state.clone(); + cx.spawn(async move |cx| handle_cli_connection(connection, app_state, cx).await) + .detach(); + } + OpenRequestKind::Extension { extension_id } => { + cx.spawn(async move |cx| { + let workspace = + workspace::get_any_active_workspace(app_state, cx.clone()).await?; + workspace.update(cx, |_, window, cx| { + window.dispatch_action( + Box::new(zed_actions::Extensions { + category_filter: None, + id: Some(extension_id), + }), + cx, + ); + }) + }) + .detach_and_log_err(cx); + } + OpenRequestKind::DockMenuAction { index } => { + cx.perform_dock_menu_action(index); + } + } - if let Some(action_index) = request.dock_menu_action { - cx.perform_dock_menu_action(action_index); - return; - } - - if let Some(extension) = request.extension_id { - cx.spawn(async move |cx| { - let workspace = workspace::get_any_active_workspace(app_state, cx.clone()).await?; - workspace.update(cx, |_, window, cx| { - window.dispatch_action( - Box::new(zed_actions::Extensions { - category_filter: None, - id: Some(extension), - }), - cx, - ); - }) - }) - .detach_and_log_err(cx); return; } diff --git a/crates/zed/src/zed/open_listener.rs b/crates/zed/src/zed/open_listener.rs index 42eb8198a4..af646465be 100644 --- a/crates/zed/src/zed/open_listener.rs +++ b/crates/zed/src/zed/open_listener.rs @@ -30,14 +30,19 @@ use workspace::{AppState, OpenOptions, SerializedWorkspaceLocation, Workspace}; #[derive(Default, Debug)] pub struct OpenRequest { - pub cli_connection: Option<(mpsc::Receiver, IpcSender)>, + pub kind: Option, pub open_paths: Vec, pub diff_paths: Vec<[String; 2]>, pub open_channel_notes: Vec<(u64, Option)>, pub join_channel: Option, pub ssh_connection: Option, - pub dock_menu_action: Option, - pub extension_id: Option, +} + +#[derive(Debug)] +pub enum OpenRequestKind { + CliConnection((mpsc::Receiver, IpcSender)), + Extension { extension_id: String }, + DockMenuAction { index: usize }, } impl OpenRequest { @@ -45,9 +50,11 @@ impl OpenRequest { let mut this = Self::default(); for url in request.urls { if let Some(server_name) = url.strip_prefix("zed-cli://") { - this.cli_connection = Some(connect_to_cli(server_name)?); + this.kind = Some(OpenRequestKind::CliConnection(connect_to_cli(server_name)?)); } else if let Some(action_index) = url.strip_prefix("zed-dock-action://") { - this.dock_menu_action = Some(action_index.parse()?); + this.kind = Some(OpenRequestKind::DockMenuAction { + index: action_index.parse()?, + }); } else if let Some(file) = url.strip_prefix("file://") { this.parse_file_path(file) } else if let Some(file) = url.strip_prefix("zed://file") { @@ -55,8 +62,10 @@ impl OpenRequest { } else if let Some(file) = url.strip_prefix("zed://ssh") { let ssh_url = "ssh:/".to_string() + file; this.parse_ssh_file_path(&ssh_url, cx)? - } else if let Some(file) = url.strip_prefix("zed://extension/") { - this.extension_id = Some(file.to_string()) + } else if let Some(extension_id) = url.strip_prefix("zed://extension/") { + this.kind = Some(OpenRequestKind::Extension { + extension_id: extension_id.to_string(), + }); } else if url.starts_with("ssh://") { this.parse_ssh_file_path(&url, cx)? } else if let Some(request_path) = parse_zed_link(&url, cx) { From 233e66d35f888a84f76317f5e23ab14a279ae806 Mon Sep 17 00:00:00 2001 From: Daste Date: Tue, 22 Jul 2025 03:30:23 +0200 Subject: [PATCH 0110/1052] Add `editor::BlameHover` action for triggering the blame popover via keyboard (#32096) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Make the git blame popover available via the keymap by making it an action. The blame popover stays open after being shown via the action, similar to the `editor::Hover` action. I added a default vim-mode key binding for `g b`, which goes in hand with `g h` for hover. I'm not sure what the keybind would be for regular layouts, if any would be set by default. I'm opening this as a draft because I coludn't figure out a way to position the popover correctly above/under the cursor head. I saw some uses of `content_origin` in other places for calculating absolute pixel positions, but I'm not sure how to make use of it here without doing a big refactor of the blame popover code 🤔. I would appreciate some help/tips with positioning, because it seems like the last thing to implement here. Opening as a draft for now because I think without the correct positioning this feature is not complete. Closes https://github.com/zed-industries/zed/discussions/26447 Release Notes: - Added `editor::BlameHover` action for showing the git blame popover under the cursor. By default bound to `ctrl-k ctrl-b` and to `g h` in vim mode. --- assets/keymaps/default-linux.json | 1 + assets/keymaps/default-macos.json | 1 + assets/keymaps/vim.json | 1 + crates/editor/src/actions.rs | 2 ++ crates/editor/src/editor.rs | 44 ++++++++++++++++++++++++++++--- crates/editor/src/element.rs | 9 +++++-- 6 files changed, 52 insertions(+), 6 deletions(-) diff --git a/assets/keymaps/default-linux.json b/assets/keymaps/default-linux.json index 377a26242b..4918e654fc 100644 --- a/assets/keymaps/default-linux.json +++ b/assets/keymaps/default-linux.json @@ -483,6 +483,7 @@ "ctrl-k ctrl-d": ["editor::SelectNext", { "replace_newest": true }], // editor.action.moveSelectionToNextFindMatch / find_under_expand_skip "ctrl-k ctrl-shift-d": ["editor::SelectPrevious", { "replace_newest": true }], // editor.action.moveSelectionToPreviousFindMatch "ctrl-k ctrl-i": "editor::Hover", + "ctrl-k ctrl-b": "editor::BlameHover", "ctrl-/": ["editor::ToggleComments", { "advance_downwards": false }], "f8": ["editor::GoToDiagnostic", { "severity": { "min": "hint", "max": "error" } }], "shift-f8": ["editor::GoToPreviousDiagnostic", { "severity": { "min": "hint", "max": "error" } }], diff --git a/assets/keymaps/default-macos.json b/assets/keymaps/default-macos.json index 712d73b8ec..60f29b1da1 100644 --- a/assets/keymaps/default-macos.json +++ b/assets/keymaps/default-macos.json @@ -537,6 +537,7 @@ "ctrl-cmd-d": ["editor::SelectPrevious", { "replace_newest": false }], // editor.action.addSelectionToPreviousFindMatch "cmd-k ctrl-cmd-d": ["editor::SelectPrevious", { "replace_newest": true }], // editor.action.moveSelectionToPreviousFindMatch "cmd-k cmd-i": "editor::Hover", + "cmd-k cmd-b": "editor::BlameHover", "cmd-/": ["editor::ToggleComments", { "advance_downwards": false }], "f8": ["editor::GoToDiagnostic", { "severity": { "min": "hint", "max": "error" } }], "shift-f8": ["editor::GoToPreviousDiagnostic", { "severity": { "min": "hint", "max": "error" } }], diff --git a/assets/keymaps/vim.json b/assets/keymaps/vim.json index 04e6b0bcd4..d0cf4621a5 100644 --- a/assets/keymaps/vim.json +++ b/assets/keymaps/vim.json @@ -124,6 +124,7 @@ "g r a": "editor::ToggleCodeActions", "g g": "vim::StartOfDocument", "g h": "editor::Hover", + "g B": "editor::BlameHover", "g t": "pane::ActivateNextItem", "g shift-t": "pane::ActivatePreviousItem", "g d": "editor::GoToDefinition", diff --git a/crates/editor/src/actions.rs b/crates/editor/src/actions.rs index 87463d246d..8557b57f46 100644 --- a/crates/editor/src/actions.rs +++ b/crates/editor/src/actions.rs @@ -322,6 +322,8 @@ actions!( ApplyDiffHunk, /// Deletes the character before the cursor. Backspace, + /// Shows git blame information for the current line. + BlameHover, /// Cancels the current operation. Cancel, /// Cancels the running flycheck operation. diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index b8dcdd35e0..1f985eeb7c 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -950,6 +950,7 @@ struct InlineBlamePopover { hide_task: Option>, popover_bounds: Option>, popover_state: InlineBlamePopoverState, + keyboard_grace: bool, } enum SelectionDragState { @@ -6517,21 +6518,55 @@ impl Editor { } } + pub fn blame_hover(&mut self, _: &BlameHover, window: &mut Window, cx: &mut Context) { + let snapshot = self.snapshot(window, cx); + let cursor = self.selections.newest::(cx).head(); + let Some((buffer, point, _)) = snapshot.buffer_snapshot.point_to_buffer_point(cursor) + else { + return; + }; + + let Some(blame) = self.blame.as_ref() else { + return; + }; + + let row_info = RowInfo { + buffer_id: Some(buffer.remote_id()), + buffer_row: Some(point.row), + ..Default::default() + }; + let Some(blame_entry) = blame + .update(cx, |blame, cx| blame.blame_for_rows(&[row_info], cx).next()) + .flatten() + else { + return; + }; + + let anchor = self.selections.newest_anchor().head(); + let position = self.to_pixel_point(anchor, &snapshot, window); + if let (Some(position), Some(last_bounds)) = (position, self.last_bounds) { + self.show_blame_popover(&blame_entry, position + last_bounds.origin, true, cx); + }; + } + fn show_blame_popover( &mut self, blame_entry: &BlameEntry, position: gpui::Point, + ignore_timeout: bool, cx: &mut Context, ) { if let Some(state) = &mut self.inline_blame_popover { state.hide_task.take(); } else { - let delay = EditorSettings::get_global(cx).hover_popover_delay; + let blame_popover_delay = EditorSettings::get_global(cx).hover_popover_delay; let blame_entry = blame_entry.clone(); let show_task = cx.spawn(async move |editor, cx| { - cx.background_executor() - .timer(std::time::Duration::from_millis(delay)) - .await; + if !ignore_timeout { + cx.background_executor() + .timer(std::time::Duration::from_millis(blame_popover_delay)) + .await; + } editor .update(cx, |editor, cx| { editor.inline_blame_popover_show_task.take(); @@ -6560,6 +6595,7 @@ impl Editor { commit_message: details, markdown, }, + keyboard_grace: ignore_timeout, }); cx.notify(); }) diff --git a/crates/editor/src/element.rs b/crates/editor/src/element.rs index fef185bb15..cbff544c7e 100644 --- a/crates/editor/src/element.rs +++ b/crates/editor/src/element.rs @@ -216,6 +216,7 @@ impl EditorElement { register_action(editor, window, Editor::newline_above); register_action(editor, window, Editor::newline_below); register_action(editor, window, Editor::backspace); + register_action(editor, window, Editor::blame_hover); register_action(editor, window, Editor::delete); register_action(editor, window, Editor::tab); register_action(editor, window, Editor::backtab); @@ -1143,10 +1144,14 @@ impl EditorElement { .as_ref() .and_then(|state| state.popover_bounds) .map_or(false, |bounds| bounds.contains(&event.position)); + let keyboard_grace = editor + .inline_blame_popover + .as_ref() + .map_or(false, |state| state.keyboard_grace); if mouse_over_inline_blame || mouse_over_popover { - editor.show_blame_popover(&blame_entry, event.position, cx); - } else { + editor.show_blame_popover(&blame_entry, event.position, false, cx); + } else if !keyboard_grace { editor.hide_blame_popover(cx); } } else { From 5a530ecd39f8be386a98cabef45c13163ff1da19 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Mon, 21 Jul 2025 21:40:33 -0400 Subject: [PATCH 0111/1052] zed: Add support for `zed://agent` links (#34862) This PR adds support for `zed://agent` links for opening the Agent Panel. Release Notes: - N/A --- crates/zed/src/main.rs | 15 ++++++++++++++- crates/zed/src/zed/open_listener.rs | 3 +++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/crates/zed/src/main.rs b/crates/zed/src/main.rs index c7856931ef..c9b8eebff6 100644 --- a/crates/zed/src/main.rs +++ b/crates/zed/src/main.rs @@ -1,6 +1,7 @@ mod reliability; mod zed; +use agent_ui::AgentPanel; use anyhow::{Context as _, Result}; use clap::{Parser, command}; use cli::FORCE_CLI_MODE_ENV_VAR_NAME; @@ -14,7 +15,7 @@ use extension_host::ExtensionStore; use fs::{Fs, RealFs}; use futures::{StreamExt, channel::oneshot, future}; use git::GitHostingProviderRegistry; -use gpui::{App, AppContext as _, Application, AsyncApp, UpdateGlobal as _}; +use gpui::{App, AppContext as _, Application, AsyncApp, Focusable as _, UpdateGlobal as _}; use gpui_tokio::Tokio; use http_client::{Url, read_proxy_from_env}; @@ -771,6 +772,18 @@ fn handle_open_request(request: OpenRequest, app_state: Arc, cx: &mut }) .detach_and_log_err(cx); } + OpenRequestKind::AgentPanel => { + cx.spawn(async move |cx| { + let workspace = + workspace::get_any_active_workspace(app_state, cx.clone()).await?; + workspace.update(cx, |workspace, window, cx| { + if let Some(panel) = workspace.panel::(cx) { + panel.focus_handle(cx).focus(window); + } + }) + }) + .detach_and_log_err(cx); + } OpenRequestKind::DockMenuAction { index } => { cx.perform_dock_menu_action(index); } diff --git a/crates/zed/src/zed/open_listener.rs b/crates/zed/src/zed/open_listener.rs index af646465be..b6feb0073e 100644 --- a/crates/zed/src/zed/open_listener.rs +++ b/crates/zed/src/zed/open_listener.rs @@ -42,6 +42,7 @@ pub struct OpenRequest { pub enum OpenRequestKind { CliConnection((mpsc::Receiver, IpcSender)), Extension { extension_id: String }, + AgentPanel, DockMenuAction { index: usize }, } @@ -66,6 +67,8 @@ impl OpenRequest { this.kind = Some(OpenRequestKind::Extension { extension_id: extension_id.to_string(), }); + } else if url == "zed://agent" { + this.kind = Some(OpenRequestKind::AgentPanel); } else if url.starts_with("ssh://") { this.parse_ssh_file_path(&url, cx)? } else if let Some(request_path) = parse_zed_link(&url, cx) { From eaccd542fd5e03a93fd1b2f7d02c874f3d491abf Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Tue, 22 Jul 2025 02:09:05 -0300 Subject: [PATCH 0112/1052] Add fast-follows to the AI onboarding flow (#34737) Follow-up to https://github.com/zed-industries/zed/pull/33738. Release Notes: - N/A --------- Co-authored-by: Bennet Bo Fenner --- crates/agent_ui/src/agent_panel.rs | 30 +- crates/agent_ui/src/message_editor.rs | 23 +- .../src/agent_api_keys_onboarding.rs | 135 ++++++++ .../src/agent_panel_onboarding_card.rs | 8 +- .../src/agent_panel_onboarding_content.rs | 114 ++----- crates/ai_onboarding/src/ai_onboarding.rs | 291 +++++++++++------- .../ai_onboarding/src/young_account_banner.rs | 2 +- crates/client/src/zed_urls.rs | 5 + crates/language_model/src/registry.rs | 4 +- crates/language_models/src/provider/cloud.rs | 12 +- 10 files changed, 409 insertions(+), 215 deletions(-) create mode 100644 crates/ai_onboarding/src/agent_api_keys_onboarding.rs diff --git a/crates/agent_ui/src/agent_panel.rs b/crates/agent_ui/src/agent_panel.rs index 57d16d6e59..fc803c730e 100644 --- a/crates/agent_ui/src/agent_panel.rs +++ b/crates/agent_ui/src/agent_panel.rs @@ -2300,7 +2300,20 @@ impl AgentPanel { return None; } - Some(div().size_full().child(self.onboarding.clone())) + let thread_view = matches!(&self.active_view, ActiveView::Thread { .. }); + let text_thread_view = matches!(&self.active_view, ActiveView::TextThread { .. }); + + Some( + div() + .size_full() + .when(thread_view, |this| { + this.bg(cx.theme().colors().panel_background) + }) + .when(text_thread_view, |this| { + this.bg(cx.theme().colors().editor_background) + }) + .child(self.onboarding.clone()), + ) } fn render_trial_end_upsell( @@ -3237,7 +3250,20 @@ impl Render for AgentPanel { .into_any(), ) }) - .child(h_flex().child(message_editor.clone())) + .child(h_flex().relative().child(message_editor.clone()).when( + !LanguageModelRegistry::read_global(cx).has_authenticated_provider(cx), + |this| { + this.child( + div() + .size_full() + .absolute() + .inset_0() + .bg(cx.theme().colors().panel_background) + .opacity(0.8) + .block_mouse_except_scroll(), + ) + }, + )) .child(self.render_drag_target(cx)), ActiveView::ExternalAgentThread { thread_view, .. } => parent .relative() diff --git a/crates/agent_ui/src/message_editor.rs b/crates/agent_ui/src/message_editor.rs index a2cf4aac48..69eae982f8 100644 --- a/crates/agent_ui/src/message_editor.rs +++ b/crates/agent_ui/src/message_editor.rs @@ -14,6 +14,7 @@ use agent::{ context_store::ContextStoreEvent, }; use agent_settings::{AgentSettings, CompletionMode}; +use ai_onboarding::ApiKeysWithProviders; use buffer_diff::BufferDiff; use client::UserStore; use collections::{HashMap, HashSet}; @@ -33,7 +34,8 @@ use gpui::{ }; use language::{Buffer, Language, Point}; use language_model::{ - ConfiguredModel, LanguageModelRequestMessage, MessageContent, ZED_CLOUD_PROVIDER_ID, + ConfiguredModel, LanguageModelRegistry, LanguageModelRequestMessage, MessageContent, + ZED_CLOUD_PROVIDER_ID, }; use multi_buffer; use project::Project; @@ -1655,9 +1657,28 @@ impl Render for MessageEditor { let line_height = TextSize::Small.rems(cx).to_pixels(window.rem_size()) * 1.5; + let enrolled_in_trial = matches!( + self.user_store.read(cx).current_plan(), + Some(proto::Plan::ZedProTrial) + ); + + let configured_providers: Vec<(IconName, SharedString)> = + LanguageModelRegistry::read_global(cx) + .providers() + .iter() + .filter(|provider| { + provider.is_authenticated(cx) && provider.id() != ZED_CLOUD_PROVIDER_ID + }) + .map(|provider| (provider.icon(), provider.name().0.clone())) + .collect(); + let has_existing_providers = configured_providers.len() > 0; + v_flex() .size_full() .bg(cx.theme().colors().panel_background) + .when(has_existing_providers && !enrolled_in_trial, |this| { + this.child(cx.new(ApiKeysWithProviders::new)) + }) .when(changed_buffers.len() > 0, |parent| { parent.child(self.render_edits_bar(&changed_buffers, window, cx)) }) diff --git a/crates/ai_onboarding/src/agent_api_keys_onboarding.rs b/crates/ai_onboarding/src/agent_api_keys_onboarding.rs new file mode 100644 index 0000000000..4f9e20cf77 --- /dev/null +++ b/crates/ai_onboarding/src/agent_api_keys_onboarding.rs @@ -0,0 +1,135 @@ +use gpui::{Action, IntoElement, ParentElement, RenderOnce, point}; +use language_model::{LanguageModelRegistry, ZED_CLOUD_PROVIDER_ID}; +use ui::{Divider, List, prelude::*}; + +use crate::BulletItem; + +pub struct ApiKeysWithProviders { + configured_providers: Vec<(IconName, SharedString)>, +} + +impl ApiKeysWithProviders { + pub fn new(cx: &mut Context) -> Self { + cx.subscribe( + &LanguageModelRegistry::global(cx), + |this: &mut Self, _registry, event: &language_model::Event, cx| match event { + language_model::Event::ProviderStateChanged + | language_model::Event::AddedProvider(_) + | language_model::Event::RemovedProvider(_) => { + this.configured_providers = Self::compute_configured_providers(cx) + } + _ => {} + }, + ) + .detach(); + + Self { + configured_providers: Self::compute_configured_providers(cx), + } + } + + fn compute_configured_providers(cx: &App) -> Vec<(IconName, SharedString)> { + LanguageModelRegistry::read_global(cx) + .providers() + .iter() + .filter(|provider| { + provider.is_authenticated(cx) && provider.id() != ZED_CLOUD_PROVIDER_ID + }) + .map(|provider| (provider.icon(), provider.name().0.clone())) + .collect() + } + + pub fn has_providers(&self) -> bool { + !self.configured_providers.is_empty() + } +} + +impl Render for ApiKeysWithProviders { + fn render(&mut self, _window: &mut Window, cx: &mut Context) -> impl IntoElement { + let configured_providers_list = + self.configured_providers + .iter() + .cloned() + .map(|(icon, name)| { + h_flex() + .gap_1p5() + .child(Icon::new(icon).size(IconSize::Small).color(Color::Muted)) + .child(Label::new(name)) + }); + + h_flex() + .mx_2p5() + .p_1() + .pb_0() + .gap_2() + .rounded_t_lg() + .border_t_1() + .border_x_1() + .border_color(cx.theme().colors().border.opacity(0.5)) + .bg(cx.theme().colors().background.alpha(0.5)) + .shadow(vec![gpui::BoxShadow { + color: gpui::black().opacity(0.15), + offset: point(px(1.), px(-1.)), + blur_radius: px(3.), + spread_radius: px(0.), + }]) + .child( + h_flex() + .px_2p5() + .py_1p5() + .gap_2() + .flex_wrap() + .rounded_t(px(5.)) + .overflow_hidden() + .border_t_1() + .border_x_1() + .border_color(cx.theme().colors().border) + .bg(cx.theme().colors().panel_background) + .child(Icon::new(IconName::Info).size(IconSize::XSmall).color(Color::Muted)) + .child(Label::new("Or start now using API keys from your environment for the following providers:").color(Color::Muted)) + .children(configured_providers_list) + ) + } +} + +#[derive(IntoElement)] +pub struct ApiKeysWithoutProviders; + +impl ApiKeysWithoutProviders { + pub fn new() -> Self { + Self + } +} + +impl RenderOnce for ApiKeysWithoutProviders { + fn render(self, _window: &mut Window, cx: &mut App) -> impl IntoElement { + v_flex() + .mt_2() + .gap_1() + .child( + h_flex() + .gap_2() + .child( + Label::new("API Keys") + .size(LabelSize::Small) + .color(Color::Muted) + .buffer_font(cx), + ) + .child(Divider::horizontal()), + ) + .child(List::new().child(BulletItem::new( + "You can also use AI in Zed by bringing your own API keys", + ))) + .child( + Button::new("configure-providers", "Configure Providers") + .full_width() + .style(ButtonStyle::Outlined) + .on_click(move |_, window, cx| { + window.dispatch_action( + zed_actions::agent::OpenConfiguration.boxed_clone(), + cx, + ); + }), + ) + } +} diff --git a/crates/ai_onboarding/src/agent_panel_onboarding_card.rs b/crates/ai_onboarding/src/agent_panel_onboarding_card.rs index 8ec9ccfe22..c63c592642 100644 --- a/crates/ai_onboarding/src/agent_panel_onboarding_card.rs +++ b/crates/ai_onboarding/src/agent_panel_onboarding_card.rs @@ -24,7 +24,7 @@ impl ParentElement for AgentPanelOnboardingCard { impl RenderOnce for AgentPanelOnboardingCard { fn render(self, _window: &mut Window, cx: &mut App) -> impl IntoElement { div() - .m_4() + .m_2p5() .p(px(3.)) .elevation_2(cx) .rounded_lg() @@ -49,6 +49,7 @@ impl RenderOnce for AgentPanelOnboardingCard { .right_0() .w(px(400.)) .h(px(92.)) + .rounded_md() .child( Vector::new( VectorName::AiGrid, @@ -61,11 +62,12 @@ impl RenderOnce for AgentPanelOnboardingCard { .child( div() .absolute() - .top_0() - .right_0() + .top_0p5() + .right_0p5() .w(px(660.)) .h(px(401.)) .overflow_hidden() + .rounded_md() .bg(linear_gradient( 75., linear_color_stop( diff --git a/crates/ai_onboarding/src/agent_panel_onboarding_content.rs b/crates/ai_onboarding/src/agent_panel_onboarding_content.rs index f3f7d6c3d7..771482abf3 100644 --- a/crates/ai_onboarding/src/agent_panel_onboarding_content.rs +++ b/crates/ai_onboarding/src/agent_panel_onboarding_content.rs @@ -1,12 +1,11 @@ use std::sync::Arc; use client::{Client, UserStore}; -use gpui::{Action, ClickEvent, Entity, IntoElement, ParentElement}; +use gpui::{Entity, IntoElement, ParentElement}; use language_model::{LanguageModelRegistry, ZED_CLOUD_PROVIDER_ID}; -use ui::{Divider, List, prelude::*}; -use zed_actions::agent::{OpenConfiguration, ToggleModelSelector}; +use ui::prelude::*; -use crate::{AgentPanelOnboardingCard, BulletItem, ZedAiOnboarding}; +use crate::{AgentPanelOnboardingCard, ApiKeysWithoutProviders, ZedAiOnboarding}; pub struct AgentPanelOnboarding { user_store: Entity, @@ -53,93 +52,34 @@ impl AgentPanelOnboarding { .map(|provider| (provider.icon(), provider.name().0.clone())) .collect() } - - fn configure_providers(&mut self, _: &ClickEvent, window: &mut Window, cx: &mut Context) { - window.dispatch_action(OpenConfiguration.boxed_clone(), cx); - cx.notify(); - } - - fn render_api_keys_section(&mut self, cx: &mut Context) -> impl IntoElement { - let has_existing_providers = self.configured_providers.len() > 0; - let configure_provider_label = if has_existing_providers { - "Configure Other Provider" - } else { - "Configure Providers" - }; - - let content = if has_existing_providers { - List::new() - .child(BulletItem::new( - "Or start now using API keys from your environment for the following providers:" - )) - .child( - h_flex() - .px_5() - .gap_2() - .flex_wrap() - .children(self.configured_providers.iter().cloned().map(|(icon, name)| - h_flex() - .gap_1p5() - .child(Icon::new(icon).size(IconSize::Small).color(Color::Muted)) - .child(Label::new(name)) - )) - ) - .child(BulletItem::new( - "No need for any of the plans or even to sign in", - )) - } else { - List::new() - .child(BulletItem::new( - "You can also use AI in Zed by bringing your own API keys", - )) - .child(BulletItem::new( - "No need for any of the plans or even to sign in", - )) - }; - - v_flex() - .mt_2() - .gap_1() - .child( - h_flex() - .gap_2() - .child( - Label::new("API Keys") - .size(LabelSize::Small) - .color(Color::Muted) - .buffer_font(cx), - ) - .child(Divider::horizontal()), - ) - .child(content) - .when(has_existing_providers, |this| { - this.child( - Button::new("pick-model", "Choose Model") - .full_width() - .style(ButtonStyle::Outlined) - .on_click(|_event, window, cx| { - window.dispatch_action(ToggleModelSelector.boxed_clone(), cx) - }), - ) - }) - .child( - Button::new("configure-providers", configure_provider_label) - .full_width() - .style(ButtonStyle::Outlined) - .on_click(cx.listener(Self::configure_providers)), - ) - } } impl Render for AgentPanelOnboarding { fn render(&mut self, _window: &mut Window, cx: &mut Context) -> impl IntoElement { + let enrolled_in_trial = matches!( + self.user_store.read(cx).current_plan(), + Some(proto::Plan::ZedProTrial) + ); + AgentPanelOnboardingCard::new() - .child(ZedAiOnboarding::new( - self.client.clone(), - &self.user_store, - self.continue_with_zed_ai.clone(), - cx, - )) - .child(self.render_api_keys_section(cx)) + .child( + ZedAiOnboarding::new( + self.client.clone(), + &self.user_store, + self.continue_with_zed_ai.clone(), + cx, + ) + .with_dismiss({ + let callback = self.continue_with_zed_ai.clone(); + move |window, cx| callback(window, cx) + }), + ) + .map(|this| { + if enrolled_in_trial || self.configured_providers.len() >= 1 { + this + } else { + this.child(ApiKeysWithoutProviders::new()) + } + }) } } diff --git a/crates/ai_onboarding/src/ai_onboarding.rs b/crates/ai_onboarding/src/ai_onboarding.rs index 9c53078e5a..88c962c1ba 100644 --- a/crates/ai_onboarding/src/ai_onboarding.rs +++ b/crates/ai_onboarding/src/ai_onboarding.rs @@ -1,8 +1,10 @@ +mod agent_api_keys_onboarding; mod agent_panel_onboarding_card; mod agent_panel_onboarding_content; mod edit_prediction_onboarding_content; mod young_account_banner; +pub use agent_api_keys_onboarding::{ApiKeysWithProviders, ApiKeysWithoutProviders}; pub use agent_panel_onboarding_card::AgentPanelOnboardingCard; pub use agent_panel_onboarding_content::AgentPanelOnboarding; pub use edit_prediction_onboarding_content::EditPredictionOnboarding; @@ -12,7 +14,7 @@ use std::sync::Arc; use client::{Client, UserStore, zed_urls}; use gpui::{AnyElement, Entity, IntoElement, ParentElement, SharedString}; -use ui::{Divider, List, ListItem, RegisterComponent, TintColor, prelude::*}; +use ui::{Divider, List, ListItem, RegisterComponent, TintColor, Tooltip, prelude::*}; pub struct BulletItem { label: SharedString, @@ -69,6 +71,7 @@ pub struct ZedAiOnboarding { pub continue_with_zed_ai: Arc, pub sign_in: Arc, pub accept_terms_of_service: Arc, + pub dismiss_onboarding: Option>, } impl ZedAiOnboarding { @@ -80,6 +83,7 @@ impl ZedAiOnboarding { ) -> Self { let store = user_store.read(cx); let status = *client.status().borrow(); + Self { sign_in_status: status.into(), has_accepted_terms_of_service: store.current_user_has_accepted_terms().unwrap_or(false), @@ -102,14 +106,22 @@ impl ZedAiOnboarding { }) .detach(); }), + dismiss_onboarding: None, } } - fn render_free_plan_section(&self, cx: &mut App) -> impl IntoElement { + pub fn with_dismiss( + mut self, + dismiss_callback: impl Fn(&mut Window, &mut App) + 'static, + ) -> Self { + self.dismiss_onboarding = Some(Arc::new(dismiss_callback)); + self + } + + fn free_plan_definition(&self, cx: &mut App) -> impl IntoElement { v_flex() .mt_2() .gap_1() - .when(self.account_too_young, |this| this.opacity(0.4)) .child( h_flex() .gap_2() @@ -119,6 +131,12 @@ impl ZedAiOnboarding { .color(Color::Muted) .buffer_font(cx), ) + .child( + Label::new("(Current Plan)") + .size(LabelSize::Small) + .color(Color::Custom(cx.theme().colors().text_muted.opacity(0.6))) + .buffer_font(cx), + ) .child(Divider::horizontal()), ) .child( @@ -130,65 +148,89 @@ impl ZedAiOnboarding { "2000 accepted edit predictions using our open-source Zeta model", )), ) - .child( - Button::new("continue", "Continue Free") - .disabled(self.account_too_young) - .full_width() - .style(ButtonStyle::Outlined) - .on_click({ - let callback = self.continue_with_zed_ai.clone(); - move |_, window, cx| callback(window, cx) - }), - ) } - fn render_pro_plan_section(&self, cx: &mut App) -> impl IntoElement { - let (button_label, button_url) = if self.account_too_young { - ("Start with Pro", zed_urls::upgrade_to_zed_pro_url(cx)) - } else { - ("Start Pro Trial", zed_urls::start_trial_url(cx)) - }; - - v_flex() - .mt_2() - .gap_1() - .child( - h_flex() - .gap_2() - .child( - Label::new("Pro") - .size(LabelSize::Small) - .color(Color::Accent) - .buffer_font(cx), - ) - .child(Divider::horizontal()), - ) - .child( - List::new() - .child(BulletItem::new("500 prompts per month with Claude models")) - .child(BulletItem::new("Unlimited edit predictions")) - .when(!self.account_too_young, |this| { - this.child(BulletItem::new( - "Try it out for 14 days with no charge, no credit card required", - )) - }), - ) - .child( - Button::new("pro", button_label) - .full_width() - .style(ButtonStyle::Tinted(ui::TintColor::Accent)) - .on_click(move |_, _window, cx| cx.open_url(&button_url)), - ) - } - - fn render_accept_terms_of_service(&self) -> Div { - v_flex() - .w_full() - .gap_1() - .child(Headline::new("Before starting…")) - .child(Label::new( - "Make sure you have read and accepted Zed AI's terms of service.", + fn pro_trial_definition(&self) -> impl IntoElement { + List::new() + .child(BulletItem::new( + "150 prompts per month with the Claude models", )) + .child(BulletItem::new( + "Unlimited accepted edit predictions using our open-source Zeta model", + )) + } + + fn pro_plan_definition(&self, cx: &mut App) -> impl IntoElement { + v_flex().mt_2().gap_1().map(|this| { + if self.account_too_young { + this.child( + h_flex() + .gap_2() + .child( + Label::new("Pro") + .size(LabelSize::Small) + .color(Color::Accent) + .buffer_font(cx), + ) + .child(Divider::horizontal()), + ) + .child( + List::new() + .child(BulletItem::new("500 prompts per month with Claude models")) + .child(BulletItem::new( + "Unlimited accepted edit predictions using our open-source Zeta model", + )) + .child(BulletItem::new("USD $20 per month")), + ) + .child( + Button::new("pro", "Start with Pro") + .full_width() + .style(ButtonStyle::Tinted(ui::TintColor::Accent)) + .on_click(move |_, _window, cx| { + cx.open_url(&zed_urls::upgrade_to_zed_pro_url(cx)) + }), + ) + } else { + this.child( + h_flex() + .gap_2() + .child( + Label::new("Pro Trial") + .size(LabelSize::Small) + .color(Color::Accent) + .buffer_font(cx), + ) + .child(Divider::horizontal()), + ) + .child( + List::new() + .child(self.pro_trial_definition()) + .child(BulletItem::new( + "Try it out for 14 days with no charge and no credit card required", + )), + ) + .child( + Button::new("pro", "Start Pro Trial") + .full_width() + .style(ButtonStyle::Tinted(ui::TintColor::Accent)) + .on_click(move |_, _window, cx| { + cx.open_url(&zed_urls::start_trial_url(cx)) + }), + ) + } + }) + } + + fn render_accept_terms_of_service(&self) -> AnyElement { + v_flex() + .gap_1() + .w_full() + .child(Headline::new("Before starting…")) + .child( + Label::new("Make sure you have read and accepted Zed AI's terms of service.") + .color(Color::Muted) + .mb_2(), + ) .child( Button::new("terms_of_service", "View and Read the Terms of Service") .full_width() @@ -196,9 +238,7 @@ impl ZedAiOnboarding { .icon(IconName::ArrowUpRight) .icon_color(Color::Muted) .icon_size(IconSize::XSmall) - .on_click(move |_, _window, cx| { - cx.open_url("https://zed.dev/terms-of-service") - }), + .on_click(move |_, _window, cx| cx.open_url(&zed_urls::terms_of_service(cx))), ) .child( Button::new("accept_terms", "I've read it and accept it") @@ -209,23 +249,23 @@ impl ZedAiOnboarding { move |_, window, cx| (callback)(window, cx) }), ) + .into_any_element() } - fn render_sign_in_disclaimer(&self, _cx: &mut App) -> Div { - const SIGN_IN_DISCLAIMER: &str = - "To start using AI in Zed with our hosted models, sign in and subscribe to a plan."; + fn render_sign_in_disclaimer(&self, _cx: &mut App) -> AnyElement { let signing_in = matches!(self.sign_in_status, SignInStatus::SigningIn); v_flex() - .gap_2() + .gap_1() .child(Headline::new("Welcome to Zed AI")) - .child(div().w_full().child(Label::new(SIGN_IN_DISCLAIMER))) .child( - Button::new("sign_in", "Sign In with GitHub") - .icon(IconName::Github) - .icon_position(IconPosition::Start) - .icon_size(IconSize::Small) - .icon_color(Color::Muted) + Label::new("Sign in to start using AI in Zed with a free trial of the Pro plan, which includes:") + .color(Color::Muted) + .mb_2(), + ) + .child(self.pro_trial_definition()) + .child( + Button::new("sign_in", "Sign in to Start Trial") .disabled(signing_in) .full_width() .style(ButtonStyle::Tinted(ui::TintColor::Accent)) @@ -234,36 +274,55 @@ impl ZedAiOnboarding { move |_, window, cx| callback(window, cx) }), ) + .into_any_element() } - fn render_free_plan_onboarding(&self, cx: &mut App) -> Div { - const PLANS_DESCRIPTION: &str = "Choose how you want to start."; + fn render_free_plan_state(&self, cx: &mut App) -> AnyElement { let young_account_banner = YoungAccountBanner; v_flex() + .relative() + .gap_1() .child(Headline::new("Welcome to Zed AI")) .child( - Label::new(PLANS_DESCRIPTION) - .size(LabelSize::Small) + Label::new("Choose how you want to start.") .color(Color::Muted) - .mt_1() - .mb_3(), + .mb_2(), ) - .when(self.account_too_young, |this| { - this.child(young_account_banner) + .map(|this| { + if self.account_too_young { + this.child(young_account_banner) + } else { + this.child(self.free_plan_definition(cx)).when_some( + self.dismiss_onboarding.as_ref(), + |this, dismiss_callback| { + let callback = dismiss_callback.clone(); + + this.child( + h_flex().absolute().top_0().right_0().child( + IconButton::new("dismiss_onboarding", IconName::Close) + .icon_size(IconSize::Small) + .tooltip(Tooltip::text("Dismiss")) + .on_click(move |_, window, cx| callback(window, cx)), + ), + ) + }, + ) + } }) - .child(self.render_free_plan_section(cx)) - .child(self.render_pro_plan_section(cx)) + .child(self.pro_plan_definition(cx)) + .into_any_element() } - fn render_trial_onboarding(&self, _cx: &mut App) -> Div { + fn render_trial_state(&self, _cx: &mut App) -> AnyElement { v_flex() - .child(Headline::new("Welcome to the trial of Zed Pro")) + .relative() + .gap_1() + .child(Headline::new("Welcome to the Zed Pro free trial")) .child( Label::new("Here's what you get for the next 14 days:") - .size(LabelSize::Small) .color(Color::Muted) - .mt_1(), + .mb_2(), ) .child( List::new() @@ -272,25 +331,31 @@ impl ZedAiOnboarding { "Unlimited edit predictions with Zeta, our open-source model", )), ) - .child( - Button::new("trial", "Start Trial") - .full_width() - .style(ButtonStyle::Outlined) - .on_click({ - let callback = self.continue_with_zed_ai.clone(); - move |_, window, cx| callback(window, cx) - }), + .when_some( + self.dismiss_onboarding.as_ref(), + |this, dismiss_callback| { + let callback = dismiss_callback.clone(); + this.child( + h_flex().absolute().top_0().right_0().child( + IconButton::new("dismiss_onboarding", IconName::Close) + .icon_size(IconSize::Small) + .tooltip(Tooltip::text("Dismiss")) + .on_click(move |_, window, cx| callback(window, cx)), + ), + ) + }, ) + .into_any_element() } - fn render_pro_plan_onboarding(&self, _cx: &mut App) -> Div { + fn render_pro_plan_state(&self, _cx: &mut App) -> AnyElement { v_flex() + .gap_1() .child(Headline::new("Welcome to Zed Pro")) .child( Label::new("Here's what you get:") - .size(LabelSize::Small) .color(Color::Muted) - .mt_1(), + .mb_2(), ) .child( List::new() @@ -306,6 +371,7 @@ impl ZedAiOnboarding { move |_, window, cx| callback(window, cx) }), ) + .into_any_element() } } @@ -314,9 +380,9 @@ impl RenderOnce for ZedAiOnboarding { if matches!(self.sign_in_status, SignInStatus::SignedIn) { if self.has_accepted_terms_of_service { match self.plan { - None | Some(proto::Plan::Free) => self.render_free_plan_onboarding(cx), - Some(proto::Plan::ZedProTrial) => self.render_trial_onboarding(cx), - Some(proto::Plan::ZedPro) => self.render_pro_plan_onboarding(cx), + None | Some(proto::Plan::Free) => self.render_free_plan_state(cx), + Some(proto::Plan::ZedProTrial) => self.render_trial_state(cx), + Some(proto::Plan::ZedPro) => self.render_pro_plan_state(cx), } } else { self.render_accept_terms_of_service() @@ -339,18 +405,17 @@ impl Component for ZedAiOnboarding { plan: Option, account_too_young: bool, ) -> AnyElement { - div() - .w(px(800.)) - .child(ZedAiOnboarding { - sign_in_status, - has_accepted_terms_of_service, - plan, - account_too_young, - continue_with_zed_ai: Arc::new(|_, _| {}), - sign_in: Arc::new(|_, _| {}), - accept_terms_of_service: Arc::new(|_, _| {}), - }) - .into_any_element() + ZedAiOnboarding { + sign_in_status, + has_accepted_terms_of_service, + plan, + account_too_young, + continue_with_zed_ai: Arc::new(|_, _| {}), + sign_in: Arc::new(|_, _| {}), + accept_terms_of_service: Arc::new(|_, _| {}), + dismiss_onboarding: None, + } + .into_any_element() } Some( @@ -368,7 +433,7 @@ impl Component for ZedAiOnboarding { ), single_example( "Account too young", - onboarding(SignInStatus::SignedIn, true, None, true), + onboarding(SignInStatus::SignedIn, false, None, true), ), single_example( "Free Plan", diff --git a/crates/ai_onboarding/src/young_account_banner.rs b/crates/ai_onboarding/src/young_account_banner.rs index f6e1446fd0..1e1ed3a865 100644 --- a/crates/ai_onboarding/src/young_account_banner.rs +++ b/crates/ai_onboarding/src/young_account_banner.rs @@ -6,7 +6,7 @@ pub struct YoungAccountBanner; impl RenderOnce for YoungAccountBanner { fn render(self, _window: &mut Window, cx: &mut App) -> impl IntoElement { - const YOUNG_ACCOUNT_DISCLAIMER: &str = "Given your GitHub account was created less than 30 days ago, we cannot put you in the Free plan or offer you a free trial of the Pro plan. We hope you'll understand, as this is unfortunately required to prevent abuse of our service. To continue, upgrade to Pro or use your own API keys for other providers."; + const YOUNG_ACCOUNT_DISCLAIMER: &str = "To prevent abuse of our service, we cannot offer plans to GitHub accounts created fewer than 30 days ago. To request an exception, reach out to billing@zed.dev."; let label = div() .w_full() diff --git a/crates/client/src/zed_urls.rs b/crates/client/src/zed_urls.rs index e36f5f65da..693c7bf836 100644 --- a/crates/client/src/zed_urls.rs +++ b/crates/client/src/zed_urls.rs @@ -30,3 +30,8 @@ pub fn start_trial_url(cx: &App) -> String { pub fn upgrade_to_zed_pro_url(cx: &App) -> String { format!("{server_url}/account/upgrade", server_url = server_url(cx)) } + +/// Returns the URL to Zed's terms of service. +pub fn terms_of_service(cx: &App) -> String { + format!("{server_url}/terms-of-service", server_url = server_url(cx)) +} diff --git a/crates/language_model/src/registry.rs b/crates/language_model/src/registry.rs index 840fda38de..6e8e8e9108 100644 --- a/crates/language_model/src/registry.rs +++ b/crates/language_model/src/registry.rs @@ -206,8 +206,8 @@ impl LanguageModelRegistry { None } - /// Check that we have at least one provider that is authenticated. - fn has_authenticated_provider(&self, cx: &App) -> bool { + /// Returns `true` if at least one provider that is authenticated. + pub fn has_authenticated_provider(&self, cx: &App) -> bool { self.providers.values().any(|p| p.is_authenticated(cx)) } diff --git a/crates/language_models/src/provider/cloud.rs b/crates/language_models/src/provider/cloud.rs index 736107570b..fac8810714 100644 --- a/crates/language_models/src/provider/cloud.rs +++ b/crates/language_models/src/provider/cloud.rs @@ -1140,19 +1140,19 @@ impl RenderOnce for ZedAiConfiguration { let is_pro = self.plan == Some(proto::Plan::ZedPro); let subscription_text = match (self.plan, self.subscription_period) { (Some(proto::Plan::ZedPro), Some(_)) => { - "You have access to Zed's hosted LLMs through your Pro subscription." + "You have access to Zed's hosted models through your Pro subscription." } (Some(proto::Plan::ZedProTrial), Some(_)) => { - "You have access to Zed's hosted LLMs through your Pro trial." + "You have access to Zed's hosted models through your Pro trial." } (Some(proto::Plan::Free), Some(_)) => { - "You have basic access to Zed's hosted LLMs through the Free plan." + "You have basic access to Zed's hosted models through the Free plan." } _ => { if self.eligible_for_trial { - "Subscribe for access to Zed's hosted LLMs. Start with a 14 day free trial." + "Subscribe for access to Zed's hosted models. Start with a 14 day free trial." } else { - "Subscribe for access to Zed's hosted LLMs." + "Subscribe for access to Zed's hosted models." } } }; @@ -1166,7 +1166,7 @@ impl RenderOnce for ZedAiConfiguration { Button::new("start_trial", "Start 14-day Free Pro Trial") .style(ui::ButtonStyle::Tinted(ui::TintColor::Accent)) .full_width() - .on_click(|_, _, cx| cx.open_url(&zed_urls::account_url(cx))) + .on_click(|_, _, cx| cx.open_url(&zed_urls::start_trial_url(cx))) .into_any_element() } else { Button::new("upgrade", "Upgrade to Pro") From 2b671a46f23e2f5d1393e58973f7305e6b78494d Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Tue, 22 Jul 2025 02:39:22 -0300 Subject: [PATCH 0113/1052] ai onboarding: Don't show API keys section if user is already in Pro (#34867) Release Notes: - N/A --- crates/agent_ui/src/message_editor.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/crates/agent_ui/src/message_editor.rs b/crates/agent_ui/src/message_editor.rs index 69eae982f8..7803753292 100644 --- a/crates/agent_ui/src/message_editor.rs +++ b/crates/agent_ui/src/message_editor.rs @@ -1657,11 +1657,16 @@ impl Render for MessageEditor { let line_height = TextSize::Small.rems(cx).to_pixels(window.rem_size()) * 1.5; - let enrolled_in_trial = matches!( + let in_pro_trial = matches!( self.user_store.read(cx).current_plan(), Some(proto::Plan::ZedProTrial) ); + let pro_user = matches!( + self.user_store.read(cx).current_plan(), + Some(proto::Plan::ZedPro) + ); + let configured_providers: Vec<(IconName, SharedString)> = LanguageModelRegistry::read_global(cx) .providers() @@ -1676,9 +1681,10 @@ impl Render for MessageEditor { v_flex() .size_full() .bg(cx.theme().colors().panel_background) - .when(has_existing_providers && !enrolled_in_trial, |this| { - this.child(cx.new(ApiKeysWithProviders::new)) - }) + .when( + has_existing_providers && !in_pro_trial && !pro_user, + |this| this.child(cx.new(ApiKeysWithProviders::new)), + ) .when(changed_buffers.len() > 0, |parent| { parent.child(self.render_edits_bar(&changed_buffers, window, cx)) }) From 87014cec71335c6ae20fbe3fe6299f95542103c4 Mon Sep 17 00:00:00 2001 From: Bret Comnes <166301+bcomnes@users.noreply.github.com> Date: Tue, 22 Jul 2025 02:50:26 -0700 Subject: [PATCH 0114/1052] theme: Add `panel.overlay_background` and `panel.overlay_hover` (#34655) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In https://github.com/zed-industries/zed/pull/33994 sticky scroll was added to project_panel. I love this feature! This introduces a new element layering not seen before. On themes that use transparency, the overlapping elements can make it difficult to read project panel entries. This PR introduces a new selector: ~~panel.sticky_entry.background~~ `panel.overlay_background` This selector lets you set the background of entries when they become sticky. Closes https://github.com/zed-industries/zed/issues/34654 Before: Screenshot 2025-07-17 at 10 19 11 AM After: Screenshot 2025-07-17 at 11 46 57 AM Screenshot 2025-07-17 at 11 39 57 AM Screenshot 2025-07-17 at 11 39 29 AM Release Notes: - Add `panel.sticky_entry.background` theme selector for modifying project panel entries when they become sticky when scrolling and overlap with entries below them. --------- Co-authored-by: Smit Barmase --- crates/project_panel/src/project_panel.rs | 16 ++++++++--- crates/theme/src/default_colors.rs | 4 +++ crates/theme/src/fallback_themes.rs | 9 ++++-- crates/theme/src/schema.rs | 34 +++++++++++++++++------ crates/theme/src/styles/colors.rs | 10 +++++++ 5 files changed, 58 insertions(+), 15 deletions(-) diff --git a/crates/project_panel/src/project_panel.rs b/crates/project_panel/src/project_panel.rs index b6fdcd6fa5..44f4e8985a 100644 --- a/crates/project_panel/src/project_panel.rs +++ b/crates/project_panel/src/project_panel.rs @@ -384,12 +384,20 @@ struct ItemColors { focused: Hsla, } -fn get_item_color(cx: &App) -> ItemColors { +fn get_item_color(is_sticky: bool, cx: &App) -> ItemColors { let colors = cx.theme().colors(); ItemColors { - default: colors.panel_background, - hover: colors.element_hover, + default: if is_sticky { + colors.panel_overlay_background + } else { + colors.panel_background + }, + hover: if is_sticky { + colors.panel_overlay_hover + } else { + colors.element_hover + }, marked: colors.element_selected, focused: colors.panel_focused_border, drag_over: colors.drop_target_background, @@ -3903,7 +3911,7 @@ impl ProjectPanel { let filename_text_color = details.filename_text_color; let diagnostic_severity = details.diagnostic_severity; - let item_colors = get_item_color(cx); + let item_colors = get_item_color(is_sticky, cx); let canonical_path = details .canonical_path diff --git a/crates/theme/src/default_colors.rs b/crates/theme/src/default_colors.rs index 3424e0fe04..1c3f48b548 100644 --- a/crates/theme/src/default_colors.rs +++ b/crates/theme/src/default_colors.rs @@ -83,6 +83,8 @@ impl ThemeColors { panel_indent_guide: neutral().light_alpha().step_5(), panel_indent_guide_hover: neutral().light_alpha().step_6(), panel_indent_guide_active: neutral().light_alpha().step_6(), + panel_overlay_background: neutral().light().step_2(), + panel_overlay_hover: neutral().light_alpha().step_4(), pane_focused_border: blue().light().step_5(), pane_group_border: neutral().light().step_6(), scrollbar_thumb_background: neutral().light_alpha().step_3(), @@ -206,6 +208,8 @@ impl ThemeColors { panel_indent_guide: neutral().dark_alpha().step_4(), panel_indent_guide_hover: neutral().dark_alpha().step_6(), panel_indent_guide_active: neutral().dark_alpha().step_6(), + panel_overlay_background: neutral().dark().step_2(), + panel_overlay_hover: neutral().dark_alpha().step_4(), pane_focused_border: blue().dark().step_5(), pane_group_border: neutral().dark().step_6(), scrollbar_thumb_background: neutral().dark_alpha().step_3(), diff --git a/crates/theme/src/fallback_themes.rs b/crates/theme/src/fallback_themes.rs index 5e9967d460..4d77dd5d81 100644 --- a/crates/theme/src/fallback_themes.rs +++ b/crates/theme/src/fallback_themes.rs @@ -59,6 +59,7 @@ pub(crate) fn zed_default_dark() -> Theme { let bg = hsla(215. / 360., 12. / 100., 15. / 100., 1.); let editor = hsla(220. / 360., 12. / 100., 18. / 100., 1.); let elevated_surface = hsla(225. / 360., 12. / 100., 17. / 100., 1.); + let hover = hsla(225.0 / 360., 11.8 / 100., 26.7 / 100., 1.0); let blue = hsla(207.8 / 360., 81. / 100., 66. / 100., 1.0); let gray = hsla(218.8 / 360., 10. / 100., 40. / 100., 1.0); @@ -108,14 +109,14 @@ pub(crate) fn zed_default_dark() -> Theme { surface_background: bg, background: bg, element_background: hsla(223.0 / 360., 13. / 100., 21. / 100., 1.0), - element_hover: hsla(225.0 / 360., 11.8 / 100., 26.7 / 100., 1.0), + element_hover: hover, element_active: hsla(220.0 / 360., 11.8 / 100., 20.0 / 100., 1.0), element_selected: hsla(224.0 / 360., 11.3 / 100., 26.1 / 100., 1.0), element_disabled: SystemColors::default().transparent, element_selection_background: player.local().selection.alpha(0.25), drop_target_background: hsla(220.0 / 360., 8.3 / 100., 21.4 / 100., 1.0), ghost_element_background: SystemColors::default().transparent, - ghost_element_hover: hsla(225.0 / 360., 11.8 / 100., 26.7 / 100., 1.0), + ghost_element_hover: hover, ghost_element_active: hsla(220.0 / 360., 11.8 / 100., 20.0 / 100., 1.0), ghost_element_selected: hsla(224.0 / 360., 11.3 / 100., 26.1 / 100., 1.0), ghost_element_disabled: SystemColors::default().transparent, @@ -202,10 +203,12 @@ pub(crate) fn zed_default_dark() -> Theme { panel_indent_guide: hsla(228. / 360., 8. / 100., 25. / 100., 1.), panel_indent_guide_hover: hsla(225. / 360., 13. / 100., 12. / 100., 1.), panel_indent_guide_active: hsla(225. / 360., 13. / 100., 12. / 100., 1.), + panel_overlay_background: bg, + panel_overlay_hover: hover, pane_focused_border: blue, pane_group_border: hsla(225. / 360., 13. / 100., 12. / 100., 1.), scrollbar_thumb_background: gpui::transparent_black(), - scrollbar_thumb_hover_background: hsla(225.0 / 360., 11.8 / 100., 26.7 / 100., 1.0), + scrollbar_thumb_hover_background: hover, scrollbar_thumb_active_background: hsla( 225.0 / 360., 11.8 / 100., diff --git a/crates/theme/src/schema.rs b/crates/theme/src/schema.rs index bed25d0c05..bfa2adcedf 100644 --- a/crates/theme/src/schema.rs +++ b/crates/theme/src/schema.rs @@ -351,6 +351,12 @@ pub struct ThemeColorsContent { #[serde(rename = "panel.indent_guide_active")] pub panel_indent_guide_active: Option, + #[serde(rename = "panel.overlay_background")] + pub panel_overlay_background: Option, + + #[serde(rename = "panel.overlay_hover")] + pub panel_overlay_hover: Option, + #[serde(rename = "pane.focused_border")] pub pane_focused_border: Option, @@ -674,6 +680,14 @@ impl ThemeColorsContent { .scrollbar_thumb_border .as_ref() .and_then(|color| try_parse_color(color).ok()); + let element_hover = self + .element_hover + .as_ref() + .and_then(|color| try_parse_color(color).ok()); + let panel_background = self + .panel_background + .as_ref() + .and_then(|color| try_parse_color(color).ok()); ThemeColorsRefinement { border, border_variant: self @@ -712,10 +726,7 @@ impl ThemeColorsContent { .element_background .as_ref() .and_then(|color| try_parse_color(color).ok()), - element_hover: self - .element_hover - .as_ref() - .and_then(|color| try_parse_color(color).ok()), + element_hover, element_active: self .element_active .as_ref() @@ -832,10 +843,7 @@ impl ThemeColorsContent { .search_match_background .as_ref() .and_then(|color| try_parse_color(color).ok()), - panel_background: self - .panel_background - .as_ref() - .and_then(|color| try_parse_color(color).ok()), + panel_background, panel_focused_border: self .panel_focused_border .as_ref() @@ -852,6 +860,16 @@ impl ThemeColorsContent { .panel_indent_guide_active .as_ref() .and_then(|color| try_parse_color(color).ok()), + panel_overlay_background: self + .panel_overlay_background + .as_ref() + .and_then(|color| try_parse_color(color).ok()) + .or(panel_background), + panel_overlay_hover: self + .panel_overlay_hover + .as_ref() + .and_then(|color| try_parse_color(color).ok()) + .or(element_hover), pane_focused_border: self .pane_focused_border .as_ref() diff --git a/crates/theme/src/styles/colors.rs b/crates/theme/src/styles/colors.rs index 7c5270e361..aab11803f4 100644 --- a/crates/theme/src/styles/colors.rs +++ b/crates/theme/src/styles/colors.rs @@ -131,6 +131,12 @@ pub struct ThemeColors { pub panel_indent_guide: Hsla, pub panel_indent_guide_hover: Hsla, pub panel_indent_guide_active: Hsla, + + /// The color of the overlay surface on top of panel. + pub panel_overlay_background: Hsla, + /// The color of the overlay surface on top of panel when hovered over. + pub panel_overlay_hover: Hsla, + pub pane_focused_border: Hsla, pub pane_group_border: Hsla, /// The color of the scrollbar thumb. @@ -326,6 +332,8 @@ pub enum ThemeColorField { PanelIndentGuide, PanelIndentGuideHover, PanelIndentGuideActive, + PanelOverlayBackground, + PanelOverlayHover, PaneFocusedBorder, PaneGroupBorder, ScrollbarThumbBackground, @@ -438,6 +446,8 @@ impl ThemeColors { ThemeColorField::PanelIndentGuide => self.panel_indent_guide, ThemeColorField::PanelIndentGuideHover => self.panel_indent_guide_hover, ThemeColorField::PanelIndentGuideActive => self.panel_indent_guide_active, + ThemeColorField::PanelOverlayBackground => self.panel_overlay_background, + ThemeColorField::PanelOverlayHover => self.panel_overlay_hover, ThemeColorField::PaneFocusedBorder => self.pane_focused_border, ThemeColorField::PaneGroupBorder => self.pane_group_border, ThemeColorField::ScrollbarThumbBackground => self.scrollbar_thumb_background, From 3a651c546b13c7b9a2a25a551975f5313b7e3793 Mon Sep 17 00:00:00 2001 From: Ben Brandt Date: Tue, 22 Jul 2025 12:12:07 +0200 Subject: [PATCH 0115/1052] context_server: Change command string field to PathBuf (#34873) Release Notes: - N/A --- .../configure_context_server_modal.rs | 8 +++++--- crates/context_server/src/context_server.rs | 4 ++-- crates/extension/src/types.rs | 4 ++-- .../src/wasm_host/wit/since_v0_6_0.rs | 4 ++-- crates/project/src/context_server_store.rs | 18 +++++++++--------- .../src/context_server_store/extension.rs | 5 +---- crates/project/src/project_settings.rs | 2 +- 7 files changed, 22 insertions(+), 23 deletions(-) diff --git a/crates/agent_ui/src/agent_configuration/configure_context_server_modal.rs b/crates/agent_ui/src/agent_configuration/configure_context_server_modal.rs index 9e5f6e09c8..06d035d836 100644 --- a/crates/agent_ui/src/agent_configuration/configure_context_server_modal.rs +++ b/crates/agent_ui/src/agent_configuration/configure_context_server_modal.rs @@ -1,4 +1,5 @@ use std::{ + path::PathBuf, sync::{Arc, Mutex}, time::Duration, }; @@ -188,7 +189,7 @@ fn context_server_input(existing: Option<(ContextServerId, ContextServerCommand) } None => ( "some-mcp-server".to_string(), - "".to_string(), + PathBuf::new(), "[]".to_string(), "{}".to_string(), ), @@ -199,13 +200,14 @@ fn context_server_input(existing: Option<(ContextServerId, ContextServerCommand) /// The name of your MCP server "{name}": {{ /// The command which runs the MCP server - "command": "{command}", + "command": "{}", /// The arguments to pass to the MCP server "args": {args}, /// The environment variables to set "env": {env} }} -}}"# +}}"#, + command.display() ) } diff --git a/crates/context_server/src/context_server.rs b/crates/context_server/src/context_server.rs index 807b17f1ca..f2517feb27 100644 --- a/crates/context_server/src/context_server.rs +++ b/crates/context_server/src/context_server.rs @@ -6,9 +6,9 @@ pub mod test; pub mod transport; pub mod types; -use std::fmt::Display; use std::path::Path; use std::sync::Arc; +use std::{fmt::Display, path::PathBuf}; use anyhow::Result; use client::Client; @@ -31,7 +31,7 @@ impl Display for ContextServerId { #[derive(Deserialize, Serialize, Clone, PartialEq, Eq, JsonSchema)] pub struct ContextServerCommand { #[serde(rename = "command")] - pub path: String, + pub path: PathBuf, pub args: Vec, pub env: Option>, } diff --git a/crates/extension/src/types.rs b/crates/extension/src/types.rs index cb24e5077b..ed9eb2ec2f 100644 --- a/crates/extension/src/types.rs +++ b/crates/extension/src/types.rs @@ -3,7 +3,7 @@ mod dap; mod lsp; mod slash_command; -use std::ops::Range; +use std::{ops::Range, path::PathBuf}; use util::redact::should_redact; @@ -18,7 +18,7 @@ pub type EnvVars = Vec<(String, String)>; /// A command. pub struct Command { /// The command to execute. - pub command: String, + pub command: PathBuf, /// The arguments to pass to the command. pub args: Vec, /// The environment variables to set for the command. diff --git a/crates/extension_host/src/wasm_host/wit/since_v0_6_0.rs b/crates/extension_host/src/wasm_host/wit/since_v0_6_0.rs index ced2ea9c67..d25328ee7f 100644 --- a/crates/extension_host/src/wasm_host/wit/since_v0_6_0.rs +++ b/crates/extension_host/src/wasm_host/wit/since_v0_6_0.rs @@ -75,7 +75,7 @@ impl From for std::ops::Range { impl From for extension::Command { fn from(value: Command) -> Self { Self { - command: value.command, + command: value.command.into(), args: value.args, env: value.env, } @@ -958,7 +958,7 @@ impl ExtensionImports for WasmState { command, } => Ok(serde_json::to_string(&settings::ContextServerSettings { command: Some(settings::CommandSettings { - path: Some(command.path), + path: command.path.to_str().map(|path| path.to_string()), arguments: Some(command.args), env: command.env.map(|env| env.into_iter().collect()), }), diff --git a/crates/project/src/context_server_store.rs b/crates/project/src/context_server_store.rs index fd31e638d4..ceec0c0a52 100644 --- a/crates/project/src/context_server_store.rs +++ b/crates/project/src/context_server_store.rs @@ -610,7 +610,7 @@ mod tests { use context_server::test::create_fake_transport; use gpui::{AppContext, TestAppContext, UpdateGlobal as _}; use serde_json::json; - use std::{cell::RefCell, rc::Rc}; + use std::{cell::RefCell, path::PathBuf, rc::Rc}; use util::path; #[gpui::test] @@ -931,7 +931,7 @@ mod tests { ContextServerSettings::Custom { enabled: true, command: ContextServerCommand { - path: "somebinary".to_string(), + path: "somebinary".into(), args: vec!["arg".to_string()], env: None, }, @@ -971,7 +971,7 @@ mod tests { ContextServerSettings::Custom { enabled: true, command: ContextServerCommand { - path: "somebinary".to_string(), + path: "somebinary".into(), args: vec!["anotherArg".to_string()], env: None, }, @@ -1053,7 +1053,7 @@ mod tests { ContextServerSettings::Custom { enabled: true, command: ContextServerCommand { - path: "somebinary".to_string(), + path: "somebinary".into(), args: vec!["arg".to_string()], env: None, }, @@ -1104,7 +1104,7 @@ mod tests { ContextServerSettings::Custom { enabled: false, command: ContextServerCommand { - path: "somebinary".to_string(), + path: "somebinary".into(), args: vec!["arg".to_string()], env: None, }, @@ -1132,7 +1132,7 @@ mod tests { ContextServerSettings::Custom { enabled: true, command: ContextServerCommand { - path: "somebinary".to_string(), + path: "somebinary".into(), args: vec!["arg".to_string()], env: None, }, @@ -1184,7 +1184,7 @@ mod tests { ContextServerSettings::Custom { enabled: true, command: ContextServerCommand { - path: "somebinary".to_string(), + path: "somebinary".into(), args: vec!["arg".to_string()], env: None, }, @@ -1256,11 +1256,11 @@ mod tests { } struct FakeContextServerDescriptor { - path: String, + path: PathBuf, } impl FakeContextServerDescriptor { - fn new(path: impl Into) -> Self { + fn new(path: impl Into) -> Self { Self { path: path.into() } } } diff --git a/crates/project/src/context_server_store/extension.rs b/crates/project/src/context_server_store/extension.rs index 1eaecd987d..1eb0fe7da1 100644 --- a/crates/project/src/context_server_store/extension.rs +++ b/crates/project/src/context_server_store/extension.rs @@ -61,10 +61,7 @@ impl registry::ContextServerDescriptor for ContextServerDescriptor { let mut command = extension .context_server_command(id.clone(), extension_project.clone()) .await?; - command.command = extension - .path_from_extension(command.command.as_ref()) - .to_string_lossy() - .to_string(); + command.command = extension.path_from_extension(&command.command); log::info!("loaded command for context server {id}: {command:?}"); diff --git a/crates/project/src/project_settings.rs b/crates/project/src/project_settings.rs index a85d90fe33..20be7fef85 100644 --- a/crates/project/src/project_settings.rs +++ b/crates/project/src/project_settings.rs @@ -581,7 +581,7 @@ impl Settings for ProjectSettings { #[derive(Deserialize)] struct VsCodeContextServerCommand { - command: String, + command: PathBuf, args: Option>, env: Option>, // note: we don't support envFile and type From c7158f0bd7ec3324fe299b4cf3e6b4e34a492436 Mon Sep 17 00:00:00 2001 From: Oleksiy Syvokon Date: Tue, 22 Jul 2025 14:23:50 +0300 Subject: [PATCH 0116/1052] Improve distinguishing user from agent edits (#34716) We no longer rely on the `author` field to tell if a change was made by the user or the agent. The `author` can be set to `User` in many situations that are not really user-made edits, such as saving a file, accepting a change, auto-formatting, and more. I started tracking and fixing some of these cases, but found that inspecting changes in `diff_base` is a more reliable method. Also, we no longer show empty diffs. For example, if the user adds a line and then removes the same line, the final diff is empty, even though the buffer is marked as user-changed. Now we won't show such edit. There are still some issues to address: - When a user edits within an unaccepted agent-written block, this change becomes a part of the agent's edit. Rejecting this block will lose user edits. It won't be displayed in project notifications, either. - Accepting an agent block counts as a user-made edit. - Agent start to call `project_notifications` tool after seeing enough auto-calls. Release Notes: - N/A --- crates/agent/src/thread.rs | 20 ++++--- crates/assistant_tool/src/action_log.rs | 56 +++++++++++--------- crates/assistant_tools/src/edit_file_tool.rs | 3 ++ 3 files changed, 42 insertions(+), 37 deletions(-) diff --git a/crates/agent/src/thread.rs b/crates/agent/src/thread.rs index e50763535a..f8a7827615 100644 --- a/crates/agent/src/thread.rs +++ b/crates/agent/src/thread.rs @@ -47,7 +47,7 @@ use std::{ time::{Duration, Instant}, }; use thiserror::Error; -use util::{ResultExt as _, debug_panic, post_inc}; +use util::{ResultExt as _, post_inc}; use uuid::Uuid; use zed_llm_client::{CompletionIntent, CompletionRequestStatus, UsageLimit}; @@ -1582,20 +1582,18 @@ impl Thread { model: Arc, cx: &mut App, ) -> Option { - let action_log = self.action_log.read(cx); + // Represent notification as a simulated `project_notifications` tool call + let tool_name = Arc::from("project_notifications"); + let tool = self.tools.read(cx).tool(&tool_name, cx)?; - if !action_log.has_unnotified_user_edits() { + if !self.profile.is_tool_enabled(tool.source(), tool.name(), cx) { return None; } - // Represent notification as a simulated `project_notifications` tool call - let tool_name = Arc::from("project_notifications"); - let Some(tool) = self.tools.read(cx).tool(&tool_name, cx) else { - debug_panic!("`project_notifications` tool not found"); - return None; - }; - - if !self.profile.is_tool_enabled(tool.source(), tool.name(), cx) { + if self + .action_log + .update(cx, |log, cx| log.unnotified_user_edits(cx).is_none()) + { return None; } diff --git a/crates/assistant_tool/src/action_log.rs b/crates/assistant_tool/src/action_log.rs index ecbbcc785e..672c048872 100644 --- a/crates/assistant_tool/src/action_log.rs +++ b/crates/assistant_tool/src/action_log.rs @@ -51,23 +51,13 @@ impl ActionLog { Some(self.tracked_buffers.get(buffer)?.snapshot.clone()) } - pub fn has_unnotified_user_edits(&self) -> bool { - self.tracked_buffers - .values() - .any(|tracked| tracked.has_unnotified_user_edits) - } - /// Return a unified diff patch with user edits made since last read or notification pub fn unnotified_user_edits(&self, cx: &Context) -> Option { - if !self.has_unnotified_user_edits() { - return None; - } - - let unified_diff = self + let diffs = self .tracked_buffers .values() .filter_map(|tracked| { - if !tracked.has_unnotified_user_edits { + if !tracked.may_have_unnotified_user_edits { return None; } @@ -95,9 +85,13 @@ impl ActionLog { Some(result) }) - .collect::>() - .join("\n\n"); + .collect::>(); + if diffs.is_empty() { + return None; + } + + let unified_diff = diffs.join("\n\n"); Some(unified_diff) } @@ -106,7 +100,7 @@ impl ActionLog { pub fn flush_unnotified_user_edits(&mut self, cx: &Context) -> Option { let patch = self.unnotified_user_edits(cx); self.tracked_buffers.values_mut().for_each(|tracked| { - tracked.has_unnotified_user_edits = false; + tracked.may_have_unnotified_user_edits = false; tracked.last_seen_base = tracked.diff_base.clone(); }); patch @@ -185,7 +179,7 @@ impl ActionLog { version: buffer.read(cx).version(), diff, diff_update: diff_update_tx, - has_unnotified_user_edits: false, + may_have_unnotified_user_edits: false, _open_lsp_handle: open_lsp_handle, _maintain_diff: cx.spawn({ let buffer = buffer.clone(); @@ -337,27 +331,34 @@ impl ActionLog { let new_snapshot = buffer_snapshot.clone(); let unreviewed_edits = tracked_buffer.unreviewed_edits.clone(); let edits = diff_snapshots(&old_snapshot, &new_snapshot); - if let ChangeAuthor::User = author - && !edits.is_empty() - { - tracked_buffer.has_unnotified_user_edits = true; - } + let mut has_user_changes = false; async move { if let ChangeAuthor::User = author { - apply_non_conflicting_edits( + has_user_changes = apply_non_conflicting_edits( &unreviewed_edits, edits, &mut base_text, new_snapshot.as_rope(), ); } - (Arc::new(base_text.to_string()), base_text) + + (Arc::new(base_text.to_string()), base_text, has_user_changes) } }); anyhow::Ok(rebase) })??; - let (new_base_text, new_diff_base) = rebase.await; + let (new_base_text, new_diff_base, has_user_changes) = rebase.await; + + this.update(cx, |this, _| { + let tracked_buffer = this + .tracked_buffers + .get_mut(buffer) + .context("buffer not tracked") + .unwrap(); + tracked_buffer.may_have_unnotified_user_edits |= has_user_changes; + })?; + Self::update_diff( this, buffer, @@ -829,11 +830,12 @@ fn apply_non_conflicting_edits( edits: Vec>, old_text: &mut Rope, new_text: &Rope, -) { +) -> bool { let mut old_edits = patch.edits().iter().cloned().peekable(); let mut new_edits = edits.into_iter().peekable(); let mut applied_delta = 0i32; let mut rebased_delta = 0i32; + let mut has_made_changes = false; while let Some(mut new_edit) = new_edits.next() { let mut conflict = false; @@ -883,8 +885,10 @@ fn apply_non_conflicting_edits( &new_text.chunks_in_range(new_bytes).collect::(), ); applied_delta += new_edit.new_len() as i32 - new_edit.old_len() as i32; + has_made_changes = true; } } + has_made_changes } fn diff_snapshots( @@ -958,7 +962,7 @@ struct TrackedBuffer { diff: Entity, snapshot: text::BufferSnapshot, diff_update: mpsc::UnboundedSender<(ChangeAuthor, text::BufferSnapshot)>, - has_unnotified_user_edits: bool, + may_have_unnotified_user_edits: bool, _open_lsp_handle: OpenLspBufferHandle, _maintain_diff: Task<()>, _subscription: Subscription, diff --git a/crates/assistant_tools/src/edit_file_tool.rs b/crates/assistant_tools/src/edit_file_tool.rs index 0423f56145..6413677bd9 100644 --- a/crates/assistant_tools/src/edit_file_tool.rs +++ b/crates/assistant_tools/src/edit_file_tool.rs @@ -278,6 +278,9 @@ impl Tool for EditFileTool { .unwrap_or(false); if format_on_save_enabled { + action_log.update(cx, |log, cx| { + log.buffer_edited(buffer.clone(), cx); + })?; let format_task = project.update(cx, |project, cx| { project.format( HashSet::from_iter([buffer.clone()]), From a3850b3d38928e87f01b67d43755b5a5cc410605 Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Tue, 22 Jul 2025 09:42:34 -0300 Subject: [PATCH 0117/1052] agent: Add `use_modifier_to_send` section in the settings view (#34866) This PR also converts all of these switch-based settings to use the new `SwitchField` component, introduced in https://github.com/zed-industries/zed/pull/34713. Release Notes: - agent: Added the ability to change the `use_modifier_to_send` setting from the agent panel settings UI. --- crates/agent_ui/src/agent_configuration.rs | 162 ++++++++------------- crates/ui/src/components/toggle.rs | 11 +- 2 files changed, 69 insertions(+), 104 deletions(-) diff --git a/crates/agent_ui/src/agent_configuration.rs b/crates/agent_ui/src/agent_configuration.rs index 0697f5dee7..b5ad6ba37c 100644 --- a/crates/agent_ui/src/agent_configuration.rs +++ b/crates/agent_ui/src/agent_configuration.rs @@ -28,7 +28,7 @@ use proto::Plan; use settings::{Settings, update_settings_file}; use ui::{ Chip, ContextMenu, Disclosure, Divider, DividerColor, ElevationIndex, Indicator, PopoverMenu, - Scrollbar, ScrollbarState, Switch, SwitchColor, Tooltip, prelude::*, + Scrollbar, ScrollbarState, Switch, SwitchColor, SwitchField, Tooltip, prelude::*, }; use util::ResultExt as _; use workspace::Workspace; @@ -330,119 +330,74 @@ impl AgentConfiguration { fn render_command_permission(&mut self, cx: &mut Context) -> impl IntoElement { let always_allow_tool_actions = AgentSettings::get_global(cx).always_allow_tool_actions; + let fs = self.fs.clone(); - h_flex() - .gap_4() - .justify_between() - .flex_wrap() - .child( - v_flex() - .gap_0p5() - .max_w_5_6() - .child(Label::new("Allow running editing tools without asking for confirmation")) - .child( - Label::new( - "The agent can perform potentially destructive actions without asking for your confirmation.", - ) - .color(Color::Muted), - ), - ) - .child( - Switch::new( - "always-allow-tool-actions-switch", - always_allow_tool_actions.into(), - ) - .color(SwitchColor::Accent) - .on_click({ - let fs = self.fs.clone(); - move |state, _window, cx| { - let allow = state == &ToggleState::Selected; - update_settings_file::( - fs.clone(), - cx, - move |settings, _| { - settings.set_always_allow_tool_actions(allow); - }, - ); - } - }), - ) + SwitchField::new( + "single-file-review", + "Enable single-file agent reviews", + "Agent edits are also displayed in single-file editors for review.", + always_allow_tool_actions, + move |state, _window, cx| { + let allow = state == &ToggleState::Selected; + update_settings_file::(fs.clone(), cx, move |settings, _| { + settings.set_always_allow_tool_actions(allow); + }); + }, + ) } fn render_single_file_review(&mut self, cx: &mut Context) -> impl IntoElement { let single_file_review = AgentSettings::get_global(cx).single_file_review; + let fs = self.fs.clone(); - h_flex() - .gap_4() - .justify_between() - .flex_wrap() - .child( - v_flex() - .gap_0p5() - .max_w_5_6() - .child(Label::new("Enable single-file agent reviews")) - .child( - Label::new( - "Agent edits are also displayed in single-file editors for review.", - ) - .color(Color::Muted), - ), - ) - .child( - Switch::new("single-file-review-switch", single_file_review.into()) - .color(SwitchColor::Accent) - .on_click({ - let fs = self.fs.clone(); - move |state, _window, cx| { - let allow = state == &ToggleState::Selected; - update_settings_file::( - fs.clone(), - cx, - move |settings, _| { - settings.set_single_file_review(allow); - }, - ); - } - }), - ) + SwitchField::new( + "single-file-review", + "Enable single-file agent reviews", + "Agent edits are also displayed in single-file editors for review.", + single_file_review, + move |state, _window, cx| { + let allow = state == &ToggleState::Selected; + update_settings_file::(fs.clone(), cx, move |settings, _| { + settings.set_single_file_review(allow); + }); + }, + ) } fn render_sound_notification(&mut self, cx: &mut Context) -> impl IntoElement { let play_sound_when_agent_done = AgentSettings::get_global(cx).play_sound_when_agent_done; + let fs = self.fs.clone(); - h_flex() - .gap_4() - .justify_between() - .flex_wrap() - .child( - v_flex() - .gap_0p5() - .max_w_5_6() - .child(Label::new("Play sound when finished generating")) - .child( - Label::new( - "Hear a notification sound when the agent is done generating changes or needs your input.", - ) - .color(Color::Muted), - ), - ) - .child( - Switch::new("play-sound-notification-switch", play_sound_when_agent_done.into()) - .color(SwitchColor::Accent) - .on_click({ - let fs = self.fs.clone(); - move |state, _window, cx| { - let allow = state == &ToggleState::Selected; - update_settings_file::( - fs.clone(), - cx, - move |settings, _| { - settings.set_play_sound_when_agent_done(allow); - }, - ); - } - }), - ) + SwitchField::new( + "sound-notification", + "Play sound when finished generating", + "Hear a notification sound when the agent is done generating changes or needs your input.", + play_sound_when_agent_done, + move |state, _window, cx| { + let allow = state == &ToggleState::Selected; + update_settings_file::(fs.clone(), cx, move |settings, _| { + settings.set_play_sound_when_agent_done(allow); + }); + }, + ) + } + + fn render_modifier_to_send(&mut self, cx: &mut Context) -> impl IntoElement { + let use_modifier_to_send = AgentSettings::get_global(cx).use_modifier_to_send; + let fs = self.fs.clone(); + + SwitchField::new( + "modifier-send", + "Use modifier to submit a message", + "Make a modifier (cmd-enter on macOS, ctrl-enter on Linux) required to send messages.", + use_modifier_to_send, + move |state, _window, cx| { + let allow = state == &ToggleState::Selected; + update_settings_file::(fs.clone(), cx, move |settings, _| { + settings.set_use_modifier_to_send(allow); + }); + }, + ) } fn render_general_settings_section(&mut self, cx: &mut Context) -> impl IntoElement { @@ -456,6 +411,7 @@ impl AgentConfiguration { .child(self.render_command_permission(cx)) .child(self.render_single_file_review(cx)) .child(self.render_sound_notification(cx)) + .child(self.render_modifier_to_send(cx)) } fn render_zed_plan_info(&self, plan: Option, cx: &mut Context) -> impl IntoElement { diff --git a/crates/ui/src/components/toggle.rs b/crates/ui/src/components/toggle.rs index 759b225434..cf2a56b1c9 100644 --- a/crates/ui/src/components/toggle.rs +++ b/crates/ui/src/components/toggle.rs @@ -588,7 +588,7 @@ impl SwitchField { toggle_state: toggle_state.into(), on_click: Arc::new(on_click), disabled: false, - color: SwitchColor::default(), + color: SwitchColor::Accent, } } @@ -634,6 +634,15 @@ impl RenderOnce for SwitchField { } }), ) + .when(!self.disabled, |this| { + this.on_click({ + let on_click = self.on_click.clone(); + let toggle_state = self.toggle_state; + move |_click, window, cx| { + (on_click)(&toggle_state.inverse(), window, cx); + } + }) + }) } } From 31aab89ab0343b9b6388224f4e8ec2fa3f91fe2e Mon Sep 17 00:00:00 2001 From: Umesh Yadav <23421535+imumesh18@users.noreply.github.com> Date: Tue, 22 Jul 2025 18:24:06 +0530 Subject: [PATCH 0118/1052] ai_onboarding: Fix API key onboarding callout not showing properly (#34880) The current onboarding callout for ApiKeysWithProviders is broken. | Before | After | |--------|--------| | CleanShot 2025-07-22 at 16 21
53@2x | CleanShot 2025-07-22 at 16 22
38@2x | cc @danilo-leal Release Notes: - N/A --------- Co-authored-by: Danilo Leal --- .../src/agent_api_keys_onboarding.rs | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/crates/ai_onboarding/src/agent_api_keys_onboarding.rs b/crates/ai_onboarding/src/agent_api_keys_onboarding.rs index 4f9e20cf77..883317e566 100644 --- a/crates/ai_onboarding/src/agent_api_keys_onboarding.rs +++ b/crates/ai_onboarding/src/agent_api_keys_onboarding.rs @@ -38,10 +38,6 @@ impl ApiKeysWithProviders { .map(|provider| (provider.icon(), provider.name().0.clone())) .collect() } - - pub fn has_providers(&self) -> bool { - !self.configured_providers.is_empty() - } } impl Render for ApiKeysWithProviders { @@ -53,11 +49,10 @@ impl Render for ApiKeysWithProviders { .map(|(icon, name)| { h_flex() .gap_1p5() - .child(Icon::new(icon).size(IconSize::Small).color(Color::Muted)) + .child(Icon::new(icon).size(IconSize::XSmall).color(Color::Muted)) .child(Label::new(name)) }); - - h_flex() + div() .mx_2p5() .p_1() .pb_0() @@ -85,8 +80,24 @@ impl Render for ApiKeysWithProviders { .border_x_1() .border_color(cx.theme().colors().border) .bg(cx.theme().colors().panel_background) - .child(Icon::new(IconName::Info).size(IconSize::XSmall).color(Color::Muted)) - .child(Label::new("Or start now using API keys from your environment for the following providers:").color(Color::Muted)) + .child( + h_flex() + .min_w_0() + .gap_2() + .child( + Icon::new(IconName::Info) + .size(IconSize::XSmall) + .color(Color::Muted) + ) + .child( + div() + .w_full() + .child( + Label::new("Or start now using API keys from your environment for the following providers:") + .color(Color::Muted) + ) + ) + ) .children(configured_providers_list) ) } From 30177b87d6c1fb76f809f470f1ea42249f7ab662 Mon Sep 17 00:00:00 2001 From: Ben Kunkle Date: Tue, 22 Jul 2025 08:51:30 -0500 Subject: [PATCH 0119/1052] Fix detection of pending bindings when binding in parent context matches (#34856) Broke in #34664 Release Notes: - N/A *or* Added/Fixed/Improved ... Co-authored-by: Conrad --- crates/gpui/src/keymap.rs | 314 ++++++++++++++++++++++++++++++-------- 1 file changed, 249 insertions(+), 65 deletions(-) diff --git a/crates/gpui/src/keymap.rs b/crates/gpui/src/keymap.rs index 174dbc80f0..69700e64dc 100644 --- a/crates/gpui/src/keymap.rs +++ b/crates/gpui/src/keymap.rs @@ -5,7 +5,7 @@ pub use binding::*; pub use context::*; use crate::{Action, Keystroke, is_no_action}; -use collections::HashMap; +use collections::{HashMap, HashSet}; use smallvec::SmallVec; use std::any::TypeId; @@ -167,76 +167,49 @@ impl Keymap { input: &[Keystroke], context_stack: &[KeyContext], ) -> (SmallVec<[(BindingIndex, KeyBinding); 1]>, bool) { - let mut possibilities = self - .bindings() - .enumerate() - .rev() - .filter_map(|(ix, binding)| { - let depth = self.binding_enabled(binding, &context_stack)?; - let pending = binding.match_keystrokes(input)?; - Some((depth, BindingIndex(ix), binding, pending)) - }) - .collect::>(); - possibilities.sort_by(|(depth_a, ix_a, _, _), (depth_b, ix_b, _, _)| { + let mut bindings: SmallVec<[(usize, BindingIndex, &KeyBinding); 1]> = SmallVec::new(); + let mut pending_bindings: SmallVec<[(BindingIndex, &KeyBinding); 1]> = SmallVec::new(); + + for (ix, binding) in self.bindings().enumerate().rev() { + let Some(depth) = self.binding_enabled(binding, &context_stack) else { + continue; + }; + let Some(pending) = binding.match_keystrokes(input) else { + continue; + }; + + if !pending { + bindings.push((depth, BindingIndex(ix), binding)) + } else { + pending_bindings.push((BindingIndex(ix), binding)) + } + } + + bindings.sort_by(|(depth_a, ix_a, _), (depth_b, ix_b, _)| { depth_b.cmp(depth_a).then(ix_b.cmp(ix_a)) }); - let mut bindings: SmallVec<[(BindingIndex, KeyBinding, usize); 1]> = SmallVec::new(); - - // (pending, is_no_action, depth, keystrokes) - let mut pending_info_opt: Option<(bool, bool, usize, &[Keystroke])> = None; - - 'outer: for (depth, binding_index, binding, pending) in possibilities { - let is_no_action = is_no_action(&*binding.action); - // We only want to consider a binding pending if it has an action - // This, however, means that if we have both a NoAction binding and a binding - // with an action at the same depth, we should still set is_pending to true. - if let Some(pending_info) = pending_info_opt.as_mut() { - let (already_pending, pending_is_no_action, pending_depth, pending_keystrokes) = - *pending_info; - - // We only want to change the pending status if it's not already pending AND if - // the existing pending status was set by a NoAction binding. This avoids a NoAction - // binding erroneously setting the pending status to true when a binding with an action - // already set it to false - // - // We also want to change the pending status if the keystrokes don't match, - // meaning it's different keystrokes than the NoAction that set pending to false - if pending - && !already_pending - && pending_is_no_action - && (pending_depth == depth || pending_keystrokes != binding.keystrokes()) - { - pending_info.0 = !is_no_action; - } - } else { - pending_info_opt = Some(( - pending && !is_no_action, - is_no_action, - depth, - binding.keystrokes(), - )); - } - - if !pending { - bindings.push((binding_index, binding.clone(), depth)); - continue 'outer; - } - } - // sort by descending depth - bindings.sort_by(|a, b| a.2.cmp(&b.2).reverse()); - let bindings = bindings + let bindings: SmallVec<[_; 1]> = bindings .into_iter() - .map_while(|(binding_index, binding, _)| { - if is_no_action(&*binding.action) { - None - } else { - Some((binding_index, binding)) - } - }) + .take_while(|(_, _, binding)| !is_no_action(&*binding.action)) + .map(|(_, ix, binding)| (ix, binding.clone())) .collect(); - (bindings, pending_info_opt.unwrap_or_default().0) + let mut pending = HashSet::default(); + for (ix, binding) in pending_bindings.into_iter().rev() { + if let Some((binding_ix, _)) = bindings.first() + && *binding_ix > ix + { + continue; + } + if is_no_action(&*binding.action) { + pending.remove(&&binding.keystrokes); + continue; + } + pending.insert(&binding.keystrokes); + } + + (bindings, !pending.is_empty()) } /// Check if the given binding is enabled, given a certain key context. @@ -302,6 +275,30 @@ mod tests { ); } + #[test] + fn test_depth_precedence() { + let bindings = [ + KeyBinding::new("ctrl-a", ActionBeta {}, Some("pane")), + KeyBinding::new("ctrl-a", ActionGamma {}, Some("editor")), + ]; + + let mut keymap = Keymap::default(); + keymap.add_bindings(bindings.clone()); + + let (result, pending) = keymap.bindings_for_input( + &[Keystroke::parse("ctrl-a").unwrap()], + &[ + KeyContext::parse("pane").unwrap(), + KeyContext::parse("editor").unwrap(), + ], + ); + + assert!(!pending); + assert_eq!(result.len(), 2); + assert!(result[0].action.partial_eq(&ActionGamma {})); + assert!(result[1].action.partial_eq(&ActionBeta {})); + } + #[test] fn test_keymap_disabled() { let bindings = [ @@ -453,6 +450,193 @@ mod tests { assert_eq!(space_editor.1, true); } + #[test] + fn test_override_multikey() { + let bindings = [ + KeyBinding::new("ctrl-w left", ActionAlpha {}, Some("editor")), + KeyBinding::new("ctrl-w", NoAction {}, Some("editor")), + ]; + + let mut keymap = Keymap::default(); + keymap.add_bindings(bindings.clone()); + + // Ensure `space` results in pending input on the workspace, but not editor + let (result, pending) = keymap.bindings_for_input( + &[Keystroke::parse("ctrl-w").unwrap()], + &[KeyContext::parse("editor").unwrap()], + ); + assert!(result.is_empty()); + assert_eq!(pending, true); + + let bindings = [ + KeyBinding::new("ctrl-w left", ActionAlpha {}, Some("editor")), + KeyBinding::new("ctrl-w", ActionBeta {}, Some("editor")), + ]; + + let mut keymap = Keymap::default(); + keymap.add_bindings(bindings.clone()); + + // Ensure `space` results in pending input on the workspace, but not editor + let (result, pending) = keymap.bindings_for_input( + &[Keystroke::parse("ctrl-w").unwrap()], + &[KeyContext::parse("editor").unwrap()], + ); + assert_eq!(result.len(), 1); + assert_eq!(pending, false); + } + + #[test] + fn test_simple_disable() { + let bindings = [ + KeyBinding::new("ctrl-x", ActionAlpha {}, Some("editor")), + KeyBinding::new("ctrl-x", NoAction {}, Some("editor")), + ]; + + let mut keymap = Keymap::default(); + keymap.add_bindings(bindings.clone()); + + // Ensure `space` results in pending input on the workspace, but not editor + let (result, pending) = keymap.bindings_for_input( + &[Keystroke::parse("ctrl-x").unwrap()], + &[KeyContext::parse("editor").unwrap()], + ); + assert!(result.is_empty()); + assert_eq!(pending, false); + } + + #[test] + fn test_fail_to_disable() { + // disabled at the wrong level + let bindings = [ + KeyBinding::new("ctrl-x", ActionAlpha {}, Some("editor")), + KeyBinding::new("ctrl-x", NoAction {}, Some("workspace")), + ]; + + let mut keymap = Keymap::default(); + keymap.add_bindings(bindings.clone()); + + // Ensure `space` results in pending input on the workspace, but not editor + let (result, pending) = keymap.bindings_for_input( + &[Keystroke::parse("ctrl-x").unwrap()], + &[ + KeyContext::parse("workspace").unwrap(), + KeyContext::parse("editor").unwrap(), + ], + ); + assert_eq!(result.len(), 1); + assert_eq!(pending, false); + } + + #[test] + fn test_disable_deeper() { + let bindings = [ + KeyBinding::new("ctrl-x", ActionAlpha {}, Some("workspace")), + KeyBinding::new("ctrl-x", NoAction {}, Some("editor")), + ]; + + let mut keymap = Keymap::default(); + keymap.add_bindings(bindings.clone()); + + // Ensure `space` results in pending input on the workspace, but not editor + let (result, pending) = keymap.bindings_for_input( + &[Keystroke::parse("ctrl-x").unwrap()], + &[ + KeyContext::parse("workspace").unwrap(), + KeyContext::parse("editor").unwrap(), + ], + ); + assert_eq!(result.len(), 0); + assert_eq!(pending, false); + } + + #[test] + fn test_pending_match_enabled() { + let bindings = [ + KeyBinding::new("ctrl-x", ActionBeta, Some("vim_mode == normal")), + KeyBinding::new("ctrl-x 0", ActionAlpha, Some("Workspace")), + ]; + let mut keymap = Keymap::default(); + keymap.add_bindings(bindings.clone()); + + let matched = keymap.bindings_for_input( + &[Keystroke::parse("ctrl-x")].map(Result::unwrap), + &[ + KeyContext::parse("Workspace"), + KeyContext::parse("Pane"), + KeyContext::parse("Editor vim_mode=normal"), + ] + .map(Result::unwrap), + ); + assert_eq!(matched.0.len(), 1); + assert!(matched.0[0].action.partial_eq(&ActionBeta)); + assert!(matched.1); + } + + #[test] + fn test_pending_match_enabled_extended() { + let bindings = [ + KeyBinding::new("ctrl-x", ActionBeta, Some("vim_mode == normal")), + KeyBinding::new("ctrl-x 0", NoAction, Some("Workspace")), + ]; + let mut keymap = Keymap::default(); + keymap.add_bindings(bindings.clone()); + + let matched = keymap.bindings_for_input( + &[Keystroke::parse("ctrl-x")].map(Result::unwrap), + &[ + KeyContext::parse("Workspace"), + KeyContext::parse("Pane"), + KeyContext::parse("Editor vim_mode=normal"), + ] + .map(Result::unwrap), + ); + assert_eq!(matched.0.len(), 1); + assert!(matched.0[0].action.partial_eq(&ActionBeta)); + assert!(!matched.1); + let bindings = [ + KeyBinding::new("ctrl-x", ActionBeta, Some("Workspace")), + KeyBinding::new("ctrl-x 0", NoAction, Some("vim_mode == normal")), + ]; + let mut keymap = Keymap::default(); + keymap.add_bindings(bindings.clone()); + + let matched = keymap.bindings_for_input( + &[Keystroke::parse("ctrl-x")].map(Result::unwrap), + &[ + KeyContext::parse("Workspace"), + KeyContext::parse("Pane"), + KeyContext::parse("Editor vim_mode=normal"), + ] + .map(Result::unwrap), + ); + assert_eq!(matched.0.len(), 1); + assert!(matched.0[0].action.partial_eq(&ActionBeta)); + assert!(!matched.1); + } + + #[test] + fn test_overriding_prefix() { + let bindings = [ + KeyBinding::new("ctrl-x 0", ActionAlpha, Some("Workspace")), + KeyBinding::new("ctrl-x", ActionBeta, Some("vim_mode == normal")), + ]; + let mut keymap = Keymap::default(); + keymap.add_bindings(bindings.clone()); + + let matched = keymap.bindings_for_input( + &[Keystroke::parse("ctrl-x")].map(Result::unwrap), + &[ + KeyContext::parse("Workspace"), + KeyContext::parse("Pane"), + KeyContext::parse("Editor vim_mode=normal"), + ] + .map(Result::unwrap), + ); + assert_eq!(matched.0.len(), 1); + assert!(matched.0[0].action.partial_eq(&ActionBeta)); + assert!(!matched.1); + } + #[test] fn test_bindings_for_action() { let bindings = [ From 2eeab5b0bf9921814c9d8a1824a3d09d3f5397f4 Mon Sep 17 00:00:00 2001 From: Peter Tripp Date: Tue, 22 Jul 2025 10:52:04 -0400 Subject: [PATCH 0120/1052] textmate: Correct context for 'Editor && mode == full' keybinds (#34895) Closes https://github.com/zed-industries/zed/issues/34891 Release Notes: - Fixed textmate keymap misbehaving in certain contexts --- assets/keymaps/macos/textmate.json | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/assets/keymaps/macos/textmate.json b/assets/keymaps/macos/textmate.json index dccb675f6c..0bd8873b17 100644 --- a/assets/keymaps/macos/textmate.json +++ b/assets/keymaps/macos/textmate.json @@ -6,7 +6,7 @@ } }, { - "context": "Editor", + "context": "Editor && mode == full", "bindings": { "cmd-l": "go_to_line::Toggle", "ctrl-shift-d": "editor::DuplicateLineDown", @@ -15,7 +15,12 @@ "cmd-enter": "editor::NewlineBelow", "cmd-alt-enter": "editor::NewlineAbove", "cmd-shift-l": "editor::SelectLine", - "cmd-shift-t": "outline::Toggle", + "cmd-shift-t": "outline::Toggle" + } + }, + { + "context": "Editor", + "bindings": { "alt-backspace": "editor::DeleteToPreviousWordStart", "alt-shift-backspace": "editor::DeleteToNextWordEnd", "alt-delete": "editor::DeleteToNextWordEnd", @@ -39,10 +44,6 @@ "ctrl-_": "editor::ConvertToSnakeCase" } }, - { - "context": "Editor && mode == full", - "bindings": {} - }, { "context": "BufferSearchBar", "bindings": { From 1a76a6b0bfc5145cf51355ff7777b0413063a868 Mon Sep 17 00:00:00 2001 From: Ben Kunkle Date: Tue, 22 Jul 2025 09:59:51 -0500 Subject: [PATCH 0121/1052] gpui: Simplify `bindings_for_action` API (#34857) Closes #ISSUE Simplifies the API to no longer have a variant that returns indices. The downside is that a few places that used to call `bindings_for_action_with_indices` now compare `Box` instead of indices, however the result is the removal of wrapper code and index handling that is largely unnecessary Release Notes: - N/A *or* Added/Fixed/Improved ... Co-authored-by: Conrad --- crates/gpui/src/key_dispatch.rs | 39 +++++++++--------------- crates/gpui/src/keymap.rs | 53 +++++++++++---------------------- 2 files changed, 31 insertions(+), 61 deletions(-) diff --git a/crates/gpui/src/key_dispatch.rs b/crates/gpui/src/key_dispatch.rs index a290a132c3..cc6ebb9b08 100644 --- a/crates/gpui/src/key_dispatch.rs +++ b/crates/gpui/src/key_dispatch.rs @@ -50,8 +50,8 @@ /// KeyBinding::new("cmd-k left", pane::SplitLeft, Some("Pane")) /// use crate::{ - Action, ActionRegistry, App, BindingIndex, DispatchPhase, EntityId, FocusId, KeyBinding, - KeyContext, Keymap, Keystroke, ModifiersChangedEvent, Window, + Action, ActionRegistry, App, DispatchPhase, EntityId, FocusId, KeyBinding, KeyContext, Keymap, + Keystroke, ModifiersChangedEvent, Window, }; use collections::FxHashMap; use smallvec::SmallVec; @@ -406,16 +406,11 @@ impl DispatchTree { // methods, but this can't be done very cleanly since keymap must be borrowed. let keymap = self.keymap.borrow(); keymap - .bindings_for_action_with_indices(action) - .filter(|(binding_index, binding)| { - Self::binding_matches_predicate_and_not_shadowed( - &keymap, - *binding_index, - &binding.keystrokes, - context_stack, - ) + .bindings_for_action(action) + .filter(|binding| { + Self::binding_matches_predicate_and_not_shadowed(&keymap, &binding, context_stack) }) - .map(|(_, binding)| binding.clone()) + .cloned() .collect() } @@ -428,28 +423,22 @@ impl DispatchTree { ) -> Option { let keymap = self.keymap.borrow(); keymap - .bindings_for_action_with_indices(action) + .bindings_for_action(action) .rev() - .find_map(|(binding_index, binding)| { - let found = Self::binding_matches_predicate_and_not_shadowed( - &keymap, - binding_index, - &binding.keystrokes, - context_stack, - ); - if found { Some(binding.clone()) } else { None } + .find(|binding| { + Self::binding_matches_predicate_and_not_shadowed(&keymap, &binding, context_stack) }) + .cloned() } fn binding_matches_predicate_and_not_shadowed( keymap: &Keymap, - binding_index: BindingIndex, - keystrokes: &[Keystroke], + binding: &KeyBinding, context_stack: &[KeyContext], ) -> bool { - let (bindings, _) = keymap.bindings_for_input_with_indices(&keystrokes, context_stack); - if let Some((highest_precedence_index, _)) = bindings.iter().next() { - binding_index == *highest_precedence_index + let (bindings, _) = keymap.bindings_for_input(&binding.keystrokes, context_stack); + if let Some(found) = bindings.iter().next() { + found.action.partial_eq(binding.action.as_ref()) } else { false } diff --git a/crates/gpui/src/keymap.rs b/crates/gpui/src/keymap.rs index 69700e64dc..83d7479a04 100644 --- a/crates/gpui/src/keymap.rs +++ b/crates/gpui/src/keymap.rs @@ -77,15 +77,6 @@ impl Keymap { &'a self, action: &'a dyn Action, ) -> impl 'a + DoubleEndedIterator { - self.bindings_for_action_with_indices(action) - .map(|(_, binding)| binding) - } - - /// Like `bindings_for_action_with_indices`, but also returns the binding indices. - pub fn bindings_for_action_with_indices<'a>( - &'a self, - action: &'a dyn Action, - ) -> impl 'a + DoubleEndedIterator { let action_id = action.type_id(); let binding_indices = self .binding_indices_by_action_id @@ -118,7 +109,7 @@ impl Keymap { } } - Some((BindingIndex(*ix), binding)) + Some(binding) }) } @@ -153,22 +144,8 @@ impl Keymap { input: &[Keystroke], context_stack: &[KeyContext], ) -> (SmallVec<[KeyBinding; 1]>, bool) { - let (bindings, pending) = self.bindings_for_input_with_indices(input, context_stack); - let bindings = bindings - .into_iter() - .map(|(_, binding)| binding) - .collect::>(); - (bindings, pending) - } - - /// Like `bindings_for_input`, but also returns the binding indices. - pub fn bindings_for_input_with_indices( - &self, - input: &[Keystroke], - context_stack: &[KeyContext], - ) -> (SmallVec<[(BindingIndex, KeyBinding); 1]>, bool) { - let mut bindings: SmallVec<[(usize, BindingIndex, &KeyBinding); 1]> = SmallVec::new(); - let mut pending_bindings: SmallVec<[(BindingIndex, &KeyBinding); 1]> = SmallVec::new(); + let mut matched_bindings = SmallVec::<[(usize, BindingIndex, &KeyBinding); 1]>::new(); + let mut pending_bindings = SmallVec::<[(BindingIndex, &KeyBinding); 1]>::new(); for (ix, binding) in self.bindings().enumerate().rev() { let Some(depth) = self.binding_enabled(binding, &context_stack) else { @@ -179,26 +156,30 @@ impl Keymap { }; if !pending { - bindings.push((depth, BindingIndex(ix), binding)) + matched_bindings.push((depth, BindingIndex(ix), binding)); } else { - pending_bindings.push((BindingIndex(ix), binding)) + pending_bindings.push((BindingIndex(ix), binding)); } } - bindings.sort_by(|(depth_a, ix_a, _), (depth_b, ix_b, _)| { + matched_bindings.sort_by(|(depth_a, ix_a, _), (depth_b, ix_b, _)| { depth_b.cmp(depth_a).then(ix_b.cmp(ix_a)) }); - let bindings: SmallVec<[_; 1]> = bindings - .into_iter() - .take_while(|(_, _, binding)| !is_no_action(&*binding.action)) - .map(|(_, ix, binding)| (ix, binding.clone())) - .collect(); + let mut bindings: SmallVec<[_; 1]> = SmallVec::new(); + let mut first_binding_index = None; + for (_, ix, binding) in matched_bindings { + if is_no_action(&*binding.action) { + break; + } + bindings.push(binding.clone()); + first_binding_index.get_or_insert(ix); + } let mut pending = HashSet::default(); for (ix, binding) in pending_bindings.into_iter().rev() { - if let Some((binding_ix, _)) = bindings.first() - && *binding_ix > ix + if let Some(binding_ix) = first_binding_index + && binding_ix > ix { continue; } From 230061a6cb79c93faf3e3a9ff880207dc6668e37 Mon Sep 17 00:00:00 2001 From: Bennet Bo Fenner Date: Tue, 22 Jul 2025 17:20:07 +0200 Subject: [PATCH 0122/1052] Support multiple OpenAI compatible providers (#34212) TODO - [x] OpenAI Compatible API Icon - [x] Docs - [x] Link to docs in OpenAI provider section about configuring OpenAI API compatible providers Closes #33992 Related to #30010 Release Notes: - agent: Add support for adding multiple OpenAI API compatible providers --------- Co-authored-by: MrSubidubi Co-authored-by: Danilo Leal --- Cargo.lock | 4 +- assets/icons/ai_open_ai_compat.svg | 4 + assets/settings/default.json | 1 + crates/agent/src/thread.rs | 2 +- crates/agent_ui/Cargo.toml | 2 + crates/agent_ui/src/active_thread.rs | 4 +- crates/agent_ui/src/agent_configuration.rs | 55 +- .../add_llm_provider_modal.rs | 639 ++++++++++++++++++ .../src/assistant_context_tests.rs | 2 +- .../src/project_notifications_tool.rs | 2 +- crates/icons/src/icons.rs | 1 + crates/language_model/src/fake_provider.rs | 55 +- crates/language_model/src/language_model.rs | 12 + crates/language_model/src/registry.rs | 9 +- crates/language_models/Cargo.toml | 2 +- crates/language_models/src/language_models.rs | 72 +- crates/language_models/src/provider.rs | 1 + .../language_models/src/provider/open_ai.rs | 192 ++---- .../src/provider/open_ai_compatible.rs | 522 ++++++++++++++ crates/language_models/src/settings.rs | 27 +- crates/ui/src/components/modal.rs | 16 +- crates/ui_input/src/ui_input.rs | 4 + docs/src/ai/configuration.md | 13 +- 23 files changed, 1450 insertions(+), 191 deletions(-) create mode 100644 assets/icons/ai_open_ai_compat.svg create mode 100644 crates/agent_ui/src/agent_configuration/add_llm_provider_modal.rs create mode 100644 crates/language_models/src/provider/open_ai_compatible.rs diff --git a/Cargo.lock b/Cargo.lock index ad6c40bcf2..c7297e6d59 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -231,6 +231,7 @@ dependencies = [ "jsonschema", "language", "language_model", + "language_models", "languages", "log", "lsp", @@ -269,6 +270,7 @@ dependencies = [ "time_format", "tree-sitter-md", "ui", + "ui_input", "unindent", "urlencoding", "util", @@ -9097,11 +9099,11 @@ dependencies = [ "client", "collections", "component", + "convert_case 0.8.0", "copilot", "credentials_provider", "deepseek", "editor", - "fs", "futures 0.3.31", "google_ai", "gpui", diff --git a/assets/icons/ai_open_ai_compat.svg b/assets/icons/ai_open_ai_compat.svg new file mode 100644 index 0000000000..f6557caac3 --- /dev/null +++ b/assets/icons/ai_open_ai_compat.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/settings/default.json b/assets/settings/default.json index 358871650b..309afaccf5 100644 --- a/assets/settings/default.json +++ b/assets/settings/default.json @@ -1712,6 +1712,7 @@ "openai": { "api_url": "https://api.openai.com/v1" }, + "openai_compatible": {}, "open_router": { "api_url": "https://openrouter.ai/api/v1" }, diff --git a/crates/agent/src/thread.rs b/crates/agent/src/thread.rs index f8a7827615..1b3b022ab2 100644 --- a/crates/agent/src/thread.rs +++ b/crates/agent/src/thread.rs @@ -5490,7 +5490,7 @@ fn main() {{ let thread = thread_store.update(cx, |store, cx| store.create_thread(cx)); let context_store = cx.new(|_cx| ContextStore::new(project.downgrade(), None)); - let provider = Arc::new(FakeLanguageModelProvider); + let provider = Arc::new(FakeLanguageModelProvider::default()); let model = provider.test_model(); let model: Arc = Arc::new(model); diff --git a/crates/agent_ui/Cargo.toml b/crates/agent_ui/Cargo.toml index e55ae86fb7..33042c0ebd 100644 --- a/crates/agent_ui/Cargo.toml +++ b/crates/agent_ui/Cargo.toml @@ -53,6 +53,7 @@ itertools.workspace = true jsonschema.workspace = true language.workspace = true language_model.workspace = true +language_models.workspace = true log.workspace = true lsp.workspace = true markdown.workspace = true @@ -87,6 +88,7 @@ theme.workspace = true time.workspace = true time_format.workspace = true ui.workspace = true +ui_input.workspace = true urlencoding.workspace = true util.workspace = true uuid.workspace = true diff --git a/crates/agent_ui/src/active_thread.rs b/crates/agent_ui/src/active_thread.rs index bfed81f5b7..e27c318221 100644 --- a/crates/agent_ui/src/active_thread.rs +++ b/crates/agent_ui/src/active_thread.rs @@ -3895,7 +3895,7 @@ mod tests { LanguageModelRegistry::global(cx).update(cx, |registry, cx| { registry.set_default_model( Some(ConfiguredModel { - provider: Arc::new(FakeLanguageModelProvider), + provider: Arc::new(FakeLanguageModelProvider::default()), model, }), cx, @@ -3979,7 +3979,7 @@ mod tests { LanguageModelRegistry::global(cx).update(cx, |registry, cx| { registry.set_default_model( Some(ConfiguredModel { - provider: Arc::new(FakeLanguageModelProvider), + provider: Arc::new(FakeLanguageModelProvider::default()), model: model.clone(), }), cx, diff --git a/crates/agent_ui/src/agent_configuration.rs b/crates/agent_ui/src/agent_configuration.rs index b5ad6ba37c..334c5ee6dc 100644 --- a/crates/agent_ui/src/agent_configuration.rs +++ b/crates/agent_ui/src/agent_configuration.rs @@ -1,3 +1,4 @@ +mod add_llm_provider_modal; mod configure_context_server_modal; mod manage_profiles_modal; mod tool_picker; @@ -37,7 +38,10 @@ use zed_actions::ExtensionCategoryFilter; pub(crate) use configure_context_server_modal::ConfigureContextServerModal; pub(crate) use manage_profiles_modal::ManageProfilesModal; -use crate::AddContextServer; +use crate::{ + AddContextServer, + agent_configuration::add_llm_provider_modal::{AddLlmProviderModal, LlmCompatibleProvider}, +}; pub struct AgentConfiguration { fs: Arc, @@ -304,16 +308,55 @@ impl AgentConfiguration { v_flex() .child( - v_flex() + h_flex() .p(DynamicSpacing::Base16.rems(cx)) .pr(DynamicSpacing::Base20.rems(cx)) .pb_0() .mb_2p5() - .gap_0p5() - .child(Headline::new("LLM Providers")) + .items_start() + .justify_between() .child( - Label::new("Add at least one provider to use AI-powered features.") - .color(Color::Muted), + v_flex() + .gap_0p5() + .child(Headline::new("LLM Providers")) + .child( + Label::new("Add at least one provider to use AI-powered features.") + .color(Color::Muted), + ), + ) + .child( + PopoverMenu::new("add-provider-popover") + .trigger( + Button::new("add-provider", "Add Provider") + .icon_position(IconPosition::Start) + .icon(IconName::Plus) + .icon_size(IconSize::Small) + .icon_color(Color::Muted) + .label_size(LabelSize::Small), + ) + .anchor(gpui::Corner::TopRight) + .menu({ + let workspace = self.workspace.clone(); + move |window, cx| { + Some(ContextMenu::build(window, cx, |menu, _window, _cx| { + menu.header("Compatible APIs").entry("OpenAI", None, { + let workspace = workspace.clone(); + move |window, cx| { + workspace + .update(cx, |workspace, cx| { + AddLlmProviderModal::toggle( + LlmCompatibleProvider::OpenAi, + workspace, + window, + cx, + ); + }) + .log_err(); + } + }) + })) + } + }), ), ) .child( diff --git a/crates/agent_ui/src/agent_configuration/add_llm_provider_modal.rs b/crates/agent_ui/src/agent_configuration/add_llm_provider_modal.rs new file mode 100644 index 0000000000..94b32d156b --- /dev/null +++ b/crates/agent_ui/src/agent_configuration/add_llm_provider_modal.rs @@ -0,0 +1,639 @@ +use std::sync::Arc; + +use anyhow::Result; +use collections::HashSet; +use fs::Fs; +use gpui::{DismissEvent, Entity, EventEmitter, FocusHandle, Focusable, Render, Task}; +use language_model::LanguageModelRegistry; +use language_models::{ + AllLanguageModelSettings, OpenAiCompatibleSettingsContent, + provider::open_ai_compatible::AvailableModel, +}; +use settings::update_settings_file; +use ui::{Banner, KeyBinding, Modal, ModalFooter, ModalHeader, Section, prelude::*}; +use ui_input::SingleLineInput; +use workspace::{ModalView, Workspace}; + +#[derive(Clone, Copy)] +pub enum LlmCompatibleProvider { + OpenAi, +} + +impl LlmCompatibleProvider { + fn name(&self) -> &'static str { + match self { + LlmCompatibleProvider::OpenAi => "OpenAI", + } + } + + fn api_url(&self) -> &'static str { + match self { + LlmCompatibleProvider::OpenAi => "https://api.openai.com/v1", + } + } +} + +struct AddLlmProviderInput { + provider_name: Entity, + api_url: Entity, + api_key: Entity, + models: Vec, +} + +impl AddLlmProviderInput { + fn new(provider: LlmCompatibleProvider, window: &mut Window, cx: &mut App) -> Self { + let provider_name = single_line_input("Provider Name", provider.name(), None, window, cx); + let api_url = single_line_input("API URL", provider.api_url(), None, window, cx); + let api_key = single_line_input( + "API Key", + "000000000000000000000000000000000000000000000000", + None, + window, + cx, + ); + + Self { + provider_name, + api_url, + api_key, + models: vec![ModelInput::new(window, cx)], + } + } + + fn add_model(&mut self, window: &mut Window, cx: &mut App) { + self.models.push(ModelInput::new(window, cx)); + } + + fn remove_model(&mut self, index: usize) { + self.models.remove(index); + } +} + +struct ModelInput { + name: Entity, + max_completion_tokens: Entity, + max_output_tokens: Entity, + max_tokens: Entity, +} + +impl ModelInput { + fn new(window: &mut Window, cx: &mut App) -> Self { + let model_name = single_line_input( + "Model Name", + "e.g. gpt-4o, claude-opus-4, gemini-2.5-pro", + None, + window, + cx, + ); + let max_completion_tokens = single_line_input( + "Max Completion Tokens", + "200000", + Some("200000"), + window, + cx, + ); + let max_output_tokens = single_line_input( + "Max Output Tokens", + "Max Output Tokens", + Some("32000"), + window, + cx, + ); + let max_tokens = single_line_input("Max Tokens", "Max Tokens", Some("200000"), window, cx); + Self { + name: model_name, + max_completion_tokens, + max_output_tokens, + max_tokens, + } + } + + fn parse(&self, cx: &App) -> Result { + let name = self.name.read(cx).text(cx); + if name.is_empty() { + return Err(SharedString::from("Model Name cannot be empty")); + } + Ok(AvailableModel { + name, + display_name: None, + max_completion_tokens: Some( + self.max_completion_tokens + .read(cx) + .text(cx) + .parse::() + .map_err(|_| SharedString::from("Max Completion Tokens must be a number"))?, + ), + max_output_tokens: Some( + self.max_output_tokens + .read(cx) + .text(cx) + .parse::() + .map_err(|_| SharedString::from("Max Output Tokens must be a number"))?, + ), + max_tokens: self + .max_tokens + .read(cx) + .text(cx) + .parse::() + .map_err(|_| SharedString::from("Max Tokens must be a number"))?, + }) + } +} + +fn single_line_input( + label: impl Into, + placeholder: impl Into, + text: Option<&str>, + window: &mut Window, + cx: &mut App, +) -> Entity { + cx.new(|cx| { + let input = SingleLineInput::new(window, cx, placeholder).label(label); + if let Some(text) = text { + input + .editor() + .update(cx, |editor, cx| editor.set_text(text, window, cx)); + } + input + }) +} + +fn save_provider_to_settings( + input: &AddLlmProviderInput, + cx: &mut App, +) -> Task> { + let provider_name: Arc = input.provider_name.read(cx).text(cx).into(); + if provider_name.is_empty() { + return Task::ready(Err("Provider Name cannot be empty".into())); + } + + if LanguageModelRegistry::read_global(cx) + .providers() + .iter() + .any(|provider| { + provider.id().0.as_ref() == provider_name.as_ref() + || provider.name().0.as_ref() == provider_name.as_ref() + }) + { + return Task::ready(Err( + "Provider Name is already taken by another provider".into() + )); + } + + let api_url = input.api_url.read(cx).text(cx); + if api_url.is_empty() { + return Task::ready(Err("API URL cannot be empty".into())); + } + + let api_key = input.api_key.read(cx).text(cx); + if api_key.is_empty() { + return Task::ready(Err("API Key cannot be empty".into())); + } + + let mut models = Vec::new(); + let mut model_names: HashSet = HashSet::default(); + for model in &input.models { + match model.parse(cx) { + Ok(model) => { + if !model_names.insert(model.name.clone()) { + return Task::ready(Err("Model Names must be unique".into())); + } + models.push(model) + } + Err(err) => return Task::ready(Err(err)), + } + } + + let fs = ::global(cx); + let task = cx.write_credentials(&api_url, "Bearer", api_key.as_bytes()); + cx.spawn(async move |cx| { + task.await + .map_err(|_| "Failed to write API key to keychain")?; + cx.update(|cx| { + update_settings_file::(fs, cx, |settings, _cx| { + settings.openai_compatible.get_or_insert_default().insert( + provider_name, + OpenAiCompatibleSettingsContent { + api_url, + available_models: models, + }, + ); + }); + }) + .ok(); + Ok(()) + }) +} + +pub struct AddLlmProviderModal { + provider: LlmCompatibleProvider, + input: AddLlmProviderInput, + focus_handle: FocusHandle, + last_error: Option, +} + +impl AddLlmProviderModal { + pub fn toggle( + provider: LlmCompatibleProvider, + workspace: &mut Workspace, + window: &mut Window, + cx: &mut Context, + ) { + workspace.toggle_modal(window, cx, |window, cx| Self::new(provider, window, cx)); + } + + fn new(provider: LlmCompatibleProvider, window: &mut Window, cx: &mut Context) -> Self { + Self { + input: AddLlmProviderInput::new(provider, window, cx), + provider, + last_error: None, + focus_handle: cx.focus_handle(), + } + } + + fn confirm(&mut self, _: &menu::Confirm, _: &mut Window, cx: &mut Context) { + let task = save_provider_to_settings(&self.input, cx); + cx.spawn(async move |this, cx| { + let result = task.await; + this.update(cx, |this, cx| match result { + Ok(_) => { + cx.emit(DismissEvent); + } + Err(error) => { + this.last_error = Some(error); + cx.notify(); + } + }) + }) + .detach_and_log_err(cx); + } + + fn cancel(&mut self, _: &menu::Cancel, _: &mut Window, cx: &mut Context) { + cx.emit(DismissEvent); + } + + fn render_section(&self) -> Section { + Section::new() + .child(self.input.provider_name.clone()) + .child(self.input.api_url.clone()) + .child(self.input.api_key.clone()) + } + + fn render_model_section(&self, cx: &mut Context) -> Section { + Section::new().child( + v_flex() + .gap_2() + .child( + h_flex() + .justify_between() + .child(Label::new("Models").size(LabelSize::Small)) + .child( + Button::new("add-model", "Add Model") + .icon(IconName::Plus) + .icon_position(IconPosition::Start) + .icon_size(IconSize::XSmall) + .icon_color(Color::Muted) + .label_size(LabelSize::Small) + .on_click(cx.listener(|this, _, window, cx| { + this.input.add_model(window, cx); + cx.notify(); + })), + ), + ) + .children( + self.input + .models + .iter() + .enumerate() + .map(|(ix, _)| self.render_model(ix, cx)), + ), + ) + } + + fn render_model(&self, ix: usize, cx: &mut Context) -> impl IntoElement + use<> { + let has_more_than_one_model = self.input.models.len() > 1; + let model = &self.input.models[ix]; + + v_flex() + .p_2() + .gap_2() + .rounded_sm() + .border_1() + .border_dashed() + .border_color(cx.theme().colors().border.opacity(0.6)) + .bg(cx.theme().colors().element_active.opacity(0.15)) + .child(model.name.clone()) + .child( + h_flex() + .gap_2() + .child(model.max_completion_tokens.clone()) + .child(model.max_output_tokens.clone()), + ) + .child(model.max_tokens.clone()) + .when(has_more_than_one_model, |this| { + this.child( + Button::new(("remove-model", ix), "Remove Model") + .icon(IconName::Trash) + .icon_position(IconPosition::Start) + .icon_size(IconSize::XSmall) + .icon_color(Color::Muted) + .label_size(LabelSize::Small) + .style(ButtonStyle::Outlined) + .full_width() + .on_click(cx.listener(move |this, _, _window, cx| { + this.input.remove_model(ix); + cx.notify(); + })), + ) + }) + } +} + +impl EventEmitter for AddLlmProviderModal {} + +impl Focusable for AddLlmProviderModal { + fn focus_handle(&self, _cx: &App) -> FocusHandle { + self.focus_handle.clone() + } +} + +impl ModalView for AddLlmProviderModal {} + +impl Render for AddLlmProviderModal { + fn render(&mut self, window: &mut ui::Window, cx: &mut ui::Context) -> impl IntoElement { + let focus_handle = self.focus_handle(cx); + + div() + .id("add-llm-provider-modal") + .key_context("AddLlmProviderModal") + .w(rems(34.)) + .elevation_3(cx) + .on_action(cx.listener(Self::cancel)) + .capture_any_mouse_down(cx.listener(|this, _, window, cx| { + this.focus_handle(cx).focus(window); + })) + .child( + Modal::new("configure-context-server", None) + .header(ModalHeader::new().headline("Add LLM Provider").description( + match self.provider { + LlmCompatibleProvider::OpenAi => { + "This provider will use an OpenAI compatible API." + } + }, + )) + .when_some(self.last_error.clone(), |this, error| { + this.section( + Section::new().child( + Banner::new() + .severity(ui::Severity::Warning) + .child(div().text_xs().child(error)), + ), + ) + }) + .child( + v_flex() + .id("modal_content") + .max_h_128() + .overflow_y_scroll() + .gap_2() + .child(self.render_section()) + .child(self.render_model_section(cx)), + ) + .footer( + ModalFooter::new().end_slot( + h_flex() + .gap_1() + .child( + Button::new("cancel", "Cancel") + .key_binding( + KeyBinding::for_action_in( + &menu::Cancel, + &focus_handle, + window, + cx, + ) + .map(|kb| kb.size(rems_from_px(12.))), + ) + .on_click(cx.listener(|this, _event, window, cx| { + this.cancel(&menu::Cancel, window, cx) + })), + ) + .child( + Button::new("save-server", "Save Provider") + .key_binding( + KeyBinding::for_action_in( + &menu::Confirm, + &focus_handle, + window, + cx, + ) + .map(|kb| kb.size(rems_from_px(12.))), + ) + .on_click(cx.listener(|this, _event, window, cx| { + this.confirm(&menu::Confirm, window, cx) + })), + ), + ), + ), + ) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use editor::EditorSettings; + use fs::FakeFs; + use gpui::{TestAppContext, VisualTestContext}; + use language::language_settings; + use language_model::{ + LanguageModelProviderId, LanguageModelProviderName, + fake_provider::FakeLanguageModelProvider, + }; + use project::Project; + use settings::{Settings as _, SettingsStore}; + use util::path; + + #[gpui::test] + async fn test_save_provider_invalid_inputs(cx: &mut TestAppContext) { + let cx = setup_test(cx).await; + + assert_eq!( + save_provider_validation_errors("", "someurl", "somekey", vec![], cx,).await, + Some("Provider Name cannot be empty".into()) + ); + + assert_eq!( + save_provider_validation_errors("someprovider", "", "somekey", vec![], cx,).await, + Some("API URL cannot be empty".into()) + ); + + assert_eq!( + save_provider_validation_errors("someprovider", "someurl", "", vec![], cx,).await, + Some("API Key cannot be empty".into()) + ); + + assert_eq!( + save_provider_validation_errors( + "someprovider", + "someurl", + "somekey", + vec![("", "200000", "200000", "32000")], + cx, + ) + .await, + Some("Model Name cannot be empty".into()) + ); + + assert_eq!( + save_provider_validation_errors( + "someprovider", + "someurl", + "somekey", + vec![("somemodel", "abc", "200000", "32000")], + cx, + ) + .await, + Some("Max Tokens must be a number".into()) + ); + + assert_eq!( + save_provider_validation_errors( + "someprovider", + "someurl", + "somekey", + vec![("somemodel", "200000", "abc", "32000")], + cx, + ) + .await, + Some("Max Completion Tokens must be a number".into()) + ); + + assert_eq!( + save_provider_validation_errors( + "someprovider", + "someurl", + "somekey", + vec![("somemodel", "200000", "200000", "abc")], + cx, + ) + .await, + Some("Max Output Tokens must be a number".into()) + ); + + assert_eq!( + save_provider_validation_errors( + "someprovider", + "someurl", + "somekey", + vec![ + ("somemodel", "200000", "200000", "32000"), + ("somemodel", "200000", "200000", "32000"), + ], + cx, + ) + .await, + Some("Model Names must be unique".into()) + ); + } + + #[gpui::test] + async fn test_save_provider_name_conflict(cx: &mut TestAppContext) { + let cx = setup_test(cx).await; + + cx.update(|_window, cx| { + LanguageModelRegistry::global(cx).update(cx, |registry, cx| { + registry.register_provider( + FakeLanguageModelProvider::new( + LanguageModelProviderId::new("someprovider"), + LanguageModelProviderName::new("Some Provider"), + ), + cx, + ); + }); + }); + + assert_eq!( + save_provider_validation_errors( + "someprovider", + "someurl", + "someapikey", + vec![("somemodel", "200000", "200000", "32000")], + cx, + ) + .await, + Some("Provider Name is already taken by another provider".into()) + ); + } + + async fn setup_test(cx: &mut TestAppContext) -> &mut VisualTestContext { + cx.update(|cx| { + let store = SettingsStore::test(cx); + cx.set_global(store); + workspace::init_settings(cx); + Project::init_settings(cx); + theme::init(theme::LoadThemes::JustBase, cx); + language_settings::init(cx); + EditorSettings::register(cx); + language_model::init_settings(cx); + language_models::init_settings(cx); + }); + + let fs = FakeFs::new(cx.executor()); + cx.update(|cx| ::set_global(fs.clone(), cx)); + let project = Project::test(fs, [path!("/dir").as_ref()], cx).await; + let (_, cx) = + cx.add_window_view(|window, cx| Workspace::test_new(project.clone(), window, cx)); + + cx + } + + async fn save_provider_validation_errors( + provider_name: &str, + api_url: &str, + api_key: &str, + models: Vec<(&str, &str, &str, &str)>, + cx: &mut VisualTestContext, + ) -> Option { + fn set_text( + input: &Entity, + text: &str, + window: &mut Window, + cx: &mut App, + ) { + input.update(cx, |input, cx| { + input.editor().update(cx, |editor, cx| { + editor.set_text(text, window, cx); + }); + }); + } + + let task = cx.update(|window, cx| { + let mut input = AddLlmProviderInput::new(LlmCompatibleProvider::OpenAi, window, cx); + set_text(&input.provider_name, provider_name, window, cx); + set_text(&input.api_url, api_url, window, cx); + set_text(&input.api_key, api_key, window, cx); + + for (i, (name, max_tokens, max_completion_tokens, max_output_tokens)) in + models.iter().enumerate() + { + if i >= input.models.len() { + input.models.push(ModelInput::new(window, cx)); + } + let model = &mut input.models[i]; + set_text(&model.name, name, window, cx); + set_text(&model.max_tokens, max_tokens, window, cx); + set_text( + &model.max_completion_tokens, + max_completion_tokens, + window, + cx, + ); + set_text(&model.max_output_tokens, max_output_tokens, window, cx); + } + save_provider_to_settings(&input, cx) + }); + + task.await.err() + } +} diff --git a/crates/assistant_context/src/assistant_context_tests.rs b/crates/assistant_context/src/assistant_context_tests.rs index dba3bfde61..f139d525d3 100644 --- a/crates/assistant_context/src/assistant_context_tests.rs +++ b/crates/assistant_context/src/assistant_context_tests.rs @@ -1323,7 +1323,7 @@ fn setup_context_editor_with_fake_model( ) -> (Entity, Arc) { let registry = Arc::new(LanguageRegistry::test(cx.executor().clone())); - let fake_provider = Arc::new(FakeLanguageModelProvider); + let fake_provider = Arc::new(FakeLanguageModelProvider::default()); let fake_model = Arc::new(fake_provider.test_model()); cx.update(|cx| { diff --git a/crates/assistant_tools/src/project_notifications_tool.rs b/crates/assistant_tools/src/project_notifications_tool.rs index ec315d9ab1..7567926dca 100644 --- a/crates/assistant_tools/src/project_notifications_tool.rs +++ b/crates/assistant_tools/src/project_notifications_tool.rs @@ -200,7 +200,7 @@ mod tests { // Run the tool before any changes let tool = Arc::new(ProjectNotificationsTool); - let provider = Arc::new(FakeLanguageModelProvider); + let provider = Arc::new(FakeLanguageModelProvider::default()); let model: Arc = Arc::new(provider.test_model()); let request = Arc::new(LanguageModelRequest::default()); let tool_input = json!({}); diff --git a/crates/icons/src/icons.rs b/crates/icons/src/icons.rs index b85e5b517d..e7066ae151 100644 --- a/crates/icons/src/icons.rs +++ b/crates/icons/src/icons.rs @@ -20,6 +20,7 @@ pub enum IconName { AiMistral, AiOllama, AiOpenAi, + AiOpenAiCompat, AiOpenRouter, AiVZero, AiXAi, diff --git a/crates/language_model/src/fake_provider.rs b/crates/language_model/src/fake_provider.rs index f5191016d8..d54db7554a 100644 --- a/crates/language_model/src/fake_provider.rs +++ b/crates/language_model/src/fake_provider.rs @@ -10,25 +10,21 @@ use http_client::Result; use parking_lot::Mutex; use std::sync::Arc; -pub fn language_model_id() -> LanguageModelId { - LanguageModelId::from("fake".to_string()) +#[derive(Clone)] +pub struct FakeLanguageModelProvider { + id: LanguageModelProviderId, + name: LanguageModelProviderName, } -pub fn language_model_name() -> LanguageModelName { - LanguageModelName::from("Fake".to_string()) +impl Default for FakeLanguageModelProvider { + fn default() -> Self { + Self { + id: LanguageModelProviderId::from("fake".to_string()), + name: LanguageModelProviderName::from("Fake".to_string()), + } + } } -pub fn provider_id() -> LanguageModelProviderId { - LanguageModelProviderId::from("fake".to_string()) -} - -pub fn provider_name() -> LanguageModelProviderName { - LanguageModelProviderName::from("Fake".to_string()) -} - -#[derive(Clone, Default)] -pub struct FakeLanguageModelProvider; - impl LanguageModelProviderState for FakeLanguageModelProvider { type ObservableEntity = (); @@ -39,11 +35,11 @@ impl LanguageModelProviderState for FakeLanguageModelProvider { impl LanguageModelProvider for FakeLanguageModelProvider { fn id(&self) -> LanguageModelProviderId { - provider_id() + self.id.clone() } fn name(&self) -> LanguageModelProviderName { - provider_name() + self.name.clone() } fn default_model(&self, _cx: &App) -> Option> { @@ -76,6 +72,10 @@ impl LanguageModelProvider for FakeLanguageModelProvider { } impl FakeLanguageModelProvider { + pub fn new(id: LanguageModelProviderId, name: LanguageModelProviderName) -> Self { + Self { id, name } + } + pub fn test_model(&self) -> FakeLanguageModel { FakeLanguageModel::default() } @@ -89,11 +89,22 @@ pub struct ToolUseRequest { pub schema: serde_json::Value, } -#[derive(Default)] pub struct FakeLanguageModel { + provider_id: LanguageModelProviderId, + provider_name: LanguageModelProviderName, current_completion_txs: Mutex)>>, } +impl Default for FakeLanguageModel { + fn default() -> Self { + Self { + provider_id: LanguageModelProviderId::from("fake".to_string()), + provider_name: LanguageModelProviderName::from("Fake".to_string()), + current_completion_txs: Mutex::new(Vec::new()), + } + } +} + impl FakeLanguageModel { pub fn pending_completions(&self) -> Vec { self.current_completion_txs @@ -138,19 +149,19 @@ impl FakeLanguageModel { impl LanguageModel for FakeLanguageModel { fn id(&self) -> LanguageModelId { - language_model_id() + LanguageModelId::from("fake".to_string()) } fn name(&self) -> LanguageModelName { - language_model_name() + LanguageModelName::from("Fake".to_string()) } fn provider_id(&self) -> LanguageModelProviderId { - provider_id() + self.provider_id.clone() } fn provider_name(&self) -> LanguageModelProviderName { - provider_name() + self.provider_name.clone() } fn supports_tools(&self) -> bool { diff --git a/crates/language_model/src/language_model.rs b/crates/language_model/src/language_model.rs index 72455b3821..54640419b6 100644 --- a/crates/language_model/src/language_model.rs +++ b/crates/language_model/src/language_model.rs @@ -735,6 +735,18 @@ impl From for LanguageModelProviderName { } } +impl From> for LanguageModelProviderId { + fn from(value: Arc) -> Self { + Self(SharedString::from(value)) + } +} + +impl From> for LanguageModelProviderName { + fn from(value: Arc) -> Self { + Self(SharedString::from(value)) + } +} + #[cfg(test)] mod tests { use super::*; diff --git a/crates/language_model/src/registry.rs b/crates/language_model/src/registry.rs index 6e8e8e9108..7cf071808a 100644 --- a/crates/language_model/src/registry.rs +++ b/crates/language_model/src/registry.rs @@ -125,7 +125,7 @@ impl LanguageModelRegistry { #[cfg(any(test, feature = "test-support"))] pub fn test(cx: &mut App) -> crate::fake_provider::FakeLanguageModelProvider { - let fake_provider = crate::fake_provider::FakeLanguageModelProvider; + let fake_provider = crate::fake_provider::FakeLanguageModelProvider::default(); let registry = cx.new(|cx| { let mut registry = Self::default(); registry.register_provider(fake_provider.clone(), cx); @@ -403,16 +403,17 @@ mod tests { fn test_register_providers(cx: &mut App) { let registry = cx.new(|_| LanguageModelRegistry::default()); + let provider = FakeLanguageModelProvider::default(); registry.update(cx, |registry, cx| { - registry.register_provider(FakeLanguageModelProvider, cx); + registry.register_provider(provider.clone(), cx); }); let providers = registry.read(cx).providers(); assert_eq!(providers.len(), 1); - assert_eq!(providers[0].id(), crate::fake_provider::provider_id()); + assert_eq!(providers[0].id(), provider.id()); registry.update(cx, |registry, cx| { - registry.unregister_provider(crate::fake_provider::provider_id(), cx); + registry.unregister_provider(provider.id(), cx); }); let providers = registry.read(cx).providers(); diff --git a/crates/language_models/Cargo.toml b/crates/language_models/Cargo.toml index ed38ac7660..574579aaa7 100644 --- a/crates/language_models/Cargo.toml +++ b/crates/language_models/Cargo.toml @@ -26,10 +26,10 @@ client.workspace = true collections.workspace = true component.workspace = true credentials_provider.workspace = true +convert_case.workspace = true copilot.workspace = true deepseek = { workspace = true, features = ["schemars"] } editor.workspace = true -fs.workspace = true futures.workspace = true google_ai = { workspace = true, features = ["schemars"] } gpui.workspace = true diff --git a/crates/language_models/src/language_models.rs b/crates/language_models/src/language_models.rs index 192f5a5fae..18e6f47ed0 100644 --- a/crates/language_models/src/language_models.rs +++ b/crates/language_models/src/language_models.rs @@ -1,8 +1,10 @@ use std::sync::Arc; +use ::settings::{Settings, SettingsStore}; use client::{Client, UserStore}; +use collections::HashSet; use gpui::{App, Context, Entity}; -use language_model::LanguageModelRegistry; +use language_model::{LanguageModelProviderId, LanguageModelRegistry}; use provider::deepseek::DeepSeekLanguageModelProvider; pub mod provider; @@ -18,17 +20,81 @@ use crate::provider::lmstudio::LmStudioLanguageModelProvider; use crate::provider::mistral::MistralLanguageModelProvider; use crate::provider::ollama::OllamaLanguageModelProvider; use crate::provider::open_ai::OpenAiLanguageModelProvider; +use crate::provider::open_ai_compatible::OpenAiCompatibleLanguageModelProvider; use crate::provider::open_router::OpenRouterLanguageModelProvider; use crate::provider::vercel::VercelLanguageModelProvider; use crate::provider::x_ai::XAiLanguageModelProvider; pub use crate::settings::*; pub fn init(user_store: Entity, client: Arc, cx: &mut App) { - crate::settings::init(cx); + crate::settings::init_settings(cx); let registry = LanguageModelRegistry::global(cx); registry.update(cx, |registry, cx| { - register_language_model_providers(registry, user_store, client, cx); + register_language_model_providers(registry, user_store, client.clone(), cx); }); + + let mut openai_compatible_providers = AllLanguageModelSettings::get_global(cx) + .openai_compatible + .keys() + .cloned() + .collect::>(); + + registry.update(cx, |registry, cx| { + register_openai_compatible_providers( + registry, + &HashSet::default(), + &openai_compatible_providers, + client.clone(), + cx, + ); + }); + cx.observe_global::(move |cx| { + let openai_compatible_providers_new = AllLanguageModelSettings::get_global(cx) + .openai_compatible + .keys() + .cloned() + .collect::>(); + if openai_compatible_providers_new != openai_compatible_providers { + registry.update(cx, |registry, cx| { + register_openai_compatible_providers( + registry, + &openai_compatible_providers, + &openai_compatible_providers_new, + client.clone(), + cx, + ); + }); + openai_compatible_providers = openai_compatible_providers_new; + } + }) + .detach(); +} + +fn register_openai_compatible_providers( + registry: &mut LanguageModelRegistry, + old: &HashSet>, + new: &HashSet>, + client: Arc, + cx: &mut Context, +) { + for provider_id in old { + if !new.contains(provider_id) { + registry.unregister_provider(LanguageModelProviderId::from(provider_id.clone()), cx); + } + } + + for provider_id in new { + if !old.contains(provider_id) { + registry.register_provider( + OpenAiCompatibleLanguageModelProvider::new( + provider_id.clone(), + client.http_client(), + cx, + ), + cx, + ); + } + } } fn register_language_model_providers( diff --git a/crates/language_models/src/provider.rs b/crates/language_models/src/provider.rs index c717be7c90..d780195c66 100644 --- a/crates/language_models/src/provider.rs +++ b/crates/language_models/src/provider.rs @@ -8,6 +8,7 @@ pub mod lmstudio; pub mod mistral; pub mod ollama; pub mod open_ai; +pub mod open_ai_compatible; pub mod open_router; pub mod vercel; pub mod x_ai; diff --git a/crates/language_models/src/provider/open_ai.rs b/crates/language_models/src/provider/open_ai.rs index 76f2fbe303..6c4d4c9b3e 100644 --- a/crates/language_models/src/provider/open_ai.rs +++ b/crates/language_models/src/provider/open_ai.rs @@ -2,7 +2,6 @@ use anyhow::{Context as _, Result, anyhow}; use collections::{BTreeMap, HashMap}; use credentials_provider::CredentialsProvider; -use fs::Fs; use futures::Stream; use futures::{FutureExt, StreamExt, future::BoxFuture}; use gpui::{AnyView, App, AsyncApp, Context, Entity, Subscription, Task, Window}; @@ -18,7 +17,7 @@ use menu; use open_ai::{ImageUrl, Model, ResponseStreamEvent, stream_completion}; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; -use settings::{Settings, SettingsStore, update_settings_file}; +use settings::{Settings, SettingsStore}; use std::pin::Pin; use std::str::FromStr as _; use std::sync::Arc; @@ -28,7 +27,6 @@ use ui::{ElevationIndex, List, Tooltip, prelude::*}; use ui_input::SingleLineInput; use util::ResultExt; -use crate::OpenAiSettingsContent; use crate::{AllLanguageModelSettings, ui::InstructionListItem}; const PROVIDER_ID: LanguageModelProviderId = language_model::OPEN_AI_PROVIDER_ID; @@ -621,26 +619,32 @@ struct RawToolCall { arguments: String, } +pub(crate) fn collect_tiktoken_messages( + request: LanguageModelRequest, +) -> Vec { + request + .messages + .into_iter() + .map(|message| tiktoken_rs::ChatCompletionRequestMessage { + role: match message.role { + Role::User => "user".into(), + Role::Assistant => "assistant".into(), + Role::System => "system".into(), + }, + content: Some(message.string_contents()), + name: None, + function_call: None, + }) + .collect::>() +} + pub fn count_open_ai_tokens( request: LanguageModelRequest, model: Model, cx: &App, ) -> BoxFuture<'static, Result> { cx.background_spawn(async move { - let messages = request - .messages - .into_iter() - .map(|message| tiktoken_rs::ChatCompletionRequestMessage { - role: match message.role { - Role::User => "user".into(), - Role::Assistant => "assistant".into(), - Role::System => "system".into(), - }, - content: Some(message.string_contents()), - name: None, - function_call: None, - }) - .collect::>(); + let messages = collect_tiktoken_messages(request); match model { Model::Custom { max_tokens, .. } => { @@ -678,7 +682,6 @@ pub fn count_open_ai_tokens( struct ConfigurationView { api_key_editor: Entity, - api_url_editor: Entity, state: gpui::Entity, load_credentials_task: Option>, } @@ -691,23 +694,6 @@ impl ConfigurationView { cx, "sk-000000000000000000000000000000000000000000000000", ) - .label("API key") - }); - - let api_url = AllLanguageModelSettings::get_global(cx) - .openai - .api_url - .clone(); - - let api_url_editor = cx.new(|cx| { - let input = SingleLineInput::new(window, cx, open_ai::OPEN_AI_API_URL).label("API URL"); - - if !api_url.is_empty() { - input.editor.update(cx, |editor, cx| { - editor.set_text(&*api_url, window, cx); - }); - } - input }); cx.observe(&state, |_, _, cx| { @@ -735,7 +721,6 @@ impl ConfigurationView { Self { api_key_editor, - api_url_editor, state, load_credentials_task, } @@ -783,57 +768,6 @@ impl ConfigurationView { cx.notify(); } - fn save_api_url(&mut self, cx: &mut Context) { - let api_url = self - .api_url_editor - .read(cx) - .editor() - .read(cx) - .text(cx) - .trim() - .to_string(); - - let current_url = AllLanguageModelSettings::get_global(cx) - .openai - .api_url - .clone(); - - let effective_current_url = if current_url.is_empty() { - open_ai::OPEN_AI_API_URL - } else { - ¤t_url - }; - - if !api_url.is_empty() && api_url != effective_current_url { - let fs = ::global(cx); - update_settings_file::(fs, cx, move |settings, _| { - if let Some(settings) = settings.openai.as_mut() { - settings.api_url = Some(api_url.clone()); - } else { - settings.openai = Some(OpenAiSettingsContent { - api_url: Some(api_url.clone()), - available_models: None, - }); - } - }); - } - } - - fn reset_api_url(&mut self, window: &mut Window, cx: &mut Context) { - self.api_url_editor.update(cx, |input, cx| { - input.editor.update(cx, |editor, cx| { - editor.set_text("", window, cx); - }); - }); - let fs = ::global(cx); - update_settings_file::(fs, cx, |settings, _cx| { - if let Some(settings) = settings.openai.as_mut() { - settings.api_url = None; - } - }); - cx.notify(); - } - fn should_render_editor(&self, cx: &mut Context) -> bool { !self.state.read(cx).is_authenticated() } @@ -846,7 +780,6 @@ impl Render for ConfigurationView { let api_key_section = if self.should_render_editor(cx) { v_flex() .on_action(cx.listener(Self::save_api_key)) - .child(Label::new("To use Zed's assistant with OpenAI, you need to add an API key. Follow these steps:")) .child( List::new() @@ -910,59 +843,34 @@ impl Render for ConfigurationView { .into_any() }; - let custom_api_url_set = - AllLanguageModelSettings::get_global(cx).openai.api_url != open_ai::OPEN_AI_API_URL; - - let api_url_section = if custom_api_url_set { - h_flex() - .mt_1() - .p_1() - .justify_between() - .rounded_md() - .border_1() - .border_color(cx.theme().colors().border) - .bg(cx.theme().colors().background) - .child( - h_flex() - .gap_1() - .child(Icon::new(IconName::Check).color(Color::Success)) - .child(Label::new("Custom API URL configured.")), - ) - .child( - Button::new("reset-api-url", "Reset API URL") - .label_size(LabelSize::Small) - .icon(IconName::Undo) - .icon_size(IconSize::Small) - .icon_position(IconPosition::Start) - .layer(ElevationIndex::ModalSurface) - .on_click( - cx.listener(|this, _, window, cx| this.reset_api_url(window, cx)), - ), - ) - .into_any() - } else { - v_flex() - .on_action(cx.listener(|this, _: &menu::Confirm, _window, cx| { - this.save_api_url(cx); - cx.notify(); - })) - .mt_2() - .pt_2() - .border_t_1() - .border_color(cx.theme().colors().border_variant) - .gap_1() - .child( - List::new() - .child(InstructionListItem::text_only( - "Optionally, you can change the base URL for the OpenAI API request.", - )) - .child(InstructionListItem::text_only( - "Paste the new API endpoint below and hit enter", - )), - ) - .child(self.api_url_editor.clone()) - .into_any() - }; + let compatible_api_section = h_flex() + .mt_1p5() + .gap_0p5() + .flex_wrap() + .when(self.should_render_editor(cx), |this| { + this.pt_1p5() + .border_t_1() + .border_color(cx.theme().colors().border_variant) + }) + .child( + h_flex() + .gap_2() + .child( + Icon::new(IconName::Info) + .size(IconSize::XSmall) + .color(Color::Muted), + ) + .child(Label::new("Zed also supports OpenAI-compatible models.")), + ) + .child( + Button::new("docs", "Learn More") + .icon(IconName::ArrowUpRight) + .icon_size(IconSize::XSmall) + .icon_color(Color::Muted) + .on_click(move |_, _window, cx| { + cx.open_url("https://zed.dev/docs/ai/configuration#openai-api-compatible") + }), + ); if self.load_credentials_task.is_some() { div().child(Label::new("Loading credentials…")).into_any() @@ -970,7 +878,7 @@ impl Render for ConfigurationView { v_flex() .size_full() .child(api_key_section) - .child(api_url_section) + .child(compatible_api_section) .into_any() } } diff --git a/crates/language_models/src/provider/open_ai_compatible.rs b/crates/language_models/src/provider/open_ai_compatible.rs new file mode 100644 index 0000000000..64add5483d --- /dev/null +++ b/crates/language_models/src/provider/open_ai_compatible.rs @@ -0,0 +1,522 @@ +use anyhow::{Context as _, Result, anyhow}; +use credentials_provider::CredentialsProvider; + +use convert_case::{Case, Casing}; +use futures::{FutureExt, StreamExt, future::BoxFuture}; +use gpui::{AnyView, App, AsyncApp, Context, Entity, Subscription, Task, Window}; +use http_client::HttpClient; +use language_model::{ + AuthenticateError, LanguageModel, LanguageModelCompletionError, LanguageModelCompletionEvent, + LanguageModelId, LanguageModelName, LanguageModelProvider, LanguageModelProviderId, + LanguageModelProviderName, LanguageModelProviderState, LanguageModelRequest, + LanguageModelToolChoice, RateLimiter, +}; +use menu; +use open_ai::{ResponseStreamEvent, stream_completion}; +use schemars::JsonSchema; +use serde::{Deserialize, Serialize}; +use settings::{Settings, SettingsStore}; +use std::sync::Arc; + +use ui::{ElevationIndex, Tooltip, prelude::*}; +use ui_input::SingleLineInput; +use util::ResultExt; + +use crate::AllLanguageModelSettings; +use crate::provider::open_ai::{OpenAiEventMapper, into_open_ai}; + +#[derive(Default, Clone, Debug, PartialEq)] +pub struct OpenAiCompatibleSettings { + pub api_url: String, + pub available_models: Vec, +} + +#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, JsonSchema)] +pub struct AvailableModel { + pub name: String, + pub display_name: Option, + pub max_tokens: u64, + pub max_output_tokens: Option, + pub max_completion_tokens: Option, +} + +pub struct OpenAiCompatibleLanguageModelProvider { + id: LanguageModelProviderId, + name: LanguageModelProviderName, + http_client: Arc, + state: gpui::Entity, +} + +pub struct State { + id: Arc, + env_var_name: Arc, + api_key: Option, + api_key_from_env: bool, + settings: OpenAiCompatibleSettings, + _subscription: Subscription, +} + +impl State { + fn is_authenticated(&self) -> bool { + self.api_key.is_some() + } + + fn reset_api_key(&self, cx: &mut Context) -> Task> { + let credentials_provider = ::global(cx); + let api_url = self.settings.api_url.clone(); + cx.spawn(async move |this, cx| { + credentials_provider + .delete_credentials(&api_url, &cx) + .await + .log_err(); + this.update(cx, |this, cx| { + this.api_key = None; + this.api_key_from_env = false; + cx.notify(); + }) + }) + } + + fn set_api_key(&mut self, api_key: String, cx: &mut Context) -> Task> { + let credentials_provider = ::global(cx); + let api_url = self.settings.api_url.clone(); + cx.spawn(async move |this, cx| { + credentials_provider + .write_credentials(&api_url, "Bearer", api_key.as_bytes(), &cx) + .await + .log_err(); + this.update(cx, |this, cx| { + this.api_key = Some(api_key); + cx.notify(); + }) + }) + } + + fn authenticate(&self, cx: &mut Context) -> Task> { + if self.is_authenticated() { + return Task::ready(Ok(())); + } + + let credentials_provider = ::global(cx); + let env_var_name = self.env_var_name.clone(); + let api_url = self.settings.api_url.clone(); + cx.spawn(async move |this, cx| { + let (api_key, from_env) = if let Ok(api_key) = std::env::var(env_var_name.as_ref()) { + (api_key, true) + } else { + let (_, api_key) = credentials_provider + .read_credentials(&api_url, &cx) + .await? + .ok_or(AuthenticateError::CredentialsNotFound)?; + ( + String::from_utf8(api_key).context("invalid {PROVIDER_NAME} API key")?, + false, + ) + }; + this.update(cx, |this, cx| { + this.api_key = Some(api_key); + this.api_key_from_env = from_env; + cx.notify(); + })?; + + Ok(()) + }) + } +} + +impl OpenAiCompatibleLanguageModelProvider { + pub fn new(id: Arc, http_client: Arc, cx: &mut App) -> Self { + fn resolve_settings<'a>(id: &'a str, cx: &'a App) -> Option<&'a OpenAiCompatibleSettings> { + AllLanguageModelSettings::get_global(cx) + .openai_compatible + .get(id) + } + + let state = cx.new(|cx| State { + id: id.clone(), + env_var_name: format!("{}_API_KEY", id).to_case(Case::Constant).into(), + settings: resolve_settings(&id, cx).cloned().unwrap_or_default(), + api_key: None, + api_key_from_env: false, + _subscription: cx.observe_global::(|this: &mut State, cx| { + let Some(settings) = resolve_settings(&this.id, cx) else { + return; + }; + if &this.settings != settings { + this.settings = settings.clone(); + cx.notify(); + } + }), + }); + + Self { + id: id.clone().into(), + name: id.into(), + http_client, + state, + } + } + + fn create_language_model(&self, model: AvailableModel) -> Arc { + Arc::new(OpenAiCompatibleLanguageModel { + id: LanguageModelId::from(model.name.clone()), + provider_id: self.id.clone(), + provider_name: self.name.clone(), + model, + state: self.state.clone(), + http_client: self.http_client.clone(), + request_limiter: RateLimiter::new(4), + }) + } +} + +impl LanguageModelProviderState for OpenAiCompatibleLanguageModelProvider { + type ObservableEntity = State; + + fn observable_entity(&self) -> Option> { + Some(self.state.clone()) + } +} + +impl LanguageModelProvider for OpenAiCompatibleLanguageModelProvider { + fn id(&self) -> LanguageModelProviderId { + self.id.clone() + } + + fn name(&self) -> LanguageModelProviderName { + self.name.clone() + } + + fn icon(&self) -> IconName { + IconName::AiOpenAiCompat + } + + fn default_model(&self, cx: &App) -> Option> { + self.state + .read(cx) + .settings + .available_models + .first() + .map(|model| self.create_language_model(model.clone())) + } + + fn default_fast_model(&self, _cx: &App) -> Option> { + None + } + + fn provided_models(&self, cx: &App) -> Vec> { + self.state + .read(cx) + .settings + .available_models + .iter() + .map(|model| self.create_language_model(model.clone())) + .collect() + } + + fn is_authenticated(&self, cx: &App) -> bool { + self.state.read(cx).is_authenticated() + } + + fn authenticate(&self, cx: &mut App) -> Task> { + self.state.update(cx, |state, cx| state.authenticate(cx)) + } + + fn configuration_view(&self, window: &mut Window, cx: &mut App) -> AnyView { + cx.new(|cx| ConfigurationView::new(self.state.clone(), window, cx)) + .into() + } + + fn reset_credentials(&self, cx: &mut App) -> Task> { + self.state.update(cx, |state, cx| state.reset_api_key(cx)) + } +} + +pub struct OpenAiCompatibleLanguageModel { + id: LanguageModelId, + provider_id: LanguageModelProviderId, + provider_name: LanguageModelProviderName, + model: AvailableModel, + state: gpui::Entity, + http_client: Arc, + request_limiter: RateLimiter, +} + +impl OpenAiCompatibleLanguageModel { + fn stream_completion( + &self, + request: open_ai::Request, + cx: &AsyncApp, + ) -> BoxFuture<'static, Result>>> + { + let http_client = self.http_client.clone(); + let Ok((api_key, api_url)) = cx.read_entity(&self.state, |state, _| { + (state.api_key.clone(), state.settings.api_url.clone()) + }) else { + return futures::future::ready(Err(anyhow!("App state dropped"))).boxed(); + }; + + let provider = self.provider_name.clone(); + let future = self.request_limiter.stream(async move { + let Some(api_key) = api_key else { + return Err(LanguageModelCompletionError::NoApiKey { provider }); + }; + let request = stream_completion(http_client.as_ref(), &api_url, &api_key, request); + let response = request.await?; + Ok(response) + }); + + async move { Ok(future.await?.boxed()) }.boxed() + } +} + +impl LanguageModel for OpenAiCompatibleLanguageModel { + fn id(&self) -> LanguageModelId { + self.id.clone() + } + + fn name(&self) -> LanguageModelName { + LanguageModelName::from( + self.model + .display_name + .clone() + .unwrap_or_else(|| self.model.name.clone()), + ) + } + + fn provider_id(&self) -> LanguageModelProviderId { + self.provider_id.clone() + } + + fn provider_name(&self) -> LanguageModelProviderName { + self.provider_name.clone() + } + + fn supports_tools(&self) -> bool { + true + } + + fn supports_images(&self) -> bool { + false + } + + fn supports_tool_choice(&self, choice: LanguageModelToolChoice) -> bool { + match choice { + LanguageModelToolChoice::Auto => true, + LanguageModelToolChoice::Any => true, + LanguageModelToolChoice::None => true, + } + } + + fn telemetry_id(&self) -> String { + format!("openai/{}", self.model.name) + } + + fn max_token_count(&self) -> u64 { + self.model.max_tokens + } + + fn max_output_tokens(&self) -> Option { + self.model.max_output_tokens + } + + fn count_tokens( + &self, + request: LanguageModelRequest, + cx: &App, + ) -> BoxFuture<'static, Result> { + let max_token_count = self.max_token_count(); + cx.background_spawn(async move { + let messages = super::open_ai::collect_tiktoken_messages(request); + let model = if max_token_count >= 100_000 { + // If the max tokens is 100k or more, it is likely the o200k_base tokenizer from gpt4o + "gpt-4o" + } else { + // Otherwise fallback to gpt-4, since only cl100k_base and o200k_base are + // supported with this tiktoken method + "gpt-4" + }; + tiktoken_rs::num_tokens_from_messages(model, &messages).map(|tokens| tokens as u64) + }) + .boxed() + } + + fn stream_completion( + &self, + request: LanguageModelRequest, + cx: &AsyncApp, + ) -> BoxFuture< + 'static, + Result< + futures::stream::BoxStream< + 'static, + Result, + >, + LanguageModelCompletionError, + >, + > { + let request = into_open_ai(request, &self.model.name, true, self.max_output_tokens()); + let completions = self.stream_completion(request, cx); + async move { + let mapper = OpenAiEventMapper::new(); + Ok(mapper.map_stream(completions.await?).boxed()) + } + .boxed() + } +} + +struct ConfigurationView { + api_key_editor: Entity, + state: gpui::Entity, + load_credentials_task: Option>, +} + +impl ConfigurationView { + fn new(state: gpui::Entity, window: &mut Window, cx: &mut Context) -> Self { + let api_key_editor = cx.new(|cx| { + SingleLineInput::new( + window, + cx, + "000000000000000000000000000000000000000000000000000", + ) + }); + + cx.observe(&state, |_, _, cx| { + cx.notify(); + }) + .detach(); + + let load_credentials_task = Some(cx.spawn_in(window, { + let state = state.clone(); + async move |this, cx| { + if let Some(task) = state + .update(cx, |state, cx| state.authenticate(cx)) + .log_err() + { + // We don't log an error, because "not signed in" is also an error. + let _ = task.await; + } + this.update(cx, |this, cx| { + this.load_credentials_task = None; + cx.notify(); + }) + .log_err(); + } + })); + + Self { + api_key_editor, + state, + load_credentials_task, + } + } + + fn save_api_key(&mut self, _: &menu::Confirm, window: &mut Window, cx: &mut Context) { + let api_key = self + .api_key_editor + .read(cx) + .editor() + .read(cx) + .text(cx) + .trim() + .to_string(); + + // Don't proceed if no API key is provided and we're not authenticated + if api_key.is_empty() && !self.state.read(cx).is_authenticated() { + return; + } + + let state = self.state.clone(); + cx.spawn_in(window, async move |_, cx| { + state + .update(cx, |state, cx| state.set_api_key(api_key, cx))? + .await + }) + .detach_and_log_err(cx); + + cx.notify(); + } + + fn reset_api_key(&mut self, window: &mut Window, cx: &mut Context) { + self.api_key_editor.update(cx, |input, cx| { + input.editor.update(cx, |editor, cx| { + editor.set_text("", window, cx); + }); + }); + + let state = self.state.clone(); + cx.spawn_in(window, async move |_, cx| { + state.update(cx, |state, cx| state.reset_api_key(cx))?.await + }) + .detach_and_log_err(cx); + + cx.notify(); + } + + fn should_render_editor(&self, cx: &mut Context) -> bool { + !self.state.read(cx).is_authenticated() + } +} + +impl Render for ConfigurationView { + fn render(&mut self, _: &mut Window, cx: &mut Context) -> impl IntoElement { + let env_var_set = self.state.read(cx).api_key_from_env; + let env_var_name = self.state.read(cx).env_var_name.clone(); + + let api_key_section = if self.should_render_editor(cx) { + v_flex() + .on_action(cx.listener(Self::save_api_key)) + .child(Label::new("To use Zed's assistant with an OpenAI compatible provider, you need to add an API key.")) + .child( + div() + .pt(DynamicSpacing::Base04.rems(cx)) + .child(self.api_key_editor.clone()) + ) + .child( + Label::new( + format!("You can also assign the {env_var_name} environment variable and restart Zed."), + ) + .size(LabelSize::Small).color(Color::Muted), + ) + .into_any() + } else { + h_flex() + .mt_1() + .p_1() + .justify_between() + .rounded_md() + .border_1() + .border_color(cx.theme().colors().border) + .bg(cx.theme().colors().background) + .child( + h_flex() + .gap_1() + .child(Icon::new(IconName::Check).color(Color::Success)) + .child(Label::new(if env_var_set { + format!("API key set in {env_var_name} environment variable.") + } else { + "API key configured.".to_string() + })), + ) + .child( + Button::new("reset-api-key", "Reset API Key") + .label_size(LabelSize::Small) + .icon(IconName::Undo) + .icon_size(IconSize::Small) + .icon_position(IconPosition::Start) + .layer(ElevationIndex::ModalSurface) + .when(env_var_set, |this| { + this.tooltip(Tooltip::text(format!("To reset your API key, unset the {env_var_name} environment variable."))) + }) + .on_click(cx.listener(|this, _, window, cx| this.reset_api_key(window, cx))), + ) + .into_any() + }; + + if self.load_credentials_task.is_some() { + div().child(Label::new("Loading credentials…")).into_any() + } else { + v_flex().size_full().child(api_key_section).into_any() + } + } +} diff --git a/crates/language_models/src/settings.rs b/crates/language_models/src/settings.rs index dafbb62910..b163585aa7 100644 --- a/crates/language_models/src/settings.rs +++ b/crates/language_models/src/settings.rs @@ -1,4 +1,7 @@ +use std::sync::Arc; + use anyhow::Result; +use collections::HashMap; use gpui::App; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; @@ -15,13 +18,14 @@ use crate::provider::{ mistral::MistralSettings, ollama::OllamaSettings, open_ai::OpenAiSettings, + open_ai_compatible::OpenAiCompatibleSettings, open_router::OpenRouterSettings, vercel::VercelSettings, x_ai::XAiSettings, }; /// Initializes the language model settings. -pub fn init(cx: &mut App) { +pub fn init_settings(cx: &mut App) { AllLanguageModelSettings::register(cx); } @@ -36,6 +40,7 @@ pub struct AllLanguageModelSettings { pub ollama: OllamaSettings, pub open_router: OpenRouterSettings, pub openai: OpenAiSettings, + pub openai_compatible: HashMap, OpenAiCompatibleSettings>, pub vercel: VercelSettings, pub x_ai: XAiSettings, pub zed_dot_dev: ZedDotDevSettings, @@ -52,6 +57,7 @@ pub struct AllLanguageModelSettingsContent { pub ollama: Option, pub open_router: Option, pub openai: Option, + pub openai_compatible: Option, OpenAiCompatibleSettingsContent>>, pub vercel: Option, pub x_ai: Option, #[serde(rename = "zed.dev")] @@ -103,6 +109,12 @@ pub struct OpenAiSettingsContent { pub available_models: Option>, } +#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, JsonSchema)] +pub struct OpenAiCompatibleSettingsContent { + pub api_url: String, + pub available_models: Vec, +} + #[derive(Default, Clone, Debug, Serialize, Deserialize, PartialEq, JsonSchema)] pub struct VercelSettingsContent { pub api_url: Option, @@ -226,6 +238,19 @@ impl settings::Settings for AllLanguageModelSettings { openai.as_ref().and_then(|s| s.available_models.clone()), ); + // OpenAI Compatible + if let Some(openai_compatible) = value.openai_compatible.clone() { + for (id, openai_compatible_settings) in openai_compatible { + settings.openai_compatible.insert( + id, + OpenAiCompatibleSettings { + api_url: openai_compatible_settings.api_url, + available_models: openai_compatible_settings.available_models, + }, + ); + } + } + // Vercel let vercel = value.vercel.clone(); merge( diff --git a/crates/ui/src/components/modal.rs b/crates/ui/src/components/modal.rs index 2e926b7593..2145b34ef2 100644 --- a/crates/ui/src/components/modal.rs +++ b/crates/ui/src/components/modal.rs @@ -93,6 +93,7 @@ impl RenderOnce for Modal { #[derive(IntoElement)] pub struct ModalHeader { headline: Option, + description: Option, children: SmallVec<[AnyElement; 2]>, show_dismiss_button: bool, show_back_button: bool, @@ -108,6 +109,7 @@ impl ModalHeader { pub fn new() -> Self { Self { headline: None, + description: None, children: SmallVec::new(), show_dismiss_button: false, show_back_button: false, @@ -123,6 +125,11 @@ impl ModalHeader { self } + pub fn description(mut self, description: impl Into) -> Self { + self.description = Some(description.into()); + self + } + pub fn show_dismiss_button(mut self, show: bool) -> Self { self.show_dismiss_button = show; self @@ -171,7 +178,14 @@ impl RenderOnce for ModalHeader { }), ) }) - .child(div().flex_1().children(children)) + .child( + v_flex().flex_1().children(children).when_some( + self.description, + |this, description| { + this.child(Label::new(description).color(Color::Muted).mb_2()) + }, + ), + ) .when(self.show_dismiss_button, |this| { this.child( IconButton::new("dismiss", IconName::Close) diff --git a/crates/ui_input/src/ui_input.rs b/crates/ui_input/src/ui_input.rs index 18aa732e81..309b3f62f6 100644 --- a/crates/ui_input/src/ui_input.rs +++ b/crates/ui_input/src/ui_input.rs @@ -97,6 +97,10 @@ impl SingleLineInput { pub fn editor(&self) -> &Entity { &self.editor } + + pub fn text(&self, cx: &App) -> String { + self.editor().read(cx).text(cx) + } } impl Render for SingleLineInput { diff --git a/docs/src/ai/configuration.md b/docs/src/ai/configuration.md index 1201fa2173..414da2206f 100644 --- a/docs/src/ai/configuration.md +++ b/docs/src/ai/configuration.md @@ -444,14 +444,17 @@ Custom models will be listed in the model dropdown in the Agent Panel. ### OpenAI API Compatible {#openai-api-compatible} -Zed supports using OpenAI compatible APIs by specifying a custom `endpoint` and `available_models` for the OpenAI provider. +Zed supports using [OpenAI compatible APIs](https://platform.openai.com/docs/api-reference/chat) by specifying a custom `api_url` and `available_models` for the OpenAI provider. This is useful for connecting to other hosted services (like Together AI, Anyscale, etc.) or local models. -Zed supports using OpenAI compatible APIs by specifying a custom `api_url` and `available_models` for the OpenAI provider. This is useful for connecting to other hosted services (like Together AI, Anyscale, etc.) or local models. +To configure a compatible API, you can add a custom API URL for OpenAI either via the UI (currently available only in Preview) or by editing your `settings.json`. -To configure a compatible API, you can add a custom API URL for OpenAI either via the UI or by editing your `settings.json`. For example, to connect to [Together AI](https://www.together.ai/): +For example, to connect to [Together AI](https://www.together.ai/) via the UI: -1. Get an API key from your [Together AI account](https://api.together.ai/settings/api-keys). -2. Add the following to your `settings.json`: +1. Get an API key from your [Together AI account](https://api.together.ai/settings/api-keys). +2. Go to the Agent Panel's settings view, click on the "Add Provider" button, and then on the "OpenAI" menu item +3. Add the requested fields, such as `api_url`, `api_key`, available models, and others + +Alternatively, you can also add it via the `settings.json`: ```json { From 939f9fffa3f7d305280957dcf1573989ab429a7b Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Tue, 22 Jul 2025 11:27:58 -0400 Subject: [PATCH 0123/1052] collab: Remove unneeded caching of Stripe meters (#34900) This PR removes the caching of Stripe meters on the `StripeBilling` object, as we weren't actually reading them anywhere. Release Notes: - N/A --- crates/collab/src/stripe_billing.rs | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/crates/collab/src/stripe_billing.rs b/crates/collab/src/stripe_billing.rs index 3d52dea0e3..707928d5cd 100644 --- a/crates/collab/src/stripe_billing.rs +++ b/crates/collab/src/stripe_billing.rs @@ -17,7 +17,7 @@ use crate::stripe_client::{ StripeCreateCheckoutSessionSubscriptionData, StripeCreateMeterEventParams, StripeCreateMeterEventPayload, StripeCreateSubscriptionItems, StripeCreateSubscriptionParams, StripeCustomerId, StripeCustomerUpdate, StripeCustomerUpdateAddress, StripeCustomerUpdateName, - StripeMeter, StripePrice, StripePriceId, StripeSubscription, StripeSubscriptionId, + StripePrice, StripePriceId, StripeSubscription, StripeSubscriptionId, StripeSubscriptionTrialSettings, StripeSubscriptionTrialSettingsEndBehavior, StripeSubscriptionTrialSettingsEndBehaviorMissingPaymentMethod, StripeTaxIdCollection, UpdateSubscriptionItems, UpdateSubscriptionParams, @@ -30,7 +30,6 @@ pub struct StripeBilling { #[derive(Default)] struct StripeBillingState { - meters_by_event_name: HashMap, price_ids_by_meter_id: HashMap, prices_by_lookup_key: HashMap, } @@ -60,14 +59,7 @@ impl StripeBilling { let mut state = self.state.write().await; - let (meters, prices) = - futures::try_join!(self.client.list_meters(), self.client.list_prices())?; - - for meter in meters { - state - .meters_by_event_name - .insert(meter.event_name.clone(), meter); - } + let prices = self.client.list_prices().await?; for price in prices { if let Some(lookup_key) = price.lookup_key.clone() { From 96f994279167569a4458bb9f5cd636bfb82c0fac Mon Sep 17 00:00:00 2001 From: Richard Feldman Date: Tue, 22 Jul 2025 11:32:39 -0400 Subject: [PATCH 0124/1052] Add setting to disable all AI features (#34896) https://github.com/user-attachments/assets/674bba41-40ac-4a98-99e4-0b47f9097b6a Release Notes: - Added setting to disable all AI features --- Cargo.lock | 2 + assets/settings/default.json | 4 ++ crates/agent_ui/Cargo.toml | 1 + crates/agent_ui/src/agent_panel.rs | 8 ++- crates/agent_ui/src/agent_ui.rs | 65 ++++++++++++++++++- crates/agent_ui/src/inline_assistant.rs | 44 ++++++++++++- crates/assistant_tools/Cargo.toml | 1 + crates/assistant_tools/src/assistant_tools.rs | 3 +- crates/client/src/client.rs | 28 ++++++++ crates/copilot/src/copilot.rs | 46 ++++++++----- crates/git_ui/Cargo.toml | 1 + crates/git_ui/src/commit_modal.rs | 14 ++-- crates/git_ui/src/git_panel.rs | 19 ++++-- .../src/inline_completion_button.rs | 7 +- crates/welcome/src/welcome.rs | 36 +++++----- crates/workspace/src/dock.rs | 13 +++- crates/zed/src/main.rs | 1 + crates/zed/src/zed/quick_action_bar.rs | 26 +++++++- crates/zeta/src/init.rs | 57 ++++++++++++---- 19 files changed, 308 insertions(+), 68 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c7297e6d59..6237bac204 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -210,6 +210,7 @@ dependencies = [ "chrono", "client", "collections", + "command_palette_hooks", "component", "context_server", "db", @@ -6360,6 +6361,7 @@ dependencies = [ "buffer_diff", "call", "chrono", + "client", "collections", "command_palette_hooks", "component", diff --git a/assets/settings/default.json b/assets/settings/default.json index 309afaccf5..dab1684aef 100644 --- a/assets/settings/default.json +++ b/assets/settings/default.json @@ -1076,6 +1076,10 @@ // Send anonymized usage data like what languages you're using Zed with. "metrics": true }, + // Whether to disable all AI features in Zed. + // + // Default: false + "disable_ai": false, // Automatically update Zed. This setting may be ignored on Linux if // installed through a package manager. "auto_update": true, diff --git a/crates/agent_ui/Cargo.toml b/crates/agent_ui/Cargo.toml index 33042c0ebd..7d3b84e42e 100644 --- a/crates/agent_ui/Cargo.toml +++ b/crates/agent_ui/Cargo.toml @@ -32,6 +32,7 @@ buffer_diff.workspace = true chrono.workspace = true client.workspace = true collections.workspace = true +command_palette_hooks.workspace = true component.workspace = true context_server.workspace = true db.workspace = true diff --git a/crates/agent_ui/src/agent_panel.rs b/crates/agent_ui/src/agent_panel.rs index fc803c730e..7e9360a0cb 100644 --- a/crates/agent_ui/src/agent_panel.rs +++ b/crates/agent_ui/src/agent_panel.rs @@ -43,7 +43,7 @@ use anyhow::{Result, anyhow}; use assistant_context::{AssistantContext, ContextEvent, ContextSummary}; use assistant_slash_command::SlashCommandWorkingSet; use assistant_tool::ToolWorkingSet; -use client::{UserStore, zed_urls}; +use client::{DisableAiSettings, UserStore, zed_urls}; use editor::{Anchor, AnchorRangeExt as _, Editor, EditorEvent, MultiBuffer}; use feature_flags::{self, FeatureFlagAppExt}; use fs::Fs; @@ -744,6 +744,7 @@ impl AgentPanel { if workspace .panel::(cx) .is_some_and(|panel| panel.read(cx).enabled(cx)) + && !DisableAiSettings::get_global(cx).disable_ai { workspace.toggle_panel_focus::(window, cx); } @@ -1665,7 +1666,10 @@ impl Panel for AgentPanel { } fn icon(&self, _window: &Window, cx: &App) -> Option { - (self.enabled(cx) && AgentSettings::get_global(cx).button).then_some(IconName::ZedAssistant) + (self.enabled(cx) + && AgentSettings::get_global(cx).button + && !DisableAiSettings::get_global(cx).disable_ai) + .then_some(IconName::ZedAssistant) } fn icon_tooltip(&self, _window: &Window, _cx: &App) -> Option<&'static str> { diff --git a/crates/agent_ui/src/agent_ui.rs b/crates/agent_ui/src/agent_ui.rs index 7f69e8f66e..cac0f1adac 100644 --- a/crates/agent_ui/src/agent_ui.rs +++ b/crates/agent_ui/src/agent_ui.rs @@ -31,7 +31,8 @@ use std::sync::Arc; use agent::{Thread, ThreadId}; use agent_settings::{AgentProfileId, AgentSettings, LanguageModelSelection}; use assistant_slash_command::SlashCommandRegistry; -use client::Client; +use client::{Client, DisableAiSettings}; +use command_palette_hooks::CommandPaletteFilter; use feature_flags::FeatureFlagAppExt as _; use fs::Fs; use gpui::{Action, App, Entity, actions}; @@ -43,6 +44,7 @@ use prompt_store::PromptBuilder; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; use settings::{Settings as _, SettingsStore}; +use std::any::TypeId; pub use crate::active_thread::ActiveThread; use crate::agent_configuration::{ConfigureContextServerModal, ManageProfilesModal}; @@ -52,6 +54,7 @@ use crate::slash_command_settings::SlashCommandSettings; pub use agent_diff::{AgentDiffPane, AgentDiffToolbar}; pub use text_thread_editor::{AgentPanelDelegate, TextThreadEditor}; pub use ui::preview::{all_agent_previews, get_agent_preview}; +use zed_actions; actions!( agent, @@ -241,6 +244,66 @@ pub fn init( }) .detach(); cx.observe_new(ManageProfilesModal::register).detach(); + + // Update command palette filter based on AI settings + update_command_palette_filter(cx); + + // Watch for settings changes + cx.observe_global::(|app_cx| { + // When settings change, update the command palette filter + update_command_palette_filter(app_cx); + }) + .detach(); +} + +fn update_command_palette_filter(cx: &mut App) { + let disable_ai = DisableAiSettings::get_global(cx).disable_ai; + CommandPaletteFilter::update_global(cx, |filter, _| { + if disable_ai { + filter.hide_namespace("agent"); + filter.hide_namespace("assistant"); + filter.hide_namespace("zed_predict_onboarding"); + filter.hide_namespace("edit_prediction"); + + use editor::actions::{ + AcceptEditPrediction, AcceptPartialEditPrediction, NextEditPrediction, + PreviousEditPrediction, ShowEditPrediction, ToggleEditPrediction, + }; + let edit_prediction_actions = [ + TypeId::of::(), + TypeId::of::(), + TypeId::of::(), + TypeId::of::(), + TypeId::of::(), + TypeId::of::(), + ]; + filter.hide_action_types(&edit_prediction_actions); + filter.hide_action_types(&[TypeId::of::()]); + } else { + filter.show_namespace("agent"); + filter.show_namespace("assistant"); + filter.show_namespace("zed_predict_onboarding"); + + filter.show_namespace("edit_prediction"); + + use editor::actions::{ + AcceptEditPrediction, AcceptPartialEditPrediction, NextEditPrediction, + PreviousEditPrediction, ShowEditPrediction, ToggleEditPrediction, + }; + let edit_prediction_actions = [ + TypeId::of::(), + TypeId::of::(), + TypeId::of::(), + TypeId::of::(), + TypeId::of::(), + TypeId::of::(), + ]; + filter.show_action_types(edit_prediction_actions.iter()); + + filter + .show_action_types([TypeId::of::()].iter()); + } + }); } fn init_language_model_settings(cx: &mut App) { diff --git a/crates/agent_ui/src/inline_assistant.rs b/crates/agent_ui/src/inline_assistant.rs index 65b72cbba5..44ec050ae2 100644 --- a/crates/agent_ui/src/inline_assistant.rs +++ b/crates/agent_ui/src/inline_assistant.rs @@ -16,7 +16,7 @@ use agent::{ }; use agent_settings::AgentSettings; use anyhow::{Context as _, Result}; -use client::telemetry::Telemetry; +use client::{DisableAiSettings, telemetry::Telemetry}; use collections::{HashMap, HashSet, VecDeque, hash_map}; use editor::SelectionEffects; use editor::{ @@ -57,6 +57,17 @@ pub fn init( cx: &mut App, ) { cx.set_global(InlineAssistant::new(fs, prompt_builder, telemetry)); + + cx.observe_global::(|cx| { + if DisableAiSettings::get_global(cx).disable_ai { + // Hide any active inline assist UI when AI is disabled + InlineAssistant::update_global(cx, |assistant, cx| { + assistant.cancel_all_active_completions(cx); + }); + } + }) + .detach(); + cx.observe_new(|_workspace: &mut Workspace, window, cx| { let Some(window) = window else { return; @@ -141,6 +152,26 @@ impl InlineAssistant { .detach(); } + /// Hides all active inline assists when AI is disabled + pub fn cancel_all_active_completions(&mut self, cx: &mut App) { + // Cancel all active completions in editors + for (editor_handle, _) in self.assists_by_editor.iter() { + if let Some(editor) = editor_handle.upgrade() { + let windows = cx.windows(); + if !windows.is_empty() { + let window = windows[0]; + let _ = window.update(cx, |_, window, cx| { + editor.update(cx, |editor, cx| { + if editor.has_active_inline_completion() { + editor.cancel(&Default::default(), window, cx); + } + }); + }); + } + } + } + } + fn handle_workspace_event( &mut self, workspace: Entity, @@ -176,7 +207,7 @@ impl InlineAssistant { window: &mut Window, cx: &mut App, ) { - let is_assistant2_enabled = true; + let is_assistant2_enabled = !DisableAiSettings::get_global(cx).disable_ai; if let Some(editor) = item.act_as::(cx) { editor.update(cx, |editor, cx| { @@ -199,6 +230,13 @@ impl InlineAssistant { cx, ); + if DisableAiSettings::get_global(cx).disable_ai { + // Cancel any active completions + if editor.has_active_inline_completion() { + editor.cancel(&Default::default(), window, cx); + } + } + // Remove the Assistant1 code action provider, as it still might be registered. editor.remove_code_action_provider("assistant".into(), window, cx); } else { @@ -219,7 +257,7 @@ impl InlineAssistant { cx: &mut Context, ) { let settings = AgentSettings::get_global(cx); - if !settings.enabled { + if !settings.enabled || DisableAiSettings::get_global(cx).disable_ai { return; } diff --git a/crates/assistant_tools/Cargo.toml b/crates/assistant_tools/Cargo.toml index e234b62b14..146800e094 100644 --- a/crates/assistant_tools/Cargo.toml +++ b/crates/assistant_tools/Cargo.toml @@ -20,6 +20,7 @@ anyhow.workspace = true assistant_tool.workspace = true buffer_diff.workspace = true chrono.workspace = true +client.workspace = true collections.workspace = true component.workspace = true derive_more.workspace = true diff --git a/crates/assistant_tools/src/assistant_tools.rs b/crates/assistant_tools/src/assistant_tools.rs index eef792f526..57fdc51336 100644 --- a/crates/assistant_tools/src/assistant_tools.rs +++ b/crates/assistant_tools/src/assistant_tools.rs @@ -20,14 +20,13 @@ mod thinking_tool; mod ui; mod web_search_tool; -use std::sync::Arc; - use assistant_tool::ToolRegistry; use copy_path_tool::CopyPathTool; use gpui::{App, Entity}; use http_client::HttpClientWithUrl; use language_model::LanguageModelRegistry; use move_path_tool::MovePathTool; +use std::sync::Arc; use web_search_tool::WebSearchTool; pub(crate) use templates::*; diff --git a/crates/client/src/client.rs b/crates/client/src/client.rs index 1be8ffdb55..81bb95b514 100644 --- a/crates/client/src/client.rs +++ b/crates/client/src/client.rs @@ -151,6 +151,7 @@ impl Settings for ProxySettings { pub fn init_settings(cx: &mut App) { TelemetrySettings::register(cx); + DisableAiSettings::register(cx); ClientSettings::register(cx); ProxySettings::register(cx); } @@ -548,6 +549,33 @@ impl settings::Settings for TelemetrySettings { } } +/// Whether to disable all AI features in Zed. +/// +/// Default: false +#[derive(Copy, Clone, Debug)] +pub struct DisableAiSettings { + pub disable_ai: bool, +} + +impl settings::Settings for DisableAiSettings { + const KEY: Option<&'static str> = Some("disable_ai"); + + type FileContent = Option; + + fn load(sources: SettingsSources, _: &mut App) -> Result { + Ok(Self { + disable_ai: sources + .user + .or(sources.server) + .copied() + .flatten() + .unwrap_or(sources.default.ok_or_else(Self::missing_default)?), + }) + } + + fn import_from_vscode(_vscode: &settings::VsCodeSettings, _current: &mut Self::FileContent) {} +} + impl Client { pub fn new( clock: Arc, diff --git a/crates/copilot/src/copilot.rs b/crates/copilot/src/copilot.rs index 1966d1a389..e11242cb15 100644 --- a/crates/copilot/src/copilot.rs +++ b/crates/copilot/src/copilot.rs @@ -6,6 +6,7 @@ mod sign_in; use crate::sign_in::initiate_sign_in_within_workspace; use ::fs::Fs; use anyhow::{Context as _, Result, anyhow}; +use client::DisableAiSettings; use collections::{HashMap, HashSet}; use command_palette_hooks::CommandPaletteFilter; use futures::{Future, FutureExt, TryFutureExt, channel::oneshot, future::Shared}; @@ -25,6 +26,7 @@ use node_runtime::NodeRuntime; use parking_lot::Mutex; use request::StatusNotification; use serde_json::json; +use settings::Settings; use settings::SettingsStore; use sign_in::{reinstall_and_sign_in_within_workspace, sign_out_within_workspace}; use std::collections::hash_map::Entry; @@ -93,26 +95,34 @@ pub fn init( let copilot_auth_action_types = [TypeId::of::()]; let copilot_no_auth_action_types = [TypeId::of::()]; let status = handle.read(cx).status(); + + let is_ai_disabled = DisableAiSettings::get_global(cx).disable_ai; let filter = CommandPaletteFilter::global_mut(cx); - match status { - Status::Disabled => { - filter.hide_action_types(&copilot_action_types); - filter.hide_action_types(&copilot_auth_action_types); - filter.hide_action_types(&copilot_no_auth_action_types); - } - Status::Authorized => { - filter.hide_action_types(&copilot_no_auth_action_types); - filter.show_action_types( - copilot_action_types - .iter() - .chain(&copilot_auth_action_types), - ); - } - _ => { - filter.hide_action_types(&copilot_action_types); - filter.hide_action_types(&copilot_auth_action_types); - filter.show_action_types(copilot_no_auth_action_types.iter()); + if is_ai_disabled { + filter.hide_action_types(&copilot_action_types); + filter.hide_action_types(&copilot_auth_action_types); + filter.hide_action_types(&copilot_no_auth_action_types); + } else { + match status { + Status::Disabled => { + filter.hide_action_types(&copilot_action_types); + filter.hide_action_types(&copilot_auth_action_types); + filter.hide_action_types(&copilot_no_auth_action_types); + } + Status::Authorized => { + filter.hide_action_types(&copilot_no_auth_action_types); + filter.show_action_types( + copilot_action_types + .iter() + .chain(&copilot_auth_action_types), + ); + } + _ => { + filter.hide_action_types(&copilot_action_types); + filter.hide_action_types(&copilot_auth_action_types); + filter.show_action_types(copilot_no_auth_action_types.iter()); + } } } }) diff --git a/crates/git_ui/Cargo.toml b/crates/git_ui/Cargo.toml index 6e04dcb656..2fb80b7e73 100644 --- a/crates/git_ui/Cargo.toml +++ b/crates/git_ui/Cargo.toml @@ -23,6 +23,7 @@ askpass.workspace = true buffer_diff.workspace = true call.workspace = true chrono.workspace = true +client.workspace = true collections.workspace = true command_palette_hooks.workspace = true component.workspace = true diff --git a/crates/git_ui/src/commit_modal.rs b/crates/git_ui/src/commit_modal.rs index ac3d24e3eb..b99f628806 100644 --- a/crates/git_ui/src/commit_modal.rs +++ b/crates/git_ui/src/commit_modal.rs @@ -1,8 +1,10 @@ use crate::branch_picker::{self, BranchList}; use crate::git_panel::{GitPanel, commit_message_editor}; +use client::DisableAiSettings; use git::repository::CommitOptions; use git::{Amend, Commit, GenerateCommitMessage, Signoff}; use panel::{panel_button, panel_editor_style}; +use settings::Settings; use ui::{ ContextMenu, KeybindingHint, PopoverMenu, PopoverMenuHandle, SplitButton, Tooltip, prelude::*, }; @@ -569,11 +571,13 @@ impl Render for CommitModal { .on_action(cx.listener(Self::dismiss)) .on_action(cx.listener(Self::commit)) .on_action(cx.listener(Self::amend)) - .on_action(cx.listener(|this, _: &GenerateCommitMessage, _, cx| { - this.git_panel.update(cx, |panel, cx| { - panel.generate_commit_message(cx); - }) - })) + .when(!DisableAiSettings::get_global(cx).disable_ai, |this| { + this.on_action(cx.listener(|this, _: &GenerateCommitMessage, _, cx| { + this.git_panel.update(cx, |panel, cx| { + panel.generate_commit_message(cx); + }) + })) + }) .on_action( cx.listener(|this, _: &zed_actions::git::Branch, window, cx| { this.toggle_branch_selector(window, cx); diff --git a/crates/git_ui/src/git_panel.rs b/crates/git_ui/src/git_panel.rs index e998586af4..061833a6c7 100644 --- a/crates/git_ui/src/git_panel.rs +++ b/crates/git_ui/src/git_panel.rs @@ -12,6 +12,7 @@ use crate::{ use agent_settings::AgentSettings; use anyhow::Context as _; use askpass::AskPassDelegate; +use client::DisableAiSettings; use db::kvp::KEY_VALUE_STORE; use editor::{ Editor, EditorElement, EditorMode, EditorSettings, MultiBuffer, ShowScrollbar, @@ -53,7 +54,7 @@ use project::{ git_store::{GitStoreEvent, Repository}, }; use serde::{Deserialize, Serialize}; -use settings::{Settings as _, SettingsStore}; +use settings::{Settings, SettingsStore}; use std::future::Future; use std::ops::Range; use std::path::{Path, PathBuf}; @@ -464,9 +465,14 @@ impl GitPanel { }; let mut assistant_enabled = AgentSettings::get_global(cx).enabled; + let mut was_ai_disabled = DisableAiSettings::get_global(cx).disable_ai; let _settings_subscription = cx.observe_global::(move |_, cx| { - if assistant_enabled != AgentSettings::get_global(cx).enabled { + let is_ai_disabled = DisableAiSettings::get_global(cx).disable_ai; + if assistant_enabled != AgentSettings::get_global(cx).enabled + || was_ai_disabled != is_ai_disabled + { assistant_enabled = AgentSettings::get_global(cx).enabled; + was_ai_disabled = is_ai_disabled; cx.notify(); } }); @@ -1806,7 +1812,7 @@ impl GitPanel { /// Generates a commit message using an LLM. pub fn generate_commit_message(&mut self, cx: &mut Context) { - if !self.can_commit() { + if !self.can_commit() || DisableAiSettings::get_global(cx).disable_ai { return; } @@ -4305,8 +4311,10 @@ impl GitPanel { } fn current_language_model(cx: &Context<'_, GitPanel>) -> Option> { - agent_settings::AgentSettings::get_global(cx) - .enabled + let is_enabled = agent_settings::AgentSettings::get_global(cx).enabled + && !DisableAiSettings::get_global(cx).disable_ai; + + is_enabled .then(|| { let ConfiguredModel { provider, model } = LanguageModelRegistry::read_global(cx).commit_message_model()?; @@ -5037,6 +5045,7 @@ mod tests { language::init(cx); editor::init(cx); Project::init_settings(cx); + client::DisableAiSettings::register(cx); crate::init(cx); }); } diff --git a/crates/inline_completion_button/src/inline_completion_button.rs b/crates/inline_completion_button/src/inline_completion_button.rs index 8a8eacdc6a..2615a8beef 100644 --- a/crates/inline_completion_button/src/inline_completion_button.rs +++ b/crates/inline_completion_button/src/inline_completion_button.rs @@ -1,5 +1,5 @@ use anyhow::Result; -use client::{UserStore, zed_urls}; +use client::{DisableAiSettings, UserStore, zed_urls}; use copilot::{Copilot, Status}; use editor::{ Editor, SelectionEffects, @@ -72,6 +72,11 @@ enum SupermavenButtonStatus { impl Render for InlineCompletionButton { fn render(&mut self, _: &mut Window, cx: &mut Context) -> impl IntoElement { + // Return empty div if AI is disabled + if DisableAiSettings::get_global(cx).disable_ai { + return div(); + } + let all_language_settings = all_language_settings(None, cx); match all_language_settings.edit_predictions.provider { diff --git a/crates/welcome/src/welcome.rs b/crates/welcome/src/welcome.rs index ea4ac13de7..49bf2031ab 100644 --- a/crates/welcome/src/welcome.rs +++ b/crates/welcome/src/welcome.rs @@ -1,4 +1,4 @@ -use client::{TelemetrySettings, telemetry::Telemetry}; +use client::{DisableAiSettings, TelemetrySettings, telemetry::Telemetry}; use db::kvp::KEY_VALUE_STORE; use gpui::{ Action, App, Context, Entity, EventEmitter, FocusHandle, Focusable, InteractiveElement, @@ -174,23 +174,25 @@ impl Render for WelcomePage { .ok(); })), ) - .child( - Button::new( - "try-zed-edit-prediction", - edit_prediction_label, + .when(!DisableAiSettings::get_global(cx).disable_ai, |parent| { + parent.child( + Button::new( + "edit_prediction_onboarding", + edit_prediction_label, + ) + .disabled(edit_prediction_provider_is_zed) + .icon(IconName::ZedPredict) + .icon_size(IconSize::XSmall) + .icon_color(Color::Muted) + .icon_position(IconPosition::Start) + .on_click( + cx.listener(|_, _, window, cx| { + telemetry::event!("Welcome Screen Try Edit Prediction clicked"); + window.dispatch_action(zed_actions::OpenZedPredictOnboarding.boxed_clone(), cx); + }), + ), ) - .disabled(edit_prediction_provider_is_zed) - .icon(IconName::ZedPredict) - .icon_size(IconSize::XSmall) - .icon_color(Color::Muted) - .icon_position(IconPosition::Start) - .on_click( - cx.listener(|_, _, window, cx| { - telemetry::event!("Welcome Screen Try Edit Prediction clicked"); - window.dispatch_action(zed_actions::OpenZedPredictOnboarding.boxed_clone(), cx); - }), - ), - ) + }) .child( Button::new("edit settings", "Edit Settings") .icon(IconName::Settings) diff --git a/crates/workspace/src/dock.rs b/crates/workspace/src/dock.rs index 4e39c2d182..3f047e2f11 100644 --- a/crates/workspace/src/dock.rs +++ b/crates/workspace/src/dock.rs @@ -242,6 +242,7 @@ struct PanelEntry { pub struct PanelButtons { dock: Entity, + _settings_subscription: Subscription, } impl Dock { @@ -373,6 +374,12 @@ impl Dock { }) } + pub fn first_enabled_panel_idx_excluding(&self, exclude_name: &str, cx: &App) -> Option { + self.panel_entries.iter().position(|entry| { + entry.panel.persistent_name() != exclude_name && entry.panel.enabled(cx) + }) + } + fn active_panel_entry(&self) -> Option<&PanelEntry> { self.active_panel_index .and_then(|index| self.panel_entries.get(index)) @@ -833,7 +840,11 @@ impl Render for Dock { impl PanelButtons { pub fn new(dock: Entity, cx: &mut Context) -> Self { cx.observe(&dock, |_, _, cx| cx.notify()).detach(); - Self { dock } + let settings_subscription = cx.observe_global::(|_, cx| cx.notify()); + Self { + dock, + _settings_subscription: settings_subscription, + } } } diff --git a/crates/zed/src/main.rs b/crates/zed/src/main.rs index c9b8eebff6..d0b9c53397 100644 --- a/crates/zed/src/main.rs +++ b/crates/zed/src/main.rs @@ -554,6 +554,7 @@ pub fn main() { supermaven::init(app_state.client.clone(), cx); language_model::init(app_state.client.clone(), cx); language_models::init(app_state.user_store.clone(), app_state.client.clone(), cx); + agent_settings::init(cx); agent_servers::init(cx); web_search::init(cx); web_search_providers::init(app_state.client.clone(), cx); diff --git a/crates/zed/src/zed/quick_action_bar.rs b/crates/zed/src/zed/quick_action_bar.rs index c95d86c84f..aff124a0bc 100644 --- a/crates/zed/src/zed/quick_action_bar.rs +++ b/crates/zed/src/zed/quick_action_bar.rs @@ -2,6 +2,7 @@ mod preview; mod repl_menu; use agent_settings::AgentSettings; +use client::DisableAiSettings; use editor::actions::{ AddSelectionAbove, AddSelectionBelow, CodeActionSource, DuplicateLineDown, GoToDiagnostic, GoToHunk, GoToPreviousDiagnostic, GoToPreviousHunk, MoveLineDown, MoveLineUp, SelectAll, @@ -32,6 +33,7 @@ const MAX_CODE_ACTION_MENU_LINES: u32 = 16; pub struct QuickActionBar { _inlay_hints_enabled_subscription: Option, + _ai_settings_subscription: Subscription, active_item: Option>, buffer_search_bar: Entity, show: bool, @@ -46,8 +48,28 @@ impl QuickActionBar { workspace: &Workspace, cx: &mut Context, ) -> Self { + let mut was_ai_disabled = DisableAiSettings::get_global(cx).disable_ai; + let mut was_agent_enabled = AgentSettings::get_global(cx).enabled; + let mut was_agent_button = AgentSettings::get_global(cx).button; + + let ai_settings_subscription = cx.observe_global::(move |_, cx| { + let is_ai_disabled = DisableAiSettings::get_global(cx).disable_ai; + let agent_settings = AgentSettings::get_global(cx); + + if was_ai_disabled != is_ai_disabled + || was_agent_enabled != agent_settings.enabled + || was_agent_button != agent_settings.button + { + was_ai_disabled = is_ai_disabled; + was_agent_enabled = agent_settings.enabled; + was_agent_button = agent_settings.button; + cx.notify(); + } + }); + let mut this = Self { _inlay_hints_enabled_subscription: None, + _ai_settings_subscription: ai_settings_subscription, active_item: None, buffer_search_bar, show: true, @@ -575,7 +597,9 @@ impl Render for QuickActionBar { .children(self.render_preview_button(self.workspace.clone(), cx)) .children(search_button) .when( - AgentSettings::get_global(cx).enabled && AgentSettings::get_global(cx).button, + AgentSettings::get_global(cx).enabled + && AgentSettings::get_global(cx).button + && !DisableAiSettings::get_global(cx).disable_ai, |bar| bar.child(assistant_button), ) .children(code_actions_dropdown) diff --git a/crates/zeta/src/init.rs b/crates/zeta/src/init.rs index 4bcd50df88..4a65771223 100644 --- a/crates/zeta/src/init.rs +++ b/crates/zeta/src/init.rs @@ -1,10 +1,11 @@ use std::any::{Any, TypeId}; +use client::DisableAiSettings; use command_palette_hooks::CommandPaletteFilter; use feature_flags::{FeatureFlagAppExt as _, PredictEditsRateCompletionsFeatureFlag}; use gpui::actions; use language::language_settings::{AllLanguageSettings, EditPredictionProvider}; -use settings::update_settings_file; +use settings::{Settings, SettingsStore, update_settings_file}; use ui::App; use workspace::Workspace; @@ -21,6 +22,8 @@ actions!( ); pub fn init(cx: &mut App) { + feature_gate_predict_edits_actions(cx); + cx.observe_new(move |workspace: &mut Workspace, _, _cx| { workspace.register_action(|workspace, _: &RateCompletions, window, cx| { if cx.has_flag::() { @@ -53,27 +56,57 @@ pub fn init(cx: &mut App) { }); }) .detach(); - - feature_gate_predict_edits_rating_actions(cx); } -fn feature_gate_predict_edits_rating_actions(cx: &mut App) { +fn feature_gate_predict_edits_actions(cx: &mut App) { let rate_completion_action_types = [TypeId::of::()]; + let reset_onboarding_action_types = [TypeId::of::()]; + let zeta_all_action_types = [ + TypeId::of::(), + TypeId::of::(), + zed_actions::OpenZedPredictOnboarding.type_id(), + TypeId::of::(), + TypeId::of::(), + TypeId::of::(), + TypeId::of::(), + TypeId::of::(), + ]; CommandPaletteFilter::update_global(cx, |filter, _cx| { filter.hide_action_types(&rate_completion_action_types); + filter.hide_action_types(&reset_onboarding_action_types); filter.hide_action_types(&[zed_actions::OpenZedPredictOnboarding.type_id()]); }); + cx.observe_global::(move |cx| { + let is_ai_disabled = DisableAiSettings::get_global(cx).disable_ai; + let has_feature_flag = cx.has_flag::(); + + CommandPaletteFilter::update_global(cx, |filter, _cx| { + if is_ai_disabled { + filter.hide_action_types(&zeta_all_action_types); + } else { + if has_feature_flag { + filter.show_action_types(rate_completion_action_types.iter()); + } else { + filter.hide_action_types(&rate_completion_action_types); + } + } + }); + }) + .detach(); + cx.observe_flag::(move |is_enabled, cx| { - if is_enabled { - CommandPaletteFilter::update_global(cx, |filter, _cx| { - filter.show_action_types(rate_completion_action_types.iter()); - }); - } else { - CommandPaletteFilter::update_global(cx, |filter, _cx| { - filter.hide_action_types(&rate_completion_action_types); - }); + if !DisableAiSettings::get_global(cx).disable_ai { + if is_enabled { + CommandPaletteFilter::update_global(cx, |filter, _cx| { + filter.show_action_types(rate_completion_action_types.iter()); + }); + } else { + CommandPaletteFilter::update_global(cx, |filter, _cx| { + filter.hide_action_types(&rate_completion_action_types); + }); + } } }) .detach(); From 2b888e1d30c5f1876cedd1ddac18bb050a568ae2 Mon Sep 17 00:00:00 2001 From: Ben Kunkle Date: Tue, 22 Jul 2025 10:45:42 -0500 Subject: [PATCH 0125/1052] Fix redo after noop format (#34898) Closes #31917 Previously, as of #28457 we used a hack, creating an empty transaction in the history that we then merged formatting changes into in order to correctly identify concurrent edits to the buffer while formatting was happening. This caused issues with noop formatting however, as using the normal API of the buffer history (in an albeit weird way) resulted in the redo stack being cleared, regardless of whether the formatting transaction included edits or not, which is the correct behavior in all other contexts. This PR fixes the redo issue by codifying the behavior formatting wants, that being the ability to push an empty transaction to the history with no other side-effects (i.e. clearing the redo stack) to detect concurrent edits, with the tradeoff being that it must then manually remove the transaction later if no changes occurred from the formatting. The redo stack is still cleared when there are formatting edits, as the individual format steps use the normal `{start,end}_transaction` methods which clear the redo stack if the finished transaction isn't empty. Release Notes: - Fixed an issue where redo would not work after buffer formatting (including formatting on save) when the formatting did not result in any changes --- crates/editor/src/editor_tests.rs | 70 ++++++++++++++++++++++++++++++- crates/language/src/buffer.rs | 15 +++++++ crates/project/src/lsp_store.rs | 8 +--- crates/text/src/text.rs | 52 ++++++++++++++++++++++- 4 files changed, 137 insertions(+), 8 deletions(-) diff --git a/crates/editor/src/editor_tests.rs b/crates/editor/src/editor_tests.rs index 4efb052c71..fbb877796c 100644 --- a/crates/editor/src/editor_tests.rs +++ b/crates/editor/src/editor_tests.rs @@ -9570,6 +9570,74 @@ async fn test_document_format_during_save(cx: &mut TestAppContext) { } } +#[gpui::test] +async fn test_redo_after_noop_format(cx: &mut TestAppContext) { + init_test(cx, |settings| { + settings.defaults.ensure_final_newline_on_save = Some(false); + }); + + let fs = FakeFs::new(cx.executor()); + fs.insert_file(path!("/file.txt"), "foo".into()).await; + + let project = Project::test(fs, [path!("/file.txt").as_ref()], cx).await; + + let buffer = project + .update(cx, |project, cx| { + project.open_local_buffer(path!("/file.txt"), cx) + }) + .await + .unwrap(); + + let buffer = cx.new(|cx| MultiBuffer::singleton(buffer, cx)); + let (editor, cx) = cx.add_window_view(|window, cx| { + build_editor_with_project(project.clone(), buffer, window, cx) + }); + editor.update_in(cx, |editor, window, cx| { + editor.change_selections(SelectionEffects::default(), window, cx, |s| { + s.select_ranges([0..0]) + }); + }); + assert!(!cx.read(|cx| editor.is_dirty(cx))); + + editor.update_in(cx, |editor, window, cx| { + editor.handle_input("\n", window, cx) + }); + cx.run_until_parked(); + save(&editor, &project, cx).await; + assert_eq!("\nfoo", editor.read_with(cx, |editor, cx| editor.text(cx))); + + editor.update_in(cx, |editor, window, cx| { + editor.undo(&Default::default(), window, cx); + }); + save(&editor, &project, cx).await; + assert_eq!("foo", editor.read_with(cx, |editor, cx| editor.text(cx))); + + editor.update_in(cx, |editor, window, cx| { + editor.redo(&Default::default(), window, cx); + }); + cx.run_until_parked(); + assert_eq!("\nfoo", editor.read_with(cx, |editor, cx| editor.text(cx))); + + async fn save(editor: &Entity, project: &Entity, cx: &mut VisualTestContext) { + let save = editor + .update_in(cx, |editor, window, cx| { + editor.save( + SaveOptions { + format: true, + autosave: false, + }, + project.clone(), + window, + cx, + ) + }) + .unwrap(); + cx.executor().start_waiting(); + save.await; + assert!(!cx.read(|cx| editor.is_dirty(cx))); + } +} + #[gpui::test] async fn test_multibuffer_format_during_save(cx: &mut TestAppContext) { init_test(cx, |_| {}); @@ -22708,7 +22776,7 @@ pub(crate) fn init_test(cx: &mut TestAppContext, f: fn(&mut AllLanguageSettingsC workspace::init_settings(cx); crate::init(cx); }); - + zlog::init_test(); update_test_language_settings(cx, f); } diff --git a/crates/language/src/buffer.rs b/crates/language/src/buffer.rs index 59aa63ff38..83517accc2 100644 --- a/crates/language/src/buffer.rs +++ b/crates/language/src/buffer.rs @@ -2072,6 +2072,21 @@ impl Buffer { self.text.push_transaction(transaction, now); } + /// Differs from `push_transaction` in that it does not clear the redo + /// stack. Intended to be used to create a parent transaction to merge + /// potential child transactions into. + /// + /// The caller is responsible for removing it from the undo history using + /// `forget_transaction` if no edits are merged into it. Otherwise, if edits + /// are merged into this transaction, the caller is responsible for ensuring + /// the redo stack is cleared. The easiest way to ensure the redo stack is + /// cleared is to create transactions with the usual `start_transaction` and + /// `end_transaction` methods and merging the resulting transactions into + /// the transaction created by this method + pub fn push_empty_transaction(&mut self, now: Instant) -> TransactionId { + self.text.push_empty_transaction(now) + } + /// Prevent the last transaction from being grouped with any subsequent transactions, /// even if they occur with the buffer's undo grouping duration. pub fn finalize_last_transaction(&mut self) -> Option<&Transaction> { diff --git a/crates/project/src/lsp_store.rs b/crates/project/src/lsp_store.rs index 28cbfcdd18..0cd375e0c5 100644 --- a/crates/project/src/lsp_store.rs +++ b/crates/project/src/lsp_store.rs @@ -1274,15 +1274,11 @@ impl LocalLspStore { // grouped with the previous transaction in the history // based on the transaction group interval buffer.finalize_last_transaction(); - let transaction_id = buffer + buffer .start_transaction() .context("transaction already open")?; - let transaction = buffer - .get_transaction(transaction_id) - .expect("transaction started") - .clone(); buffer.end_transaction(cx); - buffer.push_transaction(transaction, cx.background_executor().now()); + let transaction_id = buffer.push_empty_transaction(cx.background_executor().now()); buffer.finalize_last_transaction(); anyhow::Ok(transaction_id) })??; diff --git a/crates/text/src/text.rs b/crates/text/src/text.rs index a2742081f4..aa9682029e 100644 --- a/crates/text/src/text.rs +++ b/crates/text/src/text.rs @@ -320,7 +320,39 @@ impl History { last_edit_at: now, suppress_grouping: false, }); - self.redo_stack.clear(); + } + + /// Differs from `push_transaction` in that it does not clear the redo + /// stack. Intended to be used to create a parent transaction to merge + /// potential child transactions into. + /// + /// The caller is responsible for removing it from the undo history using + /// `forget_transaction` if no edits are merged into it. Otherwise, if edits + /// are merged into this transaction, the caller is responsible for ensuring + /// the redo stack is cleared. The easiest way to ensure the redo stack is + /// cleared is to create transactions with the usual `start_transaction` and + /// `end_transaction` methods and merging the resulting transactions into + /// the transaction created by this method + fn push_empty_transaction( + &mut self, + start: clock::Global, + now: Instant, + clock: &mut clock::Lamport, + ) -> TransactionId { + assert_eq!(self.transaction_depth, 0); + let id = clock.tick(); + let transaction = Transaction { + id, + start, + edit_ids: Vec::new(), + }; + self.undo_stack.push(HistoryEntry { + transaction, + first_edit_at: now, + last_edit_at: now, + suppress_grouping: false, + }); + id } fn push_undo(&mut self, op_id: clock::Lamport) { @@ -1495,6 +1527,24 @@ impl Buffer { self.history.push_transaction(transaction, now); } + /// Differs from `push_transaction` in that it does not clear the redo stack. + /// The caller responsible for + /// Differs from `push_transaction` in that it does not clear the redo + /// stack. Intended to be used to create a parent transaction to merge + /// potential child transactions into. + /// + /// The caller is responsible for removing it from the undo history using + /// `forget_transaction` if no edits are merged into it. Otherwise, if edits + /// are merged into this transaction, the caller is responsible for ensuring + /// the redo stack is cleared. The easiest way to ensure the redo stack is + /// cleared is to create transactions with the usual `start_transaction` and + /// `end_transaction` methods and merging the resulting transactions into + /// the transaction created by this method + pub fn push_empty_transaction(&mut self, now: Instant) -> TransactionId { + self.history + .push_empty_transaction(self.version.clone(), now, &mut self.lamport_clock) + } + pub fn edited_ranges_for_transaction_id( &self, transaction_id: TransactionId, From 56b99f49fdbba2fe87e4693a646e88a613fdadc0 Mon Sep 17 00:00:00 2001 From: tiagoq <47694386+tiagoq@users.noreply.github.com> Date: Tue, 22 Jul 2025 11:55:24 -0400 Subject: [PATCH 0126/1052] bedrock: Fix remaining streaming delays (#33931) Closes #26030 *Note: This is my first contribution to Zed* This addresses a second streaming bottleneck in Bedrock that remained after the initial fix in #28281 (released in preview 194). The issue is in the mechanism used to convert Zed's internal `AsyncBody` into the `SdkBody` expected by the Bedrock language provider. We are using a non-streaming converter that buffers responses. **How the fix works:** The AWS SDK provides streaming-compatible converters to create `SdkBody` instances, but these require the input body to implement the `Body` trait from the `http-body` crate. This PR enables streaming by implementing the required trait and switching to the streaming-compatible converter. **Changes (2 commits):** * 1st Commit - **Implement http-body Body trait for AsyncBody:** - Add `http-body = 1.0` dependency (already an indirect dependency) - Implement the `Body` trait for our existing `AsyncBody` type - Uses `poll_frame` to read data chunks asynchronously, preserving streaming behavior * 2nd Commit - **Use streaming-compatible AWS SDK converter:** - Create `SdkBody` using `SdkBody::from_body_1_x()` with the new `Body` trait implementation **Details/FAQ:** **Q: Why add another dependency?** A: We tried to avoid adding a dependency, but the AWS SDK requires the `Body` trait and `http-body` is where it's defined. The crate is already an indirect dependency, making this a reasonable solution. **Q: Why modify the shared `http_client` crate instead of just `aws_bedrock_client`?** A: We considered implementing the `Body` trait on a wrapper in `aws_bedrock_client`, but since `AsyncBody` already uses `http` crate types, extending support to the companion `http-body` crate seems reasonable and may benefit other integrations. **Q: How was this bottleneck discovered?** A: After @5herlocked's initial streaming fix in #28281, I tested preview 194 and noticed streaming still had issues. I found a way to reproduce the problem and chatted with @5herlocked about it. He immediately pinpointed the exact location where the issue was occurring, his diagnosis made this fix possible. **Q: How does this relate to the previous fix?** A: #28281 fixed buffering issues higher in the stack, but unfortunately there was another bottleneck lower-down in the aws-http-client. This PR addresses that separate buffering issue. **Q: Does this use zero-copy or one-copy?** A: The `Body` implementation includes one copy. Someone more knowledgeable might be able to achieve a zero-copy approach, but we opted for a conservative approach. The performance impact should not be perceptible in typical usage. **Testing:** Confirmed that Bedrock streaming now works without buffering delays in a local build. Release Notes: - Improved Bedrock streaming by eliminating response buffering delays --------- Co-authored-by: Marshall Bowers --- Cargo.lock | 3 +- Cargo.toml | 1 + crates/aws_http_client/Cargo.toml | 2 - crates/aws_http_client/src/aws_http_client.rs | 39 +++++-------------- crates/http_client/Cargo.toml | 1 + crates/http_client/src/async_body.rs | 22 +++++++++++ .../language_models/src/provider/bedrock.rs | 8 +--- 7 files changed, 36 insertions(+), 40 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6237bac204..c64995b01b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1872,9 +1872,7 @@ version = "0.1.0" dependencies = [ "aws-smithy-runtime-api", "aws-smithy-types", - "futures 0.3.31", "http_client", - "tokio", "workspace-hack", ] @@ -7857,6 +7855,7 @@ dependencies = [ "derive_more 0.99.19", "futures 0.3.31", "http 1.3.1", + "http-body 1.0.1", "log", "serde", "serde_json", diff --git a/Cargo.toml b/Cargo.toml index ea8690f2b3..ec793a7429 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -482,6 +482,7 @@ heed = { version = "0.21.0", features = ["read-txn-no-tls"] } hex = "0.4.3" html5ever = "0.27.0" http = "1.1" +http-body = "1.0" hyper = "0.14" ignore = "0.4.22" image = "0.25.1" diff --git a/crates/aws_http_client/Cargo.toml b/crates/aws_http_client/Cargo.toml index 3760f70fe0..2749286d4c 100644 --- a/crates/aws_http_client/Cargo.toml +++ b/crates/aws_http_client/Cargo.toml @@ -17,7 +17,5 @@ default = [] [dependencies] aws-smithy-runtime-api.workspace = true aws-smithy-types.workspace = true -futures.workspace = true http_client.workspace = true -tokio = { workspace = true, features = ["rt", "rt-multi-thread"] } workspace-hack.workspace = true diff --git a/crates/aws_http_client/src/aws_http_client.rs b/crates/aws_http_client/src/aws_http_client.rs index 6adb995747..d08c8e64a7 100644 --- a/crates/aws_http_client/src/aws_http_client.rs +++ b/crates/aws_http_client/src/aws_http_client.rs @@ -11,14 +11,11 @@ use aws_smithy_runtime_api::client::result::ConnectorError; use aws_smithy_runtime_api::client::runtime_components::RuntimeComponents; use aws_smithy_runtime_api::http::{Headers, StatusCode}; use aws_smithy_types::body::SdkBody; -use futures::AsyncReadExt; -use http_client::{AsyncBody, Inner}; +use http_client::AsyncBody; use http_client::{HttpClient, Request}; -use tokio::runtime::Handle; struct AwsHttpConnector { client: Arc, - handle: Handle, } impl std::fmt::Debug for AwsHttpConnector { @@ -42,18 +39,17 @@ impl AwsConnector for AwsHttpConnector { .client .send(Request::from_parts(parts, convert_to_async_body(body))); - let handle = self.handle.clone(); - HttpConnectorFuture::new(async move { let response = match response.await { Ok(response) => response, Err(err) => return Err(ConnectorError::other(err.into(), None)), }; let (parts, body) = response.into_parts(); - let body = convert_to_sdk_body(body, handle).await; - let mut response = - HttpResponse::new(StatusCode::try_from(parts.status.as_u16()).unwrap(), body); + let mut response = HttpResponse::new( + StatusCode::try_from(parts.status.as_u16()).unwrap(), + convert_to_sdk_body(body), + ); let headers = match Headers::try_from(parts.headers) { Ok(headers) => headers, @@ -70,7 +66,6 @@ impl AwsConnector for AwsHttpConnector { #[derive(Clone)] pub struct AwsHttpClient { client: Arc, - handler: Handle, } impl std::fmt::Debug for AwsHttpClient { @@ -80,11 +75,8 @@ impl std::fmt::Debug for AwsHttpClient { } impl AwsHttpClient { - pub fn new(client: Arc, handle: Handle) -> Self { - Self { - client, - handler: handle, - } + pub fn new(client: Arc) -> Self { + Self { client } } } @@ -96,25 +88,12 @@ impl AwsClient for AwsHttpClient { ) -> SharedHttpConnector { SharedHttpConnector::new(AwsHttpConnector { client: self.client.clone(), - handle: self.handler.clone(), }) } } -pub async fn convert_to_sdk_body(body: AsyncBody, handle: Handle) -> SdkBody { - match body.0 { - Inner::Empty => SdkBody::empty(), - Inner::Bytes(bytes) => SdkBody::from(bytes.into_inner()), - Inner::AsyncReader(mut reader) => { - let buffer = handle.spawn(async move { - let mut buffer = Vec::new(); - let _ = reader.read_to_end(&mut buffer).await; - buffer - }); - - SdkBody::from(buffer.await.unwrap_or_default()) - } - } +pub fn convert_to_sdk_body(body: AsyncBody) -> SdkBody { + SdkBody::from_body_1_x(body) } pub fn convert_to_async_body(body: SdkBody) -> AsyncBody { diff --git a/crates/http_client/Cargo.toml b/crates/http_client/Cargo.toml index 2b114f240a..2045708ff2 100644 --- a/crates/http_client/Cargo.toml +++ b/crates/http_client/Cargo.toml @@ -21,6 +21,7 @@ anyhow.workspace = true derive_more.workspace = true futures.workspace = true http.workspace = true +http-body.workspace = true log.workspace = true serde.workspace = true serde_json.workspace = true diff --git a/crates/http_client/src/async_body.rs b/crates/http_client/src/async_body.rs index caf8089d0f..88972d279c 100644 --- a/crates/http_client/src/async_body.rs +++ b/crates/http_client/src/async_body.rs @@ -6,6 +6,7 @@ use std::{ use bytes::Bytes; use futures::AsyncRead; +use http_body::{Body, Frame}; /// Based on the implementation of AsyncBody in /// . @@ -114,3 +115,24 @@ impl futures::AsyncRead for AsyncBody { } } } + +impl Body for AsyncBody { + type Data = Bytes; + type Error = std::io::Error; + + fn poll_frame( + mut self: Pin<&mut Self>, + cx: &mut std::task::Context<'_>, + ) -> Poll, Self::Error>>> { + let mut buffer = vec![0; 8192]; + match AsyncRead::poll_read(self.as_mut(), cx, &mut buffer) { + Poll::Ready(Ok(0)) => Poll::Ready(None), + Poll::Ready(Ok(n)) => { + let data = Bytes::copy_from_slice(&buffer[..n]); + Poll::Ready(Some(Ok(Frame::data(data)))) + } + Poll::Ready(Err(e)) => Poll::Ready(Some(Err(e))), + Poll::Pending => Poll::Pending, + } + } +} diff --git a/crates/language_models/src/provider/bedrock.rs b/crates/language_models/src/provider/bedrock.rs index 65ce1dbc4b..a022511b11 100644 --- a/crates/language_models/src/provider/bedrock.rs +++ b/crates/language_models/src/provider/bedrock.rs @@ -258,13 +258,9 @@ impl BedrockLanguageModelProvider { }), }); - let tokio_handle = Tokio::handle(cx); - - let coerced_client = AwsHttpClient::new(http_client.clone(), tokio_handle.clone()); - Self { - http_client: coerced_client, - handler: tokio_handle.clone(), + http_client: AwsHttpClient::new(http_client.clone()), + handler: Tokio::handle(cx), state, } } From fa3e1ccc37373777756283829d180e41e63f8d1a Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Tue, 22 Jul 2025 18:19:51 +0200 Subject: [PATCH 0127/1052] chore: Bump taffy to 0.8.3 (#34876) That's the latest release. Note that we have an opportunity to simplify our size types per https://github.com/DioxusLabs/taffy/blob/main/CHANGELOG.md#highlights-1 (though that's left out of this PR) image Release Notes: - N/A --- Cargo.lock | 9 ++++----- crates/gpui/Cargo.toml | 2 +- crates/gpui/src/taffy.rs | 26 +++++++++++++------------- 3 files changed, 18 insertions(+), 19 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c64995b01b..08d29cdc80 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7401,9 +7401,9 @@ dependencies = [ [[package]] name = "grid" -version = "0.14.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be136d9dacc2a13cc70bb6c8f902b414fb2641f8db1314637c6b7933411a8f82" +checksum = "71b01d27060ad58be4663b9e4ac9e2d4806918e8876af8912afbddd1a91d5eaa" [[package]] name = "group" @@ -15958,13 +15958,12 @@ dependencies = [ [[package]] name = "taffy" -version = "0.5.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8b61630cba2afd2c851821add2e1bb1b7851a2436e839ab73b56558b009035e" +checksum = "7aaef0ac998e6527d6d0d5582f7e43953bb17221ac75bb8eb2fcc2db3396db1c" dependencies = [ "arrayvec", "grid", - "num-traits", "serde", "slotmap", ] diff --git a/crates/gpui/Cargo.toml b/crates/gpui/Cargo.toml index 878794647a..68c0ea89c7 100644 --- a/crates/gpui/Cargo.toml +++ b/crates/gpui/Cargo.toml @@ -121,7 +121,7 @@ smallvec.workspace = true smol.workspace = true strum.workspace = true sum_tree.workspace = true -taffy = "=0.5.1" +taffy = "=0.8.3" thiserror.workspace = true util.workspace = true uuid.workspace = true diff --git a/crates/gpui/src/taffy.rs b/crates/gpui/src/taffy.rs index 6228a60490..f7fa54256d 100644 --- a/crates/gpui/src/taffy.rs +++ b/crates/gpui/src/taffy.rs @@ -283,7 +283,7 @@ impl ToTaffy for Length { fn to_taffy(&self, rem_size: Pixels) -> taffy::prelude::LengthPercentageAuto { match self { Length::Definite(length) => length.to_taffy(rem_size), - Length::Auto => taffy::prelude::LengthPercentageAuto::Auto, + Length::Auto => taffy::prelude::LengthPercentageAuto::auto(), } } } @@ -292,7 +292,7 @@ impl ToTaffy for Length { fn to_taffy(&self, rem_size: Pixels) -> taffy::prelude::Dimension { match self { Length::Definite(length) => length.to_taffy(rem_size), - Length::Auto => taffy::prelude::Dimension::Auto, + Length::Auto => taffy::prelude::Dimension::auto(), } } } @@ -302,14 +302,14 @@ impl ToTaffy for DefiniteLength { match self { DefiniteLength::Absolute(length) => match length { AbsoluteLength::Pixels(pixels) => { - taffy::style::LengthPercentage::Length(pixels.into()) + taffy::style::LengthPercentage::length(pixels.into()) } AbsoluteLength::Rems(rems) => { - taffy::style::LengthPercentage::Length((*rems * rem_size).into()) + taffy::style::LengthPercentage::length((*rems * rem_size).into()) } }, DefiniteLength::Fraction(fraction) => { - taffy::style::LengthPercentage::Percent(*fraction) + taffy::style::LengthPercentage::percent(*fraction) } } } @@ -320,14 +320,14 @@ impl ToTaffy for DefiniteLength { match self { DefiniteLength::Absolute(length) => match length { AbsoluteLength::Pixels(pixels) => { - taffy::style::LengthPercentageAuto::Length(pixels.into()) + taffy::style::LengthPercentageAuto::length(pixels.into()) } AbsoluteLength::Rems(rems) => { - taffy::style::LengthPercentageAuto::Length((*rems * rem_size).into()) + taffy::style::LengthPercentageAuto::length((*rems * rem_size).into()) } }, DefiniteLength::Fraction(fraction) => { - taffy::style::LengthPercentageAuto::Percent(*fraction) + taffy::style::LengthPercentageAuto::percent(*fraction) } } } @@ -337,12 +337,12 @@ impl ToTaffy for DefiniteLength { fn to_taffy(&self, rem_size: Pixels) -> taffy::style::Dimension { match self { DefiniteLength::Absolute(length) => match length { - AbsoluteLength::Pixels(pixels) => taffy::style::Dimension::Length(pixels.into()), + AbsoluteLength::Pixels(pixels) => taffy::style::Dimension::length(pixels.into()), AbsoluteLength::Rems(rems) => { - taffy::style::Dimension::Length((*rems * rem_size).into()) + taffy::style::Dimension::length((*rems * rem_size).into()) } }, - DefiniteLength::Fraction(fraction) => taffy::style::Dimension::Percent(*fraction), + DefiniteLength::Fraction(fraction) => taffy::style::Dimension::percent(*fraction), } } } @@ -350,9 +350,9 @@ impl ToTaffy for DefiniteLength { impl ToTaffy for AbsoluteLength { fn to_taffy(&self, rem_size: Pixels) -> taffy::style::LengthPercentage { match self { - AbsoluteLength::Pixels(pixels) => taffy::style::LengthPercentage::Length(pixels.into()), + AbsoluteLength::Pixels(pixels) => taffy::style::LengthPercentage::length(pixels.into()), AbsoluteLength::Rems(rems) => { - taffy::style::LengthPercentage::Length((*rems * rem_size).into()) + taffy::style::LengthPercentage::length((*rems * rem_size).into()) } } } From 64d0fec699607f4cef8b2625fef62d1ea105a2ed Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Tue, 22 Jul 2025 18:20:48 +0200 Subject: [PATCH 0128/1052] sum_tree: Store context on cursor (#34904) This gets rid of the need to pass context to all cursor functions. In practice context is always immutable when interacting with cursors. A nicety of this is in the follow-up PR we will be able to implement Iterator for all Cursors/filter cursors (hell, we may be able to get rid of filter cursor altogether, as it is just a custom `filter` impl on iterator trait). Release Notes: - N/A --- crates/buffer_diff/src/buffer_diff.rs | 42 ++- crates/channel/src/channel_chat.rs | 30 +- crates/editor/src/display_map/block_map.rs | 96 +++--- crates/editor/src/display_map/crease_map.rs | 24 +- crates/editor/src/display_map/fold_map.rs | 119 ++++---- crates/editor/src/display_map/inlay_map.rs | 94 +++--- crates/editor/src/display_map/wrap_map.rs | 106 +++---- crates/editor/src/git/blame.rs | 14 +- crates/gpui/src/elements/list.rs | 54 ++-- crates/language/src/diagnostic_set.rs | 8 +- crates/language/src/syntax_map.rs | 35 ++- crates/multi_buffer/src/multi_buffer.rs | 286 +++++++++--------- .../notifications/src/notification_store.rs | 10 +- crates/project/src/git_store.rs | 4 +- crates/project/src/git_store/git_traversal.rs | 7 +- crates/rope/src/rope.rs | 104 +++---- crates/sum_tree/src/cursor.rs | 173 ++++++----- crates/sum_tree/src/sum_tree.rs | 222 +++++--------- crates/sum_tree/src/tree_map.rs | 34 +-- crates/text/src/anchor.rs | 2 +- crates/text/src/text.rs | 115 ++++--- crates/text/src/undo_map.rs | 2 - crates/worktree/src/worktree.rs | 44 ++- 23 files changed, 749 insertions(+), 876 deletions(-) diff --git a/crates/buffer_diff/src/buffer_diff.rs b/crates/buffer_diff/src/buffer_diff.rs index ee09fda46e..97f529fe37 100644 --- a/crates/buffer_diff/src/buffer_diff.rs +++ b/crates/buffer_diff/src/buffer_diff.rs @@ -343,8 +343,7 @@ impl BufferDiffInner { .. } in hunks.iter().cloned() { - let preceding_pending_hunks = - old_pending_hunks.slice(&buffer_range.start, Bias::Left, buffer); + let preceding_pending_hunks = old_pending_hunks.slice(&buffer_range.start, Bias::Left); pending_hunks.append(preceding_pending_hunks, buffer); // Skip all overlapping or adjacent old pending hunks @@ -355,7 +354,7 @@ impl BufferDiffInner { .cmp(&buffer_range.end, buffer) .is_le() }) { - old_pending_hunks.next(buffer); + old_pending_hunks.next(); } if (stage && secondary_status == DiffHunkSecondaryStatus::NoSecondaryHunk) @@ -379,10 +378,10 @@ impl BufferDiffInner { ); } // append the remainder - pending_hunks.append(old_pending_hunks.suffix(buffer), buffer); + pending_hunks.append(old_pending_hunks.suffix(), buffer); let mut unstaged_hunk_cursor = unstaged_diff.hunks.cursor::(buffer); - unstaged_hunk_cursor.next(buffer); + unstaged_hunk_cursor.next(); // then, iterate over all pending hunks (both new ones and the existing ones) and compute the edits let mut prev_unstaged_hunk_buffer_end = 0; @@ -397,8 +396,7 @@ impl BufferDiffInner { }) = pending_hunks_iter.next() { // Advance unstaged_hunk_cursor to skip unstaged hunks before current hunk - let skipped_unstaged = - unstaged_hunk_cursor.slice(&buffer_range.start, Bias::Left, buffer); + let skipped_unstaged = unstaged_hunk_cursor.slice(&buffer_range.start, Bias::Left); if let Some(unstaged_hunk) = skipped_unstaged.last() { prev_unstaged_hunk_base_text_end = unstaged_hunk.diff_base_byte_range.end; @@ -425,7 +423,7 @@ impl BufferDiffInner { buffer_offset_range.end = buffer_offset_range.end.max(unstaged_hunk_offset_range.end); - unstaged_hunk_cursor.next(buffer); + unstaged_hunk_cursor.next(); continue; } } @@ -514,7 +512,7 @@ impl BufferDiffInner { }); let anchor_iter = iter::from_fn(move || { - cursor.next(buffer); + cursor.next(); cursor.item() }) .flat_map(move |hunk| { @@ -531,12 +529,12 @@ impl BufferDiffInner { }); let mut pending_hunks_cursor = self.pending_hunks.cursor::(buffer); - pending_hunks_cursor.next(buffer); + pending_hunks_cursor.next(); let mut secondary_cursor = None; if let Some(secondary) = secondary.as_ref() { let mut cursor = secondary.hunks.cursor::(buffer); - cursor.next(buffer); + cursor.next(); secondary_cursor = Some(cursor); } @@ -564,7 +562,7 @@ impl BufferDiffInner { .cmp(&pending_hunks_cursor.start().buffer_range.start, buffer) .is_gt() { - pending_hunks_cursor.seek_forward(&start_anchor, Bias::Left, buffer); + pending_hunks_cursor.seek_forward(&start_anchor, Bias::Left); } if let Some(pending_hunk) = pending_hunks_cursor.item() { @@ -590,7 +588,7 @@ impl BufferDiffInner { .cmp(&secondary_cursor.start().buffer_range.start, buffer) .is_gt() { - secondary_cursor.seek_forward(&start_anchor, Bias::Left, buffer); + secondary_cursor.seek_forward(&start_anchor, Bias::Left); } if let Some(secondary_hunk) = secondary_cursor.item() { @@ -635,7 +633,7 @@ impl BufferDiffInner { }); iter::from_fn(move || { - cursor.prev(buffer); + cursor.prev(); let hunk = cursor.item()?; let range = hunk.buffer_range.to_point(buffer); @@ -653,8 +651,8 @@ impl BufferDiffInner { fn compare(&self, old: &Self, new_snapshot: &text::BufferSnapshot) -> Option> { let mut new_cursor = self.hunks.cursor::<()>(new_snapshot); let mut old_cursor = old.hunks.cursor::<()>(new_snapshot); - old_cursor.next(new_snapshot); - new_cursor.next(new_snapshot); + old_cursor.next(); + new_cursor.next(); let mut start = None; let mut end = None; @@ -669,7 +667,7 @@ impl BufferDiffInner { Ordering::Less => { start.get_or_insert(new_hunk.buffer_range.start); end.replace(new_hunk.buffer_range.end); - new_cursor.next(new_snapshot); + new_cursor.next(); } Ordering::Equal => { if new_hunk != old_hunk { @@ -686,25 +684,25 @@ impl BufferDiffInner { } } - new_cursor.next(new_snapshot); - old_cursor.next(new_snapshot); + new_cursor.next(); + old_cursor.next(); } Ordering::Greater => { start.get_or_insert(old_hunk.buffer_range.start); end.replace(old_hunk.buffer_range.end); - old_cursor.next(new_snapshot); + old_cursor.next(); } } } (Some(new_hunk), None) => { start.get_or_insert(new_hunk.buffer_range.start); end.replace(new_hunk.buffer_range.end); - new_cursor.next(new_snapshot); + new_cursor.next(); } (None, Some(old_hunk)) => { start.get_or_insert(old_hunk.buffer_range.start); end.replace(old_hunk.buffer_range.end); - old_cursor.next(new_snapshot); + old_cursor.next(); } (None, None) => break, } diff --git a/crates/channel/src/channel_chat.rs b/crates/channel/src/channel_chat.rs index 8394972d43..866e3ccd90 100644 --- a/crates/channel/src/channel_chat.rs +++ b/crates/channel/src/channel_chat.rs @@ -333,7 +333,7 @@ impl ChannelChat { if first_id <= message_id { let mut cursor = chat.messages.cursor::<(ChannelMessageId, Count)>(&()); let message_id = ChannelMessageId::Saved(message_id); - cursor.seek(&message_id, Bias::Left, &()); + cursor.seek(&message_id, Bias::Left); return ControlFlow::Break( if cursor .item() @@ -499,7 +499,7 @@ impl ChannelChat { pub fn message(&self, ix: usize) -> &ChannelMessage { let mut cursor = self.messages.cursor::(&()); - cursor.seek(&Count(ix), Bias::Right, &()); + cursor.seek(&Count(ix), Bias::Right); cursor.item().unwrap() } @@ -516,13 +516,13 @@ impl ChannelChat { pub fn messages_in_range(&self, range: Range) -> impl Iterator { let mut cursor = self.messages.cursor::(&()); - cursor.seek(&Count(range.start), Bias::Right, &()); + cursor.seek(&Count(range.start), Bias::Right); cursor.take(range.len()) } pub fn pending_messages(&self) -> impl Iterator { let mut cursor = self.messages.cursor::(&()); - cursor.seek(&ChannelMessageId::Pending(0), Bias::Left, &()); + cursor.seek(&ChannelMessageId::Pending(0), Bias::Left); cursor } @@ -588,9 +588,9 @@ impl ChannelChat { .collect::>(); let mut old_cursor = self.messages.cursor::<(ChannelMessageId, Count)>(&()); - let mut new_messages = old_cursor.slice(&first_message.id, Bias::Left, &()); + let mut new_messages = old_cursor.slice(&first_message.id, Bias::Left); let start_ix = old_cursor.start().1.0; - let removed_messages = old_cursor.slice(&last_message.id, Bias::Right, &()); + let removed_messages = old_cursor.slice(&last_message.id, Bias::Right); let removed_count = removed_messages.summary().count; let new_count = messages.summary().count; let end_ix = start_ix + removed_count; @@ -599,10 +599,10 @@ impl ChannelChat { let mut ranges = Vec::>::new(); if new_messages.last().unwrap().is_pending() { - new_messages.append(old_cursor.suffix(&()), &()); + new_messages.append(old_cursor.suffix(), &()); } else { new_messages.append( - old_cursor.slice(&ChannelMessageId::Pending(0), Bias::Left, &()), + old_cursor.slice(&ChannelMessageId::Pending(0), Bias::Left), &(), ); @@ -617,7 +617,7 @@ impl ChannelChat { } else { new_messages.push(message.clone(), &()); } - old_cursor.next(&()); + old_cursor.next(); } } @@ -641,12 +641,12 @@ impl ChannelChat { fn message_removed(&mut self, id: u64, cx: &mut Context) { let mut cursor = self.messages.cursor::(&()); - let mut messages = cursor.slice(&ChannelMessageId::Saved(id), Bias::Left, &()); + let mut messages = cursor.slice(&ChannelMessageId::Saved(id), Bias::Left); if let Some(item) = cursor.item() { if item.id == ChannelMessageId::Saved(id) { let deleted_message_ix = messages.summary().count; - cursor.next(&()); - messages.append(cursor.suffix(&()), &()); + cursor.next(); + messages.append(cursor.suffix(), &()); drop(cursor); self.messages = messages; @@ -680,7 +680,7 @@ impl ChannelChat { cx: &mut Context, ) { let mut cursor = self.messages.cursor::(&()); - let mut messages = cursor.slice(&id, Bias::Left, &()); + let mut messages = cursor.slice(&id, Bias::Left); let ix = messages.summary().count; if let Some(mut message_to_update) = cursor.item().cloned() { @@ -688,10 +688,10 @@ impl ChannelChat { message_to_update.mentions = mentions; message_to_update.edited_at = edited_at; messages.push(message_to_update, &()); - cursor.next(&()); + cursor.next(); } - messages.append(cursor.suffix(&()), &()); + messages.append(cursor.suffix(), &()); drop(cursor); self.messages = messages; diff --git a/crates/editor/src/display_map/block_map.rs b/crates/editor/src/display_map/block_map.rs index c761e0d69c..85495a2611 100644 --- a/crates/editor/src/display_map/block_map.rs +++ b/crates/editor/src/display_map/block_map.rs @@ -524,10 +524,10 @@ impl BlockMap { // * Isomorphic transforms that end *at* the start of the edit // * Below blocks that end at the start of the edit // However, if we hit a replace block that ends at the start of the edit we want to reconstruct it. - new_transforms.append(cursor.slice(&old_start, Bias::Left, &()), &()); + new_transforms.append(cursor.slice(&old_start, Bias::Left), &()); if let Some(transform) = cursor.item() { if transform.summary.input_rows > 0 - && cursor.end(&()) == old_start + && cursor.end() == old_start && transform .block .as_ref() @@ -535,13 +535,13 @@ impl BlockMap { { // Preserve the transform (push and next) new_transforms.push(transform.clone(), &()); - cursor.next(&()); + cursor.next(); // Preserve below blocks at end of edit while let Some(transform) = cursor.item() { if transform.block.as_ref().map_or(false, |b| b.place_below()) { new_transforms.push(transform.clone(), &()); - cursor.next(&()); + cursor.next(); } else { break; } @@ -579,8 +579,8 @@ impl BlockMap { let mut new_end = WrapRow(edit.new.end); loop { // Seek to the transform starting at or after the end of the edit - cursor.seek(&old_end, Bias::Left, &()); - cursor.next(&()); + cursor.seek(&old_end, Bias::Left); + cursor.next(); // Extend edit to the end of the discarded transform so it is reconstructed in full let transform_rows_after_edit = cursor.start().0 - old_end.0; @@ -592,8 +592,8 @@ impl BlockMap { if next_edit.old.start <= cursor.start().0 { old_end = WrapRow(next_edit.old.end); new_end = WrapRow(next_edit.new.end); - cursor.seek(&old_end, Bias::Left, &()); - cursor.next(&()); + cursor.seek(&old_end, Bias::Left); + cursor.next(); edits.next(); } else { break; @@ -608,7 +608,7 @@ impl BlockMap { // Discard below blocks at the end of the edit. They'll be reconstructed. while let Some(transform) = cursor.item() { if transform.block.as_ref().map_or(false, |b| b.place_below()) { - cursor.next(&()); + cursor.next(); } else { break; } @@ -720,7 +720,7 @@ impl BlockMap { push_isomorphic(&mut new_transforms, rows_after_last_block, wrap_snapshot); } - new_transforms.append(cursor.suffix(&()), &()); + new_transforms.append(cursor.suffix(), &()); debug_assert_eq!( new_transforms.summary().input_rows, wrap_snapshot.max_point().row() + 1 @@ -971,7 +971,7 @@ impl BlockMapReader<'_> { ); let mut cursor = self.transforms.cursor::<(WrapRow, BlockRow)>(&()); - cursor.seek(&start_wrap_row, Bias::Left, &()); + cursor.seek(&start_wrap_row, Bias::Left); while let Some(transform) = cursor.item() { if cursor.start().0 > end_wrap_row { break; @@ -982,7 +982,7 @@ impl BlockMapReader<'_> { return Some(cursor.start().1); } } - cursor.next(&()); + cursor.next(); } None @@ -1293,7 +1293,7 @@ impl BlockSnapshot { let max_output_row = cmp::min(rows.end, self.transforms.summary().output_rows); let mut cursor = self.transforms.cursor::<(BlockRow, WrapRow)>(&()); - cursor.seek(&BlockRow(rows.start), Bias::Right, &()); + cursor.seek(&BlockRow(rows.start), Bias::Right); let transform_output_start = cursor.start().0.0; let transform_input_start = cursor.start().1.0; @@ -1325,7 +1325,7 @@ impl BlockSnapshot { pub(super) fn row_infos(&self, start_row: BlockRow) -> BlockRows<'_> { let mut cursor = self.transforms.cursor::<(BlockRow, WrapRow)>(&()); - cursor.seek(&start_row, Bias::Right, &()); + cursor.seek(&start_row, Bias::Right); let (output_start, input_start) = cursor.start(); let overshoot = if cursor .item() @@ -1346,9 +1346,9 @@ impl BlockSnapshot { pub fn blocks_in_range(&self, rows: Range) -> impl Iterator { let mut cursor = self.transforms.cursor::(&()); - cursor.seek(&BlockRow(rows.start), Bias::Left, &()); - while cursor.start().0 < rows.start && cursor.end(&()).0 <= rows.start { - cursor.next(&()); + cursor.seek(&BlockRow(rows.start), Bias::Left); + while cursor.start().0 < rows.start && cursor.end().0 <= rows.start { + cursor.next(); } std::iter::from_fn(move || { @@ -1364,10 +1364,10 @@ impl BlockSnapshot { break; } if let Some(block) = &transform.block { - cursor.next(&()); + cursor.next(); return Some((start_row, block)); } else { - cursor.next(&()); + cursor.next(); } } None @@ -1377,7 +1377,7 @@ impl BlockSnapshot { pub fn sticky_header_excerpt(&self, position: f32) -> Option> { let top_row = position as u32; let mut cursor = self.transforms.cursor::(&()); - cursor.seek(&BlockRow(top_row), Bias::Right, &()); + cursor.seek(&BlockRow(top_row), Bias::Right); while let Some(transform) = cursor.item() { match &transform.block { @@ -1386,7 +1386,7 @@ impl BlockSnapshot { } Some(block) if block.is_buffer_header() => return None, _ => { - cursor.prev(&()); + cursor.prev(); continue; } } @@ -1414,7 +1414,7 @@ impl BlockSnapshot { let wrap_row = WrapRow(wrap_point.row()); let mut cursor = self.transforms.cursor::(&()); - cursor.seek(&wrap_row, Bias::Left, &()); + cursor.seek(&wrap_row, Bias::Left); while let Some(transform) = cursor.item() { if let Some(block) = transform.block.as_ref() { @@ -1425,7 +1425,7 @@ impl BlockSnapshot { break; } - cursor.next(&()); + cursor.next(); } None @@ -1442,7 +1442,7 @@ impl BlockSnapshot { pub fn longest_row_in_range(&self, range: Range) -> BlockRow { let mut cursor = self.transforms.cursor::<(BlockRow, WrapRow)>(&()); - cursor.seek(&range.start, Bias::Right, &()); + cursor.seek(&range.start, Bias::Right); let mut longest_row = range.start; let mut longest_row_chars = 0; @@ -1453,7 +1453,7 @@ impl BlockSnapshot { let wrap_start_row = input_start.0 + overshoot; let wrap_end_row = cmp::min( input_start.0 + (range.end.0 - output_start.0), - cursor.end(&()).1.0, + cursor.end().1.0, ); let summary = self .wrap_snapshot @@ -1461,12 +1461,12 @@ impl BlockSnapshot { longest_row = BlockRow(range.start.0 + summary.longest_row); longest_row_chars = summary.longest_row_chars; } - cursor.next(&()); + cursor.next(); } let cursor_start_row = cursor.start().0; if range.end > cursor_start_row { - let summary = cursor.summary::<_, TransformSummary>(&range.end, Bias::Right, &()); + let summary = cursor.summary::<_, TransformSummary>(&range.end, Bias::Right); if summary.longest_row_chars > longest_row_chars { longest_row = BlockRow(cursor_start_row.0 + summary.longest_row); longest_row_chars = summary.longest_row_chars; @@ -1493,7 +1493,7 @@ impl BlockSnapshot { pub(super) fn line_len(&self, row: BlockRow) -> u32 { let mut cursor = self.transforms.cursor::<(BlockRow, WrapRow)>(&()); - cursor.seek(&BlockRow(row.0), Bias::Right, &()); + cursor.seek(&BlockRow(row.0), Bias::Right); if let Some(transform) = cursor.item() { let (output_start, input_start) = cursor.start(); let overshoot = row.0 - output_start.0; @@ -1511,13 +1511,13 @@ impl BlockSnapshot { pub(super) fn is_block_line(&self, row: BlockRow) -> bool { let mut cursor = self.transforms.cursor::<(BlockRow, WrapRow)>(&()); - cursor.seek(&row, Bias::Right, &()); + cursor.seek(&row, Bias::Right); cursor.item().map_or(false, |t| t.block.is_some()) } pub(super) fn is_folded_buffer_header(&self, row: BlockRow) -> bool { let mut cursor = self.transforms.cursor::<(BlockRow, WrapRow)>(&()); - cursor.seek(&row, Bias::Right, &()); + cursor.seek(&row, Bias::Right); let Some(transform) = cursor.item() else { return false; }; @@ -1529,7 +1529,7 @@ impl BlockSnapshot { .wrap_snapshot .make_wrap_point(Point::new(row.0, 0), Bias::Left); let mut cursor = self.transforms.cursor::<(WrapRow, BlockRow)>(&()); - cursor.seek(&WrapRow(wrap_point.row()), Bias::Right, &()); + cursor.seek(&WrapRow(wrap_point.row()), Bias::Right); cursor.item().map_or(false, |transform| { transform .block @@ -1540,17 +1540,17 @@ impl BlockSnapshot { pub fn clip_point(&self, point: BlockPoint, bias: Bias) -> BlockPoint { let mut cursor = self.transforms.cursor::<(BlockRow, WrapRow)>(&()); - cursor.seek(&BlockRow(point.row), Bias::Right, &()); + cursor.seek(&BlockRow(point.row), Bias::Right); let max_input_row = WrapRow(self.transforms.summary().input_rows); let mut search_left = - (bias == Bias::Left && cursor.start().1.0 > 0) || cursor.end(&()).1 == max_input_row; + (bias == Bias::Left && cursor.start().1.0 > 0) || cursor.end().1 == max_input_row; let mut reversed = false; loop { if let Some(transform) = cursor.item() { let (output_start_row, input_start_row) = cursor.start(); - let (output_end_row, input_end_row) = cursor.end(&()); + let (output_end_row, input_end_row) = cursor.end(); let output_start = Point::new(output_start_row.0, 0); let input_start = Point::new(input_start_row.0, 0); let input_end = Point::new(input_end_row.0, 0); @@ -1584,23 +1584,23 @@ impl BlockSnapshot { } if search_left { - cursor.prev(&()); + cursor.prev(); } else { - cursor.next(&()); + cursor.next(); } } else if reversed { return self.max_point(); } else { reversed = true; search_left = !search_left; - cursor.seek(&BlockRow(point.row), Bias::Right, &()); + cursor.seek(&BlockRow(point.row), Bias::Right); } } } pub fn to_block_point(&self, wrap_point: WrapPoint) -> BlockPoint { let mut cursor = self.transforms.cursor::<(WrapRow, BlockRow)>(&()); - cursor.seek(&WrapRow(wrap_point.row()), Bias::Right, &()); + cursor.seek(&WrapRow(wrap_point.row()), Bias::Right); if let Some(transform) = cursor.item() { if transform.block.is_some() { BlockPoint::new(cursor.start().1.0, 0) @@ -1618,7 +1618,7 @@ impl BlockSnapshot { pub fn to_wrap_point(&self, block_point: BlockPoint, bias: Bias) -> WrapPoint { let mut cursor = self.transforms.cursor::<(BlockRow, WrapRow)>(&()); - cursor.seek(&BlockRow(block_point.row), Bias::Right, &()); + cursor.seek(&BlockRow(block_point.row), Bias::Right); if let Some(transform) = cursor.item() { match transform.block.as_ref() { Some(block) => { @@ -1630,7 +1630,7 @@ impl BlockSnapshot { } else if bias == Bias::Left { WrapPoint::new(cursor.start().1.0, 0) } else { - let wrap_row = cursor.end(&()).1.0 - 1; + let wrap_row = cursor.end().1.0 - 1; WrapPoint::new(wrap_row, self.wrap_snapshot.line_len(wrap_row)) } } @@ -1650,14 +1650,14 @@ impl BlockChunks<'_> { /// Go to the next transform fn advance(&mut self) { self.input_chunk = Chunk::default(); - self.transforms.next(&()); + self.transforms.next(); while let Some(transform) = self.transforms.item() { if transform .block .as_ref() .map_or(false, |block| block.height() == 0) { - self.transforms.next(&()); + self.transforms.next(); } else { break; } @@ -1672,7 +1672,7 @@ impl BlockChunks<'_> { let start_output_row = self.transforms.start().0.0; if start_output_row < self.max_output_row { let end_input_row = cmp::min( - self.transforms.end(&()).1.0, + self.transforms.end().1.0, start_input_row + (self.max_output_row - start_output_row), ); self.input_chunks.seek(start_input_row..end_input_row); @@ -1696,7 +1696,7 @@ impl<'a> Iterator for BlockChunks<'a> { let transform = self.transforms.item()?; if transform.block.is_some() { let block_start = self.transforms.start().0.0; - let mut block_end = self.transforms.end(&()).0.0; + let mut block_end = self.transforms.end().0.0; self.advance(); if self.transforms.item().is_none() { block_end -= 1; @@ -1731,7 +1731,7 @@ impl<'a> Iterator for BlockChunks<'a> { } } - let transform_end = self.transforms.end(&()).0.0; + let transform_end = self.transforms.end().0.0; let (prefix_rows, prefix_bytes) = offset_for_row(self.input_chunk.text, transform_end - self.output_row); self.output_row += prefix_rows; @@ -1770,15 +1770,15 @@ impl Iterator for BlockRows<'_> { self.started = true; } - if self.output_row.0 >= self.transforms.end(&()).0.0 { - self.transforms.next(&()); + if self.output_row.0 >= self.transforms.end().0.0 { + self.transforms.next(); while let Some(transform) = self.transforms.item() { if transform .block .as_ref() .map_or(false, |block| block.height() == 0) { - self.transforms.next(&()); + self.transforms.next(); } else { break; } diff --git a/crates/editor/src/display_map/crease_map.rs b/crates/editor/src/display_map/crease_map.rs index e6fe4270ec..bdac982fa7 100644 --- a/crates/editor/src/display_map/crease_map.rs +++ b/crates/editor/src/display_map/crease_map.rs @@ -52,15 +52,15 @@ impl CreaseSnapshot { ) -> Option<&'a Crease> { let start = snapshot.anchor_before(Point::new(row.0, 0)); let mut cursor = self.creases.cursor::(snapshot); - cursor.seek(&start, Bias::Left, snapshot); + cursor.seek(&start, Bias::Left); while let Some(item) = cursor.item() { match Ord::cmp(&item.crease.range().start.to_point(snapshot).row, &row.0) { - Ordering::Less => cursor.next(snapshot), + Ordering::Less => cursor.next(), Ordering::Equal => { if item.crease.range().start.is_valid(snapshot) { return Some(&item.crease); } else { - cursor.next(snapshot); + cursor.next(); } } Ordering::Greater => break, @@ -76,11 +76,11 @@ impl CreaseSnapshot { ) -> impl 'a + Iterator> { let start = snapshot.anchor_before(Point::new(range.start.0, 0)); let mut cursor = self.creases.cursor::(snapshot); - cursor.seek(&start, Bias::Left, snapshot); + cursor.seek(&start, Bias::Left); std::iter::from_fn(move || { while let Some(item) = cursor.item() { - cursor.next(snapshot); + cursor.next(); let crease_range = item.crease.range(); let crease_start = crease_range.start.to_point(snapshot); let crease_end = crease_range.end.to_point(snapshot); @@ -102,13 +102,13 @@ impl CreaseSnapshot { let mut cursor = self.creases.cursor::(snapshot); let mut results = Vec::new(); - cursor.next(snapshot); + cursor.next(); while let Some(item) = cursor.item() { let crease_range = item.crease.range(); let start_point = crease_range.start.to_point(snapshot); let end_point = crease_range.end.to_point(snapshot); results.push((item.id, start_point..end_point)); - cursor.next(snapshot); + cursor.next(); } results @@ -298,7 +298,7 @@ impl CreaseMap { let mut cursor = self.snapshot.creases.cursor::(snapshot); for crease in creases { let crease_range = crease.range().clone(); - new_creases.append(cursor.slice(&crease_range, Bias::Left, snapshot), snapshot); + new_creases.append(cursor.slice(&crease_range, Bias::Left), snapshot); let id = self.next_id; self.next_id.0 += 1; @@ -306,7 +306,7 @@ impl CreaseMap { new_creases.push(CreaseItem { crease, id }, snapshot); new_ids.push(id); } - new_creases.append(cursor.suffix(snapshot), snapshot); + new_creases.append(cursor.suffix(), snapshot); new_creases }; new_ids @@ -332,9 +332,9 @@ impl CreaseMap { let mut cursor = self.snapshot.creases.cursor::(snapshot); for (id, range) in &removals { - new_creases.append(cursor.slice(range, Bias::Left, snapshot), snapshot); + new_creases.append(cursor.slice(range, Bias::Left), snapshot); while let Some(item) = cursor.item() { - cursor.next(snapshot); + cursor.next(); if item.id == *id { break; } else { @@ -343,7 +343,7 @@ impl CreaseMap { } } - new_creases.append(cursor.suffix(snapshot), snapshot); + new_creases.append(cursor.suffix(), snapshot); new_creases }; diff --git a/crates/editor/src/display_map/fold_map.rs b/crates/editor/src/display_map/fold_map.rs index f37e7063e7..829d34ff58 100644 --- a/crates/editor/src/display_map/fold_map.rs +++ b/crates/editor/src/display_map/fold_map.rs @@ -99,7 +99,7 @@ impl FoldPoint { pub fn to_inlay_point(self, snapshot: &FoldSnapshot) -> InlayPoint { let mut cursor = snapshot.transforms.cursor::<(FoldPoint, InlayPoint)>(&()); - cursor.seek(&self, Bias::Right, &()); + cursor.seek(&self, Bias::Right); let overshoot = self.0 - cursor.start().0.0; InlayPoint(cursor.start().1.0 + overshoot) } @@ -108,7 +108,7 @@ impl FoldPoint { let mut cursor = snapshot .transforms .cursor::<(FoldPoint, TransformSummary)>(&()); - cursor.seek(&self, Bias::Right, &()); + cursor.seek(&self, Bias::Right); let overshoot = self.0 - cursor.start().1.output.lines; let mut offset = cursor.start().1.output.len; if !overshoot.is_zero() { @@ -187,10 +187,10 @@ impl FoldMapWriter<'_> { width: None, }, ); - new_tree.append(cursor.slice(&fold.range, Bias::Right, buffer), buffer); + new_tree.append(cursor.slice(&fold.range, Bias::Right), buffer); new_tree.push(fold, buffer); } - new_tree.append(cursor.suffix(buffer), buffer); + new_tree.append(cursor.suffix(), buffer); new_tree }; @@ -252,7 +252,7 @@ impl FoldMapWriter<'_> { fold_ixs_to_delete.push(*folds_cursor.start()); self.0.snapshot.fold_metadata_by_id.remove(&fold.id); } - folds_cursor.next(buffer); + folds_cursor.next(); } } @@ -263,10 +263,10 @@ impl FoldMapWriter<'_> { let mut cursor = self.0.snapshot.folds.cursor::(buffer); let mut folds = SumTree::new(buffer); for fold_ix in fold_ixs_to_delete { - folds.append(cursor.slice(&fold_ix, Bias::Right, buffer), buffer); - cursor.next(buffer); + folds.append(cursor.slice(&fold_ix, Bias::Right), buffer); + cursor.next(); } - folds.append(cursor.suffix(buffer), buffer); + folds.append(cursor.suffix(), buffer); folds }; @@ -412,7 +412,7 @@ impl FoldMap { let mut new_transforms = SumTree::::default(); let mut cursor = self.snapshot.transforms.cursor::(&()); - cursor.seek(&InlayOffset(0), Bias::Right, &()); + cursor.seek(&InlayOffset(0), Bias::Right); while let Some(mut edit) = inlay_edits_iter.next() { if let Some(item) = cursor.item() { @@ -421,19 +421,19 @@ impl FoldMap { |transform| { if !transform.is_fold() { transform.summary.add_summary(&item.summary, &()); - cursor.next(&()); + cursor.next(); } }, &(), ); } } - new_transforms.append(cursor.slice(&edit.old.start, Bias::Left, &()), &()); + new_transforms.append(cursor.slice(&edit.old.start, Bias::Left), &()); edit.new.start -= edit.old.start - *cursor.start(); edit.old.start = *cursor.start(); - cursor.seek(&edit.old.end, Bias::Right, &()); - cursor.next(&()); + cursor.seek(&edit.old.end, Bias::Right); + cursor.next(); let mut delta = edit.new_len().0 as isize - edit.old_len().0 as isize; loop { @@ -449,8 +449,8 @@ impl FoldMap { if next_edit.old.end >= edit.old.end { edit.old.end = next_edit.old.end; - cursor.seek(&edit.old.end, Bias::Right, &()); - cursor.next(&()); + cursor.seek(&edit.old.end, Bias::Right); + cursor.next(); } } else { break; @@ -467,11 +467,7 @@ impl FoldMap { .snapshot .folds .cursor::(&inlay_snapshot.buffer); - folds_cursor.seek( - &FoldRange(anchor..Anchor::max()), - Bias::Left, - &inlay_snapshot.buffer, - ); + folds_cursor.seek(&FoldRange(anchor..Anchor::max()), Bias::Left); let mut folds = iter::from_fn({ let inlay_snapshot = &inlay_snapshot; @@ -485,7 +481,7 @@ impl FoldMap { ..inlay_snapshot.to_inlay_offset(buffer_end), ) }); - folds_cursor.next(&inlay_snapshot.buffer); + folds_cursor.next(); item } }) @@ -558,7 +554,7 @@ impl FoldMap { } } - new_transforms.append(cursor.suffix(&()), &()); + new_transforms.append(cursor.suffix(), &()); if new_transforms.is_empty() { let text_summary = inlay_snapshot.text_summary(); push_isomorphic(&mut new_transforms, text_summary); @@ -575,31 +571,31 @@ impl FoldMap { let mut new_transforms = new_transforms.cursor::<(InlayOffset, FoldOffset)>(&()); for mut edit in inlay_edits { - old_transforms.seek(&edit.old.start, Bias::Left, &()); + old_transforms.seek(&edit.old.start, Bias::Left); if old_transforms.item().map_or(false, |t| t.is_fold()) { edit.old.start = old_transforms.start().0; } let old_start = old_transforms.start().1.0 + (edit.old.start - old_transforms.start().0).0; - old_transforms.seek_forward(&edit.old.end, Bias::Right, &()); + old_transforms.seek_forward(&edit.old.end, Bias::Right); if old_transforms.item().map_or(false, |t| t.is_fold()) { - old_transforms.next(&()); + old_transforms.next(); edit.old.end = old_transforms.start().0; } let old_end = old_transforms.start().1.0 + (edit.old.end - old_transforms.start().0).0; - new_transforms.seek(&edit.new.start, Bias::Left, &()); + new_transforms.seek(&edit.new.start, Bias::Left); if new_transforms.item().map_or(false, |t| t.is_fold()) { edit.new.start = new_transforms.start().0; } let new_start = new_transforms.start().1.0 + (edit.new.start - new_transforms.start().0).0; - new_transforms.seek_forward(&edit.new.end, Bias::Right, &()); + new_transforms.seek_forward(&edit.new.end, Bias::Right); if new_transforms.item().map_or(false, |t| t.is_fold()) { - new_transforms.next(&()); + new_transforms.next(); edit.new.end = new_transforms.start().0; } let new_end = @@ -656,10 +652,10 @@ impl FoldSnapshot { let mut summary = TextSummary::default(); let mut cursor = self.transforms.cursor::<(FoldPoint, InlayPoint)>(&()); - cursor.seek(&range.start, Bias::Right, &()); + cursor.seek(&range.start, Bias::Right); if let Some(transform) = cursor.item() { let start_in_transform = range.start.0 - cursor.start().0.0; - let end_in_transform = cmp::min(range.end, cursor.end(&()).0).0 - cursor.start().0.0; + let end_in_transform = cmp::min(range.end, cursor.end().0).0 - cursor.start().0.0; if let Some(placeholder) = transform.placeholder.as_ref() { summary = TextSummary::from( &placeholder.text @@ -678,10 +674,10 @@ impl FoldSnapshot { } } - if range.end > cursor.end(&()).0 { - cursor.next(&()); + if range.end > cursor.end().0 { + cursor.next(); summary += &cursor - .summary::<_, TransformSummary>(&range.end, Bias::Right, &()) + .summary::<_, TransformSummary>(&range.end, Bias::Right) .output; if let Some(transform) = cursor.item() { let end_in_transform = range.end.0 - cursor.start().0.0; @@ -705,19 +701,16 @@ impl FoldSnapshot { pub fn to_fold_point(&self, point: InlayPoint, bias: Bias) -> FoldPoint { let mut cursor = self.transforms.cursor::<(InlayPoint, FoldPoint)>(&()); - cursor.seek(&point, Bias::Right, &()); + cursor.seek(&point, Bias::Right); if cursor.item().map_or(false, |t| t.is_fold()) { if bias == Bias::Left || point == cursor.start().0 { cursor.start().1 } else { - cursor.end(&()).1 + cursor.end().1 } } else { let overshoot = point.0 - cursor.start().0.0; - FoldPoint(cmp::min( - cursor.start().1.0 + overshoot, - cursor.end(&()).1.0, - )) + FoldPoint(cmp::min(cursor.start().1.0 + overshoot, cursor.end().1.0)) } } @@ -742,7 +735,7 @@ impl FoldSnapshot { let fold_point = FoldPoint::new(start_row, 0); let mut cursor = self.transforms.cursor::<(FoldPoint, InlayPoint)>(&()); - cursor.seek(&fold_point, Bias::Left, &()); + cursor.seek(&fold_point, Bias::Left); let overshoot = fold_point.0 - cursor.start().0.0; let inlay_point = InlayPoint(cursor.start().1.0 + overshoot); @@ -773,7 +766,7 @@ impl FoldSnapshot { let mut folds = intersecting_folds(&self.inlay_snapshot, &self.folds, range, false); iter::from_fn(move || { let item = folds.item(); - folds.next(&self.inlay_snapshot.buffer); + folds.next(); item }) } @@ -785,7 +778,7 @@ impl FoldSnapshot { let buffer_offset = offset.to_offset(&self.inlay_snapshot.buffer); let inlay_offset = self.inlay_snapshot.to_inlay_offset(buffer_offset); let mut cursor = self.transforms.cursor::(&()); - cursor.seek(&inlay_offset, Bias::Right, &()); + cursor.seek(&inlay_offset, Bias::Right); cursor.item().map_or(false, |t| t.placeholder.is_some()) } @@ -794,7 +787,7 @@ impl FoldSnapshot { .inlay_snapshot .to_inlay_point(Point::new(buffer_row.0, 0)); let mut cursor = self.transforms.cursor::(&()); - cursor.seek(&inlay_point, Bias::Right, &()); + cursor.seek(&inlay_point, Bias::Right); loop { match cursor.item() { Some(transform) => { @@ -808,11 +801,11 @@ impl FoldSnapshot { None => return false, } - if cursor.end(&()).row() == inlay_point.row() { - cursor.next(&()); + if cursor.end().row() == inlay_point.row() { + cursor.next(); } else { inlay_point.0 += Point::new(1, 0); - cursor.seek(&inlay_point, Bias::Right, &()); + cursor.seek(&inlay_point, Bias::Right); } } } @@ -824,14 +817,14 @@ impl FoldSnapshot { highlights: Highlights<'a>, ) -> FoldChunks<'a> { let mut transform_cursor = self.transforms.cursor::<(FoldOffset, InlayOffset)>(&()); - transform_cursor.seek(&range.start, Bias::Right, &()); + transform_cursor.seek(&range.start, Bias::Right); let inlay_start = { let overshoot = range.start.0 - transform_cursor.start().0.0; transform_cursor.start().1 + InlayOffset(overshoot) }; - let transform_end = transform_cursor.end(&()); + let transform_end = transform_cursor.end(); let inlay_end = if transform_cursor .item() @@ -879,14 +872,14 @@ impl FoldSnapshot { pub fn clip_point(&self, point: FoldPoint, bias: Bias) -> FoldPoint { let mut cursor = self.transforms.cursor::<(FoldPoint, InlayPoint)>(&()); - cursor.seek(&point, Bias::Right, &()); + cursor.seek(&point, Bias::Right); if let Some(transform) = cursor.item() { let transform_start = cursor.start().0.0; if transform.placeholder.is_some() { if point.0 == transform_start || matches!(bias, Bias::Left) { FoldPoint(transform_start) } else { - FoldPoint(cursor.end(&()).0.0) + FoldPoint(cursor.end().0.0) } } else { let overshoot = InlayPoint(point.0 - transform_start); @@ -945,7 +938,7 @@ fn intersecting_folds<'a>( start_cmp == Ordering::Less && end_cmp == Ordering::Greater } }); - cursor.next(buffer); + cursor.next(); cursor } @@ -1211,7 +1204,7 @@ pub struct FoldRows<'a> { impl FoldRows<'_> { pub(crate) fn seek(&mut self, row: u32) { let fold_point = FoldPoint::new(row, 0); - self.cursor.seek(&fold_point, Bias::Left, &()); + self.cursor.seek(&fold_point, Bias::Left); let overshoot = fold_point.0 - self.cursor.start().0.0; let inlay_point = InlayPoint(self.cursor.start().1.0 + overshoot); self.input_rows.seek(inlay_point.row()); @@ -1224,8 +1217,8 @@ impl Iterator for FoldRows<'_> { fn next(&mut self) -> Option { let mut traversed_fold = false; - while self.fold_point > self.cursor.end(&()).0 { - self.cursor.next(&()); + while self.fold_point > self.cursor.end().0 { + self.cursor.next(); traversed_fold = true; if self.cursor.item().is_none() { break; @@ -1330,14 +1323,14 @@ pub struct FoldChunks<'a> { impl FoldChunks<'_> { pub(crate) fn seek(&mut self, range: Range) { - self.transform_cursor.seek(&range.start, Bias::Right, &()); + self.transform_cursor.seek(&range.start, Bias::Right); let inlay_start = { let overshoot = range.start.0 - self.transform_cursor.start().0.0; self.transform_cursor.start().1 + InlayOffset(overshoot) }; - let transform_end = self.transform_cursor.end(&()); + let transform_end = self.transform_cursor.end(); let inlay_end = if self .transform_cursor @@ -1376,10 +1369,10 @@ impl<'a> Iterator for FoldChunks<'a> { self.inlay_chunk.take(); self.inlay_offset += InlayOffset(transform.summary.input.len); - while self.inlay_offset >= self.transform_cursor.end(&()).1 + while self.inlay_offset >= self.transform_cursor.end().1 && self.transform_cursor.item().is_some() { - self.transform_cursor.next(&()); + self.transform_cursor.next(); } self.output_offset.0 += placeholder.text.len(); @@ -1396,7 +1389,7 @@ impl<'a> Iterator for FoldChunks<'a> { && self.inlay_chunks.offset() != self.inlay_offset { let transform_start = self.transform_cursor.start(); - let transform_end = self.transform_cursor.end(&()); + let transform_end = self.transform_cursor.end(); let inlay_end = if self.max_output_offset < transform_end.0 { let overshoot = self.max_output_offset.0 - transform_start.0.0; transform_start.1 + InlayOffset(overshoot) @@ -1417,14 +1410,14 @@ impl<'a> Iterator for FoldChunks<'a> { if let Some((buffer_chunk_start, mut inlay_chunk)) = self.inlay_chunk.clone() { let chunk = &mut inlay_chunk.chunk; let buffer_chunk_end = buffer_chunk_start + InlayOffset(chunk.text.len()); - let transform_end = self.transform_cursor.end(&()).1; + let transform_end = self.transform_cursor.end().1; let chunk_end = buffer_chunk_end.min(transform_end); chunk.text = &chunk.text [(self.inlay_offset - buffer_chunk_start).0..(chunk_end - buffer_chunk_start).0]; if chunk_end == transform_end { - self.transform_cursor.next(&()); + self.transform_cursor.next(); } else if chunk_end == buffer_chunk_end { self.inlay_chunk.take(); } @@ -1456,7 +1449,7 @@ impl FoldOffset { let mut cursor = snapshot .transforms .cursor::<(FoldOffset, TransformSummary)>(&()); - cursor.seek(&self, Bias::Right, &()); + cursor.seek(&self, Bias::Right); let overshoot = if cursor.item().map_or(true, |t| t.is_fold()) { Point::new(0, (self.0 - cursor.start().0.0) as u32) } else { @@ -1470,7 +1463,7 @@ impl FoldOffset { #[cfg(test)] pub fn to_inlay_offset(self, snapshot: &FoldSnapshot) -> InlayOffset { let mut cursor = snapshot.transforms.cursor::<(FoldOffset, InlayOffset)>(&()); - cursor.seek(&self, Bias::Right, &()); + cursor.seek(&self, Bias::Right); let overshoot = self.0 - cursor.start().0.0; InlayOffset(cursor.start().1.0 + overshoot) } diff --git a/crates/editor/src/display_map/inlay_map.rs b/crates/editor/src/display_map/inlay_map.rs index f7a696860a..a36d18ff6d 100644 --- a/crates/editor/src/display_map/inlay_map.rs +++ b/crates/editor/src/display_map/inlay_map.rs @@ -263,7 +263,7 @@ pub struct InlayChunk<'a> { impl InlayChunks<'_> { pub fn seek(&mut self, new_range: Range) { - self.transforms.seek(&new_range.start, Bias::Right, &()); + self.transforms.seek(&new_range.start, Bias::Right); let buffer_range = self.snapshot.to_buffer_offset(new_range.start) ..self.snapshot.to_buffer_offset(new_range.end); @@ -296,12 +296,12 @@ impl<'a> Iterator for InlayChunks<'a> { *chunk = self.buffer_chunks.next().unwrap(); } - let desired_bytes = self.transforms.end(&()).0.0 - self.output_offset.0; + let desired_bytes = self.transforms.end().0.0 - self.output_offset.0; // If we're already at the transform boundary, skip to the next transform if desired_bytes == 0 { self.inlay_chunks = None; - self.transforms.next(&()); + self.transforms.next(); return self.next(); } @@ -397,7 +397,7 @@ impl<'a> Iterator for InlayChunks<'a> { let inlay_chunks = self.inlay_chunks.get_or_insert_with(|| { let start = offset_in_inlay; - let end = cmp::min(self.max_output_offset, self.transforms.end(&()).0) + let end = cmp::min(self.max_output_offset, self.transforms.end().0) - self.transforms.start().0; inlay.text.chunks_in_range(start.0..end.0) }); @@ -441,9 +441,9 @@ impl<'a> Iterator for InlayChunks<'a> { } }; - if self.output_offset >= self.transforms.end(&()).0 { + if self.output_offset >= self.transforms.end().0 { self.inlay_chunks = None; - self.transforms.next(&()); + self.transforms.next(); } Some(chunk) @@ -453,7 +453,7 @@ impl<'a> Iterator for InlayChunks<'a> { impl InlayBufferRows<'_> { pub fn seek(&mut self, row: u32) { let inlay_point = InlayPoint::new(row, 0); - self.transforms.seek(&inlay_point, Bias::Left, &()); + self.transforms.seek(&inlay_point, Bias::Left); let mut buffer_point = self.transforms.start().1; let buffer_row = MultiBufferRow(if row == 0 { @@ -487,7 +487,7 @@ impl Iterator for InlayBufferRows<'_> { self.inlay_row += 1; self.transforms - .seek_forward(&InlayPoint::new(self.inlay_row, 0), Bias::Left, &()); + .seek_forward(&InlayPoint::new(self.inlay_row, 0), Bias::Left); Some(buffer_row) } @@ -556,18 +556,18 @@ impl InlayMap { let mut cursor = snapshot.transforms.cursor::<(usize, InlayOffset)>(&()); let mut buffer_edits_iter = buffer_edits.iter().peekable(); while let Some(buffer_edit) = buffer_edits_iter.next() { - new_transforms.append(cursor.slice(&buffer_edit.old.start, Bias::Left, &()), &()); + new_transforms.append(cursor.slice(&buffer_edit.old.start, Bias::Left), &()); if let Some(Transform::Isomorphic(transform)) = cursor.item() { - if cursor.end(&()).0 == buffer_edit.old.start { + if cursor.end().0 == buffer_edit.old.start { push_isomorphic(&mut new_transforms, *transform); - cursor.next(&()); + cursor.next(); } } // Remove all the inlays and transforms contained by the edit. let old_start = cursor.start().1 + InlayOffset(buffer_edit.old.start - cursor.start().0); - cursor.seek(&buffer_edit.old.end, Bias::Right, &()); + cursor.seek(&buffer_edit.old.end, Bias::Right); let old_end = cursor.start().1 + InlayOffset(buffer_edit.old.end - cursor.start().0); @@ -625,20 +625,20 @@ impl InlayMap { // we can push its remainder. if buffer_edits_iter .peek() - .map_or(true, |edit| edit.old.start >= cursor.end(&()).0) + .map_or(true, |edit| edit.old.start >= cursor.end().0) { let transform_start = new_transforms.summary().input.len; let transform_end = - buffer_edit.new.end + (cursor.end(&()).0 - buffer_edit.old.end); + buffer_edit.new.end + (cursor.end().0 - buffer_edit.old.end); push_isomorphic( &mut new_transforms, buffer_snapshot.text_summary_for_range(transform_start..transform_end), ); - cursor.next(&()); + cursor.next(); } } - new_transforms.append(cursor.suffix(&()), &()); + new_transforms.append(cursor.suffix(), &()); if new_transforms.is_empty() { new_transforms.push(Transform::Isomorphic(Default::default()), &()); } @@ -773,7 +773,7 @@ impl InlaySnapshot { let mut cursor = self .transforms .cursor::<(InlayOffset, (InlayPoint, usize))>(&()); - cursor.seek(&offset, Bias::Right, &()); + cursor.seek(&offset, Bias::Right); let overshoot = offset.0 - cursor.start().0.0; match cursor.item() { Some(Transform::Isomorphic(_)) => { @@ -803,7 +803,7 @@ impl InlaySnapshot { let mut cursor = self .transforms .cursor::<(InlayPoint, (InlayOffset, Point))>(&()); - cursor.seek(&point, Bias::Right, &()); + cursor.seek(&point, Bias::Right); let overshoot = point.0 - cursor.start().0.0; match cursor.item() { Some(Transform::Isomorphic(_)) => { @@ -822,7 +822,7 @@ impl InlaySnapshot { } pub fn to_buffer_point(&self, point: InlayPoint) -> Point { let mut cursor = self.transforms.cursor::<(InlayPoint, Point)>(&()); - cursor.seek(&point, Bias::Right, &()); + cursor.seek(&point, Bias::Right); match cursor.item() { Some(Transform::Isomorphic(_)) => { let overshoot = point.0 - cursor.start().0.0; @@ -834,7 +834,7 @@ impl InlaySnapshot { } pub fn to_buffer_offset(&self, offset: InlayOffset) -> usize { let mut cursor = self.transforms.cursor::<(InlayOffset, usize)>(&()); - cursor.seek(&offset, Bias::Right, &()); + cursor.seek(&offset, Bias::Right); match cursor.item() { Some(Transform::Isomorphic(_)) => { let overshoot = offset - cursor.start().0; @@ -847,19 +847,19 @@ impl InlaySnapshot { pub fn to_inlay_offset(&self, offset: usize) -> InlayOffset { let mut cursor = self.transforms.cursor::<(usize, InlayOffset)>(&()); - cursor.seek(&offset, Bias::Left, &()); + cursor.seek(&offset, Bias::Left); loop { match cursor.item() { Some(Transform::Isomorphic(_)) => { - if offset == cursor.end(&()).0 { + if offset == cursor.end().0 { while let Some(Transform::Inlay(inlay)) = cursor.next_item() { if inlay.position.bias() == Bias::Right { break; } else { - cursor.next(&()); + cursor.next(); } } - return cursor.end(&()).1; + return cursor.end().1; } else { let overshoot = offset - cursor.start().0; return InlayOffset(cursor.start().1.0 + overshoot); @@ -867,7 +867,7 @@ impl InlaySnapshot { } Some(Transform::Inlay(inlay)) => { if inlay.position.bias() == Bias::Left { - cursor.next(&()); + cursor.next(); } else { return cursor.start().1; } @@ -880,19 +880,19 @@ impl InlaySnapshot { } pub fn to_inlay_point(&self, point: Point) -> InlayPoint { let mut cursor = self.transforms.cursor::<(Point, InlayPoint)>(&()); - cursor.seek(&point, Bias::Left, &()); + cursor.seek(&point, Bias::Left); loop { match cursor.item() { Some(Transform::Isomorphic(_)) => { - if point == cursor.end(&()).0 { + if point == cursor.end().0 { while let Some(Transform::Inlay(inlay)) = cursor.next_item() { if inlay.position.bias() == Bias::Right { break; } else { - cursor.next(&()); + cursor.next(); } } - return cursor.end(&()).1; + return cursor.end().1; } else { let overshoot = point - cursor.start().0; return InlayPoint(cursor.start().1.0 + overshoot); @@ -900,7 +900,7 @@ impl InlaySnapshot { } Some(Transform::Inlay(inlay)) => { if inlay.position.bias() == Bias::Left { - cursor.next(&()); + cursor.next(); } else { return cursor.start().1; } @@ -914,7 +914,7 @@ impl InlaySnapshot { pub fn clip_point(&self, mut point: InlayPoint, mut bias: Bias) -> InlayPoint { let mut cursor = self.transforms.cursor::<(InlayPoint, Point)>(&()); - cursor.seek(&point, Bias::Left, &()); + cursor.seek(&point, Bias::Left); loop { match cursor.item() { Some(Transform::Isomorphic(transform)) => { @@ -923,7 +923,7 @@ impl InlaySnapshot { if inlay.position.bias() == Bias::Left { return point; } else if bias == Bias::Left { - cursor.prev(&()); + cursor.prev(); } else if transform.first_line_chars == 0 { point.0 += Point::new(1, 0); } else { @@ -932,12 +932,12 @@ impl InlaySnapshot { } else { return point; } - } else if cursor.end(&()).0 == point { + } else if cursor.end().0 == point { if let Some(Transform::Inlay(inlay)) = cursor.next_item() { if inlay.position.bias() == Bias::Right { return point; } else if bias == Bias::Right { - cursor.next(&()); + cursor.next(); } else if point.0.column == 0 { point.0.row -= 1; point.0.column = self.line_len(point.0.row); @@ -970,7 +970,7 @@ impl InlaySnapshot { } _ => return point, } - } else if point == cursor.end(&()).0 && inlay.position.bias() == Bias::Left { + } else if point == cursor.end().0 && inlay.position.bias() == Bias::Left { match cursor.next_item() { Some(Transform::Inlay(inlay)) => { if inlay.position.bias() == Bias::Right { @@ -983,9 +983,9 @@ impl InlaySnapshot { if bias == Bias::Left { point = cursor.start().0; - cursor.prev(&()); + cursor.prev(); } else { - cursor.next(&()); + cursor.next(); point = cursor.start().0; } } @@ -993,9 +993,9 @@ impl InlaySnapshot { bias = bias.invert(); if bias == Bias::Left { point = cursor.start().0; - cursor.prev(&()); + cursor.prev(); } else { - cursor.next(&()); + cursor.next(); point = cursor.start().0; } } @@ -1011,7 +1011,7 @@ impl InlaySnapshot { let mut summary = TextSummary::default(); let mut cursor = self.transforms.cursor::<(InlayOffset, usize)>(&()); - cursor.seek(&range.start, Bias::Right, &()); + cursor.seek(&range.start, Bias::Right); let overshoot = range.start.0 - cursor.start().0.0; match cursor.item() { @@ -1019,22 +1019,22 @@ impl InlaySnapshot { let buffer_start = cursor.start().1; let suffix_start = buffer_start + overshoot; let suffix_end = - buffer_start + (cmp::min(cursor.end(&()).0, range.end).0 - cursor.start().0.0); + buffer_start + (cmp::min(cursor.end().0, range.end).0 - cursor.start().0.0); summary = self.buffer.text_summary_for_range(suffix_start..suffix_end); - cursor.next(&()); + cursor.next(); } Some(Transform::Inlay(inlay)) => { let suffix_start = overshoot; - let suffix_end = cmp::min(cursor.end(&()).0, range.end).0 - cursor.start().0.0; + let suffix_end = cmp::min(cursor.end().0, range.end).0 - cursor.start().0.0; summary = inlay.text.cursor(suffix_start).summary(suffix_end); - cursor.next(&()); + cursor.next(); } None => {} } if range.end > cursor.start().0 { summary += cursor - .summary::<_, TransformSummary>(&range.end, Bias::Right, &()) + .summary::<_, TransformSummary>(&range.end, Bias::Right) .output; let overshoot = range.end.0 - cursor.start().0.0; @@ -1060,7 +1060,7 @@ impl InlaySnapshot { pub fn row_infos(&self, row: u32) -> InlayBufferRows<'_> { let mut cursor = self.transforms.cursor::<(InlayPoint, Point)>(&()); let inlay_point = InlayPoint::new(row, 0); - cursor.seek(&inlay_point, Bias::Left, &()); + cursor.seek(&inlay_point, Bias::Left); let max_buffer_row = self.buffer.max_row(); let mut buffer_point = cursor.start().1; @@ -1101,7 +1101,7 @@ impl InlaySnapshot { highlights: Highlights<'a>, ) -> InlayChunks<'a> { let mut cursor = self.transforms.cursor::<(InlayOffset, usize)>(&()); - cursor.seek(&range.start, Bias::Right, &()); + cursor.seek(&range.start, Bias::Right); let buffer_range = self.to_buffer_offset(range.start)..self.to_buffer_offset(range.end); let buffer_chunks = CustomHighlightsChunks::new( diff --git a/crates/editor/src/display_map/wrap_map.rs b/crates/editor/src/display_map/wrap_map.rs index a29bf53882..d55577826e 100644 --- a/crates/editor/src/display_map/wrap_map.rs +++ b/crates/editor/src/display_map/wrap_map.rs @@ -72,7 +72,7 @@ pub struct WrapRows<'a> { impl WrapRows<'_> { pub(crate) fn seek(&mut self, start_row: u32) { self.transforms - .seek(&WrapPoint::new(start_row, 0), Bias::Left, &()); + .seek(&WrapPoint::new(start_row, 0), Bias::Left); let mut input_row = self.transforms.start().1.row(); if self.transforms.item().map_or(false, |t| t.is_isomorphic()) { input_row += start_row - self.transforms.start().0.row(); @@ -340,7 +340,7 @@ impl WrapSnapshot { let mut tab_edits_iter = tab_edits.iter().peekable(); new_transforms = - old_cursor.slice(&tab_edits_iter.peek().unwrap().old.start, Bias::Right, &()); + old_cursor.slice(&tab_edits_iter.peek().unwrap().old.start, Bias::Right); while let Some(edit) = tab_edits_iter.next() { if edit.new.start > TabPoint::from(new_transforms.summary().input.lines) { @@ -356,31 +356,29 @@ impl WrapSnapshot { )); } - old_cursor.seek_forward(&edit.old.end, Bias::Right, &()); + old_cursor.seek_forward(&edit.old.end, Bias::Right); if let Some(next_edit) = tab_edits_iter.peek() { - if next_edit.old.start > old_cursor.end(&()) { - if old_cursor.end(&()) > edit.old.end { + if next_edit.old.start > old_cursor.end() { + if old_cursor.end() > edit.old.end { let summary = self .tab_snapshot - .text_summary_for_range(edit.old.end..old_cursor.end(&())); + .text_summary_for_range(edit.old.end..old_cursor.end()); new_transforms.push_or_extend(Transform::isomorphic(summary)); } - old_cursor.next(&()); - new_transforms.append( - old_cursor.slice(&next_edit.old.start, Bias::Right, &()), - &(), - ); + old_cursor.next(); + new_transforms + .append(old_cursor.slice(&next_edit.old.start, Bias::Right), &()); } } else { - if old_cursor.end(&()) > edit.old.end { + if old_cursor.end() > edit.old.end { let summary = self .tab_snapshot - .text_summary_for_range(edit.old.end..old_cursor.end(&())); + .text_summary_for_range(edit.old.end..old_cursor.end()); new_transforms.push_or_extend(Transform::isomorphic(summary)); } - old_cursor.next(&()); - new_transforms.append(old_cursor.suffix(&()), &()); + old_cursor.next(); + new_transforms.append(old_cursor.suffix(), &()); } } } @@ -441,7 +439,6 @@ impl WrapSnapshot { new_transforms = old_cursor.slice( &TabPoint::new(row_edits.peek().unwrap().old_rows.start, 0), Bias::Right, - &(), ); while let Some(edit) = row_edits.next() { @@ -516,34 +513,31 @@ impl WrapSnapshot { } new_transforms.extend(edit_transforms, &()); - old_cursor.seek_forward(&TabPoint::new(edit.old_rows.end, 0), Bias::Right, &()); + old_cursor.seek_forward(&TabPoint::new(edit.old_rows.end, 0), Bias::Right); if let Some(next_edit) = row_edits.peek() { - if next_edit.old_rows.start > old_cursor.end(&()).row() { - if old_cursor.end(&()) > TabPoint::new(edit.old_rows.end, 0) { + if next_edit.old_rows.start > old_cursor.end().row() { + if old_cursor.end() > TabPoint::new(edit.old_rows.end, 0) { let summary = self.tab_snapshot.text_summary_for_range( - TabPoint::new(edit.old_rows.end, 0)..old_cursor.end(&()), + TabPoint::new(edit.old_rows.end, 0)..old_cursor.end(), ); new_transforms.push_or_extend(Transform::isomorphic(summary)); } - old_cursor.next(&()); + old_cursor.next(); new_transforms.append( - old_cursor.slice( - &TabPoint::new(next_edit.old_rows.start, 0), - Bias::Right, - &(), - ), + old_cursor + .slice(&TabPoint::new(next_edit.old_rows.start, 0), Bias::Right), &(), ); } } else { - if old_cursor.end(&()) > TabPoint::new(edit.old_rows.end, 0) { + if old_cursor.end() > TabPoint::new(edit.old_rows.end, 0) { let summary = self.tab_snapshot.text_summary_for_range( - TabPoint::new(edit.old_rows.end, 0)..old_cursor.end(&()), + TabPoint::new(edit.old_rows.end, 0)..old_cursor.end(), ); new_transforms.push_or_extend(Transform::isomorphic(summary)); } - old_cursor.next(&()); - new_transforms.append(old_cursor.suffix(&()), &()); + old_cursor.next(); + new_transforms.append(old_cursor.suffix(), &()); } } } @@ -570,19 +564,19 @@ impl WrapSnapshot { tab_edit.new.start.0.column = 0; tab_edit.new.end.0 += Point::new(1, 0); - old_cursor.seek(&tab_edit.old.start, Bias::Right, &()); + old_cursor.seek(&tab_edit.old.start, Bias::Right); let mut old_start = old_cursor.start().output.lines; old_start += tab_edit.old.start.0 - old_cursor.start().input.lines; - old_cursor.seek(&tab_edit.old.end, Bias::Right, &()); + old_cursor.seek(&tab_edit.old.end, Bias::Right); let mut old_end = old_cursor.start().output.lines; old_end += tab_edit.old.end.0 - old_cursor.start().input.lines; - new_cursor.seek(&tab_edit.new.start, Bias::Right, &()); + new_cursor.seek(&tab_edit.new.start, Bias::Right); let mut new_start = new_cursor.start().output.lines; new_start += tab_edit.new.start.0 - new_cursor.start().input.lines; - new_cursor.seek(&tab_edit.new.end, Bias::Right, &()); + new_cursor.seek(&tab_edit.new.end, Bias::Right); let mut new_end = new_cursor.start().output.lines; new_end += tab_edit.new.end.0 - new_cursor.start().input.lines; @@ -605,7 +599,7 @@ impl WrapSnapshot { let output_start = WrapPoint::new(rows.start, 0); let output_end = WrapPoint::new(rows.end, 0); let mut transforms = self.transforms.cursor::<(WrapPoint, TabPoint)>(&()); - transforms.seek(&output_start, Bias::Right, &()); + transforms.seek(&output_start, Bias::Right); let mut input_start = TabPoint(transforms.start().1.0); if transforms.item().map_or(false, |t| t.is_isomorphic()) { input_start.0 += output_start.0 - transforms.start().0.0; @@ -633,7 +627,7 @@ impl WrapSnapshot { pub fn line_len(&self, row: u32) -> u32 { let mut cursor = self.transforms.cursor::<(WrapPoint, TabPoint)>(&()); - cursor.seek(&WrapPoint::new(row + 1, 0), Bias::Left, &()); + cursor.seek(&WrapPoint::new(row + 1, 0), Bias::Left); if cursor .item() .map_or(false, |transform| transform.is_isomorphic()) @@ -658,10 +652,10 @@ impl WrapSnapshot { let end = WrapPoint::new(rows.end, 0); let mut cursor = self.transforms.cursor::<(WrapPoint, TabPoint)>(&()); - cursor.seek(&start, Bias::Right, &()); + cursor.seek(&start, Bias::Right); if let Some(transform) = cursor.item() { let start_in_transform = start.0 - cursor.start().0.0; - let end_in_transform = cmp::min(end, cursor.end(&()).0).0 - cursor.start().0.0; + let end_in_transform = cmp::min(end, cursor.end().0).0 - cursor.start().0.0; if transform.is_isomorphic() { let tab_start = TabPoint(cursor.start().1.0 + start_in_transform); let tab_end = TabPoint(cursor.start().1.0 + end_in_transform); @@ -678,12 +672,12 @@ impl WrapSnapshot { }; } - cursor.next(&()); + cursor.next(); } if rows.end > cursor.start().0.row() { summary += &cursor - .summary::<_, TransformSummary>(&WrapPoint::new(rows.end, 0), Bias::Right, &()) + .summary::<_, TransformSummary>(&WrapPoint::new(rows.end, 0), Bias::Right) .output; if let Some(transform) = cursor.item() { @@ -712,7 +706,7 @@ impl WrapSnapshot { pub fn soft_wrap_indent(&self, row: u32) -> Option { let mut cursor = self.transforms.cursor::(&()); - cursor.seek(&WrapPoint::new(row + 1, 0), Bias::Right, &()); + cursor.seek(&WrapPoint::new(row + 1, 0), Bias::Right); cursor.item().and_then(|transform| { if transform.is_isomorphic() { None @@ -728,7 +722,7 @@ impl WrapSnapshot { pub fn row_infos(&self, start_row: u32) -> WrapRows<'_> { let mut transforms = self.transforms.cursor::<(WrapPoint, TabPoint)>(&()); - transforms.seek(&WrapPoint::new(start_row, 0), Bias::Left, &()); + transforms.seek(&WrapPoint::new(start_row, 0), Bias::Left); let mut input_row = transforms.start().1.row(); if transforms.item().map_or(false, |t| t.is_isomorphic()) { input_row += start_row - transforms.start().0.row(); @@ -748,7 +742,7 @@ impl WrapSnapshot { pub fn to_tab_point(&self, point: WrapPoint) -> TabPoint { let mut cursor = self.transforms.cursor::<(WrapPoint, TabPoint)>(&()); - cursor.seek(&point, Bias::Right, &()); + cursor.seek(&point, Bias::Right); let mut tab_point = cursor.start().1.0; if cursor.item().map_or(false, |t| t.is_isomorphic()) { tab_point += point.0 - cursor.start().0.0; @@ -766,14 +760,14 @@ impl WrapSnapshot { pub fn tab_point_to_wrap_point(&self, point: TabPoint) -> WrapPoint { let mut cursor = self.transforms.cursor::<(TabPoint, WrapPoint)>(&()); - cursor.seek(&point, Bias::Right, &()); + cursor.seek(&point, Bias::Right); WrapPoint(cursor.start().1.0 + (point.0 - cursor.start().0.0)) } pub fn clip_point(&self, mut point: WrapPoint, bias: Bias) -> WrapPoint { if bias == Bias::Left { let mut cursor = self.transforms.cursor::(&()); - cursor.seek(&point, Bias::Right, &()); + cursor.seek(&point, Bias::Right); if cursor.item().map_or(false, |t| !t.is_isomorphic()) { point = *cursor.start(); *point.column_mut() -= 1; @@ -791,16 +785,16 @@ impl WrapSnapshot { *point.column_mut() = 0; let mut cursor = self.transforms.cursor::<(WrapPoint, TabPoint)>(&()); - cursor.seek(&point, Bias::Right, &()); + cursor.seek(&point, Bias::Right); if cursor.item().is_none() { - cursor.prev(&()); + cursor.prev(); } while let Some(transform) = cursor.item() { if transform.is_isomorphic() && cursor.start().1.column() == 0 { - return cmp::min(cursor.end(&()).0.row(), point.row()); + return cmp::min(cursor.end().0.row(), point.row()); } else { - cursor.prev(&()); + cursor.prev(); } } @@ -811,12 +805,12 @@ impl WrapSnapshot { point.0 += Point::new(1, 0); let mut cursor = self.transforms.cursor::<(WrapPoint, TabPoint)>(&()); - cursor.seek(&point, Bias::Right, &()); + cursor.seek(&point, Bias::Right); while let Some(transform) = cursor.item() { if transform.is_isomorphic() && cursor.start().1.column() == 0 { return Some(cmp::max(cursor.start().0.row(), point.row())); } else { - cursor.next(&()); + cursor.next(); } } @@ -889,7 +883,7 @@ impl WrapChunks<'_> { pub(crate) fn seek(&mut self, rows: Range) { let output_start = WrapPoint::new(rows.start, 0); let output_end = WrapPoint::new(rows.end, 0); - self.transforms.seek(&output_start, Bias::Right, &()); + self.transforms.seek(&output_start, Bias::Right); let mut input_start = TabPoint(self.transforms.start().1.0); if self.transforms.item().map_or(false, |t| t.is_isomorphic()) { input_start.0 += output_start.0 - self.transforms.start().0.0; @@ -930,7 +924,7 @@ impl<'a> Iterator for WrapChunks<'a> { } self.output_position.0 += summary; - self.transforms.next(&()); + self.transforms.next(); return Some(Chunk { text: &display_text[start_ix..end_ix], ..Default::default() @@ -942,7 +936,7 @@ impl<'a> Iterator for WrapChunks<'a> { } let mut input_len = 0; - let transform_end = self.transforms.end(&()).0; + let transform_end = self.transforms.end().0; for c in self.input_chunk.text.chars() { let char_len = c.len_utf8(); input_len += char_len; @@ -954,7 +948,7 @@ impl<'a> Iterator for WrapChunks<'a> { } if self.output_position >= transform_end { - self.transforms.next(&()); + self.transforms.next(); break; } } @@ -982,7 +976,7 @@ impl Iterator for WrapRows<'_> { self.output_row += 1; self.transforms - .seek_forward(&WrapPoint::new(self.output_row, 0), Bias::Left, &()); + .seek_forward(&WrapPoint::new(self.output_row, 0), Bias::Left); if self.transforms.item().map_or(false, |t| t.is_isomorphic()) { self.input_buffer_row = self.input_buffer_rows.next().unwrap(); self.soft_wrapped = false; diff --git a/crates/editor/src/git/blame.rs b/crates/editor/src/git/blame.rs index d4c9e37895..fc350a5a15 100644 --- a/crates/editor/src/git/blame.rs +++ b/crates/editor/src/git/blame.rs @@ -296,7 +296,7 @@ impl GitBlame { let row = info .buffer_row .filter(|_| info.buffer_id == Some(buffer_id))?; - cursor.seek_forward(&row, Bias::Right, &()); + cursor.seek_forward(&row, Bias::Right); cursor.item()?.blame.clone() }) } @@ -389,7 +389,7 @@ impl GitBlame { } } - new_entries.append(cursor.slice(&edit.old.start, Bias::Right, &()), &()); + new_entries.append(cursor.slice(&edit.old.start, Bias::Right), &()); if edit.new.start > new_entries.summary().rows { new_entries.push( @@ -401,7 +401,7 @@ impl GitBlame { ); } - cursor.seek(&edit.old.end, Bias::Right, &()); + cursor.seek(&edit.old.end, Bias::Right); if !edit.new.is_empty() { new_entries.push( GitBlameEntry { @@ -412,7 +412,7 @@ impl GitBlame { ); } - let old_end = cursor.end(&()); + let old_end = cursor.end(); if row_edits .peek() .map_or(true, |next_edit| next_edit.old.start >= old_end) @@ -421,18 +421,18 @@ impl GitBlame { if old_end > edit.old.end { new_entries.push( GitBlameEntry { - rows: cursor.end(&()) - edit.old.end, + rows: cursor.end() - edit.old.end, blame: entry.blame.clone(), }, &(), ); } - cursor.next(&()); + cursor.next(); } } } - new_entries.append(cursor.suffix(&()), &()); + new_entries.append(cursor.suffix(), &()); drop(cursor); self.buffer_snapshot = new_snapshot; diff --git a/crates/gpui/src/elements/list.rs b/crates/gpui/src/elements/list.rs index f24d38794f..328a6a4cc1 100644 --- a/crates/gpui/src/elements/list.rs +++ b/crates/gpui/src/elements/list.rs @@ -249,8 +249,8 @@ impl ListState { let state = &mut *self.0.borrow_mut(); let mut old_items = state.items.cursor::(&()); - let mut new_items = old_items.slice(&Count(old_range.start), Bias::Right, &()); - old_items.seek_forward(&Count(old_range.end), Bias::Right, &()); + let mut new_items = old_items.slice(&Count(old_range.start), Bias::Right); + old_items.seek_forward(&Count(old_range.end), Bias::Right); let mut spliced_count = 0; new_items.extend( @@ -260,7 +260,7 @@ impl ListState { }), &(), ); - new_items.append(old_items.suffix(&()), &()); + new_items.append(old_items.suffix(), &()); drop(old_items); state.items = new_items; @@ -300,14 +300,14 @@ impl ListState { let current_offset = self.logical_scroll_top(); let state = &mut *self.0.borrow_mut(); let mut cursor = state.items.cursor::(&()); - cursor.seek(&Count(current_offset.item_ix), Bias::Right, &()); + cursor.seek(&Count(current_offset.item_ix), Bias::Right); let start_pixel_offset = cursor.start().height + current_offset.offset_in_item; let new_pixel_offset = (start_pixel_offset + distance).max(px(0.)); if new_pixel_offset > start_pixel_offset { - cursor.seek_forward(&Height(new_pixel_offset), Bias::Right, &()); + cursor.seek_forward(&Height(new_pixel_offset), Bias::Right); } else { - cursor.seek(&Height(new_pixel_offset), Bias::Right, &()); + cursor.seek(&Height(new_pixel_offset), Bias::Right); } state.logical_scroll_top = Some(ListOffset { @@ -343,11 +343,11 @@ impl ListState { scroll_top.offset_in_item = px(0.); } else { let mut cursor = state.items.cursor::(&()); - cursor.seek(&Count(ix + 1), Bias::Right, &()); + cursor.seek(&Count(ix + 1), Bias::Right); let bottom = cursor.start().height + padding.top; let goal_top = px(0.).max(bottom - height + padding.bottom); - cursor.seek(&Height(goal_top), Bias::Left, &()); + cursor.seek(&Height(goal_top), Bias::Left); let start_ix = cursor.start().count; let start_item_top = cursor.start().height; @@ -372,11 +372,11 @@ impl ListState { } let mut cursor = state.items.cursor::<(Count, Height)>(&()); - cursor.seek(&Count(scroll_top.item_ix), Bias::Right, &()); + cursor.seek(&Count(scroll_top.item_ix), Bias::Right); let scroll_top = cursor.start().1.0 + scroll_top.offset_in_item; - cursor.seek_forward(&Count(ix), Bias::Right, &()); + cursor.seek_forward(&Count(ix), Bias::Right); if let Some(&ListItem::Measured { size, .. }) = cursor.item() { let &(Count(count), Height(top)) = cursor.start(); if count == ix { @@ -431,7 +431,7 @@ impl ListState { let mut cursor = state.items.cursor::(&()); let summary: ListItemSummary = - cursor.summary(&Count(logical_scroll_top.item_ix), Bias::Right, &()); + cursor.summary(&Count(logical_scroll_top.item_ix), Bias::Right); let content_height = state.items.summary().height; let drag_offset = // if dragging the scrollbar, we want to offset the point if the height changed @@ -450,9 +450,9 @@ impl ListState { impl StateInner { fn visible_range(&self, height: Pixels, scroll_top: &ListOffset) -> Range { let mut cursor = self.items.cursor::(&()); - cursor.seek(&Count(scroll_top.item_ix), Bias::Right, &()); + cursor.seek(&Count(scroll_top.item_ix), Bias::Right); let start_y = cursor.start().height + scroll_top.offset_in_item; - cursor.seek_forward(&Height(start_y + height), Bias::Left, &()); + cursor.seek_forward(&Height(start_y + height), Bias::Left); scroll_top.item_ix..cursor.start().count + 1 } @@ -482,7 +482,7 @@ impl StateInner { self.logical_scroll_top = None; } else { let mut cursor = self.items.cursor::(&()); - cursor.seek(&Height(new_scroll_top), Bias::Right, &()); + cursor.seek(&Height(new_scroll_top), Bias::Right); let item_ix = cursor.start().count; let offset_in_item = new_scroll_top - cursor.start().height; self.logical_scroll_top = Some(ListOffset { @@ -523,7 +523,7 @@ impl StateInner { fn scroll_top(&self, logical_scroll_top: &ListOffset) -> Pixels { let mut cursor = self.items.cursor::(&()); - cursor.seek(&Count(logical_scroll_top.item_ix), Bias::Right, &()); + cursor.seek(&Count(logical_scroll_top.item_ix), Bias::Right); cursor.start().height + logical_scroll_top.offset_in_item } @@ -553,7 +553,7 @@ impl StateInner { let mut cursor = old_items.cursor::(&()); // Render items after the scroll top, including those in the trailing overdraw - cursor.seek(&Count(scroll_top.item_ix), Bias::Right, &()); + cursor.seek(&Count(scroll_top.item_ix), Bias::Right); for (ix, item) in cursor.by_ref().enumerate() { let visible_height = rendered_height - scroll_top.offset_in_item; if visible_height >= available_height + self.overdraw { @@ -592,13 +592,13 @@ impl StateInner { rendered_height += padding.bottom; // Prepare to start walking upward from the item at the scroll top. - cursor.seek(&Count(scroll_top.item_ix), Bias::Right, &()); + cursor.seek(&Count(scroll_top.item_ix), Bias::Right); // If the rendered items do not fill the visible region, then adjust // the scroll top upward. if rendered_height - scroll_top.offset_in_item < available_height { while rendered_height < available_height { - cursor.prev(&()); + cursor.prev(); if let Some(item) = cursor.item() { let item_index = cursor.start().0; let mut element = (self.render_item)(item_index, window, cx); @@ -645,7 +645,7 @@ impl StateInner { // Measure items in the leading overdraw let mut leading_overdraw = scroll_top.offset_in_item; while leading_overdraw < self.overdraw { - cursor.prev(&()); + cursor.prev(); if let Some(item) = cursor.item() { let size = if let ListItem::Measured { size, .. } = item { *size @@ -666,10 +666,10 @@ impl StateInner { let measured_range = cursor.start().0..(cursor.start().0 + measured_items.len()); let mut cursor = old_items.cursor::(&()); - let mut new_items = cursor.slice(&Count(measured_range.start), Bias::Right, &()); + let mut new_items = cursor.slice(&Count(measured_range.start), Bias::Right); new_items.extend(measured_items, &()); - cursor.seek(&Count(measured_range.end), Bias::Right, &()); - new_items.append(cursor.suffix(&()), &()); + cursor.seek(&Count(measured_range.end), Bias::Right); + new_items.append(cursor.suffix(), &()); self.items = new_items; // If none of the visible items are focused, check if an off-screen item is focused @@ -679,7 +679,7 @@ impl StateInner { let mut cursor = self .items .filter::<_, Count>(&(), |summary| summary.has_focus_handles); - cursor.next(&()); + cursor.next(); while let Some(item) = cursor.item() { if item.contains_focused(window, cx) { let item_index = cursor.start().0; @@ -692,7 +692,7 @@ impl StateInner { }); break; } - cursor.next(&()); + cursor.next(); } } @@ -741,7 +741,7 @@ impl StateInner { }); } else if autoscroll_bounds.bottom() > bounds.bottom() { let mut cursor = self.items.cursor::(&()); - cursor.seek(&Count(item.index), Bias::Right, &()); + cursor.seek(&Count(item.index), Bias::Right); let mut height = bounds.size.height - padding.top - padding.bottom; // Account for the height of the element down until the autoscroll bottom. @@ -749,7 +749,7 @@ impl StateInner { // Keep decreasing the scroll top until we fill all the available space. while height > Pixels::ZERO { - cursor.prev(&()); + cursor.prev(); let Some(item) = cursor.item() else { break }; let size = item.size().unwrap_or_else(|| { @@ -806,7 +806,7 @@ impl StateInner { self.logical_scroll_top = None; } else { let mut cursor = self.items.cursor::(&()); - cursor.seek(&Height(new_scroll_top), Bias::Right, &()); + cursor.seek(&Height(new_scroll_top), Bias::Right); let item_ix = cursor.start().count; let offset_in_item = new_scroll_top - cursor.start().height; diff --git a/crates/language/src/diagnostic_set.rs b/crates/language/src/diagnostic_set.rs index 661e3ef217..613c445652 100644 --- a/crates/language/src/diagnostic_set.rs +++ b/crates/language/src/diagnostic_set.rs @@ -158,17 +158,17 @@ impl DiagnosticSet { }); if reversed { - cursor.prev(buffer); + cursor.prev(); } else { - cursor.next(buffer); + cursor.next(); } iter::from_fn({ move || { if let Some(diagnostic) = cursor.item() { if reversed { - cursor.prev(buffer); + cursor.prev(); } else { - cursor.next(buffer); + cursor.next(); } Some(diagnostic.resolve(buffer)) } else { diff --git a/crates/language/src/syntax_map.rs b/crates/language/src/syntax_map.rs index da05416e89..f441114a90 100644 --- a/crates/language/src/syntax_map.rs +++ b/crates/language/src/syntax_map.rs @@ -297,10 +297,10 @@ impl SyntaxSnapshot { let mut first_edit_ix_for_depth = 0; let mut prev_depth = 0; let mut cursor = self.layers.cursor::(text); - cursor.next(text); + cursor.next(); 'outer: loop { - let depth = cursor.end(text).max_depth; + let depth = cursor.end().max_depth; if depth > prev_depth { first_edit_ix_for_depth = 0; prev_depth = depth; @@ -313,7 +313,7 @@ impl SyntaxSnapshot { position: edit_range.start, }; if target.cmp(cursor.start(), text).is_gt() { - let slice = cursor.slice(&target, Bias::Left, text); + let slice = cursor.slice(&target, Bias::Left); layers.append(slice, text); } } @@ -327,7 +327,6 @@ impl SyntaxSnapshot { language: None, }, Bias::Left, - text, ); layers.append(slice, text); continue; @@ -394,10 +393,10 @@ impl SyntaxSnapshot { } layers.push(layer, text); - cursor.next(text); + cursor.next(); } - layers.append(cursor.suffix(text), text); + layers.append(cursor.suffix(), text); drop(cursor); self.layers = layers; } @@ -420,7 +419,7 @@ impl SyntaxSnapshot { let mut cursor = self .layers .filter::<_, ()>(text, |summary| summary.contains_unknown_injections); - cursor.next(text); + cursor.next(); while let Some(layer) = cursor.item() { let SyntaxLayerContent::Pending { language_name } = &layer.content else { unreachable!() @@ -436,7 +435,7 @@ impl SyntaxSnapshot { resolved_injection_ranges.push(range); } - cursor.next(text); + cursor.next(); } drop(cursor); @@ -469,7 +468,7 @@ impl SyntaxSnapshot { let max_depth = self.layers.summary().max_depth; let mut cursor = self.layers.cursor::(text); - cursor.next(text); + cursor.next(); let mut layers = SumTree::new(text); let mut changed_regions = ChangeRegionSet::default(); @@ -514,7 +513,7 @@ impl SyntaxSnapshot { }; let mut done = cursor.item().is_none(); - while !done && position.cmp(&cursor.end(text), text).is_gt() { + while !done && position.cmp(&cursor.end(), text).is_gt() { done = true; let bounded_position = SyntaxLayerPositionBeforeChange { @@ -522,16 +521,16 @@ impl SyntaxSnapshot { change: changed_regions.start_position(), }; if bounded_position.cmp(cursor.start(), text).is_gt() { - let slice = cursor.slice(&bounded_position, Bias::Left, text); + let slice = cursor.slice(&bounded_position, Bias::Left); if !slice.is_empty() { layers.append(slice, text); - if changed_regions.prune(cursor.end(text), text) { + if changed_regions.prune(cursor.end(), text) { done = false; } } } - while position.cmp(&cursor.end(text), text).is_gt() { + while position.cmp(&cursor.end(), text).is_gt() { let Some(layer) = cursor.item() else { break }; if changed_regions.intersects(layer, text) { @@ -555,8 +554,8 @@ impl SyntaxSnapshot { layers.push(layer.clone(), text); } - cursor.next(text); - if changed_regions.prune(cursor.end(text), text) { + cursor.next(); + if changed_regions.prune(cursor.end(), text) { done = false; } } @@ -572,7 +571,7 @@ impl SyntaxSnapshot { if layer.range.to_offset(text) == (step_start_byte..step_end_byte) && layer.content.language_id() == step.language.id() { - cursor.next(text); + cursor.next(); } else { old_layer = None; } @@ -918,7 +917,7 @@ impl SyntaxSnapshot { } }); - cursor.next(buffer); + cursor.next(); iter::from_fn(move || { while let Some(layer) = cursor.item() { let mut info = None; @@ -940,7 +939,7 @@ impl SyntaxSnapshot { }); } } - cursor.next(buffer); + cursor.next(); if info.is_some() { return info; } diff --git a/crates/multi_buffer/src/multi_buffer.rs b/crates/multi_buffer/src/multi_buffer.rs index 2cc8ea59ab..f0913e30fb 100644 --- a/crates/multi_buffer/src/multi_buffer.rs +++ b/crates/multi_buffer/src/multi_buffer.rs @@ -1211,7 +1211,7 @@ impl MultiBuffer { let buffer = buffer_state.buffer.read(cx); for range in buffer.edited_ranges_for_transaction_id::(*buffer_transaction) { for excerpt_id in &buffer_state.excerpts { - cursor.seek(excerpt_id, Bias::Left, &()); + cursor.seek(excerpt_id, Bias::Left); if let Some(excerpt) = cursor.item() { if excerpt.locator == *excerpt_id { let excerpt_buffer_start = @@ -1322,7 +1322,7 @@ impl MultiBuffer { let start_locator = snapshot.excerpt_locator_for_id(selection.start.excerpt_id); let end_locator = snapshot.excerpt_locator_for_id(selection.end.excerpt_id); - cursor.seek(&Some(start_locator), Bias::Left, &()); + cursor.seek(&Some(start_locator), Bias::Left); while let Some(excerpt) = cursor.item() { if excerpt.locator > *end_locator { break; @@ -1347,7 +1347,7 @@ impl MultiBuffer { goal: selection.goal, }); - cursor.next(&()); + cursor.next(); } } @@ -1769,13 +1769,13 @@ impl MultiBuffer { let mut next_excerpt_id = move || ExcerptId(post_inc(&mut next_excerpt_id)); let mut excerpts_cursor = snapshot.excerpts.cursor::>(&()); - excerpts_cursor.next(&()); + excerpts_cursor.next(); loop { let new = new_iter.peek(); let existing = if let Some(existing_id) = existing_iter.peek() { let locator = snapshot.excerpt_locator_for_id(*existing_id); - excerpts_cursor.seek_forward(&Some(locator), Bias::Left, &()); + excerpts_cursor.seek_forward(&Some(locator), Bias::Left); if let Some(excerpt) = excerpts_cursor.item() { if excerpt.buffer_id != buffer_snapshot.remote_id() { to_remove.push(*existing_id); @@ -1970,7 +1970,7 @@ impl MultiBuffer { let mut prev_locator = snapshot.excerpt_locator_for_id(prev_excerpt_id).clone(); let mut new_excerpt_ids = mem::take(&mut snapshot.excerpt_ids); let mut cursor = snapshot.excerpts.cursor::>(&()); - let mut new_excerpts = cursor.slice(&prev_locator, Bias::Right, &()); + let mut new_excerpts = cursor.slice(&prev_locator, Bias::Right); prev_locator = cursor.start().unwrap_or(Locator::min_ref()).clone(); let edit_start = ExcerptOffset::new(new_excerpts.summary().text.len); @@ -2019,7 +2019,7 @@ impl MultiBuffer { let edit_end = ExcerptOffset::new(new_excerpts.summary().text.len); - let suffix = cursor.suffix(&()); + let suffix = cursor.suffix(); let changed_trailing_excerpt = suffix.is_empty(); new_excerpts.append(suffix, &()); drop(cursor); @@ -2104,7 +2104,7 @@ impl MultiBuffer { .into_iter() .flatten() { - cursor.seek_forward(&Some(locator), Bias::Left, &()); + cursor.seek_forward(&Some(locator), Bias::Left); if let Some(excerpt) = cursor.item() { if excerpt.locator == *locator { excerpts.push((excerpt.id, excerpt.range.clone())); @@ -2124,25 +2124,25 @@ impl MultiBuffer { let mut diff_transforms = snapshot .diff_transforms .cursor::<(ExcerptDimension, OutputDimension)>(&()); - diff_transforms.next(&()); + diff_transforms.next(); let locators = buffers .get(&buffer_id) .into_iter() .flat_map(|state| &state.excerpts); let mut result = Vec::new(); for locator in locators { - excerpts.seek_forward(&Some(locator), Bias::Left, &()); + excerpts.seek_forward(&Some(locator), Bias::Left); if let Some(excerpt) = excerpts.item() { if excerpt.locator == *locator { let excerpt_start = excerpts.start().1.clone(); let excerpt_end = ExcerptDimension(excerpt_start.0 + excerpt.text_summary.lines); - diff_transforms.seek_forward(&excerpt_start, Bias::Left, &()); + diff_transforms.seek_forward(&excerpt_start, Bias::Left); let overshoot = excerpt_start.0 - diff_transforms.start().0.0; let start = diff_transforms.start().1.0 + overshoot; - diff_transforms.seek_forward(&excerpt_end, Bias::Right, &()); + diff_transforms.seek_forward(&excerpt_end, Bias::Right); let overshoot = excerpt_end.0 - diff_transforms.start().0.0; let end = diff_transforms.start().1.0 + overshoot; @@ -2290,7 +2290,7 @@ impl MultiBuffer { self.paths_by_excerpt.remove(&excerpt_id); // Seek to the next excerpt to remove, preserving any preceding excerpts. let locator = snapshot.excerpt_locator_for_id(excerpt_id); - new_excerpts.append(cursor.slice(&Some(locator), Bias::Left, &()), &()); + new_excerpts.append(cursor.slice(&Some(locator), Bias::Left), &()); if let Some(mut excerpt) = cursor.item() { if excerpt.id != excerpt_id { @@ -2311,7 +2311,7 @@ impl MultiBuffer { removed_buffer_ids.push(excerpt.buffer_id); } } - cursor.next(&()); + cursor.next(); // Skip over any subsequent excerpts that are also removed. if let Some(&next_excerpt_id) = excerpt_ids.peek() { @@ -2344,7 +2344,7 @@ impl MultiBuffer { }); } } - let suffix = cursor.suffix(&()); + let suffix = cursor.suffix(); let changed_trailing_excerpt = suffix.is_empty(); new_excerpts.append(suffix, &()); drop(cursor); @@ -2493,7 +2493,7 @@ impl MultiBuffer { let mut cursor = snapshot .excerpts .cursor::<(Option<&Locator>, ExcerptOffset)>(&()); - cursor.seek_forward(&Some(locator), Bias::Left, &()); + cursor.seek_forward(&Some(locator), Bias::Left); if let Some(excerpt) = cursor.item() { if excerpt.locator == *locator { let excerpt_buffer_range = excerpt.range.context.to_offset(&excerpt.buffer); @@ -2724,7 +2724,7 @@ impl MultiBuffer { let snapshot = self.read(cx); let mut cursor = snapshot.diff_transforms.cursor::(&()); let offset_range = range.to_offset(&snapshot); - cursor.seek(&offset_range.start, Bias::Left, &()); + cursor.seek(&offset_range.start, Bias::Left); while let Some(item) = cursor.item() { if *cursor.start() >= offset_range.end && *cursor.start() > offset_range.start { break; @@ -2732,7 +2732,7 @@ impl MultiBuffer { if item.hunk_info().is_some() { return true; } - cursor.next(&()); + cursor.next(); } false } @@ -2746,7 +2746,7 @@ impl MultiBuffer { let end = snapshot.point_to_offset(Point::new(range.end.row + 1, 0)); let start = start.saturating_sub(1); let end = snapshot.len().min(end + 1); - cursor.seek(&start, Bias::Right, &()); + cursor.seek(&start, Bias::Right); while let Some(item) = cursor.item() { if *cursor.start() >= end { break; @@ -2754,7 +2754,7 @@ impl MultiBuffer { if item.hunk_info().is_some() { return true; } - cursor.next(&()); + cursor.next(); } } false @@ -2848,7 +2848,7 @@ impl MultiBuffer { .cursor::<(Option<&Locator>, ExcerptOffset)>(&()); let mut edits = Vec::>::new(); - let prefix = cursor.slice(&Some(locator), Bias::Left, &()); + let prefix = cursor.slice(&Some(locator), Bias::Left); new_excerpts.append(prefix, &()); let mut excerpt = cursor.item().unwrap().clone(); @@ -2883,9 +2883,9 @@ impl MultiBuffer { new_excerpts.push(excerpt, &()); - cursor.next(&()); + cursor.next(); - new_excerpts.append(cursor.suffix(&()), &()); + new_excerpts.append(cursor.suffix(), &()); drop(cursor); snapshot.excerpts = new_excerpts; @@ -2925,7 +2925,7 @@ impl MultiBuffer { let mut edits = Vec::>::new(); for locator in &locators { - let prefix = cursor.slice(&Some(locator), Bias::Left, &()); + let prefix = cursor.slice(&Some(locator), Bias::Left); new_excerpts.append(prefix, &()); let mut excerpt = cursor.item().unwrap().clone(); @@ -2987,10 +2987,10 @@ impl MultiBuffer { new_excerpts.push(excerpt, &()); - cursor.next(&()); + cursor.next(); } - new_excerpts.append(cursor.suffix(&()), &()); + new_excerpts.append(cursor.suffix(), &()); drop(cursor); snapshot.excerpts = new_excerpts; @@ -3070,7 +3070,7 @@ impl MultiBuffer { .cursor::<(Option<&Locator>, ExcerptOffset)>(&()); for (locator, buffer, buffer_edited) in excerpts_to_edit { - new_excerpts.append(cursor.slice(&Some(locator), Bias::Left, &()), &()); + new_excerpts.append(cursor.slice(&Some(locator), Bias::Left), &()); let old_excerpt = cursor.item().unwrap(); let buffer = buffer.read(cx); let buffer_id = buffer.remote_id(); @@ -3112,9 +3112,9 @@ impl MultiBuffer { } new_excerpts.push(new_excerpt, &()); - cursor.next(&()); + cursor.next(); } - new_excerpts.append(cursor.suffix(&()), &()); + new_excerpts.append(cursor.suffix(), &()); drop(cursor); snapshot.excerpts = new_excerpts; @@ -3145,23 +3145,22 @@ impl MultiBuffer { let mut excerpt_edits = excerpt_edits.into_iter().peekable(); while let Some(edit) = excerpt_edits.next() { - excerpts.seek_forward(&edit.new.start, Bias::Right, &()); + excerpts.seek_forward(&edit.new.start, Bias::Right); if excerpts.item().is_none() && *excerpts.start() == edit.new.start { - excerpts.prev(&()); + excerpts.prev(); } // Keep any transforms that are before the edit. if at_transform_boundary { at_transform_boundary = false; - let transforms_before_edit = - old_diff_transforms.slice(&edit.old.start, Bias::Left, &()); + let transforms_before_edit = old_diff_transforms.slice(&edit.old.start, Bias::Left); self.append_diff_transforms(&mut new_diff_transforms, transforms_before_edit); if let Some(transform) = old_diff_transforms.item() { - if old_diff_transforms.end(&()).0 == edit.old.start + if old_diff_transforms.end().0 == edit.old.start && old_diff_transforms.start().0 < edit.old.start { self.push_diff_transform(&mut new_diff_transforms, transform.clone()); - old_diff_transforms.next(&()); + old_diff_transforms.next(); } } } @@ -3203,7 +3202,7 @@ impl MultiBuffer { // then recreate the content up to the end of this transform, to prepare // for reusing additional slices of the old transforms. if excerpt_edits.peek().map_or(true, |next_edit| { - next_edit.old.start >= old_diff_transforms.end(&()).0 + next_edit.old.start >= old_diff_transforms.end().0 }) { let keep_next_old_transform = (old_diff_transforms.start().0 >= edit.old.end) && match old_diff_transforms.item() { @@ -3218,8 +3217,8 @@ impl MultiBuffer { let mut excerpt_offset = edit.new.end; if !keep_next_old_transform { - excerpt_offset += old_diff_transforms.end(&()).0 - edit.old.end; - old_diff_transforms.next(&()); + excerpt_offset += old_diff_transforms.end().0 - edit.old.end; + old_diff_transforms.next(); } old_expanded_hunks.clear(); @@ -3234,7 +3233,7 @@ impl MultiBuffer { } // Keep any transforms that are after the last edit. - self.append_diff_transforms(&mut new_diff_transforms, old_diff_transforms.suffix(&())); + self.append_diff_transforms(&mut new_diff_transforms, old_diff_transforms.suffix()); // Ensure there's always at least one buffer content transform. if new_diff_transforms.is_empty() { @@ -3283,10 +3282,10 @@ impl MultiBuffer { ); old_expanded_hunks.insert(hunk_info); } - if old_diff_transforms.end(&()).0 > edit.old.end { + if old_diff_transforms.end().0 > edit.old.end { break; } - old_diff_transforms.next(&()); + old_diff_transforms.next(); } // Avoid querying diff hunks if there's no possibility of hunks being expanded. @@ -3413,8 +3412,8 @@ impl MultiBuffer { } } - if excerpts.end(&()) <= edit.new.end { - excerpts.next(&()); + if excerpts.end() <= edit.new.end { + excerpts.next(); } else { break; } @@ -3439,9 +3438,9 @@ impl MultiBuffer { *summary, ) { let mut cursor = subtree.cursor::<()>(&()); - cursor.next(&()); - cursor.next(&()); - new_transforms.append(cursor.suffix(&()), &()); + cursor.next(); + cursor.next(); + new_transforms.append(cursor.suffix(), &()); return; } } @@ -4715,14 +4714,14 @@ impl MultiBufferSnapshot { { let range = range.start.to_offset(self)..range.end.to_offset(self); let mut cursor = self.diff_transforms.cursor::<(usize, ExcerptOffset)>(&()); - cursor.seek(&range.start, Bias::Right, &()); + cursor.seek(&range.start, Bias::Right); let Some(first_transform) = cursor.item() else { return D::from_text_summary(&TextSummary::default()); }; let diff_transform_start = cursor.start().0; - let diff_transform_end = cursor.end(&()).0; + let diff_transform_end = cursor.end().0; let diff_start = range.start; let start_overshoot = diff_start - diff_transform_start; let end_overshoot = std::cmp::min(range.end, diff_transform_end) - diff_transform_start; @@ -4765,12 +4764,10 @@ impl MultiBufferSnapshot { return result; } - cursor.next(&()); - result.add_assign(&D::from_text_summary(&cursor.summary( - &range.end, - Bias::Right, - &(), - ))); + cursor.next(); + result.add_assign(&D::from_text_summary( + &cursor.summary(&range.end, Bias::Right), + )); let Some(last_transform) = cursor.item() else { return result; @@ -4813,9 +4810,9 @@ impl MultiBufferSnapshot { // let mut range = range.start..range.end; let mut summary = D::zero(&()); let mut cursor = self.excerpts.cursor::(&()); - cursor.seek(&range.start, Bias::Right, &()); + cursor.seek(&range.start, Bias::Right); if let Some(excerpt) = cursor.item() { - let mut end_before_newline = cursor.end(&()); + let mut end_before_newline = cursor.end(); if excerpt.has_trailing_newline { end_before_newline -= ExcerptOffset::new(1); } @@ -4834,13 +4831,13 @@ impl MultiBufferSnapshot { summary.add_assign(&D::from_text_summary(&TextSummary::from("\n"))); } - cursor.next(&()); + cursor.next(); } if range.end > *cursor.start() { summary.add_assign( &cursor - .summary::<_, ExcerptDimension>(&range.end, Bias::Right, &()) + .summary::<_, ExcerptDimension>(&range.end, Bias::Right) .0, ); if let Some(excerpt) = cursor.item() { @@ -4876,11 +4873,11 @@ impl MultiBufferSnapshot { D: TextDimension + Ord + Sub, { loop { - let transform_end_position = diff_transforms.end(&()).0.0; + let transform_end_position = diff_transforms.end().0.0; let at_transform_end = excerpt_position == transform_end_position && diff_transforms.item().is_some(); if at_transform_end && anchor.text_anchor.bias == Bias::Right { - diff_transforms.next(&()); + diff_transforms.next(); continue; } @@ -4906,7 +4903,7 @@ impl MultiBufferSnapshot { ); position.add_assign(&position_in_hunk); } else if at_transform_end { - diff_transforms.next(&()); + diff_transforms.next(); continue; } } @@ -4915,7 +4912,7 @@ impl MultiBufferSnapshot { } _ => { if at_transform_end && anchor.diff_base_anchor.is_some() { - diff_transforms.next(&()); + diff_transforms.next(); continue; } let overshoot = excerpt_position - diff_transforms.start().0.0; @@ -4933,9 +4930,9 @@ impl MultiBufferSnapshot { .cursor::<(Option<&Locator>, ExcerptOffset)>(&()); let locator = self.excerpt_locator_for_id(anchor.excerpt_id); - cursor.seek(&Some(locator), Bias::Left, &()); + cursor.seek(&Some(locator), Bias::Left); if cursor.item().is_none() { - cursor.next(&()); + cursor.next(); } let mut position = cursor.start().1; @@ -4975,7 +4972,7 @@ impl MultiBufferSnapshot { let mut diff_transforms_cursor = self .diff_transforms .cursor::<(ExcerptDimension, OutputDimension)>(&()); - diff_transforms_cursor.next(&()); + diff_transforms_cursor.next(); let mut summaries = Vec::new(); while let Some(anchor) = anchors.peek() { @@ -4990,9 +4987,9 @@ impl MultiBufferSnapshot { }); let locator = self.excerpt_locator_for_id(excerpt_id); - cursor.seek_forward(locator, Bias::Left, &()); + cursor.seek_forward(locator, Bias::Left); if cursor.item().is_none() { - cursor.next(&()); + cursor.next(); } let excerpt_start_position = D::from_text_summary(&cursor.start().text); @@ -5022,11 +5019,8 @@ impl MultiBufferSnapshot { } if position > diff_transforms_cursor.start().0.0 { - diff_transforms_cursor.seek_forward( - &ExcerptDimension(position), - Bias::Left, - &(), - ); + diff_transforms_cursor + .seek_forward(&ExcerptDimension(position), Bias::Left); } summaries.push(self.resolve_summary_for_anchor( @@ -5036,11 +5030,8 @@ impl MultiBufferSnapshot { )); } } else { - diff_transforms_cursor.seek_forward( - &ExcerptDimension(excerpt_start_position), - Bias::Left, - &(), - ); + diff_transforms_cursor + .seek_forward(&ExcerptDimension(excerpt_start_position), Bias::Left); let position = self.resolve_summary_for_anchor( &Anchor::max(), excerpt_start_position, @@ -5099,7 +5090,7 @@ impl MultiBufferSnapshot { { let mut anchors = anchors.into_iter().enumerate().peekable(); let mut cursor = self.excerpts.cursor::>(&()); - cursor.next(&()); + cursor.next(); let mut result = Vec::new(); @@ -5108,10 +5099,10 @@ impl MultiBufferSnapshot { // Find the location where this anchor's excerpt should be. let old_locator = self.excerpt_locator_for_id(old_excerpt_id); - cursor.seek_forward(&Some(old_locator), Bias::Left, &()); + cursor.seek_forward(&Some(old_locator), Bias::Left); if cursor.item().is_none() { - cursor.next(&()); + cursor.next(); } let next_excerpt = cursor.item(); @@ -5211,13 +5202,13 @@ impl MultiBufferSnapshot { // Find the given position in the diff transforms. Determine the corresponding // offset in the excerpts, and whether the position is within a deleted hunk. let mut diff_transforms = self.diff_transforms.cursor::<(usize, ExcerptOffset)>(&()); - diff_transforms.seek(&offset, Bias::Right, &()); + diff_transforms.seek(&offset, Bias::Right); if offset == diff_transforms.start().0 && bias == Bias::Left { if let Some(prev_item) = diff_transforms.prev_item() { match prev_item { DiffTransform::DeletedHunk { .. } => { - diff_transforms.prev(&()); + diff_transforms.prev(); } _ => {} } @@ -5260,13 +5251,13 @@ impl MultiBufferSnapshot { let mut excerpts = self .excerpts .cursor::<(ExcerptOffset, Option)>(&()); - excerpts.seek(&excerpt_offset, Bias::Right, &()); + excerpts.seek(&excerpt_offset, Bias::Right); if excerpts.item().is_none() && excerpt_offset == excerpts.start().0 && bias == Bias::Left { - excerpts.prev(&()); + excerpts.prev(); } if let Some(excerpt) = excerpts.item() { let mut overshoot = excerpt_offset.saturating_sub(excerpts.start().0).value; - if excerpt.has_trailing_newline && excerpt_offset == excerpts.end(&()).0 { + if excerpt.has_trailing_newline && excerpt_offset == excerpts.end().0 { overshoot -= 1; bias = Bias::Right; } @@ -5297,7 +5288,7 @@ impl MultiBufferSnapshot { let excerpt_id = self.latest_excerpt_id(excerpt_id); let locator = self.excerpt_locator_for_id(excerpt_id); let mut cursor = self.excerpts.cursor::>(&()); - cursor.seek(locator, Bias::Left, &()); + cursor.seek(locator, Bias::Left); if let Some(excerpt) = cursor.item() { if excerpt.id == excerpt_id { let text_anchor = excerpt.clip_anchor(text_anchor); @@ -5351,13 +5342,13 @@ impl MultiBufferSnapshot { let mut excerpts = self .excerpts .cursor::<(Option<&Locator>, ExcerptDimension)>(&()); - excerpts.seek(&Some(start_locator), Bias::Left, &()); - excerpts.prev(&()); + excerpts.seek(&Some(start_locator), Bias::Left); + excerpts.prev(); let mut diff_transforms = self.diff_transforms.cursor::>(&()); - diff_transforms.seek(&excerpts.start().1, Bias::Left, &()); - if diff_transforms.end(&()).excerpt_dimension < excerpts.start().1 { - diff_transforms.next(&()); + diff_transforms.seek(&excerpts.start().1, Bias::Left); + if diff_transforms.end().excerpt_dimension < excerpts.start().1 { + diff_transforms.next(); } let excerpt = excerpts.item()?; @@ -6193,7 +6184,7 @@ impl MultiBufferSnapshot { Locator::max_ref() } else { let mut cursor = self.excerpt_ids.cursor::(&()); - cursor.seek(&id, Bias::Left, &()); + cursor.seek(&id, Bias::Left); if let Some(entry) = cursor.item() { if entry.id == id { return &entry.locator; @@ -6229,7 +6220,7 @@ impl MultiBufferSnapshot { let mut cursor = self.excerpt_ids.cursor::(&()); for id in sorted_ids { - if cursor.seek_forward(&id, Bias::Left, &()) { + if cursor.seek_forward(&id, Bias::Left) { locators.push(cursor.item().unwrap().locator.clone()); } else { panic!("invalid excerpt id {:?}", id); @@ -6253,16 +6244,16 @@ impl MultiBufferSnapshot { .excerpts .cursor::<(Option<&Locator>, ExcerptDimension)>(&()); let locator = self.excerpt_locator_for_id(excerpt_id); - if cursor.seek(&Some(locator), Bias::Left, &()) { + if cursor.seek(&Some(locator), Bias::Left) { let start = cursor.start().1.clone(); - let end = cursor.end(&()).1; + let end = cursor.end().1; let mut diff_transforms = self .diff_transforms .cursor::<(ExcerptDimension, OutputDimension)>(&()); - diff_transforms.seek(&start, Bias::Left, &()); + diff_transforms.seek(&start, Bias::Left); let overshoot = start.0 - diff_transforms.start().0.0; let start = diff_transforms.start().1.0 + overshoot; - diff_transforms.seek(&end, Bias::Right, &()); + diff_transforms.seek(&end, Bias::Right); let overshoot = end.0 - diff_transforms.start().0.0; let end = diff_transforms.start().1.0 + overshoot; Some(start..end) @@ -6274,7 +6265,7 @@ impl MultiBufferSnapshot { pub fn buffer_range_for_excerpt(&self, excerpt_id: ExcerptId) -> Option> { let mut cursor = self.excerpts.cursor::>(&()); let locator = self.excerpt_locator_for_id(excerpt_id); - if cursor.seek(&Some(locator), Bias::Left, &()) { + if cursor.seek(&Some(locator), Bias::Left) { if let Some(excerpt) = cursor.item() { return Some(excerpt.range.context.clone()); } @@ -6285,7 +6276,7 @@ impl MultiBufferSnapshot { fn excerpt(&self, excerpt_id: ExcerptId) -> Option<&Excerpt> { let mut cursor = self.excerpts.cursor::>(&()); let locator = self.excerpt_locator_for_id(excerpt_id); - cursor.seek(&Some(locator), Bias::Left, &()); + cursor.seek(&Some(locator), Bias::Left); if let Some(excerpt) = cursor.item() { if excerpt.id == excerpt_id { return Some(excerpt); @@ -6333,7 +6324,7 @@ impl MultiBufferSnapshot { let mut cursor = self.excerpts.cursor::(&()); let start_locator = self.excerpt_locator_for_id(range.start.excerpt_id); let end_locator = self.excerpt_locator_for_id(range.end.excerpt_id); - cursor.seek(start_locator, Bias::Left, &()); + cursor.seek(start_locator, Bias::Left); cursor .take_while(move |excerpt| excerpt.locator <= *end_locator) .flat_map(move |excerpt| { @@ -6472,11 +6463,11 @@ where fn seek(&mut self, position: &D) { self.cached_region.take(); self.diff_transforms - .seek(&OutputDimension(*position), Bias::Right, &()); + .seek(&OutputDimension(*position), Bias::Right); if self.diff_transforms.item().is_none() && *position == self.diff_transforms.start().output_dimension.0 { - self.diff_transforms.prev(&()); + self.diff_transforms.prev(); } let mut excerpt_position = self.diff_transforms.start().excerpt_dimension.0; @@ -6486,20 +6477,20 @@ where } self.excerpts - .seek(&ExcerptDimension(excerpt_position), Bias::Right, &()); + .seek(&ExcerptDimension(excerpt_position), Bias::Right); if self.excerpts.item().is_none() && excerpt_position == self.excerpts.start().0 { - self.excerpts.prev(&()); + self.excerpts.prev(); } } fn seek_forward(&mut self, position: &D) { self.cached_region.take(); self.diff_transforms - .seek_forward(&OutputDimension(*position), Bias::Right, &()); + .seek_forward(&OutputDimension(*position), Bias::Right); if self.diff_transforms.item().is_none() && *position == self.diff_transforms.start().output_dimension.0 { - self.diff_transforms.prev(&()); + self.diff_transforms.prev(); } let overshoot = *position - self.diff_transforms.start().output_dimension.0; @@ -6509,31 +6500,30 @@ where } self.excerpts - .seek_forward(&ExcerptDimension(excerpt_position), Bias::Right, &()); + .seek_forward(&ExcerptDimension(excerpt_position), Bias::Right); if self.excerpts.item().is_none() && excerpt_position == self.excerpts.start().0 { - self.excerpts.prev(&()); + self.excerpts.prev(); } } fn next_excerpt(&mut self) { - self.excerpts.next(&()); + self.excerpts.next(); self.seek_to_start_of_current_excerpt(); } fn prev_excerpt(&mut self) { - self.excerpts.prev(&()); + self.excerpts.prev(); self.seek_to_start_of_current_excerpt(); } fn seek_to_start_of_current_excerpt(&mut self) { self.cached_region.take(); - self.diff_transforms - .seek(self.excerpts.start(), Bias::Left, &()); - if self.diff_transforms.end(&()).excerpt_dimension == *self.excerpts.start() + self.diff_transforms.seek(self.excerpts.start(), Bias::Left); + if self.diff_transforms.end().excerpt_dimension == *self.excerpts.start() && self.diff_transforms.start().excerpt_dimension < *self.excerpts.start() && self.diff_transforms.next_item().is_some() { - self.diff_transforms.next(&()); + self.diff_transforms.next(); } } @@ -6541,18 +6531,18 @@ where self.cached_region.take(); match self .diff_transforms - .end(&()) + .end() .excerpt_dimension - .cmp(&self.excerpts.end(&())) + .cmp(&self.excerpts.end()) { - cmp::Ordering::Less => self.diff_transforms.next(&()), - cmp::Ordering::Greater => self.excerpts.next(&()), + cmp::Ordering::Less => self.diff_transforms.next(), + cmp::Ordering::Greater => self.excerpts.next(), cmp::Ordering::Equal => { - self.diff_transforms.next(&()); - if self.diff_transforms.end(&()).excerpt_dimension > self.excerpts.end(&()) + self.diff_transforms.next(); + if self.diff_transforms.end().excerpt_dimension > self.excerpts.end() || self.diff_transforms.item().is_none() { - self.excerpts.next(&()); + self.excerpts.next(); } else if let Some(DiffTransform::DeletedHunk { hunk_info, .. }) = self.diff_transforms.item() { @@ -6561,7 +6551,7 @@ where .item() .map_or(false, |excerpt| excerpt.id != hunk_info.excerpt_id) { - self.excerpts.next(&()); + self.excerpts.next(); } } } @@ -6576,14 +6566,14 @@ where .excerpt_dimension .cmp(self.excerpts.start()) { - cmp::Ordering::Less => self.excerpts.prev(&()), - cmp::Ordering::Greater => self.diff_transforms.prev(&()), + cmp::Ordering::Less => self.excerpts.prev(), + cmp::Ordering::Greater => self.diff_transforms.prev(), cmp::Ordering::Equal => { - self.diff_transforms.prev(&()); + self.diff_transforms.prev(); if self.diff_transforms.start().excerpt_dimension < *self.excerpts.start() || self.diff_transforms.item().is_none() { - self.excerpts.prev(&()); + self.excerpts.prev(); } } } @@ -6603,9 +6593,9 @@ where return true; } - self.diff_transforms.prev(&()); + self.diff_transforms.prev(); let prev_transform = self.diff_transforms.item(); - self.diff_transforms.next(&()); + self.diff_transforms.next(); prev_transform.map_or(true, |next_transform| { matches!(next_transform, DiffTransform::BufferContent { .. }) @@ -6613,9 +6603,9 @@ where } fn is_at_end_of_excerpt(&mut self) -> bool { - if self.diff_transforms.end(&()).excerpt_dimension < self.excerpts.end(&()) { + if self.diff_transforms.end().excerpt_dimension < self.excerpts.end() { return false; - } else if self.diff_transforms.end(&()).excerpt_dimension > self.excerpts.end(&()) + } else if self.diff_transforms.end().excerpt_dimension > self.excerpts.end() || self.diff_transforms.item().is_none() { return true; @@ -6636,7 +6626,7 @@ where let buffer = &excerpt.buffer; let buffer_context_start = excerpt.range.context.start.summary::(buffer); let mut buffer_start = buffer_context_start; - let overshoot = self.diff_transforms.end(&()).excerpt_dimension.0 - self.excerpts.start().0; + let overshoot = self.diff_transforms.end().excerpt_dimension.0 - self.excerpts.start().0; buffer_start.add_assign(&overshoot); Some(buffer_start) } @@ -6659,7 +6649,7 @@ where let mut buffer_end = buffer_start; buffer_end.add_assign(&buffer_range_len); let start = self.diff_transforms.start().output_dimension.0; - let end = self.diff_transforms.end(&()).output_dimension.0; + let end = self.diff_transforms.end().output_dimension.0; return Some(MultiBufferRegion { buffer, excerpt, @@ -6693,16 +6683,16 @@ where let mut end; let mut buffer_end; let has_trailing_newline; - if self.diff_transforms.end(&()).excerpt_dimension.0 < self.excerpts.end(&()).0 { + if self.diff_transforms.end().excerpt_dimension.0 < self.excerpts.end().0 { let overshoot = - self.diff_transforms.end(&()).excerpt_dimension.0 - self.excerpts.start().0; - end = self.diff_transforms.end(&()).output_dimension.0; + self.diff_transforms.end().excerpt_dimension.0 - self.excerpts.start().0; + end = self.diff_transforms.end().output_dimension.0; buffer_end = buffer_context_start; buffer_end.add_assign(&overshoot); has_trailing_newline = false; } else { let overshoot = - self.excerpts.end(&()).0 - self.diff_transforms.start().excerpt_dimension.0; + self.excerpts.end().0 - self.diff_transforms.start().excerpt_dimension.0; end = self.diff_transforms.start().output_dimension.0; end.add_assign(&overshoot); buffer_end = excerpt.range.context.end.summary::(buffer); @@ -7086,11 +7076,11 @@ impl<'a> MultiBufferExcerpt<'a> { /// Maps a range within the [`MultiBuffer`] to a range within the [`Buffer`] pub fn map_range_to_buffer(&mut self, range: Range) -> Range { self.diff_transforms - .seek(&OutputDimension(range.start), Bias::Right, &()); + .seek(&OutputDimension(range.start), Bias::Right); let start = self.map_offset_to_buffer_internal(range.start); let end = if range.end > range.start { self.diff_transforms - .seek_forward(&OutputDimension(range.end), Bias::Right, &()); + .seek_forward(&OutputDimension(range.end), Bias::Right); self.map_offset_to_buffer_internal(range.end) } else { start @@ -7123,7 +7113,7 @@ impl<'a> MultiBufferExcerpt<'a> { } let overshoot = buffer_range.start - self.buffer_offset; let excerpt_offset = ExcerptDimension(self.excerpt_offset.0 + overshoot); - self.diff_transforms.seek(&excerpt_offset, Bias::Right, &()); + self.diff_transforms.seek(&excerpt_offset, Bias::Right); if excerpt_offset.0 < self.diff_transforms.start().excerpt_dimension.0 { log::warn!( "Attempting to map a range from a buffer offset that starts before the current buffer offset" @@ -7137,7 +7127,7 @@ impl<'a> MultiBufferExcerpt<'a> { let overshoot = buffer_range.end - self.buffer_offset; let excerpt_offset = ExcerptDimension(self.excerpt_offset.0 + overshoot); self.diff_transforms - .seek_forward(&excerpt_offset, Bias::Right, &()); + .seek_forward(&excerpt_offset, Bias::Right); let overshoot = excerpt_offset.0 - self.diff_transforms.start().excerpt_dimension.0; self.diff_transforms.start().output_dimension.0 + overshoot } else { @@ -7509,7 +7499,7 @@ impl Iterator for MultiBufferRows<'_> { if let Some(next_region) = self.cursor.region() { region = next_region; } else { - if self.point == self.cursor.diff_transforms.end(&()).output_dimension.0 { + if self.point == self.cursor.diff_transforms.end().output_dimension.0 { let multibuffer_row = MultiBufferRow(self.point.row); let last_excerpt = self .cursor @@ -7615,14 +7605,14 @@ impl<'a> MultiBufferChunks<'a> { } pub fn seek(&mut self, range: Range) { - self.diff_transforms.seek(&range.end, Bias::Right, &()); + self.diff_transforms.seek(&range.end, Bias::Right); let mut excerpt_end = self.diff_transforms.start().1; if let Some(DiffTransform::BufferContent { .. }) = self.diff_transforms.item() { let overshoot = range.end - self.diff_transforms.start().0; excerpt_end.value += overshoot; } - self.diff_transforms.seek(&range.start, Bias::Right, &()); + self.diff_transforms.seek(&range.start, Bias::Right); let mut excerpt_start = self.diff_transforms.start().1; if let Some(DiffTransform::BufferContent { .. }) = self.diff_transforms.item() { let overshoot = range.start - self.diff_transforms.start().0; @@ -7636,7 +7626,7 @@ impl<'a> MultiBufferChunks<'a> { fn seek_to_excerpt_offset_range(&mut self, new_range: Range) { self.excerpt_offset_range = new_range.clone(); - self.excerpts.seek(&new_range.start, Bias::Right, &()); + self.excerpts.seek(&new_range.start, Bias::Right); if let Some(excerpt) = self.excerpts.item() { let excerpt_start = *self.excerpts.start(); if let Some(excerpt_chunks) = self @@ -7669,7 +7659,7 @@ impl<'a> MultiBufferChunks<'a> { self.excerpt_offset_range.start.value += chunk.text.len(); return Some(chunk); } else { - self.excerpts.next(&()); + self.excerpts.next(); let excerpt = self.excerpts.item()?; self.excerpt_chunks = Some(excerpt.chunks_in_range( 0..(self.excerpt_offset_range.end - *self.excerpts.start()).value, @@ -7712,12 +7702,12 @@ impl<'a> Iterator for MultiBufferChunks<'a> { if self.range.start >= self.range.end { return None; } - if self.range.start == self.diff_transforms.end(&()).0 { - self.diff_transforms.next(&()); + if self.range.start == self.diff_transforms.end().0 { + self.diff_transforms.next(); } let diff_transform_start = self.diff_transforms.start().0; - let diff_transform_end = self.diff_transforms.end(&()).0; + let diff_transform_end = self.diff_transforms.end().0; debug_assert!(self.range.start < diff_transform_end); let diff_transform = self.diff_transforms.item()?; diff --git a/crates/notifications/src/notification_store.rs b/crates/notifications/src/notification_store.rs index c2f18e5700..0329a53cc7 100644 --- a/crates/notifications/src/notification_store.rs +++ b/crates/notifications/src/notification_store.rs @@ -132,12 +132,12 @@ impl NotificationStore { } let ix = count - 1 - ix; let mut cursor = self.notifications.cursor::(&()); - cursor.seek(&Count(ix), Bias::Right, &()); + cursor.seek(&Count(ix), Bias::Right); cursor.item() } pub fn notification_for_id(&self, id: u64) -> Option<&NotificationEntry> { let mut cursor = self.notifications.cursor::(&()); - cursor.seek(&NotificationId(id), Bias::Left, &()); + cursor.seek(&NotificationId(id), Bias::Left); if let Some(item) = cursor.item() { if item.id == id { return Some(item); @@ -365,7 +365,7 @@ impl NotificationStore { let mut old_range = 0..0; for (i, (id, new_notification)) in notifications.into_iter().enumerate() { - new_notifications.append(cursor.slice(&NotificationId(id), Bias::Left, &()), &()); + new_notifications.append(cursor.slice(&NotificationId(id), Bias::Left), &()); if i == 0 { old_range.start = cursor.start().1.0; @@ -374,7 +374,7 @@ impl NotificationStore { let old_notification = cursor.item(); if let Some(old_notification) = old_notification { if old_notification.id == id { - cursor.next(&()); + cursor.next(); if let Some(new_notification) = &new_notification { if new_notification.is_read { @@ -403,7 +403,7 @@ impl NotificationStore { old_range.end = cursor.start().1.0; let new_count = new_notifications.summary().count - old_range.start; - new_notifications.append(cursor.suffix(&()), &()); + new_notifications.append(cursor.suffix(), &()); drop(cursor); self.notifications = new_notifications; diff --git a/crates/project/src/git_store.rs b/crates/project/src/git_store.rs index 6e3d27deff..eb16446daf 100644 --- a/crates/project/src/git_store.rs +++ b/crates/project/src/git_store.rs @@ -4279,7 +4279,7 @@ impl Repository { for (repo_path, status) in &*statuses.entries { changed_paths.remove(repo_path); - if cursor.seek_forward(&PathTarget::Path(repo_path), Bias::Left, &()) { + if cursor.seek_forward(&PathTarget::Path(repo_path), Bias::Left) { if cursor.item().is_some_and(|entry| entry.status == *status) { continue; } @@ -4292,7 +4292,7 @@ impl Repository { } let mut cursor = prev_statuses.cursor::(&()); for path in changed_paths.into_iter() { - if cursor.seek_forward(&PathTarget::Path(&path), Bias::Left, &()) { + if cursor.seek_forward(&PathTarget::Path(&path), Bias::Left) { changed_path_statuses.push(Edit::Remove(PathKey(path.0))); } } diff --git a/crates/project/src/git_store/git_traversal.rs b/crates/project/src/git_store/git_traversal.rs index 68ed03cfe9..cd173d5714 100644 --- a/crates/project/src/git_store/git_traversal.rs +++ b/crates/project/src/git_store/git_traversal.rs @@ -72,14 +72,13 @@ impl<'a> GitTraversal<'a> { if entry.is_dir() { let mut statuses = statuses.clone(); - statuses.seek_forward(&PathTarget::Path(repo_path.as_ref()), Bias::Left, &()); - let summary = - statuses.summary(&PathTarget::Successor(repo_path.as_ref()), Bias::Left, &()); + statuses.seek_forward(&PathTarget::Path(repo_path.as_ref()), Bias::Left); + let summary = statuses.summary(&PathTarget::Successor(repo_path.as_ref()), Bias::Left); self.current_entry_summary = Some(summary); } else if entry.is_file() { // For a file entry, park the cursor on the corresponding status - if statuses.seek_forward(&PathTarget::Path(repo_path.as_ref()), Bias::Left, &()) { + if statuses.seek_forward(&PathTarget::Path(repo_path.as_ref()), Bias::Left) { // TODO: Investigate statuses.item() being None here. self.current_entry_summary = statuses.item().map(|item| item.status.into()); } else { diff --git a/crates/rope/src/rope.rs b/crates/rope/src/rope.rs index 535b863b7d..515cd71331 100644 --- a/crates/rope/src/rope.rs +++ b/crates/rope/src/rope.rs @@ -41,9 +41,9 @@ impl Rope { self.push_chunk(chunk.as_slice()); let mut chunks = rope.chunks.cursor::<()>(&()); - chunks.next(&()); - chunks.next(&()); - self.chunks.append(chunks.suffix(&()), &()); + chunks.next(); + chunks.next(); + self.chunks.append(chunks.suffix(), &()); self.check_invariants(); return; } @@ -283,7 +283,7 @@ impl Rope { return self.summary().len_utf16; } let mut cursor = self.chunks.cursor::<(usize, OffsetUtf16)>(&()); - cursor.seek(&offset, Bias::Left, &()); + cursor.seek(&offset, Bias::Left); let overshoot = offset - cursor.start().0; cursor.start().1 + cursor.item().map_or(Default::default(), |chunk| { @@ -296,7 +296,7 @@ impl Rope { return self.summary().len; } let mut cursor = self.chunks.cursor::<(OffsetUtf16, usize)>(&()); - cursor.seek(&offset, Bias::Left, &()); + cursor.seek(&offset, Bias::Left); let overshoot = offset - cursor.start().0; cursor.start().1 + cursor.item().map_or(Default::default(), |chunk| { @@ -309,7 +309,7 @@ impl Rope { return self.summary().lines; } let mut cursor = self.chunks.cursor::<(usize, Point)>(&()); - cursor.seek(&offset, Bias::Left, &()); + cursor.seek(&offset, Bias::Left); let overshoot = offset - cursor.start().0; cursor.start().1 + cursor.item().map_or(Point::zero(), |chunk| { @@ -322,7 +322,7 @@ impl Rope { return self.summary().lines_utf16(); } let mut cursor = self.chunks.cursor::<(usize, PointUtf16)>(&()); - cursor.seek(&offset, Bias::Left, &()); + cursor.seek(&offset, Bias::Left); let overshoot = offset - cursor.start().0; cursor.start().1 + cursor.item().map_or(PointUtf16::zero(), |chunk| { @@ -335,7 +335,7 @@ impl Rope { return self.summary().lines_utf16(); } let mut cursor = self.chunks.cursor::<(Point, PointUtf16)>(&()); - cursor.seek(&point, Bias::Left, &()); + cursor.seek(&point, Bias::Left); let overshoot = point - cursor.start().0; cursor.start().1 + cursor.item().map_or(PointUtf16::zero(), |chunk| { @@ -348,7 +348,7 @@ impl Rope { return self.summary().len; } let mut cursor = self.chunks.cursor::<(Point, usize)>(&()); - cursor.seek(&point, Bias::Left, &()); + cursor.seek(&point, Bias::Left); let overshoot = point - cursor.start().0; cursor.start().1 + cursor @@ -369,7 +369,7 @@ impl Rope { return self.summary().len; } let mut cursor = self.chunks.cursor::<(PointUtf16, usize)>(&()); - cursor.seek(&point, Bias::Left, &()); + cursor.seek(&point, Bias::Left); let overshoot = point - cursor.start().0; cursor.start().1 + cursor.item().map_or(0, |chunk| { @@ -382,7 +382,7 @@ impl Rope { return self.summary().lines; } let mut cursor = self.chunks.cursor::<(PointUtf16, Point)>(&()); - cursor.seek(&point.0, Bias::Left, &()); + cursor.seek(&point.0, Bias::Left); let overshoot = Unclipped(point.0 - cursor.start().0); cursor.start().1 + cursor.item().map_or(Point::zero(), |chunk| { @@ -392,7 +392,7 @@ impl Rope { pub fn clip_offset(&self, mut offset: usize, bias: Bias) -> usize { let mut cursor = self.chunks.cursor::(&()); - cursor.seek(&offset, Bias::Left, &()); + cursor.seek(&offset, Bias::Left); if let Some(chunk) = cursor.item() { let mut ix = offset - cursor.start(); while !chunk.text.is_char_boundary(ix) { @@ -415,7 +415,7 @@ impl Rope { pub fn clip_offset_utf16(&self, offset: OffsetUtf16, bias: Bias) -> OffsetUtf16 { let mut cursor = self.chunks.cursor::(&()); - cursor.seek(&offset, Bias::Right, &()); + cursor.seek(&offset, Bias::Right); if let Some(chunk) = cursor.item() { let overshoot = offset - cursor.start(); *cursor.start() + chunk.as_slice().clip_offset_utf16(overshoot, bias) @@ -426,7 +426,7 @@ impl Rope { pub fn clip_point(&self, point: Point, bias: Bias) -> Point { let mut cursor = self.chunks.cursor::(&()); - cursor.seek(&point, Bias::Right, &()); + cursor.seek(&point, Bias::Right); if let Some(chunk) = cursor.item() { let overshoot = point - cursor.start(); *cursor.start() + chunk.as_slice().clip_point(overshoot, bias) @@ -437,7 +437,7 @@ impl Rope { pub fn clip_point_utf16(&self, point: Unclipped, bias: Bias) -> PointUtf16 { let mut cursor = self.chunks.cursor::(&()); - cursor.seek(&point.0, Bias::Right, &()); + cursor.seek(&point.0, Bias::Right); if let Some(chunk) = cursor.item() { let overshoot = Unclipped(point.0 - cursor.start()); *cursor.start() + chunk.as_slice().clip_point_utf16(overshoot, bias) @@ -450,10 +450,6 @@ impl Rope { self.clip_point(Point::new(row, u32::MAX), Bias::Left) .column } - - pub fn ptr_eq(&self, other: &Self) -> bool { - self.chunks.ptr_eq(&other.chunks) - } } impl<'a> From<&'a str> for Rope { @@ -514,7 +510,7 @@ pub struct Cursor<'a> { impl<'a> Cursor<'a> { pub fn new(rope: &'a Rope, offset: usize) -> Self { let mut chunks = rope.chunks.cursor(&()); - chunks.seek(&offset, Bias::Right, &()); + chunks.seek(&offset, Bias::Right); Self { rope, chunks, @@ -525,7 +521,7 @@ impl<'a> Cursor<'a> { pub fn seek_forward(&mut self, end_offset: usize) { debug_assert!(end_offset >= self.offset); - self.chunks.seek_forward(&end_offset, Bias::Right, &()); + self.chunks.seek_forward(&end_offset, Bias::Right); self.offset = end_offset; } @@ -540,14 +536,14 @@ impl<'a> Cursor<'a> { let mut slice = Rope::new(); if let Some(start_chunk) = self.chunks.item() { let start_ix = self.offset - self.chunks.start(); - let end_ix = cmp::min(end_offset, self.chunks.end(&())) - self.chunks.start(); + let end_ix = cmp::min(end_offset, self.chunks.end()) - self.chunks.start(); slice.push_chunk(start_chunk.slice(start_ix..end_ix)); } - if end_offset > self.chunks.end(&()) { - self.chunks.next(&()); + if end_offset > self.chunks.end() { + self.chunks.next(); slice.append(Rope { - chunks: self.chunks.slice(&end_offset, Bias::Right, &()), + chunks: self.chunks.slice(&end_offset, Bias::Right), }); if let Some(end_chunk) = self.chunks.item() { let end_ix = end_offset - self.chunks.start(); @@ -565,13 +561,13 @@ impl<'a> Cursor<'a> { let mut summary = D::zero(&()); if let Some(start_chunk) = self.chunks.item() { let start_ix = self.offset - self.chunks.start(); - let end_ix = cmp::min(end_offset, self.chunks.end(&())) - self.chunks.start(); + let end_ix = cmp::min(end_offset, self.chunks.end()) - self.chunks.start(); summary.add_assign(&D::from_chunk(start_chunk.slice(start_ix..end_ix))); } - if end_offset > self.chunks.end(&()) { - self.chunks.next(&()); - summary.add_assign(&self.chunks.summary(&end_offset, Bias::Right, &())); + if end_offset > self.chunks.end() { + self.chunks.next(); + summary.add_assign(&self.chunks.summary(&end_offset, Bias::Right)); if let Some(end_chunk) = self.chunks.item() { let end_ix = end_offset - self.chunks.start(); summary.add_assign(&D::from_chunk(end_chunk.slice(0..end_ix))); @@ -603,10 +599,10 @@ impl<'a> Chunks<'a> { pub fn new(rope: &'a Rope, range: Range, reversed: bool) -> Self { let mut chunks = rope.chunks.cursor(&()); let offset = if reversed { - chunks.seek(&range.end, Bias::Left, &()); + chunks.seek(&range.end, Bias::Left); range.end } else { - chunks.seek(&range.start, Bias::Right, &()); + chunks.seek(&range.start, Bias::Right); range.start }; Self { @@ -642,10 +638,10 @@ impl<'a> Chunks<'a> { Bias::Right }; - if offset >= self.chunks.end(&()) { - self.chunks.seek_forward(&offset, bias, &()); + if offset >= self.chunks.end() { + self.chunks.seek_forward(&offset, bias); } else { - self.chunks.seek(&offset, bias, &()); + self.chunks.seek(&offset, bias); } self.offset = offset; @@ -674,25 +670,25 @@ impl<'a> Chunks<'a> { found = self.offset <= self.range.end; } else { self.chunks - .search_forward(|summary| summary.text.lines.row > 0, &()); + .search_forward(|summary| summary.text.lines.row > 0); self.offset = *self.chunks.start(); if let Some(newline_ix) = self.peek().and_then(|chunk| chunk.find('\n')) { self.offset += newline_ix + 1; found = self.offset <= self.range.end; } else { - self.offset = self.chunks.end(&()); + self.offset = self.chunks.end(); } } - if self.offset == self.chunks.end(&()) { + if self.offset == self.chunks.end() { self.next(); } } if self.offset > self.range.end { self.offset = cmp::min(self.offset, self.range.end); - self.chunks.seek(&self.offset, Bias::Right, &()); + self.chunks.seek(&self.offset, Bias::Right); } found @@ -711,7 +707,7 @@ impl<'a> Chunks<'a> { let initial_offset = self.offset; if self.offset == *self.chunks.start() { - self.chunks.prev(&()); + self.chunks.prev(); } if let Some(chunk) = self.chunks.item() { @@ -729,14 +725,14 @@ impl<'a> Chunks<'a> { } self.chunks - .search_backward(|summary| summary.text.lines.row > 0, &()); + .search_backward(|summary| summary.text.lines.row > 0); self.offset = *self.chunks.start(); if let Some(chunk) = self.chunks.item() { if let Some(newline_ix) = chunk.text.rfind('\n') { self.offset += newline_ix + 1; if self.offset_is_valid() { - if self.offset == self.chunks.end(&()) { - self.chunks.next(&()); + if self.offset == self.chunks.end() { + self.chunks.next(); } return true; @@ -746,7 +742,7 @@ impl<'a> Chunks<'a> { if !self.offset_is_valid() || self.chunks.item().is_none() { self.offset = self.range.start; - self.chunks.seek(&self.offset, Bias::Right, &()); + self.chunks.seek(&self.offset, Bias::Right); } self.offset < initial_offset && self.offset == 0 @@ -765,7 +761,7 @@ impl<'a> Chunks<'a> { slice_start..slice_end } else { let slice_start = self.offset - chunk_start; - let slice_end = cmp::min(self.chunks.end(&()), self.range.end) - chunk_start; + let slice_end = cmp::min(self.chunks.end(), self.range.end) - chunk_start; slice_start..slice_end }; @@ -825,12 +821,12 @@ impl<'a> Iterator for Chunks<'a> { if self.reversed { self.offset -= chunk.len(); if self.offset <= *self.chunks.start() { - self.chunks.prev(&()); + self.chunks.prev(); } } else { self.offset += chunk.len(); - if self.offset >= self.chunks.end(&()) { - self.chunks.next(&()); + if self.offset >= self.chunks.end() { + self.chunks.next(); } } @@ -848,9 +844,9 @@ impl<'a> Bytes<'a> { pub fn new(rope: &'a Rope, range: Range, reversed: bool) -> Self { let mut chunks = rope.chunks.cursor(&()); if reversed { - chunks.seek(&range.end, Bias::Left, &()); + chunks.seek(&range.end, Bias::Left); } else { - chunks.seek(&range.start, Bias::Right, &()); + chunks.seek(&range.start, Bias::Right); } Self { chunks, @@ -861,7 +857,7 @@ impl<'a> Bytes<'a> { pub fn peek(&self) -> Option<&'a [u8]> { let chunk = self.chunks.item()?; - if self.reversed && self.range.start >= self.chunks.end(&()) { + if self.reversed && self.range.start >= self.chunks.end() { return None; } let chunk_start = *self.chunks.start(); @@ -881,9 +877,9 @@ impl<'a> Iterator for Bytes<'a> { let result = self.peek(); if result.is_some() { if self.reversed { - self.chunks.prev(&()); + self.chunks.prev(); } else { - self.chunks.next(&()); + self.chunks.next(); } } result @@ -905,9 +901,9 @@ impl io::Read for Bytes<'_> { if len == chunk.len() { if self.reversed { - self.chunks.prev(&()); + self.chunks.prev(); } else { - self.chunks.next(&()); + self.chunks.next(); } } Ok(len) diff --git a/crates/sum_tree/src/cursor.rs b/crates/sum_tree/src/cursor.rs index 8edd04afce..50a556a6d2 100644 --- a/crates/sum_tree/src/cursor.rs +++ b/crates/sum_tree/src/cursor.rs @@ -25,6 +25,7 @@ pub struct Cursor<'a, T: Item, D> { position: D, did_seek: bool, at_end: bool, + cx: &'a ::Context, } impl fmt::Debug for Cursor<'_, T, D> @@ -52,21 +53,22 @@ where T: Item, D: Dimension<'a, T::Summary>, { - pub fn new(tree: &'a SumTree, cx: &::Context) -> Self { + pub fn new(tree: &'a SumTree, cx: &'a ::Context) -> Self { Self { tree, stack: ArrayVec::new(), position: D::zero(cx), did_seek: false, at_end: tree.is_empty(), + cx, } } - fn reset(&mut self, cx: &::Context) { + fn reset(&mut self) { self.did_seek = false; self.at_end = self.tree.is_empty(); self.stack.truncate(0); - self.position = D::zero(cx); + self.position = D::zero(self.cx); } pub fn start(&self) -> &D { @@ -74,10 +76,10 @@ where } #[track_caller] - pub fn end(&self, cx: &::Context) -> D { + pub fn end(&self) -> D { if let Some(item_summary) = self.item_summary() { let mut end = self.start().clone(); - end.add_summary(item_summary, cx); + end.add_summary(item_summary, self.cx); end } else { self.start().clone() @@ -202,12 +204,12 @@ where } #[track_caller] - pub fn prev(&mut self, cx: &::Context) { - self.search_backward(|_| true, cx) + pub fn prev(&mut self) { + self.search_backward(|_| true) } #[track_caller] - pub fn search_backward(&mut self, mut filter_node: F, cx: &::Context) + pub fn search_backward(&mut self, mut filter_node: F) where F: FnMut(&T::Summary) -> bool, { @@ -217,13 +219,13 @@ where } if self.at_end { - self.position = D::zero(cx); + self.position = D::zero(self.cx); self.at_end = self.tree.is_empty(); if !self.tree.is_empty() { self.stack.push(StackEntry { tree: self.tree, index: self.tree.0.child_summaries().len(), - position: D::from_summary(self.tree.summary(), cx), + position: D::from_summary(self.tree.summary(), self.cx), }); } } @@ -233,7 +235,7 @@ where if let Some(StackEntry { position, .. }) = self.stack.iter().rev().nth(1) { self.position = position.clone(); } else { - self.position = D::zero(cx); + self.position = D::zero(self.cx); } let entry = self.stack.last_mut().unwrap(); @@ -247,7 +249,7 @@ where } for summary in &entry.tree.0.child_summaries()[..entry.index] { - self.position.add_summary(summary, cx); + self.position.add_summary(summary, self.cx); } entry.position = self.position.clone(); @@ -257,7 +259,7 @@ where if descending { let tree = &child_trees[entry.index]; self.stack.push(StackEntry { - position: D::zero(cx), + position: D::zero(self.cx), tree, index: tree.0.child_summaries().len() - 1, }) @@ -273,12 +275,12 @@ where } #[track_caller] - pub fn next(&mut self, cx: &::Context) { - self.search_forward(|_| true, cx) + pub fn next(&mut self) { + self.search_forward(|_| true) } #[track_caller] - pub fn search_forward(&mut self, mut filter_node: F, cx: &::Context) + pub fn search_forward(&mut self, mut filter_node: F) where F: FnMut(&T::Summary) -> bool, { @@ -289,7 +291,7 @@ where self.stack.push(StackEntry { tree: self.tree, index: 0, - position: D::zero(cx), + position: D::zero(self.cx), }); descend = true; } @@ -316,8 +318,8 @@ where break; } else { entry.index += 1; - entry.position.add_summary(next_summary, cx); - self.position.add_summary(next_summary, cx); + entry.position.add_summary(next_summary, self.cx); + self.position.add_summary(next_summary, self.cx); } } @@ -327,8 +329,8 @@ where if !descend { let item_summary = &item_summaries[entry.index]; entry.index += 1; - entry.position.add_summary(item_summary, cx); - self.position.add_summary(item_summary, cx); + entry.position.add_summary(item_summary, self.cx); + self.position.add_summary(item_summary, self.cx); } loop { @@ -337,8 +339,8 @@ where return; } else { entry.index += 1; - entry.position.add_summary(next_item_summary, cx); - self.position.add_summary(next_item_summary, cx); + entry.position.add_summary(next_item_summary, self.cx); + self.position.add_summary(next_item_summary, self.cx); } } else { break None; @@ -380,71 +382,51 @@ where D: Dimension<'a, T::Summary>, { #[track_caller] - pub fn seek( - &mut self, - pos: &Target, - bias: Bias, - cx: &::Context, - ) -> bool + pub fn seek(&mut self, pos: &Target, bias: Bias) -> bool where Target: SeekTarget<'a, T::Summary, D>, { - self.reset(cx); - self.seek_internal(pos, bias, &mut (), cx) + self.reset(); + self.seek_internal(pos, bias, &mut ()) } #[track_caller] - pub fn seek_forward( - &mut self, - pos: &Target, - bias: Bias, - cx: &::Context, - ) -> bool + pub fn seek_forward(&mut self, pos: &Target, bias: Bias) -> bool where Target: SeekTarget<'a, T::Summary, D>, { - self.seek_internal(pos, bias, &mut (), cx) + self.seek_internal(pos, bias, &mut ()) } /// Advances the cursor and returns traversed items as a tree. #[track_caller] - pub fn slice( - &mut self, - end: &Target, - bias: Bias, - cx: &::Context, - ) -> SumTree + pub fn slice(&mut self, end: &Target, bias: Bias) -> SumTree where Target: SeekTarget<'a, T::Summary, D>, { let mut slice = SliceSeekAggregate { - tree: SumTree::new(cx), + tree: SumTree::new(self.cx), leaf_items: ArrayVec::new(), leaf_item_summaries: ArrayVec::new(), - leaf_summary: ::zero(cx), + leaf_summary: ::zero(self.cx), }; - self.seek_internal(end, bias, &mut slice, cx); + self.seek_internal(end, bias, &mut slice); slice.tree } #[track_caller] - pub fn suffix(&mut self, cx: &::Context) -> SumTree { - self.slice(&End::new(), Bias::Right, cx) + pub fn suffix(&mut self) -> SumTree { + self.slice(&End::new(), Bias::Right) } #[track_caller] - pub fn summary( - &mut self, - end: &Target, - bias: Bias, - cx: &::Context, - ) -> Output + pub fn summary(&mut self, end: &Target, bias: Bias) -> Output where Target: SeekTarget<'a, T::Summary, D>, Output: Dimension<'a, T::Summary>, { - let mut summary = SummarySeekAggregate(Output::zero(cx)); - self.seek_internal(end, bias, &mut summary, cx); + let mut summary = SummarySeekAggregate(Output::zero(self.cx)); + self.seek_internal(end, bias, &mut summary); summary.0 } @@ -455,10 +437,9 @@ where target: &dyn SeekTarget<'a, T::Summary, D>, bias: Bias, aggregate: &mut dyn SeekAggregate<'a, T>, - cx: &::Context, ) -> bool { assert!( - target.cmp(&self.position, cx) >= Ordering::Equal, + target.cmp(&self.position, self.cx) >= Ordering::Equal, "cannot seek backward", ); @@ -467,7 +448,7 @@ where self.stack.push(StackEntry { tree: self.tree, index: 0, - position: D::zero(cx), + position: D::zero(self.cx), }); } @@ -489,14 +470,14 @@ where .zip(&child_summaries[entry.index..]) { let mut child_end = self.position.clone(); - child_end.add_summary(child_summary, cx); + child_end.add_summary(child_summary, self.cx); - let comparison = target.cmp(&child_end, cx); + let comparison = target.cmp(&child_end, self.cx); if comparison == Ordering::Greater || (comparison == Ordering::Equal && bias == Bias::Right) { self.position = child_end; - aggregate.push_tree(child_tree, child_summary, cx); + aggregate.push_tree(child_tree, child_summary, self.cx); entry.index += 1; entry.position = self.position.clone(); } else { @@ -522,22 +503,22 @@ where .zip(&item_summaries[entry.index..]) { let mut child_end = self.position.clone(); - child_end.add_summary(item_summary, cx); + child_end.add_summary(item_summary, self.cx); - let comparison = target.cmp(&child_end, cx); + let comparison = target.cmp(&child_end, self.cx); if comparison == Ordering::Greater || (comparison == Ordering::Equal && bias == Bias::Right) { self.position = child_end; - aggregate.push_item(item, item_summary, cx); + aggregate.push_item(item, item_summary, self.cx); entry.index += 1; } else { - aggregate.end_leaf(cx); + aggregate.end_leaf(self.cx); break 'outer; } } - aggregate.end_leaf(cx); + aggregate.end_leaf(self.cx); } } @@ -551,11 +532,11 @@ where let mut end = self.position.clone(); if bias == Bias::Left { if let Some(summary) = self.item_summary() { - end.add_summary(summary, cx); + end.add_summary(summary, self.cx); } } - target.cmp(&end, cx) == Ordering::Equal + target.cmp(&end, self.cx) == Ordering::Equal } } @@ -624,21 +605,19 @@ impl<'a, T: Item> Iterator for Iter<'a, T> { } } -impl<'a, T, S, D> Iterator for Cursor<'a, T, D> +impl<'a, T: Item, D> Iterator for Cursor<'a, T, D> where - T: Item, - S: Summary, D: Dimension<'a, T::Summary>, { type Item = &'a T; fn next(&mut self) -> Option { if !self.did_seek { - self.next(&()); + self.next(); } if let Some(item) = self.item() { - self.next(&()); + self.next(); Some(item) } else { None @@ -651,7 +630,7 @@ pub struct FilterCursor<'a, F, T: Item, D> { filter_node: F, } -impl<'a, F, T, D> FilterCursor<'a, F, T, D> +impl<'a, F, T: Item, D> FilterCursor<'a, F, T, D> where F: FnMut(&T::Summary) -> bool, T: Item, @@ -659,7 +638,7 @@ where { pub fn new( tree: &'a SumTree, - cx: &::Context, + cx: &'a ::Context, filter_node: F, ) -> Self { let cursor = tree.cursor::(cx); @@ -673,8 +652,8 @@ where self.cursor.start() } - pub fn end(&self, cx: &::Context) -> D { - self.cursor.end(cx) + pub fn end(&self) -> D { + self.cursor.end() } pub fn item(&self) -> Option<&'a T> { @@ -685,31 +664,29 @@ where self.cursor.item_summary() } - pub fn next(&mut self, cx: &::Context) { - self.cursor.search_forward(&mut self.filter_node, cx); + pub fn next(&mut self) { + self.cursor.search_forward(&mut self.filter_node); } - pub fn prev(&mut self, cx: &::Context) { - self.cursor.search_backward(&mut self.filter_node, cx); + pub fn prev(&mut self) { + self.cursor.search_backward(&mut self.filter_node); } } -impl<'a, F, T, S, U> Iterator for FilterCursor<'a, F, T, U> +impl<'a, F, T: Item, U> Iterator for FilterCursor<'a, F, T, U> where F: FnMut(&T::Summary) -> bool, - T: Item, - S: Summary, //Context for the summary must be unit type, as .next() doesn't take arguments U: Dimension<'a, T::Summary>, { type Item = &'a T; fn next(&mut self) -> Option { if !self.cursor.did_seek { - self.next(&()); + self.next(); } if let Some(item) = self.item() { - self.cursor.search_forward(&mut self.filter_node, &()); + self.cursor.search_forward(&mut self.filter_node); Some(item) } else { None @@ -795,3 +772,23 @@ where self.0.add_summary(summary, cx); } } + +struct End(PhantomData); + +impl End { + fn new() -> Self { + Self(PhantomData) + } +} + +impl<'a, S: Summary, D: Dimension<'a, S>> SeekTarget<'a, S, D> for End { + fn cmp(&self, _: &D, _: &S::Context) -> Ordering { + Ordering::Greater + } +} + +impl fmt::Debug for End { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_tuple("End").finish() + } +} diff --git a/crates/sum_tree/src/sum_tree.rs b/crates/sum_tree/src/sum_tree.rs index 82022d6685..4f9e01ce20 100644 --- a/crates/sum_tree/src/sum_tree.rs +++ b/crates/sum_tree/src/sum_tree.rs @@ -38,7 +38,6 @@ pub trait Summary: Clone { type Context; fn zero(cx: &Self::Context) -> Self; - fn add_summary(&mut self, summary: &Self, cx: &Self::Context); } @@ -138,26 +137,6 @@ where } } -struct End(PhantomData); - -impl End { - fn new() -> Self { - Self(PhantomData) - } -} - -impl<'a, S: Summary, D: Dimension<'a, S>> SeekTarget<'a, S, D> for End { - fn cmp(&self, _: &D, _: &S::Context) -> Ordering { - Ordering::Greater - } -} - -impl fmt::Debug for End { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.debug_tuple("End").finish() - } -} - /// Bias is used to settle ambiguities when determining positions in an ordered sequence. /// /// The primary use case is for text, where Bias influences @@ -372,10 +351,10 @@ impl SumTree { pub fn items(&self, cx: &::Context) -> Vec { let mut items = Vec::new(); let mut cursor = self.cursor::<()>(cx); - cursor.next(cx); + cursor.next(); while let Some(item) = cursor.item() { items.push(item.clone()); - cursor.next(cx); + cursor.next(); } items } @@ -384,7 +363,7 @@ impl SumTree { Iter::new(self) } - pub fn cursor<'a, S>(&'a self, cx: &::Context) -> Cursor<'a, T, S> + pub fn cursor<'a, S>(&'a self, cx: &'a ::Context) -> Cursor<'a, T, S> where S: Dimension<'a, T::Summary>, { @@ -395,7 +374,7 @@ impl SumTree { /// that is returned cannot be used with Rust's iterators. pub fn filter<'a, F, U>( &'a self, - cx: &::Context, + cx: &'a ::Context, filter_node: F, ) -> FilterCursor<'a, F, T, U> where @@ -525,10 +504,6 @@ impl SumTree { } } - pub fn ptr_eq(&self, other: &Self) -> bool { - Arc::ptr_eq(&self.0, &other.0) - } - fn push_tree_recursive( &mut self, other: SumTree, @@ -686,11 +661,6 @@ impl SumTree { } => child_trees.last().unwrap().rightmost_leaf(), } } - - #[cfg(debug_assertions)] - pub fn _debug_entries(&self) -> Vec<&T> { - self.iter().collect::>() - } } impl PartialEq for SumTree { @@ -710,15 +680,15 @@ impl SumTree { let mut replaced = None; *self = { let mut cursor = self.cursor::(cx); - let mut new_tree = cursor.slice(&item.key(), Bias::Left, cx); + let mut new_tree = cursor.slice(&item.key(), Bias::Left); if let Some(cursor_item) = cursor.item() { if cursor_item.key() == item.key() { replaced = Some(cursor_item.clone()); - cursor.next(cx); + cursor.next(); } } new_tree.push(item, cx); - new_tree.append(cursor.suffix(cx), cx); + new_tree.append(cursor.suffix(), cx); new_tree }; replaced @@ -728,14 +698,14 @@ impl SumTree { let mut removed = None; *self = { let mut cursor = self.cursor::(cx); - let mut new_tree = cursor.slice(key, Bias::Left, cx); + let mut new_tree = cursor.slice(key, Bias::Left); if let Some(item) = cursor.item() { if item.key() == *key { removed = Some(item.clone()); - cursor.next(cx); + cursor.next(); } } - new_tree.append(cursor.suffix(cx), cx); + new_tree.append(cursor.suffix(), cx); new_tree }; removed @@ -758,7 +728,7 @@ impl SumTree { let mut new_tree = SumTree::new(cx); let mut buffered_items = Vec::new(); - cursor.seek(&T::Key::zero(cx), Bias::Left, cx); + cursor.seek(&T::Key::zero(cx), Bias::Left); for edit in edits { let new_key = edit.key(); let mut old_item = cursor.item(); @@ -768,7 +738,7 @@ impl SumTree { .map_or(false, |old_item| old_item.key() < new_key) { new_tree.extend(buffered_items.drain(..), cx); - let slice = cursor.slice(&new_key, Bias::Left, cx); + let slice = cursor.slice(&new_key, Bias::Left); new_tree.append(slice, cx); old_item = cursor.item(); } @@ -776,7 +746,7 @@ impl SumTree { if let Some(old_item) = old_item { if old_item.key() == new_key { removed.push(old_item.clone()); - cursor.next(cx); + cursor.next(); } } @@ -789,70 +759,25 @@ impl SumTree { } new_tree.extend(buffered_items, cx); - new_tree.append(cursor.suffix(cx), cx); + new_tree.append(cursor.suffix(), cx); new_tree }; removed } - pub fn get(&self, key: &T::Key, cx: &::Context) -> Option<&T> { + pub fn get<'a>( + &'a self, + key: &T::Key, + cx: &'a ::Context, + ) -> Option<&'a T> { let mut cursor = self.cursor::(cx); - if cursor.seek(key, Bias::Left, cx) { + if cursor.seek(key, Bias::Left) { cursor.item() } else { None } } - - #[inline] - pub fn contains(&self, key: &T::Key, cx: &::Context) -> bool { - self.get(key, cx).is_some() - } - - pub fn update( - &mut self, - key: &T::Key, - cx: &::Context, - f: F, - ) -> Option - where - F: FnOnce(&mut T) -> R, - { - let mut cursor = self.cursor::(cx); - let mut new_tree = cursor.slice(key, Bias::Left, cx); - let mut result = None; - if Ord::cmp(key, &cursor.end(cx)) == Ordering::Equal { - let mut updated = cursor.item().unwrap().clone(); - result = Some(f(&mut updated)); - new_tree.push(updated, cx); - cursor.next(cx); - } - new_tree.append(cursor.suffix(cx), cx); - drop(cursor); - *self = new_tree; - result - } - - pub fn retain bool>( - &mut self, - cx: &::Context, - mut predicate: F, - ) { - let mut new_map = SumTree::new(cx); - - let mut cursor = self.cursor::(cx); - cursor.next(cx); - while let Some(item) = cursor.item() { - if predicate(&item) { - new_map.push(item.clone(), cx); - } - cursor.next(cx); - } - drop(cursor); - - *self = new_map; - } } impl Default for SumTree @@ -1061,14 +986,14 @@ mod tests { tree = { let mut cursor = tree.cursor::(&()); - let mut new_tree = cursor.slice(&Count(splice_start), Bias::Right, &()); + let mut new_tree = cursor.slice(&Count(splice_start), Bias::Right); if rng.r#gen() { new_tree.extend(new_items, &()); } else { new_tree.par_extend(new_items, &()); } - cursor.seek(&Count(splice_end), Bias::Right, &()); - new_tree.append(cursor.slice(&tree_end, Bias::Right, &()), &()); + cursor.seek(&Count(splice_end), Bias::Right); + new_tree.append(cursor.slice(&tree_end, Bias::Right), &()); new_tree }; @@ -1090,10 +1015,10 @@ mod tests { .collect::>(); let mut item_ix = if rng.r#gen() { - filter_cursor.next(&()); + filter_cursor.next(); 0 } else { - filter_cursor.prev(&()); + filter_cursor.prev(); expected_filtered_items.len().saturating_sub(1) }; while item_ix < expected_filtered_items.len() { @@ -1103,19 +1028,19 @@ mod tests { assert_eq!(actual_item, &reference_item); assert_eq!(filter_cursor.start().0, reference_index); log::info!("next"); - filter_cursor.next(&()); + filter_cursor.next(); item_ix += 1; while item_ix > 0 && rng.gen_bool(0.2) { log::info!("prev"); - filter_cursor.prev(&()); + filter_cursor.prev(); item_ix -= 1; if item_ix == 0 && rng.gen_bool(0.2) { - filter_cursor.prev(&()); + filter_cursor.prev(); assert_eq!(filter_cursor.item(), None); assert_eq!(filter_cursor.start().0, 0); - filter_cursor.next(&()); + filter_cursor.next(); } } } @@ -1124,9 +1049,9 @@ mod tests { let mut before_start = false; let mut cursor = tree.cursor::(&()); let start_pos = rng.gen_range(0..=reference_items.len()); - cursor.seek(&Count(start_pos), Bias::Right, &()); + cursor.seek(&Count(start_pos), Bias::Right); let mut pos = rng.gen_range(start_pos..=reference_items.len()); - cursor.seek_forward(&Count(pos), Bias::Right, &()); + cursor.seek_forward(&Count(pos), Bias::Right); for i in 0..10 { assert_eq!(cursor.start().0, pos); @@ -1152,13 +1077,13 @@ mod tests { } if i < 5 { - cursor.next(&()); + cursor.next(); if pos < reference_items.len() { pos += 1; before_start = false; } } else { - cursor.prev(&()); + cursor.prev(); if pos == 0 { before_start = true; } @@ -1174,11 +1099,11 @@ mod tests { let end_bias = if rng.r#gen() { Bias::Left } else { Bias::Right }; let mut cursor = tree.cursor::(&()); - cursor.seek(&Count(start), start_bias, &()); - let slice = cursor.slice(&Count(end), end_bias, &()); + cursor.seek(&Count(start), start_bias); + let slice = cursor.slice(&Count(end), end_bias); - cursor.seek(&Count(start), start_bias, &()); - let summary = cursor.summary::<_, Sum>(&Count(end), end_bias, &()); + cursor.seek(&Count(start), start_bias); + let summary = cursor.summary::<_, Sum>(&Count(end), end_bias); assert_eq!(summary.0, slice.summary().sum); } @@ -1191,19 +1116,19 @@ mod tests { let tree = SumTree::::default(); let mut cursor = tree.cursor::(&()); assert_eq!( - cursor.slice(&Count(0), Bias::Right, &()).items(&()), + cursor.slice(&Count(0), Bias::Right).items(&()), Vec::::new() ); assert_eq!(cursor.item(), None); assert_eq!(cursor.prev_item(), None); assert_eq!(cursor.next_item(), None); assert_eq!(cursor.start().sum, 0); - cursor.prev(&()); + cursor.prev(); assert_eq!(cursor.item(), None); assert_eq!(cursor.prev_item(), None); assert_eq!(cursor.next_item(), None); assert_eq!(cursor.start().sum, 0); - cursor.next(&()); + cursor.next(); assert_eq!(cursor.item(), None); assert_eq!(cursor.prev_item(), None); assert_eq!(cursor.next_item(), None); @@ -1214,7 +1139,7 @@ mod tests { tree.extend(vec![1], &()); let mut cursor = tree.cursor::(&()); assert_eq!( - cursor.slice(&Count(0), Bias::Right, &()).items(&()), + cursor.slice(&Count(0), Bias::Right).items(&()), Vec::::new() ); assert_eq!(cursor.item(), Some(&1)); @@ -1222,29 +1147,29 @@ mod tests { assert_eq!(cursor.next_item(), None); assert_eq!(cursor.start().sum, 0); - cursor.next(&()); + cursor.next(); assert_eq!(cursor.item(), None); assert_eq!(cursor.prev_item(), Some(&1)); assert_eq!(cursor.next_item(), None); assert_eq!(cursor.start().sum, 1); - cursor.prev(&()); + cursor.prev(); assert_eq!(cursor.item(), Some(&1)); assert_eq!(cursor.prev_item(), None); assert_eq!(cursor.next_item(), None); assert_eq!(cursor.start().sum, 0); let mut cursor = tree.cursor::(&()); - assert_eq!(cursor.slice(&Count(1), Bias::Right, &()).items(&()), [1]); + assert_eq!(cursor.slice(&Count(1), Bias::Right).items(&()), [1]); assert_eq!(cursor.item(), None); assert_eq!(cursor.prev_item(), Some(&1)); assert_eq!(cursor.next_item(), None); assert_eq!(cursor.start().sum, 1); - cursor.seek(&Count(0), Bias::Right, &()); + cursor.seek(&Count(0), Bias::Right); assert_eq!( cursor - .slice(&tree.extent::(&()), Bias::Right, &()) + .slice(&tree.extent::(&()), Bias::Right) .items(&()), [1] ); @@ -1258,80 +1183,80 @@ mod tests { tree.extend(vec![1, 2, 3, 4, 5, 6], &()); let mut cursor = tree.cursor::(&()); - assert_eq!(cursor.slice(&Count(2), Bias::Right, &()).items(&()), [1, 2]); + assert_eq!(cursor.slice(&Count(2), Bias::Right).items(&()), [1, 2]); assert_eq!(cursor.item(), Some(&3)); assert_eq!(cursor.prev_item(), Some(&2)); assert_eq!(cursor.next_item(), Some(&4)); assert_eq!(cursor.start().sum, 3); - cursor.next(&()); + cursor.next(); assert_eq!(cursor.item(), Some(&4)); assert_eq!(cursor.prev_item(), Some(&3)); assert_eq!(cursor.next_item(), Some(&5)); assert_eq!(cursor.start().sum, 6); - cursor.next(&()); + cursor.next(); assert_eq!(cursor.item(), Some(&5)); assert_eq!(cursor.prev_item(), Some(&4)); assert_eq!(cursor.next_item(), Some(&6)); assert_eq!(cursor.start().sum, 10); - cursor.next(&()); + cursor.next(); assert_eq!(cursor.item(), Some(&6)); assert_eq!(cursor.prev_item(), Some(&5)); assert_eq!(cursor.next_item(), None); assert_eq!(cursor.start().sum, 15); - cursor.next(&()); - cursor.next(&()); + cursor.next(); + cursor.next(); assert_eq!(cursor.item(), None); assert_eq!(cursor.prev_item(), Some(&6)); assert_eq!(cursor.next_item(), None); assert_eq!(cursor.start().sum, 21); - cursor.prev(&()); + cursor.prev(); assert_eq!(cursor.item(), Some(&6)); assert_eq!(cursor.prev_item(), Some(&5)); assert_eq!(cursor.next_item(), None); assert_eq!(cursor.start().sum, 15); - cursor.prev(&()); + cursor.prev(); assert_eq!(cursor.item(), Some(&5)); assert_eq!(cursor.prev_item(), Some(&4)); assert_eq!(cursor.next_item(), Some(&6)); assert_eq!(cursor.start().sum, 10); - cursor.prev(&()); + cursor.prev(); assert_eq!(cursor.item(), Some(&4)); assert_eq!(cursor.prev_item(), Some(&3)); assert_eq!(cursor.next_item(), Some(&5)); assert_eq!(cursor.start().sum, 6); - cursor.prev(&()); + cursor.prev(); assert_eq!(cursor.item(), Some(&3)); assert_eq!(cursor.prev_item(), Some(&2)); assert_eq!(cursor.next_item(), Some(&4)); assert_eq!(cursor.start().sum, 3); - cursor.prev(&()); + cursor.prev(); assert_eq!(cursor.item(), Some(&2)); assert_eq!(cursor.prev_item(), Some(&1)); assert_eq!(cursor.next_item(), Some(&3)); assert_eq!(cursor.start().sum, 1); - cursor.prev(&()); + cursor.prev(); assert_eq!(cursor.item(), Some(&1)); assert_eq!(cursor.prev_item(), None); assert_eq!(cursor.next_item(), Some(&2)); assert_eq!(cursor.start().sum, 0); - cursor.prev(&()); + cursor.prev(); assert_eq!(cursor.item(), None); assert_eq!(cursor.prev_item(), None); assert_eq!(cursor.next_item(), Some(&1)); assert_eq!(cursor.start().sum, 0); - cursor.next(&()); + cursor.next(); assert_eq!(cursor.item(), Some(&1)); assert_eq!(cursor.prev_item(), None); assert_eq!(cursor.next_item(), Some(&2)); @@ -1340,7 +1265,7 @@ mod tests { let mut cursor = tree.cursor::(&()); assert_eq!( cursor - .slice(&tree.extent::(&()), Bias::Right, &()) + .slice(&tree.extent::(&()), Bias::Right) .items(&()), tree.items(&()) ); @@ -1349,10 +1274,10 @@ mod tests { assert_eq!(cursor.next_item(), None); assert_eq!(cursor.start().sum, 21); - cursor.seek(&Count(3), Bias::Right, &()); + cursor.seek(&Count(3), Bias::Right); assert_eq!( cursor - .slice(&tree.extent::(&()), Bias::Right, &()) + .slice(&tree.extent::(&()), Bias::Right) .items(&()), [4, 5, 6] ); @@ -1362,25 +1287,16 @@ mod tests { assert_eq!(cursor.start().sum, 21); // Seeking can bias left or right - cursor.seek(&Count(1), Bias::Left, &()); + cursor.seek(&Count(1), Bias::Left); assert_eq!(cursor.item(), Some(&1)); - cursor.seek(&Count(1), Bias::Right, &()); + cursor.seek(&Count(1), Bias::Right); assert_eq!(cursor.item(), Some(&2)); // Slicing without resetting starts from where the cursor is parked at. - cursor.seek(&Count(1), Bias::Right, &()); - assert_eq!( - cursor.slice(&Count(3), Bias::Right, &()).items(&()), - vec![2, 3] - ); - assert_eq!( - cursor.slice(&Count(6), Bias::Left, &()).items(&()), - vec![4, 5] - ); - assert_eq!( - cursor.slice(&Count(6), Bias::Right, &()).items(&()), - vec![6] - ); + cursor.seek(&Count(1), Bias::Right); + assert_eq!(cursor.slice(&Count(3), Bias::Right).items(&()), vec![2, 3]); + assert_eq!(cursor.slice(&Count(6), Bias::Left).items(&()), vec![4, 5]); + assert_eq!(cursor.slice(&Count(6), Bias::Right).items(&()), vec![6]); } #[test] diff --git a/crates/sum_tree/src/tree_map.rs b/crates/sum_tree/src/tree_map.rs index 884042b722..0397f16182 100644 --- a/crates/sum_tree/src/tree_map.rs +++ b/crates/sum_tree/src/tree_map.rs @@ -54,7 +54,7 @@ impl TreeMap { pub fn get(&self, key: &K) -> Option<&V> { let mut cursor = self.0.cursor::>(&()); - cursor.seek(&MapKeyRef(Some(key)), Bias::Left, &()); + cursor.seek(&MapKeyRef(Some(key)), Bias::Left); if let Some(item) = cursor.item() { if Some(key) == item.key().0.as_ref() { Some(&item.value) @@ -86,12 +86,12 @@ impl TreeMap { let mut removed = None; let mut cursor = self.0.cursor::>(&()); let key = MapKeyRef(Some(key)); - let mut new_tree = cursor.slice(&key, Bias::Left, &()); - if key.cmp(&cursor.end(&()), &()) == Ordering::Equal { + let mut new_tree = cursor.slice(&key, Bias::Left); + if key.cmp(&cursor.end(), &()) == Ordering::Equal { removed = Some(cursor.item().unwrap().value.clone()); - cursor.next(&()); + cursor.next(); } - new_tree.append(cursor.suffix(&()), &()); + new_tree.append(cursor.suffix(), &()); drop(cursor); self.0 = new_tree; removed @@ -101,9 +101,9 @@ impl TreeMap { let start = MapSeekTargetAdaptor(start); let end = MapSeekTargetAdaptor(end); let mut cursor = self.0.cursor::>(&()); - let mut new_tree = cursor.slice(&start, Bias::Left, &()); - cursor.seek(&end, Bias::Left, &()); - new_tree.append(cursor.suffix(&()), &()); + let mut new_tree = cursor.slice(&start, Bias::Left); + cursor.seek(&end, Bias::Left); + new_tree.append(cursor.suffix(), &()); drop(cursor); self.0 = new_tree; } @@ -112,15 +112,15 @@ impl TreeMap { pub fn closest(&self, key: &K) -> Option<(&K, &V)> { let mut cursor = self.0.cursor::>(&()); let key = MapKeyRef(Some(key)); - cursor.seek(&key, Bias::Right, &()); - cursor.prev(&()); + cursor.seek(&key, Bias::Right); + cursor.prev(); cursor.item().map(|item| (&item.key, &item.value)) } pub fn iter_from<'a>(&'a self, from: &K) -> impl Iterator + 'a { let mut cursor = self.0.cursor::>(&()); let from_key = MapKeyRef(Some(from)); - cursor.seek(&from_key, Bias::Left, &()); + cursor.seek(&from_key, Bias::Left); cursor.map(|map_entry| (&map_entry.key, &map_entry.value)) } @@ -131,15 +131,15 @@ impl TreeMap { { let mut cursor = self.0.cursor::>(&()); let key = MapKeyRef(Some(key)); - let mut new_tree = cursor.slice(&key, Bias::Left, &()); + let mut new_tree = cursor.slice(&key, Bias::Left); let mut result = None; - if key.cmp(&cursor.end(&()), &()) == Ordering::Equal { + if key.cmp(&cursor.end(), &()) == Ordering::Equal { let mut updated = cursor.item().unwrap().clone(); result = Some(f(&mut updated.value)); new_tree.push(updated, &()); - cursor.next(&()); + cursor.next(); } - new_tree.append(cursor.suffix(&()), &()); + new_tree.append(cursor.suffix(), &()); drop(cursor); self.0 = new_tree; result @@ -149,12 +149,12 @@ impl TreeMap { let mut new_map = SumTree::>::default(); let mut cursor = self.0.cursor::>(&()); - cursor.next(&()); + cursor.next(); while let Some(item) = cursor.item() { if predicate(&item.key, &item.value) { new_map.push(item.clone(), &()); } - cursor.next(&()); + cursor.next(); } drop(cursor); diff --git a/crates/text/src/anchor.rs b/crates/text/src/anchor.rs index 83a4fc8429..5807d3aae0 100644 --- a/crates/text/src/anchor.rs +++ b/crates/text/src/anchor.rs @@ -101,7 +101,7 @@ impl Anchor { } else { let fragment_id = buffer.fragment_id_for_anchor(self); let mut fragment_cursor = buffer.fragments.cursor::<(Option<&Locator>, usize)>(&None); - fragment_cursor.seek(&Some(fragment_id), Bias::Left, &None); + fragment_cursor.seek(&Some(fragment_id), Bias::Left); fragment_cursor .item() .map_or(false, |fragment| fragment.visible) diff --git a/crates/text/src/text.rs b/crates/text/src/text.rs index aa9682029e..c1da0649da 100644 --- a/crates/text/src/text.rs +++ b/crates/text/src/text.rs @@ -856,14 +856,13 @@ impl Buffer { let mut new_ropes = RopeBuilder::new(self.visible_text.cursor(0), self.deleted_text.cursor(0)); let mut old_fragments = self.fragments.cursor::(&None); - let mut new_fragments = - old_fragments.slice(&edits.peek().unwrap().0.start, Bias::Right, &None); + let mut new_fragments = old_fragments.slice(&edits.peek().unwrap().0.start, Bias::Right); new_ropes.append(new_fragments.summary().text); let mut fragment_start = old_fragments.start().visible; for (range, new_text) in edits { let new_text = LineEnding::normalize_arc(new_text.into()); - let fragment_end = old_fragments.end(&None).visible; + let fragment_end = old_fragments.end().visible; // If the current fragment ends before this range, then jump ahead to the first fragment // that extends past the start of this range, reusing any intervening fragments. @@ -879,10 +878,10 @@ impl Buffer { new_ropes.push_fragment(&suffix, suffix.visible); new_fragments.push(suffix, &None); } - old_fragments.next(&None); + old_fragments.next(); } - let slice = old_fragments.slice(&range.start, Bias::Right, &None); + let slice = old_fragments.slice(&range.start, Bias::Right); new_ropes.append(slice.summary().text); new_fragments.append(slice, &None); fragment_start = old_fragments.start().visible; @@ -935,7 +934,7 @@ impl Buffer { // portions as deleted. while fragment_start < range.end { let fragment = old_fragments.item().unwrap(); - let fragment_end = old_fragments.end(&None).visible; + let fragment_end = old_fragments.end().visible; let mut intersection = fragment.clone(); let intersection_end = cmp::min(range.end, fragment_end); if fragment.visible { @@ -962,7 +961,7 @@ impl Buffer { fragment_start = intersection_end; } if fragment_end <= range.end { - old_fragments.next(&None); + old_fragments.next(); } } @@ -974,7 +973,7 @@ impl Buffer { // If the current fragment has been partially consumed, then consume the rest of it // and advance to the next fragment before slicing. if fragment_start > old_fragments.start().visible { - let fragment_end = old_fragments.end(&None).visible; + let fragment_end = old_fragments.end().visible; if fragment_end > fragment_start { let mut suffix = old_fragments.item().unwrap().clone(); suffix.len = fragment_end - fragment_start; @@ -983,10 +982,10 @@ impl Buffer { new_ropes.push_fragment(&suffix, suffix.visible); new_fragments.push(suffix, &None); } - old_fragments.next(&None); + old_fragments.next(); } - let suffix = old_fragments.suffix(&None); + let suffix = old_fragments.suffix(); new_ropes.append(suffix.summary().text); new_fragments.append(suffix, &None); let (visible_text, deleted_text) = new_ropes.finish(); @@ -1073,16 +1072,13 @@ impl Buffer { let mut new_ropes = RopeBuilder::new(self.visible_text.cursor(0), self.deleted_text.cursor(0)); let mut old_fragments = self.fragments.cursor::<(VersionedFullOffset, usize)>(&cx); - let mut new_fragments = old_fragments.slice( - &VersionedFullOffset::Offset(ranges[0].start), - Bias::Left, - &cx, - ); + let mut new_fragments = + old_fragments.slice(&VersionedFullOffset::Offset(ranges[0].start), Bias::Left); new_ropes.append(new_fragments.summary().text); let mut fragment_start = old_fragments.start().0.full_offset(); for (range, new_text) in edits { - let fragment_end = old_fragments.end(&cx).0.full_offset(); + let fragment_end = old_fragments.end().0.full_offset(); // If the current fragment ends before this range, then jump ahead to the first fragment // that extends past the start of this range, reusing any intervening fragments. @@ -1099,18 +1095,18 @@ impl Buffer { new_ropes.push_fragment(&suffix, suffix.visible); new_fragments.push(suffix, &None); } - old_fragments.next(&cx); + old_fragments.next(); } let slice = - old_fragments.slice(&VersionedFullOffset::Offset(range.start), Bias::Left, &cx); + old_fragments.slice(&VersionedFullOffset::Offset(range.start), Bias::Left); new_ropes.append(slice.summary().text); new_fragments.append(slice, &None); fragment_start = old_fragments.start().0.full_offset(); } // If we are at the end of a non-concurrent fragment, advance to the next one. - let fragment_end = old_fragments.end(&cx).0.full_offset(); + let fragment_end = old_fragments.end().0.full_offset(); if fragment_end == range.start && fragment_end > fragment_start { let mut fragment = old_fragments.item().unwrap().clone(); fragment.len = fragment_end.0 - fragment_start.0; @@ -1118,7 +1114,7 @@ impl Buffer { new_insertions.push(InsertionFragment::insert_new(&fragment)); new_ropes.push_fragment(&fragment, fragment.visible); new_fragments.push(fragment, &None); - old_fragments.next(&cx); + old_fragments.next(); fragment_start = old_fragments.start().0.full_offset(); } @@ -1128,7 +1124,7 @@ impl Buffer { if fragment_start == range.start && fragment.timestamp > timestamp { new_ropes.push_fragment(fragment, fragment.visible); new_fragments.push(fragment.clone(), &None); - old_fragments.next(&cx); + old_fragments.next(); debug_assert_eq!(fragment_start, range.start); } else { break; @@ -1184,7 +1180,7 @@ impl Buffer { // portions as deleted. while fragment_start < range.end { let fragment = old_fragments.item().unwrap(); - let fragment_end = old_fragments.end(&cx).0.full_offset(); + let fragment_end = old_fragments.end().0.full_offset(); let mut intersection = fragment.clone(); let intersection_end = cmp::min(range.end, fragment_end); if fragment.was_visible(version, &self.undo_map) { @@ -1213,7 +1209,7 @@ impl Buffer { fragment_start = intersection_end; } if fragment_end <= range.end { - old_fragments.next(&cx); + old_fragments.next(); } } } @@ -1221,7 +1217,7 @@ impl Buffer { // If the current fragment has been partially consumed, then consume the rest of it // and advance to the next fragment before slicing. if fragment_start > old_fragments.start().0.full_offset() { - let fragment_end = old_fragments.end(&cx).0.full_offset(); + let fragment_end = old_fragments.end().0.full_offset(); if fragment_end > fragment_start { let mut suffix = old_fragments.item().unwrap().clone(); suffix.len = fragment_end.0 - fragment_start.0; @@ -1230,10 +1226,10 @@ impl Buffer { new_ropes.push_fragment(&suffix, suffix.visible); new_fragments.push(suffix, &None); } - old_fragments.next(&cx); + old_fragments.next(); } - let suffix = old_fragments.suffix(&cx); + let suffix = old_fragments.suffix(); new_ropes.append(suffix.summary().text); new_fragments.append(suffix, &None); let (visible_text, deleted_text) = new_ropes.finish(); @@ -1282,7 +1278,6 @@ impl Buffer { split_offset: insertion_slice.range.start, }, Bias::Left, - &(), ); } while let Some(item) = insertions_cursor.item() { @@ -1292,7 +1287,7 @@ impl Buffer { break; } fragment_ids.push(&item.fragment_id); - insertions_cursor.next(&()); + insertions_cursor.next(); } } fragment_ids.sort_unstable(); @@ -1309,7 +1304,7 @@ impl Buffer { RopeBuilder::new(self.visible_text.cursor(0), self.deleted_text.cursor(0)); for fragment_id in self.fragment_ids_for_edits(undo.counts.keys()) { - let preceding_fragments = old_fragments.slice(&Some(fragment_id), Bias::Left, &None); + let preceding_fragments = old_fragments.slice(&Some(fragment_id), Bias::Left); new_ropes.append(preceding_fragments.summary().text); new_fragments.append(preceding_fragments, &None); @@ -1336,11 +1331,11 @@ impl Buffer { new_ropes.push_fragment(&fragment, fragment_was_visible); new_fragments.push(fragment, &None); - old_fragments.next(&None); + old_fragments.next(); } } - let suffix = old_fragments.suffix(&None); + let suffix = old_fragments.suffix(); new_ropes.append(suffix.summary().text); new_fragments.append(suffix, &None); @@ -1571,7 +1566,7 @@ impl Buffer { .fragment_ids_for_edits(edit_ids.into_iter()) .into_iter() .filter_map(move |fragment_id| { - cursor.seek_forward(&Some(fragment_id), Bias::Left, &None); + cursor.seek_forward(&Some(fragment_id), Bias::Left); let fragment = cursor.item()?; let start_offset = cursor.start().1; let end_offset = start_offset + if fragment.visible { fragment.len } else { 0 }; @@ -1793,7 +1788,7 @@ impl Buffer { let mut cursor = self.snapshot.fragments.cursor::>(&None); for insertion_fragment in self.snapshot.insertions.cursor::<()>(&()) { - cursor.seek(&Some(&insertion_fragment.fragment_id), Bias::Left, &None); + cursor.seek(&Some(&insertion_fragment.fragment_id), Bias::Left); let fragment = cursor.item().unwrap(); assert_eq!(insertion_fragment.fragment_id, fragment.id); assert_eq!(insertion_fragment.split_offset, fragment.insertion_offset); @@ -1912,7 +1907,7 @@ impl BufferSnapshot { .filter::<_, FragmentTextSummary>(&None, move |summary| { !version.observed_all(&summary.max_version) }); - cursor.next(&None); + cursor.next(); let mut visible_cursor = self.visible_text.cursor(0); let mut deleted_cursor = self.deleted_text.cursor(0); @@ -1925,18 +1920,18 @@ impl BufferSnapshot { if fragment.was_visible(version, &self.undo_map) { if fragment.visible { - let text = visible_cursor.slice(cursor.end(&None).visible); + let text = visible_cursor.slice(cursor.end().visible); rope.append(text); } else { deleted_cursor.seek_forward(cursor.start().deleted); - let text = deleted_cursor.slice(cursor.end(&None).deleted); + let text = deleted_cursor.slice(cursor.end().deleted); rope.append(text); } } else if fragment.visible { - visible_cursor.seek_forward(cursor.end(&None).visible); + visible_cursor.seek_forward(cursor.end().visible); } - cursor.next(&None); + cursor.next(); } if cursor.start().visible > visible_cursor.offset() { @@ -2252,7 +2247,7 @@ impl BufferSnapshot { timestamp: anchor.timestamp, split_offset: anchor.offset, }; - insertion_cursor.seek(&anchor_key, anchor.bias, &()); + insertion_cursor.seek(&anchor_key, anchor.bias); if let Some(insertion) = insertion_cursor.item() { let comparison = sum_tree::KeyedItem::key(insertion).cmp(&anchor_key); if comparison == Ordering::Greater @@ -2260,15 +2255,15 @@ impl BufferSnapshot { && comparison == Ordering::Equal && anchor.offset > 0) { - insertion_cursor.prev(&()); + insertion_cursor.prev(); } } else { - insertion_cursor.prev(&()); + insertion_cursor.prev(); } let insertion = insertion_cursor.item().expect("invalid insertion"); assert_eq!(insertion.timestamp, anchor.timestamp, "invalid insertion"); - fragment_cursor.seek_forward(&Some(&insertion.fragment_id), Bias::Left, &None); + fragment_cursor.seek_forward(&Some(&insertion.fragment_id), Bias::Left); let fragment = fragment_cursor.item().unwrap(); let mut fragment_offset = fragment_cursor.start().1; if fragment.visible { @@ -2299,7 +2294,7 @@ impl BufferSnapshot { split_offset: anchor.offset, }; let mut insertion_cursor = self.insertions.cursor::(&()); - insertion_cursor.seek(&anchor_key, anchor.bias, &()); + insertion_cursor.seek(&anchor_key, anchor.bias); if let Some(insertion) = insertion_cursor.item() { let comparison = sum_tree::KeyedItem::key(insertion).cmp(&anchor_key); if comparison == Ordering::Greater @@ -2307,10 +2302,10 @@ impl BufferSnapshot { && comparison == Ordering::Equal && anchor.offset > 0) { - insertion_cursor.prev(&()); + insertion_cursor.prev(); } } else { - insertion_cursor.prev(&()); + insertion_cursor.prev(); } let Some(insertion) = insertion_cursor @@ -2324,7 +2319,7 @@ impl BufferSnapshot { }; let mut fragment_cursor = self.fragments.cursor::<(Option<&Locator>, usize)>(&None); - fragment_cursor.seek(&Some(&insertion.fragment_id), Bias::Left, &None); + fragment_cursor.seek(&Some(&insertion.fragment_id), Bias::Left); let fragment = fragment_cursor.item().unwrap(); let mut fragment_offset = fragment_cursor.start().1; if fragment.visible { @@ -2345,7 +2340,7 @@ impl BufferSnapshot { split_offset: anchor.offset, }; let mut insertion_cursor = self.insertions.cursor::(&()); - insertion_cursor.seek(&anchor_key, anchor.bias, &()); + insertion_cursor.seek(&anchor_key, anchor.bias); if let Some(insertion) = insertion_cursor.item() { let comparison = sum_tree::KeyedItem::key(insertion).cmp(&anchor_key); if comparison == Ordering::Greater @@ -2353,10 +2348,10 @@ impl BufferSnapshot { && comparison == Ordering::Equal && anchor.offset > 0) { - insertion_cursor.prev(&()); + insertion_cursor.prev(); } } else { - insertion_cursor.prev(&()); + insertion_cursor.prev(); } let Some(insertion) = insertion_cursor.item().filter(|insertion| { @@ -2395,7 +2390,7 @@ impl BufferSnapshot { Anchor::MAX } else { let mut fragment_cursor = self.fragments.cursor::(&None); - fragment_cursor.seek(&offset, bias, &None); + fragment_cursor.seek(&offset, bias); let fragment = fragment_cursor.item().unwrap(); let overshoot = offset - *fragment_cursor.start(); Anchor { @@ -2475,7 +2470,7 @@ impl BufferSnapshot { let mut cursor = self.fragments.filter(&None, move |summary| { !since.observed_all(&summary.max_version) }); - cursor.next(&None); + cursor.next(); Some(cursor) }; let mut cursor = self @@ -2483,7 +2478,7 @@ impl BufferSnapshot { .cursor::<(Option<&Locator>, FragmentTextSummary)>(&None); let start_fragment_id = self.fragment_id_for_anchor(&range.start); - cursor.seek(&Some(start_fragment_id), Bias::Left, &None); + cursor.seek(&Some(start_fragment_id), Bias::Left); let mut visible_start = cursor.start().1.visible; let mut deleted_start = cursor.start().1.deleted; if let Some(fragment) = cursor.item() { @@ -2516,7 +2511,7 @@ impl BufferSnapshot { let mut cursor = self.fragments.filter::<_, usize>(&None, move |summary| { !since.observed_all(&summary.max_version) }); - cursor.next(&None); + cursor.next(); while let Some(fragment) = cursor.item() { if fragment.id > *end_fragment_id { break; @@ -2528,7 +2523,7 @@ impl BufferSnapshot { return true; } } - cursor.next(&None); + cursor.next(); } } false @@ -2539,14 +2534,14 @@ impl BufferSnapshot { let mut cursor = self.fragments.filter::<_, usize>(&None, move |summary| { !since.observed_all(&summary.max_version) }); - cursor.next(&None); + cursor.next(); while let Some(fragment) = cursor.item() { let was_visible = fragment.was_visible(since, &self.undo_map); let is_visible = fragment.visible; if was_visible != is_visible { return true; } - cursor.next(&None); + cursor.next(); } } false @@ -2651,7 +2646,7 @@ impl bool> Iterator for Ed while let Some(fragment) = cursor.item() { if fragment.id < *self.range.start.0 { - cursor.next(&None); + cursor.next(); continue; } else if fragment.id > *self.range.end.0 { break; @@ -2684,7 +2679,7 @@ impl bool> Iterator for Ed }; if !fragment.was_visible(self.since, self.undos) && fragment.visible { - let mut visible_end = cursor.end(&None).visible; + let mut visible_end = cursor.end().visible; if fragment.id == *self.range.end.0 { visible_end = cmp::min( visible_end, @@ -2710,7 +2705,7 @@ impl bool> Iterator for Ed self.new_end = new_end; } else if fragment.was_visible(self.since, self.undos) && !fragment.visible { - let mut deleted_end = cursor.end(&None).deleted; + let mut deleted_end = cursor.end().deleted; if fragment.id == *self.range.end.0 { deleted_end = cmp::min( deleted_end, @@ -2740,7 +2735,7 @@ impl bool> Iterator for Ed self.old_end = old_end; } - cursor.next(&None); + cursor.next(); } pending_edit diff --git a/crates/text/src/undo_map.rs b/crates/text/src/undo_map.rs index ed363cfc6b..6a409189fa 100644 --- a/crates/text/src/undo_map.rs +++ b/crates/text/src/undo_map.rs @@ -74,7 +74,6 @@ impl UndoMap { undo_id: Default::default(), }, Bias::Left, - &(), ); let mut undo_count = 0; @@ -99,7 +98,6 @@ impl UndoMap { undo_id: Default::default(), }, Bias::Left, - &(), ); let mut undo_count = 0; diff --git a/crates/worktree/src/worktree.rs b/crates/worktree/src/worktree.rs index 8c407fdd3e..4fc6b91abb 100644 --- a/crates/worktree/src/worktree.rs +++ b/crates/worktree/src/worktree.rs @@ -2454,16 +2454,16 @@ impl Snapshot { self.entries_by_path = { let mut cursor = self.entries_by_path.cursor::(&()); let mut new_entries_by_path = - cursor.slice(&TraversalTarget::path(&removed_entry.path), Bias::Left, &()); + cursor.slice(&TraversalTarget::path(&removed_entry.path), Bias::Left); while let Some(entry) = cursor.item() { if entry.path.starts_with(&removed_entry.path) { self.entries_by_id.remove(&entry.id, &()); - cursor.next(&()); + cursor.next(); } else { break; } } - new_entries_by_path.append(cursor.suffix(&()), &()); + new_entries_by_path.append(cursor.suffix(), &()); new_entries_by_path }; @@ -2576,7 +2576,6 @@ impl Snapshot { include_ignored, }, Bias::Right, - &(), ); Traversal { snapshot: self, @@ -2632,7 +2631,7 @@ impl Snapshot { options: ChildEntriesOptions, ) -> ChildEntriesIter<'a> { let mut cursor = self.entries_by_path.cursor(&()); - cursor.seek(&TraversalTarget::path(parent_path), Bias::Right, &()); + cursor.seek(&TraversalTarget::path(parent_path), Bias::Right); let traversal = Traversal { snapshot: self, cursor, @@ -3056,9 +3055,9 @@ impl BackgroundScannerState { .snapshot .entries_by_path .cursor::(&()); - new_entries = cursor.slice(&TraversalTarget::path(path), Bias::Left, &()); - removed_entries = cursor.slice(&TraversalTarget::successor(path), Bias::Left, &()); - new_entries.append(cursor.suffix(&()), &()); + new_entries = cursor.slice(&TraversalTarget::path(path), Bias::Left); + removed_entries = cursor.slice(&TraversalTarget::successor(path), Bias::Left); + new_entries.append(cursor.suffix(), &()); } self.snapshot.entries_by_path = new_entries; @@ -4925,15 +4924,15 @@ fn build_diff( let mut old_paths = old_snapshot.entries_by_path.cursor::(&()); let mut new_paths = new_snapshot.entries_by_path.cursor::(&()); let mut last_newly_loaded_dir_path = None; - old_paths.next(&()); - new_paths.next(&()); + old_paths.next(); + new_paths.next(); for path in event_paths { let path = PathKey(path.clone()); if old_paths.item().map_or(false, |e| e.path < path.0) { - old_paths.seek_forward(&path, Bias::Left, &()); + old_paths.seek_forward(&path, Bias::Left); } if new_paths.item().map_or(false, |e| e.path < path.0) { - new_paths.seek_forward(&path, Bias::Left, &()); + new_paths.seek_forward(&path, Bias::Left); } loop { match (old_paths.item(), new_paths.item()) { @@ -4949,7 +4948,7 @@ fn build_diff( match Ord::cmp(&old_entry.path, &new_entry.path) { Ordering::Less => { changes.push((old_entry.path.clone(), old_entry.id, Removed)); - old_paths.next(&()); + old_paths.next(); } Ordering::Equal => { if phase == EventsReceivedDuringInitialScan { @@ -4975,8 +4974,8 @@ fn build_diff( changes.push((new_entry.path.clone(), new_entry.id, Updated)); } } - old_paths.next(&()); - new_paths.next(&()); + old_paths.next(); + new_paths.next(); } Ordering::Greater => { let is_newly_loaded = phase == InitialScan @@ -4988,13 +4987,13 @@ fn build_diff( new_entry.id, if is_newly_loaded { Loaded } else { Added }, )); - new_paths.next(&()); + new_paths.next(); } } } (Some(old_entry), None) => { changes.push((old_entry.path.clone(), old_entry.id, Removed)); - old_paths.next(&()); + old_paths.next(); } (None, Some(new_entry)) => { let is_newly_loaded = phase == InitialScan @@ -5006,7 +5005,7 @@ fn build_diff( new_entry.id, if is_newly_loaded { Loaded } else { Added }, )); - new_paths.next(&()); + new_paths.next(); } (None, None) => break, } @@ -5255,7 +5254,7 @@ impl<'a> Traversal<'a> { start_path: &Path, ) -> Self { let mut cursor = snapshot.entries_by_path.cursor(&()); - cursor.seek(&TraversalTarget::path(start_path), Bias::Left, &()); + cursor.seek(&TraversalTarget::path(start_path), Bias::Left); let mut traversal = Self { snapshot, cursor, @@ -5282,14 +5281,13 @@ impl<'a> Traversal<'a> { include_ignored: self.include_ignored, }, Bias::Left, - &(), ) } pub fn advance_to_sibling(&mut self) -> bool { while let Some(entry) = self.cursor.item() { self.cursor - .seek_forward(&TraversalTarget::successor(&entry.path), Bias::Left, &()); + .seek_forward(&TraversalTarget::successor(&entry.path), Bias::Left); if let Some(entry) = self.cursor.item() { if (self.include_files || !entry.is_file()) && (self.include_dirs || !entry.is_dir()) @@ -5307,7 +5305,7 @@ impl<'a> Traversal<'a> { return false; }; self.cursor - .seek(&TraversalTarget::path(parent_path), Bias::Left, &()) + .seek(&TraversalTarget::path(parent_path), Bias::Left) } pub fn entry(&self) -> Option<&'a Entry> { @@ -5326,7 +5324,7 @@ impl<'a> Traversal<'a> { pub fn end_offset(&self) -> usize { self.cursor - .end(&()) + .end() .count(self.include_files, self.include_dirs, self.include_ignored) } } From caa520c4999a06907e3cdc6a81ecb634421f0c6a Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Tue, 22 Jul 2025 18:52:17 +0200 Subject: [PATCH 0129/1052] workspace: Clean up empty panes left over from file opening failures (#34908) Closes #34583 Release Notes: - Fixed empty pane being left after a binary file is dropped into a new pane.s --- crates/workspace/src/pane.rs | 41 ++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/crates/workspace/src/pane.rs b/crates/workspace/src/pane.rs index e57b103c61..c7a2562a1b 100644 --- a/crates/workspace/src/pane.rs +++ b/crates/workspace/src/pane.rs @@ -3239,28 +3239,37 @@ impl Pane { split_direction = None; } - if let Ok(open_task) = workspace.update_in(cx, |workspace, window, cx| { - if let Some(split_direction) = split_direction { - to_pane = workspace.split_pane(to_pane, split_direction, window, cx); - } - workspace.open_paths( - paths, - OpenOptions { - visible: Some(OpenVisible::OnlyDirectories), - ..Default::default() - }, - Some(to_pane.downgrade()), - window, - cx, - ) - }) { + if let Ok((open_task, to_pane)) = + workspace.update_in(cx, |workspace, window, cx| { + if let Some(split_direction) = split_direction { + to_pane = + workspace.split_pane(to_pane, split_direction, window, cx); + } + ( + workspace.open_paths( + paths, + OpenOptions { + visible: Some(OpenVisible::OnlyDirectories), + ..Default::default() + }, + Some(to_pane.downgrade()), + window, + cx, + ), + to_pane, + ) + }) + { let opened_items: Vec<_> = open_task.await; - _ = workspace.update(cx, |workspace, cx| { + _ = workspace.update_in(cx, |workspace, window, cx| { for item in opened_items.into_iter().flatten() { if let Err(e) = item { workspace.show_error(&e, cx); } } + if to_pane.read(cx).items_len() == 0 { + workspace.remove_pane(to_pane, None, window, cx); + } }); } }) From 14cea06f0fb591129df0faac2163dcaf74444a83 Mon Sep 17 00:00:00 2001 From: Ben Kunkle Date: Tue, 22 Jul 2025 12:18:59 -0500 Subject: [PATCH 0130/1052] keymap_ui: Fix panic in clear keystrokes (#34909) Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ... --- crates/settings_ui/src/keybindings.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/crates/settings_ui/src/keybindings.rs b/crates/settings_ui/src/keybindings.rs index 5f940e8a25..9e885f69f6 100644 --- a/crates/settings_ui/src/keybindings.rs +++ b/crates/settings_ui/src/keybindings.rs @@ -2784,6 +2784,7 @@ impl KeystrokeInput { else { log::trace!("No keybinding to stop recording keystrokes in keystroke input"); self.close_keystrokes.take(); + self.close_keystrokes_start.take(); return CloseKeystrokeResult::None; }; let action_keystrokes = keybind_for_close_action.keystrokes(); @@ -2976,7 +2977,9 @@ impl KeystrokeInput { return; } window.focus(&self.outer_focus_handle); - if let Some(close_keystrokes_start) = self.close_keystrokes_start.take() { + if let Some(close_keystrokes_start) = self.close_keystrokes_start.take() + && close_keystrokes_start < self.keystrokes.len() + { self.keystrokes.drain(close_keystrokes_start..); } self.close_keystrokes.take(); From d81a8178e916f92c3277098f1f199b05b0d20bde Mon Sep 17 00:00:00 2001 From: Michael Sloan Date: Tue, 22 Jul 2025 11:35:58 -0600 Subject: [PATCH 0131/1052] Bind "j k" to `NormalBefore` in initial keymap examples (#34912) It looks like typically vim configurations bind "j k" to be the same as escape, which has the "NormalBefore" behavior positioning the block cursor on the character before the insertion cursor. The [vim mode docs](https://zed.dev/docs/vim#useful-contexts-for-vim-mode-key-bindings) also use NormalBefore here. Thanks to @omniwrench for mentioning this in https://github.com/zed-industries/zed/discussions/6661#discussioncomment-13848043 . This was a mistake in #31163. Release Notes: - N/A --- assets/keymaps/initial.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/keymaps/initial.json b/assets/keymaps/initial.json index 0cfd28f0e5..ff6069a816 100644 --- a/assets/keymaps/initial.json +++ b/assets/keymaps/initial.json @@ -15,7 +15,7 @@ { "context": "Editor && vim_mode == insert && !menu", "bindings": { - // "j k": "vim::SwitchToNormalMode" + // "j k": "vim::NormalBefore" } } ] From 9e280d09057ec1d8481f64b48b24869d325a5574 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Tue, 22 Jul 2025 13:42:07 -0400 Subject: [PATCH 0132/1052] collab: Remove unneeded caching of Stripe price IDs by meter ID (#34915) This PR removes the caching of Stripe price IDs by meter ID on the `StripeBilling` object, as we weren't actually reading them anywhere. Release Notes: - N/A --- crates/collab/src/stripe_billing.rs | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/crates/collab/src/stripe_billing.rs b/crates/collab/src/stripe_billing.rs index 707928d5cd..50accf9557 100644 --- a/crates/collab/src/stripe_billing.rs +++ b/crates/collab/src/stripe_billing.rs @@ -30,7 +30,6 @@ pub struct StripeBilling { #[derive(Default)] struct StripeBillingState { - price_ids_by_meter_id: HashMap, prices_by_lookup_key: HashMap, } @@ -63,13 +62,7 @@ impl StripeBilling { for price in prices { if let Some(lookup_key) = price.lookup_key.clone() { - state.prices_by_lookup_key.insert(lookup_key, price.clone()); - } - - if let Some(recurring) = price.recurring { - if let Some(meter) = recurring.meter { - state.price_ids_by_meter_id.insert(meter, price.id); - } + state.prices_by_lookup_key.insert(lookup_key, price); } } From 99466f4aebbf20dc00077dcce55f3b4ce1d2b1d3 Mon Sep 17 00:00:00 2001 From: Peter Tripp Date: Tue, 22 Jul 2025 13:57:36 -0400 Subject: [PATCH 0133/1052] Make zooming from menus not persist (#34910) Closes: https://github.com/zed-industries/zed/issues/34479 Follow-up to: https://github.com/zed-industries/zed/issues/23505 View->Zoom In / Zoom Out / Reset Zoom were not reverted to match when the default keybindings were reverted. Release Notes: - N/A --- crates/zed/src/zed/app_menus.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/zed/src/zed/app_menus.rs b/crates/zed/src/zed/app_menus.rs index c4131dbee9..78532b10b4 100644 --- a/crates/zed/src/zed/app_menus.rs +++ b/crates/zed/src/zed/app_menus.rs @@ -145,15 +145,15 @@ pub fn app_menus() -> Vec { items: vec![ MenuItem::action( "Zoom In", - zed_actions::IncreaseBufferFontSize { persist: true }, + zed_actions::IncreaseBufferFontSize { persist: false }, ), MenuItem::action( "Zoom Out", - zed_actions::DecreaseBufferFontSize { persist: true }, + zed_actions::DecreaseBufferFontSize { persist: false }, ), MenuItem::action( "Reset Zoom", - zed_actions::ResetBufferFontSize { persist: true }, + zed_actions::ResetBufferFontSize { persist: false }, ), MenuItem::separator(), MenuItem::action("Toggle Left Dock", workspace::ToggleLeftDock), From 4272c1508e22a96a5822b422ee5a0b3dd1621512 Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Tue, 22 Jul 2025 15:41:12 -0300 Subject: [PATCH 0134/1052] ai onboarding: Copyedit the whole flow (#34916) Release Notes: - N/A Co-authored-by: Katie Geer --- .../src/agent_api_keys_onboarding.rs | 4 +- crates/ai_onboarding/src/ai_onboarding.rs | 41 ++++++++----------- .../ai_onboarding/src/young_account_banner.rs | 2 +- 3 files changed, 19 insertions(+), 28 deletions(-) diff --git a/crates/ai_onboarding/src/agent_api_keys_onboarding.rs b/crates/ai_onboarding/src/agent_api_keys_onboarding.rs index 883317e566..5f56e4d26e 100644 --- a/crates/ai_onboarding/src/agent_api_keys_onboarding.rs +++ b/crates/ai_onboarding/src/agent_api_keys_onboarding.rs @@ -93,7 +93,7 @@ impl Render for ApiKeysWithProviders { div() .w_full() .child( - Label::new("Or start now using API keys from your environment for the following providers:") + Label::new("Start now using API keys from your environment for the following providers:") .color(Color::Muted) ) ) @@ -129,7 +129,7 @@ impl RenderOnce for ApiKeysWithoutProviders { .child(Divider::horizontal()), ) .child(List::new().child(BulletItem::new( - "You can also use AI in Zed by bringing your own API keys", + "Add your own keys to use AI without signing in.", ))) .child( Button::new("configure-providers", "Configure Providers") diff --git a/crates/ai_onboarding/src/ai_onboarding.rs b/crates/ai_onboarding/src/ai_onboarding.rs index 88c962c1ba..e8ce22ff4e 100644 --- a/crates/ai_onboarding/src/ai_onboarding.rs +++ b/crates/ai_onboarding/src/ai_onboarding.rs @@ -141,22 +141,18 @@ impl ZedAiOnboarding { ) .child( List::new() + .child(BulletItem::new("50 prompts per month with Claude models")) .child(BulletItem::new( - "50 prompts per month with the Claude models", - )) - .child(BulletItem::new( - "2000 accepted edit predictions using our open-source Zeta model", + "2,000 accepted edit predictions with Zeta, our open-source model", )), ) } fn pro_trial_definition(&self) -> impl IntoElement { List::new() + .child(BulletItem::new("150 prompts with Claude models")) .child(BulletItem::new( - "150 prompts per month with the Claude models", - )) - .child(BulletItem::new( - "Unlimited accepted edit predictions using our open-source Zeta model", + "Unlimited accepted edit predictions with Zeta, our open-source model", )) } @@ -178,12 +174,12 @@ impl ZedAiOnboarding { List::new() .child(BulletItem::new("500 prompts per month with Claude models")) .child(BulletItem::new( - "Unlimited accepted edit predictions using our open-source Zeta model", + "Unlimited accepted edit predictions with Zeta, our open-source model", )) - .child(BulletItem::new("USD $20 per month")), + .child(BulletItem::new("$20 USD per month")), ) .child( - Button::new("pro", "Start with Pro") + Button::new("pro", "Get Started") .full_width() .style(ButtonStyle::Tinted(ui::TintColor::Accent)) .on_click(move |_, _window, cx| { @@ -206,11 +202,11 @@ impl ZedAiOnboarding { List::new() .child(self.pro_trial_definition()) .child(BulletItem::new( - "Try it out for 14 days with no charge and no credit card required", + "Try it out for 14 days for free, no credit card required", )), ) .child( - Button::new("pro", "Start Pro Trial") + Button::new("pro", "Start Free Trial") .full_width() .style(ButtonStyle::Tinted(ui::TintColor::Accent)) .on_click(move |_, _window, cx| { @@ -225,14 +221,14 @@ impl ZedAiOnboarding { v_flex() .gap_1() .w_full() - .child(Headline::new("Before starting…")) + .child(Headline::new("Accept Terms of Service")) .child( - Label::new("Make sure you have read and accepted Zed AI's terms of service.") + Label::new("We don’t sell your data, track you across the web, or compromise your privacy.") .color(Color::Muted) .mb_2(), ) .child( - Button::new("terms_of_service", "View and Read the Terms of Service") + Button::new("terms_of_service", "Review Terms of Service") .full_width() .style(ButtonStyle::Outlined) .icon(IconName::ArrowUpRight) @@ -241,7 +237,7 @@ impl ZedAiOnboarding { .on_click(move |_, _window, cx| cx.open_url(&zed_urls::terms_of_service(cx))), ) .child( - Button::new("accept_terms", "I've read it and accept it") + Button::new("accept_terms", "Accept") .full_width() .style(ButtonStyle::Tinted(TintColor::Accent)) .on_click({ @@ -259,13 +255,13 @@ impl ZedAiOnboarding { .gap_1() .child(Headline::new("Welcome to Zed AI")) .child( - Label::new("Sign in to start using AI in Zed with a free trial of the Pro plan, which includes:") + Label::new("Sign in to try Zed Pro for 14 days, no credit card required.") .color(Color::Muted) .mb_2(), ) .child(self.pro_trial_definition()) .child( - Button::new("sign_in", "Sign in to Start Trial") + Button::new("sign_in", "Try Zed Pro for Free") .disabled(signing_in) .full_width() .style(ButtonStyle::Tinted(ui::TintColor::Accent)) @@ -284,11 +280,6 @@ impl ZedAiOnboarding { .relative() .gap_1() .child(Headline::new("Welcome to Zed AI")) - .child( - Label::new("Choose how you want to start.") - .color(Color::Muted) - .mb_2(), - ) .map(|this| { if self.account_too_young { this.child(young_account_banner) @@ -318,7 +309,7 @@ impl ZedAiOnboarding { v_flex() .relative() .gap_1() - .child(Headline::new("Welcome to the Zed Pro free trial")) + .child(Headline::new("Welcome to the Zed Pro Trial")) .child( Label::new("Here's what you get for the next 14 days:") .color(Color::Muted) diff --git a/crates/ai_onboarding/src/young_account_banner.rs b/crates/ai_onboarding/src/young_account_banner.rs index 1e1ed3a865..a43625a60e 100644 --- a/crates/ai_onboarding/src/young_account_banner.rs +++ b/crates/ai_onboarding/src/young_account_banner.rs @@ -6,7 +6,7 @@ pub struct YoungAccountBanner; impl RenderOnce for YoungAccountBanner { fn render(self, _window: &mut Window, cx: &mut App) -> impl IntoElement { - const YOUNG_ACCOUNT_DISCLAIMER: &str = "To prevent abuse of our service, we cannot offer plans to GitHub accounts created fewer than 30 days ago. To request an exception, reach out to billing@zed.dev."; + const YOUNG_ACCOUNT_DISCLAIMER: &str = "To prevent abuse of our service, we cannot offer plans to GitHub accounts created fewer than 30 days ago. To request an exception, reach out to billing-support@zed.dev."; let label = div() .w_full() From 708c2645d104e39d01122ada2ebc0771d4f1623b Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Tue, 22 Jul 2025 20:53:57 +0200 Subject: [PATCH 0135/1052] collab: Tweak screen selector appearance (#34919) Co-authored-by: Danilo Leal Release Notes: - N/A Co-authored-by: Danilo Leal --- crates/git_ui/src/git_ui.rs | 2 +- crates/title_bar/src/collab.rs | 21 +++++++--- .../ui/src/components/button/split_button.rs | 40 ++++++++++++++----- crates/ui/src/components/list/list.rs | 4 +- 4 files changed, 48 insertions(+), 19 deletions(-) diff --git a/crates/git_ui/src/git_ui.rs b/crates/git_ui/src/git_ui.rs index a9ccaf7160..02b9c243fb 100644 --- a/crates/git_ui/src/git_ui.rs +++ b/crates/git_ui/src/git_ui.rs @@ -501,7 +501,7 @@ mod remote_button { ) .into_any_element(); - SplitButton { left, right } + SplitButton::new(left, right) } } diff --git a/crates/title_bar/src/collab.rs b/crates/title_bar/src/collab.rs index 1eebc0de0c..056c981ccf 100644 --- a/crates/title_bar/src/collab.rs +++ b/crates/title_bar/src/collab.rs @@ -11,8 +11,8 @@ use gpui::{App, Task, Window, actions}; use rpc::proto::{self}; use theme::ActiveTheme; use ui::{ - Avatar, AvatarAudioStatusIndicator, ContextMenu, ContextMenuItem, Facepile, PopoverMenu, - SplitButton, TintColor, Tooltip, prelude::*, + Avatar, AvatarAudioStatusIndicator, ContextMenu, ContextMenuItem, Divider, Facepile, + PopoverMenu, SplitButton, SplitButtonStyle, TintColor, Tooltip, prelude::*, }; use util::maybe; use workspace::notifications::DetachAndPromptErr; @@ -383,6 +383,7 @@ impl TitleBar { .detach_and_log_err(cx); }), ) + .child(Divider::vertical()) .into_any_element(), ); @@ -497,6 +498,7 @@ impl TitleBar { trigger.render(window, cx), self.render_screen_list().into_any_element(), ) + .style(SplitButtonStyle::Outlined) .into_any_element(), ); } @@ -547,10 +549,17 @@ impl TitleBar { entry_render: Box::new(move |_, _| { h_flex() .gap_2() - .child(Icon::new(IconName::Screen).when( - active_screenshare_id == Some(meta.id), - |this| this.color(Color::Accent), - )) + .child( + Icon::new(IconName::Screen) + .size(IconSize::XSmall) + .map(|this| { + if active_screenshare_id == Some(meta.id) { + this.color(Color::Accent) + } else { + this.color(Color::Muted) + } + }), + ) .child(Label::new(label.clone())) .child( Label::new(resolution.clone()) diff --git a/crates/ui/src/components/button/split_button.rs b/crates/ui/src/components/button/split_button.rs index c0811ecbab..a7fa2106d1 100644 --- a/crates/ui/src/components/button/split_button.rs +++ b/crates/ui/src/components/button/split_button.rs @@ -1,6 +1,6 @@ use gpui::{ AnyElement, App, BoxShadow, IntoElement, ParentElement, RenderOnce, Styled, Window, div, hsla, - point, px, + point, prelude::FluentBuilder, px, }; use theme::ActiveTheme; @@ -8,6 +8,12 @@ use crate::{ElevationIndex, h_flex}; use super::ButtonLike; +#[derive(Clone, Copy, PartialEq)] +pub enum SplitButtonStyle { + Filled, + Outlined, +} + /// /// A button with two parts: a primary action on the left and a secondary action on the right. /// /// The left side is a [`ButtonLike`] with the main action, while the right side can contain @@ -18,11 +24,21 @@ use super::ButtonLike; pub struct SplitButton { pub left: ButtonLike, pub right: AnyElement, + style: SplitButtonStyle, } impl SplitButton { pub fn new(left: ButtonLike, right: AnyElement) -> Self { - Self { left, right } + Self { + left, + right, + style: SplitButtonStyle::Filled, + } + } + + pub fn style(mut self, style: SplitButtonStyle) -> Self { + self.style = style; + self } } @@ -31,21 +47,23 @@ impl RenderOnce for SplitButton { h_flex() .rounded_sm() .border_1() - .border_color(cx.theme().colors().text_muted.alpha(0.12)) + .border_color(cx.theme().colors().border.opacity(0.5)) .child(div().flex_grow().child(self.left)) .child( div() .h_full() .w_px() - .bg(cx.theme().colors().text_muted.alpha(0.16)), + .bg(cx.theme().colors().border.opacity(0.5)), ) .child(self.right) - .bg(ElevationIndex::Surface.on_elevation_bg(cx)) - .shadow(vec![BoxShadow { - color: hsla(0.0, 0.0, 0.0, 0.16), - offset: point(px(0.), px(1.)), - blur_radius: px(0.), - spread_radius: px(0.), - }]) + .when(self.style == SplitButtonStyle::Filled, |this| { + this.bg(ElevationIndex::Surface.on_elevation_bg(cx)) + .shadow(vec![BoxShadow { + color: hsla(0.0, 0.0, 0.0, 0.16), + offset: point(px(0.), px(1.)), + blur_radius: px(0.), + spread_radius: px(0.), + }]) + }) } } diff --git a/crates/ui/src/components/list/list.rs b/crates/ui/src/components/list/list.rs index 1402b5d3d3..b6950f06a4 100644 --- a/crates/ui/src/components/list/list.rs +++ b/crates/ui/src/components/list/list.rs @@ -84,7 +84,9 @@ impl RenderOnce for List { (false, _) => this.children(self.children), (true, Some(false)) => this, (true, _) => match self.empty_message { - EmptyMessage::Text(text) => this.child(Label::new(text).color(Color::Muted)), + EmptyMessage::Text(text) => { + this.px_2().child(Label::new(text).color(Color::Muted)) + } EmptyMessage::Element(element) => this.child(element), }, }) From c0f75e1a175f0bf7a0931ecad9fb9e803034a3b0 Mon Sep 17 00:00:00 2001 From: Remco Smits Date: Tue, 22 Jul 2025 21:39:52 +0200 Subject: [PATCH 0136/1052] debugger: Fix built-in JavaScript debug tasks were not working due missing `type` field value (#34894) Release Notes: - Debugger: Fix built-in JavaScript debug tasks were not working due missing `type` field value --- assets/settings/initial_debug_tasks.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/assets/settings/initial_debug_tasks.json b/assets/settings/initial_debug_tasks.json index 78fc1fc5f0..af4512bd51 100644 --- a/assets/settings/initial_debug_tasks.json +++ b/assets/settings/initial_debug_tasks.json @@ -15,13 +15,15 @@ "adapter": "JavaScript", "program": "$ZED_FILE", "request": "launch", - "cwd": "$ZED_WORKTREE_ROOT" + "cwd": "$ZED_WORKTREE_ROOT", + "type": "pwa-node" }, { "label": "JavaScript debug terminal", "adapter": "JavaScript", "request": "launch", "cwd": "$ZED_WORKTREE_ROOT", - "console": "integratedTerminal" + "console": "integratedTerminal", + "type": "pwa-node" } ] From 446d333515fc6d6fca0a8c5ef3e929506c49396f Mon Sep 17 00:00:00 2001 From: Remco Smits Date: Tue, 22 Jul 2025 21:40:11 +0200 Subject: [PATCH 0137/1052] debugger: Fix debug console persist to history when reusing a previous item (#34893) Closes #34887 Release Notes: - Debugger: Fix debug console persist to history when reusing a previous item --- crates/project/src/search_history.rs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/crates/project/src/search_history.rs b/crates/project/src/search_history.rs index b84c2e0982..90b169bb0c 100644 --- a/crates/project/src/search_history.rs +++ b/crates/project/src/search_history.rs @@ -45,12 +45,6 @@ impl SearchHistory { } pub fn add(&mut self, cursor: &mut SearchHistoryCursor, search_string: String) { - if let Some(selected_ix) = cursor.selection { - if self.history.get(selected_ix) == Some(&search_string) { - return; - } - } - if self.insertion_behavior == QueryInsertionBehavior::ReplacePreviousIfContains { if let Some(previously_searched) = self.history.back_mut() { if search_string.contains(previously_searched.as_str()) { @@ -144,6 +138,14 @@ mod tests { ); assert_eq!(search_history.current(&cursor), Some("rustlang")); + // add item when it equals to current item if it's not the last one + search_history.add(&mut cursor, "php".to_string()); + search_history.previous(&mut cursor); + assert_eq!(search_history.current(&cursor), Some("rustlang")); + search_history.add(&mut cursor, "rustlang".to_string()); + assert_eq!(search_history.history.len(), 3, "Should add item"); + assert_eq!(search_history.current(&cursor), Some("rustlang")); + // push enough items to test SEARCH_HISTORY_LIMIT for i in 0..MAX_HISTORY_LEN * 2 { search_history.add(&mut cursor, format!("item{i}")); From f3c332d839a2fa4d3b8ba6906a497171f5de9a74 Mon Sep 17 00:00:00 2001 From: Umesh Yadav <23421535+imumesh18@users.noreply.github.com> Date: Wed, 23 Jul 2025 01:16:25 +0530 Subject: [PATCH 0138/1052] Fix new crate license symlink (#34922) The license file is not properly linked to actual license. This was casued due to new-crate script linking the license to wrong file. Fixed both of them. Reference logs: ``` 2025-07-22T17:16:19+05:30 ERROR [worktree] error reading target of symlink "/Users/umesh/code/zed/crates/onboarding/LICENSE-GPL": canonicalizing ``` Release Notes: - N/A --- crates/onboarding/LICENSE-GPL | 2 +- script/new-crate | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/onboarding/LICENSE-GPL b/crates/onboarding/LICENSE-GPL index dd648cce4f..89e542f750 120000 --- a/crates/onboarding/LICENSE-GPL +++ b/crates/onboarding/LICENSE-GPL @@ -1 +1 @@ -../../../LICENSE-GPL \ No newline at end of file +../../LICENSE-GPL \ No newline at end of file diff --git a/script/new-crate b/script/new-crate index df574981e7..52ee900b30 100755 --- a/script/new-crate +++ b/script/new-crate @@ -39,7 +39,7 @@ CRATE_PATH="crates/$CRATE_NAME" mkdir -p "$CRATE_PATH/src" # Symlink the license -ln -sf "../../../$LICENSE_FILE" "$CRATE_PATH/$LICENSE_FILE" +ln -sf "../../$LICENSE_FILE" "$CRATE_PATH/$LICENSE_FILE" CARGO_TOML_TEMPLATE=$(cat << 'EOF' [package] From 7f70325a93b63d47cc08ce9e040ba0dcb27f306c Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Tue, 22 Jul 2025 16:04:08 -0400 Subject: [PATCH 0139/1052] language_models: Rename `handler` to `handle` in Bedrock provider (#34923) This PR renames the `handler` field to `handle` on the `BedrockLanguageModelProvider` and `BedrockModel` structs. Release Notes: - N/A --- crates/language_models/src/provider/bedrock.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/crates/language_models/src/provider/bedrock.rs b/crates/language_models/src/provider/bedrock.rs index a022511b11..a86b3e78f5 100644 --- a/crates/language_models/src/provider/bedrock.rs +++ b/crates/language_models/src/provider/bedrock.rs @@ -243,7 +243,7 @@ impl State { pub struct BedrockLanguageModelProvider { http_client: AwsHttpClient, - handler: tokio::runtime::Handle, + handle: tokio::runtime::Handle, state: gpui::Entity, } @@ -260,7 +260,7 @@ impl BedrockLanguageModelProvider { Self { http_client: AwsHttpClient::new(http_client.clone()), - handler: Tokio::handle(cx), + handle: Tokio::handle(cx), state, } } @@ -270,7 +270,7 @@ impl BedrockLanguageModelProvider { id: LanguageModelId::from(model.id().to_string()), model, http_client: self.http_client.clone(), - handler: self.handler.clone(), + handle: self.handle.clone(), state: self.state.clone(), client: OnceCell::new(), request_limiter: RateLimiter::new(4), @@ -371,7 +371,7 @@ struct BedrockModel { id: LanguageModelId, model: Model, http_client: AwsHttpClient, - handler: tokio::runtime::Handle, + handle: tokio::runtime::Handle, client: OnceCell, state: gpui::Entity, request_limiter: RateLimiter, @@ -443,7 +443,7 @@ impl BedrockModel { } } - let config = self.handler.block_on(config_builder.load()); + let config = self.handle.block_on(config_builder.load()); anyhow::Ok(BedrockClient::new(&config)) }) .context("initializing Bedrock client")?; From 5d985fa1d8684aa85e1bbde944c4f1b42591fedd Mon Sep 17 00:00:00 2001 From: Agus Zubiaga Date: Tue, 22 Jul 2025 19:14:34 -0300 Subject: [PATCH 0140/1052] Improve MCP server responses (#34927) Release Notes: - N/A --- crates/agent_servers/src/claude/mcp_server.rs | 26 ++++++++----------- crates/agent_servers/src/claude/tools.rs | 10 ------- 2 files changed, 11 insertions(+), 25 deletions(-) diff --git a/crates/agent_servers/src/claude/mcp_server.rs b/crates/agent_servers/src/claude/mcp_server.rs index 468027c4c3..2405603550 100644 --- a/crates/agent_servers/src/claude/mcp_server.rs +++ b/crates/agent_servers/src/claude/mcp_server.rs @@ -19,7 +19,7 @@ use util::debug_panic; use crate::claude::{ McpServerConfig, - tools::{ClaudeTool, EditToolParams, EditToolResponse, ReadToolParams, ReadToolResponse}, + tools::{ClaudeTool, EditToolParams, ReadToolParams}, }; pub struct ClaudeMcpServer { @@ -179,11 +179,9 @@ impl ClaudeMcpServer { let input = serde_json::from_value(request.arguments.context("Arguments required")?)?; - let result = Self::handle_read_tool_call(input, delegate, cx).await?; + let content = Self::handle_read_tool_call(input, delegate, cx).await?; Ok(CallToolResponse { - content: vec![ToolResponseContent::Text { - text: serde_json::to_string(&result)?, - }], + content, is_error: None, meta: None, }) @@ -191,11 +189,9 @@ impl ClaudeMcpServer { let input = serde_json::from_value(request.arguments.context("Arguments required")?)?; - let result = Self::handle_edit_tool_call(input, delegate, cx).await?; + Self::handle_edit_tool_call(input, delegate, cx).await?; Ok(CallToolResponse { - content: vec![ToolResponseContent::Text { - text: serde_json::to_string(&result)?, - }], + content: vec![], is_error: None, meta: None, }) @@ -209,7 +205,7 @@ impl ClaudeMcpServer { params: ReadToolParams, delegate: AcpClientDelegate, cx: &AsyncApp, - ) -> Task> { + ) -> Task>> { cx.foreground_executor().spawn(async move { let response = delegate .read_text_file(ReadTextFileParams { @@ -219,9 +215,9 @@ impl ClaudeMcpServer { }) .await?; - Ok(ReadToolResponse { - content: response.content, - }) + Ok(vec![ToolResponseContent::Text { + text: response.content, + }]) }) } @@ -229,7 +225,7 @@ impl ClaudeMcpServer { params: EditToolParams, delegate: AcpClientDelegate, cx: &AsyncApp, - ) -> Task> { + ) -> Task> { cx.foreground_executor().spawn(async move { let response = delegate .read_text_file_reusing_snapshot(ReadTextFileParams { @@ -251,7 +247,7 @@ impl ClaudeMcpServer { }) .await?; - Ok(EditToolResponse) + Ok(()) }) } diff --git a/crates/agent_servers/src/claude/tools.rs b/crates/agent_servers/src/claude/tools.rs index 9c82139a07..75a26ee230 100644 --- a/crates/agent_servers/src/claude/tools.rs +++ b/crates/agent_servers/src/claude/tools.rs @@ -434,10 +434,6 @@ pub struct EditToolParams { pub new_text: String, } -#[derive(Serialize)] -#[serde(rename_all = "camelCase")] -pub struct EditToolResponse; - #[derive(Deserialize, JsonSchema, Debug)] pub struct ReadToolParams { /// The absolute path to the file to read. @@ -450,12 +446,6 @@ pub struct ReadToolParams { pub limit: Option, } -#[derive(Serialize)] -#[serde(rename_all = "camelCase")] -pub struct ReadToolResponse { - pub content: String, -} - #[derive(Deserialize, JsonSchema, Debug)] pub struct WriteToolParams { /// Absolute path for new file From 056003860af3894327b8685caf705cc4f873ba85 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Tue, 22 Jul 2025 18:57:07 -0400 Subject: [PATCH 0141/1052] collab: Remove `POST /billing/subscriptions` endpoint (#34928) This PR removes the `POST /billing/subscriptions` endpoint, as it has been moved to `cloud.zed.dev`. Release Notes: - N/A --- crates/collab/src/api/billing.rs | 119 +-------- crates/collab/src/stripe_billing.rs | 104 +------- .../collab/src/tests/stripe_billing_tests.rs | 249 +----------------- 3 files changed, 9 insertions(+), 463 deletions(-) diff --git a/crates/collab/src/api/billing.rs b/crates/collab/src/api/billing.rs index 9aa6578b2a..d6e42ad2fb 100644 --- a/crates/collab/src/api/billing.rs +++ b/crates/collab/src/api/billing.rs @@ -25,7 +25,7 @@ use crate::llm::db::subscription_usage_meter::{self, CompletionMode}; use crate::rpc::{ResultExt as _, Server}; use crate::stripe_client::{ StripeCancellationDetailsReason, StripeClient, StripeCustomerId, StripeSubscription, - StripeSubscriptionId, UpdateCustomerParams, + StripeSubscriptionId, }; use crate::{AppState, Error, Result}; use crate::{db::UserId, llm::db::LlmDatabase}; @@ -40,7 +40,6 @@ use crate::{ pub fn router() -> Router { Router::new() - .route("/billing/subscriptions", post(create_billing_subscription)) .route( "/billing/subscriptions/manage", post(manage_billing_subscription), @@ -51,122 +50,6 @@ pub fn router() -> Router { ) } -#[derive(Debug, PartialEq, Clone, Copy, Deserialize)] -#[serde(rename_all = "snake_case")] -enum ProductCode { - ZedPro, - ZedProTrial, -} - -#[derive(Debug, Deserialize)] -struct CreateBillingSubscriptionBody { - github_user_id: i32, - product: ProductCode, -} - -#[derive(Debug, Serialize)] -struct CreateBillingSubscriptionResponse { - checkout_session_url: String, -} - -/// Initiates a Stripe Checkout session for creating a billing subscription. -async fn create_billing_subscription( - Extension(app): Extension>, - extract::Json(body): extract::Json, -) -> Result> { - let user = app - .db - .get_user_by_github_user_id(body.github_user_id) - .await? - .context("user not found")?; - - let Some(stripe_billing) = app.stripe_billing.clone() else { - log::error!("failed to retrieve Stripe billing object"); - Err(Error::http( - StatusCode::NOT_IMPLEMENTED, - "not supported".into(), - ))? - }; - - if let Some(existing_subscription) = app.db.get_active_billing_subscription(user.id).await? { - let is_checkout_allowed = body.product == ProductCode::ZedProTrial - && existing_subscription.kind == Some(SubscriptionKind::ZedFree); - - if !is_checkout_allowed { - return Err(Error::http( - StatusCode::CONFLICT, - "user already has an active subscription".into(), - )); - } - } - - let existing_billing_customer = app.db.get_billing_customer_by_user_id(user.id).await?; - if let Some(existing_billing_customer) = &existing_billing_customer { - if existing_billing_customer.has_overdue_invoices { - return Err(Error::http( - StatusCode::PAYMENT_REQUIRED, - "user has overdue invoices".into(), - )); - } - } - - let customer_id = if let Some(existing_customer) = &existing_billing_customer { - let customer_id = StripeCustomerId(existing_customer.stripe_customer_id.clone().into()); - if let Some(email) = user.email_address.as_deref() { - stripe_billing - .client() - .update_customer(&customer_id, UpdateCustomerParams { email: Some(email) }) - .await - // Update of email address is best-effort - continue checkout even if it fails - .context("error updating stripe customer email address") - .log_err(); - } - customer_id - } else { - stripe_billing - .find_or_create_customer_by_email(user.email_address.as_deref()) - .await? - }; - - let success_url = format!( - "{}/account?checkout_complete=1", - app.config.zed_dot_dev_url() - ); - - let checkout_session_url = match body.product { - ProductCode::ZedPro => { - stripe_billing - .checkout_with_zed_pro(&customer_id, &user.github_login, &success_url) - .await? - } - ProductCode::ZedProTrial => { - if let Some(existing_billing_customer) = &existing_billing_customer { - if existing_billing_customer.trial_started_at.is_some() { - return Err(Error::http( - StatusCode::FORBIDDEN, - "user already used free trial".into(), - )); - } - } - - let feature_flags = app.db.get_user_flags(user.id).await?; - - stripe_billing - .checkout_with_zed_pro_trial( - &customer_id, - &user.github_login, - feature_flags, - &success_url, - ) - .await? - } - }; - - Ok(Json(CreateBillingSubscriptionResponse { - checkout_session_url, - })) -} - #[derive(Debug, PartialEq, Deserialize)] #[serde(rename_all = "snake_case")] enum ManageSubscriptionIntent { diff --git a/crates/collab/src/stripe_billing.rs b/crates/collab/src/stripe_billing.rs index 50accf9557..850b716a9f 100644 --- a/crates/collab/src/stripe_billing.rs +++ b/crates/collab/src/stripe_billing.rs @@ -1,6 +1,6 @@ use std::sync::Arc; -use anyhow::{Context as _, anyhow}; +use anyhow::anyhow; use chrono::Utc; use collections::HashMap; use stripe::SubscriptionStatus; @@ -9,18 +9,13 @@ use uuid::Uuid; use crate::Result; use crate::db::billing_subscription::SubscriptionKind; -use crate::llm::AGENT_EXTENDED_TRIAL_FEATURE_FLAG; use crate::stripe_client::{ - RealStripeClient, StripeAutomaticTax, StripeBillingAddressCollection, - StripeCheckoutSessionMode, StripeCheckoutSessionPaymentMethodCollection, StripeClient, - StripeCreateCheckoutSessionLineItems, StripeCreateCheckoutSessionParams, - StripeCreateCheckoutSessionSubscriptionData, StripeCreateMeterEventParams, + RealStripeClient, StripeAutomaticTax, StripeClient, StripeCreateMeterEventParams, StripeCreateMeterEventPayload, StripeCreateSubscriptionItems, StripeCreateSubscriptionParams, - StripeCustomerId, StripeCustomerUpdate, StripeCustomerUpdateAddress, StripeCustomerUpdateName, - StripePrice, StripePriceId, StripeSubscription, StripeSubscriptionId, + StripeCustomerId, StripePrice, StripePriceId, StripeSubscription, StripeSubscriptionId, StripeSubscriptionTrialSettings, StripeSubscriptionTrialSettingsEndBehavior, - StripeSubscriptionTrialSettingsEndBehaviorMissingPaymentMethod, StripeTaxIdCollection, - UpdateSubscriptionItems, UpdateSubscriptionParams, + StripeSubscriptionTrialSettingsEndBehaviorMissingPaymentMethod, UpdateSubscriptionItems, + UpdateSubscriptionParams, }; pub struct StripeBilling { @@ -214,95 +209,6 @@ impl StripeBilling { Ok(()) } - pub async fn checkout_with_zed_pro( - &self, - customer_id: &StripeCustomerId, - github_login: &str, - success_url: &str, - ) -> Result { - let zed_pro_price_id = self.zed_pro_price_id().await?; - - let mut params = StripeCreateCheckoutSessionParams::default(); - params.mode = Some(StripeCheckoutSessionMode::Subscription); - params.customer = Some(customer_id); - params.client_reference_id = Some(github_login); - params.line_items = Some(vec![StripeCreateCheckoutSessionLineItems { - price: Some(zed_pro_price_id.to_string()), - quantity: Some(1), - }]); - params.success_url = Some(success_url); - params.billing_address_collection = Some(StripeBillingAddressCollection::Required); - params.customer_update = Some(StripeCustomerUpdate { - address: Some(StripeCustomerUpdateAddress::Auto), - name: Some(StripeCustomerUpdateName::Auto), - shipping: None, - }); - params.tax_id_collection = Some(StripeTaxIdCollection { enabled: true }); - - let session = self.client.create_checkout_session(params).await?; - Ok(session.url.context("no checkout session URL")?) - } - - pub async fn checkout_with_zed_pro_trial( - &self, - customer_id: &StripeCustomerId, - github_login: &str, - feature_flags: Vec, - success_url: &str, - ) -> Result { - let zed_pro_price_id = self.zed_pro_price_id().await?; - - let eligible_for_extended_trial = feature_flags - .iter() - .any(|flag| flag == AGENT_EXTENDED_TRIAL_FEATURE_FLAG); - - let trial_period_days = if eligible_for_extended_trial { 60 } else { 14 }; - - let mut subscription_metadata = std::collections::HashMap::new(); - if eligible_for_extended_trial { - subscription_metadata.insert( - "promo_feature_flag".to_string(), - AGENT_EXTENDED_TRIAL_FEATURE_FLAG.to_string(), - ); - } - - let mut params = StripeCreateCheckoutSessionParams::default(); - params.subscription_data = Some(StripeCreateCheckoutSessionSubscriptionData { - trial_period_days: Some(trial_period_days), - trial_settings: Some(StripeSubscriptionTrialSettings { - end_behavior: StripeSubscriptionTrialSettingsEndBehavior { - missing_payment_method: - StripeSubscriptionTrialSettingsEndBehaviorMissingPaymentMethod::Cancel, - }, - }), - metadata: if !subscription_metadata.is_empty() { - Some(subscription_metadata) - } else { - None - }, - }); - params.mode = Some(StripeCheckoutSessionMode::Subscription); - params.payment_method_collection = - Some(StripeCheckoutSessionPaymentMethodCollection::IfRequired); - params.customer = Some(customer_id); - params.client_reference_id = Some(github_login); - params.line_items = Some(vec![StripeCreateCheckoutSessionLineItems { - price: Some(zed_pro_price_id.to_string()), - quantity: Some(1), - }]); - params.success_url = Some(success_url); - params.billing_address_collection = Some(StripeBillingAddressCollection::Required); - params.customer_update = Some(StripeCustomerUpdate { - address: Some(StripeCustomerUpdateAddress::Auto), - name: Some(StripeCustomerUpdateName::Auto), - shipping: None, - }); - params.tax_id_collection = Some(StripeTaxIdCollection { enabled: true }); - - let session = self.client.create_checkout_session(params).await?; - Ok(session.url.context("no checkout session URL")?) - } - pub async fn subscribe_to_zed_free( &self, customer_id: StripeCustomerId, diff --git a/crates/collab/src/tests/stripe_billing_tests.rs b/crates/collab/src/tests/stripe_billing_tests.rs index c19eb0a234..5c5bcd5832 100644 --- a/crates/collab/src/tests/stripe_billing_tests.rs +++ b/crates/collab/src/tests/stripe_billing_tests.rs @@ -3,17 +3,11 @@ use std::sync::Arc; use chrono::{Duration, Utc}; use pretty_assertions::assert_eq; -use crate::llm::AGENT_EXTENDED_TRIAL_FEATURE_FLAG; use crate::stripe_billing::StripeBilling; use crate::stripe_client::{ - FakeStripeClient, StripeBillingAddressCollection, StripeCheckoutSessionMode, - StripeCheckoutSessionPaymentMethodCollection, StripeCreateCheckoutSessionLineItems, - StripeCreateCheckoutSessionSubscriptionData, StripeCustomerId, StripeCustomerUpdate, - StripeCustomerUpdateAddress, StripeCustomerUpdateName, StripeMeter, StripeMeterId, StripePrice, - StripePriceId, StripePriceRecurring, StripeSubscription, StripeSubscriptionId, - StripeSubscriptionItem, StripeSubscriptionItemId, StripeSubscriptionTrialSettings, - StripeSubscriptionTrialSettingsEndBehavior, - StripeSubscriptionTrialSettingsEndBehaviorMissingPaymentMethod, UpdateSubscriptionItems, + FakeStripeClient, StripeCustomerId, StripeMeter, StripeMeterId, StripePrice, StripePriceId, + StripePriceRecurring, StripeSubscription, StripeSubscriptionId, StripeSubscriptionItem, + StripeSubscriptionItemId, UpdateSubscriptionItems, }; fn make_stripe_billing() -> (StripeBilling, Arc) { @@ -364,240 +358,3 @@ async fn test_bill_model_request_usage() { ); assert_eq!(create_meter_event_calls[0].value, 73); } - -#[gpui::test] -async fn test_checkout_with_zed_pro() { - let (stripe_billing, stripe_client) = make_stripe_billing(); - - let customer_id = StripeCustomerId("cus_test".into()); - let github_login = "zeduser1"; - let success_url = "https://example.com/success"; - - // It returns an error when the Zed Pro price doesn't exist. - { - let result = stripe_billing - .checkout_with_zed_pro(&customer_id, github_login, success_url) - .await; - - assert!(result.is_err()); - assert_eq!( - result.err().unwrap().to_string(), - r#"no price ID found for "zed-pro""# - ); - } - - // Successful checkout. - { - let price = StripePrice { - id: StripePriceId("price_1".into()), - unit_amount: Some(2000), - lookup_key: Some("zed-pro".to_string()), - recurring: None, - }; - stripe_client - .prices - .lock() - .insert(price.id.clone(), price.clone()); - - stripe_billing.initialize().await.unwrap(); - - let checkout_url = stripe_billing - .checkout_with_zed_pro(&customer_id, github_login, success_url) - .await - .unwrap(); - - assert!(checkout_url.starts_with("https://checkout.stripe.com/c/pay")); - - let create_checkout_session_calls = stripe_client - .create_checkout_session_calls - .lock() - .drain(..) - .collect::>(); - assert_eq!(create_checkout_session_calls.len(), 1); - let call = create_checkout_session_calls.into_iter().next().unwrap(); - assert_eq!(call.customer, Some(customer_id)); - assert_eq!(call.client_reference_id.as_deref(), Some(github_login)); - assert_eq!(call.mode, Some(StripeCheckoutSessionMode::Subscription)); - assert_eq!( - call.line_items, - Some(vec![StripeCreateCheckoutSessionLineItems { - price: Some(price.id.to_string()), - quantity: Some(1) - }]) - ); - assert_eq!(call.payment_method_collection, None); - assert_eq!(call.subscription_data, None); - assert_eq!(call.success_url.as_deref(), Some(success_url)); - assert_eq!( - call.billing_address_collection, - Some(StripeBillingAddressCollection::Required) - ); - assert_eq!( - call.customer_update, - Some(StripeCustomerUpdate { - address: Some(StripeCustomerUpdateAddress::Auto), - name: Some(StripeCustomerUpdateName::Auto), - shipping: None, - }) - ); - } -} - -#[gpui::test] -async fn test_checkout_with_zed_pro_trial() { - let (stripe_billing, stripe_client) = make_stripe_billing(); - - let customer_id = StripeCustomerId("cus_test".into()); - let github_login = "zeduser1"; - let success_url = "https://example.com/success"; - - // It returns an error when the Zed Pro price doesn't exist. - { - let result = stripe_billing - .checkout_with_zed_pro_trial(&customer_id, github_login, Vec::new(), success_url) - .await; - - assert!(result.is_err()); - assert_eq!( - result.err().unwrap().to_string(), - r#"no price ID found for "zed-pro""# - ); - } - - let price = StripePrice { - id: StripePriceId("price_1".into()), - unit_amount: Some(2000), - lookup_key: Some("zed-pro".to_string()), - recurring: None, - }; - stripe_client - .prices - .lock() - .insert(price.id.clone(), price.clone()); - - stripe_billing.initialize().await.unwrap(); - - // Successful checkout. - { - let checkout_url = stripe_billing - .checkout_with_zed_pro_trial(&customer_id, github_login, Vec::new(), success_url) - .await - .unwrap(); - - assert!(checkout_url.starts_with("https://checkout.stripe.com/c/pay")); - - let create_checkout_session_calls = stripe_client - .create_checkout_session_calls - .lock() - .drain(..) - .collect::>(); - assert_eq!(create_checkout_session_calls.len(), 1); - let call = create_checkout_session_calls.into_iter().next().unwrap(); - assert_eq!(call.customer.as_ref(), Some(&customer_id)); - assert_eq!(call.client_reference_id.as_deref(), Some(github_login)); - assert_eq!(call.mode, Some(StripeCheckoutSessionMode::Subscription)); - assert_eq!( - call.line_items, - Some(vec![StripeCreateCheckoutSessionLineItems { - price: Some(price.id.to_string()), - quantity: Some(1) - }]) - ); - assert_eq!( - call.payment_method_collection, - Some(StripeCheckoutSessionPaymentMethodCollection::IfRequired) - ); - assert_eq!( - call.subscription_data, - Some(StripeCreateCheckoutSessionSubscriptionData { - trial_period_days: Some(14), - trial_settings: Some(StripeSubscriptionTrialSettings { - end_behavior: StripeSubscriptionTrialSettingsEndBehavior { - missing_payment_method: - StripeSubscriptionTrialSettingsEndBehaviorMissingPaymentMethod::Cancel, - }, - }), - metadata: None, - }) - ); - assert_eq!(call.success_url.as_deref(), Some(success_url)); - assert_eq!( - call.billing_address_collection, - Some(StripeBillingAddressCollection::Required) - ); - assert_eq!( - call.customer_update, - Some(StripeCustomerUpdate { - address: Some(StripeCustomerUpdateAddress::Auto), - name: Some(StripeCustomerUpdateName::Auto), - shipping: None, - }) - ); - } - - // Successful checkout with extended trial. - { - let checkout_url = stripe_billing - .checkout_with_zed_pro_trial( - &customer_id, - github_login, - vec![AGENT_EXTENDED_TRIAL_FEATURE_FLAG.to_string()], - success_url, - ) - .await - .unwrap(); - - assert!(checkout_url.starts_with("https://checkout.stripe.com/c/pay")); - - let create_checkout_session_calls = stripe_client - .create_checkout_session_calls - .lock() - .drain(..) - .collect::>(); - assert_eq!(create_checkout_session_calls.len(), 1); - let call = create_checkout_session_calls.into_iter().next().unwrap(); - assert_eq!(call.customer, Some(customer_id)); - assert_eq!(call.client_reference_id.as_deref(), Some(github_login)); - assert_eq!(call.mode, Some(StripeCheckoutSessionMode::Subscription)); - assert_eq!( - call.line_items, - Some(vec![StripeCreateCheckoutSessionLineItems { - price: Some(price.id.to_string()), - quantity: Some(1) - }]) - ); - assert_eq!( - call.payment_method_collection, - Some(StripeCheckoutSessionPaymentMethodCollection::IfRequired) - ); - assert_eq!( - call.subscription_data, - Some(StripeCreateCheckoutSessionSubscriptionData { - trial_period_days: Some(60), - trial_settings: Some(StripeSubscriptionTrialSettings { - end_behavior: StripeSubscriptionTrialSettingsEndBehavior { - missing_payment_method: - StripeSubscriptionTrialSettingsEndBehaviorMissingPaymentMethod::Cancel, - }, - }), - metadata: Some(std::collections::HashMap::from_iter([( - "promo_feature_flag".into(), - AGENT_EXTENDED_TRIAL_FEATURE_FLAG.into() - )])), - }) - ); - assert_eq!(call.success_url.as_deref(), Some(success_url)); - assert_eq!( - call.billing_address_collection, - Some(StripeBillingAddressCollection::Required) - ); - assert_eq!( - call.customer_update, - Some(StripeCustomerUpdate { - address: Some(StripeCustomerUpdateAddress::Auto), - name: Some(StripeCustomerUpdateName::Auto), - shipping: None, - }) - ); - } -} From e90cf0b9412b7f8fcb557d1edb2c3f586c7bd45b Mon Sep 17 00:00:00 2001 From: Smit Barmase Date: Wed, 23 Jul 2025 06:46:24 +0530 Subject: [PATCH 0142/1052] workspace: Fix last removed folder from workspace used to reopen on Zed startup (#34925) Closes #34924 Now, when `local_paths` are empty, we detach `session_id` from that workspace serialization item. This way, when we restore it using the default "last_session", we don't restore this workspace back. This is same as when we use `cmd-w` to close window, which also sets `session_id` to `None` before serialization. Release Notes: - Fixed an issue where last removed folder from workspace used to reopen on Zed startup. --- crates/workspace/src/persistence.rs | 8 +++ crates/workspace/src/workspace.rs | 87 ++++++++++++++++++----------- 2 files changed, 61 insertions(+), 34 deletions(-) diff --git a/crates/workspace/src/persistence.rs b/crates/workspace/src/persistence.rs index 406f37419d..3f8b098203 100644 --- a/crates/workspace/src/persistence.rs +++ b/crates/workspace/src/persistence.rs @@ -1336,6 +1336,14 @@ impl WorkspaceDb { } } + query! { + pub(crate) async fn set_session_id(workspace_id: WorkspaceId, session_id: Option) -> Result<()> { + UPDATE workspaces + SET session_id = ?2 + WHERE workspace_id = ?1 + } + } + pub async fn toolchain( &self, workspace_id: WorkspaceId, diff --git a/crates/workspace/src/workspace.rs b/crates/workspace/src/workspace.rs index f37abe59e2..2c223c476b 100644 --- a/crates/workspace/src/workspace.rs +++ b/crates/workspace/src/workspace.rs @@ -1016,6 +1016,15 @@ pub enum OpenVisible { OnlyDirectories, } +enum WorkspaceLocation { + // Valid local paths or SSH project to serialize + Location(SerializedWorkspaceLocation), + // No valid location found hence clear session id + DetachFromSession, + // No valid location found to serialize + None, +} + type PromptForNewPath = Box< dyn Fn( &mut Workspace, @@ -1135,7 +1144,6 @@ impl Workspace { this.update_window_title(window, cx); this.serialize_workspace(window, cx); // This event could be triggered by `AddFolderToProject` or `RemoveFromProject`. - // So we need to update the history. this.update_history(cx); } @@ -5218,48 +5226,58 @@ impl Workspace { } } - if let Some(location) = self.serialize_workspace_location(cx) { - let breakpoints = self.project.update(cx, |project, cx| { - project - .breakpoint_store() - .read(cx) - .all_source_breakpoints(cx) - }); + match self.serialize_workspace_location(cx) { + WorkspaceLocation::Location(location) => { + let breakpoints = self.project.update(cx, |project, cx| { + project + .breakpoint_store() + .read(cx) + .all_source_breakpoints(cx) + }); - let center_group = build_serialized_pane_group(&self.center.root, window, cx); - let docks = build_serialized_docks(self, window, cx); - let window_bounds = Some(SerializedWindowBounds(window.window_bounds())); - let serialized_workspace = SerializedWorkspace { - id: database_id, - location, - center_group, - window_bounds, - display: Default::default(), - docks, - centered_layout: self.centered_layout, - session_id: self.session_id.clone(), - breakpoints, - window_id: Some(window.window_handle().window_id().as_u64()), - }; + let center_group = build_serialized_pane_group(&self.center.root, window, cx); + let docks = build_serialized_docks(self, window, cx); + let window_bounds = Some(SerializedWindowBounds(window.window_bounds())); + let serialized_workspace = SerializedWorkspace { + id: database_id, + location, + center_group, + window_bounds, + display: Default::default(), + docks, + centered_layout: self.centered_layout, + session_id: self.session_id.clone(), + breakpoints, + window_id: Some(window.window_handle().window_id().as_u64()), + }; - return window.spawn(cx, async move |_| { - persistence::DB.save_workspace(serialized_workspace).await; - }); + window.spawn(cx, async move |_| { + persistence::DB.save_workspace(serialized_workspace).await; + }) + } + WorkspaceLocation::DetachFromSession => window.spawn(cx, async move |_| { + persistence::DB + .set_session_id(database_id, None) + .await + .log_err(); + }), + WorkspaceLocation::None => Task::ready(()), } - Task::ready(()) } - fn serialize_workspace_location(&self, cx: &App) -> Option { + fn serialize_workspace_location(&self, cx: &App) -> WorkspaceLocation { if let Some(ssh_project) = &self.serialized_ssh_project { - Some(SerializedWorkspaceLocation::Ssh(ssh_project.clone())) + WorkspaceLocation::Location(SerializedWorkspaceLocation::Ssh(ssh_project.clone())) } else if let Some(local_paths) = self.local_paths(cx) { if !local_paths.is_empty() { - Some(SerializedWorkspaceLocation::from_local_paths(local_paths)) + WorkspaceLocation::Location(SerializedWorkspaceLocation::from_local_paths( + local_paths, + )) } else { - None + WorkspaceLocation::DetachFromSession } } else { - None + WorkspaceLocation::None } } @@ -5267,8 +5285,9 @@ impl Workspace { let Some(id) = self.database_id() else { return; }; - let Some(location) = self.serialize_workspace_location(cx) else { - return; + let location = match self.serialize_workspace_location(cx) { + WorkspaceLocation::Location(location) => location, + _ => return, }; if let Some(manager) = HistoryManager::global(cx) { manager.update(cx, |this, cx| { From 11ac83f3d46b2f979a3a13918ea9912f73d21501 Mon Sep 17 00:00:00 2001 From: Smit Barmase Date: Wed, 23 Jul 2025 06:48:31 +0530 Subject: [PATCH 0143/1052] workspace: Fix closing remote workspace restores last local workspace on startup (#34931) Closes #7759 While opening a new SSH project if we are reusing an existing window, i.e. drop the existing workspace and create a new one, then before dropping it, we should remove `session_id` from that workspace's serialized entry. That way: 1. Upon closing (cmd-w) this remote workspace (which also clears `session_id` for this), and then quitting. No workspace with that `session_id` is found, and it starts fresh. 2. Upon directly quitting (cmd-q) this remote workspace, only this workspace exists in db (among two of them) with that `session_id`, and it restores correctly. Release Notes: - Fixed an issue while closing remote workspace restores last local workspace on startup. --- crates/workspace/src/workspace.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/crates/workspace/src/workspace.rs b/crates/workspace/src/workspace.rs index 2c223c476b..4c70c52d5a 100644 --- a/crates/workspace/src/workspace.rs +++ b/crates/workspace/src/workspace.rs @@ -7378,6 +7378,17 @@ async fn open_ssh_project_inner( return Err(project_path_errors.pop().context("no paths given")?); } + if let Some(detach_session_task) = window + .update(cx, |_workspace, window, cx| { + cx.spawn_in(window, async move |this, cx| { + this.update_in(cx, |this, window, cx| this.remove_from_session(window, cx)) + }) + }) + .ok() + { + detach_session_task.await.ok(); + } + cx.update_window(window.into(), |_, window, cx| { window.replace_root(cx, |window, cx| { telemetry::event!("SSH Project Opened"); From 3e27fa1d92d084a3374691a83bd3ab5766b14ad8 Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Wed, 23 Jul 2025 10:10:40 +0800 Subject: [PATCH 0144/1052] gpui: Allow Animation to be cloned (#34933) Release Notes: - N/A --- Let `Animation` able to clone, then we can define one to share for multiple places. For example: image --- crates/gpui/src/elements/animation.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/crates/gpui/src/elements/animation.rs b/crates/gpui/src/elements/animation.rs index bcdfa3562c..11dd19e260 100644 --- a/crates/gpui/src/elements/animation.rs +++ b/crates/gpui/src/elements/animation.rs @@ -1,4 +1,7 @@ -use std::time::{Duration, Instant}; +use std::{ + rc::Rc, + time::{Duration, Instant}, +}; use crate::{ AnyElement, App, Element, ElementId, GlobalElementId, InspectorElementId, IntoElement, Window, @@ -8,6 +11,7 @@ pub use easing::*; use smallvec::SmallVec; /// An animation that can be applied to an element. +#[derive(Clone)] pub struct Animation { /// The amount of time for which this animation should run pub duration: Duration, @@ -15,7 +19,7 @@ pub struct Animation { pub oneshot: bool, /// A function that takes a delta between 0 and 1 and returns a new delta /// between 0 and 1 based on the given easing function. - pub easing: Box f32>, + pub easing: Rc f32>, } impl Animation { @@ -25,7 +29,7 @@ impl Animation { Self { duration, oneshot: true, - easing: Box::new(linear), + easing: Rc::new(linear), } } @@ -39,7 +43,7 @@ impl Animation { /// The easing function will take a time delta between 0 and 1 and return a new delta /// between 0 and 1 pub fn with_easing(mut self, easing: impl Fn(f32) -> f32 + 'static) -> Self { - self.easing = Box::new(easing); + self.easing = Rc::new(easing); self } } From 500ceaabcde9d78b3a1a0d14674523e497dbc6e4 Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Tue, 22 Jul 2025 22:39:32 -0400 Subject: [PATCH 0145/1052] Add an `editor: diff clipboard with selection` action (#33283) https://github.com/user-attachments/assets/d472fbdd-7736-4bd7-8a90-8cca356b2815 This PR adds `editor: diff clipboard with selection` - good for spotting the differences in eerily-similar code, which is when refactoring code, as you need to see what needs to be passed in in order to maintain previous behavior of both snippets. 1. Copy some text from anywhere 2. Highlight some text in Zed 3. Run `editor: diff clipboard with selection` Like JetBrains' IDEs and VS Code with the `PartialDiff` package, if the selection is empty, we take the entire buffer as the selection. Caveats: - We do not know the language of the text in the clipboard. I went ahead and just assumed that in most cases, it will be the same language as the selected text, which does mean we will highlight the old text incorrectly if they are copying from a different language, but I think in most cases, it will be the same, and the alternative of always having no syntax highlighting is worse. PyCharm seems to do the same thing. Release Notes: - Added an `editor: diff clipboard with selection` action --------- Co-authored-by: Junkui Zhang <364772080@qq.com> Co-authored-by: Ben Kunkle --- crates/editor/src/actions.rs | 9 + crates/editor/src/editor.rs | 36 ++ crates/editor/src/element.rs | 1 + .../src/{diff_view.rs => file_diff_view.rs} | 106 ++-- crates/git_ui/src/git_ui.rs | 15 +- crates/git_ui/src/text_diff_view.rs | 554 ++++++++++++++++++ crates/gpui/src/app/entity_map.rs | 2 +- crates/zed/src/zed/open_listener.rs | 4 +- 8 files changed, 671 insertions(+), 56 deletions(-) rename crates/git_ui/src/{diff_view.rs => file_diff_view.rs} (89%) create mode 100644 crates/git_ui/src/text_diff_view.rs diff --git a/crates/editor/src/actions.rs b/crates/editor/src/actions.rs index 8557b57f46..f80a6afbbb 100644 --- a/crates/editor/src/actions.rs +++ b/crates/editor/src/actions.rs @@ -259,6 +259,13 @@ pub struct SpawnNearestTask { pub reveal: task::RevealStrategy, } +#[derive(Clone, PartialEq, Action)] +#[action(no_json, no_register)] +pub struct DiffClipboardWithSelectionData { + pub clipboard_text: String, + pub editor: Entity, +} + #[derive(Debug, PartialEq, Eq, Clone, Copy, Deserialize, Default)] pub enum UuidVersion { #[default] @@ -398,6 +405,8 @@ actions!( DeleteToNextSubwordEnd, /// Deletes to the start of the previous subword. DeleteToPreviousSubwordStart, + /// Diffs the text stored in the clipboard against the current selection. + DiffClipboardWithSelection, /// Displays names of all active cursors. DisplayCursorNames, /// Duplicates the current line below. diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index 1f985eeb7c..a31f789fb0 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -213,6 +213,7 @@ use workspace::{ notifications::{DetachAndPromptErr, NotificationId, NotifyTaskExt}, searchable::SearchEvent, }; +use zed_actions; use crate::{ code_context_menus::CompletionsMenuSource, @@ -12154,6 +12155,41 @@ impl Editor { }); } + pub fn diff_clipboard_with_selection( + &mut self, + _: &DiffClipboardWithSelection, + window: &mut Window, + cx: &mut Context, + ) { + let selections = self.selections.all::(cx); + + if selections.is_empty() { + log::warn!("There should always be at least one selection in Zed. This is a bug."); + return; + }; + + let clipboard_text = match cx.read_from_clipboard() { + Some(item) => match item.entries().first() { + Some(ClipboardEntry::String(text)) => Some(text.text().to_string()), + _ => None, + }, + None => None, + }; + + let Some(clipboard_text) = clipboard_text else { + log::warn!("Clipboard doesn't contain text."); + return; + }; + + window.dispatch_action( + Box::new(DiffClipboardWithSelectionData { + clipboard_text, + editor: cx.entity(), + }), + cx, + ); + } + pub fn paste(&mut self, _: &Paste, window: &mut Window, cx: &mut Context) { self.hide_mouse_cursor(HideMouseCursorOrigin::TypingAction, cx); if let Some(item) = cx.read_from_clipboard() { diff --git a/crates/editor/src/element.rs b/crates/editor/src/element.rs index cbff544c7e..1b372a7d53 100644 --- a/crates/editor/src/element.rs +++ b/crates/editor/src/element.rs @@ -262,6 +262,7 @@ impl EditorElement { register_action(editor, window, Editor::kill_ring_yank); register_action(editor, window, Editor::copy); register_action(editor, window, Editor::copy_and_trim); + register_action(editor, window, Editor::diff_clipboard_with_selection); register_action(editor, window, Editor::paste); register_action(editor, window, Editor::undo); register_action(editor, window, Editor::redo); diff --git a/crates/git_ui/src/diff_view.rs b/crates/git_ui/src/file_diff_view.rs similarity index 89% rename from crates/git_ui/src/diff_view.rs rename to crates/git_ui/src/file_diff_view.rs index 9e03dd5f38..2f8a744ed8 100644 --- a/crates/git_ui/src/diff_view.rs +++ b/crates/git_ui/src/file_diff_view.rs @@ -1,4 +1,4 @@ -//! DiffView provides a UI for displaying differences between two buffers. +//! FileDiffView provides a UI for displaying differences between two buffers. use anyhow::Result; use buffer_diff::{BufferDiff, BufferDiffSnapshot}; @@ -25,7 +25,7 @@ use workspace::{ searchable::SearchableItemHandle, }; -pub struct DiffView { +pub struct FileDiffView { editor: Entity, old_buffer: Entity, new_buffer: Entity, @@ -35,7 +35,7 @@ pub struct DiffView { const RECALCULATE_DIFF_DEBOUNCE: Duration = Duration::from_millis(250); -impl DiffView { +impl FileDiffView { pub fn open( old_path: PathBuf, new_path: PathBuf, @@ -57,7 +57,7 @@ impl DiffView { workspace.update_in(cx, |workspace, window, cx| { let diff_view = cx.new(|cx| { - DiffView::new( + FileDiffView::new( old_buffer, new_buffer, buffer_diff, @@ -190,15 +190,15 @@ async fn build_buffer_diff( }) } -impl EventEmitter for DiffView {} +impl EventEmitter for FileDiffView {} -impl Focusable for DiffView { +impl Focusable for FileDiffView { fn focus_handle(&self, cx: &App) -> FocusHandle { self.editor.focus_handle(cx) } } -impl Item for DiffView { +impl Item for FileDiffView { type Event = EditorEvent; fn tab_icon(&self, _window: &Window, _cx: &App) -> Option { @@ -216,48 +216,37 @@ impl Item for DiffView { } fn tab_content_text(&self, _detail: usize, cx: &App) -> SharedString { - let old_filename = self - .old_buffer - .read(cx) - .file() - .and_then(|file| { - Some( - file.full_path(cx) - .file_name()? - .to_string_lossy() - .to_string(), - ) - }) - .unwrap_or_else(|| "untitled".into()); - let new_filename = self - .new_buffer - .read(cx) - .file() - .and_then(|file| { - Some( - file.full_path(cx) - .file_name()? - .to_string_lossy() - .to_string(), - ) - }) - .unwrap_or_else(|| "untitled".into()); + let title_text = |buffer: &Entity| { + buffer + .read(cx) + .file() + .and_then(|file| { + Some( + file.full_path(cx) + .file_name()? + .to_string_lossy() + .to_string(), + ) + }) + .unwrap_or_else(|| "untitled".into()) + }; + let old_filename = title_text(&self.old_buffer); + let new_filename = title_text(&self.new_buffer); + format!("{old_filename} ↔ {new_filename}").into() } fn tab_tooltip_text(&self, cx: &App) -> Option { - let old_path = self - .old_buffer - .read(cx) - .file() - .map(|file| file.full_path(cx).compact().to_string_lossy().to_string()) - .unwrap_or_else(|| "untitled".into()); - let new_path = self - .new_buffer - .read(cx) - .file() - .map(|file| file.full_path(cx).compact().to_string_lossy().to_string()) - .unwrap_or_else(|| "untitled".into()); + let path = |buffer: &Entity| { + buffer + .read(cx) + .file() + .map(|file| file.full_path(cx).compact().to_string_lossy().to_string()) + .unwrap_or_else(|| "untitled".into()) + }; + let old_path = path(&self.old_buffer); + let new_path = path(&self.new_buffer); + Some(format!("{old_path} ↔ {new_path}").into()) } @@ -363,7 +352,7 @@ impl Item for DiffView { } } -impl Render for DiffView { +impl Render for FileDiffView { fn render(&mut self, _: &mut Window, _: &mut Context) -> impl IntoElement { self.editor.clone() } @@ -407,16 +396,16 @@ mod tests { ) .await; - let project = Project::test(fs.clone(), ["/test".as_ref()], cx).await; + let project = Project::test(fs.clone(), [path!("/test").as_ref()], cx).await; let (workspace, mut cx) = cx.add_window_view(|window, cx| Workspace::test_new(project.clone(), window, cx)); let diff_view = workspace .update_in(cx, |workspace, window, cx| { - DiffView::open( - PathBuf::from(path!("/test/old_file.txt")), - PathBuf::from(path!("/test/new_file.txt")), + FileDiffView::open( + path!("/test/old_file.txt").into(), + path!("/test/new_file.txt").into(), workspace, window, cx, @@ -510,6 +499,21 @@ mod tests { ", ), ); + + diff_view.read_with(cx, |diff_view, cx| { + assert_eq!( + diff_view.tab_content_text(0, cx), + "old_file.txt ↔ new_file.txt" + ); + assert_eq!( + diff_view.tab_tooltip_text(cx).unwrap(), + format!( + "{} ↔ {}", + path!("test/old_file.txt"), + path!("test/new_file.txt") + ) + ); + }) } #[gpui::test] @@ -533,7 +537,7 @@ mod tests { let diff_view = workspace .update_in(cx, |workspace, window, cx| { - DiffView::open( + FileDiffView::open( PathBuf::from(path!("/test/old_file.txt")), PathBuf::from(path!("/test/new_file.txt")), workspace, diff --git a/crates/git_ui/src/git_ui.rs b/crates/git_ui/src/git_ui.rs index 02b9c243fb..2d7fba13c5 100644 --- a/crates/git_ui/src/git_ui.rs +++ b/crates/git_ui/src/git_ui.rs @@ -3,7 +3,7 @@ use std::any::Any; use ::settings::Settings; use command_palette_hooks::CommandPaletteFilter; use commit_modal::CommitModal; -use editor::Editor; +use editor::{Editor, actions::DiffClipboardWithSelectionData}; mod blame_ui; use git::{ repository::{Branch, Upstream, UpstreamTracking, UpstreamTrackingStatus}, @@ -15,6 +15,9 @@ use onboarding::GitOnboardingModal; use project_diff::ProjectDiff; use ui::prelude::*; use workspace::Workspace; +use zed_actions; + +use crate::text_diff_view::TextDiffView; mod askpass_modal; pub mod branch_picker; @@ -22,7 +25,7 @@ mod commit_modal; pub mod commit_tooltip; mod commit_view; mod conflict_view; -pub mod diff_view; +pub mod file_diff_view; pub mod git_panel; mod git_panel_settings; pub mod onboarding; @@ -30,6 +33,7 @@ pub mod picker_prompt; pub mod project_diff; pub(crate) mod remote_output; pub mod repository_selector; +pub mod text_diff_view; actions!( git, @@ -152,6 +156,13 @@ pub fn init(cx: &mut App) { workspace.register_action(|workspace, _: &git::OpenModifiedFiles, window, cx| { open_modified_files(workspace, window, cx); }); + workspace.register_action( + |workspace, action: &DiffClipboardWithSelectionData, window, cx| { + if let Some(task) = TextDiffView::open(action, workspace, window, cx) { + task.detach(); + }; + }, + ); }) .detach(); } diff --git a/crates/git_ui/src/text_diff_view.rs b/crates/git_ui/src/text_diff_view.rs new file mode 100644 index 0000000000..e7386cf7bd --- /dev/null +++ b/crates/git_ui/src/text_diff_view.rs @@ -0,0 +1,554 @@ +//! TextDiffView currently provides a UI for displaying differences between the clipboard and selected text. + +use anyhow::Result; +use buffer_diff::{BufferDiff, BufferDiffSnapshot}; +use editor::{Editor, EditorEvent, MultiBuffer, ToPoint, actions::DiffClipboardWithSelectionData}; +use futures::{FutureExt, select_biased}; +use gpui::{ + AnyElement, AnyView, App, AppContext as _, AsyncApp, Context, Entity, EventEmitter, + FocusHandle, Focusable, IntoElement, Render, Task, Window, +}; +use language::{self, Buffer, Point}; +use project::Project; +use std::{ + any::{Any, TypeId}, + ops::Range, + pin::pin, + sync::Arc, + time::Duration, +}; +use ui::{Color, Icon, IconName, Label, LabelCommon as _, SharedString}; +use util::paths::PathExt; + +use workspace::{ + Item, ItemHandle as _, ItemNavHistory, ToolbarItemLocation, Workspace, + item::{BreadcrumbText, ItemEvent, SaveOptions, TabContentParams}, + searchable::SearchableItemHandle, +}; + +pub struct TextDiffView { + diff_editor: Entity, + title: SharedString, + path: Option, + buffer_changes_tx: watch::Sender<()>, + _recalculate_diff_task: Task>, +} + +const RECALCULATE_DIFF_DEBOUNCE: Duration = Duration::from_millis(250); + +impl TextDiffView { + pub fn open( + diff_data: &DiffClipboardWithSelectionData, + workspace: &Workspace, + window: &mut Window, + cx: &mut App, + ) -> Option>>> { + let source_editor = diff_data.editor.clone(); + + let source_editor_buffer_and_range = source_editor.update(cx, |editor, cx| { + let multibuffer = editor.buffer().read(cx); + let source_buffer = multibuffer.as_singleton()?.clone(); + let selections = editor.selections.all::(cx); + let buffer_snapshot = source_buffer.read(cx); + let first_selection = selections.first()?; + let selection_range = if first_selection.is_empty() { + Point::new(0, 0)..buffer_snapshot.max_point() + } else { + first_selection.start..first_selection.end + }; + + Some((source_buffer, selection_range)) + }); + + let Some((source_buffer, selected_range)) = source_editor_buffer_and_range else { + log::warn!("There should always be at least one selection in Zed. This is a bug."); + return None; + }; + + let clipboard_text = diff_data.clipboard_text.clone(); + + let workspace = workspace.weak_handle(); + + let diff_buffer = cx.new(|cx| { + let source_buffer_snapshot = source_buffer.read(cx).snapshot(); + let diff = BufferDiff::new(&source_buffer_snapshot.text, cx); + diff + }); + + let clipboard_buffer = + build_clipboard_buffer(clipboard_text, &source_buffer, selected_range.clone(), cx); + + let task = window.spawn(cx, async move |cx| { + let project = workspace.update(cx, |workspace, _| workspace.project().clone())?; + + update_diff_buffer(&diff_buffer, &source_buffer, &clipboard_buffer, cx).await?; + + workspace.update_in(cx, |workspace, window, cx| { + let diff_view = cx.new(|cx| { + TextDiffView::new( + clipboard_buffer, + source_editor, + source_buffer, + selected_range, + diff_buffer, + project, + window, + cx, + ) + }); + + let pane = workspace.active_pane(); + pane.update(cx, |pane, cx| { + pane.add_item(Box::new(diff_view.clone()), true, true, None, window, cx); + }); + + diff_view + }) + }); + + Some(task) + } + + pub fn new( + clipboard_buffer: Entity, + source_editor: Entity, + source_buffer: Entity, + source_range: Range, + diff_buffer: Entity, + project: Entity, + window: &mut Window, + cx: &mut Context, + ) -> Self { + let multibuffer = cx.new(|cx| { + let mut multibuffer = MultiBuffer::new(language::Capability::ReadWrite); + + multibuffer.push_excerpts( + source_buffer.clone(), + [editor::ExcerptRange::new(source_range)], + cx, + ); + + multibuffer.add_diff(diff_buffer.clone(), cx); + multibuffer + }); + let diff_editor = cx.new(|cx| { + let mut editor = Editor::for_multibuffer(multibuffer, Some(project), window, cx); + editor.start_temporary_diff_override(); + editor.disable_diagnostics(cx); + editor.set_expand_all_diff_hunks(cx); + editor.set_render_diff_hunk_controls( + Arc::new(|_, _, _, _, _, _, _, _| gpui::Empty.into_any_element()), + cx, + ); + editor + }); + + let (buffer_changes_tx, mut buffer_changes_rx) = watch::channel(()); + + cx.subscribe(&source_buffer, move |this, _, event, _| match event { + language::BufferEvent::Edited + | language::BufferEvent::LanguageChanged + | language::BufferEvent::Reparsed => { + this.buffer_changes_tx.send(()).ok(); + } + _ => {} + }) + .detach(); + + let editor = source_editor.read(cx); + let title = editor.buffer().read(cx).title(cx).to_string(); + let selection_location_text = selection_location_text(editor, cx); + let selection_location_title = selection_location_text + .as_ref() + .map(|text| format!("{} @ {}", title, text)) + .unwrap_or(title); + + let path = editor + .buffer() + .read(cx) + .as_singleton() + .and_then(|b| { + b.read(cx) + .file() + .map(|f| f.full_path(cx).compact().to_string_lossy().to_string()) + }) + .unwrap_or("untitled".into()); + + let selection_location_path = selection_location_text + .map(|text| format!("{} @ {}", path, text)) + .unwrap_or(path); + + Self { + diff_editor, + title: format!("Clipboard ↔ {selection_location_title}").into(), + path: Some(format!("Clipboard ↔ {selection_location_path}").into()), + buffer_changes_tx, + _recalculate_diff_task: cx.spawn(async move |_, cx| { + while let Ok(_) = buffer_changes_rx.recv().await { + loop { + let mut timer = cx + .background_executor() + .timer(RECALCULATE_DIFF_DEBOUNCE) + .fuse(); + let mut recv = pin!(buffer_changes_rx.recv().fuse()); + select_biased! { + _ = timer => break, + _ = recv => continue, + } + } + + log::trace!("start recalculating"); + update_diff_buffer(&diff_buffer, &source_buffer, &clipboard_buffer, cx).await?; + log::trace!("finish recalculating"); + } + Ok(()) + }), + } + } +} + +fn build_clipboard_buffer( + clipboard_text: String, + source_buffer: &Entity, + selected_range: Range, + cx: &mut App, +) -> Entity { + let source_buffer_snapshot = source_buffer.read(cx).snapshot(); + cx.new(|cx| { + let mut buffer = language::Buffer::local(source_buffer_snapshot.text(), cx); + let language = source_buffer.read(cx).language().cloned(); + buffer.set_language(language, cx); + + let range_start = source_buffer_snapshot.point_to_offset(selected_range.start); + let range_end = source_buffer_snapshot.point_to_offset(selected_range.end); + buffer.edit([(range_start..range_end, clipboard_text)], None, cx); + + buffer + }) +} + +async fn update_diff_buffer( + diff: &Entity, + source_buffer: &Entity, + clipboard_buffer: &Entity, + cx: &mut AsyncApp, +) -> Result<()> { + let source_buffer_snapshot = source_buffer.read_with(cx, |buffer, _| buffer.snapshot())?; + + let base_buffer_snapshot = clipboard_buffer.read_with(cx, |buffer, _| buffer.snapshot())?; + let base_text = base_buffer_snapshot.text().to_string(); + + let diff_snapshot = cx + .update(|cx| { + BufferDiffSnapshot::new_with_base_buffer( + source_buffer_snapshot.text.clone(), + Some(Arc::new(base_text)), + base_buffer_snapshot, + cx, + ) + })? + .await; + + diff.update(cx, |diff, cx| { + diff.set_snapshot(diff_snapshot, &source_buffer_snapshot.text, cx); + })?; + Ok(()) +} + +impl EventEmitter for TextDiffView {} + +impl Focusable for TextDiffView { + fn focus_handle(&self, cx: &App) -> FocusHandle { + self.diff_editor.focus_handle(cx) + } +} + +impl Item for TextDiffView { + type Event = EditorEvent; + + fn tab_icon(&self, _window: &Window, _cx: &App) -> Option { + Some(Icon::new(IconName::Diff).color(Color::Muted)) + } + + fn tab_content(&self, params: TabContentParams, _window: &Window, cx: &App) -> AnyElement { + Label::new(self.tab_content_text(params.detail.unwrap_or_default(), cx)) + .color(if params.selected { + Color::Default + } else { + Color::Muted + }) + .into_any_element() + } + + fn tab_content_text(&self, _detail: usize, _: &App) -> SharedString { + self.title.clone() + } + + fn tab_tooltip_text(&self, _: &App) -> Option { + self.path.clone() + } + + fn to_item_events(event: &EditorEvent, f: impl FnMut(ItemEvent)) { + Editor::to_item_events(event, f) + } + + fn telemetry_event_text(&self) -> Option<&'static str> { + Some("Diff View Opened") + } + + fn deactivated(&mut self, window: &mut Window, cx: &mut Context) { + self.diff_editor + .update(cx, |editor, cx| editor.deactivated(window, cx)); + } + + fn is_singleton(&self, _: &App) -> bool { + false + } + + fn act_as_type<'a>( + &'a self, + type_id: TypeId, + self_handle: &'a Entity, + _: &'a App, + ) -> Option { + if type_id == TypeId::of::() { + Some(self_handle.to_any()) + } else if type_id == TypeId::of::() { + Some(self.diff_editor.to_any()) + } else { + None + } + } + + fn as_searchable(&self, _: &Entity) -> Option> { + Some(Box::new(self.diff_editor.clone())) + } + + fn for_each_project_item( + &self, + cx: &App, + f: &mut dyn FnMut(gpui::EntityId, &dyn project::ProjectItem), + ) { + self.diff_editor.for_each_project_item(cx, f) + } + + fn set_nav_history( + &mut self, + nav_history: ItemNavHistory, + _: &mut Window, + cx: &mut Context, + ) { + self.diff_editor.update(cx, |editor, _| { + editor.set_nav_history(Some(nav_history)); + }); + } + + fn navigate( + &mut self, + data: Box, + window: &mut Window, + cx: &mut Context, + ) -> bool { + self.diff_editor + .update(cx, |editor, cx| editor.navigate(data, window, cx)) + } + + fn breadcrumb_location(&self, _: &App) -> ToolbarItemLocation { + ToolbarItemLocation::PrimaryLeft + } + + fn breadcrumbs(&self, theme: &theme::Theme, cx: &App) -> Option> { + self.diff_editor.breadcrumbs(theme, cx) + } + + fn added_to_workspace( + &mut self, + workspace: &mut Workspace, + window: &mut Window, + cx: &mut Context, + ) { + self.diff_editor.update(cx, |editor, cx| { + editor.added_to_workspace(workspace, window, cx) + }); + } + + fn can_save(&self, cx: &App) -> bool { + // The editor handles the new buffer, so delegate to it + self.diff_editor.read(cx).can_save(cx) + } + + fn save( + &mut self, + options: SaveOptions, + project: Entity, + window: &mut Window, + cx: &mut Context, + ) -> Task> { + // Delegate saving to the editor, which manages the new buffer + self.diff_editor + .update(cx, |editor, cx| editor.save(options, project, window, cx)) + } +} + +pub fn selection_location_text(editor: &Editor, cx: &App) -> Option { + let buffer = editor.buffer().read(cx); + let buffer_snapshot = buffer.snapshot(cx); + let first_selection = editor.selections.disjoint.first()?; + + let (start_row, start_column, end_row, end_column) = + if first_selection.start == first_selection.end { + let max_point = buffer_snapshot.max_point(); + (0, 0, max_point.row, max_point.column) + } else { + let selection_start = first_selection.start.to_point(&buffer_snapshot); + let selection_end = first_selection.end.to_point(&buffer_snapshot); + + ( + selection_start.row, + selection_start.column, + selection_end.row, + selection_end.column, + ) + }; + + let range_text = if start_row == end_row { + format!("L{}:{}-{}", start_row + 1, start_column + 1, end_column + 1) + } else { + format!( + "L{}:{}-L{}:{}", + start_row + 1, + start_column + 1, + end_row + 1, + end_column + 1 + ) + }; + + Some(range_text) +} + +impl Render for TextDiffView { + fn render(&mut self, _: &mut Window, _: &mut Context) -> impl IntoElement { + self.diff_editor.clone() + } +} + +#[cfg(test)] +mod tests { + use super::*; + + use editor::{actions, test::editor_test_context::assert_state_with_diff}; + use gpui::{TestAppContext, VisualContext}; + use project::{FakeFs, Project}; + use serde_json::json; + use settings::{Settings, SettingsStore}; + use unindent::unindent; + use util::path; + + fn init_test(cx: &mut TestAppContext) { + cx.update(|cx| { + let settings_store = SettingsStore::test(cx); + cx.set_global(settings_store); + language::init(cx); + Project::init_settings(cx); + workspace::init_settings(cx); + editor::init_settings(cx); + theme::ThemeSettings::register(cx) + }); + } + + #[gpui::test] + async fn test_diffing_clipboard_against_specific_selection(cx: &mut TestAppContext) { + base_test(true, cx).await; + } + + #[gpui::test] + async fn test_diffing_clipboard_against_empty_selection_uses_full_buffer( + cx: &mut TestAppContext, + ) { + base_test(false, cx).await; + } + + async fn base_test(select_all_text: bool, cx: &mut TestAppContext) { + init_test(cx); + + let fs = FakeFs::new(cx.executor()); + fs.insert_tree( + path!("/test"), + json!({ + "a": { + "b": { + "text.txt": "new line 1\nline 2\nnew line 3\nline 4" + } + } + }), + ) + .await; + + let project = Project::test(fs, [path!("/test").as_ref()], cx).await; + + let (workspace, mut cx) = + cx.add_window_view(|window, cx| Workspace::test_new(project.clone(), window, cx)); + + let buffer = project + .update(cx, |project, cx| { + project.open_local_buffer(path!("/test/a/b/text.txt"), cx) + }) + .await + .unwrap(); + + let editor = cx.new_window_entity(|window, cx| { + let mut editor = Editor::for_buffer(buffer, None, window, cx); + editor.set_text("new line 1\nline 2\nnew line 3\nline 4\n", window, cx); + + if select_all_text { + editor.select_all(&actions::SelectAll, window, cx); + } + + editor + }); + + let diff_view = workspace + .update_in(cx, |workspace, window, cx| { + TextDiffView::open( + &DiffClipboardWithSelectionData { + clipboard_text: "old line 1\nline 2\nold line 3\nline 4\n".to_string(), + editor, + }, + workspace, + window, + cx, + ) + }) + .unwrap() + .await + .unwrap(); + + cx.executor().run_until_parked(); + + assert_state_with_diff( + &diff_view.read_with(cx, |diff_view, _| diff_view.diff_editor.clone()), + &mut cx, + &unindent( + " + - old line 1 + + ˇnew line 1 + line 2 + - old line 3 + + new line 3 + line 4 + ", + ), + ); + + diff_view.read_with(cx, |diff_view, cx| { + assert_eq!( + diff_view.tab_content_text(0, cx), + "Clipboard ↔ text.txt @ L1:1-L5:1" + ); + assert_eq!( + diff_view.tab_tooltip_text(cx).unwrap(), + format!("Clipboard ↔ {}", path!("test/a/b/text.txt @ L1:1-L5:1")) + ); + }); + } +} diff --git a/crates/gpui/src/app/entity_map.rs b/crates/gpui/src/app/entity_map.rs index d4e5b2570e..fccb417caa 100644 --- a/crates/gpui/src/app/entity_map.rs +++ b/crates/gpui/src/app/entity_map.rs @@ -370,7 +370,7 @@ impl std::fmt::Debug for AnyEntity { } } -/// A strong, well typed reference to a struct which is managed +/// A strong, well-typed reference to a struct which is managed /// by GPUI #[derive(Deref, DerefMut)] pub struct Entity { diff --git a/crates/zed/src/zed/open_listener.rs b/crates/zed/src/zed/open_listener.rs index b6feb0073e..2fd9b0a68c 100644 --- a/crates/zed/src/zed/open_listener.rs +++ b/crates/zed/src/zed/open_listener.rs @@ -12,7 +12,7 @@ use futures::channel::mpsc::{UnboundedReceiver, UnboundedSender}; use futures::channel::{mpsc, oneshot}; use futures::future::join_all; use futures::{FutureExt, SinkExt, StreamExt}; -use git_ui::diff_view::DiffView; +use git_ui::file_diff_view::FileDiffView; use gpui::{App, AsyncApp, Global, WindowHandle}; use language::Point; use recent_projects::{SshSettings, open_ssh_project}; @@ -262,7 +262,7 @@ pub async fn open_paths_with_positions( let old_path = Path::new(&diff_pair[0]).canonicalize()?; let new_path = Path::new(&diff_pair[1]).canonicalize()?; if let Ok(diff_view) = workspace.update(cx, |workspace, window, cx| { - DiffView::open(old_path, new_path, workspace, window, cx) + FileDiffView::open(old_path, new_path, workspace, window, cx) }) { if let Some(diff_view) = diff_view.await.log_err() { items.push(Some(Ok(Box::new(diff_view)))) From 6122f460953c2f162a1ea91213b72db914b39456 Mon Sep 17 00:00:00 2001 From: maan2003 <49202620+maan2003@users.noreply.github.com> Date: Wed, 23 Jul 2025 11:48:45 +0530 Subject: [PATCH 0146/1052] project: Fix search filter patterns on remote projects (#34748) we were join(",") and split(",") to serialize the patterns. This doesn't work when pattern includes a "," example: *.{ts,tsx} (very common pattern used by agent) help needed: how will this work on version mismatch? Release Notes: - Fixed search filter patterns on remote projects. --- crates/project/src/search.rs | 49 +++++++++++++++++++++++---------- crates/proto/proto/buffer.proto | 6 ++-- 2 files changed, 39 insertions(+), 16 deletions(-) diff --git a/crates/project/src/search.rs b/crates/project/src/search.rs index 44732b23cd..4f024837c8 100644 --- a/crates/project/src/search.rs +++ b/crates/project/src/search.rs @@ -193,6 +193,30 @@ impl SearchQuery { } pub fn from_proto(message: proto::SearchQuery) -> Result { + let files_to_include = if message.files_to_include.is_empty() { + message + .files_to_include_legacy + .split(',') + .map(str::trim) + .filter(|&glob_str| !glob_str.is_empty()) + .map(|s| s.to_string()) + .collect() + } else { + message.files_to_include + }; + + let files_to_exclude = if message.files_to_exclude.is_empty() { + message + .files_to_exclude_legacy + .split(',') + .map(str::trim) + .filter(|&glob_str| !glob_str.is_empty()) + .map(|s| s.to_string()) + .collect() + } else { + message.files_to_exclude + }; + if message.regex { Self::regex( message.query, @@ -200,8 +224,8 @@ impl SearchQuery { message.case_sensitive, message.include_ignored, false, - deserialize_path_matches(&message.files_to_include)?, - deserialize_path_matches(&message.files_to_exclude)?, + PathMatcher::new(files_to_include)?, + PathMatcher::new(files_to_exclude)?, message.match_full_paths, None, // search opened only don't need search remote ) @@ -211,8 +235,8 @@ impl SearchQuery { message.whole_word, message.case_sensitive, message.include_ignored, - deserialize_path_matches(&message.files_to_include)?, - deserialize_path_matches(&message.files_to_exclude)?, + PathMatcher::new(files_to_include)?, + PathMatcher::new(files_to_exclude)?, false, None, // search opened only don't need search remote ) @@ -236,15 +260,20 @@ impl SearchQuery { } pub fn to_proto(&self) -> proto::SearchQuery { + let files_to_include = self.files_to_include().sources().to_vec(); + let files_to_exclude = self.files_to_exclude().sources().to_vec(); proto::SearchQuery { query: self.as_str().to_string(), regex: self.is_regex(), whole_word: self.whole_word(), case_sensitive: self.case_sensitive(), include_ignored: self.include_ignored(), - files_to_include: self.files_to_include().sources().join(","), - files_to_exclude: self.files_to_exclude().sources().join(","), + files_to_include: files_to_include.clone(), + files_to_exclude: files_to_exclude.clone(), match_full_paths: self.match_full_paths(), + // Populate legacy fields for backwards compatibility + files_to_include_legacy: files_to_include.join(","), + files_to_exclude_legacy: files_to_exclude.join(","), } } @@ -520,14 +549,6 @@ impl SearchQuery { } } -pub fn deserialize_path_matches(glob_set: &str) -> anyhow::Result { - let globs = glob_set - .split(',') - .map(str::trim) - .filter(|&glob_str| !glob_str.is_empty()); - Ok(PathMatcher::new(globs)?) -} - #[cfg(test)] mod tests { use super::*; diff --git a/crates/proto/proto/buffer.proto b/crates/proto/proto/buffer.proto index 09a05a50cd..f4dacf2fdc 100644 --- a/crates/proto/proto/buffer.proto +++ b/crates/proto/proto/buffer.proto @@ -288,10 +288,12 @@ message SearchQuery { bool regex = 3; bool whole_word = 4; bool case_sensitive = 5; - string files_to_include = 6; - string files_to_exclude = 7; + repeated string files_to_include = 10; + repeated string files_to_exclude = 11; bool match_full_paths = 9; bool include_ignored = 8; + string files_to_include_legacy = 6; + string files_to_exclude_legacy = 7; } message FindSearchCandidates { From 7db110f48d23344e1fc2fa9f30f6b1fe3878bc73 Mon Sep 17 00:00:00 2001 From: tidely <43219534+tidely@users.noreply.github.com> Date: Wed, 23 Jul 2025 10:57:57 +0300 Subject: [PATCH 0147/1052] sum_tree: Utilize `size_hint` in `TreeSet::extend` (#34936) Collect the iterator instead of manually looping over it to utilize possible size hints. Zed usually passes in owned `Vec`'s, meaning we get to reuse memory as well. Release Notes: - N/A --- crates/sum_tree/src/tree_map.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/sum_tree/src/tree_map.rs b/crates/sum_tree/src/tree_map.rs index 0397f16182..54e8ae8343 100644 --- a/crates/sum_tree/src/tree_map.rs +++ b/crates/sum_tree/src/tree_map.rs @@ -71,10 +71,10 @@ impl TreeMap { } pub fn extend(&mut self, iter: impl IntoIterator) { - let mut edits = Vec::new(); - for (key, value) in iter { - edits.push(Edit::Insert(MapEntry { key, value })); - } + let edits: Vec<_> = iter + .into_iter() + .map(|(key, value)| Edit::Insert(MapEntry { key, value })) + .collect(); self.0.edit(edits, &()); } From 6cd3726a5adb67c067158514db4719fde2e8b58b Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Wed, 23 Jul 2025 10:28:06 +0200 Subject: [PATCH 0148/1052] Revert "chore: Bump taffy to 0.8.3" (#34938) Reverts zed-industries/zed#34876 From our Slack: image https://github.com/user-attachments/assets/828964be-9b6e-4496-9361-9e3a2e9aa208 Release Notes: - N/A --- Cargo.lock | 9 +++++---- crates/gpui/Cargo.toml | 2 +- crates/gpui/src/taffy.rs | 26 +++++++++++++------------- 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 08d29cdc80..c64995b01b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7401,9 +7401,9 @@ dependencies = [ [[package]] name = "grid" -version = "0.17.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71b01d27060ad58be4663b9e4ac9e2d4806918e8876af8912afbddd1a91d5eaa" +checksum = "be136d9dacc2a13cc70bb6c8f902b414fb2641f8db1314637c6b7933411a8f82" [[package]] name = "group" @@ -15958,12 +15958,13 @@ dependencies = [ [[package]] name = "taffy" -version = "0.8.3" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aaef0ac998e6527d6d0d5582f7e43953bb17221ac75bb8eb2fcc2db3396db1c" +checksum = "e8b61630cba2afd2c851821add2e1bb1b7851a2436e839ab73b56558b009035e" dependencies = [ "arrayvec", "grid", + "num-traits", "serde", "slotmap", ] diff --git a/crates/gpui/Cargo.toml b/crates/gpui/Cargo.toml index 68c0ea89c7..878794647a 100644 --- a/crates/gpui/Cargo.toml +++ b/crates/gpui/Cargo.toml @@ -121,7 +121,7 @@ smallvec.workspace = true smol.workspace = true strum.workspace = true sum_tree.workspace = true -taffy = "=0.8.3" +taffy = "=0.5.1" thiserror.workspace = true util.workspace = true uuid.workspace = true diff --git a/crates/gpui/src/taffy.rs b/crates/gpui/src/taffy.rs index f7fa54256d..6228a60490 100644 --- a/crates/gpui/src/taffy.rs +++ b/crates/gpui/src/taffy.rs @@ -283,7 +283,7 @@ impl ToTaffy for Length { fn to_taffy(&self, rem_size: Pixels) -> taffy::prelude::LengthPercentageAuto { match self { Length::Definite(length) => length.to_taffy(rem_size), - Length::Auto => taffy::prelude::LengthPercentageAuto::auto(), + Length::Auto => taffy::prelude::LengthPercentageAuto::Auto, } } } @@ -292,7 +292,7 @@ impl ToTaffy for Length { fn to_taffy(&self, rem_size: Pixels) -> taffy::prelude::Dimension { match self { Length::Definite(length) => length.to_taffy(rem_size), - Length::Auto => taffy::prelude::Dimension::auto(), + Length::Auto => taffy::prelude::Dimension::Auto, } } } @@ -302,14 +302,14 @@ impl ToTaffy for DefiniteLength { match self { DefiniteLength::Absolute(length) => match length { AbsoluteLength::Pixels(pixels) => { - taffy::style::LengthPercentage::length(pixels.into()) + taffy::style::LengthPercentage::Length(pixels.into()) } AbsoluteLength::Rems(rems) => { - taffy::style::LengthPercentage::length((*rems * rem_size).into()) + taffy::style::LengthPercentage::Length((*rems * rem_size).into()) } }, DefiniteLength::Fraction(fraction) => { - taffy::style::LengthPercentage::percent(*fraction) + taffy::style::LengthPercentage::Percent(*fraction) } } } @@ -320,14 +320,14 @@ impl ToTaffy for DefiniteLength { match self { DefiniteLength::Absolute(length) => match length { AbsoluteLength::Pixels(pixels) => { - taffy::style::LengthPercentageAuto::length(pixels.into()) + taffy::style::LengthPercentageAuto::Length(pixels.into()) } AbsoluteLength::Rems(rems) => { - taffy::style::LengthPercentageAuto::length((*rems * rem_size).into()) + taffy::style::LengthPercentageAuto::Length((*rems * rem_size).into()) } }, DefiniteLength::Fraction(fraction) => { - taffy::style::LengthPercentageAuto::percent(*fraction) + taffy::style::LengthPercentageAuto::Percent(*fraction) } } } @@ -337,12 +337,12 @@ impl ToTaffy for DefiniteLength { fn to_taffy(&self, rem_size: Pixels) -> taffy::style::Dimension { match self { DefiniteLength::Absolute(length) => match length { - AbsoluteLength::Pixels(pixels) => taffy::style::Dimension::length(pixels.into()), + AbsoluteLength::Pixels(pixels) => taffy::style::Dimension::Length(pixels.into()), AbsoluteLength::Rems(rems) => { - taffy::style::Dimension::length((*rems * rem_size).into()) + taffy::style::Dimension::Length((*rems * rem_size).into()) } }, - DefiniteLength::Fraction(fraction) => taffy::style::Dimension::percent(*fraction), + DefiniteLength::Fraction(fraction) => taffy::style::Dimension::Percent(*fraction), } } } @@ -350,9 +350,9 @@ impl ToTaffy for DefiniteLength { impl ToTaffy for AbsoluteLength { fn to_taffy(&self, rem_size: Pixels) -> taffy::style::LengthPercentage { match self { - AbsoluteLength::Pixels(pixels) => taffy::style::LengthPercentage::length(pixels.into()), + AbsoluteLength::Pixels(pixels) => taffy::style::LengthPercentage::Length(pixels.into()), AbsoluteLength::Rems(rems) => { - taffy::style::LengthPercentage::length((*rems * rem_size).into()) + taffy::style::LengthPercentage::Length((*rems * rem_size).into()) } } } From c2c2264a60abf65e8a5e14859d6b588e307142c2 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Wed, 23 Jul 2025 12:17:23 +0200 Subject: [PATCH 0149/1052] gpui: Add tree example (#34942) This commit adds an example with deep children hierarchy. The depth of a tree can be tweaked with GPUI_TREE_DEPTH env variable. With depth=100 image With this example, I can trigger a stack overflow at depth=633 (and higher). Release Notes: - N/A --- crates/gpui/Cargo.toml | 4 ++++ crates/gpui/examples/tree.rs | 46 ++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 crates/gpui/examples/tree.rs diff --git a/crates/gpui/Cargo.toml b/crates/gpui/Cargo.toml index 878794647a..b446ea8bd8 100644 --- a/crates/gpui/Cargo.toml +++ b/crates/gpui/Cargo.toml @@ -295,6 +295,10 @@ path = "examples/text.rs" name = "text_wrapper" path = "examples/text_wrapper.rs" +[[example]] +name = "tree" +path = "examples/tree.rs" + [[example]] name = "uniform_list" path = "examples/uniform_list.rs" diff --git a/crates/gpui/examples/tree.rs b/crates/gpui/examples/tree.rs new file mode 100644 index 0000000000..1bd4592003 --- /dev/null +++ b/crates/gpui/examples/tree.rs @@ -0,0 +1,46 @@ +//! Renders a div with deep children hierarchy. This example is useful to exemplify that Zed can +//! handle deep hierarchies (even though it cannot just yet!). +use std::sync::LazyLock; + +use gpui::{ + App, Application, Bounds, Context, Window, WindowBounds, WindowOptions, div, prelude::*, px, + size, +}; + +struct Tree {} + +static DEPTH: LazyLock = LazyLock::new(|| { + std::env::var("GPUI_TREE_DEPTH") + .ok() + .and_then(|depth| depth.parse().ok()) + .unwrap_or_else(|| 50) +}); + +impl Render for Tree { + fn render(&mut self, _: &mut Window, _: &mut Context) -> impl IntoElement { + let mut depth = *DEPTH; + static COLORS: [gpui::Hsla; 4] = [gpui::red(), gpui::blue(), gpui::green(), gpui::yellow()]; + let mut colors = COLORS.iter().cycle().copied(); + let mut next_div = || div().p_0p5().bg(colors.next().unwrap()); + let mut innermost_node = next_div(); + while depth > 0 { + innermost_node = next_div().child(innermost_node); + depth -= 1; + } + innermost_node + } +} + +fn main() { + Application::new().run(|cx: &mut App| { + let bounds = Bounds::centered(None, size(px(300.0), px(300.0)), cx); + cx.open_window( + WindowOptions { + window_bounds: Some(WindowBounds::Windowed(bounds)), + ..Default::default() + }, + |_, cx| cx.new(|_| Tree {}), + ) + .unwrap(); + }); +} From 2bc6e18ac913f363e7f75fd12efccc02dc3c05d9 Mon Sep 17 00:00:00 2001 From: Finn Evers Date: Wed, 23 Jul 2025 12:20:09 +0200 Subject: [PATCH 0150/1052] Ensure `disable_ai` is properly respected (#34941) Quick follow up to #34896 which ensures that the Agent Panel cannot be caught by actions like `workspace: toggle left dock` when `disable_ai` is set to true. Also removes a method that was introduced but unused in the workspace because `first_enabled_panel_idx` already covers all cases this method could be useful for. Release Notes: - N/A --- crates/agent_ui/src/agent_panel.rs | 9 +++------ crates/workspace/src/dock.rs | 6 ------ 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/crates/agent_ui/src/agent_panel.rs b/crates/agent_ui/src/agent_panel.rs index 7e9360a0cb..95ce289608 100644 --- a/crates/agent_ui/src/agent_panel.rs +++ b/crates/agent_ui/src/agent_panel.rs @@ -1,5 +1,5 @@ use std::cell::RefCell; -use std::ops::Range; +use std::ops::{Not, Range}; use std::path::Path; use std::rc::Rc; use std::sync::Arc; @@ -1666,10 +1666,7 @@ impl Panel for AgentPanel { } fn icon(&self, _window: &Window, cx: &App) -> Option { - (self.enabled(cx) - && AgentSettings::get_global(cx).button - && !DisableAiSettings::get_global(cx).disable_ai) - .then_some(IconName::ZedAssistant) + (self.enabled(cx) && AgentSettings::get_global(cx).button).then_some(IconName::ZedAssistant) } fn icon_tooltip(&self, _window: &Window, _cx: &App) -> Option<&'static str> { @@ -1685,7 +1682,7 @@ impl Panel for AgentPanel { } fn enabled(&self, cx: &App) -> bool { - AgentSettings::get_global(cx).enabled + DisableAiSettings::get_global(cx).disable_ai.not() && AgentSettings::get_global(cx).enabled } fn is_zoomed(&self, _window: &Window, _cx: &App) -> bool { diff --git a/crates/workspace/src/dock.rs b/crates/workspace/src/dock.rs index 3f047e2f11..7165de23ec 100644 --- a/crates/workspace/src/dock.rs +++ b/crates/workspace/src/dock.rs @@ -374,12 +374,6 @@ impl Dock { }) } - pub fn first_enabled_panel_idx_excluding(&self, exclude_name: &str, cx: &App) -> Option { - self.panel_entries.iter().position(|entry| { - entry.panel.persistent_name() != exclude_name && entry.panel.enabled(cx) - }) - } - fn active_panel_entry(&self) -> Option<&PanelEntry> { self.active_panel_index .and_then(|index| self.panel_entries.get(index)) From 326ab5fa3fda2e0c128f533772060d48397dc5cc Mon Sep 17 00:00:00 2001 From: Peter Tripp Date: Wed, 23 Jul 2025 10:04:53 -0400 Subject: [PATCH 0151/1052] Improve collab channel organization keybinds (#34821) Change channel reorganization (move up/down) from `cmd-up/down` (mac) / `ctrl-up/down` (linux) to `alt-up/down` (both) to match moving lines in the editor. Also fix an issue where if you selected channels using down/up in the filter field, the movement shortcuts would not work (`editing` vs `not_editing`). Release Notes: - N/A --- assets/keymaps/default-linux.json | 11 ++++++++--- assets/keymaps/default-macos.json | 12 +++++++++--- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/assets/keymaps/default-linux.json b/assets/keymaps/default-linux.json index 4918e654fc..b097be90fd 100644 --- a/assets/keymaps/default-linux.json +++ b/assets/keymaps/default-linux.json @@ -975,9 +975,14 @@ "context": "CollabPanel && not_editing", "bindings": { "ctrl-backspace": "collab_panel::Remove", - "space": "menu::Confirm", - "ctrl-up": "collab_panel::MoveChannelUp", - "ctrl-down": "collab_panel::MoveChannelDown" + "space": "menu::Confirm" + } + }, + { + "context": "CollabPanel", + "bindings": { + "alt-up": "collab_panel::MoveChannelUp", + "alt-down": "collab_panel::MoveChannelDown" } }, { diff --git a/assets/keymaps/default-macos.json b/assets/keymaps/default-macos.json index 60f29b1da1..e33786f1b2 100644 --- a/assets/keymaps/default-macos.json +++ b/assets/keymaps/default-macos.json @@ -1037,9 +1037,15 @@ "use_key_equivalents": true, "bindings": { "ctrl-backspace": "collab_panel::Remove", - "space": "menu::Confirm", - "cmd-up": "collab_panel::MoveChannelUp", - "cmd-down": "collab_panel::MoveChannelDown" + "space": "menu::Confirm" + } + }, + { + "context": "CollabPanel", + "use_key_equivalents": true, + "bindings": { + "alt-up": "collab_panel::MoveChannelUp", + "alt-down": "collab_panel::MoveChannelDown" } }, { From 14171e0721235a5bbcc4ed568d2db5bdd4ff821a Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Wed, 23 Jul 2025 10:30:08 -0400 Subject: [PATCH 0152/1052] collab: Add `POST /users/:id/update_plan` endpoint (#34953) This PR adds a new `POST /users/:id/update_plan` endpoint to Collab to allow Cloud to push down plan updates to users. Release Notes: - N/A --- crates/collab/src/api.rs | 79 ++++++++++++++++++++++++++++++++ crates/collab/src/api/billing.rs | 2 +- crates/collab/src/rpc.rs | 30 ++++++++---- 3 files changed, 101 insertions(+), 10 deletions(-) diff --git a/crates/collab/src/api.rs b/crates/collab/src/api.rs index 8f1433a26f..3b0f5396a7 100644 --- a/crates/collab/src/api.rs +++ b/crates/collab/src/api.rs @@ -11,7 +11,9 @@ use crate::{ db::{User, UserId}, rpc, }; +use ::rpc::proto; use anyhow::Context as _; +use axum::extract; use axum::{ Extension, Json, Router, body::Body, @@ -23,6 +25,7 @@ use axum::{ routing::{get, post}, }; use axum_extra::response::ErasedJson; +use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; use std::sync::{Arc, OnceLock}; use tower::ServiceBuilder; @@ -101,6 +104,7 @@ pub fn routes(rpc_server: Arc) -> Router<(), Body> { .route("/users/look_up", get(look_up_user)) .route("/users/:id/access_tokens", post(create_access_token)) .route("/users/:id/refresh_llm_tokens", post(refresh_llm_tokens)) + .route("/users/:id/update_plan", post(update_plan)) .route("/rpc_server_snapshot", get(get_rpc_server_snapshot)) .merge(billing::router()) .merge(contributors::router()) @@ -347,3 +351,78 @@ async fn refresh_llm_tokens( Ok(Json(RefreshLlmTokensResponse {})) } + +#[derive(Debug, Serialize, Deserialize)] +struct UpdatePlanBody { + pub plan: zed_llm_client::Plan, + pub subscription_period: SubscriptionPeriod, + pub usage: zed_llm_client::CurrentUsage, + pub trial_started_at: Option>, + pub is_usage_based_billing_enabled: bool, + pub is_account_too_young: bool, + pub has_overdue_invoices: bool, +} + +#[derive(Debug, PartialEq, Clone, Copy, Serialize, Deserialize)] +struct SubscriptionPeriod { + pub started_at: DateTime, + pub ended_at: DateTime, +} + +#[derive(Serialize)] +struct UpdatePlanResponse {} + +async fn update_plan( + Path(user_id): Path, + Extension(rpc_server): Extension>, + extract::Json(body): extract::Json, +) -> Result> { + let plan = match body.plan { + zed_llm_client::Plan::ZedFree => proto::Plan::Free, + zed_llm_client::Plan::ZedPro => proto::Plan::ZedPro, + zed_llm_client::Plan::ZedProTrial => proto::Plan::ZedProTrial, + }; + + let update_user_plan = proto::UpdateUserPlan { + plan: plan.into(), + trial_started_at: body + .trial_started_at + .map(|trial_started_at| trial_started_at.timestamp() as u64), + is_usage_based_billing_enabled: Some(body.is_usage_based_billing_enabled), + usage: Some(proto::SubscriptionUsage { + model_requests_usage_amount: body.usage.model_requests.used, + model_requests_usage_limit: Some(usage_limit_to_proto(body.usage.model_requests.limit)), + edit_predictions_usage_amount: body.usage.edit_predictions.used, + edit_predictions_usage_limit: Some(usage_limit_to_proto( + body.usage.edit_predictions.limit, + )), + }), + subscription_period: Some(proto::SubscriptionPeriod { + started_at: body.subscription_period.started_at.timestamp() as u64, + ended_at: body.subscription_period.ended_at.timestamp() as u64, + }), + account_too_young: Some(body.is_account_too_young), + has_overdue_invoices: Some(body.has_overdue_invoices), + }; + + rpc_server + .update_plan_for_user(user_id, update_user_plan) + .await?; + + Ok(Json(UpdatePlanResponse {})) +} + +fn usage_limit_to_proto(limit: zed_llm_client::UsageLimit) -> proto::UsageLimit { + proto::UsageLimit { + variant: Some(match limit { + zed_llm_client::UsageLimit::Limited(limit) => { + proto::usage_limit::Variant::Limited(proto::usage_limit::Limited { + limit: limit as u32, + }) + } + zed_llm_client::UsageLimit::Unlimited => { + proto::usage_limit::Variant::Unlimited(proto::usage_limit::Unlimited {}) + } + }), + } +} diff --git a/crates/collab/src/api/billing.rs b/crates/collab/src/api/billing.rs index d6e42ad2fb..bd7b99b3eb 100644 --- a/crates/collab/src/api/billing.rs +++ b/crates/collab/src/api/billing.rs @@ -785,7 +785,7 @@ async fn handle_customer_subscription_event( // When the user's subscription changes, push down any changes to their plan. rpc_server - .update_plan_for_user(billing_customer.user_id) + .update_plan_for_user_legacy(billing_customer.user_id) .await .trace_err(); diff --git a/crates/collab/src/rpc.rs b/crates/collab/src/rpc.rs index 924784109b..0735b08e89 100644 --- a/crates/collab/src/rpc.rs +++ b/crates/collab/src/rpc.rs @@ -1002,7 +1002,26 @@ impl Server { Ok(()) } - pub async fn update_plan_for_user(self: &Arc, user_id: UserId) -> Result<()> { + pub async fn update_plan_for_user( + self: &Arc, + user_id: UserId, + update_user_plan: proto::UpdateUserPlan, + ) -> Result<()> { + let pool = self.connection_pool.lock(); + for connection_id in pool.user_connection_ids(user_id) { + self.peer + .send(connection_id, update_user_plan.clone()) + .trace_err(); + } + + Ok(()) + } + + /// This is the legacy way of updating the user's plan, where we fetch the data to construct the `UpdateUserPlan` + /// message on the Collab server. + /// + /// The new way is to receive the data from Cloud via the `POST /users/:id/update_plan` endpoint. + pub async fn update_plan_for_user_legacy(self: &Arc, user_id: UserId) -> Result<()> { let user = self .app_state .db @@ -1018,14 +1037,7 @@ impl Server { ) .await?; - let pool = self.connection_pool.lock(); - for connection_id in pool.user_connection_ids(user_id) { - self.peer - .send(connection_id, update_user_plan.clone()) - .trace_err(); - } - - Ok(()) + self.update_plan_for_user(user_id, update_user_plan).await } pub async fn refresh_llm_tokens_for_user(self: &Arc, user_id: UserId) { From 1f4c9b9427437952839489a6399e5300dd579dfe Mon Sep 17 00:00:00 2001 From: claytonrcarter Date: Wed, 23 Jul 2025 11:08:52 -0400 Subject: [PATCH 0153/1052] language: Update block_comment and documentation comment (#34861) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit As suggested in https://github.com/zed-industries/zed/pull/34418, this proposes various changes to language configs to make block comments and doc-block-style comments more similar. In doing so, it introduces some breaking changes into the extension schema. This change is needed to support the changes I'm working on in #34418, to be able to support `rewrap` in block comments like `/* really long comment ... */`. As is, we can do this in C-style doc-block comments (eg `/** ... */`) because of the config in `documentation`, but we can't do this in regular block comments because we lack the info about what the line prefix and indentation should be. And while I was here, I did various other clean-ups, many of which feel nice but are optional. I would love special attention on the changes to the schema, version and related changes; I'm totally unfamiliar with that part of Zed. **Summary of changes** - break: changes type of `block_comment` to same type as `documentation_comment` (**this is the important change**) - break: rename `documentation` to `documentation_comment` (optional, but improves consistency w/ `line_comments` and `block_comment`) - break/refactor?: removes some whitespace in the declaration of `block_comment` delimiters (optional, may break things, need input; some langs had no spaces, others did) - refactor: change `tab_size` from `NonZeroU32` to just a `u32` (some block comments don't seem to need/want indent past the initial delimiter, so we need this be 0 sometimes) - refactor: moves the `documentation_comment` declarations to appear next to `block_comment`, rearranges the order of the fields in the TOML for `documentation_comment`, rename backing `struct` (all optional) **Future scope** I believe that this will also allow us to extend regular block comments on newline – as we do doc-block comments – but I haven't looked into this yet. (eg, in JS try pressing enter in both of these: `/* */` and `/** */`; the latter should extend w/ a `*` prefixed line, while the former does not.) Release Notes: - BREAKING CHANGE: update extension schema version from 1 to 2, change format of `block_comment` and rename `documentation_comment` /cc @smitbarmase --- Cargo.lock | 1 + crates/editor/src/editor.rs | 28 ++-- crates/editor/src/editor_tests.rs | 18 +- .../src/test/editor_lsp_test_context.rs | 10 +- crates/language/Cargo.toml | 1 + crates/language/src/buffer_tests.rs | 76 +++++++-- crates/language/src/language.rs | 157 +++++++++++++++--- crates/languages/src/c/config.toml | 2 +- crates/languages/src/cpp/config.toml | 2 +- crates/languages/src/css/config.toml | 2 +- crates/languages/src/go/config.toml | 2 +- crates/languages/src/javascript/config.toml | 6 +- crates/languages/src/markdown/config.toml | 2 +- crates/languages/src/rust/config.toml | 2 +- crates/languages/src/tsx/config.toml | 6 +- crates/languages/src/typescript/config.toml | 4 +- extensions/glsl/languages/glsl/config.toml | 2 +- extensions/html/languages/html/config.toml | 2 +- 18 files changed, 249 insertions(+), 74 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c64995b01b..6c346e331e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9018,6 +9018,7 @@ dependencies = [ "task", "text", "theme", + "toml 0.8.20", "tree-sitter", "tree-sitter-elixir", "tree-sitter-embedded-template", diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index a31f789fb0..d5448f30f3 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -109,10 +109,10 @@ use inline_completion::{EditPredictionProvider, InlineCompletionProviderHandle}; pub use items::MAX_TAB_TITLE_LEN; use itertools::Itertools; use language::{ - AutoindentMode, BracketMatch, BracketPair, Buffer, Capability, CharKind, CodeLabel, - CursorShape, DiagnosticEntry, DiffOptions, DocumentationConfig, EditPredictionsMode, - EditPreview, HighlightedText, IndentKind, IndentSize, Language, OffsetRangeExt, Point, - Selection, SelectionGoal, TextObject, TransactionId, TreeSitterOptions, WordsQuery, + AutoindentMode, BlockCommentConfig, BracketMatch, BracketPair, Buffer, Capability, CharKind, + CodeLabel, CursorShape, DiagnosticEntry, DiffOptions, EditPredictionsMode, EditPreview, + HighlightedText, IndentKind, IndentSize, Language, OffsetRangeExt, Point, Selection, + SelectionGoal, TextObject, TransactionId, TreeSitterOptions, WordsQuery, language_settings::{ self, InlayHintSettings, LspInsertMode, RewrapBehavior, WordsCompletionMode, all_language_settings, language_settings, @@ -4408,7 +4408,9 @@ impl Editor { }) .max_by_key(|(_, len)| *len)?; - if let Some((block_start, _)) = language.block_comment_delimiters() + if let Some(BlockCommentConfig { + start: block_start, .. + }) = language.block_comment() { let block_start_trimmed = block_start.trim_end(); if block_start_trimmed.starts_with(delimiter.trim_end()) { @@ -4445,13 +4447,12 @@ impl Editor { return None; } - let DocumentationConfig { + let BlockCommentConfig { start: start_tag, end: end_tag, prefix: delimiter, tab_size: len, - } = language.documentation()?; - + } = language.documentation_comment()?; let is_within_block_comment = buffer .language_scope_at(start_point) .is_some_and(|scope| scope.override_name() == Some("comment")); @@ -4521,7 +4522,7 @@ impl Editor { let cursor_is_at_start_of_end_tag = column == end_tag_offset; if cursor_is_at_start_of_end_tag { - indent_on_extra_newline.len = (*len).into(); + indent_on_extra_newline.len = *len; } } cursor_is_before_end_tag @@ -4534,7 +4535,7 @@ impl Editor { && cursor_is_before_end_tag_if_exists { if cursor_is_after_start_tag { - indent_on_newline.len = (*len).into(); + indent_on_newline.len = *len; } Some(delimiter.clone()) } else { @@ -14349,8 +14350,11 @@ impl Editor { (position..position, first_prefix.clone()) })); } - } else if let Some((full_comment_prefix, comment_suffix)) = - language.block_comment_delimiters() + } else if let Some(BlockCommentConfig { + start: full_comment_prefix, + end: comment_suffix, + .. + }) = language.block_comment() { let comment_prefix = full_comment_prefix.trim_end_matches(' '); let comment_prefix_whitespace = &full_comment_prefix[comment_prefix.len()..]; diff --git a/crates/editor/src/editor_tests.rs b/crates/editor/src/editor_tests.rs index fbb877796c..b9ca8c3755 100644 --- a/crates/editor/src/editor_tests.rs +++ b/crates/editor/src/editor_tests.rs @@ -2875,11 +2875,11 @@ async fn test_newline_documentation_comments(cx: &mut TestAppContext) { let language = Arc::new( Language::new( LanguageConfig { - documentation: Some(language::DocumentationConfig { + documentation_comment: Some(language::BlockCommentConfig { start: "/**".into(), end: "*/".into(), prefix: "* ".into(), - tab_size: NonZeroU32::new(1).unwrap(), + tab_size: 1, }), ..LanguageConfig::default() @@ -3089,7 +3089,12 @@ async fn test_newline_comments_with_block_comment(cx: &mut TestAppContext) { let lua_language = Arc::new(Language::new( LanguageConfig { line_comments: vec!["--".into()], - block_comment: Some(("--[[".into(), "]]".into())), + block_comment: Some(language::BlockCommentConfig { + start: "--[[".into(), + prefix: "".into(), + end: "]]".into(), + tab_size: 0, + }), ..LanguageConfig::default() }, None, @@ -13806,7 +13811,12 @@ async fn test_toggle_block_comment(cx: &mut TestAppContext) { Language::new( LanguageConfig { name: "HTML".into(), - block_comment: Some(("".into())), + block_comment: Some(BlockCommentConfig { + start: "".into(), + tab_size: 0, + }), ..Default::default() }, Some(tree_sitter_html::LANGUAGE.into()), diff --git a/crates/editor/src/test/editor_lsp_test_context.rs b/crates/editor/src/test/editor_lsp_test_context.rs index f7f34135f3..c59786b1eb 100644 --- a/crates/editor/src/test/editor_lsp_test_context.rs +++ b/crates/editor/src/test/editor_lsp_test_context.rs @@ -14,7 +14,8 @@ use futures::Future; use gpui::{Context, Entity, Focusable as _, VisualTestContext, Window}; use indoc::indoc; use language::{ - FakeLspAdapter, Language, LanguageConfig, LanguageMatcher, LanguageQueries, point_to_lsp, + BlockCommentConfig, FakeLspAdapter, Language, LanguageConfig, LanguageMatcher, LanguageQueries, + point_to_lsp, }; use lsp::{notification, request}; use multi_buffer::ToPointUtf16; @@ -269,7 +270,12 @@ impl EditorLspTestContext { path_suffixes: vec!["html".into()], ..Default::default() }, - block_comment: Some(("".into())), + block_comment: Some(BlockCommentConfig { + start: "".into(), + tab_size: 0, + }), completion_query_characters: ['-'].into_iter().collect(), ..Default::default() }, diff --git a/crates/language/Cargo.toml b/crates/language/Cargo.toml index 477b978517..4ab56d6647 100644 --- a/crates/language/Cargo.toml +++ b/crates/language/Cargo.toml @@ -92,6 +92,7 @@ tree-sitter-python.workspace = true tree-sitter-ruby.workspace = true tree-sitter-rust.workspace = true tree-sitter-typescript.workspace = true +toml.workspace = true unindent.workspace = true util = { workspace = true, features = ["test-support"] } zlog.workspace = true diff --git a/crates/language/src/buffer_tests.rs b/crates/language/src/buffer_tests.rs index 6955cd0549..2e2df7e658 100644 --- a/crates/language/src/buffer_tests.rs +++ b/crates/language/src/buffer_tests.rs @@ -2273,7 +2273,12 @@ fn test_language_scope_at_with_javascript(cx: &mut App) { LanguageConfig { name: "JavaScript".into(), line_comments: vec!["// ".into()], - block_comment: Some(("/*".into(), "*/".into())), + block_comment: Some(BlockCommentConfig { + start: "/*".into(), + end: "*/".into(), + prefix: "* ".into(), + tab_size: 1, + }), brackets: BracketPairConfig { pairs: vec![ BracketPair { @@ -2300,7 +2305,12 @@ fn test_language_scope_at_with_javascript(cx: &mut App) { "element".into(), LanguageConfigOverride { line_comments: Override::Remove { remove: true }, - block_comment: Override::Set(("{/*".into(), "*/}".into())), + block_comment: Override::Set(BlockCommentConfig { + start: "{/*".into(), + prefix: "".into(), + end: "*/}".into(), + tab_size: 0, + }), ..Default::default() }, )] @@ -2338,9 +2348,15 @@ fn test_language_scope_at_with_javascript(cx: &mut App) { let config = snapshot.language_scope_at(0).unwrap(); assert_eq!(config.line_comment_prefixes(), &[Arc::from("// ")]); assert_eq!( - config.block_comment_delimiters(), - Some((&"/*".into(), &"*/".into())) + config.block_comment(), + Some(&BlockCommentConfig { + start: "/*".into(), + prefix: "* ".into(), + end: "*/".into(), + tab_size: 1, + }) ); + // Both bracket pairs are enabled assert_eq!( config.brackets().map(|e| e.1).collect::>(), @@ -2360,8 +2376,13 @@ fn test_language_scope_at_with_javascript(cx: &mut App) { .unwrap(); assert_eq!(string_config.line_comment_prefixes(), &[Arc::from("// ")]); assert_eq!( - string_config.block_comment_delimiters(), - Some((&"/*".into(), &"*/".into())) + string_config.block_comment(), + Some(&BlockCommentConfig { + start: "/*".into(), + prefix: "* ".into(), + end: "*/".into(), + tab_size: 1, + }) ); // Second bracket pair is disabled assert_eq!( @@ -2391,8 +2412,13 @@ fn test_language_scope_at_with_javascript(cx: &mut App) { .unwrap(); assert_eq!(tag_config.line_comment_prefixes(), &[Arc::from("// ")]); assert_eq!( - tag_config.block_comment_delimiters(), - Some((&"/*".into(), &"*/".into())) + tag_config.block_comment(), + Some(&BlockCommentConfig { + start: "/*".into(), + prefix: "* ".into(), + end: "*/".into(), + tab_size: 1, + }) ); assert_eq!( tag_config.brackets().map(|e| e.1).collect::>(), @@ -2408,8 +2434,13 @@ fn test_language_scope_at_with_javascript(cx: &mut App) { &[Arc::from("// ")] ); assert_eq!( - expression_in_element_config.block_comment_delimiters(), - Some((&"/*".into(), &"*/".into())) + expression_in_element_config.block_comment(), + Some(&BlockCommentConfig { + start: "/*".into(), + prefix: "* ".into(), + end: "*/".into(), + tab_size: 1, + }) ); assert_eq!( expression_in_element_config @@ -2528,13 +2559,18 @@ fn test_language_scope_at_with_combined_injections(cx: &mut App) { let html_config = snapshot.language_scope_at(Point::new(2, 4)).unwrap(); assert_eq!(html_config.line_comment_prefixes(), &[]); assert_eq!( - html_config.block_comment_delimiters(), - Some((&"".into())) + html_config.block_comment(), + Some(&BlockCommentConfig { + start: "".into(), + prefix: "".into(), + tab_size: 0, + }) ); let ruby_config = snapshot.language_scope_at(Point::new(3, 12)).unwrap(); assert_eq!(ruby_config.line_comment_prefixes(), &[Arc::from("# ")]); - assert_eq!(ruby_config.block_comment_delimiters(), None); + assert_eq!(ruby_config.block_comment(), None); buffer }); @@ -3490,7 +3526,12 @@ fn html_lang() -> Language { Language::new( LanguageConfig { name: LanguageName::new("HTML"), - block_comment: Some(("".into())), + block_comment: Some(BlockCommentConfig { + start: "".into(), + tab_size: 0, + }), ..Default::default() }, Some(tree_sitter_html::LANGUAGE.into()), @@ -3521,7 +3562,12 @@ fn erb_lang() -> Language { path_suffixes: vec!["erb".to_string()], ..Default::default() }, - block_comment: Some(("<%#".into(), "%>".into())), + block_comment: Some(BlockCommentConfig { + start: "<%#".into(), + prefix: "".into(), + end: "%>".into(), + tab_size: 0, + }), ..Default::default() }, Some(tree_sitter_embedded_template::LANGUAGE.into()), diff --git a/crates/language/src/language.rs b/crates/language/src/language.rs index 1ad057ff41..1df33286ee 100644 --- a/crates/language/src/language.rs +++ b/crates/language/src/language.rs @@ -727,9 +727,12 @@ pub struct LanguageConfig { /// used for comment continuations on the next line, but only the first one is used for Editor::ToggleComments. #[serde(default)] pub line_comments: Vec>, - /// Starting and closing characters of a block comment. + /// Delimiters and configuration for recognizing and formatting block comments. #[serde(default)] - pub block_comment: Option<(Arc, Arc)>, + pub block_comment: Option, + /// Delimiters and configuration for recognizing and formatting documentation comments. + #[serde(default, alias = "documentation")] + pub documentation_comment: Option, /// A list of additional regex patterns that should be treated as prefixes /// for creating boundaries during rewrapping, ensuring content from one /// prefixed section doesn't merge with another (e.g., markdown list items). @@ -774,10 +777,6 @@ pub struct LanguageConfig { /// A list of preferred debuggers for this language. #[serde(default)] pub debuggers: IndexSet, - /// Whether to treat documentation comment of this language differently by - /// auto adding prefix on new line, adjusting the indenting , etc. - #[serde(default)] - pub documentation: Option, } #[derive(Clone, Debug, Deserialize, Default, JsonSchema)] @@ -837,17 +836,56 @@ pub struct JsxTagAutoCloseConfig { pub erroneous_close_tag_name_node_name: Option, } -/// The configuration for documentation block for this language. -#[derive(Clone, Deserialize, JsonSchema)] -pub struct DocumentationConfig { - /// A start tag of documentation block. +/// The configuration for block comments for this language. +#[derive(Clone, Debug, JsonSchema, PartialEq)] +pub struct BlockCommentConfig { + /// A start tag of block comment. pub start: Arc, - /// A end tag of documentation block. + /// A end tag of block comment. pub end: Arc, - /// A character to add as a prefix when a new line is added to a documentation block. + /// A character to add as a prefix when a new line is added to a block comment. pub prefix: Arc, /// A indent to add for prefix and end line upon new line. - pub tab_size: NonZeroU32, + pub tab_size: u32, +} + +impl<'de> Deserialize<'de> for BlockCommentConfig { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + #[derive(Deserialize)] + #[serde(untagged)] + enum BlockCommentConfigHelper { + New { + start: Arc, + end: Arc, + prefix: Arc, + tab_size: u32, + }, + Old([Arc; 2]), + } + + match BlockCommentConfigHelper::deserialize(deserializer)? { + BlockCommentConfigHelper::New { + start, + end, + prefix, + tab_size, + } => Ok(BlockCommentConfig { + start, + end, + prefix, + tab_size, + }), + BlockCommentConfigHelper::Old([start, end]) => Ok(BlockCommentConfig { + start, + end, + prefix: "".into(), + tab_size: 0, + }), + } + } } /// Represents a language for the given range. Some languages (e.g. HTML) @@ -864,7 +902,7 @@ pub struct LanguageConfigOverride { #[serde(default)] pub line_comments: Override>>, #[serde(default)] - pub block_comment: Override<(Arc, Arc)>, + pub block_comment: Override, #[serde(skip)] pub disabled_bracket_ixs: Vec, #[serde(default)] @@ -916,6 +954,7 @@ impl Default for LanguageConfig { autoclose_before: Default::default(), line_comments: Default::default(), block_comment: Default::default(), + documentation_comment: Default::default(), rewrap_prefixes: Default::default(), scope_opt_in_language_servers: Default::default(), overrides: Default::default(), @@ -929,7 +968,6 @@ impl Default for LanguageConfig { jsx_tag_auto_close: None, completion_query_characters: Default::default(), debuggers: Default::default(), - documentation: None, } } } @@ -1847,12 +1885,17 @@ impl LanguageScope { .map_or([].as_slice(), |e| e.as_slice()) } - pub fn block_comment_delimiters(&self) -> Option<(&Arc, &Arc)> { + /// Config for block comments for this language. + pub fn block_comment(&self) -> Option<&BlockCommentConfig> { Override::as_option( self.config_override().map(|o| &o.block_comment), self.language.config.block_comment.as_ref(), ) - .map(|e| (&e.0, &e.1)) + } + + /// Config for documentation-style block comments for this language. + pub fn documentation_comment(&self) -> Option<&BlockCommentConfig> { + self.language.config.documentation_comment.as_ref() } /// Returns additional regex patterns that act as prefix markers for creating @@ -1897,14 +1940,6 @@ impl LanguageScope { .unwrap_or(false) } - /// Returns config to documentation block for this language. - /// - /// Used for documentation styles that require a leading character on each line, - /// such as the asterisk in JSDoc, Javadoc, etc. - pub fn documentation(&self) -> Option<&DocumentationConfig> { - self.language.config.documentation.as_ref() - } - /// Returns a list of bracket pairs for a given language with an additional /// piece of information about whether the particular bracket pair is currently active for a given language. pub fn brackets(&self) -> impl Iterator { @@ -2299,6 +2334,7 @@ pub fn range_from_lsp(range: lsp::Range) -> Range> { mod tests { use super::*; use gpui::TestAppContext; + use pretty_assertions::assert_matches; #[gpui::test(iterations = 10)] async fn test_language_loading(cx: &mut TestAppContext) { @@ -2460,4 +2496,75 @@ mod tests { "LSP completion items with duplicate label and detail, should omit the detail" ); } + + #[test] + fn test_deserializing_comments_backwards_compat() { + // current version of `block_comment` and `documentation_comment` work + { + let config: LanguageConfig = ::toml::from_str( + r#" + name = "Foo" + block_comment = { start = "a", end = "b", prefix = "c", tab_size = 1 } + documentation_comment = { start = "d", end = "e", prefix = "f", tab_size = 2 } + "#, + ) + .unwrap(); + assert_matches!(config.block_comment, Some(BlockCommentConfig { .. })); + assert_matches!( + config.documentation_comment, + Some(BlockCommentConfig { .. }) + ); + + let block_config = config.block_comment.unwrap(); + assert_eq!(block_config.start.as_ref(), "a"); + assert_eq!(block_config.end.as_ref(), "b"); + assert_eq!(block_config.prefix.as_ref(), "c"); + assert_eq!(block_config.tab_size, 1); + + let doc_config = config.documentation_comment.unwrap(); + assert_eq!(doc_config.start.as_ref(), "d"); + assert_eq!(doc_config.end.as_ref(), "e"); + assert_eq!(doc_config.prefix.as_ref(), "f"); + assert_eq!(doc_config.tab_size, 2); + } + + // former `documentation` setting is read into `documentation_comment` + { + let config: LanguageConfig = ::toml::from_str( + r#" + name = "Foo" + documentation = { start = "a", end = "b", prefix = "c", tab_size = 1} + "#, + ) + .unwrap(); + assert_matches!( + config.documentation_comment, + Some(BlockCommentConfig { .. }) + ); + + let config = config.documentation_comment.unwrap(); + assert_eq!(config.start.as_ref(), "a"); + assert_eq!(config.end.as_ref(), "b"); + assert_eq!(config.prefix.as_ref(), "c"); + assert_eq!(config.tab_size, 1); + } + + // old block_comment format is read into BlockCommentConfig + { + let config: LanguageConfig = ::toml::from_str( + r#" + name = "Foo" + block_comment = ["a", "b"] + "#, + ) + .unwrap(); + assert_matches!(config.block_comment, Some(BlockCommentConfig { .. })); + + let config = config.block_comment.unwrap(); + assert_eq!(config.start.as_ref(), "a"); + assert_eq!(config.end.as_ref(), "b"); + assert_eq!(config.prefix.as_ref(), ""); + assert_eq!(config.tab_size, 0); + } + } } diff --git a/crates/languages/src/c/config.toml b/crates/languages/src/c/config.toml index 78213da5be..74290fd9e2 100644 --- a/crates/languages/src/c/config.toml +++ b/crates/languages/src/c/config.toml @@ -16,4 +16,4 @@ brackets = [ { start = "/*", end = " */", close = true, newline = false, not_in = ["string", "comment"] }, ] debuggers = ["CodeLLDB", "GDB"] -documentation = { start = "/*", end = "*/", prefix = "* ", tab_size = 1 } +documentation_comment = { start = "/*", prefix = "* ", end = "*/", tab_size = 1 } diff --git a/crates/languages/src/cpp/config.toml b/crates/languages/src/cpp/config.toml index 1e28381605..fab88266d7 100644 --- a/crates/languages/src/cpp/config.toml +++ b/crates/languages/src/cpp/config.toml @@ -16,4 +16,4 @@ brackets = [ { start = "/*", end = " */", close = true, newline = false, not_in = ["string", "comment"] }, ] debuggers = ["CodeLLDB", "GDB"] -documentation = { start = "/*", end = "*/", prefix = "* ", tab_size = 1 } +documentation_comment = { start = "/*", prefix = "* ", end = "*/", tab_size = 1 } diff --git a/crates/languages/src/css/config.toml b/crates/languages/src/css/config.toml index 0e0b7315e0..a2ca96e76d 100644 --- a/crates/languages/src/css/config.toml +++ b/crates/languages/src/css/config.toml @@ -10,5 +10,5 @@ brackets = [ { start = "'", end = "'", close = true, newline = false, not_in = ["string", "comment"] }, ] completion_query_characters = ["-"] -block_comment = ["/* ", " */"] +block_comment = { start = "/*", prefix = "* ", end = "*/", tab_size = 1 } prettier_parser_name = "css" diff --git a/crates/languages/src/go/config.toml b/crates/languages/src/go/config.toml index 84e35d8f0f..0a5122c038 100644 --- a/crates/languages/src/go/config.toml +++ b/crates/languages/src/go/config.toml @@ -15,4 +15,4 @@ brackets = [ tab_size = 4 hard_tabs = true debuggers = ["Delve"] -documentation = { start = "/*", end = "*/", prefix = "* ", tab_size = 1 } +documentation_comment = { start = "/*", prefix = "* ", end = "*/", tab_size = 1 } diff --git a/crates/languages/src/javascript/config.toml b/crates/languages/src/javascript/config.toml index ac87a9befd..0df57d985e 100644 --- a/crates/languages/src/javascript/config.toml +++ b/crates/languages/src/javascript/config.toml @@ -4,7 +4,8 @@ path_suffixes = ["js", "jsx", "mjs", "cjs"] # [/ ] is so we match "env node" or "/node" but not "ts-node" first_line_pattern = '^#!.*\b(?:[/ ]node|deno run.*--ext[= ]js)\b' line_comments = ["// "] -block_comment = ["/*", "*/"] +block_comment = { start = "/*", prefix = "* ", end = "*/", tab_size = 1 } +documentation_comment = { start = "/**", prefix = "* ", end = "*/", tab_size = 1 } autoclose_before = ";:.,=}])>" brackets = [ { start = "{", end = "}", close = true, newline = true }, @@ -21,7 +22,6 @@ tab_size = 2 scope_opt_in_language_servers = ["tailwindcss-language-server", "emmet-language-server"] prettier_parser_name = "babel" debuggers = ["JavaScript"] -documentation = { start = "/**", end = "*/", prefix = "* ", tab_size = 1 } [jsx_tag_auto_close] open_tag_node_name = "jsx_opening_element" @@ -31,7 +31,7 @@ tag_name_node_name = "identifier" [overrides.element] line_comments = { remove = true } -block_comment = ["{/* ", " */}"] +block_comment = { start = "{/* ", prefix = "", end = "*/}", tab_size = 0 } opt_into_language_servers = ["emmet-language-server"] [overrides.string] diff --git a/crates/languages/src/markdown/config.toml b/crates/languages/src/markdown/config.toml index 059e52de94..926dcd70d9 100644 --- a/crates/languages/src/markdown/config.toml +++ b/crates/languages/src/markdown/config.toml @@ -2,7 +2,7 @@ name = "Markdown" grammar = "markdown" path_suffixes = ["md", "mdx", "mdwn", "markdown", "MD"] completion_query_characters = ["-"] -block_comment = [""] +block_comment = { start = "", tab_size = 0 } autoclose_before = ";:.,=}])>" brackets = [ { start = "{", end = "}", close = true, newline = true }, diff --git a/crates/languages/src/rust/config.toml b/crates/languages/src/rust/config.toml index b55b6da4ab..fe8b4ffdcb 100644 --- a/crates/languages/src/rust/config.toml +++ b/crates/languages/src/rust/config.toml @@ -16,4 +16,4 @@ brackets = [ ] collapsed_placeholder = " /* ... */ " debuggers = ["CodeLLDB", "GDB"] -documentation = { start = "/*", end = "*/", prefix = "* ", tab_size = 1 } +documentation_comment = { start = "/*", prefix = "* ", end = "*/", tab_size = 1 } diff --git a/crates/languages/src/tsx/config.toml b/crates/languages/src/tsx/config.toml index 4176e62215..5849b9842f 100644 --- a/crates/languages/src/tsx/config.toml +++ b/crates/languages/src/tsx/config.toml @@ -2,7 +2,8 @@ name = "TSX" grammar = "tsx" path_suffixes = ["tsx"] line_comments = ["// "] -block_comment = ["/*", "*/"] +block_comment = { start = "/*", prefix = "* ", end = "*/", tab_size = 1 } +documentation_comment = { start = "/**", prefix = "* ", end = "*/", tab_size = 1 } autoclose_before = ";:.,=}])>" brackets = [ { start = "{", end = "}", close = true, newline = true }, @@ -19,7 +20,6 @@ scope_opt_in_language_servers = ["tailwindcss-language-server", "emmet-language- prettier_parser_name = "typescript" tab_size = 2 debuggers = ["JavaScript"] -documentation = { start = "/**", end = "*/", prefix = "* ", tab_size = 1 } [jsx_tag_auto_close] open_tag_node_name = "jsx_opening_element" @@ -30,7 +30,7 @@ tag_name_node_name_alternates = ["member_expression"] [overrides.element] line_comments = { remove = true } -block_comment = ["{/* ", " */}"] +block_comment = { start = "{/*", prefix = "", end = "*/}", tab_size = 0 } opt_into_language_servers = ["emmet-language-server"] [overrides.string] diff --git a/crates/languages/src/typescript/config.toml b/crates/languages/src/typescript/config.toml index db0f32aa0d..d7e3e4bd3d 100644 --- a/crates/languages/src/typescript/config.toml +++ b/crates/languages/src/typescript/config.toml @@ -3,7 +3,8 @@ grammar = "typescript" path_suffixes = ["ts", "cts", "mts"] first_line_pattern = '^#!.*\b(?:deno run|ts-node|bun|tsx|[/ ]node)\b' line_comments = ["// "] -block_comment = ["/*", "*/"] +block_comment = { start = "/*", prefix = "* ", end = "*/", tab_size = 1 } +documentation_comment = { start = "/**", prefix = "* ", end = "*/", tab_size = 1 } autoclose_before = ";:.,=}])>" brackets = [ { start = "{", end = "}", close = true, newline = true }, @@ -19,7 +20,6 @@ word_characters = ["#", "$"] prettier_parser_name = "typescript" tab_size = 2 debuggers = ["JavaScript"] -documentation = { start = "/**", end = "*/", prefix = "* ", tab_size = 1 } [overrides.string] completion_query_characters = ["."] diff --git a/extensions/glsl/languages/glsl/config.toml b/extensions/glsl/languages/glsl/config.toml index 0144e981cc..0c71419c91 100644 --- a/extensions/glsl/languages/glsl/config.toml +++ b/extensions/glsl/languages/glsl/config.toml @@ -12,7 +12,7 @@ path_suffixes = [ ] first_line_pattern = '^#version \d+' line_comments = ["// "] -block_comment = ["/* ", " */"] +block_comment = { start = "/* ", prefix = "* ", end = "*/", tab_size = 1 } brackets = [ { start = "{", end = "}", close = true, newline = true }, { start = "[", end = "]", close = true, newline = true }, diff --git a/extensions/html/languages/html/config.toml b/extensions/html/languages/html/config.toml index 6f52cc8f65..f74db2888e 100644 --- a/extensions/html/languages/html/config.toml +++ b/extensions/html/languages/html/config.toml @@ -2,7 +2,7 @@ name = "HTML" grammar = "html" path_suffixes = ["html", "htm", "shtml"] autoclose_before = ">})" -block_comment = [""] +block_comment = { start = "", tab_size = 0 } brackets = [ { start = "{", end = "}", close = true, newline = true }, { start = "[", end = "]", close = true, newline = true }, From 326fe05b331118cdb7d630f04c379dd0facb28ad Mon Sep 17 00:00:00 2001 From: Mikayla Maki Date: Wed, 23 Jul 2025 08:44:45 -0700 Subject: [PATCH 0154/1052] Resizable columns (#34794) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR adds resizable columns to the keymap editor and the ability to double-click on a resizable column to set a column back to its default size. The table uses a column's width to calculate what position it should be laid out at. So `column[i]` x position is calculated by the summation of `column[..i]`. When resizing `column[i]`, `column[i+1]`’s size is adjusted to keep all columns’ relative positions the same. If `column[i+1]` is at its minimum size, we keep seeking to the right to find a column with space left to take. An improvement to resizing behavior and double-clicking could be made by checking both column ranges `0..i-1` and `i+1..COLS`, since only one range of columns is checked for resize capacity. Release Notes: - N/A --------- Co-authored-by: Anthony Co-authored-by: Remco Smits --- Cargo.lock | 1 + crates/settings_ui/Cargo.toml | 1 + crates/settings_ui/src/keybindings.rs | 30 +- crates/settings_ui/src/ui_components/table.rs | 455 ++++++++++++++++-- crates/workspace/src/pane_group.rs | 11 + 5 files changed, 449 insertions(+), 49 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6c346e331e..765ae00249 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14779,6 +14779,7 @@ dependencies = [ "fs", "fuzzy", "gpui", + "itertools 0.14.0", "language", "log", "menu", diff --git a/crates/settings_ui/Cargo.toml b/crates/settings_ui/Cargo.toml index 651397dd51..02327045fd 100644 --- a/crates/settings_ui/Cargo.toml +++ b/crates/settings_ui/Cargo.toml @@ -23,6 +23,7 @@ feature_flags.workspace = true fs.workspace = true fuzzy.workspace = true gpui.workspace = true +itertools.workspace = true language.workspace = true log.workspace = true menu.workspace = true diff --git a/crates/settings_ui/src/keybindings.rs b/crates/settings_ui/src/keybindings.rs index 9e885f69f6..8fdacf7ae8 100644 --- a/crates/settings_ui/src/keybindings.rs +++ b/crates/settings_ui/src/keybindings.rs @@ -13,8 +13,8 @@ use gpui::{ Action, Animation, AnimationExt, AppContext as _, AsyncApp, Axis, ClickEvent, Context, DismissEvent, Entity, EventEmitter, FocusHandle, Focusable, FontWeight, Global, IsZero, KeyContext, Keystroke, Modifiers, ModifiersChangedEvent, MouseButton, Point, ScrollStrategy, - ScrollWheelEvent, StyledText, Subscription, Task, TextStyleRefinement, WeakEntity, actions, - anchored, deferred, div, + ScrollWheelEvent, Stateful, StyledText, Subscription, Task, TextStyleRefinement, WeakEntity, + actions, anchored, deferred, div, }; use language::{Language, LanguageConfig, ToOffset as _}; use notifications::status_toast::{StatusToast, ToastIcon}; @@ -36,7 +36,7 @@ use workspace::{ use crate::{ keybindings::persistence::KEYBINDING_EDITORS, - ui_components::table::{Table, TableInteractionState}, + ui_components::table::{ColumnWidths, ResizeBehavior, Table, TableInteractionState}, }; const NO_ACTION_ARGUMENTS_TEXT: SharedString = SharedString::new_static(""); @@ -284,6 +284,7 @@ struct KeymapEditor { context_menu: Option<(Entity, Point, Subscription)>, previous_edit: Option, humanized_action_names: HumanizedActionNameCache, + current_widths: Entity>, show_hover_menus: bool, /// In order for the JSON LSP to run in the actions arguments editor, we /// require a backing file In order to avoid issues (primarily log spam) @@ -400,6 +401,7 @@ impl KeymapEditor { show_hover_menus: true, action_args_temp_dir: None, action_args_temp_dir_worktree: None, + current_widths: cx.new(|cx| ColumnWidths::new(cx)), }; this.on_keymap_changed(window, cx); @@ -1433,6 +1435,18 @@ impl Render for KeymapEditor { DefiniteLength::Fraction(0.45), DefiniteLength::Fraction(0.08), ]) + .resizable_columns( + [ + ResizeBehavior::None, + ResizeBehavior::Resizable, + ResizeBehavior::Resizable, + ResizeBehavior::Resizable, + ResizeBehavior::Resizable, + ResizeBehavior::Resizable, // this column doesn't matter + ], + &self.current_widths, + cx, + ) .header(["", "Action", "Arguments", "Keystrokes", "Context", "Source"]) .uniform_list( "keymap-editor-table", @@ -1594,15 +1608,14 @@ impl Render for KeymapEditor { .collect() }), ) - .map_row( - cx.processor(|this, (row_index, row): (usize, Div), _window, cx| { + .map_row(cx.processor( + |this, (row_index, row): (usize, Stateful
), _window, cx| { let is_conflict = this.has_conflict(row_index); let is_selected = this.selected_index == Some(row_index); let row_id = row_group_id(row_index); let row = row - .id(row_id.clone()) .on_any_mouse_down(cx.listener( move |this, mouse_down_event: &gpui::MouseDownEvent, @@ -1636,11 +1649,12 @@ impl Render for KeymapEditor { }) .when(is_selected, |row| { row.border_color(cx.theme().colors().panel_focused_border) + .border_2() }); row.into_any_element() - }), - ), + }, + )), ) .on_scroll_wheel(cx.listener(|this, event: &ScrollWheelEvent, _, cx| { // This ensures that the menu is not dismissed in cases where scroll events diff --git a/crates/settings_ui/src/ui_components/table.rs b/crates/settings_ui/src/ui_components/table.rs index 6ea59cd2f4..70472918d2 100644 --- a/crates/settings_ui/src/ui_components/table.rs +++ b/crates/settings_ui/src/ui_components/table.rs @@ -2,19 +2,24 @@ use std::{ops::Range, rc::Rc, time::Duration}; use editor::{EditorSettings, ShowScrollbar, scroll::ScrollbarAutoHide}; use gpui::{ - AppContext, Axis, Context, Entity, FocusHandle, Length, ListHorizontalSizingBehavior, - ListSizingBehavior, MouseButton, Point, Task, UniformListScrollHandle, WeakEntity, - transparent_black, uniform_list, + AbsoluteLength, AppContext, Axis, Context, DefiniteLength, DragMoveEvent, Entity, FocusHandle, + Length, ListHorizontalSizingBehavior, ListSizingBehavior, MouseButton, Point, Stateful, Task, + UniformListScrollHandle, WeakEntity, transparent_black, uniform_list, }; + +use itertools::intersperse_with; use settings::Settings as _; use ui::{ ActiveTheme as _, AnyElement, App, Button, ButtonCommon as _, ButtonStyle, Color, Component, ComponentScope, Div, ElementId, FixedWidth as _, FluentBuilder as _, Indicator, - InteractiveElement as _, IntoElement, ParentElement, Pixels, RegisterComponent, RenderOnce, - Scrollbar, ScrollbarState, StatefulInteractiveElement as _, Styled, StyledExt as _, + InteractiveElement, IntoElement, ParentElement, Pixels, RegisterComponent, RenderOnce, + Scrollbar, ScrollbarState, StatefulInteractiveElement, Styled, StyledExt as _, StyledTypography, Window, div, example_group_with_title, h_flex, px, single_example, v_flex, }; +#[derive(Debug)] +struct DraggedColumn(usize); + struct UniformListData { render_item_fn: Box, &mut Window, &mut App) -> Vec<[AnyElement; COLS]>>, element_id: ElementId, @@ -191,6 +196,87 @@ impl TableInteractionState { } } + fn render_resize_handles( + &self, + column_widths: &[Length; COLS], + resizable_columns: &[ResizeBehavior; COLS], + initial_sizes: [DefiniteLength; COLS], + columns: Option>>, + window: &mut Window, + cx: &mut App, + ) -> AnyElement { + let spacers = column_widths + .iter() + .map(|width| base_cell_style(Some(*width)).into_any_element()); + + let mut column_ix = 0; + let resizable_columns_slice = *resizable_columns; + let mut resizable_columns = resizable_columns.into_iter(); + let dividers = intersperse_with(spacers, || { + window.with_id(column_ix, |window| { + let mut resize_divider = div() + // This is required because this is evaluated at a different time than the use_state call above + .id(column_ix) + .relative() + .top_0() + .w_0p5() + .h_full() + .bg(cx.theme().colors().border.opacity(0.5)); + + let mut resize_handle = div() + .id("column-resize-handle") + .absolute() + .left_neg_0p5() + .w(px(5.0)) + .h_full(); + + if resizable_columns + .next() + .is_some_and(ResizeBehavior::is_resizable) + { + let hovered = window.use_state(cx, |_window, _cx| false); + resize_divider = resize_divider.when(*hovered.read(cx), |div| { + div.bg(cx.theme().colors().border_focused) + }); + resize_handle = resize_handle + .on_hover(move |&was_hovered, _, cx| hovered.write(cx, was_hovered)) + .cursor_col_resize() + .when_some(columns.clone(), |this, columns| { + this.on_click(move |event, window, cx| { + if event.down.click_count >= 2 { + columns.update(cx, |columns, _| { + columns.on_double_click( + column_ix, + &initial_sizes, + &resizable_columns_slice, + window, + ); + }) + } + + cx.stop_propagation(); + }) + }) + .on_drag(DraggedColumn(column_ix), |_, _offset, _window, cx| { + cx.new(|_cx| gpui::Empty) + }) + } + + column_ix += 1; + resize_divider.child(resize_handle).into_any_element() + }) + }); + + div() + .id("resize-handles") + .h_flex() + .absolute() + .w_full() + .inset_0() + .children(dividers) + .into_any_element() + } + fn render_vertical_scrollbar_track( this: &Entity, parent: Div, @@ -369,6 +455,217 @@ impl TableInteractionState { } } +#[derive(Debug, Copy, Clone, PartialEq)] +pub enum ResizeBehavior { + None, + Resizable, + MinSize(f32), +} + +impl ResizeBehavior { + pub fn is_resizable(&self) -> bool { + *self != ResizeBehavior::None + } + + pub fn min_size(&self) -> Option { + match self { + ResizeBehavior::None => None, + ResizeBehavior::Resizable => Some(0.05), + ResizeBehavior::MinSize(min_size) => Some(*min_size), + } + } +} + +pub struct ColumnWidths { + widths: [DefiniteLength; COLS], + cached_bounds_width: Pixels, + initialized: bool, +} + +impl ColumnWidths { + pub fn new(_: &mut App) -> Self { + Self { + widths: [DefiniteLength::default(); COLS], + cached_bounds_width: Default::default(), + initialized: false, + } + } + + fn get_fraction(length: &DefiniteLength, bounds_width: Pixels, rem_size: Pixels) -> f32 { + match length { + DefiniteLength::Absolute(AbsoluteLength::Pixels(pixels)) => *pixels / bounds_width, + DefiniteLength::Absolute(AbsoluteLength::Rems(rems_width)) => { + rems_width.to_pixels(rem_size) / bounds_width + } + DefiniteLength::Fraction(fraction) => *fraction, + } + } + + fn on_double_click( + &mut self, + double_click_position: usize, + initial_sizes: &[DefiniteLength; COLS], + resize_behavior: &[ResizeBehavior; COLS], + window: &mut Window, + ) { + let bounds_width = self.cached_bounds_width; + let rem_size = window.rem_size(); + + let diff = + Self::get_fraction( + &initial_sizes[double_click_position], + bounds_width, + rem_size, + ) - Self::get_fraction(&self.widths[double_click_position], bounds_width, rem_size); + + let mut curr_column = double_click_position + 1; + let mut diff_left = diff; + + while diff != 0.0 && curr_column < COLS { + let Some(min_size) = resize_behavior[curr_column].min_size() else { + curr_column += 1; + continue; + }; + + let mut curr_width = + Self::get_fraction(&self.widths[curr_column], bounds_width, rem_size) - diff_left; + + diff_left = 0.0; + if min_size > curr_width { + diff_left += min_size - curr_width; + curr_width = min_size; + } + self.widths[curr_column] = DefiniteLength::Fraction(curr_width); + curr_column += 1; + } + + self.widths[double_click_position] = DefiniteLength::Fraction( + Self::get_fraction(&self.widths[double_click_position], bounds_width, rem_size) + + (diff - diff_left), + ); + } + + fn on_drag_move( + &mut self, + drag_event: &DragMoveEvent, + resize_behavior: &[ResizeBehavior; COLS], + window: &mut Window, + cx: &mut Context, + ) { + // - [ ] Fix bugs in resize + let drag_position = drag_event.event.position; + let bounds = drag_event.bounds; + + let mut col_position = 0.0; + let rem_size = window.rem_size(); + let bounds_width = bounds.right() - bounds.left(); + let col_idx = drag_event.drag(cx).0; + + for length in self.widths[0..=col_idx].iter() { + col_position += Self::get_fraction(length, bounds_width, rem_size); + } + + let mut total_length_ratio = col_position; + for length in self.widths[col_idx + 1..].iter() { + total_length_ratio += Self::get_fraction(length, bounds_width, rem_size); + } + + let drag_fraction = (drag_position.x - bounds.left()) / bounds_width; + let drag_fraction = drag_fraction * total_length_ratio; + let diff = drag_fraction - col_position; + + let is_dragging_right = diff > 0.0; + + let mut diff_left = diff; + let mut curr_column = col_idx + 1; + + if is_dragging_right { + while diff_left > 0.0 && curr_column < COLS { + let Some(min_size) = resize_behavior[curr_column - 1].min_size() else { + curr_column += 1; + continue; + }; + + let mut curr_width = + Self::get_fraction(&self.widths[curr_column], bounds_width, rem_size) + - diff_left; + + diff_left = 0.0; + if min_size > curr_width { + diff_left += min_size - curr_width; + curr_width = min_size; + } + self.widths[curr_column] = DefiniteLength::Fraction(curr_width); + curr_column += 1; + } + + self.widths[col_idx] = DefiniteLength::Fraction( + Self::get_fraction(&self.widths[col_idx], bounds_width, rem_size) + + (diff - diff_left), + ); + } else { + curr_column = col_idx; + // Resize behavior should be improved in the future by also seeking to the right column when there's not enough space + while diff_left < 0.0 { + let Some(min_size) = resize_behavior[curr_column.saturating_sub(1)].min_size() + else { + if curr_column == 0 { + break; + } + curr_column -= 1; + continue; + }; + + let mut curr_width = + Self::get_fraction(&self.widths[curr_column], bounds_width, rem_size) + + diff_left; + + diff_left = 0.0; + if curr_width < min_size { + diff_left = curr_width - min_size; + curr_width = min_size + } + + self.widths[curr_column] = DefiniteLength::Fraction(curr_width); + if curr_column == 0 { + break; + } + curr_column -= 1; + } + + self.widths[col_idx + 1] = DefiniteLength::Fraction( + Self::get_fraction(&self.widths[col_idx + 1], bounds_width, rem_size) + - (diff - diff_left), + ); + } + } +} + +pub struct TableWidths { + initial: [DefiniteLength; COLS], + current: Option>>, + resizable: [ResizeBehavior; COLS], +} + +impl TableWidths { + pub fn new(widths: [impl Into; COLS]) -> Self { + let widths = widths.map(Into::into); + + TableWidths { + initial: widths, + current: None, + resizable: [ResizeBehavior::None; COLS], + } + } + + fn lengths(&self, cx: &App) -> [Length; COLS] { + self.current + .as_ref() + .map(|entity| entity.read(cx).widths.map(Length::Definite)) + .unwrap_or(self.initial.map(Length::Definite)) + } +} + /// A table component #[derive(RegisterComponent, IntoElement)] pub struct Table { @@ -377,23 +674,23 @@ pub struct Table { headers: Option<[AnyElement; COLS]>, rows: TableContents, interaction_state: Option>, - column_widths: Option<[Length; COLS]>, - map_row: Option AnyElement>>, + col_widths: Option>, + map_row: Option), &mut Window, &mut App) -> AnyElement>>, empty_table_callback: Option AnyElement>>, } impl Table { /// number of headers provided. pub fn new() -> Self { - Table { + Self { striped: false, width: None, headers: None, rows: TableContents::Vec(Vec::new()), interaction_state: None, - column_widths: None, map_row: None, empty_table_callback: None, + col_widths: None, } } @@ -454,14 +751,38 @@ impl Table { self } - pub fn column_widths(mut self, widths: [impl Into; COLS]) -> Self { - self.column_widths = Some(widths.map(Into::into)); + pub fn column_widths(mut self, widths: [impl Into; COLS]) -> Self { + if self.col_widths.is_none() { + self.col_widths = Some(TableWidths::new(widths)); + } + self + } + + pub fn resizable_columns( + mut self, + resizable: [ResizeBehavior; COLS], + column_widths: &Entity>, + cx: &mut App, + ) -> Self { + if let Some(table_widths) = self.col_widths.as_mut() { + table_widths.resizable = resizable; + let column_widths = table_widths + .current + .get_or_insert_with(|| column_widths.clone()); + + column_widths.update(cx, |widths, _| { + if !widths.initialized { + widths.initialized = true; + widths.widths = table_widths.initial; + } + }) + } self } pub fn map_row( mut self, - callback: impl Fn((usize, Div), &mut Window, &mut App) -> AnyElement + 'static, + callback: impl Fn((usize, Stateful
), &mut Window, &mut App) -> AnyElement + 'static, ) -> Self { self.map_row = Some(Rc::new(callback)); self @@ -477,18 +798,21 @@ impl Table { } } -fn base_cell_style(width: Option, cx: &App) -> Div { +fn base_cell_style(width: Option) -> Div { div() .px_1p5() .when_some(width, |this, width| this.w(width)) .when(width.is_none(), |this| this.flex_1()) .justify_start() - .text_ui(cx) .whitespace_nowrap() .text_ellipsis() .overflow_hidden() } +fn base_cell_style_text(width: Option, cx: &App) -> Div { + base_cell_style(width).text_ui(cx) +} + pub fn render_row( row_index: usize, items: [impl IntoElement; COLS], @@ -507,33 +831,33 @@ pub fn render_row( .column_widths .map_or([None; COLS], |widths| widths.map(Some)); - let row = div().w_full().child( - h_flex() - .id("table_row") - .w_full() - .justify_between() - .px_1p5() - .py_1() - .when_some(bg, |row, bg| row.bg(bg)) - .when(!is_striped, |row| { - row.border_b_1() - .border_color(transparent_black()) - .when(!is_last, |row| row.border_color(cx.theme().colors().border)) - }) - .children( - items - .map(IntoElement::into_any_element) - .into_iter() - .zip(column_widths) - .map(|(cell, width)| base_cell_style(width, cx).child(cell)), - ), + let mut row = h_flex() + .h_full() + .id(("table_row", row_index)) + .w_full() + .justify_between() + .when_some(bg, |row, bg| row.bg(bg)) + .when(!is_striped, |row| { + row.border_b_1() + .border_color(transparent_black()) + .when(!is_last, |row| row.border_color(cx.theme().colors().border)) + }); + + row = row.children( + items + .map(IntoElement::into_any_element) + .into_iter() + .zip(column_widths) + .map(|(cell, width)| base_cell_style_text(width, cx).px_1p5().py_1().child(cell)), ); - if let Some(map_row) = table_context.map_row { + let row = if let Some(map_row) = table_context.map_row { map_row((row_index, row), window, cx) } else { row.into_any_element() - } + }; + + div().h_full().w_full().child(row).into_any_element() } pub fn render_header( @@ -557,7 +881,7 @@ pub fn render_header( headers .into_iter() .zip(column_widths) - .map(|(h, width)| base_cell_style(width, cx).child(h)), + .map(|(h, width)| base_cell_style_text(width, cx).child(h)), ) } @@ -566,15 +890,15 @@ pub struct TableRenderContext { pub striped: bool, pub total_row_count: usize, pub column_widths: Option<[Length; COLS]>, - pub map_row: Option AnyElement>>, + pub map_row: Option), &mut Window, &mut App) -> AnyElement>>, } impl TableRenderContext { - fn new(table: &Table) -> Self { + fn new(table: &Table, cx: &App) -> Self { Self { striped: table.striped, total_row_count: table.rows.len(), - column_widths: table.column_widths, + column_widths: table.col_widths.as_ref().map(|widths| widths.lengths(cx)), map_row: table.map_row.clone(), } } @@ -582,8 +906,13 @@ impl TableRenderContext { impl RenderOnce for Table { fn render(mut self, window: &mut Window, cx: &mut App) -> impl IntoElement { - let table_context = TableRenderContext::new(&self); + let table_context = TableRenderContext::new(&self, cx); let interaction_state = self.interaction_state.and_then(|state| state.upgrade()); + let current_widths = self + .col_widths + .as_ref() + .and_then(|widths| Some((widths.current.as_ref()?, widths.resizable))) + .map(|(curr, resize_behavior)| (curr.downgrade(), resize_behavior)); let scroll_track_size = px(16.); let h_scroll_offset = if interaction_state @@ -606,6 +935,31 @@ impl RenderOnce for Table { .when_some(self.headers.take(), |this, headers| { this.child(render_header(headers, table_context.clone(), cx)) }) + .when_some(current_widths, { + |this, (widths, resize_behavior)| { + this.on_drag_move::({ + let widths = widths.clone(); + move |e, window, cx| { + widths + .update(cx, |widths, cx| { + widths.on_drag_move(e, &resize_behavior, window, cx); + }) + .ok(); + } + }) + .on_children_prepainted(move |bounds, _, cx| { + widths + .update(cx, |widths, _| { + // This works because all children x axis bounds are the same + widths.cached_bounds_width = bounds[0].right() - bounds[0].left(); + }) + .ok(); + }) + } + }) + .on_drop::(|_, _, _| { + // Finish the resize operation + }) .child( div() .flex_grow() @@ -660,6 +1014,25 @@ impl RenderOnce for Table { ), ), }) + .when_some( + self.col_widths.as_ref().zip(interaction_state.as_ref()), + |parent, (table_widths, state)| { + parent.child(state.update(cx, |state, cx| { + let resizable_columns = table_widths.resizable; + let column_widths = table_widths.lengths(cx); + let columns = table_widths.current.clone(); + let initial_sizes = table_widths.initial; + state.render_resize_handles( + &column_widths, + &resizable_columns, + initial_sizes, + columns, + window, + cx, + ) + })) + }, + ) .when_some(interaction_state.as_ref(), |this, interaction_state| { this.map(|this| { TableInteractionState::render_vertical_scrollbar_track( diff --git a/crates/workspace/src/pane_group.rs b/crates/workspace/src/pane_group.rs index 4565cef347..5c87206e9e 100644 --- a/crates/workspace/src/pane_group.rs +++ b/crates/workspace/src/pane_group.rs @@ -943,6 +943,8 @@ mod element { pub struct PaneAxisElement { axis: Axis, basis: usize, + /// Equivalent to ColumnWidths (but in terms of flexes instead of percentages) + /// For example, flexes "1.33, 1, 1", instead of "40%, 30%, 30%" flexes: Arc>>, bounding_boxes: Arc>>>>, children: SmallVec<[AnyElement; 2]>, @@ -998,6 +1000,7 @@ mod element { let mut flexes = flexes.lock(); debug_assert!(flex_values_in_bounds(flexes.as_slice())); + // Math to convert a flex value to a pixel value let size = move |ix, flexes: &[f32]| { container_size.along(axis) * (flexes[ix] / flexes.len() as f32) }; @@ -1007,9 +1010,13 @@ mod element { return; } + // This is basically a "bucket" of pixel changes that need to be applied in response to this + // mouse event. Probably a small, fractional number like 0.5 or 1.5 pixels let mut proposed_current_pixel_change = (e.position - child_start).along(axis) - size(ix, flexes.as_slice()); + // This takes a pixel change, and computes the flex changes that correspond to this pixel change + // as well as the next one, for some reason let flex_changes = |pixel_dx, target_ix, next: isize, flexes: &[f32]| { let flex_change = pixel_dx / container_size.along(axis); let current_target_flex = flexes[target_ix] + flex_change; @@ -1017,6 +1024,9 @@ mod element { (current_target_flex, next_target_flex) }; + // Generate the list of flex successors, from the current index. + // If you're dragging column 3 forward, out of 6 columns, then this code will produce [4, 5, 6] + // If you're dragging column 3 backward, out of 6 columns, then this code will produce [2, 1, 0] let mut successors = iter::from_fn({ let forward = proposed_current_pixel_change > px(0.); let mut ix_offset = 0; @@ -1034,6 +1044,7 @@ mod element { } }); + // Now actually loop over these, and empty our bucket of pixel changes while proposed_current_pixel_change.abs() > px(0.) { let Some(current_ix) = successors.next() else { break; From 8713c556d660b7cdacda236bda373aa39bde589c Mon Sep 17 00:00:00 2001 From: Finn Evers Date: Wed, 23 Jul 2025 18:03:04 +0200 Subject: [PATCH 0155/1052] keymap_ui: Dim keybinds that are overridden by other keybinds (#34952) This change dims rows in the keymap editor for which the corresponding keybind is overridden by other keybinds coming from higher priority sources. Release Notes: - N/A --- assets/keymaps/default-linux.json | 5 +- assets/keymaps/default-macos.json | 5 +- crates/settings/src/keymap_file.rs | 30 +- crates/settings_ui/src/keybindings.rs | 909 ++++++++++++++++---------- 4 files changed, 602 insertions(+), 347 deletions(-) diff --git a/assets/keymaps/default-linux.json b/assets/keymaps/default-linux.json index b097be90fd..31adef8cd5 100644 --- a/assets/keymaps/default-linux.json +++ b/assets/keymaps/default-linux.json @@ -1137,7 +1137,10 @@ "alt-ctrl-f": "keymap_editor::ToggleKeystrokeSearch", "alt-c": "keymap_editor::ToggleConflictFilter", "enter": "keymap_editor::EditBinding", - "alt-enter": "keymap_editor::CreateBinding" + "alt-enter": "keymap_editor::CreateBinding", + "ctrl-c": "keymap_editor::CopyAction", + "ctrl-shift-c": "keymap_editor::CopyContext", + "ctrl-t": "keymap_editor::ShowMatchingKeybinds" } }, { diff --git a/assets/keymaps/default-macos.json b/assets/keymaps/default-macos.json index e33786f1b2..f942c6f8ae 100644 --- a/assets/keymaps/default-macos.json +++ b/assets/keymaps/default-macos.json @@ -1239,7 +1239,10 @@ "cmd-alt-f": "keymap_editor::ToggleKeystrokeSearch", "cmd-alt-c": "keymap_editor::ToggleConflictFilter", "enter": "keymap_editor::EditBinding", - "alt-enter": "keymap_editor::CreateBinding" + "alt-enter": "keymap_editor::CreateBinding", + "cmd-c": "keymap_editor::CopyAction", + "cmd-shift-c": "keymap_editor::CopyContext", + "cmd-t": "keymap_editor::ShowMatchingKeybinds" } }, { diff --git a/crates/settings/src/keymap_file.rs b/crates/settings/src/keymap_file.rs index 67e8f7e7b2..7802671fec 100644 --- a/crates/settings/src/keymap_file.rs +++ b/crates/settings/src/keymap_file.rs @@ -959,19 +959,21 @@ impl<'a> KeybindUpdateTarget<'a> { } } -#[derive(Clone, Copy, PartialEq, Eq)] +#[derive(Clone, Copy, Default, PartialEq, Eq, PartialOrd, Ord)] pub enum KeybindSource { User, - Default, - Base, Vim, + Base, + #[default] + Default, + Unknown, } impl KeybindSource { - const BASE: KeyBindingMetaIndex = KeyBindingMetaIndex(0); - const DEFAULT: KeyBindingMetaIndex = KeyBindingMetaIndex(1); - const VIM: KeyBindingMetaIndex = KeyBindingMetaIndex(2); - const USER: KeyBindingMetaIndex = KeyBindingMetaIndex(3); + const BASE: KeyBindingMetaIndex = KeyBindingMetaIndex(KeybindSource::Base as u32); + const DEFAULT: KeyBindingMetaIndex = KeyBindingMetaIndex(KeybindSource::Default as u32); + const VIM: KeyBindingMetaIndex = KeyBindingMetaIndex(KeybindSource::Vim as u32); + const USER: KeyBindingMetaIndex = KeyBindingMetaIndex(KeybindSource::User as u32); pub fn name(&self) -> &'static str { match self { @@ -979,6 +981,7 @@ impl KeybindSource { KeybindSource::Default => "Default", KeybindSource::Base => "Base", KeybindSource::Vim => "Vim", + KeybindSource::Unknown => "Unknown", } } @@ -988,21 +991,18 @@ impl KeybindSource { KeybindSource::Default => Self::DEFAULT, KeybindSource::Base => Self::BASE, KeybindSource::Vim => Self::VIM, + KeybindSource::Unknown => KeyBindingMetaIndex(*self as u32), } } pub fn from_meta(index: KeyBindingMetaIndex) -> Self { - Self::try_from_meta(index).unwrap() - } - - pub fn try_from_meta(index: KeyBindingMetaIndex) -> Result { - Ok(match index { + match index { Self::USER => KeybindSource::User, Self::BASE => KeybindSource::Base, Self::DEFAULT => KeybindSource::Default, Self::VIM => KeybindSource::Vim, - _ => anyhow::bail!("Invalid keybind source {:?}", index), - }) + _ => KeybindSource::Unknown, + } } } @@ -1014,7 +1014,7 @@ impl From for KeybindSource { impl From for KeyBindingMetaIndex { fn from(source: KeybindSource) -> Self { - return source.meta(); + source.meta() } } diff --git a/crates/settings_ui/src/keybindings.rs b/crates/settings_ui/src/keybindings.rs index 8fdacf7ae8..a0cbdb9680 100644 --- a/crates/settings_ui/src/keybindings.rs +++ b/crates/settings_ui/src/keybindings.rs @@ -1,4 +1,5 @@ use std::{ + cmp::{self}, ops::{Not as _, Range}, sync::Arc, time::Duration, @@ -20,15 +21,13 @@ use language::{Language, LanguageConfig, ToOffset as _}; use notifications::status_toast::{StatusToast, ToastIcon}; use project::Project; use settings::{BaseKeymap, KeybindSource, KeymapFile, Settings as _, SettingsAssets}; - -use util::ResultExt; - use ui::{ ActiveTheme as _, App, Banner, BorrowAppContext, ContextMenu, IconButtonShape, Indicator, Modal, ModalFooter, ModalHeader, ParentElement as _, Render, Section, SharedString, Styled as _, Tooltip, Window, prelude::*, }; use ui_input::SingleLineInput; +use util::ResultExt; use workspace::{ Item, ModalView, SerializableItem, Workspace, notifications::NotifyTaskExt as _, register_serializable_item, @@ -68,6 +67,8 @@ actions!( ToggleKeystrokeSearch, /// Toggles exact matching for keystroke search ToggleExactKeystrokeMatching, + /// Shows matching keystrokes for the currently selected binding + ShowMatchingKeybinds ] ); @@ -192,76 +193,134 @@ struct KeybindConflict { } impl KeybindConflict { - fn from_iter<'a>(mut indices: impl Iterator) -> Option { - indices.next().map(|index| Self { - first_conflict_index: *index, + fn from_iter<'a>(mut indices: impl Iterator) -> Option { + indices.next().map(|origin| Self { + first_conflict_index: origin.index, remaining_conflict_amount: indices.count(), }) } } +#[derive(Clone, Copy, PartialEq)] +struct ConflictOrigin { + override_source: KeybindSource, + overridden_source: Option, + index: usize, +} + +impl ConflictOrigin { + fn new(source: KeybindSource, index: usize) -> Self { + Self { + override_source: source, + index, + overridden_source: None, + } + } + + fn with_overridden_source(self, source: KeybindSource) -> Self { + Self { + overridden_source: Some(source), + ..self + } + } + + fn get_conflict_with(&self, other: &Self) -> Option { + if self.override_source == KeybindSource::User + && other.override_source == KeybindSource::User + { + Some( + Self::new(KeybindSource::User, other.index) + .with_overridden_source(self.override_source), + ) + } else if self.override_source > other.override_source { + Some(other.with_overridden_source(self.override_source)) + } else { + None + } + } + + fn is_user_keybind_conflict(&self) -> bool { + self.override_source == KeybindSource::User + && self.overridden_source == Some(KeybindSource::User) + } +} + #[derive(Default)] struct ConflictState { - conflicts: Vec, - keybind_mapping: HashMap>, + conflicts: Vec>, + keybind_mapping: HashMap>, + has_user_conflicts: bool, } impl ConflictState { - fn new(key_bindings: &[ProcessedKeybinding]) -> Self { - let mut action_keybind_mapping: HashMap<_, Vec> = HashMap::default(); + fn new(key_bindings: &[ProcessedBinding]) -> Self { + let mut action_keybind_mapping: HashMap<_, Vec> = HashMap::default(); - key_bindings + let mut largest_index = 0; + for (index, binding) in key_bindings .iter() .enumerate() - .filter(|(_, binding)| { - binding.keystrokes().is_some() - && binding - .source - .as_ref() - .is_some_and(|source| matches!(source.0, KeybindSource::User)) - }) - .for_each(|(index, binding)| { - action_keybind_mapping - .entry(binding.get_action_mapping()) - .or_default() - .push(index); - }); + .flat_map(|(index, binding)| Some(index).zip(binding.keybind_information())) + { + action_keybind_mapping + .entry(binding.get_action_mapping()) + .or_default() + .push(ConflictOrigin::new(binding.source, index)); + largest_index = index; + } + + let mut conflicts = vec![None; largest_index + 1]; + let mut has_user_conflicts = false; + + for indices in action_keybind_mapping.values_mut() { + indices.sort_unstable_by_key(|origin| origin.override_source); + let Some((fst, snd)) = indices.get(0).zip(indices.get(1)) else { + continue; + }; + + for origin in indices.iter() { + conflicts[origin.index] = + origin.get_conflict_with(if origin == fst { &snd } else { &fst }) + } + + has_user_conflicts |= fst.override_source == KeybindSource::User + && snd.override_source == KeybindSource::User; + } Self { - conflicts: action_keybind_mapping - .values() - .filter(|indices| indices.len() > 1) - .flatten() - .copied() - .collect(), + conflicts, keybind_mapping: action_keybind_mapping, + has_user_conflicts, } } fn conflicting_indices_for_mapping( &self, action_mapping: &ActionMapping, - keybind_idx: usize, + keybind_idx: Option, ) -> Option { self.keybind_mapping .get(action_mapping) .and_then(|indices| { - KeybindConflict::from_iter(indices.iter().filter(|&idx| *idx != keybind_idx)) + KeybindConflict::from_iter( + indices + .iter() + .filter(|&conflict| Some(conflict.index) != keybind_idx), + ) }) } - fn will_conflict(&self, action_mapping: &ActionMapping) -> Option { - self.keybind_mapping - .get(action_mapping) - .and_then(|indices| KeybindConflict::from_iter(indices.iter())) + fn conflict_for_idx(&self, idx: usize) -> Option { + self.conflicts.get(idx).copied().flatten() } - fn has_conflict(&self, candidate_idx: &usize) -> bool { - self.conflicts.contains(candidate_idx) + fn has_user_conflict(&self, candidate_idx: usize) -> bool { + self.conflict_for_idx(candidate_idx) + .is_some_and(|conflict| conflict.is_user_keybind_conflict()) } - fn any_conflicts(&self) -> bool { - !self.conflicts.is_empty() + fn any_user_binding_conflicts(&self) -> bool { + self.has_user_conflicts } } @@ -269,7 +328,7 @@ struct KeymapEditor { workspace: WeakEntity, focus_handle: FocusHandle, _keymap_subscription: Subscription, - keybindings: Vec, + keybindings: Vec, keybinding_conflict_state: ConflictState, filter_state: FilterState, search_mode: SearchMode, @@ -426,24 +485,6 @@ impl KeymapEditor { } } - fn filter_on_selected_binding_keystrokes(&mut self, cx: &mut Context) { - let Some(selected_binding) = self.selected_binding() else { - return; - }; - - let keystrokes = selected_binding - .keystrokes() - .map(Vec::from) - .unwrap_or_default(); - - self.filter_state = FilterState::All; - self.search_mode = SearchMode::KeyStroke { exact_match: true }; - - self.keystroke_editor.update(cx, |editor, cx| { - editor.set_keystrokes(keystrokes, cx); - }); - } - fn on_query_changed(&mut self, cx: &mut Context) { let action_query = self.current_action_query(cx); let keystroke_query = self.current_keystroke_query(cx); @@ -505,7 +546,7 @@ impl KeymapEditor { FilterState::Conflicts => { matches.retain(|candidate| { this.keybinding_conflict_state - .has_conflict(&candidate.candidate_id) + .has_user_conflict(candidate.candidate_id) }); } FilterState::All => {} @@ -551,20 +592,11 @@ impl KeymapEditor { } if action_query.is_empty() { - // apply default sort - // sorts by source precedence, and alphabetically by action name within each source - matches.sort_by_key(|match_item| { - let keybind = &this.keybindings[match_item.candidate_id]; - let source = keybind.source.as_ref().map(|s| s.0); - use KeybindSource::*; - let source_precedence = match source { - Some(User) => 0, - Some(Vim) => 1, - Some(Base) => 2, - Some(Default) => 3, - None => 4, - }; - return (source_precedence, keybind.action_name); + matches.sort_by(|item1, item2| { + let binding1 = &this.keybindings[item1.candidate_id]; + let binding2 = &this.keybindings[item2.candidate_id]; + + binding1.cmp(binding2) }); } this.selected_index.take(); @@ -574,11 +606,11 @@ impl KeymapEditor { }) } - fn has_conflict(&self, row_index: usize) -> bool { - self.matches - .get(row_index) - .map(|candidate| candidate.candidate_id) - .is_some_and(|id| self.keybinding_conflict_state.has_conflict(&id)) + fn get_conflict(&self, row_index: usize) -> Option { + self.matches.get(row_index).and_then(|candidate| { + self.keybinding_conflict_state + .conflict_for_idx(candidate.candidate_id) + }) } fn process_bindings( @@ -586,7 +618,7 @@ impl KeymapEditor { zed_keybind_context_language: Arc, humanized_action_names: &HumanizedActionNameCache, cx: &mut App, - ) -> (Vec, Vec) { + ) -> (Vec, Vec) { let key_bindings_ptr = cx.key_bindings(); let lock = key_bindings_ptr.borrow(); let key_bindings = lock.bindings(); @@ -606,14 +638,12 @@ impl KeymapEditor { for key_binding in key_bindings { let source = key_binding .meta() - .map(settings::KeybindSource::try_from_meta) - .and_then(|source| source.log_err()); + .map(KeybindSource::from_meta) + .unwrap_or(KeybindSource::Unknown); let keystroke_text = ui::text_for_keystrokes(key_binding.keystrokes(), cx); - let ui_key_binding = Some( - ui::KeyBinding::new_from_gpui(key_binding.clone(), cx) - .vim_mode(source == Some(settings::KeybindSource::Vim)), - ); + let ui_key_binding = ui::KeyBinding::new_from_gpui(key_binding.clone(), cx) + .vim_mode(source == KeybindSource::Vim); let context = key_binding .predicate() @@ -625,48 +655,46 @@ impl KeymapEditor { }) .unwrap_or(KeybindContextString::Global); - let source = source.map(|source| (source, source.name().into())); - let action_name = key_binding.action().name(); unmapped_action_names.remove(&action_name); + let action_arguments = key_binding .action_input() .map(|arguments| SyntaxHighlightedText::new(arguments, json_language.clone())); - let action_docs = action_documentation.get(action_name).copied(); - - let index = processed_bindings.len(); - let humanized_action_name = humanized_action_names.get(action_name); - let string_match_candidate = StringMatchCandidate::new(index, &humanized_action_name); - processed_bindings.push(ProcessedKeybinding { - keystroke_text: keystroke_text.into(), - ui_key_binding, + let action_information = ActionInformation::new( action_name, action_arguments, - humanized_action_name, - action_docs, - has_schema: actions_with_schemas.contains(action_name), - context: Some(context), + &actions_with_schemas, + &action_documentation, + &humanized_action_names, + ); + + let index = processed_bindings.len(); + let string_match_candidate = + StringMatchCandidate::new(index, &action_information.humanized_name); + processed_bindings.push(ProcessedBinding::new_mapped( + keystroke_text, + ui_key_binding, + context, source, - }); + action_information, + )); string_match_candidates.push(string_match_candidate); } - let empty = SharedString::new_static(""); for action_name in unmapped_action_names.into_iter() { let index = processed_bindings.len(); - let humanized_action_name = humanized_action_names.get(action_name); - let string_match_candidate = StringMatchCandidate::new(index, &humanized_action_name); - processed_bindings.push(ProcessedKeybinding { - keystroke_text: empty.clone(), - ui_key_binding: None, + let action_information = ActionInformation::new( action_name, - action_arguments: None, - humanized_action_name, - action_docs: action_documentation.get(action_name).copied(), - has_schema: actions_with_schemas.contains(action_name), - context: None, - source: None, - }); + None, + &actions_with_schemas, + &action_documentation, + &humanized_action_names, + ); + let string_match_candidate = + StringMatchCandidate::new(index, &action_information.humanized_name); + + processed_bindings.push(ProcessedBinding::Unmapped(action_information)); string_match_candidates.push(string_match_candidate); } @@ -728,8 +756,9 @@ impl KeymapEditor { let scroll_position = this.matches.iter().enumerate().find_map(|(index, item)| { let binding = &this.keybindings[item.candidate_id]; - if binding.get_action_mapping() == action_mapping - && binding.action_name == action_name + if binding.get_action_mapping().is_some_and(|binding_mapping| { + binding_mapping == action_mapping + }) && binding.action().name == action_name { Some(index) } else { @@ -799,12 +828,12 @@ impl KeymapEditor { .map(|r#match| r#match.candidate_id) } - fn selected_keybind_and_index(&self) -> Option<(&ProcessedKeybinding, usize)> { + fn selected_keybind_and_index(&self) -> Option<(&ProcessedBinding, usize)> { self.selected_keybind_index() .map(|keybind_index| (&self.keybindings[keybind_index], keybind_index)) } - fn selected_binding(&self) -> Option<&ProcessedKeybinding> { + fn selected_binding(&self) -> Option<&ProcessedBinding> { self.selected_keybind_index() .and_then(|keybind_index| self.keybindings.get(keybind_index)) } @@ -832,15 +861,13 @@ impl KeymapEditor { window: &mut Window, cx: &mut Context, ) { - let weak = cx.weak_entity(); self.context_menu = self.selected_binding().map(|selected_binding| { let selected_binding_has_no_context = selected_binding - .context - .as_ref() + .context() .and_then(KeybindContextString::local) .is_none(); - let selected_binding_is_unbound = selected_binding.keystrokes().is_none(); + let selected_binding_is_unbound = selected_binding.is_unbound(); let context_menu = ContextMenu::build(window, cx, |menu, _window, _cx| { menu.context(self.focus_handle.clone()) @@ -863,14 +890,11 @@ impl KeymapEditor { Box::new(CopyContext), ) .separator() - .entry("Show Matching Keybindings", None, { - move |_, cx| { - weak.update(cx, |this, cx| { - this.filter_on_selected_binding_keystrokes(cx); - }) - .ok(); - } - }) + .action_disabled_when( + selected_binding_has_no_context, + "Show Matching Keybindings", + Box::new(ShowMatchingKeybinds), + ) }); let context_menu_handle = context_menu.focus_handle(cx); @@ -898,10 +922,98 @@ impl KeymapEditor { self.context_menu.is_some() } + fn create_row_button( + &self, + index: usize, + conflict: Option, + cx: &mut Context, + ) -> IconButton { + if self.filter_state != FilterState::Conflicts + && let Some(conflict) = conflict + { + if conflict.is_user_keybind_conflict() { + base_button_style(index, IconName::Warning) + .icon_color(Color::Warning) + .tooltip(|window, cx| { + Tooltip::with_meta( + "View conflicts", + Some(&ToggleConflictFilter), + "Use alt+click to show all conflicts", + window, + cx, + ) + }) + .on_click(cx.listener(move |this, click: &ClickEvent, window, cx| { + if click.modifiers().alt { + this.set_filter_state(FilterState::Conflicts, cx); + } else { + this.select_index(index, None, window, cx); + this.open_edit_keybinding_modal(false, window, cx); + cx.stop_propagation(); + } + })) + } else if self.search_mode.exact_match() { + base_button_style(index, IconName::Info) + .tooltip(|window, cx| { + Tooltip::with_meta( + "Edit this binding", + Some(&ShowMatchingKeybinds), + "This binding is overridden by other bindings.", + window, + cx, + ) + }) + .on_click(cx.listener(move |this, _: &ClickEvent, window, cx| { + this.select_index(index, None, window, cx); + this.open_edit_keybinding_modal(false, window, cx); + cx.stop_propagation(); + })) + } else { + base_button_style(index, IconName::Info) + .tooltip(|window, cx| { + Tooltip::with_meta( + "Show matching keybinds", + Some(&ShowMatchingKeybinds), + "This binding is overridden by other bindings.\nUse alt+click to edit this binding", + window, + cx, + ) + }) + .on_click(cx.listener(move |this, click: &ClickEvent, window, cx| { + if click.modifiers().alt { + this.select_index(index, None, window, cx); + this.open_edit_keybinding_modal(false, window, cx); + cx.stop_propagation(); + } else { + this.show_matching_keystrokes(&Default::default(), window, cx); + } + })) + } + } else { + base_button_style(index, IconName::Pencil) + .visible_on_hover(if self.selected_index == Some(index) { + "".into() + } else if self.show_hover_menus { + row_group_id(index) + } else { + "never-show".into() + }) + .when( + self.show_hover_menus && !self.context_menu_deployed(), + |this| this.tooltip(Tooltip::for_action_title("Edit Keybinding", &EditBinding)), + ) + .on_click(cx.listener(move |this, _, window, cx| { + this.select_index(index, None, window, cx); + this.open_edit_keybinding_modal(false, window, cx); + cx.stop_propagation(); + })) + } + } + fn render_no_matches_hint(&self, _window: &mut Window, _cx: &App) -> AnyElement { let hint = match (self.filter_state, &self.search_mode) { (FilterState::Conflicts, _) => { - if self.keybinding_conflict_state.any_conflicts() { + if self.keybinding_conflict_state.any_user_binding_conflicts() { "No conflicting keybinds found that match the provided query" } else { "No conflicting keybinds found" @@ -982,20 +1094,22 @@ impl KeymapEditor { let keybind = keybind.clone(); let keymap_editor = cx.entity(); + let keystroke = keybind.keystroke_text().cloned().unwrap_or_default(); let arguments = keybind - .action_arguments + .action() + .arguments .as_ref() .map(|arguments| arguments.text.clone()); let context = keybind - .context - .as_ref() + .context() .map(|context| context.local_str().unwrap_or("global")); - let source = keybind.source.as_ref().map(|source| source.1.clone()); + let action = keybind.action().name; + let source = keybind.keybind_source().map(|source| source.name()); telemetry::event!( "Edit Keybinding Modal Opened", - keystroke = keybind.keystroke_text, - action = keybind.action_name, + keystroke = keystroke, + action = action, source = source, context = context, arguments = arguments, @@ -1063,7 +1177,7 @@ impl KeymapEditor { ) { let context = self .selected_binding() - .and_then(|binding| binding.context.as_ref()) + .and_then(|binding| binding.context()) .and_then(KeybindContextString::local_str) .map(|context| context.to_string()); let Some(context) = context else { @@ -1082,7 +1196,7 @@ impl KeymapEditor { ) { let action = self .selected_binding() - .map(|binding| binding.action_name.to_string()); + .map(|binding| binding.action().name.to_string()); let Some(action) = action else { return; }; @@ -1142,6 +1256,29 @@ impl KeymapEditor { *exact_match = !(*exact_match); self.on_query_changed(cx); } + + fn show_matching_keystrokes( + &mut self, + _: &ShowMatchingKeybinds, + _: &mut Window, + cx: &mut Context, + ) { + let Some(selected_binding) = self.selected_binding() else { + return; + }; + + let keystrokes = selected_binding + .keystrokes() + .map(Vec::from) + .unwrap_or_default(); + + self.filter_state = FilterState::All; + self.search_mode = SearchMode::KeyStroke { exact_match: true }; + + self.keystroke_editor.update(cx, |editor, cx| { + editor.set_keystrokes(keystrokes, cx); + }); + } } struct HumanizedActionNameCache { @@ -1168,35 +1305,134 @@ impl HumanizedActionNameCache { } #[derive(Clone)] -struct ProcessedKeybinding { +struct KeybindInformation { keystroke_text: SharedString, - ui_key_binding: Option, - action_name: &'static str, - humanized_action_name: SharedString, - action_arguments: Option, - action_docs: Option<&'static str>, - has_schema: bool, - context: Option, - source: Option<(KeybindSource, SharedString)>, + ui_binding: ui::KeyBinding, + context: KeybindContextString, + source: KeybindSource, } -impl ProcessedKeybinding { +impl KeybindInformation { fn get_action_mapping(&self) -> ActionMapping { ActionMapping { - keystrokes: self.keystrokes().map(Vec::from).unwrap_or_default(), - context: self - .context - .as_ref() - .and_then(|context| context.local()) - .cloned(), + keystrokes: self.ui_binding.keystrokes.clone(), + context: self.context.local().cloned(), } } +} + +#[derive(Clone)] +struct ActionInformation { + name: &'static str, + humanized_name: SharedString, + arguments: Option, + documentation: Option<&'static str>, + has_schema: bool, +} + +impl ActionInformation { + fn new( + action_name: &'static str, + action_arguments: Option, + actions_with_schemas: &HashSet<&'static str>, + action_documentation: &HashMap<&'static str, &'static str>, + action_name_cache: &HumanizedActionNameCache, + ) -> Self { + Self { + humanized_name: action_name_cache.get(action_name), + has_schema: actions_with_schemas.contains(action_name), + arguments: action_arguments, + documentation: action_documentation.get(action_name).copied(), + name: action_name, + } + } +} + +#[derive(Clone)] +enum ProcessedBinding { + Mapped(KeybindInformation, ActionInformation), + Unmapped(ActionInformation), +} + +impl ProcessedBinding { + fn new_mapped( + keystroke_text: impl Into, + ui_key_binding: ui::KeyBinding, + context: KeybindContextString, + source: KeybindSource, + action_information: ActionInformation, + ) -> Self { + Self::Mapped( + KeybindInformation { + keystroke_text: keystroke_text.into(), + ui_binding: ui_key_binding, + context, + source, + }, + action_information, + ) + } + + fn is_unbound(&self) -> bool { + matches!(self, Self::Unmapped(_)) + } + + fn get_action_mapping(&self) -> Option { + self.keybind_information() + .map(|keybind| keybind.get_action_mapping()) + } fn keystrokes(&self) -> Option<&[Keystroke]> { - self.ui_key_binding - .as_ref() + self.ui_key_binding() .map(|binding| binding.keystrokes.as_slice()) } + + fn keybind_information(&self) -> Option<&KeybindInformation> { + match self { + Self::Mapped(keybind_information, _) => Some(keybind_information), + Self::Unmapped(_) => None, + } + } + + fn keybind_source(&self) -> Option { + self.keybind_information().map(|keybind| keybind.source) + } + + fn context(&self) -> Option<&KeybindContextString> { + self.keybind_information().map(|keybind| &keybind.context) + } + + fn ui_key_binding(&self) -> Option<&ui::KeyBinding> { + self.keybind_information() + .map(|keybind| &keybind.ui_binding) + } + + fn keystroke_text(&self) -> Option<&SharedString> { + self.keybind_information() + .map(|binding| &binding.keystroke_text) + } + + fn action(&self) -> &ActionInformation { + match self { + Self::Mapped(_, action) | Self::Unmapped(action) => action, + } + } + + fn cmp(&self, other: &Self) -> cmp::Ordering { + match (self, other) { + (Self::Mapped(keybind1, action1), Self::Mapped(keybind2, action2)) => { + match keybind1.source.cmp(&keybind2.source) { + cmp::Ordering::Equal => action1.humanized_name.cmp(&action2.humanized_name), + ordering => ordering, + } + } + (Self::Mapped(_, _), Self::Unmapped(_)) => cmp::Ordering::Less, + (Self::Unmapped(_), Self::Mapped(_, _)) => cmp::Ordering::Greater, + (Self::Unmapped(action1), Self::Unmapped(action2)) => { + action1.humanized_name.cmp(&action2.humanized_name) + } + } + } } #[derive(Clone, Debug, IntoElement, PartialEq, Eq, Hash)] @@ -1275,6 +1511,7 @@ impl Render for KeymapEditor { .on_action(cx.listener(Self::toggle_conflict_filter)) .on_action(cx.listener(Self::toggle_keystroke_search)) .on_action(cx.listener(Self::toggle_exact_keystroke_matching)) + .on_action(cx.listener(Self::show_matching_keystrokes)) .on_mouse_move(cx.listener(|this, _, _window, _cx| { this.show_hover_menus = true; })) @@ -1335,9 +1572,12 @@ impl Render for KeymapEditor { .child( IconButton::new("KeymapEditorConflictIcon", IconName::Warning) .shape(ui::IconButtonShape::Square) - .when(self.keybinding_conflict_state.any_conflicts(), |this| { - this.indicator(Indicator::dot().color(Color::Warning)) - }) + .when( + self.keybinding_conflict_state.any_user_binding_conflicts(), + |this| { + this.indicator(Indicator::dot().color(Color::Warning)) + }, + ) .tooltip({ let filter_state = self.filter_state; let focus_handle = focus_handle.clone(); @@ -1377,7 +1617,10 @@ impl Render for KeymapEditor { this.child( h_flex() .map(|this| { - if self.keybinding_conflict_state.any_conflicts() { + if self + .keybinding_conflict_state + .any_user_binding_conflicts() + { this.pr(rems_from_px(54.)) } else { this.pr_7() @@ -1457,73 +1700,21 @@ impl Render for KeymapEditor { .filter_map(|index| { let candidate_id = this.matches.get(index)?.candidate_id; let binding = &this.keybindings[candidate_id]; - let action_name = binding.action_name; + let action_name = binding.action().name; + let conflict = this.get_conflict(index); + let is_overridden = conflict.is_some_and(|conflict| { + !conflict.is_user_keybind_conflict() + }); - let icon = if this.filter_state != FilterState::Conflicts - && this.has_conflict(index) - { - base_button_style(index, IconName::Warning) - .icon_color(Color::Warning) - .tooltip(|window, cx| { - Tooltip::with_meta( - "View conflicts", - Some(&ToggleConflictFilter), - "Use alt+click to show all conflicts", - window, - cx, - ) - }) - .on_click(cx.listener( - move |this, click: &ClickEvent, window, cx| { - if click.modifiers().alt { - this.set_filter_state( - FilterState::Conflicts, - cx, - ); - } else { - this.select_index(index, None, window, cx); - this.open_edit_keybinding_modal( - false, window, cx, - ); - cx.stop_propagation(); - } - }, - )) - .into_any_element() - } else { - base_button_style(index, IconName::Pencil) - .visible_on_hover( - if this.selected_index == Some(index) { - "".into() - } else if this.show_hover_menus { - row_group_id(index) - } else { - "never-show".into() - }, - ) - .when( - this.show_hover_menus && !context_menu_deployed, - |this| { - this.tooltip(Tooltip::for_action_title( - "Edit Keybinding", - &EditBinding, - )) - }, - ) - .on_click(cx.listener(move |this, _, window, cx| { - this.select_index(index, None, window, cx); - this.open_edit_keybinding_modal(false, window, cx); - cx.stop_propagation(); - })) - .into_any_element() - }; + let icon = this.create_row_button(index, conflict, cx); let action = div() .id(("keymap action", index)) .child({ if action_name != gpui::NoAction.name() { binding - .humanized_action_name + .action() + .humanized_name .clone() .into_any_element() } else { @@ -1534,11 +1725,14 @@ impl Render for KeymapEditor { } }) .when( - !context_menu_deployed && this.show_hover_menus, + !context_menu_deployed + && this.show_hover_menus + && !is_overridden, |this| { this.tooltip({ - let action_name = binding.action_name; - let action_docs = binding.action_docs; + let action_name = binding.action().name; + let action_docs = + binding.action().documentation; move |_, cx| { let action_tooltip = Tooltip::new(action_name); @@ -1552,14 +1746,19 @@ impl Render for KeymapEditor { }, ) .into_any_element(); - let keystrokes = binding.ui_key_binding.clone().map_or( - binding.keystroke_text.clone().into_any_element(), + let keystrokes = binding.ui_key_binding().cloned().map_or( + binding + .keystroke_text() + .cloned() + .unwrap_or_default() + .into_any_element(), IntoElement::into_any_element, ); - let action_arguments = match binding.action_arguments.clone() { + let action_arguments = match binding.action().arguments.clone() + { Some(arguments) => arguments.into_any_element(), None => { - if binding.has_schema { + if binding.action().has_schema { muted_styled_text(NO_ACTION_ARGUMENTS_TEXT, cx) .into_any_element() } else { @@ -1567,7 +1766,7 @@ impl Render for KeymapEditor { } } }; - let context = binding.context.clone().map_or( + let context = binding.context().cloned().map_or( gpui::Empty.into_any_element(), |context| { let is_local = context.local().is_some(); @@ -1578,6 +1777,7 @@ impl Render for KeymapEditor { .when( is_local && !context_menu_deployed + && !is_overridden && this.show_hover_menus, |this| { this.tooltip(Tooltip::element({ @@ -1591,13 +1791,12 @@ impl Render for KeymapEditor { }, ); let source = binding - .source - .clone() - .map(|(_source, name)| name) + .keybind_source() + .map(|source| source.name()) .unwrap_or_default() .into_any_element(); Some([ - icon, + icon.into_any_element(), action, action_arguments, keystrokes, @@ -1610,51 +1809,90 @@ impl Render for KeymapEditor { ) .map_row(cx.processor( |this, (row_index, row): (usize, Stateful
), _window, cx| { - let is_conflict = this.has_conflict(row_index); + let conflict = this.get_conflict(row_index); let is_selected = this.selected_index == Some(row_index); let row_id = row_group_id(row_index); - let row = row - .on_any_mouse_down(cx.listener( - move |this, - mouse_down_event: &gpui::MouseDownEvent, - window, - cx| { - match mouse_down_event.button { - MouseButton::Right => { + div() + .id(("keymap-row-wrapper", row_index)) + .child( + row.id(row_id.clone()) + .on_any_mouse_down(cx.listener( + move |this, + mouse_down_event: &gpui::MouseDownEvent, + window, + cx| { + match mouse_down_event.button { + MouseButton::Right => { + this.select_index( + row_index, None, window, cx, + ); + this.create_context_menu( + mouse_down_event.position, + window, + cx, + ); + } + _ => {} + } + }, + )) + .on_click(cx.listener( + move |this, event: &ClickEvent, window, cx| { this.select_index(row_index, None, window, cx); - this.create_context_menu( - mouse_down_event.position, - window, - cx, - ); - } - _ => {} - } - }, - )) - .on_click(cx.listener( - move |this, event: &ClickEvent, window, cx| { - this.select_index(row_index, None, window, cx); - if event.up.click_count == 2 { - this.open_edit_keybinding_modal(false, window, cx); - } - }, - )) - .group(row_id) + if event.up.click_count == 2 { + this.open_edit_keybinding_modal( + false, window, cx, + ); + } + }, + )) + .group(row_id) + .when( + conflict.is_some_and(|conflict| { + !conflict.is_user_keybind_conflict() + }), + |row| { + const OVERRIDDEN_OPACITY: f32 = 0.5; + row.opacity(OVERRIDDEN_OPACITY) + }, + ) + .when_some( + conflict.filter(|conflict| { + !this.context_menu_deployed() && + !conflict.is_user_keybind_conflict() + }), + |row, conflict| { + let overriding_binding = this.keybindings.get(conflict.index); + let context = overriding_binding.and_then(|binding| { + match conflict.override_source { + KeybindSource::User => Some("your keymap"), + KeybindSource::Vim => Some("the vim keymap"), + KeybindSource::Base => Some("your base keymap"), + _ => { + log::error!("Unexpected override from the {} keymap", conflict.override_source.name()); + None + } + }.map(|source| format!("This keybinding is overridden by the '{}' binding from {}.", binding.action().humanized_name, source)) + }).unwrap_or_else(|| "This binding is overridden.".to_string()); + + row.tooltip(Tooltip::text(context))}, + ), + ) .border_2() - .when(is_conflict, |row| { - row.bg(cx.theme().status().error_background) - }) + .when( + conflict.is_some_and(|conflict| { + conflict.is_user_keybind_conflict() + }), + |row| row.bg(cx.theme().status().error_background), + ) .when(is_selected, |row| { row.border_color(cx.theme().colors().panel_focused_border) - .border_2() - }); - - row.into_any_element() - }, - )), + }) + .into_any_element() + }), + ), ) .on_scroll_wheel(cx.listener(|this, event: &ScrollWheelEvent, _, cx| { // This ensures that the menu is not dismissed in cases where scroll events @@ -1762,7 +2000,7 @@ impl InputError { struct KeybindingEditorModal { creating: bool, - editing_keybind: ProcessedKeybinding, + editing_keybind: ProcessedBinding, editing_keybind_idx: usize, keybind_editor: Entity, context_editor: Entity, @@ -1787,7 +2025,7 @@ impl Focusable for KeybindingEditorModal { impl KeybindingEditorModal { pub fn new( create: bool, - editing_keybind: ProcessedKeybinding, + editing_keybind: ProcessedBinding, editing_keybind_idx: usize, keymap_editor: Entity, action_args_temp_dir: Option<&std::path::Path>, @@ -1805,8 +2043,7 @@ impl KeybindingEditorModal { .label_size(LabelSize::Default); if let Some(context) = editing_keybind - .context - .as_ref() + .context() .and_then(KeybindContextString::local) { input.editor().update(cx, |editor, cx| { @@ -1840,14 +2077,15 @@ impl KeybindingEditorModal { input }); - let action_arguments_editor = editing_keybind.has_schema.then(|| { + let action_arguments_editor = editing_keybind.action().has_schema.then(|| { let arguments = editing_keybind - .action_arguments + .action() + .arguments .as_ref() .map(|args| args.text.clone()); cx.new(|cx| { ActionArgumentsEditor::new( - editing_keybind.action_name, + editing_keybind.action().name, arguments, action_args_temp_dir, workspace.clone(), @@ -1905,7 +2143,7 @@ impl KeybindingEditorModal { }) .transpose()?; - cx.build_action(&self.editing_keybind.action_name, value) + cx.build_action(&self.editing_keybind.action().name, value) .context("Failed to validate action arguments")?; Ok(action_arguments) } @@ -1956,17 +2194,14 @@ impl KeybindingEditorModal { context: new_context.map(SharedString::from), }; - let conflicting_indices = if self.creating { - self.keymap_editor - .read(cx) - .keybinding_conflict_state - .will_conflict(&action_mapping) - } else { - self.keymap_editor - .read(cx) - .keybinding_conflict_state - .conflicting_indices_for_mapping(&action_mapping, self.editing_keybind_idx) - }; + let conflicting_indices = self + .keymap_editor + .read(cx) + .keybinding_conflict_state + .conflicting_indices_for_mapping( + &action_mapping, + self.creating.not().then_some(self.editing_keybind_idx), + ); conflicting_indices.map(|KeybindConflict { first_conflict_index, @@ -1978,7 +2213,7 @@ impl KeybindingEditorModal { .read(cx) .keybindings .get(first_conflict_index) - .map(|keybind| keybind.action_name); + .map(|keybind| keybind.action().name); let warning_message = match conflicting_action_name { Some(name) => { @@ -2013,7 +2248,7 @@ impl KeybindingEditorModal { let status_toast = StatusToast::new( format!( "Saved edits to the {} action.", - &self.editing_keybind.humanized_action_name + &self.editing_keybind.action().humanized_name ), cx, move |this, _cx| { @@ -2030,7 +2265,7 @@ impl KeybindingEditorModal { .log_err(); cx.spawn(async move |this, cx| { - let action_name = existing_keybind.action_name; + let action_name = existing_keybind.action().name; if let Err(err) = save_keybinding_update( create, @@ -2127,13 +2362,18 @@ impl Render for KeybindingEditorModal { .border_b_1() .border_color(theme.border_variant) .child(Label::new( - self.editing_keybind.humanized_action_name.clone(), + self.editing_keybind.action().humanized_name.clone(), )) - .when_some(self.editing_keybind.action_docs, |this, docs| { - this.child( - Label::new(docs).size(LabelSize::Small).color(Color::Muted), - ) - }), + .when_some( + self.editing_keybind.action().documentation, + |this, docs| { + this.child( + Label::new(docs) + .size(LabelSize::Small) + .color(Color::Muted), + ) + }, + ), ), ) .section( @@ -2296,14 +2536,32 @@ impl ActionArgumentsEditor { ) })?; - let file_name = project::lsp_store::json_language_server_ext::normalized_action_file_name(action_name); + let file_name = + project::lsp_store::json_language_server_ext::normalized_action_file_name( + action_name, + ); - let (buffer, backup_temp_dir) = Self::create_temp_buffer(temp_dir, file_name.clone(), project.clone(), fs, cx).await.context("Failed to create temporary buffer for action arguments. Auto-complete will not work") - ?; + let (buffer, backup_temp_dir) = + Self::create_temp_buffer(temp_dir, file_name.clone(), project.clone(), fs, cx) + .await + .context(concat!( + "Failed to create temporary buffer for action arguments. ", + "Auto-complete will not work" + ))?; let editor = cx.new_window_entity(|window, cx| { let multi_buffer = cx.new(|cx| editor::MultiBuffer::singleton(buffer, cx)); - let mut editor = Editor::new(editor::EditorMode::Full { scale_ui_elements_with_buffer_font_size: true, show_active_line_background: false, sized_by_content: true },multi_buffer, project.upgrade(), window, cx); + let mut editor = Editor::new( + editor::EditorMode::Full { + scale_ui_elements_with_buffer_font_size: true, + show_active_line_background: false, + sized_by_content: true, + }, + multi_buffer, + project.upgrade(), + window, + cx, + ); editor.set_searchable(false); editor.disable_scrollbars_and_minimap(window, cx); editor.set_show_edit_predictions(Some(false), window, cx); @@ -2322,7 +2580,8 @@ impl ActionArgumentsEditor { })?; anyhow::Ok(()) - }.await; + } + .await; if result.is_err() { let json_language = load_json_language(workspace.clone(), cx).await; this.update(cx, |this, cx| { @@ -2334,10 +2593,12 @@ impl ActionArgumentsEditor { } }) // .context("Failed to load JSON language for editing keybinding action arguments input") - }).ok(); + }) + .ok(); this.update(cx, |this, _cx| { this.is_loading = false; - }).ok(); + }) + .ok(); } return result; }) @@ -2582,7 +2843,7 @@ async fn load_keybind_context_language( async fn save_keybinding_update( create: bool, - existing: ProcessedKeybinding, + existing: ProcessedBinding, action_mapping: &ActionMapping, new_args: Option<&str>, fs: &Arc, @@ -2593,37 +2854,31 @@ async fn save_keybinding_update( .context("Failed to load keymap file")?; let existing_keystrokes = existing.keystrokes().unwrap_or_default(); - let existing_context = existing - .context - .as_ref() - .and_then(KeybindContextString::local_str); + let existing_context = existing.context().and_then(KeybindContextString::local_str); let existing_args = existing - .action_arguments + .action() + .arguments .as_ref() .map(|args| args.text.as_ref()); let target = settings::KeybindUpdateTarget { context: existing_context, keystrokes: existing_keystrokes, - action_name: &existing.action_name, + action_name: &existing.action().name, action_arguments: existing_args, }; let source = settings::KeybindUpdateTarget { context: action_mapping.context.as_ref().map(|a| &***a), keystrokes: &action_mapping.keystrokes, - action_name: &existing.action_name, + action_name: &existing.action().name, action_arguments: new_args, }; let operation = if !create { settings::KeybindUpdateOperation::Replace { target, - target_keybind_source: existing - .source - .as_ref() - .map(|(source, _name)| *source) - .unwrap_or(KeybindSource::User), + target_keybind_source: existing.keybind_source().unwrap_or(KeybindSource::User), source, } } else { @@ -2655,7 +2910,7 @@ async fn save_keybinding_update( } async fn remove_keybinding( - existing: ProcessedKeybinding, + existing: ProcessedBinding, fs: &Arc, tab_size: usize, ) -> anyhow::Result<()> { @@ -2668,22 +2923,16 @@ async fn remove_keybinding( let operation = settings::KeybindUpdateOperation::Remove { target: settings::KeybindUpdateTarget { - context: existing - .context - .as_ref() - .and_then(KeybindContextString::local_str), + context: existing.context().and_then(KeybindContextString::local_str), keystrokes, - action_name: &existing.action_name, + action_name: &existing.action().name, action_arguments: existing - .action_arguments + .action() + .arguments .as_ref() .map(|arguments| arguments.text.as_ref()), }, - target_keybind_source: existing - .source - .as_ref() - .map(|(source, _name)| *source) - .unwrap_or(KeybindSource::User), + target_keybind_source: existing.keybind_source().unwrap_or(KeybindSource::User), }; let (new_keybinding, removed_keybinding, source) = operation.generate_telemetry(); From 986b446749e69873dd46bdb6b062464ec0169a71 Mon Sep 17 00:00:00 2001 From: Anthony Eid <56899983+Anthony-Eid@users.noreply.github.com> Date: Wed, 23 Jul 2025 12:18:55 -0400 Subject: [PATCH 0156/1052] keymap ui: Resizable column follow up (#34955) I cherry picked a small fix that didn't get into the original column resizable branch PR because I turned on auto merge. Release Notes: - N/A --- crates/settings_ui/src/ui_components/table.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/crates/settings_ui/src/ui_components/table.rs b/crates/settings_ui/src/ui_components/table.rs index 70472918d2..35f2c77306 100644 --- a/crates/settings_ui/src/ui_components/table.rs +++ b/crates/settings_ui/src/ui_components/table.rs @@ -521,7 +521,7 @@ impl ColumnWidths { let mut curr_column = double_click_position + 1; let mut diff_left = diff; - while diff != 0.0 && curr_column < COLS { + while diff_left != 0.0 && curr_column < COLS { let Some(min_size) = resize_behavior[curr_column].min_size() else { curr_column += 1; continue; @@ -607,8 +607,7 @@ impl ColumnWidths { curr_column = col_idx; // Resize behavior should be improved in the future by also seeking to the right column when there's not enough space while diff_left < 0.0 { - let Some(min_size) = resize_behavior[curr_column.saturating_sub(1)].min_size() - else { + let Some(min_size) = resize_behavior[curr_column].min_size() else { if curr_column == 0 { break; } From 3b428e2ecc41185403c1e3e3a0d9de3ac2c15306 Mon Sep 17 00:00:00 2001 From: Michael Sloan Date: Wed, 23 Jul 2025 11:33:40 -0600 Subject: [PATCH 0157/1052] Remove `!menu` from `j k` binding in initial keymap examples (#34959) See https://github.com/zed-industries/zed/pull/34912#issuecomment-3108802582 Release Notes: - N/A --- assets/keymaps/initial.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/keymaps/initial.json b/assets/keymaps/initial.json index ff6069a816..8e4fe59f44 100644 --- a/assets/keymaps/initial.json +++ b/assets/keymaps/initial.json @@ -13,7 +13,7 @@ } }, { - "context": "Editor && vim_mode == insert && !menu", + "context": "Editor && vim_mode == insert", "bindings": { // "j k": "vim::NormalBefore" } From fdcd86617a823b8d6cedfe84bdfd13fc4c2346c8 Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Wed, 23 Jul 2025 14:33:53 -0300 Subject: [PATCH 0158/1052] ai onboarding: Add telemetry event capturing (#34960) Release Notes: - N/A Co-authored-by: Katie Geer Co-authored-by: Joseph T. Lyons --- Cargo.lock | 1 + crates/agent_ui/src/message_editor.rs | 4 +++ crates/ai_onboarding/Cargo.toml | 1 + crates/ai_onboarding/src/ai_onboarding.rs | 37 +++++++++++++++++++---- 4 files changed, 37 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 765ae00249..8be4c9d7be 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -347,6 +347,7 @@ dependencies = [ "proto", "serde", "smallvec", + "telemetry", "ui", "workspace-hack", "zed_actions", diff --git a/crates/agent_ui/src/message_editor.rs b/crates/agent_ui/src/message_editor.rs index 7803753292..ab8ba762f4 100644 --- a/crates/agent_ui/src/message_editor.rs +++ b/crates/agent_ui/src/message_editor.rs @@ -910,6 +910,10 @@ impl MessageEditor { .on_click({ let focus_handle = focus_handle.clone(); move |_event, window, cx| { + telemetry::event!( + "Agent Message Sent", + agent = "zed", + ); focus_handle.dispatch_action( &Chat, window, cx, ); diff --git a/crates/ai_onboarding/Cargo.toml b/crates/ai_onboarding/Cargo.toml index e9208a7248..9031e14e29 100644 --- a/crates/ai_onboarding/Cargo.toml +++ b/crates/ai_onboarding/Cargo.toml @@ -22,6 +22,7 @@ language_model.workspace = true proto.workspace = true serde.workspace = true smallvec.workspace = true +telemetry.workspace = true ui.workspace = true workspace-hack.workspace = true zed_actions.workspace = true diff --git a/crates/ai_onboarding/src/ai_onboarding.rs b/crates/ai_onboarding/src/ai_onboarding.rs index e8ce22ff4e..9d32b1ee09 100644 --- a/crates/ai_onboarding/src/ai_onboarding.rs +++ b/crates/ai_onboarding/src/ai_onboarding.rs @@ -183,6 +183,7 @@ impl ZedAiOnboarding { .full_width() .style(ButtonStyle::Tinted(ui::TintColor::Accent)) .on_click(move |_, _window, cx| { + telemetry::event!("Upgrade To Pro Clicked", state = "young-account"); cx.open_url(&zed_urls::upgrade_to_zed_pro_url(cx)) }), ) @@ -210,6 +211,7 @@ impl ZedAiOnboarding { .full_width() .style(ButtonStyle::Tinted(ui::TintColor::Accent)) .on_click(move |_, _window, cx| { + telemetry::event!("Start Trial Clicked", state = "post-sign-in"); cx.open_url(&zed_urls::start_trial_url(cx)) }), ) @@ -234,7 +236,10 @@ impl ZedAiOnboarding { .icon(IconName::ArrowUpRight) .icon_color(Color::Muted) .icon_size(IconSize::XSmall) - .on_click(move |_, _window, cx| cx.open_url(&zed_urls::terms_of_service(cx))), + .on_click(move |_, _window, cx| { + telemetry::event!("Review Terms of Service Click"); + cx.open_url(&zed_urls::terms_of_service(cx)) + }), ) .child( Button::new("accept_terms", "Accept") @@ -242,7 +247,9 @@ impl ZedAiOnboarding { .style(ButtonStyle::Tinted(TintColor::Accent)) .on_click({ let callback = self.accept_terms_of_service.clone(); - move |_, window, cx| (callback)(window, cx) + move |_, window, cx| { + telemetry::event!("Accepted Terms of Service"); + (callback)(window, cx)} }), ) .into_any_element() @@ -267,7 +274,10 @@ impl ZedAiOnboarding { .style(ButtonStyle::Tinted(ui::TintColor::Accent)) .on_click({ let callback = self.sign_in.clone(); - move |_, window, cx| callback(window, cx) + move |_, window, cx| { + telemetry::event!("Start Trial Clicked", state = "pre-sign-in"); + callback(window, cx) + } }), ) .into_any_element() @@ -294,7 +304,13 @@ impl ZedAiOnboarding { IconButton::new("dismiss_onboarding", IconName::Close) .icon_size(IconSize::Small) .tooltip(Tooltip::text("Dismiss")) - .on_click(move |_, window, cx| callback(window, cx)), + .on_click(move |_, window, cx| { + telemetry::event!( + "Banner Dismissed", + source = "AI Onboarding", + ); + callback(window, cx) + }), ), ) }, @@ -331,7 +347,13 @@ impl ZedAiOnboarding { IconButton::new("dismiss_onboarding", IconName::Close) .icon_size(IconSize::Small) .tooltip(Tooltip::text("Dismiss")) - .on_click(move |_, window, cx| callback(window, cx)), + .on_click(move |_, window, cx| { + telemetry::event!( + "Banner Dismissed", + source = "AI Onboarding", + ); + callback(window, cx) + }), ), ) }, @@ -359,7 +381,10 @@ impl ZedAiOnboarding { .style(ButtonStyle::Outlined) .on_click({ let callback = self.continue_with_zed_ai.clone(); - move |_, window, cx| callback(window, cx) + move |_, window, cx| { + telemetry::event!("Banner Dismissed", source = "AI Onboarding"); + callback(window, cx) + } }), ) .into_any_element() From 56b64b1d3f60dcb15997310c85cd2454ce300d43 Mon Sep 17 00:00:00 2001 From: Anthony Eid <56899983+Anthony-Eid@users.noreply.github.com> Date: Wed, 23 Jul 2025 13:45:49 -0400 Subject: [PATCH 0159/1052] keymap ui: Improve resize columns on double click (#34961) This PR splits the resize logic into separate left/right propagation methods and improve code organization around column width adjustments. It also allows resize to work for both the left and right sides as well, instead of only checking the right side for room Release Notes: - N/A *or* Added/Fixed/Improved ... --------- Co-authored-by: Ben Kunkle --- crates/settings_ui/src/ui_components/table.rs | 188 ++++++++++-------- 1 file changed, 107 insertions(+), 81 deletions(-) diff --git a/crates/settings_ui/src/ui_components/table.rs b/crates/settings_ui/src/ui_components/table.rs index 35f2c77306..69207f559b 100644 --- a/crates/settings_ui/src/ui_components/table.rs +++ b/crates/settings_ui/src/ui_components/table.rs @@ -510,39 +510,48 @@ impl ColumnWidths { ) { let bounds_width = self.cached_bounds_width; let rem_size = window.rem_size(); + let initial_sizes = + initial_sizes.map(|length| Self::get_fraction(&length, bounds_width, rem_size)); + let mut widths = self + .widths + .map(|length| Self::get_fraction(&length, bounds_width, rem_size)); - let diff = - Self::get_fraction( - &initial_sizes[double_click_position], - bounds_width, - rem_size, - ) - Self::get_fraction(&self.widths[double_click_position], bounds_width, rem_size); + let diff = initial_sizes[double_click_position] - widths[double_click_position]; - let mut curr_column = double_click_position + 1; - let mut diff_left = diff; + if diff > 0.0 { + let diff_remaining = self.propagate_resize_diff_right( + diff, + double_click_position, + &mut widths, + resize_behavior, + ); - while diff_left != 0.0 && curr_column < COLS { - let Some(min_size) = resize_behavior[curr_column].min_size() else { - curr_column += 1; - continue; - }; - - let mut curr_width = - Self::get_fraction(&self.widths[curr_column], bounds_width, rem_size) - diff_left; - - diff_left = 0.0; - if min_size > curr_width { - diff_left += min_size - curr_width; - curr_width = min_size; + if diff_remaining > 0.0 && double_click_position > 0 { + self.propagate_resize_diff_left( + -diff_remaining, + double_click_position - 1, + &mut widths, + resize_behavior, + ); } - self.widths[curr_column] = DefiniteLength::Fraction(curr_width); - curr_column += 1; - } + } else if double_click_position > 0 { + let diff_remaining = self.propagate_resize_diff_left( + diff, + double_click_position, + &mut widths, + resize_behavior, + ); - self.widths[double_click_position] = DefiniteLength::Fraction( - Self::get_fraction(&self.widths[double_click_position], bounds_width, rem_size) - + (diff - diff_left), - ); + if diff_remaining < 0.0 { + self.propagate_resize_diff_right( + -diff_remaining, + double_click_position, + &mut widths, + resize_behavior, + ); + } + } + self.widths = widths.map(DefiniteLength::Fraction); } fn on_drag_move( @@ -552,7 +561,6 @@ impl ColumnWidths { window: &mut Window, cx: &mut Context, ) { - // - [ ] Fix bugs in resize let drag_position = drag_event.event.position; let bounds = drag_event.bounds; @@ -561,13 +569,17 @@ impl ColumnWidths { let bounds_width = bounds.right() - bounds.left(); let col_idx = drag_event.drag(cx).0; - for length in self.widths[0..=col_idx].iter() { - col_position += Self::get_fraction(length, bounds_width, rem_size); + let mut widths = self + .widths + .map(|length| Self::get_fraction(&length, bounds_width, rem_size)); + + for length in widths[0..=col_idx].iter() { + col_position += length; } let mut total_length_ratio = col_position; - for length in self.widths[col_idx + 1..].iter() { - total_length_ratio += Self::get_fraction(length, bounds_width, rem_size); + for length in widths[col_idx + 1..].iter() { + total_length_ratio += length; } let drag_fraction = (drag_position.x - bounds.left()) / bounds_width; @@ -576,67 +588,81 @@ impl ColumnWidths { let is_dragging_right = diff > 0.0; - let mut diff_left = diff; + if is_dragging_right { + self.propagate_resize_diff_right(diff, col_idx, &mut widths, resize_behavior); + } else { + // Resize behavior should be improved in the future by also seeking to the right column when there's not enough space + self.propagate_resize_diff_left(diff, col_idx, &mut widths, resize_behavior); + } + self.widths = widths.map(DefiniteLength::Fraction); + } + + fn propagate_resize_diff_right( + &self, + diff: f32, + col_idx: usize, + widths: &mut [f32; COLS], + resize_behavior: &[ResizeBehavior; COLS], + ) -> f32 { + let mut diff_remaining = diff; let mut curr_column = col_idx + 1; - if is_dragging_right { - while diff_left > 0.0 && curr_column < COLS { - let Some(min_size) = resize_behavior[curr_column - 1].min_size() else { - curr_column += 1; - continue; - }; - - let mut curr_width = - Self::get_fraction(&self.widths[curr_column], bounds_width, rem_size) - - diff_left; - - diff_left = 0.0; - if min_size > curr_width { - diff_left += min_size - curr_width; - curr_width = min_size; - } - self.widths[curr_column] = DefiniteLength::Fraction(curr_width); + while diff_remaining > 0.0 && curr_column < COLS { + let Some(min_size) = resize_behavior[curr_column - 1].min_size() else { curr_column += 1; + continue; + }; + + let mut curr_width = widths[curr_column] - diff_remaining; + + diff_remaining = 0.0; + if min_size > curr_width { + diff_remaining += min_size - curr_width; + curr_width = min_size; } + widths[curr_column] = curr_width; + curr_column += 1; + } - self.widths[col_idx] = DefiniteLength::Fraction( - Self::get_fraction(&self.widths[col_idx], bounds_width, rem_size) - + (diff - diff_left), - ); - } else { - curr_column = col_idx; - // Resize behavior should be improved in the future by also seeking to the right column when there's not enough space - while diff_left < 0.0 { - let Some(min_size) = resize_behavior[curr_column].min_size() else { - if curr_column == 0 { - break; - } - curr_column -= 1; - continue; - }; + widths[col_idx] = widths[col_idx] + (diff - diff_remaining); + return diff_remaining; + } - let mut curr_width = - Self::get_fraction(&self.widths[curr_column], bounds_width, rem_size) - + diff_left; - - diff_left = 0.0; - if curr_width < min_size { - diff_left = curr_width - min_size; - curr_width = min_size - } - - self.widths[curr_column] = DefiniteLength::Fraction(curr_width); + fn propagate_resize_diff_left( + &mut self, + diff: f32, + mut curr_column: usize, + widths: &mut [f32; COLS], + resize_behavior: &[ResizeBehavior; COLS], + ) -> f32 { + let mut diff_remaining = diff; + let col_idx = curr_column; + while diff_remaining < 0.0 { + let Some(min_size) = resize_behavior[curr_column].min_size() else { if curr_column == 0 { break; } curr_column -= 1; + continue; + }; + + let mut curr_width = widths[curr_column] + diff_remaining; + + diff_remaining = 0.0; + if curr_width < min_size { + diff_remaining = curr_width - min_size; + curr_width = min_size } - self.widths[col_idx + 1] = DefiniteLength::Fraction( - Self::get_fraction(&self.widths[col_idx + 1], bounds_width, rem_size) - - (diff - diff_left), - ); + widths[curr_column] = curr_width; + if curr_column == 0 { + break; + } + curr_column -= 1; } + widths[col_idx + 1] = widths[col_idx + 1] - (diff - diff_remaining); + + return diff_remaining; } } From 5f0edd38f896a2f31971d1eb53eec944adc3a0e3 Mon Sep 17 00:00:00 2001 From: Julia Ryan Date: Wed, 23 Jul 2025 13:01:16 -0500 Subject: [PATCH 0160/1052] Add TestPanic feature flag (#34963) Now the `dev: panic` action can be run on all release channels if the user has the feature flag enabled. Release Notes: - N/A --- Cargo.lock | 1 + crates/feature_flags/src/feature_flags.rs | 5 +++++ crates/zed/Cargo.toml | 1 + crates/zed/src/zed.rs | 20 +++++++++----------- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8be4c9d7be..6ded3ce5eb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -20211,6 +20211,7 @@ dependencies = [ "extension", "extension_host", "extensions_ui", + "feature_flags", "feedback", "file_finder", "fs", diff --git a/crates/feature_flags/src/feature_flags.rs b/crates/feature_flags/src/feature_flags.rs index da85133bb9..631bafc841 100644 --- a/crates/feature_flags/src/feature_flags.rs +++ b/crates/feature_flags/src/feature_flags.rs @@ -85,6 +85,11 @@ impl FeatureFlag for ThreadAutoCaptureFeatureFlag { false } } +pub struct PanicFeatureFlag; + +impl FeatureFlag for PanicFeatureFlag { + const NAME: &'static str = "panic"; +} pub struct JjUiFeatureFlag {} diff --git a/crates/zed/Cargo.toml b/crates/zed/Cargo.toml index e565aba26b..1b56494145 100644 --- a/crates/zed/Cargo.toml +++ b/crates/zed/Cargo.toml @@ -56,6 +56,7 @@ env_logger.workspace = true extension.workspace = true extension_host.workspace = true extensions_ui.workspace = true +feature_flags.workspace = true feedback.workspace = true file_finder.workspace = true fs.workspace = true diff --git a/crates/zed/src/zed.rs b/crates/zed/src/zed.rs index 24c7ab5ba2..57534c8cd5 100644 --- a/crates/zed/src/zed.rs +++ b/crates/zed/src/zed.rs @@ -19,6 +19,7 @@ use collections::VecDeque; use debugger_ui::debugger_panel::DebugPanel; use editor::ProposedChangesEditorToolbar; use editor::{Editor, MultiBuffer}; +use feature_flags::{FeatureFlagAppExt, PanicFeatureFlag}; use futures::future::Either; use futures::{StreamExt, channel::mpsc, select_biased}; use git_ui::git_panel::GitPanel; @@ -53,9 +54,12 @@ use settings::{ initial_local_debug_tasks_content, initial_project_settings_content, initial_tasks_content, update_settings_file, }; -use std::path::PathBuf; -use std::sync::atomic::{self, AtomicBool}; -use std::{borrow::Cow, path::Path, sync::Arc}; +use std::{ + borrow::Cow, + path::{Path, PathBuf}, + sync::Arc, + sync::atomic::{self, AtomicBool}, +}; use terminal_view::terminal_panel::{self, TerminalPanel}; use theme::{ActiveTheme, ThemeSettings}; use ui::{PopoverMenuHandle, prelude::*}; @@ -120,11 +124,9 @@ pub fn init(cx: &mut App) { cx.on_action(quit); cx.on_action(|_: &RestoreBanner, cx| title_bar::restore_banner(cx)); - - if ReleaseChannel::global(cx) == ReleaseChannel::Dev { - cx.on_action(test_panic); + if ReleaseChannel::global(cx) == ReleaseChannel::Dev || cx.has_flag::() { + cx.on_action(|_: &TestPanic, _| panic!("Ran the TestPanic action")); } - cx.on_action(|_: &OpenLog, cx| { with_active_or_new_workspace(cx, |workspace, window, cx| { open_log_file(workspace, window, cx); @@ -987,10 +989,6 @@ fn about( .detach(); } -fn test_panic(_: &TestPanic, _: &mut App) { - panic!("Ran the TestPanic action") -} - fn install_cli( _: &mut Workspace, _: &install_cli::Install, From a48247a313adbe084abc53455f3e34f92c78cf44 Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Wed, 23 Jul 2025 14:14:39 -0400 Subject: [PATCH 0161/1052] Bump Zed to v0.198 (#34964) Release Notes: -N/A --- Cargo.lock | 2 +- crates/zed/Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6ded3ce5eb..851c658735 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -20170,7 +20170,7 @@ dependencies = [ [[package]] name = "zed" -version = "0.197.0" +version = "0.198.0" dependencies = [ "activity_indicator", "agent", diff --git a/crates/zed/Cargo.toml b/crates/zed/Cargo.toml index 1b56494145..a864ece683 100644 --- a/crates/zed/Cargo.toml +++ b/crates/zed/Cargo.toml @@ -2,7 +2,7 @@ description = "The fast, collaborative code editor." edition.workspace = true name = "zed" -version = "0.197.0" +version = "0.198.0" publish.workspace = true license = "GPL-3.0-or-later" authors = ["Zed Team "] From 9863c8a44e2958d56313370f3c517b9c3ca0bfe0 Mon Sep 17 00:00:00 2001 From: Umesh Yadav <23421535+imumesh18@users.noreply.github.com> Date: Wed, 23 Jul 2025 23:58:05 +0530 Subject: [PATCH 0162/1052] agent_ui: Show keybindings for NewThread and NewTextThread in new thread button (#34967) I believe in this PR: #34829 we moved to context menu entry from action but the side effect of that was we also removed the Keybindings from showing it in the new thread button dropdown. This PR fixes that. cc @danilo-leal | Before | After | |--------|--------| | CleanShot 2025-07-23 at 23 36
28@2x | CleanShot 2025-07-23 at 23 37
17@2x | Release Notes: - N/A --- crates/agent_ui/src/agent_panel.rs | 167 +++++++++++++++-------------- 1 file changed, 89 insertions(+), 78 deletions(-) diff --git a/crates/agent_ui/src/agent_panel.rs b/crates/agent_ui/src/agent_panel.rs index 95ce289608..6ae2f12b5e 100644 --- a/crates/agent_ui/src/agent_panel.rs +++ b/crates/agent_ui/src/agent_panel.rs @@ -1901,85 +1901,96 @@ impl AgentPanel { ) .anchor(Corner::TopRight) .with_handle(self.new_thread_menu_handle.clone()) - .menu(move |window, cx| { - let active_thread = active_thread.clone(); - Some(ContextMenu::build(window, cx, |mut menu, _window, cx| { - menu = menu - .when(cx.has_flag::(), |this| { - this.header("Zed Agent") - }) - .item( - ContextMenuEntry::new("New Thread") - .icon(IconName::NewThread) - .icon_color(Color::Muted) - .handler(move |window, cx| { - window.dispatch_action(NewThread::default().boxed_clone(), cx); - }), - ) - .item( - ContextMenuEntry::new("New Text Thread") - .icon(IconName::NewTextThread) - .icon_color(Color::Muted) - .handler(move |window, cx| { - window.dispatch_action(NewTextThread.boxed_clone(), cx); - }), - ) - .when_some(active_thread, |this, active_thread| { - let thread = active_thread.read(cx); + .menu({ + let focus_handle = focus_handle.clone(); + move |window, cx| { + let active_thread = active_thread.clone(); + Some(ContextMenu::build(window, cx, |mut menu, _window, cx| { + menu = menu + .context(focus_handle.clone()) + .when(cx.has_flag::(), |this| { + this.header("Zed Agent") + }) + .item( + ContextMenuEntry::new("New Thread") + .icon(IconName::NewThread) + .icon_color(Color::Muted) + .action(NewThread::default().boxed_clone()) + .handler(move |window, cx| { + window.dispatch_action( + NewThread::default().boxed_clone(), + cx, + ); + }), + ) + .item( + ContextMenuEntry::new("New Text Thread") + .icon(IconName::NewTextThread) + .icon_color(Color::Muted) + .action(NewTextThread.boxed_clone()) + .handler(move |window, cx| { + window.dispatch_action(NewTextThread.boxed_clone(), cx); + }), + ) + .when_some(active_thread, |this, active_thread| { + let thread = active_thread.read(cx); - if !thread.is_empty() { - let thread_id = thread.id().clone(); - this.item( - ContextMenuEntry::new("New From Summary") - .icon(IconName::NewFromSummary) - .icon_color(Color::Muted) - .handler(move |window, cx| { - window.dispatch_action( - Box::new(NewThread { - from_thread_id: Some(thread_id.clone()), - }), - cx, - ); - }), - ) - } else { - this - } - }) - .when(cx.has_flag::(), |this| { - this.separator() - .header("External Agents") - .item( - ContextMenuEntry::new("New Gemini Thread") - .icon(IconName::AiGemini) - .icon_color(Color::Muted) - .handler(move |window, cx| { - window.dispatch_action( - NewExternalAgentThread { - agent: Some(crate::ExternalAgent::Gemini), - } - .boxed_clone(), - cx, - ); - }), - ) - .item( - ContextMenuEntry::new("New Claude Code Thread") - .icon(IconName::AiClaude) - .icon_color(Color::Muted) - .handler(move |window, cx| { - window.dispatch_action( - NewExternalAgentThread { - agent: Some(crate::ExternalAgent::ClaudeCode), - } - .boxed_clone(), - cx, - ); - }), - ) - }); - menu - })) + if !thread.is_empty() { + let thread_id = thread.id().clone(); + this.item( + ContextMenuEntry::new("New From Summary") + .icon(IconName::NewFromSummary) + .icon_color(Color::Muted) + .handler(move |window, cx| { + window.dispatch_action( + Box::new(NewThread { + from_thread_id: Some(thread_id.clone()), + }), + cx, + ); + }), + ) + } else { + this + } + }) + .when(cx.has_flag::(), |this| { + this.separator() + .header("External Agents") + .item( + ContextMenuEntry::new("New Gemini Thread") + .icon(IconName::AiGemini) + .icon_color(Color::Muted) + .handler(move |window, cx| { + window.dispatch_action( + NewExternalAgentThread { + agent: Some(crate::ExternalAgent::Gemini), + } + .boxed_clone(), + cx, + ); + }), + ) + .item( + ContextMenuEntry::new("New Claude Code Thread") + .icon(IconName::AiClaude) + .icon_color(Color::Muted) + .handler(move |window, cx| { + window.dispatch_action( + NewExternalAgentThread { + agent: Some( + crate::ExternalAgent::ClaudeCode, + ), + } + .boxed_clone(), + cx, + ); + }), + ) + }); + menu + })) + } }); let agent_panel_menu = PopoverMenu::new("agent-options-menu") From be0d9eecb72678fb25eed2abc7e781f0d9e0bb2d Mon Sep 17 00:00:00 2001 From: Nicolas Rodriguez <55200060+NRodriguezcuellar@users.noreply.github.com> Date: Wed, 23 Jul 2025 20:52:44 +0200 Subject: [PATCH 0163/1052] Add collapse functionality to outline entries (#33490) partly Closes #23075 Release Notes: - Now provides collapse and enables functionality to outline entries - Add a new expand_outlines_with_depth setting to customize how deep the tree is expanded by when a file is opened part 2 is in #34164 **Visual examples** ![image](https://github.com/user-attachments/assets/5dcdb83b-6e3e-4bfd-8ef4-76ae2ce4d3e6) ![image](https://github.com/user-attachments/assets/7b786a5a-1a8c-4f34-aaa5-4a8d0afa9668) ![image](https://github.com/user-attachments/assets/1817be06-ac71-4480-8f17-0bd862e913c8) --- assets/settings/default.json | 5 +- crates/outline_panel/src/outline_panel.rs | 862 +++++++++++++++++- .../src/outline_panel_settings.rs | 8 + 3 files changed, 826 insertions(+), 49 deletions(-) diff --git a/assets/settings/default.json b/assets/settings/default.json index dab1684aef..3a7a48efc2 100644 --- a/assets/settings/default.json +++ b/assets/settings/default.json @@ -691,7 +691,10 @@ // 5. Never show the scrollbar: // "never" "show": null - } + }, + // Default depth to expand outline items in the current file. + // Set to 0 to collapse all items that have children, 1 or higher to collapse items at that depth or deeper. + "expand_outlines_with_depth": 100 }, "collaboration_panel": { // Whether to show the collaboration panel button in the status bar. diff --git a/crates/outline_panel/src/outline_panel.rs b/crates/outline_panel/src/outline_panel.rs index 12dcab9e87..50c6c2dcce 100644 --- a/crates/outline_panel/src/outline_panel.rs +++ b/crates/outline_panel/src/outline_panel.rs @@ -1,19 +1,5 @@ mod outline_panel_settings; -use std::{ - cmp, - collections::BTreeMap, - hash::Hash, - ops::Range, - path::{MAIN_SEPARATOR_STR, Path, PathBuf}, - sync::{ - Arc, OnceLock, - atomic::{self, AtomicBool}, - }, - time::Duration, - u32, -}; - use anyhow::Context as _; use collections::{BTreeSet, HashMap, HashSet, hash_map}; use db::kvp::KEY_VALUE_STORE; @@ -36,8 +22,21 @@ use gpui::{ uniform_list, }; use itertools::Itertools; -use language::{BufferId, BufferSnapshot, OffsetRangeExt, OutlineItem}; +use language::{Anchor, BufferId, BufferSnapshot, OffsetRangeExt, OutlineItem}; use menu::{Cancel, SelectFirst, SelectLast, SelectNext, SelectPrevious}; +use std::{ + cmp, + collections::BTreeMap, + hash::Hash, + ops::Range, + path::{MAIN_SEPARATOR_STR, Path, PathBuf}, + sync::{ + Arc, OnceLock, + atomic::{self, AtomicBool}, + }, + time::Duration, + u32, +}; use outline_panel_settings::{OutlinePanelDockPosition, OutlinePanelSettings, ShowIndentGuides}; use project::{File, Fs, GitEntry, GitTraversal, Project, ProjectItem}; @@ -132,6 +131,8 @@ pub struct OutlinePanel { hide_scrollbar_task: Option>, max_width_item_index: Option, preserve_selection_on_buffer_fold_toggles: HashSet, + pending_default_expansion_depth: Option, + outline_children_cache: HashMap, usize), bool>>, } #[derive(Debug)] @@ -318,12 +319,13 @@ struct CachedEntry { entry: PanelEntry, } -#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] +#[derive(Clone, Debug, PartialEq, Eq, Hash)] enum CollapsedEntry { Dir(WorktreeId, ProjectEntryId), File(WorktreeId, BufferId), ExternalFile(BufferId), Excerpt(BufferId, ExcerptId), + Outline(BufferId, ExcerptId, Range), } #[derive(Debug)] @@ -803,8 +805,56 @@ impl OutlinePanel { outline_panel.update_cached_entries(Some(UPDATE_DEBOUNCE), window, cx); } } else if &outline_panel_settings != new_settings { + let old_expansion_depth = outline_panel_settings.expand_outlines_with_depth; outline_panel_settings = *new_settings; - cx.notify(); + + if old_expansion_depth != new_settings.expand_outlines_with_depth { + let old_collapsed_entries = outline_panel.collapsed_entries.clone(); + outline_panel + .collapsed_entries + .retain(|entry| !matches!(entry, CollapsedEntry::Outline(..))); + + let new_depth = new_settings.expand_outlines_with_depth; + + for (buffer_id, excerpts) in &outline_panel.excerpts { + for (excerpt_id, excerpt) in excerpts { + if let ExcerptOutlines::Outlines(outlines) = &excerpt.outlines { + for outline in outlines { + if outline_panel + .outline_children_cache + .get(buffer_id) + .and_then(|children_map| { + let key = + (outline.range.clone(), outline.depth); + children_map.get(&key) + }) + .copied() + .unwrap_or(false) + && (new_depth == 0 || outline.depth >= new_depth) + { + outline_panel.collapsed_entries.insert( + CollapsedEntry::Outline( + *buffer_id, + *excerpt_id, + outline.range.clone(), + ), + ); + } + } + } + } + } + + if old_collapsed_entries != outline_panel.collapsed_entries { + outline_panel.update_cached_entries( + Some(UPDATE_DEBOUNCE), + window, + cx, + ); + } + } else { + cx.notify(); + } } }); @@ -841,6 +891,7 @@ impl OutlinePanel { updating_cached_entries: false, new_entries_for_fs_update: HashSet::default(), preserve_selection_on_buffer_fold_toggles: HashSet::default(), + pending_default_expansion_depth: None, fs_entries_update_task: Task::ready(()), cached_entries_update_task: Task::ready(()), reveal_selection_task: Task::ready(Ok(())), @@ -855,6 +906,7 @@ impl OutlinePanel { workspace_subscription, filter_update_subscription, ], + outline_children_cache: HashMap::default(), }; if let Some((item, editor)) = workspace_active_editor(workspace, cx) { outline_panel.replace_active_editor(item, editor, window, cx); @@ -1462,7 +1514,12 @@ impl OutlinePanel { PanelEntry::Outline(OutlineEntry::Excerpt(excerpt)) => { Some(CollapsedEntry::Excerpt(excerpt.buffer_id, excerpt.id)) } - PanelEntry::Search(_) | PanelEntry::Outline(..) => return, + PanelEntry::Outline(OutlineEntry::Outline(outline)) => Some(CollapsedEntry::Outline( + outline.buffer_id, + outline.excerpt_id, + outline.outline.range.clone(), + )), + PanelEntry::Search(_) => return, }; let Some(collapsed_entry) = entry_to_expand else { return; @@ -1565,7 +1622,14 @@ impl OutlinePanel { PanelEntry::Outline(OutlineEntry::Excerpt(excerpt)) => self .collapsed_entries .insert(CollapsedEntry::Excerpt(excerpt.buffer_id, excerpt.id)), - PanelEntry::Search(_) | PanelEntry::Outline(..) => false, + PanelEntry::Outline(OutlineEntry::Outline(outline)) => { + self.collapsed_entries.insert(CollapsedEntry::Outline( + outline.buffer_id, + outline.excerpt_id, + outline.outline.range.clone(), + )) + } + PanelEntry::Search(_) => false, }; if collapsed { @@ -1780,7 +1844,17 @@ impl OutlinePanel { self.collapsed_entries.insert(collapsed_entry); } } - PanelEntry::Search(_) | PanelEntry::Outline(..) => return, + PanelEntry::Outline(OutlineEntry::Outline(outline)) => { + let collapsed_entry = CollapsedEntry::Outline( + outline.buffer_id, + outline.excerpt_id, + outline.outline.range.clone(), + ); + if !self.collapsed_entries.remove(&collapsed_entry) { + self.collapsed_entries.insert(collapsed_entry); + } + } + _ => {} } active_editor.update(cx, |editor, cx| { @@ -2108,7 +2182,7 @@ impl OutlinePanel { PanelEntry::Outline(OutlineEntry::Excerpt(excerpt.clone())), item_id, depth, - Some(icon), + icon, is_active, label_element, window, @@ -2160,10 +2234,31 @@ impl OutlinePanel { _ => false, }; - let icon = if self.is_singleton_active(cx) { - None + let has_children = self + .outline_children_cache + .get(&outline.buffer_id) + .and_then(|children_map| { + let key = (outline.outline.range.clone(), outline.outline.depth); + children_map.get(&key) + }) + .copied() + .unwrap_or(false); + let is_expanded = !self.collapsed_entries.contains(&CollapsedEntry::Outline( + outline.buffer_id, + outline.excerpt_id, + outline.outline.range.clone(), + )); + + let icon = if has_children { + FileIcons::get_chevron_icon(is_expanded, cx) + .map(|icon_path| { + Icon::from_path(icon_path) + .color(entry_label_color(is_active)) + .into_any_element() + }) + .unwrap_or_else(empty_icon) } else { - Some(empty_icon()) + empty_icon() }; self.entry_element( @@ -2287,7 +2382,7 @@ impl OutlinePanel { PanelEntry::Fs(rendered_entry.clone()), item_id, depth, - Some(icon), + icon, is_active, label_element, window, @@ -2358,7 +2453,7 @@ impl OutlinePanel { PanelEntry::FoldedDirs(folded_dir.clone()), item_id, depth, - Some(icon), + icon, is_active, label_element, window, @@ -2449,7 +2544,7 @@ impl OutlinePanel { }), ElementId::from(SharedString::from(format!("search-{match_range:?}"))), depth, - None, + empty_icon(), is_active, entire_label, window, @@ -2462,7 +2557,7 @@ impl OutlinePanel { rendered_entry: PanelEntry, item_id: ElementId, depth: usize, - icon_element: Option, + icon_element: AnyElement, is_active: bool, label_element: gpui::AnyElement, window: &mut Window, @@ -2478,8 +2573,10 @@ impl OutlinePanel { if event.down.button == MouseButton::Right || event.down.first_mouse { return; } + let change_focus = event.down.click_count > 1; outline_panel.toggle_expanded(&clicked_entry, window, cx); + outline_panel.scroll_editor_to_entry( &clicked_entry, true, @@ -2495,10 +2592,11 @@ impl OutlinePanel { .indent_level(depth) .indent_step_size(px(settings.indent_size)) .toggle_state(is_active) - .when_some(icon_element, |list_item, icon_element| { - list_item.child(h_flex().child(icon_element)) - }) - .child(h_flex().h_6().child(label_element).ml_1()) + .child( + h_flex() + .child(h_flex().w(px(16.)).justify_center().child(icon_element)) + .child(h_flex().h_6().child(label_element).ml_1()), + ) .on_secondary_mouse_down(cx.listener( move |outline_panel, event: &MouseDownEvent, window, cx| { // Stop propagation to prevent the catch-all context menu for the project @@ -2940,7 +3038,12 @@ impl OutlinePanel { outline_panel.fs_entries_depth = new_depth_map; outline_panel.fs_children_count = new_children_count; outline_panel.update_non_fs_items(window, cx); - outline_panel.update_cached_entries(debounce, window, cx); + + // Only update cached entries if we don't have outlines to fetch + // If we do have outlines to fetch, let fetch_outdated_outlines handle the update + if outline_panel.excerpt_fetch_ranges(cx).is_empty() { + outline_panel.update_cached_entries(debounce, window, cx); + } cx.notify(); }) @@ -2956,6 +3059,12 @@ impl OutlinePanel { cx: &mut Context, ) { self.clear_previous(window, cx); + + let default_expansion_depth = + OutlinePanelSettings::get_global(cx).expand_outlines_with_depth; + // We'll apply the expansion depth after outlines are loaded + self.pending_default_expansion_depth = Some(default_expansion_depth); + let buffer_search_subscription = cx.subscribe_in( &new_active_editor, window, @@ -3004,6 +3113,7 @@ impl OutlinePanel { self.selected_entry = SelectedEntry::None; self.pinned = false; self.mode = ItemsDisplayMode::Outline; + self.pending_default_expansion_depth = None; } fn location_for_editor_selection( @@ -3259,25 +3369,74 @@ impl OutlinePanel { || buffer_language.as_ref() == buffer_snapshot.language_at(outline.range.start) }); - outlines + + let outlines_with_children = outlines + .windows(2) + .filter_map(|window| { + let current = &window[0]; + let next = &window[1]; + if next.depth > current.depth { + Some((current.range.clone(), current.depth)) + } else { + None + } + }) + .collect::>(); + + (outlines, outlines_with_children) }) .await; + + let (fetched_outlines, outlines_with_children) = fetched_outlines; + outline_panel .update_in(cx, |outline_panel, window, cx| { + let pending_default_depth = + outline_panel.pending_default_expansion_depth.take(); + + let debounce = + if first_update.fetch_and(false, atomic::Ordering::AcqRel) { + None + } else { + Some(UPDATE_DEBOUNCE) + }; + if let Some(excerpt) = outline_panel .excerpts .entry(buffer_id) .or_default() .get_mut(&excerpt_id) { - let debounce = if first_update - .fetch_and(false, atomic::Ordering::AcqRel) - { - None - } else { - Some(UPDATE_DEBOUNCE) - }; excerpt.outlines = ExcerptOutlines::Outlines(fetched_outlines); + + if let Some(default_depth) = pending_default_depth { + if let ExcerptOutlines::Outlines(outlines) = + &excerpt.outlines + { + outlines + .iter() + .filter(|outline| { + (default_depth == 0 + || outline.depth >= default_depth) + && outlines_with_children.contains(&( + outline.range.clone(), + outline.depth, + )) + }) + .for_each(|outline| { + outline_panel.collapsed_entries.insert( + CollapsedEntry::Outline( + buffer_id, + excerpt_id, + outline.range.clone(), + ), + ); + }); + } + } + + // Even if no outlines to check, we still need to update cached entries + // to show the outline entries that were just fetched outline_panel.update_cached_entries(debounce, window, cx); } }) @@ -4083,7 +4242,7 @@ impl OutlinePanel { } fn add_excerpt_entries( - &self, + &mut self, state: &mut GenerationState, buffer_id: BufferId, entries_to_add: &[ExcerptId], @@ -4094,6 +4253,8 @@ impl OutlinePanel { cx: &mut Context, ) { if let Some(excerpts) = self.excerpts.get(&buffer_id) { + let buffer_snapshot = self.buffer_snapshot_for_id(buffer_id, cx); + for &excerpt_id in entries_to_add { let Some(excerpt) = excerpts.get(&excerpt_id) else { continue; @@ -4123,15 +4284,84 @@ impl OutlinePanel { continue; } - for outline in excerpt.iter_outlines() { + let mut last_depth_at_level: Vec>> = vec![None; 10]; + + let all_outlines: Vec<_> = excerpt.iter_outlines().collect(); + + let mut outline_has_children = HashMap::default(); + let mut visible_outlines = Vec::new(); + let mut collapsed_state: Option<(usize, Range)> = None; + + for (i, &outline) in all_outlines.iter().enumerate() { + let has_children = all_outlines + .get(i + 1) + .map(|next| next.depth > outline.depth) + .unwrap_or(false); + + outline_has_children + .insert((outline.range.clone(), outline.depth), has_children); + + let mut should_include = true; + + if let Some((collapsed_depth, collapsed_range)) = &collapsed_state { + if outline.depth <= *collapsed_depth { + collapsed_state = None; + } else if let Some(buffer_snapshot) = buffer_snapshot.as_ref() { + let outline_start = outline.range.start; + if outline_start + .cmp(&collapsed_range.start, buffer_snapshot) + .is_ge() + && outline_start + .cmp(&collapsed_range.end, buffer_snapshot) + .is_lt() + { + should_include = false; // Skip - inside collapsed range + } else { + collapsed_state = None; + } + } + } + + // Check if this outline itself is collapsed + if should_include + && self.collapsed_entries.contains(&CollapsedEntry::Outline( + buffer_id, + excerpt_id, + outline.range.clone(), + )) + { + collapsed_state = Some((outline.depth, outline.range.clone())); + } + + if should_include { + visible_outlines.push(outline); + } + } + + self.outline_children_cache + .entry(buffer_id) + .or_default() + .extend(outline_has_children); + + for outline in visible_outlines { + let outline_entry = OutlineEntryOutline { + buffer_id, + excerpt_id, + outline: outline.clone(), + }; + + if outline.depth < last_depth_at_level.len() { + last_depth_at_level[outline.depth] = Some(outline.range.clone()); + // Clear deeper levels when we go back to a shallower depth + for d in (outline.depth + 1)..last_depth_at_level.len() { + last_depth_at_level[d] = None; + } + } + self.push_entry( state, track_matches, - PanelEntry::Outline(OutlineEntry::Outline(OutlineEntryOutline { - buffer_id, - excerpt_id, - outline: outline.clone(), - })), + PanelEntry::Outline(OutlineEntry::Outline(outline_entry)), outline_base_depth + outline.depth, cx, ); @@ -6908,4 +7138,540 @@ outline: struct OutlineEntryExcerpt multi_buffer_snapshot.text_for_range(line_start..line_end).collect::().trim().to_owned() }) } + + #[gpui::test] + async fn test_outline_keyboard_expand_collapse(cx: &mut TestAppContext) { + init_test(cx); + + let fs = FakeFs::new(cx.background_executor.clone()); + fs.insert_tree( + "/test", + json!({ + "src": { + "lib.rs": indoc!(" + mod outer { + pub struct OuterStruct { + field: String, + } + impl OuterStruct { + pub fn new() -> Self { + Self { field: String::new() } + } + pub fn method(&self) { + println!(\"{}\", self.field); + } + } + mod inner { + pub fn inner_function() { + let x = 42; + println!(\"{}\", x); + } + pub struct InnerStruct { + value: i32, + } + } + } + fn main() { + let s = outer::OuterStruct::new(); + s.method(); + } + "), + } + }), + ) + .await; + + let project = Project::test(fs.clone(), ["/test".as_ref()], cx).await; + project.read_with(cx, |project, _| { + project.languages().add(Arc::new( + rust_lang() + .with_outline_query( + r#" + (struct_item + (visibility_modifier)? @context + "struct" @context + name: (_) @name) @item + (impl_item + "impl" @context + trait: (_)? @context + "for"? @context + type: (_) @context + body: (_)) @item + (function_item + (visibility_modifier)? @context + "fn" @context + name: (_) @name + parameters: (_) @context) @item + (mod_item + (visibility_modifier)? @context + "mod" @context + name: (_) @name) @item + (enum_item + (visibility_modifier)? @context + "enum" @context + name: (_) @name) @item + (field_declaration + (visibility_modifier)? @context + name: (_) @name + ":" @context + type: (_) @context) @item + "#, + ) + .unwrap(), + )) + }); + let workspace = add_outline_panel(&project, cx).await; + let cx = &mut VisualTestContext::from_window(*workspace, cx); + let outline_panel = outline_panel(&workspace, cx); + + outline_panel.update_in(cx, |outline_panel, window, cx| { + outline_panel.set_active(true, window, cx) + }); + + workspace + .update(cx, |workspace, window, cx| { + workspace.open_abs_path( + PathBuf::from("/test/src/lib.rs"), + OpenOptions { + visible: Some(OpenVisible::All), + ..Default::default() + }, + window, + cx, + ) + }) + .unwrap() + .await + .unwrap(); + + cx.executor() + .advance_clock(UPDATE_DEBOUNCE + Duration::from_millis(500)); + cx.run_until_parked(); + + // Force another update cycle to ensure outlines are fetched + outline_panel.update_in(cx, |panel, window, cx| { + panel.update_non_fs_items(window, cx); + panel.update_cached_entries(Some(UPDATE_DEBOUNCE), window, cx); + }); + cx.executor() + .advance_clock(UPDATE_DEBOUNCE + Duration::from_millis(500)); + cx.run_until_parked(); + + outline_panel.update(cx, |outline_panel, cx| { + assert_eq!( + display_entries( + &project, + &snapshot(&outline_panel, cx), + &outline_panel.cached_entries, + outline_panel.selected_entry(), + cx, + ), + indoc!( + " +outline: mod outer <==== selected + outline: pub struct OuterStruct + outline: field: String + outline: impl OuterStruct + outline: pub fn new() + outline: pub fn method(&self) + outline: mod inner + outline: pub fn inner_function() + outline: pub struct InnerStruct + outline: value: i32 +outline: fn main()" + ) + ); + }); + + let parent_outline = outline_panel + .read_with(cx, |panel, _cx| { + panel + .cached_entries + .iter() + .find_map(|entry| match &entry.entry { + PanelEntry::Outline(OutlineEntry::Outline(outline)) + if panel + .outline_children_cache + .get(&outline.buffer_id) + .and_then(|children_map| { + let key = + (outline.outline.range.clone(), outline.outline.depth); + children_map.get(&key) + }) + .copied() + .unwrap_or(false) => + { + Some(entry.entry.clone()) + } + _ => None, + }) + }) + .expect("Should find an outline with children"); + + outline_panel.update_in(cx, |panel, window, cx| { + panel.select_entry(parent_outline.clone(), true, window, cx); + panel.collapse_selected_entry(&CollapseSelectedEntry, window, cx); + }); + cx.executor() + .advance_clock(UPDATE_DEBOUNCE + Duration::from_millis(100)); + cx.run_until_parked(); + + outline_panel.update(cx, |outline_panel, cx| { + assert_eq!( + display_entries( + &project, + &snapshot(&outline_panel, cx), + &outline_panel.cached_entries, + outline_panel.selected_entry(), + cx, + ), + indoc!( + " +outline: mod outer <==== selected +outline: fn main()" + ) + ); + }); + + outline_panel.update_in(cx, |panel, window, cx| { + panel.expand_selected_entry(&ExpandSelectedEntry, window, cx); + }); + cx.executor() + .advance_clock(UPDATE_DEBOUNCE + Duration::from_millis(100)); + cx.run_until_parked(); + + outline_panel.update(cx, |outline_panel, cx| { + assert_eq!( + display_entries( + &project, + &snapshot(&outline_panel, cx), + &outline_panel.cached_entries, + outline_panel.selected_entry(), + cx, + ), + indoc!( + " +outline: mod outer <==== selected + outline: pub struct OuterStruct + outline: field: String + outline: impl OuterStruct + outline: pub fn new() + outline: pub fn method(&self) + outline: mod inner + outline: pub fn inner_function() + outline: pub struct InnerStruct + outline: value: i32 +outline: fn main()" + ) + ); + }); + + outline_panel.update_in(cx, |panel, window, cx| { + panel.collapsed_entries.clear(); + panel.update_cached_entries(None, window, cx); + }); + cx.executor() + .advance_clock(UPDATE_DEBOUNCE + Duration::from_millis(100)); + cx.run_until_parked(); + + outline_panel.update_in(cx, |panel, window, cx| { + let outlines_with_children: Vec<_> = panel + .cached_entries + .iter() + .filter_map(|entry| match &entry.entry { + PanelEntry::Outline(OutlineEntry::Outline(outline)) + if panel + .outline_children_cache + .get(&outline.buffer_id) + .and_then(|children_map| { + let key = (outline.outline.range.clone(), outline.outline.depth); + children_map.get(&key) + }) + .copied() + .unwrap_or(false) => + { + Some(entry.entry.clone()) + } + _ => None, + }) + .collect(); + + for outline in outlines_with_children { + panel.select_entry(outline, false, window, cx); + panel.collapse_selected_entry(&CollapseSelectedEntry, window, cx); + } + }); + cx.executor() + .advance_clock(UPDATE_DEBOUNCE + Duration::from_millis(100)); + cx.run_until_parked(); + + outline_panel.update(cx, |outline_panel, cx| { + assert_eq!( + display_entries( + &project, + &snapshot(&outline_panel, cx), + &outline_panel.cached_entries, + outline_panel.selected_entry(), + cx, + ), + indoc!( + " +outline: mod outer +outline: fn main()" + ) + ); + }); + + let collapsed_entries_count = + outline_panel.read_with(cx, |panel, _| panel.collapsed_entries.len()); + assert!( + collapsed_entries_count > 0, + "Should have collapsed entries tracked" + ); + } + + #[gpui::test] + async fn test_outline_click_toggle_behavior(cx: &mut TestAppContext) { + init_test(cx); + + let fs = FakeFs::new(cx.background_executor.clone()); + fs.insert_tree( + "/test", + json!({ + "src": { + "main.rs": indoc!(" + struct Config { + name: String, + value: i32, + } + impl Config { + fn new(name: String) -> Self { + Self { name, value: 0 } + } + fn get_value(&self) -> i32 { + self.value + } + } + enum Status { + Active, + Inactive, + } + fn process_config(config: Config) -> Status { + if config.get_value() > 0 { + Status::Active + } else { + Status::Inactive + } + } + fn main() { + let config = Config::new(\"test\".to_string()); + let status = process_config(config); + } + "), + } + }), + ) + .await; + + let project = Project::test(fs.clone(), ["/test".as_ref()], cx).await; + project.read_with(cx, |project, _| { + project.languages().add(Arc::new( + rust_lang() + .with_outline_query( + r#" + (struct_item + (visibility_modifier)? @context + "struct" @context + name: (_) @name) @item + (impl_item + "impl" @context + trait: (_)? @context + "for"? @context + type: (_) @context + body: (_)) @item + (function_item + (visibility_modifier)? @context + "fn" @context + name: (_) @name + parameters: (_) @context) @item + (mod_item + (visibility_modifier)? @context + "mod" @context + name: (_) @name) @item + (enum_item + (visibility_modifier)? @context + "enum" @context + name: (_) @name) @item + (field_declaration + (visibility_modifier)? @context + name: (_) @name + ":" @context + type: (_) @context) @item + "#, + ) + .unwrap(), + )) + }); + + let workspace = add_outline_panel(&project, cx).await; + let cx = &mut VisualTestContext::from_window(*workspace, cx); + let outline_panel = outline_panel(&workspace, cx); + + outline_panel.update_in(cx, |outline_panel, window, cx| { + outline_panel.set_active(true, window, cx) + }); + + let _editor = workspace + .update(cx, |workspace, window, cx| { + workspace.open_abs_path( + PathBuf::from("/test/src/main.rs"), + OpenOptions { + visible: Some(OpenVisible::All), + ..Default::default() + }, + window, + cx, + ) + }) + .unwrap() + .await + .unwrap(); + + cx.executor() + .advance_clock(UPDATE_DEBOUNCE + Duration::from_millis(100)); + cx.run_until_parked(); + + outline_panel.update(cx, |outline_panel, _cx| { + outline_panel.selected_entry = SelectedEntry::None; + }); + + // Check initial state - all entries should be expanded by default + outline_panel.update(cx, |outline_panel, cx| { + assert_eq!( + display_entries( + &project, + &snapshot(&outline_panel, cx), + &outline_panel.cached_entries, + outline_panel.selected_entry(), + cx, + ), + indoc!( + " +outline: struct Config + outline: name: String + outline: value: i32 +outline: impl Config + outline: fn new(name: String) + outline: fn get_value(&self) +outline: enum Status +outline: fn process_config(config: Config) +outline: fn main()" + ) + ); + }); + + outline_panel.update(cx, |outline_panel, _cx| { + outline_panel.selected_entry = SelectedEntry::None; + }); + + cx.update(|window, cx| { + outline_panel.update(cx, |outline_panel, cx| { + outline_panel.select_first(&SelectFirst, window, cx); + }); + }); + + cx.executor() + .advance_clock(UPDATE_DEBOUNCE + Duration::from_millis(100)); + cx.run_until_parked(); + + outline_panel.update(cx, |outline_panel, cx| { + assert_eq!( + display_entries( + &project, + &snapshot(&outline_panel, cx), + &outline_panel.cached_entries, + outline_panel.selected_entry(), + cx, + ), + indoc!( + " +outline: struct Config <==== selected + outline: name: String + outline: value: i32 +outline: impl Config + outline: fn new(name: String) + outline: fn get_value(&self) +outline: enum Status +outline: fn process_config(config: Config) +outline: fn main()" + ) + ); + }); + + cx.update(|window, cx| { + outline_panel.update(cx, |outline_panel, cx| { + outline_panel.open_selected_entry(&OpenSelectedEntry, window, cx); + }); + }); + + cx.executor() + .advance_clock(UPDATE_DEBOUNCE + Duration::from_millis(100)); + cx.run_until_parked(); + + outline_panel.update(cx, |outline_panel, cx| { + assert_eq!( + display_entries( + &project, + &snapshot(&outline_panel, cx), + &outline_panel.cached_entries, + outline_panel.selected_entry(), + cx, + ), + indoc!( + " +outline: struct Config <==== selected +outline: impl Config + outline: fn new(name: String) + outline: fn get_value(&self) +outline: enum Status +outline: fn process_config(config: Config) +outline: fn main()" + ) + ); + }); + + cx.update(|window, cx| { + outline_panel.update(cx, |outline_panel, cx| { + outline_panel.open_selected_entry(&OpenSelectedEntry, window, cx); + }); + }); + + cx.executor() + .advance_clock(UPDATE_DEBOUNCE + Duration::from_millis(100)); + cx.run_until_parked(); + + outline_panel.update(cx, |outline_panel, cx| { + assert_eq!( + display_entries( + &project, + &snapshot(&outline_panel, cx), + &outline_panel.cached_entries, + outline_panel.selected_entry(), + cx, + ), + indoc!( + " +outline: struct Config <==== selected + outline: name: String + outline: value: i32 +outline: impl Config + outline: fn new(name: String) + outline: fn get_value(&self) +outline: enum Status +outline: fn process_config(config: Config) +outline: fn main()" + ) + ); + }); + } } diff --git a/crates/outline_panel/src/outline_panel_settings.rs b/crates/outline_panel/src/outline_panel_settings.rs index 6b70cb54fb..133d28b748 100644 --- a/crates/outline_panel/src/outline_panel_settings.rs +++ b/crates/outline_panel/src/outline_panel_settings.rs @@ -31,6 +31,7 @@ pub struct OutlinePanelSettings { pub auto_reveal_entries: bool, pub auto_fold_dirs: bool, pub scrollbar: ScrollbarSettings, + pub expand_outlines_with_depth: usize, } #[derive(Copy, Clone, Debug, Serialize, Deserialize, JsonSchema, PartialEq, Eq)] @@ -105,6 +106,13 @@ pub struct OutlinePanelSettingsContent { pub indent_guides: Option, /// Scrollbar-related settings pub scrollbar: Option, + /// Default depth to expand outline items in the current file. + /// The default depth to which outline entries are expanded on reveal. + /// - Set to 0 to collapse all items that have children + /// - Set to 1 or higher to collapse items at that depth or deeper + /// + /// Default: 100 + pub expand_outlines_with_depth: Option, } impl Settings for OutlinePanelSettings { From 50985b7d2306988c03f87a78e89376dc44f7faac Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Wed, 23 Jul 2025 16:30:21 -0400 Subject: [PATCH 0164/1052] Fix telemetry event type names (#34974) Release Notes: - N/A --- crates/ai_onboarding/src/ai_onboarding.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/ai_onboarding/src/ai_onboarding.rs b/crates/ai_onboarding/src/ai_onboarding.rs index 9d32b1ee09..f9a91503ae 100644 --- a/crates/ai_onboarding/src/ai_onboarding.rs +++ b/crates/ai_onboarding/src/ai_onboarding.rs @@ -237,7 +237,7 @@ impl ZedAiOnboarding { .icon_color(Color::Muted) .icon_size(IconSize::XSmall) .on_click(move |_, _window, cx| { - telemetry::event!("Review Terms of Service Click"); + telemetry::event!("Review Terms of Service Clicked"); cx.open_url(&zed_urls::terms_of_service(cx)) }), ) @@ -248,7 +248,7 @@ impl ZedAiOnboarding { .on_click({ let callback = self.accept_terms_of_service.clone(); move |_, window, cx| { - telemetry::event!("Accepted Terms of Service"); + telemetry::event!("Terms of Service Accepted"); (callback)(window, cx)} }), ) From edceb7284f895539fdd71533c1e59c31c4b7940e Mon Sep 17 00:00:00 2001 From: Peter Tripp Date: Wed, 23 Jul 2025 16:55:13 -0400 Subject: [PATCH 0165/1052] Redact secrets from environment in LSP Server Info (#34971) In "Server Info" view of LSP logs: - Redacts sensitive values from environment - Sorts environment by name | Before | After | | - | - | | Screenshot 2025-07-23 at 14 10 14 | image | Release Notes: - Improved display of environment variables in LSP Logs: Server Info view --- crates/lsp/src/lsp.rs | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/crates/lsp/src/lsp.rs b/crates/lsp/src/lsp.rs index 7dcfa61f47..a820aaf748 100644 --- a/crates/lsp/src/lsp.rs +++ b/crates/lsp/src/lsp.rs @@ -4,7 +4,7 @@ pub use lsp_types::request::*; pub use lsp_types::*; use anyhow::{Context as _, Result, anyhow}; -use collections::HashMap; +use collections::{BTreeMap, HashMap}; use futures::{ AsyncRead, AsyncWrite, Future, FutureExt, channel::oneshot::{self, Canceled}, @@ -40,7 +40,7 @@ use std::{ time::{Duration, Instant}, }; use std::{path::Path, process::Stdio}; -use util::{ConnectionResult, ResultExt, TryFutureExt}; +use util::{ConnectionResult, ResultExt, TryFutureExt, redact}; const JSON_RPC_VERSION: &str = "2.0"; const CONTENT_LEN_HEADER: &str = "Content-Length: "; @@ -62,7 +62,7 @@ pub enum IoKind { /// Represents a launchable language server. This can either be a standalone binary or the path /// to a runtime with arguments to instruct it to launch the actual language server file. -#[derive(Debug, Clone, Deserialize)] +#[derive(Clone, Deserialize)] pub struct LanguageServerBinary { pub path: PathBuf, pub arguments: Vec, @@ -1448,6 +1448,33 @@ impl fmt::Debug for LanguageServer { } } +impl fmt::Debug for LanguageServerBinary { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let mut debug = f.debug_struct("LanguageServerBinary"); + debug.field("path", &self.path); + debug.field("arguments", &self.arguments); + + if let Some(env) = &self.env { + let redacted_env: BTreeMap = env + .iter() + .map(|(key, value)| { + let redacted_value = if redact::should_redact(key) { + "REDACTED".to_string() + } else { + value.clone() + }; + (key.clone(), redacted_value) + }) + .collect(); + debug.field("env", &Some(redacted_env)); + } else { + debug.field("env", &self.env); + } + + debug.finish() + } +} + impl Drop for Subscription { fn drop(&mut self) { match self { From 8bf7dcb6131e6d40c59c03a0ddd6c53aacbe7516 Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Wed, 23 Jul 2025 18:09:05 -0300 Subject: [PATCH 0166/1052] agent: Fix follow button disabled state (#34978) Release Notes: - N/A --- crates/agent_ui/src/message_editor.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/agent_ui/src/message_editor.rs b/crates/agent_ui/src/message_editor.rs index ab8ba762f4..62be5629f1 100644 --- a/crates/agent_ui/src/message_editor.rs +++ b/crates/agent_ui/src/message_editor.rs @@ -625,7 +625,7 @@ impl MessageEditor { .unwrap_or(false); IconButton::new("follow-agent", IconName::Crosshair) - .disabled(is_model_selected) + .disabled(!is_model_selected) .icon_size(IconSize::Small) .icon_color(Color::Muted) .toggle_state(following) From 7e9d6cc25c1829089918d514b85f3a419ca26dc7 Mon Sep 17 00:00:00 2001 From: Renato Lochetti Date: Wed, 23 Jul 2025 22:27:25 +0100 Subject: [PATCH 0167/1052] mistral: Add support for Mistral Devstral Medium (#34888) Mistral released their new DevstralMedium model to be used via API: https://mistral.ai/news/devstral-2507 Release Notes: - Add support for Mistral Devstral Medium --- crates/mistral/src/mistral.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/crates/mistral/src/mistral.rs b/crates/mistral/src/mistral.rs index a3a017be83..bf6ccf2883 100644 --- a/crates/mistral/src/mistral.rs +++ b/crates/mistral/src/mistral.rs @@ -58,6 +58,8 @@ pub enum Model { OpenMistralNemo, #[serde(rename = "open-codestral-mamba", alias = "open-codestral-mamba")] OpenCodestralMamba, + #[serde(rename = "devstral-medium-latest", alias = "devstral-medium-latest")] + DevstralMediumLatest, #[serde(rename = "devstral-small-latest", alias = "devstral-small-latest")] DevstralSmallLatest, #[serde(rename = "pixtral-12b-latest", alias = "pixtral-12b-latest")] @@ -91,6 +93,7 @@ impl Model { "mistral-small-latest" => Ok(Self::MistralSmallLatest), "open-mistral-nemo" => Ok(Self::OpenMistralNemo), "open-codestral-mamba" => Ok(Self::OpenCodestralMamba), + "devstral-medium-latest" => Ok(Self::DevstralMediumLatest), "devstral-small-latest" => Ok(Self::DevstralSmallLatest), "pixtral-12b-latest" => Ok(Self::Pixtral12BLatest), "pixtral-large-latest" => Ok(Self::PixtralLargeLatest), @@ -106,6 +109,7 @@ impl Model { Self::MistralSmallLatest => "mistral-small-latest", Self::OpenMistralNemo => "open-mistral-nemo", Self::OpenCodestralMamba => "open-codestral-mamba", + Self::DevstralMediumLatest => "devstral-medium-latest", Self::DevstralSmallLatest => "devstral-small-latest", Self::Pixtral12BLatest => "pixtral-12b-latest", Self::PixtralLargeLatest => "pixtral-large-latest", @@ -121,6 +125,7 @@ impl Model { Self::MistralSmallLatest => "mistral-small-latest", Self::OpenMistralNemo => "open-mistral-nemo", Self::OpenCodestralMamba => "open-codestral-mamba", + Self::DevstralMediumLatest => "devstral-medium-latest", Self::DevstralSmallLatest => "devstral-small-latest", Self::Pixtral12BLatest => "pixtral-12b-latest", Self::PixtralLargeLatest => "pixtral-large-latest", @@ -138,6 +143,7 @@ impl Model { Self::MistralSmallLatest => 32000, Self::OpenMistralNemo => 131000, Self::OpenCodestralMamba => 256000, + Self::DevstralMediumLatest => 128000, Self::DevstralSmallLatest => 262144, Self::Pixtral12BLatest => 128000, Self::PixtralLargeLatest => 128000, @@ -162,6 +168,7 @@ impl Model { | Self::MistralSmallLatest | Self::OpenMistralNemo | Self::OpenCodestralMamba + | Self::DevstralMediumLatest | Self::DevstralSmallLatest | Self::Pixtral12BLatest | Self::PixtralLargeLatest => true, @@ -179,6 +186,7 @@ impl Model { | Self::MistralLargeLatest | Self::OpenMistralNemo | Self::OpenCodestralMamba + | Self::DevstralMediumLatest | Self::DevstralSmallLatest => false, Self::Custom { supports_images, .. From b63d820be23762f10313bce17e9c98cbba7ab9dd Mon Sep 17 00:00:00 2001 From: Smit Barmase Date: Thu, 24 Jul 2025 03:46:29 +0530 Subject: [PATCH 0168/1052] editor: Fix move line up panic when selection is at end of line next to fold marker (#34982) Closes #34826 In move line up method, make use of `prev_line_boundary` which accounts for fold map, etc., for selection start row so that we don't incorrectly calculate row range to move up. Release Notes: - Fixed an issue where `editor: move line up` action sometimes crashed if the cursor was at the end of a line beside a fold marker. --- crates/editor/src/editor.rs | 10 +++++++++- crates/editor/src/editor_tests.rs | 27 +++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index d5448f30f3..a695c8fd0c 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -22258,7 +22258,7 @@ fn consume_contiguous_rows( selections: &mut Peekable>>, ) -> (MultiBufferRow, MultiBufferRow) { contiguous_row_selections.push(selection.clone()); - let start_row = MultiBufferRow(selection.start.row); + let start_row = starting_row(selection, display_map); let mut end_row = ending_row(selection, display_map); while let Some(next_selection) = selections.peek() { @@ -22272,6 +22272,14 @@ fn consume_contiguous_rows( (start_row, end_row) } +fn starting_row(selection: &Selection, display_map: &DisplaySnapshot) -> MultiBufferRow { + if selection.start.column > 0 { + MultiBufferRow(display_map.prev_line_boundary(selection.start).0.row) + } else { + MultiBufferRow(selection.start.row) + } +} + fn ending_row(next_selection: &Selection, display_map: &DisplaySnapshot) -> MultiBufferRow { if next_selection.end.column > 0 || next_selection.is_empty() { MultiBufferRow(display_map.next_line_boundary(next_selection.end).0.row + 1) diff --git a/crates/editor/src/editor_tests.rs b/crates/editor/src/editor_tests.rs index b9ca8c3755..0d69c067ee 100644 --- a/crates/editor/src/editor_tests.rs +++ b/crates/editor/src/editor_tests.rs @@ -5069,6 +5069,33 @@ fn test_move_line_up_down(cx: &mut TestAppContext) { }); } +#[gpui::test] +fn test_move_line_up_selection_at_end_of_fold(cx: &mut TestAppContext) { + init_test(cx, |_| {}); + let editor = cx.add_window(|window, cx| { + let buffer = MultiBuffer::build_simple("\n\n\n\n\n\naaaa\nbbbb\ncccc", cx); + build_editor(buffer, window, cx) + }); + _ = editor.update(cx, |editor, window, cx| { + editor.fold_creases( + vec![Crease::simple( + Point::new(6, 4)..Point::new(7, 4), + FoldPlaceholder::test(), + )], + true, + window, + cx, + ); + editor.change_selections(SelectionEffects::no_scroll(), window, cx, |s| { + s.select_ranges([Point::new(7, 4)..Point::new(7, 4)]) + }); + assert_eq!(editor.display_text(cx), "\n\n\n\n\n\naaaa⋯\ncccc"); + editor.move_line_up(&MoveLineUp, window, cx); + let buffer_text = editor.buffer.read(cx).snapshot(cx).text(); + assert_eq!(buffer_text, "\n\n\n\n\naaaa\nbbbb\n\ncccc"); + }); +} + #[gpui::test] fn test_move_line_up_down_with_blocks(cx: &mut TestAppContext) { init_test(cx, |_| {}); From 3da23cc65bf8b900219b85002b5b38dca0d3b83e Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Thu, 24 Jul 2025 00:33:43 +0200 Subject: [PATCH 0169/1052] Re-land taffy 0.8.3 (#34939) Re #34938 - **chore: Bump taffy to 0.8.3** - **editor: Fix sticky multi-buffer header not extending to the full width** Release Notes: - N/A --- Cargo.lock | 9 ++++----- crates/editor/src/code_context_menus.rs | 2 +- crates/editor/src/element.rs | 1 + crates/gpui/Cargo.toml | 2 +- crates/gpui/src/taffy.rs | 26 ++++++++++++------------- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 851c658735..8f791d395a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7402,9 +7402,9 @@ dependencies = [ [[package]] name = "grid" -version = "0.14.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be136d9dacc2a13cc70bb6c8f902b414fb2641f8db1314637c6b7933411a8f82" +checksum = "71b01d27060ad58be4663b9e4ac9e2d4806918e8876af8912afbddd1a91d5eaa" [[package]] name = "group" @@ -15961,13 +15961,12 @@ dependencies = [ [[package]] name = "taffy" -version = "0.5.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8b61630cba2afd2c851821add2e1bb1b7851a2436e839ab73b56558b009035e" +checksum = "7aaef0ac998e6527d6d0d5582f7e43953bb17221ac75bb8eb2fcc2db3396db1c" dependencies = [ "arrayvec", "grid", - "num-traits", "serde", "slotmap", ] diff --git a/crates/editor/src/code_context_menus.rs b/crates/editor/src/code_context_menus.rs index 9f842836ed..52446ceafc 100644 --- a/crates/editor/src/code_context_menus.rs +++ b/crates/editor/src/code_context_menus.rs @@ -844,7 +844,7 @@ impl CompletionsMenu { .with_sizing_behavior(ListSizingBehavior::Infer) .w(rems(34.)); - Popover::new().child(list).into_any_element() + Popover::new().child(div().child(list)).into_any_element() } fn render_aside( diff --git a/crates/editor/src/element.rs b/crates/editor/src/element.rs index 1b372a7d53..d2ee9d6b0a 100644 --- a/crates/editor/src/element.rs +++ b/crates/editor/src/element.rs @@ -4010,6 +4010,7 @@ impl EditorElement { let available_width = hitbox.bounds.size.width - right_margin; let mut header = v_flex() + .w_full() .relative() .child( div() diff --git a/crates/gpui/Cargo.toml b/crates/gpui/Cargo.toml index b446ea8bd8..29e81269e3 100644 --- a/crates/gpui/Cargo.toml +++ b/crates/gpui/Cargo.toml @@ -121,7 +121,7 @@ smallvec.workspace = true smol.workspace = true strum.workspace = true sum_tree.workspace = true -taffy = "=0.5.1" +taffy = "=0.8.3" thiserror.workspace = true util.workspace = true uuid.workspace = true diff --git a/crates/gpui/src/taffy.rs b/crates/gpui/src/taffy.rs index 6228a60490..f7fa54256d 100644 --- a/crates/gpui/src/taffy.rs +++ b/crates/gpui/src/taffy.rs @@ -283,7 +283,7 @@ impl ToTaffy for Length { fn to_taffy(&self, rem_size: Pixels) -> taffy::prelude::LengthPercentageAuto { match self { Length::Definite(length) => length.to_taffy(rem_size), - Length::Auto => taffy::prelude::LengthPercentageAuto::Auto, + Length::Auto => taffy::prelude::LengthPercentageAuto::auto(), } } } @@ -292,7 +292,7 @@ impl ToTaffy for Length { fn to_taffy(&self, rem_size: Pixels) -> taffy::prelude::Dimension { match self { Length::Definite(length) => length.to_taffy(rem_size), - Length::Auto => taffy::prelude::Dimension::Auto, + Length::Auto => taffy::prelude::Dimension::auto(), } } } @@ -302,14 +302,14 @@ impl ToTaffy for DefiniteLength { match self { DefiniteLength::Absolute(length) => match length { AbsoluteLength::Pixels(pixels) => { - taffy::style::LengthPercentage::Length(pixels.into()) + taffy::style::LengthPercentage::length(pixels.into()) } AbsoluteLength::Rems(rems) => { - taffy::style::LengthPercentage::Length((*rems * rem_size).into()) + taffy::style::LengthPercentage::length((*rems * rem_size).into()) } }, DefiniteLength::Fraction(fraction) => { - taffy::style::LengthPercentage::Percent(*fraction) + taffy::style::LengthPercentage::percent(*fraction) } } } @@ -320,14 +320,14 @@ impl ToTaffy for DefiniteLength { match self { DefiniteLength::Absolute(length) => match length { AbsoluteLength::Pixels(pixels) => { - taffy::style::LengthPercentageAuto::Length(pixels.into()) + taffy::style::LengthPercentageAuto::length(pixels.into()) } AbsoluteLength::Rems(rems) => { - taffy::style::LengthPercentageAuto::Length((*rems * rem_size).into()) + taffy::style::LengthPercentageAuto::length((*rems * rem_size).into()) } }, DefiniteLength::Fraction(fraction) => { - taffy::style::LengthPercentageAuto::Percent(*fraction) + taffy::style::LengthPercentageAuto::percent(*fraction) } } } @@ -337,12 +337,12 @@ impl ToTaffy for DefiniteLength { fn to_taffy(&self, rem_size: Pixels) -> taffy::style::Dimension { match self { DefiniteLength::Absolute(length) => match length { - AbsoluteLength::Pixels(pixels) => taffy::style::Dimension::Length(pixels.into()), + AbsoluteLength::Pixels(pixels) => taffy::style::Dimension::length(pixels.into()), AbsoluteLength::Rems(rems) => { - taffy::style::Dimension::Length((*rems * rem_size).into()) + taffy::style::Dimension::length((*rems * rem_size).into()) } }, - DefiniteLength::Fraction(fraction) => taffy::style::Dimension::Percent(*fraction), + DefiniteLength::Fraction(fraction) => taffy::style::Dimension::percent(*fraction), } } } @@ -350,9 +350,9 @@ impl ToTaffy for DefiniteLength { impl ToTaffy for AbsoluteLength { fn to_taffy(&self, rem_size: Pixels) -> taffy::style::LengthPercentage { match self { - AbsoluteLength::Pixels(pixels) => taffy::style::LengthPercentage::Length(pixels.into()), + AbsoluteLength::Pixels(pixels) => taffy::style::LengthPercentage::length(pixels.into()), AbsoluteLength::Rems(rems) => { - taffy::style::LengthPercentage::Length((*rems * rem_size).into()) + taffy::style::LengthPercentage::length((*rems * rem_size).into()) } } } From 4a87397d376331a4fd5189678a62269a427d714d Mon Sep 17 00:00:00 2001 From: Maksim Bondarenkov <119937608+ognevny@users.noreply.github.com> Date: Wed, 23 Jul 2025 22:53:13 +0000 Subject: [PATCH 0170/1052] livekit_client: Revert a change that broke MinGW builds (#34977) the change was made in https://github.com/zed-industries/zed/pull/34223 for unknown reason. it wasn't required actually, and the code can be safely left as before update: after this revert Zed compiles with MinGW as before Release Notes: - N/A --- crates/livekit_client/src/lib.rs | 35 +++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/crates/livekit_client/src/lib.rs b/crates/livekit_client/src/lib.rs index f94181b8f8..149859fdc8 100644 --- a/crates/livekit_client/src/lib.rs +++ b/crates/livekit_client/src/lib.rs @@ -3,16 +3,41 @@ use collections::HashMap; mod remote_video_track_view; pub use remote_video_track_view::{RemoteVideoTrackView, RemoteVideoTrackViewEvent}; -#[cfg(not(any(test, feature = "test-support", target_os = "freebsd")))] +#[cfg(not(any( + test, + feature = "test-support", + all(target_os = "windows", target_env = "gnu"), + target_os = "freebsd" +)))] mod livekit_client; -#[cfg(not(any(test, feature = "test-support", target_os = "freebsd")))] +#[cfg(not(any( + test, + feature = "test-support", + all(target_os = "windows", target_env = "gnu"), + target_os = "freebsd" +)))] pub use livekit_client::*; -#[cfg(any(test, feature = "test-support", target_os = "freebsd"))] +#[cfg(any( + test, + feature = "test-support", + all(target_os = "windows", target_env = "gnu"), + target_os = "freebsd" +))] mod mock_client; -#[cfg(any(test, feature = "test-support", target_os = "freebsd"))] +#[cfg(any( + test, + feature = "test-support", + all(target_os = "windows", target_env = "gnu"), + target_os = "freebsd" +))] pub mod test; -#[cfg(any(test, feature = "test-support", target_os = "freebsd"))] +#[cfg(any( + test, + feature = "test-support", + all(target_os = "windows", target_env = "gnu"), + target_os = "freebsd" +))] pub use mock_client::*; #[derive(Debug, Clone)] From 3d4266bb8f23d6982eaa49e47c296c717287a662 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Wed, 23 Jul 2025 19:30:00 -0400 Subject: [PATCH 0171/1052] collab: Remove `POST /billing/subscriptions/manage` endpoint (#34986) This PR removes the `POST /billing/subscriptions/manage` endpoint, as it has been moved to `cloud.zed.dev`. Release Notes: - N/A --- crates/collab/src/api/billing.rs | 272 +------------------------------ 1 file changed, 7 insertions(+), 265 deletions(-) diff --git a/crates/collab/src/api/billing.rs b/crates/collab/src/api/billing.rs index bd7b99b3eb..9a27e22f87 100644 --- a/crates/collab/src/api/billing.rs +++ b/crates/collab/src/api/billing.rs @@ -5,16 +5,8 @@ use collections::{HashMap, HashSet}; use reqwest::StatusCode; use sea_orm::ActiveValue; use serde::{Deserialize, Serialize}; -use std::{str::FromStr, sync::Arc, time::Duration}; -use stripe::{ - BillingPortalSession, CancellationDetailsReason, CreateBillingPortalSession, - CreateBillingPortalSessionFlowData, CreateBillingPortalSessionFlowDataAfterCompletion, - CreateBillingPortalSessionFlowDataAfterCompletionRedirect, - CreateBillingPortalSessionFlowDataSubscriptionUpdateConfirm, - CreateBillingPortalSessionFlowDataSubscriptionUpdateConfirmItems, - CreateBillingPortalSessionFlowDataType, CustomerId, EventObject, EventType, ListEvents, - PaymentMethod, Subscription, SubscriptionId, SubscriptionStatus, -}; +use std::{sync::Arc, time::Duration}; +use stripe::{CancellationDetailsReason, EventObject, EventType, ListEvents, SubscriptionStatus}; use util::{ResultExt, maybe}; use zed_llm_client::LanguageModelProvider; @@ -31,7 +23,7 @@ use crate::{AppState, Error, Result}; use crate::{db::UserId, llm::db::LlmDatabase}; use crate::{ db::{ - BillingSubscriptionId, CreateBillingCustomerParams, CreateBillingSubscriptionParams, + CreateBillingCustomerParams, CreateBillingSubscriptionParams, CreateProcessedStripeEventParams, UpdateBillingCustomerParams, UpdateBillingSubscriptionParams, billing_customer, }, @@ -39,260 +31,10 @@ use crate::{ }; pub fn router() -> Router { - Router::new() - .route( - "/billing/subscriptions/manage", - post(manage_billing_subscription), - ) - .route( - "/billing/subscriptions/sync", - post(sync_billing_subscription), - ) -} - -#[derive(Debug, PartialEq, Deserialize)] -#[serde(rename_all = "snake_case")] -enum ManageSubscriptionIntent { - /// The user intends to manage their subscription. - /// - /// This will open the Stripe billing portal without putting the user in a specific flow. - ManageSubscription, - /// The user intends to update their payment method. - UpdatePaymentMethod, - /// The user intends to upgrade to Zed Pro. - UpgradeToPro, - /// The user intends to cancel their subscription. - Cancel, - /// The user intends to stop the cancellation of their subscription. - StopCancellation, -} - -#[derive(Debug, Deserialize)] -struct ManageBillingSubscriptionBody { - github_user_id: i32, - intent: ManageSubscriptionIntent, - /// The ID of the subscription to manage. - subscription_id: BillingSubscriptionId, - redirect_to: Option, -} - -#[derive(Debug, Serialize)] -struct ManageBillingSubscriptionResponse { - billing_portal_session_url: Option, -} - -/// Initiates a Stripe customer portal session for managing a billing subscription. -async fn manage_billing_subscription( - Extension(app): Extension>, - extract::Json(body): extract::Json, -) -> Result> { - let user = app - .db - .get_user_by_github_user_id(body.github_user_id) - .await? - .context("user not found")?; - - let Some(stripe_client) = app.real_stripe_client.clone() else { - log::error!("failed to retrieve Stripe client"); - Err(Error::http( - StatusCode::NOT_IMPLEMENTED, - "not supported".into(), - ))? - }; - - let Some(stripe_billing) = app.stripe_billing.clone() else { - log::error!("failed to retrieve Stripe billing object"); - Err(Error::http( - StatusCode::NOT_IMPLEMENTED, - "not supported".into(), - ))? - }; - - let customer = app - .db - .get_billing_customer_by_user_id(user.id) - .await? - .context("billing customer not found")?; - let customer_id = CustomerId::from_str(&customer.stripe_customer_id) - .context("failed to parse customer ID")?; - - let subscription = app - .db - .get_billing_subscription_by_id(body.subscription_id) - .await? - .context("subscription not found")?; - let subscription_id = SubscriptionId::from_str(&subscription.stripe_subscription_id) - .context("failed to parse subscription ID")?; - - if body.intent == ManageSubscriptionIntent::StopCancellation { - let updated_stripe_subscription = Subscription::update( - &stripe_client, - &subscription_id, - stripe::UpdateSubscription { - cancel_at_period_end: Some(false), - ..Default::default() - }, - ) - .await?; - - app.db - .update_billing_subscription( - subscription.id, - &UpdateBillingSubscriptionParams { - stripe_cancel_at: ActiveValue::set( - updated_stripe_subscription - .cancel_at - .and_then(|cancel_at| DateTime::from_timestamp(cancel_at, 0)) - .map(|time| time.naive_utc()), - ), - ..Default::default() - }, - ) - .await?; - - return Ok(Json(ManageBillingSubscriptionResponse { - billing_portal_session_url: None, - })); - } - - let flow = match body.intent { - ManageSubscriptionIntent::ManageSubscription => None, - ManageSubscriptionIntent::UpgradeToPro => { - let zed_pro_price_id: stripe::PriceId = - stripe_billing.zed_pro_price_id().await?.try_into()?; - let zed_free_price_id: stripe::PriceId = - stripe_billing.zed_free_price_id().await?.try_into()?; - - let stripe_subscription = - Subscription::retrieve(&stripe_client, &subscription_id, &[]).await?; - - let is_on_zed_pro_trial = stripe_subscription.status == SubscriptionStatus::Trialing - && stripe_subscription.items.data.iter().any(|item| { - item.price - .as_ref() - .map_or(false, |price| price.id == zed_pro_price_id) - }); - if is_on_zed_pro_trial { - let payment_methods = PaymentMethod::list( - &stripe_client, - &stripe::ListPaymentMethods { - customer: Some(stripe_subscription.customer.id()), - ..Default::default() - }, - ) - .await?; - - let has_payment_method = !payment_methods.data.is_empty(); - if !has_payment_method { - return Err(Error::http( - StatusCode::BAD_REQUEST, - "missing payment method".into(), - )); - } - - // If the user is already on a Zed Pro trial and wants to upgrade to Pro, we just need to end their trial early. - Subscription::update( - &stripe_client, - &stripe_subscription.id, - stripe::UpdateSubscription { - trial_end: Some(stripe::Scheduled::now()), - ..Default::default() - }, - ) - .await?; - - return Ok(Json(ManageBillingSubscriptionResponse { - billing_portal_session_url: None, - })); - } - - let subscription_item_to_update = stripe_subscription - .items - .data - .iter() - .find_map(|item| { - let price = item.price.as_ref()?; - - if price.id == zed_free_price_id { - Some(item.id.clone()) - } else { - None - } - }) - .context("No subscription item to update")?; - - Some(CreateBillingPortalSessionFlowData { - type_: CreateBillingPortalSessionFlowDataType::SubscriptionUpdateConfirm, - subscription_update_confirm: Some( - CreateBillingPortalSessionFlowDataSubscriptionUpdateConfirm { - subscription: subscription.stripe_subscription_id, - items: vec![ - CreateBillingPortalSessionFlowDataSubscriptionUpdateConfirmItems { - id: subscription_item_to_update.to_string(), - price: Some(zed_pro_price_id.to_string()), - quantity: Some(1), - }, - ], - discounts: None, - }, - ), - ..Default::default() - }) - } - ManageSubscriptionIntent::UpdatePaymentMethod => Some(CreateBillingPortalSessionFlowData { - type_: CreateBillingPortalSessionFlowDataType::PaymentMethodUpdate, - after_completion: Some(CreateBillingPortalSessionFlowDataAfterCompletion { - type_: stripe::CreateBillingPortalSessionFlowDataAfterCompletionType::Redirect, - redirect: Some(CreateBillingPortalSessionFlowDataAfterCompletionRedirect { - return_url: format!( - "{}{path}", - app.config.zed_dot_dev_url(), - path = body.redirect_to.unwrap_or_else(|| "/account".to_string()) - ), - }), - ..Default::default() - }), - ..Default::default() - }), - ManageSubscriptionIntent::Cancel => { - if subscription.kind == Some(SubscriptionKind::ZedFree) { - return Err(Error::http( - StatusCode::BAD_REQUEST, - "free subscription cannot be canceled".into(), - )); - } - - Some(CreateBillingPortalSessionFlowData { - type_: CreateBillingPortalSessionFlowDataType::SubscriptionCancel, - after_completion: Some(CreateBillingPortalSessionFlowDataAfterCompletion { - type_: stripe::CreateBillingPortalSessionFlowDataAfterCompletionType::Redirect, - redirect: Some(CreateBillingPortalSessionFlowDataAfterCompletionRedirect { - return_url: format!("{}/account", app.config.zed_dot_dev_url()), - }), - ..Default::default() - }), - subscription_cancel: Some( - stripe::CreateBillingPortalSessionFlowDataSubscriptionCancel { - subscription: subscription.stripe_subscription_id, - retention: None, - }, - ), - ..Default::default() - }) - } - ManageSubscriptionIntent::StopCancellation => unreachable!(), - }; - - let mut params = CreateBillingPortalSession::new(customer_id); - params.flow_data = flow; - let return_url = format!("{}/account", app.config.zed_dot_dev_url()); - params.return_url = Some(&return_url); - - let session = BillingPortalSession::create(&stripe_client, params).await?; - - Ok(Json(ManageBillingSubscriptionResponse { - billing_portal_session_url: Some(session.url), - })) + Router::new().route( + "/billing/subscriptions/sync", + post(sync_billing_subscription), + ) } #[derive(Debug, Deserialize)] From 31afda3c0c3ea326cbec7e3d99a0d334ad7d638b Mon Sep 17 00:00:00 2001 From: Smit Barmase Date: Thu, 24 Jul 2025 05:26:12 +0530 Subject: [PATCH 0172/1052] project_panel: Automatically open project panel when Rename or Duplicate is triggered from workspace (#34988) In project panel, `rename` and `duplicate` action further needs user input for editing, so if panel is closed we should open it. Release Notes: - Fixed project panel not opening when `project panel: rename` and `project panel: duplicate` actions are triggered from workspace. --- crates/project_panel/src/project_panel.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/crates/project_panel/src/project_panel.rs b/crates/project_panel/src/project_panel.rs index 44f4e8985a..b0073f294f 100644 --- a/crates/project_panel/src/project_panel.rs +++ b/crates/project_panel/src/project_panel.rs @@ -322,6 +322,7 @@ pub fn init(cx: &mut App) { }); workspace.register_action(|workspace, action: &Rename, window, cx| { + workspace.open_panel::(window, cx); if let Some(panel) = workspace.panel::(cx) { panel.update(cx, |panel, cx| { if let Some(first_marked) = panel.marked_entries.first() { @@ -335,6 +336,7 @@ pub fn init(cx: &mut App) { }); workspace.register_action(|workspace, action: &Duplicate, window, cx| { + workspace.open_panel::(window, cx); if let Some(panel) = workspace.panel::(cx) { panel.update(cx, |panel, cx| { panel.duplicate(action, window, cx); From 67027bb241ef1a0f4de60aace75539a60fa867c8 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Thu, 24 Jul 2025 02:13:47 +0200 Subject: [PATCH 0173/1052] agent: Fix Zed header in settings view (#34993) Follow-up to taffy bump (#34939), fixes an issue reported by @MrSubidubi Release Notes: - N/A --- crates/agent_ui/src/agent_configuration.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/crates/agent_ui/src/agent_configuration.rs b/crates/agent_ui/src/agent_configuration.rs index 334c5ee6dc..7a160a5649 100644 --- a/crates/agent_ui/src/agent_configuration.rs +++ b/crates/agent_ui/src/agent_configuration.rs @@ -186,6 +186,7 @@ impl AgentConfiguration { }; v_flex() + .w_full() .when(is_expanded, |this| this.mb_2()) .child( div() @@ -216,6 +217,7 @@ impl AgentConfiguration { .hover(|hover| hover.bg(cx.theme().colors().element_hover)) .child( h_flex() + .w_full() .gap_2() .child( Icon::new(provider.icon()) @@ -224,6 +226,7 @@ impl AgentConfiguration { ) .child( h_flex() + .w_full() .gap_1() .child( Label::new(provider_name.clone()) @@ -307,6 +310,7 @@ impl AgentConfiguration { let providers = LanguageModelRegistry::read_global(cx).providers(); v_flex() + .w_full() .child( h_flex() .p(DynamicSpacing::Base16.rems(cx)) @@ -361,6 +365,7 @@ impl AgentConfiguration { ) .child( div() + .w_full() .pl(DynamicSpacing::Base08.rems(cx)) .pr(DynamicSpacing::Base20.rems(cx)) .children( From b93e1c736b33615e0b80a8e7fb3a294f40c70862 Mon Sep 17 00:00:00 2001 From: Peter Tripp Date: Wed, 23 Jul 2025 23:13:49 -0400 Subject: [PATCH 0174/1052] mistral: Add support for magistral-small and magistral-medium (#34983) Release Notes: - mistral: Added support for magistral-small and magistral-medium --- crates/mistral/src/mistral.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/crates/mistral/src/mistral.rs b/crates/mistral/src/mistral.rs index bf6ccf2883..c466a598a0 100644 --- a/crates/mistral/src/mistral.rs +++ b/crates/mistral/src/mistral.rs @@ -48,20 +48,29 @@ pub enum Model { #[serde(rename = "codestral-latest", alias = "codestral-latest")] #[default] CodestralLatest, + #[serde(rename = "mistral-large-latest", alias = "mistral-large-latest")] MistralLargeLatest, #[serde(rename = "mistral-medium-latest", alias = "mistral-medium-latest")] MistralMediumLatest, #[serde(rename = "mistral-small-latest", alias = "mistral-small-latest")] MistralSmallLatest, + + #[serde(rename = "magistral-medium-latest", alias = "magistral-medium-latest")] + MagistralMediumLatest, + #[serde(rename = "magistral-small-latest", alias = "magistral-small-latest")] + MagistralSmallLatest, + #[serde(rename = "open-mistral-nemo", alias = "open-mistral-nemo")] OpenMistralNemo, #[serde(rename = "open-codestral-mamba", alias = "open-codestral-mamba")] OpenCodestralMamba, + #[serde(rename = "devstral-medium-latest", alias = "devstral-medium-latest")] DevstralMediumLatest, #[serde(rename = "devstral-small-latest", alias = "devstral-small-latest")] DevstralSmallLatest, + #[serde(rename = "pixtral-12b-latest", alias = "pixtral-12b-latest")] Pixtral12BLatest, #[serde(rename = "pixtral-large-latest", alias = "pixtral-large-latest")] @@ -91,6 +100,8 @@ impl Model { "mistral-large-latest" => Ok(Self::MistralLargeLatest), "mistral-medium-latest" => Ok(Self::MistralMediumLatest), "mistral-small-latest" => Ok(Self::MistralSmallLatest), + "magistral-medium-latest" => Ok(Self::MagistralMediumLatest), + "magistral-small-latest" => Ok(Self::MagistralSmallLatest), "open-mistral-nemo" => Ok(Self::OpenMistralNemo), "open-codestral-mamba" => Ok(Self::OpenCodestralMamba), "devstral-medium-latest" => Ok(Self::DevstralMediumLatest), @@ -107,6 +118,8 @@ impl Model { Self::MistralLargeLatest => "mistral-large-latest", Self::MistralMediumLatest => "mistral-medium-latest", Self::MistralSmallLatest => "mistral-small-latest", + Self::MagistralMediumLatest => "magistral-medium-latest", + Self::MagistralSmallLatest => "magistral-small-latest", Self::OpenMistralNemo => "open-mistral-nemo", Self::OpenCodestralMamba => "open-codestral-mamba", Self::DevstralMediumLatest => "devstral-medium-latest", @@ -123,6 +136,8 @@ impl Model { Self::MistralLargeLatest => "mistral-large-latest", Self::MistralMediumLatest => "mistral-medium-latest", Self::MistralSmallLatest => "mistral-small-latest", + Self::MagistralMediumLatest => "magistral-medium-latest", + Self::MagistralSmallLatest => "magistral-small-latest", Self::OpenMistralNemo => "open-mistral-nemo", Self::OpenCodestralMamba => "open-codestral-mamba", Self::DevstralMediumLatest => "devstral-medium-latest", @@ -141,6 +156,8 @@ impl Model { Self::MistralLargeLatest => 131000, Self::MistralMediumLatest => 128000, Self::MistralSmallLatest => 32000, + Self::MagistralMediumLatest => 40000, + Self::MagistralSmallLatest => 40000, Self::OpenMistralNemo => 131000, Self::OpenCodestralMamba => 256000, Self::DevstralMediumLatest => 128000, @@ -166,6 +183,8 @@ impl Model { | Self::MistralLargeLatest | Self::MistralMediumLatest | Self::MistralSmallLatest + | Self::MagistralMediumLatest + | Self::MagistralSmallLatest | Self::OpenMistralNemo | Self::OpenCodestralMamba | Self::DevstralMediumLatest @@ -184,6 +203,8 @@ impl Model { | Self::MistralSmallLatest => true, Self::CodestralLatest | Self::MistralLargeLatest + | Self::MagistralMediumLatest + | Self::MagistralSmallLatest | Self::OpenMistralNemo | Self::OpenCodestralMamba | Self::DevstralMediumLatest From c08851a85ea4e3a495cbc8cb951b06353ccfa015 Mon Sep 17 00:00:00 2001 From: versecafe <147033096+versecafe@users.noreply.github.com> Date: Wed, 23 Jul 2025 21:17:54 -0700 Subject: [PATCH 0175/1052] ollama: Add Magistral to Ollama (#35000) See also: #34983 Release Notes: - Added magistral support to ollama --- crates/ollama/src/ollama.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/ollama/src/ollama.rs b/crates/ollama/src/ollama.rs index 109fea7353..62c32b4161 100644 --- a/crates/ollama/src/ollama.rs +++ b/crates/ollama/src/ollama.rs @@ -55,6 +55,7 @@ fn get_max_tokens(name: &str) -> u64 { "codellama" | "starcoder2" => 16384, "mistral" | "codestral" | "mixstral" | "llava" | "qwen2" | "qwen2.5-coder" | "dolphin-mixtral" => 32768, + "magistral" => 40000, "llama3.1" | "llama3.2" | "llama3.3" | "phi3" | "phi3.5" | "phi4" | "command-r" | "qwen3" | "gemma3" | "deepseek-coder-v2" | "deepseek-v3" | "deepseek-r1" | "yi-coder" | "devstral" => 128000, From 8b0ec287a53aa41d56232088b280a1a25cb6e74d Mon Sep 17 00:00:00 2001 From: AidanV <84053180+AidanV@users.noreply.github.com> Date: Wed, 23 Jul 2025 22:06:05 -0700 Subject: [PATCH 0176/1052] vim: Add `:norm` support (#33232) Closes #21198 Release Notes: - Adds support for `:norm` - Allows for vim and zed style modified keys specified in issue - Vim style and zed style - Differs from vim in how multi-line is handled - vim is sequential - zed is combinational (with multi-cursor) --- crates/editor/src/editor.rs | 18 +- crates/vim/src/command.rs | 195 +++++++++++++++++- crates/vim/src/insert.rs | 2 +- crates/vim/test_data/test_normal_command.json | 64 ++++++ crates/workspace/src/workspace.rs | 97 +++++---- 5 files changed, 328 insertions(+), 48 deletions(-) create mode 100644 crates/vim/test_data/test_normal_command.json diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index a695c8fd0c..069d8cffb3 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -16968,7 +16968,7 @@ impl Editor { now: Instant, window: &mut Window, cx: &mut Context, - ) { + ) -> Option { self.end_selection(window, cx); if let Some(tx_id) = self .buffer @@ -16978,7 +16978,10 @@ impl Editor { .insert_transaction(tx_id, self.selections.disjoint_anchors()); cx.emit(EditorEvent::TransactionBegun { transaction_id: tx_id, - }) + }); + Some(tx_id) + } else { + None } } @@ -17006,6 +17009,17 @@ impl Editor { } } + pub fn modify_transaction_selection_history( + &mut self, + transaction_id: TransactionId, + modify: impl FnOnce(&mut (Arc<[Selection]>, Option]>>)), + ) -> bool { + self.selection_history + .transaction_mut(transaction_id) + .map(modify) + .is_some() + } + pub fn set_mark(&mut self, _: &actions::SetMark, window: &mut Window, cx: &mut Context) { if self.selection_mark_mode { self.change_selections(SelectionEffects::no_scroll(), window, cx, |s| { diff --git a/crates/vim/src/command.rs b/crates/vim/src/command.rs index 23e04cae2c..7963db3571 100644 --- a/crates/vim/src/command.rs +++ b/crates/vim/src/command.rs @@ -6,7 +6,7 @@ use editor::{ actions::{SortLinesCaseInsensitive, SortLinesCaseSensitive}, display_map::ToDisplayPoint, }; -use gpui::{Action, App, AppContext as _, Context, Global, Window, actions}; +use gpui::{Action, App, AppContext as _, Context, Global, Keystroke, Window, actions}; use itertools::Itertools; use language::Point; use multi_buffer::MultiBufferRow; @@ -202,6 +202,7 @@ actions!( ArgumentRequired ] ); + /// Opens the specified file for editing. #[derive(Clone, PartialEq, Action)] #[action(namespace = vim, no_json, no_register)] @@ -209,6 +210,13 @@ struct VimEdit { pub filename: String, } +#[derive(Clone, PartialEq, Action)] +#[action(namespace = vim, no_json, no_register)] +struct VimNorm { + pub range: Option, + pub command: String, +} + #[derive(Debug)] struct WrappedAction(Box); @@ -447,6 +455,81 @@ pub fn register(editor: &mut Editor, cx: &mut Context) { }); }); + Vim::action(editor, cx, |vim, action: &VimNorm, window, cx| { + let keystrokes = action + .command + .chars() + .map(|c| Keystroke::parse(&c.to_string()).unwrap()) + .collect(); + vim.switch_mode(Mode::Normal, true, window, cx); + let initial_selections = vim.update_editor(window, cx, |_, editor, _, _| { + editor.selections.disjoint_anchors() + }); + if let Some(range) = &action.range { + let result = vim.update_editor(window, cx, |vim, editor, window, cx| { + let range = range.buffer_range(vim, editor, window, cx)?; + editor.change_selections( + SelectionEffects::no_scroll().nav_history(false), + window, + cx, + |s| { + s.select_ranges( + (range.start.0..=range.end.0) + .map(|line| Point::new(line, 0)..Point::new(line, 0)), + ); + }, + ); + anyhow::Ok(()) + }); + if let Some(Err(err)) = result { + log::error!("Error selecting range: {}", err); + return; + } + }; + + let Some(workspace) = vim.workspace(window) else { + return; + }; + let task = workspace.update(cx, |workspace, cx| { + workspace.send_keystrokes_impl(keystrokes, window, cx) + }); + let had_range = action.range.is_some(); + + cx.spawn_in(window, async move |vim, cx| { + task.await; + vim.update_in(cx, |vim, window, cx| { + vim.update_editor(window, cx, |_, editor, window, cx| { + if had_range { + editor.change_selections(SelectionEffects::default(), window, cx, |s| { + s.select_anchor_ranges([s.newest_anchor().range()]); + }) + } + }); + if matches!(vim.mode, Mode::Insert | Mode::Replace) { + vim.normal_before(&Default::default(), window, cx); + } else { + vim.switch_mode(Mode::Normal, true, window, cx); + } + vim.update_editor(window, cx, |_, editor, _, cx| { + if let Some(first_sel) = initial_selections { + if let Some(tx_id) = editor + .buffer() + .update(cx, |multi, cx| multi.last_transaction_id(cx)) + { + let last_sel = editor.selections.disjoint_anchors(); + editor.modify_transaction_selection_history(tx_id, |old| { + old.0 = first_sel; + old.1 = Some(last_sel); + }); + } + } + }); + }) + .ok(); + }) + .detach(); + }); + Vim::action(editor, cx, |vim, _: &CountCommand, window, cx| { let Some(workspace) = vim.workspace(window) else { return; @@ -675,14 +758,15 @@ impl VimCommand { } else { return None; }; - if !args.is_empty() { + + let action = if args.is_empty() { + action + } else { // if command does not accept args and we have args then we should do no action - if let Some(args_fn) = &self.args { - args_fn.deref()(action, args) - } else { - None - } - } else if let Some(range) = range { + self.args.as_ref()?(action, args)? + }; + + if let Some(range) = range { self.range.as_ref().and_then(|f| f(action, range)) } else { Some(action) @@ -1061,6 +1145,27 @@ fn generate_commands(_: &App) -> Vec { save_intent: Some(SaveIntent::Skip), close_pinned: true, }), + VimCommand::new( + ("norm", "al"), + VimNorm { + command: "".into(), + range: None, + }, + ) + .args(|_, args| { + Some( + VimNorm { + command: args, + range: None, + } + .boxed_clone(), + ) + }) + .range(|action, range| { + let mut action: VimNorm = action.as_any().downcast_ref::().unwrap().clone(); + action.range.replace(range.clone()); + Some(Box::new(action)) + }), VimCommand::new(("bn", "ext"), workspace::ActivateNextItem).count(), VimCommand::new(("bN", "ext"), workspace::ActivatePreviousItem).count(), VimCommand::new(("bp", "revious"), workspace::ActivatePreviousItem).count(), @@ -2298,4 +2403,78 @@ mod test { }); assert!(mark.is_none()) } + + #[gpui::test] + async fn test_normal_command(cx: &mut TestAppContext) { + let mut cx = NeovimBackedTestContext::new(cx).await; + + cx.set_shared_state(indoc! {" + The quick + brown« fox + jumpsˇ» over + the lazy dog + "}) + .await; + + cx.simulate_shared_keystrokes(": n o r m space w C w o r d") + .await; + cx.simulate_shared_keystrokes("enter").await; + + cx.shared_state().await.assert_eq(indoc! {" + The quick + brown word + jumps worˇd + the lazy dog + "}); + + cx.simulate_shared_keystrokes(": n o r m space _ w c i w t e s t") + .await; + cx.simulate_shared_keystrokes("enter").await; + + cx.shared_state().await.assert_eq(indoc! {" + The quick + brown word + jumps tesˇt + the lazy dog + "}); + + cx.simulate_shared_keystrokes("_ l v l : n o r m space s l a") + .await; + cx.simulate_shared_keystrokes("enter").await; + + cx.shared_state().await.assert_eq(indoc! {" + The quick + brown word + lˇaumps test + the lazy dog + "}); + + cx.set_shared_state(indoc! {" + ˇThe quick + brown fox + jumps over + the lazy dog + "}) + .await; + + cx.simulate_shared_keystrokes("c i w M y escape").await; + + cx.shared_state().await.assert_eq(indoc! {" + Mˇy quick + brown fox + jumps over + the lazy dog + "}); + + cx.simulate_shared_keystrokes(": n o r m space u").await; + cx.simulate_shared_keystrokes("enter").await; + + cx.shared_state().await.assert_eq(indoc! {" + ˇThe quick + brown fox + jumps over + the lazy dog + "}); + // Once ctrl-v to input character literals is added there should be a test for redo + } } diff --git a/crates/vim/src/insert.rs b/crates/vim/src/insert.rs index 89c60adee7..0a370e16ba 100644 --- a/crates/vim/src/insert.rs +++ b/crates/vim/src/insert.rs @@ -21,7 +21,7 @@ pub fn register(editor: &mut Editor, cx: &mut Context) { } impl Vim { - fn normal_before( + pub(crate) fn normal_before( &mut self, action: &NormalBefore, window: &mut Window, diff --git a/crates/vim/test_data/test_normal_command.json b/crates/vim/test_data/test_normal_command.json new file mode 100644 index 0000000000..efd1d532c4 --- /dev/null +++ b/crates/vim/test_data/test_normal_command.json @@ -0,0 +1,64 @@ +{"Put":{"state":"The quick\nbrown« fox\njumpsˇ» over\nthe lazy dog\n"}} +{"Key":":"} +{"Key":"n"} +{"Key":"o"} +{"Key":"r"} +{"Key":"m"} +{"Key":"space"} +{"Key":"w"} +{"Key":"C"} +{"Key":"w"} +{"Key":"o"} +{"Key":"r"} +{"Key":"d"} +{"Key":"enter"} +{"Get":{"state":"The quick\nbrown word\njumps worˇd\nthe lazy dog\n","mode":"Normal"}} +{"Key":":"} +{"Key":"n"} +{"Key":"o"} +{"Key":"r"} +{"Key":"m"} +{"Key":"space"} +{"Key":"_"} +{"Key":"w"} +{"Key":"c"} +{"Key":"i"} +{"Key":"w"} +{"Key":"t"} +{"Key":"e"} +{"Key":"s"} +{"Key":"t"} +{"Key":"enter"} +{"Get":{"state":"The quick\nbrown word\njumps tesˇt\nthe lazy dog\n","mode":"Normal"}} +{"Key":"_"} +{"Key":"l"} +{"Key":"v"} +{"Key":"l"} +{"Key":":"} +{"Key":"n"} +{"Key":"o"} +{"Key":"r"} +{"Key":"m"} +{"Key":"space"} +{"Key":"s"} +{"Key":"l"} +{"Key":"a"} +{"Key":"enter"} +{"Get":{"state":"The quick\nbrown word\nlˇaumps test\nthe lazy dog\n","mode":"Normal"}} +{"Put":{"state":"ˇThe quick\nbrown fox\njumps over\nthe lazy dog\n"}} +{"Key":"c"} +{"Key":"i"} +{"Key":"w"} +{"Key":"M"} +{"Key":"y"} +{"Key":"escape"} +{"Get":{"state":"Mˇy quick\nbrown fox\njumps over\nthe lazy dog\n","mode":"Normal"}} +{"Key":":"} +{"Key":"n"} +{"Key":"o"} +{"Key":"r"} +{"Key":"m"} +{"Key":"space"} +{"Key":"u"} +{"Key":"enter"} +{"Get":{"state":"ˇThe quick\nbrown fox\njumps over\nthe lazy dog\n","mode":"Normal"}} diff --git a/crates/workspace/src/workspace.rs b/crates/workspace/src/workspace.rs index 4c70c52d5a..0ee8177dd8 100644 --- a/crates/workspace/src/workspace.rs +++ b/crates/workspace/src/workspace.rs @@ -32,7 +32,7 @@ use futures::{ mpsc::{self, UnboundedReceiver, UnboundedSender}, oneshot, }, - future::try_join_all, + future::{Shared, try_join_all}, }; use gpui::{ Action, AnyEntity, AnyView, AnyWeakView, App, AsyncApp, AsyncWindowContext, Bounds, Context, @@ -87,7 +87,7 @@ use std::{ borrow::Cow, cell::RefCell, cmp, - collections::hash_map::DefaultHasher, + collections::{VecDeque, hash_map::DefaultHasher}, env, hash::{Hash, Hasher}, path::{Path, PathBuf}, @@ -1043,6 +1043,13 @@ type PromptForOpenPath = Box< ) -> oneshot::Receiver>>, >; +#[derive(Default)] +struct DispatchingKeystrokes { + dispatched: HashSet>, + queue: VecDeque, + task: Option>>, +} + /// Collects everything project-related for a certain window opened. /// In some way, is a counterpart of a window, as the [`WindowHandle`] could be downcast into `Workspace`. /// @@ -1080,7 +1087,7 @@ pub struct Workspace { leader_updates_tx: mpsc::UnboundedSender<(PeerId, proto::UpdateFollowers)>, database_id: Option, app_state: Arc, - dispatching_keystrokes: Rc, Vec)>>, + dispatching_keystrokes: Rc>, _subscriptions: Vec, _apply_leader_updates: Task>, _observe_current_user: Task>, @@ -2311,49 +2318,65 @@ impl Workspace { window: &mut Window, cx: &mut Context, ) { - let mut state = self.dispatching_keystrokes.borrow_mut(); - if !state.0.insert(action.0.clone()) { - cx.propagate(); - return; - } - let mut keystrokes: Vec = action + let keystrokes: Vec = action .0 .split(' ') .flat_map(|k| Keystroke::parse(k).log_err()) .collect(); - keystrokes.reverse(); + let _ = self.send_keystrokes_impl(keystrokes, window, cx); + } - state.1.append(&mut keystrokes); - drop(state); + pub fn send_keystrokes_impl( + &mut self, + keystrokes: Vec, + window: &mut Window, + cx: &mut Context, + ) -> Shared> { + let mut state = self.dispatching_keystrokes.borrow_mut(); + if !state.dispatched.insert(keystrokes.clone()) { + cx.propagate(); + return state.task.clone().unwrap(); + } + + state.queue.extend(keystrokes); let keystrokes = self.dispatching_keystrokes.clone(); - window - .spawn(cx, async move |cx| { - // limit to 100 keystrokes to avoid infinite recursion. - for _ in 0..100 { - let Some(keystroke) = keystrokes.borrow_mut().1.pop() else { - keystrokes.borrow_mut().0.clear(); - return Ok(()); - }; - cx.update(|window, cx| { - let focused = window.focused(cx); - window.dispatch_keystroke(keystroke.clone(), cx); - if window.focused(cx) != focused { - // dispatch_keystroke may cause the focus to change. - // draw's side effect is to schedule the FocusChanged events in the current flush effect cycle - // And we need that to happen before the next keystroke to keep vim mode happy... - // (Note that the tests always do this implicitly, so you must manually test with something like: - // "bindings": { "g z": ["workspace::SendKeystrokes", ": j u"]} - // ) - window.draw(cx).clear(); + if state.task.is_none() { + state.task = Some( + window + .spawn(cx, async move |cx| { + // limit to 100 keystrokes to avoid infinite recursion. + for _ in 0..100 { + let mut state = keystrokes.borrow_mut(); + let Some(keystroke) = state.queue.pop_front() else { + state.dispatched.clear(); + state.task.take(); + return; + }; + drop(state); + cx.update(|window, cx| { + let focused = window.focused(cx); + window.dispatch_keystroke(keystroke.clone(), cx); + if window.focused(cx) != focused { + // dispatch_keystroke may cause the focus to change. + // draw's side effect is to schedule the FocusChanged events in the current flush effect cycle + // And we need that to happen before the next keystroke to keep vim mode happy... + // (Note that the tests always do this implicitly, so you must manually test with something like: + // "bindings": { "g z": ["workspace::SendKeystrokes", ": j u"]} + // ) + window.draw(cx).clear(); + } + }) + .ok(); } - })?; - } - *keystrokes.borrow_mut() = Default::default(); - anyhow::bail!("over 100 keystrokes passed to send_keystrokes"); - }) - .detach_and_log_err(cx); + *keystrokes.borrow_mut() = Default::default(); + log::error!("over 100 keystrokes passed to send_keystrokes"); + }) + .shared(), + ); + } + state.task.clone().unwrap() } fn save_all_internal( From a6956eebcbf87ed36fe3cc82bd204b8ae6b997f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Ram=C3=B3n=20Guevara?= <50140021+praguevara@users.noreply.github.com> Date: Thu, 24 Jul 2025 07:27:07 +0200 Subject: [PATCH 0177/1052] Improve Helix insert (#34765) Closes #34763 Release Notes: - Improved insert in `helix_mode` when a selection exists to better match helix's behavior: collapse selection to avoid replacing it - Improved append (`insert_after`) to better match helix's behavior: move cursor to end of selection if it exists --- assets/keymaps/vim.json | 6 ++- crates/vim/src/helix.rs | 110 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 112 insertions(+), 4 deletions(-) diff --git a/assets/keymaps/vim.json b/assets/keymaps/vim.json index d0cf4621a5..6458ac1510 100644 --- a/assets/keymaps/vim.json +++ b/assets/keymaps/vim.json @@ -220,6 +220,8 @@ { "context": "vim_mode == normal", "bindings": { + "i": "vim::InsertBefore", + "a": "vim::InsertAfter", "ctrl-[": "editor::Cancel", ":": "command_palette::Toggle", "c": "vim::PushChange", @@ -353,9 +355,7 @@ "shift-d": "vim::DeleteToEndOfLine", "shift-j": "vim::JoinLines", "shift-y": "vim::YankLine", - "i": "vim::InsertBefore", "shift-i": "vim::InsertFirstNonWhitespace", - "a": "vim::InsertAfter", "shift-a": "vim::InsertEndOfLine", "o": "vim::InsertLineBelow", "shift-o": "vim::InsertLineAbove", @@ -377,6 +377,8 @@ { "context": "vim_mode == helix_normal && !menu", "bindings": { + "i": "vim::HelixInsert", + "a": "vim::HelixAppend", "ctrl-[": "editor::Cancel", ";": "vim::HelixCollapseSelection", ":": "command_palette::Toggle", diff --git a/crates/vim/src/helix.rs b/crates/vim/src/helix.rs index ec9b959b12..798af3bff3 100644 --- a/crates/vim/src/helix.rs +++ b/crates/vim/src/helix.rs @@ -4,18 +4,28 @@ use gpui::{Context, Window}; use language::{CharClassifier, CharKind}; use text::SelectionGoal; -use crate::{Vim, motion::Motion, state::Mode}; +use crate::{ + Vim, + motion::{Motion, right}, + state::Mode, +}; actions!( vim, [ /// Switches to normal mode after the cursor (Helix-style). - HelixNormalAfter + HelixNormalAfter, + /// Inserts at the beginning of the selection. + HelixInsert, + /// Appends at the end of the selection. + HelixAppend, ] ); pub fn register(editor: &mut Editor, cx: &mut Context) { Vim::action(editor, cx, Vim::helix_normal_after); + Vim::action(editor, cx, Vim::helix_insert); + Vim::action(editor, cx, Vim::helix_append); } impl Vim { @@ -299,6 +309,38 @@ impl Vim { _ => self.helix_move_and_collapse(motion, times, window, cx), } } + + fn helix_insert(&mut self, _: &HelixInsert, window: &mut Window, cx: &mut Context) { + self.start_recording(cx); + self.update_editor(window, cx, |_, editor, window, cx| { + editor.change_selections(Default::default(), window, cx, |s| { + s.move_with(|_map, selection| { + // In helix normal mode, move cursor to start of selection and collapse + if !selection.is_empty() { + selection.collapse_to(selection.start, SelectionGoal::None); + } + }); + }); + }); + self.switch_mode(Mode::Insert, false, window, cx); + } + + fn helix_append(&mut self, _: &HelixAppend, window: &mut Window, cx: &mut Context) { + self.start_recording(cx); + self.switch_mode(Mode::Insert, false, window, cx); + self.update_editor(window, cx, |_, editor, window, cx| { + editor.change_selections(Default::default(), window, cx, |s| { + s.move_with(|map, selection| { + let point = if selection.is_empty() { + right(map, selection.head(), 1) + } else { + selection.end + }; + selection.collapse_to(point, SelectionGoal::None); + }); + }); + }); + } } #[cfg(test)] @@ -497,4 +539,68 @@ mod test { cx.assert_state("«ˇaa»\n", Mode::HelixNormal); } + + #[gpui::test] + async fn test_insert_selected(cx: &mut gpui::TestAppContext) { + let mut cx = VimTestContext::new(cx, true).await; + cx.set_state( + indoc! {" + «The ˇ»quick brown + fox jumps over + the lazy dog."}, + Mode::HelixNormal, + ); + + cx.simulate_keystrokes("i"); + + cx.assert_state( + indoc! {" + ˇThe quick brown + fox jumps over + the lazy dog."}, + Mode::Insert, + ); + } + + #[gpui::test] + async fn test_append(cx: &mut gpui::TestAppContext) { + let mut cx = VimTestContext::new(cx, true).await; + // test from the end of the selection + cx.set_state( + indoc! {" + «Theˇ» quick brown + fox jumps over + the lazy dog."}, + Mode::HelixNormal, + ); + + cx.simulate_keystrokes("a"); + + cx.assert_state( + indoc! {" + Theˇ quick brown + fox jumps over + the lazy dog."}, + Mode::Insert, + ); + + // test from the beginning of the selection + cx.set_state( + indoc! {" + «ˇThe» quick brown + fox jumps over + the lazy dog."}, + Mode::HelixNormal, + ); + + cx.simulate_keystrokes("a"); + + cx.assert_state( + indoc! {" + Theˇ quick brown + fox jumps over + the lazy dog."}, + Mode::Insert, + ); + } } From 34bf6ebba68cdbff01dfb4b3ff3c3a9c63240c08 Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Wed, 23 Jul 2025 23:45:01 -0600 Subject: [PATCH 0178/1052] Disable auto-close in search (#35005) Currently if you type `\(`, it auto-closes to `\()` which is broken. It's arguably nice that if you type `(` it auto-closes to `()`, but I am much more likely to be looking for a function call `name\(` than to be starting a group in search. Release Notes: - search: Regex search will no longer try to close parenthesis automatically. --- crates/search/src/buffer_search.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/crates/search/src/buffer_search.rs b/crates/search/src/buffer_search.rs index c2590ec9b0..91b7fe488e 100644 --- a/crates/search/src/buffer_search.rs +++ b/crates/search/src/buffer_search.rs @@ -700,7 +700,11 @@ impl BufferSearchBar { window: &mut Window, cx: &mut Context, ) -> Self { - let query_editor = cx.new(|cx| Editor::single_line(window, cx)); + let query_editor = cx.new(|cx| { + let mut editor = Editor::single_line(window, cx); + editor.set_use_autoclose(false); + editor + }); cx.subscribe_in(&query_editor, window, Self::on_query_editor_event) .detach(); let replacement_editor = cx.new(|cx| Editor::single_line(window, cx)); From ddd50aabbad67db1174255b2ce4743794b9618d9 Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Thu, 24 Jul 2025 02:52:02 -0400 Subject: [PATCH 0179/1052] Fix some bugs with `editor: diff clipboard with selection` (#34999) Improves testing around `editor: diff clipboard with selection` as well. Release Notes: - Fixed some bugs with `editor: diff clipboard with selection` --- crates/editor/src/editor_tests.rs | 2 +- crates/git_ui/src/text_diff_view.rs | 340 +++++++++++++++++++++------- 2 files changed, 264 insertions(+), 78 deletions(-) diff --git a/crates/editor/src/editor_tests.rs b/crates/editor/src/editor_tests.rs index 0d69c067ee..8d121972d0 100644 --- a/crates/editor/src/editor_tests.rs +++ b/crates/editor/src/editor_tests.rs @@ -16864,7 +16864,7 @@ async fn test_multibuffer_reverts(cx: &mut TestAppContext) { } #[gpui::test] -async fn test_mutlibuffer_in_navigation_history(cx: &mut TestAppContext) { +async fn test_multibuffer_in_navigation_history(cx: &mut TestAppContext) { init_test(cx, |_| {}); let cols = 4; diff --git a/crates/git_ui/src/text_diff_view.rs b/crates/git_ui/src/text_diff_view.rs index e7386cf7bd..be1866a354 100644 --- a/crates/git_ui/src/text_diff_view.rs +++ b/crates/git_ui/src/text_diff_view.rs @@ -12,6 +12,7 @@ use language::{self, Buffer, Point}; use project::Project; use std::{ any::{Any, TypeId}, + cmp, ops::Range, pin::pin, sync::Arc, @@ -45,38 +46,60 @@ impl TextDiffView { ) -> Option>>> { let source_editor = diff_data.editor.clone(); - let source_editor_buffer_and_range = source_editor.update(cx, |editor, cx| { + let selection_data = source_editor.update(cx, |editor, cx| { let multibuffer = editor.buffer().read(cx); let source_buffer = multibuffer.as_singleton()?.clone(); let selections = editor.selections.all::(cx); let buffer_snapshot = source_buffer.read(cx); let first_selection = selections.first()?; - let selection_range = if first_selection.is_empty() { - Point::new(0, 0)..buffer_snapshot.max_point() - } else { - first_selection.start..first_selection.end - }; + let max_point = buffer_snapshot.max_point(); - Some((source_buffer, selection_range)) + if first_selection.is_empty() { + let full_range = Point::new(0, 0)..max_point; + return Some((source_buffer, full_range)); + } + + let start = first_selection.start; + let end = first_selection.end; + let expanded_start = Point::new(start.row, 0); + + let expanded_end = if end.column > 0 { + let next_row = end.row + 1; + cmp::min(max_point, Point::new(next_row, 0)) + } else { + end + }; + Some((source_buffer, expanded_start..expanded_end)) }); - let Some((source_buffer, selected_range)) = source_editor_buffer_and_range else { + let Some((source_buffer, expanded_selection_range)) = selection_data else { log::warn!("There should always be at least one selection in Zed. This is a bug."); return None; }; - let clipboard_text = diff_data.clipboard_text.clone(); - - let workspace = workspace.weak_handle(); - - let diff_buffer = cx.new(|cx| { - let source_buffer_snapshot = source_buffer.read(cx).snapshot(); - let diff = BufferDiff::new(&source_buffer_snapshot.text, cx); - diff + source_editor.update(cx, |source_editor, cx| { + source_editor.change_selections(Default::default(), window, cx, |s| { + s.select_ranges(vec![ + expanded_selection_range.start..expanded_selection_range.end, + ]); + }) }); - let clipboard_buffer = - build_clipboard_buffer(clipboard_text, &source_buffer, selected_range.clone(), cx); + let source_buffer_snapshot = source_buffer.read(cx).snapshot(); + let mut clipboard_text = diff_data.clipboard_text.clone(); + + if !clipboard_text.ends_with("\n") { + clipboard_text.push_str("\n"); + } + + let workspace = workspace.weak_handle(); + let diff_buffer = cx.new(|cx| BufferDiff::new(&source_buffer_snapshot.text, cx)); + let clipboard_buffer = build_clipboard_buffer( + clipboard_text, + &source_buffer, + expanded_selection_range.clone(), + cx, + ); let task = window.spawn(cx, async move |cx| { let project = workspace.update(cx, |workspace, _| workspace.project().clone())?; @@ -89,7 +112,7 @@ impl TextDiffView { clipboard_buffer, source_editor, source_buffer, - selected_range, + expanded_selection_range, diff_buffer, project, window, @@ -208,9 +231,9 @@ impl TextDiffView { } fn build_clipboard_buffer( - clipboard_text: String, + text: String, source_buffer: &Entity, - selected_range: Range, + replacement_range: Range, cx: &mut App, ) -> Entity { let source_buffer_snapshot = source_buffer.read(cx).snapshot(); @@ -219,9 +242,9 @@ fn build_clipboard_buffer( let language = source_buffer.read(cx).language().cloned(); buffer.set_language(language, cx); - let range_start = source_buffer_snapshot.point_to_offset(selected_range.start); - let range_end = source_buffer_snapshot.point_to_offset(selected_range.end); - buffer.edit([(range_start..range_end, clipboard_text)], None, cx); + let range_start = source_buffer_snapshot.point_to_offset(replacement_range.start); + let range_end = source_buffer_snapshot.point_to_offset(replacement_range.end); + buffer.edit([(range_start..range_end, text)], None, cx); buffer }) @@ -395,21 +418,13 @@ pub fn selection_location_text(editor: &Editor, cx: &App) -> Option { let buffer_snapshot = buffer.snapshot(cx); let first_selection = editor.selections.disjoint.first()?; - let (start_row, start_column, end_row, end_column) = - if first_selection.start == first_selection.end { - let max_point = buffer_snapshot.max_point(); - (0, 0, max_point.row, max_point.column) - } else { - let selection_start = first_selection.start.to_point(&buffer_snapshot); - let selection_end = first_selection.end.to_point(&buffer_snapshot); + let selection_start = first_selection.start.to_point(&buffer_snapshot); + let selection_end = first_selection.end.to_point(&buffer_snapshot); - ( - selection_start.row, - selection_start.column, - selection_end.row, - selection_end.column, - ) - }; + let start_row = selection_start.row; + let start_column = selection_start.column; + let end_row = selection_end.row; + let end_column = selection_end.column; let range_text = if start_row == end_row { format!("L{}:{}-{}", start_row + 1, start_column + 1, end_column + 1) @@ -435,14 +450,13 @@ impl Render for TextDiffView { #[cfg(test)] mod tests { use super::*; - - use editor::{actions, test::editor_test_context::assert_state_with_diff}; + use editor::test::editor_test_context::assert_state_with_diff; use gpui::{TestAppContext, VisualContext}; use project::{FakeFs, Project}; use serde_json::json; use settings::{Settings, SettingsStore}; use unindent::unindent; - use util::path; + use util::{path, test::marked_text_ranges}; fn init_test(cx: &mut TestAppContext) { cx.update(|cx| { @@ -457,52 +471,236 @@ mod tests { } #[gpui::test] - async fn test_diffing_clipboard_against_specific_selection(cx: &mut TestAppContext) { - base_test(true, cx).await; + async fn test_diffing_clipboard_against_empty_selection_uses_full_buffer_selection( + cx: &mut TestAppContext, + ) { + base_test( + path!("/test"), + path!("/test/text.txt"), + "def process_incoming_inventory(items, warehouse_id):\n pass\n", + "def process_outgoing_inventory(items, warehouse_id):\n passˇ\n", + &unindent( + " + - def process_incoming_inventory(items, warehouse_id): + + ˇdef process_outgoing_inventory(items, warehouse_id): + pass + ", + ), + "Clipboard ↔ text.txt @ L1:1-L3:1", + &format!("Clipboard ↔ {} @ L1:1-L3:1", path!("test/text.txt")), + cx, + ) + .await; } #[gpui::test] - async fn test_diffing_clipboard_against_empty_selection_uses_full_buffer( + async fn test_diffing_clipboard_against_multiline_selection_expands_to_full_lines( cx: &mut TestAppContext, ) { - base_test(false, cx).await; + base_test( + path!("/test"), + path!("/test/text.txt"), + "def process_incoming_inventory(items, warehouse_id):\n pass\n", + "«def process_outgoing_inventory(items, warehouse_id):\n passˇ»\n", + &unindent( + " + - def process_incoming_inventory(items, warehouse_id): + + ˇdef process_outgoing_inventory(items, warehouse_id): + pass + ", + ), + "Clipboard ↔ text.txt @ L1:1-L3:1", + &format!("Clipboard ↔ {} @ L1:1-L3:1", path!("test/text.txt")), + cx, + ) + .await; } - async fn base_test(select_all_text: bool, cx: &mut TestAppContext) { + #[gpui::test] + async fn test_diffing_clipboard_against_single_line_selection(cx: &mut TestAppContext) { + base_test( + path!("/test"), + path!("/test/text.txt"), + "a", + "«bbˇ»", + &unindent( + " + - a + + ˇbb", + ), + "Clipboard ↔ text.txt @ L1:1-3", + &format!("Clipboard ↔ {} @ L1:1-3", path!("test/text.txt")), + cx, + ) + .await; + } + + #[gpui::test] + async fn test_diffing_clipboard_with_leading_whitespace_against_line(cx: &mut TestAppContext) { + base_test( + path!("/test"), + path!("/test/text.txt"), + " a", + "«bbˇ»", + &unindent( + " + - a + + ˇbb", + ), + "Clipboard ↔ text.txt @ L1:1-3", + &format!("Clipboard ↔ {} @ L1:1-3", path!("test/text.txt")), + cx, + ) + .await; + } + + #[gpui::test] + async fn test_diffing_clipboard_against_line_with_leading_whitespace(cx: &mut TestAppContext) { + base_test( + path!("/test"), + path!("/test/text.txt"), + "a", + " «bbˇ»", + &unindent( + " + - a + + ˇ bb", + ), + "Clipboard ↔ text.txt @ L1:1-7", + &format!("Clipboard ↔ {} @ L1:1-7", path!("test/text.txt")), + cx, + ) + .await; + } + + #[gpui::test] + async fn test_diffing_clipboard_against_line_with_leading_whitespace_included_in_selection( + cx: &mut TestAppContext, + ) { + base_test( + path!("/test"), + path!("/test/text.txt"), + "a", + "« bbˇ»", + &unindent( + " + - a + + ˇ bb", + ), + "Clipboard ↔ text.txt @ L1:1-7", + &format!("Clipboard ↔ {} @ L1:1-7", path!("test/text.txt")), + cx, + ) + .await; + } + + #[gpui::test] + async fn test_diffing_clipboard_with_leading_whitespace_against_line_with_leading_whitespace( + cx: &mut TestAppContext, + ) { + base_test( + path!("/test"), + path!("/test/text.txt"), + " a", + " «bbˇ»", + &unindent( + " + - a + + ˇ bb", + ), + "Clipboard ↔ text.txt @ L1:1-7", + &format!("Clipboard ↔ {} @ L1:1-7", path!("test/text.txt")), + cx, + ) + .await; + } + + #[gpui::test] + async fn test_diffing_clipboard_with_leading_whitespace_against_line_with_leading_whitespace_included_in_selection( + cx: &mut TestAppContext, + ) { + base_test( + path!("/test"), + path!("/test/text.txt"), + " a", + "« bbˇ»", + &unindent( + " + - a + + ˇ bb", + ), + "Clipboard ↔ text.txt @ L1:1-7", + &format!("Clipboard ↔ {} @ L1:1-7", path!("test/text.txt")), + cx, + ) + .await; + } + + #[gpui::test] + async fn test_diffing_clipboard_against_partial_selection_expands_to_include_trailing_characters( + cx: &mut TestAppContext, + ) { + base_test( + path!("/test"), + path!("/test/text.txt"), + "a", + "«bˇ»b", + &unindent( + " + - a + + ˇbb", + ), + "Clipboard ↔ text.txt @ L1:1-3", + &format!("Clipboard ↔ {} @ L1:1-3", path!("test/text.txt")), + cx, + ) + .await; + } + + async fn base_test( + project_root: &str, + file_path: &str, + clipboard_text: &str, + editor_text: &str, + expected_diff: &str, + expected_tab_title: &str, + expected_tab_tooltip: &str, + cx: &mut TestAppContext, + ) { init_test(cx); + let file_name = std::path::Path::new(file_path) + .file_name() + .unwrap() + .to_str() + .unwrap(); + let fs = FakeFs::new(cx.executor()); fs.insert_tree( - path!("/test"), + project_root, json!({ - "a": { - "b": { - "text.txt": "new line 1\nline 2\nnew line 3\nline 4" - } - } + file_name: editor_text }), ) .await; - let project = Project::test(fs, [path!("/test").as_ref()], cx).await; + let project = Project::test(fs, [project_root.as_ref()], cx).await; let (workspace, mut cx) = cx.add_window_view(|window, cx| Workspace::test_new(project.clone(), window, cx)); let buffer = project - .update(cx, |project, cx| { - project.open_local_buffer(path!("/test/a/b/text.txt"), cx) - }) + .update(cx, |project, cx| project.open_local_buffer(file_path, cx)) .await .unwrap(); let editor = cx.new_window_entity(|window, cx| { let mut editor = Editor::for_buffer(buffer, None, window, cx); - editor.set_text("new line 1\nline 2\nnew line 3\nline 4\n", window, cx); - - if select_all_text { - editor.select_all(&actions::SelectAll, window, cx); - } + let (unmarked_text, selection_ranges) = marked_text_ranges(editor_text, false); + editor.set_text(unmarked_text, window, cx); + editor.change_selections(Default::default(), window, cx, |s| { + s.select_ranges(selection_ranges) + }); editor }); @@ -511,7 +709,7 @@ mod tests { .update_in(cx, |workspace, window, cx| { TextDiffView::open( &DiffClipboardWithSelectionData { - clipboard_text: "old line 1\nline 2\nold line 3\nline 4\n".to_string(), + clipboard_text: clipboard_text.to_string(), editor, }, workspace, @@ -528,26 +726,14 @@ mod tests { assert_state_with_diff( &diff_view.read_with(cx, |diff_view, _| diff_view.diff_editor.clone()), &mut cx, - &unindent( - " - - old line 1 - + ˇnew line 1 - line 2 - - old line 3 - + new line 3 - line 4 - ", - ), + expected_diff, ); diff_view.read_with(cx, |diff_view, cx| { - assert_eq!( - diff_view.tab_content_text(0, cx), - "Clipboard ↔ text.txt @ L1:1-L5:1" - ); + assert_eq!(diff_view.tab_content_text(0, cx), expected_tab_title); assert_eq!( diff_view.tab_tooltip_text(cx).unwrap(), - format!("Clipboard ↔ {}", path!("test/a/b/text.txt @ L1:1-L5:1")) + expected_tab_tooltip ); }); } From 65759d43163bd36cce8f8aa492ba2628ca005a7a Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Thu, 24 Jul 2025 16:27:29 +0800 Subject: [PATCH 0180/1052] gpui: Fix Interactivity prepaint to update scroll_handle bounds (#35013) It took a long time to check this problem. Finally, I found that due to a detail missing when changing #34832, the bounds of `ScrollHandle` was not updated in the Interactivity `prepaint` phase. ```diff - scroll_handle_state.padded_content_size = padded_content_size; + scroll_handle_state.max_offset = scroll_max; ``` It was correct before the change, because the `padded_content_size` (including `bounds.size`) was saved before, and the bounds was missing after changing to `max_offset`, but the bounds were not updated anywhere. So when `scroll_handle.bounds()` is obtained outside, it is always 0px here. @MrSubidubi Release Notes: - N/A --- crates/gpui/src/elements/div.rs | 7 +------ crates/gpui/src/elements/uniform_list.rs | 5 ++--- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/crates/gpui/src/elements/div.rs b/crates/gpui/src/elements/div.rs index 4655c92409..fa47758581 100644 --- a/crates/gpui/src/elements/div.rs +++ b/crates/gpui/src/elements/div.rs @@ -1334,7 +1334,6 @@ impl Element for Div { } else if let Some(scroll_handle) = self.interactivity.tracked_scroll_handle.as_ref() { let mut state = scroll_handle.0.borrow_mut(); state.child_bounds = Vec::with_capacity(request_layout.child_layout_ids.len()); - state.bounds = bounds; for child_layout_id in &request_layout.child_layout_ids { let child_bounds = window.layout_bounds(*child_layout_id); child_min = child_min.min(&child_bounds.origin); @@ -1706,6 +1705,7 @@ impl Interactivity { if let Some(mut scroll_handle_state) = tracked_scroll_handle { scroll_handle_state.max_offset = scroll_max; + scroll_handle_state.bounds = bounds; } *scroll_offset @@ -3007,11 +3007,6 @@ impl ScrollHandle { self.0.borrow().bounds } - /// Set the bounds into which this child is painted - pub(super) fn set_bounds(&self, bounds: Bounds) { - self.0.borrow_mut().bounds = bounds; - } - /// Get the bounds for a specific child. pub fn bounds_for_item(&self, ix: usize) -> Option> { self.0.borrow().child_bounds.get(ix).cloned() diff --git a/crates/gpui/src/elements/uniform_list.rs b/crates/gpui/src/elements/uniform_list.rs index 52e2015c20..e80656a078 100644 --- a/crates/gpui/src/elements/uniform_list.rs +++ b/crates/gpui/src/elements/uniform_list.rs @@ -295,9 +295,8 @@ impl Element for UniformList { bounds.bottom_right() - point(border.right + padding.right, border.bottom), ); - let y_flipped = if let Some(scroll_handle) = self.scroll_handle.as_mut() { - let mut scroll_state = scroll_handle.0.borrow_mut(); - scroll_state.base_handle.set_bounds(bounds); + let y_flipped = if let Some(scroll_handle) = &self.scroll_handle { + let scroll_state = scroll_handle.0.borrow(); scroll_state.y_flipped } else { false From cd9bcc7f0963c7dd06c6623fce039e18b42f682e Mon Sep 17 00:00:00 2001 From: Finn Evers Date: Thu, 24 Jul 2025 10:40:36 +0200 Subject: [PATCH 0181/1052] agent_ui: Improve wrapping behavior in provider configuration header (#34989) This ensures that the "Add provider" button does not move offscreen too fast and ensures the text wraps for smaller panel sizes. | Before | After | | --- | --- | | image | image | Release Notes: - N/A --- crates/agent_ui/src/agent_configuration.rs | 86 +++++++++++++--------- 1 file changed, 51 insertions(+), 35 deletions(-) diff --git a/crates/agent_ui/src/agent_configuration.rs b/crates/agent_ui/src/agent_configuration.rs index 7a160a5649..1870c3e3d2 100644 --- a/crates/agent_ui/src/agent_configuration.rs +++ b/crates/agent_ui/src/agent_configuration.rs @@ -321,46 +321,62 @@ impl AgentConfiguration { .justify_between() .child( v_flex() + .w_full() .gap_0p5() - .child(Headline::new("LLM Providers")) + .child( + h_flex() + .w_full() + .gap_2() + .justify_between() + .child(Headline::new("LLM Providers")) + .child( + PopoverMenu::new("add-provider-popover") + .trigger( + Button::new("add-provider", "Add Provider") + .icon_position(IconPosition::Start) + .icon(IconName::Plus) + .icon_size(IconSize::Small) + .icon_color(Color::Muted) + .label_size(LabelSize::Small), + ) + .anchor(gpui::Corner::TopRight) + .menu({ + let workspace = self.workspace.clone(); + move |window, cx| { + Some(ContextMenu::build( + window, + cx, + |menu, _window, _cx| { + menu.header("Compatible APIs").entry( + "OpenAI", + None, + { + let workspace = + workspace.clone(); + move |window, cx| { + workspace + .update(cx, |workspace, cx| { + AddLlmProviderModal::toggle( + LlmCompatibleProvider::OpenAi, + workspace, + window, + cx, + ); + }) + .log_err(); + } + }, + ) + }, + )) + } + }), + ), + ) .child( Label::new("Add at least one provider to use AI-powered features.") .color(Color::Muted), ), - ) - .child( - PopoverMenu::new("add-provider-popover") - .trigger( - Button::new("add-provider", "Add Provider") - .icon_position(IconPosition::Start) - .icon(IconName::Plus) - .icon_size(IconSize::Small) - .icon_color(Color::Muted) - .label_size(LabelSize::Small), - ) - .anchor(gpui::Corner::TopRight) - .menu({ - let workspace = self.workspace.clone(); - move |window, cx| { - Some(ContextMenu::build(window, cx, |menu, _window, _cx| { - menu.header("Compatible APIs").entry("OpenAI", None, { - let workspace = workspace.clone(); - move |window, cx| { - workspace - .update(cx, |workspace, cx| { - AddLlmProviderModal::toggle( - LlmCompatibleProvider::OpenAi, - workspace, - window, - cx, - ); - }) - .log_err(); - } - }) - })) - } - }), ), ) .child( From 5c9363b1c47426e9f65858f7dbc2e6af42bbe403 Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Thu, 24 Jul 2025 04:43:28 -0400 Subject: [PATCH 0182/1052] Differentiate between file and selection diff events (#35014) Release Notes: - N/A --- crates/git_ui/src/text_diff_view.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/git_ui/src/text_diff_view.rs b/crates/git_ui/src/text_diff_view.rs index be1866a354..005c1e18b4 100644 --- a/crates/git_ui/src/text_diff_view.rs +++ b/crates/git_ui/src/text_diff_view.rs @@ -316,7 +316,7 @@ impl Item for TextDiffView { } fn telemetry_event_text(&self) -> Option<&'static str> { - Some("Diff View Opened") + Some("Selection Diff View Opened") } fn deactivated(&mut self, window: &mut Window, cx: &mut Context) { From 913b9296d755d88a85ac6fad2d57f6c1e5d7cef6 Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Thu, 24 Jul 2025 04:49:04 -0400 Subject: [PATCH 0183/1052] Add `editor: convert to sentence case` (#35015) This PR adds an `editor: convert to sentence case` action. I frequently find myself copying branch names and then removing the hyphens and ensuring the first letter is capitalized, and then using the result text for the commit message. For example: image You can achieve this with a combination of other text manipulation commands, but this action makes it even easier. Also, moved `toggle_case` down into the area where all other commands internally using `manipulate_text` are located. Release Notes: - Added `editor: convert to sentence case` --- crates/editor/src/actions.rs | 2 ++ crates/editor/src/editor.rs | 31 ++++++++++++++++++++----------- crates/editor/src/editor_tests.rs | 17 +++++++++++++++++ crates/editor/src/element.rs | 3 ++- 4 files changed, 41 insertions(+), 12 deletions(-) diff --git a/crates/editor/src/actions.rs b/crates/editor/src/actions.rs index f80a6afbbb..1212651cb3 100644 --- a/crates/editor/src/actions.rs +++ b/crates/editor/src/actions.rs @@ -365,6 +365,8 @@ actions!( ConvertToLowerCase, /// Toggles the case of selected text. ConvertToOppositeCase, + /// Converts selected text to sentence case. + ConvertToSentenceCase, /// Converts selected text to snake_case. ConvertToSnakeCase, /// Converts selected text to Title Case. diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index 069d8cffb3..8f57fb1a20 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -10878,17 +10878,6 @@ impl Editor { }); } - pub fn toggle_case(&mut self, _: &ToggleCase, window: &mut Window, cx: &mut Context) { - self.manipulate_text(window, cx, |text| { - let has_upper_case_characters = text.chars().any(|c| c.is_uppercase()); - if has_upper_case_characters { - text.to_lowercase() - } else { - text.to_uppercase() - } - }) - } - fn manipulate_immutable_lines( &mut self, window: &mut Window, @@ -11144,6 +11133,26 @@ impl Editor { }) } + pub fn convert_to_sentence_case( + &mut self, + _: &ConvertToSentenceCase, + window: &mut Window, + cx: &mut Context, + ) { + self.manipulate_text(window, cx, |text| text.to_case(Case::Sentence)) + } + + pub fn toggle_case(&mut self, _: &ToggleCase, window: &mut Window, cx: &mut Context) { + self.manipulate_text(window, cx, |text| { + let has_upper_case_characters = text.chars().any(|c| c.is_uppercase()); + if has_upper_case_characters { + text.to_lowercase() + } else { + text.to_uppercase() + } + }) + } + pub fn convert_to_rot13( &mut self, _: &ConvertToRot13, diff --git a/crates/editor/src/editor_tests.rs b/crates/editor/src/editor_tests.rs index 8d121972d0..03b047e92e 100644 --- a/crates/editor/src/editor_tests.rs +++ b/crates/editor/src/editor_tests.rs @@ -4724,6 +4724,23 @@ async fn test_toggle_case(cx: &mut TestAppContext) { "}); } +#[gpui::test] +async fn test_convert_to_sentence_case(cx: &mut TestAppContext) { + init_test(cx, |_| {}); + + let mut cx = EditorTestContext::new(cx).await; + + cx.set_state(indoc! {" + «implement-windows-supportˇ» + "}); + cx.update_editor(|e, window, cx| { + e.convert_to_sentence_case(&ConvertToSentenceCase, window, cx) + }); + cx.assert_editor_state(indoc! {" + «Implement windows supportˇ» + "}); +} + #[gpui::test] async fn test_manipulate_text(cx: &mut TestAppContext) { init_test(cx, |_| {}); diff --git a/crates/editor/src/element.rs b/crates/editor/src/element.rs index d2ee9d6b0a..5fd6b028f4 100644 --- a/crates/editor/src/element.rs +++ b/crates/editor/src/element.rs @@ -230,7 +230,6 @@ impl EditorElement { register_action(editor, window, Editor::sort_lines_case_insensitive); register_action(editor, window, Editor::reverse_lines); register_action(editor, window, Editor::shuffle_lines); - register_action(editor, window, Editor::toggle_case); register_action(editor, window, Editor::convert_indentation_to_spaces); register_action(editor, window, Editor::convert_indentation_to_tabs); register_action(editor, window, Editor::convert_to_upper_case); @@ -241,6 +240,8 @@ impl EditorElement { register_action(editor, window, Editor::convert_to_upper_camel_case); register_action(editor, window, Editor::convert_to_lower_camel_case); register_action(editor, window, Editor::convert_to_opposite_case); + register_action(editor, window, Editor::convert_to_sentence_case); + register_action(editor, window, Editor::toggle_case); register_action(editor, window, Editor::convert_to_rot13); register_action(editor, window, Editor::convert_to_rot47); register_action(editor, window, Editor::delete_to_previous_word_start); From dd52fb58feddd1d6200bc40c641e9189836ad753 Mon Sep 17 00:00:00 2001 From: Finn Evers Date: Thu, 24 Jul 2025 10:51:40 +0200 Subject: [PATCH 0184/1052] terminal_view: Ensure breadcrumbs are updated on settings change (#35016) Currently, terminal breadcrumbs are only updated after a settings change once the terminal view is focused again. This change ensures that the breadcrumbs are updated instantaneously once the breadcrumb settings changes. Release Notes: - Fixed an issue where terminal breadcrumbs would not react instantly to settings changes. --- crates/terminal_view/src/terminal_view.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/crates/terminal_view/src/terminal_view.rs b/crates/terminal_view/src/terminal_view.rs index 1cc1fbcf6f..bf65a736e8 100644 --- a/crates/terminal_view/src/terminal_view.rs +++ b/crates/terminal_view/src/terminal_view.rs @@ -430,6 +430,7 @@ impl TerminalView { fn settings_changed(&mut self, cx: &mut Context) { let settings = TerminalSettings::get_global(cx); + let breadcrumb_visibility_changed = self.show_breadcrumbs != settings.toolbar.breadcrumbs; self.show_breadcrumbs = settings.toolbar.breadcrumbs; let new_cursor_shape = settings.cursor_shape.unwrap_or_default(); @@ -441,6 +442,9 @@ impl TerminalView { }); } + if breadcrumb_visibility_changed { + cx.emit(ItemEvent::UpdateBreadcrumbs); + } cx.notify(); } From 0af690080bc4353d71d1039374e5cbbfce656718 Mon Sep 17 00:00:00 2001 From: Oleksiy Syvokon Date: Thu, 24 Jul 2025 15:22:57 +0300 Subject: [PATCH 0185/1052] linux: Fix `ctrl-0..9`, `ctrl-[`, `ctrl-^` (#35028) There were two different underlying reasons for the issues with ctrl-number and ctrl-punctuation: 1. Some keys in the ctrl-0..9 range send codes in the `\1b`..`\1f` range. For example, `ctrl-2` sends keycode for `ctrl-[` (0x1b), but we want to map it to `2`, not to `[`. 2. `ctrl-[` and four other ctrl-punctuation were incorrectly mapped, since the expected conversion is by adding 0x40 Closes #35012 Release Notes: - N/A --- crates/gpui/src/platform/linux/platform.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/crates/gpui/src/platform/linux/platform.rs b/crates/gpui/src/platform/linux/platform.rs index d65118e994..fe6a36baa8 100644 --- a/crates/gpui/src/platform/linux/platform.rs +++ b/crates/gpui/src/platform/linux/platform.rs @@ -845,9 +845,15 @@ impl crate::Keystroke { { if key.is_ascii_graphic() { key_utf8.to_lowercase() - // map ctrl-a to a - } else if key_utf32 <= 0x1f { - ((key_utf32 as u8 + 0x60) as char).to_string() + // map ctrl-a to `a` + // ctrl-0..9 may emit control codes like ctrl-[, but + // we don't want to map them to `[` + } else if key_utf32 <= 0x1f + && !name.chars().next().is_some_and(|c| c.is_ascii_digit()) + { + ((key_utf32 as u8 + 0x40) as char) + .to_ascii_lowercase() + .to_string() } else { name } From 1e2b0fcab6535f53857f401ba7ef2435c40b7e1e Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Thu, 24 Jul 2025 14:30:49 +0200 Subject: [PATCH 0186/1052] sum_tree: Remove Unit type (#35027) This solves one ~TODO, as Unit type was a workaround for a lack of ability to implement Summary for (). Release Notes: - N/A --- crates/sum_tree/src/sum_tree.rs | 12 +++++------- crates/worktree/src/worktree.rs | 14 ++++---------- 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/crates/sum_tree/src/sum_tree.rs b/crates/sum_tree/src/sum_tree.rs index 4f9e01ce20..4c5ce39590 100644 --- a/crates/sum_tree/src/sum_tree.rs +++ b/crates/sum_tree/src/sum_tree.rs @@ -41,16 +41,14 @@ pub trait Summary: Clone { fn add_summary(&mut self, summary: &Self, cx: &Self::Context); } -/// This type exists because we can't implement Summary for () without causing -/// type resolution errors -#[derive(Copy, Clone, PartialEq, Eq, Debug)] -pub struct Unit; - -impl Summary for Unit { +/// Catch-all implementation for when you need something that implements [`Summary`] without a specific type. +/// We implement it on a &'static, as that avoids blanket impl collisions with `impl Dimension for T` +/// (as we also need unit type to be a fill-in dimension) +impl Summary for &'static () { type Context = (); fn zero(_: &()) -> Self { - Unit + &() } fn add_summary(&mut self, _: &Self, _: &()) {} diff --git a/crates/worktree/src/worktree.rs b/crates/worktree/src/worktree.rs index 4fc6b91abb..e6949f62df 100644 --- a/crates/worktree/src/worktree.rs +++ b/crates/worktree/src/worktree.rs @@ -62,7 +62,7 @@ use std::{ }, time::{Duration, Instant}, }; -use sum_tree::{Bias, Edit, KeyedItem, SeekTarget, SumTree, Summary, TreeMap, TreeSet, Unit}; +use sum_tree::{Bias, Edit, KeyedItem, SeekTarget, SumTree, Summary, TreeMap, TreeSet}; use text::{LineEnding, Rope}; use util::{ ResultExt, @@ -407,12 +407,12 @@ struct LocalRepositoryEntry { } impl sum_tree::Item for LocalRepositoryEntry { - type Summary = PathSummary; + type Summary = PathSummary<&'static ()>; fn summary(&self, _: &::Context) -> Self::Summary { PathSummary { max_path: self.work_directory.path_key().0, - item_summary: Unit, + item_summary: &(), } } } @@ -425,12 +425,6 @@ impl KeyedItem for LocalRepositoryEntry { } } -//impl LocalRepositoryEntry { -// pub fn repo(&self) -> &Arc { -// &self.repo_ptr -// } -//} - impl Deref for LocalRepositoryEntry { type Target = WorkDirectory; @@ -5417,7 +5411,7 @@ impl<'a> SeekTarget<'a, EntrySummary, TraversalProgress<'a>> for TraversalTarget } } -impl<'a> SeekTarget<'a, PathSummary, TraversalProgress<'a>> for TraversalTarget<'_> { +impl<'a> SeekTarget<'a, PathSummary<&'static ()>, TraversalProgress<'a>> for TraversalTarget<'_> { fn cmp(&self, cursor_location: &TraversalProgress<'a>, _: &()) -> Ordering { self.cmp_progress(cursor_location) } From 4fb540d6d2adb58b2e61ab1bdfa7c820eb9798d8 Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Thu, 24 Jul 2025 09:39:10 -0300 Subject: [PATCH 0187/1052] dock: Add divider between panels on the right side, too (#35003) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A while ago, we added a divider in the left side of the status bar between the icon buttons that open panels vs. those that open something else (tabs, popover menus, etc.). There isn't a super good reason why we wouldn't do the same in the right side, even more so given that (at least by default) we usually have more buttons on that side; buttons that _don't_ open panels (regardless of being docked to the bottom or right). So, this PR does this! CleanShot 2025-07-24 at 1  59 10@2x Release Notes: - N/A --- crates/workspace/src/dock.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/crates/workspace/src/dock.rs b/crates/workspace/src/dock.rs index 7165de23ec..ca63d3e553 100644 --- a/crates/workspace/src/dock.rs +++ b/crates/workspace/src/dock.rs @@ -934,6 +934,10 @@ impl Render for PanelButtons { h_flex() .gap_1() + .when( + has_buttons && dock.position == DockPosition::Bottom, + |this| this.child(Divider::vertical().color(DividerColor::Border)), + ) .children(buttons) .when(has_buttons && dock.position == DockPosition::Left, |this| { this.child(Divider::vertical().color(DividerColor::Border)) From fab450e39d39364ff6e2f08121c6d31e301a47ca Mon Sep 17 00:00:00 2001 From: Peter Tripp Date: Thu, 24 Jul 2025 09:20:25 -0400 Subject: [PATCH 0188/1052] Fix invalid regular expressions highlighting all search fields (#35001) Closes https://github.com/zed-industries/zed/issues/34969 Closes https://github.com/zed-industries/zed/issues/34970 Only highlight the search field on regex error (buffer search and project search). Clear errors when the buffer search hidden so stale errors aren't shown on next search. Before (all fields highlighted red): Screenshot 2025-07-23 at 22 59 45 After (only query field highlighted red): Screenshot 2025-07-23 at 23 10 49 Release Notes: - Improved highlighting of regex errors in search dialogs --- crates/search/src/buffer_search.rs | 22 +++++++++++++--------- crates/search/src/project_search.rs | 13 +++++++------ 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/crates/search/src/buffer_search.rs b/crates/search/src/buffer_search.rs index 91b7fe488e..5d77a95027 100644 --- a/crates/search/src/buffer_search.rs +++ b/crates/search/src/buffer_search.rs @@ -228,16 +228,17 @@ impl Render for BufferSearchBar { if in_replace { key_context.add("in_replace"); } - let editor_border = if self.query_error.is_some() { + let query_border = if self.query_error.is_some() { Color::Error.color(cx) } else { cx.theme().colors().border }; + let replacement_border = cx.theme().colors().border; let container_width = window.viewport_size().width; let input_width = SearchInputWidth::calc_width(container_width); - let input_base_styles = || { + let input_base_styles = |border_color| { h_flex() .min_w_32() .w(input_width) @@ -246,7 +247,7 @@ impl Render for BufferSearchBar { .pr_1() .py_1() .border_1() - .border_color(editor_border) + .border_color(border_color) .rounded_lg() }; @@ -256,7 +257,7 @@ impl Render for BufferSearchBar { el.child(Label::new("Find in results").color(Color::Hint)) }) .child( - input_base_styles() + input_base_styles(query_border) .id("editor-scroll") .track_scroll(&self.editor_scroll_handle) .child(self.render_text_input(&self.query_editor, color_override, cx)) @@ -430,11 +431,13 @@ impl Render for BufferSearchBar { let replace_line = should_show_replace_input.then(|| { h_flex() .gap_2() - .child(input_base_styles().child(self.render_text_input( - &self.replacement_editor, - None, - cx, - ))) + .child( + input_base_styles(replacement_border).child(self.render_text_input( + &self.replacement_editor, + None, + cx, + )), + ) .child( h_flex() .min_w_64() @@ -775,6 +778,7 @@ impl BufferSearchBar { pub fn dismiss(&mut self, _: &Dismiss, window: &mut Window, cx: &mut Context) { self.dismissed = true; + self.query_error = None; for searchable_item in self.searchable_items_with_matches.keys() { if let Some(searchable_item) = WeakSearchableItemHandle::upgrade(searchable_item.as_ref(), cx) diff --git a/crates/search/src/project_search.rs b/crates/search/src/project_search.rs index 57ca5e56b9..3b9700c5f1 100644 --- a/crates/search/src/project_search.rs +++ b/crates/search/src/project_search.rs @@ -195,6 +195,7 @@ pub struct ProjectSearch { #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] enum InputPanel { Query, + Replacement, Exclude, Include, } @@ -1962,7 +1963,7 @@ impl Render for ProjectSearchBar { MultipleInputs, } - let input_base_styles = |base_style: BaseStyle| { + let input_base_styles = |base_style: BaseStyle, panel: InputPanel| { h_flex() .min_w_32() .map(|div| match base_style { @@ -1974,11 +1975,11 @@ impl Render for ProjectSearchBar { .pr_1() .py_1() .border_1() - .border_color(search.border_color_for(InputPanel::Query, cx)) + .border_color(search.border_color_for(panel, cx)) .rounded_lg() }; - let query_column = input_base_styles(BaseStyle::SingleInput) + let query_column = input_base_styles(BaseStyle::SingleInput, InputPanel::Query) .on_action(cx.listener(|this, action, window, cx| this.confirm(action, window, cx))) .on_action(cx.listener(|this, action, window, cx| { this.previous_history_query(action, window, cx) @@ -2167,7 +2168,7 @@ impl Render for ProjectSearchBar { .child(h_flex().min_w_64().child(mode_column).child(matches_column)); let replace_line = search.replace_enabled.then(|| { - let replace_column = input_base_styles(BaseStyle::SingleInput) + let replace_column = input_base_styles(BaseStyle::SingleInput, InputPanel::Replacement) .child(self.render_text_input(&search.replacement_editor, cx)); let focus_handle = search.replacement_editor.read(cx).focus_handle(cx); @@ -2241,7 +2242,7 @@ impl Render for ProjectSearchBar { .gap_2() .w(input_width) .child( - input_base_styles(BaseStyle::MultipleInputs) + input_base_styles(BaseStyle::MultipleInputs, InputPanel::Include) .on_action(cx.listener(|this, action, window, cx| { this.previous_history_query(action, window, cx) })) @@ -2251,7 +2252,7 @@ impl Render for ProjectSearchBar { .child(self.render_text_input(&search.included_files_editor, cx)), ) .child( - input_base_styles(BaseStyle::MultipleInputs) + input_base_styles(BaseStyle::MultipleInputs, InputPanel::Exclude) .on_action(cx.listener(|this, action, window, cx| { this.previous_history_query(action, window, cx) })) From 29332c1962809b0cf812df5c444324e854c62011 Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Thu, 24 Jul 2025 11:26:15 -0300 Subject: [PATCH 0189/1052] ai onboarding: Add overall fixes to the whole flow (#34996) Closes https://github.com/zed-industries/zed/issues/34979 Release Notes: - N/A --------- Co-authored-by: Agus Zubiaga Co-authored-by: Ben Kunkle --- crates/agent/src/thread_store.rs | 9 +- crates/agent_ui/src/agent_configuration.rs | 11 +- crates/agent_ui/src/agent_panel.rs | 56 +++--- crates/agent_ui/src/message_editor.rs | 52 +++--- crates/agent_ui/src/ui.rs | 1 - crates/agent_ui/src/ui/end_trial_upsell.rs | 55 +++--- crates/agent_ui/src/ui/upsell.rs | 163 ------------------ .../src/agent_panel_onboarding_content.rs | 7 +- crates/ai_onboarding/src/ai_onboarding.rs | 30 +++- crates/assistant_context/src/context_store.rs | 5 + crates/client/src/user.rs | 6 +- crates/language_models/src/provider/cloud.rs | 5 +- 12 files changed, 150 insertions(+), 250 deletions(-) delete mode 100644 crates/agent_ui/src/ui/upsell.rs diff --git a/crates/agent/src/thread_store.rs b/crates/agent/src/thread_store.rs index 0347156cd4..cc7cb50c91 100644 --- a/crates/agent/src/thread_store.rs +++ b/crates/agent/src/thread_store.rs @@ -41,6 +41,9 @@ use std::{ }; use util::ResultExt as _; +pub static ZED_STATELESS: std::sync::LazyLock = + std::sync::LazyLock::new(|| std::env::var("ZED_STATELESS").map_or(false, |v| !v.is_empty())); + #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub enum DataType { #[serde(rename = "json")] @@ -874,7 +877,11 @@ impl ThreadsDatabase { let needs_migration_from_heed = mdb_path.exists(); - let connection = Connection::open_file(&sqlite_path.to_string_lossy()); + let connection = if *ZED_STATELESS { + Connection::open_memory(Some("THREAD_FALLBACK_DB")) + } else { + Connection::open_file(&sqlite_path.to_string_lossy()) + }; connection.exec(indoc! {" CREATE TABLE IF NOT EXISTS threads ( diff --git a/crates/agent_ui/src/agent_configuration.rs b/crates/agent_ui/src/agent_configuration.rs index 1870c3e3d2..cacd409ac6 100644 --- a/crates/agent_ui/src/agent_configuration.rs +++ b/crates/agent_ui/src/agent_configuration.rs @@ -185,6 +185,13 @@ impl AgentConfiguration { None }; + let is_signed_in = self + .workspace + .read_with(cx, |workspace, _| { + workspace.client().status().borrow().is_connected() + }) + .unwrap_or(false); + v_flex() .w_full() .when(is_expanded, |this| this.mb_2()) @@ -233,8 +240,8 @@ impl AgentConfiguration { .size(LabelSize::Large), ) .map(|this| { - if is_zed_provider { - this.gap_2().child( + if is_zed_provider && is_signed_in { + this.child( self.render_zed_plan_info(current_plan, cx), ) } else { diff --git a/crates/agent_ui/src/agent_panel.rs b/crates/agent_ui/src/agent_panel.rs index 6ae2f12b5e..a0250816a0 100644 --- a/crates/agent_ui/src/agent_panel.rs +++ b/crates/agent_ui/src/agent_panel.rs @@ -564,6 +564,17 @@ impl AgentPanel { let inline_assist_context_store = cx.new(|_cx| ContextStore::new(project.downgrade(), Some(thread_store.downgrade()))); + let thread_id = thread.read(cx).id().clone(); + + let history_store = cx.new(|cx| { + HistoryStore::new( + thread_store.clone(), + context_store.clone(), + [HistoryEntryId::Thread(thread_id)], + cx, + ) + }); + let message_editor = cx.new(|cx| { MessageEditor::new( fs.clone(), @@ -573,22 +584,13 @@ impl AgentPanel { prompt_store.clone(), thread_store.downgrade(), context_store.downgrade(), + Some(history_store.downgrade()), thread.clone(), window, cx, ) }); - let thread_id = thread.read(cx).id().clone(); - let history_store = cx.new(|cx| { - HistoryStore::new( - thread_store.clone(), - context_store.clone(), - [HistoryEntryId::Thread(thread_id)], - cx, - ) - }); - cx.observe(&history_store, |_, _, cx| cx.notify()).detach(); let active_thread = cx.new(|cx| { @@ -851,6 +853,7 @@ impl AgentPanel { self.prompt_store.clone(), self.thread_store.downgrade(), self.context_store.downgrade(), + Some(self.history_store.downgrade()), thread.clone(), window, cx, @@ -1124,6 +1127,7 @@ impl AgentPanel { self.prompt_store.clone(), self.thread_store.downgrade(), self.context_store.downgrade(), + Some(self.history_store.downgrade()), thread.clone(), window, cx, @@ -2283,20 +2287,21 @@ impl AgentPanel { } match &self.active_view { - ActiveView::Thread { thread, .. } => thread - .read(cx) - .thread() - .read(cx) - .configured_model() - .map_or(true, |model| { - model.provider.id() == language_model::ZED_CLOUD_PROVIDER_ID - }), - ActiveView::TextThread { .. } => LanguageModelRegistry::global(cx) - .read(cx) - .default_model() - .map_or(true, |model| { - model.provider.id() == language_model::ZED_CLOUD_PROVIDER_ID - }), + ActiveView::Thread { .. } | ActiveView::TextThread { .. } => { + let history_is_empty = self + .history_store + .update(cx, |store, cx| store.recent_entries(1, cx).is_empty()); + + let has_configured_non_zed_providers = LanguageModelRegistry::read_global(cx) + .providers() + .iter() + .any(|provider| { + provider.is_authenticated(cx) + && provider.id() != language_model::ZED_CLOUD_PROVIDER_ID + }); + + history_is_empty || !has_configured_non_zed_providers + } ActiveView::ExternalAgentThread { .. } | ActiveView::History | ActiveView::Configuration => false, @@ -2317,9 +2322,8 @@ impl AgentPanel { Some( div() - .size_full() .when(thread_view, |this| { - this.bg(cx.theme().colors().panel_background) + this.size_full().bg(cx.theme().colors().panel_background) }) .when(text_thread_view, |this| { this.bg(cx.theme().colors().editor_background) diff --git a/crates/agent_ui/src/message_editor.rs b/crates/agent_ui/src/message_editor.rs index 62be5629f1..c160f1de04 100644 --- a/crates/agent_ui/src/message_editor.rs +++ b/crates/agent_ui/src/message_editor.rs @@ -9,6 +9,7 @@ use crate::ui::{ MaxModeTooltip, preview::{AgentPreview, UsageCallout}, }; +use agent::history_store::HistoryStore; use agent::{ context::{AgentContextKey, ContextLoadResult, load_context}, context_store::ContextStoreEvent, @@ -29,8 +30,9 @@ use fs::Fs; use futures::future::Shared; use futures::{FutureExt as _, future}; use gpui::{ - Animation, AnimationExt, App, Entity, EventEmitter, Focusable, KeyContext, Subscription, Task, - TextStyle, WeakEntity, linear_color_stop, linear_gradient, point, pulsating_between, + Animation, AnimationExt, App, Entity, EventEmitter, Focusable, IntoElement, KeyContext, + Subscription, Task, TextStyle, WeakEntity, linear_color_stop, linear_gradient, point, + pulsating_between, }; use language::{Buffer, Language, Point}; use language_model::{ @@ -80,6 +82,7 @@ pub struct MessageEditor { user_store: Entity, context_store: Entity, prompt_store: Option>, + history_store: Option>, context_strip: Entity, context_picker_menu_handle: PopoverMenuHandle, model_selector: Entity, @@ -161,6 +164,7 @@ impl MessageEditor { prompt_store: Option>, thread_store: WeakEntity, text_thread_store: WeakEntity, + history_store: Option>, thread: Entity, window: &mut Window, cx: &mut Context, @@ -233,6 +237,7 @@ impl MessageEditor { workspace, context_store, prompt_store, + history_store, context_strip, context_picker_menu_handle, load_context_task: None, @@ -1661,32 +1666,36 @@ impl Render for MessageEditor { let line_height = TextSize::Small.rems(cx).to_pixels(window.rem_size()) * 1.5; - let in_pro_trial = matches!( - self.user_store.read(cx).current_plan(), - Some(proto::Plan::ZedProTrial) - ); + let has_configured_providers = LanguageModelRegistry::read_global(cx) + .providers() + .iter() + .filter(|provider| { + provider.is_authenticated(cx) && provider.id() != ZED_CLOUD_PROVIDER_ID + }) + .count() + > 0; - let pro_user = matches!( - self.user_store.read(cx).current_plan(), - Some(proto::Plan::ZedPro) - ); + let is_signed_out = self + .workspace + .read_with(cx, |workspace, _| { + workspace.client().status().borrow().is_signed_out() + }) + .unwrap_or(true); - let configured_providers: Vec<(IconName, SharedString)> = - LanguageModelRegistry::read_global(cx) - .providers() - .iter() - .filter(|provider| { - provider.is_authenticated(cx) && provider.id() != ZED_CLOUD_PROVIDER_ID - }) - .map(|provider| (provider.icon(), provider.name().0.clone())) - .collect(); - let has_existing_providers = configured_providers.len() > 0; + let has_history = self + .history_store + .as_ref() + .and_then(|hs| hs.update(cx, |hs, cx| hs.entries(cx).len() > 0).ok()) + .unwrap_or(false) + || self + .thread + .read_with(cx, |thread, _| thread.messages().len() > 0); v_flex() .size_full() .bg(cx.theme().colors().panel_background) .when( - has_existing_providers && !in_pro_trial && !pro_user, + !has_history && is_signed_out && has_configured_providers, |this| this.child(cx.new(ApiKeysWithProviders::new)), ) .when(changed_buffers.len() > 0, |parent| { @@ -1778,6 +1787,7 @@ impl AgentPreview for MessageEditor { None, thread_store.downgrade(), text_thread_store.downgrade(), + None, thread, window, cx, diff --git a/crates/agent_ui/src/ui.rs b/crates/agent_ui/src/ui.rs index 15f2e28e58..b477a8c385 100644 --- a/crates/agent_ui/src/ui.rs +++ b/crates/agent_ui/src/ui.rs @@ -5,7 +5,6 @@ mod end_trial_upsell; mod new_thread_button; mod onboarding_modal; pub mod preview; -mod upsell; pub use agent_notification::*; pub use burn_mode_tooltip::*; diff --git a/crates/agent_ui/src/ui/end_trial_upsell.rs b/crates/agent_ui/src/ui/end_trial_upsell.rs index 9c2dd98d20..36770c2197 100644 --- a/crates/agent_ui/src/ui/end_trial_upsell.rs +++ b/crates/agent_ui/src/ui/end_trial_upsell.rs @@ -3,7 +3,7 @@ use std::sync::Arc; use ai_onboarding::{AgentPanelOnboardingCard, BulletItem}; use client::zed_urls; use gpui::{AnyElement, App, IntoElement, RenderOnce, Window}; -use ui::{Divider, List, prelude::*}; +use ui::{Divider, List, Tooltip, prelude::*}; #[derive(IntoElement, RegisterComponent)] pub struct EndTrialUpsell { @@ -33,14 +33,19 @@ impl RenderOnce for EndTrialUpsell { ) .child( List::new() - .child(BulletItem::new("500 prompts per month with Claude models")) - .child(BulletItem::new("Unlimited edit predictions")), + .child(BulletItem::new("500 prompts with Claude models")) + .child(BulletItem::new( + "Unlimited edit predictions with Zeta, our open-source model", + )), ) .child( Button::new("cta-button", "Upgrade to Zed Pro") .full_width() .style(ButtonStyle::Tinted(ui::TintColor::Accent)) - .on_click(|_, _, cx| cx.open_url(&zed_urls::upgrade_to_zed_pro_url(cx))), + .on_click(move |_, _window, cx| { + telemetry::event!("Upgrade To Pro Clicked", state = "end-of-trial"); + cx.open_url(&zed_urls::upgrade_to_zed_pro_url(cx)) + }), ); let free_section = v_flex() @@ -55,37 +60,43 @@ impl RenderOnce for EndTrialUpsell { .color(Color::Muted) .buffer_font(cx), ) + .child( + Label::new("(Current Plan)") + .size(LabelSize::Small) + .color(Color::Custom(cx.theme().colors().text_muted.opacity(0.6))) + .buffer_font(cx), + ) .child(Divider::horizontal()), ) .child( List::new() - .child(BulletItem::new( - "50 prompts per month with the Claude models", - )) - .child(BulletItem::new( - "2000 accepted edit predictions using our open-source Zeta model", - )), - ) - .child( - Button::new("dismiss-button", "Stay on Free") - .full_width() - .style(ButtonStyle::Outlined) - .on_click({ - let callback = self.dismiss_upsell.clone(); - move |_, window, cx| callback(window, cx) - }), + .child(BulletItem::new("50 prompts with the Claude models")) + .child(BulletItem::new("2,000 accepted edit predictions")), ); AgentPanelOnboardingCard::new() - .child(Headline::new("Your Zed Pro trial has expired.")) + .child(Headline::new("Your Zed Pro Trial has expired")) .child( Label::new("You've been automatically reset to the Free plan.") - .size(LabelSize::Small) .color(Color::Muted) - .mb_1(), + .mb_2(), ) .child(pro_section) .child(free_section) + .child( + h_flex().absolute().top_4().right_4().child( + IconButton::new("dismiss_onboarding", IconName::Close) + .icon_size(IconSize::Small) + .tooltip(Tooltip::text("Dismiss")) + .on_click({ + let callback = self.dismiss_upsell.clone(); + move |_, window, cx| { + telemetry::event!("Banner Dismissed", source = "AI Onboarding"); + callback(window, cx) + } + }), + ), + ) } } diff --git a/crates/agent_ui/src/ui/upsell.rs b/crates/agent_ui/src/ui/upsell.rs deleted file mode 100644 index f311aade22..0000000000 --- a/crates/agent_ui/src/ui/upsell.rs +++ /dev/null @@ -1,163 +0,0 @@ -use component::{Component, ComponentScope, single_example}; -use gpui::{ - AnyElement, App, ClickEvent, IntoElement, ParentElement, RenderOnce, SharedString, Styled, - Window, -}; -use theme::ActiveTheme; -use ui::{ - Button, ButtonCommon, ButtonStyle, Checkbox, Clickable, Color, Label, LabelCommon, - RegisterComponent, ToggleState, h_flex, v_flex, -}; - -/// A component that displays an upsell message with a call-to-action button -/// -/// # Example -/// ``` -/// let upsell = Upsell::new( -/// "Upgrade to Zed Pro", -/// "Get access to advanced AI features and more", -/// "Upgrade Now", -/// Box::new(|_, _window, cx| { -/// cx.open_url("https://zed.dev/pricing"); -/// }), -/// Box::new(|_, _window, cx| { -/// // Handle dismiss -/// }), -/// Box::new(|checked, window, cx| { -/// // Handle don't show again -/// }), -/// ); -/// ``` -#[derive(IntoElement, RegisterComponent)] -pub struct Upsell { - title: SharedString, - message: SharedString, - cta_text: SharedString, - on_click: Box, - on_dismiss: Box, - on_dont_show_again: Box, -} - -impl Upsell { - /// Create a new upsell component - pub fn new( - title: impl Into, - message: impl Into, - cta_text: impl Into, - on_click: Box, - on_dismiss: Box, - on_dont_show_again: Box, - ) -> Self { - Self { - title: title.into(), - message: message.into(), - cta_text: cta_text.into(), - on_click, - on_dismiss, - on_dont_show_again, - } - } -} - -impl RenderOnce for Upsell { - fn render(self, _window: &mut Window, cx: &mut App) -> impl IntoElement { - v_flex() - .w_full() - .p_4() - .gap_3() - .bg(cx.theme().colors().surface_background) - .rounded_md() - .border_1() - .border_color(cx.theme().colors().border) - .child( - v_flex() - .gap_1() - .child( - Label::new(self.title) - .size(ui::LabelSize::Large) - .weight(gpui::FontWeight::BOLD), - ) - .child(Label::new(self.message).color(Color::Muted)), - ) - .child( - h_flex() - .w_full() - .justify_between() - .items_center() - .child( - h_flex() - .items_center() - .gap_1() - .child( - Checkbox::new("dont-show-again", ToggleState::Unselected).on_click( - move |_, window, cx| { - (self.on_dont_show_again)(true, window, cx); - }, - ), - ) - .child( - Label::new("Don't show again") - .color(Color::Muted) - .size(ui::LabelSize::Small), - ), - ) - .child( - h_flex() - .gap_2() - .child( - Button::new("dismiss-button", "No Thanks") - .style(ButtonStyle::Subtle) - .on_click(self.on_dismiss), - ) - .child( - Button::new("cta-button", self.cta_text) - .style(ButtonStyle::Filled) - .on_click(self.on_click), - ), - ), - ) - } -} - -impl Component for Upsell { - fn scope() -> ComponentScope { - ComponentScope::Agent - } - - fn name() -> &'static str { - "Upsell" - } - - fn description() -> Option<&'static str> { - Some("A promotional component that displays a message with a call-to-action.") - } - - fn preview(window: &mut Window, cx: &mut App) -> Option { - let examples = vec![ - single_example( - "Default", - Upsell::new( - "Upgrade to Zed Pro", - "Get unlimited access to AI features and more with Zed Pro. Unlock advanced AI capabilities and other premium features.", - "Upgrade Now", - Box::new(|_, _, _| {}), - Box::new(|_, _, _| {}), - Box::new(|_, _, _| {}), - ).render(window, cx).into_any_element(), - ), - single_example( - "Short Message", - Upsell::new( - "Try Zed Pro for free", - "Start your 7-day trial today.", - "Start Trial", - Box::new(|_, _, _| {}), - Box::new(|_, _, _| {}), - Box::new(|_, _, _| {}), - ).render(window, cx).into_any_element(), - ), - ]; - - Some(v_flex().gap_4().children(examples).into_any_element()) - } -} diff --git a/crates/ai_onboarding/src/agent_panel_onboarding_content.rs b/crates/ai_onboarding/src/agent_panel_onboarding_content.rs index 771482abf3..e8a62f7ff2 100644 --- a/crates/ai_onboarding/src/agent_panel_onboarding_content.rs +++ b/crates/ai_onboarding/src/agent_panel_onboarding_content.rs @@ -61,6 +61,11 @@ impl Render for AgentPanelOnboarding { Some(proto::Plan::ZedProTrial) ); + let is_pro_user = matches!( + self.user_store.read(cx).current_plan(), + Some(proto::Plan::ZedPro) + ); + AgentPanelOnboardingCard::new() .child( ZedAiOnboarding::new( @@ -75,7 +80,7 @@ impl Render for AgentPanelOnboarding { }), ) .map(|this| { - if enrolled_in_trial || self.configured_providers.len() >= 1 { + if enrolled_in_trial || is_pro_user || self.configured_providers.len() >= 1 { this } else { this.child(ApiKeysWithoutProviders::new()) diff --git a/crates/ai_onboarding/src/ai_onboarding.rs b/crates/ai_onboarding/src/ai_onboarding.rs index f9a91503ae..7fffb60ecc 100644 --- a/crates/ai_onboarding/src/ai_onboarding.rs +++ b/crates/ai_onboarding/src/ai_onboarding.rs @@ -16,6 +16,7 @@ use client::{Client, UserStore, zed_urls}; use gpui::{AnyElement, Entity, IntoElement, ParentElement, SharedString}; use ui::{Divider, List, ListItem, RegisterComponent, TintColor, Tooltip, prelude::*}; +#[derive(IntoElement)] pub struct BulletItem { label: SharedString, } @@ -28,18 +29,27 @@ impl BulletItem { } } -impl IntoElement for BulletItem { - type Element = AnyElement; +impl RenderOnce for BulletItem { + fn render(self, window: &mut Window, _cx: &mut App) -> impl IntoElement { + let line_height = 0.85 * window.line_height(); - fn into_element(self) -> Self::Element { ListItem::new("list-item") .selectable(false) - .start_slot( - Icon::new(IconName::Dash) - .size(IconSize::XSmall) - .color(Color::Hidden), + .child( + h_flex() + .w_full() + .min_w_0() + .gap_1() + .items_start() + .child( + h_flex().h(line_height).justify_center().child( + Icon::new(IconName::Dash) + .size(IconSize::XSmall) + .color(Color::Hidden), + ), + ) + .child(div().w_full().min_w_0().child(Label::new(self.label))), ) - .child(div().w_full().child(Label::new(self.label))) .into_any_element() } } @@ -373,7 +383,9 @@ impl ZedAiOnboarding { .child( List::new() .child(BulletItem::new("500 prompts with Claude models")) - .child(BulletItem::new("Unlimited edit predictions")), + .child(BulletItem::new( + "Unlimited edit predictions with Zeta, our open-source model", + )), ) .child( Button::new("pro", "Continue with Zed Pro") diff --git a/crates/assistant_context/src/context_store.rs b/crates/assistant_context/src/context_store.rs index 3400913eb8..3090a7b234 100644 --- a/crates/assistant_context/src/context_store.rs +++ b/crates/assistant_context/src/context_store.rs @@ -767,6 +767,11 @@ impl ContextStore { fn reload(&mut self, cx: &mut Context) -> Task> { let fs = self.fs.clone(); cx.spawn(async move |this, cx| { + pub static ZED_STATELESS: LazyLock = + LazyLock::new(|| std::env::var("ZED_STATELESS").map_or(false, |v| !v.is_empty())); + if *ZED_STATELESS { + return Ok(()); + } fs.create_dir(contexts_dir()).await?; let mut paths = fs.read_dir(contexts_dir()).await?; diff --git a/crates/client/src/user.rs b/crates/client/src/user.rs index f5213fbcb6..5ed258aa8e 100644 --- a/crates/client/src/user.rs +++ b/crates/client/src/user.rs @@ -765,12 +765,14 @@ impl UserStore { pub fn current_plan(&self) -> Option { #[cfg(debug_assertions)] - if let Ok(plan) = std::env::var("ZED_SIMULATE_ZED_PRO_PLAN").as_ref() { + if let Ok(plan) = std::env::var("ZED_SIMULATE_PLAN").as_ref() { return match plan.as_str() { "free" => Some(proto::Plan::Free), "trial" => Some(proto::Plan::ZedProTrial), "pro" => Some(proto::Plan::ZedPro), - _ => None, + _ => { + panic!("ZED_SIMULATE_PLAN must be one of 'free', 'trial', or 'pro'"); + } }; } diff --git a/crates/language_models/src/provider/cloud.rs b/crates/language_models/src/provider/cloud.rs index fac8810714..09a2ac6e0a 100644 --- a/crates/language_models/src/provider/cloud.rs +++ b/crates/language_models/src/provider/cloud.rs @@ -1159,19 +1159,20 @@ impl RenderOnce for ZedAiConfiguration { let manage_subscription_buttons = if is_pro { Button::new("manage_settings", "Manage Subscription") + .full_width() .style(ButtonStyle::Tinted(TintColor::Accent)) .on_click(|_, _, cx| cx.open_url(&zed_urls::account_url(cx))) .into_any_element() } else if self.plan.is_none() || self.eligible_for_trial { Button::new("start_trial", "Start 14-day Free Pro Trial") - .style(ui::ButtonStyle::Tinted(ui::TintColor::Accent)) .full_width() + .style(ui::ButtonStyle::Tinted(ui::TintColor::Accent)) .on_click(|_, _, cx| cx.open_url(&zed_urls::start_trial_url(cx))) .into_any_element() } else { Button::new("upgrade", "Upgrade to Pro") - .style(ui::ButtonStyle::Tinted(ui::TintColor::Accent)) .full_width() + .style(ui::ButtonStyle::Tinted(ui::TintColor::Accent)) .on_click(|_, _, cx| cx.open_url(&zed_urls::upgrade_to_zed_pro_url(cx))) .into_any_element() }; From 7cdd808db23caa9082b542abbd13b1cace73a501 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Ram=C3=B3n=20Guevara?= <50140021+praguevara@users.noreply.github.com> Date: Thu, 24 Jul 2025 16:29:58 +0200 Subject: [PATCH 0190/1052] helix: Fix replace in helix mode (#34789) Closes https://github.com/zed-industries/zed/issues/33076 Release Notes: - Fixed replace command on helix mode: now it actually replaces what was selected and keeps the replaced text selected to better match helix --- crates/vim/src/helix.rs | 104 +++++++++++++++++++++++++++++++++++++++- crates/vim/src/vim.rs | 1 + 2 files changed, 103 insertions(+), 2 deletions(-) diff --git a/crates/vim/src/helix.rs b/crates/vim/src/helix.rs index 798af3bff3..ca93c9c1de 100644 --- a/crates/vim/src/helix.rs +++ b/crates/vim/src/helix.rs @@ -1,8 +1,8 @@ -use editor::{DisplayPoint, Editor, movement}; +use editor::{DisplayPoint, Editor, SelectionEffects, ToOffset, ToPoint, movement}; use gpui::{Action, actions}; use gpui::{Context, Window}; use language::{CharClassifier, CharKind}; -use text::SelectionGoal; +use text::{Bias, SelectionGoal}; use crate::{ Vim, @@ -341,6 +341,80 @@ impl Vim { }); }); } + + pub fn helix_replace(&mut self, text: &str, window: &mut Window, cx: &mut Context) { + self.update_editor(window, cx, |_, editor, window, cx| { + editor.transact(window, cx, |editor, window, cx| { + let (map, selections) = editor.selections.all_display(cx); + + // Store selection info for positioning after edit + let selection_info: Vec<_> = selections + .iter() + .map(|selection| { + let range = selection.range(); + let start_offset = range.start.to_offset(&map, Bias::Left); + let end_offset = range.end.to_offset(&map, Bias::Left); + let was_empty = range.is_empty(); + let was_reversed = selection.reversed; + ( + map.buffer_snapshot.anchor_at(start_offset, Bias::Left), + end_offset - start_offset, + was_empty, + was_reversed, + ) + }) + .collect(); + + let mut edits = Vec::new(); + for selection in &selections { + let mut range = selection.range(); + + // For empty selections, extend to replace one character + if range.is_empty() { + range.end = movement::saturating_right(&map, range.start); + } + + let byte_range = range.start.to_offset(&map, Bias::Left) + ..range.end.to_offset(&map, Bias::Left); + + if !byte_range.is_empty() { + let replacement_text = text.repeat(byte_range.len()); + edits.push((byte_range, replacement_text)); + } + } + + editor.edit(edits, cx); + + // Restore selections based on original info + let snapshot = editor.buffer().read(cx).snapshot(cx); + let ranges: Vec<_> = selection_info + .into_iter() + .map(|(start_anchor, original_len, was_empty, was_reversed)| { + let start_point = start_anchor.to_point(&snapshot); + if was_empty { + // For cursor-only, collapse to start + start_point..start_point + } else { + // For selections, span the replaced text + let replacement_len = text.len() * original_len; + let end_offset = start_anchor.to_offset(&snapshot) + replacement_len; + let end_point = snapshot.offset_to_point(end_offset); + if was_reversed { + end_point..start_point + } else { + start_point..end_point + } + } + }) + .collect(); + + editor.change_selections(SelectionEffects::no_scroll(), window, cx, |s| { + s.select_ranges(ranges); + }); + }); + }); + self.switch_mode(Mode::HelixNormal, true, window, cx); + } } #[cfg(test)] @@ -603,4 +677,30 @@ mod test { Mode::Insert, ); } + + #[gpui::test] + async fn test_replace(cx: &mut gpui::TestAppContext) { + let mut cx = VimTestContext::new(cx, true).await; + + // No selection (single character) + cx.set_state("ˇaa", Mode::HelixNormal); + + cx.simulate_keystrokes("r x"); + + cx.assert_state("ˇxa", Mode::HelixNormal); + + // Cursor at the beginning + cx.set_state("«ˇaa»", Mode::HelixNormal); + + cx.simulate_keystrokes("r x"); + + cx.assert_state("«ˇxx»", Mode::HelixNormal); + + // Cursor at the end + cx.set_state("«aaˇ»", Mode::HelixNormal); + + cx.simulate_keystrokes("r x"); + + cx.assert_state("«xxˇ»", Mode::HelixNormal); + } } diff --git a/crates/vim/src/vim.rs b/crates/vim/src/vim.rs index 95a08d7c66..c747c30462 100644 --- a/crates/vim/src/vim.rs +++ b/crates/vim/src/vim.rs @@ -1639,6 +1639,7 @@ impl Vim { Mode::Visual | Mode::VisualLine | Mode::VisualBlock => { self.visual_replace(text, window, cx) } + Mode::HelixNormal => self.helix_replace(&text, window, cx), _ => self.clear_operator(window, cx), }, Some(Operator::Digraph { first_char }) => { From fa788a39a4b8dded19cd27d79c9bd0c63d601039 Mon Sep 17 00:00:00 2001 From: Smit Barmase Date: Thu, 24 Jul 2025 20:07:38 +0530 Subject: [PATCH 0191/1052] project_panel: Reuse `index_for_entry` in `index_for_selection` (#35034) Just refactor I came across while working on another issue. `index_for_entry` and `index_for_selection` have the exact same logic, here we can simply reuse `index_for_entry` for `index_for_selection`. Release Notes: - N/A --- crates/project_panel/src/project_panel.rs | 27 ++++------------------- 1 file changed, 4 insertions(+), 23 deletions(-) diff --git a/crates/project_panel/src/project_panel.rs b/crates/project_panel/src/project_panel.rs index b0073f294f..76be97e393 100644 --- a/crates/project_panel/src/project_panel.rs +++ b/crates/project_panel/src/project_panel.rs @@ -2723,26 +2723,7 @@ impl ProjectPanel { } fn index_for_selection(&self, selection: SelectedEntry) -> Option<(usize, usize, usize)> { - let mut entry_index = 0; - let mut visible_entries_index = 0; - for (worktree_index, (worktree_id, worktree_entries, _)) in - self.visible_entries.iter().enumerate() - { - if *worktree_id == selection.worktree_id { - for entry in worktree_entries { - if entry.id == selection.entry_id { - return Some((worktree_index, entry_index, visible_entries_index)); - } else { - visible_entries_index += 1; - entry_index += 1; - } - } - break; - } else { - visible_entries_index += worktree_entries.len(); - } - } - None + self.index_for_entry(selection.entry_id, selection.worktree_id) } fn disjoint_entries(&self, cx: &App) -> BTreeSet { @@ -3353,12 +3334,12 @@ impl ProjectPanel { entry_id: ProjectEntryId, worktree_id: WorktreeId, ) -> Option<(usize, usize, usize)> { - let mut worktree_ix = 0; let mut total_ix = 0; - for (current_worktree_id, visible_worktree_entries, _) in &self.visible_entries { + for (worktree_ix, (current_worktree_id, visible_worktree_entries, _)) in + self.visible_entries.iter().enumerate() + { if worktree_id != *current_worktree_id { total_ix += visible_worktree_entries.len(); - worktree_ix += 1; continue; } From 2a9355a3d25ddd887556741a30bbafd5d6ff58f0 Mon Sep 17 00:00:00 2001 From: Richard Feldman Date: Thu, 24 Jul 2025 11:11:26 -0400 Subject: [PATCH 0192/1052] Don't auto-retry in certain circumstances (#35037) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Someone encountered this in production, which should not happen: Screenshot 2025-07-24 at 10 38
40 AM This moves certain errors into the category of "never retry" and reduces the number of retries for some others. Also it adds some diagnostic logging for retry policy. It's not a complete fix for the above, because the underlying issues is that the server is sending a HTTP 403 response and although we were already treating 403s as "do not retry" it was deciding to retry with 2 attempts anyway. So further debugging is needed to figure out why it wasn't going down the 403 branch by the time the request got here. Release Notes: - N/A --- crates/agent/src/thread.rs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/crates/agent/src/thread.rs b/crates/agent/src/thread.rs index 1b3b022ab2..1af27ca8a7 100644 --- a/crates/agent/src/thread.rs +++ b/crates/agent/src/thread.rs @@ -2037,6 +2037,12 @@ impl Thread { if let Some(retry_strategy) = Thread::get_retry_strategy(completion_error) { + log::info!( + "Retrying with {:?} for language model completion error {:?}", + retry_strategy, + completion_error + ); + retry_scheduled = thread .handle_retryable_error_with_delay( &completion_error, @@ -2246,15 +2252,14 @@ impl Thread { .. } | AuthenticationError { .. } - | PermissionError { .. } => None, - // These errors might be transient, so retry them - SerializeRequest { .. } - | BuildRequestBody { .. } - | PromptTooLarge { .. } + | PermissionError { .. } + | NoApiKey { .. } | ApiEndpointNotFound { .. } - | NoApiKey { .. } => Some(RetryStrategy::Fixed { + | PromptTooLarge { .. } => None, + // These errors might be transient, so retry them + SerializeRequest { .. } | BuildRequestBody { .. } => Some(RetryStrategy::Fixed { delay: BASE_RETRY_DELAY, - max_attempts: 2, + max_attempts: 1, }), // Retry all other 4xx and 5xx errors once. HttpResponseError { status_code, .. } From 2658b2801e382ed01261b4c9566759d735c8ce17 Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Thu, 24 Jul 2025 18:24:53 +0300 Subject: [PATCH 0193/1052] Shutdown language servers better (#35038) Follow-up of https://github.com/zed-industries/zed/pull/33417 * adjust prettier mock LSP to handle `shutdown` and `exit` messages * removed another `?.log_err()` backtrace from logs and improved the logging info * always handle the last parts of the shutdown logic even if the shutdown response had failed Release Notes: - N/A --- crates/lsp/src/lsp.rs | 56 +++++++++++++------------- crates/prettier/src/prettier_server.js | 4 ++ 2 files changed, 33 insertions(+), 27 deletions(-) diff --git a/crates/lsp/src/lsp.rs b/crates/lsp/src/lsp.rs index a820aaf748..9978d7ebb1 100644 --- a/crates/lsp/src/lsp.rs +++ b/crates/lsp/src/lsp.rs @@ -877,39 +877,41 @@ impl LanguageServer { let server = self.server.clone(); let name = self.name.clone(); + let server_id = self.server_id; let mut timer = self.executor.timer(SERVER_SHUTDOWN_TIMEOUT).fuse(); - Some( - async move { - log::debug!("language server shutdown started"); + Some(async move { + log::debug!("language server shutdown started"); - select! { - request_result = shutdown_request.fuse() => { - match request_result { - ConnectionResult::Timeout => { - log::warn!("timeout waiting for language server {name} to shutdown"); - }, - ConnectionResult::ConnectionReset => {}, - ConnectionResult::Result(r) => r?, - } + select! { + request_result = shutdown_request.fuse() => { + match request_result { + ConnectionResult::Timeout => { + log::warn!("timeout waiting for language server {name} (id {server_id}) to shutdown"); + }, + ConnectionResult::ConnectionReset => { + log::warn!("language server {name} (id {server_id}) closed the shutdown request connection"); + }, + ConnectionResult::Result(Err(e)) => { + log::error!("Shutdown request failure, server {name} (id {server_id}): {e:#}"); + }, + ConnectionResult::Result(Ok(())) => {} } - - _ = timer => { - log::info!("timeout waiting for language server {name} to shutdown"); - }, } - response_handlers.lock().take(); - Self::notify_internal::(&outbound_tx, &()).ok(); - outbound_tx.close(); - output_done.recv().await; - server.lock().take().map(|mut child| child.kill()); - log::debug!("language server shutdown finished"); - - drop(tasks); - anyhow::Ok(()) + _ = timer => { + log::info!("timeout waiting for language server {name} (id {server_id}) to shutdown"); + }, } - .log_err(), - ) + + response_handlers.lock().take(); + Self::notify_internal::(&outbound_tx, &()).ok(); + outbound_tx.close(); + output_done.recv().await; + server.lock().take().map(|mut child| child.kill()); + drop(tasks); + log::debug!("language server shutdown finished"); + Some(()) + }) } else { None } diff --git a/crates/prettier/src/prettier_server.js b/crates/prettier/src/prettier_server.js index 6799b4aceb..b3d8a660a4 100644 --- a/crates/prettier/src/prettier_server.js +++ b/crates/prettier/src/prettier_server.js @@ -152,6 +152,10 @@ async function handleMessage(message, prettier) { throw new Error(`Message method is undefined: ${JSON.stringify(message)}`); } else if (method == "initialized") { return; + } else if (method === "shutdown") { + sendResponse({ result: {} }); + } else if (method == "exit") { + process.exit(0); } if (id === undefined) { From 45ddf32a1d0f8dda645f564486f6a4128dacd1a6 Mon Sep 17 00:00:00 2001 From: "Joseph T. Lyons" Date: Thu, 24 Jul 2025 13:08:02 -0400 Subject: [PATCH 0194/1052] Fix variable name in project type reporting (#35045) Release Notes: - N/A --- crates/client/src/telemetry.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/client/src/telemetry.rs b/crates/client/src/telemetry.rs index 4983fda5ef..7d39464e4a 100644 --- a/crates/client/src/telemetry.rs +++ b/crates/client/src/telemetry.rs @@ -358,13 +358,13 @@ impl Telemetry { worktree_id: WorktreeId, updated_entries_set: &UpdatedEntriesSet, ) { - let Some(project_type_names) = self.detect_project_types(worktree_id, updated_entries_set) + let Some(project_types) = self.detect_project_types(worktree_id, updated_entries_set) else { return; }; - for project_type_name in project_type_names { - telemetry::event!("Project Opened", project_type = project_type_name); + for project_type in project_types { + telemetry::event!("Project Opened", project_type = project_type); } } From 2d0f10c48a3308bde3079fdb5301006256f8d50b Mon Sep 17 00:00:00 2001 From: Agus Zubiaga Date: Thu, 24 Jul 2025 14:39:29 -0300 Subject: [PATCH 0195/1052] Refactor to use new ACP crate (#35043) This will prepare us for running the protocol over MCP Release Notes: - N/A --------- Co-authored-by: Ben Brandt Co-authored-by: Conrad Irwin Co-authored-by: Richard Feldman --- Cargo.lock | 15 +- Cargo.toml | 1 + crates/acp_thread/Cargo.toml | 1 + crates/acp_thread/src/acp_thread.rs | 1002 +++++++---------- crates/acp_thread/src/connection.rs | 36 +- crates/acp_thread/src/old_acp_support.rs | 461 ++++++++ crates/agent_servers/Cargo.toml | 1 + crates/agent_servers/src/agent_servers.rs | 11 +- crates/agent_servers/src/claude.rs | 497 ++++---- crates/agent_servers/src/claude/mcp_server.rs | 179 +-- crates/agent_servers/src/claude/tools.rs | 275 ++--- crates/agent_servers/src/e2e_tests.rs | 95 +- crates/agent_servers/src/gemini.rs | 98 +- .../agent_servers/src/stdio_agent_server.rs | 119 -- crates/agent_ui/Cargo.toml | 4 +- crates/agent_ui/src/acp/thread_view.rs | 652 +++++------ crates/agent_ui/src/agent_diff.rs | 6 +- crates/agent_ui/src/agent_panel.rs | 2 +- crates/context_server/src/client.rs | 87 +- crates/context_server/src/protocol.rs | 20 + crates/context_server/src/types.rs | 16 +- 21 files changed, 1830 insertions(+), 1748 deletions(-) create mode 100644 crates/acp_thread/src/old_acp_support.rs delete mode 100644 crates/agent_servers/src/stdio_agent_server.rs diff --git a/Cargo.lock b/Cargo.lock index 8f791d395a..2c65131db0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6,6 +6,7 @@ version = 4 name = "acp_thread" version = "0.1.0" dependencies = [ + "agent-client-protocol", "agentic-coding-protocol", "anyhow", "assistant_tool", @@ -135,11 +136,23 @@ dependencies = [ "zstd", ] +[[package]] +name = "agent-client-protocol" +version = "0.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fb7f39671e02f8a1aeb625652feae40b6fc2597baaa97e028a98863477aecbd" +dependencies = [ + "schemars", + "serde", + "serde_json", +] + [[package]] name = "agent_servers" version = "0.1.0" dependencies = [ "acp_thread", + "agent-client-protocol", "agentic-coding-protocol", "anyhow", "collections", @@ -195,9 +208,9 @@ version = "0.1.0" dependencies = [ "acp_thread", "agent", + "agent-client-protocol", "agent_servers", "agent_settings", - "agentic-coding-protocol", "ai_onboarding", "anyhow", "assistant_context", diff --git a/Cargo.toml b/Cargo.toml index ec793a7429..9062950127 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -413,6 +413,7 @@ zlog_settings = { path = "crates/zlog_settings" } # agentic-coding-protocol = "0.0.10" +agent-client-protocol = "0.0.10" aho-corasick = "1.1" alacritty_terminal = { git = "https://github.com/zed-industries/alacritty.git", branch = "add-hush-login-flag" } any_vec = "0.14" diff --git a/crates/acp_thread/Cargo.toml b/crates/acp_thread/Cargo.toml index b44c25ccc9..011f26f364 100644 --- a/crates/acp_thread/Cargo.toml +++ b/crates/acp_thread/Cargo.toml @@ -16,6 +16,7 @@ doctest = false test-support = ["gpui/test-support", "project/test-support"] [dependencies] +agent-client-protocol.workspace = true agentic-coding-protocol.workspace = true anyhow.workspace = true assistant_tool.workspace = true diff --git a/crates/acp_thread/src/acp_thread.rs b/crates/acp_thread/src/acp_thread.rs index 9af1eeb187..3c6c21205f 100644 --- a/crates/acp_thread/src/acp_thread.rs +++ b/crates/acp_thread/src/acp_thread.rs @@ -1,17 +1,15 @@ mod connection; +mod old_acp_support; pub use connection::*; +pub use old_acp_support::*; -pub use acp::ToolCallId; -use agentic_coding_protocol::{ - self as acp, AgentRequest, ProtocolVersion, ToolCallConfirmationOutcome, ToolCallLocation, - UserMessageChunk, -}; +use agent_client_protocol as acp; use anyhow::{Context as _, Result}; use assistant_tool::ActionLog; use buffer_diff::BufferDiff; use editor::{Bias, MultiBuffer, PathKey}; use futures::{FutureExt, channel::oneshot, future::BoxFuture}; -use gpui::{AppContext, AsyncApp, Context, Entity, EventEmitter, SharedString, Task, WeakEntity}; +use gpui::{AppContext, Context, Entity, EventEmitter, SharedString, Task}; use itertools::Itertools; use language::{ Anchor, Buffer, BufferSnapshot, Capability, LanguageRegistry, OffsetRangeExt as _, Point, @@ -21,46 +19,37 @@ use markdown::Markdown; use project::{AgentLocation, Project}; use std::collections::HashMap; use std::error::Error; -use std::fmt::{Formatter, Write}; +use std::fmt::Formatter; +use std::rc::Rc; use std::{ fmt::Display, mem, path::{Path, PathBuf}, sync::Arc, }; -use ui::{App, IconName}; +use ui::App; use util::ResultExt; -#[derive(Clone, Debug, Eq, PartialEq)] +#[derive(Debug)] pub struct UserMessage { - pub content: Entity, + pub content: ContentBlock, } impl UserMessage { pub fn from_acp( - message: &acp::SendUserMessageParams, + message: impl IntoIterator, language_registry: Arc, cx: &mut App, ) -> Self { - let mut md_source = String::new(); - - for chunk in &message.chunks { - match chunk { - UserMessageChunk::Text { text } => md_source.push_str(&text), - UserMessageChunk::Path { path } => { - write!(&mut md_source, "{}", MentionPath(&path)).unwrap() - } - } - } - - Self { - content: cx - .new(|cx| Markdown::new(md_source.into(), Some(language_registry), None, cx)), + let mut content = ContentBlock::Empty; + for chunk in message { + content.append(chunk, &language_registry, cx) } + Self { content: content } } fn to_markdown(&self, cx: &App) -> String { - format!("## User\n\n{}\n\n", self.content.read(cx).source()) + format!("## User\n\n{}\n\n", self.content.to_markdown(cx)) } } @@ -96,7 +85,7 @@ impl Display for MentionPath<'_> { } } -#[derive(Clone, Debug, Eq, PartialEq)] +#[derive(Debug, PartialEq)] pub struct AssistantMessage { pub chunks: Vec, } @@ -113,42 +102,24 @@ impl AssistantMessage { } } -#[derive(Clone, Debug, Eq, PartialEq)] +#[derive(Debug, PartialEq)] pub enum AssistantMessageChunk { - Text { chunk: Entity }, - Thought { chunk: Entity }, + Message { block: ContentBlock }, + Thought { block: ContentBlock }, } impl AssistantMessageChunk { - pub fn from_acp( - chunk: acp::AssistantMessageChunk, - language_registry: Arc, - cx: &mut App, - ) -> Self { - match chunk { - acp::AssistantMessageChunk::Text { text } => Self::Text { - chunk: cx.new(|cx| Markdown::new(text.into(), Some(language_registry), None, cx)), - }, - acp::AssistantMessageChunk::Thought { thought } => Self::Thought { - chunk: cx - .new(|cx| Markdown::new(thought.into(), Some(language_registry), None, cx)), - }, - } - } - - pub fn from_str(chunk: &str, language_registry: Arc, cx: &mut App) -> Self { - Self::Text { - chunk: cx.new(|cx| { - Markdown::new(chunk.to_owned().into(), Some(language_registry), None, cx) - }), + pub fn from_str(chunk: &str, language_registry: &Arc, cx: &mut App) -> Self { + Self::Message { + block: ContentBlock::new(chunk.into(), language_registry, cx), } } fn to_markdown(&self, cx: &App) -> String { match self { - Self::Text { chunk } => chunk.read(cx).source().to_string(), - Self::Thought { chunk } => { - format!("\n{}\n", chunk.read(cx).source()) + Self::Message { block } => block.to_markdown(cx).to_string(), + Self::Thought { block } => { + format!("\n{}\n", block.to_markdown(cx)) } } } @@ -166,19 +137,15 @@ impl AgentThreadEntry { match self { Self::UserMessage(message) => message.to_markdown(cx), Self::AssistantMessage(message) => message.to_markdown(cx), - Self::ToolCall(too_call) => too_call.to_markdown(cx), + Self::ToolCall(tool_call) => tool_call.to_markdown(cx), } } - pub fn diff(&self) -> Option<&Diff> { - if let AgentThreadEntry::ToolCall(ToolCall { - content: Some(ToolCallContent::Diff { diff }), - .. - }) = self - { - Some(&diff) + pub fn diffs(&self) -> impl Iterator { + if let AgentThreadEntry::ToolCall(call) = self { + itertools::Either::Left(call.diffs()) } else { - None + itertools::Either::Right(std::iter::empty()) } } @@ -195,20 +162,54 @@ impl AgentThreadEntry { pub struct ToolCall { pub id: acp::ToolCallId, pub label: Entity, - pub icon: IconName, - pub content: Option, + pub kind: acp::ToolKind, + pub content: Vec, pub status: ToolCallStatus, pub locations: Vec, } impl ToolCall { + fn from_acp( + tool_call: acp::ToolCall, + status: ToolCallStatus, + language_registry: Arc, + cx: &mut App, + ) -> Self { + Self { + id: tool_call.id, + label: cx.new(|cx| { + Markdown::new( + tool_call.label.into(), + Some(language_registry.clone()), + None, + cx, + ) + }), + kind: tool_call.kind, + content: tool_call + .content + .into_iter() + .map(|content| ToolCallContent::from_acp(content, language_registry.clone(), cx)) + .collect(), + locations: tool_call.locations, + status, + } + } + + pub fn diffs(&self) -> impl Iterator { + self.content.iter().filter_map(|content| match content { + ToolCallContent::ContentBlock { .. } => None, + ToolCallContent::Diff { diff } => Some(diff), + }) + } + fn to_markdown(&self, cx: &App) -> String { let mut markdown = format!( "**Tool Call: {}**\nStatus: {}\n\n", self.label.read(cx).source(), self.status ); - if let Some(content) = &self.content { + for content in &self.content { markdown.push_str(content.to_markdown(cx).as_str()); markdown.push_str("\n\n"); } @@ -219,8 +220,8 @@ impl ToolCall { #[derive(Debug)] pub enum ToolCallStatus { WaitingForConfirmation { - confirmation: ToolCallConfirmation, - respond_tx: oneshot::Sender, + options: Vec, + respond_tx: oneshot::Sender, }, Allowed { status: acp::ToolCallStatus, @@ -237,9 +238,9 @@ impl Display for ToolCallStatus { match self { ToolCallStatus::WaitingForConfirmation { .. } => "Waiting for confirmation", ToolCallStatus::Allowed { status } => match status { - acp::ToolCallStatus::Running => "Running", - acp::ToolCallStatus::Finished => "Finished", - acp::ToolCallStatus::Error => "Error", + acp::ToolCallStatus::InProgress => "In Progress", + acp::ToolCallStatus::Completed => "Completed", + acp::ToolCallStatus::Failed => "Failed", }, ToolCallStatus::Rejected => "Rejected", ToolCallStatus::Canceled => "Canceled", @@ -248,86 +249,92 @@ impl Display for ToolCallStatus { } } -#[derive(Debug)] -pub enum ToolCallConfirmation { - Edit { - description: Option>, - }, - Execute { - command: String, - root_command: String, - description: Option>, - }, - Mcp { - server_name: String, - tool_name: String, - tool_display_name: String, - description: Option>, - }, - Fetch { - urls: Vec, - description: Option>, - }, - Other { - description: Entity, - }, +#[derive(Debug, PartialEq, Clone)] +pub enum ContentBlock { + Empty, + Markdown { markdown: Entity }, } -impl ToolCallConfirmation { - pub fn from_acp( - confirmation: acp::ToolCallConfirmation, +impl ContentBlock { + pub fn new( + block: acp::ContentBlock, + language_registry: &Arc, + cx: &mut App, + ) -> Self { + let mut this = Self::Empty; + this.append(block, language_registry, cx); + this + } + + pub fn new_combined( + blocks: impl IntoIterator, language_registry: Arc, cx: &mut App, ) -> Self { - let to_md = |description: String, cx: &mut App| -> Entity { - cx.new(|cx| { - Markdown::new( - description.into(), - Some(language_registry.clone()), - None, - cx, - ) - }) + let mut this = Self::Empty; + for block in blocks { + this.append(block, &language_registry, cx); + } + this + } + + pub fn append( + &mut self, + block: acp::ContentBlock, + language_registry: &Arc, + cx: &mut App, + ) { + let new_content = match block { + acp::ContentBlock::Text(text_content) => text_content.text.clone(), + acp::ContentBlock::ResourceLink(resource_link) => { + if let Some(path) = resource_link.uri.strip_prefix("file://") { + format!("{}", MentionPath(path.as_ref())) + } else { + resource_link.uri.clone() + } + } + acp::ContentBlock::Image(_) + | acp::ContentBlock::Audio(_) + | acp::ContentBlock::Resource(_) => String::new(), }; - match confirmation { - acp::ToolCallConfirmation::Edit { description } => Self::Edit { - description: description.map(|description| to_md(description, cx)), - }, - acp::ToolCallConfirmation::Execute { - command, - root_command, - description, - } => Self::Execute { - command, - root_command, - description: description.map(|description| to_md(description, cx)), - }, - acp::ToolCallConfirmation::Mcp { - server_name, - tool_name, - tool_display_name, - description, - } => Self::Mcp { - server_name, - tool_name, - tool_display_name, - description: description.map(|description| to_md(description, cx)), - }, - acp::ToolCallConfirmation::Fetch { urls, description } => Self::Fetch { - urls: urls.iter().map(|url| url.into()).collect(), - description: description.map(|description| to_md(description, cx)), - }, - acp::ToolCallConfirmation::Other { description } => Self::Other { - description: to_md(description, cx), - }, + match self { + ContentBlock::Empty => { + *self = ContentBlock::Markdown { + markdown: cx.new(|cx| { + Markdown::new( + new_content.into(), + Some(language_registry.clone()), + None, + cx, + ) + }), + }; + } + ContentBlock::Markdown { markdown } => { + markdown.update(cx, |markdown, cx| markdown.append(&new_content, cx)); + } + } + } + + fn to_markdown<'a>(&'a self, cx: &'a App) -> &'a str { + match self { + ContentBlock::Empty => "", + ContentBlock::Markdown { markdown } => markdown.read(cx).source(), + } + } + + pub fn markdown(&self) -> Option<&Entity> { + match self { + ContentBlock::Empty => None, + ContentBlock::Markdown { markdown } => Some(markdown), } } } #[derive(Debug)] pub enum ToolCallContent { - Markdown { markdown: Entity }, + ContentBlock { content: ContentBlock }, Diff { diff: Diff }, } @@ -338,8 +345,8 @@ impl ToolCallContent { cx: &mut App, ) -> Self { match content { - acp::ToolCallContent::Markdown { markdown } => Self::Markdown { - markdown: cx.new(|cx| Markdown::new_text(markdown.into(), cx)), + acp::ToolCallContent::ContentBlock { content } => Self::ContentBlock { + content: ContentBlock::new(content, &language_registry, cx), }, acp::ToolCallContent::Diff { diff } => Self::Diff { diff: Diff::from_acp(diff, language_registry, cx), @@ -347,9 +354,9 @@ impl ToolCallContent { } } - fn to_markdown(&self, cx: &App) -> String { + pub fn to_markdown(&self, cx: &App) -> String { match self { - Self::Markdown { markdown } => markdown.read(cx).source().to_string(), + Self::ContentBlock { content } => content.to_markdown(cx).to_string(), Self::Diff { diff } => diff.to_markdown(cx), } } @@ -520,8 +527,8 @@ pub struct AcpThread { action_log: Entity, shared_buffers: HashMap, BufferSnapshot>, send_task: Option>, - connection: Arc, - child_status: Option>>, + connection: Rc, + session_id: acp::SessionId, } pub enum AcpThreadEvent { @@ -563,10 +570,9 @@ impl Error for LoadError {} impl AcpThread { pub fn new( - connection: impl AgentConnection + 'static, - title: SharedString, - child_status: Option>>, + connection: Rc, project: Entity, + session_id: acp::SessionId, cx: &mut Context, ) -> Self { let action_log = cx.new(|_| ActionLog::new(project.clone())); @@ -576,24 +582,11 @@ impl AcpThread { shared_buffers: Default::default(), entries: Default::default(), plan: Default::default(), - title, + title: connection.name().into(), project, send_task: None, - connection: Arc::new(connection), - child_status, - } - } - - /// Send a request to the agent and wait for a response. - pub fn request( - &self, - params: R, - ) -> impl use + Future> { - let params = params.into_any(); - let result = self.connection.request_any(params); - async move { - let result = result.await?; - Ok(R::response_from_any(result)?) + connection, + session_id, } } @@ -629,15 +622,7 @@ impl AcpThread { for entry in self.entries.iter().rev() { match entry { AgentThreadEntry::UserMessage(_) => return false, - AgentThreadEntry::ToolCall(ToolCall { - status: - ToolCallStatus::Allowed { - status: acp::ToolCallStatus::Running, - .. - }, - content: Some(ToolCallContent::Diff { .. }), - .. - }) => return true, + AgentThreadEntry::ToolCall(call) if call.diffs().next().is_some() => return true, AgentThreadEntry::ToolCall(_) | AgentThreadEntry::AssistantMessage(_) => {} } } @@ -652,42 +637,37 @@ impl AcpThread { pub fn push_assistant_chunk( &mut self, - chunk: acp::AssistantMessageChunk, + chunk: acp::ContentBlock, + is_thought: bool, cx: &mut Context, ) { + let language_registry = self.project.read(cx).languages().clone(); let entries_len = self.entries.len(); if let Some(last_entry) = self.entries.last_mut() && let AgentThreadEntry::AssistantMessage(AssistantMessage { chunks }) = last_entry { cx.emit(AcpThreadEvent::EntryUpdated(entries_len - 1)); - - match (chunks.last_mut(), &chunk) { - ( - Some(AssistantMessageChunk::Text { chunk: old_chunk }), - acp::AssistantMessageChunk::Text { text: new_chunk }, - ) - | ( - Some(AssistantMessageChunk::Thought { chunk: old_chunk }), - acp::AssistantMessageChunk::Thought { thought: new_chunk }, - ) => { - old_chunk.update(cx, |old_chunk, cx| { - old_chunk.append(&new_chunk, cx); - }); + match (chunks.last_mut(), is_thought) { + (Some(AssistantMessageChunk::Message { block }), false) + | (Some(AssistantMessageChunk::Thought { block }), true) => { + block.append(chunk, &language_registry, cx) } _ => { - chunks.push(AssistantMessageChunk::from_acp( - chunk, - self.project.read(cx).languages().clone(), - cx, - )); + let block = ContentBlock::new(chunk, &language_registry, cx); + if is_thought { + chunks.push(AssistantMessageChunk::Thought { block }) + } else { + chunks.push(AssistantMessageChunk::Message { block }) + } } } } else { - let chunk = AssistantMessageChunk::from_acp( - chunk, - self.project.read(cx).languages().clone(), - cx, - ); + let block = ContentBlock::new(chunk, &language_registry, cx); + let chunk = if is_thought { + AssistantMessageChunk::Thought { block } + } else { + AssistantMessageChunk::Message { block } + }; self.push_entry( AgentThreadEntry::AssistantMessage(AssistantMessage { @@ -698,122 +678,122 @@ impl AcpThread { } } - pub fn request_new_tool_call( + pub fn update_tool_call( &mut self, - tool_call: acp::RequestToolCallConfirmationParams, + id: acp::ToolCallId, + status: acp::ToolCallStatus, + content: Option>, cx: &mut Context, - ) -> ToolCallRequest { - let (tx, rx) = oneshot::channel(); + ) -> Result<()> { + let languages = self.project.read(cx).languages().clone(); + let (ix, current_call) = self.tool_call_mut(&id).context("Tool call not found")?; - let status = ToolCallStatus::WaitingForConfirmation { - confirmation: ToolCallConfirmation::from_acp( - tool_call.confirmation, - self.project.read(cx).languages().clone(), - cx, - ), - respond_tx: tx, - }; + if let Some(content) = content { + current_call.content = content + .into_iter() + .map(|chunk| ToolCallContent::from_acp(chunk, languages.clone(), cx)) + .collect(); + } + current_call.status = ToolCallStatus::Allowed { status }; - let id = self.insert_tool_call(tool_call.tool_call, status, cx); - ToolCallRequest { id, outcome: rx } + cx.emit(AcpThreadEvent::EntryUpdated(ix)); + + Ok(()) } - pub fn request_tool_call_confirmation( - &mut self, - tool_call_id: ToolCallId, - confirmation: acp::ToolCallConfirmation, - cx: &mut Context, - ) -> Result { - let project = self.project.read(cx).languages().clone(); - let Some((idx, call)) = self.tool_call_mut(tool_call_id) else { - anyhow::bail!("Tool call not found"); - }; - - let (tx, rx) = oneshot::channel(); - - call.status = ToolCallStatus::WaitingForConfirmation { - confirmation: ToolCallConfirmation::from_acp(confirmation, project, cx), - respond_tx: tx, - }; - - cx.emit(AcpThreadEvent::EntryUpdated(idx)); - - Ok(ToolCallRequest { - id: tool_call_id, - outcome: rx, - }) - } - - pub fn push_tool_call( - &mut self, - request: acp::PushToolCallParams, - cx: &mut Context, - ) -> acp::ToolCallId { + /// Updates a tool call if id matches an existing entry, otherwise inserts a new one. + pub fn upsert_tool_call(&mut self, tool_call: acp::ToolCall, cx: &mut Context) { let status = ToolCallStatus::Allowed { - status: acp::ToolCallStatus::Running, + status: tool_call.status, }; - - self.insert_tool_call(request, status, cx) + self.upsert_tool_call_inner(tool_call, status, cx) } - fn insert_tool_call( + pub fn upsert_tool_call_inner( &mut self, - tool_call: acp::PushToolCallParams, + tool_call: acp::ToolCall, status: ToolCallStatus, cx: &mut Context, - ) -> acp::ToolCallId { + ) { let language_registry = self.project.read(cx).languages().clone(); - let id = acp::ToolCallId(self.entries.len() as u64); - let call = ToolCall { - id, - label: cx.new(|cx| { - Markdown::new( - tool_call.label.into(), - Some(language_registry.clone()), - None, - cx, - ) - }), - icon: acp_icon_to_ui_icon(tool_call.icon), - content: tool_call - .content - .map(|content| ToolCallContent::from_acp(content, language_registry, cx)), - locations: tool_call.locations, - status, - }; + let call = ToolCall::from_acp(tool_call, status, language_registry, cx); let location = call.locations.last().cloned(); + + if let Some((ix, current_call)) = self.tool_call_mut(&call.id) { + *current_call = call; + + cx.emit(AcpThreadEvent::EntryUpdated(ix)); + } else { + self.push_entry(AgentThreadEntry::ToolCall(call), cx); + } + if let Some(location) = location { self.set_project_location(location, cx) } + } - self.push_entry(AgentThreadEntry::ToolCall(call), cx); + fn tool_call_mut(&mut self, id: &acp::ToolCallId) -> Option<(usize, &mut ToolCall)> { + // The tool call we are looking for is typically the last one, or very close to the end. + // At the moment, it doesn't seem like a hashmap would be a good fit for this use case. + self.entries + .iter_mut() + .enumerate() + .rev() + .find_map(|(index, tool_call)| { + if let AgentThreadEntry::ToolCall(tool_call) = tool_call + && &tool_call.id == id + { + Some((index, tool_call)) + } else { + None + } + }) + } - id + pub fn request_tool_call_permission( + &mut self, + tool_call: acp::ToolCall, + options: Vec, + cx: &mut Context, + ) -> oneshot::Receiver { + let (tx, rx) = oneshot::channel(); + + let status = ToolCallStatus::WaitingForConfirmation { + options, + respond_tx: tx, + }; + + self.upsert_tool_call_inner(tool_call, status, cx); + rx } pub fn authorize_tool_call( &mut self, id: acp::ToolCallId, - outcome: acp::ToolCallConfirmationOutcome, + option_id: acp::PermissionOptionId, + option_kind: acp::PermissionOptionKind, cx: &mut Context, ) { - let Some((ix, call)) = self.tool_call_mut(id) else { + let Some((ix, call)) = self.tool_call_mut(&id) else { return; }; - let new_status = if outcome == acp::ToolCallConfirmationOutcome::Reject { - ToolCallStatus::Rejected - } else { - ToolCallStatus::Allowed { - status: acp::ToolCallStatus::Running, + let new_status = match option_kind { + acp::PermissionOptionKind::RejectOnce | acp::PermissionOptionKind::RejectAlways => { + ToolCallStatus::Rejected + } + acp::PermissionOptionKind::AllowOnce | acp::PermissionOptionKind::AllowAlways => { + ToolCallStatus::Allowed { + status: acp::ToolCallStatus::InProgress, + } } }; let curr_status = mem::replace(&mut call.status, new_status); if let ToolCallStatus::WaitingForConfirmation { respond_tx, .. } = curr_status { - respond_tx.send(outcome).log_err(); + respond_tx.send(option_id).log_err(); } else if cfg!(debug_assertions) { panic!("tried to authorize an already authorized tool call"); } @@ -821,70 +801,11 @@ impl AcpThread { cx.emit(AcpThreadEvent::EntryUpdated(ix)); } - pub fn update_tool_call( - &mut self, - id: acp::ToolCallId, - new_status: acp::ToolCallStatus, - new_content: Option, - cx: &mut Context, - ) -> Result<()> { - let language_registry = self.project.read(cx).languages().clone(); - let (ix, call) = self.tool_call_mut(id).context("Entry not found")?; - - if let Some(new_content) = new_content { - call.content = Some(ToolCallContent::from_acp( - new_content, - language_registry, - cx, - )); - } - - match &mut call.status { - ToolCallStatus::Allowed { status } => { - *status = new_status; - } - ToolCallStatus::WaitingForConfirmation { .. } => { - anyhow::bail!("Tool call hasn't been authorized yet") - } - ToolCallStatus::Rejected => { - anyhow::bail!("Tool call was rejected and therefore can't be updated") - } - ToolCallStatus::Canceled => { - call.status = ToolCallStatus::Allowed { status: new_status }; - } - } - - let location = call.locations.last().cloned(); - if let Some(location) = location { - self.set_project_location(location, cx) - } - - cx.emit(AcpThreadEvent::EntryUpdated(ix)); - Ok(()) - } - - fn tool_call_mut(&mut self, id: acp::ToolCallId) -> Option<(usize, &mut ToolCall)> { - let entry = self.entries.get_mut(id.0 as usize); - debug_assert!( - entry.is_some(), - "We shouldn't give out ids to entries that don't exist" - ); - match entry { - Some(AgentThreadEntry::ToolCall(call)) if call.id == id => Some((id.0 as usize, call)), - _ => { - if cfg!(debug_assertions) { - panic!("entry is not a tool call"); - } - None - } - } - } - pub fn plan(&self) -> &Plan { &self.plan } - pub fn update_plan(&mut self, request: acp::UpdatePlanParams, cx: &mut Context) { + pub fn update_plan(&mut self, request: acp::Plan, cx: &mut Context) { self.plan = Plan { entries: request .entries @@ -896,14 +817,14 @@ impl AcpThread { cx.notify(); } - pub fn clear_completed_plan_entries(&mut self, cx: &mut Context) { + fn clear_completed_plan_entries(&mut self, cx: &mut Context) { self.plan .entries .retain(|entry| !matches!(entry.status, acp::PlanEntryStatus::Completed)); cx.notify(); } - pub fn set_project_location(&self, location: ToolCallLocation, cx: &mut Context) { + pub fn set_project_location(&self, location: acp::ToolCallLocation, cx: &mut Context) { self.project.update(cx, |project, cx| { let Some(path) = project.project_path_for_absolute_path(&location.path, cx) else { return; @@ -953,14 +874,8 @@ impl AcpThread { false } - pub fn initialize(&self) -> impl use<> + Future> { - self.request(acp::InitializeParams { - protocol_version: ProtocolVersion::latest(), - }) - } - - pub fn authenticate(&self) -> impl use<> + Future> { - self.request(acp::AuthenticateParams) + pub fn authenticate(&self, cx: &mut App) -> impl use<> + Future> { + self.connection.authenticate(cx) } #[cfg(any(test, feature = "test-support"))] @@ -968,39 +883,50 @@ impl AcpThread { &mut self, message: &str, cx: &mut Context, - ) -> BoxFuture<'static, Result<(), acp::Error>> { + ) -> BoxFuture<'static, Result<()>> { self.send( - acp::SendUserMessageParams { - chunks: vec![acp::UserMessageChunk::Text { - text: message.to_string(), - }], - }, + vec![acp::ContentBlock::Text(acp::TextContent { + text: message.to_string(), + annotations: None, + })], cx, ) } pub fn send( &mut self, - message: acp::SendUserMessageParams, + message: Vec, cx: &mut Context, - ) -> BoxFuture<'static, Result<(), acp::Error>> { - self.push_entry( - AgentThreadEntry::UserMessage(UserMessage::from_acp( - &message, - self.project.read(cx).languages().clone(), - cx, - )), + ) -> BoxFuture<'static, Result<()>> { + let block = ContentBlock::new_combined( + message.clone(), + self.project.read(cx).languages().clone(), cx, ); + self.push_entry( + AgentThreadEntry::UserMessage(UserMessage { content: block }), + cx, + ); + self.clear_completed_plan_entries(cx); let (tx, rx) = oneshot::channel(); - let cancel = self.cancel(cx); + let cancel_task = self.cancel(cx); self.send_task = Some(cx.spawn(async move |this, cx| { async { - cancel.await.log_err(); + cancel_task.await; - let result = this.update(cx, |this, _| this.request(message))?.await; + let result = this + .update(cx, |this, cx| { + this.connection.prompt( + acp::PromptToolArguments { + prompt: message, + session_id: this.session_id.clone(), + }, + cx, + ) + })? + .await; tx.send(result).log_err(); this.update(cx, |this, _cx| this.send_task.take())?; anyhow::Ok(()) @@ -1018,48 +944,38 @@ impl AcpThread { .boxed() } - pub fn cancel(&mut self, cx: &mut Context) -> Task> { - if self.send_task.take().is_some() { - let request = self.request(acp::CancelSendMessageParams); - cx.spawn(async move |this, cx| { - request.await?; - this.update(cx, |this, _cx| { - for entry in this.entries.iter_mut() { - if let AgentThreadEntry::ToolCall(call) = entry { - let cancel = matches!( - call.status, - ToolCallStatus::WaitingForConfirmation { .. } - | ToolCallStatus::Allowed { - status: acp::ToolCallStatus::Running - } - ); + pub fn cancel(&mut self, cx: &mut Context) -> Task<()> { + let Some(send_task) = self.send_task.take() else { + return Task::ready(()); + }; - if cancel { - let curr_status = - mem::replace(&mut call.status, ToolCallStatus::Canceled); - - if let ToolCallStatus::WaitingForConfirmation { - respond_tx, .. - } = curr_status - { - respond_tx - .send(acp::ToolCallConfirmationOutcome::Cancel) - .ok(); - } - } + for entry in self.entries.iter_mut() { + if let AgentThreadEntry::ToolCall(call) = entry { + let cancel = matches!( + call.status, + ToolCallStatus::WaitingForConfirmation { .. } + | ToolCallStatus::Allowed { + status: acp::ToolCallStatus::InProgress } - } - })?; - Ok(()) - }) - } else { - Task::ready(Ok(())) + ); + + if cancel { + call.status = ToolCallStatus::Canceled; + } + } } + + self.connection.cancel(&self.session_id, cx); + + // Wait for the send task to complete + cx.foreground_executor().spawn(send_task) } pub fn read_text_file( &self, - request: acp::ReadTextFileParams, + path: PathBuf, + line: Option, + limit: Option, reuse_shared_snapshot: bool, cx: &mut Context, ) -> Task> { @@ -1068,7 +984,7 @@ impl AcpThread { cx.spawn(async move |this, cx| { let load = project.update(cx, |project, cx| { let path = project - .project_path_for_absolute_path(&request.path, cx) + .project_path_for_absolute_path(&path, cx) .context("invalid path")?; anyhow::Ok(project.open_buffer(path, cx)) }); @@ -1094,7 +1010,7 @@ impl AcpThread { let position = buffer .read(cx) .snapshot() - .anchor_before(Point::new(request.line.unwrap_or_default(), 0)); + .anchor_before(Point::new(line.unwrap_or_default(), 0)); project.set_agent_location( Some(AgentLocation { buffer: buffer.downgrade(), @@ -1110,11 +1026,11 @@ impl AcpThread { this.update(cx, |this, _| { let text = snapshot.text(); this.shared_buffers.insert(buffer.clone(), snapshot); - if request.line.is_none() && request.limit.is_none() { + if line.is_none() && limit.is_none() { return Ok(text); } - let limit = request.limit.unwrap_or(u32::MAX) as usize; - let Some(line) = request.line else { + let limit = limit.unwrap_or(u32::MAX) as usize; + let Some(line) = line else { return Ok(text.lines().take(limit).collect::()); }; @@ -1199,197 +1115,15 @@ impl AcpThread { }) } - pub fn child_status(&mut self) -> Option>> { - self.child_status.take() - } - pub fn to_markdown(&self, cx: &App) -> String { self.entries.iter().map(|e| e.to_markdown(cx)).collect() } } -#[derive(Clone)] -pub struct AcpClientDelegate { - thread: WeakEntity, - cx: AsyncApp, - // sent_buffer_versions: HashMap, HashMap>, -} - -impl AcpClientDelegate { - pub fn new(thread: WeakEntity, cx: AsyncApp) -> Self { - Self { thread, cx } - } - - pub async fn clear_completed_plan_entries(&self) -> Result<()> { - let cx = &mut self.cx.clone(); - cx.update(|cx| { - self.thread - .update(cx, |thread, cx| thread.clear_completed_plan_entries(cx)) - })? - .context("Failed to update thread")?; - - Ok(()) - } - - pub async fn request_existing_tool_call_confirmation( - &self, - tool_call_id: ToolCallId, - confirmation: acp::ToolCallConfirmation, - ) -> Result { - let cx = &mut self.cx.clone(); - let ToolCallRequest { outcome, .. } = cx - .update(|cx| { - self.thread.update(cx, |thread, cx| { - thread.request_tool_call_confirmation(tool_call_id, confirmation, cx) - }) - })? - .context("Failed to update thread")??; - - Ok(outcome.await?) - } - - pub async fn read_text_file_reusing_snapshot( - &self, - request: acp::ReadTextFileParams, - ) -> Result { - let content = self - .cx - .update(|cx| { - self.thread - .update(cx, |thread, cx| thread.read_text_file(request, true, cx)) - })? - .context("Failed to update thread")? - .await?; - Ok(acp::ReadTextFileResponse { content }) - } -} - -impl acp::Client for AcpClientDelegate { - async fn stream_assistant_message_chunk( - &self, - params: acp::StreamAssistantMessageChunkParams, - ) -> Result<(), acp::Error> { - let cx = &mut self.cx.clone(); - - cx.update(|cx| { - self.thread - .update(cx, |thread, cx| { - thread.push_assistant_chunk(params.chunk, cx) - }) - .ok(); - })?; - - Ok(()) - } - - async fn request_tool_call_confirmation( - &self, - request: acp::RequestToolCallConfirmationParams, - ) -> Result { - let cx = &mut self.cx.clone(); - let ToolCallRequest { id, outcome } = cx - .update(|cx| { - self.thread - .update(cx, |thread, cx| thread.request_new_tool_call(request, cx)) - })? - .context("Failed to update thread")?; - - Ok(acp::RequestToolCallConfirmationResponse { - id, - outcome: outcome.await.map_err(acp::Error::into_internal_error)?, - }) - } - - async fn push_tool_call( - &self, - request: acp::PushToolCallParams, - ) -> Result { - let cx = &mut self.cx.clone(); - let id = cx - .update(|cx| { - self.thread - .update(cx, |thread, cx| thread.push_tool_call(request, cx)) - })? - .context("Failed to update thread")?; - - Ok(acp::PushToolCallResponse { id }) - } - - async fn update_tool_call(&self, request: acp::UpdateToolCallParams) -> Result<(), acp::Error> { - let cx = &mut self.cx.clone(); - - cx.update(|cx| { - self.thread.update(cx, |thread, cx| { - thread.update_tool_call(request.tool_call_id, request.status, request.content, cx) - }) - })? - .context("Failed to update thread")??; - - Ok(()) - } - - async fn update_plan(&self, request: acp::UpdatePlanParams) -> Result<(), acp::Error> { - let cx = &mut self.cx.clone(); - - cx.update(|cx| { - self.thread - .update(cx, |thread, cx| thread.update_plan(request, cx)) - })? - .context("Failed to update thread")?; - - Ok(()) - } - - async fn read_text_file( - &self, - request: acp::ReadTextFileParams, - ) -> Result { - let content = self - .cx - .update(|cx| { - self.thread - .update(cx, |thread, cx| thread.read_text_file(request, false, cx)) - })? - .context("Failed to update thread")? - .await?; - Ok(acp::ReadTextFileResponse { content }) - } - - async fn write_text_file(&self, request: acp::WriteTextFileParams) -> Result<(), acp::Error> { - self.cx - .update(|cx| { - self.thread.update(cx, |thread, cx| { - thread.write_text_file(request.path, request.content, cx) - }) - })? - .context("Failed to update thread")? - .await?; - - Ok(()) - } -} - -fn acp_icon_to_ui_icon(icon: acp::Icon) -> IconName { - match icon { - acp::Icon::FileSearch => IconName::ToolSearch, - acp::Icon::Folder => IconName::ToolFolder, - acp::Icon::Globe => IconName::ToolWeb, - acp::Icon::Hammer => IconName::ToolHammer, - acp::Icon::LightBulb => IconName::ToolBulb, - acp::Icon::Pencil => IconName::ToolPencil, - acp::Icon::Regex => IconName::ToolRegex, - acp::Icon::Terminal => IconName::ToolTerminal, - } -} - -pub struct ToolCallRequest { - pub id: acp::ToolCallId, - pub outcome: oneshot::Receiver, -} - #[cfg(test)] mod tests { use super::*; + use agentic_coding_protocol as acp_old; use anyhow::anyhow; use async_pipe::{PipeReader, PipeWriter}; use futures::{channel::mpsc, future::LocalBoxFuture, select}; @@ -1400,6 +1134,7 @@ mod tests { use settings::SettingsStore; use smol::{future::BoxedLocal, stream::StreamExt as _}; use std::{cell::RefCell, rc::Rc, time::Duration}; + use util::path; fn init_test(cx: &mut TestAppContext) { @@ -1424,8 +1159,8 @@ mod tests { fake_server.on_user_message(move |_, server, mut cx| async move { server .update(&mut cx, |server, _| { - server.send_to_zed(acp::StreamAssistantMessageChunkParams { - chunk: acp::AssistantMessageChunk::Thought { + server.send_to_zed(acp_old::StreamAssistantMessageChunkParams { + chunk: acp_old::AssistantMessageChunk::Thought { thought: "Thinking ".into(), }, }) @@ -1434,8 +1169,8 @@ mod tests { .unwrap(); server .update(&mut cx, |server, _| { - server.send_to_zed(acp::StreamAssistantMessageChunkParams { - chunk: acp::AssistantMessageChunk::Thought { + server.send_to_zed(acp_old::StreamAssistantMessageChunkParams { + chunk: acp_old::AssistantMessageChunk::Thought { thought: "hard!".into(), }, }) @@ -1501,7 +1236,7 @@ mod tests { async move { let content = server .update(&mut cx, |server, _| { - server.send_to_zed(acp::ReadTextFileParams { + server.send_to_zed(acp_old::ReadTextFileParams { path: path!("/tmp/foo").into(), line: None, limit: None, @@ -1513,7 +1248,7 @@ mod tests { read_file_tx.take().unwrap().send(()).unwrap(); server .update(&mut cx, |server, _| { - server.send_to_zed(acp::WriteTextFileParams { + server.send_to_zed(acp_old::WriteTextFileParams { path: path!("/tmp/foo").into(), content: "one\ntwo\nthree\nfour\nfive\n".to_string(), }) @@ -1564,9 +1299,9 @@ mod tests { async move { let tool_call_result = server .update(&mut cx, |server, _| { - server.send_to_zed(acp::PushToolCallParams { + server.send_to_zed(acp_old::PushToolCallParams { label: "Fetch".to_string(), - icon: acp::Icon::Globe, + icon: acp_old::Icon::Globe, content: None, locations: vec![], }) @@ -1592,7 +1327,7 @@ mod tests { thread.entries[1], AgentThreadEntry::ToolCall(ToolCall { status: ToolCallStatus::Allowed { - status: acp::ToolCallStatus::Running, + status: acp::ToolCallStatus::InProgress, .. }, .. @@ -1602,10 +1337,7 @@ mod tests { cx.run_until_parked(); - thread - .update(cx, |thread, cx| thread.cancel(cx)) - .await - .unwrap(); + thread.update(cx, |thread, cx| thread.cancel(cx)).await; thread.read_with(cx, |thread, _| { assert!(matches!( @@ -1619,9 +1351,9 @@ mod tests { fake_server .update(cx, |fake_server, _| { - fake_server.send_to_zed(acp::UpdateToolCallParams { + fake_server.send_to_zed(acp_old::UpdateToolCallParams { tool_call_id: tool_call_id.borrow().unwrap(), - status: acp::ToolCallStatus::Finished, + status: acp_old::ToolCallStatus::Finished, content: None, }) }) @@ -1629,14 +1361,14 @@ mod tests { .unwrap(); drop(end_turn_tx); - request.await.unwrap(); + assert!(request.await.unwrap_err().to_string().contains("canceled")); thread.read_with(cx, |thread, _| { assert!(matches!( thread.entries[1], AgentThreadEntry::ToolCall(ToolCall { status: ToolCallStatus::Allowed { - status: acp::ToolCallStatus::Finished, + status: acp::ToolCallStatus::Completed, .. }, .. @@ -1681,8 +1413,10 @@ mod tests { let thread = cx.new(|cx| { let foreground_executor = cx.foreground_executor().clone(); - let (connection, io_fut) = acp::AgentConnection::connect_to_agent( - AcpClientDelegate::new(cx.entity().downgrade(), cx.to_async()), + let thread_rc = Rc::new(RefCell::new(cx.entity().downgrade())); + + let (connection, io_fut) = acp_old::AgentConnection::connect_to_agent( + OldAcpClientDelegate::new(thread_rc.clone(), cx.to_async()), stdin_tx, stdout_rx, move |fut| { @@ -1696,23 +1430,34 @@ mod tests { Ok(()) } }); - AcpThread::new(connection, "Test".into(), Some(io_task), project, cx) + let connection = OldAcpAgentConnection { + name: "test", + connection, + child_status: io_task, + }; + + AcpThread::new( + Rc::new(connection), + project, + acp::SessionId("test".into()), + cx, + ) }); let agent = cx.update(|cx| cx.new(|cx| FakeAcpServer::new(stdin_rx, stdout_tx, cx))); (thread, agent) } pub struct FakeAcpServer { - connection: acp::ClientConnection, + connection: acp_old::ClientConnection, _io_task: Task<()>, on_user_message: Option< Rc< dyn Fn( - acp::SendUserMessageParams, + acp_old::SendUserMessageParams, Entity, AsyncApp, - ) -> LocalBoxFuture<'static, Result<(), acp::Error>>, + ) -> LocalBoxFuture<'static, Result<(), acp_old::Error>>, >, >, } @@ -1721,31 +1466,38 @@ mod tests { struct FakeAgent { server: Entity, cx: AsyncApp, + cancel_tx: Rc>>>, } - impl acp::Agent for FakeAgent { + impl acp_old::Agent for FakeAgent { async fn initialize( &self, - params: acp::InitializeParams, - ) -> Result { - Ok(acp::InitializeResponse { + params: acp_old::InitializeParams, + ) -> Result { + Ok(acp_old::InitializeResponse { protocol_version: params.protocol_version, is_authenticated: true, }) } - async fn authenticate(&self) -> Result<(), acp::Error> { + async fn authenticate(&self) -> Result<(), acp_old::Error> { Ok(()) } - async fn cancel_send_message(&self) -> Result<(), acp::Error> { + async fn cancel_send_message(&self) -> Result<(), acp_old::Error> { + if let Some(cancel_tx) = self.cancel_tx.take() { + cancel_tx.send(()).log_err(); + } Ok(()) } async fn send_user_message( &self, - request: acp::SendUserMessageParams, - ) -> Result<(), acp::Error> { + request: acp_old::SendUserMessageParams, + ) -> Result<(), acp_old::Error> { + let (cancel_tx, cancel_rx) = oneshot::channel(); + self.cancel_tx.replace(Some(cancel_tx)); + let mut cx = self.cx.clone(); let handler = self .server @@ -1753,7 +1505,10 @@ mod tests { .ok() .flatten(); if let Some(handler) = handler { - handler(request, self.server.clone(), self.cx.clone()).await + select! { + _ = cancel_rx.fuse() => Err(anyhow::anyhow!("Message sending canceled").into()), + _ = handler(request, self.server.clone(), self.cx.clone()).fuse() => Ok(()), + } } else { Err(anyhow::anyhow!("No handler for on_user_message").into()) } @@ -1765,10 +1520,11 @@ mod tests { let agent = FakeAgent { server: cx.entity(), cx: cx.to_async(), + cancel_tx: Default::default(), }; let foreground_executor = cx.foreground_executor().clone(); - let (connection, io_fut) = acp::ClientConnection::connect_to_client( + let (connection, io_fut) = acp_old::ClientConnection::connect_to_client( agent.clone(), stdout, stdin, @@ -1787,10 +1543,14 @@ mod tests { fn on_user_message( &mut self, - handler: impl for<'a> Fn(acp::SendUserMessageParams, Entity, AsyncApp) -> F + handler: impl for<'a> Fn( + acp_old::SendUserMessageParams, + Entity, + AsyncApp, + ) -> F + 'static, ) where - F: Future> + 'static, + F: Future> + 'static, { self.on_user_message .replace(Rc::new(move |request, server, cx| { @@ -1798,7 +1558,7 @@ mod tests { })); } - fn send_to_zed( + fn send_to_zed( &self, message: T, ) -> BoxedLocal> { diff --git a/crates/acp_thread/src/connection.rs b/crates/acp_thread/src/connection.rs index 7c0ba4f41c..fde167da5f 100644 --- a/crates/acp_thread/src/connection.rs +++ b/crates/acp_thread/src/connection.rs @@ -1,20 +1,26 @@ -use agentic_coding_protocol as acp; +use std::{path::Path, rc::Rc}; + +use agent_client_protocol as acp; use anyhow::Result; -use futures::future::{FutureExt as _, LocalBoxFuture}; +use gpui::{AsyncApp, Entity, Task}; +use project::Project; +use ui::App; + +use crate::AcpThread; pub trait AgentConnection { - fn request_any( - &self, - params: acp::AnyAgentRequest, - ) -> LocalBoxFuture<'static, Result>; -} + fn name(&self) -> &'static str; -impl AgentConnection for acp::AgentConnection { - fn request_any( - &self, - params: acp::AnyAgentRequest, - ) -> LocalBoxFuture<'static, Result> { - let task = self.request_any(params); - async move { Ok(task.await?) }.boxed_local() - } + fn new_thread( + self: Rc, + project: Entity, + cwd: &Path, + cx: &mut AsyncApp, + ) -> Task>>; + + fn authenticate(&self, cx: &mut App) -> Task>; + + fn prompt(&self, params: acp::PromptToolArguments, cx: &mut App) -> Task>; + + fn cancel(&self, session_id: &acp::SessionId, cx: &mut App); } diff --git a/crates/acp_thread/src/old_acp_support.rs b/crates/acp_thread/src/old_acp_support.rs new file mode 100644 index 0000000000..316a5bcf25 --- /dev/null +++ b/crates/acp_thread/src/old_acp_support.rs @@ -0,0 +1,461 @@ +// Translates old acp agents into the new schema +use agent_client_protocol as acp; +use agentic_coding_protocol::{self as acp_old, AgentRequest as _}; +use anyhow::{Context as _, Result}; +use futures::channel::oneshot; +use gpui::{AppContext as _, AsyncApp, Entity, Task, WeakEntity}; +use project::Project; +use std::{cell::RefCell, error::Error, fmt, path::Path, rc::Rc}; +use ui::App; + +use crate::{AcpThread, AcpThreadEvent, AgentConnection, ToolCallContent, ToolCallStatus}; + +#[derive(Clone)] +pub struct OldAcpClientDelegate { + thread: Rc>>, + cx: AsyncApp, + next_tool_call_id: Rc>, + // sent_buffer_versions: HashMap, HashMap>, +} + +impl OldAcpClientDelegate { + pub fn new(thread: Rc>>, cx: AsyncApp) -> Self { + Self { + thread, + cx, + next_tool_call_id: Rc::new(RefCell::new(0)), + } + } +} + +impl acp_old::Client for OldAcpClientDelegate { + async fn stream_assistant_message_chunk( + &self, + params: acp_old::StreamAssistantMessageChunkParams, + ) -> Result<(), acp_old::Error> { + let cx = &mut self.cx.clone(); + + cx.update(|cx| { + self.thread + .borrow() + .update(cx, |thread, cx| match params.chunk { + acp_old::AssistantMessageChunk::Text { text } => { + thread.push_assistant_chunk(text.into(), false, cx) + } + acp_old::AssistantMessageChunk::Thought { thought } => { + thread.push_assistant_chunk(thought.into(), true, cx) + } + }) + .ok(); + })?; + + Ok(()) + } + + async fn request_tool_call_confirmation( + &self, + request: acp_old::RequestToolCallConfirmationParams, + ) -> Result { + let cx = &mut self.cx.clone(); + + let old_acp_id = *self.next_tool_call_id.borrow() + 1; + self.next_tool_call_id.replace(old_acp_id); + + let tool_call = into_new_tool_call( + acp::ToolCallId(old_acp_id.to_string().into()), + request.tool_call, + ); + + let mut options = match request.confirmation { + acp_old::ToolCallConfirmation::Edit { .. } => vec![( + acp_old::ToolCallConfirmationOutcome::AlwaysAllow, + acp::PermissionOptionKind::AllowAlways, + "Always Allow Edits".to_string(), + )], + acp_old::ToolCallConfirmation::Execute { root_command, .. } => vec![( + acp_old::ToolCallConfirmationOutcome::AlwaysAllow, + acp::PermissionOptionKind::AllowAlways, + format!("Always Allow {}", root_command), + )], + acp_old::ToolCallConfirmation::Mcp { + server_name, + tool_name, + .. + } => vec![ + ( + acp_old::ToolCallConfirmationOutcome::AlwaysAllowMcpServer, + acp::PermissionOptionKind::AllowAlways, + format!("Always Allow {}", server_name), + ), + ( + acp_old::ToolCallConfirmationOutcome::AlwaysAllowTool, + acp::PermissionOptionKind::AllowAlways, + format!("Always Allow {}", tool_name), + ), + ], + acp_old::ToolCallConfirmation::Fetch { .. } => vec![( + acp_old::ToolCallConfirmationOutcome::AlwaysAllow, + acp::PermissionOptionKind::AllowAlways, + "Always Allow".to_string(), + )], + acp_old::ToolCallConfirmation::Other { .. } => vec![( + acp_old::ToolCallConfirmationOutcome::AlwaysAllow, + acp::PermissionOptionKind::AllowAlways, + "Always Allow".to_string(), + )], + }; + + options.extend([ + ( + acp_old::ToolCallConfirmationOutcome::Allow, + acp::PermissionOptionKind::AllowOnce, + "Allow".to_string(), + ), + ( + acp_old::ToolCallConfirmationOutcome::Reject, + acp::PermissionOptionKind::RejectOnce, + "Reject".to_string(), + ), + ]); + + let mut outcomes = Vec::with_capacity(options.len()); + let mut acp_options = Vec::with_capacity(options.len()); + + for (index, (outcome, kind, label)) in options.into_iter().enumerate() { + outcomes.push(outcome); + acp_options.push(acp::PermissionOption { + id: acp::PermissionOptionId(index.to_string().into()), + label, + kind, + }) + } + + let response = cx + .update(|cx| { + self.thread.borrow().update(cx, |thread, cx| { + thread.request_tool_call_permission(tool_call, acp_options, cx) + }) + })? + .context("Failed to update thread")? + .await; + + let outcome = match response { + Ok(option_id) => outcomes[option_id.0.parse::().unwrap_or(0)], + Err(oneshot::Canceled) => acp_old::ToolCallConfirmationOutcome::Cancel, + }; + + Ok(acp_old::RequestToolCallConfirmationResponse { + id: acp_old::ToolCallId(old_acp_id), + outcome: outcome, + }) + } + + async fn push_tool_call( + &self, + request: acp_old::PushToolCallParams, + ) -> Result { + let cx = &mut self.cx.clone(); + + let old_acp_id = *self.next_tool_call_id.borrow() + 1; + self.next_tool_call_id.replace(old_acp_id); + + cx.update(|cx| { + self.thread.borrow().update(cx, |thread, cx| { + thread.upsert_tool_call( + into_new_tool_call(acp::ToolCallId(old_acp_id.to_string().into()), request), + cx, + ) + }) + })? + .context("Failed to update thread")?; + + Ok(acp_old::PushToolCallResponse { + id: acp_old::ToolCallId(old_acp_id), + }) + } + + async fn update_tool_call( + &self, + request: acp_old::UpdateToolCallParams, + ) -> Result<(), acp_old::Error> { + let cx = &mut self.cx.clone(); + + cx.update(|cx| { + self.thread.borrow().update(cx, |thread, cx| { + let languages = thread.project.read(cx).languages().clone(); + + if let Some((ix, tool_call)) = thread + .tool_call_mut(&acp::ToolCallId(request.tool_call_id.0.to_string().into())) + { + tool_call.status = ToolCallStatus::Allowed { + status: into_new_tool_call_status(request.status), + }; + tool_call.content = request + .content + .into_iter() + .map(|content| { + ToolCallContent::from_acp( + into_new_tool_call_content(content), + languages.clone(), + cx, + ) + }) + .collect(); + + cx.emit(AcpThreadEvent::EntryUpdated(ix)); + anyhow::Ok(()) + } else { + anyhow::bail!("Tool call not found") + } + }) + })? + .context("Failed to update thread")??; + + Ok(()) + } + + async fn update_plan(&self, request: acp_old::UpdatePlanParams) -> Result<(), acp_old::Error> { + let cx = &mut self.cx.clone(); + + cx.update(|cx| { + self.thread.borrow().update(cx, |thread, cx| { + thread.update_plan( + acp::Plan { + entries: request + .entries + .into_iter() + .map(into_new_plan_entry) + .collect(), + }, + cx, + ) + }) + })? + .context("Failed to update thread")?; + + Ok(()) + } + + async fn read_text_file( + &self, + acp_old::ReadTextFileParams { path, line, limit }: acp_old::ReadTextFileParams, + ) -> Result { + let content = self + .cx + .update(|cx| { + self.thread.borrow().update(cx, |thread, cx| { + thread.read_text_file(path, line, limit, false, cx) + }) + })? + .context("Failed to update thread")? + .await?; + Ok(acp_old::ReadTextFileResponse { content }) + } + + async fn write_text_file( + &self, + acp_old::WriteTextFileParams { path, content }: acp_old::WriteTextFileParams, + ) -> Result<(), acp_old::Error> { + self.cx + .update(|cx| { + self.thread + .borrow() + .update(cx, |thread, cx| thread.write_text_file(path, content, cx)) + })? + .context("Failed to update thread")? + .await?; + + Ok(()) + } +} + +fn into_new_tool_call(id: acp::ToolCallId, request: acp_old::PushToolCallParams) -> acp::ToolCall { + acp::ToolCall { + id: id, + label: request.label, + kind: acp_kind_from_old_icon(request.icon), + status: acp::ToolCallStatus::InProgress, + content: request + .content + .into_iter() + .map(into_new_tool_call_content) + .collect(), + locations: request + .locations + .into_iter() + .map(into_new_tool_call_location) + .collect(), + } +} + +fn acp_kind_from_old_icon(icon: acp_old::Icon) -> acp::ToolKind { + match icon { + acp_old::Icon::FileSearch => acp::ToolKind::Search, + acp_old::Icon::Folder => acp::ToolKind::Search, + acp_old::Icon::Globe => acp::ToolKind::Search, + acp_old::Icon::Hammer => acp::ToolKind::Other, + acp_old::Icon::LightBulb => acp::ToolKind::Think, + acp_old::Icon::Pencil => acp::ToolKind::Edit, + acp_old::Icon::Regex => acp::ToolKind::Search, + acp_old::Icon::Terminal => acp::ToolKind::Execute, + } +} + +fn into_new_tool_call_status(status: acp_old::ToolCallStatus) -> acp::ToolCallStatus { + match status { + acp_old::ToolCallStatus::Running => acp::ToolCallStatus::InProgress, + acp_old::ToolCallStatus::Finished => acp::ToolCallStatus::Completed, + acp_old::ToolCallStatus::Error => acp::ToolCallStatus::Failed, + } +} + +fn into_new_tool_call_content(content: acp_old::ToolCallContent) -> acp::ToolCallContent { + match content { + acp_old::ToolCallContent::Markdown { markdown } => acp::ToolCallContent::ContentBlock { + content: acp::ContentBlock::Text(acp::TextContent { + annotations: None, + text: markdown, + }), + }, + acp_old::ToolCallContent::Diff { diff } => acp::ToolCallContent::Diff { + diff: into_new_diff(diff), + }, + } +} + +fn into_new_diff(diff: acp_old::Diff) -> acp::Diff { + acp::Diff { + path: diff.path, + old_text: diff.old_text, + new_text: diff.new_text, + } +} + +fn into_new_tool_call_location(location: acp_old::ToolCallLocation) -> acp::ToolCallLocation { + acp::ToolCallLocation { + path: location.path, + line: location.line, + } +} + +fn into_new_plan_entry(entry: acp_old::PlanEntry) -> acp::PlanEntry { + acp::PlanEntry { + content: entry.content, + priority: into_new_plan_priority(entry.priority), + status: into_new_plan_status(entry.status), + } +} + +fn into_new_plan_priority(priority: acp_old::PlanEntryPriority) -> acp::PlanEntryPriority { + match priority { + acp_old::PlanEntryPriority::Low => acp::PlanEntryPriority::Low, + acp_old::PlanEntryPriority::Medium => acp::PlanEntryPriority::Medium, + acp_old::PlanEntryPriority::High => acp::PlanEntryPriority::High, + } +} + +fn into_new_plan_status(status: acp_old::PlanEntryStatus) -> acp::PlanEntryStatus { + match status { + acp_old::PlanEntryStatus::Pending => acp::PlanEntryStatus::Pending, + acp_old::PlanEntryStatus::InProgress => acp::PlanEntryStatus::InProgress, + acp_old::PlanEntryStatus::Completed => acp::PlanEntryStatus::Completed, + } +} + +#[derive(Debug)] +pub struct Unauthenticated; + +impl Error for Unauthenticated {} +impl fmt::Display for Unauthenticated { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "Unauthenticated") + } +} + +pub struct OldAcpAgentConnection { + pub name: &'static str, + pub connection: acp_old::AgentConnection, + pub child_status: Task>, +} + +impl AgentConnection for OldAcpAgentConnection { + fn name(&self) -> &'static str { + self.name + } + + fn new_thread( + self: Rc, + project: Entity, + _cwd: &Path, + cx: &mut AsyncApp, + ) -> Task>> { + let task = self.connection.request_any( + acp_old::InitializeParams { + protocol_version: acp_old::ProtocolVersion::latest(), + } + .into_any(), + ); + cx.spawn(async move |cx| { + let result = task.await?; + let result = acp_old::InitializeParams::response_from_any(result)?; + + if !result.is_authenticated { + anyhow::bail!(Unauthenticated) + } + + cx.update(|cx| { + let thread = cx.new(|cx| { + let session_id = acp::SessionId("acp-old-no-id".into()); + AcpThread::new(self.clone(), project, session_id, cx) + }); + thread + }) + }) + } + + fn authenticate(&self, cx: &mut App) -> Task> { + let task = self + .connection + .request_any(acp_old::AuthenticateParams.into_any()); + cx.foreground_executor().spawn(async move { + task.await?; + Ok(()) + }) + } + + fn prompt(&self, params: acp::PromptToolArguments, cx: &mut App) -> Task> { + let chunks = params + .prompt + .into_iter() + .filter_map(|block| match block { + acp::ContentBlock::Text(text) => { + Some(acp_old::UserMessageChunk::Text { text: text.text }) + } + acp::ContentBlock::ResourceLink(link) => Some(acp_old::UserMessageChunk::Path { + path: link.uri.into(), + }), + _ => None, + }) + .collect(); + + let task = self + .connection + .request_any(acp_old::SendUserMessageParams { chunks }.into_any()); + cx.foreground_executor().spawn(async move { + task.await?; + anyhow::Ok(()) + }) + } + + fn cancel(&self, _session_id: &acp::SessionId, cx: &mut App) { + let task = self + .connection + .request_any(acp_old::CancelSendMessageParams.into_any()); + cx.foreground_executor() + .spawn(async move { + task.await?; + anyhow::Ok(()) + }) + .detach_and_log_err(cx) + } +} diff --git a/crates/agent_servers/Cargo.toml b/crates/agent_servers/Cargo.toml index 4714245b94..4371f7684d 100644 --- a/crates/agent_servers/Cargo.toml +++ b/crates/agent_servers/Cargo.toml @@ -18,6 +18,7 @@ doctest = false [dependencies] acp_thread.workspace = true +agent-client-protocol.workspace = true agentic-coding-protocol.workspace = true anyhow.workspace = true collections.workspace = true diff --git a/crates/agent_servers/src/agent_servers.rs b/crates/agent_servers/src/agent_servers.rs index 6d9c77f296..660f61f907 100644 --- a/crates/agent_servers/src/agent_servers.rs +++ b/crates/agent_servers/src/agent_servers.rs @@ -1,7 +1,6 @@ mod claude; mod gemini; mod settings; -mod stdio_agent_server; #[cfg(test)] mod e2e_tests; @@ -9,9 +8,8 @@ mod e2e_tests; pub use claude::*; pub use gemini::*; pub use settings::*; -pub use stdio_agent_server::*; -use acp_thread::AcpThread; +use acp_thread::AgentConnection; use anyhow::Result; use collections::HashMap; use gpui::{App, AsyncApp, Entity, SharedString, Task}; @@ -20,6 +18,7 @@ use schemars::JsonSchema; use serde::{Deserialize, Serialize}; use std::{ path::{Path, PathBuf}, + rc::Rc, sync::Arc, }; use util::ResultExt as _; @@ -33,14 +32,14 @@ pub trait AgentServer: Send { fn name(&self) -> &'static str; fn empty_state_headline(&self) -> &'static str; fn empty_state_message(&self) -> &'static str; - fn supports_always_allow(&self) -> bool; - fn new_thread( + fn connect( &self, + // these will go away when old_acp is fully removed root_dir: &Path, project: &Entity, cx: &mut App, - ) -> Task>>; + ) -> Task>>; } impl std::fmt::Debug for AgentServerCommand { diff --git a/crates/agent_servers/src/claude.rs b/crates/agent_servers/src/claude.rs index 835efbd655..5f35b4af73 100644 --- a/crates/agent_servers/src/claude.rs +++ b/crates/agent_servers/src/claude.rs @@ -1,5 +1,5 @@ mod mcp_server; -mod tools; +pub mod tools; use collections::HashMap; use project::Project; @@ -12,28 +12,24 @@ use std::pin::pin; use std::rc::Rc; use uuid::Uuid; -use agentic_coding_protocol::{ - self as acp, AnyAgentRequest, AnyAgentResult, Client, ProtocolVersion, - StreamAssistantMessageChunkParams, ToolCallContent, UpdateToolCallParams, -}; +use agent_client_protocol as acp; use anyhow::{Result, anyhow}; use futures::channel::oneshot; -use futures::future::LocalBoxFuture; -use futures::{AsyncBufReadExt, AsyncWriteExt, SinkExt}; +use futures::{AsyncBufReadExt, AsyncWriteExt}; use futures::{ AsyncRead, AsyncWrite, FutureExt, StreamExt, channel::mpsc::{self, UnboundedReceiver, UnboundedSender}, io::BufReader, select_biased, }; -use gpui::{App, AppContext, Entity, Task}; +use gpui::{App, AppContext, AsyncApp, Entity, Task, WeakEntity}; use serde::{Deserialize, Serialize}; use util::ResultExt; -use crate::claude::mcp_server::ClaudeMcpServer; +use crate::claude::mcp_server::{ClaudeZedMcpServer, McpConfig}; use crate::claude::tools::ClaudeTool; use crate::{AgentServer, AgentServerCommand, AllAgentServersSettings}; -use acp_thread::{AcpClientDelegate, AcpThread, AgentConnection}; +use acp_thread::{AcpThread, AgentConnection}; #[derive(Clone)] pub struct ClaudeCode; @@ -55,29 +51,57 @@ impl AgentServer for ClaudeCode { ui::IconName::AiClaude } - fn supports_always_allow(&self) -> bool { - false + fn connect( + &self, + _root_dir: &Path, + _project: &Entity, + _cx: &mut App, + ) -> Task>> { + let connection = ClaudeAgentConnection { + sessions: Default::default(), + }; + + Task::ready(Ok(Rc::new(connection) as _)) + } +} + +#[cfg(unix)] +fn send_interrupt(pid: libc::pid_t) -> anyhow::Result<()> { + let pid = nix::unistd::Pid::from_raw(pid); + + nix::sys::signal::kill(pid, nix::sys::signal::SIGINT) + .map_err(|e| anyhow!("Failed to interrupt process: {}", e)) +} + +#[cfg(windows)] +fn send_interrupt(_pid: i32) -> anyhow::Result<()> { + panic!("Cancel not implemented on Windows") +} + +struct ClaudeAgentConnection { + sessions: Rc>>, +} + +impl AgentConnection for ClaudeAgentConnection { + fn name(&self) -> &'static str { + ClaudeCode.name() } fn new_thread( - &self, - root_dir: &Path, - project: &Entity, - cx: &mut App, + self: Rc, + project: Entity, + cwd: &Path, + cx: &mut AsyncApp, ) -> Task>> { - let project = project.clone(); - let root_dir = root_dir.to_path_buf(); - let title = self.name().into(); + let cwd = cwd.to_owned(); cx.spawn(async move |cx| { - let (mut delegate_tx, delegate_rx) = watch::channel(None); - let tool_id_map = Rc::new(RefCell::new(HashMap::default())); - - let mcp_server = ClaudeMcpServer::new(delegate_rx, tool_id_map.clone(), cx).await?; + let (mut thread_tx, thread_rx) = watch::channel(WeakEntity::new_invalid()); + let permission_mcp_server = ClaudeZedMcpServer::new(thread_rx.clone(), cx).await?; let mut mcp_servers = HashMap::default(); mcp_servers.insert( mcp_server::SERVER_NAME.to_string(), - mcp_server.server_config()?, + permission_mcp_server.server_config()?, ); let mcp_config = McpConfig { mcp_servers }; @@ -104,177 +128,180 @@ impl AgentServer for ClaudeCode { let (outgoing_tx, outgoing_rx) = mpsc::unbounded(); let (cancel_tx, mut cancel_rx) = mpsc::unbounded::>>(); - let session_id = Uuid::new_v4(); + let session_id = acp::SessionId(Uuid::new_v4().to_string().into()); log::trace!("Starting session with id: {}", session_id); - cx.background_spawn(async move { - let mut outgoing_rx = Some(outgoing_rx); - let mut mode = ClaudeSessionMode::Start; + cx.background_spawn({ + let session_id = session_id.clone(); + async move { + let mut outgoing_rx = Some(outgoing_rx); + let mut mode = ClaudeSessionMode::Start; - loop { - let mut child = - spawn_claude(&command, mode, session_id, &mcp_config_path, &root_dir) - .await?; - mode = ClaudeSessionMode::Resume; - - let pid = child.id(); - log::trace!("Spawned (pid: {})", pid); - - let mut io_fut = pin!( - ClaudeAgentConnection::handle_io( - outgoing_rx.take().unwrap(), - incoming_message_tx.clone(), - child.stdin.take().unwrap(), - child.stdout.take().unwrap(), + loop { + let mut child = spawn_claude( + &command, + mode, + session_id.clone(), + &mcp_config_path, + &cwd, ) - .fuse() - ); + .await?; + mode = ClaudeSessionMode::Resume; - select_biased! { - done_tx = cancel_rx.next() => { - if let Some(done_tx) = done_tx { - log::trace!("Interrupted (pid: {})", pid); - let result = send_interrupt(pid as i32); - outgoing_rx.replace(io_fut.await?); - done_tx.send(result).log_err(); - continue; + let pid = child.id(); + log::trace!("Spawned (pid: {})", pid); + + let mut io_fut = pin!( + ClaudeAgentSession::handle_io( + outgoing_rx.take().unwrap(), + incoming_message_tx.clone(), + child.stdin.take().unwrap(), + child.stdout.take().unwrap(), + ) + .fuse() + ); + + select_biased! { + done_tx = cancel_rx.next() => { + if let Some(done_tx) = done_tx { + log::trace!("Interrupted (pid: {})", pid); + let result = send_interrupt(pid as i32); + outgoing_rx.replace(io_fut.await?); + done_tx.send(result).log_err(); + continue; + } + } + result = io_fut => { + result?; } } - result = io_fut => { - result?; - } + + log::trace!("Stopped (pid: {})", pid); + break; } - log::trace!("Stopped (pid: {})", pid); - break; + drop(mcp_config_path); + anyhow::Ok(()) } - - drop(mcp_config_path); - anyhow::Ok(()) }) .detach(); - cx.new(|cx| { - let end_turn_tx = Rc::new(RefCell::new(None)); - let delegate = AcpClientDelegate::new(cx.entity().downgrade(), cx.to_async()); - delegate_tx.send(Some(delegate.clone())).log_err(); - - let handler_task = cx.foreground_executor().spawn({ - let end_turn_tx = end_turn_tx.clone(); - let tool_id_map = tool_id_map.clone(); - let delegate = delegate.clone(); - async move { - while let Some(message) = incoming_message_rx.next().await { - ClaudeAgentConnection::handle_message( - delegate.clone(), - message, - end_turn_tx.clone(), - tool_id_map.clone(), - ) - .await - } + let end_turn_tx = Rc::new(RefCell::new(None)); + let handler_task = cx.spawn({ + let end_turn_tx = end_turn_tx.clone(); + let thread_rx = thread_rx.clone(); + async move |cx| { + while let Some(message) = incoming_message_rx.next().await { + ClaudeAgentSession::handle_message( + thread_rx.clone(), + message, + end_turn_tx.clone(), + cx, + ) + .await } - }); + } + }); - let mut connection = ClaudeAgentConnection { - delegate, - outgoing_tx, - end_turn_tx, - cancel_tx, - session_id, - _handler_task: handler_task, - _mcp_server: None, - }; + let thread = + cx.new(|cx| AcpThread::new(self.clone(), project, session_id.clone(), cx))?; - connection._mcp_server = Some(mcp_server); - acp_thread::AcpThread::new(connection, title, None, project.clone(), cx) - }) + thread_tx.send(thread.downgrade())?; + + let session = ClaudeAgentSession { + outgoing_tx, + end_turn_tx, + cancel_tx, + _handler_task: handler_task, + _mcp_server: Some(permission_mcp_server), + }; + + self.sessions.borrow_mut().insert(session_id, session); + + Ok(thread) }) } -} -#[cfg(unix)] -fn send_interrupt(pid: libc::pid_t) -> anyhow::Result<()> { - let pid = nix::unistd::Pid::from_raw(pid); + fn authenticate(&self, _cx: &mut App) -> Task> { + Task::ready(Err(anyhow!("Authentication not supported"))) + } - nix::sys::signal::kill(pid, nix::sys::signal::SIGINT) - .map_err(|e| anyhow!("Failed to interrupt process: {}", e)) -} + fn prompt(&self, params: acp::PromptToolArguments, cx: &mut App) -> Task> { + let sessions = self.sessions.borrow(); + let Some(session) = sessions.get(¶ms.session_id) else { + return Task::ready(Err(anyhow!( + "Attempted to send message to nonexistent session {}", + params.session_id + ))); + }; -#[cfg(windows)] -fn send_interrupt(_pid: i32) -> anyhow::Result<()> { - panic!("Cancel not implemented on Windows") -} + let (tx, rx) = oneshot::channel(); + session.end_turn_tx.borrow_mut().replace(tx); -impl AgentConnection for ClaudeAgentConnection { - /// Send a request to the agent and wait for a response. - fn request_any( - &self, - params: AnyAgentRequest, - ) -> LocalBoxFuture<'static, Result> { - let delegate = self.delegate.clone(); - let end_turn_tx = self.end_turn_tx.clone(); - let outgoing_tx = self.outgoing_tx.clone(); - let mut cancel_tx = self.cancel_tx.clone(); - let session_id = self.session_id; - async move { - match params { - // todo: consider sending an empty request so we get the init response? - AnyAgentRequest::InitializeParams(_) => Ok(AnyAgentResult::InitializeResponse( - acp::InitializeResponse { - is_authenticated: true, - protocol_version: ProtocolVersion::latest(), - }, - )), - AnyAgentRequest::AuthenticateParams(_) => { - Err(anyhow!("Authentication not supported")) + let mut content = String::new(); + for chunk in params.prompt { + match chunk { + acp::ContentBlock::Text(text_content) => { + content.push_str(&text_content.text); } - AnyAgentRequest::SendUserMessageParams(message) => { - delegate.clear_completed_plan_entries().await?; - - let (tx, rx) = oneshot::channel(); - end_turn_tx.borrow_mut().replace(tx); - let mut content = String::new(); - for chunk in message.chunks { - match chunk { - agentic_coding_protocol::UserMessageChunk::Text { text } => { - content.push_str(&text) - } - agentic_coding_protocol::UserMessageChunk::Path { path } => { - content.push_str(&format!("@{path:?}")) - } - } - } - outgoing_tx.unbounded_send(SdkMessage::User { - message: Message { - role: Role::User, - content: Content::UntaggedText(content), - id: None, - model: None, - stop_reason: None, - stop_sequence: None, - usage: None, - }, - session_id: Some(session_id), - })?; - rx.await??; - Ok(AnyAgentResult::SendUserMessageResponse( - acp::SendUserMessageResponse, - )) + acp::ContentBlock::ResourceLink(resource_link) => { + content.push_str(&format!("@{}", resource_link.uri)); } - AnyAgentRequest::CancelSendMessageParams(_) => { - let (done_tx, done_rx) = oneshot::channel(); - cancel_tx.send(done_tx).await?; - done_rx.await??; - - Ok(AnyAgentResult::CancelSendMessageResponse( - acp::CancelSendMessageResponse, - )) + acp::ContentBlock::Audio(_) + | acp::ContentBlock::Image(_) + | acp::ContentBlock::Resource(_) => { + // TODO } } } - .boxed_local() + + if let Err(err) = session.outgoing_tx.unbounded_send(SdkMessage::User { + message: Message { + role: Role::User, + content: Content::UntaggedText(content), + id: None, + model: None, + stop_reason: None, + stop_sequence: None, + usage: None, + }, + session_id: Some(params.session_id.to_string()), + }) { + return Task::ready(Err(anyhow!(err))); + } + + cx.foreground_executor().spawn(async move { + rx.await??; + Ok(()) + }) + } + + fn cancel(&self, session_id: &acp::SessionId, cx: &mut App) { + let sessions = self.sessions.borrow(); + let Some(session) = sessions.get(&session_id) else { + log::warn!("Attempted to cancel nonexistent session {}", session_id); + return; + }; + + let (done_tx, done_rx) = oneshot::channel(); + if session + .cancel_tx + .unbounded_send(done_tx) + .log_err() + .is_some() + { + let end_turn_tx = session.end_turn_tx.clone(); + cx.foreground_executor() + .spawn(async move { + done_rx.await??; + if let Some(end_turn_tx) = end_turn_tx.take() { + end_turn_tx.send(Ok(())).ok(); + } + anyhow::Ok(()) + }) + .detach_and_log_err(cx); + } } } @@ -287,7 +314,7 @@ enum ClaudeSessionMode { async fn spawn_claude( command: &AgentServerCommand, mode: ClaudeSessionMode, - session_id: Uuid, + session_id: acp::SessionId, mcp_config_path: &Path, root_dir: &Path, ) -> Result { @@ -327,88 +354,103 @@ async fn spawn_claude( Ok(child) } -struct ClaudeAgentConnection { - delegate: AcpClientDelegate, - session_id: Uuid, +struct ClaudeAgentSession { outgoing_tx: UnboundedSender, end_turn_tx: Rc>>>>, cancel_tx: UnboundedSender>>, - _mcp_server: Option, + _mcp_server: Option, _handler_task: Task<()>, } -impl ClaudeAgentConnection { +impl ClaudeAgentSession { async fn handle_message( - delegate: AcpClientDelegate, + mut thread_rx: watch::Receiver>, message: SdkMessage, end_turn_tx: Rc>>>>, - tool_id_map: Rc>>, + cx: &mut AsyncApp, ) { match message { - SdkMessage::Assistant { message, .. } | SdkMessage::User { message, .. } => { + SdkMessage::Assistant { + message, + session_id: _, + } + | SdkMessage::User { + message, + session_id: _, + } => { + let Some(thread) = thread_rx + .recv() + .await + .log_err() + .and_then(|entity| entity.upgrade()) + else { + log::error!("Received an SDK message but thread is gone"); + return; + }; + for chunk in message.content.chunks() { match chunk { ContentChunk::Text { text } | ContentChunk::UntaggedText(text) => { - delegate - .stream_assistant_message_chunk(StreamAssistantMessageChunkParams { - chunk: acp::AssistantMessageChunk::Text { text }, + thread + .update(cx, |thread, cx| { + thread.push_assistant_chunk(text.into(), false, cx) }) - .await .log_err(); } ContentChunk::ToolUse { id, name, input } => { let claude_tool = ClaudeTool::infer(&name, input); - if let ClaudeTool::TodoWrite(Some(params)) = claude_tool { - delegate - .update_plan(acp::UpdatePlanParams { - entries: params.todos.into_iter().map(Into::into).collect(), - }) - .await - .log_err(); - } else if let Some(resp) = delegate - .push_tool_call(claude_tool.as_acp()) - .await - .log_err() - { - tool_id_map.borrow_mut().insert(id, resp.id); - } + thread + .update(cx, |thread, cx| { + if let ClaudeTool::TodoWrite(Some(params)) = claude_tool { + thread.update_plan( + acp::Plan { + entries: params + .todos + .into_iter() + .map(Into::into) + .collect(), + }, + cx, + ) + } else { + thread.upsert_tool_call( + claude_tool.as_acp(acp::ToolCallId(id.into())), + cx, + ); + } + }) + .log_err(); } ContentChunk::ToolResult { content, tool_use_id, } => { - let id = tool_id_map.borrow_mut().remove(&tool_use_id); - if let Some(id) = id { - let content = content.to_string(); - delegate - .update_tool_call(UpdateToolCallParams { - tool_call_id: id, - status: acp::ToolCallStatus::Finished, - // Don't unset existing content - content: (!content.is_empty()).then_some( - ToolCallContent::Markdown { - // For now we only include text content - markdown: content, - }, - ), - }) - .await - .log_err(); - } + let content = content.to_string(); + thread + .update(cx, |thread, cx| { + thread.update_tool_call( + acp::ToolCallId(tool_use_id.into()), + acp::ToolCallStatus::Completed, + (!content.is_empty()).then(|| vec![content.into()]), + cx, + ) + }) + .log_err(); } ContentChunk::Image | ContentChunk::Document | ContentChunk::Thinking | ContentChunk::RedactedThinking | ContentChunk::WebSearchToolResult => { - delegate - .stream_assistant_message_chunk(StreamAssistantMessageChunkParams { - chunk: acp::AssistantMessageChunk::Text { - text: format!("Unsupported content: {:?}", chunk), - }, + thread + .update(cx, |thread, cx| { + thread.push_assistant_chunk( + format!("Unsupported content: {:?}", chunk).into(), + false, + cx, + ) }) - .await .log_err(); } } @@ -592,14 +634,14 @@ enum SdkMessage { Assistant { message: Message, // from Anthropic SDK #[serde(skip_serializing_if = "Option::is_none")] - session_id: Option, + session_id: Option, }, // A user message User { message: Message, // from Anthropic SDK #[serde(skip_serializing_if = "Option::is_none")] - session_id: Option, + session_id: Option, }, // Emitted as the last message in a conversation @@ -661,21 +703,6 @@ enum PermissionMode { Plan, } -#[derive(Serialize)] -#[serde(rename_all = "camelCase")] -struct McpConfig { - mcp_servers: HashMap, -} - -#[derive(Serialize)] -#[serde(rename_all = "camelCase")] -struct McpServerConfig { - command: String, - args: Vec, - #[serde(skip_serializing_if = "Option::is_none")] - env: Option>, -} - #[cfg(test)] pub(crate) mod tests { use super::*; diff --git a/crates/agent_servers/src/claude/mcp_server.rs b/crates/agent_servers/src/claude/mcp_server.rs index 2405603550..0a39a02931 100644 --- a/crates/agent_servers/src/claude/mcp_server.rs +++ b/crates/agent_servers/src/claude/mcp_server.rs @@ -1,29 +1,22 @@ -use std::{cell::RefCell, rc::Rc}; +use std::path::PathBuf; -use acp_thread::AcpClientDelegate; -use agentic_coding_protocol::{self as acp, Client, ReadTextFileParams, WriteTextFileParams}; +use acp_thread::AcpThread; +use agent_client_protocol as acp; use anyhow::{Context, Result}; use collections::HashMap; -use context_server::{ - listener::McpServer, - types::{ - CallToolParams, CallToolResponse, Implementation, InitializeParams, InitializeResponse, - ListToolsResponse, ProtocolVersion, ServerCapabilities, Tool, ToolAnnotations, - ToolResponseContent, ToolsCapabilities, requests, - }, +use context_server::types::{ + CallToolParams, CallToolResponse, Implementation, InitializeParams, InitializeResponse, + ListToolsResponse, ProtocolVersion, ServerCapabilities, Tool, ToolAnnotations, + ToolResponseContent, ToolsCapabilities, requests, }; -use gpui::{App, AsyncApp, Task}; +use gpui::{App, AsyncApp, Entity, Task, WeakEntity}; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; -use util::debug_panic; -use crate::claude::{ - McpServerConfig, - tools::{ClaudeTool, EditToolParams, ReadToolParams}, -}; +use crate::claude::tools::{ClaudeTool, EditToolParams, ReadToolParams}; -pub struct ClaudeMcpServer { - server: McpServer, +pub struct ClaudeZedMcpServer { + server: context_server::listener::McpServer, } pub const SERVER_NAME: &str = "zed"; @@ -52,17 +45,16 @@ enum PermissionToolBehavior { Deny, } -impl ClaudeMcpServer { +impl ClaudeZedMcpServer { pub async fn new( - delegate: watch::Receiver>, - tool_id_map: Rc>>, + thread_rx: watch::Receiver>, cx: &AsyncApp, ) -> Result { - let mut mcp_server = McpServer::new(cx).await?; + let mut mcp_server = context_server::listener::McpServer::new(cx).await?; mcp_server.handle_request::(Self::handle_initialize); mcp_server.handle_request::(Self::handle_list_tools); mcp_server.handle_request::(move |request, cx| { - Self::handle_call_tool(request, delegate.clone(), tool_id_map.clone(), cx) + Self::handle_call_tool(request, thread_rx.clone(), cx) }); Ok(Self { server: mcp_server }) @@ -70,9 +62,7 @@ impl ClaudeMcpServer { pub fn server_config(&self) -> Result { let zed_path = std::env::current_exe() - .context("finding current executable path for use in mcp_server")? - .to_string_lossy() - .to_string(); + .context("finding current executable path for use in mcp_server")?; Ok(McpServerConfig { command: zed_path, @@ -152,22 +142,19 @@ impl ClaudeMcpServer { fn handle_call_tool( request: CallToolParams, - mut delegate_watch: watch::Receiver>, - tool_id_map: Rc>>, + mut thread_rx: watch::Receiver>, cx: &App, ) -> Task> { cx.spawn(async move |cx| { - let Some(delegate) = delegate_watch.recv().await? else { - debug_panic!("Sent None delegate"); - anyhow::bail!("Server not available"); + let Some(thread) = thread_rx.recv().await?.upgrade() else { + anyhow::bail!("Thread closed"); }; if request.name.as_str() == PERMISSION_TOOL { let input = serde_json::from_value(request.arguments.context("Arguments required")?)?; - let result = - Self::handle_permissions_tool_call(input, delegate, tool_id_map, cx).await?; + let result = Self::handle_permissions_tool_call(input, thread, cx).await?; Ok(CallToolResponse { content: vec![ToolResponseContent::Text { text: serde_json::to_string(&result)?, @@ -179,7 +166,7 @@ impl ClaudeMcpServer { let input = serde_json::from_value(request.arguments.context("Arguments required")?)?; - let content = Self::handle_read_tool_call(input, delegate, cx).await?; + let content = Self::handle_read_tool_call(input, thread, cx).await?; Ok(CallToolResponse { content, is_error: None, @@ -189,7 +176,7 @@ impl ClaudeMcpServer { let input = serde_json::from_value(request.arguments.context("Arguments required")?)?; - Self::handle_edit_tool_call(input, delegate, cx).await?; + Self::handle_edit_tool_call(input, thread, cx).await?; Ok(CallToolResponse { content: vec![], is_error: None, @@ -202,49 +189,46 @@ impl ClaudeMcpServer { } fn handle_read_tool_call( - params: ReadToolParams, - delegate: AcpClientDelegate, + ReadToolParams { + abs_path, + offset, + limit, + }: ReadToolParams, + thread: Entity, cx: &AsyncApp, ) -> Task>> { - cx.foreground_executor().spawn(async move { - let response = delegate - .read_text_file(ReadTextFileParams { - path: params.abs_path, - line: params.offset, - limit: params.limit, - }) + cx.spawn(async move |cx| { + let content = thread + .update(cx, |thread, cx| { + thread.read_text_file(abs_path, offset, limit, false, cx) + })? .await?; - Ok(vec![ToolResponseContent::Text { - text: response.content, - }]) + Ok(vec![ToolResponseContent::Text { text: content }]) }) } fn handle_edit_tool_call( params: EditToolParams, - delegate: AcpClientDelegate, + thread: Entity, cx: &AsyncApp, ) -> Task> { - cx.foreground_executor().spawn(async move { - let response = delegate - .read_text_file_reusing_snapshot(ReadTextFileParams { - path: params.abs_path.clone(), - line: None, - limit: None, - }) + cx.spawn(async move |cx| { + let content = thread + .update(cx, |threads, cx| { + threads.read_text_file(params.abs_path.clone(), None, None, true, cx) + })? .await?; - let new_content = response.content.replace(¶ms.old_text, ¶ms.new_text); - if new_content == response.content { + let new_content = content.replace(¶ms.old_text, ¶ms.new_text); + if new_content == content { return Err(anyhow::anyhow!("The old_text was not found in the content")); } - delegate - .write_text_file(WriteTextFileParams { - path: params.abs_path, - content: new_content, - }) + thread + .update(cx, |threads, cx| { + threads.write_text_file(params.abs_path, new_content, cx) + })? .await?; Ok(()) @@ -253,44 +237,65 @@ impl ClaudeMcpServer { fn handle_permissions_tool_call( params: PermissionToolParams, - delegate: AcpClientDelegate, - tool_id_map: Rc>>, + thread: Entity, cx: &AsyncApp, ) -> Task> { - cx.foreground_executor().spawn(async move { + cx.spawn(async move |cx| { let claude_tool = ClaudeTool::infer(¶ms.tool_name, params.input.clone()); - let tool_call_id = match params.tool_use_id { - Some(tool_use_id) => tool_id_map - .borrow() - .get(&tool_use_id) - .cloned() - .context("Tool call ID not found")?, + let tool_call_id = + acp::ToolCallId(params.tool_use_id.context("Tool ID required")?.into()); - None => delegate.push_tool_call(claude_tool.as_acp()).await?.id, - }; + let allow_option_id = acp::PermissionOptionId("allow".into()); + let reject_option_id = acp::PermissionOptionId("reject".into()); - let outcome = delegate - .request_existing_tool_call_confirmation( - tool_call_id, - claude_tool.confirmation(None), - ) + let chosen_option = thread + .update(cx, |thread, cx| { + thread.request_tool_call_permission( + claude_tool.as_acp(tool_call_id), + vec![ + acp::PermissionOption { + id: allow_option_id.clone(), + label: "Allow".into(), + kind: acp::PermissionOptionKind::AllowOnce, + }, + acp::PermissionOption { + id: reject_option_id, + label: "Reject".into(), + kind: acp::PermissionOptionKind::RejectOnce, + }, + ], + cx, + ) + })? .await?; - match outcome { - acp::ToolCallConfirmationOutcome::Allow - | acp::ToolCallConfirmationOutcome::AlwaysAllow - | acp::ToolCallConfirmationOutcome::AlwaysAllowMcpServer - | acp::ToolCallConfirmationOutcome::AlwaysAllowTool => Ok(PermissionToolResponse { + if chosen_option == allow_option_id { + Ok(PermissionToolResponse { behavior: PermissionToolBehavior::Allow, updated_input: params.input, - }), - acp::ToolCallConfirmationOutcome::Reject - | acp::ToolCallConfirmationOutcome::Cancel => Ok(PermissionToolResponse { + }) + } else { + Ok(PermissionToolResponse { behavior: PermissionToolBehavior::Deny, updated_input: params.input, - }), + }) } }) } } + +#[derive(Serialize)] +#[serde(rename_all = "camelCase")] +pub struct McpConfig { + pub mcp_servers: HashMap, +} + +#[derive(Serialize, Clone)] +#[serde(rename_all = "camelCase")] +pub struct McpServerConfig { + pub command: PathBuf, + pub args: Vec, + #[serde(skip_serializing_if = "Option::is_none")] + pub env: Option>, +} diff --git a/crates/agent_servers/src/claude/tools.rs b/crates/agent_servers/src/claude/tools.rs index 75a26ee230..ed25f9af7f 100644 --- a/crates/agent_servers/src/claude/tools.rs +++ b/crates/agent_servers/src/claude/tools.rs @@ -1,6 +1,6 @@ use std::path::PathBuf; -use agentic_coding_protocol::{self as acp, PushToolCallParams, ToolCallLocation}; +use agent_client_protocol as acp; use itertools::Itertools; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; @@ -115,51 +115,36 @@ impl ClaudeTool { Self::Other { name, .. } => name.clone(), } } - - pub fn content(&self) -> Option { + pub fn content(&self) -> Vec { match &self { - Self::Other { input, .. } => Some(acp::ToolCallContent::Markdown { - markdown: format!( + Self::Other { input, .. } => vec![ + format!( "```json\n{}```", serde_json::to_string_pretty(&input).unwrap_or("{}".to_string()) - ), - }), - Self::Task(Some(params)) => Some(acp::ToolCallContent::Markdown { - markdown: params.prompt.clone(), - }), - Self::NotebookRead(Some(params)) => Some(acp::ToolCallContent::Markdown { - markdown: params.notebook_path.display().to_string(), - }), - Self::NotebookEdit(Some(params)) => Some(acp::ToolCallContent::Markdown { - markdown: params.new_source.clone(), - }), - Self::Terminal(Some(params)) => Some(acp::ToolCallContent::Markdown { - markdown: format!( + ) + .into(), + ], + Self::Task(Some(params)) => vec![params.prompt.clone().into()], + Self::NotebookRead(Some(params)) => { + vec![params.notebook_path.display().to_string().into()] + } + Self::NotebookEdit(Some(params)) => vec![params.new_source.clone().into()], + Self::Terminal(Some(params)) => vec![ + format!( "`{}`\n\n{}", params.command, params.description.as_deref().unwrap_or_default() - ), - }), - Self::ReadFile(Some(params)) => Some(acp::ToolCallContent::Markdown { - markdown: params.abs_path.display().to_string(), - }), - Self::Ls(Some(params)) => Some(acp::ToolCallContent::Markdown { - markdown: params.path.display().to_string(), - }), - Self::Glob(Some(params)) => Some(acp::ToolCallContent::Markdown { - markdown: params.to_string(), - }), - Self::Grep(Some(params)) => Some(acp::ToolCallContent::Markdown { - markdown: format!("`{params}`"), - }), - Self::WebFetch(Some(params)) => Some(acp::ToolCallContent::Markdown { - markdown: params.prompt.clone(), - }), - Self::WebSearch(Some(params)) => Some(acp::ToolCallContent::Markdown { - markdown: params.to_string(), - }), - Self::TodoWrite(Some(params)) => Some(acp::ToolCallContent::Markdown { - markdown: params + ) + .into(), + ], + Self::ReadFile(Some(params)) => vec![params.abs_path.display().to_string().into()], + Self::Ls(Some(params)) => vec![params.path.display().to_string().into()], + Self::Glob(Some(params)) => vec![params.to_string().into()], + Self::Grep(Some(params)) => vec![format!("`{params}`").into()], + Self::WebFetch(Some(params)) => vec![params.prompt.clone().into()], + Self::WebSearch(Some(params)) => vec![params.to_string().into()], + Self::TodoWrite(Some(params)) => vec![ + params .todos .iter() .map(|todo| { @@ -174,34 +159,39 @@ impl ClaudeTool { todo.content ) }) - .join("\n"), - }), - Self::ExitPlanMode(Some(params)) => Some(acp::ToolCallContent::Markdown { - markdown: params.plan.clone(), - }), - Self::Edit(Some(params)) => Some(acp::ToolCallContent::Diff { + .join("\n") + .into(), + ], + Self::ExitPlanMode(Some(params)) => vec![params.plan.clone().into()], + Self::Edit(Some(params)) => vec![acp::ToolCallContent::Diff { diff: acp::Diff { path: params.abs_path.clone(), old_text: Some(params.old_text.clone()), new_text: params.new_text.clone(), }, - }), - Self::Write(Some(params)) => Some(acp::ToolCallContent::Diff { + }], + Self::Write(Some(params)) => vec![acp::ToolCallContent::Diff { diff: acp::Diff { path: params.file_path.clone(), old_text: None, new_text: params.content.clone(), }, - }), + }], Self::MultiEdit(Some(params)) => { // todo: show multiple edits in a multibuffer? - params.edits.first().map(|edit| acp::ToolCallContent::Diff { - diff: acp::Diff { - path: params.file_path.clone(), - old_text: Some(edit.old_string.clone()), - new_text: edit.new_string.clone(), - }, - }) + params + .edits + .first() + .map(|edit| { + vec![acp::ToolCallContent::Diff { + diff: acp::Diff { + path: params.file_path.clone(), + old_text: Some(edit.old_string.clone()), + new_text: edit.new_string.clone(), + }, + }] + }) + .unwrap_or_default() } Self::Task(None) | Self::NotebookRead(None) @@ -217,181 +207,80 @@ impl ClaudeTool { | Self::ExitPlanMode(None) | Self::Edit(None) | Self::Write(None) - | Self::MultiEdit(None) => None, + | Self::MultiEdit(None) => vec![], } } - pub fn icon(&self) -> acp::Icon { + pub fn kind(&self) -> acp::ToolKind { match self { - Self::Task(_) => acp::Icon::Hammer, - Self::NotebookRead(_) => acp::Icon::FileSearch, - Self::NotebookEdit(_) => acp::Icon::Pencil, - Self::Edit(_) => acp::Icon::Pencil, - Self::MultiEdit(_) => acp::Icon::Pencil, - Self::Write(_) => acp::Icon::Pencil, - Self::ReadFile(_) => acp::Icon::FileSearch, - Self::Ls(_) => acp::Icon::Folder, - Self::Glob(_) => acp::Icon::FileSearch, - Self::Grep(_) => acp::Icon::Regex, - Self::Terminal(_) => acp::Icon::Terminal, - Self::WebSearch(_) => acp::Icon::Globe, - Self::WebFetch(_) => acp::Icon::Globe, - Self::TodoWrite(_) => acp::Icon::LightBulb, - Self::ExitPlanMode(_) => acp::Icon::Hammer, - Self::Other { .. } => acp::Icon::Hammer, - } - } - - pub fn confirmation(&self, description: Option) -> acp::ToolCallConfirmation { - match &self { - Self::Edit(_) | Self::Write(_) | Self::NotebookEdit(_) | Self::MultiEdit(_) => { - acp::ToolCallConfirmation::Edit { description } - } - Self::WebFetch(params) => acp::ToolCallConfirmation::Fetch { - urls: params - .as_ref() - .map(|p| vec![p.url.clone()]) - .unwrap_or_default(), - description, - }, - Self::Terminal(Some(BashToolParams { - description, - command, - .. - })) => acp::ToolCallConfirmation::Execute { - command: command.clone(), - root_command: command.clone(), - description: description.clone(), - }, - Self::ExitPlanMode(Some(params)) => acp::ToolCallConfirmation::Other { - description: if let Some(description) = description { - format!("{description} {}", params.plan) - } else { - params.plan.clone() - }, - }, - Self::Task(Some(params)) => acp::ToolCallConfirmation::Other { - description: if let Some(description) = description { - format!("{description} {}", params.description) - } else { - params.description.clone() - }, - }, - Self::Ls(Some(LsToolParams { path, .. })) - | Self::ReadFile(Some(ReadToolParams { abs_path: path, .. })) => { - let path = path.display(); - acp::ToolCallConfirmation::Other { - description: if let Some(description) = description { - format!("{description} {path}") - } else { - path.to_string() - }, - } - } - Self::NotebookRead(Some(NotebookReadToolParams { notebook_path, .. })) => { - let path = notebook_path.display(); - acp::ToolCallConfirmation::Other { - description: if let Some(description) = description { - format!("{description} {path}") - } else { - path.to_string() - }, - } - } - Self::Glob(Some(params)) => acp::ToolCallConfirmation::Other { - description: if let Some(description) = description { - format!("{description} {params}") - } else { - params.to_string() - }, - }, - Self::Grep(Some(params)) => acp::ToolCallConfirmation::Other { - description: if let Some(description) = description { - format!("{description} {params}") - } else { - params.to_string() - }, - }, - Self::WebSearch(Some(params)) => acp::ToolCallConfirmation::Other { - description: if let Some(description) = description { - format!("{description} {params}") - } else { - params.to_string() - }, - }, - Self::TodoWrite(Some(params)) => { - let params = params.todos.iter().map(|todo| &todo.content).join(", "); - acp::ToolCallConfirmation::Other { - description: if let Some(description) = description { - format!("{description} {params}") - } else { - params - }, - } - } - Self::Terminal(None) - | Self::Task(None) - | Self::NotebookRead(None) - | Self::ExitPlanMode(None) - | Self::Ls(None) - | Self::Glob(None) - | Self::Grep(None) - | Self::ReadFile(None) - | Self::WebSearch(None) - | Self::TodoWrite(None) - | Self::Other { .. } => acp::ToolCallConfirmation::Other { - description: description.unwrap_or("".to_string()), - }, + Self::Task(_) => acp::ToolKind::Think, + Self::NotebookRead(_) => acp::ToolKind::Read, + Self::NotebookEdit(_) => acp::ToolKind::Edit, + Self::Edit(_) => acp::ToolKind::Edit, + Self::MultiEdit(_) => acp::ToolKind::Edit, + Self::Write(_) => acp::ToolKind::Edit, + Self::ReadFile(_) => acp::ToolKind::Read, + Self::Ls(_) => acp::ToolKind::Search, + Self::Glob(_) => acp::ToolKind::Search, + Self::Grep(_) => acp::ToolKind::Search, + Self::Terminal(_) => acp::ToolKind::Execute, + Self::WebSearch(_) => acp::ToolKind::Search, + Self::WebFetch(_) => acp::ToolKind::Fetch, + Self::TodoWrite(_) => acp::ToolKind::Think, + Self::ExitPlanMode(_) => acp::ToolKind::Think, + Self::Other { .. } => acp::ToolKind::Other, } } pub fn locations(&self) -> Vec { match &self { - Self::Edit(Some(EditToolParams { abs_path, .. })) => vec![ToolCallLocation { + Self::Edit(Some(EditToolParams { abs_path, .. })) => vec![acp::ToolCallLocation { path: abs_path.clone(), line: None, }], Self::MultiEdit(Some(MultiEditToolParams { file_path, .. })) => { - vec![ToolCallLocation { + vec![acp::ToolCallLocation { + path: file_path.clone(), + line: None, + }] + } + Self::Write(Some(WriteToolParams { file_path, .. })) => { + vec![acp::ToolCallLocation { path: file_path.clone(), line: None, }] } - Self::Write(Some(WriteToolParams { file_path, .. })) => vec![ToolCallLocation { - path: file_path.clone(), - line: None, - }], Self::ReadFile(Some(ReadToolParams { abs_path, offset, .. - })) => vec![ToolCallLocation { + })) => vec![acp::ToolCallLocation { path: abs_path.clone(), line: *offset, }], Self::NotebookRead(Some(NotebookReadToolParams { notebook_path, .. })) => { - vec![ToolCallLocation { + vec![acp::ToolCallLocation { path: notebook_path.clone(), line: None, }] } Self::NotebookEdit(Some(NotebookEditToolParams { notebook_path, .. })) => { - vec![ToolCallLocation { + vec![acp::ToolCallLocation { path: notebook_path.clone(), line: None, }] } Self::Glob(Some(GlobToolParams { path: Some(path), .. - })) => vec![ToolCallLocation { + })) => vec![acp::ToolCallLocation { path: path.clone(), line: None, }], - Self::Ls(Some(LsToolParams { path, .. })) => vec![ToolCallLocation { + Self::Ls(Some(LsToolParams { path, .. })) => vec![acp::ToolCallLocation { path: path.clone(), line: None, }], Self::Grep(Some(GrepToolParams { path: Some(path), .. - })) => vec![ToolCallLocation { + })) => vec![acp::ToolCallLocation { path: PathBuf::from(path), line: None, }], @@ -414,11 +303,13 @@ impl ClaudeTool { } } - pub fn as_acp(&self) -> PushToolCallParams { - PushToolCallParams { + pub fn as_acp(&self, id: acp::ToolCallId) -> acp::ToolCall { + acp::ToolCall { + id, + kind: self.kind(), + status: acp::ToolCallStatus::InProgress, label: self.label(), content: self.content(), - icon: self.icon(), locations: self.locations(), } } diff --git a/crates/agent_servers/src/e2e_tests.rs b/crates/agent_servers/src/e2e_tests.rs index 12f74cb13e..9bc6fd60fe 100644 --- a/crates/agent_servers/src/e2e_tests.rs +++ b/crates/agent_servers/src/e2e_tests.rs @@ -1,10 +1,9 @@ use std::{path::Path, sync::Arc, time::Duration}; use crate::{AgentServer, AgentServerSettings, AllAgentServersSettings}; -use acp_thread::{ - AcpThread, AgentThreadEntry, ToolCall, ToolCallConfirmation, ToolCallContent, ToolCallStatus, -}; -use agentic_coding_protocol as acp; +use acp_thread::{AcpThread, AgentThreadEntry, ToolCall, ToolCallStatus}; +use agent_client_protocol as acp; + use futures::{FutureExt, StreamExt, channel::mpsc, select}; use gpui::{Entity, TestAppContext}; use indoc::indoc; @@ -54,19 +53,25 @@ pub async fn test_path_mentions(server: impl AgentServer + 'static, cx: &mut Tes thread .update(cx, |thread, cx| { thread.send( - acp::SendUserMessageParams { - chunks: vec![ - acp::UserMessageChunk::Text { - text: "Read the file ".into(), - }, - acp::UserMessageChunk::Path { - path: Path::new("foo.rs").into(), - }, - acp::UserMessageChunk::Text { - text: " and tell me what the content of the println! is".into(), - }, - ], - }, + vec![ + acp::ContentBlock::Text(acp::TextContent { + text: "Read the file ".into(), + annotations: None, + }), + acp::ContentBlock::ResourceLink(acp::ResourceLink { + uri: "foo.rs".into(), + name: "foo.rs".into(), + annotations: None, + description: None, + mime_type: None, + size: None, + title: None, + }), + acp::ContentBlock::Text(acp::TextContent { + text: " and tell me what the content of the println! is".into(), + annotations: None, + }), + ], cx, ) }) @@ -161,11 +166,8 @@ pub async fn test_tool_call_with_confirmation( let tool_call_id = thread.read_with(cx, |thread, _cx| { let AgentThreadEntry::ToolCall(ToolCall { id, - status: - ToolCallStatus::WaitingForConfirmation { - confirmation: ToolCallConfirmation::Execute { root_command, .. }, - .. - }, + content, + status: ToolCallStatus::WaitingForConfirmation { .. }, .. }) = &thread .entries() @@ -176,13 +178,18 @@ pub async fn test_tool_call_with_confirmation( panic!(); }; - assert!(root_command.contains("touch")); + assert!(content.iter().any(|c| c.to_markdown(_cx).contains("touch"))); - *id + id.clone() }); thread.update(cx, |thread, cx| { - thread.authorize_tool_call(tool_call_id, acp::ToolCallConfirmationOutcome::Allow, cx); + thread.authorize_tool_call( + tool_call_id, + acp::PermissionOptionId("0".into()), + acp::PermissionOptionKind::AllowOnce, + cx, + ); assert!(thread.entries().iter().any(|entry| matches!( entry, @@ -197,7 +204,7 @@ pub async fn test_tool_call_with_confirmation( thread.read_with(cx, |thread, cx| { let AgentThreadEntry::ToolCall(ToolCall { - content: Some(ToolCallContent::Markdown { markdown }), + content, status: ToolCallStatus::Allowed { .. }, .. }) = thread @@ -209,13 +216,10 @@ pub async fn test_tool_call_with_confirmation( panic!(); }; - markdown.read_with(cx, |md, _cx| { - assert!( - md.source().contains("Hello"), - r#"Expected '{}' to contain "Hello""#, - md.source() - ); - }); + assert!( + content.iter().any(|c| c.to_markdown(cx).contains("Hello")), + "Expected content to contain 'Hello'" + ); }); } @@ -249,26 +253,20 @@ pub async fn test_cancel(server: impl AgentServer + 'static, cx: &mut TestAppCon thread.read_with(cx, |thread, _cx| { let AgentThreadEntry::ToolCall(ToolCall { id, - status: - ToolCallStatus::WaitingForConfirmation { - confirmation: ToolCallConfirmation::Execute { root_command, .. }, - .. - }, + content, + status: ToolCallStatus::WaitingForConfirmation { .. }, .. }) = &thread.entries()[first_tool_call_ix] else { panic!("{:?}", thread.entries()[1]); }; - assert!(root_command.contains("touch")); + assert!(content.iter().any(|c| c.to_markdown(_cx).contains("touch"))); - *id + id.clone() }); - thread - .update(cx, |thread, cx| thread.cancel(cx)) - .await - .unwrap(); + let _ = thread.update(cx, |thread, cx| thread.cancel(cx)); full_turn.await.unwrap(); thread.read_with(cx, |thread, _| { let AgentThreadEntry::ToolCall(ToolCall { @@ -369,15 +367,16 @@ pub async fn new_test_thread( current_dir: impl AsRef, cx: &mut TestAppContext, ) -> Entity { - let thread = cx - .update(|cx| server.new_thread(current_dir.as_ref(), &project, cx)) + let connection = cx + .update(|cx| server.connect(current_dir.as_ref(), &project, cx)) .await .unwrap(); - thread - .update(cx, |thread, _| thread.initialize()) + let thread = connection + .new_thread(project.clone(), current_dir.as_ref(), &mut cx.to_async()) .await .unwrap(); + thread } diff --git a/crates/agent_servers/src/gemini.rs b/crates/agent_servers/src/gemini.rs index 8ad147cbff..47b965cdad 100644 --- a/crates/agent_servers/src/gemini.rs +++ b/crates/agent_servers/src/gemini.rs @@ -1,9 +1,17 @@ -use crate::stdio_agent_server::StdioAgentServer; -use crate::{AgentServerCommand, AgentServerVersion}; +use anyhow::anyhow; +use std::cell::RefCell; +use std::path::Path; +use std::rc::Rc; +use util::ResultExt as _; + +use crate::{AgentServer, AgentServerCommand, AgentServerVersion}; +use acp_thread::{AgentConnection, LoadError, OldAcpAgentConnection, OldAcpClientDelegate}; +use agentic_coding_protocol as acp_old; use anyhow::{Context as _, Result}; -use gpui::{AsyncApp, Entity}; +use gpui::{AppContext as _, AsyncApp, Entity, Task, WeakEntity}; use project::Project; use settings::SettingsStore; +use ui::App; use crate::AllAgentServersSettings; @@ -12,7 +20,7 @@ pub struct Gemini; const ACP_ARG: &str = "--experimental-acp"; -impl StdioAgentServer for Gemini { +impl AgentServer for Gemini { fn name(&self) -> &'static str { "Gemini" } @@ -25,14 +33,88 @@ impl StdioAgentServer for Gemini { "Ask questions, edit files, run commands.\nBe specific for the best results." } - fn supports_always_allow(&self) -> bool { - true - } - fn logo(&self) -> ui::IconName { ui::IconName::AiGemini } + fn connect( + &self, + root_dir: &Path, + project: &Entity, + cx: &mut App, + ) -> Task>> { + let root_dir = root_dir.to_path_buf(); + let project = project.clone(); + let this = self.clone(); + let name = self.name(); + + cx.spawn(async move |cx| { + let command = this.command(&project, cx).await?; + + let mut child = util::command::new_smol_command(&command.path) + .args(command.args.iter()) + .current_dir(root_dir) + .stdin(std::process::Stdio::piped()) + .stdout(std::process::Stdio::piped()) + .stderr(std::process::Stdio::inherit()) + .kill_on_drop(true) + .spawn()?; + + let stdin = child.stdin.take().unwrap(); + let stdout = child.stdout.take().unwrap(); + + let foreground_executor = cx.foreground_executor().clone(); + + let thread_rc = Rc::new(RefCell::new(WeakEntity::new_invalid())); + + let (connection, io_fut) = acp_old::AgentConnection::connect_to_agent( + OldAcpClientDelegate::new(thread_rc.clone(), cx.clone()), + stdin, + stdout, + move |fut| foreground_executor.spawn(fut).detach(), + ); + + let io_task = cx.background_spawn(async move { + io_fut.await.log_err(); + }); + + let child_status = cx.background_spawn(async move { + let result = match child.status().await { + Err(e) => Err(anyhow!(e)), + Ok(result) if result.success() => Ok(()), + Ok(result) => { + if let Some(AgentServerVersion::Unsupported { + error_message, + upgrade_message, + upgrade_command, + }) = this.version(&command).await.log_err() + { + Err(anyhow!(LoadError::Unsupported { + error_message, + upgrade_message, + upgrade_command + })) + } else { + Err(anyhow!(LoadError::Exited(result.code().unwrap_or(-127)))) + } + } + }; + drop(io_task); + result + }); + + let connection: Rc = Rc::new(OldAcpAgentConnection { + name, + connection, + child_status, + }); + + Ok(connection) + }) + } +} + +impl Gemini { async fn command( &self, project: &Entity, diff --git a/crates/agent_servers/src/stdio_agent_server.rs b/crates/agent_servers/src/stdio_agent_server.rs deleted file mode 100644 index e60dd39de4..0000000000 --- a/crates/agent_servers/src/stdio_agent_server.rs +++ /dev/null @@ -1,119 +0,0 @@ -use crate::{AgentServer, AgentServerCommand, AgentServerVersion}; -use acp_thread::{AcpClientDelegate, AcpThread, LoadError}; -use agentic_coding_protocol as acp; -use anyhow::{Result, anyhow}; -use gpui::{App, AsyncApp, Entity, Task, prelude::*}; -use project::Project; -use std::path::Path; -use util::ResultExt; - -pub trait StdioAgentServer: Send + Clone { - fn logo(&self) -> ui::IconName; - fn name(&self) -> &'static str; - fn empty_state_headline(&self) -> &'static str; - fn empty_state_message(&self) -> &'static str; - fn supports_always_allow(&self) -> bool; - - fn command( - &self, - project: &Entity, - cx: &mut AsyncApp, - ) -> impl Future>; - - fn version( - &self, - command: &AgentServerCommand, - ) -> impl Future> + Send; -} - -impl AgentServer for T { - fn name(&self) -> &'static str { - self.name() - } - - fn empty_state_headline(&self) -> &'static str { - self.empty_state_headline() - } - - fn empty_state_message(&self) -> &'static str { - self.empty_state_message() - } - - fn logo(&self) -> ui::IconName { - self.logo() - } - - fn supports_always_allow(&self) -> bool { - self.supports_always_allow() - } - - fn new_thread( - &self, - root_dir: &Path, - project: &Entity, - cx: &mut App, - ) -> Task>> { - let root_dir = root_dir.to_path_buf(); - let project = project.clone(); - let this = self.clone(); - let title = self.name().into(); - - cx.spawn(async move |cx| { - let command = this.command(&project, cx).await?; - - let mut child = util::command::new_smol_command(&command.path) - .args(command.args.iter()) - .current_dir(root_dir) - .stdin(std::process::Stdio::piped()) - .stdout(std::process::Stdio::piped()) - .stderr(std::process::Stdio::inherit()) - .kill_on_drop(true) - .spawn()?; - - let stdin = child.stdin.take().unwrap(); - let stdout = child.stdout.take().unwrap(); - - cx.new(|cx| { - let foreground_executor = cx.foreground_executor().clone(); - - let (connection, io_fut) = acp::AgentConnection::connect_to_agent( - AcpClientDelegate::new(cx.entity().downgrade(), cx.to_async()), - stdin, - stdout, - move |fut| foreground_executor.spawn(fut).detach(), - ); - - let io_task = cx.background_spawn(async move { - io_fut.await.log_err(); - }); - - let child_status = cx.background_spawn(async move { - let result = match child.status().await { - Err(e) => Err(anyhow!(e)), - Ok(result) if result.success() => Ok(()), - Ok(result) => { - if let Some(AgentServerVersion::Unsupported { - error_message, - upgrade_message, - upgrade_command, - }) = this.version(&command).await.log_err() - { - Err(anyhow!(LoadError::Unsupported { - error_message, - upgrade_message, - upgrade_command - })) - } else { - Err(anyhow!(LoadError::Exited(result.code().unwrap_or(-127)))) - } - } - }; - drop(io_task); - result - }); - - AcpThread::new(connection, title, Some(child_status), project.clone(), cx) - }) - }) - } -} diff --git a/crates/agent_ui/Cargo.toml b/crates/agent_ui/Cargo.toml index 7d3b84e42e..fbd53e8d09 100644 --- a/crates/agent_ui/Cargo.toml +++ b/crates/agent_ui/Cargo.toml @@ -17,10 +17,10 @@ test-support = ["gpui/test-support", "language/test-support"] [dependencies] acp_thread.workspace = true +agent-client-protocol.workspace = true agent.workspace = true -agentic-coding-protocol.workspace = true -agent_settings.workspace = true agent_servers.workspace = true +agent_settings.workspace = true ai_onboarding.workspace = true anyhow.workspace = true assistant_context.workspace = true diff --git a/crates/agent_ui/src/acp/thread_view.rs b/crates/agent_ui/src/acp/thread_view.rs index 95f4f81205..7f5de9db5f 100644 --- a/crates/agent_ui/src/acp/thread_view.rs +++ b/crates/agent_ui/src/acp/thread_view.rs @@ -1,4 +1,4 @@ -use acp_thread::Plan; +use acp_thread::{AgentConnection, Plan}; use agent_servers::AgentServer; use std::cell::RefCell; use std::collections::BTreeMap; @@ -7,7 +7,7 @@ use std::rc::Rc; use std::sync::Arc; use std::time::Duration; -use agentic_coding_protocol::{self as acp}; +use agent_client_protocol as acp; use assistant_tool::ActionLog; use buffer_diff::BufferDiff; use collections::{HashMap, HashSet}; @@ -16,7 +16,6 @@ use editor::{ EditorStyle, MinimapVisibility, MultiBuffer, PathKey, }; use file_icons::FileIcons; -use futures::channel::oneshot; use gpui::{ Action, Animation, AnimationExt, App, BorderStyle, EdgesRefinement, Empty, Entity, EntityId, FocusHandle, Focusable, Hsla, Length, ListOffset, ListState, SharedString, StyleRefinement, @@ -39,8 +38,7 @@ use zed_actions::agent::{Chat, NextHistoryMessage, PreviousHistoryMessage}; use ::acp_thread::{ AcpThread, AcpThreadEvent, AgentThreadEntry, AssistantMessage, AssistantMessageChunk, Diff, - LoadError, MentionPath, ThreadStatus, ToolCall, ToolCallConfirmation, ToolCallContent, - ToolCallId, ToolCallStatus, + LoadError, MentionPath, ThreadStatus, ToolCall, ToolCallContent, ToolCallStatus, }; use crate::acp::completion_provider::{ContextPickerCompletionProvider, MentionSet}; @@ -64,12 +62,13 @@ pub struct AcpThreadView { last_error: Option>, list_state: ListState, auth_task: Option>, - expanded_tool_calls: HashSet, + expanded_tool_calls: HashSet, expanded_thinking_blocks: HashSet<(usize, usize)>, edits_expanded: bool, plan_expanded: bool, editor_expanded: bool, - message_history: Rc>>, + message_history: Rc>>>, + _cancel_task: Option>, } enum ThreadState { @@ -82,22 +81,16 @@ enum ThreadState { }, LoadError(LoadError), Unauthenticated { - thread: Entity, + connection: Rc, }, } -struct AlwaysAllowOption { - id: &'static str, - label: SharedString, - outcome: acp::ToolCallConfirmationOutcome, -} - impl AcpThreadView { pub fn new( agent: Rc, workspace: WeakEntity, project: Entity, - message_history: Rc>>, + message_history: Rc>>>, min_lines: usize, max_lines: Option, window: &mut Window, @@ -191,6 +184,7 @@ impl AcpThreadView { plan_expanded: false, editor_expanded: false, message_history, + _cancel_task: None, } } @@ -208,9 +202,9 @@ impl AcpThreadView { .map(|worktree| worktree.read(cx).abs_path()) .unwrap_or_else(|| paths::home_dir().as_path().into()); - let task = agent.new_thread(&root_dir, &project, cx); + let connect_task = agent.connect(&root_dir, &project, cx); let load_task = cx.spawn_in(window, async move |this, cx| { - let thread = match task.await { + let connection = match connect_task.await { Ok(thread) => thread, Err(err) => { this.update(cx, |this, cx| { @@ -222,48 +216,30 @@ impl AcpThreadView { } }; - let init_response = async { - let resp = thread - .read_with(cx, |thread, _cx| thread.initialize())? - .await?; - anyhow::Ok(resp) - }; - - let result = match init_response.await { + let result = match connection + .clone() + .new_thread(project.clone(), &root_dir, cx) + .await + { Err(e) => { let mut cx = cx.clone(); - if e.downcast_ref::().is_some() { - let child_status = thread - .update(&mut cx, |thread, _| thread.child_status()) - .ok() - .flatten(); - if let Some(child_status) = child_status { - match child_status.await { - Ok(_) => Err(e), - Err(e) => Err(e), - } - } else { - Err(e) - } + if e.downcast_ref::().is_some() { + this.update(&mut cx, |this, cx| { + this.thread_state = ThreadState::Unauthenticated { connection }; + cx.notify(); + }) + .ok(); + return; } else { Err(e) } } - Ok(response) => { - if !response.is_authenticated { - this.update(cx, |this, _| { - this.thread_state = ThreadState::Unauthenticated { thread }; - }) - .ok(); - return; - }; - Ok(()) - } + Ok(session_id) => Ok(session_id), }; this.update_in(cx, |this, window, cx| { match result { - Ok(()) => { + Ok(thread) => { let thread_subscription = cx.subscribe_in(&thread, window, Self::handle_thread_event); @@ -305,10 +281,10 @@ impl AcpThreadView { pub fn thread(&self) -> Option<&Entity> { match &self.thread_state { - ThreadState::Ready { thread, .. } | ThreadState::Unauthenticated { thread } => { - Some(thread) - } - ThreadState::Loading { .. } | ThreadState::LoadError(..) => None, + ThreadState::Ready { thread, .. } => Some(thread), + ThreadState::Unauthenticated { .. } + | ThreadState::Loading { .. } + | ThreadState::LoadError(..) => None, } } @@ -325,7 +301,7 @@ impl AcpThreadView { self.last_error.take(); if let Some(thread) = self.thread() { - thread.update(cx, |thread, cx| thread.cancel(cx)).detach(); + self._cancel_task = Some(thread.update(cx, |thread, cx| thread.cancel(cx))); } } @@ -362,7 +338,7 @@ impl AcpThreadView { self.last_error.take(); let mut ix = 0; - let mut chunks: Vec = Vec::new(); + let mut chunks: Vec = Vec::new(); let project = self.project.clone(); self.message_editor.update(cx, |editor, cx| { let text = editor.text(cx); @@ -374,12 +350,19 @@ impl AcpThreadView { { let crease_range = crease.range().to_offset(&snapshot.buffer_snapshot); if crease_range.start > ix { - chunks.push(acp::UserMessageChunk::Text { - text: text[ix..crease_range.start].to_string(), - }); + chunks.push(text[ix..crease_range.start].into()); } if let Some(abs_path) = project.read(cx).absolute_path(&project_path, cx) { - chunks.push(acp::UserMessageChunk::Path { path: abs_path }); + let path_str = abs_path.display().to_string(); + chunks.push(acp::ContentBlock::ResourceLink(acp::ResourceLink { + uri: path_str.clone(), + name: path_str, + annotations: None, + description: None, + mime_type: None, + size: None, + title: None, + })); } ix = crease_range.end; } @@ -388,9 +371,7 @@ impl AcpThreadView { if ix < text.len() { let last_chunk = text[ix..].trim(); if !last_chunk.is_empty() { - chunks.push(acp::UserMessageChunk::Text { - text: last_chunk.into(), - }); + chunks.push(last_chunk.into()); } } }) @@ -401,8 +382,7 @@ impl AcpThreadView { } let Some(thread) = self.thread() else { return }; - let message = acp::SendUserMessageParams { chunks }; - let task = thread.update(cx, |thread, cx| thread.send(message.clone(), cx)); + let task = thread.update(cx, |thread, cx| thread.send(chunks.clone(), cx)); cx.spawn(async move |this, cx| { let result = task.await; @@ -424,7 +404,7 @@ impl AcpThreadView { editor.remove_creases(mention_set.lock().drain(), cx) }); - self.message_history.borrow_mut().push(message); + self.message_history.borrow_mut().push(chunks); } fn previous_history_message( @@ -490,7 +470,7 @@ impl AcpThreadView { message_editor: Entity, mention_set: Arc>, project: Entity, - message: Option<&acp::SendUserMessageParams>, + message: Option<&Vec>, window: &mut Window, cx: &mut Context, ) -> bool { @@ -503,18 +483,19 @@ impl AcpThreadView { let mut text = String::new(); let mut mentions = Vec::new(); - for chunk in &message.chunks { + for chunk in message { match chunk { - acp::UserMessageChunk::Text { text: chunk } => { - text.push_str(&chunk); + acp::ContentBlock::Text(text_content) => { + text.push_str(&text_content.text); } - acp::UserMessageChunk::Path { path } => { + acp::ContentBlock::ResourceLink(resource_link) => { + let path = Path::new(&resource_link.uri); let start = text.len(); - let content = MentionPath::new(path).to_string(); + let content = MentionPath::new(&path).to_string(); text.push_str(&content); let end = text.len(); if let Some(project_path) = - project.read(cx).project_path_for_absolute_path(path, cx) + project.read(cx).project_path_for_absolute_path(&path, cx) { let filename: SharedString = path .file_name() @@ -525,6 +506,9 @@ impl AcpThreadView { mentions.push((start..end, project_path, filename)); } } + acp::ContentBlock::Image(_) + | acp::ContentBlock::Audio(_) + | acp::ContentBlock::Resource(_) => {} } } @@ -590,71 +574,79 @@ impl AcpThreadView { window: &mut Window, cx: &mut Context, ) { - let Some(multibuffer) = self.entry_diff_multibuffer(entry_ix, cx) else { + let Some(multibuffers) = self.entry_diff_multibuffers(entry_ix, cx) else { return; }; - if self.diff_editors.contains_key(&multibuffer.entity_id()) { - return; - } + let multibuffers = multibuffers.collect::>(); - let editor = cx.new(|cx| { - let mut editor = Editor::new( - EditorMode::Full { - scale_ui_elements_with_buffer_font_size: false, - show_active_line_background: false, - sized_by_content: true, - }, - multibuffer.clone(), - None, - window, - cx, - ); - editor.set_show_gutter(false, cx); - editor.disable_inline_diagnostics(); - editor.disable_expand_excerpt_buttons(cx); - editor.set_show_vertical_scrollbar(false, cx); - editor.set_minimap_visibility(MinimapVisibility::Disabled, window, cx); - editor.set_soft_wrap_mode(SoftWrap::None, cx); - editor.scroll_manager.set_forbid_vertical_scroll(true); - editor.set_show_indent_guides(false, cx); - editor.set_read_only(true); - editor.set_show_breakpoints(false, cx); - editor.set_show_code_actions(false, cx); - editor.set_show_git_diff_gutter(false, cx); - editor.set_expand_all_diff_hunks(cx); - editor.set_text_style_refinement(TextStyleRefinement { - font_size: Some( - TextSize::Small - .rems(cx) - .to_pixels(ThemeSettings::get_global(cx).agent_font_size(cx)) - .into(), - ), - ..Default::default() + for multibuffer in multibuffers { + if self.diff_editors.contains_key(&multibuffer.entity_id()) { + return; + } + + let editor = cx.new(|cx| { + let mut editor = Editor::new( + EditorMode::Full { + scale_ui_elements_with_buffer_font_size: false, + show_active_line_background: false, + sized_by_content: true, + }, + multibuffer.clone(), + None, + window, + cx, + ); + editor.set_show_gutter(false, cx); + editor.disable_inline_diagnostics(); + editor.disable_expand_excerpt_buttons(cx); + editor.set_show_vertical_scrollbar(false, cx); + editor.set_minimap_visibility(MinimapVisibility::Disabled, window, cx); + editor.set_soft_wrap_mode(SoftWrap::None, cx); + editor.scroll_manager.set_forbid_vertical_scroll(true); + editor.set_show_indent_guides(false, cx); + editor.set_read_only(true); + editor.set_show_breakpoints(false, cx); + editor.set_show_code_actions(false, cx); + editor.set_show_git_diff_gutter(false, cx); + editor.set_expand_all_diff_hunks(cx); + editor.set_text_style_refinement(TextStyleRefinement { + font_size: Some( + TextSize::Small + .rems(cx) + .to_pixels(ThemeSettings::get_global(cx).agent_font_size(cx)) + .into(), + ), + ..Default::default() + }); + editor }); - editor - }); - let entity_id = multibuffer.entity_id(); - cx.observe_release(&multibuffer, move |this, _, _| { - this.diff_editors.remove(&entity_id); - }) - .detach(); + let entity_id = multibuffer.entity_id(); + cx.observe_release(&multibuffer, move |this, _, _| { + this.diff_editors.remove(&entity_id); + }) + .detach(); - self.diff_editors.insert(entity_id, editor); + self.diff_editors.insert(entity_id, editor); + } } - fn entry_diff_multibuffer(&self, entry_ix: usize, cx: &App) -> Option> { + fn entry_diff_multibuffers( + &self, + entry_ix: usize, + cx: &App, + ) -> Option>> { let entry = self.thread()?.read(cx).entries().get(entry_ix)?; - entry.diff().map(|diff| diff.multibuffer.clone()) + Some(entry.diffs().map(|diff| diff.multibuffer.clone())) } fn authenticate(&mut self, window: &mut Window, cx: &mut Context) { - let Some(thread) = self.thread().cloned() else { + let ThreadState::Unauthenticated { ref connection } = self.thread_state else { return; }; self.last_error.take(); - let authenticate = thread.read(cx).authenticate(); + let authenticate = connection.authenticate(cx); self.auth_task = Some(cx.spawn_in(window, { let project = self.project.clone(); let agent = self.agent.clone(); @@ -684,15 +676,16 @@ impl AcpThreadView { fn authorize_tool_call( &mut self, - id: ToolCallId, - outcome: acp::ToolCallConfirmationOutcome, + tool_call_id: acp::ToolCallId, + option_id: acp::PermissionOptionId, + option_kind: acp::PermissionOptionKind, cx: &mut Context, ) { let Some(thread) = self.thread() else { return; }; thread.update(cx, |thread, cx| { - thread.authorize_tool_call(id, outcome, cx); + thread.authorize_tool_call(tool_call_id, option_id, option_kind, cx); }); cx.notify(); } @@ -719,10 +712,12 @@ impl AcpThreadView { .border_1() .border_color(cx.theme().colors().border) .text_xs() - .child(self.render_markdown( - message.content.clone(), - user_message_markdown_style(window, cx), - )), + .children(message.content.markdown().map(|md| { + self.render_markdown( + md.clone(), + user_message_markdown_style(window, cx), + ) + })), ) .into_any(), AgentThreadEntry::AssistantMessage(AssistantMessage { chunks }) => { @@ -730,20 +725,28 @@ impl AcpThreadView { let message_body = v_flex() .w_full() .gap_2p5() - .children(chunks.iter().enumerate().map(|(chunk_ix, chunk)| { - match chunk { - AssistantMessageChunk::Text { chunk } => self - .render_markdown(chunk.clone(), style.clone()) - .into_any_element(), - AssistantMessageChunk::Thought { chunk } => self.render_thinking_block( - index, - chunk_ix, - chunk.clone(), - window, - cx, - ), - } - })) + .children(chunks.iter().enumerate().filter_map( + |(chunk_ix, chunk)| match chunk { + AssistantMessageChunk::Message { block } => { + block.markdown().map(|md| { + self.render_markdown(md.clone(), style.clone()) + .into_any_element() + }) + } + AssistantMessageChunk::Thought { block } => { + block.markdown().map(|md| { + self.render_thinking_block( + index, + chunk_ix, + md.clone(), + window, + cx, + ) + .into_any_element() + }) + } + }, + )) .into_any(); v_flex() @@ -871,7 +874,7 @@ impl AcpThreadView { let status_icon = match &tool_call.status { ToolCallStatus::WaitingForConfirmation { .. } => None, ToolCallStatus::Allowed { - status: acp::ToolCallStatus::Running, + status: acp::ToolCallStatus::InProgress, .. } => Some( Icon::new(IconName::ArrowCircle) @@ -885,13 +888,13 @@ impl AcpThreadView { .into_any(), ), ToolCallStatus::Allowed { - status: acp::ToolCallStatus::Finished, + status: acp::ToolCallStatus::Completed, .. } => None, ToolCallStatus::Rejected | ToolCallStatus::Canceled | ToolCallStatus::Allowed { - status: acp::ToolCallStatus::Error, + status: acp::ToolCallStatus::Failed, .. } => Some( Icon::new(IconName::X) @@ -909,34 +912,9 @@ impl AcpThreadView { .any(|content| matches!(content, ToolCallContent::Diff { .. })), }; - let is_collapsible = tool_call.content.is_some() && !needs_confirmation; + let is_collapsible = !tool_call.content.is_empty() && !needs_confirmation; let is_open = !is_collapsible || self.expanded_tool_calls.contains(&tool_call.id); - let content = if is_open { - match &tool_call.status { - ToolCallStatus::WaitingForConfirmation { confirmation, .. } => { - Some(self.render_tool_call_confirmation( - tool_call.id, - confirmation, - tool_call.content.as_ref(), - window, - cx, - )) - } - ToolCallStatus::Allowed { .. } | ToolCallStatus::Canceled => { - tool_call.content.as_ref().map(|content| { - div() - .py_1p5() - .child(self.render_tool_call_content(content, window, cx)) - .into_any_element() - }) - } - ToolCallStatus::Rejected => None, - } - } else { - None - }; - v_flex() .when(needs_confirmation, |this| { this.rounded_lg() @@ -976,9 +954,17 @@ impl AcpThreadView { }) .gap_1p5() .child( - Icon::new(tool_call.icon) - .size(IconSize::Small) - .color(Color::Muted), + Icon::new(match tool_call.kind { + acp::ToolKind::Read => IconName::ToolRead, + acp::ToolKind::Edit => IconName::ToolPencil, + acp::ToolKind::Search => IconName::ToolSearch, + acp::ToolKind::Execute => IconName::ToolTerminal, + acp::ToolKind::Think => IconName::ToolBulb, + acp::ToolKind::Fetch => IconName::ToolWeb, + acp::ToolKind::Other => IconName::ToolHammer, + }) + .size(IconSize::Small) + .color(Color::Muted), ) .child(if tool_call.locations.len() == 1 { let name = tool_call.locations[0] @@ -1023,16 +1009,16 @@ impl AcpThreadView { .gap_0p5() .when(is_collapsible, |this| { this.child( - Disclosure::new(("expand", tool_call.id.0), is_open) + Disclosure::new(("expand", entry_ix), is_open) .opened_icon(IconName::ChevronUp) .closed_icon(IconName::ChevronDown) .on_click(cx.listener({ - let id = tool_call.id; + let id = tool_call.id.clone(); move |this: &mut Self, _, _, cx: &mut Context| { if is_open { this.expanded_tool_calls.remove(&id); } else { - this.expanded_tool_calls.insert(id); + this.expanded_tool_calls.insert(id.clone()); } cx.notify(); } @@ -1042,12 +1028,12 @@ impl AcpThreadView { .children(status_icon), ) .on_click(cx.listener({ - let id = tool_call.id; + let id = tool_call.id.clone(); move |this: &mut Self, _, _, cx: &mut Context| { if is_open { this.expanded_tool_calls.remove(&id); } else { - this.expanded_tool_calls.insert(id); + this.expanded_tool_calls.insert(id.clone()); } cx.notify(); } @@ -1055,7 +1041,7 @@ impl AcpThreadView { ) .when(is_open, |this| { this.child( - div() + v_flex() .text_xs() .when(is_collapsible, |this| { this.mt_1() @@ -1064,7 +1050,44 @@ impl AcpThreadView { .bg(cx.theme().colors().editor_background) .rounded_lg() }) - .children(content), + .map(|this| { + if is_open { + match &tool_call.status { + ToolCallStatus::WaitingForConfirmation { options, .. } => this + .children(tool_call.content.iter().map(|content| { + div() + .py_1p5() + .child( + self.render_tool_call_content( + content, window, cx, + ), + ) + .into_any_element() + })) + .child(self.render_permission_buttons( + options, + entry_ix, + tool_call.id.clone(), + cx, + )), + ToolCallStatus::Allowed { .. } | ToolCallStatus::Canceled => { + this.children(tool_call.content.iter().map(|content| { + div() + .py_1p5() + .child( + self.render_tool_call_content( + content, window, cx, + ), + ) + .into_any_element() + })) + } + ToolCallStatus::Rejected => this, + } + } else { + this + } + }), ) }) } @@ -1076,14 +1099,20 @@ impl AcpThreadView { cx: &Context, ) -> AnyElement { match content { - ToolCallContent::Markdown { markdown } => { - div() - .p_2() - .child(self.render_markdown( - markdown.clone(), - default_markdown_style(false, window, cx), - )) - .into_any_element() + ToolCallContent::ContentBlock { content } => { + if let Some(md) = content.markdown() { + div() + .p_2() + .child( + self.render_markdown( + md.clone(), + default_markdown_style(false, window, cx), + ), + ) + .into_any_element() + } else { + Empty.into_any_element() + } } ToolCallContent::Diff { diff: Diff { multibuffer, .. }, @@ -1092,223 +1121,53 @@ impl AcpThreadView { } } - fn render_tool_call_confirmation( + fn render_permission_buttons( &self, - tool_call_id: ToolCallId, - confirmation: &ToolCallConfirmation, - content: Option<&ToolCallContent>, - window: &Window, - cx: &Context, - ) -> AnyElement { - let confirmation_container = v_flex().mt_1().py_1p5(); - - match confirmation { - ToolCallConfirmation::Edit { description } => confirmation_container - .child( - div() - .px_2() - .children(description.clone().map(|description| { - self.render_markdown( - description, - default_markdown_style(false, window, cx), - ) - })), - ) - .children(content.map(|content| self.render_tool_call_content(content, window, cx))) - .child(self.render_confirmation_buttons( - &[AlwaysAllowOption { - id: "always_allow", - label: "Always Allow Edits".into(), - outcome: acp::ToolCallConfirmationOutcome::AlwaysAllow, - }], - tool_call_id, - cx, - )) - .into_any(), - ToolCallConfirmation::Execute { - command, - root_command, - description, - } => confirmation_container - .child(v_flex().px_2().pb_1p5().child(command.clone()).children( - description.clone().map(|description| { - self.render_markdown(description, default_markdown_style(false, window, cx)) - .on_url_click({ - let workspace = self.workspace.clone(); - move |text, window, cx| { - Self::open_link(text, &workspace, window, cx); - } - }) - }), - )) - .children(content.map(|content| self.render_tool_call_content(content, window, cx))) - .child(self.render_confirmation_buttons( - &[AlwaysAllowOption { - id: "always_allow", - label: format!("Always Allow {root_command}").into(), - outcome: acp::ToolCallConfirmationOutcome::AlwaysAllow, - }], - tool_call_id, - cx, - )) - .into_any(), - ToolCallConfirmation::Mcp { - server_name, - tool_name: _, - tool_display_name, - description, - } => confirmation_container - .child( - v_flex() - .px_2() - .pb_1p5() - .child(format!("{server_name} - {tool_display_name}")) - .children(description.clone().map(|description| { - self.render_markdown( - description, - default_markdown_style(false, window, cx), - ) - })), - ) - .children(content.map(|content| self.render_tool_call_content(content, window, cx))) - .child(self.render_confirmation_buttons( - &[ - AlwaysAllowOption { - id: "always_allow_server", - label: format!("Always Allow {server_name}").into(), - outcome: acp::ToolCallConfirmationOutcome::AlwaysAllowMcpServer, - }, - AlwaysAllowOption { - id: "always_allow_tool", - label: format!("Always Allow {tool_display_name}").into(), - outcome: acp::ToolCallConfirmationOutcome::AlwaysAllowTool, - }, - ], - tool_call_id, - cx, - )) - .into_any(), - ToolCallConfirmation::Fetch { description, urls } => confirmation_container - .child( - v_flex() - .px_2() - .pb_1p5() - .gap_1() - .children(urls.iter().map(|url| { - h_flex().child( - Button::new(url.clone(), url) - .icon(IconName::ArrowUpRight) - .icon_color(Color::Muted) - .icon_size(IconSize::XSmall) - .on_click({ - let url = url.clone(); - move |_, _, cx| cx.open_url(&url) - }), - ) - })) - .children(description.clone().map(|description| { - self.render_markdown( - description, - default_markdown_style(false, window, cx), - ) - })), - ) - .children(content.map(|content| self.render_tool_call_content(content, window, cx))) - .child(self.render_confirmation_buttons( - &[AlwaysAllowOption { - id: "always_allow", - label: "Always Allow".into(), - outcome: acp::ToolCallConfirmationOutcome::AlwaysAllow, - }], - tool_call_id, - cx, - )) - .into_any(), - ToolCallConfirmation::Other { description } => confirmation_container - .child(v_flex().px_2().pb_1p5().child(self.render_markdown( - description.clone(), - default_markdown_style(false, window, cx), - ))) - .children(content.map(|content| self.render_tool_call_content(content, window, cx))) - .child(self.render_confirmation_buttons( - &[AlwaysAllowOption { - id: "always_allow", - label: "Always Allow".into(), - outcome: acp::ToolCallConfirmationOutcome::AlwaysAllow, - }], - tool_call_id, - cx, - )) - .into_any(), - } - } - - fn render_confirmation_buttons( - &self, - always_allow_options: &[AlwaysAllowOption], - tool_call_id: ToolCallId, + options: &[acp::PermissionOption], + entry_ix: usize, + tool_call_id: acp::ToolCallId, cx: &Context, ) -> Div { h_flex() - .pt_1p5() + .py_1p5() .px_1p5() .gap_1() .justify_end() .border_t_1() .border_color(self.tool_card_border_color(cx)) - .when(self.agent.supports_always_allow(), |this| { - this.children(always_allow_options.into_iter().map(|always_allow_option| { - let outcome = always_allow_option.outcome; - Button::new( - (always_allow_option.id, tool_call_id.0), - always_allow_option.label.clone(), - ) - .icon(IconName::CheckDouble) + .children(options.iter().map(|option| { + let option_id = SharedString::from(option.id.0.clone()); + Button::new((option_id, entry_ix), option.label.clone()) + .map(|this| match option.kind { + acp::PermissionOptionKind::AllowOnce => { + this.icon(IconName::Check).icon_color(Color::Success) + } + acp::PermissionOptionKind::AllowAlways => { + this.icon(IconName::CheckDouble).icon_color(Color::Success) + } + acp::PermissionOptionKind::RejectOnce => { + this.icon(IconName::X).icon_color(Color::Error) + } + acp::PermissionOptionKind::RejectAlways => { + this.icon(IconName::X).icon_color(Color::Error) + } + }) .icon_position(IconPosition::Start) .icon_size(IconSize::XSmall) - .icon_color(Color::Success) .on_click(cx.listener({ - let id = tool_call_id; + let tool_call_id = tool_call_id.clone(); + let option_id = option.id.clone(); + let option_kind = option.kind; move |this, _, _, cx| { - this.authorize_tool_call(id, outcome, cx); + this.authorize_tool_call( + tool_call_id.clone(), + option_id.clone(), + option_kind, + cx, + ); } })) - })) - }) - .child( - Button::new(("allow", tool_call_id.0), "Allow") - .icon(IconName::Check) - .icon_position(IconPosition::Start) - .icon_size(IconSize::XSmall) - .icon_color(Color::Success) - .on_click(cx.listener({ - let id = tool_call_id; - move |this, _, _, cx| { - this.authorize_tool_call( - id, - acp::ToolCallConfirmationOutcome::Allow, - cx, - ); - } - })), - ) - .child( - Button::new(("reject", tool_call_id.0), "Reject") - .icon(IconName::X) - .icon_position(IconPosition::Start) - .icon_size(IconSize::XSmall) - .icon_color(Color::Error) - .on_click(cx.listener({ - let id = tool_call_id; - move |this, _, _, cx| { - this.authorize_tool_call( - id, - acp::ToolCallConfirmationOutcome::Reject, - cx, - ); - } - })), - ) + })) } fn render_diff_editor(&self, multibuffer: &Entity) -> AnyElement { @@ -2245,12 +2104,11 @@ impl AcpThreadView { .languages .language_for_name("Markdown"); - let (thread_summary, markdown) = match &self.thread_state { - ThreadState::Ready { thread, .. } | ThreadState::Unauthenticated { thread } => { - let thread = thread.read(cx); - (thread.title().to_string(), thread.to_markdown(cx)) - } - ThreadState::Loading { .. } | ThreadState::LoadError(..) => return Task::ready(Ok(())), + let (thread_summary, markdown) = if let Some(thread) = self.thread() { + let thread = thread.read(cx); + (thread.title().to_string(), thread.to_markdown(cx)) + } else { + return Task::ready(Ok(())); }; window.spawn(cx, async move |cx| { diff --git a/crates/agent_ui/src/agent_diff.rs b/crates/agent_ui/src/agent_diff.rs index e69664ce88..ec0a11f86b 100644 --- a/crates/agent_ui/src/agent_diff.rs +++ b/crates/agent_ui/src/agent_diff.rs @@ -1506,8 +1506,7 @@ impl AgentDiff { .read(cx) .entries() .last() - .and_then(|entry| entry.diff()) - .is_some() + .map_or(false, |entry| entry.diffs().next().is_some()) { self.update_reviewing_editors(workspace, window, cx); } @@ -1517,8 +1516,7 @@ impl AgentDiff { .read(cx) .entries() .get(*ix) - .and_then(|entry| entry.diff()) - .is_some() + .map_or(false, |entry| entry.diffs().next().is_some()) { self.update_reviewing_editors(workspace, window, cx); } diff --git a/crates/agent_ui/src/agent_panel.rs b/crates/agent_ui/src/agent_panel.rs index a0250816a0..4b3db4bc1d 100644 --- a/crates/agent_ui/src/agent_panel.rs +++ b/crates/agent_ui/src/agent_panel.rs @@ -440,7 +440,7 @@ pub struct AgentPanel { local_timezone: UtcOffset, active_view: ActiveView, acp_message_history: - Rc>>, + Rc>>>, previous_view: Option, history_store: Entity, history: Entity, diff --git a/crates/context_server/src/client.rs b/crates/context_server/src/client.rs index 6b24d9b136..8c5e7da0f1 100644 --- a/crates/context_server/src/client.rs +++ b/crates/context_server/src/client.rs @@ -1,6 +1,6 @@ use anyhow::{Context as _, Result, anyhow}; use collections::HashMap; -use futures::{FutureExt, StreamExt, channel::oneshot, select}; +use futures::{FutureExt, StreamExt, channel::oneshot, future, select}; use gpui::{AppContext as _, AsyncApp, BackgroundExecutor, Task}; use parking_lot::Mutex; use postage::barrier; @@ -10,15 +10,19 @@ use smol::channel; use std::{ fmt, path::PathBuf, + pin::pin, sync::{ Arc, atomic::{AtomicI32, Ordering::SeqCst}, }, time::{Duration, Instant}, }; -use util::TryFutureExt; +use util::{ResultExt, TryFutureExt}; -use crate::transport::{StdioTransport, Transport}; +use crate::{ + transport::{StdioTransport, Transport}, + types::{CancelledParams, ClientNotification, Notification as _, notifications::Cancelled}, +}; const JSON_RPC_VERSION: &str = "2.0"; const REQUEST_TIMEOUT: Duration = Duration::from_secs(60); @@ -32,6 +36,7 @@ pub const INTERNAL_ERROR: i32 = -32603; type ResponseHandler = Box)>; type NotificationHandler = Box; +type RequestHandler = Box; #[derive(Debug, Clone, Eq, PartialEq, Hash, Serialize, Deserialize)] #[serde(untagged)] @@ -78,6 +83,15 @@ pub struct Request<'a, T> { pub params: T, } +#[derive(Serialize, Deserialize)] +pub struct AnyRequest<'a> { + pub jsonrpc: &'a str, + pub id: RequestId, + pub method: &'a str, + #[serde(skip_serializing_if = "is_null_value")] + pub params: Option<&'a RawValue>, +} + #[derive(Serialize, Deserialize)] struct AnyResponse<'a> { jsonrpc: &'a str, @@ -176,15 +190,23 @@ impl Client { Arc::new(Mutex::new(HashMap::<_, NotificationHandler>::default())); let response_handlers = Arc::new(Mutex::new(Some(HashMap::<_, ResponseHandler>::default()))); + let request_handlers = Arc::new(Mutex::new(HashMap::<_, RequestHandler>::default())); let receive_input_task = cx.spawn({ let notification_handlers = notification_handlers.clone(); let response_handlers = response_handlers.clone(); + let request_handlers = request_handlers.clone(); let transport = transport.clone(); async move |cx| { - Self::handle_input(transport, notification_handlers, response_handlers, cx) - .log_err() - .await + Self::handle_input( + transport, + notification_handlers, + request_handlers, + response_handlers, + cx, + ) + .log_err() + .await } }); let receive_err_task = cx.spawn({ @@ -230,13 +252,24 @@ impl Client { async fn handle_input( transport: Arc, notification_handlers: Arc>>, + request_handlers: Arc>>, response_handlers: Arc>>>, cx: &mut AsyncApp, ) -> anyhow::Result<()> { let mut receiver = transport.receive(); while let Some(message) = receiver.next().await { - if let Ok(response) = serde_json::from_str::(&message) { + log::trace!("recv: {}", &message); + if let Ok(request) = serde_json::from_str::(&message) { + let mut request_handlers = request_handlers.lock(); + if let Some(handler) = request_handlers.get_mut(request.method) { + handler( + request.id, + request.params.unwrap_or(RawValue::NULL), + cx.clone(), + ); + } + } else if let Ok(response) = serde_json::from_str::(&message) { if let Some(handlers) = response_handlers.lock().as_mut() { if let Some(handler) = handlers.remove(&response.id) { handler(Ok(message.to_string())); @@ -247,6 +280,8 @@ impl Client { if let Some(handler) = notification_handlers.get_mut(notification.method.as_str()) { handler(notification.params.unwrap_or(Value::Null), cx.clone()); } + } else { + log::error!("Unhandled JSON from context_server: {}", message); } } @@ -294,6 +329,24 @@ impl Client { &self, method: &str, params: impl Serialize, + ) -> Result { + self.request_impl(method, params, None).await + } + + pub async fn cancellable_request( + &self, + method: &str, + params: impl Serialize, + cancel_rx: oneshot::Receiver<()>, + ) -> Result { + self.request_impl(method, params, Some(cancel_rx)).await + } + + pub async fn request_impl( + &self, + method: &str, + params: impl Serialize, + cancel_rx: Option>, ) -> Result { let id = self.next_id.fetch_add(1, SeqCst); let request = serde_json::to_string(&Request { @@ -330,6 +383,16 @@ impl Client { send?; let mut timeout = executor.timer(REQUEST_TIMEOUT).fuse(); + let mut cancel_fut = pin!( + match cancel_rx { + Some(rx) => future::Either::Left(async { + rx.await.log_err(); + }), + None => future::Either::Right(future::pending()), + } + .fuse() + ); + select! { response = rx.fuse() => { let elapsed = started.elapsed(); @@ -348,6 +411,16 @@ impl Client { Err(_) => anyhow::bail!("cancelled") } } + _ = cancel_fut => { + self.notify( + Cancelled::METHOD, + ClientNotification::Cancelled(CancelledParams { + request_id: RequestId::Int(id), + reason: None + }) + ).log_err(); + anyhow::bail!("Request cancelled") + } _ = timeout => { log::error!("cancelled csp request task for {method:?} id {id} which took over {:?}", REQUEST_TIMEOUT); anyhow::bail!("Context server request timeout"); diff --git a/crates/context_server/src/protocol.rs b/crates/context_server/src/protocol.rs index d8bbac60d6..7263f502fa 100644 --- a/crates/context_server/src/protocol.rs +++ b/crates/context_server/src/protocol.rs @@ -6,6 +6,9 @@ //! of messages. use anyhow::Result; +use futures::channel::oneshot; +use gpui::AsyncApp; +use serde_json::Value; use crate::client::Client; use crate::types::{self, Notification, Request}; @@ -95,7 +98,24 @@ impl InitializedContextServerProtocol { self.inner.request(T::METHOD, params).await } + pub async fn cancellable_request( + &self, + params: T::Params, + cancel_rx: oneshot::Receiver<()>, + ) -> Result { + self.inner + .cancellable_request(T::METHOD, params, cancel_rx) + .await + } + pub fn notify(&self, params: T::Params) -> Result<()> { self.inner.notify(T::METHOD, params) } + + pub fn on_notification(&self, method: &'static str, f: F) + where + F: 'static + Send + FnMut(Value, AsyncApp), + { + self.inner.on_notification(method, f); + } } diff --git a/crates/context_server/src/types.rs b/crates/context_server/src/types.rs index 4a6fdcabd3..f92c86aa3c 100644 --- a/crates/context_server/src/types.rs +++ b/crates/context_server/src/types.rs @@ -3,6 +3,8 @@ use serde::de::DeserializeOwned; use serde::{Deserialize, Serialize}; use url::Url; +use crate::client::RequestId; + pub const LATEST_PROTOCOL_VERSION: &str = "2025-03-26"; pub const VERSION_2024_11_05: &str = "2024-11-05"; @@ -100,6 +102,7 @@ pub mod notifications { notification!("notifications/initialized", Initialized, ()); notification!("notifications/progress", Progress, ProgressParams); notification!("notifications/message", Message, MessageParams); + notification!("notifications/cancelled", Cancelled, CancelledParams); notification!( "notifications/resources/updated", ResourcesUpdated, @@ -617,11 +620,14 @@ pub enum ClientNotification { Initialized, Progress(ProgressParams), RootsListChanged, - Cancelled { - request_id: String, - #[serde(skip_serializing_if = "Option::is_none")] - reason: Option, - }, + Cancelled(CancelledParams), +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct CancelledParams { + pub request_id: RequestId, + #[serde(skip_serializing_if = "Option::is_none")] + pub reason: Option, } #[derive(Debug, Serialize, Deserialize)] From 1f7ff956bcef31f93db4b9841737c0bc893bafc9 Mon Sep 17 00:00:00 2001 From: Peter Tripp Date: Thu, 24 Jul 2025 14:29:28 -0400 Subject: [PATCH 0196/1052] Fix environment loading with nushell (#35002) Closes https://github.com/zed-industries/zed/issues/34739 I believe this is a regression introduced here: - https://github.com/zed-industries/zed/pull/33599 Release Notes: - Fixed a regression with loading environment variables in nushell --- crates/util/src/shell_env.rs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/crates/util/src/shell_env.rs b/crates/util/src/shell_env.rs index 21f6096f19..ed6c8a23cc 100644 --- a/crates/util/src/shell_env.rs +++ b/crates/util/src/shell_env.rs @@ -18,10 +18,13 @@ pub fn capture(directory: &std::path::Path) -> Result format!(">[1={}]", ENV_OUTPUT_FD), // `[1=0]` - _ => format!(">&{}", ENV_OUTPUT_FD), // `>&0` + const FD_STDIN: std::os::fd::RawFd = 0; + const FD_STDOUT: std::os::fd::RawFd = 1; + + let (fd_num, redir) = match shell_name { + Some("rc") => (FD_STDIN, format!(">[1={}]", FD_STDIN)), // `[1=0]` + Some("nu") => (FD_STDOUT, "".to_string()), + _ => (FD_STDIN, format!(">&{}", FD_STDIN)), // `>&0` }; command.stdin(Stdio::null()); command.stdout(Stdio::piped()); @@ -48,7 +51,7 @@ pub fn capture(directory: &std::path::Path) -> Result Date: Thu, 24 Jul 2025 11:44:26 -0700 Subject: [PATCH 0197/1052] Increase the number of parallel request handlers per connection (#35046) Discussed this with @ConradIrwin. The problem we're having with collab is that a bunch of LSP requests take a really long time to resolve, particularly `RefreshCodeLens`. But Those requests are sharing a limited amount of concurrency that we've allocated for all message traffic on one connection. That said, there's not _that_ many concurrent requests made at any one time. The burst traffic seems to top out in the low hundreds for these requests. So let's just expand the amount of space in the queue to accommodate these long-running requests while we work on upgrading our cloud infrastructure. Release Notes: - N/A Co-authored-by: finn --- crates/collab/src/rpc.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/collab/src/rpc.rs b/crates/collab/src/rpc.rs index 0735b08e89..5c5de2f36e 100644 --- a/crates/collab/src/rpc.rs +++ b/crates/collab/src/rpc.rs @@ -829,7 +829,7 @@ impl Server { // This arrangement ensures we will attempt to process earlier messages first, but fall // back to processing messages arrived later in the spirit of making progress. let mut foreground_message_handlers = FuturesUnordered::new(); - let concurrent_handlers = Arc::new(Semaphore::new(256)); + let concurrent_handlers = Arc::new(Semaphore::new(512)); loop { let next_message = async { let permit = concurrent_handlers.clone().acquire_owned().await.unwrap(); From 707df516647f07c05e0c04e67ee032279b3d8afa Mon Sep 17 00:00:00 2001 From: Peter Tripp Date: Thu, 24 Jul 2025 15:39:13 -0400 Subject: [PATCH 0198/1052] Fix environment loading with tcsh (#35054) Closes https://github.com/zed-industries/zed/issues/34973 Fixes an issue where environment variables were not loaded when the user's shell was tcsh and instead a file named `0` was dumped in the current working directory with a copy of your environment variables as json. Follow-up to: - https://github.com/zed-industries/zed/pull/35002 - https://github.com/zed-industries/zed/pull/33599 Release Notes: - Fixed a regression with loading environment variables in nushell --- crates/util/src/shell_env.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/util/src/shell_env.rs b/crates/util/src/shell_env.rs index ed6c8a23cc..d737999e45 100644 --- a/crates/util/src/shell_env.rs +++ b/crates/util/src/shell_env.rs @@ -23,7 +23,7 @@ pub fn capture(directory: &std::path::Path) -> Result (FD_STDIN, format!(">[1={}]", FD_STDIN)), // `[1=0]` - Some("nu") => (FD_STDOUT, "".to_string()), + Some("nu") | Some("tcsh") => (FD_STDOUT, "".to_string()), _ => (FD_STDIN, format!(">&{}", FD_STDIN)), // `>&0` }; command.stdin(Stdio::null()); From 66acc2698aa39468ea9a0beecc8892cc57f1a91f Mon Sep 17 00:00:00 2001 From: Zachary Hamm Date: Thu, 24 Jul 2025 17:25:21 -0500 Subject: [PATCH 0199/1052] git_hosting_providers: Support GitHub remote URLs that start with a slash (#34134) Remote URLs like `git@github.com:/zed-industries/zed` are valid git remotes, but currently Zed does not parse them correctly. The result is invalid "permalink" generation, and presumably other bugs anywhere that git remote urls are required for the current repository. This ensures Zed will parse those URLs correctly. Release Notes: - Improved support for GitHub remote urls where the username/organization is preceded by an extra `/` to match the behavior of `git`, `gh` and `github.com`. Co-authored-by: Peter Tripp --- .../src/providers/github.rs | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/crates/git_hosting_providers/src/providers/github.rs b/crates/git_hosting_providers/src/providers/github.rs index 649b2f30ae..30f8d058a7 100644 --- a/crates/git_hosting_providers/src/providers/github.rs +++ b/crates/git_hosting_providers/src/providers/github.rs @@ -159,7 +159,11 @@ impl GitHostingProvider for Github { } let mut path_segments = url.path_segments()?; - let owner = path_segments.next()?; + let mut owner = path_segments.next()?; + if owner.is_empty() { + owner = path_segments.next()?; + } + let repo = path_segments.next()?.trim_end_matches(".git"); Some(ParsedGitRemote { @@ -244,6 +248,22 @@ mod tests { use super::*; + #[test] + fn test_remote_url_with_root_slash() { + let remote_url = "git@github.com:/zed-industries/zed"; + let parsed_remote = Github::public_instance() + .parse_remote_url(remote_url) + .unwrap(); + + assert_eq!( + parsed_remote, + ParsedGitRemote { + owner: "zed-industries".into(), + repo: "zed".into(), + } + ); + } + #[test] fn test_invalid_self_hosted_remote_url() { let remote_url = "git@github.com:zed-industries/zed.git"; From f78a1123873526bb112183033641d9077b47981c Mon Sep 17 00:00:00 2001 From: Smit Barmase Date: Fri, 25 Jul 2025 05:13:09 +0530 Subject: [PATCH 0200/1052] gpui: Add `scroll_to_item_with_offset` to `UniformListScrollState` (#35064) Previously we had `ScrollStrategy::ToPosition(usize)` which lets you define the offset where you want to scroll that item to. This is the same as `ScrollStrategy::Top` but imagine some space reserved at the top. This PR removes `ScrollStrategy::ToPosition` in favor of `scroll_to_item_with_offset` which is the method to do the same. The reason to add this method is that now not just `ScrollStrategy::Top` but `ScrollStrategy::Center` can also uses this offset to center the item in the remaining unreserved space. ```rs // Before scroll_handle.scroll_to_item(index, ScrollStrategy::ToPosition(offset)); // After scroll_handle.scroll_to_item_with_offset(index, ScrollStrategy::Top, offset); // New! Centers item skipping first x items scroll_handle.scroll_to_item_with_offset(index, ScrollStrategy::Center, offset); ``` This will be useful for follow up PR. Release Notes: - N/A --- crates/gpui/src/elements/uniform_list.rs | 64 ++++++++++++++++------- crates/project_panel/src/project_panel.rs | 5 +- 2 files changed, 45 insertions(+), 24 deletions(-) diff --git a/crates/gpui/src/elements/uniform_list.rs b/crates/gpui/src/elements/uniform_list.rs index e80656a078..cdf90d4eb8 100644 --- a/crates/gpui/src/elements/uniform_list.rs +++ b/crates/gpui/src/elements/uniform_list.rs @@ -88,15 +88,24 @@ pub enum ScrollStrategy { /// May not be possible if there's not enough list items above the item scrolled to: /// in this case, the element will be placed at the closest possible position. Center, - /// Scrolls the element to be at the given item index from the top of the viewport. - ToPosition(usize), +} + +#[derive(Clone, Copy, Debug)] +#[allow(missing_docs)] +pub struct DeferredScrollToItem { + /// The item index to scroll to + pub item_index: usize, + /// The scroll strategy to use + pub strategy: ScrollStrategy, + /// The offset in number of items + pub offset: usize, } #[derive(Clone, Debug, Default)] #[allow(missing_docs)] pub struct UniformListScrollState { pub base_handle: ScrollHandle, - pub deferred_scroll_to_item: Option<(usize, ScrollStrategy)>, + pub deferred_scroll_to_item: Option, /// Size of the item, captured during last layout. pub last_item_size: Option, /// Whether the list was vertically flipped during last layout. @@ -126,7 +135,24 @@ impl UniformListScrollHandle { /// Scroll the list to the given item index. pub fn scroll_to_item(&self, ix: usize, strategy: ScrollStrategy) { - self.0.borrow_mut().deferred_scroll_to_item = Some((ix, strategy)); + self.0.borrow_mut().deferred_scroll_to_item = Some(DeferredScrollToItem { + item_index: ix, + strategy, + offset: 0, + }); + } + + /// Scroll the list to the given item index with an offset. + /// + /// For ScrollStrategy::Top, the item will be placed at the offset position from the top. + /// + /// For ScrollStrategy::Center, the item will be centered between offset and the last visible item. + pub fn scroll_to_item_with_offset(&self, ix: usize, strategy: ScrollStrategy, offset: usize) { + self.0.borrow_mut().deferred_scroll_to_item = Some(DeferredScrollToItem { + item_index: ix, + strategy, + offset, + }); } /// Check if the list is flipped vertically. @@ -139,7 +165,8 @@ impl UniformListScrollHandle { pub fn logical_scroll_top_index(&self) -> usize { let this = self.0.borrow(); this.deferred_scroll_to_item - .map(|(ix, _)| ix) + .as_ref() + .map(|deferred| deferred.item_index) .unwrap_or_else(|| this.base_handle.logical_scroll_top().0) } @@ -320,7 +347,8 @@ impl Element for UniformList { scroll_offset.x = Pixels::ZERO; } - if let Some((mut ix, scroll_strategy)) = shared_scroll_to_item { + if let Some(deferred_scroll) = shared_scroll_to_item { + let mut ix = deferred_scroll.item_index; if y_flipped { ix = self.item_count.saturating_sub(ix + 1); } @@ -329,23 +357,28 @@ impl Element for UniformList { let item_top = item_height * ix + padding.top; let item_bottom = item_top + item_height; let scroll_top = -updated_scroll_offset.y; + let offset_pixels = item_height * deferred_scroll.offset; let mut scrolled_to_top = false; - if item_top < scroll_top + padding.top { + + if item_top < scroll_top + padding.top + offset_pixels { scrolled_to_top = true; - updated_scroll_offset.y = -(item_top) + padding.top; + updated_scroll_offset.y = -(item_top) + padding.top + offset_pixels; } else if item_bottom > scroll_top + list_height - padding.bottom { scrolled_to_top = true; updated_scroll_offset.y = -(item_bottom - list_height) - padding.bottom; } - match scroll_strategy { + match deferred_scroll.strategy { ScrollStrategy::Top => {} ScrollStrategy::Center => { if scrolled_to_top { let item_center = item_top + item_height / 2.0; - let target_scroll_top = item_center - list_height / 2.0; - if item_top < scroll_top + let viewport_height = list_height - offset_pixels; + let viewport_center = offset_pixels + viewport_height / 2.0; + let target_scroll_top = item_center - viewport_center; + + if item_top < scroll_top + offset_pixels || item_bottom > scroll_top + list_height { updated_scroll_offset.y = -target_scroll_top @@ -355,15 +388,6 @@ impl Element for UniformList { } } } - ScrollStrategy::ToPosition(sticky_index) => { - let target_y_in_viewport = item_height * sticky_index; - let target_scroll_top = item_top - target_y_in_viewport; - let max_scroll_top = - (content_height - list_height).max(Pixels::ZERO); - let new_scroll_top = - target_scroll_top.clamp(Pixels::ZERO, max_scroll_top); - updated_scroll_offset.y = -new_scroll_top; - } } scroll_offset = *updated_scroll_offset } diff --git a/crates/project_panel/src/project_panel.rs b/crates/project_panel/src/project_panel.rs index 76be97e393..dd680981fc 100644 --- a/crates/project_panel/src/project_panel.rs +++ b/crates/project_panel/src/project_panel.rs @@ -4207,10 +4207,7 @@ impl ProjectPanel { this.marked_entries.clear(); if is_sticky { if let Some((_, _, index)) = this.index_for_entry(entry_id, worktree_id) { - let strategy = sticky_index - .map(ScrollStrategy::ToPosition) - .unwrap_or(ScrollStrategy::Top); - this.scroll_handle.scroll_to_item(index, strategy); + this.scroll_handle.scroll_to_item_with_offset(index, ScrollStrategy::Top, sticky_index.unwrap_or(0)); cx.notify(); // move down by 1px so that clicked item // don't count as sticky anymore From 4ee52433ae606b095a9054162060e59d33874e16 Mon Sep 17 00:00:00 2001 From: Daniel Sauble Date: Thu, 24 Jul 2025 17:00:59 -0700 Subject: [PATCH 0201/1052] Do not subtract gutter margin twice from the editor width (#34564) Closes #33176 In auto-height layouts, horizontal autoscroll can occur right before soft wrapping is triggered. This seems to be caused by gutter margin being subtracted twice from the editor width. If we subtract gutter width only once, the horizontal autoscroll behavior goes away. Before: https://github.com/user-attachments/assets/03b6687e-3c0e-4b34-8e07-a228bcc6f798 After: https://github.com/user-attachments/assets/84e54088-b5bd-4259-a193-d9fcf32cd3a7 Release Notes: - Fixes issue with auto-height layouts where horizontal autoscroll is triggered right before text wraps --------- Co-authored-by: MrSubidubi --- crates/editor/src/element.rs | 62 +++++++++++------------------------- 1 file changed, 18 insertions(+), 44 deletions(-) diff --git a/crates/editor/src/element.rs b/crates/editor/src/element.rs index 5fd6b028f4..7e77f113ac 100644 --- a/crates/editor/src/element.rs +++ b/crates/editor/src/element.rs @@ -7944,17 +7944,11 @@ impl Element for EditorElement { right: right_margin, }; - // Offset the content_bounds from the text_bounds by the gutter margin (which - // is roughly half a character wide) to make hit testing work more like how we want. - let content_offset = point(editor_margins.gutter.margin, Pixels::ZERO); - - let editor_content_width = editor_width - content_offset.x; - snapshot = self.editor.update(cx, |editor, cx| { editor.last_bounds = Some(bounds); editor.gutter_dimensions = gutter_dimensions; editor.set_visible_line_count(bounds.size.height / line_height, window, cx); - editor.set_visible_column_count(editor_content_width / em_advance); + editor.set_visible_column_count(editor_width / em_advance); if matches!( editor.mode, @@ -7966,10 +7960,10 @@ impl Element for EditorElement { let wrap_width = match editor.soft_wrap_mode(cx) { SoftWrap::GitDiff => None, SoftWrap::None => Some(wrap_width_for(MAX_LINE_LEN as u32 / 2)), - SoftWrap::EditorWidth => Some(editor_content_width), + SoftWrap::EditorWidth => Some(editor_width), SoftWrap::Column(column) => Some(wrap_width_for(column)), SoftWrap::Bounded(column) => { - Some(editor_content_width.min(wrap_width_for(column))) + Some(editor_width.min(wrap_width_for(column))) } }; @@ -7994,13 +7988,12 @@ impl Element for EditorElement { HitboxBehavior::Normal, ); + // Offset the content_bounds from the text_bounds by the gutter margin (which + // is roughly half a character wide) to make hit testing work more like how we want. + let content_offset = point(editor_margins.gutter.margin, Pixels::ZERO); let content_origin = text_hitbox.origin + content_offset; - let editor_text_bounds = - Bounds::from_corners(content_origin, bounds.bottom_right()); - - let height_in_lines = editor_text_bounds.size.height / line_height; - + let height_in_lines = bounds.size.height / line_height; let max_row = snapshot.max_point().row().as_f32(); // The max scroll position for the top of the window @@ -8384,7 +8377,6 @@ impl Element for EditorElement { glyph_grid_cell, size(longest_line_width, max_row.as_f32() * line_height), longest_line_blame_width, - editor_width, EditorSettings::get_global(cx), ); @@ -8456,7 +8448,7 @@ impl Element for EditorElement { MultiBufferRow(end_anchor.to_point(&snapshot.buffer_snapshot).row); let scroll_max = point( - ((scroll_width - editor_content_width) / em_advance).max(0.0), + ((scroll_width - editor_width) / em_advance).max(0.0), max_scroll_top, ); @@ -8468,7 +8460,7 @@ impl Element for EditorElement { if needs_horizontal_autoscroll.0 && let Some(new_scroll_position) = editor.autoscroll_horizontally( start_row, - editor_content_width, + editor_width, scroll_width, em_advance, &line_layouts, @@ -9049,7 +9041,6 @@ impl ScrollbarLayoutInformation { glyph_grid_cell: Size, document_size: Size, longest_line_blame_width: Pixels, - editor_width: Pixels, settings: &EditorSettings, ) -> Self { let vertical_overscroll = match settings.scroll_beyond_last_line { @@ -9060,19 +9051,11 @@ impl ScrollbarLayoutInformation { } }; - let right_margin = if document_size.width + longest_line_blame_width >= editor_width { - glyph_grid_cell.width - } else { - px(0.0) - }; - - let overscroll = size(right_margin + longest_line_blame_width, vertical_overscroll); - - let scroll_range = document_size + overscroll; + let overscroll = size(longest_line_blame_width, vertical_overscroll); ScrollbarLayoutInformation { editor_bounds, - scroll_range, + scroll_range: document_size + overscroll, glyph_grid_cell, } } @@ -9177,7 +9160,7 @@ struct EditorScrollbars { impl EditorScrollbars { pub fn from_scrollbar_axes( - settings_visibility: ScrollbarAxes, + show_scrollbar: ScrollbarAxes, layout_information: &ScrollbarLayoutInformation, content_offset: gpui::Point, scroll_position: gpui::Point, @@ -9215,22 +9198,13 @@ impl EditorScrollbars { }; let mut create_scrollbar_layout = |axis| { - settings_visibility - .along(axis) + let viewport_size = viewport_size.along(axis); + let scroll_range = scroll_range.along(axis); + + // We always want a vertical scrollbar track for scrollbar diagnostic visibility. + (show_scrollbar.along(axis) + && (axis == ScrollbarAxis::Vertical || scroll_range > viewport_size)) .then(|| { - ( - viewport_size.along(axis) - content_offset.along(axis), - scroll_range.along(axis), - ) - }) - .filter(|(viewport_size, scroll_range)| { - // The scrollbar should only be rendered if the content does - // not entirely fit into the editor - // However, this only applies to the horizontal scrollbar, as information about the - // vertical scrollbar layout is always needed for scrollbar diagnostics. - axis != ScrollbarAxis::Horizontal || viewport_size < scroll_range - }) - .map(|(viewport_size, scroll_range)| { ScrollbarLayout::new( window.insert_hitbox(scrollbar_bounds_for(axis), HitboxBehavior::Normal), viewport_size, From 6e4f7470413ab709f766793cd23c0aa65700cf99 Mon Sep 17 00:00:00 2001 From: Smit Barmase Date: Fri, 25 Jul 2025 06:21:38 +0530 Subject: [PATCH 0202/1052] project_panel: Fix autoscroll to treat entries behind sticky items as out of viewport (#35067) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #34831 Autoscroll centers items only if they’re out of viewport. Before this PR, entry behind sticky items was not considered out of viewport, and hence actions like `reveal in project panel` or focusing buffer would not autoscroll that entry into the view in that case. This PR fixes that by using recently added `scroll_to_item_with_offset` in https://github.com/zed-industries/zed/pull/35064. Release Notes: - Fixed issue where `pane: reveal in project panel` action was not working if the entry was behind sticky items. --- crates/project_panel/src/project_panel.rs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/crates/project_panel/src/project_panel.rs b/crates/project_panel/src/project_panel.rs index dd680981fc..05e6bfe4df 100644 --- a/crates/project_panel/src/project_panel.rs +++ b/crates/project_panel/src/project_panel.rs @@ -114,6 +114,7 @@ pub struct ProjectPanel { mouse_down: bool, hover_expand_task: Option>, previous_drag_position: Option>, + sticky_items_count: usize, } struct DragTargetEntry { @@ -572,6 +573,9 @@ impl ProjectPanel { if project_panel_settings.hide_root != new_settings.hide_root { this.update_visible_entries(None, cx); } + if project_panel_settings.sticky_scroll && !new_settings.sticky_scroll { + this.sticky_items_count = 0; + } project_panel_settings = new_settings; this.update_diagnostics(cx); cx.notify(); @@ -615,6 +619,7 @@ impl ProjectPanel { mouse_down: false, hover_expand_task: None, previous_drag_position: None, + sticky_items_count: 0, }; this.update_visible_entries(None, cx); @@ -2267,8 +2272,11 @@ impl ProjectPanel { fn autoscroll(&mut self, cx: &mut Context) { if let Some((_, _, index)) = self.selection.and_then(|s| self.index_for_selection(s)) { - self.scroll_handle - .scroll_to_item(index, ScrollStrategy::Center); + self.scroll_handle.scroll_to_item_with_offset( + index, + ScrollStrategy::Center, + self.sticky_items_count, + ); cx.notify(); } } @@ -5344,7 +5352,10 @@ impl Render for ProjectPanel { items }, |this, marker_entry, window, cx| { - this.render_sticky_entries(marker_entry, window, cx) + let sticky_entries = + this.render_sticky_entries(marker_entry, window, cx); + this.sticky_items_count = sticky_entries.len(); + sticky_entries }, ); list.with_decoration(if show_indent_guides { From a0f2019b6f031c0933022797932f8ca90871cfb4 Mon Sep 17 00:00:00 2001 From: morgankrey Date: Thu, 24 Jul 2025 19:18:40 -0600 Subject: [PATCH 0203/1052] Add sales tax to docs (#35059) Release Notes: - N/A --- docs/src/ai/billing.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/src/ai/billing.md b/docs/src/ai/billing.md index c49bacd883..e8587e1fef 100644 --- a/docs/src/ai/billing.md +++ b/docs/src/ai/billing.md @@ -25,3 +25,12 @@ From Stripe’s secure portal, you can download all current and historical invoi You can update your payment method, company name, address, and tax information through the billing portal. Please note that changes to billing information will **only** affect future invoices — **we cannot modify historical invoices**. + +## Sales Tax {#sales-tax} + +Zed partners with [Sphere](https://www.getsphere.com/) to calculate indirect tax rate for invoices, based on customer location and the product being sold. Tax is listed as a separate line item on invoices, based preferentially on your billing address, followed by the card issue country known to Stripe. + +If you have a VAT/GST ID, you can add it at [zed.dev/account](https://zed.dev/account) by clicking "Manage" on your subscription. Check the box that denotes you as a business. + +Please note that changes to VAT/GST IDs and address will **only** affect future invoices — **we cannot modify historical invoices**. +Questions or issues can be directed to billing-support@zed.dev. From b446d66be780c5b73f5b429033055e950edf27e2 Mon Sep 17 00:00:00 2001 From: morgankrey Date: Thu, 24 Jul 2025 19:25:39 -0600 Subject: [PATCH 0204/1052] Telemetry docs cleanup (#35060) Release Notes: - N/A --- docs/src/telemetry.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/docs/src/telemetry.md b/docs/src/telemetry.md index 20018b920a..7f5994be0c 100644 --- a/docs/src/telemetry.md +++ b/docs/src/telemetry.md @@ -22,8 +22,9 @@ The telemetry settings can also be configured via the welcome screen, which can Telemetry is sent from the application to our servers. Data is proxied through our servers to enable us to easily switch analytics services. We currently use: - [Axiom](https://axiom.co): Cloud-monitoring service - stores diagnostic events -- [Snowflake](https://snowflake.com): Business Intelligence platform - stores both diagnostic and metric events -- [Metabase](https://www.metabase.com): Dashboards - dashboards built around data pulled from Snowflake +- [Snowflake](https://snowflake.com): Data warehouse - stores both diagnostic and metric events +- [Hex](https://www.hex.tech): Dashboards and data exploration - accesses data stored in Snowflake +- [Amplitude](https://www.amplitude.com): Dashboards and data exploration - accesses data stored in Snowflake ## Types of Telemetry @@ -33,7 +34,7 @@ Diagnostic events include debug information (stack traces) from crash reports. R You can see what data is sent when a panic occurs by inspecting the `Panic` struct in [crates/telemetry_events/src/telemetry_events.rs](https://github.com/zed-industries/zed/blob/main/crates/telemetry_events/src/telemetry_events.rs) in the Zed repo. You can find additional information in the [Debugging Crashes](./development/debugging-crashes.md) documentation. -### Usage Data (Metrics) {#metrics} +### Client-Side Usage Data {#client-metrics} To improve Zed and understand how it is being used in the wild, Zed optionally collects usage data like the following: @@ -50,6 +51,12 @@ You can audit the metrics data that Zed has reported by running the command {#ac You can see the full list of the event types and exactly the data sent for each by inspecting the `Event` enum and the associated structs in [crates/telemetry_events/src/telemetry_events.rs](https://github.com/zed-industries/zed/blob/main/crates/telemetry_events/src/telemetry_events.rs) in the Zed repository. +### Server-Side Usage Data {#metrics} + +When using Zed's hosted services, we may collect, generate, and Process data to allow us to support users and improve our hosted offering. Examples include metadata around rate limiting and billing metrics/token usage. Zed does not persistently store user content or use user content to evaluate and/or improve our AI features, unless it is explicitly shared with Zed, and we have a zero-data retention agreement with Anthropic. + +You can see more about our stance on data collection (and that any prompt data shared with Zed is explicitly opt-in) at [AI Improvement](./ai/ai-improvement.md). + ## Concerns and Questions If you have concerns about telemetry, please feel free to [open an issue](https://github.com/zed-industries/zed/issues/new/choose). From 15c9da4ea4e740faa22cf7c740bed666fdf9ff4a Mon Sep 17 00:00:00 2001 From: Agus Zubiaga Date: Thu, 24 Jul 2025 23:19:20 -0300 Subject: [PATCH 0205/1052] Add ability to register tools in `McpServer` (#35068) Makes it easier to add tools to a server by implementing a trait Release Notes: - N/A --- crates/agent_servers/src/claude.rs | 11 +- crates/agent_servers/src/claude/mcp_server.rs | 418 +++++++++--------- crates/context_server/src/listener.rs | 217 ++++++++- crates/context_server/src/types.rs | 6 +- 4 files changed, 408 insertions(+), 244 deletions(-) diff --git a/crates/agent_servers/src/claude.rs b/crates/agent_servers/src/claude.rs index 5f35b4af73..d63d8c43cf 100644 --- a/crates/agent_servers/src/claude.rs +++ b/crates/agent_servers/src/claude.rs @@ -2,6 +2,7 @@ mod mcp_server; pub mod tools; use collections::HashMap; +use context_server::listener::McpServerTool; use project::Project; use settings::SettingsStore; use smol::process::Child; @@ -332,10 +333,16 @@ async fn spawn_claude( &format!( "mcp__{}__{}", mcp_server::SERVER_NAME, - mcp_server::PERMISSION_TOOL + mcp_server::PermissionTool::NAME, ), "--allowedTools", - "mcp__zed__Read,mcp__zed__Edit", + &format!( + "mcp__{}__{},mcp__{}__{}", + mcp_server::SERVER_NAME, + mcp_server::EditTool::NAME, + mcp_server::SERVER_NAME, + mcp_server::ReadTool::NAME + ), "--disallowedTools", "Read,Edit", ]) diff --git a/crates/agent_servers/src/claude/mcp_server.rs b/crates/agent_servers/src/claude/mcp_server.rs index 0a39a02931..4272a972dc 100644 --- a/crates/agent_servers/src/claude/mcp_server.rs +++ b/crates/agent_servers/src/claude/mcp_server.rs @@ -1,49 +1,24 @@ use std::path::PathBuf; +use crate::claude::tools::{ClaudeTool, EditToolParams, ReadToolParams}; use acp_thread::AcpThread; use agent_client_protocol as acp; use anyhow::{Context, Result}; use collections::HashMap; +use context_server::listener::{McpServerTool, ToolResponse}; use context_server::types::{ - CallToolParams, CallToolResponse, Implementation, InitializeParams, InitializeResponse, - ListToolsResponse, ProtocolVersion, ServerCapabilities, Tool, ToolAnnotations, - ToolResponseContent, ToolsCapabilities, requests, + Implementation, InitializeParams, InitializeResponse, ProtocolVersion, ServerCapabilities, + ToolAnnotations, ToolResponseContent, ToolsCapabilities, requests, }; -use gpui::{App, AsyncApp, Entity, Task, WeakEntity}; +use gpui::{App, AsyncApp, Task, WeakEntity}; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; -use crate::claude::tools::{ClaudeTool, EditToolParams, ReadToolParams}; - pub struct ClaudeZedMcpServer { server: context_server::listener::McpServer, } pub const SERVER_NAME: &str = "zed"; -pub const READ_TOOL: &str = "Read"; -pub const EDIT_TOOL: &str = "Edit"; -pub const PERMISSION_TOOL: &str = "Confirmation"; - -#[derive(Deserialize, JsonSchema, Debug)] -struct PermissionToolParams { - tool_name: String, - input: serde_json::Value, - tool_use_id: Option, -} - -#[derive(Serialize)] -#[serde(rename_all = "camelCase")] -struct PermissionToolResponse { - behavior: PermissionToolBehavior, - updated_input: serde_json::Value, -} - -#[derive(Serialize)] -#[serde(rename_all = "snake_case")] -enum PermissionToolBehavior { - Allow, - Deny, -} impl ClaudeZedMcpServer { pub async fn new( @@ -52,9 +27,15 @@ impl ClaudeZedMcpServer { ) -> Result { let mut mcp_server = context_server::listener::McpServer::new(cx).await?; mcp_server.handle_request::(Self::handle_initialize); - mcp_server.handle_request::(Self::handle_list_tools); - mcp_server.handle_request::(move |request, cx| { - Self::handle_call_tool(request, thread_rx.clone(), cx) + + mcp_server.add_tool(PermissionTool { + thread_rx: thread_rx.clone(), + }); + mcp_server.add_tool(ReadTool { + thread_rx: thread_rx.clone(), + }); + mcp_server.add_tool(EditTool { + thread_rx: thread_rx.clone(), }); Ok(Self { server: mcp_server }) @@ -96,193 +77,6 @@ impl ClaudeZedMcpServer { }) }) } - - fn handle_list_tools(_: (), cx: &App) -> Task> { - cx.foreground_executor().spawn(async move { - Ok(ListToolsResponse { - tools: vec![ - Tool { - name: PERMISSION_TOOL.into(), - input_schema: schemars::schema_for!(PermissionToolParams).into(), - description: None, - annotations: None, - }, - Tool { - name: READ_TOOL.into(), - input_schema: schemars::schema_for!(ReadToolParams).into(), - description: Some("Read the contents of a file. In sessions with mcp__zed__Read always use it instead of Read as it contains the most up-to-date contents.".to_string()), - annotations: Some(ToolAnnotations { - title: Some("Read file".to_string()), - read_only_hint: Some(true), - destructive_hint: Some(false), - open_world_hint: Some(false), - // if time passes the contents might change, but it's not going to do anything different - // true or false seem too strong, let's try a none. - idempotent_hint: None, - }), - }, - Tool { - name: EDIT_TOOL.into(), - input_schema: schemars::schema_for!(EditToolParams).into(), - description: Some("Edits a file. In sessions with mcp__zed__Edit always use it instead of Edit as it will show the diff to the user better.".to_string()), - annotations: Some(ToolAnnotations { - title: Some("Edit file".to_string()), - read_only_hint: Some(false), - destructive_hint: Some(false), - open_world_hint: Some(false), - idempotent_hint: Some(false), - }), - }, - ], - next_cursor: None, - meta: None, - }) - }) - } - - fn handle_call_tool( - request: CallToolParams, - mut thread_rx: watch::Receiver>, - cx: &App, - ) -> Task> { - cx.spawn(async move |cx| { - let Some(thread) = thread_rx.recv().await?.upgrade() else { - anyhow::bail!("Thread closed"); - }; - - if request.name.as_str() == PERMISSION_TOOL { - let input = - serde_json::from_value(request.arguments.context("Arguments required")?)?; - - let result = Self::handle_permissions_tool_call(input, thread, cx).await?; - Ok(CallToolResponse { - content: vec![ToolResponseContent::Text { - text: serde_json::to_string(&result)?, - }], - is_error: None, - meta: None, - }) - } else if request.name.as_str() == READ_TOOL { - let input = - serde_json::from_value(request.arguments.context("Arguments required")?)?; - - let content = Self::handle_read_tool_call(input, thread, cx).await?; - Ok(CallToolResponse { - content, - is_error: None, - meta: None, - }) - } else if request.name.as_str() == EDIT_TOOL { - let input = - serde_json::from_value(request.arguments.context("Arguments required")?)?; - - Self::handle_edit_tool_call(input, thread, cx).await?; - Ok(CallToolResponse { - content: vec![], - is_error: None, - meta: None, - }) - } else { - anyhow::bail!("Unsupported tool"); - } - }) - } - - fn handle_read_tool_call( - ReadToolParams { - abs_path, - offset, - limit, - }: ReadToolParams, - thread: Entity, - cx: &AsyncApp, - ) -> Task>> { - cx.spawn(async move |cx| { - let content = thread - .update(cx, |thread, cx| { - thread.read_text_file(abs_path, offset, limit, false, cx) - })? - .await?; - - Ok(vec![ToolResponseContent::Text { text: content }]) - }) - } - - fn handle_edit_tool_call( - params: EditToolParams, - thread: Entity, - cx: &AsyncApp, - ) -> Task> { - cx.spawn(async move |cx| { - let content = thread - .update(cx, |threads, cx| { - threads.read_text_file(params.abs_path.clone(), None, None, true, cx) - })? - .await?; - - let new_content = content.replace(¶ms.old_text, ¶ms.new_text); - if new_content == content { - return Err(anyhow::anyhow!("The old_text was not found in the content")); - } - - thread - .update(cx, |threads, cx| { - threads.write_text_file(params.abs_path, new_content, cx) - })? - .await?; - - Ok(()) - }) - } - - fn handle_permissions_tool_call( - params: PermissionToolParams, - thread: Entity, - cx: &AsyncApp, - ) -> Task> { - cx.spawn(async move |cx| { - let claude_tool = ClaudeTool::infer(¶ms.tool_name, params.input.clone()); - - let tool_call_id = - acp::ToolCallId(params.tool_use_id.context("Tool ID required")?.into()); - - let allow_option_id = acp::PermissionOptionId("allow".into()); - let reject_option_id = acp::PermissionOptionId("reject".into()); - - let chosen_option = thread - .update(cx, |thread, cx| { - thread.request_tool_call_permission( - claude_tool.as_acp(tool_call_id), - vec![ - acp::PermissionOption { - id: allow_option_id.clone(), - label: "Allow".into(), - kind: acp::PermissionOptionKind::AllowOnce, - }, - acp::PermissionOption { - id: reject_option_id, - label: "Reject".into(), - kind: acp::PermissionOptionKind::RejectOnce, - }, - ], - cx, - ) - })? - .await?; - - if chosen_option == allow_option_id { - Ok(PermissionToolResponse { - behavior: PermissionToolBehavior::Allow, - updated_input: params.input, - }) - } else { - Ok(PermissionToolResponse { - behavior: PermissionToolBehavior::Deny, - updated_input: params.input, - }) - } - }) - } } #[derive(Serialize)] @@ -299,3 +93,187 @@ pub struct McpServerConfig { #[serde(skip_serializing_if = "Option::is_none")] pub env: Option>, } + +// Tools + +#[derive(Clone)] +pub struct PermissionTool { + thread_rx: watch::Receiver>, +} + +#[derive(Deserialize, JsonSchema, Debug)] +pub struct PermissionToolParams { + tool_name: String, + input: serde_json::Value, + tool_use_id: Option, +} + +#[derive(Serialize)] +#[serde(rename_all = "camelCase")] +pub struct PermissionToolResponse { + behavior: PermissionToolBehavior, + updated_input: serde_json::Value, +} + +#[derive(Serialize)] +#[serde(rename_all = "snake_case")] +enum PermissionToolBehavior { + Allow, + Deny, +} + +impl McpServerTool for PermissionTool { + type Input = PermissionToolParams; + const NAME: &'static str = "Confirmation"; + + fn description(&self) -> &'static str { + "Request permission for tool calls" + } + + async fn run(&self, input: Self::Input, cx: &mut AsyncApp) -> Result { + let mut thread_rx = self.thread_rx.clone(); + let Some(thread) = thread_rx.recv().await?.upgrade() else { + anyhow::bail!("Thread closed"); + }; + + let claude_tool = ClaudeTool::infer(&input.tool_name, input.input.clone()); + let tool_call_id = acp::ToolCallId(input.tool_use_id.context("Tool ID required")?.into()); + let allow_option_id = acp::PermissionOptionId("allow".into()); + let reject_option_id = acp::PermissionOptionId("reject".into()); + + let chosen_option = thread + .update(cx, |thread, cx| { + thread.request_tool_call_permission( + claude_tool.as_acp(tool_call_id), + vec![ + acp::PermissionOption { + id: allow_option_id.clone(), + label: "Allow".into(), + kind: acp::PermissionOptionKind::AllowOnce, + }, + acp::PermissionOption { + id: reject_option_id.clone(), + label: "Reject".into(), + kind: acp::PermissionOptionKind::RejectOnce, + }, + ], + cx, + ) + })? + .await?; + + let response = if chosen_option == allow_option_id { + PermissionToolResponse { + behavior: PermissionToolBehavior::Allow, + updated_input: input.input, + } + } else { + PermissionToolResponse { + behavior: PermissionToolBehavior::Deny, + updated_input: input.input, + } + }; + + Ok(ToolResponse { + content: vec![ToolResponseContent::Text { + text: serde_json::to_string(&response)?, + }], + structured_content: None, + }) + } +} + +#[derive(Clone)] +pub struct ReadTool { + thread_rx: watch::Receiver>, +} + +impl McpServerTool for ReadTool { + type Input = ReadToolParams; + const NAME: &'static str = "Read"; + + fn description(&self) -> &'static str { + "Read the contents of a file. In sessions with mcp__zed__Read always use it instead of Read as it contains the most up-to-date contents." + } + + fn annotations(&self) -> ToolAnnotations { + ToolAnnotations { + title: Some("Read file".to_string()), + read_only_hint: Some(true), + destructive_hint: Some(false), + open_world_hint: Some(false), + idempotent_hint: None, + } + } + + async fn run(&self, input: Self::Input, cx: &mut AsyncApp) -> Result { + let mut thread_rx = self.thread_rx.clone(); + let Some(thread) = thread_rx.recv().await?.upgrade() else { + anyhow::bail!("Thread closed"); + }; + + let content = thread + .update(cx, |thread, cx| { + thread.read_text_file(input.abs_path, input.offset, input.limit, false, cx) + })? + .await?; + + Ok(ToolResponse { + content: vec![ToolResponseContent::Text { text: content }], + structured_content: None, + }) + } +} + +#[derive(Clone)] +pub struct EditTool { + thread_rx: watch::Receiver>, +} + +impl McpServerTool for EditTool { + type Input = EditToolParams; + const NAME: &'static str = "Edit"; + + fn description(&self) -> &'static str { + "Edits a file. In sessions with mcp__zed__Edit always use it instead of Edit as it will show the diff to the user better." + } + + fn annotations(&self) -> ToolAnnotations { + ToolAnnotations { + title: Some("Edit file".to_string()), + read_only_hint: Some(false), + destructive_hint: Some(false), + open_world_hint: Some(false), + idempotent_hint: Some(false), + } + } + + async fn run(&self, input: Self::Input, cx: &mut AsyncApp) -> Result { + let mut thread_rx = self.thread_rx.clone(); + let Some(thread) = thread_rx.recv().await?.upgrade() else { + anyhow::bail!("Thread closed"); + }; + + let content = thread + .update(cx, |thread, cx| { + thread.read_text_file(input.abs_path.clone(), None, None, true, cx) + })? + .await?; + + let new_content = content.replace(&input.old_text, &input.new_text); + if new_content == content { + return Err(anyhow::anyhow!("The old_text was not found in the content")); + } + + thread + .update(cx, |thread, cx| { + thread.write_text_file(input.abs_path, new_content, cx) + })? + .await?; + + Ok(ToolResponse { + content: vec![], + structured_content: None, + }) + } +} diff --git a/crates/context_server/src/listener.rs b/crates/context_server/src/listener.rs index 9295ad979c..087395a961 100644 --- a/crates/context_server/src/listener.rs +++ b/crates/context_server/src/listener.rs @@ -9,6 +9,8 @@ use futures::{ }; use gpui::{App, AppContext, AsyncApp, Task}; use net::async_net::{UnixListener, UnixStream}; +use schemars::JsonSchema; +use serde::de::DeserializeOwned; use serde_json::{json, value::RawValue}; use smol::stream::StreamExt; use std::{ @@ -20,16 +22,28 @@ use util::ResultExt; use crate::{ client::{CspResult, RequestId, Response}, - types::Request, + types::{ + CallToolParams, CallToolResponse, ListToolsResponse, Request, Tool, ToolAnnotations, + ToolResponseContent, + requests::{CallTool, ListTools}, + }, }; pub struct McpServer { socket_path: PathBuf, - handlers: Rc>>, + tools: Rc>>, + handlers: Rc>>, _server_task: Task<()>, } -type McpHandler = Box>, &App) -> Task>; +struct RegisteredTool { + tool: Tool, + handler: ToolHandler, +} + +type ToolHandler = + Box, &mut AsyncApp) -> Task>>; +type RequestHandler = Box>, &App) -> Task>; impl McpServer { pub fn new(cx: &AsyncApp) -> Task> { @@ -43,12 +57,14 @@ impl McpServer { cx.spawn(async move |cx| { let (temp_dir, socket_path, listener) = task.await?; + let tools = Rc::new(RefCell::new(HashMap::default())); let handlers = Rc::new(RefCell::new(HashMap::default())); let server_task = cx.spawn({ + let tools = tools.clone(); let handlers = handlers.clone(); async move |cx| { while let Ok((stream, _)) = listener.accept().await { - Self::serve_connection(stream, handlers.clone(), cx); + Self::serve_connection(stream, tools.clone(), handlers.clone(), cx); } drop(temp_dir) } @@ -56,11 +72,40 @@ impl McpServer { Ok(Self { socket_path, _server_task: server_task, - handlers: handlers.clone(), + tools, + handlers: handlers, }) }) } + pub fn add_tool(&mut self, tool: T) { + let registered_tool = RegisteredTool { + tool: Tool { + name: T::NAME.into(), + description: Some(tool.description().into()), + input_schema: schemars::schema_for!(T::Input).into(), + annotations: Some(tool.annotations()), + }, + handler: Box::new({ + let tool = tool.clone(); + move |input_value, cx| { + let input = match input_value { + Some(input) => serde_json::from_value(input), + None => serde_json::from_value(serde_json::Value::Null), + }; + + let tool = tool.clone(); + match input { + Ok(input) => cx.spawn(async move |cx| tool.run(input, cx).await), + Err(err) => Task::ready(Err(err.into())), + } + } + }), + }; + + self.tools.borrow_mut().insert(T::NAME, registered_tool); + } + pub fn handle_request( &mut self, f: impl Fn(R::Params, &App) -> Task> + 'static, @@ -120,7 +165,8 @@ impl McpServer { fn serve_connection( stream: UnixStream, - handlers: Rc>>, + tools: Rc>>, + handlers: Rc>>, cx: &mut AsyncApp, ) { let (read, write) = smol::io::split(stream); @@ -135,7 +181,13 @@ impl McpServer { let Some(request_id) = request.id.clone() else { continue; }; - if let Some(handler) = handlers.borrow().get(&request.method.as_ref()) { + + if request.method == CallTool::METHOD { + Self::handle_call_tool(request_id, request.params, &tools, &outgoing_tx, cx) + .await; + } else if request.method == ListTools::METHOD { + Self::handle_list_tools(request.id.unwrap(), &tools, &outgoing_tx); + } else if let Some(handler) = handlers.borrow().get(&request.method.as_ref()) { let outgoing_tx = outgoing_tx.clone(); if let Some(task) = cx @@ -149,25 +201,122 @@ impl McpServer { .detach(); } } else { - outgoing_tx - .unbounded_send( - serde_json::to_string(&Response::<()> { - jsonrpc: "2.0", - id: request.id.unwrap(), - value: CspResult::Error(Some(crate::client::Error { - message: format!("unhandled method {}", request.method), - code: -32601, - })), - }) - .unwrap(), - ) - .ok(); + Self::send_err( + request_id, + format!("unhandled method {}", request.method), + &outgoing_tx, + ); } } }) .detach(); } + fn handle_list_tools( + request_id: RequestId, + tools: &Rc>>, + outgoing_tx: &UnboundedSender, + ) { + let response = ListToolsResponse { + tools: tools.borrow().values().map(|t| t.tool.clone()).collect(), + next_cursor: None, + meta: None, + }; + + outgoing_tx + .unbounded_send( + serde_json::to_string(&Response { + jsonrpc: "2.0", + id: request_id, + value: CspResult::Ok(Some(response)), + }) + .unwrap_or_default(), + ) + .ok(); + } + + async fn handle_call_tool( + request_id: RequestId, + params: Option>, + tools: &Rc>>, + outgoing_tx: &UnboundedSender, + cx: &mut AsyncApp, + ) { + let result: Result = match params.as_ref() { + Some(params) => serde_json::from_str(params.get()), + None => serde_json::from_value(serde_json::Value::Null), + }; + + match result { + Ok(params) => { + if let Some(tool) = tools.borrow().get(¶ms.name.as_ref()) { + let outgoing_tx = outgoing_tx.clone(); + + let task = (tool.handler)(params.arguments, cx); + cx.spawn(async move |_| { + let response = match task.await { + Ok(result) => CallToolResponse { + content: result.content, + is_error: Some(false), + meta: None, + structured_content: result.structured_content, + }, + Err(err) => CallToolResponse { + content: vec![ToolResponseContent::Text { + text: err.to_string(), + }], + is_error: Some(true), + meta: None, + structured_content: None, + }, + }; + + outgoing_tx + .unbounded_send( + serde_json::to_string(&Response { + jsonrpc: "2.0", + id: request_id, + value: CspResult::Ok(Some(response)), + }) + .unwrap_or_default(), + ) + .ok(); + }) + .detach(); + } else { + Self::send_err( + request_id, + format!("Tool not found: {}", params.name), + &outgoing_tx, + ); + } + } + Err(err) => { + Self::send_err(request_id, err.to_string(), &outgoing_tx); + } + } + } + + fn send_err( + request_id: RequestId, + message: impl Into, + outgoing_tx: &UnboundedSender, + ) { + outgoing_tx + .unbounded_send( + serde_json::to_string(&Response::<()> { + jsonrpc: "2.0", + id: request_id, + value: CspResult::Error(Some(crate::client::Error { + message: message.into(), + code: -32601, + })), + }) + .unwrap(), + ) + .ok(); + } + async fn handle_io( mut outgoing_rx: UnboundedReceiver, incoming_tx: UnboundedSender, @@ -216,6 +365,34 @@ impl McpServer { } } +pub trait McpServerTool { + type Input: DeserializeOwned + JsonSchema; + const NAME: &'static str; + + fn description(&self) -> &'static str; + + fn annotations(&self) -> ToolAnnotations { + ToolAnnotations { + title: None, + read_only_hint: None, + destructive_hint: None, + idempotent_hint: None, + open_world_hint: None, + } + } + + fn run( + &self, + input: Self::Input, + cx: &mut AsyncApp, + ) -> impl Future>; +} + +pub struct ToolResponse { + pub content: Vec, + pub structured_content: Option, +} + #[derive(Serialize, Deserialize)] struct RawRequest { #[serde(skip_serializing_if = "Option::is_none")] diff --git a/crates/context_server/src/types.rs b/crates/context_server/src/types.rs index f92c86aa3c..c95d9008bc 100644 --- a/crates/context_server/src/types.rs +++ b/crates/context_server/src/types.rs @@ -495,7 +495,7 @@ pub struct RootsCapabilities { pub list_changed: Option, } -#[derive(Debug, Serialize, Deserialize)] +#[derive(Clone, Debug, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct Tool { pub name: String, @@ -506,7 +506,7 @@ pub struct Tool { pub annotations: Option, } -#[derive(Debug, Serialize, Deserialize)] +#[derive(Clone, Debug, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct ToolAnnotations { /// A human-readable title for the tool. @@ -679,6 +679,8 @@ pub struct CallToolResponse { pub is_error: Option, #[serde(rename = "_meta", skip_serializing_if = "Option::is_none")] pub meta: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub structured_content: Option, } #[derive(Debug, Serialize, Deserialize)] From af0c909924d5b5b46432847fce2afb4bc8d78ee2 Mon Sep 17 00:00:00 2001 From: Agus Zubiaga Date: Thu, 24 Jul 2025 23:57:18 -0300 Subject: [PATCH 0206/1052] McpServerTool output schema (#35069) Add an `Output` associated type to `McpServerTool`, so that we can include its schema in `tools/list`. Release Notes: - N/A --- crates/agent_servers/src/claude/mcp_server.rs | 30 +++++++++++--- crates/context_server/src/listener.rs | 40 +++++++++++++++---- crates/context_server/src/types.rs | 2 + 3 files changed, 59 insertions(+), 13 deletions(-) diff --git a/crates/agent_servers/src/claude/mcp_server.rs b/crates/agent_servers/src/claude/mcp_server.rs index 4272a972dc..a320a6d37f 100644 --- a/crates/agent_servers/src/claude/mcp_server.rs +++ b/crates/agent_servers/src/claude/mcp_server.rs @@ -124,13 +124,19 @@ enum PermissionToolBehavior { impl McpServerTool for PermissionTool { type Input = PermissionToolParams; + type Output = (); + const NAME: &'static str = "Confirmation"; fn description(&self) -> &'static str { "Request permission for tool calls" } - async fn run(&self, input: Self::Input, cx: &mut AsyncApp) -> Result { + async fn run( + &self, + input: Self::Input, + cx: &mut AsyncApp, + ) -> Result> { let mut thread_rx = self.thread_rx.clone(); let Some(thread) = thread_rx.recv().await?.upgrade() else { anyhow::bail!("Thread closed"); @@ -178,7 +184,7 @@ impl McpServerTool for PermissionTool { content: vec![ToolResponseContent::Text { text: serde_json::to_string(&response)?, }], - structured_content: None, + structured_content: (), }) } } @@ -190,6 +196,8 @@ pub struct ReadTool { impl McpServerTool for ReadTool { type Input = ReadToolParams; + type Output = (); + const NAME: &'static str = "Read"; fn description(&self) -> &'static str { @@ -206,7 +214,11 @@ impl McpServerTool for ReadTool { } } - async fn run(&self, input: Self::Input, cx: &mut AsyncApp) -> Result { + async fn run( + &self, + input: Self::Input, + cx: &mut AsyncApp, + ) -> Result> { let mut thread_rx = self.thread_rx.clone(); let Some(thread) = thread_rx.recv().await?.upgrade() else { anyhow::bail!("Thread closed"); @@ -220,7 +232,7 @@ impl McpServerTool for ReadTool { Ok(ToolResponse { content: vec![ToolResponseContent::Text { text: content }], - structured_content: None, + structured_content: (), }) } } @@ -232,6 +244,8 @@ pub struct EditTool { impl McpServerTool for EditTool { type Input = EditToolParams; + type Output = (); + const NAME: &'static str = "Edit"; fn description(&self) -> &'static str { @@ -248,7 +262,11 @@ impl McpServerTool for EditTool { } } - async fn run(&self, input: Self::Input, cx: &mut AsyncApp) -> Result { + async fn run( + &self, + input: Self::Input, + cx: &mut AsyncApp, + ) -> Result> { let mut thread_rx = self.thread_rx.clone(); let Some(thread) = thread_rx.recv().await?.upgrade() else { anyhow::bail!("Thread closed"); @@ -273,7 +291,7 @@ impl McpServerTool for EditTool { Ok(ToolResponse { content: vec![], - structured_content: None, + structured_content: (), }) } } diff --git a/crates/context_server/src/listener.rs b/crates/context_server/src/listener.rs index 087395a961..192f530816 100644 --- a/crates/context_server/src/listener.rs +++ b/crates/context_server/src/listener.rs @@ -41,8 +41,12 @@ struct RegisteredTool { handler: ToolHandler, } -type ToolHandler = - Box, &mut AsyncApp) -> Task>>; +type ToolHandler = Box< + dyn Fn( + Option, + &mut AsyncApp, + ) -> Task>>, +>; type RequestHandler = Box>, &App) -> Task>; impl McpServer { @@ -79,11 +83,19 @@ impl McpServer { } pub fn add_tool(&mut self, tool: T) { + let output_schema = schemars::schema_for!(T::Output); + let unit_schema = schemars::schema_for!(()); + let registered_tool = RegisteredTool { tool: Tool { name: T::NAME.into(), description: Some(tool.description().into()), input_schema: schemars::schema_for!(T::Input).into(), + output_schema: if output_schema == unit_schema { + None + } else { + Some(output_schema.into()) + }, annotations: Some(tool.annotations()), }, handler: Box::new({ @@ -96,7 +108,15 @@ impl McpServer { let tool = tool.clone(); match input { - Ok(input) => cx.spawn(async move |cx| tool.run(input, cx).await), + Ok(input) => cx.spawn(async move |cx| { + let output = tool.run(input, cx).await?; + + Ok(ToolResponse { + content: output.content, + structured_content: serde_json::to_value(output.structured_content) + .unwrap_or_default(), + }) + }), Err(err) => Task::ready(Err(err.into())), } } @@ -259,7 +279,11 @@ impl McpServer { content: result.content, is_error: Some(false), meta: None, - structured_content: result.structured_content, + structured_content: if result.structured_content.is_null() { + None + } else { + Some(result.structured_content) + }, }, Err(err) => CallToolResponse { content: vec![ToolResponseContent::Text { @@ -367,6 +391,8 @@ impl McpServer { pub trait McpServerTool { type Input: DeserializeOwned + JsonSchema; + type Output: Serialize + JsonSchema; + const NAME: &'static str; fn description(&self) -> &'static str; @@ -385,12 +411,12 @@ pub trait McpServerTool { &self, input: Self::Input, cx: &mut AsyncApp, - ) -> impl Future>; + ) -> impl Future>>; } -pub struct ToolResponse { +pub struct ToolResponse { pub content: Vec, - pub structured_content: Option, + pub structured_content: T, } #[derive(Serialize, Deserialize)] diff --git a/crates/context_server/src/types.rs b/crates/context_server/src/types.rs index c95d9008bc..cd97ff95bc 100644 --- a/crates/context_server/src/types.rs +++ b/crates/context_server/src/types.rs @@ -502,6 +502,8 @@ pub struct Tool { #[serde(skip_serializing_if = "Option::is_none")] pub description: Option, pub input_schema: serde_json::Value, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub output_schema: Option, #[serde(skip_serializing_if = "Option::is_none")] pub annotations: Option, } From 631f9a1b31c16b53e65126163094622f54669960 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Fri, 25 Jul 2025 13:18:19 +0200 Subject: [PATCH 0207/1052] worktree: Improve performance with large # of repositories (#35052) In this PR we've reworked how git status updates are processed. Most notable change is moving the processing into a background thread (and splitting it across multiple background workers). We believe it is safe to do so, as worktree events are not deterministic (fs updates are not guaranteed to come in any order etc), so I've figured that git store should not be overly order-reliant anyways. Note that this PR does not solve perf issues wholesale - other parts of the system are still slow to process stuff (which I plan to nuke soon). Related to #34302 Release Notes: - Improved Zed's performance in projects with large # of repositories --------- Co-authored-by: Anthony Eid --- crates/project/src/git_store.rs | 132 ++++++++++++++---- crates/project/src/git_store/git_traversal.rs | 48 +++++-- 2 files changed, 142 insertions(+), 38 deletions(-) diff --git a/crates/project/src/git_store.rs b/crates/project/src/git_store.rs index eb16446daf..d131b6dd41 100644 --- a/crates/project/src/git_store.rs +++ b/crates/project/src/git_store.rs @@ -14,9 +14,10 @@ use collections::HashMap; pub use conflict_set::{ConflictRegion, ConflictSet, ConflictSetSnapshot, ConflictSetUpdate}; use fs::Fs; use futures::{ - FutureExt, StreamExt as _, + FutureExt, StreamExt, channel::{mpsc, oneshot}, future::{self, Shared}, + stream::FuturesOrdered, }; use git::{ BuildPermalinkParams, GitHostingProviderRegistry, WORK_DIRECTORY_REPO_PATH, @@ -63,8 +64,8 @@ use sum_tree::{Edit, SumTree, TreeSet}; use text::{Bias, BufferId}; use util::{ResultExt, debug_panic, post_inc}; use worktree::{ - File, PathKey, PathProgress, PathSummary, PathTarget, UpdatedGitRepositoriesSet, - UpdatedGitRepository, Worktree, + File, PathChange, PathKey, PathProgress, PathSummary, PathTarget, ProjectEntryId, + UpdatedGitRepositoriesSet, UpdatedGitRepository, Worktree, }; pub struct GitStore { @@ -1083,27 +1084,26 @@ impl GitStore { match event { WorktreeStoreEvent::WorktreeUpdatedEntries(worktree_id, updated_entries) => { - let mut paths_by_git_repo = HashMap::<_, Vec<_>>::default(); - for (relative_path, _, _) in updated_entries.iter() { - let Some((repo, repo_path)) = self.repository_and_path_for_project_path( - &(*worktree_id, relative_path.clone()).into(), - cx, - ) else { - continue; - }; - paths_by_git_repo.entry(repo).or_default().push(repo_path) - } - - for (repo, paths) in paths_by_git_repo { - repo.update(cx, |repo, cx| { - repo.paths_changed( - paths, - downstream - .as_ref() - .map(|downstream| downstream.updates_tx.clone()), - cx, - ); - }); + if let Some(worktree) = self + .worktree_store + .read(cx) + .worktree_for_id(*worktree_id, cx) + { + let paths_by_git_repo = + self.process_updated_entries(&worktree, updated_entries, cx); + let downstream = downstream + .as_ref() + .map(|downstream| downstream.updates_tx.clone()); + cx.spawn(async move |_, cx| { + let paths_by_git_repo = paths_by_git_repo.await; + for (repo, paths) in paths_by_git_repo { + repo.update(cx, |repo, cx| { + repo.paths_changed(paths, downstream.clone(), cx); + }) + .ok(); + } + }) + .detach(); } } WorktreeStoreEvent::WorktreeUpdatedGitRepositories(worktree_id, changed_repos) => { @@ -2191,6 +2191,80 @@ impl GitStore { .map(|(id, repo)| (*id, repo.read(cx).snapshot.clone())) .collect() } + + fn process_updated_entries( + &self, + worktree: &Entity, + updated_entries: &[(Arc, ProjectEntryId, PathChange)], + cx: &mut App, + ) -> Task, Vec>> { + let mut repo_paths = self + .repositories + .values() + .map(|repo| (repo.read(cx).work_directory_abs_path.clone(), repo.clone())) + .collect::>(); + let mut entries: Vec<_> = updated_entries + .iter() + .map(|(path, _, _)| path.clone()) + .collect(); + entries.sort(); + let worktree = worktree.read(cx); + + let entries = entries + .into_iter() + .filter_map(|path| worktree.absolutize(&path).ok()) + .collect::>(); + + let executor = cx.background_executor().clone(); + cx.background_executor().spawn(async move { + repo_paths.sort_by(|lhs, rhs| lhs.0.cmp(&rhs.0)); + let mut paths_by_git_repo = HashMap::<_, Vec<_>>::default(); + let mut tasks = FuturesOrdered::new(); + for (repo_path, repo) in repo_paths.into_iter().rev() { + let entries = entries.clone(); + let task = executor.spawn(async move { + // Find all repository paths that belong to this repo + let mut ix = entries.partition_point(|path| path < &*repo_path); + if ix == entries.len() { + return None; + }; + + let mut paths = vec![]; + // All paths prefixed by a given repo will constitute a continuous range. + while let Some(path) = entries.get(ix) + && let Some(repo_path) = + RepositorySnapshot::abs_path_to_repo_path_inner(&repo_path, &path) + { + paths.push((repo_path, ix)); + ix += 1; + } + Some((repo, paths)) + }); + tasks.push_back(task); + } + + // Now, let's filter out the "duplicate" entries that were processed by multiple distinct repos. + let mut path_was_used = vec![false; entries.len()]; + let tasks = tasks.collect::>().await; + // Process tasks from the back: iterating backwards allows us to see more-specific paths first. + // We always want to assign a path to it's innermost repository. + for t in tasks { + let Some((repo, paths)) = t else { + continue; + }; + let entry = paths_by_git_repo.entry(repo).or_default(); + for (repo_path, ix) in paths { + if path_was_used[ix] { + continue; + } + path_was_used[ix] = true; + entry.push(repo_path); + } + } + + paths_by_git_repo + }) + } } impl BufferGitState { @@ -2660,8 +2734,16 @@ impl RepositorySnapshot { } pub fn abs_path_to_repo_path(&self, abs_path: &Path) -> Option { + Self::abs_path_to_repo_path_inner(&self.work_directory_abs_path, abs_path) + } + + #[inline] + fn abs_path_to_repo_path_inner( + work_directory_abs_path: &Path, + abs_path: &Path, + ) -> Option { abs_path - .strip_prefix(&self.work_directory_abs_path) + .strip_prefix(&work_directory_abs_path) .map(RepoPath::from) .ok() } diff --git a/crates/project/src/git_store/git_traversal.rs b/crates/project/src/git_store/git_traversal.rs index cd173d5714..777042cb02 100644 --- a/crates/project/src/git_store/git_traversal.rs +++ b/crates/project/src/git_store/git_traversal.rs @@ -1,6 +1,6 @@ use collections::HashMap; -use git::status::GitSummary; -use std::{ops::Deref, path::Path}; +use git::{repository::RepoPath, status::GitSummary}; +use std::{collections::BTreeMap, ops::Deref, path::Path}; use sum_tree::Cursor; use text::Bias; use worktree::{Entry, PathProgress, PathTarget, Traversal}; @@ -11,7 +11,7 @@ use super::{RepositoryId, RepositorySnapshot, StatusEntry}; pub struct GitTraversal<'a> { traversal: Traversal<'a>, current_entry_summary: Option, - repo_snapshots: &'a HashMap, + repo_root_to_snapshot: BTreeMap<&'a Path, &'a RepositorySnapshot>, repo_location: Option<(RepositoryId, Cursor<'a, StatusEntry, PathProgress<'a>>)>, } @@ -20,16 +20,46 @@ impl<'a> GitTraversal<'a> { repo_snapshots: &'a HashMap, traversal: Traversal<'a>, ) -> GitTraversal<'a> { + let repo_root_to_snapshot = repo_snapshots + .values() + .map(|snapshot| (&*snapshot.work_directory_abs_path, snapshot)) + .collect(); let mut this = GitTraversal { traversal, - repo_snapshots, current_entry_summary: None, repo_location: None, + repo_root_to_snapshot, }; this.synchronize_statuses(true); this } + fn repo_root_for_path(&self, path: &Path) -> Option<(&'a RepositorySnapshot, RepoPath)> { + // We might need to perform a range search multiple times, as there may be a nested repository inbetween + // the target and our path. E.g: + // /our_root_repo/ + // .git/ + // other_repo/ + // .git/ + // our_query.txt + let mut query = path.ancestors(); + while let Some(query) = query.next() { + let (_, snapshot) = self + .repo_root_to_snapshot + .range(Path::new("")..=query) + .last()?; + + let stripped = snapshot + .abs_path_to_repo_path(path) + .map(|repo_path| (*snapshot, repo_path)); + if stripped.is_some() { + return stripped; + } + } + + None + } + fn synchronize_statuses(&mut self, reset: bool) { self.current_entry_summary = None; @@ -42,15 +72,7 @@ impl<'a> GitTraversal<'a> { return; }; - let Some((repo, repo_path)) = self - .repo_snapshots - .values() - .filter_map(|repo_snapshot| { - let repo_path = repo_snapshot.abs_path_to_repo_path(&abs_path)?; - Some((repo_snapshot, repo_path)) - }) - .max_by_key(|(repo, _)| repo.work_directory_abs_path.clone()) - else { + let Some((repo, repo_path)) = self.repo_root_for_path(&abs_path) else { self.repo_location = None; return; }; From 57b463fd0df7785d1695ae126e86c88542969be3 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Fri, 25 Jul 2025 14:23:52 +0200 Subject: [PATCH 0208/1052] typescript: Fix handling of jest/vitest tests with regex characters in name (#35090) Closes #35065 Release Notes: - JavaScript/TypeScript tasks: Fixed handling of Vitest/Jest tests with regex-specific characters in their name. --- crates/languages/src/typescript.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/languages/src/typescript.rs b/crates/languages/src/typescript.rs index 34b9c3224e..fb51544841 100644 --- a/crates/languages/src/typescript.rs +++ b/crates/languages/src/typescript.rs @@ -512,7 +512,7 @@ fn eslint_server_binary_arguments(server_path: &Path) -> Vec { fn replace_test_name_parameters(test_name: &str) -> String { let pattern = regex::Regex::new(r"(%|\$)[0-9a-zA-Z]+").unwrap(); - pattern.replace_all(test_name, "(.+?)").to_string() + regex::escape(&pattern.replace_all(test_name, "(.+?)")) } pub struct TypeScriptLspAdapter { From 9071341a1da9b0c9e3a88616e58646a4928c5414 Mon Sep 17 00:00:00 2001 From: Julia Ryan Date: Fri, 25 Jul 2025 07:40:26 -0500 Subject: [PATCH 0209/1052] Add TestCrash action (#35088) This triggers a crash that avoids our panic-handler, which is useful for testing that our crash reporting works even when you don't get a panic. Release Notes: - N/A --- crates/zed/src/zed.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/crates/zed/src/zed.rs b/crates/zed/src/zed.rs index 57534c8cd5..0a90f89fa4 100644 --- a/crates/zed/src/zed.rs +++ b/crates/zed/src/zed.rs @@ -111,6 +111,8 @@ actions!( Zoom, /// Triggers a test panic for debugging. TestPanic, + /// Triggers a hard crash for debugging. + TestCrash, ] ); @@ -126,6 +128,14 @@ pub fn init(cx: &mut App) { cx.on_action(|_: &RestoreBanner, cx| title_bar::restore_banner(cx)); if ReleaseChannel::global(cx) == ReleaseChannel::Dev || cx.has_flag::() { cx.on_action(|_: &TestPanic, _| panic!("Ran the TestPanic action")); + cx.on_action(|_: &TestCrash, _| { + unsafe extern "C" { + fn puts(s: *const i8); + } + unsafe { + puts(0xabad1d3a as *const i8); + } + }); } cx.on_action(|_: &OpenLog, cx| { with_active_or_new_workspace(cx, |workspace, window, cx| { From a2408f353ba27b42abdfd3c1d13d9344566779d7 Mon Sep 17 00:00:00 2001 From: Julia Ryan Date: Fri, 25 Jul 2025 08:12:55 -0500 Subject: [PATCH 0210/1052] Don't separately rebuild crates for the build platform (#35084) macos: - `cargo build`: 1838 -> 1400 - `cargo build -r`1891 -> 1400 linux: - `cargo build`: 1893 -> 1455 - `cargo build -r`: 1893 -> 1455 windows: - `cargo build`: 1830 -> 1392 - `cargo build -r`: 1880 -> 1392 We definitely want this change for debug builds, for release builds it's _possible_ that it pessimizes the critical path, but we'll see if it impacts CI times before merging. Release Notes: - N/A --------- Co-authored-by: Rahul Butani --- Cargo.toml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index 9062950127..ea01003f36 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -720,6 +720,11 @@ workspace-hack = { path = "tooling/workspace-hack" } split-debuginfo = "unpacked" codegen-units = 16 +# mirror configuration for crates compiled for the build platform +# (without this cargo will compile ~400 crates twice) +[profile.dev.build-override] +codegen-units = 16 + [profile.dev.package] taffy = { opt-level = 3 } cranelift-codegen = { opt-level = 3 } From f21ba9e2c6789fadd3a59f88e0eb1ff4e1f919db Mon Sep 17 00:00:00 2001 From: Umesh Yadav <23421535+imumesh18@users.noreply.github.com> Date: Fri, 25 Jul 2025 19:06:43 +0530 Subject: [PATCH 0211/1052] lmstudio: Propagate actual error message from server (#34538) Discovered in this issue: #34513 Previously, we were propagating deserialization errors to users when using LMStudio, instead of the actual error message sent from the LMStudio server. This change will help users understand why their request failed while streaming responses. Release Notes: - lmsudio: Display specific backend error messaging on failure rather than generic ones --------- Signed-off-by: Umesh Yadav Co-authored-by: Peter Tripp --- crates/lmstudio/src/lmstudio.rs | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/crates/lmstudio/src/lmstudio.rs b/crates/lmstudio/src/lmstudio.rs index a5477994ff..43c78115cd 100644 --- a/crates/lmstudio/src/lmstudio.rs +++ b/crates/lmstudio/src/lmstudio.rs @@ -1,4 +1,4 @@ -use anyhow::{Context as _, Result}; +use anyhow::{Context as _, Result, anyhow}; use futures::{AsyncBufReadExt, AsyncReadExt, StreamExt, io::BufReader, stream::BoxStream}; use http_client::{AsyncBody, HttpClient, Method, Request as HttpRequest, http}; use serde::{Deserialize, Serialize}; @@ -275,11 +275,16 @@ impl Capabilities { } } +#[derive(Serialize, Deserialize, Debug)] +pub struct LmStudioError { + pub message: String, +} + #[derive(Serialize, Deserialize, Debug)] #[serde(untagged)] pub enum ResponseStreamResult { Ok(ResponseStreamEvent), - Err { error: String }, + Err { error: LmStudioError }, } #[derive(Serialize, Deserialize, Debug)] @@ -392,7 +397,6 @@ pub async fn stream_chat_completion( let mut response = client.send(request).await?; if response.status().is_success() { let reader = BufReader::new(response.into_body()); - Ok(reader .lines() .filter_map(|line| async move { @@ -402,18 +406,16 @@ pub async fn stream_chat_completion( if line == "[DONE]" { None } else { - let result = serde_json::from_str(&line) - .context("Unable to parse chat completions response"); - if let Err(ref e) = result { - eprintln!("Error parsing line: {e}\nLine content: '{line}'"); + match serde_json::from_str(line) { + Ok(ResponseStreamResult::Ok(response)) => Some(Ok(response)), + Ok(ResponseStreamResult::Err { error, .. }) => { + Some(Err(anyhow!(error.message))) + } + Err(error) => Some(Err(anyhow!(error))), } - Some(result) } } - Err(e) => { - eprintln!("Error reading line: {e}"); - Some(Err(e.into())) - } + Err(error) => Some(Err(anyhow!(error))), } }) .boxed()) From 5de544eb4bf7841889da94c43b5f00d12398b2ef Mon Sep 17 00:00:00 2001 From: etimvr <80552426+etimvr@users.noreply.github.com> Date: Fri, 25 Jul 2025 20:58:05 +0700 Subject: [PATCH 0212/1052] Fix unnecessary Ollama model loading (#35032) Closes https://github.com/zed-industries/zed/issues/35031 Similar solution as in https://github.com/zed-industries/zed/pull/30589 Release Notes: - Fix unnecessary ollama model loading --- crates/language_models/src/provider/ollama.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/crates/language_models/src/provider/ollama.rs b/crates/language_models/src/provider/ollama.rs index dc81e8be18..c20ea0ee1e 100644 --- a/crates/language_models/src/provider/ollama.rs +++ b/crates/language_models/src/provider/ollama.rs @@ -192,12 +192,16 @@ impl LanguageModelProvider for OllamaLanguageModelProvider { IconName::AiOllama } - fn default_model(&self, cx: &App) -> Option> { - self.provided_models(cx).into_iter().next() + fn default_model(&self, _: &App) -> Option> { + // We shouldn't try to select default model, because it might lead to a load call for an unloaded model. + // In a constrained environment where user might not have enough resources it'll be a bad UX to select something + // to load by default. + None } - fn default_fast_model(&self, cx: &App) -> Option> { - self.default_model(cx) + fn default_fast_model(&self, _: &App) -> Option> { + // See explanation for default_model. + None } fn provided_models(&self, cx: &App) -> Vec> { From 0e9d955e9bf25383f637bc7d4e3a385f43d30e09 Mon Sep 17 00:00:00 2001 From: Justin Su Date: Fri, 25 Jul 2025 10:53:57 -0400 Subject: [PATCH 0213/1052] Hide Copilot commands when AI functionality is disabled (#35055) Follow-up of https://github.com/zed-industries/zed/pull/34896 Related to https://github.com/zed-industries/zed/issues/31346 cc @rtfeldman Release Notes: - Hide copilot commands when AI functionality is disabled --- crates/agent_ui/src/agent_ui.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/crates/agent_ui/src/agent_ui.rs b/crates/agent_ui/src/agent_ui.rs index cac0f1adac..6ae78585de 100644 --- a/crates/agent_ui/src/agent_ui.rs +++ b/crates/agent_ui/src/agent_ui.rs @@ -262,7 +262,9 @@ fn update_command_palette_filter(cx: &mut App) { if disable_ai { filter.hide_namespace("agent"); filter.hide_namespace("assistant"); + filter.hide_namespace("copilot"); filter.hide_namespace("zed_predict_onboarding"); + filter.hide_namespace("edit_prediction"); use editor::actions::{ @@ -282,6 +284,7 @@ fn update_command_palette_filter(cx: &mut App) { } else { filter.show_namespace("agent"); filter.show_namespace("assistant"); + filter.show_namespace("copilot"); filter.show_namespace("zed_predict_onboarding"); filter.show_namespace("edit_prediction"); From 985350f9e8fcaea66750c8b4a99d07a0ef0f39cf Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Fri, 25 Jul 2025 17:39:50 +0200 Subject: [PATCH 0214/1052] terminal: Support ~ in cwd field of task definitions (#35097) Closes #35022 Release Notes: - Fixed `~` not being expanded correctly in `cwd` field of task definitions. --- crates/project/src/terminals.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/crates/project/src/terminals.rs b/crates/project/src/terminals.rs index 8cfbdff311..973d4e8811 100644 --- a/crates/project/src/terminals.rs +++ b/crates/project/src/terminals.rs @@ -213,17 +213,24 @@ impl Project { cx: &mut Context, ) -> Result> { let this = &mut *self; + let ssh_details = this.ssh_details(cx); let path: Option> = match &kind { TerminalKind::Shell(path) => path.as_ref().map(|path| Arc::from(path.as_ref())), TerminalKind::Task(spawn_task) => { if let Some(cwd) = &spawn_task.cwd { - Some(Arc::from(cwd.as_ref())) + if ssh_details.is_some() { + Some(Arc::from(cwd.as_ref())) + } else { + let cwd = cwd.to_string_lossy(); + let tilde_substituted = shellexpand::tilde(&cwd); + Some(Arc::from(Path::new(tilde_substituted.as_ref()))) + } } else { this.active_project_directory(cx) } } }; - let ssh_details = this.ssh_details(cx); + let is_ssh_terminal = ssh_details.is_some(); let mut settings_location = None; From abb3ed1ed1bee71a8fd0c5e805f4020a9aa20ab6 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Fri, 25 Jul 2025 17:48:09 +0200 Subject: [PATCH 0215/1052] git: Fix commit modal contents being searchable (#35099) Fixes #35093 Release Notes: - Fixed Git commit editor being searchable. --- crates/git_ui/src/git_panel.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/crates/git_ui/src/git_panel.rs b/crates/git_ui/src/git_panel.rs index 061833a6c7..a8d1da7daf 100644 --- a/crates/git_ui/src/git_panel.rs +++ b/crates/git_ui/src/git_panel.rs @@ -380,6 +380,9 @@ pub(crate) fn commit_message_editor( window: &mut Window, cx: &mut Context, ) -> Editor { + project.update(cx, |this, cx| { + this.mark_buffer_as_non_searchable(commit_message_buffer.read(cx).remote_id(), cx); + }); let buffer = cx.new(|cx| MultiBuffer::singleton(commit_message_buffer, cx)); let max_lines = if in_panel { MAX_PANEL_EDITOR_LINES } else { 18 }; let mut commit_editor = Editor::new( From 993d5753d5997ca0766626dc225771aac76031f7 Mon Sep 17 00:00:00 2001 From: Haojian Wu Date: Fri, 25 Jul 2025 18:14:44 +0200 Subject: [PATCH 0216/1052] docs: Add a missing "," in the C/C++ debugger configuration (#35098) Release Notes: - N/A --- docs/src/languages/c.md | 2 +- docs/src/languages/cpp.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/src/languages/c.md b/docs/src/languages/c.md index 14a11c0d66..8db1bb6712 100644 --- a/docs/src/languages/c.md +++ b/docs/src/languages/c.md @@ -77,7 +77,7 @@ You can use CodeLLDB or GDB to debug native binaries. (Make sure that your build "command": "make", "args": ["-j8"], "cwd": "$ZED_WORKTREE_ROOT" - } + }, "program": "$ZED_WORKTREE_ROOT/build/prog", "request": "launch", "adapter": "CodeLLDB" diff --git a/docs/src/languages/cpp.md b/docs/src/languages/cpp.md index 1273bce2ac..e84bb6ea50 100644 --- a/docs/src/languages/cpp.md +++ b/docs/src/languages/cpp.md @@ -127,7 +127,7 @@ You can use CodeLLDB or GDB to debug native binaries. (Make sure that your build "command": "make", "args": ["-j8"], "cwd": "$ZED_WORKTREE_ROOT" - } + }, "program": "$ZED_WORKTREE_ROOT/build/prog", "request": "launch", "adapter": "CodeLLDB" From 2f812c339c1e1f01a3c04d38ca5190520df73c85 Mon Sep 17 00:00:00 2001 From: Umesh Yadav <23421535+imumesh18@users.noreply.github.com> Date: Fri, 25 Jul 2025 22:25:38 +0530 Subject: [PATCH 0217/1052] agent_ui: Fix delay when loading keybindings in the Agent panel settings (#34954) Fixes a annoying lag in agent settings panel where the keybindings would show up after a lag. Close to 1-2 secs. It was a simple fix previously we were not passing the focus handler to context menu which made the keybindings lookup slower compared to other parts like git panel and title bar profile dropdown. | Before | After | |--------|--------| | | | Release Notes: - Fix delay when loading keybindings in the Agent panel settings --- crates/agent_ui/src/agent_panel.rs | 116 +++++++++++++++-------------- 1 file changed, 60 insertions(+), 56 deletions(-) diff --git a/crates/agent_ui/src/agent_panel.rs b/crates/agent_ui/src/agent_panel.rs index 4b3db4bc1d..43c1167af8 100644 --- a/crates/agent_ui/src/agent_panel.rs +++ b/crates/agent_ui/src/agent_panel.rs @@ -2016,65 +2016,69 @@ impl AgentPanel { ) .anchor(Corner::TopRight) .with_handle(self.agent_panel_menu_handle.clone()) - .menu(move |window, cx| { - Some(ContextMenu::build(window, cx, |mut menu, _window, _| { - if let Some(usage) = usage { + .menu({ + let focus_handle = focus_handle.clone(); + move |window, cx| { + Some(ContextMenu::build(window, cx, |mut menu, _window, _| { + menu = menu.context(focus_handle.clone()); + if let Some(usage) = usage { + menu = menu + .header_with_link("Prompt Usage", "Manage", account_url.clone()) + .custom_entry( + move |_window, cx| { + let used_percentage = match usage.limit { + UsageLimit::Limited(limit) => { + Some((usage.amount as f32 / limit as f32) * 100.) + } + UsageLimit::Unlimited => None, + }; + + h_flex() + .flex_1() + .gap_1p5() + .children(used_percentage.map(|percent| { + ProgressBar::new("usage", percent, 100., cx) + })) + .child( + Label::new(match usage.limit { + UsageLimit::Limited(limit) => { + format!("{} / {limit}", usage.amount) + } + UsageLimit::Unlimited => { + format!("{} / ∞", usage.amount) + } + }) + .size(LabelSize::Small) + .color(Color::Muted), + ) + .into_any_element() + }, + move |_, cx| cx.open_url(&zed_urls::account_url(cx)), + ) + .separator() + } + menu = menu - .header_with_link("Prompt Usage", "Manage", account_url.clone()) - .custom_entry( - move |_window, cx| { - let used_percentage = match usage.limit { - UsageLimit::Limited(limit) => { - Some((usage.amount as f32 / limit as f32) * 100.) - } - UsageLimit::Unlimited => None, - }; - - h_flex() - .flex_1() - .gap_1p5() - .children(used_percentage.map(|percent| { - ProgressBar::new("usage", percent, 100., cx) - })) - .child( - Label::new(match usage.limit { - UsageLimit::Limited(limit) => { - format!("{} / {limit}", usage.amount) - } - UsageLimit::Unlimited => { - format!("{} / ∞", usage.amount) - } - }) - .size(LabelSize::Small) - .color(Color::Muted), - ) - .into_any_element() - }, - move |_, cx| cx.open_url(&zed_urls::account_url(cx)), + .header("MCP Servers") + .action( + "View Server Extensions", + Box::new(zed_actions::Extensions { + category_filter: Some( + zed_actions::ExtensionCategoryFilter::ContextServers, + ), + id: None, + }), ) - .separator() - } + .action("Add Custom Server…", Box::new(AddContextServer)) + .separator(); - menu = menu - .header("MCP Servers") - .action( - "View Server Extensions", - Box::new(zed_actions::Extensions { - category_filter: Some( - zed_actions::ExtensionCategoryFilter::ContextServers, - ), - id: None, - }), - ) - .action("Add Custom Server…", Box::new(AddContextServer)) - .separator(); - - menu = menu - .action("Rules…", Box::new(OpenRulesLibrary::default())) - .action("Settings", Box::new(OpenConfiguration)) - .action(zoom_in_label, Box::new(ToggleZoom)); - menu - })) + menu = menu + .action("Rules…", Box::new(OpenRulesLibrary::default())) + .action("Settings", Box::new(OpenConfiguration)) + .action(zoom_in_label, Box::new(ToggleZoom)); + menu + })) + } }); h_flex() From cd5095872748ef2d56fa03b54e40b6aaa5ff7906 Mon Sep 17 00:00:00 2001 From: Kainoa Kanter Date: Fri, 25 Jul 2025 10:17:16 -0700 Subject: [PATCH 0218/1052] Add icon for SurrealQL files (#34855) Release Notes: - Added icon for SurrealQL (`.surql`) files --------- Co-authored-by: Danilo Leal --- assets/icons/file_icons/surrealql.svg | 3 +++ crates/theme/src/icon_theme.rs | 2 ++ 2 files changed, 5 insertions(+) create mode 100644 assets/icons/file_icons/surrealql.svg diff --git a/assets/icons/file_icons/surrealql.svg b/assets/icons/file_icons/surrealql.svg new file mode 100644 index 0000000000..076f93e808 --- /dev/null +++ b/assets/icons/file_icons/surrealql.svg @@ -0,0 +1,3 @@ + + + diff --git a/crates/theme/src/icon_theme.rs b/crates/theme/src/icon_theme.rs index 09f5df06b0..baa928d722 100644 --- a/crates/theme/src/icon_theme.rs +++ b/crates/theme/src/icon_theme.rs @@ -216,6 +216,7 @@ const FILE_SUFFIXES_BY_ICON_KEY: &[(&str, &[&str])] = &[ "stylelintrc.yml", ], ), + ("surrealql", &["surql"]), ("svelte", &["svelte"]), ("swift", &["swift"]), ("tcl", &["tcl"]), @@ -340,6 +341,7 @@ const FILE_ICONS: &[(&str, &str)] = &[ ("solidity", "icons/file_icons/file.svg"), ("storage", "icons/file_icons/database.svg"), ("stylelint", "icons/file_icons/javascript.svg"), + ("surrealql", "icons/file_icons/surrealql.svg"), ("svelte", "icons/file_icons/html.svg"), ("swift", "icons/file_icons/swift.svg"), ("tcl", "icons/file_icons/tcl.svg"), From 4abe14f94a30c0fc9c4e0e3ef14cae7609f7b429 Mon Sep 17 00:00:00 2001 From: Anthony Eid <56899983+Anthony-Eid@users.noreply.github.com> Date: Fri, 25 Jul 2025 13:19:05 -0400 Subject: [PATCH 0219/1052] keymap ui: Resize columns on double click improvement (#35095) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR improves the behavior of resetting a column's size by double-clicking on its column handle. We now shrink/grow to the side that has more leftover/additional space. We also improved the below 1. dragging was a couple of pixels off to the left because we didn't take the column handle’s width into account. 2. Column dragging now has memory and will shift things to their exact position when reversing a drag before letting the drag handle go. 3. Improved our test infrastructure. 4. Double clicking on a column's header resizes the column Release Notes: - N/A --------- Co-authored-by: Ben Kunkle --- crates/settings_ui/Cargo.toml | 3 + crates/settings_ui/src/ui_components/table.rs | 637 +++++++++++++++--- 2 files changed, 546 insertions(+), 94 deletions(-) diff --git a/crates/settings_ui/Cargo.toml b/crates/settings_ui/Cargo.toml index 02327045fd..25f033469d 100644 --- a/crates/settings_ui/Cargo.toml +++ b/crates/settings_ui/Cargo.toml @@ -45,3 +45,6 @@ ui_input.workspace = true util.workspace = true workspace-hack.workspace = true workspace.workspace = true + +[dev-dependencies] +db = {"workspace"= true, "features" = ["test-support"]} diff --git a/crates/settings_ui/src/ui_components/table.rs b/crates/settings_ui/src/ui_components/table.rs index 69207f559b..65778c20eb 100644 --- a/crates/settings_ui/src/ui_components/table.rs +++ b/crates/settings_ui/src/ui_components/table.rs @@ -2,9 +2,9 @@ use std::{ops::Range, rc::Rc, time::Duration}; use editor::{EditorSettings, ShowScrollbar, scroll::ScrollbarAutoHide}; use gpui::{ - AbsoluteLength, AppContext, Axis, Context, DefiniteLength, DragMoveEvent, Entity, FocusHandle, - Length, ListHorizontalSizingBehavior, ListSizingBehavior, MouseButton, Point, Stateful, Task, - UniformListScrollHandle, WeakEntity, transparent_black, uniform_list, + AbsoluteLength, AppContext, Axis, Context, DefiniteLength, DragMoveEvent, Entity, EntityId, + FocusHandle, Length, ListHorizontalSizingBehavior, ListSizingBehavior, MouseButton, Point, + Stateful, Task, UniformListScrollHandle, WeakEntity, transparent_black, uniform_list, }; use itertools::intersperse_with; @@ -13,10 +13,12 @@ use ui::{ ActiveTheme as _, AnyElement, App, Button, ButtonCommon as _, ButtonStyle, Color, Component, ComponentScope, Div, ElementId, FixedWidth as _, FluentBuilder as _, Indicator, InteractiveElement, IntoElement, ParentElement, Pixels, RegisterComponent, RenderOnce, - Scrollbar, ScrollbarState, StatefulInteractiveElement, Styled, StyledExt as _, + Scrollbar, ScrollbarState, SharedString, StatefulInteractiveElement, Styled, StyledExt as _, StyledTypography, Window, div, example_group_with_title, h_flex, px, single_example, v_flex, }; +const RESIZE_COLUMN_WIDTH: f32 = 5.0; + #[derive(Debug)] struct DraggedColumn(usize); @@ -227,7 +229,7 @@ impl TableInteractionState { .id("column-resize-handle") .absolute() .left_neg_0p5() - .w(px(5.0)) + .w(px(RESIZE_COLUMN_WIDTH)) .h_full(); if resizable_columns @@ -478,6 +480,7 @@ impl ResizeBehavior { pub struct ColumnWidths { widths: [DefiniteLength; COLS], + visible_widths: [DefiniteLength; COLS], cached_bounds_width: Pixels, initialized: bool, } @@ -486,6 +489,7 @@ impl ColumnWidths { pub fn new(_: &mut App) -> Self { Self { widths: [DefiniteLength::default(); COLS], + visible_widths: [DefiniteLength::default(); COLS], cached_bounds_width: Default::default(), initialized: false, } @@ -512,46 +516,105 @@ impl ColumnWidths { let rem_size = window.rem_size(); let initial_sizes = initial_sizes.map(|length| Self::get_fraction(&length, bounds_width, rem_size)); - let mut widths = self + let widths = self .widths .map(|length| Self::get_fraction(&length, bounds_width, rem_size)); - let diff = initial_sizes[double_click_position] - widths[double_click_position]; + let updated_widths = Self::reset_to_initial_size( + double_click_position, + widths, + initial_sizes, + resize_behavior, + ); + self.widths = updated_widths.map(DefiniteLength::Fraction); + self.visible_widths = self.widths; + } - if diff > 0.0 { - let diff_remaining = self.propagate_resize_diff_right( - diff, - double_click_position, - &mut widths, - resize_behavior, - ); + fn reset_to_initial_size( + col_idx: usize, + mut widths: [f32; COLS], + initial_sizes: [f32; COLS], + resize_behavior: &[ResizeBehavior; COLS], + ) -> [f32; COLS] { + // RESET: + // Part 1: + // Figure out if we should shrink/grow the selected column + // Get diff which represents the change in column we want to make initial size delta curr_size = diff + // + // Part 2: We need to decide which side column we should move and where + // + // If we want to grow our column we should check the left/right columns diff to see what side + // has a greater delta than their initial size. Likewise, if we shrink our column we should check + // the left/right column diffs to see what side has the smallest delta. + // + // Part 3: resize + // + // col_idx represents the column handle to the right of an active column + // + // If growing and right has the greater delta { + // shift col_idx to the right + // } else if growing and left has the greater delta { + // shift col_idx - 1 to the left + // } else if shrinking and the right has the greater delta { + // shift + // } { + // + // } + // } + // + // if we need to shrink, then if the right + // - if diff_remaining > 0.0 && double_click_position > 0 { - self.propagate_resize_diff_left( - -diff_remaining, - double_click_position - 1, + // DRAGGING + // we get diff which represents the change in the _drag handle_ position + // -diff => dragging left -> + // grow the column to the right of the handle as much as we can shrink columns to the left of the handle + // +diff => dragging right -> growing handles column + // grow the column to the left of the handle as much as we can shrink columns to the right of the handle + // + + let diff = initial_sizes[col_idx] - widths[col_idx]; + + let left_diff = + initial_sizes[..col_idx].iter().sum::() - widths[..col_idx].iter().sum::(); + let right_diff = initial_sizes[col_idx + 1..].iter().sum::() + - widths[col_idx + 1..].iter().sum::(); + + let go_left_first = if diff < 0.0 { + left_diff > right_diff + } else { + left_diff < right_diff + }; + + if !go_left_first { + let diff_remaining = + Self::propagate_resize_diff(diff, col_idx, &mut widths, resize_behavior, 1); + + if diff_remaining != 0.0 && col_idx > 0 { + Self::propagate_resize_diff( + diff_remaining, + col_idx, &mut widths, resize_behavior, + -1, ); } - } else if double_click_position > 0 { - let diff_remaining = self.propagate_resize_diff_left( - diff, - double_click_position, - &mut widths, - resize_behavior, - ); + } else { + let diff_remaining = + Self::propagate_resize_diff(diff, col_idx, &mut widths, resize_behavior, -1); - if diff_remaining < 0.0 { - self.propagate_resize_diff_right( - -diff_remaining, - double_click_position, + if diff_remaining != 0.0 { + Self::propagate_resize_diff( + diff_remaining, + col_idx, &mut widths, resize_behavior, + 1, ); } } - self.widths = widths.map(DefiniteLength::Fraction); + + widths } fn on_drag_move( @@ -569,98 +632,102 @@ impl ColumnWidths { let bounds_width = bounds.right() - bounds.left(); let col_idx = drag_event.drag(cx).0; + let column_handle_width = Self::get_fraction( + &DefiniteLength::Absolute(AbsoluteLength::Pixels(px(RESIZE_COLUMN_WIDTH))), + bounds_width, + rem_size, + ); + let mut widths = self .widths .map(|length| Self::get_fraction(&length, bounds_width, rem_size)); for length in widths[0..=col_idx].iter() { - col_position += length; + col_position += length + column_handle_width; } let mut total_length_ratio = col_position; for length in widths[col_idx + 1..].iter() { total_length_ratio += length; } + total_length_ratio += (COLS - 1 - col_idx) as f32 * column_handle_width; let drag_fraction = (drag_position.x - bounds.left()) / bounds_width; let drag_fraction = drag_fraction * total_length_ratio; - let diff = drag_fraction - col_position; + let diff = drag_fraction - col_position - column_handle_width / 2.0; - let is_dragging_right = diff > 0.0; + Self::drag_column_handle(diff, col_idx, &mut widths, resize_behavior); - if is_dragging_right { - self.propagate_resize_diff_right(diff, col_idx, &mut widths, resize_behavior); - } else { - // Resize behavior should be improved in the future by also seeking to the right column when there's not enough space - self.propagate_resize_diff_left(diff, col_idx, &mut widths, resize_behavior); - } - self.widths = widths.map(DefiniteLength::Fraction); + self.visible_widths = widths.map(DefiniteLength::Fraction); } - fn propagate_resize_diff_right( - &self, + fn drag_column_handle( diff: f32, col_idx: usize, widths: &mut [f32; COLS], resize_behavior: &[ResizeBehavior; COLS], - ) -> f32 { - let mut diff_remaining = diff; - let mut curr_column = col_idx + 1; - - while diff_remaining > 0.0 && curr_column < COLS { - let Some(min_size) = resize_behavior[curr_column - 1].min_size() else { - curr_column += 1; - continue; - }; - - let mut curr_width = widths[curr_column] - diff_remaining; - - diff_remaining = 0.0; - if min_size > curr_width { - diff_remaining += min_size - curr_width; - curr_width = min_size; - } - widths[curr_column] = curr_width; - curr_column += 1; + ) { + // if diff > 0.0 then go right + if diff > 0.0 { + Self::propagate_resize_diff(diff, col_idx, widths, resize_behavior, 1); + } else { + Self::propagate_resize_diff(-diff, col_idx + 1, widths, resize_behavior, -1); } - - widths[col_idx] = widths[col_idx] + (diff - diff_remaining); - return diff_remaining; } - fn propagate_resize_diff_left( - &mut self, + fn propagate_resize_diff( diff: f32, - mut curr_column: usize, + col_idx: usize, widths: &mut [f32; COLS], resize_behavior: &[ResizeBehavior; COLS], + direction: i8, ) -> f32 { let mut diff_remaining = diff; - let col_idx = curr_column; - while diff_remaining < 0.0 { + if resize_behavior[col_idx].min_size().is_none() { + return diff; + } + + let step_right; + let step_left; + if direction < 0 { + step_right = 0; + step_left = 1; + } else { + step_right = 1; + step_left = 0; + } + if col_idx == 0 && direction < 0 { + return diff; + } + let mut curr_column = col_idx + step_right - step_left; + + while diff_remaining != 0.0 && curr_column < COLS { let Some(min_size) = resize_behavior[curr_column].min_size() else { if curr_column == 0 { break; } - curr_column -= 1; + curr_column -= step_left; + curr_column += step_right; continue; }; - let mut curr_width = widths[curr_column] + diff_remaining; - - diff_remaining = 0.0; - if curr_width < min_size { - diff_remaining = curr_width - min_size; - curr_width = min_size - } - + let curr_width = widths[curr_column] - diff_remaining; widths[curr_column] = curr_width; + + if min_size > curr_width { + diff_remaining = min_size - curr_width; + widths[curr_column] = min_size; + } else { + diff_remaining = 0.0; + break; + } if curr_column == 0 { break; } - curr_column -= 1; + curr_column -= step_left; + curr_column += step_right; } - widths[col_idx + 1] = widths[col_idx + 1] - (diff - diff_remaining); + widths[col_idx] = widths[col_idx] + (diff - diff_remaining); return diff_remaining; } @@ -686,7 +753,7 @@ impl TableWidths { fn lengths(&self, cx: &App) -> [Length; COLS] { self.current .as_ref() - .map(|entity| entity.read(cx).widths.map(Length::Definite)) + .map(|entity| entity.read(cx).visible_widths.map(Length::Definite)) .unwrap_or(self.initial.map(Length::Definite)) } } @@ -799,6 +866,7 @@ impl Table { if !widths.initialized { widths.initialized = true; widths.widths = table_widths.initial; + widths.visible_widths = widths.widths; } }) } @@ -888,11 +956,24 @@ pub fn render_row( pub fn render_header( headers: [impl IntoElement; COLS], table_context: TableRenderContext, + columns_widths: Option<( + WeakEntity>, + [ResizeBehavior; COLS], + [DefiniteLength; COLS], + )>, + entity_id: Option, cx: &mut App, ) -> impl IntoElement { let column_widths = table_context .column_widths .map_or([None; COLS], |widths| widths.map(Some)); + + let element_id = entity_id + .map(|entity| entity.to_string()) + .unwrap_or_default(); + + let shared_element_id: SharedString = format!("table-{}", element_id).into(); + div() .flex() .flex_row() @@ -902,12 +983,39 @@ pub fn render_header( .p_2() .border_b_1() .border_color(cx.theme().colors().border) - .children( - headers - .into_iter() - .zip(column_widths) - .map(|(h, width)| base_cell_style_text(width, cx).child(h)), - ) + .children(headers.into_iter().enumerate().zip(column_widths).map( + |((header_idx, h), width)| { + base_cell_style_text(width, cx) + .child(h) + .id(ElementId::NamedInteger( + shared_element_id.clone(), + header_idx as u64, + )) + .when_some( + columns_widths.as_ref().cloned(), + |this, (column_widths, resizables, initial_sizes)| { + if resizables[header_idx].is_resizable() { + this.on_click(move |event, window, cx| { + if event.down.click_count > 1 { + column_widths + .update(cx, |column, _| { + column.on_double_click( + header_idx, + &initial_sizes, + &resizables, + window, + ); + }) + .ok(); + } + }) + } else { + this + } + }, + ) + }, + )) } #[derive(Clone)] @@ -939,6 +1047,12 @@ impl RenderOnce for Table { .and_then(|widths| Some((widths.current.as_ref()?, widths.resizable))) .map(|(curr, resize_behavior)| (curr.downgrade(), resize_behavior)); + let current_widths_with_initial_sizes = self + .col_widths + .as_ref() + .and_then(|widths| Some((widths.current.as_ref()?, widths.resizable, widths.initial))) + .map(|(curr, resize_behavior, initial)| (curr.downgrade(), resize_behavior, initial)); + let scroll_track_size = px(16.); let h_scroll_offset = if interaction_state .as_ref() @@ -958,7 +1072,13 @@ impl RenderOnce for Table { .h_full() .v_flex() .when_some(self.headers.take(), |this, headers| { - this.child(render_header(headers, table_context.clone(), cx)) + this.child(render_header( + headers, + table_context.clone(), + current_widths_with_initial_sizes, + interaction_state.as_ref().map(Entity::entity_id), + cx, + )) }) .when_some(current_widths, { |this, (widths, resize_behavior)| { @@ -972,19 +1092,28 @@ impl RenderOnce for Table { .ok(); } }) - .on_children_prepainted(move |bounds, _, cx| { + .on_children_prepainted({ + let widths = widths.clone(); + move |bounds, _, cx| { + widths + .update(cx, |widths, _| { + // This works because all children x axis bounds are the same + widths.cached_bounds_width = + bounds[0].right() - bounds[0].left(); + }) + .ok(); + } + }) + .on_drop::(move |_, _, cx| { widths .update(cx, |widths, _| { - // This works because all children x axis bounds are the same - widths.cached_bounds_width = bounds[0].right() - bounds[0].left(); + widths.widths = widths.visible_widths; }) .ok(); + // Finish the resize operation }) } }) - .on_drop::(|_, _, _| { - // Finish the resize operation - }) .child( div() .flex_grow() @@ -1313,3 +1442,323 @@ impl Component for Table<3> { ) } } + +#[cfg(test)] +mod test { + use super::*; + + fn is_almost_eq(a: &[f32], b: &[f32]) -> bool { + a.len() == b.len() && a.iter().zip(b).all(|(x, y)| (x - y).abs() < 1e-6) + } + + fn cols_to_str(cols: &[f32; COLS], total_size: f32) -> String { + cols.map(|f| "*".repeat(f32::round(f * total_size) as usize)) + .join("|") + } + + fn parse_resize_behavior( + input: &str, + total_size: f32, + ) -> [ResizeBehavior; COLS] { + let mut resize_behavior = [ResizeBehavior::None; COLS]; + let mut max_index = 0; + for (index, col) in input.split('|').enumerate() { + if col.starts_with('X') || col.is_empty() { + resize_behavior[index] = ResizeBehavior::None; + } else if col.starts_with('*') { + resize_behavior[index] = ResizeBehavior::MinSize(col.len() as f32 / total_size); + } else { + panic!("invalid test input: unrecognized resize behavior: {}", col); + } + max_index = index; + } + + if max_index + 1 != COLS { + panic!("invalid test input: too many columns"); + } + resize_behavior + } + + mod reset_column_size { + use super::*; + + fn parse(input: &str) -> ([f32; COLS], f32, Option) { + let mut widths = [f32::NAN; COLS]; + let mut column_index = None; + for (index, col) in input.split('|').enumerate() { + widths[index] = col.len() as f32; + if col.starts_with('X') { + column_index = Some(index); + } + } + + for w in widths { + assert!(w.is_finite(), "incorrect number of columns"); + } + let total = widths.iter().sum::(); + for width in &mut widths { + *width /= total; + } + (widths, total, column_index) + } + + #[track_caller] + fn check_reset_size( + initial_sizes: &str, + widths: &str, + expected: &str, + resize_behavior: &str, + ) { + let (initial_sizes, total_1, None) = parse::(initial_sizes) else { + panic!("invalid test input: initial sizes should not be marked"); + }; + let (widths, total_2, Some(column_index)) = parse::(widths) else { + panic!("invalid test input: widths should be marked"); + }; + assert_eq!( + total_1, total_2, + "invalid test input: total width not the same {total_1}, {total_2}" + ); + let (expected, total_3, None) = parse::(expected) else { + panic!("invalid test input: expected should not be marked: {expected:?}"); + }; + assert_eq!( + total_2, total_3, + "invalid test input: total width not the same" + ); + let resize_behavior = parse_resize_behavior::(resize_behavior, total_1); + let result = ColumnWidths::reset_to_initial_size( + column_index, + widths, + initial_sizes, + &resize_behavior, + ); + let is_eq = is_almost_eq(&result, &expected); + if !is_eq { + let result_str = cols_to_str(&result, total_1); + let expected_str = cols_to_str(&expected, total_1); + panic!( + "resize failed\ncomputed: {result_str}\nexpected: {expected_str}\n\ncomputed values: {result:?}\nexpected values: {expected:?}\n:minimum widths: {resize_behavior:?}" + ); + } + } + + macro_rules! check_reset_size { + (columns: $cols:expr, starting: $initial:expr, snapshot: $current:expr, expected: $expected:expr, resizing: $resizing:expr $(,)?) => { + check_reset_size::<$cols>($initial, $current, $expected, $resizing); + }; + ($name:ident, columns: $cols:expr, starting: $initial:expr, snapshot: $current:expr, expected: $expected:expr, minimums: $resizing:expr $(,)?) => { + #[test] + fn $name() { + check_reset_size::<$cols>($initial, $current, $expected, $resizing); + } + }; + } + + check_reset_size!( + basic_right, + columns: 5, + starting: "**|**|**|**|**", + snapshot: "**|**|X|***|**", + expected: "**|**|**|**|**", + minimums: "X|*|*|*|*", + ); + + check_reset_size!( + basic_left, + columns: 5, + starting: "**|**|**|**|**", + snapshot: "**|**|***|X|**", + expected: "**|**|**|**|**", + minimums: "X|*|*|*|**", + ); + + check_reset_size!( + squashed_left_reset_col2, + columns: 6, + starting: "*|***|**|**|****|*", + snapshot: "*|*|X|*|*|********", + expected: "*|*|**|*|*|*******", + minimums: "X|*|*|*|*|*", + ); + + check_reset_size!( + grow_cascading_right, + columns: 6, + starting: "*|***|****|**|***|*", + snapshot: "*|***|X|**|**|*****", + expected: "*|***|****|*|*|****", + minimums: "X|*|*|*|*|*", + ); + + check_reset_size!( + squashed_right_reset_col4, + columns: 6, + starting: "*|***|**|**|****|*", + snapshot: "*|********|*|*|X|*", + expected: "*|*****|*|*|****|*", + minimums: "X|*|*|*|*|*", + ); + + check_reset_size!( + reset_col6_right, + columns: 6, + starting: "*|***|**|***|***|**", + snapshot: "*|***|**|***|**|XXX", + expected: "*|***|**|***|***|**", + minimums: "X|*|*|*|*|*", + ); + + check_reset_size!( + reset_col6_left, + columns: 6, + starting: "*|***|**|***|***|**", + snapshot: "*|***|**|***|****|X", + expected: "*|***|**|***|***|**", + minimums: "X|*|*|*|*|*", + ); + + check_reset_size!( + last_column_grow_cascading, + columns: 6, + starting: "*|***|**|**|**|***", + snapshot: "*|*******|*|**|*|X", + expected: "*|******|*|*|*|***", + minimums: "X|*|*|*|*|*", + ); + + check_reset_size!( + goes_left_when_left_has_extreme_diff, + columns: 6, + starting: "*|***|****|**|**|***", + snapshot: "*|********|X|*|**|**", + expected: "*|*****|****|*|**|**", + minimums: "X|*|*|*|*|*", + ); + + check_reset_size!( + basic_shrink_right, + columns: 6, + starting: "**|**|**|**|**|**", + snapshot: "**|**|XXX|*|**|**", + expected: "**|**|**|**|**|**", + minimums: "X|*|*|*|*|*", + ); + + check_reset_size!( + shrink_should_go_left, + columns: 6, + starting: "*|***|**|*|*|*", + snapshot: "*|*|XXX|**|*|*", + expected: "*|**|**|**|*|*", + minimums: "X|*|*|*|*|*", + ); + + check_reset_size!( + shrink_should_go_right, + columns: 6, + starting: "*|***|**|**|**|*", + snapshot: "*|****|XXX|*|*|*", + expected: "*|****|**|**|*|*", + minimums: "X|*|*|*|*|*", + ); + } + + mod drag_handle { + use super::*; + + fn parse(input: &str) -> ([f32; COLS], f32, Option) { + let mut widths = [f32::NAN; COLS]; + let column_index = input.replace("*", "").find("I"); + for (index, col) in input.replace("I", "|").split('|').enumerate() { + widths[index] = col.len() as f32; + } + + for w in widths { + assert!(w.is_finite(), "incorrect number of columns"); + } + let total = widths.iter().sum::(); + for width in &mut widths { + *width /= total; + } + (widths, total, column_index) + } + + #[track_caller] + fn check( + distance: i32, + widths: &str, + expected: &str, + resize_behavior: &str, + ) { + let (mut widths, total_1, Some(column_index)) = parse::(widths) else { + panic!("invalid test input: widths should be marked"); + }; + let (expected, total_2, None) = parse::(expected) else { + panic!("invalid test input: expected should not be marked: {expected:?}"); + }; + assert_eq!( + total_1, total_2, + "invalid test input: total width not the same" + ); + let resize_behavior = parse_resize_behavior::(resize_behavior, total_1); + + let distance = distance as f32 / total_1; + + let result = ColumnWidths::drag_column_handle( + distance, + column_index, + &mut widths, + &resize_behavior, + ); + + let is_eq = is_almost_eq(&widths, &expected); + if !is_eq { + let result_str = cols_to_str(&widths, total_1); + let expected_str = cols_to_str(&expected, total_1); + panic!( + "resize failed\ncomputed: {result_str}\nexpected: {expected_str}\n\ncomputed values: {result:?}\nexpected values: {expected:?}\n:minimum widths: {resize_behavior:?}" + ); + } + } + + macro_rules! check { + (columns: $cols:expr, distance: $dist:expr, snapshot: $current:expr, expected: $expected:expr, resizing: $resizing:expr $(,)?) => { + check!($cols, $dist, $snapshot, $expected, $resizing); + }; + ($name:ident, columns: $cols:expr, distance: $dist:expr, snapshot: $current:expr, expected: $expected:expr, minimums: $resizing:expr $(,)?) => { + #[test] + fn $name() { + check::<$cols>($dist, $current, $expected, $resizing); + } + }; + } + + check!( + basic_right_drag, + columns: 3, + distance: 1, + snapshot: "**|**I**", + expected: "**|***|*", + minimums: "X|*|*", + ); + + check!( + drag_left_against_mins, + columns: 5, + distance: -1, + snapshot: "*|*|*|*I*******", + expected: "*|*|*|*|*******", + minimums: "X|*|*|*|*", + ); + + check!( + drag_left, + columns: 5, + distance: -2, + snapshot: "*|*|*|*****I***", + expected: "*|*|*|***|*****", + minimums: "X|*|*|*|*", + ); + } +} From ff67f18e0d334b4d5521f17412e0bd704452edaa Mon Sep 17 00:00:00 2001 From: Cole Miller Date: Fri, 25 Jul 2025 10:36:58 -0700 Subject: [PATCH 0220/1052] Bump livekit dep to try to fix flaky builds (#35103) Let's see if https://github.com/zed-industries/livekit-rust-sdks/pull/6 helps. Release Notes: - N/A --------- Signed-off-by: Cole Miller --- Cargo.lock | 22 +++++++++++++++------- crates/livekit_client/Cargo.toml | 4 ++-- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2c65131db0..82790da17f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7688,6 +7688,12 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "hex-literal" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcaaec4551594c969335c98c903c1397853d4198408ea609190f420500f6be71" + [[package]] name = "hexf-parse" version = "0.2.1" @@ -9408,7 +9414,7 @@ dependencies = [ [[package]] name = "libwebrtc" version = "0.3.10" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4#d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=2806c1554bb2e3627ea35089208a196e19f24847#2806c1554bb2e3627ea35089208a196e19f24847" dependencies = [ "cxx", "jni", @@ -9488,7 +9494,7 @@ checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" [[package]] name = "livekit" version = "0.7.8" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4#d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=2806c1554bb2e3627ea35089208a196e19f24847#2806c1554bb2e3627ea35089208a196e19f24847" dependencies = [ "chrono", "futures-util", @@ -9511,7 +9517,7 @@ dependencies = [ [[package]] name = "livekit-api" version = "0.4.2" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4#d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=2806c1554bb2e3627ea35089208a196e19f24847#2806c1554bb2e3627ea35089208a196e19f24847" dependencies = [ "futures-util", "http 0.2.12", @@ -9535,7 +9541,7 @@ dependencies = [ [[package]] name = "livekit-protocol" version = "0.3.9" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4#d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=2806c1554bb2e3627ea35089208a196e19f24847#2806c1554bb2e3627ea35089208a196e19f24847" dependencies = [ "futures-util", "livekit-runtime", @@ -9552,7 +9558,7 @@ dependencies = [ [[package]] name = "livekit-runtime" version = "0.4.0" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4#d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=2806c1554bb2e3627ea35089208a196e19f24847#2806c1554bb2e3627ea35089208a196e19f24847" dependencies = [ "tokio", "tokio-stream", @@ -18539,7 +18545,7 @@ dependencies = [ [[package]] name = "webrtc-sys" version = "0.3.7" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4#d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=2806c1554bb2e3627ea35089208a196e19f24847#2806c1554bb2e3627ea35089208a196e19f24847" dependencies = [ "cc", "cxx", @@ -18552,13 +18558,15 @@ dependencies = [ [[package]] name = "webrtc-sys-build" version = "0.3.6" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4#d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=2806c1554bb2e3627ea35089208a196e19f24847#2806c1554bb2e3627ea35089208a196e19f24847" dependencies = [ "fs2", + "hex-literal", "regex", "reqwest 0.11.27", "scratch", "semver", + "sha2", "zip", ] diff --git a/crates/livekit_client/Cargo.toml b/crates/livekit_client/Cargo.toml index a0c11d46e6..c367e03bb7 100644 --- a/crates/livekit_client/Cargo.toml +++ b/crates/livekit_client/Cargo.toml @@ -40,8 +40,8 @@ util.workspace = true workspace-hack.workspace = true [target.'cfg(not(any(all(target_os = "windows", target_env = "gnu"), target_os = "freebsd")))'.dependencies] -libwebrtc = { rev = "d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4", git = "https://github.com/zed-industries/livekit-rust-sdks" } -livekit = { rev = "d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4", git = "https://github.com/zed-industries/livekit-rust-sdks", features = [ +libwebrtc = { rev = "383e5377f8b7de1f8627ee16f0cf11c5293337bd", git = "https://github.com/zed-industries/livekit-rust-sdks" } +livekit = { rev = "383e5377f8b7de1f8627ee16f0cf11c5293337bd", git = "https://github.com/zed-industries/livekit-rust-sdks", features = [ "__rustls-tls" ] } From 0e7eea0d102cc39bdf1249db13dc9d5bb5ff9afd Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Fri, 25 Jul 2025 14:39:33 -0300 Subject: [PATCH 0221/1052] Add new Nightly app icons (#35104) Release Notes: - N/A --- crates/zed/resources/app-icon-nightly.png | Bin 239870 -> 232863 bytes crates/zed/resources/app-icon-nightly@2x.png | Bin 716288 -> 848597 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/crates/zed/resources/app-icon-nightly.png b/crates/zed/resources/app-icon-nightly.png index 5f1304a6af8d57bbf7414d175611829989d122da..562588955e81265c9a44ab399d5da5813f6805fd 100644 GIT binary patch literal 232863 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

^<$;FGy0~c$pKd3l0p|9t29M|)Zg0&{qz0W3= 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

    Vf8qW%|Iej* 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 literal 239870 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 Re+C8y22WQ%mvv4FO#lr_8leCH diff --git a/crates/zed/resources/app-icon-nightly@2x.png b/crates/zed/resources/app-icon-nightly@2x.png index edb416ede489be0733bdbb00c467a1d828173e56..f0d7292f949b2d40eb856ff78865dcb74d4e8d2b 100644 GIT binary patch literal 848597 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

    Ebz5}A->T${FKmlCVvr)JeHlQ_vbEo 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%0D(?+XI%+lc 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

    `E+Wa}@t*g9h`s7&a14)Hvmo&_@(6e*1YinNf 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ⅇ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�)<*XwWiiZzkjr^G2rsIm6F~^&wcKm<{1Afvbw&e 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

  • rpRZfG;l}Cd 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

    ^n*YJY(aP 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

    1hwN^fn8Q>aX{V963 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
  • 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
      c1JPPS4tI9R9dfqpz_qO#Mr7 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≀oGJ^mGC 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 z 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

      b$DTHD9OP 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

      mJ1^dIU$8TwtDil-@QZx(&rJ%aCw};$pLxY| z!<)V4sd@E|nsFBCtvTjd@v%4R)72$vpPu}bzrFrl z`u{^0%l}=xRk-rvT&>A(IhAFy7w&zy|I^BNt3Q+Xf1E#GdhwTo^OoI^=Rd4Z0BLT6la8FTi(3Fi~MIxDDn<*bjgT?H%pa%EiGB>ltFXdq?U&9^IIeGWz{0lP7FGGHdEt7eEn89=|yEN~f z`w1(}-2a5$_L=hQ{gLa3Zv`~Q9DX@xi)o_f2Ho}=O+_|Y_oT%^ou`^g*6LZm)wpH! zSMU2hG4BmK6#BI_Ox41ww^lK3bC+4E{8*+^MqIXx{le!;x#!`+bv9fpe_rjA{`KMW zuKR!L9~b|UE4=T^D*E}b`wI5xNm=WUZdq&W@#*T}+3Rau&-3qicl+PPx_9sQl~sIB zUAy7b*_Wk#a@;2^ud437!n^tWI}5?*S;qXC3-X_1WPy9=1lUDjkwBt zAU-vh)qL7JfvdaZ%PdSUv9ZVR7WI{0xhJ28A^5?X<0c0a%=)6%Yf4N@x^u~m=Sb;f zh4-H%Lo8M7{slkTa%`Iom!#s;4Q?*e&VCYDp)0Fb#>~7;D{-RO>=e5nK8gFqlUBP6 zDm4~r>YWeRy<7IVfYkK1Jz~|%jrKE(TuH4pbbIhgn?XF;{>|nHwbylKD_hSR2b&7( ze$IV<*(_9ZX2+JZ7xx)Q9@hR{YTKb9{`Jncx^HQB+jbV7h^&}*Dn>m=*Wk~Qsq*)N z1b2SDrMdB@OtzwTwAp&mTRY6cD!yoB1P3WgclaH8aa%E+;dQjQ%|4N>JAKb?H=CNa z?~%i0{??1deEHc_+We>EnQpC~q&Pk7N6Wq^&jhlHXW#wC;GB2zRkzyBcb`R@^j2#>e*c(7`j1iC z_Opf=rS?CTzx_AMg?Z=O%iB*JTKK5lrfi)|^4EfyRzHQM&E1-!Px3B4TbP=Be12{7 zrf!$K;w24V!+D#sPrO_;dE??gTC2YE+uMJ8b^ZNob?tcjng`3}u9yFqf9XAIeQ^Gx z>^EnwYtC?eXq*4b=QVq#(K)RfKOG*Hm;C=*XmAw32O4wDu@H=%6?*IQczjA-f_3PC)PR_Yf`}%3$BI&t7p|`|$tZ2N-elNgD2q{L>6x@EYVXuZ$*bmlx@UXw?Z)DZO!M=2Tg92KAF7UD{5m9db?)9P zGE6hF^gVu}^5?4v2?xhL^`1d~>q34rZmaY9?Ua1!(2VG}VS;a0d|9=X!Rp9^ zjNL8_(gIt*%CF~)>L_ebD>`Ce;)i3|010Bb@Iyj*Uxj-e=UFiBJ5L@fJ8E4REp7Lavc zX#P>xW555HyjkfKANs+6yYc#d%jW28na$^$pRYQxMak;*XJ$J++4J$o-!#nmpLfB1 zZhXy}tcX87l9oTjb1$7-w!lkg^$}zKsJ6+jf(=g&E)4g)U7D%6qZ&nrMXWz3bzG2aV^mjW=`09hVUJzk5Tz2osETNuX50&RLx^-^m@?Gcr`Etd+ z;-KSk2dm!jiu7f7e=~NUZ&0&$NqbWA<5Ri+6`a~v&d^Qk+0%Alxy-8=vnP&L{iU`$ zm&dbwU~YWr7BK0oWtZ8Cw=Zu-%x*sDo+{^}@pF~jgOeMb8J}Hz|M64I$AqNI`#)s- z|7faW-EsMKVr*38bJMdux7n`$T-Dei<7Bm58pfHs{FX&BynAXTRIye_5Yv zv+<984G)wKRXzw{?4E3Xr>gb-?<&=ICU1o;ucsFn<^8$8>-7P-us&s$Q?piYkkRki z`TCsTqL=+KZN_&V8Y#|x_Rgkb>o5K{|GOXT3(1TB`9!*X{ol*xf4dp#pZMD^j%V>u z;!a%tfV=%2f2{XI^~s*E&Q5S|wzwcX25n@7q01 z{?cbeYoGtGzdDy={|kN(3AbaXjlZzs=7tGPrvwPC_VqL+t3z{8@sv1 z3!j{giV)xDt0H@H>bf~srIG?(vTse*R%QOqW-F7cKkHUf{BLn}Vb&Xc+dRu-PS2ln zP3Ej*OvbgUAFQ)hzjzjRyz;AKo%gw0=`!yB9Cm)Mt!>(Tq*1xHujYShTt8VVItKx(v9A}*Qs5Z-cYyWn|h62^l&#y}F{rP`<7xROg zAFDpyHRsE(4&TdI`SIuPx^JDw%{h)qE&3H7_4GjDj5ure$8vIYAD+j3|Nbxj*Q1*c zx%Yo;`}}>j#k~_RO)YurFGk;AD8s$tTj{s-2kR~$53BM}*?)A!n>%w?nOtc()9w%_ zz4qXW;;uCjm zEBD6!c)z-f%&zW{wcg45E@|`q=hz@3_u<9Q<&6vVznsu`h^7xXMwO3{KO*0Lfy<=%@%wy*G@ajEN?h5uZ zAD92V`QtJp`*RxoUIm9FjvZ^t%DMYZ-o9vUpJ(9=={d`@{&+tRd9--ew%J10KL5I; zdRy4*ir$aN;~QT+-r9dV@3#csk4^gulnsKP97_Fmcg_TR*I0Ik;GUZ+C%2_be-&AF zU-{I>oLZJQ5wX*^#POYKnXzfb;!}?vn|%}3{JCV`v&}`1c5L%MYEYS9_RV6|xA}3i zPFrR?p6a`;bMK2onK|YW9}mfA`AkfObqh{lByC z@c)hT>vvsJxxw;A;h{Q%&8Fv3%IcS{f7NN2KJS0|*8e}f!-O*G!(V9l2K1)RUU21L z(z3bYxn8$yKKSSVs}HsRDt_zCRHk>^n=`)(wdsYKN6$226HeUdEd15((oeA(tr(vp zFXy~YGujqwwf@w3f!sOS9AW!kBuF$(Yvw-oHtd{T*^75!`x80kgdclLzw0Rtu6WlR zSeWthaaP65B|5o%M`fIMn@>-eT^__8`MP`0=Z${SulU+5IB(or82#-|_nTQ~gOZBV zm-t(6*gBVQ-L}>&b+*mFRNNXK`pvd_e*DUdTj!H^6!q+HIbrwhiF0&c+xD}cZ&u}K zt)5rW5N<6o^{c>vbNfzZTO8ObCmS+#)i$#OEq8ti-908GH#7Fm^$)JorD{(HyG|@z z?8~&0d5P?rH#Q&tAFh8R&ew1M^`4W)hu-7sZi@uTKyLXo62iX|9}5?ZTPky-)wHFn7`W7uw~!9BERC|V{t3r z{8^KApEsta$1wGd(BkYj{{$Rz&NkKKFQQ=VDfegD^|n2Al5GI9(j z9$4(lbzT_6{xsoj->&%C0!M?q=QJ&zd|cden&29a^@b))ENt$dmzhd@iXbQT`?+E$K{B!`w@zGTXMkKJ&~;G{EeC=$!tx z11~Qhc{sUiaz$72DW8Xv_Z^O1>oYe$_Q3SDLKjy0$mhKIbjGR8|MyMib1jiiFU(zS z-B}{C`)}0!?oD@X{FK_~&k41U$Uo}sXY@F%K5~MB{rz>4>x31xm$fzCepNlkM(;>e z_oGkZE_ssvC*$v?*POU4b4bt9_Vb;yhi~7n{`=vP_D)j!jJOX=zYtH-s>qN_w|GB(e*{8lWQxBHgeVpEGh2fn2#ddUeCdyUf2{Y19>&x%`o*|#{^OE@c7v?wKXGM4}`S@;j z%D+ik@yBl8d3{S>=W$x)*XeyXURzx1>vx%S`;+#+xw7%1|FhiLJl@uw6t%+B|Q!{EKb(Mf%GhZ~B%#XF=zgUr*iJC$SfI*S=3UyXA<<+*^j1`{wKj&+j<< z`3LF;Zq9Aa z`)O}|XHV_Z54X%;uJ3V(@oYG3xAgmsMUxk<%-CV`?TKmaj1RwmxpuJEy|_Pn{g;DE zuWM_M>iuqb-5vXJR=i{Fbjd$l$8S`A`}Xlwapx63Pc!j{YucL^E!p9{?pfQd*|++3 z2YVmSRNK9IWvR=pFV#8{y9Jl8YrIz4{^mpwkBHCXTh;!#(acryzxp`)y(@XjIaY9P z_+Z2*^LhLIh1vbz?_2Hp)_a}*{+~5v1*cS0T%Q!I=v&pN+%bF4YCE3VoCK%d{^Rql zt)-4nei9+olYal{jyHcbdb_W?u<5Z%>g*87u-y^J(ahbrH2rK%O5}>u3nv^6KQ@Ou zw|!Pbf%b{oXZs(oc>0*v!F{pc{Eau=cO5fdrM1Dm>X?q(zOv%_-y6GnPuJZFSY6?_ zO(yoL6nnq!^>>V?84J0YT_0S#Z6YCS{p87Q1>U`PVipMQ_`~pk>1~f^>&eTX&uZ_Q zRkObHy{iAm@+UL0Vk9yhE4#m*vTHKBSbHh_Y}1k4jNMGKW_tU6KRVCtptkwdoScuz zzTS-W_T4U1KCm9{>geecnrXHEMi4tQ%S@%)0gcfH(|DuIzFkf$c>AP`^^>c*9_J(D zo?AxeTW6P)7VawWKk#Uy>z?$=&pTEuzb|Id`MrGE?05U_=~~w$?RK0Ld*tZ8>fgWf zWbD2K`^(hD-}kNm$p71V&8}Yu*4DZ2thteYtGn-Ucl6sgOHZFux^kJ<&tgu^jtP%i zJR^fFuBy4!{X6?D$LinVf2-oJto$2$)S>7vKJ_f9rbx(kt`-g$M71*O$uVif5R0c7M=3 z|M$p#`M|G95^ptS-8S1EYVVu#Y4@V%<$G!>9xr{)FaK+1yvVZ2i9HR*|HHS-o?REX z@7At_MJh|DWxq&{nc{At6Z~ci(}p!0P3P4zzIq&)ytkGiU}IC+YU!O19!0ENoc2`L zzI~>Pl1>iqY-ZQYL$emcl_B&9AeW$})~*TrTZyW#HT?t>0?QHtRd*t^0|2H1q(e}1lMk90P9|E$^8Ed@8f6ts(OQE@>eXM9utnzf467V zA0LH`{ejCQ>pRWoRXi*BeY0OC?@ryaM@i2wr$79d5dV4C`uOYBvH2Iu&nY#Xa+OFo zKHjrMG|Gv!<@vh0W#5DMfBIgccft98T+8}yh0lNAsP3QPt61N4-{+HC3(wca3pFp! z@B7GpQnYYg;uQAcgYm)#x?fAz9=v@vZhMQx5q9@$^R^re%E*ql|MLFAw&>M{?>|ou?zdK3@5`Z8cbR*+bBRF8-gAF$ z*FV|vvVA(E!uqWZ(V-uLf|R$*PCXtVeeDMO-Tq$r0`ZzB6HFGly{ueWoV!lh{Pw-_ zpa%BI$7Y{i7~b?!5w+FK~W3^Sl1myHr-*tUb5Bt;jmsDjWMn zJN)GJeA~(&AI|@A5^mDoZ&l`Xmi6Ad8&0_qiQJ`iyNjlLWw{rACi>0>n@i$dFVCIY zF8OU=?@LF%Q{o2E8>aRBWC|$Hje4VDBfn^MmArKQ%j>dt9%rBSA61zVSnt zWc`;j54YHAMCY@4bA0h9M#+((wRmnz=f@oNL~_D{y`#Rp!_$i8@U*NyZ& z-z7eGo!@g{^5C>juRL#M#}C;zcgGpYgl+WfS$DWMa~Ic|WbZBA ze=onNI=Y}J^5=0+u`k=!o+`4u*TmubE2(G7i}1FDwbJSjRrvLOty_64pT*r`e`o%Q zOMFHtnakroPLg$tc<*oUW9`0)E9E241YMJnxY_vQ>@2<|oXPs@*FJ7^`QNeYPUr1> zwMprJ41XTrbSzickvDBBzwzrRqm1i^cyyTd#FqUwI(7P&Q}2OKe9xVpevO@f#_WG~ zTH&O1;`13k2hF}7!@;rq3t-p9p9#coarp%kUC9!3m9^1DGw;$d3yIFj`-lX{pKipg+bHHWVrT=RtyYx+3 z|N8rN`!B-%uP^6Rhi6UDW9948kEyD$J-0MZzVVu4SME1fu3u+XA91+zuFXF7sc`L| z1EK3fF2AdtVi)k+CGgpyOWwCQlY~rycUfO{`%pKzao@a6{1#gd>h0uFJM{Cy#yM-U z>o>-qXw;E&6}X+|Uv9hS)(@uB28jwjh8tEczL&A5e{Q?6fP&1oeD*6fO>-aD9OvIq zkn?$g?DZGZBNW!(uln`j$?kfIz@>k-?b>qt+liYgFBTo2AAak~!zmV@R&j@2yEk3I zw(f8;tF%wQ&eP8v#cw4#qytJpT9acB zY72S%)E8k}H1E<0)o`Dwp79R^%avv9LcV5M7ly@rZ8X-g#E`as{XF7yXpHjZzDxW%n66HlA7ixruenf6w`~dt~iJx4&DYasO5{ z_w+xXt-nvrlGkqvS;?}e^iEcI-@z60=9sOYdD-<&LXpz@yj@ERKX;a_mp@`;cW?ea zU&iCF{}3$N|}Bed$*jqO_cOL!)BA1^kXBV?V|mLciHbfQ_Mt6)~f(zuN$ZY(~$ z`k0}yBbTVb(Xh8UXWz2T6Y1UX?Y@lk3YUGc=8G%>Wp;d>^m`z6U6Wl_MmAwnRwXbQZ!Ow|#?d`$ek~w0Ydo|9v_JFfs(UEy}3^!js zF|XIT{q1CeU%(#T?sbGPT+E`Ha`eJ6k0E%*1AYSb5TZh5$T*PrX6C%=CQ zZj=AJ^LBfA-H&C-fBvn1t$ApQfZ}Dzzu%W9t?JxfD;~qUVYg#%vHAtk5VccGUCA|u zoije}J-v3pLI?kk4bxsMV|cyx-M)yMXBItb+Qd}c{f5U}>(HrbPj?4hXg$Z<^Yn4F z#$@MTX_L)Z3%5vbf3>_LVAJ~dpZDI{s&gaMc2l$e>V5m~7yc1ts<+&35%_skn9R-p zw{OeYe}9zovuSpb`J}nm9vglYD^pf$C@blmTXR$K-{BRLwfe=@+n4zs53LP5bw2oK zy5Zay`Tu9nhnH07G47r_Kk7^QU$t*j4+npKX780gr|s33Syn}7=KAz|ZE0OB`ll

      ut;iQmg`c;T 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 Date: Fri, 25 Jul 2025 14:20:18 -0400 Subject: [PATCH 0222/1052] Update `Cargo.lock` (#35106) This PR updates the `Cargo.lock` file, as it seems like it wasn't fully updated in https://github.com/zed-industries/zed/pull/35103. Release Notes: - N/A --- Cargo.lock | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 82790da17f..9e10e1b730 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9414,7 +9414,7 @@ dependencies = [ [[package]] name = "libwebrtc" version = "0.3.10" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=2806c1554bb2e3627ea35089208a196e19f24847#2806c1554bb2e3627ea35089208a196e19f24847" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=383e5377f8b7de1f8627ee16f0cf11c5293337bd#383e5377f8b7de1f8627ee16f0cf11c5293337bd" dependencies = [ "cxx", "jni", @@ -9494,7 +9494,7 @@ checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" [[package]] name = "livekit" version = "0.7.8" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=2806c1554bb2e3627ea35089208a196e19f24847#2806c1554bb2e3627ea35089208a196e19f24847" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=383e5377f8b7de1f8627ee16f0cf11c5293337bd#383e5377f8b7de1f8627ee16f0cf11c5293337bd" dependencies = [ "chrono", "futures-util", @@ -9517,7 +9517,7 @@ dependencies = [ [[package]] name = "livekit-api" version = "0.4.2" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=2806c1554bb2e3627ea35089208a196e19f24847#2806c1554bb2e3627ea35089208a196e19f24847" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=383e5377f8b7de1f8627ee16f0cf11c5293337bd#383e5377f8b7de1f8627ee16f0cf11c5293337bd" dependencies = [ "futures-util", "http 0.2.12", @@ -9541,7 +9541,7 @@ dependencies = [ [[package]] name = "livekit-protocol" version = "0.3.9" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=2806c1554bb2e3627ea35089208a196e19f24847#2806c1554bb2e3627ea35089208a196e19f24847" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=383e5377f8b7de1f8627ee16f0cf11c5293337bd#383e5377f8b7de1f8627ee16f0cf11c5293337bd" dependencies = [ "futures-util", "livekit-runtime", @@ -9558,7 +9558,7 @@ dependencies = [ [[package]] name = "livekit-runtime" version = "0.4.0" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=2806c1554bb2e3627ea35089208a196e19f24847#2806c1554bb2e3627ea35089208a196e19f24847" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=383e5377f8b7de1f8627ee16f0cf11c5293337bd#383e5377f8b7de1f8627ee16f0cf11c5293337bd" dependencies = [ "tokio", "tokio-stream", @@ -18545,7 +18545,7 @@ dependencies = [ [[package]] name = "webrtc-sys" version = "0.3.7" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=2806c1554bb2e3627ea35089208a196e19f24847#2806c1554bb2e3627ea35089208a196e19f24847" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=383e5377f8b7de1f8627ee16f0cf11c5293337bd#383e5377f8b7de1f8627ee16f0cf11c5293337bd" dependencies = [ "cc", "cxx", @@ -18558,7 +18558,7 @@ dependencies = [ [[package]] name = "webrtc-sys-build" version = "0.3.6" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=2806c1554bb2e3627ea35089208a196e19f24847#2806c1554bb2e3627ea35089208a196e19f24847" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=383e5377f8b7de1f8627ee16f0cf11c5293337bd#383e5377f8b7de1f8627ee16f0cf11c5293337bd" dependencies = [ "fs2", "hex-literal", From bf8e4272bcbaf7225922ecea20c7ec60e356447b Mon Sep 17 00:00:00 2001 From: Cole Miller Date: Fri, 25 Jul 2025 12:37:58 -0700 Subject: [PATCH 0223/1052] Add a CI check that Cargo.lock is up to date (#35111) Should catch cases like #33667 where a dependency was bumped in Cargo.toml without a corresponding lockfile update. (This can happen when committing from outside of Zed or if rust-analyzer isn't running.) Passing `--frozen --workspace` should ensure this doesn't fail just because there's a newer patch version of some third-party dependency, and prevent it from taking long. We only need to run this on macOS because Cargo.lock is platform-independent. Release Notes: - N/A --- .github/workflows/ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a4da5e99ba..66a2237c29 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -269,6 +269,10 @@ jobs: mkdir -p ./../.cargo cp ./.cargo/ci-config.toml ./../.cargo/config.toml + - name: Check that Cargo.lock is up to date + run: | + cargo update --frozen --workspace + - name: cargo clippy run: ./script/clippy From 4d00d07df1f3d921aeb1fb630c8d9a1789e6b602 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Fri, 25 Jul 2025 14:39:24 -0700 Subject: [PATCH 0224/1052] Render paths to a single fixed-size MSAA texture (#34992) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is another attempt to solve the same problem as https://github.com/zed-industries/zed/pull/29718, while avoiding the regression on Intel GPUs. ### Background Currently, on main, all paths are first rendered to an intermediate "atlas" texture, similar to what we use for rendering glyphs, but with multi-sample antialiasing enabled. They are then drawn into our actual frame buffer in a separate pass, via the "path sprite" shaders. Notably, the intermediate texture acts as an "atlas" - the paths are laid out in a non-overlapping way, so that each path could be copied to an arbitrary position in the final scene. This non-overlapping approach makes a lot sense for Glyphs (which are frequently re-used in multiple places within a frame, and even across frames), but paths do not have these properties. * we clear the atlas every frame * we rasterize each path separately. there is no deduping. The problem with our current approach is that the path atlas textures can end up using lots of VRAM if the scene contains many paths. This is more of a problem in other apps that use GPUI than it is in Zed, but I do think it's an issue for Zed as well. On Windows, I have hit some crashes related to GPU memory. In https://github.com/zed-industries/zed/pull/29718, @sunli829 simplified path rendering to just draw directly to the frame buffer, and enabled msaa for the whole frame buffer. But apparently this doesn't work well on Intel GPUs because MSAA is slow on those GPUs. So we reverted that PR. ### Solution With this PR, we rasterize paths to an intermediate texture with MSAA. But rather than treating this intermediate texture like an *atlas* (growing it in order to allocate non-overlapping rectangles for every path), we simply use a single fixed-size, color texture that is the same size as thew viewport. In this texture, we rasterize the paths in their final screen position, allowing them to overlap. Then we simply blit them from the resolved texture to the frame buffer. ### To do * [x] Implement for Metal * [x] Implement for Blade * [x] Fix content masking for paths * [x] Fix rendering of partially transparent paths * [x] Verify that this performs well on Intel GPUs (help @notpeter 🙏 ) * [ ] Profile and optimize Release Notes: - N/A --------- Co-authored-by: Junkui Zhang <364772080@qq.com> --- crates/gpui/build.rs | 1 + crates/gpui/examples/painting.rs | 218 +++++- crates/gpui/examples/paths_bench.rs | 92 +++ crates/gpui/src/platform.rs | 1 - crates/gpui/src/platform/blade/blade_atlas.rs | 97 +-- .../gpui/src/platform/blade/blade_renderer.rs | 705 +++++++++++------- crates/gpui/src/platform/blade/shaders.wgsl | 78 +- crates/gpui/src/platform/mac/metal_atlas.rs | 56 +- .../gpui/src/platform/mac/metal_renderer.rs | 532 +++++++------ crates/gpui/src/platform/mac/shaders.metal | 138 ++-- crates/gpui/src/platform/test/window.rs | 2 +- crates/gpui/src/scene.rs | 13 +- 12 files changed, 1134 insertions(+), 799 deletions(-) create mode 100644 crates/gpui/examples/paths_bench.rs diff --git a/crates/gpui/build.rs b/crates/gpui/build.rs index aed4397440..7ab44a73f5 100644 --- a/crates/gpui/build.rs +++ b/crates/gpui/build.rs @@ -128,6 +128,7 @@ mod macos { "AtlasTile".into(), "PathRasterizationInputIndex".into(), "PathVertex_ScaledPixels".into(), + "PathRasterizationVertex".into(), "ShadowInputIndex".into(), "Shadow".into(), "QuadInputIndex".into(), diff --git a/crates/gpui/examples/painting.rs b/crates/gpui/examples/painting.rs index ff4b64cbda..668aed2377 100644 --- a/crates/gpui/examples/painting.rs +++ b/crates/gpui/examples/painting.rs @@ -1,11 +1,12 @@ use gpui::{ Application, Background, Bounds, ColorSpace, Context, MouseDownEvent, Path, PathBuilder, PathStyle, Pixels, Point, Render, SharedString, StrokeOptions, Window, WindowOptions, canvas, - div, linear_color_stop, linear_gradient, point, prelude::*, px, rgb, size, + div, linear_color_stop, linear_gradient, point, prelude::*, px, quad, rgb, size, }; struct PaintingViewer { default_lines: Vec<(Path, Background)>, + background_quads: Vec<(Bounds, Background)>, lines: Vec>>, start: Point, dashed: bool, @@ -16,12 +17,148 @@ impl PaintingViewer { fn new(_window: &mut Window, _cx: &mut Context) -> Self { let mut lines = vec![]; + // Black squares beneath transparent paths. + let background_quads = vec![ + ( + Bounds { + origin: point(px(70.), px(70.)), + size: size(px(40.), px(40.)), + }, + gpui::black().into(), + ), + ( + Bounds { + origin: point(px(170.), px(70.)), + size: size(px(40.), px(40.)), + }, + gpui::black().into(), + ), + ( + Bounds { + origin: point(px(270.), px(70.)), + size: size(px(40.), px(40.)), + }, + gpui::black().into(), + ), + ( + Bounds { + origin: point(px(370.), px(70.)), + size: size(px(40.), px(40.)), + }, + gpui::black().into(), + ), + ( + Bounds { + origin: point(px(450.), px(50.)), + size: size(px(80.), px(80.)), + }, + gpui::black().into(), + ), + ]; + + // 50% opaque red path that extends across black quad. + let mut builder = PathBuilder::fill(); + builder.move_to(point(px(50.), px(50.))); + builder.line_to(point(px(130.), px(50.))); + builder.line_to(point(px(130.), px(130.))); + builder.line_to(point(px(50.), px(130.))); + builder.close(); + let path = builder.build().unwrap(); + let mut red = rgb(0xFF0000); + red.a = 0.5; + lines.push((path, red.into())); + + // 50% opaque blue path that extends across black quad. + let mut builder = PathBuilder::fill(); + builder.move_to(point(px(150.), px(50.))); + builder.line_to(point(px(230.), px(50.))); + builder.line_to(point(px(230.), px(130.))); + builder.line_to(point(px(150.), px(130.))); + builder.close(); + let path = builder.build().unwrap(); + let mut blue = rgb(0x0000FF); + blue.a = 0.5; + lines.push((path, blue.into())); + + // 50% opaque green path that extends across black quad. + let mut builder = PathBuilder::fill(); + builder.move_to(point(px(250.), px(50.))); + builder.line_to(point(px(330.), px(50.))); + builder.line_to(point(px(330.), px(130.))); + builder.line_to(point(px(250.), px(130.))); + builder.close(); + let path = builder.build().unwrap(); + let mut green = rgb(0x00FF00); + green.a = 0.5; + lines.push((path, green.into())); + + // 50% opaque black path that extends across black quad. + let mut builder = PathBuilder::fill(); + builder.move_to(point(px(350.), px(50.))); + builder.line_to(point(px(430.), px(50.))); + builder.line_to(point(px(430.), px(130.))); + builder.line_to(point(px(350.), px(130.))); + builder.close(); + let path = builder.build().unwrap(); + let mut black = rgb(0x000000); + black.a = 0.5; + lines.push((path, black.into())); + + // Two 50% opaque red circles overlapping - center should be darker red + let mut builder = PathBuilder::fill(); + let center = point(px(530.), px(85.)); + let radius = px(30.); + builder.move_to(point(center.x + radius, center.y)); + builder.arc_to( + point(radius, radius), + px(0.), + false, + false, + point(center.x - radius, center.y), + ); + builder.arc_to( + point(radius, radius), + px(0.), + false, + false, + point(center.x + radius, center.y), + ); + builder.close(); + let path = builder.build().unwrap(); + let mut red1 = rgb(0xFF0000); + red1.a = 0.5; + lines.push((path, red1.into())); + + let mut builder = PathBuilder::fill(); + let center = point(px(570.), px(85.)); + let radius = px(30.); + builder.move_to(point(center.x + radius, center.y)); + builder.arc_to( + point(radius, radius), + px(0.), + false, + false, + point(center.x - radius, center.y), + ); + builder.arc_to( + point(radius, radius), + px(0.), + false, + false, + point(center.x + radius, center.y), + ); + builder.close(); + let path = builder.build().unwrap(); + let mut red2 = rgb(0xFF0000); + red2.a = 0.5; + lines.push((path, red2.into())); + // draw a Rust logo let mut builder = lyon::path::Path::svg_builder(); lyon::extra::rust_logo::build_logo_path(&mut builder); // move down the Path let mut builder: PathBuilder = builder.into(); - builder.translate(point(px(10.), px(100.))); + builder.translate(point(px(10.), px(200.))); builder.scale(0.9); let path = builder.build().unwrap(); lines.push((path, gpui::black().into())); @@ -30,10 +167,10 @@ impl PaintingViewer { let mut builder = PathBuilder::fill(); builder.add_polygon( &[ - point(px(150.), px(200.)), - point(px(200.), px(125.)), - point(px(200.), px(175.)), - point(px(250.), px(100.)), + point(px(150.), px(300.)), + point(px(200.), px(225.)), + point(px(200.), px(275.)), + point(px(250.), px(200.)), ], false, ); @@ -42,17 +179,17 @@ impl PaintingViewer { // draw a ⭐ let mut builder = PathBuilder::fill(); - builder.move_to(point(px(350.), px(100.))); - builder.line_to(point(px(370.), px(160.))); - builder.line_to(point(px(430.), px(160.))); - builder.line_to(point(px(380.), px(200.))); - builder.line_to(point(px(400.), px(260.))); - builder.line_to(point(px(350.), px(220.))); - builder.line_to(point(px(300.), px(260.))); - builder.line_to(point(px(320.), px(200.))); - builder.line_to(point(px(270.), px(160.))); - builder.line_to(point(px(330.), px(160.))); - builder.line_to(point(px(350.), px(100.))); + builder.move_to(point(px(350.), px(200.))); + builder.line_to(point(px(370.), px(260.))); + builder.line_to(point(px(430.), px(260.))); + builder.line_to(point(px(380.), px(300.))); + builder.line_to(point(px(400.), px(360.))); + builder.line_to(point(px(350.), px(320.))); + builder.line_to(point(px(300.), px(360.))); + builder.line_to(point(px(320.), px(300.))); + builder.line_to(point(px(270.), px(260.))); + builder.line_to(point(px(330.), px(260.))); + builder.line_to(point(px(350.), px(200.))); let path = builder.build().unwrap(); lines.push(( path, @@ -66,7 +203,7 @@ impl PaintingViewer { // draw linear gradient let square_bounds = Bounds { - origin: point(px(450.), px(100.)), + origin: point(px(450.), px(200.)), size: size(px(200.), px(80.)), }; let height = square_bounds.size.height; @@ -96,31 +233,31 @@ impl PaintingViewer { // draw a pie chart let center = point(px(96.), px(96.)); - let pie_center = point(px(775.), px(155.)); + let pie_center = point(px(775.), px(255.)); let segments = [ ( - point(px(871.), px(155.)), - point(px(747.), px(63.)), + point(px(871.), px(255.)), + point(px(747.), px(163.)), rgb(0x1374e9), ), ( - point(px(747.), px(63.)), - point(px(679.), px(163.)), + point(px(747.), px(163.)), + point(px(679.), px(263.)), rgb(0xe13527), ), ( - point(px(679.), px(163.)), - point(px(754.), px(249.)), + point(px(679.), px(263.)), + point(px(754.), px(349.)), rgb(0x0751ce), ), ( - point(px(754.), px(249.)), - point(px(854.), px(210.)), + point(px(754.), px(349.)), + point(px(854.), px(310.)), rgb(0x209742), ), ( - point(px(854.), px(210.)), - point(px(871.), px(155.)), + point(px(854.), px(310.)), + point(px(871.), px(255.)), rgb(0xfbc10a), ), ]; @@ -140,11 +277,11 @@ impl PaintingViewer { .with_line_width(1.) .with_line_join(lyon::path::LineJoin::Bevel); let mut builder = PathBuilder::stroke(px(1.)).with_style(PathStyle::Stroke(options)); - builder.move_to(point(px(40.), px(320.))); + builder.move_to(point(px(40.), px(420.))); for i in 1..50 { builder.line_to(point( px(40.0 + i as f32 * 10.0), - px(320.0 + (i as f32 * 10.0).sin() * 40.0), + px(420.0 + (i as f32 * 10.0).sin() * 40.0), )); } let path = builder.build().unwrap(); @@ -152,6 +289,7 @@ impl PaintingViewer { Self { default_lines: lines.clone(), + background_quads, lines: vec![], start: point(px(0.), px(0.)), dashed: false, @@ -185,6 +323,7 @@ fn button( impl Render for PaintingViewer { fn render(&mut self, _: &mut Window, cx: &mut Context) -> impl IntoElement { let default_lines = self.default_lines.clone(); + let background_quads = self.background_quads.clone(); let lines = self.lines.clone(); let dashed = self.dashed; @@ -221,6 +360,19 @@ impl Render for PaintingViewer { canvas( move |_, _, _| {}, move |_, _, window, _| { + // First draw background quads + for (bounds, color) in background_quads.iter() { + window.paint_quad(quad( + *bounds, + px(0.), + *color, + px(0.), + gpui::transparent_black(), + Default::default(), + )); + } + + // Then draw the default paths on top for (path, color) in default_lines { window.paint_path(path, color); } @@ -303,6 +455,10 @@ fn main() { |window, cx| cx.new(|cx| PaintingViewer::new(window, cx)), ) .unwrap(); + cx.on_window_closed(|cx| { + cx.quit(); + }) + .detach(); cx.activate(true); }); } diff --git a/crates/gpui/examples/paths_bench.rs b/crates/gpui/examples/paths_bench.rs new file mode 100644 index 0000000000..a801889ae8 --- /dev/null +++ b/crates/gpui/examples/paths_bench.rs @@ -0,0 +1,92 @@ +use gpui::{ + Application, Background, Bounds, ColorSpace, Context, Path, PathBuilder, Pixels, Render, + TitlebarOptions, Window, WindowBounds, WindowOptions, canvas, div, linear_color_stop, + linear_gradient, point, prelude::*, px, rgb, size, +}; + +const DEFAULT_WINDOW_WIDTH: Pixels = px(1024.0); +const DEFAULT_WINDOW_HEIGHT: Pixels = px(768.0); + +struct PaintingViewer { + default_lines: Vec<(Path, Background)>, + _painting: bool, +} + +impl PaintingViewer { + fn new(_window: &mut Window, _cx: &mut Context) -> Self { + let mut lines = vec![]; + + // draw a lightening bolt ⚡ + for _ in 0..2000 { + // draw a ⭐ + let mut builder = PathBuilder::fill(); + builder.move_to(point(px(350.), px(100.))); + builder.line_to(point(px(370.), px(160.))); + builder.line_to(point(px(430.), px(160.))); + builder.line_to(point(px(380.), px(200.))); + builder.line_to(point(px(400.), px(260.))); + builder.line_to(point(px(350.), px(220.))); + builder.line_to(point(px(300.), px(260.))); + builder.line_to(point(px(320.), px(200.))); + builder.line_to(point(px(270.), px(160.))); + builder.line_to(point(px(330.), px(160.))); + builder.line_to(point(px(350.), px(100.))); + let path = builder.build().unwrap(); + lines.push(( + path, + linear_gradient( + 180., + linear_color_stop(rgb(0xFACC15), 0.7), + linear_color_stop(rgb(0xD56D0C), 1.), + ) + .color_space(ColorSpace::Oklab), + )); + } + + Self { + default_lines: lines, + _painting: false, + } + } +} + +impl Render for PaintingViewer { + fn render(&mut self, window: &mut Window, _: &mut Context) -> impl IntoElement { + window.request_animation_frame(); + let lines = self.default_lines.clone(); + div().size_full().child( + canvas( + move |_, _, _| {}, + move |_, _, window, _| { + for (path, color) in lines { + window.paint_path(path, color); + } + }, + ) + .size_full(), + ) + } +} + +fn main() { + Application::new().run(|cx| { + cx.open_window( + WindowOptions { + titlebar: Some(TitlebarOptions { + title: Some("Vulkan".into()), + ..Default::default() + }), + focus: true, + window_bounds: Some(WindowBounds::Windowed(Bounds::centered( + None, + size(DEFAULT_WINDOW_WIDTH, DEFAULT_WINDOW_HEIGHT), + cx, + ))), + ..Default::default() + }, + |window, cx| cx.new(|cx| PaintingViewer::new(window, cx)), + ) + .unwrap(); + cx.activate(true); + }); +} diff --git a/crates/gpui/src/platform.rs b/crates/gpui/src/platform.rs index 6f227f1d07..1e72d23868 100644 --- a/crates/gpui/src/platform.rs +++ b/crates/gpui/src/platform.rs @@ -809,7 +809,6 @@ pub(crate) struct AtlasTextureId { pub(crate) enum AtlasTextureKind { Monochrome = 0, Polychrome = 1, - Path = 2, } #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord)] diff --git a/crates/gpui/src/platform/blade/blade_atlas.rs b/crates/gpui/src/platform/blade/blade_atlas.rs index 78ba52056a..74500ebf83 100644 --- a/crates/gpui/src/platform/blade/blade_atlas.rs +++ b/crates/gpui/src/platform/blade/blade_atlas.rs @@ -10,8 +10,6 @@ use etagere::BucketedAtlasAllocator; use parking_lot::Mutex; use std::{borrow::Cow, ops, sync::Arc}; -pub(crate) const PATH_TEXTURE_FORMAT: gpu::TextureFormat = gpu::TextureFormat::R16Float; - pub(crate) struct BladeAtlas(Mutex); struct PendingUpload { @@ -27,7 +25,6 @@ struct BladeAtlasState { tiles_by_key: FxHashMap, initializations: Vec, uploads: Vec, - path_sample_count: u32, } #[cfg(gles)] @@ -41,13 +38,11 @@ impl BladeAtlasState { } pub struct BladeTextureInfo { - pub size: gpu::Extent, pub raw_view: gpu::TextureView, - pub msaa_view: Option, } impl BladeAtlas { - pub(crate) fn new(gpu: &Arc, path_sample_count: u32) -> Self { + pub(crate) fn new(gpu: &Arc) -> Self { BladeAtlas(Mutex::new(BladeAtlasState { gpu: Arc::clone(gpu), upload_belt: BufferBelt::new(BufferBeltDescriptor { @@ -59,7 +54,6 @@ impl BladeAtlas { tiles_by_key: Default::default(), initializations: Vec::new(), uploads: Vec::new(), - path_sample_count, })) } @@ -67,27 +61,6 @@ impl BladeAtlas { self.0.lock().destroy(); } - pub(crate) fn clear_textures(&self, texture_kind: AtlasTextureKind) { - let mut lock = self.0.lock(); - let textures = &mut lock.storage[texture_kind]; - for texture in textures.iter_mut() { - texture.clear(); - } - } - - /// Allocate a rectangle and make it available for rendering immediately (without waiting for `before_frame`) - pub fn allocate_for_rendering( - &self, - size: Size, - texture_kind: AtlasTextureKind, - gpu_encoder: &mut gpu::CommandEncoder, - ) -> AtlasTile { - let mut lock = self.0.lock(); - let tile = lock.allocate(size, texture_kind); - lock.flush_initializations(gpu_encoder); - tile - } - pub fn before_frame(&self, gpu_encoder: &mut gpu::CommandEncoder) { let mut lock = self.0.lock(); lock.flush(gpu_encoder); @@ -101,15 +74,8 @@ impl BladeAtlas { pub fn get_texture_info(&self, id: AtlasTextureId) -> BladeTextureInfo { let lock = self.0.lock(); let texture = &lock.storage[id]; - let size = texture.allocator.size(); BladeTextureInfo { - size: gpu::Extent { - width: size.width as u32, - height: size.height as u32, - depth: 1, - }, raw_view: texture.raw_view, - msaa_view: texture.msaa_view, } } } @@ -200,48 +166,8 @@ impl BladeAtlasState { format = gpu::TextureFormat::Bgra8UnormSrgb; usage = gpu::TextureUsage::COPY | gpu::TextureUsage::RESOURCE; } - AtlasTextureKind::Path => { - format = PATH_TEXTURE_FORMAT; - usage = gpu::TextureUsage::COPY - | gpu::TextureUsage::RESOURCE - | gpu::TextureUsage::TARGET; - } } - // We currently only enable MSAA for path textures. - let (msaa, msaa_view) = if self.path_sample_count > 1 && kind == AtlasTextureKind::Path { - let msaa = self.gpu.create_texture(gpu::TextureDesc { - name: "msaa path texture", - format, - size: gpu::Extent { - width: size.width.into(), - height: size.height.into(), - depth: 1, - }, - array_layer_count: 1, - mip_level_count: 1, - sample_count: self.path_sample_count, - dimension: gpu::TextureDimension::D2, - usage: gpu::TextureUsage::TARGET, - external: None, - }); - - ( - Some(msaa), - Some(self.gpu.create_texture_view( - msaa, - gpu::TextureViewDesc { - name: "msaa texture view", - format, - dimension: gpu::ViewDimension::D2, - subresources: &Default::default(), - }, - )), - ) - } else { - (None, None) - }; - let raw = self.gpu.create_texture(gpu::TextureDesc { name: "atlas", format, @@ -279,8 +205,6 @@ impl BladeAtlasState { format, raw, raw_view, - msaa, - msaa_view, live_atlas_keys: 0, }; @@ -340,7 +264,6 @@ impl BladeAtlasState { struct BladeAtlasStorage { monochrome_textures: AtlasTextureList, polychrome_textures: AtlasTextureList, - path_textures: AtlasTextureList, } impl ops::Index for BladeAtlasStorage { @@ -349,7 +272,6 @@ impl ops::Index for BladeAtlasStorage { match kind { crate::AtlasTextureKind::Monochrome => &self.monochrome_textures, crate::AtlasTextureKind::Polychrome => &self.polychrome_textures, - crate::AtlasTextureKind::Path => &self.path_textures, } } } @@ -359,7 +281,6 @@ impl ops::IndexMut for BladeAtlasStorage { match kind { crate::AtlasTextureKind::Monochrome => &mut self.monochrome_textures, crate::AtlasTextureKind::Polychrome => &mut self.polychrome_textures, - crate::AtlasTextureKind::Path => &mut self.path_textures, } } } @@ -370,7 +291,6 @@ impl ops::Index for BladeAtlasStorage { let textures = match id.kind { crate::AtlasTextureKind::Monochrome => &self.monochrome_textures, crate::AtlasTextureKind::Polychrome => &self.polychrome_textures, - crate::AtlasTextureKind::Path => &self.path_textures, }; textures[id.index as usize].as_ref().unwrap() } @@ -384,9 +304,6 @@ impl BladeAtlasStorage { for mut texture in self.polychrome_textures.drain().flatten() { texture.destroy(gpu); } - for mut texture in self.path_textures.drain().flatten() { - texture.destroy(gpu); - } } } @@ -395,17 +312,11 @@ struct BladeAtlasTexture { allocator: BucketedAtlasAllocator, raw: gpu::Texture, raw_view: gpu::TextureView, - msaa: Option, - msaa_view: Option, format: gpu::TextureFormat, live_atlas_keys: u32, } impl BladeAtlasTexture { - fn clear(&mut self) { - self.allocator.clear(); - } - fn allocate(&mut self, size: Size) -> Option { let allocation = self.allocator.allocate(size.into())?; let tile = AtlasTile { @@ -424,12 +335,6 @@ impl BladeAtlasTexture { fn destroy(&mut self, gpu: &gpu::Context) { gpu.destroy_texture(self.raw); gpu.destroy_texture_view(self.raw_view); - if let Some(msaa) = self.msaa { - gpu.destroy_texture(msaa); - } - if let Some(msaa_view) = self.msaa_view { - gpu.destroy_texture_view(msaa_view); - } } fn bytes_per_pixel(&self) -> u8 { diff --git a/crates/gpui/src/platform/blade/blade_renderer.rs b/crates/gpui/src/platform/blade/blade_renderer.rs index cac47434ae..2e18d2be22 100644 --- a/crates/gpui/src/platform/blade/blade_renderer.rs +++ b/crates/gpui/src/platform/blade/blade_renderer.rs @@ -1,24 +1,19 @@ // Doing `if let` gives you nice scoping with passes/encoders #![allow(irrefutable_let_patterns)] -use super::{BladeAtlas, BladeContext, PATH_TEXTURE_FORMAT}; +use super::{BladeAtlas, BladeContext}; use crate::{ - AtlasTextureKind, AtlasTile, Background, Bounds, ContentMask, DevicePixels, GpuSpecs, - MonochromeSprite, Path, PathId, PathVertex, PolychromeSprite, PrimitiveBatch, Quad, - ScaledPixels, Scene, Shadow, Size, Underline, + Background, Bounds, DevicePixels, GpuSpecs, MonochromeSprite, Path, Point, PolychromeSprite, + PrimitiveBatch, Quad, ScaledPixels, Scene, Shadow, Size, Underline, }; use blade_graphics as gpu; use blade_util::{BufferBelt, BufferBeltDescriptor}; use bytemuck::{Pod, Zeroable}; -use collections::HashMap; #[cfg(target_os = "macos")] use media::core_video::CVMetalTextureCache; -use std::{mem, sync::Arc}; +use std::sync::Arc; const MAX_FRAME_TIME_MS: u32 = 10000; -// Use 4x MSAA, all devices support it. -// https://developer.apple.com/documentation/metal/mtldevice/1433355-supportstexturesamplecount -const DEFAULT_PATH_SAMPLE_COUNT: u32 = 4; #[repr(C)] #[derive(Clone, Copy, Pod, Zeroable)] @@ -114,8 +109,15 @@ struct ShaderSurfacesData { #[repr(C)] struct PathSprite { bounds: Bounds, +} + +#[derive(Clone, Debug)] +#[repr(C)] +struct PathRasterizationVertex { + xy_position: Point, + st_position: Point, color: Background, - tile: AtlasTile, + bounds: Bounds, } struct BladePipelines { @@ -144,10 +146,7 @@ impl BladePipelines { shader.check_struct_size::(); shader.check_struct_size::(); shader.check_struct_size::(); - assert_eq!( - mem::size_of::>(), - shader.get_struct_size("PathVertex") as usize, - ); + shader.check_struct_size::(); shader.check_struct_size::(); shader.check_struct_size::(); shader.check_struct_size::(); @@ -205,9 +204,16 @@ impl BladePipelines { }, depth_stencil: None, fragment: Some(shader.at("fs_path_rasterization")), + // The original implementation was using ADDITIVE blende mode, + // I don't know why + // color_targets: &[gpu::ColorTargetState { + // format: PATH_TEXTURE_FORMAT, + // blend: Some(gpu::BlendState::ADDITIVE), + // write_mask: gpu::ColorWrites::default(), + // }], color_targets: &[gpu::ColorTargetState { - format: PATH_TEXTURE_FORMAT, - blend: Some(gpu::BlendState::ADDITIVE), + format: surface_info.format, + blend: Some(gpu::BlendState::PREMULTIPLIED_ALPHA_BLENDING), write_mask: gpu::ColorWrites::default(), }], multisample_state: gpu::MultisampleState { @@ -226,7 +232,14 @@ impl BladePipelines { }, depth_stencil: None, fragment: Some(shader.at("fs_path")), - color_targets, + color_targets: &[gpu::ColorTargetState { + format: surface_info.format, + blend: Some(gpu::BlendState { + color: gpu::BlendComponent::OVER, + alpha: gpu::BlendComponent::ADDITIVE, + }), + write_mask: gpu::ColorWrites::default(), + }], multisample_state: gpu::MultisampleState::default(), }), underlines: gpu.create_render_pipeline(gpu::RenderPipelineDesc { @@ -317,12 +330,15 @@ pub struct BladeRenderer { last_sync_point: Option, pipelines: BladePipelines, instance_belt: BufferBelt, - path_tiles: HashMap, atlas: Arc, atlas_sampler: gpu::Sampler, #[cfg(target_os = "macos")] core_video_texture_cache: CVMetalTextureCache, path_sample_count: u32, + path_intermediate_texture: gpu::Texture, + path_intermediate_texture_view: gpu::TextureView, + path_intermediate_msaa_texture: Option, + path_intermediate_msaa_texture_view: Option, } impl BladeRenderer { @@ -352,21 +368,43 @@ impl BladeRenderer { let path_sample_count = std::env::var("ZED_PATH_SAMPLE_COUNT") .ok() .and_then(|v| v.parse().ok()) - .unwrap_or(DEFAULT_PATH_SAMPLE_COUNT); + .or_else(|| { + [4, 2, 1] + .into_iter() + .find(|count| context.gpu.supports_texture_sample_count(*count)) + }) + .unwrap_or(1); let pipelines = BladePipelines::new(&context.gpu, surface.info(), path_sample_count); let instance_belt = BufferBelt::new(BufferBeltDescriptor { memory: gpu::Memory::Shared, min_chunk_size: 0x1000, alignment: 0x40, // Vulkan `minStorageBufferOffsetAlignment` on Intel Xe }); - let atlas = Arc::new(BladeAtlas::new(&context.gpu, path_sample_count)); + let atlas = Arc::new(BladeAtlas::new(&context.gpu)); let atlas_sampler = context.gpu.create_sampler(gpu::SamplerDesc { - name: "atlas", + name: "path rasterization sampler", mag_filter: gpu::FilterMode::Linear, min_filter: gpu::FilterMode::Linear, ..Default::default() }); + let (path_intermediate_texture, path_intermediate_texture_view) = + create_path_intermediate_texture( + &context.gpu, + surface.info().format, + config.size.width, + config.size.height, + ); + let (path_intermediate_msaa_texture, path_intermediate_msaa_texture_view) = + create_msaa_texture_if_needed( + &context.gpu, + surface.info().format, + config.size.width, + config.size.height, + path_sample_count, + ) + .unzip(); + #[cfg(target_os = "macos")] let core_video_texture_cache = unsafe { CVMetalTextureCache::new( @@ -383,12 +421,15 @@ impl BladeRenderer { last_sync_point: None, pipelines, instance_belt, - path_tiles: HashMap::default(), atlas, atlas_sampler, #[cfg(target_os = "macos")] core_video_texture_cache, path_sample_count, + path_intermediate_texture, + path_intermediate_texture_view, + path_intermediate_msaa_texture, + path_intermediate_msaa_texture_view, }) } @@ -441,6 +482,35 @@ impl BladeRenderer { self.surface_config.size = gpu_size; self.gpu .reconfigure_surface(&mut self.surface, self.surface_config); + self.gpu.destroy_texture(self.path_intermediate_texture); + self.gpu + .destroy_texture_view(self.path_intermediate_texture_view); + if let Some(msaa_texture) = self.path_intermediate_msaa_texture { + self.gpu.destroy_texture(msaa_texture); + } + if let Some(msaa_view) = self.path_intermediate_msaa_texture_view { + self.gpu.destroy_texture_view(msaa_view); + } + let (path_intermediate_texture, path_intermediate_texture_view) = + create_path_intermediate_texture( + &self.gpu, + self.surface.info().format, + gpu_size.width, + gpu_size.height, + ); + self.path_intermediate_texture = path_intermediate_texture; + self.path_intermediate_texture_view = path_intermediate_texture_view; + let (path_intermediate_msaa_texture, path_intermediate_msaa_texture_view) = + create_msaa_texture_if_needed( + &self.gpu, + self.surface.info().format, + gpu_size.width, + gpu_size.height, + self.path_sample_count, + ) + .unzip(); + self.path_intermediate_msaa_texture = path_intermediate_msaa_texture; + self.path_intermediate_msaa_texture_view = path_intermediate_msaa_texture_view; } } @@ -491,76 +561,63 @@ impl BladeRenderer { } #[profiling::function] - fn rasterize_paths(&mut self, paths: &[Path]) { - self.path_tiles.clear(); - let mut vertices_by_texture_id = HashMap::default(); - - for path in paths { - let clipped_bounds = path - .bounds - .intersect(&path.content_mask.bounds) - .map_origin(|origin| origin.floor()) - .map_size(|size| size.ceil()); - let tile = self.atlas.allocate_for_rendering( - clipped_bounds.size.map(Into::into), - AtlasTextureKind::Path, - &mut self.command_encoder, - ); - vertices_by_texture_id - .entry(tile.texture_id) - .or_insert(Vec::new()) - .extend(path.vertices.iter().map(|vertex| PathVertex { - xy_position: vertex.xy_position - clipped_bounds.origin - + tile.bounds.origin.map(Into::into), - st_position: vertex.st_position, - content_mask: ContentMask { - bounds: tile.bounds.map(Into::into), - }, - })); - self.path_tiles.insert(path.id, tile); + fn draw_paths_to_intermediate( + &mut self, + paths: &[Path], + width: f32, + height: f32, + ) { + self.command_encoder + .init_texture(self.path_intermediate_texture); + if let Some(msaa_texture) = self.path_intermediate_msaa_texture { + self.command_encoder.init_texture(msaa_texture); } - for (texture_id, vertices) in vertices_by_texture_id { - let tex_info = self.atlas.get_texture_info(texture_id); + let target = if let Some(msaa_view) = self.path_intermediate_msaa_texture_view { + gpu::RenderTarget { + view: msaa_view, + init_op: gpu::InitOp::Clear(gpu::TextureColor::TransparentBlack), + finish_op: gpu::FinishOp::ResolveTo(self.path_intermediate_texture_view), + } + } else { + gpu::RenderTarget { + view: self.path_intermediate_texture_view, + init_op: gpu::InitOp::Clear(gpu::TextureColor::TransparentBlack), + finish_op: gpu::FinishOp::Store, + } + }; + if let mut pass = self.command_encoder.render( + "rasterize paths", + gpu::RenderTargetSet { + colors: &[target], + depth_stencil: None, + }, + ) { let globals = GlobalParams { - viewport_size: [tex_info.size.width as f32, tex_info.size.height as f32], + viewport_size: [width, height], premultiplied_alpha: 0, pad: 0, }; + let mut encoder = pass.with(&self.pipelines.path_rasterization); - let vertex_buf = unsafe { self.instance_belt.alloc_typed(&vertices, &self.gpu) }; - let frame_view = tex_info.raw_view; - let color_target = if let Some(msaa_view) = tex_info.msaa_view { - gpu::RenderTarget { - view: msaa_view, - init_op: gpu::InitOp::Clear(gpu::TextureColor::OpaqueBlack), - finish_op: gpu::FinishOp::ResolveTo(frame_view), - } - } else { - gpu::RenderTarget { - view: frame_view, - init_op: gpu::InitOp::Clear(gpu::TextureColor::OpaqueBlack), - finish_op: gpu::FinishOp::Store, - } - }; - - if let mut pass = self.command_encoder.render( - "paths", - gpu::RenderTargetSet { - colors: &[color_target], - depth_stencil: None, - }, - ) { - let mut encoder = pass.with(&self.pipelines.path_rasterization); - encoder.bind( - 0, - &ShaderPathRasterizationData { - globals, - b_path_vertices: vertex_buf, - }, - ); - encoder.draw(0, vertices.len() as u32, 0, 1); + let mut vertices = Vec::new(); + for path in paths { + vertices.extend(path.vertices.iter().map(|v| PathRasterizationVertex { + xy_position: v.xy_position, + st_position: v.st_position, + color: path.color, + bounds: path.bounds.intersect(&path.content_mask.bounds), + })); } + let vertex_buf = unsafe { self.instance_belt.alloc_typed(&vertices, &self.gpu) }; + encoder.bind( + 0, + &ShaderPathRasterizationData { + globals, + b_path_vertices: vertex_buf, + }, + ); + encoder.draw(0, vertices.len() as u32, 0, 1); } } @@ -572,12 +629,20 @@ impl BladeRenderer { self.gpu.destroy_command_encoder(&mut self.command_encoder); self.pipelines.destroy(&self.gpu); self.gpu.destroy_surface(&mut self.surface); + self.gpu.destroy_texture(self.path_intermediate_texture); + self.gpu + .destroy_texture_view(self.path_intermediate_texture_view); + if let Some(msaa_texture) = self.path_intermediate_msaa_texture { + self.gpu.destroy_texture(msaa_texture); + } + if let Some(msaa_view) = self.path_intermediate_msaa_texture_view { + self.gpu.destroy_texture_view(msaa_view); + } } pub fn draw(&mut self, scene: &Scene) { self.command_encoder.start(); self.atlas.before_frame(&mut self.command_encoder); - self.rasterize_paths(scene.paths()); let frame = { profiling::scope!("acquire frame"); @@ -597,7 +662,7 @@ impl BladeRenderer { pad: 0, }; - if let mut pass = self.command_encoder.render( + let mut pass = self.command_encoder.render( "main", gpu::RenderTargetSet { colors: &[gpu::RenderTarget { @@ -607,209 +672,235 @@ impl BladeRenderer { }], depth_stencil: None, }, - ) { - profiling::scope!("render pass"); - for batch in scene.batches() { - match batch { - PrimitiveBatch::Quads(quads) => { - let instance_buf = - unsafe { self.instance_belt.alloc_typed(quads, &self.gpu) }; - let mut encoder = pass.with(&self.pipelines.quads); - encoder.bind( - 0, - &ShaderQuadsData { - globals, - b_quads: instance_buf, - }, - ); - encoder.draw(0, 4, 0, quads.len() as u32); - } - PrimitiveBatch::Shadows(shadows) => { - let instance_buf = - unsafe { self.instance_belt.alloc_typed(shadows, &self.gpu) }; - let mut encoder = pass.with(&self.pipelines.shadows); - encoder.bind( - 0, - &ShaderShadowsData { - globals, - b_shadows: instance_buf, - }, - ); - encoder.draw(0, 4, 0, shadows.len() as u32); - } - PrimitiveBatch::Paths(paths) => { - let mut encoder = pass.with(&self.pipelines.paths); - // todo(linux): group by texture ID - for path in paths { - let tile = &self.path_tiles[&path.id]; - let tex_info = self.atlas.get_texture_info(tile.texture_id); - let origin = path.bounds.intersect(&path.content_mask.bounds).origin; - let sprites = [PathSprite { - bounds: Bounds { - origin: origin.map(|p| p.floor()), - size: tile.bounds.size.map(Into::into), - }, - color: path.color, - tile: (*tile).clone(), - }]; + ); - let instance_buf = - unsafe { self.instance_belt.alloc_typed(&sprites, &self.gpu) }; - encoder.bind( - 0, - &ShaderPathsData { - globals, - t_sprite: tex_info.raw_view, - s_sprite: self.atlas_sampler, - b_path_sprites: instance_buf, - }, - ); - encoder.draw(0, 4, 0, sprites.len() as u32); + profiling::scope!("render pass"); + for batch in scene.batches() { + match batch { + PrimitiveBatch::Quads(quads) => { + let instance_buf = unsafe { self.instance_belt.alloc_typed(quads, &self.gpu) }; + let mut encoder = pass.with(&self.pipelines.quads); + encoder.bind( + 0, + &ShaderQuadsData { + globals, + b_quads: instance_buf, + }, + ); + encoder.draw(0, 4, 0, quads.len() as u32); + } + PrimitiveBatch::Shadows(shadows) => { + let instance_buf = + unsafe { self.instance_belt.alloc_typed(shadows, &self.gpu) }; + let mut encoder = pass.with(&self.pipelines.shadows); + encoder.bind( + 0, + &ShaderShadowsData { + globals, + b_shadows: instance_buf, + }, + ); + encoder.draw(0, 4, 0, shadows.len() as u32); + } + PrimitiveBatch::Paths(paths) => { + let Some(first_path) = paths.first() else { + continue; + }; + drop(pass); + self.draw_paths_to_intermediate( + paths, + self.surface_config.size.width as f32, + self.surface_config.size.height as f32, + ); + pass = self.command_encoder.render( + "main", + gpu::RenderTargetSet { + colors: &[gpu::RenderTarget { + view: frame.texture_view(), + init_op: gpu::InitOp::Load, + finish_op: gpu::FinishOp::Store, + }], + depth_stencil: None, + }, + ); + let mut encoder = pass.with(&self.pipelines.paths); + // When copying paths from the intermediate texture to the drawable, + // each pixel must only be copied once, in case of transparent paths. + // + // If all paths have the same draw order, then their bounds are all + // disjoint, so we can copy each path's bounds individually. If this + // batch combines different draw orders, we perform a single copy + // for a minimal spanning rect. + let sprites = if paths.last().unwrap().order == first_path.order { + paths + .iter() + .map(|path| PathSprite { + bounds: path.bounds, + }) + .collect() + } else { + let mut bounds = first_path.bounds; + for path in paths.iter().skip(1) { + bounds = bounds.union(&path.bounds); } - } - PrimitiveBatch::Underlines(underlines) => { - let instance_buf = - unsafe { self.instance_belt.alloc_typed(underlines, &self.gpu) }; - let mut encoder = pass.with(&self.pipelines.underlines); - encoder.bind( - 0, - &ShaderUnderlinesData { - globals, - b_underlines: instance_buf, - }, - ); - encoder.draw(0, 4, 0, underlines.len() as u32); - } - PrimitiveBatch::MonochromeSprites { - texture_id, - sprites, - } => { - let tex_info = self.atlas.get_texture_info(texture_id); - let instance_buf = - unsafe { self.instance_belt.alloc_typed(sprites, &self.gpu) }; - let mut encoder = pass.with(&self.pipelines.mono_sprites); - encoder.bind( - 0, - &ShaderMonoSpritesData { - globals, - t_sprite: tex_info.raw_view, - s_sprite: self.atlas_sampler, - b_mono_sprites: instance_buf, - }, - ); - encoder.draw(0, 4, 0, sprites.len() as u32); - } - PrimitiveBatch::PolychromeSprites { - texture_id, - sprites, - } => { - let tex_info = self.atlas.get_texture_info(texture_id); - let instance_buf = - unsafe { self.instance_belt.alloc_typed(sprites, &self.gpu) }; - let mut encoder = pass.with(&self.pipelines.poly_sprites); - encoder.bind( - 0, - &ShaderPolySpritesData { - globals, - t_sprite: tex_info.raw_view, - s_sprite: self.atlas_sampler, - b_poly_sprites: instance_buf, - }, - ); - encoder.draw(0, 4, 0, sprites.len() as u32); - } - PrimitiveBatch::Surfaces(surfaces) => { - let mut _encoder = pass.with(&self.pipelines.surfaces); + vec![PathSprite { bounds }] + }; + let instance_buf = + unsafe { self.instance_belt.alloc_typed(&sprites, &self.gpu) }; + encoder.bind( + 0, + &ShaderPathsData { + globals, + t_sprite: self.path_intermediate_texture_view, + s_sprite: self.atlas_sampler, + b_path_sprites: instance_buf, + }, + ); + encoder.draw(0, 4, 0, sprites.len() as u32); + } + PrimitiveBatch::Underlines(underlines) => { + let instance_buf = + unsafe { self.instance_belt.alloc_typed(underlines, &self.gpu) }; + let mut encoder = pass.with(&self.pipelines.underlines); + encoder.bind( + 0, + &ShaderUnderlinesData { + globals, + b_underlines: instance_buf, + }, + ); + encoder.draw(0, 4, 0, underlines.len() as u32); + } + PrimitiveBatch::MonochromeSprites { + texture_id, + sprites, + } => { + let tex_info = self.atlas.get_texture_info(texture_id); + let instance_buf = + unsafe { self.instance_belt.alloc_typed(sprites, &self.gpu) }; + let mut encoder = pass.with(&self.pipelines.mono_sprites); + encoder.bind( + 0, + &ShaderMonoSpritesData { + globals, + t_sprite: tex_info.raw_view, + s_sprite: self.atlas_sampler, + b_mono_sprites: instance_buf, + }, + ); + encoder.draw(0, 4, 0, sprites.len() as u32); + } + PrimitiveBatch::PolychromeSprites { + texture_id, + sprites, + } => { + let tex_info = self.atlas.get_texture_info(texture_id); + let instance_buf = + unsafe { self.instance_belt.alloc_typed(sprites, &self.gpu) }; + let mut encoder = pass.with(&self.pipelines.poly_sprites); + encoder.bind( + 0, + &ShaderPolySpritesData { + globals, + t_sprite: tex_info.raw_view, + s_sprite: self.atlas_sampler, + b_poly_sprites: instance_buf, + }, + ); + encoder.draw(0, 4, 0, sprites.len() as u32); + } + PrimitiveBatch::Surfaces(surfaces) => { + let mut _encoder = pass.with(&self.pipelines.surfaces); - for surface in surfaces { - #[cfg(not(target_os = "macos"))] - { - let _ = surface; - continue; - }; + for surface in surfaces { + #[cfg(not(target_os = "macos"))] + { + let _ = surface; + continue; + }; - #[cfg(target_os = "macos")] - { - let (t_y, t_cb_cr) = unsafe { - use core_foundation::base::TCFType as _; - use std::ptr; + #[cfg(target_os = "macos")] + { + let (t_y, t_cb_cr) = unsafe { + use core_foundation::base::TCFType as _; + use std::ptr; - assert_eq!( + assert_eq!( surface.image_buffer.get_pixel_format(), core_video::pixel_buffer::kCVPixelFormatType_420YpCbCr8BiPlanarFullRange ); - let y_texture = self - .core_video_texture_cache - .create_texture_from_image( - surface.image_buffer.as_concrete_TypeRef(), - ptr::null(), - metal::MTLPixelFormat::R8Unorm, - surface.image_buffer.get_width_of_plane(0), - surface.image_buffer.get_height_of_plane(0), - 0, - ) - .unwrap(); - let cb_cr_texture = self - .core_video_texture_cache - .create_texture_from_image( - surface.image_buffer.as_concrete_TypeRef(), - ptr::null(), - metal::MTLPixelFormat::RG8Unorm, - surface.image_buffer.get_width_of_plane(1), - surface.image_buffer.get_height_of_plane(1), - 1, - ) - .unwrap(); - ( - gpu::TextureView::from_metal_texture( - &objc2::rc::Retained::retain( - foreign_types::ForeignTypeRef::as_ptr( - y_texture.as_texture_ref(), - ) - as *mut objc2::runtime::ProtocolObject< - dyn objc2_metal::MTLTexture, - >, - ) - .unwrap(), - gpu::TexelAspects::COLOR, - ), - gpu::TextureView::from_metal_texture( - &objc2::rc::Retained::retain( - foreign_types::ForeignTypeRef::as_ptr( - cb_cr_texture.as_texture_ref(), - ) - as *mut objc2::runtime::ProtocolObject< - dyn objc2_metal::MTLTexture, - >, - ) - .unwrap(), - gpu::TexelAspects::COLOR, - ), + let y_texture = self + .core_video_texture_cache + .create_texture_from_image( + surface.image_buffer.as_concrete_TypeRef(), + ptr::null(), + metal::MTLPixelFormat::R8Unorm, + surface.image_buffer.get_width_of_plane(0), + surface.image_buffer.get_height_of_plane(0), + 0, ) - }; + .unwrap(); + let cb_cr_texture = self + .core_video_texture_cache + .create_texture_from_image( + surface.image_buffer.as_concrete_TypeRef(), + ptr::null(), + metal::MTLPixelFormat::RG8Unorm, + surface.image_buffer.get_width_of_plane(1), + surface.image_buffer.get_height_of_plane(1), + 1, + ) + .unwrap(); + ( + gpu::TextureView::from_metal_texture( + &objc2::rc::Retained::retain( + foreign_types::ForeignTypeRef::as_ptr( + y_texture.as_texture_ref(), + ) + as *mut objc2::runtime::ProtocolObject< + dyn objc2_metal::MTLTexture, + >, + ) + .unwrap(), + gpu::TexelAspects::COLOR, + ), + gpu::TextureView::from_metal_texture( + &objc2::rc::Retained::retain( + foreign_types::ForeignTypeRef::as_ptr( + cb_cr_texture.as_texture_ref(), + ) + as *mut objc2::runtime::ProtocolObject< + dyn objc2_metal::MTLTexture, + >, + ) + .unwrap(), + gpu::TexelAspects::COLOR, + ), + ) + }; - _encoder.bind( - 0, - &ShaderSurfacesData { - globals, - surface_locals: SurfaceParams { - bounds: surface.bounds.into(), - content_mask: surface.content_mask.bounds.into(), - }, - t_y, - t_cb_cr, - s_surface: self.atlas_sampler, + _encoder.bind( + 0, + &ShaderSurfacesData { + globals, + surface_locals: SurfaceParams { + bounds: surface.bounds.into(), + content_mask: surface.content_mask.bounds.into(), }, - ); + t_y, + t_cb_cr, + s_surface: self.atlas_sampler, + }, + ); - _encoder.draw(0, 4, 0, 1); - } + _encoder.draw(0, 4, 0, 1); } } } } } + drop(pass); self.command_encoder.present(frame); let sync_point = self.gpu.submit(&mut self.command_encoder); @@ -817,9 +908,79 @@ impl BladeRenderer { profiling::scope!("finish"); self.instance_belt.flush(&sync_point); self.atlas.after_frame(&sync_point); - self.atlas.clear_textures(AtlasTextureKind::Path); self.wait_for_gpu(); self.last_sync_point = Some(sync_point); } } + +fn create_path_intermediate_texture( + gpu: &gpu::Context, + format: gpu::TextureFormat, + width: u32, + height: u32, +) -> (gpu::Texture, gpu::TextureView) { + let texture = gpu.create_texture(gpu::TextureDesc { + name: "path intermediate", + format, + size: gpu::Extent { + width, + height, + depth: 1, + }, + array_layer_count: 1, + mip_level_count: 1, + sample_count: 1, + dimension: gpu::TextureDimension::D2, + usage: gpu::TextureUsage::COPY | gpu::TextureUsage::RESOURCE | gpu::TextureUsage::TARGET, + external: None, + }); + let texture_view = gpu.create_texture_view( + texture, + gpu::TextureViewDesc { + name: "path intermediate view", + format, + dimension: gpu::ViewDimension::D2, + subresources: &Default::default(), + }, + ); + (texture, texture_view) +} + +fn create_msaa_texture_if_needed( + gpu: &gpu::Context, + format: gpu::TextureFormat, + width: u32, + height: u32, + sample_count: u32, +) -> Option<(gpu::Texture, gpu::TextureView)> { + if sample_count <= 1 { + return None; + } + let texture_msaa = gpu.create_texture(gpu::TextureDesc { + name: "path intermediate msaa", + format, + size: gpu::Extent { + width, + height, + depth: 1, + }, + array_layer_count: 1, + mip_level_count: 1, + sample_count, + dimension: gpu::TextureDimension::D2, + usage: gpu::TextureUsage::TARGET, + external: None, + }); + let texture_view_msaa = gpu.create_texture_view( + texture_msaa, + gpu::TextureViewDesc { + name: "path intermediate msaa view", + format, + dimension: gpu::ViewDimension::D2, + subresources: &Default::default(), + }, + ); + + Some((texture_msaa, texture_view_msaa)) +} diff --git a/crates/gpui/src/platform/blade/shaders.wgsl b/crates/gpui/src/platform/blade/shaders.wgsl index 0b34a0eea3..b1ffb1812e 100644 --- a/crates/gpui/src/platform/blade/shaders.wgsl +++ b/crates/gpui/src/platform/blade/shaders.wgsl @@ -924,16 +924,19 @@ fn fs_shadow(input: ShadowVarying) -> @location(0) vec4 { // --- path rasterization --- // -struct PathVertex { +struct PathRasterizationVertex { xy_position: vec2, st_position: vec2, - content_mask: Bounds, + color: Background, + bounds: Bounds, } -var b_path_vertices: array; + +var b_path_vertices: array; struct PathRasterizationVarying { @builtin(position) position: vec4, @location(0) st_position: vec2, + @location(1) vertex_id: u32, //TODO: use `clip_distance` once Naga supports it @location(3) clip_distances: vec4, } @@ -945,40 +948,54 @@ fn vs_path_rasterization(@builtin(vertex_index) vertex_id: u32) -> PathRasteriza var out = PathRasterizationVarying(); out.position = to_device_position_impl(v.xy_position); out.st_position = v.st_position; - out.clip_distances = distance_from_clip_rect_impl(v.xy_position, v.content_mask); + out.vertex_id = vertex_id; + out.clip_distances = distance_from_clip_rect_impl(v.xy_position, v.bounds); return out; } @fragment -fn fs_path_rasterization(input: PathRasterizationVarying) -> @location(0) f32 { +fn fs_path_rasterization(input: PathRasterizationVarying) -> @location(0) vec4 { let dx = dpdx(input.st_position); let dy = dpdy(input.st_position); if (any(input.clip_distances < vec4(0.0))) { - return 0.0; + return vec4(0.0); } - let gradient = 2.0 * input.st_position.xx * vec2(dx.x, dy.x) - vec2(dx.y, dy.y); - let f = input.st_position.x * input.st_position.x - input.st_position.y; - let distance = f / length(gradient); - return saturate(0.5 - distance); + let v = b_path_vertices[input.vertex_id]; + let background = v.color; + let bounds = v.bounds; + + var alpha: f32; + if (length(vec2(dx.x, dy.x)) < 0.001) { + // If the gradient is too small, return a solid color. + alpha = 1.0; + } else { + let gradient = 2.0 * input.st_position.xx * vec2(dx.x, dy.x) - vec2(dx.y, dy.y); + let f = input.st_position.x * input.st_position.x - input.st_position.y; + let distance = f / length(gradient); + alpha = saturate(0.5 - distance); + } + let gradient_color = prepare_gradient_color( + background.tag, + background.color_space, + background.solid, + background.colors, + ); + let color = gradient_color(background, input.position.xy, bounds, + gradient_color.solid, gradient_color.color0, gradient_color.color1); + return vec4(color.rgb * color.a * alpha, color.a * alpha); } // --- paths --- // struct PathSprite { bounds: Bounds, - color: Background, - tile: AtlasTile, } var b_path_sprites: array; struct PathVarying { @builtin(position) position: vec4, - @location(0) tile_position: vec2, - @location(1) @interpolate(flat) instance_id: u32, - @location(2) @interpolate(flat) color_solid: vec4, - @location(3) @interpolate(flat) color0: vec4, - @location(4) @interpolate(flat) color1: vec4, + @location(0) texture_coords: vec2, } @vertex @@ -986,33 +1003,22 @@ fn vs_path(@builtin(vertex_index) vertex_id: u32, @builtin(instance_index) insta let unit_vertex = vec2(f32(vertex_id & 1u), 0.5 * f32(vertex_id & 2u)); let sprite = b_path_sprites[instance_id]; // Don't apply content mask because it was already accounted for when rasterizing the path. + let device_position = to_device_position(unit_vertex, sprite.bounds); + // For screen-space intermediate texture, convert screen position to texture coordinates + let screen_position = sprite.bounds.origin + unit_vertex * sprite.bounds.size; + let texture_coords = screen_position / globals.viewport_size; var out = PathVarying(); - out.position = to_device_position(unit_vertex, sprite.bounds); - out.tile_position = to_tile_position(unit_vertex, sprite.tile); - out.instance_id = instance_id; + out.position = device_position; + out.texture_coords = texture_coords; - let gradient = prepare_gradient_color( - sprite.color.tag, - sprite.color.color_space, - sprite.color.solid, - sprite.color.colors - ); - out.color_solid = gradient.solid; - out.color0 = gradient.color0; - out.color1 = gradient.color1; return out; } @fragment fn fs_path(input: PathVarying) -> @location(0) vec4 { - let sample = textureSample(t_sprite, s_sprite, input.tile_position).r; - let mask = 1.0 - abs(1.0 - sample % 2.0); - let sprite = b_path_sprites[input.instance_id]; - let background = sprite.color; - let color = gradient_color(background, input.position.xy, sprite.bounds, - input.color_solid, input.color0, input.color1); - return blend_color(color, mask); + let sample = textureSample(t_sprite, s_sprite, input.texture_coords); + return sample; } // --- underlines --- // diff --git a/crates/gpui/src/platform/mac/metal_atlas.rs b/crates/gpui/src/platform/mac/metal_atlas.rs index 366f2dcc3c..5d2d8e63e0 100644 --- a/crates/gpui/src/platform/mac/metal_atlas.rs +++ b/crates/gpui/src/platform/mac/metal_atlas.rs @@ -13,53 +13,25 @@ use std::borrow::Cow; pub(crate) struct MetalAtlas(Mutex); impl MetalAtlas { - pub(crate) fn new(device: Device, path_sample_count: u32) -> Self { + pub(crate) fn new(device: Device) -> Self { MetalAtlas(Mutex::new(MetalAtlasState { device: AssertSend(device), monochrome_textures: Default::default(), polychrome_textures: Default::default(), - path_textures: Default::default(), tiles_by_key: Default::default(), - path_sample_count, })) } pub(crate) fn metal_texture(&self, id: AtlasTextureId) -> metal::Texture { self.0.lock().texture(id).metal_texture.clone() } - - pub(crate) fn msaa_texture(&self, id: AtlasTextureId) -> Option { - self.0.lock().texture(id).msaa_texture.clone() - } - - pub(crate) fn allocate( - &self, - size: Size, - texture_kind: AtlasTextureKind, - ) -> Option { - self.0.lock().allocate(size, texture_kind) - } - - pub(crate) fn clear_textures(&self, texture_kind: AtlasTextureKind) { - let mut lock = self.0.lock(); - let textures = match texture_kind { - AtlasTextureKind::Monochrome => &mut lock.monochrome_textures, - AtlasTextureKind::Polychrome => &mut lock.polychrome_textures, - AtlasTextureKind::Path => &mut lock.path_textures, - }; - for texture in textures.iter_mut() { - texture.clear(); - } - } } struct MetalAtlasState { device: AssertSend, monochrome_textures: AtlasTextureList, polychrome_textures: AtlasTextureList, - path_textures: AtlasTextureList, tiles_by_key: FxHashMap, - path_sample_count: u32, } impl PlatformAtlas for MetalAtlas { @@ -94,7 +66,6 @@ impl PlatformAtlas for MetalAtlas { let textures = match id.kind { AtlasTextureKind::Monochrome => &mut lock.monochrome_textures, AtlasTextureKind::Polychrome => &mut lock.polychrome_textures, - AtlasTextureKind::Path => &mut lock.polychrome_textures, }; let Some(texture_slot) = textures @@ -128,7 +99,6 @@ impl MetalAtlasState { let textures = match texture_kind { AtlasTextureKind::Monochrome => &mut self.monochrome_textures, AtlasTextureKind::Polychrome => &mut self.polychrome_textures, - AtlasTextureKind::Path => &mut self.path_textures, }; if let Some(tile) = textures @@ -173,31 +143,14 @@ impl MetalAtlasState { pixel_format = metal::MTLPixelFormat::BGRA8Unorm; usage = metal::MTLTextureUsage::ShaderRead; } - AtlasTextureKind::Path => { - pixel_format = metal::MTLPixelFormat::R16Float; - usage = metal::MTLTextureUsage::RenderTarget | metal::MTLTextureUsage::ShaderRead; - } } texture_descriptor.set_pixel_format(pixel_format); texture_descriptor.set_usage(usage); let metal_texture = self.device.new_texture(&texture_descriptor); - // We currently only enable MSAA for path textures. - let msaa_texture = if self.path_sample_count > 1 && kind == AtlasTextureKind::Path { - let mut descriptor = texture_descriptor.clone(); - descriptor.set_texture_type(metal::MTLTextureType::D2Multisample); - descriptor.set_storage_mode(metal::MTLStorageMode::Private); - descriptor.set_sample_count(self.path_sample_count as _); - let msaa_texture = self.device.new_texture(&descriptor); - Some(msaa_texture) - } else { - None - }; - let texture_list = match kind { AtlasTextureKind::Monochrome => &mut self.monochrome_textures, AtlasTextureKind::Polychrome => &mut self.polychrome_textures, - AtlasTextureKind::Path => &mut self.path_textures, }; let index = texture_list.free_list.pop(); @@ -209,7 +162,6 @@ impl MetalAtlasState { }, allocator: etagere::BucketedAtlasAllocator::new(size.into()), metal_texture: AssertSend(metal_texture), - msaa_texture: AssertSend(msaa_texture), live_atlas_keys: 0, }; @@ -226,7 +178,6 @@ impl MetalAtlasState { let textures = match id.kind { crate::AtlasTextureKind::Monochrome => &self.monochrome_textures, crate::AtlasTextureKind::Polychrome => &self.polychrome_textures, - crate::AtlasTextureKind::Path => &self.path_textures, }; textures[id.index as usize].as_ref().unwrap() } @@ -236,15 +187,10 @@ struct MetalAtlasTexture { id: AtlasTextureId, allocator: BucketedAtlasAllocator, metal_texture: AssertSend, - msaa_texture: AssertSend>, live_atlas_keys: u32, } impl MetalAtlasTexture { - fn clear(&mut self) { - self.allocator.clear(); - } - fn allocate(&mut self, size: Size) -> Option { let allocation = self.allocator.allocate(size.into())?; let tile = AtlasTile { diff --git a/crates/gpui/src/platform/mac/metal_renderer.rs b/crates/gpui/src/platform/mac/metal_renderer.rs index 3cdc2dd2cf..fb5cb852d6 100644 --- a/crates/gpui/src/platform/mac/metal_renderer.rs +++ b/crates/gpui/src/platform/mac/metal_renderer.rs @@ -1,27 +1,30 @@ use super::metal_atlas::MetalAtlas; use crate::{ - AtlasTextureId, AtlasTextureKind, AtlasTile, Background, Bounds, ContentMask, DevicePixels, - MonochromeSprite, PaintSurface, Path, PathId, PathVertex, PolychromeSprite, PrimitiveBatch, - Quad, ScaledPixels, Scene, Shadow, Size, Surface, Underline, point, size, + AtlasTextureId, Background, Bounds, ContentMask, DevicePixels, MonochromeSprite, PaintSurface, + Path, Point, PolychromeSprite, PrimitiveBatch, Quad, ScaledPixels, Scene, Shadow, Size, + Surface, Underline, point, size, }; -use anyhow::{Context as _, Result}; +use anyhow::Result; use block::ConcreteBlock; use cocoa::{ base::{NO, YES}, foundation::{NSSize, NSUInteger}, quartzcore::AutoresizingMask, }; -use collections::HashMap; + use core_foundation::base::TCFType; use core_video::{ metal_texture::CVMetalTextureGetTexture, metal_texture_cache::CVMetalTextureCache, pixel_buffer::kCVPixelFormatType_420YpCbCr8BiPlanarFullRange, }; use foreign_types::{ForeignType, ForeignTypeRef}; -use metal::{CAMetalLayer, CommandQueue, MTLPixelFormat, MTLResourceOptions, NSRange}; +use metal::{ + CAMetalLayer, CommandQueue, MTLPixelFormat, MTLResourceOptions, NSRange, + RenderPassColorAttachmentDescriptorRef, +}; use objc::{self, msg_send, sel, sel_impl}; use parking_lot::Mutex; -use smallvec::SmallVec; + use std::{cell::Cell, ffi::c_void, mem, ptr, sync::Arc}; // Exported to metal @@ -111,6 +114,17 @@ pub(crate) struct MetalRenderer { instance_buffer_pool: Arc>, sprite_atlas: Arc, core_video_texture_cache: core_video::metal_texture_cache::CVMetalTextureCache, + path_intermediate_texture: Option, + path_intermediate_msaa_texture: Option, + path_sample_count: u32, +} + +#[repr(C)] +pub struct PathRasterizationVertex { + pub xy_position: Point, + pub st_position: Point, + pub color: Background, + pub bounds: Bounds, } impl MetalRenderer { @@ -175,10 +189,10 @@ impl MetalRenderer { "paths_rasterization", "path_rasterization_vertex", "path_rasterization_fragment", - MTLPixelFormat::R16Float, + MTLPixelFormat::BGRA8Unorm, PATH_SAMPLE_COUNT, ); - let path_sprites_pipeline_state = build_pipeline_state( + let path_sprites_pipeline_state = build_path_sprite_pipeline_state( &device, &library, "path_sprites", @@ -236,7 +250,7 @@ impl MetalRenderer { ); let command_queue = device.new_command_queue(); - let sprite_atlas = Arc::new(MetalAtlas::new(device.clone(), PATH_SAMPLE_COUNT)); + let sprite_atlas = Arc::new(MetalAtlas::new(device.clone())); let core_video_texture_cache = CVMetalTextureCache::new(None, device.clone(), None).unwrap(); @@ -257,6 +271,9 @@ impl MetalRenderer { instance_buffer_pool, sprite_atlas, core_video_texture_cache, + path_intermediate_texture: None, + path_intermediate_msaa_texture: None, + path_sample_count: PATH_SAMPLE_COUNT, } } @@ -289,6 +306,31 @@ impl MetalRenderer { setDrawableSize: size ]; } + let device_pixels_size = Size { + width: DevicePixels(size.width as i32), + height: DevicePixels(size.height as i32), + }; + self.update_path_intermediate_textures(device_pixels_size); + } + + fn update_path_intermediate_textures(&mut self, size: Size) { + let texture_descriptor = metal::TextureDescriptor::new(); + texture_descriptor.set_width(size.width.0 as u64); + texture_descriptor.set_height(size.height.0 as u64); + texture_descriptor.set_pixel_format(metal::MTLPixelFormat::BGRA8Unorm); + texture_descriptor + .set_usage(metal::MTLTextureUsage::RenderTarget | metal::MTLTextureUsage::ShaderRead); + self.path_intermediate_texture = Some(self.device.new_texture(&texture_descriptor)); + + if self.path_sample_count > 1 { + let mut msaa_descriptor = texture_descriptor.clone(); + msaa_descriptor.set_texture_type(metal::MTLTextureType::D2Multisample); + msaa_descriptor.set_storage_mode(metal::MTLStorageMode::Private); + msaa_descriptor.set_sample_count(self.path_sample_count as _); + self.path_intermediate_msaa_texture = Some(self.device.new_texture(&msaa_descriptor)); + } else { + self.path_intermediate_msaa_texture = None; + } } pub fn update_transparency(&self, _transparent: bool) { @@ -374,38 +416,18 @@ impl MetalRenderer { ) -> Result { let command_queue = self.command_queue.clone(); let command_buffer = command_queue.new_command_buffer(); + let alpha = if self.layer.is_opaque() { 1. } else { 0. }; let mut instance_offset = 0; - let path_tiles = self - .rasterize_paths( - scene.paths(), - instance_buffer, - &mut instance_offset, - command_buffer, - ) - .with_context(|| format!("rasterizing {} paths", scene.paths().len()))?; - - let render_pass_descriptor = metal::RenderPassDescriptor::new(); - let color_attachment = render_pass_descriptor - .color_attachments() - .object_at(0) - .unwrap(); - - color_attachment.set_texture(Some(drawable.texture())); - color_attachment.set_load_action(metal::MTLLoadAction::Clear); - color_attachment.set_store_action(metal::MTLStoreAction::Store); - let alpha = if self.layer.is_opaque() { 1. } else { 0. }; - color_attachment.set_clear_color(metal::MTLClearColor::new(0., 0., 0., alpha)); - let command_encoder = command_buffer.new_render_command_encoder(render_pass_descriptor); - - command_encoder.set_viewport(metal::MTLViewport { - originX: 0.0, - originY: 0.0, - width: i32::from(viewport_size.width) as f64, - height: i32::from(viewport_size.height) as f64, - znear: 0.0, - zfar: 1.0, - }); + let mut command_encoder = new_command_encoder( + command_buffer, + drawable, + viewport_size, + |color_attachment| { + color_attachment.set_load_action(metal::MTLLoadAction::Clear); + color_attachment.set_clear_color(metal::MTLClearColor::new(0., 0., 0., alpha)); + }, + ); for batch in scene.batches() { let ok = match batch { @@ -414,29 +436,53 @@ impl MetalRenderer { instance_buffer, &mut instance_offset, viewport_size, - command_encoder, + &command_encoder, ), PrimitiveBatch::Quads(quads) => self.draw_quads( quads, instance_buffer, &mut instance_offset, viewport_size, - command_encoder, - ), - PrimitiveBatch::Paths(paths) => self.draw_paths( - paths, - &path_tiles, - instance_buffer, - &mut instance_offset, - viewport_size, - command_encoder, + &command_encoder, ), + PrimitiveBatch::Paths(paths) => { + command_encoder.end_encoding(); + + let did_draw = self.draw_paths_to_intermediate( + paths, + instance_buffer, + &mut instance_offset, + viewport_size, + command_buffer, + ); + + command_encoder = new_command_encoder( + command_buffer, + drawable, + viewport_size, + |color_attachment| { + color_attachment.set_load_action(metal::MTLLoadAction::Load); + }, + ); + + if did_draw { + self.draw_paths_from_intermediate( + paths, + instance_buffer, + &mut instance_offset, + viewport_size, + &command_encoder, + ) + } else { + false + } + } PrimitiveBatch::Underlines(underlines) => self.draw_underlines( underlines, instance_buffer, &mut instance_offset, viewport_size, - command_encoder, + &command_encoder, ), PrimitiveBatch::MonochromeSprites { texture_id, @@ -447,7 +493,7 @@ impl MetalRenderer { instance_buffer, &mut instance_offset, viewport_size, - command_encoder, + &command_encoder, ), PrimitiveBatch::PolychromeSprites { texture_id, @@ -458,17 +504,16 @@ impl MetalRenderer { instance_buffer, &mut instance_offset, viewport_size, - command_encoder, + &command_encoder, ), PrimitiveBatch::Surfaces(surfaces) => self.draw_surfaces( surfaces, instance_buffer, &mut instance_offset, viewport_size, - command_encoder, + &command_encoder, ), }; - if !ok { command_encoder.end_encoding(); anyhow::bail!( @@ -493,104 +538,90 @@ impl MetalRenderer { Ok(command_buffer.to_owned()) } - fn rasterize_paths( + fn draw_paths_to_intermediate( &self, paths: &[Path], instance_buffer: &mut InstanceBuffer, instance_offset: &mut usize, + viewport_size: Size, command_buffer: &metal::CommandBufferRef, - ) -> Option> { - self.sprite_atlas.clear_textures(AtlasTextureKind::Path); + ) -> bool { + if paths.is_empty() { + return true; + } + let Some(intermediate_texture) = &self.path_intermediate_texture else { + return false; + }; - let mut tiles = HashMap::default(); - let mut vertices_by_texture_id = HashMap::default(); + let render_pass_descriptor = metal::RenderPassDescriptor::new(); + let color_attachment = render_pass_descriptor + .color_attachments() + .object_at(0) + .unwrap(); + color_attachment.set_load_action(metal::MTLLoadAction::Clear); + color_attachment.set_clear_color(metal::MTLClearColor::new(0., 0., 0., 0.)); + + if let Some(msaa_texture) = &self.path_intermediate_msaa_texture { + color_attachment.set_texture(Some(msaa_texture)); + color_attachment.set_resolve_texture(Some(intermediate_texture)); + color_attachment.set_store_action(metal::MTLStoreAction::MultisampleResolve); + } else { + color_attachment.set_texture(Some(intermediate_texture)); + color_attachment.set_store_action(metal::MTLStoreAction::Store); + } + + let command_encoder = command_buffer.new_render_command_encoder(render_pass_descriptor); + command_encoder.set_render_pipeline_state(&self.paths_rasterization_pipeline_state); + + align_offset(instance_offset); + let mut vertices = Vec::new(); for path in paths { - let clipped_bounds = path.bounds.intersect(&path.content_mask.bounds); - - let tile = self - .sprite_atlas - .allocate(clipped_bounds.size.map(Into::into), AtlasTextureKind::Path)?; - vertices_by_texture_id - .entry(tile.texture_id) - .or_insert(Vec::new()) - .extend(path.vertices.iter().map(|vertex| PathVertex { - xy_position: vertex.xy_position - clipped_bounds.origin - + tile.bounds.origin.map(Into::into), - st_position: vertex.st_position, - content_mask: ContentMask { - bounds: tile.bounds.map(Into::into), - }, - })); - tiles.insert(path.id, tile); + vertices.extend(path.vertices.iter().map(|v| PathRasterizationVertex { + xy_position: v.xy_position, + st_position: v.st_position, + color: path.color, + bounds: path.bounds.intersect(&path.content_mask.bounds), + })); } - - for (texture_id, vertices) in vertices_by_texture_id { - align_offset(instance_offset); - let vertices_bytes_len = mem::size_of_val(vertices.as_slice()); - let next_offset = *instance_offset + vertices_bytes_len; - if next_offset > instance_buffer.size { - return None; - } - - let render_pass_descriptor = metal::RenderPassDescriptor::new(); - let color_attachment = render_pass_descriptor - .color_attachments() - .object_at(0) - .unwrap(); - - let texture = self.sprite_atlas.metal_texture(texture_id); - let msaa_texture = self.sprite_atlas.msaa_texture(texture_id); - - if let Some(msaa_texture) = msaa_texture { - color_attachment.set_texture(Some(&msaa_texture)); - color_attachment.set_resolve_texture(Some(&texture)); - color_attachment.set_load_action(metal::MTLLoadAction::Clear); - color_attachment.set_store_action(metal::MTLStoreAction::MultisampleResolve); - } else { - color_attachment.set_texture(Some(&texture)); - color_attachment.set_load_action(metal::MTLLoadAction::Clear); - color_attachment.set_store_action(metal::MTLStoreAction::Store); - } - color_attachment.set_clear_color(metal::MTLClearColor::new(0., 0., 0., 1.)); - - let command_encoder = command_buffer.new_render_command_encoder(render_pass_descriptor); - command_encoder.set_render_pipeline_state(&self.paths_rasterization_pipeline_state); - command_encoder.set_vertex_buffer( - PathRasterizationInputIndex::Vertices as u64, - Some(&instance_buffer.metal_buffer), - *instance_offset as u64, - ); - let texture_size = Size { - width: DevicePixels::from(texture.width()), - height: DevicePixels::from(texture.height()), - }; - command_encoder.set_vertex_bytes( - PathRasterizationInputIndex::AtlasTextureSize as u64, - mem::size_of_val(&texture_size) as u64, - &texture_size as *const Size as *const _, - ); - - let buffer_contents = unsafe { - (instance_buffer.metal_buffer.contents() as *mut u8).add(*instance_offset) - }; - unsafe { - ptr::copy_nonoverlapping( - vertices.as_ptr() as *const u8, - buffer_contents, - vertices_bytes_len, - ); - } - - command_encoder.draw_primitives( - metal::MTLPrimitiveType::Triangle, - 0, - vertices.len() as u64, - ); + let vertices_bytes_len = mem::size_of_val(vertices.as_slice()); + let next_offset = *instance_offset + vertices_bytes_len; + if next_offset > instance_buffer.size { command_encoder.end_encoding(); - *instance_offset = next_offset; + return false; } + command_encoder.set_vertex_buffer( + PathRasterizationInputIndex::Vertices as u64, + Some(&instance_buffer.metal_buffer), + *instance_offset as u64, + ); + command_encoder.set_vertex_bytes( + PathRasterizationInputIndex::ViewportSize as u64, + mem::size_of_val(&viewport_size) as u64, + &viewport_size as *const Size as *const _, + ); + command_encoder.set_fragment_buffer( + PathRasterizationInputIndex::Vertices as u64, + Some(&instance_buffer.metal_buffer), + *instance_offset as u64, + ); + let buffer_contents = + unsafe { (instance_buffer.metal_buffer.contents() as *mut u8).add(*instance_offset) }; + unsafe { + ptr::copy_nonoverlapping( + vertices.as_ptr() as *const u8, + buffer_contents, + vertices_bytes_len, + ); + } + command_encoder.draw_primitives( + metal::MTLPrimitiveType::Triangle, + 0, + vertices.len() as u64, + ); + *instance_offset = next_offset; - Some(tiles) + command_encoder.end_encoding(); + true } fn draw_shadows( @@ -715,18 +746,21 @@ impl MetalRenderer { true } - fn draw_paths( + fn draw_paths_from_intermediate( &self, paths: &[Path], - tiles_by_path_id: &HashMap, instance_buffer: &mut InstanceBuffer, instance_offset: &mut usize, viewport_size: Size, command_encoder: &metal::RenderCommandEncoderRef, ) -> bool { - if paths.is_empty() { + let Some(ref first_path) = paths.first() else { return true; - } + }; + + let Some(ref intermediate_texture) = self.path_intermediate_texture else { + return false; + }; command_encoder.set_render_pipeline_state(&self.path_sprites_pipeline_state); command_encoder.set_vertex_buffer( @@ -740,88 +774,65 @@ impl MetalRenderer { &viewport_size as *const Size as *const _, ); - let mut prev_texture_id = None; - let mut sprites = SmallVec::<[_; 1]>::new(); - let mut paths_and_tiles = paths - .iter() - .map(|path| (path, tiles_by_path_id.get(&path.id).unwrap())) - .peekable(); + command_encoder.set_fragment_texture( + SpriteInputIndex::AtlasTexture as u64, + Some(intermediate_texture), + ); - loop { - if let Some((path, tile)) = paths_and_tiles.peek() { - if prev_texture_id.map_or(true, |texture_id| texture_id == tile.texture_id) { - prev_texture_id = Some(tile.texture_id); - let origin = path.bounds.intersect(&path.content_mask.bounds).origin; - sprites.push(PathSprite { - bounds: Bounds { - origin: origin.map(|p| p.floor()), - size: tile.bounds.size.map(Into::into), - }, - color: path.color, - tile: (*tile).clone(), - }); - paths_and_tiles.next(); - continue; - } - } - - if sprites.is_empty() { - break; - } else { - align_offset(instance_offset); - let texture_id = prev_texture_id.take().unwrap(); - let texture: metal::Texture = self.sprite_atlas.metal_texture(texture_id); - let texture_size = size( - DevicePixels(texture.width() as i32), - DevicePixels(texture.height() as i32), - ); - - command_encoder.set_vertex_buffer( - SpriteInputIndex::Sprites as u64, - Some(&instance_buffer.metal_buffer), - *instance_offset as u64, - ); - command_encoder.set_vertex_bytes( - SpriteInputIndex::AtlasTextureSize as u64, - mem::size_of_val(&texture_size) as u64, - &texture_size as *const Size as *const _, - ); - command_encoder.set_fragment_buffer( - SpriteInputIndex::Sprites as u64, - Some(&instance_buffer.metal_buffer), - *instance_offset as u64, - ); - command_encoder - .set_fragment_texture(SpriteInputIndex::AtlasTexture as u64, Some(&texture)); - - let sprite_bytes_len = mem::size_of_val(sprites.as_slice()); - let next_offset = *instance_offset + sprite_bytes_len; - if next_offset > instance_buffer.size { - return false; - } - - let buffer_contents = unsafe { - (instance_buffer.metal_buffer.contents() as *mut u8).add(*instance_offset) - }; - - unsafe { - ptr::copy_nonoverlapping( - sprites.as_ptr() as *const u8, - buffer_contents, - sprite_bytes_len, - ); - } - - command_encoder.draw_primitives_instanced( - metal::MTLPrimitiveType::Triangle, - 0, - 6, - sprites.len() as u64, - ); - *instance_offset = next_offset; - sprites.clear(); + // When copying paths from the intermediate texture to the drawable, + // each pixel must only be copied once, in case of transparent paths. + // + // If all paths have the same draw order, then their bounds are all + // disjoint, so we can copy each path's bounds individually. If this + // batch combines different draw orders, we perform a single copy + // for a minimal spanning rect. + let sprites; + if paths.last().unwrap().order == first_path.order { + sprites = paths + .iter() + .map(|path| PathSprite { + bounds: path.bounds, + }) + .collect(); + } else { + let mut bounds = first_path.bounds; + for path in paths.iter().skip(1) { + bounds = bounds.union(&path.bounds); } + sprites = vec![PathSprite { bounds }]; } + + align_offset(instance_offset); + let sprite_bytes_len = mem::size_of_val(sprites.as_slice()); + let next_offset = *instance_offset + sprite_bytes_len; + if next_offset > instance_buffer.size { + return false; + } + + command_encoder.set_vertex_buffer( + SpriteInputIndex::Sprites as u64, + Some(&instance_buffer.metal_buffer), + *instance_offset as u64, + ); + + let buffer_contents = + unsafe { (instance_buffer.metal_buffer.contents() as *mut u8).add(*instance_offset) }; + unsafe { + ptr::copy_nonoverlapping( + sprites.as_ptr() as *const u8, + buffer_contents, + sprite_bytes_len, + ); + } + + command_encoder.draw_primitives_instanced( + metal::MTLPrimitiveType::Triangle, + 0, + 6, + sprites.len() as u64, + ); + *instance_offset = next_offset; + true } @@ -1136,6 +1147,33 @@ impl MetalRenderer { } } +fn new_command_encoder<'a>( + command_buffer: &'a metal::CommandBufferRef, + drawable: &'a metal::MetalDrawableRef, + viewport_size: Size, + configure_color_attachment: impl Fn(&RenderPassColorAttachmentDescriptorRef), +) -> &'a metal::RenderCommandEncoderRef { + let render_pass_descriptor = metal::RenderPassDescriptor::new(); + let color_attachment = render_pass_descriptor + .color_attachments() + .object_at(0) + .unwrap(); + color_attachment.set_texture(Some(drawable.texture())); + color_attachment.set_store_action(metal::MTLStoreAction::Store); + configure_color_attachment(color_attachment); + + let command_encoder = command_buffer.new_render_command_encoder(render_pass_descriptor); + command_encoder.set_viewport(metal::MTLViewport { + originX: 0.0, + originY: 0.0, + width: i32::from(viewport_size.width) as f64, + height: i32::from(viewport_size.height) as f64, + znear: 0.0, + zfar: 1.0, + }); + command_encoder +} + fn build_pipeline_state( device: &metal::DeviceRef, library: &metal::LibraryRef, @@ -1170,6 +1208,40 @@ fn build_pipeline_state( .expect("could not create render pipeline state") } +fn build_path_sprite_pipeline_state( + device: &metal::DeviceRef, + library: &metal::LibraryRef, + label: &str, + vertex_fn_name: &str, + fragment_fn_name: &str, + pixel_format: metal::MTLPixelFormat, +) -> metal::RenderPipelineState { + let vertex_fn = library + .get_function(vertex_fn_name, None) + .expect("error locating vertex function"); + let fragment_fn = library + .get_function(fragment_fn_name, None) + .expect("error locating fragment function"); + + let descriptor = metal::RenderPipelineDescriptor::new(); + descriptor.set_label(label); + descriptor.set_vertex_function(Some(vertex_fn.as_ref())); + descriptor.set_fragment_function(Some(fragment_fn.as_ref())); + let color_attachment = descriptor.color_attachments().object_at(0).unwrap(); + color_attachment.set_pixel_format(pixel_format); + color_attachment.set_blending_enabled(true); + color_attachment.set_rgb_blend_operation(metal::MTLBlendOperation::Add); + color_attachment.set_alpha_blend_operation(metal::MTLBlendOperation::Add); + color_attachment.set_source_rgb_blend_factor(metal::MTLBlendFactor::One); + color_attachment.set_source_alpha_blend_factor(metal::MTLBlendFactor::One); + color_attachment.set_destination_rgb_blend_factor(metal::MTLBlendFactor::OneMinusSourceAlpha); + color_attachment.set_destination_alpha_blend_factor(metal::MTLBlendFactor::One); + + device + .new_render_pipeline_state(&descriptor) + .expect("could not create render pipeline state") +} + fn build_path_rasterization_pipeline_state( device: &metal::DeviceRef, library: &metal::LibraryRef, @@ -1192,7 +1264,7 @@ fn build_path_rasterization_pipeline_state( descriptor.set_fragment_function(Some(fragment_fn.as_ref())); if path_sample_count > 1 { descriptor.set_raster_sample_count(path_sample_count as _); - descriptor.set_alpha_to_coverage_enabled(true); + descriptor.set_alpha_to_coverage_enabled(false); } let color_attachment = descriptor.color_attachments().object_at(0).unwrap(); color_attachment.set_pixel_format(pixel_format); @@ -1201,8 +1273,8 @@ fn build_path_rasterization_pipeline_state( color_attachment.set_alpha_blend_operation(metal::MTLBlendOperation::Add); color_attachment.set_source_rgb_blend_factor(metal::MTLBlendFactor::One); color_attachment.set_source_alpha_blend_factor(metal::MTLBlendFactor::One); - color_attachment.set_destination_rgb_blend_factor(metal::MTLBlendFactor::One); - color_attachment.set_destination_alpha_blend_factor(metal::MTLBlendFactor::One); + color_attachment.set_destination_rgb_blend_factor(metal::MTLBlendFactor::OneMinusSourceAlpha); + color_attachment.set_destination_alpha_blend_factor(metal::MTLBlendFactor::OneMinusSourceAlpha); device .new_render_pipeline_state(&descriptor) @@ -1257,15 +1329,13 @@ enum SurfaceInputIndex { #[repr(C)] enum PathRasterizationInputIndex { Vertices = 0, - AtlasTextureSize = 1, + ViewportSize = 1, } #[derive(Clone, Debug, Eq, PartialEq)] #[repr(C)] pub struct PathSprite { pub bounds: Bounds, - pub color: Background, - pub tile: AtlasTile, } #[derive(Clone, Debug, Eq, PartialEq)] diff --git a/crates/gpui/src/platform/mac/shaders.metal b/crates/gpui/src/platform/mac/shaders.metal index 64ebb1e22b..f9d5bdbf4c 100644 --- a/crates/gpui/src/platform/mac/shaders.metal +++ b/crates/gpui/src/platform/mac/shaders.metal @@ -701,107 +701,117 @@ fragment float4 polychrome_sprite_fragment( struct PathRasterizationVertexOutput { float4 position [[position]]; float2 st_position; + uint vertex_id [[flat]]; float clip_rect_distance [[clip_distance]][4]; }; struct PathRasterizationFragmentInput { float4 position [[position]]; float2 st_position; + uint vertex_id [[flat]]; }; vertex PathRasterizationVertexOutput path_rasterization_vertex( - uint vertex_id [[vertex_id]], - constant PathVertex_ScaledPixels *vertices - [[buffer(PathRasterizationInputIndex_Vertices)]], - constant Size_DevicePixels *atlas_size - [[buffer(PathRasterizationInputIndex_AtlasTextureSize)]]) { - PathVertex_ScaledPixels v = vertices[vertex_id]; + uint vertex_id [[vertex_id]], + constant PathRasterizationVertex *vertices [[buffer(PathRasterizationInputIndex_Vertices)]], + constant Size_DevicePixels *atlas_size [[buffer(PathRasterizationInputIndex_ViewportSize)]] +) { + PathRasterizationVertex v = vertices[vertex_id]; float2 vertex_position = float2(v.xy_position.x, v.xy_position.y); - float2 viewport_size = float2(atlas_size->width, atlas_size->height); + float4 position = float4( + vertex_position * float2(2. / atlas_size->width, -2. / atlas_size->height) + float2(-1., 1.), + 0., + 1. + ); return PathRasterizationVertexOutput{ - float4(vertex_position / viewport_size * float2(2., -2.) + - float2(-1., 1.), - 0., 1.), + position, float2(v.st_position.x, v.st_position.y), - {v.xy_position.x - v.content_mask.bounds.origin.x, - v.content_mask.bounds.origin.x + v.content_mask.bounds.size.width - - v.xy_position.x, - v.xy_position.y - v.content_mask.bounds.origin.y, - v.content_mask.bounds.origin.y + v.content_mask.bounds.size.height - - v.xy_position.y}}; + vertex_id, + { + v.xy_position.x - v.bounds.origin.x, + v.bounds.origin.x + v.bounds.size.width - v.xy_position.x, + v.xy_position.y - v.bounds.origin.y, + v.bounds.origin.y + v.bounds.size.height - v.xy_position.y + } + }; } -fragment float4 path_rasterization_fragment(PathRasterizationFragmentInput input - [[stage_in]]) { +fragment float4 path_rasterization_fragment( + PathRasterizationFragmentInput input [[stage_in]], + constant PathRasterizationVertex *vertices [[buffer(PathRasterizationInputIndex_Vertices)]] +) { float2 dx = dfdx(input.st_position); float2 dy = dfdy(input.st_position); - float2 gradient = float2((2. * input.st_position.x) * dx.x - dx.y, - (2. * input.st_position.x) * dy.x - dy.y); - float f = (input.st_position.x * input.st_position.x) - input.st_position.y; - float distance = f / length(gradient); - float alpha = saturate(0.5 - distance); - return float4(alpha, 0., 0., 1.); + + PathRasterizationVertex v = vertices[input.vertex_id]; + Background background = v.color; + Bounds_ScaledPixels path_bounds = v.bounds; + float alpha; + if (length(float2(dx.x, dy.x)) < 0.001) { + alpha = 1.0; + } else { + float2 gradient = float2( + (2. * input.st_position.x) * dx.x - dx.y, + (2. * input.st_position.x) * dy.x - dy.y + ); + float f = (input.st_position.x * input.st_position.x) - input.st_position.y; + float distance = f / length(gradient); + alpha = saturate(0.5 - distance); + } + + GradientColor gradient_color = prepare_fill_color( + background.tag, + background.color_space, + background.solid, + background.colors[0].color, + background.colors[1].color + ); + + float4 color = fill_color( + background, + input.position.xy, + path_bounds, + gradient_color.solid, + gradient_color.color0, + gradient_color.color1 + ); + return float4(color.rgb * color.a * alpha, alpha * color.a); } struct PathSpriteVertexOutput { float4 position [[position]]; - float2 tile_position; - uint sprite_id [[flat]]; - float4 solid_color [[flat]]; - float4 color0 [[flat]]; - float4 color1 [[flat]]; + float2 texture_coords; }; vertex PathSpriteVertexOutput path_sprite_vertex( - uint unit_vertex_id [[vertex_id]], uint sprite_id [[instance_id]], - constant float2 *unit_vertices [[buffer(SpriteInputIndex_Vertices)]], - constant PathSprite *sprites [[buffer(SpriteInputIndex_Sprites)]], - constant Size_DevicePixels *viewport_size - [[buffer(SpriteInputIndex_ViewportSize)]], - constant Size_DevicePixels *atlas_size - [[buffer(SpriteInputIndex_AtlasTextureSize)]]) { - + uint unit_vertex_id [[vertex_id]], + uint sprite_id [[instance_id]], + constant float2 *unit_vertices [[buffer(SpriteInputIndex_Vertices)]], + constant PathSprite *sprites [[buffer(SpriteInputIndex_Sprites)]], + constant Size_DevicePixels *viewport_size [[buffer(SpriteInputIndex_ViewportSize)]] +) { float2 unit_vertex = unit_vertices[unit_vertex_id]; PathSprite sprite = sprites[sprite_id]; // Don't apply content mask because it was already accounted for when // rasterizing the path. float4 device_position = to_device_position(unit_vertex, sprite.bounds, viewport_size); - float2 tile_position = to_tile_position(unit_vertex, sprite.tile, atlas_size); - GradientColor gradient = prepare_fill_color( - sprite.color.tag, - sprite.color.color_space, - sprite.color.solid, - sprite.color.colors[0].color, - sprite.color.colors[1].color - ); + float2 screen_position = float2(sprite.bounds.origin.x, sprite.bounds.origin.y) + unit_vertex * float2(sprite.bounds.size.width, sprite.bounds.size.height); + float2 texture_coords = screen_position / float2(viewport_size->width, viewport_size->height); return PathSpriteVertexOutput{ device_position, - tile_position, - sprite_id, - gradient.solid, - gradient.color0, - gradient.color1 + texture_coords }; } fragment float4 path_sprite_fragment( - PathSpriteVertexOutput input [[stage_in]], - constant PathSprite *sprites [[buffer(SpriteInputIndex_Sprites)]], - texture2d atlas_texture [[texture(SpriteInputIndex_AtlasTexture)]]) { - constexpr sampler atlas_texture_sampler(mag_filter::linear, - min_filter::linear); - float4 sample = - atlas_texture.sample(atlas_texture_sampler, input.tile_position); - float mask = 1. - abs(1. - fmod(sample.r, 2.)); - PathSprite sprite = sprites[input.sprite_id]; - Background background = sprite.color; - float4 color = fill_color(background, input.position.xy, sprite.bounds, - input.solid_color, input.color0, input.color1); - color.a *= mask; - return color; + PathSpriteVertexOutput input [[stage_in]], + texture2d intermediate_texture [[texture(SpriteInputIndex_AtlasTexture)]] +) { + constexpr sampler intermediate_texture_sampler(mag_filter::linear, min_filter::linear); + return intermediate_texture.sample(intermediate_texture_sampler, input.texture_coords); } struct SurfaceVertexOutput { diff --git a/crates/gpui/src/platform/test/window.rs b/crates/gpui/src/platform/test/window.rs index 1b88415d3b..e15bd7aeec 100644 --- a/crates/gpui/src/platform/test/window.rs +++ b/crates/gpui/src/platform/test/window.rs @@ -341,7 +341,7 @@ impl PlatformAtlas for TestAtlas { crate::AtlasTile { texture_id: AtlasTextureId { index: texture_id, - kind: crate::AtlasTextureKind::Path, + kind: crate::AtlasTextureKind::Monochrome, }, tile_id: TileId(tile_id), padding: 0, diff --git a/crates/gpui/src/scene.rs b/crates/gpui/src/scene.rs index 4eaef64afa..ec8d720cdf 100644 --- a/crates/gpui/src/scene.rs +++ b/crates/gpui/src/scene.rs @@ -43,17 +43,6 @@ impl Scene { self.surfaces.clear(); } - #[cfg_attr( - all( - any(target_os = "linux", target_os = "freebsd"), - not(any(feature = "x11", feature = "wayland")) - ), - allow(dead_code) - )] - pub fn paths(&self) -> &[Path] { - &self.paths - } - pub fn len(&self) -> usize { self.paint_operations.len() } @@ -681,7 +670,7 @@ pub(crate) struct PathId(pub(crate) usize); #[derive(Clone, Debug)] pub struct Path { pub(crate) id: PathId, - order: DrawOrder, + pub(crate) order: DrawOrder, pub(crate) bounds: Bounds

      , pub(crate) content_mask: ContentMask

      , pub(crate) vertices: Vec>, From 07252c33095d06f7599da67c955a7bc5230c5e9f Mon Sep 17 00:00:00 2001 From: Alvaro Parker <64918109+AlvaroParker@users.noreply.github.com> Date: Fri, 25 Jul 2025 19:15:54 -0400 Subject: [PATCH 0225/1052] git: Enable git stash in git panel (#32821) Related discussion #31484 Release Notes: - Added a menu entry on the git panel to git stash and git pop stash. Preview: ![Screenshot-2025-06-17_08:26:36](https://github.com/user-attachments/assets/d3699ba4-511f-4c7b-a7cc-00a295d01f64) --------- Co-authored-by: Cole Miller --- crates/collab/src/rpc.rs | 2 + crates/fs/src/fake_git_repo.rs | 12 ++++ crates/git/src/git.rs | 4 ++ crates/git/src/repository.rs | 57 +++++++++++++++ crates/git_ui/src/git_panel.rs | 60 +++++++++++++++- crates/git_ui/src/git_ui.rs | 16 +++++ crates/project/src/git_store.rs | 120 ++++++++++++++++++++++++++++++++ crates/proto/proto/git.proto | 11 +++ crates/proto/proto/zed.proto | 4 +- crates/proto/src/proto.rs | 6 ++ 10 files changed, 290 insertions(+), 2 deletions(-) diff --git a/crates/collab/src/rpc.rs b/crates/collab/src/rpc.rs index 5c5de2f36e..515647f97d 100644 --- a/crates/collab/src/rpc.rs +++ b/crates/collab/src/rpc.rs @@ -433,6 +433,8 @@ impl Server { .add_request_handler(forward_mutating_project_request::) .add_request_handler(forward_mutating_project_request::) .add_request_handler(forward_mutating_project_request::) + .add_request_handler(forward_mutating_project_request::) + .add_request_handler(forward_mutating_project_request::) .add_request_handler(forward_mutating_project_request::) .add_request_handler(forward_mutating_project_request::) .add_request_handler(forward_read_only_project_request::) diff --git a/crates/fs/src/fake_git_repo.rs b/crates/fs/src/fake_git_repo.rs index 8a4f7c03bb..378a8fb7df 100644 --- a/crates/fs/src/fake_git_repo.rs +++ b/crates/fs/src/fake_git_repo.rs @@ -398,6 +398,18 @@ impl GitRepository for FakeGitRepository { }) } + fn stash_paths( + &self, + _paths: Vec, + _env: Arc>, + ) -> BoxFuture> { + unimplemented!() + } + + fn stash_pop(&self, _env: Arc>) -> BoxFuture> { + unimplemented!() + } + fn commit( &self, _message: gpui::SharedString, diff --git a/crates/git/src/git.rs b/crates/git/src/git.rs index 3714086dd0..553361e673 100644 --- a/crates/git/src/git.rs +++ b/crates/git/src/git.rs @@ -55,6 +55,10 @@ actions!( StageAll, /// Unstages all changes in the repository. UnstageAll, + /// Stashes all changes in the repository, including untracked files. + StashAll, + /// Pops the most recent stash. + StashPop, /// Restores all tracked files to their last committed state. RestoreTrackedFiles, /// Moves all untracked files to trash. diff --git a/crates/git/src/repository.rs b/crates/git/src/repository.rs index 9cc3442392..a63315e69e 100644 --- a/crates/git/src/repository.rs +++ b/crates/git/src/repository.rs @@ -395,6 +395,14 @@ pub trait GitRepository: Send + Sync { env: Arc>, ) -> BoxFuture<'_, Result<()>>; + fn stash_paths( + &self, + paths: Vec, + env: Arc>, + ) -> BoxFuture>; + + fn stash_pop(&self, env: Arc>) -> BoxFuture>; + fn push( &self, branch_name: String, @@ -1189,6 +1197,55 @@ impl GitRepository for RealGitRepository { .boxed() } + fn stash_paths( + &self, + paths: Vec, + env: Arc>, + ) -> BoxFuture> { + let working_directory = self.working_directory(); + self.executor + .spawn(async move { + let mut cmd = new_smol_command("git"); + cmd.current_dir(&working_directory?) + .envs(env.iter()) + .args(["stash", "push", "--quiet"]) + .arg("--include-untracked"); + + cmd.args(paths.iter().map(|p| p.as_ref())); + + let output = cmd.output().await?; + + anyhow::ensure!( + output.status.success(), + "Failed to stash:\n{}", + String::from_utf8_lossy(&output.stderr) + ); + Ok(()) + }) + .boxed() + } + + fn stash_pop(&self, env: Arc>) -> BoxFuture> { + let working_directory = self.working_directory(); + self.executor + .spawn(async move { + let mut cmd = new_smol_command("git"); + cmd.current_dir(&working_directory?) + .envs(env.iter()) + .args(["stash", "pop"]); + + let output = cmd.output().await?; + + anyhow::ensure!( + output.status.success(), + "Failed to stash pop:\n{}", + String::from_utf8_lossy(&output.stderr) + ); + Ok(()) + }) + .boxed() + } + fn commit( &self, message: SharedString, diff --git a/crates/git_ui/src/git_panel.rs b/crates/git_ui/src/git_panel.rs index a8d1da7daf..725a1b6db5 100644 --- a/crates/git_ui/src/git_panel.rs +++ b/crates/git_ui/src/git_panel.rs @@ -27,7 +27,10 @@ use git::repository::{ }; use git::status::StageStatus; use git::{Amend, Signoff, ToggleStaged, repository::RepoPath, status::FileStatus}; -use git::{ExpandCommitEditor, RestoreTrackedFiles, StageAll, TrashUntrackedFiles, UnstageAll}; +use git::{ + ExpandCommitEditor, RestoreTrackedFiles, StageAll, StashAll, StashPop, TrashUntrackedFiles, + UnstageAll, +}; use gpui::{ Action, Animation, AnimationExt as _, AsyncApp, AsyncWindowContext, Axis, ClickEvent, Corner, DismissEvent, Entity, EventEmitter, FocusHandle, Focusable, KeyContext, @@ -140,6 +143,13 @@ fn git_panel_context_menu( UnstageAll.boxed_clone(), ) .separator() + .action_disabled_when( + !(state.has_new_changes || state.has_tracked_changes), + "Stash All", + StashAll.boxed_clone(), + ) + .action("Stash Pop", StashPop.boxed_clone()) + .separator() .action("Open Diff", project_diff::Diff.boxed_clone()) .separator() .action_disabled_when( @@ -1415,6 +1425,52 @@ impl GitPanel { self.tracked_staged_count + self.new_staged_count + self.conflicted_staged_count } + pub fn stash_pop(&mut self, _: &StashPop, _window: &mut Window, cx: &mut Context) { + let Some(active_repository) = self.active_repository.clone() else { + return; + }; + + cx.spawn({ + async move |this, cx| { + let stash_task = active_repository + .update(cx, |repo, cx| repo.stash_pop(cx))? + .await; + this.update(cx, |this, cx| { + stash_task + .map_err(|e| { + this.show_error_toast("stash pop", e, cx); + }) + .ok(); + cx.notify(); + }) + } + }) + .detach(); + } + + pub fn stash_all(&mut self, _: &StashAll, _window: &mut Window, cx: &mut Context) { + let Some(active_repository) = self.active_repository.clone() else { + return; + }; + + cx.spawn({ + async move |this, cx| { + let stash_task = active_repository + .update(cx, |repo, cx| repo.stash_all(cx))? + .await; + this.update(cx, |this, cx| { + stash_task + .map_err(|e| { + this.show_error_toast("stash", e, cx); + }) + .ok(); + cx.notify(); + }) + } + }) + .detach(); + } + pub fn commit_message_buffer(&self, cx: &App) -> Entity { self.commit_editor .read(cx) @@ -4365,6 +4421,8 @@ impl Render for GitPanel { .on_action(cx.listener(Self::revert_selected)) .on_action(cx.listener(Self::clean_all)) .on_action(cx.listener(Self::generate_commit_message_action)) + .on_action(cx.listener(Self::stash_all)) + .on_action(cx.listener(Self::stash_pop)) }) .on_action(cx.listener(Self::select_first)) .on_action(cx.listener(Self::select_next)) diff --git a/crates/git_ui/src/git_ui.rs b/crates/git_ui/src/git_ui.rs index 2d7fba13c5..0163175eda 100644 --- a/crates/git_ui/src/git_ui.rs +++ b/crates/git_ui/src/git_ui.rs @@ -114,6 +114,22 @@ pub fn init(cx: &mut App) { }); }); } + workspace.register_action(|workspace, action: &git::StashAll, window, cx| { + let Some(panel) = workspace.panel::(cx) else { + return; + }; + panel.update(cx, |panel, cx| { + panel.stash_all(action, window, cx); + }); + }); + workspace.register_action(|workspace, action: &git::StashPop, window, cx| { + let Some(panel) = workspace.panel::(cx) else { + return; + }; + panel.update(cx, |panel, cx| { + panel.stash_pop(action, window, cx); + }); + }); workspace.register_action(|workspace, action: &git::StageAll, window, cx| { let Some(panel) = workspace.panel::(cx) else { return; diff --git a/crates/project/src/git_store.rs b/crates/project/src/git_store.rs index d131b6dd41..28dd0e91e3 100644 --- a/crates/project/src/git_store.rs +++ b/crates/project/src/git_store.rs @@ -420,6 +420,8 @@ impl GitStore { client.add_entity_request_handler(Self::handle_fetch); client.add_entity_request_handler(Self::handle_stage); client.add_entity_request_handler(Self::handle_unstage); + client.add_entity_request_handler(Self::handle_stash); + client.add_entity_request_handler(Self::handle_stash_pop); client.add_entity_request_handler(Self::handle_commit); client.add_entity_request_handler(Self::handle_reset); client.add_entity_request_handler(Self::handle_show); @@ -1696,6 +1698,48 @@ impl GitStore { Ok(proto::Ack {}) } + async fn handle_stash( + this: Entity, + envelope: TypedEnvelope, + mut cx: AsyncApp, + ) -> Result { + let repository_id = RepositoryId::from_proto(envelope.payload.repository_id); + let repository_handle = Self::repository_for_request(&this, repository_id, &mut cx)?; + + let entries = envelope + .payload + .paths + .into_iter() + .map(PathBuf::from) + .map(RepoPath::new) + .collect(); + + repository_handle + .update(&mut cx, |repository_handle, cx| { + repository_handle.stash_entries(entries, cx) + })? + .await?; + + Ok(proto::Ack {}) + } + + async fn handle_stash_pop( + this: Entity, + envelope: TypedEnvelope, + mut cx: AsyncApp, + ) -> Result { + let repository_id = RepositoryId::from_proto(envelope.payload.repository_id); + let repository_handle = Self::repository_for_request(&this, repository_id, &mut cx)?; + + repository_handle + .update(&mut cx, |repository_handle, cx| { + repository_handle.stash_pop(cx) + })? + .await?; + + Ok(proto::Ack {}) + } + async fn handle_set_index_text( this: Entity, envelope: TypedEnvelope, @@ -3540,6 +3584,82 @@ impl Repository { self.unstage_entries(to_unstage, cx) } + pub fn stash_all(&mut self, cx: &mut Context) -> Task> { + let to_stash = self + .cached_status() + .map(|entry| entry.repo_path.clone()) + .collect(); + + self.stash_entries(to_stash, cx) + } + + pub fn stash_entries( + &mut self, + entries: Vec, + cx: &mut Context, + ) -> Task> { + let id = self.id; + + cx.spawn(async move |this, cx| { + this.update(cx, |this, _| { + this.send_job(None, move |git_repo, _cx| async move { + match git_repo { + RepositoryState::Local { + backend, + environment, + .. + } => backend.stash_paths(entries, environment).await, + RepositoryState::Remote { project_id, client } => { + client + .request(proto::Stash { + project_id: project_id.0, + repository_id: id.to_proto(), + paths: entries + .into_iter() + .map(|repo_path| repo_path.as_ref().to_proto()) + .collect(), + }) + .await + .context("sending stash request")?; + Ok(()) + } + } + }) + })? + .await??; + Ok(()) + }) + } + + pub fn stash_pop(&mut self, cx: &mut Context) -> Task> { + let id = self.id; + cx.spawn(async move |this, cx| { + this.update(cx, |this, _| { + this.send_job(None, move |git_repo, _cx| async move { + match git_repo { + RepositoryState::Local { + backend, + environment, + .. + } => backend.stash_pop(environment).await, + RepositoryState::Remote { project_id, client } => { + client + .request(proto::StashPop { + project_id: project_id.0, + repository_id: id.to_proto(), + }) + .await + .context("sending stash pop request")?; + Ok(()) + } + } + }) + })? + .await??; + Ok(()) + }) + } + pub fn commit( &mut self, message: SharedString, diff --git a/crates/proto/proto/git.proto b/crates/proto/proto/git.proto index 1d544b15ff..ea08d36371 100644 --- a/crates/proto/proto/git.proto +++ b/crates/proto/proto/git.proto @@ -286,6 +286,17 @@ message Unstage { repeated string paths = 4; } +message Stash { + uint64 project_id = 1; + uint64 repository_id = 2; + repeated string paths = 3; +} + +message StashPop { + uint64 project_id = 1; + uint64 repository_id = 2; +} + message Commit { uint64 project_id = 1; reserved 2; diff --git a/crates/proto/proto/zed.proto b/crates/proto/proto/zed.proto index 31f929ec90..29ab2b1e90 100644 --- a/crates/proto/proto/zed.proto +++ b/crates/proto/proto/zed.proto @@ -396,8 +396,10 @@ message Envelope { GetDocumentColor get_document_color = 353; GetDocumentColorResponse get_document_color_response = 354; GetColorPresentation get_color_presentation = 355; - GetColorPresentationResponse get_color_presentation_response = 356; // current max + GetColorPresentationResponse get_color_presentation_response = 356; + Stash stash = 357; + StashPop stash_pop = 358; // current max } reserved 87 to 88; diff --git a/crates/proto/src/proto.rs b/crates/proto/src/proto.rs index 918ac9e935..9f586a7839 100644 --- a/crates/proto/src/proto.rs +++ b/crates/proto/src/proto.rs @@ -261,6 +261,8 @@ messages!( (Unfollow, Foreground), (UnshareProject, Foreground), (Unstage, Background), + (Stash, Background), + (StashPop, Background), (UpdateBuffer, Foreground), (UpdateBufferFile, Foreground), (UpdateChannelBuffer, Foreground), @@ -419,6 +421,8 @@ request_messages!( (TaskContextForLocation, TaskContext), (Test, Test), (Unstage, Ack), + (Stash, Ack), + (StashPop, Ack), (UpdateBuffer, Ack), (UpdateParticipantLocation, Ack), (UpdateProject, Ack), @@ -549,6 +553,8 @@ entity_messages!( TaskContextForLocation, UnshareProject, Unstage, + Stash, + StashPop, UpdateBuffer, UpdateBufferFile, UpdateDiagnosticSummary, From 43d0aae617910f0495342911277ce3d166c0562a Mon Sep 17 00:00:00 2001 From: Smit Barmase Date: Sat, 26 Jul 2025 04:58:10 +0530 Subject: [PATCH 0226/1052] languages: Fix Bash indentation issues with multi-cursors, newlines, and keyword outdenting (#35116) Closes #34390 This PR fixes several Bash indentation issues: - Adding indentation or comment using multi cursors no longer breaks relative indentation - Adding newline now places the cursor at the correct indent - Typing a valid keyword triggers context-aware auto outdent It also adds tests for all of them. Release Notes: - Fixed various issues with handling indentation in Bash. --- Cargo.lock | 1 + crates/editor/Cargo.toml | 1 + crates/editor/src/editor_tests.rs | 429 ++++++++++++++++++++++++++ crates/languages/src/bash/config.toml | 31 +- crates/languages/src/bash/indents.scm | 22 +- 5 files changed, 459 insertions(+), 25 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9e10e1b730..2e5517ecbf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4979,6 +4979,7 @@ dependencies = [ "text", "theme", "time", + "tree-sitter-bash", "tree-sitter-html", "tree-sitter-python", "tree-sitter-rust", diff --git a/crates/editor/Cargo.toml b/crates/editor/Cargo.toml index 4d6939567e..0692c7fbe6 100644 --- a/crates/editor/Cargo.toml +++ b/crates/editor/Cargo.toml @@ -110,6 +110,7 @@ tree-sitter-html.workspace = true tree-sitter-rust.workspace = true tree-sitter-typescript.workspace = true tree-sitter-yaml.workspace = true +tree-sitter-bash.workspace = true unindent.workspace = true util = { workspace = true, features = ["test-support"] } workspace = { workspace = true, features = ["test-support"] } diff --git a/crates/editor/src/editor_tests.rs b/crates/editor/src/editor_tests.rs index 03b047e92e..a0333bb494 100644 --- a/crates/editor/src/editor_tests.rs +++ b/crates/editor/src/editor_tests.rs @@ -22585,6 +22585,435 @@ async fn test_indent_on_newline_for_python(cx: &mut TestAppContext) { "}); } +#[gpui::test] +async fn test_tab_in_leading_whitespace_auto_indents_for_bash(cx: &mut TestAppContext) { + init_test(cx, |_| {}); + + let mut cx = EditorTestContext::new(cx).await; + let language = languages::language("bash", tree_sitter_bash::LANGUAGE.into()); + cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx)); + + // test cursor move to start of each line on tab + // for `if`, `elif`, `else`, `while`, `for`, `case` and `function` + cx.set_state(indoc! {" + function main() { + ˇ for item in $items; do + ˇ while [ -n \"$item\" ]; do + ˇ if [ \"$value\" -gt 10 ]; then + ˇ continue + ˇ elif [ \"$value\" -lt 0 ]; then + ˇ break + ˇ else + ˇ echo \"$item\" + ˇ fi + ˇ done + ˇ done + ˇ} + "}); + cx.update_editor(|e, window, cx| e.tab(&Tab, window, cx)); + cx.assert_editor_state(indoc! {" + function main() { + ˇfor item in $items; do + ˇwhile [ -n \"$item\" ]; do + ˇif [ \"$value\" -gt 10 ]; then + ˇcontinue + ˇelif [ \"$value\" -lt 0 ]; then + ˇbreak + ˇelse + ˇecho \"$item\" + ˇfi + ˇdone + ˇdone + ˇ} + "}); + // test relative indent is preserved when tab + cx.update_editor(|e, window, cx| e.tab(&Tab, window, cx)); + cx.assert_editor_state(indoc! {" + function main() { + ˇfor item in $items; do + ˇwhile [ -n \"$item\" ]; do + ˇif [ \"$value\" -gt 10 ]; then + ˇcontinue + ˇelif [ \"$value\" -lt 0 ]; then + ˇbreak + ˇelse + ˇecho \"$item\" + ˇfi + ˇdone + ˇdone + ˇ} + "}); + + // test cursor move to start of each line on tab + // for `case` statement with patterns + cx.set_state(indoc! {" + function handle() { + ˇ case \"$1\" in + ˇ start) + ˇ echo \"a\" + ˇ ;; + ˇ stop) + ˇ echo \"b\" + ˇ ;; + ˇ *) + ˇ echo \"c\" + ˇ ;; + ˇ esac + ˇ} + "}); + cx.update_editor(|e, window, cx| e.tab(&Tab, window, cx)); + cx.assert_editor_state(indoc! {" + function handle() { + ˇcase \"$1\" in + ˇstart) + ˇecho \"a\" + ˇ;; + ˇstop) + ˇecho \"b\" + ˇ;; + ˇ*) + ˇecho \"c\" + ˇ;; + ˇesac + ˇ} + "}); +} + +#[gpui::test] +async fn test_indent_after_input_for_bash(cx: &mut TestAppContext) { + init_test(cx, |_| {}); + + let mut cx = EditorTestContext::new(cx).await; + let language = languages::language("bash", tree_sitter_bash::LANGUAGE.into()); + cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx)); + + // test indents on comment insert + cx.set_state(indoc! {" + function main() { + ˇ for item in $items; do + ˇ while [ -n \"$item\" ]; do + ˇ if [ \"$value\" -gt 10 ]; then + ˇ continue + ˇ elif [ \"$value\" -lt 0 ]; then + ˇ break + ˇ else + ˇ echo \"$item\" + ˇ fi + ˇ done + ˇ done + ˇ} + "}); + cx.update_editor(|e, window, cx| e.handle_input("#", window, cx)); + cx.assert_editor_state(indoc! {" + function main() { + #ˇ for item in $items; do + #ˇ while [ -n \"$item\" ]; do + #ˇ if [ \"$value\" -gt 10 ]; then + #ˇ continue + #ˇ elif [ \"$value\" -lt 0 ]; then + #ˇ break + #ˇ else + #ˇ echo \"$item\" + #ˇ fi + #ˇ done + #ˇ done + #ˇ} + "}); +} + +#[gpui::test] +async fn test_outdent_after_input_for_bash(cx: &mut TestAppContext) { + init_test(cx, |_| {}); + + let mut cx = EditorTestContext::new(cx).await; + let language = languages::language("bash", tree_sitter_bash::LANGUAGE.into()); + cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx)); + + // test `else` auto outdents when typed inside `if` block + cx.set_state(indoc! {" + if [ \"$1\" = \"test\" ]; then + echo \"foo bar\" + ˇ + "}); + cx.update_editor(|editor, window, cx| { + editor.handle_input("else", window, cx); + }); + cx.assert_editor_state(indoc! {" + if [ \"$1\" = \"test\" ]; then + echo \"foo bar\" + elseˇ + "}); + + // test `elif` auto outdents when typed inside `if` block + cx.set_state(indoc! {" + if [ \"$1\" = \"test\" ]; then + echo \"foo bar\" + ˇ + "}); + cx.update_editor(|editor, window, cx| { + editor.handle_input("elif", window, cx); + }); + cx.assert_editor_state(indoc! {" + if [ \"$1\" = \"test\" ]; then + echo \"foo bar\" + elifˇ + "}); + + // test `fi` auto outdents when typed inside `else` block + cx.set_state(indoc! {" + if [ \"$1\" = \"test\" ]; then + echo \"foo bar\" + else + echo \"bar baz\" + ˇ + "}); + cx.update_editor(|editor, window, cx| { + editor.handle_input("fi", window, cx); + }); + cx.assert_editor_state(indoc! {" + if [ \"$1\" = \"test\" ]; then + echo \"foo bar\" + else + echo \"bar baz\" + fiˇ + "}); + + // test `done` auto outdents when typed inside `while` block + cx.set_state(indoc! {" + while read line; do + echo \"$line\" + ˇ + "}); + cx.update_editor(|editor, window, cx| { + editor.handle_input("done", window, cx); + }); + cx.assert_editor_state(indoc! {" + while read line; do + echo \"$line\" + doneˇ + "}); + + // test `done` auto outdents when typed inside `for` block + cx.set_state(indoc! {" + for file in *.txt; do + cat \"$file\" + ˇ + "}); + cx.update_editor(|editor, window, cx| { + editor.handle_input("done", window, cx); + }); + cx.assert_editor_state(indoc! {" + for file in *.txt; do + cat \"$file\" + doneˇ + "}); + + // test `esac` auto outdents when typed inside `case` block + cx.set_state(indoc! {" + case \"$1\" in + start) + echo \"foo bar\" + ;; + stop) + echo \"bar baz\" + ;; + ˇ + "}); + cx.update_editor(|editor, window, cx| { + editor.handle_input("esac", window, cx); + }); + cx.assert_editor_state(indoc! {" + case \"$1\" in + start) + echo \"foo bar\" + ;; + stop) + echo \"bar baz\" + ;; + esacˇ + "}); + + // test `*)` auto outdents when typed inside `case` block + cx.set_state(indoc! {" + case \"$1\" in + start) + echo \"foo bar\" + ;; + ˇ + "}); + cx.update_editor(|editor, window, cx| { + editor.handle_input("*)", window, cx); + }); + cx.assert_editor_state(indoc! {" + case \"$1\" in + start) + echo \"foo bar\" + ;; + *)ˇ + "}); + + // test `fi` outdents to correct level with nested if blocks + cx.set_state(indoc! {" + if [ \"$1\" = \"test\" ]; then + echo \"outer if\" + if [ \"$2\" = \"debug\" ]; then + echo \"inner if\" + ˇ + "}); + cx.update_editor(|editor, window, cx| { + editor.handle_input("fi", window, cx); + }); + cx.assert_editor_state(indoc! {" + if [ \"$1\" = \"test\" ]; then + echo \"outer if\" + if [ \"$2\" = \"debug\" ]; then + echo \"inner if\" + fiˇ + "}); +} + +#[gpui::test] +async fn test_indent_on_newline_for_bash(cx: &mut TestAppContext) { + init_test(cx, |_| {}); + update_test_language_settings(cx, |settings| { + settings.defaults.extend_comment_on_newline = Some(false); + }); + let mut cx = EditorTestContext::new(cx).await; + let language = languages::language("bash", tree_sitter_bash::LANGUAGE.into()); + cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx)); + + // test correct indent after newline on comment + cx.set_state(indoc! {" + # COMMENT:ˇ + "}); + cx.update_editor(|editor, window, cx| { + editor.newline(&Newline, window, cx); + }); + cx.assert_editor_state(indoc! {" + # COMMENT: + ˇ + "}); + + // test correct indent after newline after `then` + cx.set_state(indoc! {" + + if [ \"$1\" = \"test\" ]; thenˇ + "}); + cx.update_editor(|editor, window, cx| { + editor.newline(&Newline, window, cx); + }); + cx.run_until_parked(); + cx.assert_editor_state(indoc! {" + + if [ \"$1\" = \"test\" ]; then + ˇ + "}); + + // test correct indent after newline after `else` + cx.set_state(indoc! {" + if [ \"$1\" = \"test\" ]; then + elseˇ + "}); + cx.update_editor(|editor, window, cx| { + editor.newline(&Newline, window, cx); + }); + cx.run_until_parked(); + cx.assert_editor_state(indoc! {" + if [ \"$1\" = \"test\" ]; then + else + ˇ + "}); + + // test correct indent after newline after `elif` + cx.set_state(indoc! {" + if [ \"$1\" = \"test\" ]; then + elifˇ + "}); + cx.update_editor(|editor, window, cx| { + editor.newline(&Newline, window, cx); + }); + cx.run_until_parked(); + cx.assert_editor_state(indoc! {" + if [ \"$1\" = \"test\" ]; then + elif + ˇ + "}); + + // test correct indent after newline after `do` + cx.set_state(indoc! {" + for file in *.txt; doˇ + "}); + cx.update_editor(|editor, window, cx| { + editor.newline(&Newline, window, cx); + }); + cx.run_until_parked(); + cx.assert_editor_state(indoc! {" + for file in *.txt; do + ˇ + "}); + + // test correct indent after newline after case pattern + cx.set_state(indoc! {" + case \"$1\" in + start)ˇ + "}); + cx.update_editor(|editor, window, cx| { + editor.newline(&Newline, window, cx); + }); + cx.run_until_parked(); + cx.assert_editor_state(indoc! {" + case \"$1\" in + start) + ˇ + "}); + + // test correct indent after newline after case pattern + cx.set_state(indoc! {" + case \"$1\" in + start) + ;; + *)ˇ + "}); + cx.update_editor(|editor, window, cx| { + editor.newline(&Newline, window, cx); + }); + cx.run_until_parked(); + cx.assert_editor_state(indoc! {" + case \"$1\" in + start) + ;; + *) + ˇ + "}); + + // test correct indent after newline after function opening brace + cx.set_state(indoc! {" + function test() {ˇ} + "}); + cx.update_editor(|editor, window, cx| { + editor.newline(&Newline, window, cx); + }); + cx.run_until_parked(); + cx.assert_editor_state(indoc! {" + function test() { + ˇ + } + "}); + + // test no extra indent after semicolon on same line + cx.set_state(indoc! {" + echo \"test\";ˇ + "}); + cx.update_editor(|editor, window, cx| { + editor.newline(&Newline, window, cx); + }); + cx.run_until_parked(); + cx.assert_editor_state(indoc! {" + echo \"test\"; + ˇ + "}); +} + fn empty_range(row: usize, column: usize) -> Range { let point = DisplayPoint::new(DisplayRow(row as u32), column as u32); point..point diff --git a/crates/languages/src/bash/config.toml b/crates/languages/src/bash/config.toml index db9a2749e7..8ff4802aee 100644 --- a/crates/languages/src/bash/config.toml +++ b/crates/languages/src/bash/config.toml @@ -18,17 +18,20 @@ brackets = [ { start = "in", end = "esac", close = false, newline = true, not_in = ["comment", "string"] }, ] -### WARN: the following is not working when you insert an `elif` just before an else -### example: (^ is cursor after hitting enter) -### ``` -### if true; then -### foo -### elif -### ^ -### else -### bar -### fi -### ``` -increase_indent_pattern = "(^|\\s+|;)(do|then|in|else|elif)\\b.*$" -decrease_indent_pattern = "(^|\\s+|;)(fi|done|esac|else|elif)\\b.*$" -# make sure to test each line mode & block mode +auto_indent_using_last_non_empty_line = false +increase_indent_pattern = "^\\s*(\\b(else|elif)\\b|([^#]+\\b(do|then|in)\\b)|([\\w\\*]+\\)))\\s*$" +decrease_indent_patterns = [ + { pattern = "^\\s*elif\\b.*", valid_after = ["if", "elif"] }, + { pattern = "^\\s*else\\b.*", valid_after = ["if", "elif", "for", "while"] }, + { pattern = "^\\s*fi\\b.*", valid_after = ["if", "elif", "else"] }, + { pattern = "^\\s*done\\b.*", valid_after = ["for", "while"] }, + { pattern = "^\\s*esac\\b.*", valid_after = ["case"] }, + { pattern = "^\\s*[\\w\\*]+\\)\\s*$", valid_after = ["case_item"] }, +] + +# We can't use decrease_indent_patterns simply for elif, because +# there is bug in tree sitter which throws ERROR on if match. +# +# This is workaround. That means, elif will outdents with despite +# of wrong context. Like using elif after else. +decrease_indent_pattern = "(^|\\s+|;)(elif)\\b.*$" diff --git a/crates/languages/src/bash/indents.scm b/crates/languages/src/bash/indents.scm index acdcddabfe..468fc595e5 100644 --- a/crates/languages/src/bash/indents.scm +++ b/crates/languages/src/bash/indents.scm @@ -1,12 +1,12 @@ -(function_definition - "function"? - body: ( - _ - "{" @start - "}" @end - )) @indent +(_ "[" "]" @end) @indent +(_ "{" "}" @end) @indent +(_ "(" ")" @end) @indent -(array - "(" @start - ")" @end - ) @indent +(function_definition) @start.function +(if_statement) @start.if +(elif_clause) @start.elif +(else_clause) @start.else +(for_statement) @start.for +(while_statement) @start.while +(case_statement) @start.case +(case_item) @start.case_item From aea309160b1878f4c6a70344677ba11d7c82506f Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Fri, 25 Jul 2025 20:29:51 -0300 Subject: [PATCH 0227/1052] Update the new Nightly app icon (#35119) Follow-up to https://github.com/zed-industries/zed/pull/35104, with some tiny design updates. Release Notes: - N/A --- crates/zed/resources/app-icon-nightly.png | Bin 232863 -> 230509 bytes crates/zed/resources/app-icon-nightly@2x.png | Bin 848597 -> 840256 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/crates/zed/resources/app-icon-nightly.png b/crates/zed/resources/app-icon-nightly.png index 562588955e81265c9a44ab399d5da5813f6805fd..6c5241f207252641c6e11dd62170156b4888cdfd 100644 GIT binary patch literal 230509 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¼qEEQ4Wsm-$KH%LuW z@HP&5BWl0jB6)YzObMa7bG^|;o`D@*4Hhg-nUcpiBpi~Y9$Pr5)ZA6cQu=Yrd&ZpW z$?uNLSpG=MRZ6w<^JEk@?6s| zNfw(Nu7srYV@sAansRSpRf=(Vb>ZHOqlpP0>WWzUXGSjE+)}{DvCiSblMlMPPw4!s zh@N?vby?A`WOVPVfhi(VRZGv#t#bjCR)uAdD~<6RH`C_^TEHrzr&Vw zeBAd=FqLU(=A=M+ukJBqRnrNyxFe{tEf`)HrJlI6kJ zB{2m`Qb9$VZ{Km3+j8`;QH#XVi0qGjijFSo5;aa5Iqg>5&8+qn6$)0$3UZ)US zL9@0#>XrEtvS;4e-v>|jXLa;m)zjEnaxW~)ZHKv{VC_nU$-JIQG5PgeoHHtWa$;;| zY+xx)JX3g+=aQ1x{%e`F_R-agPPz9>yEA(IdAXwL{_dMKX){+X7S-G#*D~SuS<#fo zyN;L(-I}^FP$1zJ$L$9~3qmhl%gEy3yf-higL^@`o%Ypv*Z*Hp{u=x~I8EKx-EiT)cL%SgPCEbZM*r#G@9P!xa ze0=$*bC>P6yq8EldLT{nob9ETlf}+lZ*Xc4id4Gz_K4N-FRoK~_GT}xc-h6c%JF`a zPGlhOT(MP-Ro5HWWWPw8b?9H!{+fnacaK*6sA}J8yJ-o>ftvo~H`3z|UrVx`k!u#$ zaL&oVdbW~BS_i+&!N3ELUe8eV$W+R+I~99^)9Y>L!mCz^^H=6xJaR7T?=hd}{hv3T zo6Pd{aN+CM-PdFHto`+F&pRK63*R?S-e{36lB9J?1bA?`@IN(B(2!PUW-^gRm4`E*Kx?X zDE+x|yVbwnzx7X7>;J1(X0TlHwAAm+^|pUyj~2{dy?OJm*T#u;O4Yl)jkB)hNz51j z*xF+y%d=6cHamUu#C@EH6h&?vP;>FfW6@0Ioh>Bi#oEA=*b;okL}E4L&58SeZm$ch z`}e%gr|yxuowEGZUH{59PZg53a9z@0_t_uRMDn>?O3L6c^Gra4iAq@Dwh)7-zzPSKOE$~{x;+zHr*X9Z9685Z9 zQ7=~G76|ne@U!szwCN^?*PkM@x|fJKYQHndB1zv)F8TcdbV1?(RusN@!q_@ zp7Y46X=>|gVzYAp9atAxs&?eqQ@a(_zpl*rv7xTZL4DrN_3UfH|IYJ!?(*Wto5b#I zH{QIRASugP&Aw@`UHZ=KMb3xn&rZ|t?DFMZ&7HZ2A+vDID{THQf&1PDm zRrSn9QPXH6o~%i=)mG^bY(%%|MG>uW?yqOG}@CeXStkzG+MMq;^dG<~d2=iH} z{UccU>ujm1{~o+q>H2vGTltB_uFr2q*Q>ZsNa{QHub#(UwC`LQqs*@B5wgdQUTch5 zXR$G`K`-L{9&5RC8sTq$?g`br>CLEkTD4@NZ34@yzCUaC|CB#5z5eC%C!gp4p0elv zLG}|HB<@U~R`$8fV)4Cvqk4U#%Dm1N>q(D(#CiV{|#nz=-FxA(nCVNqcgs@!dS zM~)P{G>%()-gC{TO$V>MP`J>wPRR44?XTko71e^BwaeyhdsLhpw)%f>!&g<`IeS(! z@z>Q}e~%rSd3x>dXMC5vl3Bm|dR7ED9}?v zhqu%OG6nfPI(KN@jsuKS0=6Y{NGEIkjEmRVd9vWX(gjyHOI`=pnoVhGy*poTTrc>3 z0!w=T-VJXaotJ()f%l`b8%EIMN@Ph6Ic+ym!T;?eq%A9DZe zDQ}f(S=F&c`P|eC#cvi)OqjFAfx*>g#|AOC-kn=yj&QC!x_m}a>DN_vEH=2j)IA-{ zR9rK^V|wYXlXb`UzLsd<%-#I@-|v_7tfu1 z{Z-k0lhuE@iXPU@53Of!34iju{-5`!>2>e)PoA%Nx%?^n`@IH?)7Krh`PEp=aAwIA zrOWS{^?n{JQO>;I<#TA$Kgn;(U-x>?JMeFw=Ca#{E&_LJg#C@qbM*Z%ez-w&z3D7x z{yIlN`D2eX^wT(FT-loB4=E(>JGAa-$Sl+6Z&OobZk50FGv2I!>!H^NCbqioQ8Kei z+{Jy$)8@|h`Qo*wnIV>a1-muNn)fq|f9Ot>eXV@`;*nXhFAY?m>R9kI-Dy`@J$2se zEZ*TD{IO!OM>Ue<`U;w$2}7c-3~o+qGsCB{D|G>-`1`A(aYv{u~FgQ zn&rm2ALcA9Zg`+Sxm(d?#;sYe9^ElI&E;0`rtrOqaH!J?KIfuF&AA6UZk0Kv&E2`9 z$JPGC+rG)Wlz+=cKM(w`_9f?pwBUZRBl&_2pVzn@<~Mx!{#li-eEnzPO}l^VpVd?7 zzwfbsX7q{&j(gs6%ilg*dT)-B{23qPZ@)#?ST#%V|GN2lz22;T-+QaL1D6XeuGzTV z#K6<)(T%(;-fMaDZeBUL&w9o6>a5g`qxZZ`yY08ml#iG^L0MkZbVcgrpO5VRtO!&- zcBB2+M5+0m>^yV(KIuuH33ym|&0If&e+GxkhcKm;k9gA+THaqi9qtm=T&Zl&{dBgs ze0i*Ctk2EhiF5NZC)@ivy9I8#s=0gjjkgAzC;qS5|L%$oL#-&+!5hm~pQ~5c!>MMQ zZB?7jtnZdA7Tl|CTom@VMpiZZ}Y8R+ijYd$Px#cNc4Wi9n8f@uI{Y1Inf%)}gw}lM;Ilf}6T@v>TC@Dfu>$3AH9u~h zu(WAbX4xg7x>9=P>kjUdop^S)ONPUf#l4$Mr#cE>zOaBTU}fFw@O_`IKh6JhzCN(- z&GER^=l(CwI+9nw!z{5)=tS!l+t(K>7wDehnPlQ|Rp!W!&dGhcwjBJ)nj6>B;leie(I1}vMCscnJc|XDR67%nR9$lp@yPIr>@UBva0*9- z$&JfC75AEVEame_{80AiJ1Zx)8N&y;#lE9s7T6o;!Ev+Q6qaJ%Qr-53D5=x0=+ioUrwr@`mWS>i6Go zeZ18rT5_|SZmLF?rT?;rSW8PZ2p>T2*``AnwisOF>PY%XXF9<#~EehwWxqH)CbF@blSAZF$n)l&g8$ z8ozugeQWWx&d0lXzy5r+!#aa!#o1t1|EH{(1`D3Lvn0CMdzOVt-`*!*c9y;O;rm@7 zlM0=7?Kx0&B38rgnBC>Y*_`K2RH;ne^yIPhCAOa%qTS~_cliCdhHpBPzTNgir|L8& z{!np}_KrJUYGoCDNu&H}X*pBFB+kO=@U7cydabqinybNU#Sg}>j%;e`y?RmO zko`fyHl_Je0^UxB5BaQK=fpqyKWpO41tJ|PM^9?5n0o$q`=?I_JzKx+*Nm3-jmnP9 zmSC4)+w`XP{HAEfi1>2m6rO8JXA*xk{JE20wWg}LIF>g&`KY?SdP(t#`YeMZD@&K| zs9xwaZ~F@u*_k;p+#Y2{M)G_nz8;G^oX^8BnoxeAu zsA<5ZRhf(>n+y&mZu6XSE%}}5>Yzg%)ypD}>^5n6{M7q}?3S%fTX#h0_3U17K2gT@ z!n?zk4%@`um#0S`v9wj*W^sSv+Pp{4C!by`=5wFjH)d70!-d-_h1!4aSWb%YdZVk_ z^lh_q_Uq73Ggp4CJl+yNqjW+JPwM6O0U-r9t}WlQTbaF`-SoxEzIyK~jm8b|}7m$(tk0^|si1X6rQ?580n*dkU*=-90ZgXo^*hXV&&++tZ20 zk&BZuR?4k1Zc_a1$)(mU<=$Ex6yP*><7LkA} zdG|AJZ)Nq@3GxfmQe@eSa3Yga(~)va%?867zLYz>=`#4({Yh0j@TOkEjt!|jOs!K!PEW|utGwVh}9 z&8Gc`$Nks&s#7?lYeP<&%rTsB$H3|1`}KeB>{p-v>&eD9Auiuv{=RPF@-AiTH5;Z` zdO}%Qb^im4kEO+2%igy#AeNImQmx*r_}|hA8=kSvzI6QB*N5|uPJRC3+=ul#fA%S@ zGe~=?n1B8A`A@s1pPqSlm7}bmrl4bq=G|58)d3BsXIpXb7eze~+P8Dw^;tLfrRS~H zZtM_Ve`Jo=vIs%fwp(*MGuY}&c)~tkkm(cgdMd_NrSx>#;f(LMUM;-#J6@$ifASjB zSC5pgM2JsW$0f7qbHN``mdgGWdwg8yIVjj|d3?`S;9%6TeYbM1eJkWWHqF{Qa=mHy z^{uAIW_!>4WbE~s_t}Jn8#-6E-eh9%@ttEh;k{1A_H4mLGEx^bPS>Tlx6RFUpOU~V z?!K@8v&o;NE%WSOb-c>ho~%31?_|uk3fb2OXUS+Aeg2cB`n`1B_9Z{g%PeTrV`h%C zW1l9iknrsFoy}#62X#O16p$5G2;!<-ykwERywBy=f4+1c$b9{IPG`BX=(l6hOs09a zy(CWR8}+i6FedIwRAagv&E7GMX~JJ;6Q8U9ef%unD2Bi6D1M)|d)b@k!9Qw*76`7+ z)niTFyxi={y@lC{fv45iOa3aY{AyRrWUUzVxb>vUhbyKmMM~cbn5vfCb(ncQdg7Mt zPx|&)?NnZW#yc=#|K~HEfjc(lPxd%4OR1>)j{9-umnVEWJ=*JbrD=GUT%7Rv>-Brn z;(r{CH+YtJ|NV@^VXk`ILZ2MomK^x9E7JUN>zug#?9UZD7PWFPmTgJjQ}TpU%)380 zsF*?jezo(z^7_~HvCIN}*;A*`9*wlTBv3aL|=GR15Q}?NA8yq|yeA>BYt()dY zWA!DT6Q4Z};&Q*#r+VhoZiDF;tt9r|Q|kTke80A^$wB63F}oMu%eC|7{83w}$SKTj zZhJ7V$aj`)hIrHbWzN5Lu(ancZ~xe3aQ!9Axq|C!KD-b6z3lGB>9{^YLnH&UFQGvVz7Er^151t(lR1E_$=litL9TEIMDRPikc^`l20lfst z@(IFUj$Gutm#sQ2E`Gh#!mS=>q8bYG8yB%ptlD4xEBR);%;JCkU(Q^2n7OXi<%`0> zo7L^@KlY0D8~?r287H!C^^u2BtbEqDY?rQORu@%{Nc!3Foh!NjbzMY0OR90ok_+Jp zmHNKtGy@fbm)+devEB30FWuN%6rUgM=5) zd;j(7?$X{Gg?kGd9`Ek+;@%?LcqG>+MtqC%$$ony%Zy-GP(v+<)4^wz(W~eP1*=3~ zRwtd;8+C4pYx3U6No#V2&hplf6sx0!j~l4On*Sl)`-*=a~3xzt;~} z{*8Tj<*+;Zr}}^E|I2T>6|*^3|K_pFavyFcov&&ty>O!H>!G#64>nZsi&a;bTy zk>j^z-*0^Vy1cLb`PEG&hptY}-choI#zDoyIuuPtJ@Z9scte(q`Y-{}>IL%3LCR@4O7LSQ5zicix z_~$-Xmd9eYnM?lb70DO&?k-Q!Xn1+$cje5@i3hGM)LTEHwv!<QR2hrTJM=zhug1#>-yGLGJrgb0y}PpUS5kQMp1{1U35yS^`%Dm?I6GtFO24Y- zg17%mRUMnja&f<1V9b-c?gbOBU$oNUx_4oJiubGEEt@T@mN9vY6DCjE zyW-aLu72HWxm5eC%L>ETMRtCVAHVtSQ*pO$`a<)&XE|*316BuR+Oe(JYZY~V z-|NC}tC|0QcoTB&oW7=ir_P@HH%$-q6iHpU{PtD!*_kVEU47Ozi|JC<$<`+KUs+wb zJ+EAw`;;pSK6$R*Ut97ocEy@h^~*aLE-2K$^R`#Z-}lc$@0@hImZ|-dsvEhim`6GXO zU?HdGCQ;`lPs)7noe#)M-TX`G%A2P`hYsfTJierQ^z-)bV&%^SI5(YR+IFCey|Qx2 z`U}lp_ONrlO^wMvdA_yLkNaHK&*W~#&@Lv8#kG;mYI7%uf3In}cO*e$np47!zxO!L zosT-vvRO=H-xKC(EJ}`X>gN~xw|}{yq@;fGuG+f0c9#n;OwUbSb*a$)@$2Zjwf{dX zVcWQ>P$A`td-Gz)=W6z=lb0M_{<2c--sP~~WzHY}zOPx&b|rj+=F_(4^NuJ=Hh5%7q*JVd+H{9R)no;QXuVf*{;8|-JpHJbLnE5*0M|Xk5Z2d zy}rdh@8$i^Vp%PL6SUD+ui-W5jy!mgwO1$!Y`#FZ^Vhmm;i!&A(y^;O)X6A;vFIT;0 zFIcK>fB)v>^LzhZ-c-J4(*6I(^;1HE`obB7ZY?QcxTt=w%JbcQ`$_NX-rMf}KkKQ; z(_kN&(_7f&d+z=E{P)!l{#B3vPhMZ|yzkrA{1cPa`+FTE`izyEH%>Fn<=s?xU}dVF zO1x^?EW6;usL96<`%QVxIz{~4rhVo0%r&eL7hzOGbDuTXOUA&TXtLfhtVAM~c0CY*xHx zR$Z|+t&mk{?=7cl?te=sbF#Evzf%}BN10<@W!vNL4`OO$-aU!D9rrpV|G6snvg?P7 zBj24{Gxg$w6kfkSbBfax-n}X2Z}H-mntb}%xdu52&3A_?7_Jm8~9SzvQi3 z&(F7;Sp8l8)aP`K{u!rUcATlsUQ_detzk`%W4f+Dc!m6A2HhPO)=hjEvq$f~+IFq| z2fW4gSbGz+4R1`(V|R)c5zVS$G_=0?yK4IZP3c1`Y}9gjw_J+Z9$mb#*m~>4r|um` z8cQtt-tH^0`kZh|^_TI#UB-+DzWw@h+eitJMv6aJFW9`r?|x z!xdK#&Q)QFxZwWhRZULovst%pYGkxCrc@OF4EgsV{*V1p$vc7zW;C40IQQ+WdEC@$ zb^fenOe(J4+?|_udken$z5Uy+N9VTuyMOWFLY?e{&sW#~oA+mR{nz84+UtMlKY97N zyQ;_Aid~iItYJguo}_|no1*6PJ(u)L;@zD3QO`nohrH~Z9a7?|MS5lBPoF%Qx3NQC zf774i|7ZVS`$xR~`~FGl&;RQ+iSWBv@$p^UYVu^OMR1(#{z)_2zJB&R#+%1-%`?`sxiK ze~ZtUpFQZc`aBo=j{?KT<*nbN8QS;PY?;t})4B5fqrXvWqr!JoMNXWtH6|v;y}Wha z^`!6nSh=E8kF)bks?6d4A}Lw2Iht|yTXo(eQzSA}n*#4ud@ikgd@=je>H4qNvlyxm z^0BJ#-CF%@@fuU%vuBQk)-#;1+hV$H_x35POZDH^e{u4Qx0(J;$!kIVug$_r%27+A z&onUg#mRk?+Q+VYVFtsZ$w|GHGhHUJ_x+pV5F_{WPKoZWrxSDX=iSJ^w)*v~2{j3O zv|B&$F1+k>X9wQ}*^_S1Zl9Q9-BkPH&x)ji`ivBTyRW8y@7b`%<&DUP>D&45$8A2< zd7;7O?OL{DRsN<4k$Q3`7fo~3*ROZ*d@P&&@tUI7(gk;env3{vC?@i5S?KcU(($-$ z-(o_ii&lESJMo(DCBqY8mmV3ug+Ax__|_XQ(>ofzV}_KYzf$z}`yvvL3=Uk3wwV;) zuuXMp18epV%X_PBcSdzzUOz+KU_<8V-U-`}-ngZva`0YCyZ+gOuLKq!?5XU4 zT=&+ePyBcB(w%xH&Qo5QcdrTbBr*CY9(UH4JLSld^+@N=M4yuYND{Qds3%(dD%)pyR1ozcx^m#2GhUVpah8!O+tqgTtHE~-yjeBk=^ z*T3e3i6-8f?9T6>_4Caxr84cbY0Tdz3M&S)$ku%_d^OvcSLWl#X|c1bBJTe_CcXaj z?fE}@{#;sLAGvPbg{cXvjd%YkO$>XfDqSM#n4`9N1&d1Zwi)3nswe9|U#-{izgI7w zespj2rIgywbrA)V!V}lqWaNaJ@h{0>KeO^k?hK8$1Ir~y}jrD z@L~Qt?{PK%lUI)pMae1eUc4~>+}=E!RxZu^GY?5>#F$Ulbm`K}lIc-4mSeB!43Do; zIDXvSRC&k2y+@yJU2tf(`j10(r;Cbe{Qte^|L^kerv3lLvwr^1HkMenEh1{Zfy?w8 z=UyyX&7plKp`lYQMZa*zK0!l%{(j!Bz5A?E1GcZY@WJ=&6+cOqYuamOp89!qspHIt zJ>8##`*;ps$lq1JL;bkB{N(qwUlMgibI#7xjtXY8s`$9j^wpKU^STpOtbWnA&42BB z`NK1NRvSFAJrQ}Uaz-pNGQ*mdj7 zTU_t{+#a=YMo5;rb+vwU+19A=bgkJIrYs6)PG#QFjac#eV8Bz!O^y=|yPf{0d-&2` zg&7{p7eyW3(R=0s-(ji01+A4VnLZPBlVekb6K~y(J@N43zL+`jSF~U zWc~la>Q8I)_bTiA&Hrp+x6;sE;i0kPn(eXPO{MR1!j?ZuyX!6G&?4a>dH-bR1sA)@ zy`PWTTFd8Njn)w>T_58Wd_kmRLg~_lNrzrGb8_~bQ`Ni{XFE~AuVUNhe;bbNFty%a z)svp3R_3>T-y%+R?)dWuuf%xU{8#Y(?9Z>W=SX_)MrC*L>`c$o`E5LF8V-~=7_q7U z;R*<3f3v39dw=`d`AWe>CWkp6XPtc?@cz!+Nlbc5m#1mnI($3HupwSoV}tzRNGFpe z8?Nc3otTqg(wZpTyYo<+0)OTE?DT>K=MG%cC^9~i^KOfQvhSLkrm1??iJt`1QXCE+ zv^>-CuSg?u?bbNY+ML>(->tYKVt$3QY}j{$ZBAs82}`A)+GG8P6SyX~FLn5nG9_cH zW^J)f>vi87TP0jNJ?w>dUJ%^>`?vL{KRdO*KK+)yP%%UNoX4&kM-JuJ|Gxdn|KCab zqkA{Lxc$3k_PO1~!aRr41VWV@62ercgq1!%`~2Oj)L(pa=f2ypB28lT?1M~4XZl?X z?uc62=U&qN;=9yz$GO)kblKT|7u9S~m*4ZF%9SBbVzd3PnblW*AAfl2-9jm)IobM4 z3?JXS#*inIeo5r2m6C{p-PSe9QO^oo5})Lrd35Q>vW4?&>h`9ecyaTZl-<2)oYk9m zFZgGgT&&6Pt@M8-dY@-r?I8F7Oo^-CsbB^l1%^&-_1h0SD`EJJElXmN_ zpH5kszSEt@?YcrlYe4APkH5IwOjy-j_p`^!`K{uX?R|3nVcE6Q1s2mc+MUlky!*ik z*8+<}5#20F4RL?{tk|L#`&Mnqm%aYyjKu3joYp&ILljlnA`jjB=TH_@)9$Z#^@#KL z0_EJ_kF_*1cU-@&P`<}nnDM=zj_}(OE6H-srn@C3%Wcp2bnO4?wYu?rde(vIVXIA^ zhnde*wX}Ppb|ETl#;%vEHeVOB&Dkw?WY!v<8?zX5);BFY%ly!^aZOCYGJgr%m2N@8 z)BKLNlzBIv@Yr@Vz4Q@Jq4e}AzK`y(=_KT&eG$1G-gmv>s1INF%;Ls*JCvEK?rC)i zJ(2uvn;KAha(bUzjEalT5|@Br7M*8{Cr^H*(4Re}zM*RWl8ncj{(Jv1=5blcRuk9z zZsnfO=gPCozRCCHn-D^0Zwb$fiyo5w{ zZPc5`?`L^thIt(1-)p{?m0dcS{r`i-$3 zErxks{k(D8@4d}Cc1vf=1AD8#vtr`v@1Js5(OG3?acmh=eq-Ccn_nisG1r(PDQmXt zSiI%GLh19b8cpZDhCOPOzQb z*xUDxb3rlNjop83fA;_XR<9yo|0DRS`njGf>|YWN2Swdqr}{I}#G-P(K~sfk&D3qI+*%3S;+Y@Sf7$(ih1LK3lkD;}4SVNx zzwAlyRKI=dUr)~5lz8#mH@LUoR@~Ye*1WEI(~EDt{UQQ8J_n{1J4>~9u|3nZkk9)s zP_XT>X3Kl7l^11|`;4}@tPa=~k-_@)-=eMO=YHV%wsXRiH`(1CLitIteANqAUc7$b z?6Dc$?2G2H?C?x}bf7jR_^($s_qI(rS&WiDVmKOd{2IzEF8V9THEx)-WLtP|facni zKk0ut!&9ZMIJEUN7-ATcxftIKGa(JzJYwwlu8z(k<)P?kk>VJ+YoF za9hCPxvbbzc!c*!+1|6pqI=wL7Yb$XSkeCLfWY5-v7c*aM)vG` zBeU7~uB31DS^1gQa|)I2l`;eh94L8oCUG0zFUy9nR!Pb)`Xk*Mf)^at==o$iO=HIA zyv5O9V<=+&OWe8`Symd3k*u)d9+-o-JcnJE6%?CvA}%mj_OpS70Nuf zmu^$d3S0Rqb*|7hzoVOFTsh3X?q6rUW!BP}_ODgrI$txs2s=Ib;>i>LE=ndW&v2YC z9X>zEj5A?w`9v=Zg=CffR~5G=Xhp2c)je*re2U4t#s7B1-w{7~)^Pi57LRLIA|(uB z-%n}yGT$%S*taz~ZI14=H7gE%I?%KD>@ESDN$b*{uRQdyd762|@vGGz-fjNB?H|wD z+}J}U-V-iWN$+{Y{$b8F$?r>ld=Q@?_jULB_3Jx5G9Sd9S$Uvyy)T!Hd(kGDO)o<0 z6#w7+|MkD#^~1u>QfXiJokO$cgBhE;-$V_4RL5D}TS;{&f2OPuil5 z7RD|byZ1T$&0o3qh3m;9&wFNeFYzps-owlL@L6r?KklD@@BhpFdF}fCu(|(}EsnH2 zaBOxv{p9MuGa^@aIEJ@wS#Y9KWaiqe&rxPqjySfz)X@5JY4Q9u)t~Dhd^u?_i{szw zztWdo{$2`ipPSwHI^6Q{y8F`;|L*u%I89jk(8NcUs?Nu{Hojdba6?ivAXioRkH;_9 zIl>1%t)1FlbtWT0@-W+im-m0!Ugj5Yj|%$zP9*)k{dboGKka$grbLG}mzB(3(_o_V z#!w|HqqOLsxWJZK2D<&anYY*MQ!js5+P+HiCYxKsSN*ecL3a*`^$8t3v+qz~!rg>3 zsywm!>)!X8O%`Fh!k76bbYTMjz9ZRZb&bC>Tsx_3vcZvlS|0FB*>QoYo=DQK0tf&}Gj@+MBK(o%q5i_>^D3 zoew{QnXVceezYp+@{%c2m|QnxU$VVjy3y#(^LsxN|J!#bnDtLipCPC-z2W`FZC?#nYCZ41 zYM#1v?TKKg>UrPV=@+2L^-RMrjV)&WS84fr-+TW`*8aSH=KrUxR2K`I|1zt~ zuNWnNns|EOnwwHlvnI{qtG^X}?umTe*Y8hn-(PWV|2xI|_1C_g-1&81na;wG3nR9v zuS^y=9}ax#1jXuNoD{je)NuRYkzU{iQ zWBvIHg)?gU)mc^VU3RK}zFp$E`{ca^6L~z0+avEzynfe_LFCl>nSX1_!^6b&6&SAc z8|KF*)~#L~>Hql{OY@x*D;~+edY~=v>B`P8Gk7FSue)S=gxmG{Rp!j7&l zg^be-Llm!OTxIjT@?OF$-0j=TbYrRCzBy6{UU7GOiJ#smwYb$L*fZAcfttg^RV`e% zJ0tdQoyu|P+Kmf;ldf+HyDK6t&TRTo_Nc>>cY+29w zfhVIQf0uS^X~-4NlIanMx)m@l!$9ShbZCk4udj30s2$2l?2~)+!dpzbZ_+7)!lbBk zdkc1}o}TNTwk6!WKe0xbXVC=R^{MCC`Q@Vcf2_K;J3nle>U{@ey9H&twVL1SUVd;Q zb-zC&qc~ghB;DI>lli9~(ODK@mai6aTxs%@PG$`e%kI~CjNTEdXBNzmkgi?5(DG_V z{&nfhrE&`5Ssm=r+)BEuFY*+gw+gvt?*GH*?Ta!yXIHB)x6Yk6bL;q$W0IG}vPd^$ z!yWCPn}r1DPkY`|CSV?MOW~HIOXA|auOp4`IM2S5-p(4N*6&s8Blq0vJ^QQYx8=#>t3UsLa(n*N_@AeyKmGHG%{kdhpy@b|U&q#MYgZ&Y zGAjMel0CFk!}Fd)jL+_bvhws#yZ3*M{xmng*7;uj|IQyp?frAtOlW#O0KF(RH(8u#l|6%cso0iiadNIEaj&44cykpmut)_=>DYCDS z2vQJ!ezxW0_l*lBjdzy6_n2o_8<($mt8C+PmrE&PO@7Nvwgg)#tufYK9Ccv9wxekZ zC2dP2)sEY)`}$w!I#0Pwtn=~dYAn~Lt@Mz3UaaEIsN-qW;EPiZJ za@%{WiN*TkyLVQ~ozB|5cf#&3yNo#)lyU{W#4KSs#&T2dMEp^iE!i(-FTTW4eW0eY z^vw!kqs`uYPKOesV?7g1lczP!Ih=p|yGr@LxvYZI&c4VgoVx9b;F4Vr*Icl7c6(B^ zz$r*N@;RV*xGm~ac+g&m@BiHnn@yxB3ir1LfI5w|fa}&Q| zaIH=*Ur9kUt$1BQ$K``NUnEEto79~aR@-k|@#BEYmQyL$*xqeVe?9lC@QpmT%5Q(R zq&-pk?)UAW*8O`9hW)bQ^7Wrhe||}~*WUj}dVkQ|`n8$-XHK1Vv)Np-)$9D6kAYV% zmL8h#c>U}9&yo7o*2X{g-v5(Z`F!^M6*K=&b|~6oD&RPGz4$~oxw!)M!m`mUTXh`{ zNipm+oUEL%=|P*8;>AGq+Ny8)udJ%$*Q|Cg=)a!**ZO(uhL)r!&Rjx~Ck-nPym+o= zHsA64?p4#+JZH`kP?&t^K#EX~m^tSL@2v3OT^?t|^-mUk++cUx_M%zj{q)YDa|h1` zSj4y9%sKUV8*8o7qvE&^JEauPOy!xGzc61TkZ(`Bi~rRMzH>JgR7~0ZX_vEV z!@-`Ad52v09T3_a`_NvP-Cw1IG3DBy^sRlJwq{MDr+(Rs3G=VHFl*DEYKsp7mpMN5 z@AcfH_gr!^*V`SpW*?l!l^vD9mCNW*IeS;3)#~oody1oHuhPBH*vTCzrZIV;ym{;A z=9;Hb262;f`)oxXC%rS1l~YPvF?*)Pq)5#)c9S!$frX2T=Ex<5y{_k%t6TK1=K8x{ zuFol&jQP@!g< zb%s`q`}d!-Ef81OUUI3s;(FHvhSpCa*F96bj4Yq~E#vCj*m>uowdb05?8=*eU9Y@* zH|tebLeAs3MQa?FI0Qt8F1o%ZEhbD$m|w`~i)h8YhDp!A)uq($uzPG?aAK+C z)z(&(DYCP-m-@=gekHxG|4GDd-FIc1CNj>qsf{xJm&?o4XQ-Y~oqYfAF=_ef{`GFg z|Kq27PyPSRQfg(k-@Xo?qw{v;{Hb5l8vax1)~oHS&+WhVXX=OV58M5dV-+F`XC|)M zcp_zS9vl0T>Vuop?nJw@&QYIu$nbG-fb7-<8(u%QOcr|R#k4VtKX3v=&d&YpR(^9< zt2%72(6V^G`Ev2iySJb2Y?bI*JN-+%TSUGLQG!yy|=eI{uao8nX0Ln7vkhztrus zU(+6~2ue|!Yq>;H$=%6~Lm=atb1*}aac-*!o8(EcIeb$Cj_RvgiJm`jOVb^?Aa_kKP#8%ahs0NxeZS=KMI`rc=ViN_OjyF#`0$3kBV0E?0@^-(JQHC&ZT*R z%BBK0bI!Rgdb={h?9TbVEQSj+56!&M(5vLA<8$tm=;?23HZQv0{Lp;)9+%1oVl17# zR?%_`_p1M2$r&9Y)cs)9hNXdz|5x38zxV%f6E7F>6I%m1{=d8&+*hc^?)>#x`0|?Q zu0LNtyohT}nEvU_&Em$q(>j|P3wLm+zv?M-nDwtjT~(A#zRJJ!?#wMOAFTD7;gi;v z7S=3~`&LH3;t5}5zW>7Ii5qwX*OasIm+n0iqI&MD+7gdhQkiV_ozE|S|2-l8YH`H< zh`Za(r<$ETGO?D8|Du&mm9vgp@Z6G5suP%B{QCVhEjm~+A@zCV8Ho+1y%P z*VK1Nc9t0H5Ah3X4rcwP3!j|3`cznu@6yLep>5@Ee=P4;Cd?0f!l`nS?{G>_&Gt+_ zBc?g$Oc?Bbz34nUv!dYtJe&H$v|r2}*QJ!@u6K*puWWo^`o7rqy7|3|(0l*R-2SvW z{%6;m_%+!-*LzsJdGhAdu4ktOYNS%{aeFHpSf2d$e2>+py>n$jqfN6v-7VjzDPQwp zVMW0_i6;*#z259!cAbCuvfrNbSC&c(&UJpat9QwgfE{VOuKTFn=vZbcV=2C9OT)GO z>q|AZOgnMunzLYan%tW=Z}z3|6-S>gS+#1t=b4Wm4`=De9oSg(w(R6YO}Qf{mh!Cf z<#)Yp&i~|WxV>uq)93F_ZWjOkWG{bR&^fvPv%9Wb3F=*O$GY`^)q5rlHU4!PuaZ7) zT4)yaZA1Qs_py;LQ?FzPam+usOVuLii0X#5)oJfn$gN&?y+`o;i+!F?ntuH9QZI6k zEBD~=(CB+KX-TordOL}Z81lnXN^?%c9w+mo5E!qc89PZ8PX ztUlSmv}1m0vS;k+qN|241y;|^f{a1^8 z-9sNH8*VcF!rq?}zMZe(gwf@ei85{p9WLj2Efbu-Rc819@#2iJ2i+AH@xg9dgHAKc zwa32|D`RFX-KEgw{!bt?>#hC2H4SzLEOt+BO)Q;sPGXVEzngk84rynN<}69K`k0^M zrj=S%TB&#M)#JY(JdW(CT`jwOgN*W{xlHf+Je|0NL@ap|mna-)s(WR3ZSmY(cJ}rM z>pZsX`Z#OSb+$gMDvNl+L>Xb@RsKl3QH%SC!>5?r}_=KG}hX zQz5wX0LR;vchnu*E;(G0HJhKfCV!@d()!!ap1E=yf9$HXsMyuyvbsw5r&|K&7et&j z-#D-TzT<+dEsr10K5+O#{{A(lxwBVH7d)X-#=^ppb-L@xp-W!b`FjEr|DUgQt9xo* z7pu3fgvFT2y1c7Ru58BAiOmHs3JllXb**3X%>U5+^7}ul*8Z&T(7BOTt+UAO{fT?J zd#lxyPo!192y;=J8<~_9{C3iPf6up4rTx+8Camn!y7RcAUnylrpW}j32ln{}!H1%C zXD>S`kzJ=EdH(&`uTK@K*|YBjcky*j50QQAaaK~Ah2PPL*JJBnL2 zotCxNcX>0oT}!{5{@b{9k>ccazt}_*qqVu*qc2=IfANRLOk=(n(`SOkjoh1o}D{VJQ?c3B@T=Y;y z_{+sx_uP0N?^?w1J-5wq*`L)17n|Oe*nKcyLYea1-ZKHqOCA~Rb=!70nNf1$%|$GX z0&FP(JNBey9=o;qw`%@?3@}@*ecywU24v9 zGzYEmZt;KjVp7HT9(#7{u!AAiXZ4OUyQChTt@1t4cI&H*FHyec%zwI$e0|C|-)`|& zHb;pPCzV&bAN{s}I8Xc&^Szqak3W4&U;X+2sd@!*)6e&L{Emfe;cH$Q5`3@1Zimqu zLs^TZr&=aO_WQN1d;9jx>d*gWfByS!Kc#=(oXQ=k=l9;XT*vuG^mftZmJ1!z+>h*B zF_*uY@7K(3WnIB1Mf)oh!a9-`#oU~&HShiHqmTA&-TU-wrH!=e;a5^@FAI4x;wCZ& zE8mTq{b?n;rs2e(+mG_*wQhb>!m|6#iK9PXrud6}JU8Wt(6R!V?c1J4rB6LGLnP*! z(V_iQ@BgcQFSV$w_H&|Z>^j!PecoG)X5}@!VSMlR+Y9bbsN8M{`AEqw|zsL`V49&tm)G{N3x#!y^t|JNJ~m=l=BO&FrGRwOLzj zlPkWx_`lu5_K0_cx2bdk@04Z7P0w#ITz>DXb)f&N>DCG|5vR|d;!rkpX^v$~yYu2q zcmEcj5{1^8+dBDm1qxo&i*0!yqQ2!v{WMY)$2Zy;E=BH#9INd7h$kUgIe{KElVUMr)0WrIC&e6K!*6Q0TubaR3 zPEPM;={f$mI!#`;*61yh$Hb?z6hB3Dthz!!Oel#=MVELs3FE3?H zdsWceGL_vbYyHN_`U~C9Tu*z$c;FZB{p;9Mk6BoX-C!EjXK5XjxN; z-oZC-r{9uISoK-C>VlworP|c9ff*l+^tmewzGVJ9xVb*|{KF={l+H^Xr`GyyvYjJ- z`|u*SyIYSd#I1gx@I|(2)BpCx*LJO$Yu;?ET9PStg8i`2l>T?3%8O?%b3SxIVSa3X z5aUFV@>jAal9Lsg7BjBA{{FYfl1OEPSwb>RS0{Y``!(L2mm~F=>$HhwahelvaQ8Of5chgOo zSXIh!7XO>5s+TwM&75nE6m`md1oKG?vL@G zUCu!VVmhu#ZlB5@U$fTr#5RYCfw!mF<<7nAo7J4h(i0}QD00rVrxWM@t8H=cpY^s= z_~x2(vl*;!J?LlIaoddj!^sGA#he|Nmm^Lz5=*>BTN zdySfTS@ou_-oTx5S613*{nNDC(DUuz8%hg*FSop2+PvB0-lnr@8tg8;XI_3R4%_@S z;n@1)Je_?^Zo3oz#@`Jq(>44Z-OpRmykTR*6CmQ7<67?;`eqY$7ddIWg5dc-2eWHNH&g;sY_;CyksZY?2vr>-C|4U(wKAS(lXlaXC>^|z)%_5e5U(!ZRf^SUqha4&D$H9>3z+t zNxXfAHNVDOX@@T-=iAAhydbyILi~W)3|84y%?5loOVoU1G^$@R`5j95{lxF+$(*b; z`l=pT2t5ctt?CqVRVS4aq^%kqx`^Kri-|Ie+ul*{2x_tlV+{*aueF%@!HW?^ zXBm>tA71uW(DUP5RgNRw9(h;7dX*lTHpWsZ-?y2JNxOv4YB_>Hrq z+W%p*z4HH~^*`fJ?Fdp3Y_XVPVbNB0XhCf5y~$V0)b4#+yu75OM&){Vwz5s9bdHq3 zX&=_)&RUM%-%;(&-hXb(Zg%byRa|jQD|`L!^w)>Z-Z(o`RMhRAfuC-29^2{YD<6`c zS-1*)2#`E;#zm=J!q@%b!RG2ukA8Olx}&G!c0}yF!H=X1o9^bMrk5w4|MsjZ_xpwU zeFnSQ2eE_np!0TlPdFHLvh)`872GItdIA2u}%2m#;_~VvVtk?#;2z|G5FXf zbn(O@hq^mQCGO@WzdrCx=tXs?Q5eV8(`Pz1N?qVT7Igk$0}tpT^a zuC4zrFgyM8!q`J^E-$-q_58kHFH|GrWlwtVUVrM_y~aKNuB|rx{9n{^|BiL9Pe1&A z?%TV62Mc5WH@_`>IPa3!DVHPXPBE@hm?;wUKBc}syzc+@eOmW_9os*d|K9%zuNSat zTctcOTOk$`o%R-yLg_NlLfP^hsvyDOWcZzD&9&(oGtsF8W9^= znSQ0{>64wV8DaA;AD(>u=~MRpC$sPWulw?;I-xar7yG=2KZP9y7ES5nQ>-`;_emwe zZ2gPGTa)J4NO)dWufFy3JGXa{+v^IapUE35Ql6z3|BTtN%k7qQ=ku=8W1LNyTCbWN zvYtH9ogv8|w(!IX&X|_fk9}DaAoYSj zb|;QszAhA4srKmM2gQiL23F@7t|_!AIkK&E-fbTkx^bd%<;j*6Yu7mC{uNr}UK9T< z!{*|S>b;kZWe;vvE)0%;_UFC*imyjEXU+Kd%`u^G=nddar_X53x@?1$U5%y%ak*xXCY^m@lyqp}T!pWH%CgV?|6c#Q{ORrcMTg>-JlMEz zPIpVTmP*PiyM#)|8Z}4p-_{`tyL~b<%4~1E{c8KdZ$kE=ChhI=erMh?v2yr%{C$7# zZ~y7#@zqzE8pJAo7s{H=4_sF67t%Uex78!;)JDCX78~3pt|aVN@s@3--V1m|j(ICoZOA1*@OK<(ioa>pXLHr(C<+#8CWTZ(7iz@rPrICR8)7b~ZZwdN)VF_t)X|Uo~alzr6e@ zXX@+w=@a&tq({moFaP!W`L-1W8ehzne`{P>_sz$&-B8cVL%ZNn=gm924sCf|6v%rb zyY%DvKLVG;wEFsWUrH`GUGnT(`FCq4%}{OM2mhX2&A*;BL0)>bKH zp0XV5=O64&3^CLTPP+U$K-JZW=h0{PBbS<|Pk5O)qrv2(j6#LVy+W3C-wN-q=llEU zQBYpk42$KLALPiaN!|Wu(yqww-@ZS6QQ$w%wp!6@Q%%~7mU{kP)x_wYWWR~B5&J*< zVen|TJNR`atJLPFdXFbJ1#Wx9wsmXI!y6{oM0_qS@K*F#9WJiU$oHZ_L-+ILvQ0nV z9C$TcyK)7bhodx!PVmEz8I%;Rc`R%-)m>OFWt+Qx;~BU=ktjTs3L$`ICljs~)Rp-Vi>^XXtZu zj?m&eZ+~5qaZERuZ_T}c-Fi3I>g#8V7k6(HKEtK)=&@b?Iy;6n@iBc7Ih#c%>&l&} zSp3)jd~d*ft)$X|YrR)a9M!e>*0E^joojj-AGTQXlwYuUE>v2TJ8|u7i_nV7I{w@# z!c4Pd+dWz{nN+U$)oz+0{3odBsOx!=X9_Dd6*YJteUO!5zc6L)UD=&B>(BjvHml7$ z=f=rg#@Q*0tINyFpPsxNyn3qklz+cYW*6a~t>CDh~WoUTg^)#YabNvS!Yr6-3zPg3}h%}QiwKjjKQv1d$ z=;)NKmghVtHoa2udA=Y=?fAWeKO$#e>X_6q?UBea`COCLara{)CpDf}DaX__GpYI} zXW@yIopB-uXEQWbD6L&8d|5>?W3l5*qigmbf9jw5SEN?|QT$)m9*eyx8%zuwmNg$* z>nyqcpY!tnx?cou3mBe%R4r|}H~jn8_y3;dpDMriv+dx&-p>;&Wq*fNT|U?U;={tU zy1qo)lgqyBtn-{%qWQ&?;r(U4Q}I=^OI}D;>a1m6@b>tP<8e{l_bbir&RMS{?Nw>9 zzU=hdgonRG)TD0DzHG5<+QL;6h2?A@Fi|{ z5GwhjutLf=uVTsr=8Nk#@CQn1{Yw8|T7H8^PQF~ESaSQuhdE{yYjt(SB;Mb$WRYJL zqR`Zk>U(3=2B~>-d7i&su-!`ZmltDvDd*z`Zuia8c13JGwvx|xN9ITI`ODgVy+66P zoo#W}?SSW|Wo2S7eqVLCQQ>FxGsNMRaQh3-PY*h->W6P8u9WUq2-z?5 z^29+E_ClSHf6qMFwe7`K%?#~H=a^=k?6X|-ve>|5;!KY|!Ihn!zDxe;EH*J&wwlkO zD(zKkW4rtNud=KB>xzq;t37(w-#BqT(>lq}{3J`_8n#QF@znl5FZ0<7UfDlMtN!9xjGYKm&6taRqXsFdqMYgPNBu!fLW6BDoXX1 zl`S*al2Nwp^dz>^hTopc)O(#TF8Va@`-A5C3*WzId|_ks6u90}c0~7K*&6e;2fv4X zx>&tYL}OK{SW1cA6^)&*QcI`2Y}|To7xSf@x_veaZ!MDg$oepoMP-+{$%zeTBG0e( zH+!Qtz0JqfwhIh}rjTjuEO{5^{EYhDL`(ysq%{^V2EgxAt@l`J;Y z%vd}nxNEVvLt07h>Kne_Zf%-WS-Qc$^xyu)=l)0EpT=MJA!1M7yK0e-r!IY)+E)l<6yun% z^5zbS@CQPTi)zpEd9f~&iAb^fRO8fpEb1$_wp>g>%l0Q4s}&zK)E+B!lH0dMcq+$| zcN0EezdqNI;Y#6b3D>h$>7SQwyvp92#5&>8vtKc%t{i-Mx;1(UZ^MP7uiQ>ftBz&; ztm@IQ>hwCk${R6F?^ARB>|!)Eey9<8wyNmtzH2)jmr2am669I2@YelUsWT@JC-Ae*CEE?( zj4dMb7)&j0^(}oL{>cAN&8gK5frfW~{Ca%#mo1CZ&t;PCrUADWT`g5n-&n2iZkKe2 zVb7#Otu8g8^E-Y@HW*}lT$vKcK5qfs zzHD(@+o8RTH772+x%+AJuQQ?k551g@O+S+z%6?hVwd(Ec*Xk1sv!W9h8TRBf9xJN- zH}43GQ{j(|#zI#=o-KIe^~(7FrEG=h>zQtnuO2#7@i-d*(dg=kx2<~27Tr2Vb4NV;CJW9P2` zv8^nd=FB}&^&!!0)#rIRCoZ}@KPj$Yknzyz_FOjk&%f?$d%b+yKk18MEJoLKS8w^9 z>c4Qhd0c&@-N$REKOLR_Z_S)}`!fBlzb$^BO4#d5CSrul6=uwXljbNj0^ zS!e&3KiPf%-?W+!4~?z&=e6x!mYdUkbm2lNt7~EgMlKm98Cy6fD@_hjR$gJ!xNhwa z2QBT2E0254%}>Owo#S->$&1wXlZ(wxFS!?fcHTs8;}`xKYds4BxN2qUmOr_$`MEyJ z=S6IVc5TYso4fvKDw)hEYh@Qx6=0rOP-C;>%GaVu?{anZ_Dx9w{gG+`p}lL531zPT z?sf6h+0QR}d^X1|@QZwZ})w_+#;U;0HGbEkb+LOIz`Rw=3;N}sUT$`6>eaUs(;o>sJDs)!5Zv)G~ZNTB>h zAjeNr4QY+Y&8t(pzw&;yoU+;JZLi_^o$4aFj1$98&NS9tuA>#R?@G3n({`6-3B3n? zXmc?xoX+jc@$SC;6#u<{r`7ztzCR}Mf3Y(A;*!>lN2T6Ke0P_xyDzXcMoPTn;mWh~ zZ`__M`S88<`xz_o zpZ7YZx6Uka67TkPDmfv4a4s9uI=P6Z5G%9a(|5MNdcUCJ#YyIG+a~B=DqXeOAn@y( z4wa>i39{cgekxTJxO!d;2y8wI3V4SP8V5QY95a-AUf2Y2s~YZDDtmF?pPx<(Zf@|7 zkoTN;{me=z)>xB|>(kvH!b`mvv9igz>+$i*{o5-iNk~hn~x@`C`Gd0y==PXg4*=x^em#m#H zYo5+DZOw!4$=^zvj?WR;sdIbn_i~HP@#m+npS8@%++Lu6f~&`jqKJEUYfny;@tMSu zV^=R!wm!k)(QnaH>l%;y7@yC}=E_#KHu_@gb-?K3j6Dl3GTd4DROqZ!;I`Xg5#N;= zr<@61y0GHw)ay?!=kHfszxUfFo0<6^@a5H96q%@`G&R%12$NJYZ71eA4ho zOQZOD>rK3?7#7*@YG;_Tak(L*Z(^*;&ct+%>-U%LNCa#7yeO*8q{ zB&-NvkIXo|uRHIc&b@nLj5^cToI8FaQtjv6`@dGz{I7n0^6_%<3%Vy(9Ot*%-VnKI zl96wX`=5P3trSn57p$K2VpI989m@0m*cY^ZdTgX_rr5 zJXy=lP@~qM?EIGDs7LdoZQV;^AKtoFYZQ0&dG(UlZx!a$l&#E=J8Yfo(3Hj$E<7## zUA@=5`TO;!o9o27yfAH9e<6L_)oKqB;r!1juiouAyW51v!zM}hj^`^Do^O{D`M3qT zN+y=%Ts?R}a7#qu&)*i&QpRUh-dy10y~xpRkZ|F|UaRS|FYme-tCJM|>}qF@`E;?j zhwdxv4s%~N;eOTTiR%96Q{O+h%GDZo!fbA2+EP=;*FVqRp5`F5uFFg^cGbT8+RE&+ z*FC%!pPl;ti0JM;dwbcv^bCTEgRYvKSo@A`dG`Xh*LlxMZtPPJxwpt&fWNNoYx_3I zDZ2NWk{4+m+{enO!D=F>$oQ}P)QYX^7q&n0@Gmv3{rmm!U-fda?pI`IuU2zQ zE?IIgzliI2?sZX_wMzHmt{Cl9*&fXl98)|mB};DZy&?ux-@5pywwGr2lK1F5@@hI( zuGvt#x&LITa+I2*Sa|t4xt0Y>9;H~#VUF6sY5>YI_-jA&p|u$G?t2Kb7vb%EEUblc8D_G?S5Q- zvikD(VJvS>*|E>-6j*zCKmVR@_t>H<<#!46I=+>kY_|C7X6<=%{N{1H)P4IdX8QSm zyXd#@iSzr_4l3rh)qcN}_3cpcw!3MMmx(K`<$k_};iG@{Gg*$^ayDXFp(?9H7yVu9 zJIN3lqk;;3p6_5Y2&6o^man7T72Ct3EYPpIQ0`{I$886% z2o?8lur=6t)Yjpl!L5Pe+ty`{f!s`i`m;a8vRs~d{`(aFulv)|`9Bx^`Dy>% zwesoI=}&fDQ*z{jzvRh=s46?rVE{_Q{^awM8uA^IRQmFTCDyZSSJ;nW^fr(rlK` z@4S)jpZN3dy-C-Y8kFo@I6upItvNesao(kMjtP0i^H`j}S+}SDNjFVibMVu>BzL{7 z|4zM}9=+=6$+g+ZAA&X?`dOoVK0fB^r{k@j|8IS7QPvVXu~pQ4$;yp;I}R)<``MHb zVt>!j_*(YngLb=%fBs$nuW!%qbGtu1S^WG7V`-i!;3zwXa{owO{Ot#H+&>fZkw zCm(I<+^9J%%~>})%`WIp*B|!croJ4t`Ef70YTniS_E@wb)o4l0U&-k!r|6yBXu^82 zaAH(<;f>6vt5sMsZlp6=zqu&cIk{Cp`IgsY7jf3`>1X9<*3>H=N?5zpl;iSq#XzNJ zZy#9|rMy|U=UtybfcvsF`Eky1C!cMfYvB?S*A(hBf69w9rpv?UGJKx7_N#iO$w|Yd z5*Icn3LMl3jek7zRoKnn;!%^=G#+p>pPMEx>J@b9)ZX9gPyKWkHC+I*}Y_~I~ zRTsUVm$P2nl;MX1!`CE>R_$3^JmXf$MIk%FB<81lXi|lJk*Q9TFP&RWz zyvx72Uw^%S|Mt}8bpN0G{PM1ye`^1G|DXAEh#mQ{TC@XG}fvbAx`|%o`_f&kd5% z;|M!?o|iFLc+tlXhm+T>HBmM9Gd>fcui7z7sLwtyf3s^({>j{8+HnqRbH;C zc5mOJ%5~XuirJnekG9{M!_M@eZd?9bJuw#zCWAEPUuVU+HN5qP*ONS$BlzeO-sq;`RNl+ett z?rtt@7q7DJo|C>L=IL*TMIM9>u?%UdYlTAA2M}#7E4tb~j;$szRy1va& zhH1Zd%X%SY|HrqV?X@zhAEnl>Jo5hN(U~7LTAnX$E8cwb z(8jRlHC{Qd{%pOfziCaz@>h={A9+to6}IC3xBmb6eLD4@>%U%qlJGx3&c0IZsTj|R z*Tu&rRuxV*eU{40<;u7%_sD{2iw|ccXFi;@+vIJM$Ha*opM~@%igfiI2wPr}e>}!L zL+9_FJuOM@o_j7f{btDX&ST8s^pgB{W@do-_l_M0n=khkUY}?t&gQkx|BsJn%bYuF zkCZ-peQE#l$M>fe2V7bblTh7P9kNsNu^N;1`n}U4LKHS|omT9*u`_+cvW4Fbqu5*i z)k<)0PE)L3xZvrPJn^YowiXv|9IbxPyMyyfz)ptEl@oufAOFPv?_Ry?{lC|)XFsb~ z)0f{9J8@+$%ZumY;iY?JPd|LPFeWbUc2pBz%k9p22V+(p|21RHJll<3 zLiZUJmp5%ancnnw-vRT8>ssz9n^_oDLl^bDJF$~rY34+=tY<84e{O9J{IT2fk>HA1 zt5vv8NzU8yaC+ndlNWcG#hr`JHR!*e$SA%nLyb+R{Ap=>8sh}UxIOc(MG9P4lJ-)? z`bx!aJMV7hpp>u(nSBn%6>B^uJ2Y+5N%yTdIh8T``%1$Oady)kvQKJCHUG!0HQoQ8 zN8rZkQpdWtbKjqKTYPRyYBhh)lCOVW8#>)G-Tpao?fGfTCh@FgpYG-p!xwyH`Rbd` zOd_xBsxWUjm}tGT@{~mP9+y`QBHBAA28Qjt8gb&p}(K#kc&f{`xBX`YE4$ zu*J#_>pdnPXRh16;CuHWBb5t3D|ac*UDadxNPsc)LEq#z&2F0tWM5Q1=i4mdBhdAB zdcnVU>Kv!rTJrlozg@$7EpU_4JBdp!2Hd~9&gY-Gv`k}>&O<&%LzaD8WVvfZc@MM~ z%DUZ^o%PCl!P?E&j)h03EZ{u2-m=$c=Hqj7Wjm(#HAF1S4VEa+Io9^FpJ|@0^Hwhk{wx*n=imE3(`@QLMc7?9X!lh@KCbTa zJn0==JHkZg?5clXx7XEr(=N-^*LOdv^3GViHsj!g^-n&&+`sz$wVvNhDeijQGgXB9 zlr-EI#LJ!9u+y-5qQz|Hm}T=0cHQQ=p~Ld!%njYL*ar_DrwJJp$y&|yOZVBKyK#PV z^prg!vu<2^b=Nmbc>BKPRR>jqY`3iAJ+tsbini~P6UrwvbI!lEE(&rh(MfqfW5Kbu z-sJMjj(#qRcJ7f0&kd>z*2$W5US_quU@nw*eqs8?jfwFhe;ZF|zF*0zxp>E}Rpm?W zObu5rf0DY`;j8|%t&?I{%G-`MJ=Z?>=6ZPgA_s1ru;|FO`>xGY@IHS_pGV`(ymVb9 zM&{E~RPDl6yxM747y95myL{TuKmHvx|G2p;WA1NyXVwrSx%AeuOI8aGUY|1~EU|p< z*|YkB>%T_FEnqUeDa*X6O4w}EYZ;z(*R3A?{r!FQ<~xGxUn&-tx*wiBjY~Ph{LqOl z+h!Yc8yUFroI84mJN5HBS+5C--ipH2qJC`0ONAtj7D+@nw{w|QoqsQL_)%se^?`MZ|CLv4(4Q_IzUPYP zwp&XL>b6arBb%$*DQPU&{=u;QUft`xA96CgH?7(-`^~IBj&fW7H*VmvyMFZNu?Gs@ zx396R3Oln|G{sfJRfVtfQ(ohd^NAlq`uuks=#OhW=TTr*?G^0XB9!51BvHe-)Sm79 zyra_-d5V@+Fs$b5YhEgFSVj0<<245xyDciy*!J%JF+pE0wIW-;etOxAw~zKktUTB` zWv9W4rCezTts0eY&1n8|vUKU8my7wHC#^h^w{(H%^3cr7wc3EAl`eqZ0w}8l8 zudODglk5Lj*DJ*T-+q6^x&Iq|XNHty8I+zaJ?$~s>11;z_mLU-=krV-tZ3|;%C*XQ z_pKK`-Qq%CGwl>spHT63KagCVyV;2I-n5OMZl>Npe6IDAgMx9w`y;n~Zm;3|H_uV0 zY0JWQ8+U$v?SHiO()@3g5hsM2YYwfbXk?qiYP0E#skYhAD{c(klfw*`-4zMf4QLQ^ zUhd?6YtgCng@<>vyp9R_op=AJ9Lw)t`HjZ+*4+&>md?~wD7{tw=Fx8T=}W#JH_?%} zQKE8Iiqo+0(DN;FU(^4TrVBKL$5q{2^mFy>?41_-52=+$L{C>yRp9@|pR#jvw(F9* zjmd3K|Ge3`CS3YsT-Ez{F}E-5?Cn=)I$1bxeIajK6=ME9vscS}#d$H8wa;E`@m(gh zbGzMF;ZK(i_n%yT->vst)x`Z}UW?A&x#j&O)NTFr{!h1#$8CGy8u`QQP}x_fd;dRl zE=lN|zGCOBHyO4|r_1eCaXeP&D+e7;Z9nkzi`$2qe?Ieh zZ?WJ1cjfe_YqRq~H^EiT=3bz_X~uaag;Q(J=5LEGTom^y!Q+Nd==_yhGq(DK?az)p zEwq@G;qi;q8QbK({y2SfQ|g0VRjV8$^SAXln=)V3EIavX(yI=URdG6Ef<6y7i>lo1 zi8%cz`)sq!it`KiM;}oPZe4YKc4_xFrlbeT>+0{Wy?!}(S~zEo)s3{hsR>#SWF1Uc zZTf%Kt3oqK|2mo*x{4v&~FCvc5lcCO6T z&+LjKDTia;Uas6bZ>x!1P*r&PpSJb8VRsSAUZe@M(|GlrxiPFDPf4$1qpB&ile^&ha)4$*M>Bn6&n4Q?MIPU#16Hz(4 zs)+CBHnJ*fDJ?B~{Bd%BLH{Q9wNgJG$CTvCU9T=EF4nvr-u}(_YUz$WJGL>nUsalV zcl{jUIpz7PN2=BJXSMdLhr>LPzbi9doUeJ-y=lAg@NeSMH>|V-JREy?w|ikRqNo(xw}01XH0!0+bh$iaP$_> z>f{SN$DIq-mmgl6#$)vGJWuP&z@Im7cK^DcDN$j_x;yE+^X(N=&Sb1A^Lw;refs%% zk^Fo4-UrSw+8w;|`KFckKL*=>J^e|0|0nM@DIVqrAK#WO5uUxRL}~WC(isP4oV<1} zr}YZM$1rP!OX<>EwT~{mSf+o)^M#4!Zyu3`W7`tP#6k&3TpHdrJa&e!D* zc3=K@)7O6sKOW8AcrMhD^GHB*)IX`vt(&eLS+9TogtEq4tBQF$`p)=Nr>&_!d*ZtJ zb+*^iB|3HIeq27%_Gagg^BdFG=bJ6d%l!PN^-cYugZI{TCOR0;c3coEJUx7R;hepD zWsA@3h_$)M^4oCrxzzl0$IAG*uf7Yen>~x`WNOv&s?XovFJ#lZURqz5U~G7-M)>*c zr2U+yism(5w?Ata8@HwQ=z(pk8@KPf?xt~D+~K4D`Tcdif6r*LKlG7XH2si8VDO@w zm1}-KvlM?~vQ%Z?}HT@AW>9~BOK{lVY|B@rjcNKzeIPygwU2tXD%(I^Y zUp!UTOyoY&B+wBu@kHeR4G%rP)?PAYIWqZ|iDTAYZYOs$``S-irhPm2u}>y@HV3k!+M_~#3q)AIGtH|o4r6faFIHFK`<-@|&k)6H?!Oo_tw zGh3%wzAt-v_4j;($_GOI`A^cWeV-_ja(H4xrC6qEef3f&<@R}5rXQRtjHa< zZ!!w^h@H6KT>rbx#ej=&r-sA&o zj%k8$ngqc2Pg&VoP*{M~V9TMMk!msA; zVMYZ8)7JfS<%0k2`|A7Cf%!{bo}W?aznJz;{=(<;AMjYe+3VAy5c5A}zt8vf$;`Gp z4A(Yfc!tboKKaarTXB+Y@>F*3r2sr{zvN zcXEpMJzstAG@s6U(f>2;_pVHH&icLIPTDoBzmNZiY{9F{L%Tbq)&8#Cn(%vlacO9N zqtE2(1{da!%(n`UR{vhQux8)0Ru(^%U=`+PzI)=|AK$$C{fV!?JTt29v|g9J#3)eR zans%B)R8bTt8F|QHHIxx;)#mP7?ufjUDGB#a$h5PJwviDZBaz|jEtq{DmRw< zhuleyh`rYHY?sx){Od2ic*)7^)4Kor*8Yi`Ppe-&@it_~J4fEU>BsaVV(S9@J?CE5 zb7#vx^YW#^!iTT8(vMnYh8wWHdsd~a`}tCFYH!V^AF2<0owoSd8Lxi5fAzWjX$y|N zdTBm+#l82k)zi1?dVjsMl6%6Gh!AfP*RP)>YecM`U-7-jp=6MFq-giqAB;_GlXLa9 zn;Qg9+-Kdetaj%!=Y6rwmmNInZPxguZv5PJ=39SC>DPT3GoK32|1qcLUGaP~7ImZV z4{V;MeOJ4=Nphd#k?ij$^1K|j{m_wB4zl0IDkjyIvcT_K*uG9{)rBi?=lJ<4T^$yFs_gA2F((sS#KF zQg6NQ1AAuGpSzd7#l^)t_wBF~x6Wr?=a#m7cJ%Kvf*ODKa|f@}`F1DGR73XWwy8AEwcqv=#_i7V?&<* z5B+&=`~K9(m1~b%wrS^H*FW<6&0b-S?`^@-C+7y(@y5jIzE!buO8fo&-Cg5^OHMzg4#eR0TenWh@UvxQ&pM47C8 zbKd5rPf5X{ZPKZ$v(9>THf?^o@aj?1Vi~O|x1#^Q_G^t`PgZ)pZ2njCPfuPZ-#(CC znvyLWxZC@h0jKq~`TMsW%{REO5>2C3;^d*N) z4oBFWelcs|^%)tPAGKu!nxuq&&lO%N6n$Xb83hq1?`=PCnz^bcx1UwznWIvuXV|k~ z)9&7vbDoCro%fl*FIYeAQ1-58U%fy3o-}4s4Cz0g!C$$LG0^|~^B)!AayAyzLR)uF ztrj@4opa8)64o^9gxGuXn!18BS#<06&-P=8S7PiYTkeB0%r(@#zMZfg>{^HECU%EL<-k0x>HU7^p|9JDU zw*89wD#p9r*nJD#>IzfVm@ir2ZEpJF{`AWF2yb2go;TVeKO*(E?BBQiuous~&Wwo_ zD<*bKZ59c5v2g!_@0I20@o^kmEpuv(4E#C|p135?Y*e`8#R8Xb-ghTeqI7zDcHd32 zw731PEX{Qz^Y=zUL-y6PZ~sVpTNWf}@_x6t!{3M{!tWTFZM9`@7#FCpzYaZK{r;_d z!~Mq`&GqH8RMJ^fWv+Z>k8_W9U%TddRM2G0Z!=vA{F%0$XZq+6)w<*uOKj6QuM@V< z1T6MDFFU*4^WCY}?^qb-y{(!ZY_Wf0uF+kUOQjiN%(cg&@_ho;g{^ER9us_EzgHz; zTbf!z(QAq8s!>e28fT9gtv>jyBEQFBdu04I->sX9FT3uDn}6;6TA%AO=knQ<(`GX% z>73GO)Bmp1T>9GcL+10GRf+R%a&F?VYISH=}FTI z6-!Ef+w#@>%kG?CbmyvP#$*{$PoudC*Rpn(e2kfXkx9a!+_=t9XmY`mx;rxG)h2Xa zI`<@OLgR5&)uzcJ7klT*w@$FB=sfS8HFL`1%u87x4n2SHPeP{EN48n!|2JjJSr>2R z)$adPtJxa==#fBlF&yKDOvcL9@2?Y66zI*Gb$D!i`B>hSH7w|?PP%U{>8NPf&R)^9PEYtcyh zbvf8{vP-}b*Sz`}eC=KHF7DLkU%q53t7ydkqZQ^+e5O}|)}P)Y&GK4#D#we0m=hAK z7fiUtKYQYV^z|}}tH1YY1(j>&GO6otTT<5N_iwYXjN&8bM;qr?XT+)aTa^@u)jG9X zvT0U?t2PNoE4Mz4Yg9^}9-Gjq`%Jl1tFDFN&xgHU3p4yrnS{;lHI)suU3ciVL{W3c z^>3|i3$v&1Qhk}@v`HxO%yYImGdm8KE~|ZLY*-R_b6#`HyQJq!oEAPey7GAab@NSe zvF!B+UWaq}zYLImtLvAVclpg4d5h#PDpgb7o;vcFp*c!-lYf~`aMNswS1#N+d-q>C z(|>CbyNi;pR(gOyZiLDW4WD1^^*^GI`N^w)P_UVMy6_O^`RD3J@%N?+=o%(_vd^8> zcx}IQvW=qi)z@;1#cfUfy`EP@Bs!)>y}lsMaePhBi_{HswoTgDep`0Rh8$+b#evgK z*S`KQZ_Fez`(wg~-)xd|Sd%rD?qJcryGEzHY*9(q>2^VG&fC#^dp?9sD>!s^+O`jh z-kmoRves}X21_4PmRoHZ)BoO~a_PrVr)-7h;)jiG?CSpl#s6=d8l!gZylkqTh-IU2 z&Ss`*A7l6JoAuZ~M^(E}ucAix1LL8`*&DYo9DN_2`TW_s6Sj4IySA<0E%Z;bP4a1( zURC_M@My=UDGziXKkr~#c7kX3?M7E?<%i}d zR@}ZP|Hr&U7qPqxB`5xM-DD`;5&PXD>)nokQ{U8jrm^i$KYwD8LS9$rbj7;IbFUX~ z2)lknsM#bqP-=U|oq5OOHeO1IT|awv{~^Q0%*lDbw`_2|ak6B?!VQ-0$K_YANZNWr z{63T6rg^ic8PBudyohN&&#!mN4w-^_|6`R_%nV%;blTf;*_5h6#`)*He!O*@XX3JK z-~DG&5w{;kMQKhwIc4s%YeLHYIlt=e*O^6Srps?D)h&NiT0VtASVhY=+wYD@t7*X- z?WoeO>>Y=TIm30<9QxYodL_~^e96~G$yao*C2i_WxR}d6X_DL0!)}W&YZr$-e!w?N zGVQu>*DZ-e-PId;w;Br6Z@Q|v@}4M*{kLDQz0E&b1kF%romhT+!YPBBGxGjS`Y}a6 zk?`)iKM5nVxP+b=PBo*bX=xrNO-xbFJ315bbH-eT)CLWVUh*K#xh^Uf2y5J!WSjBf z@`v3m;c2%QUr>x_E&cNP%%xZ7Y@)TUrr5w@+K$s`3qsmT)$S8H-fhA@;RdX^L68D{G=vibzgt~x9sen{eNwLzF556 zVRi7gj8k@(C2yH1*DvN!**#HWO?H@ld}{X0tC0+HJiJ%UX0B^vi!`-}4{hJRd%v>4 zZ>>uueZhD57Z~&@eY`TceZ|#tJZFCC-uz~CC@gBN*2LqpC;stRR?BixxBZ%(scew& zi%sv#dHWqWZs+xV*5zHvl=W(DbDvkww)wuRZftuIHgEqAVedSKx92;~qGO8l)GUZ*L@Q$*DSPil3w?G;Zi2`oW5_dYeO3TPVg~jOI@OotyX4cFjKSh z{rg#a_i(S@-OSKoU3;D_+h*@Rfp(FP29tktHWrD@UA-#VRX@MDYT45DElb{-?pN_V zV`#p6Sq$TZ%NO+6GCkj}KJH>@c#+e6>s0*(xuLID2VXwswzfn&VCSm^P0KcK+nU=^ zdpNF*!+y?-Kf(Iz{GLwUc_(neC%>XawQYU-qr;rHuecw(xqG&^%h`uD6OS(V{m{yZ zX=10NVE-lW)340MudRFG=XzT4o|E`*@q5?awSSwGeY*eK`t5nnlV;D*w5j>BDdtK~ zrp&=NebxCBe>1I3d;R*?$I=aZnD_ZN=!$=Kb#0hdV3JiKoRILe*1@@^V{6cxIKHxe zQ;pyMcE3M$|Nrm!smuNS&N}L8eJZH=vTDzcKP!~1&TC%RNnE0%{JO-)s6y}-<07xz zwE4oUfnL+5@mL!lidT`%{2OTc$yd3yLm^nnXW_wTdrRxw@4xRlw82ntLS*svzyELk z{+xb$(_rIiL?<-z@tCe!+^WA-Rl@nMDqQbxYjGQSX;c)NQuKv0&$=?ng zw@aP>|I+ibr|-VM`}<1OyLY#5{=Cg8^(VM?&wBHzJNGr1$1bx|&D(6*`+Iiy%^jt? zdN=&fw!8YiJic9VgQ4#s?Kc=l?ye$KS8j1}{0hWJ(h6frkSAt-AS}cX`hBc>ZJVXC|}b->)q$l*~MAlksn_ z_4}}$=dZI_78Y0cI?Y)Z_r3aBTTy)c{mN?dbB*ss)8@%6Ox=7^@?`?gJ;R=@YMf$? zto!>`ZZ|wv$7GmTV!NI7B9pr1xz+o+ixMyYcx)M@nDC(Z|Lj9TcRC&W<#zn}t?I>GOQg#(1+10DoUF4$@?Av~Pjs=JKeCv8Mv28lQCaaEr5~;* zPCGw1Eu(m(GEr`xqV@iMC5H)d)9>U=yJVqXcJ}X9QI9wJ_tG=gOHXRO%zto0Tu1yj z6Ah04)%r~N_Za`~`%)S^|90NCY`+g@&YkmcT6A1U_J_rWWp4uJ85>@gbl+=MC3^jX z5qEF?>!0s-TxXppy^h`M;0~X_Ovm$|-fq9Ywf^hu|MgQQP0f{2QirTTp-ptfyaRV0@b3F^>G<25&+U`yf1UsT@x{x)*IbvD zeZD&3@$Zm>!jr$wGTwiFquR&2JiP2bzh_O|p6P3PcWeCLQ}$b~@B1x#?dSF{0)&yQNg=k=#~W!{ne8L-^> ztk{dW_PsB)rmR}{_kER?-rqGVZu*_RWL~k_%{`&HYo_QMmir3Vm_kkRTo!*nbjh8S zU8Q&4|7%|z-)XM%)m^ms=;rr@w}rn<_IEvRd*CSBu`8TM_INt-k$ww#+zj}n^GU2d1mO;^@+7aBIkpN$fZ>Y@xjNx{7Lg=3eWz{yhI|k zgfL9oYZn>U z_lKQQvMc+vvhe+hrwLn_jZ$|0*Wdev^Y@wOcIozii|v#7~*2djC zw&hsizs0rh)-2_B zsqMdm`&xS2lm5OIYOcLk`MlOS#aYn!*>&E%jOWhlFR~1MdPKEGoYALAv8+|+M)usq zFPrq$`gm^@ZtrPIJltNk^`Z=~(bL+W+Ui+VCOWqk=5ITawX}KGiT{_m&0UnN)EPdt zUtyN`*7>{Vf0*h7-nC81e2%^k_G?^vD#-l($ITsQCv91^$7bEaHRt?i`gvBVnFM&X z*Yx|@T-j;7&fXy}*+un-WZ+bVcbAfsZx~EDF+r?hw%sk8Z28(x{cEhY-SDlvv%<*X z%htSualERpbImFRxNM_%FK`@Oo3V!Rp%vHSHolzQA1sphsDAc-aUfmfp47vQ3i+Np zXFF}~)7XCayn)ZXlk47=dv3WXlg+>J?8ApwHI^O<*{a&v{?GP<$i~p!ulYGL+L}WR zE?wroT&G^wyn+4QZM6@|%a{(!@|2?FXE0sCkzD_eJ zGbvul!nyS1fyJ636DGV`s>(d;%)b+NC*5zH8*qG6vc#l>-QU0Tgip_C;LiHGUAyLs z;1>Cf?APDy)hHhhM*t$u8Y0q^+sI3bu&zV@0(-)H-9s>|G)X$hl{FKR>#sezx3OpeC%F@ zy3_oG@a*tc|L*+!`nO_k`+fgD_218~|692C*WLF88~o+C`R!hAwbJ_8OA9TrZ`b*GRptSY9l={IbiVdFK8{PVb$5*n~m6L(jphH{+S5g^8SO-23O( zF1|J8{V~_HY4Te0`Zx0CYD@vg9txVAx^dfYp7&Cg^6vjF?a~kbS!vXqn(Ni`Wc9Qc zKgx3w{=Z8ya1Z6XJ)=&;%QE1it8%|B%Px+W!8fj7e^);Ji%0Crca@dBab=3Z(aCmG z!)AQRW#I~1;lcRhP4)a5^%B1R?BsI4`CHTH*X*3F$RF*-+9Xwb!GgQe`(di2=&{;E z2KSHtn!0!opY1Nj1rv2`L+1WW*SVDNr*eg)t;61bg70V6w5b&OF8i=5$U3-TQ*Mj$ z@|R{D({DXJtJV>>Y{h|qtpWT_*P{}>8>Tv(o}k_zwmigV-3yy5YrcLu@FV6zZ@|h9 zhHe#`L_5pKi?8?(1bGQO5$J7d%zU{}dsFLcHw&ZhW_ejBV^$mp54mDqX|tpM?YC)v zTkXH9zrFXix>mR3wGyM$BB?nKyRrjWmY&)2aB^y9Zq2cYk$zr>)M{{4&ne&@5DdP9I<^_Fn8pbXc_sFu6puLUK&LcX}{ zcyQ~}*PZ_l$E9fPN?UQ)<;?22pBJB!U&^f_-en`|%Bh(y+p4(grC?*pjGtEXr+)l$ z`Mbk6pV|!%pGUdus7VlRI8yh+$F=`~3uEYoi5&vJ(>?Z0T;l~=Ir*X7%1mWssiH;;s!rOOgxUKhOU1%>3Wg`t0Y9hnzh^maNdp?Y{nA@U28=#Ye}-vrKYdNIkSl zJXb4uXj8LBWd4dp8k{MMZXG+BFgyC^ym`AA3MyYd?RUTN|Fr%8;?*DbJN5H2#oY~` zbN>`)18>7&&h`7)Tkj}*pJDs{P3gb;e}1jM#UJ-KxBBr{^W2=@YhIRptWxhU(plrM zCa~@nL(a!@ldkhzl6YtSyxCd5QDD=F@3&qD>wbUbwyE zyxdiX--%MTl_!|YZ>?|B>YPy{e%W=Z-h@Ow$G)C-^K%uFKSk|1BDlCja*@1%OHUA= z?J1jm*S0CTz83zGw(OLPfRDk^jJIk*Le5qWD|cUN^z|-EdAjqVWRd6Rl2y|kt2)27 z?Cn~}&HfeFW?nxve`fE(^A-`_i7RGrYrDH$ig&SeiTIr5@9XZ|tNvikwm9M9m2~5) zGh&`{9kZ_anb5W9aP)=lT~jrAyLcP|*KKuDY<_-qLcYjO)hKcC;N8CLY@vtCeAriR z2dwPe%e$IF%e7VMnkXzA;2v%siG%QpJcg6S(1?K-3G8szyo#9aJXwr}gRSpCH> z11o|9mG7vZ|El5edZDv)_lYG2(oVBJG6(KIG;L~g`K!7QDH3eoUmL}$W$o^Lpd|85 z%GFYDyVBChU5iScTd%)mJQ8Cla`nRG;|}jvnrz(2JJ0dWb+)&8-`8ANkTfg8TlS@L z|BE9!KUMdN@)!TAh@PsD_A{}{{LQ&%r?UMcb(<=6Z7zApvE(3GAa zHzZli?u4Jj_E)iQ{*>A6`E%hLi|oXvf(=4F|FvIpc3l$H>kRziQo705t4q;iEZx4Un8nil zv-4Z!9gGZ|21c__-u^9jd;9*6rN0k;-?#hOpTJk0Q3dlBUfU^by6f{*4|NxgdkGeo zH*B3%ox(ZCLFw3xo16>tr%MWdu2K2A&`{zEql3yh)@y1GyEW$;x$IIad0qT>!Vw{O#WE_Z#n&y<%8$abwZW$S;3uYYVu0H$^hDXv_*fnHy-& z9>OBa=n=|vDNEws)q;1;=^NktisY%Z-!%Kn4nx5Pg^L>Yud(KmNmlAE~p_q?f6x(6pZ{r=dPGqJnWt%Uin)~>|UC;S{|t=eGj zy6~V*uJWJslgpL`X2o2ubP7>Db>c^PVhNilgS(lVOELdv^~#kj)7H*Z3NXA?vH7X_ zB6p^gdLDl1sb7zjivP%EoZuw*T>SA?{k?w{)qYdI^W%TzlRw{O7f9{SO8Xr>k+q$- z^up?bpJ}1bw&$-scE9>}{rBD9p3TmGm^x85!E*)M#gwk52c?tl_+~EA4dzRn^pTx? z=I@=n&vwgJbmz#Qy~1&g(YG|<+fGA4i{*;#{0*$m&mLF2zVJKlvr5&!`$_-%&Az|s zoZSET3d@HZGpgoXkbP!*{on5&SI^wHFMAooIJwUE~ha<@w4dOeZhC9 z|KyIv#2(a>D23_tYoeCa>gP?JNn1X*2h6_i*D@KDe%( zIVGmN;n>!u;LtbAZ1OG`D1@`zHt4ba;(c&oZ}9AsN=M^c|1CYU;DOZZ*H_JolRTxX zF2^Uknf@-=ozTiIQ@efr;?CaohV|vn?=E8vtG_3rv_X$%VuJl<_Q&Jo=x=#yoA;;{dVz<|Z> zyTY=+Dy)~kdGzmQgH0C2b)^BHeA(8OIGY=$-1Ii)6pZ>lZJYLq8^1K-mwR5>oM@k^ zu!N;T;9+RhzL}d}vj-ek%q!da>}As5-e8%TyZgQ!{_^gFsCW2@Wv5sg99w=J;MEk~ zy@Yl8;==eB{9%=nKHGo1`S^1N%aK%H_dDDI;;A!pF5CF4PuRUG?2Jr6YKB#aXy?PN z4{n{FzJ7Cqe@a-lR{dY>mCQq^W0>NaKP~zVCCU${Edn*<*BKIp0N> z4QB3^89X9Im3QVJz4c{Tl-$xAYOjQT2zk7`%qV&D;Wl>TTGKH3-#3gC|J46V-|ut2 z{`iy+TKcoq7nSYNHK@3EUGYHt<)3F~_rET)w6VQ=WBa~;S0&zjJ|>+nyFn*>A1U9_?&)lM_xEkJvE-8GyqoWS3BG!8c|-Nav(DdM9oi%Ke8G>I z#R8YNC><2Nb!^tJbMx*L9e;S}%4xZm)_QYJcJQVjZkc+4`_N)O!od}qm(SbI zF24SA!keUgv*YF0axFK$-u&J2f#f8<{3kSv@qiVXSuf% z>^~XYJ99Sty5Yi|mnJPR*(Rs!BhSG$JtW}OB(`KOBM$HBk0#{4{qds2)M1X*4F`oY zm-ab6JSgyKlPt%2F4@KTKdYxYi%z+^vhMat?RSPgGmUd+-gnz4m@xScCu+Wbft@+q(S|pysoO&vTBqCo=qcvxKiVVE z=(g5=|1xzyKg$*Aj#nDzelOVJUa~H^{j2zAx%Mq(?^X56Pb?R6G2QcX!gc$0&$FA> z)*1TRZFcH)U9je3dXa5Y@7mW5?7>TTvL8M_RS;bzsKC;c(EfGZwY>&R9UjFpLOoUs z`5i>(I}3;!R@B#}&&>$^wbgUS5AFQY>MeI~-ITP_mXqD67#Ny+C?{*CwA)GrTLuG1 zJxAWguzs!5F(tl|<=ZY(OyeEIX7PtTCwBhgFAM6kF^@DWx zWKZp%`PHLIGiuSE@`G_!3j1qcpV;?z>-yWP*Y6Sf{IalCOZ+Y?|AOb6Px8*v;J#LI z-rDW)598F@&U;cm%56P)2GS~wPZu??9ly8fO|esp=B*Ix^~rxfKbh=*>*GmH&$ctK z*N#O??obztA?B#ZPFEzLN_rLvJW%ml-2HrGM{=4CQLCjuTBiqe& z=brvlu71Dwd*$8Y{&g?bEWMb{(VA)Dq7$;I+t&Tc7M`e&J!ADSGs=VZyuV9ndF7W&K%esWIC#I#Up zhIZ43e~Z-i&6;(xWS(=g!1;UHzj@qkm&w1oA@|*4k*eWYZ__92OXT#VPFlDAObTXq z4KESYl8)NXH?LOVOK4{0<@w9D*1vhk@ZixWrfiX=e#cFgd@)(l!>%mf;$W)xDgA`k z@lQ&hE=!nZgc&mhc*>mqy7DOlLquDe`{Fa_d6l}b!z;AogDuOvYufyW z(m$I_g6x z`mPwlVG`_KQobN=s_S3l!f9_k10QMq~b@64q; zF5c+iXWY|v{_DEQ%inzX{_1;N zqqlC|+fMa&Yk$5k_ia15Q)l)|jS8WCb;VDGR>@$jZWOT({t5TpU+fS;JaMQJow3NzaKdzZdU4@>$6)I*15ua$0iE*?kM4-qjD8|J zxA648=w<(|Ta=5R@Yc2H(5Sxa{*^(mi^;n2jl{hz_t`It>pqMAytK}BV*36bgMUga z^Ihg1+y8W>u=eXoYG3_k?C6u&YIDsvJG1}Vgy(hp&%Zxcq_i|q&Bdwg`WHVLkC3(n ze@|)gMlx7eTu83}aN_szTUsW*e9jh+8(G$JSR9Ey@QRmTx2V?kjIQ;fe_wP@2E`ax zNnd=mT~XeCqYtNL+S7#(zcwXk{+f6(djm`Gg@vxOlWbiVO?W)*_a5o>dW)4W&fj-U zVV0cy{2L#$LbiQQk-zi5z*Nuldc^&eLg)DJ)t{g6?v~N>b!QvzoZl?<(P7`+7dBs? z?B$4mUv_Wd$4l$hpZK1^EYRmAzW=%D*-gtzZe7|Tzjpt%D(i@u8B^DBsqA^Yx38<8L3%*#39q>;AT^*@w}zHT!lzqVQ*xJD>mmGJnIqzOLT%U%tA)T2H;VEC~&d zh1O;^)-N|$HQDCQrOVE#3zwfQ7QQRV-8hZ^!Y0|$UI&eyw>PW&{q4SP+57id^y)-= zH`9|$@A}I_Y^t|x?zj0JvgPEpJ zt8aU67Q8J~2)$ZZ{O6hU6^<7jmd4_bSAV#Wz>y&1^q?kW`T5Ugi$D9NqzByV^-7zx z-Lq`l1S7uUv(5b-O-lv&#lCUqJn`*xwN>7-w_@|$9bL6jF%{GP<(K}~?!0pGWY4h` z2Tz;mZ%te*z9r&rP~A(`6AD^uTub<;z0a|HqEeg__$}+Cn9J zW9FxQSrpy!evgsz^>{hm`_D8vB)>3Tl~lV{?rQqLHK&i&vIk`vAUvM@nX=2u&=rkNmL^nO*h zcCP3irMtl^!o4?bR4#ff)1o$M!SsOGb@Lw0oe@>BRcps*cmD9hdyY@twomVY?+!x& znY)Hk*OYmgDrUYCNXYdl-n+l4E%!|5jdg5aD|mzNZ`*#qYW`%I)RHHOdVwc}jo~h&7_x6jn{hX;)%nqU=5=39)1Rl8JwLbh>-*1ZN;uQ%pFQMcIF)c{>c7Qb z#3ofd7oDJ+C{w;OZJA@p%49y?t!$1bB@ajy2Lx#NzEzK3EaKEWIa#w-)k0k`c1x|) zGZx-|pU$eSN?unkene!Uq=tF-($7<5Ic{EVm}sO^pWM=%>Bv^GIy{^8`O{NZ9*Ve} z_IkzSkSWAt{Hjx9ZNrAP*v{Y0TX$L3GUV|vtjOi%j`R1)f9VhoaoFHA`AO{=Rs!l7Ufh zmZ>EF!eV<7cLfVQiQt#*S=B|y=j`2UU4P!d#yR+z)Tas6vUV9K|9-8#x4wP-_JtKn zPYpDJVzleeId9OK{J6T1*U#=sNDGN!FeD4fCfZ@D|^h__$ZiFSmP{zKg<)SOfR}rSaQqx79zB`<#C! zC%|garafmBoKG)isGc6a*|z4#zLknRrpo_hja*s7rHaq8q!${?%)MJK<1HDganx(} zCAJ^+bG#qb*X;1E$l0UNvEkDn?-NU(KA6q;qGR)e@Q9n4MhA1ax9zX~ckbK%9be4X ztz>`Ayp-=^CVSA|H=HM~ewcUn^Z#qt_odyh|7!j1-S6p!+wD$8^6tF*qI!O;7~_R+ z?<6#i*xHoL+m-Y9%(>5Z8A5))Hf~7rID7E7u(!09x=rcVbHDRvFMIzpK~r7v-FN;3 zgX@2H?%Ba}^Ki(8>{ng7mvWu$nRqKFO+01FwPEAt)t}9a&lhs*t`ol=b@5NvCa&1l zl9`hq+K4{?w6bKW^f`^6rOGpkH{~)gx*cEeVDCG}^@7dk>z^%u!*2iQ9aq}D4Qp~zf!27e--EvPpvp;iaQobcPX=ydflQf&WGjm0pIpZX*vXu7rl>WOHvVPCP zV9%Cy1}j-+%QBvRuyS{MJjv4gWH$(sz23H?w_sNv^GDfx$6C?D=VI8oo<)<=*b@) zRb{tvMvq9`(u>VPa-aTo#dHYV+Lf5I>_fUz%OAd}HAiPv`R<=xoUa{a7UuTVe<_D@ zv1!fzr}vbe+?ETrV|FyM7Iy0UWqL@OyLs!nz1q<}1tF30_rt9hH0I1+xrt@z`m;|Q zT{EWqfA=&b;-cr->aMWmE+MXSBwcq|g{{z(Hn5rel}-2Pg{@~jSIjn zE&FUdd6_zewm2+1^Kscp2I(808_%inO^FIU)T-^iLU4(SzNB{LS=~#Lzqxxu=W>Wu zD7P6TYK*H{%${$|}ZpNFrHneEnH&wsJ+#gZ3KT_>7N zysmlv;-o8!w=`NE>D~MK=shv96JaMNMt_NWuU@FXef#+v!pG$~jTG#HyUn&_>ngc1 ziu|axHoOqOd*;bi`cX_L=H{OiF85pcL?ShS)pbhoHin*wv%fa_tr6aSt?j~6j*8%S zx^BVE_6c8REuM0gQE|Pk?Y%WjnU!oIT-F?IHyKkt=~b(j{r)yrRO0JCroi^N3G!j- zF7@;MzjB}dFJ4z?`Y$~3PqV_ZgVuK@yBTFD8@Qiul$+gYaWSN5$$S2|-|O~1Ed3V~ zoIgoqLF3E$CKp_Dl zZ<3trvC+b_;$X(hd!M$cC7j;(d+q&KN7l_U>^|sil-zczwf1fH|JJ?V4{BcvW`12N zcX#vIlXrKp?Z3bB&Z{twi%XbxzEi!+k~`_>rNzm=zv}3|Is4x1fVD^!3$LKn67j|R zxvsC-D4o8rvEMB$@4;2pjitH#yBpgwf6qQ!gGu!6Ct>R@j zGHUzlrZl;Tthi9@UXm#PG;HIv>~&?g)@E0J)tjmndFYto{G_m7u#Vza@N>*34(Z2EO{dQaIFg@&DvJ{jmOJF1)5vuO6? zcRioVTWfpIXKLz8%)iq)DJ?4djr)1)?*S!y(oBQ4zn^#OW}~beUICCJ^Xxq z*QT9|f2=v>S^T2Z@PpN&%krl}qg&g1PF5wHYk&U6E#o{#_a&oqQ~IUKy8Q}sl_v03 z&Qam|GD|x}?cDw+o8~uWhAm+%%4FG=^n5YT1;+Dw-;!r}O;>l5l0Gf|F#b&-i}->( z@dhilcPW+X-fg`L3Ol44lS5A2zg+v{wN<*ZSI1ud<2{W@fs^CQ*cnW>T>2%W#Q!?| zorqxM*^f(w1-=WmeiDlG?@Y4px_Mw-{F_TR#EO61IVZ1>wfUaR+CVpnjSH2-H!tG; zrRn!I&T7#@t|x{`spX5f=6%kZ_@L?McOUbU|L!kHX%qIk@gsH8h7C_RE-s(cF5(rH zSX^~$^`;%=ua&pO_C7vhbAQR)Hf_=WI=OdhTecc#u%0QBIH1_RN=8FHvGK_=8P-<4 z<2$A)%IG$JW$$s>ve1X^^CYLfb4ACh-T$tdE}YwMHuuA|1v2;kerW%8?eF^;r>;%X zn6dLtu2xKi(VjY~`ZbMvt{FIA>vWtJH^pX)V$p23ZCmqFlG81IiQV&N-f`-=<%Hx9 zDVLQ^y;;p%%bnb$R-9PE5irTjwQk4e6WWgL|1N0fLq{r%>0SxHIC`+a}c+5Y*^sLJS>*BPm` z@r_sHce7{fj4On{+eNNF9h^~IN?YN|vVRv#|sD0o?%sj)_%weHP=(Dgg_ z#ihQPTh4sIW^3K~yXtw$r;eEKwmJ0qe^2dC{eLkgKRoP9+ zXe!a%6Lcv$`^Nw4`#yfn`P97moY&N4`+n*+cE1bU`*r^B6Ppc6lrH(**}TF>@Q41+ zcN-k1K2KNN=(me?zdrMF)%fr#6CK9zU@2D3o=m5HzKUy;Wpm%(IBx$bSkP*I1)Gze z*gR`qYo!ZpZf<_|^VaWvw{`X}%`-N^GXf_x%&pJee!KMjysp3D;=W&ZIq2Fd`Sh%e zY`eU9b^OWAw}etOX0>m6aALuhtW^)iH!KlSyuQ+tHNec;p|x<{uksH&{4Rbix*dOg zf%oH3)^n1#jJmy#%5hz~UDYA|EOndX_e@FI(1hg$icGxhIw^46aBJ$E-jV1(W)ltexlgW`8%Um6&R`{B%15qrH-y5f@kT+~=I9 zB(4W8_IcB+Q9mm{|NgBH$1iDLmr8wZIrXvV>vNser|m8reSKBidBM^nQg7GGx74tR zA5kryn*08kg{!-jX6WNv+x576Zfw!Y_i@{za^T*3dDojWznA}bu$O;jxI$Xa^$&xlXEYzeEv3;?qiRJD8*Xy22e|uHF_vHC#HMw@- z7aROFx?R*NpWF0r2K3i6Is;~cD6Z<6oWmZe}`?UDBeYE{0xb$R)o{EA0!NmgW zzHi(APar+W>R9lW+m91j-cLFHI$-{{jKdc{UaXqy{5rAqixflD{q@*)<*Jjh2w*>*ET&H{z8vk+s{grp@@iP|&p1+#~ zZw3l?9QyOF?t|CGJxkk-bz5#p?z;c)`27vP`|EaByQtkvT5BG?<&<^%jt2*-BCknU z9eRHFu!fa}UWc&N*R6l@>hGFWF}tj1$iDJ?^2*xO{6&-Z#8(-!$cSENRV|WzXf6@; zR99a7#>(d}H_w~>m*G;=)`$0lW~aTl?*H_{w1=B#uRNM9y(jv~2a|PM`BG#gBb#`P zgT3z^TGyWG;r{;4w=xg8B_HSQdN$9aqwB*WMWzX}eU<0S>FnLGql>4pykF^u;K!iM z{E90KW~SMqi(D>Enf>Hn;nhX|8|ExJxImlf;rX}aXV>jHW_SDZt6ARcaZ_y9mbwWP zmAlN-W}M<>^4w9xM?8Szoxsu?h3Z@NC$XNKVK=Wj;Kxno1A(47r>~rya=y~P%f0^` zhfrGe&&l(*oUeV@{q6bxNBRbD_HQpNS`f5X@Yp=V-%jaXvTCANZ?3WY{Mhu+)5QPp zYoA+Re8|6`BU>O&b>DTi3wQYDG-yvLoYon)Kjp~#?7nF`XaC$bH*a24@2Oyk-)l^Q z)*VbbwR^F)$~*O<)3=4+DSTHuofx1g9H`wFdhE+i&U^c(^6aX7-x*sg5SLvrL+aV= zEo$~#=I8dVW8E?Tb2(!iFY}R839tK>S${h;Ilkk>%8nX#)z*)!d(H0i{hQ`<=5WQE zYv&inGvEAHS@%eH%EKRa6M3qCCfHw_px&Q!Z&&T_0RJuP*hPJ>?6cohaerNHMEDk) z@aXu>f=8VAlivq)wi?H+?Du{p7Zd%V>xR$jC%f+S9Or$-++eiqM#fX;o2FcQZ7JpT9=1M$;4p2oRiB+-~;gN+M6M@w<~xAE)e9 zpC*5-BE2WAgiF@`oc}q)y^hzMg6>JyYZa+iQT=g zn{tZX0{+-kpMK66*st2Ye#@T|GrlS;-X-;Fsg7CMGM^)pcq+7FgbU;v^sJNEuGdxz z&E-4zU7&H}O?CUfzu$1j|Iz#%Z2$Rq)7$+z%FmZJpM6oeu`cDy@A$p(Bx$C)s8&tjmzinN`D^rOI+0QNppq8 zt@hfr@9RIERDbi2U4BM!-lJbq-oC~nw!8~mRFdbsZ?5Efckq`@{{?T3_3>}-Z@pjn zy>`Oi72#e|At&$m6wjN;xRhIWonpk_dHZhb9x?wXHBD;$y?x8I_T1@ASz}``y`L{>IF$h|@XtqP1;@We;16 z_@-y-)35C}mN-%9Zt>>Jx}pcZjT;`Hc_5dhwquX;F20Mu%=Yrh89Zg3tnxU1^Xc=w z&DO?8ZojztG0O8`i&9vFP?*+E}EP z|Nf2X8Q&RgzdGMo8+?5(d1$rWpJn$p#d-U;)unDTo!Vc;B%pHfcm9{0iyklTTzc4j zKH}+uD=hUJT2-%!r7l*H3iN+A<)nxF7M|7Z<KTUM9a@3vsy6M{9(>*UIXmQ_O=ay}{e)XZc zguAbcPB|rTJ^W z?0vHLP5FmUNqNp16%Bv>X8C-3dq(g2?~dT>KO+AHzge%;cR}#pSz(2ZE+q%QozPtz z{Afk^j72N%U4ED+AW?q(y5XB+C)ZqjucWt@P5;4*A2ayeTz^=-Kgy(X=C=AG+fCA+ z4w=54xMHck{$;nqS#z@!#ThPTZ#nV#+11@`LU*o8yb)nyPk8KBv!iZp{1&M`k;xnt zS1+_5y8hVc+R@+*7j|ZupW_ZHb+vH%Gp|N=k>?EILpw!SkNDZ&_dUYEv_H-El*T#U zIVPKmRkCNLHp=h@WnI*&HQah|oimHYmctj{Dl~;{i`_oQ^26i*I}8~ZPDFMwH8o1U zoxbemz0Yk&CJSinkvmYfsj#D0V)e}9pWU<9=%p|#+J6x}+q^A1@5RN%?wtoNv*$El z7p#&z<-->uv#;dTGLw6{zuqu6Y!Otve4sy0-0$)oRHo=X$v?>yi1US{HwhPC?kU7nMUzrMfy{k^ECUYo=wuop8VRX@`x zzk8fz*V!zEd3{_{Vhw(?R%Kzh3eBi|cOdyU~yNuHIYE-~6bk(De3PYxi$6&)41B_vf?y=Bj_s&-}b@ z;uV{*vwn)_64fht()vAW_NzDkxpsZdhwrx4pL@4|h^tDosP;-Vm=vz5e5`m$v8`zE z(R0=ptMBi~*ZqDbJ#9*6e(3QPQ%a;B?PmG(Dd*j;jivK?T{dl<5`Nc&;n}%!=k(rw zxz=f0Qy~`9Fys8gyCRmNSEBXr@2fp6XH(;{PH)kS2(=TEWnIkOpR6~ooB66|$L(nk z?sjNiwLjq0Cvx!4T8F>Q-|x46!hBh*zDd*7=q8hu=I62ZOxlTyLFkoqU%? zP5b}3&kyhK=Irx#v0hsKW6yb83#)H!o_q{f3^zZM?0SFx%H%8O?mX=(YMhkr*6=BY zPg8@PQMj{z-Tm}8#hG^3ex8}dYxbzkCNF@iVR?yHuK43@)A+lr?DO8v<8oVSV(QSe zbmPMId@)O#@9U;t6`pX=_weO!FE!(03&Sj3kMP%bguIC7Ogqc`Z0<<|w~Ah$9}@oj zlaCjOELQhhbp1$P*&NGwpM|9y+m(ve#>{YvnS5U1`$9FlLnc-qWtG=>9+|zsvC6Of z$!8%o9?{H~e;<}F{I_`9v`jul3Fam~)`x6)R-CG}wYAgQxJ%zkPidAs5w~~lx(Rjc z(m~fG{xrUR?dPtF>!VAzfAu}Aw|U^X za(3)V{m6>Hb6#DWU}YpNYHP1vym+(i=P$t%h4=5-!{=(B|K6>4+vyi|-xu!v^Xd4T z)_&W3|9iXB^=m&Zy?WVp+s4XCX>2BvTc;iT{KL;>`HGyQiJjgW8~L|(IUZ26%35$K zVM2|r!P8A&&#$YpzozhNMXcTA!-@xtZ?F9+xx4&zWcBZd->*+;YERZrdi(#d{Wtmb zZSShio_*)@Gh%=9ZchjFX+c_q;}CYg^zFhnJdX zj(n(JEw-P-WBaYISAWeFTsb3eZPlkaWwG3OG5=K$eUJ4&X%QVVB_xbBLyb#mPjFq| z`iqUQf@SVPSs#AGSeYyK$?FQE?XV+N&6TZCUb#nRNd6ANH)K`}U z%bBw?T=7cnk#`PRKJR|swc?hBJ!|sMa{330+dX?}Q2Ms(RMDAk)8ON__J7XZliL^i zeARTGphz*zb5(P@j3sW($&8KqZqh0D=@++c>XVSp8*>Gw^AyO~)Wii{Uev0==iIn3 z+qrx@)3vStZ`;00e_wm+Ue*8j-CY|)R$M&4`{GKeMJzF1;tSu3y-jScjIrhnc>Q$V z_V)j!`5W}trYo87oe<~!7rLNbSFwOGKjJ6w9DofjUbMDA!NjdUYZdGWL zd`xia$>6K!KmM#Oxa{OscPFtK z&DCr5I(F@`vyOejd&{mHEYOOcBKh_G{hWtC>win%kFfn8{`T$mce6W|3SBkW;ktOI z_ng_&{)nAgr)$&B;g>~mMttO|I*@>!pkK;6zcMRNIE}R!Si_4 z<=eG7PEP|_L(4qA$-dFOUMcf&o|Lhs!MVtlQ>X0`yng7C)#IJtwy-d!SwBd4`KM=> zo+U(z1(?WOJ6{TH2b|ytGqjZX5IV!VYh_tZKG$MFC6Q>UsEiu z2;m7l^4ez0ZkKyyXS26m+nc78`n_T@%XGfZo?6Gs`ID7v&#dOz{8ZAf|JMY=zF&D$ zH@V9H^ITEa&1P}Blxf*15$3aDdA_QvqZ}Oy8G7PG;%8l7Jo9tLVV?XQA7(A*TzFIC z^W%B#AM1a`N&I)`KmRD$X4R9;Qf1la{sqskx%uyd{J*BZTlasP&ZH6(6XW)a?O4*` zsLaynH!nMvWv6!RNiF4a_#mWE%yqcMroQ{vyAMAuHLQ0_of)qGepYI-X)x>0a;b_C z&m-&fvgAw)kqbFORlh_C zYyR_N(Ej|&bN3Jb%irfc;jD--|Ke-R&$&Kr?Vr*y(D}@(CPVUP#SQDyp{OqoN^^04L&#~Jd4A$Hs7RHlO#doKB(!+nVHa)v&{a-eX z^}$1yz!-nWNVWf4I^HR92~O-VdRnK&^=Px)1Bb8IZY>KpNVQr2djERyupq{-ljQ}i z<=58zU3gdKbNyuthLvk2^}ZEM=HFYG7_}~V=k5s$nngd^Ts*X?b4&P&D|&0bzmC6e zdNy-K0fR1|beg*|%M97OK9!IAOw3hwTyg0S77AvS71_tf{P6nw=H{q{^EsEuC9afU zKlAV5hd`azUtijun4lIlwWwcy;U3XAH`XJm8;-V4m@QCwjYB_R9$&|zlq~1p^P|q* zVmPoY(znA(;D_MeWCep?d*`na>{$KN>f5sCccp_hLa%LKFRX0CVDTjENJJvf&xki> z`goN;T~bHOSZdTzg8{U<94Av^V0Nh zEB*K9)W7Nf*Zyt$|8McU559kR=)5MjX4(6d=G&tVPYbr~usXzjL?e@(%X`v(sizUo z8QW&e7QXyK;hgSIBi==fZIye9PE0r7JV$ZDffH6n*`)&dQ%^nG%@Sgevy4S!?ON|D zRfew_&U<%tuz6g!vn^s}Eal&MGtcbxuiQ7c57S9jr2LU+~;jG`HpYQQ~bR-NY8rTvEQ9GUXmeP-uG&lLf1zZ3O#dZ`utsI zp?k)S8=sXOs~5g8D(}+}lBzs7`}p1ij0X~QbEC|7w5PmRo2w!aVLWT2j_t2&hd({K zdZ9Z#py-HK_QMck4%SOtX~B-69J6qxERELEKt^gET= zqBHx(gIg|ad9{;kf6mc)DI51OvfSr0kIm7?U;jJ)+miP{{gi`G$I^_~r4xw%&or2oKAT6v9e3-$NP(XSJg_6ZNBz)wbSB>^*T}? zoDcdQ)hS&e@bAODMQfH!N%3S>Ql4A+dyk*-RMSTxi<=ZyCmeZ@7qw@a_pS8m@9azk zMtoe^i`Tw0_TS(0+ple{M^(r)$s)Oq-Y*9xFNwI2qY)Qu&1k?IA?tMg&Fj0T53BGQ z73-)kuD`nDyP3wGKYs6ayPi~H6xsi|=<7SXnhy(A?-V@V5cio|zWUt16Y@Wuzm@;L z7vJqyF1x^`MzPt-Y_i5VCbv<=6?LRbC=g^)+5)wy>2pe-Yea-%<|;= zt2JZq`^~OI%JIg%S(td~ftOri#8FP&q z4?RyvO}^3f-oDMpBV)S5+K;=Jh0W(_-MCHq07HAq{(29i`FkF1Irp*lMbYujwz{cr z>RR{RRe758@aiLL0l(Q2Oz-&_I{%c<%xSoGx5|sJS8sJsZ`1I7Cpa}}%B#wC_KfPHPES7T3s!A^w{A=3 z?DE8vW%JjteKnr{Ys%lb`#+!V*{5JDbnoo1pT|GvPFi>4WZs3B3Og(Pf0*j;(R`8o zKJFFY#L1mqB5RYkUkqMYko53L%VmaXPv%G5kE^^YyM@u={q;Hfp1=BA-QTzUV(s~3 zHfG8Oalhx!d-kByefOhn8(P+V=1hpVSkK(XwLr7z-^JViHQ0Xd`F8hy*UGwsksbe- zcJFiVRDRGaf42P1_xexv+jhIl8}?Rx;|L0q($ewy$v3a*=bk2Gt#2oz+D@u0oV55{ zrsI!$LQf8AZeZMyXfU&VY4V$GxoziVd+m-Mxy-ZX_k53xlF0sz*H~KZ_9ypcE@stT zyPD}sFwd{fkM}iq-Ew~Wd4>Fz?I%tiFAaKc>3BYU+LVI{)mg_oS7jcLoxXM=pT4E8 zl#<%{6Ng{;%~^J&+Vio=lRu$SF-Nv&e}2##&Xm`%MoRFus$<+T#_Pu0J{$aTnzYdS z7@N`iOzwL5OSZW;{4LFzbDs0^9%$8wPdBx4T(?qk0=H$xTE(oQU^(+177NGjFpaFr zv~@1Z=i}U1w-~pcQsiF6{GIvc15q9o8%g6}$qA;{7@2*)8E!Coxaw|thkyJ1wjxpC zo%suUoF=pDG!@=sK^QeNLWf zseI0=s14Wt^W13&`7|eRo?Os8^_>>Fz2VZ=+`58;kIy+9`&9Dd=h6;FiEja~DtZ6z zGd;rQv%0n_`sLl}SAs$&^qZSabT`&0U01w9u5@bh**z;2r>s-lS8o=|-ccserN?t^ z&g*CYtAD**{?`82;`$r!YzmLd)%_6o z?F%<`0S<;v+a~qd$!Xc|H#V$nt-XKi;CqJDysk(?5sp)w2ts zs}@O#-sG*kBO{dXQrD#MLsU<$>%RZ1@-1fXGm$Q?NOkxf5EG~`r%^J)!}Ou4fl=|K z&5s0sId(N9CcI`>vtr)%wBd@Hkm4Kh&g4P^*~&wckEr{w7=HK^b2G~1#D@;I^Y0^H zw*5R=Ex(bS|9-sa_nkMB*$%zfsJ64eYop0Bv8``-UXzUJ@#7=1z0A1hYgzb*WI-Ujvgd)hl< zg%i)Me_7VB`1!ngwG*w6B~P^ly#Bw(=c2Yzk-diYhhNgA{6DOB>Bkx>iLE`oXZ_TM zrqE@D7ChQ&zI>^5EX)1s`YUd{`O|Ujx=QJ#OQ|i@oV7~}(@H&}#oRidU65VNX&`WX z-Tz{TlIQPotKZ+{UnCREus^_l*_-Wu_}|~|KdzS=Z?t04!3%4dmY4;`hn<$wc_P~y zE}!_%w$$vIwocgZpYs>&SJ++5uy_?0f74p0rM)L^$Yj6&Bp@64SIgtmS>^MaS>{|T z)t@EY>cUtsRsN*#-y3#$e4H0nq)D;bo(L3YU*CD>L64fW#S_y;#;DVmg!x&kQj_=H zb7|XjPy6?eA6NReMQ2M&UEzob5&Us-t@YK-#;ysby_y~c^A3LQYA)v5WY>MMqe(M0 zbZIls{zsJ>;^~K!{dYd`a`7#^!!ymqaP8ZS)6NWwzRpiu<9zW9`{a*T_a#^G zFie}sv7%N}?V0(W3XN+?>}$lbzx;Sma_x_7PqFFMS>=b%KWB}~@cG+setB2vE8n_0 z*5JQ3&*e*htIzqjTyK(WOtOvM$-ZYdQnpL2VPARX^r8R*CEw@I(*;j*JX+b`A18OL z_U^9Qtn~EsSU*mdT9eJo?H?>Gx4FDGLt^%U+Oxq%+Yha9lZaZ9@;{jK*^cRwv6+8l z4o^^9@0s5wb}u7l*Q++RbN*+x#($gfZKc8N3fa)~Eqq21!UhLlc&|TGW^y;`>$S^e zg@41AtleO%!q0VQ_R@LXpEV@)mDSta%&xf#dk1GDjL2E?TkyeZ91qN z_W%9k$;u19ANo~gS-1G$AHhsb_Wjv!CQV&3&t#s{ZnFrlgUy*A=9NS|bX@V&uxGE+ z!PaAm30I`Ola_cKS*CvLcysLm_WotU+Wlb+A#WZ%nw5CKF;T*4=f42m-Pd;U$W5F1 z&rKsBB}5?LUW32qkP_&2$vrU=K63b z+J5=k$;+3vC&g=?zxZ{Mrtrya%iHwM|NR;K`_1zI%)9U1-Ja7OH}RTt=Yu0Brn79H zA1df*t#Nhd%%8R1|9I{mDoMJRu(@Pa-hs!*?s#g>HF%~PvS`1Hd9F-U74k9sPE;o?qFP6 z=fb7xZI`U4swCBI?U`qHIQFP--JHp@=ZIYSd{4HZLgV)QY#G^@n|rzWTUaw0&mP&e z^bvcahagM(y!HD|UCba7j2 z{rYO-PW2bc&9Rx^SFtp8T*~O-irTO(jlHs-nd5}L3)`y*30|b^XA^#tNwo7y+D1-+?ce6z$Nhuo}8Rw*5%vO zdvL>J@h^2LA9}JwPAbVCbo4!Rf5nl_%5jOuk1TmN{ZI7L+G+Eb{ogia;RALTzX<07 zH=&69hUQ5TEq{}jyf@#sQL4V;Um(}+f9GvK-`?KO@a$9coG)eCDN0XICRg9PvYhw% zsa=c#A?sGMzJ2oi^OLf4<{nHV%>(QKtsgSj@1o{jVL zX81P+%u%@&WOYwNLD_Ck&Gmn8rS~UZ|IMG{v+&^T<;tc_xAX1_d#GHHN?>xcUtjh9 z*FxRv{5#V+xGWYHZmv~|pZ{x0;FLE89tZXp#+oL7%2*f^A6tFCBR8b9_GNc`%w<>q zhqE_t-SBaD&pF^E>R5aI*ur3+NVWLPuAj<#xt^ujhx`j^!jVrYdyKR4k$Wrxv+Z03Fn(msrHjQ`!!g3-o3i}=9PeG;`}ddC&O%c4I4UQ zl#RdkUuSGHTKjVA??#&_+nW;a4zoGD+H`fs>@s~}p8U$T)~@}Ne>_TmdL}pG_TO`E zpMAh;T(I(sL_msJJv{?yUJa(tpdWA>E+<+VL1_o_^H=2hQomkMieaADO z^XK(5bAFYU7VENV<)5zb{adaTTC)DW_wPFfoHm^ZFO={Np${=4`COY={835V}Y(d6v? z9lO3k&U!i%@B(D^Wr@q+N-Wk;XOyI!7eaATc$c>AH!s4Xh%&u&`p zc36hDU+3NJowZM;|4#)ij#kOOrE%uq)t6V5gdN4-Z|42^dy?U`I}^<6W-O|8o|5M^ zx5QY^oQaN(YsQ*r8BbbeMx8A|ik<$o})dRr`TZ%@ywim#Uz zf5{20@_r&%7{0Zu_58bJx1i`6HTz9BFR1dd`IlbRJ$B`rn_S`!j|LyN-7g;$sXkrn zQgk8E>iIVQvw3q&o+p;~daQlLeBsI&w|iRl`9bR@UsZ|XYmb{L)D%;(?eU8jH_n|q z|N9=tiKn}DM3*&qSNP<1co>}BF!Q-i|KX>nHn&gwka5^Y-@o|H;TgPf@oydl7zTRH zFWeVDO{I0=^xtz-C!9U?INW!_9>b4X0zua_lcGA@?nTS)=8>5{X9Kfb6!+>^hu7a- zULv>tb?NUfN9x|b-oHue|NTwo_iKa`rYmMl4}P!rl6T6xH9LP?lwfZ7>Q|w0oYh(` zwfOjl6}es?T12>&B7`0PntR`G>p5b+)Ai!paQ0U#q5^jDH?y`|awZ-!g07lwE)EBBH|V?u%;v zzg^3s_T}x{Z#zX_*e+N;X;EDDny-0#mYw}r^}mmuU$0_$TA0;zC*jXiyyh;x@@0ke z={CKtC*HG`JAYgKF+NOS!~MCRrT#pdqb&%chn{g`Va*_Amx z%AQB_)*6L%mK+hvjoi_qVux*%cv7UQ| z+ftby?Dp^arLS;qm{4NU(wt-{=KyS{jEzUl1oKk zhKH<*acg?v3-RibLdK$?E7|YYJm;2v%kU}Y_E#&rPZRZTvdh<;*DK@y^*QZ}#LuYz z4Y$0n*s$Da*%A3^lkGm?Q|D}1d*{18*RFj3tAEcnvBY0ath%mT3J26QU0V)0@hH4= zT&HJW&p%M=3$jR`jkL+!oYZ3<;+`JzJ zi88%8b!>jcCrx#A+cVDsRa=(_UR&mvc_l_`&#L80e;!`tx+kGgeDTk^%DC_UURXFX z@x1?-_+>$))ZGtXrd_L-KTsKE(y&igE*8!H&O`U&I1*SnI~R~-6s?2?z1U(vr|CJp*z50%b_p@8`ns-W63UqXTT{F$MRVqD2LU$*7Wp%u@3EAPy) zV_2(Q$00MJX4B2pQw$GZ(z*F-u6h0GxccX&!GE<5%{@BhJzsK2)dG*M%he_Ev2j5O zTFxg;1C!G)Yl&)fcg`rGh*k#DY=*9kWqT%+uhJa5C-n|HaSr`asBY1le*+3u}D zYh?^FJo!TMt4|iKoyJ@qvvH?*LbaCe-gw2cX(vCOuaTI4oR@X|qrLq1xR>-ZYFpb1 z%XbQGeSPMxn)%@=j~FsHXf8VFaWG?zuH@dHIUz2hUaW_2MF?dazN@||p!es39@ja- z(RW4HRQsG$c;{PC!h84g))@DtZ9C-8#I}WRld^fAvV672f&jMnix>q~hHOk*e#q%q zxxZ#&M1SNtulV{8dp_j<^Z#FUc5?mwsC%U+FD=ijsESgW#lyR_CRc((gv;*0J+X=F z7EU@GCH+L!>;KI3`J46s{L{a+Q#-y|CnW3I>tE87^1{QdO?W2>NPT-y@yX3&bM5EV z@f+XQe-}0T`A|rd>EVyWMHkn8d+^Y?PSo1=R_Q+X>^l_&Nq1|D?zmKnKQJ!4k-YlO z3)6W0N1trAbAJrWv+_4w?6`U5N5_T63J>&}6`w0DjJeoZ@LnRpdQtkd>AK4P#=Cz8 zzLU49NJ!=Ica~M~eeiaU{_||@$B`EwnVx?C!rD2&|3J#M$afrlJ~p2p+4>5eZ7D9W zJtHKTB)do1Rd9wCr`bO9h^PhgFT_bzshB$45$~zrA@aMp`uE}Y3bjI0`OfzA)Yj;K z+4BE3=TY(B-p=)0Ou{cc=Wb=bxpf`;?lieC){GI2Rg#<3E~q`;=T~HO%xZ@G|Kq$; zY%NCiXV!$tZcq;RGBb`RwZyP$yW;+5+xPb`v%a^#YW}m9A9g>PFU;gh=Cgcw$|hch zMRLi^*u^a(*PVA)ZT$cI|LOlH*D1NIIM@86M`^J%zfhk|`2Gja)3k~YJAQJMPV8t> zF)0!A+0ygfSNcif;^~cw;?i>k!oTca|Kbs=^1@xQd$(TnILp4j`_XsK`y1D^e|t31 z;n1AJ?MnaUy=rRDZd!in;TOwC?NOp#u9m@`{^>Shs;4CG{>b09J*@w~7Dt0D&&u;V zM4l*$99Xm{SyAoM%-*}~+_Mknn4e3wke(JFXL9egTwG7{z4L)wi-?Vz=3}ZKfrrQyZiIf4`M&zajqb)Orz}Ldo50ip%(~ zv)?f2UDDSm(5rhnT=%-d^lFAxJDGdBe%zO@eOUSXhPVE$`cLZrT5M}dSOX<4iFFA) z$emi<^Lp>DJ2Oudh@}>Nesx#x+u8Lstfl|*_pB9tTy-#e{_N+K>o0fTjm*EYu=RDfS@XE&P z!uHIT8`)b5eKUWV>-=W#pUe4AeeI&a)JXZm(b zbIdbmoU^CILfY~t%ju_c*cY-yUQTl0XYYENT#^@dcF+F_6POr$#3F2knhc_(5B*>F zYfi$R{T}U01$VqycI@NB)&tw$oooC3{`~HB-BUU}pFE9;T;g*!fGtWqtT#35L7Gio zfILH6Z5BV{!v{0J{;H^Y$#wdt$V#)14VNEG%}P4tq~Rg;CmmNSUW8zROnw@UQ@<`&77Y? zzFm3t|>G}`yX4jZ!ob~D|e)w7;-3GbcXXX<^$Gv* zi~IVd__lMCr)d8A8*uB*hwp3GZ#;Sa)lcqi%LBJ~H6=O!tC_|BZS%J5CLTApinS6O zb7S|5YgQV&PFm#og5}&{5$8QxmJIX4cDQig<4joiVe6w9m0J@Qo;=HVe8H;w_1P~2 zj#tiJQC+d`Q=o{SdBfxz+oZm)`6uK0eDe#tha3&t4O<;$m_mNu>eyrIot(Pt`o}*R zH!d)`H~3UHpR0QQkN;x+V!gWwYT}0?>h&ksw7)r)?XLVju2kTEz@*r;GNU!t)-M7V z6jZ;64?C8kGIeRkyr>xgx=$HgGv#^Xj6&CndD!*%b5rs!wx}Qeck6{wPD%6j+5hUSO#~cky7okP=ldQDby%>< zH^nYKxn#wu72D+eqV1D+?rXT7t1H^8T*vRKv|T;K-_cZ>Cv3CcHqp3Z=XW-X1uebr z9@rB)@5%-9J^Z^Ce2gu-c}MMa=gmG5K3o2hQ`Ls1#!}Tv61@`^DW56~*K*z?U%uG# zTjr_H5BQFy|9GQt@5qZpS-Y!&ucbVWW$)Ry#n-#aoU2xyL-XbG=x6?wy;=LF7^`Si z-Du9}%<4b)$t|Pe*1R=EWp))J%smsugHB02Ir%*6ZK%dxDW{iQPir}+_y}sOnWz2m zlzy;;2#d)A4%beV=UaQ^R_LW{`1Z?I^jWul?H#-Ct>W|k=HSTUL z=x@8PnkaI8>xQDko%PF)U(Wio{~r7A8DC4UY;QNbJJZ5|NnQAS&Xe|;eZkpxPcho8 zn5n-j)=tG;)h7FWZNoni??3ic6-RcLtJGR?$1W`R!20Nw#(bq~tn0o9MgRX}y2)Uz zpwgB*%Z|tOtXwTrGxbmw-^8Hgb+ya^>=*M-z2IMDX}Y&wyU0pSS~FwBLU^&uzbt5Gy+|OTW^mU_xhu#nKs7dD;ECZ9?T7KbYzq#p0 z+y~_a;(KpKMlP25y_#RK{gZXqIbZe*zx1C}Mt(nddY1q7>gpqg*RQWEUd%bGe`;Cn z@tIP-pWYZnvaPpoTvo!6vgF8K4PMU!ZtP0e?u&3{O4o2$$vh?txuNp zznI?B7XR2sz0K_B%eNn_9ZuzB&VI~qTO>WTWbww?5_>PW*lTCHG*_uk3cu$oxkqyI zy@(?>WYUNyuZ`%2kN@7LO2-uyX-TPWouO)K_&&R2 z=G%nO_?nl(-+t=4tg z`c?e;C-47tNlurCIajH#vXZitW`n|>H#`@&9RA{EA!f`jsLGyx^0P$dsiNCYc)jBn zoR;-Fy~noed}gTvmwD51pNQ`-mhpu?vXeB_zLVx=uuL;sX3H_xP3b!6PktY%KlJ&< ztLHs+AL93TFDubgp3S~Tv1`V{FBjIW`&I0^>&TkrVP~wCFMb;N>7Lw;Z?_K4XSC6| z__4%M_xs_*{j2uvdB);duqGp6OYuHiN&@0hmWc;-xcuc-yW9zc4OSnxMN%Y zz3-g-{O!A!?g=wq91S@7N#_gmB}X?&o(FcNWyjU4wjDcSDG?I;ynlg&hSJU_|K0?c zEqi~YK3z-G`04qLY`<+PUM_rQnDaAIRaEfsro}?x=Xz6JFNWJ@?0N=B zzn&^)kPN&mvfHrf;$?w>5scgPpy9S zK6B*>>C1eFGD;hF}?ocqw?*8A&xI^25_z57hND2;k0xarM()11a6}J%wwT*rw_ETHf2rW6LOFwoNW=I{TYVQo-LP-1^lVUfviIj^g?F*%G8L@ zJ8UUy>T%CL*t&u#ecuw9-j^#ECToWK<(~U}&fNJWo7cY!R@GOYUwLx!{DiU@Rl9Wd zPnL?`wR-A7t{0OF_Qrn8KL^?_BhzryYVz$fLc5jnMU{=!uU&}xzU8T>S=%(G!tJvj zuKciWPnj7@e&w6by-mLF>zOW{F9@!f{o?!l!xq;L|G8ZMX!+Zt&+W3Le4Z@St(fJs zD5URbMQ?D+kw^YA9O6$FEBN-dM?I>1zODS;t*9_Z8?|k{vFoeWZi@deXgl@g2Qh7@ zr%PYR{h9u6mv7H8-esR9>Ufu~++g1G@#RP1ig}g=mB;rca@rIcTq^(DT*7mD27lf) zZT1qMuQtvvC8r&G-jcL*k%3mJx>nPN@Z2+>d;jSgaf@t*B9nZeq;54{g zxc}{@jW26Bdo1iWPPhB{DeKSvl>J|>|6dgw^EPLD{1zpXCW8;%-|HeQ`Wqjd%HFH| zJbQ&+f%EIPwReB)|Mu$p;=}O*N4B(@RW+rRZJ75<_WR7Jno|KWo|{`f9W$$W_c(pB zG3T}SAOCULiQREm$>08B+w<2ykJ!E!;<~hIxloh7K3;ZI?sPTto^yw7 z1wGPOCf)nNGLxx%@q{CshnK{KNCoDxS{?5CC7$DS{>*LloZUOcTjDKjZY*X|XA!&i zx45{5T|u|5|4-f0V&#_+uUspx$Zg$O{Cpax1jn1J3L5jccg>Vq^w9X_-|hSUah~ET zad`ORQ`oM}49`~z%NFW=TliijdVlyc+Xrbc-&z ziH=$aA6348Sy#x{8WzE6;L36Bj7XQA$HMGYQ(GNszsmo$Ka^0iOEJ`S+S3ibX;+PR zGoQCu&FaH0zdyhEVhHbAJKMe6Dm?jDiZM=KW?*W1LEzly2~|(_%$|PER*L7rJ(Ct? z`|JY=hWvH0Q@U5X?+oTR{5{)lM_iSgaC)!ulD$t}r@mX85^(!hiTTslPb|CVH}v=4 z*HRVOe!VJQHCtu!%9283nL2+Uup=53;PbFJUg9HzEEeKXF_+aJDV(b{?cKTrJpU%USC^f!N) zlH1lko&L1^`1 zpN(;E6ff?+>Z>AsjbYooX)~IvnU~Hjnstoj`-&CrSE~JAOD_8UCT_L)2G0G{WB;q2 zyQsm!z-h%j)iH|It%{?dceBBRzipz%-kTPE%bidxHS^e)l!?nJ$z?Vs{V)Y z$xkHHa}OR^zayRLq{lqh$mK!2EVusk_>1dyJ(EyQv08CSis|j;g11lZp7_0X&$Wvx z;;+@BtP~Dh5lgx1cHGlQy8gs{P3C|M-QSEa&Pbmxi#fh4{@lq@t}9okT072j+j-e~ zcUn})rvn=Cu20>k9W09dFn4Z2$KT@L8%@8820UK8ul#6L%D3bH3yYN)gc9YJ9dedx zu{hlL{vJCSkd3S8;e3$Wk-k!Zx6Uu)`ZHt*}wo~l5`rb(1YeK$dVrI8IwkkRwk{4iG zdhzVn* zyH>W5*B?p--?$UiuN2v~VzsP`A;+Db?@Ev7FRUw_IVEu|i`TUq(f1dL1jliH%YAh3 z6a%N+R>zsE%l2vKFz!3FZl?aeA5Iegbcw2M7@7>M??G0;|~J;;SUN#CMvYtdfvfx?Ecb}cJq!4X}uycYwvyi$Z$ya zyw|F;K7m{A2(O)(5*oN+TG6G7x^lHmua10SnU&&O*uOpR{wC|~@7mTmGAox_Zu#*h zeg4kvb$n|4ZF~V8b7I}EzTCWgcgmxga;Iu+>*pJ-cg?xx-N@~|s`{zpY151&^IthG z`pVv6?{PHLGT}$xadol2kmr0VXEy0pS@sp3y#4ytmuJC8*`B&BSgo5``Nt-Rv*03I zto_%$J)d92CYidYT3*ps;he^J{BFzfvzaVMn%C6`>{%|xR<8Goy`gN=N{8Nmi-jwr zmR|hMe{;f>EyiaB+|@M}KF_LUU=7t4tvGRMxzDywa`u0q^=$LR)yOclzfhbS9LBUY@`l{MGqcWP9`TwPkB>F-8Vli2VLyt>0N? zIrVIbg8aE}-`lL{u833oE7!ElQok&r;9-samtNOB*?({Gd}jTX`TD)imqWjHTrk{p z@GC#-rQVu%Tb#PKhBH68Vo<-V^yWd2FnhUkCHuBr-Z?xvPo0929%nCnGEt8q z|KMuwxT=?~zYk6S*YNk#{a>e7Ki}V0QJxbrWnt;N%w;7#fi0m^Jl&=i&QvxsyScvh z@a^Aq$M4mAmVMKHYTLE_dgt_%SRbY@5p-?I%H6v}SY9nZBh<_OrNmeCNWFC!6e#tJh<=!Bw#*Y2i~_rCm$8rb!gqgm6!B{QiK)uQEn- z?jZqVyACFY-1vEb!+^Ij#z1lj&qnVpQF*=CZTukHOFBBMFMRO-==>9TcM zaow&Jrc-iLnUxEfSJ}KV(kRkcs-iF2D9ywmd7k;MX{+F_9eaAt*StI`etph=@i+N@ z((A9TTdy5;WLn?dko$ROjhvb?T<*(v@N?E5ziseu{m+E?=J%hreF*qe@T<16I=)}& ztKcyM1+LrfQ+kdq;MtweGd(^g&Q+yxL-TL5ip@)zSF230deFn@t!kxbH8JnepO)3D zyH!}+tO|H__y7H-t$m>4{)5PTp^8;1{({F2s>+=^*Avog6Lam}_KOF2=Pc>H$3|F|qeEAJ@Duvz5IZoDl2( z_3P7FulGgyPw!pw;LvN4f*F?-U!K_2TwTY0IXFs^*Qfja<%vS-Cl_<4=ES)jSYJHx z?3@BaTf-=czbcIzI-IZApNe|F&Qmqt{Apn^gM-j@soXmgV*7hEIiNfI?br^4gZ z^P%R$t&;{S9!z&XZ^*c=wfIc)YmF7(C6~2h4XB?=6zbG?U#B_=+6V@g=Z$YT=&1$uuR83 z-FS7nn#&~cevTCE!TQ;MEI38 z)!f4W-@do+ykEKd34_~I1&4bj*(>9vc$f9$u!XMCHl1?!tzcv4cb&``ss5)G-2YkF z+iw@Q`?ja{q5A%e`p^0QOLy;z3pSBqQC{bmB))Wm6l19C{>HzXre|^-ns5H|=ePAW zm+L;fdhgb5@58%>p>HW~Z&Fw6dbT^u|A>ARl{(wx09^Z0+OG%rDz`j)0t)GQEs*VKb{5$gc@yhefZ?l;$83(W4lQ;2O&!$OdxA{2lVrVnJ zd?2~gc!Nv(6%Fx_kfod@3Px8>EOjbBm^|T7tiQ#^i@z-<*l6#aS|t8FeOkMq9 zSKhU({P?v?DMD*P*$2s0^Tpg5vd`^$og`Vg!SK$zhhI1!oN0{I4R-2~Yr1>WqJu@z zZ%g}Li`_@!db!N^YEGEXk~8btVF#C@%H1~m7bq@$e!XS|*KTRCB@3^#o;&>f>g%;L zzd5X&W@BHrAo#oczU52X)jTdeocjN?_uo4|{xAQ3GwV+|H{0nD@BUp}2|;}|`x#Rl zSGi1JcRO8uYmUtMZ`tv`-FUuL{{8x0Gh9!?$Ml539yDs%M|L~EtuCwvm zk2|dC@cZ$7^72QSt1}q)rOaY)$e5nKYRa{PKPHIfyxQ?{?Y{C?J35X|yr+Go`7%$O zXYPfas+WSNs}yeP-ITch=+dl8vpwxc=2eAXY;xJdpfIm5;@e8)1)rDg5mRR{aZaeV9?>#BVWsgV1?5 z`{q4MZZq$l6S2bP0xOq+QWEzw&V+N@_V`Mic`e&xx9hI&v@@@FEq2PD^15|Zxl*gj z=KAK?w{De5du{J|zjaBi5a5#LNm;n*f~@A-hUaTGALO=D{nnTCWrNcGP!5@2%WoxE z95bzZ{kFWN{nCl!1yjEkys0_YP<{Mki1{@pL*4Agskd9*I~Wz#*01f!t2vg)?wlbU z=P==>S08my8z|Nw{YS1r zKw;C3ZvFa0`+iK0-?abl_kYJ;{annyi&KSDBf~ao{XsJ!?W@1p{@*pf(VEBnZpWdmOqoi8Qi}vM&#wAC?a#~iKHNK7DpmNL*G&6bY+v#JZ$+fZ z>6@o3g#M@`uHJa}%e>!@RPNf&__Vf^VM1Hq5-)l6J&q-7-%V5s*~MiR`tV(?`9GG= zF*d>R4L?ek@hOz&27Os+%~&WEaZ6L{P5XEG1u})ck~jT6_5R&g|G$|buVVg3pT*Yk zK5S=x3kI0H+Iexs}E-W={Pc-c3e{#V3sFyeKFrd*(- zcRbslBbqzSb1$@pg{uX@?EWW&!@ z8OwP2FO)P~NtC{oQ1a1kuk?wV?I~|QRZH{cr&>KKRG!El*O2hzjLpPKC9kT+xs|si z;`VPkZQ8#pzO4D;5~DNynI=pjd!7hKRGokOKZbf|V_ z->=#u;oIbFHRsA3Tq`^Lamw?=G-U&=zgC-e_VgYRezMNH!byB%{{`b4-t)!(zqrW$ z?NoW(#{2&c^83nttN6W_t@*T|4$f?7i<@vE|m{h-Zhgjf1ynJWb!xJKb)l z)PMcIEr0L+|C4|7>s0>COhLB(nE#ue2q`PQRh@5~Zs_yISHNj*@7BKX$NyKy7jFAs zZg9iBIy*<{^cGL=0<|4i*nVa@USh2*PyFI|&$RLKt3tWlcelEi$8V9JS9@LW*6p^= z`Pwsf?K1lMHJ^twc^PY-jnf;sPjjz6VN))6diQ&fXN-T#bK9bg_wv8&P>^UBTxc%& z&Euu{=`APAeBbN*j^+Dv>EpM(pM_jrvTV6?tbEtS`)ejDu6Zvf$a_leM7{2}WgGYp z#8gQ?$T;{~aLv-@l>Vw+yEkfb6k3;t-}M!J`G${a4kLRYUscnY)!%L~F>G8{d!LEr z*94jVs2u-fkpg9bpbA^1oQX|_r`N4GxA8+_sP&g{$;#3hCpUE33p(CO&aXXF@x}7v zw_{S*-!3}!?e(F^hY7l-K^F7gb#|P#Q zYHMb{)HL#8++M_q-M_zP+aT!Xz%; zLx(ThIdZ*8+-w-XPEE|{7rSb;)t9BuH$6<$i;AhsJGnLZWrD`LsCNI2a=96{b%}e9 zuV^*j%rl?g&19YT)3DU^PJf%2TUM6-dv9KC>|Ms%cI3l9AI2LMv+qn^ShUc+kUe10 zU&&kZw?5o|E#cLv4XV5NHoW29yL^({-+%4$xAOl?t`}=t!OZOv7$UapeE9CPDLhJ( zN=pmpzJJ*r`+2tU-bq(QD|S5pKY8`@|KI)@D>x?_%#phBdoHS*KEHa)T z5;}{cpsZ+1Wbgm*MOXNnYq!*0Tg+EDSC`j!(xE4=rgv`ddG~dq^n$CG_Z6vCF;qye zli&O@et%8wR^C}>Rv2$ME_u#QY(n*&-uAb9MRK!`6&q-Nxj%iLp2;_xUtc!o_$^?1 zFY{qqq)+H#(zo z+xrUFIC10`KE7A6G5>eS{_xsW_odDFE(VFH6;3ns4QnqxDSdnZ~brHyt;Gm z<~^r2ZT)AZ-cwoMwEEM9qEqRox{t>FdJ(piF)3zE`4p26MP<9$Ul;qc{;t2(eEd<0 z-S>)(bFw71*=@H}w9K7;-Fof*&7p16|88BPyk_qYPNt5BlIk-Tm43AIaFm)A-K%g= zTg0j7*}na4%X}HH7|m*~7C*W5-R!Tk%3jakx$j$5ui4(pZ?@8>U#;OWJg)O{b>J!q z8BNZ`ib9Wi%ctF4Y;vR0XYU$4w>NPg#O1cO+>0`aoBf<|<&K$m|5nYjb6mGRB4oY} zW5}X%hS^RF3(vRaK97Ew@pip@l)v$Vo~k29IUY3MIN`D8++w!Xz2Dn7*4#g4bECu8 z=ILD>;RIICEAL<0T;D3Jlz;4T+fs%orIYK#tLMKtCUvnwv^DCXrlj!+PTsYQAD8?3 zi*$-D{3trp`tf_E9N%d*Hd~)Jn(jN!|MjcFKbNa@4o@t%8opO+vp@9ki?z=bnFdz5 z4%7WB*YjQo?$wy-wJ2eMue5EWSxcYs^{ojr`g)?I53uduEZ@|0EdA%MbvM>*+JAt< zpsjy`k;RRpMm2SkcG_{rUbHedud;dH@Q(NUtoAu>){Eu2mYWN5Y|P)QwIuE3+*xl* zHs5M1y`#)$_o|jZ{>k970UdPVs9^QJfLiJ_gMrQHP->Xz!T=}%s#NnU4 z;LQ){FKjgzuHn}PrZ8KR0i4BP+p0ckQ1#99am<|3lDp2f75*bFVo)#XML`J zTz+5X+ks!Dd~x+BUR_dWpSH)WL21s;tbDsaia*#s-et1zU>4O`otogu@ z-r)3=(nRTl<=YPErp@w^JRZXrXz0Q&CN#11eN1A+C;E#)&%FEpuJT-|^(pCN(EBX?W^P=Eg z`Kb@Ql|E(8a(54Wes1uD=d$uL&c<0O3c9TvZE+o?+PX|BnKc_Z13#5c)Sk1Jm&@ve zq0z_|JAAHOTH$!}tl2Zq%W7h+@7?(vyi?`dW`D1*Dq>Qa92X{+ zEOVl5^*!5b+1)WYZGTpVq_F?oee9r`*G3P+6W$^2yHjs&oG1I*uu3TM(07R$FUs;> zac%RF1kB86?__mojQyzH+@$l#8is>e)`ezHQ&uUj0#j-}+Bw^?i}xB8q z>~hL0oa9vJ@ACWdXMUR7JBrHz(c9vn{ny4cHX1 zc=Bc8xXlNyPWc_%Wg*LQ;b@M`2a`DAb64%I<=twSE>LA~M0B%zl-6ReLrY%$WMpv` z3#~eHa;{dr9mB6%>`e>PimsVW;Qgi%c;(~{_R4d?)BSCZyI21AUD;69yk`I11sn`+ zk=Ilj7N~zeib@=xJ_EOrBX|H=I&{ya!ow`{k|N%J!gN2LY`u5;{r38 zoT}h^3D#CchFJj>@iXnOHz_Jwt=Yp<^gqv7c0;B?kn;>ndm%2310klbAJ61IVNw0n z{snJ;f{MRVSCW)Yit>&`wmnxRHs6tW)K+8S%&MH4An7I6drWWZQ=6JaMMu(Ra0l`^ zICO4UdLr;i$CE`1t(NNQ_6D|uKfZbMg8rhXw=8C6Ch2Vo+&AI=x@%`S^p`tumN#6u zB)9j=rQ_j`|4;rl|Nr0pvh(V7PhWUlCw!H&`}Iy+@2{^WWiQC+b7**ew7);?_qFT$ z^6uBa{r&CN>-@smzxOcrhPeHHFs)jGtH!a_+vG=N+2NnsM{0C0@k;szypGq*{Cj(s zA+N&nzM7@WQ$E;LzscEf(%)d8_`76IrFr`=v!}<##$}c89S^bE)vtmhdu$ zFn&2-(Hb@87z<5<1Fkoh)VR-QI(*N!RY6fJbD7Tf&5SQj9#|P6`u13L_49joH+;z! zJ`q|vxxRiH^Sa#|KPKAmRuM33{QGtN&y23jMbDr2uPI$U>pPFbUe0vQL+_lIB)nO# z*ffv(K+@`a(S6rAE_pUwsb!uS$`JH=o6C`wUlyI!-tq5)+Md2!u#NXfhU-0nmyVWc z?$@U6T6K8)@$W+M!m%>3<@pg`CrrFBo0%!khee??TT60gno)Y-wW%C?%2X|BmYzHKivPZ;>@Kfx948A_{Z_^j7V0n_SLkxH{+cRK3AzNtg64TdETjpB;7`j z;Pd}n*1tW#Z24u?&)=tBwjHb1e!TG5XODO@DHiDidhc$3-oH>}tHWV;mf6*d-5hj9 zO-pw?;Qa2<*4A*K<&t;&4=z<6=|H~s=@ti)UopO%HSN2M;?pkuD=Xr4-Gi?<6kR-X z%#JblA3RlKL=MFsRe5r3LLJk*1>)Ct1-;I`w0qvxhn9~^ z<+Q3#vj5xh{QuJVeq|`fAoBu{9>|7Uymie~i$XP#p zzdC;V``Yi-tDpaW#$fT9kwKT4lY2JL2jT31Exxs}f94-oSKq^1x+42pXV$G(N$iO^ za+2RexPNb3t|f0j|8TKN@{4cj7kN1Lel^te)0}9TR=HqFsn;6AImUTTl6#)+S>~hc z;qv`&UFF4@pOhPNrpTKA`J6U6&TbKV@E3*;2i*<16O!sDcP_|c6+G^Ke9yAIU)db2 z)J?V71$=MKu6otYd{sST*4KHmrr)pKde2$>Vd}-=C8w>YHSH>ASZ2n+UH_H_gcA70=>(n)(XP15Wu}t|({=p> z-93`Kw(-?^1j*m+Io{jJVDtIR-5uof>$lmI*|INR{);luvv{&&5{H%TQv;W32 zpSvAv*dN{9exG-J%&BeHykBqIb@O;!#l0M!^K1W?wr%x#|EHE)x@N)TnfMVUH|Fgr7hl8jOmuJVhu`n(6WGOK+qNY9=)J$WqpYq{ zT>SaBhwc0;g$vi-Q+?m0V*KCS?VMKsv$N6bZmKVM^8AREjzaj|>Q9>1vHP=a;`rs~ zxrQI++r+~=y&`CS<+DtwuzESwkoRk=h1<8AJ-at`SwnhRRn_X}A?gkNr@PyEDx-fy zJxKnt%ohP z&G*g+*YaOW-xKqG?{~Wge@m}6Pr9bOyR;@{`};danuq*r9xXP!_I>@ot@}lI%m2uk zOMl?{b7@<2%l^BEKi{wR=l=gY=j(|_U)A<>EOS5cv;OM6>epu(+~jK??ldvsm$U2X zoZ)!Om|^;?my479?MiR={ktgfFFY`{HKK-@*N4kc`<+57+9moGQo-K{p7 z%Ta&x=TFshy@y`3`8BNS-oN*i)chqKe~fvyeD|@~zhi^tiS;||zaN+%mwNQH{(IZX zeA~sxmvM2_--+M<_*Itp^&<%jZ!+AOU-QU(A%cTJait zyhvQ1{qtP(`}LbH{gm@tbSL(ArCZ9w*3h_uy_4_S?Ml_Rz4~VUzyH_11Uh@{|NS=M zv9&?P>1p(=%$LgnZ4U{-&C0*j)Fk!Eaq)NT);<4vb%D)Jty_1qRP^=Mu@{BQe%t)y z@2^@{`x+@lb~E>v8&4`sF>zSP6#n#g*p`c}6SiFXd*qJ#GgoGpH4krZ{(Mw!u42gV zPp9W^NS|MQukPdeKTak;PYP{Yq5ob`%lya1vqkT9vu}pxCzhL>|F6$r=YIQU-B<1S z?cvww{GYvke=$SHCYH;;A~%0|=B07+`~BVdnI(^=i8V4&{r=RLl+ zfa~|&9rq*WIvPbVeEnLQzwhU^-oJ)M@^gZsZn)P!T4IyGq>viv+p9Ed@etl+rEpW2C@RYjQj#6>&(+dm4<84}fj^4`%zjnU*Yx%tw4u*Tn z7#9B6_Eq_>Ekn|-#C4gkxTbNKzxjIg>(to2)f<}*^1p57x7%W9acr{W{rjh<$1b1C z+HiQ|TT@QM#x2u&q`d$B2;cqIqPiq+>75w|e)7Izp1{}OWVNE5SM+Y%r1d@TA6zVM zSD5|axazEchJ*1hMNNY`jvjbFpL5dnY4>(AO$(UN%chz2Wp>+Io`*?V=adx7pN6ep zTmEKp(ZqL$znDLnss7~QtyWDFNwAlQQlYjBRs-nOB*As4-|9cqzX6yTXN%{Le>ZK+#Bu+VNc5hya z1>=%Z$snK5goft|T3S8Fe5z$nZ(q03pC@KYyx8YDFUgl7UZHFSA=@^VvoJ1kkoxua z{NGue8*G`(G@q?Mk+_6uP5Y#|{z5MN%-@&re4m-E+_0$hK(VULZPQ0d>UJD9zpjP9 zQhl;G_pXBA@^<3RRPuF{QHax z?e9D;`_R7_akCvN0sAg13h$7~`j*}r(Xtw^}WcB?S8EdgO$^$v&n zrzFc8{#86$o_f}$V9rnW?ByoTt6xdR<*;a}UeE4(sM*@{;bh;N?(=^Vt3SP1Y`AC( zkAvtRj@Js!r@ZHb?i2mrdj7Wl|K9kR!!yDKf359qcih`w+kG-`_tn$;<3#tg|NLvp zCsZ@%eHrh^{3d3t!x2ebch}b(z4>qb!o&9iy!mpjec#a@u~hwgWtoDHkF=*7+e-)c zJ;@2ajP`F0q}N+8o^F5db6J;fzGmgIplNqb{IIe*dEWZ?(WeWW=Qf*`bR4d$?5Nz# z`cSWeVY5H;o=0;SBm!*AH-9=%u}(9*h^40`rf=cY&0F8ReRgCYD@3?RgoJ7KXW}x=B&1Peq^f{pG&uCK)A=p z2}YkxauU8&-H2b>vg=P=+??o7GHx>#D!{jWME0}J5PMla_HJ2)lx4`V>~nlFb+9j99rH0il{ zK5`M^-Jjug{Mj;_ya4qB$Ceqea%}X`@yYyfC}ys|1&h}1&ho8ti^R0r9^Jbj;rFKg z-pSJ4uVtOX=h*9(tIt~(J5jZG=8@Sx-T^bGwMeeKvF4?vVbjHHBEE(i=aa6S&gSaf z$({V@)MNj@C+(B(S3ceS?bP@GtX^>@9GbzLy2|{rim%Ps&K>z-Y%6x-tW^c8Nyypr zRj=jRrls^qn3OU-KB()=>MXqJdR1inW%B!=r59_19 z7u-5DVcXOmKL>x~SsU&%yX??eYM6I7c)=dQxKD8#%H~;FSXw^4`uW$>&>y$f#=YKO z`@fzmzd~}Aq8HPmht^TzQ>SPAseiftf2#HF9d0M@W##4FcdGk*@o9UT(VDNbPTCiq zuirmES+DW=?7!#FNk6gJnHB#g`~O$_E!X4z?%VtEm-IA2X~q+Kt_KRPUKX7;|NTXO zNydcAxw#ws_;yV5nN44&ATGlMTq884Uu=CaV#vv2(`&(B+nO_Z7rR`1&t;vK`@yt|-4Vv#}VcIlS8msXgaTI=ViB~~x* zH6ixuRL?Y-YGGEADa z+;W0h(Sv1@%B>u%o0y+_+326({ho0sBuvLw`rQ;kxB!4kupp)sr|R*SBeJs^qy}e`XeQ{D_?pwsCsz{oAdU z`c573ZpV)mY`J;k56hubeGOS`#u9J8^l;zU>*jB=Yx`QZ=h6HBT}|NB_g>%bw=^N3 z>P5Lh`}PF(g|VCGJP3CQoC_}j;ui*{aS zmGXYOYU@VUkN+PrXLqu{nwdTMTO-qfwE{)Gn;F)~*ZDk^7V)h!i$D0XonLA!0KsoSOR z|8aVMMtb^mpPv#Qb(gu!`nqaAe5ier&ini@?}v2}5{F;MM*k1lUHUqMl}9~0B_aL) zga7~jZwlZ4JGSayTJ150)IGhc+x1HQ+}6nK-#xQ%U(tVV?*}u|ETb07ZSS++<)*Cn zw&wr0S(|IkEjYcdZh5n~;p_1iF9j7I-}@`?SE3y?K`r6h$=$8h4VR3(^`mEt#{L&8 z>7Tq@Mrif^=QF1Ya3nh4$bKaMMSSNnnTIusvSq&0eztwu`R?7nGxvUeV6T+>`{(Bx zMi&{gYo4b|cvdmb+2xiQAtsgD>T!9Bq$uOT`janaEW7vf)|p5t@rmw@^&V?jEXqGF zSfsL`>uIG=PHf1sZa3ShlR36u&b7X0lR5qL?rr(jE$=v^HkwXWk-Bg9!FI#yqCIU} zP2YZ;vB^YW{&ka6U!T71*pZ|#eQAuwF7Zu5s%ylToy}Stz_V*t$$52ULFN6d(^q9| zSgKzfEN9Nakm1hl^+o8YcjKnC8@DEyZ@Tk_&w*2*i-qf6dr$rKFKKg4j2HDLEq-t# zp+G3X=j^df&(s#nr8^w95IMI>MS|~O>B8?neynYD?4B>XBgVD%?UXLgxHEzEu@@Vr zU0Pqx@>}?wVH>yZtD3Zh0ek*toZejZZIu&VepWsmGBSNVyrZpR-NX& z&mbX0@|&`?&85p3w)^MrUVQ6Q%yuIU^GQFo-YMQzdA)h7&)LJX_x^W^GuyA~Jz>+F zEC$Xgo|4*Y-unbJeZQ`9b*sqykh*54FWEIOpZ4E;zVCzUZ}0l2`ZpH4i{D&sf9CA2 z|NB4x<5%QoS^rq*_$skeUw>^(7e8M1{aokY>;JF*KfCXH7yq})>$@B@oQ`evdFm%1 z?NBAY{$rb!{+9zIX_xPkQkf9CfpjEl}Q z)x~CAn)SSo?fRic(cbOTR`I!CZ2R5!%sA&?GwJol$##rd`p^s)r}f-{8M*|N7VRuREe8&6ZF9 z{*%?$=X&3Qrd=DZGAm4YpL#^W(r)eRzS*C41PV6H5OQB@C$xE%&BZIPgS2&f4>NN3 z9SzJZk810m{J`{8%f%1;4;TMic=z`;?-a$SQ`(c8}Uw<~*wcz)(r+IGoj)<*4>AbA)IP>e>rmr*qx&*Sl-%$N~ z?Nw%*D?*2#DBWVLkP=C{8nb1{dVpQ^g94A6C&y<1Ov<(wMXbUtCp_I+P&%fF95z50HL?!>JLzw5uL*B$!z zNdGUZwe|kKFNYqRW$7!gDiJ*2aKcxv%k{G2`Of&;|G)14!JhJa^P06Ek7at?j#TxJpEhqMEU%U=XU=y=d9CNmZvEnTyeDfuD1T#>mN3rNUpy3_5PpP?{7uF zuh~#{ZmX&5wIx3;|5$x?^YjH1KZNTtN?*&dF|O7BYx(rsV~*X4F$dqIRp-aHb4NeZ z&My7n#=HK#n@5u6yq9+@?2fj1I6R8wUvlwS#N+<^e;4ho{`XAkW2Nwcj9G0SLhNEc z8-^Wl~@|A}({>mBmm2OjcFH6qUc^~UsrgZkEM`d^Q%ALn+r>xtz|7*4B9L5su zD?fwd<}JQ>Te;OZ)zx z`_Epr(#F;D4TD#82*(5w(PMEQ&ppK--}!Dk<*tJHLIcS|9l7u8CvtyD{=Xwors2b% z%=uHRXR%c;nzVbK){UptEw$Xw!%y$lSNbEt!_yP_`jD5%ynauwtSu$VyJP}VHs(yY z^eQ#0#>L=3o9zl+Kb5ZEuFebgKJ{G|I@f?>xkIJP_g#i{qV<7^Jx|o6MVvJbdrONZ zoS$5@msNmemD17;=if(enwnobX}s_T5$S!0B-C`C9{9ZNh~?Xjf43aen99;j#Sk%qq?Kr;JP;*p#AoY@54d_IJmI=Vwa4I3FnA9rDBC_VW2Z zrtJOyV5&#!R-NCQ^K5d@?bW#Wlh1jB*Qc7Od4Z+RWqyBoJf}q9kzl{P-4Am$yB>~H zn%$CB@m35Q_kNY+FbJ_dyYoi>El(F4b-u!)O_^&}Ze>5_ zdqV5H-zyhHlK4#&d{%M$psuPm9i z$o6|qnwi2|C!^>;CQmAIyqIV1T(Gdj*JZ0*$)onIhvx*!JXvKl?b_BVjzsU4)g4Z8 z%THK~gx&nY!t{9m z?X2u|{5FkNF7-h{LIO|gK5xG4Y2Z3t=RWJ*yYJWXexG%qYcF@#H*NdnYZL#Azui3l zchBE9@jrHQ{H_kxjCrk=vXl3>)VHQPtlz(AYx_n`bzEPzW$v5n`~UVE+&KQ5Uu5F> z6Rr=pYa1=n>R-pAuC07=&4I(;(t?*S|2?I9*6-Yvb69u$F@1GD|Igk_i96@t+F!BQ zW>es{6Z0od*OI)jFmG;-dH#{M@Au!nX=eX#)^NmR^H(Fr0)yYmJnK1T9F?5?!uQcM zzTzu8`9762*K|*DI2TpmcCm=>@uGSEQ)PJ1mFC$>3c7uDKk)9yU!yYHM`E`YPMj`K zbn@N8D~*A9?y{GhUkU`R`I_?BcjInK*PFh$ z65k*Hj-8JTdj8_Ksn8DDDbrU;IizoCp4+iWWy7`VEz5M*D=#)&yi0enu*HkZpeTRb zaJK4==j2BZDqHqk>Wgl35dW0hduq?jS$!_)dW!CvAFc%zPBoI4S>y3g=Nf13;v|U^ zAum_%zVwJe?&}l3O`^8znlG$dVx+oLduOLt0aMlf;^%oKnV&zI?@41YTxKwr&qps| z(~Qy+hXa-=wHoTMSTN{vU*EAwZpRG{79Z`YZc8r~tlvMo{rys={!JFaFLD_eEC0qc zGcDy?Y#OuK&?v}plk<627wtR8-b}NLD(`VId6z%o;){oF|4c4vSihQLD5F~%@aeD@ zQ}eO;-tS`dk3ZV;#Y`fsv;TSZ+<@zPxo_BB&i}ng`v3X*I@5pg+uHfhFTNb<rxopRNguJwUzH?_^Bt!qXb7B1@@3x)#7Fegv$X0Q4@t3pjlj}482L6(| z>U218lWl>at8(IkyXAcwx3ev1Tz!e2y7mqBj=4JMmuk@Vu=L#5I$YelR?% z_4E*bpzP(ld`3P)pMWLT>(93*-!9wIG=H=4i~dP&n@Z+RY=OWvIH(k(Gg{}zYuzk96o=+ZYq{V7XBgjUb}vd7(I zP14;xM@*y-Y`wKuHc~Bi^CX7T_BVZv{{7n#8OreHZ*Iy8sn=P~FHK~poZPki#+v7g zUQBe^F-NYcXKHC#rjakZ%4+A%s@#Q%ho7gdOwd30@>o~fy9WOQ7Zxt!y8HH-uhjk9 zqT6^aoaep!c=6i0^=S+YjBJw8`zNP->h)ThBCz1Lsg?=jf@#-eSDfO_=22hxG1qy< z#D&{b?wLHhYVvXI%OB$R(qAq$Z!VvFDs=tDTf9$;WYr7uZ}JAkWz6KWfX}V_s(|f z*V@?p*Z+Sg>yLb_+qwAarqUHZYfY^k4{c{Y$oF*ix!D!p-hD3n-kJ9Q{Q5u4zYk{L zw|{Zv+1jFPm2UR+UN2PEEp=mA$g@K2v?`}Sa>|E`X}x+f(R2UoPLC63-dM~(xB5hF zT;PK1Pt)($Wy_qsqg=Rgd2UMPZXTn=<>p5Kr?_a@hlvsa_!Sod5zt)Q=` zr(qxKcj)yqmwk&)O=0L*b2Q(}lVi-)p1c<(KJZOij2R8`7<@m49A743C zM1Os9XUU$cj}=^_YG#EanTi!dY_ey|z%>lMtW7x9-h3&g;eKkr<>XIz>M5vdSD; zMrRH0?*fl~jox@`b?EG!ykYw?JB5@_WiD|(K6O*e4SB>KnoIpJtB}zBJhfHujH15H zhV{E!vzrYi>(cLD*3ZeV;DOK5ep^{oZVI z7N+S7mz>FzbGb5k`yER;;cHLC=eACBIWaRi=XP=%PYi#L?zi-`c>DBUo7cC+Pu{;> zEX1wlVVcFh&yPMlyFB^vjeLeZ?`nV5*1UT>pL@f{X!{z~cY75|Jl}6)e#bKZPWnze zZ@1?kewoejueh|)*kE0*l$M#S5VzoLI;B{Lr`gPp(_@KP2*ChVG3)~!*)wDV( z_?7nlW?vVk3+rT`7v(&)<*i=mZg@8Tz^|Xb)7;#weq7l3anFA9$3=fdHcB+z_qzM* zeKg~L>mM1BtET0J@>B%WZMD9s%kM0!&aCBrW{(+9(dK(Q{TH6oTvqUN%DQ%b`40^F zk_cCCH9{`9-v=MJAftk6IAt+no+J=yn)8w1zI zv>SREt`Rw>+`IYHyu+uBCJXiYnxr$Fo&4_3PT|9qAxe)~=IwG`QTv!>!&lSr@GnAQ zRjYDpE`8cy=+!i_c&9P*r;R+_JqL1kcxY_1Zp9flSE!Z#Ug%(FWEI%CI$ zrfY52=Dk@zAtCM5#N}>_i;8N5+P)lS=NFpba^*#XzM+O^45xij^7j1s$E0k(e1CoK z)`Q(`3valFAM)S#r_ISDbHC@xbx4yX6qv)7wpxVVVb=`$pfh%8sr9Wdi z*80S5OQhS@({ru2zdhJ4@AjUFohR6mWp(eS=FMAAuPkJ+>$a_YuUY;1EqAcwZN(c` zcJUX5KG4h(bI4|>4?MNaGV=O!9ZS}vrTP8a7$4Y9Eqw6PbV|;t9loDuiGA27t$6u2 z%hrE=tq;GO%{lnRE#2^HVS4y){*7#ce`X~0-uwT+E{L5u;9I@j=O@O`EWe(ZpluuW zJ9~lk4nEGj-T=w<`nd&Mf4U?N_FNA+;e38$xg77(d%s+QUMw|}_+_?CCOWP~R?EY? z@=|H|SE~%N~dY1)~_wD`f7p8Fw}CKgn(s4wDWSaMvY z?^*P>`G3~`Tk`kW{y)>d9lRQ?*6vdBsH{1P@%{=ehWaTYY;ul@+ZY*Ne@)fuj0wKj z*|J;Heh zzbSQ>9LtRV8h1DNH#b^;cr-Il!)%H47s=cJzMtzamA3tR`(M!F)Fyeh>lO`5`<905 zlyV&_TqfpaE@acw`tbjn-)FtwJejx8mdT!3;>7cZwO{tA#f2|pO-&6y{IY-Tm&5yP z0|Y*Wsft$AZ$A8!<>;}Wod1gC&wTn~yj?ChD{bzU8@KN^nFkp?e#~~_{(Is7a<&y2 zlP*s={_os}KlYz@p1(E!@6Gw!*!j;XFP|457*%y`*S{RiSjm}MCjYqGZq1n|chmm& z*ZUi;@B1EY__U}ll^4}HWZ(qF;(Q|<-`yFf|e9c-pKyKU*VI) z*QQs0ZQlz0KJwQ~GU4yuj#`^~Eq*suuVnQ@uN%*V2VE;*Pq~(TUj2monal})ZYLdj zEBuooc$w+MEFpoauV>%idiu`j2aBzc=`*3TmkhG>MK#X^{74QfiYac2+SBq&WnFXJ z-v?{uPrcvpDfd-&%G%}Myv`eoW%tMDnLk*z>DH{i{_Wqxy26(3+AICyioNOk*8)>I z7PIU%=CyL$#adnR@qy7RwNpC`I6vf{d(6hmEX6-h)?#Z?shC-l!*7q9ll#u8_AS-? z&+jZ3=l4?Ma`d5H~_}AGoYzji*w$s7nW}4Zg0w#mvdql)|SzU3;%JC z*=d2IP~bClhCMk8Cru0d^6hN68I$c*rtrSPGG(#Nb9^)z7Jqy%w|#%^euWnK*hgZL zM-=&E`JQep;NM#JdzTCM?Z>8*3TkpUzb0 z=s17*tI_({z!kTQ?%aE1l|NtZwtcMafB8LK_x_#Z|M;6jLh9%JX{Xm!ehgY9Xxq6V zgZGpCIi_(Q$hM8^pM~>UROMNFQe@Fd&g5~eutZPo5E_}T8 z$*vO#QoS?&Gq)UFan}E^0q^$!pScXeZ+xfRyye|xDD5C4edn@_u(WnNqwLWa8TALx z%=vP4R^F~X`?mR2NPmrIUmG#c%Hm$c^U9{}`{TcrJ-EJJ|IXWT!@rX+wN`tHm9noa zJ`>B3;rPGq5HFKv?vn^UErV<8eH;AKqmH**h;xTgt*TU!*0k+s+sIlD(1R(37ku`Kce4W!Bu<^}Tm~c52sN11%-# z%uPSfIE%^ZEi8BQJ+|+8ud{O&+m^Qpn;%_!o&0?3;<6Um=^^{%qC%G((_jzi-8GHx zRa80ihJU#p{#z9NuC$qUl)8x==)G|BrsVWe1yfV$Dc2rw&RV*t_REKfcX$47iQQX% zze)8QKmLEq zUhjJ2iu^(46I1gl&qiJ{t#I)W-1?;X+2pwg1&KA1?k}9Jl@4oFi;J-z}PR8oNKO%W0;l*hUVUFSfyvMF+J02}PxyVsv=rvHV2k zla;=j_Dp9lIWGNwy;9?=dyhSD*|evg3f40Pe$+_Twcqca{NVdz<<5&%zchAnFunQo z_@}Mm@q@2ENcQ{*T<*Dy9sl|*zu)oM`FgeY!5{aNXFt5u zyQ83CYn=X_9D@aGo$AmeX?y?DO3%9!?_M}|*z>@qeLw!Zx${Kv+wW&prW%)B zSfWfPevSHnHwE2s8UZcYA3v>lo0k0dC_~F4!L1LCCd*tEKeBG!y5`RJ)3`Y9FZStd?3J8;;u5oad*L|5z{0y8_aI+k?Q^%)TI8X z^8Z<>WBf&ngrBFkrEN~W?cnuz)-j8>P45doJeVqAd+PeHt&)3P+~vA2{HU&)!{b-|v2sUNc>- z|8>x>*GpzghZtKmFzJ}Sx>@hf^r!qoW9{tZ0Jm5@-IIDkN}AsnGDk*Fb7@-gCL-`& z`-+`hGEeHSZ@4K{RlT7kX?D-LQ+=muqf^f`sKT`yh7 z_-?(FSI>$ABFnPxW>0n3QL|n*{r=*bD2{JAw$I!1FC3gAcxSC9!&L$0`S#Mg@*md9 zRZfW1XIJ2oZ{L&j|I4)hhqijJeByW|&L(X}b6coxW9+lWqda<5a~a&ve(y8Tx1V^w zwX<#Q`nwNQHMhLfTu`g=Jd;6n_KM^4Q(QhQJeJ^Z9YHh)?ah%zwx*9 zeSe<6IoQ7XWBjVjIR)z9C9Q0vieGtg>+JZxqEOF3tNh)aP4)lo|Kt9B+5V^d+r9U9 z?T>rO@ALP`=V;M+OEp~XH@9sS4ZQ4pbn2;H?rx_V&mH-@XxgpCd~%Ehlh*jRb?;;J z)A%g&bC<=ty+6xk*Pef`{-^pIM}wAml;?xxj$S9+^(*JeS4=;sbJp0Jq3c=Md|MVD zqa)Rv>u0$foAOgr_0+8dCH1CBL7$^)bQhKAoin>9o_b7E-^%&&1+$$;Z-z?83A}Nu zncd`FOZbX_Wpdu~GkP`YUC(J0g-I5ewxUS~-=?rs?R-Q#5^gC_8q4%-V^U z9=NT!xH#I~|K`1c-h3~;g$(Pa_S8k1^(j5vB75(B z|L4bSg$!I1jm>;?RktqwWUz{jQPk&yTjqN^{za#z1Ud4|T^C>$rjfq4=Dgda#KarC z?_}36II8Ho$y2JzxOB1BVkPah-0P<>2lFuLGjhzB|LPuh)ZMa0y$=~&y>G}W>P|oM zzTeI0VnO5f?(;{#Zn-Afyz5osu9)y$xgB##mhF9)&LGX?!zFBXFJ8MpcbN@uZM)rG zdv*VP0taSBvZn|>op~ZlZqMYJdqzv!`SWW3NBuWm*S#-TfnmOtgwA`XmDx$ZpMH!J z60s?p|L=|W{68(V&pz8H*8f`me~WEJ$;M|1;*)fK+FiY1ETwQW;OikLJ*VzXd$&pb zH+}Q}{vY#i*ZA*k`u{0@f9`vm8fD%XbF*K6W@hIuvwA%zX+@TVbV)Ixs=jY8={R>OG-s^EPf6noVWL2otC_7=P^;aga??c^0Z}&s;-*tPxJUrRy z)hBi-@BF>rbN1H$zrRl5LDdgEOZzUiZyMJNUIe=zGhUl5{`kC=Hj{#uYM%X~^>sD! z=IX2t>rDfrqjota&U{vIzOkkL{^|G)^85bP?#|;6T4`1_Zwq_n2DdBAUl!V~3Eh3D zXv_Zf{jqm1Fy_8sNtZmFV;Cg5^|kSCrc2Eduf96!-HDWn*PNcj93a`N*1NV^ht>4A z?GsBkjw#bWzrRy{Pf=I(N$slzil2)ePV(th1xslqw7$z&!rvsfvOqeR?{CrN&-!V$ z5|&l0Rx6$s@bY@?U9!lyO61{N20=Y z3@-h4%)GThKK7y1{Q8$mO`rdtdH%-yUoY*YbN;V>{d!90st>y(^OraaEO`EOuf9sp z-JP{r|Nq+m zWLdy$*?4HuO9^#Gx469~Vs*vK3jgX^2xY#}^>VuS`{AvSosaMB-}BtyAMe&bQ4{X1T(_Kcf%diUYd3A4 zJAX^;-wzBHO7qwLDr)<5__jG`@w1iL!TAh~r&|}KbbUN~u607=wW_XS6-)8Tz~_mx zSeCq;Yot3xhmon`rS1P`s%ovXY~^;mw-w%1n0&~XaeedJsMH-Z*J%oSYZspW{a5w+ z+R5qe40C5sc^|u2%kP2dmWg30r`sM+XP=eL{^+UQG5-Cf|L?E)UXr-#(u2HDvowu^ z*%L2K)sRbA&&jy?n*WNM93^XC@A+}{@vpzfzZVuOF(_SJGIb+!v$CtM%8RD&Z;H>~ ze81--GnYn7h1RUIX9XtNI4AGuX6l`z^6JRxgow>W4E8r39_5+0x1}?V>Df~87IF9Y z_PtLNw%o3;;;0d7(NXR(mG!2FaBP)4w|Mo{nn{O>8b6z6KYLD7C(Pm zx}p5#)bC$6=NWwdys}NLQDRNx{@%Ffv6p__U=XuX3|`4~hil5-_itaGyj)iIvrfa| zs#JgV6w9w}m6?|xcPx0HvM#v(%k7y#p3&0xEt?qb-0jwH{P2Cb&71!Z0?+>}?)_4} z_OAcova50{4VH3bO?c_&=l|yX-#61A@BJKN;oIjnjW_?!>k@t2e|!JEJ)dhP{D0oZ zKV@;f_sl+hF5Z*J8hFvW-tI@t`LFM13VjT6{r>B`zFxqs=bsL}U|Dv1YR04B#Wov0 zoaZ@wX5LSU9Z8N`ct7lX{JiaV^7nly_p86xOE84RFWwasEk1Ep5})AfK;FWp zp7q%?m6~NvX_wCY|D)JGasB?!vtNH*^d&Fn-IV3lPfI+ee%Q_J=+iLK;LhaCcP;{a zo1GV3^eAOc>C8->$8zbzoiwXWi+`52d@b*ezkiQ!ZPb6A8^I^ats6GkiW+%o{j%S{ z$*0Vf#W(HslLLC^&R&>#`M>qo>#QI3zBYdmvW^!za8>Pt>0*`X$F@DLQOk;Kd@`}; z^lN@jm)DIC-L&%TEp z7{DV}wP(x!_xpdSKVdX^@@LTvPqxtA_eCpjxvfvVC$s#M=S8h=GYY>Q|9|G*{C~H0 zseMn3xVrn=yzi3lue^C@{pIa#rIizUj=Id5Wg9Rh^$4ecm1EP7ZdS#{M1>Rk6IdK4 zF#Jq7!l|GlIQL-R(}*dq!PAs3rtr(`I=jqc>CL-2n>@eC?tWi$?q>Rp&r$wQYgfGr z4?S-+{ag4w-hJQa?Oj%0(N?vp&eZP0wAI`VpYA>VoZxol=Ng;naijsc_X&TBP>Ju46VIbFSKRVCv2+R zVgIz$>Vb66)t!5}Y&^FK7VDl&m|y=dS?iDe|Mh=Ym(+jzS+00%(HcF~;Ov{n)Ls|$ zeP0@Qrm&x@{{3F%qk+pJ{q{ZVd3xu&;yb22+@JIo?B4MH`L~8Wa#vP3)!FTTep6c@ zBIZXnI}abhpxKZ)f`ryaCObQ18*LM^IjFPtxx?F;!wujaJ?@=FGjj}BfGXt zxWKcflz%lF>pbpPem6J0=C07=oblekFS$V}Zq7^gjW1l;(ofIr}XNubODBDfv zC$Bm8c~=ErrS!6nCC7gRaFna*tmFGO>Ap&U$9L!dda>EdzD#jA^Xm3H6|8ZQC^%XS)X9P3< z7Fz!5@74YDxXbn$DR#cftn}dGofqTAeKTNpeV}r7Y(;6~?Z-k1dpS~%Gj%yVn6gDe zs=(R){Pw50+Z=w?u8ZI8mcBez`9n*cX* z91U)(KCC*p{Cd;IKn<0kHB6dMbT4>vI8J`!YTL16L*$;r76zegZ>&!1Z1{H7U#780 zE9FnzbX^w1qgNRM6ZTwNUZJuyoApmC(~Bo_GAe^s7C(9WG$;SR|LNa#uT+2C$@y0Q z0DDrPX>RZ}*F9zB0M= zn4!fqxl#4<=aMhe!**!0vOh9Z6ZKdtE6vb##e(^Rq|0;ZJpz{U5w9vTPuXtbxv{PK z?(DT{>dT)yia%N>Aj0=bHF;^Y`3kmaI|VdNh1+5uHwYf>Zkf2%G4r0b^0)iCycd#$ z7ro%$dGyR>LFH!$Hs@Z6UF29$R@VRf$Mg7Kp;iB1RI_Zh4RaQG_|Y?P!Bti%mTl2d zuXepk*bqIb>Z|A72d9mdCY)Vj!*61n{o(A(HB!}B=kf^9zT(!KX*`tOf!3|pAv zkg)ml@k1YCE<~rbTFh4|pBccBCod!ZZ|}6GopH7srgcqiQ~dFE-mW$^?lPAcw`G;Z zC)!sR#4I#%a4rkHXMUzItXGS9_pgT@=3b#@QYDt^VSH)RIxHmXvRWNKF7*8VK4!sd zCsFrv+w>W3WnZ7x)zA|!aDe5J@*<(9Sut~0c(}zUT-*1r`1+%B=g*z$ZGIfAQ)7Nn zYC-9C2Uh!c^ZAd-@LXkHsiWU}rbe&x$ln;PrhUJz9lG)^@ZG}M4#Eq%Zsf|$sl9lB zG!I=QggK$NYBJH(|>o7u#n<^!+<7`1qtq)STU}%QlE5&NJfhjJDtY z{^s*}OU2V4{{LD3_W8?y7dPg;(sZ1&rw|P)nl*nJaiR=DJ z-~S%2uOBQBpILa>M(fg1k< z7bDpXF5gr=$`<6Z(56MNtHi86?8#^KhipGi*m_#9=vedKezxt&9wq<8PaFM>l^3dP zTxM#fc<)5~_NF7kbGHjuJ$@(uD*xfVqzk4^9kseeDnTSs=nEwT=hD;bfL7)Tb*@hbuBLYOj;3X3EbQ zx-&Pd@(DP9C}rRMx6#`VrOWGy?awtA)!)ATP{G2BKORb-pZ5AshHmxwJuez3%u2E_ z5(+b3dO_n4_lnNUFM9>6o?34Fa+YU`w!?uPTTaj6S<;*)SStO8VeJyJ$L5K~o4?Ksr*vO)}^z)sGs^%!_0OgmTyZ#<>MC{4MPfN9lo(;+T)bQ z)G1B}s> zvq>K7?(bOlf6Bd*$k<&8htIVv`u^tgmy6lx!A?0D1z)}e zC$0r>REgh~P`}-p_b}ziIXRmh5ie6-e(tqpKhkR7QmCD*$9E{=cJgi}Az7Js?$wGB zTVLl`>wde-y*REtueaKg`^4!RclEFDSnsWWYw6pF-)1-M^ukz+mwf+|$0e7U{pwQV z3Sp*(ScWXM`hZLOcl>TVyO-nNwe3;orW~DmKRt2FMw7iIhVwrk3bvQ27SZ`tC*PVr zIcir~>Al?vW@QGf0tx2~4ZJ6d$!3NnaquvXTLAc zsLy2l!Cle9c{fmt>533 z^!%wGLW#=rKP11jioU>o{;xvqFZKFa|Nhzk>R%B%@4^H2=OJ@{wK{XCob zn@#nfoZc6CvgY2ucfB(Y+RtL0m;1IW-Sf*`Q+*DzjlJzoi+kFRrd)1#@yF$!#m4%} z!DsSf>;oFF*vHSAFV3UR`emlsj=fts0vZlzxEzn(YQ5-0_`6%bc0Es-f2mj6{KdTR zZ>LYZm6;Ov@cq&0af{CX`*Z$cbKJe}Nv>hH?|QF1_jt#?Imdmc?Rpr%zl1r#F!A-W z(?)XBX6NO;VY=GV5*}DQ>#~W>7Wc*nM&?HtD~jDB?^+ytu|{eaON5dW<8rZT&I5;1 z6FkI(Zg2T!%f8|B!=yys{OsB9&w2mOkM(~4;N`u&%G$BITYbZn7o5L4*ZRALmfNPa z;+K2wy8A5B>zw|+_UffOQ}`Y}az3EvE}49I|F%2^E~nSuzuF!B$8yYn25*ehXJ6F= z-z6CuFX0$XeFwY1p#(+1n~he~!%k!T;a&zW*=z_i+86KDMQ*Z9WqOF7>TeaR08t zVj5cT;KAXhP%%ckmah2l=*y>S6-=&wtYiLvq@$@bvRtObXW7QLZ{A#d^}{iS#WB%z zI?vZ~#iE)j{jK#4D_@9pZA#elVAICW8)9E4#7d^67q97Q{IX!zWcU6T{rkS=?md3* z-afrgn=cDDu?1Xg-LmHTzjL?63}&p}`*U)Y)x$&E@2IA$_4@VqXV$;>)Gb^+`^pY! zww5cV|NZxU;r#XHe#yi7I?1W$4p}`^d--{DcV&#auIU}e1G6SMD!;G)WFaCPXSbiH z+~xDx++`B-5hcG$yE{9*{}t~$&b0-Cch@mG!j01 zZ~ar9Em5lrkvbMrv*f!^u2tRZlyGUE$b`U5s}uUy<(iGBbo@V& z*3hlDPV0Hv9lkZvTSN4(ZdE_&bEY-%_2jFoPQI$Yc&aLIVQ>dy2` zXW!?Rw)5LCEvemBeoyo>^t28xe!_3Q99T~zk zcqeF@FYs(+$vtHDsB!&8$uC!mjFe+F&en@MeoJ1pZ~nOg8I}j-cip3XUy4nL=$Rnp zQgZLtF}-P-cDjt|8BjOYYrpl>@WdSmPKbD7{om}G2QWgUf9gy&qu#8im_#jeKdFc%_i1Kf{aV-eYUZpe6YJl4i-<9-*nD#SoVP01Jl%GF z*)sRg5~T^3+7C3BR^6AgwOMxmxA=bl`@f#azuGxD`_!!Vb7BJ5&b|~(chq3mdgVK4 z+k5I(7hyKh8|};@R5QU;b5>|CM^(`}Ajhk=Vcb z=6Bye?bBYr>VEKVn}FV~*DK#U-wVrey88Eckk{iyR&nbEj!&%TyS(jZuH_xZCz6b5 zoEsLtzbbY9kkN$DYeC7Uc22tTt!CD)bKAlcEsvTVKH*`&kn=KBZH-u2;CF_#j9i|V z85ymscE|tQ9R4z<`NI+~-COtXhxUH|_m}F)w8LKfi9Go`m=e^%) z4*aFty%fFsbw- z{N6pfF@w9-N{ZEqmp7Kn=~&g1Rq0hWTFqyo=Ukq7B~VNOC)KeZB0Z#rw=15?wNauiwy_RJOLxy~u6u)_+Hn&Pj+(XJP+v_n?r1!N;RE zmAhvY|2wp5;;akS`TJj=Pvx?F?%)-?u!>PA{gj)yn#r-Q?t4~-8$Lfdc>Kk=#oJ%5 zv7Iw>g7LqfOW&LQ_;65U{_o)V^IQL`UwQN2{KdiM;LCRolq`7~W5RW|G}~%{`u6z? zxBJC^)NN3mA!Aa>%3$dBLi)_);JUK6lWN~BpW(NBuEsv+!v7J>PAwuD96#cUO1Ey1 z$rWDoW~-{0T4~CsNk=0~+<$M^+T#4fiKpW%!>{>&KkH}aRx>GFw9L=a+*w^WJ*Y!r z!I|sL0ZgGM{?G7Vv?}WMjE(HS3RxDc3ew7axApfd2fnkrv{(cz9N+tFEs||XW&b!^ zwJ!S_$7hj%@PqD~zuteWbWTg*V#AF2lE#LI>_1({h}<#L?vEf_b-+)x#25oo}x^w>@IR zvzIS7_E)aUE`8dv?c9{s2N?&nuIe^b^t2eqM$RhP?HXa;Wd3{B#*d=AypCVJ#eHD9 zPV3KJ=LD7q*M91(RM2t}=xMTDyi$Qb~^L^ z>z`uz%NhUApE>mZ-(g|%+moKpy7 z9m=?!*mgU9xa~0OLgNJ9xAQevzH(^PdfEJTv8ms0UUI0|R=|Jz+PUxd-tNBmB~VD3 zo%`9Qgfn@J5sJD!Vh@-7(64)X{l(h%`;+U!=U!eKesS9_rky`3R18jTUAKknv+cJH z*NgQoa_-&3uJ}sm^@HMUYqPJL*04#R*H8^R$RV*m#7EKf_mT*2Mm15BwI&6+mnC(} z*nYEoi9R^D*-GX3VZHX5vW>Rv=g#XV=N;t!Rd$4XYt~zhzgJpQB$Xsjcr(90oUyC* zK;`|WX?1DJov)fiSQ{p6^Kkv~{EWxn8Oe*6_r`SA%rWKOkoY~ga6?1I1e>k9-K!2L zyFc0At8{=PKyj1Mf$-vT$8!BiABB4(3!{|Ii)^l9e^>QJOqV@<+Zu6~Khqf==s$bN z6T^HZB>0ufouH29o7M}%UyCk!uIS;k`9ray$^oCX39K*MWR|NR7g<&j?_i)`c*4hD zQHW#Kv_swjFS+XSJSRLjKXs94a)0%VVAYO2|L^&3c%9I-%SPnO@68@ewzs*&P0w%U zozuU#R{ra$g-4GTDL+4&m)FDk{@CxP9fiIkn-zQ1S(&+v75L?>yGl73W1m{7dU#*X z>a0j$*>cr#d-|53wK)uOZwwsW*x1hQn7`>=YsC|jU)DXH^Y6^``~GwPinRapuPfP$ zPtRlPOZ>o_GAD59*`#ZmuE$o)b3LfUQQQzJa$QmUQE>{rr8S;}X9=6)^EV zconufF?U+}4AI5CfuG+ncHdj$_gw0rJj1Gn3!C2j*1cEz-R}c;o2d4h`jg38_nG8P zzDq2>G$c-gx>1i z&cBZdy5=hUVfndqN<$)3uuwm@N3PPRu(Qj29`5cc+v(80vi^e65{Btwhg5D^SspIY zHBR*I-*WHr`)jL%yBIWo$a#OR_Vs_*^+L0F^JMAZU$&>OZuDxBUc&ak;WS_VeB-Yi z>y|KWnsU>>P|tSTvp+HCII?QGFE8bKUUA***);QKJI)+ruu${Xz4E@tQb9xOoKW|- z|3}p0L(cwR@%~l$PA|8owSM9K_q#Q=^sHIwuyCb1!-jv6Rr2n|J14~KV$opP&nYuw zM{EM`N9~g}%Gyps0t`N>ZOoP$6F%)0RS(JyYUbD2wkvkQnOyOd(|N+lzs~=AXuq)j zhxh;1X%1#?bGE3i`1VZjmSJM^f`ffk8phEMo4B7Ye8H{sH(l-`>*~b#+wZm?+_PHJ zUdBlGWzHpAl}U2TRD`t}od3ugVHfd+nR@^CZC)AE#^B?2^xA(0 zSDA#f&jfG%+;Z@ChgP`3zvSmT9b+BuCZ(UgR+ul^KI~4cQ zqicb-OH0s{s?DZHk2&$4nB4Uz^46nylQLWO`$h<{Xj^Xcd(X_j_1~UXZ~5Pu#$s@QY3n2=Hpk~p^Uus#UHqtNJG;$S zj$a;+KU>CDC_FoOaNoVlUL5A@Ssy&gigLMUvFg8Xx2D;>M%BbmzZibWoJ%+uLrQD)Th)8*$2 zN3H-52M$(Vxt$-TUbNwz$gDDZ!TDXE)vl=Xx5Tg%ynbG;xTTxs}8b?Mco4_u#n`Mt0ggMZ4jkRwMT9%}M0=&nv&_t5I~f1VVxh}kR)t{e+Aj&j+Q z9e2nkZQfp6A(_K5>OwmX)xZC|u^{2J;{LVg?^&lhPj6v}Di+)^JJ{@*@6YLxZV59v z9L$-GLJIe29T&aL?QmZt@l}0EQuMrIF(z#0-NHVVL7Ephr%!IUYcuP$wYW*E!TQWh zAHlU}RzBR-QQ~&ebwbOJPsh59J)T=dY{?6Io}uhIZ{OU$1N-(lNc}x1|8L*3x7#0G z)@BxJx~28qCo8U`ZuVo(V*x@s3%h+nxew)TjM`km!Q0Kt)XX)f;YTXFQqZxMq7=F6 z_34F`JyRMLwVoR`ZfxP4tg`hO6Wan;>3d1?Jt+%B?#_I1^SPau{<&HI&;RR<{84_k z{%Q3Nf3btSrv-hMGx)TqyZva-_&6u~`nMPV_U;b*w(W<_)~X7h(PZHkZ!oxD&Bh*OHREKmt-uV^ooV{#ep^a> zc=AB%a&=Xem;U}gR<)1$_xaxcw|M%?9~YIaUhd1&dVS*hv4qqG0g|}|%T9W;t-i7C zP$=J@wevmK?5ycEJFB~*`sBo)&)?n?UUX1(k>RtQvy65gd+9hwVMFXTPQ8U2g*jgs zZl5)UpDNEOZ^-}D5O_)I_`&L#?mHWDxPI^4$?dr4%jZzbbpe_Q90rT-bjKzYZg+fD z$YD2`(N#l`wTfT3^q^QHN3@~p^xIKAy%T3YJ)QP&g6~2XgVnFzbMK$|Ta?%3_u4<^ zoRhviZxr>IxHRF(ylsnka$TQ4=YJ7%x}LkK?eL~Vb3{^k$z>|(m51!1KcjDnumPc5`4*iY-7t5Vs_Au~MBXCr!0Z3EUb@$GZdX8Q{H9-F z$;t~qom!axIzB{7hKY$)rr;ZAzHijrw~vx?pMMkCev~gV?w8Z{qR_D0MQ>fC7N)3f z&0D#{V*dqM{$v)Jg0i&xm;YA1%xZhd@I_5?jzM4K)!tLat7Y6Y;ybwXW44wEC@U(M ztu>l;({O7~zM`;*?dQfjEOSj#oi22Aa60U0(kqH<+{Ng$^Uq21nT7|aG*+brMyo5V ztvPKa)6^+r;v409{#$22!eOy9*PG+kdM#l77?IJq=h0fW??0be-DR3E)9qbKz`_~7 zyA)bQa~Ca8PPw$^OqItxy*DM1nisYdaAc@OsBPH1VD0Utyo;AREN7j5N9gk1NTDyY zxukzrowiu`wMw)rE`qUj5yKRfm4Z*)r-{T}N{$qf|Md7(3gZOs0yAO02}}N&r5Y?a zY02l-+8R{Knavk`v}Xf)*r$xoJWmFD>RbAQUL|9^k?zxb47Dv-MW z?7MsOvi6+)=ELi7iT%j8bsN&Zt!iaw-~DB(e(lV->bIp;zt5JRzLW4_^ZJKTk7VR` zzde-wC0OLn%j3PXuW!+hE#A)Xdzt0abgc^YRm*b9c;$|^TV!od*IK@_twx_aeNx6s zSAXr(OF2qP1fD2MC%k)5&|g;m-6+oK{q)R|rk@#}{gDffIV$Zif2tO8Pt>W-y82|i zFpFD$?1t~X`F?)qd;)%k?bVbPwuw|@V2PMJnTe~`u4txSsq9S7TYvvPde?SskHh7r z2Yi>E*T%o=TcC79sp96^X?#+%)(M`BlKJ(vY1{PcFIN8TzdV~i{@uf+DjP#9Y&w)u zgRU=)4B1v*mQnw|;hns#!VzuG!%Lqz%}Jcfu%dK>>`lq5n-o2RA34>|x@7d?Pas$S z3Fn?;F~$5I*9+w9^SUQ;S#78k^a_>xti5qryRGbz6z8qeUKCV|b>!8#g$N#M|F^?R zj3Ih&pHnZx6cJ_F^WwZ)P6*7Q&X&MN-m&54`OwVvFxxx?e7C{&J@JyrtLg|7)AI z$FOfDM`4fr4EuopN2Cvi-3y;*cJSOYm&?ZvJ)0OVbw;x()sXxDyU+hcYJWYqOSk*q zedQaYK-Il6@eR9o@1FHK&-C=-7Jr|(?`u~-`+rpbvh?~rM%n-0KeJ$(lVyMU+xDQd zPgD79zxu77*LgNM{mtH_MEUmY>--s|mCFpdrrWOdnYkv{^z4lC3yb{Mtob|7YR0qf ztv&_}OEy)U*kb?t)Qg7G8nYhdKbMc&@3-4Jy5##iTc=smm^_c3*4-4S^6tExL7VhX z)42M@+YYabY^&V9++)_At+70z6FNn8PNkksGyMLovtRw&DTPTA|0C|7S?A)xP&Qe) zw(ic?7Y(;lV(qX0y~%e%XZ0atNtHSBr;h&m$0_xC<2SCxvkfz5EnVt5r)vsB+CmoI zS4NIp&TBiS3J2!g zyMOy|Z@{#}K^tW!1cvI>)Vhat{1@y=Ub^s7O^rjq$|c=BP3@8i&W$T4?yuR=uN}gE zpt<~w@I>}?2_KzLq;|~^c9{5Rs)7ZF6{}w3#ZKW>r%vUr_KZ85D6k}JS*)aihT!)? z`Mss5vpbYE&dht&BPS60;Chi#PiyDxL-X${?FbYXpSZqB(CYlvo+#U6;$>Wg|*MXop`;S{p z><^B$2x3*AUjNn3Y~A(s@~d9{fAL}>_h0W-x03o8?^wp^Xs3j2F6?~pZq@AOf7f^Y zXQ+PIt7oGY!9UA&(RBxJUV&g0 z*^X$RX1%yWwe9ULF}1pgvP1P^nakf?{OP-j z{pP*zzLU@Cr}6$Zy3VF!@VBovzvJ=M!c*%`9^1V(td${yA=38R^O{zirG4I;PxWq@}WH@B1@ZSN*o;eA?x>xa`AYg|@EK$0qu2 z(mG~Sz@^0zkd^wa`$3WJk^F$EEh2W4Hm{!b-&_A|+W+$_Z~ouI^?yd*^+z&WN_=WbL+CG0VA#o$gj#qIpbmo!Euk^jjXwCtuPl>KrW5S_(L&k z8WIB6B=2LheB83ZTJcWJ39E-0EPt*m{#ud!W?T2dW{&kA8{Y6RpAY`BI<1uFZ~yO| z4P|F*ZFgVTCB0Vk;rz?*btj+7pHpwKe@%(UJT=Y&g{IO-QHf~Atc4q29M742IiYX% zdCdkhu^EeZFWCC?{MPL2X%n_M_dU2HJF&R`ki)~6B{;9`I)*0 z%a3|)VoAyKXy*S~*vjCLb6It}~`MV2xf9L)`cz>CE-6!|bd?wq{Q$M+? zKJNDEJ}Pje&9F7p?#41^H;%=RCvTQ8F5F+#@Wjvma?_&48`XCB#Lf-pxUaOq1<5_m%X8neD8< zb@S$;GZG1_RyN8Clw1$kF7eXM@ARD|C**GV7fp)@^ItU{Xgp@7!1#Tytb)l zGrufDP$V;#$f~Ooislw_T>Cf2^@x_|tDh;mJ$xFsN@mZ{-1oYESK57(xTJ1@>`Ud0 zZ@gFz_}i@i{I2xcO^yp1p28d4T#Q+AmxVm4*i=-&wI)9U_Qm?E-A%a#f7H%2j6Jb`A_JH7ryx3MWCT};k-7nru&JrkKDW4s#>6Q z#vt)=!Lvj?gBdH5!auT{p0eN7qH*83Sy%V&uG3%mMVVbjLC@8EQtz$rVZA)|JB~Vp zzr7Tvo~&7WzfwYQS7m*6_H?}`CR>#rb@09at@g$C;ra9W9INluREX3b&~8~^q%r%> z!7mx}HAUG@KG=M6^(IGwTPB=yD?Y?$9D4NgQQS>#&Em)j$6qdFIP^TO;vCbzx_8fC zyl7HOZBQ z&Rq?r%0*5hb~9wte%;&qJLI4PS8?|Lr)y0Ay~?khcyH(bWr1^2>Jw%iTNeH6?X5K& z1@;kA4^s4G_$(eLXHH2|yW4pwuwa$rIz1>3M zoiI@Lig3O+Yquc=|*&=uxZuW_yYt-{W(Py1E~ zWL}r{cr#6TjpW@%k!xxX7x@2XTgSO2pX*;Le@?2;M82I$np-ZgmM(w2Sn^I%O;dTH zWIlT!qZ?=P-8-_aiihq@Ia_M+eC76qpC>LWROMbi#m_sedZGQIp32q zwl+aj>-4X7)1!=TqPIn^v~7K?2;Vuu?&;)uHS2TSpefd+Ybk_*?#){daQmk|vfni>}Yvz4elw zrvu}j1>2`x*u_)XeA43b%$NW#!!^4NLgMYWZExMl!)mN{(u`%j&hGzPo8DOdmQ^_X zJ5BAe>RQ{}70nAypEeEscT`Zo;~o2QnRLdk?Zyfw?OmA;_gXUpnVG+3aLE1LXVsE- zXzC~NeRm5sSwtkyY+C5DE49H%X@kI&?|;9XudVy`Gx~shjQ6v7J|?QIEGxK-|K}X4 zPrvpDG>&b4zh<`9-3{5LiWi!u)$(xdWh>myV!Pp)#EH*S&M2LVx@n;H#K~Ysq{24g zU+?bbuez)Hdckx%raPVIH~v31=R9M@%g5OhubzFG{_xhm3u$LOqDuel?mX?#x5Z!= zQ_*9Y_$@5F;4ukj?B*! z-c8@aS-=}?a_rrkGnX`c3p$T0rKlY~d2;3Sm}fG~QfpOHuWVf^{8S>ucpp!LSCY=E z)RPrgf*y0PI<5DtZOwnTS1zaEE*S(f)>sD!9 zy7hnT?{^*ATHKw7ZiQYm`aR>7gx|JTuXiNy94KG>%{$gxD&b~x()N`_Q`UH7+01|O zs-Z#qF;j=s&z$Z98#QG;4+7C6krOirXS;ZamfH;Ow!^_ep*r ztGfBop(h7?PN&8S-@L!uH@Z94>B#nN3*UH&a(5Q1TXXOqW;rUfkg@6BHv@CAMe|N5 zKg&(bu=}v(%kz@7eXbu?u8%f<7}ru?u=e)rwEt3{I;r4d-ZBrC5(1md^_3ttj`VJNms6{xBJ2R z;#kY9qudb>;`w8YcV*tQGm_i5Afx7uiC3vdtJ`(qJ9#q2OCB$*e0lBKtKa?y=dR-r zIljqC#kJvfq+_z+oayyRBDF$y?r!jS`2Ncpr;zW-5$@KNC;BvAY#w+?I zLSnjyAfKs}>0h5JxyNx17bj(!`kCyiuQ@p9`kfzgRbKU*$=cZ5P=eFF%wd@%`ZA zxeI4rC=6iV?8=yzad`9jx+!sgLazU*?|b)q+P)dpj1!tREbU=7P`Ku0?{aqU_4Tr6 z(*EnOJpcdg_WQirPW+QLl*!KbM#!p1chD=etwBVcXg_cV5hj z>Wb`%IH~q=-;1xhGgTzk`RYD9b63-DTYGW*{EAPV5z{YjDO#f7u%?M+CWATiy`!IR zzLZFQa&6PDyqni0U+{m)Y%JNgauV|j&3*AdE*Ui5_C3$&cj^+4RKFppW49o9p2~u? zc@jHT&R8yS-<6}jsN1D(o|lX5mN@1;JIZe_5IG~v@66x0?mmB^;+~KDJ}vrqPh_in zf+ypT!#&S-z1uBP_iFt<7k|5-6N~&$8Wxu4>IAS&oxPymWcNEcn<|mw8~1jibN#RUi(9rXWtuE~{h8Z@FfOL*4l&z>B7IM`{(1Xot<{dS$P2IH z3LDEg5A`3&>|`lDelfSxI#B1Ak;6wxp0jK9f;Vh@V4ol#UHsdw@~?Ylec@fE^*4CC zd8T*YO@5Sm=3___LkSPJ@{OF+#ph?A|9^SD`R4ywSLb|mnyh=vFXNz{b?bv)cdJ_W zzrOy>^wxc*fA@IbT)%y3yMNu64=LOD-dz4VyM5c#JlCRwM+9!DFXUbN%|$tO;?|X0 z9~C9_yG{_hWt`FUq1NC-k$9}O-}9%-eYlrQ=-K_d{mU6+|CJ1TKi`|n@K}b0GwRE! zp09Ng@roS3m$$C%KQ)EZ%&v2F;C}YQriK{@_PL1Emb2=pF`tV4z5V^0Vipd)WlEAA zO7eSt%>LRkNnFpgv@f&bX``9J>YK~{+3+MYh&6(5&9%}S#e$WZ6fzV19^Ml&neb`Ci}Fu*Ti5RV`FZJ_3+w+rTYsT^-*^4z zrp1kNyEaX@_**P{N|PAtvSpg9n~YveUoH?6D1U%a?wZ=swjdX$%LhKY{X4zy_Iv^U zmY9E>KV+ufUw^Eyl!0MlrujLM8{Pr8o@|S;2z_zrNRGI4)*Lne-jzp-cGw+>KiR1_ zEjRH-|NqBPtO2B{`wr`mY^ zZAIxvy{>JlCOP4|);SiqM!!+sR1k1cZL5jGD}lyl%?UP45kV5K3(P-jMlZ?Vw(?VC zeqj{Hol^nJ8P06BfBxdliDDLwEqZ4Kzy0W$ksO-VeYJ5xZD5mFTc>#RuR5pJ|A*Tz z{0YB#{u$544@aY_8Ku(GAKdM!{QIGyuKL=a_~sAl6Plk-KL3C1xv-Lw=L@q8w&&gV z_%)eD^oH&P7025xvQHEwY7Q&(s2*^Vinla5xMJgkm?=gQhVP98UraeIWxx=)^!vew zc5mN)J7nkng<^3JKRbqzq&Y&a`d_wR`jT%~y`F&Du+^e!ZmO@bJi#zZ~2R7bByYQ<~rC zoHb|^N#`omPHj8w8l>fMYvO|A*Q_gi80UKQf4S{rXWyC}+xeJ_mC-6OX`?A8(`TcA zgU@>pCOqO^{Mj{;sbMoxoKl;>iPQP!l@3AAlosT&vupWD7;w-;5&$D~ae}%sW`iGvpdj8oY zA%SE0!r;Kud-&XEy*<(BzS^<9aqTjhb068tUZ*jck^|p$y=*;2ngp37xg=G zOMGxFb=|#HIqF_G^S`u*^rn`nL(~`+hy0 z_v(8QN4;LXb@AJ4J?hi#9iDGKR`TV;x_48;zpFjSC^p>q>dUqZCvNVO``h@L(_8HXQX8UgODj%EJGb*> zkLZV%N9z(KEBe=}Z`Seg`@MC=6_cF|<@fiV%g+D3tFOKBaCe#G{rVqViPtal)acz5 zR!~*7JF_(B%fk1bJDlym{qet)H2Y=zznkyRynZ`}?UaY`%B`X$T;3h|t!p&Wvd>x<=1*$QlFw~NyBEh~9jY|5bZ z!+fsf_w%~R#z7T}U-yO`)ZmsCsNA=6ZgYv|BBOA_*n^EQ2L zPTnr5FYPxf+Hdk><8`htYZ9F}-8z;`Smt6rTM7?9EM0hTrrxoZxqOLk^SKfV*9snr z*Adz)&hhHt>{ntluD>YS=xb{r6t=o<-m-O_;b*3p?PBVY;8|gnyEA9&J>~%RjKcdy z4`YhI-q0(N(ODM#;8O7BWipYwS2dqsmm9yv-%CI~qoHwa)AN`56W7oGE*Nutvq)9Q zpOrye8pop6eAmzO75~Q;Q6>NUV`Mx_!K>NjFZb5A+rPe&qQIqmuLr1>!y%Yv1<*D^M`n5$_B$)0jeyx0= zEvCCe$!NzZ$)^fG-n?10rz^X(qD@vey!50$|0>n`b0PCWId0}Xo_O@@wjcLelXLbs z*~|;R&-}3HKBOUES3+k-+OEM z(u;qD@B86e_4jJH&8_{a0*aksUlzOHt$%&*{pINA_ZOGu+ zq{?7??9`)}T?sM#JOBFKZEAR~YI5B{E$ep$eMPhO+L=;pW@noVbkg#rks3VxT@G@;)-m6 zHIpv>ek3=0*`d7IyWMN^jy5*L$Z{04#xR_W(0CHNc#VVm!*cGm{t6ty%7&FzKbsog z1#S)SViPx0I3%U(TLKIgtN`<`#BZ!#VF ze5OcKZ;h>McH<*Yky$A{N3NJ}vRwZC{{ObAPp%%f{G6?OTSk)2EaIanMl}8C|wE|apq?ozaUa(@nX|{e7=Pw!V zzX@w6Z@ZdS?6@a#$6M!`n1y#4x*vQ9=a}}ad##X`sFG*>gcf-N4uKw*mZa*S^aII- ze8Ri-Zu?y|H+sV{;l;781>xHrerWGx@cDSmcgi(x_j_04O)FdNw3cni5_M32e2;IE zm*WhPf0=?A9M4vF2WHhWo`U$;v244^xb0J#J5rddYWy_t1X#-~Z2~+xvg7Znf9XX!+=D z!`M>K6Jd6wedpO(|HHEW-F@@_nRTAqlLd{d=6bAjzL2qa9?R38GUvCOmA`foKjzY( zv2*K;`MY~+*&gwIv|)~noiTgE>*xpXR!qCS`oUHX30+gE2-;4d5R(?w_i+}yDWWmH&>aW>LEPt;yp6f63rqa4f?ixW1M}y#{wcfLy*RuN@0i>-@m=JB8$!44 z)LgS;|Nf*|&S-w{gTVXWel+NXWpDn_BGB|9mupj%>!Hn?zaE&qs#=xRR=dGm{P?X~ zSN$)q-6w8oTYAtS$j@%6KhH|ZmO3TF44xGyQsCO{gRai6QO=ZH1 zpnqE>559k~E?;`B_WRn6A&fyYW~N+~=28r6SzYV4JNClqXURJRY6}$$j9BFUF|D+I z=)IFYub;K$wTkmRRW{#8TfW{pHQR4#O3vH(|23BLH``~s9FAEcvR*jw)@jS*bC?$P ztlQ3fP2sfbzxV%+_+LE#@5}k~htf}1Zv88F=zsD2#f#bb@4n#=-oJwL#+kWOd^Y*b z&DQ?=;^Mz$KmY&I`Lp(fe@5$^y&H~M8$Ys=ue^RSt4oczmbL?p(VuL&cX5fhDRXDf!{-XI4u}_~$)a zzphJB`{3_f+pi5VTN6^)ny)=szh_}U$eQwRrY=+2!=f}oG~|7jhxk0wTeelVcAe+q zXLsMoH?wU|)BJZ>=x?+4yK8TwrP342OJ~iPox3mM1Rm zM|=H6n+Fz~_fFcj?oeT?4ntm@lc|Bh)K#iKmaOuO50DdEz%Z-c*8ZKJqtrUdqsQzI zAKdl*_rt9>b$-8?SkLZq_l05N+jVU*E)FaA{;kbg^|D__HP0!Xbyg#vqw7Ni*;zrJAgK8|V6oHEjquKYa_sDEds%^j(^iu2~rKmY85 z>fH6$0@O4j&ivVsx9;6X*149irp=D%VRTw^F>%#B7JXZfuDf$&Yd3CITHq`Ge^%Vz z$@U9#Z+#S6A6ES5=5xEO%762J*IfDLu4lMLuU6*wGnKVI(FO|F6HIQ^ci#H9?C1W^ z&#IeaKDh~rn)Osl>F7JM@|hjosr=HWD(8R0xAk~ytv-d{Fi8Zr!#y8AO+;je=+_ZSTJVsfj$Fkw>f8sapWtd`k z%!$QtS%Ak|@iPlgEnQW7v&m35P3l1N-X#Y9{oCdiFLcUHOmqI>@%P`tseJ{L7a2M> zxTvb@DFq((m-d-xer{^Usk`sepD=06nVF-@_vP`?r<$$xp_`g+pSX0_MpDW!z`Vuj z+2dQg4j$Tg{%-o7MLqHj_l0>@WUu-DPHyFg_mb?@mmlVc*?lfiW_cFyjdw2hWPOKu zcjb>iX__o6P@4F8>-!qn4ZiO$n*JA$t4S35w{PS5rQ+W*cm9|f%4yc@l(_hc#|1mx z_tw!y`+hCGzu^7eZ@V)8wZ8ju=TJxTxyiP_A}9Uryl>`^u<+r$`L)$QRpxFZ@ zB|P;Xo0@3guW!HaTDu?K!SqAzg_d1dZ-Ke*4)??NBknA_dS=7dN;!#X*QVW+y4ZZd zBs=AkmyKn-t@xk4-)tZKj$32hGDRfOi}44``TlKcGh`nG>98&?-R;sgRsQEcC6N!y zxX=7_-d^N0d3xzP%b&6VrnmW7>Wc2w7;ULu<0^SD_@PAAy^}c$5B^h%xwYQnNUWGt zyx~$-H|LjC)#BYE5lUNTCf#6`T`q9lEj_SWvF5Glp{8>dH`q6a+UC65_xiTUBZrg6V2@VOkni{alPSplmB%`5!c zpNcWf4w^Alnd?SNf2PaV!llBQGddf4-s=5&|K-b+vhUwdl~2jNusy;j&fEITT)*1D zLS7aR%`b<$0yL+7j$b4GqjYxW%UfqUzkTORPb}@e)WX%x827qt#=UbV_kXr?pS}18 zf2yUQAivzCJ#uHFOjn9=$1W1To3qFN|26$TvcH}f+dp%R@OjK~bAG}fr74B%G9UYT zuAciQSNU$PXKdBN70>4xKm2bD+EVq`UGOb`-rhPB<8(_->$tls-tUP_W1FaBj4QFDx3}9<=t9(ys__E zjl%8PJl`-LuKj%*B(8^DF1n}utkYoGzZ;jX89WMH=bLe>^mOc%ERN#;$I7GT@|Um& zXbL$Cy*{4lAJcJ??X6n`L-=vuU4}cht=#kcknxTk8bS&|4cR&K=hiSYRW4a<5bynI zQ{AO&TfEs%t3L}55nN-yCXzkB+Hp?vTInw*rR{BY7k%S+=fEfY-{=kVrRS11$8Pf) z?`ORfwL#aC-FtH_aOrZnaqQ6uqEM~O2`9L&gP3OjE2cN5- zDm^H`ELokLd-H*>{G-QSI~f8Bmbf)sYuFTH5i#+CM{qVT|GflP4{Zmn^g3U0kyX6b zTJ!hYSkGO{5bf|%@_=y9>Q52wXMAovQK~ypZC7Ua%Ydn$h23P{>)N-CKK%Xn^|_OT zU4AV3{_mkNd(pPSfG2BbO;fBF*4y``A>N=Z$Ytk_0JU?^cgyGNihnu3?@xBg`-{I@ z1D{D;oyQj`HECbwYu1LT+1%3C?Y`eR{*rb5hwH8XkE#YW-7z?3meR61DQg{N%gOlrjpUvQnmR zcKf@Vf1g?Q>glz=<@V3wu9Lo#nf=b4O-TDfHEvmdH2JpkgWm1?2Usjt zocm?E?)MvOK`ySB>$?BB+~z*AZChzYw^VXfZvNqSk0#iaK6ZZ*UB2I}zVhYgFkMMD z5!Gus*B|WuVGwuV!mpdUsZkXxHy{6Zq?Dy^+l_?f-#GtnWQs~p7cbcv<=Q`K+1&8& zO71Qj`8t**-UtdjwR5}Xx57Rtwnuxq7s~||XlQ68tz6i9X_odE#{+*3SH?&(Oqj*n zQn7;ZXKmsl0h_rVN~J9JhocTW>6t&t!s}M=-i3jOJo)o>&)IsaE-g4Yv9 z-Ni09nkFdkn!VZnO;0rQm1~vrH_gy8KC<<$jr9E2TN4kdth$&c(3HmMaC|w3{{vpd z{S#l#_&%+$JA_AJ%h9}F^?%>V@02fIeAnfm!^~A;PwVe)u{v6jRHDA>>X&)d-;%#{ z`qw#~{r9~;?QH$lK1*TtV$-i2Jd*o-8)t4{&&l+<&R6@CJAOg?_r4c7*CKwM+vxxA z0Pn7h_Ist;5l*~sXCEqJc_^jCI7{_k%gz~^<&rICPYf9!7T;ZD8_8}lsbfa`@4qT5 z1%4kcmW*HKxSQ|bQ4z5U?IoL(M5=B^mS5YbGc8|Q{i77yrBky$-=FBqcu@1ssh(*i z=6mbBtO}zpDY#EEIG!~jlKJAvwhLa`K9d%e-)dc(nBO-;;>VrG|B?r<>3-;zUz0W*&e7gIWyH~fL32oXdr4cKvG`;0Y24g_T zzioPp6_&EQN#C7b|Nr0LC&K?t-FMW8EYP21Z1Fbft;b5qreCaO?>m*OdnSh;*?f>& zYlej6zxIDSg2WhXXJoAKQVV)&uBu()J4HZ*W%Cqc)jZ~k4a%SIH@0|lf7*KOp8H~s zJvzFqY1Y$IcC1i8@PsGJ*Cd7YL0l_$=Tfz&kN0f1sdf0RW&HB|w`_0et(o)G{WLU~ zbi2;{zrT3lV!j>Oc4rwy^L^YhHZ&H`(Pa1XKckp)c-s4(eujvnwK9|9FB>f`E;2mPx5hrIV$TeK7X&p zr6znUvOBJ+(go0>p%XsO7_2@W|=>y_93V8mKkS{d9N+lnfHq4gVh%^cJ7ef z#gn!d?S0|@?clem9=g1te^0o}HL$hL`WIdQwf)Zd{E|%t^Z#Foir|m@`~Qj5nx)fU zmYoxtyFBr2Sohp18^aFnKezMJ&-}$V(r#~(yvA_kXGSic=LYw}- z@b|~v)19yLV+~g8*R?0id!KBwT1RR_o)XKO>t8e^FMV!! z(=zgP%ce8b=06YWSqPt;V7C0e*s&vrlT`mPBnm!tR-Cdr zVe9LX-52uWl26~B=D1e*KL_bcl*Kf53N_uYN_nP>m4uJKz?%`u6W@lLsE zN>2#awa1TxZ{54KDB9oF*)#fEl(FZAi#)6bs;9QN&oIBJyqw)Ua@mC?49q)abAD}B zl-Q_m%fdB1UGeJKV;xGo>$XXLpD*!!zQSqarISAyA84AnQPqKQ-E1%E61Mb*+e~vW zy3ea9KZAuM1ps#vag@E^+Cy&woa*( zE}uCk4>ah-FDno&;NrM^!MA};L6?au(zWGm*_Y{Jrvn~%EfA@)>|0{UzIGR*gN0Jw zlMm9qj=e2k<&5~kxT+I+_I}c_Jt*44k>Yo6>MZ+z+ahLj7C3g7trxlW?EUlrk&X$M zIzvxBoy_z2Kw)fwPR9L3+w{pXEp*#ELY2|O<$)fQ%=t{@mdiHm# zTDLG|n6H@{wC&hFrQ@QT7`7xF+Qn9S$#eTrUPF}+Z@(pb9c1*qBWb_ql%&TDpB>8g zvfKSH9iFUwi8r6^=ldtGt^XcezTR%x%oSzRewY0Ib^OKe_x}wSCa@h~Wb|N=_@ew| zLx9z!opu-MKUWuW#oFqBJLQwO?}4ms{@ruk_aoZe4RhHhG7RElu_kFjk=~2%Iv(~Q7)y*olnter*!PB@qLfj^6*Xykv-_B0T zbL2n9q4Qup_y75P5BsOA5_+x38FQ&5Hv8i5`pJd`Ys<{XG-}_ImIC9FS+4aPZi=mcE0?(WBS-1o&kG~19?t!Kf4P9j z-J*+Yi#RGu>lS|LGkkrhe&6$l2M_WH$p>;2DC@;1+Db2Hm()95Bi+C1>QAjAvH9AE zib4z?ef@B^=)^9!u$H}MExMtR%uf#JTfJTN=u*v0d%X*XuDULeU-I>4xfS2PQ|lyJ zvb((&82r%iOyZ4>2}#!1IJ)ny`HZe;w`-CL+~3#*%q<(Z^#!(+v-eN@Lgp68Ur&bF;=y7b3GamM2+ zz30wdrP+sF!V1^0q=8{_daH4nKjFYF}S>{UD?wtt~NZ2smrgQt%kdH5dr;ksSZEG2x=zN2T4 zOSoSbsqLvcFn`ux`~Q_yA09+p7Fzno&LX9HLJDW3X3~7i9~(MyO*R{6Z@j*J-Q~SE z^H&|}bK5nOt9iqf77CtC_qMJiQQckJv~ zrP|n?z{s#|(+(F?4bdhimb8lb+aKKJn{#%S|Aj*bB1-erPBU44jMY};m|<8i!!-ZV zwr>J!!cVV%&aln%-@Aq145Wnrv1whoq8De#*Kn}4{pH3RW!p3ZB6dH0R=s{-VyT+R zh3)sB>+E3kFV#_D{ruGsMq z4W9((9yVRdy5)#r$h{X~Q$=?0#>}*MHBrPsqH%NUwS)1>7xIg=w%%K!dvO29(&yUq z-Nd=G_lq=%KZx(V$RM*$c$e1ksZ0!R(VaVb!*m|7PCUL-lXa?y{idB|Zl)}mtZ#Q^ zW{7z`f6iYcSg^qV(W4xVe^s1c^rhD3n*Pdeh@15?XvZ_9jb=ME&k1fT?p%2PpyM5# z>c_`QtG>LLIK6voU5Q&oRbBtN^oLQ|$?EeooK7j4PM2UT6P}a1^$mC4zjtr9-(MF0 zul@glt;S34ZrNnfxghoXA&2YhWG`IY`}l9=yCLw*BIAP_nkVm=zz1l z+ur|nb1>*ve!!#9VEfhAu|zjWm`U$Ci@%Skoc{vZEwi$^yU!i@al zw|o)BhXTSJ5+5I#@W;#1S6BMUmWQY0Jw=6rrGHf4pYwdpb*7B4d+7@wIKJq;zW@FA zlaCw)W&5_Zw4M>TQdHgj?R#0;>4UPnudR)^=KuQkzkBP>9o$>}-u0@Z^yjS?o1YxB zRQq#%+u_831Ur3po7X-EmaHv)vAg?K-aN03-cF{@rYj8oym|NddECT;g&p)7k2bA1 zCj2L8PW!FA=A8zrMvjv{F0?%-%p_nLaN-cJh@^2y#ryU@JFFNQnoCs@b?@AN-fgz{ zNNlmf{ePD`xqNz?PIMGmUtXzG!|zno!c{5Bq|p-UI`N*C=l^)Ow?dB6pV(8>lavKQ zZY)lStDK@gMRDyXxyM?wPkz5MB~!=$+}uBt7?Tx){;=tGzy9=flXBB>ZHK?F!~}LH%s4(HKmYS0_nrPxtoN$Va;fR3 zt$jZC^LAN{S@|=TEA6pNXVJ{-|H;>!aOtdz-{h-J4Iei?Y~3)QNuKGCt5wQI8G&c~ z(+uW2D^FhXFpKws#+Rc>3s$jQ7U>Cm-=E>LWukl6k|N%9b5>p8mtx8F)x4vTna?HV zyFy~4rd?VA_YCg6-&Y^kIkDl`g1^S^j3d9;|MKHIG@qPaF^lS z8QJ33*LbUbJg{4PZ8hTsjkD*TmtMdAaI5pK;^%UOGmAfI6)X1Dtep{kz~Nws($(tS zmz*-aTHS8{HvIWdVb-eEdb3;`7)n{cuH6@Xy=voC^ELH<|9NXIlbOG`HO|;~HycOI z+8cF>ayqLoPi(w&ut6q+d#lrQPrZO$J?cf0;hU{ozPfHZwd|nMZL3(@?BYO;6{&qr z!7)Ey$c?V^ThwzXY#(KmYUZ zL;HjqI*fy6EGQP9pp}tusQak!ca>F(Q@E!cn=13{VT@tayq!DDq{oMcKuKJj^M4WwNlgZT}9BzDk zj$V4&=ZSawFTLC1A8d1Z*Q(UKrS2QjZ-zB}SpKDbx#)qJz2{l2i+MkrKQ-ChJb6oj zitw^Vx1bM83skRuC`(h@`{7hx$YvgugN)70zg74cH!>^eOjMfG7Rp(@^~hHxX>B&9 z%Z){s;?G%$-!g1`6t<)2yx6{CPevb;HP20EB&vJ$6}s~_aJ2PAaB=6%VQ5g}`}}?N z=AZv>-~aVkhD*yqO{F}RGwi^!=@IXC8@avGyIs}pc7HAJUDj*5v8%#-wsrE~64|nD zL6O%5^Q$`q^;QRI_D-_WY?XZ~GxL1?Qnlav@^Y>p+gJT`8`rgye}4rUo_}xW_~UYr zV@vJ5Yt`SYOSg9@KCkngw#Mw@vgk#LKraEEH!Cyu%Dj8J=Hxr!Ka~pq9hqe%YPeP&5BmRx z@ut{jX|acHCR|;|?Ta}Us61oY68hlAr}Ouw9t{Z-_^rSpdQgCILRnmQb@b%wy`RhP zSI=jP^Uy2b^Tq1H_jj@ryU#BCTP6A{KHz`x`T99=HJN6=oqx=ax7y#QF1Uqdx3g z0>x(x_s@R5z<8Sf|5W));X8~EJQR8@8F1L-*}kveE?BJ3IR7*HwB2cjmCgmncOG8v zxk>TC?uZqEe^TuV>uT)|WS?2cY;Cc}E>xG=-!gJoaIG;mO7D67=j`U4 z@vR%z*PmUh?#1zXir&6NseXp(2bAx;y1f0oovr0oJ-^A9_i6#_@1$NOV;{*DVkeSx8?7W|NY>Dl;_X$@5AEU)#ljyOcCSM z>shg7WrL`};yB;ej~?y$^UixptZ6zxf?Y(|7uhq}F;`m!O z$7xQ|U&3Z&Q|?z#8tIC(enq-(SPzLdzMY}(bU+OYS_TFahch*S|%mG zMe#5GI{aVzQF^A*o9y7`so{J~=S-$0R9}0u{n=KFvr+$!RB!&YVZq{R{^y^|Lw@Az zetTYORd1jD_jTE-|0a13ul26P25LXO?p}Ps|6kUgLc_@UyQ5hiul{H*Tk>V??z!R5 z?`c2EKF}t0;Ow&F!2&xY*pu#hq@)G(C~Bx5*SL4=(iDbOn+|HPKUBC?hap5<_oBk< zq)oh2{rfyjSIM5ascyw;&6K0{*-Odc)|9~c*$N9+dOwjawg0kZgKLjX1-l8L#qMvrl-(`Mxtwer|SBKoZ znm9FHrB}C(^xye2^Je_s@ME)97+sgDymxljRU_t$-`*6Tztk=D;d|xj&-)E>S)_%& z-mH86@b{Nvx9>0Ba6yFS;FD!Pt<+}7&gcIU+WVbh+T>_`o7PUt+xikbtir;nYdiun zb0oQ!h1})YyTI4K(Pw@^M+4~#VZ*W6u3y6=l)jO=d_lm__EGd^N)si zZr@%$dGcqGZME;xULW3U{!jE)X%yb85k=OcDtYj*po54+2XEoavs6yb?|8?Y^GL zE-{ApI;&C+vh3TtdFfK;-y64YcmKWF|NommcRF-tXo)*$ZmHk#ywUVp-{#B4>PFof zd`ZELNrIo+udn;fyJ7kE8T&Uh@M(Ryu6!o{%-^`LlUDi7_$#IBuqgYW^z&Cf|F_Jj zO|@k>&$7u&NcZMV=IKh4?nsJlnH)DGJ-vMSguhFE&zfI)n@xaFYYf2^ye~(n&D)4rJoJ!i#n2k?Y zSVe?suafe1&@)rGeO!mNjnlW7@uI>G*EPC#m#k^(k6{oxbH!-VtN@myrHQ*Drc|(U z%n}Oab>P@_?YV(F>p`8Pv)?k!JzTiuLw3MhKGFY6mOi-N@m6!|fgQ(=AKp-|?R~j* z-|qe@w$8A-uRq^qJoV?_{C|_<7yrM!|9^exehZPNum=D5|GzgLUVeA;`O_y~uKb=Z z)lgD@`=`(P>c(Hc{~nq5x9Hk>$rix_GiOAf>AvkyS8BI8@7>|!Ka{;{|J}YGd4Kky zRrjN68}=>qTW(rlIHx;dPxIf{)jn3)|8H-u{Qv7<@Rs78uH|y;UOZg7_5H1)?sd6u zFWp|g{`~7Ng0eBMYa=xz8d^X6xVZ5%FUt?rj92rkPU#2pE>B*|#A$IoctP=>o6v%7hn287P%|6(8ZsW`1||fZ)UrbD{$5x`Qrs zWKN6jwzayk&#zxkE{k=;m3=Z_-J@+?a}6wm8KxT+bPHKrRMKVpH$9W*2REzxj#E@ zm#Hbb?EiQ+|8o7W|36cI9nSx|vHY>oG~adell;o9UK-jie?9H_G}BeNb6P4Sn(xGJ z@{tSO-f~T9#)OR_d}j9q3gsW^ss6dA^Y&uf29f(0Kd-g3Uo%&6&cW+x4R`Lk9e;kj zq^xpo-4FI}FXle3)qV4s`M1ygn$Hz+(c&r6-mz^D`udD_&HEE5BhYwg!qrFn#kv?w zZyyVN^7+c+@OLu%*A?%dwxuOCp>Pe8(c3#2nn}Co)G>c4lss!?GO182k;gr%Fk)Iy zR4Lo-7uR-i9iPg`psucNm>JNLv-Y{uOK$I4-zn1==RQz7c%b>LWyK5k?E(!J{?DIB zt(ugY#UsiX6#NV&NXA+{pS4QcJ(RTo~r3a+_p#89e$nk?d;t3 z+h6=^cHei=P4CbS_dQVtq3o7|D}932r0kRUAg*fGxuxX&;`Za5^A>zO>hQd&#lYTv z{}zoJ*=Ip*p>H;y?S2w9@4n0#j(-PpKEAk>J*!@}?8~z=J$cpFV(cur|K0YtakMv{ z{rCR<>iTVNYc^loJ>{N-UN*04@!RiH-DKALGMv42y!SQx0jYCS7QPIc^~YJm|KN`F zYJsC_dY3~atfpE{VOUyq=9>8Q|AuBE8=F_(E$cMRN}qlzeRp`TV8eZh1h3=SnO|?d zjXc+7*?30eZBF2q<=bq#-W(~Hi7LHcuc*T@S=3?EleR109JRAjqLzO+^?MT6o4q%m z{3)oluj}s(zwj;W)&XJBNTK4*-(>l|m-D52pXHOa-7)*~HQ(2FRbrAJ-K%?U`|Iuf zUsAPCwc{7(*F3)cvpMT-hurZ$Hzn3SZ~a_wt?W0y?cMduzscRLcbLu2rT4YEgm?4$ z#?6~IUwZN5aYAC(pSrX0`C=i`>!x4wcVEty;Pff#8{=82dJU-w6RX6`R33R+Gb0pd6_$CxZk?xS^OjU&$Il#XW2`7#dOx6+{$Q{lVf$ZWL{ZW)xu=P0%q~J z3q6zm1^p~te`rV4T-LR2XQp3njMVMaIdJnB&$Xv9Yvlhu=89zS=~#ZgaM6d8o`P?x zW=vbK)Ntj}v<2?V7OTuu%`w^6a5Q~dqe*?|^&oNo<%N@_O#&Ubo=iHWraF~X{=9C7 z*{zH5X~y?|?ybCA9lF2QRkCQRg-^QR#Jv+w&)Vnq-rr!Jw+0|7$ z7!BN9OgAe`s40=O{&n_DTAA~mU8R%X-LvGnAKg%{{oc+0T+{!@oA3WuxBI*K%e&p~ zo4?JF-jTrL{J6nkjm<C*EX@-!4++SGcm}Z~5C6~olXR(G;?L@%C zvoqcwu=uFN$tU$KJ3~(6Z zRpU3UnY~`DXQw5wonPVFo}zqe@AIwp8~-zNdAyU^|I+&QR))d@D`FK&6B(s^y*szd zCrd_EthNm-KYVt!aqqp|?|1&0a!4}S?7yvr#f2~1+TR`GR_x2ISQ;uLusTrt;o(=u zX5{&sesOa2yk+yr^kgBsL;Qtl`tw7N94&Y#_-xzj?{BW{WAzPQ+WRlRdljQR|M{;W z^CK!mLc<%T%nUlTY(~H`2BU9x#G0(%-MSt7eANa=u7cNprf1yPqx~~}rh3=pHLZu@ zZeFZ|A1z24-|(sUv-!f$GTYk6ir3)8-UwiX?#p7pRC0XuBuX~;A zH1B`>@7MO0#veDQyqm%!b>8)47{hj+jzLh1S z^Y>R~=1Y%NC;ig$%-25sXvxcP!RVA6liEMA0wFcmyV563Ug^2a-jZ-x?%8tIj;4ie z)y*1OOFS>FuDfvJqaMQ=f#B?f#Dd75J1PrQ-5;)L=yN?F()Q|Qc*vP0+qRwg-%}}l zD$kg;V}*#k-cqFtywz2K5*zQQ{FrKQFbDnQ&<|<WH!!>D%e zf7h4GpX_)cExbp^IA-SAU)$&JvHiVQer3JoK~HbTv$lMxhRhAMRsa9)=G!&7tI^{o zJFDg2$VJz_&7QzeSmqg~a#TjWw*T=2_w^}1&-^RaI&shX?>@G_qGrxwE7Eh{g>_^{ z|Ne3&C%5Wrw443;H->j-{{7(o`t8hn{d2F0W$~W;r=q?2nYegMkqgWFZ~i-N3(oA( znUi*@slC>H1>62f+WJRr**^$;X%#ydtFP*PG(f-WS#jhwu^Oh!jAGA+wUw95!+F9N-Jnais|`K*(MO@e zOF*{ewY3>9qxveGLX9qNw6wXiczw;s?k~5r*I$m#-@7DcP@uX}Iv)oh!sl4Q!jcQ_|Hb8c-v`$DE1 zgDbkvn2v@s1c^B83}u?e&S1VKa<}}M+w+|JC+(hdZF7(9%tbc4CC{Bz+VrAiLDb^) zJEvK#`b)T!ao#dhr3_i7{;N(O63nK* zz9n2)bC;84SMU0!eOxvn7rtu7S=`;p(EMRm0FSzEncMTjDKG9{zS+Y6-|A7!nv-gO ztTQ4%n7ut`Qf9EeJAcpD4!_$!-|*d7X1%%n@vm!lo?ks@lNN2&-m9l{VN%m3%b2wq zGv#=8T)w@<{dTvlRkZDl&}rOVyyYg_m{Jd^ZE~{jUU2+S$epfquUR_*U_Bd%R6&;Tz@_Ooo)X8yV083#gm&4$NtI{ z{kQ(?q5rYsR$DHvd*gjy^W4)JcH(xYP4bHNaaAsq6|UNvKdb9n?eo1Gy!%(ozjS6z zeRcen1)kguH!?qd`=nX*@L9J=W|t~&@7*Kk<9a$z>DQjCc6BY*T~oUIcHRAXhMR9h z&0y>Ctu*sm^euSz)5BcJymvRu`h1f`blZvz>gRr_zm;d5(VFl%QAyK0pg=T+~nS^Mfq;jBfa z<_;H=Ol`H*Sqfua*XgcHpK#TDmzDkQEjxNHxGY!jYp9AfzbtZ_@w&-TiFq5Mt_dBp zi+>RkvR(7@{o2RH(eL8-IP>e>=eOS%Sef_aa`FG^!RNoKSG|8y{pG=*>f+gb8UK&% z;X8kCLAl@kWp{7-ZhmvLsbqiOJGC3jJU&dv()5}*YYnWCrYln@L{0r1RUR zoy*xXyX1GO37F|Dyz%pV@S2Q{zy*hDR`1MhE)?LEYA>HJ@X=~#gQv+n@$|EkR>n9# z^j2S_^lOFAqe~*}8XvTupFAdzoS&N+vUk!m?&S%S&hP(_lkxAw=kk^F9=Ea=zjgPF zd_7-G?89~D9s52V)xRjceveoF{-1e0Q-9tRoT2$pZDoRf&11uPm3g*bqS@saWv$56 z+ttX;((S6w_s_-0IAiPQmuB-n{5}2tVs!cb{MOC~Rtg*qfv4xpxp!Sjy4ZAOK&W`z zv{P?OuG(}=T_JV#X!ElhnGEL-Ro3dX$9^dJbB)CyLpsM&;hH5|@5u-Ax5~a=6Dw-f z{axNr;nCl#=>|0q_Jx+*f5Y}?PmZhhS~06x9hQwN!^&E!oqjV;HdeQ_s+i#W@bR>b zXD)f@$~fICd$2^{N10r8*7A!2N~aDMztStM?OWoeJMD^jwPU;VLHoJxQNdPs*QUG` zW6SUMkvqKcip8Y3g5~Tl=dO{vl&W8Ad-+DvUiazZmw6QAF5Y~qxi;vI_KWO?j^fs z#@rBhJ$ozVwMkR*@`4*rBm`B{gt+z{n)10V)|~b2!m5ky|91r4W^9i%WT_Vt*~iXy zto)nXCYjY7xojsxgM$tJ@2LOfx%A%69TL1QZ+Vu?e)j!4zscf+z2^?7Cp&R360$Kf zG3h9p%<$Jz>G0>2;vBXKLGNQ7SX3t%@pi3j68SOT{P-a`e&3co7u;`VPIxr!oWth3 zZ=AFx7u|inGxEp&2d;H;b{0#&rrzB@r)b8-`9|+8zkZA5zh`A}XW{)HSL2sokAFMs z|LtuzmS%7SKD+Y!%-Q1OXLU|YaY(zV>$`XY1R# z(ErWE2in`ZS`J=m<5*&puD9ZlQ)u1R*Jsu)u&X$E>w}f}9X2WMhs*CTU9G(A&RW)s z3Cm{|B<^UKvtt_*)8?b)YImY9E#a^?7!Y6Y1%b1lemx_9cvuNmix|2=tk{N=B=x4-Z)QC+l~dlI37woez76pnfZ>M1ilcas_g=m@3;Ov>GkK^zO22cuPTfF+j}Vf zxZGZ;gvoKzDV|}Xo6jmFq}T1Y_CNe&!I`xN?|x;qY%B=x>pz{!dF;(cTf5ME|4deM z_tu=PVhm?bU*(%+J9t)*Kd2Vxcz+QQwL-F zq6p3%J?=ktcP4$FBKM&@_uJ3^=cd;eoBiIOG;9BoZw=ZlMLk;0>%aaJ^*K|!)9&t) z`9B)xFUdZgJ>|BK^60_~U+k&Bf8_c3s-&<9uJ3~7cNbeloW8{W zZ})DE8K-AGytT`ytw8)kLV0)TVTRp@t==8Fu>Jc}-h!^Oz)!p!a?-o+EiUo=;S%Ut zcU6E-la)D?oppPjjr07fm%?V>mcHE(R2cF`Wz|>4tY6Fa#=F#?VKRJr!{Ao7UG_KA zMC&xYDOKs~|LpPGZpytldTH2e_pnd5u5S|XO6U&dxuVse9%WT==?w3Eiw?1y)3_o! zPDd53njF`XbLmt)zr38a{9&ELT@DxPdFCD9HJNIm!`@l=-!br^(R@p_$?N$w4?-#qh#?U{21f*$@ZCQG_Ce0?Tn zv9g@75q0!9C}UZ7d~uQGmB&whM67<@8o7b%)2g5SFB-d!ESmV>IO~R}waqsazir+t zblpLtzyCY`#QZaj8`#B;mwng0w|I86|An_}(=+M|bJ>`po4>WYdQWLfTbH59(r5eG z()4$IP;34AxAm2VvsF{G%h>-M_@lGlBSPtnEc*+?o&KW5t5?=-KL1}k{?{d)Kk>`9 z@B6>aQ2N}r>+?7zy6);)Nmp%^c(8lt4&V9zqU}Aai|eOywmG=PKjd!Blw{7yQ!v=c z(CM*vN@361%>K*%Pn{-ST;wFWz>V{^^!X{b-maM#J1dPOW_5 zq?nS_YdJBa^i+}gTA$}T#ha^7J8lSw>;CO%nDXaci)7|BW80eVbL|)C|9fU19$axs zhWRY#oQ|UG1g^T~uh|JA;@*)S4>E7C=W8h^A3D#njq}~Vw^?HUvMs|I^Kb2+`t9w4 z2cI6@X<0vwci)x!RW~1OoyPR;e8jE~<^l<8rfR24W-RWn_3wRCXq}yM;RM_NM=a~l zRPt*pv|9bQ2%ockdFk;Nof<|d8`Nf}+!Z`kxp4=V9^BOWVVIIW^tkY6)BLmnTP7M+i6>h&`X;V&swelb=P0o*ITohxVtr4{dyYe_SOGiXjH|#HG%J|RF_@L0q(TNJz=X1 z96ksgJG$lYyUV+`eKq;J{@?Tee1Bj2|7ZI9;_Uu+Q+H0A@-}PXkFyz;y%#&6pgpgV&urNZX`Z%>^Es*eR!nf^;+NrC%l$r>cGZnI-0b%eP$adzoo>f%>)v@3TTPe+KFA{rlix^Pctjzb;!v2(Yug^14x$ zeLzeuoW(x%_KhhU=RI1z??3;X!%Pg!vc4``E&O+`yJY!Hbl!yb_i?0} zfzhWtq$k*JaosI)Nv<(@Cx=qO1%*6@_BeKH@y7q$a#0u6nU@|Z?yV@SXStZtHASG+ zl&OvXU~Oxc8-GK~@hU!}z**Z`yE@MvbB$S@6TJ9ynaltC@&DG|T=mhe_Wc`K{j|pq zPXB!@+VRqZqyM#s&*%DoN5#_~{@+}3-t>Q6N!!iEowpw~ZA)jXt=x5~@Qt%&p=9;@ zCqI8$%EnnQ`FmIQ*CG4gp}+2BufG(%`R07>2CndfE;bz2;=lgs>ezPhHZ<7JJ-aZy zwpe76lzrsM6Gb;&+YafOY%pxlVK+MJBzlNXxc6hwTJGrkeu^eXUptDdKj+}g*!}e* zxA$Tt@BWr;y3)#uAu&mlN@iWWDKod#x^?g3ZP&u=o=!e};@P!Hr99gh9m;qvUg>3! zuMN3a@@vDof||aKDgQNQ3f*eG68$}XX6ENJ+b2vdO0qThKTWRc_cPxrlikm^sMX9| zZnUE6|K7iQZ>}wIc)zz?y~U@3{nXS~Or0l6RzF=JD!lT?^3H&E?TmHH%eVp+uiJ>f zQ(_2W>;18s_hLxYJ4yKsdz;vxsujc)|-R{kwdNv(pVpSI7^UR#gdrCyXd*$jWk$ksOw%netd6Ic*cGZKz z-oi`4v)R|W+3-y{zQpiIJdf&~^#=-{GC2I0&&d?e#if4zjnM+l!1Ozb7ar`<*^w-YC=+LJHvC`_3xTpG(F-YZ-{adRWH!Xa&V#s%n4Zl@|UFZLL4LYT4 zKl>k9TMNF2^2JvFuba!?TDVW~^0^!@n{qa$%Qf?EGyj{$y=?v8XZe>Fv%7zJXZ?QX z(a5f^%ed}a_33Sxz$sLh{pq_mx7RG-iG z3Y2M(kath3@-eu~Hur|=>ra;5PZz{LsXgmD=`rJE+eIr@Hc7Lyz4f@ z@<~nmG4ro@=R1`XXF}{xZ;$_>In6imWtDcf>Bk7ulvFAy5@J+Rn8TjTf@ww#Cvek)Sb4grGM8HiT#@&dj06p z)MxC)k~i(jYWo}4R{pUPwzIb7U*`AkjPCjm-=p{cW35WQ_DBBAci}d(^Xpi*@TcrB zi;8PG?%4XHrr0of`Bc_vJg?`>-7LA_=#;}xqFlGWnsRWZbx733$(?Mi)4M!O`li3t zD3vytZ76wf;)3SmCTr*Xm+4VTi518>A9ep;QvJ4?Gg6ywu-Qd^Iq`g|^Cwp=6;Hnk zv6O{1ysuqPnjGBGxkTZCh)mEekGxl6;!0Jz<+Ii_^w!QidF;>@cb)WIJE}`ecDse8 zZdPNuyg@ScHt!bkmAgLwi#_}7cs=t*vcXFSz(fe)H#dPA`-4 zc5l?#cs}()!)~Pmi{&>f)mHRtGpD8%FT&V4O|qxQf7L0 zwN8^|JXPCxw2{nE4lU3q`JKJ<@*PrroZ!!jURxg}|(*A`6rh zI=GtyeyCLWN%kk)FPXM`@x*JVH+|$2eK@&TBP3%D2gjD1(y9Bqo^DtkIe*cH-V+*k zj#y7I+8&fMC-BzP9^FOf{&wjt$;-RDsQ!8W|Jz@VoVy(9&Q$sR$+9Ox2hZE-vCT=W z)Lx*lM&4i|Gf!|Nw*~v#>4FizX7pOVC=Km>-11c=_0R9{TKTT2v;SJJRC=s_+>=S* zPUZi3oc}MyNhhl@WaVd?XoPih^g67*FuVTTfrRS*Bu7(W*W(9%Pgb^LU9e$l+O3_D ztE=h-R&V-Ndh6I%{{=_QE-4iX*3_=cG1fgRB2avMsdV?7nGDC~SxGc})lx4RGE^I4Gk%u#Y|!_K_}sDK>DF&9llp_NNG^DwzRA&5ddEjEnegR83ZDbd zEclmwt|In8xme(VA0p3u4EW9&9blDFDHMy}#ohV9H|C`UGe_VS6~BU0o4@QTdao6s zeSAgb*L&NJA5?e$?YYX+x^sJ$-$8}b=fBRdXjYuem~b#PrLeElVOF~Xn}EaV7J=@G zJ{$MHKlH!Vf6oHfx_7dX2j-jnxE0(pqagZr)7RcYz27@8#$RMu-1Dt|>b*BB>rUCT zJP~-T)X%H*+frB3_87*S*nmatz8t6Fi!#z^?uz2gxE!D~dh)cR%~v28K(zwq*+_Uof&2U>0y32d>LEbev7 z;DY{R(~$m2kD~q@v1u%Sl4WIS$N5lRO81hBy4sH?mQ_ZqGnhOQv_8MMezl_{Hgm;= z71I~(TKP59Tjq>Z74rptRr(-uJ?InvIcfIT#5X6_rnrQ?aPKx) zyk}ST>8NanV;`TcyihIVIoBih`QvA43*LIg>TR>w9&xYd48MYY?<&{M#GNmaZFG2+ z9s0Lc-sqynSIIBmv|=YdKDC44N{4XMYWau{o>n_APd(1QW2WZWcD+R{tM`O8ImAv> z2)~dn;QEvA4DXqntVtR2am91xraSku22JjnKlAjgPS#v;KaF3EJKw)7xWV6G-nsLR z%(913A*m<+ix+NI5-ty#4OK|9=zT=dynPC$7C;&+T@7taq?fLMpw@^`bnR#N}|- zWUj2v?ls@-mfOwa$Z9sbr2WZsA%mAtt>IeJY-JBOnc%G1S-dls-RZp0S}1()f$tlh z@T7On6MnMz9Q4UOcjf$Tx6B!9CVAQWCdi&&_CJ5$civd@*Su}g*ZaF09Nag`X=z{A zICrvL^nEl#>xbOkr`ImrQO~Q~v2os`LM#5fiG~aG-jx~OI;nf8yZX#?)9YRN3{UU3 zvz@ei&ayCh&*4K>Dy;mfYZqP&`*i)eNbAy?8OvtqpV=P3_T=ej_5A%AR`J@`yEtPx zq8Zd2_qP38%N>5Ey_t22Q@_#68`4a36n@P6W}*|kE8dBtW=&*YLr|~vhbYaUV~oPA zGyGLUrKM^&J(j5#Nq=>)ZEZ?n!@C708JRD`UKqU4Q#-0vQpNf71wZSZZQt7Vc!-Pp zhadlczhC?E?1jo2HB6jOS}sOioN(ixhk-ALMVIZ_r5~y%D}MbwWy@EaRVyy-?qcj`RSKDyl?)kvS3YGeQnT;H$@jFFWeQ7@P;$LXZ7`O`=8DF z|9btoL;v5F8*A%Eb~Uv;E$V)CgKrB%Zg+$B2Os;ptP8nP)AYHHDHbR^n3erf{BwQ% zw+H?&9zGTH%uqaP)#9l2nW-T8Z^^T*2MZ2($SZGl+#$3yb@kB-r8dvk{$K1?>=!?@ z>WrYck*;fNRm1aCeRrRrTPH8(HOy30FqOz>WU*KjHD6$pE*C57&ra^DjB63Qk8HjB z^AYfDlSZ|5vRUe}OdjXUXgPgT-c3ep zVw&?}6Bm8?8vU1H%Jy?p9{2v7!1bzI`$%OU&zWh$HmyQax6FO*@n{djwQS{*m9Nd! z4E8a&b2d!Xo7R)8sJSgFqB)59_XYWIHinQ|7x6v9A$nJ0<{W#nF=W!m)@x6{2Nuu1 z8(4pO@0Pp%$AjlgZ@;h4aw4Ko|C|;#qki<~Mb*z%s%K_jEI)ti{GTgHU7u$!Pe|8t z;r`tCqHM`tjy|5Si4%{yMgL@;VSH?vfs+T@-&;Gml+%E0Vf8+U| zZ~a?c=rHN|1&?`;Z+xvkz3=U-hxgX}tgpQGCw}Sn`&H#O_Rr>K=Cip}@4kKU?7cJ5 z+w(4L&1M(zxuCyMXpsp=#-F@jvqGf zmYt$zbHd*y^?KvR72ob%pURo~QKnw`gOBH#Z5@B#t$mYgZ)0O(CC;$>0f%eb?-d#0 zI_n&4Na@I`{0zd6SG_wT)JPeYsTG*1+V#kf)>y2Tvpo`Q{1P|wOEkrEDy(xMS0N+Yy&vW zB4%m{^L0Ax*k!Y0(am2G%dU9+kzCsH^y$y8Z_}*5*#Er#pZC|D^Z#_CzA&jJ2;?QX zoBM9wAboRhQQ-3=?_8#2g?`RULg5b-|Ha(mDlUBIBEHzS^MQFyJ1ftX^RGT%Z`gnS zV)O6gQH{N)YaaY_n(cJ3I+$tUwyM_sav#3CUjK8y#{Kuk8Rso6Y!*bFx+&5=jsMd= z`-&eK+Z1xnH$9xzwAAIti?D0Y*%wR<`_mhwCUH6bR&U2=hM>B9F-@t=iTpdx)$^Yg z+T?$tcUe>MB*&!{f9ft)5?f_36tu$3FXWX!%;cT|6e&%e`!D z?x?$LY=7|h(z9Exk<;xCNQJ+f|HER6;GSbM>IE{Cq#n&E`WrZ}TQSx9>t^Zo8q?GsDy^~mbNp&iM#H2z zVL9DF-}`-~yHAIIS#efHxK~v{Systoxn-AGuZsNK?yWp)Kkts((bJ ze}y&+cJ`i=tO;D=Tnj$0$$R;mbM1%g*}vy!?-G5=CZDnP#Er5u{hsl*=e7QvJ@lVD zKIrWKwdVKza&!0PRA+m){z{r@`g7?lmcLum+3)Nu?mu_#+{|-T%Rf>xyDTL zsNE&z7$%#L22CgXmW*#2>$(lMKRc1kW9g@ON1^1iNB3f#m)@*CEe+c~?frD4_M_EN zpF$rozlTd+&j|cvcu#=GZeEAziRQz?MpUI zDA9VD^}$fO^Xl$5U(D+7-M>Hg;9pBw`P*&o1%+Sc$}e4;yia$pn2d7f!tK+&=W;Nw z3|;x?iRXqT2|jzC_UvT6Atu#gZhbIh!`x((AlpmD(v{Or&lmpxDbZ$KfNX=-fn26& z=XYkj`_Al0N?_U+vE1PQr2uZ$O=5*C5gBbdlQSD5S>3rgxf&lnkL*0SXZ!Cv^7H0h zcwhTm`qUZe$k4UV)LS!Hk3QPD;O3&WOOG||xgGPxImBuP`z_hI(|7n^oz^m`GL+$< zph?TVSwA<(pSMjv^nbbCXUVD$4_u0WZVa9tw|(Q*HOo@;mR02WevH&p=l${f)%5hu z_5NR9r~UtN_u2D%dzH^#-BZ2FjCc4?#7E8<9SuMQ0*_i9)q#BiWr)zrr z2P#x=x85w{p4gI>)uZiVo|1aFCVI>Ed7Gxq;g{0&dQ`G3FWKUR=#b0weNDVRK~)yPA{hT`Jdzm63q zcd8`P7?(xuwY(&!T(zS&*>3yCmFe>qiO1I{u9_TnamiGM)QS+B_jk+hFZWn|_44%8 zTWxL@wF@lz*WcY2`>U#Vsh8jb59vd5m)%(=@otgQ1;;az4{p`G=UqM7p;h|WqF3jq zZ4EAX*w{L8>EfyFrbi$CiV=4`8{@c1@QeGL$E*Um2e-!UZpyMheQ=-Gfh6-Xktvg2 zRg3m%r!YQ9dgke9>1T3%^V_M%!#UR}^c@qAQb|d=H{tcBLc6DrCim8Vz35u;z*s!# z?eV$4-AnfE@=$yH-#6}3v88Ut27`jP+yC0m_no^|Rq=TK!Q~%!K1=uC@{*Y~S$21z z&rz3!alF;?Ehk|Kl*xl>}~cP@)^bgn--px_#C5j{(pD;lIwBv&i>2a z>nvY!X1Z-vg-?Il!MfMad{Z@6|J=Fys#c3bl+_vbTWcA2nSOp;)MVzGyl>^?_C1fz z3daiYU%mFG<=-~fKn1R<(6yTk+#BQ83Jdj*>o;+#?@o3@>4e4@FHjeS$& z^s`FpoM)z-W@@>*{&U9KRUVw1mVOJJ~`zn%M|qb9!$4NVlanD%oNYxd9lR3{T8^+08I zlw)=N;i_vfakc_OCgw{r5G~hoVx?*@v=yUeBJh+&J~& z;)fd#Zpr$csKql`;dWlKwm?W{TGs>>zt@30a=CZZSvXnpKF>XOqLqbx<)hyz7C{WJr)*m1I45e+l-#o5 z8`{A~wtdN$KfCNE_xhymde@jP94Zh=yQ#7^KJxA~?$7|HU{z!J)ol(pdJjG&zM*D%k$U#zq9`@zVSdkcH#`xPLsGT%!i(D z4d3S;r7Dyy*?Rt$UbQZ_>q1?#f02KMTw9WOf8WZ!_uVXdv7D{dx8mrYx%G}KI64?k zONm@`{C2pVKexxmOks&Z=sfL^*xtY-@tX?FlDj^*)iTcJxm&R2^HJ6JXZC!YAa;2g zv(UncQ;QXC`xN3eEHc+ev!69Gi{skvxJzi=CD3gw&oaOJOD++W$~WjuTJ-ee@63cP zv5)U8lmDM>Z#Fx0d-KO_ZM_k5I_4y@e`;YVXq;5OW=imkJw4oWmVBCUh~fG5xlbAY zp56cTe{h_5HuYy_hNW<5u#}YTM-hLP>s8N` z{V)61{JOkZ^4lGgddc_V%cA!ea_vfKoBL6}y7KzikD4fVM#gK zbL&Ms|5{-ay_a=H^Hewf-KyX}`$+9NkJVC+1qLTCJ+sPWJhiGo^R488#Zw9krKVc= zcRkQtR%md`LoEI|8o#Od+nBY!wAN=%uvXi{M5 zH!hiQb+!fJ=|Yu_8iKj@3Tw23z3=NX+4xAuRZq2?aPQ|&!`hGB|7*-TV}(SE_sE8- zaLkNcBOotUUvo5*mAQD%smi>Uhu-__ba*>sEz|Szm*W2q$1j;0lkz`?H)`wRWGF{Lqekf4`ioUca?2tJlkk zYsoqwcxcf|~$BrRST>mOr9VztH z$l?mgy>63{y(&X#!u8+V_ipwz&%bklx8};)gQj-J&Rhw)oz^`4Z;big-KS5~(kGU@*bdsQk|QzVL+`!j>G5ofKXbmBo}k|8Pp&RL7e#qPuwI z4qsK$_;}_9f9qSBuFRu%BI0xBtrUn)dwOG+5%-akuk`j7{=czW=+~PMGhQ;pG<F^xA)s-*am~j=b+f*^R)y~L=H)rVus&viAb9n!J5r%b4uUU-0RE9Nf z-n&$iqjq%!uaI`=mqYAwYrT(!vlTV-X|H{H`{d%qxiQf-{dNZZ{Sr+(+M<_+Dl*wy zo)kI6`?$^EAkPIKx4v|j2|Bx6R;vD9;B512N7NfeV^`@fS8oem|7CLMjqKq^k4=47 z&V8BJzjwps9LZN-f9t0wEW0kI(ABzK^6}*LB46xz?Ca!zwFE0%G3*z5$Cx7;7t5je z=h^*vbE<};O!M0oV`~wPd(}X`|Yj$AK@x@?buD%nG9~Vu2wz!i%-w& zmdL@WaZB@K{_mS%sT=ubql(kgIh(^BmiTT^_uT*Fs+O?q&SxD zD446{B>Mq%euKN_O3`ceLjsMx--R$(uufop&3ad!qVR1^wf;M8tY%}{gfqd%=unfYw#q%K407H(Mh% zft7N#48qH!F1RT*a495c>50u)vfQa#VA&3KW8NlQ+lOkq3{k^Ebp?k4{mO|O0JF{-esmY#Ld;O&J*Mry6xeH^3Ua1=tCUI{ni)zR^ z`SrO@QCqw7iR>)JM>Cs_Hl}-B5G=H8Jgs%H@?_Dmh}A;LPaAk@7q2dkkz_cKcwPCF z(9{Gay^xy5o8SG8{Bu7flG!e@Onak(O8rzVuZA0s)AZK-H5PxR7nNr=&r9LrlQSM} z2Onw$8+7tJE%I?@m|Yuw$i~dUb=}gM_^lg{Yu;sb$e1Hz`SO~V^S#}>Z%0+;Z@gp1 z%@xQoeMNozro}o_78ry*y0Kz${e9o}rQ+9D%?x(@HL>XEIf1a%GWUz>IX2~;yMO!c z(*C=3v+Vv|I{xzB`){%L{CFa!6s|h|cG< zNe;&@E*G=T@~(Qe*#F|+aJdy}${h1%$>b=mz4$zxcUFOcBg=C-6Ui*Vr zs^i!#-eVR&Ra!+?Ro+s{?NJZrI3Qq>`p4(B`f|yeJEonUrCZ>4>Z{5=zqQ|5a}UpE zx|ROYu&A|q3G>{ehwi9&@b-D?p6B~_;IMB{Lr$IfLY>mn&nvS_A~IP*t-h_BTypV# zOoo!JamGwxmM<^L3Mbc`5BTwE`o34M_vdVT8v5s$p>Fq%2HmdpUh~=Rb*@P9tb6v? z;exiqj)0R=Oa(9W=Q@Nw{9ek{cIkTh=be*9+l-bu*XY%ltbcl$sW-~tf+8pt|{p$`R$A-Timn~E`ZJ(NYfA>w! zS>1}oQY^CTWLs2&=Y?o)tLyu1vCzjxkFUsaIa6)drW>3>7W0e^3OBWG-@AEfW5K>T zPKOIv56=!dd-!C?1vYJqN78LB#yd;)^flK9w(9MAn`U)Hapw*LjsthuHY~aO_Hc^H zQS;u-?DmPd>Pt6lnE2{#?2{(F$DJD;52~9OC|#8O7@oGg`{sA%_lF*&Y%|zX`9Q^Xqh_^}_u6@BJ@}YW+48Ezw@h z6`;3e>asr<%xrnLuvrLxH0X($?lJQEv&oPW222(bY}PD z)!v=9bLExerE^$c_S~G(VR<0OTk)5|iy-c!QgY|zo-o_ryUYK%u=EmxXWZfHhr8-{ z=O+LEq@yDx29%ay+0m^Q5|Pu@K~XX7+4KmODRncflX(=$q5GnsaPqfh%&dAB!`2;m z!dz*3Ge&*=`_PBG{>M3VWp}->J91;U&2D#><}kI?MF-}rY?x;E zy!Nr;8Q;lT?{XECkFGXIIMeb@`NA(bCT*=b2J^yy%iVt%7xez*lm|`C)w(enYG;d$ z%o*X7FjvyV<`jcVH(;U>t`cwAHd zlKk)IS95eD*1F|xuD>6}v?Q~*-P}_k(D7874C60e$Nik*g3+I57%Y#O>~r`_&|dF* zlV9Gx|4;bWrRn>e7PkKW8GPbJ=O#WT(YOiOd)7JD%-*BH;c)%byLWtnYpdhgq#xf9 z71CYH!yUA6_lNh#OPy9cXZ)AFvO{miS1Gfj3OXK~9&dzMOp_u0aax0iJdSzyWPEY-p;diI!=hGK$|!31vSz{yXm9Q|#7 zs^p%X){v>S-{==#+e_}-l4AKj4*&D(tK&b{e7z?;eP*)P+Ihz;rTDCO8*k0rsPTO2 z{F5)7wo9mT`C2;29W!rB3r_g))1d$RwsW@v(-+;oz4yQwqxG#1a;5i4b>6JVk$IH< ze~v@xAJsL2OV_$g>bY?K-K=Pi?gzJVRueqF_gZ5yR#ZsD&cE$l_+6*R{rK?^JyUHLhS2xk zO9SP(#ecV)-C%L-RK}TK5sb`v6KXvZ(ux&kNN+a@xiIf_43j`etMlgmLrpHu21XX5 z=jK)3vE8L~d}TT1gNB>rA!(y|r?(mvU3;))pOgkqkIK`^gpN`} zmK6$Gwe@P%eUP$uiUfC`TvXX|BSW&|6aFAIDL+TO@%?Lo7c@z)8^OSXaDcn z*SGuKVqTwlUgW9V&3o>@Pf8jxdQ`?Xt(y76@`-}yd0~SGt=sdo-ru}!_4IdUSLL~M zA48uGm-nUo=g#Yee9+mxE$!g8P_@aAcS+^?9A2i&=4W1VWX9G%d0pQxo>NlL>OH>W zctv5Q+_I>c2d200Emajxdo;s!i}x&^x5mDgkDZbz%9^pD{Pzq=^}S5-+b@**{w!^S)kV{{5?u9#U`QUc3B}7*EHVFJ*t{{;|5VzQ;O1O+0Re zy6?sB9A$TAT(_uKmew)a;r3#!ZPfNzVP7BGt?T1XIK`F3#OZ3o5%;$@;o3&lU>ol# z6Sx2C4Y~8YDds~L$5k_q?8QYKD;KsFu74uAxL@(lu%*_$(ohV^mJm140p?YhGf=RB2wn%bLlfu!T`<{QU ze{WmWzVG|7)g=|V{SC*C&KIA0Pi10N>XJ0i4Le`&Jg4nn8 z&93%Jm0y1ClKlGTN!$qw9Upw(F0ktK(MfXV`>kJ>mHTFWbDjM7lgz>mVmABIHXkWY zCybpEDfo~SN)H2IehG|JzM&EBAfoX`2WlQpRD(b|9xve$3uHg_7gpo zC3Vd~hi2603#d(2a0s1{d(6?5nL%YzJDW#I(TfH9J}YjvNZ7%<>Gj{5IXipw+2bE( z1fR(?IU3%#T)mI$#0mABh`DxqE-6lZe$%D$=&=oPCm7U}_O;!(%VFxa{{6)yiKNbgFeO_tE#dtQH|} zohRK4n(UbHWR{29Dc3sJwLFH#SNB$buQd#qasI8Q5r_UaR-bjIC2QAR7m7G-<;HM( zdfPS?*NP)eERPp>gvuNX?ofJsR=VK%-rZkboz{P?^tO=uLf>Y4nWzH~l6B97yqd8| z-!oll=C|Z-sof^eY!$|++nmPZnS5l8orEik_XLp;CvAce%U){&|e~*8e|L1SL z%S`+CU;ia1%j@hi`?TPNVT;@yUilQoS*v{Xz6(5O4Ux)!fA0MG+VrFU<}Q!leDUL? z?IvaFKc)wW6m0r>cT)Vrg+X^iawU>`rk|Ccu3P{6`I4`hD}F>w*&&h4wLQJ;xDnf? zrahWgoWcv`{C1iC{`X1ktHCAATfNnV@G^ z!{&U0MWAud>s4y|GiUT~dRNAE)n-ktNXM30dyl)Ga8X^snJw}!dg7HbS$mepFRd4R zJ)4_gbSKBY|E%;1p=UmWXo-WqkJR^iOX zJzSr=8`dZ_9C{=9ILN)Fy(~rCjd6e8qpu$)-aqtwQIU}^mAK-Z$iJluk2&yQK?(_iho_nW&8ED@hvg+GLp;{b!XRfR4zBv zWBALd?Qk=@IeTXOsU-IkOJ;VZ-M$?BfBXO0_5F2E!~aD-)Ktr!&8#1h67Z(od-kzg z>N2&bUQNGOc0r|3@P?UOt$c4pNzU!8aJxeeU8*Mv%B`0C|MuD5mAyOKSR^9h&|kHq z?()jB9l8zM9{Nq5@jqrg>nu(tj!ri2DN81M85Hon+HkkQboGw+DpOnU@J`!2Kjrn? zZ(EmV)4(?2hY6`kT6^(r{V`b?|$%Dn}NI+G5TwBG%7`h~X7 zyimDoX6ud|-zWZKN~Vc`!Qb-It>)$?j@C1^oYi*Q7wu!+bGh@fxUF2P>a9jcc7_{a zrZY|E+3G!g(LLp3frIkX+69laYDyfUpVZw}n!hDCjkRLxyoy(uRsW8PzdScrsQN&} zGP`q5hX1aa^G&#RUiQ=$wjGZzai1&O&*-vVHHhm3heuiB+AapsJ^vy{;&6c zN~@mlEq_r_di@7~OOb%kv-T6)1o98-=H^s?yQH&`nWZ8Tm8Hmm*bCCJV3^H+);?yOAlQXu3fvL zgT3MMA@N;~=Uw_ak8?@=Dh*z`eoxl2qf3`P&5W~_)_8ev#p2UF$#FS3$8x8yere0t zGUb=^JT57PibY!Qv;;2v-Y#}X^n1>WCEs=DJuSJJ{X9Sa?WLoyS|+@jdGWnSYj%Nb zgTD8=w=)bcoY~-4bcHEmYRNXg*SWdbo@?zS#N(~s@A)kEH~!zd|K0n3O})SMt3PMO zss~#Qqxch)9Xc*6KkvA5Q}gYXof|I}9cw-pDz$Kl~sI$AOEg; z>YUflcP!nP*~;FeztlBp!=(u#b_Xo41ywXHIqiPhclz52yb*y6zI)eyx+G>2=$QRQ z_1N+YtNr&kHSCPPVf<_rXz=mOtm79$x)y#>&YtzUT|i1vqItt9Hu)(olO45UE)>k0 z+|8OX(e0lntLw57K1IP^&FfCu4U&a>rf!#N@$E49w&$7BkGGb5AEP6Ggq)boUF>k* zsX=^yN@B>Co3`mkc6kKvI=Z8@_;dF9JqzXi{rg_7|8t`M!q&IBR@S!R!H=IlwK~`P zaUrkUJEy&#D@*%6FKqlV@1tGd;nH7WZ}<;5Hi$2}AT!}tu&LO=_crHTC%Rv(t9cj6 za`(?#QJ&bx2ObOcB-|<9!?qzH^E-3jywnTt?JEOrCN+kb@%y>BZl1!u#d`MB#9i&* zY6}Ymf4)2RW>c{n*Ryjk*RP)7!dmr7?dIV{p>5m^8v7-VZI0qH>DqVs^RCv0M`u$N zRxa(WEAE>da>8$=tQPb4sE-QYV@mG1{g;?k`k{l#Z%%)~gEg0?pDjJ~a}ks0>!JsJ zWi_Aq|4sO}`2Pp_3)lDm(=}S)uq=zfS5_H z3b!lwRf?$^tgwmw`gu}S)Z>npuBTzgx28@gNUZd7{_E?{{H|ozG7Y(u{R{6-j_Mav zT7OB@avcxD1)2Oz=MwF2^9`6DI802>u4xWg+yXE3J}gSf?Rb}Rua)nUWoU;{L$e#(a|>^H?whzdUC8f zsjl>5mifE(^sur}hS2ww=W8O@>YrA)?>mI@a})% zo8+W0);F?BcGFfcNOIS1w%(e4?v${B$Sr1#iHj^&e)#@v%bfT#**i{K>Fr*kT^OUt zec+eI>7!ywvgao8tIZJT`p4KK<+E4hnc}m;pE){VE5F}~*nKP}!)Cd`{KCD}k5y-` zsqJ?4mCE=mZ2wL2*NNWcFZciYw*Kg`+Y-$gdIE%|A^<>4uYMe!#$BwMnl z9IKpsUtT*mMPc8%MStJ#E%%RQ$lw3fPFAk2dt3STbl=M8t+vtUS7`rE-ahqv2mK^S)Tn*8K%wlym0(&wE4?F zkLH~7JGYpP;hM^ycVA!RaTdScn&ZDPT&p2UN2S9Hs{)khVb7!6SnIe?wzf?&z;M|yXt7!uC%vW zQQN;Yv)#M)yx1~&YMy=J0I$Vo#dG0Z_C#+-p!nlWF5bSGdF!Y`$p4E0Uvfhd0n?lJ5bDJ@7L*$ z4fPlMZpxI2@Gx>*XVpL+3vzVCT zC|r2|!k<%LE2inIb7{A2ueCLvb^rIV_ZQxM)03UM-`jlt4#(fqe~TULb`SU%@~W2G zxut;BxU2MR^Pc62ds_k%>`mN!RQL+TqU*_1t~0 z7;~m}Qj_Wh%fKrZ9F522@>EWK5ivNjxi)Bl;)EjxiCWILOD8WEdBU2wNp9Ud~>S`v23jwb3O; zyWdt_$WC;br}sL0UV!HWO<#K<2Nneer)i1j`nQHkN!Cnm_CCI@p~W;TM(>G&Q&&R2 z^8OdE9ZoN*785wOmCcT6js%BxaYV(u?|rwf{1amM<7)lPw8%x<;FV@e(?7AvISCAD zPX$_~qiO>({={XPG#>iDf3H2~wo>nNhc}$5e}8#?@$T~YU|ue92JQwHqg4uxDK~|B zodTvg&f?mbw&`%x7`QunoD@tO4;YAIZFS{MF}T zYIeKZ2+wA(SbH`{PGM5TRSjk}*?r1Ax{ABX-*3>ld-u}I)5cuDr#eOQnY-I8-C~)g}x4O46CE@zG_OLe|EE@=;&Px0mhKh}HQr zVb-w#uFKNjGP5_nmim?;UEAB)bv{Vxzb&JoBkx^auGh7f*^6pT4<3%jT^`-kkg5Kg+0>t>vYG2g-QO=yHSdaOub1=x^J1&}mtWcI zCq}xT3|g{}C1E4S-Bq1^Qh$@V?z1^>d9>j|+r`}M`Rd}E)Smm)9$8ssRC;pL@~>6D z_N@9Tc(3Mf>8|pUEAw`057%l`D& z{Lk^hm-r4dd^+{wLj0S?+68;MY#0C7P%g!0DW8?P<=8E8a|@1Xi2)9~6Sf<^eShuo zo@}}H$-mvwC~&mqN!gN4|)8goqi;&D?a%w8U?xw%>1lIV0niSM^ix z-F_#0cyeF8%yPXz?&FNHNzRLHSZCO)>R$RO7tZ=X^RD0y?^8aBJ+@kA+hiM6-JVPn znQib+y!PB}W4~24>m=tr&X8HX->{-=ZPS@UIsYc_|5^T``hI15-S6`H$upAgo>}xe zv*8p6b9+b6?;C}C7cy?nzI^aw%bz(v*zWq478W|1AML6MxE8v8eOLD7?=`^&`oVTS zA56FFbV(-53GEMDt@a^h3-`AF7K`+LznxfBcFd6TP{M{MUN;PMUjBPj_`CY~ukWY7 zetvf9z0ZMFa);lZS$3xJss1vamezc(!$JH{Ca%^tI=Z}0@{FwQ6VLaJjaxXc+|_q^ z;9k`DwlRK%b^653TkqX+{rhW^*rI%+fUw$FBSC^xp zB-~;JrfN>N&n-540c%<8SBJ#~X$j}Ol)$SNj)oWSoiWz)P$F5kEd_O44ox7kQP43qJj_Fs*b|*-8sOJ^W&$%JQmuE0T zdYi~D(>E8g-TPnMeSSa7>D)ZiEs-JB8WM)GXaByq-tuSrawpZo{G{*=IuU-=78wfD zj=0?4(sQZM@1u3(PqS^#$&;FonQaj|cu2(PnCPFSTMs>H+`eC{l6mI-*3#FZwOfr2 zR6Rj3YIeVHZ_a-yC?RT%0Mzq#03h$g^Mn zezjLQ%eyJ;57g`bsQ2&x{`S4ij@V1 z7YY6H^=(QzvnFfd*D2;f~ z3a2Rx{e(LfeCy#n6!z|d-wUr?@k$Sz;z+ zm6>gGc=PP?mq$1AzsTC7=9uU`SFz;ar4Ys!5sGUD&lyP9O=F^j>7v^rZlg!(p%d07SL!$Qy)0NC)&w9Unx3c0n zuJ*w|VF&l4w3F3kPSWY`irr4XFgo~a`+^(O#Fn09vk^YyTD;I*%_~<@nzyGf{t{39 zO(nI^JIZ=3!mL3Wst&Q&BsdQRKYS~E$G)oV(nVICgJ0(UIx3}Bxg)v;a9s5F`nnw71aGLpH$F!X8oXkb@S+r)woc!q?^rv(O zyV_1?&jzhKnye4x|Nr{`dPl%T=I%F!jwZ7LE}u+bmJVG1w>*^Zl$QNoi=P4<+$ZPG zo_+1|y=k7CJ_HwpT;Sdz(|AzBy}7hvj?1sRGbL9ph~4o(XvTtv=QbZJo~5x(PffTp zCHm2x%ad#sO%7#7@RlA^RoQ-BLO_e{Tut)Y3!%l6%RIAIX$R_G_o=A0mV5g5l%3n& zy|xpwmTo`9I=5tv17GX^1?$5nsYWVpmT^x%(Qq(fb}!@Xs~dwBGBQ>g{c`e2>kgh! z8Zz-##x?zz=52)^wz2s6?DIPsKU8d$!*!UUX(t@9m7*{!h8y%g$OiZck3Il6(E_s+fQ9;ai+iT~)MvdH61E`Gfm*@441u*>-))*7K*f&yZhWIr|{f;|HI!M4R6oRyK^Tz15uL zVwkEUaq0U@@3<`G?{%E6U*<%96s+lTGS;u|yU6jp>Y#g$y7%^mqmNl-+>b{;eb{?f+_X!;dz> zEwf*6^R1DTb}g*+D(84Ng~_0Adu=rvkBX6l(vw+c8)qi%4OiECH;<|B&XE&YDqGgw z@=Uk-J!xz1#KkQ>E~~$NTe0A3n_GZ?%;)&1cOhcN->$QoU%Yv8XL|7K^NfCL!nKYt zTW^$ku>V#otMB!N&A&VBrNtP2D+k0F7zZs>EPRum&tJy(`g+;)^xv7ur`2roOr+a) z{`XCM@h7%=k;nS#55nAQQZI(>-n2@NJ)lhKh2etF`_HMc>WXjYa(=<`SS{3VOY?~f zdu{skq?yAX9#1)>JRu|X+p`e5WgaVei}HUoJi^e^Iq(fl1A& zFRah!Y08V_8Yn)Vx7j4XXNBU?Jxf~ny*GThv~7tW=eDWlf*fl;SG`FVe=qrWgWlzY z?t{tU`CEG$R=YSa&SzFNl1iQ9zl4j4H@il2kG-Ob=2oi}h7Fv_sygfI_r?X6&YwT` z<%E6~E9Rd-$+%TQZ+bMhQ~tZB zS4C$=pUSwN9zBV&B}~V$MlSJTO`9Pi$SmywxsQjRJx! zvThe9MwuTvXO(qr`z)<#nl}zGaJl`~J!Ml9Z@;B;@$*F6!dYj`RGp*6k9Iz~JVEQ= zl0T*ggnei1@R7e9cjd9$_x9gkp3eW{|8niy^OwZ*7s@V+NceoDHT3J9J6qOHyi&0D z@a`|q&OLwe?^EICCR?W1ilEI#UpqrH|8}lhz#tbZQFheLFrDer{f7w|YJYqma0DJv zns7aJalqX}J9HkN@0xo1xappsRr5`aA9`J1a=L!IE90)n$bV(E*E<$)?sUwS%a|Lm z==Pe4@5*9y&m9&xV|(rKhYyTj-()Xavf|QFk()N0k5o#Qvva0C)$z}ETHp9}dcwcQ zwLwyA?+Jv+L`;%`y@&%w|$F=i>=xpYNLMCXUe(d^W5i)ziLgASaBdYzyJNm z^hGDPC{KUjXEW(p+1=bnrBgrUeRXk{Tej!S%vIZ)BG1hnc(Ti3Qfw;sFy6|r_IU9sO-qxhRF zhtSh+x_yskF+Q5Gu-fqCr{&k3pLmp=KG3?zV%^16L6Yy@=kwqGvh#d>-?#03GVN1d z8NOlotagW0{N2st?d!!|A52)pk*ax#)o)X5!@32BpIlq=;s@|f@|Q33?~mNWAMSGQ$kn-aZ3-K!&D^K%*qWOXW5dbE_Im%r*r^)@V@}_U zPT|@b@b1Ku-JH5gPUq*WUt!v)8{@-tAubn$B@>~-mXUww~QLQqG z6VvB4w^=+@y?U)@vD(#(s{CC0;v}!GxP2{0!~OJS|DPX})7OSZ3Uj-Oc%^A*)STUW z(pD&r<->cupZn6@pPaTJ|4B-!i=mq3p%40ub$evHtS6m#AoeTBcKd^_uxFZ5k5@eU z=Fi_%a8JAQ-$KD8YrmEZCubp>+fhj&_il4DvNt80d8(y0w=O#GcJ5h*u-jVRSkFTW zhT^LvTr^izZA@GA#boQ=bsZrWwr$dMirV~N&bHKyEADmh5upR0m`m2qJG^oCcJK4^ zZLjBf`>5RBb(`z<9J?8F#CtmBlIjk8nzNl{no8;Il^bXLk@@{KVb;Q+EA_7Of2`m%eWgHD< z*uL`K`LHJYWlT%|U)_7|?Ix}dulkel^o?yBwAO+ssDe5@== zdnPuSGwgnU_TN-1Tg%+Yn{sx0miNe8ES=UQHvNFzgD`9Uu6B-TtIn)Z`*8F5-c5_- z@+{N%TDuNBa&Kc%7CMu?^xid{p0mLPy4Oq0_AOZ*YJctO@=Z~DAF?i#aKAXu(9$f6 zY3b{alh!@ilzab(#z(ygqV;QIZronOEZCdfIC-rAJZ6S+*;rNeOIS)0uO>O2~2Y5|ftN631kh8EZ|7Vx;&w zKNU?E;5zJgzfJqa^96^ZdY&1^In~UI627@dqv_DqTSpf-@aP5H-MaMr%n3!O_tZ+; zPP$WOvLwN6k%GlxL9I-qLzm{++Of@>$R4QCI4_=gugihWXSkCNO)8aHb3OEf{G0ce zH!J;_{aWU}@)O?`R!4ty1-G;;H%RpA73q6!@O$z3^hqxBTORu~8h_fz>RH#OGv)i+_TFw>JBq-1^$`ZNtXRoHwHmUyyX;JyBiz zTld%P_#f6^3Vuf2?w9jT<9a9*=EWf^Qlgc@-u-4RPuvE?WAkq(7LTM zWZLD{sjMogW%str-3nVCs4FXe{8-5uR~>~97RGxW7Hw8|wPw$>y$T{9_V&Ixzd7nU zb41SG?1=^*mn0HjC4Njx`PQSqh|44Jc*dbbEs>M0?Z)-885cN70-7c`} z!#ewPnVp9kbW?Qu)K@$;nft3Gc-F!6*`J=({k&&$`qcJ)p(#pF9{E(xvbi;Dg_mOF zwbPosCuT6!s!DK2ay0ihz87oyxlYpHWXrb4rri;zi!bzYUfSkmq@(mYsi*Vd#|IA@ z=GFe$bF?u+ug8b+;ZDy}LN*ttu5m1!{l5G2oj9@V|4wb;JhQ*&eesv^p0BU?dFAde zzw6Jw&SG=g8O}fX)%)Pb6BlcxEEKV@GG&;st1-Fe-t*?88#LITJdnygcjA%eUBw;A zGa0f46kgT^J$NW0$RHSTX`VuL5<^{zaMr0ux=LSGxz3(-;K8(_@(7-~Rk6#Bbni(q z9%tBP9sl~<=G(oSg@0e0bMAuKSFsz1418|!cs2W3+;NYY+E69H)veDkVdvd7Io(_O zJZe9_seZWh1@CRyZ7+iR<-RVknUT9AwVh!-=ah}VIVvl;JeNB*NoMU{n;`^#qpArRsUvOHRJXzu0Te(FmCw=UHy+!T+ zp{@4{Q_oy)=Q+ku9J8T!zDwo9N2k6{K9?(}TGqg^R5#CNm8#C(_p;NoPR>3a@ba`J zTYLE0-fHP=>j@`fe!pota%{56sXg1BV?HLzN=xca(0k$fNwJ=J|4A;ian#{>p2$_i{~~>0jvd;DwyGKI3y&T5xTv;ilcI9B*9C z`!00s;jeQtEFlm5Dj96tH*;wf|5UlPwKDO@&2^opOlEedr>dM{$%$R-w`dx_!}{y{ zXN8`P%`{1zC35CYY~Zm!wU0V>%iYxyUKY+8b8~ju!sHL323#Ng=ik^Drm1JbA+c_% z!LkJ^Z^CQx*K9UeTdud?egC&_|9kCr)yhjeW)TeL;K z?b&f(dfrQ(;)zdLx112M@~kl1zWSlRWR<_>)7&l7ZhhuFkUdG@pyh&`%SlW(%~bbV zOkiE}uwr9>eZYpo&5Uk|4b$8brmyh6C$aeY`?H3utW^q=?S%F%_>v>+++i`dTOo1= z$Cs)@D|Ra+-epX1jj&&vs}|tY_$}R}y?F&|-a2#p&5O1sw-`3)?Pj%h`7de1?eK8L z8N-M>Z4V!qzxmPqbf%s}_5DM+^K|@;m42OesAgKb?){Ske&4MV_wj!}G=bY<)|4y9 zPZWt9xw}K2Ynpzd%F~697hX5@Nw5BWZ{4g7^DapFEu8VcYX8Sux-X`i^uO7$>*e{L zU)L5KY+85Y<-PhQ%Xc;E$Bs^Pe4@=aFKPFe)alc}eTpE4EUO0(L=Ilqbzt@VPYl+^ zsVS3RAG-1>SeWDR<;lX&i$%NHf3s_OXcV3B7Z;c%=X37HF$bNaQzoZenW-w7eDovVu5+FV6(N=r4LP5Fd#15+@5R+l z((b=)_uIDyUHq6X`Q^}Qq3nNA-waYOX~|eT)~)nO(6_u7JX7*s|BPKnJbpjo*Q#6< zP%ypb+oYRjE^Ms|+PVu(uKs`Z&|7iC+I1VJ3P&o0&f#u!&8mGIVB+rK!@~UL_3K}T zeFpXo?>K&?*qpiKI9p@ujJB7z_N$)yl=-mss{gywJj*0@O*nQk{?rP&vx}?UE9V)d z2d(?h<5ZBslBzGDvG`+h{WgKcnHhd-9}*rniH$CWmtt?zNsGt!H@g#Nw}-5}o&M--`Mr z`SxD=qay`piUj8uU!4Ez&88h+UeD)tt7V(c!sBMPF#nSlw@-O}kU?F#xM#y6YeVDQ z!}<5s?HsvUCw%#?$~5QIq~k>!J38~6PDrdmY1g;*74l17K+-Z!euRQMQrIX}r?K}CIw$0^u#Ck$lBbT3ji}9O_ zMG98)#2r3~E*66ufAw@Bgyz;M`z_Qx>wyy5IGG3C`Ip>{)+UxPQruL|uhDCBJk^k5v@ivSs*I zb63nFr)K&hL1!@mrvH!ThCP!AZd0$nXStArA*6iv{(hb#zsy!zpW-o}=eugxy#L2O z^-e2T{%)`TqO>H&?(N=^i|WG5I1kNx)3tHUjzc?pWv2eTEKy){^~}cbO>PX=w3jW3 zv6#%(mg0P3&$%X^{Vo?2qvPLBWZam$dY^5}1%;A@iVFHMP}|edgI8%j>r63HDEIxxpJ+GBYV} zSNPJCb*C@yU$kZ3xgQgsd-WvN`K4NId~BOmUC^ZXon5p{(Ertx+A5debyI9qqMX0R zL<%iosF5}yqIG63e zbW7HM#_C5HD%(NaYzx%HW{{Kr%wlIDAuKvsP|7^8S>wj&} zaNqv@=aY=doyoOVZI~p&6>dJ-uK2=d{XOX`D<$6+dox~(N{$WI)h({S#qBxQ!P+%r z)t;MQ4{TKJ5?~5vn7CQZPc`bd@G+J`t6d8=Y4b2P@#u0WO6VM)%n)dE+s^&0gM!Ex zE}l!LS=)Me&TcetcrfjSkwE)`*QGrcmr}%1)K@YZI4f*9p4k&sUg*DK-`&RoB5FTa z10rt+ecW(#_m}DRf8{UcZLDHn{#zn9L}J7KukR9y4}36cOF!De(DeB7^#{LCY;oSq z#%A*^-*y>;+r{UyJ0E<$%hK}a@GOnS@@gl}?#V*>_x|k){aUU6pSQN;_dG53Wp5l9 zR&U)?bN~MR#e4V0y3e>gd9lx;dzwZ%a%`D0dxDSk$4t=jbNwvK!OH(4^ysIEYX4)L z=arXe?TFxx6F6+F`@gH|SJbgXr@43S-C0_d_J+N0){&6>oz`zWK62{1`0g#|x$nLD zeF$FzS9v~X!%OKrk=y&1b?%BjBeC+p5ra0DDQg=VRs7li@7eR>IP2^K>u+Zt3iY#i zI`zZjS(@T=1yi=!i{1);Z9A2x<=kYec7kuhMZh}^v;y3 zeZN0$pY`DLX7MS9mv1m$o}L}NqgYnoCnYm;v8GIEF#m_mYpeb;`hH0Mdh3Q`JKJN? zWhPsWt>5yO@!fyHg5Kt!`|s8Kf9bKj?Gr5iUsqJ*w)%Fc8}Do(0|Bm22b|;mR~Nj$s95{s z*EF&G`VrhF#n*|nuRZ~n5#5r6$I{~!B*&&a5V3-CB}yKLes8O#gW-y6oR3Y_UMK=*jit`X-ga+r%vbjkL z#(Udm_U46tQ7yc9cfPODHnYC8%HS}LU&32&*7lpfOEs`}tl!VQN$}3Sw*``a^*lcW zi%rP7yT2x~<-}U9{~tvUcAs6lC*Tg#-_SYR>o!GSTTiI6ISSCUPwPRa@zE%%c8K z)uOoQIM-_jw%icuKgV@oe!0fwXK&}Nyw7ndLz9IkQ^;`s4wsX)uk?PbIn(y$rM&No zJNNEPDP7rjOln2(`+JIeHF&~GthxSaN6IrWCFirBDpLN(I76ekO)sL$WkGPVSXJ1c zsNJ!rpLH(i{HC(rBM$ys4*4$paqav3OP{hdeBO#} z|F`Ra`h@6x`tuJ&KRR=0hM|G{!zSgVw zAhDdu7fYfheR$A$&LFtz)`u^F`&L%k-cb_qT5emlyQ%(&T-m38rHUz~8F%*z{ny*D zXVQkV7r5UalSn>y@qS;_938j+PVGmTZ?^p3{9N~Hxs9_3hjX10b|%l85*L0yFmUmI_PL8i&9Aq9kDH>( z&~Lb*MyoMQz4d@<^kxmoq}6us(p30(9w+wa=Gx|}RJJ#~Y<;3+HY(p=z?En4lcZ%@+m_;*=O>%zqLiJpB;VFaL zy2%|?-p22wtr^^w9xXWDyq@(HECxv3keAg!)+eP(vRS9txXZZj zPJ1SY>yhD%d!6Zc;nI<%%E z;lbKP&$L!gP7i3?6FrSFD`T_z~v7G7rndOBZ-Gz>p@(ka98v5MI`kV5@x$5h-ml514_d|BcvYp6% zkpFt`$`8wD2)pfXThJz*!!1}**R<~T)~NJQkyS?4O%29N6Sq814ch!s)K6|{UCxGm z3)TO-CcpiC(|#IuRhcvp5b7YasxJO8cZ<>jJ-M|W>z{wwwJ=SO3s^Rcs2nO7foT;S67 zc|Bi{*H~xDj{_lBf zWBy^A;4OU?T+0I54hV_A`^(zDwLs>@a>HE5UzhwphrF2ov>+n-art-SZOpF~?jKAj zl((CHX0}PoBk}Az$`iGA1iz0k^J`(*Tlm9n;fkhxFAr?nc{Z#@e8=I2w-@SWE|g|YwGj;nx_}#h-b)^?LCsSbyAMFXZ`zs&DEO13bw(kbskd3Kxw%XH!4wv6 zj&rxJ-n9;qt24fETz&bMKaZO0T-KN#HI6r*c)^%IXy{=Pii zP}KaTbgC@JNbQ4OKv0|My9fVkc3b`S-IZMM zy^JwH`b)lrVZ(wIkE4Y>w+O#(c<^dvL|s)#waA@KsZQ4v?B@sUdYZcQ{gvbTv)L0= ztXtQ(Ew`)s)8W_W-ypX0ZTQ#XC(Zej3U5^%Xf+NAjmdkZC?4gJ`sMdwM%!Ce&35}L z`_F|x-?DWx3*VLbyZ1%)hrIlIafwp&w4XgE?@a!h!>p8{cV_XedvDjO3c44}-Md*Y zX;<#<2oW3o+}ds5Q$y#)uT9xJK`ZsTPi?pBwx)2`j5}KE_R8g!|J`>Z%B5t-xBZVR zzg!Dgwf?x-2G=fa@m+iOUEQ+y7*A67oGlw~W^NI9o3Lxw%i9}WW-hIa_BnY=^RZ+k z^X>_`?bD99I`s!Eo&EIMrPKNOqUEnoHGebs=lph)(`nnMn~i*4B^Td5#+W&7dg{=;UedWmczEQ@V zt8<3v&1sE&mYg%K%?3K zSz_n!cjCRvzdo@(b~tSNr835rsOwQaX%q8x+o$DdelXjzuR`kcHkL(kA-(o1wnV

      1l}%6XDMcTfXlAy~C9r&BeEjv|5QU16L)l>q)6zn&Y$@mC|K9wK z>yFs^*QdpgFD$rXcJ+o*xADj4d6SzYw0OU6)J)AXmbQCcu`Shq{hrH-xtTA&&y8W) zF`4VYQ`Oq!YW3{ZZp^=T?{>||dHJ&b@3WgPBNI27CrS#cKij@}b2LXmf$qjQ>-{@a zcD}uxlXc|H$Is8dytw%Io1f|e|NURZ_G*jFTz0DX`1$_opUVC%_5W+%zX%Y`{q}X| zbJJP!Gs|bz%-{Rpvg+T(cHe|;Pn;JpgeX=Qo8Dyhn3UcG2%_%Y$k#k)fEPaWyB;gh*5`)kuR zKhXwfj^~$?Zkiul@}uM8`>k)^y}wX)usI~{b_DO`liky8_wQ5I6`B3(?}ruhR$e^1 zF7nRt>-tmQnONU*xgfV? zsEHOmyLhqlp*uf9Bj!YS6(}^VT5+AHZFlOuD>D?jg;tiviyeKk?dY|ZLv9I2x9!}v z{XJL4-}QQiad+mG|Cv&D{Zst4%^q9M?Y+C#js4oSTg#`H=7imC*cibyyL9WD=H|mn z7q%zOyHbAY#+p<4-|ae;qTBzh=sEkYX!gAu^*-OXy}wxQx6k{2<@?z8?F)Av*ZETQ zx?-1FxL|-tPyc*dWu8ET)P;4CCjUw@tfHH@->cgDkuNy))h+vNtGWKq`n^E^Y)O8E z?DY*cJkGb^FQ4^kpZjtBp7Ntw|HB^I zeivVV`FUSmQ{D3)|L-$ZvVIcXvafQ(@~u1>QSQpcmbGqE8JvS_cWd42m*4;FT5au{ z@B6=2zY`R+u|NFbq*Q^{ljmzIF0C%@@xPU{|JU7BC#HV7XSeguJ^c%^ExUJeFF17K zzR&NAS8L^~pU(XB;Bmgv^N*Lde%P>RMvU0Y#b3Qj-^%W2-hDU&b_T>pAcKdvY~$RnxD{U(!40PRyAZ-{-5G+Ofkz zU#{WtqRRK?y73E6@~}3}P&t3r_eZ9_;XZ+qLDY zO6=Rp8hclG2iPXbEp}^Sv+-M?e4zPJ*3RACvA5#yXdg3K*@vUQPzUiusP=} zwWrJU`!vWMTHt&q*Xf#=W8>n}o9Rcg^2c%bB{$}LUsMgO?%eH>Iw8YTrqFXo5w6E$N*XPUs@@ANHKX7%*-8)SCmfim9WV~qG zu^)SO99%su_WG3F(ZSbRmp$yZy!+A0MPt71y}}spHSCApe9F7ay&#vT%}!F+$u(X0 zTZUFc?WD)WYVWF8$|msr{`+Uk(lc+@J?>*YD|eG)p?m6bvlrJ6U3@*OF6cqv27RVO zcIync%uz9MyYp&=h^JzY(KjCXX|oqhHs2JqT0H1gmQByw$?JP|Ei3zX=3)QE|KHyK z$$wGsbHSAz3isLAj%T&2>$n~Jea`Tl8c&tDo6~=L=f~Bv*N z9Pd|`Qmt3C1^!U}Re<$mI`@h)#bMF7PykpW%>s{>4Bn#Hp zn$|hx+TMLu6wX#wHmxLXT1FPz@fREVHunVFV!PAxto7C7`#Yh*B{qY4Xr2b{8#(s zqx(ZiY0a;i}dy_+u;4$rKa|^@2}hOf1;m$-YTY`dhBiU>&f!dSa^91<#W; z#NT#FWA`U!uSK@mnxQvEn6l3Ndh$v2Z+HFI^<23zTiGS~%1@QpRYguQbrS8_wtTL} zHmzfu6; z8QZh`tqya@safUD4qJ^B&nB_QlRx8k0= z`@DSq2;8XsG^^-#YB0yn#^u+ngxAH+T5a&}bxY`UMy-v#yUs<#Ht?UiCF_~?aMF(O zv=393bKQJ$@=&`l^B2wcJ~8#hS{bq_Yq$JS`tYYjnma;x{RQslf?vJgc)ka`+<3>m8H40}>cTu@|=G;Fm7rUC* zPV=Q7{dLsm{e5x2%eSRLe?Pze{$l^{yY*h_tEEE9qz{P&o0N09J<85}rI|S`_RGPR z+1izDF3Vobu9^__Hpkmy@7cXIOLsSZE#k#ssh7lj)mf4Fw_J1e1 z@p`M;H6F?JITl~s`Yx2&{O~Be*;0S^?1rmG4c98#->%iwfB)=PTilfyEXz6H_Otxs zoF1{2>9k8`$)mpuGk$waJ9WdtUqgs>cD}s4z3nn< z%xj<01P+1A|JSWsS5nTUm9lfX>`~_jCw>_jO73bsW0$6DoOHTxMYMS2XOS(Rd?swT zF3A%sxs_9=%d%mI$bsD82khTIZr6?P%Ut$yL#1We{(HM@_VegF3U|!q?&*k}Qg}`5 znDQJ;t=5fVolg?)#lPNs*=URSfz2kfHa0aUC-Z)0T@qgr8&JTl5oV^pH}}`3FPj|7M&CqLhyZd32-zD+m=f7&4n<2B_zRqQG)Fub;39Hyjde_%oS@DJUThZ@5x=ycm>+g5oE)=%fVgH)8XUkmD z{xip_gz**Rm+TZ;rTwI$XCi;hCgam`I;IsfJATKx&A*Xs5MQxw{mQ6iTLmRD#rCDu zw(I*eJXqpBeKOZ)vjnR?=X&$7n=NJnW`T01Uzt3&ggq|W5$^cpRKb+X|GFD0#b0$^ zJCL;1%`jpA+*#_ApEVjKomMuxweChM-=>{jc5dDn!08Q%J| zbZsBQO@qdyPN8eRq~Ez8m{_i0)$w_Llb7$tzR513DMjzH^Y^oC+H-SZ#exLU-OoM? z%~tjj(%$vdyXx~<^MpT3pGvJbSby@f!nz`#SJ&-)pT%n^c_p7}Fgy`?r~1w+o7AG(+O&qNIrGP{JC>TPliwdW*t=~#*Trpb z8mxHRT-{5*vV3t5G(PIoV;1z=wM2YXribR7I6XZJ<&3#`t2 zy{hDf+HS?G#wz_i$>+EKWKDkBBj~k?P1w*NS4H{0U)tS;E^&G_yy3z6u3st(wp%nt zU1*)@!?7^xl6S^>uBKNz1=v)Z7VyuhI@P5cyhHV2XotGqpBvNCChLC?42r+q_SMU6 z!o!n>str1i|E^gjIQj9tDHd!pTg>?XKH0fs$xI`L3jV|9EIiGoZ_Zx%^(yGW#cRyJ zN;VewuaAErl$h^ucKwGJ7Z)qN$Sb+YFf0Fvwv$b0!=2)vT>ex0KeNqqZDU_(5r1Tw z+2Z>wdJ=v;n&a=mi+t$cmnsU16*Y?M`1+3gZcRpM6V5^1vzHbZCb#vbL$Eh_o9NDE|DBSyC=|9cMzj|F~9zAfcY*ETv=J!Tvs(KT; zf9Oy9A1e4yJ96pv(yh~Tq9=F@DajXy1kZWtdOB$T=N*oVw`eRelF1G?+T*<;zkcm? zr-f{uTFhG_-=F4aUr_Sw?#;IxZzrAny=>17qjr7Gj(^Ea0dLfgZ*IyB&{^!tc58L- z#K+gK-?cnh{hcFo_L}N#`uA3BI=6mq;&J~aOG4UO{-|&XwMsC&U;NZ8L!8ZN)-mU4 zYfkERen02b8fwb5L-qfz`u~iw`zu~rTJO1~c&u;Pq5Th8H2j>*jiL&;rx)@qNJ}~u zzASwH^IQ4z122d;Ej{>>F~clT&u5sGoN<);s1pF%ClxT zAHI4%O?*q~W!0Ib7du4uvQFtd+03=j$N0kQ$gAJ^-e=A_SGPWmZS~1w9Yw+BM}hmV z{QBNz`|HfN{^_RgSMR$XcJ|Pkz4=T6M-)_(oA{*TpZKQ!6DZwj-LIzDa&otl?(f*M z0TIoLum3%owNmd$o!(`yZlyC(%&WO|<~M8z`dzSzn~Blz;EI>Q9eL+;m=KOMbA{&z$dD_y?ez%~7dGB#ddqWMhxab@4WKi;uyq40$HrSH9Z6(tP(C_c$CT~x=3=j)9vRI{AJO?uE4J%fEb^$& zi}ruk^mY0p$!kAf9uFx@vY6*I+u_qMi4Ri$P40yAzg%wrRgL$wfamp8$*+I;?|t5K z&oIAzn%Qk{u_u>1tuJ4Bd@+7|z947YJ!$oYi9goo<@>+SVMu7Te$TjKH{+=b`{&+y zxZtZAZ{Y*AKk{$)y8b>rt2A5C<+NewuHD}1J!i}B^RFxQsDJjC{~qhb3!hhBekgy?aue7ZrH!&^0}VfJiN<9 znwEW^6}(?kVqROzrd^z@lIi^$H|W&yOw+me>xM#`vOW{*bU#z}lGmk&ubJ^}vt4`g zrR(hEjZBT)Fi$d^HU3QdrT&bTY+oZbcQEIe0bHGQ3sJT^nJ9HXta#nWc zYG>9yc-(K-bLUUjYrD18HvMOn7fM7w4ms(Z?NxHwq^F;E=C**HZ)9tKfBLj{dCBpI z=c*aBbi}IlPd)f2-swE^_oS0+o7HMgN8P=5?eHVZ9m{54O%>QR!8o^H_2}j+j!b+D zDzELie>ll=w{>-#-`UCWk`1!Agt@Bz2k|fc`QTCQu2m<^qLL=X96#cq9CPzfcJ`uq z%l#dn{$2WVdY}5M$)~3?99&ee{jtl&f>as3EADxDc|oVvJ+;pKd>w;eAjOj@^W zcg~k-mFEL8&C=eUQaUXax29I_Om0ApjVkBW?%Tn;mP*@R;C|%j^7`Y>W5F$xc5d0- ze&AjU`>nlNTim~Hy3MmFW#;w=hxKw6=wJRB`9Jc)t;mM~ei}s))9zo{X}s*GzJ`M5 zoO`VorIY^}H?DmB%O^2p$xgAqCFgF4lp ztrMq|Z$2mgmjCw3+D74PzY5Pte7GXKZR6$K2kTk&>)$^6_T}8W|K>kjG#FN2Jy+eW z`aekW`rU|h9yR}8r`NQszM6UQ+WJ`veU&B__JXr^OgnR^z*p$R+}G3gc;C8j|3W?L z<(k#(fiYLtHm;5?UAl>T(XP%_*Y-vg>sC*U)8BPfYR6W&9)ZX5MVeNIGtKY6nkw+Y zSzv=m7~?+!nYAZNi`RBuSDc+iLs;iV&EK-`n@@3;1{>^7XcWm>`!DTC zXnDK5Uf+xLHLtk8e0t-`eaL9Fly2H#-y`7%gnAxwweH-TK5g~MTJPf3XRb?y^A}{M z?`W8GVQmB#qv}mt*~9x2H5)oM$tgF^PIK*B6%l>L>5Q#>@$n!I>u)|q4PLkBEf4SY z`};s`+a!)t*9^Z}3R@~h|IXn&y7l!%-RlzlGj1#f)20@s}Ue)-?N|L?x{Ox(5m z{*9>L9u-?}X7+FVZYd%-CEVuXD2H95^m(6boNYpq#<7-K*;H{3mG25@@J~O_! zq~id4Wn<-9UG60zmZjR~uU!k@X6x=VF>UE{O$R>v-ak0jP($TyHjeFSY~P-^J+GyQn=a;)?mHsb z#0yr|30ET*UUIW8+8T3P|MkQFAE*DflFhwad^GC{gU<4;E=@cpt}Tp>6l+4J%jW4jJlTfYE2J*v1c#Zvo7W5r-p6+&u;pbQ*tNfU9!gc zC0>o3&*gOUVg<#QM7~ujTDsmhXSbeV{H&nleKkv{l2r7%@A#V zG53A__2b7x7lyfO*z8nWaFNqLGgG4Tf^Cmsa{nc_n{Sb4&!w+SzrMI6x zs;^tIaks=aPUTy7Zy&AN;F6^G=E$RPM-J)6c8NzviqCqjKb{wNKjz}!YW}8j@v~+1 z_4D=4>8odV23`}%xs>Ib?SHG~ruNfos%-oV4wn6to|KjSAUow2WAd@)U6<4@pP#J| zF{vUtX|3E*ks9Xg*AEKz%PQ9F-ql)K^&{l8aR0qRZR4puK^ynSPhI%y@2_3@yRT?` zkhlC1D3#(EUUYNP{0&pDx9s~j(?KcJL+3w3iT(D=TeZX$W*;leJ;`!J-Cya{N6CZP zXQc04kH4e4>)?IEoRC?!b7x-7I`>72<$Lu1N84Zic(!Bt+R}$B*2U;ti<9r#~C2#*9sf%Eo(;XNXcUg6VlkS2`uS^naD&8-U<&;~Z z)95^@lj%f5S{cs~oi|N;N*Oe`z{%Lh$?K_`E=W zR*wH)43yV@X!WURyM0jc>xmDm6s{$A#1`=hN6qUA*7&Y<=HxV?EuATaoPRrC@zy@> zJ^ofBU+&G$#(VYu?>;j;I&bmC3+*PCw(@q}zThiT`0Qz@?3U>p_oY}rOnW$Wx7Z`-yc-1_?a>Cw<&lPrgTyLy@5UHG4^oc2Yd?3qJu z_}ycsCdUGq)o)*%E3z(xW1fd&e%QOdoQq|;&Q)qgdG7UkCofGhOS36i?T~dK;+7o8 z$?lv#xBbs-&Re{LGqcjEUsR-{JAvCe)LywpTQ zw8)i3(duGZ_M8Xn+2%{IE@=AjC|papqV8AS`K!K)U)XzpxU;3^otU8d zOiDIp$D#}T`3%+%Ri{PDRek%jxGb*W+J%3sw*7q;oqxbgEM>RVOSQbJgtdw+EulYb9a%1?WJ?C{>7Efymr{**KTLw8{YSp{e3EUH{LF5+TO=18=n8z@^P=`wD<4l z{+FvQ_*xg8^uoX7b^QX}`gQ62GII-!QyKTKyCHBfMRWOgiA=?f8cMn1%U?(4u-`LV z6%=XkxLT=m(WAa^>kTi99`)GF&6qsr#ec8YZ-pf}jLctctYq?SSNwkMNUI5RXhd<^ zy|C?7*ExP)SDn<^edq4Cbl$C7Gey02?K>YR@$l13-HTfTn|{BYTpe55onM-H{lwRP zyI(tw{%C1ibn}CxyVacw?<5z#n^wD_#v#7qOL5hbqKbtwp;M0Ev9VpWR4M7A1?N+* z%0`c6ioqHs7JI_}t54By^jh{NQN%M>Z0_;UgY~O*cIr%jQ8TS<(yPtS<)w`;|LV=3 zpzSu*{o7%6_Cu;O?rl7H`;BMgm@MX!7Na_Yp-eKP&Ua!@^ubAeOo>zv%T_Ivi( z{=eiEyK`a0s2Q@GLgn_1`00uAX8B6}}4B`ZzaU-c*Ru4CX-CXpVSiE>w8t>=ubd$v{o z(*IZ5|FeHh|Nkof($7~R{XTpPcg7aP*2l%hYqK3Ywj?Yn|Et0kS%uR<(>AV=(z>=y zHLTUS-`VeH_Kdk7qqv**dP~hN74wV>c#_V*$+=}~W@%|q2OqnCR!^wkp7bq>tEVR3 z(~MS2KD5BZV9U;WuUFG9uDJZ_$X|aIyM7&s%OWk;{O^V;N35`ph;O{#o zCclIl|21#%z7Q$e)!yD-QgloAe3~G?gzvoDealp=`KqEGub*E1jbH39P_sy+ zfs1|n>HB-)KIn@cx~uv$eq-uV;kML;N=c{e80Q>1*wU1lBx1pO@aCRECN(Q-`=y7Q z51U;)dui4E@88R!7b)l;`9GKC!a?(te`XV3|GJyC^;33I@l{K~oYf20G05ofy;v^) z*JN+`N4ePRu>!{)SpJf}y4in6j_542yhDwf4VWdT7kajwRuJ9r*CmlxgS|K`V(pSx zs|63Iz4&hbqjs0fdCtvBVJn*Uud9B{P#G}enWV(3t)a)~@4kAUf6K-_Kbdl$p5b15 zwh_u&_2^pBe_8TRg5nOe{JgR8Z^SnIy@V|l%r>%Yt4C5NQ81(f|v75w_>{jzO0 z{d==l+P@CmZ7&(h_d1q>2bOb-UQ|ponKrkt+44%o46Q#WS(kiVyY7vPzuQ`EVa6BI|CVZ9 zkNuH9@p8$|y4q65_j~`>UUpKeIXKJaK}knlmFmUA4~`!wo+QLw6LdQ7{j`I(W!u)r z)Hz-I$7@%}bwD*XE-zR1ito?(chlzk#m!zNbL3*gir}~inF81K#u;nR8Qp%LD8b>+ z%VWM+Wc6cJ**EfA9VE1ur}3^iSnyn2eAc=dYCgv2CooE^{_$ji%KE)m%bb@9FaEy& zU0ucVN3y$eBsub}g;^EFUN1YyBj#KQMw)Vr-> zUvpO{Z%90MM&8yTZ2iN_-)6fXh)bE293U3^L%70cj!ejeMxj?-n&%?5Zd*%=xdbB8Nc@wD~|U3IVenc*Fmx4h`=a@g$yOd>93O|^+vu<IdH&>$ z>f5(+Cf{d-M&C`#wOp`6I5o!dqHv&r*WPDhEbS9gm|UAT_$wG#yw6#&J?!YKwUMXt zmU0I$+DL?#PitzrBk|m2rAJza{`M0t3WkY&1>2d-M4IpHG`jt2*V>**nhOnMcV^Z%{XP=7DNx|DrZ&Ysd^H$&pibfw>= zDJpwUi`?torxVaT=YGxVWk0SiUYTu>B6+;((0%LoHQOttlk{7z#WTzIhHcf&{n`B6 zIQOUXuTNJVWNx~7+TrN7qdY9fPMphm;E=={QnTyuAAY;cYxS-EOPB)AKe>I+ZjYAo z|8AL^Zc-&o&rRQoo1SWXyt|tB1jp5ze7@Hg>}r(hx#scd&6_1V{_*ctcgW{?#kpc- z@$0A^TU84mnK(8q+!2;9bYh+K(9h}FgRTMDgqT?Jh56$L zZO z&*S@=Ie~}f9oVsP_n!;ej9v{7BOM-!DB7FftmwQuC7{&UR*<7MgSo=tR_Wio$NTqh zzu)q|Xkql~P{-Z-_T?PfuNCyL%Y2@}mypYGf17IL+N3r3apeQTKx94)~a}=bw+IYF5&hQZ0$^OK`ReFYJB|T?lQ*P zQcJ63W^r%zX_$1h8CE>T^3X^4-ExT1DR&TpLU18GgtG`T^Tq~W%@~F9b_N%&wpEuP- z$99*#4(-+1w{OqV+w6=1KZt)rWJ995T+kekkRk1}jw?Uxv zkjcfnTV%ynFR+lf6?p#5;f&Ml?<_Y?+HFu$S>SkNt;?I7;Z(N)n%>Ja9@VYo$NsO6IENXpJyq#g> zf3t(?VT>yd?D>E8kU`zail7|}ru@*5;ARt8zw@bz#IBFtpV<~%z0qmQp1)DBGV@60 zOqs6_oBuNJFyCVPF*;Rtt=h(y)oE-026p)i%_?GD%IrN+t$vMYE${@(|USSOwqM#BD1|Wa&&F8)Abg8 z=JRCQ|FGL;J2qQroPTrKccW7N>HDjmwWjxe^Pl-$?a+i1Gk5;&u06EYEwjRc`^!s# zr}vnHTQ^<)oM5Z=^t@EWI$f{&)vNbaO^=I{z5KR9dYZ(vbCS<5cosFaJ-<0sJK_W5 z>Z!rfxl`7rhq<*n78)Ko^68sH@Cmm?TyLVSsteub*Z&CqGI#U)OQnK$#4d!FH-~iZ z$i&#$^15KixJn=if~xqZ*VXO0z% zHGJFK+4t%_SgIcGZppK?A0_vsc{t8Ia_sf1zpk_S zg_`znt!;mqZr{1CzS(~ZlR@9}_qn?La$-(@gaW32wq|>G&$Oi2GcW1bt5;&Dggp+q zzMPUHFJ|#VxJ;wz%^us`+shw(y&nGBY}?(vck4O=Yy;W@_a@AEU>LZSwWVoQZBfkj zZ^x!^3z~$oZJ8LL7uWv&8KZ*8ggyWI;=>co5@Ylddg7P8jeT=$@!RX`HZo*|Pm%Vv z(qgKUDC?RUHThS_^#5kLy8M~>l`ihxdmrtyTfBPL*;P^h@5KI}qV#WLvSM$=rO0_n z_atp!MsWKYi+xI|$xu!U@SLUP<04saBRTurn|0ySzdZU>DV$I?!8_vCYg4P<0J*&@ zvj5ginSNF5@!N;fmZhwn86{Bp?z(GS(6k--TX$>7%`VqJ{mEI@`c>0TuCBXA%j|zY zi_ibNcT#q#p|j_MLdWx>$wJcNe$KZgFY~`?oc3~$sBgrTf0ArT=ce4NY^-7^=wRI= zm-#|6{QKppJp!GI?a%K9e2h~(%aZ^4zADSAfFL)?mXE)9!V+IGo?pS_WgK#^;&Wm2 zq;Ad&FaJMIm%q3K8F6g_42B^{s;bt!fP2qEMjc`oxT0^)qV}(hmFFzK3wrXQ@xl@#g=Jx zuqgNUvZ|yy=+^deT(vs5y*;V-)4Xd}CBGbfS{ckzR{njqTkd;4-O>+n+!AY|Z@Cy4 z?U|ksoV@YMR+H=BmS33pHRQ+Qx$fDEcnyV49iR1fd4-6G+<_ml&EL(04b&G+IV->| zFe~PIl_b;39r~M1t|tiov)}f8X48(vn;Q1GTStF?dGMR^uP^5WYb$DfrXSVax2kE; z(^uC`>$l`(c-Wr5q5PtFgV%N@%{vqO!qp1$SN&MM;{b!Llhmwhma@HTL=^r?`rb<1 za%f{s@MCqACB>^&U$)A5?|o|Bx{Lf1zKO5VJJNKSwVgX&T2jd3s{TsN%qI`8cHO?c z>;66+`#Zmidbh3pGdFJTrPRB2;kL}HB!mK_L$3c@c{)c{ewxV&?tgn1`P|X|5>$S; zVv)v$1-EBp{{QX!)#PS#j+6E;i9;4I%vuzLj~!vLYduqYXlx;hU)9qZ&mwV3qG*j++{r}Ui zz3VTi%h-M7I-n{W|1M9qZu5kj_cv=^VE(Ejp|$NM2gjdpz0E6q_A*{p9)k=loyZU-!Q6kH0fJyl(%zj?%h1uWDD$6$cw9@@;lkZa050Ym@St`uZ;) z?AGRm&wE^V_tTlRsyfQK%TIlOT$p-G{!T&;BKNzTJ}Zf0w#{ng0LR>n|()-(LQBlXvg$H+K)+&`-WQfBCBO z{7jWcg&Q-Umi_y}Q2XZ8!3R7#RV+Rde2bEHG|y`exG}>Z;?lnII|t)(_kMeDu~zDI zRM}Gg^k;E=j`wfqRx=hRxg}}zm&&|q^b%7P$Q2Q(`^B%tvd?vz#af09cFhvJCjC+i z1+OL6u2{u9{c8-n@GYac)BoPITAtnT_OLtuN_qF+8#q=JZ@RV0;I4d@U(fu7{O9gz z-<$lp%tv7-1BAs zamBGUC~ce^qXtQc-^{}RW{e} z$n|Pouleu)QkZXk1?z%CrHUiWr(0-k4{-t=JV6}gZ5`+nDDE%;z3oA>te;`92q`?|#M?_Sz1B^lqW-M%O#c8-Se zRL;%H2WH>gCY+d5|H5e*r|b*+M~9|#Oits7UM=C>uiWoa=op-6mYJ;}b^nazE$u6J zg-vJGUcI)pJw`v-dN2Fjx6YQj9cT8$U72Y*^8oA4?HhB2xVj$*uasTDt)}$g&z=^k zTlXbre>lD=C*}3Y+5KIgic8+deO@qk&YW!zZXI6iY^8fYw(RQDC67d_-oJ_U?>HJa z$zDX|`RDm+B@FSCo%ST2(deI;ALOjA-R5P-oZTZWa+*^&yj8Q;DSr2ks`ufUY*CkZ zc(;Aqwy&zV?(^qXhkX*elp`cu@>+j)O=g+==KfJz_P>nZf_L5W_r9{QXA{?t$+we# z-TfYCR-UFDSes(-dR5K(*XjCxaTn6E|~Spn7=l8b9LIa<^0~w&)>&g-miJ)rJLQ7#7f^A1v3*mIHtQVI?i)_?c7KY z-(8EgD6ZV=l6{XayLs)!U%dL7@xl?xs%&=zdOYf{uT7L)ux^4uV%hd9W?bEOPJdOh z)La#NtNhU0m0@pfh2w;rIi4Cn&%63Eu`w~T-{y?v5)*0m-PseL-kmK_a@fvC+p02h z8hc*+mj(78N+$O6ZndnA)j8If7jmro@xt))7oPTAF72Nl*b}wUQ}HC1Wt{n|tpA&y z6t${--fADO`)~5>=Ow@1?1=t9YeL5t0|ozF9=&NCQZmKI{Eu@BYN>BrykN)g_xBes zUS!fK=hR{t@KvVe`~ClNv2n4#F7Tbay?7#X*Y0<#-q*%l?zgzCn=NniSHD&KaM=`t z(tTDhj2HVlygHTG{cC^S`_(4S%{Q4B6jWB$?7U(1L;a}Q|LWGhvYWc1)lHntDZ89( zuR3JwscB5~nH#zuRI9KrcWYqW5N7iKj zH$VDmef9L!uXU>#)ST=%4PT4zUZI+y{N;kAK=W!|iw^tD{Pxr9^VjXx(Yu=e@7sR| z{jlRD#`gm18r6TiwO4s4y@btq_tmTn&A9I9l8rZ(U*8tL{JhPbWuZT7tHVBo6a??t zTN2iC;A`pDU%R?v8Wu{uQ|Fz%Av@*aCw7}|g@iy&sH$0@P6hzYqhZCMftx)oLY}(grE4FoT7BK>WnZ$?qf}{EpJv{SbFXXd&rv&a-BOS zf3u(6#ctuedcxX&inDI{zsdAY+IKy++rq|5%bQ_&UzB#Gi%>$qwA=3$IYYXai_d*5 zmuqMHDg4N9!N2S^4=NUL-=CjSp|j}U*+a5tXFq$atZ1Vyay9?S(grdA3w_M@^lUz! zntdpB?*Dsxm8)W|{VXpl4-wEm;kHOC`&l(-Cz=$zB5%^e1yUAS9C?3CPvOJ$N(F-}pSw3d+EsJ$PKmX(b<{m4|C3VDdkzH7 zT=CVXahB(Xykw_m^A7xUobR!0Zt*JXZmSrx6J3n{-u}7AU#*%N6#Kt)?X}I5IW+_h zXiSJNiSe`aNLa1SaQfT!1+usF=e2Dwdw;P!UhMses~+<5@t4`<<1R=?TbFFJ((k%1 z%JDB_X=KjVlI^P^ZVGO?e9tud@Wz9achCMc@2YB3d2GgV>ksR8*=<(k340uJqxixs zO_^=1dAl$8+Go6+CQyGcMYUy4xL8m4oV2wk6I*Zp_3AIZ9qQ|n@+q7>s@s^6wPb1l z$CeF@n_VV-2!5Qz$Hy1-rpLkS&VipRPPvP$_RTMT`sUA~?TQ_C3lHCZ_tZ^N?)-sZ zs|TL5Pqv1=3g2scW2eZIw_l%M{pI%1eyM(#DnswI0Ey*q6}t{JeJGlBd@0-4tIelg z2{}A9{QmCla`*MNIo|Gv1y0Xgq*=3i>;HGV@9SFFbX$ltx$3A{9NhR_^Ftd?zCzo) znVYU2S7q5_ts_yPQEKybs-#T&i|C)f;^X7?{(o)K%zT+AyI{xXoAH|R|98Lq`m)3= zDE2dh(&lh&{_WdU8=o)rE?BzN>*(pN`QQ8AT|V62pP9Y$=^3vBPeWI)cAvDbrt+4b z=H^Goj@T^UE2uQ9>*mU*4A+B>r}Em*es}x(3f}l82V>6Z-@g3Kahdh#YX9fh4`y%m z`d%dL^cQ!%xnqswToY$G<6guNU*v6J` z+cG1kH0)ZsW}Wo>`JzV|r$w6eEU0s5)zsPU`^vk+Sm52Se%6zg|IXT4Yijf>+nj$r zSw?)*4GkwXTLV>7-TMMM+ixVlF%f4f%Q>0OC*J<$^8DZ0U)JyY9PRqhO80ckCBF9) z&&+F-yZ(|z(_eMz zQnhfSNZ>cYpZO+w2D(RBrFvG0UDP^h8(LnojCGFUjyuV>f85yJ=Iv7;=+z|Tcw8)0 z%E(bvJmYL#giY6N>)n0J?|qSYfBP!$-v0-y-+poS^wyfJdA{=GInUs7sT;2RQCs)< zPD=OSkuNk7T5>dK>%R^*t6Sb{vqL4HuAd*f_xJwgl0s+X8hAIT2A*YfH(7BU@Qc#n^D{_uI2eryzRGpIOVU z?BRbgH$u$+pkuGF#hv_Ev0A@5*xGrdM^{%j)^_p|P!C|M&OF$1bxxo?~!q zW&S(CO#;x}V%*QRsUl5UNi39(zHy_xSAA5@!Mm2v6cg0qX-F7931 z{$>8(NBWoc|Cs)NmR{cZ6WeY@I_WTGN9h==$=I=KnXt;XwXfn@dDZL1(eCLbg>`ZV zHzdxQEyiVWO7GD;wfU0vF+%p`gqv+FsFd)sy_ z;lEd}@At;#-?7Hme(R4tZgM|%@tE2R)j6_vUKY+RTAF*2MVx(SslN2HAfFY>#lzqK z)t!~dJ0tA|$L`(!^K??aO0zopzj|-dIrUz_{G7krcUfycUi~sK-*kBm)0G~_rCZx_sYHHrOHYoVoLerFJET8zED*0lFp4)Hgo3B6a9YIH1(O{wOtua(zO7=pYvKJhucmEy z^=v=uc@I&BSt2WJqK~i1`}`_1H~YbL59>YN^)C8<3x6fY z83~A*Xq@Y~kTqY+B{9G$L0-eD+Kv%HpV=-@Q+`ZAT7?f3p~nUj12EU%X9 za?N==Lr@7t`630u-`&xp1!2?#3{KYLpI%crBC z_wAMVz+lRdWD)S}{IQtt&sKduY^7wkP3X|v=5ChTmp@*%s^;<3V7Rqz`O{1KF>(98 zPf3elUM3mG$sX;$?}W`iw?rTQSNSSWHaz^5vS!xHe+B(@zy9s_|NrYr`HMH((&ubi z>t{86j^WH~@w>MJ>o|^TCbvcUE?R!z=-q$$p)BuYWw**O9X#n^v-pFC@cJk}-M9z8 zc0CpK(7VFhu%Z&{3Tz7cEo7u|OknT1Rk1!(82y;|Up{VU4^c`f ziaov6G==l2z-kj{7T&A<_y6ZzG^LIoo( z>9vG^?VPyn#)=)<3blS75qqj!wwzTApP}(=%M;FrTzta2US0pVy^i;`2rIWn?Ogqc zs_dxw);HSjyxq4Zl%?)y?%n0A?niq1!~a<`L>ufG`pV}2 z*?Z{DKmEd^TS~o-guOYxP5k@CPrkoiJiDv3KyOy|O*s+A?S|`Kf0H!z%9-dmG0&$y zM4QQl!FTb>x4R;Dn>IW@xVJrZll&HD-!}?M+Dp{VL~Qx<<7>in=~RYVZU54@vGJvf z*UGf61as!+n-|dN=(%zbv-$EXE0@ zFV=H>{uMd1)cfsf_g~+(%-CYo z8CO?vY@V0jaH46ZjMMVQO~|%JG8JT~`;w;0h4L?NVcZ+=A_L)srrP{u2U&5uIXRqr$|NF0A;Y?>k z9f!r!4bH|yv_HTw-MjjK(@jtan&p9 zPFj{4BylFTe!UiRM}4{e><9Pn-d=wAuktO;uiLHG5#P-y+j@`L`EzAzwNmysCWGwE=An*C{Wux=^jwXdkoxmxMNA>W@fTs*VbF8Pq< zoofyJFT(e3-M!!2{q*6oy=-w;MfRSbFE6YozqI_zcZ;-zeYL_2cy3! zX5s7#+ill>%s-@2?v-qBrn*^e`6{mn-b<_h?%cJnXkq$a$+KG1bgpP@RhYKxnBA_d zrLQC=s4nY$?(F*F?Iyzvr~NwOJB3X9CRRI4o$+foYvrol_wU|_ax0zrd*Xqz_~Q#7 z-sIfQUA!v=nWfn z`T`e4{`i04fXQKg-tT4eYqst6`UJ%2`vRb5ul=b7nk)x7h4 z!lGBHq6VgKUtW+9Rh#A5@6hUMYncB%u2@j7O#E!>j?H^-KazY^RbBhat$F*J2{KdM zG7tH^cP($6xNGTmtxL{|%WEge30#ZWHTCDo1&bC$zn7KXzNC!bprl*fC`uK9& za{2r%%XC9#=w59KQVT0Smz`#69oEjd*xrh7d)K9aeql5IE{>EUm6&Ua8|p6J7rYj# zyFKd6_3h>@Uh}KPzN}^Em$%ZJ?Vxqv@BFzf^|2C-nRo8pj?*>wxekrLtei^RLgnzhcp%g=b7go-X-0uH*dT8HZ}6| z>f2oF_1C>rv|r>ZxMlfu{n-YqxLo~87WH%=GJTyp`^=Bb-^=7Ch?JzhZz!4?+b#BW z|A&7bpZD~*nCx265z*fFdT&xH`{MqtBYRC;p7@x5u-kP=$aYJ@vS0VlZSc1L{DJ$+ zqhG1Joc&&Rd0XqDc_n=p-*_he3Nz^D+^G|m)X&O!`~KV=X{LP=)`BJz z!gsdYe0$Zketv2BvHjnFtiO1Ab-FL(hU6aCrn0C=1&;|vwZ3z1^0%F2np;};_5FI= zy0sifxtEJB-hOX+-q+I-T{|Tg`~J+CW_?t%Hh}$-P+$E8tKC<4^C#xjODFUht0v~v zDhBNPy7XJz+3>>KEPpElubhjP`uO;9`j8+^L%8&LEz4{krp4a|8{-F5KF=d+>2LJ577tVCv&A@M5U>$Q!(XHy?m1T7ew{`yf z-*CX>u)GxC_W3niKeWXAU0iF{*lx4Z@y|lXYY9?6#IITHaC`jr+xne47p*6JOVIQS6nH%31 zEYLh)wPd@daoXYj+sB2jg{QmSX|`I zN|ofL$D9Q@S~)XN%S_>=m5(VBwYR7jl-VD)=mM+@hh$K6Trx zuv>SZ##whfuiEqN=N3QzCqGUUGR7^wexSovK;`S^d2B!a{Fsq5li|pk^cyDPC0$1q z=Z8(!^V*bPt}A`awkmc1mK9ed=V`@V`h2(ieYm}ANQdy|!mEzYgLbE#nkBw&@{SLa zs_sl zL2$L^12fgF6T}=*07qD`_F~K z2l-J>QZ}7uST9KECF=g)WK(`jeQ%lgl)VN0b@Lvu8$3(ixW>zUQ7o*=~Y*QX^?qj&a{{*F9#@h+wk zGtoL8UlZ0}Q~bVO;;22kYx&zFA49S}Y-_zRf6=nIRi|ab!^NdmYrT}KT7Bt~IH!%& z+{og}!@mvxs`7^}s^be|xI3F~bvf&W3%8GF%2drhblW5LSakm-nJ;dkHN4zLx3*+I zIP{`;%Ei~|H5|9{e|TARr8=$F-<4WC{W0J1Iqu2_k8PjpqS3v6ZhZaw)u62KOtryY zDQ4Q!hP`Xqr&{gzQ8;n7^g7G3-5=W$s@|5DJ+$slVLN-RMPMzb_WYKWD!VV&zkiow z&b?mlXBW@OJN-Aij$E7Zd-M9L$=lLSX~bAm|9)uq{F`L(w%1zDyEXTCb`?hac_Vr2 z)5QgIH*ana=0;!p2~#?O*isDEgs&Xyy-90uuG3ClH0CuZ$0n__l`D{Wp-@`LtC zi*D5Oe~XUj-_2)r;DB!S?<>DAo>qJR+e$Qj*XLiZe+ne)Pk&%KE;l=Y<4$I&&{Cz^ zknHcD9%acg-})w1AG9~g^kPWuT20^FzqT)0HNUrCk|>-|nJ#1~&mjKeZtSaddjvG> zmWllK5L`M_!o*^(EVFa1Ozqc%3k%s7U8|TlOPHlsx^Yu&-LHzDD%Z>SyUG{nrv(Jf zxU@-L!!Ru5QQ+LJuNPlrXTHCFZvDNVT4z7FH$^i3C}#*}>U#PiHRaPuL%HO_H zJbRz5{4jUgO;Lue|Nd_3ymN7_;jwbb9bMZN=YCaswOrXKwdP~g@{O#W2fsaM-+sy{ z-aWDF^{!J_Vix#anzL!^QjJ)d*UuNO$f%rSYa1pnHE~Y#l=k5IkXtJb)+_H?YT12n z$tH$iwIz!00`Hq9tmitOww{~gy`!OdPC!#h4(obeg^WKx8GnfzyIq~V!1(C=i_3e3 zzujheWzfQ~s@|J}Y0IypSr6mReM@Su`|{#*Nm=bJ{*99~`ae`33cs&-scg50hF@tN z{|&R?dlCiCX8#-(AIg3&aG|~Q%6WO2O-aWNgj)r7SsM7vTg%RLHQ4p{yBV#E@84ee zcbZGS$JMV714yBFR-n%WU>X+NR&+NS_&b@v|dH9P>-CLb&7dFnn zdN*=n^|TB469d|m3wYnJA_Vafr!kB2A8?XkW4$$fQS^Zrdg)z`>R znyI3teokR$rPHsACsOvD|LuP4!WZM?t_*e+1sk(UIa6OpO_*7{M>d&%zp$Q$?Q}hh zx=l)EvWo*ASQus4P&(hP^h>1G&ML=k zZ-rXdPe1J?-7|OUfxX;8KlnmU@3IlDefRkNdk6d2Og5PtwI!<8`=xE24;(A`uu)X> zitn!}JL@i%9pzZh5vm%#K$HFRRavFei!8p(U9$M`(q*ge#ma1vRjWGW_&(Wv0euOPe=bxo^;TVUc*sF13(X^RiO6 z=uMdP;Z5#m6(yIGi_ZRiyy1%li%cNj1*b%(3rh}6G@RJ@s6i~Zd+P%8Rf{b@e!8dc z<1mSN2Gjq&y>A{Tbg!zsdwl|bX;k!qUdd0h7skJK5flab)2RJXOd_S<>O6~b-FP18C1;qVY+VMvG#cpn~iKQ|QPKyt=*3`2vz9V^$^VZU|ukmaAZdVFw z7Kj{McaF!tecp=P^qQjo%QLb!UcYwbxY_=lbHjc<``5psC^5_V{Obp|-{$z;{^56Q zYNF=}5!U1DKXFALZ|8JcAyUn>>|h?BUH+WqQ{L+?R(-sVw{}mT)b+*Nr{BGNu=#x9 zVGjcfwaWoY4y7MHzDl&2G$k>=q4s^t?=1^nia+D2ueSlUe57q|)P7pxbM3xH$uAbx zIm7t;^six?wE#)5CIgaT*W}dmz9r*8&D#5R;%+PqWtp8Zp?No&q|y2iC>ayh@Vk3MVrB7g7PQ?H!ZzGPIVUORWkQl#aN z(YB+%vaJP5Y%hyS{oek4Wu0`yB%@7X>{Iq~o{!VN#NP9MR}xd|LRPg&d!@6#q@6eD zXl-vEj=cUp08IPV8S!T|XR^P+XGnrpQ!SvMvpY~+E#pjnVOg)*iaR1wwo(0Xn z?tl9*7lGN{`bG_!;h(!+yBeUpOI^@ zchi{Hu>5%V{a+i6ChotdS5nD%O^tQ&g_-F+wdpq&%isN(c`IJV^z4j_tGv~U{%h6Q zZpjk-_mP&&Z6io7Z(`r1rmP-6@7=t3>o3{xjD;zwNW5@TSt7 zdwhRy1}5hHPf$?IKGba3_4k>;JsBH6hY7bsi`NSm3K{9CxGt(w>sQ~fk4KkzPNYTR z%jo?Vv|A(}Ui;-c<@UkJ4VqE)by+WkiaAm%?CxDoXVb3V^`NCEvS#lbk@;P7H`sX| zXWJCF=y(Pz~!eEkYDY(Ltu=yYi+YQ@F4vG|E(>p2Aekd7<(8@0vec4kuQ z^?G)`)G3<3#IJ3?>asH5)cEPuii_Jzn5x2kKiprjDL*&qF8BG&b)Ao$e>a(^zA4_- z&&jgJ>fM&!N6hZ;BtulEyM6qq=)}4x-E56|_PP{N*#$4^W0|aORkP%7EQo#J8|$jJ zB=V!6(xHbR&v|^={r}1O_iu8~FaPz|@URT?2X%(&k3YxXkG)qP*zw)FwXS@kVmSv} zSmMF25wm2gK0gTl^5|9auFUpJ5egE5MH$K0(-ukw^RR8sW1R6-h|49NL1NnDEiNn?v7XqX%UrFP3nDWOjqQr3C ziGq)pFEl4_-d2`pwv02C%hlkOgQ{Rg=ONp>_v9b^GMLGECUeD_WpAd1J1&@3uAa=c zSnRaRtZmyPJ+02|^B29v%692_ML(1A6gB0il}Svya#vpQ<6NcIrth>g=Dn4m;=lHN zsyDb6f8c)b=evcJw0EaiEi``ySM= zR$YC>-t|=e^(KAOqt(Y^fxrj*FstAw@Vy(e{|w%!9QuKSCVWNPUxA!x^d;DDY4lq4{oW8{xeE6oZA>Rd+t}? zTX*w2rf>YoxO%dK!J3W<7oF4ex4$ZQscd*Jvwn@NOXYkE)tHu0o7m51PiAZ}J~x3= zR9U=WicZYOE9-*|87%_-By8Ti+v?YwL(@Knmz3=?mv=30HHuHGRj&sm-v zZ22eL8l)L0XmjgDLmV?*FcR zJNDZsoL1Kh2>;+4zFkvfl4qqxj77{FHHN?Q1a59(xOHOP*~JGuW6j&_cYNr#s$%>b zdb8uUX}9FMbhhNXsV}w}s@8WpaWOQnpFiQz)%%HS3WM70l9Q(w-ruhLE#_zJ!CNXh zZ}oK)k4|rSdewi!>+9Nma~L=CEBWTU&9I9|%Jvc|)Tj-Zw%3~Ha8&i@*9&zXd~!K5 z_ll9m!`qAAEw^^c`n|nf_SZ%B|8jHh&$*P<6LNa*B#Fxsn{{3Y#>X1(qx8T?-EoOf`KeZDo%D$9xk5_?1@Y@1#X z!n2-vxtUvZ;NMOLPvJj?|20np{!W{G;)UqT?!-H_k>`);sOdzWaanHpRyeTq=l{Q# zFTdaGZv3b7;2MTMng^b~{k*+=d))8ktq<#Wu6b);;Kt&^&MNOK(P(V;JFkoJ+>&qA z3!0A#{(V&cXZy>B@|Vri<$v6odp*6M|KmM|-|cKEFZ4ndWqvz)lhywy&yJtB(s%5? zJ^RqQ>V)6y1uJJCl|RO8AQ@FYHQW3ei-qIqTaIRjA57b2_K_u4u# z(B;4x3&Y~ys~>Nc+4l0{xAa>p+e{g9vKSwJ7WSJt|8c^(xP4q7R4o47e{uQSHM2-J z=agGNe4^w&P3#Rk_U%AMh2`Nb@AYy7?*~q6m~{L2oGZC|7p%UWy-QMGdSAtf_ufKt zHki2W+CKNB=+cZdo8b5F-@Ms2N7C-ynw&*Ud5~;Eek(En0SCmHG;pR+I z6H)fpQJMU+@sPYoxMS{Ce(xX4%jGClAZ8{8-L%eER=qZy%q& z|9_*A<-TirJ|_RpojH_KI&%@v+>=d-zvil>GzNw@{{K?G-`UhU(Du)=yQa%T=k(f4 z=*WrP_N?Nq0GHmej3%Ui;?l+t+62tF9UqNy%oM;|r*GbI-v;Tk6c5U*{52Zpd7D z89t?d{rfk0f8RWP`u*NA$$udYnQiu^FE%nB&KLP&zjD9z=G-|E^EnKYqZ@K2wJ5yt zVZ2`D`Nra^s%=e4|GfEoGL|2^xoehjfbf*Cez7+-Ih)Q&g@tSo6`U#1-(aAS8~=qZ zuGQ$mDx=qug%bic3bO1|k(=>q<#OeBTR-XR>3!x+?h9sBxV!k;x`LhgFWA$+7jI!{ zEw(?h6e|c7wH#W#id3kHhd7)PKJ(Yv;*NF-Dmxnt&IQ#3?`PK3Z_#HGv#97)nH;VaBeBJEx z+FS4M_r=%cE^Y3gZ~0BtBwqA{$9D_U1JWix_xVk5us>|&WHza?Hh%lF$h&_da(qpX z>`3d|!lW3b8%Lk ztqLxv^L)l>vuCfw^#2duJbP)L(Pkey!{bGLerqlT+{ z7tHD7_by?2`ntkpM#HwFzgdz~u7y=DV5_`#rloh`=E&WF>jG-zx15u@y>a)A7J(|G2I%Vqdj zX!4#seW=lSx%pr7Pd;B>{SIQ-wCaGmuqyZcOdpH0vfS4vt5j^(Pwd_2>n^taDd%2^ zg*zB{xh_fhzGC|2Y4PIxu|FLC4a=uL+ZS?Op3~;(W0OVvynhYkmc%Yp`=h$1crLfz zw5{?BPc%$-+Z%Rn-j~|>c}+hyF7w%AV3*f>uK)Dc`hv=@d*f%c{-4i#hU>t5MVa`2 zx8rrEJYcXd+KGb&S-URJulVx*a`W8lw;i?4{`$J3`Ns3}>l|1vbE*m5fBlcGa2d+UpC9$-hJn7<=L6F(etkgW^Y<3lNhC7A+Az5#v zo}B*fpRy;l=iBuDm&M=z1szs*uHGP{pRL5QG3RynNptBNv#*K@KG2(|exUQxL{5IL z(?%I0O{|WJkCv!NBrTk;<}q36PV8IH%v8SA9_I$NJBDW_H14%!Ha;^WXXP!~;Iuhz z3DU_L4`xY8i}EhGt{3re?=|tpeZn06n-`pXeu(3(Q})cuKQ7FAzF__-@hvAZ|GCTG zjb5lBQvCF_^)c^TU#_oJnj6;=bRjRhzmJhk?Mn9IY0H-w%-E(B!m__6H^2V%alLi- zW?ugJPx6oq%a3%P+T{m6Z~wmS-G8aij}m8g#LwxN@vk>`S8&p)q;+mwYt-p`Gbl;`7!{*(~jOueQ?kVw>86Rz{`ST|B zfadL&&B;-lRy;1YoVUf}_q?sV$2<1cKeKR5y=>op@O8=R_>X5U?`vEtIq{L~cenj| z2P9sc7cu>xoBc$@Wa7UqMz^!iX?5`W`dUU@ID6K&?)b;4$5(T@W-rh9s<1-2Delh_ zmq$I$?yZj%Px&?3weeL-th9ZiTjSjjn0$9Tc4F}^}2j9 zsDvl;UdEjU`6nr<3h`N{Te6pi#^1kp|JSLLFU#v|`9A&L%)U(WUyNfn|AM38r?>pl zSHI`Ay=lqsnBS#}UAFHGf1bH}{d!ht_xtI))buyJzprl3q3yJgHLl~^?OTok>gyWA z&K7lV>lQK)EC2qr!gG`3Q-u}E>%U&oo~Iffm~&g;i7|Rd==8ZRS(`zM3}|Y&VnWGvdARqo`-ylWl&Atyld|_)^Aiuy5`$+p|T7n3tA* z()8W(t6|=U2lHLR3(l7DT$%hg>xicPuEBP~n*hv!R!)}k!GAksK-e^lE2^V4sBQPE^j`@qg6ZX4{MlQb`U z`s$-v`KU(tsRv+{fc(7}+!{LcHTlOZMUCFd-_viKD z;<}-lT+#Jnx9;9~wkN}BrJDKC10Kl{qB;6iy8kbKw~rTTdw=2Tt0j9k_o;Y!`9G+M z{a`h@kM-lV{=&r!4l(J9-OJ6Zo@-d0PW)!w{7v2BaR$R)eeL)g-}Wf8zU*{d@TApI_qF~J-@o&l-rG-Z_vmu%8>T6|v-V8G#OL5Yq!+0MQ!;rbi=Rzxp-~% zmuDB3zr1hvTmD7Zx@&7xMdk%_7u}k^^;^)@wPI&YW9COMHCbL?GUJ^|MXL0fS7~vF zuk+8^G?h;)Z`Joja(0)Cc1%}Y;QKZAmtAiB_L}4S`0uVgx1lWlts}$Iqo+Q9a~EH{ z?nU_B_I*oYtG4`B{_^Nq?5>=9)2B`|jr3xWx_hThGv(>h=&dG!a-X)YahdI~q%(=P z*mt*ZlXUs36Kt;8tM2%UB*-$)eeuyP)WWU%$$Tx|IqI^$8NRb8nknz`n%O*G_r7Do z$=g?ME!Zu(z`QiW1wn)Yw+$_6lKfDi$l~efjC}hQV&Kol~`+nlu zkvpNoETW(B;GHQSQ~u3iTvJ*+{gle~x=X4ZleRwi#kHRMuXM$XP4i~%no1u zd7f3JZ$+R`R@gE5C*S;bDEwn)wcpityqBrW_|u<0zW61De-D=4ytezF^|sc~712Lm z={3%;`ceGlxBfoQ^zHhd8LkUC1Q%-CMK`ZE-gEG=_Pxs1NvzjaC0?06z2i{U zHM=WMXZg$iwWuxlCcA5gt>&)xFHAb0=1G0Nr@q1eD%ZDS#y@*M$O+sGl2l(hGhjhh z`SQmixsrE-?)7+nj``qH`HXX|&lFCL75e5^Hmuz!Z>PF?$(q(@8zU_}yUv+dPt4H1 zy86WzAHmNL_`NQ;o~f_f-E-Og?%lid*8bh^07^=Z3$>VA#sA(tWbyyA5%2ythi0hE zn9{$_aGJq;N1ZCU!dViG$7bA`ms9@wq15XmPDPzcKhv|0@;5!G30`K=x{9S_`Wln) zk5#|bO7jB@lIr(xPRqHQdO9H5EKtjA0MCtV%|%~1Vz;w}ZuEG}byS#(@#n#;izU9ZGQ0lUt;=Zry-DzO z5${az+BedCCe4da@UNM9$Lhy{&t?0f!>jmTq}k}(u8H={-+YLZYj&wXB*PUCiw(@XjTN_E ze0Jj0l*JdDoY`MrzRi06zemN7_UWH*{fqaQA=+Tgz%OT0=`j7v(L=KT-n}aO!xY|{ zaA;0P?%A!eAIqB~TS}Y5f`YXsSo^51o~k@aB0^}}m%|Qe{=p7QlclbI$nrKZ{`)1f z{HJKxYD;5F<41qaEMdQ7yIHWnviA6e;|g!;E#7ST^x&oG>sVW>ZEg2j)LE>e_I}}# zE?sM*T{een+m8DmHTJn|;JhZfQAc4i)5=4;yFbd!-GB6Uh&b!I?&ZsmSNYt3TYKSM zxlDt@>1+A*4l0xMbMx+B`Rc#$#wqzL`W3AgnvV!SJ+D(Hy}96t@LKj4p-W$UoqPUb z_`l8nS^wJqyJ)XG0ne8%-E(CuEsPg^eA2aVsp_=CSE`xC58oEOo&EG? z{f;}ab;;Yl{C{+K4a1#4i#xTSo;toVV*Fbp`9$57@yDVTev7#>(_$xSq#Tia`0LX_ zwSzyqj+F?nkM5JUSk9d!eBr_*ftcB^PEJc%H`z(A$fny@N$CKi@0z1A$7i{^|M<6L zy|f@B*9_y=e~v7xTNC{^m{D%pno3!pj4!KHew|P2^}ls>hW*;!t(x`gyCOeq^R=;` zeJlN*+jo0)pEYP>TSH<#eVNBx8$2z+C6RZ zssX#bO#~OOh}oE_@HFY{iOBPHJ7n{#w30)a*sL!}?lEt9Uw&rBzq?ybRn_JfdaQr{ zKO<7=XPCWsU zXH9!o8}eO|zW%y}>GKSS_yErvccf0$-YQwk^`JGIbKQ>6)#bb2ev7DD!>*<55FkBa zEf;@P%>~~F$qrlg@ArTH{CSF)QOlLg`HD^R0t6SFZH{Tp&-{Jyli=Uy|2O|v{agR< z_WcF?>+WSnds?6RR3xgZ?-<^Ypaycch3KHr|l{MCO7hspE5mZBc@0rRiDQ{DM7 zD>Xs*PJPAvbLY;zc=pST_iWUC5yp?VS(3xTayT2zx6G_NU^@N3iK5`)*%RcaT{d6J zsHbZkzr!j+*k^jwHRg{q;_4q8*8Vtn{0i%blxBa)x zU!wi%XZz*Po2tswdt4#JZO`TPdbLg4>+ZP=UOns>*rj*+(+Sm^VTYAIcTcsGn{FpR z{l0&9Ug+j`dn0;3Z7F$NvGc+5qxv69#6B5^%n)sm{CDBPWYNILiFHm$_xANZPRVrTej;!2+Q3Wplu!SRhF96!7G-b$A)}=d ze8;BZ#{zAJtI|wdCs$uTveu`hFxhwgJMUfZ->1gx`tFco)V8tvz}}}ylNr4It}gx2 z=b63C!f*xG0e1PCC+B|$omoAhQEras%pg{S(}nhz3%bP)Z{qxS``NPj3GLkt^R{e1 zGktlkZQ6_5f4nB@pRzxG>w8d{=KdFg(b3VzU7yL{U-P0O+wtu`oh#`x65AxxMu`y< f1`qqW|GAsr;ImEN!miH1z`)??>gTe~DWM4fe7l(0Kv zAAY=f^|J7Otlam#GTl>zUNt|iG__vW)fyA~_lL%@e>2{%a{V>8WmBC-kjI;7&Z9A1 z2GiH=u8?T$HuUQM&->E9$I(gSa{cTt_r2=NWtQ0Kb$h+a()F#@ti7{*zWB?ppTBI= zy|?oH^a*zAVK3juR@JMsw{QRO{d9Ntm)!@Zf0+8?{){@YOZL-FS6?cbyXE)uZ%nnW zC(nD@b9`G@lKJxMx6ctDjF&!*T@o+$lxO{$Uwij6zkmAoYfy;x%=LYj|DIRbX1#M? zm6Ge;iANtzEBU?JM1A*{=URIwuGfFf9OHF8_O|P7o7PM7xc>KMALQ0r`D$rMck<2n z`Wbd<`ZK+Gwt(d?#yqQ&sJIeUFUCq|Mu^uzv{8szYYn_zwbT$UidWam8+C9 zXQ}^~ClP(leMRN_my#d%{;I6~)iG=S%sBBvdDZ2bwe!xo35sR%PPz1b`kb`C^8-HI zY{@up`l;;e--F?u|MC}Zo>6z@LEKmCpF2vzpzIwy_pYoOA?@d2Bxn9qX)VaJTcIkZ6AO9k* zEPpx4f9Z?2w|@L|N@Lw-1W$s@c2lPqnUxnE_=O??Yn$_ zTT#_7>-VQjmVI=WnCg=(l_?{?|MP~sdGgyf)k++;k$n3uS#itpmkaFmnrwJB+4XI* zeV1IVb32ZA=bZSx6K)n)8*=T1r0FBiOeef!G~?-N9v z4ZYoJC-dD-xngblqe`Rf+pdOYs{O-em^_w(VK=C-T>F z6J~(~p2UKLKa(B3*WcfM{pGwbrLIPgLXCo^ZaJ&UYq4(reCZGIakmo+Dp+6ozT8}H zp!VZj!uQq3oO=_B`o6sPEuP5tXXni=DKWpKZ@!=Oc;d4q{(M2Z1T5^T-W!V4L~f}z zSl+@Gma$>-WYIrz&g_fty*q#D`B#&?UzHW}&w6G&Y*EZ1F2B9&Cd_GUej@Q^16xIZYLU>SM6>0s^)2W5+V(zp&bEKv7Pm{Ar`SD6f7kP{ zK5-6r{jX;eTHZK(Fp93pdtVk_pWfG8&o{r=VE+0g{1fNj7Wf}>Qc?Tztb1?cZroXB z{XTD#urvEQfqL#|Li=B5{CWFJX^zBQ{fl$@nd)DEiDSObFn7+eIezPu|Nr4=FVDX} zbsn$G>JwXq?-Z{3FmK=Ll=*dGE!r`spFOG9s;#>B^42}kzmw;z{_?7Pamn(``F{(- zbno|m{+fC9)b7cf4R~cIGk*}2>UQnA&R_;ne&Rv^j4Ke z){$T?{*7|!nTF9zjF+B07P$CWTDe}?E3U-`TVr>p$WPY1d;dmar^Sqkd;S@h-3)k@ z{-FHFHj&e3!i2t`{84Jl8!BLY=^)R1j>Su#u)HWeWZ2PhY0>=eKfXu>E|>rCYxUo} z^l3{@Z(~Z|D7T@ooG`2SR_2yUMag*%U)K6{xbFRt&&bS_Y`8DKyQWgUB;ZTr zktY*G4V;$l2;8&N?}gLt$2Y}NiyST$zpc%CXu)DvzNg=#Yq4?Qw>^5MNu^y6Zu9Xq z>|3tGwX&<_%oonim*vks>?}U;p3k*$XXC;nHm-NV&m5b2Y+C${^vC|oTeEegPAzCY z*Cru!Ns>$8t?f;P&yo+Mtm=Q=e7IxBj%h{vJkM88lY2i?GP%xg{ff{BcaA^F{P3&V zD(%tvEA!e-+E_Yv2si$J|Bcy5)#S&%us=~vcNbel_UTP&d-tL8gI$xNqN`J~RcYAe z{i2R5UoC#(Ab-Ma&P!>zW#TqhI$wRAm9ork<(8M0;km0{G_Scf|2lWIdF_?mFNK9) z1^my847>m0_p`gJSJ!{#oq5bX$w#vxyg)|Y-sWE3)43wDdnYgInIE5V^ z?B>~Y+s-$AnycNR_v$WZPDI$R_TX@clvR55>UXxwGK-MYM(!J8yCz5;eKq5t#KDa( zjtk22-<+`M`^`@-v)=A3IqN6(I=W%@Y-wNVCC&l8Ati?em(G&+u#8q)T*I2a*!TKE zHplg=SxauuekjjZ$n#z0(u(QZFMTcV*!A+jmrXW1=G$ef|2{4Lqi&f=)a>n-NnvD=(aX zae41*!NBLs=FR<3HK{eDZ296)k+aT9S%&sIrq<0568`OdZ;PG1%M8v^kIz@ON88-r zW!IMIlyz)Djd?~-7U$y6pC^Abaz8NN*)O?e#(mf1SA5f#i+5(P| zbTOU9=hIh4Nze1_eT;MBByI0E^=Vz3yU1~(=A?T;e$V^_LO;%5x+QR9Q?vNjUBBft zRp&p?;43}xl3htXHR^r$*W8=;W9pO_+P>Gjmj9fD)jLq~Lm-#o79Tpagp7(Pme%f+N+3Ug!hIZ$akjH@%%7uTc zo7NYLD2vVg-m>~*vF*0WAH$X}+|n$?zRUUAnW_9Q8lG>c%=yIdjM1xON@Zg2z8{C1 z?A`08Tvt!*VeD7Zms{xY_P3g)WNG?AmBb>4?+x#>T~_aKHI>;h{Yk& zq3*KYwU%a0E6il)mn>?KGAZL_4G@;w)3TRyy?9$f$<2)oCtp`dK0o-ic+nZ&j_)sa zZ2GAdVpqT;v60{JO9v=f$&Mc(M=j3SVIN&0Mlm&LWx{7IO zJjeaSW%dT#uqlk&$g}vfLQnOFNz4f=Cpx{)Z+qXmk>}W}1DkK%d~UpU!Rs{~G4WOZ z4^+Il$so(Qc89Zs@gd=!_J;*~3+2D$zPwrV*3Fr>$6ecEd%AA-zodyh zE`gaU*A$HU77MsMjJN$i-F?01?!8|3{z}%Za#NhV{?fDc;p&=P^H08ebg|=x8*}K{ zJ^|0~AJvW@s0s+-WYfFUcuPYjvt3YEwKJp1`5OQGnSW=u$3?2$D4nVBc(uC0iqO4` zC)ctk=KAz);yC%~tIdT!<#S!_Uh1t@<>_&=GU;LMD3H3jRag1Ck?V@ua=wa~&Pb0U zl_QBcJ_$EIm;d_CtrR!uQ^p#JN@>P3Jx$W{8o#JN5|ru{=IxQcl{&GfsA!i-mK;Z0 ztK(j|yWKo|eC#qp|2KBHUi+sd#cdJmbe*}dO}l>?UYKfg@KSHyMa4h&=J@Q6j0!4l`muXaOhX9gmlb;tR(Ca7mbmSgy{0rj z+k}0k(=P=UZ^t7C8y{%o@?Cy4Z+^nwH{ZLsLU+vBcK4|z-{UPob^3vgt89GqBbQar zJ6ZQTvFcojk;&eWW$6o7bX&RgZ7blM8O*F6e9_!r;lf4DRV?4tw`6b^rKi7MvUMf5 zgWfBXbdujUhO~g0fU2T6&1)4W`JwH)2dBTR^OyNh)>Y-;U3(}`+ zPTS(Pe_Glv^XD6XvoF7$zfb$}k79GLnaAeOUO4ezvvvL7_kYs=zx@Amb^QnS|F5p! z`uA#jklxRQ5+&-Pt<_(T5o$Bn{Hc3Vt@jxC&_^sR1w(t)E^d)++) zE-D3f`zaMqImM)nwn5 z%-EA~;Q8?duKov=t`2)GyxO-;e0Zc+ia$|x{>qPwE(bq5 zziLwRk&ZQuix*VJOC7m4fxUgw;f#I1b2yAN1;a0PxnEF-J62m3c%?9?xiQ46tV-#* zy5yyGnE|c>#*LE&*Dh1P!jQGgDKT?_xDcDVX4}C)!xE0bHBY~Ptv%H$;rz^nH%KdS z+riS8RlNGHC(7n09@)rnXrf*CPxVWu4~Q11PwHE_&VGsGoz9b)YlN1B#ZGRy>aHml zy?>Wp;o8c1(H0IdmsNba78?AMNp@2+d3q%w_vrKqn=>?e>y}zh4ti#}PGsZ3Peqe+ zFVxxkYiCcL^R9TJ#hvvm>J`iG?z1}b^_#&zH?gnlc}s*AFD$ppFDc9Y|8jHYc9rT+ z3>&^rO9^86IN#o9{%7x(_xEp_Q~$<0v~*KU{=JGVckO0PXtY;PE@JrC!*BYl^zSwO zsb3$~-`n=|{_S^hH6P>u9jyOcFn>|ll$Oeukwy_)g_?uTg)m zJAJ1#^C`u0zUImAR$u&6`=O?iKRHmJ&rsi>VUiym#fQn*HpL!1w!_QG)DWntT4w=v^nx zfAXB*V(0c*)qnP$4zxTI-}P(N)4*MA+{GQgZ2s47Hf`5>mNC75^`V-Jh8c+lS0-MT zv3`DMdPA~;Xt16_M%l}Y@sTPo-L(5;R>X;|zP`k3e}0tP!qyWnj6GMCq%(fM_?G>+ z^PN?EnG9>DI{g&!Hhxw;JKJvWu4RW8ipoD!jWIb?u{g)H;--3V@ZrfcqyOwiH%MnIyY{0*G}Hf`A_)7ZGi>ir9~ds|J>O(vGAzV+yJZ6u-SK)TFg0b zns7bzRrO@%1s$?7rw`3@HjGkMas77JZaF{4z0!*KzE8$$E;dhz$hfH%RJV0!|GcWK z_sh+fG%Wc)HL~=5_vW8>FPQkN89ki;(QqllzaBo*KflYqZeM!;pO@91{>3~ylb#iL zGI43_je3;u{NY(=2hM_BJEv|rT4dSJ@a4d#4u!pXlGUE=f9k6HzQ1U^ljr~O_q`nq zyIyjyb-w;*-LxaDZo#$pPdj9B*K2(Glwq!*YB=F;%lCi@39a9)ws2J3_qxAHSwJ9D zZ~FJA#`6Cqe|{_9uXp|T^0uT7Nuy^=leaV*xX)M0W9Uj*W8%Kn^zP@gYfC!RPFT41 zdU54!e?DjSqAeUA{8n!1R>u{tbV^2+I*CMuDakIle@UiaPQ~p^V3CMd@4cW?i*-V{ z9lXV>CH#Azb^j7rIbq#hBiDr={`{+|(EIgs)?{9{UqQ?Lo{L{)jx`H-m69RCo;*#l z=(#$_y4hEmbSAnSi8~k2dcjQmN$87RS{`36pa0mg*Tc_SGVEn(`pi4eLKzP#-BFtU z?k9&yRY8--jmNV}(}Q*PzwKZ>{V2&TiKooJewur}*PYnYdB1(;T#cX39`RhaXXQG} z)qWh!|CqL)2ne^ADP(q>G-1E{|GL^^8(;jM`1t|f$%F@2e_s9Kb2~5B-ty=93)3H5 z)iimO)i8I<&Zzso*XP9)svdpy{!;jvSIT>~XU0q1nij;@eSOkY|Kj?;9do#x?|zZm zeQoaXCQ+_!huf?}*%LIoZwi*M@A{^s>=X&;|amRT+#bJKlqA<0H?N(4=uT>@O#Ox{n*8ZkOYgxp&VTPKA7m!1-RZM;UW#c&P8LgWiN%eX z<-B6P{G}gzWU8&xy?5&yT|VmdIl}71d7aCD|DQQuV^(|g*V5)TzSevGXWHKj=*+wr z=$u$!uxQ7Z>$Q_V9qn~%)a>%USkGX&=F~C0DBbE0b2dxXTd5@Vu@&#VDDmp&yrzd- zUI#?11YJ@i`q&@Mwma+~q%6CF@4Dxi?VE3`+MKTX$9i7>)aNsw>L##cbLua(ktp;& zzw7^^h{H3Qx2|vBx=_KvXie9m?R%_vmiQUS^@dinEHY?KmHlwy!+oXC3LgTJ&SV?> zu#M2_I_GxuC%<#bIg=jA#OUn~HCs$Bc9fs{w|w&Ls8g%VwzRT%n^v`2w_N<9ylG

      ^<$;FGy0~c$pKd3l0p|9t29M|)Zg0&{qz0W3= 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

        8>tw@1iyu*Uc8Ez&kyp!c@o4V5 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:QzaSod5c~hV9B$!JS8LrFi)^ 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

        kacl-6; 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�r7i^QO03G7WTepe#X<8ZSJ=w>`dh2 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

        nL`e$hyI*WG%w-Ap&J)|>@oJF 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

        UT%RB*O`{ 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

        O2=C*JClFK8-L~n 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 z z)4x2`Qyo({-}}YtK5jmjJR38&ZKl_qZ%m0nv(&^C>}Gr0&h=O-qWk1@;Ngb{PsOUR-V~0wb#Ox1 zMBm(dhnHHo5y-k|8@Y5d691)Sm zZ;?OOWWGFDy<~;JU=@o!K4&-nVC z-9X`s?s=nm6-wu;XUsbr5WRN!^l)M4Glwl+&eC-()nZO^sjSYN{uGF}!SYh5v_QMSm%hzh#T+F?x6zl!FJJ7Gq|D&bUCCBGM zN?XhLeoEHN$(Fs~x~GFX?~$!k4__0{?6}9}Qtq>}rr7wTdvChqv3?1siq`Cl70uOw zr?1!k=l=HZP2_f+o&1N5uKzo?^YdO)6Dfygl?yNQZZ4B}SkSR>f+%0Rv*0!hh9wL_ zLYZ7kB#bn>9Dg6I?~ebQ;C^G1&S@qo1w#P^kB&))Cun#ldMb9QbgYtFwQKh>>v<1< ze~Y@M{rUUpGqtOJ_IxfVE5BQO&iu{ZwiwHQMw_qbDkeEqtUJ5m&bL2rT0%qxuhl5r z<=k~UqwtG5(`CWRk}s>vPVD*FzC4W2)y}4ipDlRPd3luybrZz*#l%%>RI;z$=e(|8 z?aX~SO_it1IQVx~Dr?2)r$_SCc%0GyBKKR0$#UYoQ~up5LW*;_&)q-rUf7`Sm7Cx3 zz$@2xF$>5lY;t~crlZ>asKsvuuXbmR_M3V4xZj@J=%2#YWLDd`G4R^*XFkt4*w=kY zzHK@&tE|m*V%f3y>8mZ8mz3uxF}pDR+{Jd(dqLUTiy9&wA5}K#%x!bo{!2=0Tk(|A zr9DNzBsAu|t?oVGfBgHK9K9VIZ?o};b&1-^9uhfx&8zydNJ9B_-Cgfw7`DI3vd}oE z;m4N9dsKnt^hpW1=m6e|#K!?riwl_@&hM?5BN}E{k=yPbqO#|*)E$;|5x0q}zUG#_ zPe0r!uc+d-ieKqtG#7_?ox4Fu{rd-}PStGQ8GhsUkE(2g^)>#jWxlEoc`nahOr73h zSmnLLc**ruu2zRMm~_GtCvFa3HTCRFx%1E7U%XII*R`dakz>}@MyUvK5%Y%=jx2nW z{QN=2?kh}gC!I3$7juLaF3d405UYO7B=R$O)y{c$+HUkG8r+%du>7Ld&UD4QZ>t-A zWL90%?s81Z&-}8ji2uN~r5w_lTy1l>mD%UY<=446#{2k7t}F3dv0|&ajPd7(R=r$z z&zBz9@a&#
          dY^vZhgB2TAw;w)u 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
          u{Cq-)(J8%FRRdqa-(ElEOV^${cfW(-?X(`F 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

          ;{X>dN$+Fv4a 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

          {F`YG7n?YKb5g^xGcGOcjts9lRioO zdB33ZLFqMSLoPXwYiXLVx8%<_9L6G~$~rwFV`W{)6D!6Cr(&-&HfWb+8uTnV)HpHu zsK;lcZwm`f-?qpy**E)bn90uNQSQRe(%87(_nw|P<2SGJrw{*Em!5r8e~Twkb$Mj4 zqC(TjwpzZp-50LEG2iFhD6KJFuaqe*<*e9`m#f{nz&utj!jxfUw4M=$>3$5|9V*Hh`hTsy9*~|?W?e?uz&d^>T<_YezO(KiabB(zy=3stiYI-mLzz4cEn_d#>O3-e>10cK?)8U_suQli}HS zG;b`N@Yuuq?$3P*{p>Bu40A>Q$R6@idBPWVbJA@mAK&H2i*HVLSKQ2-yU-(-1n=hIEY*=@zYr?OL)hphw zjo$v`UUvC&O~uWBUH4|l3oh<7EqJ!)aAC2ae`eN#%x=q#1>6?qwOL23b?!6#-|^7S z@ws-EQ%Htr=&pO4lq0-XpFOr?y`jQ~jVass(w~UbEb?SgPI~wF9%yz|eg7x@Q}cgb zuKy&!@MB{bzgvg?Qp+Q(n_g{JTg2ENv(??&($!b`?3P387q57<{?DoPr%#^D{9@iG zxNpXiy%TKCeJuFW#F}jNb>7VYXM5W_m7xX;y#DNLk}3Y&AaC+(UrC_I7SXhL#d&>O zPAqc`6fl2yuEOkL&ng>D2kv4vCdK8K4;pNH-ZS;T=}X36`;DG)&7GV6qHal8YJr8n z_@OnSuTr=^>`f88{!@i%YWLOeoYI<3X8bQK`>P#v=9auzJ#l8jgG}X!-zR0(f74&| zM5pIZ=MuW3g@6$_poVJ{EoVETe7Vv97Hxi?*2U@m{(n zXpKYF{aKrKJDa!rG}#@MlXR3>KI6lrtjW^RivxJqgfu^%Y{v8UZTfE)gD_piHw<}4 z<9%*Syx0>aUSRgtG2*%SEs=>AjLSF~cIfZ3=$KR$xaLK7=ra}b@PpiIg@iV`#g}-w zXl!Kszx(^UQ#WtkjQLsr`fmC2iw^$$Y+`J?+8*hqTZYaqIle$9&tmpm2?KU1r#ijn zlsk5owlnwJ|9Qatvr)gc@Sd&NvQ-O>bb4ot#EH)Ks=Rrn?gc;dj7B*jhC{2PTOMCy z>8a~Jb>!lHMs*MSEoWAp(As}yx(~nMySpci{8J?O&hBtic<}Rb`er-k6bCk)6F;&K zr#Sx?*t0^ISLc1Z>x_bHGsX7HS#sYFy?e4-Mf#G{F_jkP=8d0D?U{9O(v5@JnQ7B& z8c!@T6fj=uv-$6=O{<@!ZV}(Vf4fi2kySlm2J2)i)i!*tiAjz=*5ddfu4@6~W!okJ zkrJ-<#bHkj-J)EBR4w9->@B6N7>|AsPgAXtdFXUoz#`kp3mDzmOk%)Yhn$bH{w95Rl#dlIXEa($n>dwXsFdW+J%75|Fl3|HSuWmEU`$-3No zYBF!c@$#s~?p6Evr(`+ytZFen+a=RI$8~p&7vG+gzPa_Qf7P)H2rP;7PFI;58SFYk zCw=<^BSqU*>-PWmE1&EBJShKXQOz^s_dXW8eUkoZxE~MEo4)=~V$UP})k$Uv6W!SD z-dbJaP55y&{x5s*)%VXew zQHzD=Z+7GDENa|*BSrg?j;gS8{WQ7GnJ@c(%-bd-@PD-kzvNXd51s5uPJi|;iOqbp zJao%j#;T$j^(-xy%90baqaSJhwJ6+C@%8V-lLjvm`+sqtc`x>-A)&!!$C+U5E!!AV zPedm7ecmaWHKSzO(~o_8`=b)1&%b%AwCU`fkH_;hj&iNjIVx-t?4D{Pz1njg>((VQ z4E#Ivbbo6#%Rb0Ynb~^gyTjponq~>gQ(Voy9JRNdk|Sd^tAtdAn25g7;f|y)Rzh9(yx9-lnWbOJRcd z)hQn}QeNb+M4s|~C3b4t`u7(%D0rxrhV3_Ov2M~@BB2-&*}cmLt$J)g3EqGH$nm%H2cq`h$c`tQKy6&vi|?ft&<{p`1TI>?$Yv8n*IA{_HAvtIzjq` zLqJi%;QF8|I(;o}$F8LP@V?#|G!lKyOOdGo2=4NvFC6*vCw z`=G9x9$_c;SNX#V-|I?OEq`hp)jVl6>w?*ei5reLdzRPbM^=3(=k8uymU4UB|6^S_ zul`IBUQ=hJz*D<@+M!e5!}#trze}olW;64g)y2)b`#8i5*RB+Q6T($6DX(GfA{Ljp zQad4Q86At7|J&;yzIWUHTXI7T>+OssCzWp$y=*9)ANI+hN;kTp#O+$B#)hMFyxPRt z^!VM>e>cRhRG8GIcIHp*8n(@{R!n_0Qx*!@O7m|Mn9?Nvc~OIlUC{fFOrD$8U1IUL z=CJd;wU}dTX>YE_3Ai!6i$dczK$>mD#_m?a=OmI@i`W z-b+}I-Meyg!=)X1;h%2$n?$tftzD+S#K&3FW3sMFXXGbu4zsR==~3+gVnz>w7hl<| z`FO#OC0iA@$odJ-Q)PSplC?qf#vOJve}Ac{w>p*t$ATi?HiSD^S7Cgu1sxO zGV$2?sS6iKC(8Ayb!Fv>)?aYxV?3Le%X}eON=_;z>T`PYte4&UgX`L-WZpBBuxec% zy*=;D{rP|I$j@M?`1dGu5Brbu#hS;PXKqtqkPKin=khLTp8exuKd;{LF9(~C7kz$q z)8^NDjYs5MdVx}Cp@GK)W>hHtv9+&NHZ6|(i zHr!xuKfmiwishMy8%`NLE4MpWJ*``k;X^LV(+ZJT&fBNlucy2{{OZ}e2S0ia^%^TX zq^9Na9B1E+Z8NcX+P51J1pO6nAwz0YaZYTots{e z7JqJmOQVBu=Dhn^g(maTiyG{VznUNClPijfU+FQ;dS>bgqkf6rUF+{<+dY4vyS(|$ ztHs|fVz)fhSlHUXaQ>RZT<4`8#_toG0Mn+vs1ZsceS%I*I6 z{lV6oUmostTpuU6``8781+wcVT+ZD(^X4AT$1jYT_#R6gU*xr=xpwd6^@{2ZvN0DH zx>akhdHcm3uB+C6{M#;HtMdQD_PX5%^8&A_tIZSL(EUBoNB0?< zM0a|i!QJAI?SFs+k*Zv1MDUcC1NVqH~7b-hkUm1@BnSdxu++J4E+L3IkB5#yw`=l0gq=O($Umnk05Nz=Wo$|lho#mGNp zB5w?1o!bU>eT~$aDdjw$eSJmTHitfwsj}XAkFnq>_&C5lJuOS)1s2K`UhZH~+N;@J znqhw6hQbT+uQtwkE7MC(M+vorednG(t80(QqqLHRD!n~?Hz!ON;^IEDm4BVI zmtFeQ-r7VZky%CV2fEnu?(ehheSiJk{rPP#S5IGmYDLb<%NOe`Iu-~jE_OV*P~ZUn zchSuIN@sdzv6U@fANW?jZF0<^swz*$(uzwiC~*L*zTQ?LJiz2~32^sW_e^j`HnC$)Fmqq$xt z%Z;7C&a|C=dGloF2~VCdtQNP8Sm?s8^`zk0ln>{97>^!)>QdLQ;PfxHAoETA$;~e! zF5j3O!yEObt>)Xm^rw$%^zT>x$(3BW^Y=t4Nxw~k`&6DyyuI?`EP>m#{PZFCh|-a;ky@;%C+en*OgBF(;sClf2MA03rrUb`QWK} zvf#xuhu(hGeye~rvyVVj-t}f?_W!CkU7DznJn=P$oC<#C1J! zuWeqpCr#4+VX2dyd#>vJvrU1O<4uCrJxR zi#Fs1+6d2>UmWRSmwDYkdV7$hndgL$I@S-|9yN-v{fPH4WA=-k_v7-`Q|C8qVoA0t zxuD(^>anfY>E5go%Q<|qcHAD`U7I}pq?xza@&EXHb^j-Mu|oyF+$Om{l&QIVqwzuO zn>AclJQRD61)lpacJbofZPSF6r~ca7%lP2ij5D=w>SnQ5$o+`6>fLZERlxE1)}7iX zXZarV>8)be%xkZDTsHmDMwKnBvtl-^dYfY3X*qA-liJ1aST4=qcEW=t{@Av58!`P1 zmuq3GwH~%uPT~n)*LlE5HPdtRwliDa7A`uTBYC_k;{Ll--rS%n!w>T;yc}hI$ktof zu$tN&5n|KX?fotzO_k|WMf&y~ehupmnEB6P5H9R{{kkjmy5UUiil12*+M=&`y;!4K zWBfHu>YIh#vK}^ zQ|3orzPc)8f#$P0zuOdRg}Y)el}BG#aX#a^+563J*7IKsyQ=Q6np;}d;8G|no5j8S zE16#wvqUyu49UGd&+2UXmU|1>OkeB_i^#jb&v5_V|Ieh`udbbZSn16x(NmE(vmVsE zT>VINV>@$eT({k?KnrihmigBg++LEt=%Ps!x82!`$wK|#AHG?7*y+NBJNhf6t@tAv z!$190-qdyfz{^Qre*XFSd1q~s#Rl_peox;zJ3Re;zsBG0b9>z6@BbdWE_(i@)W2HX zNUg!s?9Nu6{w1rY&Y$e_*tWj3@Wpr5-VHkXugh}0U#}NcQ*1t$s=_37=5l5LtIf<+ zT$WOw8agKQs-DrjAG&kvor&f9zwD}c_BsF5%XiZr+a+YpjuUy@bN@%<8PSHGd5r6y zTHlY(xW4C7;l>g#%O59Ko)YN!A$KlgUa;k>#+a-PqVBGj9pf=@FkflA@)Z$ zPu}J~W17Rf@=TWEcaw{oJmgv>Hf;T>R8j6*#iF}1>Q&FB|8{MQW}mGvt2pm?&i>_& zQW+k3u|LHzP4h1pcU8Q;B9&3!qqkQHxCL< zE%69yS52PQV$QLmSE?;M9i2vr=aI^&INFX0%Lb-b61>*R>H})maWUctx|d zO1CQgx)9jV`RP`K<>sB6lqZ_4NR?S)IJwO&YXVEmBZXtfwPmgZX*hU0d#;dNSU9!m zvE8()X&+*(rW^5JV43r>B&__a)0WM*=lcDbGjHCx@^kv%j&N|#=D5GRFwaq%Ua>@zAl?Nu6-Q19S|IyFq-$Lwu+-;xy z?%eh155KI*G|)V|`o$8N&n*|Zq9%AqFP+Kyev{!El^+iT*7Dpod%Gxf%Spe2PivAZ&zPBi0_8SJf*?(4D zr6~0FegW5y54qSmy?;G)tWQa_YiCC??)v!v5T_{VwmNR_7*&tc=EyI?K|Uby3=n3?eMOOT*6dSv?q0f zXy3HHBBOJ)3YpzT(RMBH*bER-Biq|3BvHfG;G z(VB4Qjm&4)YcVXn&y`rR?ALTYe-gP-h3&$LB}*gU*2|w?)O+Bl$8-K0=N~Pp>6s!e z$LG0OZMTYhrt5OHxTup&33kGlw7tbnKUKJ@6R{&qwEn`*Hip1Q?Jb*DotXI7Ig(3L zUuWYCbRK+{}k(Q7nWZPyf!^& zZTFOqTgul-=XY=U64gD`!*B2PtXVm)rSikV)}Fk-qf)Ir@BTD@`&tbHiCKk=b8ku= zuK3DvUvzHkhP!-=&P#5e-7L9YvblF{+O&r};Zpk67k?UjdwyJdpT19DK=;n6g-chS zp5a&Pvto%(=j@O7U!I)F!=5rR_D(m?43%A7F28^C%r;`0z#6bx?8R;#jmSP@@2pTu z5v9I@?r$G^Ox3sa{MNamUv{Qr^0byIc9MV7Qtr4qd)#MxVzuh|?mCwRDr;j7tt;05 zwE6k@KQFdBbDyt!ezWGon+*s4CdsV3kZmYCIrd!S35K{-Wey?pui_6HY&*9`HJ7cj zef{_1%wsdOjnglQ@Xu%x*>_0j*v1JbX1JMN+}c$B_sqNL-(vQCJo($0^`8>&HHqwP zfseKAuJ&#|p6k8;f`FyAlg)g#m@}RM8}w4cUiK`pzPm-dSoD>agSzCJO>svG?npPv zK0gu_8?9WuV9u8!mt7k)ZKf1PZ<%~-<%^3I!S@@#Nk>Ot*k?9zu91iJgwM*2+nCH3 zcujNvTA^MWS9@9OPFtStb=zdN>__^U*UTQ7W#pffQjj!USEusi{3FS#!yoUzo%W`@ z{^9MQwCI>GMaH?EWok3ESnYmP-(`{gXc_#Z(s1Fti0f}T^&H>x=C3i=FxV^G9hs)o z&X(_5fkHN5H>p z^}kH>%X=!t%8JuhFiqmwT@ijqGF0!?>g*HxKD|xngHA2wyL5r~zxTyix#EnEx+Qa_ zK3RT;edophoC~k~KgfGzb;e}bf0oOBo{H$b_xw-%{(Aqoy*AUIpa0gf#H-xj@nDOD z7iZP=_W1LwH|)EhJcn&zC%dYNw`P7fLOLs37-{137rN`MkHJ5K=$p+clX*Sa~^H=*>Rx4)a3uYdi+pFWiaAL*& zP!Bu9&ygxg4R+r=^Vwx$#ToY`T`y&L&=t$RtWLmevBIjE+CPKbnkK9>y8ZllQpLY} zW;VWuM7aW%+{~`%@BN+Tea7DGo@3pXw;7k_7=?V`bgeVlw&6>{0m)xVPjd{Pt()*6 zdiTWX(WefrXqt4cO+`k(En8Do{D|qXru+jrx&?jd#|1Oi?=SN&TW-Cxx-eSqtnsVt znrZ(t4vQ{S6m>duZr4N(*W86)vY#4=Ost&xy@$1Z;`WP+5}$Y*7kpx^kc@gT;q0B- zfSf-fceM2Q7ko_L(tcI=ZP(6fl|+~KPf9Fp|5OLRySvl=drG+05>el?57!5si@EsU zspVkX<1JG!KjfUn&&o4Hdr$cdJ|=gM&o_)X7w=g0VH4-VL>r;qD*eWFonkrM6`7hF zIo*SHXv)2*m}>lX-X6u7dq4eo>izTEY5u40-dY#EK6W!vF?nkD)Tdo#c31E1S6gea z@bi(bM~463PK-R;ETkNE<#CKqjAb*ZRcoa!Aq6>%Mou`^@I z1noKgh}j(5yxT&_i1p`|_X0W7G+4sV9y3IAM{7v^~4MT7#}XR_>jBc2|GM-_Un=cB*dAyJx}j z&Hw4q&(CKj#Z?Gx=iTx6WPQlo`ycK^)tE6Q=%lM!>O6>4kZL~R@0Jy!=O*8rS>aG(v8v|O+1H>82gE>!=52iwBeDHU2;=?a z*3Cb7_g9*(a^Gb7?bN0V8-k)%#ZG8_;9PIO*Wcs2;$+o=o>kscmPm?ZE!jVN+m$2t zwq2>s$b0(SX`#F7o3s?IDa$yex7&*D;5q-Z`qa@|drd=gQd&+1W~uW>)XaVp^g){K zcyoKd8q52;d$rBao%^(R%5TH#0gjjc#LwD2)1-dY(i@p;e{p%c*5+m+tzK@J02_bPv*Y& z)JHJTSMFeha9LRHwBw2_Ju$xam~9>x7hcQ% zRHG7p@Z&wzijaBQ)`iF3OLVRiS=N*=HD}JMNlR}%+3`eu{%egVKYpF9-dvH=^}Ocz zE*mw8E2kE#)$C4RXlhpYGw+MUlZtIy#r}J}SS1s%WoOhw!A9n`t@c@r&e?tn?Dr2A zJNXq_eZMKc)t8}QZfsTm`aAw}taci-?%Z1YE^OVk9ml%!f^t8o^l=|f__D@)=d0%H9tId>m#qq4hiqcy% zTA%(7+m~@_j%ruTRpV5B3muyb(fx3sD6S^k-aWD?9IBqdt9jp{k8O9B zf7)h!roExz^lPpU0tKrS=gAx_b>fhkyJgoih2Zd?w_8r{nV!7uNcwSy`h%i(@??U_ zBYyAKkN^27{K@%0-t{r>iWlLghnsaXXeV7&V?EHd@MoS*eTs(E6+gi`~yoO`D85d94euLX(TlBZg z+OpIZO^Pw+q`g*(Z6&vI=%{agn$N5AwOfp^b@)EB5 zUMJ@lw%qUCEG;)D+&5jdne9Q8)5h4Y*9%U*SUrd9OkkFc%KtN358BEbZUQ{(HNh-TySp;~zAu)*Rf(x8u*}MK`7? zdA47jcHczG{MiHB#HCj~{$E|jD;4`~x{l!Xxg}cF$v1@mxBvh9U$wyIg-X+*v?O;U zh95e0-*sI1kNv89w|B$4q}b~Z)Ss-0zPQ-GdY-f5p-%#nJ6vaqR8H_*v;Wa|&@v8V z_S=uYUXSlKTz@o~N9zRhE%CS)AGXEY-*9y{+gtIiCRoBuO0(sd#c}(MR%gpPSxje6 z)nK0=vashuv4{z)O-o^ut2s~ci#V1~)3@-dG;w&YpBcMz`Mzs1vn9KJ=$`p|aJB4u zozE&*q~xcSz;*E?>ko}i>FcIy(`2EKF_^~ir`q}V@exC;l>e3UKdTBEw$ z_6MJi@vgJAJ9&2P1D%%+TKq0)XjqYVO2_+gzv$IF%d=*S8a7Viek#;!`S{UZ)!8;- zx19Lye?0mv>11~9DRJeP0KIyR?N=8}Q*E8JH9YIwE$f^%HkOHHf{~xEgh z`B$6awK+*<4vW5;e6yIxXe;2AR#Wlm$;p_xH)VT{J?vT9%=g@6c?jEcH?!Y&3Qiq3 z#QcqY&DkAxx|a>CrdFrFKQ;gN%>N7joUZ?*eQ#E8<&|LT4dOM)$4f3Opo7ow?pUNJ9j$avKx268_&e-?;SNfB4?@Ap7^nM5D zehXPA^>Idodi299Cq8MlubPtc$dy}sM(KQs7kPd`uN0$pd!^s_9j{*~acky*pwG9{ zq|erW&gf~FzbMJP!BLW@V%^5Mmxb2P^4W3x)&B=8rOoqBti8Sc$(v`9X}%|?DPMZI z=%Qq=u>!;4?r`qEUl%=BPM7)QWcFD=F;XKXI_r|NWX&`;p&u$w9U8J2-?>F+n_p2V zmN~Pf=;YxgO^Y8#O`Ejctzed$jI8#}r;GY83fH<9ym0zfW>>7Z$3fIL!un0fHk;Uk zE#51({<8bG?12kIP}X)e-{kNQGn|)IUHw+^$hg2DOyfMC-~W>@IdeZA^a$cEvFN&J zV8&N6yR+#0ajP(GiSs5&GnLNT=Ka5V+CkkdVEOI6bC*QUV}FvdcG;nsPZg@q9=^Zv ztZmty$@gc;@YO8S``DDb=aO7hhk<;)p5{rfV;5@DQmam!+;#U^{3j2Vs;=L*Tn-O@ zDqf#<>e3JG|NqXPWWWD+g4QK>+bOC{-0Xj~yDpb?%nPp5*{pZ^gi4J5gv=+K=PfTg z@Qm@&lnl*MuRy0`rbT~Di}^oI;Mu|_VUc?wbc1Ry>-ld-`c#@uF$GU+WtT1gzM-SA z>~YSy&mSkJTh?qZf3;+m)zj3IJ9QVNF0c$+AvyDh@!$Vb9$(A2oto^)Heddk@NMD6 z>*}v<WxYt2#N26Z{uFVO}>ekZrF_HWDcJ{k1>x0$IXU;qK^^s)Z#G{XX zO?oq}<;X0fwM|zh?UHd^J|#Br!G@gYxi9}E-@N=}zV^m9_FK-$yw6j=eqD6;x@?A+ zt=UuAjc00bc}5yX?0(c-!+d#nOyh$1LkSl|ICWUW-e?L>>dz1l{MBo?eeWp&)1)f# zdAe83KKWkG?Yq|=vG%9;^31kX{a&D~E5*USr)|NcCt(Sz z%(!Qi#CQDPdQ0#^n(c{n8Ea+(){hB|w?jj=OQi1$7E>@hzM`+^wy90iM6cv3?H{|E z18;IZfBw9v@Q0*@y{+|Zqav0@zr49;?2domrzCYys>$11Sl#Byskxt0LT4rKo9bC{ zVa+S<8MhZj7AyQS7P)z;$ve#>_t=dC0=4U(WNZ};x-zhNCyzFzi?so54^TElU zk;|m*wq7y($92(iEmwbi_z70cIbmrh4DDrO+rC|^d~!ej=lB0rzDYMPocgn6{mv(W z1-vE$HZ%II?HrFGW=V#sNewahc?bewNUHc2fuqS zwD8$ke$+Yk@%iNA{+shyQ(8?MCH@|(xnVTl>n1U4Mdl(CUhGfs}R`1ok1 zcx6#jz(#e&y9cbS?bc_Xe3izWU==h;!$9;`@`3x=S`IlgJr_GKt-ECAQSIZot^4-> zN~T`%X>)cQTItGZeCyLRgF`Dtr7M{~ES3+PG5yGw6wArs5;Q>Lygsi|R8UxarrzH&;#f3elR$)X1( z)++XGb9Q%Hcy40^=i!fER)?=&Hc49W{qOuedh)eDKK8tEemG;2LHx;mf zxvt(Xcc1mpeG#@~ld*|N-s|RdI}cUtC@+jCtl4Ha<^GR%>rZ5#e|M_C_WSXt#`YiP z&ADeWFrW*C-h@W6j zR_N>R%+t@jm&s_n%jwQgk#4nq*`1Rs_DS^1guK`j`)SK(2O*a?fnn1&rrA#Dx~(+5 zhj-HJiae7{q5GasHi@?E>ALkt@kGSRl2AoE?ZY?w#bT!!9c!uhiL4mz&Eyq}Y5#q9?~q z_rB!1_F2N)w3AJGm$uiWupC>oF;~NzIjs5E#NLgY9vtIPoaAv`N6U5M0~QKIU!zqR7{EFZmn zQ_}dqW;IOu@QvTqv2_3GuPh0Zc^N-46eXT%(Yo(>^5dhQ=J#uo>;Av7T>3BnNulh? zI0pZZGcqxX^UW$0}Y&mn~sL9<&?{g)*GDSIO$!5PTQ(VuN{Qtqj@+V); zr9ZiS|L?RtfB)v6?saB(@G@9AD(_*(4_U52ZDZGyicL+T)@rPa)7MIRnQ0%6_X#?g zuk|}2GE2vEwLx3QvR0ninK^n*4vv?u34IXL-Md~!;>sk^6rZaR*{Us>YkM?v`|NL5 zNBmqHdNbiUz>ULS3lR{{uA@IA8ong z_{@)0O=b17?MG)Gey;96@6`Wy^}pAjX21W}#qUz&>S=ttR`ugv zO|w}#2ls4uXq^(7JYxg9rD2+U)91#;Gk+edi1?ydcVNfK>(^4MH2MDLm|WZ_V3cw_ z;%oh<7oGeCsgaL&)s-2~jg04%m+a}2`7qBjO|Lxo7-#mN6X}9v6 zH!80$Zjj-T%g9+VHSy}^pDG_TgW3A*u5HM#{t)i1&${K~I>z*q#xVjL{Lb#&x9(bL zEb{}dI4?JS5sN7%dcvoKCKyeM_`EE6veq2Q`sM!j$1Cx}wyYGc-btFftn%b?)RNQ6cD4!jwJ^z$sSK?OQ z7=!<<|H>B2cs-l!FXz|%=GxiW8`D=GDR+&_u`Yhd^gV65&A|@ipv#LpZa>`r`Rmd> zdn#TXFTJ_Cd2^Mcwz}#Z*|s$sVtOTd4sNkYSi%@LiEaHvqr-o7^TH%%ED)aHzi7ew zORPuIRVwG~-glk5^23kdoe_FZzSqB>T~rtGbAKVnx*pMlV9nz(Ej=D`&NEYU45o79cp!E>8m%S z&1Q_Yn4@;(?#CMQa8u{UK_~b>)YYqP?kziAa_qFyft=&#XZ`T7G7gxv{i7T*<2Q8)+z1mcGV1190g#OL4p8A`*mZ3Six4hPVj7v*1IlOvC zMD*{1J70wkZ}@C$$I!iVuBTSV>^|o`IVzXUQ0;j%N&lJ=aP zZ<^)Uu*A2*G&G1$C-Uum=GxMI)u)&zDjk&&4(VKP61^?FB=&rDbM~hizR3v%g#}*E z#DpGCb<1_jle|&8ij%w0!Y8WZzMuZwq^|lsOYd&lv5t{1`Ja>p+nm*n-ga_=XFi4= zbbp(nw(wDzYrX$Vc|I17!gX8sMRGnlZKrUB#;U6v<$EvCac5cm zvL6mhUmV)s^PuQO())u_wc0NQ@7V?HQWNy!hTEFzR+%dQ4d#Ro8N>Dn|-|Ue*d}NpqLTiy8YXg8ub++j@BU>MyYf5Pu=FRc2(!) zdEe7D`LFHpSLcv<8RKnN_AlOQy%G22>Y0vKI-Rv&GR6JuPfx0uZIpd#Q(}HkuBSLB z|NnJdyxV*X?%r5^Xw|}|(8X_01#s9!nta$N);Fo#`@glV4(IdOE4ydR)H5oUUbkMm z4BQ?pO_=#TRxQ6Z%TVfn@9D~oGipvIX(?58796{GXjaR?9snzO0tsxFN7e>Dc1@$B&l(YL|(d$m`&_qqrj5*e~1k&a=v|%H5BC zt``5)TmS3dpMT%p&dyx0a?0Xa#k1XdC(K=Kxy{vbRxDe0-t#F>a=%#ltdCfkv39pn z>f(((>oerHh<&-q<8%5YH~&t{2|qJ>=DldM*Ib&q?C;$dt3I#3l+n3{W2)xDSLZA8 zQ+D0iQ|O#`Z9fe0f zv;ArNy8Ou&-pEZZT*@+K=a!wgS|XNzu;uQ|g$FbZwRw!|^DCKoQ>xzkQ0Q zTW%lQq5b0szs#%B_u`eM>#=MSHr zym=yU#3s|^-uhkvQR`o~I6PEOc8M>zuA6vET%>45*`3GVXE9r;&EI#V>`!po;qP4E zW`~%0mR|p1{zI>HM@dw>oco2=r_R~xx1Q!q{AE`m{i&~eHRC!pcbmV{|Mk{;*ZrJc z=jzh?#jz*&r}^RI9H&`rwgon(|FGl6KtC;+Vb8rFrYR&RkZmOQ|aC zB1>|tno3U|`8ZF$`FVG@q!n+20I{ibzJS{;Ay!XA5xvi8t5 zCMkQGO&)|)u%v7_u;WS)hv766zT5o1J8qgp=blt^?F`7YI_|Q~Y+`PlsCdQ7d7;7A z{3psL&uJ=dytv-|xYN^rm4-j$a&N3lF}Z)>wmx6q>s^LAmH#f-u358`|9?hbg?dQH z-s>!%UpY4D=rA)M6FoPlU38v}t(BEG>srtLsb?D*k2*&`?)&G`vh(U%j|VQNs+si5 zCOwgu(H0w1`{&~F&1>s__1C9wEB<}0cjmvf(YG{Lv+s)X$Ui^dMtzUt)ykDl7Fszu zs#hoLr7ad_&JYMpaFNd6Ci-3?;_Qu0Z!01uy>l^gPIY{x!&G@Cb8SLM{pSBVdPkG5 z7_o@9O?%3vD{Xr;Bg0}+54p) zdyMlR_AHvZ@6>gUKPrtQF=I&$%!Gp)&c-RSBW!M>| z$~AF(-S^%2>!nRwe%HVJ|1baa{Xeg+FUr0@`CZDwh1$&bCZ}#=y}If0pO3lH5A<)J zXgM%D&&ZK^TlOWcii`g>_bpCXvEoVL(u;O+`n6lG{*QY5*!rKf?DI*ihkjW7>G|cZ z+@K%*Ltm0#{+Vvn_!@twkDwM=I1$>n=WB;G!%sXn3H-gx`W()=us2lW^7 zzAV4=wdO(3&->vIA1iOvcyQ$SyQhX%CQLuz)}-6Sy7IV&x~7QxJR9rV8*YXgqq#m3v@$vqiGRNjZvq|&h{>&)+^2Krfsh3YyU;g_Nye{Ip zDZ{!OrJtYG?v&su|M*D3AfA(J?T-KXsjD|G>ic`JG-hJ=k~^7FO*sY&wIwxnEal-_ zJ>~mS&*wtR|HWwbZfV|Np1tzw)|FRy*$US>c!fP)YG>roux#oQvHRT0oK}}xxK?dd zl)vj8%e_##e)?`zIoG>|UaQ>~8t&_nSk9{GE0L5JmSpow_~GWtzwkE=l!rPDGzJ>Ui7DbJ22VxTkDC*?fp-$RzFWVKmU~Zz54il|3A;4{`>p;Q^)1) zMaou8mhW(zoR=We#AkTWpy~3olY3{j=Bv)&I=eqiB<5t3$`pZig{~zNvpEmPG)^&M zoAZ3?k9g_W6zR(zTFNp8vrmd-i>e$d_?#8G@%85=Yb6d(dh>e2sh{S}r`4srF6{bm7k6|HRai=WhdCqFW>BAs*{y^ zz3&-UWtpar;c2z-3a)$qEdCW&E=bq>`Q11{2ExYzHAO> zi`$M%hSZyU z%YrVgHc3Ava^mrlk3aTC9c-Q(`-k^d?yG~xKYn=`{L}p3`v24ZT+;uWb?W7jTO}X9 zady|P`?iir`p`#--=D5-FxPXrlh~JhI*=_x_pP=1+N}@rCv7Oo$y&Vs$!Coc8+WTF z-_7r94L4Nm&J+K+ZL{PQ?qA3LNGF~-SAOwGV&7}K%;dwCz3sved7m3rv6lXbnSR*m zMiSrt(8p)0H(r_;l*^QMat~&Ke76-#p|TW z_5W%y=LIISpFX#W>Evv__lzGz4>E9bMQ!5_{1>xih3CA81>Pdtj@>bNJLhB6*YNwx z<0f4?c=B{&@naU&MH*&59R%u*Y&jA0cYkS-d*0l=%HqG5fBJECc_9C@U%Rrdm$DrY z-Tm*){QsXn{km;$6V85X*OE=2zIRW3@aMKq-zC$>JHI5)UZmc-UQcF&s$5!@}K=i&W2*G0G)0|5TPj4uE{xU^tYhY>Ro!@8Ue{bFS zzuIC>`TIL!imMBr{^GmZ6{2FzHsMyz$!a;?_1k7VIb*hE&M}TAo<9Au9i_&_AEtN3 z-OAIy6V|*v%Wl5yqM0f;{Ze*Tao2dqm$Lp5TyUac;>A1LY@|x&Z4sC|e}4Rl&*}P4 zo_32Dix%#we|&7_oqfgGR*n+=u|~&pJH34Wmu-7~-^wm}e{SyK^SL`~UthCHOt@l}q0Uqwt|sl*@>zbSn~j)p+Gd$} z;rBZ0J>Quw&;0YGQ{dp|FSVa?Y})+_lza}Jv1W+L^fH}e(02P(hG1B=UcK=9g@4Ts zI_>xn7vF8hYns&buT9Zr+l-!uOFupy>Oak61Hp93Fnzt>N5$dO5$Rh_qXiBELr{Rto2vh|Km-*hBU zSI)~#=;kfH#}}`jI;d5e5c^)}qVzAXn?Y|IkA0LZx~lMZ5~oxdOV=VJcc-wnby-%k zpFCtt`nZ0#-N$H;HRiT;_WZzD;4c=lj@Bh1U`ziHr>p$0*J+JR>UduD@>{?6t z>5F$)b^Kwe|lmHP3zbumAaP zam9}Cn=gKcgx%6wH$9O-GR&-H+NA9KAEL|Gcw9~hdNhys^0Zm%1}1&q)jnz+xt+gX z`BaqN)HUBfoK&ChWfebN%lKq@zpFxN)t8@}ZnLm{WxdBXGxg>9j%5>rlba@PtTbcxI@u^Y&nbhlERpf4SPvUntzf;Vvg{NnSuF>x6k4`F}!+6O7nm#qxiOAKoajdST~rr`p-?cWesdkUS_;z@%5J<)SZL zcc#SUWr=lwVc6g28yBCR6uRI!m&d-vo%in?6Zo6Cc$K>0|*=^RdSBI=+spH$BeB4utqx)P&P^k5E&a)q(EfpL3 z_dn}gBki!Rr?M&CH}%pvm+OrG9!q$CSJnA(BkSB1|Kh0}d7ty$4hyd3e%Sc6_#wv! z=f>NP;=iYE;_>)ja_ein?{n@K5uR$-X1tEozQOhCWyb8o*Z4eto!Y*Ik@eFeJ>kWL zURy$z|J=Y6x~P~p_Nc#rq5Qi0e|rBr{rmd=@_*lbU(e=W&&@u(bfwBzMrzwGPMwh73bXQ_T)z@~odW@nJmlMjjYg?jz+_H!L$ z_e3Of{8;D__vN+0Ql5Y>=WpEnaQ%kyzRSitt3S2#>abl zkJd(cmK(9kJc`ziOlC=YI^E?ni{O{L>b;iN0vLav+1I&KO>#xyOqYvl0*h_G>MStJq*{=js%&?b^*X0-P5$omMXQ==WZDEq9BE=g;la3iq1MsQ9lS z<76!6rli>urui^C_NUW|(uZfxi_5G~v5C`TJv%@6dg!TFA~hy%8oY5|1AF|<5Atg+ z?YwF|d7dF-tI6`TOIsBEzMa}qct%^af2qOz2VMMLP4j!(x9AoeKJntlA*STT({d)e zCb$t>AAbh zpLE-QaW4A*&-Uk!$?b=d>^6-)!d0>2CgPDf53Lmz7Llj(Cv>vsfd$RD8p>7i`-nZ`;zjCD-A2z5dMB3GU|- zS8XY>x#SxEZvH8D{`en~A1?pB|6G$Hd26M`;>Rm2cz;MMYRN9=)#-c2RF^m5+S&|e(?#9ggzCOz*f?#nYE(a=b=YEi$@B$bEIg}p=lOm;+h_igL-QZw z-#nLn1{WVaX`UF#wC`b43U^=8ly&jfwuXH;)74+$8YLkYv`YOa*W>KX8dkS9Ed3z& z?cy1ZeRED9RjruF(W1Na)-+T8X9|KmU)x^4a93nuwMpK6deISn3G2ioljhlQm^}46 zC8%g)aJ8!-ZDINPD`Bb95{H9AEnX|X6;AZL@p9Mepw-n;KUSK(sQqddte03|sjgj^ z=v1*G$G*S+c)HZj_^($A3!NzNqNJ$NAIy<7zjb+v%=6@tu9Pa!SCp zS-T!YK3Sj1{nKpksgO4fv$q>JR0w_BF)=r=fAY{+y#$ z7uk0d%jritZceNK3SNPzpc6TVlU;Z|P+B08g#II-9Oe$<>_J8~0&bxR*AM;?2A(Db7EpZdA@u znc(Bi?&~t^X!eo=oA&-%mlOVWnxx&OnYVA5de2^;_^(Czta80eR=-*A{6zh!d3WC( z+F`gqI50mf%Ah9cLR98u!%uUZkCrT6BwUyOjLFOw9KTmhoJpaC5d;ae`)t~t5zFtpLeJlUtkoc3g+uxsV_Lo2XGck3- zOqZ?wsfkt%T~6^)ZA;8rIa^~)&Ln6)-p^hq6wq=%<>uBt{zq3iteb2<1b@ECcIQ;U z^V1#v2`6+po$8`0e}VbO&o$ zeO2|np^RuU1F}nYJ&y@pHzA&)+AJ^1+?S0*K%L(@_%S+$w4N1`X=_bH-z1QYN z#ep4JeL+>LY*(}<-#o$g@_r=GlLYD-JE=b>o7;{>{KqR*M18FizYZ)SQKBe+sEzHw#Vq0 z>&3%PjE>D2CUJp!|9?)T@y7yHu@-Z9hi{1VjG1-E5eyboi1x@W$Cw(avqR%KgZ#+3|F6UDg~+}eKc zYrR>Ji}KO$zU$62h_fC&Zd^Ri?$L7b`6sUbn|yy#dHvJUpVuybPxsaN^7uhK=lZY$ zpGv25Rex+{Z*q#)+~d|4cp@|Pg`TlQNQ<9tVcb2>tIst)KG?5o$X)d%!LM7-wQSD* z$&9C8D8HU4aXNod{R1^|ziA$Jk*dMY(nSYu&oatlYgag#V6Ssce9?jAz}qXLc>ZvU z8K2o~;&!&J_Qlc4fK4aAmVSlov*&aA@RxaajpEZ6B2%W>tdVwZTc0=W=w`*sYb2j+ zUG)6Z`PSJ7e{d|j_d`at^;mw?(`LgBUgjYSw)_o~^eR}g*~9bOg5$+T^WI!)sgsN` ze3O@*!?R@4g1dGXWzyLMU;Ng|TQO-SgU3U?tJjt+(m2~Kd!px!G_yxbxQ5i3$miDz z`qznE4%S~Bf9Qu>drRW3%xB6TyER3!XVUR(JmIlE_aNeik(Q z_L1O6$L3dlc`$L#+arWnKo>s7`K}@ocr}x@64(SbQx9h~2cFtCPp`W-nM9fL@(CqK6w;CqT+`#kL zV>;jF4F4;^C!;T#lyN*vcvHdY?a?PR|988|FZD0{`}6PZnJD0Oyui1(>s+FkqR2_r zMVikpzf`(8VcXsV8xP1-JiUC&Sjcgb<{Ot4VyyGp8P{=pzWs4{`;;A%r{0d^+aJHL zYHCT)>L}@dd=-}OEI&M`Ej;kf8GEx3Hm{B?uUvP*@tw@tE*Gz(bf zDcp9cbg`I?R>Xwn)jOLPboSNsiEIhxsydsjQ(pJ!G*4P&wS4uA+IMdnHu-$H`YiS0 zGna=mbyl577N5krtMpZ;-%i^6D$BskITjaT5$LGFj+M z=i5Kuu3GE=z5SoVpFXd9m;aP0wo7$ulB3tGdu%Ur9teK$ZMRit_-i0zC+hz+S~~luzSgZ-+u~oYJJxxth4ZWE zTi%)5ql2Dl9z4=C?c3{}HrJ1TT7Cb=?M3fb$Gq^q`MNSCZDx-6P9yH1)(;UXq1hIt zLDROCZP`0r!t*gVqw(X%?QG3!fTSREv7d&=F#F2%l3`IKj1gz3_*9G4bK= zKnHamJbl)9)t$Azb#ju80v^t3ItM4HYAoS#3cBLWA?(>0KJkGO`=7gc3Xxlv$9|NP z7Bswe>oa=`r8JXW*)anrwj)2lu)i|=T3=IkX>e6E~3)~)50 zF!kcwT^94v;0R2!7eyHk z3-?a@ci@Jw272ol&j@B`Qy*U{Pr_*_x=4g`;+(nAErMq%KzW= zXQBT88GHWSn%lg&RE=NWrdQY0;Le&JzO|t#TNgbqSe|P~5Fnp()v6@J7taZ0#nu8IKla^nZFa%fwk@y}_3j?)$9=8XnJo zIgN=^simf8ex>Nu4cTix-(RY>vvkqaeXDO?2iV`hR-n(4PsDywB&LAe)VAHy*QZzti~HY$8WmjvCgq0O3wNE zGrg@%*}fLKUv0e=Z&ejkm04Z(om@4kZE3&yah)e6?7A<5rWngdwl?!_4dT{4u)1RF zBmFg2J{|czZVzhp3Z5-pGV9WhiU+>)O*dVXGM+1RVJ`o&z^v65mv+1mi{iPEwXA8m z-|wAA2H}zvwsC$$G+iTywFT`3R8{o;6X-fAhZhP3q)2c*rO&yHbjQQ%6XZTekG=-v)gF1SgbHpoIp=g^$%Uj+9#vH}nYqta)V!SD zx^H1dfy6U`ti0JVX-V0h@`h0_9sHeUS=3#QG@2@ufAPw)AM-b!YglyUo5yFKkJ@G( zv&}r`-(T*0Bx?Ti_^)>Au;w)O0U|Ofz)6IfIe&*Ac}Y+t+H&tQ<@B%YP5L`M{mK zwn6V(aNUQ4?!g~>d>ZcmTU)Pkp0DkWyd4Wu-u<1*`TL8ly4mdNKL(wPkM)pT<+3~A zO6Ci3`Gbl_R)w5xWs|tG=yn2I#_ET*JPMdEt{JPJ7cQCmnxr>65%mm3l20?Ekr!bj& zEIi7!x%>R%gtpI{l#Bb{iad% zapdCKu@ zpHTg+{`}jgyT#8x*IH$0Z!Wgg>)>?X1yYBORYbVWESU9UjhS=QahK;6f$QX6C>nGO3TVovwHU{V*nSrBpX&8BF_ z>&6NC>-icP&er~yTwz@_t6Q4cM!HFmEA{f7Hw@!;VOxLx#+2bx0+kYBcsN%cTNdiN;xmE*8LhoKx~)grEOy!*y_7j&d4`yU_08HoKCfI|#|iusBoB5)FITdTnO3#Zz$rcX3sp4dCNas4&38Y8nkf~xJw-gi|JF9nLtjNIEg^cDm2D zKCitC&o0pN?tD2-K*7n+WXfib=w9WgKTfvKKiBp7{oe0=HGk*-HU9abng0oY{m;{% z{>J~=b7xoS;}6AZzxSSXN?QMjV_o2!KF_sE|Lvw3C2e(FD_NPd#jtp5rnV$+XzTVV zHWx#rIF;sAoe*_conKbLUE)=+UeRQ^#!lbEovURcHFlFfB3k)s6bJj7jZ) z=;!?$k=&N`Q-n3^I3TYEyJTv3vBG4FCW z0WH_3pAPUV&v?=FT+e3PrX6<-?P~5k-#GJX3>(9W+&Ybe$|50NlJPP;KMy73tX`*7 zcx;Oozlg-yc9sbpTi)@>$35J_sZ_(u9yaT-+a|R+TeyTK?pcr{%%b@0`)c;`Os$`P zxhnUF__z=%?>!;26yxwQpw4I9_ z|2>fNje1>?GWXcQ6$hfZ!?m4vQV6vBEgUJ13DttGyH=S)c z5wU|~EmzXNGsULMV-mMcQa_o|I`fzGCa*Uf^Htl;$^sZJd8Dh@&SsCDZ&Rri|NH2F zpSpj~|4;jKZ2kXfr>`7o?NGIie%HP&&|>?VVU#d$p)$O{R^J$ zdysO){Kc}yqbjSHJ%KxE~%6YYgJrvPqC#FZ=L9v)wH( z1-`^aR}1}lzem_s__vSMG>$w~-^k0JnpREc4svITCp>eE&%Cb}=D9$#ZcEzICF@cy6)f1;Pg*gS9S*O;TtD$je6ZJKJ3(6z%yuRXZ)wRY#eb$38}7n`Q1HR=f^ zWfrttnA5X$$>jHewnkCV+(IhCEanVs!wMw-Uic78dzu;24f@19>- zz3tEc|G)R^{C{Cy7hLzCJAT6X`j_2Bzu(2~EG;tI&bFnyr@VK+?s4G@8+YWp%AVaQ zsQ5ftSfxpMRsn|u|KXzLbL}eMoAS(B(0VoNf3EqtHT`#crkH>1G4oWPt6 zkr$hLLxbKdFya5Y?fOKdgVt` zGsC|C5g~8EyQw#R>{YX!lC#_```v`fUA!t!8YZlq_u02D@NSXwO=&mAvL4~pt6#2Y z-t4pQ_gwy`+3~+qfBvrj9{yzhpLf68ul`$Z>A+j1B@=y_@$>rBobpJ{jlx`q9C;;V z?1ETo4%}`yt#|3c-xP*x?K3tD^aZJ1dLiJUcjHL$gsq(GbC;H99m;XO?)9F{?$AcJ zIVbzJsr-0!VvV9eOT0Cw#)>m0ld7C#+@$~V@3^gc@V%2~X-iVOX13uU7mat!b|-c{ zcw5%MwAj3)CGz&F2gOncZ_nM{x^v?@!)Ns;e0~`jscA8v_j2Gjx^~lePBi$R^&D-ktM;lmGFu$u>sVomEL)_ju)rQ(e=Rz1VM8_)jYibb5M) zEXyfoRpy4)uKNC|E?otO6ZjlAwk*7@QeT#EbKb;44psxbl#|=GXnd|SJ??Pmy4I)4 zEsw70g5kiOCK{m7%&H~n8;OiM9Y`&2-1dxE0N zNk5}`ZIeEHcY7#d+8)<_u|mmwTJ)!9XTS3uww~I)-flwpHbg({lgD6k2F1H+R#q_}kxebeL9nHhF44IU!IdQC5{QgQbVlUFx~`?Q2$z&A$BC zvjR2#tD;C%K!h&-saA3{r7vmOIH5A zTmIx+_V*{>-rg=U`exXjlKNuhy%QhXmG>W-5d6s3YW4=r!wRcP7W}!o;r-fYT)){q z&)mO(DQ4;`?mx4RfB2ZyasQ%;i-5tya`C7CvafDWm09AO;A>~myFSw|>u~7V&fe>C z`#!xFpTvGEfo-ur=e+Ds{12)N3k`2uSlZ6@yJaye|Ba))%LS-WP#a$~+a z$F#=}Z>BQt@!8ePv&ZvfpNNlXoZ>B(!-_8+O`SXakK94&XXiyyp9m-ggoIvWo)%cb z9lcIW_qbB;K?(U|$37kF^?ms{WncGHvzsSg36(50=DIuWw$=l)DWB&$t4oN+a(%g~ zI$dziE8BEAi506Z{U~@HqV+NF>`KmAJKnPxW@KDAoYy`jZTaqt*KDR9U-Ns*gVYZ( zTcZ@Z&C(2A4i#E&bm+3%#3=mABjb(gcFTfIQ#WQu$4-4x_&}}MrqsuOJgmOX_-ZB~)UYt~c-VXarwO&bn_i^-GhF$;=K1c=pWpwP{GEUG zAO9!i{QLi(e7{G3|7Yv{*57};E~=Vw-}M~p=S!!TU9yrmAS-${Q22pTNK4xHdwfj6 zfsOXhwN7wOubiXsy4-lt+}5;ACl4>dkgB_?MIWawyO&hC*r_5ceyW@G)QzF*{;xSb z(NF)%^sW?M6>rIc*8)AY|NgAppmh9&#R8}JAIC*Dq&Az(y~5&=$`cxGmAEueTp?MF zQ#oh7_5sDO^|L)2Z=IBSk)yagMI`f!VWN)srn4p*->bCNyKp{bbJ^Xe-~U~Bif5c| z)HlJ)O@}I6xBjzyH(_<*{pZ{>5AsN!_TN~0w8O4u4flkHj#>u{UNxpTe#|&`e1}?o z)UBR|?zs6(1+MEsr(5jdrp{ij{mH%?Oe@BWXN z_qNVI@6O$mhnM$1wU)2bvEk%>o6=Hz=XJp(pF-`W7oWeHugm*CYVQQzJukL~oXc*n z+_!((N5!z!SB^DkyxrcaRJ!`O$?VYEk&1c0^)>pR$=lZG@XOmxwBDX~a_{f*r(3Jb zpB`L3U#?E>g#FLA^)gXUgVi^C!=GH(Oi_dAgY2Ze349g?;axnd^4x$E06eVz}(?lDRXV8a&%>eX@4{ zJ)eV#)*g@R91a_%z2mOuzE~hCY^pfv-1(ObzRwk(yv@0tn)b^x<1kma-E-ABkuzVe zx5(nkJ-<*k%q(zcH(KvNxGyTbdX1%SIyOnYm zysA!B6xZ3dmZ8keXw8yuw;Yrt??hVlAGxv0TzF!g)6t1_A&Ql2-(GC`x#WzQyv+TX zqF*xK{i{}A;iUID(t>sB#T7GVZ~Vt^In62IIUmozp2tUy*sOSF#CCAotjiIN^NvrK z^e$AiU^-Xb^7-(W3ry!v9J}Ql$9n(Fd*v1071tK?Pudf8aB1t`bxCC>Y}Y!hQ)N?m zKFvn!?~e;}E+6x2`rCN*8IN*<+Ham}5_sZ-^GrP|C zEtsp-629k^tYw~dgOI-dzNN~F`TG)%9aY%dJ@Mm%+t&kbw=v5YOP9Qth~Lbi{zbgv z@}m9;@3)oB%9t79ePJ)_?Z|`LO7h26M-{SI_*Gp9i$A@Hp-9QfP&6cjqeFLJo_p+k zrUFrL4&Cdcd1~(O|B(|W6}o(zvB^;6{i9D0jF*3yCdvv8?4*+PlTp zsLN?nQI^n|Ie+fGXl|RZ$l3a1l|zo<6iP6E#~z^yOV`W9^9AuZQ`H# zfkPvr|3T88hDBX!dlvD`xMQjFbN*hlO^kV`%IDim-h8|KSz+0CzOK?W5h)C9%T#qw zMcp{LH}{d(yNW!g^X(5+mRy;gsF}*5ao&bUX~|l(j*kJ)<_XQ&Af(OWZ02)VMY(>l z%tDtM4M)p;4pyH7S@ia_2bSdisrmlheoFNAeA%$S`6qj4o2Qg-I&qWn+wK&}INrch z$Cm1FYJ}Ww|Ckk;WFhNtdRvH##ne)(b1S!SuV1!rQ%jY=3Jad*n?gdWRTtCjS|?RkFmBMaU@ zt*bqv#UU;3;)~mwC$)b6bCkQXuHc%S?7w}5Woo-GKmBkfuBAEX@kiI>t%qfQ-QhCe zGC5nlJI1%r>CqasMTUY8OI~v&TuK&nnKLC|qGZz4NwXu4-j7pQd_(Qc_iIs4ivpwm zm>2Gd`s9B4&Z#@1ntK^F1*4_h6x>$CIawK%dG6)XPQKCeZ1ab%b=-Y#)Qzw4bZLEc znQsx-Z@8e=c$dD)@`BygOEqtJ=w3L?y4|2)zTA^{8f`z`y!`BTf2se}IQ<_Q6-O(6 zwBA;_diiksM9+dBy6cy$uhUmaj^uFWKbWYuC#=07bz?4vNxWm3;ETJe2X{2-D?DfA z+qK-K-HbD&H-EaulFpx=2UAt+F7(QogvoAnw)(CXvDMRH+fJ)}!lxqr+}U=Vm6AJn z`tr(yWh+bGtIkjSX`(3C7jo6M+(mPe+U1Si7aw;&`RyH&bb#mFe(Qa#&mVqS8q#Vpi#n*Z+SB zZHUe;@n-#Pn)*M{C@2HZh@CMswzjjqY$4z#B zseQJAi!DR4P-lV1fd>^+GcR2J7@4>Hc=@A=CymtpYk&K<_WHIIOX0)&B#PH=UBC5p z(K*H0IbBLO#Z6~#(m8CF5V6UXF?S*F;kKLu0t(D+a(}%4EGystW8;0E8|#-TY}Mbw z^4c+Db^n{P)tZ~4ODhEVEA_Un{#F|MjN|M?$@nAU$?L2xJl0C+UA6bwoa84bdU|@Q z-O{RF35Hz{=?@kNjTNoXa9-KNW;iF~g{z9Od6i}Gtb4m2S3g{R+Uan@$xoW4JhA5j z3Kg3){%G=Xlw};*$7QNEJ8iO{!Pc7#Hvd`5#K_B&6ThAJz`Z+lt^Y6Y|6YIeX#EEf z``!Np@7=FG@YUb$!RPn2UDMacJ^1#H&s=`JxAAU<2hWY4uH0YrGwZaW{QIYEZb<&>TVr1N-QUvg6Qw{36o`n08N4eGvIc4b^_-6#~G*vaY<;}aD# z(KyXp!mw|fOv-`RH)2yK_$aTq)UZ+d_)Mm#2TMZ~jBnigFy-&Esj@$8f6jTR;lDUx z9sjnHW!j+u4+Ce-sGZl?#g+6nHT02Fuk<170J(D)4Ahd}ol$*i_FPxu%g3B(=`$NW zzrD6u&eks!`mHd1!`YkWkK&yeUUBSxZe17c_crG8&J*t*_sxsQ+H}nB=8}u2Ue(w| zf3rD%yQpjvdzP&0{Wo)1PH9XEn|OU^gv8PR7pgUWuq93nl2G1c+w;3MTsX(@^zj2T z4{rO}pn9{n$<=;n}JT-D5t-3SS2soSTzcGLtoiPjg~L zz2WMo&fbFIpN`xRcz@%m(9_L1i^6MTIl}lq89cIil5j&)qkTnce9NB8wKg0|TYl$g zxK&Tcy5(eAXTZyD!Z<%8=aKrlOXlr@dlHWMTkhXzXWP8nI&!Ix74Oyq+CKw~v^NE6 zC!Ku|e*S=$dXFvFT_5+$HE&B+-IcYzxA=BT+^6@C9tq9g^DE`V_3iifNYCD+Hi;!Y z^5>6TQ+T$W`gbCg_2G_9dv7ii-P^jMaH8&!;CM01r@!Yo-Y+P4Q|nz_dTnzQtGCBv zmAgW(i{G=exlY?+zh%ARzoa+1{c2y9sXyPbd%=n{+oGR*sj{zKPj0>PcCl9T$r(+1 zyndhIHdwT+kHbW?SoM3)IqR<~Zp#)t59*%5)8OYcQG5E7@;>$D&u<3Es>&b9rTY5}eJ`}Pa)y_UMyP+WRHe(AJ; zcCFuXwM$M$z4dq8|MptV=6#3z@BbJ4_vWtsvER3^@36l6yWq26{N8_6dp_SxU+-sp zl|6*H^|eiP6t9c&iKR~}vJDridL%G;X-#vUI6cs_b)mY|u7Dj5x@^g+i!Kx|I}_Wp zdG96jjUIcpDj!(ln3Oa_fp=M^$jl4DA6c`)>)#*tO|%HQnpqQZ(J-m}-XcZ*R87t8 zCIJkFZZ^NCH7f3QNxQS*zNJ=n-_4qm2D$&H?fN@xm6IN=y4YCaD)(AE@R5)dr=UQzly2}k z`u334%QL3j?PqK&oW9@PP%OD!xc6lCX~km&g8R0->A$#eN_wYoLC*9(_G|vlcc$Gb zFu1l- zqs{ka@7Xl7Zux&B_w>KDaTVu$ zcC`r1h~#oI=D4OHm$bu%>7!W9@v=|*RbQOay!d{?-jeBsYd4=xLFGw~|`rYQw{-?|T27 z;Agn&ozSECRTZnBOnCqDj;FS4$!Ue79sF}E-fuo{FZ<=!x3kuJs(+iE-k4Z+GHCm4 z$#*)_szR2f=dfjT1#9xBtyK8BFDYq{<6nKNrPD7koaqZauxonD-Z=Y3pF~!$PCJsm zseShcl?4^)b5+Gc6Mn>}L3a!hmyv zo2T|awRwDg*ZYMh;w0a%l)4_9+<)D9mmD(#{|Bp&=U#USTzcc`>U7sRK|eBWPy4$E zzN`Z8f0tZZ!|CS#biv!X%tsnpHtY#ZoVF&QF(IAl#w806)umjvQQ;~xlzZhvPX(_G z4CrnUXT7yW@_nE}kX%}8+|+jm1D}VeE{f^8UUj84#lLrJK}(-{`~PnuEI%5e>-%Rv z{>s6XbMfl;_x3&Yvp4;H)P4T+1Jf(-Hk2f-cpI95-Z2YXY>sPg~QzR6J^d0P`80xBJ$v zQL8y$ckGPQhuNFu4Gisi?!Inw*mjcZ8tD~$KQJX?YThdddBl6JlV%;Ig`z= z{n#nK{s@nQWP_senu^+1sase3%UJi=W-D%E+IsG5<4gtqhxPo=RquIj4oiD7Td;AG z|7pH;GJ18(YYOId9FqL@X!9HM<8yZOd>3|K{y%pSIFekXrWfc;qb+ z&Th{C{M?!C&f1oX4l-3FZF@1hBKa8~uOIVV`^&y}S`OM)OmvL7duHVe2HwSUHa`5m z=?CwGi|0(2IZu??mE*|T;rp}x&%TcPddZ5$joSCiGpb%|>})x_+s|^+?%nRpvvc-T zRhb@pef4GhNoMVuzKud!lMYB6Kfl9p#-tJif*&&ytwKjr$Bd^;wky;Z%odL}DG-<}HUoy6x7F{esl z<(1sY9;X(bF!Cw4Xo;S`cJ1%YA$x@XOuZTI>F*KI?WUZtW14eo^^f{E9v=CuKRY5f zz3aS?U@V&^QmF8H+mxMm{hS`OeL8yc`j2_Fj??%4UK~HMnp5J|Cyzt2lEG`HG%8Q( zx^!K^GIHKz^R-Nd8*HU3yw;rG|0Bo8E9dyjeYKy%ekEv5nbG)YlH*IkA7=_TCLcI% z7*}qjEA5_Ue&$^17beg28@kn>xBZn#oh*D(^ZMS83v9%zXLF=KW9ZLWcdOTb>0V|> z&YBE%-TP82zsY@hf8ud&aNhA8_RGJYulByS)+Tt@^e?7-qGya+o%(0igeq%`ygwUv zKJV<_no0k4UznD1F{@|iMOCkQYznG%Z1or`I;QKcZ!bvvrnIK4vCnsnkIXHRu2nAr z&oA!{H2#0(?$LFNRGlPV>BzV^G@W@{o!Dez7n7cC(0Wtpb@klVmBvYj7wox__r-Q= zprb%7*U<}Q{AMc@=gv<`xnOq2Jf+fEn$0*@tXOt#=f>pD{dZ@_c5nvZ_o3=oCgY2>Rq)Lm5=Qe8{ zcWgXoC2m`M=kU$`Q#JSd8xIv|9(CEz z!OXIvwA9eAq2kk%EE!Hqp65H0uUTBLy}I?{!tYs=_e{EbLN!sSMd;24k)DJ9mnA#N z%`JUW`F_dDi0U_i^4+W6tiMv=v6qim>3o8FDwFTN8)b9%w=6cxo>Qu0dFsTjRr8Pj zQ(WB?{@mwYZorykxxb=+d2K_Ezo^{c%c65u>c6<~nfJlVMDDUgXx8rxyvgzDhn9+1 z=F1hG+${ZPeedvCHD|jl5MAc8A?{?P-UOKikqme4giesJ;8u5^8$I1Gg<+a+xV_F? z|EY^Ut<5w2lf<6qab(42IkB}miTrvC;PEXo61u%W6h7{PfYjvJLOMm;HgiJEPJ0?Rj_Rg;a?KQbo}Pz)hUN<8+Rwn zC`xlWY+L5!RCUqsmHEZRs+SdZbr|Je`l$16>Fgr;rlg5W&OMkec!mA=hHvXv)tx0`3q-(`HNU0Z!OPG2m1c9cy_XzUD~a~HN*!2i&uA~y!Zk1F?cX=c?T>%2 z|FCys=H1i&aSsl+^DF<_H*e0wuNLV#VOnxrnYR!6yDB6H?ea`Ze>3mjt=jW3b4*`G zf4Ny0cReThY*(>+zO&zN;sT_ICnE!w=RC*DSK{*edRKx8&5MLjXlqB{qWj3 z_h~}$9J4pF%BC~67|6(Ixh>8N{(F|;j$xC~wqk*+1!^3U9y7l3Mf5f1J741CoxM?K zj@v=bqqmQ>-QM~(EzY*5u)FLUhf>s|l!+T7y2V)K=Y3fA0%)Q=x-KDVv? z_Ql$Z#Rbkz+njekc8br8Dmb&|bJ5yLK07B#`R=KV({x_9?CtUG2>yIE{QiTNnPERa zJ$jNeZ_b(S%g?|4y}3F4=5~JhbsxWKT1;<~dAIX~MDp{icE1lTICn~U#v17tkFVZ6 zmf>2QUChV8d!_2lg*9TYj-1{0@afT$jrUSMrtR?$vhR|aoxNkT^TAo2YNfAS?XE_M z8nx9(?p~?>#N%8!oN z_r1{JBKP%W>&v>Iy_ow?Hl=t^*`((8OjZpq<|Z#F`gG;#)yazP+ahE4N2{x|=Re=% zu&^^`nu*!R&xMmb7EDQ5p3qP<<-ASPBDKu(-HTLio&6;?QD2v%?S^>r+?kq*^*P@r z%O>q?QU2gG$B4uB|Ftz)*JqzzIBoZid0LyoBGU^zFa7c~mdxO+G&x;8A>jp2!1WWm zryO7To2S^Gr$g6mrebx&l6x~)i<3B9{pGfBGfsaz`KI-X2cj9ybJ-q0JuUwD#+}^5 z7uMJPtGcoB%G}KzY#R&9rV7`KpFW)&w0est>+~f5X`YK0&Mpc*^yl)gW7^+)GyksN zq{-A}9lTt%HavBuvbmi#m%iego-6jtGIW>kP02WUx|=&~!I^E^?=v6${`Snu_|}Cg z_9ycMR3AD2*LQ6@xJGSL;-&@D^*AGUUHq^~=WN+I2YE*JfT~y~BZH6+r;erEm)W%7 z=A92kl{^eK2VNU8d|=SGmf3gYX5P)GA^rD78V+l^UEfi3(c|)r*LiWAFB968lOJ8Y zXc@}v+ImN0@dkIxU6yK2TIuJV9RfWzP2w?X*|>jB&!xjhPfFO^9Q~M*Ak%+ceajuD znb)3b&bc`~i^tbPvt_DNt^l`B-PAxO`{@6-{{CIQCFX|Z@%b|xB0Xpp2+2#ejS@@uenGmE>t+3%$082 zl`3!9eLeK!zej88%EA&v*2k>jP^mk0F}7?<^p^O~K9>a^1&N+bNKI4W)qmwa*>LGZ z~>^VlPPp8F%+GMlqk?c)ScA%`Obn<4d{}*n2 zuE~|s=co*ReE#F^y?Z5(iLXDsT34b#;$VZWK!L?y>AuFkRH0b{pkDj1s$6x9#s6>hU-iB`FP%2|GMS>tHkvRnJ$S;fA}QN z>TZB!NAcdwE^ZZhqiX%&o|iTg#8`NLD>!}n^DW)?l@sfdX_a&4KiGII!TCOGjQO?O zhv$9$<);#TaarD$X{Yu*kv3oGyIe*|znN{8T{8EwT1yTi<%9<{T8=9jdS_^4XwR@^ z4%6P^$+kM}0ZZ@owCk(n{pZ`rzP}T5|Is^({-bM!@9Az%+accCcEdJh&8LKqHD3-# zZsJ(?M(KWH=gh*;Njs!-jV-3AwXywMUAsiC=%75y!pl|n_N^QtLyqqDX1Rmc9e zJ<2j&6;r#d&guR5e!zT($+wWCNO@52t_qwTRX)c*mROzVD_@~yedPX}QXbZrHRsEJ z)cl)aw7TrT(%X|hCn=RLo3L`rJdtIE`)>(2$~Db9l$o7)ri6FrwevI60v5AK2esuI zS6dnV(smnfXT6 zkiRu|ciF1!s9bZiSw%Mw3s+1x+|94AQ&U@Od+Gmn$-8Ge^k>-a*HZYr!+q_=Q!l(M zyi30=Ws3bsTjsZCuf0u{F*{!RKh&r?>-)12f&W7yGklIogHu z%wRhZkX;qHt8nql!v+8Nci2c?_5bikq-NKlx0)}$6xN!b%1dN;S1^0?)k}B1Shuw} z|BgSNB6-T={=aieZ4>OBGOe#Pa5N`{e}7c?M1-eSotdF~uIs1Y1#%Ot*~~`aDURFcxVpd9oZz-(;jep7 zlzU4~M@~EWZ=$bq+w*Dv_MbJ#|6Q2#HpYdG`N#zCn3*iRQ;#YflVxqXa!_*nn&vN) zjrcNWZ2uNiBvEl^%F(KyC5yC!SY*#FY5bTfIlJ(zsJiGDuj4YT#iv;c{F(Vzh6}v! ztC@NCN9Vl_k7~;&_U=(B{r>j$_s93keC7+?pLcvx|ID)vb&cjb7-bh+=yX(;R0uhu z{pi!bC!aSfeO$Hh!Fg4)8q=UW_nFQwznHwb{5n;k@VBiouf=6{+kfZtMG7x%_2l0C zc2ck<%fmaqu^W%XwW^+9Eyo?zJNLrPb1yCweoGEaH;ZPB48vZ<}+MVWmJL6HEUZLePu7xo|#=nd=$F8b7T^Dt#Y+i`K?ETXw z>FnHQ`~1zzAF@VwrsZfG?~3`N#%yu&ziFAI4cD)w&C5?;n(`{*b-|7(1Ev+6OGq6d>BaZXpCR=1Bu}|>i7rHT1Q*7<| z>6y!`4!#UlKW8;<UzN$V&}w|)q4ByeiyMaDBP6RDVl98^lZ0}BbTRy-+`(-WuJJN6C_wz zZ+t7fz~G?ua^|o9;dNiHe_a1(?*6{>^&d3w8iG1?j`%`1rRj-#zUwob9wr4)q z9fetD0S`4f(k-2(wx)%~#I=WMyGfrr=G~k5{=-uS#rMx|X*N~=D&H&1+R-$TO&}_a z_1O2RU02J4?$~x0uL(^od~@mSDF?qsi;TdstZz$#Ub;-{FYR0@o07A_=7zgf$r1m> z5AD{O9*%z9vQ}%-ri`?pMb>SVX+8eR7cHJGUiValp`t5(->>H%uh09-`{&^9|1$NJ z-;Xbx;wxjQuY83FBlgq|x^5WqI%NeiMU&z%; z`SjoHb-Bfq#9d;x=Vrz(i<_4aaoudyk(aZM*=?-S*`u+}_ui6&c~*MUbi#AgON4%` zGrS-4J6zE4+Uy3`FqY}!1^sQY>C!G`c|J1)utVOw5 zVOj?FHWDZVFUL&$V*fduyp6U2T5!JaLOIn=j)=J0gUDmXk zQ*`p?-Ap~Bq!6=s z?PJ5!vrnv_vamS)xbV4ck9pn)d~%h!m9$b}anZ8n|6ZCUyqm4k*r{pWROuvd^lwtG z*vG|9%?qDP={>V<+vFl45pr!Q-`ejHyGooFWj$#0HdFC#$?eGT?QZohez<$$#07Hf zT9vj>SQz|%efV)ZxAJ)x$GX60RVN?6{KCC=>79i!0=t?`XDqdD7GLJEl7T(>yGY=X zjcgiwFS@Yqp5%6^Z{BvjH}AY{;`rZzD##PBU*2e~vYvm%pY8eGs#zc7`ZrqocRZfs zyGS!5_FF^bG*unJ`N`AHd#`zY|8MG@%3moPjFK$VK8A69dZ#esiucK_ORw5hf3p#3 zIw0g#ayuj~I(+qM<~z@`W%S>O2o^Zn{Z`=6Wb=Xx{5I4{WPa$=3u)m?CD0pBK# z)ugynU2CUono<1WP3B>L%`^M*cx0s$a=X|*Dkz*dv#C`<{OPJw8dHjw ztb6sQR4bCrbJ62enF|_08Rm;K)~ysS?UZDx=)3>3H~#qiKa=eb7FBz+KA*5)&e1tt zE?z!U^XEKYd)!LVSCntobAt_jvqEI`JAYVm3xAn;_oiiCaH91NqnRaz7PnIh1uL7r z!M}R!gSGEqRbC@Vr6W-12sebjgydTs%{IGBx*a^N?J> zZ}lCKD9<9V<6mxk(2i-8abEwbNY0Wg_s{9bBf0V|xz4+tt$f1+f*yQ*EdM|CYdbkgBe?AUX(xAC$3v@Y0C0DE*A4_ zH@()l$y>Sn$CNLpQ>MTC5^~&^QSM~~hm!}J{o{#>@6RzQUCK)_jZmn2dWre%?_F)i z;vy>=ALiJf`*O~# z$&`KXv})s>9RZtILhPiXV-vjMA9G1fRpk;+IemcTN21X~mGd&90@r++wp>5LCb`Xj zO0hZTjGTfyj@8<8me&h4-@Klab6LFns=;olAL^B7t<3*j+-qLear*tzi^uhTeOTt4 zwRT_g@pqAb{Bm5>uSaNYSW;*7_Q*L&_1UpJ7CR?e7%^nct?4dN5_>MmGGG1Pl$zP8 z*Y1^n*|jZzZJu3yZ-2!exf@?47%CdBAMdyS_i6k8qxHi3f1dwqRrlZi*Zzlp+voeJ zIawOr;4D7(;Ofn%ac=r9h6jq>-~XsA+gNh0VQ$OSq8*1$r{6#R^{n)rJ9(QwXdC@K zUvTWl=V@EjO!7P&t*7obdlmVqV$Z?f{q~3Lf4Ki&zwzOj!o9sW`wVXEk(y^L@6kAY zWqDxuy4FPvcgv%KHqBNxo!8m?mNnkh?c%QzeIris!biKeUT-bQSUWXMy6VJ6X&J(^#9qTmR<6MpYwYi$b*m6%hi*Tf?p zQ&?UhzGt?Ae&qc9k{M2tHBvRj4o%Fd0=~aiPhDUs%_{Y|ZT_F9=d;>sxY=TKl$8@^ z>&nlbe$wjUqu}WuUy2`hUm@&2-|pb@`TJHe1s>ft@kNB&map%wTs!{#dd2^DQsU~* zb0g>XZ`>Vue}2Z3v=g_FEGnHjvFP}7we_==&5We_?CjoetG;cxy!`k?Q^U*dvb&Zj z^c#m*aXe>;`^7D^rP0%D>bisX)_HJz3UY`&w?61NpZ=WIGbSGw`b)%^O#FJPerfX? z9SNBN_hnHBWzRoinIM(D?85oLnAt&h_Q^K0@7?ARz#jQgB$B}@Il{<@>6nK4%D^e_ zOS3P2IWkL!zw`f*V2(RyKCbQ&^>_I$uwrSC-@ayL^G22b+%?884y_Hdy`A5;KhS+` zpxDm)PM2nP`*qb_fAg|R?Y{fT)OmB74rm*HUGX>Sn&?8l=))m)eO~Gt!y4|~zPL)V zqvihT_j5OSYs{Dvo~(3!W&g3wGitYsywUS!Fvw6|VNf{F*X)?%tKQ6V4+r04%YPX# zn>k#s{(8N8dT_ib-`0zPlY4}Z9xyU%vUw(v;kD--bHESfeLp8}Im@%AwExi*{b|Z2 zHqw)~ypQ=Y-`4)`d0z(84U>x=l-#}Ns=zx>*jPYfCgY1k_cqTEH%hsAxTZ>6xO_?N z@!D;9k1gD9tyEpkJLgBX<5H2xD|45AkK6z6Qz3r?J9t3##n<~kr`J9I`u@*3{n~Hy z|JDCjw3{>M!6Zg4uD!KB%Bw|E*4g?r@0n71&Zv7~fZJY)7Y8rg?zy`D->dwG{{P?1 zf0*WdSp4K+UVE>P4rlu+OT<=O-g)0avUYm-^sD^cQQNlo-ww*N?{heyBmI2lE(z;P zd~Y{y*=TesKj7}{+^0b;MiR^4Y?AGA{k1w#puSXX&m@Vm(zYg@R_El$GJ3+w=Fypc zX%ZIiPMpmPntwIt`i#;g4&Sq;C)>YLaf}(Qs z*Z-jZ|J8p1@$=$;>i@m0?=e5V|A5uGmvIw!XBGd|XjWL>KmX5{=aTC;vfNJcU6sc1 zGv}W{XIkIQX_ZCX%L1d*mK|NQ`u(Qr4vzm~+cPE>EPX$(jmJzdN4rwx-!ey;t53H^ zyj(kV+2%3{gObSYJ-t6=iao=6{4W?ci#KoYkNc(ATdtxjIHR%Kbas2tnV&wZS^G3@ zHOuX-sAT)_T&O$6-sey9(&SgSf7uk2)h?4Me{kc}6iM@|{8N58-;h|jxkzTmy!!_f zRG;2nQz}=ue3xCR{Oj`4e~LX_C0~~7ERs_>)4nq?v+L4?-eQBzePRwLmug%r*XK*& z`YLnEDr~}^0}WdrxqOdH@@W3T_}($~{LXhw`j`LytiBTMxO$R!t=6(H8=Sv0ty{XR zeCEX<$9WxAy@wXEH;ZH`M@-aTQmj!RV5cV&RyIwhNP16bu}$P&YcN6)M>MK%7L4D zTn8VvMTUo%glThG&wnnKlvU8>bgQTDv8Te{i_`yqSi+p2>|1YRA|<_P@yi<9+?9nf zv3L1qy!w0kw05P&s#D6lUd`%z=IiMHm}AA)$wInmQL?SSR|VD?2He;o5&QJR6r*(y zRxO^htzw=;p~*&Fu|1yMuL495P2f7csb9#l&(JB<@_IJA-wZGBh5LW4lRwMj;5O0v z+Ul64C%f!a-UKA-Gc+TrQr;oz{FB`jLyD@7^TyJ)mdW zsmR|_F_g$c;4@vv`!QC}?tpL_X-ewpa1-q$Y>vzTJw?*R0G5nd-J+Y3#Hw zHg4uAK9WI4Mdgx@`-t()k7K+lQ>kCI*=S+<`y&m$H;UWV@t7a|I&XVS(^5&1R?~m% zS^CpHMiti``gr4mvDq4~!#y{IcFr+QPrG{Y?$w*RPyCMAHO))9{{8i9=|4}@?R&-l zntc9Wbmm`wFvGolvhVXP<)X8`Otn4k{h#sQx&42)fBYi)A^zX)`mXZ)`m(C3$ysTi zR-RaAQ1|(bnfBuyXD_ffTQdvB*_;u%EwY*8-|{)Caw(n%YQj^PW7yZs+kHaNDrE8g z6}I{uvrqmOYDn6DrDB~G^SM^z!bdxJHgWtEzO!G*P5a;EM4ww*4_r-2x@piaI{Et! zc7f8eu<&02>u-g-`Cs6i^>mVEbn?oZfwNZktUJjZX3*e$D(&6bkd1aPYHoYle7|z@ zi+%Ikq{%)PZH^zG{C@j#>D0V~%TE}H$nfxKeK|aX|3@R$&ir{h1Q{s9;l1 zpKscXH5XJ}s+#yx@69odm(I_gP$(*SW#B?1~@t$*;+PO+Rc|az?Mf^4+u@n$P!dI$|W@+rpYV)i1TQSlEHh zwrFuY?}9Be%0JfKb>=(~k=49G{hEaLr|G9#xL>MTn59hj&rP^|OyaD;jfWYz#YKx> zZog{ez_gJ6<>zFE2aR$4j1BBndn^AhUmw5!XL8PF%i|9Vs&5#Tewkr4-()F!^6~@1 ziKpTfBQFOmF!(n20$WgF4%@+P)4uFD`=sA=X-H4f6W70@u51}+)@rwEJ2amOS=s3n zbeL!1l?~1H{HvEeQ)-=e;2_7_N2zOySJpHgymiXc^rvyl*G0$nvw6SUsTOpRiS^gC zum8eaqqkOnOZglf+1oeo-s0T;fbnvXwc>&AAF8ijU&9rpyy{7+ z&1AnI%X`JQSTEc^dq1n9WfNbsz=VS#hxljw)!9*SKYt1T#-eGKX+mtLBbya2uTwl0 z&1(Bo~VM*(~@=4;_d55;`b>0>GZpr*gTXx7lYBi7M3BC76 zY&V^G!_L%`^zqV>DOI_h9F84^&%R%h4SS;b$2w0}$=;*ctxtdE4*7*QuP&Lj%D=+V zT;1iBPLR+NH!b&sv`m8vySbk>*~T6dIFXQeB|Ng*A-*c2QAO|U?M-pQ_KR=-z43nc zZmXM%`+DLw9T!zh5cAFn+gUm_l5w7lTF9YwvwHqt`!)AQg6NX#)mGQ;v`jg8jPv`M z8-{bA&upmgJpS4dl7sHvt*MD+JT5Br&2QuNmMDYW>$=&EKFwrXJAI~8^NO--OO15g z+fL@VFE>0?wMTP)OV{o*g2yh`%iGsY2vHSv7M^Dl#ho$9>+)}rI+Zou9lvKyUG_OY zDtz6`pozUAk21KVG8w|W{@-(Xacsvqo>>w+k+-th7FgYyZKnNnCD&;#r7*R}5n27m zBDu<>VoU5c*N1%-X=r#O`S6nd4?bUC!;Yeo&`C}D+R4qen(W#OK2<&1r0jTnlk(n} z%lD3d?^5ApD2%_CsqFcf*&+VCO%<622QS|JYhr$Y!Oii&dtT$(cQVB|K%Cjskyhn-s79)NEJTlhZtb~=ge7FdNbws-IFi> zbN>5R|Es$BdtSeML3z=kNkMZRo!!&xwC@;498@?k!?5{8eE((ElAUepzLk0lH}Diq z^W##f{#f+7_)^S6@AmW$cUQhWEadim+R5gELp83^Zij43TKu$D`)!^Tu*>M_3iX_u zHggv_zVW^&-*wGoxjA!7+$P=B1m&ye+_&b&yy_OaYNKK;Ke$Xr=CUecfHs+e!h9~|3LkNO~)pmdC&VUr}NRlvMr6L zCY{-2L<{T*2-@hRyXY>LLCS+^N14^9@M?Zud~&1aD)zY5FOT>;&3m+IlhqEv z@;ttScC9h?a{Wx3yX}Oknh!;qWMzm6e`#S7_h~e75eUNUaNA>7{sk8bizi$?t{xdzvH5&sN+%H|>Lu{IU%p zj8mD66V8XYz2)NCzSQWdK_*18{w(qZikjh zQW~D!zokFJn%bu&)wG7eEOujrfik0NvbXP zUs)@+e3*Kxsk8C1=fMZF9%h|hz?WpDSESneBw^jt6i#`DRJ{_5RW5bh$(g?oa{Qd5 z8-3sd+hrG1gK#bp-$HZO>{k9#wc^hDExZ5j+_|sq{m1#G*L9dCPflNueRlERu2mC% ze0&!0MXJ|Z@KB`3FV?3gX6@N~KEm_QE{S*n$s=Zan%Ri@;>ztG2Z$6tE^CM3xWUaTir=AJTGJc*Gd-LGWJ1INQ z%S=6#DzZ9RP&Zz-x^c;!38|KfANp?B@h|`V{+Q28n~h1kPxFTR%IIBK@VIMA=(*N- zR&mZLHBOoC6W{&$zsKcNT$1jKqleCXJyOQw{dKl++Ucxh-+xa(iLl#0sIYjHw|AaR zhH(F9hqtl^l#Uzkc7LgN@KjS_yo|fb&ok-QQlHD1PgIRFEuX3LMdELGoY!5&D=y1} z)bynHJ>U6ovfKMS|1E{(IzRmuG`r3G=DmDgUFgZcixZprKAIX!bx1$d7XIWmb@sWG zhnXkZ3w~(dc<=dL)vC+vs^VQgLoJygdxl*PpG`@0x8O?Ol4xUGai~*TefbWS9In4J zw`$aGD*2)H!%1X8VPR^>rr$h5I!cpw@0j()Y+q!d=Z5Vf%Qh8A&e5=Bah-BFmaXH}`WK;>e3u>)<(l^yIUrH(s9% zTRc@bHuio@^JK-J>pt!Fb+}aa;nXqh*sCv7{wXDFymmibz9wBc@``=8o{)^j&N)`Q zIpR}FU;dx`?Wa)x_2xZt%nbZrtPC$@FW|X0H-~lcY^le(j2GtG3tM}OmT^5ce&*)( z@ruT0gDF{ORa`pH7}fqfShGWN-e%4Gf}+hk-p|+U83Syk>n|wby_ZT_0t#)wVy4n10@mj5KhXh}E3$0T1Z`~5iq;|@0$&cgw@`ZmN z?y_uK8MF4%-%6jw%bF8cHu&qcaxgESb@O7|^jiy<9_h?+o2{D9lyU#&%Aj+pi#+7F zd~dADp8f0M#-K&B`{oCB&eF128=sjWdoJSoDZTfb)MfuQEnX1$cyH}_&+gmxxAT6t zPySq3WbgL7*!ke(jeF-Vo%^!&g$)m9;mkYdO?w;bweNKAZk+%BkLeV9ZYMd$9hNTB zciwpVgwHcJu2eP7Ma{>*U|PZjm!{}SyPdu>*yde{Si#}^r}Ii=sZ6cF@oLmA4I7%dg8n_NM&il3=+U_qn;B|DKL|edGF#mePjPdVyj( zVNa$?=POS4xcE^=F!kk+Fb22Y=!a%zTP)|Cp0sK9`(4qOiY zpUVp?y8P$;5vqInX#HdTy#Jc_?)>?AqoZ*0?sI!fe4b1$jY~*4pECXC6?@N$7f)Q> zFRb|!wZbm&Icx8pRYnspJE|+lA1aIV_Lw_)Q%!@w>q&br^|U+7>^HakcJ=l8^5l)r zH@%b=q)c@t0hs7*%vU`4P@#ZwWt6g7j=D7b5yvyf%{}H_NDcdZ|{xd*SuYFziCqA@!h+HG!L3D5f(e;t1|iA*7F{g$s7N7c`tjP zqf>SK-*N`NT_yTfFP+#-cZS;Rp8BxxDvM^5O#I`IRTHi^fm(3J3>#vD7rd@oSZVDt z@#LCXnMM=I39QQ}Ixe517ZR0jqGD9#zS&kPd5iqg0;WYmtqXO&JwLSCu&8{`>0j+P zA_M(ydpg9%#Vne$Qm7*{;XpZ)T&B+%1qRWHp4UTm1`GN%uAIrUbXj%xUipO)yRWVP z9<%?n)rN;U#z&( zX|Gj!_e%R-trNYXXSbgX%FJ?L)o4yG{xe@!|KriC>mRU-?{9nlElXx+nW5P(ub!)M zS?`+UO?7zo8E0kvk@z^@om=&9o|%Sh=?|1L`t~?UzFqCiobcqSiHB}QeW&u%pgQG` zHobdxW`B>V*MIA_epz0GdqLLLpELcOFO(IxJkK$#7^Fn=(IJ`@G?fn0b%4|G$+#f5m^UnLUm&R+lUJ3l1ip-1Z>* zb&0xM)T1(g_0KOCz9`H*68c{CGpqiSV@-`;>$lXbMue3DTXUeP6js|kgwSyGvUvB>woFCagApJmwtWlvt-@#{%h*1 zrA0GVf4qI|)9MnPTc4`jYB(}}>xuop`o?;zMuPp`|Uq7`mf`vce8U3t$Da6MUJzhZ1Ksqe%AQJdFCH1+aH~K|G?!B zYt6hktDCi?7bPZ@{`V1j7XqK0Nwh`{&u``;sd!%3uG!QSqK^QL)=2 z^Jccq_iyPfUvb_@tHpZCy5)`guFTl}`i|#$W&UQdzi)aCdOYnNB-M{zxj6rU_1vXt zws8kl<}SU`z;R?jkg|EMbY@&1$P~&*iK>x%JxJy&Zvv z{yP!dTC!ctg`|8PjA*vN8f3)TXY`!?<<=-oljc@Dh7W$LPy8c>yWo4wW;m(N* zQ!YO}R(j(8tx$FU_q~?Mx4>G?6+E27GdVeP2`hwp_vvkBG7oGYw?RS%1?4z9P zk51p;9ee+uK>zjT-EzhZa&Jm+XohhK2VsdC0fzayK)&wpr+|0Nf< zuV&)c4fmePDN8c-T78QN50K=_s1>uFyd%BsNL}o0onYgYZyC9gGj#$g7oR_oZsz*> z@IU<}{L+W6Wo?}(a-8j^<9h^3O`OM?>|Mvg3-SaDa z{)2G)|4%pSFieyzVrzbTJcV7qH?8ro)wc^7$4~zE-u?g22buqu*8lJRv2=NTsa`O{ z@$`v_*YXekXS%UO)N{4(?{wcg>i6zi|6I(&axXYo>*eW5%o`>rdDbsE@<{a1)mgJu zCm&cMw>d7LU=5$7tk>Q67R`CpKTq{9nB*z_>JNJwk5avY@$obN#b=s%9$}f*nQe5o z2J8>ZeLt*|NlR6b?b+gUPi8x554V9Ca1?1K0W!IW8PdFm1MtrW_~tjfA!up zdDHNPKlJgB-D>~z8`F9`+LV{BWzO9kxc-fe=vUR*6OzNEzlQCUnp}GPKikI>fswHn z+!h4Y@17SEdsJf9jFo2!9Ns)^HkRa_*goZdWqm_I&J&yX^t`E|`6pgGOqW`Pcq&)ZTPWJQMr%{|TQ z#YYPEf9pExV!#l4Y>8)*>FX=r->U>oEA~eEyWWbM*K)60T>qIrm*;Aeox2|k%HP}T z?%yr!$}M<4~pPIwc*=y}h!Zy5L@=eP$a;x;?WThF-%1Z^#RQ1#< z#AyXg>Iyxkc-zK!(VAZWW?i@6H!m-*`1IstMNx5ads@ToKDkYMYyW#%rf!Ll`1O&y z#Ow5pwO=Z(tzGqJj#Ox*wy)%spnKAF0l&nZcYo-LmA*DD-{Wn=D+8gvDiIC46Zc+7 zoM%g0vj3}US&O}G^7@B zjb0bp_xIMLk22G9IS<^e>bC#=>imbxx9yLA{q>LK^x3ip8V5G7DYo)*U-n`8vsJh9 z)%M80A~o@0Lk|`Rmr4$!lE=AGy8cXyShp(7vkqX}0XvFAg6?-sVc0 zAOD&saY}jW{LB+=OHwEA>Xy-{pICHb$$egr?3R76y`Nv*TqMvVuAN$G#i2U&drD|y zqw&ORt2Wt%C&VmTl)NtA#d){k^<~Fz3-M_DW8W}4QUAvFv-OW}n0EioK6a14G5k|= z_GPuNk%tyOU%$O9bQ$}RZpmLYRkrV5*oeg4^6Q%TF(u1UbK2UBw&RP0{I0wRIivi= zKJ3Mfg$J7^r1E^Q{If>9DP8Vh;#Zx`t$y{}Pd56;o#kxee{cWj+c&=t+=_e+Qb#7o zHyg10%-ofrE~-mePUR}9ew^j)I=Lz>VW+f=UX#738%KDS@VTNZ`&dQ1COO&7tCmcP z^9Wd~bwjkqLsl*GaLsB?p9N*n9z=Uua7$=an4_uT#%{d*>t)-nD5-)^*igFU?sE@=tCu=fuIRM!R985*Bb{B)j^9ct z_nOdzoyV%RH_uD>VbNE=`|dQwoM?u;*+O}@5B!|Y1aY0Lzf6pnmhi}$sr*>Wp(fl&4jr+aur75mc<~y$U+~`?mdV1x_ z1yyns z4uM66Q(jvnHheW}7OU=bw`}>9Ta!P(L-zgB1uAFHo@vi}ajxX8r&a7cujOiIJhR&~ z-fNuK{o#1LO`*e}=URW^Gwafb+c(ZWcbmGBYY|`H?<=l{zMuTBI9b?SRlK0hUqm{m zZ~fW3=VO28sa}4#%DU!N-_j=z_X}+c-Y6xO|Ed?=b4gtxol<4)4qV-uSKz+f zw(!;G+ozs7Gfsa0WyXtdKOY&c>iQ_xV}CkF^L}xp5W`yL2~$ceb5(z9R4k8u;1P90 zM(WcWm(Ni<%szcp+;?A8?s7Pnd+i?KIS$KhHmPuYI>T~1qdd=G`sEc|LP`%9d84j* zGKe%@&36xsWMSR@e)-2cP3qn{g+c1GY#euf`Eql!Aj6GWmA}8~+SOFtUwQS*Sd zg`Kzg1n!-ytt`?_%k=1D{@uOs{PjnVb0ifHYyX|MY2S+_@~IX-8x-H&u(y zljAhHm(R2DxywEA@iM8EDv6#a7hJuexk)29rQ+V4FB=2i&AoLi=kDL5dbz3gb$>YW zT4sJI?%j9(ou0S-rkk-}LQnNYMNRwaXsj~9@kM98``gJ6d#63Ola+EPd};hO(UY_oik4 z?|o7sWf1oI*NvSkRK`Hd<#Yo2X)Ybyos!fM>>1NWbxU#3d^HxU4UhlliLk~@+Ib{v6Y{B(w7vRe0b)AXWpw- z$=c_C9{)0@bJ6ycM=k$vT(oXg`E=v{fpE413#x7`@vpggIkWMbYJ&bvpFf{cB&O?> zowwV1z${U^^_rWIYU8yn{F`oTtUCR1NuJ@OsY3P-il01d_*|k878a3Owb9#l=aW_z zi(lKWCAjX-v`=-gJhgnYxzcTRgBd~93_tw-zkkB|Qc}x*QH!AcwR?I|D<Y2Zn+1qO84x0y?&)Z3+-rrkY&c(1N)A77aV_ z7sZ8&)0(O|GuB#8DtOqE`I}?%g^O|1p4?tN<8S;dzu9wRkF%T>)J<0UD*cLOnq%>u zlIU+&3m>U4nNK`7e@%WWdq6?tfeGKD_3VXZp0mxh>iZZGr15O;t$@M<-@d$jEY!eW z1)3&$_4U`+*TT$u^QOu7_Jw2|U3}>K=k3>ZUVfW!yqHH-{Zrnm)fW3sPhGqEQO||; zB!_J=T^IH)YK}eV%eXC-K_>ZmVud7=PIbf%{)WznPq~h*(f#_uPt@w+?SuMETPCms z3N+nU`?%^}>coFhJGQ@^uv4N)t70V|${`>9i!}Nr}7G_elva-)MR~h&TP* z$@R?hF7Fq%DOW#U|GU;aZDQ<$dmUdlJm$Usb$V(0Lw}2nvsF(Sov1sz-TMDDL8dPb zyv;M%Ol~4rV3B=+Rr|f_+dq{i$#3!cw)@~dxrL5t7aU}_*!?z|cB0_( z>OJPog5C!fE)Vu83FZ$fTW4)xdb@Q)mx@|(^wjmWYI{n>55C_i_T5K*x{e0B**8u3 z_v?3wu)Cn~1xZH;<9X_8CWhkBMN#U5T=)ohox)o1^{+Z^udJ^9Mw zIj=sw*?9i$vG7AR{d1K3&IawPJm>U!jZtEUq3y*pn{?J%O*cHV;Be2qZ~xl%Y@C~$ z+W1~ABcO44Q}i#3l7{OmI`=5uZ8|Q%rdOK3lXuzMB}?`9{iyj<_xah|lV%m&5+_np z!z(!6%elMled#e)C%09;%H>OYc?KnN$f1bu{=k}T}?_Kic?e7IFQSz3M z$}QNV{zWN&%DNM?<@W5l`663B`BUw!|0*mFA&nO%-T10@W8VMSHx?dsUmsupQv%#$ zVtBw9uU`A@)>V(mZ&ryE`kpIY`Rdnp8@UUW0rTcLHAwH7v1hT5Zjur2*{(!o4%mFCV_tZkROaF>qE$1_IiC5kM$dxB^4gBA#lB4UR2n(g?VWyZAE%F^ zywv~bv)qSvM-;C;y!z*not*N^YVOB}8T+4&oVM?Uonh1SiU0CSa}=5#GF6sytSI#1 z^me*+AgWV%VqwW1N12G17F(r{e-1F{Fzwz@n6Q4R?;Gd(P8XJyP7o=^9IQ;s^Nv#D^B|k&^B&YKQo^L+*Z9(+H zlVa^fZ(cdQaaUN;c&;X|v3>WB{VjX+?#-y5F46re+AqRm?MmUt8E3fe1^9rFnuz2wKyuIwfp7Qti9^aiIk+Aj6>!2Tx zi_W?fv8*jYgn3Vmdin2t-t#>DhhU8-7WE4elQ<^LQ!S>y)mZVk?Px=i;k4zFx8$Zg{_DEI+p4E*8^h@fe_k(`3F=GT z0BzxKSTF2fo0(C*B`cXAZmx%y{B-VR!vFzJ_y+8Y)FvmCC*$Gm#y&-*OpQ3+CbceR;S zZf?b!73(f#eec+)zLEQ-L48Z%Z8yfw_(St{G;tM95qxPR%rjS0$MnGVOE2#HTO0cA z?g^F(`<8Fw@ik?$ICpdutqFTom|w6&XxZd9sWqWpX^ZzQTatBbeNfADL;HCf^0c4m zz2(x^w>uiY_m}UVQ&-nNo_u)qMBWV%ISpytS+x(>eP4BQiTvJt)5ENVk1RN*wy5hY z`rFO;{a;#*m()V{s_pHT2YZ@7)~vgITJ~P1LPg=(I*VnScezPE3YFPaAQk)YYu+D` zHGOgiziTDWd%1XP;T*26S8G=*2rAz%^=~z4dYQ83<%7ycYaV!XHk{>LoBp-HKE8vg~!w?+os^D5V#H0Lr`S*_Y1 ze#ydQq)^`FXSz@ z`Tpcv+vN~-o2tTwXDfSz@>_J`zpt5I#N3(AHPO@guBPa@l$5O}w>4DG@o+vKJuTzF z#cO)O4!?G#dl|gpHT|+$J#=xq_r|JA_G^rsgf`S1JA1oJEw}gm#P# zey3p6$4%U8XJ4OH`|j#QN!M$eS-9M-u3h_`^W>>ZS#M$RDkHmVnQYaukAvht3PeWn zd|SGBiuI+%uRJ^-?bJWEXWE0g63wlV@m$klzk2@Tf=j>O-#@>!QO?9LKKa}Es2_`ar)s$# z&u1*Pju2ZSa=zC7hWhDLzC*zek6d@_o_9B1n%7mWF_Kj);M0ZjBC|r1xX@E;YZ+}e zC+td4ZnLeP%p@e5V{ow9PT$u2w#Bpep7VqG>}!85$v9cXdwYKWb@|6?zlCzOei`<= z@PtXIhAs4-!pNL^#5jO8^{&i&!8LIf&m0qZ&qdzP$ab}rzx&2p^O&6W;#*Ha`wPE; zR&zgit)fvEV*hA{syf=zsA&4*SDO!rGo5-`{qT6lmrXyub=QK ztkG=W&Osd#BjmCt-|-byjR%~EQY-!3iZ z6XnLHnMZbfD&2bQyUB&*wJa~^-Yi6uaLf=*gr7xi? zpQY|tUOTs_?~Cs*ho8q@&-&GJ_??sdv3+Y+cU^J|e!5`hh3p!gsS{0(88+?fUHYR> zf5Kf?X>ViJsTFhNHwDfTJv%*E_P*xrn2NlIk=HM;TrfxCg6C|Rk0vFz_dh7L7u%=l zcl`HM*~=we-tr2Ly;JtL#BK@_^S-;@vEgCJ8l$i{cf)hLn|@C?Smos@JKy}ct?<-}H~`*Ihla4R2mUEI(b;9+0NGgEfA(`CDviIcy+ z{W$$*>gH$a{(43dL8rf;_||uO_iZt5Z%2<`(l5AUU%1ZCoIR^yLWO9j^2sTh^BpU< zpAdQ|DiAmC$5hpvH`OL?zwK8lWc&?zf4yRl+#AsLzys6euWu}CJJr~vczI8nW(bQ| zL7`HnzQX)>uf!F-7?sK|aWr*nEZOjSTDE2RN1yaNFJkFW2Y|M$!Di1*7bMx{$tAD5T?_AxftoH75H zh>^t63Bs8LQuAw!3(hPHIH<{8llS_sedQ;v^L4))rq{pa3U61xAj|O0Ppm~IZNK;( zX^DxSmhM_}as8~2)MHa7-gWC_vsGa=oO{f9%Sg1eep9s6>WbiMPqT!mYfqe zCq6oSsQm4ZT;8rDYZX&Z{YdLN_^v?R{E39rtnYzq)4EUnU)>X4ILrLro9PRsrvx{B zs4ab`YrdCz-%P>YW6m$n+_<#zAnX3b1-nj2@!xTJAUpqbjFCa=$0oTqPM7s-V@_N? z(Wk=8{nGsJp)Yy&A6q^-A>uJJhxw>>^~5bNFa6uJx_^FLa&{E^PycBV34$9ni`3HI zUGlv3deIq=m*-Su{Q_^?EL$#c%0u5^?xwBRj!$2=-tJme*%P6bm~E3ggW7KG(SE<+ zwC3p@Pfth{ZxMRa=J`1|&f&$4th9^efATju&c9^L%>Uqw)r509S%Teu7|L2cl5@JO z=sk(SS=_^Ttudoy<@rf7zn?STUCd*p5IrT?MSSWG-P#Aeu9N;<`?;@pzT|4d1@FEe zSh#C{z=~tfIx_mcvsgD-%DL~X`grSO#gX&%|D@t;zefGgZ-{nQ*R9Q=GBIO{hNjnKDy#nOR$Ev4q#TWrtU9nZGwusz+*x&XdT4Z>rDix}sXX z_e-dBaD>-Wu1iOjv!oT@Ojh{za`N(v(ziTf&(;1Z2sT;wI6BKR?ZM79>)v?uMVINm znKbRB_S}T~Zh23g=3e^h^>LHx;dHmkyEK3syc)fscn zJ-_pYf9a3lz%!`~=8ums968kx^dmDPATrN9`RpSN`x+zt+vhbGEMKtZ^yl(rw(h^n z+GMkjc}|PJZjy7Uu2JJqTkqdg-_8p&JasB8y~_S&-LzbBpm{5AVOf5qrR|v=9z~0c z&Yal&^ipJL*3VkcBiCw81%5`pny@+e^Gm7hKP&o|7w+!k{q*l;`+uhY5C1>pymzVG*KX2&P^S)jFb<@%#TSdb@$0Qi<2*}vEo^kryOB{xYk#8;>oBvw-rYDQA=%-9A#z5~Z|N+(hPWgV8OY zW6EhJYnnvfI2T`e=p=nYRr6@!=Ns$(yfyj7yGyPk`BwjyPqEP%$(408SvGD{WpyvS z)4#KF^{LQqeNl;TFO<3B1uWmUuCzRDR`_OC&^eKUh)b1hiasTdEWF;SH#CAbHfG$e zlF!_7{+y1=y4>k!KAva4;oY$~!@!tH=7a4$j~9V$785ppdbQ`n{KGY^dHeyV-L_e& za1$Zk$GIva!giy;ZMnh@ zFJMp8=4Yz&o)yikta+?xW~vhRd`JJ8%~u!ebm4cw&S4(5_X>1 z_UcYSaqVBeD@SY0-qveNeY`R)bf;)8aC`%RBsuQh3 z#cBqQDSv-K@>Uvy&4bq}{Bh^c7tC65rA?qgVwTdBl;cs>lTZEfyBU`FyW`=@%mqL9 zPRP8n+hxnP#eCBp+Go#xo!QcLc%#l%!*ie0{U0ymnj%#9>Q2;6%k+X>9ES0(7RleQ za^DlkRXY4xF;(ST+n&>r*H-zh;%v=%FY)FP9@MOy_IKU9e|{5?&|`Bkul^RYWF zfipR`ypGI|ie+?OHf2$o{)CC;+4*O;y}A=6Y_aXq?PnF+U-Q;geNO&!-2OlR$HVLY z3)d8X7tQl$Y)Is>e&~3(aA;MR+;nOeR+i8_00%>8}m2b8{W)W*ATOKhQzX#2%-F! z9om;KOl-cEc~xi0-GX!J*DFi{do$LRPJhsmy)KDwO{>qPuM-nnj_p|PlkoTUv6kew zbr&aicK)2jUM3yxd2HjS_84YfQ!dFTE2O0CHT<_ue6TU9=$vh(Ywyk?r;0P77H=hU zW`2)(G4p(SfZ!vGYi?6_wzIVSkKNI5KlWqyk;=_VR|MUf?*35EzL%1ItVzj2FgPvq ziFHcO?;k1h${Kezg)4ONavYA>6e5$U^SYz*LAl#x#jcjxWCQ1GCzj>7Y+G)SHr>5m z>BpOU@+|)5bA|oY{-57^{`So;2hZ%i=TNBUYVePHruKW2yL;Aku0Ila>2_Ye;OcWe zK1V$j^$wmXc%}K>(|yiWnMn0_k{zEimdk9~A$G8`$LHcjtx_qIy|*j1kEs~1Z+O%l zU}xLA=Np&io#1C%&K>{zU~=e>`>NLGT;rB&eK=&z+#a@Rb!uqh%KVf6)PA4l$O|#A zyqM_KdgcGuHD-dmv-+-i{eNvFU>6)IW{@Z!k`U>r`?Tmo*YSD&xj)%ex4h60_EMd@ z<-pAq;gu0z_kNk~YrXP7^!_M^g_)c}FSHD@cHD32-F?*iZcB@D-+%6V{_ZhPj<`lwg4fnYs zaYW#h@}FPat;gmHG@o43wL%gU1`+PDagxsVd5Fd*#~N`y}GRMHf?%H++4SPPe0yK$n`99vwFGuL(}_LcKqdm z=blL2<&aBxrJl5tvFn$|{V08|JuA%4J$GxJpqBFRK*W}rHm4%@NA+i?zvu{K7WWD* zVY#%;Mbb_9nhGTdFE|KonpzF&F;#^&cvT^3u=_H)-{?xaaw z4@?g0U5&0_NmZG3#@7GVRG-NluM9;keg7MJzgAow+UL%{_DT1teN%Sa3GO#;+Y}i0 zHnM3=^%m*$UZtKT`&0W_$<=hGFN8ysU@4HbOtPsnr^UR&Z&E);zp)V zWBgSvp45v}s!4m&`qR&HTSoS-;0GSx9IxApTCDr_bo=fFM?_z2S}s=jY?9m}_nYsf z?A2==kE@1;+|!Z`wt79|ESs+MDu-VujCkraelMzOugFs?IxBr#Bu8?Gc1Fot+w8M@ zU(9;)I(1Xl)FWr#t?n_d%|B$5XgW3Wr>A5pCQgf-qx1LQ-Rhc;H^mp+@_Vi}<>qJc^WK#ogL`Io zJ=s(!Rlnj&y5{EaA5sRMto9#5pVfB$*n8Q0zSYvbZuflWa^BvW`*w5hQ??6EsRpmF zY{?aSvVQgI)4>y-WaYdlE-r2kx{`V8Q0ZswtC6X)OLVzI=X9TGJmuDE@@mSm8Aj&$ z`n>r`(mtYF&l>6Oc5P$2;}Pg{%VycdmD0ac_MS8BD7^i6%YMQ0Ytm*5wJ0~vm+#i$ z@mQghGE zeck_1V7DP}g_GY);{{)4{O$a8W10CH0d*rewUymYx92A7-ku-e{=xA6#~WAgZt6R- zdUwFLU8_Z#(oJ<3^;$i(jFvuFAbV|X=6&AnwX*4KJ^ugWZFkBXygGaKZAEK~h|)Qe zbKbDYzHSH%s!*@5mg0Y~%zc!KW?PecsnR`~G5i)H%Tt`+~{?-Qxc4^S3KMGJ0|9)gu$$ z2v)ANYo|)g`kwrX$!hr#`>C%;PD6UpBg?Qa8QwWTuOD3FnJkjT$uM2fC3an|+o~@j zs&ihNUMyx{mOi?hNxoevk^NMXQg4OTom2DU`X>v!i@O;s6*FCPd@eb~ETt{xlyl*( zlh*4F+Vyp(8Z0t7aO81I&B-z~-`6*)I*&0nJGT^mo4R7x9-9ZRUJBp2dyiN0P-OC> zO>=^`bpOt{aBt3&!wG&DS!REe)xWmFV_W#%TgMh2OZb-C>996<9t+!NjdPz)EM{Y~ zoG$Twaly=Op3y6Q@M^rBxxt&^-OJ1AmVKGp(JwE3mw%LT>_pF_A5-?tDrpoc{CwAR zMcpj^rRT3L`MsoN$zR>qWqY2AzL2o;HMzcN`~TkLlm8aqo~Y%mtWovx%cJ%m9miic z#`Q}w@c;Pr@oqH9SaY7GqItK-GqKQppLaiG zDB7$lmAEKVYES5Fr^L6xy=uY9eW&CvUw9@h{7JMjM1I+$VujvmH&?Bho3o?fic%ae zkD~ecRg%AdEDxLfR&&*}ge!Y}Ze<;NrOEK&OD;JXPW#3qm67pBzGUN@6;n(SH+9CIdZ8wKG?T@3xB1T{`@PC;98g>N z?A4P$`zt;sow%m6J7mKuw+UZWzCHW<=DUsE+8#S^Bd@gq8gq8||MFO}#OHWk{xmE9 z*h1j|*~NXvtB*?iUE*GFXT9U9jq#7HC*xh;0yS)>OycsC37%+n zGd#@rwB>@n8I=|eCR-*}izUSSzi?*T7X1JC=Y#*>ElscZGB?tKU8dzR$DaK*7mwS7 z-ng`KGf!2)@`}}U+f*Im3>05X$~@ZW-?#gn~;)ee|#k; z{w}QWyHar~?T}klaOdsUB7vf%GVe8)hcEx?ay;WyVPU0Z$?38wvD=p_SS8%Ons&1P zvi;n-?@zDgQadXUx#4kro{9TUqYS&73%piIlq+nuoFtxn=60OPq z3Re+ZttcWpZKB=#oT74_Qdd^Z2^-E9{`>H+_RDFZ{K?{5*K*F!n!WRi3e!7l>6Zn^ z#5eCVecIPpowuTYf?ew+8_~w&VTYBD39+l~u$Wr?_t)v;JPqtMpalg#N*^uN-+umB zvPn!s&jG*vYb17PZo05SZ|b%1&;wWV!UIl73fRs5wY??L^_TO5C68E)3<`d2eCzT1 z<74+F6Gb$8lik#6mZd8PWoa(ZIFenwIZIu7rQX%W)pJ)}`+IllGEWXWD`ySmO;ee# zRD9mNT;yVufHp!LvZZDR2mTdUewXwkXz$J(82hZ#}FE};1zw*oJ zLn7|(GnH2AcrRRhHJ;7-_382}CJ9$8f6dtZ<}9cA7q(f_><*&0Yi*T$41*O8irX3= zFY3*(e42T-F~NiT$|oM1mBCHbJRA!O*A`r@dG^~p%hxV+&*}G;*BX15_?s#)9Hv?BEr);h{VzSwYr2b7f7;hK$5mHE7mA-b$sonP zkjdYHRaD02ziqE`MVPY8v|5?@VVhSAd+@3ihMjaav9!8BwTEN2O<@#oK-q#o6TTa< z7v*FR-7HKw`nXuo#D{&e%+0HZ&rY_qyY@&p zyrlBQ;oKfQzb93{(!-a(f7CW{Mf1IDrMeA^&s|x$@nN=A?x-Vfqf zVi$QcdD|a({B;4i&$7S9U}EU2c@kp558qrWc@!Lyc!OWh$w9LG-?=RByoHy(czxRZ zY*KN_G(oN%Y11z+*eJL3--nOPo0fSTJ>~J^<^Sim^H%C*Ke@8N`@yb_2X1R_{%(0+ z^F;aaSVtbVjY4z0!gzMP*?uLv`f%_qrMRmF`l{M*yC=r`UAc7d{aLX!D?8RswayN< znzmaZpH)0?Zs-2HJX+el8*dcsIGYi3>*>iOJ1uJG@yt!l3vzWnm(pQ$A@ExKrQ<$l zc?F6uYc6Rt`MROURCbL)$Z5fFwuz4%7TeZnhsEBzbp9H4 zQ@DSE%7mGJlJEP>*}C@p@fz>B>B-W12CQAnF6CKoyIMWZw%h%!_$AJ~yE=!9qLl)g}letvjpkJAYmB8KK>m zd>+oP3YVRjD)BRJ)1FwVoC9}cdTw&Gb%dUX_{h8Y$mbIpg?EixG&U*~EDnBe%3|;$ z>hBffjm7^Cnaw>sty0r*{pYhY55?FVc&4}~0EwpT{2a#b~vGWm$5tjMwaf-=WoKR;;<(JuC5Y*2D^rdw)MX+-q_3 zio%xOC4UVsOv|y!`E{ds={MiPD?R^~%$@pe|Etw^ma{(%-@vZ@*|JJt;`oQSde!s>^Z2i~U9G9gw&Js<1b>q*;$4i1tsyPw`x2awAjdWC2 zy7ZsN`uGZwHR-a`j)`BDSorAcySKCRsxK;Z{{wohnNfzTO)q>@wrP&97al3w0KMsMJ6DEvG$u+w?*q`|ui0?I-bU z((f8KH!kK{U%qf=(DFmK?;M*tmq(_$Z+g3U#U>l+#s=n)mEx{%lTDA*yM6JU`!Mr@ z$c3w%=W<<`QW(-P>qX40N9GUpx5cu}b;z8vko!f_hn)U! zRiz9C$JeWGPMi~eP1W*e*ZUvyjSelDcI(TUn1`7!uIF4U5wZHJSjhVF=d8EaW?jBD zJ2Ad_-^uSbimUJW{gFI>y6qrKWT)ijw5ls_{4dBV-K{^c*=2j`+w{j%m-3_+@UHh- z|Eny%-i66?e?wclh5tR@xtnipLpq8@BiP?XrqOzcPLF*px0fB}$Ru z-Wgdo;b}`;ubCgRf4y;f>j5dvd(vla^W28 z1-B|vpk)hjq&%~(W_Tp2@u@Wlh>ZcSIJejn(k!RcDQ><%D{k(ImJen7jI6cZf z-YlGId^m%<&))Xs(fI0r`VXeh|8q;z;a`a!>y3i++Oj=n!o7A8SEaXCZ2Guod&y6R z^#bCvyr1yw&z~AM_WWyOrEfPq$_?j+U0jEP-6S6_b-yIJe9HQ|#@x@f z3tt_&{AA*C|M_V@UADx$SN^+yS}N=PS^Ey}Rk-%)PLcD`1wRg)zH?*>qq6sJdB)cq z({#grExLH{*o!U3EzhPc_;^6~wNk~>aEISd><`0h4?m{g?T?-}oDxVpVD4UZLtd0I z%+@Zyvg^{@`gP1&4Sht^3Fh9(_bkC2%zlCzF7T30$`Wnj4 z&V73)W_8xm3v1^{O6C7tmi>3>go$PyT(=E8u7{@nsM&PGqWEgU3(ey}_GNwzFRo`5 zFJI!$c>8L|-xFU~XB9Y#^l?1@Wc)pMg`$$JnEO`EXMd-%J*eHPc9pley!czZ-uwsG z*VPHvf4=$t!R5p0%O(3)CvrruY>2hB>XuNGoccs7^F-S_ANH7g4VtZU_CIcW*QmJ6 z;Y!$iG5>1+%olHu&%f1Yvt)5F*MA)jhNHP5348B$t}S}@xwCx5mi=%3${l9rKeYI% zNchyuIxd;aNv!#$Jy+L_y7wX0QS)421(cbWBZ2k)EsJ=NlH z-^E%_E#^Z;FZOZsrO)k)n*Z*Gb<3UmlR_p&Ph+e1*8eGX?#T;{sJ}D!>wet0t3bNa z;#Xv2=F!3}%3Cyizs^6|y}NyJQQob{(oa<%KUF@se(}v3#kgsS<@@d%F>qaZ)ICM9 z_)X9{w*x&j$2OX6ja~EM6<@}L+TWXH^*aPPI?6t|F!;$Fb6fFxO?vD~;{XfaniV`V z-_MQvE!2O#c^~L_jz3Yn>x27ddu5wAPKr0Pi}TuJc_s0#HM59L@Tb>Rn|bsS@{f2< z)-%YpUpvR<&4H_t%X9x;|N6DG``2>Gedi7w*rpih$eU}r``%HVApYfyCPvY+Q&(v$ z{Vpj|z4-Q#jvRp*T?hDlR_)W$);GJO{ITg7$5|%rbFy4pcAYB`;AJ)3Qzm=s{*3y| zWrcUdcSP{9$HblMJ?zHyc-!XJMV;^C|B3#IuK!-&_W$btclQt6ulji3O47#v_%nCz zE163+2DB-s+b@3`a#N!7a!A7;-P(r{1?o|T0qRP%?GvTkgP)4u_gUa#_jJuPsl>*3 zsc3;)#fBwUx-QiV)G3CV=%>Hk66BGwA$+~i>PwSfHKkry(j&Viel7dlzQuOg5|3wF z|6`Z>e{Gd?>7K7|O}0-^Q{ol5CgUx=Be~GNmf>l{k2#@FCRffjHC*uQ!?tT7PUe+1 z3;HyYmfgDi!aP51&6f17$M?&Gvd_89J261!?J2pM82c!xt*UaX)3xtdhfZNUn=o^s zWVV3d)F1Evo=QF%pxE`Yqg6Pk`1u|isY?Nj=1IYG?r{d5SQqMVv7x1TbK6$U)G(c* zzACMKMeOgF{`h+DzzWU$j)`4*-E-r2tar2Gn-KfnQ0B|5P50~Eb zbYpF0qcDp))(r;^K4{5KZQm z?%CFC%+8;=zsE|voA>1vmbg}VYuTr<-9C(Y1vi#nZ>YU};@jh2eE<9Hf9-$#|Nm9{ z19yK3?)+lIzDvV^`P<6xUTHf#xWDC=EoP5B7RN6AcZ$HOZ@xxT(%L7V3*O&8XYS*e*|Yt&oZV8ql#?mt z@AI1TxyS#%k+0VIGvDZDYlXMF5%b~_Hm-X+=GoWBeX?JiFWOS~{oUOY7D)!Zxv9(g zJg<2*E!*TUUH<2m|G^6De&%)cI2~u1zNq}`8ta!fOy-YI1Q>4-=4|OxNOqiA_^@67 zV}kr@YaPD1p?9ba-P6x`{YHU|GFVbkzRy}<#Yq3K~g;)RH$rh<|B^Ix{ zaKSK2VNq$!`+Iv?S*N+xWX9~N`RP%|-VPT7}54~Ke7#ID`D zgHQeW|LXg{W#Vf-YU=6hoiezwiNUP-!>5#vnnd;I|0ft9yze%3%fB0a-OX>(|8{)M zTKA<>WB)aQT{{kneL44ilh*ljdGg8)g-zcD4)(atx$B| zV`$75vK>Iq+7eXdzOE#}Fa+yfceulL5-H68GB z-@JF`tocI8tl#{~3Z@pUnEu#^A#TC%11jg3#Jl`gIPN!;(5+Luk=v@R%_pu^;}^uO-U`_APNi!&dcm}FD4_wo804t<;d7XES; z-^O^jCAs*8+0LSve1FD}Ds2;O5^*D8Hy-ml_zo)|sTeYfW^tURr;d3uD;^2bsI z@iNmU`~8#KXYums+v@pw558}>nZd@ev|QoO{MjsF0w)b>sYlccPmsHock3=WxANk}XSUv&^*(Yu%a0r=4d>;1e)Aju%6o{ zj{n!Ly+@{p9~U_JqYX7Io@J*K(+LjRm&Ebw6bjRTJh@2 zRu2hr=gY>bOy$$(^19Z4y8j^QOGuBtmRa`wLmVvUL<%mST=q&fbUB;Qouf0hEZd`a zaPHgNWl4v>p5>iqU)^@zpY8bV{Ckg{J$`%g&+eoCef6F9e}Au&_y7Ml{fEB&AH{Xs zBl+aMZfW)lWq#?OnYR8=Of%Dwvo*r5r>#uOW@N0| zFj1}RKzqybYcWONmL5|Vn6_n!+p=p%F6PeUNaX)sq*rlwc7{pTg66JQo>Nu(&tFfw zFLv1|^xW~EXJx-7?vsq&VsIiMNbgC4lj|!}hT5`~$y@JTki35AS>=hP6*r~-_ivAu z(+)VNvSe#U=AKm%uf9f?itbt%#_yub_;7AXL8gsWo@u15tmL_*jrr3)rL4XAx#IjL zeNmsq8mp#lE9+0#uwaA7qP3=HRvPU2HN`~tro&93*~ZD!40djssE}u6e1U3 zmv;02__W&oNdJAC<8MDU_v~7H_TIA3aZ}EJzPY^d{FV&;*nkskF9idBh-EHbu|;5w z(Y(|(9}bs{Fg>0BWAE!dE3D$9x4lfMuy`m?Yd!nRk-3Y?!@{kyUcEdaV3-;8 zlKoKs;EHTeQ%UOV*yKrpC+}BYy)C;Hn+4c4D^6TyXeiEtt-8(C=ouf{F=i}mKjcjKH zI+Z`4a=P|zt?ZPlB^MuPxEgV_6qw~dbK_()d3-teWs8Bis1RG8URiZ@SNHvUeP2Eu zeWG!|B#q~M{2mKdhP+ue!jYl7*nJq+6qUT&y1B;h>!c*>YhF&j8S{C~<_cLQ%YQG3 zzA#bS>E@}k1}nE){|^nnYrZmDu-o-vtHeZJ=Syb$-%b7dQ~$2TtJ&-K9sHPgRDJ%Q z1Iy>vHkrrIZ(@+o`}pl$_Mge$|J(a)f5>NEw|SVel=%sTre%k;2UQ*fi{B(EW_rJg1nFN1+81hbRt5TTa;-5QAgqOyr9@rT% z?UXdvYM+FLNak(t{bxvio-QR}G@0#E@CToB4?-NecLYCH))A;URDOQVRx3Nt&3ear zx$~H&ZJAYlfPISXqa*KrM}Knr5&v7E{OU}zH$3i!T^4CmA3k0%d7^Du%i~8Y9vg=4 zW6TP8_wm71?+Y{D)wC3ut#P|*5j^YIUem7Ir(3OF| zU=H0257?&1g-DWZ zJ_`5UcvUr^H$HJIOB&DBX{H;)!04qQI{&+Nvf57NaeC-~`AW}I|z*f!%! zHG}!g%?V!Hx#DJ?nq-*c3BpvkDELVIoQ^fSCwPG?ijGyS%eXPIVLy?@!hl~KDz9t2K$*S7CW67QT3EiDnh z{bVBBqKzAlZ1iI*I-%Cd$M()$O*?IaE(44I;+vZo^WNtbmhWj!x>qE_JpWznYM}<9 zf5Kf`bJjm;&NZ*^?yb~il3IP#POMy2xN(Z7DO;*@&t5|%1J~b8Tpf!o4<;Q`+E)Xb z@d;*-`%!w}@z)3IPp?kjU;Sv!epa{K%88O^vy!D=rMR!#e(vnG2aEcgmPSc_viyCO zC*ZbbtHy@g8&z7HrZX^kMHoot2qtcR`{n2VR3Qy zSBcGBac$GJQco2wPR!apagX|sfKu0)m%s0xow+8)cITnX%l+N_?e5jsNFH{-GmmHH z?XOS%9M{?Pdbbnns~%}9zq?;MPE|$kVw9ShyGOcqn&Q^^)9=5!SC)3~o92&$SJyu% zuYX+r(Y)?y{DJfPt9tpDD;zMhE*Pb$Xm5CWVRqBJ{nw3@&OcZcl=<44xA^7!sV6L0_GErZ zmrdNXh<5B?_c_PeW^~!TDEsD=Kr}d zLCdlA#qlqyY0|C9Ef=S)XZ?LnUikcp%@5QU{mQaSp1I~w`<@%8dyOi%x2^QfaB4Sv zJ&yZ4`WHW8a=bQbLrvFhf zbJ4mgyZDP)N3QnQO16saTkc-$%?wI+ky(P`?!&wEb#=zCJX+ zYBkxF`AfF)x65nZUc7ZpMu_}r4YAuNH=Lc3UN4>|G548+KjY7S^V!BlKD(Ib@}CkE zkv*i?mwo0$`}XIC7CKh#M~eDOZ}A&nZr-LLh0Tx4fE`X@QEF#)1h)txEF$u2J=NxSqWGK-uB` zY0LNBVpkHLsF9x)0v>`G2nL@A`kg=JQw01)s&PXur|RO$qqtwUt@> zP<7HO@%}}xP6)5vWZW0CYWng{9Y*m}+YCLvHC&w$Fmv&yOrwY=pMPr}`*3*oXEh528-$(ptDF1Jd+X6d%qlNsxU`6@-D3+$dhwO;Y= z_rB)n1k;_{CG+y{?~{HSSNDnOe4L%M@!$9N_PI-0#XO&t|8DoEw{OMjUOjpr<9efq z#f0hfUlysiRjbdq2|Qrh|L2SO$NT^8|55v+`XT-Q@A%{X@9TQ9e_KqQ#=UkjPl5fn zn8qG;$CI0{)E=B#^5E3Ll_t*XjpE##&hf2cRyJ0?$8+su`}?FdtA5{G=wCI zl;+Iv$1mP*xE-65a@ua%OZ8H>pGEh>C)zxJy47;?qZh007B4&Y?y<-6k6RX5IHf4Y zgw5}|!?Evc?p_TQhpubCn;5t4)?Tn?;-_;_Witi7vqlxqXOW88Bmc!R%lOnb&)chw zXS*D;dU{?{p`@1U%G)Py4>Qj$dNOwkqn}ReLfc~(j^$i_GVwt8vPH*q?B6e}*rV*0 zd3sW;Xm{^-mv_s5JzhJ*Q;u)Fc$S128?iZPxkxOUe~zL(mS*K?OJ{Qk%$ z^LNR?IhHQEk+XQOP7v64L3h@*)4!M8E|DqSV=nS}PxU?#KjX&jGnTeQpWCq zk!L2D&ep5@zVCzVIo*{GvWH4i*3L;?diAAvWEzVhgT?L0*;_nME6?qG7xMK(=E?m% zx2%uudHO@Kuwu&g8}baM&X)6k%zG5`BaM4Xfq%1WNri~uze`nK{MUkdmn?php7Pw` z>r|^q;}_rl94+4S>&w%O-)GJ9+j8driJ##p_nkwe-D1Oek1dB-1B!P0O!e$GO_twu zAnpJAJb%Xjx3_Pu`Ls9Oa#5Z5gc-v26YhW7*RH$j&s`3#tL&F_HZRyz)*t*iW%6k2}H36PCe#JWdu6sV;YtQ{Ijq+ClxA!;Y2kUfo z1-XU3FMIm(W|;9bE0qK1IP)GS{3u&mW?z-8^etLJ^zrP+NAACP<)MAIiD9%1SIR(ftph}PSXu*55_*4wyOZP7cv`E0@en`i4= z?f-qRZ?pfqH~&NY-G4_p|5?A7#PTlf?zA)S6!dzgDm|GTa{M5(?$+%O8;{Ljm#O#E z_wa_5KRjbHpDY!gCH=YLu;VR`OWmHwmZ)DAek3g;YO?3Om$v8}*;5ynF&f#0Z+XDn zEL|NV_-u)?)txMXu>R$bH%>b^al`bDkJpAh(BV*uSsvogzWiIT!ke$t-twAFIimQ# zdeMy9j*o`kk&kZW3w*xly*?%Kjf=_t0%hlKOUy*J9_W7@w|G~J{g*F-!i;t&uYdY& zw_44ZuVtFrs~1;T|5(aR+aKGMYi^_;^K*Z~ z?8)wWj_sGsH*b)%`QnlcDbv1ZrkR!i#N;*pI`j> z%!BuD)KdN4t`63iaKGV%+erq`hYV+U(^kJ1eZqRKv{L74MCznNzdXaX)-22T^6VL( zy!}4^iaE1m1ixF~4cq)dXSc_Hg_79@Rlq2toYdvia`)>s&n=aK9h z%6Qe#i}eK~ma+$z z4epz1|4Fz1C;0E={6CC!W#6aou&g^W_oNU5bILpJvk$&55`LTik!@4|*LCldd~-?` z>sGo|u&!12Ih-5&YWnxcw!8%w*Xro4b#VPSSD^L4#r^MNnS>u7yYx{@?%mSN3a5Yt znxF6edS*Sx;O=bWgvXv%Me`Qq`%8pHu9{l$=J}Ktvi@t5zj6MI+k5o>98vYy1#=iS zUweJ?ni6ZrD_J{TBbTz8lka1n2u?3E^YRTl_Tkm1)sJT0y1MhR^{RC1b#uGrcCM}# zNZEdZM`3ex$Uc^}CWq}SQf_`N6XC6y?8fx%iF5kzd3#nDDVWy=mx=r}_53y=dzb0y zb&p$Cp4-jHdE;C1%-5O82gH0Ir{2D~{J`9^li4=Kd6-@EJGSIi;_^GJ{F@JNExY?^ zrmOw5WBM7{M}65!eyK1jzfP4mI(mPp%vZZi?vwGI-mgn)mo+zCD1BqG?7>N0mA{PN zm$={Mx!{o;RudH|cdcM{@1(qL2Cn)=uRAYJY18#c$dG-qxn#@KFg{QD+|E;+eQ#&% z_qVS#z4UMY&9r~__d4G)Wer>1_rvzOyKv7@g+Kfc|4+Ko8N9>j?K=MxhM)bG&J|~x zpVuAY`qoR`cFwoGdyM;Z7c?4O&DM;JmMp2Apyl2X_3QOnM={CtC9(&T4U-QaJg~E8 zJ!{SU`hSws4xc$AIg??+^X2>V@9(wzTOGZ{T<_P3D@AWRCVS$t2FsB* zyRYt;$zs2mf6D79`KmHkUCR$jdn3#kjsz`!u~h%{{_67Y|GYs1a#b-*A7ppDvwPG& z{r08TCOiUXzKQHMO^)#8$6v%cY?yTGxR>yOC4zYoAWTlD6m~P zye2O*Im~ux%B+i<%o#Eh7N6I1`tYV{`rgG`Hv23vJ9(v&>3C#i=JLDx%dbWMzO`<9 z-PRAjS~Wb&|G#_pE@er~nXL^swkH0_FVU3qIkxqoyVmK*n;tX8MHa42?)#+>_~o$& z=iO`e`;Wfe_EA2~?Le8!Wy8L8TFyx)=YHdz8-9knzdNwhoh$auk2ya=Z&*)P>^y&} z;?r-opgFJ3ES-AM`$vy-^vYN7a%Y7~X)ih&cxlVMOauP_4*tuEjQMR-q$GDd7hy`d zX%<&4*X+#uIw3-_Vu8$@NeMX>*R*#pp6%VFkshACJfr)1@z05cEYH~Ps!3-VX6}48 z<<}&pPxifQu3mT&Q#eQBy^pAP$&!>$=e9>4Zn(a5jY!AYwI*AVwYKzL$|(Nx?A%qE z?P`}aiqE%niX~l_QB_>EKiWho$$n*}s+u$}_ojKy}sK(}lMds~663=F?++aBN#&s9^6EORXbi z@?sXbayu9C$viLEl2Cc*sKzEQF;1<3G=a(|N~=#KhdCZB`c?aZRb7*F!R9^M=Py@& znsl(l%16Uuf@QmIS&x6++)rJfPPEkDti8^+NfyVEiHvz}Dz$`!jjnK=TqX) zx|D1B6XkXjp^Bpsv$o2v^}Z$ZH1$y8zB8Q73${NI6n_!Qb~4CDi{s`J(-v39TgUFH zpFC{D@%7Qs;+U8?7P)DL^Mvp9E_-+E`}+8LRi$&@ah0q`cKWlvopeRa`nmmPb04Pp zN|~X{Re!a1T+67E^E%S2m-{GTW~6^=LiDSJXO;-c-OsbF{q?C`-u|CR|MkQB_w^X&U>j@3yINg*`sQtW0;GD=m zKK{NsPX?FJGm(XzOWs|m3)}Z~`@uvDW2x5|1mk{+iA_-U7@S1KJoF+DSaR8_;H%CYS{i? zfhF_)Z(8%(LUZ~1U+V9L8bkAQH-&z$GAJxA% zd(8gyE$8Zl?4|5q^logJWUH(ZaINs#1hwFQA2-`A`^-~VTYLQNxnEX%9=j!92;R%^ zE1JAJaIWX-^c|NT%)I`-_2A(}y{2V*&V35Yz4B>^l)L@nxsSX~uf3pqTemssKijYT zWiy=$Qw8`kKh9rub;)hEd8KE4*YsrTGaa>c*!X-aUr147c;vIUPv)=FkV>g5J8d~9 z(r%;st&%JI%vSoV=Up$DwJM6S$MI7Ek4?cXr}t@3&v4J#9IL;p^pz~L@g;}nr@Y_s z7#!u4NMF9We)7Xb-$ZS*a$kyUdVe$Y@SPjJ)2&^8U;P}s*T(wpnhbu!G$oH(md>XA zp+{JIUfywgpz^eNyTDV8H+6Sj)>rPDP-rDDd^A`tJiy%e+NUSX*(F=Hr*FG|d)DuF zf37FIl<=>cF8NhQ>d%&S4>I{ym%qC<^TVV1B|RSh{4b_y%q_Y1-F3;!T0Uh5qw7T*lMe=~{owx58AzH8f|vMeF_ z?MKw+AHSR@tr<7}UvIe22PvM+Oz-HMpR4Amd0y(SJ81ZMU2##`J~qRRlm5v6_|obi z+$X2d{D6JcW~LQ4kNo=ek)`4Nv9A&gKi0*x$=~|BOKlqORHOInrxr-;@7U5?)-mH*(VOhgbvtzf@8n#Z`eR!|tnsop9eC^(Ue;V%(>gmog zPisFW)%kl}MnGZ0@3^Y}m*%%O-QxFobl||s$rsL~0M+Ki7?&@LvPZO8S_;Ft2SIE1w=Uq?b zUO)J&_>Jn-3G-bqFHq+5z1sUdb4k?2fQvN}cY+K2c}#`65}2EdnV+BL*fsZ1!HzG% zA9%$jIXo^2sW0hNshDST;n!nPmQR1a7|i1Ro8c@gd)jDeyO@vqgun3*tCuk+C6(sx zm{F~~rgRnCYd)FfkKON1KDRCG&4#3zuRQcP!fsVu zGMixei*Osu1)I-^ad>!z%wYSou}j7 z&T7f1r^4)-vzgqF+`l%x)p6yao$33R%3Zp;Z1%Oy3uj-_o8FRBFUGh$#d7)=l?~@Q z7l_VUH@BvLlYg4@)OUGH_`luI%4RGqS>)AxiB)dTzS?!IZr(g5^E9ti?d7la`@7+> zxVyA4|30mnH(!rdmFe%?B7671@wQkwUK5*0$Dd4U%vyG(Hy;)>s{7Adu=EVO+%nro zKW?6{5Bj?M#ruQj*`E|mdouCBF~7PcCDNM?w6=Kfn|E@~Qm3zxC46NUJOY-p=RBUd zt822@L!Jq1Ld!}Le=5qYe}Ckw1jCPWG5_YjbzRDJ!)Ja>S=TzwB<{U>Y>m~cFUKB@ z-MhHR|2k9M?3%puUt|mn-7-Y#zFs{a{9=hvXEvwu+so(UQkm0ZjTfx9J$+7PPqpRz zw%(U-W*$hpI{%qT>ejX`6`xp5w|sm1R#BilJAJ`dBg-SJte@KI*90_1%%8jG|18ma z+l}r%-CHt4LgVJ+BJn*Ihik7L+L)j?`B5C#x=^Lkxvn)L_g236eq(!Vd{*+-io^YT zWtUb?N!lXoeKwuj?E2%&-TEKw|7ri1s(XF&{(;L+CB@k}5Jo-%ovup_^= zaHmM%sS5@3jW=u+*!le=XX)~FwRw@2vr^P| zj+xf`&NCW*VxE;CdZ$v5{ruwlOxu$mKQMKf!@V->Sg!zH?!|C@a^ddL^t+$6Mf#>1 zp6(RwSmd`RW9FZi>1`XNYQAwRSkCXgarNQaE0OMd_vSP5Pkj2qZ|B|1byqc4h28pG z`;w2XYI)GgJNKn^wf3*(?e>}#ImK`P`{*NM1bIUb45ckhfmz)!hZA_UE7a zdarO7JFq%kzi?}e@8`P>dxbCaup36KGJ1VC>#xI?)LHL;SG%@PtGy@fel^?9n(J9< zNY~0|74O8)g-Po!czEx2#m8ke??YFgdg12TcW1fN z{j)`xt?PJ?`_7wu?X1=JpMQ&T!(Im*S6%(EXK#3yA-h#{&&)TErkT3siAI_xu3IXz z{O145YyO{pTKs4A{;&22-~T&X&phAur)tcNR2^;yrM*v-pOm!CjkOKw_LOga_s!2l z)PXPZjyiw)2q%M@qM`F>*>_}0^JeEo;m1v&$+cbB*5X8?{c46DcPU@KM+^;>$~xq zLpR!6nJHcKe3%KRNV3&;8H+UAsVfEUCjZZP{y}8f(h6}!&TkcgB2SAtVwx13)Hx?i z%2wUoV^@)OKw-1uu^UyBbtccBq^jMa6(auOjFTu!;$QDe<{j)F%sdm8+zpS+*18&2 zxzhT|if^0kE{2|D|Kw)1?#Qg9t(P0?u3unyIM*@U>H^zzo=rzi?#nehdcZx|h)uZB zKW?v!(LV|HOE+aMm%qRF=-sz%89PgZQ

          it&ZB1{y3%8lu0pc=Jr}9|AN&AGg){i z)o+%a{4e+Gy0voRfiHG5IN$C+$iKh;_-pGzTQ-J$%GVz@+>gKhuH;$XdJ%i0Z*zUA+p*7A1Go$XgI_iQtkID8;y z%CqNNE5d(?ZGV?tZnxUE_R@<$|N7(cN5dXzt-ow>W18TeeZMXL{p7m+S9-|1ob<^%?(to3xJ1JNCY`edD>`rv%>=*CamuVV1GU?)4sn z>uKGMD|I^-r|%Y8@;p;VH)6^B%Mx98_mm&Y&fa^HP3ofB<~3T3YPJRMw#xii(7z%e z=Htg}o7$_xpVwAg{`~TM+0Auwi;S4gT_n$9VlTj?FCWF_rfheKo%LQe~grwr8Hno8{(u^8J}rcAul;0dwo) zR}cQ|+9fheG;~3N!k&r~r_Xw=l1YupxW|+sxzh-=~e%kcD zAT{}zS@W}!tdy5-FIl$cGc5}+@p)**m~};Z_F<)CsZB4R?s(6XlXjHb_j`)Cih|(F zhYCF!R`X1Ddo6Hzuyn2Pf^RI9UWeQ~Km0Y?^XS8(_ZM$W`g$gQF28zQ*i$c!_7wdV z_2TfFZGuf5lFqUJ+m}9_H~-C58L8%XngM_GA4hQ+}wzXjQvZlOaM^8Vooc-k1^78lhA6Ar`%hWFG zG^?%t_3_nYf4_^D`D2r(rS>uzi1f>>oU%Dsh(%&k={!xdscmy#H*a3`bp5GY*Df}! zeI7bRNqh6{!uzQQw%=QR$8L8@jh03BTgmyi^)o)#bug@$TzUWT-RJ*)@6-Lyy5BU( zc0RkUaW=CTQ`x<;eNkN39GW{X{xCWxCGwqx(PY<=ZQGwRZ!hb5^xL{-&u@!YdymTY zResxRzUf8nlwS{n)_+@)F@5vt%BiW-+8oy3dM$hTTekQ^w=J0+mjbl@oc&+B{7Z8e zTii7>HUZ{COZvZm5}fNZ<+Dlltb%3HlRoi0o+8vb<+O{<#rW^WUy&;(J}!Q1{C~0ivZ6z`cbu6y)o2>?fmet3I!>Q-e_i9GnpYRu z->GkKvn>3)wn_4p&60T<9mj6H&g^MVym4&virE$mg15;nzdW_VB>U;g;8TJhZLAFZ zXK&cK<#3DKX3nm*ha2ubI{eVI?#K8465{@PAE%q!&%9&4s&K)_cYcR>0}FbL+&iW? zUR?H}iMzf_=KM{ErH2=!`tR*N)~&h3_d{;feCKO|E$4zbAF*Uy+o)rB&gg!YDl5n2 zcgYhMCraJ8k)h`2uyL!U#Md~7q-d@^XaAa>nIyE0_pe!9M5{d4_9Fim`sOyuUXNHB zO)bqb4DM;qjQd`hHSxAzTJXH{kCoG+1rN;K=B~@X;(FiD=HJFwEY2M=_2IkE&Kbn! zx=i$bIfwr`ru$+!oeK(IXq3w?jm&xYNpgFH<^$_Z^NhdW`QDbRYA059!DzyDfj(AuC?T*Kaqkt7O~ioVdK|d&R!H^&cOlp4p)EI{EYMi59mD8_LVww}|X+ zV?TI8vQL9c*ZbDLTI1I_tKw}!Rda=;->tU9;skcFIdZ)p76 zoS1_Cnhkx3Q@1hcLyR{o1adDzq?`k)gyvSCdQb_c^IgD{m-)Q z?QG{gEN68M|9PgjJ&`$Gd~0H=&X3(!{MHJpuiN43#9LFa$fB^y=Hr$B-ZktuHmACO zZM`&i%Ke8Nk2tQsUNW6I<+1R>rAsq*{S94`y8QgH)GvlzSC{*U>`49Y%XYZvPIH}S zbi}7f%LCCryE$IyNNzb{#*opWcblQ|Gw*ZX<3CFJ+&NoQzy@|BpViUF7&W$7+X8 z@tU~(|Fo|EPiOExap%Yl1IJGf6t^yn{_T2OGG)`I8(!>D+fFtd6fz0wxS4(6bN06V zr_V4v-Tn99+mCneAAbCG?heq9Y5Tg#o!88-bGZ4l?%*hPZZQtfv}#+%61iyk_P3Gt zuY@0N(Z70R@6;3G;VMQ#v8xkaKmHdUUmLo4&z-OJZ5^B6p11qYW8!f0nw+}GyWe$R zf*)Ut)=%CuX~ujxF+u2d57CqpM2N+_4)O^jc-g-=U=*5Tzji} zcgMq<$8N9M_VCC0+ZUV4mA}^CHPiZBeJ;uEVol%mb-9eu`=URtHeQop{crP|t0C`p zHE%Rsv^46!>m0t9_iNn0%U+mu;n&gW>b~zMmw%7{`(`Hh(@Mss&2yRF-4wYndA6wX zv=1-doU2upOjvL@owwQDCz z9f|Wl8rxrQI(?z%@S(GLzrDWS6V}gKe0-9>_{+xEzn8=xVh?#0s;V%XVRmWW<40Ay zoVV;dmvFRj@4>epZSTp%KYn}Gzwqt*_Kl5RitHyO&pDZtu0OcM_x&c-{{_>8lr;8!`x6faVIeP_ z%!@N4%Qgs$NV3hnXEi0^~Bg2zEtt%4F9I$>cb+6&~j>q?etS!DLuh^#IvDxaH()6S>%ahZ8D}LBs zJvpl6&vPTaZeQK$Kd-Fe4c)y*KZv1g*1O5Yjz9ivt2a%2?d|EK!R)&(?Cm9|(`_q) z=I{HJ!rq;bGdEHpe_v&=ko8T~0`;=kuFeC|w+^lNxXngYA)}8`B3WLbW^>B5woA$i zQJvn&$JACx_nxd{zVT8sO=IPW)rb0}8S2{C9am+zzcl+Ozw05hr<2=6S(9sI{$+pr zry8+6)tmp&u^IpWum2wPyD;v1VEFf#(5V5DVx<#Ry;XCHeQ)ewdT20X!{IG4TXL#a zJl-(->XL^XFC5pe@)mFu6|iZVpi#=fAr;fq&f>AO_`U7>&G)PKUjOwxA?;a3jq>xD z-_x!nz2E%IGW-93`}A{XCMqAdc2D!0c)a;A^P$q&-hIB7a&I@y^FF005*Z`WC1t25 zv2^RHs`~WJ3%{nly_)8zx2}9$zFPUqZ_`Tr8ZJFk73NvK-v8x`9dCcgt4mE-e$BS( zLxZ0Fx>rSwA@%7zQ;lD3f0-jIvZHTX468$JNzIe4>t^xUf|WB|=lrv`w&iY=)4f{% z+A#ER+qZV-Ul0GSzkD@iO|wIlURqeU za^;~ZIp(iki+0@<6Ek1i*TE5+n^lI9s+^f_6YIxPRG##Gs z)uV9l-M+VLp2Jtj zs{XzEYsDfHVXlhJReI<3)v9)@Hc#U)XA*i*{e`hG#@-XbrN zZJCE<%Qv~b4r+>AAHJo0!+f3z8sbHnclu75r~S#`N?F7aHZk!=Pj>q9kG;Hy55+y- z8g4%M&YpeyRF!6)wB^w!nR2J#5*g=5y_>jA(QI_B&^i-pPd0TS^S4 zOKNIZo-R&Wp8Gaz;=#7O*bragIS! z&1$PHGLE~W)^`@Th#k58^N9K5u#%v#v#%0*R$N!U&ho|j!owwtXP@mg(Vw!cL)~PK z-!HW*{0HXmInlJfbTRAF-$EXme{a}ZC=~OluuQq+zdPFK%_^VdSeCVjY zKl3}x-Qd|a)>k4{dVO>4w?B5A?Q@Xl)aA>;Yvr6eR&{&-`e)(wZ))>yzIh{bs@Q(x!6zrbe0{d; zrS$X_7J91=JKVD3Tf6`F>{qDyL4)!~2Vcc756})`cbKjRZVyEL8CT4e&>1Sp_`=a{SE9I+y zvoAEABf~2l^ZVDm-|s_btt$yM-_y3YVOiatnx9R1dHGw`N42IZ`u-RHUAg&XtWlZV z_BYcH%{LFWcD?p+rIug5Y1qnLdZ{eil&W`6_R)UqpcOpzc;L4w_r<4A)-B*x7m|>T zx~@6x{f%SuzDqOgi@jdU@IZIhE4K!wu6=QOlTNmZX`D-%AnSMN#^r7whpxT1|LO9% z8J^hDKX28NPcOE&>`Cktd3jZ32j7()2Q2r5@$cXc;@K3vX{Y6#FUzJ>8*-jJd^mY( z`Wvq^EIx%Z_W$4e{=(+;^TtIM*5{ATyqmYZVYOPRI2rDTDN&s zghk_{ADO0??`6%e`?LI?P3_+&(!XB)D%Ovm^Yqmjp;_jiSASt;W{_FC#7x{#=itnf zotbY7q`v>t;`?mFaG|`XMo03+@-2~5>PlxUV2#UI>+(N7Qe{r@&SyIk_CLs7+WvUc zIlq*Rd3(++`*(szZ26ur`%Cksgr1%=u$;YU|rOFdS!=8L+)qa3!gS=(y9r}cHB z`m;TU|L)ye#!^XPMrpQprPkG3m*({SDc@bQ+u`}m%PVWS83YzaX3TKnX}P&ZJ7@L7 z{nj6Q8)W*cJQn6Wj!%i&@y77mvuQWvt^TvQF5Y}Vn=Qd-!}M9FZ&>JBp4|St^ZDzX zdmj7z4?NkiMs1(vEE%;%NsT3@*?)h%+I7<8>PK36y84ISdCNY!<|Y@-IMQ@!Ly1CX z$!cZ+$F*-4OU*f%EA092o@EMOzP>fxyKmou?%S)q(p4D*Y`SN&w5=(V`a!G$KU0{XO@`0JRfDA z^X0}V|82RJ@1ov57GVic(>qts$#(o`mzdg}&kI-@^3?98y|y*dER&49GV!XMv1y3XvGnE7^+Z^B)Z*{!gruL|X&hE?cd~TL5rLf0g^~B>r#(5Z zesqf7g)M4U$$#s1=<(#vn?L{J)2l~KK5yc`+EN(Jl2f^HOK94UTiI`#E=&n1{%861 zctYx_GMPptt$2CP%iRC%?ebOveZ8k3^ zxphJxG};axd|3DQ->0M6LiR?d6cSem_ZVk<-}=a>>Tu!5u6D`18qKWD2d+i@e70pK z_dZ1_sT9Zb7mud;Zg5-8k?B&pgW<$etz$1W=blw~m;dBI55twhoA=T=#eeO#h~C<_ zuV}{E)kO)}#}l@0o@@MWt+r*vGvgIXxotrU3i%(cYvLat!~DF|)A5ZT zw@Tek+Y!<}EBXEQPYJtO&2Q??o~Xmo!g=4!yWeB?sx5!4O7HQk+;(iw-R$Jc#m%vc z`yCgne!OXY`1Vzk+qYyC-wFk<*|==MOt-T;q<;Zgbq^Y&Ho=4!kzJaNt~eY<6cIh&|Ok12D*-te>gr$#MfDVO5a ziD?j*m+qX<>#(YE{pn`{yH4~>Tmjtdqb#1loV!mAt zX4z-7^xp`1cy{(OJO1zf?)9@{weABWm)}`7$2iPAr)e=?PxyM!q&nu*8{f&|ef93% z#dEmq=ZIPR9$VomU1S@vi6hTlL1t+wogH4KY2F`d^%&6kz>&NFYf4sPjxw_oDnll-o35aP{8$7=*6mOUqkX@ z=FAP|6WC;ZUtIjTuJwXz7k^AC<>%gPAN}mC>Qe!s6O2U;fzuKm*jTXX+be0;=eTmMh!*C9UpAI2QMue@V?7D#^So5^=U zzAaK|hkL|aw!}5(LTyjwxXymL|Lca8TkoCny=$=UjgtMLd5_-|q+D70ZCU;I@8z%8 zgc$mCE4<&G#PRlu;@8g;ejIL}@_Bc8ERRIg0kxBB-tGur^n_o|X2I906{q%}?ds`% zd^PV>(%qHDf7CQS=KheImb7@~EFtqlyA7o;EkAQR;>G_&fx_(KDFOW-h0>3+S+!UQ zt=Ml|nX&MD_w~i!Z`nz*Zf{z@eB#N!F>Wc39bPINPB*Du_Fa2FmurDTI`dq|_8sZT zicH>&JDOR}nn*`4aeSE&t-!Tlxt#F7X`KA|zC!O6Odc6|pI&nJ0k3^>7N;@$ryWxN zqm!0>-7uA7Vs4w!;hB6Iz8lNe&UKp4KKYDBy{ht}C98|ob8Nho7V53ANIdXl-qPpE zlIN<_kBJ>w^Uav8QPi*5c6-Jg0~JZ03g(&b*-XD_if2@{G(CH@gSXN?MeWL5E`3Jn zQj4t8muuEtlnmx7dXm6kV88KL{E_2}zE=5s_+kE7cz~2Ly|6|7<*7`P0YH zN1eYfJK)>Z)8X%?Y;}LNVYl&m+Xe=a!1nH?-Wp%(8`C8|&HB;$z4x-VnVLnH+}($= zw{FW^D?h(IeX`!(WwSk(_bomfl67nQZ5uNMmmRbBo(|(TQxf^M<|WJF%oU8Do7XW` zdAF_$STjS;wkpD0Pp>b8Gi+{rjKI25uf4kV4I!(G-5+J-U3Fi$VBxcrzD%3VCEX7u zesnpJcYNZdRjHoK8Wz3Nys(MAuf*x0$=3rKd`nc4MiA!IzNvD4DE8TedLdN=c ze-#oYGxXUmxbxONCE0v}oOj0W0}JkUeY#aAZSU~qyy5hg8w-{<@R(Yt+x&U>^62va zI(Osq&zA1zd=Opc>+~}Js(&!g-p~1N934jcC4%nydad-3^xFuQ;LOM zd@6MXcPBp4TscYh|Am!`E4;g+e`f!3c`bcgTI`^0WkFD|lJqaF;sQphcHAoese&27<|Bk|8G z?z7qlE^AnjaPsTUPvI&r^S`}+WAe&a>jKZG<`o}JmKhmloUs2IYr4ob;zH?)%g0;X zlHOgHZeO-9^xC@oEHBG_7XqE`#_(R#(7Sf3g#Fq=QzgF{fy$v58YaD%A^9L<&5PRe zITL+?(JWE`Lh0YSVC8`2mv-bY2%CR&;_Pkn+j&bR7AW7m6`en`SE8#f%G9~INUh>Vzp{s64XZ_|vawzUrKmQ2Okqo`#KEBGccNJr&In6;p8jI%so##j zQ@&f@4Q!H5J$dZrsnnXB2-FIlgo=CZYAZF6&v@d_r9C41%DQe3V(AKe_yu(6kK zbrUzUG0UCR*Y$7nxEW2kae7L}^9(nlB67F5JKIMAo1s>rnm1&{wB^GAxg}#JXjg(qo6? zpB1`UYguHRxQ=pNYjfQ)(tRo{>#+I(R@+(=>?tBrY(X=#?qB8)m;uhb~G``vi(a9ll2=yRzp>uVeWJ==dR>XMd%0_Uh8v%z%;}kSyi)tc4=ugA z#wM`Yyy4n0yT?7pEev}eh4k>tA17#mwI_GjDCy-6iv>#+2<# zH2=Ox-_a~m)ZFYevw`{M3y--Gp-pmczRV2D4KI0dEcfh(4qjF3$O$qQVKTy-co&(! zyLpMj{-NW;*K_i0pRBi)juLqByL!J<{lowNmcP{hxAp!ECWij31O>5R{+Z`2w**?U zo!=NWaqYR-+<1F;hAn=FqXX2A&5rSVowogJ`OkaP6sDY&IbHQ()6LkMuV1{Jy!D%?ytzRrlbDhuU2Ys>$c%SaU;sx#d>*@<7?hH1?$i!MKwUej$~zPuE^z|F9$ zMdm1j9)DK(flrce@^>0nC^&qTZ_e4g(94mrF!Iu=8~d!dUgx}3xO!&ct~V!N8(1|K zUavOsIe7T$$=YB4qs#8TXZ$cNcKdYwe;J!Uzc_lNl;4wga>s>(zidQGzQ^P$Z>*_FZ8{{_NVq~Dpu^PXKs)hhmy?`a;-n^RV-nW|%~zCM0y zY~yWiCNFvYosWz8{FS(kSDoZZFkxue#v;16F=CRhctH^AD(33Ri?xqxZosn63@yN zJTa-ij(m9Xcy;N_jjQ(v7Ogq={+eot_3FPTf8JmD)&CvK-Ja_vMfUG_)BCJtH?nnG zUVZXKz)3p&7H^-ynq*E{r3u9s#IFVL%G^wdn`gD8GIr8C#iiyJst<3TbkZ(fKDYXL ze6~@|fk{l$i&^)ZEjFK3b15Zj?m-pB{=L;Eqc5#Et=H3^FSGvt0=E0-&gKpwb?iJ1UF}dPUc-BEztFD=LauiCZ|_!0&D)tl+JX$AiMLd;jTBF)py<|#$RPh zc3yE-V}e5C@ngp?F=ZQFVYtb#gSst&`V`8WE1>91xyB*VAvh`X4U)*Ri21<$$7ZIAql`d&OX~o{?nn&2KT4UOPp-h z^!DYVVD-l8nKSc?bk?(!FpaM3)czF~IdQU9mw zH%`wc()e_6U+2qQ#DIb%S51)|B>Ao{*KC5`w*X$JCD|7!& zl~-vf*dg`aVJS=A09sld9wTb+$h43N|_RDtY!_*_f;)42`vt z5=O3H>h>CHt>tDZx|zCj>EHG3+jjr5$Xoq5-mE42c(hb*E8A(mscf~i>$#e|jU!I| z-L?Avip@I~?Ps)4Nc|6_XZurSAL2wJZ3)Ij(e|Nz zZ+B9~RVzuRDK-rnfggOLX7X(?G~=P%rx7;;C9*$o?4M3 zEVfkzL8<+^yc;^Vb-l`cd{h1Wya~)}cj*{8ZaV5}koNAf_)qqhnPTTO{X<{LMKH56 z_jqTYKXtQCE$_J0|KOCU2+8?6f^RlH7ieAf;M%*l-+tA7`>(s_-E@XMt=EritMAw! zs}PoFrp!NOPJxhVTEbNkUE6g>l9-}Syq$T$Jt1I~!Qro8{^?0Itn0WqGv&W=V`i$w zukiiTbs9D;HsD|P(njmnsjZtEPT$svPMZT#|Y5}H>izo>k`?7iVpCu^bj zjzS5G{mu(4mS!J6t#j{5L;K>s6-LhUb2w|yaev?ASO0$9&zM=aHM)5h?R>nLH)`&k zkGkQOm%rV-EPnaT|Lk3R_9(qf;N+V1{r$R+Q7m&8AG^c7u95xnVgq;)q)_ zLr;`~nbWFI)lAnc4^5Ba_o)Kj$nVw6|Xtuaev#q0JLGH^}qE2>sKW1NCA$`L3+^@RVKW6tBS}NYk z=IOJHxhBnY@Dh7i$TC$6mCK7imH)Io5)x{fa5L@p35S03(`}i?H`xpLzw&(K{i}Tc zck!3-`seZs|KGL$JN-q<^Ce033B|ue8@lXn%n@q4v^nl?hn}@nPsY1FuOyB{PASlP`_bW7DlJ@ohr9!_Q|JZD9OB}iMIq-V_cEdFX z%N)1I8R>lU(_LP3?19Ha2TO;ymt*zAc0Mm^WG=PJYx~I2p|yUcjgIk@?T>Y1@6EZm z`YpHB-b%}}8u6E=<*&Xh%dt7ZbJ|`*wr{pZGtvYl_@p*;+a6#v3Tw_;dgbg}-MuwG zC(XOEG*^7pfA=Ex%YC;uA8356TJU`HEAQV^cp|kI+9oj0a)~Itqb!lq7jJp4}H;*?h@Y7xWX%u34l`sjUr+GW2xh4ZEnIN$ zVRom|@(pomAv^*3FRHV{S+~3sf8e(JT4q^Tv@_?aDLHJhi{cE_3@Sc;y&k_ca$(f_ z2{Nw(TT>&Q-!+|z?kqVLpu*u?(+$OTvl#Qs^B+9ABh;g2x|m@;`?}NVGf!GtTl>HN9{Snof0a$d z-M{*ZQ7@|h*K*d&OpX-co3ZluCgZOkU$xZj_-Cov%s$?; z|3Pom7Ogiqr_RpVd1bquiBJ*a?<3_2Dr=kl_KN+uVt>r=grl(W4e5P<@>UtfCaqz* zDdJGL?_Cr(|AECC^?UNtBqXyP7L>fJJm&so;~#6C0D*H?+!Yw@*UBrW8XMeu)VfjO zq@PKWqVW_f6XSfr)5qp-*OC;vf7xmMHrM!Svn*@FYleD;fqJhTqK-CJ|8_qUy|E;V z(K-HMAFs>KWv5QnSWTR>?p4o?X?FGBRBQju-?L=@-}(P~&gJWMC|qWfEsSY;@HX%S z*XAl6-Wwa=HOZ+gn!naF*Zi-@46Zw~9pCPnVRiD2i~0|#hep2M$)B5gO`Ga@oJzcaX z=Y-Ffbx*T|?;P9vV6)7_ZF~1BPG)zTJn`$b0y#I99)D>Ervt)%JbGU)oY;5XxZ#ob ziPub<&GUU0%+5D*)!OOu`|QFV1JyQ#iOdEC&+MI7HHgf4e?91pHUFurP8Jo4vn558 z7oAPKs;_b0cXL!!{oiEHJ2T#0-FNQCv|lAHZmZ?%e(XCPWFyJ_^!4U+|C7vjqZ@?V z<_mu~yRUb$xerg@fikw~nfEWcZc7dAnfG(cS5>|gZ#T9H{VB_HN~PVey=Q*lpSqFl zY)`+}gS9hEOI@H6(x!T-(_{I%3 zuPOh_%gdHOXa8EE?G+gJ&y|mVY{kDdw3O^=a?!KnKCUTNnOrFo8V}FcVoeubK zmYHeweS3ZX&g{+XYRMHR52~H4l_dEAY|qF?<_oAvSk5ezom^5`>iqv&{g?Nb z#IJ{!?A_~m%1HD2I`)hCW$ejf3c{~4^plUTaCvtisy;mJoT1s(tj&LU?>w0xp})vx za_qwC43}R_P2azf&EVJ)^IshtX{$NUCx$DUzWE9~o2B}- z^~*U0A;_zCnnpf{Cze=NlCS^m~O3dtVD{p;3#OwAbC# zFFZej{_t#l_dq9b*QT#8LtjO;1V2r`&Ax<{ck&+QnbLo+8m-zqw`uWW5ufv%%b(3Q zvy*5_({j&Qd3M_DU>$?BW!g-}Ykw_ZKg}%UsZn%`A!)(PD@;}&O3L1D*}*Ghr17HD z`9|8RuO~UKto2>q;v-Tl|3+>=2!QVRX2rR@js58EWYS*!g3!;KBwzOH(wgb2%dSMtG0Zj*TM+)6B?&CY?y3y zYS({R+tlSU_9qoquX%4infJr1ui0-3vM*i!&7ki5;7GGUgY>&Ef{oh@rT5=AKAsXZ z_pkcv;xDHwLtftg5S(hcwIOnu<)V^9Y$+Cg*VWV0=ik+5tl(b%o2Oy>mq&>|oNwD+ z`S&5q>HNOL00v%BuJl8TuddZup4qbEHcOwY#>u+X2P6}&EtTru*gt8%yuDMxrhm_F zTK(B1eqeF~%aj?KOEz75_wliNscgz8CPD*u6O$;Usjv;)KaD?-m#$|`y(T%ay7nPQe1h|qgfdI^80i}e z3GZLXZ&bZ2M6CD7?hH$nnZ3^CGI2)pPE4Am@j3p^##*l(*^P{|8afv0&(IYx@VqYW zDbUXB-tcr@-v)LMeWsFZKS%jDr$W419C_cBcyNh`H3!a?3X)ISHmiNb-IuusY`9I& ztp2z2PUi89Z4tH4?Jx~BDx?3s)6ci!(kbpFzTuZqsUj0?SU&!6LcdYWBd zrPK1yM9Y*-ULKd&`g}E2Z>~Glo5=o6CP0$8edXaN*&iA2NJ(TJPiuO;@IzmdV#Jh- z7xj;uZvRp|TQ+YtU)JGctKWID$tig}e37?)hR)|w;j=%#{7in&k}kth`QX&=-Y=~a z#XX+#|FwT*@$I5|f>RFv4>LXHb@54}{YPIMV4LoED&zlM&aVs?orJlfou59~5HX=C z;dT3i&P(6Q)-7OB5&E(}^r)`J^T*}hcMgYeOV!Tikyf~-?Ad2{bRSo)PjrF#3&s?; zP2IZ8xvpX_)}O9F)i!f=qnvG3Mzd$(FERDP4`(OmGv)MEX;!s z#gQrY{HOIDc~m%`&geOHZq31MUu@TKdiqy9oU38U&UIfzD!nvw`la`g?a!v_#zou@ z+Ap-GOMG^@YwDES6J6>)wSBvLLgCyFj!A{PjY4I`U z7kBCY!rrnR?y=<$_WTH!f%9LXlNdr60)3-2Rgm@0}vL z;rrImx z#cbOd@+zjW*Kmx={jZ%EpDuRT(lps@X>pNH!8 zz|KA5wwBEfYymF}UuREhN=w!LcjP1ETlJedBF@J+`){x-P3B+w=pd79fbU(Mi@8h- zHRQ@%Cx>2?Kf_S8he7qR#l#z)oR2~B*17P9cPygBIA7ul59cH_~zgCD0bG#+fQRJyq9@fS;{ zxiWjw)6c(tZJ0MD{iW!;f|!}Rdeu4-WO{;My=H#CFMDq9`xAxFtOOQp=+%%lKGD^{ ze}0qEp#?HCa{o4Z8Z1|8{C#ozuJwnX{8_(3)=<;5H#M4hBES5c3t3yaVuGC~zI_z` zZco+MCco1~ZoFDs&$7>!S-s)rjw{=QLSKPtwl3nI`0%Rk@Bip3&@}$buOA+sd-tkx^6qml-x}FIU{aS` zWTZXY*tGJ%k0`M(KOE{+n8oLDYTZ`pILl#_tT;J#%ARER_nr;!-n_ds|JT9ezITm& zU(~o}dbxgn?Jvu__wEI`al|CNiEz0lGEZBtV)Eg#o&|r-gmJ3Q6g9h6!EO`4HC4>c zwP#IRrd!$OMQ`73lUq1__fe6_3P#zF&%XUX>9@t^i&tfP+1_~T-h5rY^?AN`{K47x z3PSzL#T~SB{*~>{{=KL?jBWL!FW(o}A8pXx{MhU~GhD6k`Qcni#~+<}M>kw3E8qEjW;U0_t<-nX zDt5<~?`&3^%M-JZ$12FLpSv-i$wFX7wL;v1MDY_$&O7g=e~f(0wp`sWTlektw5{{f z)`x|rP1!Hmt^4)((-?{6^BPqZuTK2Wn|xDp+b)r;?x3Biv#+zRJ}dKdK`ndE6$V$; z#RYj;Tb1ShdQ`RvF^e`^Rk|Jbx$>9c-*i4t2T!Z&m+Kua>{zJA^lpWE)P?Bs8{Z$Y z)vfT8dbx^Y=H{uQDNClRN}l==)ZqK3@&DXi6W3kwEng~b?Wt3AXkqh$y)Jdx8A68| z1e0%D#f9~WCwwtK718@wt>ucR!-BZRg-P#TJzJ-LYu`$X6qdawZJtLv{i&$+I{&ry zaSls9WBDB!6n?ymvm0@40u~ns#=D`>%ie`@FYpaXhdv|MB%N7uD_mC-2(1v-9is zqz@VMZ=UB>aIEv+q*kGEL#v>nib4Ials?=3tsC1D)K2KyoK#X4xyLNiX3<%w`~HpG z8~dt{k0y(k)bB05-t}(%_Ak5k#H{D9H!6I3Trlv8drnjH-{1okSxhE%>W5wDAD5~t zdwllNvrlK1X(de!iDKngvCX`}?yG-*WlM4TH%$cr@6_9c(V`dr{j>X-rm3Lft0MaR z`I|32I-7WpPU5}HuGqoA-r|+@Flc6G*9u*EhQ)_&F*tV|l!#tsU2yg8@;B42-Q19L zK;66Xh3|uJUt0~2{dai(&-2tL*;Ffgop-_8%6%SQbh3T3^vm=|5fuyP+==z)U+#Kh zZhnT{yj78!1`_?HQDyq%9FctzI~0*V#}H=tvut6V(g>%1?G9* zBj#`Q{UcTOgzpb)E}QH2b>5Sn|Mb5v;*e%kVHoYiG1IglCqm}cp<=%G)*fei-Uih@ zFgT?skea#qiS;Jt^|KbftyMX+_2`N}Y;nSuws5QR{mU@n;#ObN_vxtlTW6N%zbck} zko7#sZ+rVi|CQy7;sX%#8j zCwcZo9TxeL#$l&u?$*})iT^>{)y&c=zbgL+XgT~KIbzepJ!|^xg^y}_8XRk~Rd#xN`PP}}IrmhvmtHz~&G^7G7qLox zizmna>*Y(R^nT=vVOlQ4A=sLH+wp{KhfvW3tH1r*`XuHGiCme#T5I)k&uLfX_U`{) z`|E7{-{UV=KacnQ_FQ%E|BKa^-~3%;YVmsTc6PY`i=W># z@A_<3xO~U|_2)HlN47cCpKaYzq+u+TTzH6EqAOPZUWsb}&05TVhodEo@_j*az&53_!T zg#~?eTOD|cX?MPy^y0gG3A0!^O*{^z#bi~QyK&D75a$&O;GTX?HrU($TY{6s8y?14 z_ns%Zt?J%oe22|$vTiK5vZMje3FqbO7788mWrRF+&RgzikUKLna9^9ny zzOa`eq}7nO`h{iCnYv9AEdMdqhpV#JOZKg;DLwmo#ySm8>t}lD983uY%(L1!ex)Cr z>ootX|6GOJHd~(mFPlH9IQO^dhUO!E6U@Fi+8YLQJ z@L{3COjjve#-HXc#%F(qyq50K&v?isp*YWNo}*>UorC+H@0)n3CC}}7*}_8xEb&qE zrB|u`XnmG6N%DoH`t}^R*&F$9)w}FYyQ?xo%dTx#;k{Kd?|0kHsM_kkUT^<`vv!w1 zeoWNqXb>!`|<-<)3UrH}0=M)hC3m9qTLyR&a!{$*>(e_1NeP|>~qY})tJox1;1#d+rN zwl6yp8ewog=(lekA2Y`*4$)nk^51Wno!647a{0(?%@Z@;Uaz10!EoW(BQ1T?7l68JR%8%;u*Im-koyt}ZF7iYw39+FdCZ5>Yl`BagE|OWONZ$5SHLm{OnH zzpS6P{q@(`ADP}V?)j_jEpF8~&#&XX2gmn=zqPoxrX6M0GP&C7D5zuJ-2JYhyzKZK z>7T+=x0e>LzPfAa16R|{hvxjN*cdmnmizd^^~Ynh9?$%tKRtVEiJQ#V&nI{KUtPk) zeC0>MG?^1EzcYl6EmSHvxVh}tz4YT7LQ`HJI)6O4s_^%eb=$;C_cs^G+~&~ybwHCv z&AqtDV#l5G`R?pIPnvTTu4Nrv>cI5l$j6fsIVSlbx{@nd*yK)}D0sD5z2nQdyXM)_ zsmT(5FK(am{~+_iE#9~JrT%N{@@MQRa@en;f7@Ea;L+B^h2IkcjE?RoKiB^F@VuAI z1}vVvKkvOV8 z*Z)7g;oh}WyXwz9&X<82Q~$@Z7hU)=d3pThpFb^A_7rS88FYX3mhWcK^-3S+J6+WI ztRpq~-m&$))`$GA+ighjs8tcVvS=-T+HBzq{r&Q>HCi<8a>Az^*+@LqT<)g@(Y2zB&IESzUW2F%}9pFpFSj>2#~$yYYgEKZaEt(&rQ>Gogm zcdq+)?{0Yfe4Qy8(w}VV-ai!KxqablsCDyCK9j@Idm{9$n%o{=l2%^DGV}hGXr9Cc z!4ne=tQ?=~oeyaen)WAeammYy8K2fnwv}OWI~VZNwrmIMuG@X_+NY(r6|I)!v-rK= zqxWK2e`eYth6VHObENZjGVeGuf9By0Wm}GvPR~8?-l%oe>l1H|6&pXP(pqp-Do0J& zcx!sjPcV3v%21}BptIaxM-k;Q~fzqcy+ zU)kj=$@J`t*1PE@4k;UsSa@7t&%@c+w{l(D>)!&(nsFM1%O5jEo?Y`PV|L7f&3sXZ zx2nvsZeZEcaL&#`!Eg1xNSOz>`kg|a%fD85Qoa4Z=0)`r(S72N?)JF`WuAN*Jl`dj z_1JAi{fG(WyWKox`)+RH$yg?AyOL%5%(^)@z9<~dNS_|vcHx1Ap_SIBeCzj-cQZ_d9HPBvv+I51RD8XN z_lAU#g|EVfOD5~KduNGi|qsiuyZezmH_=m3-{g<<|T6A}>@98(iGf(HqPwU_G?EmZa`?z8sl*yEC zYhv~?tdv&{=(m{*W#G(#^--EHT-hl=$L5F6roll4X4lpoy{-Occz@=+Pr+$B+0V0 zZ1(c^Yne19(;@|2e@lG4BG&TBNIlpl@p{nyCl5|u&X1W8IyYsrxYNC3_e2;pPT7>m zJUHUh#kx~x9v{a7t}i}?<{yGOn#JBns+C!xoPCwEqSW{K_e+QN zt>KZ@G1R#EuqDK#Z(Hu#cS1HS-={s8_-^z6zH;-~rMygU-oL;2Ti#~T*>is3`seR` zEI#EabFN{k)eF^KZl6DXEll0B-GO~>kgIuAk>>*2(laUx3?E;R{mL-^$mQjhFFN;f z>+!GQU1oFZA>XMdANos`4{v*U-}i6a_5bP_&lhL=H_X-SsbcHmIPIJA+QGH=5nFEC z#7DO8|8RV0FLe2kSuUwy`qOQtd(!IPTkAcR-}!2Ax!`BZ+i7Xy_XD~2Ni%Y^8AZ%q z`@2iu57!K_n_@618<{E#^d^I>kP+VcX+)Gd=T((gE>^M~lw zaxDQdUhdZGj5n3=G~PeWr@{Jb`ysZP{s+68dz9Dg&o=sVLFUq@xz$H39ya-W>E+sL z)|eN3XY(5A#_Nau60#zdAMfc+lJ2=ZLD-IG(dDmez8En5e-XjGW##o%MQ)Z`N_^kH zt#PRTS#7_N-CF*tZ&daHzc03ObN#&PuT7S#{Btka%ED&FuDw1A5e63pxewXiaTV3ztz~(5BLf+ ztYEzHCgFNQSJ%5;8<$<5xKbqZ?!9b!SHL6NIr~q_q>7fJ#wU8} z=h_zAeoiP=j=24J-KEGX4C_Z~xo1 zX-QfFLx`Vn+7i{93slcUUT-+^Vv|Rc-;BNa=N`x1zi~3;@Z2Y#?ks8CzDAu{Lf7JV z`H$T15~*k3U;g_wEdD!V!}fo>{_a(Y36NNQg`-`RXKIz{Ge0XwhlDam=BBbsYg9xw zmaflhxb0)Yp;w`LAmE0M#~Z$$(xaF3mj7SBPVeQ<&*@+PF=S2_n-j3ohhN@q#Z0D` zkM3N}(4R7^MsU_#4#z1kkMo|pwxFc+!=9yIV$$YkM4U0O+I=dH|9;KiDcf#u zd{-2=iLtMbKbYIlX=lFVqI(x#F)`IvtzybB$!cp@YSGRlr*U5YS-u7L%_;jTsuZ^+ zrrb3voP1@mL2<)zt0QJVS`N4e9$#_RC1L+;R@1Qd{ckcii2n5xtVnouGd^9cQ~B=x zRnw=QmgV41Ioz)Du|Q%Ai*2(0d}ptMm?K$C(gp8ExvB8vvc)B+z07pUylZCg#cWT+nLSp{tEWc4-li~B zSv_Nm+|5qrexu1>SGc(_Tv#J;Don!KqxYHLmm`InZlo=<<~cJ>@`IDMsp-7yS1t8^ zS5M*nl=W-$ce>iUn*{fgu9>6a&N@2nQ&Z<6is*SD9D>p2$is6*Rv z&B8-Zsu|Y2eDa~7sXWJ9HYe+*OxDql7oU9D|NmgMX?MF^GdG|E`4Jd-D+>*G@|=R->sMby_tiAvpIvfA`fWJa&? zo^N05U+l<<_}B1m{q|qG;+Z~7i{HkRko2m5bxZ)O%sp+3kINkHNSZ4j^$}e3LCZI- zE%M;D-}_otZ2om~@$1w{So(v>=MSK{tP4gD+i;x+61cS{|5w|jGP{+jfkrrULz<90P1IeN2F zH#9Bp)cu18n{E*|`m&VHl&0nqXm)tgyKe>NnXqv=i^X;ea+9n??<8R9R z8f@;@Y#y{?VWfP^YcI)HTkc<-@qmNniNcwhmQ=Qltd>mttFwNr`@^?9f8vdI4Le;V z8QK4y=-hvr;qIbhh7G@~lKFm4d^o-J<94-Fx6?nTznHQ8;{w(hD|ctRtzEh+`Rv8{ zOBY-`v*>zVq1HshoEt8l(>JzX5V%u#m(fk}lK-r?Z)PmX6LHlL?mYCO_0yc+QlAta z_)ainkuDK7dUtGU?E1jVrd#7~p9?e$$h=oz?vQ0&a*n~tojtB3ynpicd_RN6d-S4;m^R`kYc)tYPCRbPHQT%ygFU7Y&&TlaJQEP(~QqL-R^+b;IMO*F9JTX{IK z`RbfH&mE@z+b=4f*<;MNLM6%}ZjxT{%88oHGBe!@?mXN5&;9bYw=1)mmeyaZ(!Mu$ zf7N5Pf(vFzTjF@8s7~41Gh40bU&)-(gL@99c%&#j5fJ#6y|g@FacPCJf^FwV-Q4;Q z4}Wjjz5DUs;@RtOwB$bP%v-nqfQhF_`lgD^?R>^w%5w;IF-o| zQiXi}0v7JIyp(Y8dc-Lv)LQ^i<4d=WnG0;4GVNBl8S@^k*N0`^|*oC{IGx=g!MfTZv=bhE*?Hsfw@YWgo;4{B{?>70?M;UE_TO8-eErJ1&8hbIvtI#y1(03;5FiSiCO1Af<2j*!o?@ zY10G8E1h?*>(6WJxEp!yN{8^|%#V|UUVr;{$m5q!`ui72w%qym9G~oHn|1f*Rpsdm z{*~G9JoImMAM5uYOK!})wL^KUynl|cb-n({Qoq@}+tQgG4Blsak&XJw_U>sf zynmnHdH=}4*Uv%@DE~dQP})LR{!&eK-}_h98y4?S-1JiLEmQO32USH2EV3r-mDwqL zCfC7cLT*$4V@u|@J16v{e?8=5TJWug*?PvuvyNH~;d6DQ+2tFzO_ncAKM*dpV)ujX zXSUA0swcZ%?!v=oJI-ZHbG0-5Tka4Obcxe#ac;vwvlUJk&Fs%iX{(ySo-*ZAYRlK- z%rAsL8YwO>ikQe+@M?>aU-mm6&E9)`<|Rk3m+aj;M`p{kvnH?Vc-hvJ1cZ)qPtWA78*f?M4Wovi!tVadB+ z@d+9??FB0gHs$~L`RVlem%pA>RZiZgAoo_T+FWq5-|K63%{7lt_+)*m=CIwbA>4A| z9>+?#zi+>?R9Y@N8tftT(tK{+{@?$17v5!OxYwAy`|e-s)n7mSS2bOB`smH1MJbC` zFHATkGo6pe$~ynhs%1O9y=7(ELXG?$Y*pFf)A6%h#7%39jLn6aZ(B30)vh>2{IuL2 zv`Id1)#B~jcRz1ClAt+VN95_%QFW6+pz?ycc>r<=#L^S+;BI``rG+UHh2g+WZB=^y_& zu4CDJ#6WL%e1O=4R|{*3s~4VlHMKy_Ys;NHNqHx0>)l&6@1AK_p5^si)>Jq+>=<`% zdNh0gUC*wPhIs|gRo1QWcQ)Uevn=ej^Q+WX(Pti|*xb6^`F-XAhN&T4!TWbCzHwqt zW|_vkdxE*g_UeS^%;!7*=;f!WhbwzTz8FmY+NQ&gO`8w*9#~>jFk3Pursmg)&o+lUT{*sO@s{P4mH1k{ z%Gh;T!$)ardqXBymM@+Kb(OEpKkWYUeq*Q50p>GjqN=6-l+~HkI0h(NCx5J}cF%HH z_oi*X`J0RL>;LOt>fir+_LuJI_RCj)Tx4~mm;1KV`zbpW6=$C@WDP3WwQBQEk>`sa zUs|LSeAqGnx8gEuLth$lOWRq$<9pdJy>xrI+h3VSs_%|BSr@Wi5}w%gcs+~KKFv<= z^!k5kf93y7nB&h`mHBJ`#mL&jM#ij`cCR*By}HDfb#VSSp6f4!dDKtT@N+1q_jA5F zw*KtL?Y_Z+wrT$zgC_MIXV}GREYlR1bouavt|wch4j%kkez*XxWYuEgftFK9K z+nHUUW4iND;OgGX4`v2sWOFmzJ=N#)efR(U%%F;4?hZZu>#q;b_xbblqt6ZDpFVdE z%rSLIKX0Pkb?Cv0pq|wqH$=X@&{aO$GphAAhn22MP@H+oqoWC@m`*dZYJO(mJ|b>@ zAz^RLNhS+BtCi9RC!RZTd|8XupXL9(1s;6)a;9~b^U;;RjU{$2`xniSFyGGZpXslw z@BeH5dUEspiz1tRWA1&+v=V$RSdP9scA)9vv_hfg$@PCd*K?Su9Cc>QJaA}A&#H=B z2dC6`Z$DfT&akMSUG{n0!>^)G)DANE1RRPu*nNE#Z$Oi?z8Z7?E)m=HQ+JoIU0b>K zq(J93!F=YLsF1k-Z)P~XKP)3RbF0PvJ1-yR%t~CK@i_GS+ox#(56-MAl5^Z~=Kbu0 z6MkAIC{(nke`!89k71fsdi|?q6Q*tJB7hIuAvb{g4fL_d@-&)~i%; z-Ppt_kK?#L@4BR2e#dCDe%;YhcHd2Q!h7=jZf)Q(7TC1k-{ZW*w4ka-rYAP1{ixp7 zRk!pctoon>HUn<*rofdP?4NRY+>!H5ofTfndqV=NQY0G{U zstdpM&HHg8#QB1oy~D(*1_F~AdO6O_%ip>7=DJ%qnPg+mW#9K}d>C8x^AT&T&%q>a zr|koYPCxT4ELGIU17J1xGm?<#&P7@jfb5&EEmfyN@x4J zX?*0{*Qw&3#vs_ED814$|Jux&*+_G?05q%Jy9!rEAVUnUioWb&B~|w51$TT(w$<&@ zSW2wUKgpiA^HJRYYUjPpa~{56TfO_j&*WvU(kk-#nL#LVRt@6Q6&6<9lSIWM82ao4SPL#x9kMIc<+48Yj67PV^1$8 zJvg|nWaUGp-TX_}O?3>-HZ1QuHBm-wr$yWJb8+{ZRVz9uYzS$_uM~K zJZZaLxa74~ck^VConOxfPj)`ZdVXo7`QyVJDkje--<_G|Y&C)Xs)L#Pt_>HSewz{( zW4kar^IW}e=k}QukJ)dy=)Q1F+R3!lf#v4RPtCpC9(uTorp4Smp4iI4X~h`Eygk2h zbHJRz=geOw(d#g}_@0eMQ>?oTz z$-ew-O{M$<-LJ8am1XK*b4ykR^r$y7zn;N(jpy$<i6^kHXa6p__yv3OIGxw#I{eyb z$QZe>VBi0Pk25bN#LvI|k9Q(#YU4Kl`j5uD?&e)y64jyjt?WWsDaXwMjg8@LUr%q4 zZ|19!dt1^eYgqez zuACh3DPzTo51(J?Bx*(K3j}`OC@t}vU6cYsQ%$-(Te4pLX!gp?Ow6 z&+*iM@z$U4c*~nR0S|u3e|of{#iwys?WTwy@6s(3l2qSkOwW`HeZH?LCuPZL(bXlP zElhp)JM2qhC3rRmY@2&?p=#s4-C`Ttb{}in?f<4@sr9VDXLcNWT5aa0eK}ZRcw8}q z>E#5?<)6RpN&L?%Vv+Qs_CWOiSO1mIt~gpTX_|q;=TF92uj-lSbQsJ1i7XP@Wj_7Y zndFUs^bX~8JMG$Ops#E!(U`Vk@%oU>XEq%CU~;{^Rxmjx*64oP#anL6-L%y<2OkYw ze8kt$QuD=@%7_Kc4(Zc4-4sN>W z)H*GB_5U5AhugneoS(#J|MGocsYPF?&+_MQINW7^w=_+7IBjqJ6N^ZWdqR!tCQmpl zdzO6?gXvXH)%h!rn_if-bkk+FOI&(u)6aH%dTP3I?Swdw{-$#qKCzuYa#rhNYO-nR zHreSjXD0CrupGMesKK@H_5I%XD;2X&bF0`t`Ok3Yc+7Rir~sWOdrBTpOx!M2`)ucl zlG0M?spZ2*RfAOGBPm=uGP`Esr;)Ndv{;X^Tz4P6L%EXsM=lNC_H$Sf&IYb zsf)e$RuxMu;+wPc-S6PC4|nfd&nVcy{C=|h{-h04KR?pfU$?B`q}hXcuT4+6Rjvt> z`&zL@ciBJYH)=kZ&epNPXG7+K>qGdfx|*= z_oVM{)aJSQ?QBe^f#-gEbJ*s}fed*V&DaHQ`&ys`UU3-jRw7op=(Cq#4>7`W8@eUQ+%U(zn_ zRNrMu8 zZ>Og&D|wy3naP&9UjDY?)LGXX_b-YoY~L|==Dvr$^NJQ_{!6jB>2pRc|3>urO+9;J zjHeYoyQiU>(cYQsMxi?L?_z{yAA7}dl!+!-gtrUa~ z8}#kFa_Xc_@UhLm4sdQrlZl*QtnF)&C@%Ug)PFaYwVA0a$NrWrZ)?thtY1utL9%`R%LNTy3F`> z=Anb-y}N}Ik6iv5%HP%SF6F5&-xuu#9dF#sWm1lEZ|bPttK%5GCi%h-uWBukzVgUGgTmn3$zF6Mh~z53>ylI69J6JxnfdGLF*KKj7(Dpg)i?!x2a z{UT@2wn^vSluLOY6BB#sdVKv;vyw{_=e4r@Qn)FR@v61%tfb@MS zW3Q5%l#$!gv-KZ;pY?NFo%N5?XYS#A&O5!npt$;1drAFXVe!jK(ddD*SDVPQTl_iFKZLH{QD$^haWzD9<(C)dg?Yo-J7UQ8?xj zkJ0TVT_<`tjH5XUgiqbAJD;{&W>c7vi;%(#iYUqx*NAU> z!sTApL$gh}$FjVW_D(VHVPd%RF}>Nf*Jo0zua2?aqPhoRe31#W=eurhyc|}3`$5mH zjh-J$b|`tQ75^c=WbuFN^eb%h`#aBH&~kG<^iknm!lR=bd&8RKx*q2rpFQpD!?N(- zQ`_{9aqp7Te=V4`(Q(elqaM?=?p){OIP=NpcT(f&9&SaMey-@RsmHEyE1SMZyzt2> zY_^rt+MZ>Hy{8#lWWRo0(3=xkx$4a>yN>e*o+%35f1;PhulZ!!c?Rz^oA-01{**4Z zx^VH%G?p_d%MWEXPAmzDylvORB5PxME&1l;d8Y4~x{Wxi_kXo^{rh%z(5!>0pO_0D z{V-uk|FfX@wejw+*Bm01JtkG!seSz$`q-6o=FL?PZ@!=MG~(yd2YJ#{P6?(MRpxwX z%{ll_@smekmb2Z2RCc#Arbi)6uB-TK+HPK0vPo^$1O;Wjd22s}&hhv%r&#)y%e|x~ z)$;9!*s56-Y%R_TTI@Xd{j4Ed<&$%zhrOe3ZBl*ifB%o(lZcWl3)1TItehF9J8m*O zoWDy&re1!{szSC{r<8AVXBOz(I3AWADHUb*H`;%)d#O%sW$(6CCWY0-&hzWOaqrr> zcd3Yvh^GO^CA)(S8MjYu<>VGSC9C;{hud$$Whd$88`GU{Z(H?Iq^I!9#zLE=OFegd z=@FXtIQz@#Tel7VzBu}H`uq!jzxu^|mt=Tm;S#i7hC2*3q(UKI44X3$txbvrRY{@W1(MX_y%k z@8p2FGQTF>tFNh z8Be<>Cz;GKTG~-B;&;kAE!W~*ah=-_pP-56j9dR4F0d|m!M(|+Kj1Z&Wvch$t5XxU z{<@ejXRq+znTtdI+?=HN_Uq-jdC%X>HAxPv_cnJjK)ubgyIds8*1?ND2SY_^2X;=q~xil0KiEZ3S9w)}`E z)0@8+ctoy#Wt=dLeO+euRbE9yi)S;KJsb;i_N=h)y`hrgR(Rt`s>+t<|BF&~GgcZO zn2_0?q;HGI+c(s01sfB&-6-P|wiwcksxoqRtvEo1lHwf{H04G?^Mp(2#&zKrCax7+$H zzHXVC(Q2U3`Q_g2NFUC2AK7KiZEx+TcJBZF>(lA`%YVO~yOV9#{(Eb?UzW!TtW-{M z+`qKs)+z^^00VKUs}H|(RL<1BJ!w8ef?yDj%&HH9o64>p5Nz~Wr6W`681d6M>eb?k zmL2Bp=g*&i@v}Q!@CD27kT3T?MV|Zr_ru}ukJqJqz4CAhOIrLFv6)BA3g?yAO?}dG zE`4g{x7%}XrD(j|ee3?>#m>LpeYab*xX3NHy_ut9!9|Pw`o8Z5dTAdT9WT8*%x|ui z{LHend*Y>{|GXAQBpaNjoHVpo=Gx^pBQ*1C>9RtHrWe1xcK-VzQemC8;pqDt&oh)A zcQmiJF4*Vppb_z?VA-LwFVfead)|cxyw%Q0e`P${}@uO`fVR`{WUMn7kxeB%x(F( zd2M}leEs}tvwjpzl6Q}*w!FRMf+HuxpQZm_=U<5b@%+Dz?Yw={gX6=N@z-Qbd&-z; z(6Rf|#m+m6UzG1YmGfwVT=W9wkC#ufO?b=lCI4LDyjWflsTXe7AKaW|**`DzyEFdNjyKRu<}^prvC3syJU3pOHOFN=3$N3 zI(K8vt8Z@(^V=_YUz1+c5|;fv)49Fi&2NVJ_of=Y2p3^b`q8vhaM5J8eJf}5HTFgx z-svZaD+TJS8>zwHMN7cY$2{%E40xUNaJu)g6FpKA8s zU*^8AZTFL#<6`PO^WlBAKPNj*)PB4vw&0?nO85Tc#(td~tIG3@4IEuA54z93Ybl>O z_spGZRqyw@?=rvg;Bi#N=}Z5!1#+ui-rT(W%de~2YnOa=*qA!`!>zvu-@1IXWB;GV ztEOw+-f`#U^y1yJ8-K9qv7gpZ{86^caI4vchcD}o$9ip0nDe9K?tuj_cGx~x z$ER^JHhbSh0h`CIRu@A~Zctu-z}AHAPj>b1A3s+7v$D2TF4>kld3$N;zw2A($?QF7 zl&o=H#`IEm^4VKfu6G}t^kWFv_x<_Gc%i?OWz;?zG5mj%WMF3!u&CL+MRV6@@vreI z8b|7;bVU})oc`JKXOEueRu{>IOYhw|`d9A5;+z`KRs7khTo==4e^0GCvgyY9qBl3+ zsaUUDzy9@n$sex&rf$9zKL6dN=l>52|9Zdw*X@$J&%1I&-IZV8WAQR~d8kkk?Pq*( z)BSQext@g+uW~Z0%jlnb(lK>LYM^1|2g9=khUW|B{k&z$e^+z*foO-jf~%Qk#MsT; zoPX8ur!jZg?MaeMl`pp(zgxt1ZDtZ*`ox{_uNLr5U4K}>WWhPl*M}Isv|5~)wBk>7 zMS;Q3BImo_%Pn3_I^`M}^Igwuv5kpkK$9nL%f*L%-h1XNe*d!Xk-`*iyX7Z@E-Yx+ zzj*Uk-nF+Dozyve)aK~muXEJP(a? z|Km14p2b|k()PfTJwD6f<>bw)_5WGjjemcobUxz;y*Qu!^Pjki&P!c9ozd+3i&n1Y zy?mEk9RfV}uj`Ciab>Hglb`}a<0XfVuNUQF)&3sYI<5TNl+BHc_a9R5Iyc$u-_`5! z7vG-MO-vD<+Vu6~k0%{+K3xa2W}Nj1Zs*_h%V^H&?6W6d@BN%qHd}q+-NIgrevbN0 ziv_|e%(I<)3dMB+YHs_MsAxX{O6uXqF5(;TgxWjXIqb~@mKQC zG7Vw^!4lae|cXQ>zOiDu?7|J-+n4vg7M3&PDfn_}RCeDVSP( zDgT&sRq5xRf6wIq^Zt_l|F+&oKX3k2-A5;W+%(MGwpHrMS%ax*4f{f=j_k!|6rz|Az0Pz^gdErAzbo2L-?oF8wyTL*p<%U zY&KS2Qc6>E5{OAl#Z6U?p*aGqq{d+pe^$N!tz*ZNH; zzFo*7-M&2GxNhyoqv;EO%U)|Z@}+~-mhEuwcj+JY53gk$@Z(Onzk7j~z`L*Z9NKFC z_4F1@k?$4j?c-o-kNfX5!L7c>V};x9GyA>2U$-s?P5&Nz{pr)}`?D*)v#y-DZ`E#_ zd^P3z?NT4?Ub73PnM*FcocC4x%%oM*qP;TL-(+*PVD(MhR#oGy8RGNm&#Hf3Ntasf z9j@Pd5;;5V)b512UH5zfZ|m>-v*m5*gYU*?zWsi9n0=Pi?N{apXUs`k#MhV0u3HI3dGg>U{ph%5C=|uRayymz#TmU4CD@ z`3#<#1Gjm+B6%%7o)_e?_GUcCXa8`1{u*|hDgWLUK2T#-!IwaKGpWpRp~Cb-%q<1aVqm#FZ;IznHl$uERTsuFw9_jb<_OF>LuUb zNR}^)*ki1Jf5D0Us#}vvEyP$9d%patc_{sD&H1(i!Az5`U+_}-78vPvV|q;V6w@wg zO?J1Mk}W+yEEFbBn|ZHj%FCzUCdI|>UohSL{L4?@n)04(n^*McZNtO6Pj+0e`P}w= z@sTHeOJw&-^v+(h(55ZxK;MD?FE%L3IWVm{v#8}bXI?NdXG_|0E`cuhWgTfI3~xCc(#`L_IsYKT;J8KN zvo_1nZBrLdYztnZmBKyErD_xZ?JwI;Jz-h-_L0H%z!euV-I}deDLQOjKeyS7~ys;2qW6JgsOkSP*Ji&_NQGwF_mD}BKFqh9b$;8fL#hW6=wtMHrC}HPS z%h%Yd{l9l1_4JNo$NvBF^GNts=x?;`(8g77`E61n)^x8le`0d$bN$qe12Z1IxbkVS ziq(dBzYDVed;fj9V!xC98^&I#mOiuh2wO{5gGjMr*XifXl1?;8Y873KUS;?rfe7&!teW=EC%?5dMlkyWwS0BH3_yG5P z$t^GDpVXXJR%bLSMrj-(Bz)=cY>_cZwZhFQ0#b-J>_k=$k3U(&BBH18EZ zxO~OyZ)x88@p~4%eLL;iYSF!*Nt0s_cI1ks1gJ7wU)v>YvHR(XwKL>9r+AyFolMs{ zq?y=N*<4q~%DXeohMoT=Pxul);f0(@ZXSjw{K}T!tiM+(w_S$idG%e@ee2#{cW7{a zc5K4OB8k;z-OhDU9D@2i+ZR0aHqN|Md(8hyw26l5RKCkbdh;GC{Zm!vYW%pV^lNQ& z+esdI=iA?Gg1S1>_I|v6MsxP{tM$P@Ub727)RCBSbnDiWnwR}w$4kz?{c^wb&Skex zeq67t_O_1Ws}|C4qkyfpUOg?S-Ukj9)7{Q!_9DK=9Z;;ZI`wh#Tiwc_MNS3 zoIdr$4|@gQO+5**fO z+pKQozn126+J9%!#cLl=D%#e)FN|diXZo!_fB!5sYduH3N%>E%^RH5o;B4SamFH9W zX*lEPK8Yhw<~{T0)sC9}f0;v8ZnXr%D;@27I=4GMXxuarvuZOt_O|+up>w**5BptH zN?F+WE*Uk?Gk?q$U&YArFJV~)(wsQOCtUfKlgT>G5-}O(G&1Q2d z+4c3zFWVjGa+YWAh`Sa%*(Y!6+4C#Jg4V(GG8;^H9E9B zWW_<2l3Q!{J(zxM`_}&(^cghoCw@41&#+Hs?mf+$+j8q0nG^lV0t;dzJC;vG4WW-@eOTc)eMD@_`+yiZ*@i zcRJWVUa)g47CrcW)vW1JsdHCsI4@AQO@D*wOSfLj7NJwqcl&##Zf%O-e^8H7Cno+TDPaTV3V(2>eJLJ;;bLY=x?`--!iM61hAmFsvpYNw`XLWwA zXrAnJzwNSr)xGV@cTY2N4n9;Gyic<4z>aO#EH)PG?MvWqcp>?F#N5UG7Ds~PSHG0&H*|M6zuDVFIE|$hK)>IxT?^e^!>8;AFQcLWpcAkYCQb)^O_k;Rtsdy zzWug|y(wF4&h=PEO{VrJ&He8vedjOVZUvkdf3`DIm^~})e;_Ix9w9NnQ(S( z{M?&Z8l&y^(S?c4PLS*Qd?jn`CfS9;y(a>!mE)f$W_{S<{Cau#jcR6=#kW4zx7{v^ zi95Mt$IK_kpI)7Mnq|s^7i(@k>FL)E@VITR!=sx`bNk;Up6&_ zpV6x^?6jPQ{FUDMnm@YNe702m_w)1eul~J~OuAVTWtK-T^jZABZTzh+Kr?!a->>KH0j;ih zVd{EJKYaG$zb8-pIyuX{#89$s`SbHH(`?o9=mzE ztQ0&rvGhUL;q=-SS}M02S|19}y0Gh0?}df0ws@o%#Kg?Id@e0Lh++2%#n^)A)~EX) zJ(wEVS}5%oUTqUl=Jzv))Hs?S)I4-WK(yZ+x2fN@2?Yc z7us<&xCOtveeq-AUz^%mwzad0pk+KV;yh8`Ny3lCM9 zmHhO-HLK8D)O7QWzY_0v&;Fgz@nFuvyL+Se1suw-;6C!#Sm*yTsl$JL_*mAhWLuoI za$C-#wHlX|_4i%om(o8}Vt(fH_IK}ce{Kzba_ro?Jf@1N_evMbWeHnM&1xJw?e}N5ZM!v( zb))>TgBKHJPk-LrJF48o9RIF9lBDR(am!e8+VO*_Hl`P&!#mV%o5~s|q-z%18aH2CEnBst z&Y}Oi-3tHw~)SXm6W$)Beg{NE3v9)zFE|Zj(o*<#1zM0vSA#p-- zf{KyMlEc9)7EPwUdf5ucl-T4f7jXS{m#>ZJ|LgpG$BUTLK?WxKYktrlr2;#Dz@NA>w(>Z zHka=^R3AQ2|M%IqFUw2n_fEe4SE!-<$E-zL|F7!#^r))ZalKxhV>+lW{>@AIk3c2s z%%^SpxvcL9FF2WSN5*G=hf3?6^^wO*Oiv3ate$TWbV_l%b*pad-_o*Zudc@>+dQ^1_6sI+5mty^Fpt*Z7#V_fwtuLYt<8ON_*2+O8zdI{kNd(ErCj z|L7TO)n_oIHLaN=DfM~VgL!98w|(L{!Irmq?@`XXl4c?QwC{&+>r|0A`gz(X-o^{Ce)4_!sEDh~!u4hD5^?>w3zOCT)#Pqn zlihr}&|~#g2S$@ihdCbH+Q(p_EoYmY^}9$!<~?t9$qu`P?X$nXs3>*Xy?XDi?Eej! zS2-;cz0OQ{vj0rRlv#Qacm7K6TzT&Q*DsNq7~SStW~$~MFM51(>iW{ByJoJq79M;w z|8;~I^NnBE_VqtuGtuT@`qaQIUAHA=d!KCz)A?Vi5;etPTo#^j!q<*(-Y(g5amVF3 zUTQx5F`M3Wq-d?)^vaFuJszrNeE>_*1R^#Ym zsod1q*WPN!(z9`9h;;p8^CC+w9j%RTQeS3Obxxf(OE~dZ{jJrFqGrofl=q}rr1dQ@ zHUIATkL`Zv>OH@>pH95EgZoCqMAejr%J{ciCSTh(ziQD3Hiuv54oqokT+8+K`<)C79jdq+PS{tz$QRPS+W`uXuRmT57*vzOUb=w2%V#_g&1d(w0g#>Cv)xF{frt1 zi?BB)(>IGx)zjGWT;uI|<7oo*axob**16mHpZjmH<)dC{k64Y#^Z1poe!beHC!Ko# zx7!J3wJ&NbUG8pf$iBEunY+y8Z(p+t(~-A=lU~ebja23AUf`77yk-4cwp*?rqdrXN z?bCg_==awD?|*4q&DO77<9h*z zgLv}ovaNEDTJ>blHl)v6eIdqN_rk<&jIJE%5(<|L_?3>7OFz!~s=oT3$~Q-s2rJ>3Q$_q7xhCA`i{y5ih9 zmWt)78Z%9n?)w-!`R}jT*B;4AH+0$Vx$R-sRhjY7j&1(s3AZggz6choA8yjQIQ{nT zpzlW&l(X5=dm8Ss&FbegexbI0!NH(P|DBT#KkPqi_IXXs7sKTSzkgWeH~RHAW?Ap{ z|1T>i7qT}ZCEC6@t6;mTw9M?~3-6i4Mx5@qJ7>0A{%F!0ryOIY<)yyO;^EV;U+#Is zEwz1d|4RnVb5FLl1}(VFYmp~-;lSxY=LxBkn05--tf-CKp8QCy{qN-bI=A)t@t2=g z1Wxx)G?U&Ix?h@a)*~K2)8%*GvN!F!9ih3Fqy2@W)3MVpCKXwh@wB{gs(fBC*{)dk zOZd+_Ypz%EJXmqFeerSiJ@bBbE(SszO5fB)}`2Thj$*t)&^=X$?$|GQt=dEEYb zGreO*y4S{-8E2pLZ8v%Dp8tF5r3D|#Z+lIvIzA_$vruE6&Fj;5=PyzJ_A-0J0ms$n z+cZ*}@~%YQIlu46Pn8$>4w*CG3T)o{^mo)rZ`*$;F~WPS6IDeupBfkT#- zJ9gI1ntJl@_nUH^JY0AFsBV`u<=&>aceC2Pkj71CzRzDHcOhTqAKTx8_wHNl-(0`@ znEC#Urd2-@4Bm8JVsq!o>Rfzu1-Go=3{Q`~DyQ=j$9N=qFNtPX#iae6_T-Onqqff# zX`#L)Zkv~~i;Ig-ZmvyRddEhPGiN#P%9`utGbGplKNd7~Q{?lsSs(we-v4X*3;F;5 z|FHd?|1aNu;p4B5g`^5@F`R?cLZL8O!DH;Knn_EVVv{T&t*@lKK9^JLg_6@HxWC z{UgrYzvQ{=>9E?VQ{;E%T<$yi!l?Q3;cr!2@-{y$UH<<-zjf29h9%|OPW3F=DzV^q ztMN|5ib+!?n`OSJIkv61i{zO zSR}f1j5nD*t}Ltad;a|Sloz)Jn{F}-oJuK*J@jGTX@OR~Vy|cE+u|(jTnY=KjWy!$ z?^&dO&VK20^Ybst_T=sOc=M{ovC<2d(`^oRHv7F+;rS43wbOO3;o`G_FHdG3FgoRs zrewJJx@5A&Vzu)CJEq!jFpnmG& zA3ZmiIG7*5`>^Xtli8Ntx0dg{o&4+FH|JkZ_WzjkZ}$5C(N?$j@orbXa+mOvYx?hQwHBx!-8g;mwVQr> zKLqo9somszVuAJ7<;=}Cxi?%o!XvK;9OcoGx|i4Cy-5A_ip`rnuH^HvG1pq{JFt<} z$D;pBRdL3rX>VhdTM{qdn<`^sx?^qMme`RzO|oM&;C?THipn^P$U+eJ@Oy?kLBj z;8n^p_YlX;3qcl}?iEeFD^s&*{_R=5mCn;bEz20whS#%6YnlM6)x=oZYbSgqq@UW3yLf3g-<|RZsI&-V9&%=Agi2KDUFudY1OP z?k+p-+EjC(?eX5gp9v>w`l{0{=J?hLly1K1@Y{NJ?5}s__G>nOx>UMzoAHrn?dIFB zf4TWQH7VouiL?f@o8footbE_dBpIiD=Y}McbYT14+_Fp-TwRH{rNY3J^o~Cc7ypL z+rGYRw_v$n=N3qBFI1oNVUty~iwTRD&F1fK;zK1b&0aHia(Z9YtevTcuAk}Oa_kPv zWP`Xf_jRP1{+;?>e`A{P3d1X_p7~X5JMk_&zHYAB-OV$#ofc}Q9ceT0t4%sm{H0R! z<;|d|V69oU+qYR<(P|gzS34Y)&8FIuYQ*rMeD2@*bM|k#{PE(ej(gGj-LDt9?XwSBESQneW~{yJRLBCq7L{dE zd-wb>yJaz(2<+sAw36cD%`&&=`d~R!X&t}ozL@t}$^DmE{ zy4lK zA~#!0@`{EV;%G(pffH}ep3l&| ze#o%o$DPYHOCLwI4rt&SiC~#^&ht)x=`m5fxV*H(n z{Duk%KlpZWN@>=XZ3!{D!*=I6>qiAo@r82^Y)m>Ld%~bmBfnJZG~d_c6Wnuj*Vjrf zRnBPCvRp0x)Ld}ZNdtC)`iN+syPI?ag~I<8&%ArF&t-jdY*<|W(lk~kUFX}}j*sdJ z7_@J4Hm&r{{C&qWXSr*v(1cxCyBZV{78`u=&i|!&n0@8GYhup1y=k*!1iF08PD>ql zAR)-&vT}N+BYX4VHFMsV9hGrvstVdKn}18M&->EtgINPuJYRP`|MYqM~i3K3b?;7T;4r>PJMGz$K3vPuMrJq_JJB6fM_#MA|lF@eg?2ohZQn-J+f3Ynz5y-I0x4y03 z$myB!$R+#VNt4$L9&FilnAdn;Wx+G?{V(M%ZIOEZ?YaN1@M@_yJs--NoF2&Vy3Vh> zHswdt>&&lwTYt>ke*WEFt#eaE0@9;qy>H9ov)jJ)*cPS3QMSwx!T;Fre%(L! zyv?f1=Eu@P-~Gu>I8dm>Qm5#8p#5NE|3B@m!Z|b7{WVthDm=WCy?4&0!e{Q$6Mr1b zU<;Q|;;zVSJNWbbitA-R_}_frbK0c*&06^#+<$_)|C%>`f4gt%Mf=CQPjB97`_V*! zS;qPC*>GN|V_|c%CWgNDRa|ml+N(1G{?g{wensiOZeLND{7vlM_A3eE%5LJ4O&Pb3 zyFWknYK_UKj&m~#jh1qzzg@dYZJr3CQjbBbMe7lUXPvbaizUwkrj40;uqktLTE2z6u(>Qg2IzG)4cSzndq}77G_Kg z`^)r5_0$f|V_zPt`PP56b&A#atG3?ZwBt(&15S&A&VU|g8NItN(pUVxU-RQ3yG2IJ zf(3lC+oON|>GnVPli$MVY{8BE=3Jf*6Hk$vEalmq4ULUAeqSyrv2jlL=<6r7WWDIm z52Qyc6Mrv&x!*=gxi1 z6=(Y(z#mp$>~th^f1|b4Kk1}n1_w6qCHK?-rmm4e}YcKD3CTF2zkj=Wpv)Han z?i#O~x|DYM%J*yeGHh$F{hFE3Cd0Jy-YT&LMmHi1CJn z;ya127bETRv()lSHH5j$X!adpI*-lpGO^Q~YB~iD_>N?M;m!y+(lpR zSXy}8YZS_ne$lu4*QxJDo}ceMb`MN`s(G1%YcpT`%%A$_{$IVi^!s_$4Gppxd!|0v z*t>!~MSpphOR!e=9TTNDDf*{RW_SE!ylTvrc=C7V%^+Lf^sZ$V$0C!M!?`bsM&b% zr!MD+r)Tf8tv^3U;@d3CP|rzI!fO;Z|M&dO@d>`J|EYA!mIMQ-b1fG*KBx1{et(|F zeo=_^=QDPlPH)(RrRH#~| zwPQaZG|PBeVT+#Xm5FKdXNvs|+;5(I<^gBDVo&t>3A>v2aa28WQ#-LPY<-H`+9ew| z=uPP;a&Tpk-jVKNbUJu%vD~I@7dm-mZb@DHb@JQnS3mgPsg%4uuz$|4qZfo9=uXbR zlJ@_5*zYfg563T#xBYqf%b#D8cc(1Q)YQ*^*fMouP(sLojYd|V3ITgym!3_QDMJz3Vdf-nwv5q~~U|tX7=+@?A4R`^{FYo-8_Zp*f@A<-cFE zrXJnB(631Lp8E6U2kbw^KgyN2Iblfe_Qdx|z=Sl{loO|H9~Zu!($KSEONICQ{N=v4 zjN3jw+o0bvXZhaA3fe;cOE;coykfxlpl(yQQa01uO>WB%wmtoQ*q#5y!^7;n_60fj zSIxV{U^G>8`Csc^-XpPYOA^h$L_{pv=)*Ss2%Fzs#qEWkd$XM1-Ok_a&*s|Y<+bUg z`QrHpq(3>O2;RKJ)>eH`v$?!?kF0EvZPFH}BVVE~r#$4|wSS)|xMVN6dv9L-ra0OE z8IS(Rn@?nrnt9Hnedr z_ly^xkT8SCcbD6Ir`6Za=AKgXP(Q9Na%|N)o2Lawe1zY;eS7tHYVm<5f4H9h3rasy z(6+Nt@RWp{&YPi|PDv$Zu0TI5c-`9G+Gn)OD z&e>~!`~I$NnpI+7GOVSt6%M5T)9i6+Gpnu)ie^n#m3}`(rs>plAv3wvJ_dKposXaW zoHG5^4Cg~?s{6i}wN9vWVlim_%%M5cpzLSyi@IQm*dJ2qhqce{(tV({cSk^ZTFQ#X z+w=GmZIt8%Q>#wY2>jzI=bOGyaiWp8!L-D*V`)*IES~dn<)?gm)nlChVmJH!rS9(i zFD_r7f3Y{_>etOXf|<&;UR+YL_hobG)A=_fczEkJJh(hD+rn6!#qo;#OLv(~u4e+K zH>lj=m*IOAvQF)Jefn1S-+SD5zn;q`x#W8H$tS-i1+M$nSDMe~nsa+~vk@<+;5qYZ zftv~MXPiq3{~5zCoU_M!|EB-hU&8CYOn%)+5dIgiiak*BP7da*Oly2SK_g` zmDba_bISL^L!Kr4GKWttIIh{wvU$7dhgW~@{W|$!_e=&qmneDX`wtl1-|A`R?6{G_ z9n2SVCE&>W*qGX{zf0r!Y{wM@$XAzK|#d*o%?p?-H@JT zXp-U9WnGc=Y*yeKi5LfVR+f~N$9<-4%dq~teaf3n5ARnMosxQXd)L2hZxX!A)(GZ( zd0yf+O>@HU{`)+_OJ+DOHgKCIyZ#QZ^|?Q0+XQ#0N2XPtHEcd3YxZHc#jhQ&ou|B# zXxfx0Y7v*yEcuJiaSv<8oBIdeUN|^WfALzW9UI^8x_2wHsrtD6gGqcv-pZ;EKJn||VkL)P6djYg*u-$*{EhxLp)(Cf_uVT3nRO@QP9(pwIyOg}neq3r z123Dlye;R9@iqFH^HithYJd5>seD#abLRD=SH$&fWTsk1vjJTi?C4 zsezI6&dW&NMOD=smPXAfZaML>Y4_R5r>!%6Ui~m^m;9`35Uh}+#}~QaoL=KQlbsJg ziIynsIF^$A!1jcLgvJY}m3j$DzSTR;UT?b@ztHry$c5j@2N|*sHY6>cHuJx~{qLVo z{={cKk_%=rZx-JyR=h=!M}&1LQ|_#~Cl%RGrRQ%teQcNHsF>BJsxtf4IMI{(pZR=(x@1}#uJ9om(I^>33?U%c*z7`gQ_c1JvFoTbM=X-S{R)PQ#*G*wMG0M_w7Uu z)5B-GwBF~PHZ)IP|MJC$8^Qnfy1i?deNTh$&cTO_bLYoD`{J#%S%86mOM~=LcFqIp zAAEY{H*C=LR<;!8+&HDDV~y9>*z-LdpVm28e4luLgX54x)k~4B2a~5c_=}v}%@CY_ z@{{_v|2*@i`1)Stzx=q4e|KPf>%Rqy+RZLoe)cZC$$YZLaZ1{;xkx z-XxN+_1+bS0}metwt8(#Eq`=7>e}T`me*veY&(9b{@Ud4t-sXb(fX^qXU>`8Tm0|p z3~g!qzLIGB+;8*$+{xrjSz0G}A^D3iZ`5JYG`^Jf8Ji}08Xmr3_hsH`nM-poR|iap z(>Qp0wuj^Wi~T>$i+!(iTy&~0_GDXl{K{^LD;KwZPOCL5(KT{d_J5^}M)vm8KW<70 z$z7b8aCw)N%x&Ahld7(M*0^V!ac8HP(yM!BG8`82y+Llfv}SkpnU@|u{pwG6mGYXa z$8CA;6kNM-v2ghe$7Sk2SdYzas$1~>+ufCG)OE_28UHu0G!Q!VJSyvwyl}ez=6}^+ zqUHam{#yJ0dj6&F{rkM@zvut2-6e5e{olU8y5`8Z)qTt%NgwvkJaDt)+1lAc8vI?! zhnKVH)$WL1`T8wuZQ)1BSfBakMQe=`Zf{^aXLhz^w$(ggUOBn9mz&%9vjXm zFMjUD)6>@nxjFGErOTM#b$Otn>375}AmL1BRbKDS;zIYkugq$?*bdx|WO(#gQ-;sZ za_iPvi}hY6@X2~h3OU^~cHfsOTViu)=Hi%RjB6U@YZ+6gu`&Cs?`B(Sv$&zCU}fl< z&3~S;NM8)7zVH2bhO}$xOySI%OBB*h%ujz4QP+ElEBBYr|5x*Ck80CoF1E$0vqhNfw)`^=e3XA@>-@w&vp9`g zbUM9OT%Xf3qv>hF**O9U){pNk@Lseg*wC5vbipC3Q^HGDg&jY_{r}X{tKszy->+|f zwTqvjhI{?ux9s+NWAFd5S9?}}<5E-Gl1-}&R3r5L6Pk7{OwH`e@K|^tds@%Z$ydYK zMdmSccq)l>_I&lQV5*o|@MXJX?>4qj(RbTI9IP5M-!>SAILd7|2(8s|Scl=ai+)s&F_tfOO1A7WF6Z!6 z;`#S8S1tN~R{CZ3I)iNGUy`+a&emTT&i)efi~T9Fx;S}@*(I|LiEgHc-Kr1#x3GV{ z=87Pj@L}hLbv(>|ibvMgZxW8TFj875Gne_`*_O{cX6NO6o%WRP`0d(XjJ5O6{lBOE z>&?mYFW!8sDcX`>n(bfOu9X+&sN7fICTUYF)->-=hKZBqx*b850*yv5pCp}rp!q+x z|7peb*IMjuycsOFQ&w%?GX6rnp-IT z&e`zQ^Y?p^Cz-FTw0X}3PH66B&ER3&xybwJhY9CgPHKEMRd`T))hsB&&%oj3+)sxz z8S?)ei(Hmc;}(Bp+GmOTJI_6vaFlC?MvStw{PVN_4LDaE%J0+bZ8`GbAj3h0*AA9D zd^ZR#y0pCK=S*RU@w;nkBTGw#*D|G30BT=Dp+8NJb`HZAA;1_dh+JP`dt6ZP4l7}n{=u2GkM^89(KF%a8840dY8i(!H~r3JyE}FA-@dc4Z@M-oI4=MGwp5&X&ZIdO z+WAsbV8dN6HwRnUSghLoheP_@oK}Z4U+2ZU^c}d`8aAGtdw8OV zc4xlIjMhD0=C=L|eCN_XH;wh_raQZZVy(HS_j7&Yj%Qqc?fvevhgVASyEHuXbzZW< zY&YAz#w^Wx-YR8=(^I!cc3xfNrTk3FI@IdDy*j&w3}=lSgY%gdp|6bsk2k*viP>&$ zUQ+gJSDshMH1;*-(zkBkUjL=4vM|tly_)-?H<$Kax_jhm?gEc=Q3HdX{9g9b^#8kF z-rsfZkNER?<2ToSotijf@g1M~?N-9Oua-?zFJq*Qdc8C2|UMui;{F zjfAdU+dcl@d7s3-^eWtw(9|o~^)=Y8B&O!AQG14u$)z}Z8>=-3-v_<_`Zc%omw){H zYX_DcoF9;8^H}rJg_lZ^V2s}UB zU}b-LmfjOfXIUIijnuixxU|pwcV~lGXu#}AFE2iJ|MK8q=WWq5&K}b99&cUq zRe$$iaoN{Fv#;I@kt-EG%B;s5^lVQJ({zm^#!QzpI^Ivo)Up1j@&Dv&!Ti$pQ4@?)jx}E(vRo-&ehHL6ALq_AdKx?{8P%WoOv8G~80GV5{A)k4OI2hdmXI zRN3_JiJffuKE}Wo&kgpfxbEVVQQAGxM4uyi`k}RDRY%6gmDBY2dpZ~?9N1K+FmBpR9W8wTq z?X2&|R^23T&y&`9k^*nu7k%kX*rTyO%i>JIxh)!CfM0EaIHMK5pNfcSm(<40*0Q&(0L)GG0_GePYgk$KK;+x7W@zOWjvd^v_#iq0H~C znw$S${=Dg4d32hxx7Vh1f90?KlrMc-U*^PIXT00;ZeyWh$-|09u1$<0UoJhIF1cyq z8dlFg{wt5lY*BQ-kN)0YfQVxBU zHT#vX@tM`hzb?Q3EA{u$)AKKrY*rt4pY_5e-R#9Indzq=3-&pgeX%?lRQB^qU8?4# zK(=zf>D!X?n51^7{g;?$${faF{{7USY0Wk)D^EuBCEjsnD0sE6_woduXD`~P&JJc! zpBZh(_BCq#w(TWb>=wws``Zzh=l}BSw*!Q@J6h!oYor z@Nct{Cw^TH`*jXGcj)l$Dk>KZNIq~#VRP1GpPQ0TUWH6ec)EJ}`qhu)&xMLF(7ilW ztR?U9g3UA6PG<8skSXga8>Ko+_0Or(e`c7h7YOvP-culayTmau`LfZ!5ffH9T~*z9B+4(ne`@$ymjrd)pSMX11HosFRUgh-F|2C~Kxz>`o#6{62_vGwc4v$rbH$4o! zU6R|(B;INp*mtU^>O7O;^2=v(c7FTDA9G>%p+{@hbS;Qmdu>boj(BDc^XuF1`FnLW zA6n6xo>=Vh+@mS+%rcWu^N?t}R&7oYvOT=Ckk>An9>ElW{t z2uSNS7oIETzH!Y#z1I^@zp0P>9naf6X?nczKRYGAUzP+xLbSJ1HupCqhJgBQgbe3`Lh@iECG+~0q3SN!suce$+h z-i3@1m#YHjS-zOwy>LFh&ME!2@h-XbUtXLOd~rMNWQSA1t^R$n%OaPFe`30m`;;^M z-irzrv9*4$rYSi#OD>k(eY>rUX_u12_K!!7yo(f-J@1;vpy+ps@9tBnHXT=s!(Ews zZS{W_b+9OJFa0-J$0Bn6h4`PJ_q*2r`MUhemv5203|F3-9m~q`tBqY@{P9&=S=evW zh;U;Di4CVFschKVeJ<(k>Ia{MU#!3Our?(ybmm==W95}~R!)VRj=f6YonUspZ~ZsH zzFz0IHnHzssZ}xytIA$GHtkOh$3^?n1)n!K$y?rkvPS$u*bDu*A4vtPTduAW44cru zfPL=anGfQY7#8&F>t=t?ntS4Z&S^_F`8gXrJ0{J0x?!nQW9Q+_@1NwDT?`-3SDkZN zRWU!My`;@$;f)2CHaVVEJX)C4bnDmZ-j5eeR(?A8`~B6_BENfemz;H6kA92aQ{xz4 z`_=N~nQ2D9-llzTy)*CA(^*X47O{yaZN08Lie3^X{sEhWHzq-9g-snXgR|n&p=$!=kZJ=B$dx-%mOXEL;!v8XsBl zI!wX&VV;*j^1~MsS{Mbr_@-|9a4F$2f2;CccZunGCaW?Q>ReDxoV$s^Wy(j7eUHtg zUvFEs`>ed-+qGt;Zt<&%w<}p2t&x?zQ8zvJ#Ey5L_D9d{jJ>zC`Q*X~|36`23e$P_ zZ@Zc}hl$~e5yPpztNZ@NAJT}F+FG!qBJIFdp>2wxcQ%@H9@|(yzjM+V#w0(sXo+KL zt4%y!I$v&Lc&1R)Uwt_DRrCev^o|aOvft<5J-vU!U+LA)mS@N0OT;r#@RrZ%_`S*O^a**)jaiqkS}j?-6}{`zQZ~f{WtdHAQUO3^h_exgQ)Wb8Eng-gdwa8AGlcFKmV{prDUipkO ze2X7M&Te_Ij@R+b!6iN$7t7hzxb(~0cP(}7nJLjx{BdLTuP@S7|Ncm}PGl3h_vP@U z3WEh-rk*&~Reg=^Qp>?jG0W%vWB97B^J2%Vd%R)Vew$oRC>(zI$?swG)t(J=Gn*3D zv;BPCxNVy|b9QtDC;$HH%CArBJ-%Px{teUvKfPX)8DKAM zGG8@JF@vf552nIccNp347?64Zk)OJ#I@_!42{!X3zzr( z_CC%z<>MX8*7G6k-~A6~eu(FJtYsYYoh@?P&YV9hF2}75xDnzRd3w#abxUK~`{(b~ z4Lp;Xvd)b+Bjo8tyQBFA6#}PzvR)JV;D15eoh(n9M-)-0yF2J{H_rB?8?|Ydw z1l;^v;k;z_pR2u0s~_)Qd9L1&qwL!6l08-n7H67$Oq%s||D@Be4Ej@(G%=^X}aU(=)SNe(z|lO-udY0C!=c;9-fy#-l03K2Z{^0hkLNu+ zZDX=L=UvAB<%xG6?rAoXQP0udu3->&&+od8RoTJiPlMP)(wDLyJ9V>i@B7%AvQ5bh ze~#aku*|QxS^c0-Z%x^fgO5JM=fs;ok2hzOiCxyVMx$y6+Z(mGzn}Z-C)fR1e1FOQ z?`Q8XUHx&+wlbUemC`OUX7VzNjE~9uExn~Q;Vb8H7sbhL)4#rbw_rB&`d8b9cBIG5 zQno!lqd58C$-b(Cg042-Ov>7?y!+Li%XiRx#h1O46#u@>u_>reT2wf+C@eE-K~Yx{dw+K;V*vYMG@&;0e)?fWDC;@_{Z`0tDj zzq_x^UcCRP(VufFV&5*zn7|s{e(?C3{kwaEzT}zR>A2J)G;eCwGS-!X?@bGYL-%sd zY+}E#Bw*f6uXEF+4GKJiH#GkX=UJD?m>0rgZhpOF*>RR>!c4P_nu{m2Ud{=9drd^g z!qRdT$BtdQm>xGyzWDsq+Qa4wDvufe$@m#_Tl6qH1c;O!m5dZ;$;@Yy|9;>`HO~hp z>jl=&yKEirOV-q+FQ5J}euv+~APIDQ%Uo+RfJZI7yo3szpGbAe#7H+=T@%nzEzVhZ@g5ecP z-g~Y)ndFB5J@=NK!OD`MfaPxg=j%qolUdcYd#(0GEzJsPsz`1(*tDh1jQfPhW5x{? zi}miT?LBbUheyI^8rz$U-hZCv9e%c*|8=8Nm%MQhY)#lKczW~RZ3n06T*>toe`Qu3 zY`@K_xjuUO?T$}z4sDKa7EO=4yKj;IJU_p)UpIHA=WCzemV9VU{?2025VHx1oRfQ_ zqn)px>N**}G%&$TI$MtIs?buGXtymho4RLDY78;%xgj=t%RQ-AGmQVOIkVvYQu)a- z_cD(Qt}U?sV_R-y`MvR>(RJNTKW6VPeJ`l-#E-3DTI(g&%H6Zh{@jw_9XsjaH>Z&F zwOgJ}(w=L=IoHJg8Lz_Uz2%QoxEAe6@3K6+sBh_US2pWPr(E6he3_9fr865s-#eQ6 z+49_zeP;1#p#cxa(}iZgSKZb8TmR!j;@q$Lr!{jqInH$?yDj?q{oA)TyWfAFmz36u z8VIz-E#gh{`YO4%^8el~^A=q?6!$SMLJ4EVjF{(KvdW-sjuP|32)PH?Q9ACTlRmf)g@*d+kEh{w053`TskpqwsH)H=~*L z@$ktOKXWfID$H=4VYD=rG2_F{)Kk*S?@W$Av(ry_RpRf5yJg(8jIYRtpP9F6(!>BQ zo)2z6(>`o9-g15NrSdlFK}74x@+D;oegUzY>RI=USty!%k8fFSN#6Bt^ek(Ke#~Sq6Obq zp$)Sh=03I9(#spyc1_ulYyEzAm%WRXf7qofq(AMol4v;Hb!Q*Mf+H)K!LWC_U9Sw1tz%zAB0!rcc4 z8hXB(AFMp@$kB4KC&i?wnOpky?P9-**9+&dKHaiL`o!Pee(WcXzv1&|v1nTr{_IM^ zd;XW^-}u}wDMm<%HDA1)zeASy{#K?;&;M$dTer+%T{rdCj-@`+AOAd;7k%x3hVJph zeTIj#X5U%yuA{F1o`=wU#dI&V+g0h#k8>^CN|wKxy6Cia7dDMy*_pBnPMKXhVX^#UFV+eteJb(Zb>KG3<(D7gPF4?Mi*XbI}+5W z%y(sm@Y^?vb!VdNFY(HG6{yTBs}oxO)M%MnAzPb|!qH;OyNe%`u9$7Vso7y~-12V< zYag3O8U5syzBg5A-^5j?ZEkok%-eF}Uj4Vl3d+6vSyao)%2rLDH(jGOr`s^?dgQl# z4`*>QJxK8168Zo8>vU?k5Lb8wS z!K&zlL#K~PZgQURr9(5?-si*;U$YE1mgj#Js%)DZ-Cj3({ci9(VeIxw`m+1UH`Qf7 zkAA6){Q4*N>^tL*thuUR|MS22_v;$C23Z}Ks(GNQ_RnO`x*C}(bCGWLwV?;iZyqkN zf3j)+>C?H1kuj^|OW!sek_>Kq{OLgR?P}+A3%9+3FQ;A!yQ`NPRAs%#`s|`Qm;X18 z+s|9HjQ{1APft}0@=JKvS~@L!e}~h|HA+O z{{E6(UjEYY`ez+-_7RsquDh^VT)DQi(rxdC>2+;&vSoH;)I@7n{9gRIjo%oKjDrs~c+Metgkmt3&DLk=&Eq8bDwRicN)~`kSqyw+|rt+50?9phvyX$y2 zd%EY!c4xQUGR)N+U)(M^icLu>s@j+{{ltu}&ChuA9>4swR;Dzj@1b_8zW#cvIgH;M z7K-e#n4r@uv|Tt(&bBV%e^#0*`}WEY&75jQN|ztLoSgsS<>veq_N-bmk8em^{2=?| z#qsMe&PuN6^Nd=z%KpqbX@}_vZjFx(KQ?&w{doDX$W3y+rMXy-XNik}o0yBxbl10E zR_5Nl5gw9Pp|IrS8h^cY`~N(D@o(4u7j_H<^#`ANGtT&S$jNY`vtCcYgPoW8n!vyi$gH~7F2x{G_VT*?U&&uz|9}4e^5Z|| zUq993FFmcW6TR=0mCTVS^5FUO=U-lZ<+if3y0~J8WHJZ0l?3m>MK?lUw=~~;JHe;Xu_AqC-VVWsA2ozm zrkxIdeurt1_tgZ93kSbbaO|E4p^vmzs}OHSJ=t<^Cr;E0G@)9j~}A-@}s zHE^Eq>H1e&)493uutn92LyY%Do;!3kUN9@TbxBcnE&HwC!7l2%g9BbwS1+kny?E}U z%VT*T$EJ4as-M56om=O(JmG$7&aZU6&LcTRH}X3?U-j&&m{+gOS9R#^JpH(|Hw9NF z-H&!sbmv@lME~ZUDJtcMG9FD3eXzmsOaGtvH}U<8|99@S=iH_1d5(GG`SbSs4CB+T zIV^B6aGao^xyrZ2<)lXTMqbs(*@4=e)`hMKH?^C**KxeLqP?)}(yB=7x3f;id9+RP zOnc?(?XY?F5sxp-0l{fcKRm0qyZ7AX$A`)}pEq?Wv}rwXd-ng`-t>+SA3j*xC~+{n zvntPfu>Ou?^?}a^s%v~R#P&V9|9j!?3hUgW$6HSJ$T4g%zb)>#H27Klw9GEu?RBN{<@~}L z6D0bU9`d&1&w9{z->bxZ!r6>@{@XL=WH7$ixBPI^8=e^@4z{i)tC=a{wpQ-vw7b<3vw`0aPm(d|9Uv)UG|oAQct%^tm- zH1WeWv&NEtzlv{PusYGUF?>sY%brJNcP~HPds+Xn{jWp+SNXcdymGy-bBTGXnd7A6 zM%Vv#R9&6Px=2-N%cBPxOzy%%Q|#&F`45@@CGIe4fW5UpY@( zZd6$Ka9SnDghP+lJihjkdCHS}9qgR5H8w{YDJ#D$J+bPmk5bCBBoCL9C+Esdc(bR7 z-SFhYgNy%NvAVZ>k$rWg$6tF9?RJI(3tb|oGs(!??}=hLY9CdL2uzqkD> za=+@QZj8S1lGT@3W7PR(|2rt!YI6Ab&+c>!JG;0!pEn{EencTW_K&!k-dBTZ+pL(botuPc?)-QSKP{5 z&Sv^2@H+GP-RsWS$e)X{>hy$-$rpTOpX7+x@BJ^iU+sR%$#q%xr)=h5C@=l= z^mL(Bef|pP!@l2ISyy=KQ?^&px=Y;&QyORAQ%Zl}c;2IOnmG5B=K*!wOP5{ht(C1j z_iN9oWjqXbN`CRjJqt;wE8lB&)Zo)50XhHY=Fj8fnP(sLzbo}EEcsi5d+GY~uCFhY zD%$+`G3jygTOYN_!FAGkHgoT#J-W&lpp&;=`uFZX{sCN$Q7MWOKAEQ;wYq56Dl_51 z(K`=Lr~ldf-tL%doB_kUw+XeeUr$^6-^=X#FU1m79u|MU`tL7ZyWejl@2!!(a__9J za|&XLi$1cD6v-+{x&RpBfM_1n#?}=o3`dTfyy!iSwzTykEZ~w(JeqGSB=oE+4 z~E@uT&Rllt`y`TPHvt;>tw{#WUbMcDGCZp_)u!ONR7i|m%^FbnX!yD>Yj^wyhd zAr<=2~z-@d)O>`!v!=luB-4aL3NCb?DiFTWc1>yh}q!;f3_ z=Bm~5C>1N3$rnVuFR;yb|5IDu_;^>AsJzjnNX_QuO5d&b|LpLPe6;h05$7G(0}X6( zYFQO8?7O+wtNU;KbeXY5+i7~}G~L86H`@PboLL&TH|I&_4Vy(%bOjGpUp3qR>D7c^ z^%^03j1A73Prv2Ga((#mTJ}nA7XhpRjw;il`m?7i+YAN-#Ufnto2` zV9FwC=AcX81?$6_-&}chUQ1eybNdA4O3U~M(eky+HSd(VEuMegX7Q5Gleeqo+>zXn zt@7*JJGON7=i8cB8*uHqH-Gnm_gwk!j4vN|ulRFrv6w)F^6S4_7|Lw7BxIRB3U^+Y z&T!|J!~{i+S_il1OQVbq*Xk|4e7;xsoY{LTKd)2LK8n%NvllQV$?QIK{$RN}S0nGu z<%(JBr42&#tFBc0M#nNU#9RFq`d426y}o<@-=+Io^Xoq)N`H@jTV1GJ6JS2&hL`X< zqhAvasx=fw7i?)hCA&s=F2}JFiO!Foebsbr3wYz!&JI6i*|*%-CL+$dQrx2c1~Wtc zyx0d<-`{_@|M&LrA1^LX-?3|F#EaZm{&l*OpFDY!VfZ7y>=sY*oZrTWW*xB!YRvg% zBK56$?%DgM2{ZcCW+!F(gw0_O_4>!UGwW@qh}5_8t!$I^Mq`^?wughUHB~4?BK>fcaK$1lr^8ic;RQ?wM|)vBsN(eJCuF;+p)ws zhkkzl?sM(NtPe4tV}2_>oKP`4yG)Gj=efmfBCZdwulzq%+W5$V+3GysUYr;CP|Uq+ zVW1U&L3_@~XhQCj}rJpZ1K)rn1w9fh|RPunzqx!;{{BFXkM51gOHA2#*U z#ZAX5PuNU0I+QH<$kB6;M%Np8mHgWMA*L6Xa=EXt|5&$VjeMq>g%9(Q35yn#AM_A$ z+0gFq&aq?K{p&jpZJ(#R`Sy1Gg4=#s8yCxan@_qPP~n;r->}ukapvDcx9a4~pZ^vV zaThrfRg$Z#%bYNCOT=b3J^l5HMz1s%zS(<`-yL65f6?{$hlG~fY5TTh z&#LiUI{$-W?#;*F?fw-keCXe+(0Xj{$BwS=MoEWtcbjmUm37^o<@LAt$(C=+lmqm0 zb?)SCU~5^LHg#?5vL=>(n{$p1yIdAMPzZQ3IsdX`)Sb=ZOl38XKmFRhzr)#5MC-W4 z6lcki-qJv;X^o$1O_7^AyfrTRyYrk$b<~mb3YBd#hTf>&I>UDI?(W-HgMV^8Ad-A>UceS7}^DN5*Nw*mfPTYKT@vzv$ zTk6aSrW*T-z9s+I{r~v>s|BC$|G$_2=<)4->3{FHq%$*!yemrD_@}H@4w*IOT)4bs#^v|F{=D+pTT|G2`n+A7K;d4Cf1A$y znEU;v-Fjn#*|j_|B0sV{Pu=cIS?hSu=$e}GiH=JTZ=K+didsIa;!MJ`^%)0apVucV z8h?@rw_`q*68b3d3ZoipXE~!aFJJ}xwfw8T{Ik6+b?j${cJEX4 zWAc!DvCBs7*+;g=JNHcQdAll2i1+TK)9kyP?N(3QC{wSlE^s$nsQ+_rVM_14Mf1BB z#^1DOyr_1P`~HG$1?^ehZ{x3rtY3b9PvzcuzY3>IT$}Q-)+y+dj_b>r0=kEDd82-7 zzxpZIWj*t@Tcd1#xovh#<;6+Y9!$E;Wp-F*!>mP*8Up{Hst!>&wpZk&zFunDC2gki zrfos#I)c`ot4uan|9u}AopgK0@$`MEHK!CxW;%V+HTt=A{;Pl2^i7PeNE3|Jth)Y>tdSKQ0N7YjQdOSAg zOLDF5{k(&9Ns+Ll#Jvh|N}>f3L^k|CfJN&#CPAk~+aq z$cul0L*`Did(R_l=lL?OU3y;R*S!-id|7Kc7wtOmpkgC;(7H>zH=f(H`~Ob1O;?0! zzl+ySzqcVW?C$P)LLVMkzI*qs;Qb%D3N`5~@_k{m*WO|IvFq5oht2G~Z1IoJx4EP+ z=zPyxxBjGoNAmV6{ji-vZ&;a?~ucu(gw?yoDazcsnqy)n&$w|UbS z&HFd=t=Io5?0+qJ>$_b|$NRs#&wt3@_j`73`P*pY4GC>s+P`mY*7ZyIz*XGob?6ye zo4xxI=l6xNwQsf^WP5qj;L^uy*9uQ@UQ_;mO}XChiQT=(7mxnx>(}`#AUbL7N$Cj=u|?Ciq5pPL4*zqpYXi^If^3 z7>eEEq@!dlHuP~We>PcLzWnyBN1KJ`%$?`T#?T+w?Cvh1VrRMMak%Z$dDceX>ejml zYJY5foG10<@)1$}2qF$!BI z%hyiqOt{J`Z*oKRu*f6_<+)#;7_Cni52)YG@vY|c1k*jUYo_iOkh%6S`hsR!|BW~Q zbA%1g2FhpXzF3mVf9~eI_g(U3LZ^clX&;VE6XLVUt+lYU&6_Mzd%r_^ib|Dw!9A5L zYFgKxs>WCRuf4Ooo^QU-s?Bfz8k;p-n_{_I`u9uq``O0-Ym(H`@3WRAZ#wlO+~J#M z|HRKrKT8J9Ys?Y;&pX9)^%{E>w{5Rg1U{v0@@Hbax&Og`3%^?rgf?;S?0@l>GsaRj z+IBK)xzg+v_Mgt{>F@u|D|2cg&r<;giz#=DYQKNl?)T*5uBWfU z#Py}k`S+JQ)^ewFZ(uwY%4K#eOmLs(9?5A2yLmXiweDOu$9q}i(@Xu1Geb_i+JEKS z)vu~?`)V#;x^wQ_xzo}MW(pmf-u?gUqg}WEud;Z5EAPMg$5%6RpOqFDZ{AXvyJN); zNro-|HcU3MP)lihbKRup_J?Q~iG6C8_`g56o~uU|6h?Wqq{ z`wm_9|1Yrr_rv#(j=n99dA;@Qh84FjoRGXA^IhWcr8h5*XeBE4@`N^gl)io}-0^(p zb$dZypN9%Q6MxmWOO|KTdWpIIdpADr1F+9s~4HCdco&hzcv#Tl1OZ&n(2=gqsaeb3fzuK@nh+qD<5Cw>1PS>XJT=l$W^1>8%1PdU$dBXX`m8vB~HPvjV` z7lxV1r!HkFJhc1i<(6r(g^II!wL|1BS?8X-w99o_>v!2x#qomWXa0U)qZ7YJ@3Vw( zhCm0$-G}pXBtzv^%KR_dwtGXdrrABsgWtHn2Wx*1*!#z)T!iP?H-q!bmd9~)Eqwfn ztF^0t=hf`&iMNYB8f_EV5@UDWH}ksA%2Lh-zDR?0?`4ko@V$mqi5~S^N)jq*ICYI z)1P@kaAk;Up?#0&yC9R<-7`dv8`Zvj^lJD2beU5N-%R0bFVe`@R5w@Ozo*6~RCY^V z)bXdg@-v=DrAW2ZeytI>{&!m5l+|yfEO*{f;N=r}yi9xdjYvtM>^*K*=XEWRVv_pb zFsCW&hvq>6W4V^;rrZw}_wQ?dU-v`y&YgQLc6rq-I}9^NX??@@`}N}X z-yYX5mA!c6!>*u93zbVFRQ_FZ@r)5YoLezZ^n6$}lU2;@ld_2>JfBP1yj`bU*!-?w z#WLpWfhO-A-QH)fRDI=G{wePZ+w^YcKX1Mn+wA|j=KWWL`%`jne7fP;q;c%{FPSas z9?`46$FfUt{WvnE?1I)RN1>7<*K5Mkln$@UkG|Q&P;|v_qs8oZ509VkFZ?gE)n;D`}>vSG{f5O-~1=DSo4DH!Octk7_85KN}E@?t@xbFv7NWg-fe6-e(YBIg99RW z+HCq6u5M&+^7Yq_e--_1vB#{EpwGO=GUrYfT~yC_syOCX^O?-TpH{N1a&a(5h>-O~|^;vz23URaGD|om^?DPti)J0j3?ydjLab{kbZ{P0k z3+Gw*rPgfY-Ttgjca>oC$Hn(n9A*s8sZ-nF;NO0B^RLx+zW?g|b|v_xWH9G*k8-=o z^MjmEEw?}UcYUJCBQe*~4{Thwj^1Qgns;yV2G^pJnuf&4Kl?&2UYtQ zvaP$Uc6e&z1;6;c6Mdw&r`tMct~|c@o$q^-_~N@6sdIPy_%wZghkor#?q@&z6CZzl zC9=v+P2x-L`D1?y?oNJr`+iP!=#G0|lmCibab5b|Ss}ZJp*N+E_49O<`A^cztS|jr z>QS3vIr9KR(4%_p4L>(^?Rfs@{g;)Ti61_?wW;!#>E3N_?fYE!%kh?mW3ZCH|GT+= zjrg7h+zaBXW{^1*ecITjwoI@7>1y|?FRxFZR~MYflQ_+3;~BA?8_GMq+Z?!d#o0`{ z6@Pl>jcL&?{QIQ+WznN#6P@vXubA)@fz37|M=UMo!_)3S7yG< z-&t+MoO|fyMa_9Sn|Jy9HT1`6+3ksGk}2Q*<6gUel()RD$@f>!SmJGLkL^C*q<;MS z$B%#5%Bxy-mrYTK@+v5Bb3SC#qndF?W#8KW>%0T6m0YOwa~JyftW2h8k49;UbNyeh zSkY5krX5@}!T1J0Z_k$l+1sk6y^44W)GuG}N?-eo=l3U$i3ev~NeW)JW};p2uBGpI zpC-R3-K)Q1ao};+@`|SY?T5Fgp1x$?xxnMOWWw&#<<*B@`1=|hljv};T(T^Az3SJ- zSqtBt@A%vk^u5M+-IR}lkM-yO{Ze>IaC>5Ew7;qBS|JaU8A)euKaY8lujlsDr&i!q zdikc-U0lt#`+s%Kthvma`d;S$b(y)7Ckw~K$Ey0QUCX!qHUII>;7QrWVu zQQ7xb5c`d0nLhsKlJA@Q_Z#(R-=BCd_(W)uZ)Kd=Y)c(Riz(-IU)M1#U*5l7tn*XA>j0ju1d`W-IE`nzA9*tYdc%XITKyDjZw7QN1HsSTYl zJzsD4B9XQ&vt&eXuQ_&54j^S;UZwSTp|r?KVk`=^p;G9@YlxbN@>%ypjsdQ*c*QF&%mQCZzx*@~>q zbB|k03!ZaAQcmXX;m41QYj&m0irIVc^=|PUJFB<0l)l&9Qr7Bk|C2B8nfIQZyAQri zDwwB#?D*V!H#Eh!U%aJrWz)rVPLfgp8KHUXZDxRqOiZ;Jf^teCeNSkAJb8HT8wzk3$bq%2j{q z%Sb3hE}K%e#&*VbEB)!>(?3KeZQRJGmvh(L&g6J3Q+${{k9$w%#0NXiWX$5;?DfJ@ z>Lpv-rAEeM!GaDa_PrHd_*CUy8C%1xj%PP!%7_=AvPf=xIql`_^_~m<>K>R* zgIiwR1YyO4Uzt*_IV{k8e(|IFb1lTuzDc5!zoGVrdoF^blCy&=xx?L^y2 z(%DkSSIZi|{CenZ!NTlZ=JWM+m0us$w>n!+Ij`B|Y&k`KfsM`Y&iL4tyY{-z_*~;y zckbKDxpc#d&sx*%4(l&D+OYj>$EL-{&bu5j`{S~$q% zKNk8K_ioQw{OD-HiCekXmfQdQanZWs|6P5ZzAK#v^G;{ zH_zQB_5ADI2cLW#)_8km z`{j^Nky8pj{iswnXkV(MJuxcO=hs`_%NKtAD>Zgv+1k5hg6B;CWp8pH@4tF=qVOD_ z4PpQaz(Xkm4H?_%LOy4U0G?>%<(?olC; z9eIq5vF7`7*nYmB%?M2~K3#YnzW!EQ_CoK&iBl36Xr9s4JpN0l&1sFYw`k68opUz> z@`GMC7syQvoNHc!5CUeB&eQYcDAHB8ahhI=y zOhkUPo40LHp6=_khSw)u)1QBz=5XhVaZuPCU$F<@a`;}p{#mTwtUOuLR->T2y4m0E zZ^cZBO35$Vr%qmJ?0wNOs(?kjMQ-=;$JaMYEMGEZ=jq=!e@)2ESULaft-@lTWA%$a zTfA&Y+?K#C%yiO!nzo|<)-=AQTlkv#S6Tf(eO+(ezR%tkQ=EU=xfW=&e`21Z?r&F7 z^!wSj>tbC$s}~EaEIhK@fUBz}oBtro`n>)}`aLH_hsom#H=728uQ za_;*{y$@rq;I6OFJO3c!^ltxqhpqeX=QcJJ*hFvj@{(LCJa5sPzU#m4oi$qh{n63W zWlt`@efxI7sZxU=VfW~@yDpz^+Aiq5b;-ts%$!TV?I{+&B`;o{HEq|r#cy7J4?mtB`@MeK znVNfgZeMn-Ke%hZW4v+I_6uia9UIdM)*f8+?VXU#j{1^o5BA12v4($kwea1Q$91EL zq4xXBd5>Pd7A?JNxPVn?**D)`fiqV(7Pm}WRZ~@WtH()hekp&Cxwv=3tEbsg8?E|s zR;3nrIjM=n6d!NUwY~W{<<_Oif6iUok*_R}9C!PKd~=9IN?+ux8z1`iN2fF^OcM#n z+s9XsSGk5Q@W;!wYd+k*?acOFPMazC`_oXn?QzlOg1em$=Jzc8{yO*1{>(cj99>(y zt}D;I&3RmR!Ph5mynponSN~tYnI-%1`oFLLndjfF*>vH{(z(wb{XOw**W{j|^j$Ej|i9&AaRPu5wliGT3uZ0c#L*PW(n zigy?{R{bvLzQpnJoPzD_xm&KhZ;RiU%2n;Sx}ju&LFvCQdeYw~+{*ryb?QLoLKpE& zZHd*3voc@&-FGAG0oN7rv6{#@6Ts#=T3XJAiGmJy7A1OhmRWH zF`2XG?7jD5$A&dlS&b_`X-)W&b(7nXQ934UZ&HBR&Y-1nw~q7qrKZWf_M2a$v#?%# zooQe8*R!l&Umm^MZVxKv{*uUqrUv!TYmrWWB2z;Ymd~Vot={L+;Dc&hqH}GdKQIRu6O^kMw)G1dEEZ0Uh{mt zg3?OSER9>GPw(q(ekAGrF6_1R{LuE?n)WMkS0a~dl`Nn7ZCXW{%RI-J6CKRTD~x*< zKIu-n-mvk}ozIeY?1EO!Z=A&FG~xfT_tG|wn?2M2?J>IbQYu~2WJZndzV+=nuQTrc zwBO|WU(CIllVOe9MXSg4d;k2@*_Z!esmbq~JnN1g*m>FXY<=N}>HE#QAMZ;OkkKub z*LP&J|F()<;6~<)WOGxAdU*kcb|Ut;`EnAXOrfwHJ-IR zUH9#uin}aanLg_IycW|;COI6NeCc!EhaW$$dObdz9JAA(>u%=HHDa5C9M+}@Pb`dB zBA8TL94XG1QvYYttAu9lPSxIe?fE;C4;mNzwuxv?67{=SvhwnYFR#+8>~0q@tq)iI zDV=x6KcVtO_O0K`@B80-{M*UKiZ^*`?&O@p_OhMdp1hF#bNqk%{>$(FY~TMmx}xs) zOiR_xU%OMc%!v6Qxg#$@daHQmL*x8DHj~(tJ>4>lKWpU?T>o^eFlWnHz;<9VEJxD(>RdT0)qo?gsh7SGSj|*JqtXsO#Msc3F zYi!W1{qm6l3dS>JqI<8+)9bGlZ7zn_YEv8{pbI9@8|N5x6l9k`l!J6y<xm0 zug4vKJFC6OZ0_TeFMt1NumAjffx7X(`~ScFZ+?DV{&Cd$g4O07TOw8BS6?aQJKh-e zKHk{l!pXDSZW#X!KAu@{>3h{iL55oU>80{BUeDGJmpb9V#P!4`TK;?3@yvPLPmBtj z&lbM?BEGBrLCK!Jn9!7jg`!g)L=?ZX$uK&RAGUOfXjN@lR>O{N}Uj$TwnB`h2M|nXfA{F6t|F=AUQy@O-lN z>+Kw3w@f6Q|i|j)&73;^5x6P&%IUt%kNxpT;aIWhfeDa9U9y6*Ij$-JFn9B@baB@uLIL3 z=hm=^uUWUCx^*{Sp@uvst9fI3=32e*9dqp30*{~iFw-g8Df<2F9ghr3I$r+n6WS1+ zed_sZ^Yvn`KlfT*&dEM2EW`}t0%9dQa z{a~q1a&26H$fYytEZZ_?^iR(@xUp)Nkvsp78ynL=bqK=&&)K!_v#Xv@`&Dlqzt!}= z@vg)7UVh*+n5(h)HGaW~j(dm&$%V(KPu%4yV+gAAjc`5uaDX zc)#YO`;IyKQ4bEhmeJT^`Oj{#VxjxQn0b#i4;i0qT;!5==P~o?tksdLKY1LTdum}+ z0!q3 zr}hWEUMc=u_TTgSR(Cd^<2xS~v3)~NL2vT)$Zh=xcTIeH*?-=n`?X(wR}_EGdf2^s z+nlB8o4%A!c|D0IqGzp&Pv;L#A7dYVQTDC;d;2sWtP6Qnx;Eu9Q?lNP!-|W|GSx25 zZC`PmNoL{mlqJ7^-K?!!=sszix@5}YlNb1AZFQELR1tf$(pXOL!i9huT4_zISUIBv5Jd)6bFKVgnC`<^p<+`Rvtm7f=2m=~JS7ry+m z%<=7fjDNqC{$ge9(voP~H!Z3t;_>8sE_?mDwe~gpEdIXU_3!)s53NVzc5J`Fou2#n zg4*U5^ZCL*)anIgm|f-feB60kPe0Bk|G47*s-Hy{qcy`X|GRmLXQ5wOPs{PMO;5an z+TJ?z+)=RgROMaX(#Tp6c==%X*QlCFvQj0P48BEE_B{V1vVp@)nrm8m(H5J4i#ZVs z6PBi5G^x0?O5_HL2ptT8H=>}5;%jkLU~wp(ON_U671`73>> zq}01F_uFRs`_Hsye_lNC-Jfs294^M@gqXgN4SxISZ(7mUwdXY~yCDG2eUN;!e~nt?<)l&PGgMq*2c>`wb)0x}e~=+ou(7G)M2WTQqlKUh$pJc9)sh zw_OsSQowL?;hxJr6a7N%LY;a3-buOtvHtGMnz>uQyF4`u&fjw(ct-xi*;-o*XO&8L zm>=(d^kbW<&XuO@?0|(Ir+du*e0|@<2fx~<1z%w1Uj1-O8p9gKhU&|aacJdFouv*ygfb%cA+7#O&t`eaQS{n=-F^)U%t91kI|tf6UKh zw7Yjga>Lp`tM5;}wEXjS=joGt*`y2Sf7%>AM|Ep_$@0EalQ&f+KdHaF#inm*L!n-N z?&|*@>3VbTY}fs0khSeVsQ1a-zj4!deK9^_`b{-JD)L?RTh8;fyR)yqPkSbCeGA*V z@X9@>d^Nuob&F1JI=67HPi8vv+3kD2mJ~63mynG*rgL87+v!6bDqBP!ik3cmJ?qN} zzJ0G6BoC=rp4b_qRxKSVs2I{%sH3dimJ)hYQHv*NtHxu4v>(+fr3>WR6g5p=8jCmO zYz@~d<*dovw_LYc+xVOkuUt#{f>&AB0AHK1zm?V`9?6;eIm6S?qGUmb(JCW7r)r&FweKz$ z2ii+3{*C7N?)dZUuH?m%=dL*%*!%gnuEd7C9pC)QNv2OGW? z+b*`4f9%5lzfNhIwe{RJ-}29`$!S)dHTU2>o`c`49z2(R&hzeHhG?>f`P>y>gm&$d z+9O>PkX(Ctuib3>t)>%fb4yBBR5NgE7+V=#?0J~7nf?~0u*B<9qtlslK4mCR5~_Ir_j^HAS<~&;yIcL%ORZfe9e3~U)4;Ne zVbvFVm2xU_y!Tu2#Hn^IIiG9GXl@Y~i4?;gD?IV3Yd$+l#9{$B~pjlxDk+so%x9lG!? z*=ScekMMz_S(9fA^V?2-#ge{!`P&nxO;=~#{r%{1zn$j$qJGvS_P%F#!{%G`$z*uF zy*B0i&NU0X9tD5DCKUSQa^Vw|X#-69Ie%QyS{kbjm-}*jJ!P)~qudMWE-zE6#8Dn|xzn*Q2 z)BDS2JgZp#`0DYyU)F8X-JcFQLg_R5ASA;BNkOgQ_XVyl$9^^Q)Xrm54U zkGP!U+akFjXYHS3kN*7E;d>hJPvYqY&Ib$sY&`vO@8bFUch0D<6?B%@SmpfAD_J*3 zBR@U(;kT?;!mhKw?kWGm@c+U3f9pT~dc^y0cK^Tq-N~2c_QkCCXp7Ezl_zs!jZprH zN!g!whZ@ex`FMI?Tg|oYw$tZ+NWc4^%hhd_@vEy<%Q;Igt^Bx6G1+$e@278z_tboq z>6hPk`5VWM^7nR%{)c|tc3aQOxA0XX$C)+r)6ed(ZM3Vp@osJUpL;s>uO+X%t+qC= z372*~Sz1=SX6s$;by1C6&lB>OycC`#a&^JYm&@ZHe_)k%m{^-|?A$eB;hspz(l;AT z*R?)$?RowxVZM&zn$L?%C6BkP-WL7eR4vy0NpM#ECfgR4TK$H)JMpKP7MMQEGX7s& z{O^5IvYRX0VJjA6=j#hM-kdY-R{rMFvzC!^dndjw+jQV=j)~Hwa}DbvnK$>obZXar zzxMyiTYj%^zO$%1IhSMc#LA{#b=~}FJFn%X=r_pfH?F_>bJza`_S>bVo12^4Dil;F zA5X~ReYB)Q=7NyPg5?s~U0JWPc0T`I% zMv3&Az+0!KB;?*~x%__JmTh{|t>Rw1Et%N;I_mF6_087`*dNb5en>Gf^Uh&$&ELwC zIZE$1hRpbVJi|hMjrN?53gt@{-LhW4Efq>Od|o%7$6+gPwX4B)q5NaEkHuZB_8;22 zP2Hrwr91L`V4wCIiC;&uzg)g_(fK;BbOf7SYM+&=k>s71uQoi5zW2@Kz`|xZDA*OcXGCDKXhff!+aYL$$;$N+WB`Lo}GRA=*#~pKWkzy zbR4K}->9?D=~A}Ey>B`H%)GoG3nho8-#;6lyeHP}h+Cx+v+gy4#r_&k2RFH zrajJ_^WZ|ogYfSuX>1agmKetH_ZKg7I5gE=?A*!6{?i+OSAzPehTRVW_@3G?m@~ir z!$Hn>b-5FLmfu;ZO)7uTiSd}R0V;YaHqA3x8}lJ2do_}ji?M{VcP zJKJZ<@#OMu7WZ(}{&@6VCf8>}>jP6ytjT$ov2*#XXZ}(?R|_6jr*KaC#8B~hg~=Nx z!A{vtstH~xrUCQ!e72LbtGJO?q-`Z4kyfM@{47(WBsrJM^-l1K^c|hIUl%s7Wo4PR zzw|$-rg*$}{d4K+*K9BEEpx5zGK>|LeRm?@b=}Q#C3(~MdP=kUlp{XA-{+9oTz!C1 zqJOhp)b#Z}-VE7Q9sB=1NdIte@AnV)>%YCODEusQecHiA+lmd&WPF?X|63UgV@=MP zpW)u8-Ti;QPrh1i({Fe|SM2Z|uEUwKUmx?m-nD1J*;R8*cI;NP|E}PCTQVW{{It6k z`(Na=P1yeXr}R$Ixa+zle}k6U<-5m8?Oi{UVYwOi?BjA@H~xR}*gsl9;bs2(tZgPo z+a6B4cP#2#mgvgzF6Df-$}eHxgO=aj@lEP->04>9jhZ)_LzrJk-q6`plH8tO&}igs zkzBLr%m&5d+t0D}-MDpBXxpA^>o+#eoBdso_vq^ApBL{g?=+j}aw4?Vp)4Wuy@@2h z!Mf;W2b{va9%}eg79o%rV^ZblkYfCe`-+OO}+nn-w z!eJ$!aM>XL%xi~24&U&upQo|jN!6!YyVuw9anvi19VyNK^bY^oVf3}?d6klzRchq! z&o!;xDccu&1)8stzi?`cvP!=>f7RkcfBmB#Ivkm?`q9)^ExR()?re^%Um9$9YE5DN zGPZ}?w_S*+$l&%l;?{d;`ZoXbeX}>;pY!kWW3eN%bbRZUUVYi|#eT(lxeXi7ux&m2 zY?ke1Go^Dpg6eIhWmRYI#pE_lUmySA>+A3x5&n%gZ#V>5Gl!&0Eq>Of`>^0pvb5TL z=LacSR$7;T1xKmQOL5+z`2ETcr6v)-;-sL1W=U zwWV5GQO#o6FX_Gi=j$bZy?Xled%L3xWlqU&mN8=BduqQTCeE(5s^rtb^WA6mZ#%J8 zJu~D9&mRpV#joX4+t=NEo_g(z>Ax3`%5S~TzP+;Ms&k#5(dm$Kj-bFR{;Gkmj1RcR zcWP&OHmU=?Z5zpM2qQ;)lcRy)VxD ze|ulGb-DMqng63#od31GEvNn8jGyN2jCS9n3PaK+9!iM2zc+X7)*h*^i+lSfm)lw| z-1_p^YU_WEygP&s?C;vB`nW>OyJOyZb@K&VF21b&E4(M~{Tjyx)7GzV)||hxjxXxk zS>1PztcSdgUVZUml6GHhR@=>4Q-t1rxxOxX)$Wth({0Uuu}E)~^6Qm4E#Bl)-+#+L zU-9=@gO_|Cq@1)e%VbvT>VNxqZIaPjwl}{@o$fA9l?j%sHm^#bw&BKyokh2Q)}2w3 znimwNZu5>WWR3^tr4^TVm)$W_ub-Hl{p{+lH&33aUH?`7d`>m{BX&EHz*DttQf%R; ze;mB>W185yk~2|im&_h}7={;Rq?U5MGbtC>s1w=lx5;|ist(V7TPFU$izVjXa=R(^ zV(!F7&ai#T_rLs`5&ZP{0>O!H6DIXtd}Hv-pX-iLr;EcXlNDd~sr*pV)aI6-DJ)YI zSFAI0|CHmxFJ01^|H^VtGMo3|F?aL_^M!IM>`HSMmc=fyy#3l}O6a+@Whb@1_f5O` zr_}PnuiDagwuh5KQu@xBCTEpCla5H_{&Jw+CZ){d|0>f7P9?>qrJdpH=Rdx>I{fUq zf|@PI-)h*4|2dbxxBA*~hk0sov0|RQ3tIjrM;0sg&-UBp9jPHXfu}Qf)3i0qWnLwC zUEf}8IZfz@{5{$AySvSGD~fMO@q2iMylVN#(_|)-UHQu8zJJqnoegazckaIYlXLCy z{QWzBUJC|Q9_%6q7s{NP?@(Ft@1VZUq>uY0)|)R(cbbuIyyL}(WYN06CpIZtbpD!^ z{{PGC!aZGk=V&#gSH6uqKSKoKHfk4!t1Zl5ar|fuf9yo# zbB}jzcUU30NBR3aonr?Mw|g5rxH#ENnqh-&N-guPs`qBzd(Zr`v#7cfbYT5+?>#$f zuNvv3MJM0;IM17vCUSzqfe}8V9;DudfWpD4_oohLHZL+b&TK(Cd%I=yd z%{jJN)L)vxp&~ft%KZuF_W!m#(x)qVZ2D#f4Ph6L#@UQFd$zD{Uw-=j-^c8^&Zo`G z^P|*G_sY(kZgR!kaCVN`J!ZyxW!8_@zm?vw?{fLi@Y4(h%-ks|2C2O>bxO}}-F|s9 z|B*h`KioUX{JXgpT7yl+MOYnfxym_6=% z3kmvi_NK!lW*7EYzs6sR`Dyh``Pevcwx;cNqb_IV17;=%K7Wh);eN_`u?Xv>lSVt)_>ZX6ZI-WOGF!8+&->l_ zu$VGNp;F^BGLJs)&8n%{^Y72m8D~sCTb{Gb@R80rvOT}xKK|on+p$KGug!lKd3w9Vb~689 zSl)Mnf#G8IdX`gr&X+magm;TQFgVbVk=|lHZ}OQIuY+e^d}Cm}?B;dpLZze7OvWir zaRHkm-|WA6xcAyMs}}d;pU>~F{Csi$p@lN1>LG*soKxAq+x=LYIq$#z+xAHXM?Eq$ zHEtGUzMnCrxOs=>QO)$n>E8Botba8gM^$_}N_txs0 zHBVdD{?V^%VyMXXby72!=LFp^3Am-(=y{qq<+79p^n}(IF`( znbEDvnD^vJ&GNUb3o5TDoL~2A5<~t5t6JuDZ!0}Y-_DA5b>u$2Uf|=?>LZ-9+Ttx( zg60D@pC*iAw*J#?A4g zt!v*DB{Of?52CsP`K)|`@4^h*vaRwGy`=c7jtK62IkC5U@9Vz!gZoc9&YilK;nD9` zEY)m|7x=awc=lH!=*8)YR<_%E&8~+$|C;}BacS*mEA3sM{<_Q8ooA9hvp;E3n%la& z^D--MiR^fvoOo{2Wrd0}TOZsEUSc_;LCIQoPFl&$)YGw?0h%X07e2l==Y4aZ^R}lR zCmhmk+IHSaktfeB@DO`LO23RF90)oYaQ>i^xPEA1UoYj|_dqnmR}mfz&yI%BIK^^s|}`T1?< z1z0D}nr_zEYwfCYwa4$~{FeEV_uKBBdxx;jlpm5$ayIYFDlMB)YCAFMl)}y* zb)553A1;nNk$fT5qbgoLZu9TBeKnokr?2nWv!}~&l4JPii0^JiI}gm0J0UJ$5wxhk z!Bs8f^qEDWD~gs`AHP)Dlhya|(=OMOeGV*BZ5BNHCBN|h-t|1~VmqvBCms=Mu{m(z zIY-URwL&#=f37ie8nUf(N#WbMXwm+n%Aa@RkAZ6fOHdA(AFy+0?YH>(a(g$wQ2c2* z?Y-0SwQE#+MLD%Ybm|Rywk8#n9IsbfYVqU$-I|n}lIMkF@){fhrm3|k2R#%{5jZ5; zZLi%N#Fr>rnr2;=Dn4z-L!p~Hum9IQ*Dme*uO=etXR+?~?d284AKA{w*Ic{ya&7jv z>*d$BHoh$`{30h~f9U_S_y6@j9{vBsaG8JK$KUdHM|h;-OD)X4!5~B(x^qzZ=E5s%I+ao*e)bA&E zSZX6egBOM`kKmoW@a;PNZJBXfUhe+r@5UJXI(hwpZ^;VjyRTcgpS_zl=izh4@)L8{ zS=%I<21OFJHx8d1N8DY%zbZ0UyWlptnwE3rjR)%w;kP_xP$DKK4+8xmMC< z<9x+p6Ap%`VZfP?VNq!Syb_U^_`Yk2hwaeGzwl;&$F(WU|g{4lv(ug zd-rCnuwC$>Fs~y0iswO7i=27)dCwLKJ=b}3EY32?V1lre;G69{ElYSG2`^kQ^{V*( z!{-*{Fg)75#IHVZMZC}BmFr`-uMO8BVZkGNJD@t}s9;|Sh&2icPkk_~S>to_%=lpm6IT?JOz@N@( zuXjJcZxP+Zu!)UPLG8Y(Op?g_pnx-#6O*n~ZG3WANoTdnxz|S<5*|k1Tbll;*4X5b zh4}t0jqEJh9A(>i9o{NTU8=ZXd*hUkNxVCnrq@_zPd~zcm&3(s&zp!A13UJyR>1gB|?((Mm7ceJq@F9~D5{rvc!m49&fa zb#9t+GGAs6P&izjaR;@y~ zVxaf+N#|8xv|L^!%P#9{SuHOiI!*HS&1WU|gz785l`8PuZS=0|T)cXT)e$eIuJlZ6 z)+beem5q~ryUh$f@$1E2f%>DN@xLBqFLL~Jre-d}Zf0xd5pRrDQ zik|V5{An8_%~fWf{n_)Bw~u?;{2r-ALH|>_zDiydTbBL2%=^OpfDfB3uA6aNNMBce zVKKMwh|?+O=l5oOz4~M}Pr{PPf$1rq>n`&+~W zkd`$iR@=TuM@KdD#I1k4&{lQ9&5JL*PTg}@)nYuo$WqQvCQ_UO zEuWgn^=I8l^!DQ&|1x=9nnZ;4w#p^>%bxY72OP}2HosW?=EG?c*$W$7kN;Z&u4%(=O061bY!2_N+q+-*>hqgiiCye_ zBEw>2=Y9#6T(>@ti?^e9((*~#9~pxCt=qrL+a35A=x-h`dxPz9Pgz~r9h;Fk zUwHLNX6c7}GHpL?bnIG<72vU>W#&THEjD}R~n)>oDF&+Bqh zqj0gsHIu*R=h^!2TJrHpS<>Ayhk1W3t@mG_mcFLuR(}#VWB(l%vsA~Yw=M~8D1P%J z*xKLjsWY3<1({`w?Y!69-d_0j{KZ>yw);j{pIhGRck2DQ^}@2M)B7sg7hDiZzdKN#}=OO8h<+vsS&74mww;#UsCX`_$~zmys6lgcI3TUYHmn$ay)*%eJMlmgCUD zPjx$EgrwUw&91%HT_=6kZ(B_o*UmI=MVa-FPK#@FEL&M`9N^7(dgWtZo7$s>tD5CL z2S@+mJf(Bvm5OH1<6nFCKW{vFC3>$Y>v7|nX*XW`$J}NXPQ6>1ELf6S=U{Op`%2nW z%jwheXHDK;w~q1rDb=RfV=>21Ty&asc>ZaIzOQW=$7LUF`Myf-{hr2xCC>dP6SyTE zWCSF+)1^gbhA%N(k-KZX$s@P<6Q^8fSK_R25T6krzH7G1@u0xB`m6VcJi5@H!@os8 z_1CSVSGU)JHlo!Z0#Cv%50RVy@5%lcl^gaS@9#95Iwk4Vx(%Y=yrg)dQqui7rw6>a z*yb4@u4Bp+{n}4Df^&uA&i0Sjriw~mja+Umvt&cgwHk zuHVagf}=0j-RaA)$qHTf{LuYvk6-3ob}(bB-L}xZ`p|{hoNT&X_j)Tg*sXEn=nuT{ zZ_nb5{i3P*M|R(RIfp&@?EKqSt3nP3Z)-}7K&@{_;c??*RfxUFw1`Dl`E{%5-W`FVR^s7p^+^G4;? zc_shKi`nnIjcqin9)EeV#QM<-zJ9N~t`)P6|2kV#d3?|8qdBQ3ygSr^wP22 z@ArF$3v_t6?>{}=f8Te{6Rc({TxSM#Ob;=CY!dgmAzs|}-ZP()_~ScHq+M}f`_J^X z_9?5Om92Fg)6&!1Xa8i|{@FFf`{%!p8*?;%h?x8m{(7lC{P>akGuz4&Hz_3;S1$FC zop{qjatWj5DLwVOhJ8A-o_@Z!ck{K+R}JSp-}!DK6PL^}t74HeyVfNAl+1j`7G&Lb zF7B=W1-vh*_q&AvvFyFc~VD*_D`#w5kOqC9F+q<|kT5#T; z38$9t+J8`$=l`DbXWG1(+77yX*foRSi9e`#i96%9=#~Gg!&mhQ^gL=SaaVS@-F+l; z*c=KTGd4umJ#WR;$a=hML9)4Qq(pA-a zYgTSy3+HB=Gw<=im$iF}|JUv*{6*ONf&;EAykx}5qgsHC*?03}fuieJbP`YwnrQZ(T zn(fOOqT6jIAG~btG5J9IFRQcLwjZ4Gk7X*WZ?@50eu19lX-y1NUCLI=3{Fao-81555{V8_Jlc^OWW5 zHU}O!`7$$F|2&`P>tv2;@7Be}#(iOE*q?2bJb9t$+6o5kW{uayypH`9X?Q5IWRTr5=Yp6recYQOMs(O=G8!7n7GIDX8X9-<@Q z>04=V?Dy_-f9Lz9|M>X3Uf5r5Py79!Pxc?4eRSt6-+gMTd52@>PCx1*ZmDx&3Ts{2 zjMGX>{=B;TPWs4B=iC3cUT96RmP!_8SRkkQqG;RxiyApQ>;C_1He0#p-TVs&AH?}= zJDF16=G1ri>5^N|_FkK3>5(1Q?JT`~^$m-LQV}D82d3?dmu9)|lbp}%w~SrQ=E6Ir zod@kbulD*yU%n<-GShau&+5)&?oIMe{*phJZWMHuuTt{#Olm$juh98-;*K>&zdYg! zY@fdHx0{~i^7P4(vyX1X$Hs11@Nk#Pvrk!t-|}^O=a;N#;Y+>iy6MO<{Q{4tPcmjo z>?pstiS61_^H?^%f~8KKb|!x1cUqV_#5dcY%fDBzxKTy!NN2mCbXAp`_lL09x@-T0 zRV^1ZatpNwymHUs(9+EQy>XB1latN-3%QGrT;3B{VHPTXeb32H$NU97YD(tr|MU54 z_v-h5z?p5zDMf|?jrvtjp9-;5>|tZn5O#Pp-*JBSy>PRt$47HNh3~qwuu=K!x*Lxc zPS8;8ox@Vb;(a$IWcQ|)l-+y%IHMD`Tvq<@o=cu--c=S!ot3v)_DJT~gr9M@d&HY~ z=YzGX?)f|w8`+05SFs!0T{iewTK{?;<7>61>G@*m51;bZ{n55>OP^oUl^^$Ca9v^R z;>(N6#6DJ~T>SO#<)fN4eLYS>>g$fkYF@0@z2SO;uj`Tj#KukGF(;4BJQI>#>=4l3 z|LEJDE6k~rIzp_pGiQW2H>7m!sXseY`@YgD%fwld0`C|~cUS10o4wpYTef>?OTU5U zk!a~T{wo`n3HxT6m849ZA3A@=eBG2d^IT(p>`l|X3xc*=H)pdQ zX#QMmU12a+l-pQg>C9!!?-{wDoT)z3a=W5*(zXUK7KazRpU>4e8SuEdY~%*|1QT*;Z=nPUba&B_9muPVx73IB>M2`^Ecj)kY1mJpZO&$jq%tD_c;U zX38Wyd5Wq^WNq9_=iPSq&&RgUeQn3SHzKT4TU2~!`h5w$#TghiSD>k0nu|3!`?B3qpnftGwfA=PStB=F8#Pbbj0;f(;+xuTi zoqxqLy`oi`-iv1GUYb9@xZrY{M8$@`bC%q2Jo9Ph*Tl7&z4b;e3%djU2Cdz{&fQwz z@g~NVEPN|MekQ)P`2TY;3vVKSqy1|&uH1{Kk8UeI`I5!w2edToo^sGDzo23b;*P=66ZK^KyQG z*3nLN<}+H|cI7Q05*l6m54M>WFW>&7x&I$S_~)xe%-^K0zh2fTzFqgOL67nhr8j-Y zJ*z8wFRicUFbTf7ul#9V+v4x;LR@~H-;Uq0)X_Yh7I8eMu4kgO@;e5F7w3+vrYT>~ z_}e43V!_#G0d2i8CWh{Dn{DqK?s}ZO$#6na!H>X+m{8-^31+{^#-Xf=ikIfTR0jS$Zy`aE!DWq=;^!cssATAZf0_jlxDS_sQK<~ zbY%7U*4J~j4{hahKEbm(`|4cX&kRYD#>VgRs=xW%<|(`O;&9zWM!w$xk8)oLGx^Kb zuc=p7Nc}!lq=m)3GQj%v%-(Q`P=%eZxzwf^DY&g?d0fR8#U_43XXT_7k8j*Q`_F*E zk3(pS;9`Ox!%PT}8MRAM7rG=JTSFTOeR>-mW*HM&37d;GSa zV*j^@gF)uhe9y|lzb4HLiYaFmua*SF>MYm4WuE>yd*{9VQX;9g(vrPloCeDTm@}0o z6@|+72+wqjUMsOVd*+D^0jtheC2c6s~AN#hc3ylDz%J%U>$xxtMvYi;3u0mtuffU_bbQ3x}E@qyAQ6v(PO&V zcw95#X(5lP^r_3Mc~sY0Mu*R1XJZb%oF;wigx!*>QjU$6+K=ScyymiD(%rl6-JkIG z=#wi{-FFHX+!C|q`|>WIxoU5j`FF{C;^*VvG<#PBu2PWYJ;Zr=zjV(mMvZcgOBHM( zCm(3KWxwq{udq&%!Tra&tG0{t*OrN&Qqu?EHPazrZ^F@uzoZg{CM}$)5>K_5S)>^pohb$|<3K(}ilEO-Xou)k8i^_jGiZ z^2*GPxR^PQ-~3rK_j&Erb6?gSTi$%Mv>-EWjgXyl-15t3jYKM}tyaaXvM8)jU-`SW z=hMuc+cso(kbEs~tMh|2oHs|GU26?u+0L z|2woN?X5{(u>O~^W$ta!V`bmA_pN{Q>sb-!3BQVupHwY^dzrm^q|Ysqewf(l9VM*t z(vZ#Q+d;XfWtWznUc6%F6V=zE|74^KdSy#BU#GSUF)#ih5$*5vjA6FHjj$JC94(uF z@Cd!$UT)vCc3pdqoF#{Nk-@AG2g%1}$A2#rUBYo>;i=&1?Q7Sb>|b5_H=%FcRY~uh zJ-i$zALlGyJn{Ow)gLD}uF%h^SabdydmF!0Q>Iw_~@jpGk!Ur^3WUQ4fkT9_^zCWYH z>&(BI?KO>C)8}kn=g_-mS>23fDo>M^%vz}XalYutddCf2qX% z&AGp}ojbE`^S^Ai18=RI8Sm{mc%Rv_n{z6gLCAgqo-P^XGo@h@>}(N-+#;x+@Lw>15@drT@TL~Su$^*xz{i6(K;UEeWjf*cbGM} z?P+b!{yta!n(zO23C5dScdC3?sGKi2SLLmGVAcEuS3hzw>HcsmJmcH3wOl~GrD$iM<)Yss&&BZldG>apZq8w z!TB-xw&Rs)>yp>sXg1-Tc+%qW`xC1+x}9oiKIr>q?tL?(8+xlRDLenR^HY;Z+S&D5 zP`P7D;Y*k50|_C4UTw}9!Pk9R=LxtyyZ=pp^2h!oX^Y%+7w-OjV#m zi55LE4Ltg1y~D%i7x^#hZ&@E~5R%PkiI`*_$rH8A%C=#?uq|iy^5r&_i}v4ZZl0Uc z-r3aPQ2t}T{rf$8LVkWVXMg@b;2#g9v9K(amr3W_zw1FW*R_W3krvO1y&)BCbvy3n z;r5&<-M{nl?)3Wp6mtJ0trR57we5h|r~QW#a$5_9{RGZzRQY?Jk?ps#w1TWz(5uq2 z3p}hw(=4LqpPwN3`mNUYRD+(aN{g%x-~Ewayvb_$=C<84cthLvIt4xue`9;NZU1An zxAyy=UVrE{?YDcW-TvP0n%`u$ z+2{J?msh6t@a$h(#%Q@JWkS^dXRod<6Fh1WVC>SAey75FU$+D6-!f-&o`m*u$4}n+ z(j)nQ`C*@H)Az5e{kGd$;X3yM5-*hq{H4Wz#sqr~X&X+fh83aeE5$ z{ipxaIE(&1E3XqipKsTue?8#ju6w8cGtW6Go#!y=&LtJWxtxCHeSyEHsvAbwH{380 zU<^P0&}6CNY7Z-)Sw1pLHO?vv)fN<=nVKMGG{N-ck`tdM{&%;W^5N4C*0%@c=Xbqf z51Oa;uJhQPPBocg`@=hz+wngMPMr8;Zrz(Zu^(=)=~RF3U*~mYa!Jtdm~f3fpfyot^B)TgG~-3xl|D(=mU=v|)r{9np}?u)_86JJ&@+_Cv(^73=p zOS-3go!IF7YkmOJxkoRPr&pYuCm1_f?!&g`1Sk7h&ifvPoek9e<>&m)(x%uT?te)1 zucaS07Rz~E_%ZdzvvWHi7d-g=&%^3pQpNl=|2M8#x7TLs#8r&K^%qLkU;FsYtm&b; z=Hrm2seH@732Pr)FoD_nXZX^2uQ$Y8IJU!2qcXbm&Gh>HW#GE~HKcB@tStQeWxCkm z2jMQ?PV~zPaNb3UD0UMQYn zdSh9O(Y+HMcbsOmO|%woOf-|>Ebrr3Sr|O$Y(4wo-m9yR{?s>_Z`aTDXL>wADf|k%k!1YFbauD*S3h!XeQY7f&wc$h z-#mrPHs1LB!^e-=sh9tHCL?paal7mfUOBge?VoNumz~kFp!czW%9PrbpY+a_EcfM| zDe;7_Sjtyy`5T!M7lRcKnQWeQe%ac0ljW0Fy^MWEqgZj3y3)7I1=9QimglP+u0Or< z#Af-_=QVR|9F!kS=(paiw>aRKLet?539}~rVft9{(E73WN{jM2JM@^?($ywj{k>!% zo25o9cU*3GwBlEjh1>+AU@lwnye;oI7M^;V z%lT4Cxo8{X>W7DRFv|)_8_!)6Tm0*~a@k{#s7SQXocpES+731 z{&8G5Y38gAdkt#V1h(vNk$IOq<@CyFyXv1ldKJCD#o2O-{bNXq^{y=Y`DMDe;t%bG zFFapvo_yG?W`ElZUZa`P_isj&F5e=4lELW~i{=r=toU*n3nP^l5y{FMI?sPEwh4Co z6v{grj_^@(n$73X~v%1Yn*np?=qJ@QVSCGh6+{{G(~?>8>)_;L16`i~9C zM;Gxg>Wo$?b}3LTSlw#Qe1B5%!^fg;BY*ca$5>tXZF!Sz^2c;(mrcr#3XbNa9o3j} z+&*&G=aVtajSnvm}ibVlJ-_eJyVZoNvvzgy*4yb6@K6>{AIJ z;N| z3uTxX+CM!HGvYX~IZAWS-wfTbMMXaRv($#t|h6H_on4I3&%|VId&`i_fP zI)Bu~79Di@dHcTPZNK!s&Cy?H?^BPr?k%2^`uYu%t-MCsP1X?Ijgw*wf<8S-KULh5 zR8m-5lAJkJZ$iQT?KP(rW?WJIa{5fAe9jTp8{cCS_Hkdi#j||b6{FyN*I4zN8Mgc_ znJzV@W~wpUt_#Q6)Hj{|p*nrqr;Obq*S2d*f1h_g+TLMe(3~ECfQ}Y+dq5rU2~njU<>j|;>%F&skK6nAwxo^Ft0Py|pV76rIXQJ{+`Y?N>v=b9zWpsT z;Q!ycqwm{`qSwbp8RdV^&|sfC`}z6p<)>`Lr~RL_J2U?D%q@{W%Dy#A|G8oJn62VV zNsYb9?P)Jx?Gml-`rT7>d9U`_HL_eV#k^^1AXh*{2@Q^!w{KGqL-7uE!(mJ7x?(XEQ^`B3<(^C_%P5#HkY1<@no^QA(!=`ww^8UYh#S!!4 z+s=po@!90CPAzyGXD8>I-CcLJv^l7*EM&hmf7%OEg-Zul*mQI}Zg5|*{nEC? z-?n@?FB!b2iJUsbbX4bW+3V{&_u7Bod_uSIVYP1jSGC2v{@pElz3J4;mmk}fL|xy0 z&1`z`ySG+(;YDlnriZJQuic-w+@@kq)QR-HZyZh^_TyWb>Gg5fKeL8qxfix~Zp&Yh z`b2wI#}Re*9Y*VC_Pw=#w>-y2jqgH>*@W8PC)f7eD*q!jS-U^4Vezyy-|8C&x7ciT zKfktos(*Gs&L%ze*Yhs#-S+p4mBOC8k@mU9k2kSi*mYmmb4x>==JeO9?6<3~F+P2} zd2`_XIJxN*War_W_!B&xvXM_)$E)e-c?4cs^x$x;TbZFuwWgy&*TUOt$Up)^GQo z&-q>XGcPS{;VK1znnkHx42;UTZV^1CGZr}WtvVWX-gbHQ8%A4G$8C37ZkH|Ykh{xt z@ze5Vrxsa7a~Tg-=OsC<0i29Zp<$`1d(V8oxA*y+zmZYJeTLU>tzR)gqjSnDWA|&T ztKa{8v-jJtbLVFicd;-vIw%Nmj8daPFq#TRGs0+DK+EEAe!2=L3sd8KB^#SRYsHoH zpVruQ&+!YYuWT%LySeRndri%M$7k*nA8Ji{uaf&zaq6cHCzUom{k8L`oh{G#f2&gd zR!`nE?{)d>uSVOB1buS8DiKKztJkkB z+dKPm_*=15xm3OQQ)aLCX4&5?eN~zrJ!$LWZ|;A2_in%9?Y~v}Rk2EKYSQm(-)1JA zFWC6)!PYbL)?WAhdhc3-H0Qn5b*ry@TORy(`=`k8m9@wJty}+F;>G7_qJNis*Uzp_ zt37u3?)BF<(!Uhu-mdV-`1@EVe_q{z=bA=$>zw(VCzY;#dw-qP_N>ipyT5Px({a9Z z>p!8{lCyb&=jOl6n6LSIY2EXc+YGO(AK092ztBHx|Le~`jJcnuN*VBdQ~4S%cj4b8 z%X?KXJ=tBB&0g#p$2v z)n&X+e!S=8wsS>tmixE;TJ!by?XK*bGm30g=QlI&d;i(@cjNt|>iu8;89$S7o4>wT zr8~ktkx!>)*`aN`Z$5L@rsRJ6Ij=06En9J`<=OKe<1$_<>jNMhum|2Th4zawJV8T|MqFc>C<-|yZ$Tw?#@)-$LcqJ zZ}`ubT4CvX*?Z5ouhaG8>wYg~VQM_!&*=urF!j9_bK~}0n15J-|Fsr>Xhv1xuHUPk zsM?-MuB`a;sXBC7%qpXGhhBtD&8rM>+|5<1|LF(Mrt+I{bNt@V+AwQ%P{~fQ6HBMh zbgD99wBcV>A*L}gdT*OHTj;~pLUT0b9QIDvG!750>*AWb%z{rXLhWX4U()V3b<>P) zrTb*~h70Qi2kR~1aBK*F`2XU&tykLPFP~nOpDO$ywDIPa!eufJ6a2sJ;(B|%%JgsT zs`qF2EU)uxy}MNVHYXQHOS0%CeUZ1ZH#M*6XWj5vXL~YkVF_dW{K~eX>G^B!D;R_u zRxaJN-D%+wWBzY7-_~fom~FP8e4mrxt=W$S-!*L*A5Jxw2|YPUr^zt3M{M{uFR-wx+$- zi^C!YH~m9(ymqY)UQqY5XkBo|6xXlpdzWcne^b3xd8S~p>}wOdE7>tOzOVios=3ww zb#~eh1J}xr%NJcddUey*zqvOuJ`^4e`hE6T-jf^G|INs*?@|78jfwTlu}jYzG|z=B zy2w1|c)K0@m%mvohs(w9)irNqJQXGFeYtz<-d$mv{P!I(^;mlGUra&g+lKQZZ~r&< zii)ZB$OU|2lUSOQ$H`-n>zlhr?%l){6Tbi4Ur@*6`?2k#LUB!v+^&zVA7srlX0&P_ z{;}Zmy*%R$`z^$_{l8t_w*j+QMY@x^87lpX(!heKh1WXBt7NF%PT!nt@}5x z7rH+CJZJUZzK2E&=XZTSe5N)d`|%4l-~Ig0*m(u6YDCxD%ut#y6dlUqc1mff?Q9Mn zdFlP{-J;&Me{?-5{q5{7`5dz{?QhG{#4qlxdm3lZna|$(_Rfuci`X9QTAyFKrudP> zb+ZF83x8kYo&P9{jpeTXwAX3Z&;AVFx$}2?!QR^(b(ePO=e^dh}CmPFG6WTb@+Ey5NJSga}jPf&FGJj0yrAf4m<*e0cQm&zeJ(XSKch=o@fuo2zYUx>lbstG?)k5bmJ!{I;_@xsEK0 zp3AlJ1J}ysy6Ie(mnoN?mt?t?($%bW-_vd1^}QPc!i=W+{Eu_G&An%XK#1azS^nX@ zythwXe{C!t9&^L(^OxO5){)k`4oxce>g9gF*yQ~-Lm|FUkJj(Es)9skQ@zULa&xrbx13cI%=Rz- z`kLc0_tZ~Ut^{q7ziYJhdx_1}2}xY-z8%Wz_ka5JByCA+Ti=~MEth!Yw_oE6zIJ?- zPG2bN4jnV~;;nwUp%Vjax!LAcO$ku_?QeUTf1l&EntAHifse};rCy)6q`Fc6LSX4U-mAZ@uDh*&*SYLq z%UehL%bWGhC2TX^24v-Wsh?}?J=0mGZyd+_!}{r5qjQyc|M_GNZ<;;bq-m;P@=7+9 zw;{Xlr@0B3Tiv`hx%Jeuwz6H5)}LWvo|1iLPAAuwq-@SMCW(M68y2iT?7aT}m&o}) zs@1d`+IpCnTea`Du9<81zvBL(x{t@F$(yT8*>>-2!;K@Fn=B@2Z>)VX>!8E&J#R$c zaJ?N4?yC=5H6!L?e_JiC5LnZCK#kNzVY?;i-! zFj%pz@aFm1W#_H*u0}+dNiBL4^>5z$<*Q4sT~f-mHh$bHEfQX+=JaXr{rNhjae*JB zxp`|3*)DJRIJtfC+2bZxHpZ{tW_K#jo>6a4hqRb*uD5~Tjeiq=oxRXCS@MgQZTOXd z9j49fzZ7Oa+;QVx)5k5__BMPx^X?rSn9t^`-iru;QySjw`Av?e)%PCYW3=cj&Y}-eq?_XXTP-bk)5$^w>Il_ru@BG z(~q*=UuUr60LQ7%Q;k+$j%4SW8{U{bwW~$*L$vUP!uxyGue&~$b>05&SMU1zv+sW1 zegC&1PJiMRmhX*iEzZVr2RI(ZJ&cwPUb<)bv(nP_Te}&H_LvG{``~u z)glWg90*7*i3{Fmre*B+IMkWZCjVPp+o7mQ)jh7erUyU2y(QS{a`gAj>07>w|7)$z z{NER9Y2d#&F88<4p?&+JTR-HO{J1DG@9H73Fs*&DPj!3w*59A~!n5^y$%*&Z=dZue zS7h?7a#dUZrkcR_rN{nk{>js-KGSLAt=e0A^w#xU^l>;U_Bn6zlgH=2&%VAlpfb-* zCGiEf1wXuG+Mf)4zQ7`dj>F=k5xa@u|<`doQJ&?&*KE`&W_qygaU1IXQgCokMr5 zYT9z9)V?y+P0LuxBx~1&f(MC8CJ{Mv;+K3$?iV_zDe>*j?3~{XXQyUO@Ju+!G1cmh z)9<=tGF$5+s_!qkW4}Iog-3N?o=?GB_!!wV}-@azb2e0+iu9VIw;}Mx#9sm1QwNZ%jjpz2O+AcmWmdu*{?5WQ6gce(exOzoCz-OBogE4`rSEJK6sKaB(*-EHCf_h$e6x9$Gz)b0Ae zqU28q6^LCsX8Jz)MXqq=Z4KihxidBEYHu`M5ZJagmMvXYg8$?p&I}!+9Fu)HweKJ7 zUG~xMPDk?xeW@Qij=eoss&93#o;lqs*8211`QeXWf4X+3;BdITxqfb4;obV6-w!6= zIye1m(|noZ>GfgnKYPl`^M?QU@$_{6VGjWgmL^64jz4=G_J04Yb2VFEeoAVc$KemN zy$-LD`@wH!xi8|%1z^b!*FIQA;vspz{w^UT9`MYZQd?Ra-;M8BOb`gxOWd6HbC zlbG`&!PT)xAMsiEPhVFu>C^lbC5H}dD(zpt&e}NZS3#-2xrFJ`Ugaru=4?)k-e+Ck zCNjC&u(R!X=~ULKkhbK^8}Wd%xoXoU-Y*REcAPQc$G&CjWePacb4{3=Kl>b5v*G6b zZ_NKS|IGEutL@9FzMhf0?So3~p3EozI__|>dVh1*-KjEE(io~NH0_F?l}H& zcX_;2ciZ}@#xvO^#6R~;zcMve>al>3>*FQW-&Zrm*|sK2-Z^_Z zUt1S0#kS3E{iPF|PyN0iY1MjtV`2ToPY+wau9VuN^Cx$M!P=j{qVn?VL!bXT{`KZ7 z#=UiWPX0(wp60)*@&Dw^s?VMqIG7se^MjgLKO_$y?&g;}H-GP+1zPFy9(whrr@t)X za+0@+-6p($!l<_)p>U`d=x=^zzzKL8d>i>+nezGlg+1x7f^IiG> z7zbzH5S_Vo_TB27&EId@Mjn;sZay$=#fRs5e`Xh0ZQHi$qI&%6t-3nQ4+YEkv$=n( zqNtw|=IRwQcY z8hGU_+pspk`K1?2Y(;~TTmSBjydfUv1FAg5?)7diJKb`D`*X}B*P!QqtK!~mS{Edh zth`a*)Q90-?24s%6LtpNv~-*)s1kH|Z`B<0Dbf4oc>HZGXSMa+dGz_|t$hox*Z%z# z7`NAI^ZOdxtLJr(I!P40{k>ZArtlQu#W%ixY%E-~e%-V?8(S0J^jM!wKJ}wmihl!N zYwr5`{-fU%wruoBHlA{^O!)Jfs5qt`exA-Vw-dLNX*jzb6#G{D@Q&vj_O|qd|Aoy* zPugu>SomlsdrP9pjBZz(cGn{1rM}y*T06{Aoa`xkdrz5jv!q>yg{QUi+}PuiUUw_P zPu;V6nrOMSm-(AZy0S|5?Bl=h?4A)Iz!vg-QvTW9I>*=?ifw-`Gw^x%`~Lqkc7}Z4 zjWX?evfqB+{M_iI*?z~;@7ade-L!to&V8M+Oz2%Avz_qY_(MOYY~G=$V0hp0lymZP z6X$i(aXG>tSeD#-K6BphL%KP6wSBS)i*~Nuuy&ul`0RMwEliyTt!(~(jBZ-aD1PTA z@%z7IrRC&j>=rjm*^C7e{tG-aEqp5f{qda@Z6EjW{NfE%n=2`PvvGUtn|t-|aIrLF5W96TK5vH8oME8k{U zPdV#scTM~LiD|0^wlv1gU(KErEvEU!%R5cTLQ<38>THFn;t7^GwRyL$d~oRZ{IuiI zDxT~=`(*r1d|iH~`Lp!4-wJ+D^^Yd|tz011zxuq1MZ-D1r<_e&zuh#rccP+VgV}1K zZD-=&P5I?H;j0W+?9@MRZcSTrHbUs6T%qwUZ4m|yR=q3tuJoUu_JEH|e*b-zJ&WJ0 zJS?!x{pRs2&mPWvGF$qE((B1O)0eAd^k43+&9~X7{Q2pclcHw@7CC*`RypU>rrC}n zi(&=VyRn~L*1M!4v|?Y(gV5`DcxSQhzhE7CymH37v#)2qiikfK@9}xr%db<^qSIc6 zlFYl{+8Q%9Z8_+kANa^>kG}$Ek#l$V}+AmrqF8=Yxw#VOcW)LwP{b5JLEC#v#+eM zgs;y_f4Rdktbf1q)}Nol@8>O-nB%c-@vqO^Gldg;ro3a?TG=izY4cfO6;BbVa~`(a zT2h$pPFHSOCug*gU;gB?M0t~x^oX;sSA-;g|GenY!DGi3zV(>4)2xk6q~KWl^=*8Q zSDxGbJmJ)JJL~J-~EqdwXwY^m{ z*Iz$>H1m4w%A&8rQ;N6vzb}rDuiozC5!mi2U`BwywYeJ4BJOx(tYv0CZ)tj7UT&L?!ME&(Ho}vo~JKdf`UCU6BVP1I}hVY}+u+yU9{6DD!tt@T-&0G~f2gb#2=E?f0A) ziFSYf^Ds}Z{J%Xf=S*fsTg$hbcWr#~-`=-tXX{z0_4u}qt~$^DaEW(m)(?KHv8(&~ zZ~d(N2R$t978`FWzu5foL!V^yL}!=h|0Y-Dwd5{MT-)b)?p%>aQ_7@EGsE6iDb>E~ zQiyz%cHXFGd(ob~6Dy}p|N7=%MdhzgkLNtMzqjq>Wb^!gllxT#IR1nvNicxM)fT*2 zFCW(ZCqFFpUvt*n{|lD9WjysRa@pavXKrUTZ9eh+p`?-IYQ5s6)3TZNIK5wdEOxWY z6}N|{GFzl3=gJ9vRhm)2nz-}m%vDKwakG6I-KG{FyA{?y_ouqKs8^qwj^yeEM-BV} zc(`pREP1#qU@hmI0)Dj_g!c>kX`TW~8^OAZB3A6kcPybq{A;($o7(+a#kHx;GUknC|MK!R zYh6VzS(&|_9Ms3JR+D#Id~N(0i6qW{X4@M7M!he#uvuN!dn?+ijk%Xi?RC{3+f6g4 z|IAU8pZ0P7->w@KX;1SEAI8ZhJgc?bmeRR^Wnp+6!*1np|0Tydmaht#_9f+Ux>wZ7 zV(Wv|@3WR(ydph!PgCRCsm%MUnN#PSR5;yb&{Z0)%J_z}f93rZ8i6y5^|wm9Em_H$ zJMXK(j9xbe{iSY=b0Z(t`trVPdw=!k#(hrnMb|0DA7^^M^{l&c$N#=B%EezUcIl56`!`&D!X&{_F-B zX>m37t@}3fzxwx7RCJH?q_w3I!fx-Dn9pUsd)u&7pjNN-Ev^Uv(C3s zN|%G6)yLA&1O}h+ZR7a{y0$a=z4E;UFP4z z=TdH0-d$!>?S02U`^%yJJF7FV+_=(El%2C9&eiE~&=k=PQB2_yHw&~?7TR=+8|R)( zP%Z9FuABbV^HN>i&F|dL`FWU5|6={#we>6ip*JTUUD_F8Z!hxZSrQpISn8YtMgQ@?X8hwQw{8F4secwmxcxo2M{ot3 zo8yKIqYqkAYvfk{R$KIwstzI%S9RBlQcaz6Ezv@0Yim&JVq4#Ge`&rgUS^<1VTg>Y7 zYVudc)mKz6zx_)x)nLVT&DBXgg>6PVJy$b4U=vs^pr-1OM<`?QbquZNW%Zr5}S)tvLHVqN&E&=X1P zowliWI-fk0Y}ypUntp}nRpcJO#_8LyV~aP1rycP0u#G9lv>bZ}V7R%=CHr27BSDxof`8 zy?Al{eYO?VuX|%3ZTxfe_tC>s?l2hszwzt(|NW1@p1+j*@AA9!hf;!>iR_Oe{~9|> zCzR-h6fK>4@5#GIo{n$-&t$ng<=2_oiPgfrX5VCG+5P!4YVYm+n|Xb++_jXSOi_pS zDk<$YeewF++AIcbYlUW2CI7UP4bPJ^{QNm8GHTWL%{P54@O*ph{lgh<-+o_t=C!&a zvA=7{nr-LI+m?#7Jb&?g3`p+hpYDUzg}MFet1h>e%;s9z3;YX^ZzZBnpgkl*VpYcRW`nhSW)#ByrOG3X3t%+)S>#=iN!zaCW8*f*B zG<_J=Xw*LInR(L=AKk?)j@z|&cclBY=S)dlobg<4dfuY0z*Q4{G*=4b%sZ15dHS-! zp~r!@H|dBo_FkW=QoBsJ#rCnv`L*)}&F823uz!9w<>56O<7q4WZKE%H=Jkbch@2Am zajDK{?GqnQ3MYSE(%{>br~Gn9ncKU&1{3(EM3Qftn!q#6Bo_{r6GqfOX&m*SyE>Ah@eZEEh z)ysIuz5cIMa-i4e62_w?~+}6&NUy(`JyyW=)!Xb zk)CIBb@Jp2n`b@uieL#TP&**3wb87P!`h=&QPeYY|7?%bri{&wmo_EOy6-H>C0Xoi z{7HOqUcQRPnr&>?fAT&HxMi4@bH3oc)s*Eg3(~!gr?qX%Nwqe-b5-K&7uV?irC)Ns zt-B-Ewwq@wZ^D_7!-p&s-$mMQRcMQ!$``ul+S^XAQ;dlcPHfJOHytWkb~|-`U{Vvg zTDaIs3VWxKJ-ZADf3uG-VtG`QCb%Z4%Ra2!V#H^gZRQ=3ngXyd0 zXwE+6q{|k3Yuj7iE60sC-p#9dbo0>8NSpf8ezosAJ=kA9WQuwEt={88W=KhHbmWh> zdyI>?W-FMm#DEPQL2a`ncPtr3-BUjm$C@9y5VS^Yxv zQEhvU<2P5;y|4?9kA9}UM?Jyiri7?O&=kfeQ6@Z|vsGuZ{{Xs^Oo8@?vazQ+MKBSDsI10 z&bs3gl`B|p7;G!gW}W=f<=dpT#WoMwq$A z?f=`YHg%ij_V8+Ua>mfBbD-eTX*-X3+p{U{XDd@#$=&J_~C;V_imM6UnQ{a_4G$h z(@WzcXMcJhx$bVW(phB-kMABXy%$7bqC3b9(cHj}xzUuRX?VeCbNI#9OKDvO3>l=V!7m4PC$fn7HsV_h1%N&bX|& zqVuQTK9sndak2JS-kk=;CEHEAP1Xl(d+uKLd&}pLos;;|*!60cY&hFe=J$A-+)C#X89%S^7PePQnpbd4 zRoe41LR`hcTIQbV?^yU!<(4t^fC_cxP7Uff9lK z+vV>IZhkG!pKKf>cFsIw#k*YFyYG4 z6P=zPZ){s|^V;6FtRJ^Bu3F7%7jJWZ687=uj2Tz>xMG7}U3q-mfv0N_s^^iE&G?b^El&4 zBh!hmLr>q`6m)7r-t5Bv6?=lko#!t5dg}V>sYiW%&dgl0WouZ}CGWP)m7AR2-wumg zTod&F$2S9=`iS@c-)eYEaQyLa=3wMt`R9J*y8OPMkFNeXzd!Q)nf>PHAGgnP(aU_Z zVzN!UoH5V(vy;A_2mhtllP9l> zD+@Wn8>jo(q2ux@#V3(>iX_Xr_6AIJFm2vzq`HzjIDjjRYeMwzEPt8M_kp%A(>xY_ zmoq(l^cF{IhP!v}$;B`J79O0nbal)OF>!Y8J@vm`>IHgijxaTU-4-sAoPJ$I<)IU& zNtJN9;a7nZ57$l&<7AlmVQxeJfxHcRUh9(g7sN&Sth!gXEa|l2O%0u@YsKL=cs~^F zkFC3)`7Yp<@Rqe^+k=9;TDcbXdyDta{m0)Jx8lt1rjn^?KfU69^?%)$nQ&n49+8E{ zJ{ljY<2U+NC-c~RF^SDFaZ+j1S+V`1&8c@!L(V_hYRmoN{4TzA0e)PzOE_~K|L7z& z7#`A_^13{4N&5HnJ5^FIrY5iBJ$CzWMWDs`Ic9HO7YJ1FPMjO7qqozbZN6Nll=PHC zt1ERky{wyC#jkv7S9HI}r02KPxJb|zl9Em zF6U+kZ~V#`sb!ab>-96=z1Q{%cx{tb{U!I1XP)Z>|HHPQ&SV~%v}UDd^`5fTG7F18 z#8thmn3#4!+dVnaqnLYXSv-Gbp>nEm$EHuMcHbg;SHAvwXyW})kBCeM0rPuL@BS$_ zb6DRoA?Bg@!p8Hw>-L&x-tcw0cI#-;!^;mlZv3&@-j*w1U3W=u%ZawB$IOfm^@%;c zFSJHY;!nY2#}xnYAm-|5bMcBFk-99O**~+m?O(k1=~b^%HOHAwYcm$M&Ar8aDooh^ z|Cem({`IvH6E^5?uz&R2_S>`G*QUyq>M6|T8q>_){ng5Q^KoNJQNr8rjc4XwoT*!v zd+^`#7_+<9di-tZFr9Z} zudhXcpgP~eC|<^;Rn3>mOdD_TRZUZA4%qskMm6@*)R@-Pn|2}j+m1b1WFx3?cHIMK z4~=KGUydaCeSItP%_yutr1pMB*X-k~FL|%MC;a)`q)E{eF6cx%Sxl{5$gq=rPe6lt zV*X-pt1+x6*Yc29Psxwfsx zN~@*wdRC=(zjNbB*^u7Hbj<(x!f*Gj0#~@LT=6J}S@hnTcQ&haW-Q`!=6}=>sg{57 zwf&=WUp_Uo_1xhIsEY79)eb<>u}kN?S@~y%yYY(iACtpP$&uC}H2XBJRSTfSuv17kpIOdCBEe zk-mJzgU_$O=Pd~pozR)oOz)6rbK%`DmSix>|$wqqe!C zAunB$IgiIhZ7W){IY@MEjm(?E>%JE1D|{w0KJ-%l6mIbE)-#Ps!CmPSuNSqHuCota z|8_y=IWFUW)3-{i-QYLq+NHQM;lK7h_o|cbnHS%F`xQLbEA*xPm5)(*DZA#qUSoAg z<6_U6Lj@~1kBOQ0{G4~$+w8_JkCe=XzUyKpE;?tK^(CuWI`-!tUAdTFRUR29)1uph zZ|vU4@%T_}-$L%Cnk$^rnx;p+IWu|7Zu_3eYmNlQoP4$;(DTcaj=YK&nF62Q6}Ns@ zSR1ptZOzpJ8@{W*&+XCC-S4r208y}oso$+i769&=26Q7KX)yVCtm z&-Uz%N2W^EE&l0uY}fYq)TJ9w-E`qpG`f|(OJ~Zx{c~mqGW}+r^g#5P=EjsNv-M^# z*>21`arstcK%Y?0tdl$fk*hC7{5ZML%=a*3!TiU$wf|o#ZRTIP_WQ!Msc%$GSR!{< zsY*w$k2>amGwzo9toyEqt#zii_Fdk(p7sC#Y2{8!q~8>>W$w?rnlQ;%N8{V(!!v_# z6z0xen|u1JPE6E0iH$pFX4;#kIX|*|b}av{|D6?wK4>ROp1d=y`)#BAwetyHFf7(0!{y!J+;x5os$^TOezx+G>bZ&oN@~`UidH;U3|G&NebM&XX z`)f4+->?7mf6DRK{j16!nI16|z7^uR z>8tnr{KWpPs!(-zt6;?+wX7@LtmUQ>8FSVjOMmnyT=AoOh{%hVOWfB^fA#st>9|Gf zxF53yx!VOg)+DWOzO>Hpjey6LvR@v%R&&kV9%>=8@bPM^y)}9sI!~Q;X+OFWExael zOF6ev_)TNXf~C{@^(A7NNdj~?Ug&eZz$vE<2Ab^Ds-f{ z-?!k-MQI)O21CO&zQ(;A?_RpBU|IL{e9V!|duG=j8_)E6AIY=b?WEnlUv{=uQgR>f zOj;iqxkk${Z?l%r2N~J^_nwJqe=Dn%U*9o)w*5rd?CdkU?q%$2F45Ps`7l?v@y7E@ zGvu`QHhY}tD5|SjX0_4p{hvigk3`wM-?{DaB9jV^V{Q{g#n-ty++F8yare~2AEFy- zSAY8c<5}>_uUleo-iUh7W&7^(OYN%`Yzxcg*_)qV>AJ5kbZ1D^+k*V1U)D{R=UVYj zoNIqxhUcZ0vS21Q!DqWBxap_Abe{d4-H~Ze&!#HYh5V09a`)+{Fh7X?w?^8RH$Pp> zTsffot^AX3cjK>|VV|b_psF(Re=N%}M~(WWm8;a(6;FBlW+`K7VyvrF^THkPRO_5& z*Drh*yg2Mb0GspO-Opb0TfbghapFY6@1qj}p9S`EpZ+u{*Y3tFcd>7tR!i^M&QR|0 z&AfZ|<3zcz@Jp8BK9-u+Pvvr0dswe6+`+#2-uo}-s*N%=E5Hm~dNqWH1>f3Rl{_m9M zSN`2-=qSgX+`31NfoLymA=3KQ}lM0)$-SspI-fX z9%i^)Izb|AL8W3&to|d;^1X#pQWkgZw#SI=`aUndzH70{+vCf>`z7s9@cU)#duf#b zN6)F3Yu_K@aOzgh&C0v8^x^e;Nh^B4i+vZU5pSE8Q{=hrd&z&+$0wfWCEn(rbKX1K zDYLltN11JVU47K@{QWlU#tH&I!g~`KSeX8E71saPme+gzv;6$?ht9oEV_!Y|`Rb4C z&%^(J^ZWkWp=W&R^~#XlhQ_roJ!klQ2~>1By@yxQ@a7q&yry15wzjkj=I@nk+dZ@Y z8`)jm%%;A6>ppS57Y|vj->ZB$5?H98zg(%QeM^^;RDDD*@8y>PybQA?`*KZ6G<4-r=}jwVe^*o9ZNG{$=Szu` zq=}jHC#&x#jCd>Vmh27xDv&v8qoeJ#@Yn92|EY!BY|Z~!DZE6zae|9;3%CBYd_51P zZW9|*X3@+ejOtakT(*%XzSvEO;#A!$9nI#LR(8xny#K6glC$uwF0~x%;2C9y8TZ`y zXS?uHv&DmnC+FBIiioi32Wot|R{s7T+u@*Hvl8~j?)CTF9>#XCV$;r_=)BHheR!jz!lJ86Z~MvOOoty~V!gdW3VcpmHqp*P581)7p4?8Hac$G_V2>> zkhthg0kQ4N=U#NY7j(q+Sz5*mwoP092c+kjsNS2&7NLC7lUw&W+ov{8E*LBI6Ti{THMOk>QFlaO@&A~ z>;7_XrOe+UV(H7bynpYcZuIzxwDxL41p%{5*VrTT{MNefYnJ}Fir>O}L%5>Isb1sc z`Sw4>KHoZYS5Kz<@1F4HW68OfWqVlu?d477HeVZIl)koz%Xyo0`png?-|wgW@#TsA zVC&fX!TaFPQ`4)Rf;V(8(fzx{SYfB&PLIsj4^PF-vye|0eEBnz>-*+oVFGXFN;tR4 zan3aN`EAMI^q_J8xg_V(BJ)dqi<*tK7Ly}iuo&GfMQ z;Zy(n+Af%_y?Wie;GJunCcfgGeDcH1NfT!t%DMOXYD=cU)Q3N{j$qb?!>LKQ!6hRMGssZMFA88O`vpiJEqSA1H7}!gm-}y;zHq?@+y2merg%1EMmeqiud++D z-REh%xnSetyCCe~_iul#F09^|{rt3YkJG#Z1DbvamBXMWai^Y^`^5+M`OD+Qc^gynbtqsESGTw$i%^OuE0SnWf!t&wO}r zd(Isnj+NP5OxuDxg#Q;mz4%;m{@uNYmI*3m@6qnnD4faqQ2pGKkLQ0|#jR8b$oyiF zwQl{KI}I)Sk6+$9HTKGbm${WmqTP-*%zLz>XDr&i>t&AiA?G_wwsxrRdA;%O7a4x@ z6NXN*3|k*>pX=1~<|Xs%lgjFDg6n;5Ov$=!VeY39&h>O{-H|(yH^kNZp1TP1eU7vU zowJ&!xawi4MOsXEQ}Mzle}J+PjPe=WmBoVz23D=eQVF# zkTXZGpHTZ9z-aS$L$w>fyVTCOt_r79iubSYtYv<>OD3V>S^1sn_o4zqr_EO>&0IY( zT)6*KM6_LV>{Tu1Ef)j@*ZVxY{)Q`k;lg9Rnzs3k9b3+)y#23u(BQhw)p?f_GK$r1 z@A^7nu46!H^HcfD*N&Z?8Ww-sZe3=6%Es5mS3I}bvEPb$nbSBe;nF|54G+IsFRuC_ z=@fo`-r9}b2_ZUG=c70RAN_r$S@L~e>(kt?)|U{#&do9gW~_+mp!(=w#1_5YxC}h z_kZ-CKmA>)GC|>kJ%cAxR$ zR~yr)Ck_i4pKe{ZKtQcx$~IQXl~V-`?%7;1F5Q-M;Plg_Yd%kH;uIDTohJYIzQq&u zL}j0hLf2sazn-miqH(L;>tf>_53cJvwjku$>}n0y@X!>wg-Y6@<*gr{I5{SUGM0XL zwoo%Ka?_6{1`)bX7(Vx#aO0H;=TD~%9!)dYeeJT03 z5818fm75~D;M6wWn{NH{3i1{mtG>9T`?UC_$(1js_FtN+nD+ZRkL2ZMLmLPFeG&5= z7FvZQHy?X{=|<|`2Fp!`+bqK$pI+3a=IB<>JNIN1Z{nq*$*TkJtkqfC+AZ_6AecA! z*@<<3KYfXmZkMZT`q}odEhDc|xs^?D@#{mvy&ooVo)3+f7BJ`B`>Bip3m1k;8a$nL zs$%sNg{Dc>a&ixwehbdO{AB*mum?-i-D`{;T^`k$~{Lq>0jx$eBHo@$9}%$JmnE6E>-o$c+T!O z%4f1OUn|c1#LFtW`iyhLwteeweh&Vrp|m$WFOnFvL_v9}{bMiVEH?xKOS=!6k zqow_x`Pk*NyW_VTXl&hh_Vnwl3n?>wo^fb|TyZn)INQ8->eWdb^k#UsUZ3pJ%(;B} znzx!8?G5KQ8#c^wY>3e@$T+cX{gUs6##dBUr#)i3duUTfUd*eLfBrbVJ9|E5d8OKS zm#0Q2Z_AaW7Jcn`Z(DZPxjQ4}+M2Js^0*Hz3p<^>`NrR3xnEYr{6(Mr$}gI1pP&|V zeO3H~mC0`eK0aA-DE+$7yi$Ic6QDF zBKa+0lNF+W=St1Ly7}$Fq(7w}^Q8_wd-{3C+51%v=NV$BbMhFk)e5RO)^n9%$rAUy2tqifh9=tz3>#BZ`x!Oe0 zMMlk1vZeFZJ(GEOXS3<<^!E+77JSZ__3o;`=l)}J>i=&(|1bXjGzWzb_azT9aIpNd zepK>HTi*Bh{!i6kMgFsY^{8sxRJ!{}pqr)0$0x}GTUNe#k{w)kcH{9~=VlpjZ0%v6 zlB&Jp8|-kRgqao@FQ{>vYC_RKi^ zks+CB>Z8O<-(*)elw^A?xfT&`dU1|=hxbnH2W98ZyWKorlr8dTiRm5j?|K0p8|s=C zUE1?NWX@iZ>FTCAA0J-Y+a7n1W6J&Ia|67R4}L3Kmi)PH_jG60&P|Jxtz56!zI*C* zxIrRU= zldw!a{6ymO0r8g`S47&hGs$)DPtRw5wCbVZa-~GMpy|Iaw4Xd>Rk^=uRi=N?^Q&(^ zufJlZbvVVj(>~ZGu=b#mMwHOwI@?cKw|-Y|7Hj9kWmz?sxFoX#BFs7FuS?+cO77ZhcBW!;!kx3Ls}?FfJt?;H z9k>1CnMWsAmwe1|`*Jd3dYXrp=Nv0;vHru}SANd1b=;WXxyNKq*6(~B##!GNONqYO z|K_@6@7#&(8Z(z&iGI1M^ZGZJvS{hzFO1LTya@@>PdC3~+rDUXYQ=ljRI7zcbk92X ze2`k`)I5L3{cC&XJbHbHt=Xxr@ce^YdmCfdi+cN=-0|?y<0&83#44VBoFNfJE^VdJq zOD{V9-r9EVQFTfG?EB%$2k!r?OMklH{c^LssK%rfZfSp4tb19Sy2!8knP-({w8qJE zI^Mc7m4(t4NwaBh&8VI5zVh8gjcAMXo6`?}JT~dqRNko)+nxqmP5q}*=hD~yJ8Oe& zrbhM|P@imECzHPo}OZ3Yf5%cC~&kS?j<;efr``pg?xl2nTSMFPPEOK^r zG86O4ja5s&vVLPu7YVIQ-EqoGeWLFP#wLVEGrl z(B%K&xB7qIJ^Z%*&kC-%`>U89v}fKpVjCsaKkvEPhtn5Yl|SDSyLNlo^mCJ+%~bDa zUw_esd+*<8d*fET>2x?@dD*56M=j~lqW|Z%~ zv4)j-YEckZ_vI^-E0Q)&b2&97)j-|H#?$A=)Q5K`J(+jt>aTZi-{xeWViVbDoEjc( z^x|eNTchk&Q^V+;JHD@1m-5zav%B~@Uu&YpYvul{)pO;Z-2W&2{v`YV*X2*1eL4L? z*q6y&Yy0=ehdUM}N(mi&bLUt8#%-6pv?_B9Srj$;*F|^;&$v`!wp6-ss-8=xeAxQ8 zdqVPW-29TT_9$O#PD?^=t@W+XQ9ZvNbP0;+K3Q~QvsxL`sy9h<-fq=?ew*?7mm6=w zo^?IlqNAwFk{q!4>wVo{$fq*FsggA63O zCfDAS+GuFK>*|qTXC-)7O^_FR*){9jW$8at8lB8U|4-Yyryz%4=Jdi?;mFe9 z#U~o43e3J~H~-t0dAkesw@me80Jdz8N3|CRmrq2@ljGaQK}>CY@PL%!(P zev{>j_pdx|dzwdgwuSZr&BVMTPl^-YUYw!+#=ZLfXP+~Vyed8ggzkU`|?b*rOeaTN4n1brjvJM=f*-E>)mT&w@!(b{<-(bLYb;# zHjOJCmKvyQow5@vJ-0sU=aCgw3l3#lOnXKk@ zo_RI3PV@HTTi4o-?l4bdKbLQP{;t3(Q3kHVbzFzvvg}ly^K{y*oxRmR@^X$IdbO!m zJ)b9iqvoO7#U;%qVpmS2Dc7uj`m*4#<@{yu8Rl5ZO}kWdI%oGP%^!T*IQ=V5{@bRT zZ+LULikfWR=Y!4+Md^wvXQbcEo-?0YTXM~%c~NCKQ|tcy{PpzaK7)7{P5oE0`@a6U zdH>J3!-wzx@&Juhi-5O{nLCKqPmKS;zy9;L{?$oe%T2G&ybzpp^81u~GbLBMzu#Ih zNAvNgf&*cOzY4PNF@ANMm6=d0)W7%Kx(9|6L;9PYWpWaI9#!lze!p<#hw0{Ob8atO zEw!8TM#s|EhCf!n+3WEkFSA-O-j+`}W9IEc5iwf3%l3&SORn*ny=}d--3)-leqV&3(C)b zvQvJ8-iC8~&&=wWUhT7cMwG^qbxZtm&m7r&^Y$Ote|!fXZ<*Wort|)uPe*RCe0tI; z+-qqx%h7qJ?L3|fr(DFopX;?wEq+t1le_2KsclxfTTiiOzH+upS~9Ks;(yycj9&M7 zuVpP$ntw;ZV3WJC=$xcPmd>gA3SWM2F7YbzTgQ_hk|6NzqPNhlL-&lg&K8m2nHuB_|+ck0nep6<H{@%n~IJk1e{g8KIezIdE>K%-`Z++w{w z;`8`-iU=^J{Fcn?Dcccf;p_YI&MHOs^M+H-$Yd;e_DkzVdY9V1E5_NjyQTEzMIXI3 zf35D`Ygxb3xS!t;P`dhjr!G%*{A#I+m_6Y|2mb~%su;HSUVP9#@wvNLrl|Ru9Hm~? z>B2Xix;=TMHZ?@reW|`(T7EU{&I4VU==9SMIm;iv5u0JQ;@-;{vvs$#^qTGaelcL} z`L;c7cIvgYKTRvlrnP3DTrR`IZKPwMWmK4Rdv?XQMOH_h?^dgQ^?9(f@?9?LNw?QF zwGq=loA+N1x3`k3d)fW^&)ozT7N-Bapf!>ISXVr%x9i^@ySI6NaO)>_PraCr1}1y` z`FD0J?7N@&UvG}KS(|TPn&SMv_uljTLL1{&U)+7-=~@02O$yIsrdZgr+}%7&fk)(; z!#bt|pP%ddgvZYBnwk-v_El-+f%2yZSIgb;7TsgAP@Lto(?aHSo7T;?dnZi!K51K> zg81_0=2N_`qD&3bI)hU$esYbEk33eak*hZ+=tY6z?X1P>+{GHJuYWuDZOy6=bLQ=h zzi%I=-lHb5X8qOr)!zI)glY3USEnVHla_7X?Pp!3nhuPA!r`|~Rv{k!hdyPSet7#&`w2rB(j2YK+ zWj{W-FMO4I-aPwcX|uTW*IWWtaV>3f=Vvo6{Cdo0nICJN_2Rz@FW269yzu)}O{aH> zX+>Ke_FcbXSJ_f@iRDYEP0kYTjVDesE^TV#JXZZU(rrU&QD!xZh{yb5xqpt$o^#pL zSk8Dzgil+pb;h_e-l?N$`nAoL2O{d$c+a2TqrBaqo8|nM4^y=i=BGr~rxgC{)_mTv zSKh59R3bD!^MsY$>ad~&vEup9&-gzqsb4R1@pRqA?&CMA&(v=cd-a(oYmT9H!nUp4 zs;6fPu3PcjLcGuL`Gm%ktdrl@tJmdcdQE%o`_V=ymQiNMKknzpj}%%Y)uq(4Y5Bw@ z$KKI+n$vcsO!vfYqkXHT*JZGMuKYLe%OBCa50X3Yzd2r={kU%rukr17$JXstWN6!1 zxM%(M>a@o@^`e^I_m&*pzhx_9GTWiX3+1!)9|T(6R`c|K_oDj5ZAI@L=JO)Y_hdG0 zvcCQ~FU#hy)nSRtpBGlhSMId#Q|2{sEs`#dk^lbfCdXre6@Pmro%8L!Rloo5 zdLU`Xr5j~ijb(~U^Zq^%RkPuDNRm&qtghxa@-hFqbDdkwp%U&k5wWp@Z@o}qr^L$rqzTo^K zN;-0>Vk57m-{p5U z8rXxLDxBT1?hJ#WYTNmYFNY7myXDmAC81omaKhOMEJkW3g>yq~BP35-ie&GL`ui}m z^%CzYi}^dhZsiv@O`yRc*g8@`8YZpML6p(dF`D5_M-b zmpVIh?cJPeY}TUo*LuF`xBtO2ub+Q7b6fSwgz~icX&m=;`=%x5-g_f@JvYwwFT3iZ z;};h1G;k{X^TM+B{ll4i{{J&>EKJOPoVlip<^A%_{13jaIkah7+G@GSTebRr)y?Bu zk)RNp^L0n;&7&u(w^U^QwOV8|ukYZtt#yIPS7vPb5+K6ytH2`g$L4K``&83j9a~Y! zv)Z9jx7xAdhNKc-&U&qV{%R%L??~u!s`nPXa`lLJkQGb zE0(%WxDd#)&@O^Iz=Q9e^`2)Fi+i}5>dqfuW_$n4zO)Rssfp*5W?ij?l)ZTEw|cp0DCA|Pbk z!@IlsclJD={`tnUHv0)4dp&Kd=FS(5vR^HBPI`2uu8LDQX_9yFoV3@k=j0#J_Gfsb ze=zDx;g=ib5-Qz+hu7{uYhdvBW=rP_Aq&?JzmyrX({s)QY%-B|T6QQWRPR$>PGIdq z6|D}RyqiT1BHuT@n>3^F-XiWjcaLx^j+

          Ebz5}A->T${FKmlCVvr)JeHlQ_vbEo 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%0D(?+XI%+lc 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

          `E+Wa}@t*g9h`s7&a14)Hvmo&_@(6e*1YinNf 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ⅇGUa{0Y_%9&*;gNO!e?30V_Ue7v;@-<4ZzmZkY>7F(>$--+>emfCX2}&B zq+LGl$}-N)dFXC<=-#e?IX7x8_S#OJcz)iI*B_)e`yW}oG&R+go6%A`e`B5y^Y@_Z z&q7-48gKi@_*x6SjFUXxJN3d;qq~;d->s`YboB0ltv+GlU&`Grlk(3$`F?)Vx*hS~ zwNK4mutWDu-?7UFH-C+a4g22rN#m=nQKOURy3;`sdkwE!-a4^k?+UXWw_Z=~w$e4< zqvj}CmK_+jVy+v@OoJCQc0XA=CAW92*OxA4rL|99@O3wb+*+{c#BWt?m56p;7p!KWCzKOYWDY!}((A+l)cvk5`pa{EhWM}!+* z*|xvmBKmaW{PNoeU#(@>_fk27+c#aqjcM`Em(;^nM^C?g;%WE$*niJ&@^`kg{At?rjXX324kspEjw% zPT$~>(S`N54@}$jt3XPE`Re-{eHIdJx=iyoO;__f>b!FY*FT;O`{aH-{%Of)_xGLS z+}E*RpPLDY8Xp&J_kLu&@M*u575|e@kE%Z%xBoG*=EFt(vyL%e{@yZEd)#oj`IgVV zUkzG0>6bem$TF(12o@%ZrPtLCNrup-x zGrSwh0v>1m>rCZUKcgJ1Emv?Tyy0>13J2bgo)4ouH!vSM-=_R-TkG$W*TiM&zi^cA zZDwUVIL9f4clL}2*RDNUVY|aT%6iY{Ft5P-TADHmIybB8vo^D28}t_F6_**LJc^K! zypz_S$12Nq$J1@YlsRR2rcXQ1M}?nl-Bz!(BlYW)d6~~7U~}=k-O^w7`<>JL=h>R7U0TR?C#-(`!RwiG-`;+HMy$y# zCPIkCw4&*L**d?C&)&{S`xf(FUq8cm+3Sth8}_pmH?L=Y&G320x`i=}hi`9qU$yOt z>+28M9|YIBZ+_cQSixJJup;vR%cW;`{_Xq48rQYx`GK=$TK@XoIVprq2`2FLTfF*PM`-cI|e$+L^#ln~!;|pC#uYEGHBGd*}1I zSgjR>S)W&|EigQ{xKUZPQgdm6>{E`AcE8)ro18r?gU&O(*>&Rqll<}1)dCKSm#+S) zFzw<|>uPQOg$eoB+kdC;o1T7Wayj=&-X{-)s}y?Y2Xw3K)-Al&=%H?*}4aTRu*R>+qHQz<-v2i+5ni*jn zf9IS5r)zKX7A^VBES($wPFlP4_H1otclmwaCNxd6=#TEs`Fn5jEB2CW-+mnJ7MJOt z`TEpCmvo!lo`o}h&Fh(cD7&J_h2;&ek@ngAV|s@53m>eXz!K7 z`hE3(>eopBP~@Jlbfw#FDOk@yglF_`MRhw|Cvml>aQO{t>T-QzHGSIuz!2? zYbD``Ez3VYI`u>{sfNj|sr&8A&np*w{w@E{tM9XS%9gV;pC_)63_ZOppLOP^$XmGy zd_KMNp9)IMcAJ>HqPqBwK+2{!OKxv_aHTQr<&xAh4+T6Ogsw}pD zc~WG*mcOt65p8+xf&Fx8wzD(O*Y`9WZK!dd?PPdkGtV1idDES89U=?JF z)(Mh3_uV`FIow?0{L+iIyN!Iwt3!fW#0FfWg| z_5QL9U)GwL3nGj=wwm(^6|PxlYjyNQnBJPFUrrXXe&UsV5I1Mp+eeKXloy*kJbfvr zefMO+1K(4a)-+o-Wpy@Io%!7MyH-@;SNB}D9@QmXr%iv){A%6jep*hA?Uv@&s2c8h zUo4F_g~UFeCBh*0j;ZF(XIGWGg_nY){r^cf1;reeNoG}9Gext}b&(F+HCN9oEmm)@ z$>=ah|9EwY;jBuH7?Yac+^8I&$=6LQ#NbYpiQ}r${Pm z1pf|Cey0gfy|f#3?|+NkAd|)tur5?+DMOr|%BFQ+#g=QhUo*Y`ckYB^bA&#wYdo(f zq$9~ZJN@IsphVBy|0^1E7e4x3mCJE7c{gK@D8s!A>IZhI>`*@RRbyXO>gCuQo3D3l zfA{|g!S`oSLZ%FfpKUZ!T-cn7um%V%6@|495p6#j= zbRW1Zc$K5ht}n*9(D9?O!g0Isw=?{_e>~&7d4gx!hQVlFJ+oLcRTyn ztq*TohX-gJo#l97^|yy2Gb6Y>y5`T_mw#koY3FCg^swW_f|38?Lcgt5@n)QCn^PP0 zsOIqMe&c&@B3ShUuU(D2ba&v28{Zf z;YnleM{AtQj5%&Um2#53zA1ax1jEoqb{UVn<4Q^sJuYbpPnpUeA88|PpC zFM4nNJN2d`CnYD^_})p^*^)i?_foA%v-`JPWwn>z78Vx0rsQxg-^}Tg!amc;~WX`D3j(=Tm1EvpsuebC9v* zaq8(LhD&#N9d2)(zT@JN?_Re*^Dxeta_;xZ*}JloUhUj)XXk~Vx{tWtTlgq4U6;vR zaQxBV=X-mnDkRUg(hGG?Ew zKm0>=u)R1(Xrx+2!n767Yc06WF)s~PRNmjG?a0l4aB*sfTWIe3$89;ug6{Xv2F!lE zq;ytv-(kmVrVpaz*L;1WcI@Z@MfFhq`4ua3ZrZ$ln3Ghoz_9w8k_6Y+f152=t$+1= z>ZRXJ>{|SK++`Zgh~=4FPOng-AnX4M8Og0;2Pc_KP}rK& zm2Sys^YoW&w07nN9k+AdN3j=zkzqjcuhmNR5@mj9;NAImzD>p?fJxZeYlCh-D=?go{ z6Foi`ewh2AFy`j&>2A8QJN`#LOR|&6nzdI)U6oy^Ms%AI*PrrjJ^i=l==fbsw>WSn zT6o#xI-|5BCln^!bYah#vrJE?J+PK-@$_>E7p8<+zBy<5?_~qS@q-bXRhhESg|j?9 z{N-$_i_pH~JniYRa?@A)`wqGZot7ziXR`YK^&A5SBd&tG7ugofo^EqkcXgq+Ajgg! zQ_~N(mZWVdxSI3IQs&d9r%|GvTb^)v9QgH?q3PEz73JeIq-^Kj5q+$(A+>P%wBK&? z=PWQ}$|_UVT*JD}A(?4)VqW#$6#birb{yh6&o8cbrio+x^_K@r{jy?86VE?3DM)>)a&>~@ioVhZhqg35 z_q%cZh1`SZtk?GS?akeKkI|dycj9u{jL)&Nmu%JYOLKmc^J31_9dhUGzSSo?EUWMn z_dj~`;TsG4@L9H^T#3tGTzWLK=w4v$zPr!v{Ndlq|G7kUY0A#kk6YgB{)ziotoU>1 zn+Fp4`UbwW^`}=^XRC{+Gk>uCvsQi4p0)D=@5XL+`rbZGEpywRxaU_-Pyh7dtNT^; zmq)k8{8)P9e_8+Hmy9)kKDsZ950p5fo}Mp~%lTtQdC`+OAK!d=XONQEaC9omTth4Q zw9K_FSIuW?ESMR7zUTAdn!L^W){ZA-Yct;qD4bj4_~`JpIXCz3y{jED@6g7Tzmp|Y zxA0EdZ0aJVVE1O%Tj~Es^7fVP@8akG2HoJqS~+)K?caLyoMZA4dl#3ho`e$*r z4S5l)jq)Nv!gD1|-=%PASe;_1-hA_9L6y+KQ(N{MN=>|`_}x0i^`cYuwp|A0heB8I zc->GpvGZp6RUpxC^CnU~DvIs=%Cc|2w#lAFL{<4ZIu%dBuuR_L z#+p8D@@|KE>N$^fXx?-eJNTM~(??b7nfN8W*U@cfnVlbt=6rgfDflPzX25x;?O~Mx zv2MNpCfQcooW6PT_OY;wAFqEaGOIr-D<1EC#ZF^0i)Dmt~fI zZ#MJAiH292LeBSD8-%djm1yBpWpogqYjj+Bd+CLPmfrXDR=(c3?WaxWHlO-M)iK`e z5%+T#T6g?dqHUtiW?s-_6rDM1U1MNw^}G6M+eOmrW?T`S?v!*^_rCU0%YsJ-4WIdc zPYH{iT)9u!XZMMCO}Vp1H;U$8y2p0GJ@oGGDUW|2id(+>4QEYTWXeZQc7!B%q7tWJ>^ zPagR4rLlc8c;gVaj3HQP<$;Q_fQ++s8Eh8Yg@n>e9VRO&|Cqk*{TiKPAz%A99E=se z{{0fWL5`HRnxw1HWqFzEW9AHz%BiEX*$EvYWcX+`~R8CpIEMMKjH7k zOx`t)k@G$UJ62y74_LhZ^Nut6DS;c^FBg8Ss<`FIcJ;>kCHlK#uhfR*ez;&ip*L;C z>ezYw=a1aF`ReEX6>QF|qG_U1HJRz&dJO(P45pcxhmPI)(|0%f>&z2DpWeUhd!{V% zdRftgyGO%QG``M})GuJ)R-d=Cwx+L$rHHE}W`9lQcdNdy>$Er)=(RT~FrG1#xz^H} zrTV2dJ5_V$qlvrBdTI~ss=jo_RC~W=<>fbXuRYiQto@FaJ+AV?uH3Ervu__}f3x9Y zbmk<^zPy8aC-o9MmL(*03P&Xt$+jjKT{~hhhvCTPuM?Iqnpw=>vzzalcx3D}9*6AI zRFxN-zpy2ITlVt`&$(YY1-lphFI}~Vd9nBA&I%cZ9gYr5wFbySG0i*@I;`JDgyqJ(;Lrbgz><+byA zlwZs`vy5{xr;S$jm#e3vEC2iuyrEtAZe9C^8L?N@E8?yz-%#HB^Sp-siG*(|QzVn# zeoqXKp2>B5e)9br>uo;Y(f72xcm3SwWulA|+V{o#JzAT2S8kO)cdX!s%T2jL-!eq> z?;DRNU6nI(nRoR2gsXNZKW_%jQat~6_2l2z#s8~*d^qkuE#}{$rqi>YPPjRB zac0QX1zB#E7eazwU1hTPlyhu)V^G_RzD13@brM)<9> z{-W9G(0TRWfBVnWENFiDB`Ph|I?af?XPexH56rS#({*=QHoVc6K6l0N*bSx^QY?C3 z=exVMy?w0V-thTt*HNB3i{xTA2b64kU2PuBD!eR-bJY{m%TixL9`{6?UhinYQoB!L zhoW>t&z}_Al;XzZ3?Js=7CxEF%$sclbT=*DpWM!H_SUS;VIgjF&f9mU+i@{-oVE#C zsv{bH=xadx)}@6TCc6rJDcq!OwdKdH8JAD%2{9V1k>$2xIlBM;|ChS;d2j6czW(Hy z@ zl}_IK3koJNOYy|y$SJVB+;a5Un}T=_{?asV2A9&Z{u6q;j2%Ai30-+=){ay1oJMb! z{1d-Y$h6|}8|~0J-RwS0&u7dmXXTrgdA>+7DBiT9{NU~rC0~U$2hFhc;ArEz$-eAU z%$#+RDyR4loj;YJzfmr(i(7Q!Hu=Y$g%?e)N=i7Dc|2brVf;TNX8M8;i?-c0zI@13 zLFAxu^t9NN)yC~y2NW{izT4qeHR~;V;dkSMwgK9?YlNHQ7@1e^4Nv+%TVn1z^S@le zpXP*JKHliL@7e>IT@NO2SSoStn&1Mr*x%BjSFgXhD)VANh1l+`Cdw}|t@N9o^Re$2 zp5nD4;eOkF>!SMSH?Ga&y%LotzP@Gt>jw#GOoc2TQnW71wz|*c-CViiyM38R$K{`v ziWY}&RU8fo%f9{oZfR1@%=M1$Y!6RtSlcYO+^zhQO9E$vp>)3WHl0f|96O&MkP10m zF2S+k8pDQ-u}R|G)y>TH2kj30|C*xSYj}Ud{ax?equrxcTb~avD*mz7X8*rlnPvQ` zQE?{%jsHu%xPBljZr(!k9dGYv&+>eqbNS;&&O@s!R!mTI{H5Qds5N6Xzu`BwM>8yz zZ*8+J(&c#LtH)Bf;;Hjq5${KvTW2$gw3;MOk>Ai}&E!&hN$Su1j16~gM=EEYx77I% zI7KnM!cT0@Q}4YiuEpE0Hv4(?boS1@OLyGqa%|K!EBM{R^2Mq=DeA)+A)7C=>E;e|nvA~^DO$IUUnR8!Rr|NnJsJmPbn|Iqvlwa+()luW7!iK;1 z*IsM#NN%%YV0zY8F;h))f}vZ?^`*)Q3$k14T5MN!eQmS9Ug*2SHc0x>&7!8TjqNRF z;ol!j`|rmhZJjCdEw^X-E#0fB634xTJ>I0UKMVLFRM+->&-8=;V&eBtD!*SF{_cv^ z9m(}aza0+W_i0*8%)IsQ!rKv=9cc6KI_BJPMexf0q`bV z#ns&3lh;|*bgz1GF|ui*#UlmY=PiB~uR{}kxS12gtC_FzOU_OD`f8`b2T}1Gn-rd~ zwD->Y{fa@;OW=^FQ)^1s%O&&tE+sIo+&WdrYO3G;t%pr-D`vK5M9xSle;Um%qAH8i$aE#FTw_E1r7H5}Li`mVo>jpFMHDpu=Rupir^qPy<|?`F=MO&hLx+j(-Fy|}V@!{Z=h1sOLCNN&;<`&(_9JPqQW>d4V;b+xdVjhB5XWLfzOuhTCpq;6G z{&v1*=GTu>?y=unInCX9&-0~e=T-@aRjqhXesNW=>0(pqtC3;F(_XOWKM*^>S^NL& zSzp$^k~@5pl(>~5*jX9Fx$k%i-qre?tp4uH;Y1nbX`A2pPGLM#V!&FQb9=$#8>R_- z?K{{x-6Jpe#n#?DsCoaj=A1)uQ3o1*cAP7;pTqVkewvcwPV@Qc93OPbIbK=6XPrCY zZnyyRqdw_>G2eMukMJ}|S+3V)5UBPGmi`{)JI()v>@0!VtBb1t>c|vV$Il5l6UFWN ztmV~LE~ye8jk%Zf<#?$}zZ#cj=f z_ZQDOwTo$q@y##mui8%+yCbptknw}BZ(h8%ynH@t(}vAfSJ$m;KgY2AX2`>X5y?E^ zLf>t?xBRJl<|xVWP3>WQ zcK3Q?xx|ATx7V9D8A6bp2akKo}v*dhU z&)dIWdX9c%s_tw5rojGMwvppoWAl%++DY3Ow;o@Y=eVpgdb-*R);wO5BDHDXr*406 zHsnYAhIM~gOPN^A8XS`nIp@FoTWQJqBiBb|(;hGB^OIy&BrTUX_rA{l`t!yG1;Pe!+ZbK;O76E&njEW zo=+%d+OYKPgxh8F)R=yYF8TAI`T3_$uTB;WwMQ&o|9)i~zJKfeklAYwty?I6`26jdGe&Z4^G|^qUS382f8E*NcK7=K*{>x2 z9SL->*u;7))|>H+;)R5Jd!#gs|kXAT(H8E`FVV!XAB zldWi@ROx2@X|cC&ygw?^aJ&^ux)ycP*yaF%nDib~b$|0FGw*OJEQ&oE5 zk+7Bj{hw&(@8|5YnwwyI*oC+I5|$ zk*P|HzN8)7yrE=K$LcS?r#-0hOksB6-Enl%U)V(*=ImsoZnsO(8|M^vO#_)T=j}s?8o>_3K&!&^v|IwrN)JIm2f`wYM z&tIRi_IgN^O|*JKrhzw$i}RsU+xTIZ1PLUz9#S ze_fqfw4CGbPT_C8-+I|4c08yt`1Nn)o{!(`C&<_Rtyf&WUi_!||F`wJ@Av=sA7;(- z;7XIrwcXOO;jSj!2X-J{-9*x|;s?8l$he91#p05s?`0-9G zyMbP1nNfV$C%{>hIYPJP>zWgIa(HF5LRUw;^i#ecY- zIhDlsQhvhK=Z$sirM#Y9<_UYJF1X=!ap3i%)92Z~2-yCU^_phn}WpB{^iT#Sp%1?TmAUUntkuXqW1p2 z<|4m!%ZrEasz3GrdtpEA|HJA3!|ZClelLo!Ta{d&y|hO4OT(*}`F|UGPCZ(2eaF6^ z5znmJZl4YN_vZY*`1he3p1rn`GvnVG$CpriW#P{Uhy9;i-~VfB>6rp~o%DB_S=TyV zf9WvJyj4@ux%DTj&*fw97Q|1nJhzRFEj#vw(pj(P^GoZj=4CItTFfF{JaxkBRda7% zEwofyqaJ&{PR%Oef>5ip&HVYlZ6>$ht^9lb+>9pC1;17wUcLX{@uL5~V)k3@tgl@c z4_aKeQoc@U$z?Sz*TzFPIbT%&^0UxV(|PQd`O$d_-?|0Q&T0IR;t`npO=qd(v&2o! zYtMXDkpAj$`@o5v4zY_~gv6yT{yJgvHlro0E4zh@k3=;4xF4Ex&FNQuN*bG^x9P^` zw{rZlKK$=E-+1f#Lb-pl|81Nz_us-jWk2s)>GeOod*6Qj!T*hJ8|%W){|-2) zdGtQXWXX!t#}3xmbjxYkPJH&}`?EF7=YPo^*_`NMrsO9Po`zcP(mtXH0tbzN?~nmM^ou{c)oL&PmxH?hvg&cD)6vlZpPG!@Ts zU(qoC+9SPpD}MgoV|(?`gZT%`ljKet7d^VUuCLnXb?ZgegBp9U%@fKNyIvg7{5#at zsN`?N?=#Z75>IG|-fDi*zQbBRE&pBU=C&tEu9A-4 zi;}hXZrL_PGeSx+YPv+ssT<#>yyfjFjAV_N_)#>yTW0AUO?J;qEemUOX0F`0UF4(P z6FoW3MjieA4rP%u-6P5`%~53H6_Z#J%63)nP|(5!rQ#p$K0GYg+;+wI)iJA6wcYZ% z9t{;Un%jQZv2%#uT72%zv!^%9pL|{a_xRO&wyPp%?P6k%n4=qUE$*d+vys&^&1;Jr zCm7cA{J3)Q`oD*!9`ToLC#MV7&NF&;g4ynR%7^Eh%Zk#jvs~BdjmlPPD&^G`o#C;5 zi%nMIb(ZTs4H>i9{@*?;{prD{<5%nI*WSC#x=xTmEc3VAk@Pq62B)}$r=L5KFyY(- zfrcr~_k!Qp=JRJI-!0zjmT>0hvzX-b6_(P^wVKl7jSV+){5Ww*sZU2s z&ECAZ&#`Ut+~yrMd*}aaI~criThlhbH#)YT&OEDp-LQPaV#ho4ntd<))O^Xt?ghnC z2i9-DSl(IP&orq{;FI1Jzt#7c9M1Gz7xQFX;9H?rz5U+#nGG`YRb4O4QHiiRr*QFO z)Tgo@yNAV#}JGL#ayy;3D%v#H}~@9uSYf_@~wJ z|GFN#{}t5U?73lbx2W;S+wqmLdh#(vIh-<+IXQb3=S^>Yb6CTO#zW9!0sVd1w$QVx7qFLw!G4KZuVybuM|VB7S^*DrqATl%D%iN_x^#y zj{0lv+g`{_`{uewR*LD4{m+Nr3*PdTUa4A;(|){Y-`_SHtN;7{9Jc?*|Mcc%?aFT_ z)oaxL&X22{(#FF)BVobfzR7mS56xRYkuiFs#+s7GbMZwR9DbBHX>fYosi?b@)>>j6 z^xkoU%duK(@3L1GF8&2p z`_G6(h#mhEIn6>uzg$5`*UwRGxBlrJ!5?^;Seb5ZO`YYYBVN7CH7a&dN4Cw8nl!8Z zB^*&{5(lF`Nx6u3O`e&}u*J>dT25}tbqUEcZ;whc`i1H#@=SZF@@O~r)G3pjLk!O) z%#OHUaZO*`PB^b%sprNAl9Nsa1*~h+mH0SG+YWB5DVkA74 ztYi`?ywLqSYQ9gt>ua6rzr~imy+1bf~|GuA1o0X96rnb|e zMn_-H;oC;@1IrS(GyDy`=`>-={E1>;Kb+%reNZ}w^T7hG=W`D#oKkR~#~QaPOl8H* zw0N%TOn;eJ|6ED`^q{nn_x+^i4oDp|6=l!bZFZTS4RXaRi zH+X6MTiJJEEWDzp0ZLqvokMlb3ZP$xN}R-_1f*1zhv3l ztz3V-QNGcxwJAo);#={wn;&=WU*G@!wEn%{+LeW$%Z;+jdsb{O|1XigLSw>(!||V% zG}isU{M`K0m&@X2Wo^b9*3Rd*oY`cu*N;_u-k*cFi`q?7x8)bLdpvp|z^-K=|8bF; z>%_9Q$I7oixBQzN?C`kqsKe2-~Ld<|=LuQfASTcs^KdG+`%LHomZ?H3*szM&O- zgV(w^{l~^#^`diT_y1fDE~X~k*>87!ec|u7^|9tJ`WpZ>e2mfdN zdAa?6jNbh^js4Z>)5J|b{NMk7|NrcrXXQ_ReK>P#lh)OWr>|0`zdZ5pZT0STD?hWJ zjh)-iY1%pS7w5sIf?YeUo8-2X7BuA?FrTzX?*2iR*=)S;Rx{t9KhtWx<*Q}S>XVZ! zFW6WK=bl{VxbEuP&1FF{EeY=JiHjE*Z?07rX}O#6eMY_9oC_Qhxpr-DX9oUiyX*Ju z`t?mR>nfkJ{=GQ!Yty^~Cycc^xy@Gw)m+Mca`ecrzU}&k=Bk%HKR&;He&Ih^KksEb z9x{b_esh@J7xg?_H2X^5jzkvGi!xrK2X=|3=&U^LaB#`GzNMS&HZ^?O8}a|?*5b#1 zx47=9S^QPvy{>npSincYjGV*$?|Y1PP2SiSFSki1&;DrR+**DS$A&wd*#Q#DiHuhz zuHTroIpd9|;@3F~I%Rid9zJ|4I*V!V^w78V$21P!?C|mLdTwlZ?%eILvXUJFHy+f! zH7+|5-R-m{KgII-)$bhF`Ch-5yyGaaDcf&i$sB&caHTXEeLvy+zP|J)b9Z$*Y~R5# zv7xnvVSo1ZEq#*LOO{wS1qdHs!G7Vv$9b0zpVq3*Z(!dX%bC2wPPbTPo|EVu0)BS#O-`cAJHd&6` zr^<~YRd`aYud6HUIC5t3x&JF{ANudtpIsFl{`-4MQ2I`r#eZKW=T=P@d?EFQ#Y&nd zMfOU>&qe<}3zhXA42-$;ny|NRL+y&`q`U(fk-&8uV6)b_g@R1}n7^T%yl!VrIyL4cWqQ)prG z$xGjSoC4B6-~4I(IZEoy%E$Wyl8>-CT|cELlT%a2%ocm4@V8XYhIY0T?yUV6msxLm zmk{H{I&1pVQza2RJ=0|SUiMXAe0A*Ti(eUQXP;R2Sw{1#KiAt?M_GP3Y%h~;ZsN(x z7rWojAl&n9UZ7XnE!{I6#x*Jpj~D~v*7DAe{(qeFO<#$SQtzsd4hN2UEf!1pvsQdp zxrOG2-Pi7I+mKsO@-||Egut3W4tJpz{k?(P44+`7F`Y5JqvxA8v1(dB0|n- zeE7`j7*}|$N%``EOGjpT2mX4I&i%b3?Sa3ag4JE!57E;^S6u)6CcJu|Ow!iK$c{iY zHtWY{#g$9QS7J+v)D4=h@+x@oJ6nc&IZ_YOCrf3K5$6B=au z($-GjMt%3OikHWYIk>c}y^rc^hOFjarMs;DkNlqtRyK3r$ep^<7`i>9z5S)f{(_0+ zb${3G`G4?uZmgF~&mC_MgO;T)%#Pj4s_uT^7P&E=dCk+xdyHrFCr-8ZQeN_P*`xgD z744;52LcH`_2=KNp8os#^KVN<=49FY|L(9uoI5LscV3{D^<}}}#hZ#l?d=>}F6RB-bZW-RxeQ6NjYZ{c%}eEeIXi9^yD&RFtxIUG zX6c$&-}BC`IhGM@JoC6`ecb{I&&{NZ1v(7lNR4R^GKFjjnhaZd$ICdF*o_oy7QFj^pE!nqC(>p5Eyp~+uy8A|?uqRWk zNa?o?mL0O@j~K0DPPFDUIw~ocpXE=R`03F57cWoj3bJ6T)2US z4OA=TE6NKdS9tsPNIuiBUb^q!^OWCa*D~%dp7}Yl=52}XbK!#)CX9PzRlhRc>0DOp z@a$6dkG;E@rz?BseqsMxp{KVg+=u6)tlc{6*}G*PFtYr3HdR(LEV-uobK}dZ1=DJ_ z9bnEqC$M0_yKB+6&$47O?n(G%dm{ZLpD!BtyLy*RaQcz&7jn+8T(E4OWiqeCvzI$%_}_=R|DE-FTCSPz@x-nJ+zDI?Qr4AfE`PI0IX_Ll6huFgR zONmvn<^{Mki*R^y!@t=?mgLW8U43E%G|$M%4PlD;xOX@sm%+d-mN<4%O;Z5 zRKz?pKx%^ygWe?8C=J6Gm$KI1P_8oD#oF1*#-^jqdcQ1a#ma`87v5y(YvdQka7Yd$xd-BHOx9ZM+6bU-NTK?kdzc;Sr zpIXJsA}h8AcZ*$+~>as=`Jj*OvpJDAk zZ*oOM2dC8pSu=wp?5|DzU2MJ;zcOhGyb@gfEio^{KGW$W|BNSJ-^{%J zO38S##3$*+3)nZ!UHeqTxV=s)P-pFBv+~?EcBE-9&vW7O4GIs; zt2QiN+q$nsn@9iIj+Ry1w>&T1)_j>s@!n%&mcyA38kux%O#Lr7*rxTLe;X+refs8&$Ymw!x(y}jleYGWsZ^>n#w%O3tuyL-{z~_Q zo9&jai>bv2ET)|)Xp&l;5WZ2tVD~nb^eryW>5;(s*-Cmx>o{qWoY+o{j)1h9xK%E)7PyThLA;{C_+#?kd2`|353Uy{!BzIvT;3f^E<``Fc~G@r+3sa7E3R5g2y>gPzt+jm>A2RUh1XQ!PWGH| zk;4B8QG53n?7LleEqKAX3=ktx0a0an4=WP7Vfd+v|*G zi(Ht~x3h<@`TIQb9{)L?mj>#5$DUo=sNy#;I9%?@C78o_y5Y|N1`TB-uob2%)t5uGTM4cic_M ziRnuJS-I#!d`F+)H=Bt4|715Yt*hbP%E~^QKa6E&6qBLjp8fG_-}imHcD_$0yxVxD zl_les9larC-I+yODl_>#3a;JTvo!SZueUu{3%j=7Ts%d4?Kkg-yZj5?CMF)*D;*`h zdh*Hq8@bk5|6Z?JTXx9m@>I!39f6-(|2~&Z-LSBxf5-0!v%{~TUzI|@Fzii7V_2BFO z=GNR@bFHa8JH~xOc-${Gx14y!wHh1Wl$FS@UcUV;gU^jrEs5RvQA|5j@6{-Er0g$n z(1=#b(#UwYrr~;$>hV*1PV7JVd2_w$_x0zWg7zoK?Em%f)BMoQKT>YYxwarx`^2Oj zFC^x$f1FmIcEH`5V`62?!S+R!>MPz)OJgtyu-FrzwNVeJRV3qOK`#BuDWYSu0Y!eGyb)k28Q&j5O z-}ZtjdA8Pi9CbbS<{x=^j6wH`rL4e#5{KWSUrx@`6`Z1(;NV&MU8m>ntba`<_3UkL zG96B~DIfp&=67g--lGL`O~NIMMIB~+n=ALxX4{iFOD7y!d1*~k_cO%}>|2csW1_AJ zL@t^X<&eN|Z|)hT=M&B;+-muD%)*I#$He);6TOzE1=k;#Aj+0-X4Ts4jOLF|RJkS| z)ivbb_U;&0%F541o0}WBb$;Dbs|dKWP{(_VvUC1Bom_>$-(5ws&-{*I?OmEFq4IiD z!-F*}3QXHAF24MHrcAs?{;#=rvBtiz8Ik$b;*IW7FLqR>X%zb!{NQ8#^X37={F{zP z8H8jzUflZS&G*A{$1}%6mzdo4@pGpoxZRsudtPm4Q>8v*(W;0$A>XUE{(cparr+CP z*719r+=~~dXGNX1)k&#Oka3l1IL7PH?BbZlP%v+4@-$$%J10Tm2Tg@ z@b<)8yI$JNzGYhDw0YOAYdR8_`8e-ovd#}(TJrbucX5t@F7A_;mWhaZ%`WhZ_-l2} zpF?}mGV>;ftrPF=G}#cp{8@&XP)XLbMhOYiM>R|4W=>nks47$P@r~-HyWHp8&Q{$z zU(ohl%47D8x984ndy$spb5QvA9DPgvF2kIJuNlAHS+e}DmWQ3=`+m3ZjdHTp=P21` zot{vZn_;UInQFVU`{Sw>5O19mi=@V{gGN-PSz)+M$Vm3GQ9qU{(!dpb_|xUK zH#?4)o~evc)|_-Cy2kqTNqNqtg~q=5O=2C>%!RI;D)w!X6&L0SOFX&gsou0JpL_nF zYI~_}rQ#QG=#j(!q^23S9KEkMs9oOB|2uZx{C`XD?6;e~zMA2|=U-Jno;);I{(tkW zeQ%FCUp%t%nnvb^OIK3ZEwrRub{DPBnPuDQoGe&AAwXY)V@mJ8_e`Dwmm62aJ5JkV zqHgr!`Lv(O-{!ZeMt3iEsuJzV?>b=M{vaW>tUX(UO*~)L{Px$n5AF9S_ojuusIe*y zGCX4{P(~9+rK3*x9RTYJN)cc_54TLc|W^qW}fh|VPau1 z_DH`ak}y-OIn&6;d()v!hxoqVDd@K~zxrYRhTZQXUTM6U_LigFS+<+UE73|Nh;b5= z0|%#2=bE^EzwfQx_e!LC{ZiBC63J_87utWwJ7U|}UH<<2+|B3jt)7v6&hWU*<=;H| zg(Y+L&h_C~Frn$XLx|8#xBm6_7`D`6sTC6i&J|wIJ-}GMXu)-XD>m0>e>iV>`k>>+g9YG4&t%V>5&jq&PO?UsDGP`;+#%S)N4-d@F?)3A$AX?-Ze+~>~a?M-4?2m+!Gh3Y%xyg{XWfiPyJ;nzcYvCa@t+^xvDyO*0#XM?@B)< zHCoKAw6^24vaoW{+1RhJY^(C=&{*v$Ut=roi}cGJh+%MJzWr3zCrP(DHmgv5+RbH* zPF0<2?WLQQ=2af8+vMVIaj}WR$Mb~Qs=n(}G+Uedq`nD%|Fy^H+0wuDj2;X-d(Iio z-V7HVQ4_6#^VdRu2bXs|%~IQHb#~3l zxYxM`(x-K{y??nPF}^#7S9^Alzy{HI%=@m(O!=~_LQNo4Nhtn&0;_cP?Ci*-Spi`rCs( zzuz;@y9TT(HDeSIkTPU_e*KN^%bMPHUge5(hO#|x*RY#T>|K9-#;Uh>bB-|t>we?A zCOB;wgL+$pmZ))~%gHkF^GUpZx7AlHJh$mDQ~A|@J_j!~HC!*4mVM@Q!zPeX{&LkcSDH}?LvlFfH!KXP8y zW~oHxE3PFCfd?j>6Pz-g!69yXo@!rjgV>tyXP+M5R;sYF>FVi2>$q4`Eg%1oc(VQp zkB5rJB%@6d8_K`k(%STl5v!8ml`Ny*J^WRT3^m5O7R$Z5TJzU)5(FPxO z(UqSVH@__x|8})|{n|#J)o1qadXP}-b1Af~)Jl-Dy@z4Rwl~(Kk`KIrFy6R+oo*7QsS>lG2yCGuB>-D-=;} zp1k_kwnbq@o>x2;Gn?H|pI>ua&b}^5cX7JFR?aCiZXP;(c<a)D?Ar=Ht=+86x*UpL|hNoREmw6;^aprMK^F4-Fvm2*u z|7H=XWPf~z-8rcXbAETF57wk;>tzAUg`B2l9T3|ZcSSF zQ&J@1Dv#LJa@PXK)K67LiW<0oahWIPrC0DLa^0xctpwrNL=GX3&tlnmx2*a!O z?72o6S*02ba<{=Nk+kmyw%PhP9C3s%u3Vcd(jug{&@#-?O(Rd zoT;hmW$@_f!O~-Kr|#Ih>egIY)VG%HbbLT8+vS$~ckB29kBGd^6h3(7_<6gH&(H6S z=P6y8ksi+D_5IfIn9Itq4mYRWlF_$#y6Ben<9lk#b$!2ei+)7CKF@lSc~j@Eie>9v znW9S~66Ei!JYdtmoAY$OuuN=M+b{0#>%+QMbh5rax#QY`$BymOa`?BbOv&AUMC|a) z)&-i=t{;oCzVvLx#yq=z-O0S{yAOQ49AVM0U`=3*{SS|2Mmjx;jx*d=pIvS0wB3}! z-RcXgY8c0&2WyUpN#5WyC~-{Ke|0J20`=@H&Z5M>e1^-##jC6Ty(!!(&k{H_QMdJe zr-J&{Aog|Zr**zLSF`wm^zG$0FU|9P%6~Dm;byJj#RJ!F1g0~-QGIE3B)!Eul|_lm zCP&s`*XNx*x(-g30!$m?@~vmy;F8Mk`6y%hn#g&p*$u zxvp`WPmJe?ZLR%Vp04lK*;(J08a%f%D`2!c@yq6HS#@>#`uq1n8dCcHe)w~9G8e~> zh#X&?nH#3Fehc(oY*Ozb^3hnB;fDXVyvX!lixW2Wz5FSW;1acE{fC%|59Q9;dhq_X zF7jVjRI+wUP+8K0Jqc$Qgt$Fkv01nAuH@rhqb(QG4NCu9D0e7-I`^EZ;g`RX-%5Mt zSQeJ<%`}r(qByU5~bc%b&Q> zkICqXc)`A?_W9@PHqNVBo;&HrqiZZmrQgJlUt>H{<@V>(^!QsJzc2(|+LCrUiVXFGZ-gp^>;N5Onhum}GpPvi05WXU+ zksVTcsL|rZ=46X)3vK2V@>JQEZIQ8_;l=2c%y@vaHz9J$&#Jxe|K8fZ)+AAigJaS8 zo$bj#{>}gQhuf;3zrZ4h@8QZfULRS60<8BWzA5B8E-}TeV}og+@-!EP7q?mtU%MEj ze9KDdgXe+mMOD-iw1w_oOsA&aS94kbcIoZq|WG_EWWk z`c0FcH0rr-+~jC_Bkf9x`l^7_KTWTt@Ch^B-*U6{aO09o3D=mGSzgI9@5dK! zj^930!ZiL;u-@AH?_-S$_Dh|xHWw2@}vr%}FTl!wr)GMp! z?FCtjBVO}5_b++7=s?o8t8qymreFDcK;p#w@N-3p4K@Y2ze*X(cn&ZAb=fvT{oh>X zm&cjC%A;nVV_;&tb#-Eyt0OCO`pn$uxstls>g+Q1`3X~YsT2eRYscTZ5f$Q{eddHj zcf-Z!bqi`2%<~L-wlCuUO@#}sI*X1>66BXT_G`PYw`vY+T*{_EuH7?5SeTZsnZN$r z)^u(2(p+CDapT6BFX|>n8C+J{e}hS=X?68ijc?5J&PV@PxNh!SBUkw}hUQJnd9%Ln zyv7={yg*DH}7?8J2rS0^H*u; zgm1a-75CPaF-Z57X^M=0ZtfJdM`cRP2OrsedMWYyB!>#$+e+3I&arnFJ$=&n`%Lbe zW>dzi7wSF~*{X?%>RjHJuvNfA@c~;~%PA|CW1WdF`?k&zsd7PV_5S!Q@L#AhdH?q zCUPFouC?_Hxv)bt=vB&uAA4uSu(&O@xp@A3?GM(B$5x*rm+&rfVRTT=S=aj8ZOszN zD*0_v(aMh}Grv!F?)$beDmZC-9@B*WZx@(nW_Wt4XFp%N%ius-vaV>B&C5vD=(&+> z*^grz-0FWlwpS0BHtQ}&yu*P4+5Y!+--Z9lJ+(haxEGyI;sm zd;QD1gL`3Y%%%6<;YxqMJnqlkJ(-c2H+O+Vz{jw-uV(k}?c2CM-hPJ5v>vZRsXJFX z^1hmBCf?7a%eU_EN3(x&UB?9P82^^>`>lA3t<3eINTVW?Sc*~8srf2?<&QRV>9W>d zdJ!S?SIHoeek zY+B>-L+;qM&X0SJKbx}5>X_aA&CI;%OsqfeJzI3fTK505k4<&^DS6om~ z?bM#>rIOdT3eD`B?738K3Ttnx(d^fsisb?b`Qu`uk#!FWk5JU2FSo z@zV8oC0BHRFXeQ&c;`t@)Vt76+E$tpBIOJZ4jsIE`B*M*lw8TLCn;^$nl=l6i?LSE z?pYepW+&KSY*p|oY-0F%^CJ0aCuTJy9?i^oSkQUzsdEqOx{0nIDJ}%CU^Nf?*Ss@*ntBt3QDKVT)%2Q>C-Dl_UG<{}Q z=3MOwfdzH3xqf|<1WK|W+NwY95_e#Xmdly5f^mIzx`jftKjXQ=Dz0x6gthlHAAEUD zMeeq%u&&0@fECk=&tBVfuQw(5`qLSUQXl-a-2K5j`nOu*xro`T{<^jWG+c)_?eq_XsvvCaqj%cC#J}>%x_zZ*L zH7k?ans?i0A2*Asm6<-HKmKTy+wc9dYqgHtKUBQ(b>Yf<83`4>!g@Ia*~N!>z518D zO=4hEO1S!9lXSbG!8hCBgA2BAzrEw#;@7KZ-89?1t16GbJ?T3?f0^ChV>4|lI**u^ zvYVG#?O&IERrh#zgY@@fY2WXdU0y74Kf|!9BJkl{*U(TbGd;n!cI~h7+>O^{ zVuYMiYX2GEX!AdE|7gwk&^|qfoj*PEe#dYty)(bY^!LOrxo7RuHC}dp=3^+$blS?a zG-!%_i>$wKW8ca~Hrh09+m6?^pfa_d{UTB(GeWxKcD-fo||v;E>W z1J2McV}^gq=%FNO;CReze{uK0=$)8|Z%z7!Mm8l_N z-s*fE8uzOE@@bAVCa z{hO~&o3GK5xOh-OMyo@}&Hh@|+4r^otv^<7?d|gEk$?Bb_ua8K{{NpWw~^UqvF3)f zY@~HS%HnHT2NGM~Z0~tw+4L>tS6ylY+rQW?7M2H|i_JMwu}QyHVT)^N^N#8BW?HsA zm>ak9>z~vKo5Z>&ZWdj&|KD`k^;>&?9o?KR@~Svzo3ur+XS-|PEc?`7f~P+0V^1xs z_;A!hQYMIvbwQo8rj-Qy#H&Ur)4a3T7j5_II+Ja?f{m@zZ#nCS16ze>2`_n>bo5iT znGlGhk-em!!4_uTdgH7WBy#4LC*?OB6c9O@&#C+@b>=WZs8Y z&Nr35owK)a(WCS;+m72agguz)et6!Im}JgLTscfk73XvJOE=9u#xgODYZ4dZx2oL2 zKYStIGPI{#Uc04!^z|D~t6X*iwrS>VVN*ABzPb`DvE_HU9;3`^A2q`{Ru6ZcG}98Q zNN!Tx`lu+S>Em9B&1SKs>+SD|SO5I#%lqcx?U>lSH%ZU8-FW@+;F(WypB`^&ubz_O z-SvziTl1gzvmY|vmAfzBblBf^ATZe|Pw!FAi<0~vQKM%$Z)Y&#X%>7S$`C z;uB)NuyadkThYbN#s%HwVJc5{@y%a7x&$+#(avQ;f`~kww~GdfA9OEnyvDz z5~r*!`=Y838B5nKSXPQZq_}71b3+mU(#~1&b_-aGz zy?u*$r1*XcmYil0*=FL-Uvhcg%dPMJqy!$XY^eHnWV01>*5Qk?%hLGobawADmE_jw zIwT>RsM8)dTYG9v&HH0j|9=QgQDcd;afw-b-8lH`J^Q~;CRcSdiCs0~$on9BSmOfE zk5A$8;Ya@2$^0>TFsn7hk|jjodU0!}_^i)o)^;ClUHI*J@0*=0j|v_v@O^ZFXKk>^ z$KAb(!DbtSxmco}RI~>KJC&{7dhN7LNG#`G%?4%R?)0={5qc>dwu(DCpRb(RW+cO? z^h0N!7So;s0n0a8={y#AdPj|Id(f5sX4y#ZfR9!7Z|e+xf6wB>U_zwH+(hEbk{pZr5FkO3MsX0Ud!5bs!NL_t@+5BEWL*n z90D)jy-SI&{hB&Ap3}VVt)_wduiw+!cgFuu(7mwkb){vP%O8WQ3||HOlKl3{Nvz#2 z^leh`qeXRLy8TZW3Uhl>Zn=EYWWBo0;_SVn+qkaz#Asby`C(^CTSqgq@@ogxuA{bH zV%_1o61>NY4A>%7>*R9{CwITh%{7l{(#k&Z&-2Kper@9)4=ombO<9xA?{%JM(_(Ip z=rtE5nda_1aB{ju>@6dXgas33+?*s-lM;LW;fJNNSrbodMi-aemUFmU_NM-wdbSM1 z{p)8Ioj#Z-5x{ZI^!e&J;s4&J?0s%yY7kXzwCb$+D=S%fBZdW@56^q6e%d0mZ}PcL z$1_Hp9;{!R9$aWMoACII)$c_?T}Rh2iZaRWQ2%)3%!yQsg6rb*Z}0zEKJUi;AG76e z*Zq!tQ?D!#C9>w!GRfng7oN3ed&1awXGy5{Zmsl~DGBp;zYr^WQX|IJ62e$6*1uxe z$A3HlH_pq5Ka;9r5PJOJ;9O(QLo599$gJxV^?L zR_B{sB){juc{y8dT1RGG-JBM9^XtDO&yQP5gglre8IsWQK}4gROIM_8#@=xn`N8CHpd*OK z?_sl-;j9-+m}E+$Cd9gGI%a)+FxOFN%QrTzlx&Ac?h`qt`A5~c%yKL~$UK;5a_zsj z%LfyO9~Zn2p1bht!;5neRXcsO7@&rTlRLG zKl_}w{KmxswRykxedD#5u945Aob<4YdGonwiW$8;H^yV_n46FI?gIC zOdHC7&t-qT;AxxPg-h3#yzvoaR{O?PntG%_u{-F&LJ9xa$qADZjkA~5*(C3&Ih}jF zD6aOt%LKor703QAY-zX_oz~fXZPmZiXWcfiHXM`rm!za2{P|&U$%=-He{CI>IKEMv zx43Y>5Mf$pK`xGV0mrkDUZK%ZoE78>Tq4k zr!x<~$9|g0a%95-BMei89AbQb^VaC^{T-Mg;~Ssv8ZEPZ;v zd9iVH_T$ffx^_pWu3^uzFyJySc3!Y0V2@wmk7|n7-+Q0mGK#2OUHd5@XYJ!tIg1Ka)8CX6mh2FXMLQb<@5s28Daa zte!0G`)T-vw{Neguf-+x;IkTk&M6vcXKYSe()^O4mHADH^K7%gVp|<{nUsYK4GOQl zuy8xZn{4$qhOu6reXI84s@F>v@l4sIyzShPON|eAaXnYj*FMhJv1R4;y^1%!ZA+W| zQtGsJ{I%zG9n%U9mkGzp2RLoqDjt7V;j^FDif;`w*YUTb~7IJc)HMq-JGkxfmGFmpGDi$sZdhk)hb2Z3kfWcm0n>rtV{OiKmNWoR&oPtEn=Y0)_4esI5&)US{K zT%+4vx$fWj{_x1uJzN(GV$a-9IW?hU+N<@60u$N{S)-X31ob84w<$}6yeN+57Fr;s z@+)MEdHSuZYkf_HEmF__x@sDDaA82H`J1nf-qRVnBFy*YPtS-wd1-lCc=6pd@i#LL zxIucd)YO$KsZ`pME`dbaY;me|To3 z8PBATe^0GYZ=9Q=?lQgKqHO6G{Y3qs8^%v#pO*%6pO7^xCY?%N5Px!YtGpE=1)U2EM zoT2%hRsQ~Oci-PwAGha-<>|i{{(K1v$eOV=?{wBZHa^2+*KW7C`Q@$?(~X&ZIO}b} z*CkH!t0FFUEXvHw^Dv~6Gx!C_I|czm2>MRrXS5|-z_e2e`AYZ zK)PYch4#6VvwV{NtN;E`wLVUsq2c?-smtWImF1Nfh?0$B+xvO-`u(dK`;7LnI526tA3Hg# z;DN+{zTGd`4DAbi*ti;eT_(@0eBO9(Q~kpb$L9-T*GIlOxJLF3>vf})MuwCh)$+5f zrT8L~wli1;zWFS})5Ib6qG8qYQW>Xc3spXW9gn3CG>Eahlm2eN@WgY$c6I}iM<3Q* zeBgJJ^GeX-MSIg%H_z%$?{RisdwIrN=F}p_O){l3tYwawT3F7HznuD&=iEHULn(V- zH#4k=*uimyy=Sq*d?$6jKD~FlH?SP4E;v5NuQWxDBO_Jj#tbI;_3UyjcH!rC*BE>? zJO2IMA;Fi9j!BYj|D|n9oFmKo+NKt~>NylSZ)5mrnY8GK0Sn?bv#%5W&h$*7>BZ55 zQxBy)6F3+Z@b`tn)Fub@kJbk#SxS|t^zDg$tGJb2TB1TAqO10W>BbEA9rE*U$N&E- ze@p)Vqy9{OvkNf_FP6+o_2Hc>wfq-*G7Des3on*~ZhpP>Qn_pgebfP%D3nI zh3}3`vbLW22j2f#qa$%lVdMVoP4mLS*X>P}$xCx<3cIsKSm;kbW0lm&NPgy~+<=bW z$6BTT7P2b+uypX+y5)%NT;Heu&Q&4b+nMX{m@lXapL?*R);RS> z(N1<_)s`c*IeWx@oiLn|#?ipbzGPCf|JUz%ll)G1p4-n|;~QhG^HoT|QM7uB)q+31 zk)<+IQ+$`6`59Q?+Th^e)xh?q&ABYPCg%O)o!7SLAByO`mU(o>X}%^6=M#mU=k#s=&$4b?A%~@W@G(pJrh5sf-@^`PLi0v#>i{V?}x7g z>eUTT%S$PB-$emU7Lwh5B+2p z;ID4)PnmO6dxLJ-VWw({a?8bfwnAJBw}-raS0sJL$(YgKT5c`FJ#WEazQ(c}I~ngA zwx4U-bhq2n`QYC>8~2&FR8RhMXG!~^iX$7BFicP1vvNtcQUQPLoXZb$_Wydcde(|x z+dS=AH#~5P|BsbA-lg8B_A5ERGbb@^Kaz+zrVTt@cgUa>l0(6IsY9p zTHL!*eHM$!9&Uyo+6>S6RTb#OxYP;4iOcq#d?hN~ zB%i~~_SmUixH;W90E$wD)QQ?6eR zRs?Uoc~#`P!&8wL6>Lv;Ed09SZ}H=wd*9cd^9gZsu<|H5bL;Q_FU#%CW$&!rU!WMP z+xU&UeeU-+TlU>K+V5nbleOM;|K=6P+a9ZBsfpZQoBF5oNB2J~9vh8xwtxbSNm<7y z8&$U{7%D!Hah7;f2 zdnymzIB`c!+3QN~Olnj*R+VGl9<<5C zd&b1hh0kV)rG+2Ol8C6!TJmf*6I0Mq&Xxy{IJSg{&xx{hDD69vvhuurp8BuOh;9vc zj}tG%Yo}W+&5+r)p|I1bL8qPTLxL8IAcw=Y_gnY%y;^_nw53nac7AL5_isw-f{mB! zzux~|^U?7H-OTkxwvmyRQ*KZD+w(vB^ZqZj3(g3tF&^Z9+uU5sTpBuw;rybU0Dg|y zceh`e=a?&;xcF;@rqMag6|2~03weiZ{mpVqXkS(VgN6UdCFJEImbQ-MR)M-55>T-=?_nuP^x_>Te zu`&_ODJ?7hJ9~!EpM6VSf2r-NHU5;o^7erri>`d{IQ7%Q?M0r!<-Cv26&Eb;)7%!d z{A5+Fb*+Q-Y!kCd_b%rg+Bv_xlXk6G+4ch_?q4Ew<$F<<%F-Zwl8_^py3?7Mp1u2633b(Yzl*-Eoof6P3Q%DAk5 z-btQ1<;Kh3=0t7JSl)G?=dApPZ4IA)-mwc@5i1hQ!}dbG_WSjH`LXPokIHk_{B~IR zmi2K}PoFark559^sY5m2w!P(ByEbvN-{t!W`k%ia6xqE>@}FYl`>>GjZ=XefYp(zM zJ!kj->rr`+=f1IPT)SnL{||wscey9$`!9ce|L4ToioN0M`FR??zcHQm=kS~d9qk4) zgE@?iIoh1%yWXB~I9fL?*!ipfl}z1 z`%o0)Rj+P@NjOTkKNxNJKt^-*xvoA zS*iKtt$V+C^y6w`jg#If$j*8kd5Z5u@s-6<-POA!g!xVtJU^75d?2oXfo;{E0~+ji zjqaI9vIu>Yc^DI>yzAz>LV?P)J7!;TBa7e z6Q9<$Z+JA3v6q=A=lbEV#&7iv|Ce0ZY@+z*I`bC^rO&o;F1wdx7;av0H$ihzR#V+A zS+#}ti>%bF5{-{LOKBn?C#h&vHeOg#{sOsX7sdmv&kQ?zNJ= zW!0Z^w50R=wS@bx=egeO%Qg(?sC{}`jnQC-?*0w-zt-Qs;X7CRdV5^NWA6Rc!pRnF zeWn@Soys)negbG)T<+Z zTYm;9aDM%l5^&E>US8=#se{Vqkdq=Jo7}<{E$#61kI3)+SYpI^tMTUJTWYswTo%ac z{o8D*!*p}gtCJ5atWT7E>)CnT^Y^YGhisO$GuCD`O=|UNTQGC=8%L%<=EwKmeep`s z-I8n^VYFxk^R*R`i_ezE8ehNa=~K2s;mF~`-fN^As|t6sNI%}G{%+&VUCpO0`R{K! zce;kl%wgu$b0X?jb_5<^X#ZDHm7Kin7^9lPyh4tJrwpf@Z?1jzi>bMA{kl^RT@IRU z)Dkh#Qb=kDW(Yg7NA%+Krwq=)j85@4tGrz*&lI&Rjhwi6vYYG<3xB6II`ePel8p)6 zH)m0g0{es7oNwxx{xci0Yglu1|F2EYygcJpaf=(@k*b33wgYaGWlxvPUG=W)Xz77s z6@hIW6PRme{x&{&qP^eYntX0XT-v(Bi#3y_)U(d&wY_*>bFgO@6MISr;~I%;xn=cF zQ<6+9x%J%LXHUQO>TEJ|e$%zyb)sCWrdFzD9}Bwu+)_EXD^YQ`PVY6VxQzdk8yf{% z{u|D4VB2*6(t%3GySsR60~z*5_eLK39euWTo7{`WSQXC0rN@=BuRs3r%xR88I&bu> zwlwoyG+BTtiiud)qnT>|;D>)WM zFufDqVmbL~Q$khO*8PjLj-59MZkLE>-`Tc!b7|kh=TnSlp>wRuhu_ce{d*<%DHRv3U*8t=EieIi^45t5dAMetHE*Md6{Ev*)h% z{rwakf3@Z6_C)5JyCjQy73#Ogzd8AM?cU1jn&)vF?}cpBjIVXJj@&T)YjJ(~mKAqe zo;i0F=N#TVDQ9Bi`{3VqncnJh{?lEqIj^KZ@jWNgrQc^y*8P|NUpu?sUbQ;;baj;a zsV+v7prY;vI>&cx&52D*XZ*wb`$JWJ++uL?XJY%0|5e(5+2uD^uANYouwBPlqDgnI zN1BY1o8-hysb7wnRw*8nKZyn2JN4|_V7(8@8-)3vJAnDS2(>P%3O;+YHX)LXGdN0JtzHXlDx7{@0&W)p2i>0#+WUc;uuC4j@dHhiVBahiZ(ikn{Up0AIl z`tI(|sDGgwbtluxX3wf*535a0UK=@-r1hU>q%G!hn0T$KdrGbaqpHTy1^4^cY!-g{ zB_{ch6bsM!*Bf$Q@6CBzvx75hhV@6)#mjV?I!L?<~Z@jdI7K2zXw)USKb80HYNp_C&dQnSgf_tRRV z4quz|=c4U?S>1_id*=B4hp0>T+evAW`|FE0Zr>fg{>|H$2kX9meSJdYxb*8=lFdr| ziaKXzU)-q|@m|vFUS*@ea%<0bPue@e*aQSV?$Fp4RyECJo#CWob9U5E5!F0%;eejP zg;T3*-P^cX_h0+%(dfj?ed)q8)oWc09-Xq!&fI8kkdO3_ke7aE&E|4yN5-s`F9p9H ziFA}yHNSYOKWPz{*@GIb27ig;CZ_2tr|JYc7&2Jh&n~_5w`!r|tEBXeb|%|WN+Z|5 zEK4^Fzi{Qb%8R4R4m7>44k&0ofAl_k%B(e(8DIO<7_5#zUU|#+Qu*F%RXaMaMGAP^ z6x9icID~vUG|%?8_BZSOAM-=2i!)EBZM*z8JWRuby;|8<^sV%?m?``2A9j1O@6XJv zGV@z2y&9%!r*2>S?eMzS(`H}j`&=Td%h#;uS8#Rx&Xo@$W)-~eOjfq#50+jZbnE7h zTYF~62XAnd_7YGw)pAzUSg`Y`m1NGFgUM$C`P{8EC-iKs4&DAH-R#|b*9O_8YCkU= zE9=rzF4fP|@(?(9?838khVmJcrFeIys!2NWEC~Jmr(8_%;66E{54WPTXJ$0T?`*1B zw|B!FzK!o=v&&a1T>ksl_PI-OyY^4xyw{dncCL6l@4H~b6DMgUhu&?*D~|KM(Er{R zwC74w(wowA$GgmU>zCZ_PGDf+Zuq8ggz2Wd-Lj-D^IVVqU0K5DAf9z#>eRUN`U;!& z$vv^=Idw0)=ZlZvgpVMG%O3x74hqxHRENb z?vb;n-<$JlXPw=_dwKfyO<~8cnt6%WtYfijt0i_bIPg=^Rr{EsZC8uyl!Kx7 z)gt0~4?LUEl__ktq+C@qr}kBB`~!DU8}P8jMwMju{W?HlgLMBkp@F1=^U(mL<2wdMWmUca^5 zRJ--}cYgbIojcn%EZlIP>Fo#i<+}e8YHr7LRkp1QKW?-C-+s`7yU$Xf?G05|eZMPv zb3GGcTI3KV%y;lcf6jDa`5V!}%hI~1O)8C06y|vPv-MDhsQsOPv;JO-|9#uE@#E~a zZw21gcY1YG7svbi)YG8=6>6~_F^Bv`A zW?LJXH&0K8f8FoyJl9s1G4;GH!>62Vr?XOg99!ELCgsUYxwxtj&68cJ~ zzTOo%Cuv{dl7C#EFTV0WE;s#G71x7`h8NTM&QH{DyL zw%dPqzVTp1M7H*Jt!j>EEesZER#CBk4{cojxZ>Eno(3P&UYqIB*G%S2&}=%fl!^EF z;q2ds=l{D=_h+;HTK|&twI&+Xoeq6P)1Mq_nUx*4-9){7FWWS+0>#};RwsW*PS0ak zVuC=eih<=d4u~WA1ax%_99)>8#hHv!1j*bxoS_qyKQ;o?lXrCS20wC}S>BUlge*W$Kzq{{m#Q*!IepN7*v2xL+$DBLu%zwNy`XtHuDI+cUzOYT^l%Fft zD!!NGw_$ahW1?YT>TS=rOhjp6qG?dn+3At`vJbbM3M+h{5b0;3Ep@v={F+rjIIHEw zHU0W$Md#hCEs_4U_02xN=Yrpo>;-M2UR+_GA)(~4L87`OOCrF&oq2eq zcGDKiL%J1W)24haIA=cX%RjY@)zSApM%C=An!i4N-s_#8*pjcWc(7XBRB>AHF)?{z zM(fAL5sxfWOlrZcV-zE68>X*S{adZRUTLM=>D+Y`C8 z&f9+NTl|G=r{e=xcAu(clU}pDV9LsN`9?!w=_Om5H(ozpzW;*Hg4i>me`>g&U3-u# z9Qc@TVe&8TxBibVF4@-cMSoVA!@7f?Z`S>MdYw&Io9({M;pBCz{lC4qs9YWMe@Ut2 z(SRR5n;IkDN7@B_ew)R0FgJed#fx{tbLWOK9h%g4$<6C&4@1`@E52=gH|FnrclYNL zd)pg-KixVfx+2=-BtBsj*%BP|X=eb+bEnYqeJ@6>qzM8SwCTFGMhTi?^->$kzZ)`jnX2p>BSK!LwEsl3wy!JSK zNwm56jB8rWLSwt*Ke~kW-DL`p+>-q(h5) zn?s7+oShG|zOf#^@<{S;jri*WvKsH3rTaphzTKXG{1IXN&af+02E~4-v;N=8>b-O`Utz`!wO#6uZA4!?Ofx*a?#xs#6*pmrOPjmJZs{v3 zObd=zf93o>+>>KY+`YQY{~!NtxndL9nsS<$>&46~_ygTcDy7=&zp3k1!^hiG&7ZN8tX)!dr3@1163mv1 z3S>yPSu=^AVF=0FsXmF3!Lm8i?7%Tc`^M}!{bF`4>ZXepA8FVrb7NUp&&D0cCz_=j zPSr@X+tFUzyWz3l=R%gpA%*a@;?8{rWz}0|^Dw7`APYyO_vwxn$GT1K%E> zKle5+h`TIvatim&qU#py8{49n{l0KN{qw6evlgZ3@M?#-Moyi2YJHVMxypCN$1?@~ zN}YOeVUqEyKaXd;bKKFUaqg`|e)s0Z&3OqfP3?~N*Pf9%9lEnmQ(E^x;F`JTW*q!~ zT#_$3^_pu}?YVUy?BriRyz-4DtL0g zzVDK!F0=3)>3zeSI#J||D7Pkq*H+Cn=Z&6vOgXcWO@B@4`z$M=ImVkrS!TV8DUjaj z66xC3YrC)ao$uzmm+LLeJ}AFaFPyklpzy8n%&%e_s^V2L=e?W%@7#0HlG;6X84P>e z*T?AD$uIuP&LjJ0A#aZu^Q6<=>1J>AbJs9F-pCfjZ@xa`fY^GsRUZR5ufEKfe8`yT zqV|>YyT{HS7FXnHtJ0F%x1qT+n*B)`X!lt-U8 zOE37@;ZttAWZQ1;-(N2GA6ihAwyIO8E!L^v>!Z{9Z%fXxD8JfRP%FAcL*3}f<=P9W z7a1G>&gZ&BouW`h~8o;euXJ*?)w<#2F8(?tV=1@?F3n1A-Jar$=OXT^N; z)IAzjX7iOl-w>G;{*=w4p!1D*;F%R(y^{QmAD(_t;#08DE=v0QJ?Qh>1n(aajefg} z6-|EKVeb9GH^qy#~206a=cJUbXo8S8FR`zf1 z|7kb>m5f~6!%JTy&!3(y;Xb)Z|E}28ZCe|@H#FM{3mBv>F5pDs48en|Y{+cblKl)l_y3*e}vH0Ni@X3^pFQM_w2!zsi-|3pN^ zwcI)L5_sI$tS`QNz_8qX>o?DYCYgov=0dIU0w{`0+IZUfhuQAKYv7El4 z|B}M;YUby&A`f4FyWZki(iMRdKK&8rl-s4a_p7|jR=Fj0P4M`nxPrW(U`O4$g-qv# z8k-z4Z@sy_`B_Hca-FnSSB)!-SoG`W?z!-D`ZkY+VSP7mo$SByyh!-(>%zAFx5gTs zhxV4l3O@do5;S=&6?{e9gxFvooj~0%By$t zllJCr&okC@I#6U+z4MOt;hU%UBv|H|m#$mB@z$?jwd(orE$j=tUJ1|16Zl~&%W15t z6eP6zDC2t&n_7~RlIjsa(2s$g*KF(;L_Ctov&|a{qoZxqs*VCCtXf{IhNA{;XKH-Rk~k6X{p$ zW?J;WOV&>~*dWWTmc+2yPM=@(*}=`<-(~N3FBbRbW6b=IjsIHyteyD#kk3=Cp9T5H z59>aAv0;-ntDSDno14qt8arQKx%x->l$*;!J3HP4dUGw=Ht&z^X~q95{ynze!oU9e zqpyvOALRD76@6ap_Ic8)be8`gZ{PUmy`^jQvmJ5?+}YvIs*;fv>Z5INkaC0nGxthPg#N`fFj1X%>vPH9J^uzHSxXDkSB5k>}L8V?F&chLs5% zHIE8}d&5;lKPFvM<@tGMo^xY}U~IOif^xC_QOAW0>Q@uWbl-$XiPmzQlCIiU)!A6e zer3krvRTWml^%1+EX;^l+4t+vbB7w=C3_}JJI}m~y*6#FNaC9*wHB&+vrKPYecEPs zE<;HFP{C5OG}o`wYw8%8b$2Hmm5Q~u>oo1qDHXrk7~GJzNfUf zRbEXwcBy4v5J#2hwg;MeS*8Zrn~E+7&hc8{@#WiO(*PFpwAZuZtJ|~ew(U=j-LYBQ zN__@{fQa?%O|vu7O}F^i=E)XcJ)qZX$h_d&@|1s5oBTcoU#(8Qe>CKmTF179LGE&q zehYSmr5*2;lnHE;mS{Pn81hL!X`T{u^aR$AQfKe7O?hNkcm9*o#V%iwyu*Lm;uv2$ zvQIsNIdgErj^*sk ztvfIGm`;l^xaP>VnN2HT#p#>~*ub1g+c`|+1HTj}TpSAL(EzR%vRktz9p z@<9Q`-3g}buMarvViY)$k~V9b)}~+C((yNbx)fh%iJn=?6VS!bck7VQjm(6|#cO`= z>|CRL?)Slz#|l?=Wr(bu`bF}&erK*z^l`!Z=lkpCRdyejZ9IJ91mD}pg1bv&_ZoK` z5t-qftYY-r^Xqe=S*CrBo9?B4Wq-r-KPSnYh0l85$(g>9uce<)+&=m9n^zV^?;f|^ z{Iz|qy0e7A_S>5`2bA4rxXomco50tg$9nE)Sn=sXNBiH+v9Y!b_Z^;EGB!iS*i--pYp2y5^h~#Hvm7i>4Uv`b5 z{_RdBwWl)MUauBkFa594*j*tY^Zb{a>Gw0Q>D+tiv-FkrPo%!M_}!|gTH>NFE|t}^Uirr^nvJ$YRWglPe=uR*e{kZ zdV3X9xcn`~eeUb|84mpZqVh?EWN|!X-|46i+w@BZDN8;+SR25g*Gd3J; zh8j^zSCo}>o=M`nD3j zRg{OHU!!+6@>}y~nS-JH6C%a09_a8{WqUmB$$73h-xq}3?)+Y!7@NY$H!1jTZO*pe zvCJM)XJ?+M4qTi1;dak=NA+nLB@+*4*erfo;Id#r)IN@N=DG~JJSQfECR&>+{{MN0 ziA#R+CI^FMCV}djeab8DTL{JNuQ*wfQL)}m{bz?y^}N4dDh&j;%}q4SF~7Q2HtO7l zsWX?nTT;TnAo6>e-tK@shR0r}Oc%HQ{o}FvwRkBN&rHksSq%R3Yy0aYI zC!S~@wfm6S^iv#{f6A^|>zX>Nhq1fUYu1|erWX$~XGk_}>iPGq&7opptOUc3siEHm zSJWJSc=%e&=H(9#to*#7T>Zv=4uSWA5>thbdnX0jTHk5nH4JSM)7g-6V4gh7lFXi; zTwOL_nKWKZowbdFQME7ny^o;0NvcZVg8nlZJGQhpX-b;p{d>O9{=e4&f!DKrbc|j< z__FF-U1l-wZqw-N!kxTnzWhtRd|tY>P5A@sg-`Rg6?AT8&6T`*UFz+eCRyii`lTCI zv5Iunc&rbPwq7$e=jf4NQj-6_E)eNoeo(O?;u_9B2cu*B?;Plp39Ey>wlUH#?9 zDZ779BCk|)Gbt*$e7@NH!{n^S)Hy;{y+^otb~1?Ui7iT8FmGdCaB}+>g?%0dre76| z*D~0iwKOS6>wD`lKh3>BW$)*|A5%Je`p@=Vm#MImF%+L^X6p8t=fkvH%4=B@0|WFX zG^FP+N{E;xG^{tS3SWBm+^$FU8{PV|-k96IzVqCFpP%*R^D~U?xtThi?##{!JfqT~ zF7fHG&|RfZ2YxF~2xAdbG5ephv~|Jj^i7gNU$;(isVM$@?B1Tr(}piNjn9ZmDBu5e z&3#Y!z5Vm&o^IS+lE*2PQ>?NvN&I{qm&Mh+#Rs)QZ&>{hmcDnN=YG5Df(YTmT|YN) z-HA4Ge|=*z>(%48S6u1onVM#P?wa?{C(BQiH{9(sw&b_pz`y?cv#$$T9{jEPtHJkO zP0idbd)wK6fmhxydu1}e@B1|V{N`WJy!LMsitT>faEy~l*Cpqws=|b$Sv{*S%YOW| z^LoiI&d!9S>&#bqj-Out^xUufy1HC{JGnRZzuWI`dVE;?p$pGWtIxZ=jnno`3)sl6 zyDMPAS^hqMyMHU1IHFT-KmJtmWHX;`{@?GRGA@_jt?Xsp8}|Hh^IYc?0j*~iB6>WB zyn_BcKX~N9l2q633pM$hk4|e2liFmNr=M#c%Xapv>)SuO3x4=~y>CA6%*Nl3Wvx{v zEYWf_bYE~YNZ;s3>jS5x>a9Mvk{gxx?XHSp{;2tCJHNZeef6$eM=gGzJ~&H9>eH$^ ztGFsRix|sW5_!pY^w-&My174p)%n7T6~zVli~ii*^H1{cm$h5Zg#5kw^UdA~@y*Y~ z&ON#p<^P`X+}}s5Hre@IHvW8Ov%Jgmr{_ZQW$%jAq;O?rElzH_+!lL3(eZnudjGnt zXYvl0?jGh;N`3fRjd{Z1!&5>oBm^C?dH7o>--3JQcLs-ZTr0Pn*tMxO*(*idKs)Bz zZEpMGrFU-cPM+Xc^g2%y2AYD;o+KF$S>GntO z?0B^KR6tt%?Xwq`Y(BtayXnEZEw(H#8mCRZEj1&a<*&TfZM}6{UNfp4_to95U{jUH zcj-XTB26n%pSCwoWlkNvx8hCFuX%sh%Ktg>?{fX8{~Lb)amy(?vpL?HVNKP)E9Q}Mx9luq`EQNq zSw2j<`AlPJ)U8>~I}{xhb6Rgkx%W-7+T6BvSzdS0mgOoBj{H72ohxEtp9_zCgZc7H z?)4QxX9K763MhxHWlx)`YiyxezI(`fr@e>u_!TJ?l60DtzQgmi4b*S(?`Rn^$OYVz6O!AYBeXzz&GnZ|KB1DXb9OGimcL1F!HNS}xgx^38#lkr zdo8~;(KtJo>+8g{=O+>bB2I3SW>?(%+0`mXr+>QWoobm*w)f@l?#dinaOt|iid*wH zpHFO3xRr2Q&Sw^rw#|CMFa6�)<*XwWiiZzkjr^G2rsIm6F~^&wcKm<{1Afvbw&e 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

        • rpRZfG;l}Cd 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

          ^n*YJY(aP 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

          1hwN^fn8Q>aX{V963 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
        • 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
            c1JPPS4tI9R9dfqpz_qO#Mr7 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 jjE2By2n^#8uuu7C&ttEpm!$A=J; Date: Fri, 25 Jul 2025 20:32:53 -0300 Subject: [PATCH 0228/1052] ui: Add `ToggleButtonGroup` component (#35118) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CleanShot 2025-07-25 at 8  03 04@2x Release Notes: - N/A --------- Co-authored-by: MrSubidubi --- crates/onboarding/src/onboarding.rs | 63 +- .../ui/src/components/button/toggle_button.rs | 626 +++++++++++++++++- 2 files changed, 651 insertions(+), 38 deletions(-) diff --git a/crates/onboarding/src/onboarding.rs b/crates/onboarding/src/onboarding.rs index 1ce236f941..dfdea1ca5b 100644 --- a/crates/onboarding/src/onboarding.rs +++ b/crates/onboarding/src/onboarding.rs @@ -10,10 +10,8 @@ use settings::{Settings, SettingsStore, update_settings_file}; use std::sync::Arc; use theme::{ThemeMode, ThemeSettings}; use ui::{ - ButtonCommon as _, ButtonSize, ButtonStyle, Clickable as _, Color, Divider, FluentBuilder, - Headline, InteractiveElement, KeyBinding, Label, LabelCommon, ParentElement as _, - StatefulInteractiveElement, Styled, ToggleButton, Toggleable as _, Vector, VectorName, div, - h_flex, rems, v_container, v_flex, + Divider, FluentBuilder, Headline, KeyBinding, ParentElement as _, StatefulInteractiveElement, + ToggleButtonGroup, ToggleButtonSimple, Vector, VectorName, prelude::*, rems_from_px, }; use workspace::{ AppState, Workspace, WorkspaceId, @@ -222,39 +220,30 @@ impl Onboarding { fn render_basics_page(&mut self, _: &mut Window, cx: &mut Context) -> impl IntoElement { let theme_mode = read_theme_selection(cx); - v_container().child( - h_flex() - .items_center() - .justify_between() - .child(Label::new("Theme")) - .child( - h_flex() - .rounded_md() - .child( - ToggleButton::new("light", "Light") - .style(ButtonStyle::Filled) - .size(ButtonSize::Large) - .toggle_state(theme_mode == ThemeMode::Light) - .on_click(|_, _, cx| write_theme_selection(ThemeMode::Light, cx)) - .first(), - ) - .child( - ToggleButton::new("dark", "Dark") - .style(ButtonStyle::Filled) - .size(ButtonSize::Large) - .toggle_state(theme_mode == ThemeMode::Dark) - .on_click(|_, _, cx| write_theme_selection(ThemeMode::Dark, cx)) - .last(), - ) - .child( - ToggleButton::new("system", "System") - .style(ButtonStyle::Filled) - .size(ButtonSize::Large) - .toggle_state(theme_mode == ThemeMode::System) - .on_click(|_, _, cx| write_theme_selection(ThemeMode::System, cx)) - .middle(), - ), - ), + v_flex().child( + h_flex().justify_between().child(Label::new("Theme")).child( + ToggleButtonGroup::single_row( + "theme-selector-onboarding", + [ + ToggleButtonSimple::new("Light", |_, _, cx| { + write_theme_selection(ThemeMode::Light, cx) + }), + ToggleButtonSimple::new("Dark", |_, _, cx| { + write_theme_selection(ThemeMode::Dark, cx) + }), + ToggleButtonSimple::new("System", |_, _, cx| { + write_theme_selection(ThemeMode::System, cx) + }), + ], + ) + .selected_index(match theme_mode { + ThemeMode::Light => 0, + ThemeMode::Dark => 1, + ThemeMode::System => 2, + }) + .style(ui::ToggleButtonGroupStyle::Outlined) + .button_width(rems_from_px(64.)), + ), ) } diff --git a/crates/ui/src/components/button/toggle_button.rs b/crates/ui/src/components/button/toggle_button.rs index eca23fe6f7..c6cf7ac62c 100644 --- a/crates/ui/src/components/button/toggle_button.rs +++ b/crates/ui/src/components/button/toggle_button.rs @@ -1,6 +1,6 @@ use gpui::{AnyView, ClickEvent}; -use crate::{ButtonLike, ButtonLikeRounding, ElevationIndex, prelude::*}; +use crate::{ButtonLike, ButtonLikeRounding, ElevationIndex, TintColor, prelude::*}; /// The position of a [`ToggleButton`] within a group of buttons. #[derive(Debug, PartialEq, Eq, Clone, Copy)] @@ -290,3 +290,627 @@ impl Component for ToggleButton { ) } } + +mod private { + pub trait Sealed {} +} + +pub trait ButtonBuilder: 'static + private::Sealed { + fn label(&self) -> impl Into; + fn icon(&self) -> Option; + fn on_click(self) -> Box; +} + +pub struct ToggleButtonSimple { + label: SharedString, + on_click: Box, +} + +impl ToggleButtonSimple { + pub fn new( + label: impl Into, + on_click: impl Fn(&ClickEvent, &mut Window, &mut App) + 'static, + ) -> Self { + Self { + label: label.into(), + on_click: Box::new(on_click), + } + } +} + +impl private::Sealed for ToggleButtonSimple {} + +impl ButtonBuilder for ToggleButtonSimple { + fn label(&self) -> impl Into { + self.label.clone() + } + + fn icon(&self) -> Option { + None + } + + fn on_click(self) -> Box { + self.on_click + } +} + +pub struct ToggleButtonWithIcon { + label: SharedString, + icon: IconName, + on_click: Box, +} + +impl ToggleButtonWithIcon { + pub fn new( + label: impl Into, + icon: IconName, + on_click: impl Fn(&ClickEvent, &mut Window, &mut App) + 'static, + ) -> Self { + Self { + label: label.into(), + icon, + on_click: Box::new(on_click), + } + } +} + +impl private::Sealed for ToggleButtonWithIcon {} + +impl ButtonBuilder for ToggleButtonWithIcon { + fn label(&self) -> impl Into { + self.label.clone() + } + + fn icon(&self) -> Option { + Some(self.icon) + } + + fn on_click(self) -> Box { + self.on_click + } +} + +struct ToggleButtonRow { + items: Vec, + index_offset: usize, + last_item_idx: usize, + is_last_row: bool, +} + +impl ToggleButtonRow { + fn new(items: Vec, index_offset: usize, is_last_row: bool) -> Self { + Self { + index_offset, + last_item_idx: index_offset + items.len() - 1, + is_last_row, + items, + } + } +} + +enum ToggleButtonGroupRows { + Single(Vec), + Multiple(Vec, Vec), +} + +impl ToggleButtonGroupRows { + fn items(self) -> impl IntoIterator> { + match self { + ToggleButtonGroupRows::Single(items) => { + vec![ToggleButtonRow::new(items, 0, true)] + } + ToggleButtonGroupRows::Multiple(first_row, second_row) => { + let row_len = first_row.len(); + vec![ + ToggleButtonRow::new(first_row, 0, false), + ToggleButtonRow::new(second_row, row_len, true), + ] + } + } + } +} + +#[derive(Clone, Copy, PartialEq)] +pub enum ToggleButtonGroupStyle { + Transparent, + Filled, + Outlined, +} + +#[derive(IntoElement)] +pub struct ToggleButtonGroup +where + T: ButtonBuilder, +{ + group_name: SharedString, + rows: ToggleButtonGroupRows, + style: ToggleButtonGroupStyle, + button_width: Rems, + selected_index: usize, +} + +impl ToggleButtonGroup { + pub fn single_row( + group_name: impl Into, + buttons: impl IntoIterator, + ) -> Self { + Self { + group_name: group_name.into(), + rows: ToggleButtonGroupRows::Single(Vec::from_iter(buttons)), + style: ToggleButtonGroupStyle::Transparent, + button_width: rems_from_px(100.), + selected_index: 0, + } + } + + pub fn multiple_rows( + group_name: impl Into, + first_row: [T; ROWS], + second_row: [T; ROWS], + ) -> Self { + Self { + group_name: group_name.into(), + rows: ToggleButtonGroupRows::Multiple( + Vec::from_iter(first_row), + Vec::from_iter(second_row), + ), + style: ToggleButtonGroupStyle::Transparent, + button_width: rems_from_px(100.), + selected_index: 0, + } + } + + pub fn style(mut self, style: ToggleButtonGroupStyle) -> Self { + self.style = style; + self + } + + pub fn button_width(mut self, button_width: Rems) -> Self { + self.button_width = button_width; + self + } + + pub fn selected_index(mut self, index: usize) -> Self { + self.selected_index = index; + self + } +} + +impl RenderOnce for ToggleButtonGroup { + fn render(self, _window: &mut Window, cx: &mut App) -> impl IntoElement { + let rows = self.rows.items().into_iter().map(|row| { + ( + row.items + .into_iter() + .enumerate() + .map(move |(index, item)| (index + row.index_offset, row.last_item_idx, item)) + .map(|(index, last_item_idx, item)| { + ( + ButtonLike::new((self.group_name.clone(), index)) + .when(index == self.selected_index, |this| { + this.toggle_state(true) + .selected_style(ButtonStyle::Tinted(TintColor::Accent)) + }) + .rounding(None) + .when(self.style == ToggleButtonGroupStyle::Filled, |button| { + button.style(ButtonStyle::Filled) + }) + .child( + h_flex() + .min_w(self.button_width) + .gap_1p5() + .justify_center() + .when_some(item.icon(), |this, icon| { + this.child(Icon::new(icon).size(IconSize::XSmall).map( + |this| { + if index == self.selected_index { + this.color(Color::Accent) + } else { + this.color(Color::Muted) + } + }, + )) + }) + .child( + Label::new(item.label()) + .when(index == self.selected_index, |this| { + this.color(Color::Accent) + }), + ), + ) + .on_click(item.on_click()), + index == last_item_idx, + ) + }), + row.is_last_row, + ) + }); + + let is_outlined_or_filled = self.style == ToggleButtonGroupStyle::Outlined + || self.style == ToggleButtonGroupStyle::Filled; + let is_transparent = self.style == ToggleButtonGroupStyle::Transparent; + let border_color = cx.theme().colors().border.opacity(0.6); + + v_flex() + .rounded_md() + .overflow_hidden() + .map(|this| { + if is_transparent { + this.gap_px() + } else { + this.border_1().border_color(border_color) + } + }) + .children(rows.map(|(items, last_row)| { + h_flex() + .when(!is_outlined_or_filled, |this| this.gap_px()) + .when(is_outlined_or_filled && !last_row, |this| { + this.border_b_1().border_color(border_color) + }) + .children(items.map(|(item, last_item)| { + div() + .when(is_outlined_or_filled && !last_item, |this| { + this.border_r_1().border_color(border_color) + }) + .child(item) + })) + })) + } +} + +fn register_toggle_button_group() { + component::register_component::>(); +} + +component::__private::inventory::submit! { + component::ComponentFn::new(register_toggle_button_group) +} + +impl Component for ToggleButtonGroup { + fn name() -> &'static str { + "ToggleButtonGroup" + } + + fn scope() -> ComponentScope { + ComponentScope::Input + } + + fn sort_name() -> &'static str { + "ButtonG" + } + + fn preview(_window: &mut Window, _cx: &mut App) -> Option { + Some( + v_flex() + .gap_6() + .children(vec![example_group_with_title( + "Transparent Variant", + vec![ + single_example( + "Single Row Group", + ToggleButtonGroup::single_row( + "single_row_test", + [ + ToggleButtonSimple::new("First", |_, _, _| {}), + ToggleButtonSimple::new("Second", |_, _, _| {}), + ToggleButtonSimple::new("Third", |_, _, _| {}), + ], + ) + .selected_index(1) + .button_width(rems_from_px(100.)) + .into_any_element(), + ), + single_example( + "Single Row Group with icons", + ToggleButtonGroup::single_row( + "single_row_test_icon", + [ + ToggleButtonWithIcon::new( + "First", + IconName::AiZed, + |_, _, _| {}, + ), + ToggleButtonWithIcon::new( + "Second", + IconName::AiZed, + |_, _, _| {}, + ), + ToggleButtonWithIcon::new( + "Third", + IconName::AiZed, + |_, _, _| {}, + ), + ], + ) + .selected_index(1) + .button_width(rems_from_px(100.)) + .into_any_element(), + ), + single_example( + "Multiple Row Group", + ToggleButtonGroup::multiple_rows( + "multiple_row_test", + [ + ToggleButtonSimple::new("First", |_, _, _| {}), + ToggleButtonSimple::new("Second", |_, _, _| {}), + ToggleButtonSimple::new("Third", |_, _, _| {}), + ], + [ + ToggleButtonSimple::new("Fourth", |_, _, _| {}), + ToggleButtonSimple::new("Fifth", |_, _, _| {}), + ToggleButtonSimple::new("Sixth", |_, _, _| {}), + ], + ) + .selected_index(3) + .button_width(rems_from_px(100.)) + .into_any_element(), + ), + single_example( + "Multiple Row Group with Icons", + ToggleButtonGroup::multiple_rows( + "multiple_row_test_icons", + [ + ToggleButtonWithIcon::new( + "First", + IconName::AiZed, + |_, _, _| {}, + ), + ToggleButtonWithIcon::new( + "Second", + IconName::AiZed, + |_, _, _| {}, + ), + ToggleButtonWithIcon::new( + "Third", + IconName::AiZed, + |_, _, _| {}, + ), + ], + [ + ToggleButtonWithIcon::new( + "Fourth", + IconName::AiZed, + |_, _, _| {}, + ), + ToggleButtonWithIcon::new( + "Fifth", + IconName::AiZed, + |_, _, _| {}, + ), + ToggleButtonWithIcon::new( + "Sixth", + IconName::AiZed, + |_, _, _| {}, + ), + ], + ) + .selected_index(3) + .button_width(rems_from_px(100.)) + .into_any_element(), + ), + ], + )]) + .children(vec![example_group_with_title( + "Outlined Variant", + vec![ + single_example( + "Single Row Group", + ToggleButtonGroup::single_row( + "single_row_test_outline", + [ + ToggleButtonSimple::new("First", |_, _, _| {}), + ToggleButtonSimple::new("Second", |_, _, _| {}), + ToggleButtonSimple::new("Third", |_, _, _| {}), + ], + ) + .selected_index(1) + .style(ToggleButtonGroupStyle::Outlined) + .into_any_element(), + ), + single_example( + "Single Row Group with icons", + ToggleButtonGroup::single_row( + "single_row_test_icon_outlined", + [ + ToggleButtonWithIcon::new( + "First", + IconName::AiZed, + |_, _, _| {}, + ), + ToggleButtonWithIcon::new( + "Second", + IconName::AiZed, + |_, _, _| {}, + ), + ToggleButtonWithIcon::new( + "Third", + IconName::AiZed, + |_, _, _| {}, + ), + ], + ) + .selected_index(1) + .button_width(rems_from_px(100.)) + .style(ToggleButtonGroupStyle::Outlined) + .into_any_element(), + ), + single_example( + "Multiple Row Group", + ToggleButtonGroup::multiple_rows( + "multiple_row_test", + [ + ToggleButtonSimple::new("First", |_, _, _| {}), + ToggleButtonSimple::new("Second", |_, _, _| {}), + ToggleButtonSimple::new("Third", |_, _, _| {}), + ], + [ + ToggleButtonSimple::new("Fourth", |_, _, _| {}), + ToggleButtonSimple::new("Fifth", |_, _, _| {}), + ToggleButtonSimple::new("Sixth", |_, _, _| {}), + ], + ) + .selected_index(3) + .button_width(rems_from_px(100.)) + .style(ToggleButtonGroupStyle::Outlined) + .into_any_element(), + ), + single_example( + "Multiple Row Group with Icons", + ToggleButtonGroup::multiple_rows( + "multiple_row_test", + [ + ToggleButtonWithIcon::new( + "First", + IconName::AiZed, + |_, _, _| {}, + ), + ToggleButtonWithIcon::new( + "Second", + IconName::AiZed, + |_, _, _| {}, + ), + ToggleButtonWithIcon::new( + "Third", + IconName::AiZed, + |_, _, _| {}, + ), + ], + [ + ToggleButtonWithIcon::new( + "Fourth", + IconName::AiZed, + |_, _, _| {}, + ), + ToggleButtonWithIcon::new( + "Fifth", + IconName::AiZed, + |_, _, _| {}, + ), + ToggleButtonWithIcon::new( + "Sixth", + IconName::AiZed, + |_, _, _| {}, + ), + ], + ) + .selected_index(3) + .button_width(rems_from_px(100.)) + .style(ToggleButtonGroupStyle::Outlined) + .into_any_element(), + ), + ], + )]) + .children(vec![example_group_with_title( + "Filled Variant", + vec![ + single_example( + "Single Row Group", + ToggleButtonGroup::single_row( + "single_row_test_outline", + [ + ToggleButtonSimple::new("First", |_, _, _| {}), + ToggleButtonSimple::new("Second", |_, _, _| {}), + ToggleButtonSimple::new("Third", |_, _, _| {}), + ], + ) + .selected_index(2) + .style(ToggleButtonGroupStyle::Filled) + .into_any_element(), + ), + single_example( + "Single Row Group with icons", + ToggleButtonGroup::single_row( + "single_row_test_icon_outlined", + [ + ToggleButtonWithIcon::new( + "First", + IconName::AiZed, + |_, _, _| {}, + ), + ToggleButtonWithIcon::new( + "Second", + IconName::AiZed, + |_, _, _| {}, + ), + ToggleButtonWithIcon::new( + "Third", + IconName::AiZed, + |_, _, _| {}, + ), + ], + ) + .selected_index(1) + .button_width(rems_from_px(100.)) + .style(ToggleButtonGroupStyle::Filled) + .into_any_element(), + ), + single_example( + "Multiple Row Group", + ToggleButtonGroup::multiple_rows( + "multiple_row_test", + [ + ToggleButtonSimple::new("First", |_, _, _| {}), + ToggleButtonSimple::new("Second", |_, _, _| {}), + ToggleButtonSimple::new("Third", |_, _, _| {}), + ], + [ + ToggleButtonSimple::new("Fourth", |_, _, _| {}), + ToggleButtonSimple::new("Fifth", |_, _, _| {}), + ToggleButtonSimple::new("Sixth", |_, _, _| {}), + ], + ) + .selected_index(3) + .button_width(rems_from_px(100.)) + .style(ToggleButtonGroupStyle::Filled) + .into_any_element(), + ), + single_example( + "Multiple Row Group with Icons", + ToggleButtonGroup::multiple_rows( + "multiple_row_test", + [ + ToggleButtonWithIcon::new( + "First", + IconName::AiZed, + |_, _, _| {}, + ), + ToggleButtonWithIcon::new( + "Second", + IconName::AiZed, + |_, _, _| {}, + ), + ToggleButtonWithIcon::new( + "Third", + IconName::AiZed, + |_, _, _| {}, + ), + ], + [ + ToggleButtonWithIcon::new( + "Fourth", + IconName::AiZed, + |_, _, _| {}, + ), + ToggleButtonWithIcon::new( + "Fifth", + IconName::AiZed, + |_, _, _| {}, + ), + ToggleButtonWithIcon::new( + "Sixth", + IconName::AiZed, + |_, _, _| {}, + ), + ], + ) + .selected_index(3) + .button_width(rems_from_px(100.)) + .style(ToggleButtonGroupStyle::Filled) + .into_any_element(), + ), + ], + )]) + .into_any_element(), + ) + } +} From 4854f83e8c65f8eef2d90ac8fbfec7c875458a12 Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Fri, 25 Jul 2025 21:00:44 -0300 Subject: [PATCH 0229/1052] agent: Fix settings view switch field about permissions for running commands (#35120) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Follow-up to https://github.com/zed-industries/zed/pull/34866, where I mistakenly didn't update the copy and id for this item. Closes https://github.com/zed-industries/zed/issues/34850 — that's because the edit tool runs by default, but the terminal tool does not. I updated the original copy to reflect this, which should be enough to close the issue, given that in terms of behavior, it is working correctly. Release Notes: - agent: Fixed duplicated settings item in the agent panel as well as improve copy for the setting to allow running commands without permission. --- crates/agent_ui/src/agent_configuration.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/agent_ui/src/agent_configuration.rs b/crates/agent_ui/src/agent_configuration.rs index cacd409ac6..fae04188eb 100644 --- a/crates/agent_ui/src/agent_configuration.rs +++ b/crates/agent_ui/src/agent_configuration.rs @@ -404,9 +404,9 @@ impl AgentConfiguration { let fs = self.fs.clone(); SwitchField::new( - "single-file-review", - "Enable single-file agent reviews", - "Agent edits are also displayed in single-file editors for review.", + "always-allow-tool-actions-switch", + "Allow running commands without asking for confirmation", + "The agent can perform potentially destructive actions without asking for your confirmation.", always_allow_tool_actions, move |state, _window, cx| { let allow = state == &ToggleState::Selected; From e911364664a21bf2bb46e6b9156e338b92377423 Mon Sep 17 00:00:00 2001 From: Finn Evers Date: Sat, 26 Jul 2025 02:08:20 +0200 Subject: [PATCH 0230/1052] ui: Clean up scrollbar component (#35121) This PR does some minor cleanup to the scrollbar component. Namely, it removes some clones, reduces the amount of unnecessary notifies and ensures the scrollbar hover state is more accurately updated. Release Notes: - N/A --- crates/ui/src/components/scrollbar.rs | 82 ++++++++++++++++----------- 1 file changed, 48 insertions(+), 34 deletions(-) diff --git a/crates/ui/src/components/scrollbar.rs b/crates/ui/src/components/scrollbar.rs index 17ab2e788f..6a64659f24 100644 --- a/crates/ui/src/components/scrollbar.rs +++ b/crates/ui/src/components/scrollbar.rs @@ -4,8 +4,8 @@ use crate::{IntoElement, prelude::*, px, relative}; use gpui::{ Along, App, Axis as ScrollbarAxis, BorderStyle, Bounds, ContentMask, Corners, CursorStyle, Edges, Element, ElementId, Entity, EntityId, GlobalElementId, Hitbox, HitboxBehavior, Hsla, - IsZero, LayoutId, ListState, MouseDownEvent, MouseMoveEvent, MouseUpEvent, Pixels, Point, - ScrollHandle, ScrollWheelEvent, Size, Style, UniformListScrollHandle, Window, quad, + IsZero, LayoutId, ListState, MouseButton, MouseDownEvent, MouseMoveEvent, MouseUpEvent, Pixels, + Point, ScrollHandle, ScrollWheelEvent, Size, Style, UniformListScrollHandle, Window, quad, }; pub struct Scrollbar { @@ -301,8 +301,6 @@ impl Element for Scrollbar { window.set_cursor_style(CursorStyle::Arrow, hitbox); } - let scroll = self.state.scroll_handle.clone(); - enum ScrollbarMouseEvent { GutterClick, ThumbDrag(Pixels), @@ -337,10 +335,12 @@ impl Element for Scrollbar { }; window.on_mouse_event({ - let scroll = scroll.clone(); let state = self.state.clone(); move |event: &MouseDownEvent, phase, _, _| { - if !(phase.bubble() && bounds.contains(&event.position)) { + if !phase.bubble() + || event.button != MouseButton::Left + || bounds.contains(&event.position) + { return; } @@ -348,57 +348,71 @@ impl Element for Scrollbar { let offset = event.position.along(axis) - thumb_bounds.origin.along(axis); state.set_dragging(offset); } else { + let scroll_handle = state.scroll_handle(); let click_offset = compute_click_offset( event.position, - scroll.max_offset(), + scroll_handle.max_offset(), ScrollbarMouseEvent::GutterClick, ); - scroll.set_offset(scroll.offset().apply_along(axis, |_| click_offset)); + scroll_handle + .set_offset(scroll_handle.offset().apply_along(axis, |_| click_offset)); } } }); window.on_mouse_event({ - let scroll = scroll.clone(); + let scroll_handle = self.state.scroll_handle().clone(); move |event: &ScrollWheelEvent, phase, window, _| { if phase.bubble() && bounds.contains(&event.position) { - let current_offset = scroll.offset(); - scroll.set_offset( + let current_offset = scroll_handle.offset(); + scroll_handle.set_offset( current_offset + event.delta.pixel_delta(window.line_height()), ); } } }); - let state = self.state.clone(); - window.on_mouse_event(move |event: &MouseMoveEvent, _, window, cx| { - match state.thumb_state.get() { - ThumbState::Dragging(drag_state) if event.dragging() => { - let drag_offset = compute_click_offset( - event.position, - scroll.max_offset(), - ScrollbarMouseEvent::ThumbDrag(drag_state), - ); - scroll.set_offset(scroll.offset().apply_along(axis, |_| drag_offset)); - window.refresh(); - if let Some(id) = state.parent_id { - cx.notify(id); + window.on_mouse_event({ + let state = self.state.clone(); + move |event: &MouseMoveEvent, phase, window, cx| { + if phase.bubble() { + match state.thumb_state.get() { + ThumbState::Dragging(drag_state) if event.dragging() => { + let scroll_handle = state.scroll_handle(); + let drag_offset = compute_click_offset( + event.position, + scroll_handle.max_offset(), + ScrollbarMouseEvent::ThumbDrag(drag_state), + ); + scroll_handle.set_offset( + scroll_handle.offset().apply_along(axis, |_| drag_offset), + ); + window.refresh(); + if let Some(id) = state.parent_id { + cx.notify(id); + } + } + _ if event.pressed_button.is_none() => { + state.set_thumb_hovered(thumb_bounds.contains(&event.position)) + } + _ => {} } } - _ => state.set_thumb_hovered(thumb_bounds.contains(&event.position)), } }); - let state = self.state.clone(); - let scroll = self.state.scroll_handle.clone(); - window.on_mouse_event(move |event: &MouseUpEvent, phase, _, cx| { - if phase.bubble() { - if state.is_dragging() { + + window.on_mouse_event({ + let state = self.state.clone(); + move |event: &MouseUpEvent, phase, _, cx| { + if phase.bubble() { + if state.is_dragging() { + state.scroll_handle().drag_ended(); + if let Some(id) = state.parent_id { + cx.notify(id); + } + } state.set_thumb_hovered(thumb_bounds.contains(&event.position)); } - scroll.drag_ended(); - if let Some(id) = state.parent_id { - cx.notify(id); - } } }); }) From 08402e25e0cf0cdc3c8a6fd487aebe501274204f Mon Sep 17 00:00:00 2001 From: Finn Evers Date: Sat, 26 Jul 2025 17:45:13 +0200 Subject: [PATCH 0231/1052] ui: Fix scrollbar mouse down handler (#35131) Follow-up to https://github.com/zed-industries/zed/pull/35121 - in the process of adding the check for the left mouse button to the guard (which was practically already there before, just not in the mouse-down listener), I accidentally removed the negation for the bounds check. This PR fixes this. Release Notes: - N/A --- crates/ui/src/components/scrollbar.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/ui/src/components/scrollbar.rs b/crates/ui/src/components/scrollbar.rs index 6a64659f24..7af55b76b7 100644 --- a/crates/ui/src/components/scrollbar.rs +++ b/crates/ui/src/components/scrollbar.rs @@ -339,7 +339,7 @@ impl Element for Scrollbar { move |event: &MouseDownEvent, phase, _, _| { if !phase.bubble() || event.button != MouseButton::Left - || bounds.contains(&event.position) + || !bounds.contains(&event.position) { return; } From 290f84a9e161fa8675c303d3bb99f76a0ecd0213 Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Sat, 26 Jul 2025 13:06:12 -0300 Subject: [PATCH 0232/1052] docs: Restructure and improve AI configuration docs (#35133) Adding a number of settings that weren't documented, restructuring things a bit to separate what is model-related settings from agent panel usage-related settings, adding the recently introduced `disable_ai` key, and more. Release Notes: - Improved docs around configuring and using AI in Zed --- docs/book.toml | 1 + docs/src/SUMMARY.md | 3 +- docs/src/accounts.md | 2 +- docs/src/ai/agent-panel.md | 4 +- docs/src/ai/agent-settings.md | 223 ++++++++++ docs/src/ai/configuration.md | 733 +------------------------------- docs/src/ai/inline-assistant.md | 2 +- docs/src/ai/llm-providers.md | 607 ++++++++++++++++++++++++++ docs/src/ai/overview.md | 3 +- docs/src/ai/plans-and-usage.md | 2 +- docs/src/ai/rules.md | 2 +- docs/src/ai/temperature.md | 23 - docs/src/configuring-zed.md | 21 +- docs/src/git.md | 2 +- 14 files changed, 851 insertions(+), 777 deletions(-) create mode 100644 docs/src/ai/agent-settings.md create mode 100644 docs/src/ai/llm-providers.md delete mode 100644 docs/src/ai/temperature.md diff --git a/docs/book.toml b/docs/book.toml index f5d186f377..518fbec819 100644 --- a/docs/book.toml +++ b/docs/book.toml @@ -40,6 +40,7 @@ enable = false "/assistant/prompting.html" = "/docs/ai/rules.html" "/language-model-integration.html" = "/docs/assistant/assistant.html" "/model-improvement.html" = "/docs/ai/ai-improvement.html" +"/ai/temperature.html" = "/docs/ai/agent-settings.html#model-temperature" # Community "/community/feedback.html" = "/community-links" diff --git a/docs/src/SUMMARY.md b/docs/src/SUMMARY.md index 1d43872547..fc936d6bd0 100644 --- a/docs/src/SUMMARY.md +++ b/docs/src/SUMMARY.md @@ -45,13 +45,14 @@ - [Overview](./ai/overview.md) - [Agent Panel](./ai/agent-panel.md) - [Tools](./ai/tools.md) - - [Model Temperature](./ai/temperature.md) - [Inline Assistant](./ai/inline-assistant.md) - [Edit Prediction](./ai/edit-prediction.md) - [Text Threads](./ai/text-threads.md) - [Rules](./ai/rules.md) - [Model Context Protocol](./ai/mcp.md) - [Configuration](./ai/configuration.md) + - [LLM Providers](./ai/llm-providers.md) + - [Agent Settings](./ai/agent-settings.md) - [Subscription](./ai/subscription.md) - [Plans and Usage](./ai/plans-and-usage.md) - [Billing](./ai/billing.md) diff --git a/docs/src/accounts.md b/docs/src/accounts.md index c13c98ad9a..1ce23cf902 100644 --- a/docs/src/accounts.md +++ b/docs/src/accounts.md @@ -5,7 +5,7 @@ Signing in to Zed is not a requirement. You can use most features you'd expect i ## What Features Require Signing In? 1. All real-time [collaboration features](./collaboration.md). -2. [LLM-powered features](./ai/overview.md), if you are using Zed as the provider of your LLM models. Alternatively, you can [bring and configure your own API keys](./ai/configuration.md#use-your-own-keys) if you'd prefer, and avoid having to sign in. +2. [LLM-powered features](./ai/overview.md), if you are using Zed as the provider of your LLM models. Alternatively, you can [bring and configure your own API keys](./ai/llm-providers.md#use-your-own-keys) if you'd prefer, and avoid having to sign in. ## Signing In diff --git a/docs/src/ai/agent-panel.md b/docs/src/ai/agent-panel.md index 97568d6643..f944eb88b0 100644 --- a/docs/src/ai/agent-panel.md +++ b/docs/src/ai/agent-panel.md @@ -8,7 +8,7 @@ If you're using the Agent Panel for the first time, you need to have at least on You can do that by: 1. [subscribing to our Pro plan](https://zed.dev/pricing), so you have access to our hosted models -2. or by [bringing your own API keys](./configuration.md#use-your-own-keys) for your desired provider +2. or by [bringing your own API keys](./llm-providers.md#use-your-own-keys) for your desired provider ## Overview {#overview} @@ -87,7 +87,7 @@ You can also do this at any time with an ongoing thread via the "Agent Options" ## Changing Models {#changing-models} -After you've configured your LLM providers—either via [a custom API key](./configuration.md#use-your-own-keys) or through [Zed's hosted models](./models.md)—you can switch between them by clicking on the model selector on the message editor or by using the {#kb agent::ToggleModelSelector} keybinding. +After you've configured your LLM providers—either via [a custom API key](./llm-providers.md#use-your-own-keys) or through [Zed's hosted models](./models.md)—you can switch between them by clicking on the model selector on the message editor or by using the {#kb agent::ToggleModelSelector} keybinding. ## Using Tools {#using-tools} diff --git a/docs/src/ai/agent-settings.md b/docs/src/ai/agent-settings.md new file mode 100644 index 0000000000..60702e42fc --- /dev/null +++ b/docs/src/ai/agent-settings.md @@ -0,0 +1,223 @@ +# Agent Settings + +Learn about all the settings you can customize in Zed's Agent Panel. + +## Model Settings {#model-settings} + +### Default Model {#default-model} + +If you're using Zed's hosted LLM service, it sets `claude-sonnet-4` as the default model. +But if you're not subscribed to the hosted service or simply just want to change it, you can do it so either via the model dropdown in the Agent Panel's bottom-right corner or by manually editing the `default_model` object in your settings: + +```json +{ + "agent": { + "version": "2", + "default_model": { + "provider": "zed.dev", + "model": "gpt-4o" + } + } +} +``` + +### Feature-specific Models {#feature-specific-models} + +Assign distinct and specific models for the following AI-powered features in Zed: + +- Thread summary model: Used for generating thread summaries +- Inline assistant model: Used for the inline assistant feature +- Commit message model: Used for generating Git commit messages + +```json +{ + "agent": { + "version": "2", + "default_model": { + "provider": "zed.dev", + "model": "claude-sonnet-4" + }, + "inline_assistant_model": { + "provider": "anthropic", + "model": "claude-3-5-sonnet" + }, + "commit_message_model": { + "provider": "openai", + "model": "gpt-4o-mini" + }, + "thread_summary_model": { + "provider": "google", + "model": "gemini-2.0-flash" + } + } +} +``` + +> If a model isn't set for one of these features, they automatically fall back to using the default model. + +### Alternative Models for Inline Assists {#alternative-assists} + +The Inline Assist feature in particular has the capacity to perform multiple generations in parallel using different models. +That is possible by assigning more than one model to it, taking the configuration shown above one step further. + +When configured, the inline assist UI will surface controls to cycle between the outputs generated by each model. + +The models you specify here are always used in _addition_ to your [default model](#default-model). + +For example, the following configuration will generate two outputs for every assist. +One with Claude Sonnet 4 (the default model), and one with GPT-4o. + +```json +{ + "agent": { + "default_model": { + "provider": "zed.dev", + "model": "claude-sonnet-4" + }, + "inline_alternatives": [ + { + "provider": "zed.dev", + "model": "gpt-4o" + } + ] + } +} +``` + +### Model Temperature + +Specify a custom temperature for a provider and/or model: + +```json +"model_parameters": [ + // To set parameters for all requests to OpenAI models: + { + "provider": "openai", + "temperature": 0.5 + }, + // To set parameters for all requests in general: + { + "temperature": 0 + }, + // To set parameters for a specific provider and model: + { + "provider": "zed.dev", + "model": "claude-sonnet-4", + "temperature": 1.0 + } +], +``` + +## Agent Panel Settings {#agent-panel-settings} + +Note that some of these settings are also surfaced in the Agent Panel's settings UI, which you can access either via the `agent: open configuration` action or by the dropdown menu on the top-right corner of the panel. + +### Default View + +Use the `default_view` setting to change the default view of the Agent Panel. +You can choose between `thread` (the default) and `text_thread`: + +```json +{ + "agent": { + "default_view": "text_thread" + } +} +``` + +### Auto-run Commands + +Control whether you want to allow the agent to run commands without asking you for permission. + +```json +{ + "agent": { + "always_allow_tool_actions": "true" + } +} +``` + +> This setting is available via the Agent Panel's settings UI. + +### Single-file Review + +Control whether you want to see review actions (accept & reject) in single buffers after the agent is done performing edits. + +```json +{ + "agent": { + "single_file_review": "true" + } +} +``` + +When set to false, these controls are only available in the multibuffer review tab. + +> This setting is available via the Agent Panel's settings UI. + +### Sound Notification + +Control whether you want to hear a notification sound when the agent is done generating changes or needs your input. + +```json +{ + "agent": { + "play_sound_when_agent_done": "true" + } +} +``` + +> This setting is available via the Agent Panel's settings UI. + +### Modifier to Send + +Make a modifier (`cmd` on macOS, `ctrl` on Linux) required to send messages. +This is encouraged for more thoughtful prompt crafting. + +```json +{ + "agent": { + "use_modifier_to_send": "true" + } +} +``` + +> This setting is available via the Agent Panel's settings UI. + +### Edit Card + +Use the `expand_edit_card` setting to control whether edit cards show the full diff in the Agent Panel. +It is set to `true` by default, but if set to false, the card's height is capped to a certain number of lines, requiring a click to be expanded. + +```json +{ + "agent": { + "expand_edit_card": "false" + } +} +``` + +### Terminal Card + +Use the `expand_terminal_card` setting to control whether terminal cards show the command output in the Agent Panel. +It is set to `true` by default, but if set to false, the card will be fully collapsed even while the command is running, requiring a click to be expanded. + +```json +{ + "agent": { + "expand_terminal_card": "false" + } +} +``` + +### Feedback Controls + +Control whether you want to see the thumbs up/down buttons to give Zed feedback about the agent's performance. + +```json +{ + "agent": { + "enable_feedback": "false" + } +} +``` diff --git a/docs/src/ai/configuration.md b/docs/src/ai/configuration.md index 414da2206f..13a0121712 100644 --- a/docs/src/ai/configuration.md +++ b/docs/src/ai/configuration.md @@ -1,735 +1,20 @@ # Configuration -There are various aspects about the Agent Panel that you can customize. -All of them can be seen by either visiting [the Configuring Zed page](../configuring-zed.md#agent) or by running the `zed: open default settings` action and searching for `"agent"`. +When using AI in Zed, you can customize several aspects: -Alternatively, you can also visit the panel's Settings view by running the `agent: open configuration` action or going to the top-right menu and hitting "Settings". +1. Which [LLM providers](./llm-providers.md) you can use +2. [Model parameters and usage](./agent-settings.md#model-settings) +3. [Interactions with the Agent Panel](./agent-settings.md#agent-panel-settings) -## LLM Providers +## Turning AI off entirely -Zed supports multiple large language model providers. -Here's an overview of the supported providers and tool call support: - -| Provider | Tool Use Supported | -| ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [Amazon Bedrock](#amazon-bedrock) | Depends on the model | -| [Anthropic](#anthropic) | ✅ | -| [DeepSeek](#deepseek) | ✅ | -| [GitHub Copilot Chat](#github-copilot-chat) | For some models ([link](https://github.com/zed-industries/zed/blob/9e0330ba7d848755c9734bf456c716bddf0973f3/crates/language_models/src/provider/copilot_chat.rs#L189-L198)) | -| [Google AI](#google-ai) | ✅ | -| [LM Studio](#lmstudio) | ✅ | -| [Mistral](#mistral) | ✅ | -| [Ollama](#ollama) | ✅ | -| [OpenAI](#openai) | ✅ | -| [OpenAI API Compatible](#openai-api-compatible) | 🚫 | -| [OpenRouter](#openrouter) | ✅ | -| [Vercel](#vercel-v0) | ✅ | -| [xAI](#xai) | ✅ | - -## Use Your Own Keys {#use-your-own-keys} - -While Zed offers hosted versions of models through [our various plans](./plans-and-usage.md), we're always happy to support users wanting to supply their own API keys. -Below, you can learn how to do that for each provider. - -> Using your own API keys is _free_—you do not need to subscribe to a Zed plan to use our AI features with your own keys. - -### Amazon Bedrock {#amazon-bedrock} - -> ✅ Supports tool use with models that support streaming tool use. -> More details can be found in the [Amazon Bedrock's Tool Use documentation](https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-supported-models-features.html). - -To use Amazon Bedrock's models, an AWS authentication is required. -Ensure your credentials have the following permissions set up: - -- `bedrock:InvokeModelWithResponseStream` -- `bedrock:InvokeModel` -- `bedrock:ConverseStream` - -Your IAM policy should look similar to: +We want to respect users who want to use Zed without interacting with AI whatsoever. +To do that, add the following key to your `settings.json`: ```json { - "Version": "2012-10-17", - "Statement": [ - { - "Effect": "Allow", - "Action": [ - "bedrock:InvokeModel", - "bedrock:InvokeModelWithResponseStream", - "bedrock:ConverseStream" - ], - "Resource": "*" - } - ] + "disable_ai": true } ``` -With that done, choose one of the two authentication methods: - -#### Authentication via Named Profile (Recommended) - -1. Ensure you have the AWS CLI installed and configured with a named profile -2. Open your `settings.json` (`zed: open settings`) and include the `bedrock` key under `language_models` with the following settings: - ```json - { - "language_models": { - "bedrock": { - "authentication_method": "named_profile", - "region": "your-aws-region", - "profile": "your-profile-name" - } - } - } - ``` - -#### Authentication via Static Credentials - -While it's possible to configure through the Agent Panel settings UI by entering your AWS access key and secret directly, we recommend using named profiles instead for better security practices. -To do this: - -1. Create an IAM User that you can assume in the [IAM Console](https://us-east-1.console.aws.amazon.com/iam/home?region=us-east-1#/users). -2. Create security credentials for that User, save them and keep them secure. -3. Open the Agent Configuration with (`agent: open configuration`) and go to the Amazon Bedrock section -4. Copy the credentials from Step 2 into the respective **Access Key ID**, **Secret Access Key**, and **Region** fields. - -#### Cross-Region Inference - -The Zed implementation of Amazon Bedrock uses [Cross-Region inference](https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference.html) for all the models and region combinations that support it. -With Cross-Region inference, you can distribute traffic across multiple AWS Regions, enabling higher throughput. - -For example, if you use `Claude Sonnet 3.7 Thinking` from `us-east-1`, it may be processed across the US regions, namely: `us-east-1`, `us-east-2`, or `us-west-2`. -Cross-Region inference requests are kept within the AWS Regions that are part of the geography where the data originally resides. -For example, a request made within the US is kept within the AWS Regions in the US. - -Although the data remains stored only in the source Region, your input prompts and output results might move outside of your source Region during cross-Region inference. -All data will be transmitted encrypted across Amazon's secure network. - -We will support Cross-Region inference for each of the models on a best-effort basis, please refer to the [Cross-Region Inference method Code](https://github.com/zed-industries/zed/blob/main/crates/bedrock/src/models.rs#L297). - -For the most up-to-date supported regions and models, refer to the [Supported Models and Regions for Cross Region inference](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-support.html). - -### Anthropic {#anthropic} - -> ✅ Supports tool use - -You can use Anthropic models by choosing it via the model dropdown in the Agent Panel. - -1. Sign up for Anthropic and [create an API key](https://console.anthropic.com/settings/keys) -2. Make sure that your Anthropic account has credits -3. Open the settings view (`agent: open configuration`) and go to the Anthropic section -4. Enter your Anthropic API key - -Even if you pay for Claude Pro, you will still have to [pay for additional credits](https://console.anthropic.com/settings/plans) to use it via the API. - -Zed will also use the `ANTHROPIC_API_KEY` environment variable if it's defined. - -#### Custom Models {#anthropic-custom-models} - -You can add custom models to the Anthropic provider by adding the following to your Zed `settings.json`: - -```json -{ - "language_models": { - "anthropic": { - "available_models": [ - { - "name": "claude-3-5-sonnet-20240620", - "display_name": "Sonnet 2024-June", - "max_tokens": 128000, - "max_output_tokens": 2560, - "cache_configuration": { - "max_cache_anchors": 10, - "min_total_token": 10000, - "should_speculate": false - }, - "tool_override": "some-model-that-supports-toolcalling" - } - ] - } - } -} -``` - -Custom models will be listed in the model dropdown in the Agent Panel. - -You can configure a model to use [extended thinking](https://docs.anthropic.com/en/docs/about-claude/models/extended-thinking-models) (if it supports it) by changing the mode in your model's configuration to `thinking`, for example: - -```json -{ - "name": "claude-sonnet-4-latest", - "display_name": "claude-sonnet-4-thinking", - "max_tokens": 200000, - "mode": { - "type": "thinking", - "budget_tokens": 4_096 - } -} -``` - -### DeepSeek {#deepseek} - -> ✅ Supports tool use - -1. Visit the DeepSeek platform and [create an API key](https://platform.deepseek.com/api_keys) -2. Open the settings view (`agent: open configuration`) and go to the DeepSeek section -3. Enter your DeepSeek API key - -The DeepSeek API key will be saved in your keychain. - -Zed will also use the `DEEPSEEK_API_KEY` environment variable if it's defined. - -#### Custom Models {#deepseek-custom-models} - -The Zed agent comes pre-configured to use the latest version for common models (DeepSeek Chat, DeepSeek Reasoner). -If you wish to use alternate models or customize the API endpoint, you can do so by adding the following to your Zed `settings.json`: - -```json -{ - "language_models": { - "deepseek": { - "api_url": "https://api.deepseek.com", - "available_models": [ - { - "name": "deepseek-chat", - "display_name": "DeepSeek Chat", - "max_tokens": 64000 - }, - { - "name": "deepseek-reasoner", - "display_name": "DeepSeek Reasoner", - "max_tokens": 64000, - "max_output_tokens": 4096 - } - ] - } - } -} -``` - -Custom models will be listed in the model dropdown in the Agent Panel. -You can also modify the `api_url` to use a custom endpoint if needed. - -### GitHub Copilot Chat {#github-copilot-chat} - -> ✅ Supports tool use in some cases. -> Visit [the Copilot Chat code](https://github.com/zed-industries/zed/blob/9e0330ba7d848755c9734bf456c716bddf0973f3/crates/language_models/src/provider/copilot_chat.rs#L189-L198) for the supported subset. - -You can use GitHub Copilot Chat with the Zed agent by choosing it via the model dropdown in the Agent Panel. - -1. Open the settings view (`agent: open configuration`) and go to the GitHub Copilot Chat section -2. Click on `Sign in to use GitHub Copilot`, follow the steps shown in the modal. - -Alternatively, you can provide an OAuth token via the `GH_COPILOT_TOKEN` environment variable. - -> **Note**: If you don't see specific models in the dropdown, you may need to enable them in your [GitHub Copilot settings](https://github.com/settings/copilot/features). - -To use Copilot Enterprise with Zed (for both agent and inline completions), you must configure your enterprise endpoint as described in [Configuring GitHub Copilot Enterprise](./edit-prediction.md#github-copilot-enterprise). - -### Google AI {#google-ai} - -> ✅ Supports tool use - -You can use Gemini models with the Zed agent by choosing it via the model dropdown in the Agent Panel. - -1. Go to the Google AI Studio site and [create an API key](https://aistudio.google.com/app/apikey). -2. Open the settings view (`agent: open configuration`) and go to the Google AI section -3. Enter your Google AI API key and press enter. - -The Google AI API key will be saved in your keychain. - -Zed will also use the `GEMINI_API_KEY` environment variable if it's defined. See [Using Gemini API keys](Using Gemini API keys) in the Gemini docs for more. - -#### Custom Models {#google-ai-custom-models} - -By default, Zed will use `stable` versions of models, but you can use specific versions of models, including [experimental models](https://ai.google.dev/gemini-api/docs/models/experimental-models). You can configure a model to use [thinking mode](https://ai.google.dev/gemini-api/docs/thinking) (if it supports it) by adding a `mode` configuration to your model. This is useful for controlling reasoning token usage and response speed. If not specified, Gemini will automatically choose the thinking budget. - -Here is an example of a custom Google AI model you could add to your Zed `settings.json`: - -```json -{ - "language_models": { - "google": { - "available_models": [ - { - "name": "gemini-2.5-flash-preview-05-20", - "display_name": "Gemini 2.5 Flash (Thinking)", - "max_tokens": 1000000, - "mode": { - "type": "thinking", - "budget_tokens": 24000 - } - } - ] - } - } -} -``` - -Custom models will be listed in the model dropdown in the Agent Panel. - -### LM Studio {#lmstudio} - -> ✅ Supports tool use - -1. Download and install [the latest version of LM Studio](https://lmstudio.ai/download) -2. In the app press `cmd/ctrl-shift-m` and download at least one model (e.g., qwen2.5-coder-7b). Alternatively, you can get models via the LM Studio CLI: - - ```sh - lms get qwen2.5-coder-7b - ``` - -3. Make sure the LM Studio API server is running by executing: - - ```sh - lms server start - ``` - -Tip: Set [LM Studio as a login item](https://lmstudio.ai/docs/advanced/headless#run-the-llm-service-on-machine-login) to automate running the LM Studio server. - -### Mistral {#mistral} - -> ✅ Supports tool use - -1. Visit the Mistral platform and [create an API key](https://console.mistral.ai/api-keys/) -2. Open the configuration view (`agent: open configuration`) and navigate to the Mistral section -3. Enter your Mistral API key - -The Mistral API key will be saved in your keychain. - -Zed will also use the `MISTRAL_API_KEY` environment variable if it's defined. - -#### Custom Models {#mistral-custom-models} - -The Zed agent comes pre-configured with several Mistral models (codestral-latest, mistral-large-latest, mistral-medium-latest, mistral-small-latest, open-mistral-nemo, and open-codestral-mamba). -All the default models support tool use. -If you wish to use alternate models or customize their parameters, you can do so by adding the following to your Zed `settings.json`: - -```json -{ - "language_models": { - "mistral": { - "api_url": "https://api.mistral.ai/v1", - "available_models": [ - { - "name": "mistral-tiny-latest", - "display_name": "Mistral Tiny", - "max_tokens": 32000, - "max_output_tokens": 4096, - "max_completion_tokens": 1024, - "supports_tools": true, - "supports_images": false - } - ] - } - } -} -``` - -Custom models will be listed in the model dropdown in the Agent Panel. - -### Ollama {#ollama} - -> ✅ Supports tool use - -Download and install Ollama from [ollama.com/download](https://ollama.com/download) (Linux or macOS) and ensure it's running with `ollama --version`. - -1. Download one of the [available models](https://ollama.com/models), for example, for `mistral`: - - ```sh - ollama pull mistral - ``` - -2. Make sure that the Ollama server is running. You can start it either via running Ollama.app (macOS) or launching: - - ```sh - ollama serve - ``` - -3. In the Agent Panel, select one of the Ollama models using the model dropdown. - -#### Ollama Context Length {#ollama-context} - -Zed has pre-configured maximum context lengths (`max_tokens`) to match the capabilities of common models. -Zed API requests to Ollama include this as the `num_ctx` parameter, but the default values do not exceed `16384` so users with ~16GB of RAM are able to use most models out of the box. - -See [get_max_tokens in ollama.rs](https://github.com/zed-industries/zed/blob/main/crates/ollama/src/ollama.rs) for a complete set of defaults. - -> **Note**: Token counts displayed in the Agent Panel are only estimates and will differ from the model's native tokenizer. - -Depending on your hardware or use-case you may wish to limit or increase the context length for a specific model via settings.json: - -```json -{ - "language_models": { - "ollama": { - "api_url": "http://localhost:11434", - "available_models": [ - { - "name": "qwen2.5-coder", - "display_name": "qwen 2.5 coder 32K", - "max_tokens": 32768, - "supports_tools": true, - "supports_thinking": true, - "supports_images": true - } - ] - } - } -} -``` - -If you specify a context length that is too large for your hardware, Ollama will log an error. -You can watch these logs by running: `tail -f ~/.ollama/logs/ollama.log` (macOS) or `journalctl -u ollama -f` (Linux). -Depending on the memory available on your machine, you may need to adjust the context length to a smaller value. - -You may also optionally specify a value for `keep_alive` for each available model. -This can be an integer (seconds) or alternatively a string duration like "5m", "10m", "1h", "1d", etc. -For example, `"keep_alive": "120s"` will allow the remote server to unload the model (freeing up GPU VRAM) after 120 seconds. - -The `supports_tools` option controls whether the model will use additional tools. -If the model is tagged with `tools` in the Ollama catalog, this option should be supplied, and the built-in profiles `Ask` and `Write` can be used. -If the model is not tagged with `tools` in the Ollama catalog, this option can still be supplied with the value `true`; however, be aware that only the `Minimal` built-in profile will work. - -The `supports_thinking` option controls whether the model will perform an explicit "thinking" (reasoning) pass before producing its final answer. -If the model is tagged with `thinking` in the Ollama catalog, set this option and you can use it in Zed. - -The `supports_images` option enables the model's vision capabilities, allowing it to process images included in the conversation context. -If the model is tagged with `vision` in the Ollama catalog, set this option and you can use it in Zed. - -### OpenAI {#openai} - -> ✅ Supports tool use - -1. Visit the OpenAI platform and [create an API key](https://platform.openai.com/account/api-keys) -2. Make sure that your OpenAI account has credits -3. Open the settings view (`agent: open configuration`) and go to the OpenAI section -4. Enter your OpenAI API key - -The OpenAI API key will be saved in your keychain. - -Zed will also use the `OPENAI_API_KEY` environment variable if it's defined. - -#### Custom Models {#openai-custom-models} - -The Zed agent comes pre-configured to use the latest version for common models (GPT-3.5 Turbo, GPT-4, GPT-4 Turbo, GPT-4o, GPT-4o mini). -To use alternate models, perhaps a preview release or a dated model release, or if you wish to control the request parameters, you can do so by adding the following to your Zed `settings.json`: - -```json -{ - "language_models": { - "openai": { - "available_models": [ - { - "name": "gpt-4o-2024-08-06", - "display_name": "GPT 4o Summer 2024", - "max_tokens": 128000 - }, - { - "name": "o1-mini", - "display_name": "o1-mini", - "max_tokens": 128000, - "max_completion_tokens": 20000 - } - ], - "version": "1" - } - } -} -``` - -You must provide the model's context window in the `max_tokens` parameter; this can be found in the [OpenAI model documentation](https://platform.openai.com/docs/models). - -OpenAI `o1` models should set `max_completion_tokens` as well to avoid incurring high reasoning token costs. -Custom models will be listed in the model dropdown in the Agent Panel. - -### OpenAI API Compatible {#openai-api-compatible} - -Zed supports using [OpenAI compatible APIs](https://platform.openai.com/docs/api-reference/chat) by specifying a custom `api_url` and `available_models` for the OpenAI provider. This is useful for connecting to other hosted services (like Together AI, Anyscale, etc.) or local models. - -To configure a compatible API, you can add a custom API URL for OpenAI either via the UI (currently available only in Preview) or by editing your `settings.json`. - -For example, to connect to [Together AI](https://www.together.ai/) via the UI: - -1. Get an API key from your [Together AI account](https://api.together.ai/settings/api-keys). -2. Go to the Agent Panel's settings view, click on the "Add Provider" button, and then on the "OpenAI" menu item -3. Add the requested fields, such as `api_url`, `api_key`, available models, and others - -Alternatively, you can also add it via the `settings.json`: - -```json -{ - "language_models": { - "openai": { - "api_url": "https://api.together.xyz/v1", - "api_key": "YOUR_TOGETHER_AI_API_KEY", - "available_models": [ - { - "name": "mistralai/Mixtral-8x7B-Instruct-v0.1", - "display_name": "Together Mixtral 8x7B", - "max_tokens": 32768, - "supports_tools": true - } - ] - } - } -} -``` - -### OpenRouter {#openrouter} - -> ✅ Supports tool use - -OpenRouter provides access to multiple AI models through a single API. It supports tool use for compatible models. - -1. Visit [OpenRouter](https://openrouter.ai) and create an account -2. Generate an API key from your [OpenRouter keys page](https://openrouter.ai/keys) -3. Open the settings view (`agent: open configuration`) and go to the OpenRouter section -4. Enter your OpenRouter API key - -The OpenRouter API key will be saved in your keychain. - -Zed will also use the `OPENROUTER_API_KEY` environment variable if it's defined. - -#### Custom Models {#openrouter-custom-models} - -You can add custom models to the OpenRouter provider by adding the following to your Zed `settings.json`: - -```json -{ - "language_models": { - "open_router": { - "api_url": "https://openrouter.ai/api/v1", - "available_models": [ - { - "name": "google/gemini-2.0-flash-thinking-exp", - "display_name": "Gemini 2.0 Flash (Thinking)", - "max_tokens": 200000, - "max_output_tokens": 8192, - "supports_tools": true, - "supports_images": true, - "mode": { - "type": "thinking", - "budget_tokens": 8000 - } - } - ] - } - } -} -``` - -The available configuration options for each model are: - -- `name` (required): The model identifier used by OpenRouter -- `display_name` (optional): A human-readable name shown in the UI -- `max_tokens` (required): The model's context window size -- `max_output_tokens` (optional): Maximum tokens the model can generate -- `max_completion_tokens` (optional): Maximum completion tokens -- `supports_tools` (optional): Whether the model supports tool/function calling -- `supports_images` (optional): Whether the model supports image inputs -- `mode` (optional): Special mode configuration for thinking models - -You can find available models and their specifications on the [OpenRouter models page](https://openrouter.ai/models). - -Custom models will be listed in the model dropdown in the Agent Panel. - -### Vercel v0 {#vercel-v0} - -> ✅ Supports tool use - -[Vercel v0](https://vercel.com/docs/v0/api) is an expert model for generating full-stack apps, with framework-aware completions optimized for modern stacks like Next.js and Vercel. -It supports text and image inputs and provides fast streaming responses. - -The v0 models are [OpenAI-compatible models](/#openai-api-compatible), but Vercel is listed as first-class provider in the panel's settings view. - -To start using it with Zed, ensure you have first created a [v0 API key](https://v0.dev/chat/settings/keys). -Once you have it, paste it directly into the Vercel provider section in the panel's settings view. - -You should then find it as `v0-1.5-md` in the model dropdown in the Agent Panel. - -### xAI {#xai} - -> ✅ Supports tool use - -Zed has first-class support for [xAI](https://x.ai/) models. You can use your own API key to access Grok models. - -1. [Create an API key in the xAI Console](https://console.x.ai/team/default/api-keys) -2. Open the settings view (`agent: open configuration`) and go to the **xAI** section -3. Enter your xAI API key - -The xAI API key will be saved in your keychain. Zed will also use the `XAI_API_KEY` environment variable if it's defined. - -> **Note:** While the xAI API is OpenAI-compatible, Zed has first-class support for it as a dedicated provider. For the best experience, we recommend using the dedicated `x_ai` provider configuration instead of the [OpenAI API Compatible](#openai-api-compatible) method. - -#### Custom Models {#xai-custom-models} - -The Zed agent comes pre-configured with common Grok models. If you wish to use alternate models or customize their parameters, you can do so by adding the following to your Zed `settings.json`: - -```json -{ - "language_models": { - "x_ai": { - "api_url": "https://api.x.ai/v1", - "available_models": [ - { - "name": "grok-1.5", - "display_name": "Grok 1.5", - "max_tokens": 131072, - "max_output_tokens": 8192 - }, - { - "name": "grok-1.5v", - "display_name": "Grok 1.5V (Vision)", - "max_tokens": 131072, - "max_output_tokens": 8192, - "supports_images": true - } - ] - } - } -} -``` - -## Advanced Configuration {#advanced-configuration} - -### Custom Provider Endpoints {#custom-provider-endpoint} - -You can use a custom API endpoint for different providers, as long as it's compatible with the provider's API structure. -To do so, add the following to your `settings.json`: - -```json -{ - "language_models": { - "some-provider": { - "api_url": "http://localhost:11434" - } - } -} -``` - -Where `some-provider` can be any of the following values: `anthropic`, `google`, `ollama`, `openai`. - -### Default Model {#default-model} - -Zed's hosted LLM service sets `claude-sonnet-4` as the default model. -However, you can change it either via the model dropdown in the Agent Panel's bottom-right corner or by manually editing the `default_model` object in your settings: - -```json -{ - "agent": { - "version": "2", - "default_model": { - "provider": "zed.dev", - "model": "gpt-4o" - } - } -} -``` - -### Feature-specific Models {#feature-specific-models} - -If a feature-specific model is not set, it will fall back to using the default model, which is the one you set on the Agent Panel. - -You can configure the following feature-specific models: - -- Thread summary model: Used for generating thread summaries -- Inline assistant model: Used for the inline assistant feature -- Commit message model: Used for generating Git commit messages - -Example configuration: - -```json -{ - "agent": { - "version": "2", - "default_model": { - "provider": "zed.dev", - "model": "claude-sonnet-4" - }, - "inline_assistant_model": { - "provider": "anthropic", - "model": "claude-3-5-sonnet" - }, - "commit_message_model": { - "provider": "openai", - "model": "gpt-4o-mini" - }, - "thread_summary_model": { - "provider": "google", - "model": "gemini-2.0-flash" - } - } -} -``` - -### Alternative Models for Inline Assists {#alternative-assists} - -You can configure additional models that will be used to perform inline assists in parallel. -When you do this, the inline assist UI will surface controls to cycle between the alternatives generated by each model. - -The models you specify here are always used in _addition_ to your [default model](#default-model). -For example, the following configuration will generate two outputs for every assist. -One with Claude 3.7 Sonnet, and one with GPT-4o. - -```json -{ - "agent": { - "default_model": { - "provider": "zed.dev", - "model": "claude-sonnet-4" - }, - "inline_alternatives": [ - { - "provider": "zed.dev", - "model": "gpt-4o" - } - ], - "version": "2" - } -} -``` - -### Default View - -Use the `default_view` setting to set change the default view of the Agent Panel. -You can choose between `thread` (the default) and `text_thread`: - -```json -{ - "agent": { - "default_view": "text_thread" - } -} -``` - -### Edit Card - -Use the `expand_edit_card` setting to control whether edit cards show the full diff in the Agent Panel. -It is set to `true` by default, but if set to false, the card's height is capped to a certain number of lines, requiring a click to be expanded. - -```json -{ - "agent": { - "expand_edit_card": "false" - } -} -``` - -This setting is currently only available in Preview. -It should be up in Stable by the next release. - -### Terminal Card - -Use the `expand_terminal_card` setting to control whether terminal cards show the command output in the Agent Panel. -It is set to `true` by default, but if set to false, the card will be fully collapsed even while the command is running, requiring a click to be expanded. - -```json -{ - "agent": { - "expand_terminal_card": "false" - } -} -``` - -This setting is currently only available in Preview. -It should be up in Stable by the next release. +Read [the following blog post](https://zed.dev/blog/disable-ai-features) to learn more about our motivation to promote this, as much as we also encourage users to explore AI-assisted programming. diff --git a/docs/src/ai/inline-assistant.md b/docs/src/ai/inline-assistant.md index cd0ace3ce6..da894e2cd8 100644 --- a/docs/src/ai/inline-assistant.md +++ b/docs/src/ai/inline-assistant.md @@ -12,7 +12,7 @@ You can also perform multiple generation requests in parallel by pressing `ctrl- Give the Inline Assistant context the same way you can in [the Agent Panel](./agent-panel.md), allowing you to provide additional instructions or rules for code transformations with @-mentions. -A useful pattern here is to create a thread in the Agent Panel, and then use the mention that thread with `@thread` in the Inline Assistant to include it as context. +A useful pattern here is to create a thread in the Agent Panel, and then mention that thread with `@thread` in the Inline Assistant to include it as context. > The Inline Assistant is limited to normal mode context windows ([see Models](./models.md) for more). diff --git a/docs/src/ai/llm-providers.md b/docs/src/ai/llm-providers.md new file mode 100644 index 0000000000..227bb23983 --- /dev/null +++ b/docs/src/ai/llm-providers.md @@ -0,0 +1,607 @@ +# LLM Providers + +To use AI in Zed, you need to have at least one large language model provider set up. + +You can do that by either subscribing to [one of Zed's plans](./subscription.md), or by using API keys you already have for the supported providers. + +## Use Your Own Keys {#use-your-own-keys} + +If you already have an API key for an existing LLM provider—say Anthropic or OpenAI, for example—you can insert them in Zed and use the Agent Panel **_for free_**. + +You can add your API key to a given provider either via the Agent Panel's settings UI or the `settings.json` directly, through the `language_models` key. + +## Supported Providers + +Here's all the supported LLM providers for which you can use your own API keys: + +| Provider | Tool Use Supported | +| ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [Amazon Bedrock](#amazon-bedrock) | Depends on the model | +| [Anthropic](#anthropic) | ✅ | +| [DeepSeek](#deepseek) | ✅ | +| [GitHub Copilot Chat](#github-copilot-chat) | For some models ([link](https://github.com/zed-industries/zed/blob/9e0330ba7d848755c9734bf456c716bddf0973f3/crates/language_models/src/provider/copilot_chat.rs#L189-L198)) | +| [Google AI](#google-ai) | ✅ | +| [LM Studio](#lmstudio) | ✅ | +| [Mistral](#mistral) | ✅ | +| [Ollama](#ollama) | ✅ | +| [OpenAI](#openai) | ✅ | +| [OpenAI API Compatible](#openai-api-compatible) | 🚫 | +| [OpenRouter](#openrouter) | ✅ | +| [Vercel](#vercel-v0) | ✅ | +| [xAI](#xai) | ✅ | + +### Amazon Bedrock {#amazon-bedrock} + +> ✅ Supports tool use with models that support streaming tool use. +> More details can be found in the [Amazon Bedrock's Tool Use documentation](https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-supported-models-features.html). + +To use Amazon Bedrock's models, an AWS authentication is required. +Ensure your credentials have the following permissions set up: + +- `bedrock:InvokeModelWithResponseStream` +- `bedrock:InvokeModel` +- `bedrock:ConverseStream` + +Your IAM policy should look similar to: + +```json +{ + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "bedrock:InvokeModel", + "bedrock:InvokeModelWithResponseStream", + "bedrock:ConverseStream" + ], + "Resource": "*" + } + ] +} +``` + +With that done, choose one of the two authentication methods: + +#### Authentication via Named Profile (Recommended) + +1. Ensure you have the AWS CLI installed and configured with a named profile +2. Open your `settings.json` (`zed: open settings`) and include the `bedrock` key under `language_models` with the following settings: + ```json + { + "language_models": { + "bedrock": { + "authentication_method": "named_profile", + "region": "your-aws-region", + "profile": "your-profile-name" + } + } + } + ``` + +#### Authentication via Static Credentials + +While it's possible to configure through the Agent Panel settings UI by entering your AWS access key and secret directly, we recommend using named profiles instead for better security practices. +To do this: + +1. Create an IAM User that you can assume in the [IAM Console](https://us-east-1.console.aws.amazon.com/iam/home?region=us-east-1#/users). +2. Create security credentials for that User, save them and keep them secure. +3. Open the Agent Configuration with (`agent: open configuration`) and go to the Amazon Bedrock section +4. Copy the credentials from Step 2 into the respective **Access Key ID**, **Secret Access Key**, and **Region** fields. + +#### Cross-Region Inference + +The Zed implementation of Amazon Bedrock uses [Cross-Region inference](https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference.html) for all the models and region combinations that support it. +With Cross-Region inference, you can distribute traffic across multiple AWS Regions, enabling higher throughput. + +For example, if you use `Claude Sonnet 3.7 Thinking` from `us-east-1`, it may be processed across the US regions, namely: `us-east-1`, `us-east-2`, or `us-west-2`. +Cross-Region inference requests are kept within the AWS Regions that are part of the geography where the data originally resides. +For example, a request made within the US is kept within the AWS Regions in the US. + +Although the data remains stored only in the source Region, your input prompts and output results might move outside of your source Region during cross-Region inference. +All data will be transmitted encrypted across Amazon's secure network. + +We will support Cross-Region inference for each of the models on a best-effort basis, please refer to the [Cross-Region Inference method Code](https://github.com/zed-industries/zed/blob/main/crates/bedrock/src/models.rs#L297). + +For the most up-to-date supported regions and models, refer to the [Supported Models and Regions for Cross Region inference](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-support.html). + +### Anthropic {#anthropic} + +> ✅ Supports tool use + +You can use Anthropic models by choosing them via the model dropdown in the Agent Panel. + +1. Sign up for Anthropic and [create an API key](https://console.anthropic.com/settings/keys) +2. Make sure that your Anthropic account has credits +3. Open the settings view (`agent: open configuration`) and go to the Anthropic section +4. Enter your Anthropic API key + +Even if you pay for Claude Pro, you will still have to [pay for additional credits](https://console.anthropic.com/settings/plans) to use it via the API. + +Zed will also use the `ANTHROPIC_API_KEY` environment variable if it's defined. + +#### Custom Models {#anthropic-custom-models} + +You can add custom models to the Anthropic provider by adding the following to your Zed `settings.json`: + +```json +{ + "language_models": { + "anthropic": { + "available_models": [ + { + "name": "claude-3-5-sonnet-20240620", + "display_name": "Sonnet 2024-June", + "max_tokens": 128000, + "max_output_tokens": 2560, + "cache_configuration": { + "max_cache_anchors": 10, + "min_total_token": 10000, + "should_speculate": false + }, + "tool_override": "some-model-that-supports-toolcalling" + } + ] + } + } +} +``` + +Custom models will be listed in the model dropdown in the Agent Panel. + +You can configure a model to use [extended thinking](https://docs.anthropic.com/en/docs/about-claude/models/extended-thinking-models) (if it supports it) by changing the mode in your model's configuration to `thinking`, for example: + +```json +{ + "name": "claude-sonnet-4-latest", + "display_name": "claude-sonnet-4-thinking", + "max_tokens": 200000, + "mode": { + "type": "thinking", + "budget_tokens": 4_096 + } +} +``` + +### DeepSeek {#deepseek} + +> ✅ Supports tool use + +1. Visit the DeepSeek platform and [create an API key](https://platform.deepseek.com/api_keys) +2. Open the settings view (`agent: open configuration`) and go to the DeepSeek section +3. Enter your DeepSeek API key + +The DeepSeek API key will be saved in your keychain. + +Zed will also use the `DEEPSEEK_API_KEY` environment variable if it's defined. + +#### Custom Models {#deepseek-custom-models} + +The Zed agent comes pre-configured to use the latest version for common models (DeepSeek Chat, DeepSeek Reasoner). +If you wish to use alternate models or customize the API endpoint, you can do so by adding the following to your Zed `settings.json`: + +```json +{ + "language_models": { + "deepseek": { + "api_url": "https://api.deepseek.com", + "available_models": [ + { + "name": "deepseek-chat", + "display_name": "DeepSeek Chat", + "max_tokens": 64000 + }, + { + "name": "deepseek-reasoner", + "display_name": "DeepSeek Reasoner", + "max_tokens": 64000, + "max_output_tokens": 4096 + } + ] + } + } +} +``` + +Custom models will be listed in the model dropdown in the Agent Panel. +You can also modify the `api_url` to use a custom endpoint if needed. + +### GitHub Copilot Chat {#github-copilot-chat} + +> ✅ Supports tool use in some cases. +> Visit [the Copilot Chat code](https://github.com/zed-industries/zed/blob/9e0330ba7d848755c9734bf456c716bddf0973f3/crates/language_models/src/provider/copilot_chat.rs#L189-L198) for the supported subset. + +You can use GitHub Copilot Chat with the Zed agent by choosing it via the model dropdown in the Agent Panel. + +1. Open the settings view (`agent: open configuration`) and go to the GitHub Copilot Chat section +2. Click on `Sign in to use GitHub Copilot`, follow the steps shown in the modal. + +Alternatively, you can provide an OAuth token via the `GH_COPILOT_TOKEN` environment variable. + +> **Note**: If you don't see specific models in the dropdown, you may need to enable them in your [GitHub Copilot settings](https://github.com/settings/copilot/features). + +To use Copilot Enterprise with Zed (for both agent and inline completions), you must configure your enterprise endpoint as described in [Configuring GitHub Copilot Enterprise](./edit-prediction.md#github-copilot-enterprise). + +### Google AI {#google-ai} + +> ✅ Supports tool use + +You can use Gemini models with the Zed agent by choosing it via the model dropdown in the Agent Panel. + +1. Go to the Google AI Studio site and [create an API key](https://aistudio.google.com/app/apikey). +2. Open the settings view (`agent: open configuration`) and go to the Google AI section +3. Enter your Google AI API key and press enter. + +The Google AI API key will be saved in your keychain. + +Zed will also use the `GEMINI_API_KEY` environment variable if it's defined. See [Using Gemini API keys](https://ai.google.dev/gemini-api/docs/api-key) in the Gemini docs for more. + +#### Custom Models {#google-ai-custom-models} + +By default, Zed will use `stable` versions of models, but you can use specific versions of models, including [experimental models](https://ai.google.dev/gemini-api/docs/models/experimental-models). You can configure a model to use [thinking mode](https://ai.google.dev/gemini-api/docs/thinking) (if it supports it) by adding a `mode` configuration to your model. This is useful for controlling reasoning token usage and response speed. If not specified, Gemini will automatically choose the thinking budget. + +Here is an example of a custom Google AI model you could add to your Zed `settings.json`: + +```json +{ + "language_models": { + "google": { + "available_models": [ + { + "name": "gemini-2.5-flash-preview-05-20", + "display_name": "Gemini 2.5 Flash (Thinking)", + "max_tokens": 1000000, + "mode": { + "type": "thinking", + "budget_tokens": 24000 + } + } + ] + } + } +} +``` + +Custom models will be listed in the model dropdown in the Agent Panel. + +### LM Studio {#lmstudio} + +> ✅ Supports tool use + +1. Download and install [the latest version of LM Studio](https://lmstudio.ai/download) +2. In the app press `cmd/ctrl-shift-m` and download at least one model (e.g., qwen2.5-coder-7b). Alternatively, you can get models via the LM Studio CLI: + + ```sh + lms get qwen2.5-coder-7b + ``` + +3. Make sure the LM Studio API server is running by executing: + + ```sh + lms server start + ``` + +Tip: Set [LM Studio as a login item](https://lmstudio.ai/docs/advanced/headless#run-the-llm-service-on-machine-login) to automate running the LM Studio server. + +### Mistral {#mistral} + +> ✅ Supports tool use + +1. Visit the Mistral platform and [create an API key](https://console.mistral.ai/api-keys/) +2. Open the configuration view (`agent: open configuration`) and navigate to the Mistral section +3. Enter your Mistral API key + +The Mistral API key will be saved in your keychain. + +Zed will also use the `MISTRAL_API_KEY` environment variable if it's defined. + +#### Custom Models {#mistral-custom-models} + +The Zed agent comes pre-configured with several Mistral models (codestral-latest, mistral-large-latest, mistral-medium-latest, mistral-small-latest, open-mistral-nemo, and open-codestral-mamba). +All the default models support tool use. +If you wish to use alternate models or customize their parameters, you can do so by adding the following to your Zed `settings.json`: + +```json +{ + "language_models": { + "mistral": { + "api_url": "https://api.mistral.ai/v1", + "available_models": [ + { + "name": "mistral-tiny-latest", + "display_name": "Mistral Tiny", + "max_tokens": 32000, + "max_output_tokens": 4096, + "max_completion_tokens": 1024, + "supports_tools": true, + "supports_images": false + } + ] + } + } +} +``` + +Custom models will be listed in the model dropdown in the Agent Panel. + +### Ollama {#ollama} + +> ✅ Supports tool use + +Download and install Ollama from [ollama.com/download](https://ollama.com/download) (Linux or macOS) and ensure it's running with `ollama --version`. + +1. Download one of the [available models](https://ollama.com/models), for example, for `mistral`: + + ```sh + ollama pull mistral + ``` + +2. Make sure that the Ollama server is running. You can start it either via running Ollama.app (macOS) or launching: + + ```sh + ollama serve + ``` + +3. In the Agent Panel, select one of the Ollama models using the model dropdown. + +#### Ollama Context Length {#ollama-context} + +Zed has pre-configured maximum context lengths (`max_tokens`) to match the capabilities of common models. +Zed API requests to Ollama include this as the `num_ctx` parameter, but the default values do not exceed `16384` so users with ~16GB of RAM are able to use most models out of the box. + +See [get_max_tokens in ollama.rs](https://github.com/zed-industries/zed/blob/main/crates/ollama/src/ollama.rs) for a complete set of defaults. + +> **Note**: Token counts displayed in the Agent Panel are only estimates and will differ from the model's native tokenizer. + +Depending on your hardware or use-case you may wish to limit or increase the context length for a specific model via settings.json: + +```json +{ + "language_models": { + "ollama": { + "api_url": "http://localhost:11434", + "available_models": [ + { + "name": "qwen2.5-coder", + "display_name": "qwen 2.5 coder 32K", + "max_tokens": 32768, + "supports_tools": true, + "supports_thinking": true, + "supports_images": true + } + ] + } + } +} +``` + +If you specify a context length that is too large for your hardware, Ollama will log an error. +You can watch these logs by running: `tail -f ~/.ollama/logs/ollama.log` (macOS) or `journalctl -u ollama -f` (Linux). +Depending on the memory available on your machine, you may need to adjust the context length to a smaller value. + +You may also optionally specify a value for `keep_alive` for each available model. +This can be an integer (seconds) or alternatively a string duration like "5m", "10m", "1h", "1d", etc. +For example, `"keep_alive": "120s"` will allow the remote server to unload the model (freeing up GPU VRAM) after 120 seconds. + +The `supports_tools` option controls whether the model will use additional tools. +If the model is tagged with `tools` in the Ollama catalog, this option should be supplied, and the built-in profiles `Ask` and `Write` can be used. +If the model is not tagged with `tools` in the Ollama catalog, this option can still be supplied with the value `true`; however, be aware that only the `Minimal` built-in profile will work. + +The `supports_thinking` option controls whether the model will perform an explicit "thinking" (reasoning) pass before producing its final answer. +If the model is tagged with `thinking` in the Ollama catalog, set this option and you can use it in Zed. + +The `supports_images` option enables the model's vision capabilities, allowing it to process images included in the conversation context. +If the model is tagged with `vision` in the Ollama catalog, set this option and you can use it in Zed. + +### OpenAI {#openai} + +> ✅ Supports tool use + +1. Visit the OpenAI platform and [create an API key](https://platform.openai.com/account/api-keys) +2. Make sure that your OpenAI account has credits +3. Open the settings view (`agent: open configuration`) and go to the OpenAI section +4. Enter your OpenAI API key + +The OpenAI API key will be saved in your keychain. + +Zed will also use the `OPENAI_API_KEY` environment variable if it's defined. + +#### Custom Models {#openai-custom-models} + +The Zed agent comes pre-configured to use the latest version for common models (GPT-3.5 Turbo, GPT-4, GPT-4 Turbo, GPT-4o, GPT-4o mini). +To use alternate models, perhaps a preview release or a dated model release, or if you wish to control the request parameters, you can do so by adding the following to your Zed `settings.json`: + +```json +{ + "language_models": { + "openai": { + "available_models": [ + { + "name": "gpt-4o-2024-08-06", + "display_name": "GPT 4o Summer 2024", + "max_tokens": 128000 + }, + { + "name": "o1-mini", + "display_name": "o1-mini", + "max_tokens": 128000, + "max_completion_tokens": 20000 + } + ], + "version": "1" + } + } +} +``` + +You must provide the model's context window in the `max_tokens` parameter; this can be found in the [OpenAI model documentation](https://platform.openai.com/docs/models). + +OpenAI `o1` models should set `max_completion_tokens` as well to avoid incurring high reasoning token costs. +Custom models will be listed in the model dropdown in the Agent Panel. + +### OpenAI API Compatible {#openai-api-compatible} + +Zed supports using [OpenAI compatible APIs](https://platform.openai.com/docs/api-reference/chat) by specifying a custom `api_url` and `available_models` for the OpenAI provider. This is useful for connecting to other hosted services (like Together AI, Anyscale, etc.) or local models. + +To configure a compatible API, you can add a custom API URL for OpenAI either via the UI (currently available only in Preview) or by editing your `settings.json`. + +For example, to connect to [Together AI](https://www.together.ai/) via the UI: + +1. Get an API key from your [Together AI account](https://api.together.ai/settings/api-keys). +2. Go to the Agent Panel's settings view, click on the "Add Provider" button, and then on the "OpenAI" menu item +3. Add the requested fields, such as `api_url`, `api_key`, available models, and others + +Alternatively, you can also add it via the `settings.json`: + +```json +{ + "language_models": { + "openai": { + "api_url": "https://api.together.xyz/v1", + "api_key": "YOUR_TOGETHER_AI_API_KEY", + "available_models": [ + { + "name": "mistralai/Mixtral-8x7B-Instruct-v0.1", + "display_name": "Together Mixtral 8x7B", + "max_tokens": 32768, + "supports_tools": true + } + ] + } + } +} +``` + +### OpenRouter {#openrouter} + +> ✅ Supports tool use + +OpenRouter provides access to multiple AI models through a single API. It supports tool use for compatible models. + +1. Visit [OpenRouter](https://openrouter.ai) and create an account +2. Generate an API key from your [OpenRouter keys page](https://openrouter.ai/keys) +3. Open the settings view (`agent: open configuration`) and go to the OpenRouter section +4. Enter your OpenRouter API key + +The OpenRouter API key will be saved in your keychain. + +Zed will also use the `OPENROUTER_API_KEY` environment variable if it's defined. + +#### Custom Models {#openrouter-custom-models} + +You can add custom models to the OpenRouter provider by adding the following to your Zed `settings.json`: + +```json +{ + "language_models": { + "open_router": { + "api_url": "https://openrouter.ai/api/v1", + "available_models": [ + { + "name": "google/gemini-2.0-flash-thinking-exp", + "display_name": "Gemini 2.0 Flash (Thinking)", + "max_tokens": 200000, + "max_output_tokens": 8192, + "supports_tools": true, + "supports_images": true, + "mode": { + "type": "thinking", + "budget_tokens": 8000 + } + } + ] + } + } +} +``` + +The available configuration options for each model are: + +- `name` (required): The model identifier used by OpenRouter +- `display_name` (optional): A human-readable name shown in the UI +- `max_tokens` (required): The model's context window size +- `max_output_tokens` (optional): Maximum tokens the model can generate +- `max_completion_tokens` (optional): Maximum completion tokens +- `supports_tools` (optional): Whether the model supports tool/function calling +- `supports_images` (optional): Whether the model supports image inputs +- `mode` (optional): Special mode configuration for thinking models + +You can find available models and their specifications on the [OpenRouter models page](https://openrouter.ai/models). + +Custom models will be listed in the model dropdown in the Agent Panel. + +### Vercel v0 {#vercel-v0} + +> ✅ Supports tool use + +[Vercel v0](https://vercel.com/docs/v0/api) is an expert model for generating full-stack apps, with framework-aware completions optimized for modern stacks like Next.js and Vercel. +It supports text and image inputs and provides fast streaming responses. + +The v0 models are [OpenAI-compatible models](/#openai-api-compatible), but Vercel is listed as first-class provider in the panel's settings view. + +To start using it with Zed, ensure you have first created a [v0 API key](https://v0.dev/chat/settings/keys). +Once you have it, paste it directly into the Vercel provider section in the panel's settings view. + +You should then find it as `v0-1.5-md` in the model dropdown in the Agent Panel. + +### xAI {#xai} + +> ✅ Supports tool use + +Zed has first-class support for [xAI](https://x.ai/) models. You can use your own API key to access Grok models. + +1. [Create an API key in the xAI Console](https://console.x.ai/team/default/api-keys) +2. Open the settings view (`agent: open configuration`) and go to the **xAI** section +3. Enter your xAI API key + +The xAI API key will be saved in your keychain. Zed will also use the `XAI_API_KEY` environment variable if it's defined. + +> **Note:** While the xAI API is OpenAI-compatible, Zed has first-class support for it as a dedicated provider. For the best experience, we recommend using the dedicated `x_ai` provider configuration instead of the [OpenAI API Compatible](#openai-api-compatible) method. + +#### Custom Models {#xai-custom-models} + +The Zed agent comes pre-configured with common Grok models. If you wish to use alternate models or customize their parameters, you can do so by adding the following to your Zed `settings.json`: + +```json +{ + "language_models": { + "x_ai": { + "api_url": "https://api.x.ai/v1", + "available_models": [ + { + "name": "grok-1.5", + "display_name": "Grok 1.5", + "max_tokens": 131072, + "max_output_tokens": 8192 + }, + { + "name": "grok-1.5v", + "display_name": "Grok 1.5V (Vision)", + "max_tokens": 131072, + "max_output_tokens": 8192, + "supports_images": true + } + ] + } + } +} +``` + +## Custom Provider Endpoints {#custom-provider-endpoint} + +You can use a custom API endpoint for different providers, as long as it's compatible with the provider's API structure. +To do so, add the following to your `settings.json`: + +```json +{ + "language_models": { + "some-provider": { + "api_url": "http://localhost:11434" + } + } +} +``` + +Currently, `some-provider` can be any of the following values: `anthropic`, `google`, `ollama`, `openai`. + +This is the same infrastructure that powers models that are, for example, [OpenAI-compatible](#openai-api-compatible). diff --git a/docs/src/ai/overview.md b/docs/src/ai/overview.md index f437b24ba6..ff3dd84fce 100644 --- a/docs/src/ai/overview.md +++ b/docs/src/ai/overview.md @@ -1,7 +1,6 @@ # AI -Zed smoothly integrates LLMs in multiple ways across the editor. -Learn how to get started with AI on Zed and all its capabilities. +Learn how to get started using AI with Zed and all its capabilities. ## Setting up AI in Zed diff --git a/docs/src/ai/plans-and-usage.md b/docs/src/ai/plans-and-usage.md index a1da17f50d..1e6616c79b 100644 --- a/docs/src/ai/plans-and-usage.md +++ b/docs/src/ai/plans-and-usage.md @@ -11,7 +11,7 @@ Please note that if you’re interested in just using Zed as the world’s faste ## Usage {#usage} -- A `prompt` in Zed is an input from the user, initiated on pressing enter, composed of one or many `requests`. A `prompt` can be initiated from the Agent Panel, or via Inline Assist. +- A `prompt` in Zed is an input from the user, initiated by pressing enter, composed of one or many `requests`. A `prompt` can be initiated from the Agent Panel, or via Inline Assist. - A `request` in Zed is a response to a `prompt`, plus any tool calls that are initiated as part of that response. There may be one `request` per `prompt`, or many. Most models offered by Zed are metered per-prompt. diff --git a/docs/src/ai/rules.md b/docs/src/ai/rules.md index ed916874ca..653b907a7d 100644 --- a/docs/src/ai/rules.md +++ b/docs/src/ai/rules.md @@ -5,7 +5,7 @@ Currently, Zed supports `.rules` files at the directory's root and the Rules Lib ## `.rules` files -Zed supports including `.rules` files at the top level of worktrees, and act as project-level instructions that are included in all of your interactions with the Agent Panel. +Zed supports including `.rules` files at the top level of worktrees, and they act as project-level instructions that are included in all of your interactions with the Agent Panel. Other names for this file are also supported for compatibility with other agents, but note that the first file which matches in this list will be used: - `.rules` diff --git a/docs/src/ai/temperature.md b/docs/src/ai/temperature.md deleted file mode 100644 index bb0cef6b51..0000000000 --- a/docs/src/ai/temperature.md +++ /dev/null @@ -1,23 +0,0 @@ -# Model Temperature - -Zed's settings allow you to specify a custom temperature for a provider and/or model: - -```json -"model_parameters": [ - // To set parameters for all requests to OpenAI models: - { - "provider": "openai", - "temperature": 0.5 - }, - // To set parameters for all requests in general: - { - "temperature": 0 - }, - // To set parameters for a specific provider and model: - { - "provider": "zed.dev", - "model": "claude-sonnet-4", - "temperature": 1.0 - } - ], -``` diff --git a/docs/src/configuring-zed.md b/docs/src/configuring-zed.md index cc4800fd6d..fd1761ebfa 100644 --- a/docs/src/configuring-zed.md +++ b/docs/src/configuring-zed.md @@ -3390,26 +3390,7 @@ Run the `theme selector: toggle` action in the command palette to see a current ## Agent -- Description: Customize agent behavior -- Setting: `agent` -- Default: - -```json -"agent": { - "version": "2", - "enabled": true, - "button": true, - "dock": "right", - "default_width": 640, - "default_height": 320, - "default_view": "thread", - "default_model": { - "provider": "zed.dev", - "model": "claude-sonnet-4" - }, - "single_file_review": true, -} -``` +Visit [the Configuration page](/ai/configuration.md) under the AI section to learn more about all the agent-related settings. ## Outline Panel diff --git a/docs/src/git.md b/docs/src/git.md index 76db15a767..5b5c8a3b15 100644 --- a/docs/src/git.md +++ b/docs/src/git.md @@ -76,7 +76,7 @@ You can ask AI to generate a commit message by focusing on the message editor wi > Note that you need to have an LLM provider configured. Visit [the AI configuration page](./ai/configuration.md) to learn how to do so. -You can specify your preferred model to use by providing a `commit_message_model` agent setting. See [Feature-specific models](./ai/configuration.md#feature-specific-models) for more information. +You can specify your preferred model to use by providing a `commit_message_model` agent setting. See [Feature-specific models](./ai/agent-settings.md#feature-specific-models) for more information. ```json { From d7b403e98160def8393fd7a80ff3076fde9b2a4d Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Sat, 26 Jul 2025 16:53:19 -0400 Subject: [PATCH 0233/1052] extension_host: Refactor capability checks (#35139) This PR refactors the extension capability checks to be centralized in the `CapabilityGranter`. Release Notes: - N/A --- crates/extension/src/extension_manifest.rs | 88 ++++++++------ .../extension_compilation_benchmark.rs | 10 +- .../extension_host/src/capability_granter.rs | 115 ++++++++++++++++++ crates/extension_host/src/extension_host.rs | 1 + crates/extension_host/src/wasm_host.rs | 17 ++- .../src/wasm_host/wit/since_v0_6_0.rs | 3 +- 6 files changed, 193 insertions(+), 41 deletions(-) create mode 100644 crates/extension_host/src/capability_granter.rs diff --git a/crates/extension/src/extension_manifest.rs b/crates/extension/src/extension_manifest.rs index 0a14923c0c..eb09090e2a 100644 --- a/crates/extension/src/extension_manifest.rs +++ b/crates/extension/src/extension_manifest.rs @@ -100,26 +100,9 @@ impl ExtensionManifest { desired_args: &[impl AsRef + std::fmt::Debug], ) -> Result<()> { let is_allowed = self.capabilities.iter().any(|capability| match capability { - ExtensionCapability::ProcessExec { command, args } if command == desired_command => { - for (ix, arg) in args.iter().enumerate() { - if arg == "**" { - return true; - } - - if ix >= desired_args.len() { - return false; - } - - if arg != "*" && arg != desired_args[ix].as_ref() { - return false; - } - } - if args.len() < desired_args.len() { - return false; - } - true + ExtensionCapability::ProcessExec(capability) => { + capability.allows(desired_command, desired_args) } - _ => false, }); if !is_allowed { @@ -153,13 +136,50 @@ pub fn build_debug_adapter_schema_path( #[serde(tag = "kind")] pub enum ExtensionCapability { #[serde(rename = "process:exec")] - ProcessExec { - /// The command to execute. - command: String, - /// The arguments to pass to the command. Use `*` for a single wildcard argument. - /// If the last element is `**`, then any trailing arguments are allowed. - args: Vec, - }, + ProcessExec(ProcessExecCapability), +} + +#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)] +#[serde(rename_all = "snake_case")] +pub struct ProcessExecCapability { + /// The command to execute. + pub command: String, + /// The arguments to pass to the command. Use `*` for a single wildcard argument. + /// If the last element is `**`, then any trailing arguments are allowed. + pub args: Vec, +} + +impl ProcessExecCapability { + /// Returns whether the capability allows the given command and arguments. + pub fn allows( + &self, + desired_command: &str, + desired_args: &[impl AsRef + std::fmt::Debug], + ) -> bool { + if self.command != desired_command && self.command != "*" { + return false; + } + + for (ix, arg) in self.args.iter().enumerate() { + if arg == "**" { + return true; + } + + if ix >= desired_args.len() { + return false; + } + + if arg != "*" && arg != desired_args[ix].as_ref() { + return false; + } + } + + if self.args.len() < desired_args.len() { + return false; + } + + true + } } #[derive(Clone, Default, PartialEq, Eq, Debug, Deserialize, Serialize)] @@ -362,10 +382,10 @@ mod tests { #[test] fn test_allow_exact_match() { let manifest = ExtensionManifest { - capabilities: vec![ExtensionCapability::ProcessExec { + capabilities: vec![ExtensionCapability::ProcessExec(ProcessExecCapability { command: "ls".to_string(), args: vec!["-la".to_string()], - }], + })], ..extension_manifest() }; @@ -377,10 +397,10 @@ mod tests { #[test] fn test_allow_wildcard_arg() { let manifest = ExtensionManifest { - capabilities: vec![ExtensionCapability::ProcessExec { + capabilities: vec![ExtensionCapability::ProcessExec(ProcessExecCapability { command: "git".to_string(), args: vec!["*".to_string()], - }], + })], ..extension_manifest() }; @@ -393,10 +413,10 @@ mod tests { #[test] fn test_allow_double_wildcard() { let manifest = ExtensionManifest { - capabilities: vec![ExtensionCapability::ProcessExec { + capabilities: vec![ExtensionCapability::ProcessExec(ProcessExecCapability { command: "cargo".to_string(), args: vec!["test".to_string(), "**".to_string()], - }], + })], ..extension_manifest() }; @@ -413,10 +433,10 @@ mod tests { #[test] fn test_allow_mixed_wildcards() { let manifest = ExtensionManifest { - capabilities: vec![ExtensionCapability::ProcessExec { + capabilities: vec![ExtensionCapability::ProcessExec(ProcessExecCapability { command: "docker".to_string(), args: vec!["run".to_string(), "*".to_string(), "**".to_string()], - }], + })], ..extension_manifest() }; diff --git a/crates/extension_host/benches/extension_compilation_benchmark.rs b/crates/extension_host/benches/extension_compilation_benchmark.rs index 9d867af041..a4fa9bfeff 100644 --- a/crates/extension_host/benches/extension_compilation_benchmark.rs +++ b/crates/extension_host/benches/extension_compilation_benchmark.rs @@ -134,10 +134,12 @@ fn manifest() -> ExtensionManifest { slash_commands: BTreeMap::default(), indexed_docs_providers: BTreeMap::default(), snippets: None, - capabilities: vec![ExtensionCapability::ProcessExec { - command: "echo".into(), - args: vec!["hello!".into()], - }], + capabilities: vec![ExtensionCapability::ProcessExec( + extension::ProcessExecCapability { + command: "echo".into(), + args: vec!["hello!".into()], + }, + )], debug_adapters: Default::default(), debug_locators: Default::default(), } diff --git a/crates/extension_host/src/capability_granter.rs b/crates/extension_host/src/capability_granter.rs new file mode 100644 index 0000000000..3496403fcd --- /dev/null +++ b/crates/extension_host/src/capability_granter.rs @@ -0,0 +1,115 @@ +use std::sync::Arc; + +use anyhow::{Result, bail}; +use extension::{ExtensionCapability, ExtensionManifest}; + +pub struct CapabilityGranter { + granted_capabilities: Vec, + manifest: Arc, +} + +impl CapabilityGranter { + pub fn new( + granted_capabilities: Vec, + manifest: Arc, + ) -> Self { + Self { + granted_capabilities, + manifest, + } + } + + pub fn grant_exec( + &self, + desired_command: &str, + desired_args: &[impl AsRef + std::fmt::Debug], + ) -> Result<()> { + self.manifest.allow_exec(desired_command, desired_args)?; + + let is_allowed = self + .granted_capabilities + .iter() + .any(|capability| match capability { + ExtensionCapability::ProcessExec(capability) => { + capability.allows(desired_command, desired_args) + } + }); + + if !is_allowed { + bail!( + "capability for process:exec {desired_command} {desired_args:?} is not granted by the extension host", + ); + } + + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use std::collections::BTreeMap; + + use extension::{ProcessExecCapability, SchemaVersion}; + + use super::*; + + fn extension_manifest() -> ExtensionManifest { + ExtensionManifest { + id: "test".into(), + name: "Test".to_string(), + version: "1.0.0".into(), + schema_version: SchemaVersion::ZERO, + description: None, + repository: None, + authors: vec![], + lib: Default::default(), + themes: vec![], + icon_themes: vec![], + languages: vec![], + grammars: BTreeMap::default(), + language_servers: BTreeMap::default(), + context_servers: BTreeMap::default(), + slash_commands: BTreeMap::default(), + indexed_docs_providers: BTreeMap::default(), + snippets: None, + capabilities: vec![], + debug_adapters: Default::default(), + debug_locators: Default::default(), + } + } + + #[test] + fn test_grant_exec() { + let manifest = Arc::new(ExtensionManifest { + capabilities: vec![ExtensionCapability::ProcessExec(ProcessExecCapability { + command: "ls".to_string(), + args: vec!["-la".to_string()], + })], + ..extension_manifest() + }); + + // It returns an error when the extension host has no granted capabilities. + let granter = CapabilityGranter::new(Vec::new(), manifest.clone()); + assert!(granter.grant_exec("ls", &["-la"]).is_err()); + + // It succeeds when the extension host has the exact capability. + let granter = CapabilityGranter::new( + vec![ExtensionCapability::ProcessExec(ProcessExecCapability { + command: "ls".to_string(), + args: vec!["-la".to_string()], + })], + manifest.clone(), + ); + assert!(granter.grant_exec("ls", &["-la"]).is_ok()); + + // It succeeds when the extension host has a wildcard capability. + let granter = CapabilityGranter::new( + vec![ExtensionCapability::ProcessExec(ProcessExecCapability { + command: "*".to_string(), + args: vec!["**".to_string()], + })], + manifest.clone(), + ); + assert!(granter.grant_exec("ls", &["-la"]).is_ok()); + } +} diff --git a/crates/extension_host/src/extension_host.rs b/crates/extension_host/src/extension_host.rs index fd64d3fa59..dc38c244f1 100644 --- a/crates/extension_host/src/extension_host.rs +++ b/crates/extension_host/src/extension_host.rs @@ -1,3 +1,4 @@ +mod capability_granter; pub mod extension_settings; pub mod headless_host; pub mod wasm_host; diff --git a/crates/extension_host/src/wasm_host.rs b/crates/extension_host/src/wasm_host.rs index 3e0f06fa38..dd215eb07e 100644 --- a/crates/extension_host/src/wasm_host.rs +++ b/crates/extension_host/src/wasm_host.rs @@ -1,13 +1,15 @@ pub mod wit; use crate::ExtensionManifest; +use crate::capability_granter::CapabilityGranter; use anyhow::{Context as _, Result, anyhow, bail}; use async_trait::async_trait; use dap::{DebugRequest, StartDebuggingRequestArgumentsRequest}; use extension::{ CodeLabel, Command, Completion, ContextServerConfiguration, DebugAdapterBinary, - DebugTaskDefinition, ExtensionHostProxy, KeyValueStoreDelegate, ProjectDelegate, SlashCommand, - SlashCommandArgumentCompletion, SlashCommandOutput, Symbol, WorktreeDelegate, + DebugTaskDefinition, ExtensionCapability, ExtensionHostProxy, KeyValueStoreDelegate, + ProcessExecCapability, ProjectDelegate, SlashCommand, SlashCommandArgumentCompletion, + SlashCommandOutput, Symbol, WorktreeDelegate, }; use fs::{Fs, normalize_path}; use futures::future::LocalBoxFuture; @@ -50,6 +52,8 @@ pub struct WasmHost { pub(crate) proxy: Arc, fs: Arc, pub work_dir: PathBuf, + /// The capabilities granted to extensions running on the host. + pub(crate) granted_capabilities: Vec, _main_thread_message_task: Task<()>, main_thread_message_tx: mpsc::UnboundedSender, } @@ -486,6 +490,7 @@ pub struct WasmState { pub table: ResourceTable, ctx: wasi::WasiCtx, pub host: Arc, + pub(crate) capability_granter: CapabilityGranter, } type MainThreadCall = Box FnOnce(&'a mut AsyncApp) -> LocalBoxFuture<'a, ()>>; @@ -571,6 +576,10 @@ impl WasmHost { node_runtime, proxy, release_channel: ReleaseChannel::global(cx), + granted_capabilities: vec![ExtensionCapability::ProcessExec(ProcessExecCapability { + command: "*".to_string(), + args: vec!["**".to_string()], + })], _main_thread_message_task: task, main_thread_message_tx: tx, }) @@ -597,6 +606,10 @@ impl WasmHost { manifest: manifest.clone(), table: ResourceTable::new(), host: this.clone(), + capability_granter: CapabilityGranter::new( + this.granted_capabilities.clone(), + manifest.clone(), + ), }, ); // Store will yield after 1 tick, and get a new deadline of 1 tick after each yield. diff --git a/crates/extension_host/src/wasm_host/wit/since_v0_6_0.rs b/crates/extension_host/src/wasm_host/wit/since_v0_6_0.rs index d25328ee7f..f943cf489e 100644 --- a/crates/extension_host/src/wasm_host/wit/since_v0_6_0.rs +++ b/crates/extension_host/src/wasm_host/wit/since_v0_6_0.rs @@ -847,7 +847,8 @@ impl process::Host for WasmState { command: process::Command, ) -> wasmtime::Result> { maybe!(async { - self.manifest.allow_exec(&command.command, &command.args)?; + self.capability_granter + .grant_exec(&command.command, &command.args)?; let output = util::command::new_smol_command(command.command.as_str()) .args(&command.args) From 6a9a539b101a13883aa00b2279923bb081ac7953 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Sat, 26 Jul 2025 17:33:16 -0400 Subject: [PATCH 0234/1052] extension_host: Add capability for downloading files (#35141) This PR adds a new capability for downloading files in extensions. Currently all file downloads are allowed. Release Notes: - N/A --- Cargo.lock | 2 + crates/extension/Cargo.toml | 4 + crates/extension/src/extension_manifest.rs | 127 +++++++++++++++++- .../extension_host/src/capability_granter.rs | 20 +++ crates/extension_host/src/wasm_host.rs | 20 ++- .../src/wasm_host/wit/since_v0_6_0.rs | 4 + 6 files changed, 165 insertions(+), 12 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2e5517ecbf..d1ea9cc32f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5385,11 +5385,13 @@ dependencies = [ "log", "lsp", "parking_lot", + "pretty_assertions", "semantic_version", "serde", "serde_json", "task", "toml 0.8.20", + "url", "util", "wasm-encoder 0.221.3", "wasmparser 0.221.3", diff --git a/crates/extension/Cargo.toml b/crates/extension/Cargo.toml index 4fc7da2dca..42189f20b3 100644 --- a/crates/extension/Cargo.toml +++ b/crates/extension/Cargo.toml @@ -32,7 +32,11 @@ serde.workspace = true serde_json.workspace = true task.workspace = true toml.workspace = true +url.workspace = true util.workspace = true wasm-encoder.workspace = true wasmparser.workspace = true workspace-hack.workspace = true + +[dev-dependencies] +pretty_assertions.workspace = true diff --git a/crates/extension/src/extension_manifest.rs b/crates/extension/src/extension_manifest.rs index eb09090e2a..68d4b9b835 100644 --- a/crates/extension/src/extension_manifest.rs +++ b/crates/extension/src/extension_manifest.rs @@ -11,6 +11,7 @@ use std::{ path::{Path, PathBuf}, sync::Arc, }; +use url::Url; /// This is the old version of the extension manifest, from when it was `extension.json`. #[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)] @@ -103,6 +104,7 @@ impl ExtensionManifest { ExtensionCapability::ProcessExec(capability) => { capability.allows(desired_command, desired_args) } + _ => false, }); if !is_allowed { @@ -133,10 +135,11 @@ pub fn build_debug_adapter_schema_path( /// A capability for an extension. #[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)] -#[serde(tag = "kind")] +#[serde(tag = "kind", rename_all = "snake_case")] pub enum ExtensionCapability { #[serde(rename = "process:exec")] ProcessExec(ProcessExecCapability), + DownloadFile(DownloadFileCapability), } #[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)] @@ -182,6 +185,51 @@ impl ProcessExecCapability { } } +#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)] +#[serde(rename_all = "snake_case")] +pub struct DownloadFileCapability { + pub host: String, + pub path: Vec, +} + +impl DownloadFileCapability { + /// Returns whether the capability allows downloading a file from the given URL. + pub fn allows(&self, url: &Url) -> bool { + let Some(desired_host) = url.host_str() else { + return false; + }; + + let Some(desired_path) = url.path_segments() else { + return false; + }; + let desired_path = desired_path.collect::>(); + + if self.host != desired_host && self.host != "*" { + return false; + } + + for (ix, path_segment) in self.path.iter().enumerate() { + if path_segment == "**" { + return true; + } + + if ix >= desired_path.len() { + return false; + } + + if path_segment != "*" && path_segment != desired_path[ix] { + return false; + } + } + + if self.path.len() < desired_path.len() { + return false; + } + + true + } +} + #[derive(Clone, Default, PartialEq, Eq, Debug, Deserialize, Serialize)] pub struct LibManifestEntry { pub kind: Option, @@ -329,6 +377,8 @@ fn manifest_from_old_manifest( #[cfg(test)] mod tests { + use pretty_assertions::assert_eq; + use super::*; fn extension_manifest() -> ExtensionManifest { @@ -380,7 +430,7 @@ mod tests { } #[test] - fn test_allow_exact_match() { + fn test_allow_exec_exact_match() { let manifest = ExtensionManifest { capabilities: vec![ExtensionCapability::ProcessExec(ProcessExecCapability { command: "ls".to_string(), @@ -395,7 +445,7 @@ mod tests { } #[test] - fn test_allow_wildcard_arg() { + fn test_allow_exec_wildcard_arg() { let manifest = ExtensionManifest { capabilities: vec![ExtensionCapability::ProcessExec(ProcessExecCapability { command: "git".to_string(), @@ -411,7 +461,7 @@ mod tests { } #[test] - fn test_allow_double_wildcard() { + fn test_allow_exec_double_wildcard() { let manifest = ExtensionManifest { capabilities: vec![ExtensionCapability::ProcessExec(ProcessExecCapability { command: "cargo".to_string(), @@ -431,7 +481,7 @@ mod tests { } #[test] - fn test_allow_mixed_wildcards() { + fn test_allow_exec_mixed_wildcards() { let manifest = ExtensionManifest { capabilities: vec![ExtensionCapability::ProcessExec(ProcessExecCapability { command: "docker".to_string(), @@ -454,4 +504,71 @@ mod tests { ); assert!(manifest.allow_exec("docker", &["ps"]).is_err()); // wrong first arg } + + #[test] + fn test_download_file_capability_allows() { + let capability = DownloadFileCapability { + host: "*".to_string(), + path: vec!["**".to_string()], + }; + assert_eq!( + capability.allows(&"https://example.com/some/path".parse().unwrap()), + true + ); + + let capability = DownloadFileCapability { + host: "github.com".to_string(), + path: vec!["**".to_string()], + }; + assert_eq!( + capability.allows(&"https://github.com/some-owner/some-repo".parse().unwrap()), + true + ); + assert_eq!( + capability.allows( + &"https://fake-github.com/some-owner/some-repo" + .parse() + .unwrap() + ), + false + ); + + let capability = DownloadFileCapability { + host: "github.com".to_string(), + path: vec!["specific-owner".to_string(), "*".to_string()], + }; + assert_eq!( + capability.allows(&"https://github.com/some-owner/some-repo".parse().unwrap()), + false + ); + assert_eq!( + capability.allows( + &"https://github.com/specific-owner/some-repo" + .parse() + .unwrap() + ), + true + ); + + let capability = DownloadFileCapability { + host: "github.com".to_string(), + path: vec!["specific-owner".to_string(), "*".to_string()], + }; + assert_eq!( + capability.allows( + &"https://github.com/some-owner/some-repo/extra" + .parse() + .unwrap() + ), + false + ); + assert_eq!( + capability.allows( + &"https://github.com/specific-owner/some-repo/extra" + .parse() + .unwrap() + ), + false + ); + } } diff --git a/crates/extension_host/src/capability_granter.rs b/crates/extension_host/src/capability_granter.rs index 3496403fcd..42a6244003 100644 --- a/crates/extension_host/src/capability_granter.rs +++ b/crates/extension_host/src/capability_granter.rs @@ -2,6 +2,7 @@ use std::sync::Arc; use anyhow::{Result, bail}; use extension::{ExtensionCapability, ExtensionManifest}; +use url::Url; pub struct CapabilityGranter { granted_capabilities: Vec, @@ -33,6 +34,7 @@ impl CapabilityGranter { ExtensionCapability::ProcessExec(capability) => { capability.allows(desired_command, desired_args) } + _ => false, }); if !is_allowed { @@ -43,6 +45,24 @@ impl CapabilityGranter { Ok(()) } + + pub fn grant_download_file(&self, desired_url: &Url) -> Result<()> { + let is_allowed = self + .granted_capabilities + .iter() + .any(|capability| match capability { + ExtensionCapability::DownloadFile(capability) => capability.allows(desired_url), + _ => false, + }); + + if !is_allowed { + bail!( + "capability for download_file {desired_url} is not granted by the extension host", + ); + } + + Ok(()) + } } #[cfg(test)] diff --git a/crates/extension_host/src/wasm_host.rs b/crates/extension_host/src/wasm_host.rs index dd215eb07e..59ecf2ec32 100644 --- a/crates/extension_host/src/wasm_host.rs +++ b/crates/extension_host/src/wasm_host.rs @@ -7,9 +7,9 @@ use async_trait::async_trait; use dap::{DebugRequest, StartDebuggingRequestArgumentsRequest}; use extension::{ CodeLabel, Command, Completion, ContextServerConfiguration, DebugAdapterBinary, - DebugTaskDefinition, ExtensionCapability, ExtensionHostProxy, KeyValueStoreDelegate, - ProcessExecCapability, ProjectDelegate, SlashCommand, SlashCommandArgumentCompletion, - SlashCommandOutput, Symbol, WorktreeDelegate, + DebugTaskDefinition, DownloadFileCapability, ExtensionCapability, ExtensionHostProxy, + KeyValueStoreDelegate, ProcessExecCapability, ProjectDelegate, SlashCommand, + SlashCommandArgumentCompletion, SlashCommandOutput, Symbol, WorktreeDelegate, }; use fs::{Fs, normalize_path}; use futures::future::LocalBoxFuture; @@ -576,10 +576,16 @@ impl WasmHost { node_runtime, proxy, release_channel: ReleaseChannel::global(cx), - granted_capabilities: vec![ExtensionCapability::ProcessExec(ProcessExecCapability { - command: "*".to_string(), - args: vec!["**".to_string()], - })], + granted_capabilities: vec![ + ExtensionCapability::ProcessExec(ProcessExecCapability { + command: "*".to_string(), + args: vec!["**".to_string()], + }), + ExtensionCapability::DownloadFile(DownloadFileCapability { + host: "*".to_string(), + path: vec!["**".to_string()], + }), + ], _main_thread_message_task: task, main_thread_message_tx: tx, }) diff --git a/crates/extension_host/src/wasm_host/wit/since_v0_6_0.rs b/crates/extension_host/src/wasm_host/wit/since_v0_6_0.rs index f943cf489e..7ff28d691f 100644 --- a/crates/extension_host/src/wasm_host/wit/since_v0_6_0.rs +++ b/crates/extension_host/src/wasm_host/wit/since_v0_6_0.rs @@ -30,6 +30,7 @@ use std::{ sync::{Arc, OnceLock}, }; use task::{SpawnInTerminal, ZedDebugConfig}; +use url::Url; use util::{archive::extract_zip, fs::make_file_executable, maybe}; use wasmtime::component::{Linker, Resource}; @@ -1011,6 +1012,9 @@ impl ExtensionImports for WasmState { file_type: DownloadedFileType, ) -> wasmtime::Result> { maybe!(async { + let parsed_url = Url::parse(&url)?; + self.capability_granter.grant_download_file(&parsed_url)?; + let path = PathBuf::from(path); let extension_work_dir = self.host.work_dir.join(self.manifest.id.as_ref()); From 2a0170dc3c553b74d14a13c1c4ccbe8ab5841a3c Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Sat, 26 Jul 2025 18:05:22 -0400 Subject: [PATCH 0235/1052] extension: Reorganize capabilities (#35143) This PR reorganizes the capabilities within the `extension` crate to make it easier to add more. Release Notes: - N/A --- crates/extension/src/capabilities.rs | 16 ++ .../capabilities/download_file_capability.rs | 121 +++++++++++++ .../capabilities/process_exec_capability.rs | 116 ++++++++++++ crates/extension/src/extension.rs | 2 + crates/extension/src/extension_manifest.rs | 169 +----------------- 5 files changed, 259 insertions(+), 165 deletions(-) create mode 100644 crates/extension/src/capabilities.rs create mode 100644 crates/extension/src/capabilities/download_file_capability.rs create mode 100644 crates/extension/src/capabilities/process_exec_capability.rs diff --git a/crates/extension/src/capabilities.rs b/crates/extension/src/capabilities.rs new file mode 100644 index 0000000000..f88f107991 --- /dev/null +++ b/crates/extension/src/capabilities.rs @@ -0,0 +1,16 @@ +mod download_file_capability; +mod process_exec_capability; + +pub use download_file_capability::*; +pub use process_exec_capability::*; + +use serde::{Deserialize, Serialize}; + +/// A capability for an extension. +#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)] +#[serde(tag = "kind", rename_all = "snake_case")] +pub enum ExtensionCapability { + #[serde(rename = "process:exec")] + ProcessExec(ProcessExecCapability), + DownloadFile(DownloadFileCapability), +} diff --git a/crates/extension/src/capabilities/download_file_capability.rs b/crates/extension/src/capabilities/download_file_capability.rs new file mode 100644 index 0000000000..a76755b593 --- /dev/null +++ b/crates/extension/src/capabilities/download_file_capability.rs @@ -0,0 +1,121 @@ +use serde::{Deserialize, Serialize}; +use url::Url; + +#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)] +#[serde(rename_all = "snake_case")] +pub struct DownloadFileCapability { + pub host: String, + pub path: Vec, +} + +impl DownloadFileCapability { + /// Returns whether the capability allows downloading a file from the given URL. + pub fn allows(&self, url: &Url) -> bool { + let Some(desired_host) = url.host_str() else { + return false; + }; + + let Some(desired_path) = url.path_segments() else { + return false; + }; + let desired_path = desired_path.collect::>(); + + if self.host != desired_host && self.host != "*" { + return false; + } + + for (ix, path_segment) in self.path.iter().enumerate() { + if path_segment == "**" { + return true; + } + + if ix >= desired_path.len() { + return false; + } + + if path_segment != "*" && path_segment != desired_path[ix] { + return false; + } + } + + if self.path.len() < desired_path.len() { + return false; + } + + true + } +} + +#[cfg(test)] +mod tests { + use pretty_assertions::assert_eq; + + use super::*; + + #[test] + fn test_allows() { + let capability = DownloadFileCapability { + host: "*".to_string(), + path: vec!["**".to_string()], + }; + assert_eq!( + capability.allows(&"https://example.com/some/path".parse().unwrap()), + true + ); + + let capability = DownloadFileCapability { + host: "github.com".to_string(), + path: vec!["**".to_string()], + }; + assert_eq!( + capability.allows(&"https://github.com/some-owner/some-repo".parse().unwrap()), + true + ); + assert_eq!( + capability.allows( + &"https://fake-github.com/some-owner/some-repo" + .parse() + .unwrap() + ), + false + ); + + let capability = DownloadFileCapability { + host: "github.com".to_string(), + path: vec!["specific-owner".to_string(), "*".to_string()], + }; + assert_eq!( + capability.allows(&"https://github.com/some-owner/some-repo".parse().unwrap()), + false + ); + assert_eq!( + capability.allows( + &"https://github.com/specific-owner/some-repo" + .parse() + .unwrap() + ), + true + ); + + let capability = DownloadFileCapability { + host: "github.com".to_string(), + path: vec!["specific-owner".to_string(), "*".to_string()], + }; + assert_eq!( + capability.allows( + &"https://github.com/some-owner/some-repo/extra" + .parse() + .unwrap() + ), + false + ); + assert_eq!( + capability.allows( + &"https://github.com/specific-owner/some-repo/extra" + .parse() + .unwrap() + ), + false + ); + } +} diff --git a/crates/extension/src/capabilities/process_exec_capability.rs b/crates/extension/src/capabilities/process_exec_capability.rs new file mode 100644 index 0000000000..053a7b212b --- /dev/null +++ b/crates/extension/src/capabilities/process_exec_capability.rs @@ -0,0 +1,116 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)] +#[serde(rename_all = "snake_case")] +pub struct ProcessExecCapability { + /// The command to execute. + pub command: String, + /// The arguments to pass to the command. Use `*` for a single wildcard argument. + /// If the last element is `**`, then any trailing arguments are allowed. + pub args: Vec, +} + +impl ProcessExecCapability { + /// Returns whether the capability allows the given command and arguments. + pub fn allows( + &self, + desired_command: &str, + desired_args: &[impl AsRef + std::fmt::Debug], + ) -> bool { + if self.command != desired_command && self.command != "*" { + return false; + } + + for (ix, arg) in self.args.iter().enumerate() { + if arg == "**" { + return true; + } + + if ix >= desired_args.len() { + return false; + } + + if arg != "*" && arg != desired_args[ix].as_ref() { + return false; + } + } + + if self.args.len() < desired_args.len() { + return false; + } + + true + } +} + +#[cfg(test)] +mod tests { + use pretty_assertions::assert_eq; + + use super::*; + + #[test] + fn test_allows_with_exact_match() { + let capability = ProcessExecCapability { + command: "ls".to_string(), + args: vec!["-la".to_string()], + }; + + assert_eq!(capability.allows("ls", &["-la"]), true); + assert_eq!(capability.allows("ls", &["-l"]), false); + assert_eq!(capability.allows("pwd", &[] as &[&str]), false); + } + + #[test] + fn test_allows_with_wildcard_arg() { + let capability = ProcessExecCapability { + command: "git".to_string(), + args: vec!["*".to_string()], + }; + + assert_eq!(capability.allows("git", &["status"]), true); + assert_eq!(capability.allows("git", &["commit"]), true); + // Too many args. + assert_eq!(capability.allows("git", &["status", "-s"]), false); + // Wrong command. + assert_eq!(capability.allows("npm", &["install"]), false); + } + + #[test] + fn test_allows_with_double_wildcard() { + let capability = ProcessExecCapability { + command: "cargo".to_string(), + args: vec!["test".to_string(), "**".to_string()], + }; + + assert_eq!(capability.allows("cargo", &["test"]), true); + assert_eq!(capability.allows("cargo", &["test", "--all"]), true); + assert_eq!( + capability.allows("cargo", &["test", "--all", "--no-fail-fast"]), + true + ); + // Wrong first arg. + assert_eq!(capability.allows("cargo", &["build"]), false); + } + + #[test] + fn test_allows_with_mixed_wildcards() { + let capability = ProcessExecCapability { + command: "docker".to_string(), + args: vec!["run".to_string(), "*".to_string(), "**".to_string()], + }; + + assert_eq!(capability.allows("docker", &["run", "nginx"]), true); + assert_eq!(capability.allows("docker", &["run"]), false); + assert_eq!( + capability.allows("docker", &["run", "ubuntu", "bash"]), + true + ); + assert_eq!( + capability.allows("docker", &["run", "alpine", "sh", "-c", "echo hello"]), + true + ); + // Wrong first arg. + assert_eq!(capability.allows("docker", &["ps"]), false); + } +} diff --git a/crates/extension/src/extension.rs b/crates/extension/src/extension.rs index 8b150e19b9..35f7f41938 100644 --- a/crates/extension/src/extension.rs +++ b/crates/extension/src/extension.rs @@ -1,3 +1,4 @@ +mod capabilities; pub mod extension_builder; mod extension_events; mod extension_host_proxy; @@ -16,6 +17,7 @@ use language::LanguageName; use semantic_version::SemanticVersion; use task::{SpawnInTerminal, ZedDebugConfig}; +pub use crate::capabilities::*; pub use crate::extension_events::*; pub use crate::extension_host_proxy::*; pub use crate::extension_manifest::*; diff --git a/crates/extension/src/extension_manifest.rs b/crates/extension/src/extension_manifest.rs index 68d4b9b835..e3235cf561 100644 --- a/crates/extension/src/extension_manifest.rs +++ b/crates/extension/src/extension_manifest.rs @@ -11,7 +11,8 @@ use std::{ path::{Path, PathBuf}, sync::Arc, }; -use url::Url; + +use crate::ExtensionCapability; /// This is the old version of the extension manifest, from when it was `extension.json`. #[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)] @@ -133,103 +134,6 @@ pub fn build_debug_adapter_schema_path( }) } -/// A capability for an extension. -#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)] -#[serde(tag = "kind", rename_all = "snake_case")] -pub enum ExtensionCapability { - #[serde(rename = "process:exec")] - ProcessExec(ProcessExecCapability), - DownloadFile(DownloadFileCapability), -} - -#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)] -#[serde(rename_all = "snake_case")] -pub struct ProcessExecCapability { - /// The command to execute. - pub command: String, - /// The arguments to pass to the command. Use `*` for a single wildcard argument. - /// If the last element is `**`, then any trailing arguments are allowed. - pub args: Vec, -} - -impl ProcessExecCapability { - /// Returns whether the capability allows the given command and arguments. - pub fn allows( - &self, - desired_command: &str, - desired_args: &[impl AsRef + std::fmt::Debug], - ) -> bool { - if self.command != desired_command && self.command != "*" { - return false; - } - - for (ix, arg) in self.args.iter().enumerate() { - if arg == "**" { - return true; - } - - if ix >= desired_args.len() { - return false; - } - - if arg != "*" && arg != desired_args[ix].as_ref() { - return false; - } - } - - if self.args.len() < desired_args.len() { - return false; - } - - true - } -} - -#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)] -#[serde(rename_all = "snake_case")] -pub struct DownloadFileCapability { - pub host: String, - pub path: Vec, -} - -impl DownloadFileCapability { - /// Returns whether the capability allows downloading a file from the given URL. - pub fn allows(&self, url: &Url) -> bool { - let Some(desired_host) = url.host_str() else { - return false; - }; - - let Some(desired_path) = url.path_segments() else { - return false; - }; - let desired_path = desired_path.collect::>(); - - if self.host != desired_host && self.host != "*" { - return false; - } - - for (ix, path_segment) in self.path.iter().enumerate() { - if path_segment == "**" { - return true; - } - - if ix >= desired_path.len() { - return false; - } - - if path_segment != "*" && path_segment != desired_path[ix] { - return false; - } - } - - if self.path.len() < desired_path.len() { - return false; - } - - true - } -} - #[derive(Clone, Default, PartialEq, Eq, Debug, Deserialize, Serialize)] pub struct LibManifestEntry { pub kind: Option, @@ -379,6 +283,8 @@ fn manifest_from_old_manifest( mod tests { use pretty_assertions::assert_eq; + use crate::ProcessExecCapability; + use super::*; fn extension_manifest() -> ExtensionManifest { @@ -504,71 +410,4 @@ mod tests { ); assert!(manifest.allow_exec("docker", &["ps"]).is_err()); // wrong first arg } - - #[test] - fn test_download_file_capability_allows() { - let capability = DownloadFileCapability { - host: "*".to_string(), - path: vec!["**".to_string()], - }; - assert_eq!( - capability.allows(&"https://example.com/some/path".parse().unwrap()), - true - ); - - let capability = DownloadFileCapability { - host: "github.com".to_string(), - path: vec!["**".to_string()], - }; - assert_eq!( - capability.allows(&"https://github.com/some-owner/some-repo".parse().unwrap()), - true - ); - assert_eq!( - capability.allows( - &"https://fake-github.com/some-owner/some-repo" - .parse() - .unwrap() - ), - false - ); - - let capability = DownloadFileCapability { - host: "github.com".to_string(), - path: vec!["specific-owner".to_string(), "*".to_string()], - }; - assert_eq!( - capability.allows(&"https://github.com/some-owner/some-repo".parse().unwrap()), - false - ); - assert_eq!( - capability.allows( - &"https://github.com/specific-owner/some-repo" - .parse() - .unwrap() - ), - true - ); - - let capability = DownloadFileCapability { - host: "github.com".to_string(), - path: vec!["specific-owner".to_string(), "*".to_string()], - }; - assert_eq!( - capability.allows( - &"https://github.com/some-owner/some-repo/extra" - .parse() - .unwrap() - ), - false - ); - assert_eq!( - capability.allows( - &"https://github.com/specific-owner/some-repo/extra" - .parse() - .unwrap() - ), - false - ); - } } From 89e88c245e2de7e4027b69f429cc2087d83d4a9d Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Sat, 26 Jul 2025 18:40:02 -0400 Subject: [PATCH 0236/1052] extension_host: Add `npm:install` capability (#35144) This PR adds a new `npm:install` capability for installing npm packges in extensions. Currently all npm packages are allowed. Release Notes: - N/A --- crates/extension/src/capabilities.rs | 4 ++ .../npm_install_package_capability.rs | 39 +++++++++++++++++++ .../extension_host/src/capability_granter.rs | 18 +++++++++ crates/extension_host/src/wasm_host.rs | 7 +++- .../src/wasm_host/wit/since_v0_6_0.rs | 3 ++ 5 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 crates/extension/src/capabilities/npm_install_package_capability.rs diff --git a/crates/extension/src/capabilities.rs b/crates/extension/src/capabilities.rs index f88f107991..b8afc4ec06 100644 --- a/crates/extension/src/capabilities.rs +++ b/crates/extension/src/capabilities.rs @@ -1,7 +1,9 @@ mod download_file_capability; +mod npm_install_package_capability; mod process_exec_capability; pub use download_file_capability::*; +pub use npm_install_package_capability::*; pub use process_exec_capability::*; use serde::{Deserialize, Serialize}; @@ -13,4 +15,6 @@ pub enum ExtensionCapability { #[serde(rename = "process:exec")] ProcessExec(ProcessExecCapability), DownloadFile(DownloadFileCapability), + #[serde(rename = "npm:install")] + NpmInstallPackage(NpmInstallPackageCapability), } diff --git a/crates/extension/src/capabilities/npm_install_package_capability.rs b/crates/extension/src/capabilities/npm_install_package_capability.rs new file mode 100644 index 0000000000..287645fc75 --- /dev/null +++ b/crates/extension/src/capabilities/npm_install_package_capability.rs @@ -0,0 +1,39 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)] +#[serde(rename_all = "snake_case")] +pub struct NpmInstallPackageCapability { + pub package: String, +} + +impl NpmInstallPackageCapability { + /// Returns whether the capability allows installing the given NPM package. + pub fn allows(&self, package: &str) -> bool { + self.package == "*" || self.package == package + } +} + +#[cfg(test)] +mod tests { + use pretty_assertions::assert_eq; + + use super::*; + + #[test] + fn test_allows() { + let capability = NpmInstallPackageCapability { + package: "*".to_string(), + }; + assert_eq!(capability.allows("package"), true); + + let capability = NpmInstallPackageCapability { + package: "react".to_string(), + }; + assert_eq!(capability.allows("react"), true); + + let capability = NpmInstallPackageCapability { + package: "react".to_string(), + }; + assert_eq!(capability.allows("malicious-package"), false); + } +} diff --git a/crates/extension_host/src/capability_granter.rs b/crates/extension_host/src/capability_granter.rs index 42a6244003..c77e5ecba1 100644 --- a/crates/extension_host/src/capability_granter.rs +++ b/crates/extension_host/src/capability_granter.rs @@ -63,6 +63,24 @@ impl CapabilityGranter { Ok(()) } + + pub fn grant_npm_install_package(&self, package_name: &str) -> Result<()> { + let is_allowed = self + .granted_capabilities + .iter() + .any(|capability| match capability { + ExtensionCapability::NpmInstallPackage(capability) => { + capability.allows(package_name) + } + _ => false, + }); + + if !is_allowed { + bail!("capability for npm:install {package_name} is not granted by the extension host",); + } + + Ok(()) + } } #[cfg(test)] diff --git a/crates/extension_host/src/wasm_host.rs b/crates/extension_host/src/wasm_host.rs index 59ecf2ec32..1f6f5035e3 100644 --- a/crates/extension_host/src/wasm_host.rs +++ b/crates/extension_host/src/wasm_host.rs @@ -8,8 +8,8 @@ use dap::{DebugRequest, StartDebuggingRequestArgumentsRequest}; use extension::{ CodeLabel, Command, Completion, ContextServerConfiguration, DebugAdapterBinary, DebugTaskDefinition, DownloadFileCapability, ExtensionCapability, ExtensionHostProxy, - KeyValueStoreDelegate, ProcessExecCapability, ProjectDelegate, SlashCommand, - SlashCommandArgumentCompletion, SlashCommandOutput, Symbol, WorktreeDelegate, + KeyValueStoreDelegate, NpmInstallPackageCapability, ProcessExecCapability, ProjectDelegate, + SlashCommand, SlashCommandArgumentCompletion, SlashCommandOutput, Symbol, WorktreeDelegate, }; use fs::{Fs, normalize_path}; use futures::future::LocalBoxFuture; @@ -585,6 +585,9 @@ impl WasmHost { host: "*".to_string(), path: vec!["**".to_string()], }), + ExtensionCapability::NpmInstallPackage(NpmInstallPackageCapability { + package: "*".to_string(), + }), ], _main_thread_message_task: task, main_thread_message_tx: tx, diff --git a/crates/extension_host/src/wasm_host/wit/since_v0_6_0.rs b/crates/extension_host/src/wasm_host/wit/since_v0_6_0.rs index 7ff28d691f..767b9033ad 100644 --- a/crates/extension_host/src/wasm_host/wit/since_v0_6_0.rs +++ b/crates/extension_host/src/wasm_host/wit/since_v0_6_0.rs @@ -745,6 +745,9 @@ impl nodejs::Host for WasmState { package_name: String, version: String, ) -> wasmtime::Result> { + self.capability_granter + .grant_npm_install_package(&package_name)?; + self.host .node_runtime .npm_install_packages(&self.work_dir(), &[(&package_name, &version)]) From a5b7cfd128820daa5765f411b28edcd8d89fed37 Mon Sep 17 00:00:00 2001 From: Ben Brandt Date: Sun, 27 Jul 2025 15:50:04 +0200 Subject: [PATCH 0237/1052] agent_servers: Use built-in interrupt handling for Claude sessions (#35154) We no longer have to stop and restart the entire process. I left in the Start/Resume mode handling since we will likely need to handle restarting Claude in other situations. Release Notes: - N/A --- Cargo.lock | 1 + crates/agent_servers/Cargo.toml | 1 + crates/agent_servers/src/claude.rs | 134 ++++++++++++----------------- 3 files changed, 58 insertions(+), 78 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d1ea9cc32f..43a74fe687 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -168,6 +168,7 @@ dependencies = [ "nix 0.29.0", "paths", "project", + "rand 0.8.5", "schemars", "serde", "serde_json", diff --git a/crates/agent_servers/Cargo.toml b/crates/agent_servers/Cargo.toml index 4371f7684d..023799bc6c 100644 --- a/crates/agent_servers/Cargo.toml +++ b/crates/agent_servers/Cargo.toml @@ -29,6 +29,7 @@ itertools.workspace = true log.workspace = true paths.workspace = true project.workspace = true +rand.workspace = true schemars.workspace = true serde.workspace = true serde_json.workspace = true diff --git a/crates/agent_servers/src/claude.rs b/crates/agent_servers/src/claude.rs index d63d8c43cf..9e10542a6d 100644 --- a/crates/agent_servers/src/claude.rs +++ b/crates/agent_servers/src/claude.rs @@ -9,7 +9,6 @@ use smol::process::Child; use std::cell::RefCell; use std::fmt::Display; use std::path::Path; -use std::pin::pin; use std::rc::Rc; use uuid::Uuid; @@ -66,19 +65,6 @@ impl AgentServer for ClaudeCode { } } -#[cfg(unix)] -fn send_interrupt(pid: libc::pid_t) -> anyhow::Result<()> { - let pid = nix::unistd::Pid::from_raw(pid); - - nix::sys::signal::kill(pid, nix::sys::signal::SIGINT) - .map_err(|e| anyhow!("Failed to interrupt process: {}", e)) -} - -#[cfg(windows)] -fn send_interrupt(_pid: i32) -> anyhow::Result<()> { - panic!("Cancel not implemented on Windows") -} - struct ClaudeAgentConnection { sessions: Rc>>, } @@ -127,7 +113,6 @@ impl AgentConnection for ClaudeAgentConnection { let (incoming_message_tx, mut incoming_message_rx) = mpsc::unbounded(); let (outgoing_tx, outgoing_rx) = mpsc::unbounded(); - let (cancel_tx, mut cancel_rx) = mpsc::unbounded::>>(); let session_id = acp::SessionId(Uuid::new_v4().to_string().into()); @@ -137,50 +122,28 @@ impl AgentConnection for ClaudeAgentConnection { let session_id = session_id.clone(); async move { let mut outgoing_rx = Some(outgoing_rx); - let mut mode = ClaudeSessionMode::Start; - loop { - let mut child = spawn_claude( - &command, - mode, - session_id.clone(), - &mcp_config_path, - &cwd, - ) - .await?; - mode = ClaudeSessionMode::Resume; + let mut child = spawn_claude( + &command, + ClaudeSessionMode::Start, + session_id.clone(), + &mcp_config_path, + &cwd, + ) + .await?; - let pid = child.id(); - log::trace!("Spawned (pid: {})", pid); + let pid = child.id(); + log::trace!("Spawned (pid: {})", pid); - let mut io_fut = pin!( - ClaudeAgentSession::handle_io( - outgoing_rx.take().unwrap(), - incoming_message_tx.clone(), - child.stdin.take().unwrap(), - child.stdout.take().unwrap(), - ) - .fuse() - ); + ClaudeAgentSession::handle_io( + outgoing_rx.take().unwrap(), + incoming_message_tx.clone(), + child.stdin.take().unwrap(), + child.stdout.take().unwrap(), + ) + .await?; - select_biased! { - done_tx = cancel_rx.next() => { - if let Some(done_tx) = done_tx { - log::trace!("Interrupted (pid: {})", pid); - let result = send_interrupt(pid as i32); - outgoing_rx.replace(io_fut.await?); - done_tx.send(result).log_err(); - continue; - } - } - result = io_fut => { - result?; - } - } - - log::trace!("Stopped (pid: {})", pid); - break; - } + log::trace!("Stopped (pid: {})", pid); drop(mcp_config_path); anyhow::Ok(()) @@ -213,7 +176,6 @@ impl AgentConnection for ClaudeAgentConnection { let session = ClaudeAgentSession { outgoing_tx, end_turn_tx, - cancel_tx, _handler_task: handler_task, _mcp_server: Some(permission_mcp_server), }; @@ -278,37 +240,24 @@ impl AgentConnection for ClaudeAgentConnection { }) } - fn cancel(&self, session_id: &acp::SessionId, cx: &mut App) { + fn cancel(&self, session_id: &acp::SessionId, _cx: &mut App) { let sessions = self.sessions.borrow(); let Some(session) = sessions.get(&session_id) else { log::warn!("Attempted to cancel nonexistent session {}", session_id); return; }; - let (done_tx, done_rx) = oneshot::channel(); - if session - .cancel_tx - .unbounded_send(done_tx) - .log_err() - .is_some() - { - let end_turn_tx = session.end_turn_tx.clone(); - cx.foreground_executor() - .spawn(async move { - done_rx.await??; - if let Some(end_turn_tx) = end_turn_tx.take() { - end_turn_tx.send(Ok(())).ok(); - } - anyhow::Ok(()) - }) - .detach_and_log_err(cx); - } + session + .outgoing_tx + .unbounded_send(SdkMessage::new_interrupt_message()) + .log_err(); } } #[derive(Clone, Copy)] enum ClaudeSessionMode { Start, + #[expect(dead_code)] Resume, } @@ -364,7 +313,6 @@ async fn spawn_claude( struct ClaudeAgentSession { outgoing_tx: UnboundedSender, end_turn_tx: Rc>>>>, - cancel_tx: UnboundedSender>>, _mcp_server: Option, _handler_task: Task<()>, } @@ -377,6 +325,8 @@ impl ClaudeAgentSession { cx: &mut AsyncApp, ) { match message { + // we should only be sending these out, they don't need to be in the thread + SdkMessage::ControlRequest { .. } => {} SdkMessage::Assistant { message, session_id: _, @@ -643,14 +593,12 @@ enum SdkMessage { #[serde(skip_serializing_if = "Option::is_none")] session_id: Option, }, - // A user message User { message: Message, // from Anthropic SDK #[serde(skip_serializing_if = "Option::is_none")] session_id: Option, }, - // Emitted as the last message in a conversation Result { subtype: ResultErrorType, @@ -675,6 +623,18 @@ enum SdkMessage { #[serde(rename = "permissionMode")] permission_mode: PermissionMode, }, + /// Messages used to control the conversation, outside of chat messages to the model + ControlRequest { + request_id: String, + request: ControlRequest, + }, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(tag = "subtype", rename_all = "snake_case")] +enum ControlRequest { + /// Cancel the current conversation + Interrupt, } #[derive(Debug, Clone, Serialize, Deserialize)] @@ -695,6 +655,24 @@ impl Display for ResultErrorType { } } +impl SdkMessage { + fn new_interrupt_message() -> Self { + use rand::Rng; + // In the Claude Code TS SDK they just generate a random 12 character string, + // `Math.random().toString(36).substring(2, 15)` + let request_id = rand::thread_rng() + .sample_iter(&rand::distributions::Alphanumeric) + .take(12) + .map(char::from) + .collect(); + + Self::ControlRequest { + request_id, + request: ControlRequest::Interrupt, + } + } +} + #[derive(Debug, Clone, Serialize, Deserialize)] struct McpServer { name: String, From c995d45bd9ed6411df151ca89fd84351d5d13290 Mon Sep 17 00:00:00 2001 From: Ben Brandt Date: Sun, 27 Jul 2025 15:58:02 +0200 Subject: [PATCH 0238/1052] agent_servers: Include result text in Claude error messages (#35156) This will better surfaces issues that are classified as "success" but actually have a more meaningful error message attached. Release Notes: - N/A --- crates/agent_servers/src/claude.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/crates/agent_servers/src/claude.rs b/crates/agent_servers/src/claude.rs index 9e10542a6d..2e0eb271b6 100644 --- a/crates/agent_servers/src/claude.rs +++ b/crates/agent_servers/src/claude.rs @@ -414,11 +414,19 @@ impl ClaudeAgentSession { } } SdkMessage::Result { - is_error, subtype, .. + is_error, + subtype, + result, + .. } => { if let Some(end_turn_tx) = end_turn_tx.borrow_mut().take() { if is_error { - end_turn_tx.send(Err(anyhow!("Error: {subtype}"))).ok(); + end_turn_tx + .send(Err(anyhow!( + "Error: {}", + result.unwrap_or_else(|| subtype.to_string()) + ))) + .ok(); } else { end_turn_tx.send(Ok(())).ok(); } From e7b5d93b7c36da26631ccb1dc248934dc873511e Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Sun, 27 Jul 2025 14:06:18 -0300 Subject: [PATCH 0239/1052] docs: Add more improvements to the AI docs (#35160) Follow-up to https://github.com/zed-industries/zed/pull/35133 with some more findings upon re-reviewing it again. Release Notes: - N/A --- docs/src/ai/agent-settings.md | 13 ++++++++----- docs/src/ai/billing.md | 7 ++++--- docs/src/ai/configuration.md | 2 +- docs/src/ai/llm-providers.md | 6 +++--- docs/src/ai/mcp.md | 2 +- docs/src/ai/overview.md | 4 +--- 6 files changed, 18 insertions(+), 16 deletions(-) diff --git a/docs/src/ai/agent-settings.md b/docs/src/ai/agent-settings.md index 60702e42fc..315ae21929 100644 --- a/docs/src/ai/agent-settings.md +++ b/docs/src/ai/agent-settings.md @@ -6,13 +6,12 @@ Learn about all the settings you can customize in Zed's Agent Panel. ### Default Model {#default-model} -If you're using Zed's hosted LLM service, it sets `claude-sonnet-4` as the default model. -But if you're not subscribed to the hosted service or simply just want to change it, you can do it so either via the model dropdown in the Agent Panel's bottom-right corner or by manually editing the `default_model` object in your settings: +If you're using [Zed's hosted LLM service](./plans-and-usage.md), it sets `claude-sonnet-4` as the default model. +But if you're not subscribed to it or simply just want to change it, you can do it so either via the model dropdown in the Agent Panel's bottom-right corner or by manually editing the `default_model` object in your settings: ```json { "agent": { - "version": "2", "default_model": { "provider": "zed.dev", "model": "gpt-4o" @@ -32,7 +31,6 @@ Assign distinct and specific models for the following AI-powered features in Zed ```json { "agent": { - "version": "2", "default_model": { "provider": "zed.dev", "model": "claude-sonnet-4" @@ -53,7 +51,7 @@ Assign distinct and specific models for the following AI-powered features in Zed } ``` -> If a model isn't set for one of these features, they automatically fall back to using the default model. +> If a custom model isn't set for one of these features, they automatically fall back to using the default model. ### Alternative Models for Inline Assists {#alternative-assists} @@ -128,6 +126,7 @@ You can choose between `thread` (the default) and `text_thread`: ### Auto-run Commands Control whether you want to allow the agent to run commands without asking you for permission. +The default value is `false`. ```json { @@ -142,6 +141,7 @@ Control whether you want to allow the agent to run commands without asking you f ### Single-file Review Control whether you want to see review actions (accept & reject) in single buffers after the agent is done performing edits. +The default value is `false`. ```json { @@ -158,6 +158,7 @@ When set to false, these controls are only available in the multibuffer review t ### Sound Notification Control whether you want to hear a notification sound when the agent is done generating changes or needs your input. +The default value is `false`. ```json { @@ -173,6 +174,7 @@ Control whether you want to hear a notification sound when the agent is done gen Make a modifier (`cmd` on macOS, `ctrl` on Linux) required to send messages. This is encouraged for more thoughtful prompt crafting. +The default value is `false`. ```json { @@ -213,6 +215,7 @@ It is set to `true` by default, but if set to false, the card will be fully coll ### Feedback Controls Control whether you want to see the thumbs up/down buttons to give Zed feedback about the agent's performance. +The default value is `true`. ```json { diff --git a/docs/src/ai/billing.md b/docs/src/ai/billing.md index e8587e1fef..d519b136ae 100644 --- a/docs/src/ai/billing.md +++ b/docs/src/ai/billing.md @@ -1,7 +1,7 @@ # Billing We use Stripe as our billing and payments provider. All Pro plans require payment via credit card. -For invoice-based billing, a Business plan is required. Contact sales@zed.dev for more information. +For invoice-based billing, a Business plan is required. Contact [sales@zed.dev](mailto:sales@zed.dev) for more information. ## Settings {#settings} @@ -12,7 +12,8 @@ Clicking the button under Account Settings will navigate you to Stripe’s secur Zed is billed on a monthly basis based on the date you initially subscribe. -We’ll also bill in-month for additional prompts used beyond your plan’s prompt limit, if usage exceeds $20 before month end. See [usage-based pricing](./plans-and-usage.md#ubp) for more. +We’ll also bill in-month for additional prompts used beyond your plan’s prompt limit, if usage exceeds $20 before month end. +See [usage-based pricing](./plans-and-usage.md#ubp) for more. ## Invoice History {#invoice-history} @@ -33,4 +34,4 @@ Zed partners with [Sphere](https://www.getsphere.com/) to calculate indirect tax If you have a VAT/GST ID, you can add it at [zed.dev/account](https://zed.dev/account) by clicking "Manage" on your subscription. Check the box that denotes you as a business. Please note that changes to VAT/GST IDs and address will **only** affect future invoices — **we cannot modify historical invoices**. -Questions or issues can be directed to billing-support@zed.dev. +Questions or issues can be directed to [billing-support@zed.dev](mailto:billing-support@zed.dev). diff --git a/docs/src/ai/configuration.md b/docs/src/ai/configuration.md index 13a0121712..d28a7e8ed0 100644 --- a/docs/src/ai/configuration.md +++ b/docs/src/ai/configuration.md @@ -6,7 +6,7 @@ When using AI in Zed, you can customize several aspects: 2. [Model parameters and usage](./agent-settings.md#model-settings) 3. [Interactions with the Agent Panel](./agent-settings.md#agent-panel-settings) -## Turning AI off entirely +## Turning AI Off Entirely We want to respect users who want to use Zed without interacting with AI whatsoever. To do that, add the following key to your `settings.json`: diff --git a/docs/src/ai/llm-providers.md b/docs/src/ai/llm-providers.md index 227bb23983..cb55c1c94e 100644 --- a/docs/src/ai/llm-providers.md +++ b/docs/src/ai/llm-providers.md @@ -2,13 +2,13 @@ To use AI in Zed, you need to have at least one large language model provider set up. -You can do that by either subscribing to [one of Zed's plans](./subscription.md), or by using API keys you already have for the supported providers. +You can do that by either subscribing to [one of Zed's plans](./plans-and-usage.md), or by using API keys you already have for the supported providers. ## Use Your Own Keys {#use-your-own-keys} If you already have an API key for an existing LLM provider—say Anthropic or OpenAI, for example—you can insert them in Zed and use the Agent Panel **_for free_**. -You can add your API key to a given provider either via the Agent Panel's settings UI or the `settings.json` directly, through the `language_models` key. +You can add your API key to a given provider either via the Agent Panel's settings UI or directly via the `settings.json` through the `language_models` key. ## Supported Providers @@ -25,7 +25,7 @@ Here's all the supported LLM providers for which you can use your own API keys: | [Mistral](#mistral) | ✅ | | [Ollama](#ollama) | ✅ | | [OpenAI](#openai) | ✅ | -| [OpenAI API Compatible](#openai-api-compatible) | 🚫 | +| [OpenAI API Compatible](#openai-api-compatible) | ✅ | | [OpenRouter](#openrouter) | ✅ | | [Vercel](#vercel-v0) | ✅ | | [xAI](#xai) | ✅ | diff --git a/docs/src/ai/mcp.md b/docs/src/ai/mcp.md index 95929b2d7e..5aef3d3d72 100644 --- a/docs/src/ai/mcp.md +++ b/docs/src/ai/mcp.md @@ -75,7 +75,7 @@ Mentioning your MCP server by name helps the agent pick it up. If you want to ensure a given server will be used, you can create [a custom profile](./agent-panel.md#custom-profiles) by turning off the built-in tools (either all of them or the ones that would cause conflicts) and turning on only the tools coming from the MCP server. -As an example, [the Dagger team suggests](https://container-use.com/agent-integrations#add-container-use-agent-profile-optional) doing that with their [Container Use MCP server](https://zed.dev/extensions/container-use-mcp-server): +As an example, [the Dagger team suggests](https://container-use.com/agent-integrations#add-container-use-agent-profile-optional) doing that with their [Container Use MCP server](https://zed.dev/extensions/mcp-server-container-use): ```json "agent": { diff --git a/docs/src/ai/overview.md b/docs/src/ai/overview.md index ff3dd84fce..6f081cb243 100644 --- a/docs/src/ai/overview.md +++ b/docs/src/ai/overview.md @@ -6,9 +6,7 @@ Learn how to get started using AI with Zed and all its capabilities. - [Configuration](./configuration.md): Learn how to set up different language model providers like Anthropic, OpenAI, Ollama, Google AI, and more. -- [Models](./models.md): Learn about the various language models available in Zed. - -- [Subscription](./subscription.md): Learn about Zed's subscriptions and other billing-related information. +- [Subscription](./subscription.md): Learn about Zed's hosted model service and other billing-related information. - [Privacy and Security](./privacy-and-security.md): Understand how Zed handles privacy and security with AI features. From 2a0aad0aaae231736d75fb1add15fc351bf8504c Mon Sep 17 00:00:00 2001 From: lowlandghost Date: Sun, 27 Jul 2025 13:56:55 -0400 Subject: [PATCH 0240/1052] Docs: Fix invalid JSON syntax in Visual Customizations - Editor Scrollbar and Minimap (#35159) I was on the [Visual Customiztions - Editor Scrollbar](https://zed.dev/docs/visual-customization#editor-scrollbar) section of the docs, and copy and pasted the code block into my personal Zed settings and saw there was a syntax error. This is a PR to add a missing comma and fix the syntax error in the docs. First time contributing, please let me know if I missed any steps/important info. Release Notes: - N/A --- docs/src/visual-customization.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/visual-customization.md b/docs/src/visual-customization.md index 197c9b80f8..8b307d97d5 100644 --- a/docs/src/visual-customization.md +++ b/docs/src/visual-customization.md @@ -267,7 +267,7 @@ TBD: Centered layout related settings "display_in": "active_editor", // Where to show (active_editor, all_editor) "thumb": "always", // When to show thumb (always, hover) "thumb_border": "left_open", // Thumb border (left_open, right_open, full, none) - "max_width_columns": 80 // Maximum width of minimap + "max_width_columns": 80, // Maximum width of minimap "current_line_highlight": null // Highlight current line (null, line, gutter) }, From ee9b60e60ce5058fc87cdae64e5948d4579048b3 Mon Sep 17 00:00:00 2001 From: marius851000 Date: Mon, 28 Jul 2025 10:36:00 +0200 Subject: [PATCH 0241/1052] gpui: Fix inset being used in SSD on Wayland (#35151) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #31330 Second parts of https://github.com/zed-industries/zed/pull/31335 While the initial fix set the inset during drawing, that was after the window was resized, resulting in needing to manually resize the window for the change to properly take effect. I updated the code to not make the Wayland renderer rely on `client_inset` being updated by the API user to match with the decoration mode (given it is supposed to only be used when using CSD). I might later try to generalize that, and eventually make the client_inset only defined on window creation (instead of inside `client_side_decorations`, that would need testing on X) (and maybe also allow configuration for shadow, but it’s not something I need). Release Notes: - Fixed switching from client side decoration to server side decoration on Wayland --- .../gpui/src/platform/linux/wayland/window.rs | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/crates/gpui/src/platform/linux/wayland/window.rs b/crates/gpui/src/platform/linux/wayland/window.rs index 255ae9c372..2b2207e22c 100644 --- a/crates/gpui/src/platform/linux/wayland/window.rs +++ b/crates/gpui/src/platform/linux/wayland/window.rs @@ -111,7 +111,7 @@ pub struct WaylandWindowState { resize_throttle: bool, in_progress_window_controls: Option, window_controls: WindowControls, - inset: Option, + client_inset: Option, } #[derive(Clone)] @@ -186,7 +186,7 @@ impl WaylandWindowState { hovered: false, in_progress_window_controls: None, window_controls: WindowControls::default(), - inset: None, + client_inset: None, }) } @@ -211,6 +211,13 @@ impl WaylandWindowState { self.display = current_output; scale } + + pub fn inset(&self) -> Pixels { + match self.decorations { + WindowDecorations::Server => px(0.0), + WindowDecorations::Client => self.client_inset.unwrap_or(px(0.0)), + } + } } pub(crate) struct WaylandWindow(pub WaylandWindowStatePtr); @@ -380,7 +387,7 @@ impl WaylandWindowStatePtr { configure.size = if got_unmaximized { Some(state.window_bounds.size) } else { - compute_outer_size(state.inset, configure.size, state.tiling) + compute_outer_size(state.inset(), configure.size, state.tiling) }; if let Some(size) = configure.size { state.window_bounds = Bounds { @@ -400,7 +407,7 @@ impl WaylandWindowStatePtr { let window_geometry = inset_by_tiling( state.bounds.map_origin(|_| px(0.0)), - state.inset.unwrap_or(px(0.0)), + state.inset(), state.tiling, ) .map(|v| v.0 as i32) @@ -818,7 +825,7 @@ impl PlatformWindow for WaylandWindow { } else if state.maximized { WindowBounds::Maximized(state.window_bounds) } else { - let inset = state.inset.unwrap_or(px(0.)); + let inset = state.inset(); drop(state); WindowBounds::Windowed(self.bounds().inset(inset)) } @@ -1073,8 +1080,8 @@ impl PlatformWindow for WaylandWindow { fn set_client_inset(&self, inset: Pixels) { let mut state = self.borrow_mut(); - if Some(inset) != state.inset { - state.inset = Some(inset); + if Some(inset) != state.client_inset { + state.client_inset = Some(inset); update_window(state); } } @@ -1094,9 +1101,7 @@ fn update_window(mut state: RefMut) { state.renderer.update_transparency(!opaque); let mut opaque_area = state.window_bounds.map(|v| v.0 as i32); - if let Some(inset) = state.inset { - opaque_area.inset(inset.0 as i32); - } + opaque_area.inset(state.inset().0 as i32); let region = state .globals @@ -1169,12 +1174,10 @@ impl ResizeEdge { /// updating to account for the client decorations. But that's not the area we want to render /// to, due to our intrusize CSD. So, here we calculate the 'actual' size, by adding back in the insets fn compute_outer_size( - inset: Option, + inset: Pixels, new_size: Option>, tiling: Tiling, ) -> Option> { - let Some(inset) = inset else { return new_size }; - new_size.map(|mut new_size| { if !tiling.top { new_size.height += inset; From 45b3af713e2a6b739a233a4dd3e6e795c28bf6ac Mon Sep 17 00:00:00 2001 From: Smit Barmase Date: Mon, 28 Jul 2025 14:31:27 +0530 Subject: [PATCH 0242/1052] doc: Add docs for Forcing X11 scale factor (#35181) Associated PR: https://github.com/zed-industries/zed/pull/34265 Recent Discussion: https://github.com/zed-industries/zed/issues/33987#issuecomment-3125936302 Release Notes: - N/A --- docs/src/linux.md | 75 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/docs/src/linux.md b/docs/src/linux.md index ca65da2969..309354de6d 100644 --- a/docs/src/linux.md +++ b/docs/src/linux.md @@ -294,3 +294,78 @@ If your system uses PipeWire: ``` 3. **Restart your system** + +### Forcing X11 scale factor + +On X11 systems, Zed automatically detects the appropriate scale factor for high-DPI displays. The scale factor is determined using the following priority order: + +1. `GPUI_X11_SCALE_FACTOR` environment variable (if set) +2. `Xft.dpi` from X resources database (xrdb) +3. Automatic detection via RandR based on monitor resolution and physical size + +If you want to customize the scale factor beyond what Zed detects automatically, you have several options: + +#### Check your current scale factor + +You can verify if you have `Xft.dpi` set: + +```sh +xrdb -query | grep Xft.dpi +``` + +If this command returns no output, Zed is using RandR (X11's monitor management extension) to automatically calculate the scale factor based on your monitor's reported resolution and physical dimensions. + +#### Option 1: Set Xft.dpi (X Resources Database) + +`Xft.dpi` is a standard X11 setting that many applications use for consistent font and UI scaling. Setting this ensures Zed scales the same way as other X11 applications that respect this setting. + +Edit or create the `~/.Xresources` file: + +```sh +vim ~/.Xresources +``` + +Add this line with your desired DPI: + +```sh +Xft.dpi: 96 +``` + +Common DPI values: + +- `96` for standard 1x scaling +- `144` for 1.5x scaling +- `192` for 2x scaling +- `288` for 3x scaling + +Load the configuration: + +```sh +xrdb -merge ~/.Xresources +``` + +Restart Zed for the changes to take effect. + +#### Option 2: Use the GPUI_X11_SCALE_FACTOR environment variable + +This Zed-specific environment variable directly sets the scale factor, bypassing all automatic detection. + +```sh +GPUI_X11_SCALE_FACTOR=1.5 zed +``` + +You can use decimal values (e.g., `1.25`, `1.5`, `2.0`) or set `GPUI_X11_SCALE_FACTOR=randr` to force RandR-based detection even when `Xft.dpi` is set. + +To make this permanent, add it to your shell profile or desktop entry. + +#### Option 3: Adjust system-wide RandR DPI + +This changes the reported DPI for your entire X11 session, affecting how RandR calculates scaling for all applications that use it. + +Add this to your `.xprofile` or `.xinitrc`: + +```sh +xrandr --dpi 192 +``` + +Replace `192` with your desired DPI value. This affects the system globally and will be used by Zed's automatic RandR detection when `Xft.dpi` is not set. From 2566acc2e746dac016d42ea4de1fbdec2b7da252 Mon Sep 17 00:00:00 2001 From: Robert Fratto Date: Mon, 28 Jul 2025 06:40:46 -0400 Subject: [PATCH 0243/1052] go: Support benchmarks named "Benchmark" (#35167) The regular expression for benchmarks was enforcing using a suffix (e.g., `BenchmarkFoo`), but `Benchmark` is a valid benchmark name, just as `Test` is a valid test name, and `Fuzz` is a valid fuzz test name. Release Notes: - Add support for running Go benchmarks named "Benchmark" --- crates/languages/src/go/runnables.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/languages/src/go/runnables.scm b/crates/languages/src/go/runnables.scm index 49e112b860..6418cd04d8 100644 --- a/crates/languages/src/go/runnables.scm +++ b/crates/languages/src/go/runnables.scm @@ -69,7 +69,7 @@ ( ( (function_declaration name: (_) @run @_name - (#match? @_name "^Benchmark.+")) + (#match? @_name "^Benchmark.*")) ) @_ (#set! tag go-benchmark) ) From e38f5759c4b93607e057abba49bd75998e579002 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Mon, 28 Jul 2025 14:01:00 +0200 Subject: [PATCH 0244/1052] ci: Use cargo update --locked instead of --frozen (#35192) This fixes false positives when e.g. bumping git deps Release Notes: - N/A --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 66a2237c29..a9ef1531e7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -271,7 +271,7 @@ jobs: - name: Check that Cargo.lock is up to date run: | - cargo update --frozen --workspace + cargo update --locked --workspace - name: cargo clippy run: ./script/clippy From 3ad0546b0d4fb12334eac49631f682caf85ff83a Mon Sep 17 00:00:00 2001 From: Maksim Bondarenkov <119937608+ognevny@users.noreply.github.com> Date: Mon, 28 Jul 2025 12:02:48 +0000 Subject: [PATCH 0245/1052] Re-add `TestScreenCaptureStream` implementation for `mock_client` to fix FreeBSD and MinGW builds (#35191) The implementation was removed in #31506. re-added it to match the current implementation from `gpui::test` Closes #35189 Release Notes: - N/A --- .../src/mock_client/participant.rs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/crates/livekit_client/src/mock_client/participant.rs b/crates/livekit_client/src/mock_client/participant.rs index 991d10bd50..033808cbb5 100644 --- a/crates/livekit_client/src/mock_client/participant.rs +++ b/crates/livekit_client/src/mock_client/participant.rs @@ -5,7 +5,9 @@ use crate::{ }; use anyhow::Result; use collections::HashMap; -use gpui::{AsyncApp, ScreenCaptureSource, ScreenCaptureStream, TestScreenCaptureStream}; +use gpui::{ + AsyncApp, DevicePixels, ScreenCaptureSource, ScreenCaptureStream, SourceMetadata, size, +}; #[derive(Clone, Debug)] pub struct LocalParticipant { @@ -119,3 +121,16 @@ impl RemoteParticipant { self.identity.clone() } } + +struct TestScreenCaptureStream; + +impl ScreenCaptureStream for TestScreenCaptureStream { + fn metadata(&self) -> Result { + Ok(SourceMetadata { + id: 0, + is_main: None, + label: None, + resolution: size(DevicePixels(1), DevicePixels(1)), + }) + } +} From cef7d53607381975ea00d6302d8a9aab3c40eb1f Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Mon, 28 Jul 2025 10:01:31 -0300 Subject: [PATCH 0246/1052] collab: Refine call buttons design (#35007) Making icons consistent, adjusting spacing, and moving the "Leave Call" button to be the very last, which makes more sense to me than the "Share" button being the last. Sharing your project is still part of the call, so in the left edge of the button strip is where, conceptually, the option to end the call should be, I think! Release Notes: - N/A --- assets/icons/audio_off.svg | 8 ++- assets/icons/audio_on.svg | 6 +- assets/icons/exit.svg | 11 ++-- assets/icons/mic.svg | 6 +- assets/icons/mic_mute.svg | 9 ++- assets/icons/screen.svg | 11 ++-- crates/title_bar/src/collab.rs | 60 +++++++++---------- .../ui/src/components/button/split_button.rs | 12 +++- 8 files changed, 71 insertions(+), 52 deletions(-) diff --git a/assets/icons/audio_off.svg b/assets/icons/audio_off.svg index 93b98471ca..dfb5a1c458 100644 --- a/assets/icons/audio_off.svg +++ b/assets/icons/audio_off.svg @@ -1 +1,7 @@ - + + + + + + + diff --git a/assets/icons/audio_on.svg b/assets/icons/audio_on.svg index 42310ea32c..d1bef0d337 100644 --- a/assets/icons/audio_on.svg +++ b/assets/icons/audio_on.svg @@ -1 +1,5 @@ - + + + + + diff --git a/assets/icons/exit.svg b/assets/icons/exit.svg index 2cc6ce120d..1ff9d78824 100644 --- a/assets/icons/exit.svg +++ b/assets/icons/exit.svg @@ -1,8 +1,5 @@ - - + + + + diff --git a/assets/icons/mic.svg b/assets/icons/mic.svg index 01f4c9bf66..1d9c5bc9ed 100644 --- a/assets/icons/mic.svg +++ b/assets/icons/mic.svg @@ -1,3 +1,5 @@ - - + + + + diff --git a/assets/icons/mic_mute.svg b/assets/icons/mic_mute.svg index fe5f8201cc..8c61ae2f1c 100644 --- a/assets/icons/mic_mute.svg +++ b/assets/icons/mic_mute.svg @@ -1,3 +1,8 @@ - - + + + + + + + diff --git a/assets/icons/screen.svg b/assets/icons/screen.svg index ad252e64cf..4b686b58f9 100644 --- a/assets/icons/screen.svg +++ b/assets/icons/screen.svg @@ -1,8 +1,5 @@ - - + + + + diff --git a/crates/title_bar/src/collab.rs b/crates/title_bar/src/collab.rs index 056c981ccf..d026b4de14 100644 --- a/crates/title_bar/src/collab.rs +++ b/crates/title_bar/src/collab.rs @@ -11,8 +11,8 @@ use gpui::{App, Task, Window, actions}; use rpc::proto::{self}; use theme::ActiveTheme; use ui::{ - Avatar, AvatarAudioStatusIndicator, ContextMenu, ContextMenuItem, Divider, Facepile, - PopoverMenu, SplitButton, SplitButtonStyle, TintColor, Tooltip, prelude::*, + Avatar, AvatarAudioStatusIndicator, ContextMenu, ContextMenuItem, Divider, DividerColor, + Facepile, PopoverMenu, SplitButton, SplitButtonStyle, TintColor, Tooltip, prelude::*, }; use util::maybe; use workspace::notifications::DetachAndPromptErr; @@ -343,6 +343,24 @@ impl TitleBar { let mut children = Vec::new(); + children.push( + h_flex() + .gap_1() + .child( + IconButton::new("leave-call", IconName::Exit) + .style(ButtonStyle::Subtle) + .tooltip(Tooltip::text("Leave Call")) + .icon_size(IconSize::Small) + .on_click(move |_, _window, cx| { + ActiveCall::global(cx) + .update(cx, |call, cx| call.hang_up(cx)) + .detach_and_log_err(cx); + }), + ) + .child(Divider::vertical().color(DividerColor::Border)) + .into_any_element(), + ); + if is_local && can_share_projects && !is_connecting_to_project { children.push( Button::new( @@ -369,32 +387,14 @@ impl TitleBar { ); } - children.push( - div() - .pr_2() - .child( - IconButton::new("leave-call", ui::IconName::Exit) - .style(ButtonStyle::Subtle) - .tooltip(Tooltip::text("Leave call")) - .icon_size(IconSize::Small) - .on_click(move |_, _window, cx| { - ActiveCall::global(cx) - .update(cx, |call, cx| call.hang_up(cx)) - .detach_and_log_err(cx); - }), - ) - .child(Divider::vertical()) - .into_any_element(), - ); - if can_use_microphone { children.push( IconButton::new( "mute-microphone", if is_muted { - ui::IconName::MicMute + IconName::MicMute } else { - ui::IconName::Mic + IconName::Mic }, ) .tooltip(move |window, cx| { @@ -429,9 +429,9 @@ impl TitleBar { IconButton::new( "mute-sound", if is_deafened { - ui::IconName::AudioOff + IconName::AudioOff } else { - ui::IconName::AudioOn + IconName::AudioOn }, ) .style(ButtonStyle::Subtle) @@ -462,7 +462,7 @@ impl TitleBar { ); if can_use_microphone && screen_sharing_supported { - let trigger = IconButton::new("screen-share", ui::IconName::Screen) + let trigger = IconButton::new("screen-share", IconName::Screen) .style(ButtonStyle::Subtle) .icon_size(IconSize::Small) .toggle_state(is_screen_sharing) @@ -498,7 +498,7 @@ impl TitleBar { trigger.render(window, cx), self.render_screen_list().into_any_element(), ) - .style(SplitButtonStyle::Outlined) + .style(SplitButtonStyle::Transparent) .into_any_element(), ); } @@ -513,11 +513,11 @@ impl TitleBar { .with_handle(self.screen_share_popover_handle.clone()) .trigger( ui::ButtonLike::new_rounded_right("screen-share-screen-list-trigger") - .layer(ui::ElevationIndex::ModalSurface) - .size(ui::ButtonSize::None) .child( - div() - .px_1() + h_flex() + .mx_neg_0p5() + .h_full() + .justify_center() .child(Icon::new(IconName::ChevronDownSmall).size(IconSize::XSmall)), ) .toggle_state(self.screen_share_popover_handle.is_deployed()), diff --git a/crates/ui/src/components/button/split_button.rs b/crates/ui/src/components/button/split_button.rs index a7fa2106d1..14b9fd153c 100644 --- a/crates/ui/src/components/button/split_button.rs +++ b/crates/ui/src/components/button/split_button.rs @@ -12,6 +12,7 @@ use super::ButtonLike; pub enum SplitButtonStyle { Filled, Outlined, + Transparent, } /// /// A button with two parts: a primary action on the left and a secondary action on the right. @@ -44,10 +45,17 @@ impl SplitButton { impl RenderOnce for SplitButton { fn render(self, _window: &mut Window, cx: &mut App) -> impl IntoElement { + let is_filled_or_outlined = matches!( + self.style, + SplitButtonStyle::Filled | SplitButtonStyle::Outlined + ); + h_flex() .rounded_sm() - .border_1() - .border_color(cx.theme().colors().border.opacity(0.5)) + .when(is_filled_or_outlined, |this| { + this.border_1() + .border_color(cx.theme().colors().border.opacity(0.8)) + }) .child(div().flex_grow().child(self.left)) .child( div() From 4aae7aed931cd3b40989f869875243842fd292ca Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Mon, 28 Jul 2025 15:14:36 +0200 Subject: [PATCH 0247/1052] debugger: Fix not being able to stop a Go debug session when no breakpoints were ever hit (#35190) Fixes #35030 Release Notes: - debugger: Fixed a bug where a Go debug session could not be stopped if no breakpoint was ever hit. --- Cargo.lock | 2 +- Cargo.toml | 2 +- crates/debugger_ui/src/tests/debugger_panel.rs | 2 +- crates/project/src/debugger/dap_command.rs | 8 ++++---- crates/project/src/debugger/session.rs | 11 +++-------- crates/proto/proto/debugger.proto | 18 +++++++++--------- 6 files changed, 19 insertions(+), 24 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 43a74fe687..5f746a02fa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4258,7 +4258,7 @@ dependencies = [ [[package]] name = "dap-types" version = "0.0.1" -source = "git+https://github.com/zed-industries/dap-types?rev=7f39295b441614ca9dbf44293e53c32f666897f9#7f39295b441614ca9dbf44293e53c32f666897f9" +source = "git+https://github.com/zed-industries/dap-types?rev=1b461b310481d01e02b2603c16d7144b926339f8#1b461b310481d01e02b2603c16d7144b926339f8" dependencies = [ "schemars", "serde", diff --git a/Cargo.toml b/Cargo.toml index ea01003f36..39b60dda01 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -460,7 +460,7 @@ core-video = { version = "0.4.3", features = ["metal"] } cpal = "0.16" criterion = { version = "0.5", features = ["html_reports"] } ctor = "0.4.0" -dap-types = { git = "https://github.com/zed-industries/dap-types", rev = "7f39295b441614ca9dbf44293e53c32f666897f9" } +dap-types = { git = "https://github.com/zed-industries/dap-types", rev = "1b461b310481d01e02b2603c16d7144b926339f8" } dashmap = "6.0" derive_more = "0.99.17" dirs = "4.0" diff --git a/crates/debugger_ui/src/tests/debugger_panel.rs b/crates/debugger_ui/src/tests/debugger_panel.rs index 505df09cfb..6180831ea9 100644 --- a/crates/debugger_ui/src/tests/debugger_panel.rs +++ b/crates/debugger_ui/src/tests/debugger_panel.rs @@ -918,7 +918,7 @@ async fn test_debug_panel_item_thread_status_reset_on_failure( .unwrap(); let client = session.update(cx, |session, _| session.adapter_client().unwrap()); - const THREAD_ID_NUM: u64 = 1; + const THREAD_ID_NUM: i64 = 1; client.on_request::(move |_, _| { Ok(dap::ThreadsResponse { diff --git a/crates/project/src/debugger/dap_command.rs b/crates/project/src/debugger/dap_command.rs index 1cb611680c..3be3192369 100644 --- a/crates/project/src/debugger/dap_command.rs +++ b/crates/project/src/debugger/dap_command.rs @@ -107,7 +107,7 @@ impl DapCommand for Arc { #[derive(Debug, Hash, PartialEq, Eq)] pub struct StepCommand { - pub thread_id: u64, + pub thread_id: i64, pub granularity: Option, pub single_thread: Option, } @@ -483,7 +483,7 @@ impl DapCommand for ContinueCommand { #[derive(Debug, Hash, PartialEq, Eq)] pub(crate) struct PauseCommand { - pub thread_id: u64, + pub thread_id: i64, } impl LocalDapCommand for PauseCommand { @@ -612,7 +612,7 @@ impl DapCommand for DisconnectCommand { #[derive(Debug, Hash, PartialEq, Eq)] pub(crate) struct TerminateThreadsCommand { - pub thread_ids: Option>, + pub thread_ids: Option>, } impl LocalDapCommand for TerminateThreadsCommand { @@ -1182,7 +1182,7 @@ impl DapCommand for LoadedSourcesCommand { #[derive(Debug, Clone, Hash, PartialEq, Eq)] pub(crate) struct StackTraceCommand { - pub thread_id: u64, + pub thread_id: i64, pub start_frame: Option, pub levels: Option, } diff --git a/crates/project/src/debugger/session.rs b/crates/project/src/debugger/session.rs index 1e296ac2ac..f60a7becf7 100644 --- a/crates/project/src/debugger/session.rs +++ b/crates/project/src/debugger/session.rs @@ -61,15 +61,10 @@ use worktree::Worktree; #[derive(Debug, Copy, Clone, Hash, PartialEq, PartialOrd, Ord, Eq)] #[repr(transparent)] -pub struct ThreadId(pub u64); +pub struct ThreadId(pub i64); -impl ThreadId { - pub const MIN: ThreadId = ThreadId(u64::MIN); - pub const MAX: ThreadId = ThreadId(u64::MAX); -} - -impl From for ThreadId { - fn from(id: u64) -> Self { +impl From for ThreadId { + fn from(id: i64) -> Self { Self(id) } } diff --git a/crates/proto/proto/debugger.proto b/crates/proto/proto/debugger.proto index 09abd4bf1c..c6f9c9f134 100644 --- a/crates/proto/proto/debugger.proto +++ b/crates/proto/proto/debugger.proto @@ -188,7 +188,7 @@ message DapSetVariableValueResponse { message DapPauseRequest { uint64 project_id = 1; uint64 client_id = 2; - uint64 thread_id = 3; + int64 thread_id = 3; } message DapDisconnectRequest { @@ -202,7 +202,7 @@ message DapDisconnectRequest { message DapTerminateThreadsRequest { uint64 project_id = 1; uint64 client_id = 2; - repeated uint64 thread_ids = 3; + repeated int64 thread_ids = 3; } message DapThreadsRequest { @@ -246,7 +246,7 @@ message IgnoreBreakpointState { message DapNextRequest { uint64 project_id = 1; uint64 client_id = 2; - uint64 thread_id = 3; + int64 thread_id = 3; optional bool single_thread = 4; optional SteppingGranularity granularity = 5; } @@ -254,7 +254,7 @@ message DapNextRequest { message DapStepInRequest { uint64 project_id = 1; uint64 client_id = 2; - uint64 thread_id = 3; + int64 thread_id = 3; optional uint64 target_id = 4; optional bool single_thread = 5; optional SteppingGranularity granularity = 6; @@ -263,7 +263,7 @@ message DapStepInRequest { message DapStepOutRequest { uint64 project_id = 1; uint64 client_id = 2; - uint64 thread_id = 3; + int64 thread_id = 3; optional bool single_thread = 4; optional SteppingGranularity granularity = 5; } @@ -271,7 +271,7 @@ message DapStepOutRequest { message DapStepBackRequest { uint64 project_id = 1; uint64 client_id = 2; - uint64 thread_id = 3; + int64 thread_id = 3; optional bool single_thread = 4; optional SteppingGranularity granularity = 5; } @@ -279,7 +279,7 @@ message DapStepBackRequest { message DapContinueRequest { uint64 project_id = 1; uint64 client_id = 2; - uint64 thread_id = 3; + int64 thread_id = 3; optional bool single_thread = 4; } @@ -311,7 +311,7 @@ message DapLoadedSourcesResponse { message DapStackTraceRequest { uint64 project_id = 1; uint64 client_id = 2; - uint64 thread_id = 3; + int64 thread_id = 3; optional uint64 start_frame = 4; optional uint64 stack_trace_levels = 5; } @@ -358,7 +358,7 @@ message DapVariable { } message DapThread { - uint64 id = 1; + int64 id = 1; string name = 2; } From 3a1b1847c1113d24afc663d03778758241718b00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=B0=8F=E7=99=BD?= <364772080@qq.com> Date: Mon, 28 Jul 2025 22:00:26 +0800 Subject: [PATCH 0248/1052] Fix debugger on Windows (#35180) Closes #33429 Release Notes: - N/A --- crates/project/src/debugger/dap_store.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/crates/project/src/debugger/dap_store.rs b/crates/project/src/debugger/dap_store.rs index d494088b13..6f834b5dc0 100644 --- a/crates/project/src/debugger/dap_store.rs +++ b/crates/project/src/debugger/dap_store.rs @@ -920,12 +920,22 @@ impl dap::adapters::DapDelegate for DapAdapterDelegate { self.console.unbounded_send(msg).ok(); } + #[cfg(not(target_os = "windows"))] async fn which(&self, command: &OsStr) -> Option { let worktree_abs_path = self.worktree.abs_path(); let shell_path = self.shell_env().await.get("PATH").cloned(); which::which_in(command, shell_path.as_ref(), worktree_abs_path).ok() } + #[cfg(target_os = "windows")] + async fn which(&self, command: &OsStr) -> Option { + // On Windows, `PATH` is handled differently from Unix. Windows generally expects users to modify the `PATH` themselves, + // and every program loads it directly from the system at startup. + // There's also no concept of a default shell on Windows, and you can't really retrieve one, so trying to get shell environment variables + // from a specific directory doesn’t make sense on Windows. + which::which(command).ok() + } + async fn shell_env(&self) -> HashMap { let task = self.load_shell_env_task.clone(); task.await.unwrap_or_default() From b02ae771cdb98b09c7b32e64c0c41e1fa75ef395 Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Mon, 28 Jul 2025 11:00:59 -0300 Subject: [PATCH 0249/1052] ai onboarding: Add first-open upsell card (#35199) Release Notes: - N/A --- crates/ai_onboarding/src/ai_onboarding.rs | 3 + crates/ai_onboarding/src/ai_upsell_card.rs | 201 +++++++++++++++++++++ 2 files changed, 204 insertions(+) create mode 100644 crates/ai_onboarding/src/ai_upsell_card.rs diff --git a/crates/ai_onboarding/src/ai_onboarding.rs b/crates/ai_onboarding/src/ai_onboarding.rs index 7fffb60ecc..3aec9c62cd 100644 --- a/crates/ai_onboarding/src/ai_onboarding.rs +++ b/crates/ai_onboarding/src/ai_onboarding.rs @@ -1,12 +1,14 @@ mod agent_api_keys_onboarding; mod agent_panel_onboarding_card; mod agent_panel_onboarding_content; +mod ai_upsell_card; mod edit_prediction_onboarding_content; mod young_account_banner; pub use agent_api_keys_onboarding::{ApiKeysWithProviders, ApiKeysWithoutProviders}; pub use agent_panel_onboarding_card::AgentPanelOnboardingCard; pub use agent_panel_onboarding_content::AgentPanelOnboarding; +pub use ai_upsell_card::AiUpsellCard; pub use edit_prediction_onboarding_content::EditPredictionOnboarding; pub use young_account_banner::YoungAccountBanner; @@ -54,6 +56,7 @@ impl RenderOnce for BulletItem { } } +#[derive(PartialEq)] pub enum SignInStatus { SignedIn, SigningIn, diff --git a/crates/ai_onboarding/src/ai_upsell_card.rs b/crates/ai_onboarding/src/ai_upsell_card.rs new file mode 100644 index 0000000000..041e0d87ec --- /dev/null +++ b/crates/ai_onboarding/src/ai_upsell_card.rs @@ -0,0 +1,201 @@ +use std::sync::Arc; + +use client::{Client, zed_urls}; +use gpui::{AnyElement, App, IntoElement, RenderOnce, Window}; +use ui::{Divider, List, Vector, VectorName, prelude::*}; + +use crate::{BulletItem, SignInStatus}; + +#[derive(IntoElement, RegisterComponent)] +pub struct AiUpsellCard { + pub sign_in_status: SignInStatus, + pub sign_in: Arc, +} + +impl AiUpsellCard { + pub fn new(client: Arc) -> Self { + let status = *client.status().borrow(); + + Self { + sign_in_status: status.into(), + sign_in: Arc::new(move |_window, cx| { + cx.spawn({ + let client = client.clone(); + async move |cx| { + client.authenticate_and_connect(true, cx).await; + } + }) + .detach(); + }), + } + } +} + +impl RenderOnce for AiUpsellCard { + fn render(self, _window: &mut Window, cx: &mut App) -> impl IntoElement { + let pro_section = v_flex() + .w_full() + .gap_1() + .child( + h_flex() + .gap_2() + .child( + Label::new("Pro") + .size(LabelSize::Small) + .color(Color::Accent) + .buffer_font(cx), + ) + .child(Divider::horizontal()), + ) + .child( + List::new() + .child(BulletItem::new("500 prompts with Claude models")) + .child(BulletItem::new( + "Unlimited edit predictions with Zeta, our open-source model", + )), + ); + + let free_section = v_flex() + .w_full() + .gap_1() + .child( + h_flex() + .gap_2() + .child( + Label::new("Free") + .size(LabelSize::Small) + .color(Color::Muted) + .buffer_font(cx), + ) + .child(Divider::horizontal()), + ) + .child( + List::new() + .child(BulletItem::new("50 prompts with the Claude models")) + .child(BulletItem::new("2,000 accepted edit predictions")), + ); + + let grid_bg = h_flex().absolute().inset_0().w_full().h(px(240.)).child( + Vector::new(VectorName::Grid, rems_from_px(500.), rems_from_px(240.)) + .color(Color::Custom(cx.theme().colors().border.opacity(0.05))), + ); + + let gradient_bg = div() + .absolute() + .inset_0() + .size_full() + .bg(gpui::linear_gradient( + 180., + gpui::linear_color_stop( + cx.theme().colors().elevated_surface_background.opacity(0.8), + 0., + ), + gpui::linear_color_stop( + cx.theme().colors().elevated_surface_background.opacity(0.), + 0.8, + ), + )); + + const DESCRIPTION: &str = "Zed offers a complete agentic experience, with robust editing and reviewing features to collaborate with AI."; + + let footer_buttons = match self.sign_in_status { + SignInStatus::SignedIn => v_flex() + .items_center() + .gap_1() + .child( + Button::new("sign_in", "Start 14-day Free Pro Trial") + .full_width() + .style(ButtonStyle::Tinted(ui::TintColor::Accent)) + .on_click(move |_, _window, cx| { + telemetry::event!("Start Trial Clicked", state = "post-sign-in"); + cx.open_url(&zed_urls::start_trial_url(cx)) + }), + ) + .child( + Label::new("No credit card required") + .size(LabelSize::Small) + .color(Color::Muted), + ) + .into_any_element(), + _ => Button::new("sign_in", "Sign In") + .full_width() + .style(ButtonStyle::Tinted(ui::TintColor::Accent)) + .on_click({ + let callback = self.sign_in.clone(); + move |_, window, cx| { + telemetry::event!("Start Trial Clicked", state = "pre-sign-in"); + callback(window, cx) + } + }) + .into_any_element(), + }; + + v_flex() + .relative() + .p_6() + .pt_4() + .border_1() + .border_color(cx.theme().colors().border) + .rounded_lg() + .overflow_hidden() + .child(grid_bg) + .child(gradient_bg) + .child(Headline::new("Try Zed AI")) + .child(Label::new(DESCRIPTION).color(Color::Muted).mb_2()) + .child( + h_flex() + .mt_1p5() + .mb_2p5() + .items_start() + .gap_12() + .child(free_section) + .child(pro_section), + ) + .child(footer_buttons) + } +} + +impl Component for AiUpsellCard { + fn scope() -> ComponentScope { + ComponentScope::Agent + } + + fn name() -> &'static str { + "AI Upsell Card" + } + + fn sort_name() -> &'static str { + "AI Upsell Card" + } + + fn description() -> Option<&'static str> { + Some("A card presenting the Zed AI product during user's first-open onboarding flow.") + } + + fn preview(_window: &mut Window, _cx: &mut App) -> Option { + Some( + v_flex() + .p_4() + .gap_4() + .children(vec![example_group(vec![ + single_example( + "Signed Out State", + AiUpsellCard { + sign_in_status: SignInStatus::SignedOut, + sign_in: Arc::new(|_, _| {}), + } + .into_any_element(), + ), + single_example( + "Signed In State", + AiUpsellCard { + sign_in_status: SignInStatus::SignedIn, + sign_in: Arc::new(|_, _| {}), + } + .into_any_element(), + ), + ])]) + .into_any_element(), + ) + } +} From c2fc70eef7454a49de9f87d38f34b65392752745 Mon Sep 17 00:00:00 2001 From: Agus Zubiaga Date: Mon, 28 Jul 2025 11:14:10 -0300 Subject: [PATCH 0250/1052] ACP over MCP server impl (#35196) Release Notes: - N/A --------- Co-authored-by: Ben Brandt --- Cargo.lock | 4 +- Cargo.toml | 2 +- crates/acp_thread/src/acp_thread.rs | 299 +++++++++++++++----- crates/acp_thread/src/connection.rs | 2 +- crates/acp_thread/src/old_acp_support.rs | 58 ++-- crates/agent_servers/Cargo.toml | 1 + crates/agent_servers/src/agent_servers.rs | 3 + crates/agent_servers/src/claude.rs | 20 +- crates/agent_servers/src/claude/tools.rs | 1 + crates/agent_servers/src/codex.rs | 317 ++++++++++++++++++++++ crates/agent_servers/src/e2e_tests.rs | 3 + crates/agent_servers/src/mcp_server.rs | 201 ++++++++++++++ crates/agent_servers/src/settings.rs | 11 +- crates/agent_ui/src/acp/thread_view.rs | 15 +- crates/agent_ui/src/agent_panel.rs | 33 +++ crates/agent_ui/src/agent_ui.rs | 2 + crates/context_server/src/client.rs | 40 ++- crates/context_server/src/listener.rs | 2 +- crates/context_server/src/protocol.rs | 9 +- crates/context_server/src/types.rs | 13 + 20 files changed, 899 insertions(+), 137 deletions(-) create mode 100644 crates/agent_servers/src/codex.rs create mode 100644 crates/agent_servers/src/mcp_server.rs diff --git a/Cargo.lock b/Cargo.lock index 5f746a02fa..8d9a622655 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -138,9 +138,9 @@ dependencies = [ [[package]] name = "agent-client-protocol" -version = "0.0.10" +version = "0.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fb7f39671e02f8a1aeb625652feae40b6fc2597baaa97e028a98863477aecbd" +checksum = "72ec54650c1fc2d63498bab47eeeaa9eddc7d239d53f615b797a0e84f7ccc87b" dependencies = [ "schemars", "serde", diff --git a/Cargo.toml b/Cargo.toml index 39b60dda01..16ace7dee0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -413,7 +413,7 @@ zlog_settings = { path = "crates/zlog_settings" } # agentic-coding-protocol = "0.0.10" -agent-client-protocol = "0.0.10" +agent-client-protocol = "0.0.11" aho-corasick = "1.1" alacritty_terminal = { git = "https://github.com/zed-industries/alacritty.git", branch = "add-hush-login-flag" } any_vec = "0.14" diff --git a/crates/acp_thread/src/acp_thread.rs b/crates/acp_thread/src/acp_thread.rs index 3c6c21205f..d572992c54 100644 --- a/crates/acp_thread/src/acp_thread.rs +++ b/crates/acp_thread/src/acp_thread.rs @@ -166,6 +166,7 @@ pub struct ToolCall { pub content: Vec, pub status: ToolCallStatus, pub locations: Vec, + pub raw_input: Option, } impl ToolCall { @@ -193,6 +194,50 @@ impl ToolCall { .collect(), locations: tool_call.locations, status, + raw_input: tool_call.raw_input, + } + } + + fn update( + &mut self, + fields: acp::ToolCallUpdateFields, + language_registry: Arc, + cx: &mut App, + ) { + let acp::ToolCallUpdateFields { + kind, + status, + label, + content, + locations, + raw_input, + } = fields; + + if let Some(kind) = kind { + self.kind = kind; + } + + if let Some(status) = status { + self.status = ToolCallStatus::Allowed { status }; + } + + if let Some(label) = label { + self.label = cx.new(|cx| Markdown::new_text(label.into(), cx)); + } + + if let Some(content) = content { + self.content = content + .into_iter() + .map(|chunk| ToolCallContent::from_acp(chunk, language_registry.clone(), cx)) + .collect(); + } + + if let Some(locations) = locations { + self.locations = locations; + } + + if let Some(raw_input) = raw_input { + self.raw_input = Some(raw_input); } } @@ -238,6 +283,7 @@ impl Display for ToolCallStatus { match self { ToolCallStatus::WaitingForConfirmation { .. } => "Waiting for confirmation", ToolCallStatus::Allowed { status } => match status { + acp::ToolCallStatus::Pending => "Pending", acp::ToolCallStatus::InProgress => "In Progress", acp::ToolCallStatus::Completed => "Completed", acp::ToolCallStatus::Failed => "Failed", @@ -345,7 +391,7 @@ impl ToolCallContent { cx: &mut App, ) -> Self { match content { - acp::ToolCallContent::ContentBlock { content } => Self::ContentBlock { + acp::ToolCallContent::ContentBlock(content) => Self::ContentBlock { content: ContentBlock::new(content, &language_registry, cx), }, acp::ToolCallContent::Diff { diff } => Self::Diff { @@ -630,12 +676,50 @@ impl AcpThread { false } - pub fn push_entry(&mut self, entry: AgentThreadEntry, cx: &mut Context) { - self.entries.push(entry); - cx.emit(AcpThreadEvent::NewEntry); + pub fn handle_session_update( + &mut self, + update: acp::SessionUpdate, + cx: &mut Context, + ) -> Result<()> { + match update { + acp::SessionUpdate::UserMessage(content_block) => { + self.push_user_content_block(content_block, cx); + } + acp::SessionUpdate::AgentMessageChunk(content_block) => { + self.push_assistant_content_block(content_block, false, cx); + } + acp::SessionUpdate::AgentThoughtChunk(content_block) => { + self.push_assistant_content_block(content_block, true, cx); + } + acp::SessionUpdate::ToolCall(tool_call) => { + self.upsert_tool_call(tool_call, cx); + } + acp::SessionUpdate::ToolCallUpdate(tool_call_update) => { + self.update_tool_call(tool_call_update, cx)?; + } + acp::SessionUpdate::Plan(plan) => { + self.update_plan(plan, cx); + } + } + Ok(()) } - pub fn push_assistant_chunk( + pub fn push_user_content_block(&mut self, chunk: acp::ContentBlock, cx: &mut Context) { + let language_registry = self.project.read(cx).languages().clone(); + let entries_len = self.entries.len(); + + if let Some(last_entry) = self.entries.last_mut() + && let AgentThreadEntry::UserMessage(UserMessage { content }) = last_entry + { + content.append(chunk, &language_registry, cx); + cx.emit(AcpThreadEvent::EntryUpdated(entries_len - 1)); + } else { + let content = ContentBlock::new(chunk, &language_registry, cx); + self.push_entry(AgentThreadEntry::UserMessage(UserMessage { content }), cx); + } + } + + pub fn push_assistant_content_block( &mut self, chunk: acp::ContentBlock, is_thought: bool, @@ -678,23 +762,22 @@ impl AcpThread { } } + fn push_entry(&mut self, entry: AgentThreadEntry, cx: &mut Context) { + self.entries.push(entry); + cx.emit(AcpThreadEvent::NewEntry); + } + pub fn update_tool_call( &mut self, - id: acp::ToolCallId, - status: acp::ToolCallStatus, - content: Option>, + update: acp::ToolCallUpdate, cx: &mut Context, ) -> Result<()> { let languages = self.project.read(cx).languages().clone(); - let (ix, current_call) = self.tool_call_mut(&id).context("Tool call not found")?; - if let Some(content) = content { - current_call.content = content - .into_iter() - .map(|chunk| ToolCallContent::from_acp(chunk, languages.clone(), cx)) - .collect(); - } - current_call.status = ToolCallStatus::Allowed { status }; + let (ix, current_call) = self + .tool_call_mut(&update.id) + .context("Tool call not found")?; + current_call.update(update.fields, languages, cx); cx.emit(AcpThreadEvent::EntryUpdated(ix)); @@ -751,6 +834,37 @@ impl AcpThread { }) } + pub fn set_project_location(&self, location: acp::ToolCallLocation, cx: &mut Context) { + self.project.update(cx, |project, cx| { + let Some(path) = project.project_path_for_absolute_path(&location.path, cx) else { + return; + }; + let buffer = project.open_buffer(path, cx); + cx.spawn(async move |project, cx| { + let buffer = buffer.await?; + + project.update(cx, |project, cx| { + let position = if let Some(line) = location.line { + let snapshot = buffer.read(cx).snapshot(); + let point = snapshot.clip_point(Point::new(line, 0), Bias::Left); + snapshot.anchor_before(point) + } else { + Anchor::MIN + }; + + project.set_agent_location( + Some(AgentLocation { + buffer: buffer.downgrade(), + position, + }), + cx, + ); + }) + }) + .detach_and_log_err(cx); + }); + } + pub fn request_tool_call_permission( &mut self, tool_call: acp::ToolCall, @@ -801,6 +915,25 @@ impl AcpThread { cx.emit(AcpThreadEvent::EntryUpdated(ix)); } + /// Returns true if the last turn is awaiting tool authorization + pub fn waiting_for_tool_confirmation(&self) -> bool { + for entry in self.entries.iter().rev() { + match &entry { + AgentThreadEntry::ToolCall(call) => match call.status { + ToolCallStatus::WaitingForConfirmation { .. } => return true, + ToolCallStatus::Allowed { .. } + | ToolCallStatus::Rejected + | ToolCallStatus::Canceled => continue, + }, + AgentThreadEntry::UserMessage(_) | AgentThreadEntry::AssistantMessage(_) => { + // Reached the beginning of the turn + return false; + } + } + } + false + } + pub fn plan(&self) -> &Plan { &self.plan } @@ -824,56 +957,6 @@ impl AcpThread { cx.notify(); } - pub fn set_project_location(&self, location: acp::ToolCallLocation, cx: &mut Context) { - self.project.update(cx, |project, cx| { - let Some(path) = project.project_path_for_absolute_path(&location.path, cx) else { - return; - }; - let buffer = project.open_buffer(path, cx); - cx.spawn(async move |project, cx| { - let buffer = buffer.await?; - - project.update(cx, |project, cx| { - let position = if let Some(line) = location.line { - let snapshot = buffer.read(cx).snapshot(); - let point = snapshot.clip_point(Point::new(line, 0), Bias::Left); - snapshot.anchor_before(point) - } else { - Anchor::MIN - }; - - project.set_agent_location( - Some(AgentLocation { - buffer: buffer.downgrade(), - position, - }), - cx, - ); - }) - }) - .detach_and_log_err(cx); - }); - } - - /// Returns true if the last turn is awaiting tool authorization - pub fn waiting_for_tool_confirmation(&self) -> bool { - for entry in self.entries.iter().rev() { - match &entry { - AgentThreadEntry::ToolCall(call) => match call.status { - ToolCallStatus::WaitingForConfirmation { .. } => return true, - ToolCallStatus::Allowed { .. } - | ToolCallStatus::Rejected - | ToolCallStatus::Canceled => continue, - }, - AgentThreadEntry::UserMessage(_) | AgentThreadEntry::AssistantMessage(_) => { - // Reached the beginning of the turn - return false; - } - } - } - false - } - pub fn authenticate(&self, cx: &mut App) -> impl use<> + Future> { self.connection.authenticate(cx) } @@ -919,7 +1002,7 @@ impl AcpThread { let result = this .update(cx, |this, cx| { this.connection.prompt( - acp::PromptToolArguments { + acp::PromptArguments { prompt: message, session_id: this.session_id.clone(), }, @@ -1148,7 +1231,87 @@ mod tests { } #[gpui::test] - async fn test_thinking_concatenation(cx: &mut TestAppContext) { + async fn test_push_user_content_block(cx: &mut gpui::TestAppContext) { + init_test(cx); + + let fs = FakeFs::new(cx.executor()); + let project = Project::test(fs, [], cx).await; + let (thread, _fake_server) = fake_acp_thread(project, cx); + + // Test creating a new user message + thread.update(cx, |thread, cx| { + thread.push_user_content_block( + acp::ContentBlock::Text(acp::TextContent { + annotations: None, + text: "Hello, ".to_string(), + }), + cx, + ); + }); + + thread.update(cx, |thread, cx| { + assert_eq!(thread.entries.len(), 1); + if let AgentThreadEntry::UserMessage(user_msg) = &thread.entries[0] { + assert_eq!(user_msg.content.to_markdown(cx), "Hello, "); + } else { + panic!("Expected UserMessage"); + } + }); + + // Test appending to existing user message + thread.update(cx, |thread, cx| { + thread.push_user_content_block( + acp::ContentBlock::Text(acp::TextContent { + annotations: None, + text: "world!".to_string(), + }), + cx, + ); + }); + + thread.update(cx, |thread, cx| { + assert_eq!(thread.entries.len(), 1); + if let AgentThreadEntry::UserMessage(user_msg) = &thread.entries[0] { + assert_eq!(user_msg.content.to_markdown(cx), "Hello, world!"); + } else { + panic!("Expected UserMessage"); + } + }); + + // Test creating new user message after assistant message + thread.update(cx, |thread, cx| { + thread.push_assistant_content_block( + acp::ContentBlock::Text(acp::TextContent { + annotations: None, + text: "Assistant response".to_string(), + }), + false, + cx, + ); + }); + + thread.update(cx, |thread, cx| { + thread.push_user_content_block( + acp::ContentBlock::Text(acp::TextContent { + annotations: None, + text: "New user message".to_string(), + }), + cx, + ); + }); + + thread.update(cx, |thread, cx| { + assert_eq!(thread.entries.len(), 3); + if let AgentThreadEntry::UserMessage(user_msg) = &thread.entries[2] { + assert_eq!(user_msg.content.to_markdown(cx), "New user message"); + } else { + panic!("Expected UserMessage at index 2"); + } + }); + } + + #[gpui::test] + async fn test_thinking_concatenation(cx: &mut gpui::TestAppContext) { init_test(cx); let fs = FakeFs::new(cx.executor()); diff --git a/crates/acp_thread/src/connection.rs b/crates/acp_thread/src/connection.rs index fde167da5f..5b25b71863 100644 --- a/crates/acp_thread/src/connection.rs +++ b/crates/acp_thread/src/connection.rs @@ -20,7 +20,7 @@ pub trait AgentConnection { fn authenticate(&self, cx: &mut App) -> Task>; - fn prompt(&self, params: acp::PromptToolArguments, cx: &mut App) -> Task>; + fn prompt(&self, params: acp::PromptArguments, cx: &mut App) -> Task>; fn cancel(&self, session_id: &acp::SessionId, cx: &mut App); } diff --git a/crates/acp_thread/src/old_acp_support.rs b/crates/acp_thread/src/old_acp_support.rs index 316a5bcf25..44cd00348f 100644 --- a/crates/acp_thread/src/old_acp_support.rs +++ b/crates/acp_thread/src/old_acp_support.rs @@ -8,7 +8,7 @@ use project::Project; use std::{cell::RefCell, error::Error, fmt, path::Path, rc::Rc}; use ui::App; -use crate::{AcpThread, AcpThreadEvent, AgentConnection, ToolCallContent, ToolCallStatus}; +use crate::{AcpThread, AgentConnection}; #[derive(Clone)] pub struct OldAcpClientDelegate { @@ -40,10 +40,10 @@ impl acp_old::Client for OldAcpClientDelegate { .borrow() .update(cx, |thread, cx| match params.chunk { acp_old::AssistantMessageChunk::Text { text } => { - thread.push_assistant_chunk(text.into(), false, cx) + thread.push_assistant_content_block(text.into(), false, cx) } acp_old::AssistantMessageChunk::Thought { thought } => { - thread.push_assistant_chunk(thought.into(), true, cx) + thread.push_assistant_content_block(thought.into(), true, cx) } }) .ok(); @@ -182,31 +182,23 @@ impl acp_old::Client for OldAcpClientDelegate { cx.update(|cx| { self.thread.borrow().update(cx, |thread, cx| { - let languages = thread.project.read(cx).languages().clone(); - - if let Some((ix, tool_call)) = thread - .tool_call_mut(&acp::ToolCallId(request.tool_call_id.0.to_string().into())) - { - tool_call.status = ToolCallStatus::Allowed { - status: into_new_tool_call_status(request.status), - }; - tool_call.content = request - .content - .into_iter() - .map(|content| { - ToolCallContent::from_acp( - into_new_tool_call_content(content), - languages.clone(), - cx, - ) - }) - .collect(); - - cx.emit(AcpThreadEvent::EntryUpdated(ix)); - anyhow::Ok(()) - } else { - anyhow::bail!("Tool call not found") - } + thread.update_tool_call( + acp::ToolCallUpdate { + id: acp::ToolCallId(request.tool_call_id.0.to_string().into()), + fields: acp::ToolCallUpdateFields { + status: Some(into_new_tool_call_status(request.status)), + content: Some( + request + .content + .into_iter() + .map(into_new_tool_call_content) + .collect::>(), + ), + ..Default::default() + }, + }, + cx, + ) }) })? .context("Failed to update thread")??; @@ -285,6 +277,7 @@ fn into_new_tool_call(id: acp::ToolCallId, request: acp_old::PushToolCallParams) .into_iter() .map(into_new_tool_call_location) .collect(), + raw_input: None, } } @@ -311,12 +304,7 @@ fn into_new_tool_call_status(status: acp_old::ToolCallStatus) -> acp::ToolCallSt fn into_new_tool_call_content(content: acp_old::ToolCallContent) -> acp::ToolCallContent { match content { - acp_old::ToolCallContent::Markdown { markdown } => acp::ToolCallContent::ContentBlock { - content: acp::ContentBlock::Text(acp::TextContent { - annotations: None, - text: markdown, - }), - }, + acp_old::ToolCallContent::Markdown { markdown } => markdown.into(), acp_old::ToolCallContent::Diff { diff } => acp::ToolCallContent::Diff { diff: into_new_diff(diff), }, @@ -423,7 +411,7 @@ impl AgentConnection for OldAcpAgentConnection { }) } - fn prompt(&self, params: acp::PromptToolArguments, cx: &mut App) -> Task> { + fn prompt(&self, params: acp::PromptArguments, cx: &mut App) -> Task> { let chunks = params .prompt .into_iter() diff --git a/crates/agent_servers/Cargo.toml b/crates/agent_servers/Cargo.toml index 023799bc6c..dcffb05bc0 100644 --- a/crates/agent_servers/Cargo.toml +++ b/crates/agent_servers/Cargo.toml @@ -41,6 +41,7 @@ ui.workspace = true util.workspace = true uuid.workspace = true watch.workspace = true +indoc.workspace = true which.workspace = true workspace-hack.workspace = true diff --git a/crates/agent_servers/src/agent_servers.rs b/crates/agent_servers/src/agent_servers.rs index 660f61f907..212bb74d8a 100644 --- a/crates/agent_servers/src/agent_servers.rs +++ b/crates/agent_servers/src/agent_servers.rs @@ -1,11 +1,14 @@ mod claude; +mod codex; mod gemini; +mod mcp_server; mod settings; #[cfg(test)] mod e2e_tests; pub use claude::*; +pub use codex::*; pub use gemini::*; pub use settings::*; diff --git a/crates/agent_servers/src/claude.rs b/crates/agent_servers/src/claude.rs index 2e0eb271b6..4b48dbf3c1 100644 --- a/crates/agent_servers/src/claude.rs +++ b/crates/agent_servers/src/claude.rs @@ -44,7 +44,7 @@ impl AgentServer for ClaudeCode { } fn empty_state_message(&self) -> &'static str { - "" + "How can I help you today?" } fn logo(&self) -> ui::IconName { @@ -190,7 +190,7 @@ impl AgentConnection for ClaudeAgentConnection { Task::ready(Err(anyhow!("Authentication not supported"))) } - fn prompt(&self, params: acp::PromptToolArguments, cx: &mut App) -> Task> { + fn prompt(&self, params: acp::PromptArguments, cx: &mut App) -> Task> { let sessions = self.sessions.borrow(); let Some(session) = sessions.get(¶ms.session_id) else { return Task::ready(Err(anyhow!( @@ -350,7 +350,7 @@ impl ClaudeAgentSession { ContentChunk::Text { text } | ContentChunk::UntaggedText(text) => { thread .update(cx, |thread, cx| { - thread.push_assistant_chunk(text.into(), false, cx) + thread.push_assistant_content_block(text.into(), false, cx) }) .log_err(); } @@ -387,9 +387,15 @@ impl ClaudeAgentSession { thread .update(cx, |thread, cx| { thread.update_tool_call( - acp::ToolCallId(tool_use_id.into()), - acp::ToolCallStatus::Completed, - (!content.is_empty()).then(|| vec![content.into()]), + acp::ToolCallUpdate { + id: acp::ToolCallId(tool_use_id.into()), + fields: acp::ToolCallUpdateFields { + status: Some(acp::ToolCallStatus::Completed), + content: (!content.is_empty()) + .then(|| vec![content.into()]), + ..Default::default() + }, + }, cx, ) }) @@ -402,7 +408,7 @@ impl ClaudeAgentSession { | ContentChunk::WebSearchToolResult => { thread .update(cx, |thread, cx| { - thread.push_assistant_chunk( + thread.push_assistant_content_block( format!("Unsupported content: {:?}", chunk).into(), false, cx, diff --git a/crates/agent_servers/src/claude/tools.rs b/crates/agent_servers/src/claude/tools.rs index ed25f9af7f..6acb6355aa 100644 --- a/crates/agent_servers/src/claude/tools.rs +++ b/crates/agent_servers/src/claude/tools.rs @@ -311,6 +311,7 @@ impl ClaudeTool { label: self.label(), content: self.content(), locations: self.locations(), + raw_input: None, } } } diff --git a/crates/agent_servers/src/codex.rs b/crates/agent_servers/src/codex.rs new file mode 100644 index 0000000000..3eb95a6841 --- /dev/null +++ b/crates/agent_servers/src/codex.rs @@ -0,0 +1,317 @@ +use agent_client_protocol as acp; +use anyhow::anyhow; +use collections::HashMap; +use context_server::listener::McpServerTool; +use context_server::types::requests; +use context_server::{ContextServer, ContextServerCommand, ContextServerId}; +use futures::channel::{mpsc, oneshot}; +use project::Project; +use settings::SettingsStore; +use smol::stream::StreamExt as _; +use std::cell::RefCell; +use std::rc::Rc; +use std::{path::Path, sync::Arc}; +use util::ResultExt; + +use anyhow::{Context, Result}; +use gpui::{App, AppContext as _, AsyncApp, Entity, Task, WeakEntity}; + +use crate::mcp_server::ZedMcpServer; +use crate::{AgentServer, AgentServerCommand, AllAgentServersSettings, mcp_server}; +use acp_thread::{AcpThread, AgentConnection}; + +#[derive(Clone)] +pub struct Codex; + +impl AgentServer for Codex { + fn name(&self) -> &'static str { + "Codex" + } + + fn empty_state_headline(&self) -> &'static str { + "Welcome to Codex" + } + + fn empty_state_message(&self) -> &'static str { + "What can I help with?" + } + + fn logo(&self) -> ui::IconName { + ui::IconName::AiOpenAi + } + + fn connect( + &self, + _root_dir: &Path, + project: &Entity, + cx: &mut App, + ) -> Task>> { + let project = project.clone(); + cx.spawn(async move |cx| { + let settings = cx.read_global(|settings: &SettingsStore, _| { + settings.get::(None).codex.clone() + })?; + + let Some(command) = + AgentServerCommand::resolve("codex", &["mcp"], settings, &project, cx).await + else { + anyhow::bail!("Failed to find codex binary"); + }; + + let client: Arc = ContextServer::stdio( + ContextServerId("codex-mcp-server".into()), + ContextServerCommand { + path: command.path, + args: command.args, + env: command.env, + }, + ) + .into(); + ContextServer::start(client.clone(), cx).await?; + + let (notification_tx, mut notification_rx) = mpsc::unbounded(); + client + .client() + .context("Failed to subscribe")? + .on_notification(acp::SESSION_UPDATE_METHOD_NAME, { + move |notification, _cx| { + let notification_tx = notification_tx.clone(); + log::trace!( + "ACP Notification: {}", + serde_json::to_string_pretty(¬ification).unwrap() + ); + + if let Some(notification) = + serde_json::from_value::(notification) + .log_err() + { + notification_tx.unbounded_send(notification).ok(); + } + } + }); + + let sessions = Rc::new(RefCell::new(HashMap::default())); + + let notification_handler_task = cx.spawn({ + let sessions = sessions.clone(); + async move |cx| { + while let Some(notification) = notification_rx.next().await { + CodexConnection::handle_session_notification( + notification, + sessions.clone(), + cx, + ) + } + } + }); + + let connection = CodexConnection { + client, + sessions, + _notification_handler_task: notification_handler_task, + }; + Ok(Rc::new(connection) as _) + }) + } +} + +struct CodexConnection { + client: Arc, + sessions: Rc>>, + _notification_handler_task: Task<()>, +} + +struct CodexSession { + thread: WeakEntity, + cancel_tx: Option>, + _mcp_server: ZedMcpServer, +} + +impl AgentConnection for CodexConnection { + fn name(&self) -> &'static str { + "Codex" + } + + fn new_thread( + self: Rc, + project: Entity, + cwd: &Path, + cx: &mut AsyncApp, + ) -> Task>> { + let client = self.client.client(); + let sessions = self.sessions.clone(); + let cwd = cwd.to_path_buf(); + cx.spawn(async move |cx| { + let client = client.context("MCP server is not initialized yet")?; + let (mut thread_tx, thread_rx) = watch::channel(WeakEntity::new_invalid()); + + let mcp_server = ZedMcpServer::new(thread_rx, cx).await?; + + let response = client + .request::(context_server::types::CallToolParams { + name: acp::NEW_SESSION_TOOL_NAME.into(), + arguments: Some(serde_json::to_value(acp::NewSessionArguments { + mcp_servers: [( + mcp_server::SERVER_NAME.to_string(), + mcp_server.server_config()?, + )] + .into(), + client_tools: acp::ClientTools { + request_permission: Some(acp::McpToolId { + mcp_server: mcp_server::SERVER_NAME.into(), + tool_name: mcp_server::RequestPermissionTool::NAME.into(), + }), + read_text_file: Some(acp::McpToolId { + mcp_server: mcp_server::SERVER_NAME.into(), + tool_name: mcp_server::ReadTextFileTool::NAME.into(), + }), + write_text_file: Some(acp::McpToolId { + mcp_server: mcp_server::SERVER_NAME.into(), + tool_name: mcp_server::WriteTextFileTool::NAME.into(), + }), + }, + cwd, + })?), + meta: None, + }) + .await?; + + if response.is_error.unwrap_or_default() { + return Err(anyhow!(response.text_contents())); + } + + let result = serde_json::from_value::( + response.structured_content.context("Empty response")?, + )?; + + let thread = + cx.new(|cx| AcpThread::new(self.clone(), project, result.session_id.clone(), cx))?; + + thread_tx.send(thread.downgrade())?; + + let session = CodexSession { + thread: thread.downgrade(), + cancel_tx: None, + _mcp_server: mcp_server, + }; + sessions.borrow_mut().insert(result.session_id, session); + + Ok(thread) + }) + } + + fn authenticate(&self, _cx: &mut App) -> Task> { + Task::ready(Err(anyhow!("Authentication not supported"))) + } + + fn prompt( + &self, + params: agent_client_protocol::PromptArguments, + cx: &mut App, + ) -> Task> { + let client = self.client.client(); + let sessions = self.sessions.clone(); + + cx.foreground_executor().spawn(async move { + let client = client.context("MCP server is not initialized yet")?; + + let (new_cancel_tx, cancel_rx) = oneshot::channel(); + { + let mut sessions = sessions.borrow_mut(); + let session = sessions + .get_mut(¶ms.session_id) + .context("Session not found")?; + session.cancel_tx.replace(new_cancel_tx); + } + + let result = client + .request_with::( + context_server::types::CallToolParams { + name: acp::PROMPT_TOOL_NAME.into(), + arguments: Some(serde_json::to_value(params)?), + meta: None, + }, + Some(cancel_rx), + None, + ) + .await; + + if let Err(err) = &result + && err.is::() + { + return Ok(()); + } + + let response = result?; + + if response.is_error.unwrap_or_default() { + return Err(anyhow!(response.text_contents())); + } + + Ok(()) + }) + } + + fn cancel(&self, session_id: &agent_client_protocol::SessionId, _cx: &mut App) { + let mut sessions = self.sessions.borrow_mut(); + + if let Some(cancel_tx) = sessions + .get_mut(session_id) + .and_then(|session| session.cancel_tx.take()) + { + cancel_tx.send(()).ok(); + } + } +} + +impl CodexConnection { + pub fn handle_session_notification( + notification: acp::SessionNotification, + threads: Rc>>, + cx: &mut AsyncApp, + ) { + let threads = threads.borrow(); + let Some(thread) = threads + .get(¬ification.session_id) + .and_then(|session| session.thread.upgrade()) + else { + log::error!( + "Thread not found for session ID: {}", + notification.session_id + ); + return; + }; + + thread + .update(cx, |thread, cx| { + thread.handle_session_update(notification.update, cx) + }) + .log_err(); + } +} + +impl Drop for CodexConnection { + fn drop(&mut self) { + self.client.stop().log_err(); + } +} + +#[cfg(test)] +pub(crate) mod tests { + use super::*; + use crate::AgentServerCommand; + use std::path::Path; + + crate::common_e2e_tests!(Codex); + + pub fn local_command() -> AgentServerCommand { + let cli_path = Path::new(env!("CARGO_MANIFEST_DIR")) + .join("../../../codex/codex-rs/target/debug/codex"); + + AgentServerCommand { + path: cli_path, + args: vec!["mcp".into()], + env: None, + } + } +} diff --git a/crates/agent_servers/src/e2e_tests.rs b/crates/agent_servers/src/e2e_tests.rs index 9bc6fd60fe..905f06a148 100644 --- a/crates/agent_servers/src/e2e_tests.rs +++ b/crates/agent_servers/src/e2e_tests.rs @@ -351,6 +351,9 @@ pub async fn init_test(cx: &mut TestAppContext) -> Arc { gemini: Some(AgentServerSettings { command: crate::gemini::tests::local_command(), }), + codex: Some(AgentServerSettings { + command: crate::codex::tests::local_command(), + }), }, cx, ); diff --git a/crates/agent_servers/src/mcp_server.rs b/crates/agent_servers/src/mcp_server.rs new file mode 100644 index 0000000000..47575fa3ea --- /dev/null +++ b/crates/agent_servers/src/mcp_server.rs @@ -0,0 +1,201 @@ +use acp_thread::AcpThread; +use agent_client_protocol as acp; +use anyhow::{Context, Result}; +use context_server::listener::{McpServerTool, ToolResponse}; +use context_server::types::{ + Implementation, InitializeParams, InitializeResponse, ProtocolVersion, ServerCapabilities, + ToolsCapabilities, requests, +}; +use futures::channel::oneshot; +use gpui::{App, AsyncApp, Task, WeakEntity}; +use indoc::indoc; + +pub struct ZedMcpServer { + server: context_server::listener::McpServer, +} + +pub const SERVER_NAME: &str = "zed"; + +impl ZedMcpServer { + pub async fn new( + thread_rx: watch::Receiver>, + cx: &AsyncApp, + ) -> Result { + let mut mcp_server = context_server::listener::McpServer::new(cx).await?; + mcp_server.handle_request::(Self::handle_initialize); + + mcp_server.add_tool(RequestPermissionTool { + thread_rx: thread_rx.clone(), + }); + mcp_server.add_tool(ReadTextFileTool { + thread_rx: thread_rx.clone(), + }); + mcp_server.add_tool(WriteTextFileTool { + thread_rx: thread_rx.clone(), + }); + + Ok(Self { server: mcp_server }) + } + + pub fn server_config(&self) -> Result { + let zed_path = std::env::current_exe() + .context("finding current executable path for use in mcp_server")?; + + Ok(acp::McpServerConfig { + command: zed_path, + args: vec![ + "--nc".into(), + self.server.socket_path().display().to_string(), + ], + env: None, + }) + } + + fn handle_initialize(_: InitializeParams, cx: &App) -> Task> { + cx.foreground_executor().spawn(async move { + Ok(InitializeResponse { + protocol_version: ProtocolVersion("2025-06-18".into()), + capabilities: ServerCapabilities { + experimental: None, + logging: None, + completions: None, + prompts: None, + resources: None, + tools: Some(ToolsCapabilities { + list_changed: Some(false), + }), + }, + server_info: Implementation { + name: SERVER_NAME.into(), + version: "0.1.0".into(), + }, + meta: None, + }) + }) + } +} + +// Tools + +#[derive(Clone)] +pub struct RequestPermissionTool { + thread_rx: watch::Receiver>, +} + +impl McpServerTool for RequestPermissionTool { + type Input = acp::RequestPermissionArguments; + type Output = acp::RequestPermissionOutput; + + const NAME: &'static str = "Confirmation"; + + fn description(&self) -> &'static str { + indoc! {" + Request permission for tool calls. + + This tool is meant to be called programmatically by the agent loop, not the LLM. + "} + } + + async fn run( + &self, + input: Self::Input, + cx: &mut AsyncApp, + ) -> Result> { + let mut thread_rx = self.thread_rx.clone(); + let Some(thread) = thread_rx.recv().await?.upgrade() else { + anyhow::bail!("Thread closed"); + }; + + let result = thread + .update(cx, |thread, cx| { + thread.request_tool_call_permission(input.tool_call, input.options, cx) + })? + .await; + + let outcome = match result { + Ok(option_id) => acp::RequestPermissionOutcome::Selected { option_id }, + Err(oneshot::Canceled) => acp::RequestPermissionOutcome::Canceled, + }; + + Ok(ToolResponse { + content: vec![], + structured_content: acp::RequestPermissionOutput { outcome }, + }) + } +} + +#[derive(Clone)] +pub struct ReadTextFileTool { + thread_rx: watch::Receiver>, +} + +impl McpServerTool for ReadTextFileTool { + type Input = acp::ReadTextFileArguments; + type Output = acp::ReadTextFileOutput; + + const NAME: &'static str = "Read"; + + fn description(&self) -> &'static str { + "Reads the content of the given file in the project including unsaved changes." + } + + async fn run( + &self, + input: Self::Input, + cx: &mut AsyncApp, + ) -> Result> { + let mut thread_rx = self.thread_rx.clone(); + let Some(thread) = thread_rx.recv().await?.upgrade() else { + anyhow::bail!("Thread closed"); + }; + + let content = thread + .update(cx, |thread, cx| { + thread.read_text_file(input.path, input.line, input.limit, false, cx) + })? + .await?; + + Ok(ToolResponse { + content: vec![], + structured_content: acp::ReadTextFileOutput { content }, + }) + } +} + +#[derive(Clone)] +pub struct WriteTextFileTool { + thread_rx: watch::Receiver>, +} + +impl McpServerTool for WriteTextFileTool { + type Input = acp::WriteTextFileArguments; + type Output = (); + + const NAME: &'static str = "Write"; + + fn description(&self) -> &'static str { + "Write to a file replacing its contents" + } + + async fn run( + &self, + input: Self::Input, + cx: &mut AsyncApp, + ) -> Result> { + let mut thread_rx = self.thread_rx.clone(); + let Some(thread) = thread_rx.recv().await?.upgrade() else { + anyhow::bail!("Thread closed"); + }; + + thread + .update(cx, |thread, cx| { + thread.write_text_file(input.path, input.content, cx) + })? + .await?; + + Ok(ToolResponse { + content: vec![], + structured_content: (), + }) + } +} diff --git a/crates/agent_servers/src/settings.rs b/crates/agent_servers/src/settings.rs index 645674b5f1..aeb34a5e61 100644 --- a/crates/agent_servers/src/settings.rs +++ b/crates/agent_servers/src/settings.rs @@ -13,6 +13,7 @@ pub fn init(cx: &mut App) { pub struct AllAgentServersSettings { pub gemini: Option, pub claude: Option, + pub codex: Option, } #[derive(Deserialize, Serialize, Clone, JsonSchema, Debug)] @@ -29,13 +30,21 @@ impl settings::Settings for AllAgentServersSettings { fn load(sources: SettingsSources, _: &mut App) -> Result { let mut settings = AllAgentServersSettings::default(); - for AllAgentServersSettings { gemini, claude } in sources.defaults_and_customizations() { + for AllAgentServersSettings { + gemini, + claude, + codex, + } in sources.defaults_and_customizations() + { if gemini.is_some() { settings.gemini = gemini.clone(); } if claude.is_some() { settings.claude = claude.clone(); } + if codex.is_some() { + settings.codex = codex.clone(); + } } Ok(settings) diff --git a/crates/agent_ui/src/acp/thread_view.rs b/crates/agent_ui/src/acp/thread_view.rs index 7f5de9db5f..e46e1ae3ab 100644 --- a/crates/agent_ui/src/acp/thread_view.rs +++ b/crates/agent_ui/src/acp/thread_view.rs @@ -872,7 +872,10 @@ impl AcpThreadView { let header_id = SharedString::from(format!("tool-call-header-{}", entry_ix)); let status_icon = match &tool_call.status { - ToolCallStatus::WaitingForConfirmation { .. } => None, + ToolCallStatus::Allowed { + status: acp::ToolCallStatus::Pending, + } + | ToolCallStatus::WaitingForConfirmation { .. } => None, ToolCallStatus::Allowed { status: acp::ToolCallStatus::InProgress, .. @@ -957,6 +960,8 @@ impl AcpThreadView { Icon::new(match tool_call.kind { acp::ToolKind::Read => IconName::ToolRead, acp::ToolKind::Edit => IconName::ToolPencil, + acp::ToolKind::Delete => IconName::ToolDeleteFile, + acp::ToolKind::Move => IconName::ArrowRightLeft, acp::ToolKind::Search => IconName::ToolSearch, acp::ToolKind::Execute => IconName::ToolTerminal, acp::ToolKind::Think => IconName::ToolBulb, @@ -1068,6 +1073,7 @@ impl AcpThreadView { options, entry_ix, tool_call.id.clone(), + tool_call.content.is_empty(), cx, )), ToolCallStatus::Allowed { .. } | ToolCallStatus::Canceled => { @@ -1126,6 +1132,7 @@ impl AcpThreadView { options: &[acp::PermissionOption], entry_ix: usize, tool_call_id: acp::ToolCallId, + empty_content: bool, cx: &Context, ) -> Div { h_flex() @@ -1133,8 +1140,10 @@ impl AcpThreadView { .px_1p5() .gap_1() .justify_end() - .border_t_1() - .border_color(self.tool_card_border_color(cx)) + .when(!empty_content, |this| { + this.border_t_1() + .border_color(self.tool_card_border_color(cx)) + }) .children(options.iter().map(|option| { let option_id = SharedString::from(option.id.0.clone()); Button::new((option_id, entry_ix), option.label.clone()) diff --git a/crates/agent_ui/src/agent_panel.rs b/crates/agent_ui/src/agent_panel.rs index 43c1167af8..61a65de50b 100644 --- a/crates/agent_ui/src/agent_panel.rs +++ b/crates/agent_ui/src/agent_panel.rs @@ -1991,6 +1991,20 @@ impl AgentPanel { ); }), ) + .item( + ContextMenuEntry::new("New Codex Thread") + .icon(IconName::AiOpenAi) + .icon_color(Color::Muted) + .handler(move |window, cx| { + window.dispatch_action( + NewExternalAgentThread { + agent: Some(crate::ExternalAgent::Codex), + } + .boxed_clone(), + cx, + ); + }), + ) }); menu })) @@ -2652,6 +2666,25 @@ impl AgentPanel { ) }, ), + ) + .child( + NewThreadButton::new( + "new-codex-thread-btn", + "New Codex Thread", + IconName::AiOpenAi, + ) + .on_click( + |window, cx| { + window.dispatch_action( + Box::new(NewExternalAgentThread { + agent: Some( + crate::ExternalAgent::Codex, + ), + }), + cx, + ) + }, + ), ), ) }), diff --git a/crates/agent_ui/src/agent_ui.rs b/crates/agent_ui/src/agent_ui.rs index 6ae78585de..4b75cc9e77 100644 --- a/crates/agent_ui/src/agent_ui.rs +++ b/crates/agent_ui/src/agent_ui.rs @@ -150,6 +150,7 @@ enum ExternalAgent { #[default] Gemini, ClaudeCode, + Codex, } impl ExternalAgent { @@ -157,6 +158,7 @@ impl ExternalAgent { match self { ExternalAgent::Gemini => Rc::new(agent_servers::Gemini), ExternalAgent::ClaudeCode => Rc::new(agent_servers::ClaudeCode), + ExternalAgent::Codex => Rc::new(agent_servers::Codex), } } } diff --git a/crates/context_server/src/client.rs b/crates/context_server/src/client.rs index 8c5e7da0f1..ff4d79c07d 100644 --- a/crates/context_server/src/client.rs +++ b/crates/context_server/src/client.rs @@ -330,23 +330,16 @@ impl Client { method: &str, params: impl Serialize, ) -> Result { - self.request_impl(method, params, None).await + self.request_with(method, params, None, Some(REQUEST_TIMEOUT)) + .await } - pub async fn cancellable_request( - &self, - method: &str, - params: impl Serialize, - cancel_rx: oneshot::Receiver<()>, - ) -> Result { - self.request_impl(method, params, Some(cancel_rx)).await - } - - pub async fn request_impl( + pub async fn request_with( &self, method: &str, params: impl Serialize, cancel_rx: Option>, + timeout: Option, ) -> Result { let id = self.next_id.fetch_add(1, SeqCst); let request = serde_json::to_string(&Request { @@ -382,7 +375,13 @@ impl Client { handle_response?; send?; - let mut timeout = executor.timer(REQUEST_TIMEOUT).fuse(); + let mut timeout_fut = pin!( + match timeout { + Some(timeout) => future::Either::Left(executor.timer(timeout)), + None => future::Either::Right(future::pending()), + } + .fuse() + ); let mut cancel_fut = pin!( match cancel_rx { Some(rx) => future::Either::Left(async { @@ -419,10 +418,10 @@ impl Client { reason: None }) ).log_err(); - anyhow::bail!("Request cancelled") + anyhow::bail!(RequestCanceled) } - _ = timeout => { - log::error!("cancelled csp request task for {method:?} id {id} which took over {:?}", REQUEST_TIMEOUT); + _ = timeout_fut => { + log::error!("cancelled csp request task for {method:?} id {id} which took over {:?}", timeout.unwrap()); anyhow::bail!("Context server request timeout"); } } @@ -452,6 +451,17 @@ impl Client { } } +#[derive(Debug)] +pub struct RequestCanceled; + +impl std::error::Error for RequestCanceled {} + +impl std::fmt::Display for RequestCanceled { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.write_str("Context server request was canceled") + } +} + impl fmt::Display for ContextServerId { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { self.0.fmt(f) diff --git a/crates/context_server/src/listener.rs b/crates/context_server/src/listener.rs index 192f530816..34e3a9a78c 100644 --- a/crates/context_server/src/listener.rs +++ b/crates/context_server/src/listener.rs @@ -419,7 +419,7 @@ pub struct ToolResponse { pub structured_content: T, } -#[derive(Serialize, Deserialize)] +#[derive(Debug, Serialize, Deserialize)] struct RawRequest { #[serde(skip_serializing_if = "Option::is_none")] id: Option, diff --git a/crates/context_server/src/protocol.rs b/crates/context_server/src/protocol.rs index 7263f502fa..9ccbc8a553 100644 --- a/crates/context_server/src/protocol.rs +++ b/crates/context_server/src/protocol.rs @@ -5,6 +5,8 @@ //! read/write messages and the types from types.rs for serialization/deserialization //! of messages. +use std::time::Duration; + use anyhow::Result; use futures::channel::oneshot; use gpui::AsyncApp; @@ -98,13 +100,14 @@ impl InitializedContextServerProtocol { self.inner.request(T::METHOD, params).await } - pub async fn cancellable_request( + pub async fn request_with( &self, params: T::Params, - cancel_rx: oneshot::Receiver<()>, + cancel_rx: Option>, + timeout: Option, ) -> Result { self.inner - .cancellable_request(T::METHOD, params, cancel_rx) + .request_with(T::METHOD, params, cancel_rx, timeout) .await } diff --git a/crates/context_server/src/types.rs b/crates/context_server/src/types.rs index cd97ff95bc..5fa2420a3d 100644 --- a/crates/context_server/src/types.rs +++ b/crates/context_server/src/types.rs @@ -626,6 +626,7 @@ pub enum ClientNotification { } #[derive(Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] pub struct CancelledParams { pub request_id: RequestId, #[serde(skip_serializing_if = "Option::is_none")] @@ -685,6 +686,18 @@ pub struct CallToolResponse { pub structured_content: Option, } +impl CallToolResponse { + pub fn text_contents(&self) -> String { + let mut text = String::new(); + for chunk in &self.content { + if let ToolResponseContent::Text { text: chunk } = chunk { + text.push_str(&chunk) + }; + } + text + } +} + #[derive(Debug, Serialize, Deserialize)] #[serde(tag = "type")] pub enum ToolResponseContent { From 5e2da042efd66db864485a0038f2871a724d2dda Mon Sep 17 00:00:00 2001 From: devjasperwang Date: Mon, 28 Jul 2025 22:44:22 +0800 Subject: [PATCH 0251/1052] debugger: Fix the terminal popping up when the Rust debugger starts on Windows (#35125) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR fixs a terminal popping up when debugging Rust on Windows. Release Notes: - N/A --------- Co-authored-by: 张小白 <364772080@qq.com> --- crates/project/src/debugger/locators/cargo.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/project/src/debugger/locators/cargo.rs b/crates/project/src/debugger/locators/cargo.rs index 7d70371380..fa265dae58 100644 --- a/crates/project/src/debugger/locators/cargo.rs +++ b/crates/project/src/debugger/locators/cargo.rs @@ -128,7 +128,7 @@ impl DapLocator for CargoLocator { .chain(Some("--message-format=json".to_owned())) .collect(), ); - let mut child = Command::new(program) + let mut child = util::command::new_smol_command(program) .args(args) .envs(build_config.env.iter().map(|(k, v)| (k.clone(), v.clone()))) .current_dir(cwd) From fd68265efd872b3840e774708567d1e695c1e895 Mon Sep 17 00:00:00 2001 From: Agus Zubiaga Date: Mon, 28 Jul 2025 13:18:01 -0300 Subject: [PATCH 0252/1052] Fix integration tests for claude (#35212) Release Notes: - N/A --- crates/agent_servers/src/claude.rs | 12 +++- crates/agent_servers/src/claude/mcp_server.rs | 5 ++ crates/agent_servers/src/codex.rs | 2 +- crates/agent_servers/src/e2e_tests.rs | 56 ++++++++++++++++--- crates/agent_servers/src/gemini.rs | 2 +- crates/agent_servers/src/mcp_server.rs | 12 +++- 6 files changed, 73 insertions(+), 16 deletions(-) diff --git a/crates/agent_servers/src/claude.rs b/crates/agent_servers/src/claude.rs index 4b48dbf3c1..6565786204 100644 --- a/crates/agent_servers/src/claude.rs +++ b/crates/agent_servers/src/claude.rs @@ -438,7 +438,7 @@ impl ClaudeAgentSession { } } } - SdkMessage::System { .. } => {} + SdkMessage::System { .. } | SdkMessage::ControlResponse { .. } => {} } } @@ -642,6 +642,8 @@ enum SdkMessage { request_id: String, request: ControlRequest, }, + /// Response to a control request + ControlResponse { response: ControlResponse }, } #[derive(Debug, Clone, Serialize, Deserialize)] @@ -651,6 +653,12 @@ enum ControlRequest { Interrupt, } +#[derive(Debug, Clone, Serialize, Deserialize)] +struct ControlResponse { + request_id: String, + subtype: ResultErrorType, +} + #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "snake_case")] enum ResultErrorType { @@ -707,7 +715,7 @@ pub(crate) mod tests { use super::*; use serde_json::json; - crate::common_e2e_tests!(ClaudeCode); + crate::common_e2e_tests!(ClaudeCode, allow_option_id = "allow"); pub fn local_command() -> AgentServerCommand { AgentServerCommand { diff --git a/crates/agent_servers/src/claude/mcp_server.rs b/crates/agent_servers/src/claude/mcp_server.rs index a320a6d37f..cc303016f1 100644 --- a/crates/agent_servers/src/claude/mcp_server.rs +++ b/crates/agent_servers/src/claude/mcp_server.rs @@ -42,9 +42,13 @@ impl ClaudeZedMcpServer { } pub fn server_config(&self) -> Result { + #[cfg(not(test))] let zed_path = std::env::current_exe() .context("finding current executable path for use in mcp_server")?; + #[cfg(test)] + let zed_path = crate::e2e_tests::get_zed_path(); + Ok(McpServerConfig { command: zed_path, args: vec![ @@ -174,6 +178,7 @@ impl McpServerTool for PermissionTool { updated_input: input.input, } } else { + debug_assert_eq!(chosen_option, reject_option_id); PermissionToolResponse { behavior: PermissionToolBehavior::Deny, updated_input: input.input, diff --git a/crates/agent_servers/src/codex.rs b/crates/agent_servers/src/codex.rs index 3eb95a6841..b10ce9cf54 100644 --- a/crates/agent_servers/src/codex.rs +++ b/crates/agent_servers/src/codex.rs @@ -302,7 +302,7 @@ pub(crate) mod tests { use crate::AgentServerCommand; use std::path::Path; - crate::common_e2e_tests!(Codex); + crate::common_e2e_tests!(Codex, allow_option_id = "approve"); pub fn local_command() -> AgentServerCommand { let cli_path = Path::new(env!("CARGO_MANIFEST_DIR")) diff --git a/crates/agent_servers/src/e2e_tests.rs b/crates/agent_servers/src/e2e_tests.rs index 905f06a148..aca9001c79 100644 --- a/crates/agent_servers/src/e2e_tests.rs +++ b/crates/agent_servers/src/e2e_tests.rs @@ -1,4 +1,8 @@ -use std::{path::Path, sync::Arc, time::Duration}; +use std::{ + path::{Path, PathBuf}, + sync::Arc, + time::Duration, +}; use crate::{AgentServer, AgentServerSettings, AllAgentServersSettings}; use acp_thread::{AcpThread, AgentThreadEntry, ToolCall, ToolCallStatus}; @@ -79,21 +83,28 @@ pub async fn test_path_mentions(server: impl AgentServer + 'static, cx: &mut Tes .unwrap(); thread.read_with(cx, |thread, cx| { - assert_eq!(thread.entries().len(), 3); assert!(matches!( thread.entries()[0], AgentThreadEntry::UserMessage(_) )); - assert!(matches!(thread.entries()[1], AgentThreadEntry::ToolCall(_))); - let AgentThreadEntry::AssistantMessage(assistant_message) = &thread.entries()[2] else { - panic!("Expected AssistantMessage") - }; + let assistant_message = &thread + .entries() + .iter() + .rev() + .find_map(|entry| match entry { + AgentThreadEntry::AssistantMessage(msg) => Some(msg), + _ => None, + }) + .unwrap(); + assert!( assistant_message.to_markdown(cx).contains("Hello, world!"), "unexpected assistant message: {:?}", assistant_message.to_markdown(cx) ); }); + + drop(tempdir); } pub async fn test_tool_call(server: impl AgentServer + 'static, cx: &mut TestAppContext) { @@ -136,6 +147,7 @@ pub async fn test_tool_call(server: impl AgentServer + 'static, cx: &mut TestApp pub async fn test_tool_call_with_confirmation( server: impl AgentServer + 'static, + allow_option_id: acp::PermissionOptionId, cx: &mut TestAppContext, ) { let fs = init_test(cx).await; @@ -186,7 +198,7 @@ pub async fn test_tool_call_with_confirmation( thread.update(cx, |thread, cx| { thread.authorize_tool_call( tool_call_id, - acp::PermissionOptionId("0".into()), + allow_option_id, acp::PermissionOptionKind::AllowOnce, cx, ); @@ -294,7 +306,7 @@ pub async fn test_cancel(server: impl AgentServer + 'static, cx: &mut TestAppCon #[macro_export] macro_rules! common_e2e_tests { - ($server:expr) => { + ($server:expr, allow_option_id = $allow_option_id:expr) => { mod common_e2e { use super::*; @@ -319,7 +331,12 @@ macro_rules! common_e2e_tests { #[::gpui::test] #[cfg_attr(not(feature = "e2e"), ignore)] async fn tool_call_with_confirmation(cx: &mut ::gpui::TestAppContext) { - $crate::e2e_tests::test_tool_call_with_confirmation($server, cx).await; + $crate::e2e_tests::test_tool_call_with_confirmation( + $server, + ::agent_client_protocol::PermissionOptionId($allow_option_id.into()), + cx, + ) + .await; } #[::gpui::test] @@ -412,3 +429,24 @@ pub async fn run_until_first_tool_call( } } } + +pub fn get_zed_path() -> PathBuf { + let mut zed_path = std::env::current_exe().unwrap(); + + while zed_path + .file_name() + .map_or(true, |name| name.to_string_lossy() != "debug") + { + if !zed_path.pop() { + panic!("Could not find target directory"); + } + } + + zed_path.push("zed"); + + if !zed_path.exists() { + panic!("\n🚨 Run `cargo build` at least once before running e2e tests\n\n"); + } + + zed_path +} diff --git a/crates/agent_servers/src/gemini.rs b/crates/agent_servers/src/gemini.rs index 47b965cdad..8b9fed5777 100644 --- a/crates/agent_servers/src/gemini.rs +++ b/crates/agent_servers/src/gemini.rs @@ -188,7 +188,7 @@ pub(crate) mod tests { use crate::AgentServerCommand; use std::path::Path; - crate::common_e2e_tests!(Gemini); + crate::common_e2e_tests!(Gemini, allow_option_id = "0"); pub fn local_command() -> AgentServerCommand { let cli_path = Path::new(env!("CARGO_MANIFEST_DIR")) diff --git a/crates/agent_servers/src/mcp_server.rs b/crates/agent_servers/src/mcp_server.rs index 47575fa3ea..055b89dfe2 100644 --- a/crates/agent_servers/src/mcp_server.rs +++ b/crates/agent_servers/src/mcp_server.rs @@ -1,6 +1,6 @@ use acp_thread::AcpThread; use agent_client_protocol as acp; -use anyhow::{Context, Result}; +use anyhow::Result; use context_server::listener::{McpServerTool, ToolResponse}; use context_server::types::{ Implementation, InitializeParams, InitializeResponse, ProtocolVersion, ServerCapabilities, @@ -38,8 +38,14 @@ impl ZedMcpServer { } pub fn server_config(&self) -> Result { - let zed_path = std::env::current_exe() - .context("finding current executable path for use in mcp_server")?; + #[cfg(not(test))] + let zed_path = anyhow::Context::context( + std::env::current_exe(), + "finding current executable path for use in mcp_server", + )?; + + #[cfg(test)] + let zed_path = crate::e2e_tests::get_zed_path(); Ok(acp::McpServerConfig { command: zed_path, From 3dc36dc7c372b3a3fadcac7d98b83ae517a18ee2 Mon Sep 17 00:00:00 2001 From: Cole Miller Date: Mon, 28 Jul 2025 12:21:07 -0400 Subject: [PATCH 0253/1052] git: Touch up amend UX (#35114) Follow-up to #26114 - Ensure that the previous commit message is filled in when toggling on amend mode from the context menu - Fix keybinding flicker in context menu Release Notes: - N/A --- assets/keymaps/default-linux.json | 6 ++--- assets/keymaps/default-macos.json | 6 ++--- crates/git_ui/src/commit_modal.rs | 12 ++++++---- crates/git_ui/src/git_panel.rs | 39 +++++++++++++++++++------------ 4 files changed, 37 insertions(+), 26 deletions(-) diff --git a/assets/keymaps/default-linux.json b/assets/keymaps/default-linux.json index 31adef8cd5..a4f812b2fc 100644 --- a/assets/keymaps/default-linux.json +++ b/assets/keymaps/default-linux.json @@ -872,8 +872,6 @@ "tab": "git_panel::FocusEditor", "shift-tab": "git_panel::FocusEditor", "escape": "git_panel::ToggleFocus", - "ctrl-enter": "git::Commit", - "ctrl-shift-enter": "git::Amend", "alt-enter": "menu::SecondaryConfirm", "delete": ["git::RestoreFile", { "skip_prompt": false }], "backspace": ["git::RestoreFile", { "skip_prompt": false }], @@ -910,7 +908,9 @@ "ctrl-g backspace": "git::RestoreTrackedFiles", "ctrl-g shift-backspace": "git::TrashUntrackedFiles", "ctrl-space": "git::StageAll", - "ctrl-shift-space": "git::UnstageAll" + "ctrl-shift-space": "git::UnstageAll", + "ctrl-enter": "git::Commit", + "ctrl-shift-enter": "git::Amend" } }, { diff --git a/assets/keymaps/default-macos.json b/assets/keymaps/default-macos.json index f942c6f8ae..eded8c73e6 100644 --- a/assets/keymaps/default-macos.json +++ b/assets/keymaps/default-macos.json @@ -950,8 +950,6 @@ "tab": "git_panel::FocusEditor", "shift-tab": "git_panel::FocusEditor", "escape": "git_panel::ToggleFocus", - "cmd-enter": "git::Commit", - "cmd-shift-enter": "git::Amend", "backspace": ["git::RestoreFile", { "skip_prompt": false }], "delete": ["git::RestoreFile", { "skip_prompt": false }], "cmd-backspace": ["git::RestoreFile", { "skip_prompt": true }], @@ -1001,7 +999,9 @@ "ctrl-g backspace": "git::RestoreTrackedFiles", "ctrl-g shift-backspace": "git::TrashUntrackedFiles", "cmd-ctrl-y": "git::StageAll", - "cmd-ctrl-shift-y": "git::UnstageAll" + "cmd-ctrl-shift-y": "git::UnstageAll", + "cmd-enter": "git::Commit", + "cmd-shift-enter": "git::Amend" } }, { diff --git a/crates/git_ui/src/commit_modal.rs b/crates/git_ui/src/commit_modal.rs index b99f628806..88ec2dc84e 100644 --- a/crates/git_ui/src/commit_modal.rs +++ b/crates/git_ui/src/commit_modal.rs @@ -295,11 +295,13 @@ impl CommitModal { IconPosition::Start, Some(Box::new(Amend)), { - let git_panel = git_panel_entity.clone(); - move |window, cx| { - git_panel.update(cx, |git_panel, cx| { - git_panel.toggle_amend_pending(&Amend, window, cx); - }) + let git_panel = git_panel_entity.downgrade(); + move |_, cx| { + git_panel + .update(cx, |git_panel, cx| { + git_panel.toggle_amend_pending(cx); + }) + .ok(); } }, ) diff --git a/crates/git_ui/src/git_panel.rs b/crates/git_ui/src/git_panel.rs index 725a1b6db5..f7efada469 100644 --- a/crates/git_ui/src/git_panel.rs +++ b/crates/git_ui/src/git_panel.rs @@ -3113,6 +3113,7 @@ impl GitPanel { ), ) .menu({ + let git_panel = cx.entity(); let has_previous_commit = self.head_commit(cx).is_some(); let amend = self.amend_pending(); let signoff = self.signoff_enabled; @@ -3129,7 +3130,16 @@ impl GitPanel { amend, IconPosition::Start, Some(Box::new(Amend)), - move |window, cx| window.dispatch_action(Box::new(Amend), cx), + { + let git_panel = git_panel.downgrade(); + move |_, cx| { + git_panel + .update(cx, |git_panel, cx| { + git_panel.toggle_amend_pending(cx); + }) + .ok(); + } + }, ) }) .toggleable_entry( @@ -3500,9 +3510,11 @@ impl GitPanel { .truncate(), ), ) - .child(panel_button("Cancel").size(ButtonSize::Default).on_click( - cx.listener(|this, _, window, cx| this.toggle_amend_pending(&Amend, window, cx)), - )) + .child( + panel_button("Cancel") + .size(ButtonSize::Default) + .on_click(cx.listener(|this, _, _, cx| this.set_amend_pending(false, cx))), + ) } fn render_previous_commit(&self, cx: &mut Context) -> Option { @@ -4263,17 +4275,8 @@ impl GitPanel { pub fn set_amend_pending(&mut self, value: bool, cx: &mut Context) { self.amend_pending = value; - cx.notify(); - } - - pub fn toggle_amend_pending( - &mut self, - _: &Amend, - _window: &mut Window, - cx: &mut Context, - ) { - self.set_amend_pending(!self.amend_pending, cx); self.serialize(cx); + cx.notify(); } pub fn signoff_enabled(&self) -> bool { @@ -4367,6 +4370,13 @@ impl GitPanel { anchor: path, }); } + + pub(crate) fn toggle_amend_pending(&mut self, cx: &mut Context) { + self.set_amend_pending(!self.amend_pending, cx); + if self.amend_pending { + self.load_last_commit_message_if_empty(cx); + } + } } fn current_language_model(cx: &Context<'_, GitPanel>) -> Option> { @@ -4411,7 +4421,6 @@ impl Render for GitPanel { .on_action(cx.listener(Self::stage_range)) .on_action(cx.listener(GitPanel::commit)) .on_action(cx.listener(GitPanel::amend)) - .on_action(cx.listener(GitPanel::toggle_amend_pending)) .on_action(cx.listener(GitPanel::toggle_signoff_enabled)) .on_action(cx.listener(Self::stage_all)) .on_action(cx.listener(Self::unstage_all)) From 05d3473df857b0bac61114fac0df1a127cad8afe Mon Sep 17 00:00:00 2001 From: Todd L Smith Date: Mon, 28 Jul 2025 12:00:41 -0500 Subject: [PATCH 0254/1052] Fix Nushell environment variables (#35166) - Fixes environment variable ingestion for Nushell. Closes #35056 Release Notes: - N/A --- crates/util/src/shell_env.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/crates/util/src/shell_env.rs b/crates/util/src/shell_env.rs index d737999e45..2b1063316f 100644 --- a/crates/util/src/shell_env.rs +++ b/crates/util/src/shell_env.rs @@ -30,6 +30,7 @@ pub fn capture(directory: &std::path::Path) -> Result { // For csh/tcsh, login shell requires passing `-` as 0th argument (instead of `-l`) @@ -40,13 +41,20 @@ pub fn capture(directory: &std::path::Path) -> Result { + // nu needs special handling for -- options. + command_prefix = String::from("^"); + } _ => { command.arg("-l"); } } // cd into the directory, triggering directory specific side-effects (asdf, direnv, etc) command_string.push_str(&format!("cd '{}';", directory.display())); - command_string.push_str(&format!("{} --printenv {}", zed_path, redir)); + command_string.push_str(&format!( + "{}{} --printenv {}", + command_prefix, zed_path, redir + )); command.args(["-i", "-c", &command_string]); super::set_pre_exec_to_start_new_session(&mut command); From 5aa84254490b083b8d8bf12686e5174b61e29da3 Mon Sep 17 00:00:00 2001 From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Date: Mon, 28 Jul 2025 14:01:07 -0300 Subject: [PATCH 0255/1052] Update Nightly app icon (#35215) Follow-up to https://github.com/zed-industries/zed/pull/35119. Release Notes: - N/A --- crates/zed/resources/app-icon-nightly.png | Bin 230509 -> 242801 bytes crates/zed/resources/app-icon-nightly@2x.png | Bin 840256 -> 923937 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/crates/zed/resources/app-icon-nightly.png b/crates/zed/resources/app-icon-nightly.png index 6c5241f207252641c6e11dd62170156b4888cdfd..776cd06b1bca36c74257dafbc4bffebbbc8f55ad 100644 GIT binary patch literal 242801 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

            vZ@H-meA z{I)PL+m(mEwtU$(sY`49Z0;2woL-;b7x#LT-NyL8*8B6OA6LKD;3%O_c?b`E37hi!5SGERRzi?agO|L|g$kJmf%)S3#cFYhFJ*ITtW{1hf zFVUMBU+#$EZQb?Z*HbHh<*DTl?M&aypT~E7M|oR8o8ms--}59ndJiOoPs%#Vy=lSy zg#1+{*LScRPH*_rxb4Sx>E9K9Tb$u6&byV6#$+>BTiaY!AgGa#+mVa7e(U zh;fdJM!Ldj?cj}B_L(yc@24G;9z9qt} zEBxMu5?1?ndnH~Txo~nq(ah>)H?qr|0qv&%v*-#F84wchh5r_l9d zURN8Hv^QzZZkavh(}Fowby}VQnr}EZOH1sSxq1%!jWx&X1+!l*>xettcK!3t1B?F6 z<=AOf)qYup|IaVO_ZxLJ-+z&1yX(9#`dHD%>#dPXn4doXa^}nXHVLTL007*D<585@FsyVO52%PTzw(yt`qC>r%JMXEH`C)B*U%NZt9R4 z$*Ys?v@$r~hBcz{>#J$nx41-J1D52XC9K(VlgIfA<=L((EVt1^sJ_ zx2&K3?eO>iGh=1tOW*G@m}7KiovGs^uce|v3wH5)@ALnvDs)Tqp-G!_Nmp*e)a`36 zCmD8Zj?NKzxI-}E;p-R7+>a%$3D2wJxBs$F{sWuzUN6bC&TEmUUwiyK-v0V{PoARw zGNC6`aa&Kkdu61E0Ag?aHlroOut zs_mG2Eaqs9ukktOvr_^+-TF=*7JBn4+{Iw6xA~;v(UN#u0GPa(N&Nh*t;#Pf8?-)q!4F-vaUy3X?HA$~2> zW(BpnJrXuo;-5Q3^h9gVVgG~1Py%Vp3q=34yq*FBBnYu;bA*w&=T{$owG zU(Ixnf*#&!W_#`j`9w*c;k03X?)FOMu+-$Q%I(>AcR!!^pL_ME|GR8Cp03x*Gwod& za`o&kq2)}$Z*H#>cDP3+Jrb@vO}J`}28UT)zC6s(R@EvPsEriW3~sogE810&B)Q$p!ne@<^&auc{~cG8*P0*Rr^)lu*Q93F)a=AF8`pC! zKPk3*n%#=hQ+v5wGNpJ;l4mSE=`sD_hm8VP&;J08ltl^4+Erb?DBQrb;qWcD!iVe6 zt$6Q!-g%L8dhUmJAHCk+GP2=c$olejb#JxhnN>d~&I>#r-TwR=UrhAxBgW^~wZA`O z_WA7#+qh2$)E3OV*SWO3p|IrJf}1a2>Rp<3EUWtEr#`VYd$=oiEj9SNUVF~6WjbNG zQygDOE!Rrz?EA61``PVZ4`cq{-Tj@l`r*^(4}aS4={RQhGbif!w~em8r}ug+JN{MX z8~^$G*1z%n>*{2`>93qpn0sF4#=9$BqOad8HeWVgV!U+Y)V7&3pYG83;>+gDue~*7 zPg<7HlY7n59o)sMvZVzyrA3r_O)EAp^?&1XBP`QD>tXiUb(00ED^^K!{Oab3;ygcz z=|{?4>A4u+HYu4EAG_70_8}aSA?&8LT*?Cta@6Z1KBWTsy zNB*K7&cXfs8|;4z1%!r6z+cR~Hs!TT8mb4#B zchUC#e|?8tvKr&I-5hsj|0rKu@`bnJt^&(}|HdaPH%w|OYk9ncQ*lkUmQJObs<>QN zio(1lr5P(_f>Wv$0fnUub7ZW2CK;`cCaU8|kM_n!OWyYH0+yKJ3RJd?|+ zhr=%1%#J+H?bjTh68m@G^Vq*})w!*I z?;CSG&J2CEJhtM7#r@n3`dxG9$FJo$lylx@w^a1(N#9@1doFNEQzG_sMUCfSt=#FJ ztez(Ny{8qn9NZ<;k;44K2IoaV_(;7&gaPMW+S?D>O(_olkTrmndZOnEY6;>lxbTw zhh(qx+ub20A9&9Doez6juYSnq_~FLI&#dB{4{#h@zun&2w(((dtmBIP4yOd$tgak+ z{{Q^F`K-5hsXR}-F@5Vbx$_nI{to5M89XeUd`ga8N<0(Of_XY8ybaCkKwuJ zNddQ_{og(KPBA}Tpg3Xm&cf@HXWUlHkXim!aLP~rwkHps-#K2w<`5Zl;)hg2v(4+} z)e6&M&*&fKeV%@N$G%-%H5wPX`21g9t5-YGqFtxCFsfxv;Dya8n|K)4%>1zPNX6W8 z)1Cb$-HWevw`V??aiVc{yucnEz6M{_5QG1(|L?M9XyA%2(lk52;OyR?Avq^mzShXw zZs?JWUnPHO>hzgUzgFw5?0xTRdQj}q)N6u{rxGriHFiH=ANOEy{V&r$Z~Xs@h`s4f zVm)+N;hkOSg-PAB4qeEY$aO0A*OrXh#OF!hS@m^;Hab08rJ@urqWZwg_pjhx9cgUaJ;#}QY@Dfb!n}v+=7pKRjMztN?&ib5B~k!SZ!fMr_mfk zld0tuC;wDGGkRj7xkmEaN8x);mg#n!?`2cd)$`fbM%K?yxzYW8<9r>SBO4XhZc9DK zm^FK`=$*UAPo5MzAHV0&)vLZ|rW&~~*!twg*0blB`Q`0Su-po`#Ie+SLdKSY4-cZB z%W$-ZcV| zCoc-L>GW*Bl<}ZMZN`OJ(#is_w1Cuz* zzMMO^O2hl@rC=3-^$fRCZ>puVRJ=QzR*@pYvSwRejGylYuT9>JHd`4!-)WLo+;_3P zHs__ynxh|H|J>!=+F-)MyV*=U?MM5CRqpqc`We(dHOq3Ilqe4OD>Pc5EwuT@oS&j{ z=C8izPvo>0>8m+sKiy@;vE*uTrOp=p>#m?Ilm1Zv5sMv06K%`*YM%Z^J;k2aQlSLv<*A&{kUiSzN%f~(wPg(WdBdx zl(xw{ue}~@Azc*85LSGng{JQnodF3h*28nM5w{OdBV9K1^cRp?pPu1@d zhvSMqY)mdM7Cy94skEMAyjO1a!^BO=ldjh1vu0acTyPQ=k>g#~a`|BA>o!-0dHz>ukr#Ac38G zA7oti`)%BsFs(6KWY&wx>%Np6{+2$sbJ~^nOdD~*gH3=A=Nsw^;){kJcE6I&y?3l z-Tz!0FEOoNe2uyJ^*-J$KE2bv2j2|vJg~X`>i3_~+x~~w{nY;P%zS?++Y|lb)|$%7 z=G9k^-uGtup1uEe^;?Fyoo~I;J2l#5IFg^Y2V6LN-*Mr~TZiu@t?J54ovRzPsdWd# zR+d#_HWFgfv~Aax2tAIxT6r&Z^UNPHw%)osc4&l_DppIkP7BI3Txohpo~7>I`b5^B z^>3Q0iefJAI?)o|$I1M{=iQ$d_Ae)u_&w$CQ2%NusI%?iq~If6=WpyX5XiE+oVkN< zrFfr_pX!dRgVB$&H$7kYg~@(z*x$|R`WxSTyRhon?ne{9NVQ1cS?gN*bb6c-d+#bk z^Gm0G$Z-5!SpW3<%uAfy_pkA)eE*ZaF0e}Xe)WIJ12Sxx4|w|j{`1NR(lXV0`D)L( z#TU0qxqDaLx_0zJcj3&PPgv(Po!?#brRa)ZcJJCUv46XEMLCw+7o6IE`d_tmTHBAB z31$0~5ABT+ycpP+P0=)li;%KYQ_OYI}IAGxq`yTB!xs8uw^zX)=JhDrV$A26D$G!9a+h*@S_t$#Y z&()hYwO*Mo&%Uoi^!2(MpSSEu zoS409f3LBWnZb=Ud-ZoA50!S*yj)|DY`VOs#Aoo6h87?n#5Me zyJ8QEe_8WW79Ml!$(G`Cd03-P>&5*u`!rROq_@NX_BQ?gfQs zQzjfRHC%3IJ^A_p#wjnQBu^=p=X7YdeBt?EVs3~U;00&|Gocbyp`<3 z)&`aBEKQaS9l!WY13$?BX|8W7IlB7t86h3kNRv}VecMv~s{Z?W-dg=4FwyUjnuh2C zx8kMeV#_&R^IYP-qmtXnweWi^9cK6TVq4Jw4Bo#fMGC-KPBfgXJGP z-S;QgJ{1(Q{V{{1PUMZ5)G z9`kc^(eO+PTyV^5?$6z-;?a>R*Bp1<|F&aC9sB=>|G)lE>ezK;gVGTOzUTnapkt?H zetI|cX|t(I(Wt&v>dE&ohD(Pz!sDWDd}v_SykDHp&eFNRZ`#DRMRHr2rPj)){9d(i zzp2*iiPu$HlNcEmlpnOU-1VmW-POuJp%W)RXX{-f!OPDzDR75I^1P5sQ}^fIDmooo z;<)N~!%yiatN*AaZ#lDg;z503^`6ZdXIgb18b&Y5V{m4y^^X6}6&rW&*T#!yGj~>e zR4C2S_KZGzcm~^wSMMHgWHa0Mb%RE&)|U@443V`Lj|mAmoM`s`xvqjEeAm4D*2m?4 zFShTp|K%_%QKU2PFxp_bSRX&R+(3y>K-><9r3WwxbPeg3&D%q+1{rc{u^OwI{ z8WbMh(0$(gyw*e}LyPb!tV`34d7YlId~vQ&+?5_=&N$1&>#Y}4%MZVr7?w1XX*;Ih zuUL`4@ojNM_2<$(-`_Z22sUisU2FNx_L)yH@4_vSPd{p~&&f{9DHPSVF)4Ary@!!u z|1&+cD#`YP;k+%s8&@9HIM?;{7_*PnW!;oX2c`d31o}@iJQ5&s+*0(Gy0!_F3 zwzbqdJKkINl(qaS7i-Cv`%{EObL=1H^hPMnT6k=dY6HvN5D}+mm#j~$D(z(^^o7Vol7hv#ho?YMeFoq95-~W4eb!`=6$n@QU$J-}xPjre5xO+#U z`r7YrC+Z)T{}tH5%@B0p&?Bb3E9A8f8g5JVY_xh}{9afjmTUFBhf!JY9(RL_Dz;uhE#h49ic_+-8s>7TJdwP8a;bve zjoI9HznHYNI~U*U`69#=tTpk0=fZ=xOZ8OldCvNfvUSPEBQeEi?1V2aJW;2=c)LY@ z_s{oJA8ec5c2;Wh`vqtCJ`{HQOPYPK+crn^lgqyp9$V|!$8R;Y7qze0)OxRHq1c_Z zeg?!yVL8$vXl9)@*? z#y0kCU!kCzSpL;}i@>?7Q*t#Yn3$A>N?lWol5W2ylDux=+oKb<1bvX*F=eLvgk{fy zes#-)KQZXId`UcE;TF-Kp503>&0P27^Jn3j=jC-`?`uEYk$=o|X@TG)^|k-Ra%c1i z#jN>w^YP@zS8rLLzOA{U{ei}VWk-6~u6ndgp_(_<^-f9EBiDv+(tB$Ean=<4eD{iV z*GDrhhsSrmKf7i(_r7^}?h}y%o7xRE(>|`MTd)1DWSxhGo93*~8O2TP%kv)|z1lvl zQMT#I)KKq#Ui>||cC%j`F8f*cy`s?PZ1Tc`-zS~w^O_<0a#DHlkL^WzwV#WQUfFw- z{l~|zlWe+I{h92?XfdaM)83FHf3KfSYreVqLDr$;ZXYI}s;fIEYj*LTJEO24duH@+ z?|%tLce++4Eftsh{C>q7UhydbZR?qyW@QTPmh~_%y*YU|J5R;mC)58;vz0V8n-Iss zZhvs+DX-Ro58Hhg+}q9`B$siHebFcRr;9%KW+cQU*49k7ER5NzezNb#HNIWDKVDIB zvU%iiglBf$dT~Z)%e-=rQ@Rz?I=1fD_rAo?ESsBWbcbuLtmr?}&e_j7cIXNC?q2#n zLV*AM&V^~`fAPr_9QUot>`;26uwr-N-Ib3UCOaF?%M`v*pSDF}mbz7H&V*IB{_Ap` ze#gwz7!=WFeR-_}BN&T8mqEe(gT}ar2rO(RphQO$ZVR zW#CkBmM@+&$BDIZQt`)jkEHrVQ)}e%B#Sp_aVly&=nFquRaVt?_TonM*;DP5L|YyU z+~>OPRV@^Gd2haL^?kndkKb1AI1;=3UsV*#qiIj-_G_P-&bwT+qOfvjQ$ujgr+exj zYxjTr{NuxWTUqzJ*DOU>I>onbUK&03&1@I5l5<`f#Y>fn>lEJquzj`e6ifF!!F@R& z=Fb1C68HDh=Te^S2_9avxi9Y3E?T<#3TwT_+7Oi|tff!SuU-2$DQSVux;et-mGZOs z7gxAOX@wfeGKOoclIT0D{j+_VzOB)uAC1!P26Hd3YxS!u{$IQQf_Bg^#Z=yqy0W+z zQyJE3t$6l#T|knlC~H>St|FTXAHAT&W5*@?q}CKAT)edVc<%9sSEJX|+AlliXs}oA z-=}Ly|L#?PXRdjv{(suZ=FI&6Tv1b7YdDN`4KL{RrE<=_TamIU(|5U;zv7d+a?R$n zoco)<%*>Fr)cZTLh~dU2$Cir;iEVQKHeK-huJo>`PvKnrJdd8+3trCXeb{)z@kOTq z(^>(`j^Muu?sDeOJpxoJ5RmBvN`_!b=g(S z2UzbrEm*epPXg3IsYXv+7QjN?!N) z;IvhNMt!=WFW3FIzqPIK#o4D%OM9;UD_tr!X*W}o)TR%%>q1_h+WV|C$2U!X9ZQFq zO0m>J)=w5**OtEe_A&STatq6S>^dQQC#IU+f3>MSNc7sg`kPsmSD$T+e{kT}V%ErG zif?qCeyWGASd;T_-MaN3=Iv{KU0<=WYr^W4)l6q>x1mw{*L=G4vj|Zn%DmjM3(r^aNRxWlk5ae7?zd=Wle<_PfXK zM!dJ`n6u{b3{A(&a}0mKWMG-`aqF`g>Lv_lK0la$lWqQ+{Kd}??PU?$`OvFeK|!eK zMZ@Wj^8b(jm;b#tbKOiwnKfPs~MsSsEmlJb37?`8uf2 z!X>k5*Ui;Ot1hNQi!GmZ>>#HegRr+v@}{=VN2x~d&Z#x*-prklx?z1!{2gAqow;|o z3|O!2VfirWoq~AZ9ixo;Q;ys_uXcyEruH3jEa7IHtKP#{{AWV#*7i5Gl`{eugm`;j zpH3}hdH>xaj?v-%YMqT8I(Zrk)XuIAP(SYe%#b5d#p0Oexo!FVi?f#IF!nrtq+z1m z)*cY%=sPQS<8t%XuJg=(=KLR+?|*f^ajLS1(Mvo@bk3}>1u|SA+G!=*Dm#)bjT238 zhD&TNndWYs0f^V zmCNTaWwQ0H+dC8%t)3A)xpOk}b&&}NkN>WDe?8zxou-&5qsL?~wSw;s43WBpA#qnW z*)6-a*z`P0>7DHEq_>EiUyA*-bvbZvqseUC6-d#!fLnWG0S z6b#*~EZnXJHQoMoS@-C^vPXsMcBv+R%V1aeS{ZaTGgs}5<`W^gr`m?gr;2~xApf8L zr|~;RM&8WHydQtpf8hToSeI1#Kl-^wyvJ+RAD8bPd~b5Sx&P$4-g@u#zGCiDe>Q%~ zv$sCXv8{ON%!JG9Qonx6b>AzP_u0GupxQH$i7XY}EP^_Bv^yR*K9v0JDt5EQpr3JC zwTVOb_xtKOfpf1jFWIo_vZGYdG}$GF{AaAJQ+nKLP8^*5UdHg_620T!&KJ0^vu0*+ zE7eS2v|*km&lFGDTC16bZ+e%=ag7_sXw4W z`N!kMpG#%j4OVYCrW1Q$#uJ~pS5_@BwkmTl6)7rw>CsslWcXfOZo5y*LCN_pc268K zi~AxH3k$AiRen3%zK!ozQO!5K*skLb93tyj(t0)uJh*s>^W9XQ(#lQTX$cb*QWzRE zX1TT=x&3zEJnq8M-=%a zMt@wqrSX^K$A)9)Lw*S998RD0Bz=aW`<~rmhL7%RB&bhaubrfo{=fa6y;fC|dtBIw z6{#7U7`n>uSIhrz|NnTt?8ZE?*|YqYe70$M%J#LVaY=9Fhp#8@Gst-}2Gv;vy+8f( zrDqc-|H`ZrJ_k>}ym{*S@nm*4*4xSR_k9lTJs!T=_UEC7o&(2H?-v!VUVZP*`<{!& z8zN9G_p4Fuj#Eg0gJ4_NgYTP|7k+<}^j-1aWcmNAcigitXMN%|q1)H{(B$$- zKWil)>$)U7@7nPCeEhq6$Ll}M|L6YWS#`YZ%+Gtwf4%TJ{w?UV4ZFd?#It%8b${R8 zx-b4fOd+#y^2MoMQKo#cTn{B{r`(Kc`P^+TvEC?2!!QC0! zr{&(I3*~q){W%&1I{@?wN=a&Bp zi(-EK?WfMJr5Dn|{!J;I9kNcdvB*#9_1^9KIoBVbAjCac=IrN9Z#y@nAFufLNa#!a zj7hmCbk`L*7;bxda?y$8OUc>`!*3aj?B})`u3;BDLWk7ujfmu)(Xb; z?NZjBU&?Uz!IVz|v$sXOo;*kNqby_j<6YK@4Qdlv*Q`r%DxZ9?(c!{^3kgCqm9mQT z^GcVf$Eh<4P3wHG{f+5qUWKI8(%HSIY-XC}HsAOpZX*`dviQ?^$^OX`nG>#Z96ac# zG_kYks#vki>(@Rto2xt5*Z%lkxO@MGOUnxUJ+^KsnYp%mkGJoNN)4vuUz3Xfp^isruVZq+?umyjY9i6>!DSzap@TR;o z@sW@Asm?lac-n&msgtKCT{T*IZexPg-Swgg2P|Kl&uu#2xc`Uvf1`ij?*H4pV3FTH zRg1@WwnQ!zYgP}foSP@7_(qQP-RE-23GV;5DR{OBhtK++HEFSs!nb{5Yf38P*RybC zR(_6}bAFqh_3l44k0zhdJ{2&nZ`H(Qi%#CQJN@{?^X!b3@rl+fpFXI!xi4K;yIf$q z*{Ax)cCjZm9z2zs|AtGLfxmBdkLk*1lU}{A{P{}gVVUyb zMc-=QiR+%axBl;{Ip5`i7eDo3UAEQH?)9PRUpDj#=yfb?EnBM-CMkK^zwYI9xBq^A zeeU~}zsV(k=3%=&(~U_t`IwE6@9OU8<34g`-gV5aTaL->D_eQCqC?Gdp@Qmug=O10 z_ANHmyXD_4eQgi-=YRl>C(ll={=^r2|KN(0qLljci>vb=K6!B^KQx4Ux6ndQAFnUn zZ*75t|xPW%tylS*dgi#M6hT=pUOUta1yZGpKv zCVURhP-Wzr^!)ez{}1Q??f&6i|MK|6hwN=eYkTybo9;2bSa?K;h5DM#Rlc-{1CUd-`~dG({a@^+M?hoRlZkQ!$qS# zB72+O&H2yz9E>Y07A+}saCl;PSg5F>SZ7u0+=|nO?pyu1|ET1%=bW5-uioxC$@pVy znQhgd*5$cJx@JfBb!EYy}p!RakJiscWS@CZNGPP`u}tHk1lTi9vk8A99;j_BBVb5?s7RNliwoB zp&~tx%p9-Y^H}P!{qBu#(_Sd=JD(mC5wh^D(}whk@$q+i%D?QWv!AV?{on9%Y^LRP%wH3VU3C+MSVw_kfY=pPfPO zf2+SVCo(1J=-!TN?C$3Nv;N=p|8oC6#s6FVKu@|+%&79vobSe>QmW0-Hv*%ZKV{E1 zas2DrJ?rh)KaHzj&z_>~eE8D>Sx(DiRvaY{^KUuV{4f81`t_|JB8%9VUqs$IV)Jxm z{mMBnuX2biIjLW1_%qOQqMiD^YR`bw*fm9wbI-**Hd|)5jdkXa+jo+McBVA{yL)=~ z!NtGtcTRr$_v_}x=2IE!*T(wK|JM}y_Ohzj?zhF$Zb%(Xj!^bwap?>Daxlro$L^$0 z&?&o>O_?9E#V$`=W#Oz~s;z5rZTZ5x0!=;Y{Q0($vrab_{@8S2kFg$G@>~H6mo>L$ z?qg>7@iJn|lOT>w=edpA7q$piWQrcsJ$3t5_^hX4-c0?wviIHp{jU1`L+$;4PX9Qv z+^+NfhrRdP`Ryvi-d*Vl7j8VgC(b!TQ8%o~py1yg{V!5Jr}pqTUHYoc_(Xs+Tus2_ zx$NfMBCaRDOMKnrzN_ncif zQ~qT2p?}_z-ez|+A{;MFU}x^lsTSF*>ER%3!X$b2_~e8s)faQm?M%~YF`4wPY~6cln%PUiWY74Imd}1gee=Gsv+Cs|v3%vp2UBMCFFbOSy|8M^Tz!oO=amZ_ z>`u=sK391lJSSg;LDK!cmfGpM4)JL9url-OA@kqQ|M`1=!~ehgztAe~Xc{yZp^&yL_8dyQK59=7Q#wQ$kgP3j`kRyDqG7Sga~*vuWfaOVf-4#9=j);8YJQr_qmG(*uo!8UWs-&^Y%X0$6O zz75yq#Qae+dap&Bl@|h1-DLBha@o3_z^K)J9sk|+1%I8PY zbKk9ARP*U{y!`ochfmD*Kbn7hIQ%?0T8vd$MYc@oN`~=8U{1DDiNL zD*yS7UNu&MyY64t&8gx%7WnaWQ_oCqj_oNW>j|D*Kq&*->-V_SL~P+y>DOekuKYVE!!{eS6lX}_w*v;c$R>(tm;QobHA^Z z>wLRXv}%=l3Y!rpOG}8yjE1t%CoC)3kl|N6H32min3{SEtn zZvU63d1AHSQObL3olc4xxWgAu1y4@U2u-~BeK z`v}Z)dLH z$etRud*QE$2_NUQBt1HrBPIJaw>Rd1$c~UCC&$+cF2UL_8xJXZTwt;}l&N?$mPbC? zX2-#|@5KD))s)_;{`iV%|Ih7zrrvN&%^&#XiDw>$~B@VmCN`}4jPpXKW$%Fgx% z{NK`|yg9G$i1F@;y7^Ci#0|Gw#BO3Nn6&Bf=DKILqAM*NUY;!PR{wTXO0nw0zFro$ z?S6mKZ~A(Th2LD!>?N)qOBkGN(~)dCe0G#X4Std)Lq1sJnA&<=lI9 z+kgB&6#t|C!SecF&rc{O{JE!fUr}VApG*V8@&!w6+qQns`)XYovhn!+u@qlS^MhLV9h<;?83? zB|^?Szbt=OV^{65eSUF4?2}nbK7C)ca&bk-`{-n)#rcM+>jjP+-<4+3n(aKdcdbp) z{nkrNZ!eyHJVnyNdHw@%Z)}Uj=9}uGufFbh`(5Lt)SM?LE*$CIzjRf-!l_)puBb%y zT|XCHk(&HT-E?M@rpD5puYH3eb}(H_GHeO(-THREM}|k!^s~46C%-+MXc+T;UZT0* z@u2>jMQ`-1G-m(E3$Ibzz{=Sh)64pQv;4Qsq1>~}+dmaAJX>e&^+Msn{6CN5qYj(M zKRT)ZPq^m$_Zoh?-?8(L-~4G?^C~!BJYX^7gf;5iuU6JOYv{8c*m!-N;Yw{W9oK#0 z)AxnE+EuzV&X(`xDgFQfzv*+hqeM5B&$)kXXPmvIl~vc@Z+CxB^bB8CQ<>(rieD(bdBMQ0}5_KJ?0VtO#X zWokoFRS9eRmm5<)IPM94&11PCNEf4=Vjxc%d&r>mPy z{h0z9bw8Sm?mE9NdTX2~|G_^KIAm270-w%FIp?q-af!N8nf}ca?S8VRY~Rj4eQlS? zCms=K-W<1L+S?XQM)SeqX zt*$6OHs9v3gTrI3Jti#kk2-9OCSZr{BBU;MxQA74GYsuiGTc&AuNQ%>|~_d-TBm7^|wN8d+p;rQrjc2UcC zdy>w%1yd{i0>0m=+J3+Ky|YdAFQNOtuI=9O|9gGeRuBKSMKNNhdn05{UbdC#41JTh zzbiMtN(mgwS^}_>|AtBzbpZ_u%)au+Zd#=#IpuhR5>2q(LH%Y9i57e*dzPy>R zN#xR8t9)6WXRZ+~d3TpPsPi+HCf-P&=l!@iFGt()&CaDU&EMtcJpPtu{^;B>Zp+t3 zXT`qGyxOw9>srH>>IAj!oxZkuvepl7Z!)`LFCbE-c>K+&6U!?5Z4xKP8vdL8eeUgD z6SRUB?e{A#cU|4Devt33WA}dL;~D;DHzuCasJS}-u8+y7o$s!FDq7%U>dc?_x19O$ z!^6ck_5Wn5JymBh%r)U*I(B2lfz3M7jyujC7b;p8F0)7XvzyPu*GU!377deBUcAjb zdDDqOrME1iX&2XG7Dn$U`4WH69<|?-by|b>$=-LxFRguY&hGbQ`m?p{#hehS@bEtr6UvwQaq`M$#g*qz&N&q-w}1IkZgGiw`T=3fgtm%JKdIzc zy1Odq-t_u!`HwS-+oqeJFL?iu(=R-=xVBdM{euW5YZse%W{HsR^7&g>RP81&NWAq= zRdZhRIzu~^yDWMvw>0`bzq$GOs`Q6H3Wb}ZuDqPu8GXp=`JEkCpI-ZDv)%hbZ1;h) zbNF|cUu2rZHMi*94;j$~j6UI?S8TI*HG5b40>yI93`ymennGT7I_E5|g>%5=UYe8t#lBt^f&-G_8Y+tGP z^!v%rc4ePFofePWt}n53l{#bp`1cyp&tE?^wR(VA)%a ztP0(Ale}5vJ*(#XTx1dGtz2l7ytei|^GQ`91~pqV@1DXlg)a{=lwCYN=kkfgj#`I& zY}V}IbaCB(ae7h+gF;61qZ$F}a`v?F>*CBI)8?)HT*WeP)^d-Z;-8)CW?kEIS>b?w z=9ccdE8a3L7qb)eHBUAumE`RRzfi{EqY%9H%T7^-Cy)C|^NyXd(8{CoG^zd3T#YQNYvOcfC{`La*5{^*(=te<0)?Hkz+T;^P+GGAx&z6+|NRT^i* zqO`wz)qVQ#aBt|3HE~U*+w33x{{7P;;wr1r%>FK&Et{s42UTu%{C1yZ^TYkSels3e z@*w8NCy9h`wuuv@vaX80kx+Vmta6#S-z}5-dN&Jdi#JDo51HmIc*c{zI{y>1jD)1G z;Ai3JqsMlgJfwfEc5~eEho&0Y6ZTKNYZlVL5`0R$_1LHB$6A(tUCYXGROZ9n&MkWr zqo2ocA1dsSSz~2)xMJV0+AUepJC`%O-DGz7QeK^Y_6uXd0B@za&kYh!2Fn~(_5T0v z&!3W{_ha;BZO^xU$Efz@K=b-xWQh0@OR<`$HnyO6y@`FdLY?-C!Y*7a7m zFFkUIl30_Ko87^ES$9#y)RhMq!aKB+ZuIM#mx-j+tMbo~^vd}Ar=mDtv?{%0k;~n= z-sNJfJcn|$r$y@tt~$T5$N7g~g@X9B8)BP|?iKp`{OMEPbMNQ&{(Z8ytxiY#6`y!n z@|!7zu9dfKJ;RF&Pj6{>lNUXw>u^s5@9Og<{nOUJxYw#(E&iMN$(pj+Uzjuc+Fu7Y zF#O)U=t0g3ZQ;`ue&>CbCThKw%X-mTv*!P_qvr)1-bF6YZ4mGHK3Q4sL9?PUS=iV0>@x(G?PI zjM>R+_RpI;w`$UCvD7_3A{uQ%C-JCnlnn@(ylR%UUC#9ro7zgvD*jyi8`?OhM=$pN z9lrJcT3UO|CO`SU=hADlUr(9r*W7h2=C9KDA2Pu#jp?+q%h4l_3g?7l0^h!=;VqJ6 zta?*>|Ch`T9m)PYftyc!i}tz{#fClloXfjl563@;cegwic?2GlIWPB8ut@v*;fQI% z4*4I+%y+=c6=eOVWwS2#$cJA1bv|ix$66QH?_G&%(mr(noQf*fD zda1-~)3uCGq)YvA&$KAAPz&dn|20-=os@UKEn%x~JWD+Izo#koF z4XdnFzqdNA!E@{m%IuBrhLw}k7pOQbA|F3ty_?=6WmY?>#m?Ct^N9}CdnOP^*MU-M5oIJq7 zztH8+&)Kh~_f*wwjEcAA%uS8=RTVoO6J)^ACE6iUw04K`+nLjx{4crAeloR5(MC>k z#li+|fr=l```ms#+O@q_dcNhax|}B#!ndY)Y0Y21ZqE$!U46#u8a^7bV_~% z|6Z;ralSdzFYaISz9Dm7ZjRe08{Ks?Zm-yt@I`;h522|_dk_B%yW79WckixSr>Bc& zcclD%|MRrO^eG36|ID?MeezXU$^5oe`?tJ@=To*aO#WN2$T$1w?o_>+PYsQ}g_oi& z7Bk;{9Jk~}N%yOFd{)-_Uo8H$%kPu;yMM=?sGlEiO?vTSTmIx|^?LRR+$zHMxe_~d zFCDwWCnA1bQdIE#*6qp}ye=Y2OMe)3E5A&b@ zd`iI?jRfO{RngxbK2>;YxUc)|D!=JdLV{jwR1p1Cje~M&&y4|iV>{*d!k=q2j8>z3Po!xe>Uf$PIB z`9{xH3$>u8pV^OiL{}&*n%Ml(>R0U!uB*lij(A>n+-C90ROO;sWy-64$DjPacmH7c zyg$m(3G*t%^lk=9WN+9ReNUj%N zQndVNaO_G=jz%R#j$DCFD{A8J#Z(`Yo4Moaub%$2X-gNJmS$X`k?H47Z=lpf(0dg zYaicnnzg_pyDDdb=PcE9}&J8ZDvjZlu77ok^YZiQ3XYKGpw8@Q8?UH_a zp5r@}RSC(jcPe~YD##LW&iK!w*89JzjPLE;RrQIb{K+osgFRn={nP(*Ym@i#aBRSS{SLd;{wxrhr}d7k^8jN zP=Cw0t9!L0OI*6`P6FGp40b&+jsNc32$kMj^-#RHbCveXz|0FP#NYp) zYyU%evB$alKWFZ5i{9HP#`>dV>$Ap`l{VPpP}Y8w|H= z8%3UvyBy?MY+Lc^vBx`Uoz=-Q$9B&uQGB4eXR_D9sj8p;PP>^~e5Cn6k*!w7)#w$S zpLZNt(CV7CLLgQzK}&1$>TWs1xe?Jx@05=?@`tpDnEAy?x-$vy;NTE>_%~zWoW`UO z5mxcjhu=TBxNGC2qoR)(mb3L3nYVq8+MCS#dE<+t$)cYh=w@+V7P+b8Um?){n|bf1ds^ z_Oo9ysaG&VawBI|)WaaruWyW1O7|Sz*~@1bH}^@l#LLUwwy)z(S$C(37Qa$Z5dL@P ztDRIq_SwVwtwpX3#XReDmWVR$S@14>-_D(Kx!;REDoy*_FIHDF7Ok(|@%Uir;)k^-qJ9Fseel>cf zDYMh8nLHmh9todtXs6M~j5h}st#K69{&nkjul;nvZAL%a4*pl0{dTU;Jd*_}ZZb7z zzST9YW0IM&)8Ox3Kju%qn`be;{xJUmUu-!SgU;{Q%QK&fE%7@xF-ed$c-e)mR>oY` zaYlEOCU){#33r_P-I=n|#_7S73(j?`Qx#bjoOzYp6{LLNUAKh&|9MkZ`Z*aF?EL=q z)vH^FxmVoEd)Lpe^(9Ov;^c9Y)-1cossHa?Pu+F1B`BtWV4oC-ON%Y;trM6*p-}m;Suf_Y8$_v$W2Z%j7bad;+w(bj6cSPl$<`pL%eiT?cd-AR;Cky!Jmz);8 zsv4Q*YVt#ISz1l*yK^5b8lBuHyi4dWT_xuDyt*%Tg{#_@fEUkg*fJb6XNW9L+o;rk zaGI`Yc=+lKcXnTjc>aF&`~R1IwFa2wt*Qm!$-pBOML`_6^1NYN)PvyKl zg4fS*@1AOMhO0rh;?%moU(Q{0o^I*%YjOC@n8$anUthREc!P<3xx=5eoXM|MS-2KV zZ<@SdWkByjL9uT?o|~zpUGe!4B{Or*N=CD4KmQYkFXJ|5r*x!tZd{dbnv>9(8vlIp zsRiFXi_Y)=d+%AGuHyfBph(u>+;EzuHYhgg!_lLk79F$j*2z0Ct$NOPUWLiuJ{cd8 zUVGuxx^~7R7t6mZAFvO!;v4(drCPOr@ZqN=b3f? zd-d^!rrv5VJGHm{u@2mE#>HjFn(ha#kuM%rUH?^iul2*O9j?ZLESX;!T@$bV`}mS^ z=b~&|ogyv%4~OkPw152ZqWFfRI2|PMud)&8a+jE|Z^!wZOe?EKr^&i>e z)oJ~XQQSr!eYEDxD9%je)PHwt+oeTz>UvKq`)V%DR=Hy_L4!%yFIl|e)fW~2t7|Kz zs-uHCWmXAZdi3qvvFGPnzSQx?zWpjCKh-UOYUq^Je`=?g6 z#ksdF-_5oE^xJm3vud|otGF}&wVun$ex+yrxmdnuSn}a}_uC_h|0_bar|ffMKV5J% z@b1x&j+#j~pBXMqFu8rb;mI$B6DRicR&a;#?nq-&*eg73N5ny%%rhGg{GDohbv=Jw7BP%?W5-0jr z&3^dwW()hXbur~!3@75|&3w(D7#jK2ME{hM(0{?wTX$Z)e!ps!XV7{cv$qTl-Bqy; z$9hV(|NcGGb=A*0-Fb|4=^octUArkgb57Fzr5`S=b>^0~B6X9lK-C5bRUt6DYk~S?=!tBU~)!_(h5YtwnuW5?0PX&6D+L z-?T&5Di@he;*4JB5HdmX{cM)7d2eOQrbRn??R`T5Poq4a=KfTo9U*g?{NE9lvYV%Q?5MZ1 zapkmIedcDt#NL;c#4eZ9Y%0uHs^)^aFdDHa_9}74>}SQ_go6N|!%4b4uJl@?f9dzKta> z4~5Tdxf7wpJ@=yA=j0-f($BjDU>FYw8`xv;zMX|8wIf=kg(s$o+TKhD|l==t++muD?+EhzlW_%FWxseW%wW9SD-+K= znXz4VlJm{}BRcdLQ(r9 zJI}a(;kU`3Cpkn(917a@x`AP-{l$F8Yh^cnm7n3ixM24$sRYHDDV|Y>zbx7DR5vtq zX_ApY^Uswlyf^;Xa`ykZud_}s4>%8m3()hbh`~h#5|Twt5uU? zKP=5~;owiY7L%~ya8yc|#M= z(GK;uB_eXCS~NL--AL+c^fA)s&E}0do!GDP{8O2z!t~R{cl5*q-URaquCOrFkWejI zt~516e15h@dTH%_z3^{h<+euZM`FahzpUg@dm%d|c)>H*E5a&2--H+%OzLZpnr&`- z|Jj`oFzTb{t{69$+k*FlpMinos|iol#uw(0$3gVg0PPMYmNMuepdF zyVvSHao#j1lkZy!n4V17X17f%obM^0J*#ejh-=4__bi>uc#12h&iH#FzT~F$1ZjD5 z8F~4~TeSZ_*LT@_2oN~(- zA8Xswa%S_kC>5=5lXYM3dXu=;@LbSLgKNGE6He$!6r5i2K<0GGxz6*_{x4&AkE!o) zzCM?UL3_X5Rjp13)dX%uq3*5>F7DmOCtlGyvh=Ig%JRc=+k7-OoAV>b^8PFBP zlvcUBLq9^rA~QA8^V@xu{#^{8_Dv5zR@Ld4t&y?$S2L=p-ekP=(|BRgazRXX8EdDa?Og zx09aJ)7UjH=Cu7${SwB-(WjKb_wjJin#8A-kCY}a@Z;8*y&}E6*rf1ZP3On{?*+40 zOqtUe^guJyb?NSk`tO$aXE`squHL5prvLlN=hnifW~_|0F-lZ4_fc}_YU=A=sM@*D zdq>aY-#fAu?jE>ms`oLnYLD591vaAGqL0#ExxW*55EHTP;GT0u$6oo(|ETwA$1I_q zlv{@GHg_*i(PolJVcS13H-5*t#?F5KpE^Pp3|bbPb*6pCdf0TY*Js=u=v%I4fR@fViz7rUb68qR*}to%A-jj{MP$*XTO9NWK`B-(48 z@8x`NzCD0rC%b&%t(f#}1|e+0IW>j>6U>)HzB}_GJ+wbRxbLU&z8llE;siELX7XKj z(Cu^IkM2df<(DoAhpX-VKV3Y0$DTb*hXpj|F;tgkdQY#I+on{s^lgi6r0)Oow!fZe zU3zJ!`!-uPQ1ajw+cQTi>Jv5fs|=FfH#2Qr!1vZ*_THsQFlvOWW>g{L#B|!O!)6emqvYW$O>a^>gOWVo!P> zm9)2|y86y01@7%1EZL2iTC8WjKCpe?QB~ay>q2gA7t20*OY3A^P?g#T<%JJVE#I+@ z|A$Q~BX`Qp`;j`@rz;jSa76e0zIm9TXr8wF*`JLnOOs>1c&yr?>hHS!!OzXp;|>OV z5cEFdzU%mtr>nFtvG2E75P0UR#u}aXrHK)jGCdc_{GB@EbHqOb*E1Vx<~*>PwYBn{ z>q?9IzqjsIb+|q&ym4~I9DWyj&BHnmL!9+Bo`?9P>2Ys=c*{or^t*F1ELYZBvoe(3 zu)Vm+K<)efWv>3>0+T;&iTKyUx>W9J!D*xH?Z!vz%4c^c{{8>$#_HIYjgN}j{L7!AG2}ASxdolw!RC^LishW{S{cd zdO_9qU-KX7|NZ|zzhYnY^>Z=eOTrf}O>oLhzV_d+ZOaAC#HAeJn*BGJ)V3b3iv0G} zuI_pFy^A)lU3}(=_)1K)53CMynW_+T{%BVB65pd&&hzl^c-mXy{OXF*fjO+%-D1=3 zY6e|h8`;v6zHCxZ)r7sWT=Cx`CwzS=cu0oz0#o~g)o1L3B3ExXs+w`8+IY{F1@ER_ z|MZ9DQ&Ls>>uc*QHAA;rELL{BU~BQg=)lE&(N%_a=cGk-*VaWXIv3sdT*p`Iv|76n zPwFH)22F(n$7V!+n!4X3SaVOv>yOKg&%J#9c}kq9R$QmunL3f*?R_~9`8qGGsHxs{ zAl)v+{@1P|#^X`HR>pX1PTt{t@Y;^vqdS_pc73}Tennuml-KmyZreY0a!iL8>rT$d zt=YTp=p|tVotKQh8K515Y-{I36WGp8uM=3e(w%=ddWLrz9-JUK{QzGuAxIgIYiSVEG@YI8w9~QW7sjH~WtYlCtmh$WK*Om1A8_=1R#!?Zn zXm6`tdVg-)?z}BK6?FF`$%Z`@idxAb%5VSW|99qiv)R5cLfx$vTubMfXf0M0Dfaeh zZ4#5Pczx1SK8-gESaqtamUE;8H-$b^_d!v7^n|-5DsggNsd2v_F>Iv#4E0uOP z$a5VFS@6=z{X*%sBMirWul;oY(=Mg2<#XoCy8r#&p?Z9S&k3b%lP<=-4xb#*a=FK| zvd^UL>TC5IPi_ZiM!$dV9P#5B@23sY^SRodEve}7IDasB-?lH)coh#No(wFMzkk_3 z>B*gl{W353y}x~P_$lt}*l^%vsh3CJBAv%+9ro|V_C+tW+}Y#l{qfdB_8S_HZl2Pg zHO*CH)2ZUz3i%y(a|5_0erEa<^gUx+pqdo>>n{Ql!Fg&SFaE!sxS-{=lH*;EEqw2% z94OoSdKgxZ?8AK^S`sI*=?rvgSf>Xx|Wn5+2(twSZv4YBa;me z+DOe`^tHBpB~QWrcVY|&3KVTSbJI^r7&o0vS5;mSy)td%+J!AU+lm;O&9`5#o3Hz3 z9>#NbfDKFF~&j{l1ndRS5 zwPJGV(p@`F+ud_@KJi_^|M4G=w1#I+%_egnH7}a6M@d7d-e%i*O`(}AX*GhU7WFx= z@mY7lswDB~5xeD#nQr-sx<@*O3_ij7# z*|d@MmB-ZOw-wdg_RKe4E4k`{dx#R>sT0;qSh*6o_G#SwRN5UcGHd2b#;Z$&TfDE` znl$goZr8OU61KuqR!wne5iYHioxnI_;}4-N{jo-=auPxtQe1S;Z#&a{W?qlL<861N z|64~dPqwa9SdriPI@5>S&t_kJUi|kB=erxF&lwJ!()Sl`{mqqkvTECl=#4)fxGuZ1t3NkOB<5&T zA?tGVknmUpFlyj`vRE@S6c4fCv2X&Dkj8e&Y_$_ z<^&$rt;* zbVcaXtPh9kQi2w1-nt{^EwyZ)R)f~9oP+T->$LZrwK(-%q9bM3F25J5+UxFe`90qB z_tTyK`As$AYYzPQA96|j=xpQJU)&7+--LMPcYKO{yp1=-Yr^aM?`rqgR;mkRDu--j znOk~$*2zW6HLup*@2Xb6pRYdEZRuV!8_~1#=kB%4nRjoF?W?d1&Bv)pt1j+87tdKP zu(aKi$4~3Ui|v{(k4?Dh_EJ_;-Mym2@3cj+t@oD&J_}BBeY}5s`4=2tXU)!Vt@78)#Jd$W?VmkwCVuu1 z)NAa~`d z=Xz&aouu3`HF~JW$%|AT6p1TS^QJ~uXCm^@|pPAKdQq&C~Q@; z_Wym;pYY88-&Zf_K07#``-@XWJjbNh^>Rjzi_H`_Lsd4}EvXAcOFC<%@zcS!i{B0lqyuV88^7dub_dhX{UTpd6 z1?PsnUu*mSe>^ET!{oSFliS5@z2@8Hmm6*WsQYuW-ltT~4PN?QZ!|6*Z9Jy;Bhm3| z+l2B{yRO|a((w2>+o-tH(%#CdtMrz3^*7y{yZ`E%*wizHNp4k~&JuVsO6xSshDkP> zEGG6J_H=IjX&uVEAikWBVNLhL)2Blm`QwBgYJ^@2O-i_TutG`h*?O+ytbVCwOD4#l zF#dLm+wb?zM_%9e>wfes{P8?$g2CetUs=pLe+zbNI|)4Ex-ywJ_2Q?0B0W)DuX+SI zZFxh*vvPC4tUdjzz8Q)o}iH?VMaWK7Z$&`X#^nANi#9&gx7po}s{ceM^&byoaLJ)Pe@b|GQUA`w=wh?bL^Qjxzs1I1~xWdERs}hEU)<9 zyq?!JiNV%?S#hS^>&OkC{{?VnM*jC>))!ne)%*ne0u%HcecTk!m7(SyrNo z-uM-@-3j&Ie>Mx-)c)g}cKc{{UG@2-*cWRS#6H;Ov^#2d!>Kj)mtTMQe|rCC{)Z{4 z`~SZ`|7ZD)_i;~mOn80Y!|mb3!kri2I611g?$}^EKX}QaJ^RcOXLJUw-0*sa+JXmr z7p@KHF%`ZtsX_gT)F&0MOLm8(9ipz3Jf3c*!63}=vz)!@-idj|;_mLw2WohJ8=qga zJ?)IpzKY7s$a{}%y{|fU#)qhz8|zkh-#YcSEz|w2?1o*gZ_Wr6c$xl?oN+aAuHow| zO}GE5emi}AFYmS4`a3yloc?~0j_P_WD!t)^_m_=ZGql2*CD(w?VPn`CWH>>;sAr{% zXSr*RVsief?Fu5jt-)gcE|;}D3N~EL@9CG5inl*F;aT8@S=Fz9i&=9Y5bI)`a_{`- z%gHkG`R=XzTjkE|dV1}r{i5%WY91!PKCnOBYX6=cAD(45DT!`bZ~L9CWzVX+b2C~e z1TtQ8pC|U&;?JM98=GEw^oF|5Jr~P2zvArFbNg+NzkKvb)acXY<55$-H!Vnfr{O8L zVEe(MjkBuj`HN$AEc+$%2(-Ye?rzfmrM@R~_)cr5wrR7T*U&p3bRgo=e*FYJKD7^? zU29&ye%-if`|R8Wr{>kx7goNVc|M4xPfUR!ctPmx4DX!=c9$3V-Fzw1w6G@gRM_fm z$z8QK%OvtWj^uM~&g=I|HQ{rQ{BIHMc;IvT`nb(?n}v9tB!VI{Sd|(jV)k0}eY&sdL|+I>}>8eR8g*9K|j_)D=bMP^L$4IcjOk%ikOWBMcJDtm{d4>UfcNLrrq;> zirME|&fL=1oX4ope@ONHtb#eZx{hJpU;H{BeNFNBcKV*ZMf~^my}Ca(&rG|guhZ5N z67g93yVH~-w$_IarE5;&;aoA}$x}yl-D|7A1V72E_3=BrU~|#7;Km~n(gBC`1Nm-T zx86SM(q!R#-3gPPJm%S$@u{2Pj&;8I?PA#zI#K=+PpV>UCoFeg_ecM1chFB?k;`1t z!An^i0(P!fSp4}UpQm%Wq<6$E|Gu*g`Z#BJUM># z*TwAGD$SxO@_ zZ}>dpc^(&be4H26W7iPd;}X2hM{ez#?qkLuxLQ5eeqk3&5a-!q<33fu=p_64V1Y#`!mkT47S>+=3(iprKh z+Er}H@Ha~R>*(Y?}blb$-d~j)p$Ez35AgYVDEo(1Ppb>mOCS z-guKgTY7fO@rRoi^V_6&^6!6N{-$tqO#lBZU;9Gtpt)kvmdDEH)bh*a*yV<@ElsI= z?J}|Ee@2O?R)$)U=-2WOIa-p(v=5&S`1^j{pJXo9!u^KffuGp#Zd%?|9mrz(B*lI; z+qUwoyPHC9#oNefpP0bV&vmWI;lycL-)Ml?--GQCGD;~Nilw*y@9;v8CO@aP1gQ@dP#z%K($+V zc;C4V-{yJNPMLpB{HUS^9eLDyqHsXQ;b zkf>-nt?0hpvpCy_h5PP^+V_@dp7&~bwsvjom+RLYwE3;Gf$}yRp|n z1u_3uroq2rO5Pt^uvPo_^!4*@+y1+CM)el+WvPHOacoWMzhn1AEl6BhyDoiw;De%v z=XU=8U8>G_!0pNMlj}B~m?NAW6Ze;;=k2v^Cr?}d)Vn~(;iEy2rUz5|kBPO{0z~xQc&^zH7qsw6z>$M5bGCXp zPO4lbIs5V_KG$yshiyVCYMw7h7inKra>?jB@A|@zKUP@^JUD(VKexE){$K0=yMH{q z|F6A@w>0Idi=)co)nF-oOGNXv;On%ehUrH z*{;i9*Y<|D|B67hoq9>L%MV}f6@n?7KbdSM?Pp{kLCLrfuF_eE*;NYVm~T)uJLB z3{E*L>#j25p3r+$MM=-=_gq(}BEyuWhkEmqPt6cpmG>z;(87C#*?)bk>19OVoNf8j#bN`KLKCLn|Ls)2vAXZ|)1y*nZzlSkvs@zS)OqTQ z)Xx*;{!J(LU-@+GS7i|Y=k0z5i#PlAPBgkidy6MNO&GjkmxpC|M2Vg`FoG7KK*_1 zKl^6CZ|ip-ZZyjO%#)>|uaeuivcLCnh~4AIA1u%P;@Nw+=ltQr20zy^)X3Eb_jzr~ z&76^8d~9*omuE|!=ku8^y6`JO=8*YEYlgrE?ft@2UQKkYd6uRyS>O35ALEoMQ*slR z-u!)?=|$-GonLcjuF0}b;gS0OtsKMS)gsB?-`_o+ zsxS7WX^H*){(CWE=y_7@GfAGU-wn_cBAt1)GxlyJGXA|*s-;sddt`C0hwz|ZoExbjkxv7B+o|Z z3g_L))4y4}PJ1wK^DgPx zo{tJ||Jrx=-s}0(ml*b6{`P#EyY25CX@#dP_?;A2>=s_Nx~jV5i`3iv{Ji7}&e$WY zzS5}?+WaL4Zy%q3X3a;x%YtXU?8JX8^7?ni`;>j|;hlv{2VO<#*eDz`S-dyfB=u?H zTS>LUxo>CwWm?pIMt8!)!uQ+v|NfKR-1qnU+h6B*)SeXRU3<26%`V>O!NG~|#n1kn zbETb+_1@1&wgYPGPX_RXs65!?65+S`QtbZhAB@zL7XY{%;6xI{cVBYKNt(w5$KGuACt z(_N1(%@bkjifA=vzx_Vmt9Q|eV?Zmdis`z8S*HvBnSNC4W@@ZB7P5U^>4W`GU4ClSReM*d-`S0^?@$>FR z3TxMIzhBqFZ}%aX^Y7W(-=d8ky}PB7@(*_la0YiD-4^%O#`3H)L-zTPbNlW3r@!B8 zKjUACi2Nmi8L=Iqt8xAsQ|w_nZOJ45Tm)?ddLdU>qQ%<-0S(%!gN zv;K8`{^6FKIPurUr#%?vPF>2lEmfvns&l&At{IPo$$}v}#Rd?lrIJ@Vb z)p?h-4q3haQ&jd|WqZ=0XKCA+8kYL;>6@P3^j&xVo0%VOUo@YsRh4KYzUcDK^m^mW z4fikmyWM`9cO&{twEWwdaT;yKSJU68J$*h~di}F!%1^@%{B!KzUnX$E=*--0(_inB ze5%7V$Kz7|)AqQIw8veZyH{L%dqZ)v{0(2*!1I}JEqQCjeJ7;-xx_aAiibgwtaRNepgrT{#r|NY;UEd*tGTUKKr`u*BRudJ}fCcEi-=(zg_^;t$g)*>-n=6rA}3reDa(ld;fT~{{FV_^J1IbS4r;+VRuyHuBu<{zfSw>^V-|0 zwvx_n+RKYRc;_GARwvi{UT*(ahVXEn@-LTp=JU?fYkljtY>~T_!?UaVT09;o286$o zUdMR$F0-u3EkWJWAEp#scVds29v=T&=-mU=9gDAjdotO6`btx4>iecH4T8_6eWsO_3yy!{ynbSW0e$%X1ezv#&=)Qa9 zrKQc4P5k#~%uVHR(+)b(#_Zr)IK|_Rka$bMt{-=*?KjWx-MV8>ufPr7iQ5$`&R*?P zGFkp-lJoY0BhA4p@5Vn~IbB=U>O=Cw1t-+_7d)JnoLjEJyxvDrr1+uKA79rS2Yzf# zbD#KAk$6JM5j^6x~EGhfx@?CTnq%kSIp zRUwy6BGl!QcFUp<%gl21%-)L3uY3J_Q`igG{q!}x>KH+dx%Iq+AH;anfbctx3WF)dv>|BUidrHH=6O(GvOa! z9?KsHzyDu9%(A5SFpDpnm{I+)y`H7osV%Q-)_$yPGJ79C-H>12=EK5>jVtr(9&2y2 z_N;j~@%5%tQx$VlzZp$i+s!KQUcKqhILuTs=(*2L;y$2dA3sWeDN;yZ`eE?hn?kT*ZeggBJORinqv$ zeZLX$tF!w0Zqd8?lK!&a6^p_TUVfW0tur(9gWp%Z7Y`q$)?Z-poW|G!_e|Gr3F>i^(}$|+8k zil#OmZrr5_8W*#*l9@TbpL@@G_qVM0`nZTs@?AU}AJh%ojT*mCxf<%XMDKxs$+O8t zOZPub`TSyeq5FDkZia1_>THg#;$F)#bHVG0UTPxd`xj4o_`gdiswVV{{OL_B)q87x z%J{Ga)j#`lrSGcAX{SxOYI3{oY;ai=QgJh?YuTS8eRrnTuCt&1_&}pl5WD@(fYmP^ z{p~qw<)Nv+V5;h!|8cu6=^hN%kDJw9^7v$)mHrOBj_Inp2N^`NxI$MgNIx`X_uY2W zty&Y4EhRhqh2F2>x+?l8J9;*QNdK{idOXsf8y}s!={AoowT@yO}!*a!UU0X6XC& z`FkzDP}ib4+fL->pEKV!ch$q-?{@wF56b_0Y;n`h<#FNa#i6&Gt_g)&)PL=J3gC)-GAfopmVwozMysH->2u|MxxERlUERQ7Q0*Y<5U?Xx-Mbo}le4%)u@Y5mKG%rkHCaz~vy)5~(mOp>$q z5AT{PPx&K4=lP!2zrWMak^bfT{PXi|eRr*V=6`nHitw*|!w$`57et$s>v5VPIO`*-bti)4Tf) zO_ytYwTrvtjGp&1pO(l4(`>Fi{&MPw^?Q}r4Q-w&S?udJnBJ0|>yl&sMT%+m*YEDf z=N}aR-&!xq-zT>`$T^hBuc80K|Bh{eYu1J+S-qWFc2VQ2;lUE0jKG*VvejC;0{0R) zGY@<@5O6_S<(2mPDTm)Ke>FdqXXe3Gnew}rI6SXkrY>5%&F1cgRMQ=o`eq5wT6f_M z$8UwimqPPy$knZr-oECy)Q-Bw`TvjquXs{@qxL5El<&`{ERCL)t}Man6_Ie{qp4_+ zr1Lh#x?^lb8&$T8-z(g(Os4yz+kw2w*t55!%3E(my{xtVvGTCjzPs^j41Z`p-WajO zRC<1#twOid$J;TId--io?g)RL66ePvFvI$RSNNm*4YLb!npjSBS1XFl{16qg@beP4 zCZo#jzZgX?Z}Y65e{H4Adz%H?NlA-sTU(0O*W8%=&#i9qk$Zb4{@j22v&6R?pTFh3 zh6U?(wg%Z&&Q9=Lbm+c8T*|r07cB(**zI$>^>$`ozst*LQ~RqVb)J6fz0aywcf3tM zvfo!ze^yuj>shSL8db;lyZqRqb^O=lq>bNq{OA76rE^DHXSMWe9TvXz8i}u?(w`g+ zVkmz5asJ7CJ5@nK^+4QoMVc+Ao?=`Z+gVjW}nJ2fdZ}nMuCtlraA*(@= zc3&8GQFP3&z!3E{ycT=S^q!|VeOaGYcj1Lcyh~%ysTXHUPnxi+tPA| zXa8xN5+)0ugwB&)rw{&~_*r89hj`&xQO|eoSesk7G$4p=uU_8$ISG+wAXlGAG{UmoI)1)v_*OlftpsZPAyckL6`em}B$eAX|OO93GDV^Le)wR6~AW zy1d+f-lM*_@=bgU>(4&>vNqKDe?|oRx`tUI=ARBG$$t#2pBFYIjE#|L?`NLwn2bm6 zsaogGy>Ax#^6}$I4MCf2KAxvpCBkOuJN=*IbhS)w%LJCpi`eHvFyGu* za^dE4pTA$=t(J(tZX_2ri@Pv}r7mLWqawi>_nMgk9C`%jHB@E0{8hNDWae1CIp)Fh z{l7NvxE6jxciNB7QA(k;`I++;zYIU0cklhDA9t4QWj?%h?_<-vzklcdv8|~5`|#DH zJ&v{u3xh1;_Nad^{$9^7n$4tCcyEQosXfYiE$snIpYB>I{PJx;eCmlMT)UkYwKqF{ zI`On1v^(|0>gst-8IFhBc(grV7BKtEtm)G1I?%Eu^uwLXZyH@ep657c%YIwatoF@t zk9g``srjA_&X>|PRvDQZPWx#0J*D@n_DpH#dEZ&Wtulb3=)SPb|Xr8r%0T4RQXUvdZVA z>D|3md(Zt_BpSgXbmG&Tj>DzPioMT?Kb&1qe&mPFj1%wP&HT3fw*P~NKl3B5|Kzr* zsW^Y{A=8taoB6LBoM`>-vh3#k+mJ6Nm|Vp`_Pd9Gg-9;ryHO^8Eky z>#gUo+=xAKx)w30@r&l+z+0`$ zK3&^V;l!D}F4_6pQ6tgYx6kjHzwv>T(}%Vb9N9O8H*j5e`Lt<$Soy2BH>S_7?N9Mi zP@D0;Eob2;rmnAn9ib*g^7;Mw`+mPU`RlWp$PE#u3nE7gT~>Y$>T#R!SD#Dexxm6R z%J-zZ7T=!`ZLu`s&rVf;w^WyN+}sv7jqCgyj`}>Bbcp$t%@pD0OrCbHc?`utY<|K` zP9mpI>FiI~_KPK4Fzbivln2WgT{WX#gwH*4@BT~Qb2~R4h}P14$D~ob#8px-=EfYI zqgH3W3C+2^Cxfwe#xuU-ISK1UU&8w%si@ zE45}9=1sfZCm_$oDZ`;U<5))W`M1YE^c{{yG_VKRiCG9-A^?=FDSZ&U1N*6 z))V=%_`mLMCjWuF@~6qiOQ>JD2!BY~y5-uIIU(1*#9tKUrrtP~FUX$8wtr#2k^iheZ7k|9T{Y%S zYqp$`VO_WK+mSb#Mm|xS{~pae!eXK+XMQHZR^n>xJ&o>TnX<(TH@9o&w)>g9s{rBEY!7ndoZ}2Hm_bmFmeMWz$g+WEY(*BFn?)k0E|MF8Qz%xF?&Fr%B z^w(v}n4_aODsJvdc+!)zZM#L%Tb8X~|G%rgFXdY66V@%xJy~M*Z|}R_+KeG=-z#_X zWE-qkdcOOD)1|{NxgVase*ONh`w#iz%WpAXSYLXme$sQl;=;bgi7R_F44iH#-lq|9bYR)aI(jEgc4%qWX_JIxb5&?!;+seS3q-;kPTUZS7qu zmKMozE^|Um=oJ2AFSh#s-LGh`%4l1EDfV@ObEU~Lg*8%}OHOT5wwwLL(=upH_q;t< z?$`f6_;barcIQTg&jxP{wMz0`ye=)(=G`_sdftueNgI_f?fv-j5e&RA9C5Y=#M&t;|# zi}flNb4)7FF@?O=ET6SqFY4W^|IydQ`mS%?*89EXQEzzmhpH6z870um#Z%_>I~iF zW6yt1SyFX`QC>LZO01A*1&fAwG;_$mZ-4BbxzAW}qIqW9qFASALHkO6zxk5WedCeF z-e->Am&HAoO57{B%i*=yvsA}Z%VMfO*qyhIFiCN2iLaf>6LsU)@6S6PU!VJp;Y)V? z{~xDs$Nrul%)7)$^vu$t+L^p*H>|o$+cKoRc818rxUKn|AMYXP)inF{>C(pg@*j1h zZ1&pZthd;v6SvT(_T!G$OSkPO2G_j$!M*szF}a=h_lK=teedkA@&(tgbXVR8EEZT2 z6m!va`p?(N60btEA1`VWSfH_nY1))S=fg#Qt!(-&*lfSQ-fkQBH?LB)52!qf@gdlXfrGCd?Ek3U+(w239i?S++j zOsd@Dbm^dDN|Scve>nJPp~>b~_pAP#IOY5MUC-^ix^{m)?Dg5jx9_gSicEusH^qW% z{@(xAFf4v|XyKiyEX9BHpKWB;ad$VZLwfA-rk~6~p@4mj!KHiq`vF=eT4iP(v z%5MLA|5ZM%2&s4Ud?c#x8*_YOLPU{uU%)=gfWVfiq75FJ3vRrBVd%Qh{EnJyD4W~i zC2!W2F+O=)y7d32pW5rU=FY#m#B7_`?`vE0)+slMf2+{ixO(2%IUVgznxAzw<}8-I zQn&2TL)CSE7PDVoC!kf|!Z1mRqgOuW#gw?~VUABf1^z8_^|WHFeqy-Es5-}~~m(v#q!kpXCEB8OqsGje_FC!MR?=&_xnX*gh*`o;}Q?AZ>tE#yx@E7MeD9zR%lN|2Ox}y0`ido1XLDn^!NA+pW7rU`|Z4s*YanCBw-{ zPqx`kjgiUGKX#+*fb|BJK%-~sQ?(RVwQbm>73b+~ozYzX{Pr78&IhdWT%x_5&stKx z{a^JXDk9Y|KK0Y8?TuYbj{G7EC+OWaaGQE)lGoHDk!eiMkMh5MJ6fM+-o2sc`K0Ho zzS`V-d`hXsfTeO%V&&A7*~W}A3wCIitzfV;TKG0>>NMM%4_`WIF-*C~X7A>7>yPex zNn_K1*wf~1*B9>V{bH2L`$W<_C7-S-XIQi&m0_Y(p67+8=I=ReGAk0YIP+Ovr|Zl}f2#0N(T0JK z=|%2`@2YdNGV>k_o)*6G#7OYJSw&-_xaNE1wG|!x>u-MSJJr7T!Fk&`^XBpCA9!SQ z>F{#>c)QsRTP^ziR&RgfWAJU8%cB#v9dCPdt7bjEBq*d>?%xpgVR`v(@$$0&_WB2p zKdSok*nqgH~8z-n{xb7&+!`D;xFHrfU*m#JeS)qkFwLCU}x!WU3OVgx=C#p5sE9~^zTR#qoy^r3% z=1BG~tF32v#J>i)PW+xcvsHO&<%L_V2PNv&{BPPCX*Ea6e{&3GQTSA>9xOb-Sd~PFu&U^P3z{`1-HY zrC1YIZkb={94Gv;{nDwj+dociuRnUb@8${1*Uyhe&gJ7QGUDFPTj%^iS61@k?uSo5 zeL7uo-Cv!TtFLc+#g`8gdrPlmWUiiA(41fY`nBI;)h92HsL$c%GPac2f4-P;^OVav zXO>-_rEc23{K3huU$5_Dmv4UkuASl7*Do(u-T2QFSeCxRB07q-b+VgJp1t3i;_a^^ zctvKkMlR7a-N(K8>l>z3+GoGtt3IB!VDNomS*6WyLWh^ zdWu}`xevepAK-udrQSCMKTMiD9L`GQ$b|76P6Jbk#S?2UHb{!2FlgYGRUao28a z)l6Gi_wV24XLn_a4u(juzjHOro^bMj*z9dbHg3OPCt(tzTeo6bG?!qFb60h3^>lU7 zhM>-9qi1rFzqTK{V%wR|!1~qlTuZ>G71u0fYwycknDKqvj{DY)oec9B<5Rs_8cRCA zUX_1+au_|L%R?zCE|| z{vVM_x4OGU_=;}PmFvp4ZfG<-d%n6UOZ29Hq4NIlt_7cVRF;4LsvISMr<^Y^>< z%P%Xw+pl;vazSfQh>z2xypz8+%5h!(diwF#y}JWHw2F0o_db<7i|hE(>MNQ_tTu{< zKgtE&E?m;PyVF%Obh=KFOY1wi?cez3&6)RO+Ckej6BaGw@1?9V zhsk@&HY76}^|8I%9lA!6T_!}&iF;=8EZcc?`pWMYzw_FX{{8;FOH8VNC6X>V^~Xei z4!ibf)q^!-@jhsRtc4yGSAIcVk^sz3A?1& z{Z_~9@3nkmJx9*Ars3?wrwTk(Yd(KF$o~G(vuC$n-fnuYE|9g+A^%pEea3^cm*NUYP&DD`toJ7tYSVe?rslcjx`4$8RGwKHU+% zwZ1uJmDaYqN2Q-%40p`v7h9sU^3R;jyC(en@bWjS?rDdEe|LD_7MoFcWkcqwMPIKk zQYe_Zvi<3$j9K=kM=CD9OgddYO>)b(Kkt0Ik4{awv{H77jP!e9er}c6m2Bc=Y{5ppybu=%s7MDFLmTl7wEv#eg5dph~(Zks#q!R8)s=N!@A?eMm>ZF}!-PP2dV zo7HzGSaB`oHVDj>pVwIte!@{Y{!)e}laKb+85achOk(2s#uv+#FL`5Q^$#B588H_x zRfSwSvzPC~ryWxTlene_M*pq)Ui4%)59_O`I@<23(@ZKgL~FA4Jz?h!nzH69bGhwu z%{?jqzGl=LKAf-n@vpbt^%*uVd`-5eC+~~WkhbnTcWmR1P`?Ddpl6NmAL&g?<32O# zoS0AQiih3$FPal)eyfuI{(k=Y!neUOv2oTn;+^7Vc<<4Bp=7UMc>i{pjYHOXPa$9Z za{;YZ%B4KQ_4RInQQiYtNYeP$V~CLIm!H4(YfYXFryz-77EkZj0V;X?L!f z|BRD9ThLl3oqu<(UY)G|V@8a;G{3|CzP@+=4@qtRRX*)@-J!{{t23u-CaGz%Uc1`! zQ~jE*tF`HZjkVW{CLX&#@ng>R`*-5{bFNQbEd2WpceKoWna9t5-C_;wedwhZGPllk z>i(HJ$@cB+2iES%{GD(on_HttYvV8G*+F$CI$A;nLBB-gCe58Wg`1U2_?F50^}TIr z#uKmVewin381wD<@*Vs3tW()mu3J+1tM1j-^X{9P+TLnjnW}#K=~mlK!VkY$vrcY_ zdpmD!;d}1jn~URfBdSa5E6Pp3pGvpsGs}qc6udT*bCy=Z<*M)DS;tm2hO8Dk)or^> z;L8#TWy*+9C# zulZT9#G>NCj-@@;vFX8l2Tz{7xa!aQwb?c8;rjY)waT3q_a;mJ*%({)Xa2oK2QOOO z-q-4H`zLqDj=FT&SLc4oeb!8US1hacnj`7A@*Mr9ynhcDig(|3y!f;sH+@K!Gl);dk;TioxO}z#xm&d&8Pi$zpkzS`YVF5!EWR1w|}?ieb=wAkXKK-Y5LqW zlC5AOMBaa{+z%9qz3f8==a+^?Hozh3p=u(_4@crF{0-!<2A;c~y*KNT+j z`Z{fSS8L*5ro&V3wbrOSXIRnM^X$>K^ScG!slUH_+wMU6w)qFIYP1#4{=#{XIodbb zdyd${hldP*N&OO8^VM!&hHK=G1Nn$V_8?y|PN-kkP}-m+wEib0O{Fvs-)8+CN)Xg>}tqx$;(FVNdbC;@Pc7YVYpe zbX#}YkH8=QjFu=JIBmea z{_A_Q%R40&|9xcOF*p2xcYVUkt6Khrm6f93Rr+@p^*ukr5E1%l)`PW|H(&p;WA9GS zr{Q9)BKuqmuXejBH>)kq^SHh4Ve|6U>Cc2B|9)t2S86o**}4CE<`(-Oo#%H>v0VE4 zUges0$Ns*)aLZC==J_v;rZ1S^+qgR1cG^6qleRj#Kle#T_RHH!y{q5kxqX+ue*D^h zH@^!ct_iz7Ir?R3&*6ekKPU4ZGJf*iU$ypOlg12(qNQHvx|`eW%WMChweRo0_;n)_ z!{1wP&Fr@>x?sPt=#XaW9TE14ciyQ^o-L62dT#OLFvegp4S^$rWEH&2?zsrX=UiYr$q7va4*lq+e%RAO61Y>+BEj zu5LeWcA`~iXy+QAAt0U{Vjo*rggW^Zmrv#@BY9xopT7o2eLo zuj)^MM*X`RFYZf1i&26aUN*)OkC$v1Ij6zlWzxeJ?6K6ZDWh5wyNc!mo)T zz98%U-iV3$?2Na0Z5h=}e$BfvJJIz;O2+Z3=ew?bF_WkWyCTb3<4`*%L@IP;#PqlK zQ+FP<4!DDW&vkb`uziid3>y_ep+yc?R`E>q+VjZmlDYQHryi@e&TZo3YHFp996iQoedu`Nd zV&3jC^ZJCYbug9}o1J`RRAId#< zi~FDU@!6#u9@3Ak?b1WGd^4M^yyx#V<@t}rzPyk-_5I%OWs+KU|F%f7Y~;PZmuc3L zZ>7`P1+K1En}5qvy5{Av>mSU1ot9bj_4)jL`~IDpYxm>%;&uIs3@_pu-cAo!`K2EA zv?lAcV)D$t?lM!OTU@o96t9KF2>ImJXW2}@7O>BL-BE`FCr{p7VLRc4xUye$@$O>} zzFA4zJ)O6+W6qJ&!S+*@`rZwmBCe|b^vI=>5Us^$Cms@h$Lb)cwa(P(!zEX%$*Q|H z+)zs6x$`TXW0BmpB;kaxgfEi|pKj3caroNY7U6$?l5uduVcl7sFBUTEUdunVe|JoO z>;%2!|7J(N{WyM;U2p2Dqm!d&r8AmX+N#}}&SbIK>id1um#6Z(6&A}Sx^6aj*X24Z z{h;?A?^C-MHS6BydFuAGWzvK;9lOJeE3R&S)PIX}-|xx)h2rkk7<|hu@4o7=fyH9m ztIkP(mnQ{O$hB+k2zhYtx^qAK@l7vJ7P`Oa+_TMDWqaTvjqeNQ*GJy{#j?8W-ygB% zvyWH2zW2PK^7ol68=p-Ix?lf=@ZXeNp_^LDy!YvxqFjjuno?%RoPTd&O22f>x`)O1 zvXhp&W7-?3R9$ZgsS|OB46Gd^zwuALBVd2qq3K}TZ(DJ7EsZ(PPy82_mel<^@$LT~ z2N_N(%e=Dm4E-7I+*R!C@7}Q>rD8!_=xK}PuI3(Dam(*qvr;>M|KwIPo@MIUH=f@A zyCd@d-(L|-4ewYj?CNgR#@I*Q^^58>hAU zALjk6sw&IcXqd5Qc{9Um?+Mp_EV;xLm3FpC>K&KL0@h6zX7%f)*vW0*(7xkxl4-+V z{r4KHxF_>Wj9K&MjmnhC9BSK_d|7|Tzjs+rv?KOozWcJ${_U?`{gpV*(9F&_lWUI9?4`S8z0=iXCxnR{_qsPjUM<5( zt9+u!hLy9Lzom6b=cfc}b?)1BF?3g|*Sg$obAHXa?j`+g`i^yngueAVC-z@^9v`>g zx=gTSSK+^-&+EVVZ&v55?J{5U#rPcC1g8rZYOmd|vpA>TXW#$-p8Oy4kKXZrPi07N z?DM*x&BxePzA|d;DKUT~?R$lp;DQvxC(Y-mm)&EZXtqu!+ye)t2*V1GAuKoJ| zQnzs4)DN-?@+LDsTe8)1U3liQ71{X=y5SEv9$ZL@oABmovHJuEyN74IF05+n(U`ud zzb5I^v5I;ZwSR$^&SsVu)ik;1+ip5!{dDi{yI*g--meq+q`g!)Aokmedxp!~%)<}P ztDjWwd#t0m;Sl#uiJ8kc{Mj82T9s(mcKx^rLr=?r`M2`qYYJ1F^?NM#aO?9bwh1tl zd`xfKvUl;WwZ%J&zJBE9s^`o;dv!v6+PgjPIA3u5tcW!!V|SZfEBG~R_k+%|tsGCZ z41T7}=*WD_u=#+K;K`ttc|M-@d%9lD^@$OGuAH}8Q@Wy3#zt!TExvres$1K%d*@1A z^NPK*j$^jqf@+UndW~n@3f}+wnI)4OwsZs6*LUZxCnEG)2el-pJweDQxlWK8du|t#{4cqk<oQe3mgao$y? zh(k)5cjm>!*Z-~W>3{ikBP+vSp~^3peZTkzRJCsU{@--bMc=edv;Ryv^rlAKw<%~# ztCKtjqle-2X>qqIriZUT_Wb$s=O>u7!t^$CFU)(Y#9!e2@b{q)F&9dgMCG5_*V0sc z@P7Ml85{rRi_(wcUI=Uoy%qLUKT|azU}En zLml3K%l?s6`tbYS8?ie#H*j~i-Z-)Suyetcb78OFr|kWo^``NCCG(}JGdD;{3u(M` z{2krQ}=Sc!Sa>D=9_DtQW-K((V=Z=K; zIjZ%Fd*AMRTiyTseB7hr{{8ar<7{Vx!m$+-6jqV$0}Jh?wgA|39-17DfC4sWZ(4#6LTYZBOkt>TNDrw`#kTd z_a)z_rMvt$Cwhnk^UVENr!xO}&a`#EEM7QXm{Q=JW>@t`VEO8DK1RPaPp7Y+_wZ)> z`}X55OT;w1Dpzdn-Z<~U>vdnez3%q+Yh)^43}4Nyuy5~l*Y+H}y!sc9x4eD-;a3E6 zLu%#6wTs^_-X0eBnzo4$QAT?n0WrHZc}aJ zmpu))eC!=w{CJU3bKRNg+WAZCqTgTquf?FI`o_My$WidlB`4h*bKg3+UM^ZXRs7vA zuh~0uQ~y@@Dn36l_t$hU^`j0N+?RG#DR52veY{&d=HkZx1zYRFRrOad-G5?Y{?@3q z|K8TheI=)ooX{#9#;{XcqGT-d<5^b)sP&oYrG zU0ixWJeRU!n%HJO^>YpRG39O6x5E8>Zy)`dsqR)3?poETbI&ULZ*zOYn%t8+)BZP| zm*AhroE{`1_B+tx)H9=ur;~5|e(+Ys<6`E#tK1H6r%BuF{+p09(fECHZtUxabI#lS zySw9-?a{iguQIM2DA;f{;<1yZ^op(DPr5(yTKr%CRC##nji|62Z{kg+^M{;TEI7^9 zZ)uL_(yP0taqB-T{8OFbqVTi%+LnZ%87JjuTvz66u-pASTQi|$$swJdxuFwo^7}uz z9Aw^5T)*Yia`)u^`g%$4oZAe)PuA(rvv)S?)u!oQm*R>&8gKJp@vW9gcGCfm3!b4iA_Iao!_{Jdf=-?e8uuU|L6{<>aVo5O;4 zp)2dn$M^0YdVBm;)?N8GR^2=G?$jo5J-#61th0j4Xo<$vKdh;!V+UeG?&&NCr?_B!(S-9reo6mdKoI3R~ zJzM9y;yd};q|#3N1KqQi@3{GW$NRIt4xF2M+bCL*aZbP#hEL2*J2@Ga?Mgp${o60) zDOoa2m*dYX2P|J6>v_ej_0f6VJyz;X0arA8S$ z@#}-sD%Sk_I`8x6Vw;MB`-gfT{f%1tZr+>k2YW>1(GbkASzE>Glz;?}%8D~^|JA=O32pTF9-_5b|3k)0vDqN=p&%ZugV^L}mD zRMJq;m6^+}Ail2lzLvs-s5MPZY?>KNAKRWtF8UsPeE#A0|84j4$Nye_KVtC&^Mj91 zXFZLNi+%9rOU{n}*^blaZ7C_KF}ZiOnEA)Mp0kYKulaw>Atv|l5-C~C8mWXVRM5+Dz z-8Q`lds|k-pcXazgIh$(mH-~+ovN=shaL|Ul~H-1x+KCwFiqmUUg4b+D;Zv>y<3_k z{?*Ch#LwjarCGw~j8pfxGOlPB-C=56-g4milt3s+rSe`bZfo$ayacK%~C)uN8? zuq!XFHl6Z6ue{ozZr|FxYL}D6njaFFw*2!o%F5d+E1&Lh^4XzdxBth69oP{aw|4!l z-a38W`kb4#^-Yk3@OM|FNs8EbbfpCc>n*wC#rF`^`Bf@XL8 zjn^?J4{-(Ec_$*jr=mP|+tYvr=T5CIsrvfrXT|lCA0<~Az4F?x&XZ@B`-JUCqFLSH zj~~l=L}MMA55z`jQjj3%>0B6Y3&yy0WPL)2lyujK$E*s~`H7N8oPy68$oFIM8 zH||)<&*09C%tKS6&$eA>YB-VX$o^b?vG2a=U;kOwywctr!uw~=+H0@sw)*Jnt#`k9 z@AK#2n7EkM=h<^Ob}${DZhk**s$1BRD~Bdm>X;q06D=)HeX`|xb9!L0p2cjw2PHuZ zJD7VFexBpJQE~e(Pt#k;bN=#=KK*i*Fe<-rZtI_@o;#9L9_Zhlx;QD`{>+PCY0oz; z5{=t_{p*q2bu-TYu^wTHSoa>-W*wRV-irMyA zZ$+!D+{;-j=QV$iemzs-)AIcF`~N-v@a$K|na=)~TWxRuyYVXZ-zLSt?N%BdCwAxv zh)*+g`VjU-s@rPYoX+=+y1ZSH{`%$TKltzaS-kqy_8b43LZ*nYpTG9wruqG!w+fc` z?z`bTO?yL>QU2b)88WMPF8r-)x-7b(^I_nzWZSPhmOp1H2 z{{Jyt{SoE|kNo=m@*88_lkfk%Epoqqh`Jg6x`e~K*DWUD>PE&3FU+&WmrU4t@>cJv z@>f=WZ(3W|Jbr!u*yXE6FRu!1)lj!Qqu=q!S#i?m-4|ljc3iz(VCY*b!7R-+W&P?u z&A)apXZy9e>x-3dSOH^`)!9H+!_-Gj>8i(tP8{KvofNXWR4&Oz_(gFyuh18H``I@d zw?B4}7g?$(9IG}#^u6)weV?X_e7c=&vTC2&vcg~dcX#|yG`#ow;N*8fZL(i$D+_mO zEqlJ&`&U)VMUUGH9%mFt?i4QbTGGmJrT^2@KTGoOu3UCU@UXwivxzbj4*R>#Z&>xI zyuP!&%_Lj+M)KNq8w&mTKi*lhu>bq~zl$GUOv(tjcxqRv{&eL}IsT zy)WtRHl>IKlfV0E13PxG2ID@EAc;Y(^gye zjxCd|%Z1I4#ZCR47UjpOatdgEj@-klv5f(as=Qoa4MepRqj0UL8_oy;y2f^2bMRlwnmGHPf}mA+p~Q`nuzO~;1AxP z`omheuju+oI(++Z!sWrVzbu|gD^K2R&^vL&xO%-T+m?Q=9LxWQ{Fc=CmYopvP!qm& z^-XTQLsl59)e#bVO`O}J0womTY@Hn=8=4QpI z2RBqC#h;a2vB&-Uj_;SJs@rNw&HVp*?rpO!xx07XY-(R!V`(3K{qo*w=WQh$uI|a> zJpT33(cqdN533LFK2-kk_yYIY=UqJ`r?ZP66|&K=j1`NuYggE|zEZPhrRUd z{bw!ze9iyEuX!0X!qa;mKRzz|?f;6FCx;sw)^SFhd~lXEEc@gX2DPKJyNv#_DDuQu zcm>LwS(|sFNwIeNfum2m1>NmmnKDNtt`FZ7eWl@m)`bYqg7V$^P36<}3r7id&PaOe z>}a)uGiF`%1jAzSKPy(uHBVZU%x?2n=2xB6;$wpAGrwL>Pdn%k74&oAmM0CqG6^RI z`^>+8{P9F^-@i{x=k>x*Kl#aeFYH=;kuRPPS=mR>j^okviSWm?=i&Vs+sFMj;E zq3-){R?d_OlJ^6d7Pf|~C~Zw$eRIbPRZUZ-6RT}!=EH@i#xH)T3-%z2^Vl`tEl zJD!J%t_K!g;N3S*ytt~$XxrPwPc0Ls^LzO}@9Ft$zHZ(6x$_=XtbcbZ;r`bIztdII z7EL&nzf*ng`py2F>lUk@T^-z1v?%09ci|M3eU6)Ac88s>>z|!?pi&d_VX8;lEWs{QLTv+rn<$7Sj36x%~a!@3}FtaY^6oROdEu z3CtBbWXSkvH)GDr?Uk7q=e~dZ#O#el$LW`1Z6{A?-aPYoYsXkK`*^b@%CR6cU`e}G}u?QZuOJT57WDK;)O+a+NR%2a(=cf z>BWEh{pIrg@9eh~Z(Ur-YhEm_wR`sL#JhLy+-p&gdTOq$e}=W@%l!RSx-!r<*4`%@#Yrka&DG>t?PsU+cHO z-dwwT{=2sc^S4Dd9^~TdyEZ?3clc`Y2T7(%yPM);m*16MI4$IAt6zU{6ffK9hd0(T zz5n&;lt{X(noMwo5XUmMMt;f14iO7}PY&B~oB(aLy{cUw{0`@eViA5Gu)@AGS$nBIL+YyZ#c z?YkuI$Yj6H{76i)($b#X^y9~+W#-H9F1Rh6wEno@HY?%i8O0ADFp8}^uqf5eB*Qr4 zO{LMrUrhOs&=-q zRx!?5{Pv^84V619*J<3+>hKRc{o>0JA-3l}A6Eq14hL`26D+_TNuW zdi;3CtA#p>f41BSnd+-$rgib-dha4vxfe@X#hq@6)(Not7lzt4KQf%ae5m>Fmgzj^ zZ=6oco)cbaqpo_bYr*qiH#}3)Af#rU!Wgu6GD| zi>|&O{Z4VYs;yM4^;lM}ko>>yK|GQt=|E=!DtdDInzwREle0ltjLvGXO zM{s^=byf=87ruJ`e+l-fYyQ91dpGyqxu%`*QAyi4W6vsyuj*8q>Gg?s|5=wMOF7u9 z@BaK*Yg6-ql~G6z`I}eW;{A zE4A4I=e2JL*5_gHmlO2rHX!xx7?N?kl{D}39f!hzeuV1sFbjNO5&0ajK zr)8$O<(xp3^nAG~Q~Um|cviRNOI>~UiUN&e)?1`}S8RV!K55-g&PjpkjS1~Hrnb8^ z-k&~4*kVOsf4Tn==1&RgWpj>LMZ9ga+jD+no9BWxvWBrAqpH}R)iik2IL|F#ohrE6 zz4+?$t6sB34R-gfnO5{6Hsjhxu~kBM*DRbo`JHDZZ_6{)nOA>@E2%xcx$cdA+};DH zr=KtK(Fj#(4xRHa{yf{^_zr9`{ z{C-uF`StAS56*r)zvrE7?ZfhQ>lV+CkbGVE|98N{;F@pe&0mW@f2&ycdGY=YiS@zvJk56QyuW|{y!pq)7AF4VW9EtN8>BM+ zUOpA~e|!Ah<=0o6FI4CK=6a6F=^DTIJJ-(!iFpj&s#TM`bgmn@vuR0sZC$B!%dvL8 z*Xjj*UzGN(-f(NqqqLWzfAX9gX00x5ja&WnUfAjVyFY!8UD$kd(znn_ir-7V&v9lUMJqAYr#NAB9;D7F`xORE>3 z*EnP`cjFs>4Ij@Hm)%Y*&9~1!{P)iGg?p<~r~S=X#k|_~dBVvm;S&Gj-%ed<(a;hq zy)rXr#+j)zpJ)Wmj_HY-veBoDYhCjm`HOw+QUOyX_b1n%+BIR(8uxdufq(8@XPCY4 zt)o|!eCn&@nS!%Bo62J@w1Kx=LiN^xVNysS>~H+$lR71>yU=RW`P_a_U~ZdUaBG&rZ8f zRl-a^*6+-lzWlzGW!3B3+S-2ug%8B+X)5tt`TxyP=djbo`V~9t&G;le&82r5)dwBu zQ2w~(nVQU-QySAU_B1xR{?W5Pm+|MSGqbq3eqm{8qDFn}i?vf*k0$q3&#$(rDP8() zGDo#gX!+l-i{xxOH*i0mIALq%Itw9|5X-QsVW)gcy%mnH4b@OMcvRteNcLW}gq;bo z^(9aL@8z#E*ZU^F?%Lk@r_6*J%ogwa?=em0_P@M01=BCK@9k#q4d=Tk{oc&+jz3F_ zwpe%Q`(t%Qx*bQJCLZ~&>M`-rHg&&VV`&$**y^XpX3w4-GR1IaYuf=Hp>C;%-?Y9- zKMid2Sd;(ORBqCn1TB-Q(i(=sfJs5QQ>J;{Pg~F|DY0UAtTU6khmyla6~~j6?%S^a zuGyruVO+CPjs(cgUe|DD_TF>+={?SY5? z^1HY4hwz6M#xB+{?i78y{*>~Jty=_-_Gzdm@umM%+$wJ={W#;}wuuvu-1`6e=#h8# z_qT7peEIA5%Z{(lT0Glse>8bc@AWnNzr{{hJU{=t&^~|n8HKx+Tx#oYkndW`Z*E{ffKx ze-HJqJ@L)|>;3fQ68eW?jGTdA5S_7aczv7 zdx62@&DVEchaayF=V{k>CZUJe}2z5qw}GLp?<5@7;5h7GV=PA zUh99?c7s9U`R4_ac@K9s&6V4=(UhMzOOE^f^9UaQ6M6IhXbSC-d91j~>DsP-Q-M6z zPs?0(DDGb_wECvjpR>A0j-?n%&(2N1ePf!({P_*)TMFg|2>rg!9q*-WJmK!zhgyDJ z21^dUXV)uQf2<+X4L*C0@7#9oZ-c$J7ftg#vr`p?J_cXH#Op|$e%65-wYiID({5g6a1%V9g zlZDoDT;Imw@bmKS+3WvF+>80Y^}1O8y8p*sKfO9xKHAZNfA+tXXWp?j&Hj5lPh(EV zqL6}hPQh%~bzUsWIGm|2DK5tqZaS?bO?`R5gC@>r9J!QL;y}`# zZQ{1E(_G7U8r^ED|8gJDU?zYp-9-`nKTHx#j?apO&);r2caFlsE32G*q7wgA|J|B@+S)q% z=eniuSJp{3G@ndj{8Ljmooj{DMT`Fmj_q^J6Bex1I{7dvcF&aeZPBl%%~;9%$}Ye2 z~+pv-uyVQt19GKbo|Y3JX;&~q;qbja!0 zcO2KL-NBS8+SH(+_=UH8a!Km_!?p&l*CyXg;WhvA-u!mV`dwFKMN4BNb^HIuEobH~ z=ACj^!l_DU;fv$PXEWVQ5$3wdaM|p|%9zUu`x@911mpP&4;?O=5Z|!rpE&QC^t)e< z?6@ee-&gW8E9c?sQ}rvqa-5nYy*Jv6eW6YAStetPoH~<}%S&yZoK-!R#_1l!a8M{& z;RT0-h)vs)M3XHazuH#(?)~&XzmoG_%>T9P+gGb6q`tFvO|>w5#JJ0}`ZZHB1ZAz8g)G&z|UXE&TC`D|Y+LlN#Sf9Gmz3?M2Qr zEBDE6Dm9<-%8s$;RfztAFw@sw8#*-)AKP?1>gD1YGTbYirl^!mP@cl>H~X3UZ!@h` zy}g&W3q^9?sO5;M_{Z8BpFJ(+YW58sM-K4`&W=_mK77}EP8 z_Ia&mxavIbRp%UOODRi9Tf^Yf+ay_?Jj36&@LMssRfrrrzB1!vcIyi5*jZ0AMdH>L zK4po``|G!7zCy=^qBX4c>uzOuDk$9aw{ux(@Jb{{=0l#q$*P*w8z%H8_-V;>A37-0 z*s-Kt+4TK``+TR?tq0Yhr#v z@7Vb^`mWx!9j{kUd|16ZD!YGM{`%LY-KTGhzqZ{yaluq>-(ud~4W8|*`_CKK{Z#yY z=a0tarwlrt4O&9Vcc*>n5D@KAl7F1$tz(qBV8PagNx6Pe^XJI$vhKL8YuPqqe~46& z(ZZv;mzNkg^8U}u_IM<5zx4g~$4Qljlh~fy{yBYwTg5I@B=6ow^X<)1j?1?+tJFC^ z+-T=sTUY%u^y|Lwzy7W1F+Mt1w&!brbNCC}{f{$3pWXiYJ?^qX-yYYOlXqXAeSNL` zyN6rX-kv>IT)@jg_$s&MmsZauy3gkCk=#i&Dl%Y=nur&^ZlZt}YSrq%G5O;yc(zI}o-D;n3mjB@BW9(?;xX~0X*#Vj)t z^x7^fO;R|$>ubG)S+~#$w~FdjS9Z?-tZ*W(smY+3ul8PExjC~#$?AX4o)x9M+aGbg zbp4g<^>Oj>J&$ZpPkMXQl;L99lXV8umomw5+O26?EBdr|(Vy!3MlM3^!k!#!g`6hc z;*?+0x3!OH)1tW+yOm%5bo=@Lb9|Heb^Gt7|9^1XZ>#$BZ;Fesi)?$gtj=`UpoSUYv!_y1`coqw-<-;l6Jd6}|_`1FK`|IcUt zww=s4{r7a`hkdpZ$Cq!@Q|Vh&9v6IM?d?f95jhNHf=@4JY*M)@dvAp+=d1(f2c_j$ zBW%JC@_bHB%DS{Xy!v(SmscHb=20GBHhF9`+SPFL$nOWI7KjTknmu{(i)pVm&RM&# z(|hscDU%MZQrz=6#4UW?o9eQVW4o(zo9_NAdXuo??{gd1Bni%!Rml@{%UlI(7=nb( zdffReDpST?7y0dHuhPYZ|8pf)M_i7Y5~x^IQCZMY_HmbxcJir5diNrpSgo12;;rVl zs^-*k=bR)H?Nf)Ra7}gBDr-9<(6E-l&~eLAS>Cf9aT@e}6>&poaz zX*7X(7R!VlyD8qQ+E+w|J_zX)Ut2%n@n3dthUQ1k znamf9%oZM(c(B7bpz7ZHRL=lLR@TK_y76}N@4vtPe{Yniy|Z{PYv`4vV|SD9Y;Ibb zA+LLFiIT7P!ZB7maM*O`P3K5^4p7|=W0*P@(gWA(eu`xTxHG2FzdG1 z@}-w|qB->@2d%mc%&q`pg%mz7zsTDh$cV%#kUVrlUs)F%CUE}Zm!fRG6 zn7M1=8oBza&|l{3=j@**lbyxj^T7O>=j8)eW)@`roj$#y`*!a0?$=By2DS3G*^lP^ zdD8hsY(t=~$&2vW_m6hX7oNLBg25r`O0oX2_d)Zl1CFq4`dEJVuHa#h^*&RC^g>mR z&OH?LNsHr8(Q}`g4i@3R?AQBhSU9(S@!pX#kyYJnA6MzD-HZu4#TL)!&N6yt)x7#s z{io!L;=jf5`A!V`553OfWuGH!`%e2;_sX!NvCSebYc;+nh5B^NyMH)#LY;osCg#@l z`Y9{@pRs>kT_;nZ|HC+GVsLb>NaM`v2SE`p{+VsuBH}2?;50+;`KrySw_O)6<9YEt zTP>pXiv5fCil%2`Z+u$En6qm4rKx+&YgXtyc90OSQ2xiOomM1KHS??b%kw?yoS%4J zdA4OV=^1T5zjHoIo^0$H<3;^xk$O9J)yA!<4>y{?x#otk$Ty)wkz5aZ+a$df-QHzi zY!dVTcg=F2RT;06HTn~5IOlD9=$Uz4_~EJQP4heUdoF%aytMWEk}94z*RxcQ-F`H8 zV#JFo#rgA}OSRYVZ!9*>%lr82sebd-m+y}*J`)}KnLp@al=acn*gO9dKU&AD*JN7u z70PeFqjXHf;rwgnBfAO?oN{t^^z^lozh-*sLQ>w=-lB_tV_*NcwL)}*Y^mdFemD3<}!kY6(tX1M1BU`HU4k>ClM^F79UdNNaF8<m3>X6#Pn8qf4ktcENHRnt4o#(qBr&=zvKG*yl(16uA@o2oV6wdCIoLg>ZVk$bWQ*Eia6o$TXEmYb97l4eHee)sW;oTD>mJ@G|OSZuFR%? z`<5DB-{%tl+BD-T*Nu0t*B#uJTlQdc+p=Y?z0)4d*t9a_*P0^FNB{olJYU`L(%Gah z$KU1%gTWFZ?Xu8+@xKlC?5sO_U7F#;>OJeqMpz7?dXyv&H=j=+k0i|eW4)4zY!4<1)>wpG-5 zCNTNJ_N;!DDM!MN-(~0((To0GIlBFQy}DlbQ;Su4i<%644lI8schY|{ z%V%}Z10hYVeL?e2ZFiOHJHw@ZPq6#kKKX?ccHIB1H^+O|#p?%L>@8MZpD)19y)b~E z-9hf%sn0jA=d|(M;!-nvE29%AyXvy;FU_0h?9bm~pS`I@_l;^@_PYN}5~rfB|8QrT zvL)=`reD@qv(3KL%nz2CU-w{n>K|N41$@d9 zigNPb-{i(G&~P&DU3OSvHn-H0L!PRg0cH+se!slSG*f%#fvxx}2CY^PJ+GMw`jo8pZhTE)DxM!~JvC#P^d|b^p6(UvAkun7Tq{u&Bv6q`K%t*y%aUp|M2g0zQgfr-b^O<8yB(d zb2{r8wLB`r?(&v@I+Fhu3ZJUvKB)gQ{#n-)?_U1H%&E-g@1g{{mVKI1&~&W5+B$lX zcvsgPf#uJy{Qq=S%BbS?zwhf${j(6+zV|!Fa`pMllOvV4*+rcBe&TX8o!Y88J3#YU6)_4=##wtk74B=fYx>igC8FRkTf zPjswUca}}Dg}|Rm0XC6Pl*exX|5A zB6-F>+sn4K@ynamoT;b@d~T+H_Hv*9<>K=zgQrfFoGJOy^~r17!yhl6^vwQqKbQ9p z%iej0h5TjTn>ifzCmYT=t@9ysy}Zhn9>(*TKGEwcXDcj?|7+CqIOmviQqtW2eukD8 zY9@bGuGU+o{Dsm7={J{rb~H!a=?HAFk?c6I;I!7=6TvPr$JUh=cZs;H zvpmUc&BU&_akr`dHWTmu`7ckEo!KX5?ls3IY?oMER5rheT*3+F9{ZzDcIt?1Pk;G) zYr*f`Qbvut9!@d$@m75z$Yks@$z$$h6_v^hcXYe9%uOy<+4jUC?4y*j%CzUD&0Tv| zPWdABhTmbz=jG>(*&R2Z-Sk0r-#6K(nO~E;O}6^3Q5U~8;g*oqc3Y)wr-cH~pSRdr z^d=-zn)PhUMUDCC4m0w(PQPJqT`PU_g!_dwwWj@hrxiX^O^l7UUEMP!K(|u1+A8Pd zd8LaPN7HusR{z$&`1GlN)ZRFj#b39{w1lk7-moEclPjy+2haX%*ADlaFnv2F>c2kl z?c4wJ7Ai5kSBz45@bKkN`}%3AyX@Do%_6VJH5&vbRK*{7aL5ykVAp;9aE&?2M{@3u1bh&RpAAE%vp!o%!u< zH|=RB8hj2Pe=n!1?tgBP;>(r&i3a4#_KE)~tiMbn0Hop0J-2;X7 zDKD8q0}kh{<}+KMRLaVm^Z3HvD_Q=0 zezWejZLefc6K{XV4v#OCj1#tTJF54$@gZ2KFq zN;kHZXSdBX&Kakd9JZV|N5jhP(Y3!$C&Ficd2MlJ)5l+8|LuO-hOs}kzo2@{>{7v$ zZ~qPNC*I6XlHOk_A8(ic;=>2wEBr4OIcHkLk0J$>u1S=f(HYyB@j z?sl);eS2oobEA^iXZ*Vb<31H=y|hmGs%JcDwVuS}Ga)}09XuYLdbROpoLNj~hj2qo~T_#haXVt9mDr3q&S~t5P zruVs;`IT)go9vBdZt8j(y5h}3CYyTUNe&fT7d)^O4V$lSaO7XW5>X%iO9zsk{Axcm zQSg9|vW1M<+5Yuh3nr+pVbZV2@G>xBrZ*xaj@5j zPbjL5VcLcVoBpo5(PqT5&GV4NbBAq`F&xTO=|_Ga|9#wiv&<}Ye#Y5JUC-CCM@VlK z(iD-h%Da=xH_2CM#@9K&E%&(G&zkymbK7s$&$IW4o#C&Z`Eyp-T&Igdfs;jHd)uRms|<<< zc)QBNZdGo)p39Z8^5q6sc8^{|9?9M^?+ZqcmuDnOy>eBYR5>YkPNn6O&a^|DMMD}A zPF#~bzv;Qj>Uk&4PM>7qto2u$Qs|>}=i6mv*M#k-LRYpiZmH^e(|JlO_d-j~vCEO+ zZFf%xF1)O8_O!v3CyJj#k9!w&bj*z{b$ae~?AQFwe3;P7YwfT* zERtV&PkPAETl zwm9L&G>LldyAR`L+-pd@d%|r>w28l2%)vmX(_L2VbHcnI7wa(_OZa6xn74*|Gvh`b zL*|FKWZfLspP#SD2ar?$4+D@1EYd&FHG(O9QqoXB2AF3Uc4ERmR?kZ*<;vzTD*Of>p--Rj3Lp7> zVOIY1@a0wh!U9VQKP~(8+rz)Nj%P8i(}jO`?%$iWuk7m+`TxCK@1?sKY8WhbSG_)X z@t^noY~DX{zpHZEawNETCM!QaeooT6xhgzu&WE)B$6S_0SC_x=|M$VWq++MLef2N- z+Mq=L-p@Ht12opS9bM=CgBiO*Z9J>E}mwXlY1% zkgE!^yKO6yY@ucFg<*!-WO<9nnQM8io)?CH599cwc8-N{qngYM$-dLU@%r_TA572S zoO|x?izFF6#YHJAL-ST8UKTP_;as-HP(R>$*^#wdr=}_|Fl6&vvGk;bxUhuoTJifI zc{`M)7_!$N5q#(VaMtnD0qagoeo~lWc+aBeW0AonoB8EUd(>2~J(IY-zT4xq|Dg@t z)%Pc!ca{6QBKw8^$=~KbXYZLCEAVrNO>*qZ(znYe9SZun-v3+kPZmQSL2b2|Qx?hc z(yD9ij|(u09j%*h@#=IqQ`sTazYo@==C{~bF!DW`6uWE&JL@XHKIDCBgk0 z?Q6f>H%NM*_TB!p-M`=d{4bm4U0l3*`>%gr3guN}H@=oRUdt3~t9G)t`UbDVw=Fk$ zCoem?=kv0FGYJ-Ix{p)5I6s|w(pG0X&u7-PCHHN2C3Rh%8Xx?L{daCh>g6XJODhXf zPQ3q~J?pTDnp-kYAh&Uhq2T0&b#H!mB(1aQAbLEOv#f?N91_hW`CAZ)Smr)V(7hTy^E$D z-mIs$Zi|QT$0+#;LRt!kFS;Ete4r5gw^#Um+QeMFb4C~QKc|15+-|?*5IfVdL+pKq z<_W*@ephU&F<&pyyIYdcbD`N64Y%!^RL{)v;9r`1Yya)-`4=Xa&;K_0&!Ym7FL6`v zI;(%N4qKOd$N%L#gC|9?hPLrc=XWj=G}m7EX1AW`j_D7g!sf*?KCVtYW39*8d9Spj z;)4BL{pfwC^6DmuduL2nxu5s6Y2D>ityMhg=UzHDE&k^wl902-=JzQk{i)&GrWwkz zEuOdKh}zk>r28Ax>Na+Ym$~hJ`uo{gWh?vr61(p&HTXK|+q7eh9wJNJQYGDNc@Fkz zgufNfa{lb{(<S;>4|{yWiDnOFZ0k{;#13i_n^xWgeXgbB}*K8#n#+H15wTYkE)es9RYDO8zbC zoOaj3YSD84`4ioxFa2F|?vz5*Ut242wWAyjJiX6sZq;9p+Q$8$=)Vhph25`TPoLWF zact!m5f-&8=y}@o|I5v5&HJuZ9Xk9lrNH3t6GpccvufuQEiqOTdAeo#g#S-#9K~;c zF5J?#pp%)&@zz^O(XBi3T&`|lJ|Qeh?J7>4qsz{hyC9QdS;`oG_Z$CfSUS;UApg~b_0{_20x4_eHPK&8) z{GTBIn|sEka}|p+54`_*KWRel?6?ktFJ+d~SouCaE3EzWiJ@@=XVsRh>Dwl;cZnSo zVw)K)xz=V@$9F-yT+Q0Qul^j5*LnQ^;R22W?H!jl%l{3%>=K`2`)Rge=B*j_s?QU? zlzw|Zh385DM`8Eu6#mJ4&Ij^V+^{wIaK`7buffdrW2YzQ^HgpWIdN|(SM~h97uVzd z@LJjZxN<{%Uef6YPbv+(SWImsq8G^=DrrtT$(#I;o#Cc!!XLh6wYxT2X8nxHIJsN1@0`Tu^>}Ys)_U`WIjIkpHSgVB zYhU#(HEl|7^YX2pZ8}?wkCvJ$lb^L6Uj^tEEO7fX~ zIu;P0*7JEor>kxN+qZe8|J-AbR10-(X5v24dC{Zm`|8AVQ&vPSZ~S-lwDw2K^Tvr> z+8m`BQy0Gfd@*e1VxC!y>NW@VB{Qvh+UqWr_hb1K|3CK6W|y|_dwBG4K%cO7-#;e{ z8CR*!g@r7d=|X;f4+@0dJc&K{i`V;v#L9yY~L_?ehDb`_JEhwOYo_h-cpV*VZQ_jOL%1Ud%qRf(%O>-0X(CU>Hs?Cp@$ciKD>m+!q`G=DPB{@jvx-yc6&6EOc~ zTXfu+2E~bzk}QwkhjaxcxP9K{(^Oqn>2>;Ck=YbyRqf7A0tTvIuPxtKa;AS; zXmgqB`&BtA&q^}7A8=-^ioa%-$kt*o>quZ_&u`_11P*1nfP;YvPG%`>n&*-qtVsVp zCG)G$w~~48ChX^D9;;+vX%33uGw+azG`^o{!ZP(ATaV1S*$SsVXIzumU#aq9*8Gq9 z>ND51?W>wrTv30=LPAXDxGnpPYH`JZH+u0~co;s}u^G?s#YMUj@k}zsvLT z;;O&DoPB?#XPvy=3@&-iFFzTN+|RiCe6?VbO6Vn*IyGAXrjToOXL~MgI+E68SRZ=t zQ8M$U#S%I98vmO1tDk+K`t{U-TMsQ6Pp2GdepaY2d{Lt3Ks_#qqZO7w7(|znpve{}S%X zXL8!B(!WnT^4ER$ibbx6)e@c`*pTrf=Gg|zmG>0=3v&w8N*!${+&KFC%wgH&{U76e ztVOmoZ0y^X@Z`c`>GM}*0=88iJ5xQI>7}6Bky+`rTkk);_rWM<(c^pbp6i&X3*S?B z39EFy)VQZ*F`sViNtKi*-iv)@qI0Wvvb^7@FOede-#@KYW3|Hn?mq{1)LmKY=kvAt z*@|Fg^}n;eO|*+Fs63{`QT*ng#*Fy3?2og}P5Te^RC#}Hnz8q7f05Bmt&VT2E+4bp ze|J&deXG@T|JVg-FnthoRcA7;UA$8yKI8Ap7LG$x-o?&%l=#;s{rSw?*P$khZb}Oo zM14@H)R?9r*_1Nv&NYr@W*o#(S)X^Tx%HZo zLwAlD%aj*6zwa~q-=3(>s(7f%WZ^?QhE21kh?c+XE>-umH)&sNXOy|Q=E#zBH~ii9 zylZ6bu`%4k-Mee6s{Zp&Z8n|g{ZnD~#ch`#ww)iH+gL~XQA-xb-8cCDomH`6JF}uHd#S4<*>*Ny&IiUQukCi&R0+4Rduoq zv+g)$amr@m*VPhPiT~B_iHGMNJh}bfHnVp(5(4UYBuj)0PuQ z;k4euHy>@)ME)A7@%P=mH*K!u+!+&2%`+-gINvDHrx|>Tv#vez!k*dFPPZK>u8*tA znY?M*(h1dn8D`ZPbV~(nmYpURZ1&2LNn=*isg2Ukce7@hD)t9Bh@@S2Si3)+bBR^q z`67v+XUtZ2ev8EB-OoyVkuH)gr?XhicCzV3zQqxO?x*AY)Mt6ytW|&FJ7;$5-Q{fY zVQ%{3fq#kx7_2YLrKI1y_V3y6S_79CK4C0NvVLx8xigVvok!FAC7efiwIgr%z1uv= zXUd{{&p9$bk2mkTcGz&%^=lmRCYE>a-&?{S()M4uSBXJh`NgM$>$l`xJJGObm)R@s z3m+^r8CcEM6^Gq@Sy>+b{Y2R@jtj=b3r#wdbCf zZuGr#XxqZ7`X-A>Z#c45i%;I)+nZV$y@Y9phka~+^xe8gFN{m7{;lt2*t7b1l7sCH z12+|s`rpS_d@orwf7)FS)x;$Swk@Ubhr$9Zx%m!ubDFO|M=0@~M5U?AN##>L=xxm&QLb*7zWJcFNpq35rJ}A890)t4s=K zIyL2w=#=jU4e~Ot-~Y&4bSC#x?c}!7=`uez9#`?4xo+{~yiHeyot|cAuH9SC)~)wX z_9@rXxAATf5o#Yzly$A|Gt7(sx1x8B>5=@(?SG|n{x>|4oaN@9Bq`1NHn;EAh7*=& zZ+qJoO` zTUdW`MW`Bo+W6#Bv3kJE#TPz=H`J_9{8BY@kMEAV&kUdG*Ui};D_yj8+cnvEwM|mq zpBa4E%tQ>WWLn+jHl1xzcoyCBSD7z!^UkY_tWV2KI~})wje7|DOq0iXPudrC&9Qj- zJ5~mip@qZ^$J~%SR6Z*@l9yb#(2s6h5z|Cr9Xc>*ZTe5K8+8i zmA6BSmaVwBm%B;$UcdY%mbQ-aDcdixZ?~S5aa~6tIYn*DES8@!oWe_FQ(ARIZD(lk ze{MMblJzosm>Z+>ISZ3VM*>bR=%0MP*lbdE()P!$QS%P52^P!@aWJ(=o_ehD-Gho{ z#Rf&Y9e!57vwRlwL_>0SOw)ohc~1f_bb16#xyzmSw5?9$^3#SXJptSo&s~`L&BpYd zPeR7Vy?)6N2{-*8A3K=-;&lA4> z`SrGYb^es)|3A75Hp~ycV`sJV`kV`?GahiSo#Y?o zyT410RqL4Czc&+Y3fVcQmY*?gxcM$ydA5l3s;_TsPx4s{gf{tz<@N48e`IRXoq2n; z%U(~q+1T*!X{omOr%5XB$%e?tFLer|7Sni{(u!WBDRq>!w}nP&xUqe)+XUYuU_&&O1+1T=Lv#iQ|UG zvLorr=9e9R?>VC!dCq8u)YC1A6a6e6e6fpby|GYcjo`$yCEa;)f3<9Ft2f8S_T9J5 z*gp6BR5RsIEJX)wDuX;&zAh5HBbuCle&5AUxBr#NsWjmxLADlN2F1hokW%4o$zhAuTCbwRy$c;IA`@!^&|L;D{_^H>p*k|VY{3=H? zpNrftR#z}fJ)EdslU*JgY*k&Ie7gJX(`&qDRaIhkq1^Rz31|RNlPd=_1sA^1@Mpw+ZGcb|;Q)k}1}Fb+t%hLXP8-uyC1|hd!Jrsw`qw zS1jlM>we_bhZhshojcdq!ozRX!8#?;=#tNq=n!uK&fSHQtL<-CFSGyEtbh6bzq{ox z|GZJJm1m!1^PaiWqh^}u$J;-))-6)dfAWHD?~g<8FD%}^|9;BnZzlpOUinQqmeI_z z@UoSROLg6ib@R8?pS_U3&;I=F%YV=QYvy|X|Iq>thlR;Ag9}{4)oV^3-*a63ZICis z$@WTi^~VQ{Ei=6yt7v}8KGt~m%F0JOx3$hZI6L+DZuMTa6aO8A%Jx>PGCVujXuQA1 z?oB$QKko+Nc~0wG&YXJmz44x8^)-F(n?4w8 zuM|2o-9_?P%Eptu58vM2{^HG_IeOBPk4^|k{5~jRv~$D#+)io6nWu%{=BzJY-z=cU z(bN&7(i(PeONMc9v+oY|eS3@dXt!CWgooMsTOGcee)e&VXr6OM`HL?ft)1Zudd6BtutGH_;pseN{h2s&!m{L zrYC>hnDVxIpU=46=B~tFbn8-{Tdh@YYTb>XjQa2LmuvoQ;1!zlsZIXf#e0X1KDDyC zGI0G*?>XBwEBqSA;Z21xpWXUzOFSvGUsU%@c>lzw5h=S~XJ6{s_o9KR;#J^K^Uq`E!oxi(S>W24-X=>z2#yUz*Kh7h!Zp z{K>sTzt1b1J-NvH_s(7u$)6h@N}b*A`)y9n-Cgbq7k=>P+g4w{!*Ss3yN_|X;+Fj< zbK>NbZLH)J@~*7)`%-e~=>>%tHjba?Ih+pZ-IqMkG+}*g`<5J`7`g3YKXSXWcUVpk zu#I2)beFN@{k_$*<>uQh+_6Qf9>JL|D@{fw6#}N<(_z0V)$sT$A^EK{lhrUe?v^-w7ilMkdD#3c-_d+j1kBWjkLQnk-4==hv<-;}7V5r+9NybwjjLv{Ll4 z>L(N0Ja;7@X!VI|nZUrQ(6~mayW`K-|LgaCpO=)q-tzjb-+Nd>8kjg99KSi!{@?HK zcdOr7?v6MbQ@mEys5jFmS?cnPVEOwue>GQbXa@uiz`BQFBzP&Z? z_t!t)*M9ftM}sfNmA1D0eE4zEOnGx(XUNAbH(iTm-0ft?f%Y* zzB<+m{q;=xWx3?L$Lu;=@AbUL9bY}R`g_MD`{l3GB`?kP%3b;` z_VVq^Wlp=c)vfai?=W3AeV@ZOzP`)5*(~kt{og;_w*HHD0n4A?E@7*!U+!uydF#EW zt@`5YmXiHHSlq9?e)aj$FVS_9$?g6R>R(oVJyn}?dAZZC>Iqsu%9qZ6J@rg@drz7-5_f&oLx1R!v zb3>__$4o9+*wwv%n0DFLr|DT@&)LGOJoEhyy|Os=%0hEpyJOh#K(ml9v*oz{zIkM$ zxx_c<(A1feJbP4C?{D+0JQ`VL8*p=#(M#ni7Cnr6BLDkc_w~& zUgxealEF4L^+IQU6$c%uT6s`p3m@0NwVL1LuJ<)-GSzY(+U>u7+5MGD4Ne}XM6N%s z4QBj$Y1#8m+t%E>S6=Sl{KZE64`1lEifiY3x--sSzrFWH{l{AC(Ay!C8o7Aeyn@6+ zBOa|?YqwhKp2K2?M{1har@u6_x)bd)|16hWmuHTh))`F`pPt3<=RLfqw9ol@qWax; zI%i$`&+}cJ;_*b?Y1i^qvzDvA%uqNmp-^>o@znzf0jcUU)|=Qbe!a3u=8>42M84wL zNLOdS_wvUCd6f5l=i0yA@$gQ8+HYI(6fYSpRCI6UUHVpA=1bMf`>RTtMIK*B6H#+7 zVYPX%JAq}F@4{-%^D*4Mop~t*1$?h>YMpge-u-sv-TYtY9^UGaei+qqtM1vqUV-_t z*TT+DQ)Ih8fxl3H#x||J^WG)gcz82;!};au?F)@VD)ST8B^=md<834^#b|piB&s z{-&+xgA^UFx@vusxFcPDKK#^vUkA4DJ1%?QzI)DQ_q_F~AF>VlXPRGiz8N0yDztP$ zO2(&qyRz-rOCC=%muIW0n>erZL-wOhvHRMj6-1v+eZOk*$Cl@N{N(EHKD7QK|S&pKlsk7Y}t#m2Of7TRhHiQF}de*k8QqT^NID^8_ktZZk(O)TlWIP!ROY$XNq6= z9v2h0eDC(@Z+36tyKT(eab|+#HuHb7TE=mUm02542=L4?d+(_6=EiN`Z3a=B51zPr zjxFayddtO!->0vOx|;Twb$7eg`}2=64vj zGQ=G&toif7;^dF-lP^@*Yo3}P`~H5Fedpxw`sd{OSvphvXB;xuT(IN^>%8ThR~%;C zRt&F@TlHjek|vX^xYwa#-Cc8ky*p*I-->goGsl^?&n#`LYV_-u7pSvtmPnZ|5?ef> zrzg82E|iPcVZ$}iK<2LwzjbX4vzYmLuY5UoWQxeT_=B@&>-I0bt2RZ+@lE$v&#Il1 z!lvd4E$WK7;JWxxAnOGc<>j~I4jz7csn+BxlfX_X<35)ke;(SEuzdeD>Hl7<#=ymK z+nvv?Zm#xp&s(~;Dz*5O<%x%U-?c=)&d@KMKfAjnZ^frJp&6cQ3%*|nPLz70`{B%2 z%jUbYZ|n-)A-*^NhR&*v&_s3BMdugC*-V)w>9u)@#Rr{IBl!n^x#kDUY+UeZ&ing^ z?v(82EdMtJkL%Q)slvtZ$%j;RkS_diGGb!?iH^7SJ&~Op!kJj(#`pj zju+m)%zbyKLuJ*17tSX%oDXci(m2mhP_CUP>&;QCh5COBIG0Lsx3N5S4U{#F__MQ= z|KabpgFJnT>rH!5uUjVTjp%g&b8|hTe&Iz(X2c9nek=Q#V$?URG)kA$2_iwT|a+Kdt(-UU*gtg z{^`~Ef2&k?=i5|&`~TB)=CN#ZHI@ga601J!URSxl|L*+>3oGk)Pvs9uxU|}L-m-(c zr#fG3*8bTxVU5;bhlNZt;#zrAHXgq7OZV09mF7D)%t&W{$k%Et5hH6`XTA7hz{l?* zeIZdT>DEfm1zsGLZsxdpzq8V=vFp&(S)OsiYrd>opyz_b9!+YG~3U_^D8AVsf@E(ZUSn9E#+nFImE-_|H$iErUTE!Yi zyJR{=ez!ejNWGeG@c$^k=0Z;X=}*3%&6srKckO$DYtLtW`0jjVXWr>)2Vd-*fAzHg zg{lU})ZdOVoZEMp_?T4O%Su>!UCYjV`r1?T6JzZ9?DTIY9Q>a6E7K+XpyQGWy!kB) z+a?}doWFvr{J|dd-iQH zQTTf6Ns&apGw(W!1DPJr->i17YWw=DyUXft6xZL{WV7f$&J+LU@2UEly*@>%e&O*J zhCi&b$B)0a&$<0J{PM~_(uWJaGKy?=I?dVFs=i+NxMem+^V5g1FU`VFYTFt2_cR^f zd-3Kgi^>Ayn{hUc9~KKNyR`0k`=$4j*w?+Wuj4ShuxzG!pt1kGqo#X>tVmU!@jr{nIPJ=jJwFmI>^gd~ za`WChdmK(&FpDozcAYrcl4se%&(#L&9NYSn_w^jU5D>I*lF&DU9~Q@SZm3QcsTSb- zYW@3*?B+Di{=MD{`y6|FPxXpcvuVtq@VsPix&B#y^=MViLm!MkEj$;R+U6a!WA)$a zfEU-N>%aYM`);C~$@-UZMROm#{`qU)n{{S`cE}l zmK)cFJ1G8Y5xTfxb;gtwrlj1s^=}t%F+Uj0adF@A2^#;)qQm#TzxhUDg{M`1=J^Q) zH@@cXlYbhm@MQ8@UQ-5+r{{%q^fTvQeK{v*yZ>dY&pFq=I$Bw4-+b#=EYT?yZ8Xa< z&!y#K!{;)Lqr%r&EEl_@%Ro%iqd z`o2Z&)z(YKGvjW@-Q32ll5i}5Csd;JQ}$tje-D+8)qlwPe3m~|s{Wyy?&Tlc##b)a ze?IsBPyWB(|5yM2d;R}|+55k*ep~R9`{eA}6;8pAPbFTH*rK~^f$vFYh3j7qw8;uI z8hqN-#C_(;OP*XIo^H{UcNeT@TZ{ZKigjkqOYLe7f8lG$!P77yklFC4W=ps1x^R61 z&gZN81Uj1U^Y8g_P^6%-rMWUzamV+N=hf$xuY8Mbc3hli6OhRA+2x@pze?o9nybzM zt3C#vPxp-2mX@Kier?x>n%QZZeP%bNd-AcjELtKc-zT}pbiMr{gW0-#FB@kC@v!+` z_vE;qsaKt15OKow#~R*4TBgq;lfRx)=~wZP`>mx;5cClAGJ@&qmWuc+9$@FpaJj?A@d%m+bMbA(EU4J6@_>_>R|CoB`JKD3G ztT^}k%=Ku|hzyf08$RC@>z_Nlv~;QX!==X$I=LjfD1NB@uvt6wn)XK>)`mcY$(CF>OzM~H3`QYrS=&!*bBM<=pD*V)Nws_36{;0C7Je1pTGFk-Q$tUe1+%A&7%2|Mt{%sEJ*SQ>JM)dSoZ!bTaz@W?V;Re zNuQ)Xrrt#pzPtbWnfU9v{u1R+-m8x;-xp=NJ^c6Cx9+pw-E86c!zwwM@x$|)6_@6p zwfoAw`R2j;OJ!H@@4L6}*Mr&n|L^86KY98syXx|Z4Xrb(KdlIzD3G?U+lYt*;YC}_XTyXO}|>_r>A zN`fQq&iv^cw1ewt_NwTOVr@K`Uf(`=3WP*nm0&-}YJM{C-R8gph9-f}1)O{S`l>ct z?9z4%*AP6vWZue6cS@}a*B?8Q|Lk|m>4hfM#vWc(QtJ~miv!F=>%v+WJMHtkcPpoM z&V=GazYH#&30U#UWIE^47ml-X&O|I$y7;~|eU?b{+-Kek?q7%dng9gF{7WmpmZJ9F=OU6~`LS6+Wzo9=2c@$$p}Tzfe0)?4XkvGAO% z$eNUtq%&vpqOO@`la>dWeetROq?I8em3Vo|#=7fCrR_4m=bi9)y7AMQ$cbzAWL~L| zN}iA;aqMC?6AM@7^dKIEb6XFb2o__+|?}x{#*ayV%TGi9vLhrlwe%C@=s0?OkdnpIvXQR_PJCsBlxvt@Bgn zrF)Vl(&-A2zZ@Kqxc=Z%IjxM-*^OuI_P2Cekvy9g{?ekV-(y}?!{h>{G3a8@w z32U{(1%66->n{#>>`ygFeEjpHuI*w8_l^S`^Ga*=587Br>F=pyRk~AD7;g9bocPn- z_kT|>y1TE5LBGZ3??Pe8gU7#ZP?NZ9Ds+eIyt(G(%AjMtPRBI2tx}wrSDknM$%X2< zqBWlX7nO@79J%7U;CakvMisZG0$&1da63Fc^&tERE0=}9-3vR9{Qjj|^i_7=d7ZKX zjUJViPkfg2be`QRZ7=918c@ByRpHz%^UeOne@g2fEaZL`IO$N(q?mpwu5~6EDN~~u z1s_iF3QL&5zpdVjW67Dohf*^xCY<2yIgs#MA>H@F=Bf56TRz%xZMHj=^nc%pyvYfl z!)xYi?aSgXzLNMZcYcC1@1r{$X?h_&#m^@&?LT_+>yL20lQV+Wtl0Zl!*$Z{Q?^Ck zymNIO1ukqoJZpuzz02+A+v5LLm((UqFjm@}{-d`2weze?EG$-TD6isL=NPrb}i2 z{gj#N^Z5ML2)+B&J8u2Hvp(j1+xw#zYHek=C->iVO?PsC#uV}alUgmWXGvzdzx8~6KA52rIKj-h2QXWIY&Sw5M0>$Dk)G5>u|S2sS7 z7hQjJk3EO2xt9*_+R$@O?ycdf5_X4gvR!m@HqF>!amevp&W9~F95zZkd)}QB*>YC$ z((4(wmKxYC_{G7|V0G~VkCgr%JCU8s{hChRoB8m{?1iqbFJGUry)Yv@e2-a5&Wei* ztCvPi7F@T2Wx;ndZSDHB6v>JoijR-To?NJ;9Fl5qV)lEPyalGtjlGF;js;~iMsH4W z+|V%T$#c#^ljXnc*0vg0xVN6VdQrydfA3q_ck-@=O-ENc$LYH-?P&VBOYG@;jvEcO zfn1iInjwPAN~*My`?qpW+k3E9r_%nJsk6kvlM8EN!&lwiDkfW)qV;#N-+trA$`QR> z5;JyZuPHyr(cz+0aqjAbyE8VbJkp%;Be34@`EGXg~{N4N5_Gy#8YYVwo9xpvCvisH3K0X~y$7R?m< zaPw`zm1Wm&F)ZWhV4G2OqQIt?EB)Q&w2!~PZP8WVIQ91`;Vo+fYI{y5f4|UN%m41y zf)hGDTx%Nki+yI3`;zDW!Zhk!nTOm*9b5G`E0!#|9cFv(*1qlf=VNt!PnZc@sr`QG zn(L?PJCo1sd^Pic*#raeY-6z(h2c@Md;vR_i-g_$T)uDrkFU;++cxiCTgr9d>J6zk z_fE}NvDB^e(6-Ib_Q|}tJ9T>ceV4v}RciyvdvDY&f7o$x>+#~_=^e*z#V>ew;KFvJ zzWv5`9==}Fb@$@ReF|)u`*$>@d&Nsg3eU?rRl0i0k`-)e^=k8eDm-$r4X-$yvA&ph zb|hEgmgx`bD<&>~aI8gC@=<}xa-sFJDhf8}r$0{*5@Nu0=SRQb%^^pwC! z*Tr+{l?i;_ zU8kn5Skke`&0xa6cR4fuuMMA_U!!sPhq1gc`-AfpHZ?yEeysU_?*5)#H~#!Bsj$;v zO=T0gzw+=Q8^0>cj+-+NTr1jWxcRB>TP=ZO))xCzcfWQ0WVI#Y1k?MKM=o_fFkEdO zeS4vqMgBe`*Q?L>x1X`v{<~u;=K=+}Jcc=I5BV?5JMx>=V2RVIP_c#2T3N&2gzdWe zXqDt4(cSak9NT>(x$JO)DdV13(V@oXQETiNY=3erTvhp3FJO8%t4D3_^LvWxeRZ!X z+Iq28++E|fjIm>4Scpf=%GNiXVH(?apW0ykJn;Q-(T&<44mCVK|1YPu&X;H3vgLOj zR#qO}`{?K_fp4d(lBXPauYca~x$wiuKV>Z=WKaG48XWWfL%`{uTFLhgxygM#?ph`M zYh901oOsm&F>&+5y~n!N&y`N$z2^Qr-cliNK}9W_yPeZww^%OS%&)GTizghK;Or>1 zi&064JAQG^^vb>aj<@A~nU^!OFfLW5?7^Scw=|1Ni;AN4*00OcxNl%2S-|=9#+71Y zo9gK0v!0yn@#zuh@tGwn9i}7k7GLdar)CY-ONi|`25q3#-4gU zQ4Q92@wv%9yL zZ+j*yCg;3zXToP;k54M`&N;DCACvrVt`B7v%$&Do$BOxL_4_B5+pCZTj+`Vf zJwff{cf-i!7mS@#RJEC1_kYo9UVHk$&p@FS%kFf|-rJ_J#9qE6_W#wNkM3pOwwrsR zsopKwh~Xd4v7B!o{vLhw;{U93hyE+d_NDIDWV*o0{2-_`WBc@k4(%x`MBm!*uxCm#y%5xLP6XV6zn4>?I1{mU!ONdi`+rB||+2 z1Ld}v{LW!wi3-m1GoxLc*p6&9S6h?ZWFlSjJ@5Lx0GS!>OBiN9b>vztbL!hK&!88w z-D{uluulvMX*cD2byKkJ-K}B?d&BCb=O&dMxX$ubW1sc6wBt90k2;t3Uz*ai(CT0H zfqmP)o!BsA?b~~|7XA5qS7U9>*<(%}#qTf0s1&E}-l$~qj5}>ea&&Osz zow&iwCHc*lS!W9F!#6$U%W@psJ<|MviFgSv&Ozv5SjDSC74zB z!>-U-gl)#eh^r2nlN?uYs2azyJY07x@Zgh-HR0c{B-rbtJ}g^g z{_b8%+kd91rwl9%FR*qCUOm%vU9dOh=rN@;7q3q-?wj<{d$N7co?>wmw-rJBdt{fq zm3{SjyZi2TKcmJ#t8U3%>=Wm$_H){*^~CV&vGzAt!_pqJNZ9DOC6}kkRh`Q`F1l;Y z4U2pi#kPp2Kf5mOm0)Cv_FBAg2mkx&_vMc#aw>2u>HPP4Xz^r`<2n&5XYXds{}FZB zJD(;ca)nP>mvALGn3?J3jEjoF$_-YPy2?lO3bd<^`-K>-p#>RDw*FFEl5fP^pd5&I9-o#Q}Z^74bi!XgN zn6|o1SzStVQ#f<}1{3QEiF0@6ugo~+sd1M<_gUUe0h1)DcT?vb`)u%PwLydi*Yi_B zS$7$Vw|Lk-c;UBq$D^`OS%xAW7GG1J+dZ7O(Ok=m)nu)pd*&az9p7{8*_8kGadi7k zeB1j(f|pSw=qa2(jbY~!8!-_0$@{x2@!s%t#dxG^aGU^~z6$~EU~?3CYWT(OwF+*L+!XO{CzdoUGKAZOdoPGO-po-~GJ6 z*G0@qi&5&~NuN69(&=}8TxvObiQD(2_NIphtGERJZnx7v{drs2{FBUq{_G!r%GxO8 z%Bk!%T)H}7Pf6k9!&y7I_b#qm@JT7@(RmNW)$`K!@7}icLuL2RpMQ65sajZdf9|s5 zymKqO;x4u+S=wc_1$&$~ihp<5BGGT}`o@m!Cvq?SSrvZkFvI4(2^riXyKXF=DQKFa zG)siz#$KbZ55B#BwC~28le{ve4Tp= z3!knOm}bV}(tS-QZ{gF8S_W&i8|wIv*-Pwc>{GP;qV@bsp0mQo;58Zi_bw&ahe)Nn zdB&`MoxtHBzxvGV4_3_k*x4llcgJY2ye6{8KtW{D)vsxvrwVAUmN?fn>ALNWJ;5(6 zR~h$+-R-fMZyx+8Nwcw%*THJ9@8x`rshm6e8oMrScJT4DnD*rPG`Dq2%e2frvZW)+ z+LtX_b&OR6Fo*&EqH>Wd6=~knj^KvosR)uxxXHvxvo&VxC zXUnp#w0TpcW}bT`8fH54g5C|Wzx4IY{GBz%G!CSa^0AJ z_d)vFkN3WA`?gim)@h33hC}lf`|=3SEZ1yWSM;b~ck!Rf@Q%96cIL{iC*S7@ME73{ zZu2BhNSIz4>=B}A$sC0+Dn|G#o_Jpl# zRj#F9IM)#s?@(=)@iJq{&C1@t^N$qvY@Gj-!#vFW#O@j1dk${hxQpXg&9Ul-zonO4 z2)jDZ^x~&`ERW~3THIH!hk(5LohZ-Trsiw4djz*HF_^E<7pT79 zwcLEt(UKkJhnQb)jPlN$9K;*I|1qbqp?;HZfoj~V>rZ_**c^V~nyeGrUv#8+kL}Uy z6NmhHUabq@eJ>!eeGzx_QsrY8yw5EzW7b;EI%|3Mi)Op}y%7`aC*FMLJTv<9hAf8z z*)eXctIIzN@18%Y&D7v$^b!pR;|o8ef;paBna^syu(^5uvBL)&!iye#68P-+-X_43 zXD;W5h8)(7Z62v-V?OR=Dh*!7{%}(HbIrxOdXwfYj=AFDapuzVGolX`eT{7}R1MfA z^}Ky!yUq|l~*J6e(ubP4;2^i=(g`k+v&Rg?7}jk9);w#J?fj- z=XB0iQk;CT%|<@v{YTrIb(gi;H%nf(?^l=|n@AJ-0kn{=u2YPX?b1n{{{oV&-{4oQH$f z#}>|;x`jRRLVToTy3-qv^K<1_OXt@z9NB08)?{tPOq-JD#|=atzi5)4Q1eNm?PBrH ziP5*`Xfl2>sQo5&Z-3fj7UP~m|4mc*IQkW*iuQ{ClZ-gxmBe{FMfuYA2%n4tdpo5+ zEVof(e&C8lw`#S*bYoL4jX6xMGQaci`_bg}A2i@gt5_k8x|yUt~~H)0Di%p+$Oe5l;oZe@FJ zuI9?Pu+zIg-LwARW@G<*#{>@EN#*(zj`=C8nj|RlX|l1d`k%>_w&e`p!bc8~H{RWv zaq;NJRnOT!OjuzO+qg5J?6HAJ*tW%1RpnocO!D6eN?$yCRWIpc$dp~vIx<%~c_dEF z_<=?rJxg||6IV~oBPO^Er!@!q`7|CgQa zOWwoB*GbNq+3)@9^UM|JG$-;NF1z^JFT&&G4qlCyYpUxrYJXLT1y22B^*;NK{V$)2 zg(~*lO|Q=d&v0?(vdf=2Eu)6dN<8)a(HPZLZa>&^58R#Mbn?ZuA2PCsT&w0ybe-I5 z9$&tv#3tnM^;ggCZF@cMU+~Oh^MB0XX|R8|a6-M$gnBEUc>n(~USV!3;-392uri5R!?yn2znZanUyZ6`M zyR+l}=pGjISHy@Va`$F84atAHP10T)S8~niaDQjCtFh|C!?d)mTpxW5 zjINdDnLTDrIg`A6!B?J6$vvktGONpsMNAI8Pk$9X+4lPjCatO$2kjO=WYxWMS=g>s za9Uh-!!nl%?4is@5e{JW%&MRk@MbCT{2;FIZ{=3iqc4-Rl{mgBlb>)T?>+R;GE|33rJGL8KtDb%S{mHk{ z_PXKM{qwa-&Uh*xEd|mNWn`b}&^zHfl;rWxN zr~B9L=$8z?+40b-Yx+r1|AQt^J6FzpIwiDf-<`u&%ez88%sQ9(VDAR8qjyC1Z2abX zuV9$ualcl3RNhT4F`IQe_e)^n>4(w}E5&MEQRS zOHXF}pl)?XQN0|XR^|?+U3_~o43qta$zh>=?xygQ7&4t)gP9%`}$X zXyy)^_{P`jrRMV+pUW?7Q->SH?GC-$W9EUqr_uUI0W+{<`!=k=)-XW7r+T5wUUTj-l<*rdekp3m$(zMa%) zIU8{xJ>-RQiSdMZ!%x$WJ5SVFB+NP0%PZSq`i^_k?sc>tlXX;FwZ~rL&R2HRpo_Eb z6(8N~D155s^&S=G8KGY#9MjUeFK`4MH`UB9a|y|F3_9ZZbM?e$E34x&C*04zsdMO= zugi3Ijxgq z+~Ixbmowkz!uW+jk2!K5*UPSYUZ<>O;&E=X?Oea$vBca+*Db&I+;3p> z_u|aF(xFJk#w{iV!vD&#Az*LXcz?Yr{ehGh2TNw+r?E%5A( z6wHXQikC>P;eOAVbZGZ))0Qdi2Vd|1yAYG zs?VL>-@mQ6xqGQWo55+ffD_*ZHXSHE6cYNSTU%?-Qn}i5$0zK4{^n}M8_`oK$9{A1 z_1|huPCuk~%GYei-|92TCwzleNoPkGY5KfPF+ayyoYEV-- zmHgu(FSWO?{W4c7EkKX?LjSdIdjAj0{1Ibg2>xQWO4hE9M>??i^YiHw=`&lWac zxNz$1KdCbDZRJk$?9G#U7Yn#>Rc_UiXO;Kt+{whjXQ z+I2slac#aP74KsAc@7h6dh1b(kOgPI3#ZIz@$4_zDCtqvz#%%zo6D4s&)NFQ+j*W- zn*TB@u>5_{bn5Z%vKVcymFsK|@7;0e>h-M~xj0*%O;nhjklKDrkTX1r@dTTbRP*L@ z&SJYHv#u_(l-(=8K1}`EnU-5?mLDiwIO#CQ)F)}0N;fxXt!!@9573%i$u)PmlFJ?btZQ+*wOC^Mp>|J#npGp-`Td!Dp6_$1%eEhU z5=H_0TNR>u_)of>@QHr=%2KB5VkHy)p zHa4XkA5RzrKxvi;#|Uo^LHzh9spzaUHHl*bB} zu=}6)eN|!G*gQvDX^U^^`AJ<*Gkf@EsJARKNGiVB z^}OBs;mTD!37zZSxZh7@b75V)R7l%0yP?%3!y<9J}y@*8_AxZ@Wvo2{)(mwGAu$3$X|oLWIp zdalmbnO|czY+#Av2sgj+dEc~2Q#E=eIs>`NuXapmUh8|o=%ThDf9eV&sWrA6Bv!eI z=}a$>2z_Icq|YV9>b-Hzv16*9+jc51RP=kGTOoZ{<7S5XjTBQsqc8V8GktY}($-Cz z#5!^R#D}sUTH7}L+aYeRzAU1-^;FATE$4F&pZ_u~oqE1gIHi_9_~`9@*WPC?n&Q%* z@cYvI=7qa^L?w(4=H{`kamxR$lseZZZ{vOUW}cNfQAZLw{J(zv`s?(5oy$MM<%F3& zthbo%>W%u26Uix;yd|F9M7*N=8vH*>4u*_zgfg4H0DIn#amX3H(dC{;kER3oQS;kJrf4b6#~99^`CM6Ok5)#D#5P4RrHY7 z@f8A>dJT?En7;c=vBckd>mOg(A~{R(Uc~xUn>Ot*^WSy7Gb=JX;ja40*=tkyE@f@6 zZp}8nbHq4=qdw%FT>3Yot>)8|?r*M~v1-fZt>3=opZ|u^2&YFDI#$9i+8tavLf+n8vWI4MhbDp?0TEZXRNS<-{WZ=L$uO;0{E&zXc1G-lc3T=Vr<&|Lf(|SD`8K=$^jK-x3e4%}a_sZz?)X zkdfJ=UVfeb3A_G(*2@<~;!f-QI(F%D&daupjh?6HAKSS4>4z5q>(=Qdu%x`dSQmcv z%vbpy>i}&=Z|-*`Esx7Sie~el$%H;d1;bA7oFezkZ-&vqxgxK# z3hgyFM(M4WQ)RhfGw(r|?cR8gC6e{kK&-TQagod3n(8rpU)N}~F!)#(ixQp#y>KUs;feNG5zJ@qbk z!lh3A-3CEC!uJ`&T09c#b6A&cRs7d|+OXBDGyDIw{Xh3ld4691$?g09c+*rPSdU1o z+0pZsv88#IXT|IJf&a8=H;W`Tzzg)HZ zZDmzh*kT^$%O^$FDug@izdUdA_AM^{re{)2)dP)sChb=jOAR~w-BeC}d!Fpc%gg=W z&dc2JbcGp@YuoL%n6TOP)1z2SFO>wI@F-in$hpyVsaD)^OZL0(QscOo=VSCCecVu_TxwPX3vrM)y9p*UEG4HJE>GEvO7Yof7 zd)mKpUEQ`v{D>dt^IZOi0cpm(JND;g&-A!4y{WhXk!;OOpPV0yURHD;Ei{^^ccEhGot+b zoiYQ7Yd_l*dJfLcF4mgg)@JwT9{lLXHM97bJ_FFLc1@1TP)SKLgB`&4cjkm-e~^xcJa^c=z4nS}#-_=4Sh_@?A7H;A`a)Oqs*#gS zV4!oOZ~dP=GX&pxxP+YlH1Eq>Gs!!?MqBt(eHN9vcK&1Ath_pPzhIjOTOx1krDo^& z@Z{7NR}J)LO3jk$Xfpq-8pQc}%k_2V?#5qV)%m+(o?@J`Pn+$Fy=-|JN23-^%{rIh zmhy3f)|!Z}-ANPm=O&jis90TJmcD1#u1VdWxhqS5an0K+#a1SI?sdS4b`vh`#B}dv zcOKo1dlStq8p-&r#@e@2P3%&SvT6thSRg zGLNtA(d9|$Sb4Hvgs;M1P5D7TXeUO$;WMev)0g~VKYu>0rn_r*^Ku2ZGfB6m9**pt zQuQaPX_ryRdZs&T)}Kk^KCpAu8&l_kX?EAkrf<4E=l0eL1_t4CTWa5{F8K5GV6DdC zKXwwzqRuz>hF46MnHF$xYn=SaySvMu{P>}wDJi-~Zvn6F2f2^uRyTdW%k}U_B8zp9 zhd8UePoLX_TU-;nxaL?sJmVZ5B>GCOLd<2}YCadu5Z>;Td}q(q$`@2vw^(?|JyK0N z79jD8b>#*pnaT+n8wxsoG~U$moQR$}?Y=kP)!B*9JTp7qE!uRBiN)HtadG)Mt5=G5 z!*6G1H0S1&#@SwOzEHBka>~RDlVXHpYwjJ3D=0{PetTKdhc9L445dZo`g4z5UcD$} zap?l{y*I2UsH3}Yl;`XHT$~ETX!N(kn8EOzU+WkN;8hXjm>5DmUwDSJQe1Xvav?Ha=o{u{a^SorPqe1><30YLFK+NHx#ppA=-XS>=gYP&3S!O{dQqM5$Khu{q^PsT zqv|bY?RxI>&#hlSGkwXXvPNb7Nf$ZwoKIv-5c(Bhdg&G0k({rU9j%{zT3kQ*jtlp(lZU=>{YsP#%^lG8ReD&D!eKvmf zI;q89Z^*RV61>34`6IcflljB_Vx8~u|B7y{h!?NWP}+HB)#;cGGkSi;&TbSqy65yn z0}=76ds5ea&v3tTc^%_(X~yggGvfAdK3!=Pr5Yzarzwf^u=8HYl{0qhFAS;sY;pVJ z$K0L&AMC4n_&I(`x%|G_3(nu(w0*mfS?J46M%t$?AC_3BdG#_2KCTybKal22i znp7vkW5v6o`G6IJO7KL_dA(}cim!VUZZK#t2s%oz+!aW6GqK&NyQ4f`F406)`ry@! zVnvny+-mMvLGh5eCvnR%zP-oI5@a(-w3oRn!lCC`aUPJVo-H~quriPd5* z=2<(+Z@yX4G@U!y+iORwD6eVFMs@!C|1>Lqzde6)vHN}Tl%+oug$z@UdgRyndaqSB zd0QPO`jyG6?GA@`;8pvE+oESLO$oa@zj$|lSAbnwslfRif!FHKysY*4I3=dg;92F9 zhueBYpV}_?)_67aLz~yl>J2@@c?O)yhpngI>Ep>?_#x15 z#p-8o-v0F9U~>zT*5`WeZ}$3`TsF&JTAkc6Y12>D_sZ{t-PupY6?&iJJ#p%qy*bxtX%|Ec_0{(rCj>Bq;L|D^x_{=YqE-TrKqwY^7TmfaBb?7h(GwfgA4 zw@*6fpM3YLQf$t$WcP(!v(=86OfI_EWWHJB_UCk^v?HPG7Whnj`uFgIHL)oV_VB-v zG+WVl3a;Gx^mxw%-VB5|D0Xo@$S^i zpYIPZUj0l{{HJkd-f>fUGrl9Fh8+VL8AW!UxjYDuD?TVTCCI3ixImX zEZpNOqRu^2)_%uZQ@#@#}4`1%LEV(p&b1K`e3NxQw^THZJwzy4= z+I)k(J-Pg^MQncOFPYl%#BGL;UzA48-)DdR*!`MwJ_4%$vv$3{H!E{}_3wL+Zp;x5 zS&_45PT`qlQ+mRlSk3+H-Y<7@^6~!E&3EtI5dU}X!MX04wk8Z250tk|U$~}9<#(3m zPG`e-DSPpqI(=vH6%JG1Ijc24%K#W(#|tp9WA z#F7&`59rN~Nw(^lG5gMriz%Y-k8$0feKN)Wy3PAPu6aLpJSyZ**4%kzwVnUfQ%U>0 zyxs-8yZ3rh!9*5oy(e#KnE9gtVu4+P6?H?>WV`@eMAt-0RQc@FUyO21j38g9)| zcrBjeBiH_Q0Zry-ld2~^Z(QN8?^pJuc%~8mx)WOqdyCAbh#LU2sta`<>TQ?nV&#rp#%jTk}yR(SG-P88} zpYK=u|1{rZmh?G;N#)B!_C0#=#Q(gBgj@CDse)5yg{{e%rkS??>fim0^O<7g6$*=e zzJLAZT(j?TOr=KX(~vzz3GP?FZ#~<%IBH(j$ohr_p z)sfe>`)uoxIf6mSeiCx8&l+y{`?gL0*}gWX7`;h~v&8E6#+|tMap9ZyZ;j9L_fD0% zcB~`UF7NbHFFCtECBHr!NdCY6>9Kshj(y!1<&zrB!c%V+oZzWVN#k&4z4)zi@slej zs+1nrG4A`H_4xM|+g_fjzJGuGxveu*DZ$6|9b4HAl}#^h8t`5>vb{F@c)X9>nWNX& z^Zz^5{`~p=kKa?I{`Z2`Tt*-J*!*37neC6&YvnSUIYSv%nwwm)p0u6kk#pkQC%xHH z3a9Sunsl{y<;sd%ZNi#X#j7|=JJ$Z&|DF3o(J}@H$3>oEYZq~Oa(r2%IO!sL!)*fx zGo$P+t(m+g59a#Uhu!<}#ai=E`rJczPRZH0t`cFpB=O+0`17K&GPUX9afj{u_AF62 zQ(%y~SUEz*A}W2yn?sjoELiyXUZ1ATpPZ*vg}JS{(?upty`i|RCObc^<$c;Jqqy^c%y^OJU3=uUKV2-6p*s2 z+c-HmUV4g^!GHU+Cof)9lz4dSYoP(tou@~q#>7jTC*BadZxA)zsYCR%^YxjGS_Qg! zGb(Sz+s1GDwx=#^`m)<8sXXuFc)K!=Y`k|UDzkP~#4oXqrJctr+Ws-z3t7&UEg}|F zBy08VXs@D4@s_jC&Q_mg{FHL!`-G|+n~r_w*HA0XyuDLw{k5B^X@41#G&T#^Oi8ov zetY#r^*L_OvkiP3lAgu9yYu&E3EOR5i zEvz_p-fHgK=|zQ=n&;<-e>yC0d&v0x+Uc46vM2vm&!6=7Z(DZ5qkvd9EdjGVf8A~| zZ-4UEf3K?jpM&3@ew=(f$U;>~Zd0`olBD0 zNK50$!xKKdH`{wuTdoQzO}SsoaF>Dl>q6ZSr~4mdLV^YTf% znWX+)FFkpB|Beaj=lz}@{rp^kDRAPhpwgu)j|OBkJejmqsX=S1!?ji0UvE4Uv8l#5 zr>kgrh?v%!37^Art2}b>4s0 z=p9vp%Ih!7{hqkM{JrXiCGRcn>fPAOuKjG0>+C68RvyYVQ|5p2wA zpA}y!-<5ZwIw*K~S@`;j_<$qFX5>$s@%i4wSvejb;v(1IGnVq2bz4H!>GO&MGj?1P zxG+Ir%8q55)edjI9Xn&=%n2Kg`h=}6owYo-D!-~eUUAA2{?$)(d3C?O(pA16E3I?! zM~kA!8kU~5X9aqd9~FKT@VX;Y|K*;vM97}&whLl?YZ;X8mHjq(J9GNB=@ET1A}!7kh5K1MCdppVU$(B2{m6@N8zUxm*043a zUQ)Y#|M#CJ+kKrL?9;T~@O||kyK5{RC)`fDRoF#e&9HTEt5BO}_UNlx%{~z$^?pVl zF^Tr7W%>8*rc9pfytA|@<@eRSU!<}fm^D-m=PTR)IQTtCe!5^9h_cms}KiQ2y>;jnn35pXT=euRpmVIXkh% zgz2L4-Q>XewkJ2-{dTnd<=X$7!`JWoxzOh^e{UztkNXBeJ|E35r`68b`%uFBy6)fT zsSB3>*qO_| zO!1djM>HRJ7aM%egmpFFw=j3bnjIZI-?p#M{%G<3&d#X{QDJq#t}9h^v~K+B-ywGU z>Z_1dK@A%%H}Ga(+4ojX>y+}QA6!%7_5F^VId#&e+^}p%M4)DPThbiCzmcBHY&S9e z`V+Z@|5|NJ6`xq&2HUmSTQ1D`w3m5-$nLj%cb}I0S6X|e{0e>>Rd+ObBC^?OU@xEnrBlv=|WR>ikrs#gpS3<3QgDF-`P2P zLUVP2f}Z~Rvl+&bk50s!En>g@H!Y*pz$lbueg9^DuOH{S10=1o+P1Xy-mCpkS^0Ra z`BQfJT5Cy$>#6o^N=fHTA6UNV`@QaeLjL;?|F_-TbL)gjUJobZ59MP?@8`yQ{{A<8 zhy3p%g;M4ATQ)oQbtuXdt>+5kh_YceKCpRJ!mf8wUg5g-7o5dR45eBB@qJ!f{J&g# z#>{`~Uslimd*-=N&Gz=g!3!M%yjiFGyT3hfo}K;l@O0_QpMTmV9UriMRk-UkeP3R= zR-DE1bz9e!w~E+=mb`tI+Vq9r!(>mD-p$Vk)|#h%;0byVZ1{SqhUMRlGv$q+@@oeE zd$WusId#LDd-2`B-hDpWc|>yeZQj|shh*O5-b;_T+#1{dX=7XktHq|+@--=2nePa4 zoi5q^{EP<2-;8yqeAkv_K$yV?&~mTdH=$0p~RH~H=ka(7~x>tTcjb+xp+f|mP1OO z$&2@KkB+)XG(FvVd}5RS;!V@v*jVr$KC<)JriC{yZ#FmmekSktt2QSM-*~5ccm0$u zOKjD;rW>${W3ier`(GiqIg1a9AIVNM*b*A)sPU}-dYI?LdvDrUmv6b|6tu_o7yFh? zRu%5MO8R%dE&gn@Q~qeLis`+=d*NZV1^qmKD_XAvNHzSrD?V*)(p}w$-*yFFoVv58 zZ^xA#?ygsU{WFSJZ{NS^;e+bU0xid1H$`zU7)pc{ndn)VAGuaP?SkUn^joi@jJzIn zE@kypcs;LUep~&u)uB$J`KRyh-oC^BNUz|%>2b-|*?xZ5ecyZG5%nK;8^SKNvGjaD z@6nc|B~xPfc=l_Po_FitSerLEaD;LtTmA2TrqIe@wkh*`%T%@2w=;SlSTyXAdgB@B z@H%|^^!va1Q>Dy7`z?>$u>LnQ-becR>r+SM10L5U#B5!+`9S-pm46&A9BTd0Irr~u z!?chs+$z^Mxb2xLZ_3}mK0i+Q(V;X=c5$a?7yA+qUoFy%|MN)vsqy=L-E8JBwwXmg zV_s_T-(B9;*WiC}<*z3zV{-KZBifF2$aA#%Sj$;xge`BXIDSaCy7Kd}lf^IYD!=so zIeYp`xfw5OLjIlF=x3;yG50}RVOc|6->J~GWyid1^XBY1v&}tFYOQcXl1ik~hQ7ZE ztnROlotnWHyK`B4m{FFI%8aiL&o(=5o6Re-piOGgly6&J%``jPwPd@EQzUzLcD3*K z%HoWG-Dkap)_L8!WgnrkILH2|@At{-^B@ted+V!}`DV9^NnV;rQ{B2eP9jQ|5e~$Z-2;VqVJ=F89M+4h;`J zTIuX<2z>qec^hL@fQk03cej9E)HzN;;s^?Sp`j(;!YZrqPw=rOU4|JmkS>zwO+ z&!p^~?+~%2Z|}jQHv={+1#=jlP&)j>Mk!8rQf7Hq#-6Xw(x3eKbLc{|mUg{_kf*0U zzuc*!_Yv1J>&o70@>ISNzH)oN*t4(S7e6mix~;JJsp52()ivkDGV-1zu5n5bj$G@1 zA(?UI#%t~=Gvks^zh5Mg*>ULs|Jg1hciyD|c3c%_u#T?WS<5|7nq| z#zpJT%!*zf`~A`UQzoBgcr+|-+_C>lyt|-?+8nQf8P--M$CY~1%* z+*J;79Fy1NtrhlIm5{=}#{EL;L`OkKud5rp_Uq1DX7uH&&H|0TtNY6JdKP^7;P7vm zRM#xYNzXQhnpNL7vPol$jdcE=(5oQ5bJ{G$&yOsfQ#Nn0+Z?HU?tRD22?9Tz-_)Kq zn;=v6+EJxjGfjT=v|~%FKD6!n66Lq^l|lSkv6GHxDp>WHymGolUvzQrSr)0g`tgzn zm%hE)^75>!OFi$i@A*r%q{%&D`;s3iy)ZxFKt}5xsin)l-l_1C?_AGOt#VkQVe(^- zSk^fAwR5@G+OxD*9&R`h$>Lq59P!LJZ$f9~cMk4Gi}bCmIq?s@>LRAxUnpnxDnR4W z#anVbFQ)vM`~HuDA`^Sj`+v2Sk9+?LW-YyH<@)a4Zq~c6 zu|ihox%7$+$tT!4Z@q7x&&m5#!Fi$h`p=DT1TsHsKC0oJncuKRtnhvo-=znBdZIsm zKYjYK`hSA)N5)Sx1R5^RIQ#BzT2sD!#-EzqdkxZ0oenQ(wk$54XyX;Ck|FkZrSBFF ziQU_nCwyEdV|Ah1$bLqlv8>_YIbSC1UZY{6Ui1IQx<6N@*G0+Qsdvs=zoo6;mE*H} zzx|~9fA8j>JUv}M@~*Gr>90zhJ9LvyhL#?X*r>JmiK))D?M15}{k&&u@-Co1zCG&h z=G3Mw>89DUs;hcuEYeuV%*+1vZS2|{Hr{_nPL}CA`aG!kQ>@V?IbA6*=y^!6j-Zv} zK{2E2#UB;bO)klv+rH3LC_wG{)NTLe?q|y-|Ee}qm)Uc>beiqPtb#cpwhy9Agm|NnN6?;yW z@y(vLZI4WtbL<^vF-?~Zjz$x8Eqvlz?0Ixv9(~RCLMDT8#=7;LJV%ozXxw6Q)qi>| z(9_`U)T6)ZZgJgFf1#Y%znr7-ow$t1q z)PL`pSAdS#Yu@vEc@IZ2FD%lQ?EXJcst`qOIH!Ipm5n$ z5lgFm>QR#AX1l$UP1m$2&Z(8~-F@17r{BV+vsaC;>=9> z`((g<@854-*Bx8QA^0lh$L8hV&xe;^+GjuM+bh+5m!q2(&&i+USnF-HFic^MSha`w z*D2Q-t1qmM3rk}$j9w5T>Ek%@Ds#xU%U5E)1t}!YKd#x8zGA_vgmTW1WIKKj=034S zSAM>`6q9}I!sFxTAO2i_z4-R_Hie~s3txZBja)bF#m<99x8mOI6m$31RxT>~Z*J3l zQ{dXJfA^j@v8}vO{A5Ak2cJoMCc8a98(f&_lf7fPyiK?Bw1xfhZ~SW-Y}A+!9IN`z zy?;;4zOSL%81JUenD)_O^RCAG#{Wa5rq#K+T2<#?t>C$uSk09rRLAyOL%R5BwA=+n zX(ku$q_#I-S{E-)uKb@~Csz44L%`?}XG~1YsqOoJGYkBA^nh#nh4)okr$1UL%fqlf zVEGX%+kmTU9L1XNMGK1wtax+XP9TbBO;(uHLl>vt=Sn|3GCt^ao9+9jn1#oBI5-+a zs$L&8Hq|#he7Csb-KC9DQoZtZb6CvG?WE34KRhS#i><`7%#zF6Y3_ICh#h_{W6&4k0ve?^>jIC;&nxafI(bDHI?8J-ijZaA8i{Gy9H zz1F^0q*ZPD>GB(HR^jc%`SD#7A1C$(?pUv<(h7`{>u+tUjt#D+V~AcvcHTtR&Re=QDx?|=ec$AeZ|8+ z_g!vIc_cPri(kxyY&~l$u~&aGPdzx`S6emz_;L1^H8KZw9DcPrJdbO>|J~chXH&Lq zchjw|crdl?OqkQ5XI^>tYn}Zj+a-MUH2uJzaO29!g0wUCQO9>{Yi=w%cKP7Ha=jku z9aZ;#&Dr|wQ@p3zVWoHbw_J$VX*1+Fbg%Y8kY;gY`abq_kMkNqUgn4@%yIoeHKUFKZQ6T(oY!|cG z-lUg-oJ^-Ku>`wY5Js2D`oxDiZ|ZeWz`B@&9GuC70V_ZHt-ky9(8bc z@uK)MJ8v>^lMP=JJ@nZhp1m(!S+$)*M)Skt z19u)ZH-~=W>%Wls_R}k&-Vl>LPRggR@i198m{05$So+$$J38ZK_aiGa|37|Ou1^(g zcKi>YB>3HM!IRl5%lEvW)Aa28k!7DBCHBTVww2~ToDsfx@j`9RP#gF5_Y0eDWm%rM z`qlD>QjW*wlwGSdr)RYFu5Xsw64fuq(H3HUu1`x`b#Y_Jj68!J6RfLnQ){|-l?m5PP^`6x5KhcPZ&$eZn=lC{aWp?S-L|x{J zd7&%!UU)CEYklC8wuPK``Mu|C{+%y#@^kvEvX!CF@>H9XX8v0;KiFf*<@EP{52x}S zZas7P^Gcz&m$KhHxheMZL3Q*D#)V%UW;D4oZ;QOgr=K;W4+ zy*;(r?^kog#>y}M{MT4v_OT4pU+zbXxg3u9$o%D7p!Ur5xb)MG*MeCtECIjM&ZKd& zGaR1J=3!8x+4t$kRe^sW`{ygV>9a)uZ0T3HJmK(d``>#PzLwWgz-MM#;iL2eU@b6JM`>VEEC%_PO=Ux^1fxXKk5$p;f>B=kljNUbqx_Ej+gH@_PUC zeot@T|2HqEOh@nW-#4aDR~nrc){MTT;Zc2ypU3_}kmROxf#k;JqR&!lYqeRJS(l4_ z&jz=dKbjuvl%V9B%kgeEQVq8^NT%{j%S>{5q#^=WLnVv8E1va&F zoY)gJ$+1sL$n|Cur|k0|vQ( z@lf43u8`$)U5b~?$zxXAZ%v!6=xEsD$NQ?f=>NI+smIUP1>btNal(YxZpOTE0x71? z<7Y>f>PWt6bL3DiNt?1tVvUj7DdG0MV|gD!zlYeJGk$XWfm?d>hD+&opVfNOj8!+y z+2QlB;r`FL_q|sLcQaM`HqN+y?N#OhgE+44{@BiR$A#L8NnT=o%vv5dk0~F%(8PKv zWr~OE&E)hQ3W7i0@rQrD8ejMImGt^2!ZvmvISxGhSiRpST5tcVd%PZwypn&ul|gxcQ=sCTi#0+jAi!^9<*; z>YO!Yd#dNpn|opQ9sWm0j!LI&c~dZ(y|+!b#d2$;dx(lkR0Tt^tFsc@=NWgIPcCF` z-|af*DtA7|6SFe0Cm(i{OH_VTVr?uqdUf&Z1!8%Q!P4ui``tfzHT;{oC*a#}4f9v` ztT{tG3vaEv;r&F)2pIoxJVANYj#zPA}e04J8(hf7y^Z&w}*{kMI?B?>PQ=&@a^TXnUMdurju1~mf zZs+pE4;3f9%s1>{x73#HowuqnJZfLE%EqNN{()J>6U44Yhcw!G%Vo___pjU5Z({e( zx%uznl%>l;AH6!-sWXXjfo3O5>og6a&p$9J(EwLr&8;4c&M0PXH!X>0-tPe{H;?588#W*O5aw# zW**!3&QztRUps#CJhncvY0(SW&P4_1=Y6c>oBZaK@6JoVP5+cV|29{|tYY4r)iYe% z?E}9Quko8y)b)xrNbKd#aD_jX`!%ln7dG2ZsHj~WG39(d-`+~sD_&kV3M}rGzAbuT zcXMHb{}#ptYyNM${ja&Kn)8yNnQFvx=C!{h&dlCeA@#^V?&7Jn$?flzISQrPRXk7D z1gojx12e+j> zFRqnFv|Wka(Es>?&)wCb0{Z<9C7-6~PZRZ3czw@P=m2+`(u}6mUvW-REryjb#%4iM zf;%^Le^|EVs^Ovea|?M^d36~_c^4ebp2sh9wBW?%em0k4CBBR)F6WEpK6`WRZS~8a z%u+I`in7OFIGTQP<8^hsex&hwQP84q@e%hYJ$=>ZxLah=tZ(c>!J*Q(9=GQ2Q2UzW zANHI7OmN9M*B_nlzlGRU)mf@6s9v+X!EmW4PkY7$Bb(*fs|D@3*em}1;W)YAQu*Uk z^KV~|S<(_x(?4C{d`+Fon#=nWf2nY!c`dl(nYmJXarKKp&w#xj*V&(Kxm>8u`s9T zs?!_Ymmayhv*K*?gPR6%TQ?OkhkvU3S}V`9?3(TRu4rkGix<{hDt~*>y6xif^pY26 zPS0Oza5MLe^$(T96P){g<(nq#Sl*$wFsEe2=f6LHK3jW1;OH6G$KQWUGZq>F z5Ge7<>R4pO&rhv3)xTo$?s_G5m8i{1F*q#XdE(^X-`f=qZ%HYhsGKLjve_`I#q3+( zJ(s(EFL=+bi7np{bY`bqWBO~B)j2CpoXoLrkH|byaQ}te#rvJ1{65cLYG3{H&0gk~ zc>fb&E4zzq4p(LVrQMP_uJHfKjBSn~NiQ|o^mmq?44Y+t@C09ofJ*b%kVO}7K2F)s zm)F?uwdT|2Kj)i&^FK+ie^%?XBdU5ql%wPJ+qFNN^Y{5o_`fwbMN~<4UG&*2pFO^P z{Hn^gQfT^vSbnzYJIiHmmiqj@UH;Z|!RA$or537eUgy~y6GGD8-?PuYXE<;B$^FxG z9bU*jY)O8@ zD0;%#i=%OEv18w>n!D^u?r{q|lW!{>eY|OkwT02$yb^xLLpK--o5FPD45RmL;!@JO zxlpa?_=Hx`4{M6&zxUs>tgU0IW6-qQ?_bS4d-sq9Yw?+X*7^Ar1Y^SoYa{@oM*=80YPiu>>R=^wv#RR^QuHu6m7i*57*opL$`>b~auG)WbmdxF@%+=>s7X+t(tuE)q^{pvK z!#|6Dif3t-6U(}bAc%VQF6sCLJQ1eGdE6Y@n}d`IqzLx zX1d&LmZ%APQw}{d(An~$Jxtf-^_Af6#cZ!{oG6`pHqG*p7D6cPwP#G z9^aSpVp{0)TV%kMQzdqYU<4BFOW^lr4!`E{fY~1T#RJs)D*qqOl*n57x`5luh zZughE#ckeo)Mr{qcXHS3d^1bTQ z{X0VzdtJUYt)gvP?WBEiQ!i>uo$1<^*{rzw%}j%dEqr&J*RrdY99vWJx6FB8?6RY* z)q75To9lGHea`J2n^(;gQ|ipSVaPf)#m>E}W5LRYlE)P{2Fh~Wl3L2(ueORSaQ+#? zu0oUJHqRBWrS5twC*^uYhb8KVlZlh3($im=T5lG+`zJ`qz1jRCto6%LjqUI69D9HM z{P`oje08gfJ#K7wsuVM6$ok0Bw4h`1vSPkmv!aQG&GR^OeE0kP?x*@DhYRYL7#t4H7x;HsMA_yVuX(iI%?rn)0*}4<+JEEggx5Kz zj28s8YI}c+3qQ71TrZH@B>Yi{s;H+%%9|-`L%vqn)jXH2{C@X*!R%v?PTEzKXmvm9 z{*?bupYLfffB2{9{iUku`upZ5%{-r>{yjzFd$Vbs<1&YqM@|!kZd_g*Q^O$~o@G0w z@Y@F?{{ZmptH@^!xs&j~boNalQ_%_f zYu7U*m8{--;Dm;c($URN{}#wzc)M;UW6_&iuRq;Arh4JV4k@1(kHosR_e7sxa!$~a ztKX*X*}5}}t7VUP{ge}55c%@QpUx?ET#hPzr`}lwDSgpvzCPESUvmA`VrPk}&s#W3 zjoJUqx~sl--M+P*$9$${o|nAzKlkQc{XA9g;@Z1A*k5hsjoP^BeS*rNA4lsFyTo?e zyo>&EB|tj4ZTczBRS>{`LEw%|n^j|2;PbAF`h+-5v12_?>9InSNmmYjti~ z@%_&~4|IJmeQ0x0F#T@rytB3oWWVanRL#`CXBCt&ZLXx5W~h_onRlD05z%eNMSAl>w`N_vr-@p3uhH27^4=)(fZ+VN(pEKvdu33?j z75|)g&-KklQQldJ`OEezQLlC1?v${+m(u&Cf$@9rDem8veJ*Wlgp{0j?@~V${_Q$@ z{qxBY(hr0)8A8tf(_fbRIaF=~!_tL?5g{{*XYf>=)&49v>0Ha2zEeET<`Wiitop+1 z@QMp*KGRd&+s{&Sv5|6~J$;d1QU!l0AhsHYUjI=c<2K*<=0(-sbu!)j*F?{*lg__)nS)P4^Vfu_5dzJU#!0qrtdCyEo#i-P z)Ah;Nn32h*;9G0{f!>b13nAJX@n17$6j@DR>|Ny4l>TtuW{J%fmo8jh%(Lvv?}utO zHc{afXD2T4TJJew0 zExy~i?}~ywlCM|n3O3^*6l{h9y8Mq8%5Zse#lw4r&8rvy?e1j#**ht zPc0TnKU`bnuUj6w`R(oW{c7_!2tE-uyYgE;<-6^%g{s$YCrp$z{CQ@_UI`QFwQaV0 zf2gt~*}qw0;w!kZVcngCfPRnMyq~*&ReX5RSo5!Ve)^x=r&hgO_V-=+e*N?F=N`6R zJDcTh*Rg-=gl%>*E_oXJa?#|XO`pVmI%|d~&bYX!z4(}kL4|j?igGVY{Cmy6gY(uJ+&{kazR>ZQ4h2>-*-4kI5AD9d zC~)q+fmcRB^D&#rEo(`^B!HKa9`CL!Bt$L=^=$xM?*jtgT+q~WBU+4DQ ztV_21+iIe0EU|^bXRg9`J;^Mc$e3plQ)hF@oSm88YJAOU{&|zIUt%pU%D!uG{#1Wy zJ9p`qjmvCV>Z{tGeqwYARoGVfmw7LDXpZmXy$|a&?tT-w*B)<@<6eE~d&Z813%>rl z#-6X1TBh~(+nzPiRk6le9vhUFCv{)h_4msxp=74$`(x`v#g`$g0|L#qA zZ`$+V)0tTp*9i6Q|Gw-`o&>-0ms6J7p@|o@UmfO|of6VgI_vTl|4HBKKgX%guQopM z`K&^JoFPlWqZ1Md%bOEp8Z;!^CuvY z`%-OY=eZtff!3Xzdye0^a*SunC5}_QaYA3%j9;9-_VJkQRLPBdTci#4x6VmoUE((3 zT1BbyrA7Dt*AzzIdMA3QCw2eqi6TYE&VE} z@p{L+qYj)!-`~mpe3O2E(xqS1jo$PBdl3EU%Squa-*opfY1NmU%hk#3ny1wB=0(ek zFKW`Odz2!!hRnJB>X^+XhR3hx*|N@*SQY+uPkne??T=0`?mtHq8A6MHXmjqXk}piN z&$!4P+_9m3o9Pq771uNTay*n;zC?JQF3w&&r9}7pyROoQQ!i$ivfqqe|Fk>4rvI#7 zP5biy_0Mn1pW6If|EH|Lrrjlb^n@R55H&hEIVfO-%=?0;FHhZ`GUwp8?fLQx1Kj8H zrmDZH_{=l$(Lz2~!Cgk@JscdYLN{&*m6#EDp|^WygpR)RR#rvH?Fmn_*YrdveEU=> zt|3xzt048b^P5ER^==%=izn^)>hjE&m4#l5LlIea&~^L>p%1Vuh*Zr zYt8@kw|xccv$6@g&T0p5zV|tMCHl4UuNCaSlA-k^b9I^D zl9LxFK6+glbK~5^iT;sRW<3e9<}B{%3$k)@O}A{)*zcT?*xKga&c1ceY=IZyFTczG zw>a_t$9mZl`~SRM8#8BV!pYPL)i0C9*D5hbU0Lm4y~eXT=cvFW!)G@m*Ke<0YItg0 z&BisJ8f?1nSEdO6{QPvUaGlUyjz>=qZ@hjn^vbE1yNtFOuN4)V`OZw?oS)>;;%V9b z8L#3}BP}eS7~Om4()cAm*SEH&MCJPRd5VXt9fdWX8bscF{37N0fo(4?l}vl+`1pz2 zUdD@CPMv=8F<{*<`%b?KTN*Iik=yc(>95*hs6 zr1iAcftv z;7!2e+_LuvXDyF7XS)7@*MVNGd+lLTuXoLzv(IYs*=JhSvT{Nvp4MKD|9q5Zf9`EF z?x-iW;gjAQ|DUt>Lc;lU(GNEF=FSakpT;h^TwsyY?E~p^-`_o$%VWU7^vy3=KjNdV z=8VWs|Mq{FIe+T^lkxTwCO?k)x4QnH#oc5lex}QJ*|ck4H?7_u*th-EYw@-3>NJG*Xu8pl^l=>dOJ}omp=d6Xv;!`}*DH0hLYTLwC6*Zpp>hn6&WPZQ!ZDiD~T{k+z z)0P}cJ(r^BZH zn>kx&J6FR^hFK4Hr)%~UPU(67Rp%7{|2;mnd2C55NKM_zw?z5eyleP44Fw7T{wKalJ_?4QLFqprMQ z@?+s^77Xo5bHDE{e|O@t%Ku;UR8ki-a9Yk<`cqElaEGi$<*`{QC$7G%v#M27mTm41 z4Sc6CXW3NQ=Te^{C*F9q!jtb{Xr=tYH#`ruH}9>kUw_-?_mKq*^EH?kMBe>3b&KPD zcmDT{OVp3qC!6hB7!dgIY`33;;Bnnx%`+e8n6EZ`w(8V8&ZHEL;@2B1zLl!HH&tiJk#nVfQk~1DOxU=9F|^zB zG{^3cqwAd*T$75TW*yAi5n{hf|6J?6$Spth2#5j|35k5CTOrT z#Ng3N+aRfjt(oSQYY*njOn$w(bGGiRYikY1~tMRCT?!Ap2_m_|Oy6 z*PrRW`ueH{+f$DK5p_N{^PZkBOIvFKRxG>Uvmhy0$1mV$O|jnA@7Kkbd$Mk_qAQt&+=*x?bzGaa%`{W zk!LrY=Dm8FT^+B$AR%^0hE1ZNl*>5d2Jg$ANx9S3suVrfhQsQhMvF2_iIn9?>l4^+W21OnzH}7;vdfI zrYvi&J-&8le=A=`XEYlF%j{52nTa70Z?siz{4XxrP|tB`_OaC_V&50b|BbNw^`rBL zSV@F|ly$uH_bVHkw!40OTz$8==*3-+$YoQ)I5lrrT-%{lGHu$OClnJ6YKJQTXwah-_aijfHxPMUajWW;9 zylt}%m8-q|7Rr^ba{k|ofVe$BCT@6i-*i)E)snMe+h(V4`)uW0G>1nb^F{ik4;i{}VbTv3>XQH4YgsIujYucUXJ8A#^`C`-I2Ud!V{;ezLlxSV)xU8eyBChqV#X(|C`YWT{ z>0WcR14HLI3KsS?C|EElFD=>qq8qg(zp)An$$lwJDW-kvrygxPRCKn>V)tA% z4x=}*OPja2Jl|bc@HF#7o`TNxCC+PpKDlM=V81Btwt%k6Be{qTGZd5dYM)GG`ft03 z$#?1}twtr~IhXn7mwwhZ9DW0F3^#0_j9~V5eZo=_5pAA=^WZkjn-?W_a^Tmy_@9WRKFBeVJ z`QwqYVqN649e4LBykfbXnif6nX|1WfHH&x^bI|#3{PGL7=5o93{4N&ZU^sEZ_KA}^ zAF{7FC07|Me=s8?U*K&+`tOE_$TwPRujh0Y9DX1v-_~-`aow5^lQqk}Dz&fe@muv# z&MTki#SNDC`u+D9*q8b5sO53~#$jq+6L6`KxCkNA`KYR8Q8-uL>qt*;1~yZAur^<{Ri9JbumX}8u^W_?wC>#bz9uf(H9 zt(Le;5yuiIXuXd3mz%*J(820dUTUkdJmdViwF{Ov?0fy?jm><21)00omU3~{YaP!% z-6UW*Gt%>9pFpy-blA#cR24Mu|kPntpg`+yc&fZcpXhPfXjl z(<(w(RpRZowNr!^nadyPp0dHWNW%63hw87Bj~Cs$c3{>&kC{b!jT@$H;hLkkJu{8Z z{;+FKVT{e^X_2bC*xS}VvB~9FCTX+yQtQMZs~L(fy7t{kp06xm!l5BjJVX0$R`p#~ z{~un*cnZFMVDNrzcVa@pI>zw_X-Or}Yk*RaD`~GhF(>ITJ z&R;8?{zJHZNz9|Im2W*y?yFLJurnl#UB38oD!-U!3GYunsi5F#`=pL+{i@#a&8PZx ztIQi&6=mn=`RDdNzNs`%ET^q@!?9S^7J*Zd#Ug&aQyzSka*^3v(z^Tw-z;|CzDX9( z7i{{irZ|OdqA>qs-sVg5*S8pJ3%G>Vb-aIh;=}B!hgo+73nxf_+9dH$vA(~Zu|mGC zUT66`oA%SEbDbEky}6d@_2b8rX?v=^3TZa|{AKs8P zV^r6f$KP-Mmg#CbV|pa=D*xBtTi?7-s6DLxSXD*QEPBJH*-qa#hI9YB#Stmm^7!P# z>B3w7$@mnD-tytSGxgj4WgI7VY_IN|RQs0a>ZAF`=J7vVrkHBz{FNzxZjGhpy(fk| z(+(|V*<_LA|M)!{lk-Kkt*`RuX2^bYw%otNqic6^^WraOQm*lTC|b;E5x@VI#DRIt zJguDmRRZ$^!(6|_KD=Pa`naKN{o=Bt&*nbevQ=k_YmuY$5smH7Hug{1P$eYwZ^qlm z@M9f1YzNkByg6*?w3nrXtK@Lngh}kaM?AY#R;Hi(TIlGne8AYb%R~N@RVvG&q}M-q zcJf#F3E%5-W6<0%i-~9FhtKm~$5)zrKDUVw)HzlD^~8;N<~R0rXt3W_u5R%NoWD=K z@?i1V_xtstU9De-P8B`&sc6TSE8?fJXPiBt|Ka`B34Et?*~^%DcB+*0M+c?uh^h(u zSN{L@{{X-EGfTbCFE;r4@@S@0#g_C#suzTGm!7Tp;ddh1@QCZ>=VkhZaV9)ZwSsL= zI{sv@O<#M+*~oyeWv{K7xk5&6b9G4xL&}o3(o*{-s+bzi*t_YuTN%qCvvc}J&VdmR zG@>L@%&d+4qmOLXcHqhB)4g98^PuxO&+7Fk;T@6XITd&_T&Sjuvp zeN*}Ai{NPv=~oLC<$kHAt?1%UbFN@L@k4m8LBhT49UO_%b&Xj{%C5{fBjzMhIHg=d zh-<^|^xEH_W`CO1@880>!J^`I_@qPiFQQJZc6*s{XHI)p%QjJ#d7G9rPwsfcvF_UW z1B<>!$e1UcnCB;wxyW_TyfwSy<&x zeEhgCCNB2$>gmg!+>_hi2k84JAHDd@CgOC$XVaE@1?l@AO9^g0cr^8ld_v7mMNNK1 z@kvVB@7FV&zha+W{Gj;ZXHDf~f#jIi2Lu$4 zc-Mz15n)qXyQUrLYRoB?$?;c`kLUSh-f9$KZgFqJvRhw|a)0(=s7gFmnaE#p&R=<+ z*Yk~^6SB`2uX%BO;hN{=PanJcKe>9-y{PJ^(=Ek=Ki_sQx#PcfqHwotYX*l;6`yXx zQd7Pu2Fo`7v->1txPMRbi!*}4Q^e#RTzxgOF;O7$Th!${Cj0iroV!$)_vBYssOH11 z*WQ%4FSB#D@sYhEaCqa6<^Y@Uvog2RH?HVvv$O8JHJN>pf7N_ZC#S`A{Fi2bkDb{Z zH&J0`Z|L*2KkjY)5`Fvd!E5cQ8#4c#(-OPh0X%nqsr&B-uSRIbuIH{*irK^W@W#r{&+@?N^*%_xy5@)SZq$A099N z^yOpl&WkE8k2ho1gL7`9mFt*Sbaubbp-@siWd3 zt{1rOjD+O&`lam_(dz`l^GwZ8O%R&5DyXET{bn7D!9rHID+Y$^Pu0Kl=&lr8b>rFT zW)+)tD&o%tG`TM9>F@4--6Ao8@xAIy$28~Q1=+u&w360qxUpXD3!8gLSKjyYLSS>oy7u$g-he7dRJ#0N%Y<2oOH`<{rsv!YfKfCBs&e5&n29A zu%1;b?wzW)CP!`5z& z&fC1IZDK2H(?plZ=!ACBAmz$wQ*v6rU3{XHQ8jnL;bhZK8lMx5pT2*Y*e2s~B5wPA zZzNtH#{QA}}Z$IhvS>c;YH(%gCe?i*W`j_Hs#U0_< znbp^_!Y-c*dHH6+okfC4(Rbvvjlvu>1nzZ5XMdgZtfW?bA=j+&Pd>MG+0W2gE=Qi}kKEMy3Qf}Xq;XdY z>b>-uD}O%B>sX^!{D;YIzXRXcu&zHl@o;DI`nk{Jeu{?%-FndXL%sI>4u=CfS8Td; z)+jJv@$Jm7kHpT!w+LT){yk^%#U)P;H#cvMt@f~&KehU@@y(p=JIvE+S>~NrOi6cG z74XFA!*8xMp51H8mA0RJ+4F|?$Nn}mt*84-thf8h^Hsb5pMHHV&yQQu42Em=U)#Pr zULaViXMR`Yj(3`cN3SO5ZH}2w|Ym5FVCEPW~Z#O$}Jz(_r@3BAD__VeEp!*Hi?$?PT{uRsXMZ}0&mZg z_BkiV^`%LpW|5*sa`N$q{Vjd`0C0_lW3J?rc8$g^u%|KYE!` zH2-GP!5qc8;h_q*M2_zb64LY5t**~oc06*A(d~xNxWz9rQ}S}EDvr)Ge|{>OOY_&| z!`e&2SHGBg=zMuzJ?rcKEvLT9o!XtZb#KmoT{hn*dzI(%FVs7o$L#4S36BTANg!e#H*xSw#{{Jn;AdF zop`7c?(q2FGX2drJ1f}Q+uTnCuSiVMvaX%L>sgZZrfhdli{es~vN!4Ry4=?tO$?tX zN&Zb2>M0I*TFTdOYwCj=+tyb+^C@3tcrPz**23jaCy5*An1%{oxoCIqgY=1=FE6;w zSaE*B`GV;^9H9=~S8WB}On4=+hD)hqo_`>x;6sVY)_r0J4tC`HIl5z8$L0ry?q3<1 zTR0gDZwj8_Pw#wS$@MP7f+P1r;aw|m^j!PyOmTGdp?Ayb0?$)*> zDI<}`j;yOE&wQ}gyN|Kz%8&DXg^H*KWQ@fZNl@s4cK z-q(hoOzyrspILD5S(MxSrJ@I}?Vrc`;Ok9ZQ%6>3b*pP->s1;}qa^vW-+cU%Vesch zf8V30NtzotPd2>}xzp2~c6!zX@81s}M%!zrKkrYyzE^4g!A+J;r3ED~Pwu@qE6{b* z>Y2wY?H<3_^P<{+ecXx9;`Wn#e+%8;?s4qd#ZTQI=1sh${@D0hYO?YzUUC226VLm; zJ#kpt7E`u)U5%L1nCcj8LCd%yYzuwHNyJm_%9e3PW8b)8V@ ziceKRFF)s3ZEjd_QTV_nM+MV#0~NLn?=v-CnX);ri^<%@${@9LUhvb9kgXLH^+TT= z)K&>g<13e*%v7S5aPHgOwe>fnFQ&FBCpPX85Nr8; z9f?UNG90vDPO!}oo#2z~yZ`EhxbnIFCfTdEoX|KVwe)#tg5quZ<-T0 zuk_IB7g?KT@tcZTqGD z_b1%{vG#wE+tPkMFy8>uuFkXSpd1{mC2cro>5pj9&kLKf@c(6H%RGrA;n_PyB^#oB1pGyCeKqxQR$=FD7quqN}!;?+Avxg=}a z*4&=Wy|OSXA!Xz8ItfMog&KY>3`b5(aXTUs{%7i2-h8#kJ0@;Ce{@f&@Eqnt9LbL+ zUad3VazeBvypm=uD~DFP=p#;+8w}Hb{#lZ(1rL@Aj!$VxDyiL;Bh83pMN%7;2sNw)TDKg&T2?D%ZS``7%MaZyoQW z6}|VD&tt#x%KhaNF}LSArA$um7qr%u%$GXf%9f$R)%j-5y=w=bpO9taKl#C2jBCo{nMpLyfJQ>|@Po3kikl7f*dUdnh=YRJjf5)|6=2!5( z-C|Lx%W*H6{pkH{wn@VCOy33`Zc^B}EZ;5raa7*@ormk+p9|J_AmMVbY+Q{@e#W@MdQ)43(S`5nLS^*rxiYO_}*7HwF5(RR!J8jIW3KdSFOyP6#> z`C+RW!>gMQuTKj4)p|24^;A&&(}n6SF0W;3AF?~0ylAx`P~r&B$z9hT*t@ex&-vO{ z5M=LAQ2Vbqe#+OZ&a)t53XcR%EGpOm`!WtN9p^8XKZ^3x`*I%2db;D9Wv#?%yb#otRO zy}sSd5O(=;`nmt6q9^WXGvpl*$TxABcyIsy{S)@?-I}xI(2TR%^UpntczoIRd6;Kl zhVUF#nW-)%ZkA5!pMA7=4t7Q^zLRlJmu35*bsC3+Zyt7BlQp-hEy`1WQ{4IrM{$j; z^$(tX{PrM4Q~mM8rM$=Lx4PX*ZfLsMC@t8tP*2%kb=Rj&Q=Fef-nLWT*%w!FZl>9f zOUV!KWjAh&Gj8fh2vu4r$aQ=6`;4dCPkCfl`A#^R)OdX+f8O^Q<*w;1MpdshZc5v_ z9Ju0a#+oH~D^a#VuKvQybsranxE(sxA$Z+ubEpBkgX*GKYo#koj_kU#IVnNT{PG@& zX%GJ`-@fZsJ%@$-3FifdC%Gn6?c1A_#&WR#)R#HgYup--)rLM;%;MqLUv#$4rrOBn zQrsFrzst3&k6b)=t)=vXMwr*Jj_nM~nZCWA)PL#yme$XrJu|G!{VqlBIP~Y_gJZ6y zw~7zdDn7k8XNApmH+Ngnyxuuw=Y@+9SXiQkwjpxSbr;1+$m0NiFrAnf2#q-Yns_^#x^BdN#9`Nyx@JKHb`D;pnGZ zq!A+FX#DwIHOF-+MLws42RDh#2(~?ajHz{At9Fx={O_U-`==dxyyeD9rnR1tiVQ-s z3lrv;GC#ccR5$A6#f%i&jkb#mzg=ajJQg`oAUe8bvy!dq@XHu{qpZDf8hWnzqeXo`|*+gx6xcI)c@~NvgEt@yZ zF+68|c}w`Qma7_ld~f;Jcpqr>>hcMe7cDd6W8oE?x3jwZz1YIUhx;;8EZ;aUS+J|T zzSa0}9ly)Pin1@e!^CuF-99(-v5a;h-_Ktcv&>3l&pkMLbm|7+pMG&r z>eP(6v7cNTJVUST;Pk#Nk(Fxvj>~pelK969>2^;p2J1;KVrI!xY)A`R`aA0Ln(Uv2 z3nxF34O%Q5vbbHK=DfhyAj<KuLXcJAAq1?JB8=3ANH*j($K% zQec77y!;8yu9kDsKVACO-tvOw5hDlh`Ds_*yvU!n^V{c>wu$E@ZNJ?9&s*7hJiCWM zMqYi!m;BWWuEZp8J$p3OL(fCm)nesx;Tg|N;*GwWRbAcjATuT`{`RijqAP^di!PL%)iL9mzW>#fTNI(P^1GFZ|G5J3C^yc7C z6R{9#3R(43ao5IDYboKI(h`!IlbjVr?0*0LzMy2?`kB+;ze$~Pf%T=BZYU@8y_lJX*|Rv^U(~&E0C|+xMQGbLMoiYn%MA=v``|R57MogTjHGqr3OJWv<_Dyr}l8jfA;CFlN8(_EO{Cn9Y1ur^VjsL`mt@A7i4nH4ckwF2?8QJ;idT(E+6>=Y)f5kHD z&E4eIE9cgUKYh5N{?Dy6<~`du4ixSDzt8x{;_7ORm|&^J9|HIyJ9cevDw;cYayZYb zbD;-+#EG))y6AD|QaIbr{}1YJJ<&ckuj&}j{@-ukU$AbTez;AMYa{bMd9E$dQ}%Ib z3T>S8MSa?KKW;OoCLM!W9)9*s*H?U>ldxx@;rk5{{|+X_K5^ox4?o*$n|n|5oLVol z!<$-t)wvfITK%s{pEv1ly(rHl?IR2IBo+1N?e$_i&?@WP&wu@9azI4Lw&+4TM$SOJ zm_@aI`{$<|Ox!ML$Pv-X%`tOY){!ZzmnteUUyFX8=O4W7RcnQ+mD8W8wS5ERKsN z?%4M8_u|DeyXLp%rZoOq!6czIO=;blj9$?TpJG1eRr?*yUvemEfyh2?+a&WFY&&1} z&q$oOlX2^lxDP8dc5Zn8_RNm3^}(WFC3!Pv$2+~qyYSQQ+4~7r-F?-iVQv=#rsRA` zH2AD)qPSj@cl(kK^OHNmkN9l!eE3c^<*9^$*=gs=Gc=wtTJvl6eLBCp-oik(Or)<5)zso>r>-N)J0v#ReMFaQ+zkfIw+aZ1BPeA15-N(CgbADSWR|f5Q z_27j}@Xt-p?@8M)*l!k@RO(-l$9F^2=)J3yQR|D@cGDky|JygyVuH)olN`6LYqoCO z>*@dJaerNo`qUF|4?dh|DzGS!RhilCyD2X}|J*~{W_ap}J;~7CF8fXQ7q`ZH@9Xwv zZ8;lOPLc|LC-E}=?6S)ExXT}JDKRXx`?HiqyY6V@>pRm$rd+IOR6 z-`z#$j(W;id9TXY>1Lnx?CD|isrt1qPoGGAy5h;p$?BSUUpv}^b+$*>zq);>r_}XL z8po{4Es@thnYuIXxiH~)b?lBRtANS#3;$aj72h6yGFjobZAHx)F1gBsQ`64HJvztS zp*ACQ!};{~Yt{FPKP`3m_-*e@kLBUltNwM1e4p*gtlu_gn#iUFE4vts6c-&@+RrC{ ze#r+pw#}a_@AFPc-Y}utbl=8T9X*VE-*!4>txlQA^4ZDm$Ikj_J^gv7HeY`JNN)ST z*o6}UjU?Fm{m&n`lfJ^$=Vi&a?cM>BoXN%tcbVlT-i}~tKeR&5bX_6;q}>}9wM$nm znRs><^XgyX4@1+B_V3)HX5umV*5=v=3t6PptlXXNp3eXOE#Jf1Cf(Isv&A&FyVNPw zY_{%Hro1CTD|C7egq?LtJ|WsLk$dO0oII0YA>~8-)`dlnY}W2q(#moOKQVv1fzY)p?3d0d#K?Ivv5EO_YV-mvUlso$TTVq{yru2t;l%e|$W+O^*(f6J3>oipwA z?vDBLDjfg*yz!Y6@jT9aN|R#lEV=Nj?wRM-<=#EINo&K9ZDJk}(>VBrTRVSepTNjkC`bAP^Kx%PA2UI9baO%Ch^&DqR* zr79A|_AR)&cBi1{g*S6@^&ZK-x2V53M_}`n;{DAEOZ%Ke^y8&J*KpUFSJ;+{ER{TJ za`wQ*Ki|_fZi^|8|HQcSX7>}(_&mKQPk#zmT-DkW!Rs@lP4spUS9t5H#16yBKRT4A zS{7{E@#N269T!!P6NM2cEw3Kjb1KNt=*js7n;sg>aN01BH97wZ=e%v(6IdKSRt3u6 zo_mV_Vu{TJhPgb?eX6VSqNeQ%mDnl2X0O5bWo@ZppLc&c*1TWq_B)viyR@|~x9_Qc zAAA3O&b}&#vl+ZSQ6efuS~LAc)p!4uTzKu9td*oM{bvCer>*`bygZrkASH zA`Wk(gw@a3lpkHU;opUMN?RJAIjkyhp8NVo^BrXP;aBhEt56>}y?aH~Wu9q*T++z$Z?&NfQdvjc?|eoxHenw$jXE69eaE zQzljS7OZ(5*e@`l?OwEPb;pt`H@}}-mS<4>e_OzrUZIfQH?yPrto;>gk5_V?wW%m* z|Gd6P`Z%H5-xH$h8c_p6=m+rHO+{1f@<(;8VlmbV(d0ry|ud%B{}Vt@L%h#e8!3F-5c zm*0QjcsfoaHQqN;>Ha;wx^t_qe;3-e#QaIq*(0;d=T1J?vub1ekr(-T;oOZjS)Dl( zQVsU8biIFKw9h2t%gkF(w$^?=oPWaI-~N!P$toV9S(EQ-p$!mgP^>XEnNg z&kf05alXkkU9N*&`_E3_A8b-Fg)MWQwAt-sEp_kbcrjteTZi|@c-?L{e|cl}=I=5t%8ZydFK&s%>vMb7CiEYZjy>o9bdLQjvJTe@}iw2e)hbGohWPF`dhGGXsb z)9BAF-l3Lj+)J7-pUC^UX0|SC#9Yng{_|}nf0X6grEC^t)f~3X?6yo$L!fxO&GDS$ zdt9$|7YVe<#POsVxIX*Cy)e(zt5`g!(EtAVP~D$yU-jQOODX%zFLhQFdwy(+-cARl znfFzcFU@l)^wyKmKgg^6eG2oTvRp22gU`GI_371nvQ)O;H9ely5$@vsc*1$j!=7SU zMK=}PrhWOjWy%8yv8QJ)7;CyE{_1;ucIupY6SoWdi0%En(*N^4=5g$0vz?o?iCU)AHzep_2@J*B0zwxU*h9AS*w`p>Dd65&zmt z_e`H_3D|0EJj3zyps9`caY>ckYeTy{<2|xJdLQ|<>ykiwtN{B*iH(-eU(WmXP&MR) z-ixIr-&SvyI{bT8f+RcdD~&UgpTEABoL2OBwv?FFr)py-OuXVn#vQPEv=Lav_oWsi2INaNet!4z>R-P$ zH7lI&ns(=E*3^KkUpijjCQlU4ZVNGBK65ydQSR-moC5D)7Rw9svL)_ZD9pFjobV*` z*xhSWq7+$*1)nquHC1g zAayQm*@HVbp1q&`nmy=jWVN%l(mAp1!mEn)c3v$g`@8ha_9@qkR! zWtT>mldQjwbE9n< zGfo*t_(V>1+R#_m`1SeC0<{z3`#*gCH2wbn)hgRU-Xy3VWUZc3ey{R23qxS@=FP=B z{RBdr56?_0h`xVjUeWWoDa+Fw3*5>cIT2m|1x(p|* zl~{*MBxXeJ}6ZhBLFLM)ZhOoH)fQVbgZ|Np*O$!nQt*3Pqvjs=J#{yxu8O`9|*e z`!kO(IJxsCw}efa&UI-*&kM2r91H6vJ#spF!+^)>y;J&UZogKYlzB;Ar?-^--faHl z;IH%77*6*DP(w2MmrFMz_DONtD zw(g~qfk=AbobO4q?nk`(TQK$9DN$$n3cqD)Rn1BZRIkmPP$Ow=ym3P2-P=nxZTT9i zbSrPNZN_u`CszNe{?D41mEvI6Eq&(D<{m4_UHn%vc8VRV%Uyr4;GSqRcfYjphrSzM z6E;@+J0ATz`N+#t^SN{uGT+wTb58bF|2d)W(lTeaT%WbUi|@JO4{0m*sXy#e9cA0< zGk8`vu99imWhEkV{m_yT9J&hjqFCh1CsSQ>)F})@EhQ{w^jd zzps9AD(l1!ji)!?$a^W}9?}vwbm}tTQsHHF?AUl>X9e?iFw{__&v zGKF*lt28eLk4H7%XXhHdI=57WWA?&$MhlIfeZdkB-Y_j}IP=uYe8tOa_YRykcJ2vv z>=Vt>i&$YWLs4!G^J2+sC39Z9ZN8pl)1ELh;b)CtXO(Ve!+KSw3upTNr$ycPo=}?| zzVgfR-FE)cSF38+wbplCiZ6M+qQIRiCr&)>MW3{%!o_W8KH5r)jD?`V&RJraakL!EtnobKCPr6P^cN6q)v9YaP?U zXj zE0l*?%t%R!)hHsJs5n>|6UpX-}7}->%;j5R`g!>)%$T96sd> zy{?7pw;3;$+VtpLA|L37A1Cd-yiGx zzxOA1hi~0t%H6Os{N!ul!~;7e-`2L}{whh!>uh@x@Mu@6_B+MpFT2i8{8nOd%r@UF zeaD-NALZt4%vPQ!=$dO4xzjmuq*-mE!l zaPxw=$k}fibJud@3D0SX_+gw`E6@A(biKyEc1-L4t+ z_Hnd|KHPZk-n%P${C$l<3to1LsWWC*^WRgA=HP#nSzfg|;ms=7`z%jtf>#*+|Ni7! z-KUr>Zr`~-URr6z-u<;xgFhW_cet!M*K11=qmh+eY?kjz5{OQw6 z;mXRNwNu=m8H=+!@85MzE$ZO@wv74Pq}=Li%=X+!y?FcHukV{o^!Hx!i{@3YEGnsJ zxW8>}`gZA$dRAvIXuW+{wpMq?@{erG5?}4PWB)Vz)6ebyChghbW%%Krj`%yl_{94~ z7tgJZ@D*75snh6Uv5<%MCr&o*a#weUgvAkAE8i!dw$UoJQhA?yYq#gRrP=Ry6)QBJ zyLrKQRl)vm94oYnytd4|@^ZC!QRz{&M2?GY{QX`xmsdTFI{p7Xo4jjwHv{LTDsInt z9!J|^XNfL&*`RXO?PJ;9rT;q3+N!^nKQWbFzm(A+`p&Q0EmGFS3s&q8X>tx4+e_n3Mf}+BEqKYnw`PRquT?jM>n?;FH$0Y^gQ+&lYz6zx};J!GF<~#8kU& z5lh{r*!HdsK5>l6S>3AqSZF}=ri&j!wdI(&(moW{OSa5Dxyh|<^AwlDM{yHb9;GvcU;UtD{@EivQe>ek##^J+f*I9{~tuZHBL=>~3_Hm03oe=d4-Y1y(HmiG@%(DwE@ zyjoPMYGSbP9AS~u^A1~jag}Zly)jpH`bwWESmS;r(lYPeP+VT zJzH#h(?9j@5EoeMo$h8Vyk*w%`Mj#D?CQP<_A-6Ez;alUN7I6RVdER;j>BF4FJDL9 zS>euh_?i?$r=(N!5uGi%vz3mqpJezE{b^RO!up#xZdd=PyS;sXXIgpK8C9M%4h_SU zu*m|Vw$o;9)4ugD@AH1stEu~}HvD?|^80S@Ha;H)CH-yh1^xf6u79iDqT(y?@AUnj zcT=Y3O=3u!w^odual6CqUcO?dWm3=kk~?~TUhjS?)ZwBz?~qrWf!#EABk#6jPrKFk z@NX{Kx<`*iLZq@e;&s~gjo#7w>h&%-KD2i?*ZKdhWBr?3X7hMEx?ne)KO{%pFSY|Tyz||S$a=Cd`x*1QoXI*SOD)3-;;D4Q6lBu_o&_0U}7%sH>q*B`YO z-`UX?xya>8)`{xCr$^T1N=B{OdHrk8?6r)Q3pXu0vtOxzJu`RRq&+(g(hnWt+IIC> zwWdq?j%lx-%Rhe~cxByNQ|G5n`@SsIzwqK}UgOI-|2O~t|9|!|zo%CNZHqms*G<@- zEHN)*)z%^&s}e?$KQhKi4nf<+^pf|oToZSQT2dsmWmWS1eY{K^q1G-Pxp)T*2l$Ox?LjY&?frx`@egQoH62F&P_Ks zvsYe736z%>IF%*%zEQ^{;#SmjzEfr8t?z1VgGAYb>#`KK2t2tp!QF^Se8Hb{QR&vR zuV!C85F&o=^4|Ar-zrFV1_tx2UvFK=H&tF~_5_o3$>w?-wW6nR#wOsSE@|tS==jE@J3=U1Y(vlRs zLsgP1|L#uZ>2FJe1Wfd{s2yH+H_}+udnwnq%GArttMA{=?mE}yEn)mt@?omQjaN61 z-}73P<@Z14TlmS2ppHGy)6Hl53Z?k%Dhg3m*t3wUF8}Tcqq)ozmNH3xy?#Bj_R_4j zGbbe^Iie;fZDqNCcyHoe_2T@a+ndS@rMg9dZ|%S%UM|-72|uY45?)cP|_+eIY;B zMSRn}^bY1F`%KoY-~RGVOjJjadR&`K{EU6&TjOr*)O4KQ-R(W6K0N2&KR>}U%O>x= z+OucroLH4i+t6pFXU_YlugWb~n&~cdSu!G0ZL_53%kbObVo46l8ivms*S3g$y>-S~3_viY`IyT8QeQjZ3Ypw`x)>$1nsd=@iv*fJ~-`9*eX4WYIt!Fq_ zD%!tJYpC&kc9#96czt->;*Yl!8P0w(j$fbh`}CJxYoc~JxkSy{Zsu`oihZJ5`^}0O zJML?Hugq#KNSSg;N2lxh?fUn7zdyOQHhRmq%U|VetF-R_|M%Td$#IXxhLygITVi+o zDqQldr%}#B&q~C0+KKNg4izLmWb1hTn29ywE^Fr+_AUDvrc`{tH~Zy*JsxhITKzX) z{J!h`=%JG1s^k?1A2=B;Zl4&mT}f{7BHc%2)h1?Jmls>gbhK}KRh*=9SWvMqbxJgM z@_EfX_Gt^xZe_^XcUS(>YrbdRY+{SgG39moTX^w4ayZSp;EDt#GOV8`$w%MQ8+_`(;;-@`J zH%xJO=soXr*V@3#|MTu!PCI=%`wA0-rGC}By=TkQ+PWv?=DE&ZG^N^jsi>2tL5jo2 zjK9hjTB}RW$NKxZRR3)%&id{W^i-zUnCBSV@qJQ7FM7W(y7yD2D|o;E#Ma2J_4_M7 z&6^XuZ^Gr*@6|1?8@pJwh+a72zQ26KwhcEcKK?!Zv-WZC?oTg{pZ~o1XPvWJPwTHK z4pn=8_53+w9Y5**zkB;9eEz0fGyh(){?Z0q)D?$^V9Q`9>lC{QW z%bh9azdp~-x0|s2Ue$!vUUs#=BKCcK``(LBSJmCGmuE?a`ic5&DQ%a&{R-K0O1nK& ze6D;${pQ^@OkbL^--q%nwq#_IoPX`J{k^#QAFDq}^2vysZ_bx4pD_{aVfQ51903ED!Du7yErC-R^W&oaoe#{B<+-Ot_oJ;(BSe z#>TquYkICMpD^cHhWRlq{x3K7h?!mLT2;6!?331(!oE#)(b`5!KK?uy6`l4eTL1Ku zjqkTzfBB*H&sD)A`?)k63>XED%)DG>@`pn2E1*0y96<|^?=7Nk3=PSsex z_LSQM?!;SqbHr5}1!vuUk}Wdj_LRy6+k4;j-O@8FNxfK@->a#%+rC=QHGa#YyK5fa z$>Ir}dGv(nG(VeT??P|RdTM7AWXfl|tM|*nFaK`-nb4Klp`3h-$I^V2L8^${^V`#Z z)UJv6w{z1k;f!TQC5yjzg}&V!vEfJ5F14>`_|{kEr$!p;^S#y&lsqr_&H2k01Lv7M zxAKE@zC3xdwk2V%8uO8aPdPU@dn3E&r!BwMBPUTYb-^R0sDG;#YR~(xH_dbN7E4_Z zrYZHix3=jfRcD!1?UO3rH{$!Vw0n?ny&ta(-xQ#X{hPF&!C0G2=?&zL*_^bSx85hI1q!eG>(AOwkGw;{Bmu+2DS;h-8(&P8OZ4!%+XIK(( zUO`(^xuyC_zL-a>$<0I=?doY7OKrdYDBl?wI6=pK(+!udlqtK*-*;?I7w>MZ`Es#; z(;9)t8jLSJ6NA6LU|-!Wbk<`7OXw-~vn@`&)9j?xE`D!lJ$vHeMca!uuWpO44^?we zU4Qe(`kTKmr`_K4#)@Zl_WR3s{@uHt8Xh?_GBi@QL5Ry?qC#quLW5KE6yKn{6Cc@Ol`^)lE{>FTng#{6dT-)Dna9YB-;KGEY7T!Z5o)f1qOlp0#Y1Wxj&$e#gzx-yk z?t07PGm77G|7|?fYvpjQ`u)A)Z#U0IZI&!PW4JoeR#3{-V9)G6+m4Jk>D%Uic6{CT zW#alf90DI^NZe^u+vh%o}BqHJ!euUbp>=m3ZrN)X!{4T{lf! z&aUQ&U1E-g_}b2YnJ=G+J@jgO=FXy9Qdie0`Dx2zM)QRc%UX_XY%y+Zc_k2;Hre6a zj2jUejVae}aHq95mppNkK4jiJMPfI%^XjOlSyR5wTYb*)`4dm$9P6_8swQ9Na$IQ+ z$>^!G{UdPxjG*G_fR}5gNNl@zWzC{B%0C*DAFasDPc-4U=i1EWIrHD8?`IlyIGA|P zXs2^$y;Aydq54kr-b=i5Iz9(&DEjzDG_CK9)ld1Iy8es2eD4aJnlyuzVQqKP_r`;= zvJ+V|^M35CFYuqbp{uh~A))elGdss2o{AN!6KpGg{^0)f>SX^_g?>kekCUc+*wa?_ z|5d%T=)Ofg*<4r8$W+T8S6>(qaDD0t7TXu4pJp5}3E;lQ^1L(X$Tg-u-+fJCu2P4@ zR3=$hU*1qIe)_M%i#3c1?4RZZ2wivaJnEW%A~Dc2-}%_B;3I~=wzcW3oWXtK;NG{a zsuTY`n*U$)XYu@>LhK(a)S_$5eg3U^z944uqZow+)t$kN!IDZ7cp7}ycir62{ygl| z=HJYPdcmY^vF7bs?J{Lg(&tIn}HZomKO>aem?5zDQfKmPH< z<&d2ki|;knCAw!+G^aUab}*{msZNf1@^$SJ-o~WN=kCRE$3C9RWV~a^vS7aK-{rCO z1&eG?TnpCW%S>uK^GxCYl!Sv%1!@bFn_UmAxDmj(rFTX0TaD#a|L@iAEdS4VfBLG= z_S2uAKX+tq#pF{*%RM%1{W@dL|2zZrUzLh7lh3Tk6kC-dDZf&Bw!;+Gn$*v%la7Cy zHdR+c$fRSs@)rLv(JfP!wBCHpeeD%n@&*5+{&NKT*0n|{@B6;VX2<_YG4b=RCa+m? zwDX+^*BeB`<{Gv^17Ka@#t>50v=hVMJ^|!Qq4at`B4VW zx7Rg)m3scRSFg61njz(|cubtQ1V_ubT(p15u zNujrM?)#emOQY-}Z-iL#3#>VBm3+?`iEp8=%P6V2P_nD{;y%1)T&)A?bu`14Ee*F35E?UWa`x}fb``hE`(9h4z^P<@*`f}9k&7pna9F#xO?i6O++NZ8wCd)sescDeei9qEUuyQt zjy~7Nn`fSCnEyBFOQ-$C`|EOE9(r@k-0h=P-u2?fdu zenwq(PWXG?y>ivU*G%({SAN|bS^AIv$)`WAYp2im%JDG$a;r?Djj2Uz{?q^&Cu3)K z>4OWnOY;sanZP6Wp;$`giulVPGv7Ymyf!T7yQ}M5lj8FVLFZnn)&0HKf8FP|&$esf zd#6sw+j{F$P>o3bb!CH%Gm>NsInN(){_|t8O5vqI&C3oA9*Y&Q25na^{l7vrP`GS&u&g)&y=0t81F3J7Jjnk zR_vl!8L>ZQvaNx;#5hD=EX~$QU@}yEcq?n?A1B7+DF%%*Blm|lZ%XDdRqA^IGb@ zC+(YZHO%6iStJ8zOQZA59DikJJ)Uh#PKUfXGuferZ7+xBrKUrNiW&@7%m38r=rd5z zxO4gB`P0Xz37-@>pYwNKbO5jWbB*U$pT)@Suh9C<&h4ze_0H8r-6oOOmEx3|W1~6J z793!U&|F?uSG)OPDnr=uu$hxNy0@zB6SL~OU;1C}+Lc_t8pC9Uf9H0%Cw*H`F*9?O z^2DGw&iwbLU0pZ-MZ|+gsVi0d1&o!Jt>1fNW#ES{ zw*}b~6F;4p9H3ggGgmmJ+|SkS<4OO6g|7={R;}ru7jx?DSIhgepFa5@`g7&{zwxs& zE^JHtq*i(I#7@gQNwuHv)`Yk5PJQr3#&BZ6^AGzrb{>DU_r*S!y?*b{HO-7Gth}o9 z`fBgiL#jeN+_L@Ft$h==N#&L@1SrkE`s-G$@QodNc0Aa-VB=M*A3j@Iz9sIk);PrZ zdP0y*wfM)(?i=3s=D9@rNxN)0@}2E|V?e%;RJy&NzTU&k;5TJ{X98yQ?cd9`b4_WP z=$A%kIhG^3w%1b*Io8RY%8=W3)96)VwH!}&O6-OBe3>kMiOWx7zSLW5%wNgYyrke& z-iHR2jmKp6&2OBu_K4;D1o!my*G)H{IrZw7R+)+QqEjkWldpd4OO}55W^u;C^%sh? zEmk)kThr0OJ>y4A*{b(5H_1#;ynN#RMbkDNKW4SkrgghG_*%bjVBV<7ceiRvy8iVO z{+qV%P|vsdv&d%uuLH-JR;w`yh&}f)xx(4K_rnh5g%KQ=dSp&#Mb2A0UDcAM?!Gt6 zCW+T~TW39g;aq*Fa>E(tqIK4h?rf!R)}G4`IKIJ@CC&S)Ri}cY^vaxE8}88S-G9ry z9oR3_imbc2Y2`ti6Vq;Q+sC!E?C!~#pXYl|;dvw$Y`x_0ug}j{EpaKRSIH3zn(?b9 ze_d+*{{{1wm$9rBe4@VpeM~jy_gb^r-P|HKHz-|x>Y(1a&U*5ica{^U+~Iheb12S1 zDPe~H@t{@0#d|-iDY|ObJTo*6-lL;z=66F_{Q7DQL(Qv#kxD(c+$>WnpFVZpa52ky zweGKj{P(ujHfPSd`K@Vsu~2E?oxaSXWseeGe~t8BcVwrGgY@S9?C08nD>C=h|0r*} z`f}x+iP!HsF{G)-ubFx8ei%o1cH!-}w^)ix5|`xZshXuVPUPLlV?HZs|8}d7HJz;1 ze2+HYTR3U@(+zB5>+9bLi-y^m6`fBj)_uR{^I6Ytk-k-?70>mx=KOqAy=j%7m-y1m zbJ_o^?zt?w?hxC?zpY^kv{3|@bAfmgoK`GA`&^U_P# zvaWx8_Vk%|u$g6er{w!N)Aby}WX`$r|5^8=r&-T%@si7%XMH#)$jHr>?)7BW+uPyE zb5^h4)W|luMrfUQec1M6XN@!*b~d)n^k|-VP-M-D*FSSg)10Fg`06X1;$%r=3S9VE z_oVu>r#Gx4%^n^IZVC=PDCW#0^ey|ilxb7Zl@Eres!w0Mx>;bxp`Fh-7Bznt?wfu+ z-0jQe>a_cozpgVK?yKhA^>f}!X4M0`+L+S0`zE|(Yo7P}GP_V@rn9L*$Vt7QEso_g z&hdUK{`Ob*)AG(~u4*#Ns^;hCg&o`H-f%jv``pPc%L%;P)y6DajeZ(Ah+J@N+H_T5 z*~;QeA35$d2yyGaF%4;G3HZ2`Pxa)@PXdf5cFbgn-{8(?;hONG+}d)Jl7?|vZOW^| z5m^i$4*am*HuY7tNTX~UZ~wt+rlhVNB838`#uHTCW7OwwuMH@iNv^n6TuY@w^9(=z3hO7X^xOLLdmd|S2sc*E0N?sJLvogOFf@lM;XSaRxdo$4upz zyle8c9_QZ`$2b1uZN4Oa_T;DZbL<|9uP-R*KFkRFy*u@;@$cA$5BQAc=ElUI%R6&n zGaP8B1g(#wa!zwT=?on(A1_IOaBfZkc5&HrN@ z1X_Fy(;{Ac@tkTZYX0Ny{C)fX<@3A@JQ-OM{iIESr73Wkq2@KW6>40vuDe$q+?4-T z{rrhX8c(~cpEs_#5GceazQChRYw5Omw>w_w%ARw1v#jF4Wy2WIOxyD}Ua!~Wd2-ELOBI`X zZ!S^LDcSWI7{YEs5$^&#ilA)(D{vnIRVn`HfES1^ae zb=iMWu^Ri?o*GZe-IBL9u(soMLSZB4t8+6pB#ErwZf5zR%x&(GrM^=Y%1iR&*R7i; zv1R?|Rp-~UryP|#8??+!h>`mlyB6P}8u{#-XlgS9&a9cJ82eXw_w?(BKhxR2pEdaX zr{&Ro&6arY#A$Ct_wcp2Fiy#No@jgV%!0kwGEY@lXQZEY2tDw>sac;n;_;dro!3ib z?aY>Las2(S)@ZiJ?NfJ;%zXas?!?Gkk1NR!goM^*C~p4s=tb=vjuRp0?mf|Ul=rd zcKV;aN4_#$`!ey|C56c3_2=^zd)(V)8p^t)@{NZT>w4DrTX`liFYLLpbEjZ>$@yQ& zg%;tPwX-+toVjN4+2N<^=ck>ihc@qu-&%V4G|N4<_BSTV9ZMCa#AVOA_kPjiCHg4= zp+~MHJiB}Nx{gNfO&L>JmTZ|=z8A9X4SgNk8%s}e?s;Qx@`^SK$%i?h%E(n?tnGGp%aV}~yYHT$+-IXA74XWzuz?0f1BM6aB249MCp zvUk?&GXk!?B6DAS7nt$$Mx6U*o$v^Q2aj#jFKpeuJ^k(M&2laGzWzGa(j>AlSZTqu zo`j}7!Y(Se1X+!P%f82NI=Ny->BGAmJX^kc=B&4PB=z`I=<3CGoByBRQTyxuDcQ=q znk)C0CsJiB@P+NRL%BfEuW+nZGjxozch?(UfU;L;Nro8MP>7ymst_xg{C3(dtW6W%&4 zzS`M8?JJL98+)Lw&}1v8u>~|=w{tA*#mCZl5_Q4>&#wMh@q4O${9H@Ug?h6N7w1QIr?(aa zbvf}oJ*E=p&7u@1=D^N)>sOWEGMTj|rt6Pw-d<*2R`lb*Y!{2r+mF^%w|LKbJ6CSc zFI#`;R=+y{Pv@P=1<;nDL_Xmgd%Gii;v=aJ=X!77l6O ze>bMJ@u1#<3%rsqPOSNTqKjGN%!y+yk~`$(kMX9cUj84pDB;o1DPiBgb2hHJJ9q89 zSqn0sWVA}N#qG@9b!k)kl&G*C+kH!xZNGlBAg`0}j9Oh~_pE8$*Gw6tI4^UyP0*S4 zJ#cY(|6G}(V}IxCez%x>yLU6YlZlO0rcR>Wfs&9F(yLcokGj9T!a_apnZUjIk2;R~ zT)4L*<+uF02U#qhz@qNO< z)sxSLg);dU#=jKt+1(J!)yj6YCt>;ywe|vwZQ>>kSFKh|)R-MCP+o7gswyY@c+*?f zcd1_*e_Or1U><*9`HQkug7cfZA22SP>uh?jYgz6#(`xy1zE#ps^`ckoXq(q(d#!81 z8S_ooXUoV>F8>;M>eu97cfH;n7SPGew%@wcWK>lePWrV)_?4ErxMVM=`ALo^I zTQ;4r__5-CT0M{G%59lDi#c4+RN1$`ow=5CuXys_y6dOJ`7}?dCHFQuf7~Pdu2wv4 z&xG$r5dv9F;bH5FZcjEmxqe;s?9+z7c6o0+K6_hhv3!S#m!SB2#}Cs!?78YU>q3;X z#H95iMN@PHlOhkiD=GbP`|8X>lPzC^1I3lIreD-uT=8<1u?SDcO1>RN@47oY%@5DX zTdSQ>pMSqEdz-;zle0pz=U@KfUwi)9vk2vNB0q4fDTx=iTC{zU{Q8 zFG)9S`BnaJR!cJ8@SF>c*ms1@ZLJ=E&ko%W4!dL1nl|0AX8gU|ZPTjdy`Rt7gx?hj zS6WjztIhGbZl{9nO1WP?rcc7HbW#|1TzR$S&0hWDn=$sH9ZL*mJgU7u@43l+(+FR6 zA*s*P9~lWI+?>qRWfU)WW6saQ)m8V33pvy0AL@`c)qTkEUYBRp*DL+gKgM)_ol^ar zg=tNqg>mw}JCy1?lpPYb8p*YLyw%T$vWJ@6JA7+p=IX8~d(l zQ#kj>?o~LnS)eCJuCb$&d%sB^qrXpHsR7#>o1czJ{p>p>yYDW}`s2>MW|5ES&i|XE z76qEFE-cp5TfCOV$X0#o=eMGhwr#C%+<5m?;HsO?%Nh<}`#k5p-KI-%hO7?Pj?X>P zq^`DZa^k7_(q5j@xp(wMr<^1q}moKdS zDC^puG`Cy$yV-2Rs3l*|A1zw1s^%5+q))dm;pN9)eV5%=u1uV>YL>(q?Mutf*?#|O zt#|g{tKVN{v~TtKkn%V0_WH~n>g6v=mkTs(Y)DYz{B`NogTU!R5==r2rpgglT<`2o z3VY5S!Sbf^yqwU2awU(fHzge`91a|OB~@1p3fgwN&of%Nv-HFX-yh0v1=Zf_IJ^4B z1e$!2JMA*-npvTn+Qgf}Yxln{ec}CliNW^M!Kb5j7GFNuwC?qMiO%w0FMoaIm%Gzn zyyUsK`kMm^%_fmt`t2$^lGqA0fB#;8;`aJF$$-_GTzuOm_DD?O%oa~qGhX~6By!_F zpX|euF1E8957ecHiq5Zp=%saTk==?iTa=^L*ybHF^JjCY`(8 zqQjFs^|j?~=K~vat>*jc%4Ag7+?VRSBr-+5;u=>xzf{l4hT#4M=R4hN9e#yO*3qz5 z)KJ;3T=~uPtH(*E$&0=hac4%%4hdWLWd7gP^(yDr-xGXaQ6R#e)%N*YjI7@>v)Wm~ zh8yF~zB?Bb^H$*C<4M1`e(8U!u717p@CB9#uNQBHuLhY~sun#nIa$)$RWWx-#lDaa zn7_q*yt{U;P4(8-v-@sXp4-DSQNrL#wW-n#)#zb{y9ZI?7_h4=A))zNx=H-1`u+Qho#%<{a@&@Uy+CU?nKp1AuWe@FT) zr`;yK!c$5@cJRDrSvt4xsp92}1wwhB4y;@#?0P-Ky;mU7Xle3#_BE@Wg7nO6zOS0R zw$d-Sv)JJKM1~&AgZn-wZ=T7wgUO0vq46|Z$pth1p8m6)y=G7TsvlXe?I)fOsS;j) zYfYWP`FVfKb49k@JGrMO_}zuqeiIp?1Z%HhO7ST^}$#$s;G2h|W zvYAo5b3)4Bb=B(CMWs7enQqa3)A(qo$~(zB>Diy1j=XI-<=VP5RQUgeEkE`3>{+A$|pp>=1A)tfU1txMXDMLj

            GaKe?`eOQLgHlw7&utM;rny0%JaWp1$9`hC|Nw|~8Ju#bJE2;-%M z2`hw-<+!X-u;BSPtLL@hR0qvRDZ%p7rp&Px-dYo1zX#50X{ddk^WDNMIg;R<=&-M7H(2|%b zVkcf09^cB+xZ_E|znOiyzNaL9EGX_O$$EKBt^b>8#>JbeeqG%T+ z9FJH9th!SB{l&vt0YO%lL(Bc=&vt7lHuPG<`&_xujPZNG1QF8)bs@v~@|~+Yvwj|n z>VN!1r1Zqf+tGdsXz$CH`4^ z(D_%zwPQhjEr}-0rWt3e%Pvgf?QQyfa1Nh^j~Bn zuIuNwIc<3szM)H8OnaLQ78^)&zbze5)YOGZSi-_d&g6>lrkn4iR+^Vz?kM7_yud-e-o zi4wcyWgN-rn@*mZ@NWCIC%>c`Uew%M^ueTaN^I=vZ9=>&XE3jn%-Lqlw7BWcMa6LL zyeY-O`-}H&Ue5d=$A0C5NsDcw%EP{7-LNxPN|=9RTH1<9>vGR6+fciC#n$W7U)8Ss z9>u!l%Xg=R)BJccH%5MU^_H45cY@L<6`{EMx8Fam%dlLe&bj4|N8!&%HpTAd>#tMq zI;=l%+mE%F^+8#Jw7?!EjY2n$b#kjZtx|l}7l-W+w`6a7!1;9cSw>}xFB2{?)v`@1 z2wUa2VcOlF%0HLR|DXM-cYSU6zONVMPo(YOQ0L$~b)Z6Iu0rRw6IaYWZ*959xpvWC z{pPsRDOud}ZR_>;<(baz+p*_>Zb(R9Dx0X@v1} z#n)q2oN#mHS-)=X8H>de#Fq9{{t3Iqe2Y`^39EGq+wbo$CWo^Y^X+=#wRYNtIVWVR z?&=C99O+!_(mU_(S2dO?2YasTygm83UOheh{mu7Nj)Xh895O$}&|z^{^Y)KxXQjCN z+U_cS-(--?ll6Jd-tGH7WUpL!?M?P8{qWWNPhS4K{_1!BjtS9aJ&cA55(hlbTwpW5 zZ#uW}Rqh)7tC5csCf=Pf`SLb#UBj9;FN8nI|NB(0vj4-+__fP2@~$knQt9rHU&SH* z{CQDjWv`C!9^RFU9luA-*YBLzwzl(P#x>K7hK-g}&z_AuJxwLBh4s74vgK*JPRq`G zFVFpj{n@d~8Shs(-83|tvf$Xttdh@1oqzKwPyX5-wwP^Zkg@E9gI5lgnC0qmy4~nX z5P5m+l!2L0<&I~cSLJUkv$S}u?_YiJ zRKZBolqKr1_`TgT)3~(mCAr;U-p)FQXRhGgB^JtedKdcbHRjkV_dD%(U2OexA>(_d z5*oqZwjSO+S2F5y|Ms7p&b%9{R>!|e4`01--Fahf54ZCttTaxuN>072s3Cb!P||$y z@e@(s=gq#FEUmlty4{sx>6|5BmbB?5Yp33L zwqoJZ0G_8BZ6O;{LKqyg7wj?KFTdox(wvhAvsqo<-&OX`w0))A{H^b|?Bc^;XRgQ) z>wB(ZU8?u$&+~1^HZ0iiU7+dv#_K$jgDyQvEzR4_{o3o~lvX|ANimwilJ8P}d*|4e zIax{CMgJVr$A=!iqAi3fAWvDhA3fS@->1)5^6u*H`6qN!4*y z)EGUMl07j{6@n)!9=>b;~~C zRT)jji;JyWWYlguFMNGKPj+jll!R8*j1PCCs;10)s&F8}L0q`j`DD2k!wzHBhPiXY z@2v`ZYX7pT{9KHQ-G`Q~rQd`(qw+Tyy2oA%-ccHL+fOj5-Q;=f+WPmW|NcH6QyN>k zO8?2v?&T$3zaGwuG~QRX&%$7b-|tIjSC-0h*7Nx?F3gaYe7<1AqN|Had)B1g_lnTD z^5D6f*ffi>?{Sm#|NJ+ACG@Z`dZi9<{BpbH;yOi;(M86M-mR3Ygo&a zOw<;Mxgah7Naj-1tqtN;X?1IEPHdecv&nbO%|PjxxlhaHvSj7%%3N(It*@BtEy363 zP<=dGY>{)_m4mC#tW1-8U{m_}L{+gVuf9fa*vjN$xnQrT z2#PA(~l>hgJg>}-b9 zyimzEW_Q#Uvm~wP6#TeFtXkprub%DFQ&;X~s!D9!a_@4mMM>?qR}-8IxHP!ELNi=L zbQ@oBK7DXc`m1|q%Q?P3(zh3x+f1{5zL0Is_mqwQFPL!bx_ehDV{g*)wVPQ##0c{2 z44SK$`#0jdzy9^DI%f0lufG4<(aE(#i_0*2Pt5zL#_MJ-6`6Lbi#;`Uikm@<#Knsf z`27|hzLB43&}MWf=4t8V#ZIns)RTjbUHiFF*}mdah}``8&1wIyyRo=!aGoe5ee{mM z5HGj%5!Ssm%UY*7R0T`KF!y@o{%fgSrZF-9^qFfDFXt@Y`P?)!aFW5ZS2@1x4=2k%Gq?zT5W6YqSMi%2|)ZT2%46`5r&OvUJ-=9h(&& zF3tb<=HA|9OADKA2ZG;!|9ts!)T6@;3+`RZaG$iWUwnS&VzXxtW{NaLH>4*|*snSF z+JTJ1lsjuL?lO+D{!~-;sl4rB-U-J0YlRxpw>)aA&&w$&j!{0U!u7y*_J?B}H;+d? zVqKp8Vam6@>DSnnwUw3c+@P~%gKA!=xQvU+oB-8F&V>n6u0PqTI{R|&v7q}icNw(p z^Ssb{z_Tdi?B=)vZ-c)-j*1oa^l!Z$_V1_sU*Vt6|KELo+O7KZ>+*Xm=1bV#R-W>5 zDW{a2x^uoVx6G903z&OpkJYxyD!t_L)?ad) zi&KB93-t!@$>>Ixw6H(rJ}aSj)SGvYLt{{a(F(a&9bbQ@r|GqFO<+?_lUnXN=XH+d zdOy}jI-SN^pQfG45%Ia0?93}*V7e|pxvNeudCnSRh34Q(;*;KoopBOoR!;et;dXP9 zM90Grxi2p_PT4-G=5xQBKYg~zhP!-M z_!Yi4T3Vmm@pxbG1kdZCFJAJ0oNIW~xI$W5?UUu4{ZzRb+6UzT}b!6gw!ceTh{ zO*0fFmb~a)#ZhKBl2}cc!y{j}za}%Wk=U$As=~?;MXh!&eVZ2$np_nap%A zB4K0srxObfElkroxl3@`vlSwJp{ZIa{3||+U*DDP8#GD!lUu<>soho=dp8~9UN$k; zjJbF7;n-N8C&FnC7jCEXUgzO;H9jSBDqZa?kNJ*cCs#V3DZ29F+UNV0e|AU~Z85i0 zjyQ6f=k(m^I^J8veB>pZwpp$dp-+8}6E^Zpl&E)SdN4PjZ7|_Qf}5O~#vE1^#!ouXndQ zQ1qYo^{N9W()RL8Ptnd3wA%V~lhsGYRjqP4JB$zZO0IopA3sOp%8IA_lP_I$I5FkK zy0^8b_lCc&?pu?azw`Gj8Tr3Ew$AOnd9pU*w5jpNd7o0|^uGS}KKt6D+KAvyfd^jC zmQvw8|I+5+gRe4|K6Nb75&CW;q_i_&>aTC#>>?*_aE@HNez9D2z{I}0e}#8i{bpqH zRN{(UuuFSajurzJ%yN+|h>Kt7Y znS9qAy>`EMYsspM^R8##inTLHIeDUD+kba9UMrcEi;{mH^O(pHA;9o@*1-!alKi5+ zzdv{Hc=oiqi0^vB4!l<7eLimkES0yoiCQ}BR;s$xDNqs-Y~^Rwf4Q!7SGacKnpbjF zr>~uU_N$h&X??}FbCaIz;N2nHRcUXgnc1=r;*~UHBME;p5 zhrMk(w}WTdGD}7Or1$C{w79%w+6<}~UQIN9_2EXe?rV33zISrUqSrsYy!Y;SO781# zU30B3n>|`s8@A^N_w3@D5(W0(+>4C4Ev>Cr|KF?7pPHB2E^*N2sU_zvrHMNluW)5P zsrsKabNzPB88cKFw*=)dTv}w8o?E_l+3)u`+n39qlC8L_$l|cMG(}|F!L9EtnJ>My zS`{MtCHgl{{`Jdcp@u)g^Gt;ANd$g3y0Ln@gVXW3_w4^I*|Vc&yVAAiLIJzod z*-CC^F%rG?Cgxe$p0}?qRo!V^Z#qff*aSZ>K^tB1t>u?QyZGm(YMtUWVB7ukEpNZG z``w+VWEEcNG;o|=yG`p_;ZbWYkAK2!u8)>TZ@DRY-zLpL=8%j;#MzYU;)RyWR3_`V zie(;l*kZPJvY@t2zSZAD*WB{H96BM#=vtd!su#WR<41-?@wdPCg=>GjrQc&3z$VPN zn(h6USGA`*rk+WDK5?Npzuv^}U;5A3y*_r&de!q%PQj@LJTsqfXZV%i=+^rE@-e+~ zL#C>Cmhbl&I3J#N>9@OPSm=}x&5*b6zg4RicZR9B&Nlh8x-Z)-yy%W#<1ESc7b(^I zIoW0|oOLqp|EijYXZI`o|MbiHt8w$e54G+0UTpQ7x}|DooPG(zu9i>7KNhYn*EcN4 z+{avbkN^JfbrV-^S-0*_XGqxDjaTl=hb&+Bx?;mSHixyzyb5`zcx9pw-g?jd%ep;QnxZ$YeH_w>dYowNVE zRywiLq2X24Hog9&^9*YzMIKOG7@hdM|K5+if3IgL#CoTjr$6fIad^`p7x^qhcjqBZPr5$$h|Bj7PEy#ec;lzJ`1@PC7(FliRFE=x zx8byE@I8grS`E&wu3hVIxp@3B3`$Y=ZobqS(>T*l>26%-olWe@r~Fp-&OfHh^#9Pi z^|#q}PhV%lDHoicy!(0Bvm!>*sma$(vlv&-l{&H^>?d=jnce1MpDDkO{(Aq&nn7hl ziI(1mr;Gygi^+>g(vBy%Xj1==`@2_suBeWEw!|jd z&DO)`{JDL7v-aq8`0y6=Deq=b3os6w;OyzZ=CEp3_F>>Y{dzCsZMT2wZ zjh-2Xd^7rjs;eX0<%@a`gsyJL^{$%dwJmzB{i^354=u`Cn=C$Qho9fKr)SOYP1%00 z$~CU;=hasWrWMs}@;{>DDO?z&zCHh3@|_swgCG8AYzoPr{hHN&bZamTB z&Hb=Ls&&@SXJ2RDU4G~d^Ze$()b&d&UV7DUxlx(H=5xE5@N2(SqolE16A3wWreVBZb@8+dC zn@jW4|EJ#8*E+Yvaq*;wGK~Va`1ejfJ=fiB-tK)R@fTg0tfJpV2`ufnnpK*+s!ZQ6 zyr{G?j(LZ)cJzrfCzjL`>lvGc65X{se|*q9H9LEy2WuPKdy@~-9;JN!eQn~Sn-*%( zw^pPDU$}k2O~B~-x8rYlPob%Bg!S5uOu#JO7Gmpe^SM?~*HA%vRZRg}OG} zvYT;p*A}7KwPMw0kIY!6(PnGH^XioJ1f|#Mbs`LZHtc9#{BRCyCs8y-5D~o0)zM%ejre zHe8q^^88G}#1+e5m%2RBmIzXOAh*P4%@wm(XEq%(S+G zOe}IvR<}g$Gi{%_ChctS_2(yC7QJ}8wti;g@r;|3tS`naGyR-0VcE);bN8f8cyqS< z{f*McF&8(Llz!9IJm?U2^4+_6f3Aqvd)fWI*?)Su-PdV*{{6}>Dyq@Y-}}Ym+2@^a z-oO2|c2oK^O}-~=2RUaJT##XZ{e1(2*Vi*^uYQs}t6}ul^Y&}KOOsE?EMK={y1mZt z?Bib;-7oLb@|bk!vy<%XjouQX|NmWUeR$lz(Is(1x8Jqfew!8?*?PHcJID2{->=QS zTD(y>t+=l4tfJD2mwWEb+3Pbo@2>UCH;dmqGOxR@^dPIZ;NSdp*}79R9VS)ky_lwH z(d_T?8bZf^DMuYh|fRL?ogS)5P0M?V+=3o8tt9C zc1$YY|9@f4>(}*4@--hC=h&?;-|KWv_3DAV+C1fH!n@hG9BH;*ro4Wu&BiTJ+ch=v zWZUw;Z(6&DG0A+|-Ni>%_|*k_OG;D(3!b~nocg%yQ(0Nrw6I%8(#>P4t)|_)$fT~+ z|MADih>MOF*6xw^I#Z{SXv*uCrgLe+Y~62j*&Z2dc;E70Kff^YQT0L9BB!F6EJgP& zu^&|S?FzY7ZX#yCBWT0bfKXp%L0{KdNln^;3$l)ze2}qK_|$M&fN5Ln?cb;RnHuDG zi7zZ@ugrZMdVF4_amvCob287x{eRUX!x1!La<0a)Adc0>!5jWs=k2I44`co;a&A%D z*+a&OX^!hlx+X4F5)pH(TA9^H!G4u8DWK`(OS*AcHl6 zg4Mn6?(JqX3`m=CLLR{b>b#3cS>!kbO33@x1MkG(y4?7?!A#wp$D6@E6Non}{z zyt-E})9`(^_npszrH?;|r_RdXzV8|rXTRpA)c@AkjIYg1n|J^3Kkn22&Kh2?=Vw;u z@#=bg)XJSf+AU4A!ap<@|EbdfoorywYZ& zXo~Q5$KLzbC-i4edvw>lz=o?^exA(){k>7At>XU}{#;!DbN!RK?_*Av@B6y;)tuFj zr!@b%lXdszs~6T+?H9*xTB3bB+tc9rA*(j8$NE0aIumY1?R2fb_w&TdLgB3i^XnIV zuPJ}N;okeDZ%^L%evS13``e|8n!R6oOnKHerUZX8+Y-KE?y^#Yo$U)57u3&9T-W$% z@iw2nJta@pPHzl4y6fp2X3dsYf9;GL#5?bIPi|#Dtq(t;V5k;x2k_FVfyvh^}{A zJDY3v_t>O1g>5UgmZrYRTX0cs=5m8cZhN`Ey8nrjZIWV@PtMNn&$awfk$-Og52xjF z`?=T>?TZDEndmwtl=1lGte$UgVY6x9z3$c8Ra#pXt4e*Y?ENscV#O09)d`JDj1z;S z)lB?)(i2O37EU(utDCoGt7hQ(+R}ep^6vP3li#cRdUbzF@kgHv>3j97kIPTL9yjlF zc->F^6XN?mO#XCq{+~Iqzh1ta3A#~v0R#8kRm+82mKyFeWw(i#BRFUF=Isr+PWxIM z4~0I|{W|NJXi(Tid1+&B>zea6@9rHgML=CGd4CoZ)( zR#sO-wMkg-;?|y5;i8`TxED*SUW9*B)h6;lA(h+xL=*#rN({KfL$+$*c;s z*AEw|nMN01^YXatu=;wWa`SC7p%(5}PmeaMs!pxCK3RxqZE8V^Lx<_stLvDzHSb$d z9en#uh~cFsztU$eg^xsEm#1x(w8~yBsvsBrUa#;_;v>0F4Na;NS?vzKYd2RfPkHv> z<&DkJQ2};&v*-HpED9>R+jwZwov!Lzo;PDYw;f5--l-KR^o{j|+AhXx+n#Ux`rGz_ zZw|Mc(uvOYia+*F40SK!zV!b3!1L&eRZ{DeV?HbFtMxO)*Vek;-uR~YT!`MKswW@g zR0WRNd}3_ICU9;;IpgSA&_RpNom8v%x>pM{)7>8P``yXWLnC`TXP4`M*p4{E7eP`SX&0eOzB( z-2mO¼qEEQ4Wsm-$KH%LuW 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
            1RXUvRlDNFB8onTP0c;m_{|EfJg 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

            }mdr;q>Of8S{jNVl4ENznokqTI%=1 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

            oVjTsf&f?Rjtpm&}^xQ}S`|FTZx?JW&13 z$@j^rH-;-xxU5G~BzATCR#-ZfQd&Q&u(9tztT~l8#<<35zlCY9@#!bDY zIoa`*JF48I|8@nQ_tA>IQa#ye8FQ^c>VEd4@g)atZjNYNST*%|z^roT<{$Xq)-sTr>N&cL6`Izww-1QhL>=i5iP=K8(nYqpj=r}M$E^j6uICG3|MJleWF zd_|>;_NJ#k@;M4zy;4?Ze!KF0@=&+ezLCKm`1c=o|Fy(&hEUlpw?g|0Sk^TgJzTxv zU}NdVg`9#Md+)Oc{_=5Wlw5shV#@2Bo+WSYR|Vc(vVNwaR}fqB>(d)6=jO_8zx8V# zXBu1Jz0526%T*R=9#lNIUg?LpgMjVImlIsll$kWIib%gcq_|5=hcD&RBD;9It1GJK z-Uw7W@;c_?y}3$LUhrHm@o>Bbu7#W_t>bN*3{g*Z`=0ckAB^a&X4zW@2`6#d!T9ebn~+E>e&A^ zYjt)A)bw~dzV-{wcJ0d6jJP#T>Os}yXBWj6$uvuN*Zhf+WPAKqCGBy6X38RolEz0f zD!+@IxII(zw*!~Scb_S&t_K8FgZ9|%4%qTMpf`m-!Z+b;;~SM^Hm!>7o?ADZW6?O} zarkGE;Ndw>*TipGUL#+(q-VjV*3()WLb9tPLLOBoe7n{hU%$UafRRlsb#1`2q%9ZK zX7fcmbY%sl&6p|0_U=U1A;BpHN=-988)nbh*I2fNg+t75qXXx!SJvG#CY<~1>Ub?- zO|e}>rUKJlZ>_W9J%Q)8i_P?yqSv|ARl1nfT~uXTz*cvLwL;8+7mZ&fB-p$pO?bk+bqa(voST;<*(mGy^HfDyxo7_eJ+!0Xnydm)Yn_m zQM-42n6T%&C|8HquWUiZVK`f$nF?Xk(#t-hQUFW1b zmgz=J4|(c$>;J9$``lms{JB(rAIsDKzm9JG`}zJqby1cbt3Q5@Y5vb%dgErs(g%~7 zo7xvKY~|#4U;86WBxu{zgFkQOXg_c5deS2=a%9S-XNTVZ{CYb3g|w~Ryf^*-ANard z_c7_Y)R+2SZ_BUbZ^&xD)ZD^b$@gPsPve}O`6rtcGPe0dh5L6_U%GPd%+Xlm?|XCq zPAR+h;#ySX++C&)oqyRHm#eeidFI$_*I=alSm3wW`Ka6M*Yc7pG`5H(HM0nAI_F`Z zeNO84#PrO-`xU~>N34JCuxGbznpmdO(Cn(TV4vJy>(`QoRnJxRRb5x_-ON;xwl#5i zSf+~Nf!*8mnABNTwD2FSbxWI;WB%rJQt#QvCub~i>3Ki>=LyUCZmbuKk4|u3=h}2+ zam`_FYmuY399Qqf&F)bdiNTTkgHK@h{t9c_a5L z@7_DYXY_k+oY)+`&z*n>>U$1J{cL7 zGgMgg#;=vgX8pA)-}?Fc@a<1^Yg9LU3<_#k&n$WUp0Q!N4tvM7J0`!Xf9=+uoGh{P z$X3_e`&hLO`K`Uw@#90){5bivC$`mVr*rc;s;Q}6T6Mw0+Op`WG-}Z?^amI`7=i=VFtSC1%h3Pb-~Le zI~Un)()n)oF8|fe&nKF<1mv6+so;yV-#uHSNJzDR-qG@p`wQ1H9G>c1ZNBDu+05AB z2co$zyiz~Txqt2b*Xq^tSGL(*)#1$AwYT^3$BtRiR-8rWn#Dr-Z+x}LkkKePnxL@h zGE4CVy)}$S7t8p4HFiI+;lljxZTA0q;=aeNH-EQ2ci)_gNxbaJM(>U1{&dW!e6%pe zYk60q-t!gz*JWpyr#^l-%Q2<){v2m*2OWkVIe&5(Tu!zo1iasI`SZLrFU47oMt2zV zuWD@nV-S(jweo>?JL7_$>l1cPt}6V?k?N>s#Xjlz#C&h|hPzK#f+AA1l~g=!oh438 zXL@_$h1)9it=me}o~s|JlVExD^P2nAn*rg?H?OBG+f^8sF`?K(U`6rq+s!*vH~UVB zzrFIW+=bY*GaIdA8MZvIxjgZdcfiV}advNK3b0MpWBL(V?8H^M>a}F)ijIp;4*ln+ z&-HAseI_|un_FG{%q-W}3I~j9+Nvaf|9U+C&&v55*4I7d{`OSAekB{5`L!%Z?zxp# z+6OfZy59r^+M0ziuITn=E}UU@Qul#o7U%Kv6BLhxB}H0Xk@(nktvF@lB$+Fo#Uhc3 z8@-mSyVuyx$S80}Gu{1(fZ5&&cG4oTFV<}6>3lTD`s$kXOo6+CuQchg9?#)ko?vLC z&lj;~=h}@LtsM@VEpO`XcKU7OC&Jdup&|0smGP~J;$7y~MW>g=#!pP*^kh)0 zYkK1sk6TsOcLgQL-#_RlzsXbRQS&>Ol*1qYp5l;t-rh8WowZ|iYjadd*w$-vG*koU z<}xJc{L#Wm%cbJQF26t(gwY0m}6Pem16@0yvh|C8#k`OEY4Kg<QHjc zx~3)lY|^4F3!mg3+axO-;Sta(^6L^a151`TTg$w+@)5JWJ8YR2GroGLANn z^&>EH&-AXDtf6{QGaT>i=$zff8)5(Z;%ezV&mZ2M{P*Ge|IyV}=R|wr-(L2=*YNd; z8Nbx(o$sESL~mJIT7Qz+Z4Ea=MhGUm0bIwYv5>%EoHJRu`|!e`>$ zZ35kQ855q|viS7otBb&jFK!Ll8oWDnF8wtZK;OJr#YYZvj3^uw)oAV^Jhc9N!cCf+T69M z_+O6V56K1BFFDM)QX{bLqe+Fe)2(G{i&hoic9eMEGU=N7wELA!$*~JA?GM>KYqhQX z>wh*ezGYT&7SnI!&(Xg1mU%z_-QF8P290MG8&A62XZ@G=XtT)&R<+z|y}{v39B<{m z{^qN2ym7H~Rn3(<$9vZ4czG>Jka8-yP}`iaA(i`WV_e%3otk9!_%GNnJ>@64X*tu-REd%is+dm1CSq%HP#9bAh z;?5aXt@d(a`;R5F78^<(oEZ0PyXCd_dv^UZl3?QZ|Hl&lDDid3%cm|?%D39~E*30H zloW5gz59W0?RkN%m)wpsmTZ>2D`W8^XmMU-=2WE$hj~|m#eCS)ZtG0=dSX?R;e-j1 zsn2}<3g>RW%Dlq0efj@0#{0QSW?oFbkm^|Jcjni$Z7aSRT=9KzYOc_n*i%bVWmOjJ zS;>=_aK17?ey&_(#ROH(gsBUb@$Zq_`^iAvRis|F#<{`1S~tf2!t3{Xr#SSIxw{Vi z%xRp=nd-MoZ=P?mPWr*9f?2a(A?J?gSub1YEf;cdk36ai(s1m{L=L zRo}m^oUjWvJL^}jH;^>;{dX=hJB7v9>=u)n)GVnl;=g~!|8V_%a{iwn-e2{5&dSdH zk)t1X?`HQb%{{w!=QSTta6Op4nl&xg!br++-HqE5Q-v8ebMiPzFIeJxOjothZr1Y~ z?yn3kZIFFy$TpK{rV>Zz`|!W^j24e)HTv&V61H0KZM#Ot(g5|{N^exkaE1)XadO7*k z>U&mmU)X8v5nC(F*;SyUUTc4z!*5xW%gqS_bAl!r+ zK8fa3O3Dhc9{u+%|Ie(uciye`jCiy8y!_(coq`5Q4Xs9-Z%j^2u&w31Xc4^3reURz zwFO6mFC*8it1S1+_JXr-Ort!Qgu^1 zEfZ{v8&qeQX`h%|aEt2V@pZjs$bCg`Iy~2$r-J_hfF3hy0cBr_^vACr|ckcJ%zF2)xTNlO5dux zKXr(xR-Ahi$x^i<4Z6(kd8a?^?V7A8CX3HX6Aib0Jsh@U zUPR!6dEVCI2Is$4E&qKrFTO`$r_EfO4SS84=Ex~bp8K>~b){`qP;Q;}>&~@rUt8tw z`uf1mx&GwyPZ^AFKE>$mx*qs%zQpvkS5B>A-qdY_Do zPgz;W?w{`4?sjM=lOq4Ox$pJLEcZXP%1iGq^ku&B(cyo_l?69G$_Y90Zd!C?nb#|( zmPyArU(ZrFvLkV_5YJN?UX8B{3|_Tg|NZ3`1H+#3^;a@7GG;S++h_%ZpPie2dc$_f zBhI~6#t9M^)+ukE+%ak6jS1SB6CJj&OWsmq4}FnXT&A4ixZj`aWAD|9IGY`E94;GN z<0RbOmn{}M7hfchs1qi;>W?MgYMrdN4qdx>)fMJ`ew_aG`u4JYdtB8UGk2~1wlr;x z`uSh=aql0NvijS%Up&2N&c<({TaU~?r7FO$cE`F2cN;hQtl7@;p?=}3t=CJ9 z!)9`JO!2#}I=hiwnn`ozT5?6Tk%9N`az-|XEp3b5&P#AqtL-ZZ zyLwWu#7%iel8xij@=uzj2K?3CQV$ENUN)}HnI2)bH9vxjUAcDmL4J!bZHh1IqKuz& zH?9hFAP?E9N7WL7h<=6wG9Fn#*5lNa`i9euRgRZW0>*}hpy zz1B^l3p`f8+j${y+2P5C=ho#Lyv@tCuj5Qz`SZihv(w89ZaDYOJ9yg9QSiCYOy*Q$ zuhS)5e5Sbp5@=TzVDmr?%jJ=+be(F${zP|`PRy;1Ye)lO`pzs)_(iFg_G~p zF-yPPdACy7m4tOSHqG0SSbJppw%1eRnl3Yi*7Ckj{+yK~*c&Y5VOWypxw`gVjlneq z)=5Gd3pC$pN0`iRkY3ZGxV5^wRH7kV*-&ElqyUqAZm9@vq2#}=1)*lyO*j49xEzo2 z+`e-x{}W)Q}$BSITkOHp0cOn z-z1-NUYlOB*nxk|+R}zcW&c%wZ|t8``)RNI_S1i6 zItp0i@9Np|^Wk&$DZdK$=kIT4f3$*O^@?Zz=b8SW{k*L{fGs;$te8cx_I`5M&FgEK z{ZkiD7szQVtLO4z;OcUFcQd11@qQrT)2?b%q(;(2nK$+X`+NjZlu?zoni za;=mv;@9y>hZg*melE%It?zYStpcZ`18cME|9g9nKI$xMKUnba>q(yuvsDu2nU^Zk zB)C4m%htW3wQv*1U(OEY^)bwgW-I-Wexl9T;<zrr)dAsg}AwERWmx#cV3?1lh;$lZ!6Z^<4k-$95-2 z#-zIG2Xbx|z1n}_UQo)XqMujne*TL-bMTdp z(s#I1%suBxh-K}Eu1A`O>sC0PSUOWM#l9_Y@1?V|BsdJ(1x|h1E9F$pz4_N=jxGi3 zLu;(=uwRvs;+^2os`GqW#|EQwk+!kiz4>{P2SatXh@LNG+`Ct4Lcj70?`+esd%x7q zJ7w?PC+Sw;f68Lhsk|>*0S5CN_N#S2Y_i&a_v>+kN%z8D)aX?F`)qjg?(y;k_hn!G zu(6rDsy6E4siPM^U3~pKi)~qq-`7v3kBx$tTt-Y!& zBxBGsaXXVc<(dy4$TjDp-P>$cq z<>dsE<4%8{yqx|sY<=J3qf-xvR_yG`Ek4Gsc*a*`>Pu z4BwSj#d9ah!ujl;EV}0T_3!VyAbx~|K7fk{d?FgqpT}uzQx9v2c&O{ zV7_BrxOd07GeI!REdF!)*Ducc4by9n{PhT5 zaKH0d%t4cR;f$3x&&6jtOpLsBrvFV)%H8BRFN+_)o^6t4eOo*=d}ir6e|F_Zo0r`$ zS6I;*lT{P^Vx!5%?V;yqMLS%PR84HuI9I;8y79erc*3pY7rt^RBt=_+V_%U`XW52}wJ&ElmZhgmQm;66*WVOul zsr4TsYvSemxmmKK3vOop3;rEh`AmMrmy;42g+D*YyubOV!mj>2+m6dqe=6O0_5Azl z>E#LgE1v!Duls-gO~tnd_utIE|Htubv|Nbdrp5D{!nRl2%`c5IWxOQ&F8$8kgW;Kb z9}1@Ey}BW|mdjT015;$iwq)y@Qt2CKgw|N(zpdnrZ&=hC^^uz;tO+f@m7>(7 z{@SN6Pso+udY>cX>DS`3lZ|updL2F-a=4lE;H_w3w!@$ZhGvli`%{O~i+$x})~y3S93`PrG1qXYaIJ?3iPieI_W zKf*{{ij#${>s!Q&{1fWM$0k-6m;MQ^I})8?FR>=N<0;z>xdZb}+|~9Uzg?w2{T2J1 zzH26~f9f}va4KYYy7BB5x;TyRo}jY4`D0n0R{r(hpMGUzsJI{Ja4Jo**7AV!#(>=A z@^b_`Di?H|Sv4`qy*>BJ{;UOTSL>uoShjA?>YTULN&Cd1-~??i<`(bQ{xV9QC25S+ z*Q%beDQRx^zH&)v>5TxBr5(N#&j)uT{7RL1IW1}@_nfJZn(Xyo?bqOWw)W7mH(n>M zb1XUbDnPd`iQiqa#JntgO|#jeI~-+myKL{>kYnHSnoER1``m;AmH!3N{l_ca^5d=; z{#18hc20}UZVn&A%!eYWpT(M#rGB5-b6~?d zqZ!Eo2PJL%R=iKn*3^2sZb`J&hsRO;uDOr?1hhv4Z*aNtO8w>UH;Z;fpAGEzxV7?P z&BJ*t3mC2>SkGa49vCZdNKpRVw$%(iaxXJ1gBWd_+2o%1GNhj=S?JFHLIQ@VsW%MIx{i(CY$})lT-7X52PzJh}CI5(hRhk zefbp6^Sbx1GqybLJShEaC)YV_N^vIpYZhFny+o7V>U7GrHGZCjiktupT)c%J}dH=6vwa!c81Fx{nrzB`+xNQ zujOyw9p(LYHhkZw$KPh}|C#+wIR1BG_kqtrd*6GrcAR^DGmZ8C9(UGo-8+kti4-Qap|v{k`UMucttF2B04klD>!{+gWJ|e zZ)<#({Qo9ZIn9JeGbeDqH&ZR2+v0HEoU=i)FL?wLR?T?6hEFfIFL(3t9s7#jIo9*f zN^K5X%PM)0)+bCM^h9RzCk|^xxjE|K8u< zyLtWpf7jo>tXq-bwJHDa)9(>g#x6Uh-rqjx$^Y&A^B0$bdK^~j2g)m_otkXSk~WPo zq34K|hpJankJGBSpa&oCWU_QCII2HM2~6+Xv|Vb??(;3ir&;4=EyTTf(|-u48eiOJ zqUh}9@V?`xBD0FdKb=4ZV}-TXE^HI}?Rht8&oQa^Ln-W=58A0)vo7oo+@1U=s?gE$ z{H0w*d(|Zlh*TWEpWIY?cFvK42a@Mh4s|h@HystZEmBw-w$d-XXwvQtk7v2IcWv!t z70y^>-)!6Lv#*5NDVpm+tB_!;U+~S6i;kWRuV1cVak~+xula%Z*`dhfvnfn(*F`-}_Ty z)o*n7IA6Fs$Kv8&!Hk^?cVF1pEWCGpnvm(FiJF1mG(tQdPFZ=*KC7(o+Pb@%(=)hU zeLHo_c;5M24QCgf+LdUvkiGhpImd=$vsQlp{I_7|=A~?l4_C!9{`pbc7+F|GJt$)w<*1r7p{&vyk z8~pqJ2F#r#bwpHAab^Nf&#fB1`SWMa6PO&Wf7h|>0h@?Z(ESfwQPp8;k`K`}R$Gy5I(G1s;(3@_mSaBTnK(C6nrsop7wpSiMBa>_BsL~)_l`A%hB?Hv0y zFp9S}`DaaZ{S{xz$o5LCVNOwDLQ7M_nVcWDEVMfwJ@maFk}MkeS*R)H*nHLvQ~9^? zzB;wJ!9e4@XP>_81&ai;CsoPNhUtRsSd{M0V)rqY$7A)IcxHr=Ix!0Y4-OC?0 z&sooGYX4zI%4~;-%*CpXCGqFG3NQa%*(XwBZNq#}`NH>CcmC@C`+R>x{LiWLk4e-& zd@RnuwC~qc`NI)ACja?Su}1RP;wF2x0I9;B+RV4_o=h-5mBPa1rheo5Cjq|PjaOKH zZDZ`3^YnrsXH`vSsV(Q0jsrdk-Ygdc1HQkUIyoweBkNaq1HXt-xAcQ$ZzE4HJiqW% zR>kj$iMjVvdYA34T(GG2Uhwm@wQjQSMUz#J&JeMT531_--dcKcV*j4l^B<0VKU)1| zPLbMd<~fg|g5#eDuD}0kljsTFW|x?+6ZbF%eK6ZNVbQWM$A*{pf>?SSFKzQ^;6>&(jM{tPrLK2o24@n7|ZtUrItbfr44@x+w!TeWx1@C*zR`hNe5 zm)U}5Qx)w+O6yKj^rJB>Z zRIBE>o2+E|QBbCHx2~e-1hdhKyX!e@YIU2P;`26qo22oaFDfNCI&e;@XR)4`%D2m= z^VbIC%xJ8ea`tEWI~Qg9&*d*xByCb{u8}GA=j7UTy>I>E(hcSelMY7R4q|9bUn6?y zDr;L;riWXzy1$>zX(Qw3B`eM|CHek)#d|HNNyF{Rz36Cr-fKsHyx$`CXZH%$mZFn; z%&ZyJTDyInSI$>uekZ@M< z<5W+Y($o|8^6spiCh&4j*7=zVDS>w_VPqqVL{)=ids)!n(STCUgs(&pVd%QyQ1N7#_rAR_VMesJ!SuD zUG5N=SaHB5sjSrJy4l`}%=W5=n7ch?^=sO`*O-ZS)csjgrx(s}F#D--^O~6VXIY!S zZ`FN{v4lCECKh}%xRQc$7dv-nGQtvcAa(QZakZVwsxP zjtk_=y6eom&afpM?DT78I-}Q+d@U*~HQTXslFr$Ox#xTqH495-UOT9EG$nhnTJm20 zWbT3=%$B?2n3w;Gl-t9u_`>wZ`o0t0)2|oA=sj0Hl_jAgCO7ZIv^`rdf7E~D|L-rq zpvKwh=B9!lEM->jackK3$iPm zaI#h}@ZXXIdD+~G+DA-|NBg;Xql{UuE&6WyswbF#xp7p5Y-Qeqpfj@~4LsHuC!Jch zMx{xbO?|cP^$Q*Uk63srA7z?Y*u5q-F|$$i=GhKr3-g7B7n|DI`UG=2$|lYY)4Q>h z;||9sW)rt2C7JA*kw+7gG9@=ndwu6k@$K?N?p3n0%eZV_eT~gN@baJh-hBt(zkhGP zef|G?^|8(WmuG2Du6=IZ|Mhm>>YJ-1FP`S_ZQ8<9BI{r=m(4n);NLgbZSB8XZ`S(k zJtb(fVfU_M8V_nt3uVkb;v{{-uE0LUHuS>RH}mUrgJpMbWXt0g5*OdZFLYD#a$SFY zb@;+JXPEh87M?k`j_cx4cBT^vSw37nDhV?epQ}1%^*P9@i}m--B83IXi*r_;KfRds zM3VN+Ich5^ zCxvf#N84`^6ZZO=n|Ax+Bi-aZtsCAiwS04lwT|JY4f}>`*G@CP-zuw=>{z~xrq zCS$b*_T7hdg(YtIi8rZ=sWv3dzWRRVfg%loTe25L)gz{U{l3plU-EmgWz}@HmA|TA zu6gw?Q2F8vP4hXyH{7`xkID5Nuv*Hi(fRGPJEP#_twIfdS{!ctz0SHTaQZjNTZ;vY z=l%V8u6dHR70(CL>bKUJ(puKZy;NDT}w~V3WoKH9I6`}J(OfRlnxuItoXP%O#h_j zk%K24W_xTq(06+Guifpxu7_{4xp(91!&YB*sq>rmu?W3RV12V;@xOUzznc}CPBysW zTwD_>+a7Bg+`roPZusFC-tEdW{5W0xV^sJI8UxP{{z>ZRaFTI9;3?tLe*mBg*GcPH>9UZ^k#@ zCl~V{x>0R*$e59%fXOsrmss=OBw5>ZPKMWS`FIp`nK~o+t{=?HlZlfk2(Yu2H9x$0 z)9SYL7YciR9R4-$Ji`%3=0nFdT(-0c>h4%(<_d7#X_+M2%s=Yh{=H@v{*}W8BqZzkF$HJ7U9m zW8;#YuO2wvV7fI`VCCiKvv#B~I5P%`8LwQEJV&uBi>JtYgD6{V^_Och9OjR`+W8|9Q3FqwP1GpH_eVIRnEf zolloPhTNSo_wB0slJes0@BQi<<-Z?WQ=PVV<8M*p$h3WN#u+!R9wkwEpQqn6Oy)21Olf50 zIL&6fxb7&Qi^kFDi4q+LCd^oL|M$%EYQN`f*?wUoyU&SVI_mSR-^A}fZhN5VJ-7L~2%pD=s4R4;u zNnZIkv*EGDx?S%2>a~YTFP?Rh^0{&=?9eHuANyZqBnKUI$_SLLcPf~TspOYE&Hxn*Dm>k>6Q;_7FI0I)cqBc zvzzCG^=yZS?boZnO1(M!dT*8J^6=SAUmUk&hMTx*>$9C)5TKiW&9zVRg+XtS#eqdL zQ`yWNL^t#0yX!k%pIE&2)WQn~1H~*Kc=3FepEorov*M3KpM$HPiEV?A);{)R*Dd*T z5`(PeBp+04;8T8+VOsUc=z*-mL*-q*ZHHQqZL#cF$NnLp@$OP9v8yw881CM?&b?vr zKhqoYukGfty1wB5tH)hUVG|x?h0C@c-1p~V!uoyFE(HI0)YtHu_rS_RUdC@x?l%uV zNagc4RsMaU~zw+SCU+i~IvE zX0k77O;F(Z?e@}klcmKHJ+Uj5$AnpU3o@)L0`?adZb(ZjJH&q??D@-L@mZkCn)CYiJ*)Xv%b#!-ei3M&e&JQxnyE|IEsUwj-<9$BxrImbruTh! z-mZ>*)0%wtl6-$UE0?h2?llc(Wl!2Na$4OGe!n)S>43y(mn`)+O%tR3K02EH`)&Qt z{hM}&S6kfO|JnNgnSH;u%CF8|dV|02$F+O=c8fPGT3|kXo}{PkiT(zorMvAb#s>c#SVL7y!5+BNOIBf+?bJv;jxQxC_1{NnSv0lA6F|L--Wzka=Ss=||hcb3-A zd}ool^4T|;iLRLoJha|^KXc*p{n~#|9&ko@%)V7~dEbNY?hg#MRc^W_9&`WwebzOT z-)k5C?d1+URND7?d&06U2X<&Ic(6lIAvrDcy5m9#+s4Gb_xCo;ztGQNJKOB~wf9>Y z4b#*bc)xF5^&~gpq-e9XZTZDJC$3E~dsn!0(bqj$`N!_3PH)N#NqX~3!d>jL*PVI} zd#UC^?uom8$g~#z{C6RDLvQcx?XMRvyZheK^(FJf#sqKH-EBUttp}Gk?Rmz&MJG2S zrpIc(#2@ji7RkpSbqMwD(Cj}R$77v+;?nxKqVVs}#P@$##l*N<>dXDx@_*mSGqPA* zb@+7IfB(ufr;~Q;%<{Ld|0XDTbH_Wz=RNjPDu&i~rTx#C-mKxnq-U z)DcDowyPi6liL}@kL+&S|3P~HugTvgPA~J_ZX^FOc411~jj#NU$&S3X=Tqz7N&jHB zyeaJGI^8($fS7-ETgB%r~d+QBTm&InEb&CVXyh;}53;M}_${ zX5L}k@v+Ff>|oN&BX4q-BpSn*!Bli^wEHua6p;Xi*}R4Y)4aNe!dP}H+m>L34B`B^))v@9Jx zpHDqzY1PQmVJH#lo^o)4Y4IBSWg85hX%+sx^}_6BhHl`C*LgOtqpY(Z-Q!ECSjl8n zVHkP5`o5|Cp(yDGsyZ**uUCJAY*}_rF_nEQ-|6x=J?L-x-lBlzJSFcJ{oAnQ%4|MP z&fbM}7K+_-7O_=N2wprb+(zcfmL(sITmCK$bj-Q;qxaOKoeyPQ+`UfC`Qd2E;ThxH za>Sd(Enwkah0@T%3sT>&YOH=I$v5HhA$7%h3_3zgs}pxP-raY7VWsZXO)^;y^WPp{ zr|lDP|I^>)Ek19QqBhQ6wEA_5{kLB!+eH=sT{E9F{kP%)_k?Q#wG^u_g2_RP+iHDq8)Zp>(6*i}giq!p6*kAlf`M<*R6HzG}gCN zd+C3L17{=6{jTOaE|FwU5P5rL|Lexj$D&y)o+tnM^e*8152+vX&y`uN(r)6`{$)3F z%2BubuR2v3-Q0Wo<{ndInRwy+J(rhzCk4Mc_@Ddt^#70Km0tfps$Y|`|MUKz`Z@96 zZ^mp+%D=Z`(vD4wr2M%9mbkQO&a#?W`q8?#Saa2Xd6T@0r*v#jdwkj{T5-s+m!UQP zh1Tn!NBNRZ3YIucy;s8f?$ricHAnC4(%!j6b05`;g}l=JYnc15C!J^3U$xJ7n$&`O zlV4U#m7V`p9MK@D?M}H38pI#sloKnc5lyhtg^L$(9^WTrYzronnx6sJ( z)PW<$Q^XA1%I18Ii_+};)+C|5vHnup6=i`XvEE!!o7*;aOMLSe>2zkRX(-~5JQ(|7D%x{_V*LGE^*ouoScm1FH zug0-WioPE25uWH*F20b6SW&KR~XNLi{p!cn zYmWa<-_V)R%B#Ls`fyZb`Tu~;-@>n&y+5$QO8MfM&pC7F@93*}^(Rh0a(A}KiNlu+ zno^Hf?W;fkPyYY=|Lg4fZolR}uI`@R(Kw|_=D5&I<`+emqHHeR*Nl?Z+`iYt?Equ) zvmSl+owhqpKNsGoe(P4@{fzph3qn@kRh*=;Zb97y%>`!_W}kXqwA@rbK2v4sd>_Mw zDywr&FKF>eYF8{vo)kY#hvk{1;@(e)qQ;e+~?HJ|J(GY zvFoSFQ61BS%1bvGlOR3d7f<>5=`W3rYH}GIH2(Q+ zdipQrGx8iCCfGSyhwIiT+i}li*)Ai$$Nu2C4Zg)UPASE+H=o-q{O_NF;)l)!S5H;4 z8nX&7zSfpCeeHsSi@xeccb$tme5_@`W?>`a-?8fxkG~eXC40+pqv4;;8iL=fXQfU* zns>micf1i$??Q^&AA>5HnJ$B8si=gmzF)qzi6r9V5JbUby-WyPE4|3#c#^{#90Uir5V zcN>3_2^XF7|HrGG_!Zy3JimY9Tl4mJGG};Z1hyG`K44&ZSjfCMdGDP5Pu%VX0tN4n zF-+yrS!tqv@zVoQziU(ePQBX9wT@|7qKxE%X#z1zHuJ3tQ7Yx-;r_9KOXkn>18Udg zzId#h(|D9?!ExjFJ}QPg%BRT1GCjEB<<02BDtNj*wqN~E!I}jgC#$o!ga-JkW_7$@ z^6LGD`->MpjN(7f+EJZ3(}=-ZOwzDZF=_4FRxWpKS*t^5H;a2rUGhwN%JX$!cx^z3}w<*Pt1%v)#XZH%+LI zZnrd=FS)m`@?&iAA?d3-Q!l?b&?FfAzvg37f8m}G^$#yKTPB1xu+6*Mw9idRg0<04 zW=H3_V8OqZ6W3l?u{|i`*^zZK9^e1fUcbHWdM+zN1k;A~2X0=z%o$nFtJ$p1Ds$(O z=i}uQR+T7R(AnCsf#XUi|F@o{P5V>C_TGqovobs4m8!I0g3Gf#8{JIid;Z>}G2yB9 zcJG;+yn3hg+e(>7eMZ;5oDbN|B3gyUR{ zY0}l=izOG#Z#~)hb@lfh#>@9-c6+>8ZK%lf^OB9$37yp7Fo9$-XLUBG^nx5_v$y7( z<#s$Yo1ZN+}v9Urznzg3>}zW>keUF|LVnq4KC zCra9S_b^`f3gX^(j_Ji3xw@$g>5aZi4s6S;eO3@0Q|wR~tgSiYD4VeBY=-Rz7Qa~Y z$V~lv!tO?qWAFJlw98L!b9wjJB|ZN8yEpds_FW5F_ZThKbzqIW=b8JEmQD$@9Ij`{ayOVy;|Hs=dOKG-g&icM-}*hX{Ii#-_07$T zPygFV%uEyK4(R4&y>{aAzL$3lyCj7qVrJF8bo{3DTOrM5=5Hw-Pw$@Omye(6ey)i8 zUVVb);m-1VZxYuUa`L5@-U*QFit;|+^mg_yeg9o|B82C*{R=quz9z0R?6ptHe0QgI zpNu2LKmW*7tY-*)61-c^gY{uGXWRKF!r#|heY@~V^{u#k^XfV|cj+50vPxUhLZ!nt zR7)Q|@a3k?ZPSN;n{TVnSl+Yks+iBg7dwPYe?08YwA-69?UsU<)`>9D&R2{6D(CE# zn0^Q9HuY_V}=YbDEBIZo}{ zv~1FpPa-p~6iBdlvCrfaxE7)HAVPCeQ;*iXi!Up6!aK?WbS!V&jPgj<7nS{XIB(wj zH=nZ#?uR^ozIuK5?;p!jKQ7VzavvAIcu7M@dc&zxN-c6BRj^vOe=a%}~3BqG|xuQCTu=4*LoEAsAj?Y=dRTc)p? zbH3j+T7JuUj(tj|C&N1SF1_!R64S1?a>4OkVv>KXRj*}-|C|!LVcmJoms4V*wY`%* zoJn3>RII~wO#hUnQuEL9y1&ye-aBuc2kN+Pu{+Fb!hLVw-sSPajMF0Tx2qnQ)^VzR z-onhUx43@v-ux9dOCX_lsaf6Kw46=XR`u&HVz<|Sx6lxJGVM!9VNVf9D#a9}EB2lU=fC+X;soT-VExv+EV zX4~u5wbrlJFJ89aIJ&5Y?fdDn${hdbl;^&>OfRn-_v$lSd9B1gBYi@q?j`Pw^y)dE zV;c7AD$JjGpgqmDJ*sMo<{Mp2#*eSAn&zB)e0cBQi|_0A%BfEO6~F1cef{YMp~gF+ zQ`IhbO-!$M`*0#*^4gZ#yA!rP&wj8+E_coGpI5(by<1n4{(Zi^)X|RaExZ->ER`wN zi|?v#sSj(=eEln9`pUkCn%}n9uir9hR)Xxz&W~$in6#Pe-`J+^iWT5b-rb;iAjNg# zi9MVDJUbWl%!X;n9^Fo(pXtq|W?jc5Ws8r=Eott2@SZ#MD>qZ2Rr2DExv!cGT^PFS zKB&p}=spUVmXY%8qF?Nf$nX6R*ekw$TQlF?^SZ+4Gb}D0e*(7@U))vTaNs6ix^lB( zu?*YBFG-=x))?M?sku1&__-A=@68@c9ke>0wne~LcU>ccgPX1vvjJzku50JC^9OG> z*-kkc@igtH+173^y11-7KH;uJ zX{p|U?UP*%PwbmqS+FtT!?Bw;;sV#b&S6depZW96tB5&;`ja31Tx57Mg{Nto{w%v= zE@sD@1eadw5qdDmboY!sd#=`I%;?|js(o1Ko5u9s`v%4HYR>GbU6vi)@N!3O2mku- z4?%Ml@8go0f3NxKZI)|e$f(AetGDaXtN$5_%$zkfJdIQ3S1X%a7#-5{Vk-OWaGc}c zML)?_rz025|7)~+-V^wJaI%sGhpjJ@derHKF3qnSwTuOqO{*8F&eYvju)sxEqSxR< z(2rp8FSk-(Iy<&WeoZrK>U&o``|!p^Z|C)V-5xL3Rr@?~Yk%2MKGPTfZ%tQnka|;b z?%Ut?sy$~V*E0NNzOr<8lVbCt_3_8~w}*xlMysk>FgPBM?XvQge{jkv0Z3I@#?gb4@**`+!yaH^9w1px?}v_`TI;ZCZ6BTt9Q$1sr`)k z*t68~W67PgK&$4m+N*U3qz3tcJ?epLZ+-Hio>G z-mCxBK|mpO+slVr{h2tYh~^yZlsRf-etf%wgoaF-?l+->3iEZR7kt}l-t}xv&Xfy< z_gP#u9>_hFF4`f=lJ{8tj}^OW^}@xG`@dJrdRtK1@Iz!yYWRUNspZXj>o^&=CU0Kx zTYKWh!;1DF1-31ITNa+tJ~g}T|J}zYcfDiQEGn3$bmhY?oBPM#Sv*JL5Xb@>o=-f%v&qA zcgnZTFL>o1pZ(aKqbs{K%sR_)`g^~ylUeLbU)z_by@)WgD(_=3W7;Ef+w=dMxr|bq zl}j{&)(GB<*6!>&u(!qk^5#QNBlpBv*jMsP}1A;nUO~yLopsxC=`!VO^3fUEFsx!&lkq zdBn+$%eSOiPKXh%$i7x}E^7Y6AG0=o@iiqO1-5>K;U(2boTbBBJKT}*VgW#!6 z`A2njzwA0N>+89-%5J}_-Y#@JSoV@(Rwpl`)fcS`1~aN=Iy!n?EVsM1Qo{b!oFpCT z(-Y1=eN^?Y=kpmJh2xr$;_?c4=!{+n0Yn{{C2PCmfIwrORD6|JDzw<_nDno^9FvZ0?R(KV284tDY8L zWSj0#ohV?_GGWeirfUaEDlfF!R?T9#cd2Z>bb@n_Bgdw$sgoxkv&iZE?V+AL`&t}V zo651tP3m)2FZ?NFdN1fp|K5h!%@2OPIMkAV{a?A1rIr5=<6nE{eEH1euxKj3Sf&-H z%#&Ml)^=~;3^49=cvPp)qWecCuK!wewcOg5l@*N7^7_ARE#}?O-~Vyqb8x#y2k7x!vc4JwK=HGCQb0O|YP!(f=01w+)JwN6wwG{`Hzs#5^%(#t&IW zy&vyh#Tjn8YVmjek&k{%>Lu%nyW?lP&{`;7kXgs#}XGY=C=*v4^`Wj{QZAiQNj$f`s;O^l> z)6QFK7i8TCT#~zr@zkz)IeSIEX_bd;m*To2^6bQ|evZ10JMV7%)ca<3-NY3>(-gyR z>sY;B%;Zq6k-FusK)+E=WXO_5_db7+eD!YZ=D(WW$|m_)0ZFL+EPFL*&CM~j$IpGz1Z?^(Orr2HkOJLcLpVN|8lr9 zzo9cDlkIp`{+j67S?sNFt?)X0(k?YL!??nZCQoh97Zp5^B#qX!rc-hacanF2v_Rnjz4Xt(_7Y>Vl zv0wg{yQK4y&=0eTdpAsr6m~kM8I*P@Dt159Q(pyH1=qz|YHYLjcDvlGDb-Ir@PE1A z`F#FIKNduB9J5;dR*TD9d9qX_pH=fxL(!o6I?nB`Y38@?89sUT`Ez;m##rq}<*;&B zgFD9C#Z32$S&3!O=GT3(Z=duBfmF7K3C7;nTE9=>6|IuIe|5@YS6%*9nJi5^UkXo% zbT)Dlm(97aex&KK@$#_1h z^d6qyiJRk;UdaEd;`zWCf1vjE!Nw~G7}o35eEqcS*ey=S|JVON*uN?vYiqOV%o3*!apBrmWq%>{!R= zLYM4EPox+>hnz1h^@-9DlYV`?M1KqKsdH=xq*uNCx6jn*gjVF0-_5Idwd$wons1$Z zc&mH&nz~Hgdz-e3m8&w9Wb!@P$+$fCj;pPH(t=9OQ|o?d{(SVg@a%Iz>8S}T|Cbwa zz4Wd1H)YVwDQQ^!PkJh+hVa?M`_huFTG|`LWzvNoUpT)f(zCDd+6^_MsMB%heHJ9{ z+O;@7ruN#+ndNwTr*U^e1CmsOmPmYma09-Z{*0wzb5LvnTMn z4*v$`f`)ZM$L}-g7~NdtxNoLwMlH+ggB$wxLEZmAs;_!3-wF3SoT zC;vV7`SIR`9h#wa!?fz>^DWN2|BH$)eo)W-o3hZ~H6ZWVq)&Rh3lAZ5#6PV_I5va&DPb$o$x2*+#ZoN3HezzaFrg_hf$iN4`_bUu51p zb;RDlSVD8{JnftNq=e7=eSW?w@r;W={Jy%i6?t1f7jB#!{IR)j#uKULYkJR>@ut+01vZIyLw@GCvnJRIjqHez{id)#i8Wv~QI7iu@~c z?^>IgGwoHtp56A1e-Hdj{%vy1k+uEz<-)7ws_RT=Z;_uiD{$ww*|(*cEVEgBoNw39 zV=Za_USbpO{%hX3e-h_pT_oR_*F6q@`|jPfcdvf@f0qAGYTxg-yVy-dow5C!CzaH|J~pVMC4sN7kg*{q)QKE&68SB_^%x>{f<_#>LaVSq7Ia z-5$DGY)$T0&R=V<2;O=7%j)89Pu=$nE$IiRS58(uo~(IUTR?;J2ZM~r%+kF#v&93s zrB*M!EU-a*v(cFVnRx5i@M+ub%G-;cs}I=6{9%RPZ4HA{Y;P^CvgTHueXVy@@7W&C zV_xh!zv4_7RhVKzwh5I#?0WOKBICW>kzJkX?Y;XnlCRGB^6AaVd4f_+D;89Lc=%~& zXKAPdd*1zZ3(Oa@E?r&nd8+wR-am4FFWmz4UR~f~o+2pg*`#Tp^<(?lsAm;bzqgx~ zh;%*M%X*7ZfN#<3W0m5IBi`59PkPC)Yeo~}-sM|*t}*7!&b`UqY@GQ%B3)q1n(S9O zhV|$E+BL0HO3)U2v%T=@DK7W~UUqalmaQnI-JMPwvmpzbHTNys7qr>4z$7Pwd{Uy}K!YbF<|B zir5C`ix*cJ6zaT}-@DuY;h%#!-t|X4WRG7_Nprqg=67iIEn)fa`HPuNug91-Ptx;M z$lY?@u3CG7<1e8k`=vG!%?yGsytnW*e(E|79}CXS$}r~6 zEi|ag$ugUJ?OVrUq2H6!m)-W=WY6ivFsD>{`X8N}iJZ=Fwol!DRMKO1O>OChzh8M- zcGU7*n`{4lYpdh(x%X~fK3p4{uYJA!cEOx-CiC6{lGYQBCLSnG^|+V#_*mV`<@M+E zUf0HY=f9mZ|4oc=qQC#QhhOFPvi<&0wLb1lz{+zR-};!8MCRQ-D0rgV=%izy?!{f| z(JZfd82;+JUO9d9hSP)>aZZ011lpv%^sw6`W%=v=rv27YIi^;sHa2XxJfyI``{!Wx~XHPWQRvB$>a&~3AY=OXG%jlmz zd@c(@j#k81gf0K!n(6T9{pKb|-K87_98*&McAeWjvot*+;J|g6;J-Fa2Soff)y1`) zTXW&}#%l*tB2Ugb!0+B@k=4J&<=WIkJtsu?ms&<&d3B?B-=sOy5A_LX&Szy2v6SDp z-R81r)}xSlY-cMHtQWZn`v#i(Pc-e?z?pokx*>e3jMurbNf4r^#*>BM8*S~j; z`BMq$UsWkhzh}4>+}3gUzuoAV=a%0QP1CII+BU39U%!IeH^lIL__OIMx7pT|T-ka@ zH+Nm@`~MTayC!&Do;F)qia%hUXwmnphko~e5{}E4%3nSCmlU7(`Bg{ucD{@Gb?X&F zXqe|Iw#W;mxyF~atxSK;>b1FFlWofvf1BN5+ zZQXpZMCxwjn#YD$Ph@`iG;LbxtKwVlR`BM}@hn`ri~3=?r%poyQfdzdQ;-oZ{{x?Qg$t-$!~AnxVG=< zJ~!QSA~8n!Oh0E-&Xe8Sqx$0IzxSR8Ywnx5eidUZ`@4dTefgAhmZ>{}?aie!LT{CC z-eclew*job_I*9ce;|n^!`xLmnDh9mrxBe&JA+K#&&t;IWO-3I%`<*Qh1j)&7o=34 z8ynBLD7&z9xv(5H=_h( za#k(uIGHH+z+ic#?xTXIN1fQ0mA>mN+mO+yE-UgS_Wsw(kA+h#a+x>Hk~L{$34i-t zRf4aRbCysQbupoYueAV&-f5NdBuTYS zR`sh(e&1)@)>d|S>aj<&X8u)tb5Zp8?ycEZ><-kF?6>?jZ~B!=akVYikM$o*3+~!d zzo?u0R9NBZQ|ETCe{?;z|Ln1;t_-ddtM;AzSGm*0K<6Wm<5%?qBFT+kXPcg5KB%28 zC=y)lr840~d0_tX7qb)(Ot*TVtzcyOtvOKP%IS((`od)jIeg#WZ&(#`OmdcU=Jj`G zKMz%R751@AxTY;EwfkR;>+2>N=_3AX~$C*&poBm`-69 zjX6=3HcjfpYL}NE=ES+%^>M9=FhA8kQ~OobhVA_Q-wNt7cmM86vsdXk8EzN1hUui4 zY+0FwkHLfM*C*G0y_&@TJ)5=r?vDLyzW=k-@VCeaU-^hDHO*GHHEzzTzc-(MXFL4t zO!vj(3)4E68_P(nZ;n5={N0g5eAW4p+bmm*pR0;rh+g7V@Yyf$@`?1QR}p(wMluI9 z{GE4f-p}LFzBd;e%H->Z-uSFN=h*DZy-XtWOY3Iro?3jWZvWMzyL3*x`+h?sO7f@o zIqN8y)=jIWi_QN@S5)gsegFMJ{S%6$Ibi>3D@Sf=GF_jivX9i`qN*#qR5lziO!?_^F8|}4{U7K5m0I_=d;bsPjNjX@=p1{T zeBh1j{n+r%&aE??X4dysv%4uBxW`tq%DH!bYwbn`*6U{FpZ9F3^cGxk^5mu!$vqvH zR`Bt*uXwUg?D6gHIog|f6&%ktq(0qux-ze^V9)X|O^MvgXM8h|$?W?ZaedEshX4O| zOZGj=Qh%Mq+-B*zPdR&!QDgYJt#@Q|*S40e-_&(&)0vfj&n;?E`!4k-Rq}Q~@B!U9 zHmuHOuU9SG>2WsAyg(tRZJy=y6-Rr*I(Z)0O27MW$$j+n9=EIW^!6)f$hpHI&zeXq0l(c;pN`geAhE<2qzbIZopZv|#reqO!)wCm^h zHx|9;=j<~(a4=`}{{Sz3hV5ti!giU?Xf;qxpLp{d3f%VXND%jzkdh+ zy(s^G;hp@v157`jTz(%VEP8D1O4r`wE2phMVfwe=Bd*k zUp-Jg`tw=Z=HSk~6{)@)5=%L+r(Ja9QY!OiO;5A73o36(zcn+R>z<0j!a1q8r|7Io z_*}AMQ|7J3o0(U<+3`Ixy<&~|&AY$e|Ng!CoBdmMmt4oM{l$TI1)5f-1fE(^nk`bx z$IICCk=@AkRqgYya=#z4=lfOl9V%S;xZA2mo;!WF)mB+mgUHA7UH_O46`nr#Y}M=c zF;B#Ov>rZ*Gz-7~b+h^W*T$)v+1t~KIV64_{WgQ2DNMwFiR}l=a>owsUgq8LiiIgx zPFu}Yx0bzm@W9_$k3Bm@rk*N_i?}zDZR(}4|3!|P%ls672-fIi|Hr?% z_HlIox4Y%@Z>m;TpLd5G<0rxJ{%&`>VD&j8iHAR>--h#S@vTyAc9oe_bizurdE#2j z2W#$1iae3#7q`s*Vyf|O;;CytyjMfWNeXktQv{qG_-T%^WzETZJ-__KwvPczo0}G$^toD+ z&zkP+6Ep4cVXMS#5h1+=SKe-8o_>>q<#|GgPfqO9`Jb7s-D?)Uj!a>jWV)?c{@KjF zv`oK?EtT14CY@NO=pgd;!V-Uj4+US2OC693Y}5U`Vfp5l;roJ`E?z$_c-^z`?E>@m z=HAu?A3Zi&i!^AxNwUw{9MQwOQe5D$N+ipsZJcWk{an7;F+I^~Ci~|9vySh1Y*Ce~ z?xkPmR<$srUo+~(9LXimckHw8ZeqCe`-@G+rKT9Jdb}~|kBnpZhIwBa6EDmY z&f;hP6f^f*bM4R5@kb*5+`a!Nw5H$s!Ru8y%Q6-`blUzv`K#^iq~mP=+_%l}v(ICy zRdCf0UCC-69rfUv@%KH~L(E>AZxV?1s&r3#;v?SOupxNo@7}Nbo-V6Zo6s(2zkasJ z3e#I9^=Ga$eZ0e@U+!_w#%|Gf3)x2%oGu=AmzY)tetOf2NnyaY8mR^?y1=$BZO!7H_Zb3HS09j5Sbi^efV}D_v;h3q^URN8}e6$zuCK_&nQMpYpH}ud8&)%G57U(ujcdo`~Ttl zKY@Cy6+frX|05vzv*$sw(@eHaZzQ}M_hq%7vJ~n__TH_&rQi5gTHU)V=X7Lle*OOX zP>xRj*@^$00t?Iv)_+Kvc$P<@M78={#&yOpR^eq6_O|U6dYv-&DfdxJt=o1ivhfS{ z-<}lv!t{ltVe0a;e>epAA9}rz-&r8>+sKQZI?KlcaX->Xy&awn`WQuSSS>AdNk%ZuNfTV%XmV)tnu zo7aiVf9Ls0sOQ?$l?7Cv-NIPd8x{70FGEQ6tgqnK`PGfp1?Rnc!#8De?O>l8nP400 zka|(_ew2N@@`A5AKP`Ag_xw8XF0U-A{dk&rXa}!{a@Y^D^a4ylYIa4(%Wh04xZpk;G5#i z7$&!XLE@M3%mX1C>aSdz;nQ+)(Q3BoZ;oa(e&6I;+UxIJewHgYpY6w=jOkD9Z~p&m z|F4~E-GB44$oto9f2GXkxzc{U`V;6ZgK~YXchi5iFo;ws9bUqGza+t>cZy${#@_y- zD^restbc!H|K;i)Y0dwRqCMYoJYU$zZt-lCpL?(6-&dZ1LJqyU1lcdKdu{om=kS!A zxh%HQZ$V@K?nPEUoa;RrBLrodJv!>&z9?|aUhqJmvnts<*qq|O{NTRG`ft7Y>AydlpNxy+FSGqs_(JQQ{_BXkGu6{q>1W?B zbFm0l{LOrDqSEmxUuTJDPtoZ(f8?RouUXujm4>%H1Z_0-EmEt@-<=h(p5H$4_u=DT zubbOE**qoLR@&Ch^2kvog+~w1Fl>~5S|Fz+Z6B4=;1lWPJnc+_-e#Ld_JuaWeX4%G zUk|D-pUYPnwBUW?|1B>ZzP$E#yAnQA_luU<-S$npv|m3DW1sy;;E2%#=b0<(8 zay4CxcKKfHF70i3CXl5susYlJMF0Kg9LJ7{WfXa`M#&vaewlMM=vMthk!LG7OTL|% z5y&@T={nxjC)chSF#U6tRcw;m|LVhOD-UCV()dD`GvaHfa-7>H9PsSR_e|b={Ovm>3-4X- z-m{+HY4Wu@8fI%>nAQIFy>m;>hIw=O0u*k9KfLg{b~fW{vwac2eeTF#XL^3>;GOdK zd(18y8!!6Mm37YbNV?v&=k~d$7bltQQFgl|)nBN8*I1`0N7-Oo;$lPLHOdz+N6$XF zjc@u{(_1M~*KH-tAD{pIIyt*&Mrz;&7S=_*8~J9OZ&gJrS$pqMSPWtd&LZit85- zgidWddP|q-eMC{ftty{YpRY}in)A^0^Ih{g7L_}@Yt(qvW(ci|Ea^7>$$0R;{LROY znGRm|xBsc#w7D>D>Sot(ceg!AyKq1Fo=+shneKD-noGpz?Yywz;Ocod`EIzaJnNw# z_cTA5UDHSMrpcLWi$%979=X9&Q#K`aQGn-`(c%lT3Y)@sategAosdqRb66bHZB*7c8fC6sODjE#zkz9nVntnB@B zPs=7A^*H9cGs~>}Sy$X#D;P6-wr~4+gA?;7Ur@MYDCcr+&CKU{0vwI)lD&sI%wxW1 zC3;!6x3 zgIL1sAG6pM9wt|vHSIE8pV*(rbE#ir?U}ZHO!JQ44AGjol$vZLJ1l#r?RvGkgB63NW2NGbE_x zlEA5t7yJBQ%w@l~v%B-dhC;2s3SQRLhqi6n@o4MUlWVSCDRMr{D4{uFvg#tHFF{pI z92s*K?d$Tg-efCnG;^MAylbJ)B_4&U#Md8Ls#bho+ppuF>8K;Cy5%7As+aAL?=6c? zd%RrAWBpZyr>7gvd@A{RYgw)79n%lLo^9{mySsebU6$qfH&m;?zdhRb{HR^EGsDw2 zul`-V@qYc?j=d}V>P>rg_gifH$`Codt7X^57Uc)*az`Jmn6t|){cP`tE$biepS18{ zqY|Hz;`g<+i{&3Zmec8F?06N*`)7aJ{(rCkpV;?t{=ZB6{x|;*c>i~iVR-!2BRgO8 zbR^|yT4-teznVVvQuFdfQ8gC5LcMp=wmi%b?rAvKx2@W9Z?vjXsl|^UVu^SBkLj^Z ze^;=2GDB84quJTJH@5HFc6(*1LAd#RP0#i{aere!tL3i z!e{ae+7HOi+xf_-{K5r^t_Ud(A#u3}mco0YIp1C2^u85-?CbvBhOZ2H&PE-#?@4UoSV@eth}jslH*;KCi1^VkhU5S8lbbF7u?) z_O;XEmj+vPH;I&-+Hi&c_m7fCzqjk!Rc|xe`aD&8-2$OiUskNqeRiWv?SXrVysx3H zgIK4@RtC@4P2pQlJos$p-Cw_@EMxnky-_u0k=m<+Cd|9AIC80nP;By<>5mU?je9yH z+kU%PO!S83zK%8Q*DE`}&SRU(a3Wy&rMExLlJf)^+@iOcPFwpm>cgVi%g3Xnx4uob zXPPH=Eor^wigz3NyZ^=K1$GsT}%h zz2W)^u1}`!#{#`qe?C~mzHoz+(D`>7{f~8xFJ#18GR@#*IQ_h6p~bps>sSS@A5~y= z;HdFebzwG@`*%~-?#v`J?Tz9|%Z*N-`Y50=*?NKV0>zjAincTA?s)utr^B-Je}9eq z`TI?O{J&lne^4dg|M&FyHP;uFq<#oHdf2qBaz-&P&pjo9gXLnIyerZt=d5ArWo4SM zw<0qkZuNV87FIp~d|e5(ZFxsuhVajGT2uB+@>bY=E;R*)muD@H>h9#Y&{Zim+hN;< zn?_fRKHPe{*z44hm{pD@EfvmhF5ZZ2i_ANl8KibcM8wki(4xt$?-%d=R$}(*g9>YI z_nS?UUp3VhPdlT+V6{$`J_kGGU>m~6-ckTK&@={tSZ(3Rs zwV~6fIoP6HuBPu*a*j3U70Kq0YZzp{e&OcR;g6cR)I62#&uy_^GjA+dB<`KT-Yyl@ zs>13rUCyI*^F#aiCjmUo0bejAN0Rvn64kIm|>g!pD%M9Wkzf-;U z+~LRrtsQdntHtg&f2r!-o^P|WmaUibYU{mIAHKL+>oxEFdGPz&J->FZe>?QrxwT!zPGBzLW3F zEvvMQA9sz<_bv!{Bv-y`F6UB(1)o*FZA{Y%pR&+fmuIQ5=@tdQm7?C#Pww9O&nKq4 z*y)ZQ_kPD z{MLW(qrxZl=GB`YU9WrP@%H?0UN{eSwuIUj3Iy=$LTV^JN$b}C8y7E{>g34zDlBW~?2d7!pk zU6V0DZS%ado?I8KZ1=9<&1jZm%Fr|X^YrE&gV&Ms)(5YD9cO+hNo!-(wa$Ya8Xx8} znHjK@%u3GvaPP;OZEN?2U*~8zz9^|$_k*VV*K(r`91GeP@9sD_?RIJMtC=@r4;dBb z-1_yv-+6k&_r(ee88w(fzSKS1YbC$E_O$AbR}U0y3(jgr-3(eFw0N>;$+9cgH1=y> zV>#FzH!ILYS5Rdcn~7nW>I}!N|D~s_wz(t!mcRb{{Tqjy*@HIMemZF`X_0g`u5j<~ zo3C__e)~Fep2&^WE-gKWl@7Qwu49r)QMexAf6Q=2yXfQBbB|ehe_j@GI!Nn;9^;It z7q<)iMLTEittjMPt6&*(t;u=K%D{u0cj+zN*{IA{x8PWHIYY+gstXyL4+zTdmVV=$ zFDrS*TqUJTU7+vVw!X-D+}`XTV$*H+ug~W<;@=q9!^5N>`@r(z&H2}F1uvfYMRd*9 zsiF)Qzuj_d+?Zol(>Jr>kif~Mw(l0Fx9|RYWd6T@uk(WA8-25H)NWeeGVO(B>9J*(9NL%UaVFewo$=`RrRz*@CPh@)t$T6j!S~JE1ui^| z-Rvsg*mYCm!0KN$92)Zq_Q$O&s{JY?YtZL@J@S+Bk0?9wNN%2AnfgJU-!2~8eDEfh zYsg=xfVS^%dicMudkgT*ltc+K}M(+-&WEPiI>Wvz#EcGfq)nv%Mm(NFwsyX&$UJxv*oy`}~qb_a&NDGyaC zi;1{*$}jcev!Af-WZS2+ID4^}{@c9Z5@)aeqQb}N+7s(pn(|s?4dXfGCYVjF*wGph zxTUA_*Z1Cu>QZ~RZBqKfU-M+@sqY&MXC|a@s&`!1_Y2i86fm^VW6o~889#3+r)HDW zRkO;uOYa-cJ-A?cKa2P($9q@b9JIRlgZFWFR&?x}^p77_vt85M6x{r(YHsuPz^M8N zg5;kd!PL={jzCE1pn7vj~$lO?5c}>{9m2xg8$bEGi_&|Uh_SG_tq=^S6xdp zLXZDieem~#cUf&K{#8d*YDCCPzZb@__0LZ0J9WLUWOjVG6!Y)YzQ51*v)$Tl@%8L; z#;;Y~t^B9gygPS;f2O3tzv?NMXPIXwxJ%_Kg|2rg%MfTa*>g_F#56Tm`S!J_ysIBS zG^cVcx&B~Iqo3FtrmfqZk4d!8o6}RGeEdXU_6>II&jawZKs%O}T6de2Zwfyx3 zht*0dvacze)B~R6St|yr^HQq$Zm4}vC4;>^z$tY(hADCz0XS8KfAOYG0^fj z`|!hwz_krGrtkj|YEWPIEWbwdt@-)q-AC?LRb1)(mG;m;ME0NBsyOablea$j;Lam- z+@94zAp62BVRv_flN&w$zK%Luf5x}#WI~%WQ&+5j&c6H?um9eBo5LLYcVbX^hLrBs z^tGoq8*X^U!n)wV@dxvCXPf2gM!a}06d{zuY@2e^NbXFO!l{n9!z)cAUnop`C;!xC zWo>h=yLbPowKDf5Mc$uC={+TOx^8uPmA-Yy?lZOm8wDOewhWT`aiaQJ{-Tt|>sf|t z<}Kd-Cc4yqm;G5=M&r!_p09N}_@2$!v?o{h~WDHAHYO(Xq#$9i9g4HHBmZco9 zx;nSt^_k4^IL1J(RiC~!vftdj=y&;sJ@?8R)K#ygWxY<>ymHOOX~lJE&XRdAd=jVJ zuRFfQ!iId~ze#kyq^f zJHBrpk6(|PUi~KWm+wDYxf5?083IqIYP~`&-7r1EaxAE|Nfp()BogQ)cmn1 zlhN)i?^cnDXA`UZ*Sy@sdG6aSZKl9Kc5NS;zcHPPkUH_X={&dfMz_u`%>q8_LmM?b z*G@Rd(3!LA#gAhT=D(fcyu^S(dSe+wnak|Evc<;P4GXVtdpPyvw>dk+YyYS98P2s^ zlk$3(R`Xd?&!@UM{O#J-b8GMQ#Yi(VXZWAVP?kKMDskqrxWet$?DJcu|Jt)CMd{o& zEBVKHtc$OP?SD3Nm(r?YpIm;A2^Kl7ck=&D^r`CVvtT{+@X8f|*=n7ZSB@NFm({6e z)Qd{2+?e6};$On7m92v5v0PpCYBLVIIy6=s)2bjfHeIF&gi(LOr3zun_*Q?rJsoZI0CCK+0V z?y@pD3AQciDbeo=&U-q3t6Vwr|7q*@UEU8C^SrqJhVS^}^!!(gH{83xf5m2Qr0T@_ zHS^-*+5+Y-+x%kN@2cyS=^^XW&VGCKi+SCb`1KnPIZF4u`l$A_UfDu{ea@AZ)^O`xH}6jrdSHArwe09S?kGpK zOyLWLCR5}Be%AXJBu==zV3)7O(gl~bJU;ZyV%B{f@xR{e+M@R2Fb`MbYn)CBY@Z(- z@|XPnB8qI;(_ti zug@L)PdluBvuMVQn@cVgM$hRzzbPa^M@Y<6uDoaLNxO~%NZ*GFTP zb+9_`u_7)5k&fu@|6cu>U*={?UvU>uTb1o2Y}>6AzsR-g8qbGO^eqgVAV<`{`W$2r*PKh@$Tz-;QsuQ zNv!7Km1mw-nM|A4@%6cn^Vz^IsqD^8fj`#7rCTZ_9Nn9C)MHbt=UqmD7i!b8Kdf2h z$@}1|@ZT;C!3n++tNbTSTzgMgB|l2}4v4wpO*ib_^dH9>AU8ps0)c_-JxTw{Mom{bQqE-LN33rDkhW91(R5|k ziSCH**R9z~f-1%F+S!UrmF7-7bcu)i;X_5fDIeB8nDFV3_Z9x+P3yjF_NkM7KbgU8 z(zCYp$M5V*K47)Ta{mdoACdvjGc2>Zu5>QuSaDp?<9_>7E3MeZ`McBCG^Q8V?|8kn zred%BdVYojzrSg%Vk|wL`n2(V*6gFKKV+tstlqk5z0Ipvd&_Q2dzay%up&^qHD-5l z%Qo3o>B2jq$^pFdu0LI$%)3dTxP@Oe(Ez(?5)>Yi+i zIqpuoyr!ow-P?W3rJI*$$mBgV@z-C~I5T_0`$bA}9oL`F^7r31Pxt`i{`~#n+kH+y z%3U+>MMm{$af#nqdzSaV`hEW@!_Rs5xmo@nlzID|`EiIb>*I9x*=^!qeb$`#@AP1C z@Qrk(Ij>FUG;DadX7PQ+-C3ub|1YRJue^`>)JKjx{7kNFS$t>JSvg{2Ch7Dy7z>|ZZ*fn>ki#my?nR%jOJCFw7-eXvw!W!uI+77abaG`k7UP> z1x~A%3Uq%=_{P{^T%)89Ui}Rr_~Yv{QvuR?AyLX z`=Q6-%r58s-L;Mvj5dZY^jx_6`s$0uZ~q?2eSG74%<;{3ha=CM@l_*M7OE8^v4qkbC`y ze?N`3e>}c#%47Quv9tQ!rm9~1?+D-SsqlU<{q2wA)hr@zVPTFn8t3viA7GBs{`$a1 zZ&nm1ljE!~A%TP5uWr7Z;&$68t7@5LUV8E7)VGb%Qnw?P{CU z^Hfi5Ex*smv0=UBkE*txk#D|LtZ_V*SCM)Ba`>AaHF3>5@-LjqT+6DhCeg7b^z@e1 zPuH04jY!ttp>J?^(VYv~^Ul6r+xtMsI<|tLP9(y=K;)N$2LGdf`3I7hEl5m$#HnET z_9hFPQ^#)Iq;R>l+|z#XS|0xFaBRtT6}jxDM~@P&1+G5uw*OqL_^Q&jd07vO?M~)g zeP0rnsL?pUOP|ynZ@xuYaf1Nsa04O?Z*9# zk?Gge=PwIZbhczJT2Zoh`B$B-HU7`uydD}0XFD#mpK`3bVcyi9 z2BYlxKmL^pzC5#a>D^aZWwE}d3pYp`Q90J(DT5m&d7-=f4ORxB)k-Rn`*?O zl)1?%`S4ryW0&o>1z4ZFKl}B)*9pu2C~eS7>s@bu#z&s@y8YqrtzVQG&fDIQOtHOo z{{6cHI~sM5?h*?&dQ-T?Ewobe`#0WyIu~_cg3iIKWnj3sU7SzAs^ZPuS*aSz3%Y%( zQ`{amOh0TL;L@@`-Bv(`vyp3W+u0907gmVbZ@iy(;qRkcsw?fx8>LzjBsYd(IoNW{53h&`pQy)8y*M|-_{*PRzLPpw?^y)W*1bwt;#>oZ@yShy_eAlq_=xOdrZ z`>aGvInuY4E_8^pol$RCP^j*1MI~-LtrUdDQckx_fb z)EX9;nlCqfUXW2yF_G=OkMgb8Gq07se3-`1_EdwFIYIb`;*BhYhB;5J7}tp$^x3v^ ziQVk4v8%#e)@o%gIM?Ihr`x*Ye9oGew-07IZ|8{LZyBM#M0?i_d1JFZd^2yXa(5AP zx_PklV(mJvZ_~vx0;YI31-*Omv;4r$o3HOFKZt(&xIg}J-M(K}^%MVHSbyhG=k<)1 z!wj01aY3El~dRRN(%RF3)$M{&3&!8 zPsWdxxtZhFbvc=%M{@sZNJm+&x8A~_v!M6eO<#d~w>`E_e8rgf&|-_i`V#i~(KT~+?w)z{NleiR_tzyCbLx9FgUlXu&UF1|8^-tE{#fB=|J-1%i&gXZ zqyBHPUG}^y^OaJ|%C*cFmPyWxUOavIm2;aU&L86tbZ**icz<&Y40 zcUI>ZOUC!?=*egNrrk)}wYT9K7xRo4HO-CUpPjSQS9c%0&G*b_Q^xY_^Ikz+w)(vS z#ZKQdKYrdeb?f>zhW0IW#V?C*G${5iESm(_wSuK zd4pixzx=PvVvPOWOum~O44jfXo~-22Id{|LqdSurSJt0f&D*o~t~0#jTKxEb<$~|0 z-o2~4_wV2Rf2_Z^|9`lDllNEIYj5^G`f1C#MkHQ4{D<}Nv`gRLy!vc&^YP=oecxmq z<`N&QO*B5uL&lc>s z_)}2Ifa#)SL;KmZ{gnYyr*GUlUAyS(wh1Q>sqb-9}B&XmGb(z=C#$||1C>6?!AUT!_Umo2C)^+6uN`H3e_cBSSI0X`aKALW=A6erHZt$M#35`I$gty4U*NnX9?y zY3>#*p8BgQ;K%*;s=q1sO~Z4y{?(1TtI%q%x27>Fa=FJ6^Nf!(Z{Agk^=N|U!GM^!uS-^@R(Dt=_fAp#pt9>s#%1%wcQUN^{NsEVp5GM^>&JDh;(o!O z2lXxvPd@K@EOnYCVA87#MXSHQPh^q(vS7w(L%FVFk?di`x6bbBD$e99-amgy{pFo= zU;UFh&JoZx^VL+wTQiIV-yKm5F29rFGL22(=lu0?_ZHo~`t!{d=WXY895uhq+UNT= zwdiY-MZ3;sg+uzc7Fkyw+}1ho_1mbAbDB2^l(b3wIsfgb{-u>M*IXN?ALI9{ZqWQA zsUXf;aYDqkXUD>xXzBMH7S>7sb*>znQ1+}X^V_zD-pDEZM{1^-iJ#s1z~nXWugF&+ znc4OI9%`>_Pp8G5*;adIvB|=_!8N73m;b2l*s(Tu?uWWd&x*5uzvEaV-D_PM<`nJy zDr7>*`krOipT%r_u5&_PsF6?3qZ?eliE4Z{@ zWVz?M{%5-(G6R>a@fz?ub{{vgw8pQ)Ea&qce`10K2_SXgWKfe0z{@vTx>)-chFR0mc`DKjp|N2y0>3OAL zh6g+^wItq@jJ{=>uJ|_Pc?i?fa@~m=>+Xf-r%ZqI>eV$l`Myn&S-mf2J_-EIv*nTd zjcvzItA9)XKmVxSYyQ_a?j^siDkv$gZBPDo_wQoX41w1+>$kkkwpBi#p2^MQ|KsnA zy{8YeYm46uW^XuumHk%XpI1B9i>H;(ykXI4XcnQdyI4nf^Pg4n&wq7nt$69UEq3c> zhF!i99aruup7VVcaf_E}<<5YeIxBXa`|b5=%?up}hN}xBIgXm{l`$}TT(`-!K(c!W zGwVdnX+M+>eDJVwkv#5j)^f%Q?Ky=@=EZ-!_2Pmt^O6(OBNSW$!)10u!KIOCtwD3(Z@=pqixwQ5B(Y}kw8-a- zr#H`#=n#@wSG?zretgF95)o-@#|_b33^y-b7c5=V)wkRt+iuUj>DSpA9@th-Rh3!a zqF`$zVWA@2I=SX?-|mTPpB-zSD>whbXX7Y6ORX77A7WnW>=2$f_nG~KZ_kf4b$mW> zfPaf@;Mw-r-*#GGi~@`n&Q1wkz3t{9`B>dEn%Tjn6TBto*FSX>`f~osUFJUz;$NLF z@BU*dw{*7`=m29Ja!vS zwld`@Elp}yzwnSPJ;X;eX2pu90U>=G41UP+-MfEPP8d|oA;}>Ei1yc`Id%C zK2MQ$iSp1h5fibkh<3kRzJ(zwGW|-L+h4&JN%cK^oz zkN-bK6izw+c2Ax7sh_G>>Rj!0d+*szNNbNe!9Afq=yh@NpFjIQ2FPyl)F|xnU$eI0 z*jjlx%}vqvlb$ApWp5QQdGlUyXQ@GUbreSU>o*X!ro!sY(H?(8coZ_CT5V~h$ z`mw3LcY9QstzH_LM3rYHpL8fF*5~@>_1pUWSrsm}ZPSiC`SUMEq<^VOt8QYnZPm@3 zy}I+4oKNk1CvH~Oz|yn$%02094UuQQXQrRnu>6}{wgOW_%>U}JO3pf&U+k%$|6YsF zmG7BtI(geNMxGsSS0DL5?X7=B{@T#+leuw)Ymaes{P(HiW-M!Y*Dm?! zdFEGg_q$&gj{2E$`NyVT3Y-sY4%D$fC_OgIbwjBU+wQu0;r-U%>MIw;O|E~NdSvF? z_g_o5obmqU#V-!h=NgU8HJEp*yRPw|AFGo~q%rtVz&_j%lFyQPhx1ygKqNix4Z z$Jg=g;Ofhd)AwK3UVC(FW7dWC4?zcJWmulK-@q1j^j6CW1!4b}A6CV^OUesi{tFxoH;-704IwSW6yxPlCQ6D*TlJKHYvOK*_+ z#u6N}=UAgax!bkv3~WX$-*z2Hn)iDD_j|Dl5C8U7K2(0J;H@^}p$-$*;l?Elhx>L; zm^|0TQUBx5iS3GBhGu=i8d8r14qCqafA}}ci9n|}{!^Z~M2Yoou#U+RPhQM4O_W`5 z;&+a?uxs;|`5Lsw>si=TOgJy3X!H73%8Uhh{5QK<-*i|0)BgRZ`u?$6N0tp6`X;U6 zPun~}Q=;_7LC0hRfv=aAa>{Fd2%d0ZQ{U3y&o4N-cg^0kb&_+peei9W6ZhJR*VSGz z-g2r-nz@TZL-v5fAG;N@R~EfL_V@WY4FTRej%!vQX5>5cSlGBcA^k~n;LC`ct$~fU zM^3$X@O|sX$9q=E&Fq`M{$R6A{|m=8YxcjF{p$Mt=k511D|haiw5cRe;DSbL(URbv zrSnQZZ(s1@@y#PF2QO&Nm^%NQYS{OGtHa9^{GM3+IlCtPsPf_6CnuOYEL^{H%gGn+ z4@B1IUf9MvZT^3szVm9!9?oZcaO2snXtl<#73-#aTYge6GMO*sO*xzU?Cfo(;cp_R z-84Jka%;_D`JL{Ux3UJ>N-zJm`$*{p<3B6!8n@mLt3KwS@lEH?v+Bp*-n;W`oU7An z%cJ!>zDyEw_!xQX|J!ocXM1jx`M#7((x1t+K;+DdK>5d!f-_%UaLGsw%#BOREiqVl z*MGlY_qCpFjI70c4N>#Y8(LNU6G~cWziOwz%=HTnOta%-N-0pSnS0>F7S0XHJs)Hf zwM{NF>AjH*PTdlh^x$c^an^DF=bLS9T)1OzZIIi2+-4n1PvOahtR;$OCqFB0|9M%- z@KVRuHEspnuU^I|E8aOd`;o;Cvwrsfb^QGA?KZFfe{lcC<;Qoj{a;=CYps07y_u3< zHXlD2kaqHL-s-wthO;cp4VV4d)yNpkS%2XCT6cz`c}FU0qTXDclJI=aobsJJPJC1< z*tOt~zUOAzAaWraCnK zce-U#HJ5!ysKkagKcRCUbP`i<{O;Cxt7YiyVA7c(+4%I-`|?#*$1c}yxT$fWy!n1% zT)D;hn~I(Xm$S#li8UO!z1!$VwSUB7zw_G?CR8k#li55|c3PZEhpYHhh6TRGyax^* z5r|H{(dl?7=!(c(-h_7*^(NJdE4H6vog2`6-c&62*@-%bMOnNX(ywg2x-76-@U7^_ zc@d_!`kfoLE6>;b5_Tuu(c86l`fr_gw|n@K_HEt&<9~hg(#3~upRu}zM;qn}bIkiL zn(^s*m=fz5j$c<@Rry)Gg-#jH_!8A~cm1EpnzOPMDT}9s#PXX=(~$MBc^x^gdSSc? z-zVAgEV&m%6(W|W#9l}@nEHb&t@=?<8B{LrzgG1?sp9OZGrv{~>@9V+>Ps?jyDZcG!QtbMH45@|F&1T#90o?| zc`{{dN|R*2do<2|HaRuzfWVo~d&_U-?64OWj9B#3ZnjVaHM@#LKN zwYOdT>-Y5q9TBX2ZW=3gH9I_5xWlb+;wf(T%!C84YkMpCxdpSoq%4bWKGfc*yW!Bw z?`zJ#%B{MS&=;GcvvPa2g>S|7tp7f2@_$<%y2L+u(<*GG`PjiwR_>e40SD9mUt#sB zoo8o?%zG%XVjiz|hS1db6K2QePcgD`(VmlYNn&MiL*34cuTJqBuv=KQ>kD^L?Im<01P3sE$4hQl? zOZ5wW*OAt8QTY{7-k`A0xFn`Te^>s!=~4FEcGTavv;Cjdg`2!?jyfmHU4GRBliIQ>Tq$tEHDFom}+1R>;@RYkktnf<2t;+LCXd z+PXnJiFYT%I=iKlSmN|IZC|-oyW8^0ul~yXGmR>acNyYW>6W!pyEnZ_ zNNaPV_@c&>%suMs`E?R^bnJb4l9B(z`z>{gOZp!~b2+|Z^YeVo`PjL>ph5odB@XuO z4=*naeQ;!>TWqBY!R8X-1TP9A4!|j632_x6dv6Yvzw*yId!w;H#0 zwI9uS(tr2QYIL8@DgMd(OLmkv-whT0*|yTPZzZ!gu6-@TIotMtsDZB=ll{BHYb~@x zicAaw*&L3rZm+#_co5NU>Plh^;;lv0maJ1JCA-s&aF;cAkq!+qRv@<$d>x%{dddpPDG)xRr}#y5W?p zLtc|E)i4FgXsw!iXtzZ6dF!ttZ2{)S?@mc*&8y)xfjF z{GG%6;#J>LV~w6)k-4Ax%<78#iuR}jFIU~FUK=y>v(Yn&`#+AE->TdBM(SdO{Pd*^ zcicqhYJ5un{(Z^eH203}myKhm)ojcCJhkE1uK0ESMk|jyYfKDP z-c9#96|y34k9fL`$+~4vKBu=E##LwRwiesKzCf>P$+tIO7+6mE?(k)`NE0+=|7o0m z_y6nvZ_OV&^Ruiv;&?J9k$dsV`?m{!a(~=Wqd)Ju{o9C$GQ*0u?`;>??KwHE@Wa~^ z6@0F_FB@UV8D*>`5v`qfOb%{8<1xl4QhU0x`$%+ny3%QWn0dGfyi z{;JMEefzc^$A)ZucHR1vZz2-XXCD}24E?$yJ>uKl0+|8I-1HP$%T@UgHhX3IU91lJz1Rk{5867DnleK*~E z%dVpFtf7~yK!?bk$1D?XupSg(WMnJ1?2B*wHovJ}|KsibKdl%1pYK2Y$I18q1^04K z{bsm%XO^s{_q$(T4=E^btxcPg?0)0a+fTU;92b@{t<%pd-_jW&;cnx;Gv@J?^@imN zUoSXzvM}21Tf@^~!tVR1WMzNw?CP7^5-bAqV@u^8e|@~Yu;M>U(yhCJj8i1#G~QbG z6lrgIEs6HL#p!Pu z-fwu?G?C`&}IU#P(rFM;Pjy{S1PkdyzaE{O2{m1ayUz7V8`e!PSNITRn z;LWz_mfRw|V^%?!Z07!rXSJ^tc`jJ8L&bBg=*IR>R{fu9uNbnsPdq0u|KX>J*;@m) zZ{4${PfgXKE&H+1BCTq<#Eow+-7|SV_3`TL%jPd0SLUYd{PsT1xN=#FEF-JsK3AQo z29FO-YxnG4mZ$da(d69j%{~i5mS={k^c>i8gX724ocC+jNogLkJl^@ z!qt&Kr|(PUW8LPK0YMN0yB==}6scKH1IKO-I zCOdY^8O!fJohAQq_fES-b(zi0RlM6LB^|qP{+v*kQPhN+4^w+r8fo9F-2Q#_0d_5JnmnZJTBZ;JT;pT)@|Bb58>hEDQb~&}q z*JTr@2*-v~ryqXU{6MAbV8J41hNFI&r3Jzdrk(+6yDo3=?3?~Ge-+2$~gQ# zxU|K(LPYb8(d1XJTbgXrMVIH)kj#IT=B+5Y#U&sMSD3r~2f9xzsFw4GO?V6Ac1 z+P41ulj}de-RA%JFnQYD39d}b4x2Q$&G`JQ;(PH&@&A{S|NMLzJLmfKeb@8~v|j(x z`WD~0ci#O*gXUFC?iI^ts-IrI>V4&_IR_-y=Wx1KtuX%XDE(;7tU13jx+X?RAAG>T zzP7}77uRHW(Z;45_bv;i#qq9NXHE5&yjl7a6(FfE_8Q8Dxy`DI^`+(WhM?IG&h@Ag!d8E6pFptlbl^#Dw|mHikL318!Fzii_bBecj<-p7>Jw*!MMikJ{ac;XidD zdXMjy*jr-nnQtDL*c!dJ#XZ3z@S4QA((LUGHB0S0wsZRXmw(*;?^`|N#f_zBrJhKd zUf|q!?yu!FK94*hcj?Igk4(L+84tBOPG44g@7tPJasG0*vUzqfewb0H7@*O-TYp~# z!;J5L{wUVHHm~bAQ@`r({~zx4SKc3u)miaPHtATQ?zyUCZqm12^gr3UY`I**+=zPt zsf#sp%I`40EIR$?lyU5qcmHD7>#zTKboX()>FsiRu3OAqf5%&>cZtDk)fm2nkEfMt zTUlgoJ(bXxKlkz7-&&hH@;lXeN}gG^{CKvYVfw*suAHA`m}kVX{!^`J`mW3Ksmn{~ z;ddPt*H@utmT!-De)B8qHv78f@74V}M<)my_*pOCJUM+egI3AZz>^G2K0h;(RFqD4 zpZRRfdTr*xe;%?+WttyX_Xu*#yPX;@y|`|^!?%PUl^wI!iUrD5Iv%sw%@>%lNvSaT z?_z;&y*vN+8Ymt*^H(orclorU?4Y0aM{n8tR;z}8o%z{v=Gsz)85d&oK8U&QVl%w; zRqe-z1;$sC*NaWEi*_!PT&ohS@jj5VFUI|n%>m07VRbrh5A0oiTOjwNNZ|JcGn)=( z6}Mlj2)`F!HZdqkiDy!%QT5L?;WuwN&$!AIz_)b&t7{1k;tX4b0wmU3-*jnwneg8y zW_nuPn&$~OkA$ZG^)x&9xIl72ko4Qbxwq$RxcRr`Vfkynz$okRjKHlv4?=FaykJY1 zJO4@hz0JKpGrs@&`E}(UJ7$LYH&(CclgxUvNO89=x8}3k92IMf&V7^lIgOq3aOB26 z3adn$8QFAO*?704tm+dF)QbHab9l+7Q->Q^mK7oKBx z5EJP?`0Kal-*?8hXPVZ!mOfb%JpaL*M!orL-~X&q5tZ$Fwr{0C@yr%GajWGsABr_N ziM}{v7qZPVMs1qVg6c!b_N&*QDQI*$!Si$q`{7#o#ooIb$~SsU6iYJETopX!rFY@> znco8^iEiM0dF-XCq0N=hkN&@Gv}QNtFROajy0uT^F~ipbA{nfi(y#wLSQEzezQFMg z^Nxf)hV7RH&e%B>H#tw>z6$HYFWP{ec7|GTbjB~RqbC?xSZK{ zk5jSw3%TIA3p}iZR>ti8>5%)_mM3kh<)?nPw>g26zDw|(+u^>#H87unH~C{O%ZE$; z1}$?^BEXo&evKst9Jl&1XR4#?j?^XBHl?*E+Zje1?Vp}-gSCgVeA>I;(E5X}j=n zZkcGCD4Sw1b>@foAJX;A*M7e|z57S|{}=C%?Jjo@_`m<(ubuqoo!O=KcP&3WeZxL*ME9$`(yfs4cD#Jo=r+}solM&s3+l)?yD8Wi_X9QmdnmGt<&MG zfX!(^J57efq~tPw}6tZYx;dHeSBY0G=xH&#_dJlgfGa?O^@s&kHR(TG--2$GG_ zdhmAJt6R-0z1cTSKYZow&)_YBYr>{QZd-jWExql%#kvogd`yyR=QcO)<7o-s7`5t@ z`4O3gJ8nrH*eCptXIIe*xn{;lkB*9_|A~TTOl`t9+oU(Y_D$;CqN=qu&>?bwqoGWFylEsgpsP>v~f%<|O)b4U*@yQmRq=|RZrDxhjzsm028Mf0YtNDpd z{+{FCcCtK}TwTk?V7Ku)$0p;17>|>xy({uhxn8+ZV&>4Rw^7~o<&pz0Oj(&z|L62X z$$z!K`^2SZoBUMyH9{(yf?;NQvk!CT=CLZVzWtgeb*YXabn(jOL#uvmTQuuo-KO>UU;-O^H*1*M!Z#lW>UJg;FLCX1Ob`)hn9X~kXl;LKiud~3Dp zfbzX3xeDz?EVcOgZC0$e6`m%m&gOlf^yo^yxlDl!3!kL;R!ed;U5s&Gy=hBgz|k|! zo99f?W}M=9`hH*q+wNY!zGFLmQrSHg@f^ROli}&S{o)ddE5G=;~wBs_z%L?B-mgkkHy% z_9$yb(wvCnN}HP#7&3fcKmV+AforM!^}Sy>6&jhf*1Gm=y>i95@6&=$dA}ukdbVBT zIdbBjh|CuTsbAXa8|Dgitdov(=t;I?*x=!KbJmv!q1CL*9(zf*d|LLPGV;lt_U6jD zwuYbzQ{P#}3P3!48;AH(}GiSX8^XUzpR~{cY{>jE+x}bgV<;4@< zPN+K)9)DN4qo%U%<;?&0UmpB_++yy%s%QU~|9z~pGK1@$i0Fs9SDul1w*}danF@@! zZwd=np4;-;oo((xsYi+1L)rU3@Ar6o^tm*{EN+g_=dYz_MELvnfBYEDs4uikx;@n5 zv%a56U%PSoJ%g!1lm{FAv|T zUUin9ks4ggo*nRH@utn5$5yhOHsUP!Q2s%EO~8B}+nZTQu~Dzv>)x(@{?_4@`NdS$ z&sXLrNKXC!fh){I_IJ*-^9PP_9N)|4fi7sfK9Y0dH{dM39 znz~x6_2(H5sDGbTx*>PX^X9;uBAcf%&(!1?C(pTEa>R`7Zo&V;6WZDOf*X>S1m17a zsV%PUm#JfURJ>!}npX=Fa#IYL<0U=v7R)>pBA~M&LOSPGAm5WCK}|LuVP(1w2D87f z>`{pFb-ZBUV7gdQv?yBKqKr|@k@a^%w5xNNf8@2z?6R{34&8R_ep@mrc)Nh3uF;GI z-dY+juSZW>bi?@N$&3j5n2_~#uGSW9f$EF?IJQ*2-zt6PSlGf1u2af7?w*+G=e%!2 zsASVp?{5ar=3M2D=Gqwlern{$60P@g2M#!7E`NPf+gtmbzP$TMr+p0jSY!+M>@$lb z9X84aIDa_QP~doa(c|CmU2Wq9CH!tadcVrS?VR@Qvm4imC~#(M(l>k+J=IgUNaJOM z8_yR_A$|BJ?mJye7Qs4yLWHjusAV2 zkbVCgfgkC!v)f)aOmJJrt8kpZN}NG=o8Xhc6CW9tt25t_+;YSC`|^FWOA^_(HFv42 z)Svbf5eit7fBxXC(Cd}f6BZV;gx>p;X%z9LCgI+X2W4lCn$o{7UUt~F=3_y^Wggj# zHLoh{+n4oxpZ)FaJH{oFtA#sWeOalj;C>{;bItMK;{wvV+m|p;{>3?~|LxjSH+LPM ze_`^3N{52k?}M)k?u!W9oI119E8Su8JkDoZE=$@je#@|V%5%BoS-G~6+V4LWHoUuc zWb(ULetavlro_56^6WKM;FG9`fBR{f?X>M5`EL4EO%MHVXnjpDDTy;?VemRW&7E$m zHvL?-VVcD2h;9)+C7F$9mYHs>O$ZLHN)BUw74O=9{JW$=Q9y&4e)8Yv=O4Z>=gfcj z?+A~>&7(qBq9%3(ca^ff+_3fSTC0;D31$3CBX2L-m~yN;A*D4#E86etPXD7{mpxi9 zW4&f8$2`vC8Cow_eGQF1{`%m-CZqQU&l?DvXUmnQJ=J=3u%2nt3lZa%6GwJMPCozb z)aTQ`6}ztO@tRx`?_49;_u5hN$ZNa&$p@yM`WrpPusiVi8nev2a;*)?FJFKDegFUJ z6LI#od;9Butgcs=lYcMr$KIIZZ0+TPYj^!K`S+n;GT_>>N#eTViiR@TMgL9P@>%#o zHyucym2z0DkF~Ch)98+N_Cdp~x^>U0M6d6HN9gR>X+BW6amReG4;#ckywH(9egFLNe=B|BQnoLD=bw{*K4SmPT>{$WNiSVrtw)8wqJU|_A#=Z6lG-8o_^Faz&*xUN_`Bjo zbNb&mxK3dy+_c2)muX6apEcKhvSUKg1kKmSVivH6i}Gu4>V4@z6D48Jm``Pn@7Cpx0VHH)-fA4)jP{zoAC zP`_%&vYhnGzXkq0_$%C$Una+~%5S%rrN{%(wBXsV*k_6?TUf@X5EDK}+;j1UO`#V8 zWL&4s@yqmG{W|W=f`)wuEDmXuJ!fk(VQlJUw4Cs(v(bE?0%PYXXXV!4KmOkJID4w3 zC2DW$lseseQ%qmItcZ^+4r~6~{7~TWkG;&<3`zx_7w2|uy8hi_f%A#iCtA$=SMvRx z^!0oBsb!mYGo4=j?Cyr$zA_DhhI(4BQ?>bc&&4yT%%0jkwU;}vh;vK89ro*yG1eM~ z-}@BqG+J44@4_>_t)(Bj`)xKjs)}ZWXto`Ff4gEIlSESOjLoIKAuee`(QcQbJ3q=vme|StkN|9zeGcl^-|Nps}lA9uIJgWGN|z0kXRgR_Wab> zEi+UV|1>|+C}`#rc>nh4Q`3Eae=uczbJ(P|kYldD3si5j_&pF>qV=m&}}U zJ6PKtc#C<#slIJDEc24DiWnSD+;<|>n!@vmbxF6c%(k@mLqSDLA+LIi`42tbHR{+r*;d`bo<>fW2Iy zEGqDKNZQLQf=8okf&v;6mc01+WQp{GkCsAOtVSB9#~i<{j49*mT&^UAsO+~U~ZhwG0N{?zJX5w1M5d_i*O{GYFEL;la7AN=9{e%H7ES2D-j|JpnM zOSQ;vXU0ImjL!D~ucOMYY@9ILL3&R(Q)bfjfX}XWO!vw!RHZhYSnYNB$m>W(?%dm= zzaQStw?FpUbL(AYi7c;_8$TvHIs|U5es@0QhUlt&>YE=vK5l$#N~=kXn?qZ6O#9l0 zzpCBqvm3Nq)0cS(RQ@mCF-LQiY332HLsf#o=|SyNLQM(`9=g0|pZmM-^YljxS{w2M zkIjf~`nER0!os^$C5fYr*M;YIWTghjrITNB<{Xasee-Un*yc5pWT&m2a683Jz@F0-DWbsdG`9+^0#5rBP#0IZv8R}EM0y|X>R1T9FGO;&s<|C7TBF^54yxW&+T43 zm-e|Be!0FaD~spfe*DnBYkuty`y+q9ginl_z1+E`t~LtXMEtgCp_Iw5j)K_iyQ^g4 zxV$VQ+F!`MSa9l32y0u>7sIIkXUyrp;&zPy8^io{mb%02l(P!x_lbcR09HlGH%J{KtQCl*xI6o@w zs)x9$Y<=U4j=erdWR;^$IG3g!XGxj2*-Y~$Yvg@?sg-k!FY%qOS$68{9xn!s5{b*N zwbx}HODy7H54N$0{LJ-nhRugCtK1W-JUiN(`guONhY9+fW;~~NtU7tG&8s!)m$cNc zUMpQuox(fkY^%`sU0O2~Po0}(p8B!i!zImm??lcVIH_=VTgo?<={5m2=buVPPi=N_ zpUuuZmpAR$tQTMM!iyIf+ef`tsZPH7C$3_zKvd61J(jud0$@D8=XMJVGp%u1+B@;!%sjrN z@Al;y3*UUQxg2@QCnGC(%j`GlOBe7TotKx-dKI@#OmMXz#W>RZ!o%&I&I`lo`zEZ1kdoLgPRcLTf z<1pXGZ+u)lzp89yc23JTid&JacPstjn<)=l=bT==u2_EY`SReO9kO9-qR;WWxtmSv zvpM?igi=95x!~&M2jdQ`j1zTf+ZEg5*wgEnxg))#C;j&AVyhFWZ__4!ej1kZa1*b^ zfuM8OPNf?J9#S<8+IIQYoYeoKZ?>ki*dD#~f3HYWU2sjKL$gD~!MzcGdLCySJ2Lm$ zHIcH4MD;DxBKzNLT=b7=)1Km{smqQP`A%n?(&aiuA)xH|2?x>d?|B|QJa+Kh|93mx zZzuBaOJ1Lv_P+9c{M49)UXCY1H;kChswsLfJ3s8xaonxa#&_VBLhZF%;?AAY2fOC` zI&O$$&{KA@bm9M3|3Uuv-@k_U>OZby|G!_x|NT6HFX_+bKXxsX{XXH<=ZU^{i)S-# zI=@!4V=?c#so$2|$thiv=(8g8(jDjEO8NSqr^`PURESqEFlc=E`D%Fo4Yu>=^FQAH z|0Vv&XYccW$`8CfzW;ms64&Q5@`^29+>*4uB*gVgSVsHir9~>2*uxq|*xESN6a8{O4@u5qb_l_=RyQ_ZU?5}S9Ui|t9 z%kNuB>|NilHQlx_|KW9E&2R0Mo9t)A9DKgrOkhh&%`>T**cSe^pFXa$IJ`H!@Oqwf zN3nH0KSR*$1FJPYGwiw{J#Vhki5EL3Mc!n*$eBBhe^tnY^OG7sW*t}@|9rxJ`^C92 z(r1EK{r-H$y0vk}qy;JsGK`yEuFlQ#pZ-2DQt)1Jr{b;7|8iUJPg(mdQpvh?@=8y4 zh1MSNpEHFf$=u}^$;jSXTziM%*pBxy?wjB0@AQvPe&4m}NJitSi_dl}-@oPRjm#{z zD;4`D2=45wl$(D%D#eN8`Qcq${4c7%JY{+Iy71B+z6<{h*GzS=DW0~!XhOUyn|xky zdi1=F8FMuZq~hy&Uh75#H{=}<@%d%b#_06Na&>ZuT98)lq@sw!bJ@!jTAvzi(M>-h zuBgz_aJrD)k!?r*0*fYvZ%xnl%>TdmM|AyX@kisB9sOu=GihAEYlGR!mE{$&qJKDi zZd7o{zn6?iJAZ4*B*o=(O;a*&d`h@kGQnpFcW7$Yx47erj_0qDUBeL->MpWs?xYob zYmTWzWpmXqcAh)jX6xFxNPVvC$<3SOIc9H;2oKn-5M^;z;D=|Rs@B_U1=%W>+_&G| zs8^D4sdD9WIR^c|GyC{uw7(Slr!_P!D!%vKn6-Stgxgo{=3TTfzw|HPO0lKtZQQ+m zk_ik~C#GgRzx^xE+O^1PoxElL%)Nfj)fOKr^-X@9*ris*x6wdHK-Q+H;X%oSzQ}3I zZ){%8*q&PZuc7*85W{kN=UkB<%WnzUuNi-rd>8+<^!&zWJACp_nHX3+;axH9B4g=? zo19->1aLR{ym)?l1^>q?$7R-2le_1n?Fm1Wkn-~WwaacjI?*3CB+h-P(rz7}5~QG< znpJZmQtG>x`g)Cy%wcoY|b2U#-JSV>5#Ho}cFD_&4y^Os4p?OIePj)(PuG7CY#u)6 zb<)y5kIM4Of7osgFVgw=wS8Z@{RK%LW{c_u-v_CpJD&IaD-o{AFS>V6e@A{7^Q6M1y4MA zVD-9q;fCI6i@4@7zT4A!+Wm)*-o#ChU(X8K*m1yX!Q2@SV*CqVoVT7nKY49obzkXk ziLfta21gtk7iBh=^*l)8OjF@*d@kb7qMg-zImTGv&`;;LO`)pRGD4}7HtkWqUKcds z@;ax$zdF_PJ{KN|YP%s?qQnx#-mIE6DJHRgCa(xbxQ@^>hC@#o9i@sZ=G!OPPkYbd zFJ)qIB0|Jxs)6>RqwcK#i+Q-dypWH7`RCg9LfQ0s%lXAM|Jm*3`}z4le)*?a_w@R| zIR1b46*v5Q>0iuO)-a)AU(*ZEGOOGZS_@95vM1G=xVW8%r*-(UDmN%uKh#Mhwo zCNAXFn)54p^Jlv~XghdFX#HLNA6!-fmS&nNS<)A#TwF5kd?`byfKFWeRfBUbgEqM4G>6uV0>#_Sr>Jf$ime7G{liJnhZ@ zLN`eoWeQz!eBiaqxnS=7`M;&#EOS#+o+-Mld$XS0^!W7&fv%O$?3}*Uw8e*qGwpur zRb?@QjmdlZWATEU+uq6NKJS-$|NF*Q8;kmw^*hUV`(LzY-jHze(wY8CmM2Z~9GdI6 zy-d%|X}=QJxMBIs0ApbZfoVP$cW(K7a?9#%-+kWYd}LJhiV^4c*|g-xqb(=zdo&)| zK5@f_X-w7%UoHL5GWu|6i3qvVHmd6Rscc{rmGPByK)qgZ~>-*>qN`B|jINRR;U9=q_1jpi;7Qx@u_o}1P+_*6MtmLVq8%?o3B|}=I*jw&r3&G(wJ=RxxGa#*{g)* zk|s@l{hlxAw$Wz0{mUm$j9j{A?|hLtOS}yxU+N7AJrX7xxZLWg zz3OAg?OATBx73auT+n0|#Odz4Kl{6g0iXJuZv8_ymkGx2bTcWFU%cVpeaXdYBD;E{ z@~k#pz3HIc+s<_7*sV~uocyZajo&R!GG=d9S7IxblI~Ti@s(!F`+eexK{ETV%-{f6M(?@+*fRqhmXEa$JTp2 z*L$09hppAF<6ikF%qdOn2qSNH>UG2E3CuhAWMBXAlZaisxbwHMN5STIchihAc2~+L z3AWz9cVwT%kvrEf-2Jro$IjpXx7?-s|EssWw|DpJ#>mvO^>?Sf`?)9gzPTQM(9dwuskKfhkm+UokFsLk*G`)}Y|=y3nwYyJH-Oc6gn{V}ZjAuai5ztNBXALW_8EO)YI zoFpqUQB>3Xx5(V=u(ewy7cgw!_J;ZQyrMU5Gy6~Hr~EFgi;TRN>)YJ0cSb7PMWQ=6$LNb(a~gkN>c4yAluWgZ*s~W+w>WA*vOyXIA8cn^|mwXlnW1k zpOC8Tus8O2r1s+00~VSOX5Z+1SR|*Td;d3U^?cbCca{Y+++Aa96?j27o8!%H@ta5P zeAnk{b2YV3abF(3Q>gA+SCB`B*1?%e<5+I+d02FQo&29W@Q6F3fY`*Z@0T=g%1IRU z+aU9H{{is;agq6%+i$5&K2S9OHCuzqmd@IBW-}HpVf`DPRsKZMEiwEz!zTM1=D|B$ zpKjRr^}wGiY78Zpsu@px?2+`Da`yR2pKVzaJl*f>98K?!asFw|@Jj4aijvA{27TEB z`O8h`RW~KSO?V%6)$RA^*ORM!KmPpcxmRMwl8F&Vc5Ks#{IFr-LY2}Q-f#26&9TqG7tIZPu^{bjM)@NUd&z4_Bi=eb78rP@C| zvE_Evk&yTCXPRbDi(?|Qu^{P2Cp@8=K5EM*B#dEy>$ z?MT3k*!Q9=Az#u@1c(OmEmu0S`%}UF=szp&8yfvgzb71!V*SAELG_L!&B1-aCvGx6 z-RF=a;M2O`hoo`juC}=mmfu|2*<@$gE;#?b>V@Re`9EKAe>0K``H;2VHRB!I1V!c( zl~v-$AIEpLAJ+e(^6q<5SFETQ`&Tus(tp1LChncteVXB%&4pPvlun&#-q#_-rFgrb z$s~_yw%Xe8%ks4wHr_jzb(-g2#A+Q`Zr0$yIdl2@mdol}pHQB?Z@1dnRK=hBx87sf zb1!-o|F!=?H)F0(%5z-NzwWlF>C_k#v7N6gJzi#WU3$>-bVhoc;`I+UCmna6U{syT zpRK#&9Y>5s$GWV)$ziQ89xZs_dBr#JZ*JS^r}A|>?_MnONIQPS=bnW0RXg+k*4(o{ z*!NWjEPuM-XgSlp2Qtm;EEF{!=gYpx;^$1raMr!ex7O&(iAO(fEtC88{Y;aDUKO@pJ7t>MEzY$5oo+9DW;5w!**1y2E!`Y-?C+<0 zJEy0wT_IbM^=gUZ@y~i~TxEfhEm@aditL)U>HhDHhc;@9MW6ABv&^dDVS7@$^l}ir%i`+h?F$RP zv_R4I#(CLQ-C+mr@FmZi#lpOEnhMKHK911Wf1a&*8najE%*V)-<98p&^91-ME_1Pq zPy1K@;qU()?Ek-ieD`;{?T`QMwmQFxS6AWq;s3+i`M=*+ zZJ2yBb&cZm4K4q2y%h@7p49Ky%pFm!Gk38a-`7|-*+0IWiswY<%yr)=f3Kv@QUV)9Kk8?dBOPMPF2ri%?l+vvQ8k`H7+5)qeY5G(Ts~Y{(@RmxyYn(3-gOP75ByRmiVqr$yxg2 z-lZqkbBao(-g@88-RPJZw?AIp`j|$teNN@C6Qxq=`97zPM7xM)Kj=MZULv<`gTi}( zdby|KQ&lJ5YD-nH{&dvIlW%&d3-|Q+4YkFSbIU7z7|+gU`0jLDZDaI?=MHfj^k4kf z{M5T$W7}Q1$yy8Me>L2A=y{&RH8(RUjo^>ZGFge>>Wn$W|R zRC(>+j{Xb|(Rn2+4y@C^!k1tzVL4&d+GQ2}%*j?&nG3GJ?wsz;%yaabnUVM8SHCMW zG%ZX%Mf=vzqH6*Rj4H={HkB*)+7*-rtD)rrG!243BMEX&b@mtE_kf?*`b2RdQ(k=(l3{=&$Ig9_$V~r)7d1v z2b63`|I)*sZWI2W1a%^d;QGUxe=YpV8 zeVMzJ%Dec+i4Lq>td`E36a6lJ;+@6m`ns=Cf6lH=+&2mrMD_gpa+c-)gvWx+0t@(^ z^{4uj^vO5NSS`#;JlU|p^-j2=1y=`c4v3q$IMvp?Ml_E z9-X{o?PD5RsT{TIr>{aOi_?}(=`(X=Vm&7}bBp#$%chF>?7f^06Tfw_neSnlIMsKf?RLhTUwJ*bO$_qM z4AopFj5n?=F?+rzHPhqjkDcf4I_`D25V(8ai+NE!53VegS@2x`#GV)D%lg(ouK!d2 zH?QXXUrwg{tv3Zr7dTc&J$WK^LDsMI;;gI18#lZ4Z1p}qd1mZAK4z_JLa%Gf-nd?N z=YNx6=_6?+%P-O;>-cfi*0T(odP;X`NWZR1V%1I!=UT2SV!TFhL$dXWgykYJ-%Ui$ zrf>qFogjddTJ7VK9n*mor3b)@h0{6yacC&HEpNbhO+eI{C5 z`RaqyOAoMZ?s*gV;G@;C>Ym7*FLMlM$nMaz}1%Sa8^NMX8eg?gd+p z-|apyYu3*6$U?K`SkGlg&a`wNnY6l8Q*2#uR$NGfVDaRzppf3vCOJYkMY1;PH1t>R zu75uDjrX*oCI1&MC~WX@z4=u3!>v-8T}w|D3*42R^=;NM=ie0!3m3H|7e zm3W)I_WlR>dT8#gRySuUe}7lGxS~C3@7BO<4bhu3``(&ptY5M!JYBbS(WZCW>o;`S z<)~h+dCN9kUTYIL9IZgN{r zarNN`osskQmGR47aqPA-G;%rIW*~abW}SLne&0#=voD<&#_4J&V&=dC6S`1(srIS5XG0cpIBbT%3(zxnJ7( zEi;!zKI7+O`RwpB_UR7~QJeQ`C#VKZSoqHI?w>2$J^3G4Z`k2`es>-FDV-~98#l>U z-&mKB^zzB|mx7B@Z|+)=x4!6!jK=y)k2JPSUFm%B`_DaQrPRN0jqem>b7jFew}OP*28Gxy~&*O{f9hZK#aHq>ScJA7ZeZKB-snPw-qK4F-$ zj;UwQg!RdOyz6$RnNGRLx6xhV!K6jExo+n_`(+*b&!F!A;cT1l4BvDAN{M8hdn^;C z{oH)T636(^Jz^6w*D^&Ebr}~V|NYLvH+!Ze--V-Uhvjx%zaJTO@W6$cI~T~VVZSw@ zM2CCoe#LW7^@O9IrmXOBJQi~I_yNbRFUe;$)z7BE{*}}g*G03Z zhd$W$ot=4ZVsY2Ar)(2u{+3z(;QryeLht9jdpv#O&-wz+pJgL z-Dmr!FJ(_XYL+iu*1a@OD_P?k=N|Xc-lT2JjhC;y`}ydvt;2yeKmWhI|K~Z+zxz>t zejKlFdmx-_T-eWlyXBT0YjJ7V(TT>-!q>5<>^#b~`Dg}{&n+=$hr$=N74;w2Z0}<~ z@5LO+la#UFh+~?>>y(3*Ywu3*Yk2kG^qexq<36RQL!T!lJ2kGZ;cW`6l)L|U7Xx<} zgW-+zG9Jk)#S_2OAHTIMo94s2S;oL$NZ5t@z!moyVp+#UHeS4<)@!9CX`vRocRv5j zn|z%@?3yoqwLZS#Qi#u){6o`A=w_18+usG}gWpWax82-ScaGz_=<`FVR@^m`1dL`DQ@tJH7FC&Lm>DqngKSwmD zJu$dkf6Qv->=xC%x1_v9IV+wN%RXiQQg}+w-}Zw(d#3f?T8@W%?%b|;)B0RwzMV$F z%={|h3xDQqvt(JeUVMYUW=xG-y6D@ve@#?V=Wr}y7JgQI=)K_9dWN+}J*_!wcK=o7 zf4@OMWAzrfjpmz|Fh4zbiIZ`IrEawnU;6wvd?x%$HaCjh{vPAZzH*?GTi>J{BuRduN;O!G0LaV#l0SI0+r54`@j3G;A9tPTW*^%EKhamJ{QK8GIn{g_mHPe-*eT!>!t5nf4j>%Rd;i=v&H!>hL;)*pY3?w$|kXv_2m}Pi+?MA zc#B?h>NMsTy!6<@e8!|deTQwIDa-CDv3aI;Q2WdJ+Rp9$|E=uy{k>gR_SaLsf3l2U zrZ|Jm#a&U$7KR^=ioD` zzDq7HUYh#ZX;!;^q)5UnPJ=@~SMr$LH(h4kVQ}=E*n`Hf(EEM=quyk%uspEq#e>uh zZbD90*3Tn0*zwowduA3Qenryh1Lu^F!m>Jw?^JI`p0adeFx8yBs?ueC9MtDR!Ob=tm*nI+~_!PzAj4QDKPF5e@>RCBIxmZr$joAUj<#*_G*-PO#U z*ne}i3!jl)%kOr_zes9%qBV!kJV(c8`#$QFSZ^vxf8`LhFVE)N8QHnHYxZ2>FN|LO zCx6%d>oHT6C-v`~5EU=#v*m0KU!P{n-nPTu%LV(kHLSXLN=RWbv%TexA|FW!?SSml zCoa4zUC(_Z^29pdB@s=>x}IM)E%au8$NFaBT(47xJ1)O}zs1cpQZ}SE{bB#c^jA>^ z90hyrUN2o=yMFK2=l?2xs_A{zxnO$#_o7R)nPp2;&qpqQW4fr+SmaFU`*-Z}sqxx+ z><8T6Nt!fPK6Pj{>v=uB|-c(am4 zn4M+QpP!A{p63JEZe;HIEWXJ$Yk2b4|0tGje89tC`abXK zjaiPjVqRxD%bA|raxvBBc-vQ=MBA%7Ci`wG(0%szfz9Pv%(D;t658fy$^Sj^Rr%@X z4eyiW-zt^`#s?XcIL{(A(8i$f=L| zox>G4?o9l<`qM3zLuu>TfB$~}qV4<68Rk>3sW2}!=)AhEwxZx~YbwvS{7U^7X@P4Z zQw=WMJM#Sc@=w2bPSzx?FL9Zu8=$Qy7w{{#P~e0Q!=|5$HYHEaJvGZhLL-#VdGbL% z#oJ+t{GGgpJG6^tJzz3bI)7w)x=fRRe%D;LGhzmnq4JOTj5Pi<-@Ba4lxq36eW$!d z`{DCn6{=ocKV^4ZKjew-n(2NirA)1HUwtGO-#;6$B>!$;O~o6x9m>z-19 zVwqbcc3S0%@sk5N7F$;A$!65548FQ*hc{2^^JNdXZ{C`a5a1*kesRXH^lG+A3=Uk} zdwJs-9QoTjGjbMPbxq}3ob2R$dw$03Jjbs&xs#G>Ixo&LbQEBboqei0_m8Er?zaPM zKMvk;ocdJuUF~USZM~4{v*|u>8@KisD?JildER=3yY{X<$9dOq+tO5^qujubaeQ zDul>&P1dLly?It)bMu$SrS@Ou-rXhGd|1liwCQ?BJLVN96_2m(_h&m*@Pr}CkYRn* zISIyUmYX)*5{9mP&4vsaygqvlPpsXM=-d(}CaKmISreVbG;NpU!)dv%{f_gOmS@QH zCv{b>do35T_HLx)+zA36g|-XNs%^1j>N^p)?ZARf34MN1-QF$LX}jBQ-F(Dju_>EN z`tIk#CmO}N1wG3qrrych)VF12k>b>|p3lGcy?T7(%JwM{+UCaHZT7266bfFepAkNL zfpJQB-$Sv*Ycf)HpZF!E%p3JGa`pzc=IK_~nwUEj177@}+jnGYkxkg9@L8MAaO$N# z*q?JVDzIVG+z4aO1APINE@_g^PMQ1CQ_e4c=n=HUSJi|`?|V-{bF%kmlhc9Ml~Wvy zPwf$j(YunDpn3h+nyYT1GZ`IB(l$rfDR-5Ay)2(mz2{%|b-&wlljaA{5Ds1>>!Sar zectDdPpgz(WIg@zzDe(&9NX$*cEkD)&HLrPfA{A9wg1Jz|M%a{tiSxv{@a83^Gnm2 z*XLe8$Cul2u!4)#@$!w$hZ#F&>(r#)t-riu)>)%h*P~m{|GPT<{fC*)``3Sr-v9Hq z?dSh8%P&jW|NLt|^?0t^fxf5ES&)q71q4qi7W4GR>ef^uy|DLMja4WBj%^~dO!GK%$XD+Hw zG35+7w`qIT8}I*|-(%Dk-wWNiz+vV?V-5v}zh6r0?as719#lOclMp`n=Y|QU)9hwR zxaZE^%4>4%?>%$FT}jscrVk&V*>)`HG)MVonG^4%lh{73dAWI_L&>k8z@+pEbCRz+ z2i%Tg{l7Rhvus z0nJ-Eq@B|og>v^-lplzw`EhYPYZj4Y4z#frXZ5;#1ySRrhcWCt6AeK$j05o9smu6?nICbxVR zPEwQ7VLsyYi;wR}YvYeoRmy2GPZ#956n*!p{9w~?ke}^;Z;7SUzSzJSAwinER_~ki zs75&S)I>>R+nPh={)aU*oL6fUCGC>la`)wj8@$JM|9F)CKl~%N{r}>R_W$bt-_8qv zA@iuf?{JNU(*5aQ3w_yth28Ah5F3AhVZ~p8SpN`lewiJMx}X1D`962zrkA@WY90Hv zzN2XN!4C(+Of2~RNy*w;yvx44<8q>#wBnbVT4(+A3(r6Q?OYTuvgPrfXaOGIFP9_u z=a**v{cvuL`JCx%cAwh8aAg(8wdzbkpK}I3E=;J1P1Igw7|N&hdydTX^^ZPw|L5Hl zc)#xR`rm(Ro!M1ftld5=&|?m;P-9kkxko^iE9k_8t)9y>YkSRBWKL#c)w-Z}Q!VHz zQ)NK@iHsfFt}_LcgcaF*{vURMEk5FRpQ&SO+9mhyeg4@G)w3im_&<%Tw=8YmX%c!mo)`8iCP(SIscz$B>af1{S6$#q5J&Lj z*y^5du5W%F&`DcttQ?@%y!Kh)`Scl~VH26+90MIMZIVB+z`^s7$l;3@EH<>6d^@me ziePYGp`(GU^1OnxaX-%~XurPtgE@`&&+lWm_V0QBld)KgsZ~KOB;E3jV*8|XM}K`w zH}oo;snwyqyzP51T9wvi#Kc>9hC^qH$n%X}e zvr{)rEYsLLsm3Jjiqx&yn!l&+^ zN6DZgF4irXDqBKI^$~n zll!H5ttC-2?&fSXHuXC=@9AH?_3NwtuV&IXcVEurVi~N3*qZW0)>% zd2}aQM}CJugG1(GCKH?N#DcIBaZmo7IozX`;oWx2)u-){Q0rTd)3ew19$q?Ojx+OA z-&_sLcUp!`c@Avd?*q&Z_tdo(qJ-qr;!@Z9h~ zD_TP^mA&An*otSX?QCM2BJ&Sy6|U{s*1~FQna_T!`o{{b;x3NOH}1sc8$3>_KDg|F z*NMXP*#{LZUNlJVw`a-x%+m6`k0JcU+%21P96NZeGk)&;|Nf=*YFYWyllvUks-|tc zyzJVkl#52`vt8e^c0BBKO#QuVYWMRSdb9ekOT6*C(Rh5r3&pd{Ut_$kT{*uc_szGZ z#kZRl-yeqM!@ojrYU`K9k?{@xrvH$<>|69TS@&2V3K1EwU%$O>g{`bO-stS%;)1(#l|K7`#?33KF@!jOotb#8SFNj)2-L~6TnI7uc^6Gc5mH5|=r<)CSEckr1 zDu~4(ARyFC$$0Imuj%sNZ5K1L?Df%Noxt3n8F6^kCTEsYNhRy_k7aXibG#K;xaIw< zZ`-O2eifvo^*oOM*S%k){$=`qFO|>@d3;m!EKF{1IwbJ_!x#`(o)n*i@ zX{7SiU^S zI(O_Mr)QVlS2eBIY>prIzbfWB(R_1pVDW96cBa=)?i>yEQ)!t!rS?F5`af%qg1#Or z2AAs_SHHXMcUhxRXoVtc3Rj=xjx($8Tz+SAZC#Pc8;*6#4NG!Q`gdGi+`xFSsplC1S;ruA zN5_XcbNR14&yP4tL==p4>B_Pe#0JX~FT zTHtWjx|!>FYS@3fn?-ItYV$sa=gMyBy+=58Hhk%|-E`V_?Uxf@lK0wcX3ROhVez*p zuGhfmu3zwuXn_%C<(|5tPQUpH01#a8%#3U!S!yztED!wmiR z&y(D1f*e)}tuf-2wmhSJY@(Y%z1er;hum9#H9xqY|IfhAZvLaUPj&0QyubR2zdG#Z zalwQPU5kJNKPwp~2q&|*e~UhH?^e#Ci0OA@PCw4yl~#8y!H=75c2ZBLo}XacrmhX! zm-IiFdVbR}*)J@~y58?%-c4}4oe+IiF8AC|i}ZB1jt#xv3%J!vO*Iz3QP~pK{cd%O zsanQq?YC|#eD#`=n0APS8qb{-#U5-V#$qSJywp`U-FcV!eBh! z7WfoZeovKI{=T%}`AT)ys!J^Ax1PF}$+`5zq61t_)7l>9eRJEWJ7>!~PN(4C*Oz9n zsLeXoxK!9Yq0xlz$I^1C)q9@1|MOWYr(+qTq_b`XkIj46yPPsd!l!RDJ-e`k(`bdy z+CIaZTip@Vo6XSt4=XuOftA?KA$Yvxi}VT{%O-?n=H} z#lPCEHs`SOhGg)+KOa7!gp)h+uusg6`pr`cqD|A;baL2}-mt8@ZsgpSoD zKY`W$cC)UTdi8wHuk1V5qwAEjB<KH`0UT!UX?WUXEbnT^c zjm_WHKQ7Pz$6vVjpCM}@+tk&8FSL&+6x7B&-P&L7zvKPu(8xU+Tm@k)Qwt=dUmv>s z(L;?z7Nav9tS=oz`;MO_F>Y#ErDnt~T<&GSi%K#_H0=R$=WxHMV4zU%?xzV(&k?|M&NQ zyMO=x?l1jo)gTmpDduDSvGm?JZb3F^=(Pj?zM)TMyDSK zRO_cW3)pN3GdfG$fp@w`HErq&~`WpUkZaeRwz zX*IMYzX%KEyRw>zy_6wvLC3T%=jlz3uL`1O-TIk$@Z!OxVl6ji>ex!d8<W~|XM|4ZUN z%jUCWb(Od86z2Q2Tw-*Aoqq8&f~-xt!v)?ch$^BTsw9(sXb0hN_<_irl*G)DMnZ8#DKAJfeQ#RsPGy z)1Qw||M4*YPw|ES=hvVAxLE#g;r`=7Vt-i$E|gifeVwzmD!*A`&ver-A``yW%};LV zVA8eZ?>2g+eLuQ?)@61>obX5Mp%hIcoca(Uz zX0om{TKXu#g~51cVC7O_A!*;p$JhSsJapzOLp|4f;ayhj?`FT8So-?lB>ic1TR+;w zB{!#DuAi_}Ded14GlvMnJ#km-rm%-v?9kfYXk8N2SGfOgQqB9j_4lsd|8E!6Ij?7) za`r~{59zm0eGTUE>Zz4|xGqRfIhp&I^*q%RSL`$RO;wFpt|ZCuZu5F!v1WUU!dsCo z^OOE2oWFmRPddL!Z?1IScFT=(lEt~7-s!1at!JI=X61It!AB&sMudIoiyW5;6F$_t zXqwNGS?s%hvSZrbS2D*_v;1w>6U+-_JFP^}^~m+G~1^PFY+!7MJ&JQjWo`&G)kB ziPwG?%3{jh7jVJ% z@!ShlEeA8EM!iu{zOR;6aar?x)Tyee9lmUbrK4vo{KmsL?UngMfzJ+(Z?*We<)RGE zgqp-&oI1C(`7?X8<;x5ACzi=L{M;O=^=!paYlXwp-tNATr~kSkFngx?jrpo8vt5%K z|NdN;pKs+{y&!)6VLuP6^QWzY@&mnl7DU>1b+_)5n3I#fXyu3ds*5_xD%wM4)wf)p ztSS_}NnI$zbE0s4U2sE$%UzySk&xoKrQ0OmBy&t)-SK!wT5j!9#U~Z>GCY1u+^PLK zJ;UR->b1-BzrL@1XnRy=dEa^N)ay$k@9us7?|F8BKzBpa%3UtAl7d^M7Ka|+G?kSHCM-{7Y}mHoHgj4`u~47z-*m?6~`C zUpT84&(VL|c0cD+s%RG5)-Bs|a%+p3SANyLc8M?dSWZ3AUd_YS_+|T^RU$Xt#r6hl z+|?wc^YC~O>jqo4)(s(>XQ{fKc(rNYl&%}+OSp`A_WzGubNGs6SX7?W-JG&<6IWU2F{$4nQ|=X*rC+T&mHzJWr&}*r zlm+%*e*g3ao9nw1$Ambv+Kt}V@2-(ed}w`rk9p8O#*i0l6l_h{jaZK@xxjbli(*+V zxAopr7et%RFl3+Rx%Gd~mjyfD|6fuV%%tqSXWs7G!e^$(r!cjyjhLT$S*)n-Y~(|= z--XI5T#eT|%)Wgv6DoS~At;TJCo@{#>VMOLjv2;3zyJJU@y+FB_W$4ZFJ}IiOeW82=PhJM>{vd@A$bLlUw4Se%2+$wn) zE_`|2&Atn4<}5RBzFOa(&2J>}=f6SRy!gj&zna$lnQZ?y*?R%Y+k;EbU%v1$<)E>X z!?rqJuMJxRq6+#P&!0El+Gv8>YuTHA-)8;}b(FbwuSl(@V(O;qccL2qF0V_e zKL020!#|-I&)Y(Jm$kO^C)`?b+pACb+&lY=|NM*pGAz5>BP}BOHvHaXj**VyYH)Z%k@`JS=TabJ{)NO;P=}7UlK~X_Wzv!cj}Mr|Mwl8 z|L36XslO53^;7nC2s%9fXJPYK##^sXwx|B*viRy=#fb3If8Q(h7Vmwny!pyD!`gYz z_HBROzS!%)KGA{)OQv|$->E8`Qz-wEpXcnf)eRT6{hlSkar=!xM8R>>6w_+f`DaCn zB)ZEFPHGNV^ju{3f+xuV{}ZNGE;t|k%suAzE~ALuQ@_5=VVC?=9G{$CbVi~(+cra0 z#-%}9Dyy-BLH&zN=Wl(>=j>}&YuB!1$zH&}nJL5j!4k=Y?4&l)X`lJb*~*lT#T3+j zpE~nj{KR)G2Xq?)uCeU)e079jVntbM=AB*hwyeMLPT;|=89G-sM}FA6FCpY^2Jf6r z=RI%L{kU<-TO-F;_H*?yflG#`O>^x3eSUqpsy2yyS#6qHkaRa!VT$H@G1bh(S=#^S&i*M-9W5{Y z&NpOX@2lUJBp)o?IqBn-8|G!NkCn9=+_k(@zU9!yB?ljspEN9;a7}jkFGTFURX;AjuFh`3-ZV!3UaRiAF;%SUn&R~-wzrOanD1ubuT}gZa`ycFJ$sE7YPW=B z9e!_qDkkrkcl(PI+h&GdIQ;#w%=^vk-vZAsjCwNBQ|f!huUT`ZZR*zEnJfCQHzz3I zJEI-%ZWaNN0)wPm4|Bz?YV4G>S<=~`6E%5)$hLyVfBFtv9C|7wmXlrQ_x5+0ah`!B z8_$=UX#oWmOWeeK+H;d5d^hSUd++?XMqIcp@@KHg)E51~(!c!e!c+dt^U>SrZQy)FA#mu?4C8DCYFEL zRv!_NdV9#MV|LR|#p5$BzdN&dU21LXmh``o=4%5rCi)9K)jE?=_%^6GMSL^w+o_x0 zpMUnCyP;vLn1|y%W2WQrN>iiJ5deeX7zf+rU z8Tqv(%n7|(x$g5O&)}Btp^;rJ2Xe38klE0(|Am6bwA2sfd0*2fhHTZ5ej~=#IH!m$ zLUK>-$A7Ulb{YCBrt~%HS)09CD$H8Pu#3N=uGiLJbqQbAd+ie6ignWjUsUDp+`?*R zJUyMQtX$`6$;yS_Yk#q3v;X>k|9}5~y}DoO`@8SGxg*8y`Nijzn?jx2|8uI(KU`qg zw#&apI#pe8ap=a==`qsxQzW|1JKy|$FvIY`)6IWZ?XP|-vT4E->#Tz#h-m-QLVV7IC-K9`a_ zqh)c_|DT8Umf8Hc^J&-fo$l9;DDu>#E$BClyXhs^&{25y3n#a$)K0srGqq2!Jt>|XkC52lU@^?!fXKV?Zv)(n;jrqt*rv9|){&SK!3ftbUv8v|y z@p$K1{tl@CtNbynTJ929Ui%im*oy|-(m!HWR#C?5l z)gWlWBHTQC?~&%~=lS>}{4cMWcSTWZkN6D!4>zv6Wz6-ze8V!Ar6+gI*V+8{YNlL| z{^ht&Cu`;O*Uu)H&d%Yyeq>)_TBu*N!ESD;UAIne{L432aK)6@`@A-PKGw5VR(*4n z%$6NJ?dK*7)by-=S#s{)Wy_`KEl)Q_KmHb~9ow26fBpLDQ2)FGN1Zob?*9I%Yf;20 zzE+V-`F8eAx_maqn=ZdQQ@i|&+#=nKFl^1-*T<3V0rddOa7R}C9fi#*KEvYT6SsOnYi;Q z{-%aY1w0hK8Q(Bvt?sI1H zJ<}!ozrT2^Ozo;~u8woCo)&yL#`iy?#lea^K{u&+36cT%qf-FCbRgn^z{j+^4xBo;n4d& z>qTwclADv)w0TJ%*!PUlcaF0fUtfEIdH)y3J#Mr1HO~xr)qG}_ahAdrxdSrOobTLC zce8(gOIN%2#=FezMZAm*Avc}2O)9zVbW`%uOU}ALwy}Mdf%A0-NWP3ns!_}Gp?j2dDwB*p` z`t19R`)Z$M&s7oGBdB2`v!yRWUV^QbqeJM%%(QLhtta$(nQM7A7_v$zOx91h+0X07 zcV3@6VcKmyL#yQI9lRg*{P(ky&0XYmFU2+BThx~688OX1m&}^Ja+C`RDp=&C^EN5y zFe-aDdYUpVTh?<=Me1sA$M5pcq~i}RfS0D6Ir-yA9FJTR55q;%hcRcD9Q57f>p9o^ zc<0-FOb5+h-@f^YkL^C6Y|RW`k?%A6KCbOJaiZw?MrGwVl`Fzpf)fNaiB& zKKp%rbE_u)r3?3t6U^+%lfEtq?}`phc0LBtw+CNDEI4{Alr4DGpOkbT zF0IOhNv4icCRe`lSNgkekxbchvaIT7%mw~C8gg5&Zl1h>L*p6q%3UutHt@=APACn% z|4Zlc3b)V81p~ypGyO#9zFf^&g1pzDeikrf+ALa zX_l+Ys;f(DGy2MKVdEjE66MV$su@Zjwd~Aqs;%h^PMF~*rsn>3gHQPO%|b;k`B?$8 zkM0z4nV@xI*M6%bmzesT?>-3->l2Ro*`qA|{G!QmwdV^@)>&{QvK;!!$Nq8O_Ct23 z1g;!@X7lnUXNE{L`7IyWY51o0z&G)T+b!+QS?LyY1!UG(U)jhkwI%vxjyQXK^U+O* zr3`P#+St*j$h!DcM`gWy3Exo>r462;d0B293oqR0>e2eI z-H=oh7rB|o=9y~t)ssREo9FT6|Eu1+>3xMk_hhc?ueCl1JwGaa(>p;)Cgt}xALH+b z0-s&hy=2qod3x_9F^A7j_`W<`(y;k`S&QS1wfj!Jy!QQ(?M~CQn|;eAL}G5+UF_j} zWHnkDO_`THte-6dk596PD2wJ@7&gI~_un`i!QJh43Yn%NERtR0qb zln?5?Gwz%3Dw6qm-=9~Uj_*Go?_cq=zVe^Mb2}FMe<$Tvyl#J{`TN9U8K2oFtsZWv zulzP)UiJBEkBz2V>_gMVIv4TED$V)({c+@M2MMDM)*Tz>ZP+KcNI|-8dG&-$;eu#I zy_bIv>^u-|%A`hP*?l~h&lLL`1zzBYo1VE`BRuW${d-w9WfRm+o2*+|6t{$Z zLPOjp*7fp-f0V6yb$ChY^?64ludY1*_R_(JV*UK_M?at5esEet=u@UQ4lc9)USdAP z9-3=%_xkFlZ7kc~rTTq7@4ey4TT>ki^C&;20EOILar0ddpA+g@k|m!xdl}0j4xa6H z%U-{fo}(VI_(hN~Pl2;z(PN83%g{{e7N&A$&+7}mooY;FI(zE>B@NA2$0jbdTAzQb zd0VZxN^C^dgwnVAR{Yx~lx8jXTYdI^`|C@RGVD$6(^NGzrnPa`GL~yBl2u|mqGSIp z!`S!#65CCezOVYcA>U_)SthXTWIW5%a%J_!rSzWrXXQ*Kx2 zsh`*CX3k5}cz^w!^^?!+TeYv9cK;D&TI*pQziPX4de4$$&-eOhf73W2@ag`_yCG~7 zj_q|1IKl8MrI%fHddg)@&gQ>M(+}-BWprEnU8~vL&&NLpl-;y5t`Xb#@K~hGti!EG zu66D+SM{l=Us%@W<0N$DYNG5r7vqNc=hyo``zi_AoaXv>|3kJFy`sjio!-6<)qBBm zS%l5?^M{BV-=)}Y9}D+WxMv>Sqn)xv+I;h-rh*m0PxxognV-p>z0v5zp^1$S9j7jY zgr$iIe~p}-y({7Du7!7vf1R;7+3E7rX&s1=7CH9H)mLVm5t((;tiG6?V_WB%#y@^sVur=$cWYY}mf4iJKRFVm|EoEa zZQn+lg&UqUhD0bm7THvITGHyN!-?WG{NK$>rwQ|gT=CQA*|Drd;(^Xuiz^ZLZachn zQSVgSaI(>RUwCAwT#Wk*nFsed?(A&S_;slzLw>P@LJ?cwL2<|BukFgB>X&^BTHerb zP_E$Pi_|dF8EcPydQepyFl)sgd*`)Wfor~=Jr}qA)q(ouhlOKatkyR^Xt`~6>yl4l z@&y9^p5IT$vs+tDSUGX~!ZVyLI_hf|NPCs$a52al#4X~HS~|74xmucW(dK|V`oD|c zFtR?A@sZ!QX0yjNjtHG~7DnB!^1ByavRW;0nfH?abMFlfJrU;*#l-!lc;m(WYoOh25j|(68VaqJVVsvTE0i%R!>vbEqDE9w7Kbe7V>b3>BIcmHb zeRCEBy)nCf&{D`t@;*)ct~=QHm!N1)9_Q{>-_3PWfz)pn9=VL|rN8 zW|0YNUcH_&&AF~1vD4Mk=GeWZiw;a*rhoEs>zXOv{vt9AJgU}DHqF#L64rFb^m1Im=5 zBWqW1pD1?Qw_{CNzCa+LfbtS;3fL;lEXrnYKF? z&W-5XH9_xRRpr~rD9er$+t#o8uPrs-WP-X~uwB?n6SO`mJn`+KU2a!*J^SmIdhO=Ui#J0jSoyM5DBU<;(>nR|@!U%$ zlQx=7;@%$<8K(L6mZt2fhQvlSR?X&fc^t{ojmgp_Z?xBE#jXcLB4T7w18l5!T(kf|oMfFBf$9ygC^VPi)As$U8(VCpTr*|XnvXo|Ao>WqJH)!uJMFpGr>k6xGKYCmG+VTI+ z+n2ZguT=aYdaK`2`f%k0t=*@~kG*fwQDX63?Nbz=e|pdDz6U!6PX;szZELy65OLyO zV(iM8B^7JqEB;x&$=%M#w0Zjs<9jV$c6!P7g?}&2Q_h}cAF1*unJVWX}Az9m-oy&c4RA#{2(?@B3=_qi4+gU;oX&Ufr(l&xPi@#eeR-|7#c_ zms7dTD1!f09s`G`d}1)?+~}XJC2nf(PV%IMeiwJn5D59gZGIugAm?J#w;%J$qZbHC z>D*mJxjS1f=(l86_8R@P%HU}$Lf>^?uw&nGm&MBCx!U?KZiP2P za`hMQK5X@D(bA0EfC%A)_5+9Kg}u+7`S0q}SvqYYb^m92Z2fDt#ldMox%2{w1M~Pe zrkt`pH)-1;TN6!3hUgmi{aP`%4yPwtF7Qe^byng@MRVO7JeN(-dQ{e6AAK$)Rd;3D__0?3LFXe`>cP{I`rN`bVbL&#| zn!>)HjXVs!%%@nFopf*e=l)MwZ~cy7I6Jz$F9`$1J60uHVQwN-`1ZhUvgu{67JHazyAE%5;tFxVg3#6 zUY0*|mgp>7Wc}zr)0ZIEwi_NI0g6qwe3xttCePb;u~7MR=55V=m73iFru7Rq`CmO( z_iz2C>B}?^#S5;|Fb;4roENmREVNqUPTz#P52pyKmi@NUI`~<@Q-LwhQB<}v;@}a< zCozExRH{`Wd+^`C;NjB`xbLT9R{{yDLPV}qPVTSe$i7T$@PRVH5SRtrrXdUL+c zWVd43yli4is;x}({iJ@LREhiry60-wtp7PLWcFERCXv&@7Qs8>eih!5UA?5|Q0C0{ zrTnK@B3>)Lw_u#iGe>LghDEbkA|z1(z*mUYnt2G^#?E~HS25<0!-8iA zEX6M$`OiCRS9t&R%nk$VPBFc0UYqq7aKG_uZN5>PFZeP2+RhjEJq3?8-i^53c0l0k z0n6**T#;Yj$V-ULZc*31F4UYjttY^u)A7QKht>t{p@&OTCMc_K?+Dt>tU8OoYO49U zolLS*R~}iwcArUljjJvjcTB%t)Z5(q4;-J%9ZtUOu<(r0gox}6dG{3(;$ zgiRMS>mN*spD-~gOv-xJ@0@i-9F}Yg9zNeRe@%Q+)_X=-*9R4+Z|0@#vpCS7*}xiO zE;gqt;W{hZ#U+Kthjlp`=DU8o@m4HWE^)&W4u`EfCfPCno#5+pCUg7AQ*w)~f_wNr z&An^q`B-e(?y5L(jcNL)oBs3JPMBA9Y~Aq}AHO*r=(uSix$vafl+x>|7o1(E9$jty zd-?8pZ+{;s-579C_WN`*)jQA5ouBpkdtY{r#TBN;!rZrshDuCQdRr39%Y$w9*dNMU zC;Mbq+`S7~eAnc*9_QKR=-ldehAGRqNtng#`fS??U)QT!oyk1^Y)kR!eb1)$Zd;Hr zIj;HO&7=#tRy}Xzwumk|A{UW+|L*i3bGo3`xM|Jw6k_Wpjfk^TRFgL`}H z8w7M&{+l)4oFSIJf67ap+%qT7%}U(XyG?5!cR&^IPL@?0R93AhSvk{jf$f|kiTFMK zsoz$n|BHXL{r~F!YV+d#|DIU+@v;10#Z0)^6PmA8&YB?a5nsRX3u8KTWBOW2&O}?|r&%Kk~I-OzJ9+u{Z zmS=1pR)zM~#cVmxA@@c~Ra{l~j%~-b?LX(GO~2=3BmS{I{3jzy~`$vOq)1S z^2CAL3>_`M9lqcH%h0rDr`(ZaS9TSb^KXjayWni_Kp?4a& zgJb!(SyQh%>C`V_eCwC^R&vfRtrz~zdn|)PuRNY>@<;Xc?#YS@&($?g`5t7wy)5$5Md#p15&JE$fpJp!`BJ*DfsatBjsXSz{L~BNXwdSSw${BOI zo1#-|)Yvt9n<6zUnqPPH2E4Q}llfD`cFVABQJtLDiLeR#_TAB4q~|NU(Y7$g_{6#9 z>O{8NrnBCK?wvdDCG)D>BqQ+)*Yd*RtEY&p;mW9Fc)CCP`wer>#}iK~Of>FK=Zm&~ zvR-}V=k6k@Rm$gmrq0dZayIhm%cT#`{xode7wEA}RQl$hf5N?G4-*3%zSq7g-@Qrq z@ztGQB+ngJ%aVHj;>1U%-$qkqcG&UHjP&K46Lsmq4W_m}vH!A8Gr2P>xl&eV9MfFF z!muo0vcp1-dDB%T4d10-d2?Gn&(4Ikr)O6I6T?Cs#;~(H++JAmXw2N3_t4B_*{)PJ z{yt@m9LwDNHMz6jNNr|WKF_RCa`rn#g_KUqdGjp#m%2zFOmOM>RkiKgCg#g?4j#W` ze(?I%>dn_$avEROv`RkPd)V>rel;8WzAP4o9tVpli5f}2PnhQL1?=Nyn{rzx&1FYh z95c@Z-USc0Ei?@+b_hPh;<5benRm($Ke1oEpEO^O>1~Xb5X-JZ+Z~??XKdY>mvzK9 z*Q;mE-y^jTW*+)_sqn~B{=+A?PGgxX#k$8g*)G{q+A}G6!GlZ#n@wI?r&pbu)4yu3uHZF^FSk49b}BTiG-b^wFWRj(Q)@pR`wnCY&>u)gAg? z|Ka+LSMOhft`;)>QUB_jQmcsly(!zXY*+44=2_Q1{pPYWpR9V$aXfK;YH=$prkTa^ z)rz(GoA$Gvkly0C@B35XZvkxo_kW$eU-rDL#;!f{9v`>=x2@i+woUq??VFd9=dZ=c z=Q%j~*_2<9x-vB}pn2om6_+pmvf1?M%(wS047(W|d0+o*X)O`$nRxJG?!lj-U!Ui6 zdMWfZvMgL=t#@BBEk;u&qF6`ogk7`kHqR@vXT}(r^EMcl)mQpZ|F5`jem^x}|}2L&08#T_?ZwdGqgh|9<|XE49rN zzHyyjdSF)0%mpWkHh#Hlw)w)9yBv|1M4s0^DrP;+e6~$3z(V`SH7TKHZYzCXJ28%g zFVPI!{JuQgurH`v<8LdAUeTgW|8_GkKe^zJ(1hJF57;l%J^5!7&bz zO#N0odu#s|ySc3VOv_B7cgpoSZgYwcp3E?>>?2c;Z9wXA%_(sjol}=e3P*{3_qPAC z_wT3YTlR9w`FvAPV{$sX%b(?Az@Sqt+bQ)O9eeTBOKU*l`cE)V$ll*ZXVy<5aJ!nzzr%OUUca>H6HO8CHJs6V1XPy^+fIlJJ{is|AYxc}AacQ` z+JLWzSP#n9tT6G~obkmssipG9lHeJVJ-%O~Co`G4wD&eJ*=?VA=~l*RTC_{XK(&*C|k*_$`Q5fufnps^D70~jW?$tC3md^f7o_Dp=3v!sx5O+cF1*NMJwgkQ=k{&KnTZ`T6{ zB!6)*t;!2Owcy)@_BVH}Ia4xg)7$inPhHP`+xK~H)+b&eIS~udH}4niwQkw)AURf` zBY1I2+J=yu;?dd;W!CebtIS?f+HS7#TVAhLVe5|0qlc@4`T_+RWG}ru@$1zag9)}T zrq6q6d2ixV6aDtS_-}%Hs##t?cw5r(`RPmsMYU&qzvq`8lPjJUoN#)%?WvdX;;g)J z;niyQU)|5s?c|;=`!i5@aaG-Y}IT=R(t0ffV0D+tjeXzwiIAT=jQ>c~p@2`BB&~_}RVVV`+?3bI;j5Bn3rAuFXTt4T!=!f_D?Crhl79OorNtked zs_y4~uMXDF>pmaw`~TdEx;odH$NTI5pI0b5UHsb5?+;%A=T@G}^L*DolM;xqt!HHY zqiK9=Wy!v|slRsIpPe(kwd;6k^Xu7vuNK$ImCQRoOTRPF$=H2qNobYm!OgR7rgc3~ zifs5jRqd$PG2h9&Nii-TBp%zX-kQ(0^njw}yW7#*x&Ho%dZ%t+87EwGes3#7{j2nY zP6b{`)7t+fwmlS0IC-VM&T9YB-{s|nQJ=OQxy^ zUgr&XGNV&S_R8K&E#{o8;8O{q*@;<++}!pXHXX@(S1t3jZD#HH^iv9QIR}JukEJ9& zoOy=h%wh@W3$?d4@4nL@wk53qniVd`our_PF+hO$*(ZKe6HYg=WFuVs`fmXB5=Li{8lE zbLDz##M@PyPbOsCp1)PlCr??=;>d+(hQXK8>u(+Ie4iM3hUehN3D>ypt1yShe){(F zEA*;fZGKsf14}0AbKUOd>l5sl!6z&DSV1=_ch$0cx_=+k`}}?$ydiJ*i45tT$IaQZ zUwDYCS|9MU0iJ-b8H=ETaZ;yZsV=jD=bx~tabYu=ji-N3hc!KCJ$0v-+t zn`Ui_dK-JkV&0iIA{+I!UNuf_^iM5GU$am$Kr~?M-}eO@raZcCRj{mcMa|@ZcN3Yf zbZpvgF!k%I16^7>*J(ceBix&3&b3ET^`?RMk`7Cyu3g#Jwg&8(@Z!g7nUCcGm9y2O zIghV+s+Kl&a?qN(^A2gVzCFNQdQ?=+Wac6 z&n&ciwU;rV$4B6;*K~PSW<~dm&^V6U(4}7_1XW~`SVhXm)$VF+kI`unviTJ8KpNN?;o@=E|bV!-)Aag z*!1$C)5UtGp1{xluU6N*d-_wv{*U^9ow&HTg|9zMw*TYdyI{#u^@7&*A}cZv$RBDt z6~{ke^(FrUGv}J?Mgx<;mE4>6>Bd~nohxRz?8uZwwU0ORF;q_0NJuOwuBz_*e%iX^ zJL6Kzm-jeXzU{oH70Eey)BWh1!n$u}T?lx+H*WGuCP&vdr?`@S2=F#>%r-j}`;e2~_;{N{ee|1PTOk9Br*%v}C6)5<^mW&IJA zfb!mp|1@4?_iWNMe%Vwug;RR|!_YN+(>9xI$gb_5s^GCtpnA^Z&#y06gIDrhfBJ{9 zep_FFvgXzkC;an{hqovDRsCiPT*Ub{itATw_?La54(8ouQ{_FL=Us8hJ6I(fEBf3< z^U;?te`G}+g?~TeGIU#TJLFY(>y1;Tdgp>ff0nl1Z{Bs2txGPeMm+7CW{uJktCT5C zjf~l6Jw$VuS>tZF8O+-Bpe#e=jDOGBONBS%><$DnPL%eWwc@w3bbdpEpwWH)U%%g_ z$WA(SoB!YS=XTRpC0?DeAyoMF+Tyr7kCvWX=;q#VQ*wS+++*Eq6E}V}eReqZOh5mM zqwh1jBK+%@?Q)d6=g`G#@Yq<#cE-DXFOof3f94i%o1&_)V8+9YsGg$=rzl>zx z+>{+N`N2gI{)aqSz1>Fcx$)K2A?xkcdmg6E`t)J>-ZZmwoCV@mH_Cc^vd^3D%$qFH zJ!}1;Gi-5s?2Ns=*;3n0JLjo)>EAx@`NLi0#hvu_$Kes|GaaM#*VpFFg&YV}~v z&t31TC7H^LgeLE@oP0E3z5c^(9+y=n9=tPuGlSvQ^Q)3=k6WzSs;rSB;p^b==Jzb+ z#rHe^iLVt#e6W(ZN9J z&0vv+9d3U~#VShZeds%bM2@A28lV|wNJHzjDa4KVWgTfd0_31Xn_x>BDZ>W;j&kv3{ zFVA`*OxKr{*=kbv%C}lm6$`??%Cf(4y*0&rAN%k5er7ADxw5ysDsjIy|Me{H>h8V& zVpF5J*d88?e-**+%8=)=VA}o{eZO2Dw65e|QRYxAVn+{X)EeG^G#Hh697l-R+0o>Q?{Du04i~5REn;hD9(b@k;mzEWZ*M;M zSC{fnzTfu8{{HyCU+V?@Xa0PzaAdpuy2u9$EEQM03tP`3uB#LNf4bxTU1B|@>r}6@ z#C%R=2=GzkzLE82^3)Gc#rZiD<_Ew1Z(jY(zWM)U)w)ma_m52CdX~Mvy*+1O#=N{9fnfzu10;p-1VC?c&CXn^Z2! z-j(&MXj46{vrOMw;q&HNExE^4Z|nU2&iW~&qNCyxdBkPSsRgTlA4q7p_I!t3y>GPo z+bPTVm_$57Cd9M;Grx4h+d{Z5P|0C|-MLe~PYottYq*i+y41Io(dsnM%o{VO&sTQ1 zCU;;TW5?ugDU~lO?g?Mxjrx(aX-D~G{fun|;y!tm$$_2pk? zJpvt9U@Dt*`AklL%G%nfFP}Y6lw7Rup0Qe}M7wN9?CD_10>$XKNA_o4C{B3m$5d1{ zb!+Sv7Mm$q2FwIs{o35{?XAH#8Qk;P#iI89o!fjlfGzCR-Wl^%HNuYju+QBgwtLeb z=I7fkB&s}YNYxGz%(MA1RrK+96HBE^0l6*hd-Ws^Jgu2z=yl=n19sM$FBi}9b#IcZ z5@LV7_HIK`b8UiX9qVkqSBB4*B+mBVz-?H>%A>$gmby&1IeW6(sn|m~UXt@K?XmnV zb9oo=QG{aR-`Q_MEN=TV>M;Zg{cVvA{m}h- z#kVs4qG_`?e%ZCyIroFfqGP$!Ia$_z$d5gC@aLk2n^W(L-)qkF|Mi}Kx}3)x&(<>W zhJ!@{H!O1#tCq7({LYzWzWLA0ojQ{l*9EkB*}i+7Du4c>cJ%D?uUEa0k-TZwtiGt3 z{riqw%eT)P&E#g@J(j*Mq)siMm~Zt)^UJmu&z+ZyRG9gAr|-|Fdu5WZe2V6F4k`Y! zw7g(OV~RDeyWDlJxwF?CU3W^!oBfzzkaVO^v!<4!^4W%i|M~w_+1TuTE%{&nQFz_o z=?9q_9^5yVSM<0&r8e*Px`z?IchpN6A_Y@>uA973$Zc3Nk*RwA!#~@1+T5Bg{NL`o z<-b>_*;6*y*ZsNC{QrL6bN=(TKkSe8*S%NInL6Y7!AT{LT+J%3-s;`3W6@S&4U@1h z#+PmwhQCxc`N_aBLoe!hQeB1aqj|hp+8aW}?mFtO*Z)<(CNA)1@ja%4vkylUtLC+E z@=GRkdhyKuaw=h6U`Fl~;V5f$79+9LVD5wb9GlX@_8RTDf2~$_LZ!+CZym#5+?8^+ zEBNXTf1ciYeXZ%?3(V&>ayqQLC(QDyyUAwFbtU^0jg_;nihOe4RO5SwGqri8-2D_` zj%y8*@+Yu0IC6KX#-+YL<6vU(UBLN)5Yr^_n|ZhRf}Z@npLzfNOZBa$I=ehJ+{)QL z_4m=G5tDNR*DY55GG*4YxxvAQ&sd)c-^nvyku7+`kr!M-TA3ozsp0ddpTD@?aZ;vh zQ}@%N;}&}Lmj8a~|C4_#|M%5@&3XHN+!qvhmpo-bjp=9p>(*_})$<+-+2^vYkxxE9 zLws)Hm(1Dc`F>oxl*(D|X31q?Q?y5XBV)q$J6V%*BTqJn80&l$E3sShjj8sg@C^+W zg-LP!UuT$9ZP_yS;;(B=jm#R;p7{v}3!gcv_WJTN#y^d|6A$eUmfaT+8DnMoIBw-`-uM zvNh%@-==3m?^-tPHTZK?@t9Kc3Fn!s_J*@6r76EC?zFN_UivH6>KB*ElZuC}-|}s) zBtA-sDfC)0vE{M1)>ht$&G!Uf_`dRfRp$Lp`ku$qS)UW;YHQU0tkbHxy>sJ+_{k5W z+ZMaGYyNoS&dIJ-;j)dh?^7iEV_8Nyg9E=p85-tPGDroQ%@sW#n{uJBIWa;`WNS?~ zi)3W+j-v~19am#m(d%>FWb<2|?69eZl3RSNT7J|8?~N4-l=ba)43wF%I;=El!i-sr zeCISwR>p?~|D2n-@6~5+{;Wptt#7XsH^A9g zZ{}^bcZ+L#4bx(OXs`?BPFr5U$?Wv@nM6L-xS#&J=fq2W9nY-8D{q>#306y6vRTS7r+12Uuy0no%#bnV zZkfTtun<>~YiW)rdVLi8bmrcC6q>&EZIaj0>r?0G)_6@>(3xs`CNJ0U!1Ou0Z+cKS-(*Z(ukin_F2B2*=Q-oXT^IIBUWnYHHbs?-eY^17yU_tjJ7igc z3vF3U*c0?|93Cw+?jQaLZwQ|0%k)A|YP=iAqH$p1U`{>bU$^M2aTe{|gbpYpuNk}7-W2Hd`P z&C2MkRm#To72jqk9^RJ2kh$$}#QCGv66u1ubraX|$MzXZ2*>y{T{^Zo^|lS;0m(N< zcsH;G?rS}G<&8@7%wi)Mi)OX5sLs{T&b{_Z5STXGL6p^D&aY6(&#!OX=3|iTY5x}g zVb{5&<9yG2oK^qn>{0gSmru!8-zRT+S)A24oTWb`*_Q>Tk~!+wjb zey8reVu9(!A3ED_R?J<0G)G4B)8i*QPVO_`8kTDAGqqHU^XjdAcI6+QOF6f%x)}Ch z>9_5^&u_+*$FI3o=vMgW?$YLT>7$z;e|{}oU8~3V<4Bz6_hhln`F|eU%1q?+(0J_; zY@?FxtKC$e{==iv<>XH#Eg6|bb$8ZU9ns>?xyC#3R?5@gw|itypI%v)m#D(^bnep? zZakt@--V8es{IQ4V18LbuEL{{O}lZGLh77v-i?)Y50_;>sXcGf@cFTDuh+f%Uz?_t zbJ%>6+qE#Zy_yw$~t3?r|nthzXsozez3@jHdf|nG)m=GYjpJVwXwO=d}z*7Hq)(K+srLoO-1u3 z`^9xOF~8ts2A6t3p`JX_99eO|iZZvqovK=gjC2`hCZXFB{B zi@n*yv6|&}=Vs>ByNr82uhI|=zWI%(eZ?c4^9kw9WlT2?smj0kY4g_4%-ySDMpN6L zg)hsT=kzlwS;u;aT)Lkdpp;jo0*-d-fxzCSg>H;@6BClbDfGbS{(uoRNd#yo>#VUVM-SF_FFQ^FBk9&|B({= z>rxglrD$OtS4C>HQN*QNt!Jkl-mPj|wv~DA<4*!&^Y2`nUT|#Q*Ht_3uT%EXd3fOE zymJc2UdHili>em2s$a~)tm^6?<^Ic(L9+J!nH;rs^Pif2Wxn1lThwSbXa1b_$={@9 zpC}52`ttI>74B8Fx)Aew|Gi@pmNTB;vvlpLdbiqZf>*=`p>!|##akvvR$DWs*qzWh z?Up+G#4@SEQpwEbhZ_Q(XfrpOKKZjdt^W11R|mrC%e`&()_26846C>OasSuW;J5P6 z1peO1+@0ypAxu7CB#> z^HeqS_vJ8os|y7$?boMGyCS`NN6TrwvI4(Dv(Ft_t&%wF{g3Z9zt`oTse1fp&k4U9 z7w&31Xfp?#^3lMMh!_T7UnvH~rtaJ0o7;ONb>q!$P$M zEDs9v7^Zy|W&F-kcIkY@!oSn*2}tua^1c|Wm2KCf&V+tE{#rd3v& zzsWYTzmj*#wl`H(sY>}p(GIs>>ayx>pS)$E`mcFM z*V=9`@QyVI;c02QmY>G@_U_spCdOZ+eP^8hCv?J3UiaR?R05ZmZhGO-5;{-z>6BgD zXPiFI%<{5+UB*e#ME342Hk|cKFT|xaF3XwuoxwFiWQW1L_vCx!TU7{lZ#FH zuCx|wEcSQ5mGOm7W$No=+oE4to|(2SZEMS;xL`BZ^A8qtof5tCeDjs8uHwMgrzOrE zXDH2E`RQon0*OWgrzg+OEc+JODe_lzl`NFc)=%<{aC;!q9HlOmY-k$UEPXC%i-GO8 z-RmP6cANH*1NShA-ZtliN{Ip=Hjdw#q6cj1}|>@)3i8$!6;7`ON(F5^u8-1}|S%Fpg; z-!6sa-SW@4sx{4VBFE}$H6LdNXY9`09g^QGm1?A4F+b-&=K)rw+Vzf6JHPKfZC8=Z zGjB`zQ5i|yFSA@(!fz(9Z4g+vI_%oCu!bXPFW1c5Qm(coLUt+Rk1vc{U)=xyFTU@1 zyR*&S&A0w5zj@_f|7&7XeJX#M$JV(a_l|yCB&%tdHTSXG{NoLia{HQ})LrvkJ(J;S z+I!x4(h;2TbwA}!HavgM|MB+!tM$U?*RTKh?b{vW|MhHAJ72!$;4rIVi@E&f;n|8m zQumq?x$N^kuX(uqZ>AQvB*XTo{fTe$nR3_sk>zSp)tO#<^>B~DRO{B=g(j~V@3e09 ziI}`@_e2BP>lY(GXB<2Am*KI}9M?5gxp= z^NZI{+Ie{EhF3M0=U))zh|Qj~KREB4|E-n_ky&D4)1C$dEy%d<7BM4&ZO;7Jo~zTR z&S#ikHI@J5CdQ=OBDcL``}6<(h(FS9Z~d+I*PZ`&nf*9?!|aNfL|Z>kXli(=uYP0u zT>DQ^H`Oeo#pL?E;%3aW?B9I*py4i+%J(u`&V9_uGS3iv`lZ~=SazAh=ErsHJI{9Q zV)Z|8Y+`*(WD-ZU&cyIv9y{au%mg=SU%Gj)H0^D;Is?b12X_j(lS_WgSm4eouW@~g zchQDxM~(DO*Y!P>G?UoNV%6>4D}7r|>dSnu``(;Ey4RXCf8S}_TDvXL*nYp=-0LFq za5(pLc~0jxp{XoZYt|%p zw9VZbFWJD+s4pN~#1P`3e}r-Vm5(ONK4^1_Y_WOrl&iPOhIQSK%aYHRh@9uK>sTNk zu{d<@!Y%Ai4>u$W&*tRSB~j z7c?)9JGaMP<%;?%ohSMVua+O?n!ZxNaW;Q@#rLcCd%oZQ?Z4~s&5PL*uQ}3JP3mNf z*PXj%)tQ;?tF{Ohv@-KAIOT5XU3P7U-SIv8NmVH`5666+V`tEH<$mbuFxiBufqqK< z4ebRcma43e16sGt{%3zr{?xbM9}XI?cz2hnc`Z*v=K4?();qdtjxpzR@ZraZ?-g^-NU1|8&20>+%B& z63#7O)97yYTJhbq{Sx-Sf6PC6-u9n*;f`v3b*HUgb{xz-V>o9=LF*Q;sa&s*AM~1$ zlCG9^Yj%Sj+nchOnDcd4E}z>Xzewc$E#`f%|9)n%na&px^XRX*|KI)WQx6MCaIns0 z(a;gt;rOOABxt(&L|uH~iz z-vQAhiSG?oUt7h{uM1RxuACGZ=A-n zwlgYoKUdy#kga=h@c(X}fAxFQ|J~o;ydo>@-)rCeeUBLA&SIUYEv$E9b^d zpKB=HZY1^d|DP@EL))IRcrLj8W&OS?m$UXP|NouLKi=Md|I3;GJJbLD-*Er2^uBIY zf$+EPoN8&;t~$bB?S6z{{AbbB$u^k z*|qIP4ikiu81G3-6{K2gH`j zTAU_zJzrqPm6;d5M{_ZRv%ZyJ*Z3K)@XD(6!W@>(IiJhL**H850^96Q*vy&c&T{nU zJ|mZ|nH@9Kf|lOwbe*LZ!ExG-&vE{eBhs&LJd~chVf(?ZIXn|01wxiGzB<)=(dkPI#-`d+&a{1Qmw!hN4lH9IuZY9{a*lDY^9XPP#tdKvO{QZiwYlrv6 zFFwI%&vTpYchj}0v(FhfzCSAF{h->q-S}1X|KGd*R>rKazwrE>^oGQfkF1Ugn7dwY zscGr5bba~Qi2pWgEyqp84K8ZyA9FtEouR*@*;;q&n;ykwDN_Gk&)iV!?M?CZ5x-eD z_0PjSIaM`kEiWQsOa85n3BKL@R!Z}S#kZ1f!|R5VWc2KxNSOV!t7bazyZay0wZ~PR zfo$6UXE1PHkCOcNQ$){Da;eZ#mz}(#jCL=3zDJf%x!=7sLBQj;2@l`&AMjlk-K9P^ znF3}eS(x%QXxuPP-FD$=gyw|JCqFtF?f8HGrxB0!>%Ttn{R^5Z11eG`8(+V{*Uojm zSN5FI?{z#uyG0ETZ=J(Auf3UhYtWygIV{1QFHJ0hy%-%*eOe8sC$5RO&85Cf`tz)g zEYVdnzUva$YF&7IYD1HVVX#{0>y9%W zw@yTetQHI@h>4jMx~g)*#KdW96W+ZrS@cc&5Z6ZEk}nHa%x|yh^L|)5YvT1ak#4IB z1KB!nx*pkZ{aBHJigkKP(}Rbq6O?5q*3CHgQT$Q|G@t@<%`dq zR(ZbX1H-)aQsvxVHN3Bvsq;T>sGt1EQ+;0h?Tok6-n6i+n#RO%nCq|0mhg+8^&P#U z3@ic?TArF2U3jXt``KZ=V~Rn4sx3-+PW`N7KWZ3IDz~A?;P$t<%@g9;{Ta`hpUR)L z$%v_M(^Co29M+}-lf%#Ob!JA)_J*RA?5Ch^E;wQ-#Ad}&ol$1ieU z{DS`;<~w!9*;=CH)u(N8QLpD2|2(lc<|v=%&Ev|aBo+(trSRT3F*C#bvAM>zx4XXw z>28V4zwnPsOJmO4r5<^W**0^3&;NffzDNJv{p0^XyW79a`*(d#sAcrSp6t?PQzG^H zoNvwF%yePS|CxQ$$5AC%!!R z$hjlpO8!aPBQKAHZfyIP)@>^9x6po!s|9sPgXa8?xC(D=hk@ zZpX-{3NMHfIia8ExH)ZZXUuiS<)uNIyc(O2E)ZZ9UR=wQmXgc7WR`8q!5#h)NsG%? z=#@S=#A~#9)wBh-$`iXJo|qV`y{TaTe)OLIo}&S8^548N)D>AZ*J{F#3$j0V?=D}_ zyuMWSocecR<1=9&wq1}p*q$9xQSk2ZhrjZFYHaSvKK^_8_m8XpKZQSjdDq$As_L2i zLHqAfffM?KY)VhxWIdnqewB%d&WG!7-e^@^+;_O{Mo883ziA)rTDU}}an^i&s_b*{ z^YQ+V(fdChuBiMev3$FB=KrZm#al$*m@!x1-n?L8RV~B8%DvrhX53oW+Po@Jd#RrM zsl3@ATemtW?C~g>c%ba@4Xqstc9##@7)14HT-0WJs*)37#F4|ltG#*Cgj|-%7Zy71 zzSnv`nYDEKU6Hq`FCPZ5M7*|%%YSD7BPX2kK{z+JS#P0B;djyZm;WT*KYp{T+)?tD zHuJYtwrr+9Mbn+O{a4*E|NFK1#j{y?HcDRz;d%8*M|)oJMy@+@mGeBGre`u8pY1b^ zEnrKF$Q{;mY0oEZE8D%}-fJGO4-ez2b5c(`XG-N}@9(#smXWJI{gsShh*|b=6GO2x zIZ|gV-(EcQX|04=!yBf!ZU+U^TJbJdO|YHj((H3ggP7jTCjFe-J@WL>%PsPcvQFSSWrulAUF zt=F(>;geo{O0`(U>}L4yzsieGY&~H7P3UmcGs$ghtY0qie9f?C25<39T^;-Vc5APv zGdvKk_GSMXcUI-YZSLL(<sMtiFPxe1LQI04JwhP*WYkWtsS$VB7oRnF%NbIfayC}}Zh$=-bI#OC2^H3$MbC^X z?uEq5oH(Lrt+2M@-SQ&0pZd=1 z4+s!;y!BSFJ^JjdU0;*`%&z~e-?(c2y84b^VO9%u%uiSuvu!neB>pX-oMFx39EBf3 zpMw@0ymd_X&b$1xySA2O==|u~xXHNjC7&Ue4Z(BT#F;%Z-dSwf&o?)mKC znKg0>T^(T*AN4YwG1^32uzO#t$Ay9SQCGx3Az&rQP~#k}D?WZ!u4+n38k+ zhvC2F_J8FC{O0J_ONpEinL1m{L*z)w8KVg^O5bv%ubM0PFlNs|#k=n)Z8P zDf#F*kwY$aJ7)eZo)+dM=XD_NO18u}0YKnQKLZ1~Y+h?fdY|h%h z@fiQ6n==3ZRQCCv6R+W&^V=qR_3oJ*6N=n+=2o5yP4emf-plO#Q*f&3*)2Q8IhN#c zPFP-hc5}tM?`^Xl*SVd0-;^`W{9P)`A2yXftMxp;v>KQ{gqBB7uzkJH#ZD3mi5zH+<(lAIJKc@0a6Y|M-+o+nz}BN?w@v^ZbHbt@pb-U!}kMrBkiC zAnsd56w3~C)>Hx4I+l*Msd15Ztv}BmFxmX$`eX*B%nXy%r`)G27$ib&{@yZQyzzF{ z-`NbG5@rMlc)XtdXkm@)OJ|RE=JV`-6^%VIx{GCm9pw=Zv&{X6o3NMddczwt?Vf*r z|998z+t+{3JNH_y>xRwW^6A$%oXF&EJnrSQusC$Z)W;@o&1|+tbunBx=#rhZ^~amL zC2TwPK2@FJdtY*DavTfS@n2fn9&X--8SPu^{QqBIEYE#dw$UeLrOrt^od(sZwhycF zcWm38*mKG4PW`mC`%Z3q^Cs%v@*5nR8y((med%{TUGRwLz86zGHK%KcZOpsVxcL3r z8*-1pXN!UksD>N`2Y4h&6`Sd+}#-^{spe)pnJ42n&{{QDw28z1kCIJ9+L zbKm-H_93g@+512JW+Si0Wsq8Xhv`=|f5)!k9jUdqPUVR7L|G|cHZfvf=gnHmeX#Vy z-i~ZB%Z-~w-mK0#V4lK$QH`&*UeZD6K*tSH*5C8FGn+&fPONjh_IF{bT;K)IwK=o0 zA6>4D?&jO-=I(ls;cBPrO*8$=g|mAKtitmqADiudqE2 z@5r^{jOO1G7gs->PsFG!{n)Qi2Z1>b3$I6LoaX2%@b}nY$b2cp-{a%zRXxX-JqTxX zD8Al0GkfU-Gs^~MmW!`S8oSTCEIn&hz`!}pHDk>ij*K&p)xPQSEt#YF?cuZg=arcc z=WKZKX_wx$wVRl3d+m}wHP<~NXiBN|g9X{U_7_ZxI?u8yxzJko+cv)K?ZwXo8uwK7 zo2Tb1vH9*#KRLZ*Qt_F0uFJDUF65kQnrOON)51{uU?bcAIj;XpPam1vxLRT99k#z` zl8&DEWVASN-(jH#>u0~NZaYbyLLDEjRK+nrAO6RG#ot>AY(3_`ztU~BJ^P0|!E~Wd2}+5%_ZSS%Ub%hu z-=#+L8=28LxvcAs%WiO0;qdL$-(PbonQ!gCy4Umn`PJ0el{P#Uvj2B-en9cz;>Sjt zL=L%3`xnQs@%3iY^{z9&Zaej^(>I*u#3I|gtb#p?24{@ASI$3tzb>JGMRAYJ{^D~t zo98J%|G1_&`(oV8rlrY$cPe_MHyAW+eHr7OJ87B2y#C2qy&vnkK3q!kD%iF~;;v3m zu=;heSA9o~0?VW$z2=Kb1Wz;V`LWdWq+s_rK(9t(*UP^Ry`y3tm|?_rT6Kzuz*NZQ2&KSVo$$Z?&YYcgH!&CAssH^?NUcWr~;{ov*R` z!hDJCI>Hw1ug~?{R-F4bV>+LSO}&b8clz~--y@Ig+W2FYiTe!0eMSX5Yne0rI~Wyr z^YG5xBerg3k>-nx2zJM^YdY(7_*<<@pUHVE9+&yexFGDO$(E3ln>-e#$Z@+eZe>c$ zaN{^oq$&4i?WtQI=DGb2yLzmkb z|H|ymnP0Du{hl2Xo*NcaXUK8Rcx41f*S5WL#jakS%~L*Wawh+|Rh!qYdbsWI`sb$- z=A83+$k?@s<09{Jt@O7G5}s|4|7Om$B9|p;kC{>KS}o)C5Aup$Z*wY%X5>&;E2~oA zoBhDHMOLSC^OJ>F>bE_~D0wb(ys4?k`uvUvQPn*kA4p3s4Bb47y)rG;r0u1G&%XA~ zM(sJ#J?%!y!J#W}n9hlH6Vu4nnLRh^>MB2*C$lfq%57Ql>appjJu zFG%b>={@CR+n+?YOOu%x*)9u2>72TirQ7eIyR5)%pGEp*fw=WA;U$vRMD(^3kZR@{q$+o+*GU8snn{vZZ zlg<0o*?+g~H+QQ|lXY3K{Xs)hUb>U$6Vu*u4g-zFxhajGT~}qYFT1e)?o-|pofTzs z{#&)*{eI!TTlPVxWhZvjvdD{tnoNzkIX$iYHP7>vev1OS<-GpSe#)|@e_eu@?cV4| z1q*hBKbohnufEYs#=}7Tao^Joq5__Cf~T3k3}4ZKvhvoK5G5X}Eh$ zF0YiOpW%{9i`#@v|1H^-qq=^uH=3sLQd}|IWq3C2wXPR9TkEKP~IFh=}Ok z?RQyXzRP59j-0iX-Hc5_YrevS<>@m@%xKeGn3x6u;%MkafQh> ze|}st{=Z-J{CR!b32zSm@2{6%%Bhn*^JvTS?+{SD!;kR6BG_`I|w~;6>;^- zx_d}APg5q#Yti9J@iMvlZ`hxI7#_TcrD^R3rC$eS?<$t=wmvjXXJe4L$#(M@9{9TN z)t;+2`?l4x<#O1R-w3&7c&7K|ow*0CvR|F#S>gI1BJ=T{2a)wo?UR3g;Ql!O?=$^l z|9{x$WgB~|PYuXut~D{-*|a$zH(;Y#%Jv4~2~$1F)Oh(BOSc>3WU!}yQ*d--eUo;b z^Ti#;9jphwSO~6a`Nrm9yn4&q6}7J>&D^v;o8??^0Jlr-%-g$u3&iTO6u(zmS){yq zYuiEoTU+*Ad*&=>eQI5Y=;>=S`sUrY*8O$MsOeTxg6?&W4Zr$6129!4QB%~(^uY|^0DDq#oR5tAO!m)A}WI%~Oy5iu>J_pmy=p)GsyGjIjsV znG74)UVr;}=da&@<8!i(yFp>2Sek>?UsIzcdqdJP|)%6hagX}@2&-} zuWP-2;}rSX_VeO|4YQxkK4%bpxpl5dieAQ*>pAtxSqe7=BD*Uk*f}P?7CzXw>y<*` zZ`G+e7Q5e99+JFy#4l6I+^V!>hnNk2bYxgy>gUr_7+>A|=g~7c>QLn7*aJZ~9~@&| ztF*gBl`pi*f1bqFuX|Uw|Lt=z4^I0m;9a=FO;Lkuo3D>Xo1@OV-E01)Eh-FJu<_W7 zx38rR-cb%^vMx^BJ3sQ=q{h2X)E4* z++E5jl6~4T+cnij^O)(~P4^3}PMv1iXk7FEg4Bz{Vg?(mU(aGPU*)y@QI}nOj`oxE z!)A7d1rn!A)mV4NeEZEdp|E3l`|=$gC%9`5ipr!p9Jm(2^-kr(i}&xDY99P3o1SQ} z_}bdw2mfB};7va>=i&3MJLM&w1W1Iv{nwQ4ylo*@^O_Cid-|A-t+q_h?ccA+SMFV9 za%-uotH|0zPWQL(e0AJkGFmr7(!?yH)kzq*%JK8rFtT-t5 zx?-C0zdi4x7tJe4vOajMBqq`Sb7eqUS(EZySw=Z|>!d5UmFK25XIy-HqWG`x?8U#o z#{ZLI{r~R$Bl*AY|DCS*_(-*{RsQdb;wdg0)wb~!Y>3o2pS{n^VS}JW{%S{W);+gY zSC{!Wz7U;p>uk?~UCIk4ZhP|8-CSdP_3xjve>~g& z>!}F;Ri$b(tg_c;#})03Id^LwJKz3BZ6C9vC7*p7wJO+{K349~vwWLSJuB(LkF#!! zZ}-Ns*8B79`doWK_hj+s1D`o_q&q8;=B{Y*{lygfOQ^^2^uG9D7v84^(-XS)SpDIV zEX$L>pz4Fe0gp9R42!*9K#nSaj{ zmia4B?JKq~of_0y+x5j!N>`Whif-kMwEz zfBxg)cl-YL`|CvO|1n=%Vak5!6qBY(SI5Lt4!Sb&wq+m9)4W!`%H3#Evr^!r+j5C- zj|A4o?>n&Y!?%x|Gb7k|PPl*Eb@aZ+5ec655{V1;-cPq~Ylj1SwlzBQL~Y@XHx%s+WQmrX^of7rVl|W4gBq?=lzxf2&bzXbIeW>) zw+|hTFS=Fmj-9n(a;|UA1=qH-idqgmR_C0)R8LXnnYHX%H&qed|$yqCmu=iqva58ZEoJQ=IZ(KS*(uz*_Q>m+3h=7j;4KGquH`->!JBNkMBi9Z8Y|M zuxE9sgx7lEZPsegCG{X})`(zkR{~#XpY!e%u=5KlPv ze^G6Lh{3e==>|zLif^1d$AIzC%*Lb2 z9kDaQFQ;#~zC4rRC4&)544;7A+pphl7XN<8#`K5be!GfW=%yuInVJiBm2bbf_l?;K z35AfAlN;|Veu&~&CUW`V`cv5<>1PvnGFk1)zPNIwqx6YBo*#v0_0;Ac+0!^H`0t^z z_w_smyoXL}sNWRUsrhmE+_hC=zjQv#OsW#x{b}EUT^8B$9Um_q6x7P%C;Zea^|w1JY&yMc zrfx-8WCMdmX@BDDo52z<&b_bwdhxGWU-`$!^8Yh=a%E(ep0D!rbDa1>E@E|WanJv4 z-@G!z%XY4=+Hf?y{@wIPm(QR7C_ew+@7x*khWcysz8Adveb02YkpA19EI+pWXiWR3 zq-}Q8V*TMx5yrEU+9{7XeI~l@oBUQ&xZCFT*%u4G34Zh6Hs{@|H4F=!?c?X2{PXhL zV*5S!mS1OQcwk%2m>XklebAKEhbt;p-tG9*Hr8{RNz9tXO;zi~d@NqPoFn@EA+Oc* z!yl)7KJ47m{wvj4>i-M-f46@;&fk0Q%|ZUhb5`V~E4;K&+$^^Gm(ydR%pGb$PqLnV zS5zsQTRL}U_MLYNr-gKdUppgGtne)R%*=@|zG`iIdFGZ_(2EC06pHnwwq|c^yztst z@&vo_{gRrw!dWFfmo6+6E4-UId(qKtYa(~8$g>nJb!~s^_H3n`S}ybDbGJBbIJQ{q zzW(Grcg;cOtA+j&-&?0>t`fOjc;8sJ(m~<%mJbfAHqTL>UbMn)o=>aOH0ScWUrQG( zabC%3a^PmQgRj{^?qIIZe?>Zz&T7nkAQb-P6h~^5mZ4b6Y2FJyhby(SB%g7}IB*7s zGpx}tapj6jyLv$BqHguEs{K|bZ(f%7zODG^%phnrf0pNmV}=LyStDkY**7q-)-AFu z;tx8`$oE~!=_IR0%lwt^e{;^ibx1Otj*?oN)4R9S)`}HFgA#1uL=dgKJm2acml%V&@mM1r9GuS$x;ksTsi!Dm2tni}e z`Mj`}D{l_#F3ppep=r&=7|{_hNzB{8NH!(?!knGjhDY|W2z}r1YR5P4&wsBN?C>;r zyyXA9riSZ{Au)`luCwPl%@VRaa^=kfmfUGKea~D;e-IV;`9F8`hx$8B|H7l6)pP%| z|CJHl_55t${igrd);k>ZJb&^tb8c$8!OgNbS+#8sN-YJhowB<3yhrwJhXYe&>%kR* z4o#o)xjpRaD)kTUKmSxAijFsZAmu&XUYU0l+_XzVc6!zhq z5Gc3Ic z*W>lJb#KM%^!}aQzu%?$hLGMtol=J-?2IPc-4vcMQ^=j**d+;y8XSn8@fH} zPR-+)bfE9rnp+Xmgx-ZXw58tuyEWtSnpYPLIuqr~Z(n#CT;t~B&i;QN;s`>{M*uhpnwoh8$bdU3IK*H6k%_L~O2 zR%AJ|dF8n)nI|m&-21+d-`=EDc8*V?Qg5Hk@wsMc;*$4T!vZgLIL17gzxlMlZRT}X zo<*+Yc3O5i_`)&&OY`QMNO#H3dbUl{Wc3FAn_g0P4}=+2yJz~%yL)-BiJl$2I9nT# z>c5L`@AVMdC-c{GGL#Vlrr>x<{;mihy&}Ang z>z-Hr{3y2j&y1~$SI*)U+0}V#=>v^9rip7U4cjWK+xqM$XFYpxV*Qc_%XdsTGNCfU zB>mO$8QQ$Jm`anS-n=sl?0NLyiQw}EjWO0USu3`Ava9@3OrKMKILD;^}vl(D>; zxrXZl$AXTpA9Z=xEW%I}Nv+IEOEw+G%{f50~Tr=gnf z_eqXNR>f^{yi%8vHPuj|wsb19#Hl+532D9CH%T01zM=Iw9<#`bcd~FVCj%4T(06--F^sJFY~sD@Mn)W=krr+MIe&?CK`vu+VIWIkzV}NLXtLTIbesYKQdy zx~gaO@`*#&0Z(h&hcoYr-#wUnyi*;7*{dJ^Ee;vwNtO?UvN3icKc@k4Qt~s z1<^+q{Z9W=cyaEVS&9q=%^@%Eo-<7DZqPcC@gj}y%n#$cbs}j$Q*LiQ^NdyG(Rn7X zt>wFo*Iq6VDXa}iwRyc#ghy`U)Yhm-+s@nukqJP_upUmHCtBS*y8h2A z{UdL;rN{5FaC-ay>1pYdtMz|gDu?{vcuDkj(cbv2oyB3k4R5(@`Q{2vj*5KRe%;u? zEuAy7J;Qw0!3D=`A2cY;ec%6%pTq2)!sq{ID}Mhhwwdq$ac=(qg6Ku&HS5;psIo-# zYb{hhV0=|PAz)!x#Usf>zg{b!vhuh(|G1o%^NfiMLH8ccx+@sQTo8MI>4W{7&X;#o zI;G8Ar`WLMO!T)O1^v~tgAOPCe)s!v{;`J@9sctF;w`Sv{-P0-A#mv6A<;^|Ifs5R zymLGswut>pf)R&1_Dca`@u44|i_9 z3B0xLXQ|KT==Yhri(}p}{XTlFU%0f9t9oAh)*v<2h^9`Kl2ZYzy_qsZ-%QrwU!Z&E z+vTU73w+ileiLQZ?qc69Uo+i~slxWF+X0*0*zEkR-}`>_vAG3Jy8~@tkGXFV59`WG z6K{HarflQNyBn4N?%da}VXi3P)7vob7wgj{o3AuA*RuToArtalf42Ugm7Bg#FU(Va zam9bz*Qs_MD_paeFDRP+LO~)l_+MI3^%>4oe@&gdZCUfoYwJ!{J2M4&&UXr!@pSD? zp~u1`@xseG|_TJz`ylEX^XPm zcggbn@>(L&wsiVmJFWk2vSCuEI+grx9*UVV^OHZb!vLSB9#FUhi%~Jn%uISa2nkE^tz1=W~PsQ=ehnEW++L{au4|Fxl zXa?^8AnV(ws2Q8QH;H%G^IalUQ)RiDxg=xOcQ?6Q{+xDHUMwmlVX8-!Rpyy>Z`;}C zx?fz??YLsw=4|VgrJs-JobNKrUu0}0eNps`m*xE}*{>wu)OI>QW#)7_%WnBk+c!$$sJ4_XR%yZ$E6o$}|N*rMjur=2`Ltenjz6Lp{K zPN8e+qnk^Q=ssncrpf%2q42$jf#K|BeNxV|85*~IUwM;b^_v@&<$Vt$&DQ>3x8~g5 zXT7M1$kENTe)$d2i{0OR4Q>>&^QTVP z^(K!qTQ+0bv0JJE!BY&C8^ThW&vKkPZ#nyg)xX^@YQJz!WeDfoHgWfh-P#QtmsX0h zm}vSY*R8V(T9Kl$*-x_K@2T~FlJ4BSbL{l>?;rX9U%cNvef_(IsvjQ9+dKToHwf79 zr5R3>l^XZ-rt$Lw!~{)wI!{@K?{ zFE76Kr#}9wgm2pXwGo`l=9QKiYTq+Cc47nb9YfLj-iz`wjOX}ldY(HRad~KeW6QPg z##-?U?!1;cyU~IB$es4|sr#-Nem~jen7!ki!nzv+FmJ|X0c}J$rFq-**PrLQa@)-5*?=B~{ubgF9YIf<)SMA>oUuWDr z`*V4Uu=OoXdGp`@eoT41=Vt#ers}D`7}M{WZMr9}ru(2FW<%KL-F(M$#h(4HsQNdj zxM^BL`KDN|Ca(NKmYGrNOSW_~iiQ?@2DI-JIlW@iw0^0tP6Z3CciW%h;q($M{j1=i zF3YM=*S~2_>-T**cK6KU=jS_|J)GQlAtlRxLg&o$wLII_&0ZfdDXG(Pviz$3@^5Wt znx>^yE<7JNH>Fa>v8+63(Z#r>W=sbr>8wAoZQ1!tiyP!CoeS6x9G7{gcH~>PzUBR` zFLF2=)sw=*wi>?Edg-kDpEq}}Fz;MdZNF&}J+HJbbF#mjn#>jNwLqa!&1lv%?=qE} zYhJ5VOBK(MP1_iH?R)p!qs@M0@01)?2>+1?o4IuI&U?Z?9#&n`zip}=x*%)1?-5=D z&ZDoGr!J_d7oR4^Q&tdgc-6DYX73fV#kVb*5yp_scQ7wti@)C4(wVt|ryXuhsQ&fH zOYB&VL5YQ>eBAq!tBzz(@Gcl!l3&{N1peH749aJh`!m{ek=AI3j3`=fI{XPBi56jQG zQ5HH|n&z+jIk8xJ)qSZbowo{U`3{Q)38? zE@gt;(Teg$OFh0bPgokw_wL-I_U2@x0zhx_LuTwn!c-0*S zKS$2hd9&x)7|ne6HO}@o&o`I%U+d(eIHab3*!qU!W$l$&32Id=Pp5u)p|sJ;?y_b~ zJO3*4Q+Xa!^%nOyEJ})1;5X{+HWGJq=aZaxxMJVKkltzaGE7~HRv#WpsTF!Xby`-c z)Ev51T;$2JxpUP5+_JRjXE3VpICIrlaG~A?thi(v0KX*@&upAoc2~yY2xJ9 zgty7af(W_&oE|oIes<4@GbI`9tRZkG;A- z>VNM^<(dCD`u;z=8~zNgYK__k^NS<4Y+3EAb}eFFAisAiEm7M%BzyOZ_8&* zzBAoCrk#_mq*tR>Qbh1u0`h(iuY7~ z)ym6P|K+$!{`{K4!UbU*Q6>HVLlu_Q9iOo#mgC z{kq~rZLzTO!-NMbuQ5K7l2Dqwh1=Zb#g>(apT6hVC;fKK%mjvr`7gJxdVC<^*3Vl% zb}-Cdl)dcrM!#E!wU4dzsAeyo*6=B^Y1ZVDId0zP|LDE?^`QKKcck6K>#Kys)190i zuPt(UCfN6f`OXXH9Y6Q&wKHJ2w>^A$;F`@wb#AQg21|Zjw{ZyMw|n2@9KCEt>QCY9 zSL&;>4o}PpnPkRg&Li~iq64$irq~q+>O^@&u1|Pc{nX)co0RB;mvc@^HZ5MHBN9?% z?mSVIBr{l+9u#Vv+RmzZxTNX&)0uwin|ws#wI2t(IJLl?CtYF&SLVXnFf+eJ z&Fh{Xo)O+BzRO^Ww$@tpEx#44TTU~5E9%qwC7Suq)ik_-LFP~Elw*JIoC{-nKXv2d ziR=NZ*q!%o(~1a~EjB%KL!zQ=J?A4)@%y}A(`26|<$u{Ir*&U_0_XWzuk!?zWY1}R za(ETxePW5D;m@VddJl58uYbrdJBMSt=xzT0nLP{V@-%!s^}z7s+wblYuXP^&d$lAx zdPduq^E0<*`<#Nr?q*x3A6XLL)Vw&N~w3v*Ra-*Dd*z7_)x`JCF1bRnTjda z`j_rLkb5c6n!I{XS>pA!b-T)$xNa#YJd&9iG1WqbS#lHe0}=hu9+~SG<5_n37F9)0 z$X#qXt-0o|akb6<#&8b5&ToA`cU(R8_VG<;rA{`-g{ST;VP7cf)YE&=@YN*lT;KTq zQv%CA%xJI=SXjEBc|!-s)mxVpwPl>yJzBTEPCc8x%YE+W1*zfbJ3Snq)|~B{E$LA9 zb!Pgv&oT@5o;=6I#P0CctU_ehF~d9ca~v1s#9!+Y%4Rwd80=yqda6)PMpfmP4jWsk zN#pB=bV_) z9$k8IW3Ep1%R3W#zVbe~RMz%-;pEP3wOsDI*-WYyt3k()ve1>b?eOE!)<>>H~gM;>(!#!yhbgX zg6*^uZgVJ<|DAnc>pNBJ<=RfSnZ7JC`hL#b?oDsE3k0Ne`%k}B+83#JJte5AscymfMnmgYJ#~D$ zldgSjaJb{j5EaV()No(=RNkEPlT2?X@ZZe8b&Pe&uQz;?l1ndErUaaB5OlO$*Xwsc z>-oww_KEE8N&|oMwtc(!HTie>G)c}sPg6w8R-O9%bc1bi*H=c4S*3HmXOucz>z-t^ zbKfnchBbxrQ)b3wtxQ>Yz)L{NPvU-)UAZP8J*Q>Yh4-}ht z{*OqrpyZeG^UvQ}$ERd^%AQXxlX9$o7k}fm5R*|}fqkqU^EIY#zlwR5EfTV~_UL~h z{Y_4`_=@X+GlwqkhXUu=SL}GH@jCO;buP)6!3A-=Pc^u$ka9WtlaAI#&+^{!qFA~SlPe%FwqOmE%>zU?ku(4mP?Z7%w_D#KHBFf z&~S74>7|OvTds3_W=L?0iEO!GWpwmH6pO>r`8#j$m}{Rt>b&dpM}PTFKAy}|tTQ_& z7?sGyMev`!*%V_h)WtJBr^7W#{ji9YF>jdC->($`+sqHmJa+X_>ZH@HSmB#jKcqXIld`#W#90!yUq>Szs5Lry0Tp2q=1>nb5^{m z{=3qqb$9avQTLrEB{|+n<~+BIU_U>JyNt18LmacCmR+%Q*4s1d3Np5^?Vhjxr8?cS z>doFI#}DvMXx*Pa;j(Y&yHs|@4S~uwFL>Tq*sV;yaP554q9XTq`Y}_AyXKvb_@1MA zeXW4}*Q}fvc`vgw_vX*Ka#C;V)5PZq$$G!?Ek6qcSg|z=m)Zx+-n(d)Z`nhG8I?!g zM+DcNPf)xg>*zDJM2B&P)ofv&Nvj+;RBl-JepeDZ|^lv}kJe6RXqyDqF3N>oe#7_@B?|#d`Z>-QVf;Y%_0!uYdPQ z{{OprLH%v}r|T~Mp?u+AWY*T{dkWs4a>>p$Vb%V1mm$=5;nQm?HeEj^bSpu3g>sv` zY2(Vb_m+!9SO0BV`|qC3G5J4rZ2$Q`?qTh||La)68ZLYgbklk{eL0|le(d9jJOZZ;Igc_W2w@G=Ya6_x_>*p)U8GGcXGPB$|U|ZPw z{N^s!n!6VFqsGOsqnP$AS zzHpEHl{a7iBxm(KafrN7Su$0jyQlH7$sfyU)+=(he39L9K1aV#ahIozf(?6y10|Ia{B4a+y2}C)ci_K_>oh*fiXXK=K6Db>(ZH+ zY&jIxebVk{TCm!~_xvaJ7t^B{wx75r9x1y{IBomwQ?qKOOqr$}&G^`6+Po%nrDIbP z49kLUMXFDXiF*3P;h|)}=Dl|}CjFDjd8Zm7cH`;&S$C7!&YGp4-lqR7x+5Z9PkT}% z$2R_{Gm>h-ZbH2+Sb}RzPUeM7|vkncvD$# zQI%H4!rX8y&!2S(F<8_H z%dW~y3OH?6D$IZElqS3DYVW~hwRIHjg&VZl9;utcEZIVH%Yz;n}R~w=NcI``aiL~zw+G_jne4? z0-Gath3ykJIpI2A+h{@Txx*qNFp-G(epWyC*pujs(4)Vz_n^xX& zUvyWC+d=-`pZK)mB`>7TI_9b$W^&+t{n_t%=4mC{-1_y2t_4iyrwcAPPq7SA`Dy&U zPN)`R1gBC+6uk zc5Pa`?7%a{2vHgHU}ydt%4al+=9X}j8cxx8>UCqe#*YAlqoybC-7?g;QdM5g;M3cX z%liB%@>LzYEJryU(TL7t6xHuCF*B0_sg%>4l}-cal5C`>~rhP zLq;n;2F>JuAAj4D>wlm_Xy1mamBJDttds67Ix`{beWAV{?&efFvXi3hvRYE(FT7=nS5MIASg@%!?Q+~RDOGM~ z(;bo=E!P)4tMb(P|90BcTG8^){>Se=eEv9M{|?3@`X>dVpB@owiu(MGqyA-ho#wlD zd5^BT$9LTSyZpaF+`gKPmQP+!`&qtvKgZ_9Z*q)pm}>|=&UtKiA?7mE>3v!DJ7vzj z(Ot~=`_$7nIjFyK|8@~bj_;|2z<2NGL-xq4FHUEa<=Kes+ah-r8DVMjjW zb(QP$S=%gbL@)|1uM=?i`N`!rcb8?e)tr3Jp3sfO3SO4SGctL?uEu@#6I0y0>0E`7 zNw`3#(FAUz$2*SiYB9bnvM4*HeMdCMl#jd5ed-9jwtREO(d&8=v#&5I7`Jv#ve;m< zLhp~QkminK2cMO2e-rANx&3S8#5)QD`MZfTnJNdstKP~ z-|8*)RK0lh@&Z$L?$k9I@s$@!XC2#HXuIf)_bj_l{Sk43Ec2Xi>0jgGnlE`}(}Meo z(Jw!)^b#m56E0|HF8RsuJG?Hy@INUz1`E#c8XFZdX5X{<0#5>r>k5`hQHwVfl5) zWQyqCz1o{URWiS3I#T)N#N9eG`N|t{eq8@b6?h7_l}=r}jp^k%yLG7?-lmq)p<8ZP zHGO}0BP%BBX6D($+pKPI$Zrsyd2AWC_6vz5x3gN$_?W)h{;XL&XU(GrS(hYtF=?i& z9r=7kV@>P*_zRn-#^$K8ykBg;tx4w6TFEV9>8}he&sZI(oIPn(g=1KUL+R6n^ZJB# ziF-tDUvtsj+Nn`{-r-}fudTYbU0d@F^UQBcv@bifm(SO?(wAAxCmNB;V(lny^?p(A zq0Yw=exW)XHP=n-F0*gg!l%9`BTQz+!OHIe$rau^cyDsNF*(0A$~Er1G#`WS^EkH$ zc2x_wTe?&3W$@kzJoLW1ML4uCN%KDr#`9ta^EBk<%H$CkK1|hxoKbDJjZ;U zY+&zXuNh47cO4GPIc&%?VvY{Bu)HOs9DMlt2G!JH0fY$tqJ@#X&su^>Pi*DI%XW_kFn>-!*%-W?p{Ug*M|KGF#U_ zU0}H;%DGqa)0(4lO?|ta!&%m~%~^G4dq)4P@(nip)kkdYProcKJN^3b+qkXbsx=my zZk+fccdR@>;*EfH>8;le=OXXFT()NUQiaH%jlVw$G$$^r6@6UIbY`j1zWxO(G%svh z9jjxSH&<)7WoB*hn`K42f1X|csO+DG-K>2=@s%H!{f73=S{v$^hjLu zR-3O~x4*KuL;Sn>$KC&*?7w65|GNP9|BuU~rUYk$$i5dg6t%4-~)AO*<+haHA-;DQQm6>yCrM^#u=p-d}q>aoM%6 z|3Y@Up0@q6-XNj_WgY5_w${ere$+k|1AAB zHRMFLM#sg-ECZf{rsnybiY5Ik7r(r_ODuIgg*MJN8-luM}HK=JWaA|F#-lk<(+FotAMe&XVp^u16B)W%#QaT;O9c`*1MK^x6A$uh*?HKEJl%K?e85 zSF2qwNbhP~{$StIl`&7>yYjeA^kQ(^8NjjN=+`L%1)cF1Z-#S9iE^?rA6enQ z>zq(p;4i;j-_obuN_->KapF?%0uQ~JH8SqA78md6?zVOoxt+kWQ)v6{9hVs=$E1|q zU@PXm+;QhndGz$RpUrz27^1Fi5@|ViI9e)>;+)34Cu^S?we8Ja_m2O}Md@2buLXAQeYWYS zv_8x za-JOJ$mnvraeW43`nPI*D-Q3{0@)=$zPCF09$drH%OhL&LP+AsfrS-~8xtcQtno}f z(7E04anzO5+wSah3b4uLdpt|`ikKza%Bckt4!!*L^XZvs)vhaQnzWX@64Ew1yJ<;5 zg8I@O-W{6z+gCj+(YY%<`<%qp5KsNN z?yhG0n&Wt!A%e;Hg-2N8`xBX4l6lL{$mC3ZoS;^*K>CQ_0jFO(zX+^)QS@Wg=Q8{B z-bSNT?cU5?uJ6c#g4>b>3YACZ6kVH7>rEEMs=wDR=q1j+iJOvXt;V_kr!0!O?4RduuwS z?zXqH^YXs_xBQHdulvfm*K6NgniwtrRN&i=`kRl^_kCIVg59l(?y*eS; z=fgw=!B(Er`_3mAy*nJa;I&oZ^uUY%f-<MI zLT9w9#kL;t{(HxVt0{SH`Pu2;tYuzFTP}2+xl;PB{_EqKvv$0T*WKtPXIdm=9Vy3B zd6!Lxg(YKt;-51w6eUV-{HwilZr1Lz>;C=;-!EZ*tLg05kL}TqD(*J@e!DKXvpR>jr)7%Cg0lr zTIXqZ*Vfcc3*M+3-r{=ZL-7nbt34e5?CTo$Z@%`QfB(<_J;&F)ipqQRyZ%%2+g$OR zX{`1q=4IBFH+_v=qqBXoOoMpSf#{}`k4&Z8-~Qx%8+hyC)CYnl^?dG|7z3_XAG+zi zJ8`2aoAR4?0vuN54Gwop6V%VXuw>n8-t>*qhHs|%DMa8}|;|!j5oqCdTcz0vS-AT-I)Fud@UvyxrT*<&ptu-G@$FggZHW`FZK_v$D-zpUs@EMV;Ji_wu{q zhG>yorhAqA{8839jb8Px&qbOZ&1`tJ!GG6to_`l3m-W=jroEh+I;T84?Q`j}gZv@t z%G(}ak&IpE@anDIbk|hASe_|L|NVJ1|1{p;T>D?~>gV~}pMINmfB(7PwTJwpwuZ$N z6+N^xdhs~Pd(qm*fn|wKxA#r*nVe`ZUCO-crjFNGEN?kVlM)x6_6^J&Y_ZOyuz0%)E*x#qXWLm1oOV!$nz44$@^Y^!`GYgC>cR#v+_Db-@o8F59-(5E5(+=ajS*xaz*0oqe7$L7}AK;+NktOHX>fKeecH(#w0Ba)O_}+3#|);J5be zIWa;kD-tFw`X=L{*Q;>rn`8BYqX~RZYM=c$Xt|oJ?Ofu*O(N=tWFORs#p)j4@S$LX zknY^I${C*+9ajq^1*M)@T6J&z>w8y%_z(86)K7|>z|;8Im@h2ok&(u}#}x z7Y9t&PWO&u%yM#0&J>Ak>=CIuooMZ_t$DSdeD3~VA_w(O^WVE<`Ofv6qerkKM`doG z_aW1@ta}d!E8e_Pcy+pI+SU~()~xaHKPJ*ifp7y0JYyb~8qQ>FO)_V+yK z+;Z1srT-u4L!p=V#UJ@|V%~A@&0U2T2hpjof+&!Z0zIdAWjBPr$ ze9sTdIvlz2Hat75+Mc=9R(Z|y5HtI?{<1T3r_T#`Id?%{gJPho;Fhpe|0kcT7fxZ& zFy5ECG2*gUXdMf$fXeR9g;M)&G0r&@;(o{eS?_B(kzY!IzE_jPIy&9<)KvE0`k)lX zd`g__IP(L)X&yO|yX$ssXe&I`^FWaC%JKO%hWq}Vj_>ogtF(M(v-w~AuS@5TOyB=! z>W@p)_wPvk(|3FR?274A6*ioXeE-7wM*0UYNzr?oUp|jwV^BP%#&vtowQrZEDH$~Q z<=;Pe_rd$$8z#GkFYuLNDq8qnv?5Wr?Lzg8h2_uue;e;&dSN$jskVdJ-RVg)F2DOw zZJG3gD|hm>xZ>zlO3&QoJ!Haj5^KNgN&Ons{-FNr^!mcv`tdD&j2ed}Hm6#gi~qB7 zz8inug@5+d3>`i;%UU;oN~t@;yyENYhG{#a#lp`&s(g4;`Rs&)QY#puV#SVr6zjOV zp^QldAI+h#uW~xTk^X$ zUERi-*L>@yW#gHRGLzl!xnIA@y7+REfi(LH&x9jdKO)REUeB5lbF=1jRi#>p-3_hm zo^xsv^X*uCv$y`cpm{@UW<$Zm{hZYi9i-E-L(N~GVNxEyMBvHIQm_6^6bXspg)+Pa}U@5%haGer{iw{!S~ zL`#Dn_%HLEKV?c|#qS0ux>(?v4@NpwGPGc-*U3 z78hRFJG$+j^whaNNVRzH+iKIZ7t+c<%v^c0{r#u#9X}!#O?v!ACM{$NuZw&4g*s*F z_m#mjS-!Z;`cqPVZe#9`4^{DT@(c~%-!A3Ros;o(k-poWpKO0l?pkZ3G2>}Mwe+|1 zbEgQ1)M}WQl!`6qh@I2&>Dx!yFPtvRm#0gZOq*2N&}9-2w2p5$dEkVgrti$u zG!|cW*KeERI(Od`Y>V)WJ1#k4(fvr-S>Kz)FO;WooQ`_3WbKKF@^n$Dl{4S)d(WEr zQ8-Nb4WE(B_szzSL+#U#iS^wpy0~|S)AKbJ6VrRTqkr`>XtX7tkdIkZp1-x*q3Ghx zD)9@!ZfsrWQ*P~Lb-S1 zTR7;R?3~kzC1Rq#A5M!jNZ)(m;934&|4`+fiT>MF01?sMJQ)Bj$pOy;}A#I$tA|L$k3O>Me)@3a2= z%Kv-y$07Cg8`JXN^L-5e|7!j5^?!d|f1Dlv+j8yA+V#JPEY8l-}W}U)L3xt_Ridk1GUp7H|-R}3h zH^?>rufFu}{=VM)KlkMG>g|tIZeDr+@4w}XV;n;0CY%Dhxph{hL>X zeLKEy=VOKCm-oeRuHchyU^wF^YF0G#&f(XPGV=LNB!O@v!>v@t*!0xkI&5bj(447h&j&AW*EBE@aUow>z4B0 z-14~0Z|oX5Xx zGyX@$Y|pltYEXDG;-Rfb$xV)$eOJUEe)65i(0%Rwnb*^vX2pJ4y?$Qi(SKnGLJ@0o={q|$L#_uiJ-eg@+*s<#K#q4tpQ%)tcsWEIz=sT?YZs+#% zskgox3GREY#8zeJ$hOk|L%znE@U72yy+rKn<-A0G`2A(sRTIo}G5hyIi{&hLGV3?_ zyzq#g{kn>|b8~Hh&gUD#iMgu`s#})^?o(^L;q7xgdR^d#0A8yzoBr$l&-&w|{DA3M z8h7JKw#6^G*T*hRc6MLRA(5^r^{nXYDjmlMDcAnoE)Ny-Joo;TS?h%+&dg+3Yq7_y2!x`)yyB9bISZcK?^2fXmlA z0jks49489!HMi~gmOJB=mS&QrPv`;nd&Nc)es31b%+-~>oF47}V)GsGF5ib2ioWUG zDiHY6YN7o6&^yM1CHAs*n&0|U0yQEsSD({nyS_j%%#!iKZ437)wkN!#<{Q8Naj{A; z)cAqOSHX{K4!_hEQ$6tgUDn~13399M`?NE@)%tvS@zQX|3Aflkgh&3C{Pk~1ub%kE zGLZ?9Hv*WAOf1<9R1=)*Z{M!o~3Ns-Ea| z|4;D=A1-t_dE{I9w&hbcm3o-0QqG=oy=v>-b4}9{et+>~K6-GStEM@-vg4BJ@^=rN zo8$MqqDJ6=fR-qe>&)Vdo6Z}`ypd+;jsJaX`s3+!Kc6qWHE-|1|L5-imHxQ>|GD^P zs~vCSSDlR4>y8RBQnt(by!D;?{uhD@?lZQw+%CD!r@Qu9hR&SA?>{QlroOyXX>e_i z(Z<;Sz2~>2-jL(I+S>HVc6Y4lbL}_YGbER7R-TgiWqXU=b#{-mgvIZ^cW7Ryt$tYe z@uBV7*hVSGpXLn-N3Uyhc_n&;esX#%z*TZg?~3HBqQ?HBo?^M8xE=GWBeEBE6gpbl zy?q_I;8juD>T4_v&t{hCMzTD7ASBEF#Yaf*%Vd+c`CWTU*Mz72TVC<|+2$!I{8c+*>597y3)1vskBE2w zEWBCMef#m5eJ>tX6>buqEH>{o{~R5g?K2WNE@UnasDF2aRc)t6f>OnO)dHEIo$8;@ z?_(2oyzoDA+J*(P`&P%?oc_%wM}z&P#M4vj4-}Zj8E-yxg+0Jc@_EtW83)VSayV;t zTAv9lOyW4O_EycKxOY=+Huz0=xAe}7bl<0oHeZu(-1p{J<0di2<*z@@{IjVuA;RM~ zhpg9=3u)I`UPP@?`gFs+=HSMVNT#>XXZ~I&w?tUsfylaLLOgdD*eE}dnf{@p)Hph0 zx#70nTW%-0G^Yz6-LviBDCJVfj`PS*%QFLSF>x%u)tz3oH2Pd!LXwgaQ{pFPQ zdz1B)()B@yRrfFUJDrw1^F-D3*dGtS?%QL>!0`U&=_#jz%8u{z>R2g~zQ#jjbBC2e^m7E@{jlbZ~sr5{oMY#gziS|sqFuIe|~$< zG*e#TGy?&@(+ zmHl3N_jTPxxr{3}wIdEH<}e=I)@*UgBxV0EJ=5wZ*;daNM0+dgoLjucPucnKln{$v zCe0alv!d)%%M)ymbLH$ic(5gXDyPJ%xEo)RuP=_)5b85$o)x0}Zu(3g747$@k9|Gp zQ8;b!>AqOYn_8V54Q#V@jh~7i>s`unx#XtNfBnMV=a)0N|M?rT*f2%~m^Vc3?cUVA zlU@GN^}4sOKVDt`Pv_nL@cOT-Kl=awzQ6gvep5D<<(F9-4!yA1nBP($w%hw=y}W*) zRdu)Ri~HV&K0D3t?q2z)`T85>X9+Vsc=hA0cGu3Y+4b&6>X=gkQQrY+Z-RFe}P?_rk7$o-~t`~T$c*B887 zH~T@P;fjB}Nqxt%w!T!+SWy{xwnlnUs

            Ok(jUL`}F@tZ}JoRVR=R;)Uh+~Yr3`M zo7EBt_dJ;HTby$|xc{wr9h+^l>F$`x!YlU#aM&A(&DLfT-S+a) z*ByIiGU|p&%RTRApL>hR=7;p{Fr{s?B_cXK8IDbuep_I}lby%jl%y}{IJ3p8)kvC8 z*hRLhZXtsK<6Q3jyEnZ5dxdXFMEdJ(|I&7EWuCV)rnG2b*KfrW8fRwjOg#`LdxZ6v z+V0m+tWFjyd;8Cr*;kPEYu9eKY4JDasdenhX}pv^zgF+wm7b5)c8fmby|6=WpOIq1GH;8|b8dc{eC*JnqijpMoBn5h zzsy#VyYS%D*NpwI%j(=S6`x4eb;T-d782mNt9|Z7@f*%%t7>;`ua{-e;;$48%KtF8 zl-ncO?()86^K9 z)FbwD{v}%}h0_mD%sFQkcT>)SQGUx4m&z55qJOQ==S^YUz{4)9x#sN@PyHVcF2DG3 z^nIB0+YS6njHMhTCyOSuA6fGtE=p!w&f+IM4a|-fx4s@^^4lHCVN=$SYre_X_*&k~ z8=C5lXP55hEsL75^!q|1hd1d>`Fnj2>ubD9nD)9k{rAjoJ2?LQ0j)y;bz9%GGOV4@ z*4&`3^5VJ3vaBfM#Rn7)*T%ZOKPY+EU4bdt+VH^oPL?}4W|yOti^+f+PbT1o7b#tX50tr1F3?yhOH z;8CA*|MH>8D;Kxvcig$$8M7{I))%Fs9os&}sr=itDD>RzvmgGq=l;>3-Jj0jaZrmd zVxx7}vAvuhHY{%3TKz0WL2uS^o5$~iO#W-R&h%-1wlTbCugJHVOPP<9o@NeAI1zea z$>m}e#wG00Th{J1cKu?^)qMHV*Y;OupYBNIIw!KrUydz(x3hR`192|RKPED_uD*3(;aaT_GN+hj}~h z3a#9m+Q7eK5>wQ#xl-1#o8K4inp3oYdH*WW|9SQEi<(Nsg|>WtWmdlSn?%lfzP`3= zb2N|I@~k_yL;2%|EY_={_k&**ge*ROmA8}eQNsQUWf=!uBOI;PMR5IQzK|KJwyu9# zx12Wf_EP>uzjrry2tGKy&P>d7^V|osp8P4ynep|0!qUTKvzA_XtF%CSjdZ|;yzML3 zSHJunbN%g`pFb8`vvl$28~^yv%<N~Ki90yG1Fn|?5#HzevXfSRh%Rm&GWfn?+w1+ zXAhnc+OzzE`Eil-sHS_GJ9cfV;hOU3P*rwwnt;K%1Ip)(O8%Xwv@mLj2;(r_^rt&P zPJ%bIOnlAGhEtVV_n5D|)|t%k+tBB;_}X0`_qxu9|KoaI^qvwIZh220%U zG~3Bxa^Br_ceEON*EIW|x~z|z9thjpe5%om{T;ET;>>o2?sZm`YdASg%5MeC5@P?9 z!n;UL&Y*PaeG|`wof;M)ig*DzKq#fDC{qx~o z_KkMaZ|t;GpQc*&>w@WV3*$E*4hHQBIKQ|rif3N_=LHWVed=^tI}NWVom=CxYeP?| zoNjFUuKx^|*JdxOl#JEfQonh(!!&+9mK3#&uQ~ST{e=BLwdacOZk*q-@R9wg>{)+S zb>>{l5Uh<~ZN1@A+k98)_r-tKyj-GDwBxp)Ex+;EJxSq}6OU_6*4Zvm%)uMSxF_a) zio=wfC)FAIpK4`(eE9VqxJ`EZ^xOP~Z=N~6r{2xYER*@5E4a%~#8S}4A~SQ#t;iRf z__p1-wwh_7%c}D_j1Jr~8kfY_Hfw8stQ1&mXLRxR(!)15GK6eil)t})b*o#MS#$5! zw~U@#k4olBW;T3cXnX(Q%nvU11*_I+YTgJ559{8jroKy}S1<91RY=x@7hSo2TAICU z7xtStooe-IcpToB6%9?xd*|8Hxt?8S%Y7?C`C!TPTYAYc21$)@PLpQIQ)L%Q^ikf5x&YeV-qH z?fE0j2a>}%#X{1ReYfl8Z`)~~pc}AZeXOj^8NZ(SD_cdF9Mf641m0eqsdRVsCZlt1 zj@uK93>H7w@?G{x=Y=0HzaMrjP)l3xZG9q0D$7E!wt-2|uFH8&JTc%FDIqlURW5a^g>5JZrohsftZ*D=gP3Xaxf7OX?{r;=vzNLzn zy-NCd;iXA$(elat5gRjlV)~lD|Fl+5F?+GWq9QAN=Gs+`k>3|I*Kx?sbBYd_bwGU! zcXgMdQk(hugvT5HPcSn7nO@{Mp@Gvh>f|732sF0kRw(O9K8)nJOGseb&v zuFT>qe$gBLeK3o5yZd0@FNQ8DCW{nHu~kLSZT?N&|H+i)|N8B3-qwGu|F!(%Q~m!U zO~=--*VXN7$?SIZ%iX?Ns%Xx~NeN-{hxOfGTb+2aYl+qVu=NhJ%{IL)G}SMyDL4Oo z;k*JHTwUWb*5aqV>b1vk?%o=>FoAS&(`T*-~M$+(zPC=Hf?sf`Q_Vo^qIa- zzuU^ZTF$HVB^!rT=E?VE1|Q_#MIU?N_G(S1v4T45bL$%i&KJxzUl}SL{-BySrdV#* zOs2Ej%uZY1*i~?k>DOV!*9XGqXxsXn%zwp_u<+=cpRtd>x_=k=Q~mkbS+PI$%J*vi zi7e0ETlc-%{>txdragRG&mVStF73QnR@@+xSL=4+a8l*&m$!EF86?=SZ$2CP+u-$c z`6+94w?uP%=-;$hRU%>8D|V*QxA%3 ztCC(G`_-_Q-!Qs)L1C=A&jS9>*^J3~ENf>gtj^=MQEcbg`hW4CDSLe`J~}2_wz)?t zrSIhu%lXHn7A%mTnfd1Eyn6M;8Y{nl=kfSkeRbpJ&j%D|yu5RddD}(H84Mgdm0B51 zzCFv02)X#6d1ms9Qw-l)&qwt-r$x92EsoKT(mmUGz482%EtThVnH(7TE|#YqRv#^w+vZF-z2JA1U5;|4+w0iri{Hp{`rYEbBD~=5<>?*iY8Cn5@@qo>(uHNP{^{BM1J>(14}lQTYjxZQW~!JP+2rR*ETmqo9Q zPW^UOPgphFBO-Ud_2ubOonit_HzpM{Y>z13DR(}J&oeuHgJ{a@uIEuaeA5N9UW=5j z(abZisq6{-cB$gQ^%So79d0%M7{{FJGGLH4QS=kr@P26#XHbRa#8Mg2n32HomK zj}O1zTUpD%aButd6}P7|t-SDJ-J03Icqc}xBo|xUd%S;g-kkTKbCYA?X_%pDX`%Eyw*3`$qep}=iEOW zSmu>?VuAmkxT`lm285bjG>txZ=GLv!(*kmfgUsjmDlpHhoixo!oas*bg;m!|%QJ#` zR_zQu#S!tu;v{3aC5Le`*QGUy4W`b^ZDb-Am4z{xNobVw3i$5z$XAp-x!6lH%&IwM zVhEe(Y6e!BqVEN-E-_~Ia_tm3KJ$xAUjI@)w$`QMJpUHHl+`#ZP^~zZb;|Y}_UE&d zymi}@w*=2ozEgf%#4}5!<Ng; z<#YZ1{NLhxyFYUJa-a7ZmFD8>RxX?OJYxNEL7B4j>Ng6GDi=(5{_HV77tUDrV^(Rq6<+Y@=om9x-E#4s z=L`Xzgy38oJePSCkn=|vF$G-l;OJlyB74g`$H92N& z<-WP5C-fRWz5l*9P;|yL!~J(I@6nt5ca30a_g>i-cm9{9&G|Ul!6oK$-bEygnp z4Vcr`bu)0T`n~ySu=#?^?n^{=AKzQQ-uAlQhe^L=T+bgh(mX71eJS@c{>cv)+1`pMaBGu=LsV&4)!mFe$LzSL@a(Dk%T)5we15%H{fG1WH>UoZ zZ}#AU%>AGDzAIJVneO&Yw6?tQd7{G6>N!69jOLvz>-#TvOLUvP0H1KK?EAAic3&NL zxw6P={N~x}=KlRp=d67O9%qV+*Ky9$|DpG-X@1fc?X^-T+}x%`zY}Dzc<`Q4M&$Cu z)$be`d}m0mSW{S@89!0h@WNq*g=?cX%$|8)=jY6KUwL@moUF(ZQdzpHX5w1K3RNjn zFHIwhng_L8JfB#PcX?cguk;q5dd#wqMfE7jeAVc(?qdV8m?pSZ#5h zuVtq`$iCt`kYxK(a>?_gRaHiev;J;*ROGUGzQ_z^%}EMZdjCufElXxAV1D)6%bx2) zLaM?!sVcQVi}Ft&L%y{Z?uqbrIM0%B=a;H?M2qnAA9H5D%=Km1W6y2zJ@ThQbdX`W z&Eo7gCwmv4^UErjvT)D*--gHE3BKO0k<53k`CRz?iPa~0TIX*TVK~4q5jp#PN#(Nn zON3U<^E8{2zx?jCrST=7x!$`^O7YJ5nzP+vMjX?AgLmJ~Yk%336k0AjcWcdt?CN{0 zZ*JcEap#qkx0=PZ%?B19ELweOsgiKAv*$x&W{-ovlDwbiIC3PE?(O-_!>G45-Z;R1 z&%O5WUjFspU$@$xdvKDS_j~%y-rgpicaKCnQm(OvUpII-A*{?^_WYX6)kPatH&6Dn z-61FwZt0TBzov<8=W2QL?#(W}MsFp)r&KK$@e^jvIhXcf!-U^^*cCZegm*4+>8UbE zji0!(VF8!xkzZ%tsLJ$Q{B->O$&XAkwQe$GOZFM^YuQ% zxvjfo8)k1!`rKrw&6Low&7J3h?w-D927B|bY;1c!JG-8vy0uw@F@`VX&!>QthHKLe za-|ns=I~he@)_5;V-ZEN?Z)31pS$?~*)27VjmP9x=shg!ypt^6RG7Hztjv;I=N|6+ zSTnyVKY+*irgphtfwQIer;WU zp5)0pF7y(`Eh$@sP3lg9h>{7pH|gNf8Q`Fq#=?yq-HNLk7txBswHgoQ}KKEvdU1>a>1jkafHsvV2w zYWZaNEFu2qqR(!*PK;hFuI9W+SeDEAmebUSL4aX{^(nr4eTI)-_}=I~;}9qD;K_T# z(9n=%<}U{y?0;i>Zl>bXKNFH_p8ejt+<1md_^kAKdo`9XQdnWU=b_Pp2a=|n9@q8- z+VcxMX;3(m^*{DeV@mTEg$1*|H6_jWu*=wA8o0l4aY@tMtzHd!=NnmMUfD=QSxy(V zJFlq0u;O+$S6g9&oP|AC+m7pEtgAmYTK(OWb$80fXS44aAJ@BJ{?cdu7InRvzK7>S zZ1+c6d^^bUCuF+#nLojEJTk(|QXkz|8?xno^S28Tp+-8hG`|R@NXl)wAHn2N6LjdT z>ptJ77CU?tSkx9iW-als$gkTU{Yb2T@}IQ_BXVBdYtVgJ?9^~c<8{;lzfO@8J*7X^ zKaM$}$FcAD6^4k+*}pByS944a`mz1)k$U@!>i!#_=ia+rC6~VKC`0!Vp^ah3YbH4! zDqfJ~ukqp9jLl~{tMBtPh@957+rzr*;<7kq6T!vY{m+zRloqQ9dP|!=cMe_=_tV`k z&*$MJzccyClMXvXX2hJiq$##C?33Q^@)im4-OHwX&EeW=J;UMmhpPE;@)8X1?|MsS zNH24`QnKas>s8q@jLGf>SCiN8OxeA?``q+2c^=8myp~!6mYBy`xAH$&btK+2>v3RO zIs1*#1BWdePM)h!dX#?2Aa=9Grc_&vMIj!s+^oW87Z#O&+$Ceq zc3mpH`;f}sz*U#@u4^1Iu=pnZB%cVhd;vcYPc6wnTSPh7rfo z8_@?IYF|=%vG_ve(;&UnGr8N7H?6nR)nb2JG@&DtcUHc|XQOhsv*Qj>b z#Ldga;&6LjvCi#?KR@UH)&D4N|L1?+%>(``1t-V~f3nq{YuO?8Y^xfRPSE+u!d07( z2NhmrO)%j1=uUYMe`8z1#>cN6>L)g@da!nl;C0hosZ!@IEl9b2@g>(?0~6JC#wJo8 zy{RsLQa*_CIsDqkXLBU5?X!){iH9@d&&F;vn5fy9=f5&qUoT#ucIS?H5i@@W9=kn8(``F=-Hw|ka|0_Ov_nzFN*YW?Qjy-?>|L=au_@AGq zE2RBOJN<{BwR-w&jb~?g{I<>9v*t?l!#i>5?`>W0D04}xL|nhI`DU5H|4B)^Wz#k- zxVlO&#=q+8{hCt}CO?Y4n!o9`m(Eyzm4#yl|E1nnu{X18%1hNO+csyX&tMQ1n332W z8y<7$uK%|M7W36zle(+w^tI2cPFZ)cpr`WXuIYE>vhNz&UHf%c^w05GvOXd=H@@px zn>#IwZ7;t$F-?+nN8( zP5<-jIcKPYu__KakG-Ri!;SBz<4{p%b~97+jDbZ?tAB|qi7LF{=RmafxH zTeNrkbBPyi46Hugn3Ja{ zHW>l@R1)CfgZ#H&A1p5}V~h$-iRB&(jkvT1)jCP=(qJU1mjCQ8!BMCG=^Zi$et z*Gik$J4|=DHCN}*Ii3%e{ZT(cRaYgMAKCDfy(u8}f$+YG3QRiw(d~cb6U65^_)K1% z-o_CBMppFE8y1oEC$~Opo$+sj#FnRPY_I>QS#Wpz-&#Af#rz8zQ|Es(mRg^>^s3y( zZquxDPo*FHJngzKV3+gGZTTkemn-~E-0mo*_3uN~e(-{^H>p+n8Bv`%>sBpfXbBSP*_CgD`!nw7P;ZmG8 zZt%RCX2*9RMa03@fJ-xuV_=>2_uDvm5*Vr1dhip4q>|ps# z$Jp1mwP-oCO?+!lS&Rmk z$*l`N7^WB>*4!{_`-JE<>|EZZU+1Pzi}N#HH@9Q$t?NsjH=n({wDy?k0<+qqTcWP| zC-r>(V10*c=DCM;OIH04ZSYiczT9~G<@s37bqn=sT;y}Ip9l%2=^S0~qRi8G;j^zh zRm94oN&;jPdm5_Udl*~&5@#7sJ-EB6E!26%3$c^mxm|QOw>z z4ih0BhPOXlo(peZWcaqW{M&}|6?3|66=L~=U;KWwj&u4)n>`VIGqdtyh2JM|wrgr0 zbTutiJ|LWM;rGe$8z%G*s?VyWCX!`cuRAwahn47!nK|B18Y0r-cP63{ahWr?U%s*uebM0*8k4`KdtHi_V8R`)e1|dzQbm>%s(C#*MHp3pMPIZG#|Hs$IC&=8}SJ{*QXEW%SB$4yypZ_>l{;wzb zGGD~uwe|;l`6$af2r$%HUEZ=#q<=R5`o{rrx%Yp2uKBBYZhF4*gLhiu zkA8ZX)~zW`Kfn6fYT<_S&zs&_-pju|H8uM6FP-Q!IgfYQU5cB!F30k_$yN`eikhz2 zt7fCe`!|*F%oR4uh?=@qXC3#onv?$n_D-0m|9{T9bt^v$ zG<;Yy?I_Qpi*cpg zWi$vrCH&|7rrL7*PTuKt{gH;N8O&}TT@*Aqaq`&&jW_?U=mtq@^-AiPXLFfc*_}T7 zUfs=S%kDhdZo}R6XIXmhPNsC7E!AtTZc`PW#i;q4E2;6rpZC9ihH+Fp*_Fc`of);h zF@DyziO=<-`R83oZTS~Cv3`TVXX6!Y2^pP=EH{;7+Kyyft~5EQ{`R!%^9PGe-J`G0 zW$-pj{Pny0&wZAwLK}Lnh|k{ky0Am3l}(vpmZjXP>nYRX z&bgoAYEm_6Z)obXocqLfvgE=aoRT-(qNX%IS4-Tz$L(6(vf_K|_%7P`SVg~6oiuyv z9v#sM2j!m%H_qF?qTVWgLZtet*#|FK-g%|Un{&YN4bQrZx7NNnuj72zQTqyGFrU?t z2)zSq!n+&qEVBFDWO{hktHtvI_v^3T%oqMmGZPE1ok$u^RJr%x> zyC-HoUznq={4Iiaz5(z1O>1AWESB45-@oE-{$v@u3xEAe_*l{eo(MF%g(nGkKNs=~ zU0<~5s^WrdTMGwy9kxr}ecl=!;*=e?I4jrQq#PAprPp!RQ@@Q&K|>hV8R>b|Ad>-9-HeEiI2QX-vKy*_?J^H1I8i%#b~)~>Ae zH(0#>b@wXS_bHQHBKzu&-sAXtrtIwX%inLT5c#Y*MR$6@?DIYtNVGCAzGiiJq4MTa>K+Ro zyPfX0(v;}evc6Zk?Xb+MJ%VOgfeM#O=6_CbKH#q9TNeEM?~do*JZvnt<`%9!@ULUp zS>xVA>+amLT&ELx;CyIXbM?_3Ukue>7GL#|@e$d!TH<-L!`VIDjP{NTI$s-jyGlg{ zTTGvSao+Tky|*zromn;J6CXKOb}+pc%~z+SmHxlCb(#kyL5t{uM*1{|B7%dOh>;ZT&NE0394_RpPe zFV24{b9pZKtN8pDPEM^kCf74+*Ay|P9JyW?_34+4eqH~S_pf`KF3CJUeO2;a@|Fch zC8yS1&kcxoE~}mWJ|3l_yH}Tjjx-a~PT$S$}=M^ZB_!wc?Z44$&*PSaj1) zPFUuDwC<&=Z?EdqwC4%7Yrm*IS^V&4CeH_3fyd3d7i2`{FTbVC;GDBC^w;ZjnM235 zsy|q+Q?`E=eaFeyOz>Iec3s&6XLD=dyPvd5!e*XaX>ub}>s4sT%5%RQIrc7H5TE*O z{?@?u=&2h@u-Mn!ZBbT&5fXDhJkHvmP zb0h?|UY*(@J6Cra(}9Z6Kyy}|8Si>_Y!a=V&)>UAdi}nbz~kbqbu!X=uR_mTw7!0k zBvBsp(W7*>NXqMf7cNIIwq{S$+8i068`dk;Jj*s=@y0hxY7XV!yjNd1Vd}vTj3K|K zu}MB>yDjxKQlr|~;SjU%<7+B!nj3x!oJ&}|ZOf|(lF$7mpX(i5^t?deMGwRJ>?>hg zw;g`Do++m5n5EJ>jb|&XA|~g}QDx?w5wdRXx?SgsY|YCm4FAk!-_-2TAiSt>_ttsO zR&q~Cn!B2zu^>Sx`R&)by<)Njt~}2V9eh`i(>j5FTch1WiG%H_29M{znL6$J4g={v zqpm{><{jSq!SeN<>knERXUWx02{f_z<0?5tuf4gnq3-G5F4KiO)n(%vX1g#Z-`Q%c zW9|9n*MG?^nX*r+-q!h89{nBg>b>m)>6s4;4%l6gV3YVKmnvCN*kn6Lz1fiIu0g%_ zi;mhnt<5hh*g7Pwyl?MRi}21o`egIBRZPnj))ut9nk(6LLg(bIb!uDQ@CE9GFTV2V z_5MHH1zrEo-T!&E;_pZI6GgW6mGi%>KCgX4@3)oJdj8wjV}8v2G@U&==|(`GK=K>8 z>bB}P8Z{S|88QDm(`UZ*xi(ka&uC4z==DyHj{=(CEu6n{&8ge>7c@sG_LR0;%RD~3 z@KVFyq~A5svlk0E=vJL)ka-}%e!Xb(<`riwZ%s_q{cD!CoSQLyila~Rd#PiSA3i8H zs6F@5Ji~Cpp6msu?H6CpYPj%#;d{dy&;4s~jzT|Xo4Nd3S4b)x@o+G~9Dj{o=at=+q_3k4fieq%7-+<0NXXIjv`!>7_y+NLip zcD-53_eZhpp`GzMo()faR@QIT|Kyy0Gj{5alz=HW?Nk2GO^%&v@Gi*Wxt+{Rzv*um zOzHA^^&_G*`!Wk}{ucj~=u7uZre*OeEHwPwy;#<%_06O!hf5#xuzB0Rikxb2@YjU= zORI#|CtYl4U9gw&?ZU3-E2f@5`nfBYi&IW!$2+atlP2kIXpBt|klC{C+?TyZPF{Z% z0v0zvWllJKXQgS;Uak30?vzdGs(Aaz`QWzZq^rEVi}fy~Je$!LxyWk=&(oTprtjP? z-nRJf?k163C@AgneA0gRTaIk1zb?4V3f)x5l3_TB@txYkPxDu8mfm-;^ZG%t&3Q+K z7KR;qq1J*<77YtsEq zlx6Z%UiAP)1J7;A`6qMgdm9+CKk4Q~AHTQh?aRE|J!fQhKRhr$?)22R+k@4Yan?nB zuho&Zielp{a}GS&+Sa?4)xhjq@{bSU=|2P}+nwNxY>4n-oc>f{w*UOj8&{m_OTE<2 zO|15jmGine*+D+;{q@(*oCkh?^GdmVvv18orvo7#*7L&@9*Q1&8y7k4tcb1cDfSsp zcAK)~96mUCa*D%(a%P^*X1fJlu5N#)>YO;@|iZ9*Y%n_JbQO{$EWMMzg*In zTQBg9Hr_PXL?NX2d9hlMg~;KjZ)OSY?s_J*YPD4D)`$P!d|hIqV{(e8PsPGyQ&O4L zkH2>hc6#%2MPKTvD(nwTyt|#ZfNfuP^@%v{-3Q+mi4;grmU(A{BJ%|EzobQ197e9;-W+E2DZ#mn`@-`&DbY-KmZD zWN$8Hi~Y0DHrV8g1dCWom}sg(#`CnUm9-_7W$O%it)DMSJ9Oc7K}0$G9*M8-tS=l; z@e|zW!gz4OckM43wH7DzJTI=4U3Tu}j46|qq_#hsvTC25!s!Zoe*ZL!ozKooX>I$W zC>yXfCsJC&mTfcF1YWOQc~^^huHH4f#`^L|by&-T+alJ__w*E&UkHdf{iE;jVl(F; zL;n7Q6<-;%e1(rMa1>v3jHBntlj8-4)-}iU6|cP>$$NLP%#=>EuHXHtJIH&(| z$CBJg`Kf}u7EG@{x!g~*Fz{t`*cmmO$$E3`{Ojvho;%ug@63cEMW2s+zPH~j2=uRV zX5V1=Vb|W>_nUU;A1eE^b^kZ%AMcJIpKNqvVR}khr)+rH$9)r|O5|7j@D=a;6;rY9 zaaPRkYsHd}+rF*l+p=f+9+3i3_V8_Y_w+gE2N`}}!SMaE%A}0r>$Ywbo4xLEj>=Y{ z4)X&3?F%L34Vj8wpDkFByyBJn&Fik=oxT}owuG@Vx2^oa$XN|Dd{ zpMO8+Kw$U#n(yb2M9rAc`fSF!jmcTIZnC!O{f`+Q6!5P|n$k8Q?C#NdJJ-~U{r@Uo zqrLBweU0Kj`}#j?-(K>6n6TO*UE$zX>oTny^Byk_-~REWxc$Vtd^hyBtSp@_$*#Vr zYxAzghWj5qs{UI3?FseKm6_`*;ki%$;Lgd%mbHk!xWBKmb@`X={8KN# zz4>s_*C<`Rp8s}Dl@l2XY;z)?e_k9ea;~MX&wy1j>U9Rodz%})3k`Qh`}0&8eaJ68 zqwhD1=asQR%+Bd^TaV4Gxc9D5X>l`m;NF|nJl4Dk=_xZx=k>SFPCmBD@RiG)m+hh} zZ|6Ubx*O!TZOMuwOEn%m{nK`CNn~21YShU`me1DaGv0goM`uI+=Ii{o)0b^Fx?`8U zCL_M&J=ZgC#ttQc^eOeNUkpC{&Acro4m*v;8JMugIu1!r(Gt>xud48)<+Ju7hCO3P!pJi9rIVR?Ix$S;q$fKt`v0}n} zi`c2HCr>!8UwZUHzR={d>+?R$n{MB`f98o3lXMLtt-T#LzI)`B{Ak*;3&rUQ=%RI#Jpgd*!tQWf;U)a#$et+dDzC9v4 z*)~s8R8E~0&8p0BoyUlIm*7Q_eoyynrnXBa%S%qEjJU&OPsvuxvB5I z6IbJ!oGQPa*{#u5)YQwuziVoBp7>NQ6S+NSO%IgqvwAUuZ`P@V#5p4D9d)r1B@Y&L z-0uqbo-DIX_{Y0Y|#Y{E3|R zFZHK*?i53@*qedZs^76sTgcrcyXtb@^uNF4c27KcO)8nCUNqy>%Qu48o96pAZjIz) ziT}l*JVQ15*j{6{@4NaFnJaeI#+o)3OX}2aO8s}aZ|~1PXT|>f=jQl7_nddl^V{`W z6Rg(%T;ts_ueW~5fm^`=JlThSZfy3wtNkeJ{&m4ERvLD(brSzS`u_{9d97bp7QNcO zFZHj;Ev6m2b)!9eT%Ug}Td803@$rIyo2}K$f_x_5ycwC^&$zg`uI}LVdvf`V|6=di z99dT#z!6fm@r%N|Woz`$ooL{#F0AKP^W{>Uv@f^8C-Spepe}uVL^sTRx_)yhBqy2kHHq7g?PV^x#vTd52@>v7IH##xs&jk3SdMT60RL ztUS^`gFp9R@h@9Dp10l)zFVp-Uwy#ndlb`rkq{M^1L?Uhbn_i%B@~pZMHV04Y+SNU z{_xft6IJD2?Q%#v$lJJX(X<}r#jE%3e3!alX=M4+u+NLD563M#kjwn~p;#TuyPdbg zBR0<4T=VkXwqq|t9@i}V`)=jqDdzht=7g{N`6#8?n(@w&iluv_?=m{13yXbT`;F!A zq$@=aDl=!Vdb7QKub|5#seMQ5x*6}p9h-N2+o5^WCha#>iP2kLB(r5Q3-eQtg50D> z?cZX5Tk&x%;QiuR%;~eH`C3f!GnVL&l!vR|nN{uHo*C%m)trAj^;^!m zR@0Jw;iV2?LEa2|p&;M{jn{GpX-*TPk}&Svw?R zd92TQwW(j!U+a1*ZWnz2`~JGq?N3#5`5H^h_bM`%r+rjoJ=1ttdCuHd3mbaBeh|rt zN_=rAdykmqq<2&GmR?kI7g%63=Vmvz4BF0+^mgnaC;%$T%l9kZ~cEx11G^%Cnli*KIV zI6;gxuU7hgs-4x?{VZqEg|CWjQ|9I+^a&wlzn%1S$4m#{=SKi7ldWPrM%-`>( ze4Friosa+ib6Q$20zW*8inN+wd*^%2{QOPY7WJ;zQ#C@m=iW=TXSa6E6)Jq4<$m%_ zZ(3xd#=Oj{Gs;q(yXGoy4&qtx!T9J+>A)`vd#3JZ~EFV zch6P5>hR`U3wIHNZtToFw(VP_*S>$F5agrH$dlULZe`e@rORO-ZpmYRFzeg9|FL&A zN1N%oD7x!zyVYFSW0C%Ju2k7(siwZ!Z@V`oow4%ZR(Ziu`{$(ihn@HTy}f_H)c?G= z?d)l{6SUr*E|kB1!DFBGHN$Tu7i(X|anCnDvrHrIaLj)`_aABN=9jONz2nc4l+2>& zDtUc}mafG2D4t!ukF5%xvROAK+w41(?Q%a??7CjvjrDJ?yb~yUuWqRHV&D7E2Y)}j z6WOv=dx5M{$2lRh%N?iBne^Arbo&wcH8MD9>pYp9%00VRzI^=hc10OCo7nVcE$5ZW z`5ss-JnZ2Va$EA($Jf;jnfdqk^ydHjCx7hr`TKc}c}KSY`{Dn=ZkBT6LCFJQm+yR@ z#bb6t#j5?bcG=C7dAVZUHDZ_Q&nkFS@6KcVzI0FL^2`5)y#Mpe&lEe#vcvARPS)>T z(XqF)f6r=4;&r?t@a)j8q;Fea?V0h6g(d8VSiFY3b8uepR1a$a07MoboZr#@Uzm*|9DtZ(jD} zeL9Ooih+ke)8p$A^Vj!i&kQ#I62Go_hs<<0x22658?={;>=6~c{c~f|*%r^!6HBkZ zxs=?{l+LkKhHIT|=(PjF7iO=o*)sdD%<&&C5y1#-7WDn<<$o&7N?c#gclSSAtmbXHQU0W^*va*A2ZsONGTyYGBn`j7AF|I+_@5)NCf@2qw1nRb@>NWjh%yX?85Urwcm`d2lr&FxWb zcv%pgJk@HZ@3hy&Z*Q&smR{Ose!EJQze%<5oAZIHlLvO(`&@oh%AW0L?&S0-jX!i= zJnp&r*Ll7}y4%dH>CCfOe-}Rdyfd43g{|U@pi2c=S7cwY@h9Z}{XOBlvF5ZDn_Lwi zEalqJ`NK2eN7oa#+pCX=9%$96%-G#~_xkhp>%YJJI>1ozKJHY>k-V61Wx*!zbg!B} z-z?)UrD{>=^~PYM#lauT3!*0m^Q}5(sw%j?ZI`TEgCO6O7aLAxoOtiHci)P?3$BUg zy?VGiRV_|y%aUUM=5J^3TRU_wu&M}l>-j#FovCzToFEt@ z;_$sddui;MW0DK3ntCoK6@HOTXK;Rah$}VRZhFA4RoCoJ&G~p>&myUFKYR3Nv}Odk z9#8mO-OXnxqp&h&_a?PjSHgmLJ}Wp}GvjZZ>Ue(L8+pShJEzd^Z@xUba=N`NOTGM^yk41IBjjwO)UX-8u zmLSFB;HWO)Ajh0%qq5oBr780!Z_`a<{necfLUVdb6yAM_d3|B>i8s-$kLm-w6|U^^ zsb6eo);c-pWaXBRJbmToT&v|61lstk%O)jD8(NirsnvdOdZ~!R>Uc^z!<%#SPfP6B zIF(a$a!UK+lC^>#ehDnsGUKZ`Tff`p!b^>H?P+0MpEEWprdeF5(!9kXV&lF>T`l#( z1HN~@TN1AsUf$V$sECVK^TDIJ^R_;};uR|L`1Wl}yI(Il8lHlVm5BLPWA{Fpt=;n& z+hd3JH9bCW6(WyKeZEw+f|cpW4XxeA5_~0d?#AqmU`;x;KIDU~1gBP^fY^cGA2v;& zc6LN_k6cCm{Kq^dTWrp1NZiL zMmZ*7qYt&bx9aaU{Xf6`%zyKVKkMymkC*TJ{rpzGm3UgQY@dMrlDDZ34)n-9FB5Mn z5s*%l+VlH1fAo~a6LUXp%gIffc>0UZf=GGhKsDFU)eOa{zmGOO{-eDh$8}r9p`Xn< z3OQG2e!s-~Z|mDi^^~a>oA+e>)r^=I(6@qNS+U*gEjPEH4u11oYi9Ty4Yr_+;LfE5 zi{DS3clJ!>f_DPPnG|?hegtKFSG{J$@=ULPmhx5)-E}+Tk4PCzxRJE{n0ac|Paam? z7klP^{$74dm}Q!lmA*~!9xc|Y%k!4<=KCIqSoheIA)|Efwkgja`<=h%R()ry|0d3D zkCV#Mf)<;f6@Jdz({hYK_w?djx9p3~UtIoj(bCVwKYymoyHlKJ9=}LTP2|Qof5-L5 z>~E|4KUJQRwf1XevA^6l`}xH-Z5PyT2CXc5UmMco)SlvThoy0;`q|9KNk?YQJ{o87 z_P1S?MYeom*~=~V-fG@#2i)&7t1|pZ+TOYM@cADCLJofNJAy4P9?W7Y(`>r=JGxWx z8SgyKs-+Euo1`YS-78`GwdeHy1)(2Pr;7#uDVJIWS&BZt&A?vrI%0L2c*$Db{;xv2?=F)!wF(UV6}0x- zLwSRR%O|-Rq;NhG+bS)Wp7C%;yX54ZYOMEW7CPVF7Ms57@%NcmgHKer?(AgLi21&v z_}>E4pAWys|d)y7gP| z+dr?v^`DlUQ~uFDKhvwk^2N@nGhH6+N!8f2?uJGlS8?OH>rXsRuQ=G4Z}jOD1LwrF zYX%pqf_9#2yAt;O-r6(wcIh-V`O0u!tJL}+{#ilq_H6!_EO$;wE)58Bk8EnXaba&l zM8spxS65cuJG9`r+!eEow#Uv_BQ4#7g3G_{>DFz0A9+n8w@T;@W36v#LqS!V?cpN| z>Y4j5bJy9;oqblYVA-s{N1i8iOD;UQ^u>oe>k2J3%F4|;`&^B4t)Cm-W>AglHJo+W zrv`tr+b798MaQ=sf2qX~a3J`l#GAD*Pg!U%F8ZMI%=C9?tWn!)tu)bYMIZ6! zGO{~5~p(S`>o$*S~+tjua-Z{ zDz>$;Gxwc|TXU-DMx~#DVccfNWEX5=Ja#&^v0-!29Qk{>TA%z6 z^S^5TsKCB?#@3VrOWtK~nIL!aTaY;G#+q%@*T+5lSN|-1U(53-J?>pIc)t1HG`=8n zXj}i}JJr0C4*yBq{A06O0WON#5R zJIMU*v(>%*_TQy`E0ukCF)=UM$iVEBm>8#1UwXM%egDr)W%k}{CTZ*zu?h_`SM=EW zuiyUmo2My$e_i9G&NV;(AG816Tv1cebNTaQu|N4U|4)7H5zcM3rvH)L$K3hzR~-=k zzAk9B;;Gx~nFNCK)6;G#{8^P#xh?2SS*`bro1!<;UUr3S+v(4j=ooR~%>Ob$ljdvsJ`sM`t)wP${TJ&} z;YhCo#xYNmZ}>ajj$N_*aPH!7+ZWby2D+7UeL8=tJHgw@i1YK#-CG3MHXrK|oU?Gc z#M3g1*GF1}j@G%U{Zf0^7k{JewSNAABi|oy`6u{i9_!LMIl7VDuiq=nB~4kf;7O7F zdZ#*(%zu{bHs;6cwl8D<7JqMc)Z5;c)570VJw!x)-|^%=pDLS>XshB;ay)&``-+=? z?!460`4V~d(E;N-Iob2?>b_t*!*E(c;dI^f$~omV+nUdPIO@LQTg8ETsdR^p28NN+ zE2{myYPC1jZ$8!V?(yS(vjeH~9$!9xZ_nkMtm*eY9{pzVookhR`&#w|8@_GK+s%00 z%=7zd0i9Dv7{9FR%IUcMhSTNr#%-0Y5)U$eRNPdW$P=@f-I-Id>}prwvJF}j`WY2^ zgv58;(>ooUooB3ZKx*UNxeRG<%|0A{U0V%V>2NB|G}Sx$_UolBUQ&O{zO^38hwHFH^-%dx<#hv8ACQr6x{xp z?Sa!5FIKxVbJ+NPR4!U^ewUt+osim*hx<1@o%4HF-}|`|3gS`*tN$PRvB>VH((xj- z*N*L?t|6bg&7C76%{!LIMOII}KYi7E-@w_V$P|@~oDLXS4D#TJ1VdNj*z) zjzL<=4l&sqVM%;vGR2)4{%2;eOOj{tJ7qB~6LpVM^yJxzBLM?{@j)%GjvGJ?6^;Ob!(`e6Q_2uyB_~ zLD01O=eRD^Ud!vtSt*n8Sk0Q_()y;y~Xzx-Z2PgQBjj(nWpmt#eyAMBXst>%yx@MOZb!qYqp ztX}8rb+fPfDz*K0cl0;=``dMv*}dB7e%iUuyMM2oOnJid)6GKG8V~lboqAwb;;qdR z-`6|Lk#5_6`A)A{&EEK4=N{8L>zke#>brhDxyzhuj%Gsm2AhgVRg=6e3$N)&Lt>7U+YuRBtID2lV5|9ZjZS0yig zs+yR#nC^}gN&RDeBuMc?N*F`#t%O}Y8+$+e^KAe7^|-#lbpHI!&+57V$i3FkpU3&_|N6?$1~PtejC^-EkJ&nxCCAe1rOG;v1+8oU8FkNo zUcuxLvGVTIjP8GLsNi@d?Q!_&%HS~#;?91aW#D}Ye?*7{rP9L4VeSC$Zk2;_WwrB6prnc&f-m` zOO{Bpy@*j0^m_Hg$Tp|=&#!;skLUk67vFjNS8(*PKW1fD|7?DCYFiY8Plu_Zn*-Dn#l;MH=;hgCkS~KtD=lQ-}XDyStQE=9uM}b;b4yj7s`2C~s;yjVb zM&ECh`M<7e6T4!fYq30N@dCf~k1GCm7tW~9E8ZWM>;0&&c;>&`M|i5_dt9rHciB(R zHYt0n@q6-xbET>Qw?rRwoj+OsVQ1VHzN0+SIqWvm56G0P-632Ya(=n-q11yqCoS8( zyUNrOuhuC~PEXgF*0K7?(e~@VKSFLKc41u2r^Ho%;o##m<=%UK75lhePxYDETaxlb zV42`6M?+uFzwK_P?duTxV+62u@5m zQW?56F3oVw8sRmujo$HJcS;^I6p`TE;83y@-{O^GPwIQ?>SQqB8Z3$w+hN$-`6mNGY%AWb(Kl*jH$o=UJ zJ?j$ge!k8A;DOAP3!+x?0ck`k>Vr9M0eqY~_e|`7eHa&08AbrInDO+x= zX>1W>IX&HBw{_3^P9Bp#e>&gJ4&1M2zhw8j*fRT!`Ws$b<9p9`rDwiXyl1z!v;Ob; z{o8NuKfgV7!Z*|B-~1N*H@tIftM``e&LR5EhtwrCVy%w^ac=ZTmVNFN{-{AA*|5##jGs_xX9axkjK-Ey>~H_M7k07d}uk(Oh!9 zr1szDFK;B+mgJVtoV#q^rHtiwco)rSN+@lT*>1yL`0tk3odfLeTAOCauxr0P`fcy$ zBj>Nat$zNi@Xw?0|9OAj{eM{ghm zfzf9{Ly48I^XggDK0Wk1>|YZ;-~C&b%BegXr4Ow))Gi&kQruH?Y2Dx08+*I!7M#of z$?E!6akm8bj`N-;kMpnp{_5*OmIr&Q4H*{ZZz)Pvj<$cPV4k|Gzd`x-b&JL3vRcfi zr}Ft*Uo1S)u*vGi;jNk>%nZQ-pLLOQcrnKZ1*u};GP=5bM=bnTc)MD z7kXZ-E?G47qMt#^hRXHqS9*G9lq6l7zv9a`pGfI2i?+)T`I23ktN6Nh-FYDS@`KQf z7wc+o+u6&;=M-M#y|s5ur2ek1RoiUeN8S4nAo2MS1NRo^h7;RQ)Vzt*Wqs&+<<+M( z2YxR&P!pKR?rmehtfgA8pfi1SNcy=lr-=G)zDGHV=CaDaLM5)f&5+!X_`yn4pV@LB zhfkN27~3xA9qXnr))_}Um+E;D{%~G|LPe&GH1qMAZKb;p>{+*5xqn_Uo}(ag2)Q{3b5LtD4* zY+v?9T~23l#P#C^qHMQkY0fr?&}WeiimbWUaArHdWsBIaTR9Rgt8`w8Y)seZn)7OJ zc!^~F{kxOO=A5f|w?6e|tG?!okVjU*dyO?L_Fa|I3E#!SV$QOnry<($lfRXfGV|xj zd;$A+`JU%CZgZaFU;J#%Qu|}4r`>(HE=&8zx!DzA3dT2c5ASWP>ao34{?VrA6NC9y zwyN9B8J!({=L`dt-Jbb3?sKkdG_~F#lJGksb-y?N!L?lLH-BB6-N3+X^?A{~zKiQN zYM*<5i#@kz>cOrX2hT-(xqn(>erEBd`2BUQy5BxL%l*UH^#8f;5BuZg`~EI|t6|#g z`s(w{o43#H`(51>IluOw<+Yz0?+u;R&OcOT?ubtLZS`-jg0)80)Njk0Os_2TKfEk3 zGR~xQZ9Ti~wPl8{xi%{wxYpFXgl+cR&<*z)R_JgWU!PHz7Qnt>TWry;v-iGiuZWM9 z-(k<@oUc^Or>5H6Ci3OuiPizGkS63mU&u#N8<5! z`?UYe)H9gzXx1G2?bGj+hWx72_4%V?eDYd~>zc(A45V@<2=iXAcK@Yl8Q%W(kF8u^ zM&`@E4Yg4ovgxfn^Lt-URL%dqkybXc=d&~oFrkK64BJw>*2 z=AKlG7U#IUvG=oP*~T>17{vhA=)ZCIZ|=Omtk`DWe+xPNdKQ7SxBM--h5Pe%uljrC ziqgBT(o^qeO8l6n-W$q$dH3f(X_c9>+nAr=O8s0dWDSi5>@vjPvDM66pK`cJiHuJG<=pRbF5%&z}C z`A78ryN~++pPl~b>}CE9|1PiBU@A8F7SWw6bNHP|^Q^yzini;O{x!T8G5OkljQ<;eik-ef!6UU+civ6K}r0?#H^QO6#mZ*UJ5?Zsr!1^!$2cD|E`caF<%jJ}rX{ z9+OO1cO38Znfx#3mfpSw_DR{x-{hRyxS)99X|0YUiSvFjTotL!;%(uZ^^PZ%E!24K zELGlnTVDN{8oYAfs_F|{+5(@}Oe~t`_Qpnr_1c}Qi90-F!_2rnw_3WLO)S@cV(KQl ztdNsp7L^-aIvT{%R*H3D&+DUm3l6dS>jBII_w5;m@nhVz)GS zjE&?!b4;p;IKSys$j$RTj7F?;nrtVW@cC)>Usz-M!AfmDnfD*&y;CT<;1Zl*w7&k4 zVz9}&#{mo1wFK5Pxh$HLmSA;J@Z*dEukLHNUB6t)oc+7&_x?5AGPnG$SpJgpXqEkL zYtpD}WhjyL?ubECd&i6G2mLS3dY$~XZ_QFArb$d`77tiD)nvOiKihuNL9EGbv+>fR zf)A$c1>bhX2k*BIR}?6^{_^_YmkdTrC!|F`QMkNwk-p7mf2+I?rc>t@To5Qa6|(t- zj(xKhJO9Dbw+&%$`WMVWm^XsYITw%v&Y};q;lIrv!ysP>Dx{9Y+d8T4)VqMp}pXDV?5iB%4aq3c!{-l|j zkAMC6BKn%4F}k#qF*i(7Tp`nk4TYdLM5XWR^UBwKcX;mVYk<_-pJ{!voQ z5f5r6e%f<+_V?1&va5OST0ai>CRjMV&2vg={NmYj1;dx}Uz+_Qe5vxD>pO}j{T7|z z_e_x%5%kFP^4)2%n{3IDoh`U0)znT>8*kNzxrJ}1(A-}Tw=-!gLU%04^m z?X%z7?>r{FSGJF)m#oX~pL9~S;Y_ZwvBK;n;(=$|Vw9JN20U&(H>=OMO{ru3q8D$D?seYqVcPdC z&$fCjPY>9o(7bPp|4lz5Nd`#)wI7VzLgb&@oc_SaVBS>|;5Wgg&R95quGmxoraumq z$9!+JT|V~w-u$Q2ze(&eh}3)dUYf^&ar-fbwJSGQ?d>*fsNQuXp6$k#DfHW||e>xKSa@bBvBVg9D)sCKL9={l>;);1ZU zFP{Css&!oXcWatkQqcRP^!<-cWs3g2J+qi4^kB0|W81b#2?k6rm^E&yuHjktQKH=^ z@Ic~WpXSUm9cCZ7-6;Yw6`}|JF!?#KS{LVisy5cPV!7~&Z=J)1iBilbHXS@UPc-G* zT}9#5C_VI9I z`>kCZDKpdxB=J?>jW-r_e6ueQ5BV7mU*WRvkbJ4ds|Eh@9F z#|R(I+gi%OzLg&D-+2 zD&XX_Us-JFZ;fFM_ceJ ztnNv;asBFsjJfY_-n{F!sbb0v80n#%nu*b%CBQ90(;g(3CUR$v{=H#b6{d8v4GP?t(r*AJTFBhJ!dwKslQAU|p#{=sY ztz8%-CKSG+rQc!6&c{9v?;mF_z07juM3)qqYsH%+f!BFszP zB9crj9m%aG-7T9$n2%X*7!?fD1Z);h1{_0)YHIq7~NTR{cK z^!kl+?=I=AIGMfTthS$0w^bX%>)bmhuI=cREIzEGWvv&}w*Sb1km_ZZ?mbz*Kz8!+ z_-(m*X?haVPNy$9ROi~@mdpODfNMj6W|^APapm--hH3p9YA-tUh7!K)*1d)M1tH<==0 zr`~AV(balVr}+A2p4gUsJo3rneY2C;MQ`n!)-|)5OHVrVUm)+Uv*&l|+}b|ty^}y! z!rrf4KYT9S%((T~!v0>{X~`Gvm);+}W%2sX`pY+V#Y|6H_r}#?0E+2ksYMn6RwD&xcV*(k=gxm1E_!utZ~%=jrjR^+7M?x^{<#_+Naj;j`G; zFzw=vEBD-QE|(~EF#BTczdE#5eABsihwpxs&Escl-f#4( zZSpS50MCQ$vHK3ZP^(@vJ(Hhj6<>#!YIRTMisG{A!Hax;{HVK|eKGOWvI3-vcM zN`C1+XItjBTOu~}!gkBJ>CcaIe4V-X$<}$%!OLnBSJr1%^^lpI3$9M?b6#ip>oc3Wl=~UR9U8kbHiukZnEv+r z(?w!_91rxAD{eTexvhJ1b&X988Y zE<4?CG8_F}cuC;x;jf>>zB}y7wo`9rSofCU(7f}PKGjD4pWeVZ=c)2HCwa!239s(? zUY#qlcA9KqBlFiX7NZ%5jaP1a&)~VMZu*IUbysie7Ek_q z<0sGZ&A(*hznZw!rq0L|VtL$@Ak*U8J?F%_zjrOyEj|`goK@Q#FyjHkG~uX2YU|q{ ziF7Qo{2Y2{t;WyTqBA@*GIeBMh&69?J=n4GXW+Ne$T?q&AHwi`nBze!5%V2)XaO7~4# z*>S^LJ45)*^j}uj6?hNwTi=l`+0r<@o!QkiHOIb|FLIQ>p2W^JpEq?*{@v$u zpUH(~M@!4smK^xzvGu?GkLUFg`S)^GXsJF(^VhJ$umn^|{Hcpmib^>T~(*-wOQ z<=#E|S9jB)W%H?1d)G%<++ce#ujFQE&Xli>uMcwT%D#LXdEKnNbwiU-3J5@d|^595N zbiE%QIk{=+{`vE_|2}GbCu5&~;F{@Agd{uem0mn0eru=Q>s{x$wy`crFXvKO$)U4- z;k)_QcXtYYsg``0zVqF@Lsg*~H%|)%O?f!yV=%+F#IVGxh2`SSH$zScBzQ*iZq_}a zVSVbm_x#tPQ*P(-&g1;B{psdH;}83F+BD_WZa;f!v(BP8F8^`CB7dWgIuWOr-?p>o ze(-x{LOJ*AB?a-q26GDXZ@f0X9UHy4F@4v2N4uGCdC$F9{_d^5Tg{utrRw5ybwe{f zt9X{*r^|I7%S27*y3@^SC4 zf>!76+v_$zJAJh_)6Iod{WC&2EX=kvb8cmf48P{QQg-g%dZuT2yVKO?cBFs1)4Jlu zFR|P^9Srep#V3E|vwLmMnkFgG$Gq{qNbvVKIn(b&I-fVp)KRz;-1C~{`DMjBV zYqaf<$yT_3RxfIAoRe*AldDCAoO5V-jeXC`E4i&Lm(p!s?z5^3*M7ZkX6xP_2l1sM ziRtB&oGT}A**rhaXnZGh%Qxe{+fV;A5zv+ss#oU zcWssR*50hUWBRUDvk$IPnCd6AA~H6W>ER5uPK%(*+av)OdV@s1Ls zFjl9z(G_o6?*6n>D6{LO8B;P!;eoySXvxk>&vgC3L{cmyP;;sW)4fUs*rl`N$$#X?~TPfGt znS2lZY_mTnZ0%V1G@;#%adys<@1H`J3tm{iwzczl*`%F(>myiyz11tYzW&)Z^j=U9P1(<=|xN$t@0>&EDs0IceV)bP zXU}WFYLnx!T5lNmBkKKX6~8a{pImlD^1qJ4l*XGGf2FM!r!?={^w>sX_qpS_XVSN; zhE9`6f64nM^JdeA!yh-SwVnRV_07%jvdN7RF?*eRcSiG?Up?<{nm#jDGJ?tBSB<0P zJ+8g1x=cDVSgI!R9@~8N4C}4)ePy+Ea@j^xG?L_>Mf4S0elPi!V=ogS#I--bELbvn z%7;eZihZA^a-8GY&G&YJ>AZ7(N8YseS@Ro8JSpCptM1MIDa@bChM%cu%YWeqGdwn` zuP7B}(XZn9b}(Vdulri3H|F2yzGSleMs%AI0t^(*hTe>^>DUhdZKb8Q_G4sY{O)!Nkhk` z;WUq++pkmI?{rP3=gui-30RVQIiN>rezyJcobXs7hy6)Xzvs%%W_eK3DAW3yf41QN zy~aG%<`(sm-%1*k6O?>rDgRPB{GO{%e==Y8hO1v)rg84_4gF!SYL~&VCx5*Zs6^Ag zeX=0TC7;V$z~;s&BTm=(?a#wQqI6%<{!=f zbE{r%d-;A3M>EY8yToR>wOm;rH0Pj@>M5uC1y<9w*M~5$3OKM|VeL!1Cf?_;$biFP zni}(ll52{2>RySPyK^6_vmZG;*^RqoPf6LOMi15J)3c5q{^o8W_eM6qtwQJ5pL3Bb zb}O$i(zf7E&1z0ov>XV#>dv2V_+UN9%D4$v@NcJNGLq!>J)n>1Wl9U6w3vZQ%U(e!}NXf8TH7s6F=Z;hDnzK<{;t%Y(Js z%UE{5)r!*-v21$3v&VMh^+T4`M<2+ChblY~zxst+R>k6s2=AuHUdLl^Ufjk0Z6<5_ z+dHRpj;y#ir|IDDb8ZjqijFmiIQ?Iv{rQm94Q+-c+77aPTdG5^Z~VX0?(3dYbM}3% zv0W7J+9B6}ZMIR|sr_0NQu$kqo9=&IU1(%+H90{0FkkUad%2i=5pChq8GknQr$5-E zQ*h?}yA`iL)>Pf8nIBsGuBa__4F{XTt>OyLc82$HTli0JkdIW3VM*g-x?Hg2&u5`( zZin<$nU7yR*~FdprE0U*|I&tg$E(iT$EYzee)$}9=#oU#)g*x<`=+heTe&~h`Q_{H z<#qC>9!)PiDi9m}S=Vb@r2e*tcW$S~OYbOgU44DsZatyGxm1j8<~p+v8`uer{Rbn*K$$0zdxUnfCm%)3U2&@7o`5nP0hM*)^tr8~X~6S1?Vv zS~^)|)7|UG1Afnc{P67OX+Qr@|M={){L#;sh3^0R_I=xf`1Dl6zw;#{Hr-!hH^25~ zbEWTN zJ+nn{NB&vvGaEx5i!KSc^In4O^QOZNTAk7D%Ex&f^&K{;oo(=(8~*9mC5{8NA7s+m zCs)p~?#e$bSul^8#oViMiRO{Vrv70ouJNVwdcXT5o@syo!M&RY9d2oE5H>e#N@j^Z zWB1u6Kw!y&37i~Va=Uy|8V=W9t>`q2RO_we&bkuNGgb13(V38UKmT-vl;}%U2hGjj zvYh{LUbIiI6{n)u8Lnf=r3b>)-yZg3Yqu6U@SXElkn4lm$p==r=n2P^MTaynay(jj z@&TXXm#rN03@Y?RLf3s$e!HD@lA_{4n<=c1cCRT|@8|RLa#r_&~5k8itWwTZEZ}oiPbO8grq;%%YEY6EQ{B6X&NUdpL_TDzLdqScaCYC-zOjJ z^~~Prl&$rITl}X~LWx}7<9|ovJL7--x_>X{^!Ysd>c*gx4F%~J^rN?zR=)7ynK03! zRaoww$|mV@wkM~(6iQEJ%Whj~yuN0k?3*pN-{!wI zb`O47EWvYKEbror(mJ?DPgnsBMRZqJ(R_(MtybecCUERQanZ|%Jy$K-g2 zZq-49jsN)^Udn(scr!CUu&ow+n|7C<{}}7+U1AqEUey=Tle%DfZT(@5RNnYY*BDqV zB%<7>wg2&#oOb4)vh=5;Kced&XMfDDuPn~{{~`R5{h!_YJB)Ar?_{#wDI4fAWuNt$ zsRtOmKSnN3tNLmXQncu$kAH#QMInQiQMV6n^D^8QD;DG~%zMoERCI}L?Cq=b+!?Nj zF|u1RT;3vU*R^w>i@>&Z^AFuvX1sA$U!3ZRD|2d-8v;Vw?O$blUXXd&+OIsV>C~Oh zd)JlzJUXQ*d1_^tMEctwHO1TSYRzP-4fJf0nfNBj!M9CmR+wDfl6k!iaV38YzP^&G zIq~0HAo1jK`$PJt!u)ds)x;ua>ue7w<2|^UY3b`VD)U>cR9pHt>z=KjLr0EgqvHP-Q7I9)aFEHBY57k=2ZZ+2A9R$-s5 zG@M;r)O|DeToeKyFFSYb}F-_!pEwMc^S1x^F?PqmXi6h*Grxa{WH@qfA>Yje!<_1Sr(gX&(Rx<-$%(LoAN;2! z5W{wdra4!l+D$->~j15;setsUvoN9Z^Uu3C4BPjIqCk@b<21& zXHE7~%x(I>KC#qxKb!m9o$}8mmpUAh}q zU-xkHOxS#={@vmJg&!6i5HfhO>e{6Jwb7SPDlt9$wBsR9F@+ z>;C7%uWPGn85r(u4_DWfHLNavA<5@??3L3hvjqF?B}lCwZN7;!(CZG?CtiAHjPTwyPf^DQi_Y3`*m+mOTC^LA)mbN^u6CtEY(+c zadfsg22G8eA}6xViO>4aq7Cz8g${B%I4$w;Tqb$#>13I2ljr|==CCke#U#m1Dbalk zzB)_{o3KSTA@v$-!opQX=l88WJtw*1+r6mQ$#OLZ>uzwLu-d-&+N|O;hQF46y%zo6 zak+G3t$OaR>B@6$|K&z8H~)P%xAs@|f9~Jk=Kl?UGyngK`M1{BeZ9Zd?XUKt3E^x% zt=XnUb$9(v3Fs;;na*2UpZMcl!tty(*Hq5Sy1edZ^O{+8^lxMArg(`5JJuhbEy|K% z=%saRrr`$8g)2DS%$v5mzB=+k(zxrW3VtFs?hhN!GRlX7;7PV46dJ7ygG=wV_g zbpKVzZXw&HjCqw8u1(m(Z?th$U6M)8s)syk&F5-ms~A-$OER(~9GtSrbCpKO@&oSi z;UW{6uisd+{;ZKaaSrUwlA;N#a&<%{`&cH6aH1GR3ztn@!3} zUicd9>~`OHbO9I@|f&2PdujJbypmvzGlfJL{?@Nz7ZZ=T7wq@%^;^sTo(13$ zL~{9kW?h{x?_mAugm9i9e~Vly$BskW8TV*2)g;f`m7z0Y-7cfxU6<*<{59vV$ygl@$A^gijDI_bH!e0R6ksAEYBFJ zc%}5y{`Zo`?>_f9UeCBSr`$-#SK80VWxLyjf{njKScO6#hE9}AmgwKZ_sV36!J3(> zvw80KXL{OADv)|^`t9~vt`$4eu1NQ|ta~3ObEi~uMhd$&%jOqTr?l^DSZ8jUnc_cV zjl1FNrtIjyc>%w|KRkW;?|*K*-L7qyIvcuZ5bJRoqj)&*|_q6_nhdhQURwu7=5O%UwXD@ z#|BmpMk5Uu-tucHv&r-JzdQ@l8UUt3ir&!s?X_7kSQHh+yAu zbpJbRwYb9U_5WoVwkD*VyAix_?N=^_JzK78Gkmxd7bjWbe|bs5-OZ2m6%-;)6+RH) zDet^(8g{+sYU`p~naKu`JWWxid~2n@EWLYMzV7G!+x_*s*n&Sl&N6tnxT!Ns^4EhY z1uf0VhaNf}xD+_`b4uZ=H7u=x8q+rKv~J$0cS^u+_p0exjn1M^O{(VZUGeC427P z{Q|>YGDjO_b0v=t{~t79X^t zJ-b~zJy@JGDe_J^1Ix!hQ*Y?3iRmakpmFPeT|Mt#MwQDEvsbL$VOZ{HW`1|ctBAA6{Bvhqo;TQ57fgyy_c=xpZr$Pv9RQC(I>S#0JOmj`UV?c3_EzpPoP zCwp61>cU@{;NUZpT!TVvU6)=x+HT_)v|1-@mC}lH!cHF?7l<~WT+@*^v; z->GcK_6a$fwqV_{6TBZ~beIn^Ew~_1!yxkFpbFNyRwx3 zo6{8fc;+SP&kHpw*f^G)3VQDA$lY-MNct6jfxRV+CL#Z&9h&=CRzLq?l))vU+1@Rf zu;A`zE&2au=CA9tisX zG(+l_?CbjQ3(pe88B;V@vN5wu$;V!Oxnzz1L-j-PtG?eBzQ(q}OfDy&RX?GB={vuZ z#S*`)r=DC_U#Hr7|F$^Sxri;oN6O`AR6LGMUL*UsBQrhe-dB+upR+9HEjRvuNv&kX zti_@Z34gCHStjSxs;zl6w1;=IOsBLIFVhbeg$wQ%%9*CPp7!s17<#(7Feq?;!TnEn zteEqrz5lv(w-TdDMod?fR~iFbY!0Vk^)u6n)lN0SYHzxh#MGYO7{@(nVP9aC9jDs1 zO5MQPy)hZjd-ttxdYUekuWb|ix>fjL;>B8C# ztk>@ZFZA79GHW4wbeVnpM@xh2xArtK*zKS9kM%WY7{eS*$#hYl_C;Y^KKL%?xRiDy z;!gSIoapYQw^*gcTp73VvT2oNGwV#uf1P=l`*G3F$rrx`@viM=Vc)xE>w#<6HaOPU zMEEdeu^SX6zjpppojE6OVs30oep!~hrd$czWv&Z9GVB?o#V?yIx#7Gnb7TDc?2cvI zW=wh7({la#>8ia<4Ek?HIcnukCcN)F)!cWYE8&T@$lAyV(Jx%tu9pnb8oxLGITo*& z(A~F%Y2xJ5U&YJzR<(W-THGR_ZN%}~p@+LQ{)5~FzvLrRtoMaUis-dd}isPTPOuNa{jxw z$Ls$HyxMi~&;^x4%e<7dq+UD?Z8*-!tyy&_#qQXfuRI41Z{OH8_wU1xHDVz~Ym5Un zuGp8JdiZ5dc!&;DBVY1ayB!(}R@iqvE)r9Dv8rf#N|eEgPL{bk-Cc3NqXK6#zOp}> z-q!Tx*J|rVf%0{~?3iabWR;hlTlIdEV}fo&Lz|}HM%ko4XGLq@#~yS|EPDQ*@hktd zHlfXYx8~Y6FaIsqXDqVru`c&KOMCX64FTD2s=xN@HEL}4{gk0raLA+k%(TXudjGB^ z2Y7thI=J-H8QPtDiZ^$s$gJgWW6(NMlf=C4^rnBm_q@9s%lgL9cg_jssaYCf>+OqM zjo-1%FE}eA{P{pzQ=Xd3+~4Zj7pKj%{kQgU)Z@q-9=nR)Olgu~YkJjs?WX?Bng+#< z(XyXH-iKXyUU&Bq%ic#aCDH;X6XaME0wltvBNdm;e8$AHqnstcb!v!7@P4_lwntl& zckJpeTd>}K&h_VoNsj^?KKF_ruvpVRW!BjvW-or(F`t<5TKax*hl`FnLx9G~HTnP6 zeXQ4R@K#$s;qiwjlddPQSp2xV;z)l=SY~CS{0sm3Z^ggw|9}6_f7)A)xs6+!j-L6( zxoM+TJja3uuT&;1-&phS`-N#8)g1>`&rFL*f9}6S<*i|;| zW4`dJ`$84k(q{gN^UHj8T)6ru@7})J^!-0?|F>h#j!DbiiZBk6*{M<^?|KdHmwfExSAR8%?Vm$0%S;IH{T+MZb9P|2LgqKozjyO? zpT76~T;KDPk@>H+wntx9;oD+&_QvUZLWkv&HvGCU?P2KoQ&~#CHZ5Nx(taRTdrx}T znU&M;9IWF{^)cJnkahn=j>>1}D$Bxccgoo|bX~JxbXuI-b0G8n^OPS^P<-TTw#;nC37S0{zs#wvk3YBL`Uk<@ zeR|Kn>mFojVdGl;fyM5_@5PP11tuFbUaU9Wc=!h2q?7hJix?z2*zJn_H+Bd**j{~_ z9Dg^7m&Kt?zHWAByh`V5Q=irG{Dm*S%GKt#t^M%3@44A*hA{7iw#Gku?;ZSd;Iq|+ zU3)jox?j-SR`=&#|D0VL*InIu&+ENyP1>I3Usn4|b^i4I&n2^`HpG}4+8HP^SqWAwyIaIkpmxA^UZl^-3pYf6 zKK*f()$Vmr>QqVGMjFHEwYv-HL67ll)W zmkaA!+>nSZV*7MF!L-+J!9lKFFDw4;Zhq9aAn5NV<%XcE6AwBh=1aVEX`TArfG22i zzskcsoF%OtMhheCtD~A5p79mCy|)kP+nADAHGQ(}y!xd7cmIEgziI!=y-(hLefhJb zr1J|rP6^BwGTf#q;Znum^5#ZQ6Tcw)L9ZE5t_xXrfOXvCDT+i?H`>3o~;U}+PmPPSe4*Z0elsskHz_8;oqlqAI&e2ZzT($CrX z75{Q#%x`k*sugZ{e!px>WbmD8O=pXejs+XJW_zm4uMTEyZ4~|*d}Z~0kI?OhQXf}e zT^>I}=ltf6e~;OwO>^o^F+2M0@l9D>S^vhwXkx+IEA}s<)bG3V``kD(DRINH2Rrgs z{QBi9m@EA)Gpcq3N(gx>crvzb_5Oy~aQ%5mn}YR?=&J(1v$142uF zo8P^kn<2KqG<$1(x)F1e#>6f$~&F8e?z3}1K6czF1U*E4N zevqqbyxgTzRCCu)r`u-5Z}JX)J-X}7{R8_O6n5?Vf6^x>;=0I$j^sJKe!ZK#Zr}Ae zv-rmDi7NJyU00^|#%?&M#?qXB{QTFwWyjqglx5s)zh2xRwNxm_=tXh^YeU5PO6${7 z!dY4qZ_mik?tH)V*xypWkgk^bto$80vjaO$PCBY3P{mZR#l}9eujJ~z#b+I}Uzt9R zW_;n@BdU6N#p+h4Z&}m7^ChNS`g>cICE)6!hOenUFP^8_vTGQ>JNV5|lrcVD|K-=I0#iuN)HxDN&0#{S{o9Qa zI`*$U_A1Mfwbt_T&(6CI3AvHV-!8Y?tJK!|R@GkH#2&`o#CqmPTL90aB(;pZ8GD{4 zJY2D;!065Sb1Hp&hAR@p)rv!2O`Y7hd|P1Vw{*+E@CL>XcFWMmK~ZWU7pqTu8ReKY z#Uy*TH+>d)^jfO%_{DnOtGCuA9NGV=$~0hQwo3oQ2~1NI*J^*7ajL;tRD(^l@%x0@ zOOdX<_bQm&Z`M7ydYoH!RzOE12 z`2+JOd@&Mubbi(rqmmhqbeGtryx(?oo}SOO?tS6W(;b65T&Cqo-EIx>_Y17g_vu-= z;Ev<%BdUcxe5~69E_|BAa_*?*E>{7E0)>??Q#a~{N^QSkcJg0@{MwHJuT!PY=Y(E8 zQpx-0-_!Me72B3QKf|E=`~OTi?v7Wz2U(9^_@f-lQ@C@<*+a=MZm`dixU|yh-18WT z9)-dgKO?>NO?A-bJXGgg(7r0Wso1No%DY zUQB-Sb{f$k0jBKDr;gn$nl1i!%fB^p$A2dMj@0~Q7(Q=f-w~~CE$=QC@NZkV^LQ%9 z0+*}eXS$|6=R025^Q(73b)&E5xkayk+t_b&zGQQD%?aTWKEYspsW&#AC5)Ga*D$*` zyB>P-`y%UwSCi89e*OJBFXsD^=nqYQ%Qyo~8+fm_&4_upb<#533E7vYDL#-rGs#8i z1+$7n+J{;ZtJ5D-HkLnZKC-4cH}e1A9d*w>yCm#6{gDpVv{p z5&L~^_9F}5`41v@UwFOf{H@kyC#L+6o9FFwhQp!Zdwltx{j!sF8X^~dnm6UAlYrYs zHevPT9MN2c9^PFM0_m9p8|2^{WYkvLhx__tBe}C%V@4~Gxf6CGg^Y0(lwc`#6@&3Ck=jIH7 z=#~!&=@qVyHk&jG_!%wo>cC-2yPq6fu)ww%PMl$Fmq=9Khb$@6A@ zDLj@G@rM7$7ZwlEH95k?5_a1vCooQK5YGJjlDS5H{^d5dQV|#`76#*bXOwr3rDq6*MibzhHRp%+XRKGVlQV#eUrY}xpGr_ zYl(rx{dM!A&E>Y*p@#&!R-9NYO~Ru z#F)u`_s-mS+@rEya8cYEkEb^x&US2lY4UPvceB?qgBh>hn=ptMzRqDTXg_lAlfZoK z)`NRocQhs>~=Nnd=2R%|>Gx?ibG|!^-`u`@Kb68yI!TyHx zpMcG&?8BuE*H+dByvR|gu~>CIrCFmxbJagV2?N#_Cze?=pGmy-N}=wB@r<0u>C=7B zlx)fUAhP|?Z;_*doF7x1Yxqv?nsNPQNpMWp^%+y8zNKB7$fli;_#j1jquA?ZllXe} zZgM}8%)H^?TZKs1@*_MiTYqdmmm|)SFk=D3hUCcAZ$E#Md0~I=x>>{OaEQFDFyl(f(ke#P z@O0Id6JOT+>X=?q%k`&9p0i`B&F{6Rk3D#9z5Z@)!D}xuc8f!&kEK6RyHI{m>;daF z*OM!CtZpy4^(rp+jdahXIXW*Ni&$-mVb8VuGI8;vHJ^_xnZ>a1rHrwL%vxb4ZVN8m zDD@xNBCo~c#An8AiM?F1S?zzl;;(zLUp}n=b1i;b`TKiED}TRw&HiQntZRYaof9-Q zU#D*Fi%LKJ{lUkE(6;aTKhH2W+`3?_(b}})b?7?LJKwbx9x5C-+`j(Wsr~)GepmVa z)6f3&|M7=N=hS=O@6G$>dG&JbF1-fvC6Uz*@f+7azVDT)D;vu*g@kX5@ya)a-p zaEBR|T9cC1X5VOBP}Hu+KKb+tw{`R7OF7i$elQg-Ri3ut?Ou(YM#e_FKADK9#0PMN z&;Q1H{?ajHz1e~5r0#Z}Qaq4i@c2UZTf6NWog{x`^{ra{#s5m{ipjk5H+*bN;c;2G z+oRNL4`s+2T{;}QRmOrP|T4$&A_J(ruDxT{9#%34aM@GD8mg}qdl;!oR`PKeo z&eu)n{gVH;|Nn)5Km7k$eydT`R&KQY|2K`P$Ayn|m89$J)!$#uPv+ej-yD$tiMl=M2H~te+DTA7!ac5I#DUHzDXnHCGAGg4!)N zBy>4@+kaTu$H#4a&+`0nPuwFLmLE?pvzBQoz2&_2)~zS4_Hxqm^a6H6k4&Z|e5{Up z@?s8Wo!oLc;_9*;&Knz7{lB_N)wyofhSGH#u4V>u_y3XnUdE&;#mXVQg>`n7(bB#z zrncYe#1jOo=eTb9rp5H*Qrvo;2JvrNZ&b@#YAxq4cyZ5iRxjUy>ME|e&Mi&GJW79- zu3~wmyY%7)--i1ErQDMu&uB&7C{IzdDnFOO-xZhsz|A>)sX&+4Hg-wx5O(ozS>Ghw z+ZjUkuAe=7&7ue2UaTy6p!Dlt(Hvfur4ftxx{5-4H+Nl%c7G{1exA8w$OwxDa4+1j6nWmgGhU#PaMH~6AgemPbA;(4p;T^TyM zt!tA4*B0!{zOZ9Sn#`$;ooWkNmBjNfi+;PNBj;S!y^&zpbZCdw>Rq?B_>mjY?K$e%~R+6;zf#AN^(uIfwe%*A|?m+JG}?L964g@$M*f{ z3(09*)eXtMj6ai{t}A|8;&NQ)h=zwu%LH<>t2rL=I=X6co%{Np_+*kGU%fBLH+ z-@V&L9<4_%Hs>{KnQ3;3p1Y`gPWfC2>xzI=1+P4h>r8FDbZ7~a=+{8Oup(cBcN&AVCqwo5k43Xya-QF! z8*}@V!yAz=cRlV|-;m#H8y)7h+c3lWkuk@o1CM^D8@|-PrN9yqVd}H3{Xom2zlRqr znd$iE6{xRmnnoJgzsoKH^4#svn7WTE6|C+P-R4vEs z>y~?$)HwK+a`-kGfaKkn!GYoV8Z zv3}@S*t~gP;)WyZZ&c?tui(9O>{*GMf}UA_;C=?CLOJRE_2tsW?`>cHKlpv$_OO5R z-_+z~fBJ8{;^XsuGd}gq?$lg-B=?cs*R8gSoDmkO4GO+ly5!13GZNn`uJg`HREb{4r^Xj``a?igs?zH8>#sWuCoN3cmU=Ga{bKdo z3N^`3YDEA2soJKuYMW!I-8?Vp*P+SR-s*16ytZ}b{zJQtcI=e?@gP&Ka%Ft=!zrxx z@(cA_HulWT=Ka0>c=c`DbAgv_rE3>$460Jh&Pn$OOW($1@UAP6@x$z?B_BS#*&8S> z{`YFD9h+3??=6N#&p%f3hCaWx{EMvX|8+m~N)p*>WzHCH-<|$r@d4)t$rnCtVp$Md z(bx5;;ltHxXQBTm(r+EM+ftCPUTyO?@kWyWkEYVeN)1UI2h$UKHmL9R-*~=Z1H+yk z!9wGRWu{x!T+6nRF;v^WTkcHp5x-eNDa-yAyVl$+y#M)6>5DfKr9l_^gpZwC_Sn#b zd71Op*OwPJ&b|0TY>WNXIFE$2Nsm}s?ESxd|Dc{|>>Ipzm*<@e@9V!=taa4cc<C%~8wU2xZ zowvOd-BjLn^G1MMwOX#s9phvC!UnI!-?6`YedV^rA-1WRA~};-w_S(}e7rE>uaaG_ zr_34SUl(`HkX^rC{A*Pz!=4S{Y&ml>_nZl5TkGo_A zy(TFxW5(2!$zj(MPAoVO6YbBuG`@!b;fbE>w;V9{wret&QtO-T=!JS_U+t8 zD?g>ynMyOPjV|okaHw;l-`g%NzvQoLQVLE+<+GTFtM#@$pYJ*6*FBp8tA*v8HZUDx z5#>7N{;T6$lZC6`>R%hS=B+aLQgX@d<0`o`488G5syi1;N!H8TmR(M}e*NsMtfTCg z=3EuguJqcleaG>c8jsg|UV45{aBHkSr=!`w+H}(v{)vvZOaVO`tPQTaELC{s`EpEr_bt>~uzL79ZpY7s(Qeyq;51VIcoLIB1W9@}=JW2u|cC)pnmOiwqJ9a-< zFhgSU>lJ>#B<}@tob_0n@3qNVc>YPdS&_2I7bCX*^lzn<0f0gO5NObz~0-H$>r|_(Dw%L5iAkN1mJ!V^YkKYaHz}ToY z>CtEUejlEE*g5R^hc%i^YSxGMWzIQSS^O-adh*^!j8T_WM6~W7zyDa|F`L?CHOIio zYZX6yJ@p}d{{LNf@A-av_xJ3qKmV(>IXyEI06M4$!_MhF%sJ-w~_*t`C zJC3{xXxd{OShl%y`HMN%?o798{ty|wC4W!#f3=z=tN;9e@VzdBUtTZ!Y5hj|+K=vv zW;eAPXB!wCbr5dvZMi!?;qcvSo4W2=xi@Pv@;hXn>k7McNWEdr(wApGN|E8`jSFX%-@w0xT z+q2Dix1Wz%XO`SD;RoN_TuvOn71+=EhGFZGi`&1XU*@pcz~c2rS@plg`8)o6Mn5`2 z_FrdyB=~~$4ci8>^#9Yo>zr;VT>UU#T2eE%uzCJO^&h|83YMQ)#%cVaHE!bGqme6{ zXPR}+G-Hh5)@{4S86YCP?Yop`uxhn_1aIDPtyN18o>4iyj7_5Y!Mphjje{kvbyj>T zv-9tnc>7}7)eoACbs|Q}zEi(>MQ=F3=klpijro$#+OUMy0v37gPji`C16NMH79>-y z)|0m9y5)EEnzN!C1Ahw$Pn~wu{rTPFQRP2ZSNIG4Ch zqkX?P-?Am|?KAyqEbx3w=g|(a83$(wedZFLrW95daPn_*yT#W2QWu$u*0ucmYYu+y znqGfjaoyf3?$p^kMAf%Fx!||$<}Z%uf-?169-(eYKF@kpy_<4;Y)*4#&;Rx*CrQ9b z;Iq%^8qeEIzAQfP9A-Z={pPoUg~vhm*px$dGjCOE9k^ieJh)$Jw&wm1eK#BYO1jqAA7>Ldo4Lj@*&|H@rUKKovJ z?3OX9>22@UH{J6uEPfuoZN;vO86~_LDFLelZb(KJAA2I|Eq?8m%BRI!yBV5(ad_y6 zKG|4q{pP=i)8ktg)3Z{xIV|lvU{!ieWXMD%;vW|MLDBV3TzO#x^s4Fl9hwXRpX}_ABtD3d%R~u)s>kd z-YmV1Ms}W#nUA+tKPqr&a7x^K;aEUJM(Uc`6PG4>WGoK4vqJme0e(l>>$~6l;M~0O zk@ByaleTe}16SP>JU8i3L*XGH3QoG*#$dcYol~lCp7YvRRnEBUj$M-%Am7gSICz+Q`Y20aPJl1dHCFF>A%nK|FmxXv_D?>ZTYwG|Htyzo%~;Y>ECV>b^@y3mjfe_?`NL?bn5( z2S3wiPZYeM!*sh)_we^jr4yRpE6+c9m$j(qc)96Y{vM|Z;Mo;H4TJipM4WL;IO9dzQIN&?X;zlbqf~oDxQl?d=zIQ+VGaaj%ka%V9W}m zg%(DyYkhMjcYbW2np+_HZRr$7uVw4ClYQpc2+!bkpBK1!&X>hARu+G9yR-S+>61am zYGR^OD;SQvJ3Rlxn_gj-3w8w*PD{~qj?-`{>=Rn&++E)HpP1#E*Bhyzx}(-@?So;QLEr! zN8~S2!;Lljts)XGMMZs(dGtO?jO)#dH=#c79lrjVv`zT??<1RcJP)6E@LJ09?`bzT zIWs>0^51+}*s*gJdi!S2QjeXj<@z~;e^a}>vK6xhUmL$e`-PoC!WW{0OsaNp-!bsp zGNFIbe69oS>C1T7rfa%&-}j$(bi=YRjtu`3(--(UZnr#oPeNFB*UBH4cSpIV-e)-U zK$^2bOYgAwC*iouXQzLw%4MubTyNkoYkK6xWcK7$3e%4Tz53$v)UkNBZu=7Vr}5up z`m{|QUQO|g4ewvE|Iyk-(iiuLgq&XWtC>fm{&bdv#?b}krkCI31k@|&JuxnH4itaN z7P6wdsZ?s&HqMmYA{~(vGlbNfw=Q$7zbC|5_j%s&ubZd6?zzSp9KXzZANw=r>OX&a z_RpX5X+Mv^5p@n1f%j9i=l|a;^We!87Pm8Avoy39u97R&1wGK&MXZp9u^M%jJ3Wl(Qe-fTL)F%6U>+xIjyj1A}t7zQs zyz>g@-3}!F*q4|4!+)94llzdvrSC}_nyAa=*By`JH zAjgPt#Tqpip_lXjpGYWvW~XbDoKR5lR3lAGy7~=IXZ@G&Q_c3B&QXyFitTG~{M&u~ zPi+&ch%(EKG@doPG;iki-eL^<^m*g)8BYW}Rx<70C8WJh)L!%l%j7G6thX_W+L`yx zPC6tf8n{XNz$*P4?1nEBH!8NA$lkjs{{B(lg^zq!?F^sw*5L!sf>}*#YQCu@Zm2b2 zTEKEX`{bsRhc-X(dfx7sYPMVDte-}mJI-4{Q<$NgWwe^m5sv%cPfx#at-OMdVUpwh^AnQ;Gi{^%vJ4Dg>{(>x z`baYL`;NT-a#?~R87z{L0-9BxZJvpTB&--d{`{TrE%o&x#v|?Ln;T{se_a&3NT^}+ z%!V`PHkr?DkiHSv!RT`!#ER?Z$&V@Kh9DAzFfE_-k@4f%`r;n z`L6t0rY@l`H{vbAZ>$!WsTWoJ>kY#%sY$sU*5<4_Y!7~9b-ds(QOVfweBR?17jnvD z4&3-SV_R+s+Y~QtK8;yI7u#m86n=Yv@w>R1JA+z{jvLGAe@fR{8MGPqa{S<%=CjC2 zTD-d4aBJG5Hy+E`g)6Ndum0hC?EeoN6Y2QF?XPtl<~#6oT)*yJ30gk(hIN(V_FpM|*~fA*Jh?Odc{aqT{$y*s z{N(XBKY@Q*rh@r_7lN;DR}RQy?W|q!BIFvcOZcUOj72t+4>l~Y=1FtS7u9+qEPPM% zS{M(P>gI`a+FrexcWj!UB9o-}Tt(ZfQxEf?ZLmN8C{v|wJvX*_lGC>K=6|X73Vp+HmC>J z#@fza7B8tV)##dL=S3s&!MuuH>a;jX?&cyVLkVEjbl?ZxL=asbBco*L>;& zrlt=@-<)R`zdaTwu;92B@8lf|*)N#QKiRNs;>^XSyK%*nP{}=D)DSqE2`5Q>W{VSs#VI-wSr&(pf0-PivM?)A{*)udCDE^VcSy zKKgQc{O9Mat`b7!=a%Z3@mkAOzhPtC#o1%3CR=^kL+8%?b^VVw&nS_8yV@<_U6}N; zQ~!T&{q+9i|J&vBS-PLRUN3j;N&TGGd2HU*1(J;0BxLTaW}3WVs>gn_rqaDRIq}a; z`>vTLOj7;Aac}=_Zim+o|JAMiQ-6QnwP>5Q@t+^d|GyN)_K;=Kic9^b=}j?O^XrWp z&REZ5+{WG#FM2@fqrnDyF2Km5sUvPo z2-n|@_iY2 zzg4U?p5&HXx|d_Z&DmO8H>fa0@iX|(xMET9zE0JyNQ?PP_F<=JF1GX1Z4+)}ujp~_ zK76R_tDEfJ;`QHG%<|Xihja zSL~c(wtrr!vU_$$rN-0dlPPUto}XQ0Ute1v|1=&cG1mo4_rs_h(u}j@Uf!FomsvZ{RXzW;JoyF7n`QoQH~co;{qsqDB=fEE1@+~j=fp1G z*ndccL%G`FDD$T?rf2S1e!Cv29&oT-V)1mT%(@vJQde#-+m{h?=aeDjuT zAs^C3Jw+GJ%Vzkpdh6L@BbM)sLPzgU6!K7!xgPX6MybH!gXfEx0z1nWqzJK2;M_aq z_fMW+5koichmw4!4AesEdTc?OPfFY=zrng+4YajoBzFM{CHjO z$MstsmTP+y`lnW@e2wV75WFHu`r}N4pZp%aiy2Sa9Q^n0=bb9`)5`NAxo`bn{@$MR z>i-pg>c9W~_Tk~ddGhDKJr%c)O|E*=ZpS&riK#c;ivRZ_u^B)1MX&Kr=brsVzhWK3 zyR4ktr;=hBriI-XzFnzZr~hv)%L?`f6RpG)=U5i|YjiAMo9m;JY2RF`azWqjTaHJ| z1+!}}qUXF7dOsszVZWy7#Yfv5R@yoA7yprKSYGwcTZMV)N?-nc+r#{1Gy*1kU(|AY zXVlaA90`}~ScLnZ?=R@`>Uwre&06Tkv3=6r`;8eDl9?JJwGM4QtFCjM$$>q}+Vp(Z z!+ly`xHGNi@?H=-CO%cT?a!`nHUGqguf`|LySeG6ddUCp#jkR?FD}2gn4zhz{##-8 zufV-YwY>JtpX(3a`(|;9k*6^@^ZTFHmUUBlZ9AhCBP7-~sx0uZpWXF8XRpC4o|N5D3GugyFE z`na4*)1mJZJ&$uNSGl3_`)pZQ^ZBsbT~USy=3Mv@xz6#&Ps5umhSvAAZ6^gCU^2M1 z+wX7Bk2_Tl!yZ*WI1zDslTduT{xk3>({znE-lY5hSq&j&n*?);4`;XMbh|Y@| z0>zKHCQ7k9 z?kqXrt#VA_#gR|;mz5sOJC@<{Zhccr*yE{23xb!L9#i?Lym#xNkAXKPFVbU9l^5k! zQ4U<$W!S&_>?bDM3F}|a_SzC55&899YvY@~`z!6L1MhS;tajSG_xKvW$zn2(x7?_{ zYaJan<4Ml(@L9hyCmv~*t62Kk`qqr(v*-0{FK>Ru_ajB9phe00H-n|NRI;FX$Qz3? z<^=~+ulP<`@go24OVi3b>t{xn<>q|L-Ol)qm2ren)!K-%crKz2}_^F9kXN3Xw$ym@nb6Q*V&B8;pdGfCxoc7cqpuN^?zl&?zqH( z64ld8H!}RKFI}AWy{k5`>)m;y2dAdyIx8n?Pg-%G|ARyJ8R5y%e%sbY-^!TB|5sMR z-fP+OAH}z}iqyXOxgxoigW+hr%hzuwycv#4wW@B2=sPZ5{rlToSw4<$T~UE0H7T!O z%Qn}T&#eCa=JUiq|G)148NTS#`|rQ6w!3#M+vK&jShv9Cxpz|M1@;$fmIBsI3@_} zt?r4mO}<}k6z-FttlimqGMHJxtR;iBtSabv?M-XxgqvsXEg9cO&g!OB(w60zD+v3jzPfw zq8$UrS+7-$0TYZW4gMUd>)HF#{y)!diA1*F=cM20uX(-4@_L2XVgK1HTRj#}b-uH~ z>HR_jKc=z(jR_~Jmqg@+91opfu+=hR4}UPn_aEn7AMKjq(cSqgKgrtncZJ-?IZPst zTqb;obe}9?oHOV4^vzFyo?o)p=v&sFcgmACXG*%xrK~WfQ0-4hYk$f& zgL8>{_|{$BbxiJPUjE5>o##WFY9BuLzayM2a&(4z(u`Zje(HV5QvGIhzUPZa%H~-O zTT6Y#@}Jr)yzBOWZKlPB%1xHG`>m6@J3FhG3U~KE+M2M|hlxLGj$(t!zvt1x^X*?u z7N2~{cEz8x3z0V--deoE`7B$kzu&u$n+uM7Z(C(2rkM0&*W=Hj*0GCq<1?Ofrp)ZB zN?>cac`dWKEv=jL3rEAmI-|O!&)gf@qO>=p9J+qwv53az0^5pnOg70E9Lx+JafvF7%5g)aLTt0KPrs!CjcU93U;yHk8p+eE?D47DMq><=t7n_e$0Rlhn-d$QL# zCsE(~!u_qs>VsG21-6R*Em!k8`(*RkOp668{Ihnpyy_@=^xh-m-h1PMk2fE<9&-5i zUUZ7WV&NlOyEmO^xcjz5-M}F#?8{2?71vH>wB5Kg%`MBM;U4#^D_Vi?bZ--83%)Df=oQWI zN$Rbg!X@UZs=vhJd($ePZO_70?@Dm8867vAm)$eDd({igeT+TbvltirTKoE6!tUCw zulLyfemyzyU5@liuKAoR;{VmY<2d*6_9`Xb<~`?LWuH0EccFdi(HTq|q%-!tZ(a4R zfm=AxIK*$APn4VMt|K0s4oA#pm=N)DNylS>zK?%@cXIAzyLB!!>{~ob#0Sy)+c~HG zE%&<}KlfhAk84umb*Z13PH7iee%bE)q>z1q<1O)zA6d-3)J01@PbDWG)j3jV{PUR! z`{TIoqXDJ8Q-!y_V7)upvH1P$toXlLPW6=S zty~+Hdt}~Q6a41lDYGSNdxh48GqD8Otj{!Fv}npywOa+3G`bJ;zB_t0oh4|OOYl-J zhR#)5>};p1^y}9N7j*qrvDiKD{#~gz=PpX~NUPlLT*)>4YsdW$GBS_t?0;XctL6Rn z-s$Q8?f;th=geQj&~*8q^M`!Lh8gKs{%8M*X`C+DFC?SD?aEN}-1z;@dd3%)1ybb? zZ^K6NSHL*2>;2DJRm%e^;~|K=hf(SpT(a~_7OC! z6Ka{~scL@Mr>f&_*(uWJ`2u1*vl7{!aDK~a+v`1V6M*vF3${ zol0}wj^&B$PpltVKf3=tdH;+*FO!e-v>HZzdzKzkYG5GF!6Xrp>T%?!s9_}6`(SPN zP29ISt_r;8NO)k^vsK_WbAry1uVn}Aa@WN=$m+a^IdDwl;B*V)bu%5@bocyec8q?p z=+pg%mURZ#+WH%dQ@YPBpl|UM0m@m%brZkilB% z%+8O3%e|JIzmRRYQ?c;WeV0?S>Uo|zJpP`=Y{0Qg)wb^#(-aSlhU-@sT=!KKyy{@Y z91%EmqVraHH`QNvlq8%BL_Bi7onADnRg78nzr@GIVT>_FiLJ6uVZOFLj7kh;a3SZ+0(0%#Sw+G2vu8?(dg%4|Ij>tF@YAiSMT|F0_))d0*5aRs zbhXVZwuNg)K3u4K-NW(H2glEQmOfUPYtg)`IL`jS>dw9;y&Aq*7iF(DUfOn2VY=g$ z&wpZ6&3x{$gdDy9{>|TLf1Yhr}R7CQ(uJTFY!61^rX&y(WGv? zDb`B6JhE5qtzKPPmYKuqWgSe#4DO*%yB|b_-(NfPlIH7G z^Gbr&eEjU2ebWB*L9R1~s=u?0wSMjFJ=S>ADaWkjVI=327S60b#z*_sab--uBcJu~ zWP-{KkIy^IrBBXR<9Na{Wnbca50lGV*3U@Mk8)-)j99IzUF;mNu5XFKi=9@NbnE?o z3vF*XpEdJD-fgz3CgWAp`kq|uyKmYkqm-P3w*JhUmz1_%UpLOBi#6R{mKN9Z$zx)37-@lt} z?QL(1+y8PlXy5it>6}5U)y$p+x6Bw1bQrF-b>vo^8)414b?yuYkH57ie;?mr^EKJK z@b3TJ%ZltK1*W?OuADQaQf4RH{6+6yZ_*fhi7aDHYK(H znCac2>|}Di{@t0ZQqKKvw_O(&?D>|u^^*3DL^j4b$}i_fXuc1~e(y7@c1}XiH0$G5 zB3n6*rbue8?s@+syoSO2UPbpH|Yfrhza`v32&`FC#b z|M9av`G5QW$L4R1>T^GTy}4v!gKNqK8P5ZUe$2c&uP=*Vqi^!k1JQRHGAc}(6!R)l z42q>3ID|K>(5N^NVz^9QpytvdSO3>>iG{3j%1QICobGIV!tTt?!L;$>{hXNJuQ{5O zy)@YtiYJ>c`)r(er8#eBjKmLk`qo8G9Z&sIvEQ$$A)?0Jon~%|vPm^IVeNOVCBoYzT$j!|6eSolx6tkoTWqDj>0}+2P;Wcqdy35>ovwxo z-KC2ymK~TJ(R9*a-YW*{Z3+cO+qAZb4<-C+vpFF?z-}+l;FGlyid$axjwWy!<-_0id=a-i=pOUb#Z`IQE zuNWi*55)PdP(QHU@~q&M6}z8`a2|GR_yYu$1vHs3F zhAA1h|8&1z8~N){)}?(b{_P2u-cYiCdh5q&2k(hBuKN@!F?mLC{iLI=0XorEEX!mH zb(tovy}bO=au4%GwYG1{HtDCuq~Fl)c;{Ko`LCY6VBMxi`rDei*{zhn{>iy;;pXFi zkBj|pShGCbXwj>nc-+;ie_62qih!8t>z7ad@@hD}4V`bY?y)-2DH5`?^&G0r>+5UP&a+**6+|1?~&UZ~3IpdlBtEwry3vF7>5V_=L zlC5m=n}0*!ZWx*v{9AdWD zWH&sIy!@hF>Y(U^r%$6YV_Z1XQX`Tt&8R8+=EfG9%f9u}hgL)Ddjfk5H(ppF{epig z&y=ZO+IHF3>x4MEil;n!ICbXVtSRr`@s-WZfAjKVAg zv$nna`Q$%~7w_XT6E#_M$jCSU(XAw#)3X@PeBK;;{rs*U9Wz(3%)9tVKxDmkfY<&m zfeS_!9%51#zx!Qi3MmS>(fMxHfiAaa^D>^hOHcV`dHqIxO(LuRg6_ha#AAA~yOV-D z`PpkF8PhHuq8 zxEg%oh{xY0t#6sGLVT~HiW>5dO)jqE_=59%un^5cGyXMx4 zIl(o)g{zmu9?|`NXM3&Any)@a9-F(*@9Mkf&uDvZ)x+dHe=6UpHyB@4_pm9@t+{Wr zK05wy+gXD}eW4mF`%a%cHia>4!-~@l``r({P~caK%$Oo3e4FLYDG#mc(+c-z{CHjC zbT>ZvoZEz0kDH-Ws~QrHwyCui<{o(=IQxmj)ipPo7q;ZC`Igk*a%%JWU+<*0wy3-+ zuyA`&ooT)zto3e?x4@**mo6=NER7S~ytY);7>cc8?)V)%RX6yMEdTZS2QBBNvo!Hu z{iMlq#;flcTXTwMv?xPz;_u+&nOb*}ZQp)mh&NiO^wjWof3V6G5B>FbZs(|K)iRXd z>WvK*SH0vh!TrFk+zU35nNtrcq*nL5*4nu4Uee>H0uA0co&(Nj7wjlbxwXaa^!a^% zv&(Mi8oqkJ{Xg^iKkHA{e}3}cGRI=YI+htej}y$*y|&+DHHw_)|7Pj7o9mCU_=ssM z8s56u`MZScRON+#*X65gYPQMOe6P-a`v2m&>D{$IkDll7Suj;GQuKA)t+!$GKc{W| zdp*hDpJ}4h`tu^<(yJ}}cXorHVzkmL| z6Zl;{Pqt;p;`%pB&Y7vPGt^H=aJaKEAe=GbXsg6~#fIww0wNo@j_*}#EPoxfw^MA} zAuj71vTc6_JumZ2n5`dsrtJ#ykG+pZWDYr%^~=C|CDW5wV6B znU|ew;}2M#FBGk2R}g)~s=DrrVBNfR;liKU>k=15RW4r36d~2%YNP+PUAj&!$N2B2 z`1i9^tlM_$+%qd{f60FFdCk_`XpwoRS>LdCmIf&^EEV((4tQF6e97K*4hH}4o^e@R zKF#sX^soCX|2Z%;t&Md{i&&XCdBTfz>BY|(4jR7G6*}IucV2MQAM0tVEAFTryyugb z{cG!t9)Y9H%x|@Gl^u6?Cg{5@`DJ}CfScXQ#EPHCjE6^c3pZPW@KH|AJ?GSFSwuX} za2;Hqa3RAaeUHYkRf__n8W-+vFqQhZ|Az|Oe>e8!)A~x^W_a`dRb>yKboH=c%f9Eb zGx9I^c>HBpr1vuZQFZ^8wZR6Wdze)h?RhP%doYblKr)d*X~Kc)e+}Qf+tf69`|*=~ z$1RiYeNOG$asF?5_WQzPubiBCqHasI3P!VAvo7{Xm(DFuIKM@*j(>OiTCLqzuUW6X z|MrAaT4y0sgm?vyfc{p+MW$|c%cLVx>gu<*MI07be@0!>bxUaJ)<=Rzy3X(GzShU! z%f-mswd_>szI}1$Ks`g(y(Wt-s*6;6#8z$mS1zIwb*m%pQiBxJDb~G9R<3&U*j6m$ zLvqRe7B2fqy`87dyxurpZP9}?Cl+O0^;H}##q9Cf1v$M}cZf{u-k5sTq)zKlxYmBA zlV85~{k)dA==L(Ju*85xN*mRpF7tWqmud`IvZ7u`@s0Sx=bM}#-BObdedi@RH9JJz zRwLu;tKw~B4jZ4=l9J)L5WQ79qb7)b^1@HmzEkrq-rKROb;>q@J{N(EHIp8=uT#6Y z_r+uHt69CeDIIc)e6tIVPwZRpEH2V8pJz?V5lMz_J^fQVR@L(|&aF?2m%YCIp8WNe zM{TbSC$c(Ct;kUcQtF+by(}eT`|N8+1o=7xS^lZJtSu7NsAzwZ^zzcm3sN&xzs8=N zdGE!3lQ8L!x9gUOwj~Eo6;SfISKni5fBc2lf>%vqS!(7U-wcc+N}OWsnw7d9J3f@X zKBKnvO4@;{`5%iH?L40QX2FViuP!ppsCvh(@O#HRH?QR_@4eKfsWMCK$vv%@@9*C__;SOt^fhHt|CQcf-tT%;?cW+R zsWAV?HA***{B-hHcX@rvqCL{}Qe5KE<2OCFKHJPbRjj%#oVh85A=&%hB88lw-3Uts8zZEce0O_;a**p;VQ;~L$umF;Y3@!_vu3isV~ zdT`w+P-AVLVLjK;(jKSZZ#KtoKb#eQzxHu-_NV{hZ{O}Nf9O2toBjC>wj6U#`kbs@ zeD@^t(o*G)44ZJaWnN9QZyriq=-fPw%TV7!+FIjP+WcQD_J4gYe@)>R`~ANMXZ@+) zaQbIXe9cGUEh+{J{neu8+^?-^3x2@w-Z|^h`@;KM99a|(CVl#Cb7-Aw{r-z`4WhzI z*_Me%_j^75aA6tiZpQy=p+E1=`m?{bIz9j1g0H7$R^70@?D2qGt*m9Q|F?#V?24J; zrRxLQmu_YiIA6b&Q)c~h&etI-Ogvs=Rxf_Mdmd@kzBIyvm2mQtE$XAAeq< zX7KF%f%EUIArxbw{quRS)=PJb$ZUnMGk>m-urb# zPCvJ8=4p#yCR-D>o9h?cm2#6XyQlnE@bFB5%RHHOwUHuB)wei9-~HujIdq+`l}R%C z$m0xIiCM-8XGMRVJ`|%AS!<_x3!p?J5D}B`=f$Kr$j9Vpt zz2a?4<+ZwfX68*{o;?2JJO5o>$|5Ux#jHV2(d@;!nkMJmsmX_=ZiwWrO)E~4lgVk& zVleQU?P(aU?c_dx!TJKBUNoE2$>ObS1h>yVcZCpv z8$W%%`Fz?Sze{h*BI6%%K}_5&%H>-(r8ZYv2yxWt?dvM>+Q06`v{%c`to)@LJlOiy zT+hC{QeutWH;z?S3~C{|GnWKjW@L<#{~kQ0;nN?J5SvMPa`sGuvjx~=zI)x3wb1Gg zJ-g}U`TQ&P0smLj%BVzsxhnT)r|Y9|i9KZ@TbxWfYLC4LKT>@DUZkpLn0=kv(v3@9 zpRatnzm&BrvQgJWb8!{7!qdkrX8#%6Cp&&^I$$8d6|-IDYG)Yxo2yw~eRH-N`|enL zLY4RTswujycOTtzmb7Z>wtO#I?OJ**E0h58%{pA zZX)MhBhAyrmlDK3)UDeX@^)*#)y=Ribw4sTWlQ8N+_YtFmgnUsVvLiu8q~rBb63xc z?TYTrKL7koU_nK_`y31?f!qlhua)g-#b6({k!PZ-4%G`F}^wJ-_+yX#YPB&N-P|ZtRI%ZTT%Iy7}8@*3Q!(pYb-O^nK^L9i8xB zxlxPj$$7J?i`@4wAOF{t?VNA(M)aWi?hii~P3m8=@7A8M4bkqRdHb!SzAf|r!fM$h zxKDn{{}@^; z*Px^EdbZ=2%}3(&U%8t#UCx>;bb9TEerv7e2~G}s=d2A~X#UA3I(f^_B{knw8})3R z*R-n7?aj7nmB?SC-Z)P}KO#S;XS%jv^Uu$@ERxB*n%lVJb*(RLcz;T-QR~NR?(=3f z+TVV4oVj4+IcxvsD`l;UEZVo3*q9S`Zp^v3v9OOj*|3+>)l~kiNvngH3-iHhjU@Zr z8Qu&DYGuqGqH%T(x(#2>bB1y0>`Gko!{xT2punYh0h?B3w=E0pGkjLw&da~KzB6!@ zs!-|6B9SbQm8mQTc+?C|#QPkUFXZCh_lfO6pposLpLf_!3qIKLX6B80)-&^%Yj-fG zx?YwuX=Huw*DxXJ6%s!UkxyoqOgcq%^Ce}oKaVw2^ z&g6b%1BXuI-FYu8(oUaRvoKw#zMxQh_avkAn=VNlsAt!3?*GFuBii{LK ztl6-9#;H0L8B6EgiYKNSc`QgxiUr{p|N;gtXD0-EP4 z2Tm!76gLe@$_y#vofW#p`Hb2{C5ywsHj~|+Y)#3JFz)q}sXgn%qc3~z)cndzM}M$L zeeYuG7tzvA-mfzMTbF`D(_yLFPVXMq7=aA;t&`uE7No6>VZETNWh|I`$Na_CN?R`{ zk!q1SoT2rqM>3YB=hf7$`V{rWd2!V;uA6&qDqD!(75p;u!KCkL=Qw<(Uz6N?ap!T} z@;R(pCCfeBn^ITsJ(_p^V_ZxhQ;k}X=hI`A$4i=|7*kjl9(=Y#(tQ5OUDMVI%@v;- zbwF0FTSD`ut1kDk;46u&99bYJ(RpO0!(8iC&kf&YZ_eA;E8?(um1yyTl}c+{ zj_gltH{P~IHQ#r0fA_r9yA7dPy(hLl_<2WVS1ae_w9Vyv*K^8TkkamGJ?44KyLm#$ z)K6Q&*Dg*?RMT$j+`CNU$nS+u@;q0%E$ErQTCFN8Bu!dm&0W2%b=ySB9{v1ul3{-B zH|d4n{{Q=H{wDul`~Q1UKkN6)#ryx8f34U%z`1&3zJuwrBQs1KdHb2foP+CK|HPdA z%6)rV!JhfIU$gDLIVtK+(f*%L_g8;c`}d{b|JJ_;-~T%xCvSh_^XH`ae?Qch2pZ4q zDr4MYlo2!E>D=j`DaQ}@-jxYoUGwT;5_e-v=*e4OdldG^XP)lnbqwp!K6Ye|TG)BX zZ)-AA7W{F&ePe;~_xn}6*Sqh^gz0a1_xoqfp{+Y5WTIabm`V11-Mn*UKbZ~NUoPwnqLE6eX_cW(cfe0fWg!ES5o zH+5(KJ&ONj{`R3bf7#AIo4?x1>#V9vdi{nkQTwCqzZ`=yo@4>WG%-IBrW;*M?px#} z{y1|mxv%D*QLlR3{GHQ=8^W3#Y|Kxl`uCxe!Ed6{Ql;qFa@L;XR^s8&{ui2Kd?dh3oXK$=x zVD{b;-k=$*DJAhclkq|DllMx6%jTMHGl)w+eQ^h?=kiJW0-qk;?^&(rHbYFrYfi4f z#@Gx6TZs~z$Gr^m5-u|95xBfGCfb|+om(jyK3*gxGUbB z=Q&Pk|NY`|LZv6&#Lm#$tR+=p!zGClht`U;2^v{Kn#cWqu6Ag?c=}}J=e_*XpHH2X z8kn-D?w{h3F9ucZY=*3PS!_@J=5}waoSC2(m>9m{>5B{td8t<~ct0<=RLygfPhfG~ zotL^C3a9fd~ws+;S<`^6iAOp4t28pTB!Dwj5< z+lyUaSzu?(B>eS`enFaAm2J~Sk;O^!>C1nJGL@h06uW!pgpfl3o0rjqzXBXz9<2Q8 zlcN$OzW(0HycZ%S^P4VSaC*DLy-4D~c^3BtEvq(rz2>Y8Xt=%1YjxJ7Z=c$3t+tg3 zzoeoUVip>?H=c9HM%M-E6(-Maif@n)nYs23hh5Ue=YPrq|LDwFATmRoU3Xo-+Conm z--QqEUa=B*zh=#`RjVdn@elKT>}$OtQ)5YoarK7&hN%S$#HG9bZu7k1t~+0^f<-gN zoYjBT39(y3JvJf&Avp?PRWom{w1{1?V9yWhd;{q{lbYnGB&d4qnZBcauWbME9h+WX zegE30s{G+atfJ|U0h|FXHZ$T>On_J8ilhf34+ z-nu{dySsd%g{__44gR|KzrX$XaL{l0HnsouMR+w45^A!{sdZ!r0saTBkpDR zcb~d%Y`<(*uV&P%`cu;VyJxL&a+X{ApD8*l*F|R)=v~`-=jhE;CXrkZue_b>e6Dc0 z$~ouSIxNbr>3g=-{kG@MC41!_Py7BMle;$Yc%)VrZ@1fO!4T~?KlKi)OEgZ-Si3=Z zW}EQeC!N)dlg>X|8@W1gM%g{RkH?PP2+TD8@O@>pgM8kG$OHQY*&8O+oqVk=V%lQ6 zWUsb>Vav2jx-&YqC{A-~3|QVju~+S31oI0~o*C**4ylj-R^)a!OZYQtXzRayDzSFn zUB<1aBzkZ0Hz@nkuC3kMb6uO^ z!=bpK9j%s=7fyAmTD~|fAar-?r4uRls_P#ubcZ3r|s6ADw5q&?%TOB&TCOfD~qX^$mfY14|o#h zyPIxR$~aS4)_PJhTBhhp=>2UQI9QSugyru#*{H85TU(@W;4z8Kjmh1kg!zw_@`RI5 zVnvQBiMe=Yt^D<^`0_=z6;T}xvk!KzyJ)h?_kH>&{Rtj_PwvePmzp2PWENw%ecw&) zw!h0&%y!wT%GWtO+37rsa+5Z+ zrfP{e{Ex|3&MGX(j=BD0>RQjazhw9r z9CLCS%J#hv2z>kPZPcK)b`oY>_+3(XBYvNy&FPRxIQK9{3{zdWr zS6jH>#~%9s;C{h8myPSUeoQ}L_38b5HMOMG?<2!@mstMw{(VvW|A}*N)1OV|cam6B zki4SG>&<2jGeuwfbG0wN$h@4tqDekI{oqff2EJm0H=5tx%TBoSWv8$Mv;V6n^Lcr; zttl&S-66D;Ss+Av@}{=GVKb&M=1jIv-ER_^JvDgRpSV}QHcxHPcr<}qYfspWKk+^c z<*&F)&R?F-tJAyK(BSaQl7{AuOk)1Fk8CbqicC7KGJ`G2E#~;a9(#XA11ZKD8~IJr zY8#ov=K1eG$9#&L@7Isb5jK_8n;7%nZoDt7ux{D|t5W8qxvB*|vdssdO+2yYkM*DW z{5czvQz}iQx3&C}ic3mcQ*fsCTK3t^4eYuBj#KJ6tv=OpUlVGOS>KyGU+O9Q{1p{t z>B(E--RFqth;A~-TyMSlU&XZy&ld+fte^kYH$Jdm>UT)B_cpnYIdASSWjIsh;KUrW zD51pgMOcFVq6y6M5{pH8dyaK(i~l{3^H0JF12r?*-D1zBEclZq9{bF8y32tpss0KZ zM}cHir0U;qc{bDg>qLWFkFE@7cyM%YTr@-69q*3&NjJj}Pb}$tQp&aIS))gudboZ4 zmNiUjQoEh=lU4kC&t3WS(=k@!{NI{=>kdBowd9uSewMdNzaMt2PIVGG)1AUourYga z+2J{jJ2xuHozH%0rg8cOqpQHFS0OC7+|>+k<+CzIH<*Om-FLcpkdIw_?-T~Hpv-;B zA1@c5m>A9``oUq&Z4Zyr?pJv&HrDWK9#4B!c)Xa2Il$}I+r@SH7Uf?}SADvs9NC_< zE4;nRB7F;U1X~DWU#M1C^@W=nHP=7pM;PyC`11R4?SemjhUK|y_P;f@6q>q zf;Bz!{tGI2dibAwRik<|s#5g4^uBZkgQ(L>-aRb15fHh7Wm19cf{ay*#6&KHnR{L2 z*kjD6T6%x7-1@q+pGDUyu2>T)ah7LXb;-7V$@05zfBs~Mu$6o!&hKFz z=k5Pre^YVi_VW4rHt+vh{{I#iQ%zG~{r7$jChpvNc3zS5Uz3r4*(p%C!TdcAD@ z{cT&WwmM8cxIaU@J2B}`>2@`Z_xJ9)v3`5_@ZvwvX*2%)=U3l-o&D)QtNV>j@q063 zzu)m@nBu*^SLIHSW?k$}$?W%Q+V8$Pyw3RdE9+z3yb4Ka>pvW_4cltT@aU3SM4y!F ze)}o^Cr(g$_~6es4~GR$AFWmY{Z&Th+jhgf2Q=!$zA1^Nh;tSMI?df>VBGpO`_`00 zhWQ>k>nGkg8aFF4c8;ckcLUS$`3K70cyCbNP=03Kyk{N-PV?LE$8WZ2`8fM*v zZQF?(Pi59PZ2ivD5X*C5b>^(5n*n~uZ@N6)$z2dWJ5^=sEJ2ThmakrTh%4RVx2Q~> zl`?&Kg45S^*JjtM6utWT{rsoT4NIKC2iW2F00{+%5*)+x>p2f8PCP-@4Q1-pR*K z_hdTcrKY;2qbXn;;|+<);Y!C0H~DSPWS^;*GrwEHFz1NS858pOXT(JvU_~Xw=GJFy__49c%QLtWuZuMqPwqZHTPnU-fCV?8_A_vYYP>!@|5Fr zXM4ZOVH8|_h3oAZyEh*5Io*Cu*PFA&D& z$~&D7ya@Ea84}BvEOY92FiTNw*!$okwOZP5ov7elzrnk$@@_XRctLgp61=PE?KdgNlc+{ZL z!6!?aY0ZuArOc;VE`8;7oObxvHU13AlP+r{1PU%ZT(sR}Sx8K!C=1)JIV(Q)Xe5}f z6MnIPW7&_LJbWvo|6kPIp3|HdI+<~@grVlME7p0vQ$rYa=K6<-nuciDD&BApu$H~Q z*6?=w)ju3(oS0f0veH*Aa0$)cd;KnBu;#PZmM^}C%{%r>^o{+O?Q*;amaqS~dFc<~ z@8Jt=Ii9&N7Me1u)GjwnP>)ER7?Sk9>gf(ujYGT>s%uYGvp=xXc$pN?8F={a@h5Jc z3ucHcK6<#h&Npe|ipX0JR`5*rlRl}xoH-^dit>&OXh?J-BO;pll8Ke5a+j}<>!8`ldU}#`sLx#EzR7Ly65bQ=L?lh zl~T$u4)~a`aM^)W-WT&9>*%~S6FM=Y?a|TWcYoc{%Wjf$Y7uu%{mC`|9cQY}#P6r( zuUWFlZr;Sr(N*HPaVK>njdNbVNSSgp{k$mW<*Pc8(mo#^H20+EGA{``xA=P*Xa3h0 zkBkzV+V;zP{>c$C-;#2z!m-73VZ$Sa_^camSN*+|aa{VglyJ>W*1b}}0`DG0mF=FK zI7e^3`Q+6sX*avq*2;cgu&twS#**hsazAhC{t1apUaHm>6}IWG>Cs)D-;b0AaW$^m zp}zH4rOghXJJlJVSLEj{kla&urKnED!?ZBO^qk>_&S@V5Z+yEXxw!Pkrik0J=c0aG zE}gs1BK+gzud=(Drb#TEF8bp~_|_F((yY(r8LmuyxBp??u49)3CGvb?EG-#-UFm7I za@_O5Rs5G7lh;OZ&M7Sm9yFTGzAmO~y3alTkxt36?xdTCf-~ZOntJOyuln7!JY2ul z^5JIg#(oR;YGI2tC!-{H3!3Qqeq6zOdx}&Nlm2zn{gz2cH%sc{#$Xf4Lqg?tS!_LG{}H+2>7?!-EYEMif-l?p+hU_4@Vhno9jJl{VoyKaO{7 zalI<;sIls+clv(w$>*a2D|J0XBl!D?b|nATmhV=rh8q|yzN}K1)VXM7dDr*5nHL-n zsysEF^X16yhKsFl*R*x9Fh^>Bntecw<<5rf7bHJqF*8+nKaZHn zmzKKxPO#-Qo@|!Vmw2JJ=JE-Ry_>f9XB8zf^}lxwuwgz*OQOj3C=VkaLS8Y5z zv$)sf9b3)Gi1ja$r|znf_gr;=!KV1{U$f2935`Mv)`Y1fB<@U4n&mLJ=>B8VTp2AU zZ`)TA}(_3fCrXzsz^hvkHoHKLgw*_d?PD}0}_+TmD2mh6ki=a0Se6D@vps^v(MV6x4UkL7D@#J5PD zVNsm>v*CE?#(s`DQrByG9$#4>^||;>waPT^?+5JW+cy}jnC5O;vM9*xRFXi54r{}d z`l{eZi=TTsTq&9Mt>(*@>4o{$^91|8XNUAGuhsr4WiOxnZwAkf2g{nZO{;1dA6?~q zBgr0Z5R}U)EO9q5i#3CxYU1+Cd2XuGU(y+R_oe%5SjdD)@B6&9y&>}BzIU7=6$XDQ0!QsKJR7Y^XT8b z=jWfSe(&>+Ip9^{UW3c+iN)5x9w*OWJue%fb&REF{^7p?5w_Pnd~Wie?bVMxF#lLe zl}?ic_o1mWuD%a+Ym;|wo^xbjY3JdC6`ITUDTMLJZ{^sr)U}|xI#VPxN4oyZ-hK|D zvgUuR?#(>xlk0EKlRtK@M*h#8qd^ku=g$04ba(IneZ@(xGqfdZzArt0@KV$L59jw> zc%~b(xm9P|F^Sc}ArS`KB7)hwq70^pa6fonHA%Dcw)Mf9X^D}>V$;u_wmA5~@}_e` z*bG0W*q2voxbAmtGt3Ov+_FvS|M#BXdo0Nqk{BfE;) zy-TjY7OqUxmoQ*6-@0*@)2i%qOzfc+GJZ!ZY!y0fn|04jzAKp~+x_j95vPNXys-1n zwOlSY?Qe?*$E!A+YW?`vqx(@%(zV}x2cIj>O@75FaiJto=c(S`@4BvQ#GLO(@TxIQ z`1tkKHLYGXUvsstA3e1itinZo2^$J>g1UCHC=_m-*P+HB=zq$%v8O-a!@`|kJlGZ= z+F{UHxLmNOXQIQ)nIdb;6+XYnpORFTzNmNJ@p*n8p%Pz<6g@7KzAf_Iz+TmHQe^pE zQ;omb{Vlr+6<-MLtxXOQsj`<&=2Y4{cgm-4NA4bb5b?Ps*;ZWoap{4)4>RBWj0kq< z&|!ExbCI0|qmaOE&gI7s$ad;6<*`1P#+TbC=&35QUhvAH#sCi=#|?%BinY;EOqPX< zP8&||pX(Riko(iP)xnMBpz!3JDF(cK+1o3xo%zvI+;&(}e#1M#2NPGFI4P0boar*< z=)ZT}EEgvnSv*O1*|`>mZJZzPt2O=W6aH4JmiQv|_~Mn)6Pi6u-tYfGQ| z7>m+Mt6Q8Rh4b0=PW`?7OHEouSn<1bjqT?r9y!1H*crhukL^SbOuT*M6a!<)eHPa> z`M)Cs7i{A-Xi(|=f9{*~1%1}IT@I2Z?ibiD8h5^9`Q(t9o~m(es%J*Z{X6}s3{5}d zYZ!&QeoX$B+iUaU^ZEaK?%un1Yq$UX^(X(|k8o`G?zp)w;gkHrqE?NR=l^;Q`qR%u z1j+^kKm9dvowmHF{gL9lZI;t}Utix*w>bUp-td3dmt4vGZ~x~W|J#ob56-*Zb)&!T zoBG8{)x9EHj>~@hlUi)GYO%y!&AV)GY6cRrY}$oW;V`3l<%x7Q6O zEFF_Cy$ksj*Q`H7|MliY%ltxCrZai2%8H-5{-M=OmSxxabKkCeI=}GEh1c@Z>-1)C zncxtA=d)st(Y#}Qclpm72u{4LE%|V3wAEI@^DVs(QyLHZ|kKYe9ROHd+oU3!>#^Zl7`m*O&PHs(OvG&mw{a4OE zZLQ3f&KvvHg)=nv@;we=StEax;W5vd6^s_yCU1Z93TLXG6XV~qWG%acjLwBcNeB1* zyz}sIv!Js5L9rP@_dm@N-}WJ+iv8Aaui!b#7n+n=j9KPZ^mjaGc=P^~)Pnbne>>h? z=JqN3kYo91lk&V1Kjzj2CYU*NpE|#4S*L)*n_D~ft;?xbyV0l4I*adI$n<4RnYvPv ztC@O4xi@kMZ8S}uvLnxKaYy{0^W__ll`gM%d2CaMp!myb?~VUnzg7hgW8La5+qb5p z>hApoljNs1w;o%~W_zmnrPIc3ubX~M1 z{qUC9-qqo{HVvN&b6-@ymwC*(MYQooYOtbEZ|E28&A*SkhcHX8+CBH&$%v&=7Y@yO zXMew)IcLe=u)w0L*H>w!Pcgiye)Hwa$lim0XCHjvwT3U$%;Hzxu_J<_Zr@T@mnJA> z$$d#wdvj1@$D?`H_P0ZxI{AliY+kWTl2LN?kviT}#Wp*lRxNF+(6M0ZSnxj6B*Z3t zod)ak3x|(iW54uLIpgkKw%F6xGa@ep1sGWvvhgi>w(*vT=G9-3-e1nl-M}i%-2LPK z%tl5>;b8tdf}DQt`gc6y&V=m!mcq2?TL}OARZn=9*tM|lwR-sF)7GX9v)?_Md96zN zd%L@C8KeBdd)bHMQ$4>e-qtXQ(fCq`N`T;nNY8^C7*40LXzX3IepkV*<`Scx#@Ije zl*@NrPW)Q4D=O~9hK&mo?lyg^5N4XSSEg9Edy8xig9As=1@1Y?(rb-7_c+=-`FpkV zpZ3BegIwvq%xia8Lukd5J$ASp=nF+^pO8w$HPMI*-a@>&p zm=p2zWJ@d0h_f7___1hU16t&go zd!GJ&@1e!|6LriRrsh6fwee}Ax?w|`sLU<@Z|^2Mt1zwj^Zy_hlg-V{y?gcR{upoZ z{c0=uQ)F@%r*ZfVqr-M@E6;6YKh$>e-RiB$ckRD_KW~$NVNS#P0Dh||?o0eGMxLxC zw;N1muF0CHH7{`g)A!E>XDB@Xdh<@bg}?0AHvT{KcWq#7;NE!^_ggug@~`wC^e}j! zxctK1m9lR{l{2L0Z@!g&djD;AYftqD57%a%K67z<;;e6NWvgyZi&@3`Z}(@L(hXk% zF0Map_A-LyH_vbOUrMk3x83J6b8Oe|Yq>Nt`?c}f&-X4YzpuOcbgPy1zwlu79cr_7 z%rIT?;8DaoragRVoZ{@;WH}?EYri|a`nDxn_=?{HBR6Ito(m}|eqEWbrG9?i9WyPX z^Ye{$f-E1eG04vhU;O@WlkLmkuy1u|-H*u4TfUYvWs5~x>)eg~&2yewPBCu0{O{VWm#ZV#RVF1#J+O<)Q2Dr-qwlCicK`XNY4*ZbYM1?Wi%yEaF1EJ3 z&hOfD!DOCV{`(Bf5s$<2o!=VYXg8d7bN$W+-;_(IFI+Mx>kwR+Hd4>ethQ+-2jy}N5Xmx90%w2du(y3wQt7mf=U-Wru2n(Hc=+)kLXlJMP0+%&1CCWS2FHq@! z!qm3;mW1W9-`8tmRgM?%gtO_SEh?L;6eTI#_~5=}gmdVPbE{-npRpPFgx-qm`tas> z(Uxs1TNxJFehZvht*|Bb^TMT*-teuMwCt(K)eiglH`bkc{dUa_v5WmPPh9u^WN8|> zLz~;qJl~hDT{lYo?UFOP+hG zZI{ez!O7}28HbHeEwQ{%*q5SHE#l=NEa&)a>fdiR&2Jd5{Lt;LE9B2QuO_IqWzvj= zpHAGo^6>lj!xPg>=ZRjkY4%BIeRccAVX+HK{<149EU+(U>sz(t#phkUnQ}Yqk38J% zYmj2rlo`Tgv%x0*+Si?a7SX<&ubZDgvh8X$+v~!3?#o9H{&S4(Z|-*u3&j`-7iXw=-_1FEu0iti*8LxTM{(S%{dY6J;oJXz zy?@>7-{;@h?SJ1*_0zwPoeb>x43eu;)%Jc=-RrpX{`(DuZ@1VVkX!NCxFWW9@4CBg z2Hs5Ge_kCpvU|JvMx}|M^SWM}&V5r8_vZBcKQnYC{~cb@mA<>Ng>B}ZSz0f+Ze7(< z>XnY>xWp0RbX(FunQ?k|rcUI=c{~aUKPzfi9KN{Nz4qn}=@s3NeI|#Ub+B@%p1*nT zzaKBReAuP)O<%5XaopjQ1+(IBXkFu2R5<-x<(kHC469hx#DeB;IQLO_UDSN#H(Kwu zFXFdhcz=ME>-~23+luw4iy7=E*B*Rbo!$PQ^R{^B%>@GAMI=h=3vSL?*p_ln_OcT1 z{Btc;CznVc*!ln2EHk;=1x6u<)|*L0Z3?z#W-w|0e?a=1O*xCzq}+|n84no#w|vYv zYw+uW@TUzO3k3_FCf|KpssAT_zTAWFUu&v1rKrBG{t^5C#L-B$gLkx3icYGT2iyN@ zuTE!rGvP@1TxAh{sc7TCgb$qt<&`qQw-1$y6e;oF+W6pkV)enE#EtFAtk&AMT}6NF zh)`zc<=lTD<%o8=_rymM{X38EI{9*Ts*hN5%G1X?!-WL;v&)zMRF0IGzT=xm8?(xz zYRSu~zuOrPI4QP2Dwk8%{czJYeWQXMy1Y!_h607`6AYQKl&qT6p(-=rOs+Uex}f^5YDtq@yVd-mMVa()5b$EgwV9 zKK}gV`wst8lnfS43;lI!gY(?qlNIjHGH1y)-#TwruI<0quT%HLF@moHsxM2w-Q!fb zXq8mJQ#Z%nuv2OqG7Z{d&t2_!QMTxm$ed)K=~?@GM!Hlz2(?@T*t<|DJL_ z@8D%}q=NnE9f@r%%rACj%3YG|XbioyHfXC`)^VOE6OL&8XiuCn!7JplR@DKg(B0aGjJNo;7HK3}*U9}_ z-=r35C-(T%H1062!~_4YRP1z`#ia&<)6otbrH8$ zB)l_g0Er#!nbKqcarD@>3z2Ji zmYmSa`coHlVY%m_)(w&o+V5ue1Z{cmwJ!0NRO;(s`ERoxcs6y)W{aHMX#c%+fq%!} z#)plkjI~W$PX>hjN{zQr>J|;Xv$*HmSLNCEGh#U2EZbW3<7WE(IPL%D-~L_x{!RYB zt^C*TYFA$DJ!Ln;Zp+Wszq9Y$yQ!5}(^j*u`J+I0w&aK7W{V0|XB^llcEg(CT!Gx) z+_!(N4XowtYPN>`tG9pg|M}&k`+j^9XPGK^qHS#-!}oIv2g=UX3P0T|anV)qD962{ zQ)cLB9!`<(bc;PwpjAEDvFEdVS+3OiAkKZuSPFtV53qO4i}l@7m~rmTn(ysT7OXwE z_qOMmKK6(ps_1sD9?TpX)EFc;rs`TX#|E zUx&_z^jqyazoIWMdX)vYZlUa~AHfH>I$CO<>vrEUo_aDkbYcqs{q>tySt#F8(swaaC*7`BmmhPP`{MDDDaOJx(w_D%?8;NCop9*0Mb%|n zw@C*KayVFI#piL`e;4Ru{oVXqy~S|)o%6lI8U_EvkIXQ;Tvx`#sBR$573JmC?E7|e zM23!AZAtE`68)X|huv0wFq%A$Tj#p>=MSF~;OJtpSI?Ni=@Iy+OQ44RfA;jk z^|fm%`)Z%o+q%1csxzp?y(}?_2(z+V?Xs?8k*{PiB!| z1|2OfL)Qe;2Zo*r+v|?s>C8FDU})9EcV_K$L7gR=CvOV*`1dMr*%46_3s=S`de@KN zU-znR&D8bW?vGn12W{Px_$|xa^0=++pNV_#yh?u7Th@6_!LhA)`3+gkHv$ehvlr}D zQC%O>T>=v_}5|$pmn7md*L?E?4tn(&|M&rBssALP4E_Lu*oiU5_bv(k zyNiS8Ve!WET$Ak#N-l_Ng#MXya9U)T_uqZ#9buwufmZX?CODmpbpP%7{8m-zdbXoA zk7jP)cwXX6(#~ZuP9JM(WLN+C{AkXjnzFfxYzfSjLZWqDtE7HC7tB#_wfODyH)@+O z_o|!Iwl17`W^dnKVb3p}_s^f#x-h{Y$btFHr|g{@R&5b+o_%x*ClAxHN%uFJT#(nF ze%vDX{{#6y_HUkjbu21#f4!BkJ$`EMJilp&Q&M>`B?p z`7_Bkw6c%m^UY5a|E#w!|NnLG-v_(*=YQwt&o2Fw6JPgn^N)Q2&+~hq7m2^-V6C*< z&XgAM-s?`qKjVqX+Wu=~&wFI6nRSLdBG-2&o)^2D8V{&wL_Ohn^3ADip#xh(!)2Dh%kx@R+J2jq z_{({%&1cD+gXc@;MLx**uyBKW@R1B*#+kdK=YRcr%7w?%=G^|sRZH8Y6R+ByyU1x; zoBzB!?r*DSCg<-PmZl4WB_y6Vos8PKO#g($(Rm50f6c4z-sQpCRP{8i|C;jkRWs&i z$g?cajac9JyjiK;?cPUY6_@nfKR)cfdtxJ=_8D*e)q7jo=J@J<+gdZmPS@i1e|O!v z=4!LO+xGQFjTg^SQcIaGq#jxGP+B-+=AyS+42*LxGyU$m;j(6(SHm&Jjkmv6+-sP+ zBYyqgszXntj4Z1JxtYID%vd@9vg?%JOwqov(m%pCd0BNC%ndDU+_N`EqB}$7i|8+o zz`6G?s$Be6F(;bkl7Hp7qAdk$PWDY!;Hp#0y*lr=b1+Ze#{Ub#lYf}TUHH1HPVY}# zx#>53hu}@#Q~vDsw!RaPytwdE-+!ybLl@rhMzH@)TEBk!S8z$^J@rvQZ0`~#Mg=}K z=6&b5a`rTz6wmx_kr7bYyWqy;yzqCt>_=GoL%sd^4!?0brt?Is)9hD(xyUvHscIF& z$jVj92iF%kSp1$L&y{S)vhxs!>l{N?(-ne_$M+=motb5Q-SLI`>ZCo>4DIK>_@HL7 z{@!Vkzfb0ds2OuOhxTn_Y~8kkeae(wE0|2JHUxD_9jWZ4{uu~6qJ~->( z%7v;e^Y3~--!jQFg|m%8%W|&h%8I5pC$GFI-;>|qa)Za`9hXM`$31gQ1)R*ngA}gs zpQ|Tx*3~O{r&_4pJb#mt$5PRk4*wLr#^I@v@H%D5mWK^V?*%x79UK}?*sV%1Qh0Xn zQqZyaS5{k!ezEVm6nEwK?Hys&7kp}C)z)x#ZC5^V_N&LQ&4sn!4yHV0-WX8mx1lkV zbG?N7q{V*^2Rgp9D9>K7U*O3nFS+J9Zf?y__ZrG2UdmhY?x@^Ssmf>5YTPgEI_h=d z-a~fLb%Kw$-c$za7IU#})mIW!P%soqXAH2~ENicAReho8`Pq596o0qu;-0%Dn5}%S zJ$Gp-YrW4MZlMVk@3@7Ze@*}YqrX1y{x9SEo96%jGyS!Ey`=g5kgs2^^(@o6nI%~h zAJ%su%lP|Kj#I9i+jG^nUfFNEN`684c8l^I&*%UBviycLt4Z{i*LIJs9w*kh{ad-YhqJLx=4)!Y}4p5OoZby;!ohWwhxbN{aY|L^^plmCBv z+>@7^@0*)!_$q&4?(@mw8*df8kvc!U^zxRDb=QP_;|>HKo|m)0gV|uwKCgp%uVpu1 zyuWvE_xauRJC;AVe_cBv>D$r%e;Ouii;_+}k7xN*=#!;Vv+Q5)rCjBVFoX58Ee$=N z|Jc4MxhOJ&v*Ow6oQG};ZMH;RTVfz2n65XcxYq0H`3K<)Gp-!$IDg~zyNcv|{`!0W z((7MZf2;rdzCPpgtQ|UP+fGX!+BvZ&rqE=^@`D1_0yR-WXWlI9GGRQhP;et@uxC+P_52eE9gf@ND}@$7Ort|L1;rk?fOlaMl*ygxQQ8 zH@q0`)E;6f@$1?5?$`ktg&DUQXB_!l$~)OW-CR)l$k(=ctZ#Q7_tBf?xort|i{9tX zjRuhtYytw$1z=;;A$MW><|oAluO@0->pJAF@@>-&o9Q{~Uki^U6ub-4)@EqZllPyn zTYKj73}>6)GjlM{IhHH#zHzu-C+*HyfK*=+r{pfm07bQgP#(gBb?Q9>Z865xo-@@rq&QbNJPI~q3*u4jfE=L$ISQUQh_e#!y zo7cC!uwBsK9OrM)%;~MT*IV@eITcri;(v42ukJU=UK4kVqiAaNF%OqbmR=JT<2XWA zuMf{yt+m%H&vrpVfGDG!;9K6O)gc+L9e(jDxp^$mWQZ`EV*2fE-_1j%o6}#|7)?}| zyG5#g|6}9utASHbGHYFDT5?UR?#nOpZ*h8FX$zw-hMv9hgz^8rorV`*{Jc|aB9^Jr z{4YywyXCV3#xJ*jye;9q^vFa@$H%vhA3wI)g^9~5I`u2N=(aT~FO8Ld?pIRidhm(u z`zkZ;!=L$|b^Y>dR$*A+A}sysYM?BeLDKQ^!k2f$TJC}W)cI58 zvldL4wlRO}_9;ug9prIZUtj;j z|613ZivbtoKGlW3y?Su15*cv1JTlYyK-`;`g}mpOx6G8B zF!he#-H^m5?=n}+SuDP}=lQg-?%#%TvgNmnwi(uOiQLXC-*Vpme=%qtVDkU(-@gC* zcb|)`fjzZ<-k;S=)%w0(_;}*$D~{E(4dOQ^cAr%AT-(XFAf-ccmZ!)zLxy*{54V-> zc6xjN?bW~S{1-p}|MDZ_{PH~eUyu4XTyuT1QhEMCk%oYU3sTtD{9CD)wY|VT?5*`_ z?PG<>_t(YFWRUe)yq&Aj&^P4cle{7|x4Du%@00iB85yln)9#tMgm>B$^-IMKIeHhW z@Bdr*_xk@I+Sccb4Q3Z~sWr9k6W7~WU-eGY$cd|QUD1Qf*QJ6O^yi+@Ylu!~ykg73 zoh?`^l`EEU_GZ_dl}0@*%2!{ht5qket90FXJkMYipJ#aDQ@PHkNl5`q-27EPuYUJQ zYU4_kAKNdaCo%DUrTLeH6`#e;sZ5(0(t3^KZSI?P z<^wNMw*<5_%#7Z}aDgFh+Lb+tJRyvW*sL2KYaPBWXI6`F)1q^CBI@7m_`SKT_|N9DU4O2e3s1jMV{pXo z#r18xn>FmFA8nl!+_Wxc@8*S5AL?DRo;TJ0Q0u=H8-EC?&2efxSf&+|FP>{_WTrjM z_H}Ht_EDP|m-ijm6)NIp;*@vrr-|z1sSEz_Os({Pb^DH+(7QK%ZDKrYw{oSnzIEHF zpRs*{!TnjsS`V392%I#$a_NSqfNLM8?!VfFz8V{T9f|08;H+|cPRS*|Ev#8L?-b4z ztY`VW^tGIBm(tv_Zux{ozugZmzh{(Z^2WJ0gGZo=Q8FJsnw@ZMUwOa{0%RgC)mrKWXUo+kbOGiDSqSi`&zE z+~q>Uyto|M7aMvCPCNHM|4*jz%EbPeYfis%7rF9ymUS zYK40~voGy9$FS3&uu1utPT2*!i??l7C2_A?-y^7h^rn=!}f+qR0l^xS8`&{$En=G5Z;xs8E}zvf0dAH2UZ)k#-e*0VIk zy{T@O@!5&GJXd-`%NxYPy}M!;{N@tKZu9uKfA1`fK39=4ir)xX*E~qOOj$YdL zT%vGZl*xym&5zFVtmxY-*ZKU&N#W0D4xG|iZToS*%eloxPeNO5k90qZWOm)2^ZUWk zqHVT%bFO~$2${AgELbXF;j#BVGi6@ST>okLHyv%0U2cp5C!XjQ7j?!&-JFx!sN?nO zL%wpuQ>mlt%{{7uk6bcyv~py49H}?^^CTYS!*N?Ro4X2+Pww5Az_+X5iioyDMaL2y zVS&TRX#(e2K9uZQ_h0dbbE{uD&#yZ3ix1Dwc8OzDS?#^ZYkKbc4LQo0&tyxUZOUB9 za5W|*M8#`m&0SAT-JIhW?RrzDUCn;$esjH-;n72aQv^NMmmav=Tl?+i{;cD(_trk1 zJ^$AI|M&m-88AGXdD8y8@68L(SeZn=sj+X}&m53p$?I_P-=y@5_G<)lF7DWWOpH_W zaCzPaxiu}ZK5`%4SMB(Js_sMe{ms9BtM8sOyY}N#aX|$!!>Nn@t||22klRruq&nH1 ztCF+el$X)D8pYEp4%7G)_xUVKvNW&m_k5MN*6o_dlYC{y8SB-VbN@0aIB$8i&W!1& zd&tqK-I4R()i&H!|E~V`Ih!rZndR@j-t9cc@Q!`)TH}{I3pelBuWs}C(oX-AeqIMp zXNQ>VHQy7fHMt@ChX0M)w|hI&kL83c;1sBGlKyzG>ARsM`-B=6){01_;~j@Gk8obU zaFbEEM2O0l9+u>Z@Ok+SkS$X)`ps6Y=4|%$GOV zYvR?7g&Y!7Uw2BnJ$G^u*eQ7Yk=2UVqUUaKc^SOk;J+pRg6d4?>x%PZZ{Bj~Htn?a z-c@Q~G$+#}{;`zfTl?8+E(!jVLJxdXG>~RH5EzpBR%F@dmpos4@5=2<{QqwM*Y`K- zKllG%7&|Tgq0phZ8>I4!fAQa$eQWlg;+Y@HnznxY?(<{sA-Ph)4G9bm9WR?CycN{c zoCGY)eFRQ@_S+E8boo+gz-@;u4|I)lw>C^jO1`qxM)LdHU1holOtUyV+BIjWirY1F zNpBS>@VMZ7Uf|8OL)RGgh}Fq9>Pj5>x_-t1tILmH)&D=Ha4L%Tt=;*L@3t{972Lg$ zb?NVqBg|X2_}Dy8@;eyUaF=nziJM7s!3@DKO+1Ca`7K|uU}NdY6K0+1iuW%ZH@$&1b7MwemDWv(;_?gr7$@34} zemI^gy?W2SxI>Vmb`(~K{9NS_oEToX!P<4U$u7?J04J-GS3J*ZQo{LvT}lZO?sG8K z3iIlTH2rqIPbSfwD@5|jmo;LiAI$C*^pf7@kQg7TvU_vpv08N{>!fe3wL9WG=O6Ac zpOXIZ-i~X6GLAYcQXjCkpT76C%;d}b;&od-8ZU}6IyTp()QC6P{ZKv!+m&eX&NnVq zr7HKHzxY2Xnd?<%^MwU9`-?Ep^DTmKEMD7ytN#Wq{UG2?t46R;QDF4x-A@2X!PraM1O-*|K)e zT(xJxt!o^s_HMsWqvF5U?Y47&!iIz;>zVoH{++udrd`LuI{B{>d&Kvp-J*J{J}s$g zTzaYgWwN}~IhkvlBSj;Gz5SM--#95qfW2bVlj6JIPJj2cH(%7Oz9!-3?Hd9-r?~8_ zkNlc4M|zURpRz+1YE0e7x>~oeoO0(hdvT9x^R9Udzi->5FLP)iPsz=E$?vl7mkR_d z^3HVNU^*u@|Gr9>WTTB+Vx@s@SpT`wp5j$6mVOP)S#c!(jLA#|N5#&}RjmtV{Cehn z?!4Op+m`K7YQZy8@*_0;zr}W2b@Q*LvvV+iho;bntEXA+`6!#+ruEgcIs2lUnm9@xS zf4f#V*X~G!Yc@mf>Scl=KE@mg$$R@Utq!$GySA;~V#3vzp>nG={fR&Xi`$N_TRnS4 zJR=U@E16X{(;@l$l4aeO;!=;F{PWN*b8A`=+qao-$`utZMjVwF{pn}la%B0^^(Qxr ze+xg#-gW7yVa()}uZ_R?X5R6hQGLI5O`-e210HwXADxkC_{d@+uC;n!+Jy~@-g@V_pd00)AS*$P3ApJ$B$7$oGkBx6rZPMpHzkk0tMUWxk`sc6r{=KgM^MCX5&;E>y zj#z$q@<&kp$a2m#^Chc-xNn3`TfS3DEvw^a$04sH;o1+bocB8Nao)LWTW+)q-wJ;9 zF_t0qVC1epr>-0dy8d0K@V&^jDZ6R{U#tCb=HY#jE}gK)!EXP4_ZuF5@)@5WZ(y#A z)%!F3?GQG1dtdQ|M&s`j+bNxuyCp5O42@x+}Y=_c&fOb#DkS3LOY&(^p{ zT6ngRB+EK~gXErEm+;H#uXk2uZ)Rrgev@)uqRi(=z(kIXK1UM6UkbiGaV%-0v%^~@ z>(^@~s@L(}Ry~z?qw^)Nn&6WCD#bnDq8BrVKGnaH>~#9-)NG%>E7{bty3a@dKU=!; z(WN6!xA?VlAHH?doc(F)mzhqbvqjnWO;Fh>Ai6qN@c#m#*QX9$ ze12_W$ckG`&Pf-&uUwtJ;x(`I&IOB>N}gZz;hTbq5~rZBQ&ajpfxrm{OwxU+-hx}1 z+FK6zdxmVkIQ{C+`);vY6M6-V`9ib*{C3;ZvWus7a>3*6lNWA3>vOf{%koY2_ZH;w zU365D{+ZW#?Mq`@HqWdVCw{G)vw2-t^TWu5(;c!4=3QewSQpg$_@T-Hq0cFHod1mv(2p^dY{Rz`g=zVy8;+}?^m3{Tq>I>;dmk2g{?PA|2=l(8{@6!3ueB~O77n4xMBOEtt`(us?ELy zeF^(7`Fs2RzxG?>|3BL=x9U4XM*jy{sr6S?mhbF;HO*nWjrMD~Z!Jlj_Kl~E-LC5X z%<2AC|0aH$ibUvL-;?RSvt@J^{Z;(O6Fa-Fc3;D!d#p}v`eyf%jYG<};-aa)v#%`;t{TcZ$L^3;q`i>?C5V_Nzw&bznWXnZn+gVP%IK8&O+rv9Ws?cFug`(Wb zsgH%0%f6Ldb*!+S@t3jN3t>sI=C>>kDeYfZu_P>7l~sA|V&2XOsZDx{W-rBFOyc_f z|KPDJ{3;oCp^uFIpV?RSgZ*30&*`s!{uDib(lVDP$}vyp@xdQ;TipY{-dl0%{41ll zRZPjTh5wG4y-8TIfn&=V@n3$T^51Nlt&hkGs>|l&{OGIZPk83E+~ZENYb zT+!1!8L!&OeVoVn^x~3QkzI;6FLA1I%~M|ey|=LR>F25MML!7n7~M>LY@ld4bt06;&IVE??j&m&?cEo53exPd5R!6HDhlQ>8w;*@r;1!>5WbibBJuji-g<9^29YDi-^@k*bSJPmwlBEIapLR&z5s?N z`j@7P{1NT!Z7iCy$gOSW!M!?bK5;+2_Iqa;PlfJe+r@`hPMczV$;g-Q#N4AU>9f9H zK5o1q`915&qaM4SSh%HHy)D@j%Ve}>-f7OX)XOsrbT>{*ZSSfMSH0?D-MZ1uUUeq- zl2eMB?w_vSI`&{y(9|s!Um9ku+7Y^p;W9s)MB~=;U3-oxhn_Cg%Mo;JsP<*QB&l;` zYxU799`>diJs;Hgyybo9zvU8B_LJlfe;2=xIcT@?=c+A|lbYA1M0fm}UnSA(r5<|! zRPBYFC9!V5k_#2k0OkAuAVa~akf}v z#r|*KX1<@@#M+?x;#SN@nbQTxAZnvTw<#{x9XYp=Nhp~?=PFl3OGn{{*se8zQd5ASylMpV#nBB7oKhDog1aI zcrnK}{u}+RB3JiqR97>b=o-{;e)3y~`DM>j`q%v1eE#M)FNK*u%GFBTQs4eCztzsr zrniT$F*_||<&7KrIBs#?P-#9;(aV&=vt|QdV1)l8yWelj-@JQwY~RP;{G0XP=Kr57 z%JReQN857suz!*rV)Iy^=1*i0N?jdU`=stfd%T^U`I@$LZqFF`)f48-Q8;k6_U7*G z`G>aK*xB9uzW+CK^$zz>{}=1m$-H4<>F4;hx?eT*LC5;le{yayZk<=kaLjkxU6v1@ zHqBlYaz}Vo!?Brbr#UTEQ^;_C@OqEf`*&~u|2+Ty{kO&Of3}x>J+*88W(E`fpE)Ln zHW?=h%~-H;z2nJp<9Cm5cInM8Yq-9;xaE1pfqk8)B;D=8B6YR){w|L>`G`~Tq^DvXk4^#mW45c7iF(f?qi|PsgmxRk6-6Js;^8zw+_@i6`Ez`B3>} z=kjBXT3_b!%(+-}xHu|*hR3UFowq!Xgg0MtHc+{om415u8fmu$?{vjDW{I^XO%vb| z``vJI>AZR!tB8o$>oW}_%{OX1FJ1d=t5MzD{ZaL`F^*~m;*X|TozGBNGoA6(F+2N+ zZ8IYt*FKoJAoZe;r?!K5lkmqqCxUo-8?!R(wT}F>e%l=X{Vc<+$5HFjGVgzzHcQ-9 zL5bnwB>T@t-ah{SE#cf8iM7j5-{7BEV zQxAOE)a$P3kkfO#pn6O9nq7~pcX{sNFY`B?+u-upu348PHE+TkN1~96)3i| zo?Q@UrTsta^hMLw{ck$58S+ZDEWV__Z(rQC*IQX1wC>$@#G57SuEIUriMuSCj#`zn z#airGAQ8KEwNt_()59-X87}_%?09fiNNL=U-&a4ryRcj2g_>>Dg_n=EUl8?Z4zpq| z{MJ6wkjFQQ^&(rVxmb~g4(zYycYQoW~ zGXlr%cgs$k`Y~g3favOrJ42S4slJa?p17%9hiNJ6`Gku%v{lY{?ln`LU&1H5>iklr z#)5XyldZwmuPNMq+2&XnJV9oo!PO~CP4Y~?^T?@BDAnlyZQ;>pYW!vKH@#I$*R9U^ z_gYe6<$pT|*8BB0Y98NzBFy#c!q805#G!flaKU=IXekHO8c2?dfsi%)K}LhUI_oTsVe@b)D}LmhII*-%rCxk5YVoU zSh`hU@m>jo&}|nD3ch`v^DVzX{`l3tx$`eF%LKmSy=|AqHodKk>+xshACpBAzpV^o zU)%Jmx}(7`WA~Qw)1UPd-_M#Px6Ptt>#-{v+hnIY-dMd_^PuD|o;6%*haa7Y-SRT~ zyzSKrDYe^g%f9`5zCX`h{Lk-a%fH3{5wEZQ`}J;B*zCFU)+g_N?K9QsmQns;|Hl5# z=pFT3-?sG6KlFsTcDdn+ZeOPdI}J4tMwn{;s7?auC;KFJ7% zTh$DF(eAAuZ^^%T{n?%~K+?=jG$X#-PalK7rQr0*83 zE!m)$w}VgJ=DJ1x>1RDk+a@|Bsc%*&$+2Uaoc)WBK_x{%a)vmA6Qk9`nZYj%Zn}So z_9;19rE_Ifp!9O}pbW;{%CT_^=5tTBJIrRH_1c}gvqqUQ`&DL3oPS80xbu$nTUjr> zO7Q#75py(BQ{)i0yu9Ht#^<-~(;Y9}sNTC z>xROugE}>eQ4W&qIgy^R46_nvxw)VA4S#)Y*ZuO}`8P^d6wW;Tb-J3HuYtAH+r(Pu zaOSjoMYTp9cSWU3FM9VVeW?wdTNS@Y^-8n|-xC?J-8R{msq&>O2Q7NBR7rPo=Lg%G;S00p3wIuGGBjZS@6P>5o?UL=_b7Sq?+vT zc$ag{GzPV3kqUNDi$uxE#O^C6}b z+h_C5SXN3LR5iJ^`W;WhZJS9Jsy>TeP59Qm^P9npi_*)QVwrczBp;Y`zDGsFNp|JG zI+c*Ne|3+2N?4{D{h9mzYKCsmex@8qS4oBh-WFBKWo@jBN!NH|yzqOh-qu{O>M>@X)grG8}Ur6htV#bLp}C=J9HW zTcd|+v&2jmcHzeQo0qRoFgpINK_~u;mx{Q?-tDC#PcGlm;n`JK8|kX9dv(SS<(pyE z4BC7mA|U~J(%)Doad8-D_UFYfny-D}{5H;|tLLuef0f=d4z96Zm@n#uP)QfHkx3aztpp5WRok0h{^CuXaWTI?NW66y|+&=YM0J zR$sosRO&_hB~g!suG_3xdAG^zm@cuzcSV-?rAd)uTQ4s54_K;Qu)P?%FAr}@kY%y*;Qu?-R>X!e}zpq7o{D1!Xsr~Bz_Z|0NUi{|o zszdy5?Qf)d2-p;Ud{xkLUr*2MBwLB_+ijoEH!Du^m->Ez?F0Mlp4w*zUhOW=KfLeG zdeQ$2{pK}JKkIwDN)KQyhn;9=M zZ_}e2obO6A4t>!%pRBK!eYJ3&{hF&+k2CZ{XIwsWLpbu_@t=*FN(I79iPH<$UNpJS zv*rKc8>=_2NNOyRb7mAzf3rJ9ctX)VMXi|+J`_Ex)NA`!&GuR})Q|maa(>k%BSpcL z56!>dVb1xTFkxM$Wx_oZwN?+Nk9Kbt3oSZyb=eo^e?R3rmz~jCL3?)|<$?wp;pM2LqDe}xAHtU(cC!MVGbGop3$~wMV zTbMY6Etaq>n{K0jQSQM5=Z7y`Y!9!?pLN#aZfPfPTF~||DYGA*Dm$BIrBA>GPDk=y0&e`~C1 zn@ISLLvjgM8M_`_wu(%%=@|bLwLnCmR_yn>FK>YZXaNLF;Dzso)+7l zSiH7&*7}`iS0{OPWlU0fy|?I1#71TbLnf9+M(ZgatMU~i1t&T9_52BSoWQ^(#9XwZ zZHZ{N*h`j0i#!bOo@&y$R_z)#G4$)Z-Dj`QDgG9By84{qv6$c2;y?WTF!#{v>i5^@ zZ2o>L`)t}7!{bkUei+=5;&1)fzBiBO#jodIOJkY;`CnUgUv%}FC5i6yZ?`h?iDWpg zbV=g4#&|SMOW0v~cUuGBq#Yr)`Wdz#{=KQvSk@4-z*XhI<+fFlq3aBfsXMYSFbd=F z^O!5n_}G$p!jjFY7ea0n#YeC{+<8N7ajkS{cHGW&{{J;KA4slXvT)&lx8}jD-ayL= zy?yIt{$#yb%Q`ih@!P9*2iXJSt~MPE^x^tcCVV~M;D<2g7SDp43{ehgJb$k< z6egXCY0BkFFunXQVQZe8=DZujKBXm6`Kv-cJ3?{(t#?q57(% z+W#Lq-Ub%@Q`)J|C-LTO!HuKyO@$AnE&keG?Q-7epViZwl8gWC$`o0`D!jaXL&o9{ z^S6ucse8Hk@$A})`u$=5>W|u0od5rKZ|%po?`v4{zHF&y>V3wOQOI+nTK>B6Y^?>B zl8Qo}D;oOup8V{_^(Cx7!AD@l!B-Pf55Ir>t6BGH*S~WCpC9bLEEc5Au&t!&{>P0; zR}vhxug$D(W)OA1m)4{#J|wwHzhDKEi0RNcIW(K8m5=7-fZsO>iS5SA?c=}rrXx- z$6nmfJkTno;PkxDI`>=4?Y+{?`)i)aIa#+&Oilk}d2NP)^$DG06S+6+dTTvNwt4g8 zTt&t_lQ|y`)plPC(E9AZDe?;I3X!fjwRP<#EDT9hBKE{FeE5?&Upg zy~gu96W6Y4uxyH-H$k6&i?VgF(Coz#Q`d+$-jr&Mn0STz#@S5n&&MiO)rub2dahdJ z<09Gi_nP&Bh5uTsh5xC|OiJAn<~n=EmMK;K^OgAd>`jk+^Sbn1^tPtj<0Jj+_O7!y zu4LA};@i@c9i|UQ;$Dc) zRuYU)Tks^Vb%l^s;)TAH8Mez{@>^5iCeUIb(@+TDz1T^yJiU^-X4XV6=grkb;+0dG5!VxoN8V z4zFB!?aD5Viw=6G|Gc}F?Q&x||2p=Z-}K!IAJ%yN@LbAQb+fPWBwwxXzt62DzM5~2 zrO%n+)3a~am8^iEl?zOIG*($IJR)=My@1I1eY|Q@S4hp_(YPJlpvRZE`hM<*H47Iu ztl}2<`r_sn|M$Yo4XX31St_|THamO9*Ot#MEZexo==UkhyS=lR-pvsgzhfyGzVF%J zgPsm0g4++iUNe=EXYTgKOER8+OfD{*rMhbVx&Fpd;Z?n&ZqY}l#0yuXO4@(#St+R9 zG__IkiSYWV_6zPm-p3JQ8=+$z^y>SJ)Hhe$LJe1nY+sjf|JM)Y? z-{{(?%{ySTZu`BL75y96Sp+Y+uerYHXtq&}Rde{7^Er#(?^BxbNmgJ{7f;LXu+>Hn z150;lZ+klHl}si-SAyj8o%s>WtL9i)XCy6<>8w=UAea=v>gYYwNa9@K)Jql_8})*}v`&(A8-lg`}{9FAW{%cSEPd5Ge{nY=z$u_@NY1#9iTJgtU zFeT~QS3aduO}CC@q4}5UTvASXH67?xD4w%W#Cd9cX8xl37k}BB zlq9Zz^(pJ^4lMsr`^9sGhIhpE51(1gZ05cGG}ZN}D0|hrkBdJ#{G6Ainz&K1)T`;~ zm7V4#c{grd(iHG~up+$aeMl+$3|;95uS<9x4qVrmkx{-w?S4P^Oh4Ib$En4y>}#{`y|^5C0?TW*`P>DHtz0|#^4$02 zvc))whKbo7xBbKXR*|RYKaV3Lm;Lm&Qf+(_8vY!0dE5V0ZL!!!t%%mv-{KE8)cY#u zY>c0Mf4Bdpj@p_t6?$ALLQ`}_Vs&i4_eV85^-Q)~l)cKkM_e{Hd&Q&qIX+2@hZn~C z6>f|D&z-<7X=)gFbj=1+|0vC7uCITpwAQD4JnP)6lsT_qn&_opUR{$n=5O!5)!S8c zNu!rZuC+5z)amR#Bj*Wei6y)z?c6Ue*mZZtu}%6jufF|p*2s8LrsLW7kxzwMeL?~| z->f+6@WuOUb1cuPixMZV2G!1)I;U)*XU@YVO<6Lg9n7*eOio`zroK@OHf>Q-=UwFY zBZe&?WOrY}@*oz2InVkI2KTzKwe3mgPuXMDyW4OAe|?PkK~^C#jpNNtH-cR{+l+5Y z{D^(M_<2DZjYTi;vFRB+n?~_O9$q@guHN7r%RGnNQ*i zFx)#Ut9#Y=mPI@6dF-+bwq#=1I-w%qap;<@M!T$Y-pytR4*z<$s9rQ|>#4ASev{w} zaniTdrX;?YbMT~@TAIZy4~bn8G9UlkUUoiOG+<-xiuVo)X(??L`!1e4bjnfv>4q1Z zx5W3XRXTR9?}uG;MwgV5M_B8W+m~=*Kew>{Ez_0Xj-P+`bKkz_Hk~^k zM@`Iq_G0~Sg>UFv6kMM zzg;``Hd9$WX-?lL>`4U5k@oo=y*~`#7dfiV`|rK0K2bE-%(&*1Q0Sf{+qY|Tzq^M&z4J-k>bkww(~yGqDb5v7 z|6e^l`-i6ZuisDif8G9gmfUr(JLPu&>;CL<=$w>Za_%?V1B06x#xpqhFi1C~dRU zajnwjd*?53o;)?+>w7oWUx&W#R+-Tgww?Lfy~!<2?C!%dPL3pY~N>*s*w$E#rzV`ITN#wY?1U z+?n2U9^&CDS2yNTcyLaKaUb_&iyOgP1s1R}RBzf`FS}9T?VgO!U8YI8At&#BJR?zi zTu8xE?ZlS~`<|XTpWb-#GxkV!e(B_NEHFuGyE)~~^(!+Q?=f5xtX|)>G$N7t?`ykd zmpMGj`WRX|7x!^TwrPYd*by8N+5fRd=vQ~dgr3Gb>|R&?B*<;JUb}x=tJ$gd(@(DD zc5@S|UXuT5@9Jy=;m;!J_iwtWpWdc%RNd~WQjARUJdI^KYlV>PyKhmW&izy z=f2oV=UDtY_+fwbYtQxO_uS1np6fE+DsS9U_&SL_&+YQDn|sX-Po4U5a+m-9jdh3K zzGC__Q?_Gv;i>M0JB%}av)z_G&-I&iR|L1O%1z@>>mM#(pSz{>#Igi`@psub)W1IX z{HL7BvS+=(K4jf^^C(a*=nONt%xkq(=y#K4Oe_ZC>(3bW7TDfb{ zMPtpbl&O1fzKYCUeBAzG-Qq;PThf<%4ZPkQ-JBE@oL}plc{O5Z#q*hty{qnUYQ3MduVOTE&#Q^_0cqyI*?R90Jw^ zNB`K(!YOe@ptn)}HVfm_sn zU*9cMvnKnb!}Ps(gk>wgaSP@4voC46#9$(^no-)y-p=`P(~axyT3cBTKQWlFLtsVV zg8Rp+diK??^Oygx7x_?JA;2uV=ili`*S&gM?iK$}I-~_Nqe_H?Vqx;*wzrVNkWIg|_ z`qQOLYV|VMH?yemWSe|kb92*9u}w}A0kh5(?d6P+;GBMKroDY(zTOoZO(s^C+^2Hq z9*9&YoL+ZmXa1e;^lfiB9CGfsi_fbU($qd!64u+ScqyP(yXMG;@ahor#ecctUoRwKm3lx2#B3+|hqULy6pkJIJ(=Kj*$ux$&<(x2{Mp>g1e z^#Q+Mf$3sfguk=8ZxAUe*eqZVWY=ooku@?S*)L^C-cA0 z-TuGr?!G_fZ=XH8A2I#W@oW0`m#m!dqTraFXq18mo5VTx+~7X1wV!sZcyjod{f%i? zZ!Uf5QovuR_@`Fz#?)l5!nn1Xbx$N;+a3*d{~hD*-9E39{lVgkvv(M7e53TBRhLU( zRcg#Fvu#QtRW}ICJ}miD{@A(sxpP!|??<_uV z*QEO`PE7N4nVQ`$|1I1HZp_Ox3e7&eD#2G&A>@mbq>OMmwr9 zwMzEdW{sIa`K#3T`%SjKFMLAl26I-tpsanw3d|e3p1{=|+to3a-_+)|yVgJ^O{VyNT^D zA<<)=jk1o<_&j|&WWH@Y9@?6gB=veu(j?{?U0ymzC-J?Ww|np0H!lifLUylMA^W_^ zsps@e(VXN>VQVsKCLPdJUABs8xm0ap>yiuq7IX<6jPNrGe7aR)nVU^P{JSE3QM>n7 zLQh^}xYg6=)e|0X|ND#jwcnQOJpXh5zW;x#eg68m{V|jO9lhuN>3(N&*&la<1K%~( zZ1bX+L~ewBQ4!Z-y{1*QbJav9&f?7p@fVJjFq!;2>mRqjW68_IzuA93-T$-v&EMa@ zO@Edj-2Z;v^~VQ)X?|B&wcg{N%CU|zgUvF@Q5*6PZ~IkY`Ni;}-(n$7){?%=w@sfM z#Pcs&Jx~83c-}Qi_TN0kZ*5r%xi$CI{7mxYQ&5sPnRoC>yT`fRy#JHF^wysH+|9B% zw?RvDRetW(zHIeCeHH0-mkW0{snzlRyBfu|d7;KZ9yVzQHHO!ItM4Uxn=v(qU6x~V zcslPC*Xo&3CuHWYs5xeO+i3-}OIY;Po{#r(E|kfiIAeWKZ_^^VpQ(G~YZ$p6C0JYB z)?|Enmv<(U?Ta^;OSo@~6&|QtQ#(QYpajDQ-LU>+_S+c6STbIBc0{NMe{Z{gjQN0k zUX-E9o$U+5@8_B>m+p`he!bXC%|dufvR>g`#(Av_4-b`EyZHaP`jG2wS?k}QA17r0 z*pqRTlY#I3%(v>VYh&W&-~Q^#`tXs5@ypW?Znd=5skh&3op0fL{Ca(RT#?OVWw!%m zA#1#M9=6JqUe^%0=Jgq_E#ce5nSv+YU@kEbp6toF&_T4(R_=D}ZH;$23`SmT(Kr8H zdD>mGcQ?a*_c;?4nl5a2TeP=@*D&+G$g!y@xvtVI{u7dpeEG>Y!*pAC=KJZEZ*GU| zPqhDPe1DUF-5Y+XH7zD4EI$0cyap33-mdz>_+*vEll4yxA3NQUe(_{V%K8bt!3SJ) zw`|{icgwu*f2-bIY;)V*Ui~@Kcj_+lq@NeVcpStwx}G-^zTpx4+dXDV!`8DR48K;d zGqcF|=50uRwAD}WzNq|r_h-u@+IQ5?YmeBZZS<05&*xo-{2t$9#EvUaEFx7yi}VW&M^%bWf!blYHm z#e2DdnBI-gzrLz}G&OhXW|o-V-rqZW;xpGL#xgE_3g2pZo$lX$TGUwPv@|(ECcw!jqy1}fyJRS@f0Do2uUqDIZ(dJ3b#bOl#iRP8 z4lMG&pU&ntndL5#Z>fH3*R>^lwzn5l+8x_`_wBkjSG!m5cps(87TO_YY#D9;y~xtt zRktOgWmnr&Q7fOQEY?e}MK5exH}N&c4z`1de_wx1WC~rcA!sjk%W#EaK;GMj4-^0L zZ+RP|^M78ytWfXdy)^|+e|83>mT_%hwy|C(=&daHrl;lZ+#A2k`^zFDHa`3(`TKxU z!7QzpGrNTx{AA-(J4k(Esh# zbQ%gs^!8N z4^PW2imwfky(V8Q%qeN)y#dw}IIq56)FVvp7JZs0^ijAHDaUbqUz73mm@bItuFLhoiGu?`K>ejV< zW2`dMwnGOvPdY|2=kmW>zwY}T4{oTl|MBnp+pDWc@!cz`jN^vhicR}UWQQ_p|ffdi4CxvU~S3!hVaKx6bj9k)CruTtEM?`+a+x36|~Y zVhf_PG6ZzEE?ebKni+iO``NF(ch@|>ti5XEy=#~I8U>%(|3CE3eoyRt-lGYRZ8hY? zpa059QvJH<-lLPBw${Bn9lk!-T(Od8_w7V$gR|+J1qaU`+kMsU{O0_GdNp~T;9drg zBPPuqf>KuRe|+1po`EB7@19MDo31~y4Bcc>8!yMZnD_qP`t4iyOye>BYkgso=%0wc zFTY+DQ8<2>*+lu9_6z|t-^*OHwm9$DmQr=@wBb3aTT0iy-?HBEX2C(J;57@n`~R|D z&QfXK=zgm<=J40Tz4w$epJwN*{5E-Bj>wG=`{V2GHum3FRQvd`uSV?HG`609lO1&b zbTRwu$M1_e&&&90!`$N=dIjWc5AF2Hp7ZTm`N!@J&Z<@CdCe}dvL-)jaD9F1jk3Hn z<8Qv%56(Y6zOU@}#<%J}Hq8%fNVDZ$&mVtFK4*XG|3AC;Z@snc>hmwMU?2VMz zgCF)BkvONGwDxY6as1w0l7)BE9<|>J{qvo9LhXOXhsQ!BH~VZXyBAe-=kmI)yL_XXN>_RoCT&&t+J0^-6yi+q`|^-Qy>Y?EZdvR^A+@H(eHnc8>%UvVN?(@G#=V z;|1A4pEggsYQE=C32&F;?z@#gWUK3J7lK-r%zp}epL5gE(`v0FCzc%p~A6IA)S;b|z zzv;dV=Y)%*n~b8&4i>9~az(iQ6m6|t%$l&L*%Q@#WtS!C#PH^|q=S*rR7OWE87qi0tV1w_~XZx;Z&tT|CP10Xl>m)d9cI-@^ z^4`3|=acF;SfvDQxE^qo0)dAN1_vgEuT(%=DD>-EHk2E8>Uv6v8hMbk~nH7`Ac4cFq z&3sp7t;nN}{68u;v#;1BJGI|-l2xd~lXJW3#D4EN5f_;5ur}bu@~OUB71!8WbEchJ z+mUwLyoW2!-EMN<0mJW67k|mjNcoUc?9bF;Iiv8DQ-<#hmves}pDWDwd;D)^{=X|y z8+JSW=Kft=|FGX(!D_wZzrTN-L;e_izMF8Gcj})TPxWL@8>XBNy2MSZ>~b{j~eGhuQvLuTFdXyTAXpRzu7BdwaHDyrp7&GAk%O z)S`rsukBy(r473^R;%V}F3xzLXo*`EES%=mG}okbI)_WVnTSo-hur;nD;J#P3+Q28Lfi!XJ~^)0&Ahb0bo?kK%^ z!z<(p%abWF;&aw3#S6SwEIY+>@!-0Rt!qMxPq|6Pl%C!;=h#U#;q$&WX8VYDiX;s>mmrTe&{v&^s08+y3zWqvv`y|EFF*xv$pnVUn%FvRQWb zzSu3vxV&6M^Km-&e4z!KCAZp^{EMC={v(KCZtnrlg>OGuJ4^co&aa#P%YKH_Ik%jJ z2Tg9tHR}pY=XFc=)Ur66r?N9)KgXRdz5n?WRxW-=j|M z47Pq@wm<&LCMEj>_g~K+v&Bq3KTr69^afYijVsPE$kqQU@JX&uwvQnzpw0Wtv{5fvUTp!MJcxyww}42J%_V& z=Ji9K)#?BLzW?|CP03Hjo8EW0w;D|=`0)4Oku4M6g)Z+skhEad-Pv0Tcd-AJyY%1G z`(cpSV=nbQ8b8e#6W;}AKb^PKSH)qqQ{bH4C*E`4%vL?0r@kXoZFkTmF;-=TeMc-# zAGx&P-1L)Wve!?)D14W6fAv-cpVu9og>oiBg4Jxg(tm!6%)ggAkMX8dov&Q~ju(&J z)_nQ-wIuF5!vW#yy+5;BU3hCNPiOHgTeUI#7)!gcld<9A$B9qZPw=~{DfMV-nEL@$ zAC=G`mVG8~UQG;Hl&0)(UQmzs%hhB5d;;G;S>m5v`ss)QSCjLCe^rw{ep_8$R$Lt+ z=yzeK(~=Xct2102ct886UcEmz!y>$6#Z)t)2j%kjE`K+fwtNdC-;L(TiFcMg zl=`V8wAoKx)K%)smHj_Y34S&{*w2{p#w=X5g{8EmWI`w_R1Wp%4jy8Qg3pLfjB zmSj=A75}(ekRc{%?&ejwt3tFT??j(}!j(~EF~v_Rey)+i$9n5o{|nqt?J~UFt@U}6 z=M{^e4Way&5^H$1COO}Cs9q4|e__Fm-M`yw%>MoQrLLd!|3{S8$@DMB?2mKoT$1^z z-6}9S?-!5XpLGBJfCf2F+lHAvelBm#tj_55G7H|ivE$;|Nlyd6B-#lr|y5wx;I<@ zeT9CV+{zag!x( z;&+FdeP<4To17P$qw;x$OBmO`(CXJy|L@8$SoTtg>tRi%FdBdHVw@mEz>^?l1C-vRA8PQ$WKYNH66>8Y{OD)uJ{b+Y?qMMXZ z&X@i5Kd-XSYv-FV&6Drig}=vn*WEt#%;(ZPk)QQkUo9_eUST`o(Ege-dAp8>snbG} z)*oDVHU0m_-PJL-T^x;)S04zgwfn>9UhQVv^h>t&$6<5ezvlQvH9jO=i^LrA#HvE~e__yuc9qwsr*%~hnIK6#j zCog|J>g{9ZdrkJu#XlKe%bi^CjqQAR;_1GKh(g^h%|Qph|6etu{`Kac53YZhcfNm@ zbnAgW?vEQc2%S$#TBu-REhkW?^J@D33)gjj{Jm%X;HcE{y*sxbtjf;e-)qeIa@v>J z8?!G?+gWfodB06T{)P)eWsaQI3_RDve?H{Dzr5eWL3f6rjA>`L*_P$93@L(3P84qb zSlY$!HtDTZNL=fFe*6DBq)fMG&V93=znnj3`qZ6wHqMGWBedbc>g=ouhR-b8E_)WCdAKa>`}R_$4I7T_F|IAW&XIKN{AIO!kCtfFd`q(A?5f*vW%AzY?)2w5 zS7dhn_)`_MKAqvg$-PW%{vt7b{3mvAOll4hx9#p_l3BGz`)7FS=^PGrUq?<^ueEE; zRF=;1oUi=dk9D1q-43<-{<~d!lHbU?*KC={v*hi{1**TkC-Lb`-h6>|B1im>PG6?r zWeZ}(!&W>$Eql9LMXy8h8OPez6eSME&kd8gCtW(WKz-Fcj`v&kSl+*LW%{niYd1d% zl(?|wyP@yyKbEbUUS{2zC!Cjh9SWOqnCn*Y-Tf|2a>|b#I9oH$o->HvdVIaU9hbV> zcSn=;Wfw2C82rAU-h4x5hD2*;hy8LTHb!kziQ?jC&&B@Py^~rz=ZwgcHswCAi>m+6 zdQ6XCh}H~x;@;GKS*^lNGT~{Lqt{EJAAU^!@iF$rT^B4O=DC zZMIgEZAFDa#`{yksxGF#t!Mp`>&=-_F@FWiBCf!k2E{B#fjgqMSJpng+mlc^`@`x* zH;(T;UQ`fn!gk7ah5h8Dcj5xgA%c-VZoa8Mv#%^po|$ut^4r{7@`=HF)@DR9p0m?3 ztKekF;W^YFn0k%FjXx$!l;Pp^8iQ26v&~&B+TZu|x1C=hpu-e>VzSlpPmk_Pl`eA; z{BG@5wn|pHDbrb1cdMwx6V(+5Prd#2=PQfV8I@0M*SdrbhD0|%exQGJ=ViOQuHKin zFfE;5`>p-Ws~wyDKRQ!|7alwH>Hv1H##Zqf7LH@IT|ICaaEo3sAx-yHw#$^XNe=WoT5bu~UTvvW%}wG+;z{l6>2~Q%PMf>v+@Z!> z&KvUXoR(g2_4q8On%TapZ}?`yf9W%wvz~MOe%Vu;&=fiS#rbz9 z3o;^WUB6Bi=Jz?jHOi1v{nYkL>6_FgLo(Eo)f|K#$0#ObZJF70b%(xRTtJZE9GBKBbuVC+?r2n1uDkkd#ta1kyMIObCr@;3mH#Dn_?Y27ZfWjgy?>0a?VfQ= zZn{_3|8uuZ-b=U_tx3A!wl%xYbLrzr*bT2~V1FBUN65>&lr zpY*A|DPV90A{X)fyxle_zcTrre_21;joAi)d<{Af%9f*ozkUiL* z(>XCr{@~S=ptvxD+qMOBCMImLW0~FKnP?(wVkEpQNmJ#Lw_2f|U+5)H!H>^h%z7dH z#_jRSlqSaY_p61M&i#A5=u9Ku{KE~5C-%;8;r{x0+Lucwi}<#@xaqq0HdDZ=%yTwd zcpe0JNxkh~!=ec||nX;!_;;;g+ZL~ftaGFm_XpssV|tJHwh-Cj2Wtwi|EraV~x z!B#7t+d|4D%)q3|Dt4Y`-;OI$UkevWNN`sitUL7i373(i1!iAM4vW_H>(}lDE3Ztj`sDOpIyGjWc=!~WTKF4|e- zmOuOXR?Up{+`8L)j19Z@EqpqS#rwm~MVqsFq?@lPoo#f_xyjT!^W3Vk``h+T5&tnS zejfXq&vR3`{cd<)H?^2?!&2&CS8e1@d28Vor_3CY{KP)X4zE#w|dEvXmY9GZLP8-^N%<}6;2 zylmrwtZXf&>AQn=1|Lhhux@8kPvIuUYwvv)l`;z5uwBo%jr~B_c9GksTPCgz+P3j* z&AN@tKU;PlEo@!C*_FX;Ua+p#`D_N?IVR2b6dJDI^D9^wvGKUWRAE60aRZITwvr6h z8&;}q3exWOUMAQgSA2g$Zbj;a7U(WA;P~a~Acg|1Fsy5LLp>25jV*#$isOI;$Ov0HU^!ukiS8mpuWBoZY;zVyC3%vtuYuSa>EYsufdMW)SWySVo< z1RRYpjhAb%F%Rjio*2d;B=%)OU!BL7h3{r~$X!qPE%SFj#~FzUoDLsm?&du?eU%(X z+n?`$Bj-vA-1g{EQkY!yweS0mey**Zk{1^;-I@AEsOHe`4fdBvxQSx26=V_~dMV`?tow(s}&0R&AOBd#~(g%;R)<$(1$bzSfMC^L6U6K_dQt zq7)Y{3o1YSXjXQ}B<<<`j;k};SFwDS5ZCf5R}~OGDYRL$f_Hl4>E?j-MX5}V-@F}5EuR@*u2cG{zj4{+b+^;+|9Up-kNlgbr=@>;*FQbK zX6k=&$E)S3e{%{K{RnPIxu~~vm5xJXPmcCQu_dznqYgePbD$bbocz-bE7Pf0b4p{!?i?nSp)Xr*!MvJi9VZa(3n2 zV7~L&<4}5Ymd)yIjhEM6-x~ej=>GGk59diS=Y}p_`k>DBcXr#no3`r~%JY0l=!}c2 zI5u@lJ|lmG?4OG}*E6oDYQ3Sg{_K-#@vyh&WB9WYuE<8m-HDI)(TywrE|l_x#Vs`J z!W2fAvY^T3TW+TOJj(7L;k;E)(^6!$+C0l^`vb(4t6P-c;Ygad$!-4<+;90vwLs&SMLbd^{ul_ zgRaESDU`S0xANa*aiwdY&DJbl=&>M^D@Aq6#1{(>C|^4oHFsas`R|br)Nc7zRVK)k zZk_k_>aV%`j@(?tRi|=WgpJQJ^<|jk4WAv`Zo1u;C@H<*W?bwqeBK8PA+9U!THGL z_4%0_7k}LI>5XW{Rg2Y(btP#$dlJ8zuImmwevs??{^L2!=_q4PFLUErBmW(NPaOE38*Z`j8+chUZ)tSg5r-1;lpT7ry1 z^_Q&bGo3VTgJW;)m6;L`7VIj{TAHfL+xN_g{m6o@sZ)3CIkd%i()Uvd?jicSG{Z~! zUM;zo?0Hc0LWsDuGOHv{MN;U*E$#;$lq}|U`hBx#+{7=u*SSG`o5LP4wr3@IfwjA5 zq;Y-cU7&E#Zm~u0D(5MS*%AzT%~(6a5_OY$=J~EkOM1&NM`3}1+NZaVJTEY7DGDV& zlzIB>`<4x-f?F2qxlFd)ZX=K||8R}$RY#G(@`oIM+<9j3U|*Q%A-BNP7i*3L>{(qj zg>RM53cgt`e3}o~KQuMvwjP+ESlMd)xqj`rGTt?BJ~8eOzEPD}TH?H81pdRLimlb>&AaJLIP`--t?H|>C2;) zqH_1n^Q5jbsxNvg+J*0DPe0GaDcQK)Xr|V}-e9*6f7&+8%r%h?+S6~QqJJqty(h_Y z)wEOztTr6mnEu1{s= zcdydb(!EhX?f1eDmemg`x*AMZoMU;u%rxNdo6Yn2w*H^4zy7WM-|BgP_HU`o`=&Q# zsbQB+_34w#v={>(^fZ0bT)_N$51aQImZ>-Oi@TOOEO;i8_kXqaO6%22FFj8=Z!y#9 zop;`P{*QHbu}{PQJ=4E=_-=EoUaIfE`)fGGZkz6M@Vq77wANMF-Rh<{r`x1y>-J7r zY%ba{d+DOm87F)XL>}mSb#t)~n=jkpD>|KfSrt}Hwz@a7yHWB_a zFCgWeqwO?#Gl(SB|KZ={vVa)kMeMNRk)Kp$!1$TCB%dHZ;YWJn=-~U_l?#1aV z#r^4#5whzizj2k%_WRHOFsadW2?Kj~;4BTR!&9vs^?BcxnP)t|Sotz*zr};9%GeK! zH#b@yND0bS;9IojB zFm7~yw_7+zXJ+ffD@RkHJL?Oj^GM!GC~jd=_E#<3_d#jPt9gt zj>WGxT+6NN*~|8!VSYPn^!;b&t_X2m;7z~#Oe$Dc;m4|$8$Wa^{I6Y}r_{Dgei46u z(y}AW<-ZFjFNozbpLKHQGF=wqJgJkV$0NeL#d;37^-RnAXTADt!`%BH>+}+%qvY#s zZj~jyf3(NlX68Q0N~RgD!sqR|3(O)8C9;ccyuXW4!Afm~Orc`*%wKz?&+if_nd-6p zWL((1!-q_ncD$K?-7NdlpQ@4#${c8YI;0=iEI;|OtTY;J~K}= zh~xQ^tb7Zv|Nnj#e$}7eYn?Gu;p9WtL;kAw6!yE7hOynvktjD3eqkZFfJ0-(&UI=?XqvEd={@d!@r&F=uIC7a@GNlMVr})1^8nL| z6G{9bcFwlKsx8t}Y#de|uJD`MIYGCEpWox#%n~n-Wx5QrH-t|t@wAQ75$=3xa_-Bq z$J!i6PQ-1@Nx$$rTmOT<5&M)M{ppb}6GS5--o4#%nzf`j+12#D`O3{}OpaAA`68Ce9Ti7D;<|FLTvUG`o=e z(e$4CHis_>*K*X06g=ByGg;gPmb`pp^6B{1po7Jex8xYBe7vKaUk%N__hgQwB zpPpI1!QVc1^8eS;)n9+z`u8aQ-{o(gzP`T7x9;kDeyqS!GPh_Gr`O6_U^DeR=e*n*VKCX z$3HiO_1ORa_WkY9FO%~m+2rM*V#y;yb3RsYiuOijg-esXF?ytYmy>!N}%^&Z#7QgoX!tHz}Pkit8t?$grVs};-e|M*~)T#50;r-J@-W;7fuTO_~`7PK^1Z%gKi9&w+E1=~DbXY;TG@Ps2(Yc% za(hZ<`PqFXbGUt{hsH2SpH$iWP&)Y(^E>Hvz1vRLdRC_=cuTxn{9=FW?v~v#Ynm37 zaWbv@*v(+OcUGVGr5z3(KNmj#Cv@`5j1$R^ZFcs?upD8Ec+m98s{d!CAotSPD@RsH z-EwExuD0bu%d&}4AJmR6GN$)q@xFD}| zuJ3n@$-+fTY+rZZ%1iU^owviSbJM#;GmPfF4m&f`Vf%5(s~OW-|Mec?EV1hm{qGiC z^3d4+;{Ee17XHc1$E|$7ycc1rP24o>RsD5T|HV^XS?#cG4q4Yy))8gYvnFb z`e?0Kz^?vuk?X@1A!|>bl9I8M(R$W>Z2sP~pb4Ar9M;gESQE*$`{jghJPb}8%b$i% zkoS4PZK{@J`R{B%X}<53ZE2bo5*Jmqx&m#(LKP-{^t+{{Z8h_UgvMVXKkW-{266uS zP8#Ye$!iP}YJ!%YW&Ue_Tky|z?MN1{FFx1(56hh_<=$wnny`RL{DzhCXGMW}HTUjc zKYOm9axoGX3=`OTEmJ1+;?51T0t~O6j464SasSUV`EC2Z?f-qI?(P5I=jxumui3}; z;d?euu=0cOdL_Mvrl^I>4-`6haTMEj{&{70YT4GNSG%Mp?sype_^)(?c)>5>hQ@?7 z1w2XV{tG_ssylaIe6DYwXtqL>D)Y`8RjLOY_O0ybXAt5H?P>^p$FF6$IzMFZs~zbfV5 zvbXt8Y!S4*If>hEqPkjm#ru;6T1B60B7MI+`M=r!|Akq9-X|ZqAOFL<-s;)x-*;Y@ zzklZtd(AK6;N{G%oRbrKu3s`;+1QvE(5oxqqdLh{rC}|DL7PG};|znZ8!rAk^Q~Gu zfi*xznOXb&(HPl(5)B7$o9DlM|L4*Dn92XYms!1k(|!M6p5Lq!S}EyCmrLiB+r0PU z(rP-rBdzIhEJKtz1N*<8E&dg3GfbqkUs(KaeZMekZRD!;$LA-BHKaCkDQN6Xej>x? z6@9{>Q!qK4O`xCAxY5zZ%24pw^##(6wr?ErzrBz;=NviZnDd_1>7P<8*i&EIUwqc; zTz%|(dmPVpVMc~E%I^1$N=7Noe0kFB(C?q0`EBPp{g-=Q(X>M$H`n9ch4QI6cO9+@ zm<6YMlq83W>dtVg+nd3C!Pw*;{~t-a>Mym)T1Or}Zc(|=YCB2M|IFgn{OO%uFE4!6 z(A;v{(>Lv_mBZdcru8w5oB6-}|GD-4hV%cAn!k;&`8|LA{GxmzFBu(S)uk*Kn|G>T zwD~bD=*qf7M`A+Czs+G@&KALZp+jj}h&+MyHR;TPD-7egnFYQ^X?T#Vw|Q;O?<^%Yjsb!Ro?%=_nz#fnob+^ zzBx3%{a7rdo5B0&(rt+o(OgST3tr!`{ff#XOMc(U70!Y8&a$u^vX9j%<=NFze>NoL zRo2b!rk?J!bq@q)O3huc)K}=c@taaE_Ek}Ghi1QA|8x2FsHwd#I&clq3%e5{mb zxB1MdlH*o6C392e^B!P3SA6?O-=|Eil$oZGwmOBV~PZ(XLj!l~4Gv4vIe*J&n;+fuf_%{*dJf74!d&OVl7 z89kG-PI5hVYG1$a`+{##ausJ;j^5C_ec|_6msYFuaTBdJmmb)EFv}}=)l!GM|N9df zHWqoc--vvx?R)Cl?3ru!_NiE{TXXZp?AbTk*|Q2#o9^A%uJ!m;cHm;!rp~GVpCrwG z!p@N$^3}M~`H)a%WcZ^nfg^1<9(0!2s}@cDxnJuv$D*Y>^7i=OS!vxe`>T5Sw|8gX z->U!bUw>-f_uKd5nZr~9PA@fVOfKD?bI)j6;8dROhM>Lq(GM5RE50=~rt|Lw-dDF% zcwFRT6=MS#9Sk{Edv2{zdHrwi@9MBATr2+fc1r3^T4Yjdd`|6Uri442dgl^j%^fi_ z9V?Ry*7;mFYmkVPS#*${L4<$b?4}Rbs?_F9+~P7Ju^_Bg>inXFM(f+&URmrK8cJt3 z8(-}DZ1CA;d%+jY7bmq`{iEcy&i`5p6&3SqqxHPsiC)MnU(kQ7N_S7$ z*%#lqRDX5UCLOr5QcBiLXz%e_VVOmxZQFF1=FTpBmvdT7L3qjB&%ZXT$X424cPD-R z-zl-NZ{K`<9sce4zen@8OxKTh-}>+FZvKPk7(#a$3d9^dP?x;_|JV22r@nu$`@y_> zhtUqVh?T1C3&cYH&U9b%f1Z{0i8zVq>j@LzwXJ`~#q{R;Zwb|kNc;QhYGq`Z>?*$&^)f>($q*NpXZQ~Z35&m@c_c`GW^Dkc7cMn40#QXpD4><=}h`^{h&#pgWVF3 ztNWE6YIVx_Mf?}x7ctx?pfFu_gU^8kU#a=m?ap_t>iw|T`0OVapXvXONj7ADSHBf_ zOIvuggZ#4W*NO+8?Z130y1M*({O$U`{{JK2tQQka`jxhS-l-OIAxpJh7XFKFjf*@3 z_3INCxfev2eJ^S2W#WiEY%a!_>o!{^K{@JSlc0mc-@~$1Kc~;k6?&Pnqb`Mig)JA$ z_Ex*vpBxjUl4S!$%?&Rr6{!3W@ch^LeA&{KO#-Uwx*u0|diA-xrExvhI&D`L+VJ;% zPUMXrI;Wr49GEZkb?Jx1MC+8)hg?o4+aK;{d2)=5)+OE%bJ-RR-0 zAR@&wojtf)iA#^EpVi>wXPJyli}kh)s~yEcY%}-VJl_Nc_0-;n z*S^=-++DZr>ifq_TbDHkZdW{XTF8M%!kr=4#8Gk5$E-g-Mx}@AOph5QgsB#9?bxc& zyDo{zX!Dr{236r&+wulh_ajGp4+P%7*csrwP`>>wZ!N?9(;3km4Pm>K5B}Qu{F>et z;q&X4e*w)e-dOG2cQYv0tf+-q^n1GS-hHMPKi`n4==d%XiMrv7qKmv5VX?(pP$5~q!HBR@K_miZ@VbQ=ABy~)jH`XaeZws$wb z^DFnU_=+mmpWGO_hBNf%Lakjbf=6mM&+7c?B(CH5B$eiPvS*aij^eK4&7SNeoin=_SAOft;_Z&obSAU zc+VUOo(DG@gSu;HopiJ^t=;o$@6olLK;^(ZFS(QG& z(o=G$kY`JrlgkH9j&nDcpIpUo?UtDXSHCLr#2f!>lP+~1*d44O@VaBkYy+<5_uSXF z9`&rK2$H_x^n2bb48R~9+-bWPCY=wCAL_ohOd zDT!-?8iIc*vz0XmueASq>i^ZmwSVs4n*W!({!rYWs*P&@)2n}flUwyWL_2>=xZ}&X zgA4uZ?sIXy>8kzT&Td_)B;P9WmbW44rf`f`(5$_a-iK<`zu)Ds`#>w>ckkZk{=h2?L#-}3hx!;!`QrsBbE%}s1@3Gb1tA{49vhb>Q zJ}rKrEcuf9?iZd42mCpbWA&DcE}3NUddlw$t*?^m+XI$t<|;9(6x(uNc}JSjn}4ZH z*-9n6%kHw7Bt*$6?_1@0JJssWI`=<@?@A+?e{7MCJ->Y8DbCQ(=eTS>u-({l=wEff z)6BzKNz9CO<*cXHj`h+CzL=dW#j%`WJg zepcan1vjs}zml@%&c4zQ&ttC_n}5wd{KA>zm#br=aJiSD1ebwur>|lr&-vmwtAk={ zJB3-84%XbbtedbTO25f{Lz$iB;u{Q#51(n=`!!!ell8b;EDQI|W}LC8x#RzmE&c_^&u#f#Egp1 z(mCcISS;%5=FdC%`_JC97n3KYRy{eg)b{PVR-?K-`7bg}q*;wPy^20L+gLj*y-$e$ zQ7f{2k-+3&oo{Nr%#7>;zmG0in$p+0;$dHZj{l*q_18JmrxmVi<%r{y7Mq{UB-O{3 zc=C4X?e}l%c5V;k$l7DKeeRrF2|~SZOZ08ui@tj*VZT|*U`}n;&V(Zdx%;{JF5Yu6 z^xc@lZ5sS5^>dHdomC6BvVXkX^Hrgk!S&$WmA!!n^v-FOaUQsCym-y2uX`B;xNSvF zFFO4B^~*i;7#q~TX}Ngc<nZSlDdAqW8k*Vny?>o_}bwdqtIO=mM)i!(FCI zTWX6x2=16x!ncQw>!-r=psNz^`H!0#20AWPvb$uaAup?{;oREDI7j40Zo!|{RUbcI zmRoa4LQzodmJg%Jg54f&s{=VEs)~j%b91+N-3n1$l&l~0Yx&|gi)Sr#VJ{T8X0{@^ zZAnGX)F$DU#cOyn{*(){9GFlxIU)L_R)BeLpyr#YrWgN6Y+tryVldn3VI!$C<&&fuZw@lR$D1TZhZi6}66z?KfmOJTAn0%vyJE zcPDSd>jN>_VY!+wL>r&SJ6sdb5+i8z`SXJZPtJI0P43oP)um#;c!JmR%8twx^K!RbHkj+LNa689p^ji125Vv z-NsV4F#p`8(09UT9`Eb1J-*8S>nXe6;ntJQlS@ki?Dg*~PJZPsKI3L4yXmFXm+cCd zXxwXHn8#l4dv!I}wF9#bRHyfc|LYHTum1Y$*uOLLmJ(wnM@|GKvNWOy;Paes4dSnAilmrr1Uhljqyv!i_O98rx`+5w)2f(2T8yUN?2 zIdMPuB;#-`u_|%*-Co(#{_7G>o4944l_06N|igWgD3RraBm^rM|*!|fK*PEp; z{2Gq++D5Ku4*J!9!|@i^obR3c&dmS&nB&IdH@~WFqAo45{;M9nY}E~$9MhnqRX5TN zum9M}ww8bEp@s2tJ;hrU3wKRa`N7hAD6sy9z7N|Dkr{Ey@%{TAopTZVd%F6?!X;M! za*~Alez5ombX=OWE#Kz-m(XLjQ9cfP!a5v`_?XT`GrnH5eR1mka`kM5$82+QUzZ>G z?GkA>YuVhEXN}sg+wC|b`hAqRqX zw&XVE9*DZ=r)K*4%#!yBDwTtrI#tqH0MG|Ib_^<}+Jk zjzX}RvPH4YqHiT{_Ffd5@ci8B!+%d?i!-dU`fe&6ExAyj7;$K#HCd4^k}tNyf0 z1}FL!n&*~&`}2B@;G2Zm{5E1ae)CcjpGID&uCtvA+IVy&j+LEj>WW zLPEcWH0i$bH{O#!UCCZ!tyH2}Mw!7YA!BCI{4Hu4p6`5YW;1<0*AV3CH+gc(YX|42 zEXO<;l_$P$TJQR2ncaFPtC{Lns}>k^wk3+(m7Th1p$_-q_9bppUpj8>*1!CLsgyld z#7*q+N2M8SD)Jjlr&cPu9$2Bkcld9H(LU9gqFlRJU1V~59?axb{$aqS8}NQd;kt5_ zSF8uynC>=ZU3g*smH(M(%A~anb$|1p>k9KIy-4Iben8PuFn7(d>J|ASCrY+Eo_+o| zU}-#q^ZEbA+Ot)R|7{bzcE~tGXM%p^$_n8|R$Hxzf*t`RH`%9m zg;d_}bC%lz5{{KkD_vjt*O57W{}VBjIm_g-{$Dp=_pLs={@3|`O?xXoCavXIfAatB z?}2-_Y+TLjpXPg8Yt`$ud$+&eU+uE!lwB5Mo#rvOt~VCeHo>CX*!Ery=wvt8FmK!G zl+USmQ`;BImZz@$QNQ8;^Z$SIkId(v_@|zK&8CRZCd+%P4h5Djn5#A6YDCD(lms{H zy7o?&g^$X}G8*O^m`1i}D zb!GN>>(~EV{>}csdEKeHxAXrb@3xM8vuRJHWB=*|hZR9r#hMPhuKxGn^!jVR_Zf#w zbCkS3`Jmn99~;xA9r(5_KjvY9VP{K{w15T|+Z~qb`ym%o7Tr+H3oqaP+Wq3T8^@kc z`}>SXxWRbq9La;3bLL;Tl3?xC^=;Exg&m1oqtskQ8A{_F4!slKB7g9W+>Yy0BC=c7Kg_oKT&H)#TaaDgOql77 z2_K%ew5>SSe5gMnKWW8P-dWzI%xg~gNuPhr{C)24eXqa1P5%{iclsATt{Z~g(-zK% zh)vWzZT=?y_qG2=_WhkJf9w6epK>|tjPK35VV=cl_7-lH2i|^MC)&?uBppepYG3hd#I_zX;sP2 zz2I|#(ut*$-z>7bJ~2*2VgV!HnaqNux;*)ll1%Yok7qNnsZA9Y?lP*%J9ups&z0Gp zCwJUdbDYT%{I2m3+u6S<%|`t#i#cQzmP#LMZ!FlSvgy+2xV8sXZz0VDgQ60{UMFTYQhr{VN>oe4Nx$fSL z{I{>p?H2#|CTp=&jdL~Qm5%kFDqZduh4h$v&SYU{R@uo=q97#azd&0tcjvPeVm^l> ze-_WqQ(iIm8+-IQ^`87LhB`^kh4&|4&T2llysKE6&&clfjchCFsti>>)hx~Ho3(!$ zsg=w@6%5W@72x~^Y7a0vdC*g zn?M0$#i30G9yd7tPW{`R;aqg!WOc>yY;LZrjE`Jf=X6$CyES#MT3F&6k;>=wd8+D% zD;|4!0=oY`y}5r~LhSG6z27#9Wu4vOqO^G4w~h5B>nzyT?|yLqp55Os@tam>umAIZ z#^06pzl&eb*H7xXKYRVXR}3EC&tf0+3m}hrCj-8^ULkb$&Axq?qmwDH4?mH zE4aYfZ8O`->`i;-rSI>%|8K7K@7MpY|G#jr_Uk>re(~RrtnV+CQ2h0M>2v|lXS?dw z`bgGX=eVbDaeU*lsr%mKytr(yTwuZ!_N{|uw&;qeyqOtq-+o;kzOin*w!ntl3yoO! zFH7;U(zjM)W@k?QDpjT}bmniD_q|B#n&bce|Nq0j&3@13*DsUUzgz$IPx8sOT^C+# z*KYe^+tS^?*{chGAM#s1^LhHY;;W{!ZQd1f$RCTlV3_`h_rTXZnRA;wGE1f3ec$-& zLs_Ntcjb*|Bck8EG~53?>g8unA(!`iMDB&otm$##_+mQO}w!;f#JtqQc z>FX4=1MSLR>J8X7o-ZzjTfDGAV;V zu2{ySoIAeB#A}xM^n6aq5q`GMjpxN;jbxtm0KteYH@7BKB>1jdv*E4Rw~nX$IXzeX zrnB7JooN%BK5_B!8E)T7kN2NBTrSwLNnqAKfj{drPsdtpxaDH4a%(5Eius-PfA?p7 zSm$sk|DXB)io4wLg@0b(-1cCj%UiE)r*5=GatbV7;*q$#ySBsj{Vy5DH|=cw6LxZc z?}$p05`HHhk$%hc$6I&jJL+1tlW$n`S?fvLSw|(ATwTEA^Rf2X+VK3k@AGfnmY2C1 zwtwC25|hpn{)2&!f6H*53p1!#eT!?SN^8jEH!4#5>Vr6es<7GyKzO`=fz>n(rb6} zTvMKr{o{^Pqv~cw4)cIQR{z)U-4k{#ahCi1M(|JC1J93|AsHb*ZyuENYi%$z6*%S8 zWg{E7n8QD^1nto2 zsgt*jv^~gi>D%M)6GaZr{K0>&q{*je$NWuA@+VJhVH9$?c_c!ioXPo(&#EnpCrOLE zTJ-#~F6)OI=CAlfIwShiH;CEDr+#4XfU+DGiT~$6)SM+yPg*9%Ozjf{7PaLl_ zI^X$hnr;_RaJgDcdTN^Tv;+5^E1B%+|82JU$)EJoyuV*+wWxMi{e0XbU}DTx#I`^! z+W(5z#E>}Vj*GK%kNymL(e*onLo~NRgel$fp24&=vu~yexm^Dll5ir{Z}z3D@mg6r zUp<9VIGszJ7UVBj`RJ$jjCBS40xDNl-;Q`6c|E+sKjt?_TFKm~cV?6Bvt+6XD?7|m z*%T@;J4ICE){F>N->pTVHQV;SKJD>k%lS~oE2UowpK+fLU!Jh!_KWlTzD|Dev;Oa? ze^2KBjNH9<@5a+Vg>3&Xoc{3ojPJ+Vl?@E0RkQhpEqQ1lRHwY6wR@t{?kR^kgIG=f zZ@S67rf%)~@2{S2y?fX8MtJ<*t?|E(?$3RH@BZ48|C8?jdt|*KmW$`{9ywm+Ggb`^ zJH$FlD@6rr->{_oW~&L-_INGwSLy5CKPM!#*<)9K`*d#K*R|*0OkN*rd~x%Z$+u>1 zJvDD-R?f0lv5AWq#X5rb?%($Bn0H8%`i=P)rp;%ZSO4>A^zZZapXWzj%sBUhrD;mr z6TT_0C;dA;Wec}TulI$xi!Lm;nl71FdrG@2Z!+WQzTjdI)|B0_UvPmw&x_l~%*D3~ zuJB#7c~gAnRbxy2tiR6ZcPvwGxqG*?<7w!v3vRj%S3)$+LXPO3OZamB`mA(4?KU4F zS8simt$~*NC0N9#wrpy;SvgPo*!{d#wFjq{b{bXPx~Qg9=D(1CnHZC#-~t`_Hyf%m z>mPjo8~yFu-Ra-{{o5Zgd6Pclu_@D7oa?tG?0oQ()!D}|kn!lA;yv^JODLOHS8izBY^6cVnB#{6ZNsKjj-;Nwd>x4_o!Ds(v-$O;UF*8eN&{Y8G;tHR-1zLy~cE=trI?M7lw6Omn(?JzYmJfnl zZ!Xy}704R~_r!$NTolyTeik^9w@1$>z3HCl!I_iH&wr2Jv0VP~tmyyqY|q6X{O?fnk8@Jz8hk{R?nDq@UzIG&SHahhB+OKT`$98?e8y9 zU-o^n{QRQYqkKnSXJkc}v~m8ibacLHCfyS=L;c9B)_q&26)u|}@BjEK4};Cd>A#*k zxTb$Pz;gV!ov7;X#wepiQ#F;T^Um}-9K6WAeaV83L^rl*SL1h*6WpH`-m+-vtc&bg z!YrYo#;~yMW0s~Ab9$h$VDQ(TMi-S&JL-g;5ByCC@tL+J;W)=e7WM_p;!m&m@MyE! zp{0dItzWDf|C)PA3uX%ha zV5^>u*<8ky`xef|y&{L+g&e3?w9+$cGEwrm(Yo|nLlj%p#z4+*`@QQIKD!=0k5je8 zil3RqQH)8o&v&mc|1-hNlj-lczDX{t-w6S#w|Cpxg9sl`7GynXWJREAg=fI zEe`2t5vw&>ZeB=V*bwEzuzx@E`-$H}y_l>Rf2^JVQtkKU^ZPQdhlhWA^mOgtPW!*^ zZ@(SQz43W_zWo}<8fVohZ>IeCG3NzCTaet!D-kP~?JH(&oqN74V?M`ff)Jm?wQb)a2T1)b{J``ukEJjByxVyf6cjsb4$fn?X+IzIk>Q(IQWnFC zJ>m7s`oBj!Js31UiJ9wg+xRZcY3`429z1>Tla69x`ay+r2ddVJXikY|zSqsN zk!3-^%kZPeHuOJ|-LmuN=9(wzyk$YR4p?0dw~b<&wk%V>hCl4{>i6pzW`tGm-NXEJ zug#@%a~`ViG*et8(e+crY)#7YWAiK{wmFH2IVIiSxM8v3l-M;3{Z83D$~=;-yiFt1 z|0bW{d0qz3iDDDtqdAO=U36u5-{&gdll^~od9?#iPdccR)kEEfN1b+YI9+?*>*pFiJx>yB!epopB^naAsP6-q{H1~a&Pup>6^=M?d-cd>D!#@ zG_#(+GhfEe$*W2cICJXWo-m!qk?%LkI@N4EWLb1xai!FnhPM?9R@g-@Jskew{JpUM z;b&IeGv25udiBa9!zS(vSCYMqw-qS=!cZtBckSiJG(#MuvOH_f>ob4rclLG5wV_wE8}Ub~oB z4d)uIWVBEbJS3rgBQRGtWsb{%kkFrz75Ag`{|j%qUa^h$s?L{|~_{+>8b11KZ{q6wZ-#3|pR9|Ldmz&97%?{n@``qrIf< zfBnUe{ybZ~+f+{Uh1P6tfeqi!n!d0sWnh_gX`zGg^~}umP9g@{sc90bs%d9sq736+ zep&M2DwoTd&pGe!?cE&zx4-`EJNr4;p6tIZe*a&t+W$@OH>D?Rdhq)6hDf;uZb#3q ze|#X_v2Dh~7#_FY1}@eMw#|Y0ty*{FH>%&3Su4EzWybsawl{7*f4s_y2SLbr5PVZb&cjj7} z(xsU#Q_q>LV?HolU}4Pldb^u59&Maa!y5IWC;d?U^TyXEGjH8?5kFSCx!$5N?#*Wg zTdhg8`Vu_1Yz_$g$Pr&$lX<`5ukP-hKX=tWuil@S{6v$vZhg`8=A{mKtlEc|G#;M( zEH=yT_O=Xx`Lf$WIGf`?8=fow8rH}9)`x-9VwrF4l`V<7zqUs%4ZU-j#q9)NluWYX9(Wzt8>h8{UPrs@hbRTsz~{YeeX{f);$QG zpOioSZm3Ah1*6j5tr{%XxN9wL&%dzm!S$l#mE0<2UhNMV8V-J(buqkN^voJL9abjR zD=H_9b7q7r*cKRkwUT+&_Z!dabo*`O-QDbsg&s!iFTOETU_n^7$CkZGDQVrc*Dw8# z4!gJ9;4wop@7k$Z^(EDzhFXTVENjk2#Ju|4ywV~usrAduf16X+1X!I5&eCR8Fxfmo z@qSDCq>o=x_L%j)Si|UX^j_EAGQZ!9d$~JI#I{Xqv{ZK}@VVP0t8zJ=^}NzIm4Lfz zpX@WTJ>0Xo?9OH(+a(t=>@T~Y>p6Z<;96s|!^;j??&Jd>PWOCVqCUmvQk_X=UamX0 z{r-8!UQ04mB(0y+RL#4Su{TX3{k`NI{bgF!=4V6RE%~Bgkux_zNqF~)Ss_;U7i|0X zB0ul#nXV#dA!*iifuh%5$mT0%cuBNpGA=#;BawUk?ZC`ueXsVqt*^bwvMpHY7Kh&w zk(^~(T^EvB%=@QJ(FnUCSdw+MrEc=I>Wkb4X$P277rAGi}LbDpxPw zjqONzSoc82yJy|32|IMAGsJfN%DZc*ZacFxie=xd`1l=a`|{+T*h+~!+nty*^C07I z=`HSdrD5Top8V`0`ax!!!>4dYe`3;}FI~S)Va3(WF(I;oth)_fPW)8zT<&u6pB1mp zdnpRXg-q$K}*n&JG2@_7= zMdjPh&oN%}{bl++lTuZsf@Z%HH(qnEZxuE9|K@3ritmE}>yMvrUOxG}p;l$%)+}ch z|8Hk~E(cU$eE332WJU$C_ruU`4iqf3OQB@bL z*d=|S{fJ!gpA~`~PNLgXetUe|`yfuEX=&gz3GWjMF?;{?a(eH%K6UA@>cG{l=Q{eT z<>z|ry`;B_we_(c=Z(bOo7Y<&X)07}56~07(zJ2Sd-;7^_`m00lRDJ7YkopQ@5I=< zK{5Ra9#3wvCaX9*+T6P?d__3-x8ACAj$h*^>{xVY_rHHm_SdKCy!Uya;}EmHCizIZ ziijZBOP+?Kle6z$Z3=gj5%K?guI3t7-e9@_Tjq(p|O@-!_=vtYWNAKPJm=XT<2U zWxc3Kp^xjcn;UPJM$Zpl@J4NqU%vc?Who93`_(TToLIN#n_RqlL~?HOV)b|W+t`17 z-Ldz~p{5)D)9+M&oVRg(+0N@$jEp~Ww4aYT}b(BUtu9>opNl#m2`|2;RMIS6kJ$>=RXV=`Uf45sdURX3^hcrXkrYpBx z{)gmn$X;>}{-fWroLR=C;ohzM)MuM*9^`r}-)OfuYY```Wo@~f^blbE0ZA?aigT(#{mB2j3 zPs{hIF1(n=k)#&Dyg17(`BJE5NKp9C+BJ@z&0&WwrcF})l^HCsR-vop`ioR+Ah|Dl*@?!JnIS=*G=S z7ks>4F8uQ9{jzI)9y20W@;pDA6(!#%=b^vyBHPx7j+4cXp4U-6@8cHYxr$-7_vz;= zUG8k_%=lBwafrcY#*7a+EUk~+XCC1S??_pYJ1PBLnU&H*D+Ze#>Bbwk$K2n;KbP}W z`j%_v_rN(s)`a^X+sT+fF)RWmjv%CT(lc=f;U z{2uA|7jrsJn%@34^YF{p_ornW@EOnWvOJ}EK)R#*WF?CW6{|#{_ zPP5B#)v51AIz1B4e-OC#hIxwDgWpFMci($D>0kSls3+zO6P9-P%Zi0;-=15NkvZW) zxZ;G3Iv#T$*<~tE`Es-;@vS;y)({j%P&M;?cKlm*ny8P7pj(o1$tUeFc$4dOwn0e&I zS+{NSIkMj~Zk#iobUeu2Cv>A;!4mg>GD5K{e(6Wreoqf?maC81|7voO++}t#BMz5s zKRt?7_qp76DoZ`sxHa(2Lpwd6Ige-ltd5UOcJc*S2bSp-zJY)83zrfpbMC9sonVsTn%pzl|HN3AJ7{%VbzlVhZZEeE3}0AX>C~4<^9Z=?dzeN zqCPS@+UKUOI+;6pPpA=Nlw@e{A(w^5p1KRzqPp&^Wn31#_g0Hm4U6)E)--Nc;R_2G zdTSf&&UgRH;BIEK(ssC@oY6FW+nfE{4?V9)o8b6i3C~3LVD08fyI0wzT%3BAjaTZt zZ1ye*mrDV$QxE=sVO1f&SZiHY?Cm?r{tTM#&t@J;VM#c%=0!rhdwxo2D(C#gr z-DTaPTr6+Q7~-JaV#^)I6C+~6Jwwo8!Cq|vwNh1&{MUCvV>>JU?Aw3VcSDZSf{(8! zG(^Tte`x9Ypv{b(L1xW?kLe6r4{IJycIjrRP7IlP)J-5Fe4+qL1;aIu=ySVX3I@2T zc83H9=l{%zm2Bj>CD5bkc=FV~r^W`SpUIqlHQ{~8@+P+f9%hqna>UJevNR*bKsMrS z^8Umof9VIhQ=jI_9W-_|OYG;k<=Jv3Vy@Pz3ql#eN%%ZuC7 z(e;0}x%?ug{5fuyZe9{SS^xU+Yt0Jt6=z=5uiKE$BD?r)_xI~2jw)v!Y^v1LE!yZe z?Z)ftEAsYM?^gT&|K$DX$^YG}YhvD5$Jb0>a6`4ctI6-ibFSM`^KGS%HNV@*{z9B9 zTI-3q7UMbBu8UdbQA#uU_Fv=JaMaF*=l1izhk|?m*Tn4z|1TX~C8NT*_4B%uiht^5 zi>Fu?dde)ny?as$!_mC+i#_D_Zf%tiIG?a;nt0gGt>RDHcky=V2<`abE4nr;A@u7X zS(b|_tuqjGt|_Sg+^|>JU5qK=MXZna z+eTaAd8ZkQH`z8EUqAU_(icJ5wei0eE-Ev+H7$x|g4c4E=caWFg;-QB`|e}a?OOFi zOj<#uUg2hj-k)vJpAQ*-7Z$GgHc8x&(WJJWhik)uin?NzCoS2}S3Js4o_JuX+x}zw z&u4Dloz&vt#L8iC?L~@f+MUIl@9lhdJ!J9ygX>tP{+alj`5U8^V*0Vw|6aQ@nDG8$ zh!AFa-CNhasEXm=pEEI!H!Cxg+1I((Z~w?Y_wDS&*Zs-0O6#tq+dn!}(tE??Rz{QC z!*)g!h7PNTl1Kl>tY4`A$G1zwU8ZhZj-z%)Jx^N0)GhxbMY3-RGx;sQ<1Mhl#OSHs zowVIwG$qB^SG0UR7V#o!aYUmSi-CE?HjYOs&CL&txq`fZ*mwBE7sh|cW|Vo%bN#s{ zga12FNwjnNq-ZtGP)_s7mC3CtE1O)7=Ss_X_i(mxAN(!irmw}U*tSi15tobL-+8}F ztfW#!MGvf)bmTvy%@^+v2lS4xE&Q^6#+I)WQ#51)HeKz=VE1mg`ivurdvdVmN%gyZ zjN-@VDFj~qVW(=aMoImZ{+F4ZoU30X%Was+Fy$E6!tW(*1@Eig8ea0tj`S>k^~Sol zX42ol(`jcsnJ-Md8Wy-i;t4~iTc~F;qw$7-r%E}iTm)E|Cfp71QscUus`5%({pf* zWXtjiNs`rOx8%#Ozy5b@#lo7fWvA{Xuq;VfaCME%vSn`RmxTKSPBNBQ|8lq*%<|FT zTtHY+?RlG7zrIOj9$tI4=p;uOQ%16B)*4U zzIEOWwi#a>_MO%!ZIWNG-0A2Y;Y->Ls+SlJwmp)oFv-k3uuJPeoWZ0#_b#hQ=?JMn zW7o{9_sTZznp^wprT?w7Q9r*w`7i$O%K7#W@n8PzuVmj^&sMrfvVU)5b?}Cs2a^x9 z{pu-Q-#ho_-eP{KgXhj|edjYltJ$;L<=4^E&TksOzu&hh{`b}R?Z5f6Kh;~Uo%;X2 z+JYsLpWA+Of4;!`_^w1t8P~qBxa~JMmoZ45oX_kUdoo(_g}D93%_%QEem5`$w}vFl zPz`vs{O{Jc*Sqf4)f+ynJ6)r6K6_Q_vD6dPB=0r_#oq!-{%w0TT7VuihOx{;i2T?!watl+~nHq5~JTR<)mAP zY~tyO5_*p6eJQ3azn_>(HSnm-pLgKL)+2VDi+N8O{klIfrQv3SMOujD)#K;Wr&qUL zy%q6Yd!F~^9Oq9e>tE`;-CWdZHlf&UlD*S*pF84vS*mB-xr$z!U_C8~ z1)|!!XEhzNZDHW3eFYWTOZVNseaPkP{pv@zHW)m)rDDgZP-o^Q5O>riV!Ptony9xD zrL5B~A4^lZc&@85+{bWsgqXy`Gg>CetT!I)<^9`|$Fwwo0$0$d#R6?*F@!|7LxD{o-@}oy9q)T^+j9<>r?@ z+P2rocVX9!^#`|~PiGX1yHR1F`tW1S<29TaCUcCBZJFg|G()-iR;uW)6MITG=-x2; z@~G9YWQ*~_P_{&c1J^HQ3ST#!^~y3S@_xCHjO*-&GRc<8YT0+n=QIdx%=@vRdfjRE zd9F-8AKwYT@@8bR-#_mXXpkvOpH;L&Wh(I|`j(@UKjr$Z#Bo`X3IC}B%WDhOPpFi!6a$R+7G%_|2j5rYY zq(5Y@@YT00%4|$=7TUItx34(0YWmZiS-N?yE{`5bmeBbA4JflPe@0MII&zUQ>PtsiL+$b!4GI#sq zjkmsDy(lLq_vT@s?Psq~$2HUpWUA_p2^ie&;Ob0ToA!k#A)U>8$qqxu?L5&_rzFX1 zdi=@o%dhD_zrCl+>|R=W!J!o{UpXvx{HmQDkhotXFmwk`y>;p*d$T63YhGnj-<7_r zY-F|lF7_|^&>62Q5)<1SxEF6{*=8uQAy0Wjpy+;;TYal`eKTOL4z(%M_ffcz5Hw+5 zmUO#p`m;IT+x~}`-iouorgiTBueE;#8^1iZ>Hm7CLGjf>k%Y^S$^$3*hq*5=+976s zQ*o-}@n6rc9Me#G95?+&z@>+pEFKdTE`!#m$wU)K6^|`lc+vm00R!^MqPOWceEMsHD>?VdC-!;#_ws`!f{Kv&<-*nfV5ME#q zvO;F}zJ}(ggBBlHHWt-)y}igP@$+}gxKn%$%Qnj zB?({9{}Q7*IpN6#c8z7zSPV3-y+2<)=fB6UycrC!w-aVA{M1$Ey(Lg&uI{?Y`8$5d)J5@t^7FSoLcO>yw4T)IIV)^8y1x?xVIJP95WP)DPRBc@T#bNKP*2O zr)cJK@e673-j@A%v2aF=_Oiew394@-4=*^X)#%4k8wOBbR~l$q7nF-aX=*6}*vVG6U|&);wEr0Hi|RFnulqBWsb zHF*_>%Z;fCTrVU|vnH!(oU2!U^5V{HsgpM^#~qya(dLR<8bg25^BKoJ&B?Rd3Yx4- zTFy( z`&xPN3a^4N-sxYQ1AR~4^JlT;+#@mRy`kfQ{hPY0k0m#46t7s&61Q_tz^h4rcde*W zmq_3d=rRm^$0M?AV!dR9+{u&)(&sPw`tbbhsY;x1FlE__<>nJU%*xtWQT@fPD=5?T z+`Rrx+gW7YxEbabvkBkv=h|f6xm|Oi>BZcip=ymU=Es}aA1~KU{$Dcfw930Qkxf^m z(-edc>b6dFnQyxF*^hsgiU%Uj?fkyzyXk82qA!ac&DV9;;5zc^YTKhfJC6VGoxk3O z_d(8=`?napIeao=6z1(0+#~GFb|B(5L!zy4-n!!D7otPH?U=0kL0zCFxn7}X`Tg(f zWd$Uvu4dj0*snYxG<0U?B9`Sl{(oqzSr{uWo?J;nUn z)7jg0dyPK>ouAAQ9bVo`gB&3s> zr{nP^_e}{o%pI?!&->+gzMJiLSJ?Th#I*FaapC!lH(aw_v#sAf=k6>>$xAtXB;}KH z;$f|($6+%bl&oF-{35$n`uyZS^N;Madbu;O7$C^FPFCZ#1Ah%yA4#Ts|+;#4?1vvkIe z%f5})62ZY-|DS2>a@x>V`)}>pm+ce0FY5bkuxD!RP3!)R-=X3Zt8oTMhp z-&VVQ_qvL_=&ZYOxYa+<_|f@khZ-c^IhH)?c;@rQlC^!CO6~63FBtqe?#8hD zvf@Hs*YgM?Jw2aSm(ND*R$^t{Z>gRypJKl9__KYR|nmsylH zF&?VcU-M@B*~n(+&69rli?8Wlf7(gl>;*M3p2c>?eYe>^yD!kX_r9UnuP{sGp4zQ% zr*?$08lC=HQ)jytT>R*Vzv^$6>HMWQrRKLys#UWCOOwgR`(5934W-hyO*+Sa!g>;i zlmq{eOWO1KchXuc*hF{oTVAW^j#Ve!R~C7fA(&KME^d z)=qe5>D*{8!O^TI$9b{JcCxkT`jQ)bug=N`&b88Rx;Jlwb3y#nH(Pj~X!i=qm}P`H z)I@qtRI0eJa^jYq8?!^!@|sL(s#qtN6Y1+-kRy_%^D{$Bc7sr5BiGd;xBQ1P$yQ$+ zpTC~7(Wn0X>&KI&eT-*F-k3J;9P5J#MxYQ`V@S4}IXEn?A#un|Lx+ME-rT?+& zBP`4@`&Yc@co4uCB)aI`I-ZbcGxu)vI1%*K{4w{Q@P#L&)}{A}^}N`;*6WG;vVFcY zq*%qh)&46hPMN&jE`savg^pc4_b=c1`D4whC+t^G99nQ{R*9s}imIhKvJw5I-yQ@Q zZ{IDXKG*!PhJHw@sKJ{@H_hwa-Y_4(HI3&*sNv)ciFd)B+{_;j{e1Z9`#a^nKCjn& z4B_W52K~BwZuNVfnpYL~V*FWD))-9rxY?se@AXWJg`vwPPE8ik?AiX{&gWLo*HStQ zpG!Czs4;f@iehL0MIH}^-);&PaB@!gSzb+7-tJ@$R(3QyggrG19I z{i#>&SM~os`}>#aBBtw-Dcf&ee>hQ=J$%I_gT&i@W(Bu?ET8|^<;$P_6@}UM-;e+A zxVvxH#?wo0&tAXh`Tk=5Lv5>6l^@QIi03+C8dPSyaP7~6!bR$@c1FawPv-M{b9ttZ zRD*r%!Kd%odKS0uw*Jk&|KIDf?}=;w*w1jg z-sM(*t2$3|)dj9Sxa_%Mzuos!DXUz&qrH2lI(=`by^*v!xxt7; z-C5fg-biLhd-$Den%xa&mJpthod3o?pLd04|6t#E@yX`fE7WG)sJ+YJAftPMyuUe}ru8Gzo2HNKm=L zYWuNP?0^Kn)i$++SWlO)cV%w5#rT*yOu+iGU!>V@L#d|3=8f8A- z0v6pGnhm#;_6p3m%BXqBw~VPyW!)v&9R_x*S>}G*_}{yUg~4!fkX%Tm>J$^}dztr|B8&asU;aJuqQc^n!x&f={JpvVxRuzp*De87!UyJXn@>OKZh9{<_Hf*W z4_9C4-w1n>;4%4HYiyf7_v7VX&13HGxmT{Lk$L5O((D&o?ll`v5ld&=mAhPD|4N$& zTXSH^p8Md>N1Ob;*akJmUPQhrON$77d?uyVj9 zojLu_=Be}A9xV@f_)xc;?c2l?89G9l*-N?~g?e5#_x4&+Wvp5w@%^~nilRrQ(u~ZZ z_owbLw)9nN6}mR>KzF@dLFl)6q8xIm@=IT=toSkQ?4~t2WsBa~M)EA!=akG;Qp_T= z>IHv7@`~+~oK8&RF$k1m4*Jq#x~)7R=RE6c`S*_LYtQ>SG*0D9zS?`fiB)agjbnvh zb_qTYu{@e5Rq#bl*ub9^HiyvBjukQWs>hgEHdVTGx2a|Xvwi(x zr#U5M){pvxe+7{{_^0MgT70ftwp!%Xi5K^eGcT?cd^$@Zq;Joe*SBV7JY5x`Jndtt z?Ior+$v#0UCa$4kjnO+m#x)&E_0bJ6^r(fc&jX7cO&2PY8&(xqPosv_{oc=7{?@ z69hQ7+}%?1^Sew-#)6&O>}vEhuCFR7J}>^`-3#mTLYBL%O!MdL1OljwNW>A87itM_vIYeRQT~|=7)nydm=y2c5m8KJ}oz0 z=*VM@Q;P&!S2cv~xv9b!eQWWJdvPu6P>RsVmZ0Qdft=6H|85I$}S z+FxV3gr0BiyvaPRn>i+r{rv1~8)MBlqqa$AZtsK*KOdT>VYf)Y*0Yb@QB(N%r^;x3I>Up` zy}N$-uI=3yTB-K)M@M;fh@kR=*cC?iL^2FAyPhoWjdA4ouH*I5iE)1Hg~nCC4s%W7 z^w=8cx!XXXROP&$qv0G54whU4?ZPz?Q>|JaWU$;-w7UAKXrgmT(*8*-s_RX8_!xRR zr%pb4%5398RvzBw0v4I6OI>;xds~`5%r3gXRk1Mdj^qu|AZbAnr3peS1g9UJ=Nrdh zzdX&UalQVUrjs-Kws9>y%%S9VXr+7d&CO@-zb;kz%INW+*-^iFv-5%dIa<$Icz;dl zi?z4^HUDftV*;y z&yo|;i#dPx)HB;08+~Do>!0klo6l{CW$WjdwP^k({-~lo=cgqGZgCg&@Oj+($R|)R zz9G=jfQRwCuJqE|U%wiDJJ8Oru6?sCXy@XY(@b6Oi-)aqeVx8&o@2?$+TP!ZrkXcR zYSyuEGwk~E;(Y#e&d9xQRN5YzG`hAxqqAe zF17#W+8hS!MW^ZC-^0Fl&cQiTCtdls&cXj@p;7R(JI`Zt4XVs)4O*|{si^+Cu~jzR zMuJh!W?la0S6>a^{JLEpf7AYF`~M17#&>Vu{kv!P{~H&F$=RNDW->0Oq4fryDg4i7 ze4LfK{)+HA=?fayeUkKf*0J6anXIrdRbXxUX$8}3e^Z#(h}>XpyP4DAu6 zGLq|99!+6sntC>nj?QlbkcY3sgr~DM@bH^eRg7 z`Io1R`#K&SQgb-NaAitB@7;C=m2W(^ULEjqNYV%pnH*Q9-SB-j+qAQ-3X9Htj#A#g zv(vPy#^&*!6?a!f{Q8*TJ7rhB%JbK;*Ya<~|J^yi_v^pc|3B*AYCnFNq2qE{6JxW! z-r-}*azA{RzNMWYI7edj%+k=Cs(mLuo|<^1&Hj~{TSe5oY6gLh+MZnI5BzK1{I32f zIbZyiv7bV~qSMvlj}0E}I+v|+^F^eOXEGwBO`1y zbdG6kdvjxcwb9ZTcC{|6sr!6-R$k~}idYko-_s#?IsH;d_fFAUCi4CUM%xzjR4X&= zNH)w!yCbo-{hpA^fsLD5r*Bi;8n@?%3!|?=Q292C2{#pNxGp&@eHLQ=BJoPaqLqpQ z&*Of-{rNQ{?mWYR;Of?kRW1v}%St<)?N;%u$k_68VtdRZwKs~c75(zL-uu=zox67| zLb!KIX03$t+3@!6w1$PR8m&JhDQli$@eYku<)7x*^vTTpfw}o^4zYW&_a;7F@}x85 zmF=oEj+I4Rmzj3m_SiF1)olusdP8^WQQOJOPc6yjh!&l1yt?{}gu*e!P3;y*Aq>(S z`(&o=SQK{1P-O0GjY^jZhZj!x)}`*O*1)?#WtBke$-YT@I=A2L)cGtH6ytMnt96&M z%rf@NaW6k4C|!vB>KeqMp?yYoe&%_F8$O|Y4RR%IEHblhaCv>;UVq=Lc2Spg=-X3S zi|fBSotnAKOeF5KNTapJ1k-udTUKqDs;IFjbnmm}9=|R+E%35?@$;&H7~e*xUG7XG zw_A1!i2Sg4c>R}lXQYpL%c_MA^B6xgOgjIS<7$?w#?@m<29ZWw`a#PbJ?pr(8_v}J zSsN&$JwG-1!UM+ZSED$dpRk-=_vFt!Gbw@820foci@x7F7NxNN;(P6k^iAU5`<*eu$+_}=^(8}$C%S?n2o?Q_iGdm_^$X{|MQskf1ZNY109-+ zo?ob5mwrCI=da}vZAQ7I9|JD1& zI47Hese z3;b9#%Rcm#>;<<++io0w?9{+kB`{HEc0|^PiLRU_;amBVGpgswpIc$S=D~&3lcfhY z?|b~-n)~75SNYfG&)h8=Z?*K-ExGgMoHvqlO|0j=jY!Gw^y_w6lXGri%aLz8mrs~- zmThV6rN4_s3ye#TU7x&WwNN4JB(3e|SG5sDK=Joq;9lLgQu6#kCc*ZJ;gIyVxFLRFOrWlrPxMQ-;>RQrW z<8|DR-+zC0`n&eAUQfo{osIuJ4IN&{xm3$W+j6~a;tEhcIeqU!-rk6$a}pxyjt{ck z|Gb(Ud}(6CRzaO*JMx-5zxc^z}hB@hiBxx z?Bw}F!W`6B1&cVn%Hch5C!a;&o_3UqUTBNa>`a%b>omV{S4S_+>rP)H7r@pk5)>T2 zh27ZDZdLCoCZ^g@_cKLywTYrSMa&CsxgN4NYZ2IcYun;kTV97MWGHIgUFgwUdvoUL zZ$3uHd%pN7bU5-jPM!C8$=2r)XII^RwLePj$K<2T7eBl3TPKVZe3aSr}_x(|Nmc` z{;U_=J2k%Ut6j+dvmq1B?xf#;V}9$&pYp{SA$OKVt^4vbwPAbTX2Ss2^?O=%yO$r@ zIJu5{ef)louxoeQ`M=HoyZnE_+F$je>Cf5iD}-&&Mz6A8*C_JcLrsf0R4eZq;Nw{BmrS;onI6 z=6|=0IYqNG{?2*XRCl{nwp{q!B4Zba`gGUm1&M$DvHnw9u`^}4MB{X&#DkX2uWb4^ z=7~4A9Z`L|b)kND*%pDGDS5|laf87`kx5J z>%Hw`PVP^rZutXu(6=2Ykx?pX}+KCqyP~=h}bguFqL3QTqGn{*SA(Rp0LK&8iHri@YNARIYxt z+C}w0yLpe#Iuzk>{OW9(_;0SWP6%WOsW}M*ZTr0_d)?&7P~ft&0RF1qWG=u#qTpBf;j@d z1plp@o{?fvz`}Z|g5#mp?XZ{ThiX#~w_P+94Ka6I`_1AIYn$DY&#v+h1W!Hv7*w#} zwZ5`OLQqmH!yy5dEqYnT2bKi}a-OJH`Jc8dYx6bngOBxYi`=Pn58XP8^Nyp-ro+=t zoibQ`%9T@3NcFz*=cO*6_TN6M&9FdIh#{}*g;eYBsmn$6-^Tv^J?XcU**nD-*H=AC zS9N!+Y2`auV|Tk`@8;K~JMSNle)DFrmc8I!CD(#bo8UL+eE#mg{4QaB-M7a+|Ke}R z|4g>ueXHX($BX@cUfrE_r&LCJD}^msG7mi2Alk9ZyP>c7$E zy{tXg)|B3_d8BK;+IDC4ezpJme`RNX`k%nhzq$7R_kH>8k44unoYAuXklyjI$hW5= z6W*L*dEE8eL08`=r&rlYb=|DT#)Wm(H~nAuud9h;>hC$6hxh$w`TOs`zsbdPYt`>Vw+iJYey9Dotg!2L zC0ou!25E)^lcw$sUa^YZSY@7R^wo-cN{Jb3uB`Wb^{%3ILhUl$Z=V-EzQg(H7_0o zyL(2YK*&_5>gy{u37pbp_-yU)VWCI;B6+9%MSlI9!sl0V{V^{QU?>p1`T3C6GR8G) zU7J=-YbZK@%{ViuW2*ata;K}24h-kM@W1{2K0n-gM^oWx&gbSeFBre;2JTtZ#QoSj z+HBjNrE3Ki`~C9wI;OK+=x4v}p|maT49FV#=mEY~oSuVNeeEP1`9Mgw?^l#WR zZYyJ49I)TNTDrd?zpK>i*tFhi$Aoy<>g!zB&##~3RI>C|!fn|fk{4buOfH-+;C^G3 zgs|oV-fde7Vik70@w8IU`Z-fHxy3=c*Z%y3Z%o%W2~Xh+ygIkDwz2rZ?B{8JfA3XP zo4I4DhFUg*&(*pGoq9K~g|QSEa`bU>v|g$D$@j|p#-!i*J~k^P;~hSG{qtEPXt!H0 zz?tbV)6o;(9$8L*d%dpfub8sCc2V!6%%edv^5^|u z$6z-lzG>BRko>rkapPu}{}$6ut(?To)aLX&D#G)Cz1GZ!23Y}TWt)^fD!Z+kyJ|PD zsQs5IN*4p;H{`m_JTTw5vgdw8NhweK&0@*5X}DohqM ztxTHg^g@m2!_iGn_cBwKGiM}P>Mgy@5gwM?()ruC#8DZ z%f4)i^iNIxS9jm=0Fy<^&$!u7X0Df6F4A~yLGP>=Pd<8Rm#WP8aDCEzK5M-zGd!0x zKN5Z!yJ&jp*?Y0g&g*&JUwM37{Z{d(-I@Zre;N*PaaENYawt{FxSkgYT|336ZieOz zrmiJNqHf=_+17vX;`cone^chs6Z<@0bR@Wj%#}Z1y0Gi}J=OyuxhFO+_L??H@>`x1^Nka3 zSKfE66gRAnTdca%&azbbHUmRJ<B{Xd3e6Y_;CCuwdnRSme>rLls ziSzgD7l)mbd2ZLB*As7d%Rt3K&35XJW35vwFP?bJc#`cPpW~DKt^e9%|HNg?3bNm>-$UTYkp6BznEU;d$Yb^0f**_v)i z&1cW0Twk-~hR$ut70V|Xzn|=?Htpe*LLRxZl67mo$aHJuGA*`aIx~gATkQ$olq+5i z6V7;jtM5*nw$@qajK;$Dz5_}8&)?s!v`hTk-Nl^l-TKE(Yx|2Yuf)x7G8+o);?14r z`#ONZ`vvd$T2<-DZ=8LZNrLb4)r@=JF1h$AWyOx|#^2dkjjjrL734PX%m03OWBo-r zk6h7Pfj4rGtqeSp@H-;%(shS~Em7B1`kn4S%6|0o#j{%*+2U9Zt++Jl%<8nH`VLp+ zLg%9!C5g-=>8L5PC2pXdWkpGpZd!` zK|a~_{AvC-_P^WrXa0X6zjxc^Pq9AVUobRmv^SWz@aT$*^VS4p1Zj%ZfsR%%X83R< z&g0K353aSm)}fL)61*w59?fc-c5mXj<;F8#NGnHO4w?Kr-*X-JubJCf-uS#}Hh8xt zK%=3VF=Uc|^7<_H)zOR0+;4<`UuMQ;85OF?9r)1WR_&FZ-W2h)-7Sed6FXegr%Tvw zTALK3H1l)H#&rq~5(?%GeL?F&-OD+;)%kimUc0oPd*u+vpBa7n)gL+e|1 z^*b~F{r&&Xe$A7A5i@~BvDWdytaI}_`30_}K0Y#a%HsVyjT7T#CO)4N$*%w5UY5E5 z>jk#}(Y1npigy!hrcZdX;nJ_YNuDduW~ns_tGcdondH~CdiJr>W2fHv6mNVuZ^v`1 z6)~}!7suMH+Rjs9YCTW7<9cR5<~t7|f$a&-N^#BG8yjXiwB!n<-Z=izpUL;lL3s)G z)oa4oEEb>s5Gwc}C3>UH!uKm)sfJ!oTc^50?x@?L?kBCBd@sMO;L~8x{bRLS{?5@) z%Vuo};0Q=%FmG(THz(_6AnWSi%&Y1r3I{6$oHzVlcd{i&m+^Fy!&ddHvl(Wa3V%7I zx_x2xLQ{9A4taxp@=;*{rD}`Q)(Yv$ithS&deJg13+F`^`f?p|i`Q?t795gLcsIrT z$h;4)wzzRAN;*2-&(UU?arJu5f7xbh)?d48<{#TvZEt>hk6J@^Txn_T)_HHaSIlW^ zIr#DzgHUL$(VT^PT-K8=oVWYE()8#4sLB7ef8U({yZp^H?f<8b*8O<;`^DewcjCRu zINzO|R<>c5(LvG24cGmZnBEi^b&GNNFASRYTK<7f?soP6>+>HifB#*!g*m%7-0)p+?&6i8rm}Um(YEW)ri5|1 zJFZH%iPpUGd4JfW@A@km>O0@nEVegb3Yd0gmek2zzXj^qb}x9VtjNzTbc4yUxoz`< z*Me7qw}x9>&h-tFZHN+6d3xFJ_X~;N7c+M$c8H&UZ}KgU-Q#+)*pI`%jI&kmF;py( zc)Y7`$1LX?&fI4uX2v&VDe zTTn>uH7S42q90q^uZuf(S~{t2Ucv6sKl4GwzZ~Y3EP03K3ndtfaXu-yyDCOb=lGnN z2Z9)-w$x|EzG7JWSo)vO-!nfrj{i*jTk&IB!jjhfb&N-%pU-@Ag{kA(Vd1|$%wfw} zPBxv(mDxW%>s_6o`00rU1cPVfYF}l#v+?}Yg4K`sZg)P}=(2I^gw|GzHymz_>yJBm zRWLfMF8>&@bglKx)SEY#uDu@Vzvo_eX_qAT6rX^pIr6=)z0(xea7%{RI{Ns;F0c;U zG-Hj)i)~jP|FYvd6ThLnx7ztTOa0D(sFhFTJ}jEBef^ouHRqF<8h2}kypzN`XjtE>{9}pzDefRi`Y#0zo9lxIwy3iVcPo> z6-Ul&QuQwMS$KZRhBP-tmJM8wmbops8xYuTq4>z;kL*#aBM*%as%+_8u=cX+#{5U0 zy?btab@_Sk%A*uX^MWb!Iu|+}==~+~N!KktPDFmi0Wm}0`*&`;9R8WnHG7fncIWn! zk;@LMyqjv+#LVzMIsd-BlKYF(b4@2_d_2QZk)Cw0Y}402GsBI}o!ZQHU^1lFcvYp& z$R|ea$J}EJy5sH`H~1`xJXj$)Ty^lf$)ptt*8=9U z`mR>LD|gT@{ZQho=B_0lCM7aXC~)4ipw6;W=VU;%EF;V6u(=v`&-y<fN=4|;tizDR4RdPa>wR5g!dng^a zPfR*gZ>@Q(n_}15eK!qOiC(qlR9M)4M@RG8tL6OcCEMQ2kNsa8_x^Fsz76&<_UC=V zO@7uTmL1ocyz$fRkN0jEPW3clnw*i(vB2?nn{n~h@~UgkZrs;+WiDHDT`fRfs_IKL z`=%Zx!D}4#1`p32*}5p)?|hTz;eb`Y+psl!Yi)I#>*uB zp}u9)Ui5A8f7HCo*2d<>>BDPf*YjyJJh;xmRdhZszJ6MIUeBop>Fj4;iv9nsU%!6Q zr~jMn_pAL6{2Bk|wEq3pwI^(k{IxdG__Fupfwmygs(XKU4xU*jWqgnIZ3F|))F+F! zI{n_sZt!`lf8OD`1<(J#KfYrB<(He({@*{m=jYew=boqjeSdD!M#1EjQwmn>I`e!+ z*Wc&94KbC^Y*$Va5Oa5T<=12Npw62hCOeBrqH^~ zt-N-ninsD^xdeu(Imr35Pn8Nad?BP@nP(&0&V1}~tRDCCz|D)c#kF6)S1X(BSIu(B z);_v=ZNORC@}vKXRpS;KJBmduZb;w8d_eEbH-UwFW77WdU0+;iS9!xXXx2;NF3rm1 zt(yw!)o*A_;QF?G^P$%XCj-8U#W&89%v$~EH$y~x(*6hO9BJXV3_6d^s!?5adMlSs z=F9UNFR}D#sH~c}KlZ@AW$Nk=x4}dw7AIK#cye(SL&O= ze(h`D!#-~N+uv(ubL6ag8>llkvw?HV;!TA+-__Lr+U`Kw(ECi9lD*!M5u zQaijNprobNQ%zw;&h*b*adXm6@BDmgHrw500%>Oo=l@RNJ7U##`%9@}Lm>Y~`9*6N zl}oQJzmk%;oA*}e>dYtcKBY;E*1gz~y(GIm{`4-%H1 z2k#n=eT!l>8J_j}n~HJ%wunBze);DrHimh(R)cEC*Sa+Vk}qd^$#Ci^OxIuW zEOFw`ITdG9ZGuynWqNPSF!}WEgLZFSaDqs+bnij+cPYXtz8r6M9aH-Bvn*`a1bPzx=#6&&u-ce{=s|x3}V>kyfI8%;f*64}W#$ zUNo0kR&y+ErONr33W3-U)7`FqGyKPYU?Hy~f8JiP#+}Vhm!opOo!Wo<`tRT0v!DKd zzrOz7T87g%?f(DSy<*C231yEj8>jVire&^QxPMMhPuNcJo6%?gg?pzKcI;hvv^8hx zhsb`$A5S^fuhEeDZrV8e)Lxwl<<|T3&z+n3kNxC4^(}E5zn}W|L^z4-e1Z1OX(A@y zJ5u&u)j4#FL2?=A^VI#1B|P$-XR};zSfF!^i;Y8pmu3B<`w!*1m}+~UJZA1m*UW7* zzP4z>COL-_ir1JE?xwOTY?vRb&Gc4OU3+KwR{Mwi>1Lbf@3_vGUSy z$5v|zhmYT;zQ24d@b#wEB279;`%B(r_WnG*QawDWBLvr}t)6uMXB_1*&BA z^iS*gDPhu=e&BC2(=D5GOv$`IBr<&s`*OD&o%<{Bq44fbUZY2fM{Bt2w=bRB^`qL6 zyKRQ(QXl2-8miVV^W*)WgLXG>3|BbNxI|GheChMW_w?7PcC#=7ds&%Z`Z z6`D253%}L$h%U98ttIC4M#b#X%nJtuzm*so?NC#fFY*1d+iY>c{Fo(+_ws6#hsIal zwsRj2eqRoH>M)=v1q&EvmC15;*ph_TJ#UTsy7 zvaupY>B~7rg@a4j8;so&+BNn$&Xp{=aP*4P1lzZ<34DezqviVcW86Z_q9A~+{cPs=P%vf9tbW+dxk48G3G$)SK3bbrg+IK)n(%<>>p|%Rh3GD;^O-keHs{9W zelAyCr^`6a<a@91yotb5zf&tFzsoO=B5uO;%D8aHlMOV`U+n>Z|A@n`pg z`zhPakDLB%e=vV@!M!6Z?BA|WTb%0cHod?3y!^)BD<(avUsdt2l5xXTi&Oh^{zWe;XCmjElW*ani?%Z}{ z4TrVh!D&VrbDHm@U!M_vdu{qo?n<#E&(A%TaI#J~TiSh}a|a7Ys?OGv{rL_LZmr}G zkjzV&IxXa8nbqMPX(|7c&$<}QcksM)Tetcy|E>E1j6FV)8_Ja?#Ba_wfAh=mV6*CJ z(?{p`up1dyiJxG2UL7eQlb&Y78tyOgU1kAyYY_YO8K)L~`F`6fdIQg#(+dLsFUrk! zFIHUE|Lsmtwr%6{oZ|BIMep=ZTi@Wn{r-2=_S^Rb{A8}|>o8v0x*$2;P%So<`9;g* z^MQ9Ot!j8#ZCQ)TjP`91pY2(mzE-qvs;hls=ZidnQzIw zDW&+X!S8-?un&F-Fh|FH7hXN}yVZJE106O6sg);N^0y>NE8&zgN_rK-ch zT{@+&zD#B@yHK|yyN~Dbvy?|G&n#WMhUsl???Hk0+L>2UuDjgyT(LY}@9BNZ>)qjH z-y*X4^#9&|@O(+^f{3MwHnR>?%=$m^>sR&Sz^#w#lsq znRx&C_25d=>N?w%;yIsM-(1h@7f54GKUa5zb!9BaC&K_Q^`83k{fAC?`Ka9AZcyE{ zDDCn?rbcUTjeq;DYE03?&7{j}MvO8z){ zSKsmP9cGp#UVT$nY&pQRHzIjDC&#s${He5aI`Jv>}>6`g7@v;2P zz1gaF1z+!5H~riN9=@fShSyte#yKb6;<5d8sPJiB@=wQ$27-HM2wMmUr*g4&`5t(1 zaKhH0aL%hgc&+?}q?~4N^Pa}I;%?O0`Dc3`hIw zf6Q>ac9=QmK;r2KvcZyfB{(i{hHcYxxoGzL^Hl!2V|nrWHif_6m%aZ_{qNK*ziuD< z`?&w&t9&E(n8Tf4r)+&8u(2g*zu=K0^#L2-d)m8CZ?(IB{p#67UwMoB)@;{bJ?r~w z%KG2#f9v;8mU8dHeyi{QSY1}NyZ6A|4ex8e|7LYc{k={q-7YyW_N>oRC+pk%0f)-V zI2u=nuH7(GA>n>%=c&&7shhGNswST;yRP27YEy^}_otmZr|sHxv*DCnwp!EY6Zg`+ z4`jR)f7CE@4vV$k0aXScMw7^IS^ei_*7q&g$(Q=8luytj`om0-*Gbu7DYjD+O($<_ z?^FypmJxJd>RR_{Z(Zao9QGg3z0POC!Sdjhk7I#R+nXW;6MzweZ0 z-LQdO_uS$(g>6r7Fy6Uv{)5fpb8%N*EXoc4x98)Y&5n$lC(iV~>9}E0-F{&Rav)2+A0NFA@))V-l?-K%*9@4lNgAJ(4tkX^;EXyUz_DNZY= z{cC(Y=h^|cZ%dzBojK<&aam2#Bi=%8nlAt5?);RGOGPhQA78OXUq0!^87BV*_ScW* zq^4)TaySv+{ku0i{`oIYt=hAu-(Sy2Unp)+^~@&k;H`&p&mCq3scK35;QPtl&unnx zqO^8G0OQ*PciAl81bGgFKZabt0}uRReY53KJ|nkdqw2A5jr*MLuZ_Nyvz0aV+P)j= zHv9?P>wFe0jEdx&=IP{O^p1J1yMdnev0#Od3_px~mCj#cYjZZd5X10o=3*x|Da}78 z*-DKT-AX*SH$KDNbe{f(X*=f|6$&dg9h5nFZRa!vhGWl9Eqm5=Q$$4W^Y4>Ut6X|- zEUTQ{oV@Kym9cF<|Xk3;q&X0t89%K=H1d3d||3-`ejOFH{0V|q0HO4^Mro-w?7S;ZQzQ=vz1)K?D{NnrcT%XCCoL3ff7r;IHV*77`PeNeG^qv1c zSFSTRF51Tb@7we@&&p2!*}rRJ{I93FpZ|X{+k8sC_Rq<0&sPY_|MvNQ;k;G0;_S0g zsVV2&*8V(sXo8g{a-DeX7=FY?Us_=v?J` z=Ksm%)aFfi3Ia*J1sriY0<`tr2KmV9#h{6 z{#cO^e=~F5R2#l6&oj9gZnYZ3+clrtIq~-<$y1M%I4@kjxPM!a`uW$gj>qMB=Eb}f z+F9(fv9{ z@{W*a$-JGF|NY$9jaS^>`tIG$R*mnEr)nzqU*gYt`Q&Ed!_5cWj$e)2-?#UO*{&qB z%=l$D7DiqEcxUPT)O8PH9y^?!)A#wf{+u&;W{jyu2V%C(&%NJMJmfF`k&I{qtj=svOe3kMOl6FiaR;RRk;jYSG+EK_#D{2SM>Ly z#&z?YrrPa}JCJWZ(?y&;THe~)edWJ6-HP6ZDNM;f&ed$=$(g>T(d{jB_#%y4>{1e3 z3;qa8toJL4~Xo0}-yexSO9 zzwzeHH7^;^R_mf_a{g>vY!M!CfSK#2JjW)UCZ^^qXH5(jpIy-2sQ731#A6Hc zk3IVO`gaOPLzeo)sc%2e)Z2IF!4mrr1%Y#?gtqMbam_{OyoudfzE>vS_Fm*T9dKwz z*lycowS}i-Lq40HO3YMEQHuJ|$u6U@%;LbIAFmyvJ(#B$+&&so{DNy*&6{Jhif5Q6 zrn6}Fm8GuyI6-$2-=6w=#~T99<`^%Qie{7bZ8$rzy;lA140fyNlB>Ux+~n8Zn>LG? zrRGeP>oMoIizm%JuwdP$hqZOz_o?LxJUCg@YW!DR>$e{F@wkI=%cmWl=%-o#?$}4E zKifBTul;uH2J0uTf5H~Uww=Yii@ypzlYZ>Fg5lrN8`?krxBt9(aqTa^?oL6|X-m|q zdezRP)CMPX;s0uJmfVqy90sTMG`ezlan zVO*J$>oYUf|4(*gAJ=2~e&&hClY95p&7I5NZ6)U~!zcOezz5EfhmRBdcO2l_q@_1~ z^I54nwsY1|i(YKpv8O3+i$E_QQ&#qj?+4_rUR~C=l=DPPYsBTldAZ5+qxUy`t~>wc zfgg|OQoFTxZ~w0UeLDI>eeU{uJGbWl`($n|@E|pdW5Kiekqg`#S_ulxM{ZTh|6+uywZ z!#;m|{LlLT54ZLIn;!LDZ!gbQi?fNZ! zw30PjJYUR6uaY*s6?xn4hFHKEKE~Fkc^C3{oBID$o;&#KS{T!IPMz)3m;9IC{-Az# z@U{2pYc6}bf3;*6Snm8xzhQF0F6STmak{Lr+rO4X7-^^SoVaMou_gUW_^b? zzM0M^W$5*WLE&Bj@12`fX#xv%wru=&>)@}Bcczjnj-54Qttzx-d;jW85D)j-`)}*? z^Eambu07i=vS0BZ`_+mKUIGU?t73kMY*Dv59JnggRQ=o}-5B8oCT}`xI2yTjMlv4D zIXJsPsOG+NnaRhGLa(*up8EtGy*bH{S!&K!iTm8=x(;rg{k?kD@#x*5H6GEjizdIx zoc}^Xr@t|Gc8l`S zV_5a6*2dduL-_P7I*m7NFFkv^CFYahA+b9j&REXan9V6`*)z9AuXz5Q*%I}iYo2{} zEvq@;-|$|tOoHpPMf5h-MnVEpMXwGcQ?OpGL{pI$L&dFE#kX`{ zc6sbin&$YFd1+t67Q;o(Os6s{-my6w)xJ`GJNta@u6Hbsk7axs_hk3Iv^@Uw-@{Ff z_rK3czr%cPRmQ(BeW}}5eaU`bv@iPI;Twx}DhnB8m;ODXAeZgAv?A%M-j~pleIH9o z%Wh_VkY%rbR_Q1AV!C6>)wVwhjeork1==gf|GO8kXpN%CtP`INudA>eDgGCBbKCRl z!Bw{BPXt%D2Jha$UNoUr3p{m+UA6UW595B9cMJBt-?#eV zkPlOF|2cJYd!3lnC6yvq0sb}Woqo#=2rIUMibLo4=|tkz~%fo?9p$l zChx1ioBJxB>^#FD|AnKbhjGECZEjm4-LgK&soQ!nD&*g9tO|R(q0=tEU{g=BU;EA2 zDdCGQ^1NeAIWxVgw!5xBdtKNSE2V#nSLeU}BYPwT!-TqN+nP5-SauRn(Ntdm))+V$Eyy^XqaXDvhC>&gWC9tTP3vWbp#f1|&z|P?bKO%f zP1?iLtJ@edMS!PI)~GJoA^Pdw?|E-G+&o~OfA2>9_t*RPHZt7Z_hqU6t=;vnQ|!M6 zzt4NWbKA=O3SMT6D;XbTZOfi~xNkwZK*phe@>}}^HW=L~+4l6(jEzr}8?X0R^s9BP zY-r!KeVK#%foC^-9sbNdn9#>wb*G%oNB5TduJj4>k{VWC%E;-vvUJtw|Db{Z+)oaJiuiAjhh4Ce&p!T zUzEumq5PRk{Fd!&MP?5JhHt;+->`91&9mV5s97Px=hz>?lC)3oj)w14(etm9Z*}~5 z(zNr$0n2G89v(Qr^Ly1*i}kxr&wZYm)bew;nstep#?JUGd#wY@i%ss&epHt-J++~_ zb=!tzmJw?s(nJqrE?)H9`px~`mAUsGlp4(swC~Z|eTT|93Ct-=V-DpPU}N zAwuP9*ne)hOf?P5s0i|7-*WWnS8${vg>b zs-V|GYaG|=WSnBMs3@4S__+MU&PRV1UK4Cm-F!-J#!ZnVeS822Rw?j*A%O40!oVN2;-Ao6zl&%Yb%{jCG{IA}8 zDdxamD`uvYc@wwJzY@edO>~Aq_Rpx+xvQ?q>+r6+m1KOoocF-3g`YQ7-^(($D6##k zUe@_da*mZv_ba~dkJXM(;ajiK$@iT9u24@h+jFs`nIg|me?4?NnJu^Ly5;q>8n-uM zO`<#9^grLK;Y)wLii5-c$0>G!Kh;0i{k>HGDYW|IC)aDQ>wa8Zo^pl5=F+T>Rcc%2 zAMQ;INmmQMzUr6frX07%^)vi6?X&wB<-Vw#b9rX}?&I6p)xY1y|Cg=4(Nuri=yv`8 z{eN_Szr6pG^Y`QTe>!7@G8mqguAe`VA&hfY?3yDctj9JSSt=eH{YL!E)JK934!7Tx zJYu@GxRK$R0{4r+I>+4bZc&A4JdA41C+<8jom+A8w4weVsoU&1c@qD=n=dMVD3?CV-v_(719gddw@kfeQ3hO*9 zn47CJx!eBu+bxQmK{1!tZCGBDb0gvHdX1@-S0XdMNU>*{FVVm1&+6n;AoFj+$2IKM zPpldbefha-di?}d?pV8&j?7~Rj!C?@xqGUDN$v84H4Z<{^VqFP)K7Kj`?N_*G}Su% zPK?1Kzhyys8(1G#z0f@r*c^VcN#FaJL89Q2RVSn5y`9}1vPVFUAUPXc2 zi@pZ{b; zhf}}owpp{Xrbm0;+3z=dYp%TAyPC;S#zo6?!sICn%eFne`Oa3h*_bIfb)U=j)e1fB zI^OasFRu4(pDj4;z)hYtljhxj@4NP)7PIDIdzD?qtm!73TrYn9{)w%T%lK(>z5Sme zp7Wi_rLMNDmuzm^6vQxeD(}!bXe(#rYWtPBSy}1a?}KM<)nC-pm0dB*-)}*9uIfzo zGZ7EJv&(fQzW-S3RwyH56(R5NWnmFtEz9A}C0njHt~)a8wdYK~vq$3!>(XWxyr^9G zE-&u&y3h++47VzM-|{k87G2rH6ltJvKSBqoL~x1iwQaLbK6KDkem3jv_BDnM5icHd?RfQPUTe0?N)aS-Iq9ia>I-Sw(DKLEP_u~zni%6H~(+erKUCWIUj7u3JFY3S#r*b zbxF;)>C-&Kr*$#dmHoRgOK__B{Hfn(+>%~iWykVAe$(yQ(bZpH9ozSFevNYTe~ri= z8QlM_uY16L&~drni4B}hQ8z7SpI`iS!vE5Bxqb0h)44bTF4QMB^j1b~`}_4L&%f!q zKmMPo`+dDm{lCrK_20znzrAexS$q56o3B&X&c0mvl0QZIM&6yryB6Ilo?oCV{y6Kv z&b(!lGf-7* zw|j%6m0kZHm~bF+=iQ6H+O8j-Id6BYk6N@Z&;Cs}Gbde(EqKNHLTQ?MM_l!k2eEn+ zIay5YXRw6FG9I(|uqH7w=Elm@-Sb7iH;Ef) zC0>j1I-|qxYm=OGt@8P;q=3~57UvCFZ!ned{jBxeX?`1N;FK0Wu0N942RfJkHpzDvtl#|X21A16=ZO{Je$w-91=eo8IcwtcxI3381lfO6{$n$(JCR|n zmAYw zF|*@eZvO4~{a@zMe6JO~Q#Tc}zU}>!+fdK%QSwt`HbeBe-&%jUSnq5(qPk}H?8_;q z?liPM@Hn8b;`k4q%pW`cSd}q;OiVIbDDz>`>l%^GP0w2`pSwBTj<7z=nq<3w-l^A; z3>8`HIh>?;!&f<5w>-2u+PZ4rWuCub(%HKn>{)(r>iqN-_VYsCHty2l7k%?xCnNCr zzpC4>=SyT1YxgYI-hN_@9KWsQ#HmYfvrgN${QvQM4UsAHKh2bUFETfK)lqNvpbmQ` z*?{0oo0kcP6`5xQW_@J)D5hR(leNvLdunNwfABD?fs3n&9-sLX$QytVsI+x|7yK(`ApURFh8!e$CWd0o_M%w z6SMKv+O!AR1qWPr^4?nWo-d_Ad6qFt`iW)lm~zrmAB4E9mfIHAegCqf>x9cc--Mr; z@tdc_nt!>BT-rSLim|%$S~4WxvwhAR*_3q?&%TOD@8y%3<6={v`YtD;H0Z=_^%W_L_111R^r_vx zmg%1suZMdt;~@j9O{WZ;Onh!O-ZWc%a|!3AliwDf?a^=MXf9CQmwhE5nP=TgmwUI@ zoL^ddrlBq5wc@p7R&%FFS)Vn2f16K|W#9jU=ksR%*RKA#D)-=j{nWGnXKnc}e>3&1 zJzI@{g8Ht*ZeGV9>K3)^>wZlAcYi09Q-o$zlz&)4hSzIAu+ z-!pZu!|Q8*f7aXoyddUH`o1r$tKTW#{!v=Jwf1~|F%HNsmZnuB_ZpfZlevw@^ zUGV(pg$p>$YOm~Emk@b|ZQF(~$&Ion9(?8z=a{wntHE38X89Y@vl!-m)SQ!X>8`@+ z1-karu5P~j&pIt^b0tTbT}0!Zqilk|UB8Q!3p-xSe#g?~x-7QSw4&MY{g(ZjcXm!H zG~2OG@Je%T#d+iQH(N!@lxy$Kd489<=~keh(A(x)M`n8Zh%f4mP)~Sl+>q+~Phj;i z&4vsShMui=R9J4@Jbd>-`kUsjr*h)ozq?q;yIIpB$LzMGRkL1)uHS+yLHk+vDV?9i z5+3(to``Any!lM8#h8N=BRcmy+n?UV^iP&G$5mB)a^CTbhWiV`j^3_lQ)}DwjqBCp zNKfPG=Qs*Z=KjC+cG{ZzVRxP$3EPe_o2k)+g0n&)lao_;+c7V zo9*YPe`0sL>^`R(I3;&c@jI43mhX-K+~Rg{n5VcorthDR>ZV8KNi{E*e&RGR-c%jD zZZhAu!>5*b-P$Vr{qVcT%XS)Vc7LGq>JMYXPDg&$eQTHPF*5pca9+IsYtSO6o!1vU zX8onS=j)At<0UN3f()xRW$pf9*nZhUdCiSGl6PmcbO?OOUH0?U=Wq2t_y2SMwsiik zt^e=a|6#8Fdo!IwiOq#c`@g@G-kg_Vji&<|rf_Wxarti6{Ix_uNA^Q!0$=eqx2DJH zQj?g}*hE)NU$h`$6NksfqJ@)P{h4iz>TiFTtGQs(`#9|bB~~6gc5GT-xLo`3ddZ&F z#cZ?W8^kK+F{X9TGOc9XsWRPORVy3JEkucq)!gL%`x z`@gQ<-?Bab{m;_$CWnpXDi5~LVA0rEu9x7%dxrJJzPzJOo1|y$k+yj3+J9fBFzAP% zkN1wVfo4k^EZ)9l`c-07xlLB)E&pOMi{R?PA8lTF#$i+$Aw43AdawNH64Aw6=M*$0_Zg?Tmm zZvIqoy>f+n&!!W0xk+vZ85{yW*DcZAr}98Hsq*^l{D=SQH?)7D#C zLQ`Hx2%qTC-h9p>*F)pHfQeSa1ddtd!i!m+ay5VC+ik-$jdjL!+rz#`_PYQ55iK0@ z{`Z0z)kc$rd9H0Zzu)xM?gQ3FvzqDb!k76QcEqL6&P|+Y5aE#QA3bwX_1qs{w(aN3-Mm}5*6>GjqA+8^ znFG-c=VzW#P&;CA?$xY?eryuW-0zv6|4-?gq&Tt4CjH+ZvB&%Js!N%bu5tg}GDm;o zLbV9q2h$Qx&Pcz(^KWNbFi*vS>3d>6-my?kDBf9<@gmJgXoG>Uw&wz_nKNa-GhWYL zm@9jExz{ma{dk5Ohrc+^cysCI>-M)d{h9ZfUN>%$nk(0PF7o*2T|$Bz&&7S1Wmskt zEp^m@{ap1_%WoHV=5I-x7w`WPRBmkyml9d@*y8()NZ!XglRiH`c&8vo`sLyUpG@WE zmF!vZ=$_P(FPqG!?VWtTx-_-^t$H)30Nb=JvRfYqw)scy{}I0}#)$3F%O?fS)fYea zIBM|4-kBf0_3g>|mpDuqgkD%(kleA&%7iJhMc6ib>S=|Q`I&(W^?6dlpJ*EyB;K`k z^(pA!+G}p*_p45SdGZT|a3!t34xOJrK6rLoGUwKX9fvQzeAT(DOUq*JufS(lUwUW# z6A95=5qLl$C6=l9?6SH8H(13M)IVKY(%`Yvjqmm;i}KkeZn~Tw`SHva0xw=i;&p&4M{^HceUgf8pnq8}B(^ z?%1>TLfZ0MzY@w0@01fQ(9pPEq_x0NN`QsuQ#ngx5zi40iI~#`yWBc8cX_HD*9t!O zzWmaUc9z86$*PGS;UaEVg{;#d}{rY{~4jYYL zv*;~JHdNzi+S-0*_6?SI|D(m2&HH@ca!pm3vC>y@-gTb6ZLD`>pG}xvEpe?}|I-I&V9B!K!P1;Ejnq-G?7$asS(&vt57Pwgvx>?fZB- z{AGQ1U@b=lC!7DqjH59&)VBs^IcO$elxpVKT!dq8o7|#gdKC|jmht#7y z(Jg#IhK#EoS@(xu|0ZAiIGf{*(Z7I7q2E)2n-#M+-#*kZVe9AITV)%U&ykG#+Ts6j z#~Fjyza4&@Oq!e~a{BYGu+yb&LNi4kX1__DyWRTtB4?4a6|w8>*ETGk_*f=eZ;}MWEp-wMxQ=3lgFNW#XZ?@-cagCW=Sym8laijQVqWb&4JwMO?Zkv2BqW%8N z%(7Lji?4JzRWcuuC`6*`2znyv%M_5sgEoDHqKf6`cK&no13{-JQed7W^>)p zJDzKQ=V8ni;pcxF52|f`wzG4^vizKlv$qA@{KqaF?5(pQa@FAm3vsLSKKBg`RHDlM%lOkhZ?npa6FU`791t>nFBLMytB-rKSl}%Ig@|pQecxMd z{kh0;?TQuCt#hS9_50Hl_%^W2b-FRPQJa;aNupsx;S1gt5% zD|x)K;QhueN3PhJu2Vf|dnUhw@wnX0OMmC&msLxy-@f$oA+4KN88&t1CksdlHU+lFm5 zZf|3^)n1c~P&)7NjI&|Zg7=?aYwn%L*s%QDr-KeVf`$1r)ZUckDCKHg$X65PZ;zf; zvz5K%n~wjUgbVREicT)C{(Uz7|MG9u`@ggPeskI0>`IAXX>K&zi-OZR>_x{b6OJjC znK20!C|!Q{sUf6c#uLxu>V;=6OjJv%J zbUFh*1RSgFeV)4EwM@TJlixFkx{yV!d)$~5`NOhSl^T2&Fx{-hc%pv8Rlh5T!}exb zRFt3Cw5Hb1-dNh{M!LWy9}oLY5iV0Ui!3_0QHo(k!=h?d$qTC$0vrOAj_Vl*T<4ge zB5~vStRpuxgbgbsF8|zi@V8VOkNUNUO~IGqLlgE~t9=luu_>dLEs<4Vhp(Yyswd~s z0{+Hdd{!%s=1+Wj>RarR+veeW<(c)L-&)VJ@#dTRYaQlg)baIRs936W{qFt8s)9P( zJx|_Y)Mimrxx~4kYku$Eefw@U{m;*TTr&NsneF$sO-?C-S7x=^8f^WcG~+2t*qqIa zpBvromz3G`@Yd|`u!HN1r+39ZSaj`Nt!-vkZ}rop6~Qb^%L8~4m~<8yUivlV?(7~$ z!wxsgy?LSUXE~@`t1~FE`*G_0jk8}%SN*A1j{dvXW9xr`KhfchStr(gKjp+X`)2B{ zB}+J*l~eepe#`h)mv(J$zo%rcrRT09>lo@}h1KC#h`u`xCJ{LG0bS&WSKv_wQ#8?6f;$KTP z#S~opRTaKK#!YN3$Ho}Hum;7M-W6iY*BWfObNa9Eu^SOHZ@L*YZst45n(8^1N7`o2 zv8~0v2lZVwB;G`1G6QkY37RcpFX?(%THa&x(&s@OQMzM&&s-G zDEghPcY^ZyTZ?T=3^O=3;lNv6#tzbG+SSV@=La3~K2tugd%%EW4SqGjZO>prot> zd9MwdG=5|`@2>qWmHzmd@GGA5w{=Z#10NY&@C%kzTV}>Dx!0<^`0ZvN&GRx-dwu1V z@4M_5;%4UL(GFX_a8B8s=%2hY!77DUVj1p7KF!&(v-zaj^O^S12~0m4_&BUxQdZ~O z;N0^(lKH_(P${PVtw^rz#1Z4oYZA`B-0|e#x?3iB`_}AiIansi!&csVB0cBYzIB=6 z@^bfb{@1GWKfk%HOLFzpn>nmpGdnX*Tq{ePpYdkbM)P%xb1yFN@a*Il`@7kg`&q#a zp%qUaN|>A#xZc&g=nMdE%_FMtY;=|1-~~JhC(PZf-1BZw+56S7EsN*3a~=WqY?R+PP75o^kh^ zSJt!rwySC=H7@0OBeVC|MI-;2b*yXMrG*YHc5Y%$KlA*Md`gSLgmo5YVrDRJjym?U zboH!Pf0)+aHDzR5ZJTuJ*^($z**dM?hhOsFT9H){`uN$I3zG9aRV~ssFF9JNxm?*J zU0i+>r$E6uE$_vD{iU><8>{lft=7-_Bysb`eIcEy1$~zc7}-qYuf4L{8rODKA^!S| z22M#=)}V=^iA)V)tFOhR++4uFk!|tKoW&;-%73sNlkxlf$GX9?(Oj5;W%UZnEt(Hj zXg8$s=B6I+H(POJUZZt$^R_kLrmp{!yL<26yG{RJ>;B+Bxc|1UMfBUn{c-BNrSYHd zzdX>tsx;NI>+NavG}{mJo?6^DFMF!XA>jBk=UW6%z*40f-XACO+yA*Z%`#4F!E6$y|rNzyH`4_cn5Su4K1jKz~@3=pJR~`(1(;epue$dgb%ad8`i(*Zltzn|4w9 zTG-!pnxFH($}w=b6-Hh8G)2W&9td*-CB(X<=5X;XH4IJ*k-Z*ubBtWcm)Wi25p_c>I-}A zp5mYBV)?tzpU$qf{b#V>dd0_^TC15NR=?)``ml^~U0T29p2F{1GiQ90Ysjc)ne?D~ zO2~tIpX|J^was+cUAbci=aQfWe6ce{C7oFh|NJ=h&}3yv>E)ldZ;$={F>RJo#NOwQ z{tbrT%~!mS+$6-K%DiAvvy}4%69LIRPkBo+coJd^ml?QUzf3|~Wv#-~{hR?C^Rm`z8phn!KPPlkV)0q0N>>&4 zfA7x!`~B_xzv}wS|8CcRY5%rY{?B7wkH06_gq3!5CvLudnAu)Gw0grb6@i%Ri(l1l zo9Hv)|B=doxBH`4UfbS!T=3|d72-^{tdHv*_xyJ2_xAoKL(hzln$GwLn=~$-UP_v)?kh2Yxyna73bo zzqt4KiBhF+64&=FKKdl(_RHsYu4OV8$c39Pn)ANdR&0m0R8#WX=;y!oZ_mr^8LWtX!pbv2c0$9IlgrY? ztl10X7~(9w%`Vy|O*y}-U=82p@{N&JjQ?}eAIyvQe|GiF&#znJ9{VT@y9wELObs-@ zx+?e#clx)&d7fuJOxyHBFT3~qhv&Bs*4#9@JN>J%b$d}sXQ#pI=e?3b*RF)J^@Qk$ z7d+spD?hco`Rkj-p$ZR6&eT*bRPf$u__|x6+Jq%(ZeN{DnlGQ1l!(lZtDDY$J7gJ` z%HmU-`QVI}cc$6qoV_y3P9-g$T#}l0ne#kz`GuY5zuWP3T{<~A?C`lpsU@1Pmp-3) z$b(5Lhb`Fc;=(1rUf%2c6#P_lYfZLfnWo$7yLVWG3a+wv?3xoaCuO3fck>+qja~0w zZ|38;SLEnAp>$O<&qHP2UwYN+9n71b8J^hW&dz9IeTi2fw})@pE0*q5!@28bIk(ir z==|BaIDKS4o=-e>O$L|i;sx1n-@lJH)m8x`GWKEFuS z?(#hF_vXnH2XEb!Kf{$%sk^v-g6TD_MvI2p2eXoyGMIfjg`SE`R)3zg{##zjB9`MZ zIj=kol%tY0X8kukW|RMQA5-jw88f$*Znd1k=Vp-1G2y1F@vZour$B?`&3kw3-I)Jp zZ@kym|2O32YribkbqLm7BcU`yJ;2zqwrxTC9#QRD_NL%syB$LA+h2-g>g+7as5iPG z%VKYlXB<)XukP%BhL*&;3#+AK~}%GCRYCHq+GIK6V$) zZ>j$BUsZ2Fq?Oq!EWnyW9A2)dp|AknHs*$<0P|KiS~*)U60lz ze4er>e&)(s0#9BjM@{U%;JEU^X8Ya0dFkXfn~)=1mDVICMrnc-;qf z2i*(sqT+fP%d=`bB>EKa3-F*Ev zr?;WAGM5BjQqZ!9&3endle8+%9}G$EXIS=GAZ)k!7wxb;$+n%u}WMqrtqri=WBHdrZvYgvSIp*RT1nNhNa01F2B99pZm$fhcBh{wbQd!)SY+HkD2f` zNFYH*-0EL$an{CDnkrN4I7<~j*-S6Kw7tjhz=G3RqAB76Cu$!(eUNzP&aw~k-+G&V z8MYfn>ZVRhQLfCi;lMa_(!_;X`x9=?jHS`dH+&a z&=Kzi3U33_k2k*hn8)I%)p1(}$ zmLK5kP8W#yV8(nSDtw{$VV)9$Q@1WuJ^djO`j7YeN(W18rVRaxX%SmkZ&qht5IuQS zEP3MV2FZG(OtlLg4+J@Pw60;cSSNa7!`7?~>P=oTPSL!wtVSy`?%4m#NWaDD9%fu8 z&eU1=Y+tUKq)oX^d6IAZVtcyq=!MHUs~p9ReE+LD~J9!5AXye7|RHJS0|-*(9?--l_7r@gfbzkXY1PV>vc z`HzE}3bRx0#pe_szr@gV_T9yqPv&j?W~6d1`_99j*o*hdY%0#4Ua;&^%7K&L;y=#W zWo&4gJa0F*&3*Q7>dpW7T>d@qo}c+DZ^B2v2Tx8dV$I6$O=dP*@<;8)7ULD)YYX;9 z{PJGAaC3+Gs^6PM5-vSiS?Mg6yYEV1$DysxOQ#$5C#^gpr6#QEZCxx=@y&g@_Cs|y zX|o67hts5IbUsd5^fCGV#y5E-d5Z5&U#b*19CoJraEyDQ{^_fI58VWdf-`$Q?mo}5 zbi@41t53XDl3n}!dT^C3GlTz|rD63!`{&NwH`Q;a#+Axfi@tiNxgL5L*x-HZmDUsf zzH+InU*?{wTCy>y=e)^&C_MoNh3h~9s?R8=X1L!j;b>;0Tw64{?GaRyG<@n(*x&F+@d z53a;WMhO=F(f0Q0da&+kOi=m znR8c7z*%zB@!W0!o|fVt4Gk@hJrmokZv2<-Rkhe>HKnY{OKbKDPpN8#rI|n9HO1&~ z9r=B@Br5bn$mFvPD)rlMB;WhSc-}ni`LjF8dbiYMdlVB|U+d1VF22$JOR4x=EMNaC zpQ(*Ab=McgX31=2FIpd4cqfuQJLy_g@ zJxvKY@ILIiz*)iM<=G#1&+v3mdlK}$Z?8DtbzdVEwSw}qzkBL^C#qPa%y=L9E14&N zb&{en2jgPym3@2G8CeNscpvE3QDtgZeD`hY{NI+lcSde{_J8*OkLHfQ?dQK;+;4w+ zjakm57k_3|vPvCRi)UwW7yqzitFt=S!MjWP`z({U>ako~A?#(jlPw^`amV(VGmlm< z2o$gtFKF{q(7dM0QQlIhe?$ZA6I$Vn)E=xPs-!|N5@~K&A^+m;_m3Kv$ zV)|_KZ$3M><`lnG?&*XNQ@(piGo6*W`BLszo-W6BPBCP++qSQb zkIT&hdXs%r#I(EgHIOAi@!LuUrR>N!C3-7kb2v7O$b6~}(jA_!&4W^s-IhX!& zX4)z=Lp8%x#Nm+n!H zDY#(wABLYI7q$N}*4;E?Yd?H6Z(aVIEw$fD(#-Z{_gOhGsMSkF%RH`|Vezoz^Am6_%S|Gxe_orjuTxa_O%WPQ8^ON~S71;(D`fS-2*@tx!AQ zAm)CnPh9O_=9|^xC*{t*pAfNNm*3mJT!slg|MprH`7pkHe*JOXd-Gi0|KQuhn1UnzRsrUMo(9Ue@$ESD-{{7C# z(B5jq?ZrILBAA@I1ic9!u9=^`V~ty{9L-w^OwvRTP}3fEDq37emN%~>VvlD+X~HG_ie%tKQX znwdU`_{*qWEx9a{lvtp{J|Wjq_op^fSm}=*$@9CJbk|*0beaF4(K0&X<^5e#qI634 zdEbAo*7e}Q{=FJ&KHi@>KVA2u!%q&E4}3Dr&m+2&G?okB*FL_y!N$rVFqz|Q*WBQA zCbv5w>+O$RFic$+KHI7OhmL*7?-NrFKAj~xqcuHY?yjb@jJumGgU{}tdF8jeWf}h# zwiUW--znJnFzyXCNGjo2&uhAd#cM~KG^1J0e>e9&$4Rf=7xUcATiL{M`oQp8KK=h=TkJG}nMM1SPc)o(eTVY|Q?YfvX)D5? z-?7}i=g#Lnrosjd3%*Ti-1sJ99%JTbeh#OR%}uo>hEZ+creZ|S0Xzth$~_b7_7 zEr{uQwD?+6&LqJr-Ou^AHAQGK<QL{~z?tzzysz@~67HG>wJ-VK1gtyiwqL2)Hf?$FiNyQ_RzB7hJ5N1j5i0KA zvL)Z@^qnCKWgzZ@rysm%l?@ujP1?QvKQI$_7(!mfV`n!ll2p?qfjG4!>hJ6fW~V z{F9V5eU6UOvb%HBjmE{B1ed-~T&5?m$#~PFT!t!MO+T#o8S~4`MfJ``-iJ?4|J@rvo_}{FJ^u%*~9f$HoIq$n~Z(3 z@1id-!xxFr#QVlq2F2?8o#sj zOswLX%Bgnsvi`DLp{)IDSi&HfH%R^5^u#AU7GlI(6AU zuPSn<7oT6pz`A6H=z*Z8;>_3Q_)JWj`uA0m4KI^-8qRbql(c1 zIW>bU0oI4f0&i4!qpFXmaIUa?9CyIAMBlMhVD5jmhdX?ZSUNNuW~-a$7qYD^;NR?D zhrj==c`zqBJcH@T{>@VsI{)xjE!<)EHmO+n_u8M0>9?E=-s&EdW15@!`#fhJa|pwU zwF-fbb^dp!avwObq%J;x+53Ac@49}n2u%CF>F=LcKPH#u)Zcxle}D7m9}_;CZ(eEf zK5*9)-*eV81YX>GmFgT=bwok4hU?|}4{P!wS0ym4i||UyYV^M5aB0TMgH5Ks(s=^Y zr)o2#{?%TWe_Fw!`MH2>*-huB`L7mCW_YFh{d;42#hZoK*&L2a?zwB+(b>mzz49CH zylB1K6H7k`ZF*ekXq_mC z;*L%T&YaO?{>J)h;&;)d({Cg%I(Gkk&P%%oN$nka^C$2eFmz-xWO8ndds8vhLR9%e zN`B?F9W6q4r>t?fE@$&SVehUR6#>)TXEM)w?epNjaj^f7EgR)LRW>a)nlL@$;e*1f zIYG~s3#?}mdARz{)gOIX=H>V1)-t(T9^1(F>*T9HC*J(hy?%?;u58;0wH0#`4yfKN z)ijwcfBW0fhf?P+Yz&**v-at$;XD)B=-){f^PFg$5yqTuYW(eQuJ}~2L z9iRTg^b_nNuNz+HifEj6VLL4_S7*hirzcG2JT3Sl9-AOG)5}@Tb@uBejwixXnKVrK zJlo36e}8U$yIlXx+n?vR&$+@THurpK+k?jpiR!`u4Ci}qPS9gLzu@V{>7V}my8j2S#f zX@0p>PvdpMv-I5k&MEOkZDzihx8;iS-i0#->gQOwsb?-x^kGsn_BSvQpFFARDkne7 z;-by&R-4l{|9^Gr!5gP`&-S>K1Bybz=X}4o#7~p9Dh*?t5OpH8(9F{#Kd#?&S*fOPdg7Rcfw!VDsf;0Melo#nKPhY?7eeKtIwSV8&*8cwN zx@}f>Sp9Qj(7);a#}zV)p*$ z~09BekZHZ0`VV$Rs!cXYcTI`Gt5^t^Ozm(xW?%9>PB7> zk$2`N`5Mx=&UNuT*rs3izBqov_j@}xKEB8~EBAAm!`{ky!j2Q;rWR*ftJ|(C_51y( zJ^EH4$AP_7A3uM4|L1P}hR2`e&dVB1cDwd@6WgBV%;wE?Gmg~7GOpt0kUGWwnuS&&P6b&)Y2mA^CHpxMKE8PKdq9(v>*bJ=IXO!)V6I zczMN*!VfQhHQZW0%R%${k6B^+UfR61Kenw?Y~ICl#gQwF?jOCud>}u@J^NX0hVi36 z@e7_lK9ltzTK^04w)8krma;kWmr4zoYTG_r?bG%?7PS1J&l#=@Z`X6kO{!8Z2&}%D z@LSQWb_1u(k@rhm4YTr!^qil37E;yDH~b&EZkg4;dDk;{)~%eDzh=Jw?SlNP!CPl` zc7~@eKf2)Z&h2L`Wj0+|FQ9Vz|0WIgO7{9=a@GM;E`)Yn-&DG(r1sGE+}ZCdb{zVV zvhDvbtwzruLFU_J_UG9D&;Kv~_G-2K1Y46cAxyJ=&p&X`Dd4impYq@$t^CBuqTB;& zH@?`*n$>o_+_Y4eQMVzlw4hjiZRY#{$DT>b$%i=C%>8gx(dU(&y?HWk$vX}?;NutUy0?qSAp+q>W=t{e43QB>f%M8 zl)p31m4D4xYv{zly}YXU$h!L*#karDKlkW4CzDR)3m&Vz%~Sr}JlD;3-8C>-cY0IG zwL_mCS_s?BiK$n2$}3tR`sZN7>U$ejJejKd<)uvJ&O=+Zgd(5cITya#GGKz;ob3v$ zA{QOz@)KiwlNNBf_xG+v{0kQx-H@ljH2FLCJ7c2;KK7+m!rT=_7R863CUV^^pDo4n zx=kbhbJ31RyBalmuiNm{_1RwK^?GW-sr-0*ibCA`weQ=T#b2G*Ju?5B-=T(x#J=*a zNsHsNj_o~G`ldiibc%vye~x!r|C=+G^GYk9{+TG1v3t!i7JnYTtjGKOqCPe+;+dUw za7J)PoTjr{v_txtE|c67b2@K%r0=bYIc@kLo!xOs;q53H!vmANE}dRbnnk-*IAV zZ~9{4J!>^n{{2t8^e=wTj=N3&*Dw8Wzw-2t`YAK(Z&;)p7dy9T*Yt?K?@up%uKk$v z@XzOE8SG(p&-dNC|MH2{`|`W2C;m*GQ5PEXm8xN`yT7Y_?W%e&fcFD_j4SpXoR?WtLIc+A!yL zuekyW+n&C9o#gw#zo%9CMv8#^*S`Yu`2{{$Nb)o@c&2=SE0!F( z7?Rdeda1mO@lZ-+-o_2be+8t4K9^^(KeAYgd85+wl&7lEiAx!bPVY)td!)_LDf)rw zcW=(ZN6$b0IsW)yUS9kS#DBKKB;D~ z!t2;&+wU29dh;xj%#KW|IsKfmAnLg1IazB(meVe(oo2b*lho92T=M%Svhwv)?x|`* z#?Lkh?_}eTu{Kw8uzGIjxOI2b@~|}>X`3(m9W)5z`dHfMB*VX7S=Byb{b7!cvQyy@vW)xR*q>uUTiFXRIa{ZW7y4u;KA+b3^p6XFYQ~jZg;oTx}3W~ zja^AiXN1^ggY9;{Wje;zC?Hev(fDe#;sXD`q{+#*epH@5V>;)xpVsv^`CL{i&T;ca zlmZ@?%yo0$GxcysLQ~(dZ!!xl{yaL`YdgoUtlWL-SG`{rGN+cPuGH<635erAwW8aS zUu5|wExXe?kK0!K`*Z$p)89kp`;z`Y*#B=@?eF`4ewFq5cl7XG;d*xclES8UdzjQ% z|1P^7RjF`Xby4_RyB{p7+N{+j934*|IIY%HS-kJqBECy6XB?dSxw6N;dwNFivDdPv zE*|eNxig=SW%8+A^BNf+_1t9e=b0dJxiRS(f9W^z$*Z!{_RcoiKa2I6a+s#m<2@5j zX+Ga1BV&{O%-YE&-SOH=mb^v$9~zW()z3;6XuJs0Pq5q`>uCJ)#l($&?}*o(s{69I z-)MGr$eb`WvC?TV@%y-MRm^bo{g-m8;pMIZz24WA4bNupzw}V+_`bq_mfw=YUq4UE zktu&aJ!;Q9$E8+6+%hpy=VpCBx+h97NFwVEbL8qm<4b|dSM68Z`#ydDI(x1S(lY#x z{!IKmk;k^q;b5G+D)Y>)wB&FmE19cYLD$cmezofahvLy~Pyfs5eS39do6pU})91G9 z2A}`;D(d*rHw@K_yrkM*bugN2Ih-Y5^C5NjzMGqtzu%V~|NmKig8rsw{}0;TGWx%I zRnnH}EJZxiLXO0xs87B8a+Bq|iK%uu3XcxT$(`egQm@@s;l;YmBjcivtc+Z*wdmq%HgRyc6ZR`}pE{#vPw_&M8aSuvN~xU9|> zJ)Lr``b$XM!AoDFpYQl_ZryB+pKV;>YyNKIK4D>TnN*nT84S!UPONcCq6CU2Z%uX!Lt@df`mi(5a}#b_o8ZCKrCc~GY5 zUdSr*Yg3q0tQ0=Syq=NnbI-HqzHRO7*PE_dREZcIvu0jW*U&4ceO(|&LE^;XYqK?1 z%ln*KP`;k0$gAaokJo1gjkC)t;uZ&NJW$NC^`KhU_cgDXzpb0$vFU!>*Ph%{#z${D zUF^x}QoY&wgX4|8%l(vY$E(|zUO%!uz9;;;-02{@sjZs7&+-}73b06+S+6o-n=G@v z%~<|lJ!FQ))4wr}hG8I`oCBk^qpV~fN(=}@tCa#_{ec!9i zpORk{8L&i^mYX4}ARzdY2WC$HWA4IazPP&WaV%R4Q?aVc z;%tj3rm0mL&0bR^glbD!_(J8?xz-3;XzWtRaOZk)$YITzzy15p2FCL)&)u+%%dbS? z`T@iK=nE@usb1@KjhqdAD5Ese@?#sE&V>H;H=p- zubznqeGg4v@52)C!|=%(M}-qN_;P#`H@`i&Jt66u;i_jbkq2!)Nd_F4=&<3LH9JrH z!wdT*Jzihe=OQAO6d$ zK9j-wb6b=1mHmx^4G!*yrhD}1-rO#|wj=EV6Z@|%tQmg~J?MG$s`SQn8y(N7t^$h` zSd%Xu^A4`wU)T6*du&x>2FIPgJK2V8T#uG-)={zfFS9h`*kA8<{rSB)jQ?V78&5lW zEPs1u!MUCG=Xu2V+jMyPK8CN4%aeR3&ZfN~Wt-NuYd=e7@$C!sNZXv6;F`U`Msx+& zndFs6HWYa7DYeWp|Ao0(Wa|li3vevp2%GQg@BJOVRT^*DwD)yG<`|o6qfw z_x4Q-uGv)SQ#xDsNK}(efr#VU-lF;Zc0VpXtGJu@xG*>V@3H!f?a~)2?D7x(KW@M2 zw3qsdYb|pUB`?nV9zQdWTa3Y|gfS{M-uEo4by1;gq$l&-x-X&xsw_@ICIxl9bBI~UFnbXw!tmJXI18TuR6owHefj%Pufgwdn~{x70FtrK}XH*yFZ=>FUOmgCw~m!~<$ zz9zKkXzh$V@JQ&jZ$oX8)QriB1?`Rj>t4@zJN0Sxm(>C`v4v-wpIX#1FerY=SJ?B6 zC&Rc~SL}wx3@a-Ktut~8))wXb zIr~lc!uQ_CQVOR779CV{xjp&s<^^laZvSB0`oH~0-`0mbH@53ODUD4xY5po8z+21p z!(|MyFM-r5Jc*OiXrkh^lf+o_FVqDSztc#O$dJ zJ8y_&T&a0ovshu#spmWoR>{X7T;B7kt?%!Zo+^+Bnmsrp|Wib?~it)dzRn(c@8DaF5$&F>8#)V>1}qrvP>~76@HEL(u9sXu6AInn;I*s>U~qk(qt~|uGgD({My`Le=(6XY59`l0=Sa9rmD}d?=Ib=y+?Az`K9VcWN~l}%T4|^` zH19vX^43P_ZT0M{6|Ve<-~Z3pubbtzN=6D#%hM-CG3Aa5MyCZjw!A2pHtng@-Fne+ z!u$i#S9>pgOuNp-v*c8=#;)>KCHIQlso<3s~tBE zXZjx4{Ceh|>sGVBd@t?$E}=7Dy&?VFf>S;vXS9AA-Bj6pl1XCOn;cddmWb85^R+L( z-&|*3Z{wjG`q#M5Y_~?wU73S?wrrh0?dqzoL=^rjKC?&Whm6^~({74R$r}_m9&uMN zlsCJbXVmb~?D~v1e;OS^-p3uR=}CO0yF*phc3=I?fB92igxy+T+RFIxuMPjqonFs) ztY5R7RzBBS|9Abq+241#&GcZ4Xs_~XlyXb`c;kNIHI{7Ed%vH3UCuGZI&9~31&LhC z=H@w{ZQ7N8>`Xqu{NPq_2G6NGW_D-&m<2ObOI;t7@EKie@@!T-rat%EbPlPQ=ifc9 zg>19h^7o{pfbQwFAx%P(AJ`Y?2z>GX^!L)thmzB;r)DzTmu?8|($jjN=B*JuY2(-V zQ`Z;FOq#unfzM1og5RQOF8N|Th_`R=PF(4x)@POK; zSY`L64RyD?RhSayZ;DB&zEG-~@p$)V&sWba6Ldem%QNfWO>&el(_GAJU$IcVyy@Jo8_I909Cq3N+4k11|8{xYf{9B~++V$DS#W>X+R#Q{))O*ot+F>r zvoO?jU3|tMQ=!iNNy@QMUg*_s^C_IS-p!PsbXQ`R@r~7q=5eals;un2-?nU78nCPB z{IUG=naYzs-Y8W$dEDey?#;(rpJn}89J5^WO2zTt$BiF+-g5r6s-)kGZN>eS922(A zeJTEEWxBiKVyzt`r%NG|W%EX?#^X|j#diA+}@7EY_-pF0IW{#sw&D=L(7fT)%h}eD)6x$}; zo^avj^_L>En=T(afAsEpg8=65YnsKjl*;{RK9_Q*=}PY*!IzGAcb#qc@b2C3*`NPQ zG9_Qz`ShaAx0|Nhsu$);JHN2(U8$^LJm2)5gPo&c=z-WN7U^N@jn*FV{9G+IIY9A1 z^z!0kvrO15PtNjKsL;rK=GN23FOvkDHf@?Wi@mlsHz{aA+>Z?7Xhs$(Dc&9FSH4Kg z>ZRVcKKaI2Hon}@nYI1_lVr%2eOw7_eYY2$(|&n%b4aK*K=Ok9R7gk<)<}Mc>`Qc7reAl zbUm>v<5ER$qutR3ZJV@14=IElznE6uAr)ZEX?b&r_bElKnQUosYqQiA2K_InpMU@V z`u|Vj^Z(Z#_lbP{=kHlDhWpQ^|9#;;|K=ORH(^_+g&Hq;BYoX{suIHyrW;$rE?k+( z8>{ccWiqcQDkb`cx1HuR@3Y}HH&)F%wI!WNCi$;RoAEr|P2cpl@%&pppCjVd>PyBG zw5A1q*?zz2KmWgP-*ztETl4YKzJK2F+iy=_AN2HpyL|n$uYXv(3=J;tbLtM=TzfaW zul1I%)SF8$7p6-(FoZL*%{ljao6ohK_kF&ey<8Wf$&mdyHP|TNyDi6Jp*d;68+f;c zP3UFHyTM>EndND!+8oABQ9mm;^6)$jDYd+%6@{RgJpX_{edfu?kQna(P6gd}-zzL8eCxMeQ}wNMf$Afn zHEkz;7#*I)({QiTT$b~dfJ)sFqh_^(hqiU!|8-6N>DTMrtqGCqmcBD)YF58}_|3O( zR{v}N7kCB8?%j3rgOtG0HMWZTEu!Z|-OAsx-8$NExzx%JuOue^pU4=NtS1nW%FKOz z?aYm9GkdC8(x2|Mb&h(64@Y?4x2g`wi*8Tlys}7&* ze>&6bV5W}cRHh7Dt_tPiAhS94{dvMdp+_gFSNON7d|MlS!8DbRU*Ln!hXv=WPdI$6 zT6ffOn;+ZD#M?K`=O(Cpo86+3x%`C72QB`j=sgU(qts^?UD?MzED0b zz)-NF#&Kz<&H18>Tow{Um=lPObX;o7b zWY*s3Gu7|i_PXb%FPrB5>3%=fL#6Pm%Y68D&uRk_S0YIxEv@0hz; zlwHH~#+%9&?M#{18x`Ey^LYHTq@vk;N*=jfbn@#jQI*>jtne)7>a4T?#Tsq~W$(#e zw@-zImNB$xzU-TO{U+a;Q?hN%lNk4`Sf0kf74rGbO*O3xcTRt+&*qxGpe`phVZ}%7 zY0bwjPj}y+t*92vwr=LcRi+gQRae7LCT^(Nc5-pYdh40D{yk(!y#FHhw2p;p*5k)Z zra4CL5~;r&Air(F zN6EBHn$urQVOp2%{QvO{_HvsA-@h*Ut+PIQ>erOAX{jo^d3JA#TU4SI{q3;7-NyH| z@2kIEw*Pzmdbac>0H zwFy1?bc-!x^0NDpamGjPKDxh>d&AnBUyJgS+&UQp9tdYH;t)8dcOvPT{p|~}58i05 z(7)F2pJ=^Ky2LHOvh`TCrux+tee16U-*~?1f55`{aL#ov?dNG9T@|tHb6#<5@_ro~ z|1CA;4i0taH=KNZyjbV0NAIldoEn8<7uNOf-OC!rE+MkkY_?{>!CCQQT^A)Y{@=3t zIn!-oz$OKw%lQl`RT}Tt+e)(9z70!G$iAQ{ea0c*p5vNl&AadapWC0jy?=lG1G@vW zg#SvH7dkH3_V?YhXKIcM8IHVr|DKn}g4Md}VaUV47t(At# zD}KJLh)?s7oFMJZdq8PIALrUR(T%nma}~a?dAr;Ez`AVvr#qi;{F)^w60YeV)HvO0 zcffuB<#D#hdb5=d%rxTr-s>I1+4Iz3B;)ix5q%W{h zIREX~wX-Xe3(mW!H_2)IFAolKxgIpXYK`^_>qfyFIZdU<7~-p}IT8d_PJL(CyzZQ5 zw$0{sYi>Adc@}KeT&A(@z)6-D;V&EfAKX2yzvI@M`+M)+Z}l&A-Ou=Mg2W_?_o1`c zCLC6=v2pRYXIAmHE_FZP<5b%u9_cl!TEFH*^_%bOY+WamEl`ttsuIJT7~I^ewrslm zj{b=&-%X#%a$?Po9kX7WAGdw?n|0shD!#Z|UWIyl&+I(#UXEwc?k$`zrDH$sJ6vtpMb3ru2W!u#+|*k*k%9Z@qV@xx8*S!64`JCV zuIXVQRKn94^6X$%$(ALL+*zY9p14>Xc2nCjQjq0X+n#mIDzcllO;TDORcCB*&>>9K z$*61BX`j;6^0hpi`Sbp}DNGj8Of#5R;jr!C=BIZHiv=RrXFBZuytC8FD*I;2<0&7@ z*Hk;Wp~tnkl=gC!x*ukA>`V^VAuOmnI;MmW^#6~b`)%IJo>NZ`qETiV=Ji%j0YLE zzBp1{D3P6#rM-Dw_1+H?Y(La8NPPMww8(h5a7Kz~!>7J69MZ)FQ>=;&q~1^5v-ml17>{LmyV~u*vO=3R|1Yc9Zv^ zD$}N@MFq^(8o32=W!^VlSn#h~_~np?z7A{B=9ybFO78Kw96uj+GlY@j=TfE}6#@M- zpMH=^x0=Fobx+pUg2yxDSyUZE|Aqg5<^OZu*T9BEra+$tscR+<);D-M-t^vm{!3=T z-R~7m3F&EqJ&kkDJ0wr|J2_tGQGZ}GnV{##GF%S+7a`R&EEs@ebY-#k5i{`U3%aUB2lo;dJ+ zalie|Ymx`&|EXH9Ap7^s)UyH(k9IHUcrb^-W9#)h_v$V8`!4@l!?;)CTcGYbldViG zUt(@}FHF%-yD%?{=eKUPexXC^w~GB&!=n_YT$gf*3^#w7IOF|SL!G&sH?sbpzUpHx z&o+i_Ni8+&-u_{1I)6&x(z8oD-fnVqi%wMgn(i(2&#ZrW|Hk~iuWz3%*V(v)>2`}n zN!Y=fhtCg62+f%3p!U`C+P%nl-vj1R{cl?$gCzK5DCdcGyj(K1 z^Pc6Y3*kF%e7W^=*`LWG(c7+{VsN{;Kfy}kz|RzS6$i6M-;Hr@tl11RwmfqTp2q%Q z_t%ci>x?JAFAZDS(--B!wMUi1E!w;_%dn1VNfB>oty%M(3%0M^KWF`1Zrm2d^>c3e z5AAm8GNwJohO=WBJ=SfX-j>jJ@XE6U#j@_T9sa7$V z&q*)Y*y`iSGUwrj_V8z+YzK;OW~kpvoL5`=seyHSUfKJ1|BfhpPY_NxxP!k){zK39 z+w%oG;y=ETVLR4+fSGeA-<+8`(-%f}eoX9kD6Q2xus3$8e53K##`FaMdU+&)FnTkm>%pQzRpC&TWZ) z^9{SUlqU&0%}-4!I{a(PMz2dDoQuz88E*C2rEPL8&#bZj^zY^?Jbw-`i5;pd+w6YO z@^*le$CaI75C1P%JOAK1QK`in%Y-}nelsV`{8v0B?#9h|@&4~Y>#?@P`7vLUhz+h# zHxt~pRwgQKrjW#ebd?{>&W`C5Bu}4d+R>vsC)i?D+M>nj-)3smY%5VV_5JHqIc@sJ zgOdHbCpGx(RhM`5o3i4Dfy~1T>$R`^pT6wgwYGFabyIG~RqHMGDDE-Zl(u({-{#wGj6kCzVS znU)j!R$McvK60(yXaP?WtBl4Bp`}*)r?=TN=iPZeVX_+gnP>Yy+LX)?lZ#l_V?QtS z)t48FJhSADrf|JyJJ@@3)yb92jrrlzWPF6S2$=|r?)t*9>YXHmOTgyjFG|(ZGQRDa z6(zV(XUX-d1DZSSxGajcMJEf`8}B|=xP<-Sd8_X|9W!MvyP4d%u>Ee=J@+qjzfNgx zn!Tg_xMLBgVOzrd2!)S7V_vVx4`r+Ua`z8MX1d!2H%q_GXT`5KB-TE(ea@vs1&?QyzOlbB({%pq z)w@z{?pglZ61%lLsOC$Jn(W;j?|$0s{ASJAvgnrI?w7at^uo>=U1y(fe|DdKD*K$* zl8%D+rf>avm1}|zW9N&&CudFK)YOY+Oj**s@o`k`rjIt|XDX+y31bK`TpV@w`;D7R z1M8!1eNU13BK-Elij86YRgDUgQ=ZLK_)yAsZNc6bHm^4=jkQ@Gb$Mp!2eaG1Em{BG z`g5L9?#TJ8k9gnT{dC7YVAlVK_CLPvd2`s=U_-|1Qac_71C8e&Z=F_*k&Jv3+~HDk z!*{zUgS&$21M`1ni!Q%6JL-F!&*W`FTjs_|oDB=Y8Jv3lHm{W1-?XJrQB>a1&pA z%EU~n@eof}m!k3aic;&9wo8l_|9IN@eK)%#!;!?dt6b$)UYph4s1Wo({9oViV^s@R zD18shaCQ(r^y7D4aL1M0GNBbK58OLvDE1-YtCyIwnl;BQ-DB@}&0>^4Xg*cGlDSr% z@%_Sg{4>8)%1Jlpa7w+dact=MoYqx6YigbUEbY2{#y!pFJF7Jw+V2dW`k|wKLCWEm zn|U`eZ@3itt9aT{!<(TT|6a|Rrjf*Rg7>`g&v>rjbuaRdRP*UPR;qB>7_ntZ-$(0P zBDePhZ0|@mjku(6@oox7to^<6pU=B$)4UpZf0=O?wjSGBtr5?C=nY{%RU;Twh_7us5aY!>LvCJn9sMP5Zs{PfOb8oAoj^?0o)$ z``Kf;XX)(ogru0;eS%n%Z}6G#`9JfA*1}uAX zvU<+n1*#ey;m3`y-1dJevhr#a-|ZWzA7k0qKTVujdQEfBOAGav9salMH^~JH^e&pc zXv(vMBY)Z>`ZpPctJN{cXe|0TYi(jp9_y3p=jV3xiKmD}E|-2Z<5*7j`<&JiwpRJKW&y&l>e~< zGPmo*9iIF@<=9ee_G?|T6WdFMCcd{z|Gx46WBNPX{)W@~kBi?*zO(pYJUf2tto}`3 z+8U}d=B~f|?$SK1j)QfNt27Oor1X=mikaH(s-0H&o_yP~CA4YlmCaf+9KNK9nuJ<9 zZcTZkwxO6UjOU+-6i>(3NJG&*#}tq6W;%E^?Lt?vgMO)(Msd!mLz|Qjl-YYX$Ie&v zUd(j)+K1Smb%usTS$ii{#z~r}$4Z}Xc(Z@`u9}n;c7F~Y|K|Viq`g1;pLg%p@?PWC z-aPe7bZM{TikW@yD?UFvWBfeh(wjn~TMp0T%ie6bc})0?MOq-|1BQ-$h8k(7b*&{? z_UzKMe)BM3`-`i8uZ1{GYb<=}l~Dg>AGezJ+FL8M51lD~Th1`)#mBl0l0O>HDqM8! zxtkF4a@hmnHFnz=yg!=XQe@53x$4~}cU!xUsh1<<<(g#+Nu7a3*XH zG*|z-K(UPXlo(s~Rm0cS3rgo5w|wU}QH!J2Ofd;f3X}PcmhFD@tGD{rwZNcvndf8De_n|VI&Hs3pTX_w z(nBISukTFYwfSJ@XOX_@4fkg~1)2M@**|A(Q|8a)67f2%crD%FXxwG}i@#d$7HztF zt7!6>Yg^7Z0D2mAm*a{}HPTHwxBpSvl>>$IowjzP|p> zkmL6He$xNOwFVk7Qs1ZSQ@566N!Hsg9$j$m(*7NDgN-B(tg?xon)ztMt+%ps@4o)C zn0!o6C5k|T_~7SnRnr!_wIXw7G`W5g&Jn-ZTortpLwUT zWcuTk^S|5bu6uRrSjh#p&!sN4mt|Tt&UJ0mYu&)Fa4@dVaPD%KKmC!uhm*U)zw+Xc%_R+6w_5mcaxFcqW_ILE$)oxiGbOlmo<7-_ zc42Fu$}6GI^(J5IeJ^f5w}AN~=U)fed1uc}pIrN?b4CBDb=nIa{JK_qLu0w;*JB42 z9F(RX+&NR|PC=p!yJnqXd*PQ@w)^R7PLG$D>M!G%BYiE>c*RKvy_tMDwJDqb8HT4^ zkNQ+}>{Ws4iWKY6l&eD^&-^`gz&*F=6r<_1`Wrl}COn?*GKe%ZoPb_4@tJR+Ytq;o4R%uax}d zcjwmM(sQ=V=~{EqF7y4RbC3Tn5HlCP8}t1_*7|b_9|ER(&EA{3GcIm__V?M$yS{C| zA)U;{;G`lTdGpD}6i)`nIjIYLwrvd3bCj^rKfr8pe&XHU)Bn@|-(3Hsc%I+)+gsml ze16ua^uaukw~7voayoG4tc&xxOE!(i*jV2RJ>1NE{QVI}!O7`s zAGj48{itr_D%BI&(X#hWMQ-NegbdB3*=b!R&m0}@XJ5+bVv7vh^mvE7f$xNmK4yXc z=FH5PmbNl_0-xxNvZ>SO^3*Y1uRLep%*nddukFgW%?o1VkDT~i-F$1ufw$9oWR}N9 z8Nbf|Qx_M!)+?CfOW*34SoRrHr}TNhQl2pN`0f4G)$^BHYi4;V9(9`*#^$|IZP(e_ z$HF$f)3(2sHg6DFadkbP)5GmDhZHBJo!NPAfrc!D?eB(j%#uBt+1?2gt;~KT>h4@b_+ z=NLUpsqbTuk^SfXBFI$y#O}NGCEll$TN_%eGM*O4C7xZXkX`fc)-hw|2PgM}%OfVP z8l@u5#oqDfCtAAbC_SDqf0NCH8`F{vPHYhBKAC^we=GM2hpAsbNgAv?%)l4CRr$VgvqtBQ(+R91Qj(MZnii4ZtbZS|?`1D1sGGlN%aAQmCvfxO| zZ|h`397`7`AHAlsq{;Z%kK~LGiV@w{7Lz??LT?|N3VAVGc}U>yMS<(B9-Oer!8b$B?6=cvaQohne(-KVz)3r`42ac%N+H^0ADdYx1t+lx1Iwy!y!`j;`}o^wTxz>n$>u|=ZCc5apw zxW4~q-2JP+!`<=}USuxy@yjZlY`nhIh*7*o{9UEq=b5U6Cs@o^q3YYGkaZ_e0iH0$D__oJ%2a-i}=twUwQMcYx@(Qn+mi? z#UJIlTyqKe1zluTs=jJ(<9>V*GC4AQ<~K^Fsuq9hEc5#RDgX04jdST%$>Q(44cXX^6{t2$I^)ghVx)Yp`ew$( z_uMwguMY%1zFRRZu}<&xuFvO}MST0>+rO2+N|kxZ-^WkId8P`VIv3`-@a?r3zWbdY z->aT`nsbx($!!UHgjhJPrR1{&$mbZfFM0i7D|>r{*~YZ6pQjl4R&+P<@SJXEKhV4} zSJoewSMp{{YF_DQdb)5{$zw&O<9)|wwoA%ruVgO&{l!@GaW~)DhUUJ$ zbKNc;m+QlpU0Jh<#i%a1{>8%$Zt|s4@s~=ZHLr7-y$Fp8Tr_({!-8T)#@sz?m>w8E z?_>{G{CKu&>jMex3-U8p%4f;5PpJ}cz4mzuN8hH)q7tWnXa_8vJb&?R%k5E#Am@=7dFH!SYQ#SC^eKp3~;Wen@1- zg_i~2UWC1Wo;5dB!;#T9{<@n$SLxy$Ud?CAjJVjo{48D;I5|<7t?A~KJr~MtZ?Gs! z+*vMMvh1^g>_bD1U!LtL=Vo6M*{moMEqpm4GH?5X|I4@M{9n7bqHs6s|M;!bqd&+y zK5Cb*4P%P?VP$Evsik;V3Av*LHPZD#jQ)rG#e6*)`9%)FlcZ&#-L#<-}fF-Eh` z?bY7B;J{v^pRb;;+I#QJo@&?l{{l*2%_ueZJv4*3}!|@I0AReewO9 zcY8kd?6Q$#=Bw?iG-g{B;Vc=&vq8xyTJ-!LHUoo6yaJ6!4t;9;|8f4`eSc5Yf4%?Y zUqy8}yYEDvcghu&3l{HNdr@>s_U-96J#wbMK9Tyn*l+1fMTTqHYZsU_G%Z}^dcM-; z4O92kRcbc!8&uEMzSy&pXW^++QSW}gk(-=zknO;Bv7U3TZ;vuQQ#k#1!wb%T9A~ae zDyytq`TG2ZmB*O^D$61RmrYC$Wb`^$yY_p<+r2y;Ka5#Ym{d0AH`{6`UOlt#xva@L z<2j2@YH@Ac$ZfsDg7M#v@HNl%3U^LRmuhK~|6mj4e&@Y~KFa~!lRrF{bqcXD&+SzH?*wfxD`e5}W&fe&Tkifd67kZa&XTOIB-D1 zSB?9v>sxNS%?upBt{vU9+PJ-LRbwji_s45}FMP1PQho3Y5>X-*O?tRKQr%9#uA6n?BO6w2-^}yCZFb{^MW-X>pDo+BPau`^aoPO)-3hlHuP;}) zu;M}XjgVXOjm#_FGS_hK3*2#H*}`*So-=*BzRxw_4>>aZGLLiZ!p~QW{4Vd%4$9*Q z3Y~ps{V~V)(m=+M8`RD1H}Em^3p&r2hJ)~aedW%oU!EW z^x)WojZe$_BfdMHm6gz*YF=S$J6|z6Gi(3%*n~ya4`xWuU^?Nq@Qi}%J|*KtsbSSj z*;lk~yn7k4=v_$S0-4Z@f$t@c_#IG+%G~?^pnvYc|Gdrr^HZMLANgVT=ZAYv;xSvv zrpCb45hf|AJa^qvHJ7nD+lB64we<=shvZ|H_FPeGw%eWyWWI%EUpLGCpC0B@Ci88^ z?*;qzU;QDz)P8d=_d$ln3EbIpGOdeO^8fR+PI`Nh>%jYOjI&FmwtQodU^>CDq5JjW zG6oigQ1fP;PWQJhm#;WiUx`#WHtF4gXK~)qmX2+wR3~>n-u-6lH3JC-fv(oI&$mA- z5OOH8@y;-PGR5L{)3H$FZkq~!iNzfkoj44h{knbsXYud)fA;_4cb47Tw|Dbp=F^oT z3hyNxEcP#Y_b*sFNKJhATDO>QBG1$QiOsWSUM2kf$`!8zw=5MFoH2eDr+sLGCYykw z>c2}&r`G&6J*Vz0DXH;e`__8n+4>L4_TRg+vh{Kj&=Qd8{_#rI;yOpyfaHn)C)??Q;hX77MvwJ5jt`cG1%(y$925FT7i1%$@Ny zv3mQ~o%@b`ewJ(A#FVD7zMEUNEZebes>UCmup5PS_ZdD5Sh2P1{`k-Nd*%86(UJGQ z@Adz8)a={yTklWKx%@qQ^0%8}d`nHlSMwQdUH3?CVj;Wn$wD@UmBu#%Qf}@&#!~(N z)RCS;pO&4QRAah(TjV?k`3YOTY}|9>*&D_>?>=4$t(j|H^qw!c@wTzLW*(3D)cc0J zwkO@&Im1!8)LCGIe&{ca3kLg>x17}ZV0Q3!Z+uK-VyK?q$0=&;4jF$G*!iVp~pihWWXy(+t*3k!kbnTeXBSD(8Y;v#a}3#2 zmt{|3)_WzNf98r*`g#@qmYItd#(LV?J)-^8 zx;u{N`4U$obJ;b99`v!j+Tr+Cy;^Dhixb^RezuvbS=1^#EEzdhSKA$OEDCt86ukS$ z9J4i({Z`FAWO(I??iHzswJcoP0_vyv6+O7HMfC^A`rpcMktrtF!FI zZsr4ySu=Muz3uz{EZuLJ+>3~2ku9f8>t|+HAGjIKm(2Zd{~p$Vf`9gJS)Vua|84Q> zE15q&bf3TEgZ#6lk(@eZtdnP$8!WA|Oy0b2lJouDq4^n`V++{bJ?~wDWT{Rx zPWBY?N-TWOkUc%>{Lu$eJim&x*Xnp)xc1obY0)`FvFuIjZHx`lZtWEEc-&_E#(S;L zM8A(gy07lc{&9Ro?Zn2sl<$k94|G)?)NOK;z4>rQYci8&yN>3MxA%YA{yzWz^Z)l^ zKjv@yuUA(7f7`d~I+j_bewN+|3_*=kAN6OIB=5g_d!M?Q(0}fO{Ksd#E1p-(tCp~u zM^2*1)mgtkmSLLMDY2fO)pzHddl0)#p@p|v-a6rEnuAZh(oFeSKO5#rTr84jUh4=s z80?69B(HdB`qJ7o)k|XgyLWxt+>+fNBhGQ+gU8_olM7ewY~7&rwV5Y5%|_VZ+y&+X zzmw$N`ABAOogA#dR#3DtOZCK?PYEl1&rLiaanmwAv+3uT{A2IdB<(yJFd@yt|5(+D z17^`T%2xkooci|&i`M3?R?mMiH!f)1mM6i`d36p`z1HzFzh9@nTYr^nOaG)*C(f`t zAG{c~-Q^+MdP|SR&r466seRbY$i7b{x2oTNpWa*cY=VnCYs8W13r&JN)JUw;0TxnihVXb`v zf42R~E$XK;4g|gQJ}&p-LPJn@fWbk%Fa6QJ`D>1b^+>)ue(=*tt^V7p>wW&W*~;~v zoVg`5ZCRe6+WZrlwhLEJT~~hjmie3SX=cXXS=uyzb*D`K6L(AW=5LW|HinMM*-ts+ z7M%P1dL?9_*lXd=hc2tbt^C_=Ri}C#U)aPvm1Bz49vQc0Yu5Dl9?MydS!Cw^WUHCq zy-v*`;ko_ugX!FN%{aH8RBTSR_SqU`^6Dvv@r~~@-!?fPcyn7obk^UN&u5FATqpA` z_nzW4-!Ysun!mK6v+UJTzmA2Ch2im)SECyf6V=R|?`?hk!1e6!gtWbLRy!`)+N3LS z&2RZyo{dbG|6F6Ya$hV{dEw)led3QjmGf=xi2Rwxye9pfMFE#@s{I`vtvn+Ii@18d z_qnn4TYg&EZ>cog#9lQ&k_@CM!=+oY<##u&b@7akq?lOyLqQGY9b>*LUZ5+&wSy>+{^s zuw0{gHA{=XK5k$2?Y!M;twM*|{+RdMe)He=^e?meP}C9|%gi8Qb-g}Ik%!g)*E;U^ za}O?hJ*yTT>3%DKH$T5)R7(#NV7wmdtb&7&JOQAT^(N}uB#)l8=yltR+_y%+5Hr~gf( z<++-3+P2^*pEGh6_cxg`C4Zg&u{PPR`_=5;U{{mlq6bXxx~_kodn&=|Z2K3+KgW-E zK0f^WgzXIzIqM6KQOcY4?!MY))|&FAV4d-ahZT$OMQy8enp%}NN0KEhl~3(menDuDf?zU)(Phk^K;JVc&Ht)7ho} zxA^y6GFrKHF;7SJsijIj;%}unIo7T8Uijo>%25u1l+{*^d<(12 zm$CPyaf$@ALHk7Uy4It!t@uP+PS{?!zAUcftWTFV{WU_V)9h;;SvYJ*Ay~r`RNI zP1G@n|GjyWq?Om26)_9_r*d*$-4MK=QD*@+!<*9R^!6YBvU?n-zwIjAvDCBHVB
            U1 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 z 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

            8>tw@1iyu*Uc8Ez&kyp!c@o4V5 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:QzaSod5c~hV9B$!JS8LrFi)^ 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

            kacl-6; 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�r7i^QO03G7WTepe#X<8ZSJ=w>`dh2 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

            nL`e$hyI*WG%w-Ap&J)|>@oJF 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

            UT%RB*O`{ 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

            O2=C*JClFK8-L~n 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

            jr{X>-K$@`X;XB~@vO%$ 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

        • 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�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

        • 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

        Vf8qW%|Iej* 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 diff --git a/crates/zed/resources/app-icon-nightly@2x.png b/crates/zed/resources/app-icon-nightly@2x.png index f0d7292f949b2d40eb856ff78865dcb74d4e8d2b..e31eeb74f213e9aae7f349f9fea92f44ee0fb08b 100644 GIT binary patch literal 840256 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쵔XnZ_HoJnf1q?M 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

  • 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�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