From fb5b647992a17c18d592a09ff856d4eb75db22df Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Mon, 10 Jun 2024 19:12:47 -0400 Subject: [PATCH 01/98] Profile types --- src/stores/Profile.ts | 65 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 src/stores/Profile.ts diff --git a/src/stores/Profile.ts b/src/stores/Profile.ts new file mode 100644 index 0000000..81caa68 --- /dev/null +++ b/src/stores/Profile.ts @@ -0,0 +1,65 @@ +export type Profile = ApplicationProfile | SetlistProfile; + +interface ApplicationProfile { + type: "application", + uuid: string, + listOrder: number, + + // For applications, the current version is fetched directly from the repo's releases. + // This property represents the repo name from YARC-Official. + repoName: string, + + metadata: { + locales: { + [language: string]: { + name: string, + releaseName: string, + + description: string, + + iconUrl: string, + bannerBackUrl: string, + bannerFrontUrl?: string, + } + }, + + releaseDate: Date, + websiteUrl: string, + } +} + +interface SetlistProfile { + type: "setlist", + uuid: string, + listOrder: number, + + // For setlists, versions are stored on the disk directly. If the version specified on disk + // does not match that of the profile, the user will be prompted to update. + version: string, + // Downloads can come from anywhere, not just GitHub. Downloads may be split up, so this is + // an array. + downloads: string[], + + metadata: { + locales: { + [language: string]: { + name: string, + + description: string, + + iconUrl: string, + bannerBackUrl: string, + bannerFrontUrl?: string, + } + } + + releaseDate: Date, + websiteUrl: string, + + organizer: string, + credits: { + name: string, + url: string, + }[] + } +} From 91887b084c431b775a653a06d017c022c90e7601 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Mon, 10 Jun 2024 22:17:27 -0400 Subject: [PATCH 02/98] Updated content type --- src/stores/Profile.ts | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/src/stores/Profile.ts b/src/stores/Profile.ts index 81caa68..910dd14 100644 --- a/src/stores/Profile.ts +++ b/src/stores/Profile.ts @@ -1,13 +1,19 @@ export type Profile = ApplicationProfile | SetlistProfile; +interface ReleaseContent { + name: string, + platforms?: string[], + files: { + url: string, + type: "normal" | "zip" | "encrypted", + signature: string, + }[]; +} + interface ApplicationProfile { type: "application", uuid: string, - listOrder: number, - - // For applications, the current version is fetched directly from the repo's releases. - // This property represents the repo name from YARC-Official. - repoName: string, + version: string, metadata: { locales: { @@ -25,20 +31,21 @@ interface ApplicationProfile { releaseDate: Date, websiteUrl: string, + }, + + content: ReleaseContent[], + launchOptions: { + [platform: string]: { + executablePath: string, + arguments: string + } } } interface SetlistProfile { type: "setlist", uuid: string, - listOrder: number, - - // For setlists, versions are stored on the disk directly. If the version specified on disk - // does not match that of the profile, the user will be prompted to update. version: string, - // Downloads can come from anywhere, not just GitHub. Downloads may be split up, so this is - // an array. - downloads: string[], metadata: { locales: { @@ -61,5 +68,7 @@ interface SetlistProfile { name: string, url: string, }[] - } + }, + + content: ReleaseContent[], } From 06d3e2e5a00ca7c59d54916b0fca89a7ebf64b7e Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Sun, 16 Jun 2024 20:39:27 -0400 Subject: [PATCH 03/98] Remove a bunch of rust stuff related to profiles --- src-tauri/src/app_profile/mod.rs | 46 --- src-tauri/src/app_profile/official_setlist.rs | 106 ------ src-tauri/src/app_profile/yarg.rs | 170 --------- src-tauri/src/main.rs | 331 +++--------------- 4 files changed, 53 insertions(+), 600 deletions(-) delete mode 100644 src-tauri/src/app_profile/mod.rs delete mode 100644 src-tauri/src/app_profile/official_setlist.rs delete mode 100644 src-tauri/src/app_profile/yarg.rs diff --git a/src-tauri/src/app_profile/mod.rs b/src-tauri/src/app_profile/mod.rs deleted file mode 100644 index ce0ff97..0000000 --- a/src-tauri/src/app_profile/mod.rs +++ /dev/null @@ -1,46 +0,0 @@ -use tauri::AppHandle; -use async_trait::async_trait; - -pub mod yarg; -pub mod official_setlist; - -pub const YARG_PUB_KEY: &str = "untrusted comment: minisign public key C26EBBBEC4C1DB81 -RWSB28HEvrtuwvPn3pweVBodgVi/d+UH22xDsL3K8VBgeRqaIrDdTvps -"; - -#[derive(Clone, serde::Serialize)] -pub struct ProgressPayload { - pub state: String, - pub total: u64, - pub current: u64, -} - -#[async_trait] -pub trait AppProfile { - async fn download_and_install( - &self, - app: &AppHandle, - zip_urls: Vec, - sig_urls: Vec - ) -> Result<(), String>; - - fn install( - &self - ) -> Result<(), String>; - - fn uninstall( - &self - ) -> Result<(), String>; - - fn exists( - &self - ) -> bool; - - fn launch( - &self - ) -> Result<(), String>; - - fn reveal_folder( - &self - ) -> Result<(), String>; -} \ No newline at end of file diff --git a/src-tauri/src/app_profile/official_setlist.rs b/src-tauri/src/app_profile/official_setlist.rs deleted file mode 100644 index 487b821..0000000 --- a/src-tauri/src/app_profile/official_setlist.rs +++ /dev/null @@ -1,106 +0,0 @@ -use async_trait::async_trait; -use tauri::Manager; -use std::{path::{PathBuf, Path}, fs::{File, remove_file, read_to_string}, io::Write}; - -use crate::utils::*; - -use super::*; - -pub struct OfficialSetlistProfile { - pub root_folder: PathBuf, - pub temp_folder: PathBuf, - pub version: String, - pub profile: String -} - -#[async_trait] -impl AppProfile for OfficialSetlistProfile { - async fn download_and_install( - &self, - app: &tauri::AppHandle, - zip_urls: Vec, - _sig_urls: Vec - ) -> Result<(), String> { - let folder = self.root_folder.join(&self.profile); - - // Delete the old installation - clear_folder(&folder)?; - - // Download the zip(s) - for (index, zip_url) in zip_urls.iter().enumerate() { - // Download the current zip - let zip_path = &self.temp_folder.join(format!("setlist_{}.7z", index)); - download(Some(app), &zip_url, &zip_path).await?; - - // Emit the install - let _ = app.emit_all( - "progress_info", - ProgressPayload { - state: "installing".to_string(), - current: 0, - total: 0, - }, - ); - - // Extract the zip to the game directory - extract_setlist_part(&zip_path, &folder)?; - - // Delete zip - let _ = remove_file(zip_path); - } - - self.install()?; - - Ok(()) - } - - fn install( - &self - ) -> Result<(), String> { - let folder = self.root_folder.join(&self.profile); - - // Create a version.txt - let mut file = File::create(folder.join("version.txt")) - .map_err(|e| format!("Failed to create version file in `{:?}`.\n{:?}", folder, e))?; - file.write_all(&self.version.as_bytes()) - .map_err(|e| format!("Failed to write version file in `{:?}`.\n{:?}", folder, e))?; - - Ok(()) - } - - fn uninstall( - &self - ) -> Result<(), String> { - let folder = self.root_folder.join(&self.profile); - std::fs::remove_dir_all(folder) - .map_err(|e| format!("Failed to remove directory.\n{:?}", e)) - } - - fn exists( - &self - ) -> bool { - let path = self.root_folder.join(&self.profile); - if !Path::new(&path).exists() { - return false; - } - - let contents = match read_to_string(&path.join("version.txt")) { - Ok(contents) => contents, - _ => return false, - }; - - contents == self.version - } - - fn launch( - &self - ) -> Result<(), String> { - Err("Cannot launch the setlist!".to_string()) - } - - fn reveal_folder( - &self - ) -> Result<(), String> { - Err("Cannot reveal the setlist folder!".to_string()) - } -} \ No newline at end of file diff --git a/src-tauri/src/app_profile/yarg.rs b/src-tauri/src/app_profile/yarg.rs deleted file mode 100644 index 8386a35..0000000 --- a/src-tauri/src/app_profile/yarg.rs +++ /dev/null @@ -1,170 +0,0 @@ -use async_trait::async_trait; -use minisign::{PublicKeyBox, SignatureBox}; -use tauri::Manager; -use std::{path::{PathBuf, Path}, fs::{File, remove_file}, process::Command}; - -use crate::utils::*; - -use super::*; - -pub struct YARGAppProfile { - pub root_folder: PathBuf, - pub temp_folder: PathBuf, - pub version: String, - pub profile: String -} - -impl YARGAppProfile { - fn get_folder( - &self - ) -> PathBuf { - self.root_folder.join(&self.profile).join(&self.version) - } - - fn get_exec( - &self - ) -> Result { - let mut path = self.get_folder(); - - // Each OS has a different executable - path = match std::env::consts::OS.to_string().as_str() { - "windows" => path.join("YARG.exe"), - "linux" => { - // Stable uses "YARG.x86_64", and nightly uses "YARG". Look for both - let mut p = path.join("YARG.x86_64"); - if !p.exists() { - p = path.join("YARG"); - } - p - } - "macos" => path - .join("YARG.app") - .join("Contents") - .join("MacOS") - .join("YARG"), - _ => Err("Unknown platform for launch!")?, - }; - - Ok(path) - } -} - -#[async_trait] -impl AppProfile for YARGAppProfile { - async fn download_and_install( - &self, - app: &tauri::AppHandle, - zip_urls: Vec, - sig_urls: Vec - ) -> Result<(), String> { - let mut folder = self.root_folder.join(&self.profile); - - let zip_url = zip_urls.first().ok_or("Did not get any zip URLs.")?; - let sig_url = sig_urls.first(); - - // Delete the old installation - clear_folder(&folder)?; - - // Move into the version's folder - folder = folder.join(&self.version); - - // Download the zip - let zip_path = &self.temp_folder.join("update.zip"); - download(Some(app), &zip_url, &zip_path).await?; - - // Verify (if signature is provided) - if let Some(sig_url) = sig_url { - // Emit the verification - let _ = app.emit_all( - "progress_info", - ProgressPayload { - state: "verifying".to_string(), - current: 0, - total: 0, - }, - ); - - // Download sig file (don't pass app so it doesn't emit an update) - let sig_path = &self.temp_folder.join("update.sig"); - download(None, &sig_url, &sig_path).await?; - - // Convert public key - let pk_box = PublicKeyBox::from_string(YARG_PUB_KEY).unwrap(); - let pk = pk_box.into_public_key().unwrap(); - - // Create the signature box - let sig_box = SignatureBox::from_file(sig_path) - .map_err(|e| format!("Invalid signature file! Try reinstalling. If it keeps failing, let us know ASAP!\n{:?}", e))?; - - // Verify - let zip_file = File::open(zip_path) - .map_err(|e| format!("Failed to open zip while verifying.\n{:?}", e))?; - minisign::verify(&pk, &sig_box, zip_file, true, false, false) - .map_err(|_| "Failed to verify downloaded zip file! Try reinstalling. If it keeps failing, let us know ASAP!")?; - } - - // Emit the install (count extracting as installing) - let _ = app.emit_all( - "progress_info", - ProgressPayload { - state: "installing".to_string(), - current: 0, - total: 0, - }, - ); - - // Extract the zip to the game directory - extract(&zip_path, &folder)?; - - // Delete zip - let _ = remove_file(&zip_path); - - // Do the rest of the installation - self.install()?; - - Ok(()) - } - - fn install( - &self - ) -> Result<(), String> { - Ok(()) - } - - fn uninstall( - &self - ) -> Result<(), String> { - let folder = self.root_folder.join(&self.profile); - std::fs::remove_dir_all(folder) - .map_err(|e| format!("Failed to remove directory.\n{:?}", e)) - } - - fn exists( - &self - ) -> bool { - Path::new(&self.get_folder()).exists() - } - - fn launch( - &self - ) -> Result<(), String> { - let path = self.get_exec()?; - Command::new(&path) - .spawn() - .map_err(|e| format!("Failed to start YARG. Is it installed?\n{:?}", e))?; - Ok(()) - } - - fn reveal_folder( - &self - ) -> Result<(), String> { - if !self.exists() { - return Err("Cannot reveal something that doesn't exist!".to_string()); - } - - opener::reveal(self.get_folder()) - .map_err(|e| format!("Failed to reveal folder. Is it installed?\n{:?}", e))?; - - Ok(()) - } -} \ No newline at end of file diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index ba5dcb7..31d5528 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -1,266 +1,83 @@ // Prevents additional console window on Windows in release, DO NOT REMOVE!! #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] -mod utils; -mod app_profile; +use std::{fs, path::PathBuf}; -use app_profile::AppProfile; -use app_profile::official_setlist::OfficialSetlistProfile; -use app_profile::yarg::YARGAppProfile; use directories::BaseDirs; -use std::fs::{self, remove_file, File}; -use std::path::PathBuf; -use std::sync::RwLock; -use tauri::{AppHandle, Manager}; -use utils::clear_folder; +use tauri::Manager; use window_shadows::set_shadow; #[derive(Default, serde::Serialize, serde::Deserialize)] -pub struct Settings { - pub download_location: String, - pub initialized: bool, +pub struct ImportantDirs { + pub yarc_folder: String, + pub launcher_folder: String, + pub temp_folder: String, } -pub struct InnerState { - pub yarc_folder: PathBuf, - pub launcher_folder: PathBuf, - pub temp_folder: PathBuf, - pub yarg_folder: PathBuf, - pub setlist_folder: PathBuf, - - pub settings: Settings, +#[derive(Default, serde::Serialize, serde::Deserialize)] +pub struct CustomDirs { + pub yarg_folder: String, + pub setlist_folder: String, } -impl InnerState { - pub fn init(&mut self) -> Result<(), String> { - let dirs = BaseDirs::new().ok_or("Failed to get directories.")?; - - self.yarc_folder = PathBuf::from(dirs.data_local_dir()); - self.yarc_folder.push("YARC"); - - self.launcher_folder = PathBuf::from(&self.yarc_folder); - self.launcher_folder.push("Launcher"); - - self.temp_folder = PathBuf::from(&self.launcher_folder); - self.temp_folder.push("Temp"); - - // Create launcher directory (for the settings) - std::fs::create_dir_all(&self.launcher_folder) - .map_err(|e| format!("Failed to create launcher directory.\n{:?}", e))?; - - // Load settings - let settings_path = self.launcher_folder.join("settings.json"); - if settings_path.exists() { - // Get file - let settings_file = File::open(settings_path) - .map_err(|e| format!("Failed to open settings.json file.\n{:?}", e))?; - - // Convert from json and save to settings - let settings: Result = serde_json::from_reader(settings_file); - if let Ok(settings) = settings { - self.settings = settings; - } else { - self.create_new_settings_file()?; - } - } else { - self.create_new_settings_file()?; - } - - // Set the rest of the folder locations based on settings - self.set_download_locations()?; - - // Delete everything temp (just in case) - clear_folder(&self.temp_folder)?; - - Ok(()) - } - - fn set_download_locations(&mut self) -> Result<(), String> { - self.yarg_folder = PathBuf::from(&self.settings.download_location); - self.yarg_folder.push("YARG Installs"); - - self.setlist_folder = PathBuf::from(&self.settings.download_location); - self.setlist_folder.push("Setlists"); - - // Create the directories if they don't exist - std::fs::create_dir_all(&self.yarg_folder) - .map_err(|e| format!("Failed to create YARG directory.\n{:?}", e))?; - std::fs::create_dir_all(&self.setlist_folder) - .map_err(|e| format!("Failed to create setlist directory.\n{:?}", e))?; - - Ok(()) - } - - fn create_new_settings_file(&mut self) -> Result<(), String> { - // Create new settings - self.settings = Default::default(); - self.settings.download_location = self - .yarc_folder - .clone() - .into_os_string() - .into_string() - .unwrap(); - - // Then save - self.save_settings_file()?; - - Ok(()) - } - - pub fn save_settings_file(&mut self) -> Result<(), String> { - // Delete the old settings (if it exists) - let settings_path = self.launcher_folder.join("settings.json"); - let _ = remove_file(&settings_path); - - // Create settings file - let settings_file = File::create(settings_path) - .map_err(|e| format!("Failed to create settings file.\n{:?}", e))?; - - // Write to file - serde_json::to_writer(settings_file, &self.settings) - .map_err(|e| format!("Failed to write to settings file.\n{:?}", e))?; - - Ok(()) - } +fn path_to_string(p: PathBuf) -> Result { + Ok(p.into_os_string() + .into_string() + .map_err(|e| format!("Failed to convert path to string!\n{:?}", e))?) } -pub struct State(pub RwLock); - #[tauri::command(async)] -fn init(state: tauri::State) -> Result<(), String> { - let mut state_guard = state.0.write().unwrap(); - state_guard.init()?; +fn get_important_dirs() -> Result { + // Get the important directories - Ok(()) -} + let dirs = BaseDirs::new().ok_or("Failed to get base directories.")?; -#[tauri::command(async)] -fn is_initialized(state: tauri::State) -> Result { - let state_guard = state.0.read().unwrap(); - Ok(state_guard.settings.initialized) -} - -fn create_app_profile( - app_name: String, - state: &tauri::State, - version: String, - profile: String -) -> Result, String> { - let state_guard = state.0.read().unwrap(); - - Ok(match app_name.as_str() { - "yarg" => Box::new(YARGAppProfile { - root_folder: state_guard.yarg_folder.clone(), - temp_folder: state_guard.temp_folder.clone(), - version, - profile - }), - "official_setlist" => Box::new(OfficialSetlistProfile { - root_folder: state_guard.setlist_folder.clone(), - temp_folder: state_guard.temp_folder.clone(), - version, - profile - }), - _ => Err(format!("Unknown app profile `{}`.", app_name))? - }) -} - -#[tauri::command] -async fn download_and_install( - state: tauri::State<'_, State>, - app_handle: AppHandle, - app_name: String, - version: String, - profile: String, - zip_urls: Vec, - sig_urls: Vec -) -> Result<(), String> { - let app_profile = create_app_profile( - app_name, - &state, - version, - profile - )?; + let mut yarc_folder = PathBuf::from(dirs.data_local_dir()); + yarc_folder.push("YARC"); - let result = app_profile.download_and_install( - &app_handle, - zip_urls, - sig_urls - ); + let mut launcher_folder = PathBuf::from(&yarc_folder); + launcher_folder.push("Launcher"); - result.await?; + let mut temp_folder = PathBuf::from(&launcher_folder); + temp_folder.push("Temp"); - Ok(()) -} - -#[tauri::command(async)] -fn uninstall( - state: tauri::State, - app_name: String, - version: String, - profile: String -) -> Result<(), String> { - let app_profile = create_app_profile( - app_name, - &state, - version, - profile - )?; + // Create the directories if they don't exist - app_profile.uninstall()?; + std::fs::create_dir_all(&yarc_folder) + .map_err(|e| format!("Failed to create YARC directory.\n{:?}", e))?; + std::fs::create_dir_all(&launcher_folder) + .map_err(|e| format!("Failed to create launcher directory.\n{:?}", e))?; + std::fs::create_dir_all(&temp_folder) + .map_err(|e| format!("Failed to create temp directory.\n{:?}", e))?; - Ok(()) + return Ok(ImportantDirs { + yarc_folder: path_to_string(yarc_folder)?, + launcher_folder: path_to_string(launcher_folder)?, + temp_folder: path_to_string(temp_folder)?, + }); } #[tauri::command(async)] -fn exists( - state: tauri::State, - app_name: String, - version: String, - profile: String -) -> Result { - let app_profile = create_app_profile( - app_name, - &state, - version, - profile - )?; +fn get_custom_dirs(download_location: String) -> Result { + // Get the custom directories - Ok(app_profile.exists()) -} + let mut yarg_folder = PathBuf::from(&download_location); + yarg_folder.push("YARG Installs"); -#[tauri::command(async)] -fn launch( - state: tauri::State<'_, State>, - app_name: String, - version: String, - profile: String -) -> Result<(), String> { - let app_profile = create_app_profile( - app_name, - &state, - version, - profile - )?; + let mut setlist_folder = PathBuf::from(&download_location); + setlist_folder.push("Setlists"); - app_profile.launch() -} + // Create the directories if they don't exist -#[tauri::command(async)] -fn reveal_folder( - state: tauri::State<'_, State>, - app_name: String, - version: String, - profile: String -) -> Result<(), String> { - let app_profile = create_app_profile( - app_name, - &state, - version, - profile - )?; + std::fs::create_dir_all(&yarg_folder) + .map_err(|e| format!("Failed to create YARG directory.\n{:?}", e))?; + std::fs::create_dir_all(&setlist_folder) + .map_err(|e| format!("Failed to create setlist directory.\n{:?}", e))?; - app_profile.reveal_folder() + return Ok(CustomDirs { + yarg_folder: path_to_string(yarg_folder)?, + setlist_folder: path_to_string(setlist_folder)? + }); } #[tauri::command] @@ -276,60 +93,18 @@ fn is_dir_empty(path: String) -> bool { } } -#[tauri::command(async)] -async fn set_download_location( - state: tauri::State<'_, State>, - path: Option, -) -> Result<(), String> { - let mut state_guard = state.0.write().unwrap(); - - // If this is None, just use the default - if let Some(path) = path { - state_guard.settings.download_location = path.clone(); - } - - state_guard.settings.initialized = true; - - state_guard.set_download_locations()?; - state_guard.save_settings_file()?; - - Ok(()) -} - -#[tauri::command] -fn get_download_location(state: tauri::State<'_, State>) -> Result { - let state_guard = state.0.read().unwrap(); - Ok(state_guard.settings.download_location.clone()) -} - fn main() { tauri::Builder::default() .plugin(tauri_plugin_log::Builder::default().build()) - .manage(State(RwLock::new(InnerState { - yarc_folder: PathBuf::new(), - launcher_folder: PathBuf::new(), - temp_folder: PathBuf::new(), - yarg_folder: PathBuf::new(), - setlist_folder: PathBuf::new(), - settings: Default::default(), - }))) .invoke_handler(tauri::generate_handler![ - init, - is_initialized, - - download_and_install, - uninstall, - exists, - launch, - reveal_folder, + get_important_dirs, + get_custom_dirs, get_os, is_dir_empty, - - set_download_location, - get_download_location ]) .setup(|app| { + // Show the window's shadow let window = app.get_window("main").unwrap(); let _ = set_shadow(&window, true); Ok(()) From 92764d54d76de16937f5e98862bb426606a79209 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Sun, 16 Jun 2024 20:41:58 -0400 Subject: [PATCH 04/98] Comment out invoke to allow the launcher to load --- src/components/LoadingScreen/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/LoadingScreen/index.tsx b/src/components/LoadingScreen/index.tsx index 7cd9306..c985189 100644 --- a/src/components/LoadingScreen/index.tsx +++ b/src/components/LoadingScreen/index.tsx @@ -22,7 +22,7 @@ const LoadingScreen: React.FC = (props: Props) => { useEffect(() => { (async () => { try { - await invoke("init"); + // await invoke("init"); // Add a tiny bit of delay so the loading screen doesn't just instantly disappear await new Promise(r => setTimeout(r, 250)); @@ -64,4 +64,4 @@ const LoadingScreen: React.FC = (props: Props) => { ; }; -export default LoadingScreen; \ No newline at end of file +export default LoadingScreen; From 72af55358bf5825d5e0d0d461d339592cfaad64f Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Sun, 30 Jun 2024 15:43:10 -0400 Subject: [PATCH 05/98] Create a profile store --- src/components/LoadingScreen/index.tsx | 14 ++++++++++- src/main.tsx | 6 ++--- src/stores/ProfileStore.ts | 28 ++++++++++++++++++++++ src/stores/{Profile.ts => ProfileTypes.ts} | 0 4 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 src/stores/ProfileStore.ts rename src/stores/{Profile.ts => ProfileTypes.ts} (100%) diff --git a/src/components/LoadingScreen/index.tsx b/src/components/LoadingScreen/index.tsx index c985189..21dd668 100644 --- a/src/components/LoadingScreen/index.tsx +++ b/src/components/LoadingScreen/index.tsx @@ -4,6 +4,7 @@ import * as Progress from "@radix-ui/react-progress"; import { error as logError } from "tauri-plugin-log-api"; import { serializeError } from "serialize-error"; import { invoke } from "@tauri-apps/api/tauri"; +import { CustomDirs, ImportantDirs, useProfileStore } from "@app/stores/ProfileStore"; enum LoadingState { "LOADING", @@ -17,12 +18,23 @@ interface Props { const LoadingScreen: React.FC = (props: Props) => { const [loading, setLoading] = useState(LoadingState.LOADING); + const profileStore = useProfileStore(); // Load useEffect(() => { (async () => { try { - // await invoke("init"); + // Get the important and custom directories + const importantDirs = await invoke("get_important_dirs"); + const customDirs = await invoke("get_custom_dirs", { + downloadLocation: "F:/test/" + }); + + // Set the directories within the store + profileStore.setDirs(importantDirs as ImportantDirs, customDirs as CustomDirs); + + console.log(importantDirs); + console.log(customDirs); // Add a tiny bit of delay so the loading screen doesn't just instantly disappear await new Promise(r => setTimeout(r, 250)); diff --git a/src/main.tsx b/src/main.tsx index 1a85882..cf3d8e4 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -36,9 +36,9 @@ const App: React.FC = () => { // Show main screen return - - + + @@ -49,4 +49,4 @@ const App: React.FC = () => { ; }; -ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render(); \ No newline at end of file +ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render(); diff --git a/src/stores/ProfileStore.ts b/src/stores/ProfileStore.ts new file mode 100644 index 0000000..22bffd2 --- /dev/null +++ b/src/stores/ProfileStore.ts @@ -0,0 +1,28 @@ +import { create } from "zustand"; + +export interface ImportantDirs { + yarcFolder: string, + launcherFolder: string, + tempFolder: string, +} + +export interface CustomDirs { + yargFolder: string, + setlistFolder: string, +} + +interface ProfileStore { + importantDirs?: ImportantDirs, + customDirs?: CustomDirs, + + setDirs: (important: ImportantDirs, custom: CustomDirs) => void, +} + +export const useProfileStore = create()((set) => ({ + setDirs: (important, custom) => { + return set({ + importantDirs: important, + customDirs: custom + }); + } +})); diff --git a/src/stores/Profile.ts b/src/stores/ProfileTypes.ts similarity index 100% rename from src/stores/Profile.ts rename to src/stores/ProfileTypes.ts From e1c747d91102ef9d5ce046100a67bd2c69710fe4 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Mon, 1 Jul 2024 22:25:12 -0400 Subject: [PATCH 06/98] Install `tauri-settings` and add comments to tauri config --- package-lock.json | 788 ++++++++++-------- package.json | 1 + src-tauri/Cargo.lock | 97 ++- src-tauri/Cargo.toml | 9 +- .../{tauri.conf.json => tauri.conf.json5} | 28 +- 5 files changed, 529 insertions(+), 394 deletions(-) rename src-tauri/{tauri.conf.json => tauri.conf.json5} (78%) diff --git a/package-lock.json b/package-lock.json index 0254e17..017a240 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33,6 +33,7 @@ "serialize-error": "^11.0.3", "sort-array": "^4.1.5", "tauri-plugin-log-api": "github:tauri-apps/tauri-plugin-log#v1", + "tauri-settings": "^0.3.5", "uuid": "^9.0.1", "vite-plugin-top-level-await": "^1.4.1", "zustand": "^4.4.7" @@ -423,10 +424,25 @@ "node": ">=6.9.0" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/android-arm": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.9.tgz", - "integrity": "sha512-jkYjjq7SdsWuNI6b5quymW0oC83NN5FdRPuCbs9HZ02mfVdAP8B8eeqLSYU3gb6OJEaY5CQabtTFbqBf26H3GA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "cpu": [ "arm" ], @@ -439,9 +455,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.9.tgz", - "integrity": "sha512-q4cR+6ZD0938R19MyEW3jEsMzbb/1rulLXiNAJQADD/XYp7pT+rOS5JGxvpRW8dFDEfjW4wLgC/3FXIw4zYglQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "cpu": [ "arm64" ], @@ -454,9 +470,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.9.tgz", - "integrity": "sha512-KOqoPntWAH6ZxDwx1D6mRntIgZh9KodzgNOy5Ebt9ghzffOk9X2c1sPwtM9P+0eXbefnDhqYfkh5PLP5ULtWFA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "cpu": [ "x64" ], @@ -469,9 +485,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.9.tgz", - "integrity": "sha512-KBJ9S0AFyLVx2E5D8W0vExqRW01WqRtczUZ8NRu+Pi+87opZn5tL4Y0xT0mA4FtHctd0ZgwNoN639fUUGlNIWw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "cpu": [ "arm64" ], @@ -484,9 +500,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.9.tgz", - "integrity": "sha512-vE0VotmNTQaTdX0Q9dOHmMTao6ObjyPm58CHZr1UK7qpNleQyxlFlNCaHsHx6Uqv86VgPmR4o2wdNq3dP1qyDQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "cpu": [ "x64" ], @@ -499,9 +515,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.9.tgz", - "integrity": "sha512-uFQyd/o1IjiEk3rUHSwUKkqZwqdvuD8GevWF065eqgYfexcVkxh+IJgwTaGZVu59XczZGcN/YMh9uF1fWD8j1g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "cpu": [ "arm64" ], @@ -514,9 +530,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.9.tgz", - "integrity": "sha512-WMLgWAtkdTbTu1AWacY7uoj/YtHthgqrqhf1OaEWnZb7PQgpt8eaA/F3LkV0E6K/Lc0cUr/uaVP/49iE4M4asA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "cpu": [ "x64" ], @@ -529,9 +545,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.9.tgz", - "integrity": "sha512-C/ChPohUYoyUaqn1h17m/6yt6OB14hbXvT8EgM1ZWaiiTYz7nWZR0SYmMnB5BzQA4GXl3BgBO1l8MYqL/He3qw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "cpu": [ "arm" ], @@ -544,9 +560,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.9.tgz", - "integrity": "sha512-PiPblfe1BjK7WDAKR1Cr9O7VVPqVNpwFcPWgfn4xu0eMemzRp442hXyzF/fSwgrufI66FpHOEJk0yYdPInsmyQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "cpu": [ "arm64" ], @@ -559,9 +575,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.9.tgz", - "integrity": "sha512-f37i/0zE0MjDxijkPSQw1CO/7C27Eojqb+r3BbHVxMLkj8GCa78TrBZzvPyA/FNLUMzP3eyHCVkAopkKVja+6Q==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "cpu": [ "ia32" ], @@ -574,9 +590,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.9.tgz", - "integrity": "sha512-t6mN147pUIf3t6wUt3FeumoOTPfmv9Cc6DQlsVBpB7eCpLOqQDyWBP1ymXn1lDw4fNUSb/gBcKAmvTP49oIkaA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "cpu": [ "loong64" ], @@ -589,9 +605,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.9.tgz", - "integrity": "sha512-jg9fujJTNTQBuDXdmAg1eeJUL4Jds7BklOTkkH80ZgQIoCTdQrDaHYgbFZyeTq8zbY+axgptncko3v9p5hLZtw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "cpu": [ "mips64el" ], @@ -604,9 +620,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.9.tgz", - "integrity": "sha512-tkV0xUX0pUUgY4ha7z5BbDS85uI7ABw3V1d0RNTii7E9lbmV8Z37Pup2tsLV46SQWzjOeyDi1Q7Wx2+QM8WaCQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "cpu": [ "ppc64" ], @@ -619,9 +635,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.9.tgz", - "integrity": "sha512-DfLp8dj91cufgPZDXr9p3FoR++m3ZJ6uIXsXrIvJdOjXVREtXuQCjfMfvmc3LScAVmLjcfloyVtpn43D56JFHg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "cpu": [ "riscv64" ], @@ -634,9 +650,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.9.tgz", - "integrity": "sha512-zHbglfEdC88KMgCWpOl/zc6dDYJvWGLiUtmPRsr1OgCViu3z5GncvNVdf+6/56O2Ca8jUU+t1BW261V6kp8qdw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "cpu": [ "s390x" ], @@ -649,9 +665,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.9.tgz", - "integrity": "sha512-JUjpystGFFmNrEHQnIVG8hKwvA2DN5o7RqiO1CVX8EN/F/gkCjkUMgVn6hzScpwnJtl2mPR6I9XV1oW8k9O+0A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "cpu": [ "x64" ], @@ -664,9 +680,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.9.tgz", - "integrity": "sha512-GThgZPAwOBOsheA2RUlW5UeroRfESwMq/guy8uEe3wJlAOjpOXuSevLRd70NZ37ZrpO6RHGHgEHvPg1h3S1Jug==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "cpu": [ "x64" ], @@ -679,9 +695,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.9.tgz", - "integrity": "sha512-Ki6PlzppaFVbLnD8PtlVQfsYw4S9n3eQl87cqgeIw+O3sRr9IghpfSKY62mggdt1yCSZ8QWvTZ9jo9fjDSg9uw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "cpu": [ "x64" ], @@ -694,9 +710,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.9.tgz", - "integrity": "sha512-MLHj7k9hWh4y1ddkBpvRj2b9NCBhfgBt3VpWbHQnXRedVun/hC7sIyTGDGTfsGuXo4ebik2+3ShjcPbhtFwWDw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "cpu": [ "x64" ], @@ -709,9 +725,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.9.tgz", - "integrity": "sha512-GQoa6OrQ8G08guMFgeXPH7yE/8Dt0IfOGWJSfSH4uafwdC7rWwrfE6P9N8AtPGIjUzdo2+7bN8Xo3qC578olhg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "cpu": [ "arm64" ], @@ -724,9 +740,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.9.tgz", - "integrity": "sha512-UOozV7Ntykvr5tSOlGCrqU3NBr3d8JqPes0QWN2WOXfvkWVGRajC+Ym0/Wj88fUgecUCLDdJPDF0Nna2UK3Qtg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "cpu": [ "ia32" ], @@ -739,9 +755,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.9.tgz", - "integrity": "sha512-oxoQgglOP7RH6iasDrhY+R/3cHrfwIDvRlT4CGChflq6twk8iENeVvMJjmvBb94Ik1Z+93iGO27err7w6l54GQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "cpu": [ "x64" ], @@ -1749,9 +1765,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.0.tgz", - "integrity": "sha512-+1ge/xmaJpm1KVBuIH38Z94zj9fBD+hp+/5WLaHgyY8XLq1ibxk/zj6dTXaqM2cAbYKq8jYlhHd6k05If1W5xA==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", "cpu": [ "arm" ], @@ -1761,9 +1777,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.0.tgz", - "integrity": "sha512-im6hUEyQ7ZfoZdNvtwgEJvBWZYauC9KVKq1w58LG2Zfz6zMd8gRrbN+xCVoqA2hv/v6fm9lp5LFGJ3za8EQH3A==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", "cpu": [ "arm64" ], @@ -1773,9 +1789,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.0.tgz", - "integrity": "sha512-u7aTMskN6Dmg1lCT0QJ+tINRt+ntUrvVkhbPfFz4bCwRZvjItx2nJtwJnJRlKMMaQCHRjrNqHRDYvE4mBm3DlQ==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", "cpu": [ "arm64" ], @@ -1785,9 +1801,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.0.tgz", - "integrity": "sha512-8FvEl3w2ExmpcOmX5RJD0yqXcVSOqAJJUJ29Lca29Ik+3zPS1yFimr2fr5JSZ4Z5gt8/d7WqycpgkX9nocijSw==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", "cpu": [ "x64" ], @@ -1797,9 +1813,21 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.0.tgz", - "integrity": "sha512-lHoKYaRwd4gge+IpqJHCY+8Vc3hhdJfU6ukFnnrJasEBUvVlydP8PuwndbWfGkdgSvZhHfSEw6urrlBj0TSSfg==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", "cpu": [ "arm" ], @@ -1809,9 +1837,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.0.tgz", - "integrity": "sha512-JbEPfhndYeWHfOSeh4DOFvNXrj7ls9S/2omijVsao+LBPTPayT1uKcK3dHW3MwDJ7KO11t9m2cVTqXnTKpeaiw==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", "cpu": [ "arm64" ], @@ -1821,9 +1849,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.0.tgz", - "integrity": "sha512-ahqcSXLlcV2XUBM3/f/C6cRoh7NxYA/W7Yzuv4bDU1YscTFw7ay4LmD7l6OS8EMhTNvcrWGkEettL1Bhjf+B+w==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", "cpu": [ "arm64" ], @@ -1832,10 +1860,22 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.0.tgz", - "integrity": "sha512-uwvOYNtLw8gVtrExKhdFsYHA/kotURUmZYlinH2VcQxNCQJeJXnkmWgw2hI9Xgzhgu7J9QvWiq9TtTVwWMDa+w==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", "cpu": [ "riscv64" ], @@ -1844,10 +1884,22 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.0.tgz", - "integrity": "sha512-m6pkSwcZZD2LCFHZX/zW2aLIISyzWLU3hrLLzQKMI12+OLEzgruTovAxY5sCZJkipklaZqPy/2bEEBNjp+Y7xg==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", "cpu": [ "x64" ], @@ -1857,9 +1909,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.0.tgz", - "integrity": "sha512-VFAC1RDRSbU3iOF98X42KaVicAfKf0m0OvIu8dbnqhTe26Kh6Ym9JrDulz7Hbk7/9zGc41JkV02g+p3BivOdAg==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", "cpu": [ "x64" ], @@ -1869,9 +1921,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.0.tgz", - "integrity": "sha512-9jPgMvTKXARz4inw6jezMLA2ihDBvgIU9Ml01hjdVpOcMKyxFBJrn83KVQINnbeqDv0+HdO1c09hgZ8N0s820Q==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", "cpu": [ "arm64" ], @@ -1881,9 +1933,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.0.tgz", - "integrity": "sha512-WE4pT2kTXQN2bAv40Uog0AsV7/s9nT9HBWXAou8+++MBCnY51QS02KYtm6dQxxosKi1VIz/wZIrTQO5UP2EW+Q==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", "cpu": [ "ia32" ], @@ -1893,9 +1945,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.0.tgz", - "integrity": "sha512-aPP5Q5AqNGuT0tnuEkK/g4mnt3ZhheiXrDIiSVIHN9mcN21OyXDVbEMqmXPE7e2OplNLDkcvV+ZoGJa2ZImFgw==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", "cpu": [ "x64" ], @@ -2630,8 +2682,7 @@ "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" }, "node_modules/@types/json-schema": { "version": "7.0.15", @@ -3403,12 +3454,12 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -4241,9 +4292,9 @@ "dev": true }, "node_modules/esbuild": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.9.tgz", - "integrity": "sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" @@ -4252,28 +4303,29 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.19.9", - "@esbuild/android-arm64": "0.19.9", - "@esbuild/android-x64": "0.19.9", - "@esbuild/darwin-arm64": "0.19.9", - "@esbuild/darwin-x64": "0.19.9", - "@esbuild/freebsd-arm64": "0.19.9", - "@esbuild/freebsd-x64": "0.19.9", - "@esbuild/linux-arm": "0.19.9", - "@esbuild/linux-arm64": "0.19.9", - "@esbuild/linux-ia32": "0.19.9", - "@esbuild/linux-loong64": "0.19.9", - "@esbuild/linux-mips64el": "0.19.9", - "@esbuild/linux-ppc64": "0.19.9", - "@esbuild/linux-riscv64": "0.19.9", - "@esbuild/linux-s390x": "0.19.9", - "@esbuild/linux-x64": "0.19.9", - "@esbuild/netbsd-x64": "0.19.9", - "@esbuild/openbsd-x64": "0.19.9", - "@esbuild/sunos-x64": "0.19.9", - "@esbuild/win32-arm64": "0.19.9", - "@esbuild/win32-ia32": "0.19.9", - "@esbuild/win32-x64": "0.19.9" + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, "node_modules/escalade": { @@ -4831,9 +4883,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" @@ -6544,9 +6596,9 @@ } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -6582,9 +6634,9 @@ } }, "node_modules/postcss": { - "version": "8.4.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", - "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", + "version": "8.4.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", + "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", "funding": [ { "type": "opencollective", @@ -6601,8 +6653,8 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" }, "engines": { "node": "^10 || ^12 || >=14" @@ -7173,9 +7225,12 @@ } }, "node_modules/rollup": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.0.tgz", - "integrity": "sha512-bUHW/9N21z64gw8s6tP4c88P382Bq/L5uZDowHlHx6s/QWpjJXivIAbEw6LZthgSvlEizZBfLC4OAvWe7aoF7A==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dependencies": { + "@types/estree": "1.0.5" + }, "bin": { "rollup": "dist/bin/rollup" }, @@ -7184,19 +7239,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.9.0", - "@rollup/rollup-android-arm64": "4.9.0", - "@rollup/rollup-darwin-arm64": "4.9.0", - "@rollup/rollup-darwin-x64": "4.9.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.9.0", - "@rollup/rollup-linux-arm64-gnu": "4.9.0", - "@rollup/rollup-linux-arm64-musl": "4.9.0", - "@rollup/rollup-linux-riscv64-gnu": "4.9.0", - "@rollup/rollup-linux-x64-gnu": "4.9.0", - "@rollup/rollup-linux-x64-musl": "4.9.0", - "@rollup/rollup-win32-arm64-msvc": "4.9.0", - "@rollup/rollup-win32-ia32-msvc": "4.9.0", - "@rollup/rollup-win32-x64-msvc": "4.9.0", + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", "fsevents": "~2.3.2" } }, @@ -7453,9 +7511,9 @@ } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "engines": { "node": ">=0.10.0" } @@ -7676,6 +7734,11 @@ "url": "https://opencollective.com/tauri" } }, + "node_modules/tauri-settings": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/tauri-settings/-/tauri-settings-0.3.5.tgz", + "integrity": "sha512-07v+i6ig+z1eWHm9WYAvOpFPM7afeKZZmM0egIY0aLSleaZy33zEiKmefNKI+G8ymOAJX/ZYN1N1cM2lyGOiJw==" + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -8076,13 +8139,13 @@ } }, "node_modules/vite": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.10.tgz", - "integrity": "sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.2.tgz", + "integrity": "sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==", "dependencies": { - "esbuild": "^0.19.3", - "postcss": "^8.4.32", - "rollup": "^4.2.0" + "esbuild": "^0.21.3", + "postcss": "^8.4.38", + "rollup": "^4.13.0" }, "bin": { "vite": "bin/vite.js" @@ -8710,136 +8773,142 @@ "to-fast-properties": "^2.0.0" } }, + "@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "optional": true + }, "@esbuild/android-arm": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.9.tgz", - "integrity": "sha512-jkYjjq7SdsWuNI6b5quymW0oC83NN5FdRPuCbs9HZ02mfVdAP8B8eeqLSYU3gb6OJEaY5CQabtTFbqBf26H3GA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "optional": true }, "@esbuild/android-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.9.tgz", - "integrity": "sha512-q4cR+6ZD0938R19MyEW3jEsMzbb/1rulLXiNAJQADD/XYp7pT+rOS5JGxvpRW8dFDEfjW4wLgC/3FXIw4zYglQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "optional": true }, "@esbuild/android-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.9.tgz", - "integrity": "sha512-KOqoPntWAH6ZxDwx1D6mRntIgZh9KodzgNOy5Ebt9ghzffOk9X2c1sPwtM9P+0eXbefnDhqYfkh5PLP5ULtWFA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "optional": true }, "@esbuild/darwin-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.9.tgz", - "integrity": "sha512-KBJ9S0AFyLVx2E5D8W0vExqRW01WqRtczUZ8NRu+Pi+87opZn5tL4Y0xT0mA4FtHctd0ZgwNoN639fUUGlNIWw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "optional": true }, "@esbuild/darwin-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.9.tgz", - "integrity": "sha512-vE0VotmNTQaTdX0Q9dOHmMTao6ObjyPm58CHZr1UK7qpNleQyxlFlNCaHsHx6Uqv86VgPmR4o2wdNq3dP1qyDQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "optional": true }, "@esbuild/freebsd-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.9.tgz", - "integrity": "sha512-uFQyd/o1IjiEk3rUHSwUKkqZwqdvuD8GevWF065eqgYfexcVkxh+IJgwTaGZVu59XczZGcN/YMh9uF1fWD8j1g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "optional": true }, "@esbuild/freebsd-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.9.tgz", - "integrity": "sha512-WMLgWAtkdTbTu1AWacY7uoj/YtHthgqrqhf1OaEWnZb7PQgpt8eaA/F3LkV0E6K/Lc0cUr/uaVP/49iE4M4asA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "optional": true }, "@esbuild/linux-arm": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.9.tgz", - "integrity": "sha512-C/ChPohUYoyUaqn1h17m/6yt6OB14hbXvT8EgM1ZWaiiTYz7nWZR0SYmMnB5BzQA4GXl3BgBO1l8MYqL/He3qw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "optional": true }, "@esbuild/linux-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.9.tgz", - "integrity": "sha512-PiPblfe1BjK7WDAKR1Cr9O7VVPqVNpwFcPWgfn4xu0eMemzRp442hXyzF/fSwgrufI66FpHOEJk0yYdPInsmyQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "optional": true }, "@esbuild/linux-ia32": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.9.tgz", - "integrity": "sha512-f37i/0zE0MjDxijkPSQw1CO/7C27Eojqb+r3BbHVxMLkj8GCa78TrBZzvPyA/FNLUMzP3eyHCVkAopkKVja+6Q==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "optional": true }, "@esbuild/linux-loong64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.9.tgz", - "integrity": "sha512-t6mN147pUIf3t6wUt3FeumoOTPfmv9Cc6DQlsVBpB7eCpLOqQDyWBP1ymXn1lDw4fNUSb/gBcKAmvTP49oIkaA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "optional": true }, "@esbuild/linux-mips64el": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.9.tgz", - "integrity": "sha512-jg9fujJTNTQBuDXdmAg1eeJUL4Jds7BklOTkkH80ZgQIoCTdQrDaHYgbFZyeTq8zbY+axgptncko3v9p5hLZtw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "optional": true }, "@esbuild/linux-ppc64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.9.tgz", - "integrity": "sha512-tkV0xUX0pUUgY4ha7z5BbDS85uI7ABw3V1d0RNTii7E9lbmV8Z37Pup2tsLV46SQWzjOeyDi1Q7Wx2+QM8WaCQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "optional": true }, "@esbuild/linux-riscv64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.9.tgz", - "integrity": "sha512-DfLp8dj91cufgPZDXr9p3FoR++m3ZJ6uIXsXrIvJdOjXVREtXuQCjfMfvmc3LScAVmLjcfloyVtpn43D56JFHg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "optional": true }, "@esbuild/linux-s390x": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.9.tgz", - "integrity": "sha512-zHbglfEdC88KMgCWpOl/zc6dDYJvWGLiUtmPRsr1OgCViu3z5GncvNVdf+6/56O2Ca8jUU+t1BW261V6kp8qdw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "optional": true }, "@esbuild/linux-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.9.tgz", - "integrity": "sha512-JUjpystGFFmNrEHQnIVG8hKwvA2DN5o7RqiO1CVX8EN/F/gkCjkUMgVn6hzScpwnJtl2mPR6I9XV1oW8k9O+0A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "optional": true }, "@esbuild/netbsd-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.9.tgz", - "integrity": "sha512-GThgZPAwOBOsheA2RUlW5UeroRfESwMq/guy8uEe3wJlAOjpOXuSevLRd70NZ37ZrpO6RHGHgEHvPg1h3S1Jug==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "optional": true }, "@esbuild/openbsd-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.9.tgz", - "integrity": "sha512-Ki6PlzppaFVbLnD8PtlVQfsYw4S9n3eQl87cqgeIw+O3sRr9IghpfSKY62mggdt1yCSZ8QWvTZ9jo9fjDSg9uw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "optional": true }, "@esbuild/sunos-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.9.tgz", - "integrity": "sha512-MLHj7k9hWh4y1ddkBpvRj2b9NCBhfgBt3VpWbHQnXRedVun/hC7sIyTGDGTfsGuXo4ebik2+3ShjcPbhtFwWDw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "optional": true }, "@esbuild/win32-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.9.tgz", - "integrity": "sha512-GQoa6OrQ8G08guMFgeXPH7yE/8Dt0IfOGWJSfSH4uafwdC7rWwrfE6P9N8AtPGIjUzdo2+7bN8Xo3qC578olhg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "optional": true }, "@esbuild/win32-ia32": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.9.tgz", - "integrity": "sha512-UOozV7Ntykvr5tSOlGCrqU3NBr3d8JqPes0QWN2WOXfvkWVGRajC+Ym0/Wj88fUgecUCLDdJPDF0Nna2UK3Qtg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "optional": true }, "@esbuild/win32-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.9.tgz", - "integrity": "sha512-oxoQgglOP7RH6iasDrhY+R/3cHrfwIDvRlT4CGChflq6twk8iENeVvMJjmvBb94Ik1Z+93iGO27err7w6l54GQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "optional": true }, "@eslint-community/eslint-utils": { @@ -9403,81 +9472,99 @@ } }, "@rollup/rollup-android-arm-eabi": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.0.tgz", - "integrity": "sha512-+1ge/xmaJpm1KVBuIH38Z94zj9fBD+hp+/5WLaHgyY8XLq1ibxk/zj6dTXaqM2cAbYKq8jYlhHd6k05If1W5xA==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", "optional": true }, "@rollup/rollup-android-arm64": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.0.tgz", - "integrity": "sha512-im6hUEyQ7ZfoZdNvtwgEJvBWZYauC9KVKq1w58LG2Zfz6zMd8gRrbN+xCVoqA2hv/v6fm9lp5LFGJ3za8EQH3A==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", "optional": true }, "@rollup/rollup-darwin-arm64": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.0.tgz", - "integrity": "sha512-u7aTMskN6Dmg1lCT0QJ+tINRt+ntUrvVkhbPfFz4bCwRZvjItx2nJtwJnJRlKMMaQCHRjrNqHRDYvE4mBm3DlQ==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", "optional": true }, "@rollup/rollup-darwin-x64": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.0.tgz", - "integrity": "sha512-8FvEl3w2ExmpcOmX5RJD0yqXcVSOqAJJUJ29Lca29Ik+3zPS1yFimr2fr5JSZ4Z5gt8/d7WqycpgkX9nocijSw==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", "optional": true }, "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.0.tgz", - "integrity": "sha512-lHoKYaRwd4gge+IpqJHCY+8Vc3hhdJfU6ukFnnrJasEBUvVlydP8PuwndbWfGkdgSvZhHfSEw6urrlBj0TSSfg==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "optional": true + }, + "@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", "optional": true }, "@rollup/rollup-linux-arm64-gnu": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.0.tgz", - "integrity": "sha512-JbEPfhndYeWHfOSeh4DOFvNXrj7ls9S/2omijVsao+LBPTPayT1uKcK3dHW3MwDJ7KO11t9m2cVTqXnTKpeaiw==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", "optional": true }, "@rollup/rollup-linux-arm64-musl": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.0.tgz", - "integrity": "sha512-ahqcSXLlcV2XUBM3/f/C6cRoh7NxYA/W7Yzuv4bDU1YscTFw7ay4LmD7l6OS8EMhTNvcrWGkEettL1Bhjf+B+w==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "optional": true + }, + "@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", "optional": true }, "@rollup/rollup-linux-riscv64-gnu": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.0.tgz", - "integrity": "sha512-uwvOYNtLw8gVtrExKhdFsYHA/kotURUmZYlinH2VcQxNCQJeJXnkmWgw2hI9Xgzhgu7J9QvWiq9TtTVwWMDa+w==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "optional": true + }, + "@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", "optional": true }, "@rollup/rollup-linux-x64-gnu": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.0.tgz", - "integrity": "sha512-m6pkSwcZZD2LCFHZX/zW2aLIISyzWLU3hrLLzQKMI12+OLEzgruTovAxY5sCZJkipklaZqPy/2bEEBNjp+Y7xg==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", "optional": true }, "@rollup/rollup-linux-x64-musl": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.0.tgz", - "integrity": "sha512-VFAC1RDRSbU3iOF98X42KaVicAfKf0m0OvIu8dbnqhTe26Kh6Ym9JrDulz7Hbk7/9zGc41JkV02g+p3BivOdAg==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", "optional": true }, "@rollup/rollup-win32-arm64-msvc": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.0.tgz", - "integrity": "sha512-9jPgMvTKXARz4inw6jezMLA2ihDBvgIU9Ml01hjdVpOcMKyxFBJrn83KVQINnbeqDv0+HdO1c09hgZ8N0s820Q==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", "optional": true }, "@rollup/rollup-win32-ia32-msvc": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.0.tgz", - "integrity": "sha512-WE4pT2kTXQN2bAv40Uog0AsV7/s9nT9HBWXAou8+++MBCnY51QS02KYtm6dQxxosKi1VIz/wZIrTQO5UP2EW+Q==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", "optional": true }, "@rollup/rollup-win32-x64-msvc": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.0.tgz", - "integrity": "sha512-aPP5Q5AqNGuT0tnuEkK/g4mnt3ZhheiXrDIiSVIHN9mcN21OyXDVbEMqmXPE7e2OplNLDkcvV+ZoGJa2ZImFgw==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", "optional": true }, "@sindresorhus/merge-streams": { @@ -9859,8 +9946,7 @@ "@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" }, "@types/json-schema": { "version": "7.0.15", @@ -10405,12 +10491,12 @@ } }, "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "requires": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" } }, "brorand": { @@ -11064,32 +11150,33 @@ "dev": true }, "esbuild": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.9.tgz", - "integrity": "sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg==", - "requires": { - "@esbuild/android-arm": "0.19.9", - "@esbuild/android-arm64": "0.19.9", - "@esbuild/android-x64": "0.19.9", - "@esbuild/darwin-arm64": "0.19.9", - "@esbuild/darwin-x64": "0.19.9", - "@esbuild/freebsd-arm64": "0.19.9", - "@esbuild/freebsd-x64": "0.19.9", - "@esbuild/linux-arm": "0.19.9", - "@esbuild/linux-arm64": "0.19.9", - "@esbuild/linux-ia32": "0.19.9", - "@esbuild/linux-loong64": "0.19.9", - "@esbuild/linux-mips64el": "0.19.9", - "@esbuild/linux-ppc64": "0.19.9", - "@esbuild/linux-riscv64": "0.19.9", - "@esbuild/linux-s390x": "0.19.9", - "@esbuild/linux-x64": "0.19.9", - "@esbuild/netbsd-x64": "0.19.9", - "@esbuild/openbsd-x64": "0.19.9", - "@esbuild/sunos-x64": "0.19.9", - "@esbuild/win32-arm64": "0.19.9", - "@esbuild/win32-ia32": "0.19.9", - "@esbuild/win32-x64": "0.19.9" + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "requires": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, "escalade": { @@ -11515,9 +11602,9 @@ } }, "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "requires": { "to-regex-range": "^5.0.1" @@ -12774,9 +12861,9 @@ } }, "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" }, "picomatch": { "version": "2.3.1", @@ -12800,13 +12887,13 @@ } }, "postcss": { - "version": "8.4.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", - "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", + "version": "8.4.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", + "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", "requires": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" } }, "postcss-cli": { @@ -13179,23 +13266,27 @@ } }, "rollup": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.0.tgz", - "integrity": "sha512-bUHW/9N21z64gw8s6tP4c88P382Bq/L5uZDowHlHx6s/QWpjJXivIAbEw6LZthgSvlEizZBfLC4OAvWe7aoF7A==", - "requires": { - "@rollup/rollup-android-arm-eabi": "4.9.0", - "@rollup/rollup-android-arm64": "4.9.0", - "@rollup/rollup-darwin-arm64": "4.9.0", - "@rollup/rollup-darwin-x64": "4.9.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.9.0", - "@rollup/rollup-linux-arm64-gnu": "4.9.0", - "@rollup/rollup-linux-arm64-musl": "4.9.0", - "@rollup/rollup-linux-riscv64-gnu": "4.9.0", - "@rollup/rollup-linux-x64-gnu": "4.9.0", - "@rollup/rollup-linux-x64-musl": "4.9.0", - "@rollup/rollup-win32-arm64-msvc": "4.9.0", - "@rollup/rollup-win32-ia32-msvc": "4.9.0", - "@rollup/rollup-win32-x64-msvc": "4.9.0", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "requires": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "@types/estree": "1.0.5", "fsevents": "~2.3.2" } }, @@ -13372,9 +13463,9 @@ } }, "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==" }, "sprintf-js": { "version": "1.0.3", @@ -13539,6 +13630,11 @@ } } }, + "tauri-settings": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/tauri-settings/-/tauri-settings-0.3.5.tgz", + "integrity": "sha512-07v+i6ig+z1eWHm9WYAvOpFPM7afeKZZmM0egIY0aLSleaZy33zEiKmefNKI+G8ymOAJX/ZYN1N1cM2lyGOiJw==" + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -13811,14 +13907,14 @@ "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==" }, "vite": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.10.tgz", - "integrity": "sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.2.tgz", + "integrity": "sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==", "requires": { - "esbuild": "^0.19.3", + "esbuild": "^0.21.3", "fsevents": "~2.3.3", - "postcss": "^8.4.32", - "rollup": "^4.2.0" + "postcss": "^8.4.38", + "rollup": "^4.13.0" } }, "vite-plugin-node-polyfills": { diff --git a/package.json b/package.json index d8b1e88..24977db 100644 --- a/package.json +++ b/package.json @@ -64,6 +64,7 @@ "serialize-error": "^11.0.3", "sort-array": "^4.1.5", "tauri-plugin-log-api": "github:tauri-apps/tauri-plugin-log#v1", + "tauri-settings": "^0.3.5", "uuid": "^9.0.1", "vite-plugin-top-level-await": "^1.4.1", "zustand": "^4.4.7" diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 0232dc8..55df02a 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -2080,6 +2080,17 @@ dependencies = [ "thiserror", ] +[[package]] +name = "json5" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96b0db21af676c1ce64250b5f40f3ce2cf27e4e47cb91ed91eb6fe9350b430c1" +dependencies = [ + "pest", + "pest_derive", + "serde", +] + [[package]] name = "kuchikiki" version = "0.8.2" @@ -2484,16 +2495,6 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" -[[package]] -name = "open" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2078c0039e6a54a0c42c28faa984e115fb4c2d5bf2208f77d1961002df8576f8" -dependencies = [ - "pathdiff", - "windows-sys 0.42.0", -] - [[package]] name = "opener" version = "0.7.1" @@ -2633,12 +2634,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "pathdiff" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" - [[package]] name = "pbkdf2" version = "0.11.0" @@ -2667,6 +2662,51 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +[[package]] +name = "pest" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8" +dependencies = [ + "memchr", + "thiserror", + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26293c9193fbca7b1a3bf9b79dc1e388e927e6cacaa78b4a3ab705a1d3d41459" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ec22af7d3fb470a85dd2ca96b7c577a1eb4ef6f1683a9fe9a8c16e136c04687" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2", + "quote", + "syn 2.0.66", +] + +[[package]] +name = "pest_meta" +version = "2.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7a240022f37c361ec1878d646fc5b7d7c4d28d5946e1a80ad5a7a4f4ca0bdcd" +dependencies = [ + "once_cell", + "pest", + "sha2", +] + [[package]] name = "phf" version = "0.8.0" @@ -4024,12 +4064,10 @@ dependencies = [ "minisign-verify", "objc", "once_cell", - "open", "os_info", "percent-encoding", "rand 0.8.5", "raw-window-handle", - "regex", "reqwest 0.11.27", "rfd", "semver", @@ -4089,7 +4127,6 @@ dependencies = [ "png", "proc-macro2", "quote", - "regex", "semver", "serde", "serde_json", @@ -4185,6 +4222,7 @@ dependencies = [ "html5ever", "infer", "json-patch", + "json5", "kuchikiki", "log", "memchr", @@ -4546,6 +4584,12 @@ version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +[[package]] +name = "ucd-trie" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" + [[package]] name = "unicode-ident" version = "1.0.12" @@ -4978,21 +5022,6 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ee5e275231f07c6e240d14f34e1b635bf1faa1c76c57cfd59a5cdb9848e4278" -[[package]] -name = "windows-sys" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - [[package]] name = "windows-sys" version = "0.45.0" diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 8eca426..cc19adc 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -16,10 +16,15 @@ tauri-build = { version = "1.5.0", features = [] } log = "^0.4" tauri-plugin-log = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v1" } tauri = { version = "1.5.2", features = [ + "fs-read-file", + "fs-read-dir", + "fs-create-dir", + "fs-write-file", + "path-all", + "updater", + "config-json5", "os-all", "dialog-all", - "shell-open", - "updater", "window-close", "window-hide", "window-maximize", diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json5 similarity index 78% rename from src-tauri/tauri.conf.json rename to src-tauri/tauri.conf.json5 index 30f431b..a877f23 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json5 @@ -12,13 +12,8 @@ }, "tauri": { "allowlist": { - "all": false, - "shell": { - "all": false, - "open": true - }, "window": { - "all": false, + // Used for the essential functions of the title bar "close": true, "hide": true, "show": true, @@ -29,15 +24,24 @@ "startDragging": true }, "dialog": { - "all": true, - "ask": true, - "confirm": true, - "message": true, - "open": true, - "save": true + // Used primarily for the file picker dialog + "all": true }, "os": { + // Used to determine what OS the user is on "all": true + }, + "path": { + // Required for tauri-settings + "all": true + }, + "fs": { + // Required for tauri-settings + "createDir": true, + "readDir": true, + "readFile": true, + "writeFile": true, + "scope": [ "$APPCONFIG", "$APPCONFIG/*" ] } }, "bundle": { From 4262b9a511010f61a3933c0fcc0397d55f425df4 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Mon, 1 Jul 2024 23:17:58 -0400 Subject: [PATCH 07/98] Started settings --- src-tauri/src/main.rs | 2 ++ src/components/LoadingScreen/index.tsx | 20 ++++++++++++++------ src/settings.ts | 9 +++++++++ 3 files changed, 25 insertions(+), 6 deletions(-) create mode 100644 src/settings.ts diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 31d5528..771a454 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -8,6 +8,7 @@ use tauri::Manager; use window_shadows::set_shadow; #[derive(Default, serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "camelCase")] pub struct ImportantDirs { pub yarc_folder: String, pub launcher_folder: String, @@ -15,6 +16,7 @@ pub struct ImportantDirs { } #[derive(Default, serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "camelCase")] pub struct CustomDirs { pub yarg_folder: String, pub setlist_folder: String, diff --git a/src/components/LoadingScreen/index.tsx b/src/components/LoadingScreen/index.tsx index 21dd668..e8534c3 100644 --- a/src/components/LoadingScreen/index.tsx +++ b/src/components/LoadingScreen/index.tsx @@ -5,6 +5,7 @@ import { error as logError } from "tauri-plugin-log-api"; import { serializeError } from "serialize-error"; import { invoke } from "@tauri-apps/api/tauri"; import { CustomDirs, ImportantDirs, useProfileStore } from "@app/stores/ProfileStore"; +import { settingsManager } from "@app/settings"; enum LoadingState { "LOADING", @@ -24,14 +25,21 @@ const LoadingScreen: React.FC = (props: Props) => { useEffect(() => { (async () => { try { - // Get the important and custom directories - const importantDirs = await invoke("get_important_dirs"); - const customDirs = await invoke("get_custom_dirs", { - downloadLocation: "F:/test/" + await settingsManager.initialize(); + + const importantDirs: ImportantDirs = await invoke("get_important_dirs"); + + // If the download location is empty, set the default one + let downloadLocation = settingsManager.getCache("downloadLocation"); + if (downloadLocation === "") { + downloadLocation = importantDirs.yarcFolder; + } + + const customDirs: CustomDirs = await invoke("get_custom_dirs", { + downloadLocation: downloadLocation }); - // Set the directories within the store - profileStore.setDirs(importantDirs as ImportantDirs, customDirs as CustomDirs); + profileStore.setDirs(importantDirs, customDirs); console.log(importantDirs); console.log(customDirs); diff --git a/src/settings.ts b/src/settings.ts new file mode 100644 index 0000000..cee0c04 --- /dev/null +++ b/src/settings.ts @@ -0,0 +1,9 @@ +import { SettingsManager } from "tauri-settings"; + +export interface Settings { + downloadLocation: string; +} + +export const settingsManager = new SettingsManager({ + downloadLocation: "" +}); From 9074364b3131819d880ab92ba9906b0b2c8d49da Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Tue, 2 Jul 2024 18:02:12 -0400 Subject: [PATCH 08/98] Started onboarding screen --- src/components/LoadingScreen/index.tsx | 28 ++++++++++--------- .../Onboarding/Onboarding.module.css | 9 ++++++ src/components/Onboarding/index.tsx | 14 ++++++++++ src/main.tsx | 8 +++++- src/routes/index.tsx | 8 +----- src/routes/root.tsx | 8 ++---- src/settings.ts | 2 ++ 7 files changed, 51 insertions(+), 26 deletions(-) create mode 100644 src/components/Onboarding/Onboarding.module.css create mode 100644 src/components/Onboarding/index.tsx diff --git a/src/components/LoadingScreen/index.tsx b/src/components/LoadingScreen/index.tsx index e8534c3..fe9aa2f 100644 --- a/src/components/LoadingScreen/index.tsx +++ b/src/components/LoadingScreen/index.tsx @@ -15,6 +15,7 @@ enum LoadingState { interface Props { setError: React.Dispatch; + setOnboarding: React.Dispatch; } const LoadingScreen: React.FC = (props: Props) => { @@ -27,22 +28,23 @@ const LoadingScreen: React.FC = (props: Props) => { try { await settingsManager.initialize(); - const importantDirs: ImportantDirs = await invoke("get_important_dirs"); + if (!settingsManager.getCache("onboardingCompleted")) { + props.setOnboarding(true); + } else { + const importantDirs: ImportantDirs = await invoke("get_important_dirs"); - // If the download location is empty, set the default one - let downloadLocation = settingsManager.getCache("downloadLocation"); - if (downloadLocation === "") { - downloadLocation = importantDirs.yarcFolder; - } - - const customDirs: CustomDirs = await invoke("get_custom_dirs", { - downloadLocation: downloadLocation - }); + // If the download location is empty, set the default one + let downloadLocation = settingsManager.getCache("downloadLocation"); + if (downloadLocation === "") { + downloadLocation = importantDirs.yarcFolder; + } - profileStore.setDirs(importantDirs, customDirs); + const customDirs: CustomDirs = await invoke("get_custom_dirs", { + downloadLocation: downloadLocation + }); - console.log(importantDirs); - console.log(customDirs); + profileStore.setDirs(importantDirs, customDirs); + } // Add a tiny bit of delay so the loading screen doesn't just instantly disappear await new Promise(r => setTimeout(r, 250)); diff --git a/src/components/Onboarding/Onboarding.module.css b/src/components/Onboarding/Onboarding.module.css new file mode 100644 index 0000000..dd8cb39 --- /dev/null +++ b/src/components/Onboarding/Onboarding.module.css @@ -0,0 +1,9 @@ +.container { + position: fixed; + inset: 0; + top: 30px; + + background: var(--sideBar_background); + + z-index: 9999; +} diff --git a/src/components/Onboarding/index.tsx b/src/components/Onboarding/index.tsx new file mode 100644 index 0000000..8d01587 --- /dev/null +++ b/src/components/Onboarding/index.tsx @@ -0,0 +1,14 @@ +import styles from "./Onboarding.module.css"; + +interface Props { + setOnboarding: React.Dispatch; +} + +const Onboarding: React.FC = (props: Props) => { + return
+ Here is where onboarding will happen! +
; +}; + +export default Onboarding; + diff --git a/src/main.tsx b/src/main.tsx index cf3d8e4..7002840 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -12,6 +12,7 @@ import { ErrorScreen, onError } from "./routes/ErrorScreen"; import { error as logError } from "tauri-plugin-log-api"; import { serializeError } from "serialize-error"; import LoadingScreen from "./components/LoadingScreen"; +import Onboarding from "./components/Onboarding"; window.addEventListener("error", event => { logError(JSON.stringify(serializeError(event))); @@ -19,6 +20,7 @@ window.addEventListener("error", event => { const App: React.FC = () => { const [error, setError] = useState(null); + const [onboarding, setOnboarding] = useState(false); // Show error screen if (error) { @@ -37,11 +39,15 @@ const App: React.FC = () => { // Show main screen return - + + {onboarding && + + } + diff --git a/src/routes/index.tsx b/src/routes/index.tsx index 0e9551e..dc04ee9 100644 --- a/src/routes/index.tsx +++ b/src/routes/index.tsx @@ -18,32 +18,26 @@ const Router = createBrowserRouter([ path: "/", element: }, - { path: "/settings", element: }, - { path: "/queue", element: }, - { path: "/yarg/stable", element: }, - { path: "/yarg/nightly", element: }, - { path: "/setlist/official", element: }, - { path: "/news/:md", element: @@ -52,4 +46,4 @@ const Router = createBrowserRouter([ }, ]); -export default Router; \ No newline at end of file +export default Router; diff --git a/src/routes/root.tsx b/src/routes/root.tsx index d1f363a..52f5fa2 100644 --- a/src/routes/root.tsx +++ b/src/routes/root.tsx @@ -4,14 +4,12 @@ import Sidebar from "@app/components/Sidebar"; import { Outlet } from "react-router-dom"; const RootLayout: React.FC = () => { - return (<> - + return <>
- - ); + ; }; -export default RootLayout; \ No newline at end of file +export default RootLayout; diff --git a/src/settings.ts b/src/settings.ts index cee0c04..ac57c66 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -1,9 +1,11 @@ import { SettingsManager } from "tauri-settings"; export interface Settings { + onboardingCompleted: boolean; downloadLocation: string; } export const settingsManager = new SettingsManager({ + onboardingCompleted: false, downloadLocation: "" }); From 6b7bbde81aaadaa277d939021a4f41b9c8305757 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Wed, 3 Jul 2024 23:30:02 -0400 Subject: [PATCH 09/98] Finished onboarding screen (no styles though lol) --- src/components/LoadingScreen/index.tsx | 6 ++- .../Onboarding/Onboarding.module.css | 1 + src/components/Onboarding/index.tsx | 53 ++++++++++++++++++- src/stores/ProfileStore.ts | 2 +- 4 files changed, 58 insertions(+), 4 deletions(-) diff --git a/src/components/LoadingScreen/index.tsx b/src/components/LoadingScreen/index.tsx index fe9aa2f..98fb1c9 100644 --- a/src/components/LoadingScreen/index.tsx +++ b/src/components/LoadingScreen/index.tsx @@ -28,11 +28,13 @@ const LoadingScreen: React.FC = (props: Props) => { try { await settingsManager.initialize(); + const importantDirs: ImportantDirs = await invoke("get_important_dirs"); + if (!settingsManager.getCache("onboardingCompleted")) { + profileStore.setDirs(importantDirs); + props.setOnboarding(true); } else { - const importantDirs: ImportantDirs = await invoke("get_important_dirs"); - // If the download location is empty, set the default one let downloadLocation = settingsManager.getCache("downloadLocation"); if (downloadLocation === "") { diff --git a/src/components/Onboarding/Onboarding.module.css b/src/components/Onboarding/Onboarding.module.css index dd8cb39..2cfc266 100644 --- a/src/components/Onboarding/Onboarding.module.css +++ b/src/components/Onboarding/Onboarding.module.css @@ -4,6 +4,7 @@ top: 30px; background: var(--sideBar_background); + color: white; z-index: 9999; } diff --git a/src/components/Onboarding/index.tsx b/src/components/Onboarding/index.tsx index 8d01587..f8ea460 100644 --- a/src/components/Onboarding/index.tsx +++ b/src/components/Onboarding/index.tsx @@ -1,12 +1,63 @@ +import { useState } from "react"; import styles from "./Onboarding.module.css"; +import { useProfileStore } from "@app/stores/ProfileStore"; +import { open } from "@tauri-apps/api/dialog"; +import { invoke } from "@tauri-apps/api"; +import { settingsManager } from "@app/settings"; interface Props { setOnboarding: React.Dispatch; } const Onboarding: React.FC = (props: Props) => { + const profileStore = useProfileStore(); + + const defaultDownload = profileStore.importantDirs?.yarcFolder; + if (defaultDownload === undefined) { + throw new Error("The default installation path was not found!"); + } + + const [downloadLocation, setDownloadLocation] = useState(defaultDownload); + const [downloadEmpty, setDownloadEmpty] = useState(true); + + async function askForFolder() { + const select = await open({ + directory: true + }); + + if (typeof select === "string") { + const path: string = select; + const empty: boolean = await invoke("is_dir_empty", { path: path }); + + setDownloadLocation(path); + setDownloadEmpty(empty); + } + } + + async function finish() { + settingsManager.setCache("downloadLocation", downloadLocation); + settingsManager.setCache("onboardingCompleted", true); + await settingsManager.syncCache(); + + props.setOnboarding(false); + } + return
- Here is where onboarding will happen! +
+ Pick an installation folder: +
+ + {!downloadEmpty && +
+ Install path is not empty! +
+ } +
+
; }; diff --git a/src/stores/ProfileStore.ts b/src/stores/ProfileStore.ts index 22bffd2..e1f4030 100644 --- a/src/stores/ProfileStore.ts +++ b/src/stores/ProfileStore.ts @@ -15,7 +15,7 @@ interface ProfileStore { importantDirs?: ImportantDirs, customDirs?: CustomDirs, - setDirs: (important: ImportantDirs, custom: CustomDirs) => void, + setDirs: (important: ImportantDirs, custom?: CustomDirs) => void, } export const useProfileStore = create()((set) => ({ From 61ed723ccf85e6d83d73ebcbb13967e977321d6a Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Sat, 6 Jul 2024 15:56:19 -0400 Subject: [PATCH 10/98] Make sure the directories are always properly set --- src/components/LoadingScreen/index.tsx | 21 ++++-------------- src/components/Onboarding/index.tsx | 1 + src/stores/ProfileStore.ts | 30 ++++++++++++++++++++------ 3 files changed, 29 insertions(+), 23 deletions(-) diff --git a/src/components/LoadingScreen/index.tsx b/src/components/LoadingScreen/index.tsx index 98fb1c9..db19a54 100644 --- a/src/components/LoadingScreen/index.tsx +++ b/src/components/LoadingScreen/index.tsx @@ -3,8 +3,7 @@ import styles from "./LoadingScreen.module.css"; import * as Progress from "@radix-ui/react-progress"; import { error as logError } from "tauri-plugin-log-api"; import { serializeError } from "serialize-error"; -import { invoke } from "@tauri-apps/api/tauri"; -import { CustomDirs, ImportantDirs, useProfileStore } from "@app/stores/ProfileStore"; +import { useProfileStore } from "@app/stores/ProfileStore"; import { settingsManager } from "@app/settings"; enum LoadingState { @@ -28,24 +27,12 @@ const LoadingScreen: React.FC = (props: Props) => { try { await settingsManager.initialize(); - const importantDirs: ImportantDirs = await invoke("get_important_dirs"); - if (!settingsManager.getCache("onboardingCompleted")) { - profileStore.setDirs(importantDirs); - + profileStore.setDirs(); props.setOnboarding(true); } else { - // If the download location is empty, set the default one - let downloadLocation = settingsManager.getCache("downloadLocation"); - if (downloadLocation === "") { - downloadLocation = importantDirs.yarcFolder; - } - - const customDirs: CustomDirs = await invoke("get_custom_dirs", { - downloadLocation: downloadLocation - }); - - profileStore.setDirs(importantDirs, customDirs); + const downloadLocation = settingsManager.getCache("downloadLocation"); + profileStore.setDirs(downloadLocation); } // Add a tiny bit of delay so the loading screen doesn't just instantly disappear diff --git a/src/components/Onboarding/index.tsx b/src/components/Onboarding/index.tsx index f8ea460..c8c5a62 100644 --- a/src/components/Onboarding/index.tsx +++ b/src/components/Onboarding/index.tsx @@ -39,6 +39,7 @@ const Onboarding: React.FC = (props: Props) => { settingsManager.setCache("onboardingCompleted", true); await settingsManager.syncCache(); + profileStore.setDirs(); props.setOnboarding(false); } diff --git a/src/stores/ProfileStore.ts b/src/stores/ProfileStore.ts index e1f4030..b08855a 100644 --- a/src/stores/ProfileStore.ts +++ b/src/stores/ProfileStore.ts @@ -1,3 +1,4 @@ +import { invoke } from "@tauri-apps/api"; import { create } from "zustand"; export interface ImportantDirs { @@ -15,14 +16,31 @@ interface ProfileStore { importantDirs?: ImportantDirs, customDirs?: CustomDirs, - setDirs: (important: ImportantDirs, custom?: CustomDirs) => void, + setDirs: (downloadLocation?: string) => Promise, } export const useProfileStore = create()((set) => ({ - setDirs: (important, custom) => { - return set({ - importantDirs: important, - customDirs: custom - }); + setDirs: async (downloadLocation) => { + const importantDirs: ImportantDirs = await invoke("get_important_dirs"); + + if (downloadLocation === undefined) { + return set({ + importantDirs: importantDirs + }); + } else { + // If the download location is empty for whatever reason, just set it to the default one + if (downloadLocation === "") { + downloadLocation = importantDirs.yarcFolder; + } + + const customDirs: CustomDirs = await invoke("get_custom_dirs", { + downloadLocation: downloadLocation + }); + + return set({ + importantDirs: importantDirs, + customDirs: customDirs + }); + } } })); From eda626daba94ceed0621099e75d501adc649078e Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Sat, 6 Jul 2024 16:10:22 -0400 Subject: [PATCH 11/98] Put it a placeholder profile --- src/stores/ProfileStore.ts | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/stores/ProfileStore.ts b/src/stores/ProfileStore.ts index b08855a..214d7c7 100644 --- a/src/stores/ProfileStore.ts +++ b/src/stores/ProfileStore.ts @@ -1,5 +1,6 @@ import { invoke } from "@tauri-apps/api"; import { create } from "zustand"; +import { Profile } from "./ProfileTypes"; export interface ImportantDirs { yarcFolder: string, @@ -16,10 +17,38 @@ interface ProfileStore { importantDirs?: ImportantDirs, customDirs?: CustomDirs, + profiles: Profile[], + setDirs: (downloadLocation?: string) => Promise, } export const useProfileStore = create()((set) => ({ + profiles: [ + { + type: "application", + uuid: "2d78800c-1397-496a-83c1-50759607999a", + version: "v0.12.4", + + metadata: { + locales: { + "en-US": { + name: "YARG", + releaseName: "Stable", + + description: "This is the stable verison of YARG", + + iconUrl: "", + bannerBackUrl: "" + } + }, + releaseDate: new Date(), + websiteUrl: "https://yarg.in/" + }, + + content: [], + launchOptions: {} + } + ], setDirs: async (downloadLocation) => { const importantDirs: ImportantDirs = await invoke("get_important_dirs"); From dcab01255e59a4e52a46df4a89c194b804422251 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Mon, 8 Jul 2024 18:33:08 -0400 Subject: [PATCH 12/98] App profile pages --- src/components/Sidebar/Versions/List.tsx | 23 +++++++++++++---------- src/components/Sidebar/index.tsx | 4 ++-- src/routes/AppProfile/index.tsx | 23 +++++++++++++++++++++++ src/routes/index.tsx | 13 +++---------- src/stores/ProfileStore.ts | 6 +++++- 5 files changed, 46 insertions(+), 23 deletions(-) create mode 100644 src/routes/AppProfile/index.tsx diff --git a/src/components/Sidebar/Versions/List.tsx b/src/components/Sidebar/Versions/List.tsx index 9c73a66..fd9986b 100644 --- a/src/components/Sidebar/Versions/List.tsx +++ b/src/components/Sidebar/Versions/List.tsx @@ -1,21 +1,24 @@ -import YARGVersion from "./YARG"; import styles from "./Versions.module.css"; -import SetlistVersion from "./Setlist"; import VersionSeparator from "./Separator"; import { AddIcon } from "@app/assets/Icons"; +import { useProfileStore } from "@app/stores/ProfileStore"; +import { NavLink } from "react-router-dom"; + +const ProfilesList: React.FC = () => { + const profileStore = useProfileStore(); -const VersionsList: React.FC = () => { return
- - - - - - + { + profileStore.profiles.filter(i => i.type === "application").map(i => + + {i.metadata.locales["en-US"].name} ({i.version}) + + ) + }
; }; -export default VersionsList; \ No newline at end of file +export default ProfilesList; diff --git a/src/components/Sidebar/index.tsx b/src/components/Sidebar/index.tsx index 6d6c54f..8926104 100644 --- a/src/components/Sidebar/index.tsx +++ b/src/components/Sidebar/index.tsx @@ -2,7 +2,7 @@ import styles from "./Sidebar.module.css"; import { DiscordIcon, TwitterIcon, GithubIcon, HomeIcon, QueueIcon } from "@app/assets/Icons"; import SidebarMenuButton from "./SidebarMenuButton"; import { NavLink } from "react-router-dom"; -import VersionsList from "./Versions/List"; +import ProfilesList from "./Versions/List"; import { useEffect, useState } from "react"; import { getVersion } from "@tauri-apps/api/app"; import QueueStore from "@app/tasks/queue"; @@ -32,7 +32,7 @@ const Sidebar: React.FC = () => { - +
v{launcherVersion}
diff --git a/src/routes/AppProfile/index.tsx b/src/routes/AppProfile/index.tsx new file mode 100644 index 0000000..5be6a93 --- /dev/null +++ b/src/routes/AppProfile/index.tsx @@ -0,0 +1,23 @@ +import { useParams } from "react-router-dom"; +import { useProfileStore } from "@app/stores/ProfileStore"; + +function AppProfile() { + const { uuid } = useParams(); + if (!uuid) { + return <>; + } + + const profileStore = useProfileStore(); + const profile = profileStore.getProfileByUUID(uuid); + if (!profile) { + return <>; + } + + return
+

{profile.metadata.locales["en-US"].name}

+

{profile.version}

+

{profile.metadata.locales["en-US"].description}

+
; +} + +export default AppProfile; diff --git a/src/routes/index.tsx b/src/routes/index.tsx index dc04ee9..5b3450d 100644 --- a/src/routes/index.tsx +++ b/src/routes/index.tsx @@ -8,6 +8,7 @@ import NightlyYARGPage from "./YARG/Nightly"; import OfficialSetlistPage from "./Setlist/Official"; import Queue from "@app/routes/Queue"; import NewsPage from "./NewsPage"; +import AppProfile from "./AppProfile"; const Router = createBrowserRouter([ { @@ -27,16 +28,8 @@ const Router = createBrowserRouter([ element: }, { - path: "/yarg/stable", - element: - }, - { - path: "/yarg/nightly", - element: - }, - { - path: "/setlist/official", - element: + path: "/app-profile/:uuid", + element: }, { path: "/news/:md", diff --git a/src/stores/ProfileStore.ts b/src/stores/ProfileStore.ts index 214d7c7..95a3a9a 100644 --- a/src/stores/ProfileStore.ts +++ b/src/stores/ProfileStore.ts @@ -19,10 +19,11 @@ interface ProfileStore { profiles: Profile[], + getProfileByUUID: (uuid: string) => Profile | undefined, setDirs: (downloadLocation?: string) => Promise, } -export const useProfileStore = create()((set) => ({ +export const useProfileStore = create()((set, get) => ({ profiles: [ { type: "application", @@ -49,6 +50,9 @@ export const useProfileStore = create()((set) => ({ launchOptions: {} } ], + getProfileByUUID: (uuid) => { + return get().profiles.find(i => i.uuid === uuid); + }, setDirs: async (downloadLocation) => { const importantDirs: ImportantDirs = await invoke("get_important_dirs"); From 158a9e6973ef55411914e04640c9998505f542ea Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Mon, 8 Jul 2024 19:04:06 -0400 Subject: [PATCH 13/98] Profile state function --- src-tauri/Cargo.lock | 1 + src-tauri/Cargo.toml | 1 + src-tauri/src/main.rs | 48 +++++++++++++++++++++++++++------ src/routes/AppProfile/index.tsx | 5 ++++ 4 files changed, 47 insertions(+), 8 deletions(-) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 55df02a..6c01b8c 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -5444,6 +5444,7 @@ dependencies = [ "reqwest 0.12.4", "serde", "serde_json", + "serde_repr", "sevenz-rust", "tauri", "tauri-build", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index cc19adc..5e6b8d2 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -36,6 +36,7 @@ tauri = { version = "1.5.2", features = [ ] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" +serde_repr = "0.1.19" reqwest = { version = "0.12.4", features = ["stream"] } futures-util = "0.3.28" zip-extract = "0.1.3" diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 771a454..df92d12 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -4,7 +4,8 @@ use std::{fs, path::PathBuf}; use directories::BaseDirs; -use tauri::Manager; +use serde_repr::{Deserialize_repr, Serialize_repr}; +use tauri::{api::version, Manager}; use window_shadows::set_shadow; #[derive(Default, serde::Serialize, serde::Deserialize)] @@ -22,6 +23,14 @@ pub struct CustomDirs { pub setlist_folder: String, } +#[derive(Serialize_repr, Deserialize_repr, PartialEq, Debug)] +#[repr(u8)] +enum ProfileFolderState { + UpToDate = 0, + UpdateRequired = 1, + Error = 2, +} + fn path_to_string(p: PathBuf) -> Result { Ok(p.into_os_string() .into_string() @@ -82,11 +91,6 @@ fn get_custom_dirs(download_location: String) -> Result { }); } -#[tauri::command] -fn get_os() -> String { - std::env::consts::OS.to_string() -} - #[tauri::command] fn is_dir_empty(path: String) -> bool { match fs::read_dir(path) { @@ -95,15 +99,43 @@ fn is_dir_empty(path: String) -> bool { } } +// TODO: Protections random paths + +#[tauri::command(async)] +fn profile_folder_state(path: String, current_version: String) -> ProfileFolderState { + let mut version_file = PathBuf::from(&path); + version_file.push("version.txt"); + + let version_file_exists = version_file.try_exists(); + if let Ok(exists) = version_file_exists { + if !exists { + return ProfileFolderState::UpdateRequired; + } + + let version = fs::read_to_string(version_file); + if let Ok(version_string) = version { + if version_string.trim() == current_version { + return ProfileFolderState::UpToDate; + } else { + return ProfileFolderState::UpdateRequired; + } + } else { + return ProfileFolderState::Error; + } + } else { + return ProfileFolderState::Error; + } +} + fn main() { tauri::Builder::default() .plugin(tauri_plugin_log::Builder::default().build()) .invoke_handler(tauri::generate_handler![ get_important_dirs, get_custom_dirs, - - get_os, is_dir_empty, + + profile_folder_state ]) .setup(|app| { // Show the window's shadow diff --git a/src/routes/AppProfile/index.tsx b/src/routes/AppProfile/index.tsx index 5be6a93..1213683 100644 --- a/src/routes/AppProfile/index.tsx +++ b/src/routes/AppProfile/index.tsx @@ -13,10 +13,15 @@ function AppProfile() { return <>; } + async function download() { + + } + return

{profile.metadata.locales["en-US"].name}

{profile.version}

{profile.metadata.locales["en-US"].description}

+
; } From e07d6e69a2b1446472fcf762611598200551e6da Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Wed, 10 Jul 2024 01:01:08 -0400 Subject: [PATCH 14/98] Rewrote some of `LaunchButton` to work with `profile_folder_state` --- src-tauri/src/main.rs | 11 +- src/components/Launch/LaunchButton/index.tsx | 127 +++++++++++++------ src/routes/AppProfile/index.tsx | 3 +- src/stores/ProfileStore.ts | 14 +- 4 files changed, 107 insertions(+), 48 deletions(-) diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index df92d12..a44208c 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -26,9 +26,10 @@ pub struct CustomDirs { #[derive(Serialize_repr, Deserialize_repr, PartialEq, Debug)] #[repr(u8)] enum ProfileFolderState { - UpToDate = 0, - UpdateRequired = 1, - Error = 2, + Error = 0, + UpToDate = 1, + UpdateRequired = 2, + FirstDownload = 3 } fn path_to_string(p: PathBuf) -> Result { @@ -109,7 +110,7 @@ fn profile_folder_state(path: String, current_version: String) -> ProfileFolderS let version_file_exists = version_file.try_exists(); if let Ok(exists) = version_file_exists { if !exists { - return ProfileFolderState::UpdateRequired; + return ProfileFolderState::FirstDownload; } let version = fs::read_to_string(version_file); @@ -120,9 +121,11 @@ fn profile_folder_state(path: String, current_version: String) -> ProfileFolderS return ProfileFolderState::UpdateRequired; } } else { + println!("Failed to read version file at `{}`", path); return ProfileFolderState::Error; } } else { + println!("Failed to find if the profile exists at `{}`", path); return ProfileFolderState::Error; } } diff --git a/src/components/Launch/LaunchButton/index.tsx b/src/components/Launch/LaunchButton/index.tsx index 0ab5f3b..0cbb8c1 100644 --- a/src/components/Launch/LaunchButton/index.tsx +++ b/src/components/Launch/LaunchButton/index.tsx @@ -1,59 +1,102 @@ -import { YARGStates, YARGVersion } from "@app/hooks/useYARGVersion"; import { ButtonColor } from "../../Button"; import { InstallingIcon, UpdateIcon } from "@app/assets/Icons"; import { calculatePayloadPercentage } from "@app/tasks/payload"; import PayloadProgress from "../../PayloadProgress"; import Button from "@app/components/Button"; import { DropdownButton, DropdownItem } from "@app/components/DropdownButton"; +import { useEffect, useState } from "react"; +import { invoke } from "@tauri-apps/api"; +import { getPathForProfile, useProfileStore } from "@app/stores/ProfileStore"; + +enum ProfileFolderState { + Error = 0, + UpToDate = 1, + UpdateRequired = 2, + FirstDownload = 3 +} interface LaunchButtonProps extends React.PropsWithChildren { - version: YARGVersion, - playName: string, + profileUUID: string, style?: React.CSSProperties } -export function LaunchButton(props: LaunchButtonProps) { - const { version, playName } = props; - - if (version.state === YARGStates.NEW_UPDATE) { - const buttonChildren = <> - Update {playName} - ; +export function LaunchButton({ profileUUID, ...props }: LaunchButtonProps) { + const [folderState, setFolderState] = useState(0); + const profiles = useProfileStore(); - return ; + useEffect(() => { + (async () => { + const result = await invoke("profile_folder_state", { + path: await getPathForProfile(profiles, profile), + currentVersion: profile.version + }) as ProfileFolderState; + setFolderState(result); + })(); + }, []); + + let releaseName = ""; + if (profile.type === "application") { + releaseName = profile.metadata.locales["en-US"].releaseName; } - if (version.state === YARGStates.DOWNLOADING) { - const buttonChildren = <> - - - ; + if (folderState === ProfileFolderState.UpdateRequired || folderState === ProfileFolderState.FirstDownload) { + let buttonChildren; + if (folderState === ProfileFolderState.UpdateRequired) { + buttonChildren = <> + Update {releaseName} + ; + } else { + buttonChildren = <> + Install {releaseName} + ; + } return ; } - if (version.state === YARGStates.AVAILABLE) { - const buttonChildren = <> - Play {playName} - ; + // if (version.state === YARGStates.DOWNLOADING) { + // const buttonChildren = <> + // + // + // ; + + // return ; + // } + + if (folderState === ProfileFolderState.UpToDate) { + let buttonChildren; + if (profile.type === "application") { + buttonChildren = <> + Launch {releaseName} + ; + } else { + buttonChildren = <> + Installed + ; + } const dropdownChildren = <> - version.uninstall()}> + {}}> Uninstall - version.revealFolder()}> + {}}> Open Install Folder ; @@ -61,27 +104,27 @@ export function LaunchButton(props: LaunchButtonProps) { return version.play()} + onClick={() => {}} dropdownChildren={dropdownChildren}> {buttonChildren} ; } - if (version.state === YARGStates.PLAYING) { - const buttonChildren = <> - Opening YARG {playName} - ; + // if (folderState === ProfileFolderState) { + // const buttonChildren = <> + // Opening YARG {playName} + // ; - return ; - } + // {buttonChildren} + // ; + // } - if (version.state === YARGStates.ERROR) { + if (folderState === ProfileFolderState.Error) { const buttonChildren = <> Error! ; @@ -98,4 +141,4 @@ export function LaunchButton(props: LaunchButtonProps) { style={props.style}> Loading... ; -} \ No newline at end of file +} diff --git a/src/routes/AppProfile/index.tsx b/src/routes/AppProfile/index.tsx index 1213683..ca2a457 100644 --- a/src/routes/AppProfile/index.tsx +++ b/src/routes/AppProfile/index.tsx @@ -1,5 +1,6 @@ import { useParams } from "react-router-dom"; import { useProfileStore } from "@app/stores/ProfileStore"; +import { LaunchButton } from "@app/components/Launch/LaunchButton"; function AppProfile() { const { uuid } = useParams(); @@ -21,7 +22,7 @@ function AppProfile() {

{profile.metadata.locales["en-US"].name}

{profile.version}

{profile.metadata.locales["en-US"].description}

- +
; } diff --git a/src/stores/ProfileStore.ts b/src/stores/ProfileStore.ts index 95a3a9a..cbc9034 100644 --- a/src/stores/ProfileStore.ts +++ b/src/stores/ProfileStore.ts @@ -1,4 +1,4 @@ -import { invoke } from "@tauri-apps/api"; +import { invoke, path } from "@tauri-apps/api"; import { create } from "zustand"; import { Profile } from "./ProfileTypes"; @@ -77,3 +77,15 @@ export const useProfileStore = create()((set, get) => ({ } } })); + +export const getPathForProfile = async (store: ProfileStore, profile: Profile) => { + if (store.customDirs === undefined) { + throw Error("Custom directories are not initialized!"); + } + + if (profile.type === "setlist") { + return await path.join(store.customDirs.setlistFolder, profile.uuid); + } else { + return await path.join(store.customDirs.yargFolder, profile.uuid); + } +}; From 79bc39a247266f63062ddd00334dce1ff2b21cc2 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Wed, 10 Jul 2024 18:29:12 -0400 Subject: [PATCH 15/98] `download_and_install_profile` function --- src-tauri/src/main.rs | 76 ++++++++++++++++++-- src-tauri/src/utils.rs | 46 ++++++------ src/components/Launch/LaunchButton/index.tsx | 2 +- src/stores/ProfileTypes.ts | 2 +- 4 files changed, 94 insertions(+), 32 deletions(-) diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index a44208c..8823a4a 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -1,12 +1,15 @@ // Prevents additional console window on Windows in release, DO NOT REMOVE!! #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] -use std::{fs, path::PathBuf}; +mod utils; + +use std::{fmt::format, fs, path::PathBuf}; use directories::BaseDirs; use serde_repr::{Deserialize_repr, Serialize_repr}; -use tauri::{api::version, Manager}; +use tauri::{AppHandle, Manager}; use window_shadows::set_shadow; +use utils::{clear_folder, download, extract, extract_encrypted}; #[derive(Default, serde::Serialize, serde::Deserialize)] #[serde(rename_all = "camelCase")] @@ -23,6 +26,22 @@ pub struct CustomDirs { pub setlist_folder: String, } +#[derive(Default, serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct ReleaseContent { + pub name: String, + pub platforms: Vec, + pub files: Vec, +} + +#[derive(Default, serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct ReleaseContentFile { + pub url: String, + pub file_type: String, + pub signature: String, +} + #[derive(Serialize_repr, Deserialize_repr, PartialEq, Debug)] #[repr(u8)] enum ProfileFolderState { @@ -100,10 +119,8 @@ fn is_dir_empty(path: String) -> bool { } } -// TODO: Protections random paths - #[tauri::command(async)] -fn profile_folder_state(path: String, current_version: String) -> ProfileFolderState { +fn profile_folder_state(path: String, profile_version: String) -> ProfileFolderState { let mut version_file = PathBuf::from(&path); version_file.push("version.txt"); @@ -115,7 +132,7 @@ fn profile_folder_state(path: String, current_version: String) -> ProfileFolderS let version = fs::read_to_string(version_file); if let Ok(version_string) = version { - if version_string.trim() == current_version { + if version_string.trim() == profile_version { return ProfileFolderState::UpToDate; } else { return ProfileFolderState::UpdateRequired; @@ -130,6 +147,50 @@ fn profile_folder_state(path: String, current_version: String) -> ProfileFolderS } } +#[tauri::command(async)] +async fn download_and_install_profile(handle: AppHandle, profile_path: String, uuid: String, version: String, + temp_path: String, content: Vec) -> Result<(), String> { + + let mut temp_file = PathBuf::from(&temp_path); + temp_file.push(format!("{}.temp", uuid)); + let _ = fs::remove_file(&temp_file); + + let mut install_path = PathBuf::from(&profile_path); + install_path.push("installation"); + clear_folder(&install_path)?; + + // Download and install all content + let current_os = std::env::consts::OS.to_string(); + for c in content { + // Skip release content that is not for this OS + if !c.platforms.iter().any(|i| i.to_owned() == current_os) { + continue; + } + + for file in c.files { + // Download + download(&handle, &file.url, &temp_file).await?; + + // Extract/install + if file.file_type == "zip" { + extract(&temp_file, &install_path)?; + } else if file.file_type == "encrpyted" { + extract_encrypted(&temp_file, &install_path)?; + } else { + return Err("Unhandled release file type.".to_string()); + } + } + } + + let mut version_file = PathBuf::from(&profile_path); + version_file.push("version.txt"); + + // Write version.txt file + fs::write(&version_file, version).map_err(|e| format!("Failed to write version file.\n{:?}", e))?; + + Ok(()) +} + fn main() { tauri::Builder::default() .plugin(tauri_plugin_log::Builder::default().build()) @@ -138,7 +199,8 @@ fn main() { get_custom_dirs, is_dir_empty, - profile_folder_state + profile_folder_state, + download_and_install_profile, ]) .setup(|app| { // Show the window's shadow diff --git a/src-tauri/src/utils.rs b/src-tauri/src/utils.rs index c20404c..dd32e93 100644 --- a/src-tauri/src/utils.rs +++ b/src-tauri/src/utils.rs @@ -6,11 +6,16 @@ use std::time::{Duration, Instant}; use std::{fs::File, io::Write}; use tauri::{AppHandle, Manager}; -use crate::app_profile::ProgressPayload; - const LETTERS: &str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; const EMIT_BUFFER_RATE: f64 = 1.0 / 15.0; +#[derive(Clone, serde::Serialize)] +pub struct ProgressPayload { + pub state: String, + pub total: u64, + pub current: u64, +} + pub fn clear_folder(path: &Path) -> Result<(), String> { std::fs::remove_dir_all(path).ok(); std::fs::create_dir_all(path).map_err(|e| { @@ -25,7 +30,7 @@ pub fn clear_folder(path: &Path) -> Result<(), String> { } pub async fn download( - app: Option<&AppHandle>, + app: &AppHandle, url: &str, output_path: &Path, ) -> Result<(), String> { @@ -60,21 +65,18 @@ pub async fn download( current_downloaded = total_size; } - // Emit the download progress - if let Some(app) = app { - // Emitting too often could cause crashes, so buffer it to the buffer rate - if emit_timer.elapsed() >= Duration::from_secs_f64(EMIT_BUFFER_RATE) { - let _ = app.emit_all( - "progress_info", - ProgressPayload { - state: "downloading".to_string(), - current: current_downloaded, - total: total_size, - }, - ); - - emit_timer = Instant::now(); - } + // Emitting too often could cause crashes, so buffer it to the buffer rate + if emit_timer.elapsed() >= Duration::from_secs_f64(EMIT_BUFFER_RATE) { + let _ = app.emit_all( + "progress_info", + ProgressPayload { + state: "downloading".to_string(), + current: current_downloaded, + total: total_size, + }, + ); + + emit_timer = Instant::now(); } } @@ -83,8 +85,6 @@ pub async fn download( } pub fn extract(from: &Path, to: &Path) -> Result<(), String> { - clear_folder(to)?; - let file = File::open(from).map_err(|e| format!("Error while opening file.\n{:?}", e))?; zip_extract::extract(file, to, false) .map_err(|e| format!("Error while extracting zip.\n{:?}", e))?; @@ -92,7 +92,7 @@ pub fn extract(from: &Path, to: &Path) -> Result<(), String> { Ok(()) } -pub fn extract_setlist_part(zip: &Path, output_path: &Path) -> Result<(), String> { +pub fn extract_encrypted(from: &Path, to: &Path) -> Result<(), String> { // Idiot prevention let mut chars = Vec::new(); for i in 0i32..64 { @@ -108,11 +108,11 @@ pub fn extract_setlist_part(zip: &Path, output_path: &Path) -> Result<(), String } let p: &[u16] = &chars; - sevenz_rust::decompress_file_with_password(zip, output_path, Password::from(p)).map_err( + sevenz_rust::decompress_file_with_password(from, to, Password::from(p)).map_err( |e| { format!( "Failed to extract setlist part `{}`.\n{:?}", - zip.display(), + from.display(), e ) }, diff --git a/src/components/Launch/LaunchButton/index.tsx b/src/components/Launch/LaunchButton/index.tsx index 0cbb8c1..767eb5a 100644 --- a/src/components/Launch/LaunchButton/index.tsx +++ b/src/components/Launch/LaunchButton/index.tsx @@ -33,7 +33,7 @@ export function LaunchButton({ profileUUID, ...props }: LaunchButtonProps) { (async () => { const result = await invoke("profile_folder_state", { path: await getPathForProfile(profiles, profile), - currentVersion: profile.version + profileVersion: profile.version }) as ProfileFolderState; setFolderState(result); })(); diff --git a/src/stores/ProfileTypes.ts b/src/stores/ProfileTypes.ts index 910dd14..bccee7a 100644 --- a/src/stores/ProfileTypes.ts +++ b/src/stores/ProfileTypes.ts @@ -5,7 +5,7 @@ interface ReleaseContent { platforms?: string[], files: { url: string, - type: "normal" | "zip" | "encrypted", + type: "zip" | "encrypted", signature: string, }[]; } From f0f210ef68b0b6a5e7402c80a755e7accfe8e421 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Fri, 12 Jul 2024 15:51:03 -0400 Subject: [PATCH 16/98] Fixed onboarding not working --- src/components/LoadingScreen/index.tsx | 4 ++-- src/components/Onboarding/index.tsx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/LoadingScreen/index.tsx b/src/components/LoadingScreen/index.tsx index db19a54..9b289c9 100644 --- a/src/components/LoadingScreen/index.tsx +++ b/src/components/LoadingScreen/index.tsx @@ -28,11 +28,11 @@ const LoadingScreen: React.FC = (props: Props) => { await settingsManager.initialize(); if (!settingsManager.getCache("onboardingCompleted")) { - profileStore.setDirs(); + await profileStore.setDirs(); props.setOnboarding(true); } else { const downloadLocation = settingsManager.getCache("downloadLocation"); - profileStore.setDirs(downloadLocation); + await profileStore.setDirs(downloadLocation); } // Add a tiny bit of delay so the loading screen doesn't just instantly disappear diff --git a/src/components/Onboarding/index.tsx b/src/components/Onboarding/index.tsx index c8c5a62..a4dbfa1 100644 --- a/src/components/Onboarding/index.tsx +++ b/src/components/Onboarding/index.tsx @@ -39,7 +39,7 @@ const Onboarding: React.FC = (props: Props) => { settingsManager.setCache("onboardingCompleted", true); await settingsManager.syncCache(); - profileStore.setDirs(); + await profileStore.setDirs(downloadLocation); props.setOnboarding(false); } From d1b9db7ede22532b2ea14848ffb430b331ec7fcc Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Fri, 12 Jul 2024 15:51:19 -0400 Subject: [PATCH 17/98] Made the install button work --- src/components/Launch/LaunchButton/index.tsx | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/components/Launch/LaunchButton/index.tsx b/src/components/Launch/LaunchButton/index.tsx index 767eb5a..7d98550 100644 --- a/src/components/Launch/LaunchButton/index.tsx +++ b/src/components/Launch/LaunchButton/index.tsx @@ -7,6 +7,7 @@ import { DropdownButton, DropdownItem } from "@app/components/DropdownButton"; import { useEffect, useState } from "react"; import { invoke } from "@tauri-apps/api"; import { getPathForProfile, useProfileStore } from "@app/stores/ProfileStore"; +import { showErrorDialog } from "@app/dialogs/dialogUtil"; enum ProfileFolderState { Error = 0, @@ -59,7 +60,19 @@ export function LaunchButton({ profileUUID, ...props }: LaunchButtonProps) { return ; From 8bb2f9f70788e84dceaa667f816b93ccf9188602 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Fri, 12 Jul 2024 15:57:30 -0400 Subject: [PATCH 18/98] Added some dummy info for installation --- src-tauri/src/main.rs | 4 ++-- src/stores/ProfileStore.ts | 13 ++++++++++++- src/stores/ProfileTypes.ts | 4 ++-- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 8823a4a..786e4f1 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -3,7 +3,7 @@ mod utils; -use std::{fmt::format, fs, path::PathBuf}; +use std::{fs, path::PathBuf}; use directories::BaseDirs; use serde_repr::{Deserialize_repr, Serialize_repr}; @@ -39,7 +39,7 @@ pub struct ReleaseContent { pub struct ReleaseContentFile { pub url: String, pub file_type: String, - pub signature: String, + pub signature: Option, } #[derive(Serialize_repr, Deserialize_repr, PartialEq, Debug)] diff --git a/src/stores/ProfileStore.ts b/src/stores/ProfileStore.ts index cbc9034..10b40e0 100644 --- a/src/stores/ProfileStore.ts +++ b/src/stores/ProfileStore.ts @@ -46,7 +46,18 @@ export const useProfileStore = create()((set, get) => ({ websiteUrl: "https://yarg.in/" }, - content: [], + content: [ + { + name: "YARG - Windows", + platforms: ["windows"], + files: [ + { + url: "https://github.com/YARC-Official/YARG/releases/download/v0.12.4/YARG_v0.12.4-Windows-x64.zip", + fileType: "zip" + } + ] + } + ], launchOptions: {} } ], diff --git a/src/stores/ProfileTypes.ts b/src/stores/ProfileTypes.ts index bccee7a..513211f 100644 --- a/src/stores/ProfileTypes.ts +++ b/src/stores/ProfileTypes.ts @@ -5,8 +5,8 @@ interface ReleaseContent { platforms?: string[], files: { url: string, - type: "zip" | "encrypted", - signature: string, + fileType: "zip" | "encrypted", + signature?: string, }[]; } From 8f7811780f7ecd57047a68ba8db7c35de6584e8b Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Sat, 13 Jul 2024 22:02:30 -0400 Subject: [PATCH 19/98] Made launching profiles work --- src-tauri/src/main.rs | 17 +++++++++++++- src/components/Launch/LaunchButton/index.tsx | 24 +++++++++++++++++++- src/stores/ProfileStore.ts | 7 +++++- src/stores/ProfileTypes.ts | 8 ++++--- src/utils/os.ts | 11 +++++++++ 5 files changed, 61 insertions(+), 6 deletions(-) create mode 100644 src/utils/os.ts diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 786e4f1..6fa9a75 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -3,7 +3,7 @@ mod utils; -use std::{fs, path::PathBuf}; +use std::{fs, path::PathBuf, process::Command}; use directories::BaseDirs; use serde_repr::{Deserialize_repr, Serialize_repr}; @@ -191,6 +191,20 @@ async fn download_and_install_profile(handle: AppHandle, profile_path: String, u Ok(()) } +#[tauri::command] +fn launch_profile(profile_path: String, exec_path: String, arguments: Vec) -> Result<(), String> { + let mut path = PathBuf::from(&profile_path); + path.push("installation"); + path.push(exec_path); + + Command::new(path) + .args(arguments) + .spawn() + .map_err(|e| format!("Failed to launch profile? Is the executable installed?\n{:?}", e))?; + + Ok(()) +} + fn main() { tauri::Builder::default() .plugin(tauri_plugin_log::Builder::default().build()) @@ -201,6 +215,7 @@ fn main() { profile_folder_state, download_and_install_profile, + launch_profile, ]) .setup(|app| { // Show the window's shadow diff --git a/src/components/Launch/LaunchButton/index.tsx b/src/components/Launch/LaunchButton/index.tsx index 7d98550..8f37578 100644 --- a/src/components/Launch/LaunchButton/index.tsx +++ b/src/components/Launch/LaunchButton/index.tsx @@ -8,6 +8,7 @@ import { useEffect, useState } from "react"; import { invoke } from "@tauri-apps/api"; import { getPathForProfile, useProfileStore } from "@app/stores/ProfileStore"; import { showErrorDialog } from "@app/dialogs/dialogUtil"; +import { getOS } from "@app/utils/os"; enum ProfileFolderState { Error = 0, @@ -117,7 +118,28 @@ export function LaunchButton({ profileUUID, ...props }: LaunchButtonProps) { return {}} + onClick={async () => { + if (profile.type !== "application") { + return; + } + + const os = await getOS(); + if (!(os in profile.launchOptions)) { + showErrorDialog(`Launch options not configured on profile for "${os}"!`); + return; + } + + const launchOptions = profile.launchOptions[os]; + try { + await invoke("launch_profile", { + profilePath: await getPathForProfile(profiles, profile), + execPath: launchOptions.executablePath, + arguments: launchOptions.arguments + }); + } catch (e) { + showErrorDialog(e as string); + } + }} dropdownChildren={dropdownChildren}> {buttonChildren} diff --git a/src/stores/ProfileStore.ts b/src/stores/ProfileStore.ts index 10b40e0..b3c0ce1 100644 --- a/src/stores/ProfileStore.ts +++ b/src/stores/ProfileStore.ts @@ -58,7 +58,12 @@ export const useProfileStore = create()((set, get) => ({ ] } ], - launchOptions: {} + launchOptions: { + "windows": { + executablePath: "./YARG.exe", + arguments: [] + } + } } ], getProfileByUUID: (uuid) => { diff --git a/src/stores/ProfileTypes.ts b/src/stores/ProfileTypes.ts index 513211f..0578086 100644 --- a/src/stores/ProfileTypes.ts +++ b/src/stores/ProfileTypes.ts @@ -1,8 +1,10 @@ +import { OS } from "@app/utils/os"; + export type Profile = ApplicationProfile | SetlistProfile; interface ReleaseContent { name: string, - platforms?: string[], + platforms?: OS[], files: { url: string, fileType: "zip" | "encrypted", @@ -35,9 +37,9 @@ interface ApplicationProfile { content: ReleaseContent[], launchOptions: { - [platform: string]: { + [platform in OS]?: { executablePath: string, - arguments: string + arguments: string[] } } } diff --git a/src/utils/os.ts b/src/utils/os.ts new file mode 100644 index 0000000..38c6bb5 --- /dev/null +++ b/src/utils/os.ts @@ -0,0 +1,11 @@ +import { type } from "@tauri-apps/api/os"; + +export type OS = "windows" | "macos" | "linux"; + +export const getOS = async (): Promise => { + switch (await type()) { + case "Windows_NT": return "windows"; + case "Darwin": return "macos"; + case "Linux": return "linux"; + } +}; From c3ad33504a37798e0f9fee390c7d137a115ab6e8 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Mon, 15 Jul 2024 17:55:39 -0400 Subject: [PATCH 20/98] Throw out all of the old stuff --- src/components/Launch/LaunchButton/index.tsx | 113 ++++-------- src/components/Launch/LaunchPage/index.tsx | 78 --------- .../Launch/LaunchPage/styles.module.css | 130 -------------- src/components/Queue/QueueEntry/Setlist.tsx | 19 --- src/components/Queue/QueueEntry/YARG.tsx | 27 --- .../Queue/QueueEntry/{base.tsx => index.tsx} | 8 +- .../CreditEntry/CreditEntry.module.css | 13 -- src/components/Setlist/CreditEntry/index.tsx | 24 --- .../Setlist/SetlistButton/index.tsx | 83 --------- src/components/Setlist/SetlistPage/index.tsx | 129 -------------- .../Setlist/SetlistPage/setlist.module.css | 92 ---------- .../Setlist/SongEntry/SongEntry.module.css | 74 -------- src/components/Setlist/SongEntry/index.tsx | 28 --- .../SortChanger/SortChanger.module.css | 37 ---- src/components/Setlist/SortChanger/index.tsx | 38 ----- src/components/Sidebar/Versions/Setlist.tsx | 28 --- src/components/Sidebar/Versions/YARG.tsx | 47 ----- src/hooks/useProfileState.ts | 104 +++++++++++ src/hooks/useSetlistData.ts | 106 ------------ src/hooks/useYARGRelease.ts | 56 ------ src/hooks/useYARGVersion.ts | 161 ------------------ src/routes/AppProfile/index.tsx | 4 - src/routes/Setlist/Official.tsx | 23 --- src/routes/YARG/Nightly.tsx | 34 ---- src/routes/YARG/Stable.tsx | 34 ---- src/routes/index.tsx | 3 - src/stores/ProfileStore.ts | 2 +- src/stores/SetlistStateStore.ts | 43 ----- src/stores/YARGStateStore.ts | 43 ----- src/tasks/Processors/DownloadAndInstall.tsx | 49 ++++++ src/tasks/Processors/Setlist.tsx | 55 ------ src/tasks/Processors/YARG.tsx | 67 -------- src/tasks/Processors/base.ts | 29 ++-- src/tasks/index.ts | 14 +- src/tasks/queue.ts | 14 +- 35 files changed, 225 insertions(+), 1584 deletions(-) delete mode 100644 src/components/Launch/LaunchPage/index.tsx delete mode 100644 src/components/Launch/LaunchPage/styles.module.css delete mode 100644 src/components/Queue/QueueEntry/Setlist.tsx delete mode 100644 src/components/Queue/QueueEntry/YARG.tsx rename src/components/Queue/QueueEntry/{base.tsx => index.tsx} (78%) delete mode 100644 src/components/Setlist/CreditEntry/CreditEntry.module.css delete mode 100644 src/components/Setlist/CreditEntry/index.tsx delete mode 100644 src/components/Setlist/SetlistButton/index.tsx delete mode 100644 src/components/Setlist/SetlistPage/index.tsx delete mode 100644 src/components/Setlist/SetlistPage/setlist.module.css delete mode 100644 src/components/Setlist/SongEntry/SongEntry.module.css delete mode 100644 src/components/Setlist/SongEntry/index.tsx delete mode 100644 src/components/Setlist/SortChanger/SortChanger.module.css delete mode 100644 src/components/Setlist/SortChanger/index.tsx delete mode 100644 src/components/Sidebar/Versions/Setlist.tsx delete mode 100644 src/components/Sidebar/Versions/YARG.tsx create mode 100644 src/hooks/useProfileState.ts delete mode 100644 src/hooks/useSetlistData.ts delete mode 100644 src/hooks/useYARGRelease.ts delete mode 100644 src/hooks/useYARGVersion.ts delete mode 100644 src/routes/Setlist/Official.tsx delete mode 100644 src/routes/YARG/Nightly.tsx delete mode 100644 src/routes/YARG/Stable.tsx delete mode 100644 src/stores/SetlistStateStore.ts delete mode 100644 src/stores/YARGStateStore.ts create mode 100644 src/tasks/Processors/DownloadAndInstall.tsx delete mode 100644 src/tasks/Processors/Setlist.tsx delete mode 100644 src/tasks/Processors/YARG.tsx diff --git a/src/components/Launch/LaunchButton/index.tsx b/src/components/Launch/LaunchButton/index.tsx index 8f37578..44f43f4 100644 --- a/src/components/Launch/LaunchButton/index.tsx +++ b/src/components/Launch/LaunchButton/index.tsx @@ -1,21 +1,8 @@ import { ButtonColor } from "../../Button"; import { InstallingIcon, UpdateIcon } from "@app/assets/Icons"; -import { calculatePayloadPercentage } from "@app/tasks/payload"; -import PayloadProgress from "../../PayloadProgress"; import Button from "@app/components/Button"; import { DropdownButton, DropdownItem } from "@app/components/DropdownButton"; -import { useEffect, useState } from "react"; -import { invoke } from "@tauri-apps/api"; -import { getPathForProfile, useProfileStore } from "@app/stores/ProfileStore"; -import { showErrorDialog } from "@app/dialogs/dialogUtil"; -import { getOS } from "@app/utils/os"; - -enum ProfileFolderState { - Error = 0, - UpToDate = 1, - UpdateRequired = 2, - FirstDownload = 3 -} +import { ProfileFolderState, useProfileState } from "@app/hooks/useProfileState"; interface LaunchButtonProps extends React.PropsWithChildren { profileUUID: string, @@ -23,29 +10,43 @@ interface LaunchButtonProps extends React.PropsWithChildren { } export function LaunchButton({ profileUUID, ...props }: LaunchButtonProps) { - const [folderState, setFolderState] = useState(0); - const profiles = useProfileStore(); - - const profile = profiles.getProfileByUUID(profileUUID); - if (profile === undefined) { - return <>; + const { + loading, + profile, + folderState, + currentTask, + downloadAndInstall, + launch + } = useProfileState(profileUUID); + + if (loading) { + return ; } - useEffect(() => { - (async () => { - const result = await invoke("profile_folder_state", { - path: await getPathForProfile(profiles, profile), - profileVersion: profile.version - }) as ProfileFolderState; - setFolderState(result); - })(); - }, []); - let releaseName = ""; if (profile.type === "application") { releaseName = profile.metadata.locales["en-US"].releaseName; } + if (currentTask !== undefined) { + const buttonChildren = <> + + Installing... + {/* */} + ; + + return ; + } + if (folderState === ProfileFolderState.UpdateRequired || folderState === ProfileFolderState.FirstDownload) { let buttonChildren; if (folderState === ProfileFolderState.UpdateRequired) { @@ -61,39 +62,12 @@ export function LaunchButton({ profileUUID, ...props }: LaunchButtonProps) { return ; } - // if (version.state === YARGStates.DOWNLOADING) { - // const buttonChildren = <> - // - // - // ; - - // return ; - // } - if (folderState === ProfileFolderState.UpToDate) { let buttonChildren; if (profile.type === "application") { @@ -118,28 +92,7 @@ export function LaunchButton({ profileUUID, ...props }: LaunchButtonProps) { return { - if (profile.type !== "application") { - return; - } - - const os = await getOS(); - if (!(os in profile.launchOptions)) { - showErrorDialog(`Launch options not configured on profile for "${os}"!`); - return; - } - - const launchOptions = profile.launchOptions[os]; - try { - await invoke("launch_profile", { - profilePath: await getPathForProfile(profiles, profile), - execPath: launchOptions.executablePath, - arguments: launchOptions.arguments - }); - } catch (e) { - showErrorDialog(e as string); - } - }} + onClick={async () => await launch()} dropdownChildren={dropdownChildren}> {buttonChildren} diff --git a/src/components/Launch/LaunchPage/index.tsx b/src/components/Launch/LaunchPage/index.tsx deleted file mode 100644 index ba07177..0000000 --- a/src/components/Launch/LaunchPage/index.tsx +++ /dev/null @@ -1,78 +0,0 @@ -import { YARGVersion } from "@app/hooks/useYARGVersion"; -import styles from "./styles.module.css"; -import { GenericBox, GenericBoxHeader } from "../../GenericBox"; -import { DateIcon, InformationIcon, LinkIcon } from "@app/assets/Icons"; -import TooltipWrapper from "../../TooltipWrapper"; -import { intlFormatDistance } from "date-fns"; -import NewsSection from "../../NewsSection"; -import { LaunchButton } from "../LaunchButton"; - -const INITIAL_RELEASE_DATE = new Date("2023-03-09T05:00:00.000Z"); - -interface Props { - version: YARGVersion, - releaseTag: string, - playName: string, - description: React.ReactNode, - websiteUrl: string, - icon: string, - banner: string, -} - -const LaunchPage: React.FC = ({ version, releaseTag, playName, description, websiteUrl, icon, banner }: Props) => { - // If there isn't a version, something went wrong - if (!version) { - return

Error: No version.

; - } - - return <> -
-
- YARG -
- - YARG - -
- {releaseTag} -
-
-
-
-
-
- -
- - - - - YARG {playName} - - - {description} - -
- - - - {new Intl.DateTimeFormat("en-US", { - year: "numeric", - month: "long", - day: "numeric", - }).format(INITIAL_RELEASE_DATE)} - - - - Official Website - -
-
-
-
- ; -}; - -export default LaunchPage; \ No newline at end of file diff --git a/src/components/Launch/LaunchPage/styles.module.css b/src/components/Launch/LaunchPage/styles.module.css deleted file mode 100644 index 567a8d2..0000000 --- a/src/components/Launch/LaunchPage/styles.module.css +++ /dev/null @@ -1,130 +0,0 @@ -.header { - display: flex; - height: 250px; - flex-shrink: 0; - align-self: stretch; - flex-direction: column-reverse; - - background-repeat: no-repeat; - background-size: cover; - background-position: center; -} - -.actions { - display: flex; - height: 65px; - padding: 15px 25px 15px 150px; - justify-content: space-between; - align-items: center; - align-self: stretch; - - background: rgba(0, 0, 0, 0.4); - backdrop-filter: blur(10px); - color: white; -} - -.icon_container { - position: relative; - z-index: 1; -} - -.icon { - position: absolute; - bottom: 20px; - left: 20px; - box-shadow: 0px 0px 30px 1px rgba(0, 0, 0, 0.75); - - width: 100px; - height: 100px; - border-radius: 15px; -} - -.game_info { - position: absolute; - bottom: 70px; - left: 130px; - - display: flex; - align-items: center; - gap: 12px; - - color: white; - font-size: 30px; - font-style: normal; - font-weight: 700; - line-height: normal; - text-transform: uppercase; -} - -.game_name { - text-shadow: 0px 0px 6px rgba(0,0,0,0.5); -} - -.version_badge { - display: flex; - padding: 3px 10px; - justify-content: center; - align-items: center; - gap: 10px; - - border-radius: 50px; - background: white; - - color: #7C7C7C; - font-size: 12px; - font-style: normal; - font-weight: 700; - line-height: normal; - text-transform: none; -} - -.main { - display: flex; - width: 100%; - min-height: calc(100% - 250px); - padding: 25px; - align-items: flex-start; - gap: 25px; - background: var(--white-background); - - align-items: stretch; -} - -.content { - flex: 1 0 0; - font-style: italic; - - color: rgba(1, 1, 1, 0.25); - display: flex; - align-items: center; - justify-content: center; -} - -.sidebar { - display: flex; - width: 300px; - flex-direction: column; - align-items: flex-start; - gap: 10px; - flex-shrink: 0; -} - -.info_list { - display: flex; - flex-direction: column; - align-items: flex-start; - gap: 10px; -} - -.info_entry { - display: flex; - padding: 0px 1px; - align-items: center; - gap: 6px; - - color: #333; - font-size: 12px; - font-style: normal; - font-weight: 400; - line-height: normal; -} \ No newline at end of file diff --git a/src/components/Queue/QueueEntry/Setlist.tsx b/src/components/Queue/QueueEntry/Setlist.tsx deleted file mode 100644 index f9aafe2..0000000 --- a/src/components/Queue/QueueEntry/Setlist.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { SetlistTask } from "@app/tasks/Processors/Setlist"; -import BaseQueue from "./base"; -import SetlistIcon from "@app/assets/SourceIcons/Official.png"; - -interface Props { - setlistTask: SetlistTask, - bannerMode: boolean, -} - -const SetlistQueue: React.FC = ({ setlistTask, bannerMode }: Props) => { - return } - versionChannel={setlistTask.version} - bannerMode={bannerMode} - />; -}; - -export default SetlistQueue; \ No newline at end of file diff --git a/src/components/Queue/QueueEntry/YARG.tsx b/src/components/Queue/QueueEntry/YARG.tsx deleted file mode 100644 index 48e2759..0000000 --- a/src/components/Queue/QueueEntry/YARG.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { YARGTask } from "@app/tasks/Processors/YARG"; -import BaseQueue from "./base"; -import StableYARGIcon from "@app/assets/StableYARGIcon.png"; -import NightlyYARGIcon from "@app/assets/NightlyYARGIcon.png"; -import { YARGChannels } from "@app/hooks/useYARGRelease"; - -interface Props { - yargTask: YARGTask, - bannerMode: boolean, -} - -const YARGQueue: React.FC = ({ yargTask, bannerMode }: Props) => { - const channelIconPath: { [key in YARGChannels]: string } = { - "stable": StableYARGIcon, - "nightly": NightlyYARGIcon - }; - - return } - version={yargTask.version} - versionChannel={yargTask.channel.toUpperCase()} - bannerMode={bannerMode} - />; -}; - -export default YARGQueue; \ No newline at end of file diff --git a/src/components/Queue/QueueEntry/base.tsx b/src/components/Queue/QueueEntry/index.tsx similarity index 78% rename from src/components/Queue/QueueEntry/base.tsx rename to src/components/Queue/QueueEntry/index.tsx index 00b6b0f..9a1efb3 100644 --- a/src/components/Queue/QueueEntry/base.tsx +++ b/src/components/Queue/QueueEntry/index.tsx @@ -4,12 +4,12 @@ import stylesBanner from "./QueueEntryBanner.module.css"; interface Props { icon?: React.ReactNode; name?: string; - versionChannel?: string; + releaseName?: string; version?: string; bannerMode: boolean; } -const BaseQueue: React.FC = ({ icon, name, versionChannel, version, bannerMode }: Props) => { +const QueueEntry: React.FC = ({ icon, name, releaseName, version, bannerMode }: Props) => { // Choose the right style let styles = stylesNormal; if (bannerMode) { @@ -21,7 +21,7 @@ const BaseQueue: React.FC = ({ icon, name, versionChannel, version, banne
{icon}
{name} {version} - {versionChannel} + {releaseName}
@@ -29,4 +29,4 @@ const BaseQueue: React.FC = ({ icon, name, versionChannel, version, banne
; }; -export default BaseQueue; \ No newline at end of file +export default QueueEntry; diff --git a/src/components/Setlist/CreditEntry/CreditEntry.module.css b/src/components/Setlist/CreditEntry/CreditEntry.module.css deleted file mode 100644 index db2864d..0000000 --- a/src/components/Setlist/CreditEntry/CreditEntry.module.css +++ /dev/null @@ -1,13 +0,0 @@ -.credit_entry { - display: flex; - align-items: center; - gap: 5px; -} - -.credit_text { - color: #333; - font-size: 14px; - font-style: normal; - font-weight: 500; - line-height: normal; -} \ No newline at end of file diff --git a/src/components/Setlist/CreditEntry/index.tsx b/src/components/Setlist/CreditEntry/index.tsx deleted file mode 100644 index 46a3ae4..0000000 --- a/src/components/Setlist/CreditEntry/index.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { SetlistCredit } from "@app/hooks/useSetlistRelease"; -import styles from "./CreditEntry.module.css"; -import { LinkIcon } from "@app/assets/Icons"; -import TooltipWrapper from "@app/components/TooltipWrapper"; - -interface Props { - creditEntry: SetlistCredit, -} - -const CreditEntry: React.FC = ({ creditEntry }: Props) => { - if (creditEntry.url.length == 0) { - return
- {creditEntry.name} -
; - } else { - return - - {creditEntry.name} - - ; - } -}; - -export default CreditEntry; \ No newline at end of file diff --git a/src/components/Setlist/SetlistButton/index.tsx b/src/components/Setlist/SetlistButton/index.tsx deleted file mode 100644 index b29beea..0000000 --- a/src/components/Setlist/SetlistButton/index.tsx +++ /dev/null @@ -1,83 +0,0 @@ -import { ButtonColor } from "../../Button"; -import { CheckmarkIcon, InstallingIcon, UpdateIcon } from "@app/assets/Icons"; -import { calculatePayloadPercentage } from "@app/tasks/payload"; -import PayloadProgress from "../../PayloadProgress"; -import Button from "@app/components/Button"; -import { DropdownButton, DropdownItem } from "@app/components/DropdownButton"; -import { SetlistStates, SetlistVersion } from "@app/hooks/useSetlistData"; - -interface SetlistButtonProps extends React.PropsWithChildren { - version: SetlistVersion, - style?: React.CSSProperties -} - -export function SetlistButton(props: SetlistButtonProps) { - const version = props.version; - - if (version.state === SetlistStates.NEW_UPDATE) { - const buttonChildren = <> - Update Setlist - ; - - return ; - } - - if (version.state === SetlistStates.DOWNLOADING) { - const buttonChildren = <> - - - ; - - return ; - } - - if (version.state === SetlistStates.AVAILABLE) { - const buttonChildren = <> - Downloaded - ; - - const dropdownChildren = <> - version.uninstall()}> - Uninstall - - ; - - return - - {buttonChildren} - ; - } - - if (version.state === SetlistStates.ERROR) { - const buttonChildren = <> - Error! - ; - - return ; - } - - return ; -} \ No newline at end of file diff --git a/src/components/Setlist/SetlistPage/index.tsx b/src/components/Setlist/SetlistPage/index.tsx deleted file mode 100644 index 0b15208..0000000 --- a/src/components/Setlist/SetlistPage/index.tsx +++ /dev/null @@ -1,129 +0,0 @@ -import { SetlistData } from "@app/hooks/useSetlistRelease"; -import styles from "./setlist.module.css"; -import { SetlistVersion } from "@app/hooks/useSetlistData"; -import { GenericBox, GenericBoxHeader, GenericBoxSlim } from "@app/components/GenericBox"; -import SongEntry from "@app/components/Setlist/SongEntry"; -import { InformationIcon, ChartersIcon, OrganizerIcon, DateIcon, SongIcon, TimeIcon } from "@app/assets/Icons"; -import CreditEntry from "@app/components/Setlist/CreditEntry"; -import { isConsideredNewRelease, millisToDisplayLength } from "@app/utils/timeFormat"; -import TooltipWrapper from "@app/components/TooltipWrapper"; -import { intlFormatDistance } from "date-fns"; -import NewsSection from "@app/components/NewsSection"; -import SortChanger, { SortType } from "@app/components/Setlist/SortChanger"; -import { useState } from "react"; -import sortArray from "sort-array"; -import { SetlistButton } from "@app/components/Setlist/SetlistButton"; - -interface Props { - version: SetlistVersion, - data: SetlistData, -} - -const SetlistPage: React.FC = ({ version, data }: Props) => { - // If there isn't a version, something went wrong - if (!version) { - console.log(version); - return

Error: No version.

; - } - - const [ sortType, setSortType ] = useState("title" as SortType); - - const newestSongRelease = data.songs.reduce((prev, curr) => - new Date(prev.releaseDate).getTime() > new Date(curr.releaseDate).getTime() ? prev : curr); - - return <> -
-
-
- setSortType(s)} /> - - - {sortArray(data.songs, { - by: "order", - order: sortType === "releaseDate" ? "desc" : "asc", - computed: { - order: i => { - const value = i[sortType]; - - // Speical case for release date - if (sortType === "releaseDate" && typeof value === "string") { - return new Date(value).getTime(); - } - - // Make sure strings are in all lowercase for proper sorting - if (typeof value === "string") { - return value.toLowerCase(); - } - - return value; - } - } - }).map(i => - - )} - - -
- -
-
- - - - - {data.locales["en-US"].title} - - - {data.locales["en-US"].description} - -
- - - - {new Intl.DateTimeFormat("en-US", { - year: "numeric", - month: "long", - day: "numeric", - }).format(new Date(data.releaseDate))} - - - - - {data.songs.length} songs - - - - - {millisToDisplayLength(data.songs.reduce( - (accumulator, currentValue) => accumulator + currentValue.length, - 0), true)} - - - - - {data.organizer} - -
-
- - - - - Charters - - -
- {data.credits.map(i => - - )} -
-
-
-
- ; -}; - -export default SetlistPage; \ No newline at end of file diff --git a/src/components/Setlist/SetlistPage/setlist.module.css b/src/components/Setlist/SetlistPage/setlist.module.css deleted file mode 100644 index 260b53a..0000000 --- a/src/components/Setlist/SetlistPage/setlist.module.css +++ /dev/null @@ -1,92 +0,0 @@ -.banner { - height: 250px; - flex-shrink: 0; - align-self: stretch; - - background-image: - url("/src/assets/Banner/OfficialLogo.png"), - linear-gradient(0deg, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0.00) 100%), - url("/src/assets/Banner/OfficialBanner.png"); - background-repeat: no-repeat, repeat-x, no-repeat; - background-size: contain, contain, cover; - background-position: center, center, center; -} - -.main { - display: flex; - width: 100%; - min-height: calc(100% - 250px); - padding: 25px; - align-items: flex-start; - gap: 25px; - background: var(--white-background); - - align-items: stretch; -} - -.content { - flex: 1 0 0; - - display: flex; - flex-direction: column; - gap: 10px; -} - -.content_spacer { - height: 15px; -} - -.sidebar { - display: flex; - width: 300px; - flex-direction: column; - align-items: flex-start; - gap: 10px; - flex-shrink: 0; -} - -.song { - display: flex; - padding: 15px; - align-items: center; - gap: 10px; - align-self: stretch; - border-bottom: 1px solid rgba(0, 0, 0, 0.1); -} - -.song_title { - color: #333; - font-size: 14px; - font-style: normal; - font-weight: 600; - line-height: normal; -} - -.song_artist { - color: #333; - font-size: 14px; - font-style: normal; - font-weight: 400; - line-height: normal; - opacity: 0.5; -} - -.info_list { - display: flex; - flex-direction: column; - align-items: flex-start; - gap: 10px; -} - -.info_entry { - display: flex; - padding: 0px 1px; - align-items: center; - gap: 6px; - - color: #333; - font-size: 12px; - font-style: normal; - font-weight: 400; - line-height: normal; -} \ No newline at end of file diff --git a/src/components/Setlist/SongEntry/SongEntry.module.css b/src/components/Setlist/SongEntry/SongEntry.module.css deleted file mode 100644 index 2910742..0000000 --- a/src/components/Setlist/SongEntry/SongEntry.module.css +++ /dev/null @@ -1,74 +0,0 @@ -.song { - display: flex; - padding: 15px; - justify-content: space-between; - align-items: center; - align-self: stretch; - border-bottom: 1px solid rgba(0, 0, 0, 0.1); -} - -.song:last-child { - border-bottom: none; -} - -.track_container { - display: flex; - align-items: flex-start; - gap: 10px; -} - -.track_title { - color: #333; - font-size: 14px; - font-style: normal; - font-weight: 600; - line-height: normal; -} - -.track_artist { - color: #333; - font-size: 14px; - font-style: normal; - font-weight: 400; - line-height: normal; - opacity: 0.5; -} - -.extra_container { - display: flex; - align-items: center; - gap: 5px; -} - -.extra_length { - color: #333; - font-size: 12px; - font-style: normal; - font-weight: 400; - line-height: normal; - opacity: 0.5; -} - -.icon { - width: 14px; - height: 14px; - opacity: 0.25; -} - -.new_badge { - display: flex; - padding: 3px 5px; - align-items: flex-start; - gap: 10px; - border-radius: 50px; - background: #FFE174; - - color: #641E00; - font-size: 8px; - font-style: normal; - font-weight: 700; - line-height: normal; - text-transform: uppercase; - - transform: translateY(2px); -} \ No newline at end of file diff --git a/src/components/Setlist/SongEntry/index.tsx b/src/components/Setlist/SongEntry/index.tsx deleted file mode 100644 index 455e310..0000000 --- a/src/components/Setlist/SongEntry/index.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { millisToDisplayLength } from "@app/utils/timeFormat"; -import { TimeIcon } from "@app/assets/Icons"; -import styles from "./SongEntry.module.css"; - -interface Props { - title: string, - artist: string, - length: number, - newSong: boolean, -} - -const SongEntry: React.FC = ({ title, artist, length, newSong }: Props) => { - return
-
- {title} - {artist} - {newSong && -
NEW
- } -
-
- - {millisToDisplayLength(length)} -
-
; -}; - -export default SongEntry; \ No newline at end of file diff --git a/src/components/Setlist/SortChanger/SortChanger.module.css b/src/components/Setlist/SortChanger/SortChanger.module.css deleted file mode 100644 index 37d3d26..0000000 --- a/src/components/Setlist/SortChanger/SortChanger.module.css +++ /dev/null @@ -1,37 +0,0 @@ -button { - all: unset; -} - -.container { - display: flex; - align-items: center; - justify-content: right; - gap: 5px; -} - -.item { - display: flex; - padding: 7px 14px; - justify-content: center; - align-items: center; - gap: 5px; - - border-radius: 50px; - background: #E9E9E9; - cursor: pointer; - - color: black; - font-size: 12px; - font-style: normal; - font-weight: 500; - line-height: normal; -} - -.item svg { - height: 15px; -} - -.item[data-state="on"] { - background: black; - color: white; -} \ No newline at end of file diff --git a/src/components/Setlist/SortChanger/index.tsx b/src/components/Setlist/SortChanger/index.tsx deleted file mode 100644 index 9b3fb7d..0000000 --- a/src/components/Setlist/SortChanger/index.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { SetlistSong } from "@app/hooks/useSetlistRelease"; -import styles from "./SortChanger.module.css"; -import * as ToggleGroup from "@radix-ui/react-toggle-group"; -import { DateIcon, NoteIcon, SongIcon, TimeIcon } from "@app/assets/Icons"; - -export type SortType = keyof SetlistSong; - -interface Props { - onChange: (sortType: SortType) => void; -} - -const SortChanger: React.FC = ({ onChange }: Props) => { - return onChange(value)}> - - - - Track - - - - Artist - - - - Length - - - - Release - - ; -}; - -export default SortChanger; \ No newline at end of file diff --git a/src/components/Sidebar/Versions/Setlist.tsx b/src/components/Sidebar/Versions/Setlist.tsx deleted file mode 100644 index bbf3772..0000000 --- a/src/components/Sidebar/Versions/Setlist.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { SetlistID, useSetlistRelease } from "@app/hooks/useSetlistRelease"; -import { SetlistStates, useSetlistData } from "@app/hooks/useSetlistData"; -import BaseVersion, { VersionType } from "./Base"; -import { NavLink } from "react-router-dom"; -import OfficialIcon from "@app/assets/SourceIcons/Official.png"; - -interface Props { - channel: SetlistID; -} - -const SetlistVersion: React.FC = ({ channel }: Props) => { - const { data: setlistData } = useSetlistRelease(channel); - const { state } = useSetlistData(setlistData, channel); - - return ( - - } // TO-DO: create a util/sourceIcon to get source icon from - type={VersionType.SONG} - programName={setlistData?.locales["en-US"].title} // TO-DO: catch the BCP 47 code - versionChannel={`${setlistData?.songs?.length} songs`} - updateAvailable={state === SetlistStates.NEW_UPDATE} - /> - - ); -}; - -export default SetlistVersion; \ No newline at end of file diff --git a/src/components/Sidebar/Versions/YARG.tsx b/src/components/Sidebar/Versions/YARG.tsx deleted file mode 100644 index 4309c20..0000000 --- a/src/components/Sidebar/Versions/YARG.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import { YARGChannels, useYARGRelease } from "@app/hooks/useYARGRelease"; -import { YARGStates, useYARGVersion } from "@app/hooks/useYARGVersion"; -import BaseVersion from "./Base"; -import NightlyYARGIcon from "@app/assets/NightlyYARGIcon.png"; -import StableYARGIcon from "@app/assets/StableYARGIcon.png"; -import { NavLink } from "react-router-dom"; - -interface Props { - channel: YARGChannels -} - -const YARGVersion: React.FC = ({ channel }: Props) => { - const {data: releaseData} = useYARGRelease(channel); - const { state } = useYARGVersion(releaseData, channel); - - function getChannelIcon() { - switch (channel) { - case "stable": - return StableYARGIcon; - case "nightly": - return NightlyYARGIcon; - } - } - - function getChannelDisplayName() { - switch (channel) { - case "stable": - return "Stable"; - case "nightly": - return "Nightly"; - } - } - - return ( - - } - programName="YARG" - versionChannel={getChannelDisplayName()} - version={releaseData?.tag_name} - updateAvailable={state === YARGStates.NEW_UPDATE} - /> - - ); -}; - -export default YARGVersion; \ No newline at end of file diff --git a/src/hooks/useProfileState.ts b/src/hooks/useProfileState.ts new file mode 100644 index 0000000..19ef60a --- /dev/null +++ b/src/hooks/useProfileState.ts @@ -0,0 +1,104 @@ +import { showErrorDialog } from "@app/dialogs/dialogUtil"; +import { getPathForProfile, useProfileStore } from "@app/stores/ProfileStore"; +import { Profile } from "@app/stores/ProfileTypes"; +import { addTask, useTask } from "@app/tasks"; +import { DownloadAndInstallTask } from "@app/tasks/Processors/DownloadAndInstall"; +import { IBaseTask } from "@app/tasks/Processors/base"; +import { getOS } from "@app/utils/os"; +import { invoke } from "@tauri-apps/api"; +import { useEffect, useState } from "react"; + +export enum ProfileFolderState { + Error = 0, + UpToDate = 1, + UpdateRequired = 2, + FirstDownload = 3 +} + +export interface ProfileState { + loading: boolean; + + profile: Profile; + profilePath: string; + + folderState: ProfileFolderState; + currentTask?: IBaseTask; + + downloadAndInstall: () => Promise; + launch: () => Promise; +} + +export const useProfileState = (profileUUID: string): ProfileState => { + const profiles = useProfileStore(); + + const [loading, setLoading] = useState(true); + const [profilePath, setProfilePath] = useState(""); + + const [folderState, setFolderState] = useState(0); + const currentTask = useTask(profileUUID); + + const profile = profiles.getProfileByUUID(profileUUID); + if (profile === undefined || profiles.importantDirs === undefined) { + // TODO: Better error handeling here + throw new Error("Undefined profile"); + } + + // Initialize + useEffect(() => { + (async () => { + const path = await getPathForProfile(profiles, profile); + const result = await invoke("profile_folder_state", { + path: path, + profileVersion: profile.version + }) as ProfileFolderState; + + setFolderState(result); + setProfilePath(path); + setLoading(false); + })(); + }, []); + + return { + loading, + + profile, + profilePath, + + folderState, + currentTask, + + downloadAndInstall: async () => { + if (loading || profiles.importantDirs === undefined) { + return; + } + + const task = new DownloadAndInstallTask(profile, profilePath, profiles.importantDirs.tempFolder, () => { + setFolderState(ProfileFolderState.UpToDate); + }); + + addTask(task); + }, + launch: async () => { + if (profile.type !== "application") { + return; + } + + const os = await getOS(); + const launchOptions = profile.launchOptions[os]; + if (launchOptions === undefined) { + showErrorDialog(`Launch options not configured on profile for "${os}"!`); + return; + } + + try { + await invoke("launch_profile", { + profilePath: profilePath, + execPath: launchOptions.executablePath, + arguments: launchOptions.arguments + }); + } catch (e) { + showErrorDialog(e as string); + } + } + }; +}; diff --git a/src/hooks/useSetlistData.ts b/src/hooks/useSetlistData.ts deleted file mode 100644 index 1982985..0000000 --- a/src/hooks/useSetlistData.ts +++ /dev/null @@ -1,106 +0,0 @@ -import { useSetlistState } from "@app/stores/SetlistStateStore"; -import { SetlistData } from "./useSetlistRelease"; -import { SetlistDownload, SetlistUninstall } from "@app/tasks/Processors/Setlist"; -import { useEffect } from "react"; -import { invoke } from "@tauri-apps/api/tauri"; -import { showErrorDialog, showInstallFolderDialog } from "@app/dialogs/dialogUtil"; -import { addTask, useTask } from "@app/tasks"; -import { TaskPayload, usePayload } from "@app/tasks/payload"; - -export enum SetlistStates { - "AVAILABLE", - "DOWNLOADING", - "ERROR", - "LOADING", - "NEW_UPDATE" -} - -export type SetlistVersion = { - state: SetlistStates, - download: () => Promise, - uninstall: () => Promise, - payload?: TaskPayload -} - -export const useSetlistData = (setlistData: SetlistData | undefined, setlistId: string): SetlistVersion => { - const { state, setState } = useSetlistState(setlistData?.version); - const task = useTask("setlist", setlistId); - const payload = usePayload(task?.taskUUID); - - useEffect(() => { - (async () => { - if (state || !setlistData) return; - - const exists = await invoke("exists", { - appName: "official_setlist", - version: setlistData.version, - profile: setlistData.id - }); - - setState(exists ? SetlistStates.AVAILABLE : SetlistStates.NEW_UPDATE); - })(); - }, [setlistData]); - - // If we don't have a release data yet, return a dummy loading version; - if (!setlistData) { - return { - state, - download: async () => {}, - uninstall: async () => {}, - }; - } - - const download = async () => { - if (!setlistData || state === SetlistStates.DOWNLOADING) return; - - // Ask for a download location (if required) - if (!await showInstallFolderDialog()) { - // Skip if the dialog is closed or it errors - return; - } - - setState(SetlistStates.DOWNLOADING); - - try { - const downloader = new SetlistDownload( - setlistData.downloads, - setlistData.id, - setlistData.version, - () => { setState(SetlistStates.AVAILABLE); } - ); - - addTask(downloader); - } catch (e) { - setState(SetlistStates.ERROR); - - showErrorDialog(e as string); - console.error(e); - } - }; - - const uninstall = async () => { - if (!setlistData || state === SetlistStates.DOWNLOADING) return; - - // You can't uninstall if the launcher is not initialized - if (!await invoke("is_initialized")) return; - - setState(SetlistStates.DOWNLOADING); - - try { - const downloader = new SetlistUninstall( - setlistData.id, - setlistData.version, - () => { setState(SetlistStates.NEW_UPDATE); } - ); - - addTask(downloader); - } catch (e) { - setState(SetlistStates.ERROR); - - showErrorDialog(e as string); - console.error(e); - } - }; - - return { state, download, uninstall, payload }; -}; \ No newline at end of file diff --git a/src/hooks/useYARGRelease.ts b/src/hooks/useYARGRelease.ts deleted file mode 100644 index 42dc9a5..0000000 --- a/src/hooks/useYARGRelease.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { useQuery } from "@tanstack/react-query"; -import { Endpoints } from "@octokit/types"; -import { OsType } from "@tauri-apps/api/os"; - -export type YARGChannels = "stable" | "nightly"; - -type ReleaseData = Endpoints["GET /repos/{owner}/{repo}/releases/latest"]["response"]["data"]; -export type ExtendedReleaseData = ReleaseData & { - channel: YARGChannels -}; - -export const useYARGRelease = (channel: YARGChannels) => { - const repositoryName = { - "stable": "YARG", - "nightly": "YARG-BleedingEdge" - }; - - return useQuery({ - queryKey: ["YARG", channel], - queryFn: async (): Promise => await fetch( - `https://api.github.com/repos/YARC-Official/${repositoryName[channel]}/releases/latest`) - .then(res => res.json()), - select: (data): ExtendedReleaseData => ({ ...data, channel: channel }) - }); -}; - -export const getYARGReleaseZip = (releaseData: ReleaseData, platformType: OsType) => { - const suffixesPerPlatform: {[key in OsType]: string[]} = { - "Windows_NT": ["Windows-x64.zip"], - "Darwin": ["MacOS-Universal.zip"], - "Linux": ["Linux-x86_64.zip", "Linux-x64.zip"], - }; - - const platformSuffixes = suffixesPerPlatform[platformType]; - - const asset = releaseData.assets.find(asset => { - return platformSuffixes.find(suffix => asset.name.endsWith(suffix)); - }); - - if(asset) return asset.browser_download_url; - - // Otherwise, the platform is not supported! - throw new Error(`Platform of type "${platformType}" is not supported in release "${releaseData.tag_name}"!`); -}; - -export const getYARGReleaseSigFromZipURL = (releaseData: ReleaseData, zipUrl: string) => { - const sigAssetName = zipUrl.split("/").slice(-1) + ".sig"; - - const asset = releaseData.assets.find(asset => asset.name === sigAssetName); - - if(asset) return asset.browser_download_url; - - // Otherwise, there's no signature - console.warn(`Failed to find signature file "${sigAssetName}" in release "${releaseData.tag_name}"!`); - return undefined; -}; \ No newline at end of file diff --git a/src/hooks/useYARGVersion.ts b/src/hooks/useYARGVersion.ts deleted file mode 100644 index abe884f..0000000 --- a/src/hooks/useYARGVersion.ts +++ /dev/null @@ -1,161 +0,0 @@ -import { useEffect } from "react"; -import { ExtendedReleaseData, getYARGReleaseZip, getYARGReleaseSigFromZipURL, YARGChannels } from "./useYARGRelease"; -import { invoke } from "@tauri-apps/api/tauri"; -import { type } from "@tauri-apps/api/os"; -import { useYARGState } from "@app/stores/YARGStateStore"; -import { YARGDownload, YARGUninstall } from "@app/tasks/Processors/YARG"; -import { showErrorDialog, showInstallFolderDialog } from "@app/dialogs/dialogUtil"; -import { addTask, useTask } from "@app/tasks"; -import { usePayload, TaskPayload } from "@app/tasks/payload"; - -export enum YARGStates { - "AVAILABLE", - "DOWNLOADING", - "ERROR", - "PLAYING", - "LOADING", - "NEW_UPDATE" -} - -export type YARGVersion = { - state: YARGStates, - play: () => Promise, - download: () => Promise, - uninstall: () => Promise, - revealFolder: () => Promise, - payload?: TaskPayload -} - -export const useYARGVersion = (releaseData: ExtendedReleaseData | undefined, profileName: YARGChannels): YARGVersion => { - // Initialize hooks before returning - const { state, setState } = useYARGState(releaseData?.tag_name); - const task = useTask("yarg", profileName); - const payload = usePayload(task?.taskUUID); - - useEffect(() => { - (async () => { - if (state || !releaseData) return; - - const exists = await invoke("exists", { - appName: "yarg", - version: releaseData.tag_name, - profile: profileName - }); - - setState(exists ? YARGStates.AVAILABLE : YARGStates.NEW_UPDATE); - })(); - }, [releaseData]); - - // If we don't have a release data yet, return a dummy loading version; - if (!releaseData) { - return { - state, - play: async () => {}, - download: async () => {}, - uninstall: async () => {}, - revealFolder: async () => {}, - }; - } - - const play = async () => { - if (!releaseData) return; - - setState(YARGStates.LOADING); - - try { - await invoke("launch", { - appName: "yarg", - version: releaseData.tag_name, - profile: profileName - }); - - setState(YARGStates.PLAYING); - - // As we don't have a way to check if the YARG game process is closed, we set a timer to avoid locking the state to PLAYING - setTimeout(() => { - setState(YARGStates.AVAILABLE); - }, 10 * 1000); - } catch (e) { - setState(YARGStates.ERROR); - - showErrorDialog(e as string); - console.error(e); - } - }; - - const download = async () => { - if (!releaseData || state === YARGStates.DOWNLOADING) return; - - // Ask for a download location (if required) - if (!await showInstallFolderDialog()) { - // Skip if the dialog is closed or it errors - return; - } - - setState(YARGStates.DOWNLOADING); - - try { - const platformType = await type(); - const zipUrl = getYARGReleaseZip(releaseData, platformType); - const sigUrl = getYARGReleaseSigFromZipURL(releaseData, zipUrl); - - const downloader = new YARGDownload( - zipUrl, - sigUrl, - releaseData.channel, - releaseData.tag_name, - profileName, - () => { setState(YARGStates.AVAILABLE); } - ); - - addTask(downloader); - } catch (e) { - setState(YARGStates.ERROR); - - showErrorDialog(e as string); - console.error(e); - } - }; - - const uninstall = async () => { - if (!releaseData || state === YARGStates.DOWNLOADING) return; - - // You can't uninstall if the launcher is not initialized - if (!await invoke("is_initialized")) return; - - setState(YARGStates.DOWNLOADING); - - try { - const downloader = new YARGUninstall( - releaseData.channel, - releaseData.tag_name, - profileName, - () => { setState(YARGStates.NEW_UPDATE); } - ); - - addTask(downloader); - } catch (e) { - setState(YARGStates.ERROR); - - showErrorDialog(e as string); - console.error(e); - } - }; - - const revealFolder = async () => { - if (!releaseData) return; - - try { - await invoke("reveal_folder", { - appName: "yarg", - version: releaseData.tag_name, - profile: profileName - }); - } catch (e) { - showErrorDialog(e as string); - console.error(e); - } - }; - - return { state, play, download, uninstall, revealFolder, payload }; -}; \ No newline at end of file diff --git a/src/routes/AppProfile/index.tsx b/src/routes/AppProfile/index.tsx index ca2a457..97f4816 100644 --- a/src/routes/AppProfile/index.tsx +++ b/src/routes/AppProfile/index.tsx @@ -14,10 +14,6 @@ function AppProfile() { return <>; } - async function download() { - - } - return

{profile.metadata.locales["en-US"].name}

{profile.version}

diff --git a/src/routes/Setlist/Official.tsx b/src/routes/Setlist/Official.tsx deleted file mode 100644 index c31fc1b..0000000 --- a/src/routes/Setlist/Official.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import SetlistPage from "@app/components/Setlist/SetlistPage"; -import { useSetlistData } from "@app/hooks/useSetlistData"; -import { useSetlistRelease } from "@app/hooks/useSetlistRelease"; - -function OfficialSetlistPage() { - const { data: setlistData, error, isSuccess, isLoading } = useSetlistRelease("official"); - const setlistVersion = useSetlistData(setlistData, "official"); - - if (isLoading) return "Loading..."; - - if (error) return `An error has occurred: ${error}`; - - if (isSuccess) { - return (<> - - ); - } -} - -export default OfficialSetlistPage; \ No newline at end of file diff --git a/src/routes/YARG/Nightly.tsx b/src/routes/YARG/Nightly.tsx deleted file mode 100644 index 877e38e..0000000 --- a/src/routes/YARG/Nightly.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import LaunchPage from "@app/components/Launch/LaunchPage"; -import { useYARGRelease } from "@app/hooks/useYARGRelease"; -import { useYARGVersion } from "@app/hooks/useYARGVersion"; -import NightlyYARGIcon from "@app/assets/NightlyYARGIcon.png"; -import NightlyYARGBanner from "@app/assets/Banner/Nightly.png"; - -function NightlyYARGPage() { - const { data: releaseData, error, isSuccess, isLoading } = useYARGRelease("nightly"); - const yargVersion = useYARGVersion(releaseData, "nightly"); - - if (isLoading) return "Loading..."; - - if (error) return `An error has occurred: ${error}`; - - if (isSuccess) { - return (<> - - YARG Nightly (a.k.a. YARG bleeding-edge) is an alternative version of YARG that is updated twice - a day (if changes have been made). These builds are in an extremely early beta, so bugs are expected. - If you do notice a bug, please be sure to report it on GitHub, or on our Discord. - } - websiteUrl="https://github.com/YARC-Official/YARG-BleedingEdge" - icon={NightlyYARGIcon} - banner={NightlyYARGBanner} - /> - ); - } -} - -export default NightlyYARGPage; \ No newline at end of file diff --git a/src/routes/YARG/Stable.tsx b/src/routes/YARG/Stable.tsx deleted file mode 100644 index fd54d0b..0000000 --- a/src/routes/YARG/Stable.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import LaunchPage from "@app/components/Launch/LaunchPage"; -import { useYARGRelease } from "@app/hooks/useYARGRelease"; -import { useYARGVersion } from "@app/hooks/useYARGVersion"; -import StableYARGIcon from "@app/assets/StableYARGIcon.png"; -import StableYARGBanner from "@app/assets/Banner/Stable.png"; - -function StableYARGPage() { - const { data: releaseData, error, isSuccess, isLoading } = useYARGRelease("stable"); - const yargVersion = useYARGVersion(releaseData, "stable"); - - if (isLoading) return "Loading..."; - - if (error) return `An error has occurred: ${error}`; - - if (isSuccess) { - return (<> - - YARG (a.k.a. Yet Another Rhythm Game) is a free, open-source, plastic guitar game that is - still in development. It supports guitar (five fret), drums (plastic or e-kit), vocals, - pro-guitar, and more! - } - websiteUrl="https://github.com/YARC-Official/YARG" - icon={StableYARGIcon} - banner={StableYARGBanner} - /> - ); - } -} - -export default StableYARGPage; \ No newline at end of file diff --git a/src/routes/index.tsx b/src/routes/index.tsx index 5b3450d..9721c0f 100644 --- a/src/routes/index.tsx +++ b/src/routes/index.tsx @@ -3,9 +3,6 @@ import { createBrowserRouter } from "react-router-dom"; import RootLayout from "@app/routes/root"; import Home from "@app/routes/Home"; import Settings from "@app/routes/Settings"; -import StableYARGPage from "./YARG/Stable"; -import NightlyYARGPage from "./YARG/Nightly"; -import OfficialSetlistPage from "./Setlist/Official"; import Queue from "@app/routes/Queue"; import NewsPage from "./NewsPage"; import AppProfile from "./AppProfile"; diff --git a/src/stores/ProfileStore.ts b/src/stores/ProfileStore.ts index b3c0ce1..528d8fa 100644 --- a/src/stores/ProfileStore.ts +++ b/src/stores/ProfileStore.ts @@ -13,7 +13,7 @@ export interface CustomDirs { setlistFolder: string, } -interface ProfileStore { +export interface ProfileStore { importantDirs?: ImportantDirs, customDirs?: CustomDirs, diff --git a/src/stores/SetlistStateStore.ts b/src/stores/SetlistStateStore.ts deleted file mode 100644 index 3017e73..0000000 --- a/src/stores/SetlistStateStore.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { SetlistStates } from "@app/hooks/useSetlistData"; -import { create } from "zustand"; - -interface SetlistStateStore { - states: { - [key: string]: SetlistStates - }, - update: (key: string, state: SetlistStates) => void -} - -const useSetlistStateStore = create()((set) => ({ - states: {}, - update(key, state) { - return set(current => ({ - states: { - ...current.states, - [key]: state - } - })); - }, -})); - -interface useSetlistStateInterface { - state: SetlistStates; - setState: (newState: SetlistStates) => void; -} - -export const useSetlistState = (version?: string): useSetlistStateInterface => { - const store = useSetlistStateStore(); - - // If we don't have a version yet, return a dummy loading version; - if (!version) { - return { - state: SetlistStates.LOADING, - setState: () => {} - }; - } - - const state = store.states[version]; - const setState = (newState: SetlistStates) => store.update(version, newState); - - return { state, setState }; -}; \ No newline at end of file diff --git a/src/stores/YARGStateStore.ts b/src/stores/YARGStateStore.ts deleted file mode 100644 index df9a9bd..0000000 --- a/src/stores/YARGStateStore.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { YARGStates } from "@app/hooks/useYARGVersion"; -import { create } from "zustand"; - -interface YARGStateStore { - states: { - [key: string]: YARGStates - }, - update: (key: string, state: YARGStates) => void -} - -const useYARGStateStore = create()((set) => ({ - states: {}, - update(key, state) { - return set(current => ({ - states: { - ...current.states, - [key]: state - } - })); - }, -})); - -interface useYARGStateInterface { - state: YARGStates; - setState: (newState: YARGStates) => void; -} - -export const useYARGState = (version?: string): useYARGStateInterface => { - const store = useYARGStateStore(); - - // If we don't have a version yet, return a dummy loading version; - if (!version) { - return { - state: YARGStates.LOADING, - setState: () => {} - }; - } - - const state = store.states[version]; - const setState = (newState: YARGStates) => store.update(version, newState); - - return { state, setState }; -}; \ No newline at end of file diff --git a/src/tasks/Processors/DownloadAndInstall.tsx b/src/tasks/Processors/DownloadAndInstall.tsx new file mode 100644 index 0000000..c43a560 --- /dev/null +++ b/src/tasks/Processors/DownloadAndInstall.tsx @@ -0,0 +1,49 @@ +import { Profile } from "@app/stores/ProfileTypes"; +import { BaseTask, IBaseTask } from "./base"; +import { invoke } from "@tauri-apps/api"; +import { showErrorDialog } from "@app/dialogs/dialogUtil"; +import { ReactNode } from "react"; +import QueueEntry from "@app/components/Queue/QueueEntry"; + +export class DownloadAndInstallTask extends BaseTask implements IBaseTask { + onFinish?: () => void; + + constructor(profile: Profile, profilePath: string, tempPath: string, onFinish?: () => void) { + super(profile, profilePath, tempPath); + this.onFinish = onFinish; + } + + async start(): Promise { + console.log("Downloading profile..."); + try { + await invoke("download_and_install_profile", { + profilePath: this.profilePath, + uuid: this.profile.uuid, + version: this.profile.version, + tempPath: this.tempPath, + content: this.profile.content + }); + } catch (e) { + showErrorDialog(e as string); + } + } + + getQueueEntry(bannerMode: boolean): ReactNode { + if (this.profile.type === "application") { + const metadata = this.profile.metadata.locales["en-US"]; + + return ; + } else { + const metadata = this.profile.metadata.locales["en-US"]; + + return ; + } + } +} diff --git a/src/tasks/Processors/Setlist.tsx b/src/tasks/Processors/Setlist.tsx deleted file mode 100644 index b3cf974..0000000 --- a/src/tasks/Processors/Setlist.tsx +++ /dev/null @@ -1,55 +0,0 @@ -import { invoke } from "@tauri-apps/api/tauri"; -import { BaseTask, IBaseTask } from "./base"; -import SetlistQueue from "@app/components/Queue/QueueEntry/Setlist"; - -export abstract class SetlistTask extends BaseTask { - profile: string; - version: string; - onFinish: () => void; - - constructor(profile: string, version: string, onFinish: () => void) { - super("setlist", profile); - - this.profile = profile; - this.version = version; - this.onFinish = onFinish; - } - - getQueueEntry(bannerMode: boolean): React.ReactNode { - return ; - } -} - -export class SetlistDownload extends SetlistTask implements IBaseTask { - zipUrls: string[]; - - constructor(zipUrls: string[], profile: string, version: string, onFinish: () => void) { - super(profile, version, onFinish); - - this.zipUrls = zipUrls; - } - - async start(): Promise { - return await invoke("download_and_install", { - appName: "official_setlist", - version: this.version, - profile: this.profile, - zipUrls: this.zipUrls, - sigUrls: [], - }); - } -} - -export class SetlistUninstall extends SetlistTask implements IBaseTask { - constructor(profile: string, version: string, onFinish: () => void) { - super(profile, version, onFinish); - } - - async start(): Promise { - return await invoke("uninstall", { - appName: "official_setlist", - version: this.version, - profile: this.profile - }); - } -} \ No newline at end of file diff --git a/src/tasks/Processors/YARG.tsx b/src/tasks/Processors/YARG.tsx deleted file mode 100644 index 455db5a..0000000 --- a/src/tasks/Processors/YARG.tsx +++ /dev/null @@ -1,67 +0,0 @@ -import { invoke } from "@tauri-apps/api/tauri"; -import { BaseTask, IBaseTask } from "./base"; -import YARGQueue from "@app/components/Queue/QueueEntry/YARG"; -import { YARGChannels } from "@app/hooks/useYARGRelease"; - -export abstract class YARGTask extends BaseTask { - channel: YARGChannels; - version: string; - profile: string; - onFinish: () => void; - - constructor(channel: YARGChannels, version: string, profile: string, onFinish: () => void) { - super("yarg", profile); - - this.channel = channel; - this.version = version; - this.profile = profile; - this.onFinish = onFinish; - } - - getQueueEntry(bannerMode: boolean): React.ReactNode { - return ; - } -} - -export class YARGDownload extends YARGTask implements IBaseTask { - zipUrl: string; - sigUrl?: string; - - constructor(zipUrl: string, sigUrl: string | undefined, channel: YARGChannels, version: string, - profile: string, onFinish: () => void) { - - super(channel, version, profile, onFinish); - - this.zipUrl = zipUrl; - this.sigUrl = sigUrl; - } - - async start(): Promise { - let sigUrls: string[] = []; - if (this.sigUrl != null) { - sigUrls = [ this.sigUrl ]; - } - - return await invoke("download_and_install", { - appName: "yarg", - version: this.version, - profile: this.profile, - zipUrls: [ this.zipUrl ], - sigUrls: sigUrls, - }); - } -} - -export class YARGUninstall extends YARGTask implements IBaseTask { - constructor(channel: YARGChannels, version: string, profile: string, onFinish: () => void) { - super(channel, version, profile, onFinish); - } - - async start(): Promise { - return await invoke("uninstall", { - appName: "yarg", - version: this.version, - profile: this.profile - }); - } -} \ No newline at end of file diff --git a/src/tasks/Processors/base.ts b/src/tasks/Processors/base.ts index a5cdb0c..44409fa 100644 --- a/src/tasks/Processors/base.ts +++ b/src/tasks/Processors/base.ts @@ -1,12 +1,12 @@ +import { Profile } from "@app/stores/ProfileTypes"; import { v4 as generateUUID } from "uuid"; -export type TaskTag = "yarg" | "setlist"; - export interface IBaseTask { - startedAt?: Date, - taskUUID: string, - taskTag: TaskTag, - profile: string, + startedAt?: Date; + taskUUID: string; + + profile: Profile; + profilePath: string; onFinish?: () => void; @@ -15,13 +15,20 @@ export interface IBaseTask { } export class BaseTask { + startedAt?: Date; taskUUID: string; - taskTag: TaskTag; - profile: string; - constructor(taskTag: TaskTag, profile: string) { + profile: Profile; + profilePath: string; + + tempPath: string; + + constructor(profile: Profile, profilePath: string, tempPath: string) { this.taskUUID = generateUUID(); - this.taskTag = taskTag; + this.profile = profile; + this.profilePath = profilePath; + + this.tempPath = tempPath; } -} \ No newline at end of file +} diff --git a/src/tasks/index.ts b/src/tasks/index.ts index 540030a..519fc25 100644 --- a/src/tasks/index.ts +++ b/src/tasks/index.ts @@ -1,19 +1,21 @@ import { useStore } from "zustand"; -import { IBaseTask, TaskTag } from "./Processors/base"; +import { IBaseTask } from "./Processors/base"; import QueueStore from "./queue"; import { showErrorDialog } from "@app/dialogs/dialogUtil"; const addTask = (task: IBaseTask) => { QueueStore.add(task); - if(QueueStore.firstTask() === task) { + if (QueueStore.firstTask() === task) { processNextTask(); } }; const processNextTask = async () => { const next = QueueStore.next(); - if(!next) return; + if (!next) { + return; + } try { next.startedAt = new Date(); @@ -27,10 +29,10 @@ const processNextTask = async () => { processNextTask(); }; -const useTask = (tag: TaskTag, profile: string) => { +const useTask = (profileUUID: string) => { return useStore( QueueStore.store, - queue => QueueStore.findTask(queue, tag, profile) + queue => QueueStore.findTask(queue, profileUUID) ); }; @@ -41,4 +43,4 @@ const useCurrentTask = () => { ); }; -export { addTask, processNextTask, useTask, useCurrentTask }; \ No newline at end of file +export { addTask, processNextTask, useTask, useCurrentTask }; diff --git a/src/tasks/queue.ts b/src/tasks/queue.ts index aac004a..a80370a 100644 --- a/src/tasks/queue.ts +++ b/src/tasks/queue.ts @@ -1,5 +1,5 @@ import { createStore } from "zustand/vanilla"; -import { IBaseTask, TaskTag } from "./Processors/base"; +import { IBaseTask } from "./Processors/base"; import { useStore } from "zustand"; type TaskQueueStore = Set; @@ -26,16 +26,18 @@ const remove = (task: IBaseTask) => { const next = () => { const current = firstTask(); - if(current?.startedAt) { + if (current?.startedAt) { remove(current); } return firstTask(); }; -const findTask = (queue: TaskQueueStore, tag: TaskTag, profile: string) => { - for(const task of queue) { - if(task.taskTag === tag && task.profile === profile) return task; +const findTask = (queue: TaskQueueStore, profileUUID: string) => { + for (const task of queue) { + if (task.profile.uuid === profileUUID) { + return task; + } } return undefined; @@ -46,4 +48,4 @@ const useQueue = () => { }; export const QueueStore = { store, firstTask, add, remove, next, findTask, useQueue }; -export default QueueStore; \ No newline at end of file +export default QueueStore; From 049889443d19d9b7a0466442a66d287c18ede432 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Mon, 15 Jul 2024 18:12:02 -0400 Subject: [PATCH 21/98] Added uninstalling back --- src-tauri/src/main.rs | 14 ++++++ src/components/Launch/LaunchButton/index.tsx | 3 +- src/hooks/useProfileState.ts | 15 ++++++- ...Install.tsx => DownloadAndInstallTask.tsx} | 6 ++- src/tasks/Processors/UninstallTask.tsx | 44 +++++++++++++++++++ src/tasks/Processors/base.ts | 6 +-- 6 files changed, 79 insertions(+), 9 deletions(-) rename src/tasks/Processors/{DownloadAndInstall.tsx => DownloadAndInstallTask.tsx} (94%) create mode 100644 src/tasks/Processors/UninstallTask.tsx diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 6fa9a75..ddc331d 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -191,6 +191,19 @@ async fn download_and_install_profile(handle: AppHandle, profile_path: String, u Ok(()) } +#[tauri::command(async)] +fn uninstall_profile(profile_path: String) -> Result<(), String> { + let mut install_path = PathBuf::from(&profile_path); + install_path.push("installation"); + clear_folder(&install_path)?; + + let mut version_file = PathBuf::from(&profile_path); + version_file.push("version.txt"); + fs::remove_file(version_file).map_err(|e| format!("Failed to remove version file.\n{:?}", e))?; + + Ok(()) +} + #[tauri::command] fn launch_profile(profile_path: String, exec_path: String, arguments: Vec) -> Result<(), String> { let mut path = PathBuf::from(&profile_path); @@ -215,6 +228,7 @@ fn main() { profile_folder_state, download_and_install_profile, + uninstall_profile, launch_profile, ]) .setup(|app| { diff --git a/src/components/Launch/LaunchButton/index.tsx b/src/components/Launch/LaunchButton/index.tsx index 44f43f4..2c3dbbe 100644 --- a/src/components/Launch/LaunchButton/index.tsx +++ b/src/components/Launch/LaunchButton/index.tsx @@ -16,6 +16,7 @@ export function LaunchButton({ profileUUID, ...props }: LaunchButtonProps) { folderState, currentTask, downloadAndInstall, + uninstall, launch } = useProfileState(profileUUID); @@ -81,7 +82,7 @@ export function LaunchButton({ profileUUID, ...props }: LaunchButtonProps) { } const dropdownChildren = <> - {}}> + await uninstall()}> Uninstall {}}> diff --git a/src/hooks/useProfileState.ts b/src/hooks/useProfileState.ts index 19ef60a..e5df792 100644 --- a/src/hooks/useProfileState.ts +++ b/src/hooks/useProfileState.ts @@ -2,7 +2,8 @@ import { showErrorDialog } from "@app/dialogs/dialogUtil"; import { getPathForProfile, useProfileStore } from "@app/stores/ProfileStore"; import { Profile } from "@app/stores/ProfileTypes"; import { addTask, useTask } from "@app/tasks"; -import { DownloadAndInstallTask } from "@app/tasks/Processors/DownloadAndInstall"; +import { DownloadAndInstallTask } from "@app/tasks/Processors/DownloadAndInstallTask"; +import { UninstallTask } from "@app/tasks/Processors/UninstallTask"; import { IBaseTask } from "@app/tasks/Processors/base"; import { getOS } from "@app/utils/os"; import { invoke } from "@tauri-apps/api"; @@ -25,6 +26,7 @@ export interface ProfileState { currentTask?: IBaseTask; downloadAndInstall: () => Promise; + uninstall: () => Promise; launch: () => Promise; } @@ -78,6 +80,17 @@ export const useProfileState = (profileUUID: string): ProfileState => { addTask(task); }, + uninstall: async () => { + if (loading || profiles.importantDirs === undefined) { + return; + } + + const task = new UninstallTask(profile, profilePath, () => { + setFolderState(ProfileFolderState.FirstDownload); + }); + + addTask(task); + }, launch: async () => { if (profile.type !== "application") { return; diff --git a/src/tasks/Processors/DownloadAndInstall.tsx b/src/tasks/Processors/DownloadAndInstallTask.tsx similarity index 94% rename from src/tasks/Processors/DownloadAndInstall.tsx rename to src/tasks/Processors/DownloadAndInstallTask.tsx index c43a560..fdf3d70 100644 --- a/src/tasks/Processors/DownloadAndInstall.tsx +++ b/src/tasks/Processors/DownloadAndInstallTask.tsx @@ -7,14 +7,16 @@ import QueueEntry from "@app/components/Queue/QueueEntry"; export class DownloadAndInstallTask extends BaseTask implements IBaseTask { onFinish?: () => void; + tempPath: string; constructor(profile: Profile, profilePath: string, tempPath: string, onFinish?: () => void) { - super(profile, profilePath, tempPath); + super(profile, profilePath); + this.onFinish = onFinish; + this.tempPath = tempPath; } async start(): Promise { - console.log("Downloading profile..."); try { await invoke("download_and_install_profile", { profilePath: this.profilePath, diff --git a/src/tasks/Processors/UninstallTask.tsx b/src/tasks/Processors/UninstallTask.tsx new file mode 100644 index 0000000..86dcc1a --- /dev/null +++ b/src/tasks/Processors/UninstallTask.tsx @@ -0,0 +1,44 @@ +import { Profile } from "@app/stores/ProfileTypes"; +import { BaseTask, IBaseTask } from "./base"; +import { invoke } from "@tauri-apps/api"; +import { showErrorDialog } from "@app/dialogs/dialogUtil"; +import { ReactNode } from "react"; +import QueueEntry from "@app/components/Queue/QueueEntry"; + +export class UninstallTask extends BaseTask implements IBaseTask { + onFinish?: () => void; + + constructor(profile: Profile, profilePath: string, onFinish?: () => void) { + super(profile, profilePath); + this.onFinish = onFinish; + } + + async start(): Promise { + try { + await invoke("uninstall_profile", { + profilePath: this.profilePath + }); + } catch (e) { + showErrorDialog(e as string); + } + } + + getQueueEntry(bannerMode: boolean): ReactNode { + if (this.profile.type === "application") { + const metadata = this.profile.metadata.locales["en-US"]; + + return ; + } else { + const metadata = this.profile.metadata.locales["en-US"]; + + return ; + } + } +} diff --git a/src/tasks/Processors/base.ts b/src/tasks/Processors/base.ts index 44409fa..c3472c0 100644 --- a/src/tasks/Processors/base.ts +++ b/src/tasks/Processors/base.ts @@ -21,14 +21,10 @@ export class BaseTask { profile: Profile; profilePath: string; - tempPath: string; - - constructor(profile: Profile, profilePath: string, tempPath: string) { + constructor(profile: Profile, profilePath: string) { this.taskUUID = generateUUID(); this.profile = profile; this.profilePath = profilePath; - - this.tempPath = tempPath; } } From 7b46245d1b5edef9937ec524dceb1eed8f6f873d Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Thu, 18 Jul 2024 17:24:32 -0400 Subject: [PATCH 22/98] "Open Install Folder" and setlist support --- src-tauri/src/main.rs | 14 +++++++- src/components/Launch/LaunchButton/index.tsx | 11 +++--- src/components/Sidebar/Versions/List.tsx | 10 ++++++ src/hooks/useProfileState.ts | 22 +++++++++++- src/routes/AppProfile/index.tsx | 1 + src/stores/ProfileStore.ts | 36 ++++++++++++++++++++ 6 files changed, 88 insertions(+), 6 deletions(-) diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index ddc331d..0fe5bca 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -174,7 +174,7 @@ async fn download_and_install_profile(handle: AppHandle, profile_path: String, u // Extract/install if file.file_type == "zip" { extract(&temp_file, &install_path)?; - } else if file.file_type == "encrpyted" { + } else if file.file_type == "encrypted" { extract_encrypted(&temp_file, &install_path)?; } else { return Err("Unhandled release file type.".to_string()); @@ -218,6 +218,17 @@ fn launch_profile(profile_path: String, exec_path: String, arguments: Vec Result<(), String> { + let mut path = PathBuf::from(&profile_path); + path.push("installation"); + + opener::reveal(path) + .map_err(|e| format!("Failed to reveal folder. Is it installed?\n{:?}", e))?; + + Ok(()) +} + fn main() { tauri::Builder::default() .plugin(tauri_plugin_log::Builder::default().build()) @@ -230,6 +241,7 @@ fn main() { download_and_install_profile, uninstall_profile, launch_profile, + open_folder_profile ]) .setup(|app| { // Show the window's shadow diff --git a/src/components/Launch/LaunchButton/index.tsx b/src/components/Launch/LaunchButton/index.tsx index 2c3dbbe..60e4f55 100644 --- a/src/components/Launch/LaunchButton/index.tsx +++ b/src/components/Launch/LaunchButton/index.tsx @@ -17,7 +17,8 @@ export function LaunchButton({ profileUUID, ...props }: LaunchButtonProps) { currentTask, downloadAndInstall, uninstall, - launch + launch, + openInstallFolder } = useProfileState(profileUUID); if (loading) { @@ -85,9 +86,11 @@ export function LaunchButton({ profileUUID, ...props }: LaunchButtonProps) { await uninstall()}> Uninstall - {}}> - Open Install Folder - + {profile.type === "application" && + await openInstallFolder()}> + Open Install Folder + + } ; return { ) } + + + + { + profileStore.profiles.filter(i => i.type === "setlist").map(i => + + {i.metadata.locales["en-US"].name} + + ) + }
; }; diff --git a/src/hooks/useProfileState.ts b/src/hooks/useProfileState.ts index e5df792..8fa095a 100644 --- a/src/hooks/useProfileState.ts +++ b/src/hooks/useProfileState.ts @@ -28,6 +28,7 @@ export interface ProfileState { downloadAndInstall: () => Promise; uninstall: () => Promise; launch: () => Promise; + openInstallFolder: () => Promise; } export const useProfileState = (profileUUID: string): ProfileState => { @@ -47,6 +48,12 @@ export const useProfileState = (profileUUID: string): ProfileState => { // Initialize useEffect(() => { + // Set everything to default values + // TODO: this is hacky + setLoading(true); + setProfilePath(""); + setFolderState(0); + (async () => { const path = await getPathForProfile(profiles, profile); const result = await invoke("profile_folder_state", { @@ -58,7 +65,7 @@ export const useProfileState = (profileUUID: string): ProfileState => { setProfilePath(path); setLoading(false); })(); - }, []); + }, [profileUUID]); return { loading, @@ -112,6 +119,19 @@ export const useProfileState = (profileUUID: string): ProfileState => { } catch (e) { showErrorDialog(e as string); } + }, + openInstallFolder: async() => { + if (profile.type !== "application") { + return; + } + + try { + await invoke("open_folder_profile", { + profilePath: profilePath + }); + } catch (e) { + showErrorDialog(e as string); + } } }; }; diff --git a/src/routes/AppProfile/index.tsx b/src/routes/AppProfile/index.tsx index 97f4816..304c098 100644 --- a/src/routes/AppProfile/index.tsx +++ b/src/routes/AppProfile/index.tsx @@ -15,6 +15,7 @@ function AppProfile() { } return
+

{uuid}

{profile.metadata.locales["en-US"].name}

{profile.version}

{profile.metadata.locales["en-US"].description}

diff --git a/src/stores/ProfileStore.ts b/src/stores/ProfileStore.ts index 528d8fa..efe673a 100644 --- a/src/stores/ProfileStore.ts +++ b/src/stores/ProfileStore.ts @@ -64,6 +64,42 @@ export const useProfileStore = create()((set, get) => ({ arguments: [] } } + }, + { + type: "setlist", + uuid: "f5d7d7e1-a2ae-4b0e-aa40-d5daf8ef6903", + version: "official-2024-06-12-0", + + metadata: { + locales: { + "en-US": { + name: "YARG Official Setlist", + + description: "This is the official setlist for YARG", + + iconUrl: "", + bannerBackUrl: "" + } + }, + releaseDate: new Date(), + websiteUrl: "https://yarg.in/", + + organizer: "Hububble", + credits: [] + }, + + content: [ + { + name: "YARG Official Setlist Songs", + platforms: ["windows", "macos", "linux"], + files: [ + { + url: "https://github.com/YARC-Official/Official-Setlist-Public/releases/download/official-2024-06-12-0/official_0.7z", + fileType: "encrypted" + } + ] + } + ] } ], getProfileByUUID: (uuid) => { From ee853ef56ded739fb2577f575eb9500a8a716963 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Thu, 18 Jul 2024 18:01:57 -0400 Subject: [PATCH 23/98] Started improving onboarding page with new styles --- .../Onboarding/Onboarding.module.css | 104 +++++++++++++++++- src/components/Onboarding/Sidebar.tsx | 32 ++++++ src/components/Onboarding/StepIndicator.tsx | 28 +++++ src/components/Onboarding/index.tsx | 29 +++-- 4 files changed, 176 insertions(+), 17 deletions(-) create mode 100644 src/components/Onboarding/Sidebar.tsx create mode 100644 src/components/Onboarding/StepIndicator.tsx diff --git a/src/components/Onboarding/Onboarding.module.css b/src/components/Onboarding/Onboarding.module.css index 2cfc266..2ecb83f 100644 --- a/src/components/Onboarding/Onboarding.module.css +++ b/src/components/Onboarding/Onboarding.module.css @@ -1,4 +1,4 @@ -.container { +.mainContainer { position: fixed; inset: 0; top: 30px; @@ -8,3 +8,105 @@ z-index: 9999; } + +.container { + display: flex; + align-items: flex-start; + align-self: stretch; + + height: 100%; +} + +.sidebar { + display: flex; + width: 320px; + flex-direction: column; + justify-content: space-between; + align-items: flex-start; + align-self: stretch; + + background: #070810; +} + +.sidebarTop { + display: flex; + flex-direction: column; + align-items: flex-start; + align-self: stretch; +} + +.sidebarBottom { + display: flex; + padding: 12px; + flex-direction: column; + align-items: flex-start; + gap: 10px; + align-self: stretch; +} + +.sidebarTop > header { + display: flex; + padding: 12px; + justify-content: center; + align-items: center; + gap: 10px; + align-self: stretch; + + color: #9194B1; + font-size: 20px; + font-style: normal; + font-weight: 700; + line-height: normal; + text-transform: uppercase; +} + +.navigation { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 10px; + align-self: stretch; +} + +.navigationButton { + display: flex; + padding: 0px 12px; + flex-direction: column; + align-items: flex-start; + gap: 10px; + align-self: stretch; + + color: #B8BDD6; + font-size: 16px; + font-style: normal; + font-weight: 500; + line-height: normal; + + opacity: 0.9; +} + +.navigationButton > div { + display: flex; + height: 46px; + padding: 10px; + justify-content: space-between; + align-items: center; + align-self: stretch; + + border-radius: 6px; +} + +.navigationButton > div > div { + display: flex; + align-items: center; + gap: 5px; + flex: 1 0 0; +} + +.navigationButton.activeStep { + opacity: 1; +} + +.navigationButton.activeStep > div { + background: #0D0F23; +} diff --git a/src/components/Onboarding/Sidebar.tsx b/src/components/Onboarding/Sidebar.tsx new file mode 100644 index 0000000..614aa1b --- /dev/null +++ b/src/components/Onboarding/Sidebar.tsx @@ -0,0 +1,32 @@ +import { OnboardingStep } from "."; +import StepIndicator from "./StepIndicator"; +import styles from "./Onboarding.module.css"; + +interface Props { + onboardingStep: OnboardingStep; +} + +const OnboardingSidebar: React.FC = ({ onboardingStep }: Props) => { + return
+
+
Welcome to YARG!
+
+ OnboardingStep.LANGUAGE} /> + OnboardingStep.INSTALL_PATH} /> + OnboardingStep.COMPONENTS} /> +
+
+
+ +
+
; +}; + +export default OnboardingSidebar; + diff --git a/src/components/Onboarding/StepIndicator.tsx b/src/components/Onboarding/StepIndicator.tsx new file mode 100644 index 0000000..af27c73 --- /dev/null +++ b/src/components/Onboarding/StepIndicator.tsx @@ -0,0 +1,28 @@ +import { CheckmarkIcon } from "@app/assets/Icons"; +import styles from "./Onboarding.module.css"; + +interface Props { + text: string, + activeStep: boolean, + completedStep: boolean +} + +const StepIndicator: React.FC = ({ text, activeStep, completedStep }: Props) => { + let classes = [styles.navigationButton]; + if (activeStep) { + classes.push(styles.activeStep); + } + + return
+
+
+ {text} +
+ {completedStep && + + } +
+
; +}; + +export default StepIndicator; diff --git a/src/components/Onboarding/index.tsx b/src/components/Onboarding/index.tsx index a4dbfa1..b46b13a 100644 --- a/src/components/Onboarding/index.tsx +++ b/src/components/Onboarding/index.tsx @@ -4,12 +4,21 @@ import { useProfileStore } from "@app/stores/ProfileStore"; import { open } from "@tauri-apps/api/dialog"; import { invoke } from "@tauri-apps/api"; import { settingsManager } from "@app/settings"; +import OnboardingSidebar from "./Sidebar"; + +export enum OnboardingStep { + LANGUAGE = 0, + INSTALL_PATH = 1, + COMPONENTS = 2, +} interface Props { setOnboarding: React.Dispatch; } const Onboarding: React.FC = (props: Props) => { + const [step, setStep] = useState(OnboardingStep.LANGUAGE); + const profileStore = useProfileStore(); const defaultDownload = profileStore.importantDirs?.yarcFolder; @@ -43,23 +52,11 @@ const Onboarding: React.FC = (props: Props) => { props.setOnboarding(false); } - return
-
- Pick an installation folder: + return
+
+
- - {!downloadEmpty && -
- Install path is not empty! -
- } -
- -
; + ; }; export default Onboarding; From da6c7387873d40fd08e464e0f7bb3213b5c56bc1 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Fri, 2 Aug 2024 00:28:59 -0400 Subject: [PATCH 24/98] Progress on onboarding screen --- src-tauri/src/main.rs | 2 + src/assets/OnboardingBackground.png | Bin 0 -> 971698 bytes src/components/Button/Button.module.css | 2 +- src/components/DropdownButton/index.tsx | 2 +- .../Onboarding/Onboarding.module.css | 58 ++++++++++++ .../Onboarding/Pages/ComponentsPage.tsx | 36 ++++++++ .../Onboarding/Pages/InstallFolderPage.tsx | 36 ++++++++ .../Onboarding/Pages/Pages.module.css | 86 ++++++++++++++++++ .../Onboarding/Pages/WarningBox.tsx | 11 +++ src/components/Onboarding/Sidebar.tsx | 4 +- src/components/Onboarding/StepIndicator.tsx | 2 +- src/components/Onboarding/index.tsx | 46 +++++++++- 12 files changed, 278 insertions(+), 7 deletions(-) create mode 100644 src/assets/OnboardingBackground.png create mode 100644 src/components/Onboarding/Pages/ComponentsPage.tsx create mode 100644 src/components/Onboarding/Pages/InstallFolderPage.tsx create mode 100644 src/components/Onboarding/Pages/Pages.module.css create mode 100644 src/components/Onboarding/Pages/WarningBox.tsx diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 0fe5bca..6d0777a 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -147,6 +147,8 @@ fn profile_folder_state(path: String, profile_version: String) -> ProfileFolderS } } +// when i was getting disk space in rust i used "free_space" from the fs2 crate because it takes a path and works out what drive that would be + #[tauri::command(async)] async fn download_and_install_profile(handle: AppHandle, profile_path: String, uuid: String, version: String, temp_path: String, content: Vec) -> Result<(), String> { diff --git a/src/assets/OnboardingBackground.png b/src/assets/OnboardingBackground.png new file mode 100644 index 0000000000000000000000000000000000000000..39a44b07072270e2b5921c53fb7d6ee995af30b7 GIT binary patch literal 971698 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�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

++XB@y~zopZw8(^`#{Fkcv%i zK$3t!V?b@L{SwF2W{%;-B9~Di(fJ>P=CABYJ6!xYtG<>!zlf_0-kQz?Brht8daYu$ zl_9xiTwp`fMiilR&_PIDv-hBrMvX+W%&5?1fJ;A1W&JsLSj}t3ioS1yVafe@Lr+54 z!k~BIsvPKg2u7<{SJb?W2~F+auv0VP_JsYp6o|>I!0wI9eFyj%D>!vW`Fw{G*o`3l zw+j$n@pR_~k>4{6?jHbo+j^2WXsG-Ue$ep|@U%*W{BVchANPmf-Oyk0Iqvhlsd1Ew z@*@IVJg-ABL57Gpkzd?D{OTtk9bdl0 zvczD(8^Mh}Xb8~}lN^U<{Cv)r6gW6h#o>UvJ8>>ZMOOz**%}k!8c10NIe;#b_$dXl zlBbpDGg(<=gXG(9#FOi}2FX&M;QpyTp(L$^WV7U5?iB2d5zR|9Yllap$ zk=9cb!8pB~I?Js|KAf9NUIm%&hsC*x3@qlbmw6Mf6ew5d z>!H(vucgwH#`wb*j2KbjJ=Doj7j;dzS?;;EYyL~aaf`np$Dn-P5Kt((g zaakkl8c8Qe;JF^|aCDzp!y9D0PGqr&f!PfmTbq5~_J@hJd9g zVH7Zs8!F9OS1dn6jHpRUoYk9GB^xx@bQWUnmlK~rZRAvgRZ50R1RIxBTN|Yc-&aLP zS{yBI+A=+aH!_0u)e?%AFLYg!Pq!?Q+jr(51FGOUyfvS;O?%Ql7gB4E6GkLDiD zTi@tlT(QIP(%tfkyW4SFyz+tc6~+B`bTdnrSFnkak+m1J?Aq=T~#YSh(_Jai`w}KlsrOavSQS=vg_dkE}YB?UoxoF%H zNX_234pvry>A%;ADKoK#5tKI|;(%qr-9e6vsES3a6U^F;aD$UpVtdJ}Fk0ow`7Gkj&fRRn( z(C!FR@zj0ud}!R)W4I{FiS@4`P_|JtCXqx(cw|TaL#@m(f$_(+qw3_nDg|0dYrA4zA4Wu;%1Aknx((!(tn%3Y_6~Ddmrg zUiG>t(e9S_*~rSp#pIGs?;ky+(d6=~eyvAK?8D^w+;X{Qd9zOjcjiuiy>rYZv4C z&9+2?hGuImBYF%1B9$;i%}lzu%}F@be^R{B;WA;8$ezS22C01 zK{ux7Vr(1v1l$ahmT@#@p4`KDy?}IHQTRlYEy<2Wx9oSkZBMvy_Ti0)A_I$gjA-|W;`db}V-aOlW05^$mX&(K+p81oI zV%%_$nE>=f{f#C~+yb4A05m2U_nzAc#I z-#`51K;52lBqU%Q~# zRSgtErmVh@kD`%~!Y$G49fGX7ks#gp4;9=k?kDf*hp%y12!n@O zKRpe9CP7IrK+Us;iF+mbB8oA+H(69AlgwNUNa1>5 ztcUwi4gX~28HI{N!>GRq=Y-KXvM8t^r0Uu3FNu)10wCS|O=E>70r%+;&}s_#n!ZCc zU8Jqdz=*1x44oQb1_sy5e5ok;zgABWmYZA`mC&TFT1Pk<)0wf6Af~wL06DdCE+a-@ zV_L|$_ux<*Bd1&C*I~k2(HKapA(UA_D2>R~$X6Awwp^nSs3Du8HX-bo)WfCO7MRfJ zIBQ)Y*o;On)T$K-s39j!D#VDsTvO=a5~|#BlTE7L?r=!!pJ^5eP#2)?09A%prihs! zN)NQ~UV4i>Yf*Jn{5lrhjW{E?5!V$FRpT40pq3;PgX)9q5%5k!aTb3rwa^U$4rl-Z z75EW>QL4A-vIe7E4kX4(@?#r`>(lQ2Ar~)w4ErOk3P2j1FruFv)NL#%k=fJx$=B?t z!rI*tD#z6e`W|Zjy;Mi~@aOu`FXflNKRw*bqI$Q`DbK5{LeFph@a6ye>(hU{KD>JW z_|XUVAG}^(-{C$eL7T}{^f%HQ=j*niEEvtL2{fvphV8>a6i)bJaqBnoa4&y*v#t=; z#IM#&SPn|_KoQB^Qp(0)5j0_>m+W3w!$4NGDtV;Vg*rnTHRAWaR*&<|K%gww3|52@ zDkp*_cClJc>QYJTC_va0f4uiU|5$$ZvA+HK@aI4B&wp6|`bU2ACI$gW@M4>)Hf4_n ziRPfJV*y#PTL#Qt7`|>yF=;Gf>h;x(U?o@5ctEqRhtpn{N?n3(dVnnQVtMEsXmuMH z+L&(lifltc4D|jF7%cM~h{xtIj7i^vRq>7zDvV5eV&nil!rW;PM(>+_9m|)8GR2^u zg0XT=;;5?%c-Nu}+^XnZLO{r^Uf?ZQ?*{bQkFS?I@fbc~WO)5hVrHaqJNhh7leNC) z^Se0h11s$x9(vba{dZi!_zuS5hl*eF$M6Vlowgg+v;Uw!&pZm#-lnHv*tqfw9FU{O zjqO$T^{o0ETIm23afFfnhOr++wjXRAu^MRu2;N(kk6*p_`qe8q7n>lN1r9@|;FHau zfsDN&0r`}7W#|?VDDLm@a33-y1M-^mjD}>r@kB~&=;d^lx2v4IUr*kzCLIOb0eX=2 zTw5I$TshLHU*5T&zONs=#=~9mPLvDPGU$~H+K|7A-RsQ!g__1TXygCw>*|4%DKS%v z{x#VakJXa?cGMUBo?*bPFMt1;i>8E=4*(q!IzbferYTI>%78I2pQ0~9Qg1+o= zkE@8l8!i6*y=$5V=sx4eLlnFRwN~PutLKl0Z5&8q-`(~j%tBBB!> zTWA6CN#Wfm^utR-ecSIZ?!6gL0#H5Za+GC>4Cr8;THOCkbHlE5ud^$~bv>WaGeGjN z;0a30)nlgcB>vQ)9-J+U+m508lsosvJlN``WNqO!KhX2UP8jEg(>LU*=G><+WdQUS z$sK6;wx5R$pDe%&Ln`jSxRiPF-cR)Z{{N8oK0F;9o$B4956&H21l?AykE?%s{_GE5 zfBK(a{>S2$J9qbTdGY%0_4~({ua@JT9#q%JXC)=oXmd?Emu!Q|Q+^p(m+@#6jYgXK zx+uwqqjMgs7g2t7TGd%DEksMCnPA`O-yn4_*U)Db^>Q86s9i*LV^uF`tPNz$jkzBs zci&ZoweTgEmoq7ttbNm^uJ2~DKFOl8Rru6_(qZK%Lc9!$e|X`4_iy;^@0ZU$lfV37 z{lkCo^G|s?6$~A0K&-lG%PL4}x*bw~oMG8!7I3E`Y~#5sXcdXS$wwk%ro^Bpnu*T~ zyKSHsMn{RSj2{I@N?UES80unZ>td zkR|e}3a!rG3O#u~%gJ-~em!}vA@70!aL@(nxURvq%aWeU!Bq6U7y8lrayT$+j6{f; zEp%(U9&NCRMns}hZpehq%$f`j!TSz#sQJP)28R89$6DbbpEPHD^(`b*qe}4u0(xHz z^w1hE8^<6!PXo)+i;)4S)gH9uN@E1vq`@J1w8FIIRN3LC<}!0YC}jJ7)QS_7+WiPH z4W=U~v&k77-m(3V)h0$)n?wtcG~fb8KuQmwWA;zmr;Raj6!i*(OBgJ)`?`@I6;5qi zZHMj#j^E1^p_59#i0n7I)y-3*A;?dls!^q6$I>3&V&_DhtXlKy=Q6fv?hQL)KA_E7 z!t%S?l}vRx93R|r7o}TK-tE*t-#>IaZk^1tb%C;4Je;`GS5RM&ZucaW3ZfWA%~D5H zbBf*G*T7?E;kki*89H223OwsDuUe|-Q42PyQ{3P7G%ea}sL^p;>b@?nvXQB8ie?xD z-;Ese)s_3W9kFzRWEY2813LT@^LxZxdq#Hnb~JLcZI@VGEoEdtL*N$ofB3)3Pd=nN zDzK;?)h$k)x<%bl-Enb?EDKb`pLu$7e)IX;H(#Fq`q>wM{{In*J<`&s%xBlfg}%|wQ3qdt`^HZBb|T(YKNVhgGaz z+6x-#6?TxQ)k4BZTB8IRox~|nCo!WsEoyKu1-KPz4%SHwwzwN(9sHV6jNvkDRQHO5 zBh0g=RbQr=vlC=u#Dn(D!ee>S^)(CukCxxvyz#PG#N6C%s+*Aw74j!%-JHU@&j6>* zW1K48-B%u;Kz?W$&`%ei<@3~DdCf!rULY%c@)v#(R801@h;K!d;oBXYe*jACj#vGM zKMKPJKhB(V{*iy4`TfG~PvOZ&#rB4S2^iGD4AN%EgQIhXcCc^_vg`Cd{S8(IRz|gM zW#BiTw4UhCk+2O_bx@54=PY13n=t#h;CLv^ z!9>Mt(6Ra7{P1w7fdhTH6MMzy>V4 zQKh0_W~o87_t%0u#Edm&q3Q#L2G2w5seuc`ZujWh^OrSO$E$dY(+o50e8=FBR7%lU`scyXy zimmIBMS#Q8uMhzga7k@H>)@aQ_dDTtv57sZTO7cDQESxXZe?ZBh(ATK@O_U z1=tc!063Lp!QDZR2R$6H;7;V_Ox-+cD=lmE|We*+FL4|ne$?_M8{ z4~sgDuSr^pib6$$8)3pILgFb?punO47Kc00uOIpPefis06sH9NL=9BgkRZUdk)n7CZ0e1gE|oD}jH_!B zwn)}#2>llz#p*e5J>JVNeuIyH2pK>F&5t8CmZ+CqT znY?2Sho|J*8|d)pADv@yk_X=={Z2U4)|-*seE>{ue_E;KIOgJY3|3qkqg_YaS5Cg6 z6mavo+By9kkl?k9XzqJow!eIZ04)12Vz83F1IYWi&G&Wy>{syL$!Fxz@|iz;HQ)RR z1qHst+vg3>aqyaayP)$A2HobjbMP$z=w18kcuU!K9mI$-(1JfBM=GnokuP;1@`~AV zInm!Jz?BXD49HRRox9vHp^6zKcwgPGU%mh8;e`bBHYQF!!qCZPrzTrND6&%4Rn{cU zVK*{GbZB3kEK5ZPj(lftD9;6-C_L-w9v5s6Mb2JMCt1%4EQLA;D9go^s676|dmJ2I z+~Mvh*dw8^4~Ia7Ahqq|)ePe$afwEl6j$uvyK40)05_xqZFk%)qBNb+eeKNOws(M9 z|9ONw?k_)$TzO_f={N4Nm!uLf0$wn84r@7|77?tO7G#EsDnBYEo*t!i%0jCHD`_g|M_Vdp%X=*6McnSPUnT&0Q4-^ zr3EFnlKQKL0+zN&8CJ)-Bnj7Dd4nBanOTh&8{DcG$IT6L03Vy8#l;rLJ@aE=@yyE_ zr89hF5uv{R5dZW4(L1F=9I!Y&C>E#_UBo$c3)~_H2USssrYCq%zPxw$clWP;a`*PF z|N8UCH=jMe{rj7*{>PVJ0?UJ2UK|duj?0}>2Nq`q3m_Tv25l+BuDyiN#|ieZ;Pgnh z$Xm}7;|pAH%0Xq3TT8sf41g9y7`W(_?g+`E5u`Z8P=KTT+`?<4nF6Bn)If!Arn)`` zOReTMv4n5>4vUP3j?xve+ytIqzbCI>>u-LyeEymI@qhDw{2%^{&$*uKEwI$+a-kao z)p+Z*7`p-L_Ne+r$hma8`or`wvG`qAW6uu8-7u(5bqC=fTVm;~sloUDwPWIac#)2t zF6<<)OJiWFCg@xiL)x-vzLZv_I{(FshXuq3^*8urPPpOA$1Z7`)69AtduT{Vsg$yJ z@0ct;v4AMKZbho)U3%i?-4snL`2}9svt$!}-rVD60$1Gg^(&>6^BsD&gpjSXpiSF` zr>#~3Oz_Yde}2!sUoZ4P&g0Elxq3Jf8Q0pWlJ-MgeGSVSAjkbMKl3v=@dgC^AnP z3c3zA6U28YwaKi+@W*JrIDwc-`jYiGMxw32B)EDF{pqXs?jG)AWjZqLe8h-T!yg$; z|Dqg+At(pXn4o9)fGV6uI2)C#7@5orGnyPkFe$BTH^1O*+>rQ*z~6*>XvNw<_OsX}=6KzQYh1ErF5jG8+&RC1s1|j!m1d zw%}}q_Rf@@0nDLg$QS^%3yEO9oR(L#?z!j^|0woQ4^$xG4zCT9tF{?Gp>|K9t_wE}Rei-SU4c&&6< z^sr!YI6530oQhJ`SakO*1)hfkUjO9o;l1PI#}AKRp5K1{c>40~+fTlE`^h(YaPHyY zULM??!fBMUZ3}9wfZ95c3uEaY*OTY6xcg;!d?ODp@cH>n6%e8UsYC~1+fq22#w6xu z93vUV)|H#pi)bYmki3c0saeWqL_vX(qu>~o6m?_cB-gfsHN7@=^`>~M=hHPkX?eF8 zHK`l*A6OXK-yQwWevY4g?EdT5`lmnekN>&;<&XU4>(L%&k#IwZjtjlnGa8_swX$=y zAGCTARY+cV=XS3#)bs%iouj-g`vLk`Qw5q%fV5p!>+xK!x6V#_qD_I?tuBYWH03Tj(f$huv&Rl$tV;xXpv!TEI3yMwwa{P7MidL*iAUNv4G)i{;2fc8Ikm37Z>hV@Celmh9xG&k9{j&eR1O1Ie=E*o= z2C20=JbGor7MDpenQ=L3U);uiF#P`yj(5L!_4@AaPMnLX6f|@Vl8=x6t8WCrvSdl< zcmPkXE7vt5*EvQ~#o}-{$nhwLr7ZfgnPQ4@G8CI=rZWaT5KlRuc{o@GGWN(^d@c*bOJ>k1b!E9_XB zXZ5@KESQUf4-XB4D#@stLTflCn~K7e0ixu&t{IGFkxfVRaul;jq}G?Qam7VowvWrP z!O>}#JkZFj59&O({CJVG@YJ9rm;s|vY^cu*{nL|;&Yfzur&(kqqZGvL=iJ+XVdl7R z$<*!a?5kcE!*_O&ZpNL*TV*Q!O5OC{Jl~B_s&5rw_kkWQ=p(0GU|E*m|NG&;|L^4f zD2sA&tAo2+;1nuw>eRUfZi%4uq8iX=Nu6O)noK}X?@7-^p|1~zmxuG)`^Rt2=Pw`6 zU!PB3ynX!QtsYg6&OIFT&S_|)C|DBUOF_z(X`*Ps8~W4gPwR`9(6g#i9N#`>zz*4i zjbboTCJB$i(Jz}PvQ|Yv-dQl0(xH{XTN*6S$|_{pvg`vFlaJzek-}?jo-QQn6{z!iMlklVOhoAo= zx8qQOM+M+ussxp@Fyp1dcw*2L9qRuYg?dgGH7oE8D@8Y~&dAtyKDnCfVD#|o8ng!~ zeqgq$F&WERohWuh`;h?}9U_C-Ys1`dFR6x5#MU*~Ff>sveu6>QYy~lk(j5l0x$l66 z_B&$G9R8vE1r0ep5#TT1TY{M!D54gp_FMBhzjY0fXHcz^==0+d6!KD#g(ohEX9JUd zm`}-WobG;>>xiG+3y=1m=~a*CbY6NH+giF0x0~=aPZMX{7kTmQI?)97HWqN)yNn^C zBHv8&zK41cx&1#_mw^OrCcfJV!I+ST7^F&=7T8))z(?&xo%2)CRIKR`VH1amL+Fj0a07IC}{*XEp#GS9d2)Mdw_H0fSE>v z2E{G`JPg(x58fKnl0keBPaZe=BgL2*LUlO+8aa9tV@6)WY6m&2af0Lm(+(c*C&1q`#6 zGcD(AAJDAi70J0qbTy103^Qn=RWZz`>dYB;o$;DA-4ck=!dIBs`Sf}3v|xa?7Bsxw zz`1416oW8_MNiuL*^jqP_9JF$`D{SrcC`oW?vaQ)a@dLbO%J#i`#VT?4U@~@3A7gt z3W1&CLqAjM5MhVr#XX!kTa^L=#i?Ez7|4BpaB9F$W3!c8Ju)tnHCGX(pA*@bK}8g< z4r9^n1S$a>v+`=`N4K5FY$g%AVX!+Mb{y@bAfd@Np^lZ>!Kbrf!#y3!i` zOjI0nzbd{fkjEX!avJS$=jvf&2{cApr?rkaKNI9!z2Zb(JsN+FFa5O{$0Z*wZA)F> zhE14sgsRWgdB#&~8@X|`eU=8cjMeSs*?;rjy!dBdb*p=|1%GhvM%~QdlIE!NH}w@U`zNQQAWeQ354+k^+arvvs{){1&!*zrEW0o8$KBar^YBtLp9I?p7Qe zT+(c>eyJldfa15{?*o9luejrbtWMr|?;CA;H2hH@G;gxix5Q2@(+Jv=&8OmDlez^b zTT0`7$FjDU_ziqRe%(&`eRzB-C)W${H2AlDzv1JE~Q8W*YRd>sTH8h%FI5e$B?XE2$VXqpR z*z#v6ByF~K2@m=dj>hg?xOO4sC=t-rZWV2V1n|v4BdVZxfMR! z_`%(?<*A6`u zQ=*a>H0eXrs0}1h>BLfDWf5j&>S%!o1{97n9CQU7xiL#{2tWZtpimqHLIsmQy6JH* z<84igXjI*rC#1c*oprsQbY!xR#H=(2TPJW#8O>}u*cu}Z_84&?5TQdTNeMYk9PrJE z$XCn9HXhX`6GT>kOQd>rQTC+XZsVH+SnSgJ^z>kE7qZnni}j{3qXVN2H*Jb*rMGQ^ zFDBGXph;R_-6Oi!YwV6FFgGVTW_$e%!^s&l}D63>+!I|Rw*s-dw5QE))Q#DL}0kp z=)s^Uz99;6$k-rd@M3Ly`=>1yXc_YX+(t6!)wX~JEch4fJh0p4CGW88vC&m_M^#B<#l9I&+m(Ukt_ZzpMCIKpZ(%q z6j-76%W`z<#@px1?VVd!r<&Y11q=`oS@O=lG20tw(V412Cb3MEYW8sAZk@Yvemn5N zZ*R8nX4^h}*gkpC8>e@xyLEbSSkS|Vd7BAa;DZmx?e6YyLGl#1p=u@3>C>Q zv7P3ahF!pC->7zF+d+v)pkvHuYIVCdhPD(L#?+$MxP+}`;&PU&ZZ;&A(yL4hm(8!I7<8umbYSTzc_p65pd0RU3$=$(Q!QSu zeh?pakdEeXN+IOY`8F@y7sHFibn}R%M%Mg+ZYZfzJqxxg;{dd z3qWINGGv26&+>v^e*-7vK*w(MA#tOBL}x%uU^0ub_5i3Cr7w700L>Q<2w3eMi_ zNbzzET~Rg1dS8MVryN4^i?FlcTwYI4o zFOHaS)r$1!l?+df{8WT`*IBR&^LtCedG*Tp_~}L0&=IaNJbmTtAG#~VkgJ~7z9=0A zDjFwtJ9|&RO_Ph6GT*ICIU95Xra@uC=x=4m>srxL^dhDj9sjVyweP93Myj!26ELGp z?c-^tFC>H@BC4w%?sPe{dL~u_y4(HAc={d46{1G|=(>q*-((e8;x@oR^5e{H?!1s* zxCwoIL3jxjf)jaZUgA5Ld;?(hM{y={Y#7BoMU43s<*6=UoXNhhZ}WL_DEGL}dp`;# zc{W8H@#Qn{wDfftG%Mq!3p%sx#);s)WAxcq5Rioou@X%$l(4-?Rd65h>={0I?w&88 z$m@-7ws61s_(G|O0zn#CFp`0#I8;=~$N&j}v9f#X)?3Hz;E!8)wT1g_`{<2#st3j0 zvfQp%70%cxKtv=QgTMDY^6slH1d+fuK0G*MXgG@{YX?Sc|IKR;3tl*QydeXr6$J)L z-&qFrI?6|Cz0#%z%+d)_+RK`HIh&2G-w8}BR)cO151Os|KdR2UbV9&|mK%jlLT7X! zV!Kcj3=$E3|MI22e2L%v!}a4|$d7;IfAszE$w%C_y>b_eWCRP}BcEE$ow8k$rhp?$ z9k4`HO`n}`rhHir3DVUVbT0ps!Np;&qrQuR7hu5-uk=^1P_xa>1)~GWdK;0ARPIE*DI_Ysmgr>R^0cfa!i? z<7`*@d>~-Hr&0LT#K@m=m3}Nn^PXR1_i& zR29y_DWIa+cn}$m31mT>Ex63=d1%{z8WlIcu;*n?1TPDpOP=|m)ZF^#|m=bCa|EroruWA53Fi~9?PiSe{=#(N95xVK-&-@iPX(ln?Z-cr5Cf}ZDVz9kaD@@Ttf$WU? zN|xRe^=fl%dV^Z&2^d6|&F7^(dq?}t4~4@~46=s-z1jHyVAJ(sA(4S&K9jk?sNFFZ zW?;TM?*nOha~2a3Q(2p8I&*@RpQs^D_m0wBqM{QYD3wz9;VW*gZ z+M=Bj`y}+5-i1&uj1+Nz%l+BFxwNFI2ymJPGXOp!I|i*91w*h8M?NC@ATRsqeydd1 z48zN=cFbg^fO5FFDmT@#xjaF_#s6BY2({=zq3%bRTef3-d-kNF=g`sYV(jY3LE2zp zY^ot@3tt(gJ`=T>*Katr?6hu25{ zdXvvKzdq>Q>h7H0ICpTdMn_M7^kMTWcQi=W5{xFmd=n#r0np+kRY>A zT!@ndvM~NrFgsU#yXzIJ^?a?y+R5rJA6#;$1&lc}q#nE~QZSYW*^FJT%3AdhEA>$S zKcoxEx^)-^3TyV5stcdaRqiG*tU*P#o%{G^w{+U!y2(|aNxB^cc7 zUpoQOg_H6$G|wjilrG{l0LdmzhN-cnI+XK z@{OCjuf6yH%L137rI0kBnZyk*rW3V&Az;yAbObxjmWzTXjv9<;lH4}it+-~NEYDD5 z?Aq4h)atf_2(z;jGd&d57pfhf#(-BE;wA6hOeR=9_{iIInSDZj>xl`RDDHkNz z!}Q7IM>L&XQR$!i;?7fi94*d%!ZmTc@viiVL2PN6oe(kJ(kLNQj>)nTq}q)XDm^3+ zKI(f>f(IF_UxW>s?8|@^%euKe_jx2yWEftonReZkG^*51tQxeRc>z z8R&iRuD(JhI)t|HM*x%NM%q>?Gg>Wy0!5vpQa07p znW`oTpcO-831+NfL)qcFEs8TdItN0DLatLp33)$ic9=W}bxpK)lb~FPK*F=<_`N^W z-~EH-7eAMu{v`b1d;VvCPx^N0q6kEl#lNmlVyom^-A3C;OLo<1C|yejhWoI%EUjH( zc^;wh#Ffcv-jOMaS0sA2Jf}DSB;R+_WCfaV1rs#cNNo)A6*z@KV-JHiX;;Lc3xYa^ zo@5jE@2WX*;5@UJ7Rl0dxVUJ?wqQ9C;@}Q$K3~gE;j}!_FLMqYR^X-RbiarnZo~O~M`6AaMzF_D4 zJb#!uflqeh;6-WATM9s*TS|E1H`DwFjR15TE6zxR*oDMvAf_g28&WU!UDj+HS}_hu zVq_G;=Z)Z-%lg%u8*#3tNS;}IBWo_p3}7w5G22K4kVQpR4l8bNL{)t5Zwn>hDr(MI zb|Z{^V(e3oXnyD^TZ;5j(<=bCs9S{v(TG&sHmU{WW|7-G*b5*tzqyNp$ zfM7DohOxy&6d%}mPte}=*z$Twwis23qK@bexHTPc4%z{n#!f@T-m*7YD}N!-i$HaO zI#I25j_8CqhHceWm73byi8lp9L8Vf;b6-beLX~NvIBzB?7ryoI!XrbNQ)v68mRE=q zVb(@}Hb6NOWuucb;v-Xv!FG0MbWV>Z90jHaw z&(oi!_7*Kua3=*^-xi~E4# z!TZ<8@OnGGevMDvc2L|b;lWGb;bz^ASRkK09K(y%?Z>nz>(tCCFk`Gq6TzSdKmme# zHf_R`(V(ZMoCfJE?<8VAEy={jw_PhsAsY~;+ zO?3a0xPE)#lYmvc0!hOa^yeqXfZAF(u9tp(j3&#|;aq%@;eFB{oPwEu9jT`LlCqw= zJZV2$`pwU;?avd-tY0hujYnMNV{YtX0q7C_!89-J+OJp?`l>vvwUyBh*TMA9$V|0P zf1_n7f*tsDEBJ7^d3LzLq5@57hS}mBAtZYphN{0&V2fbYoTC`D0YONp>fzA2+p&DB z{f`V1$Rx7i6A@`+H3lS;Mu!(={AXzLtzV!k+^T>C&)_5dHt9i71S$vufpc&!wzM}` z9$DGvFtme02~Qu^Ht|LqnKvQ6k@3w6k~G9#S~S1K<|f##G5X4Eq-^t(n?2F+f@3pj z>c$6aW~$npv@~a;ahC7#gD#GaoRSHYnGy*oB2zQU1)zckU4Lzxi`A3EyfOoPp)J>y zXiFoQ10IdON7h4cct2?A%otpnYAp#J7z%T19qXBGM@3a_ZpAu#lSa)=00vUDz>1D_c-duX^%mY7!yC_68%d{nI2_hR z!*;xX@XoEG2Fl!3fvEQ#`jR9XDu@eCXzM`84$-D*u(nRn6xL)CdIKku6sU-G{F|Y&XnWvLNYmuAJGuF%`t5(R ze)@_0#tqi(h6-S^7ylC7TryD5T3w1hIF zmk)>Uuv*K!&Q?bh&?~oPhRm1b|dkA#o`lO$m0g_l-l~)&c7!tv|Rn~`vs%VNk99^ zX4IDzrGEdXn5u_fEdY(t>E-g9%5KaY*_E)4Ayzse>2KsPP|<#7kOZFbNay++9b)vt zE#JC({=w~ClKUei1bPpK`uwj#t z^2GQS9fNoQ)ZIMivp3u8Pr}1dMAWV7Rv{TY&DKoYU8j)MNhA@qIbc6au9HgIF$Oqg zxIHUSjK93DxYOaJ=e)nsgIlKnkIP@eMAz4S{+INUh8*546cDgAYTMBqF0}WH*sR!p zHh7n-7skuD@GGNy2L|-!5{FjoX!l_zEYx-hivc3fdLA0dV1v;cVPfvX<$VEwO(CQ~ zDZ7g-C!P5`R%OpNt;SFSfz@Qs>WuWVc|q#UKO>fHVQ7_B&%~;L>J{CGvHT_>=KLy9 zb#SYwGozDTF1sp7>BSE!@Umyaw?~S*+;yd_xx`#wIX3-Znj^x8vme&vAvsdBO zXUF4x;1*K3v%sl4mwzy0++^i!3fA?DXnUvZ8l!cw4xxfDgj3dwwEvQ!At$aKU#nBkMg4* zZQuWn|L7MILftHz`b)y6QC#o37Z%(PmC$=|*a|g_jh_`T2{PeVqr>@!>fI@%%De_T zvB5y(yl@m3+LKI*<@y?()R9S-7Fuf#o{-vT15;c8^>Qka zG1b1kMy-IYVhSz^6}g8$Nq5H>ec13Q=QKWPj}7Gfv$=Q!d?Hv6*P0(*zj2;-{N)u- z{QR?eLcZX;15V!&R>*g8Mtr_^b`E#`Re%~X3A4Za($By7`8?i@FW!{i5rAgD15Ay# zI4|z^@e@W&q5p05DlEEmvMYUfQh#F}fK&)5{_2C9!&ja^zgZ9U!y!oUiSJwpMWJ+* zM&FufBpA8RA%}(#WIDGhZVoss>43!}-iLx#n@+UqBVUQh7M?Cas;6v>PBzQkbHFof zVS5k}RR=gSkRiKdksZ7SU~yPnR#|1!UoTBNXN}~^LDSZXdgca8!Hkwv->n3J9>DmbNm} zZJTlP3e-wXM}))R=Z$7yDK-C;3v?<@hZ@*<|Eve(2|T(ZZPD_n`|ANZf_m>_y2B$L z>TbO+WdVwIhGOtM9G)pA16D2a#>XrZo$Kkx&@Ov>av$CJ?_T-77|00vGl)M5DY_(h zw|Se+RjW*WB{gP(gSqgWH3QrMiZ#bf&hiHL}U+&XM3Ti_<}!p54y#4#cEIs`6|+k<}fR{4Rv+SZR>hfhA) zUccJ52QS{Lqj9q0FtM<4v*^vTeB}`C!>c#jryn1=1&|LveXTdn-MQt(st1SzisUYv z-HnZ)F(;c~>g~!%aana>Vj&}f(Uc5>fo#z!0#7u4a);RfLtD@_3xQ-@GV?YJr5D{} z4|xrW>mW_#NoTLUo&?RN?zH=kwQNhEgbUyJCcg2l5qswLLz&YI1htx)cI7w(d+Pt2Wm>p4lGqg=Sdo(B#t#>@5;GGTI_Ge_Vc zG(GtnCz|P3f*_}C6?vwrG5#YT2fDS=`RDihvv<@RXoo?e49tu{RU5dn{Ry#KJoFs>{#pDWE8yWqj-wZ!6PmR*B@(& zB;kVdvF%hIOgUuwj~KLTM&M*HgBy&!F~e$7@Y(?kMt=j5XNcCdtO31l;J$i$_hLN= z1ggRW`=-{^5M=Y*HWPeS9GTv8^Ynp%y*P3Mf@tM=gpdGelfiTI5`5L-2sxn&tT|x_ zB0?Wz^VkS45WqRTdA2-z8Mb3M-itbcN(hx%5<~ao3&dok6#?jCNW-D^u!N>Hk}(9^ z7%6Mcm1v116zn?V&F5y{LOP1JHUb^h%dicMK!b=I0Y<|pnl0pnL1`P5w1I@#0>aia zoYOn90th*oOyo`Jkr*107&|{L{A$Gm(cr9AAQv#Kps6}=&0NY`f)N1a_~1AIv6x`u z(h6>1OldEJxtpF?E4nf0fuLU}+FPbfMkCEwz&2f@1xdSWo5_PnuPZVqCRQjyTMiCz z0%+#=drp93>92&{kk>gQjZ6w~25v@=q)FJg9R&-PMVu3-qG)id%ePdRstej7U}=Ye zSyqr%&S>Psz~IRMJ!qsqtG4KKUh-i_&!~kInGWeXI?-rDz8Q;%K^!IcD?35Bn^B*^gSk^$GV3UNFNU+xFeaC@kHBIt%$iE! z@pQP;suAzh&iZE5PFQ37eN`vl2{m_r-z(1CEsr z&1~knZ)C&KT=|X~&6qq?<8;#aY#IsdTEVV6kRkGpzKNzsiCG}XqEa+qx|(ep*)Xsg z@bZK%Eq1o9rZ6`E>HSt@MHAuuamf!TA!?X;)-|QSS?XRx7od?vwh(ix9@8Do2pd(T*u3#=r;3rn$TvWS zN*CYlVwvhe4;LxbcAO*{18}0q)p53XPwPXc#GrR%ljqe$T!xv<*6LFQJD&3!Ijx(D za~Sk^8BeY%%eTc_>YT+>kzsd)MVhR z;tx;HRsS;mTsFBM*Rk;h{`rlZ^%nq}zYtdL%a^!dm%jcoEcx}4SYSs08lz7=q{EfE ze}(?fOUc7I#rjmMwuZqkeFseTX z!$4DQY<#kRU=?(hEFSHB{=K1Em#^3xN|>@1;vm+8d-ihOj@#=`bvX!B=qII@D8s6d z#mVACwSm+dyo>|K`GT2pQebIT-{8C}?`?OSo!}N%-a>O3c#QkTNPyM+&*5U>iwk{E z_7lq%@5UpGUsEoX;(SpI7oTbBnWbpl=5@TD9Y+R~k9DWWDm2qeQf&tobFiqBtM5y1 z==rmn0iD^$=du+T@FmQI_6ws+cLo_c8~zc+=BY;%f^5fdd=Ls2C(9~}6Q?uhLrz|S z+@xPSm6_>-QAV;3Q)u((wp3G12LYh? z9{F}ATo?gB;6$7mO5Fj3&%SibBsd<0{v?1sgDR$S&XYxQ4~@1`)7fjW!JX$GVN-?I z$yP67n)5G>qmXCQ{!?fc^0)Sc+5?wouy1XPU}gDZtO{_lMxWvVjEFP#(+`|rM(5uw z6-61gkcd7jWmSO_iX0*L#1iBU}P}eDiMo z^sCD+-tgm3x6eL39`8fg63ANFreh(I6hLp5^=4rR;ogVWKHPi%;QhVVPk~jJ7YFxz zbvJI(GS|g|-30DVSWF5t5Sq*IERN9WLbbKnE_`08q7}_fP`+<`Wjn}G3II1DG(3j2|^d!}wG3BwH}zz;u^-}+Gh>`&d#f6niG$N%vA z{-cj%=&5K4BANTmvDPxa%2}G6qp=2SJ-piV4ZF+4K8}PHeHg9R!>%v|up{zSS1#0G zvnZ%k?0XiHp2eWqUqi?XWbX7K8{Lnr)kK^S7l|_yCw1gbqb9IMi#?H%Kc%#7mITYn8Q6Pn4$~Y#SXs zG3Jh)xZ?!sIps(7sx)mWe63Rr5 z57G!gQ>fSl)lY~5nCKFi$m@>!8|lw4DPIY^{osW@yCVa{3CR!`eA3n+Nkn_VDwI*s zkYb)*_{)g>;Hs)v7C23~0m+DKCw6m4R)oRVj5fovNQcad9HD_`;2fNYk2D|E^~T-3 z5P`0@k%?671evY(65VidI4p2lNwrOGk}|E-&z>$OWk;}nIVJuo>Ks5%2d1HKgVk24 z!bwumz+g!~oB-&B4~dZw*3u|TYKEyNeCL#y5y|vSjTcj;#8H})qjj3GLBxo?W_C{1 z`3#I87)RM(PUbg9|0LGuWkrE$Wrx6ETP6(+I+_ybM9D>F73GV`H?| zSrFB31dgVKHr=&JEnD`kG$-ms-A9MhZnbGN^>{k(a;c`bg!;TG$PMU$w#9oK0{T_|N?2-tf=0c$eZ zwL42@7pKM0wrv0kw?LJa{w%rgL}$~xd~9ApVHF`IveQzh^pX`n#&D2HP!)hN9i4^6 z`>u`CPf>70IG#&Zh|@$bR3or!l2c$u`nko2E@8D1ZyP&t0-ByVGotnbN^4j}1Z`>~*^v1al*5%oX1X>p^G?_kr3oe0R~|1^TvT6I0*uB?nMZV5syyWKcJ3a+XYsuXh)CjNSZ z?2R%uifro2VS&a(GrEAc<{)YW{VCOgAS)t86>5}MoLV}`5SAN!^S9+&-(ElY&(|OQ z(EsQM{>MKFuU?HzUe*u=)i#$SaNHEOfXYeD8YkQ>LUf~wv5Tz>OxicRsIu55yHUxZ zS1gL4Fa!+gIVaT;fKXv5+Wk?@+4zHVO3p>~9vt@zTcHo_*NgXTIyZ6F=(HvSb|AC< zM(0z(jvn3U1u+GxW27;2rjt{BL&HMLo#H9GtDfOHSE^o6F4IuDuq&OHfcZNgHs zySBNu!)}AqwV)B76m7DKG>^u%uC|4o)sZG~$HgiclWBjkx&=?q6rQSlJepxoxsoKt zx55+o2r!wKkkOy=BHuAw$Z_D$kN+3wW_Z4Qb0+I}>`n3g-_vh?9tVlzT(SofiFFFW zCO7EULE8ql2Zy965j!D|{a;KWCC0y)iUMQ%FQnt&g zm60sK=r}UHw;_6n{avP(KU2OEJdY22xaaW*=di4@uCgq3soVw0 ztt2nQm>sl9eE219A1b{}vKMrQys1h7!mk-Pmf1JAPw45j^=kaj? zOfyhk*h+91=Xgw4^KyUItLsw4d0cyEPj*rzmT5QB;{!fm57phlm-j|+&+JxDOoEy6 zM%?a^Z2&laz&6#J;}p?)4n~65;dovmGlKnx)m1CB#aS8?LZiu=AfNjX#N#NqgB&0# zau5lc9?7EA0QKAiK7}g`A=i&xL}rC5A>g2*A}$|#r8vmV0UsXRXD{6+_lJ*P`AdM^pZ$aU-H*2K zes}wap9zB?qM2Fx$n2>AYxKtshK7NeYx$lmrGwqBwxJ7Y^tox*4h%MfK%;Hl9k)iT zonBbVjm)+PGGfrI$y28datedC6a)5QR+xP~Nq-<=(5*{(8$z@_7GR71<$op4?JMS$ z=%Dbu(4|U057^%&aU*B2^rU{vM{G*xH}yvgQM}F8$;aN&37Gwzqg3w;UBY{mxV;qM zewt1!xg4MTav^cQ#&F-oRh=)PVg40vZ(&k^oDx9{)quW|Z=>^s_R zG);_w@Gbx_6_!R(#+^MG6?}Me^R2Ic!!0U-vVajO_Dme)Q1Ivkh(xhbiqJC(KsP{) z@k3MCs1=ArbVaiuF#8!S_LbqUQhB=_u-ix6d2X`O zE@=JRWe0Vb{I>V|%R02BHp&W4Ck8DhhvA8{pf`?7IY-ExaOvcJ4F+Hk%n9OR{R1)d zavNF`I_JAKMe6;|h86|bFAmbNosu!E`P1;Z31EuuZ5=-LKc8d^2@f-z0oB{ zwCozKAf>f>N;z*q6ZQ$|S!pDmURw5b9s@{MNIT7gHYk=CK17<_sc;VFA{&?3N2h0P zd(6er$EXdl!{FyNeZZHAdy2GHYaB#>&vr-8Um>#lGtIB8_{MA)8)=TRPRfqZvzU(c zz46btjwHjwf;Xyf7P(a%R9r63Eg5}-LLdk!3L>MZ80Z;* zK=Dpi6^eMs3R$HJ$0unHmAgBg`A!`{MiHRA~FtI>1SYc}mj7BB4z>0#?uLYWJtK8QZ$bwx?>|Lo?vLo zV52@-UowIFGNXdm=1cT`DbtZ}px(ja&-^XwWTZVZu%TLyD{dGuXx3GNGQp;O{`XWY zXulrip#yt@vlzQbm{DaNbF)pEi$UKyo>PpDoX86hhmMVZnvgm}z_IT#$IDcn&uo}H zL-FI~ST3&tlX=ZPczS>11<&GLaG#~+UCdb9(;Md_gtw=!-nI6F>-O*&9CM$ ze?I8*7Y*~~+s*v9ISkGwc4q{jFIymR@s(gW%M5IoE5@NmOE6ECj7WmTT}tCs#6J}? zq^so;BIQrqv#p4*pSG91D!z7e`x2_^l5!eD62~YQF&S+JtBYX7owIG=V3UU==|I9M zfFutcSwfXkEfsSqQV*nrtn!g0JA9#C(|ch61iC=gP$p3`rzj^KLP2tK*BeQyQ$4J3 znx|;U<TG4Xa#T?lIN8;IW7N0Vphms&4eb@QStE=0LoKbe!Ji_XUzFF7>627MO2& z=;X)C=?r#OTo!%tu}OlKRn##apy-5*O|Bi1z!8Sa3^=Mu=8#)USxt0+2E4065RFa+ z8hbg276bQr|A2W`FxGqdn#1VwX#o>Eo@jEh?v01_Uovm=$c>#;kO1sq%Hvbp2cUrg z#crGLcg^=OR6YjvhLMGB8#K@@U}oGb6&E;>;g3&kck%5pQ_jIUO6$KC5`WIVYXqB$rD-Sp&86&nBqaiV1OV+6NzL9 z!3PFF6fUVh$5l7ka9J?AysE7+Cb0V~Dt40Bv<`zp_h34KDrECQmFbR@(Yw7ijcFnf zgj;4n?|BUI^89KRJ#bp+yDX<~t{mrs>U}%LO9PY>=@MooPM$->uPWzv9Onyjhobet zosjDU@m_kN-`z4RXT3GHBBx1$Bbj&?G8`iCH&9sQ?AJ*a!Jx)V!Kj%LlX$uq12C8PO^L39s}t118lk~LrM0SBsIr;;+t3Y66($sI+lVC*_X7xV*#{asg8%bXo{N{YCq2PiyyCcpc;`n$h#_~;k%gCF?se}DVQ-|^uH zbSf6@fzYf_nX6)H1sVHf+oog*)L`d|+rrZr@v0;=qQ#_pTo*f$AI__6FtK$FsTs-R zZ3EqD9<-?^O| z$KM_+cj4UDp0Hcxi7VBgf z3T@pTm}!ki%+&$C74G)LJUM$OzYQKUT z5U1iE^Bk%YpL_OIx=78cKEY&66p;`e2t^Q=S=EF=OU0nge}mN)JL@n>G_lSvu-RlT z?rJP;=;^=9cX8c0Mf!>t-b?Uc^E|O@P<8P#c;?eZ3yLR16j_Oa7_-}UAw{n{e&W47 zb7yDCStly=cBNO~q|h_2rSll41GdFh?(IT*sQUDlbx_qY{%MmZm_)qVQ!ja$aF!9b zd4|{CyPyk>OL$n+IV=vUvMf*lNGLAy+XYi*LtausgrS3Y#YWl4MP(6L1*<0cvv|hZ z97b^>&sI6C?)c0-Jgl!Cw)ZszHJ6m5BPF1q;0=)u zNrNKprmn5|6QZ2yLzogPTe37MTD2|GL15m4nJ|=HCI%M@G;X3gS^yh%h*2C#1cX!t zNAens^y3dd#MeJ`|KeXPKl@qu-uJfee%F8e^O0^=YUkOVB>pk??nRRh=KUiLu_=jz zeeTeOuz+D$wd3uTWal-!64+nISL>o0p&|G?Y+e((!o=dVi@Xvz#MQ4Ip4Sprxes-B zzj%~1_Phu%p8s9op1k=#Q1-aog=?A;P@#F z8t>usxb&srz&hSp)M^#}#NLu!M{rgEnp2prWlI*#jT&u0cIe>^=Wq}5>e?;QX8g}Q zpD)YZ2OmJypd1DqNkSQ{Nw&b|*&stw>PXSBK%k1liggu{3O9#Pdd!pkU`Btqc_}Pu z>2PQ3=|^rs?jsM{v0O&k(>%!#MI;ix5LHh)HL5%912EL%H(^Y+odKK7F<_A>(CNCJly} zm~$5nW_OJuM5aN-Ic6URX?^@A>Lux*7+7%K`&=|=Fe@ZrV7QF$8+PU1yAfegy1@jB zZN|S^P0>Q>yP$9by~}JdXr))tdumxGEZF!cTKuf8BA5cus8&le6r^Ltb^x>td?M_t zXwhlOL_AiWnF+13BF#nWkd4=6_G91H<~S1{OCviyMOC{^3(9?Crx{M31+js zWUXda?~dHqmB*wdP@j-l7o%%Yj04bO(uRo5mRP;BN|*%4{8dpN3cEGbP^3@tphLfO zbduLJMumObPB2MpBIb7sbrxn}mOy7mcb;z`yCmqG9Lh}GzN5FC@o*VP(5>gIj4C=k z`h0x@J1)Rj9%-V*Q@irngIw*sCf93FTs}BYho#Kn?YFthx4guYvM9Lx2z>GZdLIbW zZ+_k*jwq)pJil^3zhOW>!3g5L&(kM3M7T`8+6MhIs28UNpsk<9hz?1m&<)rUC#V;8 zI%nGexUm9?@nT0vJBWN`U0#0h0=G9v4Cqi<$sySbqJd6O0AdCvr4G*=1~ch0LvXX= z*)5!=Lx~u^b0#AF{>?bQD$N7}8yGSv)&eX-?0& zy(M#+H-mF{O4tW6XNc{5dGAOmt!jLwIT=6E?AUN~e@jGwWj z0fZf+!s)llW`LnzXq0}&&W+$){1?}rV1;kZt5zA%X%ZIw9UsC2sVayMTBt+an-NA(yYk1@Ro6W!8{6p}+xZgg$$IY@nUzQJ6ce}!s z(5|f(x7yB)zXe(>vn&WK;&Jx(*{9lyOy`nE-9#fZIE)fZ6e(Z(qZ;*n8nH zjqOk9w)^0S}uhdOs>O4|dU^)dLB=6Ch90FvzicA zix*tr7Ze#KJMvNJuMHy41mC`U_LUbO$l@w68o9|)sX0WHCNvVO5w-E2-is%Fi@LfD zf2<2`4iW{RLrBN>5#=#reMvM!s`7>(2!llr#CxFtZpiZU!7HpYY>og{hc${vW4F}{ zC*6z0&^S1zyhE2E+L#AyUXt#G!3zmhbq93^(Rh&|Df}0Xvs$b~g+YRqA8E7lCyKTV&Z#qBFJ3yk zhL^-kcq6Sf8|-Z~s?9`01LJAv`Kcraa1H+HeBOAAE!bozHonfEzLm#qqq$;nYRfTqMN4z z3Q>>PHQ-cNxJ7kQr{b1Gi%wk#T78V|m<168#uspdXpnp`Q3G%?1zpW}#aM7%WpVD= zjl196{k`Ard3^Bxm{$rt^?1UzZmL_iS-D zst%;>-LJSRXRv8~qR94x#yPYPU&ux^xB445jS5M0*}#raENx-O(a z)@>k7uq#I)k3^O6ZGv)5;Jl7m1~A#3hkdymvuP<fw^~L>mzdGHZvB99Q51(Bh;N1MC44 zyo<=QKv5DjGY2zdHj$OPru$F}x!j3-Im54wX>BJ44I8$1nD}WCem0;jX$qTXz}RVo z$ekvePSs@i<$V9a)i7&2?)^XG1U!ig557b5J{K%EBYW;N9OB5~DloW`pHDTa_|t{@ zi@fGjd>ZumI{l3~42Ub_Hl~CBR77>YzxY(sr z3${(UBWi(@7`7l!9o3r1Sxydc??gY;<<7b2rjqgwhRjCImVh))dhuUL2HHd=B?HK$ zo-DG!z-)+;O$cq{d?W;9$!S_qX$b~;&Qxm>1PD>hRBKo?3W+(*#Df-!3I!4MhEpsH zoQev!Vo@!{@#%7#>)?z0KyC~~f z)CeY+1d+pjR2a2vqtJ#illp73eq)hYsJ*dGFLV&;&EO~a2C`59`n{D=I=p z2KFV(Uz40md|y1{Um55_PRT=7*KygHb&+L-s<;)08@;`ib&My;eF3(l1h2Lp*_JKF30J{$1t>2qMmnX#xWCEh$~`0gDS(=PVSRfU-x_6W6O zKY7Mr8DIeDcvUHy0X+pm^`eq>T7mp7CC534sOo}kQC(CWbWx{J2VLM)pbDjn5;v~5 zoDDh5@&rIt@qS`>OUrUc6{v=Ysyw^V+k^UNa(@i>_x^ZKfAqnJlW0%E&U96`9>Vj3 zf8#?UMEmg3{r1ZTy;8mS1 zsx;zLfIz~tJN(}7Ex-5AmybT-_rB-9_ub>){T=V`Q4AwvWTpU#Kz6@0L)wTwvxIkJ z*9bUCO=^^mBIhpI>JT;LuP^yv<|oGLVj^jZc7$}Kh$ zi$PD&%t45Q=#XnQ{S}jPBN~NzBlguJ^?O|Di`IPhVEJii@ZF$8IE%ZU0&^#tAnk5) zR`=P2hL4aHo}u`>cCh#a!}#<+d@skl^elKH7<~+K`1VIRhkm{z0QBu2#jhZ@7Q0gO zU)nqU4P^Y~8RADf5S}1Yv1e8BQtI@%_q&j68Ug4=Z_EnWo)&3tjeN0}smgBS@Cj)MOBQJsry2YW8Gb)i%pA&wQ&D;= zfnsg(7-}J>93g~W>)HC9Moc+X%Yp>YlpqJQ95IV-x`c&dO=f)%aVqLGa)*}{>p`N) z*m96{5tni2Gs?kiBy@P;?91+{)IqdoMje9{s;)Q|L{%5jMWO;g$mFw9nbUz!9Hes8 z&=!#PUbn{Qvy-ox@8J;5OEgRZetD2EUnMt@dkJ1RvZ=X)Fi*~UYMJOnM0-t9o;G6b ziR|-L12ga!Z4PdWK%6m%!^xQEEayB77d|f1m}6}D)>!SkB9nKb&T&Co+*CA{GU*q> z&NZJ9$hPHiKt|Q+MGE*80?U{?m5{CMBIgs3swD-{5CX6{)qoYyD1!qybxzb#9fE_Z zs8AJ9s8#-De0>>mae5HePh{eZ?DZghd;jJbKHIi8NB`z{{OGvcIrs8rdG6eegM$&uD035bF@#u^;d-i!>$n7Q%>%MK(qnxznWlvKSSX!aF9ydMv8UY%8;IJT_72+Vo_!CYnW_Pd>bFTE&(4{S$z{c3yxj3s0gf`Z{C=Pj~ z#Kh^9oF~4#r{jUC0tR`psW2}z{%Znj?(97mz~z?==UJr@o{<@t4Af<4MfdLwYWE20 zZqIebITye)hvoG%?n3;VCtu08!KSX0tl`_9m)FAleA2tU`eN}!Bm2bIBA@(5FZ#zT z+dtmj2=HA#^UFWW_j8_0>M<8g)Xzae9_KFIlxKP3Lb21`gk2p*HpXQMcdqiZXghtU z#%EJ&vl)d5)-9zw&O5fDjJncVOf?ji_H8-=6E}&7g2&^NyaCI9$47N zl@HiwF|joeHdZg+VmF7_d`4OhvQ0sA-d2;7(9WJlxFu6`VUnypHQ+t40bROLF0&Ii zXM;X;et;-ADcXA}*O)vs`~0f20qlNHThK8+JB>394P~lDwb-KGlHVGhL1Q6}DfW=- zHXd$+R6>sd&pu!(3YePjO&QZN`vV#%0+`4*V_vA*=TkQafpJj8bU<*~rh^>=Oe+a$ z1LK0iSj$tk9)sB@kaanVf6kiqBBU3gsL9(kG7}H7u2`J7Rn);biLQN4;Z)S6Qd#^D z9Z9@xeXvXRZnVzE-m`lIsVkyey(96ftscQPg+|(-&$Sum7gI$SV>u`-33{ex-h4*J zT11oUrjBbQ?rQ(S^pGnMag3z`(1j35bO^R^Qo+hR=!qP0fIKjGhOQuUp_no+=s>Q* zEv9~aQ6v%0zy`BA-0r2cl+WFGi?eA6<9(nq=kD({Z(SaQsZrPMT$TJ@^%hjQ#hf6Y=8^F0jgN&oL~vM zICWSSs7I8Kr;1aQrAb8sQH(AO)|CzBlx4}+)S=S`f~>XP)nU1F;YJ^h+>YVRn-GpZ zcwq>Q#r15l))l%g?#05F!M{5CH(Pk)AAafa*`}*5FP8O#gS%aE(<*zni(ziAqm1O* z`loDA9si#eN53dK!K(YriXqmvh)_EsknP~uP?Za+X*kgpptQDm#?_!G90Ri;09{F! zLea=NhK-oC+rV|UsKxd;px?n0`W&hjDJ@Aeem(9e>_esIssz-D)- z4~yrtk#H3j*+atD+ajFUX6O4gPN-r$0ameFvm77*UU9rfLMCsGR6a3sdeOjMQ^|ji zKirQao(ALkqVZRM!>9f7{NOhl(C@7j^1eCpc>9m<@PaujbK{IKWW}NesYIN;=0cFGNe87>>f{Ygd&1j_u%n@|bsM{!X%2XU<1fUI&(Mj|I=Md*voL8p- z2i%!;J+bHobNWiL1ZPSz9hE|Dj<$P3@j-%@g6y(Vte`HkfE7`h$0egt)%4eOm32+H zb7a{UVU2DX>BjSt;1+}5;E2mk$ZguF)pJHM$*s+K2MF9Y`i*3W!vY7l=&~fKkY0kL zg_xm5U_AlKz`61~st}a4jqiQFoKPI*B^?s2+rV}_d(M3ifU_X(Z1Pe75+oc`?@W&# z%zIZFT;UX#XxjF>E3=PE*5s~yWeZ@O4^|qWhcn#?ne=j<{{Uv#F0NE(-w%2k;xkDF zx^uAw$6>^s_ihl=WquadUzn$LJ7M`*(srIsYy7B-YI6cd^J|km<*0#F@lhKZ!6_Vd z3&8;k5(#=yUEsYs2e)8ZbRpD<0-76ZG_Gv1;x0zEmsu|X45)^GmJ{8Lf&#ZU2&*1$ zxgFi{7>@V!4Ur~+uwY5`|;n=`!tiJl;sU=0Bl17w!-!?>S|ID`@+WYH|*Yq>I^|f zX?I1EOr@nViwmw>G3ZvWyIQYcPjX=*=-g7I+4!-HLLB9l2oxyCGAIlhi_@q>-O}?_ zlQqC-R0x~pDukWtV~3J+_RHBm$00YkJh4X;z)klR4(UdJ?(@hcc?R%&EC+CO3ff^q z%T?5F+lY4N+PDLk_R=deV*R5yw9|d>vO2?*uD(0dc`e-gSd5+*eClHQGfyxm-Zx5o zp##-Z_A@-Ha&ys>!Bd^EN8k9lJewyw;upkzmGT9+h^Kut7q-8=lWXhr+e`#{p#$Ni zXGAlHaCr(u3oDxds^UZ022U~BBXvhYx`t76c$*f-f}BX8aZ7o*E-#-wcgs?jab}Of z=D*SxpOrBhT@H4brl`uI34kv08l9+8Xgymc>@!p)nWlcfF2$4L+lQ@YnPAs4F zq?X8(3_1eM zi<2n4qYx`bS|fH=>Y1$`*$2vfRGK?hO9f>nnnh3Bl~6jj)zF-swht#2*h1KZbn0}y z(e)-a`zNBbW`sRyahUXdS(p2%f1!=cZcqt8{=`=qP=kFaXj0!q3pTas8JNAX19}%TlH$oYPpZoM@ zm3a;5#QMmceXpo0ko|*-05oN@1!Okl|I{DE29F6D?hOEZy7{-Odz?YSY43X7gaqe(Xf6Ir5 za6GDi2!2bbFa~Obc|LTDx<$j?5{`a*?ZfLWy!PRfqyKb!`1!rNTMl16EYBCLsv4JW zPPe4OkjIFM6e!XjG9$CNaY`+uUe*gQhYiFn98aA_P3UQ@~!31|0RF?lkIQ* z_V}Ie_+Ng~v;j~o7(awiL3+POLnSEE$vM1;$~8Hv1R7TnnLv`&Cw97IASy_isz?Wl zn}g6ayEUvD?g$(WIqD>DHCG#q5J%upxj~au@O0eWdf0~%q<+K#i>Y$$HG*}Ib08cv z82C6el9yc&&N=lxcJ$s75SkFU@lMdyYp?BXK^W`>WqjfjJ>3t!016H737Er|_1fR| zmcRV>@tdC~9!H$CEs#&5yA+O)g*3tYO(i0D6A$y?q(l;=9_E7Sj7G?O2bZ z2EvoDEVduV(yzvI)48#Q*wQF>@+PMYJR)vZc%?B2HmWBxJ3`FZ{ zI92Ew^n6Bqup{FK&gu$PK!Z*HIC~7u)?m^y5|~9Z7`!kDeeQAyb>2o>RH*0z=b$Q3 zaZ74rUn0<)ev?sGt=h+SvlQQm@cg*y>Lr!vEPsH=5~rZy>K{7Ln-ex&(_=8yA-@_oWvbyRa(>p z=P-8JhpKf_#)3#Cuo27qG!Vd-w7|`olpHD? z=7JRTDh_~9DIU~R98-m8)a6h(_yt&0AKbQjcXZ1_x5~0a$>>6uO;R_BSy7ZYnA!>i zBA&>|B#;@2KKaC=RXKu)0=i&X;DZZ+$A|FnCipGH^%fW^MrM{nvD_@~b_p*J;mx+a z^5OLs?n8LE-#)oto-OXhVR^o|XNx*0vN5%cy+Ou5u{F9YV#JkW9_3C-*HtjLgQN#t zVd%PH)j^Y@zd@rtR5;`8;(sN0uPcJZyX@%hIs%%J$ zBnh%X3X4;{&D4x!vk_3F(2I}wawrPU$rZ3x5g?*Sniv9P=CX5G7EvdW;GBOc5%18# zZtjGSr;pQ=2Y|hQ?}rLQdmpe9V6#^^X%3<-XP1bTgCK@e){)4wQ7O2aO?z~D`o+f zgt8$#&~JvP$6W{$eZO`8%$rHTlccPR%x7kD5&`GGKBZBe&e=Mt(9@7O&SB6n(6G*g zex*@uJ%3CZ-RJQ-V<1tG*XfAw*+h+e#=R@iVgJG4)j^R(f*&=Inkm7l^CXJrTdcLD z6RL_LL;%_gl%fa=;HWP6qdLcJfm_urjOegBN927$f-dL6#zDD%Ybx2cab7jg%T-- zZ7s|*{eoF0-$p65mB%^x@T<#*|91WJKleZSJOBOfJ^c0G`hWOGhEVEy74YqJyOe`) z0cWdJJdP3pNx#{k{drX%1TK&@)!CKn`b*m7L5Cs0GSrDMEirZy#)A+?Ii*@v8rH}j z^&5TUyGsx?l<)EZ?Jl2l>xEM;Y!kehI9_tTy7FM77Q(SrX?*PO)FN5M;^3QRh}F(0bT$=!IWJ~ z5&C+CXd9#>;1WCHY2{nkl9w~)+*)oJ(LT<%i7^Cat7o}KW9#243@R`CyMK@hC-t~a z3DOKO$Nfr+7{Iry#2aVwl;~bqy}2Y@Y3P}Iuwaxc*UWI=p)trQ(V1OIcJ4a|o@Sy< z8bpUb;8dMzb|UUvr=09TpEU*V-2jX1b~kveP_h(C5Lpd5O}|3u-Wp>DSWHKgNuWsB zNH3AjEFp_8LzWe85ja6aQJpMNOe1P#I5;&j8ZEBc*(3F&dp2}=`=Z0L(>Q-vbwXly zB6YtKHmb39UZ!?kKt3AAtE#pEBi}zj0ppAi;M_ysa(`xqS;p?`em&RjLGYne9kA zn=4q4fjuEow)gl{9fcLa;1LYRncdsjsrCN zuszfQZ$3Hh`jEcn$=s_0ND!(@plIrPpfdI^z$pP}5LNL|O)iDODV$(c=hUq@E~=|8 z0Gz1iU{Pyl7h}T#3=Ws8d_F5gBl8q|($p=HAP}k`OI$zQ4c5c5ZrpBlJMwrREB1jM ziFeQ&atC$m4PS(C498E8;q~V4efa2p`vmUr;GVC`%Vl}CVga-Sb~Uc3L#nxpqi}I8 zKUJe6p@?XziHHJb6N(>I!)OkDu)xNcI4MO~B5}G=moKhX`#1_j)B3VZ+S5x}Zq(MO z78=sdqsG=a@x+-urlojJiZy=7f2w}HBI9B*iObD*OP>x2PDFc+YW0bQxXngF8>q2kiC&mWa}pa)xm%Aj9=r@$!PQ^s zwWx8jczH&A`H{fZTf?+`1Q5&1w&6=9f!`YvhQ}kK?-GY2o5ICqBlK9Ij?b5S`zxVA z@fN`?-oDWE9%=@^Zcpj`&4l+hvUsX5Jc$7GxV2yhygq%DMgV$xihTj-@sb)^^gOZc zZ3eOLrMw8g0{4L~$$pSI#Lpgs#bA&HJ(1jV@4W<{Tj`lZq7fTUjRI+dSy!7ugEBJ% z)1i?-jj9WQhK3X*1W=$(lLKLFTrC<1`3SCflrj6Y#QzIIuaM*^KjOuy+Zr`cEUny8 z%(~znmI~crwZ$n>4Ag~c(k_XxFuY_S0BI;mIYBF(!!+bm+ff?w#}dh?=)D@|W_3J6 zlT5Kmuv*#k`1wdzPr3lvF-DDVQ0roZc3^o>8A+O#=(1Kv-!Dw_Zw{7)?DP3TKWn%|) zZ|J(al8Y>jl%1bUc88L@79`d6;uct5{HUIhWZbheoO3xZgE)m-WLY7CbrrXWL^_^> zI$0N4mb7TZ)&wh~5pO{&AF$Dou}@~2iRo-1ZZ@(K18Lvk zgfT@XV9m~hg?D42t;}9vB=<6qM3TT(LwU}^7clg`x>umS;{mNhVBgsw8o`&WrkY?y z&|=Os+(A@hEHLc>Jgth(4l}a17)G4hi}>7seJ1_5uw`-jel)^M*Cr^5NXIZqCU`#X zID;3Q(677%qP?t&^_aNJ3O~rKR}N+^*OOPM7vzjM8MDQi7nr?eVHY< zYBkCXX)}qDhZlfZvP)FOK|~lRh@u>n4cR{S$=$Ka3Q;hw<<>{V1U_6-NO zEPCt0G5C8QK0Aij;dsCKH^<{g&OKk24-U(-#oakw5c}KEstOx~6D1UCY>;!1Bn}8! zLm}eG%wKBE6UDx*3F4$RAB7RrZyk;dNx2z48I-I_v^|&*+smd7`-!Q3*xFw8T}Gib zS2#FDwr%qjU}5trOdhgQ2Mu;=86lwHWFf z7ufWo;|QZ~T!Do=<8!IT4d^R`Xc`N{PW=oWL}|##V?xGuks&ARVG(er%$fv8RcMnu zRF(%)ufQI7x+CmFnz528Q5tg*k9mH17OL z%1T$TdIzKZIH?exSvc@kmxi~THu7ZC|Ke|8cv+wLWWR2l>Tbp37jPU-bR0d}P3&=S z_PA8>96W7_CanN8(SXcDhxAFg!@bYNXk3TS97Mjc9zMK%mOzT6%N*(u7YI0+VjemO|>m{`XD}tEZME4h2*>!@3WHZG)_Zm-oLK$ zfXBQ+xU5fj{JnOeP7ASF1U&Xip1~W?BqX>joEzz(FbJvc1qa-foH-p=;$na#QlZ1+ z+V61kOa}FS8s@+`jOV=4PzyRwV!v}UGjP_`Wm2=Gpcu@Hmbw#|Xr^T0o6>wH0iBY> zcCbj)TTsQ~5&)`B)dSv)f~ra0B5)~M0}jRRc8HP)=;`JUyb9em2&RG)B}BdYe+Uv3J_hyt!dRQ7pqCT zCIisOf|M$VP1u?WOVC8-rCr3crhiFQ^aGSJF{-Y zMN-9B-W7R=fJi}&b)Y2I>m+H$szND|7zzrVgb?DM?VuXy00)7Fs1UtC0da6qltVQ# z1K>n+@wMn0w;%(H&1s#CwbGeU#X`c(iWPBBSsa{mywSrg{lTVpLul~V@*M56-^sjyR_+k6xK@VFEWc1)Wa>P$w-LTI89H23W$ETdIg@acoN4l}nM1LMT*f zBSH7b`jFHhrJ0;x^sY=7Kzst~@a=Evx4(J&@BY>HqaPpt`fnco<~#nQj~S$~Z>7w- z>P8Xme)mi`G*4mBlfQPWT$#tT-wj3UyG98eeV9`HC#$AiSq3?@&Y=OC>o3DR1-56} zB|%pRK8blZFOeC$U@!Gr7=o?H9eB#&;7SEv*d2zaL4y5_gJ)orGyaYHXMGID`V`;= zuR+Prp87npXPdL%HC#1c3g;bi7lB9euEZ0_Yw!3=1K{xyv+GwCfBceM>B#>4jReP2 zq9^PE!ME6QehXrb3_f9&7SnJltsGg6dr=S7 zJnV`{iNsz@R(5mb7o(~(=cdeL^_EQUfr-#d0kfFK5SE73SaVut zv%-Qaw1+AjBf~PbV{1lolr=XgB-&=xmOBE7Dq?dkM?3>_44YFHsp*hyG;B;pg-*BH z0-&AB&ajA;>;tVm5z*+z09MAbJqmX3NzPF*>Ra6M-`SLQ*Z`vxhD3ah_J9&tZ6GKD zBtZqyp{Nxe$__s{IUR<+*;WY3cKEQC*tC7FLdca&Dlne<*vchytyGdYVb)I47j5 zr`as_3#=o=ELi}elYE~Ze1Q+U>uT}CONPcRAOJFe3WCgP=-6W21t1xac548^i-HQ# zARZyEp$@9SA0dmX0uFHSPIZAUK{uxk>Y$D>Xi>0(?=Wa6<+v>?L4&bI7_tyaF#60e zd-Jm5<{*b#JwAlvL)bP6$Ivi%E!de0l2BQ07rAxIi`Cx;|JgCzZ~noDpZnu4AKa}j zFK(6>i{3f6Ah`${X$}rgv&?ZeEkBe9ZnCP1r6+80Z83UblwQk>EnqCO#zD5QvP?*y z^X41OGM4?FJ8|2~3^RvTH16Sb1w|!jJ83)~Y)LA$@(YQl`Ci{lL`61D^2xg1zAwQ5SAYJ=pSnU>N z1jDa{RXASxoc+DCrSmj3x`=Ym8tgB@TX{VXx6yDXuZJ*s8f4;imoxl%CqB8vgLkrT zUFce|i$3phNzV^^SG;`-{PAs|rziOCwP@noA!WRX>Hc)5<-0@nE}*XSl2`Q$4scUO zscL=!Xw6@kq2rVI54=}I|C+`JoQJK?E|idyA>@cZ?2~t9pjVM8t)U`M-AN3wwF6{u zLWs1(vun(YHn`$oj0lluim%+>9&T<*+D(R(9Rx}U^j>^OJjzBJja4z${+CH70N`Ab zB~3tcsL>JzkHG@YhLFM5WQpE%e?}ogs)^2{EJL6-x}Ze>BpC7mL{=w<6^kPvA@t}T zEp-tFL8Vk5nlYhgjfBMryIG_%@^Wf3yM0(OrD6`o5-~G1)+)qP0_losW}))1ud&#M zR6nc0RDv>NM=vHdjkdl4HVAv`jaSG>P&B0z+qKD21p)Ii5gV$O5dcYFVgYCYaVT6} z6DK!1CmnE^Mz(P0r?yMLd=VTOPg83Sv?DaB6SRM5+>GRuny#=n#1qp7Vy?3IdBTR0 z1zZ-P4@};G6ngs2WHJyWh?zoxgFEON*~(57;ufgN;*z#TY1uc)YguqrIXu7g7ozd zbOM+;o@cJ6F$8)*m*qy6RjdSu70WjDxh#S&;thhF#V@j>VE6iD&F&V<29uahFST2R z`vJI_3E>Gd30M%*+_-gV;wE8B`q^wsEmOc5v!v`45)RJo9&m-6@~MF30z)4R{q8%- z3Wm4g1O#xQYRB$tLCStF5R7l3Rd%h`Xe3S!SGSMJIRL%<1heN)@9s1e3t56=Jd^RJ zG>Ap%oIuj~0hxpc2oe%N5TeQ;Kx{mVgy<-Fqf|-4H%jsFfH@Q;?J1tIVfHhb=zld#V2H7k0 zjMBVPv^dn%@}c5N*b%)J%d<~Zfv8_n{#w`P#F`<36aCs(+<*CR4*%xQ{f~b9@HgLm z`0Kwp{`e=R5pw$4wtKn7DAP0H2@JX=1!LZ#MK+KwGX^a|y2Ii$^j2yQxmgK=b8Vw` z-5$2|>u_4H%wa2GNJztVPp#Cp%K(>ide3Ys*Bs%|KwCGD z@z_ng5ea(iIPdFT@0{;Fs6St<(sD%`**nIJlDp@V>jP6RuA@BJ2|JOMUw8iOmsU;r zH^k>BdlNWoSp33IDLm%W<90F?9Kpp$#0>fyLNy}*oj<9~lW2QgyS~;vB&TO+oZ>{^ z2)?$gFYlh~x-`}8qOjqU5_HD7j5$*`P7L zH_35_y<(_`G+P_aOywyGqO%oNb-!^OJ>GqJi#c}Qw_TVx6&@>64hnHA zmNinFp-vW;G&Gi6TT(S1n3m^`S=;<{64FQ{@2B)t3cZ_bMaa7pA@XmmbbIN(E!^Zi z5n9?44fW94g>Pk`G11(h5v8OyGDH@rt)0>kZ3;95YQSX0WYB17ySQ8>5Uxb+|r z{g+HOSFOZkZCf#z6aq4=UldDX1uXO+15sJbwj1Dd7#2jt30$gMgwwU!=`K14fHvV) zZU(kR+jLu8mY1;GmvMcl(|B!}8Nq=)e{vPk|!I%qj@=8Dl(U8loh4F&cFZGjaXvtkaV_#vSY1XB^8DBV;bC{!3U z(OFeQDM3Oce1}-AfhY+jylBKYHK~fD!2j81sC81PQ&7`h&olL5r#&p z^I@u4Z?xP~^I9r#g$zE|6&s~C+xpA_DmQoThO*s;hlk)Fg7<7%fjB5|krJgj4mbSZ z;2*sIZ1b;={vm{q9{eXqy>agOx_+>_JBI~WM1p9@u8v02Aeu!Bs5E99rZ!$g^5d10 z)L2+AHLGgI7bT?(Tv%$ek?#?4VKwbq93wm!5tin?Y-_8fZ?1JeZTixTQhxI$z&aD6 zJc!ivR-afZF%}L3;Bq{yNe?@hHks)hF))BcMeazy2yx_z011cH{r>M9e*bsEfBA2Y zKl;&||L_;b?|;vK^ofD&ITtBOMk~@nw-XFH*A+R_;t1W)GRt60L0_rl->$i(v?;W< zlYn%4Mz=^P%`UY=;k<|hT_;x?l(aR~hFx(Q-Q@sP+p=pnCBv}PT_sPzoo~zwr!&Gg z&!3HtC5(l~$!_4JwDJCBPo$Wy5`ErLMCl*Ym_T3QZOFRlTtyu{Sx)EG-|Fx15vniU zDR{wsGhA|+yz2UiM?ufL5}=<=lSj%`e{tZ?d0PRllSRfj2d?v&e3vDgFDuB*Fa8bT z^mg+_dkwA;fF41(OAmfRx%V_Rxq~jwib11x@lGD9J`g2fa;&_J45)4TaR9W}KU??x0vTf=Agj5L($yr|18&n`< zLBU`;-YVXZ=Y?lNe_#z@ik}uG!kCrY~?TUbE*gm|tje39qD60e}ntW1>IEi*(v+auQYy&$X7weKv+N9W?h8C2{ znGQovuPp79)fg}Y37)}Ai0@mGYjC0}P;rYa2S7!gF0OK!mj&x0E>Z17fkg!_)31!6 zu-fK!G;^$LdhdJShtB1e3$_dL%~yY%DpX7^MyeRdbi11B?R1Q#ZeoiO{f#O$2$O=! zsai#H9TXv}jD}_`l}6nl6#WfQqG6e+6Xy~q4xI!?wK2?{$`lPkNGO=HN=A7=ts2v2 zcR_JktN4heLRJwQf>l!p3M(f9G4<9dU?!%C!@{17{$m1op`VkKt4_EK&!@_g%9-Sv zV>-fNf$uT;X;uNI$#8YuY5K1gfyEA02j>C~Hu1m(=gn#xHV~<7=Mi_Vj=`Obg*4k5 zFyhOC9uYV}Hl2d+~Sn2mw;~XHhUb!z3T z${WKKtsMo~Weufsscv?r??523Eb5$w8`6j41CLt>TNPIxG_CSJ?65prmRlG6!N1=8 zt1Z0o{`GNty&XTgceieNxh~IFy>aRwokDcGAryqX*B&+u`@F=k0Me!+o>>Mef@$9Xy7J?)djyM?ZXd#Bo7b9J2D92zV+L>=<)CV zu8~b|q+uEiI>w#kOnhU)gGSf+l96j^oeAwK%mx#09CbNKyG&VQjwQj=!g`dlqeB-G zbdV0HoUo#Kb`u(=$Vt)L9T&r^^KtI<()60yCk}o7bmy$}_FWdA-oxqIWAKssoL3Lh zqjC0k2~~Z*5DaUZGmQ=u{1)=N2UakklX)Z@{TTbJRBqh-aj3D>p18WCv0dvP-n}#YzbNZq{ zICBthaXO=dIZ+!OULE8cEM8(9G*6^$la^T(GdOMHsKTU!k2yMF3I&*Six&=c7*^%e={ko` zj-uFS`DhBkEXJJy(9B44HG-(hTx;$U~y$`Rve{~F72%jGP zr^kmIw>(?ji)Hy>RfpoX(bYQ=n9K%&Y+h<4`f_PyU}fbJ?LiuCU&;L-G&=@n)5)mz z!aBc4Q9RzMr$J+-)Vl7=o^^8!6ym{^jvI-wm%`x9CBw8C1KAz-~yT7*I|cSE`5-nh>o@!WG@HL5RbIChbfr zig?W&==H44HrC~u02!<&LRW5}HKP@44akw@-NMT=xEvjmY1b3C9n~F&+S8l%Jp3J- zd)^A@7qy1c^-m4eU*H~0L@4LoZqBeaIH>8QydGRqYapLQAKWYe19%6^~!}sVr_im`Q*TLrRL*)B& z9j!6eA(0N@m!7xiGtDpiwYAGbShQ0#lmB@X4>J z`{wPl!@A@Zp2FxcnE5gxFgB-_-YGq zvj2h=ZIGF{w?Us1dJ`G+wPPTVzTTz+x`oP2od6NEuVp{{{Q z7!G-=ZM4*W8nI>w*x+O+nXeRc)VxpvZh{Ym}ghKil)Bo;9 z1a;mf#$If(@5G}GLGXe+wW1jDy1a0c;Ah)2&|(meQQ_DPdAi<=K5OTBRP?gosrpi3 z=ekY=WNPsDik7rxIPLVtFT75}Ywq3vR!gz;u?~-(s&?$#W;6`>XNN_(S!d!F^1$}^n09;g5bpsT-Ko{qi*#4#J07cL!zk^FFBE}Lf;#~nnxC4~L z=`0>0BC;$H=;6j~J{;fp<0fGXrA*Oenbt+r$@*;Jt>XvlcHI1@TX^H;KKM6p^b>Wz zaLbEzdA{ncLLmxxiirn`El07hfSH$Bi9*PNVZ*$<zjL4F<24x+|@gwyCR6HNvd! z26sa5f=i0gWWZ#1DFqH_vmYV97>(2w5@9=XpNqs?)P0Exc%^yH7J~zY0YStI1H}i& z_~#&=pwP$u7)A$TaW9@NfBK(2`;-6d_`m(H@BjL59)9s!zx{i>{UB`Ncu#)&KYRY? zfBNDd{^9sP|A*Iq@mI%x`1u(g^sv=5*zrUkqto7xcdNUX%TzR% z#<#ivp8aP$0?NAd`RpVpIY@j$Pw6 zMf=DX(}D0JH1@9Kf2V=P-jX*5S2#4LpAvwcBGL2U1jI|XeB-Mh9@aw? z-(ZT^WAqug`3mQCHiIFfy@eTFv^caS6^0-|D|@=}vZI8oOqcZOGCWP;n|ld?tj%!A z*c}ebqI4o!*^UwAiG)xvGDPZSXHP_N4$A_!NHGGZ0c|tExd?7E=a>~0);#3a28HNf z8d?Q8HXIAd7L$eN7!r5@Hi3ZkrOODr`Brs$&oUtKA`z0(pH03ZB9{Igk~L}Von>hS z%YTpQO6#8o11N`_zD0S@rlZjuEr|Hcn~%s^KE@`pQAmF3v{8qxnLr!5F{Bq549RkTH!YRv8$4Qaq2p zL;{$L4hGyR>J&^MvZy!*r=p8Eg^Ol@OZo#K=?~h2k`^EAG&HKTj;2xSoGM|b#RxR- zXlr1ns93(sJ~P%vI0F-Ke`79Q!6{5fNSQP zOk5!cM6t)9s}7C8L%dm+Cn9mf@6Z7Nyf(66n*d=qLKyD@XH@KVDkRl!Qf8z+JBg-| zz?7(Efvm@AaPpc2u!BGq=)$cLuH)ceATvQs?!T1My;!p#Tog;~I_>QWGmKT~R&y190@j@g>nHq7>gp(=hi^i`|Auh?{FyhgSk{l9` zMg`P`&BJ-WIVi#cT^MDO)X_P>K^JJ0<FUhiYwYBnnr$2AbO*R!y(+Q;UR?An}2l-4E-x1MV$~%U z(vz=Vk$-4C?@FX%ijGxXBwl%r7y{b`2!=*$hXO-UsRjxvJ;Sc=@)<-r&^la5NzNK>QE z_v@IXd*I#dn$PeT2Ojv-L26In4~VJ62CjqzFDK+S=;hTC4hX!EWDC0porB{6;e5x|i$Str(9(hd+dE>l{8$P8_52_3zE9I-Y{ML&PmUXQ?+6+-YxpB(s+JsnK z3bPNPap=iTV!*m!SyHCfp(hhOB_YU#txWH;-IihICS6pWU|#9#p^^tB;hy#W!RWCz z@BW=u;V*wtCVq76D+Z(g2HOh5*lf%}8vrxi4-9v~S?bbpsHeTU#a<5s?1AAFGzuHC z1F?+35sf;>$V}6ARON&~YlkRk$~bi9R&r5a$0Guk(mWbk2(qR5r}rqZNG=36)tzo= zVi`nB6-h-Gs1p~}GaTG1QA5KyaY%?m`VWnahDZxB4;gZYLK?nmBlQdI0cCWmBWPAP z*`YaON42^8I){E}%nAUzq8ZY^QML{kM`=QP+Od}JS6TKXq=Gv)kK1S&HD$cq%u$y$ zRx>rqu32APaYVq^g$25(ZlVrQRVV5IBC3O^kw=-?{FKcoOHnYXDJvLQ+)=Iw{d%8l{7-SHZ%eTv~M#KJvg~&Br1T5gaG3L&Y~*ALFyMQ0(RI5wkvyq zy-H6}(T2cKaWOPNmezu5_ZeI8s>oU{XAa1|81-&V(j1b}=LAVdJX$j_?TWbta?4|E zD-=-V7_fy1L(3+Tk?82S$q+!1jl92g;l}wmnOCcKXX9g<0DVA$zrMq6;!byBLvo=7VL9}cgnp5j z;=ADV6liP!vnc!}NEuG_;IpsWNDtkUlgjsSgsc4MFkBdiB;(BeoK1bqR=0vRViOK?b3fvrUb6^3Hg%XU8M>!FV@t{o)ksE9C zCm|xLpqGtQQKg~5vH{IwVBN@2GDx(`12mIBYpc7q7;Q_3svB!-ab>h0T2Q9tdN;X? zHFF0ed>>oKIm4i7!#Y+1ON5Xr0oh!n72=Sr7$^d7cuvS{Ysn~>E6E+wjIMkc6i4wi z+d~WQhTOMH=erc7$0- zM$mBEB_~Q4A|iIu@3yg7>ckE~=p}fDT(Bu!-I0IpoTwA1sKPC(D!O8E2~&p41ZNdh zSqd8(S;ZTbovQW*2j0i1gVFF?rBTli^a?N{&A(1oB@Dpy41ng26voKHp2AdbQ{^l} z1ni1D?;W4#)Ml#YPrgHkW@(MfNMJSUgf#sskOmz#1HusKx4gPUTADyq7AJ>ABuJsc zsWd7acK^W0fW~fvP|?iHYrBy>hk;e=gO23v2(Fpgbz)dc{@2DERI#!-6bd}KCDgzw zcJ6pEWu%E0@Q=>^>y^rk{Y_#pFWh6_!(i8PvL$Pjk~)jwJ{9$Vb4eTQ0pC2CCjvuV zwJk)-2r5ey_Gge3Jqiq8hG4C3>lHc#iodvQv) ziCe@$To6^!Ajk^QP%#?9>5mF(QQ;6O#RF8r(7vGJqnb3u2>_~ySH>+sDK2adaFh+I zstd3Hj&2cEg+d+RARrttB2L@^ShA39qsa$?uvDcOhe#kr)L~imaO<|Cf4C1}lWhx= zLLi-=>ZpsZ&sX<+anBaLQBf3wQ}k?TdyP_zoeOE9p~hi*!U9)+x`leP)v3l{S3dLY{n$|DkWxaiaQX>nSK~dpjeC$P2;6#u9nxx zEE%0^p2~!IelIwOAYR2~#*^tjpJdSD5;fuLx5Y;s_9( zmT}x7ZWc^TI(Mv&H-S}Jq{|xEd2iWkVUw&SS0_wJ+*8W-1dhlVNW|bmXxuU}Y5t!T ztg_J}Qo`N5j(trcb7)91d zl*yhhGN4bd)U>x?nua-J^iL`xni}_!D@LW&!#*Pz#plvR(TX@%j3{^ppX(Y_=(60n zn`c;8V?&DyLyz*@Rn57hd3^wYmcYwh^9N{QTxmG<3inQgOGDU4$fZ8v}xz;RpBzu_1N8T z!uleaDX>RwI2(U^#^8VAqSQbsF$F{$vksXh5idQnsjd6J!AuVRKkS z6@GEf1vpg~+0Y6vaM{03n}Qxju2F@dVTrzpHf#jGkPTNM;sXV;tZrSM_w>hb{}944 zaNe>YjEvEE%L~?*hxPfvKlt$4`&UQ*K>zW*{_^Nj9=N>;him+u}HwM2@Z@v0}}D2RZ*F&{Jl|I<6yYA-SEVM8V2IZ zg`0&m(DP$9ipQ#-@`C-27u9XgoMR7t=4Ego&NX0Of@NPsf4&C9=?-(|K6nOwek=O3 znL1D6?#8q8il?sQF>GQ!0UUavK*-ag&yP2IeDrg9!b9_P@b_M28hGkWy9f^a4GcYx z`T3~w5})>gUii;nKnKFpmw|n4M+|42a+lFox3P0E-BUX&<2_mtTC(3ld}Ud_a&xEZ zgcR>nb|C^p)D6FXQT3A)0Gfp^CBzU z3J%(%-i!C`)tX2!HW;od>muutZb7W;ix_Ij-X!QkH4fHP?Pk<9zq3IGS-plj)1&Sw z!UVuW;@-Dpj#H-3m=Z@#^X)s4rD(;9q1>TWUqRwc7ix3-SC{h^Z58;?ij_L^Pb#&W zw&Q&VHn1jVSAO>G%>++G9nVG|#$_X&xt~sj^U#YIDlfL+V(L z*%1JGs;vlUd)f%UwLNNHb(m@J}0n$YY0+0$u~D4Az@soSC@XPPeCFsyiC zb_)qC2rU=}p>Ik|9TVBUKNu)_!AtOYJK4Ii@t7`{ucC;3mQEC}(j$WH#=}D5xS}l6^s9h^_vp8{IJL@ecrP`JI1R-1~;uXv2YXBJ#D2yh13?!Jq zYNxUwfvu${PgAU(Vn0RX7RF>O+Q$J#z2SsEb|`*#iLuf@MXNjzsoqGWiKrWq^Prp( zdPxapm`Orw<{&#wR)N6~J`B{0oQNkbcgRA4HfY~MHjpf52^m5_%E8q{$hxy!7#FgN zHU=aZ)Jw96jOQxpgBmV&nq8@N6joa!U=RzgNvxQf1Xu=K8T&qAN+6x=23uBmMcxw@ zO&>CmKL|rw8$1)j5tv|NBnorXWlp%Wx}?sWxXc19qAD(;I8K~49NS`T-?Q2=)ReGe z1K4twfjUIVPLPf9UHXc#q_h{)WY;v-g;E8)VbLUMXju)Ogod6_bZf%Sq#5nng7_0cjA207FF+xK)7rNiVKv5p`n6MYXi(|HA!cBMoSf;ShPmb zqCg*#p`uG5Sd|vhR(}J@1~mN>D@(en`b2k7rcXuy-N&m%u2@LoeTo!xqt`gd7(cL> z%h29L$_kPoz4)102@xGdV<_0bE%^O#r4L$Z+*rxk^x(Wyznib4p-$~;I@2ytXYqhp z<2L5|%=A7_yH@bzggqs=d{S^`QnQa+46uhdcVj(zl3>tl7CCRZJVg__)}RyY=|w*K zOqMn2ohRaRNF8BuUkAlg1fXXWVkd=OJW@F^7PY9NP9B1&m!pbPi6TmHvLLafq2hud zYJml22_7)MmZA~JCIUnd7-Is8gxuN#NDw$Bz^Dv>9OZd%WAp^jg+2n%M+uI8gD!y6 zSOnEY9Uw|2pqVCWop@`IX0>Q*5ju5>L6Rs(;T@YL+LH=Vhr8#CC&Rsec;J>5qDNJM zMl1V(^{~qGHQamuX7jJM@DLsz9`FiofqS+t&lkO0bOo}47;|SFoQCOpIjf zI*4iB%%KEo7Zr?7hJ&CEPnAu3Vdy-#3R_R+1gb7< z_<8kF+JZ@#5!)|MLZhmS(GWr0L3eAFLl?kEhn*}ig-K` z{xSyfr4Z(095*p`Bs>|;#?uc7!!vyk$oacaO1ZpV(nu?uu#5uVcctW!<&O6$tHLkL zGr#D3k5DZ9ywGQSF2~rTBzFS>nbH(8{?xM2`sd)dJrIm6*KU46RO}K>OkN*P>>i+Dr&Y zt5S_t0z!IKWz3*nYYzyiD(A>G8!-U1=3+$yTU!AcF(!na)P|ZlZ@dcoccEO2HWyg| z+36dhJ7C*X`Idt%;SSWs%vqd=weg7mAc6_wNO%l~@VMDAPCC+WQ@m0@~ zGL>_!wGvq$T3x`>jaPDABuC-*co3$pK;pkXn*5}G0okf$WJ9cCddKycY#T6 zg}v}r2Il#=h<5uGA8SI$eW2F*3Kqu(H5BRidl|e3<6kkmk;|`b1iOoIa@w7^>lD4m zsxFb)!jC?dn}e(eaZZW~hXgPiHH0jv6g@!w28skv2)uG}fD^CcK=l%x1Cu&OlvQ%# zoj8bkrV^!!Qnc&`MYh#P1}q$+m=pt8?L<|QLPwMqRw@LMD@`JK%pnLt?~^nK9K?AX zU09%wVF~J>3xfk3RG}`>pH&6ftgwg?lMtFdB37nz-mN1J2Vy4B8>Mps0aJM$JdiYz^4xcKi{7~9`5`=P{*CuNxk+Mp}Ktn%R*?YGtbbbJk}SlP!qn@!xAw zm9~#>LM36R%XJ~_J=@yGa_y6&&$~N1xi`F*+}5?{tx^DV@@S&$gJU@ReX+HAH z_yR~j^VdVcVFF5Ge;~db!|^MxRQ#TxZobn;^u%|_GdAu|br}~(6EgSCft=g^&0u9t zapyKo;T=HE?Z&11t>hgULzCA6ZzmYd)7 zG1696XmwyZ;g?cvjil1_c#2C>l=oECMc|P1G%~dr5RH6isc>5~KSZm~*o+k_pn(qK z8J3UE9m_$)I=CaZ6Q+g)8qm4Os<0o5&Lpr_0W$#2Kn4h$TXns` zvKae8bQ01TtCQ*r+8i8p^#J>kujLS0l0Az)^bmltbaKFG%K*E$3@5b}&N_}Mc#yEY zy)GNBjUNnCDh*x&TlY?aUfi=Uf(T9$3sh_@bQXAy29r<@Qeo zNTG;zXVg?pkx@?Qt`9$o#@E zq{kGC-SNYbT`%8r{% ztzysx1+H--X*GN1N{cP9N~CjI)w+_6SyGTuS-cV< z*k%!sp(H7f1aKy-Yh=;-)A075zyv2S_d9H>Z|=Hx-sUBNVRyXn$ZOcC6TB_&k^5jJ zck8q>&&LZji!WzszYSoxXMlU@gS?UVMwTS_3~ucS^-we0F^%k0JFrc)z_gZACIIv(7QnV; zq2On<$2W?^Fm8dPFtqg(NcOFgyfk{k14DrKjG>SB;*Z?CkX%*-C&4jp6^j>z zs1vs&0fnHVA|c3e6PLx9oQhkxK^BFAnsq#)=yP15JmW?cUnWr{gh~PuNYxm40TQCD z7$70(cu*l8$)zwrG|)$nMA8A?LxH1m(cqvCSXCY4pA#uT^QNYCeQ;81>YURXPNi$m zs^meD_2Aq=>FFQB!;!_SFjr=Zx`)YGRdD0h8|8~7Jb3@whu7P7r2plEes**>&fPh8 zx8lahilhe2;tpq41DKM13GC1=Dy1iaMjns59IlCaeq*=TYvJpI#wGHaak>pOH1hZGMVNAs|Z@;wb+)$O=)BMP!34B7RHb=^UP| z`f|ZPS>^Xs4kGs=uSH%{KBasT`M><* zfB3)t_n-c!zwGsPIbyhNMY=(R(Ra5^L@$^WOu9uDyNh?b$?Hrq$ZF42_&d{w&t-@R zJ2seu26Vqg^6m1|)|PPxI>NlnT0 z+a%XAON*R6ImzJaLV+aiPNVt~L^PP+v{0xY*C1_$DQ4SA2vKel%aW7>)EG!w6GAcI z3D_9aBFj(5WnZ%fG)8Ftst%$e>QWfc-9gZLl4frw`(KmqBku}wFJVK-ohlsRgu3h* z_2*ef^(AQ|&t<55OcWxI_l(D7=(ApZU|twn6+qc4a>Q!_B;=Imu9} zXdDRldOA;QUN02-<1caiRA1fV@D;gvF1OEdxQkL^^ggwNg#dbb5AVfqay$yXEC*Q@ zaf?I^rm%@FqF!8pD&taRD*l!AutnlM&nQ|GSP#=I33Nf z1ZiwDKnV~~oK$N)L24ujFl%0nTjo3DTSz z8?Epks;10t4%n7CDQ$12v})AlOnPd2;6B*WXhYXc#;A`xD%HP6A)03j`nX0D`7MEo z%N1t(0p95_dKW+m-|^?)>M$e3@D6eHx5D`@y(K=`*zt3k2*28z8>jGn%3~A^KA$`2 zu8b$Wz<-r11vn?%_bYIp@6&-0Q*?s0F^(6Axb=vW#b$PCAY?H-(H6VH9_rqb3p+Jx zT<~&RUSkZtZbY6FhX|~M6tYIgbw<>?xU=?;hk`a%jvie^g_MaqO{`AuZm}*+Fezvrd^A@y zVu4wT0mH<}qpg;Emr))Ie23h$&fH51O-!Pkd!V?1m0^tZgH%JvNoCTn$Q_i03T?Dp zqyC|25-?;0h(j(jXpU_|Za&qV|A_f(92uVv>x!(iv1QvNrE*S0DVs=uI7krjtdOy# zA#N7VhI!+ej_IumpGdHxSh70sjyxo#1u?p_3nWkJ+pW@=LgMBo6IDmv<_IC4^I zj*}WjUmZuR*0i}Ks^Jx701xL z4~KFup;1_Z3~e^8?@oCc35gz?g>L`WsSkz6upOI!8%w|yZ{`fBl}p&grnQ3P+s0Tk znP)!Y{^x+p8B+6w=Q~3g=HSqlg`P=j?xPw9+$b6K1xH*n4fYHart6KI(%hc>EP|+H z96Vm>!##c(aQ8L2eJQukWW5!L_)S6(AGjTbUi>EhK_2cUcrL3fH?kgNS;a51IdPk~ zMVx08K~HV~fYV537O&!zn-`~aPP``4^rGTi#*0ICHPl?zV(bh6Ak-uets+2x0E+Ai z7`;3*sHvi)XXdynJm@4iib6Kf5gXuqSe!ceB{-+D&@Bj2m&1_?M2%%r2W8P~7D)G! zB*BX8SO}w)izX;7S}hbThh;rT@Opd*{>W_$40)2}{<0=!i+^5K7uCBp9DR7bg?sOh z^q*~bwYk-~XU^R%a^u7S)#8-q2yGE7nkJh%4%&KA*7>y%dK<;h^3~2GmoovrDbdPj zy)v<;8my8u%xn!rotBtM1%XPCBqNPLuc`e&l?p&)W8MU5T&$%wsHN?aNrfXSME}Ce zk6-)GUilc>y?DNS<>0>R7^Qh={xpIf^`pyoP-0k`ABiI z$r>%e1NG$x?*I6|fAPnE__P1ZfA`71|6gSD?JR22eZw3#bu5Ht&5xu6qvFzFyKJ`! zw$$nRkirbKMXi@k09%^eFU(Xpc*2#kua2}U@5v_fg0Zvr#ljw-aB5q?*fKm4L-w^M zu(#<=Du~yDK+`H_zs1L-^;-0~)lR<#Vd74>@>cK+cdz>VrE$PJc+D`J{srG!xk4@s zTH4voD~l<-5*~e&DEVUmbIRMzj4MS;-Wo^eTOZ-7fo8Lqygl&un47^lr2LCZ*naX7 z0xo89e0lHp6wdlO*=f^gA5w516;xwlK*NgQ5Y2V! zo=&P_M#lvyMtg;$f>a@p^IcCRT{$2#f z%do^bfPD6l;I`aVs&GXjL&YhG#B|OqG=+*FY9*pbEmjk}ET+K$&lo|Jd94Whi%1VZ z!=jlTwYdm?ODBZx87kLW zg1N{}pgA=SKxp~wXy~2sRq;pqO_ByQRo7)Xz-6yL8IWZd-I6%~-2wfrp&v$Nk`~*W zanhSZs7_uAog+>uPY$P9kKm`e*BSqa)-kQa(gFk0fpNp^m2TV?Oyzm#|M!h+ah`|s&ey84tL@f z@hXc?_Jhk>G@B$iB(Y`{4^fp(Bx^$pym%+hC&1c8J&m|XB@K>RxTZ(!&|xgBLNsI` zSOpZ9^*b~xE;%qzR2U#ZWD}@}BDf$>EUL#XIABpaVhLe^S5-&9h+CjeRRyXpYZxIJ znI`Gpq*vC6duIu?o%$1uCUZd*;q>NC!>!PVhc{t+2qDlsG4|r$rM!3J^x$M;IQsBr z3-^B8y#Ltir^n^6=(7d44h!Irw8rOt*R)^(PJc!(iJQw*uOQgj@@v0hNW_-T-YwyktW5pvB6o(rOWRex~8HT8@8b2?6c zk2B~C@c71io;C@6p?TnVj}zx!yq;LJYL46t2ABGo8};ymx|^%X)V> zWNiV|q_J?5L#9Gol)3s7COUJKNiOJTMo+4a8`&Snu%6?;qQRprFrCyuB~S>c3YE?6 zvhwaC8CJ>U3=*;>OUn{%+UIF7&<^LlpibGxDJ-c$3TPVv!yLN?#`g5|0W}Wh^OX+e zP=;QO#IPot2d}74N{q!B8pItHr=D4;S?{}$VYTvCnz1i_Fp*jAcQzjyI*TO+_{^I3 zNDy=Ju@7c8O7gKpB#^0*u6B#SMX5?SNYSrUh0`kFsG6YaB%4@-!a4DW?30F*wW>zb z89iLx`vG=z)B(!wU_s*nW&SEHwrDk@2Qlc=1nS9QTL`-cpk;Fmm6rua>KR8-I3jR^ID5`uWj(aXao_nREOY!nIN_Zu2@ z#(OFC9?DRqK_&>xM3lLQ%}9Ubc9f*d9~_)wNz1rMBON|fc}Dk{c6b~ABesvPEr(-_ zP%vypsp?~%7k9X?Xa}vWLzwwPkq3kai+C2bSPM2Fd5^WfY0gODiC}pz^**8GL6Py< zaR5O%IwG+*n|gG>18KTwWTwS2R0++#-@l-+-n>(I-LCFMQ@?z2JeQ2Vs>9Mq+lSMg zV!s~19jzl?K%idCMw|WV7WE6^Kf{~P@M^*Ooa=46o$X#8UeSlxuO&SGuk8KXuVq`h zg(P19`y@NWAdi7lVw1Em^YP zzy_*ZP*5(PQ*}I#~eeL@- zJ?(!LJgHN5XRv8VgIB0dxah*>WI_mXw3j$Y>tiA}yFlV^oM_ zfKQRUhEmd<1F%Jfx%j=94NdZH59L@!9h8??6Ra)T=^g#a($&YSdzNx{Z*pO&o+oUP z7NeaaQua&sbN11%FC#8vh!&19J_jBGf+4io)RaBFG#k`QT78oBJUq;I?=2|D@&et> z+SN+`>}rD0$@JXVhAc2;E=WW!P1fEptX}AQ7lt;6DS0O zp*Fx})`z13pMZaG_J8v0Z2~dOn4CXDxYsW0fgy%^m!n7h}GNEA0^`76PN=cx8kPFh$IZCh_HtYI#&Y0R&VX)C^% zripV#NSC8yT~^_=M_sw0JDx4VT^kQcuJ2cFdbSH$kk5Leip48{g>Op&#mmeoC=(YEGJ1by+ zS7IX7gj!Lk?!e+@9*7tkUc=fp7yx9|QcV^v87X7T_;|)|KH}vC4h#{8h~t1E;OFo0 z%{xTHG2#hG8Rvj#IFGnw81mEaTt4f+UA>=-Sd^35X(ipp;e^MdJ$Jhs!j(P%)(NDUWY3!YiwOc88$VE z_Cunw=dA~F+gaSzdDouFwO+gVU-9lT8XM_U`*W4;V_2JuoXhRlPD?gLtsQ7`AHwQ4 z7OdRV4Ii6vsk^N=XHNCGzL}-WBZBP-JllHts%S3l1j@C&ob`!Xr{>zGh=KkqQAc zq%wr%Do>juX9Pp`nn@T#9pG}&ra?0Wk|r+(-u7e&mCRA56mp^vq66yCFR9R_i?KH} zw7rR>%$W^_9IU9zOb(+5vq21QfgWkm^1xum=z$CoGTH90fTFXMJ%T8oLs%! zeL$2ad)X0^_GH6J>6-J1JbKPs?`kI>&uETdL$D{|n)5a5n)2v*yyi~~hhV2@r+|Sl z>+ITEC_G{Zf}Uh_tre}!h%#$f-3={mo@kr3u;xM+S3Z}vn-y^ErqZ}oPM{`vQj*OD z8IfM1xZCds12W6x7=g8dr{ZP%{h(2Y%`J`ybQCj~O%(rziVxjPC<~W|jUN zo65cF`aE<>^n2jRa3EqvteMp`*1eXXf9j79|C|5SZ~o6Cn8(z3lc^+*G84w|Vot$Kt1HM-CfNlKXMDv&z zfP4JyYJW0A1Z~aO%^4}dGi=d_JAbzkF=B|F@AvNT(i=s!oS$g5SlVkTUM=*AMfd$2 zCBJzKmIuxHjG7{#`+|K@a>-qblE*gmZ@L+ZK3l{%>otIGHDx!B$x4p#jV;nKdy2ie zOEMPM%(OAyZtiJCTICH^*JN=t8%YBL0-?YrevvICM-!%*o#x)jwc1?$lb}{sS@NAQ zFYcLqZ;dqEhAb^5V614%z4?o4CAz=%dM~hXM}Wo(nz2MrO#f=w@ENcXplx0`6;V=q z(pUeoX>_(5AP!rWcDOxm)A8w!q)p1ZRV!AxEJJHXXYn#Op?Ug7_v+Rk6UGEN&KJB~ zbiLwo(U^38(fN#&b-Chv!N(VT`w5rJBtY|Y#NmKnyywq9@Oa>#{we?LPx142cs^n< zL_-*HNw{`xA6hzICSbI8%>kt|Xce5Llk3G!bL2J=Wp z(%hnX6eDxAkQo9kFa(;x*lL~guuPVQtO+tU9pydsaA)3C-srSr^n>z9c}Sz@t9wC5 z^TrKY{siJFhEqh2xOl!~jrn>>yyWm5!!d+YpJiMw3RvtbkURN`+l~w@ zpl^IgKbnR09_BDz-z=u)mYd?FO^tpg5b3H(n zUq1fxfAiP>@qhZ8|L{NZmzRYK+#Cw60dpJax&dXhNILfGoasgL;+iX~`)=Pc_d^7^ zKLKAofcOB~K>h6X0T-(_kF|Z9FW1<_z2~;}ZO(d3Pty7c_h#vBy4mzrEW=y8%i1Y@ zc3o<3)DOQRdiB-sz zOvhpZY$PZbTH;gpjjUE>Z(FE7B@ZY|&%(Se6I$aOLpfh)T3mOPO8^>S9TCm3R;VXm zcDz zGeNO>xV`kDOD-tHQyfl=t(RqGRqox#b7#hu^ul{W9qWkJB_ay1K7UFjfi~koUY(^D ztKE&ngnEn}37&3}gzKZjwbv@fFPm^JUwCJ?y9XB+%R@a!Ah5s5WT& zff#@+J71YIeS-En( zjM)&}5)sH?9#zmB4Cc}DKnoTk%oqbF#7Hf)m!`VeNxUpkOxuQaJg-giDEmn>g9R7D z!ThLn&G{;Q<3tG3#yNtiwY-vCae z@-3mvw~gf)H!Vrtzx&0%^>6ZU_|^a6|ESr>U<*I_B=~Y|LvCw2y|ysk^@;9|^PBg&z6KwEc=08U5ekf&FWPI#M_*X+~4`HD_%Sx+NLhS?vYMDslg=6}#m=dHWtr$1jy zist^rf^Qiu_|U_DXUehN2)@46dn+{Fjx4?z=_F$5LPP+5Zt>^C(PsPeG&L$q1c!Tb zTdPj|w$A05l&o2}D*n7aipV>+VC_wB1drv!Y-$9Yd>jk?#>mVT0*2oADnW9wIy#&x zm}q)kO2}kpEJ-Xr`_s6Ala>b7#grC%{lnI+EVRW;w%wStf1BK4S{Ss8>>0YWZZ%{_ z3AS+ppldPLo?PC2*D<-%{#TJCO=-_f`(@u}yqPPBixN!#>~|?Qad|R3*E2jJr#tbo z!gg1>#H2V^pA@UnhD{^3PJ-{ez@fW+tDBy$bMUyS-}HA3Q8=8GFQnf2*enYkX!|z< zTzWN@v$K_3-FYcMgKK43Seutu5pbO#xR8t&4(OEtttE4V>vyem=Y3hKi%2Rl1jGR$C`k#Se1*c*x%()xI(ZAlxYgg4f(a|j_ZX_(xZ$o1|s0+Igy#Bt;`b99U& zbK^76VMz?t?=0e)kuDgIWn@7SoyUL>83!;T1m%EYA&vp&Kt>3&=$xlmLW4P2dNB;< zG#~_pIc684Xta_Ki4qc7YUwh85P~4O)CLIEW+GIfu~r4;1{mpOrwW>b77Zg+sL=V^}GCzH3y=c0S>1pLe}0trY$ z5?u5MmpnsOkNwa7jeq_6kN*7QfAXKMCLdbVCbmadGn25ZSk)@o%66gK<*kmwq5gDf z+eNbzp}SLk+dcoI_t~@8wll`rcDO_ny#t9VPtv2xZ;egssxo(;mfMTgND%84w~*GO?2;bA4EUD?PZ^>PrcRttk>hG!b+@`VTLRs#H2OCaQ8QgZJ+bqR!c zIDv3a1mEh?>z?c-YiyhSy;y+pX2WTl%MRo(!tnFMDOlHISTyC5-Pe53lbkwZd}k%P z=`Xvqhl*(MhKgP(HR{07S{kc2OLsPvv$X#^cZ7U*$Y)k^kzK8uOqNwu?WxpjviYh9D6y>gP(v^nb)y4M*O^0NK7S0KDIw=PaZ%Pqt*yva4c-dDOy z_mpt9I>Z2CK%Ku7hF%$iO?P9{!Zh2r=ksM%L=KG(S$*r)#9XrC1)I99wo+Z)W47F> ziLzbwcU0r^stnNk4Etz4ElC~oy>1AEbBElx)>5~())HiajSCnzJe{^D;~HjUK`-Fe zv$mpbEWg^=@nQB}%(n!aa=CHDUSeSbgY=5_^j$Uaufa45lsPt6-wfYqXD&O&gq$nt z=bH3#!TF*w0m63|{Q5hcFL*iQ<*ZLHdij)p{Y!oNwQ~0JcYgf@LV5Ibm0#r<07GQ3 zsWd_wL#b0m9uBqKQK_0FKnsWgpbQ8~-~QwL@=N{WKabyjw3ok)|L)(!&rXN|hge|u zaPI`G*>PWg*u_-z019pnELJK%`{xWKdG?&asa2GW2OJLwp%rYJ#BaNd1J*WN?@pFh znA~aD?0nO2W&#ojK$w{uQ)O%MUpZ)osm3-(H*r}6DwQ~0k<;|$HyBvE*!jgKbEipr z_aUw6`?ZbVTWz>YV1J!ag8ZtmI^iZ^*@GVu1su?@d{e-0+yvIOpI z^qppB?LD8hm#GM>2jEwg>#bQf_VIX={$B9}Q$3tZn9VR~7?8zlwCk1QsA3j%f*D3I zkc15q=?N(!1cU(=!NS=X5C#lK&=?{@fCtcE1`h~E%c{R|(2-baJ0%A&6#Baw5r6tm zGQg~~gV9UpLZ%mPQ7$!6Ndjdhgb*r9G^bJ95CEqr6-RRh44#BQ1?SZmiDVXPUh2nG<`=ocfLoG9K8d0rk&~3=`O1W^kv!KD@4h1+_y4Et`p`iScivybYM+yJ% z+kC#(nd`e}J4HLv1|k8UfWwqq2pEtmW_%q&klKIcWk=vWaS7!&ObI!bpaqrZg2(Xl z|HZ$Z{_$U3{_fw~xXm|F3w!CZW#Hzmp|oGdX!p6c2=>vQsd}qF=}rl73y#?Wnm&GkBe1BWcM~&6|k`2-K?wNkw zKl_K{B>i36|DU|-zwd|RtKa;eoj~{%M_9i7n{Nx#+A!o6;~L*^<#44$-xAReW*>&b za{*PVIaep;bdDdKaHEq5qNNy3x!_(|4Rp{f7=wXa`=-$-#%g`YY?$emVpLavW!`KZ zj>{eHRFN&)VrCLd-C0n8?xIxaAGw1s7m?jqy_Uw><0sJ7QfH_FJn$OjzQ(!DW-86R zW3()vNrtGCek~A{Hl-1EA5;!bC_zC!d!Je5SdfZ<#N4fCjI-Xri3ZqIqN;6G#jQhj z5EFocSfmTC#GvWwD~D8$T6Ok|%$>ACb~5y;7P@6I~|5~i_G{cgl8^(JxaQt1NcJU}C2r~nOc{$cvK ztK%{v3Fi^lgp_f);=51y?jtT2q^p1WsBeFjKmNwApOll2S6wa|Uy!a!S)S=x+2t7$ zJhu*AA%J0kB2>#xt&6_$#7QCqhDeLF2(kb%L9^k&c(k-% zj?eFK`ZGjBGzWM~Ku-7p%of2v8X zP3U1KCJ1nApy*RW!t1K9 zX1ic}ecr+y0%z@cKY z)VM+ah|m`3+bc8u^mDo54Aj#hpQ5FNYr=W7oZ-dNo8gX_Xc08gkx9G2A}k_Agb@rF zF9=a#z%bB?NFC^g9Ap8(K~z!)2|2RCLe;oqgk=U(Ni3`|cp_Mx9|Q z4<2*G=zjH_Jb%h|Ng)I~1v{96xph!~X<4sR$FRq&{??i|XD~E-gZ_@{4F-G?GH@UcEsAhxtY<4TBgR26Uc1A?sT}1Zk>#AnihomgE;T;p@ zHeR<}zEiKvD$`R%emp`r=zoKnrUyD1!OqTuy3 z2clsOrbap48+N(l(^y#FR58~*MX<^q-jpnCe9+r#v7s}_Zn8Wf6wpOJmPUSd;ejjQ zNg)-&7UpFN1}e;&vRRdPr-;0wuFM>dW~eIG^{|QAny|&WKW=-uGE=iZyKK$Og>in7 z&`H=P{bl1)T3o)IuFUQgoaAz1abTD0;Y!`?JlEQ=FV;zbs~Estt8y=JYxyD5)x||V zmu_6-_xu2wKV;TVS?#pF&^(##YB^`}+ZKu0<}b~{rS(8~Mlmk~NJ%dr_3=e7FS=ay z>7&1VLQ1%f`1GRl8Dl~o{qlnIC%=61be6l6p)4QeSre({$!(FV{$7#NR& zD~}Kv0z(w&p5@u|C?5%jCn@E0RnDY^cntB$!Vrch<1-E)6y8Ih^zAwSSAWl*-`V>U z{^&gp0l^T|h(iQg-G!a@kk0M2h$Sq{c5oh3Q)yEDp6Je|vS2iv|l~ zN7I|HYAvdn+$hU$c|H>a11weuPc8r4>I81To!R2PeB#w>+Mz3Ql6H-VyIb^nyo46P zbGugW;v}A^QAN;M3mIK;u$LwljV{Z6YJL`Uaz}f(@j1S}jAlC2?uTqu5blZ5D`8p< z)?u5KGPn7!n`p#aqOe{aw7O5LX$W1(m2a6t#;W~O=-9;cdbb$rN0~p|xt_%ST6%3t6T98GIQSpELhu5(6**0f;RqyDti5U<9tfwfrC? z)fXIr6FE|&AsLej7{m=Y{tN&7hkx(i`St(qf3GyIR7YZ&C^$9nXxVHcpOGqC3di%!sZ+$2ra5WlT1%5P|RuW%0@LfPGlB;H+dKV&=J+%sjy z>~DD@J{11;N|)2yrAxmfwCQb1`~ye|y$MAHK{Z7Dkv{aBGZB6d6zjL}H-s&gTdVZi zoAZGOhuW`4UbuOl{c9@zpN$RC7ra_`W}&)2N&TF5h#yj`=4bIYen0={4|a2IE)n^e z*VOL2??kaL$9O%sA>998;&z7N60kboqxWq-i^Y`oS9hz2_%x$fO|&EM9()%iQHgk?@c3X@9)p9#e^%k^^5`cqXb0S>X zjNI`zSOm(|_(_sArM(HhojrB=;A%$eS?=uR@&(IPa|mG{Sq|)ARk!qv(3~`rOxegA z6GEA}tUXknU5-WIAyyWUb{Mwquk!XR6t+s?`jtaXb^(K!6)}=kTQr7w`3VD4?T|$% z*?`lP+2Og>nlXz?Gv$vPD^bLnPA~=X*z~ySLb%l}y-*wavB(mfJ9ZmS01#>Y<@wD{*;F&dwOs20KzYy{Q8l<`X&D2 zuW<|*-YsC?)4}vrJBk)Ve(%larXVpJ>eXEj-R*<1cOV6(VOdax73kWRGkEl*0dYWUxw)ezN1;%&s zg}QXI*HBr~Cecncr+3FP&DYh^*U}KzcYDoAz46@N$5!3gqR&`uFS!%56}oGk5;h3t zJ5w5N1n5_nH@tmxR}R44#rm?mGc$5HhY-#*tvM2})0c5Kn7WIv4u*Hn{_Y85;>#JI zUYJJ!P==3C5lRi&iu8;S5h840h{_Qu!3^VoI3NzN5f+gGVyY%+3&_ReoZ$ux$RQ?qa*aN|B%V>x97j_KzD}Oy0#~|{q`jm7ZpbyfJuGeR za|IQkJPHkcGuj{%>+H|OM!1(fU9s8&h6(iV+=qfhWb&= z1yK$Vc>X(oXZ)}K{Nw-W|GXj6a*n#Lrx)Ghq|T13qJJ|kNB3ltwVKS$?_XUpbI+N& z)c<%(qk9a2TvBfCe#4zb_?L+SZ;n&aTeRd`Tf;95EYxSe=f;U&7q@;pvd){&rhdq6 zestUPIiLK43Re$R5`PZ`PTjiq_10#+pZ@&x=ePXl^Y2i8?w9egFTTGz!dw28d#}93 zWaSN+dv^rbpr70FX-31%FFpXz!c!O+LV0qtk5?(ZkUp)sm!RhoNjQ6@r$BR+^@Bj` z61^63c3IU;u4=Ug@_C6rNwKRZql$5X3f2D1UKTV-P=-~8wV>j;5G8j47$Tofd^%tV zQ&!&WNGTw~nuk}*#>_S7ukb*~C6IbMhqOk2=I!M&rz6}cgA;E=QfdlQ^*#%h{0a` z)zqZ!_3WdQwpWTRmx3K8kaf?;;GW=!y;Q(HhmCWP-Bur5=QFMe*Q-AM#=rfQpI;zHmd+pZ$8VJrJ^T3u zmlq_Lq?|Bblt<(&W%&qC6N;y8n@a)%3MiwVBx48&14)F)a0rJZKu=eg2^i16PS>-1 zlsm>V&%ahqX*`dY7rGCJr^Dexh)0dr!|7f8=1=VSj)xi@aJCB>GZBJ*O_QiuEB_ zj1_ZHZWG(EGFF$()*sCVM)&3Qd`qzIFIVlY05pvZ-3FAJlXKC=v05(Akp1P>w7)tr zPBfEw7+i2R_LT{0y>MLNIJgtXv)h;a3YtS(*_?A%g>KZ_AD#qh?_gsOI-%Fr40uhM z=sSjHxU*JSS=IZzYsc0NdpaKw?YT$5!fQzzcevHtqcMGcT)b5)7OxfnSaq=jww+bh zJ08QJ!vXJ}?R@6Pj~tUyYIHDznfwYy<{%qLLpU%V6h_dHVil(20WrcNJR&48v=~E! z8)`v5S8{YV5DXC^t9Ge$M2;LvmjpwJADku=^`0b2D^v#>38yoYY|?WhM0>7gYNM<$ zH3XUhm7T_Fh#pOWjPz)JwKOmUv%$haAut8RVu%hFTXnM>M-N3>Wx30J_Q91>KYijC zX^yv@&UUGJ8v$|%OwkSprL6Iq(?u$RGDLNw*8&pV#`0;xd9av;p>sL0LL?5vNJO$81>^I-`9Dp6@fVl>+keqV z0METBTox{Nq^xO&SA($jhStTX(!#cvAHEhL?_{OtX^zdn2{Z_A(-F_=YjqfcD@=e?MxmTUO z@59G8hJODxPvq~b5I!wC?k zfkJ@125m9e+@h|%Nzck!=9*X*vw^pt?P;@=UgAF27YcXVh!(rI$h^kn>g_X?ni!(S z2J!Z-(+{>nS93v&VDpg|$vCpND%N8=tq{C-N-aXTt8i@7+MKgXYArPfI+-x`i2HGr@mmn?>@xTz_ zS;}SUE>LnHQ)x^tccc`CCkFGB0Sm`>V5oHUP^t+dg2mI*@cd0Yy$2CL{L%2UKeMNI zczVX^h!5}a;XU3R@$Q7vfTsZik#jMB!G&w$OTs_=3w--6#*Ay4(J_6(-qfs6$I|8G ztAD*WcXMALS)K1)r?9&h?EZ|HH^k5oC{2L2=`42(GIn`dJNN@G;HY2vFg04NS{by^ zN>}1vuUTWl({nwG1p#FERXMf5+{KkI-BNNn7Xa_fzlb@9>GRDSt97Y#XKuyEOmlZ0 zr;Bi`$5q-#CVUgTmMiSWG_p?dv%BwY4({un0F(L(ojARG_=JPl%Asb1V)yP*12mvu81sD|?CCyss?Nod&HUVRK zdmu!*T0f6bWn?L0Gyu24jIQ+|gIFUF83K$plEFQaSM$MmrCll^Iu1o+R|p&;gIK8{ zZ30>R*6x@hBBo=Xr^$)noP&r71U3!1%%B93ip&R&C%=wLSM#gqtM@|^XWYd`7BeQ& zBJB{OOUZpy9&;YEoh=*;gDIMGEn%I z&RAEFwmMN1Njl7G@(P?K;iE(siU>j~CUg^pQ8rGadC`}(UGJHsb4Qr&G|Ei`|qT` z`pf*^{CO9&vS>lv<0tQh4{#Yj2;O=|h)d?6?hn-4MDRPRTlXMew+Fq&nI+v&6E--J zMWOW-Smffvznbv(y2kmCLizQ!=Zl~6%Z1)o^t`^^+Wi{K`@Y22rxr$0Y7@$>iU(*3~_2=#fC%9|Cfue?)y^sjty(a5_8;0{+2z!UlN z;cyC}K?YRGaozK-uI05X_ts3pNuKU(LDo{~AhBt;T21UQJDq**kE@oD^-v|Kbt|%f zheHEEbhrZ-axQV|%C5=5L4hSs&_qZX*;~^CCI5`>mwONt#u+Bv7;Z z%4ex`iWDo$C+i~b7ADzFI&jVjO5Uct?4lH><6ZnIMcBx>ij2*JOf|o11d8?+1D_gX zqwx5QT#=~*YMVUO63mGJBmqz))wmhxwBxc6@@8T7&V5`i$kOlYP4HbA5(3M2&A95T z5Lg!~YDnl7j7IO=zEc{I6RT9f$y1~z#sPbEB{qGf^C?ek1Z!(qazV$o4bhan0Nq6t z5-V6i{gwrxrE^jP>va&D1%psL=AnJKwVMc)(M;ev;^kUN z8kaN9SBy!YzSFnA(RlImi>_zCe)7wAetA*8$TQ?fS-DXeJx#W80Sq96AjYTZkkukw z7#O0I0kDK}Stx!jQXEc<2f$$w44y8^S1G%ve7)p!mOJ3r%f~!k0^{l3A0JL1l*Yr; z&rW~*H+lMC@80wMH+(wbIN<#=e)a*+2c8Z%4md^(ks)9R7-DNxFMjZVfv^k!p@ev; zUc)f_?5Q>{j|rz?-FX5mfXjXPp-1;jjGA?(-#X&2Lvz%@S)L2S8WaD)vmnHPVDmM` zR({~#P`1n8z$Wcxu`!w(ZC0Y{3~le6&mtKa2ZS*9B}_#!-9|Ro%FPzRQ786JWtLjR z?$V!kxU37y4{M{lONuWhFqaGUfm>L z#uB1$Gg?klbh`%EKPXn-XKg4SH{1hrC7rydKKD^4}H$!&-xGg<^JAAaQ@zI_f%l8a-W=FIf(G&A+aX@|ii^;o-nsEaoA^0nuGaIVoK- zE;$SqqiHY&c;OQD4Hr$qTs2wLzKF(@Zklu*x45clXime^(sJ*ug-&hu<8$1gyuFRn z$OFn{gp*L=u++mFsuh}oW#nZ%yVW_wE#r2U0hKq9`2H*f3h**^9 zHkphq0tC$g?ZOCLfQ#cSyf`k7i*ON=kV>-4gnH|yo#9Xa#=C#_fBEgd|L^P5r>W6J z6P8<>;YHff^LR_R<37k2yTOCplUa66&~`JMV{#a4=YzQE*x6qh+tyse1y_WhD^|Y# zs(!m4Wrr+f@W&U{`fP0Tn-p=aEnsg{qwl=-Q3CSk?4$HBU-?1#USE7{AKc{!)#opd zO#DLnvo>XiH*Ji*&h`0&z4?d!4&g`PQ~ptY?f1VM`spxzKb4qQL*w6YupUSty!R&E zSQovzOWR)R$F`Hz=}J)eK>L&9=@{esF;{_(jqHr34fjtpwZyveGBtrr9ZDBacCvHD zw&kFDn{#I-U=#jUnbn#Wv_+9%=pxQo1K}t8bMYP)PmD{Q*^p?)o${8|^JJftT9-PV z{rgy@Yp+f-oM~rJN zWZwa;CAwj6*1MYc_3RF7*5(DBd1+@x`zzbmWZ~*aBRnHzNEj0?FaGjL=NIIp@uJHM zu2)=>^62MJx?GU5u2+m_!KqN{(MDdOV%x=Y#SFtCidiPY$#cAKI~d*&=UuJ)}U=EBCbNGo1O$NfZ=64 z83qjl-o5jek9HY(KI<|f9w}fnMbGg5wwg zSRGX}VURhp$;coWZ3KdOAfs7Sj&9MyU@2ONiUVV04E29Q7j9g}vD^}0Rh`kbP+g`& zp@W;DVLI6IUZ<(rU_1;Vd$=Y~W4NAkzPcwVITyLV*y~cKs4;-SLcnkUvvT&FJdNTd zTeLWsB2^CCf?ik0(?!-R_u7}a$e^368I8ZL7TH&~*y|4tk+6v(QU^{I3pq7qNtVr^ zdEFkdWlfj3>6ZH#2opx)yQ}{C<2WWO!^-K%7z~0-FBuL+$6z=B(Qp7`5ujNS903U4 zGQd?iG}$qh5W=E6JFc#aBT1txIkJ#leO&gmbU6G=|I+Dy{%@WCga1I|bv=r$Dpmq_ zokrTl0ccalS}vqkj|gg`n5;T?rt-D+^k=OwA$vpCgJh=Hh2C9h@UFW2YCqIxwg?fo zxmK^Q>-D+v^!F~N=qnnZZ|9nRv9|qV7mV~{-u|0`*ZPBj9`grAhX1g8^M|aO{(&Bg zTfhtI^FNAvvl4vG1j0qP9Ty3N{o3&Lr50cLF5cN$?mPl-hK>PvPyWepJjJ2DyT{ID z%}(d()1-YxY>_M249jIX;|_1lpx$B*waju_JTPyFaB~EW2tz2DCQHJkXXFIrs%f%W zKO~tZ8wg`W;UMSDQdG@Xy->zi{k7VxV!I29os2cD-O8fXtjVd}^`ed7Iw=?4zSkX4 zeS5}i0I9+CsGJ7~rYb-~)iE8rIGnx*bJBop(+*wQTBi`0Sy^s`js7b44SaMKl7O&; z6>{Tn3tiq|*i$6bB>U;RDy_I3d2cLf+YnCn!>!m!1S=Zvayns{L+3GBp3Cv{xiCQ9 z>oS<9_HQ2wt;bB;Ec#ooDoz44n#Rs= z{_!_{{th|$<&(y<;Pj+C=5$pa>-aS3@>Lx*#6ZS+KFnyXqryTHpp!&}p-3V;937Nr z8%~H(Y4mi3vMj)={l4s!6x{;=F@To*ieRU2{$%*(&ulo^aIn)ePao`0{uF=o3!I+t ze8h9{H4k_maE#SLYe2Nl0zX;jGL-8{Pt#D=;VeQ|qv~T<%k@y~qe`6;A83N zwAqsHSa_5B6?(ssi}cr}of(ASP?G26!CcMz)rma74fSFBPqPO8h%F4lvciQKx4s@# zbo=Xha|OlKs)nz0Z0W{?@>LD@tuyid@j1JsZ)_FsP0ViY_-fyI1L)boKsFchN-Mu> zyT-x+-A~0Qn=^0upqG-t`uz*L^z5o8@%-MOL5H2s`uHs`BRs=1=um=PVFN8H4h>q}Fi-B%5gSkq)p%FP@3o=+Tx23z1>4 z7&r_TBcs*$iYW^ht>bEnI98i`6ySzU85QcH7g{i#CXq@XI)C4+{gA$DDFcByK2_vf6`2t*|t8kI7uB#&p$(4m%wnM62IPF$G{cHbY z|K(p@{^S4aq}#8bW86*r!`8#RR;+J~GQzGV_*#q*@A50AQiE=}T(|)cZDdN`mO@`c zLg=+HbA7A(Wd#UI^DVN(Qc74>Pp(K#bicc`4D#k zv_Kum0hPEhc|kPGZ4^v(^^^;$q68#G#!h2ar@ebsH5O-45S`Oi=}mi5m9r5@pS+3! zAZMAG&j-z{VoBNxS= zl@B->?!Bw*G`tCC3^eBe!%5Sh-d^5RwsxgBTd$QjO>Xj`mqRi6vat$<>u<_XHE3+x z!gUYNzMHqDUUAm!r=EPxrIynJnirPUHuEo)gK@-l1ca1vz2f|$^NVuU_~MsOxV-3k zkte^r`1Ml-*W{!;DkXV>XGqE!DzzUecCVy6VjvVr^(p zDFFC>#=ncA?Uj_IK#6Tg27w((A6fhN%!oW08&T#1G3P6^v9>GS&C%U=m1 z6S2^&1+M(dwgERw=BFTXcP7p z|7%=r_u^Yw%DSsW@3ywyHxOWXL-(q*?!IgKA*v?NEtF+W75zIJ^t9R9)$E*of-|Lqs?r4$agY zU>SL0Fh!6EMwp7koV_xmQ${pctOMv2KAUaPSwn*ZbePfW!&?B%oTyo-C`pEtn<~#E z*GhY^+9PIwx#yZvXhtMvbB|U8=p1R$LbP$&^Q^Z|j+oAmvm8`*i+uMP7s~{L zNA=o1{ZFre6Lk}dtXnDd!abAhW6zR%wN@=BF1xMq@>idE9Y_Dhr|V6Ryk4jM0_|%Z zpT@fl>0d+beq?K3aXsHo9n|`4?mc4lnTP26mi2dVYP$1EeTh`|Tl9#3RZ7KM+6F{L&fTs?C=*W zm-G~0Hvgsx(~g<$ho#WAdn;L|4J?e<%Ou9!eKotUMrWPwpCHD?-YpcAK6q`_L)mur z&K=gb^llS4cNQHt=9W_^Tov*vejqVpNo z5uPz#b-n8Hg7K{68qYqSHC~iQC@YPgFO?SQu6q4c=PVgv0RYWlp%g1fSaC6zPGAcn zRcY6B2r6lSA0jpUNm}#mJ=#SzJ7Kgn3-`9+9LBPZV`y;lkI5|@!`LD>Ts z5e~GgQbZaU2iXA@-~qfKM3h{=cz_kNb3`!Y+%)CDU{DZR6HTESPxfaEh@m;4n&|+8!#StdTs(V7J_C!I+3rTi1$fH+MPt+6Xv+1q!mc|?(?O!O}th6xjR7a9)!0` zQ@k(0Y7xKwW(};1(R_n~#fEs=>a<^|l<>8G{Xx`}w@d0%r={Lx!oHV4_ybBj{9Owk z{HzgT58}$dFVXXHt(iA(98SxkHz?O{TD9`7{;>Pk=@G-5()MEV zu?#p{eBcTE5D!nMCkp{`B5-9%D%RJ|KsI}LS&e5zA2(I(u64FthbG62itckXG!?Mb zG<$aD#P#`6w^hocr%&`idxjZ9s1YTVKkJAh;Vc$y&4F?dW8e_$+- zjmXmI3?009is<3;mlMLmnl@BaU7u#E#lYUY)glh8iG`VD$A!qn7^J!j3AhSpVgQb$ zH`REOb7rgZta`JM0lh&#>TXVml4bj}ZF=(?`MNp58*7_oy~Itqr<0HCiRxX_-M!^~ zsi4awf>#Z&v(D>`Ez}LpU4`A1n-Ucs_jiV~a4>KRLjZ_l#G$m3H`0Z*484+}1xHTx0!!Ro$F0-arKROriyx*Z%2ZUC zx*YBZ(8=rBoC}ZKGn{b2X(@zy?+ZViyP+#Wn9FXKh3CEA$(5{99O@##5NKg1%y3fD zxf0%%uPlb>zR=Q3z*`3NYTGs?OjUvt$rg$>)$p*?GS%VZU5k*$ip}&*rI5w3Kd+)V zjgGVKTRA;zMReN%ycadN>p|+U!dyl>smq&ub3-xjh3VbbuJ5dz_dipwFF4<1i@v2k zKW-}6w%cx-&9zsZ(PL9GY0(CAUwVjZBG}5VT3M-Fgu_C6w2*0yHua~k(PNYgR^=2< z#b_Xyp5N)|nJMAZN4|XG^;*klIRPVVR5aKCPx32xhP7nE9FVWDSpCrd5bZUa zf*D3-W+Tikm3f4bl?yzh9W~NkO7q7rZSf(^OGsDaC$lf z%7lU^x32bF9|2@8S$U>Yv~;lRJ6$e*dGS2ve0ApAA?QoR_~N)y(Re!8hf|R2di85^ zKW7VwA(WuP{6OVe9dV-G#4R;hOT&RyHihyubXd(pgi9o>5H?H&Pd)L>+f)d7zOrQ? zh~)V7r}XJkzdM*t$5ylkk|S7+#SYE_n5N?jRv8+ad==#i!W2NF8dc&_F2RGE)MurP zx+E`8?4eec`(`-U&)qo@3B_0LCs|9vMA>N9tIfA#f-D{-sE-Jsz2D*GfI z1mFpLrX4}5HOiJAz2YULHd8Xq9`73WClup}R(7k22{{$Wx)%r?TKdNSu7Jyvv%?^l zr;#Ih7SCs%p6%&L!vWWXoC`ppu8G1dS;LEYMGS#)s7{d5(P-@0qYDAL$~}gK!m0<#mPjV2{pbI?&;xk)Id8wUgqSg2$D>x%>0fZSppCrkD80&#nN65YS9C5@$;W?Iy7 zro~z@|GJ~vT8h+Wv%j9T0U1VEm~-SN?=t}RdTMe)PH@4qQbHPaJ^OgYc=7S9bjCO$ zyK+Lh%17j^oRyOD6?s(or#wno5|mJLKD*SkvN6TB90wat2!~P&vEjftc+L!g@gPs0 zMv%%W`xWw>F5~!;zfCAjy)J<9@H`C9pqUL}I9WW!;~yQrA&w`Ujy{+@o$U0Ehrynn z?Q~)s5Cey3??2%A0}clq1BL;Ih(nw)&EVh-N8w(c4S_STYK!3Gpp%l+^1i9P<&1%Go>CwD~Q?;Xi zY%IPMYaO{Szpgj0|4$pKZ*iVVF4?SE^##in8-1!X^`3ESbKV8#6e3bVx@c3kT+0k? z!0nh<`z2>_+s^xzDZ$*HtO+5#ume-JY3|W0-@*;2bl=guY3JC+VR3SN-kANa2^-7! zK`td`HW%jB2R*-+d=LY29}LYKQZ+YT?_F)fxNkeyVn8%ApoKmE@~b{*?yuLhp|Ee` zF169KNDTvi_H%vsV3#XiUU+`dHR0gQqej3IID)L?4PKF65C()JLPQvmLKUFPe+9%* zInf3;SR}2=-_DvA$_(#(&_#nTrT*fBE-4>HPDJOo3&pz}OHRj>2uI z(!Eb7q{z@k9xss+-LM=gB8(yqhGW3f5XPr)9mD0EuNS3rE^;ZmTYI-wB4KomLUaw} z^HX@okdn?8M=T+D9)gJj$(5bZbriIR-~Q zP_ZCx<5<2_R@tp@KDa8@D$e4zy!iT&5qF=zeB;5q>3#m*l!`AEu)cRSM>l(}?n)Ow zR=4h#5mkObf-PV3J^sG@`7+)4$GcbijnaS6e}3FU!*4^t{t~+}9~t7fmNkewj-)l( zLVLeo5hnK^>>HceBhNx^7D(JPO{?=ltp0TXe?j{u#vm@>aXU$adxOnFW$5FdrXys_ z7q_3iXFxCO#w)?7)4jXBA`GG&BhF_gxAQxspYimp@rrSTGT_J#Q-fLepJ0d)!_eVS zIU6yySIs0O6s^>o=WVhm&Wcj;4?3tOOg9KMSr%h7Qhp zx8If=Zr#0FN-VZ_<=igeym4mQIhV_Sg}_kgv}nZM38;bJEClG)ptLqh zch}N_(cw!08Ws9c+tWKYq;;>EuNr%0WpFbLa8IH`g&MiLl%;}0A}lncF)OjhrvJEe z{rBeU)nV>o8(%sNF)*~w{)vXq4tvt|)@+BV`80J8)vQE~^o$v}&=2+<`+4t?^2*$b zx6%qHI<-;Thud1HxM6DE%E`P9mAyHu*-Sfjv-`ZSAWRpI*09SvBchSsZHG%Y5n-&l z_MAp2J+efcHr2LrId*P$_Jiw+CDP$rxa^s^Km0F42)&Ekwe2=*sX+_0b=>rt>PqaG zq`Sqdy3d_=y?azz@TVu7o-tnSeCG8NE+cY=J8%IBACU(zA`Zw291#bE11wY}+G0g> zlpl&4x?(q~ITay@&Fn0LIdTFG7HS_#2#5hGBUnXC2Lpj%aFZF5*K67g5Q_;~bP{d_ z22l*RnjurHO<0_iXd*zPXEQ`+iLT2oqldsj`AQpTF~oss2q7X48ip{K215)SD67{Y zjVOlMq*gm@Y-ko+uEELBg%(bQ?Hbff2I6SSgQcTgGhQx!{*=-sYZP)T%X9zAD!)iV za$Q`}@D%LBJ2Qmq=r0#fqmzh%3UIK1L~M&G-u{^~avQc;jj$nh)_^wmZlirEwAJX2 zHodHFWNQF(Q`2J0)EEBkIlWw5h~-K>9uPx?nRuCRa|+^aJv?JH}aKfZ}~tQ+d{4Hf)t=v%#Y z$?%HyuD4*zKFj+o=`m&S#_ai_ulllS;2R9(Z>N#Hbz%2K_Ghi|tFO-;zoP0ce2*V~ z>y>(}QuW)Zy!@8S9lw*>@+-gPTkqH(_1SrY=U(4`5lIhQr|-$f+Z7Za8~eC)!QA(T zbMuAwqYHUstNIqb@~a4ZWAXjr$Rb$u?R~SzQe)Q2JhTBiyeS2Zm{BCxKHaM>VJL|{ zb;M~M45W_V;Zu&e*5c!|+Y%h4VW6ZO5Q7n+$C z0`!6-+()V|MQ85i;H>4>hON+^%Gj^(il{o{DY{KHEe!tbxHni8X4LuOdvoz*{9j=! zD0k0E%BcCOSpd2~MZXZ^fy1%3%WvJv>-mM2KIrAksQF9h*J%5Cl9O({c?bz5*sAvN zvvy$gfJ%1C0K1tzS86L}iy;9s_fo^r(#OV11>IQ-+_b*ks5Dc(x;<}-cB2@y{f4DV zF*RVT6)4MrBNy%5W&8`>7>q}z7QB~!+%?#**J&#UvF7HaSx4sQ&hkj!s;T$Jp;ZC# z@rC6?zTu{>R5h+;F=%0(=FI~e+pM5P^zLZT-Gw36Sj>eFT3F@QmDBEha_*+QE}ylh zg$;9pCkcn>!w331oj>vX!t;e=YDUmA7@!dhumF#+3qpiNgaI}n4j3=6fEZy1#DFls z!fcDqMhmh~ZO$b&kf;@;7?3k_P#xJri#jZ9YM%)nfZS<-mj;M}FLRiQkegVT9L;uZ z?SIkPqKgRXkTD0t=oXAY7^%n{%m&YqWAt#aFepZk1BZb_uoyU)A`!{RQX4^#O2Ip; z7L04mtRp~f444b~=)~w)gYsxV2soHdLr70{PI~#2#*62(dvf!gJkc4f)aKBmW6b{1 za0+~Pus=BkcYV70`Qmw0q(HjOjHca%$NC2ctgWE9^!6{t#_8HEm4K4gD3+{P!EIiJ zO(j2)gs!80^C>6QXxI>VI@b0<09kTzVm-NvmwhpfDnF#QO@qz zGZ}teY}=<%ch4c+lhLKS>+Q!3v-(0YLffJV_di(=ewuXuB);j7-_;FY|G*u5m-NO% z^jXJQi>JTt?t^guDB4TdL+OyLLAP z5dfm_3$vfaqlL&>-O!?cZ6y}ZHZ!gJthHGqPOmBD`RTZ<6TsGvgyzxYEd8)w!~rx! z1BDzlru^ND|K`PBzB3+>19O5L(P0i|$g6X%{9iP}kjvVt=-CEX^M-JqfA*5Vyv9}4 z%lZW=rxmU$Mq`_o9(vm8Y@M4y(v$49qEz-vh7tnfqIU~uZ*q1g<8%fvRLwVcfqvHX zVs1d26S#SDPzF|$a#)H%(E3vA*Gs-^+RI(I-(<#A$5`-AChpagNl2L5%heg%#Kq;e z&8X+ZQJD^r7M-@M$$QnWt-ZizIx}s)x7al6ETq&d?XEm(yecP*qtXb^NJ%*w3|61^~}W7ay-kBUBm6)v)iWdVw0hn+#w8#1Lpvo&je(&<2JWEtVaW93+RM#*2^V zY=Tn8hIN+o3E=o2lESjFaET>#`mV{x-om#+aC<* zpdZ)>SBs5Vw&3qmT(r;#sm>X@HLdooB&*Jh^%HW8X?z1f%m6lksz9(;sCvM9y=*@FK-Z?y1ZPL zOu4zY3<2yq*V!UD2~KUndT2G$1a2(2()~Ec+aIFMmQBTJdt+`PH;bxCjP8|acCKq_ zeTnayo%u>9+5SbetEbrVz1}$OD|G0TK^s=K$2H4&XY;005xaXp%Orutl&_5t+Pw0P zt#WchtAXAZWB@LtKgyQ&iM2lUM>LP8A`3`Ae8PEScFAbKx!b4 z9AH<}=N zphCjHXhe%P$xv3qsi9&YGFs*$7^WFZvuubMYE~WtFhm{$pAW+|z!A3eQfAD!;o zOKn^6aN%Rpr!gNRpCjKtg`YpiYtpAnK3`p zD~`iT6^|ldUgJP2Ko2D-TP}S2l3uRvsx|r;b&RwYY?vLSw#^*t4Mw3^7l=kgB#x=y%8V%TlvF>gu{C~^6*Z6K2=2D(`$e1LfKD$ ze){v%<@eKZ`8_&nOEm14JWd|biXTZJ8kOpoOFHB^{kwbMtN2~ zD~$l<34X07d!jLxZ!Kmdl6Ei)Rb7+|qD5Kgbvp04u5VL&)yI4~Sw^qf6i1P{aD z@az}li}Ka;)s^JqULUs3&!3fO;4pCtjzpAdGp)9 zM^k*pyC+_fUOw671(ypbC?O{VLrxe2LPU&6BSJtZXpZ)qu~df+umBqn0_ior4+KEtR^ak zq)ZWrMv_6E9KrlbMhk=I3sbakurOF0>@qM$8wNWVV$eYq<`D=JBji8|wX4s)=$;5d zrf7(2p6I@+T3gd<`&uB6hNl?QQRfsteM;lm^Tm~NZRxmykeZNd=cG&0Z?1kaesc_e z_On5bkC*)IC11xXBfH`Cph7J!L-uZtW=U4paAB<#%u#P^b)gHnv<#N=h~t{@>FlYt zsgTg=i6L-$SU0$Kg}xgFO}rj(9%<^{svH3w)HT2K?9TSTENt2#?s8jajVmmQx( zgYuqMs(WLMx~ki)Gq#=jKP1UMAa?hz9P%}3w|o5a@j>{rSJiJKW4yA~)dGH{2kqC} zZQ*`I?&m=U?(j3#v2yp$%+3>Dw@a`O9_I%m_;gz-*W1q6=X-2#f6y&I^=mW$K5B>6 z+eC;@ozpW^PgwIJRbIuHmYa?W%9t zHqt29LUCSXuX#u9sFTjR+%0W$3)6HpDT_r!cML>0aQLA2M`ZWWnS%`n21tpaE>cQ@ z981jm5HLiA&@|0Z?9VFP+cMoQhF=2+jb6l)27$FM;%rKyTZ#Z(4=}A9#f~{p^#7uG zPZa6iXroS1wYE6!fEWxd$O}G41y-lCkoyLI!hl#lg!GmBc;nGtSga}(rMRt&UXKhU zAgBt9lQ*X<&U*85>{H9ysySDkwPxd>YmJ^nZQD?)t+R_w^UlfljrPeCMWm-%d#4XI z@qNappsbp~&~BF^F_$$}&dN?DDeICjjzWeDo-|%``Q+)0oRJ-H<*SbuWl;`DdGwSh zFLVSV!?Q%eTSK>3RSl&8WFQMdgyCSvcNULQap=c}3`g}!+rd4^ujA!Ae@XRbbjdRy zvuGe0htoG9o)iv@CwqSP{&3>y*@mMXjyN4S3_Kh#40bs2aN=-4C_?jqVL&j%fLMYP zIhn#133$D}yc&&G*?sC|#0SRTl`H?2)OP35!ljv)e8cmK>}>D-CN2M38auLg#!zlj zU{^KG$xW<95avRCUV4oe8gXw%MkTkTB&qrb8SHez>4*?2eZXwFFSi6}?t~C>X|Y`h z(7hDSMTg1`exTSNZH7~$E5dnKaI%f^+FPEn&bZC=r0nzBu=h0gfMoVDdRW?5D-vCL zC3*mJ!VlSRo1&51v2ZeCEpw&u4hTm=OdeV1x$H;1S~$@eDg)46=d65ItV1SGpLY zEtZr*mN{Z7x^o#>8qhru*%4BOcoaf(FocW{kXXslv>IWonomeM0S0<)Ju7lOAvjBf zw6z(Gfr1IC94M;?$|X|f2u5=n8BJF*8l&YaZLl#~7%U7n47^4g2D=8tfWa6mYnlL} zl&yA&b^HgIL#9N=ra=eJb@~X%5Q{1bL?A~V1K%BnOUBD3pI>tNly!AT_b={pbyh=k zO20hg{UQAPWPkD@UbBAnDSf=?I=Z2D?|JW!SC_QBtZ2-&51X(q3mMj%+G&ymGgbgl zeVou6smvYcOFCy4OxYk=&|#Rn!U~R=gw%3YiLP2IyAfiSXOl|dTh#Wx2~?j2shXXO z;-3Z2@;V8WB+pWrt)8Cjc<}Sf&YVH7%3Rti(p=3dqyy{lp4bKGqu8 z`t#GDhm^xVv_C7B!%w%;Z|AbQ;eX;=zl*QP=X_Oneq}wTg}rZA+Fq>9HZOPw`=jCb z?l3GitcNmd^9Wr2T@lJ|9PRmU-ibI9CNm%s!;#NNxRf$n zemKymoNJ$GG(boWo8%b5GfHX~SaApDfLBhjqg!nHV)`Lp%Tm+!tCNX)#jQVvEAq0p zcZCiT!VTlEl98J+*_KF4EM1ef!JOu{6TS2^35eUUuh2d}cX9CQ0#u5wotNw1xcpvn zc5+NvIO@cvJ|T;XB%F0|M$4nR?V1*6^YXlf*8JM6&9gJ!+MDM(D|saey5x?WkdxqW z$Cx}_kwHV~!|5X>0DaInL>;rVCr@GQuV@4|I)+FkGO%Jgqdd>-0t4OWxrku(KTpISL0>G<-8n*x+-YnVO z8!>OZ>;53yOFq5&yfs{}2pff`Q4Zb0irHjIU+&%=BJu9Na5+LQZC�<5;Q=QU+k9 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

-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%0A*$tqi4zo*(DFX+F)J)|^Ee>1wNvKXOhx*33hgW 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

vgq=HN+pvY~i?t=K;=oXF%@E3N5k!QE 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 xBvdD|HuFD@gM)I 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≪v{zO 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�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

y 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

01`X=|q;3&2qxC?l~jVscL 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∓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 l&7Ki#9p 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

7SrP_DtXTEz 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�O6(hwhKa8n0JpJNmjD3uvg02~e zAz@Jl31C&*E5vQAt05?#e-!zKAO6M1?|<{{ryo!K`12=z`J4_*u=HUJ{`1`lzu3^X z5QnM&azZ{&x8q+~>S3pr)!1H|1RmPE$IB28X>MjJQDarz#8?OlQkUwbOQ3*26)KT{ zZ0ihOn|mchSMGmIo-Z7#Ztd(aIKVbV*TJf$acERAu5sR0?(V}FFE~ud!gw4eH-{iv zSvprhC$B+Ash%EMw^F%|(hlP#CX#HycQzWB9=o{4xlk=#{5c3A$4?%B4mkQneYR{V z6bM@#?=}ZH&{7gu<})dpbUbJpJ(2iI5a{{N;1Y>UZEnIFV}jzpM;412aMc%Up$4on zT7f}t71K~1pJjE{Wz-D}?fnc8FGOj85ey$fI$4ml4;l|c&m6?KAE(KTLVYN{>&0`n(Lx@yOJi({3`0j#02oEc ziA}FpO%rQ{)Wbr(W~ix{wz!;T#4>fC#{(*E8E9bX{0tdr3yv?J5IatsTO>g8T(bo* z@oShZJr~k;B{}-Dk9s*vp(Qwb=^xP*hn63Xwe3BtOx~>J$VXr;3~g_zDDRX(6<#CA z5-nZ}h6SE`wA~i8vGKuP6-0_ywahb5^UeB{furiJp{Jj8=6gWWXh%hd8S&j7`GEXa zM4y>xK{BM+fZ|!?MS|C2UX7(Ex2cP6*yS%0p+`^*PoUBU!pm?lw;(v5?6Wo-I2vW@ zJbal)`DUoK!n-?Q9cg84N!#R^9@CHos z=<*m;iE3v~m}?0gCR?m5n*j66*k4d(MOBlCN-S7WfxPQ|`H~dRIwj$VjkdH;6B2Yq zWkrP)ThzitHBq$*9+5`@BFlD9h}MF53)xEm(Y8LZ(uC8coM0eapHCBBddm&ju5Ru% zC!1oS_!l=v>|BI4gb%FHlx`+;kIyR5RWBAFrn;4O$qzJl7FNNkj#hOdR^rXV0VHYu z%Cfd%T7wfl3SX#sKg`RSpXZY(F_R3 z+0enf4SMQr)-_Y^X55E;3er2~JH85+~PVr=m zT&-r9#lL8YX!a4QdTj=bv*59^+F43D>%w>Pkre!>CI%h9GRp)b1Gs`w67#sWQ-t>L zw7+*0=1yqFlLpiZFf_A(3DLr}5vns*hgO-$+$daBWVXW7_^igr$=_&zp3RGvDHcCZ zc~D?B8Ich&$%w}|y*QBAf zaFiwPZ+5B$JzIf}3&AFR1&C|nB1kij4_}Jnxz58&rTN;~p`#Z_HcR-1iliMeFcl{ z7X=%&gw-l`@Nlzj7Lhb6kQFZyuweP?4!(TDv6%)1d516Xue^bD6er+?Z4pvT5ZTi& zGETPo8`5X384wRY33hFQJKT?l9g1&oS_j1$KAdGi)FC&f$bCIcc}w+){f4)&_z z>_28{cN-74=ww@M{)*jpjcRG2Cm=s=KC;!9(0&9qWeL38-tjPFljI1HT%PtdBzt6b zTgr`bU_}c@GZPfgEx$nhfv!_0hz@l`SIAEH8A#?uTOF-OnH}`k?V{iIMRW~qRZNv( z;yQ*52=5jAAl@Du`g3_kWZW4&ef|-(@5+bl!wK}Kc_?;r8_7HdB#-70FXOko>I;pF zLDX2A+j!$>E`ToksLK*P{|0&ELc86;Gva9+ga%8CMk-;Zf?9E9^b%OE&ORFR9yP5P z>Pb8kz@5K)5_0~TfB*0G+dn$~`X7J%)$j13Jn^SbeExD1q~=}3{ZsF|Jr=fm)3l*C zVn63gf;@1mCVKPBQVls*V^5HwAokED$7t$rEvc_4FOOgoOm*b}& ze~YF+%fNrJ*1;g+8AzWS|4+jCfEY=NAZPSnaZq3nyWBwuER_{jMmX2!=?{ zO@DQA3MF7gja45vB5Wv)FVi&AozqCydedi$o^BmX0?RvE6N3d2i3aVBEEP_Sm738d zBVM$=gz&-2Bu~@()KN^y=K_n%I``D_xXy@iuyZPPoI=$lfI(c0=^K4E6Ptc!Uw`Xn zi`fl)xn(@>>iAjEaERn>?FiGWaWt%~z*HTs;oUdw%IB@P5Xmy6l}svg)YBFz5p^Ws zRXEUKE}JWPew{K%G`II8HoXC$H~-o0T_f%%O}zD#Y-p)l5~zP@Uy8iu%gCOq^&{nOmgW-meX0-z0C;GU4ZnZe?rZNspE9d!@BO!S=(b@J0Q8Wj*2!d~#1> zvunvtcY@Mr2yiQHEEQ8#dn{fm0H{OR&_mT|jg-GoGWja;8CyiStCWe44$3lGKr( zUrOFEF6mE`pN@;`SIu}8dg?EoBPN9z(h?@168XbPvX(i-0d%TSc(6w10jDsV=9hq8LY>C(TJ zlYjbK{^{>T|B3$ox8HvKD}4LaN%^Dzyt>$K!PS}0Ty9Qx^mJ=s=)G;;P^^vTO%{!5 zHFjWi`nvMZT@oBZB{FwSqojnT1btol7@+etE(aW4_vSJqL};*HrgJk?D-zEL0nn-y zk0(`=gO`?f78(ZR&^y7N8`1Pjj9q1nJ_HV05x2qvQ^7h67>={G`R6pr#XJ}<8RRjYM3cc^d;Lj0`pBJ&7mcD z!5oS8ZSxK6x3(LM79e!ikBDIw*sx3I5lGXOJ=L-S^g%NY(>}`ynZfBKqiwE##-Jtp z6GjeY2Eh?cB~kb z9D8>f`m1D~#ok57_I2L(z@nd*3&mnU^Gk{j5;oon-O#lusI9dbIMnijO$FD@9s_Md zA(PH*exJS(U~=Wt@+z5HS)!cCZ85kIxW0^vYMvO{XELaCaYf)x$(v&mIle1jO`Vq<=oh(#vn>z zL1Qc26jN*V*tb03baAw_!Fo{93OaH!Y?1iHs9~q5xB-vj<-6hqOm1YPkiZq|{^DIXY65yAD z6_0+HNP_k6|KU?Bbg7BK206-0fX!H;X^ZYkN}GM2&((!`p`ikx_x&`|%tL(|3N$jf zTd=;OsI)oG2op;+hNqF_Q*$c&Y^RHj%LjbKvtAY*A0KC9s)ju%k2a`gLKtO_NlkJz z>F5Qf``ZH09=Jz~7dNM^NCEc*5zM>~E9&Sm%3R=8JR?D)IT1@0&voucSz*o8Y1GA) zV!DnHT+499x5~j2>X*A07ThV`#ZIb1Df-jo(Gx;mR1<09H^FMUf86S^MO4cO`I*?h zt8UHHu&=9kDiwnal)FY~y zY1-E-?O8W<$zu828_=6ja`Ny0aQyhszWsyW%FjQEfG5vSo+aEf)9f3f#n8RHKma)) z(5q1zBrX8wb6_`j3UE?FQ$7R=3OMPpl;eUGjCr6y&g&LbAUJG`1BXx#T?;To4#>C3 zIEFEZx{xDv=$O^YfGIxBU(^Y*XY-|MdFTlHE=}k8N!6hfZ3xTv-=AK5JS`CQ($Ar0 zZ^W~2ghzE1CXtL%mWCwna)n(!2aHHGeQAe2?e}=Xv~wJo64cZ}W}Q;|kWxgB-~8~~ zlFiZAzM@1V-fgCvFO(+C-CU)Vghp>Bn-6Kf=%%$A!XXFCo_2nKDCyFgc6)UY6)Kto zg1$ETu>Og05_MXWSVcJ2BMcp2+*!q<7ci2V4vg5sKiC2+>;hLgf9h&@01|y53y*_J z<3{En^)h2TM}bi)OJBF7Nfz_An!<&l~6nY_H_=1ayL-Y<$!25%H2*IERwgB zhopB@lt;ATxkzI%Z$DxLJz5+362(L9;hKf0iam29Jene7NSBe~8Qfe2q8403Wbbce zThSuUwo7z%Y{9uE_7&wjZcDov`s%B9lSd4^OE)S@TjPtNlNW*&?Q2dKTP z{IQqxeSFLb#8^?$H_t0i2*P)O&fg)^Q4$puuMmVMU-7pXNB5RlA-rtP4!oGX(jeDT zt+;M+iBYc9EmvA|mC?WHEb)}JEYWad-3j7Fd+pCl%N?x%T%aCmEpgsz26DTHZ&-)u z>x=A(AmRR}k+n!HzOvEfw|Mcx_GLR~fo>?IN1QKTulY%p8d1&9IDrH8M=*j-mQPcW zv`Qtg1cbF%_y&x`Ai{N)e7{New5p5OF$|McVczdb$< zf&TI-pJ(kAbYotICb@F-XZ74x>`q4Ic zYkH*ad@!K8hS0t98Izg-jjE!KC{NSC(9*%sbX6Z~y_k9fks5dt7XY`UJqJ(Kr??2p zOu$lSmn1E34>>c=w5={-1~anQ;s~F8SFHUu4UguPI?i3Pw*;>kl#I=O&7OTAtM|_1 zfwXM&+_63P2+ja|BDQo0KK%%c5(X^amT6hiXt7v%nem@o4C{pmUr6h+>=l`C^gwmZ zHgbRd98vc?P`Q;-efe?qWzwtl7*p*0#P`TjrlwY z$ARB_y%;gd%o%$dz)S!^TAK#zFOaOr=^L?#zKC>Xi{s4XaO)}bz^g(<3V2B{Vb6_~ z^o(uQw8JHvtI}x0iJ;B~-=NR_LY4>dOzRtPr0d{AT{Sb#9%H-4ivF|Qq?Ijlp7KTu zOPV@IK=C>fjrL>nMiBO8v0S!RV|$V;8yb`(C5O3w6W5q%(ps`eeWfw*SOrbCm`-WB zyU+ZeY(LnI}BNCs1t7DhP0X-`V}EsNx~y9%NvrI zxo<>N9t$w6@WfK4w(Jj(9%0;U1$gmW;gm!pAi%B9=hG#M)#19G;F^#Mm#wnYF_POe zoENC-zD17<@-8hEIW!9qayxDBAo%Y&8*d5$AlWPBEUJA}YtmqLf%E{b3R+l6U8QHjt8Fur+VR6fV+>oxCy<(8C zW^nb1H74_u7&ib~K&8JA$Gl!T!W@Y6Ar3XR;>c>T?@0k3tmo@lJ`AtWR%$N*dUf$* z;e+RO16D!)^bL+yk!eC_12g@=t#>g?7O(=?;`u~|E^Q=G68UM^blw^riA=RT54`m4 za_mY%l=nvtQN_(Ry$;#y$3G7f!e;NlOHxLsM!JoIX(6(GgDM;Dl7*<4oam%RjwGYi zG;$oaZf*N_L_@go) z)BT%*Op(5or0ns#L5(($uxSr*IyCI2=QG{K9jL?ZCySeIc2dKz_fC>`U_nNw)uDal zNo|({;Y#cVitQQ+O|^B3V1O&S=T(D+bz=3MQx3L(eIf|jCIGkpz{z@KFxkbjiZ=X; zT5nO(-Pgv->ExVj8~u*fxKz<39vdb_6&rOtjxskmEpUt$hmu~qxpD#+`nGt+WgY`@ zIQ995Ly^9f;7!U6v@ms{GC>!1XO2(w1H|sSwma3zMbUdFx@wcj)W*GL<;%n8&U@L*rX~9vP`gRHPv0`8-Y7}EX)aYd~q(S965^?uB z*l*_V!3(^m{_VAHnCDqD8N?+}yNqD4HBS!2+hvvHs@ z+4$t59G*TfM&pD1Sm?^1Jf3E3Mx_;^O@4=_(H=g`==8g^x7;j)7WR?J<7T)IY+i1; zk2UOv??D!E!tyi=n6FuMA82VYfdtJJEFn+qV6bMMe}H!4EX!G$aT!;#c+MIY0&>xQ z>N>I!M%SAH7Vz*W)^u8!X)csM|0nswztfL@e*D#Mj-P)zp(o{}@GN}TZVB0OIo{G3 zH*;`!ugP%EJtM5A4JpxBG@l3{qO0&&|6LWlH+PN;e~{$Xf9-`wi)pJLd} zdQsAhaJEgX4l!js@8joGF9!2^f^~Un*WFESdRp+XvpSUfiOC2qlllCc{N-OToN2FV@+&#b3COz z5oe3A2_6s2B8Mz(?gmm~|BaMG)OyEvaBzeFs18dQV%J)^TBzFJ@-Iwf*mK~ac3VNu zM0x0iDYZG=)`kd7n_=*QiWN90n+gjpwV)CpNrgFt&_-i)>;|-N5wfvNK@L!i11lGy z{!E=aR%6&HHdHn9QEke!Xj&UL^!X$jkpW*Ts#cai!2D-;65@^}uv%P8s|2)|bT+T@ zIX3g0XMx47LvZZo#B7?uEQxtS+x=WLCJkb59ZR zTX2=|INlH(eIP$)^%OE|_o51An7>FP8P96*?`12|)KP6LC@Jgh9i`czu z%-?hHWsA>tJ+m7>pR@X;Rp8msFeevSQAlCr%BXg)qlgd+VUU-V8()^=W8}t$2!=*a zImysR%z}IOQM3cjt#(BDZSun5bGH!2mmEnjJrKb8LRYukF_0nhKA1=E2lWztmY1@* zPkZmnOW;ZU;|cqmkjV?QHvuW$;wi-<_?R6W9R`3UnNYozJe&b`Dx*nH^tG;$t*kH%O$QN4-Q146O%P!pSEG|#-a}4_ni|Mq zRh=+i8XH2&nJ{QnrUE{?hVqm@|3~PrkDveN`d7a_zWqvoUrwC2WgP96b?snEyB&(^ zjY?nMggOh2B?NVaX^j=)H(DP=$N(>y1*NmR$I1j`Ak{llu_VL;JMM*f zcW5L&uzi(1obilAbdia?_9TDgmy{#VEn$3r08%Q{zz0<5lAT@#H==9 zIpI5$`LWw3NES$s)R%{aNTI7+hofw1ypUJ+dMwLYQbo=sY}fB~Vteuo<=HhvPJDR; zt3icBEuf5OdawQ`3RhYVUWFUDbCEs$K3~$D%byo5!gL@t_Orz?pRu=_9ELD7Xrv+LYXu-hCa#L(4uMFbKyPuhB+Xd6g2U_X=E4EVJr~&xSBjT z;Lh363s)L3=@=$oK|NvC8kH4CeCjP2pcv0z{&@cBZ{_^?`01}de)EI;@WV-*=hZwc zK}}?eSJ?AW2PtdPpLLR3FB0x~NBL?J|K&kqE}&DOd61}Jl$5Pg=y{E%;)2g~IQt!% zcqiWOj|e>kP`kI#iM&IK?#xwurJQgchSPD8M$SUIEq$tj=wOZyAlOlh)G_NdNpq_C zcRu69uVLg$@29i!jC8r-5(lG0k+Vj!St8AJD==n@c6 z(@Z2@SBDJzM;KHEg(?y1YA-x@(*;s)mvlCI{v2|$&*d3Yc&LgTK;~pwbq+KEs2kAG zx@8A^;GPq$+efrWiqABzl?|NX*cem!=d6=AbZMRyFAEbVtM#p26h&_ucfb|J_Z{0; zd5%ql##7bEnHwRw3x+@()N46$?eKHBZpXaqdxkQ`jnl5rn0%cE(21HJt12^8*ucrM z8Ato|3XDnMsu$9w?zh#z?c-}T!kDpUUvHx<*M=Zru@>sSS32iCIH*)^4jv(l0P zBKqko-Z+be8M(T3`iC8XPZ2MwzHHxV&*?Vcc1G@~_j3yl>K-_dv|SdIG zz0{f6AZ2lEQ7={Lg@9PTDG%CisFBk7f=G)k=C`0pY6D&>{Smg#b?B8?vQ8=0mp#gm zI8!v1bl~>s@~{^Q?|anv1>t(PhitdvH{FmMe1{DI1y#3u(GXqX*MNhSYZN=TLv9LF zS@I60P0hnNxBNuBHAsN8M}xep&4_7oH%UiPzI~)gx;hPuqSwZU5Rf3748wDwYY7`M z2B0|t!4j-o{7TY7&sOL;n;F7!6YR7>J(7r0lIYMwuWwjRlPuHmri;RE9q4DpCLCJ5 zhvFiHP&E%_5^}rAASywzd4z_dab#Q0?p>!D{|!De$+&M zSsWE9>vcutQW07B zl<`OuiJ&kIDf`Bb8EHdmJ1osHHgV)7=4l|()6Q_NVYy!rm+Fxk$Uev>=$z`1!wOr& zDPK!)R!5THK%2GI;oZJ)w~ywfZGuK=NFC!s#^}nsz0V+nl1v4y7MnOHG)Z9+Et8>a zqqgMhCK1EbUmw_u^Fh8a=qaooDUy>Q35UaW(L`vzKn-}cArVFeMMiBO21!J32qQsu z10}WF>hm}a+#&-p{)`sSomDdyd=6fHA=(7_NIzI20;%yL z^x&&&c1tEmB641#X(ihyQPeL`iD7^bQept^GA{-JN^3d0RGaNjC~|@-5H7PpUUkw% zeS|T5V2Tkwc97D6LT&Nn4t(Y9BVJ z0=!iB$pj%ez!+lt0kW6(1}z(Zc_y$D3Ehdd;0b`voGEKKY`JL{Eq9$5vHIm<|%=MJf%{7g|S z?j+ToC(w+>qPo^bM?1UdQ9m}tm2w!J@s5{`6UpVTR;2Ktr_XQUgqV!Rmt{aC$Zpi>;~X*D;gVD3D+)3%;GAXL?_`tR-8qwf#Ycbd!&F z6)M~ag-;ZwiyOq?Q9Zvb$dv`}pu&tE`#@DTDr=%_;$CS87I;!IDm@HYMX=KEY*#8)1Vpf(d~P-GgU$f4>5);`7YXU7NugSgb>&M2h*@38TL#@YA5J-asJKHz{h||)H#4*5Jy>RSv2CJ}2L<&naf=-6o;7KlHc3sq61Pvc7_yxK!Wr1PFCEXR9 zJ}Yl3u1s4(+vI^rGO*{D{n(sf97wc8Wk{3Cd9S~_+@<5`1|fR>uj*3LkYQIiFQ5~g zfs@E!)h5U)-E~Tm97452-$Sb{RE?f(F}$94f7}k6#y8d9%uoxu*xqvdWK0M*@gJK= z5wGJURQ7J=F_V$r`Y=Y#D;bXuYg>t}uOBSJTDMu>O#qTOCaZ9SxY1FfbE{8Fz$lyy zT{4Pbq48ahPnWcZog{^}kkpqAsfh|Gu<(o}9D4|@DE2y2%w(o*;;_GwP;a~ZPnis4812(}%21<5pID77D`f%G zXgSB6R`4!7@)i1UNxCz12zvf*U+{->n1qRJtOCrfE#e5LmfI5j=vgSJP8&HUhq2&_ z6L`yE3t}crdFUkXe#Tth?a9-wH$%@7niB!()ixiKH+0TPi65a)DNP&%zY(EQ_(G-g zF4>Hz0*ievhYnd_b>xNbXN6Jj(Pyb>^@0s`_f}>jtDV|Tk{7Q`snc;;c_9-lfDpO020bdm^#R*oZ`3pZpX#1*gx> zNH5kXPDMnlfAYxeW^01~7>=rDMzi?zLa`CiC!Qbr)Bo)FtDogpKTuRo%1NH<1R_OF z4#{=U=RMb*=v2^$+?IxfO)W7zp@wdUC~iuzC23)44hSsz>{t5;>Yyo_C7pnV`a0P$ za(OkVozNvgGZRPRCWipqMons#5^D;owUq@y5*!7PH_Q zUr0GP*mE|s@EQ6sq^nQ*wSy`=07P$<4=W6Hjrn=gH8^^{?+H4Y+QIqleobZ?e{3wj zyG{J7Oaat^{XRY>H#@0W^otdF%`vNebI+G^bB}(+St>=$zAe_aQI`P14Fj4Fk1C7p z+aL4XNMc(0-a>F71mjtE0rk$ol3XebTK}OZ~k4>L{$ z*fDR1kE)|QlSXA;@2eTD=ds<+eylmU$Z^r2!D;A0C zr5SRaG?2lh<|qb;=M5(;zK%1(!)QRCMTAr-dPb~GE637seAv07nYcgnwfaiXmTUyBJ85v86tJHpE6C|)YVXB7rslt=(1IrM($~l9$(;#(~Vy^)QTUn zxmK1{Ik!#avMnAXagi*AoMUa=h9pg-9w_kkPoa4>Kw#R88%&>yJkP9A1;1y+yGen6U(bt419jV|E~>_!P%>q@8_VTSF}aB|BVW0h_dnpd-3 zlr`CEo2k7LR(>BW zD6#mU@=3%e!Mk=kRlD=9J>um*@Cwe4vaPJ3=VE`5#B4ySgEkq~S?wz1^KKA`u`oLl zJV;$eIJ+r?7}&j6D$g#_kH3O`|3~s?E_d29{mM?wIYn_SG4#HAy1B#saKT44$ix@F zy{I97%miC=@11{rrw{CzPF@=|l~YTf_8ff*tE?mR9^`!)NxnH2^Gnn({_e}z)n4cv zu#xL7mxs*?eJ6?}1IcAaF+w#)LPJhjc9Gblt%xp)0H=&G_IvmcFFqqxx?VD8RZX~0 zZCV}68~9=B>J!t9Zg1oYISzBl!z~SNYOxSG|I`2DPyh0NkDvb0uYUaT_~$=-`}lT# zD1{`)aWGIEqdp9B!U3m1J_MhlBIj5tdMk3^JmpmRl#9$uK$Nhu4|*9FU4YS2$Xr^~ zYBq#hV48BCA}aX2U)+a^9HJsPMYW1-J=^J|oH~^&hS=>u;!e4NZw^mSLEoe`uvg)d z!mz;3b-31jt%%@wookb zR^?62E~!!&)N)4#zXtX!%3_v__<_E{X7|m#tY;mv7uBQlv8G3t)iyk6JZ#D)v?2iR z+Q@Qpw?HUgZ^voG+N)o5(pY2FOzjTdjs6R@25>KVEZt-H44O;%b3vuCb;{Z8_F1eN3po#L4aPzh3=!E}` zX2H@@xgoM4nXnX)#fwv4UtrDp?)_&d?`Mkr*q;lVY@#mVh?ioJ6!WRXbG^&~X3{&s zl)wczg<%;mtz|o&Q^DjEi&ldXW3=1R`r(A0#n7P%TLy?&0o)eKauH!2%{&)XNN2qS z(bp$ta`Xu!6Vx@3bb4~nP*CC&7>REZ5|z0-*;!PyK?cOp;&&m=VXR$biUhN&cxNkw z^VE!(kJDK@6+YI?1>45)l$!QQxno5C4L<{X~TgkAM@-7 z4cqs%hj>r{jvMO*_Nl@?J30p~j@x5Bza4r`1^v{Td8t;^RE0bITuHAgJUkx!w(Txd zhABncf%J*To1ceowm7LR8fBa)6aegLq^MV@;(4B!nsc2|GbK?$xYIV(cCe;204Vw* zS-I_;+-*(FU|%xqLe|^PnTEw~SRAI3*jvIHt6h_p4NTBO7+pL3NDz10H7})mS!u|W z+dJ9dzl?opd_v0DjFL$0(71s926RAQwv-8Ve`XDEAXMG@F9w>{QbTHfi%4D}tr+F=oU=jwCYE3n_S z@|)5gi+D4({4U`5%?^*uNP8X8ZH^nH6;ev*oQ##HO-UvYWzG}|PC^xZFJs35u-YA` ztQl20eoy=XLyOriQTTe{*!gJ{71(gtN4bULLI|m-?T=N%J)C>yNn2u}7UrtU%SydE zT&Tg=X+V+l{ImYyfBNNr{6EU?|JlcHe%8PF>yM9LoxHU%gybhLq08--8EDZ)=V z51ywS7b^8BI0VOyFP*3Ts{0!>n8T~122(~Si^W(W6gkXnQ(qx-lq_Q;Wg`~e+N8Bg zL?~V#V@_OXzKZa?H7)O??;O*Pqnm_-_^2yDRGP&8l~de)eRYr{c`%%6_Qv{o|@BUo3!B zS)%#~JWoQxGRxuvvxI{niR;8zT?z;Hf*i*I(ef*c7teG>U0*G<5Q3aq4W=d6b^1qf z1#{X#UloU)P%kUmphzpykhO8O2w~SXSwq4CNM)y&0W5lb`A#wk~yPQMEV0 zG;?rwz9EPHr52<%6c_{<;v{s7%G@skVdM1CzRPk#7_+(L;*2PgV_1W6sM$-u)cDoK z7}JhsY+jV)9LT~X+4*<`6DK<|igfIn=EQR1m3%Jv>H_)*iEOjbHyCIM8;RGu(28{L zxN@kVGy}jX3L%2h>)c*F3zdke1dCxn3krBEEMZNnHCBn}=Rdq;LDnS{SAEIi(Oo-5 ztDuUgtD8M+S+#2JYmiYL*w@k?kxi+-Vds0+FFn~-$O<^4)G^6#M25q zEx;fa_VkZcUOee(Y|v*s^&vgLi>MT?QlM^?F``*$Fzk8MNkE;-O&&>TT%{KPebmT8 z15$_cZZlj=hcf!P!`DPk1d4hOc5g(J&qjxY^W1+&Ppz;2!HO&}~# zBJBd&MQ;0u5nGb)9w+JaLy#l^t?0ue2(uTR!1pS0pgLYd{T?Wk;^yCK6|qQGc!$da zgOIL>=n$O{ui_na+kkqX%<+=Jn2?7o@J_CPb7mz*XrVahVJ+z}5Za{or4vQLa=g&! z^9IQBv{z&FT|S&~>BPhe)TNIi=P&Z7|G+=|XVL!_KYr7neuRE3x32*>IcIfX@P@B_ z150F#xKIh@av3CtT*icWQ~>A<>HvV?5X<%ML^9-(=a_R&1EV3WLn`~anZq~7=&*Kl z7JpWkPcfyXV6-feXvNoSIQ)##32rnr=to#(?(Nqqd1aqTZ zW2^qtyyU#m=heDS6Rgr?XGtm=baaii!D_T&v|1&Gf63DA>9~dkuIFB+1~h_Yq6drd z&gm#q$+WKt<1rd;^4_`}x1`4`3Uot{ zm%=i-0M7Hz(M^)na%u!dAy9Cxd2eG!Q;l;iHdb?!T!8k;WyF^QuQSD|lGsBmT4)(! zv_J=7JZ55SbIL8b6x>IQSoAgPkf;q*)9%bj-&xS}T1z(@ku(czAimba)^r`kA}x*d z_7sygk}reLejyLzK7|pEkjlU^NXy0)>l{QGa6K{?cMryZ7kOAhx+$$=w&R3Dq=Z?0MA+YR%*yRtbBgJjqs0f zVR=YdnUhkbF)-^p@yCEQOQKY(ITNbCDhwZF>wK6GWi)P(tR@gzUQd$3LM$js$C2L> zpj=K;>S$vTA%n8B$kHz=E{%9rovh(JG=Abo3HUZI9X+uKsVy31c30UX*7ok!G_OP- ztb!_DnXM`6mF?!02abbvSovC!4AX-384@mR_3mjQuzDPyy)j4semi>(?nz!PmM_AVjnzEWc*Zh}#zT@O4#=jicJ8o)iuRZt-qJ z6cT7kq0UXgTwT2oa~XIjUO8AwE2<9lRtGcGRN$)~nC!`?duWeOAmAJL?-69gcJukt znS~0uMgwh2qtdgFOr+uX?>pq;-coT37`jW-HdwM{r7r+2f!J8qe5d#U^%B&%&iK`FBkk4jnsy-ctsK|$- z|2vDhOfB3CukuTvFyf|eyanIhAIrrIh=a5)SwtZz!n>)Er!LaTyc~K^s_GVRnR|c@C+gOw%qTRMcsB z2$H_;ia>34MpYcE5*ZTKh82~!GNj(v)n6}*FOE*5@sVJxvYPCcPmK z`~e|e6=y>dd7;t(Hnt~7G!5z7Mb*4zt>9_(g;X}6j4MRJee=GWo5NFWfF3bM&s$If zWqu{S%~aUx&wk{yB1fR%1WG9@@#r^*jZLMN_7;{dKay1rJj~^@raUx&1fsZK_cQ3-bNEBlm@sIRIJ=pqKlJ1+>36=jIZ9k*e?20ChsS>s?umvo*1jW<~wx}`B$re(j?`RAJvKkEP zB8QlsEqOt6!B(pzNFJl9orID}1T4@{8W9y&98ocW8c13$`3WETgm@2cCy4PzUx@E! z=E8-?<{avINU>5O7asAQ)7Hk0}b zMNeb$CP{PSMh^R;#VM_HFRGHiv-ksmO8gg*EyqPMb{9I+wt$(?3MY|SQ5?RRCgA&` zZc;GopanrZ(8y{pNds3Y;VHlT0e|-}J{H1^PLZzXu`-*B6XQuDwZ> zfP7BbN=_&i!^&?Eyl)K$C~!Ck{&Ffr5z+wEwHK%^--XNLONImPhukz_hqtJC%SHm? zrY$R$yNs?zTQSXTNLY#@0=w41&(awYf?Gcck41hT(H)lwA-Hb-qC$&~)=3pT?h8-; z^~H}KXcX53OZ(uhmw37+E%hURtlmDZcRr}u>nUi=pGMB8l3o*Yo|6Jcj~(E=3Y;xah9xr?O`^J( z-v0d@V?}w{WF1gTU>( z+ay=zi~j7XKzwJ&)?NLq(hsdzS8Ninjxg1!JqEKNNoc9`D0WFu>LfDx|qJRr(S79W|ejivOw+7vM5-2$i0AEd1xbXaEzo|apdY*p8R z8s?5}4fNbMecTleFZM&4@qPBeo>aZ6`c&*;gCjql`)`U3WsCXCcso~#UY4ow zm7s-9l$8@1+amuNpm`KBl@$3L4twx!fo1rLw717o0|jf|6-7c{OHF5?CDR4hG|M*N zO3;B6WV)!nGKiF^3-+uiw6~BBA&BQiT5VCv>oAr{mrM{v!Ce2w5jSl|sR%9LL>4evJ2iU^SgD7TATxl5*mT z{BM%1j#;6?Q$)#AL~ufm%l7bMjSLG!SNy<&kM98(7_`NR@0qE~e0$O#PeyW;F3R2X z;xg1=6D@Bf=@jv}Cstv8%@7s2Bu6;78jy3Sj_|y1Lj^bm|sBt>!6; z3F!>1WNZ#6jC==8Hf_?M37{y1CubyJb2Rm?gR}4c!VQm~fB0PvcyzlHmCYkst3C2@ zGev)LH(UmwXo+QJI`pW=RJO&VO0O6}ji^nwD(SWiP!uGGB6!z;5;a%=NY>X~c^pg} z79uKm40&mHxUZx6u1WrI{38TWLdzX!VlU7cQx9q+e1Gc1J(E#lK=9B9;!=PHV}Ds9 zKJZ;Xu>a$DrUQ!wg8mIhdgJ^Ieccot>#(B|wEcQ;;+|ItkriXXcVJolig`sV6XOHH z`O3LqUs*arHlU>rRp(Q9DQ;81RQ%PWN5=wDlDhjnOpe z9?K>CXJmib-pC})9kbi)?YVH>oi%4867A18Nb;#yPwpte zGOeIq8<(g=31f--VWS`V;e4{N$WP5uT!QZj=@n>w{sH4 zqcw(iC2bQCZZ7lQlht!3kFUUYprN%o7Oi*awG)*rM4a|JMwjQeJp|~aW_Hps@JW8o zBvCC`8}~cqge?@FwTufe7p>}R$$M~Jke#0-ckJ2+{H{SxB23B%Wy~WID(-$p48GI}_xlJjX9%R^&j9)4_KJXk#5SeC=Rmse`C=C-1%* z5khg7k$+%)H8gGhk4>VebUC_UU{ks%gMn~TeCeM}Uqxx!c{U#I_4lB~ltb#kZuuLA zrB#Tw|Lb;3%z3rM4`bVeFY4@h&5z_?Jc-FXs$smxh&RH%3m-vU;MBfgu&G2oYOJ%5 z$Fx7Q_C$oP8(`x|fhxr6CUy|)++eThtN0tvgj8m9du$=U;I7hG<=iMtn zT^Guc!&x~equOJc?g(4_6jj7{MPiEBZKAyyk|a?k@lK~vPY+YgkHPtBi4sH+80awQ z%VF~YhrP_)Tv5YlIT5lbgZg8(+FKyfHPRJe8E?VjPx)${e$B--{e<6 z;K0@GtQ;5-aQA}W!pbI+C52Rq3{$SV6?mv^;J7=_i4{0Z67(@24J!y+jQb(fxWYmm zvtps%<22D*$nua|vjRSPpU|)cQg!6csgd2fpc&w7N!hN_OLCey?|Jwz-dd4t_P7+3vI6j_X~`O&-qaAqb1N75<)HK(^9|AvvMo zYD#cHj17pUBV`IHNLt)>$lCh!A&^sV1g`j)$$ZI6P{Poq%^Dxu*UgtMhw>H>ouV>G8X8Iouaf#A+`%k}zt zi8gch&XCWlDIdU=iSRTQTjd?$Tyefei2r`TC9>UQUOFA~5? z7=%3+71e|kLsEW&iRV|Q>HbUV4U-^DCr`=#Kqm^(SP4|VjL6erRoR!4bl5aZbBv~< znHYQr6(CN-90bEU@`?njw9|4SbJf)Fc1&0cq=G@q4oOFMUW?cLetr?bd#5 zx@o|;GmT+qSti>~ivk*+RSna&vS?hP9O79&WbuI0nzCa?Ybs%GqWAdJsM&=}U)z+v zug044bx+}uPu5s}_bVAjvDmaCA(D+_Y^j&E0ns-3&ttF8rk)Wd(&@pz4V(2Z%-~{c z6xy9OI}@DD@dLP8Cy}x+@mnKPy_=H!%_go*a}thMOjdN2j@yfOdm3Jhl~iZ(<7nps z_WAW!CXFE28;R<;>Ajd&8-Zr|E^Xp{JtoIL9Z{MuygJMHoV|Rp*5PdasBKUABvRqlF#H&T{V$6B>~o{iaTFK z1gp_)WmMRenu3I5EZH_T9%B!zlL)&l-F#m-Q6p=2bf&CCg%F(Siq z{eLGv{9eBOO8&dw=np@hAE*9u*LZJw>+L9b0jx99<*WpsA^?uDr(b?xSJOFEPJ*X= zk{2e#ATWiQq(d)$==D+n6;WN<**Ei-1ARV);OBYc8z0|9A;)o#(FxJdTY2E3Fsn8B zxP1k0c<#ET3#T~8J-`!Ou4)6!_|IeU6xYKihHay$18=wa(AAqMZlYUqG;NKa3xYUq zCi2}Hze2>*NWP4=ai#FmH&BO5j=90ZCMMp<>;9wOtUX;AM17NYX*h_1>rBExE zxig75WSMMc2Do81iQK?0;QQ0>?vSaWe6CFlW*$mVML}eJuc!7|E9VYH|J3RT&a6rl zG^cL@Sf=WSL7!R0mNW%3Ity=_0|2LY$e_e(Q2Aa$>l6BbIBu0Jl84;HcX~lLHWn@$ z)uT-}C_VJ~NV1awlLZA*yxo)UUq2b2H*nM7`JQ;nruG>W(zb4EFuD~6Ihq_J;|1D7 z1AJ1bz&6*FR0GEo4*R7u7mYSIQ!W(zyVbNtN-vcg@F`SaF-*a44(nbdo{tIR4ma;9^_y9uP9(SJOo*88et zrxt=9!9m_v$0RvM!|dq`#k2Gx2H?nerJZuQK4H@~wTtBi=o8$=gZwx14~@0y>IL&l z@=PV7a-yDor;DQ>54m!SMSk}`^leg7$yn`QE8k_=8-;5=1z_B+K7M7>+c%Va zNy8+_B%-f;Z#0xQ;?dY@Dxyp1zVe#BM41m&MprL{gNgUobwPV7YIc?59Mwze4`4IA zX9|WxrPBg@*$)Fo`yvOQsI>TUu*#&`95~mqJth6mhwBpr9Nmo-tL7TTlXqJ!ljGt@ z&u^Uyn*O}gz=PT6aJ2N@ni;4SFVO|t{QNulPyg5R|MtHTIdG`{lmGVPr=NfMQ2FJ& zchQr23=wJ$81&=~*eXt{oPrZm!eWq)i3{LAZk0}aQiv0Ux-AIerd?lP@i|`DM61uy z_q68cr|^*T90}dGn|7=k6B!L2Rsc}KEbaUEi*s#K-Vue^y#mOX;pFy zLlZSlbw!XqmVn1PDWgNeRtRYjI?#6sAt2F+@^^IYwpJiw!OcUU*K?oYV$F&iEx8T7 zoFSgXH%~0k#i=qxpX{IKJAzh6sUiJwgAfI95HIb64^S4zG_br!oB>Cn1% zy$hJ0TbX9ua}-QYpUWY=y9zv>`v|NgpqZ;~uc6to;qLS*lLj;S>wr-4Eaqyvpix)A zrFt~y(&zZaV<@UW0AY4%l&?6-dh*PaQacKTDGInmoCHxRXIyJBg(wm4qXlEn9_y4X z#x12obj268%^Knnx>bGc@ZxHNpK)-I>kTTOf#Y^Z%vg}enzUO+=SGJy2=rU>0=^3c z7DH9YA*`1bBVsAaeZ%>p7~CbRmZZrZ@|H@OgjJbG*7zWt=C$3~>k2ed1C;v4GzT@H4?l)Eg!ve9!s!~ zm}z-ho!ig6#KAkuyT%J)J%mQrF5C9LOFt8H$mT9KbbW5gaBK_|aja}%$Bpd-t4hP; zp238|%eMAh#wr_0?C;};b+(gsLFek!`-^@JXhz-h#BC1PEi0yL;>CoKt^4Apym2-^ z*R&*`+aoHNKv)E>hVlCB>;+WwD$OXnrJsC$xwcxVl`{>hGg=K=H@(3WZjb0rPk7IX z;E9S#wk4n11Kp-EODk%q?%PHlq^Qkx>_J8YpkG6D6q4L9>E7aS*nf^Ni@38D%{#ef zqu2lZKc4^ce~TY}k8j`bg*7os4NF#i!{WKOt;HbO=m-$Ud}#MAg)r9(zrk z<2IceSPWr`A(KRS1Nx_%oO02Yht{_mK^hvS-t1kA8|Za?gc|jnDDFm63Jz-C8LkE;bSQ- zo52X74&Mw6E^5t&9(!QkYKS5qA72{=mJ4p7LCz+=aK^R+dlO@&AV?9dHdaQ{!oc^v zv1W#X0ub`{JsvF$(`O*^ag z&Mn&k0kmq-sNi5p6}f@CbFx-HXB&m99CQIk@KK-{%(!i^D9Li2`DTHfu@wUr=`JhY zw(y{X5@+irOIw4&0z}HFE2YuRfNuj2)GALagY}9`VLeOk1{*EEu07>!kQe&V&;8wa zL3=qFJB$Da9ORZ~m{>=|@hr-$LmSRoh`G;U8QjJFxZ8pXTorxKDYhlmz^cwXI8-1G z`&>PPP~jW2K^Q-`_gSbISH_ir@xf*?WFIiey<;z+3MNA{R^ZykfKD1(P1m^U44sUT zCaUXZ#t=|vxd_~L#C$U7DV6f#VYW*pyeqw+YFQ0sqp#h8iD{Ky2xY$ z^rFvWoGXeN#AH)o*npnWz+sfHwRFf<5Oza|Q|y*x2_~LT@JG2-%A=Trv44@Oxqc&& z-*u2&0K_~IW=*SL?DCc!%&h=LsPCtJ=~b8Iq%ANF6u5k%n0XDoK2z9uv5M3&7-A<@ zyY4nWk*!)Qw+ETLrl6u~1ny2H*&dzYjr(`e(mGiwlQI5nO*8Vb)8u4?-m2Y8Mo)Np z$%5KcdfxXm@QXTN(x?x2maQF%{l>C&o7xMuPyL>Kzu9uXk0!j)rNI|(3Gdi!Uwvvc z!S;6ySLyV4(gl7<;riS#v;0wTX0}H&rS|m8`-X12i@L`=gDnc2p;-vh0yV`cL(Ud1 zJj|jHy`K&%h^c)Le(~w+5-+~S`7|K!fxOd!K2Cs#-6tSp>!})1N9s_NJ~%%Ae9=a^6z zSb!rBvSx)%F6Z5Q>Y@Ja#9HS5IGK!LzHr= z=%<|LJ)=0i)Qq~+)NPvh+%b_5Gi?-0OtNf9I^-t8&&hvQemo~qN{HC#T~mVS@~OpT znZ$5o4@gkC(1H8LRL=1e)rs>hPUyG73qLdXOn@5iS12*)_SyAEm9zGVKX-!#dAx``RFoT@b2U11oW! zd_@^(n*q!%Gt%M}kaVT;MkZZgi697AC)D-KH_FHkw~FXPg0WJ5OZX`i0AIkoo@B3d z`tp8lb2s({d%{_pO&UDcfD21t@AMT8tKWZpw_^DRrq=~hpIqlCDN z=XR3E&6$qQX+h`8%*44*WV(bkCv`t}=0eVZu?$|BtZ#x(*SQYRIB?oKwwJGRet3*0e{^yH9|J-G3XH0GGW$=lcL+_bsg?z zrp+LdWeoszU$c125gH1!Zgbbo)0I4KNL7ZeeVf-0kJs7kONe%ldcgPa>UQ3iKe0wh zQoURWYk!8Ss0Aw~k5%z({MF58N&cTN;pRu|sifhffvQV>G5ZiDv%_F^<|15241iz7 zv3|vMkSp^>l#D&I60{^|PS?Bw7wVTaiSiZ9$q*XD!(pMxZ_wh@wpw#~YWCT@O?7)0 zq$Yx-xq>+U&ZZ4`X+xz)6tK=0P4jC)<=ta@53!7 zJMOR4AB%63ByEQmfcVBpLxZ*TW90-bjv-0;2ZG=zzN!CNgJ1Dxv-Xs^TlLY_;ncr1 zscOUQ&sq9tFlYNn7zogk24=)XDTWU1jtbenHF!B`o4B2Zj@^Vnu*Qa(qSN&m6u5zP z#nTGn6w`w5+w{dENKR~Rj^6nv{^4H>{ulD|Z}_|4QE&oN6iEfT1VOnFu!}Z!e{6aO z-k8FN;xZe&AY)$cVE3nu2)N2IeDDT~6UQJF3%pqB{roqCI$y!0Osd`dh=9ZuEw1=(@MXp-kp$seY>keADVsBT;cK*4K!AJZ^UzcLluLtTzWn zXL~hU_LjyXH`FH=`fiSdryEB8wq4~B#fJ?ba;q;_a%MwY*LnF(DV5UjV|M2cTRGmf zA`ev$HDEIzz09=bCem1$Ax4&K+R=+=)`3Dn&2a5;C3-?1FWQpM^=R~&5B#@MjE1iX z(~+Y2r6S$aA>mtJZ%Qsx=cxTpr4y5~%lNZt2A95Vvp$|Hb*+0_V6;HY0&mwr zEN4aY9-~`hAzoG`gi|P^%Xo2B!&nLL=5|sxWM@{iM7YX?!_yyqy+cT41Fs|j(MHmW zZs8=IhpKQG1n+^EHO0q7tBMfzeQTlu);t~f^1!|{)lq4*u`Vo!Zo}}E>N__lEE=9K zUuJGzCQlk#z4}dz9`i-D!*?CHsPfW{FdusD<_zJnM{OjT>2)Xm>B$uIt#Ej{Pd-V1 zqCI8Y=T&N6Y6;o1KQ+31djs0$pPy-oy|j}mjycu_kHz*mctP%|-A>lNnjX^59Wr4w3^=QgcC;jf_npSGr@$dc>{{G*5>bKA1f2|)X zfAtUX?FUf|&IHGdx*L|y2@0JjRQV|+dEgTR_8lTBpAe;dQ#l}ihJ1d?=SdP5LtKYv z9bM7aNHKF62+i9)#;<(d$SE%h?g{z)mrgX_Ieb=x6~$&{3^53910Q&!@XsGgPI|Lx2829AdOPkx*zt4RVNxa8znYS z7ki!sZ)p{C3GS*pmAD6`D%am96Kp#w?I6%pu}t1bS(>5QxpCEQQzLEJ)^Ed~YXQ@C zF()lEOkMJDZ(=Hr!@ySNm!5VLvc8Hten*^>0iP-u87!=vv!qeUdc!(_pbfhLv2kKf zSDs}v5McUDK@DC2|3jA(L2t*Sm~ zxYAQnJV3+i(JJtwq*reweVg;B#vCJHfkFr<@H;f2(pvGeP}LRCockFH53fLbc4r}% zkv`BdzhJwsjV5fMH%hfGByssw3T@~&`Yl?$3v&Z>i8S5#qbF9EuS2~si@wfy(cCj$ z6c6O#Ck$lytl&{aZadbkjZ08THtTEPpkotE{%j|){T{z~BeGxA30N>jH&^U}LPfjn z2fd(TEADG=(H-~pjw@CKa!s+z5$wWDDId)Aw!LrH9~AzF<}^X2FMl$s#lasXZP5{R z6NdB~xV)y}OVQd`{I2%LghUD|-mqv(+uJfc=p_61S_B$5)!7OU16cx*>d=~EWiuQ2 z>BdBkwmZj&i0&KE?Skqez(=?_9D>?hNVbKgO|OQ0hb#lW@WD454yAu#-+K$F{@s5Y zQgZkLf2g;qr(t;ebep~X5pCD1TSc}iE0Xq7e%Fhb?IWSNSj6qO8+=*3A+wk;EaEn4 z1Wwi`9R^L3VL`#+KiNxWZY&CClZ(uBPBSM2{LNkm8?D7a7pqF7xNN}ac&>OjIKm%G zr;5wn3&z(jy|g$R50i(_f7R01EoIYpuik0y`DgjVzZd-{^4p)}=btg?dl({`FkE8H z1aJwsK!KZsd;^iN$j-$#qd>@$qF0N**T7W_3iB8Ncow93Li9x7dKfg%UrLRbp;;x$;v5FJ+rtAzg8^eZUxnx`>Kl=4x@*2*$!t2 zf{>3O$lQ~Qa1Cf&UMhSQ%4aCgAVNrnG+2Y5V(6I207Ka1>TqDO3I|X=&E4As^UT# zWtCjIR)36zpfa~A!wf}k#Gi6EM*9+txfIfOwp+g#o2#keo&(J+Pss*2ut3i$=e{V^ zyFWBFR;GGSNTsd<)LEWtbQD_YB;e8Z}C4#P}FD`##m!Ctk1&2;LyCxu`cdSJcG zCpWr#>`^%}dYbh3=A=TG4IPqpSoVLl^OiBgezGF|_o@i!D?k#Y+xrZskdHO#3!{J2xw!e4oIdg}paOjbMndbl+{pfP*(3IIC zDanK)t~6cP0aMm8KimAuesinpk>7y@mDKOxt63gB_UC7b$Ta;8nL)guhss!KvnWp1 z)Ypz5pfB9NGlD68jog<;aa09?scGUwKM6A?ZUa+P4L6+~W$4@D>*snud62~VQC(UZ z*{uAt6$QMYxtF7@-_6VuRbsDda-0Qtsfmc{6pRii~`*p{^jPfimJbv+AS7`|@$!!~3 zyNgHvSn0F5U10!j+b{iH?7@AaD5i#eK#f3zJ>@N{*ZOB@Vo&F*U-x!x`=7MgdOY;s zPg-{v8RGC!(JV5!kS(TP&PG1`92j`V>3QNMW*z#Nb&d=}s}Ls`<^F1-bAR}M;!pn$ z#}9J+52DK7{#L$ylg~Q|#w5=o5W_^yQ&i=Xr}Fa?gdBR4q?GFq_z;|;BEQHmvIFk= z#3UxuWb_w)O=EdNSA9PQ-}ZhHpP&jLzg$mu$e{wrw+~U3L*-QY{Pb&WTv~ZUz(wO1 z7bRW?v+V+8PoKo;^yQH`Iha-^tRlO+Ph%|?d^8JjNy53cE`vILqjC{!03Ugrfg z9p6EXhn|c%AK$AcOmS@(MUJqCU&DL+_Q&6DYKE*!(`As6Qy_SN{;DM0I;H1xRrXOk^~j+;*vB*h@!U+87Ksh zFbvKxP(U%9GG!`-)m%5kOu>{;7Nu)-3E7vj3Cocckjzu-=tvsk9*9ip(n)eE-Uu<8 z2_RRkJJRs?5~Z-`T(M_5-$hB1ICCg~t}#M1t+LY54xymxwa&38t-zzqj*W=CJ;G4z zv$SH8{sbE22-Q1vGzYIJdX?SCXhl*=!EOZU($0^P?uvK$;)YnK>4+I`4QP^|A~Q#! zE!eb=L?(z-47iT|T*{YcbBOFiAW6krdl_Y|^hTu7iPl8KqbH_GQ%LCAyzH{kX^3F?IE>h_WWuJjzBw-u;=Q5S_*l1adL38KY zEK)1-zBtsAYSdV{YFhZ}N!gp`kH@OmoB#Y$Vaz#pG?h!d)92Z*@l9J;*?wNN3atRA z6LrT{yS9t@8(wfBA)ZbLu=2Cti16aw4*W*!7_WDdzIXF&A!kFK=DTwNy+rt4p}QNL zawC$e%=WlU!cK@PP~nTA_)7|hd>6}Y)*w>)ELF^`aB>s%IfYse8bwnD(3fKm6h|SO z<8t+#Af#9AiU=!9D*a{gEC+omMMzYahQ-POx6f;$abP>Wul#O)$$_P_tSPsWDl5OS zFBD8h^sBy`bswfrUW>qB-41h%1h6oMomW8)+t%aoljk4h@BR+o{ziZIGk^VS5rLc# z%DF7QV0h58-{b^1Sz#j`JFeywZx(VJo6&$|*CXhyk8JTn#f|PkogVaIWRVwBfj8$& z4CHvRs*ix=&T~u00O~~<1OzvM+IJ^m;6XOSwg0(PkIlqBLKiY!=`i65ix@y+ux98feO&LE0mG7tVB zSJf}A?X88rFAj9vLw>Y$exn$Ll24CDdUV2Dnu@w)<$y>c4$3}}bKk{rN zoL@N3O;z7?V7YDAwyFvocg;SwT*rATu=IOkQENWs@aAPh7O+l$TIr69hPqN zI+^(H+(e2?Q3)TvK}%6lq03iux;SUISAI7NB6dhfsJvO*i49!NRMp`%s^dPm1D(|31?$w`p9>!oGnVseXF386i&Wdkg$e|5E<+?{WM}^uL$?rSdnw5moSWoVnE5 z5kGj)7suE~w%4+cT<8iCPrPIU%sUY!g^J3OpM+7)-h*r%;&7`qYDmIT%$ z4*eYJ6(LA3x;tR;fVinnP(T&HP;JSqvK*eT_PY*3&#Ry+>y{S_)#=&H}IO z3-)ObeYC1i?(hL`M&H|;n{?kvlG%rVTJ8C9FX{`1f(IIf7zU_YoW5Zp4`4nHfe5PF zx+N`=>x$Ssm}v)iLMiiz!GfocDeTYU6N`Y8p^q z`PV4CvxItqtBfhb;_#|w!x>;YFHo{;)kLhH*T)y+{EC)}(*3KUIPBgyWYe|} z(I*Ogftyzdj)9`UEg<6dA8h%&Cd6mzmsfxMZTuB8Y7<~Gb+8LIc#1Z7J$l*V&AY32 zkN&V`-)UQ3cb|Ss^Zl%9PUt~iyrWgVA?t1M=)Gio2PJokF4&GFnl}p{CgR<1bmrZ4cU`3DG*YlFtcIzm{U)>V5JGjJm;0wSkThO6={>&g@MwI(xaG-3 zU?W}fRg2m;L%KoFzfYYX?>@O7khaeWg>9AM;ckJa{RDOX%M#iy$F@qO6oq?g36aAP zIn|`c1!`7xjc8-lSPr!|5DKJdf>(nr=C1)(bDb5qTrqEsME$e^QNl@4ZV*S~nfS z1dl#npFDp1mt@|!2Jqc8}AzSTTXmEz9IT8vh&TLFCHNo-GkZYn>1Ew2!b1S*3cQy z4!v_l!YYQ6Mgq$1{JD%FW)BE5L0|&kmiz1jBTk2RbMP!An^lacKBSn2fp$LH`^ORn zLABE^Ut@VvCGOyWxT_=YhuB!gb>XtD`8@)!>=RD=fZd5u{;l|C2NMgfR||CF=|x1Y zDDaVN`B-fJC@#@?{jp&XSHJ-_Xu{e^(PB(^I<>XIl3wC&Yk zXa*IQge|Vhegez3P=pueU3=6(wvq@zY((}O?~71;FZsf+a1U#Xh(>{W4{5!0&Xjb7 zg(-B}9lKH6K&4c^!9F%sjm^j2V1?yVyn)`HZW5t&oi8dzk02mRrg5_aIOrC}5BgzE z058yCd1_(oRF&Qcs;mqG7O#1pnX+BWsJd#T-^bMFZ~XdJkCd~0-_9=;ytP5?gP!E( z{KD(K<$2igfWPBu<-V^YX2ZZ(y@thQ>Icbk&-9LGNFtTt=cOiw&tjHS>#hBY;x&o+ zup)|qNV12;>*FTZ&$MY!gJ)~i^9SA>!X&511Yw*rDQ4)dC=~X>CU8_Y#@&-bQnzKj z@E3d!RDwlFx?8f`U$6;aF!D!uDmr2{#Jj+W2;>kYR9pMN@z;{X7j3j+lwk!xu_P;cpKkV6Dkaa@LqkdI?9z!%IUfMc{>zIHQ)*U537 z7qZ8tE~7=o!d|o32o6!f@gc_{hc3FVTgBe2n26qz%LQ=^_3aX=x0fISd&mMimti0* zN`Bvi`fj$RlZhqvs@{AjC=fPae33p zKJWhmp!wC3=BBu3*}ENTK-RoSyOm3iI7}$tjOVWLQ!C2wo&i)v%#I4J?TO`$-5?!U zY%#wig<;O2q!XmE)KPAeLzLsvbTKeuHLy4BHxwO{7}LF}`U``VF>6spd_tnTuVrP+ z^GNi23UF>LRN>4z5k)+Ta2$!fGd2RNY~c)(7BFp})W#WCBab;AhX3yk`&xY2PN|Sv zp0kMqa`Nh{q7+(Th9(bRB9m3Dz??t>CS9^t!&}up>7o@keP{6X3B`^fFnQm`h4!}P zbWcWGqkb+(DzIxV%dZ=S-JRw#*OV|zO!AQd zXnEqGbr=UxRND4NC?S4A(8MvXMw2e>W6t1gm{|bOL9ZzW;&8nMYR1_H7ThNJshK0n zP0abLK6$8=>Dp7Zq(qgRI3$H`Zn!ykpe|-iEhC{Xp=a3=g~}vQD_h!beE5VcZ;;}M zF`<2yoDZ-^NLjt6N30FKw&n)DN5jSYzJK`jSIHiEl!{v0!C2DceR~tUmo_Bjd+D@C zq_-iJr|Hq6Xj}X`1MZzJvlLW@VmY8U4VD*x3;MYyPXIBuoeF!!8$1DC-FM>kz;5Oe ztK=U&w7P*cA74QU!Ms7(<*A|^6z%s#GU+iyyemI!igv8d7j0S%()57zRd&ni(`pYv zUpkd$9d$<`<)N0}J^Q2n@1|pBL$KYvwZ|1CFFdQ?YZkwUXdjClvaP^<-|2?e66$E2 zrQX~LG8R#t7ZOMqiApRc-?2BNLq`#CNe6o1vqaUW50I3uR7Ok#9_YT7Ud2{QMhy`_+Y!(DWKB z^u|;%(JkUqg1%jtpp*l*tTse&3?7z>@+vLd!+cRAb!wC|VzuT%f@2Ah>*&l@HH@6w zka0{By+`TzfGREwT4do1lm2h<;)}s8aNR;;ikCVq7VTO_y?(=qfBhD{;{zK4yAudhW@E<44t65KA@U)GT(20^ zn_oRA9)*@z={`FJ^x`f}{;a+Kg~KI;Ye6(Qe;0 za-*n@b$a%!jZ5VE6oQZ^@2s;2xiX@F>e7#m;c6!{TDV7^R0!>bK8@ijpRkNc^x&}c z&DEVE`mD|;tEg^M2*urzaD_pPYAcT#P)jfDd~&og@H!^y@aT~ zl%>m7JK{SOtEC#}EZhu_R|dHi=_N;`hnqL|&r~O74;-J(J#@(0yRfj8NzGy=-0EFu zUu!98hM7uvR_e6!R88pu>_=r1etkBEB!`XE5Bj|;1?2Gv=5|IMl>pAVP~a}L3l=jh zd3;_pU)A}Dl>Hz2?#sKW_$4pRuF{#oTzR7Tv-%`nDEvN(X=KehR{MV^b6I!JuK@l=R2Jrrw-x zd&xKl7x%{^Uz{6^$ZvP_BV~D{>8#E43q&Rt4d;)+BCjS*!vvFseT6koJJVd%X6Nr5 zZrMofi{WF2(Vo=Eh@r;?NH(qWQu(#CbpDwtf(9%mOu{IO?+G^ZbnC1@?{`$M4y=TF zNy{Sn<%qkf(j_PYcF7?YVIC6hKD$mS`TTqNxBqATFZ8mE=t z_~)pKOcR$|gyN(jMsG7XwJ&BN>f|8!Pg*x!yBN5P@@9X#o=eaivP7}1=icmYUp3@` zL^E09UCa3#Qr(B#v`8De-5St;;XjCk-`03gQsZ9u0Bi#Vc1#xbnLtCO!R|ckL!88V zxJ5^eOwB_@-5d$1$sM;~hSS#2iZG10O)P<28W&W16fLSXps*Vd!X5f90S6(nR)2;7 z2Vh~<()=niq!13LFG#gmd0Y$0qfc@S5fZ31u_5X3;$o?D(p?eeBpi`B-+UYgRtUvt zUVW#liV4v`s80Mf`~ z5%E;DuD;{fmUi=T^Trw1HI@=|h?eOo4@R!&{(=waf#r{}3OguT{*QVlTpdWEUJdc? zd7*->jt9NQExF&&t_E%)EvbkPDEJl+)TeA);RA*UtZ1`BV;|hAftc_YeoHj_lzKHT zPev&I528#*p?hLGt+d^qmPibXUGzquyS!AML{1V0gsx}YMk)s)i&h)nVvum{fG2Ea zbHi83yRIpibCW&^M^(rvr&F00@+%07pq}Ki)!r?iz2vU4X&{h_0kIJ%;0t8~+2&n% z@%i#=b3;aExaS0QBR?X&%J!o=Gq+IGMk09+;y=nv%XVTvW~AsVH=F6P**~QL97`32 z4tLuK?@GmLXR}>zXwG{h0rW+B+0LBDegfHc$UU;Q_tNK~Vdd<1a_OCZ^Aaly4Eka_ z#S;L^oa_2G^2Sr{y;KW(+~2qewuXU?Ai<09v{_%BZQy3Jl^2>D8$$xAbn6{F>X)7rBjgN|U^a=U={$uG1atd^&U2zBn z16og71jQtKT~<5o4e9X2=O6gzKZ5^|zy688{xy%|=Hy-9IdW4DH^S@NXWQr@fQlZt zgg6$q3sDuJ=tv0Dg0i58PGlm|tLNXh_pi9F=3|#8U@z(Wr~aRBc}Kj5H!1 z6W6#Pdl;~iKEk`+-UOys8}TH1W5Mm$PNk`d3AH{x?V457#;b$RJ^<*icX;kZNI^7W zl=R+>rtPqz!s^oRbQlz zm=?bG9Z439E>YbW->@*8^8M-&!@|-5 z9rJ_z0)OLFZp98VxJgb=1~+vlfe1h;)Na&cZa(onZvkU8K~woyh4932o6;g``(r}V z15asJ+}An+stHP^b03s{XOG==fX&){Xqr2dK@I%to5eZXOebFdt8A~HOYi6lV`#L7 z<;fWdL!V2$j*#|c81zlG?(yL&1%Z~nP95JIIXM2ccwiuK*T{4vCLVoq@nYZdDv zV=gj-rjvyO4$!9jnH>VH#DV&QLsP=6$+8tq;w|qidb-b?o}(d^v0eu@Ap&rPY|A73 zu|ZV%WVVLw_rKSuwIz~LIs+91^9I4}6vm}N#JVpzzk($_(+eU-%+gtIqs&m^m6|<~ zDD13bzl%g)-pu9UD}l5Y_F zj*EbIyEoC6_PdZ{wavu~L9v`>f;L4~YF0$bk%2W=(4UcLNvz%rnla+Gm1am%g|=N> zrI2(PW^3ya8eey4EXdSmO>#hIngE(^pfm1T9k@}tIzF0bfCUGjiD^Kac}N5L2fB<{ zd2X!kSWIlAf(e3l3hLb+kM_}sU7IM_Ha1-~6GUT01lj-4ymZja>O??+R4?w%M9x3S zpZ<;f;om_1F~9vFKmA&c4=1=fbNpL?*^4;dAWF#2Gjux=r@a?lJ8#T4D$&*t*ZM19+pqW3k zTv#);@I?kRUL4_h*X^vIf((t_MFM&yPA86VVkxzyX^BO8Gs!w2%`u)pX!kS8);h`NfH*zq&{OFpUM63l5N>IvA0p zQgTauKR!A$9N5k#NJ;Jpwc@Ar3qU9jBx(T7sd+=x^uL_Y>UADrsp*IUOd%a#FapYH zh93SnCBCo>79$}_U8qWKGhtJGNQd`=8R3cfsX9K5WpNHL+D_GV-McUhjw}1fn3E2# z6AQ26hN(hBV^PTQPVdSGY0+v$6k`*;B;Z)n|{VWdCT9s%M#lD;XubQ|U)*8wl;5aRQ%i3H}=WR+yZS99@H zy3j@*ntioK{IUC(y4ngKs-}%xdF6|3RvMl04Fj4_%W7}LhwbX<8n*OBP!Yy0WXF65 zDQqMQ9#?J&?QIHLP74^3hl?c5!RiuMB5<-Iroa;^;39A)4mA?Ytu5hiS8IGc?9g<0 z$WsSKDawK5Vy9hV5@2PIFNa|JV*d=7Z$d<|35T#kw0ddU=siU002ovPDHLkV1oXsz>@#~ literal 0 HcmV?d00001 diff --git a/src/components/Button/Button.module.css b/src/components/Button/Button.module.css index 28e9a83..659751d 100644 --- a/src/components/Button/Button.module.css +++ b/src/components/Button/Button.module.css @@ -73,4 +73,4 @@ .colors_red { --background: var(--button_red); --color: var(--buttonText_red); -} \ No newline at end of file +} diff --git a/src/components/DropdownButton/index.tsx b/src/components/DropdownButton/index.tsx index 557e868..8465f50 100644 --- a/src/components/DropdownButton/index.tsx +++ b/src/components/DropdownButton/index.tsx @@ -57,4 +57,4 @@ const DropdownItem: React.FC = (props: ItemProps) => { ; }; -export { DropdownButton, DropdownItem }; \ No newline at end of file +export { DropdownButton, DropdownItem }; diff --git a/src/components/Onboarding/Onboarding.module.css b/src/components/Onboarding/Onboarding.module.css index 2ecb83f..90802c0 100644 --- a/src/components/Onboarding/Onboarding.module.css +++ b/src/components/Onboarding/Onboarding.module.css @@ -110,3 +110,61 @@ .navigationButton.activeStep > div { background: #0D0F23; } + +.content { + display: flex; + padding: 50px; + justify-content: center; + align-items: flex-start; + gap: 100px; + flex: 1 0 0; + align-self: stretch; + + background: linear-gradient(182deg, rgba(5, 6, 11, 0.60) 1.91%, #05060B 47.87%), + url(/src/assets/OnboardingBackground.png) lightgray 50% / cover no-repeat; +} + +.contentContainer { + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: flex-start; + flex: 1 0 0; + align-self: stretch; +} + +.stepContent { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 50px; + align-self: stretch; +} + +.stepNavigation { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 25px; + align-self: stretch; +} + +.stepNavigationButtons { + display: flex; + height: 60px; + align-items: flex-start; + gap: 25px; + align-self: stretch; +} + +.stepNavigationButtons > button { + flex: 1 0 0; +} + +.stepContainer { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 25px; + align-self: stretch; +} diff --git a/src/components/Onboarding/Pages/ComponentsPage.tsx b/src/components/Onboarding/Pages/ComponentsPage.tsx new file mode 100644 index 0000000..d854e7d --- /dev/null +++ b/src/components/Onboarding/Pages/ComponentsPage.tsx @@ -0,0 +1,36 @@ +import WarningBox from "./WarningBox"; +import styles from "./Pages.module.css"; + +interface Props { +} + +export const ComponentsPage: React.FC = (props: Props) => { + return <> + + You can download other applications and songs at any time after the initial onboarding process. + +

+ ; +}; + +export default ComponentsPage; diff --git a/src/components/Onboarding/Pages/InstallFolderPage.tsx b/src/components/Onboarding/Pages/InstallFolderPage.tsx new file mode 100644 index 0000000..d1d4211 --- /dev/null +++ b/src/components/Onboarding/Pages/InstallFolderPage.tsx @@ -0,0 +1,36 @@ +import styles from "./Pages.module.css"; +import Button from "@app/components/Button"; +import WarningBox from "./WarningBox"; + +interface Props { + downloadLocation: string; + downloadEmpty: boolean; + + askForFolder: () => Promise; +} + +export const InstallFolderPage: React.FC = (props: Props) => { + return <> + + The installation folder can be changed after initial setup, + however some content may need to be re-downloaded. + +
+
+

{props.downloadLocation}

+
+
+ +
+
+ {!props.downloadEmpty && + + The folder you selected is not empty. Please select an empty folder to continue. + + } + ; +}; + +export default InstallFolderPage; diff --git a/src/components/Onboarding/Pages/Pages.module.css b/src/components/Onboarding/Pages/Pages.module.css new file mode 100644 index 0000000..228635b --- /dev/null +++ b/src/components/Onboarding/Pages/Pages.module.css @@ -0,0 +1,86 @@ +.warningBox { + display: flex; + padding: 20px; + align-items: center; + gap: 15px; + align-self: stretch; + + border-radius: 12px; + background: rgba(46, 217, 255, 0.15); + + color: #D3F7FF; + font-size: 14px; + font-weight: 400; +} + +.folderSelection { + display: flex; + height: 80px; + align-items: flex-start; + align-self: stretch; + + border-radius: 8px; + background: #030307; +} + +.selectedFolder { + display: flex; + height: 80px; + padding: 25px; + align-items: center; + gap: 15px; + flex: 1 0 0; + justify-content: space-between; +} + +.browseButtonContainer { + display: flex; + padding: 0px 15px; + justify-content: center; + align-items: center; + gap: 10px; + align-self: stretch; +} + +.componentContainer { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 25px; + align-self: stretch; +} + +.componentCategory { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 15px; + align-self: stretch; +} + +.componentCategory > header { + color: #9194B1; + font-weight: 700; + text-transform: uppercase; +} + +.componentOptionContainer { + display: flex; + height: 124px; + align-items: flex-start; + gap: 15px; + align-self: stretch; +} + +.componentOption { + display: flex; + height: 124px; + padding: 25px; + justify-content: space-between; + align-items: center; + flex: 1 0 0; + + border-radius: 15px; + border: 2px solid #0D0F23; + background: linear-gradient(0deg, rgba(13, 15, 35, 0.50) 0%, rgba(13, 15, 35, 0.50) 100%), #030307; +} diff --git a/src/components/Onboarding/Pages/WarningBox.tsx b/src/components/Onboarding/Pages/WarningBox.tsx new file mode 100644 index 0000000..dbaf0a0 --- /dev/null +++ b/src/components/Onboarding/Pages/WarningBox.tsx @@ -0,0 +1,11 @@ +import styles from "./Pages.module.css"; +import { InformationIcon } from "@app/assets/Icons"; + +export const warningBox: React.FC = (props: React.PropsWithChildren) => { + return
+ + {props.children} +
; +}; + +export default warningBox; diff --git a/src/components/Onboarding/Sidebar.tsx b/src/components/Onboarding/Sidebar.tsx index 614aa1b..1bc205b 100644 --- a/src/components/Onboarding/Sidebar.tsx +++ b/src/components/Onboarding/Sidebar.tsx @@ -11,9 +11,9 @@ const OnboardingSidebar: React.FC = ({ onboardingStep }: Props) => {
Welcome to YARG!
- OnboardingStep.LANGUAGE} /> + completedStep={onboardingStep > OnboardingStep.LANGUAGE} /> */} OnboardingStep.INSTALL_PATH} /> diff --git a/src/components/Onboarding/StepIndicator.tsx b/src/components/Onboarding/StepIndicator.tsx index af27c73..dc384c9 100644 --- a/src/components/Onboarding/StepIndicator.tsx +++ b/src/components/Onboarding/StepIndicator.tsx @@ -8,7 +8,7 @@ interface Props { } const StepIndicator: React.FC = ({ text, activeStep, completedStep }: Props) => { - let classes = [styles.navigationButton]; + const classes = [styles.navigationButton]; if (activeStep) { classes.push(styles.activeStep); } diff --git a/src/components/Onboarding/index.tsx b/src/components/Onboarding/index.tsx index b46b13a..ba83fa6 100644 --- a/src/components/Onboarding/index.tsx +++ b/src/components/Onboarding/index.tsx @@ -5,9 +5,12 @@ import { open } from "@tauri-apps/api/dialog"; import { invoke } from "@tauri-apps/api"; import { settingsManager } from "@app/settings"; import OnboardingSidebar from "./Sidebar"; +import Button from "../Button"; +import InstallFolderPage from "./Pages/InstallFolderPage"; +import ComponentsPage from "./Pages/ComponentsPage"; export enum OnboardingStep { - LANGUAGE = 0, + // LANGUAGE = 0, INSTALL_PATH = 1, COMPONENTS = 2, } @@ -17,7 +20,7 @@ interface Props { } const Onboarding: React.FC = (props: Props) => { - const [step, setStep] = useState(OnboardingStep.LANGUAGE); + const [step, setStep] = useState(OnboardingStep.INSTALL_PATH); const profileStore = useProfileStore(); @@ -55,6 +58,45 @@ const Onboarding: React.FC = (props: Props) => { return
+
+
+
+ {step === OnboardingStep.INSTALL_PATH && + + } + {step === OnboardingStep.COMPONENTS && + + } +
+
+
+ + +
+
+
+
; }; From 82b857bf3f0bb8df28cb10787ebe7a9c6ca4f2c7 Mon Sep 17 00:00:00 2001 From: Sulfrix Date: Fri, 2 Aug 2024 17:28:21 -0500 Subject: [PATCH 25/98] Allow launching a profile with command line arguments (--launch ) (#48) * Make Rust read arguments and expose them to frontend * Make the frontend launch the game when the argument is passed * Move "tiny bit of delay" out of launch option block * (hopefully) make eslint CI happy --- src-tauri/Cargo.lock | 933 ++++++++++++------------- src-tauri/Cargo.toml | 1 + src-tauri/src/main.rs | 32 +- src/components/LoadingScreen/index.tsx | 67 +- src/stores/ProfileStore.ts | 10 +- 5 files changed, 550 insertions(+), 493 deletions(-) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 6c01b8c..1c64a29 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -78,6 +78,55 @@ dependencies = [ "libc", ] +[[package]] +name = "anstream" +version = "0.6.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" + +[[package]] +name = "anstyle-parse" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + [[package]] name = "anyhow" version = "1.0.86" @@ -92,13 +141,13 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "async-trait" -version = "0.1.80" +version = "0.1.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" +checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.72", ] [[package]] @@ -139,9 +188,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "backtrace" -version = "0.3.72" +version = "0.3.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17c6a35df3749d2e8bb1b7b21a976d82b15548788d2735b9d82f329268f71a11" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" dependencies = [ "addr2line", "cc", @@ -178,18 +227,18 @@ checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] name = "bit-set" -version = "0.5.3" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +checksum = "f0481a0e032742109b1133a095184ee93d88f3dc9e0d28a5d033dc77a073f44f" dependencies = [ "bit-vec", ] [[package]] name = "bit-vec" -version = "0.6.3" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +checksum = "d2c54ff287cfc0a34f38a6b832ea1bd8e448a330b3e40a50859e6488bee07f22" [[package]] name = "bitflags" @@ -199,9 +248,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "bitvec" @@ -259,7 +308,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.72", "syn_derive", ] @@ -286,9 +335,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.9.1" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" +checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c" dependencies = [ "memchr", "regex-automata 0.4.7", @@ -336,9 +385,9 @@ dependencies = [ [[package]] name = "bytemuck" -version = "1.16.0" +version = "1.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5" +checksum = "102087e286b4677862ea56cf8fc58bb2cdfa8725c40ffb80fe3a008eb7f2fc83" [[package]] name = "byteorder" @@ -348,9 +397,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.6.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" dependencies = [ "serde", ] @@ -421,13 +470,12 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.99" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695" +checksum = "26a5c3fd7bfa1ce3897a3a3501d362b2d87b7f2583ebcb4a949ec25911025cbc" dependencies = [ "jobserver", "libc", - "once_cell", ] [[package]] @@ -488,7 +536,7 @@ dependencies = [ "iana-time-zone", "num-traits", "serde", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -501,6 +549,46 @@ dependencies = [ "inout", ] +[[package]] +name = "clap" +version = "4.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "clap_lex" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" + [[package]] name = "cocoa" version = "0.24.1" @@ -553,6 +641,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" +[[package]] +name = "colorchoice" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" + [[package]] name = "combine" version = "4.6.7" @@ -729,7 +823,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.66", + "syn 2.0.72", ] [[package]] @@ -739,14 +833,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f" dependencies = [ "quote", - "syn 2.0.66", + "syn 2.0.72", ] [[package]] name = "darling" -version = "0.20.9" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83b2eb4d90d12bdda5ed17de686c2acb4c57914f8f921b8da7e112b5a36f3fe1" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" dependencies = [ "darling_core", "darling_macro", @@ -754,27 +848,27 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.9" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", "strsim", - "syn 2.0.66", + "syn 2.0.72", ] [[package]] name = "darling_macro" -version = "0.20.9" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.66", + "syn 2.0.72", ] [[package]] @@ -800,15 +894,15 @@ dependencies = [ [[package]] name = "derive_more" -version = "0.99.17" +version = "0.99.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" dependencies = [ "convert_case", "proc-macro2", "quote", "rustc_version", - "syn 1.0.109", + "syn 2.0.72", ] [[package]] @@ -870,17 +964,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" -[[package]] -name = "displaydoc" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - [[package]] name = "dtoa" version = "1.0.9" @@ -904,14 +987,14 @@ checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" [[package]] name = "embed-resource" -version = "2.4.2" +version = "2.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6985554d0688b687c5cb73898a34fbe3ad6c24c58c238a4d91d5e840670ee9d" +checksum = "4edcacde9351c33139a41e3c97eb2334351a81a2791bebb0b243df837128f602" dependencies = [ "cc", "memchr", "rustc_version", - "toml 0.8.14", + "toml 0.8.19", "vswhom", "winreg 0.52.0", ] @@ -1047,7 +1130,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.72", ] [[package]] @@ -1127,7 +1210,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.72", ] [[package]] @@ -1479,7 +1562,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.2.6", + "indexmap 2.3.0", "slab", "tokio", "tokio-util", @@ -1498,7 +1581,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.1.0", - "indexmap 2.2.6", + "indexmap 2.3.0", "slab", "tokio", "tokio-util", @@ -1611,9 +1694,9 @@ dependencies = [ [[package]] name = "http-body" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", "http 1.1.0", @@ -1628,7 +1711,7 @@ dependencies = [ "bytes", "futures-util", "http 1.1.0", - "http-body 1.0.0", + "http-body 1.0.1", "pin-project-lite", ] @@ -1640,9 +1723,9 @@ checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573" [[package]] name = "httparse" -version = "1.9.2" +version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f3935c160d00ac752e09787e6e6bfc26494c2183cc922f1bc678a60d4733bc2" +checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" [[package]] name = "httpdate" @@ -1652,9 +1735,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "0.14.29" +version = "0.14.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33" +checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" dependencies = [ "bytes", "futures-channel", @@ -1676,16 +1759,16 @@ dependencies = [ [[package]] name = "hyper" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d" +checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" dependencies = [ "bytes", "futures-channel", "futures-util", "h2 0.4.5", "http 1.1.0", - "http-body 1.0.0", + "http-body 1.0.1", "httparse", "itoa 1.0.11", "pin-project-lite", @@ -1694,6 +1777,23 @@ dependencies = [ "want", ] +[[package]] +name = "hyper-rustls" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" +dependencies = [ + "futures-util", + "http 1.1.0", + "hyper 1.4.1", + "hyper-util", + "rustls", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tower-service", +] + [[package]] name = "hyper-tls" version = "0.5.0" @@ -1701,7 +1801,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ "bytes", - "hyper 0.14.29", + "hyper 0.14.30", "native-tls", "tokio", "tokio-native-tls", @@ -1715,7 +1815,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.3.1", + "hyper 1.4.1", "hyper-util", "native-tls", "tokio", @@ -1725,16 +1825,16 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b875924a60b96e5d7b9ae7b066540b1dd1cbd90d1828f54c92e02a283351c56" +checksum = "3ab92f4f49ee4fb4f997c784b7a2e0fa70050211e0b6a287f898c3c9785ca956" dependencies = [ "bytes", "futures-channel", "futures-util", "http 1.1.0", - "http-body 1.0.0", - "hyper 1.3.1", + "http-body 1.0.1", + "hyper 1.4.1", "pin-project-lite", "socket2", "tokio", @@ -1776,124 +1876,6 @@ dependencies = [ "png", ] -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f8ac670d7422d7f76b32e17a5db556510825b29ec9154f235977c9caba61036" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - [[package]] name = "ident_case" version = "1.0.1" @@ -1902,14 +1884,12 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "1.0.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4716a3a0933a1d01c2f72450e89596eb51dd34ef3c211ccd875acdf1f8fe47ed" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" dependencies = [ - "icu_normalizer", - "icu_properties", - "smallvec", - "utf8_iter", + "unicode-bidi", + "unicode-normalization", ] [[package]] @@ -1953,9 +1933,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.6" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "de3fc2e30ba82dd1b3911c8de1ffc143c74a914a14e99514d7637e3099df5ea0" dependencies = [ "equivalent", "hashbrown 0.14.5", @@ -1996,6 +1976,12 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + [[package]] name = "itoa" version = "0.4.8" @@ -2053,9 +2039,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.31" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" dependencies = [ "libc", ] @@ -2106,9 +2092,9 @@ dependencies = [ [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" @@ -2132,28 +2118,16 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "libc", ] -[[package]] -name = "line-wrap" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd1bc4d24ad230d21fb898d1116b1801d7adfc449d42026475862ab48b11e70e" - [[package]] name = "linux-raw-sys" version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" -[[package]] -name = "litemap" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" - [[package]] name = "lock_api" version = "0.4.12" @@ -2166,9 +2140,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.21" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" dependencies = [ "value-bag", ] @@ -2190,9 +2164,9 @@ dependencies = [ [[package]] name = "lzma-rust" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5edcf5d1f4d78221ea7861fb69899afd15c42601751f92f09a06f7b051fb289" +checksum = "5baab2bbbd7d75a144d671e9ff79270e903957d92fb7386fd39034c709bd2661" dependencies = [ "byteorder", ] @@ -2243,9 +2217,9 @@ checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" [[package]] name = "memchr" -version = "2.7.2" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memoffset" @@ -2281,9 +2255,9 @@ checksum = "933dca44d65cdd53b355d0b73d380a2ff5da71f87f036053188bf1eab6a19881" [[package]] name = "miniz_oxide" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" dependencies = [ "adler", "simd-adler32", @@ -2291,13 +2265,14 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.11" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" dependencies = [ + "hermit-abi", "libc", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -2368,9 +2343,9 @@ dependencies = [ [[package]] name = "nt-time" -version = "0.6.13" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e567788c00c02d8f3d554fa7c0335b08517ae3b4de6a2a4d8afa84d969a510b" +checksum = "2de419e64947cd8830e66beb584acc3fb42ed411d103e3c794dda355d1b374b5" dependencies = [ "chrono", "time", @@ -2401,16 +2376,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - [[package]] name = "num_enum" version = "0.5.11" @@ -2482,9 +2447,9 @@ dependencies = [ [[package]] name = "object" -version = "0.35.0" +version = "0.36.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8ec7ab813848ba4522158d5517a6093db1ded27575b070f4177b8d12b41db5e" +checksum = "3f203fa8daa7bb185f760ae12bd8e097f63d17041dcdcaf675ac54cdf863170e" dependencies = [ "memchr", ] @@ -2510,11 +2475,11 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.64" +version = "0.10.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" +checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "cfg-if", "foreign-types 0.3.2", "libc", @@ -2531,7 +2496,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.72", ] [[package]] @@ -2542,9 +2507,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.102" +version = "0.9.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" +checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" dependencies = [ "cc", "libc", @@ -2618,9 +2583,9 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.1", + "redox_syscall 0.5.3", "smallvec", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -2664,9 +2629,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.10" +version = "2.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8" +checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" dependencies = [ "memchr", "thiserror", @@ -2675,9 +2640,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.10" +version = "2.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26293c9193fbca7b1a3bf9b79dc1e388e927e6cacaa78b4a3ab705a1d3d41459" +checksum = "2a548d2beca6773b1c244554d36fcf8548a8a58e74156968211567250e48e49a" dependencies = [ "pest", "pest_generator", @@ -2685,22 +2650,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.10" +version = "2.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ec22af7d3fb470a85dd2ca96b7c577a1eb4ef6f1683a9fe9a8c16e136c04687" +checksum = "3c93a82e8d145725dcbaf44e5ea887c8a869efdcc28706df2d08c69e17077183" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.72", ] [[package]] name = "pest_meta" -version = "2.7.10" +version = "2.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a240022f37c361ec1878d646fc5b7d7c4d28d5946e1a80ad5a7a4f4ca0bdcd" +checksum = "a941429fea7e08bedec25e4f6785b6ffaacc6b755da98df5ef3e7dcf4a124c4f" dependencies = [ "once_cell", "pest", @@ -2811,7 +2776,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.72", ] [[package]] @@ -2858,7 +2823,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.72", ] [[package]] @@ -2881,13 +2846,12 @@ checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "plist" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9d34169e64b3c7a80c8621a48adaf44e0cf62c78a9b25dd9dd35f1881a17cf9" +checksum = "42cf17e9a1800f5f396bc67d193dc9411b59012a5876445ef450d449881e1016" dependencies = [ - "base64 0.21.7", - "indexmap 2.2.6", - "line-wrap", + "base64 0.22.1", + "indexmap 2.3.0", "quick-xml", "serde", "time", @@ -2914,9 +2878,12 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "dee4364d9f3b902ef14fab8a1ddffb783a1cb6b4bba3bfc1fa3922732c7de97f" +dependencies = [ + "zerocopy", +] [[package]] name = "precomputed-hash" @@ -2975,9 +2942,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.85" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" dependencies = [ "unicode-ident", ] @@ -3004,9 +2971,9 @@ dependencies = [ [[package]] name = "quick-xml" -version = "0.31.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33" +checksum = "1d3a6e5838b60e0e8fa7a43f22ade549a37d61f8bdbe636d0d7816191de969c2" dependencies = [ "memchr", ] @@ -3124,11 +3091,11 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.1" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" +checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", ] [[package]] @@ -3209,7 +3176,7 @@ dependencies = [ "h2 0.3.26", "http 0.2.12", "http-body 0.4.6", - "hyper 0.14.29", + "hyper 0.14.30", "hyper-tls 0.5.0", "ipnet", "js-sys", @@ -3223,7 +3190,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "sync_wrapper", + "sync_wrapper 0.1.2", "system-configuration", "tokio", "tokio-native-tls", @@ -3239,9 +3206,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.4" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10" +checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" dependencies = [ "base64 0.22.1", "bytes", @@ -3250,9 +3217,10 @@ dependencies = [ "futures-util", "h2 0.4.5", "http 1.1.0", - "http-body 1.0.0", + "http-body 1.0.1", "http-body-util", - "hyper 1.3.1", + "hyper 1.4.1", + "hyper-rustls", "hyper-tls 0.6.0", "hyper-util", "ipnet", @@ -3267,7 +3235,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "sync_wrapper", + "sync_wrapper 1.0.1", "system-configuration", "tokio", "tokio-native-tls", @@ -3305,6 +3273,21 @@ dependencies = [ "windows 0.37.0", ] +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.15", + "libc", + "spin", + "untrusted", + "windows-sys 0.52.0", +] + [[package]] name = "rkyv" version = "0.7.44" @@ -3392,13 +3375,26 @@ version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "errno", "libc", "linux-raw-sys", "windows-sys 0.52.0", ] +[[package]] +name = "rustls" +version = "0.23.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" +dependencies = [ + "once_cell", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + [[package]] name = "rustls-pemfile" version = "1.0.4" @@ -3424,6 +3420,17 @@ version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" +[[package]] +name = "rustls-webpki" +version = "0.102.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + [[package]] name = "rustversion" version = "1.0.17" @@ -3494,11 +3501,11 @@ checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" [[package]] name = "security-framework" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "core-foundation", "core-foundation-sys", "libc", @@ -3507,9 +3514,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" +checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" dependencies = [ "core-foundation-sys", "libc", @@ -3546,32 +3553,33 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.203" +version = "1.0.204" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" +checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.203" +version = "1.0.204" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" +checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.72", ] [[package]] name = "serde_json" -version = "1.0.117" +version = "1.0.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" +checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.3.0", "itoa 1.0.11", + "memchr", "ryu", "serde", ] @@ -3584,14 +3592,14 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.72", ] [[package]] name = "serde_spanned" -version = "0.6.6" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" +checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" dependencies = [ "serde", ] @@ -3610,15 +3618,15 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.8.1" +version = "3.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad483d2ab0149d5a5ebcd9972a3852711e0153d863bf5a5d0391d28883c4a20" +checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.2.6", + "indexmap 2.3.0", "serde", "serde_derive", "serde_json", @@ -3628,14 +3636,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.8.1" +version = "3.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65569b702f41443e8bc8bbb1c5779bd0450bbe723b56198980e80ec45780bce2" +checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.72", ] [[package]] @@ -3672,9 +3680,9 @@ dependencies = [ [[package]] name = "sevenz-rust" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a24854621db6137e3f7ed7d82282485874d212c755c3427a7436fc0c62c3d23" +checksum = "26482cf1ecce4540dc782fc70019eba89ffc4d87b3717eb5ec524b5db6fdefef" dependencies = [ "aes", "bit-set", @@ -3792,6 +3800,12 @@ dependencies = [ "system-deps 5.0.0", ] +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -3841,9 +3855,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "subtle" -version = "2.5.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" @@ -3858,9 +3872,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.66" +version = "2.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" +checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" dependencies = [ "proc-macro2", "quote", @@ -3876,7 +3890,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.72", ] [[package]] @@ -3886,15 +3900,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" [[package]] -name = "synstructure" -version = "0.13.1" +name = "sync_wrapper" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" [[package]] name = "sys-locale" @@ -3952,7 +3961,7 @@ dependencies = [ "cfg-expr 0.15.8", "heck 0.5.0", "pkg-config", - "toml 0.8.14", + "toml 0.8.19", "version-compare 0.2.0", ] @@ -4033,15 +4042,15 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.14" +version = "0.12.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "1.6.8" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77567d2b3b74de4588d544147142d02297f3eaa171a25a065252141d8597a516" +checksum = "336bc661a3f3250853fa83c6e5245449ed1c26dce5dcb28bdee7efedf6278806" dependencies = [ "anyhow", "base64 0.21.7", @@ -4096,9 +4105,9 @@ dependencies = [ [[package]] name = "tauri-build" -version = "1.5.2" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab30cba12974d0f9b09794f61e72cad6da2142d3ceb81e519321bab86ce53312" +checksum = "b0c6ec7a5c3296330c7818478948b422967ce4649094696c985f61d50076d29c" dependencies = [ "anyhow", "cargo_toml", @@ -4115,9 +4124,9 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "1.4.3" +version = "1.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3a1d90db526a8cdfd54444ad3f34d8d4d58fa5c536463915942393743bd06f8" +checksum = "c1aed706708ff1200ec12de9cfbf2582b5d8ec05f6a7293911091effbd22036b" dependencies = [ "base64 0.21.7", "brotli", @@ -4140,9 +4149,9 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "1.4.4" +version = "1.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a582d75414250122e4a597b9dd7d3c910a2c77906648fc2ac9353845ff0feec" +checksum = "b88f831d2973ae4f81a706a0004e67dac87f2e4439973bbe98efbd73825d8ede" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -4155,7 +4164,7 @@ dependencies = [ [[package]] name = "tauri-plugin-log" version = "0.0.0" -source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v1#562425644ef7c11a7b301a30c07a8c8b545621a8" +source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v1#7c9dac1f42bfe883b43c44485843d14fa81d3dae" dependencies = [ "byte-unit", "fern", @@ -4169,9 +4178,9 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "0.14.3" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd7ffddf36d450791018e63a3ddf54979b9581d9644c584a5fb5611e6b5f20b4" +checksum = "3068ed62b63dedc705558f4248c7ecbd5561f0f8050949859ea0db2326f26012" dependencies = [ "gtk", "http 0.2.12", @@ -4190,9 +4199,9 @@ dependencies = [ [[package]] name = "tauri-runtime-wry" -version = "0.14.8" +version = "0.14.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1989b3b4d611f5428b3414a4abae6fa6df30c7eb8ed33250ca90a5f7e5bb3655" +checksum = "d4c3db170233096aa30330feadcd895bf9317be97e624458560a20e814db7955" dependencies = [ "cocoa 0.24.1", "gtk", @@ -4210,9 +4219,9 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "1.5.4" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "450b17a7102e5d46d4bdabae0d1590fd27953e704e691fc081f06c06d2253b35" +checksum = "2826db448309d382dac14d520f0c0a40839b87b57b977e59cf5f296b3ace6a93" dependencies = [ "brotli", "ctor", @@ -4280,22 +4289,22 @@ checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" [[package]] name = "thiserror" -version = "1.0.61" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.61" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.72", ] [[package]] @@ -4341,21 +4350,11 @@ dependencies = [ "time-core", ] -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - [[package]] name = "tinyvec" -version = "1.6.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" dependencies = [ "tinyvec_macros", ] @@ -4368,18 +4367,17 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.38.0" +version = "1.39.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" +checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" dependencies = [ "backtrace", "bytes", "libc", "mio", - "num_cpus", "pin-project-lite", "socket2", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -4392,6 +4390,17 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-rustls" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +dependencies = [ + "rustls", + "rustls-pki-types", + "tokio", +] + [[package]] name = "tokio-util" version = "0.7.11" @@ -4428,21 +4437,21 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.14" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.14", + "toml_edit 0.22.20", ] [[package]] name = "toml_datetime" -version = "0.6.6" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" dependencies = [ "serde", ] @@ -4453,7 +4462,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.3.0", "serde", "serde_spanned", "toml_datetime", @@ -4466,22 +4475,22 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.3.0", "toml_datetime", "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.22.14" +version = "0.22.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38" +checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.3.0", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.13", + "winnow 0.6.18", ] [[package]] @@ -4530,7 +4539,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.72", ] [[package]] @@ -4590,23 +4599,44 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + [[package]] name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +[[package]] +name = "unicode-normalization" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +dependencies = [ + "tinyvec", +] + [[package]] name = "unicode-segmentation" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "url" -version = "2.5.1" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c25da092f0a868cdf09e8674cd3b7ef3a7d92a24253e663a2fb85e2496de56" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" dependencies = [ "form_urlencoded", "idna", @@ -4620,12 +4650,6 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - [[package]] name = "utf8-width" version = "0.1.7" @@ -4633,16 +4657,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" [[package]] -name = "utf8_iter" -version = "1.0.4" +name = "utf8parse" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.8.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" +checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" dependencies = [ "getrandom 0.2.15", ] @@ -4679,9 +4703,9 @@ checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "vswhom" @@ -4755,7 +4779,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.72", "wasm-bindgen-shared", ] @@ -4789,7 +4813,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.72", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -5003,7 +5027,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -5046,7 +5070,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -5081,18 +5105,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.5", - "windows_aarch64_msvc 0.52.5", - "windows_i686_gnu 0.52.5", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", "windows_i686_gnullvm", - "windows_i686_msvc 0.52.5", - "windows_x86_64_gnu 0.52.5", - "windows_x86_64_gnullvm 0.52.5", - "windows_x86_64_msvc 0.52.5", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] [[package]] @@ -5107,7 +5131,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6998aa457c9ba8ff2fb9f13e9d2a930dabcea28f1d0ab94d687d8b3654844515" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -5124,9 +5148,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" @@ -5154,9 +5178,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" @@ -5184,15 +5208,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" @@ -5220,9 +5244,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" @@ -5250,9 +5274,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" @@ -5268,9 +5292,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" @@ -5298,9 +5322,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" @@ -5313,9 +5337,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.13" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59b5e5f6c299a3c7890b876a2a587f3115162487e704907d9b6cd29473052ba1" +checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" dependencies = [ "memchr", ] @@ -5340,18 +5364,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - [[package]] name = "wry" version = "0.24.10" @@ -5436,12 +5448,13 @@ name = "yet_another_launcher" version = "0.3.2" dependencies = [ "async-trait", + "clap", "directories", "futures-util", "log", "minisign", "opener", - "reqwest 0.12.4", + "reqwest 0.12.5", "serde", "serde_json", "serde_repr", @@ -5454,71 +5467,31 @@ dependencies = [ ] [[package]] -name = "yoke" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", - "synstructure", -] - -[[package]] -name = "zerofrom" -version = "0.1.4" +name = "zerocopy" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +checksum = "854e949ac82d619ee9a14c66a1b674ac730422372ccb759ce0c39cabcf2bf8e6" dependencies = [ - "zerofrom-derive", + "byteorder", + "zerocopy-derive", ] [[package]] -name = "zerofrom-derive" -version = "0.1.4" +name = "zerocopy-derive" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +checksum = "125139de3f6b9d625c39e2efdd73d41bdac468ccd556556440e322be0e1bbd91" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", - "synstructure", + "syn 2.0.72", ] [[package]] -name = "zerovec" -version = "0.10.2" +name = "zeroize" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2cc8827d6c0994478a15c53f374f46fbd41bea663d809b14744bc42e6b109c" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97cf56601ee5052b4417d90c8755c6683473c926039908196cf35d99f893ebe7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" [[package]] name = "zip" @@ -5571,9 +5544,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.10+zstd.1.5.6" +version = "2.0.12+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa" +checksum = "0a4e40c320c3cb459d9a9ff6de98cff88f4751ee9275d140e2be94a2b74e4c13" dependencies = [ "cc", "pkg-config", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 5e6b8d2..58bd1f3 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -46,6 +46,7 @@ window-shadows = "0.2.2" minisign = "0.7.6" opener = { version = "0.7.1", features = ["reveal"] } async-trait = "0.1.74" +clap = { version = "4.5.13", features = ["derive"] } [features] # this feature is used for production builds or when `devPath` points to the filesystem diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 6d0777a..ca1816c 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -3,13 +3,14 @@ mod utils; -use std::{fs, path::PathBuf, process::Command}; +use std::{fs, path::PathBuf, process::Command, sync::{LazyLock, Mutex}}; use directories::BaseDirs; use serde_repr::{Deserialize_repr, Serialize_repr}; use tauri::{AppHandle, Manager}; use window_shadows::set_shadow; use utils::{clear_folder, download, extract, extract_encrypted}; +use clap::Parser; #[derive(Default, serde::Serialize, serde::Deserialize)] #[serde(rename_all = "camelCase")] @@ -231,7 +232,32 @@ fn open_folder_profile(profile_path: String) -> Result<(), String> { Ok(()) } +#[tauri::command(async)] +fn get_launch_argument() -> Option { + let launch_arg = DO_LAUNCH.lock().unwrap(); + return launch_arg.to_owned(); +} + +#[derive(Parser, Debug)] +#[command(version, about, long_about = None)] +struct Args { + /// UUID of the profile to launch + #[arg(short, long)] + launch: Option +} + +static DO_LAUNCH: LazyLock>> = LazyLock::new(|| Mutex::new(None)); + fn main() { + let args = Args::parse(); + + { + // Stores the launch option in a static so the frontend can request it later. + // TODO: Maybe change this to something more generic so the frontend can request any argument + let mut launch_option = DO_LAUNCH.lock().unwrap(); + *launch_option = args.launch; + } + tauri::Builder::default() .plugin(tauri_plugin_log::Builder::default().build()) .invoke_handler(tauri::generate_handler![ @@ -243,7 +269,9 @@ fn main() { download_and_install_profile, uninstall_profile, launch_profile, - open_folder_profile + open_folder_profile, + + get_launch_argument ]) .setup(|app| { // Show the window's shadow diff --git a/src/components/LoadingScreen/index.tsx b/src/components/LoadingScreen/index.tsx index 9b289c9..f6d5640 100644 --- a/src/components/LoadingScreen/index.tsx +++ b/src/components/LoadingScreen/index.tsx @@ -3,11 +3,16 @@ import styles from "./LoadingScreen.module.css"; import * as Progress from "@radix-ui/react-progress"; import { error as logError } from "tauri-plugin-log-api"; import { serializeError } from "serialize-error"; -import { useProfileStore } from "@app/stores/ProfileStore"; +import { getPathForProfile, useProfileStore } from "@app/stores/ProfileStore"; import { settingsManager } from "@app/settings"; +import { invoke } from "@tauri-apps/api"; +import { getOS } from "@app/utils/os"; +import { showErrorDialog } from "@app/dialogs/dialogUtil"; +import { appWindow } from "@tauri-apps/api/window"; enum LoadingState { "LOADING", + "LAUNCHING", "FADE_OUT", "DONE" } @@ -19,7 +24,7 @@ interface Props { const LoadingScreen: React.FC = (props: Props) => { const [loading, setLoading] = useState(LoadingState.LOADING); - const profileStore = useProfileStore(); + let profileStore = useProfileStore(); // Load useEffect(() => { @@ -28,15 +33,53 @@ const LoadingScreen: React.FC = (props: Props) => { await settingsManager.initialize(); if (!settingsManager.getCache("onboardingCompleted")) { - await profileStore.setDirs(); + profileStore = await profileStore.setDirs(); props.setOnboarding(true); } else { const downloadLocation = settingsManager.getCache("downloadLocation"); - await profileStore.setDirs(downloadLocation); + profileStore = await profileStore.setDirs(downloadLocation); } - + console.log(profileStore.customDirs); + + // Check if a profile was requested to be launched by cmdline arguments + const launchOption: string = await invoke("get_launch_argument"); + //console.log(launch_option); + if (launchOption) { + setLoading(LoadingState.LAUNCHING); + + const profile = profileStore.getProfileByUUID(launchOption); + if (profile) { + if (profile.type !== "application") { + showErrorDialog(`The specified profile (${profile.uuid}) is not an application.`); + return; + } + + const os = await getOS(); + const launchOptions = profile.launchOptions[os]; + if (launchOptions === undefined) { + showErrorDialog(`Launch options not configured on profile for "${os}"!`); + return; + } + + const profilePath = await getPathForProfile(profileStore, profile); + + try { + await invoke("launch_profile", { + profilePath: profilePath, + execPath: launchOptions.executablePath, + arguments: launchOptions.arguments + }); + appWindow.close(); + } catch (e) { + showErrorDialog(e as string); + } + } else { + showErrorDialog("Invalid profile specified: " + launchOption); + } + } // Add a tiny bit of delay so the loading screen doesn't just instantly disappear await new Promise(r => setTimeout(r, 250)); + } catch (e) { console.error(e); logError(JSON.stringify(serializeError(e))); @@ -68,9 +111,19 @@ const LoadingScreen: React.FC = (props: Props) => { +
-

Fun Fact

- YARG stands for Yet Another Rhythm Game + {loading == LoadingState.LAUNCHING ? + <> +

Launching...

+ Sit tight... + : + <> +

Fun Fact

+ YARG stands for Yet Another Rhythm Game + + } +
; }; diff --git a/src/stores/ProfileStore.ts b/src/stores/ProfileStore.ts index efe673a..27d4a38 100644 --- a/src/stores/ProfileStore.ts +++ b/src/stores/ProfileStore.ts @@ -19,8 +19,8 @@ export interface ProfileStore { profiles: Profile[], - getProfileByUUID: (uuid: string) => Profile | undefined, - setDirs: (downloadLocation?: string) => Promise, + getProfileByUUID: (uuid: string) => Profile | undefined, + setDirs: (downloadLocation?: string) => Promise, } export const useProfileStore = create()((set, get) => ({ @@ -109,9 +109,10 @@ export const useProfileStore = create()((set, get) => ({ const importantDirs: ImportantDirs = await invoke("get_important_dirs"); if (downloadLocation === undefined) { - return set({ + set({ importantDirs: importantDirs }); + return get(); } else { // If the download location is empty for whatever reason, just set it to the default one if (downloadLocation === "") { @@ -122,10 +123,11 @@ export const useProfileStore = create()((set, get) => ({ downloadLocation: downloadLocation }); - return set({ + set({ importantDirs: importantDirs, customDirs: customDirs }); + return get(); // This function returns the profile store itself because this does not immediately update it for the rest of the scope. } } })); From 09a41081d78affa2df565216b55fb0c331e81273 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Fri, 2 Aug 2024 18:58:04 -0400 Subject: [PATCH 26/98] Split rust struct definitions into a separate file --- src-tauri/src/main.rs | 70 +++++------------------------------------- src-tauri/src/types.rs | 57 ++++++++++++++++++++++++++++++++++ src-tauri/src/utils.rs | 13 ++++---- 3 files changed, 72 insertions(+), 68 deletions(-) create mode 100644 src-tauri/src/types.rs diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index ca1816c..0830037 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -2,61 +2,18 @@ #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] mod utils; +mod types; -use std::{fs, path::PathBuf, process::Command, sync::{LazyLock, Mutex}}; +use std::{fs, path::PathBuf, process::Command, sync::Mutex}; use directories::BaseDirs; -use serde_repr::{Deserialize_repr, Serialize_repr}; use tauri::{AppHandle, Manager}; use window_shadows::set_shadow; -use utils::{clear_folder, download, extract, extract_encrypted}; +use utils::*; +use types::*; use clap::Parser; -#[derive(Default, serde::Serialize, serde::Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct ImportantDirs { - pub yarc_folder: String, - pub launcher_folder: String, - pub temp_folder: String, -} - -#[derive(Default, serde::Serialize, serde::Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct CustomDirs { - pub yarg_folder: String, - pub setlist_folder: String, -} - -#[derive(Default, serde::Serialize, serde::Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct ReleaseContent { - pub name: String, - pub platforms: Vec, - pub files: Vec, -} - -#[derive(Default, serde::Serialize, serde::Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct ReleaseContentFile { - pub url: String, - pub file_type: String, - pub signature: Option, -} - -#[derive(Serialize_repr, Deserialize_repr, PartialEq, Debug)] -#[repr(u8)] -enum ProfileFolderState { - Error = 0, - UpToDate = 1, - UpdateRequired = 2, - FirstDownload = 3 -} - -fn path_to_string(p: PathBuf) -> Result { - Ok(p.into_os_string() - .into_string() - .map_err(|e| format!("Failed to convert path to string!\n{:?}", e))?) -} +static COMMAND_LINE_ARG_LAUNCH: Mutex> = Mutex::new(None); #[tauri::command(async)] fn get_important_dirs() -> Result { @@ -234,27 +191,16 @@ fn open_folder_profile(profile_path: String) -> Result<(), String> { #[tauri::command(async)] fn get_launch_argument() -> Option { - let launch_arg = DO_LAUNCH.lock().unwrap(); + let launch_arg = COMMAND_LINE_ARG_LAUNCH.lock().unwrap(); return launch_arg.to_owned(); } -#[derive(Parser, Debug)] -#[command(version, about, long_about = None)] -struct Args { - /// UUID of the profile to launch - #[arg(short, long)] - launch: Option -} - -static DO_LAUNCH: LazyLock>> = LazyLock::new(|| Mutex::new(None)); - fn main() { - let args = Args::parse(); + let args = CommandLineArgs::parse(); { // Stores the launch option in a static so the frontend can request it later. - // TODO: Maybe change this to something more generic so the frontend can request any argument - let mut launch_option = DO_LAUNCH.lock().unwrap(); + let mut launch_option = COMMAND_LINE_ARG_LAUNCH.lock().unwrap(); *launch_option = args.launch; } diff --git a/src-tauri/src/types.rs b/src-tauri/src/types.rs new file mode 100644 index 0000000..f4d7ef8 --- /dev/null +++ b/src-tauri/src/types.rs @@ -0,0 +1,57 @@ +use clap::{command, Parser}; +use serde_repr::{Deserialize_repr, Serialize_repr}; + +#[derive(Parser, Debug)] +#[command(version, about, long_about = None)] +pub struct CommandLineArgs { + /// UUID of the profile to launch + #[arg(short, long)] + pub launch: Option, +} + +#[derive(Clone, serde::Serialize)] +pub struct ProgressPayload { + pub state: String, + pub total: u64, + pub current: u64, +} + +#[derive(Default, serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct ImportantDirs { + pub yarc_folder: String, + pub launcher_folder: String, + pub temp_folder: String, +} + +#[derive(Default, serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct CustomDirs { + pub yarg_folder: String, + pub setlist_folder: String, +} + +#[derive(Default, serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct ReleaseContent { + pub name: String, + pub platforms: Vec, + pub files: Vec, +} + +#[derive(Default, serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct ReleaseContentFile { + pub url: String, + pub file_type: String, + pub signature: Option, +} + +#[derive(Serialize_repr, Deserialize_repr, PartialEq, Debug)] +#[repr(u8)] +pub enum ProfileFolderState { + Error = 0, + UpToDate = 1, + UpdateRequired = 2, + FirstDownload = 3, +} diff --git a/src-tauri/src/utils.rs b/src-tauri/src/utils.rs index dd32e93..a6a6101 100644 --- a/src-tauri/src/utils.rs +++ b/src-tauri/src/utils.rs @@ -1,7 +1,9 @@ +use crate::ProgressPayload; + use futures_util::StreamExt; use reqwest; use sevenz_rust::Password; -use std::path::Path; +use std::path::{Path, PathBuf}; use std::time::{Duration, Instant}; use std::{fs::File, io::Write}; use tauri::{AppHandle, Manager}; @@ -9,11 +11,10 @@ use tauri::{AppHandle, Manager}; const LETTERS: &str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; const EMIT_BUFFER_RATE: f64 = 1.0 / 15.0; -#[derive(Clone, serde::Serialize)] -pub struct ProgressPayload { - pub state: String, - pub total: u64, - pub current: u64, +pub fn path_to_string(p: PathBuf) -> Result { + Ok(p.into_os_string() + .into_string() + .map_err(|e| format!("Failed to convert path to string!\n{:?}", e))?) } pub fn clear_folder(path: &Path) -> Result<(), String> { From c9bda226e0db26c555825d4102a0c769b303845a Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Fri, 2 Aug 2024 20:44:32 -0400 Subject: [PATCH 27/98] Added lazy lock back --- src-tauri/src/main.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 0830037..80fdf00 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -4,7 +4,7 @@ mod utils; mod types; -use std::{fs, path::PathBuf, process::Command, sync::Mutex}; +use std::{fs, path::PathBuf, process::Command, sync::{LazyLock, Mutex}}; use directories::BaseDirs; use tauri::{AppHandle, Manager}; @@ -13,7 +13,7 @@ use utils::*; use types::*; use clap::Parser; -static COMMAND_LINE_ARG_LAUNCH: Mutex> = Mutex::new(None); +static COMMAND_LINE_ARG_LAUNCH: LazyLock>> = LazyLock::new(|| Mutex::new(None)); #[tauri::command(async)] fn get_important_dirs() -> Result { From 3fb583256a0786ebb69144fb52eb7dea3ef872dc Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Fri, 2 Aug 2024 20:51:39 -0400 Subject: [PATCH 28/98] Rename `stores` folder to `profiles` --- src/components/LoadingScreen/index.tsx | 20 +++++++++---------- src/components/Onboarding/index.tsx | 2 +- src/components/Sidebar/Versions/List.tsx | 2 +- src/hooks/useProfileState.ts | 4 ++-- .../ProfileStore.ts => profiles/store.ts} | 2 +- .../ProfileTypes.ts => profiles/types.ts} | 0 src/routes/AppProfile/index.tsx | 2 +- .../Processors/DownloadAndInstallTask.tsx | 2 +- src/tasks/Processors/UninstallTask.tsx | 2 +- src/tasks/Processors/base.ts | 2 +- 10 files changed, 19 insertions(+), 19 deletions(-) rename src/{stores/ProfileStore.ts => profiles/store.ts} (99%) rename src/{stores/ProfileTypes.ts => profiles/types.ts} (100%) diff --git a/src/components/LoadingScreen/index.tsx b/src/components/LoadingScreen/index.tsx index f6d5640..9ef75ac 100644 --- a/src/components/LoadingScreen/index.tsx +++ b/src/components/LoadingScreen/index.tsx @@ -3,7 +3,7 @@ import styles from "./LoadingScreen.module.css"; import * as Progress from "@radix-ui/react-progress"; import { error as logError } from "tauri-plugin-log-api"; import { serializeError } from "serialize-error"; -import { getPathForProfile, useProfileStore } from "@app/stores/ProfileStore"; +import { getPathForProfile, useProfileStore } from "@app/profiles/store"; import { settingsManager } from "@app/settings"; import { invoke } from "@tauri-apps/api"; import { getOS } from "@app/utils/os"; @@ -40,29 +40,29 @@ const LoadingScreen: React.FC = (props: Props) => { profileStore = await profileStore.setDirs(downloadLocation); } console.log(profileStore.customDirs); - + // Check if a profile was requested to be launched by cmdline arguments const launchOption: string = await invoke("get_launch_argument"); //console.log(launch_option); if (launchOption) { setLoading(LoadingState.LAUNCHING); - + const profile = profileStore.getProfileByUUID(launchOption); if (profile) { if (profile.type !== "application") { showErrorDialog(`The specified profile (${profile.uuid}) is not an application.`); return; } - + const os = await getOS(); const launchOptions = profile.launchOptions[os]; if (launchOptions === undefined) { showErrorDialog(`Launch options not configured on profile for "${os}"!`); return; } - + const profilePath = await getPathForProfile(profileStore, profile); - + try { await invoke("launch_profile", { profilePath: profilePath, @@ -76,7 +76,7 @@ const LoadingScreen: React.FC = (props: Props) => { } else { showErrorDialog("Invalid profile specified: " + launchOption); } - } + } // Add a tiny bit of delay so the loading screen doesn't just instantly disappear await new Promise(r => setTimeout(r, 250)); @@ -113,17 +113,17 @@ const LoadingScreen: React.FC = (props: Props) => {
- {loading == LoadingState.LAUNCHING ? + {loading == LoadingState.LAUNCHING ? <>

Launching...

Sit tight... - : + : <>

Fun Fact

YARG stands for Yet Another Rhythm Game } - +
; }; diff --git a/src/components/Onboarding/index.tsx b/src/components/Onboarding/index.tsx index ba83fa6..34fb787 100644 --- a/src/components/Onboarding/index.tsx +++ b/src/components/Onboarding/index.tsx @@ -1,6 +1,6 @@ import { useState } from "react"; import styles from "./Onboarding.module.css"; -import { useProfileStore } from "@app/stores/ProfileStore"; +import { useProfileStore } from "@app/profiles/store"; import { open } from "@tauri-apps/api/dialog"; import { invoke } from "@tauri-apps/api"; import { settingsManager } from "@app/settings"; diff --git a/src/components/Sidebar/Versions/List.tsx b/src/components/Sidebar/Versions/List.tsx index c0bc3fe..e88a5b2 100644 --- a/src/components/Sidebar/Versions/List.tsx +++ b/src/components/Sidebar/Versions/List.tsx @@ -1,7 +1,7 @@ import styles from "./Versions.module.css"; import VersionSeparator from "./Separator"; import { AddIcon } from "@app/assets/Icons"; -import { useProfileStore } from "@app/stores/ProfileStore"; +import { useProfileStore } from "@app/profiles/store"; import { NavLink } from "react-router-dom"; const ProfilesList: React.FC = () => { diff --git a/src/hooks/useProfileState.ts b/src/hooks/useProfileState.ts index 8fa095a..ea79188 100644 --- a/src/hooks/useProfileState.ts +++ b/src/hooks/useProfileState.ts @@ -1,6 +1,6 @@ import { showErrorDialog } from "@app/dialogs/dialogUtil"; -import { getPathForProfile, useProfileStore } from "@app/stores/ProfileStore"; -import { Profile } from "@app/stores/ProfileTypes"; +import { getPathForProfile, useProfileStore } from "@app/profiles/store"; +import { Profile } from "@app/profiles/types"; import { addTask, useTask } from "@app/tasks"; import { DownloadAndInstallTask } from "@app/tasks/Processors/DownloadAndInstallTask"; import { UninstallTask } from "@app/tasks/Processors/UninstallTask"; diff --git a/src/stores/ProfileStore.ts b/src/profiles/store.ts similarity index 99% rename from src/stores/ProfileStore.ts rename to src/profiles/store.ts index 27d4a38..302889b 100644 --- a/src/stores/ProfileStore.ts +++ b/src/profiles/store.ts @@ -1,6 +1,6 @@ import { invoke, path } from "@tauri-apps/api"; import { create } from "zustand"; -import { Profile } from "./ProfileTypes"; +import { Profile } from "./types"; export interface ImportantDirs { yarcFolder: string, diff --git a/src/stores/ProfileTypes.ts b/src/profiles/types.ts similarity index 100% rename from src/stores/ProfileTypes.ts rename to src/profiles/types.ts diff --git a/src/routes/AppProfile/index.tsx b/src/routes/AppProfile/index.tsx index 304c098..1de9d80 100644 --- a/src/routes/AppProfile/index.tsx +++ b/src/routes/AppProfile/index.tsx @@ -1,5 +1,5 @@ import { useParams } from "react-router-dom"; -import { useProfileStore } from "@app/stores/ProfileStore"; +import { useProfileStore } from "@app/profiles/store"; import { LaunchButton } from "@app/components/Launch/LaunchButton"; function AppProfile() { diff --git a/src/tasks/Processors/DownloadAndInstallTask.tsx b/src/tasks/Processors/DownloadAndInstallTask.tsx index fdf3d70..da806c7 100644 --- a/src/tasks/Processors/DownloadAndInstallTask.tsx +++ b/src/tasks/Processors/DownloadAndInstallTask.tsx @@ -1,4 +1,4 @@ -import { Profile } from "@app/stores/ProfileTypes"; +import { Profile } from "@app/profiles/types"; import { BaseTask, IBaseTask } from "./base"; import { invoke } from "@tauri-apps/api"; import { showErrorDialog } from "@app/dialogs/dialogUtil"; diff --git a/src/tasks/Processors/UninstallTask.tsx b/src/tasks/Processors/UninstallTask.tsx index 86dcc1a..ee1b487 100644 --- a/src/tasks/Processors/UninstallTask.tsx +++ b/src/tasks/Processors/UninstallTask.tsx @@ -1,4 +1,4 @@ -import { Profile } from "@app/stores/ProfileTypes"; +import { Profile } from "@app/profiles/types"; import { BaseTask, IBaseTask } from "./base"; import { invoke } from "@tauri-apps/api"; import { showErrorDialog } from "@app/dialogs/dialogUtil"; diff --git a/src/tasks/Processors/base.ts b/src/tasks/Processors/base.ts index c3472c0..a081be7 100644 --- a/src/tasks/Processors/base.ts +++ b/src/tasks/Processors/base.ts @@ -1,4 +1,4 @@ -import { Profile } from "@app/stores/ProfileTypes"; +import { Profile } from "@app/profiles/types"; import { v4 as generateUUID } from "uuid"; export interface IBaseTask { From f9c888e2eca3b6cd1e4c5067f0ff9282ee85e5ea Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Fri, 2 Aug 2024 21:21:52 -0400 Subject: [PATCH 29/98] Split up profile functions so the code can be reused --- src/components/LoadingScreen/index.tsx | 37 +++----------- src/hooks/useProfileState.ts | 48 ++++-------------- src/profiles/actions.ts | 69 ++++++++++++++++++++++++++ 3 files changed, 87 insertions(+), 67 deletions(-) create mode 100644 src/profiles/actions.ts diff --git a/src/components/LoadingScreen/index.tsx b/src/components/LoadingScreen/index.tsx index 9ef75ac..b34aadb 100644 --- a/src/components/LoadingScreen/index.tsx +++ b/src/components/LoadingScreen/index.tsx @@ -9,6 +9,7 @@ import { invoke } from "@tauri-apps/api"; import { getOS } from "@app/utils/os"; import { showErrorDialog } from "@app/dialogs/dialogUtil"; import { appWindow } from "@tauri-apps/api/window"; +import { launch } from "@app/profiles/actions"; enum LoadingState { "LOADING", @@ -39,47 +40,25 @@ const LoadingScreen: React.FC = (props: Props) => { const downloadLocation = settingsManager.getCache("downloadLocation"); profileStore = await profileStore.setDirs(downloadLocation); } - console.log(profileStore.customDirs); // Check if a profile was requested to be launched by cmdline arguments - const launchOption: string = await invoke("get_launch_argument"); - //console.log(launch_option); - if (launchOption) { + const launchOption: string | null = await invoke("get_launch_argument"); + if (launchOption !== null) { setLoading(LoadingState.LAUNCHING); const profile = profileStore.getProfileByUUID(launchOption); if (profile) { - if (profile.type !== "application") { - showErrorDialog(`The specified profile (${profile.uuid}) is not an application.`); - return; - } - - const os = await getOS(); - const launchOptions = profile.launchOptions[os]; - if (launchOptions === undefined) { - showErrorDialog(`Launch options not configured on profile for "${os}"!`); - return; - } - - const profilePath = await getPathForProfile(profileStore, profile); - - try { - await invoke("launch_profile", { - profilePath: profilePath, - execPath: launchOptions.executablePath, - arguments: launchOptions.arguments - }); - appWindow.close(); - } catch (e) { - showErrorDialog(e as string); - } + const path = await getPathForProfile(profileStore, profile); + await launch(profile, path); + + appWindow.close(); } else { showErrorDialog("Invalid profile specified: " + launchOption); } } + // Add a tiny bit of delay so the loading screen doesn't just instantly disappear await new Promise(r => setTimeout(r, 250)); - } catch (e) { console.error(e); logError(JSON.stringify(serializeError(e))); diff --git a/src/hooks/useProfileState.ts b/src/hooks/useProfileState.ts index ea79188..91942a1 100644 --- a/src/hooks/useProfileState.ts +++ b/src/hooks/useProfileState.ts @@ -1,11 +1,8 @@ -import { showErrorDialog } from "@app/dialogs/dialogUtil"; +import { downloadAndInstall, launch, openInstallFolder, uninstall } from "@app/profiles/actions"; import { getPathForProfile, useProfileStore } from "@app/profiles/store"; import { Profile } from "@app/profiles/types"; -import { addTask, useTask } from "@app/tasks"; -import { DownloadAndInstallTask } from "@app/tasks/Processors/DownloadAndInstallTask"; -import { UninstallTask } from "@app/tasks/Processors/UninstallTask"; +import { useTask } from "@app/tasks"; import { IBaseTask } from "@app/tasks/Processors/base"; -import { getOS } from "@app/utils/os"; import { invoke } from "@tauri-apps/api"; import { useEffect, useState } from "react"; @@ -77,61 +74,36 @@ export const useProfileState = (profileUUID: string): ProfileState => { currentTask, downloadAndInstall: async () => { - if (loading || profiles.importantDirs === undefined) { + if (loading) { return; } - const task = new DownloadAndInstallTask(profile, profilePath, profiles.importantDirs.tempFolder, () => { + await downloadAndInstall(profile, profiles, profilePath, () => { setFolderState(ProfileFolderState.UpToDate); }); - - addTask(task); }, uninstall: async () => { - if (loading || profiles.importantDirs === undefined) { + if (loading) { return; } - const task = new UninstallTask(profile, profilePath, () => { + await uninstall(profile, profiles, profilePath, () => { setFolderState(ProfileFolderState.FirstDownload); }); - - addTask(task); }, launch: async () => { - if (profile.type !== "application") { + if (loading) { return; } - const os = await getOS(); - const launchOptions = profile.launchOptions[os]; - if (launchOptions === undefined) { - showErrorDialog(`Launch options not configured on profile for "${os}"!`); - return; - } - - try { - await invoke("launch_profile", { - profilePath: profilePath, - execPath: launchOptions.executablePath, - arguments: launchOptions.arguments - }); - } catch (e) { - showErrorDialog(e as string); - } + await launch(profile, profilePath); }, openInstallFolder: async() => { - if (profile.type !== "application") { + if (loading) { return; } - try { - await invoke("open_folder_profile", { - profilePath: profilePath - }); - } catch (e) { - showErrorDialog(e as string); - } + await openInstallFolder(profile, profilePath); } }; }; diff --git a/src/profiles/actions.ts b/src/profiles/actions.ts new file mode 100644 index 0000000..efa6fba --- /dev/null +++ b/src/profiles/actions.ts @@ -0,0 +1,69 @@ +import { DownloadAndInstallTask } from "@app/tasks/Processors/DownloadAndInstallTask"; +import { ProfileStore } from "./store"; +import { Profile } from "./types"; +import { addTask } from "@app/tasks"; +import { UninstallTask } from "@app/tasks/Processors/UninstallTask"; +import { getOS } from "@app/utils/os"; +import { showErrorDialog } from "@app/dialogs/dialogUtil"; +import { invoke } from "@tauri-apps/api"; + +export const downloadAndInstall = async (profile: Profile, profiles: ProfileStore, profilePath: string, + onFinish?: () => void): Promise => { + + if (profiles.importantDirs === undefined) { + return; + } + + const task = new DownloadAndInstallTask(profile, profilePath, profiles.importantDirs.tempFolder, onFinish); + addTask(task); +}; + +export const uninstall = async (profile: Profile, profiles: ProfileStore, profilePath: string, + onFinish?: () => void): Promise => { + + if (profiles.importantDirs === undefined) { + return; + } + + const task = new UninstallTask(profile, profilePath, onFinish); + addTask(task); +}; + +export const launch = async (profile: Profile, profilePath: string): Promise => { + if (profile.type !== "application") { + showErrorDialog(`Cannot launch profile of type "${profile.type}"!`); + return; + } + + const os = await getOS(); + const launchOptions = profile.launchOptions[os]; + if (launchOptions === undefined) { + showErrorDialog(`Launch options not configured on profile for "${os}"!`); + return; + } + + try { + await invoke("launch_profile", { + profilePath: profilePath, + execPath: launchOptions.executablePath, + arguments: launchOptions.arguments + }); + } catch (e) { + showErrorDialog(e as string); + } +}; + +export const openInstallFolder = async (profile: Profile, profilePath: string): Promise => { + if (profile.type !== "application") { + showErrorDialog(`Cannot open install folder of type "${profile.type}"!`); + return; + } + + try { + await invoke("open_folder_profile", { + profilePath: profilePath + }); + } catch (e) { + showErrorDialog(e as string); + } +}; From 7309840f0f8cbcace0b4ade6c5a7172d4d03d9d4 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Wed, 7 Aug 2024 17:51:49 -0400 Subject: [PATCH 30/98] Redid a bunch of CSS --- src/components/Button/Button.module.css | 79 +++++++------------ src/components/Button/index.tsx | 37 +++++---- .../DropdownButton/DropdownButton.module.css | 10 +-- .../LoadingScreen/LoadingScreen.module.css | 4 +- .../Onboarding/Onboarding.module.css | 2 +- src/components/Sidebar/Sidebar.module.css | 4 +- .../Sidebar/Versions/Versions.module.css | 6 +- src/components/TitleBar/titlebar.module.css | 12 +-- src/routes/ErrorScreen/ErrorScreen.module.css | 6 +- src/routes/Queue/index.tsx | 3 +- src/styles.css | 47 +++++------ 11 files changed, 101 insertions(+), 109 deletions(-) diff --git a/src/components/Button/Button.module.css b/src/components/Button/Button.module.css index 659751d..95bba21 100644 --- a/src/components/Button/Button.module.css +++ b/src/components/Button/Button.module.css @@ -1,17 +1,8 @@ .button { - --borderRadius: 8px; - background: none; + --borderRadius: 12px; + padding: 15px; position: relative; - isolation: isolate; - - /* Masking works WAY better than below */ - /*overflow: none;*/ - mask: linear-gradient(#000 0 0); - - border: none; - border-radius: var(--borderRadius); - padding: 0; font-size: 14px; font-weight: 700; @@ -19,58 +10,48 @@ cursor: pointer; user-select: none; -} -.bottom, -.top { - padding: 15px; + background: var(--background); + color: var(--color); + border-radius: var(--borderRadius); - display: flex; - gap: 10px; - justify-content: center; - align-items: center; - width: 100%; - height: 100%; + border: 2px solid transparent; } -.bottom { - position: relative; - background: var(--sideBar_background); - color: var(--primary); - z-index: 1; - border-radius: calc(var(--borderRadius) + 2px); +.border { + border: 2px solid var(--border); } -.top { - position: absolute; - background: var(--background); - color: var(--color); - z-index: 2; - transition: clip-path .3s ease; - clip-path: inset(0 calc(100% - var(--progress)) 0 0); +.rounded { + --borderRadius: 50px; } -.colors_green { - --background: var(--button_green); - --color: var(--buttonText_green); +.colorsGreen { + --background: var(--buttonGreen); + --color: var(--buttonGreenText); + --border: var(--buttonLightBorder); } -.colors_blue { - --background: var(--button_blue); - --color: var(--buttonText_blue); +.colorsBlue { + --background: var(--buttonBlue); + --color: var(--buttonBlueText); + --border: var(--buttonLightBorder); } -.colors_yellow { - --background: var(--button_yellow); - --color: var(--buttonText_yellow); +.colorsYellow { + --background: var(--buttonYellow); + --color: var(--buttonYellowText); + --border: var(--buttonLightBorder); } -.colors_gray { - --background: var(--button_gray); - --color: var(--buttonText_gray); +.colorsGray { + --background: var(--buttonGray); + --color: var(--buttonGrayText); + --border: var(--buttonDarkBorder); } -.colors_red { - --background: var(--button_red); - --color: var(--buttonText_red); +.colorsRed { + --background: var(--buttonRed); + --color: var(--buttonRedText); + --border: var(--buttonLightBorder); } diff --git a/src/components/Button/index.tsx b/src/components/Button/index.tsx index 8496414..3c65ddc 100644 --- a/src/components/Button/index.tsx +++ b/src/components/Button/index.tsx @@ -19,52 +19,59 @@ export type ButtonProps = React.PropsWithChildren<{ style?: React.CSSProperties, onClick?: React.MouseEventHandler, + border?: boolean, + rounded?: boolean, color?: ButtonColor, - progress?: number, + width?: number, height?: number, }>; const Button: React.FC = (props: ButtonProps) => { // Get the button color class - let colorClass; + let classes; switch (props.color) { case ButtonColor.BLUE: - colorClass = styles.colors_blue; + classes = [styles.colorsBlue]; break; case ButtonColor.GREEN: - colorClass = styles.colors_green; + classes = [styles.colorsGreen]; break; case ButtonColor.YELLOW: - colorClass = styles.colors_yellow; + classes = [styles.colorsYellow]; break; case ButtonColor.GRAY: - colorClass = styles.colors_gray; + classes = [styles.colorsGray]; break; case ButtonColor.BLACK: - colorClass = styles.colors_black; + classes = [styles.colorsBlack]; break; case ButtonColor.RED: - colorClass = styles.colors_red; + classes = [styles.colorsRed]; break; default: - colorClass = styles.colors_blue; + classes = [styles.colorsBlue]; break; } + if (props.border) { + classes.push(styles.border); + } + + if (props.rounded) { + classes.push(styles.rounded); + } + // Get the styles const newStyles = { width: props.width, height: props.height, ...props.style, - - "--progress": props.progress ? `${props.progress}%` : undefined } as ButtonCSS; - return ; }; -export default Button; \ No newline at end of file +export default Button; diff --git a/src/components/DropdownButton/DropdownButton.module.css b/src/components/DropdownButton/DropdownButton.module.css index acd2533..c736e44 100644 --- a/src/components/DropdownButton/DropdownButton.module.css +++ b/src/components/DropdownButton/DropdownButton.module.css @@ -29,14 +29,14 @@ gap: 10px; flex-shrink: 0; - background: var(--sideBar_background); + background: var(--sideBarBackground); border: none; cursor: pointer; } .dropdown_content { width: 300px; - background: var(--sideBar_background); + background: var(--sideBarBackground); border-radius: 8px; padding: 5px; @@ -67,9 +67,9 @@ } .dropdown_item[data-highlighted] { - background: var(--sideBar_selection); + background: var(--sideBarSelection); } .dropdown_arrow { - fill: var(--sideBar_background); -} \ No newline at end of file + fill: var(--sideBarBackground); +} diff --git a/src/components/LoadingScreen/LoadingScreen.module.css b/src/components/LoadingScreen/LoadingScreen.module.css index a2d0fe1..2c2d98a 100644 --- a/src/components/LoadingScreen/LoadingScreen.module.css +++ b/src/components/LoadingScreen/LoadingScreen.module.css @@ -10,7 +10,7 @@ flex: 1 0 0; align-self: stretch; - background: var(--sideBar_background); + background: var(--sideBarBackground); color: #FFF; font-size: 16px; @@ -77,4 +77,4 @@ to { width: 100%; } -} \ No newline at end of file +} diff --git a/src/components/Onboarding/Onboarding.module.css b/src/components/Onboarding/Onboarding.module.css index 90802c0..98d8666 100644 --- a/src/components/Onboarding/Onboarding.module.css +++ b/src/components/Onboarding/Onboarding.module.css @@ -3,7 +3,7 @@ inset: 0; top: 30px; - background: var(--sideBar_background); + background: var(--sideBarBackground); color: white; z-index: 9999; diff --git a/src/components/Sidebar/Sidebar.module.css b/src/components/Sidebar/Sidebar.module.css index a25ef29..b18f68d 100644 --- a/src/components/Sidebar/Sidebar.module.css +++ b/src/components/Sidebar/Sidebar.module.css @@ -2,7 +2,7 @@ width: 300px; padding: 15px; - background: var(--sideBar_background); + background: var(--sideBarBackground); color: var(--primary); display: flex; @@ -80,4 +80,4 @@ align-items: center; font-size: 16px; font-weight: 600; -} \ No newline at end of file +} diff --git a/src/components/Sidebar/Versions/Versions.module.css b/src/components/Sidebar/Versions/Versions.module.css index 0a237bc..43dffd5 100644 --- a/src/components/Sidebar/Versions/Versions.module.css +++ b/src/components/Sidebar/Versions/Versions.module.css @@ -15,7 +15,7 @@ font-size: 14px; font-weight: 700; text-transform: uppercase; - color: var(--sideBar_separator_color); + color: var(--sideBarSeparatorColor); } .separator .right { @@ -26,7 +26,7 @@ .add { height: 15px; - color: var(--sideBar_separator_color); + color: var(--sideBarSeparatorColor); opacity: 0.25; margin-left: auto; -} \ No newline at end of file +} diff --git a/src/components/TitleBar/titlebar.module.css b/src/components/TitleBar/titlebar.module.css index 1576ac1..b607d55 100644 --- a/src/components/TitleBar/titlebar.module.css +++ b/src/components/TitleBar/titlebar.module.css @@ -1,6 +1,6 @@ .title_bar { - background: var(--titleBar_background); - color: var(--titleBar_primary); + background: var(--titleBarBackground); + color: var(--titleBarPrimary); user-select: none; height: 30px; @@ -15,11 +15,11 @@ .text { display: flex; gap: 10px; - color: var(--titleBar_accent); + color: var(--titleBarAccent); } .text span:first-of-type { - color: var(--titleBar_primary); + color: var(--titleBarPrimary); } .buttons { @@ -37,9 +37,9 @@ } .button:hover { - background: var(--titleBar_accent); + background: var(--titleBarAccent); } .button svg { height: 12px; -} \ No newline at end of file +} diff --git a/src/routes/ErrorScreen/ErrorScreen.module.css b/src/routes/ErrorScreen/ErrorScreen.module.css index 280093e..fc8a14a 100644 --- a/src/routes/ErrorScreen/ErrorScreen.module.css +++ b/src/routes/ErrorScreen/ErrorScreen.module.css @@ -1,6 +1,6 @@ .error { - background: var(--titleBar_background); - color: var(--titleBar_accent); + background: var(--titleBarBackground); + color: var(--titleBarAccent); display: flex; flex-direction: column; @@ -30,4 +30,4 @@ text-transform: uppercase; color: white; cursor: pointer; -} \ No newline at end of file +} diff --git a/src/routes/Queue/index.tsx b/src/routes/Queue/index.tsx index 593bbff..0d678e6 100644 --- a/src/routes/Queue/index.tsx +++ b/src/routes/Queue/index.tsx @@ -7,6 +7,7 @@ import { InstallingIcon, QueueListIcon } from "@app/assets/Icons"; import QueueStore from "@app/tasks/queue"; import { usePayload } from "@app/tasks/payload"; import { useCurrentTask } from "@app/tasks"; +import Button, { ButtonColor } from "@app/components/Button"; function Queue() { // These are for the "You've been staring at this blank page for..." @@ -90,4 +91,4 @@ function Queue() { ; } -export default Queue; \ No newline at end of file +export default Queue; diff --git a/src/styles.css b/src/styles.css index 688253a..8d9000f 100644 --- a/src/styles.css +++ b/src/styles.css @@ -15,26 +15,29 @@ --green: rgb(var(--green-rgb)); --green-10: rgba(var(--green-rgb), .1); - --titleBar_background: #000209; - --titleBar_primary: #FFF; - --titleBar_accent: #868AA8; - --titleBar_height: 30px; - - --sideBar_background: #05060B; - --sideBar_separator_color: #394452; - --sideBar_selection: rgba(255, 255, 255, 0.1); - - --button_green: #46E74F; - --button_blue: #2ED9FF; - --button_yellow: #FFB800; - --button_gray: #E6E6E6; - --button_red: #F32B37; - - --buttonText_green: #003C03; - --buttonText_blue: #002A3D; - --buttonText_yellow: #351A00; - --buttonText_gray: #737373; - --buttonText_red: #FFF; + --titleBarBackground: #000209; + --titleBarPrimary: #FFF; + --titleBarAccent: #868AA8; + --titleBarHeight: 30px; + + --sideBarBackground: #05060B; + --sideBarSeparatorColor: #394452; + --sideBarSelection: rgba(255, 255, 255, 0.1); + + --buttonGreen: #17E289; + --buttonBlue: #2ED9FF; + --buttonYellow: #FCD548; + --buttonGray: #0F121D; + --buttonRed: #F32B37; + + --buttonGreenText: #005832; + --buttonBlueText: #03596B; + --buttonYellowText: #4F2600; + --buttonGrayText: #E0E1E7; + --buttonRedText: #FFF; + + --buttonLightBorder: rgba(255, 255, 255, 0.4); + --buttonDarkBorder: #222638; } * { @@ -82,7 +85,7 @@ a { width: 100%; height: 100%; display: flex; - padding-top: var(--titleBar_height); + padding-top: var(--titleBarHeight); } #content { @@ -105,4 +108,4 @@ a { ::-webkit-scrollbar-thumb:hover { background: #666; -} \ No newline at end of file +} From 1859d6acc4680313f56829fef4bd6603f2ea3cf0 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Wed, 7 Aug 2024 17:59:38 -0400 Subject: [PATCH 31/98] Fix profile state loading before the launcher does --- src/hooks/useProfileState.ts | 10 +++++++--- src/routes/Queue/index.tsx | 1 - 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/hooks/useProfileState.ts b/src/hooks/useProfileState.ts index 91942a1..17f43c2 100644 --- a/src/hooks/useProfileState.ts +++ b/src/hooks/useProfileState.ts @@ -38,8 +38,7 @@ export const useProfileState = (profileUUID: string): ProfileState => { const currentTask = useTask(profileUUID); const profile = profiles.getProfileByUUID(profileUUID); - if (profile === undefined || profiles.importantDirs === undefined) { - // TODO: Better error handeling here + if (profile === undefined) { throw new Error("Undefined profile"); } @@ -51,6 +50,11 @@ export const useProfileState = (profileUUID: string): ProfileState => { setProfilePath(""); setFolderState(0); + // If the important directories aren't loaded yet, wait for them to + if (profiles.importantDirs === undefined) { + return; + } + (async () => { const path = await getPathForProfile(profiles, profile); const result = await invoke("profile_folder_state", { @@ -62,7 +66,7 @@ export const useProfileState = (profileUUID: string): ProfileState => { setProfilePath(path); setLoading(false); })(); - }, [profileUUID]); + }, [profiles.importantDirs, profileUUID]); return { loading, diff --git a/src/routes/Queue/index.tsx b/src/routes/Queue/index.tsx index 0d678e6..ed472ed 100644 --- a/src/routes/Queue/index.tsx +++ b/src/routes/Queue/index.tsx @@ -7,7 +7,6 @@ import { InstallingIcon, QueueListIcon } from "@app/assets/Icons"; import QueueStore from "@app/tasks/queue"; import { usePayload } from "@app/tasks/payload"; import { useCurrentTask } from "@app/tasks"; -import Button, { ButtonColor } from "@app/components/Button"; function Queue() { // These are for the "You've been staring at this blank page for..." From 178e09710ebb9f8440af793a82c5ebb82ccc1cef Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Wed, 7 Aug 2024 18:00:57 -0400 Subject: [PATCH 32/98] Fixed up button styling --- src/components/Button/Button.module.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/components/Button/Button.module.css b/src/components/Button/Button.module.css index 95bba21..21c2de6 100644 --- a/src/components/Button/Button.module.css +++ b/src/components/Button/Button.module.css @@ -16,6 +16,11 @@ border-radius: var(--borderRadius); border: 2px solid transparent; + + display: flex; + gap: 10px; + justify-content: center; + align-items: center; } .border { From 7420a3447f6564dc0a9b4a97d23231cc737d093b Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Wed, 7 Aug 2024 18:29:40 -0400 Subject: [PATCH 33/98] Started new profile page --- src/assets/Icons/Verified.svg | 6 ++ src/assets/Icons/index.ts | 8 ++- src/profiles/store.ts | 4 +- src/routes/AppProfile/AppProfile.module.css | 61 +++++++++++++++++++++ src/routes/AppProfile/index.tsx | 35 ++++++++---- 5 files changed, 97 insertions(+), 17 deletions(-) create mode 100644 src/assets/Icons/Verified.svg create mode 100644 src/routes/AppProfile/AppProfile.module.css diff --git a/src/assets/Icons/Verified.svg b/src/assets/Icons/Verified.svg new file mode 100644 index 0000000..668d1e4 --- /dev/null +++ b/src/assets/Icons/Verified.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/Icons/index.ts b/src/assets/Icons/index.ts index 3264f56..39d3d14 100644 --- a/src/assets/Icons/index.ts +++ b/src/assets/Icons/index.ts @@ -1,7 +1,7 @@ /** * Note for adding new icons: * For auto-converting SVG to React Components, we're currently using vite-plugin-svgr. - * When referencing the path for the svg, insert "?react" at the end of the path to auto-convert into a React Component. + * When referencing the path for the svg, insert "?react" at the end of the path to auto-convert into a React Component. * Also if possible, replace the static colors inside the SVG file with "currentColor" for dynamic color. */ @@ -32,6 +32,7 @@ import UnknownUserIcon from "./UnknownUser.svg?react"; import BackIcon from "./Back.svg?react"; import WarningIcon from "./Warning.svg?react"; import DropdownIcon from "./Dropdown.svg?react"; +import VerifiedIcon from "./Verified.svg?react"; export { AddIcon, @@ -60,5 +61,6 @@ export { UnknownUserIcon, BackIcon, WarningIcon, - DropdownIcon -}; \ No newline at end of file + DropdownIcon, + VerifiedIcon +}; diff --git a/src/profiles/store.ts b/src/profiles/store.ts index 302889b..c97dfa8 100644 --- a/src/profiles/store.ts +++ b/src/profiles/store.ts @@ -38,8 +38,8 @@ export const useProfileStore = create()((set, get) => ({ description: "This is the stable verison of YARG", - iconUrl: "", - bannerBackUrl: "" + iconUrl: "/src/assets/StableYARGIcon.png", + bannerBackUrl: "/src/assets/Banner/Stable.png" } }, releaseDate: new Date(), diff --git a/src/routes/AppProfile/AppProfile.module.css b/src/routes/AppProfile/AppProfile.module.css new file mode 100644 index 0000000..c9e112c --- /dev/null +++ b/src/routes/AppProfile/AppProfile.module.css @@ -0,0 +1,61 @@ +.main { + display: flex; + flex-direction: column; + align-items: flex-start; + flex: 1 0 0; + align-self: stretch; +} + +.bannerContainer { + display: flex; + flex-direction: column; + align-items: flex-start; + align-self: stretch; + + background: linear-gradient(241deg, rgba(0, 0, 0, 0.00) 14.98%, #000 107.9%), + var(--bannerBack) lightgray 50% / cover no-repeat; +} + +.bannerApp { + display: flex; + padding: 30px; + align-items: center; + gap: 25px; + align-self: stretch; +} + +.bannerApp > img { + width: 100px; + height: 100px; + border-radius: 16px; +} + +.bannerApp > div { + display: flex; + flex-direction: column; + justify-content: center; + align-items: flex-start; + gap: 10px; + + color: #FFF; + font-size: 30px; + font-weight: 700; + text-transform: uppercase; +} + +.verifiedTag { + display: flex; + height: 31px; + padding: 12px 5px 12px 10px; + justify-content: center; + align-items: center; + gap: 5px; + + border-radius: 38px; + border: 1px solid rgba(255, 255, 255, 0.30); + background: rgba(0, 0, 0, 0.50); + + color: #BDBDBD; + font-size: 15px; + font-weight: 700; +} diff --git a/src/routes/AppProfile/index.tsx b/src/routes/AppProfile/index.tsx index 1de9d80..9ac210f 100644 --- a/src/routes/AppProfile/index.tsx +++ b/src/routes/AppProfile/index.tsx @@ -1,6 +1,7 @@ import { useParams } from "react-router-dom"; -import { useProfileStore } from "@app/profiles/store"; -import { LaunchButton } from "@app/components/Launch/LaunchButton"; +import { useProfileState } from "@app/hooks/useProfileState"; +import styles from "./AppProfile.module.css"; +import { VerifiedIcon } from "@app/assets/Icons"; function AppProfile() { const { uuid } = useParams(); @@ -8,19 +9,29 @@ function AppProfile() { return <>; } - const profileStore = useProfileStore(); - const profile = profileStore.getProfileByUUID(uuid); - if (!profile) { + const profileState = useProfileState(uuid); + const profile = profileState.profile; + if (profileState.loading) { return <>; } - return
-

{uuid}

-

{profile.metadata.locales["en-US"].name}

-

{profile.version}

-

{profile.metadata.locales["en-US"].description}

- -
; + const metadata = profile.metadata.locales["en-US"]; + + return
+
+ +
+ {metadata.name} +
+
+ Official Build +
+ {metadata.name} +
+
+
+
; } export default AppProfile; From 93abadda747f1dab404bab1ad15888f6b20f64af Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Wed, 7 Aug 2024 18:32:01 -0400 Subject: [PATCH 34/98] Reorganized profile assets --- .../{Banner => Profiles/Banners}/Development.png | Bin src/assets/{Banner => Profiles/Banners}/Nightly.png | Bin .../Banners/SetlistBack.png} | Bin .../Banners/SetlistFront.png} | Bin src/assets/{Banner => Profiles/Banners}/Stable.png | Bin .../Icons/Development.png} | Bin .../Icons/Nightly.png} | Bin .../Official.png => Profiles/Icons/Setlist.png} | Bin .../Icons/Stable.png} | Bin src/profiles/store.ts | 4 ++-- 10 files changed, 2 insertions(+), 2 deletions(-) rename src/assets/{Banner => Profiles/Banners}/Development.png (100%) rename src/assets/{Banner => Profiles/Banners}/Nightly.png (100%) rename src/assets/{Banner/OfficialBanner.png => Profiles/Banners/SetlistBack.png} (100%) rename src/assets/{Banner/OfficialLogo.png => Profiles/Banners/SetlistFront.png} (100%) rename src/assets/{Banner => Profiles/Banners}/Stable.png (100%) rename src/assets/{DevYARGIcon.png => Profiles/Icons/Development.png} (100%) rename src/assets/{NightlyYARGIcon.png => Profiles/Icons/Nightly.png} (100%) rename src/assets/{SourceIcons/Official.png => Profiles/Icons/Setlist.png} (100%) rename src/assets/{StableYARGIcon.png => Profiles/Icons/Stable.png} (100%) diff --git a/src/assets/Banner/Development.png b/src/assets/Profiles/Banners/Development.png similarity index 100% rename from src/assets/Banner/Development.png rename to src/assets/Profiles/Banners/Development.png diff --git a/src/assets/Banner/Nightly.png b/src/assets/Profiles/Banners/Nightly.png similarity index 100% rename from src/assets/Banner/Nightly.png rename to src/assets/Profiles/Banners/Nightly.png diff --git a/src/assets/Banner/OfficialBanner.png b/src/assets/Profiles/Banners/SetlistBack.png similarity index 100% rename from src/assets/Banner/OfficialBanner.png rename to src/assets/Profiles/Banners/SetlistBack.png diff --git a/src/assets/Banner/OfficialLogo.png b/src/assets/Profiles/Banners/SetlistFront.png similarity index 100% rename from src/assets/Banner/OfficialLogo.png rename to src/assets/Profiles/Banners/SetlistFront.png diff --git a/src/assets/Banner/Stable.png b/src/assets/Profiles/Banners/Stable.png similarity index 100% rename from src/assets/Banner/Stable.png rename to src/assets/Profiles/Banners/Stable.png diff --git a/src/assets/DevYARGIcon.png b/src/assets/Profiles/Icons/Development.png similarity index 100% rename from src/assets/DevYARGIcon.png rename to src/assets/Profiles/Icons/Development.png diff --git a/src/assets/NightlyYARGIcon.png b/src/assets/Profiles/Icons/Nightly.png similarity index 100% rename from src/assets/NightlyYARGIcon.png rename to src/assets/Profiles/Icons/Nightly.png diff --git a/src/assets/SourceIcons/Official.png b/src/assets/Profiles/Icons/Setlist.png similarity index 100% rename from src/assets/SourceIcons/Official.png rename to src/assets/Profiles/Icons/Setlist.png diff --git a/src/assets/StableYARGIcon.png b/src/assets/Profiles/Icons/Stable.png similarity index 100% rename from src/assets/StableYARGIcon.png rename to src/assets/Profiles/Icons/Stable.png diff --git a/src/profiles/store.ts b/src/profiles/store.ts index c97dfa8..7710ecc 100644 --- a/src/profiles/store.ts +++ b/src/profiles/store.ts @@ -38,8 +38,8 @@ export const useProfileStore = create()((set, get) => ({ description: "This is the stable verison of YARG", - iconUrl: "/src/assets/StableYARGIcon.png", - bannerBackUrl: "/src/assets/Banner/Stable.png" + iconUrl: "/src/assets/Profiles/Icons/Stable.png", + bannerBackUrl: "/src/assets/Profiles/Banners/Stable.png" } }, releaseDate: new Date(), From 6aeaa05072d6cfa30a2642c7ab3b7fc17d171130 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Wed, 7 Aug 2024 18:50:43 -0400 Subject: [PATCH 35/98] Added launch button back --- src/components/Button/Button.module.css | 1 + .../DropdownButton/DropdownButton.module.css | 0 .../{ => Button}/DropdownButton/index.tsx | 2 +- src/components/Launch/LaunchButton/index.tsx | 136 ------------------ src/routes/AppProfile/AppProfile.module.css | 37 +++++ src/routes/AppProfile/LaunchButton.tsx | 82 +++++++++++ src/routes/AppProfile/index.tsx | 15 ++ 7 files changed, 136 insertions(+), 137 deletions(-) rename src/components/{ => Button}/DropdownButton/DropdownButton.module.css (100%) rename src/components/{ => Button}/DropdownButton/index.tsx (97%) delete mode 100644 src/components/Launch/LaunchButton/index.tsx create mode 100644 src/routes/AppProfile/LaunchButton.tsx diff --git a/src/components/Button/Button.module.css b/src/components/Button/Button.module.css index 21c2de6..962f1e3 100644 --- a/src/components/Button/Button.module.css +++ b/src/components/Button/Button.module.css @@ -29,6 +29,7 @@ .rounded { --borderRadius: 50px; + padding: 15px 35px; } .colorsGreen { diff --git a/src/components/DropdownButton/DropdownButton.module.css b/src/components/Button/DropdownButton/DropdownButton.module.css similarity index 100% rename from src/components/DropdownButton/DropdownButton.module.css rename to src/components/Button/DropdownButton/DropdownButton.module.css diff --git a/src/components/DropdownButton/index.tsx b/src/components/Button/DropdownButton/index.tsx similarity index 97% rename from src/components/DropdownButton/index.tsx rename to src/components/Button/DropdownButton/index.tsx index 8465f50..ec2586e 100644 --- a/src/components/DropdownButton/index.tsx +++ b/src/components/Button/DropdownButton/index.tsx @@ -1,5 +1,5 @@ import { DropdownIcon } from "@app/assets/Icons"; -import Button, { ButtonProps } from "../Button"; +import Button, { ButtonProps } from ".."; import styles from "./DropdownButton.module.css"; import * as DropdownMenu from "@radix-ui/react-dropdown-menu"; diff --git a/src/components/Launch/LaunchButton/index.tsx b/src/components/Launch/LaunchButton/index.tsx deleted file mode 100644 index 60e4f55..0000000 --- a/src/components/Launch/LaunchButton/index.tsx +++ /dev/null @@ -1,136 +0,0 @@ -import { ButtonColor } from "../../Button"; -import { InstallingIcon, UpdateIcon } from "@app/assets/Icons"; -import Button from "@app/components/Button"; -import { DropdownButton, DropdownItem } from "@app/components/DropdownButton"; -import { ProfileFolderState, useProfileState } from "@app/hooks/useProfileState"; - -interface LaunchButtonProps extends React.PropsWithChildren { - profileUUID: string, - style?: React.CSSProperties -} - -export function LaunchButton({ profileUUID, ...props }: LaunchButtonProps) { - const { - loading, - profile, - folderState, - currentTask, - downloadAndInstall, - uninstall, - launch, - openInstallFolder - } = useProfileState(profileUUID); - - if (loading) { - return ; - } - - let releaseName = ""; - if (profile.type === "application") { - releaseName = profile.metadata.locales["en-US"].releaseName; - } - - if (currentTask !== undefined) { - const buttonChildren = <> - - Installing... - {/* */} - ; - - return ; - } - - if (folderState === ProfileFolderState.UpdateRequired || folderState === ProfileFolderState.FirstDownload) { - let buttonChildren; - if (folderState === ProfileFolderState.UpdateRequired) { - buttonChildren = <> - Update {releaseName} - ; - } else { - buttonChildren = <> - Install {releaseName} - ; - } - - return ; - } - - if (folderState === ProfileFolderState.UpToDate) { - let buttonChildren; - if (profile.type === "application") { - buttonChildren = <> - Launch {releaseName} - ; - } else { - buttonChildren = <> - Installed - ; - } - - const dropdownChildren = <> - await uninstall()}> - Uninstall - - {profile.type === "application" && - await openInstallFolder()}> - Open Install Folder - - } - ; - - return await launch()} - dropdownChildren={dropdownChildren}> - - {buttonChildren} - ; - } - - // if (folderState === ProfileFolderState) { - // const buttonChildren = <> - // Opening YARG {playName} - // ; - - // return ; - // } - - if (folderState === ProfileFolderState.Error) { - const buttonChildren = <> - Error! - ; - - return ; - } - - return ; -} diff --git a/src/routes/AppProfile/AppProfile.module.css b/src/routes/AppProfile/AppProfile.module.css index c9e112c..bf6f8a5 100644 --- a/src/routes/AppProfile/AppProfile.module.css +++ b/src/routes/AppProfile/AppProfile.module.css @@ -59,3 +59,40 @@ font-size: 15px; font-weight: 700; } + +.bannerOptions { + display: flex; + padding: 15px; + justify-content: space-between; + align-items: center; + align-self: stretch; + + background: rgba(0, 0, 0, 0.75); + backdrop-filter: blur(5px); +} + +.bannerOptionsStats { + display: flex; + align-items: center; + gap: 50px; +} + +.bannerOptionsStats > div { + display: flex; + align-items: center; + gap: 10px; + + color: #C0C3CD; + font-size: 16px; + font-weight: 400; +} + +.bannerOptionsMain { + display: flex; + align-items: center; + gap: 15px; +} + +.bannerOptionsMain > button { + font-size: 16px; +} diff --git a/src/routes/AppProfile/LaunchButton.tsx b/src/routes/AppProfile/LaunchButton.tsx new file mode 100644 index 0000000..b4e557e --- /dev/null +++ b/src/routes/AppProfile/LaunchButton.tsx @@ -0,0 +1,82 @@ +import { ButtonColor } from "@app/components/Button"; +import { InstallingIcon, UpdateIcon } from "@app/assets/Icons"; +import Button from "@app/components/Button"; +import { ProfileFolderState, ProfileState } from "@app/hooks/useProfileState"; + +interface Props { + profileState: ProfileState +} + +export function LaunchButton({ profileState }: Props) { + const { + loading, + profile, + folderState, + currentTask, + downloadAndInstall, + launch, + } = profileState; + + // Loading button + if (loading) { + return ; + } + + let releaseName = ""; + if (profile.type === "application") { + releaseName = profile.metadata.locales["en-US"].releaseName; + } + + // Installing button + if (currentTask !== undefined) { + return ; + } + + // Update/install button + if (folderState === ProfileFolderState.UpdateRequired || folderState === ProfileFolderState.FirstDownload) { + return ; + } + + // Launch/up-to-date button + if (folderState === ProfileFolderState.UpToDate) { + return ; + } + + // Errored button + if (folderState === ProfileFolderState.Error) { + return ; + } + + return ; +} diff --git a/src/routes/AppProfile/index.tsx b/src/routes/AppProfile/index.tsx index 9ac210f..aebe2e6 100644 --- a/src/routes/AppProfile/index.tsx +++ b/src/routes/AppProfile/index.tsx @@ -2,6 +2,8 @@ import { useParams } from "react-router-dom"; import { useProfileState } from "@app/hooks/useProfileState"; import styles from "./AppProfile.module.css"; import { VerifiedIcon } from "@app/assets/Icons"; +import Button from "@app/components/Button"; +import { LaunchButton } from "./LaunchButton"; function AppProfile() { const { uuid } = useParams(); @@ -30,6 +32,19 @@ function AppProfile() { {metadata.name}
+
+
+ {/*
+ Last played 3 days ago +
+
+ 400 hours played +
*/} +
+
+ +
+
; } From 004020642595746a3e4e145d1a428a8ff7704635 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Thu, 8 Aug 2024 16:26:36 -0400 Subject: [PATCH 36/98] Big profile type changes --- src-tauri/src/main.rs | 34 +++-- src-tauri/src/types.rs | 4 +- src/components/Queue/QueueEntry/index.tsx | 6 +- src/components/Sidebar/Versions/List.tsx | 6 +- src/hooks/useProfileState.ts | 30 +++-- src/profiles/actions.ts | 9 +- src/profiles/store.ts | 101 ++++++-------- src/profiles/types.ts | 124 +++++++++++------- src/profiles/utils.ts | 24 ++++ src/routes/AppProfile/LaunchButton.tsx | 3 +- src/routes/AppProfile/index.tsx | 6 +- src/settings.ts | 4 +- .../Processors/DownloadAndInstallTask.tsx | 21 +-- src/tasks/Processors/UninstallTask.tsx | 7 +- src/utils/localized.ts | 40 ++++++ 15 files changed, 252 insertions(+), 167 deletions(-) create mode 100644 src/profiles/utils.ts create mode 100644 src/utils/localized.ts diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 80fdf00..489a6e2 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -78,25 +78,25 @@ fn is_dir_empty(path: String) -> bool { } #[tauri::command(async)] -fn profile_folder_state(path: String, profile_version: String) -> ProfileFolderState { - let mut version_file = PathBuf::from(&path); - version_file.push("version.txt"); +fn profile_folder_state(path: String, wanted_tag: String) -> ProfileFolderState { + let mut tag_file = PathBuf::from(&path); + tag_file.push("tag.txt"); - let version_file_exists = version_file.try_exists(); - if let Ok(exists) = version_file_exists { + let tag_file_exists = tag_file.try_exists(); + if let Ok(exists) = tag_file_exists { if !exists { return ProfileFolderState::FirstDownload; } - let version = fs::read_to_string(version_file); - if let Ok(version_string) = version { - if version_string.trim() == profile_version { + let tag = fs::read_to_string(tag_file); + if let Ok(tag_string) = tag { + if tag_string.trim() == wanted_tag { return ProfileFolderState::UpToDate; } else { return ProfileFolderState::UpdateRequired; } } else { - println!("Failed to read version file at `{}`", path); + println!("Failed to read tag file at `{}`", path); return ProfileFolderState::Error; } } else { @@ -108,7 +108,7 @@ fn profile_folder_state(path: String, profile_version: String) -> ProfileFolderS // when i was getting disk space in rust i used "free_space" from the fs2 crate because it takes a path and works out what drive that would be #[tauri::command(async)] -async fn download_and_install_profile(handle: AppHandle, profile_path: String, uuid: String, version: String, +async fn download_and_install_profile(handle: AppHandle, profile_path: String, uuid: String, tag: String, temp_path: String, content: Vec) -> Result<(), String> { let mut temp_file = PathBuf::from(&temp_path); @@ -142,11 +142,9 @@ async fn download_and_install_profile(handle: AppHandle, profile_path: String, u } } - let mut version_file = PathBuf::from(&profile_path); - version_file.push("version.txt"); - - // Write version.txt file - fs::write(&version_file, version).map_err(|e| format!("Failed to write version file.\n{:?}", e))?; + let mut tag_file = PathBuf::from(&profile_path); + tag_file.push("tag.txt"); + fs::write(&tag_file, tag).map_err(|e| format!("Failed to write tag file.\n{:?}", e))?; Ok(()) } @@ -157,9 +155,9 @@ fn uninstall_profile(profile_path: String) -> Result<(), String> { install_path.push("installation"); clear_folder(&install_path)?; - let mut version_file = PathBuf::from(&profile_path); - version_file.push("version.txt"); - fs::remove_file(version_file).map_err(|e| format!("Failed to remove version file.\n{:?}", e))?; + let mut tag_file = PathBuf::from(&profile_path); + tag_file.push("tag.txt"); + fs::remove_file(tag_file).map_err(|e| format!("Failed to remove tag file.\n{:?}", e))?; Ok(()) } diff --git a/src-tauri/src/types.rs b/src-tauri/src/types.rs index f4d7ef8..fc6b24c 100644 --- a/src-tauri/src/types.rs +++ b/src-tauri/src/types.rs @@ -31,10 +31,10 @@ pub struct CustomDirs { pub setlist_folder: String, } +// WARNING: This type is also defined in TypeScript. Make sure to change it in both places! #[derive(Default, serde::Serialize, serde::Deserialize)] #[serde(rename_all = "camelCase")] pub struct ReleaseContent { - pub name: String, pub platforms: Vec, pub files: Vec, } @@ -43,8 +43,8 @@ pub struct ReleaseContent { #[serde(rename_all = "camelCase")] pub struct ReleaseContentFile { pub url: String, + pub sig_url: Option, pub file_type: String, - pub signature: Option, } #[derive(Serialize_repr, Deserialize_repr, PartialEq, Debug)] diff --git a/src/components/Queue/QueueEntry/index.tsx b/src/components/Queue/QueueEntry/index.tsx index 9a1efb3..2c7c7fb 100644 --- a/src/components/Queue/QueueEntry/index.tsx +++ b/src/components/Queue/QueueEntry/index.tsx @@ -5,11 +5,11 @@ interface Props { icon?: React.ReactNode; name?: string; releaseName?: string; - version?: string; + tag?: string; bannerMode: boolean; } -const QueueEntry: React.FC = ({ icon, name, releaseName, version, bannerMode }: Props) => { +const QueueEntry: React.FC = ({ icon, name, releaseName, tag, bannerMode }: Props) => { // Choose the right style let styles = stylesNormal; if (bannerMode) { @@ -20,7 +20,7 @@ const QueueEntry: React.FC = ({ icon, name, releaseName, version, bannerM
{icon}
- {name} {version} + {name} {tag} {releaseName}
diff --git a/src/components/Sidebar/Versions/List.tsx b/src/components/Sidebar/Versions/List.tsx index e88a5b2..f8e0010 100644 --- a/src/components/Sidebar/Versions/List.tsx +++ b/src/components/Sidebar/Versions/List.tsx @@ -3,6 +3,8 @@ import VersionSeparator from "./Separator"; import { AddIcon } from "@app/assets/Icons"; import { useProfileStore } from "@app/profiles/store"; import { NavLink } from "react-router-dom"; +import { localize } from "@app/utils/localized"; +import { ApplicationMetadata, SetlistMetadata } from "@app/profiles/types"; const ProfilesList: React.FC = () => { const profileStore = useProfileStore(); @@ -14,7 +16,7 @@ const ProfilesList: React.FC = () => { { profileStore.profiles.filter(i => i.type === "application").map(i => - {i.metadata.locales["en-US"].name} ({i.version}) + {localize(i.metadata as ApplicationMetadata, "name", "en-US")} ) } @@ -24,7 +26,7 @@ const ProfilesList: React.FC = () => { { profileStore.profiles.filter(i => i.type === "setlist").map(i => - {i.metadata.locales["en-US"].name} + {localize(i.metadata as SetlistMetadata, "name", "en-US")} ) } diff --git a/src/hooks/useProfileState.ts b/src/hooks/useProfileState.ts index 17f43c2..d9b12ef 100644 --- a/src/hooks/useProfileState.ts +++ b/src/hooks/useProfileState.ts @@ -1,6 +1,7 @@ import { downloadAndInstall, launch, openInstallFolder, uninstall } from "@app/profiles/actions"; import { getPathForProfile, useProfileStore } from "@app/profiles/store"; -import { Profile } from "@app/profiles/types"; +import { Profile, Version } from "@app/profiles/types"; +import { getProfileVersion } from "@app/profiles/utils"; import { useTask } from "@app/tasks"; import { IBaseTask } from "@app/tasks/Processors/base"; import { invoke } from "@tauri-apps/api"; @@ -14,18 +15,19 @@ export enum ProfileFolderState { } export interface ProfileState { - loading: boolean; + loading: boolean, - profile: Profile; - profilePath: string; + profile: Profile, + profilePath: string, - folderState: ProfileFolderState; - currentTask?: IBaseTask; + folderState: ProfileFolderState, + currentTask?: IBaseTask, + version: Version, - downloadAndInstall: () => Promise; - uninstall: () => Promise; - launch: () => Promise; - openInstallFolder: () => Promise; + downloadAndInstall: () => Promise, + uninstall: () => Promise, + launch: () => Promise, + openInstallFolder: () => Promise, } export const useProfileState = (profileUUID: string): ProfileState => { @@ -36,6 +38,7 @@ export const useProfileState = (profileUUID: string): ProfileState => { const [folderState, setFolderState] = useState(0); const currentTask = useTask(profileUUID); + const [version, setVersion] = useState({} as Version); const profile = profiles.getProfileByUUID(profileUUID); if (profile === undefined) { @@ -49,6 +52,7 @@ export const useProfileState = (profileUUID: string): ProfileState => { setLoading(true); setProfilePath(""); setFolderState(0); + setVersion({} as Version); // If the important directories aren't loaded yet, wait for them to if (profiles.importantDirs === undefined) { @@ -57,14 +61,17 @@ export const useProfileState = (profileUUID: string): ProfileState => { (async () => { const path = await getPathForProfile(profiles, profile); + const version = getProfileVersion(profile); + const result = await invoke("profile_folder_state", { path: path, - profileVersion: profile.version + wantedTag: version.tag }) as ProfileFolderState; setFolderState(result); setProfilePath(path); setLoading(false); + setVersion(version); })(); }, [profiles.importantDirs, profileUUID]); @@ -76,6 +83,7 @@ export const useProfileState = (profileUUID: string): ProfileState => { folderState, currentTask, + version, downloadAndInstall: async () => { if (loading) { diff --git a/src/profiles/actions.ts b/src/profiles/actions.ts index efa6fba..e193eea 100644 --- a/src/profiles/actions.ts +++ b/src/profiles/actions.ts @@ -6,6 +6,7 @@ import { UninstallTask } from "@app/tasks/Processors/UninstallTask"; import { getOS } from "@app/utils/os"; import { showErrorDialog } from "@app/dialogs/dialogUtil"; import { invoke } from "@tauri-apps/api"; +import { getProfileVersion } from "./utils"; export const downloadAndInstall = async (profile: Profile, profiles: ProfileStore, profilePath: string, onFinish?: () => void): Promise => { @@ -14,7 +15,9 @@ export const downloadAndInstall = async (profile: Profile, profiles: ProfileStor return; } - const task = new DownloadAndInstallTask(profile, profilePath, profiles.importantDirs.tempFolder, onFinish); + const version = getProfileVersion(profile); + const tempFolder = profiles.importantDirs.tempFolder; + const task = new DownloadAndInstallTask(profile, version, profilePath, tempFolder, onFinish); addTask(task); }; @@ -35,8 +38,10 @@ export const launch = async (profile: Profile, profilePath: string): Promise Profile | undefined, + getProfileByUUID: (uuid: string) => Profile | undefined, setDirs: (downloadLocation?: string) => Promise, } @@ -28,78 +28,51 @@ export const useProfileStore = create()((set, get) => ({ { type: "application", uuid: "2d78800c-1397-496a-83c1-50759607999a", - version: "v0.12.4", - metadata: { - locales: { - "en-US": { - name: "YARG", - releaseName: "Stable", - - description: "This is the stable verison of YARG", + name: "YARG", + description: "This is the stable version of YARG", + releaseName: "Stable", - iconUrl: "/src/assets/Profiles/Icons/Stable.png", - bannerBackUrl: "/src/assets/Profiles/Banners/Stable.png" - } - }, - releaseDate: new Date(), - websiteUrl: "https://yarg.in/" - }, + iconUrl: "/src/assets/Profiles/Icons/Stable.png", + bannerBackUrl: "/src/assets/Profiles/Banners/Stable.png", - content: [ - { - name: "YARG - Windows", - platforms: ["windows"], - files: [ - { - url: "https://github.com/YARC-Official/YARG/releases/download/v0.12.4/YARG_v0.12.4-Windows-x64.zip", - fileType: "zip" - } - ] - } - ], - launchOptions: { - "windows": { - executablePath: "./YARG.exe", - arguments: [] - } - } - }, - { - type: "setlist", - uuid: "f5d7d7e1-a2ae-4b0e-aa40-d5daf8ef6903", - version: "official-2024-06-12-0", + initialRelease: new Date(), - metadata: { - locales: { - "en-US": { - name: "YARG Official Setlist", - - description: "This is the official setlist for YARG", - - iconUrl: "", - bannerBackUrl: "" + links: { + "website": { + name: "Official Website", + url: "https://yarg.in" } }, - releaseDate: new Date(), - websiteUrl: "https://yarg.in/", - organizer: "Hububble", - credits: [] + localeOverrides: {}, }, - - content: [ - { - name: "YARG Official Setlist Songs", - platforms: ["windows", "macos", "linux"], - files: [ + version: { + type: "embedded", + + version: { + uuid: "c8d67887-019e-4662-ba1e-0f6ba1839a42", + tag: "v0.12.4", + release: new Date(), + content: [ { - url: "https://github.com/YARC-Official/Official-Setlist-Public/releases/download/official-2024-06-12-0/official_0.7z", - fileType: "encrypted" + platforms: ["windows"], + files: [ + { + url: "https://github.com/YARC-Official/YARG/releases/download/v0.12.4/YARG_v0.12.4-Windows-x64.zip", + fileType: "zip" + } + ] + } + ], + launchOptions: { + "windows": { + executablePath: "./YARG.exe", + arguments: [] } - ] + } } - ] + }, } ], getProfileByUUID: (uuid) => { @@ -112,6 +85,7 @@ export const useProfileStore = create()((set, get) => ({ set({ importantDirs: importantDirs }); + return get(); } else { // If the download location is empty for whatever reason, just set it to the default one @@ -127,7 +101,8 @@ export const useProfileStore = create()((set, get) => ({ importantDirs: importantDirs, customDirs: customDirs }); - return get(); // This function returns the profile store itself because this does not immediately update it for the rest of the scope. + + return get(); } } })); diff --git a/src/profiles/types.ts b/src/profiles/types.ts index 0578086..0e4170d 100644 --- a/src/profiles/types.ts +++ b/src/profiles/types.ts @@ -1,42 +1,30 @@ +import { Localized } from "@app/utils/localized"; import { OS } from "@app/utils/os"; -export type Profile = ApplicationProfile | SetlistProfile; - -interface ReleaseContent { - name: string, +// WARNING: This type is also defined in Rust. Make sure to change it in both places! +export interface ReleaseContent { platforms?: OS[], files: { url: string, + sigUrl?: string, fileType: "zip" | "encrypted", - signature?: string, }[]; } -interface ApplicationProfile { - type: "application", - uuid: string, - version: string, - - metadata: { - locales: { - [language: string]: { - name: string, - releaseName: string, - - description: string, - - iconUrl: string, - bannerBackUrl: string, - bannerFrontUrl?: string, - } - }, - - releaseDate: Date, - websiteUrl: string, - }, +export type VersionList = [ + { + uuid: string, + tag: string, + release: Date, + } +]; +export interface Version { + uuid: string, + tag: string, + release: Date, content: ReleaseContent[], - launchOptions: { + launchOptions?: { [platform in OS]?: { executablePath: string, arguments: string[] @@ -44,33 +32,73 @@ interface ApplicationProfile { } } -interface SetlistProfile { - type: "setlist", - uuid: string, - version: string, +export type VersionInfo = VersionInfoList | VersionInfoUrl | VersionInfoEmbedded; - metadata: { - locales: { - [language: string]: { - name: string, +export interface VersionInfoList { + type: "list", - description: string, + listUrl: string, + releaseUrl: string, +} - iconUrl: string, - bannerBackUrl: string, - bannerFrontUrl?: string, - } - } +export interface VersionInfoUrl { + type: "url", + + releaseUrl: string, +} + +export interface VersionInfoEmbedded { + type: "embedded", + + version: Version, +} - releaseDate: Date, - websiteUrl: string, +export interface Metadata { + name: string, + description: string, + + iconUrl: string, + bannerBackUrl: string, + bannerFrontUrl?: string, + + initialRelease: Date, - organizer: string, - credits: { + links: { + [id: string]: { name: string, + iconUrl?: string, url: string, - }[] + } }, +} - content: ReleaseContent[], +export type ApplicationMetadata = Localized; + +export type SetlistMetadata = Localized; + +export type Profile = ApplicationProfile | SetlistProfile; + +export interface ApplicationProfile { + type: "application", + + uuid: string, + metadata: ApplicationMetadata, + version: VersionInfo, +} + +export interface SetlistProfile { + type: "setlist", + + uuid: string, + metadata: SetlistMetadata, + version: VersionInfo, } diff --git a/src/profiles/utils.ts b/src/profiles/utils.ts new file mode 100644 index 0000000..1868ef8 --- /dev/null +++ b/src/profiles/utils.ts @@ -0,0 +1,24 @@ +import { localizeObject } from "@app/utils/localized"; +import { Metadata, Profile, Version } from "./types"; + +export const getProfileVersion = (profile: Profile): Version => { + if (profile.version.type === "embedded") { + return profile.version.version; + } + + throw new Error("Not implemented"); +}; + +export const localizeMetadata = (profile: Profile, locale: string): Metadata => { + let out: Metadata; + + if (profile.type === "application") { + out = localizeObject(profile.metadata, locale); + } else if (profile.type === "setlist") { + out = localizeObject(profile.metadata, locale); + } else { + throw new Error("Unhandled profile type!"); + } + + return out; +}; diff --git a/src/routes/AppProfile/LaunchButton.tsx b/src/routes/AppProfile/LaunchButton.tsx index b4e557e..c272840 100644 --- a/src/routes/AppProfile/LaunchButton.tsx +++ b/src/routes/AppProfile/LaunchButton.tsx @@ -2,6 +2,7 @@ import { ButtonColor } from "@app/components/Button"; import { InstallingIcon, UpdateIcon } from "@app/assets/Icons"; import Button from "@app/components/Button"; import { ProfileFolderState, ProfileState } from "@app/hooks/useProfileState"; +import { localize } from "@app/utils/localized"; interface Props { profileState: ProfileState @@ -26,7 +27,7 @@ export function LaunchButton({ profileState }: Props) { let releaseName = ""; if (profile.type === "application") { - releaseName = profile.metadata.locales["en-US"].releaseName; + releaseName = localize(profile.metadata, "releaseName", "en-US"); } // Installing button diff --git a/src/routes/AppProfile/index.tsx b/src/routes/AppProfile/index.tsx index aebe2e6..2435490 100644 --- a/src/routes/AppProfile/index.tsx +++ b/src/routes/AppProfile/index.tsx @@ -2,8 +2,8 @@ import { useParams } from "react-router-dom"; import { useProfileState } from "@app/hooks/useProfileState"; import styles from "./AppProfile.module.css"; import { VerifiedIcon } from "@app/assets/Icons"; -import Button from "@app/components/Button"; import { LaunchButton } from "./LaunchButton"; +import { localizeMetadata } from "@app/profiles/utils"; function AppProfile() { const { uuid } = useParams(); @@ -17,7 +17,7 @@ function AppProfile() { return <>; } - const metadata = profile.metadata.locales["en-US"]; + const metadata = localizeMetadata(profile, "en-US"); return
- Official Build + Official
{metadata.name}
diff --git a/src/settings.ts b/src/settings.ts index ac57c66..bce084b 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -1,8 +1,8 @@ import { SettingsManager } from "tauri-settings"; export interface Settings { - onboardingCompleted: boolean; - downloadLocation: string; + onboardingCompleted: boolean, + downloadLocation: string, } export const settingsManager = new SettingsManager({ diff --git a/src/tasks/Processors/DownloadAndInstallTask.tsx b/src/tasks/Processors/DownloadAndInstallTask.tsx index da806c7..904d129 100644 --- a/src/tasks/Processors/DownloadAndInstallTask.tsx +++ b/src/tasks/Processors/DownloadAndInstallTask.tsx @@ -1,18 +1,23 @@ -import { Profile } from "@app/profiles/types"; +import { Profile, Version } from "@app/profiles/types"; import { BaseTask, IBaseTask } from "./base"; import { invoke } from "@tauri-apps/api"; import { showErrorDialog } from "@app/dialogs/dialogUtil"; import { ReactNode } from "react"; import QueueEntry from "@app/components/Queue/QueueEntry"; +import { localizeObject } from "@app/utils/localized"; export class DownloadAndInstallTask extends BaseTask implements IBaseTask { onFinish?: () => void; + + version: Version; tempPath: string; - constructor(profile: Profile, profilePath: string, tempPath: string, onFinish?: () => void) { + constructor(profile: Profile, version: Version, profilePath: string, tempPath: string, onFinish?: () => void) { super(profile, profilePath); this.onFinish = onFinish; + + this.version = version; this.tempPath = tempPath; } @@ -21,9 +26,9 @@ export class DownloadAndInstallTask extends BaseTask implements IBaseTask { await invoke("download_and_install_profile", { profilePath: this.profilePath, uuid: this.profile.uuid, - version: this.profile.version, + tag: this.version.tag, tempPath: this.tempPath, - content: this.profile.content + content: this.version.content }); } catch (e) { showErrorDialog(e as string); @@ -32,19 +37,19 @@ export class DownloadAndInstallTask extends BaseTask implements IBaseTask { getQueueEntry(bannerMode: boolean): ReactNode { if (this.profile.type === "application") { - const metadata = this.profile.metadata.locales["en-US"]; + const metadata = localizeObject(this.profile.metadata, "en-US"); return ; } else { - const metadata = this.profile.metadata.locales["en-US"]; + const metadata = localizeObject(this.profile.metadata, "en-US"); return ; } } diff --git a/src/tasks/Processors/UninstallTask.tsx b/src/tasks/Processors/UninstallTask.tsx index ee1b487..0690eb7 100644 --- a/src/tasks/Processors/UninstallTask.tsx +++ b/src/tasks/Processors/UninstallTask.tsx @@ -4,6 +4,7 @@ import { invoke } from "@tauri-apps/api"; import { showErrorDialog } from "@app/dialogs/dialogUtil"; import { ReactNode } from "react"; import QueueEntry from "@app/components/Queue/QueueEntry"; +import { localizeObject } from "@app/utils/localized"; export class UninstallTask extends BaseTask implements IBaseTask { onFinish?: () => void; @@ -25,19 +26,17 @@ export class UninstallTask extends BaseTask implements IBaseTask { getQueueEntry(bannerMode: boolean): ReactNode { if (this.profile.type === "application") { - const metadata = this.profile.metadata.locales["en-US"]; + const metadata = localizeObject(this.profile.metadata, "en-US"); return ; } else { - const metadata = this.profile.metadata.locales["en-US"]; + const metadata = localizeObject(this.profile.metadata, "en-US"); return ; } } diff --git a/src/utils/localized.ts b/src/utils/localized.ts new file mode 100644 index 0000000..961f5ce --- /dev/null +++ b/src/utils/localized.ts @@ -0,0 +1,40 @@ +export type Localized = T & { + localeOverrides: { + [locales: string]: Partial + } +} + +export const localize = (obj: Localized, key: K, locale: string): T[K] => { + let value: T[K] = obj[key]; + + if (locale in obj.localeOverrides) { + const newValue = obj.localeOverrides[locale][key]; + if (newValue !== undefined) { + value = newValue as T[K]; + } + } + + return value; +}; + +export const localizeObject = (obj: Localized, locale: string): T => { + const { + localeOverrides, + ...omittedObj + } = obj; + const newObj = omittedObj as T; + + if (locale in obj.localeOverrides) { + const override = obj.localeOverrides[locale]; + + let key: keyof T; + for (key in override) { + const value = override[key]; + if (value !== undefined) { + newObj[key] = value as T[keyof T]; + } + } + } + + return newObj; +}; From 5150dc156312de0f2875a8d396b8ed7e07b1f43a Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Thu, 8 Aug 2024 17:01:49 -0400 Subject: [PATCH 37/98] Update store.ts --- src/profiles/store.ts | 66 ++++++++++++++++++++++++------------------- 1 file changed, 37 insertions(+), 29 deletions(-) diff --git a/src/profiles/store.ts b/src/profiles/store.ts index 36ac552..f468cfa 100644 --- a/src/profiles/store.ts +++ b/src/profiles/store.ts @@ -26,49 +26,57 @@ export interface ProfileStore { export const useProfileStore = create()((set, get) => ({ profiles: [ { - type: "application", - uuid: "2d78800c-1397-496a-83c1-50759607999a", - metadata: { - name: "YARG", - description: "This is the stable version of YARG", - releaseName: "Stable", + "type": "application", + "uuid": "2d78800c-1397-496a-83c1-50759607999a", + "metadata": { + "name": "YARG", + "description": "YARG (a.k.a. Yet Another Rhythm Game) is a free, open-source, plastic guitar game that is still in development. It supports guitar (five fret), drums (plastic or e-kit), vocals, pro-guitar, and more!", + "releaseName": "Stable", - iconUrl: "/src/assets/Profiles/Icons/Stable.png", - bannerBackUrl: "/src/assets/Profiles/Banners/Stable.png", + "iconUrl": "/src/assets/Profiles/Icons/Stable.png", + "bannerBackUrl": "/src/assets/Profiles/Banners/Stable.png", - initialRelease: new Date(), + "initialRelease": new Date("2023-03-09T05:00:00.000Z"), - links: { + "links": { "website": { - name: "Official Website", - url: "https://yarg.in" - } + "name": "Official Website", + "url": "https://yarg.in" + }, + "github": { + "name": "GitHub Repository", + "url": "https://github.com/YARC-Official/YARG/" + }, + "roadmap": { + "name": "YARG Roadmap", + "url": "https://yarg.youtrack.cloud/agiles/147-7/current" + }, }, - localeOverrides: {}, + "localeOverrides": {}, }, - version: { - type: "embedded", - - version: { - uuid: "c8d67887-019e-4662-ba1e-0f6ba1839a42", - tag: "v0.12.4", - release: new Date(), - content: [ + "version": { + "type": "embedded", + + "version": { + "uuid": "c8d67887-019e-4662-ba1e-0f6ba1839a42", + "tag": "v0.12.4", + "release": new Date(), + "content": [ { - platforms: ["windows"], - files: [ + "platforms": ["windows"], + "files": [ { - url: "https://github.com/YARC-Official/YARG/releases/download/v0.12.4/YARG_v0.12.4-Windows-x64.zip", - fileType: "zip" + "url": "https://github.com/YARC-Official/YARG/releases/download/v0.12.4/YARG_v0.12.4-Windows-x64.zip", + "fileType": "zip" } ] } ], - launchOptions: { + "launchOptions": { "windows": { - executablePath: "./YARG.exe", - arguments: [] + "executablePath": "./YARG.exe", + "arguments": [] } } } From 6fd8fd50ba934e9f14c9459b563a2c10e4429ae4 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Thu, 8 Aug 2024 17:24:34 -0400 Subject: [PATCH 38/98] Move profile assets into the public folder so they work in build --- .../profileAssets/banners}/Development.png | Bin .../profileAssets/banners}/Nightly.png | Bin .../profileAssets/banners}/SetlistBack.png | Bin .../profileAssets/banners}/SetlistFront.png | Bin .../profileAssets/banners}/Stable.png | Bin .../profileAssets/icons}/Development.png | Bin .../profileAssets/icons}/Nightly.png | Bin .../profileAssets/icons}/Setlist.png | Bin .../Icons => public/profileAssets/icons}/Stable.png | Bin src/profiles/store.ts | 4 ++-- src/profiles/utils.ts | 7 +++++++ src/routes/AppProfile/index.tsx | 6 +++--- 12 files changed, 12 insertions(+), 5 deletions(-) rename {src/assets/Profiles/Banners => public/profileAssets/banners}/Development.png (100%) rename {src/assets/Profiles/Banners => public/profileAssets/banners}/Nightly.png (100%) rename {src/assets/Profiles/Banners => public/profileAssets/banners}/SetlistBack.png (100%) rename {src/assets/Profiles/Banners => public/profileAssets/banners}/SetlistFront.png (100%) rename {src/assets/Profiles/Banners => public/profileAssets/banners}/Stable.png (100%) rename {src/assets/Profiles/Icons => public/profileAssets/icons}/Development.png (100%) rename {src/assets/Profiles/Icons => public/profileAssets/icons}/Nightly.png (100%) rename {src/assets/Profiles/Icons => public/profileAssets/icons}/Setlist.png (100%) rename {src/assets/Profiles/Icons => public/profileAssets/icons}/Stable.png (100%) diff --git a/src/assets/Profiles/Banners/Development.png b/public/profileAssets/banners/Development.png similarity index 100% rename from src/assets/Profiles/Banners/Development.png rename to public/profileAssets/banners/Development.png diff --git a/src/assets/Profiles/Banners/Nightly.png b/public/profileAssets/banners/Nightly.png similarity index 100% rename from src/assets/Profiles/Banners/Nightly.png rename to public/profileAssets/banners/Nightly.png diff --git a/src/assets/Profiles/Banners/SetlistBack.png b/public/profileAssets/banners/SetlistBack.png similarity index 100% rename from src/assets/Profiles/Banners/SetlistBack.png rename to public/profileAssets/banners/SetlistBack.png diff --git a/src/assets/Profiles/Banners/SetlistFront.png b/public/profileAssets/banners/SetlistFront.png similarity index 100% rename from src/assets/Profiles/Banners/SetlistFront.png rename to public/profileAssets/banners/SetlistFront.png diff --git a/src/assets/Profiles/Banners/Stable.png b/public/profileAssets/banners/Stable.png similarity index 100% rename from src/assets/Profiles/Banners/Stable.png rename to public/profileAssets/banners/Stable.png diff --git a/src/assets/Profiles/Icons/Development.png b/public/profileAssets/icons/Development.png similarity index 100% rename from src/assets/Profiles/Icons/Development.png rename to public/profileAssets/icons/Development.png diff --git a/src/assets/Profiles/Icons/Nightly.png b/public/profileAssets/icons/Nightly.png similarity index 100% rename from src/assets/Profiles/Icons/Nightly.png rename to public/profileAssets/icons/Nightly.png diff --git a/src/assets/Profiles/Icons/Setlist.png b/public/profileAssets/icons/Setlist.png similarity index 100% rename from src/assets/Profiles/Icons/Setlist.png rename to public/profileAssets/icons/Setlist.png diff --git a/src/assets/Profiles/Icons/Stable.png b/public/profileAssets/icons/Stable.png similarity index 100% rename from src/assets/Profiles/Icons/Stable.png rename to public/profileAssets/icons/Stable.png diff --git a/src/profiles/store.ts b/src/profiles/store.ts index f468cfa..f610d8c 100644 --- a/src/profiles/store.ts +++ b/src/profiles/store.ts @@ -33,8 +33,8 @@ export const useProfileStore = create()((set, get) => ({ "description": "YARG (a.k.a. Yet Another Rhythm Game) is a free, open-source, plastic guitar game that is still in development. It supports guitar (five fret), drums (plastic or e-kit), vocals, pro-guitar, and more!", "releaseName": "Stable", - "iconUrl": "/src/assets/Profiles/Icons/Stable.png", - "bannerBackUrl": "/src/assets/Profiles/Banners/Stable.png", + "iconUrl": "@/icons/Stable.png", + "bannerBackUrl": "@/banners/Stable.png", "initialRelease": new Date("2023-03-09T05:00:00.000Z"), diff --git a/src/profiles/utils.ts b/src/profiles/utils.ts index 1868ef8..556a119 100644 --- a/src/profiles/utils.ts +++ b/src/profiles/utils.ts @@ -22,3 +22,10 @@ export const localizeMetadata = (profile: Profile, locale: string): Metadata => return out; }; + +export const processAssetUrl = (url: string): string => { + if (url.startsWith("@/")) { + return url.replace("@/", "/profileAssets/"); + } + return url; +}; diff --git a/src/routes/AppProfile/index.tsx b/src/routes/AppProfile/index.tsx index 2435490..0df0d6f 100644 --- a/src/routes/AppProfile/index.tsx +++ b/src/routes/AppProfile/index.tsx @@ -3,7 +3,7 @@ import { useProfileState } from "@app/hooks/useProfileState"; import styles from "./AppProfile.module.css"; import { VerifiedIcon } from "@app/assets/Icons"; import { LaunchButton } from "./LaunchButton"; -import { localizeMetadata } from "@app/profiles/utils"; +import { localizeMetadata, processAssetUrl } from "@app/profiles/utils"; function AppProfile() { const { uuid } = useParams(); @@ -21,10 +21,10 @@ function AppProfile() { return
+ style={{"--bannerBack": `url(${processAssetUrl(metadata.bannerBackUrl)})`} as React.CSSProperties}>
- {metadata.name} + {metadata.name}
Official From d3f95f0e3ef0fbc32cb7c09f593f1eca2a757312 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Thu, 8 Aug 2024 22:22:07 -0400 Subject: [PATCH 39/98] Display profile description and links --- src/components/Box/Box.module.css | 5 ++ src/components/Box/index.tsx | 19 ++++++ src/components/Button/Button.module.css | 12 +++- src/components/Button/index.tsx | 12 ++-- .../GenericBox/SetlistBox.module.css | 38 ------------ src/components/GenericBox/index.tsx | 25 -------- src/routes/AppProfile/AppProfile.module.css | 58 +++++++++++++++++++ src/routes/AppProfile/index.tsx | 28 ++++++++- src/styles.css | 6 +- 9 files changed, 128 insertions(+), 75 deletions(-) create mode 100644 src/components/Box/Box.module.css create mode 100644 src/components/Box/index.tsx delete mode 100644 src/components/GenericBox/SetlistBox.module.css delete mode 100644 src/components/GenericBox/index.tsx diff --git a/src/components/Box/Box.module.css b/src/components/Box/Box.module.css new file mode 100644 index 0000000..f5f116d --- /dev/null +++ b/src/components/Box/Box.module.css @@ -0,0 +1,5 @@ +.box { + padding: 18px; + border-radius: 12px; + border: 1px solid #E3E4E7; +} diff --git a/src/components/Box/index.tsx b/src/components/Box/index.tsx new file mode 100644 index 0000000..5114fea --- /dev/null +++ b/src/components/Box/index.tsx @@ -0,0 +1,19 @@ +import styles from "./Box.module.css"; + +type Props = React.PropsWithChildren<{ + className?: string, + style?: React.CSSProperties +}>; + +const Box: React.FC = ({ children, className, style }: Props) => { + const classes = [styles.box]; + if (className !== undefined) { + classes.push(className); + } + + return
+ {children} +
; +}; + +export default Box; diff --git a/src/components/Button/Button.module.css b/src/components/Button/Button.module.css index 962f1e3..6d5ab63 100644 --- a/src/components/Button/Button.module.css +++ b/src/components/Button/Button.module.css @@ -50,12 +50,18 @@ --border: var(--buttonLightBorder); } -.colorsGray { - --background: var(--buttonGray); - --color: var(--buttonGrayText); +.colorsDark { + --background: var(--buttonDark); + --color: var(--buttonDarkText); --border: var(--buttonDarkBorder); } +.colorsLight { + --background: var(--buttonLight); + --color: var(--buttonLightText); + --border: var(--buttonLightBorder); +} + .colorsRed { --background: var(--buttonRed); --color: var(--buttonRedText); diff --git a/src/components/Button/index.tsx b/src/components/Button/index.tsx index 3c65ddc..762e502 100644 --- a/src/components/Button/index.tsx +++ b/src/components/Button/index.tsx @@ -5,8 +5,8 @@ export enum ButtonColor { "GREEN", "BLUE", "YELLOW", - "GRAY", - "BLACK", + "LIGHT", + "DARK", "RED" } @@ -40,11 +40,11 @@ const Button: React.FC = (props: ButtonProps) => { case ButtonColor.YELLOW: classes = [styles.colorsYellow]; break; - case ButtonColor.GRAY: - classes = [styles.colorsGray]; + case ButtonColor.LIGHT: + classes = [styles.colorsLight]; break; - case ButtonColor.BLACK: - classes = [styles.colorsBlack]; + case ButtonColor.DARK: + classes = [styles.colorsDark]; break; case ButtonColor.RED: classes = [styles.colorsRed]; diff --git a/src/components/GenericBox/SetlistBox.module.css b/src/components/GenericBox/SetlistBox.module.css deleted file mode 100644 index f690abc..0000000 --- a/src/components/GenericBox/SetlistBox.module.css +++ /dev/null @@ -1,38 +0,0 @@ -.box_slim { - display: flex; - flex-direction: column; - align-items: flex-start; - - border-radius: 8px; - border: 1px solid rgba(0, 0, 0, 0.1); - - color: #333; - font-size: 12px; - font-style: normal; - font-weight: 400; - line-height: normal; - - overflow: hidden; -} - -.box { - padding: 10px; - gap: 15px; - align-self: stretch; -} - -.box_header { - display: flex; - padding: 1px 5px 7px 5px; - align-items: center; - gap: 5px; - align-self: stretch; - border-bottom: 1px solid rgba(46, 52, 78, 0.10); - - color: #2E344E; - font-size: 14px; - font-style: normal; - font-weight: 700; - line-height: normal; - text-transform: uppercase; -} \ No newline at end of file diff --git a/src/components/GenericBox/index.tsx b/src/components/GenericBox/index.tsx deleted file mode 100644 index 111febd..0000000 --- a/src/components/GenericBox/index.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import styles from "./SetlistBox.module.css"; - -type Props = React.PropsWithChildren<{ - style?: React.CSSProperties -}>; - -const GenericBox: React.FC = ({ children, style }: Props) => { - return
- {children} -
; -}; - -const GenericBoxSlim: React.FC = ({ children, style }: Props) => { - return
- {children} -
; -}; - -const GenericBoxHeader: React.FC = ({ children, style }: Props) => { - return
- {children} -
; -}; - -export { GenericBox, GenericBoxSlim, GenericBoxHeader }; \ No newline at end of file diff --git a/src/routes/AppProfile/AppProfile.module.css b/src/routes/AppProfile/AppProfile.module.css index bf6f8a5..765daad 100644 --- a/src/routes/AppProfile/AppProfile.module.css +++ b/src/routes/AppProfile/AppProfile.module.css @@ -96,3 +96,61 @@ .bannerOptionsMain > button { font-size: 16px; } + +.pageContainer { + display: flex; + padding: 16px; + align-items: flex-start; + gap: 25px; + flex: 1 0 0; + align-self: stretch; +} + +.content { + display: flex; + flex-direction: column; + justify-content: center; + align-items: flex-start; + gap: 10px; + flex: 1 0 0; +} + +.sidebar { + display: flex; + width: 320px; + flex-direction: column; + align-items: flex-start; + gap: 6px; +} + +.sidebarBox { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + gap: 6px; + align-self: stretch; + + color: #666975; + font-size: 14px; + font-weight: 400; +} + +.sidebarBox > header { + display: flex; + align-items: center; + gap: 8px; + align-self: stretch; + + color: #41475F; + font-size: 14px; + font-weight: 700; + text-transform: uppercase; +} + +.sidebar > button { + font-weight: 500; + text-transform: none; + width: 100%; + justify-content: left; +} diff --git a/src/routes/AppProfile/index.tsx b/src/routes/AppProfile/index.tsx index 0df0d6f..50d398b 100644 --- a/src/routes/AppProfile/index.tsx +++ b/src/routes/AppProfile/index.tsx @@ -1,9 +1,12 @@ import { useParams } from "react-router-dom"; import { useProfileState } from "@app/hooks/useProfileState"; import styles from "./AppProfile.module.css"; -import { VerifiedIcon } from "@app/assets/Icons"; +import { InformationIcon, VerifiedIcon } from "@app/assets/Icons"; import { LaunchButton } from "./LaunchButton"; import { localizeMetadata, processAssetUrl } from "@app/profiles/utils"; +import Box from "@app/components/Box"; +import { ApplicationMetadata } from "@app/profiles/types"; +import Button, { ButtonColor } from "@app/components/Button"; function AppProfile() { const { uuid } = useParams(); @@ -46,6 +49,29 @@ function AppProfile() {
+
+
+ +
+
+ +
+ + {profile.type === "application" + ? `About ${metadata.name} (${(metadata as ApplicationMetadata).releaseName})` + : `About ${metadata.name}`} +
+ {metadata.description} +
+ { + Object.values(metadata.links).map(i => + + ) + } +
+
; } diff --git a/src/styles.css b/src/styles.css index 8d9000f..7385d72 100644 --- a/src/styles.css +++ b/src/styles.css @@ -27,13 +27,15 @@ --buttonGreen: #17E289; --buttonBlue: #2ED9FF; --buttonYellow: #FCD548; - --buttonGray: #0F121D; + --buttonDark: #0F121D; + --buttonLight: #F4F4F4; --buttonRed: #F32B37; --buttonGreenText: #005832; --buttonBlueText: #03596B; --buttonYellowText: #4F2600; - --buttonGrayText: #E0E1E7; + --buttonDarkText: #E0E1E7; + --buttonLightText: #41475F; --buttonRedText: #FFF; --buttonLightBorder: rgba(255, 255, 255, 0.4); From b6b0784257ec5042b10f1b086dd78c85629aac0e Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Fri, 9 Aug 2024 18:22:20 -0400 Subject: [PATCH 40/98] Fixed missing key --- src/routes/AppProfile/index.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/routes/AppProfile/index.tsx b/src/routes/AppProfile/index.tsx index 50d398b..347a60b 100644 --- a/src/routes/AppProfile/index.tsx +++ b/src/routes/AppProfile/index.tsx @@ -64,9 +64,9 @@ function AppProfile() { {metadata.description} { - Object.values(metadata.links).map(i => - ) } From 7a94801c37c898178a7060e4a3f8a118e883ea10 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Sat, 10 Aug 2024 00:02:16 -0400 Subject: [PATCH 41/98] Split up profiles store --- src/components/LoadingScreen/index.tsx | 58 +++++---- src/components/Onboarding/index.tsx | 8 +- src/dialogs/Dialogs/ErrorDialog.tsx | 6 +- src/dialogs/Dialogs/InstallFolderDialog.tsx | 4 +- src/hooks/useProfileState.ts | 16 +-- src/main.tsx | 20 +-- src/profiles/actions.ts | 18 ++- src/profiles/directories.ts | 46 +++++++ src/profiles/store.ts | 132 +++----------------- src/profiles/types.ts | 7 ++ src/profiles/utils.ts | 14 +++ src/routes/AppProfile/LaunchButton.tsx | 4 +- src/utils/localized.ts | 1 + 13 files changed, 163 insertions(+), 171 deletions(-) create mode 100644 src/profiles/directories.ts diff --git a/src/components/LoadingScreen/index.tsx b/src/components/LoadingScreen/index.tsx index b34aadb..4ef041d 100644 --- a/src/components/LoadingScreen/index.tsx +++ b/src/components/LoadingScreen/index.tsx @@ -3,13 +3,14 @@ import styles from "./LoadingScreen.module.css"; import * as Progress from "@radix-ui/react-progress"; import { error as logError } from "tauri-plugin-log-api"; import { serializeError } from "serialize-error"; -import { getPathForProfile, useProfileStore } from "@app/profiles/store"; +import { useProfileStore } from "@app/profiles/store"; import { settingsManager } from "@app/settings"; import { invoke } from "@tauri-apps/api"; -import { getOS } from "@app/utils/os"; import { showErrorDialog } from "@app/dialogs/dialogUtil"; import { appWindow } from "@tauri-apps/api/window"; import { launch } from "@app/profiles/actions"; +import { getPathForProfile } from "@app/profiles/utils"; +import { useDirectories } from "@app/profiles/directories"; enum LoadingState { "LOADING", @@ -21,11 +22,11 @@ enum LoadingState { interface Props { setError: React.Dispatch; setOnboarding: React.Dispatch; + setShowBody: React.Dispatch; } const LoadingScreen: React.FC = (props: Props) => { const [loading, setLoading] = useState(LoadingState.LOADING); - let profileStore = useProfileStore(); // Load useEffect(() => { @@ -33,27 +34,39 @@ const LoadingScreen: React.FC = (props: Props) => { try { await settingsManager.initialize(); - if (!settingsManager.getCache("onboardingCompleted")) { - profileStore = await profileStore.setDirs(); - props.setOnboarding(true); - } else { - const downloadLocation = settingsManager.getCache("downloadLocation"); - profileStore = await profileStore.setDirs(downloadLocation); - } + const onboardingCompleted = settingsManager.getCache("onboardingCompleted"); + + let profileStore = useProfileStore.getState(); + let directories = useDirectories.getState(); + + await profileStore.setAvailableProfiles(); + profileStore = useProfileStore.getState(); - // Check if a profile was requested to be launched by cmdline arguments - const launchOption: string | null = await invoke("get_launch_argument"); - if (launchOption !== null) { - setLoading(LoadingState.LAUNCHING); + let downloadLocation: string | undefined = undefined; + if (onboardingCompleted) { + downloadLocation = settingsManager.getCache("downloadLocation"); + } - const profile = profileStore.getProfileByUUID(launchOption); - if (profile) { - const path = await getPathForProfile(profileStore, profile); - await launch(profile, path); + await directories.setDirs(downloadLocation); + directories = useDirectories.getState(); - appWindow.close(); - } else { - showErrorDialog("Invalid profile specified: " + launchOption); + if (!onboardingCompleted) { + props.setOnboarding(true); + } else { + // Check if a profile was requested to be launched by command line arguments + const launchOption: string | null = await invoke("get_launch_argument"); + if (launchOption !== null) { + setLoading(LoadingState.LAUNCHING); + + const profile = profileStore.getProfileByUUID(launchOption); + if (profile) { + const path = await getPathForProfile(directories, profile); + await launch(profile, path); + + appWindow.close(); + } else { + showErrorDialog("Invalid profile specified: " + launchOption); + } } } @@ -70,6 +83,8 @@ const LoadingScreen: React.FC = (props: Props) => { return; } + props.setShowBody(true); + // The loading screen takes 250ms to fade out setLoading(LoadingState.FADE_OUT); await new Promise(r => setTimeout(r, 250)); @@ -90,7 +105,6 @@ const LoadingScreen: React.FC = (props: Props) => { -
{loading == LoadingState.LAUNCHING ? <> diff --git a/src/components/Onboarding/index.tsx b/src/components/Onboarding/index.tsx index 34fb787..1df690d 100644 --- a/src/components/Onboarding/index.tsx +++ b/src/components/Onboarding/index.tsx @@ -1,6 +1,5 @@ import { useState } from "react"; import styles from "./Onboarding.module.css"; -import { useProfileStore } from "@app/profiles/store"; import { open } from "@tauri-apps/api/dialog"; import { invoke } from "@tauri-apps/api"; import { settingsManager } from "@app/settings"; @@ -8,6 +7,7 @@ import OnboardingSidebar from "./Sidebar"; import Button from "../Button"; import InstallFolderPage from "./Pages/InstallFolderPage"; import ComponentsPage from "./Pages/ComponentsPage"; +import { useDirectories } from "@app/profiles/directories"; export enum OnboardingStep { // LANGUAGE = 0, @@ -22,9 +22,9 @@ interface Props { const Onboarding: React.FC = (props: Props) => { const [step, setStep] = useState(OnboardingStep.INSTALL_PATH); - const profileStore = useProfileStore(); + const directories = useDirectories(); - const defaultDownload = profileStore.importantDirs?.yarcFolder; + const defaultDownload = directories.importantDirs?.yarcFolder; if (defaultDownload === undefined) { throw new Error("The default installation path was not found!"); } @@ -51,7 +51,7 @@ const Onboarding: React.FC = (props: Props) => { settingsManager.setCache("onboardingCompleted", true); await settingsManager.syncCache(); - await profileStore.setDirs(downloadLocation); + await directories.setDirs(downloadLocation); props.setOnboarding(false); } diff --git a/src/dialogs/Dialogs/ErrorDialog.tsx b/src/dialogs/Dialogs/ErrorDialog.tsx index 0b5b4d4..35538b0 100644 --- a/src/dialogs/Dialogs/ErrorDialog.tsx +++ b/src/dialogs/Dialogs/ErrorDialog.tsx @@ -8,7 +8,7 @@ import { closeDialog } from ".."; export class ErrorDialog extends BaseDialog> { constructor(props: Record) { super(props); - + try { LogError( JSON.stringify(serializeError(props.error)) @@ -36,7 +36,7 @@ export class ErrorDialog extends BaseDialog> { getButtons() { return <> - + ; } -} \ No newline at end of file +} diff --git a/src/dialogs/Dialogs/InstallFolderDialog.tsx b/src/dialogs/Dialogs/InstallFolderDialog.tsx index 70e2bff..2b74db5 100644 --- a/src/dialogs/Dialogs/InstallFolderDialog.tsx +++ b/src/dialogs/Dialogs/InstallFolderDialog.tsx @@ -75,7 +75,7 @@ export class InstallFolderDialog extends BaseDialog { getButtons() { return <> - + ; } -} \ No newline at end of file +} diff --git a/src/hooks/useProfileState.ts b/src/hooks/useProfileState.ts index d9b12ef..5b0ce37 100644 --- a/src/hooks/useProfileState.ts +++ b/src/hooks/useProfileState.ts @@ -1,7 +1,8 @@ import { downloadAndInstall, launch, openInstallFolder, uninstall } from "@app/profiles/actions"; -import { getPathForProfile, useProfileStore } from "@app/profiles/store"; +import { useDirectories } from "@app/profiles/directories"; +import { useProfileStore } from "@app/profiles/store"; import { Profile, Version } from "@app/profiles/types"; -import { getProfileVersion } from "@app/profiles/utils"; +import { getPathForProfile, getProfileVersion } from "@app/profiles/utils"; import { useTask } from "@app/tasks"; import { IBaseTask } from "@app/tasks/Processors/base"; import { invoke } from "@tauri-apps/api"; @@ -31,6 +32,7 @@ export interface ProfileState { } export const useProfileState = (profileUUID: string): ProfileState => { + const directories = useDirectories(); const profiles = useProfileStore(); const [loading, setLoading] = useState(true); @@ -55,12 +57,12 @@ export const useProfileState = (profileUUID: string): ProfileState => { setVersion({} as Version); // If the important directories aren't loaded yet, wait for them to - if (profiles.importantDirs === undefined) { + if (directories.importantDirs === undefined) { return; } (async () => { - const path = await getPathForProfile(profiles, profile); + const path = await getPathForProfile(directories, profile); const version = getProfileVersion(profile); const result = await invoke("profile_folder_state", { @@ -73,7 +75,7 @@ export const useProfileState = (profileUUID: string): ProfileState => { setLoading(false); setVersion(version); })(); - }, [profiles.importantDirs, profileUUID]); + }, [directories, profileUUID]); return { loading, @@ -90,7 +92,7 @@ export const useProfileState = (profileUUID: string): ProfileState => { return; } - await downloadAndInstall(profile, profiles, profilePath, () => { + await downloadAndInstall(profile, profilePath, () => { setFolderState(ProfileFolderState.UpToDate); }); }, @@ -99,7 +101,7 @@ export const useProfileState = (profileUUID: string): ProfileState => { return; } - await uninstall(profile, profiles, profilePath, () => { + await uninstall(profile, profilePath, () => { setFolderState(ProfileFolderState.FirstDownload); }); }, diff --git a/src/main.tsx b/src/main.tsx index 7002840..91383d7 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -20,6 +20,7 @@ window.addEventListener("error", event => { const App: React.FC = () => { const [error, setError] = useState(null); + const [showBody, setShowBody] = useState(false); const [onboarding, setOnboarding] = useState(false); // Show error screen @@ -39,17 +40,20 @@ const App: React.FC = () => { // Show main screen return - - + + - - {onboarding && - - } - - + {onboarding && + + } + + {showBody && + + + + } ; diff --git a/src/profiles/actions.ts b/src/profiles/actions.ts index e193eea..75405d7 100644 --- a/src/profiles/actions.ts +++ b/src/profiles/actions.ts @@ -1,5 +1,4 @@ import { DownloadAndInstallTask } from "@app/tasks/Processors/DownloadAndInstallTask"; -import { ProfileStore } from "./store"; import { Profile } from "./types"; import { addTask } from "@app/tasks"; import { UninstallTask } from "@app/tasks/Processors/UninstallTask"; @@ -7,24 +6,23 @@ import { getOS } from "@app/utils/os"; import { showErrorDialog } from "@app/dialogs/dialogUtil"; import { invoke } from "@tauri-apps/api"; import { getProfileVersion } from "./utils"; +import { useDirectories } from "./directories"; -export const downloadAndInstall = async (profile: Profile, profiles: ProfileStore, profilePath: string, - onFinish?: () => void): Promise => { - - if (profiles.importantDirs === undefined) { +export const downloadAndInstall = async (profile: Profile, profilePath: string, onFinish?: () => void): Promise => { + const directories = useDirectories.getState(); + if (directories.importantDirs === undefined) { return; } const version = getProfileVersion(profile); - const tempFolder = profiles.importantDirs.tempFolder; + const tempFolder = directories.importantDirs.tempFolder; const task = new DownloadAndInstallTask(profile, version, profilePath, tempFolder, onFinish); addTask(task); }; -export const uninstall = async (profile: Profile, profiles: ProfileStore, profilePath: string, - onFinish?: () => void): Promise => { - - if (profiles.importantDirs === undefined) { +export const uninstall = async (profile: Profile, profilePath: string, onFinish?: () => void): Promise => { + const directories = useDirectories.getState(); + if (directories.importantDirs === undefined) { return; } diff --git a/src/profiles/directories.ts b/src/profiles/directories.ts new file mode 100644 index 0000000..11af0a5 --- /dev/null +++ b/src/profiles/directories.ts @@ -0,0 +1,46 @@ +import { invoke } from "@tauri-apps/api"; +import { create } from "zustand"; + +export interface ImportantDirs { + yarcFolder: string, + launcherFolder: string, + tempFolder: string, +} + +export interface CustomDirs { + yargFolder: string, + setlistFolder: string, +} + +export interface DirectoriesStore { + importantDirs?: ImportantDirs, + customDirs?: CustomDirs, + + setDirs: (downloadLocation?: string) => Promise; +} + +export const useDirectories = create()((set, get) => ({ + setDirs: async (downloadLocation?: string) => { + const importantDirs: ImportantDirs = await invoke("get_important_dirs"); + + if (downloadLocation === undefined) { + set({ + importantDirs + }); + } else { + // If the download location is empty for whatever reason, just set it to the default one + if (downloadLocation === "") { + downloadLocation = importantDirs.yarcFolder; + } + + const customDirs: CustomDirs = await invoke("get_custom_dirs", { + downloadLocation: downloadLocation + }); + + set({ + importantDirs, + customDirs + }); + } + } +})); diff --git a/src/profiles/store.ts b/src/profiles/store.ts index f610d8c..f782c05 100644 --- a/src/profiles/store.ts +++ b/src/profiles/store.ts @@ -1,128 +1,34 @@ -import { invoke, path } from "@tauri-apps/api"; import { create } from "zustand"; -import { Profile } from "./types"; - -export interface ImportantDirs { - yarcFolder: string, - launcherFolder: string, - tempFolder: string, -} - -export interface CustomDirs { - yargFolder: string, - setlistFolder: string, -} +import { AvailableProfile, Profile } from "./types"; export interface ProfileStore { - importantDirs?: ImportantDirs, - customDirs?: CustomDirs, - + availableProfiles: AvailableProfile[], profiles: Profile[], getProfileByUUID: (uuid: string) => Profile | undefined, - setDirs: (downloadLocation?: string) => Promise, + setAvailableProfiles: () => Promise, } export const useProfileStore = create()((set, get) => ({ - profiles: [ - { - "type": "application", - "uuid": "2d78800c-1397-496a-83c1-50759607999a", - "metadata": { - "name": "YARG", - "description": "YARG (a.k.a. Yet Another Rhythm Game) is a free, open-source, plastic guitar game that is still in development. It supports guitar (five fret), drums (plastic or e-kit), vocals, pro-guitar, and more!", - "releaseName": "Stable", + availableProfiles: [], + profiles: [], - "iconUrl": "@/icons/Stable.png", - "bannerBackUrl": "@/banners/Stable.png", - - "initialRelease": new Date("2023-03-09T05:00:00.000Z"), - - "links": { - "website": { - "name": "Official Website", - "url": "https://yarg.in" - }, - "github": { - "name": "GitHub Repository", - "url": "https://github.com/YARC-Official/YARG/" - }, - "roadmap": { - "name": "YARG Roadmap", - "url": "https://yarg.youtrack.cloud/agiles/147-7/current" - }, - }, - - "localeOverrides": {}, - }, - "version": { - "type": "embedded", - - "version": { - "uuid": "c8d67887-019e-4662-ba1e-0f6ba1839a42", - "tag": "v0.12.4", - "release": new Date(), - "content": [ - { - "platforms": ["windows"], - "files": [ - { - "url": "https://github.com/YARC-Official/YARG/releases/download/v0.12.4/YARG_v0.12.4-Windows-x64.zip", - "fileType": "zip" - } - ] - } - ], - "launchOptions": { - "windows": { - "executablePath": "./YARG.exe", - "arguments": [] - } - } - } - }, - } - ], getProfileByUUID: (uuid) => { return get().profiles.find(i => i.uuid === uuid); }, - setDirs: async (downloadLocation) => { - const importantDirs: ImportantDirs = await invoke("get_important_dirs"); - - if (downloadLocation === undefined) { - set({ - importantDirs: importantDirs - }); - - return get(); - } else { - // If the download location is empty for whatever reason, just set it to the default one - if (downloadLocation === "") { - downloadLocation = importantDirs.yarcFolder; - } - - const customDirs: CustomDirs = await invoke("get_custom_dirs", { - downloadLocation: downloadLocation - }); - - set({ - importantDirs: importantDirs, - customDirs: customDirs - }); - - return get(); - } + setAvailableProfiles: async () => { + set({ + availableProfiles: [ + { + "uuid": "2d78800c-1397-496a-83c1-50759607999a", + "url": "https://gist.githubusercontent.com/EliteAsian123/1ecaef91dfcf194345b80e1112896411/raw/46242adc1d449f6f718548311f2bbdfff9d5c606/profile.json", + "name": "YARG", + "iconUrl": "@/icons/Stable.png", + + "localeOverrides": {} + } + ] + }); + return get(); } })); - -export const getPathForProfile = async (store: ProfileStore, profile: Profile) => { - if (store.customDirs === undefined) { - throw Error("Custom directories are not initialized!"); - } - - if (profile.type === "setlist") { - return await path.join(store.customDirs.setlistFolder, profile.uuid); - } else { - return await path.join(store.customDirs.yargFolder, profile.uuid); - } -}; diff --git a/src/profiles/types.ts b/src/profiles/types.ts index 0e4170d..b3d11f8 100644 --- a/src/profiles/types.ts +++ b/src/profiles/types.ts @@ -102,3 +102,10 @@ export interface SetlistProfile { metadata: SetlistMetadata, version: VersionInfo, } + +export type AvailableProfile = Localized<{ + uuid: string, + url: string, + name: string, + iconUrl: string, +}>; diff --git a/src/profiles/utils.ts b/src/profiles/utils.ts index 556a119..cbd1054 100644 --- a/src/profiles/utils.ts +++ b/src/profiles/utils.ts @@ -1,5 +1,19 @@ import { localizeObject } from "@app/utils/localized"; import { Metadata, Profile, Version } from "./types"; +import { path } from "@tauri-apps/api"; +import { DirectoriesStore } from "./directories"; + +export const getPathForProfile = async (store: DirectoriesStore, profile: Profile) => { + if (store.customDirs === undefined) { + throw Error("Custom directories are not initialized!"); + } + + if (profile.type === "setlist") { + return await path.join(store.customDirs.setlistFolder, profile.uuid); + } else { + return await path.join(store.customDirs.yargFolder, profile.uuid); + } +}; export const getProfileVersion = (profile: Profile): Version => { if (profile.version.type === "embedded") { diff --git a/src/routes/AppProfile/LaunchButton.tsx b/src/routes/AppProfile/LaunchButton.tsx index c272840..b76b7c2 100644 --- a/src/routes/AppProfile/LaunchButton.tsx +++ b/src/routes/AppProfile/LaunchButton.tsx @@ -20,7 +20,7 @@ export function LaunchButton({ profileState }: Props) { // Loading button if (loading) { - return ; } @@ -77,7 +77,7 @@ export function LaunchButton({ profileState }: Props) { ; } - return ; } diff --git a/src/utils/localized.ts b/src/utils/localized.ts index 961f5ce..278f059 100644 --- a/src/utils/localized.ts +++ b/src/utils/localized.ts @@ -19,6 +19,7 @@ export const localize = (obj: Localized, key: K, locale export const localizeObject = (obj: Localized, locale: string): T => { const { + // @ts-ignore: Used to remove this field from the object localeOverrides, ...omittedObj } = obj; From c944c8d5682b56cbeb44f9c3ee4eda2afd8e1edb Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Sat, 10 Aug 2024 00:06:40 -0400 Subject: [PATCH 42/98] Fix lint problems --- src/components/Onboarding/Pages/ComponentsPage.tsx | 2 +- src/profiles/directories.ts | 2 +- src/utils/localized.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/Onboarding/Pages/ComponentsPage.tsx b/src/components/Onboarding/Pages/ComponentsPage.tsx index d854e7d..098ce20 100644 --- a/src/components/Onboarding/Pages/ComponentsPage.tsx +++ b/src/components/Onboarding/Pages/ComponentsPage.tsx @@ -4,7 +4,7 @@ import styles from "./Pages.module.css"; interface Props { } -export const ComponentsPage: React.FC = (props: Props) => { +export const ComponentsPage: React.FC = () => { return <> You can download other applications and songs at any time after the initial onboarding process. diff --git a/src/profiles/directories.ts b/src/profiles/directories.ts index 11af0a5..7dd3b3b 100644 --- a/src/profiles/directories.ts +++ b/src/profiles/directories.ts @@ -19,7 +19,7 @@ export interface DirectoriesStore { setDirs: (downloadLocation?: string) => Promise; } -export const useDirectories = create()((set, get) => ({ +export const useDirectories = create()((set) => ({ setDirs: async (downloadLocation?: string) => { const importantDirs: ImportantDirs = await invoke("get_important_dirs"); diff --git a/src/utils/localized.ts b/src/utils/localized.ts index 278f059..096e84f 100644 --- a/src/utils/localized.ts +++ b/src/utils/localized.ts @@ -19,7 +19,7 @@ export const localize = (obj: Localized, key: K, locale export const localizeObject = (obj: Localized, locale: string): T => { const { - // @ts-ignore: Used to remove this field from the object + // eslint-disable-next-line @typescript-eslint/no-unused-vars localeOverrides, ...omittedObj } = obj; From 3f90d5a87164ca6f5268e4126d3697c4db5a3e55 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Sat, 10 Aug 2024 17:32:56 -0400 Subject: [PATCH 43/98] Added new "active profile" system --- src/components/Sidebar/Versions/List.tsx | 43 ++++++++++++------- src/hooks/useProfileState.ts | 22 +++++----- src/profiles/actions.ts | 20 ++++----- src/profiles/store.ts | 10 ++--- src/profiles/types.ts | 6 +++ src/profiles/utils.ts | 13 +++--- src/routes/AppProfile/LaunchButton.tsx | 4 +- src/routes/AppProfile/index.tsx | 6 ++- .../Processors/DownloadAndInstallTask.tsx | 13 +++--- src/tasks/Processors/UninstallTask.tsx | 11 ++--- src/tasks/Processors/base.ts | 10 ++--- src/tasks/queue.ts | 2 +- 12 files changed, 92 insertions(+), 68 deletions(-) diff --git a/src/components/Sidebar/Versions/List.tsx b/src/components/Sidebar/Versions/List.tsx index f8e0010..0a57071 100644 --- a/src/components/Sidebar/Versions/List.tsx +++ b/src/components/Sidebar/Versions/List.tsx @@ -3,33 +3,44 @@ import VersionSeparator from "./Separator"; import { AddIcon } from "@app/assets/Icons"; import { useProfileStore } from "@app/profiles/store"; import { NavLink } from "react-router-dom"; -import { localize } from "@app/utils/localized"; -import { ApplicationMetadata, SetlistMetadata } from "@app/profiles/types"; +import { Localized, localize } from "@app/utils/localized"; +import { Metadata } from "@app/profiles/types"; const ProfilesList: React.FC = () => { const profileStore = useProfileStore(); + function activeProfileList(type: "application" | "setlist") { + const output = []; + for (const activeProfile of profileStore.activeProfiles) { + const profile = activeProfile.profile; + if (profile.type !== type) { + continue; + } + + let name = activeProfile.displayName; + if (name === undefined) { + name = localize(profile.metadata as Localized, "name", "en-US"); + } + + output.push( + + {name} + + ); + } + return output; + } + return
- { - profileStore.profiles.filter(i => i.type === "application").map(i => - - {localize(i.metadata as ApplicationMetadata, "name", "en-US")} - - ) - } + {activeProfileList("application")} + - { - profileStore.profiles.filter(i => i.type === "setlist").map(i => - - {localize(i.metadata as SetlistMetadata, "name", "en-US")} - - ) - } + {activeProfileList("setlist")}
; }; diff --git a/src/hooks/useProfileState.ts b/src/hooks/useProfileState.ts index 5b0ce37..4dee4a2 100644 --- a/src/hooks/useProfileState.ts +++ b/src/hooks/useProfileState.ts @@ -1,7 +1,7 @@ import { downloadAndInstall, launch, openInstallFolder, uninstall } from "@app/profiles/actions"; import { useDirectories } from "@app/profiles/directories"; import { useProfileStore } from "@app/profiles/store"; -import { Profile, Version } from "@app/profiles/types"; +import { ActiveProfile, Version } from "@app/profiles/types"; import { getPathForProfile, getProfileVersion } from "@app/profiles/utils"; import { useTask } from "@app/tasks"; import { IBaseTask } from "@app/tasks/Processors/base"; @@ -18,7 +18,7 @@ export enum ProfileFolderState { export interface ProfileState { loading: boolean, - profile: Profile, + activeProfile: ActiveProfile, profilePath: string, folderState: ProfileFolderState, @@ -42,8 +42,8 @@ export const useProfileState = (profileUUID: string): ProfileState => { const currentTask = useTask(profileUUID); const [version, setVersion] = useState({} as Version); - const profile = profiles.getProfileByUUID(profileUUID); - if (profile === undefined) { + const activeProfile = profiles.getProfileByUUID(profileUUID); + if (activeProfile === undefined) { throw new Error("Undefined profile"); } @@ -62,8 +62,8 @@ export const useProfileState = (profileUUID: string): ProfileState => { } (async () => { - const path = await getPathForProfile(directories, profile); - const version = getProfileVersion(profile); + const path = await getPathForProfile(directories, activeProfile); + const version = getProfileVersion(activeProfile); const result = await invoke("profile_folder_state", { path: path, @@ -80,7 +80,7 @@ export const useProfileState = (profileUUID: string): ProfileState => { return { loading, - profile, + activeProfile, profilePath, folderState, @@ -92,7 +92,7 @@ export const useProfileState = (profileUUID: string): ProfileState => { return; } - await downloadAndInstall(profile, profilePath, () => { + await downloadAndInstall(activeProfile, profilePath, () => { setFolderState(ProfileFolderState.UpToDate); }); }, @@ -101,7 +101,7 @@ export const useProfileState = (profileUUID: string): ProfileState => { return; } - await uninstall(profile, profilePath, () => { + await uninstall(activeProfile, profilePath, () => { setFolderState(ProfileFolderState.FirstDownload); }); }, @@ -110,14 +110,14 @@ export const useProfileState = (profileUUID: string): ProfileState => { return; } - await launch(profile, profilePath); + await launch(activeProfile, profilePath); }, openInstallFolder: async() => { if (loading) { return; } - await openInstallFolder(profile, profilePath); + await openInstallFolder(activeProfile, profilePath); } }; }; diff --git a/src/profiles/actions.ts b/src/profiles/actions.ts index 75405d7..314e36e 100644 --- a/src/profiles/actions.ts +++ b/src/profiles/actions.ts @@ -1,5 +1,5 @@ import { DownloadAndInstallTask } from "@app/tasks/Processors/DownloadAndInstallTask"; -import { Profile } from "./types"; +import { ActiveProfile } from "./types"; import { addTask } from "@app/tasks"; import { UninstallTask } from "@app/tasks/Processors/UninstallTask"; import { getOS } from "@app/utils/os"; @@ -8,7 +8,7 @@ import { invoke } from "@tauri-apps/api"; import { getProfileVersion } from "./utils"; import { useDirectories } from "./directories"; -export const downloadAndInstall = async (profile: Profile, profilePath: string, onFinish?: () => void): Promise => { +export const downloadAndInstall = async (profile: ActiveProfile, profilePath: string, onFinish?: () => void): Promise => { const directories = useDirectories.getState(); if (directories.importantDirs === undefined) { return; @@ -20,7 +20,7 @@ export const downloadAndInstall = async (profile: Profile, profilePath: string, addTask(task); }; -export const uninstall = async (profile: Profile, profilePath: string, onFinish?: () => void): Promise => { +export const uninstall = async (profile: ActiveProfile, profilePath: string, onFinish?: () => void): Promise => { const directories = useDirectories.getState(); if (directories.importantDirs === undefined) { return; @@ -30,13 +30,13 @@ export const uninstall = async (profile: Profile, profilePath: string, onFinish? addTask(task); }; -export const launch = async (profile: Profile, profilePath: string): Promise => { - if (profile.type !== "application") { - showErrorDialog(`Cannot launch profile of type "${profile.type}"!`); +export const launch = async (activeProfile: ActiveProfile, profilePath: string): Promise => { + if (activeProfile.profile.type !== "application") { + showErrorDialog(`Cannot launch profile of type "${activeProfile.profile.type}"!`); return; } - const version = getProfileVersion(profile); + const version = getProfileVersion(activeProfile); const os = await getOS(); const launchOptions = version.launchOptions?.[os]; @@ -56,9 +56,9 @@ export const launch = async (profile: Profile, profilePath: string): Promise => { - if (profile.type !== "application") { - showErrorDialog(`Cannot open install folder of type "${profile.type}"!`); +export const openInstallFolder = async (activeProfile: ActiveProfile, profilePath: string): Promise => { + if (activeProfile.profile.type !== "application") { + showErrorDialog(`Cannot open install folder of type "${activeProfile.profile.type}"!`); return; } diff --git a/src/profiles/store.ts b/src/profiles/store.ts index f782c05..d9d18fb 100644 --- a/src/profiles/store.ts +++ b/src/profiles/store.ts @@ -1,20 +1,20 @@ import { create } from "zustand"; -import { AvailableProfile, Profile } from "./types"; +import { ActiveProfile, AvailableProfile } from "./types"; export interface ProfileStore { availableProfiles: AvailableProfile[], - profiles: Profile[], + activeProfiles: ActiveProfile[], - getProfileByUUID: (uuid: string) => Profile | undefined, + getProfileByUUID: (uuid: string) => ActiveProfile | undefined, setAvailableProfiles: () => Promise, } export const useProfileStore = create()((set, get) => ({ availableProfiles: [], - profiles: [], + activeProfiles: [], getProfileByUUID: (uuid) => { - return get().profiles.find(i => i.uuid === uuid); + return get().activeProfiles.find(i => i.uuid === uuid); }, setAvailableProfiles: async () => { set({ diff --git a/src/profiles/types.ts b/src/profiles/types.ts index b3d11f8..6d9502c 100644 --- a/src/profiles/types.ts +++ b/src/profiles/types.ts @@ -109,3 +109,9 @@ export type AvailableProfile = Localized<{ name: string, iconUrl: string, }>; + +export interface ActiveProfile { + uuid: string, + displayName?: string, + profile: Profile, +} diff --git a/src/profiles/utils.ts b/src/profiles/utils.ts index cbd1054..eee98a0 100644 --- a/src/profiles/utils.ts +++ b/src/profiles/utils.ts @@ -1,21 +1,22 @@ import { localizeObject } from "@app/utils/localized"; -import { Metadata, Profile, Version } from "./types"; +import { ActiveProfile, Metadata, Profile, Version } from "./types"; import { path } from "@tauri-apps/api"; import { DirectoriesStore } from "./directories"; -export const getPathForProfile = async (store: DirectoriesStore, profile: Profile) => { +export const getPathForProfile = async (store: DirectoriesStore, activeProfile: ActiveProfile) => { if (store.customDirs === undefined) { throw Error("Custom directories are not initialized!"); } - if (profile.type === "setlist") { - return await path.join(store.customDirs.setlistFolder, profile.uuid); + if (activeProfile.profile.type === "setlist") { + return await path.join(store.customDirs.setlistFolder, activeProfile.uuid); } else { - return await path.join(store.customDirs.yargFolder, profile.uuid); + return await path.join(store.customDirs.yargFolder, activeProfile.uuid); } }; -export const getProfileVersion = (profile: Profile): Version => { +export const getProfileVersion = (activeProfile: ActiveProfile): Version => { + const profile = activeProfile.profile; if (profile.version.type === "embedded") { return profile.version.version; } diff --git a/src/routes/AppProfile/LaunchButton.tsx b/src/routes/AppProfile/LaunchButton.tsx index b76b7c2..2dd939a 100644 --- a/src/routes/AppProfile/LaunchButton.tsx +++ b/src/routes/AppProfile/LaunchButton.tsx @@ -11,13 +11,15 @@ interface Props { export function LaunchButton({ profileState }: Props) { const { loading, - profile, + activeProfile, folderState, currentTask, downloadAndInstall, launch, } = profileState; + const profile = activeProfile.profile; + // Loading button if (loading) { return
diff --git a/src/tasks/Processors/DownloadAndInstallTask.tsx b/src/tasks/Processors/DownloadAndInstallTask.tsx index 904d129..80d923f 100644 --- a/src/tasks/Processors/DownloadAndInstallTask.tsx +++ b/src/tasks/Processors/DownloadAndInstallTask.tsx @@ -1,4 +1,4 @@ -import { Profile, Version } from "@app/profiles/types"; +import { ActiveProfile, Version } from "@app/profiles/types"; import { BaseTask, IBaseTask } from "./base"; import { invoke } from "@tauri-apps/api"; import { showErrorDialog } from "@app/dialogs/dialogUtil"; @@ -12,7 +12,7 @@ export class DownloadAndInstallTask extends BaseTask implements IBaseTask { version: Version; tempPath: string; - constructor(profile: Profile, version: Version, profilePath: string, tempPath: string, onFinish?: () => void) { + constructor(profile: ActiveProfile, version: Version, profilePath: string, tempPath: string, onFinish?: () => void) { super(profile, profilePath); this.onFinish = onFinish; @@ -25,7 +25,7 @@ export class DownloadAndInstallTask extends BaseTask implements IBaseTask { try { await invoke("download_and_install_profile", { profilePath: this.profilePath, - uuid: this.profile.uuid, + uuid: this.activeProfile.uuid, tag: this.version.tag, tempPath: this.tempPath, content: this.version.content @@ -36,8 +36,9 @@ export class DownloadAndInstallTask extends BaseTask implements IBaseTask { } getQueueEntry(bannerMode: boolean): ReactNode { - if (this.profile.type === "application") { - const metadata = localizeObject(this.profile.metadata, "en-US"); + const profile = this.activeProfile.profile; + if (profile.type === "application") { + const metadata = localizeObject(profile.metadata, "en-US"); return ; } else { - const metadata = localizeObject(this.profile.metadata, "en-US"); + const metadata = localizeObject(profile.metadata, "en-US"); return void; - constructor(profile: Profile, profilePath: string, onFinish?: () => void) { + constructor(profile: ActiveProfile, profilePath: string, onFinish?: () => void) { super(profile, profilePath); this.onFinish = onFinish; } @@ -25,15 +25,16 @@ export class UninstallTask extends BaseTask implements IBaseTask { } getQueueEntry(bannerMode: boolean): ReactNode { - if (this.profile.type === "application") { - const metadata = localizeObject(this.profile.metadata, "en-US"); + const profile = this.activeProfile.profile; + if (profile.type === "application") { + const metadata = localizeObject(profile.metadata, "en-US"); return ; } else { - const metadata = localizeObject(this.profile.metadata, "en-US"); + const metadata = localizeObject(profile.metadata, "en-US"); return void; @@ -18,13 +18,13 @@ export class BaseTask { startedAt?: Date; taskUUID: string; - profile: Profile; + activeProfile: ActiveProfile; profilePath: string; - constructor(profile: Profile, profilePath: string) { + constructor(profile: ActiveProfile, profilePath: string) { this.taskUUID = generateUUID(); - this.profile = profile; + this.activeProfile = profile; this.profilePath = profilePath; } } diff --git a/src/tasks/queue.ts b/src/tasks/queue.ts index a80370a..1571783 100644 --- a/src/tasks/queue.ts +++ b/src/tasks/queue.ts @@ -35,7 +35,7 @@ const next = () => { const findTask = (queue: TaskQueueStore, profileUUID: string) => { for (const task of queue) { - if (task.profile.uuid === profileUUID) { + if (task.activeProfile.uuid === profileUUID) { return task; } } From dbabe8ab4da75465086afead8bb72c842052b7f2 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Sat, 10 Aug 2024 17:51:31 -0400 Subject: [PATCH 44/98] Started marketplace page --- src/assets/Icons/Marketplace.svg | 3 +++ src/assets/Icons/index.ts | 4 +++- src/components/Sidebar/Sidebar.module.css | 9 +++++---- src/components/Sidebar/index.tsx | 7 ++++++- src/routes/ErrorScreen/index.tsx | 3 +-- src/routes/Marketplace/Marketplace.module.css | 0 src/routes/Marketplace/index.tsx | 7 +++++++ src/routes/index.tsx | 5 +++++ src/styles.css | 4 ++-- 9 files changed, 32 insertions(+), 10 deletions(-) create mode 100644 src/assets/Icons/Marketplace.svg create mode 100644 src/routes/Marketplace/Marketplace.module.css create mode 100644 src/routes/Marketplace/index.tsx diff --git a/src/assets/Icons/Marketplace.svg b/src/assets/Icons/Marketplace.svg new file mode 100644 index 0000000..432c36d --- /dev/null +++ b/src/assets/Icons/Marketplace.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/Icons/index.ts b/src/assets/Icons/index.ts index 39d3d14..c8e8616 100644 --- a/src/assets/Icons/index.ts +++ b/src/assets/Icons/index.ts @@ -33,6 +33,7 @@ import BackIcon from "./Back.svg?react"; import WarningIcon from "./Warning.svg?react"; import DropdownIcon from "./Dropdown.svg?react"; import VerifiedIcon from "./Verified.svg?react"; +import MarketplaceIcon from "./Marketplace.svg?react"; export { AddIcon, @@ -62,5 +63,6 @@ export { BackIcon, WarningIcon, DropdownIcon, - VerifiedIcon + VerifiedIcon, + MarketplaceIcon }; diff --git a/src/components/Sidebar/Sidebar.module.css b/src/components/Sidebar/Sidebar.module.css index b18f68d..88f23ea 100644 --- a/src/components/Sidebar/Sidebar.module.css +++ b/src/components/Sidebar/Sidebar.module.css @@ -48,9 +48,10 @@ .button { display: flex; - gap: 10px; - background: rgba(255, 255, 255, 0); + background: transparent; + color: #B8BDD6; + border-radius: 13px; transition: background 0.1s; @@ -58,7 +59,8 @@ [aria-current="page"] > .button, .button:hover { - background: rgba(255, 255, 255, 0.025); + background: #0D0F23; + color: #D4D9EE; } .button .icon { @@ -71,7 +73,6 @@ .button .icon > * { height: 20px; - color: var(--accent); } .button .text { diff --git a/src/components/Sidebar/index.tsx b/src/components/Sidebar/index.tsx index 8926104..9b21bb4 100644 --- a/src/components/Sidebar/index.tsx +++ b/src/components/Sidebar/index.tsx @@ -1,5 +1,5 @@ import styles from "./Sidebar.module.css"; -import { DiscordIcon, TwitterIcon, GithubIcon, HomeIcon, QueueIcon } from "@app/assets/Icons"; +import { DiscordIcon, TwitterIcon, GithubIcon, HomeIcon, QueueIcon, MarketplaceIcon } from "@app/assets/Icons"; import SidebarMenuButton from "./SidebarMenuButton"; import { NavLink } from "react-router-dom"; import ProfilesList from "./Versions/List"; @@ -30,6 +30,11 @@ const Sidebar: React.FC = () => { Downloads {queue.size <= 0 ? "" : `(${queue.size})`} + + }> + Marketplace + +
diff --git a/src/routes/ErrorScreen/index.tsx b/src/routes/ErrorScreen/index.tsx index ba05f72..06ac312 100644 --- a/src/routes/ErrorScreen/index.tsx +++ b/src/routes/ErrorScreen/index.tsx @@ -3,7 +3,6 @@ import { error as LogError } from "tauri-plugin-log-api"; import { FallbackProps } from "react-error-boundary"; import { appWindow } from "@tauri-apps/api/window"; - export function ErrorScreen({error}: FallbackProps) { return

@@ -19,4 +18,4 @@ export function ErrorScreen({error}: FallbackProps) { export function onError(error: Error) { LogError(`${error}`); -} \ No newline at end of file +} diff --git a/src/routes/Marketplace/Marketplace.module.css b/src/routes/Marketplace/Marketplace.module.css new file mode 100644 index 0000000..e69de29 diff --git a/src/routes/Marketplace/index.tsx b/src/routes/Marketplace/index.tsx new file mode 100644 index 0000000..006557d --- /dev/null +++ b/src/routes/Marketplace/index.tsx @@ -0,0 +1,7 @@ +import styles from "./Marketplace.module.css"; + +function Marketplace() { + return <>; +} + +export default Marketplace; diff --git a/src/routes/index.tsx b/src/routes/index.tsx index 9721c0f..7d8aa0d 100644 --- a/src/routes/index.tsx +++ b/src/routes/index.tsx @@ -6,6 +6,7 @@ import Settings from "@app/routes/Settings"; import Queue from "@app/routes/Queue"; import NewsPage from "./NewsPage"; import AppProfile from "./AppProfile"; +import Marketplace from "./Marketplace"; const Router = createBrowserRouter([ { @@ -24,6 +25,10 @@ const Router = createBrowserRouter([ path: "/queue", element: }, + { + path: "/marketplace", + element: + }, { path: "/app-profile/:uuid", element: diff --git a/src/styles.css b/src/styles.css index 7385d72..b697f14 100644 --- a/src/styles.css +++ b/src/styles.css @@ -15,12 +15,12 @@ --green: rgb(var(--green-rgb)); --green-10: rgba(var(--green-rgb), .1); - --titleBarBackground: #000209; + --titleBarBackground: #05060B; --titleBarPrimary: #FFF; --titleBarAccent: #868AA8; --titleBarHeight: 30px; - --sideBarBackground: #05060B; + --sideBarBackground: #070810; --sideBarSeparatorColor: #394452; --sideBarSelection: rgba(255, 255, 255, 0.1); From e00d8db28700cb8293bef97636f6b194b5ddb2ea Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Sat, 10 Aug 2024 18:32:48 -0400 Subject: [PATCH 45/98] Made the marketplace work! (no styles yet) --- src/components/LoadingScreen/index.tsx | 6 +++ src/profiles/store.ts | 73 +++++++++++++++++++++++++- src/profiles/types.ts | 1 + src/routes/Marketplace/index.tsx | 15 +++++- src/settings.ts | 7 ++- 5 files changed, 99 insertions(+), 3 deletions(-) diff --git a/src/components/LoadingScreen/index.tsx b/src/components/LoadingScreen/index.tsx index 4ef041d..0c762b2 100644 --- a/src/components/LoadingScreen/index.tsx +++ b/src/components/LoadingScreen/index.tsx @@ -32,7 +32,10 @@ const LoadingScreen: React.FC = (props: Props) => { useEffect(() => { (async () => { try { + // Make sure to save the settings afterwards in case a new key has been added + // If "get" is called and the settings didn't save, it would cause an error. await settingsManager.initialize(); + await settingsManager.syncCache(); const onboardingCompleted = settingsManager.getCache("onboardingCompleted"); @@ -50,6 +53,9 @@ const LoadingScreen: React.FC = (props: Props) => { await directories.setDirs(downloadLocation); directories = useDirectories.getState(); + await profileStore.activateProfilesFromSettings(); + profileStore = useProfileStore.getState(); + if (!onboardingCompleted) { props.setOnboarding(true); } else { diff --git a/src/profiles/store.ts b/src/profiles/store.ts index d9d18fb..abdbea3 100644 --- a/src/profiles/store.ts +++ b/src/profiles/store.ts @@ -1,5 +1,8 @@ import { create } from "zustand"; -import { ActiveProfile, AvailableProfile } from "./types"; +import { ActiveProfile, AvailableProfile, Profile } from "./types"; +import { showErrorDialog } from "@app/dialogs/dialogUtil"; +import { v4 as createUUID } from "uuid"; +import { settingsManager } from "@app/settings"; export interface ProfileStore { availableProfiles: AvailableProfile[], @@ -7,6 +10,9 @@ export interface ProfileStore { getProfileByUUID: (uuid: string) => ActiveProfile | undefined, setAvailableProfiles: () => Promise, + + activateProfilesFromSettings: () => Promise, + activateProfile: (profile: AvailableProfile) => Promise, } export const useProfileStore = create()((set, get) => ({ @@ -30,5 +36,70 @@ export const useProfileStore = create()((set, get) => ({ ] }); return get(); + }, + + activateProfilesFromSettings: async () => { + const activeProfiles = settingsManager.getCache("activeProfiles"); + + // Attempt to update the profiles + let errored = false; + for (const profile of activeProfiles) { + try { + const response = await fetch(profile.originalUrl); + if (!response.ok) { + throw new Error(`Failed to fetch profile! Response status: ${response.status}`); + } + + // TODO: Schema + const json = await response.json(); + profile.profile = json; + } catch (e) { + console.error(e); + errored = true; + } + } + + set({ + activeProfiles + }); + + if (errored) { + showErrorDialog("One or more active application/setlist profiles could not be fetched! Do they still exist?"); + } + }, + activateProfile: async (availableProfile: AvailableProfile) => { + let profile: Profile; + try { + const response = await fetch(availableProfile.url); + if (!response.ok) { + throw new Error(`Failed to fetch profile! Response status: ${response.status}`); + } + + // TODO: Schema + const json = await response.json(); + profile = json; + } catch (e) { + showErrorDialog(e as string); + return; + } + + const activeProfile: ActiveProfile = { + uuid: createUUID(), + originalUrl: availableProfile.url, + displayName: undefined, + profile: profile, + }; + + // Add to the profile state + const profiles = get().activeProfiles; + profiles.push(activeProfile); + set({ + activeProfiles: profiles + }); + + // Add to the settings + const activeSetting = await settingsManager.get("activeProfiles"); + activeSetting.push(activeProfile); + await settingsManager.set("activeProfiles", activeSetting); } })); diff --git a/src/profiles/types.ts b/src/profiles/types.ts index 6d9502c..87ffb7f 100644 --- a/src/profiles/types.ts +++ b/src/profiles/types.ts @@ -112,6 +112,7 @@ export type AvailableProfile = Localized<{ export interface ActiveProfile { uuid: string, + originalUrl: string, displayName?: string, profile: Profile, } diff --git a/src/routes/Marketplace/index.tsx b/src/routes/Marketplace/index.tsx index 006557d..0f79f19 100644 --- a/src/routes/Marketplace/index.tsx +++ b/src/routes/Marketplace/index.tsx @@ -1,7 +1,20 @@ +import { useProfileStore } from "@app/profiles/store"; import styles from "./Marketplace.module.css"; +import Button from "@app/components/Button"; +import { localize } from "@app/utils/localized"; function Marketplace() { - return <>; + const profileStore = useProfileStore(); + + return

+ { + profileStore.availableProfiles.map(i => + + ) + } +
; } export default Marketplace; diff --git a/src/settings.ts b/src/settings.ts index bce084b..177d052 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -1,11 +1,16 @@ import { SettingsManager } from "tauri-settings"; +import { ActiveProfile } from "./profiles/types"; export interface Settings { onboardingCompleted: boolean, downloadLocation: string, + activeProfiles: ActiveProfile[], } export const settingsManager = new SettingsManager({ onboardingCompleted: false, - downloadLocation: "" + downloadLocation: "", + activeProfiles: [] +}, { + prettify: true }); From 3ca9942abcdd1cb1b89a934fe193687d50d2d940 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Sun, 11 Aug 2024 18:18:51 -0400 Subject: [PATCH 46/98] Added dropdown back on profiles page --- src/assets/Icons/More.svg | 5 ++ src/assets/Icons/index.ts | 4 +- src/components/Button/index.tsx | 43 ++++++++++---- src/dialogs/Dialogs/TryCloseDialog.tsx | 2 +- .../Dialogs/UninstallBeforeRemoveDialog.tsx | 31 ++++++++++ src/dialogs/index.ts | 6 +- src/hooks/useProfileState.ts | 20 ++++++- src/profiles/store.ts | 15 +++-- src/routes/AppProfile/MoreDropdown.module.css | 39 +++++++++++++ src/routes/AppProfile/MoreDropdown.tsx | 57 +++++++++++++++++++ src/routes/AppProfile/index.tsx | 2 + 11 files changed, 203 insertions(+), 21 deletions(-) create mode 100644 src/assets/Icons/More.svg create mode 100644 src/dialogs/Dialogs/UninstallBeforeRemoveDialog.tsx create mode 100644 src/routes/AppProfile/MoreDropdown.module.css create mode 100644 src/routes/AppProfile/MoreDropdown.tsx diff --git a/src/assets/Icons/More.svg b/src/assets/Icons/More.svg new file mode 100644 index 0000000..234a121 --- /dev/null +++ b/src/assets/Icons/More.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/Icons/index.ts b/src/assets/Icons/index.ts index c8e8616..8e08c19 100644 --- a/src/assets/Icons/index.ts +++ b/src/assets/Icons/index.ts @@ -34,6 +34,7 @@ import WarningIcon from "./Warning.svg?react"; import DropdownIcon from "./Dropdown.svg?react"; import VerifiedIcon from "./Verified.svg?react"; import MarketplaceIcon from "./Marketplace.svg?react"; +import MoreIcon from "./More.svg?react"; export { AddIcon, @@ -64,5 +65,6 @@ export { WarningIcon, DropdownIcon, VerifiedIcon, - MarketplaceIcon + MarketplaceIcon, + MoreIcon, }; diff --git a/src/components/Button/index.tsx b/src/components/Button/index.tsx index 762e502..880bd2f 100644 --- a/src/components/Button/index.tsx +++ b/src/components/Button/index.tsx @@ -1,5 +1,5 @@ import styles from "./Button.module.css"; -import { CSSProperties } from "react"; +import { CSSProperties, forwardRef } from "react"; export enum ButtonColor { "GREEN", @@ -27,10 +27,26 @@ export type ButtonProps = React.PropsWithChildren<{ height?: number, }>; -const Button: React.FC = (props: ButtonProps) => { +const Button = forwardRef(function Button(props, ref) { + const { + className, + style, + + border, + rounded, + color, + + width, + height, + + children, + + ...otherProps + } = props; + // Get the button color class let classes; - switch (props.color) { + switch (color) { case ButtonColor.BLUE: classes = [styles.colorsBlue]; break; @@ -54,24 +70,29 @@ const Button: React.FC = (props: ButtonProps) => { break; } - if (props.border) { + if (border) { classes.push(styles.border); } - if (props.rounded) { + if (rounded) { classes.push(styles.rounded); } // Get the styles const newStyles = { - width: props.width, - height: props.height, - ...props.style, + width, + height, + ...style, } as ButtonCSS; - return ; -}; +}); export default Button; diff --git a/src/dialogs/Dialogs/TryCloseDialog.tsx b/src/dialogs/Dialogs/TryCloseDialog.tsx index 68c8dda..2552d80 100644 --- a/src/dialogs/Dialogs/TryCloseDialog.tsx +++ b/src/dialogs/Dialogs/TryCloseDialog.tsx @@ -28,4 +28,4 @@ export class TryCloseDialog extends BaseDialog> { ; } -} \ No newline at end of file +} diff --git a/src/dialogs/Dialogs/UninstallBeforeRemoveDialog.tsx b/src/dialogs/Dialogs/UninstallBeforeRemoveDialog.tsx new file mode 100644 index 0000000..3bfa3d8 --- /dev/null +++ b/src/dialogs/Dialogs/UninstallBeforeRemoveDialog.tsx @@ -0,0 +1,31 @@ +import Button, { ButtonColor } from "@app/components/Button"; +import { BaseDialog } from "./BaseDialog"; +import { closeDialog } from ".."; + +export class UninstallBeforeDeleteDialog extends BaseDialog> { + constructor(props: Record) { + super(props); + } + + getInnerContents() { + return <> +

+ Before you delete the profile, you must first uninstall the application/setlist. + Although, you can always add the profile back in the future, this cannot be undone + and all profile settings will be deleted (application data will remain untouched). +

+ ; + } + + getTitle() { + return <>Cannot Delete Profile; + } + + getButtons() { + return <> + + ; + } +} diff --git a/src/dialogs/index.ts b/src/dialogs/index.ts index 6c57257..30aba6b 100644 --- a/src/dialogs/index.ts +++ b/src/dialogs/index.ts @@ -13,9 +13,9 @@ const store = createStore( () => ({open: false}) ); -export const createAndShowDialog = async (content: typeof Component, props?: Record): Promise => { +export const createAndShowDialog = async (content: typeof Component, props?: Record): Promise => { const current = store.getState(); - if(current.open) return; + if (current.open) return; store.setState({ content, @@ -48,4 +48,4 @@ export const setDialogOpen = (open: boolean) => { store.setState({ open }); -}; \ No newline at end of file +}; diff --git a/src/hooks/useProfileState.ts b/src/hooks/useProfileState.ts index 4dee4a2..96fc579 100644 --- a/src/hooks/useProfileState.ts +++ b/src/hooks/useProfileState.ts @@ -1,3 +1,5 @@ +import { createAndShowDialog } from "@app/dialogs"; +import { UninstallBeforeDeleteDialog } from "@app/dialogs/Dialogs/UninstallBeforeRemoveDialog"; import { downloadAndInstall, launch, openInstallFolder, uninstall } from "@app/profiles/actions"; import { useDirectories } from "@app/profiles/directories"; import { useProfileStore } from "@app/profiles/store"; @@ -7,6 +9,7 @@ import { useTask } from "@app/tasks"; import { IBaseTask } from "@app/tasks/Processors/base"; import { invoke } from "@tauri-apps/api"; import { useEffect, useState } from "react"; +import { useNavigate } from "react-router-dom"; export enum ProfileFolderState { Error = 0, @@ -29,11 +32,13 @@ export interface ProfileState { uninstall: () => Promise, launch: () => Promise, openInstallFolder: () => Promise, + deleteProfile: () => Promise, } export const useProfileState = (profileUUID: string): ProfileState => { const directories = useDirectories(); const profiles = useProfileStore(); + const navigate = useNavigate(); const [loading, setLoading] = useState(true); const [profilePath, setProfilePath] = useState(""); @@ -112,12 +117,25 @@ export const useProfileState = (profileUUID: string): ProfileState => { await launch(activeProfile, profilePath); }, - openInstallFolder: async() => { + openInstallFolder: async () => { if (loading) { return; } await openInstallFolder(activeProfile, profilePath); + }, + deleteProfile: async () => { + if (loading) { + return; + } + + if (folderState !== ProfileFolderState.FirstDownload && folderState !== ProfileFolderState.UpdateRequired) { + createAndShowDialog(UninstallBeforeDeleteDialog); + return; + } + + navigate("/"); + await profiles.removeProfile(activeProfile.uuid); } }; }; diff --git a/src/profiles/store.ts b/src/profiles/store.ts index abdbea3..999e9e2 100644 --- a/src/profiles/store.ts +++ b/src/profiles/store.ts @@ -13,6 +13,7 @@ export interface ProfileStore { activateProfilesFromSettings: () => Promise, activateProfile: (profile: AvailableProfile) => Promise, + removeProfile: (uuid: string) => Promise, } export const useProfileStore = create()((set, get) => ({ @@ -97,9 +98,15 @@ export const useProfileStore = create()((set, get) => ({ activeProfiles: profiles }); - // Add to the settings - const activeSetting = await settingsManager.get("activeProfiles"); - activeSetting.push(activeProfile); - await settingsManager.set("activeProfiles", activeSetting); + await settingsManager.set("activeProfiles", profiles); + }, + removeProfile: async (uuid: string) => { + let profiles = get().activeProfiles; + profiles = profiles.filter(i => i.uuid !== uuid); + set({ + activeProfiles: profiles + }); + + await settingsManager.set("activeProfiles", profiles); } })); diff --git a/src/routes/AppProfile/MoreDropdown.module.css b/src/routes/AppProfile/MoreDropdown.module.css new file mode 100644 index 0000000..473b969 --- /dev/null +++ b/src/routes/AppProfile/MoreDropdown.module.css @@ -0,0 +1,39 @@ +.content { + width: 300px; + background: var(--sideBarBackground); + + border-radius: 8px; + padding: 5px; + + box-shadow: 0px 10px 38px -10px rgba(22, 23, 24, 0.35), 0px 10px 20px -15px rgba(22, 23, 24, 0.2); +} + +.item { + display: flex; + align-items: center; + position: relative; + + border-radius: 8px; + padding: 15px; + + font-size: 14px; + font-weight: 700; + text-transform: uppercase; + background: rgba(255, 255, 255, 0); + + color: var(--primary); + + transition: background 0.1s; + + outline: none; + user-select: none; + cursor: pointer; +} + +.item[data-highlighted] { + background: var(--sideBarSelection); +} + +.arrow { + fill: var(--sideBarBackground); +} diff --git a/src/routes/AppProfile/MoreDropdown.tsx b/src/routes/AppProfile/MoreDropdown.tsx new file mode 100644 index 0000000..6ef88da --- /dev/null +++ b/src/routes/AppProfile/MoreDropdown.tsx @@ -0,0 +1,57 @@ +import { MoreIcon } from "@app/assets/Icons"; +import Button, { ButtonColor } from "@app/components/Button"; +import * as DropdownMenu from "@radix-ui/react-dropdown-menu"; +import styles from "./MoreDropdown.module.css"; +import { ProfileState } from "@app/hooks/useProfileState"; + +interface Props { + profileState: ProfileState +} + +type ItemProps = React.PropsWithChildren<{ + onClick?: React.MouseEventHandler +}>; + +const MoreDropdown: React.FC = (props: Props) => { + const { + openInstallFolder, + uninstall, + deleteProfile + } = props.profileState; + + const Item: React.FC = (props: ItemProps) => { + return + {props.children} + ; + }; + + return + + + + + + + + await openInstallFolder()}> + Open Install Folder + + await uninstall()}> + Uninstall + + await deleteProfile()}> + Delete Profile + + + + + + ; +}; + +export default MoreDropdown; diff --git a/src/routes/AppProfile/index.tsx b/src/routes/AppProfile/index.tsx index a56f269..4c1eba9 100644 --- a/src/routes/AppProfile/index.tsx +++ b/src/routes/AppProfile/index.tsx @@ -7,6 +7,7 @@ import { localizeMetadata, processAssetUrl } from "@app/profiles/utils"; import Box from "@app/components/Box"; import { ApplicationMetadata } from "@app/profiles/types"; import Button, { ButtonColor } from "@app/components/Button"; +import MoreDropdown from "./MoreDropdown"; function AppProfile() { const { uuid } = useParams(); @@ -48,6 +49,7 @@ function AppProfile() {
+
From 39e81c91a34f09fedc1d1f90f270af07801be620 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Mon, 12 Aug 2024 22:43:22 -0400 Subject: [PATCH 47/98] Added info for last time played to active profiles --- .../NewsSection/NewsEntry/index.tsx | 5 ++-- src/hooks/useProfileState.ts | 5 +++- src/profiles/store.ts | 13 +++++++++++ src/profiles/types.ts | 3 +++ src/routes/AppProfile/AppProfile.module.css | 6 +++++ src/routes/AppProfile/index.tsx | 23 +++++++++++++------ src/utils/timeFormat.ts | 14 +++++++++-- 7 files changed, 57 insertions(+), 12 deletions(-) diff --git a/src/components/NewsSection/NewsEntry/index.tsx b/src/components/NewsSection/NewsEntry/index.tsx index 8dd9945..6d1c2e7 100644 --- a/src/components/NewsSection/NewsEntry/index.tsx +++ b/src/components/NewsSection/NewsEntry/index.tsx @@ -9,6 +9,7 @@ import { intlFormatDistance } from "date-fns"; import { newsBaseURL } from "@app/utils/consts"; import { useNewsAuthorSettings } from "@app/hooks/useNewsAuthor"; import { useQueries } from "@tanstack/react-query"; +import { distanceFromToday } from "@app/utils/timeFormat"; interface Props { article: ArticleData; @@ -31,7 +32,7 @@ const NewsEntry: React.FC = ({ article }: Props) => { article.release ? (
- {intlFormatDistance(new Date(article.release), new Date())} + {distanceFromToday(article.release)}
) : "" } @@ -64,4 +65,4 @@ const NewsEntry: React.FC = ({ article }: Props) => { ; }; -export default NewsEntry; \ No newline at end of file +export default NewsEntry; diff --git a/src/hooks/useProfileState.ts b/src/hooks/useProfileState.ts index 96fc579..1063c3c 100644 --- a/src/hooks/useProfileState.ts +++ b/src/hooks/useProfileState.ts @@ -115,6 +115,9 @@ export const useProfileState = (profileUUID: string): ProfileState => { return; } + activeProfile.lastPlayed = new Date().toISOString(); + await profiles.updateProfile(activeProfile); + await launch(activeProfile, profilePath); }, openInstallFolder: async () => { @@ -129,7 +132,7 @@ export const useProfileState = (profileUUID: string): ProfileState => { return; } - if (folderState !== ProfileFolderState.FirstDownload && folderState !== ProfileFolderState.UpdateRequired) { + if (folderState !== ProfileFolderState.FirstDownload) { createAndShowDialog(UninstallBeforeDeleteDialog); return; } diff --git a/src/profiles/store.ts b/src/profiles/store.ts index 999e9e2..aaa6469 100644 --- a/src/profiles/store.ts +++ b/src/profiles/store.ts @@ -14,6 +14,7 @@ export interface ProfileStore { activateProfilesFromSettings: () => Promise, activateProfile: (profile: AvailableProfile) => Promise, removeProfile: (uuid: string) => Promise, + updateProfile: (activeProfile: ActiveProfile) => Promise, } export const useProfileStore = create()((set, get) => ({ @@ -107,6 +108,18 @@ export const useProfileStore = create()((set, get) => ({ activeProfiles: profiles }); + await settingsManager.set("activeProfiles", profiles); + }, + updateProfile: async (activeProfile: ActiveProfile) => { + const profiles = get().activeProfiles; + + const index = profiles.findIndex(i => i.uuid === activeProfile.uuid); + profiles[index] = activeProfile; + + set({ + activeProfiles: profiles + }); + await settingsManager.set("activeProfiles", profiles); } })); diff --git a/src/profiles/types.ts b/src/profiles/types.ts index 87ffb7f..bac0795 100644 --- a/src/profiles/types.ts +++ b/src/profiles/types.ts @@ -113,6 +113,9 @@ export type AvailableProfile = Localized<{ export interface ActiveProfile { uuid: string, originalUrl: string, + displayName?: string, + lastPlayed?: string, + profile: Profile, } diff --git a/src/routes/AppProfile/AppProfile.module.css b/src/routes/AppProfile/AppProfile.module.css index 765daad..80b9477 100644 --- a/src/routes/AppProfile/AppProfile.module.css +++ b/src/routes/AppProfile/AppProfile.module.css @@ -63,6 +63,7 @@ .bannerOptions { display: flex; padding: 15px; + padding-left: 25px; justify-content: space-between; align-items: center; align-self: stretch; @@ -87,6 +88,11 @@ font-weight: 400; } +.highlightedStat { + color: #DBDDE7; + font-weight: 500; +} + .bannerOptionsMain { display: flex; align-items: center; diff --git a/src/routes/AppProfile/index.tsx b/src/routes/AppProfile/index.tsx index 4c1eba9..19d4bb6 100644 --- a/src/routes/AppProfile/index.tsx +++ b/src/routes/AppProfile/index.tsx @@ -1,13 +1,15 @@ import { useParams } from "react-router-dom"; import { useProfileState } from "@app/hooks/useProfileState"; import styles from "./AppProfile.module.css"; -import { InformationIcon, VerifiedIcon } from "@app/assets/Icons"; +import { InformationIcon, TimeIcon, VerifiedIcon } from "@app/assets/Icons"; import { LaunchButton } from "./LaunchButton"; import { localizeMetadata, processAssetUrl } from "@app/profiles/utils"; import Box from "@app/components/Box"; import { ApplicationMetadata } from "@app/profiles/types"; import Button, { ButtonColor } from "@app/components/Button"; import MoreDropdown from "./MoreDropdown"; +import intlFormatDistance from "date-fns/intlFormatDistance"; +import { distanceFromToday } from "@app/utils/timeFormat"; function AppProfile() { const { uuid } = useParams(); @@ -40,12 +42,19 @@ function AppProfile() {
- {/*
- Last played 3 days ago -
-
- 400 hours played -
*/} + {profile.type === "application" && +
+ + + Last played + + {(activeProfile.lastPlayed === undefined || activeProfile.lastPlayed === null) + ? "never" + : distanceFromToday(activeProfile.lastPlayed)} + + +
+ }
diff --git a/src/utils/timeFormat.ts b/src/utils/timeFormat.ts index ef40475..f1e6770 100644 --- a/src/utils/timeFormat.ts +++ b/src/utils/timeFormat.ts @@ -1,7 +1,13 @@ +import { intlFormatDistance } from "date-fns"; + export const millisToDisplayLength = (length: number, long = false) => { const date = new Date(length); if (long) { - return `${date.getMinutes()} min ${date.getSeconds()} sec`; + if (date.getHours() !== 0) { + return `${date.getHours()} hr ${date.getMinutes()} min ${date.getSeconds()} sec`; + } else { + return `${date.getMinutes()} min ${date.getSeconds()} sec`; + } } else { return new Intl.DateTimeFormat("en-US", { minute: "numeric", @@ -25,4 +31,8 @@ export const isConsideredNewRelease = (releaseDate: string, newestInSetlist: str } return true; -}; \ No newline at end of file +}; + +export const distanceFromToday = (initial: string) => { + return intlFormatDistance(new Date(initial), new Date()); +}; From a8ca4ec87b1503f041cd6daa8f3326ea12879c50 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Mon, 12 Aug 2024 23:47:34 -0400 Subject: [PATCH 48/98] Better profile selection menu and profile icon component --- .../NewsSection/NewsEntry/index.tsx | 1 - .../ProfileIcon/ProfileIcon.module.css | 19 +++++ src/components/ProfileIcon/index.tsx | 15 ++++ .../List.module.css} | 4 +- .../Sidebar/{Versions => Profiles}/List.tsx | 17 ++-- .../Sidebar/Profiles/Selector.module.css | 31 ++++++++ src/components/Sidebar/Profiles/Selector.tsx | 18 +++++ .../{Versions => Profiles}/Separator.tsx | 6 +- src/components/Sidebar/Versions/Base.tsx | 36 --------- .../Versions/styles/Application.module.css | 77 ------------------- .../Sidebar/Versions/styles/Song.module.css | 73 ------------------ src/components/Sidebar/index.tsx | 2 +- src/routes/AppProfile/AppProfile.module.css | 3 +- src/routes/AppProfile/MoreDropdown.module.css | 2 +- src/routes/AppProfile/index.tsx | 4 +- src/styles.css | 2 - 16 files changed, 103 insertions(+), 207 deletions(-) create mode 100644 src/components/ProfileIcon/ProfileIcon.module.css create mode 100644 src/components/ProfileIcon/index.tsx rename src/components/Sidebar/{Versions/Versions.module.css => Profiles/List.module.css} (83%) rename src/components/Sidebar/{Versions => Profiles}/List.tsx (76%) create mode 100644 src/components/Sidebar/Profiles/Selector.module.css create mode 100644 src/components/Sidebar/Profiles/Selector.tsx rename src/components/Sidebar/{Versions => Profiles}/Separator.tsx (61%) delete mode 100644 src/components/Sidebar/Versions/Base.tsx delete mode 100644 src/components/Sidebar/Versions/styles/Application.module.css delete mode 100644 src/components/Sidebar/Versions/styles/Song.module.css diff --git a/src/components/NewsSection/NewsEntry/index.tsx b/src/components/NewsSection/NewsEntry/index.tsx index 6d1c2e7..c751648 100644 --- a/src/components/NewsSection/NewsEntry/index.tsx +++ b/src/components/NewsSection/NewsEntry/index.tsx @@ -5,7 +5,6 @@ import { Link } from "react-router-dom"; import { Img } from "react-image"; import UnknownUserIcon from "@app/assets/Icons/UnknownUser.svg"; import { TimeIcon } from "@app/assets/Icons"; -import { intlFormatDistance } from "date-fns"; import { newsBaseURL } from "@app/utils/consts"; import { useNewsAuthorSettings } from "@app/hooks/useNewsAuthor"; import { useQueries } from "@tanstack/react-query"; diff --git a/src/components/ProfileIcon/ProfileIcon.module.css b/src/components/ProfileIcon/ProfileIcon.module.css new file mode 100644 index 0000000..c4d431b --- /dev/null +++ b/src/components/ProfileIcon/ProfileIcon.module.css @@ -0,0 +1,19 @@ +.icon { + aspect-ratio: 1; + + --icon-border-radius: 17%; + border-radius: var(--icon-border-radius); + + box-shadow: 2px 2px 6px 0px rgba(0, 0, 0, 0.4); +} + +.icon > img { + max-width: 100%; + max-height: 100%; + + border-radius: var(--icon-border-radius); + + --outline-width: 1px; + outline: var(--outline-width) solid rgba(255, 255, 255, 0.1); + outline-offset: calc(var(--outline-width) * -1); +} diff --git a/src/components/ProfileIcon/index.tsx b/src/components/ProfileIcon/index.tsx new file mode 100644 index 0000000..6c24475 --- /dev/null +++ b/src/components/ProfileIcon/index.tsx @@ -0,0 +1,15 @@ +import styles from "./ProfileIcon.module.css"; +import { processAssetUrl } from "@app/profiles/utils"; + +interface Props { + iconUrl: string; + className?: string; +} + +const ProfileIcon: React.FC = ({ iconUrl, className }: Props) => { + return
+ +
; +}; + +export default ProfileIcon; diff --git a/src/components/Sidebar/Versions/Versions.module.css b/src/components/Sidebar/Profiles/List.module.css similarity index 83% rename from src/components/Sidebar/Versions/Versions.module.css rename to src/components/Sidebar/Profiles/List.module.css index 43dffd5..a38fe1b 100644 --- a/src/components/Sidebar/Versions/Versions.module.css +++ b/src/components/Sidebar/Profiles/List.module.css @@ -15,7 +15,7 @@ font-size: 14px; font-weight: 700; text-transform: uppercase; - color: var(--sideBarSeparatorColor); + color: #434663; } .separator .right { @@ -26,7 +26,7 @@ .add { height: 15px; - color: var(--sideBarSeparatorColor); + color: #434663; opacity: 0.25; margin-left: auto; } diff --git a/src/components/Sidebar/Versions/List.tsx b/src/components/Sidebar/Profiles/List.tsx similarity index 76% rename from src/components/Sidebar/Versions/List.tsx rename to src/components/Sidebar/Profiles/List.tsx index 0a57071..7ef2bf9 100644 --- a/src/components/Sidebar/Versions/List.tsx +++ b/src/components/Sidebar/Profiles/List.tsx @@ -1,10 +1,11 @@ -import styles from "./Versions.module.css"; -import VersionSeparator from "./Separator"; +import styles from "./List.module.css"; +import Separator from "./Separator"; import { AddIcon } from "@app/assets/Icons"; import { useProfileStore } from "@app/profiles/store"; import { NavLink } from "react-router-dom"; import { Localized, localize } from "@app/utils/localized"; import { Metadata } from "@app/profiles/types"; +import Selector from "./Selector"; const ProfilesList: React.FC = () => { const profileStore = useProfileStore(); @@ -22,9 +23,11 @@ const ProfilesList: React.FC = () => { name = localize(profile.metadata as Localized, "name", "en-US"); } + const iconUrl = localize(profile.metadata as Localized, "iconUrl", "en-US"); + output.push( - {name} + ); } @@ -32,14 +35,14 @@ const ProfilesList: React.FC = () => { } return
- + - + {activeProfileList("application")} - + - + {activeProfileList("setlist")}
; }; diff --git a/src/components/Sidebar/Profiles/Selector.module.css b/src/components/Sidebar/Profiles/Selector.module.css new file mode 100644 index 0000000..ea745c5 --- /dev/null +++ b/src/components/Sidebar/Profiles/Selector.module.css @@ -0,0 +1,31 @@ +.selector { + --border-radius: 8px; + --padding: 5px; + + display: flex; + gap: 10px; + align-items: center; + + padding: var(--padding); + border-radius: calc(var(--border-radius) + var(--padding)); + + background: transparent; + color: #B8BDD6; + + transition: background 0.1s; +} + +[aria-current="page"] > .selector, +.selector:hover { + background: #0D0F23; + color: #D4D9EE; +} + +.icon { + height: 42px; +} + +.text { + font-size: 16px; + font-weight: 600; +} diff --git a/src/components/Sidebar/Profiles/Selector.tsx b/src/components/Sidebar/Profiles/Selector.tsx new file mode 100644 index 0000000..d92512b --- /dev/null +++ b/src/components/Sidebar/Profiles/Selector.tsx @@ -0,0 +1,18 @@ +import styles from "./Selector.module.css"; +import ProfileIcon from "@app/components/ProfileIcon"; + +interface Props { + name: string; + iconUrl: string; +} + +const Selector: React.FC = ({ name, iconUrl }: Props) => { + return
+ +
+ {name} +
+
; +}; + +export default Selector; diff --git a/src/components/Sidebar/Versions/Separator.tsx b/src/components/Sidebar/Profiles/Separator.tsx similarity index 61% rename from src/components/Sidebar/Versions/Separator.tsx rename to src/components/Sidebar/Profiles/Separator.tsx index 0dd512a..ce0f82c 100644 --- a/src/components/Sidebar/Versions/Separator.tsx +++ b/src/components/Sidebar/Profiles/Separator.tsx @@ -1,15 +1,15 @@ -import styles from "./Versions.module.css"; +import styles from "./List.module.css"; type Props = { name: string, children?: React.ReactNode, } -const VersionSeparator: React.FC = ({name, children}: Props) => { +const Separator: React.FC = ({name, children}: Props) => { return
{name}
{children}
; }; -export default VersionSeparator; \ No newline at end of file +export default Separator; diff --git a/src/components/Sidebar/Versions/Base.tsx b/src/components/Sidebar/Versions/Base.tsx deleted file mode 100644 index e842f0d..0000000 --- a/src/components/Sidebar/Versions/Base.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import ApplicationStyles from "./styles/Application.module.css"; -import SongStyles from "./styles/Song.module.css"; - -export enum VersionType { - "APPLICATION", - "SONG" -} - -interface Props { - type?: VersionType, - icon?: React.ReactNode; - programName?: string; - versionChannel?: string; - version?: string; - updateAvailable?: boolean; -} - -const styleType = { - [VersionType.APPLICATION]: ApplicationStyles, - [VersionType.SONG]: SongStyles -}; - -const BaseVersion: React.FC = ({ type = VersionType.APPLICATION, icon, programName, version, versionChannel, updateAvailable }: Props) => { - const styles = styleType[type]; - - return
-
{icon}
-
-
{versionChannel}
-
{programName}
-
-
{version}
-
; -}; - -export default BaseVersion; \ No newline at end of file diff --git a/src/components/Sidebar/Versions/styles/Application.module.css b/src/components/Sidebar/Versions/styles/Application.module.css deleted file mode 100644 index 7be7c88..0000000 --- a/src/components/Sidebar/Versions/styles/Application.module.css +++ /dev/null @@ -1,77 +0,0 @@ -.selector { - display: flex; - gap: 10px; - align-items: center; - --border-radius: 8px; - --padding: 5px; - - padding: var(--padding); - background: rgba(255, 255, 255, 0); - border-radius: calc(var(--border-radius) + var(--padding)); - - transition: background 0.1s; -} - -[aria-current="page"] > .selector, -.selector:hover { - background: rgba(255, 255, 255, 0.025); -} - -.selector > .icon { - height: 42px; - aspect-ratio: 1; - - display: flex; - justify-content: center; - align-items: center; -} - -.selector > .icon > * { - max-width: 100%; - max-height: 100%; - border-radius: var(--border-radius); -} - -.selector > .text > .channel { - font-size: 10px; - font-weight: 700; - text-transform: uppercase; - color: var(--primary-40); -} - -.selector > .text > .name { - font-size: 18px; - font-weight: 600; -} - -.selector > .version { - display: flex; - align-items: center; - gap: 5px; - - font-size: 14px; - font-weight: 700; - - margin-left: auto; - margin-right: 2px; - padding: 10px; - - color: var(--primary-75); - background: var(--primary-05); - border-radius: var(--border-radius); -} - -.selector > .version:empty { - display: none; -} - -.selector > .version[data-update-available="true"] { - background: var(--green-10); -} - -.selector > .version[data-update-available="true"]::after { - content: ""; - background: url("data:image/svg+xml,%3Csvg viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 6L6 4M6 4L4 6M6 4L6 8M1 6C0.999999 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6Z' stroke='%2346E74F' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A"); - width: 15px; - aspect-ratio: 1; -} \ No newline at end of file diff --git a/src/components/Sidebar/Versions/styles/Song.module.css b/src/components/Sidebar/Versions/styles/Song.module.css deleted file mode 100644 index 5570b70..0000000 --- a/src/components/Sidebar/Versions/styles/Song.module.css +++ /dev/null @@ -1,73 +0,0 @@ -.selector { - display: flex; - gap: 10px; - align-items: center; - --border-radius: 8px; - --padding: 5px; - - padding: var(--padding); - background: rgba(255, 255, 255, 0); - border-radius: calc(var(--border-radius) + var(--padding)); - - transition: background 0.1s; -} - -[aria-current="page"] > .selector, -.selector:hover { - background: rgba(255, 255, 255, 0.025); -} - -.selector > .icon { - height: 30px; - aspect-ratio: 1; - - display: flex; - justify-content: center; - align-items: center; -} - -.selector > .icon > * { - max-width: 100%; - max-height: 100%; - border-radius: var(--border-radius); -} - -.selector > .text > .channel { - font-size: 10px; - font-weight: 700; - text-transform: uppercase; - color: var(--primary-40); -} - -.selector > .text > .name { - font-size: 16px; - font-weight: 600; -} - -.selector > .version { - display: none; - align-items: center; - gap: 5px; - - font-size: 14px; - font-weight: 700; - - margin-left: auto; - padding: 10px; - - color: var(--primary-75); - background: var(--primary-05); - border-radius: var(--border-radius); -} - -.selector > .version[data-update-available="true"] { - display: flex; - background: var(--green-10); -} - -.selector > .version[data-update-available="true"]::after { - content: ""; - background: url("data:image/svg+xml,%3Csvg viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 6L6 4M6 4L4 6M6 4L6 8M1 6C0.999999 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6Z' stroke='%2346E74F' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A"); - width: 15px; - aspect-ratio: 1; -} \ No newline at end of file diff --git a/src/components/Sidebar/index.tsx b/src/components/Sidebar/index.tsx index 9b21bb4..9c3b62a 100644 --- a/src/components/Sidebar/index.tsx +++ b/src/components/Sidebar/index.tsx @@ -2,7 +2,7 @@ import styles from "./Sidebar.module.css"; import { DiscordIcon, TwitterIcon, GithubIcon, HomeIcon, QueueIcon, MarketplaceIcon } from "@app/assets/Icons"; import SidebarMenuButton from "./SidebarMenuButton"; import { NavLink } from "react-router-dom"; -import ProfilesList from "./Versions/List"; +import ProfilesList from "./Profiles/List"; import { useEffect, useState } from "react"; import { getVersion } from "@tauri-apps/api/app"; import QueueStore from "@app/tasks/queue"; diff --git a/src/routes/AppProfile/AppProfile.module.css b/src/routes/AppProfile/AppProfile.module.css index 80b9477..8287a9e 100644 --- a/src/routes/AppProfile/AppProfile.module.css +++ b/src/routes/AppProfile/AppProfile.module.css @@ -24,10 +24,9 @@ align-self: stretch; } -.bannerApp > img { +.bannerAppIcon { width: 100px; height: 100px; - border-radius: 16px; } .bannerApp > div { diff --git a/src/routes/AppProfile/MoreDropdown.module.css b/src/routes/AppProfile/MoreDropdown.module.css index 473b969..8bac0dd 100644 --- a/src/routes/AppProfile/MoreDropdown.module.css +++ b/src/routes/AppProfile/MoreDropdown.module.css @@ -31,7 +31,7 @@ } .item[data-highlighted] { - background: var(--sideBarSelection); + background: rgba(255, 255, 255, 0.1); } .arrow { diff --git a/src/routes/AppProfile/index.tsx b/src/routes/AppProfile/index.tsx index 19d4bb6..9c95b2a 100644 --- a/src/routes/AppProfile/index.tsx +++ b/src/routes/AppProfile/index.tsx @@ -8,8 +8,8 @@ import Box from "@app/components/Box"; import { ApplicationMetadata } from "@app/profiles/types"; import Button, { ButtonColor } from "@app/components/Button"; import MoreDropdown from "./MoreDropdown"; -import intlFormatDistance from "date-fns/intlFormatDistance"; import { distanceFromToday } from "@app/utils/timeFormat"; +import ProfileIcon from "@app/components/ProfileIcon"; function AppProfile() { const { uuid } = useParams(); @@ -32,7 +32,7 @@ function AppProfile() { style={{"--bannerBack": `url(${processAssetUrl(metadata.bannerBackUrl)})`} as React.CSSProperties}>
- {metadata.name} +
Official diff --git a/src/styles.css b/src/styles.css index b697f14..b02224e 100644 --- a/src/styles.css +++ b/src/styles.css @@ -21,8 +21,6 @@ --titleBarHeight: 30px; --sideBarBackground: #070810; - --sideBarSeparatorColor: #394452; - --sideBarSelection: rgba(255, 255, 255, 0.1); --buttonGreen: #17E289; --buttonBlue: #2ED9FF; From 2fe2b5a99c8b72794500a042797849ee88ffd8a2 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Tue, 13 Aug 2024 00:22:12 -0400 Subject: [PATCH 49/98] Made add buttons clickable --- src/components/Sidebar/Profiles/List.module.css | 12 ++++++++++-- src/components/Sidebar/Profiles/List.tsx | 14 ++++++++++---- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/components/Sidebar/Profiles/List.module.css b/src/components/Sidebar/Profiles/List.module.css index a38fe1b..d5f085c 100644 --- a/src/components/Sidebar/Profiles/List.module.css +++ b/src/components/Sidebar/Profiles/List.module.css @@ -25,8 +25,16 @@ } .add { + margin-left: auto; +} + +.add > * { height: 15px; + + transition: color 0.1s; color: #434663; - opacity: 0.25; - margin-left: auto; +} + +.add > *:hover { + color: #17E289; } diff --git a/src/components/Sidebar/Profiles/List.tsx b/src/components/Sidebar/Profiles/List.tsx index 7ef2bf9..ee5b32f 100644 --- a/src/components/Sidebar/Profiles/List.tsx +++ b/src/components/Sidebar/Profiles/List.tsx @@ -2,7 +2,7 @@ import styles from "./List.module.css"; import Separator from "./Separator"; import { AddIcon } from "@app/assets/Icons"; import { useProfileStore } from "@app/profiles/store"; -import { NavLink } from "react-router-dom"; +import { Link, NavLink } from "react-router-dom"; import { Localized, localize } from "@app/utils/localized"; import { Metadata } from "@app/profiles/types"; import Selector from "./Selector"; @@ -12,6 +12,7 @@ const ProfilesList: React.FC = () => { function activeProfileList(type: "application" | "setlist") { const output = []; + for (const activeProfile of profileStore.activeProfiles) { const profile = activeProfile.profile; if (profile.type !== type) { @@ -31,17 +32,22 @@ const ProfilesList: React.FC = () => { ); } + return output; } return
- + + + {activeProfileList("application")} - - + + + + {activeProfileList("setlist")}
; From a738376861a1fe60c45e6bd9e0217b8ac91a2f54 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Tue, 13 Aug 2024 18:12:08 -0400 Subject: [PATCH 50/98] Progress on the marketplace page --- src/components/LoadingScreen/index.tsx | 3 - .../ProfileIcon/ProfileIcon.module.css | 4 +- src/profiles/marketplace.ts | 25 ++++ src/profiles/store.ts | 28 +--- src/profiles/types.ts | 7 - src/routes/Marketplace/Marketplace.module.css | 136 ++++++++++++++++++ .../Marketplace/MarketplaceProfileView.tsx | 38 +++++ src/routes/Marketplace/MarketplaceSection.tsx | 37 +++++ src/routes/Marketplace/index.tsx | 49 +++++-- src/styles.css | 4 +- 10 files changed, 283 insertions(+), 48 deletions(-) create mode 100644 src/profiles/marketplace.ts create mode 100644 src/routes/Marketplace/MarketplaceProfileView.tsx create mode 100644 src/routes/Marketplace/MarketplaceSection.tsx diff --git a/src/components/LoadingScreen/index.tsx b/src/components/LoadingScreen/index.tsx index 0c762b2..7b906d8 100644 --- a/src/components/LoadingScreen/index.tsx +++ b/src/components/LoadingScreen/index.tsx @@ -42,9 +42,6 @@ const LoadingScreen: React.FC = (props: Props) => { let profileStore = useProfileStore.getState(); let directories = useDirectories.getState(); - await profileStore.setAvailableProfiles(); - profileStore = useProfileStore.getState(); - let downloadLocation: string | undefined = undefined; if (onboardingCompleted) { downloadLocation = settingsManager.getCache("downloadLocation"); diff --git a/src/components/ProfileIcon/ProfileIcon.module.css b/src/components/ProfileIcon/ProfileIcon.module.css index c4d431b..f0c5f12 100644 --- a/src/components/ProfileIcon/ProfileIcon.module.css +++ b/src/components/ProfileIcon/ProfileIcon.module.css @@ -8,8 +8,8 @@ } .icon > img { - max-width: 100%; - max-height: 100%; + width: 100%; + height: 100%; border-radius: var(--icon-border-radius); diff --git a/src/profiles/marketplace.ts b/src/profiles/marketplace.ts new file mode 100644 index 0000000..7f380ba --- /dev/null +++ b/src/profiles/marketplace.ts @@ -0,0 +1,25 @@ +import { Localized } from "@app/utils/localized"; + +export interface MarketplaceIndex { + // banner: { + // backgroundUrl: string, + // subHeaderText: string, + // headerText: string, + // profileUUID: string + // }, + lastUpdated: Date, + profiles: MarketplaceProfile[] +} + +export type MarketplaceProfile = Localized<{ + uuid: string, + type: "application" | "setlist", + category: string, + url: string, + release: Date, + + name: string, + subText?: string, + iconUrl: string, + bannerUrl?: string, +}>; diff --git a/src/profiles/store.ts b/src/profiles/store.ts index aaa6469..8237525 100644 --- a/src/profiles/store.ts +++ b/src/profiles/store.ts @@ -1,44 +1,26 @@ import { create } from "zustand"; -import { ActiveProfile, AvailableProfile, Profile } from "./types"; +import { ActiveProfile, Profile } from "./types"; import { showErrorDialog } from "@app/dialogs/dialogUtil"; import { v4 as createUUID } from "uuid"; import { settingsManager } from "@app/settings"; export interface ProfileStore { - availableProfiles: AvailableProfile[], activeProfiles: ActiveProfile[], getProfileByUUID: (uuid: string) => ActiveProfile | undefined, - setAvailableProfiles: () => Promise, activateProfilesFromSettings: () => Promise, - activateProfile: (profile: AvailableProfile) => Promise, + activateProfile: (profileUrl: string) => Promise, removeProfile: (uuid: string) => Promise, updateProfile: (activeProfile: ActiveProfile) => Promise, } export const useProfileStore = create()((set, get) => ({ - availableProfiles: [], activeProfiles: [], getProfileByUUID: (uuid) => { return get().activeProfiles.find(i => i.uuid === uuid); }, - setAvailableProfiles: async () => { - set({ - availableProfiles: [ - { - "uuid": "2d78800c-1397-496a-83c1-50759607999a", - "url": "https://gist.githubusercontent.com/EliteAsian123/1ecaef91dfcf194345b80e1112896411/raw/46242adc1d449f6f718548311f2bbdfff9d5c606/profile.json", - "name": "YARG", - "iconUrl": "@/icons/Stable.png", - - "localeOverrides": {} - } - ] - }); - return get(); - }, activateProfilesFromSettings: async () => { const activeProfiles = settingsManager.getCache("activeProfiles"); @@ -69,10 +51,10 @@ export const useProfileStore = create()((set, get) => ({ showErrorDialog("One or more active application/setlist profiles could not be fetched! Do they still exist?"); } }, - activateProfile: async (availableProfile: AvailableProfile) => { + activateProfile: async (profileUrl: string) => { let profile: Profile; try { - const response = await fetch(availableProfile.url); + const response = await fetch(profileUrl); if (!response.ok) { throw new Error(`Failed to fetch profile! Response status: ${response.status}`); } @@ -87,7 +69,7 @@ export const useProfileStore = create()((set, get) => ({ const activeProfile: ActiveProfile = { uuid: createUUID(), - originalUrl: availableProfile.url, + originalUrl: profileUrl, displayName: undefined, profile: profile, }; diff --git a/src/profiles/types.ts b/src/profiles/types.ts index bac0795..ac327ae 100644 --- a/src/profiles/types.ts +++ b/src/profiles/types.ts @@ -103,13 +103,6 @@ export interface SetlistProfile { version: VersionInfo, } -export type AvailableProfile = Localized<{ - uuid: string, - url: string, - name: string, - iconUrl: string, -}>; - export interface ActiveProfile { uuid: string, originalUrl: string, diff --git a/src/routes/Marketplace/Marketplace.module.css b/src/routes/Marketplace/Marketplace.module.css index e69de29..d31c662 100644 --- a/src/routes/Marketplace/Marketplace.module.css +++ b/src/routes/Marketplace/Marketplace.module.css @@ -0,0 +1,136 @@ +.main { + display: flex; + flex-direction: column; + align-items: flex-start; + flex: 1 0 0; +} + +.banner { + display: flex; + height: 350px; + padding: 0px 100px; + align-items: center; + gap: 30px; + align-self: stretch; +} + +.search { + display: flex; + height: 100px; + padding: 20px 0px; + flex-direction: column; + justify-content: center; + align-items: center; + gap: 10px; + align-self: stretch; +} + +.content { + display: flex; + padding: 24px; + flex-direction: column; + align-items: flex-start; + gap: 24px; + align-self: stretch; +} + +.section { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 10px; + align-self: stretch; +} + +.section > .title { + display: flex; + padding: 12px 0px; + justify-content: space-between; + align-items: center; + align-self: stretch; +} + +.section > .title > .left { + display: flex; + width: 179px; + justify-content: space-between; + align-items: center; + + color: #41475F; + font-size: 16px; + font-weight: 700; + text-transform: uppercase; +} + +.section > .list { + width: 100%; + overflow-x: auto; + + padding: 12px; + + display: flex; + gap: 12px; + flex-wrap: nowrap; +} + +.section.expanded > .list { + flex-wrap: wrap; +} + +.profileView { + display: flex; + min-width: 400px; + padding: 12px; + align-items: center; + gap: 20px; + + border: none; + border-radius: 16px; + background: linear-gradient(241deg, rgba(0, 0, 0, 0.00) 14.98%, #000 107.9%), + var(--background) lightgray 50% / cover no-repeat; + + --outline-width: 2px; + outline: var(--outline-width) solid rgba(255, 255, 255, 0.15); + outline-offset: calc(var(--outline-width) * -1); + + box-shadow: none; + + cursor: pointer; + transition: transform 0.1s, box-shadow 0.3s; +} + +.profileView:hover { + box-shadow: 2px 2px 7px 0px rgba(0, 0, 0, 0.4); + transform: scale(1.025); +} + +.expanded .profileView { + flex: 1 0 0; +} + +.profileView > .icon { + width: 100px; + height: 100px; +} + +.profileView > .info { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 5px; + + text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.6); +} + +.profileView > .info > header { + color: #FFF; + font-size: 20px; + font-weight: 700; + text-transform: uppercase; +} + +.profileView > .info > span { + color: #C5C5C5; + font-size: 16px; + font-weight: 400; +} diff --git a/src/routes/Marketplace/MarketplaceProfileView.tsx b/src/routes/Marketplace/MarketplaceProfileView.tsx new file mode 100644 index 0000000..aabd913 --- /dev/null +++ b/src/routes/Marketplace/MarketplaceProfileView.tsx @@ -0,0 +1,38 @@ +import { MarketplaceProfile } from "@app/profiles/marketplace"; +import styles from "./Marketplace.module.css"; +import ProfileIcon from "@app/components/ProfileIcon"; +import { localizeObject } from "@app/utils/localized"; +import { processAssetUrl } from "@app/profiles/utils"; +import { useProfileStore } from "@app/profiles/store"; + +interface Props { + profile: MarketplaceProfile, +} + +const MarketplaceProfileView: React.FC = ({ profile }: Props) => { + const profiles = useProfileStore(); + + const localized = localizeObject(profile, "en-US"); + let bannerUrl = localized.bannerUrl; + if (bannerUrl === undefined) { + bannerUrl = localized.iconUrl; + } + + return ; +}; + +export default MarketplaceProfileView; diff --git a/src/routes/Marketplace/MarketplaceSection.tsx b/src/routes/Marketplace/MarketplaceSection.tsx new file mode 100644 index 0000000..50cdfd2 --- /dev/null +++ b/src/routes/Marketplace/MarketplaceSection.tsx @@ -0,0 +1,37 @@ +import Button, { ButtonColor } from "@app/components/Button"; +import styles from "./Marketplace.module.css"; +import { useState } from "react"; + +type Props = React.PropsWithChildren<{ + name: string, +}>; + +const MarketplaceSection: React.FC = ({ name, children }: Props) => { + const [expanded, setExpanded] = useState(false); + + const classes = [styles.section]; + if (expanded) { + classes.push(styles.expanded); + } + + return
+
+
+ {name} +
+ +
+
+ {children} +
+
; +}; + +export default MarketplaceSection; diff --git a/src/routes/Marketplace/index.tsx b/src/routes/Marketplace/index.tsx index 0f79f19..06d418d 100644 --- a/src/routes/Marketplace/index.tsx +++ b/src/routes/Marketplace/index.tsx @@ -1,19 +1,44 @@ -import { useProfileStore } from "@app/profiles/store"; import styles from "./Marketplace.module.css"; -import Button from "@app/components/Button"; -import { localize } from "@app/utils/localized"; +import { MarketplaceIndex } from "@app/profiles/marketplace"; +import MarketplaceSection from "./MarketplaceSection"; +import MarketplaceProfileView from "./MarketplaceProfileView"; +import { useQuery } from "@tanstack/react-query"; function Marketplace() { - const profileStore = useProfileStore(); + const marketIndexQuery = useQuery({ + queryKey: ["MarketIndex"], + queryFn: async (): Promise => + await fetch("https://releases.yarg.in/profiles/marketIndex.json") + .then(res => res.json()) + }); - return
- { - profileStore.availableProfiles.map(i => - - ) - } + const marketIndex = marketIndexQuery.data; + if (marketIndexQuery.isError || marketIndex === undefined) { + return <> + Error: {marketIndexQuery.error} + ; + } + + return
+
+ +
+
+ + { + marketIndex.profiles.filter(i => i.type === "application").map(i => + + ) + } + + + { + marketIndex.profiles.filter(i => i.type === "setlist").map(i => + + ) + } + +
; } diff --git a/src/styles.css b/src/styles.css index b02224e..db62ffd 100644 --- a/src/styles.css +++ b/src/styles.css @@ -9,7 +9,7 @@ --primary-40: rgba(var(--primary-rgb), 0.4); --primary-75: rgba(var(--primary-rgb), 0.75); - --white-background: #F5F5F5; + --white-background: #FFF; --green-rgb: 70, 231, 79; --green: rgb(var(--green-rgb)); @@ -96,6 +96,7 @@ a { ::-webkit-scrollbar { width: 10px; + height: 10px; } ::-webkit-scrollbar-track { @@ -104,6 +105,7 @@ a { ::-webkit-scrollbar-thumb { background: #888; + border-radius: 5px; } ::-webkit-scrollbar-thumb:hover { From de7835f4833a1c87d8cbf788a8021a6127e19db7 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Tue, 13 Aug 2024 18:17:02 -0400 Subject: [PATCH 51/98] Fix lint error --- src/routes/Marketplace/index.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/routes/Marketplace/index.tsx b/src/routes/Marketplace/index.tsx index 06d418d..6b2c41c 100644 --- a/src/routes/Marketplace/index.tsx +++ b/src/routes/Marketplace/index.tsx @@ -7,8 +7,7 @@ import { useQuery } from "@tanstack/react-query"; function Marketplace() { const marketIndexQuery = useQuery({ queryKey: ["MarketIndex"], - queryFn: async (): Promise => - await fetch("https://releases.yarg.in/profiles/marketIndex.json") + queryFn: async (): Promise => await fetch("https://releases.yarg.in/profiles/marketIndex.json") .then(res => res.json()) }); From 1bab7bb15452c196e3b8a22c5383898a0097ed8b Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Tue, 13 Aug 2024 19:02:42 -0400 Subject: [PATCH 52/98] Use grid for marketplace list instead --- package-lock.json | 19 +++++++++++++ package.json | 1 + src/routes/Marketplace/Marketplace.module.css | 27 ++++++++++++------- src/routes/Marketplace/MarketplaceSection.tsx | 26 +++++++++++------- src/routes/Marketplace/index.tsx | 2 +- 5 files changed, 54 insertions(+), 21 deletions(-) diff --git a/package-lock.json b/package-lock.json index 017a240..a7f9b9e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34,6 +34,7 @@ "sort-array": "^4.1.5", "tauri-plugin-log-api": "github:tauri-apps/tauri-plugin-log#v1", "tauri-settings": "^0.3.5", + "use-overflow": "^1.2.0", "uuid": "^9.0.1", "vite-plugin-top-level-await": "^1.4.1", "zustand": "^4.4.7" @@ -8078,6 +8079,18 @@ } } }, + "node_modules/use-overflow": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-overflow/-/use-overflow-1.2.0.tgz", + "integrity": "sha512-Uw3rvw+OizuOsX0HDWXZk9VpfSuT74lNKW7Eq/fWQ2egUUtOnunbHmEkD15NJJZjk9M0CZRY9sN4kiZtVC+EpQ==", + "engines": { + "node": ">=8", + "npm": ">=5" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/use-sidecar": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", @@ -13867,6 +13880,12 @@ "tslib": "^2.0.0" } }, + "use-overflow": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-overflow/-/use-overflow-1.2.0.tgz", + "integrity": "sha512-Uw3rvw+OizuOsX0HDWXZk9VpfSuT74lNKW7Eq/fWQ2egUUtOnunbHmEkD15NJJZjk9M0CZRY9sN4kiZtVC+EpQ==", + "requires": {} + }, "use-sidecar": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", diff --git a/package.json b/package.json index 24977db..c71f6fe 100644 --- a/package.json +++ b/package.json @@ -65,6 +65,7 @@ "sort-array": "^4.1.5", "tauri-plugin-log-api": "github:tauri-apps/tauri-plugin-log#v1", "tauri-settings": "^0.3.5", + "use-overflow": "^1.2.0", "uuid": "^9.0.1", "vite-plugin-top-level-await": "^1.4.1", "zustand": "^4.4.7" diff --git a/src/routes/Marketplace/Marketplace.module.css b/src/routes/Marketplace/Marketplace.module.css index d31c662..8059448 100644 --- a/src/routes/Marketplace/Marketplace.module.css +++ b/src/routes/Marketplace/Marketplace.module.css @@ -63,23 +63,30 @@ } .section > .list { - width: 100%; + --item-width: 400px; + + max-width: 100%; overflow-x: auto; padding: 12px; - display: flex; - gap: 12px; - flex-wrap: nowrap; + display: grid; + grid-template-columns: repeat(auto-fit, minmax(var(--item-width), auto)); + grid-gap: 12px; + grid-auto-flow: column; } .section.expanded > .list { - flex-wrap: wrap; + width: 100%; + grid-auto-flow: row; } .profileView { display: flex; - min-width: 400px; + + min-width: var(--item-width); + max-width: var(--item-width); + padding: 12px; align-items: center; gap: 20px; @@ -99,15 +106,15 @@ transition: transform 0.1s, box-shadow 0.3s; } +.expanded .profileView { + max-width: none; +} + .profileView:hover { box-shadow: 2px 2px 7px 0px rgba(0, 0, 0, 0.4); transform: scale(1.025); } -.expanded .profileView { - flex: 1 0 0; -} - .profileView > .icon { width: 100px; height: 100px; diff --git a/src/routes/Marketplace/MarketplaceSection.tsx b/src/routes/Marketplace/MarketplaceSection.tsx index 50cdfd2..b0a81a7 100644 --- a/src/routes/Marketplace/MarketplaceSection.tsx +++ b/src/routes/Marketplace/MarketplaceSection.tsx @@ -1,12 +1,16 @@ import Button, { ButtonColor } from "@app/components/Button"; import styles from "./Marketplace.module.css"; -import { useState } from "react"; +import { useRef, useState } from "react"; +import { useOverflow } from "use-overflow"; type Props = React.PropsWithChildren<{ name: string, }>; const MarketplaceSection: React.FC = ({ name, children }: Props) => { + const listRef = useRef(null); + const { refXOverflowing: listOverflowing } = useOverflow(listRef); + const [expanded, setExpanded] = useState(false); const classes = [styles.section]; @@ -19,16 +23,18 @@ const MarketplaceSection: React.FC = ({ name, children }: Props) => {
{name}
- + {(expanded || listOverflowing) && + + }
-
+
{children}
; diff --git a/src/routes/Marketplace/index.tsx b/src/routes/Marketplace/index.tsx index 6b2c41c..15d2585 100644 --- a/src/routes/Marketplace/index.tsx +++ b/src/routes/Marketplace/index.tsx @@ -25,7 +25,7 @@ function Marketplace() {
{ - marketIndex.profiles.filter(i => i.type === "application").map(i => + marketIndex.profiles.map(i => ) } From c1a8bfbbcf80318d7dd7ff13cf4ffec0ff364943 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Wed, 14 Aug 2024 23:21:16 -0400 Subject: [PATCH 53/98] Version list downloading --- src/hooks/useProfileState.ts | 17 +-- src/profiles/actions.ts | 8 +- src/profiles/store.ts | 116 ++++++++++++++---- src/profiles/types.ts | 30 +++-- src/profiles/utils.ts | 9 -- src/routes/Marketplace/index.tsx | 4 +- .../Processors/DownloadAndInstallTask.tsx | 14 +-- 7 files changed, 124 insertions(+), 74 deletions(-) diff --git a/src/hooks/useProfileState.ts b/src/hooks/useProfileState.ts index 1063c3c..976150b 100644 --- a/src/hooks/useProfileState.ts +++ b/src/hooks/useProfileState.ts @@ -3,10 +3,11 @@ import { UninstallBeforeDeleteDialog } from "@app/dialogs/Dialogs/UninstallBefor import { downloadAndInstall, launch, openInstallFolder, uninstall } from "@app/profiles/actions"; import { useDirectories } from "@app/profiles/directories"; import { useProfileStore } from "@app/profiles/store"; -import { ActiveProfile, Version } from "@app/profiles/types"; -import { getPathForProfile, getProfileVersion } from "@app/profiles/utils"; +import { ActiveProfile, Version, VersionList } from "@app/profiles/types"; +import { getPathForProfile } from "@app/profiles/utils"; import { useTask } from "@app/tasks"; import { IBaseTask } from "@app/tasks/Processors/base"; +import { useQuery } from "@tanstack/react-query"; import { invoke } from "@tauri-apps/api"; import { useEffect, useState } from "react"; import { useNavigate } from "react-router-dom"; @@ -26,7 +27,6 @@ export interface ProfileState { folderState: ProfileFolderState, currentTask?: IBaseTask, - version: Version, downloadAndInstall: () => Promise, uninstall: () => Promise, @@ -45,7 +45,6 @@ export const useProfileState = (profileUUID: string): ProfileState => { const [folderState, setFolderState] = useState(0); const currentTask = useTask(profileUUID); - const [version, setVersion] = useState({} as Version); const activeProfile = profiles.getProfileByUUID(profileUUID); if (activeProfile === undefined) { @@ -55,11 +54,10 @@ export const useProfileState = (profileUUID: string): ProfileState => { // Initialize useEffect(() => { // Set everything to default values - // TODO: this is hacky + // This is hacky, but there's not much else we can do lol setLoading(true); setProfilePath(""); setFolderState(0); - setVersion({} as Version); // If the important directories aren't loaded yet, wait for them to if (directories.importantDirs === undefined) { @@ -68,19 +66,17 @@ export const useProfileState = (profileUUID: string): ProfileState => { (async () => { const path = await getPathForProfile(directories, activeProfile); - const version = getProfileVersion(activeProfile); const result = await invoke("profile_folder_state", { path: path, - wantedTag: version.tag + wantedTag: activeProfile.version.tag }) as ProfileFolderState; setFolderState(result); setProfilePath(path); setLoading(false); - setVersion(version); })(); - }, [directories, profileUUID]); + }, [directories, profileUUID, activeProfile.version]); return { loading, @@ -90,7 +86,6 @@ export const useProfileState = (profileUUID: string): ProfileState => { folderState, currentTask, - version, downloadAndInstall: async () => { if (loading) { diff --git a/src/profiles/actions.ts b/src/profiles/actions.ts index 314e36e..639feea 100644 --- a/src/profiles/actions.ts +++ b/src/profiles/actions.ts @@ -5,7 +5,6 @@ import { UninstallTask } from "@app/tasks/Processors/UninstallTask"; import { getOS } from "@app/utils/os"; import { showErrorDialog } from "@app/dialogs/dialogUtil"; import { invoke } from "@tauri-apps/api"; -import { getProfileVersion } from "./utils"; import { useDirectories } from "./directories"; export const downloadAndInstall = async (profile: ActiveProfile, profilePath: string, onFinish?: () => void): Promise => { @@ -14,9 +13,8 @@ export const downloadAndInstall = async (profile: ActiveProfile, profilePath: st return; } - const version = getProfileVersion(profile); const tempFolder = directories.importantDirs.tempFolder; - const task = new DownloadAndInstallTask(profile, version, profilePath, tempFolder, onFinish); + const task = new DownloadAndInstallTask(profile, profilePath, tempFolder, onFinish); addTask(task); }; @@ -36,10 +34,8 @@ export const launch = async (activeProfile: ActiveProfile, profilePath: string): return; } - const version = getProfileVersion(activeProfile); - const os = await getOS(); - const launchOptions = version.launchOptions?.[os]; + const launchOptions = activeProfile.version.launchOptions?.[os]; if (launchOptions === undefined) { showErrorDialog(`Launch options not configured on profile for "${os}"!`); return; diff --git a/src/profiles/store.ts b/src/profiles/store.ts index 8237525..9d7c0bf 100644 --- a/src/profiles/store.ts +++ b/src/profiles/store.ts @@ -1,5 +1,5 @@ import { create } from "zustand"; -import { ActiveProfile, Profile } from "./types"; +import { ActiveProfile, Profile, Version, VersionList } from "./types"; import { showErrorDialog } from "@app/dialogs/dialogUtil"; import { v4 as createUUID } from "uuid"; import { settingsManager } from "@app/settings"; @@ -28,42 +28,46 @@ export const useProfileStore = create()((set, get) => ({ // Attempt to update the profiles let errored = false; for (const profile of activeProfiles) { - try { - const response = await fetch(profile.originalUrl); - if (!response.ok) { - throw new Error(`Failed to fetch profile! Response status: ${response.status}`); - } + const newProfile = await tryFetchProfile(profile.originalUrl); + + if (newProfile === undefined) { + errored = true; + continue; + } + + profile.profile = newProfile; + } + + // Attempt to update versions + for (const profile of activeProfiles) { + const newVersion = await tryFetchVersion(profile.profile, profile.selectedVersion); - // TODO: Schema - const json = await response.json(); - profile.profile = json; - } catch (e) { - console.error(e); + if (newVersion === undefined) { errored = true; + continue; } + + profile.version = newVersion; } set({ activeProfiles }); + await settingsManager.set("activeProfiles", activeProfiles); + if (errored) { showErrorDialog("One or more active application/setlist profiles could not be fetched! Do they still exist?"); } }, activateProfile: async (profileUrl: string) => { - let profile: Profile; - try { - const response = await fetch(profileUrl); - if (!response.ok) { - throw new Error(`Failed to fetch profile! Response status: ${response.status}`); - } + const profile = await tryFetchProfile(profileUrl); + if (profile === undefined) { + return; + } - // TODO: Schema - const json = await response.json(); - profile = json; - } catch (e) { - showErrorDialog(e as string); + const version = await tryFetchVersion(profile); + if (version === undefined) { return; } @@ -72,6 +76,7 @@ export const useProfileStore = create()((set, get) => ({ originalUrl: profileUrl, displayName: undefined, profile: profile, + version: version, }; // Add to the profile state @@ -105,3 +110,70 @@ export const useProfileStore = create()((set, get) => ({ await settingsManager.set("activeProfiles", profiles); } })); + +async function tryFetchProfile(profileUrl: string): Promise { + try { + const response = await fetch(profileUrl); + if (!response.ok) { + throw new Error(`Failed to fetch profile! Response status: ${response.status}`); + } + + // TODO: Schema + const json = await response.json(); + return json; + } catch (e) { + showErrorDialog(e as string); + return; + } +} + +async function tryFetchVersion(profile: Profile, overrideVersion?: string): Promise { + if (profile.version.type === "embedded") { + return profile.version.version; + } + + try { + let versionUrl: string; + if (profile.version.type === "list") { + const response = await fetch(profile.version.listUrl); + if (!response.ok) { + throw new Error(`Failed to fetch version list! Response status: ${response.status}`); + } + + // TODO: Schema + const list: VersionList = await response.json(); + + if (list.length === 0) { + throw new Error("Profile has an empty version list!"); + } + + // Pick either the latest version, or attempt to pick from the overridden version + if (overrideVersion !== undefined) { + const found = list.find(i => i.uuid === overrideVersion); + if (found !== undefined) { + versionUrl = found.url; + } else { + versionUrl = list[0].url; + } + } else { + versionUrl = list[0].url; + } + } else if (profile.version.type === "url") { + versionUrl = profile.version.releaseUrl; + } else { + throw new Error("Unhandled version type!"); + } + + const response = await fetch(versionUrl); + if (!response.ok) { + throw new Error(`Failed to fetch version! Response status: ${response.status}`); + } + + // TODO: Schema + const json = await response.json(); + return json; + } catch (e) { + showErrorDialog(e as string); + return; + } +} diff --git a/src/profiles/types.ts b/src/profiles/types.ts index ac327ae..9329352 100644 --- a/src/profiles/types.ts +++ b/src/profiles/types.ts @@ -11,18 +11,17 @@ export interface ReleaseContent { }[]; } -export type VersionList = [ - { - uuid: string, - tag: string, - release: Date, - } -]; +export type VersionList = { + uuid: string, + url: string, + tag: string, + release: string, +}[]; export interface Version { uuid: string, tag: string, - release: Date, + release: string, content: ReleaseContent[], launchOptions?: { [platform in OS]?: { @@ -38,7 +37,6 @@ export interface VersionInfoList { type: "list", listUrl: string, - releaseUrl: string, } export interface VersionInfoUrl { @@ -61,7 +59,7 @@ export interface Metadata { bannerBackUrl: string, bannerFrontUrl?: string, - initialRelease: Date, + initialRelease: string, links: { [id: string]: { @@ -77,12 +75,10 @@ export type ApplicationMetadata = Localized; export type SetlistMetadata = Localized; export type Profile = ApplicationProfile | SetlistProfile; @@ -109,6 +105,8 @@ export interface ActiveProfile { displayName?: string, lastPlayed?: string, + selectedVersion?: string, profile: Profile, + version: Version, } diff --git a/src/profiles/utils.ts b/src/profiles/utils.ts index eee98a0..504ffec 100644 --- a/src/profiles/utils.ts +++ b/src/profiles/utils.ts @@ -15,15 +15,6 @@ export const getPathForProfile = async (store: DirectoriesStore, activeProfile: } }; -export const getProfileVersion = (activeProfile: ActiveProfile): Version => { - const profile = activeProfile.profile; - if (profile.version.type === "embedded") { - return profile.version.version; - } - - throw new Error("Not implemented"); -}; - export const localizeMetadata = (profile: Profile, locale: string): Metadata => { let out: Metadata; diff --git a/src/routes/Marketplace/index.tsx b/src/routes/Marketplace/index.tsx index 15d2585..a93aabe 100644 --- a/src/routes/Marketplace/index.tsx +++ b/src/routes/Marketplace/index.tsx @@ -7,7 +7,7 @@ import { useQuery } from "@tanstack/react-query"; function Marketplace() { const marketIndexQuery = useQuery({ queryKey: ["MarketIndex"], - queryFn: async (): Promise => await fetch("https://releases.yarg.in/profiles/marketIndex.json") + queryFn: async (): Promise => await fetch("https://releases.yarg.in/profiles/") .then(res => res.json()) }); @@ -25,7 +25,7 @@ function Marketplace() {
{ - marketIndex.profiles.map(i => + marketIndex.profiles.filter(i => i.type === "application").map(i => ) } diff --git a/src/tasks/Processors/DownloadAndInstallTask.tsx b/src/tasks/Processors/DownloadAndInstallTask.tsx index 80d923f..5797bd1 100644 --- a/src/tasks/Processors/DownloadAndInstallTask.tsx +++ b/src/tasks/Processors/DownloadAndInstallTask.tsx @@ -1,4 +1,4 @@ -import { ActiveProfile, Version } from "@app/profiles/types"; +import { ActiveProfile } from "@app/profiles/types"; import { BaseTask, IBaseTask } from "./base"; import { invoke } from "@tauri-apps/api"; import { showErrorDialog } from "@app/dialogs/dialogUtil"; @@ -9,15 +9,13 @@ import { localizeObject } from "@app/utils/localized"; export class DownloadAndInstallTask extends BaseTask implements IBaseTask { onFinish?: () => void; - version: Version; tempPath: string; - constructor(profile: ActiveProfile, version: Version, profilePath: string, tempPath: string, onFinish?: () => void) { + constructor(profile: ActiveProfile, profilePath: string, tempPath: string, onFinish?: () => void) { super(profile, profilePath); this.onFinish = onFinish; - this.version = version; this.tempPath = tempPath; } @@ -26,9 +24,9 @@ export class DownloadAndInstallTask extends BaseTask implements IBaseTask { await invoke("download_and_install_profile", { profilePath: this.profilePath, uuid: this.activeProfile.uuid, - tag: this.version.tag, + tag: this.activeProfile.version.tag, tempPath: this.tempPath, - content: this.version.content + content: this.activeProfile.version.content }); } catch (e) { showErrorDialog(e as string); @@ -43,14 +41,14 @@ export class DownloadAndInstallTask extends BaseTask implements IBaseTask { return ; } else { const metadata = localizeObject(profile.metadata, "en-US"); return ; } } From bcdac9401aaa2840f93637696e4aee8c170a5b5a Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Wed, 14 Aug 2024 23:40:02 -0400 Subject: [PATCH 54/98] Prevent setlist from being launched lmao --- src/hooks/useProfileState.ts | 2 +- src/routes/AppProfile/MoreDropdown.tsx | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/hooks/useProfileState.ts b/src/hooks/useProfileState.ts index 976150b..0ed16d4 100644 --- a/src/hooks/useProfileState.ts +++ b/src/hooks/useProfileState.ts @@ -106,7 +106,7 @@ export const useProfileState = (profileUUID: string): ProfileState => { }); }, launch: async () => { - if (loading) { + if (loading || activeProfile.profile.type === "setlist") { return; } diff --git a/src/routes/AppProfile/MoreDropdown.tsx b/src/routes/AppProfile/MoreDropdown.tsx index 6ef88da..e1741ce 100644 --- a/src/routes/AppProfile/MoreDropdown.tsx +++ b/src/routes/AppProfile/MoreDropdown.tsx @@ -14,6 +14,7 @@ type ItemProps = React.PropsWithChildren<{ const MoreDropdown: React.FC = (props: Props) => { const { + activeProfile, openInstallFolder, uninstall, deleteProfile @@ -38,9 +39,12 @@ const MoreDropdown: React.FC = (props: Props) => { sideOffset={5} align="end"> - await openInstallFolder()}> - Open Install Folder - + {activeProfile.profile.type === "application" && + await openInstallFolder()}> + Open Install Folder + + } + await uninstall()}> Uninstall From 0f440a0b995e9fd38d8ff61df35b01cab16f8873 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Thu, 15 Aug 2024 12:14:26 -0400 Subject: [PATCH 55/98] Added new section to profile page --- src/hooks/useProfileState.ts | 3 +-- src/profiles/types.ts | 1 + src/routes/AppProfile/index.tsx | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/hooks/useProfileState.ts b/src/hooks/useProfileState.ts index 0ed16d4..a9dae7a 100644 --- a/src/hooks/useProfileState.ts +++ b/src/hooks/useProfileState.ts @@ -3,11 +3,10 @@ import { UninstallBeforeDeleteDialog } from "@app/dialogs/Dialogs/UninstallBefor import { downloadAndInstall, launch, openInstallFolder, uninstall } from "@app/profiles/actions"; import { useDirectories } from "@app/profiles/directories"; import { useProfileStore } from "@app/profiles/store"; -import { ActiveProfile, Version, VersionList } from "@app/profiles/types"; +import { ActiveProfile } from "@app/profiles/types"; import { getPathForProfile } from "@app/profiles/utils"; import { useTask } from "@app/tasks"; import { IBaseTask } from "@app/tasks/Processors/base"; -import { useQuery } from "@tanstack/react-query"; import { invoke } from "@tauri-apps/api"; import { useEffect, useState } from "react"; import { useNavigate } from "react-router-dom"; diff --git a/src/profiles/types.ts b/src/profiles/types.ts index 9329352..919550c 100644 --- a/src/profiles/types.ts +++ b/src/profiles/types.ts @@ -60,6 +60,7 @@ export interface Metadata { bannerFrontUrl?: string, initialRelease: string, + newsCategory?: string, links: { [id: string]: { diff --git a/src/routes/AppProfile/index.tsx b/src/routes/AppProfile/index.tsx index 9c95b2a..73da32e 100644 --- a/src/routes/AppProfile/index.tsx +++ b/src/routes/AppProfile/index.tsx @@ -10,6 +10,7 @@ import Button, { ButtonColor } from "@app/components/Button"; import MoreDropdown from "./MoreDropdown"; import { distanceFromToday } from "@app/utils/timeFormat"; import ProfileIcon from "@app/components/ProfileIcon"; +import NewsSection from "@app/components/NewsSection"; function AppProfile() { const { uuid } = useParams(); @@ -64,7 +65,7 @@ function AppProfile() {
- +
From fb2c9313987d8476bd64270da86e7a5764fa6de8 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Thu, 15 Aug 2024 13:06:34 -0400 Subject: [PATCH 56/98] Ask user before opening a URL --- src-tauri/Cargo.lock | 34 +++++++ src-tauri/Cargo.toml | 2 +- src-tauri/tauri.conf.json5 | 4 + src/components/LoadingScreen/index.tsx | 2 +- src/dialogs/Dialogs/BaseDialog.module.css | 19 +++- src/dialogs/Dialogs/ErrorDialog.module.css | 16 ---- src/dialogs/Dialogs/ErrorDialog.tsx | 19 ++-- .../Dialogs/InstallFolderDialog.module.css | 59 ------------- src/dialogs/Dialogs/InstallFolderDialog.tsx | 88 ------------------- src/dialogs/Dialogs/LeavingLauncherDialog.tsx | 40 +++++++++ src/dialogs/Dialogs/TryCloseDialog.tsx | 6 +- .../Dialogs/UninstallBeforeRemoveDialog.tsx | 2 +- src/dialogs/dialogUtil.ts | 28 ------ src/dialogs/index.ts | 5 ++ src/profiles/actions.ts | 2 +- src/profiles/store.ts | 2 +- src/routes/AppProfile/LaunchButton.tsx | 12 +-- src/routes/AppProfile/MoreDropdown.tsx | 2 +- src/routes/AppProfile/index.tsx | 5 +- src/routes/Marketplace/MarketplaceSection.tsx | 2 +- .../Processors/DownloadAndInstallTask.tsx | 2 +- src/tasks/Processors/UninstallTask.tsx | 2 +- src/tasks/index.ts | 2 +- src/utils/safeUrl.ts | 11 +++ 24 files changed, 150 insertions(+), 216 deletions(-) delete mode 100644 src/dialogs/Dialogs/ErrorDialog.module.css delete mode 100644 src/dialogs/Dialogs/InstallFolderDialog.module.css delete mode 100644 src/dialogs/Dialogs/InstallFolderDialog.tsx create mode 100644 src/dialogs/Dialogs/LeavingLauncherDialog.tsx delete mode 100644 src/dialogs/dialogUtil.ts create mode 100644 src/utils/safeUrl.ts diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 1c64a29..5733892 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -2460,6 +2460,16 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +[[package]] +name = "open" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2078c0039e6a54a0c42c28faa984e115fb4c2d5bf2208f77d1961002df8576f8" +dependencies = [ + "pathdiff", + "windows-sys 0.42.0", +] + [[package]] name = "opener" version = "0.7.1" @@ -2599,6 +2609,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "pathdiff" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" + [[package]] name = "pbkdf2" version = "0.11.0" @@ -4073,10 +4089,12 @@ dependencies = [ "minisign-verify", "objc", "once_cell", + "open", "os_info", "percent-encoding", "rand 0.8.5", "raw-window-handle", + "regex", "reqwest 0.11.27", "rfd", "semver", @@ -4136,6 +4154,7 @@ dependencies = [ "png", "proc-macro2", "quote", + "regex", "semver", "serde", "serde_json", @@ -5046,6 +5065,21 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ee5e275231f07c6e240d14f34e1b635bf1faa1c76c57cfd59a5cdb9848e4278" +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + [[package]] name = "windows-sys" version = "0.45.0" diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 58bd1f3..f3111fb 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -15,7 +15,7 @@ tauri-build = { version = "1.5.0", features = [] } [dependencies] log = "^0.4" tauri-plugin-log = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v1" } -tauri = { version = "1.5.2", features = [ +tauri = { version = "1.5.2", features = [ "shell-open", "fs-read-file", "fs-read-dir", "fs-create-dir", diff --git a/src-tauri/tauri.conf.json5 b/src-tauri/tauri.conf.json5 index a877f23..72eaaf3 100644 --- a/src-tauri/tauri.conf.json5 +++ b/src-tauri/tauri.conf.json5 @@ -31,6 +31,10 @@ // Used to determine what OS the user is on "all": true }, + "shell": { + // Used to open URLs using the default program + "open": true + }, "path": { // Required for tauri-settings "all": true diff --git a/src/components/LoadingScreen/index.tsx b/src/components/LoadingScreen/index.tsx index 7b906d8..ca31869 100644 --- a/src/components/LoadingScreen/index.tsx +++ b/src/components/LoadingScreen/index.tsx @@ -6,11 +6,11 @@ import { serializeError } from "serialize-error"; import { useProfileStore } from "@app/profiles/store"; import { settingsManager } from "@app/settings"; import { invoke } from "@tauri-apps/api"; -import { showErrorDialog } from "@app/dialogs/dialogUtil"; import { appWindow } from "@tauri-apps/api/window"; import { launch } from "@app/profiles/actions"; import { getPathForProfile } from "@app/profiles/utils"; import { useDirectories } from "@app/profiles/directories"; +import { showErrorDialog } from "@app/dialogs"; enum LoadingState { "LOADING", diff --git a/src/dialogs/Dialogs/BaseDialog.module.css b/src/dialogs/Dialogs/BaseDialog.module.css index 2176e95..59779f0 100644 --- a/src/dialogs/Dialogs/BaseDialog.module.css +++ b/src/dialogs/Dialogs/BaseDialog.module.css @@ -26,4 +26,21 @@ .buttons > button { display: flex; flex: 1 0 0; -} \ No newline at end of file +} + +.box { + display: flex; + padding: 25px; + align-items: center; + gap: 10px; + align-self: stretch; + border-radius: 8px; + border: 1px solid rgba(0, 0, 0, 0.15); + background: rgba(255, 255, 255, 0.25); + + color: #000; + font-size: 16px; + font-style: normal; + font-weight: 300; + line-height: normal; +} diff --git a/src/dialogs/Dialogs/ErrorDialog.module.css b/src/dialogs/Dialogs/ErrorDialog.module.css deleted file mode 100644 index 809024a..0000000 --- a/src/dialogs/Dialogs/ErrorDialog.module.css +++ /dev/null @@ -1,16 +0,0 @@ -.stacktrace { - display: flex; - padding: 25px; - align-items: center; - gap: 10px; - align-self: stretch; - border-radius: 8px; - border: 1px solid rgba(0, 0, 0, 0.15); - background: rgba(255, 255, 255, 0.25); - - color: #000; - font-size: 16px; - font-style: normal; - font-weight: 300; - line-height: normal; -} \ No newline at end of file diff --git a/src/dialogs/Dialogs/ErrorDialog.tsx b/src/dialogs/Dialogs/ErrorDialog.tsx index 35538b0..a5114d8 100644 --- a/src/dialogs/Dialogs/ErrorDialog.tsx +++ b/src/dialogs/Dialogs/ErrorDialog.tsx @@ -1,6 +1,6 @@ import Button, { ButtonColor } from "@app/components/Button"; import { BaseDialog } from "./BaseDialog"; -import styles from "./ErrorDialog.module.css"; +import styles from "./BaseDialog.module.css"; import { error as LogError } from "tauri-plugin-log-api"; import { serializeError } from "serialize-error"; import { closeDialog } from ".."; @@ -19,13 +19,22 @@ export class ErrorDialog extends BaseDialog> { } getInnerContents() { + let message: string; + if (this.props.error instanceof Error) { + message = JSON.stringify(serializeError(this.props.error)); + } else if (typeof this.props.error === "string") { + message = this.props.error; + } else { + message = JSON.stringify(this.props.error); + } + return <>

- A fatal error has occured. If you don't know what happened, please report this to our Discord + A fatal error has occured. If this continues to happen, please report this to our Discord or GitHub immediately. Make sure to send the below text:

-
- { this.props.error instanceof Error && "message" in this.props.error ? this.props.error.message as string : JSON.stringify(serializeError(this.props.error)) } +
+ {message}
; } @@ -36,7 +45,7 @@ export class ErrorDialog extends BaseDialog> { getButtons() { return <> - + ; } } diff --git a/src/dialogs/Dialogs/InstallFolderDialog.module.css b/src/dialogs/Dialogs/InstallFolderDialog.module.css deleted file mode 100644 index 8ba56de..0000000 --- a/src/dialogs/Dialogs/InstallFolderDialog.module.css +++ /dev/null @@ -1,59 +0,0 @@ -.folder_container { - display: flex; - padding: 25px; - justify-content: space-between; - align-items: center; - align-self: stretch; - - border-radius: 8px; - border: 1px solid #DADADA; - - cursor: pointer; - user-select: none; -} - -.folder_container:hover { - background: rgba(0, 0, 0, 0.02); -} - -.folder_info { - display: flex; - align-items: center; - gap: 10px; - - color: rgba(0, 0, 0, 0.75); - font-size: 14px; - font-style: normal; - font-weight: 600; - line-height: normal; - text-transform: uppercase; -} - -.folder_extra { - color: rgba(0, 0, 0, 0.25); - font-size: 14px; - font-style: normal; - font-weight: 600; - line-height: normal; - text-transform: uppercase; -} - -.warning_box { - margin-top: 10px; - - display: flex; - padding: 15px; - align-items: center; - gap: 10px; - align-self: stretch; - - border-radius: var(--web-radius, 8px); - border: 1px solid #FFA800; - background: rgba(255, 168, 0, 0.10); - - color: #7C5200; - font-size: 12px; - font-style: normal; - font-weight: 400; - line-height: normal; -} \ No newline at end of file diff --git a/src/dialogs/Dialogs/InstallFolderDialog.tsx b/src/dialogs/Dialogs/InstallFolderDialog.tsx deleted file mode 100644 index 2b74db5..0000000 --- a/src/dialogs/Dialogs/InstallFolderDialog.tsx +++ /dev/null @@ -1,88 +0,0 @@ -import Button, { ButtonColor } from "@app/components/Button"; -import { BaseDialog } from "./BaseDialog"; -import { open } from "@tauri-apps/api/dialog"; -import styles from "./InstallFolderDialog.module.css"; -import { DriveIcon, WarningIcon } from "@app/assets/Icons"; -import { invoke } from "@tauri-apps/api"; -import { closeDialog } from ".."; - -interface State { - path?: string; - empty: boolean; -} - -export class InstallFolderDialog extends BaseDialog { - constructor(props: Record) { - super(props); - this.state = { - path: undefined, - empty: true - }; - - // Load the default path - (async () => { - const path = await invoke("get_download_location") as string; - this.setState(() => ({ - path: path, - empty: true - })); - })(); - } - - getInnerContents() { - return <> -

- Please choose an installation folder. This folder should not be a folder that is synced with the cloud. - If you do not know what folder to choose, just click "Okay". -

-
this.askForFolder()}> -
- - {typeof this.state.path === "string" ? this.state.path : "Loading..."} -
-
- -
-
- {!this.state.empty ? -
- The folder selected is not empty! Make sure it doesn't have any files in it. -
- : "" - } - ; - } - - private async askForFolder() { - const select = await open({ - directory: true - }); - - if (typeof select === "string") { - const path: string = select; - const empty: boolean = await invoke("is_dir_empty", { path: path }); - - this.setState(() => ({ - path: path, - empty: empty - })); - } - } - - getTitle() { - return <>Install Folder; - } - - getButtons() { - return <> - - - ; - } -} diff --git a/src/dialogs/Dialogs/LeavingLauncherDialog.tsx b/src/dialogs/Dialogs/LeavingLauncherDialog.tsx new file mode 100644 index 0000000..f780247 --- /dev/null +++ b/src/dialogs/Dialogs/LeavingLauncherDialog.tsx @@ -0,0 +1,40 @@ +import Button, { ButtonColor } from "@app/components/Button"; +import { BaseDialog } from "./BaseDialog"; +import { closeDialog } from ".."; +import styles from "./BaseDialog.module.css"; +import { openUrl } from "@app/utils/safeUrl"; + +export class LeavingLauncherDialog extends BaseDialog> { + constructor(props: Record) { + super(props); + } + + getInnerContents() { + return <> +

+ This link is taking you to the following website. Make sure you trust it before going to there! +

+
+ {this.props.url as string} +
+ ; + } + + getTitle() { + return <>Leaving Launcher; + } + + getButtons() { + return <> + + + ; + } +} diff --git a/src/dialogs/Dialogs/TryCloseDialog.tsx b/src/dialogs/Dialogs/TryCloseDialog.tsx index 2552d80..d9171ba 100644 --- a/src/dialogs/Dialogs/TryCloseDialog.tsx +++ b/src/dialogs/Dialogs/TryCloseDialog.tsx @@ -22,8 +22,10 @@ export class TryCloseDialog extends BaseDialog> { getButtons() { return <> - - + ; diff --git a/src/dialogs/Dialogs/UninstallBeforeRemoveDialog.tsx b/src/dialogs/Dialogs/UninstallBeforeRemoveDialog.tsx index 3bfa3d8..2295a64 100644 --- a/src/dialogs/Dialogs/UninstallBeforeRemoveDialog.tsx +++ b/src/dialogs/Dialogs/UninstallBeforeRemoveDialog.tsx @@ -23,7 +23,7 @@ export class UninstallBeforeDeleteDialog extends BaseDialog - ; diff --git a/src/dialogs/dialogUtil.ts b/src/dialogs/dialogUtil.ts deleted file mode 100644 index 5bed11f..0000000 --- a/src/dialogs/dialogUtil.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { invoke } from "@tauri-apps/api"; -import { InstallFolderDialog } from "./Dialogs/InstallFolderDialog"; -import { ErrorDialog } from "./Dialogs/ErrorDialog"; -import { createAndShowDialog } from "."; - -export async function showInstallFolderDialog() { - if (!await invoke("is_initialized")) { - const dialogOutput = await createAndShowDialog(InstallFolderDialog); - - if (dialogOutput === "cancel") { - return false; - } else { - try { - await invoke("set_download_location", { - path: dialogOutput - }); - } catch { - return false; - } - } - } - - return true; -} - -export async function showErrorDialog(error: string) { - await createAndShowDialog(ErrorDialog, { error: error }); -} \ No newline at end of file diff --git a/src/dialogs/index.ts b/src/dialogs/index.ts index 30aba6b..b85a5df 100644 --- a/src/dialogs/index.ts +++ b/src/dialogs/index.ts @@ -1,6 +1,7 @@ import { Component } from "react"; import { useStore } from "zustand"; import { createStore } from "zustand/vanilla"; +import { ErrorDialog } from "./Dialogs/ErrorDialog"; type DialogStore = { open: boolean, @@ -49,3 +50,7 @@ export const setDialogOpen = (open: boolean) => { open }); }; + +export async function showErrorDialog(error: string) { + await createAndShowDialog(ErrorDialog, { error }); +} diff --git a/src/profiles/actions.ts b/src/profiles/actions.ts index 639feea..9252e95 100644 --- a/src/profiles/actions.ts +++ b/src/profiles/actions.ts @@ -3,9 +3,9 @@ import { ActiveProfile } from "./types"; import { addTask } from "@app/tasks"; import { UninstallTask } from "@app/tasks/Processors/UninstallTask"; import { getOS } from "@app/utils/os"; -import { showErrorDialog } from "@app/dialogs/dialogUtil"; import { invoke } from "@tauri-apps/api"; import { useDirectories } from "./directories"; +import { showErrorDialog } from "@app/dialogs"; export const downloadAndInstall = async (profile: ActiveProfile, profilePath: string, onFinish?: () => void): Promise => { const directories = useDirectories.getState(); diff --git a/src/profiles/store.ts b/src/profiles/store.ts index 9d7c0bf..3cc4b23 100644 --- a/src/profiles/store.ts +++ b/src/profiles/store.ts @@ -1,8 +1,8 @@ import { create } from "zustand"; import { ActiveProfile, Profile, Version, VersionList } from "./types"; -import { showErrorDialog } from "@app/dialogs/dialogUtil"; import { v4 as createUUID } from "uuid"; import { settingsManager } from "@app/settings"; +import { showErrorDialog } from "@app/dialogs"; export interface ProfileStore { activeProfiles: ActiveProfile[], diff --git a/src/routes/AppProfile/LaunchButton.tsx b/src/routes/AppProfile/LaunchButton.tsx index 2dd939a..8c4722f 100644 --- a/src/routes/AppProfile/LaunchButton.tsx +++ b/src/routes/AppProfile/LaunchButton.tsx @@ -22,7 +22,7 @@ export function LaunchButton({ profileState }: Props) { // Loading button if (loading) { - return ; } @@ -34,7 +34,7 @@ export function LaunchButton({ profileState }: Props) { // Installing button if (currentTask !== undefined) { - return ; @@ -42,7 +42,7 @@ export function LaunchButton({ profileState }: Props) { // Update/install button if (folderState === ProfileFolderState.UpdateRequired || folderState === ProfileFolderState.FirstDownload) { - return ; } - return ; } diff --git a/src/routes/AppProfile/MoreDropdown.tsx b/src/routes/AppProfile/MoreDropdown.tsx index e1741ce..20175ad 100644 --- a/src/routes/AppProfile/MoreDropdown.tsx +++ b/src/routes/AppProfile/MoreDropdown.tsx @@ -28,7 +28,7 @@ const MoreDropdown: React.FC = (props: Props) => { return - diff --git a/src/routes/AppProfile/index.tsx b/src/routes/AppProfile/index.tsx index 73da32e..6a35095 100644 --- a/src/routes/AppProfile/index.tsx +++ b/src/routes/AppProfile/index.tsx @@ -11,6 +11,7 @@ import MoreDropdown from "./MoreDropdown"; import { distanceFromToday } from "@app/utils/timeFormat"; import ProfileIcon from "@app/components/ProfileIcon"; import NewsSection from "@app/components/NewsSection"; +import { askOpenUrl } from "@app/utils/safeUrl"; function AppProfile() { const { uuid } = useParams(); @@ -79,7 +80,9 @@ function AppProfile() { { Object.entries(metadata.links).map(i => - ) diff --git a/src/routes/Marketplace/MarketplaceSection.tsx b/src/routes/Marketplace/MarketplaceSection.tsx index b0a81a7..0c4510f 100644 --- a/src/routes/Marketplace/MarketplaceSection.tsx +++ b/src/routes/Marketplace/MarketplaceSection.tsx @@ -24,7 +24,7 @@ const MarketplaceSection: React.FC = ({ name, children }: Props) => { {name}
{(expanded || listOverflowing) && - - ) + ; + }) }
From 9810534954bfaa38c56934aab0613dc48eb2da64 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Thu, 15 Aug 2024 13:28:28 -0400 Subject: [PATCH 58/98] Queue entry adjustments --- .../Queue/QueueEntry/QueueEntry.module.css | 14 ++---------- .../QueueEntry/QueueEntryBanner.module.css | 22 +++++++------------ src/components/Queue/QueueEntry/index.tsx | 7 +++++- .../Processors/DownloadAndInstallTask.tsx | 3 +++ src/tasks/Processors/UninstallTask.tsx | 3 +++ 5 files changed, 22 insertions(+), 27 deletions(-) diff --git a/src/components/Queue/QueueEntry/QueueEntry.module.css b/src/components/Queue/QueueEntry/QueueEntry.module.css index 3b4b864..c38f57e 100644 --- a/src/components/Queue/QueueEntry/QueueEntry.module.css +++ b/src/components/Queue/QueueEntry/QueueEntry.module.css @@ -22,16 +22,6 @@ gap: 15px; } -.icon { - overflow: hidden; - display: flex; - justify-content: center; - align-items: center; - gap: 10px; - border-radius: 8px; - background: #000410; -} - .icon > * { width: 32px; height: 32px; @@ -50,10 +40,10 @@ line-height: normal; } -.info_header { +.infoHeader { color: #000; font-size: 14px; font-style: normal; font-weight: 500; line-height: normal; -} \ No newline at end of file +} diff --git a/src/components/Queue/QueueEntry/QueueEntryBanner.module.css b/src/components/Queue/QueueEntry/QueueEntryBanner.module.css index 8d39f95..b994b8e 100644 --- a/src/components/Queue/QueueEntry/QueueEntryBanner.module.css +++ b/src/components/Queue/QueueEntry/QueueEntryBanner.module.css @@ -12,19 +12,9 @@ display: none; } -.icon { - overflow: hidden; - display: flex; - justify-content: center; - align-items: center; - gap: 10px; - border-radius: 8px; - background: #000410; -} - .icon > * { - width: 42px; - height: 42px; + width: 64px; + height: 64px; } .info { @@ -39,10 +29,14 @@ line-height: normal; } -.info_header { +.infoHeader { color: #FFF; font-size: 24px; font-style: normal; font-weight: 600; line-height: normal; -} \ No newline at end of file +} + +.infoHeader > .tag { + opacity: 0.5; +} diff --git a/src/components/Queue/QueueEntry/index.tsx b/src/components/Queue/QueueEntry/index.tsx index 2c7c7fb..35bfae7 100644 --- a/src/components/Queue/QueueEntry/index.tsx +++ b/src/components/Queue/QueueEntry/index.tsx @@ -20,7 +20,12 @@ const QueueEntry: React.FC = ({ icon, name, releaseName, tag, bannerMode
{icon}
- {name} {tag} + + {name} + + ({tag}) + + {releaseName}
diff --git a/src/tasks/Processors/DownloadAndInstallTask.tsx b/src/tasks/Processors/DownloadAndInstallTask.tsx index d939354..c429f7e 100644 --- a/src/tasks/Processors/DownloadAndInstallTask.tsx +++ b/src/tasks/Processors/DownloadAndInstallTask.tsx @@ -5,6 +5,7 @@ import { ReactNode } from "react"; import QueueEntry from "@app/components/Queue/QueueEntry"; import { localizeObject } from "@app/utils/localized"; import { showErrorDialog } from "@app/dialogs"; +import ProfileIcon from "@app/components/ProfileIcon"; export class DownloadAndInstallTask extends BaseTask implements IBaseTask { onFinish?: () => void; @@ -42,6 +43,7 @@ export class DownloadAndInstallTask extends BaseTask implements IBaseTask { name={metadata.name} releaseName={metadata.releaseName} tag={this.activeProfile.version.tag} + icon={} bannerMode={bannerMode} />; } else { const metadata = localizeObject(profile.metadata, "en-US"); @@ -49,6 +51,7 @@ export class DownloadAndInstallTask extends BaseTask implements IBaseTask { return } bannerMode={bannerMode} />; } } diff --git a/src/tasks/Processors/UninstallTask.tsx b/src/tasks/Processors/UninstallTask.tsx index 33b4bf7..2c35d1c 100644 --- a/src/tasks/Processors/UninstallTask.tsx +++ b/src/tasks/Processors/UninstallTask.tsx @@ -5,6 +5,7 @@ import { ReactNode } from "react"; import QueueEntry from "@app/components/Queue/QueueEntry"; import { localizeObject } from "@app/utils/localized"; import { showErrorDialog } from "@app/dialogs"; +import ProfileIcon from "@app/components/ProfileIcon"; export class UninstallTask extends BaseTask implements IBaseTask { onFinish?: () => void; @@ -32,12 +33,14 @@ export class UninstallTask extends BaseTask implements IBaseTask { return } bannerMode={bannerMode} />; } else { const metadata = localizeObject(profile.metadata, "en-US"); return } bannerMode={bannerMode} />; } } From 574dddc336db66b66c73ec50ec25ef7db94603c7 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Thu, 15 Aug 2024 13:51:49 -0400 Subject: [PATCH 59/98] Updated minimum window size --- src-tauri/tauri.conf.json5 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src-tauri/tauri.conf.json5 b/src-tauri/tauri.conf.json5 index 72eaaf3..283b167 100644 --- a/src-tauri/tauri.conf.json5 +++ b/src-tauri/tauri.conf.json5 @@ -74,9 +74,9 @@ "fullscreen": false, "resizable": true, "title": "YARC Launcher", - "width": 1250, - "height": 700, - "minWidth": 1000, + "width": 1300, + "height": 800, + "minWidth": 1200, "minHeight": 575, "decorations": false } From 5dd5ccc146c5a0bcc1ad0ccd4813395ff78a266f Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Thu, 15 Aug 2024 14:21:21 -0400 Subject: [PATCH 60/98] Market place banner --- index.html | 22 +- .../ArchivoBlack/ArchivoBlack-Regular.ttf | Bin 0 -> 89160 bytes public/fonts/ArchivoBlack/archivoBlack.css | 7 + .../BigShouldersText-Regular.ttf | Bin 0 -> 105456 bytes .../BigShouldersText/bigShouldersText.css | 8 + public/fonts/Inter/inter.css | 264 +++++++++--------- public/profileAssets/banners/SetlistWave.png | Bin 0 -> 443794 bytes .../NewsEntry/NewsEntry.module.css | 3 +- src/profiles/marketplace.ts | 15 +- src/routes/AppProfile/index.tsx | 2 +- src/routes/Marketplace/Marketplace.module.css | 34 ++- src/routes/Marketplace/index.tsx | 32 ++- src/styles.css | 6 +- 13 files changed, 241 insertions(+), 152 deletions(-) create mode 100644 public/fonts/ArchivoBlack/ArchivoBlack-Regular.ttf create mode 100644 public/fonts/ArchivoBlack/archivoBlack.css create mode 100644 public/fonts/BigShouldersText/BigShouldersText-Regular.ttf create mode 100644 public/fonts/BigShouldersText/bigShouldersText.css create mode 100644 public/profileAssets/banners/SetlistWave.png diff --git a/index.html b/index.html index 2cde747..d26e767 100644 --- a/index.html +++ b/index.html @@ -1,14 +1,16 @@ - - - - Yet Another Launcher - - + + + + Yet Another Launcher - -
- - + + + + + +
+ + diff --git a/public/fonts/ArchivoBlack/ArchivoBlack-Regular.ttf b/public/fonts/ArchivoBlack/ArchivoBlack-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ebadf62052dce6358ea8c143686e1464c2a428f6 GIT binary patch literal 89160 zcmd4434C0|kw4!3-kUd#%G|z7H(Gwq!|`6>Le^lFj7Fq3?>PL&4!RHXBIsAf2;e=Dan@e`+WBEmp(o3 z&3k=RS65e6S5@~g&KPsxLt{y8Ev<{=s^jVyQx4$iv9^^f)(kwb*2h@p$BbDHw5?g! zbnLw^7cpjzV@!Q)#hU8cJ$K)Hk}>`O@^|;{=o#tTTDq69gzHh^?|XNTx@v#Pe}($+ znjP3WGO%NQ&arD4t0-YCe#b!1t`R&>LirqAEd$%H-1_K;f7r&@?7JBE__y`<^jX{g z^T&9PXRL7>9$07SkKlU?z87rUF?vPO_=3}nrQp4OZ2NF;&z~=P5b&$dBCX%ibH#|7 zkgyQ>3y|M6)U%_1Gh4 zc{t;i=Qk(L`+%9%w<*WZez1HGU0?ZXYu$K8-~;_J^*i`#mMFuWsvPB?WhUV8u(AQ) zJLHvbVzqo8p4x4yfgEN&G1+ zjV0rsvmE?$R*ZiRT+hSj0{nB%->&{yDoH|D4^6f6h+fpR@1c zpR*t0pR?cLpR+Ug=j=`VbM`j=Is0$?bN)sCMS+cuZ?Ye)-f*1rV_km!Eeo@--jU+{<4sLG1B@lB^N1oSVyt9>oU z3;3Z`8~naQ8;+~2<#-W&d(Luzam{zAcP$?FwRGX{8}pPBOR7bUEBhuNzrnBFa$I38 z&zSmj)%UYSXSNpYTiRpX#i2i5u2J<2F zj{)%-%YMsut#<2b>)qBfwp`nK+vjYr+fDXi`zLWX#;=I~S^P%{bqQA_+?McOVpihX z#G4YIOZ3_}Go$*%YmdyJyU(fPnZO-y%Te6SlB<1*XFUebw_h0#Y z^B>6nr7OX8sp|#TJMIei9`|=Vs%M^Ozvqngka>;9@zb`vg{<(?`mCaS@)z+H1GwNr2Tzk51QQe*Oy#9)Y zyoNg)#v8XaK0kBo%nxU6nDxuqd*>)~ZklVGdvNZD^A6AZ+x)8euP=CMq2KrDqM=2P zG?|*#G+onlXVZ6@H5{hZ5My> z68(|`m;CM0t2SCTR&3n7@!^gCv#Dv*flW_rdUbQ&=E2P;H^0}N(|u|8{oTLmS=DoD zOaGR8x4hk(*}J{>@!tRHEACs@ce3Bv-@lb@9ozb)0o%a-f$wa~*>=aa=LS!F=I+bh z+Ww;*-x)3$v5d?g*)p(yQV z7%d)c8-04rIo2_@f6PC2X6%#Q&fPP1ckbS{`?lRL?0#)`V9)G5*X((0&wuXuO-Sc=*O=Zu-Ja|2R~2=%t%?9&R{%=t#$r+mC$X$ls5yIC}lj@7|Jf z%l=y)z2)Uw-aMusd*s-w$Nq6^`mG(ej@t-rkW)6ZsqcK&DkKYPPxe{`Gmwq>^w zZzW!2W4D9fDlLmU*Rq}4dq#&?0$a`0=0$5=Y{9Y>oi0|kdc`sqbAl6&gHLPBiX0An z&jvr0&s1=Yc*wOhmc{aoXA1JhL6)SlOqM5}>1a=9c9sH;n2UPwhZ=QUOn@SprGp2$ zdwRByvX7_w+`6-;m;KLFpW6oqde~p4{2cDx&fbE|+|JI3&sT?c_6@QBnCf#ELGrUH zKgULPu^;W4;uC%1qK6!qp?m73kem2a#63wO4jj=Zq#ZsPv-4N^H}OBpFJ*sWkFaal zHZ}*?qIXo20?cdN#_g2wM8kgvyPmxqYKsHc3UF={Z@MY!2JcoQo z$uyoXuGBM)C-YS9**ZDp}>ud)S-#kkj48Gp^VH?b`K1LIz2CH!9F-oi5Y z^~Sw5;@-|`c(DGsi2Hc%!pKW_5^%@R<5B#NfLg2ZzY93n$p-O#6!%p~gKRsl!+1J? z_bb?9*2&hQ)F9ru@NJk4A+L+A!QEEe?Ew~cvVJ^~Ikw~4i|<3o-wzGQ#l~>ohx?tl zA4N@+cMV&LdR?f0MC6UExihMU3glWZN)v327J_~9<~La z)b<{HCpcVqM(r+QtHk{%aN_!>@Dq*GVYUNM4x+s=;Ghz1T`7851-#I^YPJM$^x`>T z*~Qub2aU-fAlZrMgzMdS*Ce3sWtX9j)hIE5`luf}C&fn%t6_~XHMk<`aK+R?_>*Pk zvUQ;4i`a5#ZqtPz8lLDII z7p1GF{S4PDpgNn_EZoIoL}#;od_TXPk1N^Ai^`9c(`u1=hx)jBN_{@>hP?M&X|6n% z$5rI2an-rzxaPSQxLREMU5~iF;`*A~ z@@)UvHD_1KXY~1o{zk_e{cj|m`JXeNo_Y1mEoYuRbK=b7XKp&P_sqUCgJ(L=^uPWh zW3T`A_1&-Uc)cHYOQ_WAZLcqWy@2jsyW_R(jQ#dG-7Ij=Fs_V!7BYe<|Dn95{1I2A z;GgnG<*&-$l=oE{v-AEbzYk`S^(b%2@5=9GouT(CujKU{{FPtDZ{!VpA@}hj-owjz z3!ecgR>m9oHr~$%crCvHa=`&}TxX z*ss|ycprO({SW&q`y2Z^Cf2K5fu?d8QvOCr*CWt&J_pV9^UyWFfH`*ur1=-2$KC^d z<`HO4_c0ITY$1CTTI~I-lsyhU@E9v+Uxfwa3C#MZz%!r3to#=E%s0SsPGF{flQl3u z=F8W?=f2J6v+uBfVGG&wnE&6yTz&z(^82ir{Qwf-MR4e!fG_`;{RndEr{J9b!IrU~ zLr(lVc<+C*OW0|)k-ZLm=ry((Ghqw+Blz+kSU3AUxZHn3F8&$(>c7B|J_28Q9~}H$ zaIp`;v)*HuvkxGFK4E(~XZzT-+{CWqW_FP4>`$1_w?Iq!EcoKDAP3$A5Bm#$fZxZz z#2?~c;a}#D@khY5&O$o;FZj==Y(H0dGjHOH_-ww6uiz{Ba^Ar^c{{%i9HEpS;Cngo zrEB>?KE}83OZjd-%&+8I`6m7uKFGWIX3U_!O1kIEpynZ|HfEc4dVBouDkU3hN2;76 z(K~MB;mR*r`?S(MsB;nOoS5i2M{37>TdQeoEnSgp{D$$5akU!XHCzkj{rH>8JuICP zm7|3F$r4ljY+f)==vpPq;QM6oO#bX`<_-2!l#@6jT!@5svnS zS3s}L;WYkNzHI!rNPj_kTe(-fv&i@3Kf<$LQ$l?xFH@-O`?4OzNmruja31wywknuk zd7L#H_vh>@@`T=_u3UU4{0JQJQ*0hm15ygzE4|D$X}Sln+=w;PDV9x1xm;ew{XJ|B z>YHBb#hiwXG&Z5UhIZM6RKZe}$aIew2McTuaUwm-%0WX}>Ux$hVE8_B;#!I{h%^JK z42kAiF%mtmG_D0GpNEu$l*qm^z8ttIGE$Clbs5*$fMGLtjt4MCZTx+<0oVCR^YEUo z)yk!;T3qj7sq_y0C`774-nrb#z!8CGD*rzCnoJxtm4{S<)MTWYxO#{OqF$MA87oFv zf}QAu+Oi|Xp^gfqQgLZ#80_6_YiYq1Re*w)?T=VtkL|ue01$DKtq4D*~ z2CV%yut$-8gK|wqYKgd~XY{=}=2siuv#S5jj-!87)JK$?g=chM7Q6=U#djM!2n{Gzy^?jPtJx0J(Wtsug-Bm#$y5)< zuNM7YhO}I1XAQ_B`@Mlxn5fTpu$kyr2d`msl{hvRbu~j<%s~AlWAeuTI)0i}kDng@ z3uI~f_&h`~T^hZG{t3$jbn);vbctz~_3y;WP=4;{ z*?AeulAkCd?Kq0KQ!N^F0gEUtZ5sDNdUMF!IOsboq2ILNpR_f)m;YqnUjY4K0rZFp z{MX{2^IB2gYvS`O^vRct&j-aPJT-W71APk5K@N05(gItB_D7z90d_mPS7>%W6dK)| z(CMW00oJ$iE>RM;fAozkFO;?msArgy^jG!A^uziAeUo0I=b8R!`nu^F(~zmfRA$n& zKWmR^bF>02Pkl)}rd|W9dz`APy7H;=XXT9YGv!`*X|7OqD%+HHrC#yyXZch7D0Ida zp2aojC~reU{of^A6y}0n9is-VW&XnHcpX zX!e=V>&r0yZeYL-?Y7SyLXW9??@kGEXFaf%P@b- z$4>#GXLuv>X`;<>0q2K!`Y!tW@%U?a`d1dfe4{tCIx$c76g9~*3f{iSSD-XUD-P6p zFY0(1=@&@y$yb2$?;`yUD;;_ghjE$%EYi5Vi*-vT`eh@`q1KmpC0he%et;RXhIb;Z zz`8+Ww;?xS;bY(_fTRF7Hmqo%rLeD|mQzUI#dAQ7cemj=<>dIJe$n@@2t3)?+jv4x zouHM6Kr0V{Rvu!>pq^r+4x|-Go5o)Ogim0MpTNjH1V|qOgkNR98Gjig_f_@|@}LD? z21v`tHv!`Hyb<>;$giQc*HGJQsO>e>_8O#DGFmJ~>OdlF5e*Xk-32J`Mfw^>>S-jR zj&}qmUO}BNp}r5vhA{pjAbk;#zBr-oF4TWLpgoFoFQ9uG{d^hM-{JW?G&ty4J$GfQGEx~s_M9vS<(uY_P$BuR%ur-K$ zJ47oli&m~4e+Jlj7uflbcLM4a$YY-{x{YSFIeZ5AWsP7Az|kq- z=sSRTIwju0I7F7BF$vPy)b0ERy@)LtmZ)){G?LKd*XMjCCCo?C6!15G59HDihm0BDKjh+MOdegvp#NtXQr6_7wj;0*eLpW9FK=p z;U_$S{gfy2B-k#>*vIg+z{kPL;Q>h#n&nG89kSqOSm*zoXYfp(#VUC=^sXG}ytzCN z_8J##4X~qfH}`NaFM!RVmi-$qg!C9-{|@_9F}sbIfOq&|xp@cLR0He*kQc0xSHN2F z32a(bY$ohQHLzjTLc947*neJu#o<@5bv3}EHIvVR{bUX-3v*y!ng^T7Ja{?gvv2bS z(1{nax3~{l(jZ?1>&ABW8CW5j*${7mM(_ZqSct_e07Y&X)~7b;yMN|OIERim!k6-P z*g|&k4t6;#70X~>X=nd{-2&DN=!>iPYS@>4%|`heSUL8vF<9N!@%8*7=$aeYa^A%+ zhUMuJSTZ&u&g2i!(pK@!uw(SVy3q@p$ZB>a?}JV48g>;da$DJhe1PqR^=S?4Ol#RX z*y#rOXV`jv8LTUx^6h*FyO|HMi(nNQ;g|EBuww1wyVwDCEo>{Ju$k;~d_VgWKL8uj3$S$EC+sZO@#|rwN&$~ggG5Sa8IW;V;HNqK z23QYof@FLj7N8Gdox2$}xg((dg|Iu_1WQ{YtXCR83agn8swMjtd0X>9olUUZ9fQ@d z8ycjK*|8S67520fVjcB3>|OtYdHt`jubpIH=eNP$^#gu8G>`8vGyfc<@kjg)ekUw* zpXZ;;9qeIm^T*ji_C5Xt|0-L= zzs8@0hWRx2^W(5?{T9};*I+?A2Hl|<7PMEP-JE8>;U~1^>pDC2MO$|E@9sA*+R@Xy zb9l(SXn0_FsQ)tCqMd_713kTCqj=RSuJ-2M!JWNhJGO4`zrxnsH$2+Y+uJ`hs<-s^ zpdcmY$vVCE<+9 z(sq5Rgml%bp{UBNgSBg(U|G$1Sa&0WNR0NTeDu& zH`u?kf7jqH{i1=LJ-hquUE!B{mw2RKEQ;AK4h@3dBN5(XG}dDfNKcqRdirHsz2WL? zz2OS_M3?k_QIFm)zS;Ui@6G*2&HV;t41}wR8;C%VZ6H)e+eVbJEu2vw6tydZpD_;_ z)eRbyF(@hHGvUl}mqpYXciF(s{{EruJwttiz4~_16MefJzU>kDwC!kJACf&C>Y;GK zox>yB`t>21cPJvS+K+J)9DmkG@Mbw<`knT@mk1 z+lPk+c4?zTIHRJtK{#~=;WX)E5{j`XD8>vFjTwY9CJ1Lt63!mk=ALky);%G@*&_+( z%J575N=Z0ZiDI^^LSsZA)Yi;gEI_H7T`#YTX3J|+v$)nY$?r8ylGbaQ>a5^D{euJB zMz_U{Zo|;X`(5^}gS&(Gal62>hKv{1{wsR7_w4A~vORumsIPw~5VW%&->ClDnz~kb zozWoMThtPN`PlF%=D}`c?e8<5)@ZF`JBPLHgFAclk^Wu%qdlTn?F<24ZS9N(d;jHQ zgS&gS_Yd{<+Xjb5`_b*~TSh~-qa$(j6m|BF4uX+V>oaN_Wi>V8T2s^1U>n{!x{c7@ zvppU#Y#$yN?Cse;G(2kV*|~Fg&)A4fTz3)ztm3wBc+Zf$+upy`c(!GDbenuOHqti~ zXB6!l+On%(He4gRTRUS$owa}0D5k`y>?)o#nzjv(?dsQe3=R?50p8)EzWAOUBY+)~ zpbC*aR7Xvn1iq%Wd3IdY=;&5(yy0!=BJ?vqt8n?*x(%&eE*C;16IONj^)(l7@YiSi zOS-zZx(=_~;8zNJWWZ#vcT2Y0?Ppzn*6eLL0llxeyQ$L8EBvnRt(AVI!qw;UKflti z6jt-9E$mu-$p*LAoqc$N%fE6Z9{IYmUH(~gH><15bzJ7|>GPN1 zk@3ytuc7xfl=JzO8(e_qaF5GxTe+bdPh9lQMt6;L*VvuijR4DRK-%Mh?l;fKwwxz49uLt3vzpJa#uU5EPU4E^w2YoR$ zuiW4_d7J#Yw+TH**6vEbR^dfYTz$t)Tbf+-hWeN-VWv;N+TGggSIgXZ+3Y&(I*bO6 z*O&@{mQ@?NS7!ID?%Lq(a(B7>zBL>0E}M{Hv|s5rRrt-#TU93jJ!=f zer3y6Kko$;ep6Yc-(2A$P~*@Sjcq{|0PE}SqAcAl0#r-I350Yvw>FizL!)J_h#ozg ztc8~Ygl6=++tqs5+e0HMFwC-P6#TAi02zc5@5wHW=QYYF;C*NO_)JTZMLD}dJIZdWtLwwq|72UmXu(P~wNzp~t4 ziCI{U3D5>gopc&{duDlwhn_PB$gt916CB#(an@F%G=Fv3aT8B#-2nbaqc|f1JyYeW zt#CC6$m>v>tfzG%a{$ko6k2-DoX?6?d&>gvtmCyjjrv*-e4qo9mg&YM>6umOZ>XqB zpI7N`JYQB2bT6{c#1JuOp{vT(MvMTcU3&O%o3{;&X9Hvm7%jL%Bj;(U!0;?^ET`Xr zY#Nwop~!aJ#+v-r=JNi-RbH2C-eJ@^J35=IO4jGsyiLK}E`K-i65px~&nPa{mHmuT zq-J$B5r4ISRik}C;9ZQFjnR&trr;^OTnZqixw{XOuDPcVEKX_e$;N$m7x+SKnI3=! zuJ2vkGb`JR78awQxQJFz-z1Fy5Msm{mtqJTK!_`f?L~NIXL%aa|ql&P&*zaiGureEx z)HScG>Ub4T#k^e@^>%gk%BZ)#sJFqgk@dxvSXAMkRUVlkSSZ+FQ-yza`C*VB(b!?k z^r>LOfL8gd0AjP~GLdnS#C(t6=53N)Cvx^;rd46)$qu!EF+s)<^$W_sFp_SYjKKaG zDkgjrADic$mFy&+ znB_~Rc)k?X@zfN51M;+2_-EqML0D`Bx?PJQe1q8PtRRB+cL2@HDo!xgf}7>I;dHa2 z;sh5@R^moHSw(qT@oF{Yp_?_7hi=wV9=cgq@eH`(BHXRV9T#^ORXhXJ96j5BJNc}O z@^N~0G366?mry=&cPZr)cN?kAW@Ot$ZPLwVYLjldsZF}+p*)LmvxV}|O)ur4n?A}z zH~j*xCfscmaM9g>fQ#<73ApHPP{2iZpAm4;-DLtUy4x<`qPrcy@tn{A4vBC61$Z$m zZx`Zrgpf|z{62iU9I_U-lxL^Br98Vt9(qA}Mp1ZfsMay@O_bOzZ>hu{c}v-^Ks|G1 zl~>AJ%5asur3_ai@4Qfb*NAVTzP<96vhS0(lzl%+&Xe^WkhhfKT6s$u4kGXTP<_{l zZ=$~IP)xUF|#h+!QI9D{Q$x%{`ZN%*Ycj2_e9_rU;Bh|D)961$^ar=dEo3T2zRCEK!!^F z@L$?lg|F1cHEIeLe0VjtGDS)4Frjg5D(FPizXjRM4u?ZGrl#{s85J$?ehaMo3Owms z5dn<0xT>b9o$>Jq!%d1$inH6O_wc|m&0#gCm2>pXoFW_c76Sracnw@_`nV3rS2eS`m6=R{ zP**f9P3tt9v7s1()*2Wy@~6 z?QBj6BrP;*D%wnh-M!t{mMn0laKtfMRSX*MkHVPUz?j8?&_U)%vLsp(B}kfCqajq8 z>WIS-rZm*0)geW~_0zjr?kb6f>CZ>-ch(t#DVCBNe6>MJB2wl3=E(_($OshcaJVey ztnw5f#2ZOJKU7}0bpIWZQF;9?>L1LI)=wwM$_!GwhPIL)pFDVVxX z6r9rFj_UfK_`JC2o}caOJFABJjTt&#DP|}|KQHnv$j1D!fIyV?Bm}B1jcOefgVsBU zlWc~#anq#D%7nKh!{JEx6k5!g|mK1RtaVbc26GzmsDUMq;lXU>y zRaBd@)k3o`wF8|Hqn(jqG8GnNcr!eCIi_?|dTN2gk>W^-2fN_mIao*duB%0V%ylVD z41?^73Kq(r-@okZO0|GH+q|HnnpNKVc+t%~~689gGano4bU ztIe5Q5WI;P5oP@E5FOuxR3hGkUO0%5+R;DFqH6s%Zn44}Y%%vkKJkqp^wbXUM7B}K zaHTOYZLq|Yq!g4+6jR^fuwx`NN|u(9mSIXYrKUh`8!QqsPKdaKporrWVdcLjNf)?( za*)G9FAO;F1v!hI7lg-5P{eFsqludclaMExVuC86a$rp$5F88o1mTY{uRA9zGaZvK zktLLaE-(p+YSU;c>R!?_Ao?0;7J40_J7vj5b-S)>xO8TqhX3T9yPUasX?H#5%*}N^ zrufU3*X(y|dB+;pR4M+z`}yfMXMW%&T+;I~$0~8Qz-eecS*%Z3W_?~TFqI?9A7>q? zLl|JwW}TZ%IUN{qtsBVA)jG3%g)*1A57|H<*G!(T%a?#|WwA_8a-k>L3>FBE;sxj) zJ&iaaI#L&6FiQD}e_uGKdEvrEzNVL+yw88~q+dC8_py14*LL{Y*EP+%<@3+_{jh{6 z5@taY`Rt&Cx&pib%F+mMtC@yyzy$}Df;v>yycq;*2Kbt$cSC{5)d7B$%x>C;{HjUA zF&XD9(B;b_>M`Y;^0G3VX(^64n}xO`YYtnGYA{Gsb&OYUd|tW#nu)z5WvTw0J=B?- zefA_o5aaE#qtzsS*mYK}Sd{Caljxc{!gP~KA3_H$n=wBv=&Q+O?gsVen$g!86HDm( zP(;&B*Gyif%a={6joEE>cuFRAnkcbSP+}GPjn9_Hb#pE^>59?qhG?oZqu=Hc5SUSK?f0DM<GkyCtTp<5sZqRmHLVRkqXO3Kc;ecKujBf z39Oxk>XoF^stf8?@V{MI6FAI$f#><&vtKsUERv^$>qmq<6;=Wv3_%0Xq?k$9gsP%! z6!r+9+`JKj1==bteT{YR1S^3l)MOf>`GoHDcvRaY`FuiKiflg-7J_-c*O_NF62%5uSTP)U1%xX=uc4lXZo=W>bP+1P!2O{B6=2Wc<+6TP#>gGUFBt*hK z(CkTexsv~N0$e&Q15162BPkH_R|N$^`7}fM1Xy8})3Ol&rdfcXNF`GeqO=VN@fisl zZ<6vda3~TcMUtTeCp=09G?Iyjc(DrZePPf|Z|tf~750G1$84hkJtOV1g;0OZN z1fv#qE->oI#(Cpifoo#hp3t%e3tOG92Aq+UwR2A$V_^iVNRG6ML^k(*vWf)$6xkq| zMPg?Q*+l-|`$`s($j1K&K3Epnv;vFBGKppIA82Sl2LH)s%|2hEu?~~{wLjo@rgfRrlxS@&xG1)BJk>>}YL)h0iJ2Q}&!p7Ynuye=2myV!YI_DPbR&q6$e!eAm3$B9|75A{R;EyxG3; zbL9kgCIso5hxIbr%JX2+U+77(l96+Qmf&r0JG{j~LyTg+Z{xprHZEVea(QFt zy?l75bJJa4{o41RRZh(tTU*|+rqkECrmo~@;6TgDXO2I868I2(!dy*c)$G=j#oP)5 ztn5_{-ZDG5EO;&!_*^5yqFJZqy~$+X9LMc;=+?S!?Ityw7_P5=T1AkV%GtV^4Tqm~ zcKMu1NlDd7Rb?ebh1AnjV%hN_`$m{$>*wozS2P=6JvlNW`1!XcM@s}=bXLS3_SuM| z=5bgN4dm1b=4yvRWfQ8gSyRpX!0vRDS+IN?@ME)y)s_W|Ou_WCvDhH9@ia;yKj|&j z&0veUR-h)|?$AP2!kM>WF8fkJa znHnpB4~!X5#N9p{O@bnBwGmbljK!3k2o|f=G8{D>>@m}!1EX&xwx0>gkrdY$njIFa z<@yULosP!moVRq;1dD24EarlcM>K7NZ-vZ8G@p$QL{*}9B8JU}Gsp@HydJkJVz$Oj zW45MvXL=z}rkb?o=F%D0PBC*ooqg%(4$_Z;^H+r(=?f>bxfuqq(EL^5pu+l#fqZdh zR6nSNR`z81u%bI+ZLDdMQ$cGJ^LH9WpyH8&Z`ll8Cf5Su%o9r+uLdh?R%S+e$OuBq z8!{DhbTUtgv4O4>ToDo@0~vV-f3UK}E12n*==UFkr!BrrHAy6-kh!WD9KX>@>=YH-jDDVoXhpxKnTC1hHq@M>Jge_a5Y0~X7X8?&2^t zkgC|{+aK4fmwkW`-MA(hCetLC2(MGft}cfghd@5{YOA$ETu| zy=aAWdpm=-5A(nbrXh8E>X}9MOgbDbb_+ah5o)~jwaIxwEm=u@|Mh9b@GFW|Kv8IA zhS5qH=~t1XVK}1&(+T@9bs7?kx{6Bo-1Tiy<5{OsAC?uOJ{sLzAD#0TJGhv@F3p@F zb#59}jdbmmr%ww7ThcihwtH04uFdR%pn}p0s0yJ#zjvCn=Ci7R3v+F}l3y#h4eEpE z9j4qAIKP*Qp#tfF=Fz6%Gb9C>Ky=3_#b9R+ULMwl_neN>f(7j3Z=#+DfzfQps2RR0 z;1E+?#fC9*KI!CqBL6z+tis!rlb@4sc$$RXDd=)?Pm`dR2cw)yQC|YjoK`1uD+v?; zh;(=vRsjbN)+~8PI=DC-NboX{p9Zws4J70;$R`|^s8Xy2JPXmUy1t%*m=OGsTe*Z!;#GB|PDj2@Fedw|DGEJizKO0d1XSyQJv(#xa_ta$ z&|)ZrB7$!_V0|OhaJQP`E;d6n)j5r(3>=n^%P_f|e)i zOlH^l;*DC94U;=5dN?N)=opS@Mwr&g!jvgY>!gt7Ad`0eRCzE9={1lmbdrc{oVdFU ziyi{pOupI(z=Jwd1pL5+h~ZzFu2*iJoz4bF(=K?<+BPkMB4U5ui)h-4O4cG z|J^_o^Yb%=AZQ(d4-|=?ICdSuVhY0ILR*?TjF|_54+24?FAQy&@bh)}X^i&jWQr2RZiRXV zoPf7WoP-fF=Xo*U{GxAs1MCs?$a>>hkF44L__WEr?)$&t5YnwK}D?hI4 zX|e{Y_%E!Bda6D~k9P4}!1Tk~v6U70+&U33Zzo+YwFB1rV53$B{3M$wa*UH^Ozd1~ z47~o+7r6VUe0ksmDtwZQgAT)5ss`Uet*_b!%|Zos81yr8xT7!N%O>en$IlNS^ogbi zrjZ8a+XxdQeN?pKFI!{4AO?cmgKbxLDDjXh+S zE`vVAN;%043p52@k$RJi2%nH^G9}bY-XrY$N7oyjl{VG0IZ>UKbA;9yR={x7XBT)( zir|HLk{3$EngwDfVTQypwd<$MY^S;B7I6d)L`4dweOpB{Yb22EU_~O*She3%(~;(apR)S^+Ub0U_NZwF8SS zL=))hFE;#EBPP zIMLSL-qzO9(WadG`cqGR{p8b6pL}%vQs2_`;sg4nXj{miBzP$2lWoJ8Vx(QGo6P_Q zU}&1M86$@Eki$Vi2#!2QZids8WJ-j0D=Ibo~k)Bh-`_^5pcUfa$6)Uu=$zYA8SJ+KRR+2;@YlVs+ zp-IR!Oss_z1PVorfg818wF||Uzdf6P`OhKn2axj)g z4eU9cHk;Gy^yFsS(rl?kP(hPyV16Q4Fr6X>r^Xq-Y^?KyvV=bN!~m)M?MCh3joQ~I zgENRb>9fh5&RkDQqNQ(AZc~U`auC8R?&LQy{?<69_BI`6;omVL7^JGQh+< z{~b8sE07gA;N73`rKBXmw_aF~l?hpeKxZ7g3C$H-c6}LSR!}yRN+V_s4l{&0CDv>% z2pyafqN+||dk_rE$RjyumoG6jH9t2sCp9~{FxhK{_QOOEC{9|2W>QFzMqDdB1x!>% zwiQFw_}+;tSJiL7xc7w`>U4HZ3ej{>|5(6BoqI-#RZog0x7ox|lVv7T=!n}~_FGHp~SpmC6 zn#pa5h6aUVuR(jZ4__=$lg(D8y-U7!V@yP#gGI=HQp|G1kTM8igT(3lKp6~Su?S-g zMp{*sn6QWr_&S1G1A-sj`S9!EFS)>NgVDH97y&2_IURmicN(H$XlapL6cG>Ez~61# zb=|GEUN^d!|2pvBufNW70v_&Lu)s%YLHoBKfBf4W3x!9PzaVu9(0Xvqi4Y#d%cP4H z6P6rc&;6u8V4*1%H-?EfJuN8#+2S0y2Oqt} zi@!@0|J(szyl>mw*RWprc|pF#`B72di<;D6&;V zjaXPBPlPg9&TAvvuS*LDwepvI1_Y;#_B)OCuTuPdK>&mnw^wL!3E*K^DUWq$Ve<-j9DGB%2oS>BFt~i9@J=}(uo6dUlT(4kv&iPb z7fb@2T;4r(4hVHf>AYYpjg@Pb;35z4G&P_(f=66?K) zSehweHR4ct@?_A8@S4DL6Tl^m!e$a2%RKgFpN&Q{kDCFnG#r+qNwYpY#qd&yl8A=L zgvU+VP)blhzkWLT5!w}%HRzC!r63s4;y^-@kgUR$J~<(&h6{2sdfM7tT6=IJQJr;@ z6^65NSWce;FD+%a1r4TPDk3@@;6z1-V}5l@v4Whl26bho{?>?dY zyrQzA+Sj(`vX%VN!w)|5i^kbyGv~Li9a{bLjmoLZ2II86lB|^MtOQ5l+9g-*-hOkv zH#sLWGa@1FE=|A0iZDohjY4EvtpXxzxCXx6AQ@mqAvn}I;&wn4#l&Rm3i`b zcFe7)cy=sJ74m1bw9n4JrFhR^1LVK*NWD9E8GVjkMd2%;w~ z<{_Lqk4-005%U&{(hWnGf{1y{Wm*Ee;p~tR^Ax3F6b93~<^oF7;848%gwlwdiU^vY zym1ktfszzv15;73;b|155Df~r$5D=+WQ5!oWqVU(!2QIrfgjXZKE*`bpNDhYf1^@b zx1`G3>a;I)Qv`n8&3B!XlU%V|acE`b5drz;k-gEZWy0J5U5nU!F*j&gC1L|2WAo2H zHzqH3&bcwM2*vdOQ*$FGsDC2k`ev7m}DNz>$g>GGv=UQ=CFSy9f*cqvKHRGYZ~c!6gYy5l#XwVIh5 zF+SML#e-{_pz}a(J16G>*%_)TL%{_%Gxh>RZ_kc$6Ql?GV=(4Q(JjG${}|CXa9P4oj*Qt+R76@SR?JKl zE+dt8NA4rbh|w^5E+StskI8xr^Ey896T7qw#7-dUvU{=(KN7QE2R~vmcKJvi6Tg;_ zksGv)i89edaB?dc zrnFQCj(o7hxU!g7v`02+SYu{}8?lAleP8Y&$-YOya>iX0&U%+fwi^bF*LV<65E*)S2X zpe6iB7$76E;gMKau+lQdhb-WkWWSBHe^0;=8AUVFQH09EPNA4g~rL@61!{2oIR03gc+NUh1(Pd8%&^&VDF{< z8h#dEQP_Gtq3>wbOU7!Vjd1taY1UVYS?{5EB?s&_;H@}aAqL~ZD{lly0Skp5*sZb<1!RssPhsZ7 zDe_VOW^h;dq`1J7pO+nZjsnqUjJGhjK%Ing_|F#7SqTfPlGEwj2plG}K8!~7xrJ3RXDLja z-l6d%3vVSw2?Cp#+`%|7a>J5m1oJy=*{#5u+9U0`WT=$Pr+Css2PO{ox$L-CL_j|= zKx`7|Iby_^f(Qqxkx(>%kn#voA z*7KJ{WCVPr>K{-~B17D;9VRhStSRUWq6ItfBh-iV5CMH5MWBWyt7A3|@lqqZ9C>hVVoDJ)JbDltimaAxPl! z;xrrbp_p|X`GX@pjDTk&tTf$%z-vNRoIS?7Nx|mC>to^La}a5|ITko0>~sQf5qQ&Z zx;>&ZL!)Of{;0uo5Sch!B3O;seoE|+HBdCEJ7&m;^9Lr37&hC0Zfu~=c!rq1csfxi z9500711IiGNlp?0*Y1!f%r% z4hJ@9oFZ8e18c>ZG(`2FdD5qhT17;h8>(guGg;rJM?WkfAq~a1DBBI zBx(|roj{Zg7(q^CRW{<}XgY>sjVUt0lwd+QjzQTGp+H7E4tZYG(NJSjYf1{X8NiuU z;Z`XcXs&M-QF2n8RZy}HjH`0FDAoz-wRjq{f-3HLTc zwxM1Vm6Cf;#y&d;0!O?pNUs*vEdBBn*e#Stga-;gtvD(yf=DAHpu-^0QA_O+%?AlH z*nGJ66nh1IF^qE=%Pdh&y+^|)6CoT#2~EU^X;y<{>JVouEf1ku=pRv-=Ft6^@{FJq z=pD456>%?+z0kS^Rt3ETH+YlYLE)u^6bZ-Ov#5)oBq5)ztmgJe%0Z3!q8y%VxwlF1?-lbpP_GN;r*lxC2-e) z!V!uM$0$=R2p89M7(aA9zXP^7gr*bw$mL`k%tHR^V18_sfZ+jl`-$b?zzG+_u2|6m zY#q}q0*gg@aWP}X)y35nW#~BokImo$yTNbL zw@lcr!*)uOjZKk=(HFq_wyOdk8I-e0ZBN?GSk;BhDqF=LC!5R3n>W z#aT7ytOBm*a1Fk>vM}P*FT6C+Urw*W&CrYYqnM z^Vh@d_Q-0AP>oMkgIV;?*5g|+p$h1>Haa;W1|*9m*r7;3$UK-cdv_xK|Etr=) zD|u$!44Q34$ptB%#L#L$m?F~Y%%+)ji0QbHIjHEy?j|L{p6#K-7dp>3{?FjJ#%7NN zL3pm@Z(SH2=vehM@=QqwiKIZ3aq#g(Y}!^q3sFyOD#d`%Je?Uw+6Bydm}dxQHe0X{ zB!Syi-97+41B78VTR{$1YkmiUNmOk!Nntt)OU~5=6N{^M8xBN(6@7|ous1ebi*I3U z1+c$gNDUap!m28YU#x1ZYOI@Kt~6JaVAAH}#Hv)p2TIK-F}x$?0>_YlL2fGEe7=!u z5hnWS3>nx+kf)N~MZeyaX3XAl%--~*;Oq^43(wxh;OsLe$=REr#$y7rjSzDTgGHpC zIOW`(A1oc3bLXoia>8U!GULt*Mq~vTs*37rxyY%WSv|A9)>37uEG;hdy7IF#(^3-S zBQ!}zglX#nhwO8(do4fTaJAD}pHszG(lkTfe$r(^^9(!Pa2f&>O-z-T8i3NtD!{G< zq2FR)F1Rqwvj&7IG|X?9KW7$x(XkHmtkhGGT1fLOQqPas40|D3za7@!N}Q?dOf5?~ zkNTgRBTw1Qt;|gJOuZ5?q?Ve6%^>LrIB4T;WB$#B)GBrbrB?7;SZd8N?8Rxy0QPk81l^i20DA=X zOC&;z%7`NHMSXcpkyX-UUphsV zfCqqK|0dS|F#tyZ8C9XLUDgGT5d+_aS4M2Qs--12mv%X|bhdOZZOd)WZCWsI&a8&| z8k`$c;Bn+Qz_MxQQ;{Pnh1|=N?A8eRRxXsZ4((rdQn_ux{F>_d^Q)&#Uy0kay^tyO zb=B4NbA#tW-#;C8ACls)z)#bJUy2QKk%geI@`50J1;2&qYe8@Ttx1xe$PS9-2<^Tg z^;e^PE)bUfi*uTC7R{eK zduDx|SccMB*pARbbaJ=U1qyDZV(J})JI}*Zl;gp3vqJ}HPm8I@5m#S=eXa~~kh9s_ zzJwC4Tf7kQm@tSZk->NMA+;AHtBhd#S5iE76Pwro{1c?6C0G@*8O1@ItKHEyqlSpG za477XW?^4rNQ`3@JpF=Ie3&=tkJGEy|GR=*CC`A8-b+xPJJnGsH(QI?1e)IzqD-2?%`c9-<7)D)nvXq z(7I&XMYg9ZiUT)FLtfx7p4oHCyxrTEE^WJL$?}}A9j~Tle^*)cHw5inr=EEwx2P2t)W5)Lw zyL}J`#qbjd!t`g8Ul9Eo-0hPC-Iw;M0TC3Tl}|xH5yooQgx7H0$~>5kFoPo!Juxvc zD>1Ve`+DFGL?pW0M&k8gHyh3fa2k7W>6l$U|B}l_M=u+i<9O)BvWkj|_3M?KBZqE2 zdQpe+%7^P0*1BsKY;Ayri4~w9Bj5~9I)|NtKfTb{W%xYw^>Cy;z@64P>{0n-@Vt|y zc^qDM_#Aex2WC9%_70!H&VT;k3tP5q-TJKu4<5Piz9UM`@Xm`bpFMKvu92gM4jm=` zoP?8RPByzyLTVhQZk)Z2NQuz$K6v`Nz_D)ZBFlz9KpfVNH3R7z+BN4b5{zrlHf3QK zodZ$WK?k~s{DC)Co<=^gL+{Y(16!gyB`7SqW8r@3*wOg;s0j61*yibk2n+2{2p_kO zUXrCLc<4I17;wo*E4Jqu^8XGR=$aPG6#4Z@<$)Bns_>r)mNvELwgiiky=jdBe`^fC5l zhQr3EDhkdw92#CX>WIz6cxwq zI~FkqE*mi?hr=*k9hM^pFePFs2jd%x->#)&-M9tki$s$Sa-55DVhV*w=N!eRq@0*w z>}ZToAU17~F-*JdF_a?=xzUsp?yU-b`+qtA$$q0{X)urCmpgF6(qt#APckX^-3`&b zg1xh9vOaAxWXOI)hS;%t4`V51i2Op)G{%n6TrgoLyrU+Q*b55E1bmxu5~HzO)E)ai zbRKSacW7#2BEl9RM^cj^y%M0~iUU7_$`Nf6t#dHJq2=#=@KcUCLnKWunf+qmmi3S( z6&)8Hz4_3Q`5&Gw=Qj^DY+V3(B2Ky^E=^LAJi$1RgU)LNt5x8OPeBBQaPm8Gh6@Qk zP!*2T!7rK_hh606<`(4^7L*j0Qdj{tS>D{YD~-%D}RXJ3sS_%|-ywf)Q_y$eNbDG)yL!pelpS#*q`o6$IspXWG8Kw#-?dHT9so< zZ1~t?Ob2<|X5^Gm?wS8kXi~Jb1*e5_@5Zw)7;~e01R%`MO`dY;7g-53XU+q#G&76pdmo4CpPp`Ob7ZB+DwQ2B*uDT`h~Dk z&l1}Vv+}d@aZ?%8E}yKwLODBUpB><773`O?&y6_O z5P>`+h7h2rc5Go0lkK+Vj-HQZZ zie^FXnZ?D)$;B1L<)tObMf9^UI0_qnc46@jhx|wQ*&`Ru5!5o#r(QA{I-~sP6VV!` zBpv#^n>`rPe2JhMY|wl`OjvcAa8evXgb*KOvZ(!_D-acaZwseH&>1zrZRD>jHAa<# zh7XteGzxb4+&MYq!On5#VE3vy+bp#G;2GG-4tWN4@W+RyqOG7JylOIhNOgE3A|mEg z5EJO6(Bvd0NGX#$6QfaqJmCCKx4Bgcu?-S5Ty! zw+y2FNTP)032{Y-i=zF4=S5A`%UkKdsHZ3ECwbG)(NFT7)42ZRJhGFtqse8bbZbv7 zK&LJ#u_{nRb}I3Eu7=E>qA>^#*Lewoe$0c+;8PF;eANk)A&UId6A?vvWF^)RIXFe9 zjIHu5cOrro(ceM+2W(m~Gx|NqFcr}DQwUj@1z;`hhDdO0orQ%sIKQm0w73Wrc?&!x z*x(in;|v2DyOYOQnZ_zc9qnQ_5BYOlc@uS{)^2B<+}1N|PDN>0U!ns(8Q-tGfvEaf zz6Ll+uuYO8l7abs`0ZLfPaKHCaZHY}7!r}V$el{tHdDOx^R?o*3HseaoZ2JyjUwU{ zYvPGdZ#>|!-IA+(*{?n|t| z?|-NTI2Hy!HX)4uq>5k_qiXaMJ`Bc7ar#tHBZuz3krz=g*iizkU9amPIq>&6qp0fgH6Bbu(!df-TSBBRD(*>t~9r6=&k$rzUCp zA%3Jb;uCAqM*L(WS?4JbP#kwCee?2*S2;F+ey)4}=FWvV-e)&lJa6l~z^euG3u+27 za^{p5SKWDaqkBf~BY`{0iVF%#OAGpP^PKlO^Yha0RT`U;oO9i4*XJfUE?qWzb(v>w zLGi*QM@>%gLVM<-f=gHE`E~a1dR%Vt7wF7PPe%YpI*$3qSwjNDuh8kzYz5fUe@g8x zA(h+lOL&^ChR5R+Gprx+z!H9d^&?>({&09#tZW}cV5`YCQHMnQo?UuTg$^0NF_Fi| zV>II8L;!gv{h%c5^F}4m2hF4p8kOOvxAi!^$IweHmUMUss5&eXBWsJt7`axiY-w4! zapff!t!-J+vb=ps^P+_d=Fe@Yn?)L85>`Z5P6aoG8XBVWLdFjE|8owWYW#w>2-Ea5 zDBVZSJDTM)95+lhoTPU)c`1I=?YRHELt9#Do@{8tBda5}w}q`{Z^$7_#+*Q`rcE#B zsbs7pJ>*D03&=iK|g+AKSPnSf|ud1(Q?~M?=W!{@-XPz9M%M1dcN7f#pc8fSj{O`DFd6 z7#Qg48rVFrX?Sf{e;42kvCg)Zj%YWsRTtt=VNnx~lMbZj_@CmytV?8cy7Pi-otqEq ztVsNH)dg4j!n{}qJXc)VsC+G6)MDg$h8o6Aer6G_RpPqKK?`&a3n@_tYeiaI1cgKh zNdmhF@ordPiv)Y73e(hjKyrXwnH}D&c z-ZE^&d>q&s8ZhemA6%FJ{ZZz8muteIqZGf}B@uba`4ntLP6ZK;s62sq+N2bx*TeQn zK2SQJVDf{k;}og!6pc$P;w0!soK#hxY`Vi-s$a_V5UO=Nh6@HJu11DF9g6~?Nxd~{T5LA{W^ zrKHtH7!m27^via{5hDzHg+~Zyh>Dlx z=!Kn7;qx!k2oS+$gmqBO9b67X08HlS%*i|)947D-*Z_nsFM6iaRf)8xB7Tf&Bc<1X zpseIh%5sXlvI}|_b^U&5n2JEGP4#Y8MkW3svv-(Y4$i3nLH#mF)TAI=HNiPGAT{T1 zOsk0M6`qpZHBW&>%x!aj!iZ#xHnb?~0J#^b1Jpk&ZczJhKv*90D6TrY z57@6lcFtWzXEk|aPofWG<%^>SeEyFZ(v`y#6D=+wYydQ>q?9*N)168Aum;1lY2ey7q9RmrJ}d+Df^CSsgs z!ViSy!?qH2atOm%WfNy{F@xDvxm6jfV^v~WtJNNo5+a%J`w|5D8)+kyg zr{`sJKLL%9&Ns+O&o?RSrLyi$k}LR5+LrOeVXVh@SXGiUl3NLm<(#_-;jidQ9$S$} z%yQ_@a}Uee#jG^4bz)XZmHv3#N+{nUqyk7zvcZ65M6kCW=UEDeEgn*;CpR6H{F9J$ zEr!^hndJf%Bk=5<_nFKhuSF+HV{Q_QJoiLF*dYtIQG}`n1$QWBdQ66C~mBG zF07!@NYsUBQxhfSe}{E}Zd)8mm-t_^InZ+I=0flO-}xq$quD4^1w|oK*?`o15%qwl z@F~oek8(ed5lk%xrd5Noky0ee76|%CCycocQLaEzgm~Ijmroulhu5pl+jaG^I>23-FKe~OZ7(Ojd#?XV{z?K)Ph~lB zK*=^8$~`$N`A~)@RPxDs42688Nz9a#tXigd%Ir?Yb#bbMp-)!y$!c<8RiCs0sNT)g zI7UU$m$bpmJtnh`qLKhgG_`^X*SK z-#lnew)T6$5ybg{*g?uo3^E62K+FWO_GCmn5x%IVP6bue2yh~Ds(7c)UjOXOlH*jfd`g}OpmnW9$dp`7P%x| zCci~6I;@okQdfzEwkZ@zklj(8%=OhjyF)B5I;z$s5pw|}Nm71Mn^UuByCDRM;pgDE zVghiq_0LY+Cx(98>C=!l{|w%C811Qag0A4OL`)DSSZrfKDJ~}`wc2Gu>N-)w$IcE< z&2HH;%jWj?BtH3i>)tkYd*c5?Q?Sn|x-Y`w=~K2pQCY?*f3x(Nmykq)au+6KVFhc@ zllcHd=!uuZ-02p=vk~7yo`oo@ekn`)`jqMb3Dp6$v~PxRnv$(yRui_hsBY`dSzl$K zLB2d(P`NL5U2WB#4(^?vOi9~GsoS=xu60*ktL!@@Z!b98`f~uMf{n_qJ0-^_&oHqU zwcl>g09YI_k|K_^O8aI1iwR%CH^C$$5HAi*Q-jv!v$3by0|w(53r5YAx9y& z5?)B_(8J1p**O;j20`snW%_vtU-Tr-Lour|M~)}%PrpF0Vx11tD=ai>;%dMKM9PR# zgIi?O(bC+CGgI|Fr>g;?-@@tqk&M0zZ*$K6Zw4(?Av*@?0guEj$X>zSNMNC5R}Dgg z0mgw6stS`VdJ^(;LhznT2jd~=tpu=T}i-F8ocpV+gXjwBqsva!VN^UpBi^OOcx2yv3gN*9F%&hN>f$f4kv#v4Fr;pDD+8ZtOE*NvX&DJ zBMVkibMao6J|ZrCy9C9Dl8MswGc5U1E0)$AbH zO^Rkc!1JFt*MQ;<8n>wxOSLdMhQj&tkyXP?g0HAX4X_T+d>arr~B`(ZS)hY$<`{^eL*!SS+y?cS?^WJrefPA;#c`6;fC(wozD_5?d zh8wu0rtzd|SqYQ41`|_jS(V$%N{X{;S!qc{WHxvB*a%K9VTOW(Uz*+qkzJ`! zB82iHyFw(}u8=AaguW5t3sg)g9l)`1z*CYxdB-Bxp(uD|rNdDfsSE>hT;V_|Gguv{ zmXIWYtc)2s#kim$<}L-;X~bpnTzIB>MuG?M#3 zToLX;fZ5byS6-*5wB%xnT_qPmgA4bicU5M6SkT8zEQu4VfnJL8R!Iv%s>W5uA|z{E zp=eN<`{HX{CA&$8kCyZ zHcw1Yu!kvZhD>>~;1dR-h6$;4 zt`LHMGVL0$(~L_*ovTVzxhgJSvd$G&!5tH2u7IA7nD}*{IK3_2JicMtC7V}7X{DNaxzBaNCCe&T z7z)8yz_u%l>qV8T)|!^a`gdF9D!Ip&I@-6T6K;-^JqI0E044uVLPGNc0sC``+{rW8 zpzD#8MrbWEI6%ihQY&a*K<5-#tU7X~<&%a*Nye}Xr&0l z475b@a_Os6A3%<}1OsHxWX3gVGbsXR z3jDHCu7U!BF!5-VB85gZaONn5Uv`NRl#1{P?j0MRtAA@bg<_sT0Hz4U#6E!4f_;rw z;Dn<}*<^K;wTvjfj87thMy$UuQ$e|RV*iwgrN`GY_Z~Qj_AROYx$ax+7Siw_lH=Kh z(CVq)0&N3P8cq-gz-Au|##hE>A1-igY~>aC?9=hyKXBVfQ#0lr4sGsrE3P4>?ib_aP4f1NgT68fX*!^ilY>i8)G@(-oe0@-npc~mZ-4=51DfZz_z zYLRAm!g%4jRVN}u7p9vxvJ6nki)k`0qSg4tHAs`<7PgQQ6LKEgijZYdSVE-#IEi^r zCx-`7PH5=X)7PfWj4**j(x*n)K2(}6VLsw*3NJ~E_EZZ+2m(i82aUiptp4g8O4C2> zgvBqUJrR-@il%5|P$grzF|t|}b9gbWl0D@jTSee>hKC|YFUWdL6OP>ps}p8h-E%5K z&LBRWTDl@_>wQqvuSnm2Z~v4`DBvH}h`Z|p_p4D3NZ!cB-Mu`NRb%9hEcO)!;o2Y;$iirZR3Eo`-jX6~U?UQGoDtCC+wso)G zz4{}^R^PbsDHf~R+P-Yfu7NYxa_`o$3aiEMw3#iQ!IcNLN4E6p{hmm%!(#RJFW<8T zE3S@=_)DX5N{$U|M+amCqNYS~vNWj@9K(bRvI63mu2-i8eqY=z5Gw_zXf!lX`q46X zftFu7Gw}PuQ}CmSZ}EplmYfD*OSsTfq-MehThm99@iK&RiDm_TBZZ`>pag~}4W)Sq z!4i>3RMr`q1*H>>=L!|S;B8vKZ?maMRvdtT(kwX!g^D{P8pjBXEBuuOR^ZmB@tW3TYBN(mK3&Vl>Ge#ojvhW$X=hgy$}!U@&48Kuc+ zl9y$)AZ#3FOe-bkyl@kMoh8F~s36)qyIryjWtq|wpc-SL@<1xkJY$yOB9>b*yTI5| z`|{*v2tIENtajxORa14b{OP-v*rmJ23~ABmHrudq*Y?a!n@y>p!XzFGz)OhznUU$T z*q3mer6o1Uq|~gtC^Y>-w=GJk3q#X0=1>BivnT8ZiI*B*np8z-(*;NsHNvXl6(DYn z8e!Fn;#YnnxbXe#XZUS6*OFEvOs&?HWaF7d!qS*IDUw;0KbI^Lw)m|?>#d?gsnf$q zB}B7}eWf))aRF`e9zc`SqvXOj(OHNJVWL17>VvTwI$xZ!LKs>jlo+x_yoyr|xFnPk zrZ^BCgkv3-xx!@#1*l7bH&J*PAx+?zat3`tU%d>TpfbB^*>Yg=)Nldq4Z%>T3;DesZzx<{9iH8A!ytck$NtvM4ukXH@(Q92y*YN^ufEYEiU1@~v^1-5%nvkkipoyJDjl4>j6d9RBDG z0S8m@9qG{>bHC7HJDB2`f0KO-UP2L90-u*~J>#@wKsr)nHI9BoKY>(ns(S>c6+F?U zz-Q+S1d!t%5MY!&qo@m)QK&BT;25x$A3IW7-Br5Yd&%U`miiBJ+o|sbeb?k!;u~1r zsfQk-v1-q*Ae^FAM(4myk39aUM+V;^ z1_1aX&jodbYEq|lN5otwyR>VU)~VI2)oyJ)U{^afa$u|I8K<7{HDXr0${lfw7gh?I z8ac>vsCpR)Q05bs zTER%plc+YWSw84&KgzO=qREX=zJWkHvDvd4BMq$@1`9ozH;u zm0-HW#vT;~vLQmju`XXjwlb2jm!fo6w*OaQMQH&wXAfCAT2dqEZT=@ykp5`eezXz6`%KnKG zQ6l9^bMoG@d4H+X;QQ0|0n4)#UPHmGbnFiF(wK=Ov_{!M33-+c35(h#hs;Pbznc0Bv zTEIC1!c%!7V@JYOnPWpj{v#f8xv)5*)|7IsTnCiO5bJ;$Oszu|B(bCyGi?=;`!OC^ zc*TNkh}~teSSl^>r(5}d zGGcbU@wB3`!v7w$^ieUoHCS7Q%gEYxDwW|btB%N;x2PrNS_2NWB3oZd` zDHXU#w?4&R3BD>p;yzcd(Zf61nlWmDR9`q`9GpFf^`^5bpj;ofz<6vxcLdgrEObCa z7{EewqRg$zA4Hj3$S+t|wJ@Ux_%+-I$BBBKz>}v~MEbQ78yQdt7l|~XK~WVqE6H~> z7nkHVfZm&1JJyw#7UZXqX{cHjbF6Nz99VF8sI_k@@_)Y;WhJWp9n9{Zdh9RkU*;+TwWrmhOdaeQi+I6mlx4CSW!BQsX})0PU?%~+ ze;9PSuo`7D;v!j%G7t%v0%Tx@ox;RF{JZ`71OM{kldo^nZ~Nubk3Pyu|L>i5&I#HF zo|N`bkrImg5toZ26m}6cjDzHrDXa+4qfUq4N3{hh%!{y~F|DTS@#`+_Ya1CZ{P8OX zOcT$ZpS;R(-8xYIC)p&0nJS8CUwS;@^#%?Ch*bnL45fJ>Nr3{BN)I4%qIfhi9H**$ z3!fuZwM~Dxa2GUYc0kbm+~$mKr1gWSejwf_s2*1DeDp^rv3RM-BFZ|9{-lQ%QSnvk z5E<{ulTE;9AuUsIQF@n{YWqBq)hj70Ph@lp)UM8sq;~8^CwzXe5<&XU#NUzeP8{k& z-9g3{k~668Dg~mYC0a_av7Ozu>pwF1(aW>CB`JL@qg!dSMSg13d`_)ex&)iGXrK^3 zRk>8t0cEe%RYd8RW<4H+p0!jAPgFPp<6s-eS@9CHKw>I7LXprAFh#}7D9TSd161*{ z>GyMUzxpxzvcB1o}5s>oR>7)M}S_x@v+Ial#9#T~ZnM)RSNMXuI}M&{JZC zHuE~N^g?2#j6P-1KF&z_1zLpAKJXinsG3E|=P^Z(!rRBpG$)!?c$G&OpU)j+0)mBg3Xn zS0@8S(!S77(fQmag3olj!6$KvX5o|(XnB-@7$B%*aaTgg!Amr{{8qQCwDQ)&=HmV! z|INzoAAGa8tits)ThUThi2)-m6n_&Idei|>TH=iY{DWOA%I|XJB={uckx>%niQjX! z!Duv^jb?{UZ^rrSBL*DO!ITID>>uXB?B`eLuiJMR(4h5E*g0i#?{5o!y4Hc zk5-oDQ#2TZ=mCrol*VcLiz%b{B@G`6+knF*qy+8mh}~^6BSt`Ed@;e-l)UtSv^!&mpGe$eQVc_PhZK;ufKb0?XjlfN6*+c z#zxj{-@a}nw!wbp(c-3KYp3ppi-+|3Fq-L13fThhGOmYqu8!&!iZ`cm}Z(CWd98~@sAz}7ls>Kq$7YQ2QWQ; zQ=~KMGx5y@k2%M6!P2v(;r>Wbe?_rH|&$TwU>|EPZU*FjNW%iMO;OC>eSN7~)+wLv?Y)i-1y1KR9 z%VDxRDM;m#!Ajf{KDSTYQ* zL8*5HeF0x_0~wCgjYQ66VbKKDL@8bf5oJkFGx`o5LY(7~_w{x)boc82@vc2H@w0~x zMXJ_yS4Em@>svnEche|8-!|IbzSXXG?C8DZiuRpdt}Ww%&e4&nx*Meh&7zJZ8P5cvd_oxp|hayphzrd^Txa!1@E#D-!g z*=BL8DJqG8e6f%`#UJd0TaLCqR~5I6PEGx<#N(ZZtDoh!Kkz`?Jq_1K5|5s_>#h%N z{1vK%C=oHgXBD6FBeM9T)QyV1CHOxqc_@Ml#1_2LT+vUH>@QLPptIP9Q|Pg*^Id?8 zadyCS4zu3{uO_GNMK*o0tr8>w>G3fPpDXBhgaDR?^lzdiRMQipc0n|mh0u>li#UC* zzvk7fs=fS{)i-ZD^YOD?(P%8z7LM5YgB9$T+<1t)i*LGY)q8u7zqdBl-PqJ!R-!9m zw|q|J7S~}-DPrKda}WUq@|UJ8jJXN5@=z$?Py;!W=bRX(iXkEx0#D1h$o~1mUv6n??x+|E4qg%e_^FSa z`N#X3qHWDB(P%S2|Gq0sk!WA6r@Xv%vj58Ck9_I7XA>t;oh;hg+>FR3p!XE)zq4R> z$o@iFxd@gQS_z0i@FkcQbc8-edjCMXBjzLBXa3}`uGyb>f)B9g6N%HyZfB-zzOakV z3XRXw%tc8Da>9N>jbavX>>EI1pe&%d7{i2V$azIXSpXywt!Zm&NX-Q{GzlX#at$pa zYE;BJ)bo%8CO{k0QcueF>?6n4)YZje58i(J1D&zDy4CL+u5XRj)}ka;q@%5_t|L~% z&$sM~cdV?`SFP#ZbLh~X?lo2V%9S1QT`i|Vk#Hy!j)W4g*GD4t^aGlp=sG$N)9V&~Xu*kHj zV7~?t+>}WdElHXnBFLhPQ%RBlO;obw>?-~x<#~O8m?MWV9ZPW)(@=RO!tvt|tN;M9&Qlk_g<#|SuR_^mG zushrpHP(JNaR(|e$D6|y-U|OUY(MnNfv!MTUA3Ymud)*7V3+60!dQL8$9uTDCX$D(O^8Os2#ab zD+iUl%vR`Btg+k4LT7KYw>CD^M!axG>uq|(QIIJ`q+O#qw}Fp7Zd3*gn0L}mV`D9`5AlEIWC0Q zQ3$aEvs;LzHrq^4OlXA<0zHjnpDZu`p!iV7c3X=eT(gZ>XbNUqnb|@SLw+Z*N;%uH zCfl*@R;)TJwL;2kJlTp_UuZs_*@|M;S+@MLRLI!c~XcZ!NAfcJ=n& z_)7qgZ0xP6 zX#cNHZwY)MM@!gN=KN8d+*!>bm9Ke%TFb{il%%#^YfZ5s6O#=vJ>oT&XZFs9-d$vy z1lAqN-KK+?3(Ye*TQ1D*Z6OAa-WE`7M{?=q z%X+%Ikdn5wzNx;cQ55b}4;Cj>5hAH~aJV?ZYk&ur%1b7}wJdS$gak3N=d);#e`Cqh zXf8(Q2)i|#G7aKfc~RvvbxNnQim@jGCA`2we1`US7jYIdIE#&$?O1nn{-GkVpDlC( zSRAatYAKio6Tr!aB;RZjb~#NkqBC##689fW-Y*VDsRw4XK_Ljl8y4?FS{p)*Ourqg z*A|P_*ULj7wkn1?x%Hj(9j(pwI(u!UHwSZYf;r?q26Bnm8DeFIh-nb(f+tiL5IOn=kHm$vd3SCx54V}_~sHf zY|Qw1wA@`<1}i#pYEiV2?k6gDS*vV=MEx7dUHaO2k(I!u#O~K<+rxp)>tqEAD>y{k z-wJM`Sc@6X#G+{_YuUKT1pNc97)tU1Cq!W(qDJh<|59Ow2)0pciTD86&v6IKrv~%i zU4uK~Eu*9B)-^ZNMjM?Po!qr!-L`dGH*IKM+q`CZ&w|b75@rldijxxm5>lMlXi1?@ z%Zs4uNQ*CEyV!(#bBTU_xd;D#fhA4blkNQrB}8>ke(s_d8Y@jwpp*(iO0P1kjInO>J=8`Q?2#9 zJY@nN0@}+)qrikBV4|RaO`0J(sOApZ)%{B~BQ`U&C1N|4YKpoJQ4dLimul~#nrcN; z2w$Ll!+Hw}6Bv%$8Mu>GXIW&R7wBAkZAN3*DMkQyrZ2M5^eGdkNc;Nr@pw2)0?PWa z_1m|M#E0WUs|Uip;g!)=eMlb)1}a4zQ+pA-+a#1yJz?TRI@3zNxEUwrbLrnXaT^5% zKWWgp>pg2n8%JYP(^rLjzEIFtUY5@eIaxRR*#)RuFf6{kmls%vRz>>4>-)+CODig5 z1^;&N3-5%gyFt~T7iUnBQj6H^KE|Zrk&i;(3Z!1t$OA>wUwZW~m71dvD@}O-(OH=h z#gw=)Z(1>-tbo~MnI;4M1i2JIfMzqBGJx%+QE+UjTg6SuOp}?nqYfGr)RRlyp8HNx zM>;#}>TE~_+1b|_U*1#KQPv=a#l8=YcrVI!h+ZC_1YBta#~tFCBXc4u1Tj8E8f~DnVP> zGk{G^$cV*f0Kh1n2@M~Nz0v)t=l+vDoml;!Pd$a5ixzpS+G0Lda#g%H9peMH6Wl_E ziF}g<=}VDA-D;Ixw-#BEej#W6ZF&~{XHW-1&-@^M62s4JkdIa$j}Fk7=BF?wxvIkJ zj8Smio@BahH(PW`ol$51b3c!r=w@S2J(Vz1v(#eo{9F74I4I??-mAB=?)YgTDj+Scrd&5>bSotP~rJ}WwkF5tn6c7V|?{Z8}~j3 zr`p7d$cnnMlJY`VTPe~~HF+y)x54S*D2PwC&kaZ#YMS55dwCJ|MOc}Zc4$C7VBImm z76i_VlHf@^k>D2kDTwlA>{}v4iZET3BVZ=e&dO5@%q?c^TVGXXnvU8eb1RQ_uz*(SU0;{`K4&BJnj~i z2r>>N2UHy-01)?oLA#fFAvmSjqZVaXGEX$|N)Lg4MED5i71%_|5DlO<=c3S<%n+UH z5{mi(Q_V^OEf}>7s$B8Xdx)h9cFl;d{x{A$lQXL0554ab$@5N`zm>f?{|wQKus$t$ z=8-AGMUJdDkFQ)wv!Tof*jwUmlM)m6<9JGz0DzMeh9t?2xo$&_h`qu~K_!*v^_PXXb;A-l`xw98D@Xffbw zgIW$g1{WN8(>n;L1jiHhx|3TBQ&R>DAKKNutu5s5*w(#^pQ!!bw0Zi4y1hM}fAM-Y zRe0a%?Ac4>slj-rGslCj0BS|ivH1T+5;+k40s)uujqfEFIHF_$N~6+hE!6L{i}3|c zdlNjd$-6KVLa*@MbbE30TdA&hb})MI*b4Yz>3lt?eIq;7+3WCwhn)& z4PzKejf=n9)A@$CVw1=F7Yw8B1q|(bwR(})N`B1BLdE>YMhjbZ|Clnpz+TH+!mqY&E!Oh=RnjIx@cp=H-^-@SYL_58NK zAHMW&7m+tk{UF^+^y^Fo6-W5@vWns4W!aa%<& zUfGrReEQS(+`+CDzpnei_rL!G{Gi1ZXmJv!2esH3ud|r&G*Ez>B$;uM{DAnoZGS;PDgdr^4|Jf%Pxe4+r*51~Ym zrPztUKWGu6FoDSBAoK`?Y~!&rY2T4}VMgV8s1t-zSJesi*J&!)a0k6Sfr1UsP|*fF zwU!OD=W&YDQ@1<;%QH4G%$lTux#)Q^7XqIE=Z511!+AqS}jaJfIFuJuOc;=DEsFfD<@^#Tm zU}2>4NFP&ncfno7xP^kK4*DKiMOk+PeV89oUK4ba(maW1-i_udXoScEj}Oj&1L(mw zkr5MEdM}lsaN3a8gM+BG9AQEj22~T@3_<`hiP3RRU^A}YP+Dw9I%=Xr_-+F20l&oa zM!`t2Xp&izf#Q$1erxaEg9o2Fd0F03)3q}**P4#z@u|xX?nGM5@#!O$JMOUFapMiA ztseldkb422r>qokQiO?^AwJ{jLw?}j*4m(*t)ZB564)hxfx1Sx zQm$+Y27}GPrn;J{ih2XKBa=WMSWX0RAp+xx+PxT|eA`OgF?U9-S+~>ec6BZ9DcMk8 zx4yJ{MNdg-X-Q9Sw|hfP?Qn6=K;k>=hB~{}uI*yKc5SGuU0+7mmY0^`%CdEJb?fQc z;?hz_&p^*ePtVBa?rxNMV9Fq7{2*q$f$&QWwa_b(&O=T($tRFfAaogSBw>jv-%yYN zgefGuAA@s&Ov(nn$r~uPm-~^FP2e$bCSu-kIEtKX>bz%VWsA`wyn6jp30fG#0FRh2T7}i-iKF8Fb80dOQ=c_$WZVtN3m$UZI!+{Rvo{j3xtEsz`H% zl4NqgOe*5KL?AYtbTDM2Ac)C?&;{r#giZ44Xv0@2l_If@Ga!+n;P>dXDQXJnB#Fh) z>lk)(6q;R>N8*mMrs@h~!NH1yBPG|3m#BY_3{?yj;BPe~WBIAXse_}Uv@^T@)QW=; zg%s>Y-E#1bGUeyz93t#Q`l-XHn!ruU80Z9ags!6U5`jP|J+{dtQ+dO71S17yN{j&E zf$Q^7FL=TA2+BymoDdQh+xSJdOWxozfVB~W21}5JAVCFqR%S63*E15Aff_(MSb%}a zq9ymG%f;VDBGUW*g_kG3bDzjZ>JBnjy!XR@{VPBF$hBeQBt;TRT1(*M`EgKXm|~16 zM=|B6!kQkjGC0}@Uy2&y2;2hz*l+-hw_p<1_5!acvLO5!C`smtQw}ZM#9#HL9L-Nf}n-L2BVaeOw>%e4*TKN%VzzhrGaa%G2U>> z%zSfi#dqW1EwD{>?(QiqE%p0L2e;L49XNAlU~9wHf$^)LMnczq)A$)sM*;ZddSyFT z#MsZ3kdOvs6Mh#8WD{W|*5WF?QUEpsUAn-AdY5)PpU86{jR1~H)QX-cE^@-ah-hmh zMnY!A)Zc}$>#<2IfyyOK(FAW)EGV62IdbvM0*1Y0t3-O+vRl;`0-kf@h5MYL zKeX&u{Om)SsjjRS$e#D{U{zjqAZ>qFDo16;ry6yCBNG&$zqG%xHZnt_S2aX~CyGj* zD0n1y^#!k$d9EszisT-qJXZ_%aBBai?Op%Wo?=!mHmBlE&iu&Ju+`) zCv+p&6{NvJ&!SQa@GXHrRLcU=0P4){dQmDs*qg#!7iA~5b#L$?9i#Dd*ZR($fuizl zyqqD(hABUrH?pt5(pI1Z<318GA-j{s9xaLj4vcTYEEFgOK^H}K!C+B>uqLirvF;UZ zTG6`Bh(_mLOMFCkJ3Rp{uR?2EpjGB8k$4bLXUMZ;qdI`;klcomypgZui`A$29ZD}J zRvqSBzU8@@=boEkL-hLGbE3WH_!cOpOIs)~lcfJcoqcWwLjnAX^ATQ%=NP{Npkzxu zgRm@pj4?O+^k;W}<}3qxMEB=`H zM(k*89B)`Z-mtIF?4B7N6))81f%(7i&9DMMq5TT_(^4NYbc8}32EKXjFKjw-A20aE z3wNKKx#vY(+mCBUv}=iGoCa5@Bjox$o1Xg%M{xGZyI;8H#e2m35{*BMRxL_RJOmUv zQMpM0P6RtL-Fu8;a~6}OR0sNG^2rQj%D2q@iCvwzQ=Q^nU%UJ0mG?ZAD4}_#)l0Q5 z_7JshT)J_!tJL_f*wwUfV(~t8^zN_S^VB_a|DN9RL)aBX%KqWARaiq`UfLD~x0WKe zFeHmqWh6varC*~*X>mQ69hsWdE0C66gvJW5XmV>)J*V`oEe9^PH{xMz?Dd%^p1}Xw zs3S@(zl{AEw)(@gqJ z!HD?JpJ&#x$3;k;gp&$^7-j3{5nXz#;lTZIoLEXGT0j!{5qa==<(DF)`JtO^2I zDmAiq+t)Ytd;5k7hRbzTwWZ}%eh)7RuWoJ|t_gQFH%Hbs zuie?$XlVCssS8y#t~J&MgCTu$Rf{Kp05DiQus3gqv{R(OW(vzKC%_5kP+Rc}1`UO8 zD)u|7_2$xghp$>B=M@Bq#JGdZ$NYDFsJ*}PPJZ^y!~lEd=9-?$L?8Gxo1dS5klA#n zkQW2|L^wboHjyhMopL_2`D;4wC@-LuvbOB{yrW9qA!&`@# z7X<>)V!kGf0n!gFf;834<5PS)xG_tt=^Ze z&T|-zmJc8P$-V3`-{@Fk)-}-9$X|XtNOP^lrDLvpXs(OU7Ahvd`h5;FhA4Fpep9qM zP;q1uFU9dI%hRKF3}S8-q@Gi2?|9``2xvDz1C$}`$*&QVhMqbZ@}(j{uE|78O{-|0 z{|kE+5;Ik57>=(k2bGp#7dSA)5X@tG1oFdmhdBoA0vmxe0LXMr8y>>y4jbwV@-Q)Y*%L~*-@0ou?PJ8 zD0mv|;53mZiR~#ewE@Z0Tp{F_WO)#P5o3qo?}Oj@S}6{_^Jt5#m6xhbef7N zPG*#*tOgpgS+7hNFdz`&b%{_6NH?bz_9A0f9dT)!jm~+BJ=Hk1&0{NfyCfb86JZGw zU{QoVsD-Bpa?Qzi46`Sk;DPk-a4;u7X9GKS?B2a|=WfOxzAQ0$Pen!5vSs{A^}{Op z=lRLet&@{mMYC=U>aoP@+BfU9j|j4>V1<6Cu26-*llCi{m9I)f zX&X&NK32(LMlti^0;ewDV#+^+G(fac6uIEV>{~24)LAal$+ZF=DCbRLspOrsZ@k06 zr(zE2c3FTK<9-E0#(4XJu_=P0(+vuz54))P*?} z4qa_d3DKd>oy@S1KC9K_`c<#Q5h-R^UR9m(*Z*0yYV&6N6#v)Q-)Bln%FA7@a`wFX zA^Vv6Ch>swRjc}jpC2C^8>b(v!r8eIetk_-TT_jAN&Hs(PWwHO`ZD#7c3>A|j=h@9 zLHi9Nho*s&j|)me`UZqw4yM!}-_PsVrgLoM0kqIG-^QNhvyeQz@iH@naIz+Aj22w( z>SBa0!J`L%p4%0{8PW7D*E4q>XJ23Q-S4icpIgtrO8ux)+H~J!)Jj{t8O$2i3Nldx z)r&sNkUxg&kd8zm6m+6fX2lExzc?6Rq;Nqe@pbTD)vL|2<)@!{<99yuPv|87>fCy?o7qp~#-L8Y?I{=+br#@E zbWkF1NX6QK1SCkwQd$qkuXJbnSf}V8wb-WhPaAs?WfUs{Nkx{SqQk@2X)FaN%aW5Q2nG;qi3<3fml$CV+yh% zD0%t0TR_`x#Wrp zyYJrP|M0%dq-)-mCIJTi{0f8m)_VtuyXJd zm238W^8T-X{qeKTf>rsp@Bif0A0=A6r4e5#qzq*k=h5|8$7Z6>2w00CeC#xiDjOW4 zlWO(NLk+0BJOME^O=3YROk^`_R+<8+e&`GOiz$P%G~y;l22YG%MPq_c;cQe#nalve zO&=b4eBEHYzqazw@v6w+@Q2y*4}9XYU;0vScYXJ|d#8am-QHeSRofb1_WW_vn%#6DaFFZ zr;6!Kq^BSuk&8ci^WmGjCu2SPma&IqS+>6i2!F10&adSMFk3O$ zbdSc(YkFH5IRH3G9a$t&iWg%!3@ZjVK9hkBVA0QF#Xxr=^^v;eW}X{ zIbp~2#*|K^tEu*u`yubDj)#CYy{bQ20D5t@ic~q|$R&7{7*kBjt*9hcLQ#3*i*Pu? zZohWqT)n5VX~n96oqb(_^&{7J=M&*&nZWN7vxv#2sa!D2xNTGW9nd2o3OQ|0m|I2-;q^@;S0GNH1a+eDW}# zpsofCIG01NgtTV{;=l@MIBNPrTsJBdJR{-(1v)~7Ab3djp<7KTuVFNpj5of6n|H+h z)z!pftGlba+S^*18|x#XfZtYSt1K-+Ckw*`ka1+#Y-)~)QVMBCX{KpL!|Z~*N4Z)AD*86)UI8hnjSqqFmQZy^u*xciP1fmo(Kmvh9i;44TmNVUv}AH zet!3-_U(Ika`NGQ`#!ZhzIJA8?6$RQZyOt%S-Ww3G*~wkZj9ChM|ZyW@ZtB8#*#jl zJxaeaD`%4+EBPU2$ZKrilpPdNN$OwN2&8|}1<1aD?_l{jE@um#9Za=}puc9~xCVV5 zrksP^)6gC?)mml?;?`W9>IF9&bKIPq>V8DHR`*m>m@-8cy_>1llF1;onw)0%&Zxqv zNm4!>X^Tzz;r`lkzc0VIqM^B|*zdgUw-W(dNr^46#N3beG}X1`8_exNZ>^!s>aPjb z-^)J!nA>5e#8HZa`E~b#@0egS1KOm_W(6-`Ll#6A!6d27pjHsr4CNzP;Y#PZNN<>dSJjYtbgbClLA;+!?l)j`>mJV42T~{H6MCyfq6;8Io!zb)TzP^F}W0#JOA38M7cfaR7 zv(iJl|1?-zJ6KaYP+K!ti!@Ya<-t%n zKTjVG*5D)jzas>0OkaRBH_SIG--G>0r?d>8rLY0$&?sw2^1mp8Oo3}^5ehnsEcjNq zAJGv~2sYgK6WwRuhJleQ8|Ryp7eq@YWmq1AZVXJlnF0@F7*rYIsEYxw!idv?iAtz> z2d!aR)RjP*l5GP&8*jYvMmECUpEx%6D|)48cHks23QSS0vNFCb;3+M(8nD!EXvj!c z0V5Kg0^$Oy933G$C>1tP*rw`gu>0ET8k|6tp&BE35otzEI3B@1kiJpQEey9ENR>xs zU9txVJ|AEY@4D(L#+z$uhbr_VSM*J`nTrFCGW*pBiURFjrDgop_l#`0f4n?c*An{3 zs@m1HhC=sMR$IYOK5**2y{l)U(+yQL^MmtiIGpv6!((wOfJqVxm@e3c2G>?ml>(kh z@JWe*L^jQ@x|||D(G@|d1yct_Ci3xDiq90kLNDy^XIyhH@J`nm*9$M;ENwdLJIL;LOAiT@=~>Nw<+cl;g5JiEcF=q6g(>RxKkg%!(Mz5FCRE1 zA4>?_Hxa+)g*UxYSsm{O=2363in3Y+`T}5$_PQ{@!Rih;0T?6sj7d0xgSWI4Rfj4| zD?H_Bpd{oEXofhK&n1?~olgEHm_K2DyXl(V#G#&DtM+;P)z@s;cujBbH5+#>WA)2- za__oZw;CSp=xHxmF}UWYk&&C$)OFtX(HM9f6l#MR`;l_1Rw)5xUwq0@0P8R%)zraG zs52eU2Q1LcXTbe%JQ^8-E&zy@YDqGcPXW{%^M>l`65(#D4payHzLKhvN>7>9Wu;Iu zV6lV|st`OVoy{=f^-%^2cO)4OS#tGvoH%jW<;Ra-o+wNF`o(WC--|!pxN+l4>@)oQ z!99Bp9@xA0z}x`anD{b3oA@Hz3R}nKorWDd3_BCO*ItWNkFm{S)s0F-cyYYg0h*o% z6&;!$ND8h;yMx>ntllp}DD{nN>re|Yhp7ujaSWKJeNiG4PV%~rspm@TscyDzwU#bYuYF~vf6^!e;Dx53vDG4X=L%2!`ad_tK&aWkq^&HdXC?!KESav7Uf=0$A- zCy=!&Wg{%Xu7){5t3G>;?aQ3azXFCpu~zf!$KrZ3p&>xD*bJg36z)-TdK3On7L5_N z&S>}l7)|KlKYdeo30AohHkGLIptQ0%gBAd68yhN0-GF>zet@d<#Irxe;Ybn_88lJ$ znXp-yM+owmLnh@<|r<)*HlS{n}<3%1h)PAY2uY$XyK3d;aRaaGu zu2q)R`^|_QL26c&wX2eQo8b2*NbXVaC>fz4nUNy~^^(kJe3$>yt2Uk(-qh<`adc?; z{^e`Bx0gL*+kQF`bvuho%2D_|@*!7Af7IX9INrZ*e?>=k$Ig!0&9UD7{w)n%$1Zt4 zZ!UMao9)iFl45saOa7U{dRGnMe&$OPZ_VF7|6LHv2BM^7L@s5BL`GQ5+ZEWe5N|Lg z#G@eEc;YU60TWHu=gHt)qBot4C;J#xUQWCv>#HeKOt-cK1u}0i0J!r7TfB@6vU#b9>>Fh+x zN+?zG++dSUqn)vBjZ?^O;qeFBb(0xIzGyc8g%2Pv-^-XybzhQkUsNKIekiW)OSqoY zeW|8yKO`%Ib5XOGX15s?3j^?I7Asw%$Bk605UwLYeV~5Q9IDO^TrA)?@Npp08%1sd z+6V+D2hQdWI`_ytflXv$f%J;C&XxJ$k!YRS)X7X$Hrq`DxyEoo-r|(y5B@AGe8`F( znArJ$=R<4?vq6ZZHZcm}T?0@-ZgLTWg7B&wf`K3*;7uq%wisnOxF}A55$=Lh?=Paw zi;mQbx^{{Cakm>Z)QP+GOU3!2bfu4CPXr|)(8m4bL#S84M{d#IMx*)*-^891ZJ3pi z7*#pA6=omVsqq_8zIf0EjdLZ*5lH^1`%tpF6_*9AaH*M3utENwqL6Mw6NYxTS;g{nwRYID=4QzyVFg(UE31)u2;~YvmQFuM|xRF#L9e~g4g za!^7Vfg=!$15cnMNQH|i;DQDUL!Op~{HmL0U%%vaXU;uy=FH5QcIM37SwaaR zfp9cJx@PC(es|*7TtZkJp1ocB_UZq_oTj%EGO?17NprjQADHQL;f=P0v^qdYbsP}>+dTW>y(8YE#!af3+A=8ncS2g& z!Df9~MM?3+!UH`B@wo5RWF671cGn`dMcY zl6{nrmsDBBd_?Prws|M@UKJz8jtp zJb`$pEE8^Hnn1_WadbSLKqt~NI+@-<7t=fG5_%V1K_8$S=~FD8rL%1I03X7iK@2M$ zLl@BHbOYVW){tPxtBi~!eZf1Oq!9-ZQuL&M(rffDdY#rWZ@!w}51fV+8ybGB?$e(P z|8oQ10r~cZoGAaEP+nw}=+n20>doS4p_c5{; z?mlt|?%U*BxM#^ZxaTSIh;k}P(8t?=30l;hNLx9)ON8oOt8-dwE9|!yt-3s_wdKB;p z`Wf8M=^41+(;wkppqJqON$Ut>-pm_rFpGrDVi=@_I*2EnrLa`MX{-y}be0ZGCd-7I z&9dQkVvk*KjLu0JjUzhMUX#!5zYf5YC73BETiQ0`6^mI^28ty}+;H_W>3)&iER> z5%4o;HJoqf&jQ}fQC|Kv{|4?4`~uv|{4YW^F`!Y6YvHIJLc%FH;oS@HF72=ZQxc^; zX~2y5YY!PPC)pZuB&+{j#{zbjNq&%v1)W^rCkENr?na4XH%UwM5;EngOI7b>qWnTel~O)J z?$eOx65uAORCM~Oz==>H3!S1b@>YX*LK1e;6Mi}BV+iCW%B)k`NfzS$=Qf-Vu484d z7d3UWEL}*^fq$35N!0Akql8GaRQ7p0xsjVYb_Zw=6_~p_{MR|Uk)vLozt4pzcO|4C z%E1+AILcXFkXFxupO^9|c+IgI+A+x89HCjzA+L2j{ zZ6FhO&54?AgHVyDLU6fRit!kS1Ih?nuHd@+B7KgD0< zuknxgm;3^+(*m?Gt&P?}>#FtF3bl#a6m65XT|1zCVDYpBTY6dsTgoi^E$>*4S-!Gd zu>5IFv1V9@Sf^O$TbElOv_58i&br_Fj`f)JE9(VoorjM{h)0A+YmYu2!#u`#RC%oR z*y8bq$A=!LJ$~}|!_(r~z_W#Cyl0AMhUak4MV|M1KIggL^BvD)o?m%h@ch%u!>gfJ znAbS3-CnPI9r60y>wB+1yuG}eddGXW^Um?^=Uwc5oA)g5JH1bOpY^`%qxl5;MENB9 zWc&2>+2*s`=PjR4eZKKc^Ue0{>s#bo={whVs~_=8_N(@r<9CO@Or?JfYSk&0{#m03Jeak2POs< z1da(@6SygGd*I%{LxD#FPX+$mfHVkfU~iDvAgw`mgT4)l8dNrz+h9e5^$oT*xYXc! zkbh9KpqL<6P-f83poKyA1U($|M9}j=CxU)&$QuSUY~C=oVN$~`4SO~m+_0qKw1x{C z-qY~mhED`*!I8n`!PA2m1>YO|aPSksJA+>f{wVlN@Wn>7QDCF6Mr|5(Zq%#Mh(=|N zW;D91(b`6v8*Oj&QlmE;ec0%9ql+OVBp@U#q;*KAkX|9fLnemI2w4*HK*$pzyFw0x zyccpj324&1NlX)0lg>?gG}+zcrzTgLYE1*0 z-qG}OGt$hrS(9e=X04i~HOp?+r`gD6<;`wy_GGhnn~!dOxp`fvPiRQ!;Lt}yp9$R? z`c~+tq2IMgX;IVSl@@ij2DS)WvMtBf%QnbXX`5+VY+GepZ`)&g&-R(^E8CA@sbTZO zmWMqUwlVDau-C#4hn)!fHtdp}*@NsY?D6&#dxrf1`=j<<;XdIF!=u6-;T^-fg%1cH z7k)VWi}3T|brBvBjUyIE{1}-SIV`d&a#iHxkvk&~M0rIuh-wiPA2l#)MAVq5sZsYt zJrea))Qiz^(Nm)5MBf#CfAk~K&qu!&eLVVX^p%*NF{5J2W2VO}jJYS~p_s>GUW|D& z=EImTVt$JGE7mtQG`3}Ihu9vm1+n8}r^POaT@m|W>|?Rd#qN)NC-zwEnb`BOSL3X4 z^WrYXU4_c-6JHhoNc=PLd*a`S|2Y1e_{#}eLW6{+31bqf6J{iAOZYC~mxQ{O4OWNlAwfdtq#lL^+kk&=5H@4o| z`sLQIw?5qZM4Lu!+O`?grm)S}HkEDWv{}|>t0UjB$?=<$I{lnYoRQ8p&i2k+XTEc! zbAofSbDndV^GjE#E7q0d>fq|`Ds;_sedPMmbuK9=DJ`jQ(&(h=Nh^|`OL`mspCtX7 zOq2bRn+U~U1(~hK_Ogo!a z*Uqn9T)WQg2DY2jZb`c@+c#-n*?wmG#qC$MU*G=O_HVa8)BdjxNgYOXDD6<*VMd27 z9d>ls*Wp};KRVKm%{zALII`n}j*~mC@Ay>57dyVz@%@gUb^Na5FCFVTjqdb9r~RGY z?DRpWlbz0Xy4;y`Zra(^c|hmF&J#O7+Id^&D_zpNsw&hXC&$!ML?E+Z$S zU&e@x@fo!l3p4J^*qrfv#=(rE8DD2y&g7X5Gs7}lW-iJ6HuGZUUs=9cp;;}nI%M_C z8kRLWt2S#<*0QWevL4Uco%MRwk?eNa^RtiTB;=&#WajkB8JaULXKKzJIrrym$$25? zN^Wd!uiVPq<+;!1zTY*X>r-7{?D|^Q_q!hJ`c>Bp-CpQ+p}VVlLHFwJE4r`g{tW&v z_Q>q9yvNC&@jWN^e68n+o)>%mmDf1Wk=G-yB(FMee%`9Q&3W7M_U65l_g$}uUZuTm z>ou#_oxL9IwYAr-UI%-<-|Mqp-}U;XS6y$P-XXmsdbjR|^N@ z*(bfvZGB$p+q7?VUuWM=eJA(b+Rv}w^nQ!_-P>w`-W{EwsY9QVIK@TIlSTU;^C8qPaA&c@CSx(9{%j`mxq5e{Pgf^ zBN~ioF(Q6M@`&^ieMS_Hm^|X{5oqP0bvi=HjoTXd-CXwj+Sh~hED6~$AE=N8X}Mj@Y8aMrXsyaW8$8ZimIWF8iEo+?NONAl{ru@i^X^ zJ9!E}VDqvC*c#hf*urhmwwAUwwzjqow(hq6wqdsMwhG$}+d|uN+e+L0wsp2Y>^}BD zdn0=@yUiY9kFh)KN%r>kYKNAS65@JSMy~ zW`L354@9sCYeYaqP(-7MW)ZfCmJ!_|iXuv*AC2A`{ao~m(Jx2868&cM+p(#!-~Y*A zFC@^@*3)F#LzZkkeTE*S-_jrGRhGaUvShp2KK2GX&IxQF0lWc97Rh5&$vkbowqRSR z&2EdbCD>ZqQf=*RnYKJzfo-I%%r@0F*S5@duPoVmy9Y`ZWN%^*wcBOMT=sTG$!hF# zQL>HpEhyPj_GeMD-S)lpO4dJoSojK*%z~0NK*^e_l8ugDkCN?(ej$2q^nvI%WXaCL zcqB?D|LR&p$G!P44HklWf7h45ycjDG*VF38k`Z;I>jnM|_>I@;XGQQCSeNy`(=VL4 zD4^4aPp5zNf`Cq)6Yf`oCH$UnPft7j*qIeyPCT_=yy3kuo~DF+xdPN(Pj&c`oEj?d zCt;)geBEciNchmneBq;Q9;d6=3$Rb&k7x31Sfi%$>3k;N#}7)}8~j~T-4Y>uKsF0(?Upo4d${c_o#A%2q{|@bh!F8^fsxjH^iWF=OCE4|;7Zu^`3icO zJK0|PIB!NXc_-e8H>Q1gG+oAW(B|&aBG@1NIsO>)Wg1_|=g^PY({w4H%@)&hEP*G| ze(1wC*g@m4e&~jkaX+lm#$f$00c(=U=*64K7Fa@G#9HAU@*OOoKaum~3N5BXuukaB zzhZIZFFFX8&im+d^bgn^Q(#A&$ST-{6qd!?#8&=2u z;#+xZSfee(54PN3(i|gD6zPnWSTfduMPx83Aj7f3o&$^SJhG5HN|v(qCM7PFJ>bHSVxl2(nu-8s+)}>Ls%Xe&Bl_EtbmMVut>2gRzu3z zG*ZrHkx6U@sbF(RHCsuhvW;Xqdz?&TTSzu6iVw11$b9xHd4OFYx3ka46Fie_6NPGGgNv9{sFxHQZ zVnyUGc7&{D7s)d`k37eRkq`K*uY%|0fZcpzEEj*;KAU>-}i(R*lD zUciUaMYNXx0yFeX)_`B4rSwTY7&Fb&Sj)!4dVdFhhCP72i>K&Dmd=N;Y}o0`uxGIq zHuvRp0Y-{wI+G;Qb)*&DLbB*-l1aZLN%SSsm&K5Qu<7<^?a2r>kW{kUNfld8YT1Ki z278jsWLwE>_B`3ZeaS}dPabB!lZV)^Zu{X(L_71s|y+@X?_sJdXEwYMzLsqlz$^Gm{vWERc?qlDPPx#y9I6q8I z@FV0T|CoHvkC89|)pWlgxw9WApj9ygz-KE#zm}F7_f{#+TD?*l50zt)rDZ zhuz6q(&4<0f5*RP3)mt$j9+JW@Ihjy2_yFu)HmT?Bt@&x9|8XlpGN;UUK*Lkv&aO` zU&$2f4`iu;|IIVa^0K6zhF;tqG$P(K%R%)1|LzI=C-i8GlCMZh(u=gyk+)kt%}8H~ z9}Jq4q>>BYc<4Q3n*P+i2cOY<>aOA`0NlWM%gZ~enlv~m~_mATK z6aG4l2l6NK69>N)nesP&48j}z+wcfdz;E@Wk@2^}vqy>lEuYh5g23|*Wb7@THn+gt zitfM1H7046K$3g&gLx<( zkZ&Q422HDU`;8xbiCo|3|uojoq=zL=Vf^cL7YUm`4OiY zCJ0_E2=lOb5|Ix^hH{MzHhoq_ZZqOWn7IGwWBjG3uopo{Z$Zn-Z%BK-!EZ5rf^-$* zH1=P+8n_9-P0+H)7z;yQPT)yGewvYq^efQe0o`cGO5)I8hw=fWmr28(MOmte;4dHk zq2#4_$bR|^_}ojDgGM}q8OAI25$LM%JV+*3o+m>s(8xGJz90QR@k7|7b=Uqe|48U^ z0VJpXW5(4EkQ@`f*|!`b9W8rEN64m_&w^i$r!%SGv+I@VJ~F|h2KZPqT*}d1=01EE zDaAf|4t)l5i0};<`gR1)Gfc!je}v^>JdctHoZN|k791hdND?P}FwVwc-j9PG?vK3V z(O%bm0YmSMu!N#+!=M{pA@TJemVr9H>-r3~oA_XT(v5qQL1_O&ZwZ^>rhhYCAkyee z#+Y&GRqSPo_VYII-(fz;!n)ujX${@1BXqX`(1iy;f9_~JBjAs~oLqsjOr*KcYtl(m z=$gGu+|53CX9$_YuVtsm2>2tQ4|bH#%iueU45X96YZj@{{km7^jg&_*Hds|LSA@L%VmJx7pX+GV6&1$}lh)&{fcP9f|h zol`fAeGXmr_Imy?j5B{=oH2ap3i2H*nh8jw0)0j1UHHtZ-iMp-^ng3u17n(|p?wKI z41FvFviy!rmCsPfe>w0&A)9NY!ZKFGt9w)M!TFU5>@TEu0miYV#78?xDzqnnM|*-i z<%4(=6n+4BAr9>cKNpXvFVV&gU)%GqI5SN7POKe6NN)WHeXGJc+|9?*i&RDMcZNw0h{-(7_4PosbO zqK!mgUHcdMX#~cq4@s`p8~tb_#-y%fgm}pBSf3fN@NqaJM8g!uK|0grUk)x8hchB)^6G|>C?euMra`%Vk+zncjA*l_wV z(!&G#%zAv@GGU&9Hrf$#KMFg+Mc7FGp^y2a4|Irzs1*{s zmIl~(hs{jl)w_wm$)`9?%R7OOXiLpuGxA1#P!{ zmg+qgjl3;!mao8#W%-O>$x#o!6MgVb-B z7&oEknE0E0wja9vRnmrzL7n2kS}sakO_KhjZ|I_yFJarcpMDr`=9SPJE z_5k3vfXhfDf}IMyiNonQ|14b(>3T{x6fQU9EhqvcwzU6O zx@bGvk!H|b+LI1sA*?C0vq+wS{grOKC-2Ss@e#ZT{99rV;R*5-*+!lr&ywfJ^Vl`O z@m*@Auv*dp8blkx4&RKnpmrKbV_=VWz&78WcEQ=|?zBJl6&f=e3+L%Pi+ANccrV_U z59ftA`0FWiPYF&o1GbPD>}E7U%k`CKpr^?5(B0^tusZ#LIhbRQVhYyK!taI{l>SkV zM{m?a9OC;z8otCTPa&`3t3_PUYV7L{YC7Rh@BCJ(us5P;{7q~ql5uR z!7GgZ0eVxyqVAC*=9zxjJsE-hk7Dehl+&+Z8T}1=9&Mx*G)L^<@KEd&-lbwPdXD@; zu2V`i>OsA!9}T1pX%n2;ve9rFMPq3q4tF@QADK$iaEhxlO{ZBjhxVYo=m4DPs-iV? z8qRdhqI2l&bTxgDK1?5>kI@};Cw+nLqI+=GYacy8U&Suw8#wj#Hhq^KrXSD`asKNw z`UTE_oe`(ZamM^2{gqz9E@vaw1iQE`SQv|7(JYpwvUaQk>%_XS?yM*4#rm>*Hh>Mn z4(~8Ff)%o2R>H=y2{>0?&TeDXtd>n>)7eZmo6TkO*fO?)tzxU$Lu>=v#2#Z$u&3BI zwiEkxFJXW974{l-QV+4Wu~U4QeZW3sN7*OrI6J{kvQz8~`^F9WbMC>txDU>$iQU(R+|I*zOWuk*xC?vBZFxK1fp@;SJ@L_e3?IiQ;7nUNujEy{ zhEJCJg!l0W_=EgmoN{}VZ{%C}vwRQVi@n2FaN_NC{tkbSf51QFNBJlGIQ9@v@-O%) zeujU;f8;;mG~7l0EB~GU!T;oc-L!|;Kx?Qq(i&?`wdPt2oR|woo&WMLeWQNQXes+f z5>1i)qZ4{artBkm*u@h2aMk$IU^<iTlf$y1?z8ZKAJ6kW(-Sj2wZ|$eA z(AVhe^iBE}eTTkB-^ae!NBE}TbNVGcP0wN<`#etlUB=#=*wJgunz2yP`&bmdCP=~e z1MOKy)*1VJJy;%g$@;PWY#-c)Ufp5l_ z2fMN3_cHeUUgZb*+t~kmpC7>~$B+3j{we>Ae~$Bxr?G4N13$;liycm}Z_KY^w^;0S zS~L&MOY_nEuv;9Y1#2N%6RnvRik)Nozw~a=d;e1pH+%QL@7p{6pL+Ly)3a~Yucx9f z-@0G#yhYDG`8R$0pZDyR|ASuqf7*vJ_F|NjBhF3Z4Q7fkJVIaa1LTcwkA^@?C?F$n z%DE6$zaiMEUO{Hz3#7-$otQD7Adg_ye2T2c%()GF*w5g917^@?i8#Oe9NC1K^m**j zzewK0KE2r2ewlnij^P`xPsug%D#nIP@-2GuW%3<*^KaxVdPgXB7HwD`{D3}^h#kh( zurHm%i5n;R3Hx%%V$e;9V^<+nB1$)xfNGZ8NYFsMMoF)xdh#J6Ye z5JvE=kIF$Fv_qjwG3c_A7pSSUT?rbIKX3X8voJsQ47T2`2j?~( zML)DZeEYUlL~G z`?N2_7i5x0GQ#wl6SW;c#W#xjw~4p@CXtCVD@I%)&&ebW=?`GNfzQNTmx?o837GwC z(0T&#bsaQ8XhE0gIcRRDFmE1(wsZ*E(_Uy(+v$^Z6Xx7CIPtca&cke6j_)H!(cze# z`_f!C0Qzz=w6!?sZo$y1J)wtR#@AL9Uq6aIaZcYMhTwA z%=(AaC@0CbbQfkfy*+7Kq!y(`qfKgjCx0G0?k@s*9PR%pz74hYFxmuTL3}B&i_kCb zj8^-K# zo3N&E8^L0!p@;gT2LuALpci^FFSLi>VN=)WC-fLSPCv!_06GwE4_HYV^x9mw=`;gw z2ig&C8f^#HNnLPT(>8EpX&l@r8Vxs`M!>aEjJ(j8(L$6|GSoz!7ZiJ_M~40k^-hx-CnAB^neqD}7Lec^8Bz2H90#VD|q zcZK^TEcA>#&eKuW{TK%sxeh+6o%2o5y#D_->;G@f`EE`9U-k4y{%>`3tb!9|y>-S+ z-;3sBg*B9pq($iEqw(#`|I2FY6Sdy@8YgAlYp$zuCKD?zvD#{l@yNxJ>#e$S|JPPs z&lu~j|Iw-oGwsdmt`OeDSb5#J?#jSQJ{xQKZdlFt#CpCrR`mU_rXRrzc@e*L?TT4k zUx}IPu*b0y+xdUB7K64x>HFyaZabA1<|3b)EM&p3@Pxp|(}XmIb*4FH#1^n2gh989 zgq{-(i$pA}3h~f7T4K&@g)g|;$nV8mBni4p3M?0GG4{8^yw(9aLnoYJ>;k(?2EJv> zBH1K|m91LvF`;$@$Pj z7m+*2VrZdD$X#S9xtlD*j`Ip=rYp%R*qc|A`^g&e09i{OBoC2?$vSAN>!G1;fM&W$ zo*I3T>>|6#9`X`&(tXe|4v<&KtFVk5B(IY<@m2j>_^SRLoW^_)dg}+!T!r5HDLFwt zBPYq{xPJf#ddX>W24ARsO}@eR_u};F_n0YvBaaOt zhKJqJo4g6TrmvX$VSx-Jqo4_FgC!Dr0nV_N;H>-8qW8is*#s+(Ix-rz&t|ka&i97G zP6>U2+G#jaEu|4Ol17n3u!+V9&4c26DR~<$Fp<0iYYj9KSTmuW&?NFbO_n3U6|~J% zSa6`Z(Dpbb3_S*IwKK+tcVW>4qM_(SQBT%o;Vj4 z#d&l-Znjv66SsHZWGU|dAYWr8@F(s7S&CaOmf<|@3Y-cI z{3rPscV3Kxo$5hYsvgD;+9$9~uE#lW+!v^{#H2u@CgMLN7CU?_s z(D%P1W$6Fk!&>$u?6d3XPq3O@z|Papu##S)zhKqd zJERVsi=CqDtO+>{`+GAirD43l>EdkmJxFa3ctdWAUT~OCSNP zB}>F;)f!{`%h&~NgR%crXctcAg6f+D9U}#E!7^wXZOJZJ{@UTpvj^)yPGVKm2{ynk zES+VrOqPY+s%)Hu&SAN%E7ly{G1~RSspve|f_uY8*cVp9eAo#Gz*0Df4aTYCYS@Mg zU>zRLM&R`LNZ5#rNORbUN5N7&nw7FK+)}7RISK8LzSFWFst%GjUpV7A(tiU|YVO9Dsd!K2G{BBu&^Nb_ZLG6TnL_ z6K%oX-d$`dERxIEa;$oP$6oUab`SZ3-3trlD%dDjv-`!ZCv2^_^@Kf)bJ6SABWyj% z!nvw&?6z(oPvGqRlWY^&hh4q>*g@_I+x6qHUOx%@^;TH0pElP(>^br!+erdp=X?SC zxG$0#oK4;>?@pPFZ=hag`^Xenx(~n}_A0F12gxz^I?mv{0bA%HSVP~2J@j4n9_HSM zU;%$0Ht-|Z+5HgK(W5x?(;L?CW3Y#R3XAw>qz|m(pW`N$FWD(rOwYh(`ZcVk-@4;O6RhPIU@yPOE@8gjO}=8kVE6MfIRTsMZ|rw=h5doO)C=rS%(DI1 zHTD;~&gx*tpqM|nwCq^92hMqT!piOqJG(C|?f$T}2jbMta-3TT!v0A^l8JdVaIwVkKwWS_A4H?+m^6PJ&V(Er(l_yF4mW@ zPPupzW~UU`rrN?X)ed&44md~N2{!yLu>WPqxhk9Ii1`XPv~&}57P-uOl3(S_)tmQ` zI?AI`%giUUcz-^C59EXRV0^q{ zKUv93$XY&{4B(|Cf{(!&|FL`=vGDQGX?F4nINv`JE5kDKBA*03#~Ulffv_%D!oFOE zwen`{C)8p`VG8yXrs3`$!64#ftne>U;W(BN#O8Fnik zlWY1Xar)~id^NL;Kh2*ZLE=swzJosp{dOVW2~BRWZUNxCFkA0|&3iAb-uw7|SiWC@ z?fW%;5SGE$apTP!{7rs{zeRq-IkZo)_wg=&5Bgyvd_DC(c0rEdgv${A5t)tMkdLt+ za*WKyp2(*-3wb-NS^hn2=s&`W{uAuz7hp-h z$S?6@2=<4+P!9c+2~TA9yg}oa3;w@fpuGJp5DIllvEL# zspTQ>dIlA#k$RGmYO>xqoLL#x-a3ok^;jgQ=&_Tf;GH?iW`dapKF!*vUJ}tZ&&KTuzr!X<0dzKI1B?%JoFEjjZRGT#eR~ zZ3r~S;n!zeE!uTe?WD5eS}6dCHOHe*{RWX@#7>cEI?%0r`c#({SC5lYFp6hzPL`aJ z&n#(l?HhU0P?6_aWRJk=0JYMM3xZQ44ZUK`NEkP$=d zsfJKebF2gF*L{*KuFENtcQ~`#>c!7)XZW(o0BMCmABlO|uqA_TB|I4;(J7xOH`j6%Lw^ zSFxl5!pDR}!zz{{_0l~VC=vDQJ|ov#mLnq5%VB0}H|uZn4g!8F6oRDkaAY(3G8 zY?Y`0-Qh-|Gu(w1pgX*s5x<=~K0tSPrV*a$4hM*EFIi0`6_Z8@@nRg2;uF50EH;}B zUi|C5xEUML&TvaxfC#q~mm-o!ajD)~3?C@3V%fX^`IwNKol!X%?#dCM5sqBRaN$ed zdZ+L%)_tIS6^JN!sVuFkE-oJ}i4C2gSobBd2`c`XS)RqBM%5p(i%n3z(BZ3WW^=v^Q|Mvk?JEV5#h7%^?OiZFB`xH9eKKz7W8u(z1#v?yi`b;Zp0Yf493OKZldR5Ojb%2X}QnVqfW)K*n^l};@wE1m?( z038yIMyBpp?;VX~3`qEx!Z8*+h2y1LhW8rpG2_S9R+WnU>2iS_^f9Wcw4_F_sjPMw zwkDUh7IM@fAx0m8lL8)BZHQF1c1SSAYfMFLl|e6{dSaJ71T=b2ab;y{LKapy7&^Vi z8frm_j|l;59jmus-2=7HSa);vuLmPY=Gf`d=L`5iNkvnF;N?Bm-L~8yr~>N0fzWSk zY1JgmA*0Hw4YpYN7;W7p+Par)cxJc7VC4!LTPsHQNfqu zq_#4?UXK^-Azov^aft!PYkX^QC>=-j^}sBnxLLBesKm0;>S{eVH;w>V#_*6OQjyI8 zbtA`1_yUCvCaeYChHp^0T#i(a@kWm{d<0p?%PHPV_khqQ!10;jE}nlq*x==GCAHNi znlH{IeQ1FXl<&l`Ri&lnWoTOCO9JY@81z^vXKQ76v6e|Od+DA;=>4Fq{z#4mah5(C zBxQj{D}!h}gk!LC=IF@_A1Hll5e-jPX-bwu$Be3|(FcH(EU9q2+UBHbW#g-gC7DCF zKe(JuU2AaaLdFba3K{H;3Q7_}_A1kLA7n@jPO=)3k|bwL%f=XxnI-U8ejD>evN>Nk zF!Ng{jW363Nh?QmYq>57-81+>PN~*%T_U$9`oh8I=FgKc9vMCK{P*P=qpXya^Dv5#^B23jP5Ywwd zb)pKr6X~8RM7GPn!rjVLTG_@Jlt_TEek}J)t;->CubowmO z=`9sv&Fm>%#Vp%sSlP1o$`+Gj6fdV<@r)$1%{dY!Hdtr76_^}DdO0GmeiilC+<`Z| z8L2}Ml8NvIs=^pM3}59j#mG>KJ3}c(QYj)SPiUZWK9qoHTwcKFv!`qpjx@bX7fP8h&PYtoi8ecJ5m`b6!jh0GB$W1sgg5!g%rng2TjRrS`ps!b!LS-_C z9bG6cLnsbMnsysv`P^136r~C=HZ(9{rTGNhfRWS{(5OaLWMYI_~B2Xp?R<&4M$U@1Mm!cc$vAWQQ zthPD&K$irIt;m2Y)3EUBW^7o@WLp=$I|Bk##XxFC`$`e*%gBHL6$z$dxt4+7POCC z%ihtpt!MT4srpDE05uJ@)h*pvx5(8irlVBv8_f&Q5_OR}+v!UiXFH=JlTtLH4e*-6 zF?edU8lg)HM`XB0ZBYahT9nx(9WDcP+`VklWGn&&|cel z)`(#poV;tsLHW_;p@UK$61-6!`snA#O!AV0nW?8D0i$W9iuUALGo?ZomH?En9BKN} z9y+h5+Kg*ioE)PS=g3xEd*cL{)7DZeXFcf}SwS45S>?FfW3JI2bKUJxpB+H$u9O_3 z26D_AK&TwUx@Akz}bAW;ajif~~by*S2-fosJ=kwn7%#WCQPTW$AKuWu<9TMC>X0 z7@~VX_)KwErhh#cL0(hLTJ%+rWFafZYfAk(g5gf@o+%l+ZtTctr%eU5HcfDvW;QCH zY4wt;2ZP9WnwcD4^r0lpsFXBODLN|GXeYU%omi*oS7`YAm(!toeNOIeU|=$Q zN2WN7CQf>LRTGJA(!@y<@s)%4CKw?& zdn#!3Gvm1Q)42=Z9xTP_DSV%b?=JAA2&gE|oQA>;0akp&LCKHWcDTgx30%rD6)oOy z`n?ITdqCS5-}`RB>CM$R*SQ3zgJ$C_Xcf+hj=>qy0{aP^F71tzrk*e( z@ofc7v=qY~Xu~hnB^_ceLCA%n>WTNTK7b2jKo}-2?Xx>t^J|Aza#4 z&{LOm$4Gao^Sz2j6Hr@Kuom-)93w+FZtS77u>C2zM)r??l`u;r`QaS()+|^)m$j6eo8@tt8^a zuN^0WgK=Jj(pGi-5b|K1I7{5IPSn_Y*Jr^!aUI|H(lOVMAqHu)3eQYDqw(Oz+BWHU zB0zQHuVv|N0bi)JDNp>6SX%eRSI(a%9!T6nNa9XBPbWSOcLSb>6tr4}u29et1+7S2 zV8orRa8ngjr64z#GKCwXpfbg!NZ|?;G(bVU71T{Z2UOflh3lvwce<$x=Ps{9;Sv-S zr660P_(~psi9xr3Y>DCA=m$pV)s}A? z(7~4bK##jSTJBKLRt43^Z87N9tI)LyTHg|FLULKAaElc*PeC&kG+9BF3OcB`Oi;Md z3UcRVq{0nRP`-llTIPzfAwTZ2xn+>9=-RhTHt1R_C{95U3Tod{+j_s9E=lNIOYekl4csX+6u1)x?r6ec&>zC{s)F_^$c=kJ;kGO2Nd;|E&^iSj zO;}@azE|OvD#*=wk;1w2GFRcIC)9|Xf>XJI#wCn0aN`n&8_=MHz6m`*l`Ux{l+fA4 zC8$t9X*%5vIM*$3i3Tnv!JdGdBNBoW{1ZHl)cg~e4z*PE8-LBLX*bj|FCMpHi@*4v z%~0Te&~fg#zJQz2X3V!(wOr)A5hTA7~k&a2rg>jY|wNaq$nC z5OAvvE-Or2{1OE%P|$1zO;u3UEuiCyUzrLWqacyzB9UjAD+!?-t94wwh@s;|3>_*^ z&;UTPyzUak_cn3y-4v9mAh(1B^t4J>Lh&6HU8;f{3QAB=RJ^!-1b^{O68aiYkiz-? zEiNh^Gm!X0+%y9sX56@|DsEJq90?_z%b>ee8c}iQjnF0ui8>T_Htvi8om9{#3c3~U zY@8ff35k1K(VdMuXmHtA4~LOf{Kf5yGoc-ETP0>ooEutS54To@VvI#hLAOjniw$UA z+|0Piag~@qI+{@21QV)<8*Sp^Mk;8Cg7R+x#4=HSGZ&aiM+H{d65u) zB_>_R$rw5=&ZLWrP*AAJrCy#xOk7<392n(|3sj-r3erp{_Im6UAt6FyFDdApg1%MI zDFvN~J!-@_te`^*dR0Mt6?7u@1tZ3Gg?my#n-sK8L2F{~m3dkkyXY3sT!mW`J6)%1 z{YETC<=ApO<6uR-tJs)TKfbRcMR~wX4u(Dl}My`p04f zmgy$qT5LVtn3!vNx-q|*abtcqD{=RiaUp3=KUpC`LpEu)1pH-n}ROm^C`$XYBP%++) zHb&OyebL4!ieCpYaa;cu_jWY&Sn-Fr>xB3;o9E_%+pFkaP;s{_oE$MF-6n;TBc{ZyQMh|m+@%V)Na5xx+;kHc9ctzU zaxwE#qv*;_x~OpqH%j4dC70ofZjhqut8hIOE?eO`D_mNXp^e z!78qQ6h?+9jKY!EB7YNffPRiNblb?UBfl_k$5rTuD)e0y`i2TUphEYUxah44x6{NS zji(LHk1H-4ROmx0#%dM1LWM3dL*wQ}E|58%9XU0!NXsS2+mZ z6h2PJA#{`ug%4L;2AN#ktK;y#;XT5$!#jtkg}cHN!(+nj;myK>70zGbJQa>9oT9T| zGehmanW6Td748RxyJr7dPtE?D{R=%c`*B70p`v?N;oeZV0}8iC;dUzA(+c;v!fjBv zhZJu0-{Hdhn)wTNnfa3v&W4oJ>?`a`>NeSj%l z0|)6EIHYUR*}u?nA`Km9M;ZnWX&5-9Vc>czTsMWwRC(#B@}g=hT-B;QRna+2I(ve` zMJb$3;hLDZTeck4n(RS#U%S;#!mheoQ`lt_7k1v{7k1X<7j{PBPAc3d3ipA+y{&Ku z6>eYHF1@vf?a-~EgoJGk+hX9>tI)M7bk#o$-50jZ9z=5-(V>(W7)^UQff%`(? zjw{@U3iqzUyZ7x;hHF1kiz*YoK@k7i3`1I;zBQ*xE86Q=gl-i&+1U*POPfELr-Dx_=S_8MzvQxt05*GW) zcUre$=ksH^D=aiGO3SV3aEFVu*o5o2(-3h*ij^|OLDsGk#;!9RC{r(&aR*7bQo_R} zpFtuIY(ibGpci>y-w8bXPV#?F(6iox8|xE0(?@`{94NSbBR?X1&C&MRap%Y=(NNJLtl zWm-!;q5v81X2D%jHRtrBde0gv;hj{6dLeBKa(pe3r_VyiB&_r4qkP$4mKS;}$i_ zrpxv$#xUeZ=5U!9i*Pn36Yd)PZWd%BLzl@KIV`2USxWm&*#zsQniGuWxBIuo(p9TX9*X#@7j^K z-ddf21tn@B9hgelKKIL9Rm%KS$`-g^w!o1hb+X@M22u$XJn39b^q@*v#*vc$Q~0F` zN<&01Bl`tU+&l#S^s3~)TJl*W-PMwQk-(EzL_W#z>mqLlWa&oN{f1Z*Wp4Khxsm-s zZe*`$X@D`RlQ-q4{)Xi|VA%#pl!#0AOKy8b{>gsb74jr|J?06F7{S0tj3oQzxuSlu zTmxj>JraId!h1y<01ZYn(2KHfB1~dLDjTHS_Uf+8=YCnzl~Qi&rF*Z4MOWfP4yEg* zyIaa_x1`)HC9qOrR_bvjpYxXff?i_g$euM<_NX%uq?|WS(Yhs1lTC+?ueA_k21GqvUH1N>B?ju zUnKiDktJ#_X(q}(zR-FAtt(RY@lNtI*eTJM(bB|euth@t3?ClCoh307B!>l(!#Fv5 z&y#MMl*}S2nKDVUNYLQ^ELmz!@1R zSFMB>iLsilkhM0$0&Rqx5-Ad?X^<0AVnakuST7wGd0@Sa)Ws}NEo-w@)~2V-vzN^C zbSvtSR?9lA5ioPf5j#QFY@)2$3$g~!%KH6Yz!(pOJ3-cOnGBsKxm8Kd)e@d5&;QkU z+z0-(5-t;G0coiR?xm(<jK2C?Pk* zqBA7ETDG5AmTx5nGC@fp2U;uT&`oGKRQ#?aTpv(9r4IINRtt@Ai2V431~lG`I5nCa*qk13#k(JDfBi=0p{L)Xci ztn)Y|FrN8v*XgdzRg$E6NT>7|1rA9#-3a~ALsH6ou9JD_C;L}F$*rFp<$B3B-%rNH z9b(|D%d?-PzeiHuBPDQ;q+c#6@0PLd@f73gJrZ+|OywRK>oJ+iV=``28JZy7$0UaZ z624Em3v_xJ_dW@4@(_CXCeLQl6%yMdCFbRsC^6ENa{EbgSmu$3l5Vu_M(6=4F)xYV zBxSWp%BP*gZ1n64%3+?++*ni36v0j8kUglwQf@~`BVewGoUk#n?uP5R5^aXH$8E8c zt@6N3M>oklZ<3UrB8QBKQo|KAo;GEs+XBkz4YXXi3OPYIStDfUg zDC2?;qcRVxr8~#k3HbYD?c66z{jn_9K^gjn%;y@J|1A=KpTw_`_zkk8>t*OVnaTzU zZ;&(_B+WumM|7bV%19T=@nNBq(mFv&evtGFWqWQW;RUiicNFcJ{vp~hn<-oJd>OjP z6EiiP>{%}2dOj?8$~-UBVNs_@1)SM3;c~gsVaXytY?;UpgDp?c=q@k}YfdJAFDnf9 z6NZuq5{I`0+?E`L+mgHDtvk-5XW-uB$#|QJ^Xlce4RI5>1Gj1JC2Pq(+$X#p_X&TC z+lJ5Le&FNeJZ^yh9Cxs0;JkY_ZclB4-;wHtJ6QYUe$=+O-LwY3E;SW5mv+VtrFSE2 z6@C|~hy1;qUbwyg5!|Y}1^15T(`WHN5ci87#jUF1HqfcK4fG6dKoxg$&&4kyU83`G z*M20uL)@!L@5k@sq|yg)Q)U0zJ}W-SI`rlZKsE_?0&Zj#;(k9i19$nIVY9?7d+agXuXlkxfgAPy zV$b0AJi>P4CpyB}9*pNid=o%};QQY6SdDjhxLcW!%f@rw@XrE&=Ko{vI{>OWvi|SP zeFYncG#emAP{e|i2T1QA0*ZpYS5U!*iW)0o1=kj_x3twYrW?~t&u)^9>6_h6Hp$jh zH$73f@Bce9_cg$h&3@niyKvvT?@T*0bLPxBXU@#UGug3dx4~t6{|+~18T5*RGoTd( z?*LF}gx(3*aeN=dzJ|T{ZU7Qn@Vx5mBfh{y;AV^C`YrJmY5wXO()O423*`LI zw(whpP+5-lY@5pZo`hLHLcI5^&sZO}t|N%`YwM@hPx1Yu4F5Tw)~{@_ZT%r?LH+ZV zE#&&&*3T%+dfk?>wjfl-`O*55wYj~VtTf&fYYWv1-@hXYvA#>sbXl)h|7v|iK40(C z`kM6%>*4l7t@lf)^+D^Otq&qML07IZCCnCLy=H4=*I2jyOH$bN<2zbh#&J;C_0u>) z2v2bnce=@Cedfjyh+eG35&ws-pI0+iBwCMO=T@_xx8Cg|1r);rr?c4fqr1@F%pY;g`7PnRgN_f}$ z#?9kiPj+yggYeb`T-MLq%gwoOTaT>v;c?8_^p$y(SFI4=DIcXcFplW{Us;{ z5`*n>9?`Bcmuw?jJYZ&*_Z+a+PtI-ECQMK78prx~isvZHxtCh!aP!~R+MCDuZ^n?4 z%YQFNlBXOa)j3~qA*VSBvB*yBblpt$aEjXQqxHG=z`D%b&Yas`?3=-?w95A%UwCig z4X*aM>Smww@P|)7A}?gmeOYUIIPkICzou zBgjvOtTQO=dYAPvq}$^fs?R1m#aZ`Q|3R_jWxdDxosh48CuW&P32K#}Pgw83v*g(R zcsi!1_&uI+|I$lHCa)o{w|{9)|Go6qzd7={QIA?TTh};Z+MY-{XOUzf z5-)L{Yi=&5xpL;}6{;ogkIowLRpBu+U zPc|%_)8D*ztn-}X{~vnB2)x-Pd1!m}zFEruRyeFQe*ka$(s~u&e}Mikr2|-3Kqpt6 zZA|#B^N<_O!B)t)h$-|Jdb;_AQvU~O>$>H;UpM4`JK%U$)A<;Qt|NSSO z%R%FjS9^NZ|Cj!>A@tw=zG3hDw+p*rexWxEbqc(mWyUGWEj?QEZzPKx0x;08`t#eyn{!eqVrNf-s%06KWY5!YTa-4KPa7f)g3k~}_NR%Jg(plHro_@i1 zq$90!YZ6q-sg7^~yCyy#ZXMS()-U}fG;+w#u2*}Kh_%Tz&aMA)<%qYQ?td}n4fqLW z!Y`-~tk2_ivRx2%awIrgW?gZ<{z$k%2(84qT(0Ada1b)T)F?#Ewz*liBGyeT71l$P z*hbrOmBOXq|KmTTCQOp1b&;qEbUy1|@w7ss4z28Ycx|-0tVaO&FWHgW=H9BX|EZrh zpxFPZBCnJ0tn2SkRrMRxb0izGMIXne@<} z-s+6w^`9Zl{}U^Lv{L$K>%U=%z&fqXcA;Yd0J-?hGkXS-$Cx?ldX!uQlw|8V3CI}297 zt!o_+*C$6`Al65?zn~dbLV?RC)*ms017@@Q>Fc3y0AH(IBSmbo4E|`#*Lt}%N0uQ{ z({V1(mZI%9#lp(Q+t9fLHM#P^n_CLn=I9Ku{)T>8mpj9*_k1G_?s{o{Dg3&2c9)EQ zj^^l+@D_jE8WxVs^tB!rORytUK3U^iL$3GRdgt{*{s-Z4BJT)gsj@&Rz)6#INtmyA z{y+I~vwm`Lq5oaAj*2kmcLk&6TUJ6zRvM!i*ciG z>wPy0wS_q_(YZaX9OK5P;Qo#$p&edn4VC#2)Da?K?R~b6)1IE^noeq7j&wI)W3kz3 zUGtH@ZeE@vm0l)Smc!dE5b$8^OACO9TZxjU%vCCsLYyo-Unz#?W;I}ol_g54vJRe{ zW8lg8FwPu)0)N|;XW>1#L;0toDSH_l{FJjyWd`LOGcmJro^@aymHSy|)k+gQZ6tb=A&F>e(+*^jP+!_lqZ-!3s9b7eOQq4Gz(#&%Cjttg)7g)BXp4RA{)Y@ zl$TjFi&tKSALuaUO_t2k@Gkl+maV)8Z_onePppuQfCp&__OJd0UZbOx58(k?u6)d< zuqk-I{WLaB`8)hb7vWv=OV|?SpYRM_q5KP;p|#2)1Nwb5;j$ z*DqKD_LzOi_OboS75JJSQ@*12+bci7$Mh}bC-K&Ke|VYxjRn&C<>7Tm@0O3md*#1o zgV;}agM2hjf7VzW-X5Jhryb<22 z^Wm+!k1d3^>LIoW-l`|qVt$IBVoUg){7$wM?>oPnEyEknf6Z#}&hxWuIlc3ot$;7< zL#!6QtQXlT{v>=^SCcO*J4C*$>>>EFda+07P2lW#dfzvD5pVa7WxvI{y%X3g^k#4N z8ok$>y{=}cS?o>ncV+L8zbpF~{;sv`U+P+Q1CGbWd$REg=GnSX_(dO%yeM~B!mVZ4U+I5q5uIW=m)8EX zYyH}fL(rdxt7~i@=*hM}~zafyC+Wz%WY<~v$?2?=Gt$*HHY-(JYYwMip zcY82L3da-0q$^5%%5)t;ua0Xd9;5Z2F%EE>C$1R5PK-L-_RINO262~^5%}fj0s%`> zVg-brY`2t2WkiCty=*am>9>M2*9X|k_p@U_`Fh|_5ueztEJ7%vqePKR|L{c&U;7`W zlUES-70QbwYzyYMVEs2~3SC7j(q~ukET0^|sBZ{%{Y&;9eLCNSwY;bf9!e*KJ8s95 z4cZnWLu4Md&=8zbFK^efoPRk#w}-VYoWkgtTGn>8ewM%K)A`2XTKJ>O29@b$Z0a9L zneyB9mvcz_&y?5CO+)c<$Qu5fFA2SVZZ>=s>{l5m68g0o8_v1Od=l)SL_GOHV!|O# zPPd;j3~wi&gp^DpP;ww5pFP%5ai(xu&-YSvyDrNMFGN;2MM5GH@%v!^mhe@?-- zq{~zt;t7kWr}(4qwzs4a9CC|4=ZoT|0niVB@-pMgaXX#}YWuUra1FIV+kQ)kUVu~X z3icFb2(Uk7)z-I+pNaDWx+z}m-bx#2FYI1weN)R}&!Lbd3}|tqm{(}Fxb?pQIz z+5T`0lC4U>o$|f4KfFf->5NLeeJ-R~aRBb0cMVa7V765Bo90b=rqAnLH{yTSOVb{l zX1xwK`D-s7!Kg26e^Ge)PphsOP_f8JVb!d>hwa?05R z`lh>eY4W!%1%11gp$Lv+gQ*J156%~HnPg``JI`bVcUZ!0zns5iB1arsCZsVsE}Ez0 zg%c|5^PMAH5isZ9^4TAAw5|TXu34fxn2?yqD!BY%8|zQq@sTux8unf z+Wxbxhks5QTimuar4YJoG1`7ROUx9LcEn!)a*PyPoIuE?r04awf6MefkkUwZ>ge<> ze>s2Ja&dgO4sB0fAQ;u8y)au&X^vNz-v4m zcQ)=E+_~1*)ScGXluE$;7de~TLNcD6-*Qw=Onc84MY7d$vm#`q8AWz#Jf?Pb22@BzW(RQ*a+6lI#<;wRZ3*H+w!j#t7 z@>pZb{f+E#EsGCV=eAr{;JpA`3>I^(DGc?4gbRD&HMUE_`I`bx+z)W&>vrLDlmG|Z z?J)A8_~A^zWjcO8$}gOqMc+`qH%ZU?D??>^YBRUW*7@@^WjEhv!`E$o>u~Iw z_H?9os!xql>cHE)N>68I^-7@)u2#9l*z*%`(LSH>0(*UI=^XWON)LS7r04xvx=b(X zliNCfo(7BRB71$xT8E=PUHM^z`%rqP`ZQVZv*8W6tz0uZrQ}OEwZAFNUQf~fwsIW# zP=<~GbsU)eEeQpQQlv{(2~j+*cf*z;Hk5tNLYziErF zj#V}~YT~Bp@Nfy2l&N~#(-qj$p@rEl)O00U_m=k zknrfCahAB4a5ODxA6}fA2cN4_wl1t>BV^J1%#_F(^M>qL3Zd=S-7Lt0A{3*{YE-qnB4- z#`>yD544<( zb?!_WpiUp%xPvUZ#c-V%1|8qQ(Yh+%(sb}({xD`xRRc>aZZxH>Zg^6=Tf67U#?_6{ zNe5ZS7S{1#(omvj(4Vo%Tx$puR*i7wN0qcEGpkWY39N`d|0rrhGC$zTYyr=QXww1X z!=&Vhaj_C3A6No=8SgBe!9n?3CpyD`%yaJ_@tVZ+5=WM4PzT6ICp>2-LhNf&(qi_US+GN+vwKe;Nulqu~fZOmUKA!0W_p;aX zjPe@^M=zsS>~K*JTltRm2Y(;vluwNVEAH;p+idN+8q)&e z?Wuf$artIP=bP7qt&b=nwhn%v%N#mA1H&)vB{pFOwo`&zKOG(pIs{x&3Qw`splvwS zgr^Y3+B}uc*7KlIn-1O>E4W{5Y_yNJiFpQjkz^I^83ggl%Zo4TS?J$AJuD+-)54a; zEPLGMG2R`HYxhlCG`3qOZJyaw#nmB}Yu{GYu-i>(nz4B}&cuoP=@QP%S=xL@%RPh- z=AYe;md5-u85E=9bRjYB@YEI3r&5Zc;U(vc_IN@*TcGWk!Ui4NfrELlpjqE^=ujRQ z11^?Yyi2`*eDmEm;SQh=k{<-UgPuB})#T`GLThwz9-S+BA8joasCP&RjpGXI*ZdPx z5!om(qtKMnwVNe{iz&q$Gm2wE>1v-);=;m1VuQrg$L^`#nkt!E>Xz!$J58#3OjXsC z@^Psuu{Sk!{N!|%;W~z;Wu_W-xyRSe*o=kuPOMYitkntY_7-k08nbnDeq3Ds?b_E` zi}v;H^c*!|Le#D`&rICAo~TA(DYzWkSB&>mohJi(CwL7+VUk;AeB$9Ue!VhZ!nHkA zTRXf_c~5Xb8J~E&jDH5}_`A?LB^Z}4n=;6Xzr-^pE;`6ZrAc4T`ubEar~Pm*NIyQF zC0m<#7mpZbFd7X*Ge@)YO?gSilx?-OExUZSt&J@$8@6}nmW<5O zEu)HZHu8Cc6Rw`K*HuV70vC*gT7e63`VVXz7nJM?As?SBkFoG$$F%oMX)TfbEzs!u zEg={W)u6-qh^>;QBB{`krkXdm7)p+^en*dLe=xi`{#w0rYC+wPQ(0(_k$QXQ{PY6B z2?rr3OL)EB-ZZ;7$3M$FkxtMd>n^ZB`$Yp+5(i{H>~Ya=Wg`CwC64-sc1^J7o#1n< zGeo~Zn_&B#;5F6*B0lCYwpZXI^QpJ)67cbWS3AXT(!LY<04ugm$i*`LDeF!<{BgID zs4v08nScxK6UXQ1_;xoFeaLiYtUri!s5jM5hnv{hLFhs9US-`KrStyQR)_^LnRbBd3#;hfJ|*d$~vW~whZ@Zps5c5q5`f)hC*J zYDw%l^&icdT4z}!$`kFsRJ8wDcE#5I`W&p6<(P3-wwh$GH>+B|HenWr)LA3@Nd3~* zw(2s`M*BJrmc^R z{tkS2r41kJMCbVEqc?3*GxDdACGy97ycZPD#eDPuW?3KdE6_E!IJ@TNP1-^@sgSy^ z;85V$sZ+b8%C_s&$woP)Hl7@vE=7d&(WBGhwWJz&x_jM$15EwSy1S{au4%XRJFVrw zfx4~9qYg6uHB%3bN=X@YyH)vGyLNOGmRFWK`GaK#MTTp{K#*=~;TGs+uOUlBf6Y*Ic^y;mS!R#S^z)y}D)041?N0Bfb^2@HF^iN^8Q`>L4LG z%UWfy3%rAj54f$i;atFpD(uu3;grr1?$lcCrI)RC{rp?uHOkhDw(>z0Jy?^T-p_oS zy*IKHNJ5bEWIaiS2vHJR>ug@qR&;9|=d_ExZtX4dA19$?;m=@2wjL6)i|h%|tAn21 z2H0Cdz-3QhrNK6S+JsX}%W&{LReQulr=T{-^tIUaZy`4Fq z3rmJEhiShB-{a}|@T_G_a6i>>J=WatulH88+#8S>Fe;gS&Wrk_1rZC}`RV(vbbCyp zQSP8W;)*oGh}I%*;nZ3-x(JtWy|wn*Tgzf=O?x=F1hy@#4#0-=qV;gv&q-e{shTumo4eAZ&Rx|l9x?l{fE5U z&OG^dw^_Bux;?Gu%4O?)k_Q_9eEs>7>Q8U?@g%Jtl9X<81&f0y)us&w?%zV@UV|Yu z{nTB1_U+6|1Z#u6FEJOV7O&Vo`EX;=q(wbjHt?A(hxs>ANfU0reLR{2?XesmkD{Dj zmDR)JLi9vP9diJ0e8+{t~*KV{y)V!Mj&}t2uoLteI4V*z0CHJUX~+m zUn`EV8}zvobHpOY4fH<**eD!izD3<MHEMD{vNx$|^$QN~FoG`}RI%KW zQCy5D1|AtVZ}NgD#AK$O?(6p^%$PN7+^Nx-v9Xy0X3dN&De>&(Jz~Sm^qqM#R#?{U zP1!eU;{IF;Eo>+%8`-71Z_$Qn5tAnNm-?-!lc2&!^iiP+>J)HcO(1wUG)ln1i_a)e z@t4tdt<%*gQ`$`@;Lhn_{YD#Nl*sZn;XG{e&YFj|ea$o+Rw`&YVm|9;335zX-ePgi zrfqa{Xd7{sAa5ayv6EtDg0ZKJDoZIGnTg2@20N??HJ&)KoeYzlZ9iO)0{b1){*1=u zY3}Rx+|GQOmjAFfGdemmZt0v>*2DUbi(ieaj~c$Lu*UB|VnL zpsY2?;S&3LWvr|<#=di{8kOh7n3eI#<|5;x_4HPXaEX5w>-92!z=dunTV23q>j`-k z)&>sKCt6II<_Y_yPlzYu-}1U|jQ2G*3fk3Upu}g{_iU5E&K(@c8GcrI2)RKI!^at5mqn{Zz~D+hWMiLu8&rA&9g#h9dgVBsS;dJ}jF?MRf< zPB`$mQ8=W{;f`=KX;&`!qs}0iJ5Qne+qE z9?%b7;k14&;iR{S@+Dl>PtPyHDIMu8NQZDIJP_U{y)!-tU)nlUA(p&nsp6y6$xjt>WXesO3r&Om|ZQ;#`R^o_0B3}cEBl^y% zFaBn)n}DP3Ktn>)n4^8}+_%s)8kIh_{Dd!p$PYdThn?~x8D7HgRr)*NZY0AKoMd>w zbsF6Z3m|rf@V{W(b^xakMpLqzesbUGsbM3-rr!C0DXqD#4&Dfd$8dBZ?#QS#W-2ab)PxD(&&un8MgNSpV*9{MLQJjFoZW18)H0Xdo z2E1VlU*cu2rf#t8|M-K4M#iSc79YCz!l5!tdVHBWMD428YiICojg`%xH^0SpuyXAl zZ7EuSaypNkU@-;9w`T>u-#hx!iJX+=VY#QCiRJ?gK44@P_FMMcwa;4Krco(UiaNsn zNOip5q(wyQGg$Xz;{8+C*i-e*@CZR<-plxGW5GFx*j)k&cX`6Yl zHjgdYWE|MIHC_uM?c=D&wC~q>VNdbw!zW_*v}K1sbrW zf5T52o`N4|qD>}*@rZ0iu~G!5r3ZKwNsE%Nj~WsiBF&^;(7NcK)I*kBRoek;ZH9p} z#}1w!W64d*gRsKcVS**CudG}V#g6&*%neN_^5OkP$E5cs*~XaOW!dr`Q9be&Pmb^# zy?Ja^V#bO@3tQeftWV!b$-N?c5;F;FXbJox-rwcq zwMYJTG@v3cG51SH240Iy{$prVRFtv$>MpiYtH<83A?z_Ni&76qo$oYUgfEfJ@(>mq zBdlYh(m}B)D&~J5h$nhgJw;W0WK{<*Tm;cJeD>5K^M@v5u)Dj5`eb^-8VC#O`rDf)S7juwh>vDx)XrVJ^G3(b zNEnt3suMk7{1iRZqWAR2f*M6#O}_?Q)8QW~mk?jnLd3V~aExGkKAN77iOun&nW=Ry zb1)v;=7QMX_B_m;^*qAZ9CtbXK4!tTyv(oY7?FP=@)G0oL-w%^Gm)AwLuzlC`d=b- z9w_moy`JRdA>=$NgYrh`MSE>2^bewT4tyi{o%UK&_+JoyL%cD5gKva4!h^1lH$waA zcw?lP{^Z&wJWW~8jP^D;)VfU&zK%U_YZH;$sZ9{NMWhyeZ~C)q-k5oq6W-*{Nfcmj zZ}1bV18em8!m<6&a;Nup0^w3*K6<&*6_(TR2_ zHkFIm8G0V-6w_%vk1)zZ%unwr7iBxClgu;qyvW{7X44zC=4Vd>yo7$D7~Z8gI;pQ8v8!#kP1Oe25KiexWtq2({>V z6YV_W+9p_o$W=a)ZGybXpGx+x-X;joVJB>TB~m-J2||lRYDqgUxaKWrgH{Q}xHoTZ zoj1ZY_KH1kO6`<4Xvf4Tb+r*I`^HZVCKdq)2Bu8I@6E|lp}eajYdrDRDy%fY_vg=oyCdHD7K`tQ>l{9z()*E z>Gd{CK7uj@2QgObH6}PX2;jp(9pL(UE(HGzs8$8v{mKxH8L&{90v~&+xyR51i2o#x zSy0+OP{*%Zx}y##?VgD$*Iu>OdR|OKA0hK<<#Lb0zzhI@7iX>Y@$ui$jpgVRpSx(s+!jC zUbw;Eqi2e}^H@xCv z+z4ZJo#t1kb=WNDWd4~JB>NJ5K-5Dk#A3W(6n!R2q1k}JGfKc;aH1c?7jvbF_YZc^ z4`R!ilK8q4{ZMQ{KfHfGSte2J7kVCMo~G)2_NTW2F5G9k30XS~06 z{-VOH^qw8FHYRulnv8Cc`EoSZt^IOdpq@r z_H!>jHavS*0Z+Z_{P64*1E=)K?i-yIv>~`KZQ5H4x+nAv9lfk9w?rKiFm~&_^6_Iv zjCu<7oooF@-Dg|_Z-xZY2Zha1)ge`j2%AQXi~eTWyPeb9X9-GPn{e0 z>lZ(KaQ}%zSf@_wA<*%tiGAnxN(}6lzql}=pfAs=OAHM(sfIlN0Y%ZOIk~hTHmb|= zt*am0o;v5bvdvpJtc#yGvaony*0#*}_4#aQ!=bFCS>faTQ-g*i`LF7g5;x}Jq{s!^ z#wKO)cLOIb%gG;Al$mpqs6l&^KkMM_LYF7IUL^cIKX&kTz|TqEj`*)Qc)M6-r1%wv zoy-K!5tEwSg~ogZ{AflQLQLTd1fy&PN5QvsA(cp@*pz9bKXvR9J4Z3AHu{6@V3C9V zL~KES>e!Wbj$&S@=MhGE5YNIHLz@V9;wx^0^t@>A1M(8#A9B3SQ>jo7^IschVrP?5 z3IhR50~H_M_VLQQ?@|x5m$Z1&rzsZStd7DiE{40MR$7KTj`!V7`)L$O?-&x-UFh6M&Wg+|9ldkK>#A`@J!GjJHo zZQCX=rFvsXs&LHlbWFv*zC3*YGm}*EyHO`R-L&u0R7{%qpE`E(h>ktHEkn|?jR;bW z*_nf5yuH`)-T}ROVje{#bOH^7o<4fOz@nD%f&Tt|MxA^5kGIXA zHgVB$?dz+}4fDp8&g}QYcfUaPZD@FC|B0s$l|%+pdtpc0RZ{`pfjUi5 zW>I?$;uyKM_L5G@QizbvCDl{1N~6I%WrM|a>!vrDI~ObDaExWn&Ezebkq>TqVJfW0 zv{1um|90=b7w3qk;!`JRFt>x+JK-Q!T8Ax{OIYXyO0Xa z!};BNS(5fZKuo7D(f+;s#c~ABdrEIyR`blcGfysFx-%nV=hC~im$gr7M`R6-L?g`@ zumKTl0ry0zeu7oI5Dyu3C(ZOVQ3Jz1GDEOA(iM~Vgfxe{ocgN)<{ix0d`#X7Pt z_A8k&$>`gb+_`<*(jaczwj`I6E1Bn*`jO}bLsnW!9xY_Eyt*kXR%Da_Cl;O+RaKK; zK%Fx>Wx26BymDUt?6eW(-a($_BTMHc&Zvsq9GjUjCp|H}XI*w~`uwysa(uO3)v7tY zuNxA4dI*c=BadtO$F*wnWeNknOomOPFm^&acpSgUKfNpKWG252r4$a&6(>%ZLw@*z zG=d7e(RGxOrK~C&Fb(EiNo9rtier=~`8GV^#O*HH*tUMq19sjq(_?xMq6K>W1v{_~+^qyJg(Z_xB46jkM=Z^8su7GDAa6?-VZUbSp6u8AXp(e~lI%dE~M+|7%@aiU! z@{}04k0=~b=nhNxaYG4O%>XI0A59W7HD3&})p z4NI)OmBK<|huT{sI@*W)-eoJ9k}_r`s+jUbBbeasFe{_#H#4Y#^rkWy4KvPZRkj8g zu!jV9t38JMM(CxHs|~AS(8>>W)3ZrwPa+oMx1H3IOnw;ufNWgmKpb!f$vlpzUR}0 zW;{pmrV8zGKHYlWM7yArpI$&7dJIU;MBStrlK(d5Xf}K83gZHvT9lu&z*J-Se#PqC zkwpcoSJ-kT%NgY&WP>+_4M*hVfJ3wKcEHK1B;)fm>;xcd)GA=N#Pnwa;GPOj(YseM zuwcRoM=MPix=JfA3pU%?jl!WefR8%HK3aoDKbR@T_@ohZ}R)mGJtq}B#`ZWDU<1l3$IQ4mG;9yYcaWR7Xk+*@#RSF=s zX`2jn;Q>29xCbV)l>CBZx&0+QH$NE@9VyAi`lcgWFtKsfyshcrR?KIr>JgNY)+-|> zHe=Gm7cNfAijB*P7&|OoNVbToRvQ^mnLLb$hoP(W97E> z|M=rOi*MVoY(xL4Rr_-A5%T!daX2wJT{7YZt1EwJKXnoJLm_JbjZvD+7o8@uQLj5)h^e@bzJ z4VRVojX#S1gke2+*t&GXW!6voL!0tpJ1irtT9;k}9qbathHQ@B1&vBeod}n;m8}CSpC}Jj$zlg~unp>^)x!ry zU`MoP+-%4049+ff#LuzEKLabkC2Bis9`>!8XcaIU+?c%NX!EZHJKTf})`~LP+5c~;Lg3~_3|pO&|aB3Fna0IX;Tn;9A-h{ zgK^-4qPAhEs-w1|vSA1iQoCck+6`f-Ys!*2@Ej&8pS!qWStW^{*zSxmTace38zDU} zF9qH#NAb%zciEF&YFFm{?)CG7SFP&&Q=OX7L#?SPZs<_IpF>n3u@OAPhxIHQEn9VT`4sn{ z-sZ{U#?mf0v@Sl{-(qfD?%lgxc(liwg*uVVzs>LE#~6F;w>{P@xG|wEUhDht zJ*1iDTEp24cnyK8lv~KN$Gmpx0oHrvd+$AW|7X-I+8&mQlcW(|ituP3bA85?w?}Gw z)*s%sNA#M4T~hvnE14nC#9CNL=9ITbnf%us*}hx$vxtFy-X+H9Y#4q1XevRk+<|@% zM|%ew8x*tJi+zsYWDok@Z~*Ik?(mk)7hD|X+-`BveH2e`PFpHGyK+#jXIEcKD+W)5 z4Y@|AYZqmdrXjxmp)Z#%{qiB!m6?}*@$iT5yz}8lZ@>MI`Lp5a21RN{b@en-H0N?Q zG$A1hf;$L4CO$rjU^FvL>9~n`ympznZ_?h@e*2pC)uu9yxnnz~V%5IUzOl|9yKvzA zB@3hGPnnpwF^7g*XqSsa>(OW0CrVa%`_iPPs(#*Ui)u4!YBE+8t@ZJR zzJZy{&wF|Cvh<}(Ganh544+ykBYRpCkFdmr^NfPC7?#W%F+QmG$&&%W6MT{;`}$5E27Qgxe;)6# zeDkO$p1x4HZAnTh(|)>Cm6BE)pUl5Xj<=+&*1m0?m16-0q^Ug%O|1)gW9k0BP{Qrn zS)6FtkdR8&_uy{m!qA5cHc#2QwJ?tyz<@+i)^=lc?e^8$-?Ynz<}4n(IW~FDCs+PH zJ(12ktAK@NB`hq&bFqFN4GRnCTYb07)Jdjk9i~q8K)9jbrcM2{W{Rygh}iHL5#z*y zZN7REvmes=J#C&mtwV=tlg&swy<^AeQ#+^)oBG{DZ&BilK8W{k4g0(N+}PN~am`SakJ?Tj)4oIs!eX!6Im4R|HQOhgBZX z5_p2Fk@Z{^%n;hMXhP!4IKm_^<_=wOyNy0h@6V2V)o2xrR&;N6gqkK7A2O#a+QQ zZRqji$N7`%*MD~Kpyt`sBxV%B6RC%w3PiIC-m;`c)%W|3gD0X>+rTSshVZzo1l*}@ z0I$%!h4bLcX;KPov(pXSgtvcEMJ|UZqXi|HVrh?h}Bka<7Uv%8H_?^`%Qfd z+0Cc1&ZvM&NK=VW-p9-ecsbzZo8JK#>0$lmeT4NpO6XbS<+>5IC7uxN>BT~r7n>gO zgZ8~a`|d~htrao1<_dMc_9Jm2w#(2Fb{qIdrn4ZPrbVd7*)FvY@oNejD#9RAB9tM* zXw6rBNeg0$Ep-$P8!E_a7yQDwmv(N7(HM^NOXT`qjf#~rgoDo*x0-&9a2l22h8`*q z1s|$W0i& z;7Tlz@@L|gOz4&so0Ocjllq0YK zL|r3r;+ftSe39U}59;vu>>7$AK0I9l+lxI1`>ijv$sM}c==NgQ=pG!TYdP{JUFt4S zhrJAhIxwP8oCSj3aV?89Evku$)sJwLMVgkZ2fXuan5or5=BC(?n8CV9^8Qpv*l0tw z%#5{vk&666kV=GK7XB5)*Y6|W4N(^PZa__Sl!?$qiYJJx9lh;0N{i=mVk2%lM)XC_c5mm|JC!+x#d+%^kS&{?U%yu}Uv$ z3>^!n+g!3!uC0g7JWY90@v&p$h@YnHQQiWtn}C*i39G&RaLz4O@pQQn%z=!N;f@t1 zx%gx=xa(WIomd1!NiQJ}BaN7|Bxh&4kMA%;v{OwPS@G!|jBw3x+jh9A!K@k$Zdvgu zIc_FqFmK1QElKyBOa4FaPC;|z@9V5&O4cOpsp@8H*?XV%-qb3yeVfUX5^?{GxLfL=VzyOHJ<;4{I~)xU-q2XYItR6ieOC4ws-Kl6_$0~G z#u?*CYYC6++t&cEl(I<`CD==8=o?l_;PT3l5Y&aUfd2h@LIP%ip;SBO9}yZz4Z!B;TAJEY)J2dq}*)JjP8Tu+}s0)yAO`+oR>ePd+&glzC8m1vC0_Oy*Ded z^oZ%+GoV*5zahardl7YHt8>`PraZ_=@1U~P1d;WHga=657-$hmXXJqqjq|_T^}zU< zv&Lo@zxK`l$sFRaq5jnJGo}-%i!3sc#|2CfZFZj7XBReK$5A?ntanT{uAUaUzl~@) z*nx&C&lmLFe8gcZ4N8`3P*g{r#Y}>9~ z+m>tJX`g9dtlzq;ZsntF>Zz6|{fG5g#XjK4L#Ga`tv#i+{8iRLO?Rq;YIM}$EriTK z9sYq)&Xg)`7JnO3P#@3(w5?dVlHe)L6J(F~k&Bu>bTrJ-Ud4U77lxFl$0R3C_n~#n z$puvv`?OhR({irHWEmEx#iv-B2OG{q@LW-M?e6Whm`s#PoZRIF8K!HiQXo%a@rJcN zx+~rFlmKsv41V?c3Zr7IwR_TFY(z zJ^v>+z!&=ymA3@p@KmA!oY3ktpTKKlgc3xw122!gj`;-esi0HHojge$pgx0Mb+W2e z@TXf+`O|8~x^>#sb?YczlJ$FY0_5BPI*%)TsKK|JPf#!#$IsUg9T$onkA{%o&@f>O z3iS&%m~mp1cXZIuSWj5=L)D9qv+VD-UY*{3@I2=Jt2#&fnpu(8-(i1 znvVa$VS>Wo;>M?N2uin6!! z&!)62y^h_)#v^E5U-BdMUQY)M?+j3 z3v$@3@oVX^EmBw5(WL7N>;WK}nUk9WBM)|BGPezEfc7u6t1&ITFcq~hJhf_j?t@Sj zcCNCk3fa+673L&_R0i%`*^)x4LS|f2ayFd^Hw$xG5hxS3lWEdRCN{(pO}8|l1ev7- zVh%DxhcE{T(_M6snTJo_l!IdT_pYt(mXBE$y{`9mRJ9j2!EqZz~evP>}KP$O`=r9|K%M@T@q+KYbDy(cO>9YHL z@9=&ZuUt#wllh%3<6BN@&yl5?Q_r*M==oOhkM}&?{dwlYBKberB<)m75ACh<=SBWl zWt{>YQO1w<0-I7%rG2Zs??_}lwSTBfTTZr&=Xa_HpKXIp+t@~fb8J^!?6Hq8?tVIf z`DmXRvVg}aHp$?19&H{BbP`P?$zy5>)OehcB6z=#kcIq&a=){(l5IN>P}IjiJ3K3$ z{p(+bnAL}OtTY=}azjk+U8}FXf_%h0h!&t-J9aJ4uH#7!uVo{eiAppip+w9#OUT}b z1#%kSvP2))d0cnAg`T#-n{KLEHc>i?M(qifxUrI=AZt=k8|xPka0%K6+=VJ zHS*_1*~VPcNNCj8z%$J}&(KHA?F5fJI^dPEeO$34UDg;J7E2W& z_Zc87-H&`srX3X(ve~l2vv97kwwtdzv4KsVas2YzEOunT0RQgMhUhg%w%c2B&9zrO zR_s!Tt!AUOv#XmQ$itSM;O4n!guc{0wNXy7scBLXKC45+* zx@2d|OJOlvYSRuL&z-Y&7~w>+>>KcQnaNc2O6^@`yEP#EZ~9MX$L*47K;yJM)h92A(lGnXkuf*WtrJfDUU3+&=_rgt{9Stj0H7kW1rZa8RayL^A zSF=*J4%1tHC|#6D{AVCOzCiDHq*Gm|c?QKYLA#y|TQ5UYc0pUl;y*ibL|b{qyIW)x zdw;$9adX5@EreIFJJ~6166FEEG4?ikOXQJGq>ojpkXSD-izUQtX6r|fUh?+`qdeSu z#w7F0TG^bZo|?waYh`B+95{m(>aPkv6SQ&{y_NO+(1w7tjRE=~f7N$^HRRfKV9IK= zZ}>>YG`64 z=-QAxC?(zmd4-!(ZktoNHlU{|Z*k~U_ri5ArQ zkIpNdhD3%zBL@}^6UJCW((vKwVm}2pCTsVO8ROo)Q(UH7udcD7Cf`o|5>5WSt0x67 zSY8o4ZD~w=>d?3~S@}_h(#4elQubj6Sv7YI>(9B;@p1wryo#MiTn4%=!)XCa!Th%hly5SBDs9aySRX ziKATQS*}~>ZAiu;GWbhfKYQ0MIFL7y^rYtG49}9jBiV(y#gI$*el~z4DdWyA(TgVC z!7^BA&9tS_i?^q*P7RtlHx&IBU-nUpc5MyZjx15TQ#K7+x*=x=z0Y+VGz$1vV@$^B zIz<2uo5ksp*tHTO7If?iv+y@Hxwzj7qbplex;?b#m}x^smidNEDyf{?0V{#3dH#Zu z@}SaavZTu{(5XP)}-$hqq+=dPoV$p z@f#Ib%Ych$a}l2~r1;MWxGZ(EJ)bj*^l6th&9Uc$)1{qiO7UerXOyRrA9x4GKl!y; zX#A7sq>~kh#+ewT;JRe%60S@7vyC8qJS&FQ)gGmTMvOV>1;c5M;fCD$nNd;Mh19nt z`JsWiBj7@fv6-1WD!~{w_O`5b`-?Y?m^j_1kN51U17^&Mo>v>wkTRlVbHU7v#{AJ~ zW#t*UiJ3`PpCb%s1H*5Oi{+V0gkfL%LB8N0Hgv)<9fary`OXesSH}w9STz&dFEH0; zZJvGGZ3QDRHycgKSyR|ccV-tE7G*BY$-MDOkU=|v5VtxOH7PgTAZD;f*S`W zU8}Lv0W2G`XL*ybipv&;WkdEX&RaU_6EXR|1G#O)=^okej=pk*uIw7@V>D|cqKM|{<*e@f6qfV#&{3#j;mYs7DnAlwo|P}Totw*VYldO zPqC7J-QvL-zW730%)e(l$B)0=kq{Wnvu5Lb`L0f0M_tj2cCRDXBcdJdXy|7+V(6wo zHfhx&VZ<<0*EUqohvzJ;8){}=ZVp!S(YQRVWJCcq^F9`h?q0m?vGZLvZr#CrS(lbY zJGOLw{soWqtH;)t!aB`q;+mG-^%5A9F;lQYxOLaLVa-&yq0lKRc=WcwMUT;WU9 zD~2#0^)<<$Q4IPz;7RNrzTR*Tq>L!E>qQZQ_dH{l;Ao_1Qm>$8%veS708fgAQsI2h zV?(sdY)H#v@>?xBp?`WEgR9Ruu@W)7)4k?g*9=v^*krvlo1dtf`qLA{n`5L>k<5|mdGqU zL&N#0*Uq=f6~|yW=L$ZbD9*mF1RS`bG|XIr{|^*!QFA&cRAPaZA9+GeC9r#pR)+NW z^~!iL#;dSq;e<6#V3Beytz|gpe^#8Mz?5{u=WLkq9pS@48^efO`I^nY?QHZPQdl^p zxN~R2=OZKhN5RF4C|%koA-Mk)STbdq`g>MmOr=vmO38vZbSSz816V9tnjqjG>EP3` zOScZ010mouHj_Tgv(?|LY&?(2^NzE4dt2hX7gf?IngpM-wZ<>OowATO=tKV2=>yK3 z(YPmFSn){Bg;f`f>_)YnbK?TA=Q@Yg+ z-UpzGF>hQrW`y^_)v1Q_*GeSKuuh`417O6?RU{ z;`yQ%BOq&E!nzh_GIr4(8?!s!`h@t_rvQJ%DgGSm7!m&mz_;1sW3_W9#s0T|(mXE9 ztlvz~F959Sdkzg320$^Ul#DfMWdzZF)A8prBmp0X;83`yjE*0d^SRM`O9_81)y$Mj*vD5x!`h z%c3Nbwy4dpDrbec67b(sJVz@4ULoog0=Pe|$4bn2+Q+n37Yb;AQ|vVBU$Iult&nuk zue3q~?W7cf2~HFds%~7I7qEKDWw~X@F~{1;)y{&xxK07ID$;HakGm{}3_k9<211l* zeF-=`Vk8+rPz7(=L-l(e&i-gxgok1he-hVEOx{qR-f|K|}bE=v`4g`gQZ{hqI&`8e=RWeJx)7eS8OWiwy~l ziEe1LSo(&>`$YKp4)96{@4I~n8{Eqh5**!Y2vmS|QGq@_frIM@4q}74CjDSptt2IH zJa8;HdS1C#&w0H%1rLdGa3Af}sneD&jUEX4OM`cFv||kL4>aoI4^fHZWJi{?4U6$` zLEC=@{4nh&lYI|(F7>^2f;N*47TD;xFyh&w*7E%QNpENu14ah+DhL~%dSVA*^5b)6 zLoHWh(~RX;FKnx&R!e{$xCtB)^P{x&#E9J=L<&OHqJ#WRZ1SAj60x;wHwoKnMqzne z(||Rk&LxzN7&u`1jKMK+sgZ`g*EZ!Z%|cBGvz=npfisZz!&cN!mLxbE#w@r;J*e;! z_H$9}ZW#L>c!{D*4RGY64gHgRJ36K{?#Nx}67G^~;Ls)G0p;Tgp6dqn5Hf zA2r(I6)npnT&LW1kMk1wI zir~c5S0?h|)Z;H_{p~)Si;atrkBq;Z?Xj*zohQN%d#Gq%%HPBqzqYk5aI(j4R8EUl zNABz^^5BxWW5=i2`n}$APVrTL-vYUc>a1h$G&gal*zn$YTl8H8d&l%^$ibLX z(}RqVn2kZEUpxHJ)cg7Ge`K8utRqeI@H;C}4;lUqnM6tVV(K2Z=GP4WZl20W@~&X7 zBBxP8KI>}^3OD)~EkS;LD|o}5y!uYw(6ac>mR)zYEaty@`rNsv4VTWHyM%lw$A?9Z z=!<-4M@)UV`9U>noVn%Ctb|==ms^ayOarpm;bbjfmyFwKKF9{9;7}07AJtB?@n(%F z5A&ZU^G~m|yw>vjD-?SL^uj8s7p6na^D&xz{ETWmh9k#zkOkm4iK5vBd09RBc75e> ztWn?pkm}YwBAC6t#lK?XwxmhD2K!D*-FRr$)?d}_kDM|)#xiGad}d-|=ENg=M@;HD zu*W3J%9@$M0S(kgm@4~XJoF{HH^*9Haf8cSe9S($~J!gb7~|Gl0^4v3vIxu{p=&|f|9;LOMNPwVW~*D|0u$3J66YQqZez)pL+ zg!t66G*)4Lk-X3PjnUm$jZrAZGM~@4iW%%h>qPdjeYD{%0@mGjk6x$o2Fpg4@aV1J zov?y_i8xO>Y~n$l{GOJl`O~};i&?K>Qlt?PiM4my&xu5ZI4;hvSizV?)+vv!{<7b_KVVLmFOEi21)9qEyuDenx}EvXy8NR=HF=H zUescA5&*=b0FLwNQ0uU8e7WOCMc#?}Uhb-Q1#O_XQy_2_L+`T&)(MT ztA3R`C&}%azu_Zu@~qru56P*iMZu}}p$l;y68nQrYY|j?!1wF$i`2!~zf;XW#XQ>+ z_(33$LLfRD)?i5Ubl#EK6z*Bcj&l~5lrYKbq^HO6jvi`|e_?!lxK<7S;%M?bQ755|A^7yA4Qd$0Vp-2@9cT!c;@^I_oCen{pQO z`bix=jHEZ}bwdey-H%EHJGYk#uC2d8@2@NAjXrhs+PuY!wfmJ+@V({omfH&0fVwWPL)K6k+Z`m#9XMAXd*gBs{hR7^nQtvW_+ibjklLi$u$CWfXj8E@P$}NM3%l zrW@00LxM#vUyzn%U%&7bhiTCIg?-%#a<@06aCYSQK1?X=1R1pR^D_%z4rM{Ub2IW5 zrxTo+n@*nIK?g4w_@1-HV+?p>YH?N(Exj;4(zEVBukn-nq&5u8N*sjtF^GlI@OKuuy} zVq&B1=ZImyzrGHG^T+flT&Ry!3)qZe$UhA=U|pw7U*0z)BmfQ}zMY4K=4Ns}ea75U zf#CmZ?n~gRx~{$N-scWZsDMlgGIQaAOqUB><{1F_0O)4s21n!eZOy_d9U6Rq6C_h0**JAh>9@ArMb--lj?efF@< z-fOS5_L?@YX$qx0l&r7>Iwfg%?sN~!Snn8bA3r~z@EWA~C@A*IP90HIHe;@(_tC6b zGgzzN1mhf2YHIZKm?Yq9k<xZcjcTrmLUM+A*r1&hRg>oyT@nu#RXJ_uk~#gEC4 zNrjS}G|JY%g7~qK>^-UP8f&&S(B5CIc~1MeE{<9(LhTe5&a^+XHH?zYTq>3i^5f4T zN!dZEh>P}u7O|IM3!SFH*)P{ffr=?$l%O)$cI1@9OtZ}={xL^>o}H8;))G?S^9?b^exJ z?P8C2v459C=+h-vcgbaBKjx_-1N3_MfxMwF*V^yK(n$-&-Xed@8=#SXs=tJ~hwK?? z6dNyj5xb=6Q5~iCErY=ldq>h`Ze6x~OS+PGCu7S)w4C$ z+p+%o+2a?N>|D1gKIPcGUw^P6H6b?nz-PbwWN)%qK`~2$hW{9|MtZ#a0*?ipf`UR* zDa!8&3OBGmY?vbR+~C?xkWa4zYX;YDn@?Dyl#-^6#>AO_HkB%UkX~CE5x4r;`;gix z(m~Wlw83nJ*ZfUHI-r%*Mv)Gp6-8N~mEc8RIHD|W2>k+$MNt+o;JA!w;;#xl1C2>f zzrat@H#o+|J)MKbMifP%L?yRj(bwGyN(61iW)C&!;vW|Bhkcn2}d9Ba@i`93uHX;_|Rho0ro^mk^ zZvPbQX;@J_uVse>_Lyj2tD{58qZJkHu$IC~t>BMXOHu!?+D+QmLBSOazshc5Jh2nO z|29JUOH_Dogz81@<9bn@MeN2bj#C^F5K{5#g*lRKeQY<_C_JURj@D-|_K71gWI#qk zaX#@W`s5cE=W!hd;@NI%cE5uH^ryWMYutqJid$K{{M zZ(K-8qBjz{Kgdja()xk&=Rp^Uqcus2xh{G{mXxR}5rY%rX6zG+I>7K-MOmd zZy@Fg7GbM%RUH^(;5nL~XeiIJvL4R*Ihwab_DJ*&ee(16b>MmI6%ARYQ6JLZ7DxYi z>^RF)ph11o$BUh))E`K3RH;$yMLb8l0hGt&G9KMDfbsC$W&K^orRPd}7d#kZd|1To zvoh4^uCp^l>jASgWcz`$MOG8nw+9~`BQl4GIoqesnFDt0X6Be{ru!eYwE=drZ4N5k zuYX!?N9AN~QQ}8#2ez2&kD)b&*JizQzmYvg*>9j@&izKwCZaZ? zP3npB5dS5Q1F`EU+CcHn}mlHLx}P+gcMgi)fQ_kdsQtXL@lGGp3l` zpIb0&TaWHo*5Z5DfpZf9zYIS?=ktx#+K$D%$&_u22XqsqR*eiTje-ADk)->7*8jCc zdLE-vLjIO)E_#8#CHn*6YX8qr^Yx)>NY62FUFuaC71B6*Ra?9`R15B=^a(gt0*+i2 z4n*MyI1s|{ARN*Kjx(27B{%*HC;vb!#z_s)r@8%O5NShRPRcs{JMP&n0H0`vvT}~T z99*IRxQH{F;ztOjh2!`|Vk0yLYNQ(3L&m{_Fce6NQ;#CeS%hS#-YpPbJ!=Hw&}Ov+ zRmI_G6P1&g1d})0jE~f^t+L)k%!6%X%y(R&yK%Ay=ix=hf z1&@v>kBl^h#*9izb{mb`T*wqHs84|%c{mtnIFAqng4=^nrC~JESOYhoK&%4*{aDg5n=H)hmY39 zhTG{CWOYdsfOsjKgnXFKze1(V{Ax_N5kIu0b-}wH73DD85d`(F2VFV|g z*j;Fmm_7S~gT`V4C2z@7ks8P~6bZ6-pWH2u4btwDr;x!5u4j|d3p5atW$N&1s;b`<4zos>ve69wIpt_Z(GL4kxVQS1kjESN#3NhIDC75-CBdj!lxIOY5+~ zt%c-x6PUjO`o7-)%S8UnnNFRnOIQtVuqKU!njHng9`a|dIO88Or()T1685-u?XrTZ zaQ`PWGB^%hIE*D_B7dgubW#T{&(3P=$$aC3H?q6erRU3x-A~Qw{I@61FGL~)WYEk_ z0u0bh@#mq59jn~S6^xXJAQy@!>rYN1xImx`xs)V0Pf zug%%GHo0X*lwOE&2Se_1Z0D0A=;;fWIxy%dQAtDlbiX^O*H<13ZKa|yP&ZGQX zOrNv4k$uw8R`RxVH=$#>v9i>wrNdlvZ;t-rJ&`dG@hPv`}<%(@69 zp!T4k1#ZxzkL>MRxs`88LPR-G+g?$2N${@yL?UFFJD6+u$Zv_ zR3KQ5K8z961qGt7DY zG9tq;z1Z#06)08~A2Xpy%0&2d!`!4$%q*>9XrU6lH=F%idfG{3CZ!?c;!yc*x&^km<$@$QctoBH(IYu0omgs*vS zZ|cf|Q*XC@@Tc*;EKc}Sa^t9k;8;`@A~jrGiPmRFP|}M?zG6(_NIx` zD{F&%!&hu>Gx-Hh^vihibb?oqH2Ql~!kQOi%@=C^4Ko4@Vz5^s8?R(1Tfo28{6*SM z<>ZmEU@!lAFGaBpSq^GtLH!%jcBCHlhbe*Tb)mh7OZzUh{ZQowS{dD$0V}giv-SVo z>X285;;8do>$r=bUyVCjKUUXg@!aYL*hUenKg_R(4a6JaPdE^uj+fQBM<(b z75}d;cwgf8!3s!nkU&p?5>WPHy9I(=%7xij$Y+D^M*Q9C)hrVC4nxveyB4yJyOimcS;8u>l)d%+LrjLNsYb_dAth=T3O$6dxx$izm^$_Y`C}H?#RB9{*a;T2l?BPa-zxu}bS=%S zS(+*R2U?5)H?ctdjNOMeUOGU*PRj2x%O;jAzXPT2pLt?$=f#Viy>BlOx5p2*mdUNs zTe>b9dnRm13SSF$|Ds!(zvHC*H?ZOE-rjp1`tExj7IGoRbO|=Jrn(8ee~LHbr`FJXXSgy&!x6AtJ;2jBA9V2DL1fxUnxT5YF zM`s(AIgqP`VYFlbe=ry*ycW)!+&#@26C5}!uQWdgn(`+>MwnsmvGe=s5aVmgjEaf& z+JjqUSkrcSy@s>c6x5Xv8mbfro|lF(Q|y>k}UsuEAt}9dV1spel9-& zf{nY}0NJCEw;zN|0ZmV!DQt@%^BMrz2rVC*oE#e%IKn5xT98MI`vWBRY&~>*52Pv| zQ@YU<v87pl9;1u}DQtv)e4sfsV^?YR+QOdo>vqhjP8>ITamvKeW5=dW zxFf=Wxh7k#<(FYQRv;sL7mkH+wE!^i??VDo%nuo{)x`EmBy$i~Wi)3Sp1|C2A5&Ij z3;-Cm6;o(UiwT}M98;JF)_4Ik$P9bruMk&UOH-3Qp{mtBHD9F8$@BLblTdDzZ>8sm zIn1h}In?bHbC%uz1y+;teA8-vGb9iX2LSC!7W&_P11QG_LVQd9llD*F2*_ZFSru_# zx|#2<@Wfa?1Z3nth?%2F!W<0=+0V3+yCo%dV$ew6%v5zX!Kk#`9IF`-Eml+R*XG$* zGe1@SYC-~5Gjk`cW_QQB9TioM)wGVk!(tHJ4Uco=74yWL=>%Odf;bt>;`_#+{Xw^b z_6KYCe)9hNpU{VDOMl^d$nX!;?hNb=dN*)ip!An_UwP$S`ap(27E%6%<|g8R_lZ;2 zKDHM>AzNzC@WU8WPktl07IJgP3Wy)o@6xHW^Z%@W2#p zW-67<%8!hP8Y;WW9;%u^P8K` z{ug~77)8l!N^LMJEpxkV%lcSwO9&#R<9 zwgNNed|tJ-xn{ot>7e!saQo{Hu?g)8SR{Gj&DjjK2c^d9g$J3}8U+kG-KyDIkz0=D znPA$h`KMS@%}lYDTSAYAD(gs3rN3yt5^JbF-5hc_L|HdHC2MDb_IWz{IDK=#sOdns z;%tb=+{vEdo|CJWcxsUPOESzz`O&#k-5bJkqH(OmNz;@S(Wz@45z|x?Sh;jb?2^UfY@cwQ z?LOZU~SzfrIed=W5elv4AbgfYjEwU7+W=@(t&tu})%6U8AtKacSL!Q<4 zBL8_>#`J?_Iq@|AV$MjvFJ%inH));{`Zh5qLhF#Dmfsh81S)?)l;^7DHfRdSH@j80 z1RNe-iMg;B<08>u5X-ktKEhrD(@m9=lfX^ny~XCrTCAdo}RTrCv~u8ArJSd#~mdD(}C8cM>)Zbq)^q z0}j-mNO<8g2Z#G%(?WUBpgB0)|EegbSRPksE*ZtBD0PMAlIo>G5k9WaT+;j(W>kyV zYb_$iZ-A!xKwAYa5ACIrsR0>qj4qi#;j^fORsv@fgrWF5U`%MJmm|C~G?YDk_Vnqq zr%#+Xy>rv1oqM)yiLFgYg;YEq7sG&Iais2GEGi_-!;Aik4AE*YU%7e(|1T%+IdXjO z?vqFM)UXQ?Nh6JJeqs8NhG2iUq{I;+rGAl5|IyvUE66v1_H8q_B7b6q@Q4Twho4?J z?$~%%zAGK*VCRNfm}Eg{M5BReWCN>u;d7qI6F#?j*U$>g*M7yG z)aTM$U7VA(Br~q0I7WL-N?MSbHs7LMYDkNYN&`tHTIXmx z)8b7jUf~oI1(tz$ZNPpXK?oF7tPu@nZFjK0PB9)UiED=Nd{#_!p%ZlBkRu%M!B z?|ielz#}8Hc#g+}fUR4@Qo?t((`-$Ft>HY*J~#u3Q#%eixN3zaNxTEzDMEP#^_DH< zs1Q!^^ne5v;SuNqla6?R955SNwq-!cV?erZ{F^d)YAzHDS}88Qea?b#yaei&SyFKSEHdVduGH*p9sHj*QAt^L~ijvLq zL%}7*8w)PksFr^!xS^;|5r-1hH!Ahf?kUY7mX7{JJBm4!s2x2=JMsJpcK?C#AR(j@ zEgw8uo0Dm4j=-DDh}bodFd*q#aGNY4E!%Za_@*+1oJcIUboyl4 zMMvGqv&-kgqreJGIGo}t2Hn7i{2cYd|0qi1tMTH8-+^LFl;Y!x1D3UEpqh#l;#N)cTEHOzofaX);A64|B~i+ zYX7KD@v$ndi~0)wIonYtTNT$uI|cv5c$9AknXk1*DN`e3H;8*8iT0wL;^;~99qMU* zx9&HOqU0*cNpc--i7v#=D9eO|Nc7{u%u+^_!kT~uO|j5#4x-}?x~XsnqB(l3G|^3{ z9q@+`CP9^y%MM+t354igw9X3~aG%)=qpK4ZE;Y693R`FnEGzUZ zHpS#cE)Of7Jlfl9(?j$3R_9gw1o$p54_^>ky)2HuGbMJ?`gNvBr6qCGE=@};!aUOX zbFmbNGcJ6-=PGAZ(vWS%N!EY;6KsOGHbk;0mI!$6^Bq_Zh;OSI^r2pCG21Fn;%nsX zx~qHl{u9}e5PPd(r&TWuPpTu${<+-8Hr?S%o0@G$fQ_NZ$aI?gFr+Qu=H$^F+W)oI zU97(-5q=mrn*c*T;Kc%i)Lxhs(Hqo=6-B*8 zdmhemKo(*_%Emu>wpVZ*-O)!6oTRiTr|{vtY;rN;)3hwYcX>|dN=Oh)JM6&O(h58R zmoLvLY9z5@n){A}`)~*t(ZBwYU3+#JXUvI?nO8k2HzPe~>0i5ziEH-F>)tl^a92-y ze$hjVmKPVK=VUDVw4*o!?@I>@0il}E76%-Gv=6?6xS7HN6Ls>Eh6uBw18Db#0SDAi}*mg(0s_? zKotu~F)ZQ&={O`J17pnIBMj^7$AJ7POgaZa`xX_T+5K~*Q^YIo6 z28^$)%LtxTSrJIlfc1|bomm?>C;sHy$p{4`sQ8b$yA&rVEOZvl?7TcrilY^zIHSAJ zXpAE57$XgEFfbZHLF_4cHs2?QB11zx`-9xtC3*9|clX*-thV7$5;9E?IPXZk7Uy@u z-yt&=vNNX#B`6#!A0hhk#H_VJON4nQOB7j7?taP}KGlBK)pg%X9ZlP=WO;NMZHVNK za3lzJ=1jChz%J}M9H8WP%=wT1I4#e#XH0YgG&sSdBVVHOu397BHG06iB2|kg&IHcU zNI5*@=$)t7(bGJsB7l-K2AqCae)z%hU6VBGbde{lI0t^vJu{P^!)w zN)ITdhBwr@-ugVXF7BCORuQ8tY6}^bYUADqw5NR%1o;mu>8QV5vtG!Bo+!tv*n4N& zmykbb5Tp;++P#n>Y3F*P+*#YedNm!QTtIF><}Lv_Jhl68Fp7*;pn<=PfSo+Jhbz!P zW8~WZCCzI}|0s9u{}So&gpAP2e+dd;_naAY=PcI5X!o3Pn6KbD)2w*Th^tSyZjJDq zxsZ{LTueAsm=Pf1falEgH{ZKHbqLQHPtuwRt*pa$Msg@N)pKggk&PAI zGmy;^l4Sghmh8^XqEanvQ#z?|D*R`@3~yO7t94OfMN_gTLP3wlXO*|FDoITS7EZ;E zBd-^ulVdn;CnkboFc^tl8yLwrie{G`I(Hg!48pD|D(Lzotu(b}j}BKwrt+;!e)rfO z19698`^Iz~ik`jDDu0k&oLA8NLNzjvu^t|}cf0K)-S#7~OBT)WI|KsFG+Ch6KLOv5 zbb&#f=9I%LG1pLv;|VsvYKYUFIHKwoE+!b*dhjVMM=*Zn#>iQ^AN+-FWJii;)3XJ` zr8?Syb_IPijrupyzFZu9 zLqni22e$^>HbbqBso;h(R-9#w3kmk~3e=Yw%F?3Z0t0;~`sgmtD)$TV4TzpU*)Q17 z2zY{^GbwlOKIlNAg>J+X3vdUL(_MffVoEc6SwYtETC zvo0`XY-Hegi~qQZiNVF=!=fT)l$X!&@E-41JUt+Ij5RE|i7=@Q67C&}*^{1Au~CH$ zxQ3FUYXD!b>q~G35^V&&Lh3~(uM7OHz^x|i^7ml99jEXb@EFBTi!~Nkv$3LwR-I;+ zjP!c1)2IDI7maD}k*?dLeeX|Sk()^vTG#(2|1mgfkh)L#Sm7b(ffTnuPfId#@x!7C z?_JCe>pi*$M;6YHLa61XMa8A`$02f_;(U+W+FeW82o}e(k3SQF^d|KYM04c=pWV`-^nK3J z_gN7kru0pGOX>S8^66c-Ln1Um1PO9a&9~11<(?9KJ@B**SsK6bDLmqfT%IDPNxY-l zGw8uG^{I*QMSV&!CpLA~O@sjsI4^1bF3JbZI*%$EV%9Nsrt__If429|b2M*j$d4Dj zNR7Jdj`BSAKbmbQ$LvVC6k(&x4$ouniU=E}K3U*sb|{Jj^#|ez+L8Y+%_==dJ9_TG z6%&nz+cXBYcX?Zvah>g5-Wu%(kBjDjOtU)4DR+#dCL7P3$ zrh)hxBvl$rQ4S5Tox~2LFHY;pJ==q%hEC+Pdnh6%Rvk_8%>gsSXmDx$R?6dg5%%V9 zBSS9Mi0prnA|dKUojKYwPHacqi#l_MHH}Ve*UwVx8@Z?tEIbPfEk(YFcQuSt+tG8h z6VGQUH>LFN(2cU+4TqajwC}e^MxtF4BLoeiXVtWy<^kzYWV}YaIWw73pw3Z=YXS9+AbuF;9|x zeo?;HIltu1FV=(b-%*>q`IXfG-cNAWCU1UG8y@vxDn%6@^~ze?Y;~ zmHAQd(czF2V5`TgBfk6H^G_7Uev1VnqhcItzXN_bp!Vn2PcKYJ zOIUd7b>tfvC68cV@xTA`2Q=qMq+w(2;yewu-2CXHtX;X8y&3OngLEcg=9DM;9Gfq# z1>n&x0z5d*+Tl^MotULyNeY#ui`{1ujM)KJ7H$s8GFndUlz$x&m2V1nKw4?LV27C9 z<_)&vaw7UQqu&NV{*C>fS#i`q-eSpMp4QZ4bHL$N`9ov6H9G?D^lMuNzsUn_AB&$x zE?#uJqKA8Pq4Vzrd|#EF&qJ#36ied5JR{T}A! zQlGf1QvWQ24g%vU{S$vx>YrsEF7=6mi~69=c5gkhz?<@Io11kZ!r{B^&He_wLDWqMtzYa|W35KtF_ifwyixR-SFj zo_6rHw+_zAGv&_VKjr7;m*wBGFjj1vWy@fd%qag_zJQ)4$%}Ez{4?aWD>AGqcE1$l zPEhw5@)P>c37k+7JR@zCfA_ObWM`yjra$qTTh=Cd@i6TMNoOfK1-$+-tqITj=e5e! zR(eyMr}zm#=!SW9clL(ZkkL`MPnKnyb0(j9&%|ufYI!>){9&Dadu55RKtM#;s>RL| zRN!|4J4BC!ty-;Gep6tRQXkkV>O*c!pZpJ9-DMsQoN{_!L{4ew^V8qrcm#=d3LR{HsOiV_fycYT_;$84|q$pHc9%I z6j)G>_i@y}qv2ijr81$SjNciSk*l-aW?p}ifuvYrU z>(}06+gS63j*cJ6pWc`IAKL&JNWXs@r}c4!wFB%Nb`_Okigl>w6gL7kLIi7of>HR# kw}kP0pU51V(-NtP-KMj;7N>1tjZz`g<9;$Ri-T(XAJU;4QUCw| literal 0 HcmV?d00001 diff --git a/public/fonts/BigShouldersText/bigShouldersText.css b/public/fonts/BigShouldersText/bigShouldersText.css new file mode 100644 index 0000000..6d31b36 --- /dev/null +++ b/public/fonts/BigShouldersText/bigShouldersText.css @@ -0,0 +1,8 @@ +@font-face { + font-family: "Big Shoulders Text"; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url("BigShouldersText-Regular.ttf") format("truetype"); +} + diff --git a/public/fonts/Inter/inter.css b/public/fonts/Inter/inter.css index f450010..89c6d47 100644 --- a/public/fonts/Inter/inter.css +++ b/public/fonts/Inter/inter.css @@ -1,180 +1,190 @@ @font-face { - font-family: 'Inter'; - font-style: normal; - font-weight: 100; - font-display: swap; - src: url("Inter-Thin.woff2?v=3.19") format("woff2"), - url("Inter-Thin.woff?v=3.19") format("woff"); + font-family: "Inter"; + font-style: normal; + font-weight: 100; + font-display: swap; + src: url("Inter-Thin.woff2?v=3.19") format("woff2"), + url("Inter-Thin.woff?v=3.19") format("woff"); } + @font-face { - font-family: 'Inter'; - font-style: italic; - font-weight: 100; - font-display: swap; - src: url("Inter-ThinItalic.woff2?v=3.19") format("woff2"), - url("Inter-ThinItalic.woff?v=3.19") format("woff"); + font-family: "Inter"; + font-style: italic; + font-weight: 100; + font-display: swap; + src: url("Inter-ThinItalic.woff2?v=3.19") format("woff2"), + url("Inter-ThinItalic.woff?v=3.19") format("woff"); } @font-face { - font-family: 'Inter'; - font-style: normal; - font-weight: 200; - font-display: swap; - src: url("Inter-ExtraLight.woff2?v=3.19") format("woff2"), - url("Inter-ExtraLight.woff?v=3.19") format("woff"); + font-family: "Inter"; + font-style: normal; + font-weight: 200; + font-display: swap; + src: url("Inter-ExtraLight.woff2?v=3.19") format("woff2"), + url("Inter-ExtraLight.woff?v=3.19") format("woff"); } + @font-face { - font-family: 'Inter'; - font-style: italic; - font-weight: 200; - font-display: swap; - src: url("Inter-ExtraLightItalic.woff2?v=3.19") format("woff2"), - url("Inter-ExtraLightItalic.woff?v=3.19") format("woff"); + font-family: "Inter"; + font-style: italic; + font-weight: 200; + font-display: swap; + src: url("Inter-ExtraLightItalic.woff2?v=3.19") format("woff2"), + url("Inter-ExtraLightItalic.woff?v=3.19") format("woff"); } @font-face { - font-family: 'Inter'; - font-style: normal; - font-weight: 300; - font-display: swap; - src: url("Inter-Light.woff2?v=3.19") format("woff2"), - url("Inter-Light.woff?v=3.19") format("woff"); + font-family: "Inter"; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url("Inter-Light.woff2?v=3.19") format("woff2"), + url("Inter-Light.woff?v=3.19") format("woff"); } + @font-face { - font-family: 'Inter'; - font-style: italic; - font-weight: 300; - font-display: swap; - src: url("Inter-LightItalic.woff2?v=3.19") format("woff2"), - url("Inter-LightItalic.woff?v=3.19") format("woff"); + font-family: "Inter"; + font-style: italic; + font-weight: 300; + font-display: swap; + src: url("Inter-LightItalic.woff2?v=3.19") format("woff2"), + url("Inter-LightItalic.woff?v=3.19") format("woff"); } @font-face { - font-family: 'Inter'; - font-style: normal; - font-weight: 400; - font-display: swap; - src: url("Inter-Regular.woff2?v=3.19") format("woff2"), - url("Inter-Regular.woff?v=3.19") format("woff"); + font-family: "Inter"; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url("Inter-Regular.woff2?v=3.19") format("woff2"), + url("Inter-Regular.woff?v=3.19") format("woff"); } + @font-face { - font-family: 'Inter'; - font-style: italic; - font-weight: 400; - font-display: swap; - src: url("Inter-Italic.woff2?v=3.19") format("woff2"), - url("Inter-Italic.woff?v=3.19") format("woff"); + font-family: "Inter"; + font-style: italic; + font-weight: 400; + font-display: swap; + src: url("Inter-Italic.woff2?v=3.19") format("woff2"), + url("Inter-Italic.woff?v=3.19") format("woff"); } @font-face { - font-family: 'Inter'; - font-style: normal; - font-weight: 500; - font-display: swap; - src: url("Inter-Medium.woff2?v=3.19") format("woff2"), - url("Inter-Medium.woff?v=3.19") format("woff"); + font-family: "Inter"; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url("Inter-Medium.woff2?v=3.19") format("woff2"), + url("Inter-Medium.woff?v=3.19") format("woff"); } + @font-face { - font-family: 'Inter'; - font-style: italic; - font-weight: 500; - font-display: swap; - src: url("Inter-MediumItalic.woff2?v=3.19") format("woff2"), - url("Inter-MediumItalic.woff?v=3.19") format("woff"); + font-family: "Inter"; + font-style: italic; + font-weight: 500; + font-display: swap; + src: url("Inter-MediumItalic.woff2?v=3.19") format("woff2"), + url("Inter-MediumItalic.woff?v=3.19") format("woff"); } @font-face { - font-family: 'Inter'; - font-style: normal; - font-weight: 600; - font-display: swap; - src: url("Inter-SemiBold.woff2?v=3.19") format("woff2"), - url("Inter-SemiBold.woff?v=3.19") format("woff"); + font-family: "Inter"; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url("Inter-SemiBold.woff2?v=3.19") format("woff2"), + url("Inter-SemiBold.woff?v=3.19") format("woff"); } + @font-face { - font-family: 'Inter'; - font-style: italic; - font-weight: 600; - font-display: swap; - src: url("Inter-SemiBoldItalic.woff2?v=3.19") format("woff2"), - url("Inter-SemiBoldItalic.woff?v=3.19") format("woff"); + font-family: "Inter"; + font-style: italic; + font-weight: 600; + font-display: swap; + src: url("Inter-SemiBoldItalic.woff2?v=3.19") format("woff2"), + url("Inter-SemiBoldItalic.woff?v=3.19") format("woff"); } @font-face { - font-family: 'Inter'; - font-style: normal; - font-weight: 700; - font-display: swap; - src: url("Inter-Bold.woff2?v=3.19") format("woff2"), - url("Inter-Bold.woff?v=3.19") format("woff"); + font-family: "Inter"; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url("Inter-Bold.woff2?v=3.19") format("woff2"), + url("Inter-Bold.woff?v=3.19") format("woff"); } + @font-face { - font-family: 'Inter'; - font-style: italic; - font-weight: 700; - font-display: swap; - src: url("Inter-BoldItalic.woff2?v=3.19") format("woff2"), - url("Inter-BoldItalic.woff?v=3.19") format("woff"); + font-family: "Inter"; + font-style: italic; + font-weight: 700; + font-display: swap; + src: url("Inter-BoldItalic.woff2?v=3.19") format("woff2"), + url("Inter-BoldItalic.woff?v=3.19") format("woff"); } @font-face { - font-family: 'Inter'; - font-style: normal; - font-weight: 800; - font-display: swap; - src: url("Inter-ExtraBold.woff2?v=3.19") format("woff2"), - url("Inter-ExtraBold.woff?v=3.19") format("woff"); + font-family: "Inter"; + font-style: normal; + font-weight: 800; + font-display: swap; + src: url("Inter-ExtraBold.woff2?v=3.19") format("woff2"), + url("Inter-ExtraBold.woff?v=3.19") format("woff"); } + @font-face { - font-family: 'Inter'; - font-style: italic; - font-weight: 800; - font-display: swap; - src: url("Inter-ExtraBoldItalic.woff2?v=3.19") format("woff2"), - url("Inter-ExtraBoldItalic.woff?v=3.19") format("woff"); + font-family: "Inter"; + font-style: italic; + font-weight: 800; + font-display: swap; + src: url("Inter-ExtraBoldItalic.woff2?v=3.19") format("woff2"), + url("Inter-ExtraBoldItalic.woff?v=3.19") format("woff"); } @font-face { - font-family: 'Inter'; - font-style: normal; - font-weight: 900; - font-display: swap; - src: url("Inter-Black.woff2?v=3.19") format("woff2"), - url("Inter-Black.woff?v=3.19") format("woff"); + font-family: "Inter"; + font-style: normal; + font-weight: 900; + font-display: swap; + src: url("Inter-Black.woff2?v=3.19") format("woff2"), + url("Inter-Black.woff?v=3.19") format("woff"); } + @font-face { - font-family: 'Inter'; - font-style: italic; - font-weight: 900; - font-display: swap; - src: url("Inter-BlackItalic.woff2?v=3.19") format("woff2"), - url("Inter-BlackItalic.woff?v=3.19") format("woff"); + font-family: "Inter"; + font-style: italic; + font-weight: 900; + font-display: swap; + src: url("Inter-BlackItalic.woff2?v=3.19") format("woff2"), + url("Inter-BlackItalic.woff?v=3.19") format("woff"); } /* ------------------------------------------------------- Variable font. Usage: - html { font-family: 'Inter', sans-serif; } + html { font-family: "Inter", sans-serif; } @supports (font-variation-settings: normal) { - html { font-family: 'Inter var', sans-serif; } + html { font-family: "Inter var", sans-serif; } } */ @font-face { - font-family: 'Inter var'; - font-weight: 100 900; - font-display: swap; - font-style: normal; - font-named-instance: 'Regular'; - src: url("Inter-roman.var.woff2?v=3.19") format("woff2"); + font-family: "Inter var"; + font-weight: 100 900; + font-display: swap; + font-style: normal; + font-named-instance: "Regular"; + src: url("Inter-roman.var.woff2?v=3.19") format("woff2"); } + @font-face { - font-family: 'Inter var'; - font-weight: 100 900; - font-display: swap; - font-style: italic; - font-named-instance: 'Italic'; - src: url("Inter-italic.var.woff2?v=3.19") format("woff2"); + font-family: "Inter var"; + font-weight: 100 900; + font-display: swap; + font-style: italic; + font-named-instance: "Italic"; + src: url("Inter-italic.var.woff2?v=3.19") format("woff2"); } @@ -192,9 +202,9 @@ explicitly, e.g. */ @font-face { - font-family: 'Inter var experimental'; - font-weight: 100 900; - font-display: swap; - font-style: oblique 0deg 10deg; - src: url("Inter.var.woff2?v=3.19") format("woff2"); + font-family: "Inter var experimental"; + font-weight: 100 900; + font-display: swap; + font-style: oblique 0deg 10deg; + src: url("Inter.var.woff2?v=3.19") format("woff2"); } diff --git a/public/profileAssets/banners/SetlistWave.png b/public/profileAssets/banners/SetlistWave.png new file mode 100644 index 0000000000000000000000000000000000000000..0d5b0d2bedb66374b1af8dee2543b3da7830c314 GIT binary patch literal 443794 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�o4r2a&gG3W!2DBIe!K$O-#IfjW6)SSnKdTxVkX0 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

4a2mj`_+$PH^vxE!&wLK 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

%X)f4>IF7I!TV1Mx!9F;w}`1Yobt-c8mxYTB- zrrWuKYGY#ioVP&2vD3*HqCSuDmdc?p>*ba^RX2edJxcV@8J1x~S(UHi$>D+fO9+l) zv}VjepA~kuVTH#(9bP)>SKe`VyH1m5xEdP(9q>3@>mNhT+#v9;-D##MaJO@l*&$oN z-sNDUgPZI%zZ8mv#F@oT22d>C6I&G8JLVRDu(HYX=c>KTN>oFAa;n^)0E|i4(;t6a zf5CM10-{&sPVNWh3M%c{im)+?lmaet#?U!5g6p9ehn zA}Y{D&uCnGljAa)&Goimo28Tn^2V~|_kb01oxgWCS`X+Eq$#Hzp7t!W>l4)hH7Y4b zc5>tuKJ~xa*Q<-o_G#e|ii6C9`1k6Qt`yiH#f$ceHT4~{Ew|18H^~@ns5XknV)F+} zTtOg;lv#>$S1yK!@vICqW@d4c*k^3kdYQ`NRMNGjFOzusZY9-8RjG3{*g}BHEhg8#YoZbz@TbNO-v+$}3t9SZ2exF$f5Njhwp4tHw~H@Y?5%2D zbGuaLBUyNQF=+7lmZ$q}BJX{d(uR$p3$#pMQ?#@W;>$cB-O*W(eOVwW9~_Pg`0mvE zpr$I<(}H6Drj;FE>S2qw=PXAe8btKfLL%AmTqHvkK&Y%wOyX|sJ2S_#8HNf!#RS`T z2gj9Yr1RNilUfNHlb|s$5`MA;6~d3-a`q8W(Zbf9V#ysgkq(kly}QiZSik zCs`au%o+2W0vY;mNsMS^$neuXK%z>|Lm;V+#8{c?IFHS)2*aArp@LZ#r%*GghP(KM zn3$iz5qubNUW+;eY%^fRFdA}Ns#l^uHneG##(AN3k}*@X0xEZ=q?;i1$NI8}<_x!bcQe%m*wuwzXx&qs|1&gccl?1l54 zeCD=!AMotxu}CQ~*Jh9trNm**TmBA<7ZGhp7N7;w3qT|hEpzUiw*Cx8HW zpwM>4>^y7_ydmRiR=0}uCHps2tOO-~;otU~Q5K)UW}xbX0v1Gk^4dy*q0y^*2X_$t z_j>pn?;MUu$wQCS3n$%Vagy)R5#8(A)WKxdLhny$01z#mM7yQ>zXA3_S`-^58^H!^ z(b)?!*Zk5I61A%5KWYo1xQ~&HIc45vHa?9+K#KmoCSpsMk+f9j0f8nw`;m2Jj)>jd zc?~W{8Sbt+?$);FJG3;`c-x*Zjj1f!?(iSw1boV7rr|`{b1|XExZ<<dTp&1~koSlYH!t2|ihn23_euidyB=}-mHZ<(v#=L=Ew_jy)K=9AhwOu9#6WD_1@#_eqpvnbaeeO5p`IRMiT zs17$F+PC3u#pDD%4%Gl3HF^0r_E~-ZXtci(1n$tc{XQ4rd^g&a_YUK8*UnoQO?}O{ z<+ZUKgz;iX01!{N!hmyiGWB1v%j9@giv8<8`6?TIGC><~EXB6=8A+DKu*$(y1a~Lz zf66m+ih*ah1qj98)&9gh72EPGiS^~<43XM=M?5!X!^C8(VD2Vay__G%*_blBE8dWi zu%b)STEpf(({L_bIzz5U6-16Uu zkJo_f8FXr|wh7YOAj@Id?)Ia!8?f&u^A;DGqz(>>A30G?T{JXc;iQ%Mqds!o9mWet zaqoc{10Ot-iu2>MggO@8aT_%HZ{!P2$YM-@;Ew*P3#b-&_C;gg@2pvq;y0I4ZnL;W z>$;wCWtqJ93lglB9>TnF-A1X}R#$wYCHJlH!tt*TKgm|dCYiJ%k6&iXgGx}=23q*y zQzqmKqVwy1T|3+}a*D|teg%hq|F&Um?ojq-^ntmDI@63$i}(_c?_Q}ibGICkCC{Lm zGTh$AU~KKL{-|(9p`n-k*n}ia6Xg3|x-e>WqmSw9Gm4N1`oyJiT5nT1Fkvh!C#)9|08E$7D^!tXCGFeY>ZeK&8}hdCU7@-p0ddUZh%y z5-P#3M?Ur?g}p5qF^{Fgb=fvWMNGpNf#88 zxiN4ci*&!`U(!qa3t~z5jdF;!vV!=QUDLWI`o&K-w$wLg0TwD0zG3}6lioYVC&xJ=OL!kMCioTBz&9%=t{;Lz14U@p2gdjM|L`b28!j<(NW{+tx?9T--VVd z8bUzvfsGbyiY?TB8TaegXL2qD@7)DZQK0)5N_*PL-Un9IskGuT6}yabG;i}?j~0GKta&|DB`%l zgx|Riwj;-KSosEnB94IOTlv|Qw_QYc+irfol=O%=o47Pjj) zqznZiz#oIgoXuG8$-7cKU@0NkBgNk20p<17bZ)2pr(Gd@BgIM5(_UGawqoR@lrY=* zoBo-t<}5*~nY7U5RRwgYAu>5;oCqJO;XW7iir!D3T2Rw^90G3!Y3`DfR8D~KokF1NF3_bEsD+hy289G84+G9Av&sheb(F1dcf zKmPWWCu{qgR1dz(2pv=$Z$Uv`{?MRdVUj%ln@l`PxE}2-gh|&0C88JNXl-hCGMb;? zBa969L;yZ*0(JrqXbroG!eB(x4!=PDsQqo>3Lh|J)>8es%VOW?DzKco$O(p@Wo&sl z5PuN-<4Y|0`A}&P)zclFq=xnM53A`&|3cxJem{zMSV22OTvil2!G z&q#2(gj5@y(&IUP^FSud)zE>mqS&}Kq(fO;9!h?P&CDX|4&{Tt70rB1w11iR%5%CK z%w>}$-Ia&-;i?$Et(w&};7-YOV@aLmE4hwJQZd3WdF>%k(y@&u*~JjUL8lZUiD+z4;zSaU@0q*9I-|Y|JX{5%?ppFL(rU%P63<87}$& z6!mc1qu|72)5Qyyop~n@mqyi!&u#<&aH_LPd$@@)r0WlWOzAX0a=F%Z!eQ?DUZm@R z@@5=b^k5Muly%1?@bFt)=%q`+TG$v~T0F|nYH#wBO63i^B0zR@x9Iu@KzU+W3{D8} z4gE942ZLV7+-y=K?9#P!fZ+h4pQf!ivAvp{FWSldj{}9M3;qr8JvZ;*+1-C3fdoyj zg~Z*81P4cUQgocBJ~=7n^Et5@uoIlG`Ra#rg|{a&St`_|yQfPZL}0|=j>Er*W|*18 z3h#Vbi3HkM=jSF&uIDqaS;Ti#)>Zi1J<4PLxjHm^b~aggr{pho7IRr_1ynciuXgCE z)5=a%}zZuS%rn`n#ex2LHzeNMFn`2L`*BW!IZF6ep-iHYWt~RaK$t z0_ZrKE?!%5dVzc?6OxD2W8I(+@eQkOvu^GE_y8vd-_nH2O{f~kr0R<9^b?CR@eHFRbd~dfNXxK!K&pGcx{}xV>F4fkc zAhZe3^Oo364U}bcaFU1kEj0STtPIgJ25N99Hu22pndoz=4A0Uh^?V}bQTmYrK_U_z z$pSE@0n>R9YERFxq*wLu{@X{9x}{5R@)>VGkd3bg^Vi$|Q4V+~BK~VZVwvYz;ac}IlWGgLJiOeyf)Peb3es!u*+N>av}R?rk@txy7*sM>wl<;(p=6f?sDi^^V$2s z^uf{Lcju=S)CU~*`q^Jvg-lA=2r4i6*WfT$RM5Tn0-uD(qj>`DOW=z_>{NyHq4Em}uJwjJyILlZ#6QZJP|!MbCdZ zUU%B$INroxj8F9cVHF`mVRja;^St5kLk*9`ZrhnvC=$0^|4NS@xLi+L_*i*Ri5LZz zYa^D!5Wrd6NYbI}*pXA!W^ZICZNYWgBw7iG8=<8Q1lZgsBmBwzp>{hz+7U>dN!aGE z#Qj4xGbDU7EoBBB7Mmr(KWJX<&+<$1O^%~I*R5wB;ZuOY-TA!Dw=~LBj-ki>!yK=4XGJcv!PB{B^#=D|?<9^<&j|qPOzw(II^72lOhLqQTXR?Wq z3j&5ss;j5DoL1Y@hrag!ht$ON17tt4M<#2RVA%ewZ+f!+rAa5WHui0m93*}TuAXlo zBFXvnW&l2uCef_{ozG3N^Xtguk0sYn+WtP<;$iPY*+;kGs#?cwzvbIBey2sirVm3| zs1);blJBZ2DG#3;f!>vLP@H!XZLrs0_|m5QhuiJ z?o-+qqc-X+!RQD0XTPk}IHu`VaJd#x(k~0Wv!y1s7dfNl9P?u*iW`&<{E`!7piQlC zSRXCb*gotqgM_-uNo)20uiKOcC_;~ z*V-M%H=chHI6<%4$DbRq-N6 z4~7AuquZ0$Y++Pm%DwgvuDnbr@ci9#_4($UHlH+?iTA4nE+TgLiotQ>Uov{VVA_VK zaMWkE^pE68dAdg5VBv4mL)FCk)og$1`s<#8^RM7C2$NQ|h>B=oAG*hQol(VAQxky3 z5)ousZ9h;CsCHVed99vpCBhmBh$8Us4$oay+?QrF0Z!!9Vt3RCUuGc%%Kl6_6AL#@ zn7EG+A( zWc;FYNBm)+EHhi07-hbn?Jq;2KjPJRB#w{%vmXm$ti8*Wcs1pKXg3b1lLm)=0HFc#9?ykg+FB@sQa<){NE;B!i!SHft>S-M1eoUEv zUQl(`1Btz!lKX*S@^7yG`&}0ZLXA&HoORr2(ONhX9A!6IW-1`wDKOH| z*6(#%fC%5qu2en+#P*+nVVL2E>K3C5>lO%8C}1>uiw3R0Z|ALTE_v)K356?C_O&La zCoBakgujfmx&&qKM17pX6VNX(YGYI~hB}X-vT+J#By}zQq>HsqSFd!?$%|6{mc(Ug zUvf2JD5|!PlZnUX#&d!$cYamXwz=WD!s28$4na%3tMhY~zh&;i&do3${yGnEMBFr? z_v2TnwS^`Mo7H#tZ%bqE)`Y(CDENW`ik#R7u^w8;b7{rNWpqhqx$>v0bn&;Ad;jGvG9MmaG`uK zW1)efujFmn8hZ^B4`}l)G?=5+DY@$}!O45GX7jS@R9YrA6qx3(ck=gpFRJ^ZY~CaU zj~)4KG{m|1b3Ir`!{p>MMts(0MAP1 zJs|d!m7F~%{IowCtV6=APbA?9;8Ba)a06Lmu@oPrBNM`#`nzegCZ#db0gQ5_IreQ} zJxqBfY=~Mt?G?_YAg4>x3OR7*}`g~Xxncf{wqkw3z_r3uEQNx5ysOf zpZN4Z{d1PtR;CfvI-NbkVfnd1TA#~>t2@5Vw#xAE5de}|F_{AEV=LuT-JZ0sZ^1>~ zA*#z3->oW!lgiLM0mK%%{ZGh9O>O=mG|+}FJN4u4UZk_B{noY(F0+DtQ6CieTWKZ0 zIvA6(1cOo?W=8sGZ8N^l#;GPJAic4PHW=FeH$VJNrdrc|O=-g`bp50=lsMDwsZ|SU z^S5MgQO>3ZjruoDmRxD^LOO%` zE`BtO?n9A#=rxyUs*^gA@YM-mtHM*o+LekCaDzymj(FaR1>s2>a-!vJ)&Y}W1)+e+ z!gwoFwzB^n8@GGvpnHjt7YJMmax?Pxw9L%W_dM3ms1S2-KZvjZ?$Ma2#dWv5Xn@9% zskMLD#GL>p$)7P3OO~r@@o#q%jvPqCKQ90Vq3i9XJ}MH4T)X*4)GV^H$`NZ|ZE;o^ zH58-L#Do>3p2tB}Nfnc)d7``DKCv2He6GcT6C>@^-VW52ypOA$fi|_wb)A ztoZA9=!?ql>lXigZI~$?Xg{QV(BCu@#ozQb{Puh6jHb)8OO5UOme0%uJ*EhZKw8ZJ?+fwYQhk>t^ zr%S+iU)t{9^Za(&6aGxOgJq)Sx4}6mj()cy*~M9~uPK5gxVv;q5i)EqHnvRvc81Lfv*iN7agdSzD{o`%-WS! z{kl6Rh*IvcF+y> zKGz4VWM*S=6%Fgi1NEP*w$Hr%N69JB=lY_I6+ZIoikz(_K6eZfg}ml;`iOCy z`4;!Md2KAd6C&NwG+?ZnaXINbz?S;BR)w_LDA6eE;7N6|nSm1&bLY$2KtN8)XjcL5 zwTtqUl)=bma2Cet*Va%X^R;KHt4iyKdk-+Wu&CM~fmZ!){R>b-225an0J(L$#2-Gp zt~IkBmn@PC%n)8S^GSPwp$e>uhj?7GcxVEjSMZsXaDDc@hfT8DsP&PXX@{eYwi6+3 z>)bkI`3?!qkP22n+uZ0=VGOT@g4@f2z4aLlRB9AHoJVm-`kFGM;r4p` z609`=qR7)sxqx)-*_YR#=67c2r%_g!5PJyMH_##-nfqwuy(2q%=8jh*S8|GYE|}2< z>du4}iV3n)xy%i!N&+h8yBnD9wMW4OV{waIJPf;g{zVZ2H_-u)!bN~;A}Qvj%A9Eb z1MD_-0A%k&`rRbTFXL+1EJVZfK$jt1^zY`^jd8-e4bgh5uyw@8Z{kUzGvm|ijokJ z`!?1PYC>euzEfU|O>-60t;*g$9kQd5>B?q11JQkaSaxzZNAw-!Z+qM?T=v?;Zh#e@hPJ%Vd#mVQa|T> z+8X;2pqL%*AYIs`Te&QftO_u7AO$~qqFqlPfg3KnMH(5ujzw*xkJOY(MAG!wKqK$0 zj+fqtGz;XZxCm1xjD25r`+&)BYSBT)jk-OCv*9H-Qg!DKqO0T;IODu{-4KaGe7eWl{uV!Jpd=dr;txGU)p+c{(;QN9F z>LMxorN`&(RB!|=MihS3B^UE@;4Ag}X`)6P-b6gyO9x;3^R#o}2#aHzkujc`2!fzG5| zieY)l-*{#(hc*BCXA$G*jY$P1y;CTBG56z8o5yh$rEOAb>CPe7*!e!^kDH2%ad4jr zv2p)Z4Y$7z-Q>7nAChz^rjM6R*lNJb*`;A(xocRc(bi>NoPbw{`gzTb{knDM=tRha5J+t=-nFl8ck(s^D37N;p&NvR)^VlIoGgi6sgVwjkUkZ_ z#Ly~6!Jqgmyg4^DySpg=8+n~&IIaGw;LgSp&9v@-SnAjUlj*idj~5_Qn$fY|UK@e! zx$afXYr47Y21|*)OZbi4BDV-0l)6vyx93C_{f)j{3=9#ZmM85Ykg-ABp#r3 zKTqlW$ClSbQJ<@8S7p7nXuJo%=Kr)41MYBg>tR@Nfy>nkH*)W7aLAyyI4Ekjbp{rh z-52b9^cRh9xv5NYW8m~Kz6QwZS_{&KJ{!N#NiWcg6^GT$NEa2EPfitTS_Jw0?n~K2 zmWJf?cZQsH(hh0eSOM1mPyUCtDp^H~S1~NQCoVZRbY%PAOHI5cI3@7;FAsk<8TcU< zNmtf?v@Wq4I35`BMa}o))NFS3M;RK-pjw+OBWqU=MF8e*9;%+;HN2w-;C%5J6zfem zIluF>gHr5hCI%in;^$Ex)>WWt!YqD##1=!_!XW1yzTmkNLb@il{0?T*e|HUOH4liP zf%l=|;Enq^CK9XqBY?309}%VsJP`V@#$CHOXLJb!_aII{#gfOrpS|CQI*EScpTt+z zo&yZ1F?pT9yLRBbF^VU3(sLav%f}sV>(8~X1Ex$0T5s#D8RhyHFTTmjH7<|n1xW9K zK~o47tNv*YrQi#=gcS#BO1u{=;B~{iXYY>7AczxCKYYXvW&g8)iZE+Ocw3e@zkEO7 zoX&&=_xyGaethJ!Hf5cZdO%Cz^p<)1sqK z>C|Ve*RGf63RQ+K*p1#)h?#zqQ!dn?ox+gN+f)^qQj$(y+girFMo3^0u9AQzXtf^b@H=Z{K9OxPxNylTL;X;_%E9b; zR;m(xF}0yBNS(o_)KGbclNX592OCV7i7|%_+{Xsgb&XKh3XNWgO3M&Ls}}_?--#DV*PdxAHbqE;t+|fx}y*-p7xvw+5uZwfNhJWj@C-T#{vIuMyw3%4W z(0Af znx3G!Uth1ZsRGhl&n`Xb{A5bYnzI_p7JsPX zyANUga3w9Sv&a%N+QF!nxTth9hB;GD5#MfOF{FM6bWC?)q0& z+JM*|m3jd2=BjPp6XE<&44%}{`Nz87BqH6?KKFfq&YzhxH0soOXZbLk!9?KfGYFh; zlBdqL2U==Xr>L?-jBsuBKyC`Q0IPUJwfWr5&;8&LMQ7{N`^U$vH>QeJh(8cJw)}fB zEUSx@#7%6UskhYA+2r^NdO@TH=Q)sG^MWy5#%S##}E1xCi zZ||!HIT^Sw1I>t~3v&7Q?gT7%@hy*BjHx^^cRPj{IywRs1HXq#6<(V`x@c&qUawj_ zpiG|Y)3~j2&r5^d>ss`xvQ`!T32hw1D`w2h<^PI!9o6P7HS|)=6H>VJI^wlB?_(G9 zksEfyTEJzHwVYacmAgOTAV1!-^(ay0pgPtE`7i4f)js&0xIA^PJBcRs1z=Kmc_*){#bF}PINsv@{>>$kMk~T{3WEi zSt55j(x%cZa67h_a#l5*aixj3+P9LemsLxgWSgCV!>r2DzbtR8?OQ1phg^>masQa9 z6*KZWp+3YT3N1BY=UviOvqED^vo#y=kDl|zW^=Az80R&N{2Z(0-CkOOT5Y;(Tb4Fk zl(f?zRyA3B$-+pr1Zt@W#^MCp?d0oOw1)G<*Tv=To)-2`hq^P+QS)BE24Wo!_CCV6 zgCjmsf^AyGRg!H$L*z#@W+D=n_KsDY1Rh9bkkZTHt8|t9$ZXk0Es#2(b zXQ7%f{VyeVVujD=`7%R2wovLl|Ch=_Qm^d#5d&7s&}%>MpeEj54XovXqmv$Q&k#H} zqv4kVPk=d{BUpUa%wSu7&`5iM4WZpCItil4g2Ajm`{IIZ2-&&0(>6?^l5^soiz&35 zIqg{gqN{RQPn$$E&V#Jx4MxCcU(EZOUHr@t@z!yZ3t}1Li;Dpzb^f~V@bu~)2OWB@ zVPcgpXjWDC0Sm)!U!)V?5oqD8v@^$C^Rn$YjTj5=pdZOe2f%Q5_)E>Xq;H@;$i2rR>dzd zKhWeU@^~oY^Ri0e7`QcD`=0`Q_By&znQQL@&1`HMDHd31;X!|3JNzQB$a$g$`%asI z<*(6~5EAg!-$F`1&BwDriOwy`5|`qP{$>&irSH|v;1^S}IDvA)FMJw`O>=G49A(Cg zU-H4U{ZKkh2oz=HDBl`-dA!M5a&j})x!n)2)!G!fC*d1;kw+fS`uhbsfNT|91CCSz z=q=;M@=2Z=UK)VjY9sKFw;%I4UjBc@M2@j&;fU6Bl(>6r>P;q4sCvvQ0}3?yvhIG4 znR_cDVawk-dgWJr)OlM`7I;xaGrJ$dr(W9=Ckt)B`94E;Z{A4<(DTjzQXzX^TXSrv zKX8M(jXZ&Vxmpp>>!@$l>uFybrRTlRtWUr2O>C7%O)j1=tMz2@^-F`-o|ewHOU%ml z<%OY3mbNXy!~b4QJYO%ZB)k~ERvHm}Q9Ldi;eRrMs@BhHgPMP5sO~URg2+dvy*G6` zLMre2xNGp4mcVQV^6drr;4!5aS7hq+d;M5+?W@;=&()Yl*>(FR+|Y2H2kr6hN)JT! zAsqQf;@7#qQ{p~trSpnEj%l8C`k>H1yqE<&{|RN^Ld!f-o3 z>vw3Fk;=eDQe{8%=n>&}#7hdPs9GlwJ%v)%K3LQgbUv3A2xd!@{2+YPF!8vi?OS;w zy#3#kF3)2>56A8}{a=(Jl7lY!<0Ge;ntJiYwNL;T+vB37Z(kpXB05S+obVS@X3iDQ z#JvTxd)*moq!zr^roJ%KyHe#3>s3|FQZfZ=)nQ&OQrV>9pd*$s%)b59k!wrytsB2o z3=bFwCrEpf7#>G!9_Z@*Xf(VqLtbsjucccJ(~Fkaz$n7UVr3FCyW#Ks*C8*HY? zHO^cJ@RsB6(r>f?{!k-$#u=Ly4n2Pq_1AgFqQixJIx4b(d1lT$bvVm>GMW?iE;>(L zL`|zhHCIVlek=8V0QovUX>H3|EJ_;C#Es`kqmNMQQ5mMj+`FjBw6qC-`Acmk-&k)Y z`@)bPZlX)W+**e6WCg_IyuYFsGXGBtu+!-J>Pi}dRMwJZEfen&nr4}es5})y=gK z%U#CK*Tb>{Lo}`JID5%?mSdLLwjZfcJ~t5*6je`V@>S-Q-8AX93`3*g=h>{R98OAS+m zlOw431O{*#>O>Ac!GGKi&o&}#G`+1(&U(o%iq*tpR!1IxJhT4Mx1NQ{`(St;$EiZ_ z9Y#S%Qshxf0;-qgHrb_Ny4;=cHhC-%t);cvmScKhBOVP}`k0_j%jcJ%thqclqMZ2U zOfA1@ZX>Z!2Mh(1(~5bF!bRb5zCEA$x#Lr}(xW>fS?W4!8nF|@)dw*C%1wY>F)WBw zBh^+VEM1*8New%q_s1DS$?3UN(y>uuXy!322(f9c+%5?;@Bcr$BGu*V>wI#>HOhE_ zJXDrRBQdz`?Vn8tQ1oG^d#|hcCL}iNxrXRDwP|={CEvq_EY*$IioSz)^L;tj=C&>O zLsJxDVyl4>INMstV}N9d7>@=3=Yfvg#vhqG3Ui7`g z$ohz_!^o6`yw0(jsJCtGfm*nrPTN;gKQ)~dI=F#KSqp$ zTTRzD_eL$FIGajN70IHfnZ3~*YVpMJCl@!tZ^Bax+Z{xUix-O?ec(2Z$LP}vdSM(} zl)Q8#G<{I{4b79}tue2|nJK+Sy2my5um-*%KMbL}lUiDr5jUIW!KXzJL&_cP^(-6j zC&wD=30dfu_ywX6qfR)8=mmaZ$XH8z;Y2r&avthtxtxIu_lqHnq{>8g1R~24z}vC+;cYfL>tDv`{v@41y|} zs)5JPOna&tk3S=H@`3c`5tG-(J7?+7+LKtaXaH}X=LfmcQ@{W62Ek833m`l-AQb+9jb zXXZ!qee`vMn9_%^0@B!>IO&Yq`#)z<6VQYkcR*zmS#7j?Y8tQoUj@c`eWx=kE~I4( z3c*!NRUy0Zz#T}n(P8asNz0~K%ymyr%i8C7hLpAcj^NjBV#$K!IuMKFILYbc zmtz@8*E)kEhAISpiW7V8SCzghM)n69|a(fN@xQd#4ttc zfd*C_WakE|O}iVsjh6mFAEV4!Ko_Xh$}LsE30dFCmFi#wanClkb5k0gxjt4tgB~1) z4o1JOcvgqq-)@fjg+^0>Uf@&SqPtRV@ox5=Yf39 zwkV7Byst_nl^F}w$%l1BGzI` zwR#*Jwu@JN#9)@bHWD&EN1hVqdSBahVGa||TdX^H{1s4ddM>qtJnD%h+DhX@cP9acdKkmw-9aUrF-g8MI(O8A5yGergl5<3!_;{mohKki&jdY zvXM#(L;L)?+w?iB(JwoH`V&Q~*zAt4*Z04OzcyJ~QYcijWrCA(v#Crd7uF2Y0$vuO~BlZ%Gf&W zDk>aW=)5ItCMPv}L{WM-=qkiK$G-8i2rTSd{&#p20zDTdu`6i5`>rhqjfOhggaXI- ze|7C+UQtfyMvE5z0zw1RqLxx~l1w-$&p*d`md>G{f*6caPPBK*TFu~Uu$mJ*!z<^k z%T~kw2M_c{XxOa`ck2HSH!1=x@>=1mtP-jT15(-@)7R-;0zMI8o-h_y|Tk>)Bj62+QV0+$khhNLHJkY%JCPa2v;y+@{3bLz6($_tyQqosUFMa0#x`e4k4iA z{NJ(!v%40C;1$)Q4Rf5(V;MV?+h~}V=(ujG?3?DaQ$Ul0V!f9u`62WgkFlQPV?xw< z{z^oUAkgc2zqI-X+9FOB(u@f$SiLU2O^q2kRV%i7SRqun)J5^^aF}w4zX?TY}4b6vRTt8c3VTo zg@6B=FJdA79zP=`*EmA{+XZ`1&hA5)vnJ#~qZlxti_Cac_3Qq1H=;vS;0f4z{*4}b z7_fmBIv&l#q)A87-`UNFba--k6q~QbQS*tfO@vp720clsxy7t|%IK~2oLg--S<4@x zth1GDZ+#2d{rZ}v6{w?)Lo%f(S#Rhqoqmj4@-H6Wv?^@Zh@V0?yb z?O<gpux<#C(9GbRK@N`RG&_Ox6}_c<-H; z`dB>*7!D7Tod}e#4i5z1gRxw7vCc*6k8#Vhydft}v|9Ew<}!y@4^)kwUotao%>{&V zM^%ephRQGR>ZWZkho9ahXL0UbXtP_t$M@;(^kc)dc^Ur$HAKR#KNsm*q&NRspbJn$ ztjcKNZpW<^|Z~B(qUhU!j_jKj_c%R(DHQkE!MvwxMesBxgIE<%xFBu+Q_e06SMM~ z4HUK(zeH=TP9irTFm5G`SDdy^!$k0fPKObd-s3|eXLz7$=lCS&h8oX=a@wb;n*U^R z!oJ$Vy7AT$IJuf(TM`vxukMr!4z88-! z+j%bquF%iALziIvt1^jTj*C;F3@_8kaXJp(4NzfO>_{bZ(aYNeXG%8dG57jgRdu_zRi%vMZ?>{`EMWyKy z|5HNP{OT=hLY1+P&_y`}wug`ZTomM{-I_@KUT8Vg2KE>ll{ZFO=w%V1Clh!+pT}8q z&lWx^UrOLQXtp-EL<^f|%T=hN<>_LOS2rf?TS1MUR7P;Y9M`n@RgUDduI~g0?yQ}4 zRsW^URB}D`?2>bL@Lu=6Gemu>oyl%lF9mYqQ+~{^fVBT)nP!GmUAEaJN22B&Q9e7; zYXcC)t9F80;ddYx?4Tib2>fJK4x*#c1G)Uy| z`x(S&og}BvW%`7(X+^vqu#TtdK^#j^X!Xi5I!JWonfoAi&QPwGk~^BK{B{RW1$!xi2U9(L!zke5jjg%jPyKCKr48>M z#hii{N{nMn9~O<)00o!BB>#WslgQdQl6w2X<#-`&A#Oc>rS{02Jnr7}s_$=P8BMyi zU8&MdnT*K&UlmdSs6LM))sOp=bmD~dWo{)}pUhXVjK|4ykC6eCt`}dJqXZ+pQ%q3P z+uMAp?wb1Z5RVEzT&9##T;c(=1RyM0!gDgX7DlQ`#;Z2;RZH*f>3LFczd76rZGj91 z+iDHQl2S*?d4Lc4vP1$_uV>n+2|R_URz85Y??h;LF|Sm}@>Lq{ef}B*$4TIpNix&3 zYTpPg&s}YH-caYS-*l-s)!p%otUc~f8#7MGHTbQ2X6Ofc!<3sn#z6{6K7lbj}g*rDXgC*Yn;=O9*XIQBjqlD#C z-_oRDSE_%M0gbTJLi}ujGsm9n`-uuB!uYd*K*|19-|WZC-d)m_L?GfZ=tRUwj&Aed z8cW1}Jm4sG3xq2%>l-|`z2;1W%ifxjuvDVz5b-#v#7Ey>KO|6uZc1@+sgl#RiAns6b^QWim05{y zwr9ETu7Yz1WF@u`mw5^bL?A>}euY2>Uu%bV1Ji3d2Il(DHD^3ni!F!8-^hJX&DGim z5a*L3B~%0UoOM&z{B+h&TdKb)xqsbwR&5Dw&4h4{FRsA@nB{wq`$pflnb_H5NXL;Q zA5`L<5#hdqR}cW>hftL;}H!FNl*L~Up*jQ zmf414_S9*}5VLy!25y_Xmen@_gLK-Joz!MCSBqz@x+y|EeR8@v4R|Yr*omG?!ZdSAyGo8N2d$iyQE9{eo$NP6+VtpgI!iE{!+pQ zHDsu93Emu_Tm>BJkf6Hj%-X#|=87@IZ9~_^Cn;G3Wx_W&PWPD#T`4eT!FAG)z+>VQ zhCKVbmPLfIOOIoHHtVUE)La4nXufkS-0Lm;wMRy%b$ISvvAAoNf6Ve%uBf58%MOuiz1#xo8OB1lOVuoc zOk${r@ER^X-H(5cMlA&S>(?{Da#KmuMBO-BBS$4FdBV?%`)^k__~-_k zAzmbw=v-K)&lK;ncTXQf%2+U{B%>z_HRK&I2M`IxAXlfTw_Du zinWs)tbU)wyu{+ITrzy?r1lnNw$-QEXmK4-XKeBxYAIrn?&yUY(rKKmd}R}~jMLXh zDbjI2g6F6n$L-z~dSJU*-g3|PBco0cAi@Ah9@DOHwb}Ch>U#WFFUEMAiVy6)^2bS= zmEXH)M`Ne;Y=P>?-r7YZxs0 z+$Qb#xIXcdA$XdXIrqF7 z(z38Ewazpm`HjxB^KRY5z~qe5)pyUPmXnRMXdccLwH9c*f#x~6^bmMtWIjOuxSKBi zpuX=3yf=Kw{cgnX!b%-c-}bR8QkmnERK@~OPXkTe#BRB>bl+;{-S4D-^jmdFW-;8m za`>bP=q%fE3o29d@eo3-Q(D_-;SxeepoAx|nXtfKD>?8Rd+TJOFIz&D*h% z-GyK-Er(N(xufqR746ZYBM%$-@r#GcYN#S@)U&R{mBcOS1v6S%Wrv|BMkr}qVTep~ zq|N4%0e|_U;*M#M7k)CD2i&t6_)1s9=h6#Pjn z9cyy@t|#{rA$0ZIF%!Zr*z)3(?iaq^%U|-xR4ms*_cOT5JBeqP;WFDT))ZK{5%T=b zD+0v3&;EC~boVy^;`GVlnd};^@OMiy^x>28)54&>9Hfti~5JY1&%<4FvH%E<ZBG`}C8(QVJtuno2{) z)4YE0uY>BHKsxS~HpBo=MpK%03C^}1q2zEwO+z8AYw&ya3!Ay_+fgao8ZMzVvv?gC zp9Mjympz4lQp|Ont2yNJ2LGGh<%tRP*rv53RV`>6*0YdNKFn9dt-J6~M!)=V)rdW* zfXTi0R$t10 zxXdv|kS$?}6Y=wHUuSRR6K=aCsje1~KJnF0>d#CZsOjs^ADVl8o2T)amT`7EjxRkH z{$W>8Z{i|SnR9e3W+b5srpyr~ZU0O9N4i!T3PpGb%34&d=u<&bRX4!JFokKd$ zU=Kt+BYszKFMPG8|<7K-(-1vr&~0WL)jWW3}xsvcbvYB7m$)E`mF)~H09DWh?8v15?|qeDkRTJ6{9!2tXl#|D`LY({(bm$iytwnhoW&?@P)6antGP8 zUPG0LR_gkYB9DdAcxBA(b#M=VAZ&KO0?)GbNP*lcQ|_xZjDzH`3Tpe1JRSl6&Rz8i z@uKDZ%ER)5=gQNTEk~;QR?G7LLm#qZlb&lXE=Zg9&#C?lT0b}@TfbDu`hH0_Ufvt@M`z*31$J!Ghq~Tin=w@^ zeatP|G-lMgUQ4ygDy0*B(X${;0EfrmZMo>C`X4M$) zk_no}=nwrE`kct%w=U^gG0exl`{JvLp%`oCuwD9By@*5dB>6m$AWhbA^ zeF+q1k~(>9Nm&Co5+oLqf)|TK4e}gJ_7|heew0j#ytJQ?SPb+;GE4A!@}H6h9Zp_2K&f|ET=`nwkGYsu3_Yq7AuG;0tb zxTxj=Rcq)-y{Frx_DSQD{CpE39HLUJ>2vxE8@uUk>37uYNWb>5##)Tdw8;n%LZr1! zlG%m6pz8vt=12b=Y)dr@8nEnuXpvqvPM1_%Mb)$_mpZgV&|If4nxsAY3_6h5StZjF z@hIo<4n)Hx@4tVV)P@pR1i8iY}+K+1gUckl=9K2^k55CDej+f4g zyOsC7tJ_h}g1EDv{{6sO*IE6<1=;5`F>8XKZW{=#b*A_|fOSUadQ#Wo(RJ|6oW$ns z)Bl&=JECuuQuUZiFq05-H%!xBY=G0K58qi>?seOgZM8d(#1(K9x*K7-H|6H1v{PW+ zL}utc5#xUyYbfcr_Vdh;6FsHv?KwVk1$+3$THyQwWP~|g@MJ?i0I53;uGM7_p^nTB zsEiFAi{}39xc7dF>bm{^X#rRhmk?j$Oup-nD-Cy#TNK{q`4I#u*(}K6xru#Lru@I&(!%Tz+3lhEhm>_!~?c*~BgF&SAVB z)yM*yju2qc%^^lUg797zNjt)ienk&k^xm)UqAp4ui=n0dj?Tu<4&cME6Mx3!_w-ae z`>&uDZ*B>Cp;_xa9gF_@i!5K@p1p>B;{xsr>YdwgUNqrA6zn?fGl)zfIl84cL0yZB zv0VNxMtsMIiqO61SLJqojrG8$yLWYY7Wa98G1qF#SniC?T#>^LySwDBeGL9;H_w|$ zhh8{d0eL9WCSq%}WXQbdw~{vkOYqIVwxd5IZ5MnpeOJnsaZCOK2bsJzGg_4LE*|zN zDs%1$Qe1nD(uuX%3=lme>dyBgT|0X+3S2$4J%G8X+ieKvo(_%phdP#j$dF8SE z1_7z`dNdy;zjW`#rAJe2U2X9UHonB&d?+Rq&445IJ?aLVpv1p|Ge5tz#od1A)(|to zU)i6(9K!6c$t%mdX(P;|QTTB*3i@fZTVU|x_S(09Dr9P@?l=CRC@i!$2bNOr!CH^# zE6+Tz8wm30e`t<`W3AZ^IF`&NK3!m1z?pc-4RGK?c5FKBI&PI&emLni?l!eU-HejG z+ujFe{m1BS_^CPzGo@S3#xh>iUALaHVJX3LqrQb zwfXc`#-(wdUTUm2#kK9&K0GPb~qdaZ;p_*LO-TTqx)2o~|xoeAuOb(uxV(X3DJ%j!oZC_7N9NpOTfI?PH$BXnvmE6KGXId%z&Ps>&Djt`_=7O!!$- zi4Ts!=bWmlgqH;#v(REUKqTLI3(Z zcx33(#KI#jx8GoH(Q(^Twi2a16NA&JSRir}2!=p>aZ$xX{t&x8xe24sgzw346wp{bs!go4cKCbpsoyhzuq`ykxJc zJ<1&7&}gCKR4_>C#I4OK9eJH4T+@%-xx_BiG2g&P_2292UUr02fYPv+TkH&SJ|a;L z5>9~`)_KzPy$K8bi=xavAWU7hkhMLr=gzFFU2Q|e7qN;zBi6Wy?^ST-G8 z>ES>~&t|pHrWNJ)k7>_;QFSIB1ra(HLQwxG@Ya$=4N+8p%Xhx~n-C*53|6}H)8B13 zD#qwlw$jO|BD6xntkZ6|*+hmTpHIN6Y-j(aY}t;me=Km5sN`&ShcN?U`qf>1(0}Qh z*2A5f$x=sBXrjC+N6{ne*q+<5)_?NYy4T%dEJ#6O)sq`3RvoO#R%X|X0twesOyGe& zpJ8H`gtDiD~~SipsZcCzUzS^Nn^- z*S$FFsc;>Pyk=)|J}18 zcWk6?po&ceRLgFNO;1|Z28jH){X@UI={#VLqEx;lDCKiqA7?7(4wy=Lr$G3O72CK0 zX+~US5rE+MBvOJRXvB28ySl$wfG~B($$om2+m9zn9kvDAUghuY7v&mDGnq2Y}d)f)~K%D+ZD-?Q!fZb^Uj^nHE_{gx)ow$o0S zVorYo|J?$;W@^?eJoX)HIVbQVB-T*uxWYUMSGu3~X5`<1s_F5zr3B-Vshzz9yg?V{ z*n)fOX659ix3h5gs4R5f&X*iFGuoT-Zs2tSpRw%!Yg8nxDC2$Hqca+!Hl0$OlOzVw-(nkaM~W{@j=^-UJ8e zhh;FJNAcmb`G$>EyL%_woBbbeKS(#pm746>T1gCah(aUyS9HJsDAa<=$B(e+WU<3R;30^b$;_Mk15zl?d{|&z=z5jlf52qwFt1gz%CdzNIbfTa=`W6&b zxwDa;E9Y8T6?9o0 zixlz(73!0^KdQGb05T$GVDHVdPFt4%HH(Q`c$_3UHX2*`Qp zqYYdVZR&%zJ3mWE)C@K!ME#&o3?7o9D$n2f0c*9nIN&e~gSYbiQC9^=y)zQWzc|;A zmx)g3?DgNxZ?v*5G#%hzjv}|VJ}zOpQKIPhP5qp90(^N6sBjHF!vot=-GZ6at-&g$ zt%S(FgGjOWe*0L%F}n?=6308y#|>sYD7FTo5S!AXE`w*LUhfgAJ-1-DC8u!j2lp%t zA8|{j;wZAGc?M;qks3J=G3;NodCb05FXPmJSS=k6fJgitsWn^wDo-*vX^1csayQtZ z$Cd9e9)4#c9rQOrGKITaw3?f}rUBmd6yROCA=s4~SR;qOD<+5yMEI@#P{Y404FUjQ zaz^)hst49;B~>Ah@ALS%@HyD zPDEPAf`ap>*5f5BFDb)?%&!`1ur~f#84f5&ihr(W3LJ1>?>yI?gy+@rd?IQ)b* zlpijjUd3>b6_Lw6^Qu5+!{0~N=X2o-D<|I0Ul0482V>e7OLHLn`yVtVj-%#_-9vHf zBc<$o>FyUrpN2$<9XTg$!?6s6DzSil`x7PK6L220 z=LaqTb|wX{CComC($*?C>X07(YD(dyxe|TrPo}&&{8s4NS=KJGZehld9x%{IpfP1j zy3d#Zf(K%id+p;jtOyF%2H0GkqE9Y;WN1`T7Bc%Gn3VP~F+2h-1yZ>VeSa@iIT!GT z7-<2WZ&PlLco1hcN9CGTYAnKfDQl(y<8!ZR^zjb&i^{cw)(s?UBMHg0w3NLzlKDWb zuVnt)GRN!Jz|tU47|}>a1KvNtS_y+6!-6V-+(O_>QkdZ}(8YB^?nuSb7cUz`#3ovb zsevmBU~}n9O!3rSq%Sdat}XH8BNzM6`06e`IA7*-kK8@^G7-^2A@m>tE5xjMV`_=WfqW`kK>U z5pnVS{tJ>m8Cct1Kh^^i^vrKsI*vSgSo0;BqxRynn^0J8nWmjuuxE%?IqiRS9W(C@ zG-P{<^Q(O&^+sdX`)}tc3_ae**>Kr0t*9^Fd{4QtC)krqzu%Fz8f6<4#-AzvRdR*g z*8{oFYW9Rht}6d|_tUzAZROAWLpLKQ|47N%!}uJJ93%fpBeNTZiU@5gr<`L$i*f1~ z$XZRtfx5wd^uy{7>FVBDx%>FMzZ zYA_#MV*%J$5G*+x0IdfI0`s;O6#%OIGOdhBU1HKUijaEzDO@-eq_W9AVI`^!t<7Wq zxi)24)QvCITx9FLXeyPIHEA1Fjrhn}IS?DQfU2~65&l;~e_7VgVxOHsvb=@eoqMwd zGI~tEHS8Tz*@UJf>u^rOFipf zHZc~VO9-#E#qiYW4~RzsIu2*wlQrEP6~w@Nxw3J?DIg-n3sQ@8klhb?_ofSYwI>W6 zYUoRV%Bo7)hOW!*HmV*+>;-YVe9Dbtl{(SbuJcR=pi77@!2BF=$?mVV&R{90@}H?* zTxtZdHgKN<<=zm!cGGK|d2>6xw$qN+!(#*g6nU9*zh7P}I&D=Fg}%J`c3_HdVz~X< z_M`9W?5|t|i9;qc*}IuBGwI&9dYzw&t4*fLR`2jo2SV2uA~=08kmkp;`7Woahnzd> zX9i=dRA~jTlM-n#xWZnyYbA)kMi@^(9vC4DmivU{{UXQj6(hASYX- zIu4qIW++@<3xEGn(XKuVZKOGEN$U+x@vR`damvsA8gd)c! zg`0C4OQVCfAt#4+bk-VAGy|MGNt75W<1F;h13%}fG0h9axScg$7<=jaxMX%;DRUz z_n2B^LU_dr0eD4R;dh$ms^TY;eM3ju)Yx6N7m@vwv)j>erzBv>(!?5DNz1A*kTu&+fN zNOFv+bM3##X^}j%8!_V9FIv%)>+2RKBRB_L+yJ1uT-l=NdJ{1wz5VZYNI!NBXEPN3nGmV*vLGp%d>(rKqBZ0bnVs3q3JeJ#Kge!1b!rmw=AS~SE>1R*! zX|SjMAD<;N4efu)6Fod_?-A=wdG7Q)B7$Yk9hMvi&Sj;J(hXm5%5HUVTb1H1L(B+Z z2ig*;oLWhFS!jpWHy-g)d`gv*1>Aj*na(~#%s;4+X}kiMPgrx_OW&pEH07pDU4Jy3R%L2HvI4+Xe?@r0f~2 zyu|1GGwaW&TEiy_g~USl9$Tv*Cs#KDZv63ZBjSXA^czO9y*=>t*#@dGijA@dJG*z3Mrq{3>(mOdC`dG1>ZLCWl;}`Cv!DCb}cJ@r=stwlX{O4{&;utbw{e+ z+tD*9TJHnwK~0ufoP_z~ymamx1xV3>&vp$Ied&D-KlZ}{al1P?r@=-@Q{pGY8WVCe zf93vUPle-bwceiV0CIkw2Zqp|)mm-17sBc>IMuUt47i}Kw@+4dgljTl0}A;*T2Fim zcm8EyRpRd%maHmoURm`pH{+7=i3xi(d8s%^kT0iEd+Ei4`GR#GVZ3tDTqlyHm-HTa zBctx558B%@7`6>eqV3QlFhe|ksvX}u+&Pnj(vCuqw^_?C59`YD-~-3e5!UE@RgK=nhuM8k z0QYkynAeOofoo|5MSTko_GwN%SnthvQspNfZ3jYsOBC)<>=1 zIQaDzQuCswTE$qX7WW6#m(%^_4sXoh)jFc~C4?IK{qUUg+Fm6(N0(ghJi*PJ+4fYLZ;_ut%o1H|p=pvQ_*o0)~7nU=mf8@0my5Y`vR>ft& zHeEL!3aK5DMQk+I{kxvCJ9aEpZf{vkC~ibw#JX-x0xUTw+@N?XAxuK(Kc5`}>T&nc zA&O@B^7{`g_3IC&wxrZFxJ`ydJ^DZ5!0&BjZ?Nv1#^dGFOC_B9&68&0S1lwD7@H%w zBv0~!gx$Zk`9o7LAExG#m7YnDzCC#rasSfh`G{8I4>0gzG3mC1rRyv(%iYC^IL38kmDAXMN?4+V0M0yG_Kb9^nmV|bYrnWy=ck8Nfm}rL&C}>KJc%cOw z&JW-DeBaQ}t{!RTL!K*`#A-VC{Yw7OCjslE`9(uN%F8RcqE=GruI=qNpirZl z8*aHq#-LZWcCy?^!Bdak!0LWzQ161Xq6Iel@P&hnQ*FxlQx1Y}?|E!;dMSU&mn$ao zYK0?8SfC;^dYydr9?Kcjd%26n*Dewjb)r`JX2qhlZhEfNMtSYQ zQM+E$O%fdHr@{rn$ zK!R)`T`}zLMWBaiNc92)aKYl>aP4&3iMl`i1j^oqlqcsg#F6TmnFJ6N0#m!io}>`TyxzMKw7}h`x?pMzY?px zUtPvuyyv&GZ#Jv{=3ETHS{Ct=AEb6gjFwitUz~m3Ffh1nAarJoqu;~8up00D%V0wD zkl}Df+2BRlzn857wfdrZI`Oe7nJ;=CKYQxcW$}d$3Svu#A^aI6ixOAVIr}GdfgTU1 zxL%UJY0;@mDPu1O;oTq`;mN!oDmlX1s{`q?x*%-#7IyC?QM>?B>6HSLHF30h-nK42 zAdj_+wdBJP%VVj&6qis>GhQxoyfuxMWO40p*P5E`Iu!7{YmGOYyt$^4?sv&ra--~( zC+fdR)EA#(JXCepU)rJ$9STG#7%}&e&l>EFTFP@z^5q*9-MFtj-mu0kx!_~77;*=H z3@%1}?|u#|mJn(FbN%?+Zd~Sp(i${f;>M6*k-bf}XSic)tL$md-Da;)rG*FZuUkzm zl>wqqSk&8gg-F$(v2+nyWS&qs?D!${-tQ!2pQMD}*HXz^!h5{7k6xtSrW9k{LHQ?H z^MCUxd=j9Xf{S;&PM53zyakqwv1$DDHkFj6NbyNf0%WI@5N90(|O0Kpyl0S5vpNefx1CisAwXD z()kiL>-LfeCrN$CWK^U6cEG`~q9z{1$uXwx*nq$LSbXFe@CXDy2bgDjnw0^2lNVzP z)gMQV@HKN6wrczoN2TaPLGLvzv@aYBP=gvdmO!45DEB|y%{hhuM+eOW^jnQS&5pdg zC$zNqj1Zd~k9gqhH0lhQt{y;bz5a1O`iY+&k4in`>Yu?59bEZVKr5;r37gaa~8X_(G| z1Qu#pH{aG!aKQF$`-5PKYk;O*&Q__5kz$Um$*I@{PoB}bZ86w3neYJ;P?#M*Qg!t1 z{Jnq2xl=>K{B*nCQ(5UpH}$TrlyH}{{9589Djcu(gFIfGfzxuicn>}wOpju(^Ye*( zuws25pG2HWFf-yEVsA_JNDL)aNCu(rxeU@asBjd=KA4YrD97;LeP$#$e2fVAvcJr{ z4q2so?)7`k(Z2b{U(*`|hnUF5LVjenMKPL#l~EqesM3anMV0~jg%tWOf@VvcdTauo zWMcIBP@sr^_TjL_hOKEfy;*yc2u#b*C+DUFg%l>0`sC{x#!DQ_#2!eJPv^{I7hx9v zXx;}Ld{8R*vKQF;3h57AB+yhanEbxi{i4jrQalZ%p}C*x0AV%H{G+- z^3I)H&Uc+uF!c~B4j%VXJXreA!eA!n!?mL>urKpxR;!}i=w5VAfP=-^-i3PYttrj5 zhwQzqFJ8MCA&REhFp5$7_pDZ|Dv@e`zEkNo?+Gx;wti?VpqN)GIL9o0d{|=P<Y)zMCyHi5IT6#w$9Sd61`Cfse6+w zuC1Ftb%AyFg1%VG7L%>iUN*>RT52;Xcf9w_rdcm8QMt4yga02LlmBS}s@23c|K9S9 z>1=iYE&(?GOSP^V*8dA1a>Dv^GjhunBzria!@xA?XG$lH98Sj2xZzhEv&KLfd2u^; z9WVsB=m+7-H%N0G!hA!qI*OLmV(J7sV?w|Eq zp@`}2j~IPKj=Su%4DR~2@1;q9e?~*h?vmdGCk*KSV`MbDp=w87-$3%9BR!c}0$Yog zWZN)JLfevpYTeAD7DD&t2GUxns zZYk2E6x7UQ8`J7T8Sjq(*YOzat`buugv>j+}lMd6FznVj?FB@#OAS&W;w3g#Qbh>o+vLDE&Ou`RjZ^~!Z@_|e4F z+8G)g1bC^4V^JTG$o0eSQOG1^7=V5Ar{@x9jf~Q(^#N;E;qoJb2QG##D{LHy+MbPI zPG>XO;L&qMJ#ISBK0$E0Fxa~Qg1TI$9(z>WLd)cl4miWodPq}H>N+Cc1*4XDn!2tp z4U(Vv3Nn$#DU$~&CN$c>ZQ#2ar?7iu_Br9x8#FHPWTFR)5z=;KI}Bt&5XpjjBHqVu z4Ij8@0T|0UAJpq{b!%6uCTycfn*6@E09sv6ddFHw%D5KZn%=e$lTpS@gzJt4T=%l#PMj1BreB4o^$rfa7DQlT_?No?`J*cF_1B zd%cz~jE+f-n^kxvDB}6a$MZ(zXYMb_@gxO{V%<#FokZSu96UElO1?sG7aDnwp(ZNO zg6SL|f#)o^?^5c*R&A#58FcC(;`d|cr|6bu`+Gi9&oJBciI5^|h!IR>M@U~&0_@#v z^X=Ju5S+N5>P~wN^BnvklcO$nc%T33gRV^ubWMoSqbMI>OA*7hRnTh;s9BcZ+FcGU zF}-4)9y$!|W<=(8TM%sd=ccvS{R)4%N~N|kY}Pp7nso2F-F zcA(H<9z=%PvFiMJx7OOYud~OrKy3t$cs#7lyA02)DAon{zP6S`i=9;~NmsijJ%$jJ zpcgA4r^A*TE?zOb`Rc3x5;fD_eRX{Q{y7Fz zi=>n%fzm&qJyORPI6eqmF^olUQz9#jwTS_U2-bI5(jR4(-fxE*P+%{yjBPTmkZ@BkkwBn~gn$h8Nxt`ftm~ra;*57;Ft4M8N>yor%CpW;uu2*tdr8tAxC&GtMh7zJ@YoiB)OQe8gn+ zuQ+?~X~Yyk))8R<<4|U>$Ko>XF*WiluC)6XgQjE*8T$FWmb=E_YMp%k%iDItwnI^q zZ41}6okusBDrH7gh$uICZ0d^F9j8OJSp{8^LXgzw zo?E>M17>6g52AE$M9`E~%h+l~<`P8U_%XW5wQ2V++e0=E(k;B`?K*sW()^&wlF{wk zwNQ-ipNO3La5vSNbns-T{YxZJ?(&a{t!WGrkUnvmQ+1AyTiD$M#gkyoIg@`I+u_&f z=>abb1M99J3QPd$(ef}UT*?#0{t~B$J4Je!FgDT)f(WE&qWc!6Mz-au%~H1ioYd=3?>aJ> zg`K4IIGYNx2|bjarR6$eTi<$vxPoIOr@O{XxTP5DbR{AFkn--DS1k@_~ZSar_u1pn2Ey?^1n(<`xcWPeqr__5sDT}+)rj$7+YEKc7ij9 z(a+2B;=JSu!{z}g$e%Co&|P7cf9^$yHg^nwr9bce>zRkPJXzoa7kgY|}fl`5D`7HD*NO+mCSbBqTd>DGn_ z69T1H06Mq&IoGK9L~3BaI;>wwHVfFRKR@0RE)zPZ92@VnkiEhk*}Kpve`F-{sqmBY>KxcI4f+g1)|A(2e`^ zbRndYR>pC&fuExLJf;};glSQplHEEx+(XCD>U^p0pBOxiw9rw=?7cI^xL0bsV9Pff z@fZR?>1DHMcJmmnO6VkI|9@cvzF?#9_-JOIw0MmLf*1RUn);?3Q0n>*#t>(8&xUVG z-}jfgkW4_{(9{&>V{=Euv~*UeU8?!q;*gS*BQ3<*V;KUk8Xx(NrM`Auv zF9y#!GFcDY+{M&bM(4T6W~8k_n>a|dzsiUBcBOfG&qI1RyW#{TROSqwwKvUc*@eZV zb(eEH!)h?J*a7+i4uZv|Zc9z=^<3L?-4SSs_FgOX(MutSyJa)F6XXFGK_Ufj z2o-~hxHlTWQ)9;;34{6ML}TSfGfkEOG2yzG8V6Xtd$Ny4oTjAM!g_4Jfi#KQ(Sx~@ ziVP$LfB-mAP~~d)3N%tgAe$~;J3=bi#U2P zD{SST&kGLU1UTJ@;7FNmp(TW^<2zMC0qLfMcAOt(;C6O0>`^fo9Y1@K?@n;LG$R08}eP(eV>z{^DHC z7Ty~Uz4fG*+~x$`Uf>@}q?p|T@sycAGDE7sv9RiS*WP z>j_+*=D^)k<&>R#GVb9wm+h9i2TUl z|6AZzJyo|-9Di6vBTqsPd4kf}@cX5CyMx1aDQL2wN?A-exBF<%yT1e<2i|%^P8j}u zcMAY7suF)H%1Za7X42ENC3~BTM@hNsA+Z^t3k)R+o`az$t+yy45Z(@Hg{vj=3mI?k z%_GFNU<0(=B0Gn%$px81DD*gF8Ggch!_A&6dY!ZlUN#XSqP`IC{@_$h{!iK;L zNX1(fREkwX@ZFFFleV~rp8PI@);tAmcO38U7z^NP)c_QZv}&l!au$=^o9LEN*k~+M z_|Bk^aLT7P>&QbQ!RN;>GPp@L^cZy%+>;uiEB->G#uMPO(YzDwEDw~euiVJpR#OqEp&65rYNPOpCrAAYN5?7 z>Y_dpu>WJ$^@UGT@!s0FG{8w5(L?y@^ous$*rnO zwKe|uBPH36dbS0;xweZ{6i*?wwr;sTg=>LMO1n+6PqD;BO{FZQ zo7>%b8J}OyzAeSs;%0ppLM#ZAPyEHBkAVaJS=uh5-A?aJhLX|i(1X0hYx%Y=pmLX7 z1b2g!h{mj~e#a)q-sMucm?QAPJAF6gZV(rup)9S*l!lM3coNDE`Ag1GKG8E|~Z`VIo1yFhMl6zI&DM`EiS|nc{9CkkN z5DH8TcqAA%pR;&sQ3I8*Z%XMLc{0&P{bMHyi%ABSr?*!WY+IxFJeGPs5GD;`Y-Avff-^2+NB4`DALZv;R*J9je}qFsZZ_%N#QzV22dnrc91gF)TeJZgOtTce zu>De%B}()GD;)WDp*$yExe^K&GNLn$#(J_x>s6bX$wf1?-f17CT~ra{XUms#ddSeC zIzK)WJVW2AzC~!!T%#vT%mEc;UEJKaRP_tI&E$9o_8VLPT5~OY2*A9qD?&!LBp9-c zB=#p&6DESb|LGm*OK!XgPH-Pyv@KQ)b5H6j2$kP|QqB2k`%FuF?fTedt{%jxN7km) zad|;#qq6P8VzU29lfeVKcMa^r9$Doszsve-_GneE8@lCWynWwPt}Zin2>S-wZY(ad zubz=z_= zu8gP)8U3R>%4|PS!8*@3mD4uU3fp!9;J1W|mP!;boQ*u-WB3+YkqAYRYGxc}JK)RV zrm^my^0*akQ_eXi6StBReu%RIU93QrNbpAmMIYeeL>{#;9KHuy|8wlo3Up6yQ?+q* zj=;`-PeBpwq?Wj{A~HMPdq61MQyv?{P6e-LFXhb~{3m9V=|aCi>HbLzAhQ_eegJ5^ zo6$`Z39J;DaRs#Xl=N&rF(VRj^ zk|PZBdYkh$kpY(tK9I&MvCTZdM^SORjINv9F%`IoWd)2kRYXcHg` z@28IEUAH>7Hg{oi@RLotQ;m)zTP>^4yqCdj2QJSMeUv=-(#}5;hUZ-io?eZyXi|9^jNhqMl|3*1D#E(O62o2Ex=0&ZXGh}R|2oC@BmaRQ2 zq$Sfwtw2tUt*~!M z_&v{_#jKAG#Osm+ z8AHLJ9BQhxGuv?|23AS1~TTSF5GwYNVo&$gg`hO8PAbFl(o2m~^ zpj1!P7)ceW|JI33wisBxWmO9CCtE~S=lpfBvOB<9xH2IGv~^c)c@H#gHNn2km2Lc5 zTUuej!u@H8)T%?bUc9Y&|J3)lLivX01t;t+Z+7JYm%vC-F+z?N5EjH>^yNV+DCanM zYsG>RdVJF%+KshPplG-EG05OAt;)kebaGKGFv&e3{0}`XTLlwPcCAjYyEM?eyT`}- zYMXn`mt`Gh68L=J?Qi|F6@`mk;HI5WnqqTX&D`w6Fq^!&6u|KCCg!)&Nh$|f#E?*(M+=dol}hiohPhiK^>h_bKK`% zH2PFbXld4XA|mU_id~QtM(?8Z*t7Z=`@e(`FlI{Z`|%m)F@fHVJq|RdY1e^kj@4!+ za5Rnm+qZK&s{!U!##jc6C$}ID2!IZ*#EX2Aav*O@tIsIq>S%rpT*BFCT<4f%CVwd$ z@fl$D$^GN~KRma@Z*kFuK?Ji|zA+a*P-m`z*N=4|j3 zyoh?q2Ui(6bcKlVmAYAU-r#n~QmBOoPJ(u)a3E>FelQ~Sd)A+YY}I4P1*dIZALXUQ ztI;+jGyVI3mD?(k-8trP+X>EVt+ET8hE$XF;cC#(^>JYIAKX>g(jMdF4qt@OQ|Cv2Y(Weezb+p0t4d)UF7i z1!4}85-X}%_VAwnzwmnbQ>Qg!JI~26II|+kkDMYC2D~sOa1sF7c#HX-O`6SXAmP)> zS;c}!g`7f5xY5q;`mx|<4hA(x!`W{Se29`cNEpN{lnkT?`QQ+d1f+)+`=8yLH~iKO5{Rus2}LkBZ3Vg0Oz#lmC-ef+#Tpo-&mXIorI zbh+lroWj2Lk8RKR@ z;2TZfi@cxd_en729dMrZ6grzPqUEU?Nh7T8x;-{M@ZxfcKf&77&XCc}VO z7M&|<|5UmD2;#W5w?sB9P(g9^^l?-I`dy#}wX8jbX3KTEJ3bZ=fW3z1#U2FWcSu3O zsrDkuD@RATv#&n5-UtWWB%)^JK4(4-zqJ#D)t??@a^2KvTYh;{j6+G*Mh!RC*fxRoTrt+U3W zcKQHGH%{DSPU@gW1T&7zkpGoxJl5B8#gM zCZ+O1Dx$6Wr*yAowB3G>-7{X6xoViJBD`IgpgJr4rn7r=EL>WvHYb@@O5VH4;Cf+5 z7-LRpbER!Jf#Q+4dkCb@$+nwkd|TX)fCks8)P${ULC>b zcA1kx_FtdpQ`kulILNM}H~RON4R=Gm_R}Hy;r=j(S=z>{lL{6zV(cFCM`0Eb6zTA~ zET!SB)QQmvUwHpO&d@;ZN8iwQV&{m=ol>ei6jEj_H4ipB!URNt(_MVxFRZ% z@I7_gPw>&XM|5j)$!4bNpHqa9bX6v^;JUX z?fziS_%RXM`lKR+K2kUoUSux z&h@;Id-m3=oc&NEQD#-f*FA~IpDW-^_vvJ50O&Pq{l7+!4mcM9~+BzKN z- zM%@xS%?iO88Z4(kDs1+&V=>!c@MhNH*G1$7t{{e^W@s)yl83xyuPsKHAE7cCg~)G* zcNf_cxTmZpY}08sOdhMuK4Zx^{=NR)C~nO#^GB2If-^j4WKU^4;ppc^Z8f$65bq!! z>>cFUOmxRdK^5k%vvd1^Pv|!cW4y2TOeHbnVQyD6tSUwAZy;Q^jE-qDQq4OE0=JeLd9W_VZm}#VA)>6ckX%q- z`eCrOk0HHL#@QyeCpR?V&x6jq)fBe4+WEsaQ1QO2zFWIDA9~3U;o3Gg;39DOqSVCO zZlamsOnrs1xe1*zjmE2Yi~l5v`*!|V6)>8irONgiQYw>V)jt9rUeNC^r2F=CihrB= z(ht0{AxUd|5!I1wdHKa+!#LQM4=b``CYIa0W-<}PN7lZt<=!-xCe73k^ortE7L-)! z(itMkF>-r$M2jRba}ETtu1!Fq_6+!wks_U9|G-3oslJM)vzzTTl=gYsa-eJk54hoJVxP4?JhpKTnwOQgEth)s@N10jC6 z!BZ&mHyriMUe5mYW@4m92;1c`$c=`so)eFTg$rae>%r9E7o3Qn#-vXppSX7m23KCu zuJ>Ft%&cphiVlUQSXTKhs$^g=O|SVlS4XaZ;wWF0PQ$^QnKnAfb+y8=yb{v#@eJ^L NA+IWz|J>-q{{fZZZUq1U literal 0 HcmV?d00001 diff --git a/src/components/NewsSection/NewsEntry/NewsEntry.module.css b/src/components/NewsSection/NewsEntry/NewsEntry.module.css index a4bdb0f..a6993ab 100644 --- a/src/components/NewsSection/NewsEntry/NewsEntry.module.css +++ b/src/components/NewsSection/NewsEntry/NewsEntry.module.css @@ -48,7 +48,6 @@ align-self: stretch; color: #494949; - font-family: Inter; font-size: 12px; font-style: normal; font-weight: 500; @@ -87,4 +86,4 @@ .container:hover .releaseDate { margin-right: 1em; -} \ No newline at end of file +} diff --git a/src/profiles/marketplace.ts b/src/profiles/marketplace.ts index 7f380ba..993887c 100644 --- a/src/profiles/marketplace.ts +++ b/src/profiles/marketplace.ts @@ -1,12 +1,15 @@ import { Localized } from "@app/utils/localized"; export interface MarketplaceIndex { - // banner: { - // backgroundUrl: string, - // subHeaderText: string, - // headerText: string, - // profileUUID: string - // }, + banner: Localized<{ + backgroundUrl: string, + backgroundAccent?: string, + preHeaderText?: string, + headerText: string, + + viewProfileUUID: string, + previewUrl?: string, + }>, lastUpdated: Date, profiles: MarketplaceProfile[] } diff --git a/src/routes/AppProfile/index.tsx b/src/routes/AppProfile/index.tsx index 4bad841..ae71895 100644 --- a/src/routes/AppProfile/index.tsx +++ b/src/routes/AppProfile/index.tsx @@ -66,7 +66,7 @@ function AppProfile() {

=&#Hu|M9bW6+}opnh0~BuF4Mlls3huhkKX{W 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 pLWzT%44GO(0VRX=~pXpO6>(~W89YgWy4)xnF` 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

- +
diff --git a/src/routes/Marketplace/Marketplace.module.css b/src/routes/Marketplace/Marketplace.module.css index 8059448..bad2bc9 100644 --- a/src/routes/Marketplace/Marketplace.module.css +++ b/src/routes/Marketplace/Marketplace.module.css @@ -7,11 +7,39 @@ .banner { display: flex; - height: 350px; - padding: 0px 100px; + height: 290px; align-items: center; - gap: 30px; + justify-content: center; + gap: 5px; align-self: stretch; + flex-direction: column; + + background: linear-gradient(68deg, var(--accent) -29.28%, transparent 110.95%), + var(--banner) lightgray 50% / cover no-repeat; +} + +.banner > .preHeader { + color: rgba(15, 17, 24, 0.75); + font-family: "Archivo Black", var(--backupFonts); + font-size: 20px; + font-weight: 400; + text-transform: uppercase; +} + +.banner > .header { + color: #0F1118; + font-family: "Big Shoulders Text", var(--backupFonts); + line-height: 90%; + font-size: 120px; + font-weight: 400; + text-transform: uppercase; +} + +.banner > .buttons { + padding-top: 10px; + display: flex; + align-items: center; + gap: 15px; } .search { diff --git a/src/routes/Marketplace/index.tsx b/src/routes/Marketplace/index.tsx index a93aabe..59ceef4 100644 --- a/src/routes/Marketplace/index.tsx +++ b/src/routes/Marketplace/index.tsx @@ -3,6 +3,11 @@ import { MarketplaceIndex } from "@app/profiles/marketplace"; import MarketplaceSection from "./MarketplaceSection"; import MarketplaceProfileView from "./MarketplaceProfileView"; import { useQuery } from "@tanstack/react-query"; +import { processAssetUrl } from "@app/profiles/utils"; +import { localizeObject } from "@app/utils/localized"; +import Button, { ButtonColor } from "@app/components/Button"; +import { LinkIcon } from "@app/assets/Icons"; +import { askOpenUrl } from "@app/utils/safeUrl"; function Marketplace() { const marketIndexQuery = useQuery({ @@ -18,9 +23,34 @@ function Marketplace() { ; } + const banner = localizeObject(marketIndex.banner, "en-US"); + return
-
+
+ +
+ {banner.preHeaderText} +
+
+ {banner.headerText} +
+
+ + {banner.previewUrl !== undefined && + + } +
diff --git a/src/styles.css b/src/styles.css index db62ffd..5601757 100644 --- a/src/styles.css +++ b/src/styles.css @@ -1,4 +1,7 @@ :root { + --backupFonts: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, + "Apple Color Emoji", "Segoe UI Emoji"; + --accent-rgb: 46, 217, 255; --accent: rgb(var(--accent-rgb)); @@ -42,8 +45,7 @@ * { box-sizing: border-box; - font-family: "Inter", -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, - sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'; + font-family: "Inter", var(--backupFonts); } body { From 3a81f655ae47dbf64afe1610bba767beb54ef3e4 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Thu, 15 Aug 2024 16:13:57 -0400 Subject: [PATCH 61/98] Added "new" text to marketplace banner --- src/routes/Marketplace/Marketplace.module.css | 21 ++++++++++++++++++- src/routes/Marketplace/index.tsx | 12 +++++++---- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/routes/Marketplace/Marketplace.module.css b/src/routes/Marketplace/Marketplace.module.css index bad2bc9..a797df3 100644 --- a/src/routes/Marketplace/Marketplace.module.css +++ b/src/routes/Marketplace/Marketplace.module.css @@ -18,6 +18,24 @@ var(--banner) lightgray 50% / cover no-repeat; } +.banner > .newTag { + display: flex; + padding: 5px 12px; + justify-content: center; + align-items: center; + gap: 5px; + + border-radius: 50px; + background: #FCD548; + border: 2px solid #ffe071; + margin-bottom: 10px; + + color: #4F2600; + font-size: 10px; + font-weight: 800; + text-transform: uppercase; +} + .banner > .preHeader { color: rgba(15, 17, 24, 0.75); font-family: "Archivo Black", var(--backupFonts); @@ -29,6 +47,7 @@ .banner > .header { color: #0F1118; font-family: "Big Shoulders Text", var(--backupFonts); + text-shadow: 4px 4px var(--accent); line-height: 90%; font-size: 120px; font-weight: 400; @@ -36,7 +55,7 @@ } .banner > .buttons { - padding-top: 10px; + margin-top: 12px; display: flex; align-items: center; gap: 15px; diff --git a/src/routes/Marketplace/index.tsx b/src/routes/Marketplace/index.tsx index 59ceef4..8a9dbc0 100644 --- a/src/routes/Marketplace/index.tsx +++ b/src/routes/Marketplace/index.tsx @@ -6,7 +6,6 @@ import { useQuery } from "@tanstack/react-query"; import { processAssetUrl } from "@app/profiles/utils"; import { localizeObject } from "@app/utils/localized"; import Button, { ButtonColor } from "@app/components/Button"; -import { LinkIcon } from "@app/assets/Icons"; import { askOpenUrl } from "@app/utils/safeUrl"; function Marketplace() { @@ -32,15 +31,20 @@ function Marketplace() { "--accent": banner.backgroundAccent === undefined ? "transparent" : banner.backgroundAccent } as React.CSSProperties}> -
- {banner.preHeaderText} +
+ New!
+ {banner.preHeaderText !== undefined && +
+ {banner.preHeaderText} +
+ }
{banner.headerText}
{banner.previewUrl !== undefined && From cf444c0d909f108766767543d7472bb075275639 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Fri, 16 Aug 2024 19:09:56 -0400 Subject: [PATCH 62/98] Add user agent to download request and other improvements --- src-tauri/Cargo.lock | 1 + src-tauri/Cargo.toml | 1 + src-tauri/src/main.rs | 33 +++++++++++++++++--- src-tauri/src/utils.rs | 39 +++++++++++++++++++----- src/components/PayloadProgress/index.tsx | 4 +-- 5 files changed, 63 insertions(+), 15 deletions(-) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 5733892..615f7f8 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -5485,6 +5485,7 @@ dependencies = [ "clap", "directories", "futures-util", + "lazy_static", "log", "minisign", "opener", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index f3111fb..7a34904 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -47,6 +47,7 @@ minisign = "0.7.6" opener = { version = "0.7.1", features = ["reveal"] } async-trait = "0.1.74" clap = { version = "4.5.13", features = ["derive"] } +lazy_static = "1.5.0" [features] # this feature is used for production builds or when `devPath` points to the filesystem diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 489a6e2..5b93ee6 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -108,9 +108,14 @@ fn profile_folder_state(path: String, wanted_tag: String) -> ProfileFolderState // when i was getting disk space in rust i used "free_space" from the fs2 crate because it takes a path and works out what drive that would be #[tauri::command(async)] -async fn download_and_install_profile(handle: AppHandle, profile_path: String, uuid: String, tag: String, - temp_path: String, content: Vec) -> Result<(), String> { - +async fn download_and_install_profile( + handle: AppHandle, + profile_path: String, + uuid: String, + tag: String, + temp_path: String, + content: Vec +) -> Result<(), String> { let mut temp_file = PathBuf::from(&temp_path); temp_file.push(format!("{}.temp", uuid)); let _ = fs::remove_file(&temp_file); @@ -127,11 +132,29 @@ async fn download_and_install_profile(handle: AppHandle, profile_path: String, u continue; } - for file in c.files { + let file_count = c.files.len() as u64; + for (index, file) in c.files.iter().enumerate() { // Download - download(&handle, &file.url, &temp_file).await?; + + download( + &handle, + &file.url, + &temp_file, + file_count, + index as u64 + ).await?; // Extract/install + + let _ = handle.emit_all( + "progress_info", + ProgressPayload { + state: "installing".to_string(), + current: (index + 1) as u64, + total: file_count, + }, + ); + if file.file_type == "zip" { extract(&temp_file, &install_path)?; } else if file.file_type == "encrypted" { diff --git a/src-tauri/src/utils.rs b/src-tauri/src/utils.rs index a6a6101..d564e6d 100644 --- a/src-tauri/src/utils.rs +++ b/src-tauri/src/utils.rs @@ -1,13 +1,31 @@ use crate::ProgressPayload; use futures_util::StreamExt; -use reqwest; +use lazy_static::lazy_static; +use reqwest::{self, Client}; +use reqwest::header::{HeaderMap, HeaderValue, USER_AGENT}; use sevenz_rust::Password; +use std::io::{BufWriter, Write}; use std::path::{Path, PathBuf}; use std::time::{Duration, Instant}; -use std::{fs::File, io::Write}; +use std::fs::File; use tauri::{AppHandle, Manager}; +lazy_static! { + pub static ref REQWEST_CLIENT: reqwest::Client = { + let mut headers = HeaderMap::new(); + + // Add user-agent + headers.insert(USER_AGENT, HeaderValue::from_str("YARC-Launcher (contact@yarg.in)").unwrap()); + + Client::builder() + .tcp_keepalive(Some(Duration::from_secs(10))) + .default_headers(headers) + .build() + .expect("Failed to create Reqwest client.") + }; +} + const LETTERS: &str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; const EMIT_BUFFER_RATE: f64 = 1.0 / 15.0; @@ -34,21 +52,25 @@ pub async fn download( app: &AppHandle, url: &str, output_path: &Path, + file_count: u64, + file_index: u64 ) -> Result<(), String> { // Send the initial request - let download = reqwest::get(url) + let download = REQWEST_CLIENT + .get(url) + .send() .await .map_err(|e| format!("Failed to initialize download from `{}`.\n{:?}", &url, e))?; let total_size = download.content_length().unwrap(); // Create the file to download into - let mut file = File::create(output_path).map_err(|e| { + let mut file = BufWriter::new(File::create(output_path).map_err(|e| { format!( "Failed to create file `{}`.\n{:?}", &output_path.display(), e ) - })?; + })?); let mut current_downloaded: u64 = 0; let mut stream = download.bytes_stream(); @@ -56,7 +78,8 @@ pub async fn download( // Download into the file while let Some(item) = stream.next().await { - let chunk = item.map_err(|e| format!("Error while downloading file.\n{:?}", e))?; + let chunk = item + .map_err(|e| format!("Error while downloading file.\n{:?}", e))?; file.write_all(&chunk) .map_err(|e| format!("Error while writing to file.\n{:?}", e))?; @@ -72,8 +95,8 @@ pub async fn download( "progress_info", ProgressPayload { state: "downloading".to_string(), - current: current_downloaded, - total: total_size, + current: current_downloaded + (total_size * file_index), + total: total_size * file_count, }, ); diff --git a/src/components/PayloadProgress/index.tsx b/src/components/PayloadProgress/index.tsx index d60f785..25697f1 100644 --- a/src/components/PayloadProgress/index.tsx +++ b/src/components/PayloadProgress/index.tsx @@ -42,11 +42,11 @@ const ProgressDownloading: React.FC = ({ payload, full }; const ProgressInstalling: React.FC = () => { - return (Installing); + return (Installing – This could take a while...); }; const ProgressVerifying: React.FC = () => { return (Verifying); }; -export default PayloadProgress; \ No newline at end of file +export default PayloadProgress; From aebf24874d997463b6ec21cd236cd691d8e66af1 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Fri, 16 Aug 2024 19:18:58 -0400 Subject: [PATCH 63/98] Show queue progress on launch button --- src/components/PayloadProgress/index.tsx | 15 ++++++++++----- src/routes/AppProfile/LaunchButton.tsx | 19 +++++++++++++++---- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/components/PayloadProgress/index.tsx b/src/components/PayloadProgress/index.tsx index 25697f1..c2cf1ac 100644 --- a/src/components/PayloadProgress/index.tsx +++ b/src/components/PayloadProgress/index.tsx @@ -15,7 +15,7 @@ const PayloadProgress: React.FC = ({ payload, defaultText = "Loading", fu case "downloading": return ; case "installing": - return ; + return ; case "verifying": return ; default: @@ -27,12 +27,12 @@ const ProgressWaiting: React.FC = () => { return (Queued); }; -interface ProgressDownloadingProps { +interface ProgressProps { payload: TaskPayload; fullMode?: boolean; } -const ProgressDownloading: React.FC = ({ payload, fullMode }: ProgressDownloadingProps) => { +const ProgressDownloading: React.FC = ({ payload, fullMode }: ProgressProps) => { return {fullMode && "Downloading " @@ -41,8 +41,13 @@ const ProgressDownloading: React.FC = ({ payload, full ; }; -const ProgressInstalling: React.FC = () => { - return (Installing – This could take a while...); +const ProgressInstalling: React.FC = ({ fullMode }: ProgressProps) => { + return + Installing + {fullMode && + <> – This could take a while... + } + ; }; const ProgressVerifying: React.FC = () => { diff --git a/src/routes/AppProfile/LaunchButton.tsx b/src/routes/AppProfile/LaunchButton.tsx index 8c4722f..823d45a 100644 --- a/src/routes/AppProfile/LaunchButton.tsx +++ b/src/routes/AppProfile/LaunchButton.tsx @@ -3,6 +3,8 @@ import { InstallingIcon, UpdateIcon } from "@app/assets/Icons"; import Button from "@app/components/Button"; import { ProfileFolderState, ProfileState } from "@app/hooks/useProfileState"; import { localize } from "@app/utils/localized"; +import { usePayload } from "@app/tasks/payload"; +import PayloadProgress from "@app/components/PayloadProgress"; interface Props { profileState: ProfileState @@ -18,6 +20,8 @@ export function LaunchButton({ profileState }: Props) { launch, } = profileState; + const payload = usePayload(currentTask?.taskUUID); + const profile = activeProfile.profile; // Loading button @@ -34,10 +38,17 @@ export function LaunchButton({ profileState }: Props) { // Installing button if (currentTask !== undefined) { - return ; + if (payload !== undefined) { + return ; + } else { + return ; + } } // Update/install button From 3bcd86a7c7dbfdda0655cbce8fad61d1025ac834 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Sat, 17 Aug 2024 14:38:53 -0400 Subject: [PATCH 64/98] Detect if the user is offline --- package-lock.json | 784 +++++++++++++++++++++++++ package.json | 1 + src/components/LoadingScreen/index.tsx | 17 +- src/dialogs/Dialogs/OfflineDialog.tsx | 30 + src/hooks/useOfflineStatus.ts | 16 + src/profiles/store.ts | 41 +- src/profiles/types.ts | 4 +- 7 files changed, 871 insertions(+), 22 deletions(-) create mode 100644 src/dialogs/Dialogs/OfflineDialog.tsx create mode 100644 src/hooks/useOfflineStatus.ts diff --git a/package-lock.json b/package-lock.json index a7f9b9e..ae0de3d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,6 +22,7 @@ "date-fns": "^2.30.0", "dompurify": "^3.0.6", "gray-matter": "^4.0.3", + "is-online": "^11.0.0", "js-video-url-parser": "^0.5.1", "lodash": "^4.17.21", "marked": "^11.1.0", @@ -947,6 +948,11 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==" + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1957,6 +1963,17 @@ "win32" ] }, + "node_modules/@sindresorhus/is": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", + "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, "node_modules/@sindresorhus/merge-streams": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-1.0.0.tgz", @@ -2363,6 +2380,17 @@ "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz", "integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==" }, + "node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "dependencies": { + "defer-to-connect": "^2.0.1" + }, + "engines": { + "node": ">=14.16" + } + }, "node_modules/@tanstack/query-core": { "version": "5.14.0", "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.14.0.tgz", @@ -2685,6 +2713,11 @@ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" + }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -3101,6 +3134,21 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/aggregate-error": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", + "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", + "dependencies": { + "clean-stack": "^4.0.0", + "indent-string": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -3667,6 +3715,31 @@ "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", "dev": true }, + "node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/cacheable-request": { + "version": "10.2.14", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", + "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", + "dependencies": { + "@types/http-cache-semantics": "^4.0.2", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.3", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + } + }, "node_modules/call-bind": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", @@ -3773,6 +3846,31 @@ "safe-buffer": "^5.0.1" } }, + "node_modules/clean-stack": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", + "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", + "dependencies": { + "escape-string-regexp": "5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clean-stack/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -3787,6 +3885,20 @@ "node": ">=12" } }, + "node_modules/clone-regexp": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-3.0.0.tgz", + "integrity": "sha512-ujdnoq2Kxb8s3ItNBtnYeXdm07FcU0u8ARAT1lQ2YdMwQC+cdiXX8KoqMVuglztILivceTtp4ivqGSmEmhBUJw==", + "dependencies": { + "is-regexp": "^3.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -3820,6 +3932,17 @@ "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", "dev": true }, + "node_modules/convert-hrtime": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz", + "integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -3975,12 +4098,45 @@ } } }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "engines": { + "node": ">=10" + } + }, "node_modules/define-data-property": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", @@ -4065,6 +4221,28 @@ "node": ">=8" } }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dns-socket": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/dns-socket/-/dns-socket-4.2.2.tgz", + "integrity": "sha512-BDeBd8najI4/lS00HSKpdFia+OvUMytaVjfzR9n5Lq8MlZRSvtbI+uLtx1+XmQFls5wFU9dssccTmQQ6nfpjdg==", + "dependencies": { + "dns-packet": "^5.2.4" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -4939,6 +5117,14 @@ "is-callable": "^1.1.3" } }, + "node_modules/form-data-encoder": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", + "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", + "engines": { + "node": ">= 14.17" + } + }, "node_modules/fraction.js": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", @@ -4994,6 +5180,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/function-timeout": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/function-timeout/-/function-timeout-0.1.1.tgz", + "integrity": "sha512-0NVVC0TaP7dSTvn1yMiy6d6Q8gifzbvQafO46RtLG/kHJUBNd+pVRGOBoK44wNBvtSPUJRfdVvkFdD3p0xvyZg==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/function.prototype.name": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", @@ -5074,6 +5271,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-symbol-description": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", @@ -5205,6 +5413,30 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/got": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/got/-/got-13.0.0.tgz", + "integrity": "sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==", + "dependencies": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -5379,6 +5611,23 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, + "node_modules/http2-wrapper": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", + "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, "node_modules/https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", @@ -5439,6 +5688,17 @@ "node": ">=0.8.19" } }, + "node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -5477,6 +5737,17 @@ "loose-envify": "^1.0.0" } }, + "node_modules/ip-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz", + "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-arguments": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", @@ -5672,6 +5943,21 @@ "node": ">=0.10.0" } }, + "node_modules/is-ip": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-5.0.1.tgz", + "integrity": "sha512-FCsGHdlrOnZQcp0+XT5a+pYowf33itBalCl+7ovNXC/7o5BhIpG14M3OrpPPdBSIQJCm+0M5+9mO7S9VVTTCFw==", + "dependencies": { + "ip-regex": "^5.0.0", + "super-regex": "^0.2.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-map": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", @@ -5733,6 +6019,23 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-online": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/is-online/-/is-online-11.0.0.tgz", + "integrity": "sha512-LY3UOlRGCofw5RMhsEFHQ9xQ6jJXL9wFWWIfmSdNo8vO+DrIvan3G9hAPZiMRXddVZS2v9+CV4z9PslLhBGIyA==", + "dependencies": { + "got": "^13.0.0", + "p-any": "^4.0.0", + "p-timeout": "^6.1.2", + "public-ip": "^7.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -5758,6 +6061,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-regexp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-3.1.0.tgz", + "integrity": "sha512-rbku49cWloU5bSMI+zaRaXdQHXnthP6DZ/vLnfdSKyL4zUzuWnomtOEiZZOd+ioQ+avFo/qau3KPTc7Fjy1uPA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-set": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", @@ -5926,6 +6240,11 @@ "node": ">=4" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -5981,6 +6300,14 @@ "node": ">=4.0" } }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -6063,6 +6390,17 @@ "tslib": "^2.0.3" } }, + "node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -6147,6 +6485,17 @@ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, + "node_modules/mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -6287,6 +6636,17 @@ "node": ">=0.10.0" } }, + "node_modules/normalize-url": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", + "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -6453,6 +6813,29 @@ "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", "dev": true }, + "node_modules/p-any": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-any/-/p-any-4.0.0.tgz", + "integrity": "sha512-S/B50s+pAVe0wmEZHmBs/9yJXeZ5KhHzOsgKzt0hRdgkoR3DxW9ts46fcsWi/r3VnzsnkKS7q4uimze+zjdryw==", + "dependencies": { + "p-cancelable": "^3.0.0", + "p-some": "^6.0.0" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "engines": { + "node": ">=12.20" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -6483,6 +6866,32 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-some": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-some/-/p-some-6.0.0.tgz", + "integrity": "sha512-CJbQCKdfSX3fIh8/QKgS+9rjm7OBNUTmwWswAFQAhc8j1NR1dsEDETUEuVUtQHZpV+J03LqWBEwvu0g1Yn+TYg==", + "dependencies": { + "aggregate-error": "^4.0.0", + "p-cancelable": "^3.0.0" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.2.tgz", + "integrity": "sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -6841,6 +7250,22 @@ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, + "node_modules/public-ip": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/public-ip/-/public-ip-7.0.1.tgz", + "integrity": "sha512-DdNcqcIbI0wEeCBcqX+bmZpUCvrDMJHXE553zgyG1MZ8S1a/iCCxmK9iTjjql+SpHSv4cZkmRv5/zGYW93AlCw==", + "dependencies": { + "dns-socket": "^4.2.2", + "got": "^13.0.0", + "is-ip": "^5.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -6894,6 +7319,17 @@ } ] }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -7172,6 +7608,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -7190,6 +7631,20 @@ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, + "node_modules/responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "dependencies": { + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -7674,6 +8129,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/super-regex": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/super-regex/-/super-regex-0.2.0.tgz", + "integrity": "sha512-WZzIx3rC1CvbMDloLsVw0lkZVKJWbrkJ0k1ghKFmcnPrW1+jWbgTkTEWVtD9lMdmI4jZEz40+naBxl1dCUhXXw==", + "dependencies": { + "clone-regexp": "^3.0.0", + "function-timeout": "^0.1.0", + "time-span": "^5.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -7752,6 +8223,20 @@ "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", "dev": true }, + "node_modules/time-span": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz", + "integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==", + "dependencies": { + "convert-hrtime": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/timers-browserify": { "version": "2.0.12", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", @@ -9056,6 +9541,11 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==" + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -9580,6 +10070,11 @@ "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", "optional": true }, + "@sindresorhus/is": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", + "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==" + }, "@sindresorhus/merge-streams": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-1.0.0.tgz", @@ -9775,6 +10270,14 @@ "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz", "integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==" }, + "@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "requires": { + "defer-to-connect": "^2.0.1" + } + }, "@tanstack/query-core": { "version": "5.14.0", "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.14.0.tgz", @@ -9961,6 +10464,11 @@ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" }, + "@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" + }, "@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -10253,6 +10761,15 @@ "dev": true, "requires": {} }, + "aggregate-error": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", + "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", + "requires": { + "clean-stack": "^4.0.0", + "indent-string": "^5.0.0" + } + }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -10657,6 +11174,25 @@ "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", "dev": true }, + "cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==" + }, + "cacheable-request": { + "version": "10.2.14", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", + "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", + "requires": { + "@types/http-cache-semantics": "^4.0.2", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.3", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + } + }, "call-bind": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", @@ -10723,6 +11259,21 @@ "safe-buffer": "^5.0.1" } }, + "clean-stack": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", + "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", + "requires": { + "escape-string-regexp": "5.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" + } + } + }, "cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -10734,6 +11285,14 @@ "wrap-ansi": "^7.0.0" } }, + "clone-regexp": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-3.0.0.tgz", + "integrity": "sha512-ujdnoq2Kxb8s3ItNBtnYeXdm07FcU0u8ARAT1lQ2YdMwQC+cdiXX8KoqMVuglztILivceTtp4ivqGSmEmhBUJw==", + "requires": { + "is-regexp": "^3.0.0" + } + }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -10767,6 +11326,11 @@ "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", "dev": true }, + "convert-hrtime": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz", + "integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==" + }, "convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -10889,12 +11453,32 @@ "ms": "2.1.2" } }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + }, + "dependencies": { + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + } + } + }, "deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, "define-data-property": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", @@ -10966,6 +11550,22 @@ "path-type": "^4.0.0" } }, + "dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "requires": { + "@leichtgewicht/ip-codec": "^2.0.1" + } + }, + "dns-socket": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/dns-socket/-/dns-socket-4.2.2.tgz", + "integrity": "sha512-BDeBd8najI4/lS00HSKpdFia+OvUMytaVjfzR9n5Lq8MlZRSvtbI+uLtx1+XmQFls5wFU9dssccTmQQ6nfpjdg==", + "requires": { + "dns-packet": "^5.2.4" + } + }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -11658,6 +12258,11 @@ "is-callable": "^1.1.3" } }, + "form-data-encoder": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", + "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==" + }, "fraction.js": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", @@ -11693,6 +12298,11 @@ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true }, + "function-timeout": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/function-timeout/-/function-timeout-0.1.1.tgz", + "integrity": "sha512-0NVVC0TaP7dSTvn1yMiy6d6Q8gifzbvQafO46RtLG/kHJUBNd+pVRGOBoK44wNBvtSPUJRfdVvkFdD3p0xvyZg==" + }, "function.prototype.name": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", @@ -11746,6 +12356,11 @@ "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", "dev": true }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, "get-symbol-description": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", @@ -11840,6 +12455,24 @@ "get-intrinsic": "^1.1.3" } }, + "got": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/got/-/got-13.0.0.tgz", + "integrity": "sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==", + "requires": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + } + }, "graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -11974,6 +12607,20 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, + "http2-wrapper": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", + "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + } + }, "https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", @@ -12008,6 +12655,11 @@ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true }, + "indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==" + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -12043,6 +12695,11 @@ "loose-envify": "^1.0.0" } }, + "ip-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz", + "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==" + }, "is-arguments": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", @@ -12175,6 +12832,15 @@ "is-extglob": "^2.1.1" } }, + "is-ip": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-5.0.1.tgz", + "integrity": "sha512-FCsGHdlrOnZQcp0+XT5a+pYowf33itBalCl+7ovNXC/7o5BhIpG14M3OrpPPdBSIQJCm+0M5+9mO7S9VVTTCFw==", + "requires": { + "ip-regex": "^5.0.0", + "super-regex": "^0.2.0" + } + }, "is-map": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", @@ -12212,6 +12878,17 @@ "has-tostringtag": "^1.0.0" } }, + "is-online": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/is-online/-/is-online-11.0.0.tgz", + "integrity": "sha512-LY3UOlRGCofw5RMhsEFHQ9xQ6jJXL9wFWWIfmSdNo8vO+DrIvan3G9hAPZiMRXddVZS2v9+CV4z9PslLhBGIyA==", + "requires": { + "got": "^13.0.0", + "p-any": "^4.0.0", + "p-timeout": "^6.1.2", + "public-ip": "^7.0.1" + } + }, "is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -12228,6 +12905,11 @@ "has-tostringtag": "^1.0.0" } }, + "is-regexp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-3.1.0.tgz", + "integrity": "sha512-rbku49cWloU5bSMI+zaRaXdQHXnthP6DZ/vLnfdSKyL4zUzuWnomtOEiZZOd+ioQ+avFo/qau3KPTc7Fjy1uPA==" + }, "is-set": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", @@ -12351,6 +13033,11 @@ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -12395,6 +13082,14 @@ "object.assign": "^4.1.3" } }, + "keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "requires": { + "json-buffer": "3.0.1" + } + }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -12459,6 +13154,11 @@ "tslib": "^2.0.3" } }, + "lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==" + }, "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -12527,6 +13227,11 @@ } } }, + "mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==" + }, "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -12642,6 +13347,11 @@ "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", "dev": true }, + "normalize-url": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", + "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==" + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -12766,6 +13476,20 @@ "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", "dev": true }, + "p-any": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-any/-/p-any-4.0.0.tgz", + "integrity": "sha512-S/B50s+pAVe0wmEZHmBs/9yJXeZ5KhHzOsgKzt0hRdgkoR3DxW9ts46fcsWi/r3VnzsnkKS7q4uimze+zjdryw==", + "requires": { + "p-cancelable": "^3.0.0", + "p-some": "^6.0.0" + } + }, + "p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==" + }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -12784,6 +13508,20 @@ "p-limit": "^3.0.2" } }, + "p-some": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-some/-/p-some-6.0.0.tgz", + "integrity": "sha512-CJbQCKdfSX3fIh8/QKgS+9rjm7OBNUTmwWswAFQAhc8j1NR1dsEDETUEuVUtQHZpV+J03LqWBEwvu0g1Yn+TYg==", + "requires": { + "aggregate-error": "^4.0.0", + "p-cancelable": "^3.0.0" + } + }, + "p-timeout": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.2.tgz", + "integrity": "sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==" + }, "pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -13028,6 +13766,16 @@ } } }, + "public-ip": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/public-ip/-/public-ip-7.0.1.tgz", + "integrity": "sha512-DdNcqcIbI0wEeCBcqX+bmZpUCvrDMJHXE553zgyG1MZ8S1a/iCCxmK9iTjjql+SpHSv4cZkmRv5/zGYW93AlCw==", + "requires": { + "dns-socket": "^4.2.2", + "got": "^13.0.0", + "is-ip": "^5.0.1" + } + }, "punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -13055,6 +13803,11 @@ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -13241,6 +13994,11 @@ "supports-preserve-symlinks-flag": "^1.0.0" } }, + "resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -13253,6 +14011,14 @@ "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "dev": true }, + "responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "requires": { + "lowercase-keys": "^3.0.0" + } + }, "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -13602,6 +14368,16 @@ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, + "super-regex": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/super-regex/-/super-regex-0.2.0.tgz", + "integrity": "sha512-WZzIx3rC1CvbMDloLsVw0lkZVKJWbrkJ0k1ghKFmcnPrW1+jWbgTkTEWVtD9lMdmI4jZEz40+naBxl1dCUhXXw==", + "requires": { + "clone-regexp": "^3.0.0", + "function-timeout": "^0.1.0", + "time-span": "^5.1.0" + } + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -13660,6 +14436,14 @@ "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", "dev": true }, + "time-span": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz", + "integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==", + "requires": { + "convert-hrtime": "^5.0.0" + } + }, "timers-browserify": { "version": "2.0.12", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", diff --git a/package.json b/package.json index c71f6fe..d682a15 100644 --- a/package.json +++ b/package.json @@ -53,6 +53,7 @@ "date-fns": "^2.30.0", "dompurify": "^3.0.6", "gray-matter": "^4.0.3", + "is-online": "^11.0.0", "js-video-url-parser": "^0.5.1", "lodash": "^4.17.21", "marked": "^11.1.0", diff --git a/src/components/LoadingScreen/index.tsx b/src/components/LoadingScreen/index.tsx index ca31869..6c122d0 100644 --- a/src/components/LoadingScreen/index.tsx +++ b/src/components/LoadingScreen/index.tsx @@ -10,7 +10,10 @@ import { appWindow } from "@tauri-apps/api/window"; import { launch } from "@app/profiles/actions"; import { getPathForProfile } from "@app/profiles/utils"; import { useDirectories } from "@app/profiles/directories"; -import { showErrorDialog } from "@app/dialogs"; +import { createAndShowDialog, showErrorDialog } from "@app/dialogs"; +import { useOfflineStatus } from "@app/hooks/useOfflineStatus"; +import isOnline from "is-online"; +import { OfflineDialog } from "@app/dialogs/Dialogs/OfflineDialog"; enum LoadingState { "LOADING", @@ -32,6 +35,12 @@ const LoadingScreen: React.FC = (props: Props) => { useEffect(() => { (async () => { try { + const offline = !await isOnline(); + if (offline) { + const offlineStatus = useOfflineStatus.getState(); + offlineStatus.setOffline(true); + } + // Make sure to save the settings afterwards in case a new key has been added // If "get" is called and the settings didn't save, it would cause an error. await settingsManager.initialize(); @@ -50,7 +59,7 @@ const LoadingScreen: React.FC = (props: Props) => { await directories.setDirs(downloadLocation); directories = useDirectories.getState(); - await profileStore.activateProfilesFromSettings(); + await profileStore.activateProfilesFromSettings(offline); profileStore = useProfileStore.getState(); if (!onboardingCompleted) { @@ -75,6 +84,10 @@ const LoadingScreen: React.FC = (props: Props) => { // Add a tiny bit of delay so the loading screen doesn't just instantly disappear await new Promise(r => setTimeout(r, 250)); + + if (offline) { + createAndShowDialog(OfflineDialog); + } } catch (e) { console.error(e); logError(JSON.stringify(serializeError(e))); diff --git a/src/dialogs/Dialogs/OfflineDialog.tsx b/src/dialogs/Dialogs/OfflineDialog.tsx new file mode 100644 index 0000000..9d7e3b7 --- /dev/null +++ b/src/dialogs/Dialogs/OfflineDialog.tsx @@ -0,0 +1,30 @@ +import Button, { ButtonColor } from "@app/components/Button"; +import { BaseDialog } from "./BaseDialog"; +import { closeDialog } from ".."; + +export class OfflineDialog extends BaseDialog> { + constructor(props: Record) { + super(props); + } + + getInnerContents() { + return <> +

+ The YARC Launcher cannot connect to the internet and is starting in offline mode. + If your internet connection returns, restart the launcher to go back into online mode. +

+ ; + } + + getTitle() { + return <>Offline Mode; + } + + getButtons() { + return <> + + ; + } +} diff --git a/src/hooks/useOfflineStatus.ts b/src/hooks/useOfflineStatus.ts new file mode 100644 index 0000000..0bcc96c --- /dev/null +++ b/src/hooks/useOfflineStatus.ts @@ -0,0 +1,16 @@ +import { create } from "zustand"; + +interface OfflineStore { + isOffline: boolean; + + setOffline: (isOffline: boolean) => void; +} + +export const useOfflineStatus = create()((set) => ({ + isOffline: false, + setOffline: (isOffline) => { + set({ + isOffline: isOffline + }); + } +})); diff --git a/src/profiles/store.ts b/src/profiles/store.ts index 3cc4b23..b3fcb41 100644 --- a/src/profiles/store.ts +++ b/src/profiles/store.ts @@ -3,13 +3,14 @@ import { ActiveProfile, Profile, Version, VersionList } from "./types"; import { v4 as createUUID } from "uuid"; import { settingsManager } from "@app/settings"; import { showErrorDialog } from "@app/dialogs"; +import { off } from "process"; export interface ProfileStore { activeProfiles: ActiveProfile[], getProfileByUUID: (uuid: string) => ActiveProfile | undefined, - activateProfilesFromSettings: () => Promise, + activateProfilesFromSettings: (offline: boolean) => Promise, activateProfile: (profileUrl: string) => Promise, removeProfile: (uuid: string) => Promise, updateProfile: (activeProfile: ActiveProfile) => Promise, @@ -22,32 +23,34 @@ export const useProfileStore = create()((set, get) => ({ return get().activeProfiles.find(i => i.uuid === uuid); }, - activateProfilesFromSettings: async () => { + activateProfilesFromSettings: async (offline: boolean) => { const activeProfiles = settingsManager.getCache("activeProfiles"); - - // Attempt to update the profiles let errored = false; - for (const profile of activeProfiles) { - const newProfile = await tryFetchProfile(profile.originalUrl); - if (newProfile === undefined) { - errored = true; - continue; + if (!offline) { + // Attempt to update the profiles + for (const profile of activeProfiles) { + const newProfile = await tryFetchProfile(profile.originalUrl); + + if (newProfile === undefined) { + errored = true; + continue; + } + + profile.profile = newProfile; } - profile.profile = newProfile; - } + // Attempt to update versions + for (const profile of activeProfiles) { + const newVersion = await tryFetchVersion(profile.profile, profile.selectedVersion); - // Attempt to update versions - for (const profile of activeProfiles) { - const newVersion = await tryFetchVersion(profile.profile, profile.selectedVersion); + if (newVersion === undefined) { + errored = true; + continue; + } - if (newVersion === undefined) { - errored = true; - continue; + profile.version = newVersion; } - - profile.version = newVersion; } set({ diff --git a/src/profiles/types.ts b/src/profiles/types.ts index 0ec26cd..cc5c40a 100644 --- a/src/profiles/types.ts +++ b/src/profiles/types.ts @@ -26,7 +26,9 @@ export interface Version { launchOptions?: { [platform in OS]?: { executablePath: string, - arguments: string[] + arguments: string[], + offlineArgument?: string, + languageArgument?: string } } } From fbbb2d451882ddf700018a07fab3d05cf4a367da Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Sat, 17 Aug 2024 21:30:28 -0400 Subject: [PATCH 65/98] Don't show news in offline mode --- .../NewsSection/NewsSection.module.css | 25 +++++++++++++++--- src/components/NewsSection/index.tsx | 26 ++++++++++++++----- 2 files changed, 40 insertions(+), 11 deletions(-) diff --git a/src/components/NewsSection/NewsSection.module.css b/src/components/NewsSection/NewsSection.module.css index a274f48..f60b3da 100644 --- a/src/components/NewsSection/NewsSection.module.css +++ b/src/components/NewsSection/NewsSection.module.css @@ -6,7 +6,24 @@ align-self: stretch; } -.header_container { +.offlineContainer { + padding-top: 50px; + + display: flex; + flex-direction: column; + align-items: center; + flex: 1 0 0; + align-self: stretch; + + color: #000; + font-size: 24px; + font-weight: 700; + text-transform: uppercase; + + opacity: 0.5; +} + +.headerContainer { display: flex; padding-bottom: 0px; justify-content: space-between; @@ -17,7 +34,7 @@ border-bottom: 1px solid rgba(0, 0, 0, 0.1); } -.header_text { +.headerText { display: flex; align-items: center; gap: 5px; @@ -30,11 +47,11 @@ text-transform: uppercase; } -.load_more { +.loadMore { color: rgba(0, 0, 0, 0.5); font-size: 0.8em; font-weight: 600; cursor: pointer; text-align: center; width: 100%; -} \ No newline at end of file +} diff --git a/src/components/NewsSection/index.tsx b/src/components/NewsSection/index.tsx index b075091..3226a41 100644 --- a/src/components/NewsSection/index.tsx +++ b/src/components/NewsSection/index.tsx @@ -3,24 +3,36 @@ import styles from "./NewsSection.module.css"; import NewsEntry from "./NewsEntry"; import { useNews } from "@app/hooks/useNews"; import { useState } from "react"; +import { useOfflineStatus } from "@app/hooks/useOfflineStatus"; interface Props { - categoryFilter?: string + categoryFilter?: string, startingEntries?: number } const NewsSection: React.FC = ({ categoryFilter, startingEntries }: Props) => { + const offlineStatus = useOfflineStatus(); const { data, error, isLoading, isSuccess } = useNews(); const [displayCount, setDisplayCount] = useState(startingEntries ? startingEntries : 4); - if (isLoading) return "Loading.."; + if (offlineStatus.isOffline) { + return
+ Offline +
; + } - if (error) return `An error has occurred: ${error}`; + if (isLoading) { + return "Loading..."; + } + + if (error) { + return `An error has occurred: ${error}`; + } if (isSuccess) { return
-
-
+
+
NEWS
@@ -31,9 +43,9 @@ const NewsSection: React.FC = ({ categoryFilter, startingEntries }: Props return i.category === categoryFilter; }).slice(0, displayCount).map(article => ) } -
setDisplayCount(displayCount + 4)}>Load More...
+
setDisplayCount(displayCount + 4)}>Load More...
; } }; -export default NewsSection; \ No newline at end of file +export default NewsSection; From 3c3953afdc2e817a51af1f77baf9438f53665707 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Sat, 17 Aug 2024 22:45:37 -0400 Subject: [PATCH 66/98] Completely forgot about onboarding, so started work on that again --- .../Onboarding/Onboarding.module.css | 18 ++---- .../Onboarding/Pages/ComponentsPage.tsx | 61 ++++++++++++++++--- .../Onboarding/Pages/InstallFolderPage.tsx | 6 +- .../Onboarding/Pages/Pages.module.css | 44 +++++++++++-- .../Onboarding/Pages/onboardingIndex.ts | 13 ++++ src/components/Onboarding/Sidebar.tsx | 14 ++--- src/components/Onboarding/StepIndicator.tsx | 18 ++---- src/components/Onboarding/index.tsx | 6 +- src/main.tsx | 14 ++--- src/routes/AppProfile/MoreDropdown.tsx | 20 +++--- src/routes/Marketplace/index.tsx | 4 ++ 11 files changed, 148 insertions(+), 70 deletions(-) create mode 100644 src/components/Onboarding/Pages/onboardingIndex.ts diff --git a/src/components/Onboarding/Onboarding.module.css b/src/components/Onboarding/Onboarding.module.css index 98d8666..171ca49 100644 --- a/src/components/Onboarding/Onboarding.module.css +++ b/src/components/Onboarding/Onboarding.module.css @@ -19,7 +19,6 @@ .sidebar { display: flex; - width: 320px; flex-direction: column; justify-content: space-between; align-items: flex-start; @@ -61,6 +60,7 @@ } .navigation { + padding: 12px; display: flex; flex-direction: column; align-items: flex-start; @@ -70,7 +70,6 @@ .navigationButton { display: flex; - padding: 0px 12px; flex-direction: column; align-items: flex-start; gap: 10px; @@ -87,22 +86,15 @@ .navigationButton > div { display: flex; - height: 46px; + height: 48px; + width: 48px; padding: 10px; - justify-content: space-between; + justify-content: center; align-items: center; - align-self: stretch; border-radius: 6px; } -.navigationButton > div > div { - display: flex; - align-items: center; - gap: 5px; - flex: 1 0 0; -} - .navigationButton.activeStep { opacity: 1; } @@ -120,7 +112,7 @@ flex: 1 0 0; align-self: stretch; - background: linear-gradient(182deg, rgba(5, 6, 11, 0.60) 1.91%, #05060B 47.87%), + background: linear-gradient(182deg, rgba(5, 6, 11, 0.60) 1.91%, #05060c 47.87%), url(/src/assets/OnboardingBackground.png) lightgray 50% / cover no-repeat; } diff --git a/src/components/Onboarding/Pages/ComponentsPage.tsx b/src/components/Onboarding/Pages/ComponentsPage.tsx index 098ce20..526ce7b 100644 --- a/src/components/Onboarding/Pages/ComponentsPage.tsx +++ b/src/components/Onboarding/Pages/ComponentsPage.tsx @@ -1,32 +1,73 @@ import WarningBox from "./WarningBox"; import styles from "./Pages.module.css"; +import { useQuery } from "@tanstack/react-query"; +import { OnboardingIndex, OnboardingOption } from "./onboardingIndex"; +import ProfileIcon from "@app/components/ProfileIcon"; +import { localizeObject } from "@app/utils/localized"; + +interface ComponentProps { + option: OnboardingOption; +} + +const ComponentOption: React.FC = ({ option }: ComponentProps) => { + const localized = localizeObject(option, "en-US"); + + return
+
+ +
+
{localized.name}
+
{localized.subText}
+
+
+
; +}; interface Props { } export const ComponentsPage: React.FC = () => { + const onboardingIndexQuery = useQuery({ + queryKey: ["OnboardingIndex"], + queryFn: async (): Promise => await fetch("https://releases.yarg.in/profiles/onboarding.json") + .then(res => res.json()) + }); + + if (onboardingIndexQuery.isLoading) { + return <>Loading...; + } + + const onboardingIndex = onboardingIndexQuery.data; + if (onboardingIndexQuery.isError || onboardingIndex === undefined) { + return <> + Error: {onboardingIndexQuery.error} + ; + } + return <> - You can download other applications and songs at any time after the initial onboarding process. + You can download other applications and songs at any time after the initial onboarding + process in the "Marketplace".
Applications
-
- -
-
- -
+ { + onboardingIndex.filter(i => i.type === "application").map(i => + + ) + }
Songs
-
- -
+ { + onboardingIndex.filter(i => i.type === "setlist").map(i => + + ) + }
diff --git a/src/components/Onboarding/Pages/InstallFolderPage.tsx b/src/components/Onboarding/Pages/InstallFolderPage.tsx index d1d4211..0969b9b 100644 --- a/src/components/Onboarding/Pages/InstallFolderPage.tsx +++ b/src/components/Onboarding/Pages/InstallFolderPage.tsx @@ -1,6 +1,7 @@ import styles from "./Pages.module.css"; -import Button from "@app/components/Button"; +import Button, { ButtonColor } from "@app/components/Button"; import WarningBox from "./WarningBox"; +import { DriveIcon } from "@app/assets/Icons"; interface Props { downloadLocation: string; @@ -17,10 +18,11 @@ export const InstallFolderPage: React.FC = (props: Props) => {
+

{props.downloadLocation}

-
diff --git a/src/components/Onboarding/Pages/Pages.module.css b/src/components/Onboarding/Pages/Pages.module.css index 228635b..41aabda 100644 --- a/src/components/Onboarding/Pages/Pages.module.css +++ b/src/components/Onboarding/Pages/Pages.module.css @@ -19,8 +19,12 @@ align-items: flex-start; align-self: stretch; - border-radius: 8px; - background: #030307; + border-radius: 12px; + background: var(--buttonDark); + color: var(--buttonDarkText); + border: 2px solid var(--buttonDarkBorder); + + font-size: 17px; } .selectedFolder { @@ -30,7 +34,6 @@ align-items: center; gap: 15px; flex: 1 0 0; - justify-content: space-between; } .browseButtonContainer { @@ -81,6 +84,37 @@ flex: 1 0 0; border-radius: 15px; - border: 2px solid #0D0F23; - background: linear-gradient(0deg, rgba(13, 15, 35, 0.50) 0%, rgba(13, 15, 35, 0.50) 100%), #030307; + border: 2px solid var(--buttonDarkBorder); + background: var(--buttonDark); +} + +.componentOption > .left { + display: flex; + align-items: center; + gap: 25px; + flex: 1 0 0; +} + +.componentOption > .left > .icon { + flex: 0 0 75px; + height: 75px; +} + +.componentOption > .left > div { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 10px; + flex: 1 0 0; + + color: #66698D; + font-size: 12px; + font-weight: 600; +} + +.componentOption > .left > div > header { + color: #FFF; + font-family: Inter; + font-size: 20px; + font-weight: 700; } diff --git a/src/components/Onboarding/Pages/onboardingIndex.ts b/src/components/Onboarding/Pages/onboardingIndex.ts new file mode 100644 index 0000000..44b0f4b --- /dev/null +++ b/src/components/Onboarding/Pages/onboardingIndex.ts @@ -0,0 +1,13 @@ +import { Localized } from "@app/utils/localized"; + +export type OnboardingIndex = OnboardingOption[]; + +export type OnboardingOption = Localized<{ + uuid: string, + type: "application" | "setlist", + url: string, + + name: string, + subText: string, + iconUrl: string +}>; diff --git a/src/components/Onboarding/Sidebar.tsx b/src/components/Onboarding/Sidebar.tsx index 1bc205b..beecb63 100644 --- a/src/components/Onboarding/Sidebar.tsx +++ b/src/components/Onboarding/Sidebar.tsx @@ -1,6 +1,7 @@ import { OnboardingStep } from "."; import StepIndicator from "./StepIndicator"; import styles from "./Onboarding.module.css"; +import { DriveIcon, QueueIcon } from "@app/assets/Icons"; interface Props { onboardingStep: OnboardingStep; @@ -9,17 +10,16 @@ interface Props { const OnboardingSidebar: React.FC = ({ onboardingStep }: Props) => { return
-
Welcome to YARG!
{/* OnboardingStep.LANGUAGE} /> */} - OnboardingStep.INSTALL_PATH} /> - OnboardingStep.COMPONENTS} /> + + + + + +
diff --git a/src/components/Onboarding/StepIndicator.tsx b/src/components/Onboarding/StepIndicator.tsx index dc384c9..3712895 100644 --- a/src/components/Onboarding/StepIndicator.tsx +++ b/src/components/Onboarding/StepIndicator.tsx @@ -1,13 +1,10 @@ -import { CheckmarkIcon } from "@app/assets/Icons"; import styles from "./Onboarding.module.css"; -interface Props { - text: string, - activeStep: boolean, - completedStep: boolean -} +type Props = React.PropsWithChildren<{ + activeStep: boolean +}>; -const StepIndicator: React.FC = ({ text, activeStep, completedStep }: Props) => { +const StepIndicator: React.FC = ({ children, activeStep }: Props) => { const classes = [styles.navigationButton]; if (activeStep) { classes.push(styles.activeStep); @@ -15,12 +12,7 @@ const StepIndicator: React.FC = ({ text, activeStep, completedStep }: Pro return
-
- {text} -
- {completedStep && - - } + {children}
; }; diff --git a/src/components/Onboarding/index.tsx b/src/components/Onboarding/index.tsx index 1df690d..1735d74 100644 --- a/src/components/Onboarding/index.tsx +++ b/src/components/Onboarding/index.tsx @@ -4,7 +4,7 @@ import { open } from "@tauri-apps/api/dialog"; import { invoke } from "@tauri-apps/api"; import { settingsManager } from "@app/settings"; import OnboardingSidebar from "./Sidebar"; -import Button from "../Button"; +import Button, { ButtonColor } from "../Button"; import InstallFolderPage from "./Pages/InstallFolderPage"; import ComponentsPage from "./Pages/ComponentsPage"; import { useDirectories } from "@app/profiles/directories"; @@ -73,14 +73,14 @@ const Onboarding: React.FC = (props: Props) => {
- -
diff --git a/src/profiles/store.ts b/src/profiles/store.ts index b3fcb41..2d5489f 100644 --- a/src/profiles/store.ts +++ b/src/profiles/store.ts @@ -3,15 +3,15 @@ import { ActiveProfile, Profile, Version, VersionList } from "./types"; import { v4 as createUUID } from "uuid"; import { settingsManager } from "@app/settings"; import { showErrorDialog } from "@app/dialogs"; -import { off } from "process"; export interface ProfileStore { activeProfiles: ActiveProfile[], getProfileByUUID: (uuid: string) => ActiveProfile | undefined, + anyOfProfileUUID: (uuid: string) => boolean, activateProfilesFromSettings: (offline: boolean) => Promise, - activateProfile: (profileUrl: string) => Promise, + activateProfile: (profileUrl: string) => Promise, removeProfile: (uuid: string) => Promise, updateProfile: (activeProfile: ActiveProfile) => Promise, } @@ -22,6 +22,9 @@ export const useProfileStore = create()((set, get) => ({ getProfileByUUID: (uuid) => { return get().activeProfiles.find(i => i.uuid === uuid); }, + anyOfProfileUUID: (uuid) => { + return get().activeProfiles.some(i => i.profile.uuid === uuid); + }, activateProfilesFromSettings: async (offline: boolean) => { const activeProfiles = settingsManager.getCache("activeProfiles"); @@ -74,8 +77,9 @@ export const useProfileStore = create()((set, get) => ({ return; } + const newUUID = createUUID(); const activeProfile: ActiveProfile = { - uuid: createUUID(), + uuid: newUUID, originalUrl: profileUrl, displayName: undefined, profile: profile, @@ -90,6 +94,8 @@ export const useProfileStore = create()((set, get) => ({ }); await settingsManager.set("activeProfiles", profiles); + + return newUUID; }, removeProfile: async (uuid: string) => { let profiles = get().activeProfiles; diff --git a/src/routes/Home/Home.module.css b/src/routes/Home/Home.module.css index f09a0bd..74604f8 100644 --- a/src/routes/Home/Home.module.css +++ b/src/routes/Home/Home.module.css @@ -26,7 +26,7 @@ align-self: stretch; min-height: calc(100% - 250px); - background: var(--white-background); + background: #FFF; } .content_inner { @@ -78,4 +78,4 @@ .sidebar { display: none; } -} \ No newline at end of file +} diff --git a/src/routes/Marketplace/MarketplacePopup.module.css b/src/routes/Marketplace/MarketplacePopup.module.css new file mode 100644 index 0000000..ac8e884 --- /dev/null +++ b/src/routes/Marketplace/MarketplacePopup.module.css @@ -0,0 +1,117 @@ +.popup { + position: absolute; + + top: var(--titleBarHeight); + bottom: 0; + left: var(--sideBarWidth); + right: 0; + + background: rgba(0, 0, 0, 0.6); + + z-index: 998; +} + +.body { + position: absolute; + + /* Masking prevents artifacts, unlike overflow: hidden */ + mask: linear-gradient(#000 0 0); + + inset: 32px; + border-radius: 16px; + + background-color: #FFF; + + display: flex; + flex-direction: column; + align-items: flex-start; + flex: 1 0 0; + align-self: stretch; +} + +.close { + position: absolute; + top: 16px; + right: 16px; + + width: 16px; + height: 16px; + + cursor: pointer; +} + +.close > * { + color: #FFF; + filter: drop-shadow(1px 1px 2px rgba(0, 0, 0, 1)); +} + +.bannerContainer { + display: flex; + flex-direction: column; + align-items: flex-start; + align-self: stretch; + + background: linear-gradient(241deg, rgba(0, 0, 0, 0.00) 14.98%, #000 107.9%), + var(--bannerBack) lightgray 50% / cover no-repeat; +} + +.bannerApp { + display: flex; + padding: 30px; + align-items: center; + gap: 25px; + align-self: stretch; +} + +.bannerAppIcon { + width: 100px; + height: 100px; +} + +.bannerApp > div { + display: flex; + flex-direction: column; + justify-content: center; + align-items: flex-start; + gap: 10px; + + color: #FFF; + font-size: 30px; + font-weight: 700; + text-transform: uppercase; +} + +.verifiedTag { + display: flex; + height: 31px; + padding: 12px 5px 12px 10px; + justify-content: center; + align-items: center; + gap: 5px; + + border-radius: 38px; + border: 1px solid rgba(255, 255, 255, 0.30); + background: rgba(0, 0, 0, 0.50); + + color: #BDBDBD; + font-size: 15px; + font-weight: 700; +} + +.bannerOptions { + display: flex; + padding: 15px; + padding-left: 25px; + justify-content: end; + align-items: center; + align-self: stretch; + + background: rgba(0, 0, 0, 0.75); + backdrop-filter: blur(5px); +} + +.bannerOptionsMain { + display: flex; + align-items: center; + gap: 15px; +} diff --git a/src/routes/Marketplace/MarketplacePopup.tsx b/src/routes/Marketplace/MarketplacePopup.tsx new file mode 100644 index 0000000..6061f81 --- /dev/null +++ b/src/routes/Marketplace/MarketplacePopup.tsx @@ -0,0 +1,91 @@ +import { MarketplaceProfile } from "@app/profiles/marketplace"; +import { useProfileStore } from "@app/profiles/store"; +import styles from "./MarketplacePopup.module.css"; +import { AddIcon, CloseIcon, VerifiedIcon } from "@app/assets/Icons"; +import { localizeMetadata, processAssetUrl } from "@app/profiles/utils"; +import { useQuery } from "@tanstack/react-query"; +import { Profile } from "@app/profiles/types"; +import ProfileIcon from "@app/components/ProfileIcon"; +import Button, { ButtonColor } from "@app/components/Button"; +import { useNavigate } from "react-router-dom"; + +interface Props { + marketplaceProfile?: MarketplaceProfile, + setSelectedProfile: React.Dispatch>, +} + +const MarketplacePopup: React.FC = ({ marketplaceProfile, setSelectedProfile }: Props) => { + const profiles = useProfileStore(); + const profileQuery = useQuery({ + enabled: marketplaceProfile !== undefined, + queryKey: ["Profile", marketplaceProfile?.uuid], + queryFn: async (): Promise => await fetch((marketplaceProfile as MarketplaceProfile).url) + .then(res => res.json()) + }); + + const navigate = useNavigate(); + + if (marketplaceProfile === undefined || profileQuery.isLoading) { + return <>; + } + + const anyOfProfile = profiles.anyOfProfileUUID(marketplaceProfile.uuid); + + const profile = profileQuery.data; + if (profileQuery.isError || profile === undefined) { + return <> + Error: {profileQuery.error} + ; + } + + const metadata = localizeMetadata(profile, "en-US"); + + const addToLibrary = async () => { + const uuid = await profiles.activateProfile(marketplaceProfile.url); + setSelectedProfile(undefined); + navigate(`/app-profile/${uuid}`); + }; + + return
+
+
setSelectedProfile(undefined)}> + +
+ +
+ +
+ +
+
+ Official +
+ {metadata.name} +
+
+
+
+ {!anyOfProfile && + + } + {(anyOfProfile && profile.type === "application") && + + } + {(anyOfProfile && profile.type === "setlist") && + + } +
+
+
+
+
; +}; + +export default MarketplacePopup; diff --git a/src/routes/Marketplace/MarketplaceProfileView.tsx b/src/routes/Marketplace/MarketplaceProfileView.tsx index aabd913..cf5ac79 100644 --- a/src/routes/Marketplace/MarketplaceProfileView.tsx +++ b/src/routes/Marketplace/MarketplaceProfileView.tsx @@ -3,15 +3,13 @@ import styles from "./Marketplace.module.css"; import ProfileIcon from "@app/components/ProfileIcon"; import { localizeObject } from "@app/utils/localized"; import { processAssetUrl } from "@app/profiles/utils"; -import { useProfileStore } from "@app/profiles/store"; interface Props { profile: MarketplaceProfile, + setSelectedProfile: React.Dispatch>, } -const MarketplaceProfileView: React.FC = ({ profile }: Props) => { - const profiles = useProfileStore(); - +const MarketplaceProfileView: React.FC = ({ profile, setSelectedProfile }: Props) => { const localized = localizeObject(profile, "en-US"); let bannerUrl = localized.bannerUrl; if (bannerUrl === undefined) { @@ -21,9 +19,7 @@ const MarketplaceProfileView: React.FC = ({ profile }: Props) => { return
+ +
+ {metadata.description} +
; }; From 0d1eb779ddf2db54032a7f202998dd4db7e74d68 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Sun, 18 Aug 2024 21:43:26 -0400 Subject: [PATCH 70/98] Make banner open marketplace popup --- src/routes/Marketplace/index.tsx | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/routes/Marketplace/index.tsx b/src/routes/Marketplace/index.tsx index 6a13438..10a93ad 100644 --- a/src/routes/Marketplace/index.tsx +++ b/src/routes/Marketplace/index.tsx @@ -10,6 +10,7 @@ import { MarketplaceProfile } from "@app/profiles/marketplace"; import { askOpenUrl } from "@app/utils/safeUrl"; import MarketplacePopup from "./MarketplacePopup"; import { useState } from "react"; +import { showErrorDialog } from "@app/dialogs"; function Marketplace() { const [selectedProfile, setSelectedProfile] = useState(undefined); @@ -54,7 +55,16 @@ function Marketplace() { {banner.headerText}
- From fa77b871c77faca81a70eec18d7c45b5fae36a42 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Sun, 18 Aug 2024 21:44:56 -0400 Subject: [PATCH 71/98] Fix type check problems --- src/profiles/store.ts | 2 +- src/routes/Marketplace/MarketplacePopup.tsx | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/profiles/store.ts b/src/profiles/store.ts index 2d5489f..6b173b6 100644 --- a/src/profiles/store.ts +++ b/src/profiles/store.ts @@ -11,7 +11,7 @@ export interface ProfileStore { anyOfProfileUUID: (uuid: string) => boolean, activateProfilesFromSettings: (offline: boolean) => Promise, - activateProfile: (profileUrl: string) => Promise, + activateProfile: (profileUrl: string) => Promise, removeProfile: (uuid: string) => Promise, updateProfile: (activeProfile: ActiveProfile) => Promise, } diff --git a/src/routes/Marketplace/MarketplacePopup.tsx b/src/routes/Marketplace/MarketplacePopup.tsx index fa467a5..2a4cf91 100644 --- a/src/routes/Marketplace/MarketplacePopup.tsx +++ b/src/routes/Marketplace/MarketplacePopup.tsx @@ -43,7 +43,10 @@ const MarketplacePopup: React.FC = ({ marketplaceProfile, setSelectedProf const addToLibrary = async () => { const uuid = await profiles.activateProfile(marketplaceProfile.url); setSelectedProfile(undefined); - navigate(`/app-profile/${uuid}`); + + if (uuid !== undefined) { + navigate(`/app-profile/${uuid}`); + } }; return
From 6d3a14a29e009a84fa8569d0faaa106f6d84f93b Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Sun, 18 Aug 2024 21:50:09 -0400 Subject: [PATCH 72/98] Separate marketplace popup button --- src/routes/Marketplace/MarketplacePopup.tsx | 42 +++++++++++++-------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/src/routes/Marketplace/MarketplacePopup.tsx b/src/routes/Marketplace/MarketplacePopup.tsx index 2a4cf91..2c08404 100644 --- a/src/routes/Marketplace/MarketplacePopup.tsx +++ b/src/routes/Marketplace/MarketplacePopup.tsx @@ -8,6 +8,7 @@ import { Profile } from "@app/profiles/types"; import ProfileIcon from "@app/components/ProfileIcon"; import Button, { ButtonColor } from "@app/components/Button"; import { useNavigate } from "react-router-dom"; +import { useState } from "react"; interface Props { marketplaceProfile?: MarketplaceProfile, @@ -23,6 +24,7 @@ const MarketplacePopup: React.FC = ({ marketplaceProfile, setSelectedProf .then(res => res.json()) }); + const [loading, setLoading] = useState(false); const navigate = useNavigate(); if (marketplaceProfile === undefined || profileQuery.isLoading) { @@ -41,6 +43,11 @@ const MarketplacePopup: React.FC = ({ marketplaceProfile, setSelectedProf const metadata = localizeMetadata(profile, "en-US"); const addToLibrary = async () => { + if (loading) { + return; + } + + setLoading(true); const uuid = await profiles.activateProfile(marketplaceProfile.url); setSelectedProfile(undefined); @@ -49,6 +56,25 @@ const MarketplacePopup: React.FC = ({ marketplaceProfile, setSelectedProf } }; + let button; + if (loading) { + button = ; + } else if (!anyOfProfile) { + button = ; + } else if (anyOfProfile && profile.type === "application") { + button = ; + } else if (anyOfProfile && profile.type === "setlist") { + button = ; + } + return
setSelectedProfile(undefined)}> @@ -69,21 +95,7 @@ const MarketplacePopup: React.FC = ({ marketplaceProfile, setSelectedProf
- {!anyOfProfile && - - } - {(anyOfProfile && profile.type === "application") && - - } - {(anyOfProfile && profile.type === "setlist") && - - } + {button}
From 8333f8a8e75be032aa12eecbc59dbd9835606455 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Sun, 18 Aug 2024 21:53:46 -0400 Subject: [PATCH 73/98] Show scrollbar on sidebar if there are too many profiles --- src/components/Sidebar/Sidebar.module.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/components/Sidebar/Sidebar.module.css b/src/components/Sidebar/Sidebar.module.css index 3729371..0f0faa8 100644 --- a/src/components/Sidebar/Sidebar.module.css +++ b/src/components/Sidebar/Sidebar.module.css @@ -9,6 +9,9 @@ flex-direction: column; flex-shrink: 0; gap: 50px; + + overflow-y: auto; + overflow-x: hidden; } .footer { From 511c5d81f4debab62aa73329384a02c09395fc29 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Mon, 19 Aug 2024 16:58:15 -0400 Subject: [PATCH 74/98] Finished onboarding --- .../Onboarding/Pages/ComponentsPage.tsx | 39 ++++++- .../Onboarding/Pages/Pages.module.css | 27 +++++ .../Onboarding/Pages/onboardingIndex.ts | 4 +- src/components/Onboarding/index.tsx | 103 +++++++++++------- 4 files changed, 128 insertions(+), 45 deletions(-) diff --git a/src/components/Onboarding/Pages/ComponentsPage.tsx b/src/components/Onboarding/Pages/ComponentsPage.tsx index 9a7d11b..9b4aa7f 100644 --- a/src/components/Onboarding/Pages/ComponentsPage.tsx +++ b/src/components/Onboarding/Pages/ComponentsPage.tsx @@ -4,15 +4,22 @@ import { useQuery } from "@tanstack/react-query"; import { OnboardingIndex, OnboardingOption } from "./onboardingIndex"; import ProfileIcon from "@app/components/ProfileIcon"; import { localizeObject } from "@app/utils/localized"; +import { useState } from "react"; +import { CheckmarkIcon } from "@app/assets/Icons"; interface ComponentProps { - option: OnboardingOption; + option: OnboardingOption, + setOption: (url: string, enabled: boolean) => void } -const ComponentOption: React.FC = ({ option }: ComponentProps) => { +const ComponentOption: React.FC = ({ option, setOption }: ComponentProps) => { + const [selected, setSelected] = useState(option.selectedByDefault); const localized = localizeObject(option, "en-US"); - return
+ return
{ + setSelected(!selected); + setOption(option.url, !selected); + }}>
@@ -20,13 +27,23 @@ const ComponentOption: React.FC = ({ option }: ComponentProps) =
{localized.subText}
+ {!selected && +
+ } + {selected && +
+ +
+ }
; }; interface Props { + profileUrls: string[], + setProfileUrls: React.Dispatch>, } -export const ComponentsPage: React.FC = () => { +export const ComponentsPage: React.FC = ({ profileUrls, setProfileUrls }: Props) => { const onboardingIndexQuery = useQuery({ queryKey: ["OnboardingIndex"], queryFn: async (): Promise => await fetch("https://releases.yarg.in/profiles/onboarding.json") @@ -44,6 +61,16 @@ export const ComponentsPage: React.FC = () => { ; } + const setOption = (url: string, enabled: boolean) => { + if (enabled) { + profileUrls.push(url); + setProfileUrls(profileUrls); + } else { + profileUrls = profileUrls.filter(i => i !== url); + setProfileUrls(profileUrls); + } + }; + return <> You can download other applications and songs at any time after the initial onboarding @@ -55,7 +82,7 @@ export const ComponentsPage: React.FC = () => {
{ onboardingIndex.filter(i => i.type === "application").map(i => - + ) }
@@ -65,7 +92,7 @@ export const ComponentsPage: React.FC = () => {
{ onboardingIndex.filter(i => i.type === "setlist").map(i => - + ) }
diff --git a/src/components/Onboarding/Pages/Pages.module.css b/src/components/Onboarding/Pages/Pages.module.css index 41aabda..79858a5 100644 --- a/src/components/Onboarding/Pages/Pages.module.css +++ b/src/components/Onboarding/Pages/Pages.module.css @@ -82,10 +82,14 @@ justify-content: space-between; align-items: center; flex: 1 0 0; + gap: 20px; border-radius: 15px; border: 2px solid var(--buttonDarkBorder); background: var(--buttonDark); + + cursor: pointer; + user-select: none; } .componentOption > .left { @@ -118,3 +122,26 @@ font-size: 20px; font-weight: 700; } + +.unselectedIndicator { + width: 38px; + height: 38px; + border-radius: 93px; + + border: 2px solid var(--buttonDarkBorder); + background: var(--buttonDark); +} + +.selectedIndicator { + width: 38px; + height: 38px; + border-radius: 93px; + + display: flex; + justify-content: center; + align-items: center; + + border: 2px solid var(--buttonLightBorder); + background: #17E289; + color: #006E3E; +} diff --git a/src/components/Onboarding/Pages/onboardingIndex.ts b/src/components/Onboarding/Pages/onboardingIndex.ts index 44b0f4b..7a44129 100644 --- a/src/components/Onboarding/Pages/onboardingIndex.ts +++ b/src/components/Onboarding/Pages/onboardingIndex.ts @@ -9,5 +9,7 @@ export type OnboardingOption = Localized<{ name: string, subText: string, - iconUrl: string + iconUrl: string, + + selectedByDefault: boolean, }>; diff --git a/src/components/Onboarding/index.tsx b/src/components/Onboarding/index.tsx index 1735d74..aab5af6 100644 --- a/src/components/Onboarding/index.tsx +++ b/src/components/Onboarding/index.tsx @@ -8,6 +8,9 @@ import Button, { ButtonColor } from "../Button"; import InstallFolderPage from "./Pages/InstallFolderPage"; import ComponentsPage from "./Pages/ComponentsPage"; import { useDirectories } from "@app/profiles/directories"; +import { useProfileStore } from "@app/profiles/store"; +import { downloadAndInstall } from "@app/profiles/actions"; +import { getPathForProfile } from "@app/profiles/utils"; export enum OnboardingStep { // LANGUAGE = 0, @@ -20,9 +23,10 @@ interface Props { } const Onboarding: React.FC = (props: Props) => { + const [loading, setLoading] = useState(false); const [step, setStep] = useState(OnboardingStep.INSTALL_PATH); - const directories = useDirectories(); + let directories = useDirectories(); const defaultDownload = directories.importantDirs?.yarcFolder; if (defaultDownload === undefined) { @@ -32,6 +36,8 @@ const Onboarding: React.FC = (props: Props) => { const [downloadLocation, setDownloadLocation] = useState(defaultDownload); const [downloadEmpty, setDownloadEmpty] = useState(true); + const [profileUrls, setProfileUrls] = useState([]); + async function askForFolder() { const select = await open({ directory: true @@ -47,56 +53,77 @@ const Onboarding: React.FC = (props: Props) => { } async function finish() { + setLoading(true); + settingsManager.setCache("downloadLocation", downloadLocation); settingsManager.setCache("onboardingCompleted", true); await settingsManager.syncCache(); await directories.setDirs(downloadLocation); + directories = useDirectories.getState(); + + for (const url of profileUrls) { + const uuid = await useProfileStore.getState().activateProfile(url); + if (uuid === undefined) { + continue; + } + + const activeProfile = useProfileStore.getState().getProfileByUUID(uuid); + if (activeProfile === undefined) { + continue; + } + + const path = await getPathForProfile(directories, activeProfile); + await downloadAndInstall(activeProfile, path); + } + props.setOnboarding(false); } return
- -
-
-
- {step === OnboardingStep.INSTALL_PATH && - - } - {step === OnboardingStep.COMPONENTS && - - } -
-
-
- - + {!loading && <> + +
+
+
+ {step === OnboardingStep.INSTALL_PATH && + + } + {step === OnboardingStep.COMPONENTS && + + } +
+
+
+ + +
-
+ }
; }; From 549344f0cf8c00b1199bb536c207ae1b9530b966 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Mon, 19 Aug 2024 17:00:24 -0400 Subject: [PATCH 75/98] Fixed incorrect install button state after task --- src/hooks/useProfileState.ts | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/hooks/useProfileState.ts b/src/hooks/useProfileState.ts index a9dae7a..fed7375 100644 --- a/src/hooks/useProfileState.ts +++ b/src/hooks/useProfileState.ts @@ -75,7 +75,7 @@ export const useProfileState = (profileUUID: string): ProfileState => { setProfilePath(path); setLoading(false); })(); - }, [directories, profileUUID, activeProfile.version]); + }, [directories, profileUUID, activeProfile.version, currentTask]); return { loading, @@ -91,18 +91,14 @@ export const useProfileState = (profileUUID: string): ProfileState => { return; } - await downloadAndInstall(activeProfile, profilePath, () => { - setFolderState(ProfileFolderState.UpToDate); - }); + await downloadAndInstall(activeProfile, profilePath); }, uninstall: async () => { if (loading) { return; } - await uninstall(activeProfile, profilePath, () => { - setFolderState(ProfileFolderState.FirstDownload); - }); + await uninstall(activeProfile, profilePath); }, launch: async () => { if (loading || activeProfile.profile.type === "setlist") { From aa38692f399bceef55f5e4d1a0e9a64d9fa4a8d8 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Mon, 19 Aug 2024 17:06:41 -0400 Subject: [PATCH 76/98] Remove empty folders after uninstall --- src-tauri/src/main.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 5b93ee6..e126d31 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -182,6 +182,10 @@ fn uninstall_profile(profile_path: String) -> Result<(), String> { tag_file.push("tag.txt"); fs::remove_file(tag_file).map_err(|e| format!("Failed to remove tag file.\n{:?}", e))?; + // Remove the directories if they are empty + let _ = fs::remove_dir(&install_path); + let _ = fs::remove_dir(&profile_path); + Ok(()) } From e3d2c8890637ea2bb8064ab05f79fc00e1ea330b Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Tue, 20 Aug 2024 15:11:06 -0400 Subject: [PATCH 77/98] Started profile settings --- .../Sidebar/Profiles/Selector.module.css | 3 ++ src/profiles/actions.ts | 7 ++- src/profiles/store.ts | 6 +++ src/profiles/types.ts | 4 +- src/routes/AppProfile/AppProfile.module.css | 4 ++ src/routes/AppProfile/AppSettings.module.css | 50 +++++++++++++++++ src/routes/AppProfile/AppSettings.tsx | 54 +++++++++++++++++++ src/routes/AppProfile/index.tsx | 18 ++++++- 8 files changed, 143 insertions(+), 3 deletions(-) create mode 100644 src/routes/AppProfile/AppSettings.module.css create mode 100644 src/routes/AppProfile/AppSettings.tsx diff --git a/src/components/Sidebar/Profiles/Selector.module.css b/src/components/Sidebar/Profiles/Selector.module.css index ea745c5..d41247f 100644 --- a/src/components/Sidebar/Profiles/Selector.module.css +++ b/src/components/Sidebar/Profiles/Selector.module.css @@ -28,4 +28,7 @@ .text { font-size: 16px; font-weight: 600; + + overflow: hidden; + text-overflow: ellipsis; } diff --git a/src/profiles/actions.ts b/src/profiles/actions.ts index 9252e95..e4586f8 100644 --- a/src/profiles/actions.ts +++ b/src/profiles/actions.ts @@ -41,11 +41,16 @@ export const launch = async (activeProfile: ActiveProfile, profilePath: string): return; } + let additionalArguments: string[] = []; + if (activeProfile.launchArguments.trim().length > 0) { + additionalArguments = activeProfile.launchArguments.trim().split(" "); + } + try { await invoke("launch_profile", { profilePath: profilePath, execPath: launchOptions.executablePath, - arguments: launchOptions.arguments + arguments: [...launchOptions.arguments, ...additionalArguments] }); } catch (e) { showErrorDialog(e as string); diff --git a/src/profiles/store.ts b/src/profiles/store.ts index 6b173b6..9d9cf8a 100644 --- a/src/profiles/store.ts +++ b/src/profiles/store.ts @@ -81,7 +81,13 @@ export const useProfileStore = create()((set, get) => ({ const activeProfile: ActiveProfile = { uuid: newUUID, originalUrl: profileUrl, + displayName: undefined, + selectedVersion: undefined, + launchArguments: "", + + lastPlayed: undefined, + profile: profile, version: version, }; diff --git a/src/profiles/types.ts b/src/profiles/types.ts index cc5c40a..39c7480 100644 --- a/src/profiles/types.ts +++ b/src/profiles/types.ts @@ -106,8 +106,10 @@ export interface ActiveProfile { originalUrl: string, displayName?: string, - lastPlayed?: string, selectedVersion?: string, + launchArguments: string, + + lastPlayed?: string, profile: Profile, version: Version, diff --git a/src/routes/AppProfile/AppProfile.module.css b/src/routes/AppProfile/AppProfile.module.css index 33611e1..ed2e3ec 100644 --- a/src/routes/AppProfile/AppProfile.module.css +++ b/src/routes/AppProfile/AppProfile.module.css @@ -27,6 +27,8 @@ .bannerAppIcon { width: 100px; height: 100px; + min-width: 100px; + min-height: 100px; } .bannerApp > div { @@ -40,6 +42,8 @@ font-size: 30px; font-weight: 700; text-transform: uppercase; + + overflow: hidden; } .verifiedTag { diff --git a/src/routes/AppProfile/AppSettings.module.css b/src/routes/AppProfile/AppSettings.module.css new file mode 100644 index 0000000..6e0cdc2 --- /dev/null +++ b/src/routes/AppProfile/AppSettings.module.css @@ -0,0 +1,50 @@ +.popup { + position: absolute; + + top: var(--titleBarHeight); + bottom: 0; + left: var(--sideBarWidth); + right: 0; + + background: rgba(0, 0, 0, 0.6); + + z-index: 998; +} + +.body { + position: absolute; + + inset: 32px; + border-radius: 16px; + + background-color: #FFF; + + padding: 25px; + + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: flex-start; + flex: 1 0 0; + align-self: stretch; +} + +.content { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 50px; + align-self: stretch; +} + +.navigation { + display: flex; + flex-direction: row; + align-items: flex-end; + gap: 15px; + align-self: stretch; +} + +.navigation > button { + flex: 1 0 0; +} diff --git a/src/routes/AppProfile/AppSettings.tsx b/src/routes/AppProfile/AppSettings.tsx new file mode 100644 index 0000000..6dff5a0 --- /dev/null +++ b/src/routes/AppProfile/AppSettings.tsx @@ -0,0 +1,54 @@ +import Button, { ButtonColor } from "@app/components/Button"; +import styles from "./AppSettings.module.css"; +import { useState } from "react"; +import { ActiveProfile } from "@app/profiles/types"; +import { localize } from "@app/utils/localized"; +import { localizeMetadata } from "@app/profiles/utils"; +import { useProfileStore } from "@app/profiles/store"; + +interface Props { + activeProfile: ActiveProfile, + setSettingsOpen: React.Dispatch> +} + +const AppSettings: React.FC = ({ activeProfile, setSettingsOpen }: Props) => { + let initalDisplayName = activeProfile.displayName; + if (initalDisplayName === undefined) { + initalDisplayName = localizeMetadata(activeProfile.profile, "en-US").name; + } + + const [displayName, setDisplayName] = useState(initalDisplayName); + const [launchArguments, setLaunchArguments] = useState(activeProfile.launchArguments); + + return
+
+
+ setDisplayName(e.target.value)} /> + setLaunchArguments(e.target.value)} /> +
+
+ + +
+
+
; +}; + +export default AppSettings; + diff --git a/src/routes/AppProfile/index.tsx b/src/routes/AppProfile/index.tsx index ae71895..db8866a 100644 --- a/src/routes/AppProfile/index.tsx +++ b/src/routes/AppProfile/index.tsx @@ -1,7 +1,7 @@ import { useParams } from "react-router-dom"; import { useProfileState } from "@app/hooks/useProfileState"; import styles from "./AppProfile.module.css"; -import { GithubIcon, InformationIcon, LinkIcon, TimeIcon, VerifiedIcon } from "@app/assets/Icons"; +import { GithubIcon, InformationIcon, LinkIcon, SettingsIcon, TimeIcon, VerifiedIcon } from "@app/assets/Icons"; import { LaunchButton } from "./LaunchButton"; import { localizeMetadata, processAssetUrl } from "@app/profiles/utils"; import Box from "@app/components/Box"; @@ -12,6 +12,8 @@ import { distanceFromToday } from "@app/utils/timeFormat"; import ProfileIcon from "@app/components/ProfileIcon"; import NewsSection from "@app/components/NewsSection"; import { askOpenUrl } from "@app/utils/safeUrl"; +import AppSettings from "./AppSettings"; +import { useState } from "react"; function AppProfile() { const { uuid } = useParams(); @@ -19,6 +21,8 @@ function AppProfile() { return <>; } + const [settingsOpen, setSettingsOption] = useState(false); + const profileState = useProfileState(uuid); if (profileState.loading) { return <>; @@ -30,6 +34,10 @@ function AppProfile() { const metadata = localizeMetadata(profile, "en-US"); return
+ {settingsOpen && + + } +
@@ -59,6 +67,14 @@ function AppProfile() { }
+ {profile.type === "application" && + + } +
From 7d5db903edabc5ac76967492253165e72182f4f2 Mon Sep 17 00:00:00 2001 From: EliteAsian <29520859+EliteAsian123@users.noreply.github.com> Date: Tue, 20 Aug 2024 15:34:16 -0400 Subject: [PATCH 78/98] Added `InputBox` comp and also added styling to settings --- src/components/InputBox/InputBox.module.css | 22 +++++++++++++++++++ src/components/InputBox/index.tsx | 23 ++++++++++++++++++++ src/routes/AppProfile/AppSettings.module.css | 20 ++++++++++++++++- src/routes/AppProfile/AppSettings.tsx | 12 +++++++--- 4 files changed, 73 insertions(+), 4 deletions(-) create mode 100644 src/components/InputBox/InputBox.module.css create mode 100644 src/components/InputBox/index.tsx diff --git a/src/components/InputBox/InputBox.module.css b/src/components/InputBox/InputBox.module.css new file mode 100644 index 0000000..b482905 --- /dev/null +++ b/src/components/InputBox/InputBox.module.css @@ -0,0 +1,22 @@ +.input { + padding: 15px 18px; + + border-radius: 50px; + border: 1px solid #CCCED7; + background: #FFF; + + color: #41475F; + font-size: 16px; + font-weight: 400; +} + +.input:focus-visible { + outline: 2px solid #6C7088; + outline-offset: -2px; +} + +.input::placeholder { + color: #CCCED7; + font-size: 16px; + font-style: italic; +} diff --git a/src/components/InputBox/index.tsx b/src/components/InputBox/index.tsx new file mode 100644 index 0000000..5ebe7cd --- /dev/null +++ b/src/components/InputBox/index.tsx @@ -0,0 +1,23 @@ +import styles from "./InputBox.module.css"; + +interface Props { + state: string, + setState: React.Dispatch>, + + placeholder?: string, + + className?: string, + style?: React.CSSProperties, +} + +const InputBox: React.FC = ({ state, setState, className, style, placeholder }: Props) => { + return setState(e.target.value)} />; +}; + +export default InputBox; diff --git a/src/routes/AppProfile/AppSettings.module.css b/src/routes/AppProfile/AppSettings.module.css index 6e0cdc2..73a18cf 100644 --- a/src/routes/AppProfile/AppSettings.module.css +++ b/src/routes/AppProfile/AppSettings.module.css @@ -33,10 +33,28 @@ display: flex; flex-direction: column; align-items: flex-start; - gap: 50px; + gap: 15px; align-self: stretch; } +.setting { + display: flex; + flex-direction: row; + align-self: stretch; + gap: 15px; +} + +.setting > p { + width: 175px; + + color: #41475F; +} + +.setting > input { + align-self: center; + flex: 1 0 0; +} + .navigation { display: flex; flex-direction: row; diff --git a/src/routes/AppProfile/AppSettings.tsx b/src/routes/AppProfile/AppSettings.tsx index 6dff5a0..641a8ca 100644 --- a/src/routes/AppProfile/AppSettings.tsx +++ b/src/routes/AppProfile/AppSettings.tsx @@ -5,6 +5,7 @@ import { ActiveProfile } from "@app/profiles/types"; import { localize } from "@app/utils/localized"; import { localizeMetadata } from "@app/profiles/utils"; import { useProfileStore } from "@app/profiles/store"; +import InputBox from "@app/components/InputBox"; interface Props { activeProfile: ActiveProfile, @@ -23,8 +24,14 @@ const AppSettings: React.FC = ({ activeProfile, setSettingsOpen }: Props) return
- setDisplayName(e.target.value)} /> - setLaunchArguments(e.target.value)} /> +
+

Display Name

+ +
+
+

Additional Launch Arguments

+ +