From 3e5921fafa1b45b39555778f78a5ef1846a73385 Mon Sep 17 00:00:00 2001 From: alwaysmesmerizingyou Date: Tue, 8 Sep 2026 16:47:20 -0700 Subject: [PATCH] chore: initial commit --- .gitignore | 43 + DOCUMENTATION/FORDEV.md | 57 + README.md | 33 + build-pipeline.js | 76 + config/credentials-template.json | 5 + config/env.json | 5 + config/replacements.json | 18 + credential-manager.js | 109 + crypto-utils.js | 146 + package.json | 25 + patcher.js | 187 + release.js | 189 + service-manager.js | 200 + src-tauri/Cargo.lock | 5540 +++++++++++++++++ src-tauri/Cargo.toml | 25 + src-tauri/bin/node.deb | 7 + src-tauri/build.rs | 34 + src-tauri/capabilities | 15 + src-tauri/gen/android/.editorconfig | 12 + src-tauri/gen/android/.gitignore | 20 + src-tauri/gen/android/app/.gitignore | 6 + src-tauri/gen/android/app/build.gradle.kts | 79 + src-tauri/gen/android/app/proguard-rules.pro | 21 + .../android/app/src/main/AndroidManifest.xml | 27 + .../src/main/java/com/vyla/go/MainActivity.kt | 9 + .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../app/src/main/res/layout/activity_main.xml | 18 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2234 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 7606 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 2011 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2183 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 4838 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 1928 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4985 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 10540 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 4128 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7896 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 19004 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 6438 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 10931 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 29563 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 8657 bytes .../app/src/main/res/values-night/themes.xml | 6 + .../app/src/main/res/values/colors.xml | 10 + .../res/values/ic_launcher_background.xml | 4 + .../app/src/main/res/values/strings.xml | 4 + .../app/src/main/res/values/themes.xml | 6 + .../app/src/main/res/xml/file_paths.xml | 5 + .../main/res/xml/network_security_config.xml | 9 + src-tauri/gen/android/build.gradle.kts | 22 + .../gen/android/buildSrc/build.gradle.kts | 23 + .../main/java/com/vyla/go/kotlin/BuildTask.kt | 68 + .../java/com/vyla/go/kotlin/RustPlugin.kt | 85 + src-tauri/gen/android/gradle.properties | 24 + .../android/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + src-tauri/gen/android/gradlew | 185 + src-tauri/gen/android/gradlew.bat | 89 + src-tauri/gen/android/settings.gradle | 3 + src-tauri/gen/schemas/acl-manifests.json | 1 + src-tauri/gen/schemas/android-schema.json | 2875 +++++++++ src-tauri/gen/schemas/capabilities.json | 1 + src-tauri/gen/schemas/mobile-schema.json | 2875 +++++++++ src-tauri/icons/128x128.png | Bin 0 -> 5907 bytes src-tauri/icons/128x128@2x.png | Bin 0 -> 12920 bytes src-tauri/icons/32x32.png | Bin 0 -> 1310 bytes src-tauri/icons/64x64.png | Bin 0 -> 2904 bytes src-tauri/icons/Square107x107Logo.png | Bin 0 -> 4998 bytes src-tauri/icons/Square142x142Logo.png | Bin 0 -> 6531 bytes src-tauri/icons/Square150x150Logo.png | Bin 0 -> 7097 bytes src-tauri/icons/Square284x284Logo.png | Bin 0 -> 15079 bytes src-tauri/icons/Square30x30Logo.png | Bin 0 -> 1221 bytes src-tauri/icons/Square310x310Logo.png | Bin 0 -> 17437 bytes src-tauri/icons/Square44x44Logo.png | Bin 0 -> 1850 bytes src-tauri/icons/Square71x71Logo.png | Bin 0 -> 3176 bytes src-tauri/icons/Square89x89Logo.png | Bin 0 -> 3868 bytes src-tauri/icons/StoreLogo.png | Bin 0 -> 2054 bytes src-tauri/icons/icon.icns | Bin 0 -> 229124 bytes src-tauri/icons/icon.ico | Bin 0 -> 23549 bytes src-tauri/icons/icon.png | Bin 0 -> 38375 bytes src-tauri/icons/ios/AppIcon-20x20@1x.png | Bin 0 -> 555 bytes src-tauri/icons/ios/AppIcon-20x20@2x-1.png | Bin 0 -> 1155 bytes src-tauri/icons/ios/AppIcon-20x20@2x.png | Bin 0 -> 1155 bytes src-tauri/icons/ios/AppIcon-20x20@3x.png | Bin 0 -> 1774 bytes src-tauri/icons/ios/AppIcon-29x29@1x.png | Bin 0 -> 861 bytes src-tauri/icons/ios/AppIcon-29x29@2x-1.png | Bin 0 -> 1822 bytes src-tauri/icons/ios/AppIcon-29x29@2x.png | Bin 0 -> 1822 bytes src-tauri/icons/ios/AppIcon-29x29@3x.png | Bin 0 -> 2680 bytes src-tauri/icons/ios/AppIcon-40x40@1x.png | Bin 0 -> 1155 bytes src-tauri/icons/ios/AppIcon-40x40@2x-1.png | Bin 0 -> 2466 bytes src-tauri/icons/ios/AppIcon-40x40@2x.png | Bin 0 -> 2466 bytes src-tauri/icons/ios/AppIcon-40x40@3x.png | Bin 0 -> 3827 bytes src-tauri/icons/ios/AppIcon-512@2x.png | Bin 0 -> 79212 bytes src-tauri/icons/ios/AppIcon-60x60@2x.png | Bin 0 -> 3827 bytes src-tauri/icons/ios/AppIcon-60x60@3x.png | Bin 0 -> 5789 bytes src-tauri/icons/ios/AppIcon-76x76@1x.png | Bin 0 -> 2407 bytes src-tauri/icons/ios/AppIcon-76x76@2x.png | Bin 0 -> 4912 bytes src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png | Bin 0 -> 5483 bytes src-tauri/src/lib.rs | 418 ++ src-tauri/src/main.rs | 5 + src-tauri/tauri.conf.json | 31 + ui/index.html | 233 + 104 files changed, 14099 insertions(+) create mode 100644 .gitignore create mode 100644 DOCUMENTATION/FORDEV.md create mode 100644 README.md create mode 100644 build-pipeline.js create mode 100644 config/credentials-template.json create mode 100644 config/env.json create mode 100644 config/replacements.json create mode 100644 credential-manager.js create mode 100644 crypto-utils.js create mode 100644 package.json create mode 100644 patcher.js create mode 100644 release.js create mode 100644 service-manager.js create mode 100644 src-tauri/Cargo.lock create mode 100644 src-tauri/Cargo.toml create mode 100644 src-tauri/bin/node.deb create mode 100644 src-tauri/build.rs create mode 100644 src-tauri/capabilities create mode 100644 src-tauri/gen/android/.editorconfig create mode 100644 src-tauri/gen/android/.gitignore create mode 100644 src-tauri/gen/android/app/.gitignore create mode 100644 src-tauri/gen/android/app/build.gradle.kts create mode 100644 src-tauri/gen/android/app/proguard-rules.pro create mode 100644 src-tauri/gen/android/app/src/main/AndroidManifest.xml create mode 100644 src-tauri/gen/android/app/src/main/java/com/vyla/go/MainActivity.kt create mode 100644 src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 src-tauri/gen/android/app/src/main/res/layout/activity_main.xml create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 src-tauri/gen/android/app/src/main/res/values-night/themes.xml create mode 100644 src-tauri/gen/android/app/src/main/res/values/colors.xml create mode 100644 src-tauri/gen/android/app/src/main/res/values/ic_launcher_background.xml create mode 100644 src-tauri/gen/android/app/src/main/res/values/strings.xml create mode 100644 src-tauri/gen/android/app/src/main/res/values/themes.xml create mode 100644 src-tauri/gen/android/app/src/main/res/xml/file_paths.xml create mode 100644 src-tauri/gen/android/app/src/main/res/xml/network_security_config.xml create mode 100644 src-tauri/gen/android/build.gradle.kts create mode 100644 src-tauri/gen/android/buildSrc/build.gradle.kts create mode 100644 src-tauri/gen/android/buildSrc/src/main/java/com/vyla/go/kotlin/BuildTask.kt create mode 100644 src-tauri/gen/android/buildSrc/src/main/java/com/vyla/go/kotlin/RustPlugin.kt create mode 100644 src-tauri/gen/android/gradle.properties create mode 100644 src-tauri/gen/android/gradle/wrapper/gradle-wrapper.jar create mode 100644 src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 src-tauri/gen/android/gradlew create mode 100644 src-tauri/gen/android/gradlew.bat create mode 100644 src-tauri/gen/android/settings.gradle create mode 100644 src-tauri/gen/schemas/acl-manifests.json create mode 100644 src-tauri/gen/schemas/android-schema.json create mode 100644 src-tauri/gen/schemas/capabilities.json create mode 100644 src-tauri/gen/schemas/mobile-schema.json create mode 100644 src-tauri/icons/128x128.png create mode 100644 src-tauri/icons/128x128@2x.png create mode 100644 src-tauri/icons/32x32.png create mode 100644 src-tauri/icons/64x64.png create mode 100644 src-tauri/icons/Square107x107Logo.png create mode 100644 src-tauri/icons/Square142x142Logo.png create mode 100644 src-tauri/icons/Square150x150Logo.png create mode 100644 src-tauri/icons/Square284x284Logo.png create mode 100644 src-tauri/icons/Square30x30Logo.png create mode 100644 src-tauri/icons/Square310x310Logo.png create mode 100644 src-tauri/icons/Square44x44Logo.png create mode 100644 src-tauri/icons/Square71x71Logo.png create mode 100644 src-tauri/icons/Square89x89Logo.png create mode 100644 src-tauri/icons/StoreLogo.png create mode 100644 src-tauri/icons/icon.icns create mode 100644 src-tauri/icons/icon.ico create mode 100644 src-tauri/icons/icon.png create mode 100644 src-tauri/icons/ios/AppIcon-20x20@1x.png create mode 100644 src-tauri/icons/ios/AppIcon-20x20@2x-1.png create mode 100644 src-tauri/icons/ios/AppIcon-20x20@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-20x20@3x.png create mode 100644 src-tauri/icons/ios/AppIcon-29x29@1x.png create mode 100644 src-tauri/icons/ios/AppIcon-29x29@2x-1.png create mode 100644 src-tauri/icons/ios/AppIcon-29x29@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-29x29@3x.png create mode 100644 src-tauri/icons/ios/AppIcon-40x40@1x.png create mode 100644 src-tauri/icons/ios/AppIcon-40x40@2x-1.png create mode 100644 src-tauri/icons/ios/AppIcon-40x40@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-40x40@3x.png create mode 100644 src-tauri/icons/ios/AppIcon-512@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-60x60@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-60x60@3x.png create mode 100644 src-tauri/icons/ios/AppIcon-76x76@1x.png create mode 100644 src-tauri/icons/ios/AppIcon-76x76@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png create mode 100644 src-tauri/src/lib.rs create mode 100644 src-tauri/src/main.rs create mode 100644 src-tauri/tauri.conf.json create mode 100644 ui/index.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a58506a --- /dev/null +++ b/.gitignore @@ -0,0 +1,43 @@ +node_modules/ +package-lock.json + +dist/ +dist-build/ +temp-validation-extract/ +update-payload.zip +manifest.json +validation-report.json + +src-tauri/target/ +src-tauri/gen/android/.gradle/ +src-tauri/gen/android/app/build/ +src-tauri/gen/android/build/ +src-tauri/gen/android/local.properties +src-tauri/gen/android/.idea/ + +config/encrypted-credentials.json +credentials.json +.env +*.key +*.pem +*.jks +*.keystore + +.DS_Store +Thumbs.db +desktop.ini + +.vscode/ +.idea/ +*.swp +*.swo +*~ + +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +*.tmp +*.temp +download-temp.zip \ No newline at end of file diff --git a/DOCUMENTATION/FORDEV.md b/DOCUMENTATION/FORDEV.md new file mode 100644 index 0000000..9e2b857 --- /dev/null +++ b/DOCUMENTATION/FORDEV.md @@ -0,0 +1,57 @@ +Install dependencies: +```bash +npm install +``` + +Build the update payload: +```bash +npm run build:payload +``` + +Compile and assemble the release APK: +```bash +npm run build:apk +``` + +Release to GitLab: +```bash +npm run release +``` + +## Logs + +Stream live device logs: +```powershell +& "$env:LOCALAPPDATA\Android\Sdk\platform-tools\adb.exe" logcat -s VylaGo +``` + +Clear the logcat buffer then stream: +```powershell +& "$env:LOCALAPPDATA\Android\Sdk\platform-tools\adb.exe" logcat -c; & "$env:LOCALAPPDATA\Android\Sdk\platform-tools\adb.exe" logcat -s VylaGo +``` + +Dump logs to file: +```powershell +& "$env:LOCALAPPDATA\Android\Sdk\platform-tools\adb.exe" logcat -d -s VylaGo > vyla-go.log +``` + +Show all crash/fatal logs: +```powershell +& "$env:LOCALAPPDATA\Android\Sdk\platform-tools\adb.exe" logcat -d | Select-String "VylaGo|AndroidRuntime|FATAL" +``` + +List connected devices: +```powershell +& "$env:LOCALAPPDATA\Android\Sdk\platform-tools\adb.exe" devices +``` + +Install APK directly to device: +```powershell +& "$env:LOCALAPPDATA\Android\Sdk\platform-tools\adb.exe" install -r "src-tauri\gen\android\app\build\outputs\apk\universal\release\app-universal-release.apk" +``` + +Force-stop and clear app data: +```powershell +& "$env:LOCALAPPDATA\Android\Sdk\platform-tools\adb.exe" shell am force-stop com.vyla.go +& "$env:LOCALAPPDATA\Android\Sdk\platform-tools\adb.exe" shell pm clear com.vyla.go +``` \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..37cf21e --- /dev/null +++ b/README.md @@ -0,0 +1,33 @@ +# Vyla Go + +Vyla Go is the native Android mobile launcher for the Vyla media ecosystem. + +## Features +- **Native Android APK Architecture**: Built on Tauri v2 with native hardware acceleration. +- **Automated Resource Management**: Downloads, unpacks, and updates core services directly from official releases. +- **Hardware Shader Interface**: Real-time WebGL shader lighting and glassmorphism elements. + +## Prerequisites +- Node.js 20+ +- Rust & Cargo +- Android Studio with Android SDK & NDK 29+ +- Toolchain targets: + ```bash + rustup target add aarch64-linux-android + ``` + +## Development & Build +Install dependencies: +```bash +npm install +``` + +Compile and assemble the release APK: +```bash +npm run build:apk +``` + +Release packages to GitLab: +```bash +npm run release +``` \ No newline at end of file diff --git a/build-pipeline.js b/build-pipeline.js new file mode 100644 index 0000000..e582c3d --- /dev/null +++ b/build-pipeline.js @@ -0,0 +1,76 @@ +const fs = require('fs'); +const path = require('path'); +const crypto = require('crypto'); +const AdmZip = require('adm-zip'); +const { execSync } = require('child_process'); + +const BUILD_DIR = path.join(__dirname, 'dist-build'); +const REPOS = ['frontend', 'player']; +const GITLAB_GROUP = 'vyla-entertainment'; + +const REPO_CONFIG = { + 'frontend': { name: 'frontend', branch: 'main' }, + 'player': { name: 'player', branch: 'main' }, +}; + +function cleanBuildDir() { + if (fs.existsSync(BUILD_DIR)) { + fs.rmSync(BUILD_DIR, { recursive: true, force: true }); + } + fs.mkdirSync(BUILD_DIR, { recursive: true }); +} + +function clonePrivateRepo(repoConfig, targetDir) { + if (fs.existsSync(targetDir)) { + fs.rmSync(targetDir, { recursive: true, force: true }); + } + const token = process.env.GITLAB_TOKEN || process.env.VYLA_GITLAB_TOKEN; + const auth = token ? `oauth2:${token}@` : ''; + const repoUrl = `https://${auth}gitlab.com/${GITLAB_GROUP}/${repoConfig.name}.git`; + execSync(`git clone --depth 1 --branch ${repoConfig.branch} ${repoUrl} ${targetDir}`, { stdio: 'inherit' }); +} + +async function build() { + cleanBuildDir(); + for (const [key, config] of Object.entries(REPO_CONFIG)) { + const targetDir = path.join(__dirname, key); + clonePrivateRepo(config, targetDir); + execSync('npm install --omit=dev', { cwd: targetDir, stdio: 'inherit' }); + } + + const zip = new AdmZip(); + + const configDir = path.join(__dirname, 'config'); + if (fs.existsSync(configDir)) { + zip.addLocalFolder(configDir, 'config'); + } + + for (const repo of REPOS) { + const srcRepo = path.join(__dirname, repo); + zip.addLocalFolder(srcRepo, repo); + } + + const zipPath = path.join(__dirname, 'update-payload.zip'); + if (fs.existsSync(zipPath)) fs.rmSync(zipPath, { force: true }); + zip.writeZip(zipPath); + + const hash = crypto.createHash('sha256'); + hash.update(fs.readFileSync(zipPath)); + const checksum = hash.digest('hex'); + + const manifest = { + version: JSON.parse(fs.readFileSync('package.json', 'utf8')).version, + sha256: checksum, + timestamp: new Date().toISOString() + }; + fs.writeFileSync(path.join(__dirname, 'manifest.json'), JSON.stringify(manifest, null, 2), 'utf8'); + + for (const repo of REPOS) { + fs.rmSync(path.join(__dirname, repo), { recursive: true, force: true }); + } +} + +build().catch(err => { + console.error(err); + process.exit(1); +}); \ No newline at end of file diff --git a/config/credentials-template.json b/config/credentials-template.json new file mode 100644 index 0000000..faca020 --- /dev/null +++ b/config/credentials-template.json @@ -0,0 +1,5 @@ +{ + "player": { + "TMDB_KEY": "3f6703f3e2a0b2b40fe4fbb3e1546244" + } +} \ No newline at end of file diff --git a/config/env.json b/config/env.json new file mode 100644 index 0000000..bcf4ca1 --- /dev/null +++ b/config/env.json @@ -0,0 +1,5 @@ +{ + "player": { + "PORT": "3000" + } +} \ No newline at end of file diff --git a/config/replacements.json b/config/replacements.json new file mode 100644 index 0000000..c9481ab --- /dev/null +++ b/config/replacements.json @@ -0,0 +1,18 @@ +{ + "frontend": [ + { + "find": "https://player.vyla.cc", + "replace": "http://127.0.0.1:3000" + }, + { + "find": "http://player.vyla.cc", + "replace": "http://127.0.0.1:3000" + } + ], + "player": [ + { + "find": "https://player.vyla.cc", + "replace": "http://127.0.0.1:3000" + } + ] +} \ No newline at end of file diff --git a/credential-manager.js b/credential-manager.js new file mode 100644 index 0000000..139fc16 --- /dev/null +++ b/credential-manager.js @@ -0,0 +1,109 @@ +const fs = require('fs'); +const path = require('path'); +const CryptoUtils = require('./crypto-utils'); + +class CredentialManager { + constructor(appDataPath) { + this.appDataPath = appDataPath; + this.credentialsPath = path.join(appDataPath, 'vyla-credentials-store.json'); + this.machineKey = CryptoUtils.getMachineKey(appDataPath); + this.encryptionKey = CryptoUtils.deriveKey(this.machineKey); + this.credentials = {}; + } + + loadCredentials() { + try { + if (fs.existsSync(this.credentialsPath)) { + const encryptedData = fs.readFileSync(this.credentialsPath, 'utf8'); + this.credentials = CryptoUtils.decryptObject(encryptedData, this.encryptionKey); + } else { + this.credentials = {}; + } + } catch (error) { + this.credentials = {}; + } + } + + saveCredentials() { + try { + const encryptedData = CryptoUtils.encryptObject(this.credentials, this.encryptionKey); + fs.writeFileSync(this.credentialsPath, encryptedData, 'utf8'); + } catch (error) { + throw error; + } + } + + getCredential(service, key) { + if (!this.credentials[service]) { + return null; + } + return this.credentials[service][key] || null; + } + + setCredential(service, key, value) { + if (!this.credentials[service]) { + this.credentials[service] = {}; + } + this.credentials[service][key] = value; + this.saveCredentials(); + } + + getServiceCredentials(service) { + return this.credentials[service] || {}; + } + + setServiceCredentials(service, credentials) { + this.credentials[service] = { ...credentials }; + this.saveCredentials(); + } + + hasServiceCredentials(service) { + return !!this.credentials[service] && Object.keys(this.credentials[service]).length > 0; + } + + deleteServiceCredentials(service) { + delete this.credentials[service]; + this.saveCredentials(); + } + + initializeFromConfig(config) { + let initialized = false; + for (const [service, keys] of Object.entries(config)) { + if (!this.hasServiceCredentials(service)) { + this.setServiceCredentials(service, keys); + initialized = true; + } + } + return initialized; + } + + getAllEnvVars() { + const envVars = {}; + for (const [service, credentials] of Object.entries(this.credentials)) { + envVars[service] = { ...credentials }; + } + return envVars; + } + + verifyIntegrity() { + try { + if (!fs.existsSync(this.credentialsPath)) { + return false; + } + const encryptedData = fs.readFileSync(this.credentialsPath, 'utf8'); + CryptoUtils.decryptObject(encryptedData, this.encryptionKey); + return true; + } catch (error) { + return false; + } + } + + resetCredentials() { + this.credentials = {}; + if (fs.existsSync(this.credentialsPath)) { + fs.unlinkSync(this.credentialsPath); + } + } +} + +module.exports = CredentialManager; \ No newline at end of file diff --git a/crypto-utils.js b/crypto-utils.js new file mode 100644 index 0000000..0eb60eb --- /dev/null +++ b/crypto-utils.js @@ -0,0 +1,146 @@ +const crypto = require('crypto'); +const os = require('os'); +const { execSync } = require('child_process'); + +class CryptoUtils { + static getMachineKey(cacheDir) { + const path = require('path'); + const fs = require('fs'); + const cachePath = cacheDir ? path.join(cacheDir, '.machine-key-cache') : null; + + if (cachePath && fs.existsSync(cachePath)) { + try { + const cached = fs.readFileSync(cachePath, 'utf8').trim(); + if (cached) return cached; + } catch (e) { + } + } + + let key; + try { + const machineId = [ + os.hostname(), + os.platform(), + os.arch(), + os.cpus()[0].model, + this.getMachineId(), + process.env.COMPUTERNAME || '', + process.env.USERNAME || '' + ].join('|'); + + const hash = crypto.createHash('sha256'); + hash.update(machineId); + key = hash.digest('hex'); + } catch (error) { + const fallback = crypto.createHash('sha256'); + fallback.update(os.hostname() + Date.now()); + key = fallback.digest('hex'); + } + + if (cachePath) { + try { + fs.writeFileSync(cachePath, key, 'utf8'); + } catch (e) { + } + } + return key; + } + + static getMachineId() { + const fs = require('fs'); + if (os.platform() === 'win32') { + try { + const { spawnSync } = require('child_process'); + const res = spawnSync('reg', ['query', 'HKLM\\SOFTWARE\\Microsoft\\Cryptography', '/v', 'MachineGuid'], { encoding: 'utf8' }); + if (res.stdout) { + const match = res.stdout.match(/MachineGuid\s+REG_SZ\s+([^\r\n]+)/); + if (match) return match[1].trim(); + } + } catch (e) { } + return 'windows-node-' + os.hostname(); + } else if (os.platform() === 'darwin') { + try { + const { spawnSync } = require('child_process'); + const res = spawnSync('ioreg', ['-rd1', '-c', 'IOPlatformExpertDevice'], { encoding: 'utf8' }); + const match = res.stdout.match(/"IOPlatformUUID"\s*=\s*"([^"]+)"/); + if (match) return match[1].trim(); + } catch (e) { } + return 'darwin-node-' + os.hostname(); + } else { + for (const idPath of ['/etc/machine-id', '/var/lib/dbus/machine-id']) { + try { + if (fs.existsSync(idPath)) return fs.readFileSync(idPath, 'utf8').trim(); + } catch (e) { } + } + return 'linux-node-' + os.hostname(); + } + } + + static deriveKey(machineKey, salt = 'vyla-home-salt') { + const hash = crypto.createHash('sha256'); + hash.update(machineKey + salt); + return hash.digest(); + } + + static encrypt(plaintext, key) { + try { + const iv = crypto.randomBytes(16); + const cipher = crypto.createCipheriv('aes-256-gcm', key, iv); + + let encrypted = cipher.update(plaintext, 'utf8', 'hex'); + encrypted += cipher.final('hex'); + + const authTag = cipher.getAuthTag(); + + return `${iv.toString('hex')}:${authTag.toString('hex')}:${encrypted}`; + } catch (error) { + throw new Error(`Encryption failed: ${error.message}`); + } + } + + static decrypt(encryptedData, key) { + try { + const parts = encryptedData.split(':'); + if (parts.length !== 3) { + throw new Error('Invalid encrypted data format'); + } + + const iv = Buffer.from(parts[0], 'hex'); + const authTag = Buffer.from(parts[1], 'hex'); + const encrypted = parts[2]; + + const decipher = crypto.createDecipheriv('aes-256-gcm', key, iv); + decipher.setAuthTag(authTag); + + let decrypted = decipher.update(encrypted, 'hex', 'utf8'); + decrypted += decipher.final('utf8'); + + return decrypted; + } catch (error) { + throw new Error(`Decryption failed: ${error.message}`); + } + } + + static encryptObject(obj, key) { + const json = JSON.stringify(obj); + return this.encrypt(json, key); + } + + static decryptObject(encryptedData, key) { + const json = this.decrypt(encryptedData, key); + return JSON.parse(json); + } + + static hashData(data) { + const hash = crypto.createHash('sha256'); + hash.update(data); + return hash.digest('hex'); + } + + static verifyHash(data, expectedHash) { + const actualHash = this.hashData(data); + return actualHash === expectedHash; + } +} + +module.exports = CryptoUtils; \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..b05eb03 --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "name": "vyla-go", + "version": "1.0.0", + "description": "Vyla Go Mobile Launcher", + "main": "main.js", + "scripts": { + "tauri": "tauri", + "dev": "tauri android dev", + "build:payload": "node build-pipeline.js", + "build:apk": "tauri android build --apk --target aarch64 --target x86_64", + "release": "node release.js --apk" + }, + "dependencies": { + "@tauri-apps/api": "^2.0.0", + "@tauri-apps/plugin-opener": "^2.0.0", + "@tauri-apps/plugin-process": "^2.0.0", + "@tauri-apps/plugin-shell": "^2.0.0", + "@vyla-entertainment/sdk": "^1.11.0", + "adm-zip": "^0.6.0", + "express": "^4.19.2" + }, + "devDependencies": { + "@tauri-apps/cli": "^2.0.0" + } +} \ No newline at end of file diff --git a/patcher.js b/patcher.js new file mode 100644 index 0000000..e95f825 --- /dev/null +++ b/patcher.js @@ -0,0 +1,187 @@ +const fs = require('fs'); +const path = require('path'); +const crypto = require('crypto'); +const AdmZip = require('adm-zip'); +const CryptoUtils = require('./crypto-utils'); + +class Patcher { + constructor(appDataPath) { + this.appDataPath = appDataPath; + } + + getCurrentVersion() { + const versionFile = path.join(this.appDataPath, 'version.json'); + if (fs.existsSync(versionFile)) { + try { + return JSON.parse(fs.readFileSync(versionFile, 'utf8')).version || '0.0.0'; + } catch (e) { + return '0.0.0'; + } + } + return '0.0.0'; + } + + getCurrentSha() { + const versionFile = path.join(this.appDataPath, 'version.json'); + if (fs.existsSync(versionFile)) { + try { + return JSON.parse(fs.readFileSync(versionFile, 'utf8')).sha256 || null; + } catch (e) { + return null; + } + } + return null; + } + + bridgeCredentials(credentialManager) { + const encryptedPath = path.join(this.appDataPath, 'encrypted-credentials.json'); + if (!fs.existsSync(encryptedPath)) { + return false; + } + + const buildKey = CryptoUtils.deriveKey('vyla-home-build-key', 'vyla-home-payload-salt-v1'); + const encryptedData = fs.readFileSync(encryptedPath, 'utf8'); + const credentials = CryptoUtils.decryptObject(encryptedData, buildKey); + + for (const [service, keys] of Object.entries(credentials)) { + credentialManager.setServiceCredentials(service, keys); + } + + fs.unlinkSync(encryptedPath); + return true; + } + + saveCurrentVersion(version, sha256 = null) { + const versionFile = path.join(this.appDataPath, 'version.json'); + fs.mkdirSync(this.appDataPath, { recursive: true }); + fs.writeFileSync(versionFile, JSON.stringify({ version, sha256 }, null, 2), 'utf8'); + } + + purgeOldCode() { + const dirs = ['frontend', 'player', 'stream-api', 'auth-proxy', 'config']; + for (const dir of dirs) { + const fullPath = path.join(this.appDataPath, dir); + if (fs.existsSync(fullPath)) { + try { + const trashPath = path.join(this.appDataPath, `.trash_${dir}_${Date.now()}`); + fs.renameSync(fullPath, trashPath); + fs.rmSync(trashPath, { recursive: true, force: true }); + } catch (e) { + try { + fs.rmSync(fullPath, { recursive: true, force: true }); + } catch (err2) { } + } + } + } + try { + const files = fs.readdirSync(this.appDataPath); + for (const file of files) { + if (file.startsWith('.trash_')) { + fs.rmSync(path.join(this.appDataPath, file), { recursive: true, force: true }); + } + } + } catch (e) { } + } + + extractZipPayload(zipPath) { + const AdmZip = require('adm-zip'); + const zip = new AdmZip(zipPath); + const entries = zip.getEntries(); + + if (!entries || entries.length === 0) { + throw new Error('Downloaded archive is empty, invalid, or truncated.'); + } + + zip.extractAllTo(this.appDataPath, true); + + const testPath = path.join(this.appDataPath, 'frontend', 'index.html'); + if (!fs.existsSync(testPath)) { + const { execSync } = require('child_process'); + if (process.platform === 'win32') { + execSync(`powershell.exe -NoProfile -NonInteractive -Command "Expand-Archive -Path '${zipPath}' -DestinationPath '${this.appDataPath}' -Force"`, { windowsHide: true }); + } else { + execSync(`unzip -o "${zipPath}" -d "${this.appDataPath}"`); + } + } + } + + verifyChecksum(zipPath, expectedSha256) { + if (!expectedSha256) return true; + const hash = crypto.createHash('sha256'); + const data = fs.readFileSync(zipPath); + hash.update(data); + const calculated = hash.digest('hex'); + return calculated === expectedSha256; + } + + verifyExtraction() { + const requiredFiles = [ + 'frontend/index.html', + 'player/server.js' + ]; + + for (const file of requiredFiles) { + const fullPath = path.join(this.appDataPath, file); + if (!fs.existsSync(fullPath)) { + return false; + } + const stat = fs.statSync(fullPath); + if (stat.size === 0) { + return false; + } + try { + const sampleSize = Math.min(stat.size, 4096); + const fd = fs.openSync(fullPath, 'r'); + const buffer = Buffer.alloc(sampleSize); + fs.readSync(fd, buffer, 0, sampleSize, 0); + fs.closeSync(fd); + if (buffer.every(byte => byte === 0)) { + return false; + } + } catch (e) { + return false; + } + } + return true; + } + + processDirectory(dir, replacementList = []) { + const files = fs.readdirSync(dir); + for (const file of files) { + const fullPath = path.join(dir, file); + const stat = fs.statSync(fullPath); + + if (stat.isDirectory()) { + if (file === 'node_modules' || file === '.git') continue; + this.processDirectory(fullPath, replacementList); + } else if (stat.isFile()) { + const ext = path.extname(fullPath).toLowerCase(); + let content = fs.readFileSync(fullPath, 'utf8'); + let modified = false; + + for (const rep of replacementList) { + if (content.includes(rep.find)) { + content = content.split(rep.find).join(rep.replace); + modified = true; + } + } + + if (modified) { + fs.writeFileSync(fullPath, content, 'utf8'); + } + } + } + } + + applyPatches(replacements) { + const targetDirs = ['frontend', 'player']; + for (const dirName of targetDirs) { + const dirPath = path.join(this.appDataPath, dirName); + if (!fs.existsSync(dirPath)) continue; + const replacementList = replacements[dirName] || []; + this.processDirectory(dirPath, replacementList); + } + } +} + +module.exports = Patcher; \ No newline at end of file diff --git a/release.js b/release.js new file mode 100644 index 0000000..0822d8b --- /dev/null +++ b/release.js @@ -0,0 +1,189 @@ +const fs = require('fs'); +const path = require('path'); +const https = require('https'); +const { execSync } = require('child_process'); + +const PROJECT_ID = process.env.CI_PROJECT_ID || 'vyla-entertainment%2Fgo'; +const TOKEN = process.env.GITLAB_TOKEN || process.env.VYLA_GITLAB_TOKEN; + +if (!TOKEN) { + console.error('Error: GITLAB_TOKEN or VYLA_GITLAB_TOKEN is required.'); + process.exit(1); +} + +function incrementVersion() { + const pkgPath = path.join(__dirname, 'package.json'); + const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8')); + let [major, minor, patch] = (pkg.version || '1.0.0').split('.').map(Number); + patch = (patch || 0) + 1; + const newVersion = `${major}.${minor}.${patch}`; + pkg.version = newVersion; + fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n', 'utf8'); + + const tauriPath = path.join(__dirname, 'src-tauri', 'tauri.conf.json'); + if (fs.existsSync(tauriPath)) { + const tauriConf = JSON.parse(fs.readFileSync(tauriPath, 'utf8')); + tauriConf.version = newVersion; + fs.writeFileSync(tauriPath, JSON.stringify(tauriConf, null, 2) + '\n', 'utf8'); + } + return newVersion; +} + +function gitCommitAndTag(version) { + try { + execSync('git add package.json src-tauri/tauri.conf.json', { stdio: 'inherit' }); + execSync(`git commit -m "chore: release ${version}"`, { stdio: 'inherit' }); + execSync(`git tag -a ${version} -m "Release ${version}"`, { stdio: 'inherit' }); + execSync('git push origin HEAD --tags', { stdio: 'inherit' }); + } catch (e) { + console.warn('Git operations failed (non-fatal):', e.message); + } +} + +function httpsRequest(options, body = null) { + return new Promise((resolve, reject) => { + const req = https.request(options, (res) => { + let data = ''; + res.on('data', chunk => data += chunk); + res.on('end', () => { + if (res.statusCode >= 200 && res.statusCode < 300) resolve({ status: res.statusCode, body: data }); + else reject(new Error(`HTTP ${res.statusCode}: ${data}`)); + }); + }); + req.on('error', reject); + if (body) req.write(body); + req.end(); + }); +} + +function uploadFile(filePath, packageName, version, fileName) { + return new Promise((resolve, reject) => { + const stat = fs.statSync(filePath); + const timestamp = Date.now(); + const uploadName = `${path.parse(fileName).name}-${timestamp}${path.parse(fileName).ext}`; + const urlPath = `/api/v4/projects/${PROJECT_ID}/packages/generic/${packageName}/${version}/${encodeURIComponent(uploadName)}`; + + const req = https.request({ + hostname: 'gitlab.com', + path: urlPath, + method: 'PUT', + headers: { + 'PRIVATE-TOKEN': TOKEN, + 'Content-Type': 'application/octet-stream', + 'Content-Length': stat.size + } + }, (res) => { + let body = ''; + res.on('data', chunk => body += chunk); + res.on('end', () => { + if (res.statusCode >= 200 && res.statusCode < 300) { + resolve({ uploadName, url: `https://gitlab.com/api/v4/projects/${PROJECT_ID}/packages/generic/${packageName}/${version}/${encodeURIComponent(uploadName)}` }); + } else { + reject(new Error(`Upload failed (${res.statusCode}): ${body}`)); + } + }); + }); + req.on('error', reject); + fs.createReadStream(filePath).pipe(req); + }); +} + +async function createRelease(version, assets) { + const tag = version; + const apk = assets.apk; + const payload = assets.payload; + const manifest = assets.manifest; + + const description = [ + `## Automated Release ${version}`, + '', + '### Assets', + '', + `* [vyla-go-${version}.apk](${apk.url})`, + '', + '### Payload', + '', + `* [manifest.json](${manifest.url})`, + `* [update-payload.zip](${payload.url})`, + ].join('\n'); + + const body = JSON.stringify({ + name: `Vyla Go Release ${version}`, + tag_name: tag, + description, + assets: { + links: [ + { name: `vyla-go-${version}.apk`, url: apk.url, link_type: 'package' }, + { name: 'update-payload.zip', url: payload.url, link_type: 'other' }, + { name: 'manifest.json', url: manifest.url, link_type: 'other' }, + ] + } + }); + + await httpsRequest({ + hostname: 'gitlab.com', + path: `/api/v4/projects/${PROJECT_ID}/releases`, + method: 'POST', + headers: { + 'PRIVATE-TOKEN': TOKEN, + 'Content-Type': 'application/json', + 'Content-Length': Buffer.byteLength(body) + } + }, body); +} + +async function main() { + const rawVersion = incrementVersion(); + const version = `v${rawVersion}`; + console.log(`Releasing ${version}...`); + + console.log('Building payload...'); + execSync('npm run build:payload', { stdio: 'inherit' }); + + console.log('Building APK...'); + execSync('npm run build:apk', { stdio: 'inherit' }); + + const apkSearchDirs = [ + path.join(__dirname, 'src-tauri', 'gen', 'android', 'app', 'build', 'outputs', 'apk', 'universal', 'release'), + path.join(__dirname, 'src-tauri', 'gen', 'android', 'app', 'build', 'outputs', 'apk', 'arm64', 'release'), + path.join(__dirname, 'src-tauri', 'gen', 'android', 'app', 'build', 'outputs', 'apk', 'release'), + ]; + + let apkPath = null; + for (const dir of apkSearchDirs) { + if (!fs.existsSync(dir)) continue; + const found = fs.readdirSync(dir).find(f => f.endsWith('.apk') && !f.includes('unsigned')); + if (found) { apkPath = path.join(dir, found); break; } + } + if (!apkPath) throw new Error('Signed release APK not found'); + + const payloadPath = path.join(__dirname, 'update-payload.zip'); + const manifestPath = path.join(__dirname, 'manifest.json'); + + if (!fs.existsSync(payloadPath)) throw new Error('update-payload.zip not found — run build:payload first'); + if (!fs.existsSync(manifestPath)) throw new Error('manifest.json not found — run build:payload first'); + + gitCommitAndTag(version); + + console.log('Uploading APK...'); + const apkAsset = await uploadFile(apkPath, 'vyla-go', version, `vyla-go-${version}.apk`); + + console.log('Uploading payload...'); + const payloadAsset = await uploadFile(payloadPath, 'vyla-go', version, 'update-payload.zip'); + + console.log('Uploading manifest...'); + const manifestAsset = await uploadFile(manifestPath, 'vyla-go', version, 'manifest.json'); + + console.log('Creating GitLab release...'); + await createRelease(version, { apk: apkAsset, payload: payloadAsset, manifest: manifestAsset }); + + console.log(`\nRelease ${version} published successfully.`); + console.log(`APK: ${apkAsset.url}`); + console.log(`Payload: ${payloadAsset.url}`); + console.log(`Manifest: ${manifestAsset.url}`); +} + +main().catch(err => { + console.error(err); + process.exit(1); +}); \ No newline at end of file diff --git a/service-manager.js b/service-manager.js new file mode 100644 index 0000000..99650b1 --- /dev/null +++ b/service-manager.js @@ -0,0 +1,200 @@ +const { spawn } = require('child_process'); +const path = require('path'); +const fs = require('fs'); +const CredentialManager = require('./credential-manager'); + +class ServiceManager { + constructor(appDataPath, envConfig) { + this.appDataPath = appDataPath; + this.envConfig = envConfig; + this.credentialManager = new CredentialManager(appDataPath); + this.processes = {}; + this.restartCounts = {}; + this.stableTimers = {}; + this.isStopping = false; + + this.logsDir = path.join(appDataPath, 'logs'); + fs.mkdirSync(this.logsDir, { recursive: true }); + } + + logToFile(name, line) { + try { + const logPath = path.join(this.logsDir, `${name}.log`); + const timestamp = new Date().toISOString(); + fs.appendFile(logPath, `[${timestamp}] ${line}\n`, 'utf8', () => { }); + process.stdout.write(JSON.stringify({ event: "service-log", data: { service: name, message: line } }) + '\n'); + } catch (e) { + } + } + + async startService(name, relativeDir, startScript = 'server.js') { + if (this.processes[name]) { + return; + } + + const serviceDir = path.join(this.appDataPath, relativeDir); + const scriptPath = path.join(serviceDir, startScript); + + if (!fs.existsSync(scriptPath)) { + throw new Error(`Service script not found: ${scriptPath}`); + } + + let tokenSecret = process.env.TOKEN_SECRET || + this.credentialManager.getCredential('player', 'TOKEN_SECRET'); + + if (!tokenSecret || tokenSecret.length < 32) { + tokenSecret = require('crypto').randomBytes(32).toString('hex'); + this.credentialManager.setCredential('player', 'TOKEN_SECRET', tokenSecret); + } + + const env = { + ...process.env, + TOKEN_SECRET: tokenSecret, + ...(this.envConfig[name] || {}), + ...(this.credentialManager.getServiceCredentials(name) || {}) + }; + + this.logToFile(name, `--- Starting ${name} in ${serviceDir} ---`); + + const nodeExecutable = process.env.NODE_EXE || 'node'; + + const child = spawn(nodeExecutable, [scriptPath], { + cwd: serviceDir, + env, + stdio: ['ignore', 'pipe', 'pipe'], + shell: false + }); + + this.processes[name] = { + child, + relativeDir, + startScript, + status: 'starting' + }; + + if (this.stableTimers[name]) { + clearTimeout(this.stableTimers[name]); + } + this.stableTimers[name] = setTimeout(() => { + this.restartCounts[name] = 0; + }, 60000); + + child.stdout.on('data', (data) => { + const text = data.toString().trim(); + this.logToFile(name, `STDOUT: ${text}`); + }); + + child.stderr.on('data', (data) => { + const text = data.toString().trim(); + this.logToFile(name, `STDERR: ${text}`); + + if (text.includes('EADDRINUSE')) { + const match = text.match(/:(\d+)/); + const port = match ? match[1] : null; + if (port) { + try { + if (process.platform === 'win32') { + require('child_process').spawnSync('powershell.exe', [ + '-NoProfile', + '-NonInteractive', + '-Command', + `Get-NetTCPConnection -LocalPort ${port} -ErrorAction SilentlyContinue | ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }` + ], { stdio: 'ignore', windowsHide: true }); + } else { + require('child_process').spawnSync('fuser', ['-k', '-9', `${port}/tcp`], { stdio: 'ignore' }); + } + } catch (_) { } + } + } + }); + + child.on('exit', (code, signal) => { + this.logToFile(name, `EXITED: code=${code} signal=${signal}`); + this.processes[name] = null; + + if (this.stableTimers[name]) { + clearTimeout(this.stableTimers[name]); + this.stableTimers[name] = null; + } + + if (!this.isStopping) { + this.restartCounts[name] = (this.restartCounts[name] || 0) + 1; + if (this.restartCounts[name] > 5) { + this.logToFile(name, `Crashed too many times, giving up.`); + return; + } + setTimeout(() => { + this.startService(name, relativeDir, startScript).catch(err => { + this.logToFile(name, `Failed to restart: ${err.message}`); + }); + }, 1500); + } + }); + } + + async startServices(services) { + await Promise.all(services.map(({ name, relativeDir, startScript }) => + this.startService(name, relativeDir, startScript) + )); + } + + async stopAll() { + this.isStopping = true; + for (const name of Object.keys(this.stableTimers)) { + if (this.stableTimers[name]) { + clearTimeout(this.stableTimers[name]); + } + } + this.stableTimers = {}; + const killPromises = Object.keys(this.processes).map((name) => { + const procInfo = this.processes[name]; + if (procInfo && procInfo.child) { + this.logToFile(name, `Killing service`); + return new Promise((resolve) => { + procInfo.child.removeAllListeners('exit'); + procInfo.child.on('exit', () => resolve()); + procInfo.child.kill(); + }); + } + return Promise.resolve(); + }); + + await Promise.all(killPromises); + this.processes = {}; + } + + async waitForPorts(ports, timeoutMs = 30000) { + await Promise.all(ports.map((port) => this.waitForPort(port, timeoutMs))); + } + + async waitForPort(port, timeoutMs = 30000) { + const start = Date.now(); + const net = require('net'); + + while (Date.now() - start < timeoutMs) { + if (this.isStopping) return false; + const connected = await new Promise((resolve) => { + const socket = new net.Socket(); + socket.setTimeout(1000); + socket.on('connect', () => { + socket.destroy(); + resolve(true); + }); + socket.on('error', () => { + resolve(false); + }); + socket.on('timeout', () => { + socket.destroy(); + resolve(false); + }); + socket.connect(port, '127.0.0.1'); + }); + + if (connected) return true; + await new Promise(r => setTimeout(r, 40)); + } + throw new Error(`Timeout waiting for port ${port}`); + } +} + +module.exports = ServiceManager; \ No newline at end of file diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock new file mode 100644 index 0000000..7f2409f --- /dev/null +++ b/src-tauri/Cargo.lock @@ -0,0 +1,5540 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "aho-corasick" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" +dependencies = [ + "memchr", +] + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e76a019e91224d279006ff972f1e984179a6e9feb050adba6ce8274aef23195" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "android_system_properties" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae221649c9976a6f6c56ae1facf410f3ddb33cc661c4b7b61020a912d4237fbc" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" + +[[package]] +name = "arbitrary" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" +dependencies = [ + "derive_arbitrary", +] + +[[package]] +name = "async-broadcast" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" +dependencies = [ + "event-listener", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-channel" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" +dependencies = [ + "concurrent-queue", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-executor" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand", + "futures-lite", + "pin-project-lite", + "slab", +] + +[[package]] +name = "async-io" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" +dependencies = [ + "autocfg", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite", + "parking", + "polling", + "rustix", + "slab", + "windows-sys 0.61.2", +] + +[[package]] +name = "async-lock" +version = "3.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" +dependencies = [ + "event-listener", + "event-listener-strategy", + "pin-project-lite", +] + +[[package]] +name = "async-process" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75" +dependencies = [ + "async-channel", + "async-io", + "async-lock", + "async-signal", + "async-task", + "blocking", + "cfg-if", + "event-listener", + "futures-lite", + "rustix", +] + +[[package]] +name = "async-recursion" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "async-signal" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52b5aaafa020cf5053a01f2a60e8ff5dccf550f0f77ec54a4e47285ac2bab485" +dependencies = [ + "async-io", + "async-lock", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix", + "signal-hook-registry", + "slab", + "windows-sys 0.61.2", +] + +[[package]] +name = "async-task" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + +[[package]] +name = "async-trait" +version = "0.1.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "atk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b" +dependencies = [ + "atk-sys", + "glib", + "libc", +] + +[[package]] +name = "atk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" + +[[package]] +name = "bit-set" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da" +dependencies = [ + "serde_core", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" +dependencies = [ + "objc2", +] + +[[package]] +name = "blocking" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a70e4329df6cb94385eed412ec92375c3cdd8a6e502493d1229b6414e4036dfa" +dependencies = [ + "async-channel", + "async-task", + "futures-io", + "futures-lite", + "piper", +] + +[[package]] +name = "brotli" +version = "8.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc91aac060a7a1e25823bdccbfb6af1875b88f17c6daac97894eed8207166b3" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "5.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a32acac15fe1967bc3986b2a6347dffc965602354ea6f450ad07e8bfd253583" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + +[[package]] +name = "bytemuck" +version = "1.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" +dependencies = [ + "serde", +] + +[[package]] +name = "cairo-rs" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" +dependencies = [ + "bitflags 2.13.1", + "cairo-sys-rs", + "glib", + "libc", + "once_cell", + "thiserror 1.0.69", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "camino" +version = "1.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb1307f12aa967b5a58416e87b3653360e0fd614a016b6e970db08fecbb1b80d" +dependencies = [ + "serde_core", +] + +[[package]] +name = "cargo-platform" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror 2.0.20", +] + +[[package]] +name = "cargo_toml" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" +dependencies = [ + "serde", + "toml 0.9.12+spec-1.1.0", +] + +[[package]] +name = "cc" +version = "1.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "005ec2760ca554fae18df7a11195552ec576cd665632a881bc011d5bb2fd4d80" +dependencies = [ + "find-msvc-tools", + "shlex", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cfb" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" +dependencies = [ + "byteorder", + "fnv", + "uuid", +] + +[[package]] +name = "cfg-expr" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" +dependencies = [ + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "cfg_aliases" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" + +[[package]] +name = "chacha20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65c35e4b699c7e15ccbe7ee35c005e4fc0a278d22238a2857e6ce2dadeda1b06" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.1", + "rand_core", +] + +[[package]] +name = "chrono" +version = "0.4.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327" +dependencies = [ + "iana-time-zone", + "num-traits", + "serde", + "windows-link 0.2.1", +] + +[[package]] +name = "combine" +version = "4.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfc320937d09e6de266b31b9afb480f197d7a861be86be7cb2ea7e5d1bfffc5e" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "cookie" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a373e3602691c3cdea496d2f0ee5935151e6168fe87739483c463db1b2f2f87" +dependencies = [ + "time", + "version_check", +] + +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "core-graphics" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "064badf302c3194842cf2c5d61f56cc88e54a759313879cdf03abdd27d0c3b97" +dependencies = [ + "bitflags 2.13.1", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" +dependencies = [ + "bitflags 2.13.1", + "core-foundation", + "libc", +] + +[[package]] +name = "core_detect" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f8f80099a98041a3d1622845c271458a2d73e688351bf3cb999266764b81d48" + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8498c871161e1742aaa9d52551b2d6ebdd4c3d45a3be423e3728f33b955be550" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98b0cc327b5bc766e7fda9c9260cc0fa81b43a8e240440422dff70788e3f9ef1" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31eee39dddec8330830986fcd7625edb5a24ec90ea038215273bbc3adb08ac6" + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "cssparser" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dae61cf9c0abb83bd659dab65b7e4e38d8236824c85f0f804f173567bda257d2" +dependencies = [ + "cssparser-macros", + "dtoa-short", + "itoa", + "phf", + "smallvec", +] + +[[package]] +name = "cssparser-macros" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" +dependencies = [ + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ctor" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "352d39c2f7bef1d6ad73db6f5160efcaed66d94ef8c6c573a8410c00bf909a98" +dependencies = [ + "ctor-proc-macro", + "dtor", +] + +[[package]] +name = "ctor-proc-macro" +version = "0.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52560adf09603e58c9a7ee1fe1dcb95a16927b17c127f0ac02d6e768a0e25bc1" + +[[package]] +name = "darling" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed17f5901b6630b993ca003def43f2f8ef4014fc13b047b57aad617ff32bc2ec" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6837e2cf7485aaae18f86181d2f0e9a7ed297a025e220aeabf63fdebd3a2ddff" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 3.0.5", +] + +[[package]] +name = "darling_macro" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ac7135c3ef02b2f7833bbeb1be5ba7f966dcde8a87c6b87f65a778d71a02785" +dependencies = [ + "darling_core", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "dbus" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ab69f03cc8c4340c9c8e315114e1658e6775a9b16a04357973aa21cec22b32e" +dependencies = [ + "libc", + "libdbus-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "defmt" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2953bfe4f93bbd20cc71198842756f77d161884c99ebbabc41d80231ded88d1" +dependencies = [ + "bitflags 1.3.2", + "defmt-macros", +] + +[[package]] +name = "defmt-macros" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bad9c72e7ca2137e0dc3813245a0d282fd6daad32fd800af018306a9169b5fe8" +dependencies = [ + "defmt-parser", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "defmt-parser" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e" +dependencies = [ + "thiserror 2.0.20", +] + +[[package]] +name = "deranged" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" +dependencies = [ + "serde_core", +] + +[[package]] +name = "derive_arbitrary" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "derive_more" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" +dependencies = [ + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.119", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "dirs" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.61.2", +] + +[[package]] +name = "dispatch2" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" +dependencies = [ + "bitflags 2.13.1", + "block2", + "libc", + "objc2", +] + +[[package]] +name = "displaydoc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6232dd377dcc64799954cbd3a9bb882e9cdc1308ccd87b1c098f1fb2eaf82a8" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "dlopen2" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e2c5bd4158e66d1e215c49b837e11d62f3267b30c92f1d171c4d3105e3dc4d4" +dependencies = [ + "dlopen2_derive", + "libc", + "once_cell", + "winapi", +] + +[[package]] +name = "dlopen2_derive" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fbbb781877580993a8707ec48672673ec7b81eeba04cfd2310bd28c08e47c8f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "dom_query" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521e380c0c8afb8d9a1e83a1822ee03556fc3e3e7dbc1fd30be14e37f9cb3f89" +dependencies = [ + "bit-set", + "cssparser", + "foldhash", + "html5ever", + "precomputed-hash", + "selectors", + "tendril", +] + +[[package]] +name = "dpi" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" +dependencies = [ + "serde", +] + +[[package]] +name = "dtoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c3cf4824e2d5f025c7b531afcb2325364084a16806f6d47fbc1f5fbd9960590" + +[[package]] +name = "dtoa-short" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87" +dependencies = [ + "dtoa", +] + +[[package]] +name = "dtor" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1057d6c64987086ff8ed0fd3fbf377a6b7d205cc7715868cd401705f715cbe4" +dependencies = [ + "dtor-proc-macro", +] + +[[package]] +name = "dtor-proc-macro" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f678cf4a922c215c63e0de95eb1ff08a958a81d47e485cf9da1e27bf6305cfa5" + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + +[[package]] +name = "embed-resource" +version = "3.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbfdaacccebec3b28e4866b8973543c7647797db5ada1bdab552e48fe665fbbd" +dependencies = [ + "cc", + "memchr", + "rustc_version", + "toml 1.1.5+spec-1.1.0", + "vswhom", + "winreg", +] + +[[package]] +name = "embed_plist" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" + +[[package]] +name = "encoding_rs" +version = "0.8.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a7a45518d2863d18aa47f4a0cf9faec2aa4304cc09df5e41299f276b3ad135e" +dependencies = [ + "cfg-if", + "core_detect", + "multiversion", + "multiversion_no_op", + "rustversion", + "scopeguard", + "simdutf8", +] + +[[package]] +name = "endi" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099" + +[[package]] +name = "enumflags2" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" +dependencies = [ + "enumflags2_derive", + "serde", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "erased-serde" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec" +dependencies = [ + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "event-listener" +version = "5.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a23add41df1562121a9393cb065eab5146a1242410f23a644851e90cfd669d2" +dependencies = [ + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" +dependencies = [ + "event-listener", + "pin-project-lite", +] + +[[package]] +name = "fastrand" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" + +[[package]] +name = "fdeflate" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "field-offset" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" +dependencies = [ + "memoffset", + "rustc_version", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e0f1c7c3a72c66fd80abe965175f7523475c0489a87d3ff9d6e8c87d87a9d2d" + +[[package]] +name = "flate2" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e634e2e0ebac1ee034020da1ca582e17ffe4e0f5e985823721e168928136dcb" +dependencies = [ + "crc32fast", + "miniz_oxide 0.9.1", + "zlib-rs", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea5190182e6915eb873ddbc16e23b711b6eb1f9c00a0d0a3a91b5f6228475225" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures-channel" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f9e3d69d39e4862ffed03ed071a76f9a13ba1d9109d355b0f0aa6b15e393c4" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" + +[[package]] +name = "futures-executor" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "031b47cf1a3c6cc8bc2fc76cd437f521619387907d469316e7c0bc278f1f5432" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53c0fa8157de1303bfffdaa1cc2a673bfffb60102f76b0ef4441659124373fed" + +[[package]] +name = "futures-lite" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", +] + +[[package]] +name = "futures-macro" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "futures-sink" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1944426bf7d03f1d14f708785e4b33efd750b36d48a157b836b3efc15ede8e1d" + +[[package]] +name = "futures-task" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" + +[[package]] +name = "futures-util" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" +dependencies = [ + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "slab", +] + +[[package]] +name = "gdk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691" +dependencies = [ + "cairo-rs", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" +dependencies = [ + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", + "once_cell", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gdk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkwayland-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "140071d506d223f7572b9f09b5e155afbd77428cd5cc7af8f2694c41d98dfe69" +dependencies = [ + "gdk-sys", + "glib-sys", + "gobject-sys", + "libc", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkx11" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3caa00e14351bebbc8183b3c36690327eb77c49abc2268dd4bd36b856db3fbfe" +dependencies = [ + "gdk", + "gdkx11-sys", + "gio", + "glib", + "libc", + "x11", +] + +[[package]] +name = "gdkx11-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2e7445fe01ac26f11601db260dd8608fe172514eb63b3b5e261ea6b0f4428d" +dependencies = [ + "gdk-sys", + "glib-sys", + "libc", + "system-deps", + "x11", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "libc", + "r-efi 5.3.0", + "wasip2", +] + +[[package]] +name = "getrandom" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "r-efi 6.0.0", + "rand_core", + "wasm-bindgen", +] + +[[package]] +name = "gio" +version = "0.18.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "gio-sys", + "glib", + "libc", + "once_cell", + "pin-project-lite", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "gio-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", + "winapi", +] + +[[package]] +name = "glib" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" +dependencies = [ + "bitflags 2.13.1", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "memchr", + "once_cell", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "glib-macros" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" +dependencies = [ + "heck 0.4.1", + "proc-macro-crate 2.0.2", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "glib-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" +dependencies = [ + "libc", + "system-deps", +] + +[[package]] +name = "glob" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b" + +[[package]] +name = "gobject-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gtk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a" +dependencies = [ + "atk", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk", + "gdk-pixbuf", + "gio", + "glib", + "gtk-sys", + "gtk3-macros", + "libc", + "pango", + "pkg-config", +] + +[[package]] +name = "gtk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "gtk3-macros" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17592d60ebacc7d5e169f4663c5f84f9161cc90328abcfe8456f41e4dfcb284" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "html5ever" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1054432bae2f14e0061e33d23402fbaa67a921d319d56adc6bcf887ddad1cbc2" +dependencies = [ + "log", + "markup5ever", +] + +[[package]] +name = "http" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "918d3568bebf352712bc2ef3d46a8bcf1a75b373be6539de198e9105cbbf9ce0" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca2a8f2913ee65f60facd6a5905613afaa448497a0230cc41ce022d93290bc2c" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23169fe34a5fbcdd3f3862e78fb9b6fccd5f02a6dc6f732547005d45631ce71c" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "hyper" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b501faa50e7a26c3d3560ca625132f4078a17771f4810baf70475ae48cbe43" +dependencies = [ + "atomic-waker", + "bytes", + "futures-channel", + "futures-core", + "http", + "http-body", + "httparse", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f" +dependencies = [ + "http", + "hyper", + "hyper-util", + "rustls", + "tokio", + "tokio-rustls", + "tower-service", + "webpki-roots", +] + +[[package]] +name = "hyper-util" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "ipnet", + "libc", + "percent-encoding", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core 0.62.2", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ico" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e795dff5605e0f04bff85ca41b51a96b83e80b281e96231bcaaf1ac35103371" +dependencies = [ + "byteorder", + "png 0.17.16", +] + +[[package]] +name = "icu_collections" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa68d21081c4a05d5a901a1c62add574c77048b6a1c67be3b50ce0b60d4ca513" +dependencies = [ + "displaydoc", + "potential_utf", + "utf8_iter", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d56e28588da92eee5c3201a6eff33fabdd49b62269c8938d4ff050ce4d900deb" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f9cf5f235641ed274641dd81c3f28d870e276763d0797aeeab72317b1c646f" +dependencies = [ + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1563da1ed3e0b3bf3d74c9b85917ac9c56464d2f57242270c09c9e752f8021a0" + +[[package]] +name = "icu_properties" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e7ca276ad3145661a65914e6daf131ca5120cd3dcee8f8f3214b8875184a148" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e590f038c1464a96894fd6d10127e90a8be4509f56ff7ecef851b15cee0b7caa" + +[[package]] +name = "icu_provider" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d27bbb9d3abbefac45d55f647c9de1d44aafcd1186eb91879afef17c396c3e73" +dependencies = [ + "displaydoc", + "icu_locale_core", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855" +dependencies = [ + "equivalent", + "hashbrown 0.17.1", + "serde", + "serde_core", +] + +[[package]] +name = "infer" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7" +dependencies = [ + "cfb", +] + +[[package]] +name = "ipnet" +version = "2.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "791930b43c0d5973160d90a8f3894509f2b273430f5c5c73b668636d0287c5c0" + +[[package]] +name = "is-docker" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" +dependencies = [ + "once_cell", +] + +[[package]] +name = "is-wsl" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" +dependencies = [ + "is-docker", + "once_cell", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "javascriptcore-rs" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" +dependencies = [ + "bitflags 1.3.2", + "glib", + "javascriptcore-rs-sys", +] + +[[package]] +name = "javascriptcore-rs-sys" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "jiff" +version = "0.2.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "668b7183bd07af9a4885f5c35b0cc5c83c4607a913c16b7e17291832910d2dcc" +dependencies = [ + "defmt", + "jiff-core", + "jiff-static", + "jiff-tzdb-platform", + "log", + "portable-atomic", + "portable-atomic-util", + "serde_core", + "windows-link 0.2.1", +] + +[[package]] +name = "jiff-core" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7feca88439efe53da3754500c1851dedf3cb36c524dd5cf8225cc0794de95d09" +dependencies = [ + "defmt", +] + +[[package]] +name = "jiff-static" +version = "0.2.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a69dcb3a21cfb32ce1cd056169337ca284af0766dd766e7878819b251a49204" +dependencies = [ + "jiff-core", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "jiff-tzdb" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "142bd39932ad231f10513df9ab62661fead8719872150b7ad02a2df79f4e141e" + +[[package]] +name = "jiff-tzdb-platform" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "875a5a69ac2bab1a891711cf5eccbec1ce0341ea805560dcd90b7a2e925132e8" +dependencies = [ + "jiff-tzdb", +] + +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys 0.3.1", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" +dependencies = [ + "jni-sys 0.4.1", +] + +[[package]] +name = "jni-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" +dependencies = [ + "jni-sys-macros", +] + +[[package]] +name = "jni-sys-macros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" +dependencies = [ + "quote", + "syn 2.0.119", +] + +[[package]] +name = "js-sys" +version = "0.3.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce57d20d1ea864ce2ac172ab472d409214f4fd359f0b2a2775abdf522e2af99e" +dependencies = [ + "cfg-if", + "futures-util", + "wasm-bindgen", +] + +[[package]] +name = "json-patch" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08" +dependencies = [ + "jsonptr", + "serde", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "jsonptr" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "keyboard-types" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" +dependencies = [ + "bitflags 2.13.1", + "serde", + "unicode-segmentation", +] + +[[package]] +name = "libappindicator" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a" +dependencies = [ + "glib", + "gtk", + "gtk-sys", + "libappindicator-sys", + "log", +] + +[[package]] +name = "libappindicator-sys" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" +dependencies = [ + "gtk-sys", + "libloading", + "once_cell", +] + +[[package]] +name = "libc" +version = "0.2.189" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" + +[[package]] +name = "libdbus-sys" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "328c4789d42200f1eeec05bd86c9c13c7f091d2ba9a6ea35acdf51f31bc0f043" +dependencies = [ + "pkg-config", +] + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "libredox" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d8f1ea3f21fd3405dcaf6c9b5c1630af9afc422d9073ea39c5f6d6c772e08ed" +dependencies = [ + "libc", +] + +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + +[[package]] +name = "litemap" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d9d19d1d6efa0109d2f65ff4c85cddd50bd572e5a00127ab10987290bcefae" + +[[package]] +name = "lock_api" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" + +[[package]] +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + +[[package]] +name = "markup5ever" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8983d30f2915feeaaab2d6babdd6bc7e9ed1a00b66b5e6d74df19aa9c0e91862" +dependencies = [ + "log", + "tendril", + "web_atoms", +] + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "miniz_oxide" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b63fbc4a50860e98e7b2aa7804ded1db5cbc3aff9193adaff57a6931bf7c4b4c" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b18443e9c262bfe8fa82f51666e2642c53393f7e5c27b3e1aeab922cff5b9d8" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.61.2", +] + +[[package]] +name = "muda" +version = "0.19.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd04e60bc0b07438a6771710ee1698f98f6ebbc7f89b61264af1563b8aeb878" +dependencies = [ + "crossbeam-channel", + "dpi", + "gtk", + "keyboard-types", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "once_cell", + "png 0.18.1", + "serde", + "thiserror 2.0.20", + "windows-sys 0.61.2", +] + +[[package]] +name = "multiversion" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edb7f0ff51249dfda9ab96b5823695e15a052dc15074c9dbf3d118afaf2c201" +dependencies = [ + "multiversion-macros", + "target-features", +] + +[[package]] +name = "multiversion-macros" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b093064383341eb3271f42e381cb8f10a01459478446953953c75d24bd339fc0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", + "target-features", +] + +[[package]] +name = "multiversion_no_op" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "743fb55ba31b18fb1ecef6bdc9aa2743314978ac084044301a7eee33fb99a20d" + +[[package]] +name = "ndk" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" +dependencies = [ + "bitflags 2.13.1", + "jni-sys 0.3.1", + "log", + "ndk-sys", + "num_enum", + "raw-window-handle", + "thiserror 1.0.69", +] + +[[package]] +name = "ndk-sys" +version = "0.6.0+11769913" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" +dependencies = [ + "jni-sys 0.3.1", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "num-conv" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_enum" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" +dependencies = [ + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "objc2" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" +dependencies = [ + "objc2-encode", + "objc2-exception-helper", +] + +[[package]] +name = "objc2-app-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" +dependencies = [ + "bitflags 2.13.1", + "block2", + "objc2", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "objc2-cloud-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c" +dependencies = [ + "bitflags 2.13.1", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-data" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" +dependencies = [ + "bitflags 2.13.1", + "dispatch2", + "objc2", +] + +[[package]] +name = "objc2-core-graphics" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" +dependencies = [ + "bitflags 2.13.1", + "dispatch2", + "objc2", + "objc2-core-foundation", + "objc2-io-surface", +] + +[[package]] +name = "objc2-core-image" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-location" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca347214e24bc973fc025fd0d36ebb179ff30536ed1f80252706db19ee452009" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-text" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d" +dependencies = [ + "bitflags 2.13.1", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", +] + +[[package]] +name = "objc2-encode" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" + +[[package]] +name = "objc2-exception-helper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7a1c5fbb72d7735b076bb47b578523aedc40f3c439bea6dfd595c089d79d98a" +dependencies = [ + "cc", +] + +[[package]] +name = "objc2-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" +dependencies = [ + "bitflags 2.13.1", + "block2", + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-io-surface" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" +dependencies = [ + "bitflags 2.13.1", + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" +dependencies = [ + "bitflags 2.13.1", + "objc2", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "objc2-ui-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" +dependencies = [ + "bitflags 2.13.1", + "block2", + "objc2", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-core-image", + "objc2-core-location", + "objc2-core-text", + "objc2-foundation", + "objc2-quartz-core", + "objc2-user-notifications", +] + +[[package]] +name = "objc2-user-notifications" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9df9128cbbfef73cda168416ccf7f837b62737d748333bfe9ab71c245d76613e" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-web-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2e5aaab980c433cf470df9d7af96a7b46a9d892d521a2cbbb2f8a4c16751e7f" +dependencies = [ + "bitflags 2.13.1", + "block2", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "open" +version = "5.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c603ab8300cf18bc3b14146b19fe3dfcc4843ae5a400cd0e7a30b95aa366634" +dependencies = [ + "dunce", + "is-wsl", + "libc", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "ordered-stream" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" +dependencies = [ + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "os_pipe" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "pango" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" +dependencies = [ + "gio", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "parking" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" + +[[package]] +name = "parking_lot" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-link 0.2.1", +] + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "phf" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" +dependencies = [ + "phf_macros", + "phf_shared", + "serde", +] + +[[package]] +name = "phf_codegen" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1" +dependencies = [ + "phf_generator", + "phf_shared", +] + +[[package]] +name = "phf_generator" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" +dependencies = [ + "fastrand", + "phf_shared", +] + +[[package]] +name = "phf_macros" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "phf_shared" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "piper" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c835479a4443ded371d6c535cbfd8d31ad92c5d23ae9770a61bc155e4992a3c1" +dependencies = [ + "atomic-waker", + "fastrand", + "futures-io", +] + +[[package]] +name = "pkg-config" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" + +[[package]] +name = "plist" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2896bade328c13f7042a297ea5ac5b0951f6cf989dea5f32c2fd98da398195cb" +dependencies = [ + "base64 0.23.1", + "indexmap 2.14.2", + "quick-xml", + "serde", + "time", +] + +[[package]] +name = "png" +version = "0.17.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide 0.8.9", +] + +[[package]] +name = "png" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" +dependencies = [ + "bitflags 2.13.1", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide 0.8.9", +] + +[[package]] +name = "polling" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi", + "pin-project-lite", + "rustix", + "windows-sys 0.61.2", +] + +[[package]] +name = "portable-atomic" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85" + +[[package]] +name = "portable-atomic-util" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10ab3eb7f3becc3a1cbc4f2c6f20267996cfc1a6467a873763411b136a122715" +dependencies = [ + "portable-atomic", +] + +[[package]] +name = "potential_utf" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d83eb9bc6d8e5cf568e7a1101d60ee05e81ed50ea106026f3d18deeb046d7661" +dependencies = [ + "zerovec", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" +dependencies = [ + "toml_datetime 0.6.3", + "toml_edit 0.20.2", +] + +[[package]] +name = "proc-macro-crate" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit 0.25.13+spec-1.1.0", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quick-xml" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41b1177fdf999d2321d3fb46ff47159d9c1fb9ad66a4879f8c50a0b504615e9b" +dependencies = [ + "memchr", +] + +[[package]] +name = "quinn" +version = "0.11.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c1a41e437b6bbd489372cd4971de128e85c855f56c57f283d20ff016cf7c0a8" +dependencies = [ + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2", + "thiserror 2.0.20", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-proto" +version = "0.11.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04759210543be93709136e28212294a659ef5001836ff4eab4d663e4529bba83" +dependencies = [ + "bytes", + "getrandom 0.4.3", + "lru-slab", + "rand", + "rand_pcg", + "ring", + "rustc-hash", + "rustls", + "rustls-pki-types", + "slab", + "thiserror 2.0.20", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35a133f956daabe89a61a685c2649f13d82d5aa4bd5d12d1277e1072a21c0694" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.61.2", +] + +[[package]] +name = "quote" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + +[[package]] +name = "rand" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80" +dependencies = [ + "chacha20", + "getrandom 0.4.3", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + +[[package]] +name = "rand_pcg" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "caa0f4137e1c0a72f4c651489402276c8e8e1cf081f3b0ba156d2cbeef09e86a" +dependencies = [ + "rand_core", +] + +[[package]] +name = "raw-window-handle" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" + +[[package]] +name = "redox_syscall" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags 2.13.1", +] + +[[package]] +name = "redox_users" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" +dependencies = [ + "getrandom 0.2.17", + "libredox", + "thiserror 2.0.20", +] + +[[package]] +name = "ref-cast" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e440fb4e4b4147295338efb76001ab9e4efc0e5839df2c47fc5ac2381d365c3" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92ecd8964f8453721699a1ed72037b0db49ce2f5a5138486ee89bed6f67cdf3a" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "regex" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + +[[package]] +name = "reqwest" +version = "0.12.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-util", + "js-sys", + "log", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tokio-rustls", + "tokio-util", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams 0.4.2", + "web-sys", + "webpki-roots", +] + +[[package]] +name = "reqwest" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "js-sys", + "log", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "sync_wrapper", + "tokio", + "tokio-util", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams 0.5.0", + "web-sys", +] + +[[package]] +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.17", + "libc", + "untrusted", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustc-hash" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +dependencies = [ + "bitflags 2.13.1", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustls" +version = "0.23.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6725596c3f2c3a0aef021139e145d4eafe314a6623e4680ca83852b2c67ab2ba" +dependencies = [ + "once_cell", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pki-types" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f4925028c7eb5d1fcdaf196971378ed9d2c1c4efc7dc5d011256f76c99c0a96" +dependencies = [ + "web-time", + "zeroize", +] + +[[package]] +name = "rustls-webpki" +version = "0.103.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3c3cf1d8b1e7d4927e2d154c3fcb02979afb9939629c62cd9048d4f07b60ac2" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" + +[[package]] +name = "ryu" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schemars" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +dependencies = [ + "dyn-clone", + "indexmap 1.9.3", + "schemars_derive", + "serde", + "serde_json", + "url", + "uuid", +] + +[[package]] +name = "schemars" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "687274d293b6cdc6e73e0fee520bf2049650090d7164f87672d212a3c530cf4a" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.119", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "selectors" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5d9c0c92a92d33f08817311cf3f2c29a3538a8240e94a6a3c622ce652d7e00c" +dependencies = [ + "bitflags 2.13.1", + "cssparser", + "derive_more", + "log", + "new_debug_unreachable", + "phf", + "phf_codegen", + "precomputed-hash", + "rustc-hash", + "servo_arc", + "smallvec", +] + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" +dependencies = [ + "serde", + "serde_core", +] + +[[package]] +name = "serde" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-untagged" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" +dependencies = [ + "erased-serde", + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "serde_core" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "serde_json" +version = "1.0.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_repr" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d3b1629de253c70a0508c3899572da79ca359fdab27c7920ff00406df418906" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_spanned" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" +dependencies = [ + "serde_core", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "935177bb8c0cd8ca1a4e6d1a2ac8988bea69cab4f9d3a31311e012ad27868ea4" +dependencies = [ + "base64 0.23.1", + "bs58", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.14.2", + "jiff", + "schemars 0.9.0", + "schemars 1.2.2", + "serde_core", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d607aa01a3cb0ad757d6fd216136910db3c97b102fe686585689615a02dbcdc" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "serialize-to-javascript" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04f3666a07a197cdb77cdf306c32be9b7f598d7060d50cfd4d5aa04bfd92f6c5" +dependencies = [ + "serde", + "serde_json", + "serialize-to-javascript-impl", +] + +[[package]] +name = "serialize-to-javascript-impl" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "772ee033c0916d670af7860b6e1ef7d658a4629a6d0b4c8c3e67f09b3765b75d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "servo_arc" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "170fb83ab34de17dc69aa7c67482b22218ddb85da56546f9bd6b929e32a05930" +dependencies = [ + "stable_deref_trait", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "digest", +] + +[[package]] +name = "shared_child" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "607549934f6cc26b89cfecfdc46fa90f1e5d1536a68349b0c3a4f9d1c0d37959" +dependencies = [ + "libc", + "sigchld", + "windows-sys 0.61.2", +] + +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "sigchld" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24f2b37f04360cd465089b87a9c3869c08220a2f3458463f0adf8badf5e77f2c" +dependencies = [ + "libc", + "os_pipe", + "signal-hook", +] + +[[package]] +name = "signal-hook" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a0c28ca5908dbdbcd52e6fdaa00358ab88637f8ab33e1f188dd510eb44b53d" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" +dependencies = [ + "errno", + "libc", +] + +[[package]] +name = "simd-adler32" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "siphasher" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9be42f50aa861c555654aa3a37f52f4b1074bacf4e48fe0ef7fa584e80f1f0f" + +[[package]] +name = "socket2" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "softbuffer" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac18da81ebbf05109ab275b157c22a653bb3c12cf884450179942f81bcbf6c3" +dependencies = [ + "bytemuck", + "js-sys", + "ndk", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation", + "objc2-quartz-core", + "raw-window-handle", + "redox_syscall", + "tracing", + "wasm-bindgen", + "web-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "soup3" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" +dependencies = [ + "futures-channel", + "gio", + "glib", + "libc", + "soup3-sys", +] + +[[package]] +name = "soup3-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" + +[[package]] +name = "string_cache" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901" +dependencies = [ + "new_debug_unreachable", + "parking_lot", + "phf_shared", + "precomputed-hash", +] + +[[package]] +name = "string_cache_codegen" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", +] + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "swift-rs" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e45c444e496845d3f2a351146bff59aae4975b2280238df1dfaa0c7d1846f38e" +dependencies = [ + "base64 0.21.7", + "serde", + "serde_json", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12df2e0110f65b775f769bb17ef989067a1d931b2eb822bd4346631eeada89f9" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "system-deps" +version = "6.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" +dependencies = [ + "cfg-expr", + "heck 0.5.0", + "pkg-config", + "toml 0.8.2", + "version-compare", +] + +[[package]] +name = "tao" +version = "0.35.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1c93047acf68669466a34690ac58cca7010bd1b201e1ec86f1fd0a75d3dd4a9" +dependencies = [ + "bitflags 2.13.1", + "block2", + "core-foundation", + "core-graphics", + "crossbeam-channel", + "dbus", + "dispatch2", + "dlopen2", + "dpi", + "gdkwayland-sys", + "gdkx11-sys", + "gtk", + "jni", + "libc", + "log", + "ndk", + "ndk-sys", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", + "once_cell", + "parking_lot", + "percent-encoding", + "raw-window-handle", + "tao-macros", + "unicode-segmentation", + "url", + "windows", + "windows-core 0.61.2", + "windows-version", + "x11-dl", +] + +[[package]] +name = "tao-macros" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f7eeb6d99155545da6150a1795945f16ac9c178deb2a5f2e74d776107bd5849" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "target-features" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1bbb9f3c5c463a01705937a24fdabc5047929ac764b2d5b9cf681c1f5041ed5" + +[[package]] +name = "target-lexicon" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + +[[package]] +name = "tauri" +version = "2.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "667b20e2726d572dea2de7370da16e188eb06008faf9a92fab7cdc46791190b5" +dependencies = [ + "anyhow", + "bytes", + "cookie", + "dirs", + "dunce", + "embed_plist", + "getrandom 0.3.4", + "glob", + "gtk", + "heck 0.5.0", + "http", + "jni", + "libc", + "log", + "mime", + "muda", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", + "objc2-web-kit", + "percent-encoding", + "plist", + "raw-window-handle", + "reqwest 0.13.4", + "serde", + "serde_json", + "serde_repr", + "serialize-to-javascript", + "swift-rs", + "tauri-build", + "tauri-macros", + "tauri-runtime", + "tauri-runtime-wry", + "tauri-utils", + "thiserror 2.0.20", + "tokio", + "tray-icon", + "url", + "webkit2gtk", + "webview2-com", + "window-vibrancy", + "windows", +] + +[[package]] +name = "tauri-build" +version = "2.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc9ce40b16101cb6ea63d3e221567affd1c3a9205f95d7bc574941a10636b632" +dependencies = [ + "anyhow", + "cargo_toml", + "dirs", + "glob", + "heck 0.5.0", + "json-patch", + "schemars 0.8.22", + "semver", + "serde", + "serde_json", + "tauri-utils", + "tauri-winres", + "walkdir", +] + +[[package]] +name = "tauri-codegen" +version = "2.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08279169ff42f8fc45a1dbc9dcae888893ba95288142e5880c59b93a26d2cfc5" +dependencies = [ + "base64 0.22.1", + "brotli", + "ico", + "json-patch", + "plist", + "png 0.17.16", + "proc-macro2", + "quote", + "semver", + "serde", + "serde_json", + "sha2", + "syn 2.0.119", + "tauri-utils", + "thiserror 2.0.20", + "time", + "url", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-macros" +version = "2.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8b394794f399a421811d06966343e7933fcae92d59f5180b9388d1174497a45" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", + "tauri-codegen", + "tauri-utils", +] + +[[package]] +name = "tauri-plugin" +version = "2.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74be5dd4bed9afbd145e5716b5fa2ec28cbc29c34ffa61c258c9273d896c8020" +dependencies = [ + "anyhow", + "glob", + "plist", + "schemars 0.8.22", + "serde", + "serde_json", + "tauri-utils", + "walkdir", +] + +[[package]] +name = "tauri-plugin-opener" +version = "2.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60d60366174b745b4ef5824b8bbc1c457fd08f0ce101ff643c0a49181a9f4e91" +dependencies = [ + "dunce", + "glob", + "objc2-app-kit", + "objc2-foundation", + "open", + "schemars 0.8.22", + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "thiserror 2.0.20", + "url", + "windows", + "zbus", +] + +[[package]] +name = "tauri-plugin-process" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d55511a7bf6cd70c8767b02c97bf8134fa434daf3926cfc1be0a0f94132d165a" +dependencies = [ + "tauri", + "tauri-plugin", +] + +[[package]] +name = "tauri-plugin-shell" +version = "2.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8548af174c5516e4f71f142acea4d02e00316296ea9aafa58798851481003e3c" +dependencies = [ + "encoding_rs", + "log", + "open", + "os_pipe", + "regex", + "schemars 0.8.22", + "serde", + "serde_json", + "shared_child", + "tauri", + "tauri-plugin", + "thiserror 2.0.20", + "tokio", +] + +[[package]] +name = "tauri-runtime" +version = "2.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0b4bc95aed361b0019067d189a1174a603d460d0f6c72606512d59fc9c12ec8" +dependencies = [ + "cookie", + "dpi", + "gtk", + "http", + "jni", + "objc2", + "objc2-ui-kit", + "objc2-web-kit", + "raw-window-handle", + "serde", + "serde_json", + "tauri-utils", + "thiserror 2.0.20", + "url", + "webkit2gtk", + "webview2-com", + "windows", +] + +[[package]] +name = "tauri-runtime-wry" +version = "2.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e6fac707727b7a2f48e4ded90976324267371073edbb415ffb73bb0458d203f" +dependencies = [ + "gtk", + "http", + "jni", + "log", + "objc2", + "objc2-app-kit", + "once_cell", + "percent-encoding", + "raw-window-handle", + "softbuffer", + "tao", + "tauri-runtime", + "tauri-utils", + "url", + "webkit2gtk", + "webview2-com", + "windows", + "wry", +] + +[[package]] +name = "tauri-utils" +version = "2.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e176a18e67764923c4f1ce66f25ae4abe5f688384d5eb1a0fa6c77f3d90f887" +dependencies = [ + "anyhow", + "brotli", + "cargo_metadata", + "ctor", + "dom_query", + "dunce", + "glob", + "http", + "infer", + "json-patch", + "log", + "memchr", + "phf", + "plist", + "proc-macro2", + "quote", + "regex", + "schemars 0.8.22", + "semver", + "serde", + "serde-untagged", + "serde_json", + "serde_with", + "swift-rs", + "thiserror 2.0.20", + "toml 1.1.5+spec-1.1.0", + "url", + "urlpattern", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-winres" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc65d45c68858bfe420dd29e834b5d15dbecf8a07a8a16cf4d532c7b1f69d4b6" +dependencies = [ + "dunce", + "embed-resource", + "toml 1.1.5+spec-1.1.0", +] + +[[package]] +name = "tempfile" +version = "3.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" +dependencies = [ + "fastrand", + "getrandom 0.4.3", + "once_cell", + "rustix", + "windows-sys 0.61.2", +] + +[[package]] +name = "tendril" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fed54709c5b3a53d09bb1c113ea4f5ceafd1e772ddcb0030a82e1d56c087b08" +dependencies = [ + "new_debug_unreachable", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" +dependencies = [ + "thiserror-impl 2.0.20", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "time" +version = "0.3.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb87b95ec50ddfa440816d227a17b2ccbdda963a316a727fda0fc4334f7d134" +dependencies = [ + "deranged", + "num-conv", + "powerfmt", + "serde_core", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109" + +[[package]] +name = "time-macros" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e689342a48d2ea927c87ea50cabf8594854bf940e9310208848d680d668ed85" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tinystr" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1e27c91459209c2986af3dcf603a5a74a4368754ce37414f59acc971167f643" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cf0ded5c4e56918d8f8a339e1bb67d038d3bc6d144ac407904015ba2e4cde9b" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "202caea871b69668250d242070849eb495be178ed697a3e98aebce5bc81a0bed" +dependencies = [ + "bytes", + "libc", + "mio", + "pin-project-lite", + "socket2", + "windows-sys 0.61.2", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c85f2c3ef0b1cd58b36682f4b17aaa995f0e5db534d85692b4903abce21f67" +dependencies = [ + "rustls", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "494815d09bf52b5548659851081238f0ca39ff638363907596da739561c62c52" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +dependencies = [ + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", + "toml_edit 0.20.2", +] + +[[package]] +name = "toml" +version = "0.9.12+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" +dependencies = [ + "indexmap 2.14.2", + "serde_core", + "serde_spanned 1.1.1", + "toml_datetime 0.7.5+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 0.7.15", +] + +[[package]] +name = "toml" +version = "1.1.5+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12c0ba9680044b4ce98d391a62094047eada0d64860b80166c39f4a6b5640785" +dependencies = [ + "indexmap 2.14.2", + "serde_core", + "serde_spanned 1.1.1", + "toml_datetime 1.1.1+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 1.0.4", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_datetime" +version = "0.7.5+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_datetime" +version = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.14.2", + "toml_datetime 0.6.3", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +dependencies = [ + "indexmap 2.14.2", + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.25.13+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6975367e4d2ef766d86af01ffad14b622fecc8d4357a998fbc4deb6e9bacaf9b" +dependencies = [ + "indexmap 2.14.2", + "toml_datetime 1.1.1+spec-1.1.0", + "toml_parser", + "winnow 1.0.4", +] + +[[package]] +name = "toml_parser" +version = "1.1.3+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" +dependencies = [ + "winnow 1.0.4", +] + +[[package]] +name = "toml_writer" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d56353a2a665ad0f41a421187180aab746c8c325620617ad883a99a1cbe66d2" + +[[package]] +name = "tower" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-http" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" +dependencies = [ + "bitflags 2.13.1", + "bytes", + "futures-util", + "http", + "http-body", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", + "url", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" +dependencies = [ + "once_cell", +] + +[[package]] +name = "tray-icon" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "045979e3f037cd18ad1cb2a419dfda133c5c29c9f3453370079f2255d46c257e" +dependencies = [ + "crossbeam-channel", + "dirs", + "libappindicator", + "muda", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation", + "once_cell", + "png 0.18.1", + "serde", + "thiserror 2.0.20", + "windows-sys 0.61.2", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + +[[package]] +name = "typenum" +version = "1.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" + +[[package]] +name = "uds_windows" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f6fb2847f6742cd76af783a2a2c49e9375d0a111c7bef6f71cd9e738c72d6e" +dependencies = [ + "memoffset", + "tempfile", + "windows-sys 0.61.2", +] + +[[package]] +name = "unic-char-property" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" +dependencies = [ + "unic-char-range", +] + +[[package]] +name = "unic-char-range" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" + +[[package]] +name = "unic-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" + +[[package]] +name = "unic-ucd-ident" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" +dependencies = [ + "unic-char-property", + "unic-char-range", + "unic-ucd-version", +] + +[[package]] +name = "unic-ucd-version" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" +dependencies = [ + "unic-common", +] + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-segmentation" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" + +[[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.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", + "serde_derive", +] + +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + +[[package]] +name = "urlpattern" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70acd30e3aa1450bc2eece896ce2ad0d178e9c079493819301573dae3c37ba6d" +dependencies = [ + "regex", + "serde", + "unic-ucd-ident", + "url", +] + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "uuid" +version = "1.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5772d71c9be8a8a6ac2117d949c5b224c1b72241bb611d9a3012edcf8af7812" +dependencies = [ + "getrandom 0.4.3", + "js-sys", + "serde_core", + "wasm-bindgen", +] + +[[package]] +name = "version-compare" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "vswhom" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" +dependencies = [ + "libc", + "vswhom-sys", +] + +[[package]] +name = "vswhom-sys" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb067e4cbd1ff067d1df46c9194b5de0e98efd2810bbc95c5d5e5f25a3231150" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "vyla-go" +version = "1.0.0" +dependencies = [ + "futures-util", + "reqwest 0.12.28", + "serde", + "serde_json", + "tauri", + "tauri-build", + "tauri-plugin-opener", + "tauri-plugin-process", + "tauri-plugin-shell", + "urlencoding", + "zip", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasip2" +version = "1.0.4+wasi-0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aecb87a33d3b0c5e3b7aa46336eaf486cffafbd281b195e4c8b80d50df2351bf" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ef4c5d3d2cdf5c54f4231181768f5510842e350db025faf1f7163b1030ed928" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a690d511e3c1a8b3a55e33511e3c2c00c78415cd23650f32b808627f5696b9ed" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "411e4887f0071ef2d2164a9d5fdf2d20efbef78fccd3a78b0c10a1dc5295e48a" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 3.0.5", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81941cd78d0c92026c33e5e01312845a4cb1e9af3407f9134b100dd03144103e" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-streams" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wasm-streams" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fbddc4a036f00ec4f18c83445bd3115cb306a91da554919a099d9222fe4a7f8" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web_atoms" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba8b815c1b593dc0baf78dd0f4fc8fdb2de53198fb1163738093e9a311c33fb3" +dependencies = [ + "phf", + "phf_codegen", + "string_cache", + "string_cache_codegen", +] + +[[package]] +name = "webkit2gtk" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1027150013530fb2eaf806408df88461ae4815a45c541c8975e61d6f2fc4793" +dependencies = [ + "bitflags 1.3.2", + "cairo-rs", + "gdk", + "gdk-sys", + "gio", + "gio-sys", + "glib", + "glib-sys", + "gobject-sys", + "gtk", + "gtk-sys", + "javascriptcore-rs", + "libc", + "once_cell", + "soup3", + "webkit2gtk-sys", +] + +[[package]] +name = "webkit2gtk-sys" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "916a5f65c2ef0dfe12fff695960a2ec3d4565359fdbb2e9943c974e06c734ea5" +dependencies = [ + "bitflags 1.3.2", + "cairo-sys-rs", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk-sys", + "javascriptcore-rs-sys", + "libc", + "pkg-config", + "soup3-sys", + "system-deps", +] + +[[package]] +name = "webpki-roots" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dcd9d09a39985f5344844e66b0c530a33843579125f23e21e9f0f220850f22a" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "webview2-com" +version = "0.38.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7130243a7a5b33c54a444e54842e6a9e133de08b5ad7b5861cd8ed9a6a5bc96a" +dependencies = [ + "webview2-com-macros", + "webview2-com-sys", + "windows", + "windows-core 0.61.2", + "windows-implement", + "windows-interface", +] + +[[package]] +name = "webview2-com-macros" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a921c1b6914c367b2b823cd4cde6f96beec77d30a939c8199bb377cf9b9b54" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "webview2-com-sys" +version = "0.38.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "381336cfffd772377d291702245447a5251a2ffa5bad679c99e61bc48bacbf9c" +dependencies = [ + "thiserror 2.0.20", + "windows", + "windows-core 0.61.2", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "window-vibrancy" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c" +dependencies = [ + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "raw-window-handle", + "windows-sys 0.59.0", + "windows-version", +] + +[[package]] +name = "windows" +version = "0.61.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" +dependencies = [ + "windows-collections", + "windows-core 0.61.2", + "windows-future", + "windows-link 0.1.3", + "windows-numerics", +] + +[[package]] +name = "windows-collections" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" +dependencies = [ + "windows-core 0.61.2", +] + +[[package]] +name = "windows-core" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", +] + +[[package]] +name = "windows-future" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", + "windows-threading", +] + +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "windows-link" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-numerics" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-strings" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +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-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "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.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-threading" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-version" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4060a1da109b9d0326b7262c8e12c84df67cc0dbc9e33cf49e01ccc2eb63631" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" + +[[package]] +name = "winnow" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.55.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97" +dependencies = [ + "cfg-if", + "windows-sys 0.59.0", +] + +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + +[[package]] +name = "writeable" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ad82d2a33cdc9674dc7465672f271e096168fcdbe0f799d9e6db8c5892679dc" + +[[package]] +name = "wry" +version = "0.55.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "186f9871daa55fd9c016578b810d149de58367113db7fb72b462d2323ce19514" +dependencies = [ + "base64 0.22.1", + "block2", + "cookie", + "crossbeam-channel", + "dirs", + "dom_query", + "dpi", + "dunce", + "gdkx11", + "gtk", + "http", + "javascriptcore-rs", + "jni", + "libc", + "ndk", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "objc2-ui-kit", + "objc2-web-kit", + "once_cell", + "percent-encoding", + "raw-window-handle", + "sha2", + "soup3", + "tao-macros", + "thiserror 2.0.20", + "url", + "webkit2gtk", + "webkit2gtk-sys", + "webview2-com", + "windows", + "windows-core 0.61.2", + "windows-version", + "x11-dl", +] + +[[package]] +name = "x11" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + +[[package]] +name = "yoke" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5" +dependencies = [ + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", + "synstructure", +] + +[[package]] +name = "zbus" +version = "5.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5db4be7c075cb421e4b7ee645541604239bd243ba7c357511f4ff3a74b555907" +dependencies = [ + "async-broadcast", + "async-executor", + "async-io", + "async-lock", + "async-process", + "async-recursion", + "async-task", + "async-trait", + "blocking", + "enumflags2", + "event-listener", + "futures-core", + "futures-lite", + "hex", + "libc", + "ordered-stream", + "rustix", + "serde", + "serde_repr", + "tracing", + "uds_windows", + "uuid", + "windows-sys 0.61.2", + "winnow 1.0.4", + "zbus_macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zbus_macros" +version = "5.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2990635d09ade6df1868f72f8cac69a876a90981e8bd3c40b1be413f8dc88f40" +dependencies = [ + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 3.0.5", + "zbus_names", + "zvariant", + "zvariant_utils", +] + +[[package]] +name = "zbus_names" +version = "4.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8bf88b4a3ff53e883001e0e0115b297a9d53c31b9c1edd2bfdd853e3428624e" +dependencies = [ + "serde", + "winnow 1.0.4", + "zvariant", +] + +[[package]] +name = "zcheapstr" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1afec51604565183aeb5c54c20aeab286120d4e4460f7f76e3e8bb8c0d99473" +dependencies = [ + "serde", +] + +[[package]] +name = "zerofrom" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", + "synstructure", +] + +[[package]] +name = "zeroize" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" + +[[package]] +name = "zerotrie" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ea269c3bd32f0a32c321907a2ae912ba6f4649bb0fc764a15627e99a7095a3f" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0464e17806c1d976d5cba29399c7f08e516e279e2ba493f63123b5fca67dd8" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34df6fc39dbd26ddc9c10e6a2984476e13acce22e64e4487636ef494369225da" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", +] + +[[package]] +name = "zip" +version = "2.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabe6324e908f85a1c52063ce7aa26b68dcb7eb6dbc83a2d148403c9bc3eba50" +dependencies = [ + "arbitrary", + "crc32fast", + "crossbeam-utils", + "displaydoc", + "flate2", + "indexmap 2.14.2", + "memchr", + "thiserror 2.0.20", + "zopfli", +] + +[[package]] +name = "zlib-rs" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34b31d188d9d685a4f9c7b46d6e36631b07058d2cfe190267adce54dc230bf12" + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" + +[[package]] +name = "zopfli" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" +dependencies = [ + "bumpalo", + "crc32fast", + "log", + "simd-adler32", +] + +[[package]] +name = "zvariant" +version = "5.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1d34c27cc6cdd1f458427519dd6b8612f7b7e3f7b9a0b2355d041dda9869147" +dependencies = [ + "endi", + "enumflags2", + "serde", + "winnow 1.0.4", + "zcheapstr", + "zvariant_derive", + "zvariant_utils", +] + +[[package]] +name = "zvariant_derive" +version = "5.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "864155e69b4352db0c7f374917bf45d1e0c8d17659c8b3dbf9795f3673f8c497" +dependencies = [ + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 3.0.5", + "zvariant_utils", +] + +[[package]] +name = "zvariant_utils" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bad0294361a320b694a328460dc73add56c306150f5cb6bfafc44446120008a3" +dependencies = [ + "proc-macro2", + "quote", + "serde", + "syn 3.0.5", + "winnow 1.0.4", +] diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml new file mode 100644 index 0000000..59d1a54 --- /dev/null +++ b/src-tauri/Cargo.toml @@ -0,0 +1,25 @@ +[package] +name = "vyla-go" +version = "1.0.0" +description = "Vyla Go Native Shell" +authors = ["Vyla Entertainment"] +edition = "2021" + +[lib] +name = "vyla_go_lib" +crate-type = ["staticlib", "cdylib", "rlib"] + +[build-dependencies] +tauri-build = { version = "2.1", features = [] } + +[dependencies] +tauri = { version = "2.1", features = [] } +tauri-plugin-opener = "2" +tauri-plugin-process = "2" +tauri-plugin-shell = "2" +serde = { version = "1", features = ["derive"] } +serde_json = "1" +reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "json", "stream"] } +zip = { version = "2.2", default-features = false, features = ["deflate"] } +futures-util = "0.3" +urlencoding = "2.1" diff --git a/src-tauri/bin/node.deb b/src-tauri/bin/node.deb new file mode 100644 index 0000000..99d83c0 --- /dev/null +++ b/src-tauri/bin/node.deb @@ -0,0 +1,7 @@ + +404 Not Found + +

404 Not Found

+
nginx
+ + diff --git a/src-tauri/build.rs b/src-tauri/build.rs new file mode 100644 index 0000000..5ebd2c3 --- /dev/null +++ b/src-tauri/build.rs @@ -0,0 +1,34 @@ +fn main() { + let target = std::env::var("CARGO_CFG_TARGET_OS").unwrap_or_default(); + + if target == "android" { + let manifest_dir = std::path::PathBuf::from( + std::env::var("CARGO_MANIFEST_DIR").unwrap() + ); + let target_arch = std::env::var("CARGO_CFG_TARGET_ARCH").unwrap_or_default(); + + let abi = match target_arch.as_str() { + "aarch64" => "arm64-v8a", + "x86_64" => "x86_64", + "x86" => "x86", + "arm" => "armeabi-v7a", + _ => "arm64-v8a", + }; + + let jni_libs = manifest_dir + .join("gen") + .join("android") + .join("app") + .join("src") + .join("main") + .join("jniLibs") + .join(abi); + + println!("cargo:warning=libnode search path: {}", jni_libs.display()); + println!("cargo:warning=libnode exists: {}", jni_libs.join("libnode.so").exists()); + println!("cargo:rustc-link-search=native={}", jni_libs.display()); + println!("cargo:rustc-link-lib=dylib=node"); + } + + tauri_build::build(); +} \ No newline at end of file diff --git a/src-tauri/capabilities b/src-tauri/capabilities new file mode 100644 index 0000000..3df7458 --- /dev/null +++ b/src-tauri/capabilities @@ -0,0 +1,15 @@ +{ + "$schema": "../gen/schemas/desktop-schema.json", + "identifier": "default", + "description": "Default permissions for Vyla Go", + "windows": ["main"], + "permissions": [ + "core:default", + "core:event:default", + "core:event:allow-listen", + "core:event:allow-emit", + "opener:default", + "process:default", + "shell:default" + ] +} \ No newline at end of file diff --git a/src-tauri/gen/android/.editorconfig b/src-tauri/gen/android/.editorconfig new file mode 100644 index 0000000..ebe51d3 --- /dev/null +++ b/src-tauri/gen/android/.editorconfig @@ -0,0 +1,12 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = false +insert_final_newline = false \ No newline at end of file diff --git a/src-tauri/gen/android/.gitignore b/src-tauri/gen/android/.gitignore new file mode 100644 index 0000000..1c636c3 --- /dev/null +++ b/src-tauri/gen/android/.gitignore @@ -0,0 +1,20 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +build +/captures +.externalNativeBuild +.cxx +local.properties +key.properties +keystore.properties + +/.tauri +/tauri.settings.gradle \ No newline at end of file diff --git a/src-tauri/gen/android/app/.gitignore b/src-tauri/gen/android/app/.gitignore new file mode 100644 index 0000000..6c4d56b --- /dev/null +++ b/src-tauri/gen/android/app/.gitignore @@ -0,0 +1,6 @@ +/src/main/**/generated +/src/main/jniLibs/**/*.so +/src/main/assets/tauri.conf.json +/tauri.build.gradle.kts +/proguard-tauri.pro +/tauri.properties \ No newline at end of file diff --git a/src-tauri/gen/android/app/build.gradle.kts b/src-tauri/gen/android/app/build.gradle.kts new file mode 100644 index 0000000..5965cfd --- /dev/null +++ b/src-tauri/gen/android/app/build.gradle.kts @@ -0,0 +1,79 @@ +import java.util.Properties + +plugins { + id("com.android.application") + id("org.jetbrains.kotlin.android") + id("rust") +} + +val tauriProperties = Properties().apply { + val propFile = file("tauri.properties") + if (propFile.exists()) { + propFile.inputStream().use { load(it) } + } +} + +android { + compileSdk = 36 + namespace = "com.vyla.go" + defaultConfig { + manifestPlaceholders["usesCleartextTraffic"] = "false" + applicationId = "com.vyla.go" + minSdk = 24 + targetSdk = 36 + versionCode = tauriProperties.getProperty("tauri.android.versionCode", "1").toInt() + versionName = tauriProperties.getProperty("tauri.android.versionName", "1.0") + } + signingConfigs { + create("release") { + storeFile = file("${project.rootDir}/vyla-release.jks") + storePassword = "vylapass" + keyAlias = "vyla" + keyPassword = "vylapass" + enableV1Signing = true + enableV2Signing = true + } + } + + buildTypes { + getByName("release") { + signingConfig = signingConfigs.getByName("release") + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + getByName("debug") { + signingConfig = signingConfigs.getByName("release") + } + } + kotlinOptions { + jvmTarget = "1.8" + } + buildFeatures { + buildConfig = true + } + packaging { + jniLibs { + useLegacyPackaging = true + } + } +} + +rust { + rootDirRel = "../../../" +} + +dependencies { + implementation("androidx.webkit:webkit:1.14.0") + implementation("androidx.appcompat:appcompat:1.7.1") + implementation("androidx.activity:activity-ktx:1.10.1") + implementation("com.google.android.material:material:1.12.0") + implementation("androidx.lifecycle:lifecycle-process:2.10.0") + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test.ext:junit:1.1.4") + androidTestImplementation("androidx.test.espresso:espresso-core:3.5.0") +} + +apply(from = "tauri.build.gradle.kts") \ No newline at end of file diff --git a/src-tauri/gen/android/app/proguard-rules.pro b/src-tauri/gen/android/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/src-tauri/gen/android/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/AndroidManifest.xml b/src-tauri/gen/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..9a1a214 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/java/com/vyla/go/MainActivity.kt b/src-tauri/gen/android/app/src/main/java/com/vyla/go/MainActivity.kt new file mode 100644 index 0000000..47514c2 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/java/com/vyla/go/MainActivity.kt @@ -0,0 +1,9 @@ +package com.vyla.go + +import android.os.Bundle + +class MainActivity : TauriActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + } +} \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml b/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml b/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..4fc2444 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/src-tauri/gen/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..2ffbf24 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..e95f0e717eb5d8aa119d71e501429d3d4102b24a GIT binary patch literal 2234 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 Y59sdT&Ok?;SpWb407*qoM6N<$f}440NdN!< literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..a335908f56f4c4de3306d3d961128296e7d07b34 GIT binary patch literal 2011 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 JPDHLkV1iJz7b*Y% literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..293754ce8671e446fdbed56b9687c9e4b6548788 GIT binary patch literal 4838 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 M07*qoM6N<$f|o=SI{*Lx literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..db52117834257b41cbceabc0a6b58027e6697e49 GIT binary patch literal 1928 zcmV;32Y2|1P)D)@?T#R#z^n)pCL zzew8jOKV!?p<+yHsMbe(Bs37Tmc6NR@ zEEl5XE%2@p)~J4v5X|ig=T6Q@K92zgMghDUjB_I<=mkAd6JWNn0@h<9Ou?5)A47rm z5CgLl`kym)AuHQ3RVKx$oDfr$9-?6(dI2e^2;@O9~1K z6eNK^e*9Qgu3RarR;^Ny9*;*JJa`}*Hf)f)ckc=^3*D3RNNsJc%$++oKr)ipVLT78 zeSvwuAF`Y_U1|o`{rmT2+_-U)o0}_@m6d^K&CShHSXiip*e5?fU#?uaqShxVw$-aw z>+>5oZph4;GsVhu;iX~_+c&r(5^zVdJl$sb^5v41l_gbGRWfGG7}>dVr&@E;q)7_y z;lqcrY}qmePoi*5CBW6#v15m57|NX?b{bv0fMfmsIZfQeiHb)b?c~W}9i#rpc*Or)2Ts#TvMF zOfYb5_px1wsg;ddP*hZ;>6Mm`!hM2U(i{FB?dbun#?=Do2kVRrg@a$;lZEFa$R*wnd8;*+rtp4@poX zsM0h>l=kZl7sP&(KxWV$KYm;;Uc4w1Cr;GWc=YIz=JY7jKV%^t%v z0TLq;L1Rb)JnmzyfzOC>!1TxLQCwWC%1QzR&-$JqZSeK=^)h3|4E>(XF8KJ#6=5-F zm`a%_xj*hIDJf|hQgwOU2bYMrAE0Y64N`dz9XcfY_wNs6CITXOrdO&p{hoV-)2B}d ze$R56)hM5lpg}q9191m z*j>MVU8YQ#qHaUWvs$$`G^P~*T3y(>2c6oWp6?H5OUaDFi@+QXr!cD6kJcXMma+|k z`Dsf_OGm;t^>Nt9{{s?qCmEOuG3LpLr87GI#G?${dQHLp`w9g* z#-%e)6fM@i5js)~={mr`v!NciU+(zv<6Dh4FR-AV5~D<>)Ao-7cpfdfh~e3@XQiRQ zM=Yl)YDjNR4CEhS5(Lj^CZjb{p$Z*NwSrQ3#d~ z>v$dP3t@#Co)W_!-KK#ZV`JR$c-_T0kur;K-n`izw>LBhY#%a$JJGM0VEHl_t}-F- z$Ux#}Sn1UPt4f!x2T*6e zX06P~$oQeXz5U6Ez39f|U*aPV*Jrp-i}FP`efvDFdiZ)1%7ec~^-VoMNop literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..b0e84beb1be88fb60afdcd57d1156608c3b7f36d GIT binary patch literal 4985 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 DwhD0w literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..dd6eb1609896103185ebf859909d96c81bc66b5a GIT binary patch literal 10540 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 bK#~6sS3OEmu#8yL00000NkvXXu0mjfUuX2E literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..b680ec5981868dd51bafc1b25eb4877df66fba07 GIT binary patch literal 6438 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
+q(#{p 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 z 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 literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..5da6d0fc377f8f06738a0b71b7bb20bc651f19d8 GIT binary patch literal 8657 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ⅇ=P>_Uk8Q z?=4i6MO^ZoZe$Dr=L`EWjIFJ$5aEq}B72;o72n%3U%5aI#y>f4DS~%2z3c+hZ}B9K z(BNl9OTmyHc0M_HLylfN#s2ziB0e@v=%vFLOy4F$ z+zQ2IK@r(qxX zj=S`@&zXjwdFQ^CMBOfViV^)>4PE#HL5hot{BqA7p|CXh6`2F)ZT4`J=Fv{4lyC6C zb?-sL<{($J|AD`I5|(2a@34V`@;MP%x0V0yG`+rJAQ_Qp{DwSoXLpZ2i>~^Psk1c+ zw{%Cm!Ak37|5R+5)XhX&>>(KqlQc%qg|f-Y4PD1m9^EKs#m*J0M#G(ZbvFAudwXG9cJ@4MMiPt{_F# zi2tN6ThPvw2+j~k$%GYX`~D8(>i52Mi%d)Aoc%s%>RFMOwn;$JT$Y8FIVm+T&QwW-njx19ry#WUoCi;YmS;g zzC}g=()aImCu{dddHZWmLW>Yl$YGpMbmQAONWJK5jU4Rncl@@3g{(01`n8uuPPsL; z@)pQ;>fdjer5LZ1jUC1lR-Oi?NJk!azUXilH;<*fcq@i{zB?{@C;(_ z*FuXVtkXY+2){Gzna|Y7GAVQ4n!}!Bu4L%-_H_@9yReJ(!TnOmgKam_>Zf#h{BfLU z=_h@D7caxln)n8DpvaAa>kBPFdzknO-YT3j&pb$8$5jhCx{y2Wh<@!c*8j*Yh6Q;a_6If#= zKW5JRAWg%PW)L!qGAiUy{7;mC!24KAU_ljCi(QXhov-Fd##+K zSn{94Eo3`5j;(w2b(75QESk)gKgGNr2_JJ@bB0REf(yRW$6d}?_5=!wr8aohlKZD% z2A=Ttk$WCrpbzCn!~^kLV7kSV>SA10|9KUA&gCanVjt0{J|5L-7~lJhadGlVrjKeD zMo$#~g;T1I^cz!ity3B|IJ5?|Ir3mAo68qgLqc%?sq7nUYBC_mZX0*(I_IL&VNYJd z{3vkTQ61`6Z}hvMTIOl7Pwyj6S?SWV6((M_R{i`koYfMSwF_o0D)gegq zb8z=!Ty6aCaN1;^^YkWva93>b@kpm*VME_{EFQ{iyCa#6>ZfK-g%%xdK)&*{_U>Um@?kOUj0v7r&Y#Ip!AfLc6BBxka_X8kFPVvq-R&(x;1Qg7B-jog?Et3ay zXZ#J-*j|@B6^O;X_nykM(^`?Sd-B$SsuFw5AEOz$hCx?ElWVL9>N1Og^I3WiEanddL->G1uyK88tG>7wnzSWkwmL`(Ij` z?V1U08TE@M?$!7el1c^mU9??&v0PeClGVM9Y}^osAt@Rms;cGxR4~Q#3kpCdP0hTB5&}K}~8TeN9PJA5S5rIqe2($E4 zd-N`ofJc0ZW*Gb5E*G+Bp&c91G)r=Y<`*dj?^Pt6_?BQP7dp~WCpL^?=7dIi-QBcF z5;LQj5?(*pFQ}%)-TX;D7N}+rvKO4q!Wq)G1a@*f8?y>teq%^MnH9~!vc(cL6`~aM z*qCj|R|%B|_V{uvlO?omubS2eC8koG1Hv&aPtt=T82?$l?Vem7{3GmSdWeCmW!J)* z7jbY|n7x)pa<`M~Ey*UCl)(@*`1K; Z+B9&h8E5qIOGl{}7?m349ACi6Ps%`U9q zV0W(SkGGis5awjjmRnZBZnv)!G$?bfd#D&!V#NQ*fX4T{XEKQ@Vy`a~T_9lZ;x~~m z;w;0{a+$Wgzq_{9ky+*Nw*UyP-%slL>&kvG9;_i@N4+oV(^Baidr6d+Qevq#$w4+A z%#-_#0@ZGsnXlPaf?o-SX{q)2l=M#uMl^*AWt)j@RCO~+F(-Y8s--IBkh17iofk^` zCxV9n#QU+N0zAmOPyca^>a$`lDC@YD6kGMdwSCI9m{JRMz2B4>&UK|Em)ff~YdmoU1ene%&PSEc}>Qg#QCpOb*gu*sem_gOG zB2hW>3yPAvtDV(#I%?=)U)T?a7QqE;oBSGzjP)!&0S){stul2S4P` zTB%$wZ)nSseF>3IV5gfhudIA`wl%()ax?Vj%}&o`hW8JS{?+0*gkfz5K8%1YIhN|h z$&x=9vpfa@hBI%ywC9?M^QzT$4N%mUkhsO^MDJL1g`DSh1V#=9$kJ~4Q5H|0;Z6NA zig-uQc)k54H~(7x+1T-+V8=;xHMV6IT-vz!kKvm%VSDXP$Zt%f#O`y6T~B4_#;6IZ zOs>tIZl8&)ny+MxO4@XEJDOWeei)-)(SG(#9Tj&ZQS{93q>U|c&txnD90O=a$wu7= zli0vmcYl2R#Ws*xN6-`4o?>tO9E4q$4G-J1fRb4w)BDpSSDSemy{dN)iz+Q}nKLO; zvzT!Cniy7v;}DdBr|M`XVKb2j63lfk$>Qccn9Te~-7j*-(5jY7(BzVe#d;NgBD4D7 ze|P8e59+(I86;@b=(Cj?`XrCB*d;F1vFIIheZE@T?0*qQGzz}=^KIRR=Ipr*(U(b{ z7!Sk}B{#}ZmQ0@UsjK2hGdppFRg`6IHl-G;G;$_Fd42J(UY)zVyS{++$el)epxF~P zmMpRwE>dOA`AQ2}Qi}fbHTHAToP!pc(U8pX2CLqvro2b!cL~8Tkgh9NoX8%8ed^U) zV`6WaDpbfBYBfVhfAWoUK+ud0#PAs%eVP&|`0AdcKgc;Gqf{#KKOrz;&y-y7=sO~X zX~MFhFq3a`%U)=ZbGqI%&yq4perNWJP(`l*T+DT^m}K6EGwwM~co)TKgqY?-f6}tj ztA4Ly{GVe+eKutVS}mOqTjRNXSBMo&R-8#2k-5(_{m-3|*u(;Hjs7Pt{3?T`Txetr zbc&kL<>))_v)Ec8KSizeTt4k2IJg78E%n>sz!-*EV4YC7*){#$;DNl3HH#vdGAj5v z-h-RxJZ+gUuW1sT?#+RLxcuVm@$Yw$R>D;_7N@vEqBP@eKDSC1E%UD+MA~E%Lr5)Q z%OzO2e1M6nYjEj=q?(vD2DQB0**04dYai~RFflzUtPzMj8v0>w*zLV1IvhCzIXMo_>jtjb{bE##NPgTeFl-T&L zJ0@F^J)5+x8Xpx#DP(`}*`bwN&$xxu7C5RXtn+ZYI{H0pUiJ;}C4J+QN+T=|PZhi$ zHLkboNXGYR_~n$#EVI=)<)B&}$*#nt`>1Vq9zMjzXkg;gh<}UNtPi=Sd2D_NK4aXUoj8;%u=*QD$nY1B zf`47sW33Yy<^w;gz5g5|+b>W}E6&iHjK+)CjRxBb%XTXx=0D#!SMtQ11=%|f+6*oH zJvNg0U~xB^`6#0N_|@t)8qdN3(`1!hlHtLe9M3>q@I2}#xT+Qy4)ucS#=Dd{*FA`d znVeGRp0eHW`IQge7hC1^sF>01RE>5&jm&gjsVX=|4~<`rl^J~E%vpr7IJqPq?lbGw zi!xE}n|0S{zctE?;zhArJ?o9H6+qF6CN9(xgQ}^iTP8;{wzi}cDC^3mRp=ve(Ym7$2IU@Yt=dK+=3|L_09|Heq1Zu~wp XZv8>5JB>bm)c};_)L)j%m + + + diff --git a/src-tauri/gen/android/app/src/main/res/values/colors.xml b/src-tauri/gen/android/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..f8c6127 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/values/colors.xml @@ -0,0 +1,10 @@ + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/res/values/ic_launcher_background.xml b/src-tauri/gen/android/app/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 0000000..ea9c223 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #fff + \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/res/values/strings.xml b/src-tauri/gen/android/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..3f7b8a4 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/values/strings.xml @@ -0,0 +1,4 @@ + + "Vyla Go" + "Vyla Go" + \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/res/values/themes.xml b/src-tauri/gen/android/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..db6e76f --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/values/themes.xml @@ -0,0 +1,6 @@ + + + + diff --git a/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml b/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml new file mode 100644 index 0000000..782d63b --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src-tauri/gen/android/app/src/main/res/xml/network_security_config.xml b/src-tauri/gen/android/app/src/main/res/xml/network_security_config.xml new file mode 100644 index 0000000..bb6ab93 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/xml/network_security_config.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/src-tauri/gen/android/build.gradle.kts b/src-tauri/gen/android/build.gradle.kts new file mode 100644 index 0000000..607240b --- /dev/null +++ b/src-tauri/gen/android/build.gradle.kts @@ -0,0 +1,22 @@ +buildscript { + repositories { + google() + mavenCentral() + } + dependencies { + classpath("com.android.tools.build:gradle:8.11.0") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.25") + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +tasks.register("clean").configure { + delete("build") +} + diff --git a/src-tauri/gen/android/buildSrc/build.gradle.kts b/src-tauri/gen/android/buildSrc/build.gradle.kts new file mode 100644 index 0000000..5c55bba --- /dev/null +++ b/src-tauri/gen/android/buildSrc/build.gradle.kts @@ -0,0 +1,23 @@ +plugins { + `kotlin-dsl` +} + +gradlePlugin { + plugins { + create("pluginsForCoolKids") { + id = "rust" + implementationClass = "RustPlugin" + } + } +} + +repositories { + google() + mavenCentral() +} + +dependencies { + compileOnly(gradleApi()) + implementation("com.android.tools.build:gradle:8.11.0") +} + diff --git a/src-tauri/gen/android/buildSrc/src/main/java/com/vyla/go/kotlin/BuildTask.kt b/src-tauri/gen/android/buildSrc/src/main/java/com/vyla/go/kotlin/BuildTask.kt new file mode 100644 index 0000000..a3de125 --- /dev/null +++ b/src-tauri/gen/android/buildSrc/src/main/java/com/vyla/go/kotlin/BuildTask.kt @@ -0,0 +1,68 @@ +import java.io.File +import org.apache.tools.ant.taskdefs.condition.Os +import org.gradle.api.DefaultTask +import org.gradle.api.GradleException +import org.gradle.api.logging.LogLevel +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.TaskAction + +open class BuildTask : DefaultTask() { + @Input + var rootDirRel: String? = null + @Input + var target: String? = null + @Input + var release: Boolean? = null + + @TaskAction + fun assemble() { + val executable = """npm"""; + try { + runTauriCli(executable) + } catch (e: Exception) { + if (Os.isFamily(Os.FAMILY_WINDOWS)) { + // Try different Windows-specific extensions + val fallbacks = listOf( + "$executable.exe", + "$executable.cmd", + "$executable.bat", + ) + + var lastException: Exception = e + for (fallback in fallbacks) { + try { + runTauriCli(fallback) + return + } catch (fallbackException: Exception) { + lastException = fallbackException + } + } + throw lastException + } else { + throw e; + } + } + } + + fun runTauriCli(executable: String) { + val rootDirRel = rootDirRel ?: throw GradleException("rootDirRel cannot be null") + val target = target ?: throw GradleException("target cannot be null") + val release = release ?: throw GradleException("release cannot be null") + val args = listOf("run", "--", "tauri", "android", "android-studio-script"); + + project.exec { + workingDir(File(project.projectDir, rootDirRel)) + executable(executable) + args(args) + if (project.logger.isEnabled(LogLevel.DEBUG)) { + args("-vv") + } else if (project.logger.isEnabled(LogLevel.INFO)) { + args("-v") + } + if (release) { + args("--release") + } + args(listOf("--target", target)) + }.assertNormalExitValue() + } +} \ No newline at end of file diff --git a/src-tauri/gen/android/buildSrc/src/main/java/com/vyla/go/kotlin/RustPlugin.kt b/src-tauri/gen/android/buildSrc/src/main/java/com/vyla/go/kotlin/RustPlugin.kt new file mode 100644 index 0000000..4aa7fca --- /dev/null +++ b/src-tauri/gen/android/buildSrc/src/main/java/com/vyla/go/kotlin/RustPlugin.kt @@ -0,0 +1,85 @@ +import com.android.build.api.dsl.ApplicationExtension +import org.gradle.api.DefaultTask +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.kotlin.dsl.configure +import org.gradle.kotlin.dsl.get + +const val TASK_GROUP = "rust" + +open class Config { + lateinit var rootDirRel: String +} + +open class RustPlugin : Plugin { + private lateinit var config: Config + + override fun apply(project: Project) = with(project) { + config = extensions.create("rust", Config::class.java) + + val defaultAbiList = listOf("arm64-v8a", "armeabi-v7a", "x86", "x86_64"); + val abiList = (findProperty("abiList") as? String)?.split(',') ?: defaultAbiList + + val defaultArchList = listOf("arm64", "arm", "x86", "x86_64"); + val archList = (findProperty("archList") as? String)?.split(',') ?: defaultArchList + + val targetsList = (findProperty("targetList") as? String)?.split(',') ?: listOf("aarch64", "armv7", "i686", "x86_64") + + extensions.configure { + @Suppress("UnstableApiUsage") + flavorDimensions.add("abi") + productFlavors { + create("universal") { + dimension = "abi" + ndk { + abiFilters += abiList + } + } + defaultArchList.forEachIndexed { index, arch -> + create(arch) { + dimension = "abi" + ndk { + abiFilters.add(defaultAbiList[index]) + } + } + } + } + } + + afterEvaluate { + for (profile in listOf("debug", "release")) { + val profileCapitalized = profile.replaceFirstChar { it.uppercase() } + val buildTask = tasks.maybeCreate( + "rustBuildUniversal$profileCapitalized", + DefaultTask::class.java + ).apply { + group = TASK_GROUP + description = "Build dynamic library in $profile mode for all targets" + } + + tasks["mergeUniversal${profileCapitalized}JniLibFolders"].dependsOn(buildTask) + + for (targetPair in targetsList.withIndex()) { + val targetName = targetPair.value + val targetArch = archList[targetPair.index] + val targetArchCapitalized = targetArch.replaceFirstChar { it.uppercase() } + val targetBuildTask = project.tasks.maybeCreate( + "rustBuild$targetArchCapitalized$profileCapitalized", + BuildTask::class.java + ).apply { + group = TASK_GROUP + description = "Build dynamic library in $profile mode for $targetArch" + rootDirRel = config.rootDirRel + target = targetName + release = profile == "release" + } + + buildTask.dependsOn(targetBuildTask) + tasks["merge$targetArchCapitalized${profileCapitalized}JniLibFolders"].dependsOn( + targetBuildTask + ) + } + } + } + } +} \ No newline at end of file diff --git a/src-tauri/gen/android/gradle.properties b/src-tauri/gen/android/gradle.properties new file mode 100644 index 0000000..2a7ec69 --- /dev/null +++ b/src-tauri/gen/android/gradle.properties @@ -0,0 +1,24 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app"s APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official +# Enables namespacing of each library's R class so that its R class includes only the +# resources declared in the library itself and none from the library's dependencies, +# thereby reducing the size of the R class for that library +android.nonTransitiveRClass=true +android.nonFinalResIds=false \ No newline at end of file diff --git a/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.jar b/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f GIT binary patch literal 59203 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

K7UpUK$>l@ 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 E2O(~oYXATM literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties b/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..c5f9a53 --- /dev/null +++ b/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Tue May 10 19:22:52 CST 2022 +distributionBase=GRADLE_USER_HOME +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip +distributionPath=wrapper/dists +zipStorePath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME diff --git a/src-tauri/gen/android/gradlew b/src-tauri/gen/android/gradlew new file mode 100644 index 0000000..4f906e0 --- /dev/null +++ b/src-tauri/gen/android/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/src-tauri/gen/android/gradlew.bat b/src-tauri/gen/android/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/src-tauri/gen/android/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/src-tauri/gen/android/settings.gradle b/src-tauri/gen/android/settings.gradle new file mode 100644 index 0000000..3939116 --- /dev/null +++ b/src-tauri/gen/android/settings.gradle @@ -0,0 +1,3 @@ +include ':app' + +apply from: 'tauri.settings.gradle' diff --git a/src-tauri/gen/schemas/acl-manifests.json b/src-tauri/gen/schemas/acl-manifests.json new file mode 100644 index 0000000..a50efa5 --- /dev/null +++ b/src-tauri/gen/schemas/acl-manifests.json @@ -0,0 +1 @@ +{"core":{"default_permission":{"identifier":"default","description":"Default core plugins set.","permissions":["core:path:default","core:event:default","core:window:default","core:webview:default","core:app:default","core:image:default","core:resources:default","core:menu:default","core:tray:default"]},"permissions":{},"permission_sets":{},"global_scope_schema":null},"core:app":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-version","allow-name","allow-tauri-version","allow-identifier","allow-bundle-type","allow-register-listener","allow-remove-listener","allow-supports-multiple-windows"]},"permissions":{"allow-app-hide":{"identifier":"allow-app-hide","description":"Enables the app_hide command without any pre-configured scope.","commands":{"allow":["app_hide"],"deny":[]}},"allow-app-show":{"identifier":"allow-app-show","description":"Enables the app_show command without any pre-configured scope.","commands":{"allow":["app_show"],"deny":[]}},"allow-bundle-type":{"identifier":"allow-bundle-type","description":"Enables the bundle_type command without any pre-configured scope.","commands":{"allow":["bundle_type"],"deny":[]}},"allow-default-window-icon":{"identifier":"allow-default-window-icon","description":"Enables the default_window_icon command without any pre-configured scope.","commands":{"allow":["default_window_icon"],"deny":[]}},"allow-fetch-data-store-identifiers":{"identifier":"allow-fetch-data-store-identifiers","description":"Enables the fetch_data_store_identifiers command without any pre-configured scope.","commands":{"allow":["fetch_data_store_identifiers"],"deny":[]}},"allow-identifier":{"identifier":"allow-identifier","description":"Enables the identifier command without any pre-configured scope.","commands":{"allow":["identifier"],"deny":[]}},"allow-name":{"identifier":"allow-name","description":"Enables the name command without any pre-configured scope.","commands":{"allow":["name"],"deny":[]}},"allow-register-listener":{"identifier":"allow-register-listener","description":"Enables the register_listener command without any pre-configured scope.","commands":{"allow":["register_listener"],"deny":[]}},"allow-remove-data-store":{"identifier":"allow-remove-data-store","description":"Enables the remove_data_store command without any pre-configured scope.","commands":{"allow":["remove_data_store"],"deny":[]}},"allow-remove-listener":{"identifier":"allow-remove-listener","description":"Enables the remove_listener command without any pre-configured scope.","commands":{"allow":["remove_listener"],"deny":[]}},"allow-set-app-theme":{"identifier":"allow-set-app-theme","description":"Enables the set_app_theme command without any pre-configured scope.","commands":{"allow":["set_app_theme"],"deny":[]}},"allow-set-dock-visibility":{"identifier":"allow-set-dock-visibility","description":"Enables the set_dock_visibility command without any pre-configured scope.","commands":{"allow":["set_dock_visibility"],"deny":[]}},"allow-supports-multiple-windows":{"identifier":"allow-supports-multiple-windows","description":"Enables the supports_multiple_windows command without any pre-configured scope.","commands":{"allow":["supports_multiple_windows"],"deny":[]}},"allow-tauri-version":{"identifier":"allow-tauri-version","description":"Enables the tauri_version command without any pre-configured scope.","commands":{"allow":["tauri_version"],"deny":[]}},"allow-version":{"identifier":"allow-version","description":"Enables the version command without any pre-configured scope.","commands":{"allow":["version"],"deny":[]}},"deny-app-hide":{"identifier":"deny-app-hide","description":"Denies the app_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["app_hide"]}},"deny-app-show":{"identifier":"deny-app-show","description":"Denies the app_show command without any pre-configured scope.","commands":{"allow":[],"deny":["app_show"]}},"deny-bundle-type":{"identifier":"deny-bundle-type","description":"Denies the bundle_type command without any pre-configured scope.","commands":{"allow":[],"deny":["bundle_type"]}},"deny-default-window-icon":{"identifier":"deny-default-window-icon","description":"Denies the default_window_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["default_window_icon"]}},"deny-fetch-data-store-identifiers":{"identifier":"deny-fetch-data-store-identifiers","description":"Denies the fetch_data_store_identifiers command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_data_store_identifiers"]}},"deny-identifier":{"identifier":"deny-identifier","description":"Denies the identifier command without any pre-configured scope.","commands":{"allow":[],"deny":["identifier"]}},"deny-name":{"identifier":"deny-name","description":"Denies the name command without any pre-configured scope.","commands":{"allow":[],"deny":["name"]}},"deny-register-listener":{"identifier":"deny-register-listener","description":"Denies the register_listener command without any pre-configured scope.","commands":{"allow":[],"deny":["register_listener"]}},"deny-remove-data-store":{"identifier":"deny-remove-data-store","description":"Denies the remove_data_store command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_data_store"]}},"deny-remove-listener":{"identifier":"deny-remove-listener","description":"Denies the remove_listener command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_listener"]}},"deny-set-app-theme":{"identifier":"deny-set-app-theme","description":"Denies the set_app_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_app_theme"]}},"deny-set-dock-visibility":{"identifier":"deny-set-dock-visibility","description":"Denies the set_dock_visibility command without any pre-configured scope.","commands":{"allow":[],"deny":["set_dock_visibility"]}},"deny-supports-multiple-windows":{"identifier":"deny-supports-multiple-windows","description":"Denies the supports_multiple_windows command without any pre-configured scope.","commands":{"allow":[],"deny":["supports_multiple_windows"]}},"deny-tauri-version":{"identifier":"deny-tauri-version","description":"Denies the tauri_version command without any pre-configured scope.","commands":{"allow":[],"deny":["tauri_version"]}},"deny-version":{"identifier":"deny-version","description":"Denies the version command without any pre-configured scope.","commands":{"allow":[],"deny":["version"]}}},"permission_sets":{},"global_scope_schema":null},"core:event":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-listen","allow-unlisten","allow-emit","allow-emit-to"]},"permissions":{"allow-emit":{"identifier":"allow-emit","description":"Enables the emit command without any pre-configured scope.","commands":{"allow":["emit"],"deny":[]}},"allow-emit-to":{"identifier":"allow-emit-to","description":"Enables the emit_to command without any pre-configured scope.","commands":{"allow":["emit_to"],"deny":[]}},"allow-listen":{"identifier":"allow-listen","description":"Enables the listen command without any pre-configured scope.","commands":{"allow":["listen"],"deny":[]}},"allow-unlisten":{"identifier":"allow-unlisten","description":"Enables the unlisten command without any pre-configured scope.","commands":{"allow":["unlisten"],"deny":[]}},"deny-emit":{"identifier":"deny-emit","description":"Denies the emit command without any pre-configured scope.","commands":{"allow":[],"deny":["emit"]}},"deny-emit-to":{"identifier":"deny-emit-to","description":"Denies the emit_to command without any pre-configured scope.","commands":{"allow":[],"deny":["emit_to"]}},"deny-listen":{"identifier":"deny-listen","description":"Denies the listen command without any pre-configured scope.","commands":{"allow":[],"deny":["listen"]}},"deny-unlisten":{"identifier":"deny-unlisten","description":"Denies the unlisten command without any pre-configured scope.","commands":{"allow":[],"deny":["unlisten"]}}},"permission_sets":{},"global_scope_schema":null},"core:image":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-from-bytes","allow-from-path","allow-rgba","allow-size"]},"permissions":{"allow-from-bytes":{"identifier":"allow-from-bytes","description":"Enables the from_bytes command without any pre-configured scope.","commands":{"allow":["from_bytes"],"deny":[]}},"allow-from-path":{"identifier":"allow-from-path","description":"Enables the from_path command without any pre-configured scope.","commands":{"allow":["from_path"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-rgba":{"identifier":"allow-rgba","description":"Enables the rgba command without any pre-configured scope.","commands":{"allow":["rgba"],"deny":[]}},"allow-size":{"identifier":"allow-size","description":"Enables the size command without any pre-configured scope.","commands":{"allow":["size"],"deny":[]}},"deny-from-bytes":{"identifier":"deny-from-bytes","description":"Denies the from_bytes command without any pre-configured scope.","commands":{"allow":[],"deny":["from_bytes"]}},"deny-from-path":{"identifier":"deny-from-path","description":"Denies the from_path command without any pre-configured scope.","commands":{"allow":[],"deny":["from_path"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-rgba":{"identifier":"deny-rgba","description":"Denies the rgba command without any pre-configured scope.","commands":{"allow":[],"deny":["rgba"]}},"deny-size":{"identifier":"deny-size","description":"Denies the size command without any pre-configured scope.","commands":{"allow":[],"deny":["size"]}}},"permission_sets":{},"global_scope_schema":null},"core:menu":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-append","allow-prepend","allow-insert","allow-remove","allow-remove-at","allow-items","allow-get","allow-popup","allow-create-default","allow-set-as-app-menu","allow-set-as-window-menu","allow-text","allow-set-text","allow-is-enabled","allow-set-enabled","allow-set-accelerator","allow-set-as-windows-menu-for-nsapp","allow-set-as-help-menu-for-nsapp","allow-is-checked","allow-set-checked","allow-set-icon"]},"permissions":{"allow-append":{"identifier":"allow-append","description":"Enables the append command without any pre-configured scope.","commands":{"allow":["append"],"deny":[]}},"allow-create-default":{"identifier":"allow-create-default","description":"Enables the create_default command without any pre-configured scope.","commands":{"allow":["create_default"],"deny":[]}},"allow-get":{"identifier":"allow-get","description":"Enables the get command without any pre-configured scope.","commands":{"allow":["get"],"deny":[]}},"allow-insert":{"identifier":"allow-insert","description":"Enables the insert command without any pre-configured scope.","commands":{"allow":["insert"],"deny":[]}},"allow-is-checked":{"identifier":"allow-is-checked","description":"Enables the is_checked command without any pre-configured scope.","commands":{"allow":["is_checked"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-items":{"identifier":"allow-items","description":"Enables the items command without any pre-configured scope.","commands":{"allow":["items"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-popup":{"identifier":"allow-popup","description":"Enables the popup command without any pre-configured scope.","commands":{"allow":["popup"],"deny":[]}},"allow-prepend":{"identifier":"allow-prepend","description":"Enables the prepend command without any pre-configured scope.","commands":{"allow":["prepend"],"deny":[]}},"allow-remove":{"identifier":"allow-remove","description":"Enables the remove command without any pre-configured scope.","commands":{"allow":["remove"],"deny":[]}},"allow-remove-at":{"identifier":"allow-remove-at","description":"Enables the remove_at command without any pre-configured scope.","commands":{"allow":["remove_at"],"deny":[]}},"allow-set-accelerator":{"identifier":"allow-set-accelerator","description":"Enables the set_accelerator command without any pre-configured scope.","commands":{"allow":["set_accelerator"],"deny":[]}},"allow-set-as-app-menu":{"identifier":"allow-set-as-app-menu","description":"Enables the set_as_app_menu command without any pre-configured scope.","commands":{"allow":["set_as_app_menu"],"deny":[]}},"allow-set-as-help-menu-for-nsapp":{"identifier":"allow-set-as-help-menu-for-nsapp","description":"Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_help_menu_for_nsapp"],"deny":[]}},"allow-set-as-window-menu":{"identifier":"allow-set-as-window-menu","description":"Enables the set_as_window_menu command without any pre-configured scope.","commands":{"allow":["set_as_window_menu"],"deny":[]}},"allow-set-as-windows-menu-for-nsapp":{"identifier":"allow-set-as-windows-menu-for-nsapp","description":"Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_windows_menu_for_nsapp"],"deny":[]}},"allow-set-checked":{"identifier":"allow-set-checked","description":"Enables the set_checked command without any pre-configured scope.","commands":{"allow":["set_checked"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-text":{"identifier":"allow-set-text","description":"Enables the set_text command without any pre-configured scope.","commands":{"allow":["set_text"],"deny":[]}},"allow-text":{"identifier":"allow-text","description":"Enables the text command without any pre-configured scope.","commands":{"allow":["text"],"deny":[]}},"deny-append":{"identifier":"deny-append","description":"Denies the append command without any pre-configured scope.","commands":{"allow":[],"deny":["append"]}},"deny-create-default":{"identifier":"deny-create-default","description":"Denies the create_default command without any pre-configured scope.","commands":{"allow":[],"deny":["create_default"]}},"deny-get":{"identifier":"deny-get","description":"Denies the get command without any pre-configured scope.","commands":{"allow":[],"deny":["get"]}},"deny-insert":{"identifier":"deny-insert","description":"Denies the insert command without any pre-configured scope.","commands":{"allow":[],"deny":["insert"]}},"deny-is-checked":{"identifier":"deny-is-checked","description":"Denies the is_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["is_checked"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-items":{"identifier":"deny-items","description":"Denies the items command without any pre-configured scope.","commands":{"allow":[],"deny":["items"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-popup":{"identifier":"deny-popup","description":"Denies the popup command without any pre-configured scope.","commands":{"allow":[],"deny":["popup"]}},"deny-prepend":{"identifier":"deny-prepend","description":"Denies the prepend command without any pre-configured scope.","commands":{"allow":[],"deny":["prepend"]}},"deny-remove":{"identifier":"deny-remove","description":"Denies the remove command without any pre-configured scope.","commands":{"allow":[],"deny":["remove"]}},"deny-remove-at":{"identifier":"deny-remove-at","description":"Denies the remove_at command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_at"]}},"deny-set-accelerator":{"identifier":"deny-set-accelerator","description":"Denies the set_accelerator command without any pre-configured scope.","commands":{"allow":[],"deny":["set_accelerator"]}},"deny-set-as-app-menu":{"identifier":"deny-set-as-app-menu","description":"Denies the set_as_app_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_app_menu"]}},"deny-set-as-help-menu-for-nsapp":{"identifier":"deny-set-as-help-menu-for-nsapp","description":"Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_help_menu_for_nsapp"]}},"deny-set-as-window-menu":{"identifier":"deny-set-as-window-menu","description":"Denies the set_as_window_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_window_menu"]}},"deny-set-as-windows-menu-for-nsapp":{"identifier":"deny-set-as-windows-menu-for-nsapp","description":"Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_windows_menu_for_nsapp"]}},"deny-set-checked":{"identifier":"deny-set-checked","description":"Denies the set_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["set_checked"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-text":{"identifier":"deny-set-text","description":"Denies the set_text command without any pre-configured scope.","commands":{"allow":[],"deny":["set_text"]}},"deny-text":{"identifier":"deny-text","description":"Denies the text command without any pre-configured scope.","commands":{"allow":[],"deny":["text"]}}},"permission_sets":{},"global_scope_schema":null},"core:path":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-resolve-directory","allow-resolve","allow-normalize","allow-join","allow-dirname","allow-extname","allow-basename","allow-is-absolute"]},"permissions":{"allow-basename":{"identifier":"allow-basename","description":"Enables the basename command without any pre-configured scope.","commands":{"allow":["basename"],"deny":[]}},"allow-dirname":{"identifier":"allow-dirname","description":"Enables the dirname command without any pre-configured scope.","commands":{"allow":["dirname"],"deny":[]}},"allow-extname":{"identifier":"allow-extname","description":"Enables the extname command without any pre-configured scope.","commands":{"allow":["extname"],"deny":[]}},"allow-is-absolute":{"identifier":"allow-is-absolute","description":"Enables the is_absolute command without any pre-configured scope.","commands":{"allow":["is_absolute"],"deny":[]}},"allow-join":{"identifier":"allow-join","description":"Enables the join command without any pre-configured scope.","commands":{"allow":["join"],"deny":[]}},"allow-normalize":{"identifier":"allow-normalize","description":"Enables the normalize command without any pre-configured scope.","commands":{"allow":["normalize"],"deny":[]}},"allow-resolve":{"identifier":"allow-resolve","description":"Enables the resolve command without any pre-configured scope.","commands":{"allow":["resolve"],"deny":[]}},"allow-resolve-directory":{"identifier":"allow-resolve-directory","description":"Enables the resolve_directory command without any pre-configured scope.","commands":{"allow":["resolve_directory"],"deny":[]}},"deny-basename":{"identifier":"deny-basename","description":"Denies the basename command without any pre-configured scope.","commands":{"allow":[],"deny":["basename"]}},"deny-dirname":{"identifier":"deny-dirname","description":"Denies the dirname command without any pre-configured scope.","commands":{"allow":[],"deny":["dirname"]}},"deny-extname":{"identifier":"deny-extname","description":"Denies the extname command without any pre-configured scope.","commands":{"allow":[],"deny":["extname"]}},"deny-is-absolute":{"identifier":"deny-is-absolute","description":"Denies the is_absolute command without any pre-configured scope.","commands":{"allow":[],"deny":["is_absolute"]}},"deny-join":{"identifier":"deny-join","description":"Denies the join command without any pre-configured scope.","commands":{"allow":[],"deny":["join"]}},"deny-normalize":{"identifier":"deny-normalize","description":"Denies the normalize command without any pre-configured scope.","commands":{"allow":[],"deny":["normalize"]}},"deny-resolve":{"identifier":"deny-resolve","description":"Denies the resolve command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve"]}},"deny-resolve-directory":{"identifier":"deny-resolve-directory","description":"Denies the resolve_directory command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve_directory"]}}},"permission_sets":{},"global_scope_schema":null},"core:resources":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-close"]},"permissions":{"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}}},"permission_sets":{},"global_scope_schema":null},"core:tray":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-get-by-id","allow-remove-by-id","allow-set-icon","allow-set-menu","allow-set-tooltip","allow-set-title","allow-set-visible","allow-set-temp-dir-path","allow-set-icon-as-template","allow-set-icon-with-as-template","allow-set-show-menu-on-left-click"]},"permissions":{"allow-get-by-id":{"identifier":"allow-get-by-id","description":"Enables the get_by_id command without any pre-configured scope.","commands":{"allow":["get_by_id"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-remove-by-id":{"identifier":"allow-remove-by-id","description":"Enables the remove_by_id command without any pre-configured scope.","commands":{"allow":["remove_by_id"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-icon-as-template":{"identifier":"allow-set-icon-as-template","description":"Enables the set_icon_as_template command without any pre-configured scope.","commands":{"allow":["set_icon_as_template"],"deny":[]}},"allow-set-icon-with-as-template":{"identifier":"allow-set-icon-with-as-template","description":"Enables the set_icon_with_as_template command without any pre-configured scope.","commands":{"allow":["set_icon_with_as_template"],"deny":[]}},"allow-set-menu":{"identifier":"allow-set-menu","description":"Enables the set_menu command without any pre-configured scope.","commands":{"allow":["set_menu"],"deny":[]}},"allow-set-show-menu-on-left-click":{"identifier":"allow-set-show-menu-on-left-click","description":"Enables the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":["set_show_menu_on_left_click"],"deny":[]}},"allow-set-temp-dir-path":{"identifier":"allow-set-temp-dir-path","description":"Enables the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":["set_temp_dir_path"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-tooltip":{"identifier":"allow-set-tooltip","description":"Enables the set_tooltip command without any pre-configured scope.","commands":{"allow":["set_tooltip"],"deny":[]}},"allow-set-visible":{"identifier":"allow-set-visible","description":"Enables the set_visible command without any pre-configured scope.","commands":{"allow":["set_visible"],"deny":[]}},"deny-get-by-id":{"identifier":"deny-get-by-id","description":"Denies the get_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["get_by_id"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-remove-by-id":{"identifier":"deny-remove-by-id","description":"Denies the remove_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_by_id"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-icon-as-template":{"identifier":"deny-set-icon-as-template","description":"Denies the set_icon_as_template command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon_as_template"]}},"deny-set-icon-with-as-template":{"identifier":"deny-set-icon-with-as-template","description":"Denies the set_icon_with_as_template command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon_with_as_template"]}},"deny-set-menu":{"identifier":"deny-set-menu","description":"Denies the set_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_menu"]}},"deny-set-show-menu-on-left-click":{"identifier":"deny-set-show-menu-on-left-click","description":"Denies the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":[],"deny":["set_show_menu_on_left_click"]}},"deny-set-temp-dir-path":{"identifier":"deny-set-temp-dir-path","description":"Denies the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":[],"deny":["set_temp_dir_path"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-tooltip":{"identifier":"deny-set-tooltip","description":"Denies the set_tooltip command without any pre-configured scope.","commands":{"allow":[],"deny":["set_tooltip"]}},"deny-set-visible":{"identifier":"deny-set-visible","description":"Denies the set_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible"]}}},"permission_sets":{},"global_scope_schema":null},"core:webview":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-webviews","allow-webview-position","allow-webview-size","allow-internal-toggle-devtools"]},"permissions":{"allow-clear-all-browsing-data":{"identifier":"allow-clear-all-browsing-data","description":"Enables the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":["clear_all_browsing_data"],"deny":[]}},"allow-create-webview":{"identifier":"allow-create-webview","description":"Enables the create_webview command without any pre-configured scope.","commands":{"allow":["create_webview"],"deny":[]}},"allow-create-webview-window":{"identifier":"allow-create-webview-window","description":"Enables the create_webview_window command without any pre-configured scope.","commands":{"allow":["create_webview_window"],"deny":[]}},"allow-get-all-webviews":{"identifier":"allow-get-all-webviews","description":"Enables the get_all_webviews command without any pre-configured scope.","commands":{"allow":["get_all_webviews"],"deny":[]}},"allow-internal-toggle-devtools":{"identifier":"allow-internal-toggle-devtools","description":"Enables the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":["internal_toggle_devtools"],"deny":[]}},"allow-print":{"identifier":"allow-print","description":"Enables the print command without any pre-configured scope.","commands":{"allow":["print"],"deny":[]}},"allow-reparent":{"identifier":"allow-reparent","description":"Enables the reparent command without any pre-configured scope.","commands":{"allow":["reparent"],"deny":[]}},"allow-set-webview-auto-resize":{"identifier":"allow-set-webview-auto-resize","description":"Enables the set_webview_auto_resize command without any pre-configured scope.","commands":{"allow":["set_webview_auto_resize"],"deny":[]}},"allow-set-webview-background-color":{"identifier":"allow-set-webview-background-color","description":"Enables the set_webview_background_color command without any pre-configured scope.","commands":{"allow":["set_webview_background_color"],"deny":[]}},"allow-set-webview-focus":{"identifier":"allow-set-webview-focus","description":"Enables the set_webview_focus command without any pre-configured scope.","commands":{"allow":["set_webview_focus"],"deny":[]}},"allow-set-webview-position":{"identifier":"allow-set-webview-position","description":"Enables the set_webview_position command without any pre-configured scope.","commands":{"allow":["set_webview_position"],"deny":[]}},"allow-set-webview-size":{"identifier":"allow-set-webview-size","description":"Enables the set_webview_size command without any pre-configured scope.","commands":{"allow":["set_webview_size"],"deny":[]}},"allow-set-webview-zoom":{"identifier":"allow-set-webview-zoom","description":"Enables the set_webview_zoom command without any pre-configured scope.","commands":{"allow":["set_webview_zoom"],"deny":[]}},"allow-webview-close":{"identifier":"allow-webview-close","description":"Enables the webview_close command without any pre-configured scope.","commands":{"allow":["webview_close"],"deny":[]}},"allow-webview-hide":{"identifier":"allow-webview-hide","description":"Enables the webview_hide command without any pre-configured scope.","commands":{"allow":["webview_hide"],"deny":[]}},"allow-webview-position":{"identifier":"allow-webview-position","description":"Enables the webview_position command without any pre-configured scope.","commands":{"allow":["webview_position"],"deny":[]}},"allow-webview-show":{"identifier":"allow-webview-show","description":"Enables the webview_show command without any pre-configured scope.","commands":{"allow":["webview_show"],"deny":[]}},"allow-webview-size":{"identifier":"allow-webview-size","description":"Enables the webview_size command without any pre-configured scope.","commands":{"allow":["webview_size"],"deny":[]}},"deny-clear-all-browsing-data":{"identifier":"deny-clear-all-browsing-data","description":"Denies the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":[],"deny":["clear_all_browsing_data"]}},"deny-create-webview":{"identifier":"deny-create-webview","description":"Denies the create_webview command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview"]}},"deny-create-webview-window":{"identifier":"deny-create-webview-window","description":"Denies the create_webview_window command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview_window"]}},"deny-get-all-webviews":{"identifier":"deny-get-all-webviews","description":"Denies the get_all_webviews command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_webviews"]}},"deny-internal-toggle-devtools":{"identifier":"deny-internal-toggle-devtools","description":"Denies the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_devtools"]}},"deny-print":{"identifier":"deny-print","description":"Denies the print command without any pre-configured scope.","commands":{"allow":[],"deny":["print"]}},"deny-reparent":{"identifier":"deny-reparent","description":"Denies the reparent command without any pre-configured scope.","commands":{"allow":[],"deny":["reparent"]}},"deny-set-webview-auto-resize":{"identifier":"deny-set-webview-auto-resize","description":"Denies the set_webview_auto_resize command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_auto_resize"]}},"deny-set-webview-background-color":{"identifier":"deny-set-webview-background-color","description":"Denies the set_webview_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_background_color"]}},"deny-set-webview-focus":{"identifier":"deny-set-webview-focus","description":"Denies the set_webview_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_focus"]}},"deny-set-webview-position":{"identifier":"deny-set-webview-position","description":"Denies the set_webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_position"]}},"deny-set-webview-size":{"identifier":"deny-set-webview-size","description":"Denies the set_webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_size"]}},"deny-set-webview-zoom":{"identifier":"deny-set-webview-zoom","description":"Denies the set_webview_zoom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_zoom"]}},"deny-webview-close":{"identifier":"deny-webview-close","description":"Denies the webview_close command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_close"]}},"deny-webview-hide":{"identifier":"deny-webview-hide","description":"Denies the webview_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_hide"]}},"deny-webview-position":{"identifier":"deny-webview-position","description":"Denies the webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_position"]}},"deny-webview-show":{"identifier":"deny-webview-show","description":"Denies the webview_show command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_show"]}},"deny-webview-size":{"identifier":"deny-webview-size","description":"Denies the webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_size"]}}},"permission_sets":{},"global_scope_schema":null},"core:window":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-windows","allow-scale-factor","allow-inner-position","allow-outer-position","allow-inner-size","allow-outer-size","allow-is-fullscreen","allow-is-minimized","allow-is-maximized","allow-is-focused","allow-is-decorated","allow-is-resizable","allow-is-maximizable","allow-is-minimizable","allow-is-closable","allow-is-visible","allow-is-enabled","allow-title","allow-current-monitor","allow-primary-monitor","allow-monitor-from-point","allow-available-monitors","allow-cursor-position","allow-theme","allow-is-always-on-top","allow-activity-name","allow-scene-identifier","allow-internal-toggle-maximize"]},"permissions":{"allow-activity-name":{"identifier":"allow-activity-name","description":"Enables the activity_name command without any pre-configured scope.","commands":{"allow":["activity_name"],"deny":[]}},"allow-available-monitors":{"identifier":"allow-available-monitors","description":"Enables the available_monitors command without any pre-configured scope.","commands":{"allow":["available_monitors"],"deny":[]}},"allow-center":{"identifier":"allow-center","description":"Enables the center command without any pre-configured scope.","commands":{"allow":["center"],"deny":[]}},"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"allow-create":{"identifier":"allow-create","description":"Enables the create command without any pre-configured scope.","commands":{"allow":["create"],"deny":[]}},"allow-current-monitor":{"identifier":"allow-current-monitor","description":"Enables the current_monitor command without any pre-configured scope.","commands":{"allow":["current_monitor"],"deny":[]}},"allow-cursor-position":{"identifier":"allow-cursor-position","description":"Enables the cursor_position command without any pre-configured scope.","commands":{"allow":["cursor_position"],"deny":[]}},"allow-destroy":{"identifier":"allow-destroy","description":"Enables the destroy command without any pre-configured scope.","commands":{"allow":["destroy"],"deny":[]}},"allow-get-all-windows":{"identifier":"allow-get-all-windows","description":"Enables the get_all_windows command without any pre-configured scope.","commands":{"allow":["get_all_windows"],"deny":[]}},"allow-hide":{"identifier":"allow-hide","description":"Enables the hide command without any pre-configured scope.","commands":{"allow":["hide"],"deny":[]}},"allow-inner-position":{"identifier":"allow-inner-position","description":"Enables the inner_position command without any pre-configured scope.","commands":{"allow":["inner_position"],"deny":[]}},"allow-inner-size":{"identifier":"allow-inner-size","description":"Enables the inner_size command without any pre-configured scope.","commands":{"allow":["inner_size"],"deny":[]}},"allow-internal-toggle-maximize":{"identifier":"allow-internal-toggle-maximize","description":"Enables the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":["internal_toggle_maximize"],"deny":[]}},"allow-is-always-on-top":{"identifier":"allow-is-always-on-top","description":"Enables the is_always_on_top command without any pre-configured scope.","commands":{"allow":["is_always_on_top"],"deny":[]}},"allow-is-closable":{"identifier":"allow-is-closable","description":"Enables the is_closable command without any pre-configured scope.","commands":{"allow":["is_closable"],"deny":[]}},"allow-is-decorated":{"identifier":"allow-is-decorated","description":"Enables the is_decorated command without any pre-configured scope.","commands":{"allow":["is_decorated"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-is-focused":{"identifier":"allow-is-focused","description":"Enables the is_focused command without any pre-configured scope.","commands":{"allow":["is_focused"],"deny":[]}},"allow-is-fullscreen":{"identifier":"allow-is-fullscreen","description":"Enables the is_fullscreen command without any pre-configured scope.","commands":{"allow":["is_fullscreen"],"deny":[]}},"allow-is-maximizable":{"identifier":"allow-is-maximizable","description":"Enables the is_maximizable command without any pre-configured scope.","commands":{"allow":["is_maximizable"],"deny":[]}},"allow-is-maximized":{"identifier":"allow-is-maximized","description":"Enables the is_maximized command without any pre-configured scope.","commands":{"allow":["is_maximized"],"deny":[]}},"allow-is-minimizable":{"identifier":"allow-is-minimizable","description":"Enables the is_minimizable command without any pre-configured scope.","commands":{"allow":["is_minimizable"],"deny":[]}},"allow-is-minimized":{"identifier":"allow-is-minimized","description":"Enables the is_minimized command without any pre-configured scope.","commands":{"allow":["is_minimized"],"deny":[]}},"allow-is-resizable":{"identifier":"allow-is-resizable","description":"Enables the is_resizable command without any pre-configured scope.","commands":{"allow":["is_resizable"],"deny":[]}},"allow-is-visible":{"identifier":"allow-is-visible","description":"Enables the is_visible command without any pre-configured scope.","commands":{"allow":["is_visible"],"deny":[]}},"allow-maximize":{"identifier":"allow-maximize","description":"Enables the maximize command without any pre-configured scope.","commands":{"allow":["maximize"],"deny":[]}},"allow-minimize":{"identifier":"allow-minimize","description":"Enables the minimize command without any pre-configured scope.","commands":{"allow":["minimize"],"deny":[]}},"allow-monitor-from-point":{"identifier":"allow-monitor-from-point","description":"Enables the monitor_from_point command without any pre-configured scope.","commands":{"allow":["monitor_from_point"],"deny":[]}},"allow-outer-position":{"identifier":"allow-outer-position","description":"Enables the outer_position command without any pre-configured scope.","commands":{"allow":["outer_position"],"deny":[]}},"allow-outer-size":{"identifier":"allow-outer-size","description":"Enables the outer_size command without any pre-configured scope.","commands":{"allow":["outer_size"],"deny":[]}},"allow-primary-monitor":{"identifier":"allow-primary-monitor","description":"Enables the primary_monitor command without any pre-configured scope.","commands":{"allow":["primary_monitor"],"deny":[]}},"allow-request-user-attention":{"identifier":"allow-request-user-attention","description":"Enables the request_user_attention command without any pre-configured scope.","commands":{"allow":["request_user_attention"],"deny":[]}},"allow-scale-factor":{"identifier":"allow-scale-factor","description":"Enables the scale_factor command without any pre-configured scope.","commands":{"allow":["scale_factor"],"deny":[]}},"allow-scene-identifier":{"identifier":"allow-scene-identifier","description":"Enables the scene_identifier command without any pre-configured scope.","commands":{"allow":["scene_identifier"],"deny":[]}},"allow-set-always-on-bottom":{"identifier":"allow-set-always-on-bottom","description":"Enables the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":["set_always_on_bottom"],"deny":[]}},"allow-set-always-on-top":{"identifier":"allow-set-always-on-top","description":"Enables the set_always_on_top command without any pre-configured scope.","commands":{"allow":["set_always_on_top"],"deny":[]}},"allow-set-background-color":{"identifier":"allow-set-background-color","description":"Enables the set_background_color command without any pre-configured scope.","commands":{"allow":["set_background_color"],"deny":[]}},"allow-set-badge-count":{"identifier":"allow-set-badge-count","description":"Enables the set_badge_count command without any pre-configured scope.","commands":{"allow":["set_badge_count"],"deny":[]}},"allow-set-badge-label":{"identifier":"allow-set-badge-label","description":"Enables the set_badge_label command without any pre-configured scope.","commands":{"allow":["set_badge_label"],"deny":[]}},"allow-set-closable":{"identifier":"allow-set-closable","description":"Enables the set_closable command without any pre-configured scope.","commands":{"allow":["set_closable"],"deny":[]}},"allow-set-content-protected":{"identifier":"allow-set-content-protected","description":"Enables the set_content_protected command without any pre-configured scope.","commands":{"allow":["set_content_protected"],"deny":[]}},"allow-set-cursor-grab":{"identifier":"allow-set-cursor-grab","description":"Enables the set_cursor_grab command without any pre-configured scope.","commands":{"allow":["set_cursor_grab"],"deny":[]}},"allow-set-cursor-icon":{"identifier":"allow-set-cursor-icon","description":"Enables the set_cursor_icon command without any pre-configured scope.","commands":{"allow":["set_cursor_icon"],"deny":[]}},"allow-set-cursor-position":{"identifier":"allow-set-cursor-position","description":"Enables the set_cursor_position command without any pre-configured scope.","commands":{"allow":["set_cursor_position"],"deny":[]}},"allow-set-cursor-visible":{"identifier":"allow-set-cursor-visible","description":"Enables the set_cursor_visible command without any pre-configured scope.","commands":{"allow":["set_cursor_visible"],"deny":[]}},"allow-set-decorations":{"identifier":"allow-set-decorations","description":"Enables the set_decorations command without any pre-configured scope.","commands":{"allow":["set_decorations"],"deny":[]}},"allow-set-effects":{"identifier":"allow-set-effects","description":"Enables the set_effects command without any pre-configured scope.","commands":{"allow":["set_effects"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-focus":{"identifier":"allow-set-focus","description":"Enables the set_focus command without any pre-configured scope.","commands":{"allow":["set_focus"],"deny":[]}},"allow-set-focusable":{"identifier":"allow-set-focusable","description":"Enables the set_focusable command without any pre-configured scope.","commands":{"allow":["set_focusable"],"deny":[]}},"allow-set-fullscreen":{"identifier":"allow-set-fullscreen","description":"Enables the set_fullscreen command without any pre-configured scope.","commands":{"allow":["set_fullscreen"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-ignore-cursor-events":{"identifier":"allow-set-ignore-cursor-events","description":"Enables the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":["set_ignore_cursor_events"],"deny":[]}},"allow-set-max-size":{"identifier":"allow-set-max-size","description":"Enables the set_max_size command without any pre-configured scope.","commands":{"allow":["set_max_size"],"deny":[]}},"allow-set-maximizable":{"identifier":"allow-set-maximizable","description":"Enables the set_maximizable command without any pre-configured scope.","commands":{"allow":["set_maximizable"],"deny":[]}},"allow-set-min-size":{"identifier":"allow-set-min-size","description":"Enables the set_min_size command without any pre-configured scope.","commands":{"allow":["set_min_size"],"deny":[]}},"allow-set-minimizable":{"identifier":"allow-set-minimizable","description":"Enables the set_minimizable command without any pre-configured scope.","commands":{"allow":["set_minimizable"],"deny":[]}},"allow-set-overlay-icon":{"identifier":"allow-set-overlay-icon","description":"Enables the set_overlay_icon command without any pre-configured scope.","commands":{"allow":["set_overlay_icon"],"deny":[]}},"allow-set-position":{"identifier":"allow-set-position","description":"Enables the set_position command without any pre-configured scope.","commands":{"allow":["set_position"],"deny":[]}},"allow-set-progress-bar":{"identifier":"allow-set-progress-bar","description":"Enables the set_progress_bar command without any pre-configured scope.","commands":{"allow":["set_progress_bar"],"deny":[]}},"allow-set-resizable":{"identifier":"allow-set-resizable","description":"Enables the set_resizable command without any pre-configured scope.","commands":{"allow":["set_resizable"],"deny":[]}},"allow-set-shadow":{"identifier":"allow-set-shadow","description":"Enables the set_shadow command without any pre-configured scope.","commands":{"allow":["set_shadow"],"deny":[]}},"allow-set-simple-fullscreen":{"identifier":"allow-set-simple-fullscreen","description":"Enables the set_simple_fullscreen command without any pre-configured scope.","commands":{"allow":["set_simple_fullscreen"],"deny":[]}},"allow-set-size":{"identifier":"allow-set-size","description":"Enables the set_size command without any pre-configured scope.","commands":{"allow":["set_size"],"deny":[]}},"allow-set-size-constraints":{"identifier":"allow-set-size-constraints","description":"Enables the set_size_constraints command without any pre-configured scope.","commands":{"allow":["set_size_constraints"],"deny":[]}},"allow-set-skip-taskbar":{"identifier":"allow-set-skip-taskbar","description":"Enables the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":["set_skip_taskbar"],"deny":[]}},"allow-set-theme":{"identifier":"allow-set-theme","description":"Enables the set_theme command without any pre-configured scope.","commands":{"allow":["set_theme"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-title-bar-style":{"identifier":"allow-set-title-bar-style","description":"Enables the set_title_bar_style command without any pre-configured scope.","commands":{"allow":["set_title_bar_style"],"deny":[]}},"allow-set-visible-on-all-workspaces":{"identifier":"allow-set-visible-on-all-workspaces","description":"Enables the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":["set_visible_on_all_workspaces"],"deny":[]}},"allow-show":{"identifier":"allow-show","description":"Enables the show command without any pre-configured scope.","commands":{"allow":["show"],"deny":[]}},"allow-start-dragging":{"identifier":"allow-start-dragging","description":"Enables the start_dragging command without any pre-configured scope.","commands":{"allow":["start_dragging"],"deny":[]}},"allow-start-resize-dragging":{"identifier":"allow-start-resize-dragging","description":"Enables the start_resize_dragging command without any pre-configured scope.","commands":{"allow":["start_resize_dragging"],"deny":[]}},"allow-theme":{"identifier":"allow-theme","description":"Enables the theme command without any pre-configured scope.","commands":{"allow":["theme"],"deny":[]}},"allow-title":{"identifier":"allow-title","description":"Enables the title command without any pre-configured scope.","commands":{"allow":["title"],"deny":[]}},"allow-toggle-maximize":{"identifier":"allow-toggle-maximize","description":"Enables the toggle_maximize command without any pre-configured scope.","commands":{"allow":["toggle_maximize"],"deny":[]}},"allow-unmaximize":{"identifier":"allow-unmaximize","description":"Enables the unmaximize command without any pre-configured scope.","commands":{"allow":["unmaximize"],"deny":[]}},"allow-unminimize":{"identifier":"allow-unminimize","description":"Enables the unminimize command without any pre-configured scope.","commands":{"allow":["unminimize"],"deny":[]}},"deny-activity-name":{"identifier":"deny-activity-name","description":"Denies the activity_name command without any pre-configured scope.","commands":{"allow":[],"deny":["activity_name"]}},"deny-available-monitors":{"identifier":"deny-available-monitors","description":"Denies the available_monitors command without any pre-configured scope.","commands":{"allow":[],"deny":["available_monitors"]}},"deny-center":{"identifier":"deny-center","description":"Denies the center command without any pre-configured scope.","commands":{"allow":[],"deny":["center"]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}},"deny-create":{"identifier":"deny-create","description":"Denies the create command without any pre-configured scope.","commands":{"allow":[],"deny":["create"]}},"deny-current-monitor":{"identifier":"deny-current-monitor","description":"Denies the current_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["current_monitor"]}},"deny-cursor-position":{"identifier":"deny-cursor-position","description":"Denies the cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["cursor_position"]}},"deny-destroy":{"identifier":"deny-destroy","description":"Denies the destroy command without any pre-configured scope.","commands":{"allow":[],"deny":["destroy"]}},"deny-get-all-windows":{"identifier":"deny-get-all-windows","description":"Denies the get_all_windows command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_windows"]}},"deny-hide":{"identifier":"deny-hide","description":"Denies the hide command without any pre-configured scope.","commands":{"allow":[],"deny":["hide"]}},"deny-inner-position":{"identifier":"deny-inner-position","description":"Denies the inner_position command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_position"]}},"deny-inner-size":{"identifier":"deny-inner-size","description":"Denies the inner_size command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_size"]}},"deny-internal-toggle-maximize":{"identifier":"deny-internal-toggle-maximize","description":"Denies the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_maximize"]}},"deny-is-always-on-top":{"identifier":"deny-is-always-on-top","description":"Denies the is_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["is_always_on_top"]}},"deny-is-closable":{"identifier":"deny-is-closable","description":"Denies the is_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_closable"]}},"deny-is-decorated":{"identifier":"deny-is-decorated","description":"Denies the is_decorated command without any pre-configured scope.","commands":{"allow":[],"deny":["is_decorated"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-is-focused":{"identifier":"deny-is-focused","description":"Denies the is_focused command without any pre-configured scope.","commands":{"allow":[],"deny":["is_focused"]}},"deny-is-fullscreen":{"identifier":"deny-is-fullscreen","description":"Denies the is_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["is_fullscreen"]}},"deny-is-maximizable":{"identifier":"deny-is-maximizable","description":"Denies the is_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximizable"]}},"deny-is-maximized":{"identifier":"deny-is-maximized","description":"Denies the is_maximized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximized"]}},"deny-is-minimizable":{"identifier":"deny-is-minimizable","description":"Denies the is_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimizable"]}},"deny-is-minimized":{"identifier":"deny-is-minimized","description":"Denies the is_minimized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimized"]}},"deny-is-resizable":{"identifier":"deny-is-resizable","description":"Denies the is_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_resizable"]}},"deny-is-visible":{"identifier":"deny-is-visible","description":"Denies the is_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["is_visible"]}},"deny-maximize":{"identifier":"deny-maximize","description":"Denies the maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["maximize"]}},"deny-minimize":{"identifier":"deny-minimize","description":"Denies the minimize command without any pre-configured scope.","commands":{"allow":[],"deny":["minimize"]}},"deny-monitor-from-point":{"identifier":"deny-monitor-from-point","description":"Denies the monitor_from_point command without any pre-configured scope.","commands":{"allow":[],"deny":["monitor_from_point"]}},"deny-outer-position":{"identifier":"deny-outer-position","description":"Denies the outer_position command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_position"]}},"deny-outer-size":{"identifier":"deny-outer-size","description":"Denies the outer_size command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_size"]}},"deny-primary-monitor":{"identifier":"deny-primary-monitor","description":"Denies the primary_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["primary_monitor"]}},"deny-request-user-attention":{"identifier":"deny-request-user-attention","description":"Denies the request_user_attention command without any pre-configured scope.","commands":{"allow":[],"deny":["request_user_attention"]}},"deny-scale-factor":{"identifier":"deny-scale-factor","description":"Denies the scale_factor command without any pre-configured scope.","commands":{"allow":[],"deny":["scale_factor"]}},"deny-scene-identifier":{"identifier":"deny-scene-identifier","description":"Denies the scene_identifier command without any pre-configured scope.","commands":{"allow":[],"deny":["scene_identifier"]}},"deny-set-always-on-bottom":{"identifier":"deny-set-always-on-bottom","description":"Denies the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_bottom"]}},"deny-set-always-on-top":{"identifier":"deny-set-always-on-top","description":"Denies the set_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_top"]}},"deny-set-background-color":{"identifier":"deny-set-background-color","description":"Denies the set_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_background_color"]}},"deny-set-badge-count":{"identifier":"deny-set-badge-count","description":"Denies the set_badge_count command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_count"]}},"deny-set-badge-label":{"identifier":"deny-set-badge-label","description":"Denies the set_badge_label command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_label"]}},"deny-set-closable":{"identifier":"deny-set-closable","description":"Denies the set_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_closable"]}},"deny-set-content-protected":{"identifier":"deny-set-content-protected","description":"Denies the set_content_protected command without any pre-configured scope.","commands":{"allow":[],"deny":["set_content_protected"]}},"deny-set-cursor-grab":{"identifier":"deny-set-cursor-grab","description":"Denies the set_cursor_grab command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_grab"]}},"deny-set-cursor-icon":{"identifier":"deny-set-cursor-icon","description":"Denies the set_cursor_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_icon"]}},"deny-set-cursor-position":{"identifier":"deny-set-cursor-position","description":"Denies the set_cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_position"]}},"deny-set-cursor-visible":{"identifier":"deny-set-cursor-visible","description":"Denies the set_cursor_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_visible"]}},"deny-set-decorations":{"identifier":"deny-set-decorations","description":"Denies the set_decorations command without any pre-configured scope.","commands":{"allow":[],"deny":["set_decorations"]}},"deny-set-effects":{"identifier":"deny-set-effects","description":"Denies the set_effects command without any pre-configured scope.","commands":{"allow":[],"deny":["set_effects"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-focus":{"identifier":"deny-set-focus","description":"Denies the set_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focus"]}},"deny-set-focusable":{"identifier":"deny-set-focusable","description":"Denies the set_focusable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focusable"]}},"deny-set-fullscreen":{"identifier":"deny-set-fullscreen","description":"Denies the set_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_fullscreen"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-ignore-cursor-events":{"identifier":"deny-set-ignore-cursor-events","description":"Denies the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":[],"deny":["set_ignore_cursor_events"]}},"deny-set-max-size":{"identifier":"deny-set-max-size","description":"Denies the set_max_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_max_size"]}},"deny-set-maximizable":{"identifier":"deny-set-maximizable","description":"Denies the set_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_maximizable"]}},"deny-set-min-size":{"identifier":"deny-set-min-size","description":"Denies the set_min_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_min_size"]}},"deny-set-minimizable":{"identifier":"deny-set-minimizable","description":"Denies the set_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_minimizable"]}},"deny-set-overlay-icon":{"identifier":"deny-set-overlay-icon","description":"Denies the set_overlay_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_overlay_icon"]}},"deny-set-position":{"identifier":"deny-set-position","description":"Denies the set_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_position"]}},"deny-set-progress-bar":{"identifier":"deny-set-progress-bar","description":"Denies the set_progress_bar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_progress_bar"]}},"deny-set-resizable":{"identifier":"deny-set-resizable","description":"Denies the set_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_resizable"]}},"deny-set-shadow":{"identifier":"deny-set-shadow","description":"Denies the set_shadow command without any pre-configured scope.","commands":{"allow":[],"deny":["set_shadow"]}},"deny-set-simple-fullscreen":{"identifier":"deny-set-simple-fullscreen","description":"Denies the set_simple_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_simple_fullscreen"]}},"deny-set-size":{"identifier":"deny-set-size","description":"Denies the set_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size"]}},"deny-set-size-constraints":{"identifier":"deny-set-size-constraints","description":"Denies the set_size_constraints command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size_constraints"]}},"deny-set-skip-taskbar":{"identifier":"deny-set-skip-taskbar","description":"Denies the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_skip_taskbar"]}},"deny-set-theme":{"identifier":"deny-set-theme","description":"Denies the set_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_theme"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-title-bar-style":{"identifier":"deny-set-title-bar-style","description":"Denies the set_title_bar_style command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title_bar_style"]}},"deny-set-visible-on-all-workspaces":{"identifier":"deny-set-visible-on-all-workspaces","description":"Denies the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible_on_all_workspaces"]}},"deny-show":{"identifier":"deny-show","description":"Denies the show command without any pre-configured scope.","commands":{"allow":[],"deny":["show"]}},"deny-start-dragging":{"identifier":"deny-start-dragging","description":"Denies the start_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_dragging"]}},"deny-start-resize-dragging":{"identifier":"deny-start-resize-dragging","description":"Denies the start_resize_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_resize_dragging"]}},"deny-theme":{"identifier":"deny-theme","description":"Denies the theme command without any pre-configured scope.","commands":{"allow":[],"deny":["theme"]}},"deny-title":{"identifier":"deny-title","description":"Denies the title command without any pre-configured scope.","commands":{"allow":[],"deny":["title"]}},"deny-toggle-maximize":{"identifier":"deny-toggle-maximize","description":"Denies the toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["toggle_maximize"]}},"deny-unmaximize":{"identifier":"deny-unmaximize","description":"Denies the unmaximize command without any pre-configured scope.","commands":{"allow":[],"deny":["unmaximize"]}},"deny-unminimize":{"identifier":"deny-unminimize","description":"Denies the unminimize command without any pre-configured scope.","commands":{"allow":[],"deny":["unminimize"]}}},"permission_sets":{},"global_scope_schema":null},"opener":{"default_permission":{"identifier":"default","description":"This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer","permissions":["allow-open-url","allow-reveal-item-in-dir","allow-default-urls"]},"permissions":{"allow-default-urls":{"identifier":"allow-default-urls","description":"This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application.","commands":{"allow":[],"deny":[]},"scope":{"allow":[{"url":"mailto:*"},{"url":"tel:*"},{"url":"http://*"},{"url":"https://*"}]}},"allow-open-path":{"identifier":"allow-open-path","description":"Enables the open_path command without any pre-configured scope.","commands":{"allow":["open_path"],"deny":[]}},"allow-open-url":{"identifier":"allow-open-url","description":"Enables the open_url command without any pre-configured scope.","commands":{"allow":["open_url"],"deny":[]}},"allow-reveal-item-in-dir":{"identifier":"allow-reveal-item-in-dir","description":"Enables the reveal_item_in_dir command without any pre-configured scope.","commands":{"allow":["reveal_item_in_dir"],"deny":[]}},"deny-open-path":{"identifier":"deny-open-path","description":"Denies the open_path command without any pre-configured scope.","commands":{"allow":[],"deny":["open_path"]}},"deny-open-url":{"identifier":"deny-open-url","description":"Denies the open_url command without any pre-configured scope.","commands":{"allow":[],"deny":["open_url"]}},"deny-reveal-item-in-dir":{"identifier":"deny-reveal-item-in-dir","description":"Denies the reveal_item_in_dir command without any pre-configured scope.","commands":{"allow":[],"deny":["reveal_item_in_dir"]}}},"permission_sets":{},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","anyOf":[{"properties":{"app":{"allOf":[{"$ref":"#/definitions/Application"}],"description":"An application to open this url with, for example: firefox."},"url":{"description":"A URL that can be opened by the webview when using the Opener APIs.\n\nWildcards can be used following the UNIX glob pattern.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"","type":"string"}},"required":["url"],"type":"object"},{"properties":{"app":{"allOf":[{"$ref":"#/definitions/Application"}],"description":"An application to open this path with, for example: xdg-open."},"path":{"description":"A path that can be opened by the webview when using the Opener APIs.\n\nThe pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.","type":"string"}},"required":["path"],"type":"object"}],"definitions":{"Application":{"anyOf":[{"description":"Open in default application.","type":"null"},{"description":"If true, allow open with any application.","type":"boolean"},{"description":"Allow specific application to open with.","type":"string"}],"description":"Opener scope application."}},"description":"Opener scope entry.","title":"OpenerScopeEntry"}},"process":{"default_permission":{"identifier":"default","description":"This permission set configures which\nprocess features are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n","permissions":["allow-exit","allow-restart"]},"permissions":{"allow-exit":{"identifier":"allow-exit","description":"Enables the exit command without any pre-configured scope.","commands":{"allow":["exit"],"deny":[]}},"allow-restart":{"identifier":"allow-restart","description":"Enables the restart command without any pre-configured scope.","commands":{"allow":["restart"],"deny":[]}},"deny-exit":{"identifier":"deny-exit","description":"Denies the exit command without any pre-configured scope.","commands":{"allow":[],"deny":["exit"]}},"deny-restart":{"identifier":"deny-restart","description":"Denies the restart command without any pre-configured scope.","commands":{"allow":[],"deny":["restart"]}}},"permission_sets":{},"global_scope_schema":null},"shell":{"default_permission":{"identifier":"default","description":"This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality with a reasonable\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n","permissions":["allow-open"]},"permissions":{"allow-execute":{"identifier":"allow-execute","description":"Enables the execute command without any pre-configured scope.","commands":{"allow":["execute"],"deny":[]}},"allow-kill":{"identifier":"allow-kill","description":"Enables the kill command without any pre-configured scope.","commands":{"allow":["kill"],"deny":[]}},"allow-open":{"identifier":"allow-open","description":"Enables the open command without any pre-configured scope.","commands":{"allow":["open"],"deny":[]}},"allow-spawn":{"identifier":"allow-spawn","description":"Enables the spawn command without any pre-configured scope.","commands":{"allow":["spawn"],"deny":[]}},"allow-stdin-write":{"identifier":"allow-stdin-write","description":"Enables the stdin_write command without any pre-configured scope.","commands":{"allow":["stdin_write"],"deny":[]}},"deny-execute":{"identifier":"deny-execute","description":"Denies the execute command without any pre-configured scope.","commands":{"allow":[],"deny":["execute"]}},"deny-kill":{"identifier":"deny-kill","description":"Denies the kill command without any pre-configured scope.","commands":{"allow":[],"deny":["kill"]}},"deny-open":{"identifier":"deny-open","description":"Denies the open command without any pre-configured scope.","commands":{"allow":[],"deny":["open"]}},"deny-spawn":{"identifier":"deny-spawn","description":"Denies the spawn command without any pre-configured scope.","commands":{"allow":[],"deny":["spawn"]}},"deny-stdin-write":{"identifier":"deny-stdin-write","description":"Denies the stdin_write command without any pre-configured scope.","commands":{"allow":[],"deny":["stdin_write"]}}},"permission_sets":{},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","anyOf":[{"additionalProperties":false,"properties":{"args":{"allOf":[{"$ref":"#/definitions/ShellScopeEntryAllowedArgs"}],"description":"The allowed arguments for the command execution."},"cmd":{"description":"The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.","type":"string"},"name":{"description":"The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.","type":"string"}},"required":["cmd","name"],"type":"object"},{"additionalProperties":false,"properties":{"args":{"allOf":[{"$ref":"#/definitions/ShellScopeEntryAllowedArgs"}],"description":"The allowed arguments for the command execution."},"name":{"description":"The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.","type":"string"},"sidecar":{"description":"If this command is a sidecar command.","type":"boolean"}},"required":["name","sidecar"],"type":"object"}],"definitions":{"ShellScopeEntryAllowedArg":{"anyOf":[{"description":"A non-configurable argument that is passed to the command in the order it was specified.","type":"string"},{"additionalProperties":false,"description":"A variable that is set while calling the command from the webview API.","properties":{"raw":{"default":false,"description":"Marks the validator as a raw regex, meaning the plugin should not make any modification at runtime.\n\nThis means the regex will not match on the entire string by default, which might be exploited if your regex allow unexpected input to be considered valid. When using this option, make sure your regex is correct.","type":"boolean"},"validator":{"description":"[regex] validator to require passed values to conform to an expected input.\n\nThis will require the argument value passed to this variable to match the `validator` regex before it will be executed.\n\nThe regex string is by default surrounded by `^...$` to match the full string. For example the `https?://\\w+` regex would be registered as `^https?://\\w+$`.\n\n[regex]: ","type":"string"}},"required":["validator"],"type":"object"}],"description":"A command argument allowed to be executed by the webview API."},"ShellScopeEntryAllowedArgs":{"anyOf":[{"description":"Use a simple boolean to allow all or disable all arguments to this command configuration.","type":"boolean"},{"description":"A specific set of [`ShellScopeEntryAllowedArg`] that are valid to call for the command configuration.","items":{"$ref":"#/definitions/ShellScopeEntryAllowedArg"},"type":"array"}],"description":"A set of command arguments allowed to be executed by the webview API.\n\nA value of `true` will allow any arguments to be passed to the command. `false` will disable all arguments. A list of [`ShellScopeEntryAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration."}},"description":"Shell scope entry.","title":"ShellScopeEntry"}}} \ No newline at end of file diff --git a/src-tauri/gen/schemas/android-schema.json b/src-tauri/gen/schemas/android-schema.json new file mode 100644 index 0000000..a04925e --- /dev/null +++ b/src-tauri/gen/schemas/android-schema.json @@ -0,0 +1,2875 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "CapabilityFile", + "description": "Capability formats accepted in a capability file.", + "anyOf": [ + { + "description": "A single capability.", + "allOf": [ + { + "$ref": "#/definitions/Capability" + } + ] + }, + { + "description": "A list of capabilities.", + "type": "array", + "items": { + "$ref": "#/definitions/Capability" + } + }, + { + "description": "A list of capabilities.", + "type": "object", + "required": [ + "capabilities" + ], + "properties": { + "capabilities": { + "description": "The list of capabilities.", + "type": "array", + "items": { + "$ref": "#/definitions/Capability" + } + } + } + } + ], + "definitions": { + "Capability": { + "description": "A grouping and boundary mechanism developers can use to isolate access to the IPC layer.\n\nIt controls application windows' and webviews' fine grained access to the Tauri core, application, or plugin commands. If a webview or its window is not matching any capability then it has no access to the IPC layer at all.\n\nThis can be done to create groups of windows, based on their required system access, which can reduce impact of frontend vulnerabilities in less privileged windows. Windows can be added to a capability by exact name (e.g. `main-window`) or glob patterns like `*` or `admin-*`. A Window can have none, one, or multiple associated capabilities.\n\n## Example\n\n```json { \"identifier\": \"main-user-files-write\", \"description\": \"This capability allows the `main` window on macOS and Windows access to `filesystem` write related commands and `dialog` commands to enable programmatic access to files selected by the user.\", \"windows\": [ \"main\" ], \"permissions\": [ \"core:default\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] }, ], \"platforms\": [\"macOS\",\"windows\"] } ```", + "type": "object", + "required": [ + "identifier", + "permissions" + ], + "properties": { + "identifier": { + "description": "Identifier of the capability.\n\n## Example\n\n`main-user-files-write`", + "type": "string" + }, + "description": { + "description": "Description of what the capability is intended to allow on associated windows.\n\nIt should contain a description of what the grouped permissions should allow.\n\n## Example\n\nThis capability allows the `main` window access to `filesystem` write related commands and `dialog` commands to enable programmatic access to files selected by the user.", + "default": "", + "type": "string" + }, + "remote": { + "description": "Configure remote URLs that can use the capability permissions.\n\nThis setting is optional and defaults to not being set, as our default use case is that the content is served from our local application.\n\n:::caution Make sure you understand the security implications of providing remote sources with local system access. :::\n\n## Example\n\n```json { \"urls\": [\"https://*.mydomain.dev\"] } ```", + "anyOf": [ + { + "$ref": "#/definitions/CapabilityRemote" + }, + { + "type": "null" + } + ] + }, + "local": { + "description": "Whether this capability is enabled for local app URLs or not. Defaults to `true`.", + "default": true, + "type": "boolean" + }, + "windows": { + "description": "List of windows that are affected by this capability. Can be a glob pattern.\n\nIf a window label matches any of the patterns in this list, the capability will be enabled on all the webviews of that window, regardless of the value of [`Self::webviews`].\n\nOn multiwebview windows, prefer specifying [`Self::webviews`] and omitting [`Self::windows`] for a fine grained access control.\n\n## Example\n\n`[\"main\"]`", + "type": "array", + "items": { + "type": "string" + } + }, + "webviews": { + "description": "List of webviews that are affected by this capability. Can be a glob pattern.\n\nThe capability will be enabled on all the webviews whose label matches any of the patterns in this list, regardless of whether the webview's window label matches a pattern in [`Self::windows`].\n\n## Example\n\n`[\"sub-webview-one\", \"sub-webview-two\"]`", + "type": "array", + "items": { + "type": "string" + } + }, + "permissions": { + "description": "List of permissions attached to this capability.\n\nMust include the plugin name as prefix in the form of `${plugin-name}:${permission-name}`. For commands directly implemented in the application itself only `${permission-name}` is required.\n\n## Example\n\n```json [ \"core:default\", \"shell:allow-open\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] } ] ```", + "type": "array", + "items": { + "$ref": "#/definitions/PermissionEntry" + }, + "uniqueItems": true + }, + "platforms": { + "description": "Limit which target platforms this capability applies to.\n\nBy default all platforms are targeted.\n\n## Example\n\n`[\"macOS\",\"windows\"]`", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Target" + } + } + } + }, + "CapabilityRemote": { + "description": "Configuration for remote URLs that are associated with the capability.", + "type": "object", + "required": [ + "urls" + ], + "properties": { + "urls": { + "description": "Remote domains this capability refers to using the [URLPattern standard](https://urlpattern.spec.whatwg.org/).\n\n## Examples\n\n- \"https://*.mydomain.dev\": allows subdomains of mydomain.dev - \"https://mydomain.dev/api/*\": allows any subpath of mydomain.dev/api", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "PermissionEntry": { + "description": "An entry for a permission value in a [`Capability`] can be either a raw permission [`Identifier`] or an object that references a permission and extends its scope.", + "anyOf": [ + { + "description": "Reference a permission or permission set by identifier.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + }, + { + "description": "Reference a permission or permission set by identifier and extends its scope.", + "type": "object", + "allOf": [ + { + "if": { + "properties": { + "identifier": { + "anyOf": [ + { + "description": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer\n#### This default permission set includes:\n\n- `allow-open-url`\n- `allow-reveal-item-in-dir`\n- `allow-default-urls`", + "type": "string", + "const": "opener:default", + "markdownDescription": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer\n#### This default permission set includes:\n\n- `allow-open-url`\n- `allow-reveal-item-in-dir`\n- `allow-default-urls`" + }, + { + "description": "This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application.", + "type": "string", + "const": "opener:allow-default-urls", + "markdownDescription": "This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application." + }, + { + "description": "Enables the open_path command without any pre-configured scope.", + "type": "string", + "const": "opener:allow-open-path", + "markdownDescription": "Enables the open_path command without any pre-configured scope." + }, + { + "description": "Enables the open_url command without any pre-configured scope.", + "type": "string", + "const": "opener:allow-open-url", + "markdownDescription": "Enables the open_url command without any pre-configured scope." + }, + { + "description": "Enables the reveal_item_in_dir command without any pre-configured scope.", + "type": "string", + "const": "opener:allow-reveal-item-in-dir", + "markdownDescription": "Enables the reveal_item_in_dir command without any pre-configured scope." + }, + { + "description": "Denies the open_path command without any pre-configured scope.", + "type": "string", + "const": "opener:deny-open-path", + "markdownDescription": "Denies the open_path command without any pre-configured scope." + }, + { + "description": "Denies the open_url command without any pre-configured scope.", + "type": "string", + "const": "opener:deny-open-url", + "markdownDescription": "Denies the open_url command without any pre-configured scope." + }, + { + "description": "Denies the reveal_item_in_dir command without any pre-configured scope.", + "type": "string", + "const": "opener:deny-reveal-item-in-dir", + "markdownDescription": "Denies the reveal_item_in_dir command without any pre-configured scope." + } + ] + } + } + }, + "then": { + "properties": { + "allow": { + "items": { + "title": "OpenerScopeEntry", + "description": "Opener scope entry.", + "anyOf": [ + { + "type": "object", + "required": [ + "url" + ], + "properties": { + "app": { + "description": "An application to open this url with, for example: firefox.", + "allOf": [ + { + "$ref": "#/definitions/Application" + } + ] + }, + "url": { + "description": "A URL that can be opened by the webview when using the Opener APIs.\n\nWildcards can be used following the UNIX glob pattern.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", + "type": "string" + } + } + }, + { + "type": "object", + "required": [ + "path" + ], + "properties": { + "app": { + "description": "An application to open this path with, for example: xdg-open.", + "allOf": [ + { + "$ref": "#/definitions/Application" + } + ] + }, + "path": { + "description": "A path that can be opened by the webview when using the Opener APIs.\n\nThe pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", + "type": "string" + } + } + } + ] + } + }, + "deny": { + "items": { + "title": "OpenerScopeEntry", + "description": "Opener scope entry.", + "anyOf": [ + { + "type": "object", + "required": [ + "url" + ], + "properties": { + "app": { + "description": "An application to open this url with, for example: firefox.", + "allOf": [ + { + "$ref": "#/definitions/Application" + } + ] + }, + "url": { + "description": "A URL that can be opened by the webview when using the Opener APIs.\n\nWildcards can be used following the UNIX glob pattern.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", + "type": "string" + } + } + }, + { + "type": "object", + "required": [ + "path" + ], + "properties": { + "app": { + "description": "An application to open this path with, for example: xdg-open.", + "allOf": [ + { + "$ref": "#/definitions/Application" + } + ] + }, + "path": { + "description": "A path that can be opened by the webview when using the Opener APIs.\n\nThe pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", + "type": "string" + } + } + } + ] + } + } + } + }, + "properties": { + "identifier": { + "description": "Identifier of the permission or permission set.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + } + } + }, + { + "if": { + "properties": { + "identifier": { + "anyOf": [ + { + "description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality with a reasonable\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`", + "type": "string", + "const": "shell:default", + "markdownDescription": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality with a reasonable\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`" + }, + { + "description": "Enables the execute command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-execute", + "markdownDescription": "Enables the execute command without any pre-configured scope." + }, + { + "description": "Enables the kill command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-kill", + "markdownDescription": "Enables the kill command without any pre-configured scope." + }, + { + "description": "Enables the open command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-open", + "markdownDescription": "Enables the open command without any pre-configured scope." + }, + { + "description": "Enables the spawn command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-spawn", + "markdownDescription": "Enables the spawn command without any pre-configured scope." + }, + { + "description": "Enables the stdin_write command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-stdin-write", + "markdownDescription": "Enables the stdin_write command without any pre-configured scope." + }, + { + "description": "Denies the execute command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-execute", + "markdownDescription": "Denies the execute command without any pre-configured scope." + }, + { + "description": "Denies the kill command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-kill", + "markdownDescription": "Denies the kill command without any pre-configured scope." + }, + { + "description": "Denies the open command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-open", + "markdownDescription": "Denies the open command without any pre-configured scope." + }, + { + "description": "Denies the spawn command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-spawn", + "markdownDescription": "Denies the spawn command without any pre-configured scope." + }, + { + "description": "Denies the stdin_write command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-stdin-write", + "markdownDescription": "Denies the stdin_write command without any pre-configured scope." + } + ] + } + } + }, + "then": { + "properties": { + "allow": { + "items": { + "title": "ShellScopeEntry", + "description": "Shell scope entry.", + "anyOf": [ + { + "type": "object", + "required": [ + "cmd", + "name" + ], + "properties": { + "args": { + "description": "The allowed arguments for the command execution.", + "allOf": [ + { + "$ref": "#/definitions/ShellScopeEntryAllowedArgs" + } + ] + }, + "cmd": { + "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", + "type": "string" + }, + "name": { + "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", + "type": "string" + } + }, + "additionalProperties": false + }, + { + "type": "object", + "required": [ + "name", + "sidecar" + ], + "properties": { + "args": { + "description": "The allowed arguments for the command execution.", + "allOf": [ + { + "$ref": "#/definitions/ShellScopeEntryAllowedArgs" + } + ] + }, + "name": { + "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", + "type": "string" + }, + "sidecar": { + "description": "If this command is a sidecar command.", + "type": "boolean" + } + }, + "additionalProperties": false + } + ] + } + }, + "deny": { + "items": { + "title": "ShellScopeEntry", + "description": "Shell scope entry.", + "anyOf": [ + { + "type": "object", + "required": [ + "cmd", + "name" + ], + "properties": { + "args": { + "description": "The allowed arguments for the command execution.", + "allOf": [ + { + "$ref": "#/definitions/ShellScopeEntryAllowedArgs" + } + ] + }, + "cmd": { + "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", + "type": "string" + }, + "name": { + "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", + "type": "string" + } + }, + "additionalProperties": false + }, + { + "type": "object", + "required": [ + "name", + "sidecar" + ], + "properties": { + "args": { + "description": "The allowed arguments for the command execution.", + "allOf": [ + { + "$ref": "#/definitions/ShellScopeEntryAllowedArgs" + } + ] + }, + "name": { + "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", + "type": "string" + }, + "sidecar": { + "description": "If this command is a sidecar command.", + "type": "boolean" + } + }, + "additionalProperties": false + } + ] + } + } + } + }, + "properties": { + "identifier": { + "description": "Identifier of the permission or permission set.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + } + } + }, + { + "properties": { + "identifier": { + "description": "Identifier of the permission or permission set.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + }, + "allow": { + "description": "Data that defines what is allowed by the scope.", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Value" + } + }, + "deny": { + "description": "Data that defines what is denied by the scope. This should be prioritized by validation logic.", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Value" + } + } + } + } + ], + "required": [ + "identifier" + ] + } + ] + }, + "Identifier": { + "description": "Permission identifier", + "oneOf": [ + { + "description": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`", + "type": "string", + "const": "core:default", + "markdownDescription": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`" + }, + { + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`\n- `allow-supports-multiple-windows`", + "type": "string", + "const": "core:app:default", + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`\n- `allow-supports-multiple-windows`" + }, + { + "description": "Enables the app_hide command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-app-hide", + "markdownDescription": "Enables the app_hide command without any pre-configured scope." + }, + { + "description": "Enables the app_show command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-app-show", + "markdownDescription": "Enables the app_show command without any pre-configured scope." + }, + { + "description": "Enables the bundle_type command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-bundle-type", + "markdownDescription": "Enables the bundle_type command without any pre-configured scope." + }, + { + "description": "Enables the default_window_icon command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-default-window-icon", + "markdownDescription": "Enables the default_window_icon command without any pre-configured scope." + }, + { + "description": "Enables the fetch_data_store_identifiers command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-fetch-data-store-identifiers", + "markdownDescription": "Enables the fetch_data_store_identifiers command without any pre-configured scope." + }, + { + "description": "Enables the identifier command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-identifier", + "markdownDescription": "Enables the identifier command without any pre-configured scope." + }, + { + "description": "Enables the name command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-name", + "markdownDescription": "Enables the name command without any pre-configured scope." + }, + { + "description": "Enables the register_listener command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-register-listener", + "markdownDescription": "Enables the register_listener command without any pre-configured scope." + }, + { + "description": "Enables the remove_data_store command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-remove-data-store", + "markdownDescription": "Enables the remove_data_store command without any pre-configured scope." + }, + { + "description": "Enables the remove_listener command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-remove-listener", + "markdownDescription": "Enables the remove_listener command without any pre-configured scope." + }, + { + "description": "Enables the set_app_theme command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-set-app-theme", + "markdownDescription": "Enables the set_app_theme command without any pre-configured scope." + }, + { + "description": "Enables the set_dock_visibility command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-set-dock-visibility", + "markdownDescription": "Enables the set_dock_visibility command without any pre-configured scope." + }, + { + "description": "Enables the supports_multiple_windows command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-supports-multiple-windows", + "markdownDescription": "Enables the supports_multiple_windows command without any pre-configured scope." + }, + { + "description": "Enables the tauri_version command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-tauri-version", + "markdownDescription": "Enables the tauri_version command without any pre-configured scope." + }, + { + "description": "Enables the version command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-version", + "markdownDescription": "Enables the version command without any pre-configured scope." + }, + { + "description": "Denies the app_hide command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-app-hide", + "markdownDescription": "Denies the app_hide command without any pre-configured scope." + }, + { + "description": "Denies the app_show command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-app-show", + "markdownDescription": "Denies the app_show command without any pre-configured scope." + }, + { + "description": "Denies the bundle_type command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-bundle-type", + "markdownDescription": "Denies the bundle_type command without any pre-configured scope." + }, + { + "description": "Denies the default_window_icon command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-default-window-icon", + "markdownDescription": "Denies the default_window_icon command without any pre-configured scope." + }, + { + "description": "Denies the fetch_data_store_identifiers command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-fetch-data-store-identifiers", + "markdownDescription": "Denies the fetch_data_store_identifiers command without any pre-configured scope." + }, + { + "description": "Denies the identifier command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-identifier", + "markdownDescription": "Denies the identifier command without any pre-configured scope." + }, + { + "description": "Denies the name command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-name", + "markdownDescription": "Denies the name command without any pre-configured scope." + }, + { + "description": "Denies the register_listener command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-register-listener", + "markdownDescription": "Denies the register_listener command without any pre-configured scope." + }, + { + "description": "Denies the remove_data_store command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-remove-data-store", + "markdownDescription": "Denies the remove_data_store command without any pre-configured scope." + }, + { + "description": "Denies the remove_listener command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-remove-listener", + "markdownDescription": "Denies the remove_listener command without any pre-configured scope." + }, + { + "description": "Denies the set_app_theme command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-set-app-theme", + "markdownDescription": "Denies the set_app_theme command without any pre-configured scope." + }, + { + "description": "Denies the set_dock_visibility command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-set-dock-visibility", + "markdownDescription": "Denies the set_dock_visibility command without any pre-configured scope." + }, + { + "description": "Denies the supports_multiple_windows command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-supports-multiple-windows", + "markdownDescription": "Denies the supports_multiple_windows command without any pre-configured scope." + }, + { + "description": "Denies the tauri_version command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-tauri-version", + "markdownDescription": "Denies the tauri_version command without any pre-configured scope." + }, + { + "description": "Denies the version command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-version", + "markdownDescription": "Denies the version command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-listen`\n- `allow-unlisten`\n- `allow-emit`\n- `allow-emit-to`", + "type": "string", + "const": "core:event:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-listen`\n- `allow-unlisten`\n- `allow-emit`\n- `allow-emit-to`" + }, + { + "description": "Enables the emit command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-emit", + "markdownDescription": "Enables the emit command without any pre-configured scope." + }, + { + "description": "Enables the emit_to command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-emit-to", + "markdownDescription": "Enables the emit_to command without any pre-configured scope." + }, + { + "description": "Enables the listen command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-listen", + "markdownDescription": "Enables the listen command without any pre-configured scope." + }, + { + "description": "Enables the unlisten command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-unlisten", + "markdownDescription": "Enables the unlisten command without any pre-configured scope." + }, + { + "description": "Denies the emit command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-emit", + "markdownDescription": "Denies the emit command without any pre-configured scope." + }, + { + "description": "Denies the emit_to command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-emit-to", + "markdownDescription": "Denies the emit_to command without any pre-configured scope." + }, + { + "description": "Denies the listen command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-listen", + "markdownDescription": "Denies the listen command without any pre-configured scope." + }, + { + "description": "Denies the unlisten command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-unlisten", + "markdownDescription": "Denies the unlisten command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-from-bytes`\n- `allow-from-path`\n- `allow-rgba`\n- `allow-size`", + "type": "string", + "const": "core:image:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-from-bytes`\n- `allow-from-path`\n- `allow-rgba`\n- `allow-size`" + }, + { + "description": "Enables the from_bytes command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-from-bytes", + "markdownDescription": "Enables the from_bytes command without any pre-configured scope." + }, + { + "description": "Enables the from_path command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-from-path", + "markdownDescription": "Enables the from_path command without any pre-configured scope." + }, + { + "description": "Enables the new command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-new", + "markdownDescription": "Enables the new command without any pre-configured scope." + }, + { + "description": "Enables the rgba command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-rgba", + "markdownDescription": "Enables the rgba command without any pre-configured scope." + }, + { + "description": "Enables the size command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-size", + "markdownDescription": "Enables the size command without any pre-configured scope." + }, + { + "description": "Denies the from_bytes command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-from-bytes", + "markdownDescription": "Denies the from_bytes command without any pre-configured scope." + }, + { + "description": "Denies the from_path command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-from-path", + "markdownDescription": "Denies the from_path command without any pre-configured scope." + }, + { + "description": "Denies the new command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-new", + "markdownDescription": "Denies the new command without any pre-configured scope." + }, + { + "description": "Denies the rgba command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-rgba", + "markdownDescription": "Denies the rgba command without any pre-configured scope." + }, + { + "description": "Denies the size command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-size", + "markdownDescription": "Denies the size command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-append`\n- `allow-prepend`\n- `allow-insert`\n- `allow-remove`\n- `allow-remove-at`\n- `allow-items`\n- `allow-get`\n- `allow-popup`\n- `allow-create-default`\n- `allow-set-as-app-menu`\n- `allow-set-as-window-menu`\n- `allow-text`\n- `allow-set-text`\n- `allow-is-enabled`\n- `allow-set-enabled`\n- `allow-set-accelerator`\n- `allow-set-as-windows-menu-for-nsapp`\n- `allow-set-as-help-menu-for-nsapp`\n- `allow-is-checked`\n- `allow-set-checked`\n- `allow-set-icon`", + "type": "string", + "const": "core:menu:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-append`\n- `allow-prepend`\n- `allow-insert`\n- `allow-remove`\n- `allow-remove-at`\n- `allow-items`\n- `allow-get`\n- `allow-popup`\n- `allow-create-default`\n- `allow-set-as-app-menu`\n- `allow-set-as-window-menu`\n- `allow-text`\n- `allow-set-text`\n- `allow-is-enabled`\n- `allow-set-enabled`\n- `allow-set-accelerator`\n- `allow-set-as-windows-menu-for-nsapp`\n- `allow-set-as-help-menu-for-nsapp`\n- `allow-is-checked`\n- `allow-set-checked`\n- `allow-set-icon`" + }, + { + "description": "Enables the append command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-append", + "markdownDescription": "Enables the append command without any pre-configured scope." + }, + { + "description": "Enables the create_default command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-create-default", + "markdownDescription": "Enables the create_default command without any pre-configured scope." + }, + { + "description": "Enables the get command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-get", + "markdownDescription": "Enables the get command without any pre-configured scope." + }, + { + "description": "Enables the insert command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-insert", + "markdownDescription": "Enables the insert command without any pre-configured scope." + }, + { + "description": "Enables the is_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-is-checked", + "markdownDescription": "Enables the is_checked command without any pre-configured scope." + }, + { + "description": "Enables the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-is-enabled", + "markdownDescription": "Enables the is_enabled command without any pre-configured scope." + }, + { + "description": "Enables the items command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-items", + "markdownDescription": "Enables the items command without any pre-configured scope." + }, + { + "description": "Enables the new command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-new", + "markdownDescription": "Enables the new command without any pre-configured scope." + }, + { + "description": "Enables the popup command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-popup", + "markdownDescription": "Enables the popup command without any pre-configured scope." + }, + { + "description": "Enables the prepend command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-prepend", + "markdownDescription": "Enables the prepend command without any pre-configured scope." + }, + { + "description": "Enables the remove command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-remove", + "markdownDescription": "Enables the remove command without any pre-configured scope." + }, + { + "description": "Enables the remove_at command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-remove-at", + "markdownDescription": "Enables the remove_at command without any pre-configured scope." + }, + { + "description": "Enables the set_accelerator command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-accelerator", + "markdownDescription": "Enables the set_accelerator command without any pre-configured scope." + }, + { + "description": "Enables the set_as_app_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-app-menu", + "markdownDescription": "Enables the set_as_app_menu command without any pre-configured scope." + }, + { + "description": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-help-menu-for-nsapp", + "markdownDescription": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope." + }, + { + "description": "Enables the set_as_window_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-window-menu", + "markdownDescription": "Enables the set_as_window_menu command without any pre-configured scope." + }, + { + "description": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-windows-menu-for-nsapp", + "markdownDescription": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope." + }, + { + "description": "Enables the set_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-checked", + "markdownDescription": "Enables the set_checked command without any pre-configured scope." + }, + { + "description": "Enables the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-enabled", + "markdownDescription": "Enables the set_enabled command without any pre-configured scope." + }, + { + "description": "Enables the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-icon", + "markdownDescription": "Enables the set_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-text", + "markdownDescription": "Enables the set_text command without any pre-configured scope." + }, + { + "description": "Enables the text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-text", + "markdownDescription": "Enables the text command without any pre-configured scope." + }, + { + "description": "Denies the append command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-append", + "markdownDescription": "Denies the append command without any pre-configured scope." + }, + { + "description": "Denies the create_default command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-create-default", + "markdownDescription": "Denies the create_default command without any pre-configured scope." + }, + { + "description": "Denies the get command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-get", + "markdownDescription": "Denies the get command without any pre-configured scope." + }, + { + "description": "Denies the insert command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-insert", + "markdownDescription": "Denies the insert command without any pre-configured scope." + }, + { + "description": "Denies the is_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-is-checked", + "markdownDescription": "Denies the is_checked command without any pre-configured scope." + }, + { + "description": "Denies the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-is-enabled", + "markdownDescription": "Denies the is_enabled command without any pre-configured scope." + }, + { + "description": "Denies the items command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-items", + "markdownDescription": "Denies the items command without any pre-configured scope." + }, + { + "description": "Denies the new command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-new", + "markdownDescription": "Denies the new command without any pre-configured scope." + }, + { + "description": "Denies the popup command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-popup", + "markdownDescription": "Denies the popup command without any pre-configured scope." + }, + { + "description": "Denies the prepend command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-prepend", + "markdownDescription": "Denies the prepend command without any pre-configured scope." + }, + { + "description": "Denies the remove command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-remove", + "markdownDescription": "Denies the remove command without any pre-configured scope." + }, + { + "description": "Denies the remove_at command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-remove-at", + "markdownDescription": "Denies the remove_at command without any pre-configured scope." + }, + { + "description": "Denies the set_accelerator command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-accelerator", + "markdownDescription": "Denies the set_accelerator command without any pre-configured scope." + }, + { + "description": "Denies the set_as_app_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-app-menu", + "markdownDescription": "Denies the set_as_app_menu command without any pre-configured scope." + }, + { + "description": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-help-menu-for-nsapp", + "markdownDescription": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope." + }, + { + "description": "Denies the set_as_window_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-window-menu", + "markdownDescription": "Denies the set_as_window_menu command without any pre-configured scope." + }, + { + "description": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-windows-menu-for-nsapp", + "markdownDescription": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope." + }, + { + "description": "Denies the set_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-checked", + "markdownDescription": "Denies the set_checked command without any pre-configured scope." + }, + { + "description": "Denies the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-enabled", + "markdownDescription": "Denies the set_enabled command without any pre-configured scope." + }, + { + "description": "Denies the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-icon", + "markdownDescription": "Denies the set_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-text", + "markdownDescription": "Denies the set_text command without any pre-configured scope." + }, + { + "description": "Denies the text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-text", + "markdownDescription": "Denies the text command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-resolve-directory`\n- `allow-resolve`\n- `allow-normalize`\n- `allow-join`\n- `allow-dirname`\n- `allow-extname`\n- `allow-basename`\n- `allow-is-absolute`", + "type": "string", + "const": "core:path:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-resolve-directory`\n- `allow-resolve`\n- `allow-normalize`\n- `allow-join`\n- `allow-dirname`\n- `allow-extname`\n- `allow-basename`\n- `allow-is-absolute`" + }, + { + "description": "Enables the basename command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-basename", + "markdownDescription": "Enables the basename command without any pre-configured scope." + }, + { + "description": "Enables the dirname command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-dirname", + "markdownDescription": "Enables the dirname command without any pre-configured scope." + }, + { + "description": "Enables the extname command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-extname", + "markdownDescription": "Enables the extname command without any pre-configured scope." + }, + { + "description": "Enables the is_absolute command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-is-absolute", + "markdownDescription": "Enables the is_absolute command without any pre-configured scope." + }, + { + "description": "Enables the join command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-join", + "markdownDescription": "Enables the join command without any pre-configured scope." + }, + { + "description": "Enables the normalize command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-normalize", + "markdownDescription": "Enables the normalize command without any pre-configured scope." + }, + { + "description": "Enables the resolve command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-resolve", + "markdownDescription": "Enables the resolve command without any pre-configured scope." + }, + { + "description": "Enables the resolve_directory command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-resolve-directory", + "markdownDescription": "Enables the resolve_directory command without any pre-configured scope." + }, + { + "description": "Denies the basename command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-basename", + "markdownDescription": "Denies the basename command without any pre-configured scope." + }, + { + "description": "Denies the dirname command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-dirname", + "markdownDescription": "Denies the dirname command without any pre-configured scope." + }, + { + "description": "Denies the extname command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-extname", + "markdownDescription": "Denies the extname command without any pre-configured scope." + }, + { + "description": "Denies the is_absolute command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-is-absolute", + "markdownDescription": "Denies the is_absolute command without any pre-configured scope." + }, + { + "description": "Denies the join command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-join", + "markdownDescription": "Denies the join command without any pre-configured scope." + }, + { + "description": "Denies the normalize command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-normalize", + "markdownDescription": "Denies the normalize command without any pre-configured scope." + }, + { + "description": "Denies the resolve command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-resolve", + "markdownDescription": "Denies the resolve command without any pre-configured scope." + }, + { + "description": "Denies the resolve_directory command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-resolve-directory", + "markdownDescription": "Denies the resolve_directory command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-close`", + "type": "string", + "const": "core:resources:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-close`" + }, + { + "description": "Enables the close command without any pre-configured scope.", + "type": "string", + "const": "core:resources:allow-close", + "markdownDescription": "Enables the close command without any pre-configured scope." + }, + { + "description": "Denies the close command without any pre-configured scope.", + "type": "string", + "const": "core:resources:deny-close", + "markdownDescription": "Denies the close command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-get-by-id`\n- `allow-remove-by-id`\n- `allow-set-icon`\n- `allow-set-menu`\n- `allow-set-tooltip`\n- `allow-set-title`\n- `allow-set-visible`\n- `allow-set-temp-dir-path`\n- `allow-set-icon-as-template`\n- `allow-set-icon-with-as-template`\n- `allow-set-show-menu-on-left-click`", + "type": "string", + "const": "core:tray:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-get-by-id`\n- `allow-remove-by-id`\n- `allow-set-icon`\n- `allow-set-menu`\n- `allow-set-tooltip`\n- `allow-set-title`\n- `allow-set-visible`\n- `allow-set-temp-dir-path`\n- `allow-set-icon-as-template`\n- `allow-set-icon-with-as-template`\n- `allow-set-show-menu-on-left-click`" + }, + { + "description": "Enables the get_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-get-by-id", + "markdownDescription": "Enables the get_by_id command without any pre-configured scope." + }, + { + "description": "Enables the new command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-new", + "markdownDescription": "Enables the new command without any pre-configured scope." + }, + { + "description": "Enables the remove_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-remove-by-id", + "markdownDescription": "Enables the remove_by_id command without any pre-configured scope." + }, + { + "description": "Enables the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-icon", + "markdownDescription": "Enables the set_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_icon_as_template command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-icon-as-template", + "markdownDescription": "Enables the set_icon_as_template command without any pre-configured scope." + }, + { + "description": "Enables the set_icon_with_as_template command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-icon-with-as-template", + "markdownDescription": "Enables the set_icon_with_as_template command without any pre-configured scope." + }, + { + "description": "Enables the set_menu command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-menu", + "markdownDescription": "Enables the set_menu command without any pre-configured scope." + }, + { + "description": "Enables the set_show_menu_on_left_click command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-show-menu-on-left-click", + "markdownDescription": "Enables the set_show_menu_on_left_click command without any pre-configured scope." + }, + { + "description": "Enables the set_temp_dir_path command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-temp-dir-path", + "markdownDescription": "Enables the set_temp_dir_path command without any pre-configured scope." + }, + { + "description": "Enables the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-title", + "markdownDescription": "Enables the set_title command without any pre-configured scope." + }, + { + "description": "Enables the set_tooltip command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-tooltip", + "markdownDescription": "Enables the set_tooltip command without any pre-configured scope." + }, + { + "description": "Enables the set_visible command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-visible", + "markdownDescription": "Enables the set_visible command without any pre-configured scope." + }, + { + "description": "Denies the get_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-get-by-id", + "markdownDescription": "Denies the get_by_id command without any pre-configured scope." + }, + { + "description": "Denies the new command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-new", + "markdownDescription": "Denies the new command without any pre-configured scope." + }, + { + "description": "Denies the remove_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-remove-by-id", + "markdownDescription": "Denies the remove_by_id command without any pre-configured scope." + }, + { + "description": "Denies the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-icon", + "markdownDescription": "Denies the set_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_icon_as_template command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-icon-as-template", + "markdownDescription": "Denies the set_icon_as_template command without any pre-configured scope." + }, + { + "description": "Denies the set_icon_with_as_template command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-icon-with-as-template", + "markdownDescription": "Denies the set_icon_with_as_template command without any pre-configured scope." + }, + { + "description": "Denies the set_menu command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-menu", + "markdownDescription": "Denies the set_menu command without any pre-configured scope." + }, + { + "description": "Denies the set_show_menu_on_left_click command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-show-menu-on-left-click", + "markdownDescription": "Denies the set_show_menu_on_left_click command without any pre-configured scope." + }, + { + "description": "Denies the set_temp_dir_path command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-temp-dir-path", + "markdownDescription": "Denies the set_temp_dir_path command without any pre-configured scope." + }, + { + "description": "Denies the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-title", + "markdownDescription": "Denies the set_title command without any pre-configured scope." + }, + { + "description": "Denies the set_tooltip command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-tooltip", + "markdownDescription": "Denies the set_tooltip command without any pre-configured scope." + }, + { + "description": "Denies the set_visible command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-visible", + "markdownDescription": "Denies the set_visible command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-webviews`\n- `allow-webview-position`\n- `allow-webview-size`\n- `allow-internal-toggle-devtools`", + "type": "string", + "const": "core:webview:default", + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-webviews`\n- `allow-webview-position`\n- `allow-webview-size`\n- `allow-internal-toggle-devtools`" + }, + { + "description": "Enables the clear_all_browsing_data command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-clear-all-browsing-data", + "markdownDescription": "Enables the clear_all_browsing_data command without any pre-configured scope." + }, + { + "description": "Enables the create_webview command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-create-webview", + "markdownDescription": "Enables the create_webview command without any pre-configured scope." + }, + { + "description": "Enables the create_webview_window command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-create-webview-window", + "markdownDescription": "Enables the create_webview_window command without any pre-configured scope." + }, + { + "description": "Enables the get_all_webviews command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-get-all-webviews", + "markdownDescription": "Enables the get_all_webviews command without any pre-configured scope." + }, + { + "description": "Enables the internal_toggle_devtools command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-internal-toggle-devtools", + "markdownDescription": "Enables the internal_toggle_devtools command without any pre-configured scope." + }, + { + "description": "Enables the print command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-print", + "markdownDescription": "Enables the print command without any pre-configured scope." + }, + { + "description": "Enables the reparent command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-reparent", + "markdownDescription": "Enables the reparent command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_auto_resize command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-auto-resize", + "markdownDescription": "Enables the set_webview_auto_resize command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-background-color", + "markdownDescription": "Enables the set_webview_background_color command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_focus command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-focus", + "markdownDescription": "Enables the set_webview_focus command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-position", + "markdownDescription": "Enables the set_webview_position command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-size", + "markdownDescription": "Enables the set_webview_size command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_zoom command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-zoom", + "markdownDescription": "Enables the set_webview_zoom command without any pre-configured scope." + }, + { + "description": "Enables the webview_close command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-close", + "markdownDescription": "Enables the webview_close command without any pre-configured scope." + }, + { + "description": "Enables the webview_hide command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-hide", + "markdownDescription": "Enables the webview_hide command without any pre-configured scope." + }, + { + "description": "Enables the webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-position", + "markdownDescription": "Enables the webview_position command without any pre-configured scope." + }, + { + "description": "Enables the webview_show command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-show", + "markdownDescription": "Enables the webview_show command without any pre-configured scope." + }, + { + "description": "Enables the webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-size", + "markdownDescription": "Enables the webview_size command without any pre-configured scope." + }, + { + "description": "Denies the clear_all_browsing_data command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-clear-all-browsing-data", + "markdownDescription": "Denies the clear_all_browsing_data command without any pre-configured scope." + }, + { + "description": "Denies the create_webview command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-create-webview", + "markdownDescription": "Denies the create_webview command without any pre-configured scope." + }, + { + "description": "Denies the create_webview_window command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-create-webview-window", + "markdownDescription": "Denies the create_webview_window command without any pre-configured scope." + }, + { + "description": "Denies the get_all_webviews command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-get-all-webviews", + "markdownDescription": "Denies the get_all_webviews command without any pre-configured scope." + }, + { + "description": "Denies the internal_toggle_devtools command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-internal-toggle-devtools", + "markdownDescription": "Denies the internal_toggle_devtools command without any pre-configured scope." + }, + { + "description": "Denies the print command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-print", + "markdownDescription": "Denies the print command without any pre-configured scope." + }, + { + "description": "Denies the reparent command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-reparent", + "markdownDescription": "Denies the reparent command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_auto_resize command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-auto-resize", + "markdownDescription": "Denies the set_webview_auto_resize command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-background-color", + "markdownDescription": "Denies the set_webview_background_color command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_focus command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-focus", + "markdownDescription": "Denies the set_webview_focus command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-position", + "markdownDescription": "Denies the set_webview_position command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-size", + "markdownDescription": "Denies the set_webview_size command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_zoom command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-zoom", + "markdownDescription": "Denies the set_webview_zoom command without any pre-configured scope." + }, + { + "description": "Denies the webview_close command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-close", + "markdownDescription": "Denies the webview_close command without any pre-configured scope." + }, + { + "description": "Denies the webview_hide command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-hide", + "markdownDescription": "Denies the webview_hide command without any pre-configured scope." + }, + { + "description": "Denies the webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-position", + "markdownDescription": "Denies the webview_position command without any pre-configured scope." + }, + { + "description": "Denies the webview_show command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-show", + "markdownDescription": "Denies the webview_show command without any pre-configured scope." + }, + { + "description": "Denies the webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-size", + "markdownDescription": "Denies the webview_size command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-windows`\n- `allow-scale-factor`\n- `allow-inner-position`\n- `allow-outer-position`\n- `allow-inner-size`\n- `allow-outer-size`\n- `allow-is-fullscreen`\n- `allow-is-minimized`\n- `allow-is-maximized`\n- `allow-is-focused`\n- `allow-is-decorated`\n- `allow-is-resizable`\n- `allow-is-maximizable`\n- `allow-is-minimizable`\n- `allow-is-closable`\n- `allow-is-visible`\n- `allow-is-enabled`\n- `allow-title`\n- `allow-current-monitor`\n- `allow-primary-monitor`\n- `allow-monitor-from-point`\n- `allow-available-monitors`\n- `allow-cursor-position`\n- `allow-theme`\n- `allow-is-always-on-top`\n- `allow-activity-name`\n- `allow-scene-identifier`\n- `allow-internal-toggle-maximize`", + "type": "string", + "const": "core:window:default", + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-windows`\n- `allow-scale-factor`\n- `allow-inner-position`\n- `allow-outer-position`\n- `allow-inner-size`\n- `allow-outer-size`\n- `allow-is-fullscreen`\n- `allow-is-minimized`\n- `allow-is-maximized`\n- `allow-is-focused`\n- `allow-is-decorated`\n- `allow-is-resizable`\n- `allow-is-maximizable`\n- `allow-is-minimizable`\n- `allow-is-closable`\n- `allow-is-visible`\n- `allow-is-enabled`\n- `allow-title`\n- `allow-current-monitor`\n- `allow-primary-monitor`\n- `allow-monitor-from-point`\n- `allow-available-monitors`\n- `allow-cursor-position`\n- `allow-theme`\n- `allow-is-always-on-top`\n- `allow-activity-name`\n- `allow-scene-identifier`\n- `allow-internal-toggle-maximize`" + }, + { + "description": "Enables the activity_name command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-activity-name", + "markdownDescription": "Enables the activity_name command without any pre-configured scope." + }, + { + "description": "Enables the available_monitors command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-available-monitors", + "markdownDescription": "Enables the available_monitors command without any pre-configured scope." + }, + { + "description": "Enables the center command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-center", + "markdownDescription": "Enables the center command without any pre-configured scope." + }, + { + "description": "Enables the close command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-close", + "markdownDescription": "Enables the close command without any pre-configured scope." + }, + { + "description": "Enables the create command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-create", + "markdownDescription": "Enables the create command without any pre-configured scope." + }, + { + "description": "Enables the current_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-current-monitor", + "markdownDescription": "Enables the current_monitor command without any pre-configured scope." + }, + { + "description": "Enables the cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-cursor-position", + "markdownDescription": "Enables the cursor_position command without any pre-configured scope." + }, + { + "description": "Enables the destroy command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-destroy", + "markdownDescription": "Enables the destroy command without any pre-configured scope." + }, + { + "description": "Enables the get_all_windows command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-get-all-windows", + "markdownDescription": "Enables the get_all_windows command without any pre-configured scope." + }, + { + "description": "Enables the hide command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-hide", + "markdownDescription": "Enables the hide command without any pre-configured scope." + }, + { + "description": "Enables the inner_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-inner-position", + "markdownDescription": "Enables the inner_position command without any pre-configured scope." + }, + { + "description": "Enables the inner_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-inner-size", + "markdownDescription": "Enables the inner_size command without any pre-configured scope." + }, + { + "description": "Enables the internal_toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-internal-toggle-maximize", + "markdownDescription": "Enables the internal_toggle_maximize command without any pre-configured scope." + }, + { + "description": "Enables the is_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-always-on-top", + "markdownDescription": "Enables the is_always_on_top command without any pre-configured scope." + }, + { + "description": "Enables the is_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-closable", + "markdownDescription": "Enables the is_closable command without any pre-configured scope." + }, + { + "description": "Enables the is_decorated command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-decorated", + "markdownDescription": "Enables the is_decorated command without any pre-configured scope." + }, + { + "description": "Enables the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-enabled", + "markdownDescription": "Enables the is_enabled command without any pre-configured scope." + }, + { + "description": "Enables the is_focused command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-focused", + "markdownDescription": "Enables the is_focused command without any pre-configured scope." + }, + { + "description": "Enables the is_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-fullscreen", + "markdownDescription": "Enables the is_fullscreen command without any pre-configured scope." + }, + { + "description": "Enables the is_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-maximizable", + "markdownDescription": "Enables the is_maximizable command without any pre-configured scope." + }, + { + "description": "Enables the is_maximized command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-maximized", + "markdownDescription": "Enables the is_maximized command without any pre-configured scope." + }, + { + "description": "Enables the is_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-minimizable", + "markdownDescription": "Enables the is_minimizable command without any pre-configured scope." + }, + { + "description": "Enables the is_minimized command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-minimized", + "markdownDescription": "Enables the is_minimized command without any pre-configured scope." + }, + { + "description": "Enables the is_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-resizable", + "markdownDescription": "Enables the is_resizable command without any pre-configured scope." + }, + { + "description": "Enables the is_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-visible", + "markdownDescription": "Enables the is_visible command without any pre-configured scope." + }, + { + "description": "Enables the maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-maximize", + "markdownDescription": "Enables the maximize command without any pre-configured scope." + }, + { + "description": "Enables the minimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-minimize", + "markdownDescription": "Enables the minimize command without any pre-configured scope." + }, + { + "description": "Enables the monitor_from_point command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-monitor-from-point", + "markdownDescription": "Enables the monitor_from_point command without any pre-configured scope." + }, + { + "description": "Enables the outer_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-outer-position", + "markdownDescription": "Enables the outer_position command without any pre-configured scope." + }, + { + "description": "Enables the outer_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-outer-size", + "markdownDescription": "Enables the outer_size command without any pre-configured scope." + }, + { + "description": "Enables the primary_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-primary-monitor", + "markdownDescription": "Enables the primary_monitor command without any pre-configured scope." + }, + { + "description": "Enables the request_user_attention command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-request-user-attention", + "markdownDescription": "Enables the request_user_attention command without any pre-configured scope." + }, + { + "description": "Enables the scale_factor command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-scale-factor", + "markdownDescription": "Enables the scale_factor command without any pre-configured scope." + }, + { + "description": "Enables the scene_identifier command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-scene-identifier", + "markdownDescription": "Enables the scene_identifier command without any pre-configured scope." + }, + { + "description": "Enables the set_always_on_bottom command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-always-on-bottom", + "markdownDescription": "Enables the set_always_on_bottom command without any pre-configured scope." + }, + { + "description": "Enables the set_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-always-on-top", + "markdownDescription": "Enables the set_always_on_top command without any pre-configured scope." + }, + { + "description": "Enables the set_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-background-color", + "markdownDescription": "Enables the set_background_color command without any pre-configured scope." + }, + { + "description": "Enables the set_badge_count command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-badge-count", + "markdownDescription": "Enables the set_badge_count command without any pre-configured scope." + }, + { + "description": "Enables the set_badge_label command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-badge-label", + "markdownDescription": "Enables the set_badge_label command without any pre-configured scope." + }, + { + "description": "Enables the set_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-closable", + "markdownDescription": "Enables the set_closable command without any pre-configured scope." + }, + { + "description": "Enables the set_content_protected command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-content-protected", + "markdownDescription": "Enables the set_content_protected command without any pre-configured scope." + }, + { + "description": "Enables the set_cursor_grab command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-grab", + "markdownDescription": "Enables the set_cursor_grab command without any pre-configured scope." + }, + { + "description": "Enables the set_cursor_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-icon", + "markdownDescription": "Enables the set_cursor_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-position", + "markdownDescription": "Enables the set_cursor_position command without any pre-configured scope." + }, + { + "description": "Enables the set_cursor_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-visible", + "markdownDescription": "Enables the set_cursor_visible command without any pre-configured scope." + }, + { + "description": "Enables the set_decorations command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-decorations", + "markdownDescription": "Enables the set_decorations command without any pre-configured scope." + }, + { + "description": "Enables the set_effects command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-effects", + "markdownDescription": "Enables the set_effects command without any pre-configured scope." + }, + { + "description": "Enables the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-enabled", + "markdownDescription": "Enables the set_enabled command without any pre-configured scope." + }, + { + "description": "Enables the set_focus command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-focus", + "markdownDescription": "Enables the set_focus command without any pre-configured scope." + }, + { + "description": "Enables the set_focusable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-focusable", + "markdownDescription": "Enables the set_focusable command without any pre-configured scope." + }, + { + "description": "Enables the set_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-fullscreen", + "markdownDescription": "Enables the set_fullscreen command without any pre-configured scope." + }, + { + "description": "Enables the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-icon", + "markdownDescription": "Enables the set_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_ignore_cursor_events command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-ignore-cursor-events", + "markdownDescription": "Enables the set_ignore_cursor_events command without any pre-configured scope." + }, + { + "description": "Enables the set_max_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-max-size", + "markdownDescription": "Enables the set_max_size command without any pre-configured scope." + }, + { + "description": "Enables the set_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-maximizable", + "markdownDescription": "Enables the set_maximizable command without any pre-configured scope." + }, + { + "description": "Enables the set_min_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-min-size", + "markdownDescription": "Enables the set_min_size command without any pre-configured scope." + }, + { + "description": "Enables the set_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-minimizable", + "markdownDescription": "Enables the set_minimizable command without any pre-configured scope." + }, + { + "description": "Enables the set_overlay_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-overlay-icon", + "markdownDescription": "Enables the set_overlay_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-position", + "markdownDescription": "Enables the set_position command without any pre-configured scope." + }, + { + "description": "Enables the set_progress_bar command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-progress-bar", + "markdownDescription": "Enables the set_progress_bar command without any pre-configured scope." + }, + { + "description": "Enables the set_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-resizable", + "markdownDescription": "Enables the set_resizable command without any pre-configured scope." + }, + { + "description": "Enables the set_shadow command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-shadow", + "markdownDescription": "Enables the set_shadow command without any pre-configured scope." + }, + { + "description": "Enables the set_simple_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-simple-fullscreen", + "markdownDescription": "Enables the set_simple_fullscreen command without any pre-configured scope." + }, + { + "description": "Enables the set_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-size", + "markdownDescription": "Enables the set_size command without any pre-configured scope." + }, + { + "description": "Enables the set_size_constraints command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-size-constraints", + "markdownDescription": "Enables the set_size_constraints command without any pre-configured scope." + }, + { + "description": "Enables the set_skip_taskbar command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-skip-taskbar", + "markdownDescription": "Enables the set_skip_taskbar command without any pre-configured scope." + }, + { + "description": "Enables the set_theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-theme", + "markdownDescription": "Enables the set_theme command without any pre-configured scope." + }, + { + "description": "Enables the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-title", + "markdownDescription": "Enables the set_title command without any pre-configured scope." + }, + { + "description": "Enables the set_title_bar_style command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-title-bar-style", + "markdownDescription": "Enables the set_title_bar_style command without any pre-configured scope." + }, + { + "description": "Enables the set_visible_on_all_workspaces command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-visible-on-all-workspaces", + "markdownDescription": "Enables the set_visible_on_all_workspaces command without any pre-configured scope." + }, + { + "description": "Enables the show command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-show", + "markdownDescription": "Enables the show command without any pre-configured scope." + }, + { + "description": "Enables the start_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-start-dragging", + "markdownDescription": "Enables the start_dragging command without any pre-configured scope." + }, + { + "description": "Enables the start_resize_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-start-resize-dragging", + "markdownDescription": "Enables the start_resize_dragging command without any pre-configured scope." + }, + { + "description": "Enables the theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-theme", + "markdownDescription": "Enables the theme command without any pre-configured scope." + }, + { + "description": "Enables the title command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-title", + "markdownDescription": "Enables the title command without any pre-configured scope." + }, + { + "description": "Enables the toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-toggle-maximize", + "markdownDescription": "Enables the toggle_maximize command without any pre-configured scope." + }, + { + "description": "Enables the unmaximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-unmaximize", + "markdownDescription": "Enables the unmaximize command without any pre-configured scope." + }, + { + "description": "Enables the unminimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-unminimize", + "markdownDescription": "Enables the unminimize command without any pre-configured scope." + }, + { + "description": "Denies the activity_name command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-activity-name", + "markdownDescription": "Denies the activity_name command without any pre-configured scope." + }, + { + "description": "Denies the available_monitors command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-available-monitors", + "markdownDescription": "Denies the available_monitors command without any pre-configured scope." + }, + { + "description": "Denies the center command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-center", + "markdownDescription": "Denies the center command without any pre-configured scope." + }, + { + "description": "Denies the close command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-close", + "markdownDescription": "Denies the close command without any pre-configured scope." + }, + { + "description": "Denies the create command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-create", + "markdownDescription": "Denies the create command without any pre-configured scope." + }, + { + "description": "Denies the current_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-current-monitor", + "markdownDescription": "Denies the current_monitor command without any pre-configured scope." + }, + { + "description": "Denies the cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-cursor-position", + "markdownDescription": "Denies the cursor_position command without any pre-configured scope." + }, + { + "description": "Denies the destroy command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-destroy", + "markdownDescription": "Denies the destroy command without any pre-configured scope." + }, + { + "description": "Denies the get_all_windows command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-get-all-windows", + "markdownDescription": "Denies the get_all_windows command without any pre-configured scope." + }, + { + "description": "Denies the hide command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-hide", + "markdownDescription": "Denies the hide command without any pre-configured scope." + }, + { + "description": "Denies the inner_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-inner-position", + "markdownDescription": "Denies the inner_position command without any pre-configured scope." + }, + { + "description": "Denies the inner_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-inner-size", + "markdownDescription": "Denies the inner_size command without any pre-configured scope." + }, + { + "description": "Denies the internal_toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-internal-toggle-maximize", + "markdownDescription": "Denies the internal_toggle_maximize command without any pre-configured scope." + }, + { + "description": "Denies the is_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-always-on-top", + "markdownDescription": "Denies the is_always_on_top command without any pre-configured scope." + }, + { + "description": "Denies the is_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-closable", + "markdownDescription": "Denies the is_closable command without any pre-configured scope." + }, + { + "description": "Denies the is_decorated command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-decorated", + "markdownDescription": "Denies the is_decorated command without any pre-configured scope." + }, + { + "description": "Denies the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-enabled", + "markdownDescription": "Denies the is_enabled command without any pre-configured scope." + }, + { + "description": "Denies the is_focused command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-focused", + "markdownDescription": "Denies the is_focused command without any pre-configured scope." + }, + { + "description": "Denies the is_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-fullscreen", + "markdownDescription": "Denies the is_fullscreen command without any pre-configured scope." + }, + { + "description": "Denies the is_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-maximizable", + "markdownDescription": "Denies the is_maximizable command without any pre-configured scope." + }, + { + "description": "Denies the is_maximized command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-maximized", + "markdownDescription": "Denies the is_maximized command without any pre-configured scope." + }, + { + "description": "Denies the is_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-minimizable", + "markdownDescription": "Denies the is_minimizable command without any pre-configured scope." + }, + { + "description": "Denies the is_minimized command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-minimized", + "markdownDescription": "Denies the is_minimized command without any pre-configured scope." + }, + { + "description": "Denies the is_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-resizable", + "markdownDescription": "Denies the is_resizable command without any pre-configured scope." + }, + { + "description": "Denies the is_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-visible", + "markdownDescription": "Denies the is_visible command without any pre-configured scope." + }, + { + "description": "Denies the maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-maximize", + "markdownDescription": "Denies the maximize command without any pre-configured scope." + }, + { + "description": "Denies the minimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-minimize", + "markdownDescription": "Denies the minimize command without any pre-configured scope." + }, + { + "description": "Denies the monitor_from_point command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-monitor-from-point", + "markdownDescription": "Denies the monitor_from_point command without any pre-configured scope." + }, + { + "description": "Denies the outer_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-outer-position", + "markdownDescription": "Denies the outer_position command without any pre-configured scope." + }, + { + "description": "Denies the outer_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-outer-size", + "markdownDescription": "Denies the outer_size command without any pre-configured scope." + }, + { + "description": "Denies the primary_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-primary-monitor", + "markdownDescription": "Denies the primary_monitor command without any pre-configured scope." + }, + { + "description": "Denies the request_user_attention command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-request-user-attention", + "markdownDescription": "Denies the request_user_attention command without any pre-configured scope." + }, + { + "description": "Denies the scale_factor command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-scale-factor", + "markdownDescription": "Denies the scale_factor command without any pre-configured scope." + }, + { + "description": "Denies the scene_identifier command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-scene-identifier", + "markdownDescription": "Denies the scene_identifier command without any pre-configured scope." + }, + { + "description": "Denies the set_always_on_bottom command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-always-on-bottom", + "markdownDescription": "Denies the set_always_on_bottom command without any pre-configured scope." + }, + { + "description": "Denies the set_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-always-on-top", + "markdownDescription": "Denies the set_always_on_top command without any pre-configured scope." + }, + { + "description": "Denies the set_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-background-color", + "markdownDescription": "Denies the set_background_color command without any pre-configured scope." + }, + { + "description": "Denies the set_badge_count command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-badge-count", + "markdownDescription": "Denies the set_badge_count command without any pre-configured scope." + }, + { + "description": "Denies the set_badge_label command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-badge-label", + "markdownDescription": "Denies the set_badge_label command without any pre-configured scope." + }, + { + "description": "Denies the set_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-closable", + "markdownDescription": "Denies the set_closable command without any pre-configured scope." + }, + { + "description": "Denies the set_content_protected command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-content-protected", + "markdownDescription": "Denies the set_content_protected command without any pre-configured scope." + }, + { + "description": "Denies the set_cursor_grab command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-grab", + "markdownDescription": "Denies the set_cursor_grab command without any pre-configured scope." + }, + { + "description": "Denies the set_cursor_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-icon", + "markdownDescription": "Denies the set_cursor_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-position", + "markdownDescription": "Denies the set_cursor_position command without any pre-configured scope." + }, + { + "description": "Denies the set_cursor_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-visible", + "markdownDescription": "Denies the set_cursor_visible command without any pre-configured scope." + }, + { + "description": "Denies the set_decorations command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-decorations", + "markdownDescription": "Denies the set_decorations command without any pre-configured scope." + }, + { + "description": "Denies the set_effects command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-effects", + "markdownDescription": "Denies the set_effects command without any pre-configured scope." + }, + { + "description": "Denies the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-enabled", + "markdownDescription": "Denies the set_enabled command without any pre-configured scope." + }, + { + "description": "Denies the set_focus command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-focus", + "markdownDescription": "Denies the set_focus command without any pre-configured scope." + }, + { + "description": "Denies the set_focusable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-focusable", + "markdownDescription": "Denies the set_focusable command without any pre-configured scope." + }, + { + "description": "Denies the set_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-fullscreen", + "markdownDescription": "Denies the set_fullscreen command without any pre-configured scope." + }, + { + "description": "Denies the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-icon", + "markdownDescription": "Denies the set_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_ignore_cursor_events command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-ignore-cursor-events", + "markdownDescription": "Denies the set_ignore_cursor_events command without any pre-configured scope." + }, + { + "description": "Denies the set_max_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-max-size", + "markdownDescription": "Denies the set_max_size command without any pre-configured scope." + }, + { + "description": "Denies the set_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-maximizable", + "markdownDescription": "Denies the set_maximizable command without any pre-configured scope." + }, + { + "description": "Denies the set_min_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-min-size", + "markdownDescription": "Denies the set_min_size command without any pre-configured scope." + }, + { + "description": "Denies the set_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-minimizable", + "markdownDescription": "Denies the set_minimizable command without any pre-configured scope." + }, + { + "description": "Denies the set_overlay_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-overlay-icon", + "markdownDescription": "Denies the set_overlay_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-position", + "markdownDescription": "Denies the set_position command without any pre-configured scope." + }, + { + "description": "Denies the set_progress_bar command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-progress-bar", + "markdownDescription": "Denies the set_progress_bar command without any pre-configured scope." + }, + { + "description": "Denies the set_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-resizable", + "markdownDescription": "Denies the set_resizable command without any pre-configured scope." + }, + { + "description": "Denies the set_shadow command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-shadow", + "markdownDescription": "Denies the set_shadow command without any pre-configured scope." + }, + { + "description": "Denies the set_simple_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-simple-fullscreen", + "markdownDescription": "Denies the set_simple_fullscreen command without any pre-configured scope." + }, + { + "description": "Denies the set_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-size", + "markdownDescription": "Denies the set_size command without any pre-configured scope." + }, + { + "description": "Denies the set_size_constraints command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-size-constraints", + "markdownDescription": "Denies the set_size_constraints command without any pre-configured scope." + }, + { + "description": "Denies the set_skip_taskbar command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-skip-taskbar", + "markdownDescription": "Denies the set_skip_taskbar command without any pre-configured scope." + }, + { + "description": "Denies the set_theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-theme", + "markdownDescription": "Denies the set_theme command without any pre-configured scope." + }, + { + "description": "Denies the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-title", + "markdownDescription": "Denies the set_title command without any pre-configured scope." + }, + { + "description": "Denies the set_title_bar_style command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-title-bar-style", + "markdownDescription": "Denies the set_title_bar_style command without any pre-configured scope." + }, + { + "description": "Denies the set_visible_on_all_workspaces command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-visible-on-all-workspaces", + "markdownDescription": "Denies the set_visible_on_all_workspaces command without any pre-configured scope." + }, + { + "description": "Denies the show command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-show", + "markdownDescription": "Denies the show command without any pre-configured scope." + }, + { + "description": "Denies the start_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-start-dragging", + "markdownDescription": "Denies the start_dragging command without any pre-configured scope." + }, + { + "description": "Denies the start_resize_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-start-resize-dragging", + "markdownDescription": "Denies the start_resize_dragging command without any pre-configured scope." + }, + { + "description": "Denies the theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-theme", + "markdownDescription": "Denies the theme command without any pre-configured scope." + }, + { + "description": "Denies the title command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-title", + "markdownDescription": "Denies the title command without any pre-configured scope." + }, + { + "description": "Denies the toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-toggle-maximize", + "markdownDescription": "Denies the toggle_maximize command without any pre-configured scope." + }, + { + "description": "Denies the unmaximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-unmaximize", + "markdownDescription": "Denies the unmaximize command without any pre-configured scope." + }, + { + "description": "Denies the unminimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-unminimize", + "markdownDescription": "Denies the unminimize command without any pre-configured scope." + }, + { + "description": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer\n#### This default permission set includes:\n\n- `allow-open-url`\n- `allow-reveal-item-in-dir`\n- `allow-default-urls`", + "type": "string", + "const": "opener:default", + "markdownDescription": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer\n#### This default permission set includes:\n\n- `allow-open-url`\n- `allow-reveal-item-in-dir`\n- `allow-default-urls`" + }, + { + "description": "This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application.", + "type": "string", + "const": "opener:allow-default-urls", + "markdownDescription": "This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application." + }, + { + "description": "Enables the open_path command without any pre-configured scope.", + "type": "string", + "const": "opener:allow-open-path", + "markdownDescription": "Enables the open_path command without any pre-configured scope." + }, + { + "description": "Enables the open_url command without any pre-configured scope.", + "type": "string", + "const": "opener:allow-open-url", + "markdownDescription": "Enables the open_url command without any pre-configured scope." + }, + { + "description": "Enables the reveal_item_in_dir command without any pre-configured scope.", + "type": "string", + "const": "opener:allow-reveal-item-in-dir", + "markdownDescription": "Enables the reveal_item_in_dir command without any pre-configured scope." + }, + { + "description": "Denies the open_path command without any pre-configured scope.", + "type": "string", + "const": "opener:deny-open-path", + "markdownDescription": "Denies the open_path command without any pre-configured scope." + }, + { + "description": "Denies the open_url command without any pre-configured scope.", + "type": "string", + "const": "opener:deny-open-url", + "markdownDescription": "Denies the open_url command without any pre-configured scope." + }, + { + "description": "Denies the reveal_item_in_dir command without any pre-configured scope.", + "type": "string", + "const": "opener:deny-reveal-item-in-dir", + "markdownDescription": "Denies the reveal_item_in_dir command without any pre-configured scope." + }, + { + "description": "This permission set configures which\nprocess features are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n\n#### This default permission set includes:\n\n- `allow-exit`\n- `allow-restart`", + "type": "string", + "const": "process:default", + "markdownDescription": "This permission set configures which\nprocess features are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n\n#### This default permission set includes:\n\n- `allow-exit`\n- `allow-restart`" + }, + { + "description": "Enables the exit command without any pre-configured scope.", + "type": "string", + "const": "process:allow-exit", + "markdownDescription": "Enables the exit command without any pre-configured scope." + }, + { + "description": "Enables the restart command without any pre-configured scope.", + "type": "string", + "const": "process:allow-restart", + "markdownDescription": "Enables the restart command without any pre-configured scope." + }, + { + "description": "Denies the exit command without any pre-configured scope.", + "type": "string", + "const": "process:deny-exit", + "markdownDescription": "Denies the exit command without any pre-configured scope." + }, + { + "description": "Denies the restart command without any pre-configured scope.", + "type": "string", + "const": "process:deny-restart", + "markdownDescription": "Denies the restart command without any pre-configured scope." + }, + { + "description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality with a reasonable\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`", + "type": "string", + "const": "shell:default", + "markdownDescription": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality with a reasonable\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`" + }, + { + "description": "Enables the execute command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-execute", + "markdownDescription": "Enables the execute command without any pre-configured scope." + }, + { + "description": "Enables the kill command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-kill", + "markdownDescription": "Enables the kill command without any pre-configured scope." + }, + { + "description": "Enables the open command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-open", + "markdownDescription": "Enables the open command without any pre-configured scope." + }, + { + "description": "Enables the spawn command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-spawn", + "markdownDescription": "Enables the spawn command without any pre-configured scope." + }, + { + "description": "Enables the stdin_write command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-stdin-write", + "markdownDescription": "Enables the stdin_write command without any pre-configured scope." + }, + { + "description": "Denies the execute command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-execute", + "markdownDescription": "Denies the execute command without any pre-configured scope." + }, + { + "description": "Denies the kill command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-kill", + "markdownDescription": "Denies the kill command without any pre-configured scope." + }, + { + "description": "Denies the open command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-open", + "markdownDescription": "Denies the open command without any pre-configured scope." + }, + { + "description": "Denies the spawn command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-spawn", + "markdownDescription": "Denies the spawn command without any pre-configured scope." + }, + { + "description": "Denies the stdin_write command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-stdin-write", + "markdownDescription": "Denies the stdin_write command without any pre-configured scope." + } + ] + }, + "Value": { + "description": "All supported ACL values.", + "anyOf": [ + { + "description": "Represents a null JSON value.", + "type": "null" + }, + { + "description": "Represents a [`bool`].", + "type": "boolean" + }, + { + "description": "Represents a valid ACL [`Number`].", + "allOf": [ + { + "$ref": "#/definitions/Number" + } + ] + }, + { + "description": "Represents a [`String`].", + "type": "string" + }, + { + "description": "Represents a list of other [`Value`]s.", + "type": "array", + "items": { + "$ref": "#/definitions/Value" + } + }, + { + "description": "Represents a map of [`String`] keys to [`Value`]s.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Value" + } + } + ] + }, + "Number": { + "description": "A valid ACL number.", + "anyOf": [ + { + "description": "Represents an [`i64`].", + "type": "integer", + "format": "int64" + }, + { + "description": "Represents a [`f64`].", + "type": "number", + "format": "double" + } + ] + }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, + "Application": { + "description": "Opener scope application.", + "anyOf": [ + { + "description": "Open in default application.", + "type": "null" + }, + { + "description": "If true, allow open with any application.", + "type": "boolean" + }, + { + "description": "Allow specific application to open with.", + "type": "string" + } + ] + }, + "ShellScopeEntryAllowedArg": { + "description": "A command argument allowed to be executed by the webview API.", + "anyOf": [ + { + "description": "A non-configurable argument that is passed to the command in the order it was specified.", + "type": "string" + }, + { + "description": "A variable that is set while calling the command from the webview API.", + "type": "object", + "required": [ + "validator" + ], + "properties": { + "raw": { + "description": "Marks the validator as a raw regex, meaning the plugin should not make any modification at runtime.\n\nThis means the regex will not match on the entire string by default, which might be exploited if your regex allow unexpected input to be considered valid. When using this option, make sure your regex is correct.", + "default": false, + "type": "boolean" + }, + "validator": { + "description": "[regex] validator to require passed values to conform to an expected input.\n\nThis will require the argument value passed to this variable to match the `validator` regex before it will be executed.\n\nThe regex string is by default surrounded by `^...$` to match the full string. For example the `https?://\\w+` regex would be registered as `^https?://\\w+$`.\n\n[regex]: ", + "type": "string" + } + }, + "additionalProperties": false + } + ] + }, + "ShellScopeEntryAllowedArgs": { + "description": "A set of command arguments allowed to be executed by the webview API.\n\nA value of `true` will allow any arguments to be passed to the command. `false` will disable all arguments. A list of [`ShellScopeEntryAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration.", + "anyOf": [ + { + "description": "Use a simple boolean to allow all or disable all arguments to this command configuration.", + "type": "boolean" + }, + { + "description": "A specific set of [`ShellScopeEntryAllowedArg`] that are valid to call for the command configuration.", + "type": "array", + "items": { + "$ref": "#/definitions/ShellScopeEntryAllowedArg" + } + } + ] + } + } +} \ No newline at end of file diff --git a/src-tauri/gen/schemas/capabilities.json b/src-tauri/gen/schemas/capabilities.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/src-tauri/gen/schemas/capabilities.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/src-tauri/gen/schemas/mobile-schema.json b/src-tauri/gen/schemas/mobile-schema.json new file mode 100644 index 0000000..a04925e --- /dev/null +++ b/src-tauri/gen/schemas/mobile-schema.json @@ -0,0 +1,2875 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "CapabilityFile", + "description": "Capability formats accepted in a capability file.", + "anyOf": [ + { + "description": "A single capability.", + "allOf": [ + { + "$ref": "#/definitions/Capability" + } + ] + }, + { + "description": "A list of capabilities.", + "type": "array", + "items": { + "$ref": "#/definitions/Capability" + } + }, + { + "description": "A list of capabilities.", + "type": "object", + "required": [ + "capabilities" + ], + "properties": { + "capabilities": { + "description": "The list of capabilities.", + "type": "array", + "items": { + "$ref": "#/definitions/Capability" + } + } + } + } + ], + "definitions": { + "Capability": { + "description": "A grouping and boundary mechanism developers can use to isolate access to the IPC layer.\n\nIt controls application windows' and webviews' fine grained access to the Tauri core, application, or plugin commands. If a webview or its window is not matching any capability then it has no access to the IPC layer at all.\n\nThis can be done to create groups of windows, based on their required system access, which can reduce impact of frontend vulnerabilities in less privileged windows. Windows can be added to a capability by exact name (e.g. `main-window`) or glob patterns like `*` or `admin-*`. A Window can have none, one, or multiple associated capabilities.\n\n## Example\n\n```json { \"identifier\": \"main-user-files-write\", \"description\": \"This capability allows the `main` window on macOS and Windows access to `filesystem` write related commands and `dialog` commands to enable programmatic access to files selected by the user.\", \"windows\": [ \"main\" ], \"permissions\": [ \"core:default\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] }, ], \"platforms\": [\"macOS\",\"windows\"] } ```", + "type": "object", + "required": [ + "identifier", + "permissions" + ], + "properties": { + "identifier": { + "description": "Identifier of the capability.\n\n## Example\n\n`main-user-files-write`", + "type": "string" + }, + "description": { + "description": "Description of what the capability is intended to allow on associated windows.\n\nIt should contain a description of what the grouped permissions should allow.\n\n## Example\n\nThis capability allows the `main` window access to `filesystem` write related commands and `dialog` commands to enable programmatic access to files selected by the user.", + "default": "", + "type": "string" + }, + "remote": { + "description": "Configure remote URLs that can use the capability permissions.\n\nThis setting is optional and defaults to not being set, as our default use case is that the content is served from our local application.\n\n:::caution Make sure you understand the security implications of providing remote sources with local system access. :::\n\n## Example\n\n```json { \"urls\": [\"https://*.mydomain.dev\"] } ```", + "anyOf": [ + { + "$ref": "#/definitions/CapabilityRemote" + }, + { + "type": "null" + } + ] + }, + "local": { + "description": "Whether this capability is enabled for local app URLs or not. Defaults to `true`.", + "default": true, + "type": "boolean" + }, + "windows": { + "description": "List of windows that are affected by this capability. Can be a glob pattern.\n\nIf a window label matches any of the patterns in this list, the capability will be enabled on all the webviews of that window, regardless of the value of [`Self::webviews`].\n\nOn multiwebview windows, prefer specifying [`Self::webviews`] and omitting [`Self::windows`] for a fine grained access control.\n\n## Example\n\n`[\"main\"]`", + "type": "array", + "items": { + "type": "string" + } + }, + "webviews": { + "description": "List of webviews that are affected by this capability. Can be a glob pattern.\n\nThe capability will be enabled on all the webviews whose label matches any of the patterns in this list, regardless of whether the webview's window label matches a pattern in [`Self::windows`].\n\n## Example\n\n`[\"sub-webview-one\", \"sub-webview-two\"]`", + "type": "array", + "items": { + "type": "string" + } + }, + "permissions": { + "description": "List of permissions attached to this capability.\n\nMust include the plugin name as prefix in the form of `${plugin-name}:${permission-name}`. For commands directly implemented in the application itself only `${permission-name}` is required.\n\n## Example\n\n```json [ \"core:default\", \"shell:allow-open\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] } ] ```", + "type": "array", + "items": { + "$ref": "#/definitions/PermissionEntry" + }, + "uniqueItems": true + }, + "platforms": { + "description": "Limit which target platforms this capability applies to.\n\nBy default all platforms are targeted.\n\n## Example\n\n`[\"macOS\",\"windows\"]`", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Target" + } + } + } + }, + "CapabilityRemote": { + "description": "Configuration for remote URLs that are associated with the capability.", + "type": "object", + "required": [ + "urls" + ], + "properties": { + "urls": { + "description": "Remote domains this capability refers to using the [URLPattern standard](https://urlpattern.spec.whatwg.org/).\n\n## Examples\n\n- \"https://*.mydomain.dev\": allows subdomains of mydomain.dev - \"https://mydomain.dev/api/*\": allows any subpath of mydomain.dev/api", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "PermissionEntry": { + "description": "An entry for a permission value in a [`Capability`] can be either a raw permission [`Identifier`] or an object that references a permission and extends its scope.", + "anyOf": [ + { + "description": "Reference a permission or permission set by identifier.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + }, + { + "description": "Reference a permission or permission set by identifier and extends its scope.", + "type": "object", + "allOf": [ + { + "if": { + "properties": { + "identifier": { + "anyOf": [ + { + "description": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer\n#### This default permission set includes:\n\n- `allow-open-url`\n- `allow-reveal-item-in-dir`\n- `allow-default-urls`", + "type": "string", + "const": "opener:default", + "markdownDescription": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer\n#### This default permission set includes:\n\n- `allow-open-url`\n- `allow-reveal-item-in-dir`\n- `allow-default-urls`" + }, + { + "description": "This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application.", + "type": "string", + "const": "opener:allow-default-urls", + "markdownDescription": "This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application." + }, + { + "description": "Enables the open_path command without any pre-configured scope.", + "type": "string", + "const": "opener:allow-open-path", + "markdownDescription": "Enables the open_path command without any pre-configured scope." + }, + { + "description": "Enables the open_url command without any pre-configured scope.", + "type": "string", + "const": "opener:allow-open-url", + "markdownDescription": "Enables the open_url command without any pre-configured scope." + }, + { + "description": "Enables the reveal_item_in_dir command without any pre-configured scope.", + "type": "string", + "const": "opener:allow-reveal-item-in-dir", + "markdownDescription": "Enables the reveal_item_in_dir command without any pre-configured scope." + }, + { + "description": "Denies the open_path command without any pre-configured scope.", + "type": "string", + "const": "opener:deny-open-path", + "markdownDescription": "Denies the open_path command without any pre-configured scope." + }, + { + "description": "Denies the open_url command without any pre-configured scope.", + "type": "string", + "const": "opener:deny-open-url", + "markdownDescription": "Denies the open_url command without any pre-configured scope." + }, + { + "description": "Denies the reveal_item_in_dir command without any pre-configured scope.", + "type": "string", + "const": "opener:deny-reveal-item-in-dir", + "markdownDescription": "Denies the reveal_item_in_dir command without any pre-configured scope." + } + ] + } + } + }, + "then": { + "properties": { + "allow": { + "items": { + "title": "OpenerScopeEntry", + "description": "Opener scope entry.", + "anyOf": [ + { + "type": "object", + "required": [ + "url" + ], + "properties": { + "app": { + "description": "An application to open this url with, for example: firefox.", + "allOf": [ + { + "$ref": "#/definitions/Application" + } + ] + }, + "url": { + "description": "A URL that can be opened by the webview when using the Opener APIs.\n\nWildcards can be used following the UNIX glob pattern.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", + "type": "string" + } + } + }, + { + "type": "object", + "required": [ + "path" + ], + "properties": { + "app": { + "description": "An application to open this path with, for example: xdg-open.", + "allOf": [ + { + "$ref": "#/definitions/Application" + } + ] + }, + "path": { + "description": "A path that can be opened by the webview when using the Opener APIs.\n\nThe pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", + "type": "string" + } + } + } + ] + } + }, + "deny": { + "items": { + "title": "OpenerScopeEntry", + "description": "Opener scope entry.", + "anyOf": [ + { + "type": "object", + "required": [ + "url" + ], + "properties": { + "app": { + "description": "An application to open this url with, for example: firefox.", + "allOf": [ + { + "$ref": "#/definitions/Application" + } + ] + }, + "url": { + "description": "A URL that can be opened by the webview when using the Opener APIs.\n\nWildcards can be used following the UNIX glob pattern.\n\nExamples:\n\n- \"https://*\" : allows all HTTPS origin\n\n- \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path\n\n- \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"", + "type": "string" + } + } + }, + { + "type": "object", + "required": [ + "path" + ], + "properties": { + "app": { + "description": "An application to open this path with, for example: xdg-open.", + "allOf": [ + { + "$ref": "#/definitions/Application" + } + ] + }, + "path": { + "description": "A path that can be opened by the webview when using the Opener APIs.\n\nThe pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", + "type": "string" + } + } + } + ] + } + } + } + }, + "properties": { + "identifier": { + "description": "Identifier of the permission or permission set.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + } + } + }, + { + "if": { + "properties": { + "identifier": { + "anyOf": [ + { + "description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality with a reasonable\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`", + "type": "string", + "const": "shell:default", + "markdownDescription": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality with a reasonable\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`" + }, + { + "description": "Enables the execute command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-execute", + "markdownDescription": "Enables the execute command without any pre-configured scope." + }, + { + "description": "Enables the kill command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-kill", + "markdownDescription": "Enables the kill command without any pre-configured scope." + }, + { + "description": "Enables the open command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-open", + "markdownDescription": "Enables the open command without any pre-configured scope." + }, + { + "description": "Enables the spawn command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-spawn", + "markdownDescription": "Enables the spawn command without any pre-configured scope." + }, + { + "description": "Enables the stdin_write command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-stdin-write", + "markdownDescription": "Enables the stdin_write command without any pre-configured scope." + }, + { + "description": "Denies the execute command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-execute", + "markdownDescription": "Denies the execute command without any pre-configured scope." + }, + { + "description": "Denies the kill command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-kill", + "markdownDescription": "Denies the kill command without any pre-configured scope." + }, + { + "description": "Denies the open command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-open", + "markdownDescription": "Denies the open command without any pre-configured scope." + }, + { + "description": "Denies the spawn command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-spawn", + "markdownDescription": "Denies the spawn command without any pre-configured scope." + }, + { + "description": "Denies the stdin_write command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-stdin-write", + "markdownDescription": "Denies the stdin_write command without any pre-configured scope." + } + ] + } + } + }, + "then": { + "properties": { + "allow": { + "items": { + "title": "ShellScopeEntry", + "description": "Shell scope entry.", + "anyOf": [ + { + "type": "object", + "required": [ + "cmd", + "name" + ], + "properties": { + "args": { + "description": "The allowed arguments for the command execution.", + "allOf": [ + { + "$ref": "#/definitions/ShellScopeEntryAllowedArgs" + } + ] + }, + "cmd": { + "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", + "type": "string" + }, + "name": { + "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", + "type": "string" + } + }, + "additionalProperties": false + }, + { + "type": "object", + "required": [ + "name", + "sidecar" + ], + "properties": { + "args": { + "description": "The allowed arguments for the command execution.", + "allOf": [ + { + "$ref": "#/definitions/ShellScopeEntryAllowedArgs" + } + ] + }, + "name": { + "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", + "type": "string" + }, + "sidecar": { + "description": "If this command is a sidecar command.", + "type": "boolean" + } + }, + "additionalProperties": false + } + ] + } + }, + "deny": { + "items": { + "title": "ShellScopeEntry", + "description": "Shell scope entry.", + "anyOf": [ + { + "type": "object", + "required": [ + "cmd", + "name" + ], + "properties": { + "args": { + "description": "The allowed arguments for the command execution.", + "allOf": [ + { + "$ref": "#/definitions/ShellScopeEntryAllowedArgs" + } + ] + }, + "cmd": { + "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", + "type": "string" + }, + "name": { + "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", + "type": "string" + } + }, + "additionalProperties": false + }, + { + "type": "object", + "required": [ + "name", + "sidecar" + ], + "properties": { + "args": { + "description": "The allowed arguments for the command execution.", + "allOf": [ + { + "$ref": "#/definitions/ShellScopeEntryAllowedArgs" + } + ] + }, + "name": { + "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", + "type": "string" + }, + "sidecar": { + "description": "If this command is a sidecar command.", + "type": "boolean" + } + }, + "additionalProperties": false + } + ] + } + } + } + }, + "properties": { + "identifier": { + "description": "Identifier of the permission or permission set.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + } + } + }, + { + "properties": { + "identifier": { + "description": "Identifier of the permission or permission set.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + }, + "allow": { + "description": "Data that defines what is allowed by the scope.", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Value" + } + }, + "deny": { + "description": "Data that defines what is denied by the scope. This should be prioritized by validation logic.", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Value" + } + } + } + } + ], + "required": [ + "identifier" + ] + } + ] + }, + "Identifier": { + "description": "Permission identifier", + "oneOf": [ + { + "description": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`", + "type": "string", + "const": "core:default", + "markdownDescription": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`" + }, + { + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`\n- `allow-supports-multiple-windows`", + "type": "string", + "const": "core:app:default", + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`\n- `allow-supports-multiple-windows`" + }, + { + "description": "Enables the app_hide command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-app-hide", + "markdownDescription": "Enables the app_hide command without any pre-configured scope." + }, + { + "description": "Enables the app_show command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-app-show", + "markdownDescription": "Enables the app_show command without any pre-configured scope." + }, + { + "description": "Enables the bundle_type command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-bundle-type", + "markdownDescription": "Enables the bundle_type command without any pre-configured scope." + }, + { + "description": "Enables the default_window_icon command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-default-window-icon", + "markdownDescription": "Enables the default_window_icon command without any pre-configured scope." + }, + { + "description": "Enables the fetch_data_store_identifiers command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-fetch-data-store-identifiers", + "markdownDescription": "Enables the fetch_data_store_identifiers command without any pre-configured scope." + }, + { + "description": "Enables the identifier command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-identifier", + "markdownDescription": "Enables the identifier command without any pre-configured scope." + }, + { + "description": "Enables the name command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-name", + "markdownDescription": "Enables the name command without any pre-configured scope." + }, + { + "description": "Enables the register_listener command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-register-listener", + "markdownDescription": "Enables the register_listener command without any pre-configured scope." + }, + { + "description": "Enables the remove_data_store command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-remove-data-store", + "markdownDescription": "Enables the remove_data_store command without any pre-configured scope." + }, + { + "description": "Enables the remove_listener command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-remove-listener", + "markdownDescription": "Enables the remove_listener command without any pre-configured scope." + }, + { + "description": "Enables the set_app_theme command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-set-app-theme", + "markdownDescription": "Enables the set_app_theme command without any pre-configured scope." + }, + { + "description": "Enables the set_dock_visibility command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-set-dock-visibility", + "markdownDescription": "Enables the set_dock_visibility command without any pre-configured scope." + }, + { + "description": "Enables the supports_multiple_windows command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-supports-multiple-windows", + "markdownDescription": "Enables the supports_multiple_windows command without any pre-configured scope." + }, + { + "description": "Enables the tauri_version command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-tauri-version", + "markdownDescription": "Enables the tauri_version command without any pre-configured scope." + }, + { + "description": "Enables the version command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-version", + "markdownDescription": "Enables the version command without any pre-configured scope." + }, + { + "description": "Denies the app_hide command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-app-hide", + "markdownDescription": "Denies the app_hide command without any pre-configured scope." + }, + { + "description": "Denies the app_show command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-app-show", + "markdownDescription": "Denies the app_show command without any pre-configured scope." + }, + { + "description": "Denies the bundle_type command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-bundle-type", + "markdownDescription": "Denies the bundle_type command without any pre-configured scope." + }, + { + "description": "Denies the default_window_icon command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-default-window-icon", + "markdownDescription": "Denies the default_window_icon command without any pre-configured scope." + }, + { + "description": "Denies the fetch_data_store_identifiers command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-fetch-data-store-identifiers", + "markdownDescription": "Denies the fetch_data_store_identifiers command without any pre-configured scope." + }, + { + "description": "Denies the identifier command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-identifier", + "markdownDescription": "Denies the identifier command without any pre-configured scope." + }, + { + "description": "Denies the name command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-name", + "markdownDescription": "Denies the name command without any pre-configured scope." + }, + { + "description": "Denies the register_listener command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-register-listener", + "markdownDescription": "Denies the register_listener command without any pre-configured scope." + }, + { + "description": "Denies the remove_data_store command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-remove-data-store", + "markdownDescription": "Denies the remove_data_store command without any pre-configured scope." + }, + { + "description": "Denies the remove_listener command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-remove-listener", + "markdownDescription": "Denies the remove_listener command without any pre-configured scope." + }, + { + "description": "Denies the set_app_theme command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-set-app-theme", + "markdownDescription": "Denies the set_app_theme command without any pre-configured scope." + }, + { + "description": "Denies the set_dock_visibility command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-set-dock-visibility", + "markdownDescription": "Denies the set_dock_visibility command without any pre-configured scope." + }, + { + "description": "Denies the supports_multiple_windows command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-supports-multiple-windows", + "markdownDescription": "Denies the supports_multiple_windows command without any pre-configured scope." + }, + { + "description": "Denies the tauri_version command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-tauri-version", + "markdownDescription": "Denies the tauri_version command without any pre-configured scope." + }, + { + "description": "Denies the version command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-version", + "markdownDescription": "Denies the version command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-listen`\n- `allow-unlisten`\n- `allow-emit`\n- `allow-emit-to`", + "type": "string", + "const": "core:event:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-listen`\n- `allow-unlisten`\n- `allow-emit`\n- `allow-emit-to`" + }, + { + "description": "Enables the emit command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-emit", + "markdownDescription": "Enables the emit command without any pre-configured scope." + }, + { + "description": "Enables the emit_to command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-emit-to", + "markdownDescription": "Enables the emit_to command without any pre-configured scope." + }, + { + "description": "Enables the listen command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-listen", + "markdownDescription": "Enables the listen command without any pre-configured scope." + }, + { + "description": "Enables the unlisten command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-unlisten", + "markdownDescription": "Enables the unlisten command without any pre-configured scope." + }, + { + "description": "Denies the emit command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-emit", + "markdownDescription": "Denies the emit command without any pre-configured scope." + }, + { + "description": "Denies the emit_to command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-emit-to", + "markdownDescription": "Denies the emit_to command without any pre-configured scope." + }, + { + "description": "Denies the listen command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-listen", + "markdownDescription": "Denies the listen command without any pre-configured scope." + }, + { + "description": "Denies the unlisten command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-unlisten", + "markdownDescription": "Denies the unlisten command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-from-bytes`\n- `allow-from-path`\n- `allow-rgba`\n- `allow-size`", + "type": "string", + "const": "core:image:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-from-bytes`\n- `allow-from-path`\n- `allow-rgba`\n- `allow-size`" + }, + { + "description": "Enables the from_bytes command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-from-bytes", + "markdownDescription": "Enables the from_bytes command without any pre-configured scope." + }, + { + "description": "Enables the from_path command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-from-path", + "markdownDescription": "Enables the from_path command without any pre-configured scope." + }, + { + "description": "Enables the new command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-new", + "markdownDescription": "Enables the new command without any pre-configured scope." + }, + { + "description": "Enables the rgba command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-rgba", + "markdownDescription": "Enables the rgba command without any pre-configured scope." + }, + { + "description": "Enables the size command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-size", + "markdownDescription": "Enables the size command without any pre-configured scope." + }, + { + "description": "Denies the from_bytes command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-from-bytes", + "markdownDescription": "Denies the from_bytes command without any pre-configured scope." + }, + { + "description": "Denies the from_path command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-from-path", + "markdownDescription": "Denies the from_path command without any pre-configured scope." + }, + { + "description": "Denies the new command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-new", + "markdownDescription": "Denies the new command without any pre-configured scope." + }, + { + "description": "Denies the rgba command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-rgba", + "markdownDescription": "Denies the rgba command without any pre-configured scope." + }, + { + "description": "Denies the size command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-size", + "markdownDescription": "Denies the size command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-append`\n- `allow-prepend`\n- `allow-insert`\n- `allow-remove`\n- `allow-remove-at`\n- `allow-items`\n- `allow-get`\n- `allow-popup`\n- `allow-create-default`\n- `allow-set-as-app-menu`\n- `allow-set-as-window-menu`\n- `allow-text`\n- `allow-set-text`\n- `allow-is-enabled`\n- `allow-set-enabled`\n- `allow-set-accelerator`\n- `allow-set-as-windows-menu-for-nsapp`\n- `allow-set-as-help-menu-for-nsapp`\n- `allow-is-checked`\n- `allow-set-checked`\n- `allow-set-icon`", + "type": "string", + "const": "core:menu:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-append`\n- `allow-prepend`\n- `allow-insert`\n- `allow-remove`\n- `allow-remove-at`\n- `allow-items`\n- `allow-get`\n- `allow-popup`\n- `allow-create-default`\n- `allow-set-as-app-menu`\n- `allow-set-as-window-menu`\n- `allow-text`\n- `allow-set-text`\n- `allow-is-enabled`\n- `allow-set-enabled`\n- `allow-set-accelerator`\n- `allow-set-as-windows-menu-for-nsapp`\n- `allow-set-as-help-menu-for-nsapp`\n- `allow-is-checked`\n- `allow-set-checked`\n- `allow-set-icon`" + }, + { + "description": "Enables the append command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-append", + "markdownDescription": "Enables the append command without any pre-configured scope." + }, + { + "description": "Enables the create_default command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-create-default", + "markdownDescription": "Enables the create_default command without any pre-configured scope." + }, + { + "description": "Enables the get command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-get", + "markdownDescription": "Enables the get command without any pre-configured scope." + }, + { + "description": "Enables the insert command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-insert", + "markdownDescription": "Enables the insert command without any pre-configured scope." + }, + { + "description": "Enables the is_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-is-checked", + "markdownDescription": "Enables the is_checked command without any pre-configured scope." + }, + { + "description": "Enables the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-is-enabled", + "markdownDescription": "Enables the is_enabled command without any pre-configured scope." + }, + { + "description": "Enables the items command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-items", + "markdownDescription": "Enables the items command without any pre-configured scope." + }, + { + "description": "Enables the new command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-new", + "markdownDescription": "Enables the new command without any pre-configured scope." + }, + { + "description": "Enables the popup command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-popup", + "markdownDescription": "Enables the popup command without any pre-configured scope." + }, + { + "description": "Enables the prepend command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-prepend", + "markdownDescription": "Enables the prepend command without any pre-configured scope." + }, + { + "description": "Enables the remove command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-remove", + "markdownDescription": "Enables the remove command without any pre-configured scope." + }, + { + "description": "Enables the remove_at command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-remove-at", + "markdownDescription": "Enables the remove_at command without any pre-configured scope." + }, + { + "description": "Enables the set_accelerator command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-accelerator", + "markdownDescription": "Enables the set_accelerator command without any pre-configured scope." + }, + { + "description": "Enables the set_as_app_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-app-menu", + "markdownDescription": "Enables the set_as_app_menu command without any pre-configured scope." + }, + { + "description": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-help-menu-for-nsapp", + "markdownDescription": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope." + }, + { + "description": "Enables the set_as_window_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-window-menu", + "markdownDescription": "Enables the set_as_window_menu command without any pre-configured scope." + }, + { + "description": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-windows-menu-for-nsapp", + "markdownDescription": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope." + }, + { + "description": "Enables the set_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-checked", + "markdownDescription": "Enables the set_checked command without any pre-configured scope." + }, + { + "description": "Enables the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-enabled", + "markdownDescription": "Enables the set_enabled command without any pre-configured scope." + }, + { + "description": "Enables the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-icon", + "markdownDescription": "Enables the set_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-text", + "markdownDescription": "Enables the set_text command without any pre-configured scope." + }, + { + "description": "Enables the text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-text", + "markdownDescription": "Enables the text command without any pre-configured scope." + }, + { + "description": "Denies the append command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-append", + "markdownDescription": "Denies the append command without any pre-configured scope." + }, + { + "description": "Denies the create_default command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-create-default", + "markdownDescription": "Denies the create_default command without any pre-configured scope." + }, + { + "description": "Denies the get command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-get", + "markdownDescription": "Denies the get command without any pre-configured scope." + }, + { + "description": "Denies the insert command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-insert", + "markdownDescription": "Denies the insert command without any pre-configured scope." + }, + { + "description": "Denies the is_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-is-checked", + "markdownDescription": "Denies the is_checked command without any pre-configured scope." + }, + { + "description": "Denies the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-is-enabled", + "markdownDescription": "Denies the is_enabled command without any pre-configured scope." + }, + { + "description": "Denies the items command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-items", + "markdownDescription": "Denies the items command without any pre-configured scope." + }, + { + "description": "Denies the new command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-new", + "markdownDescription": "Denies the new command without any pre-configured scope." + }, + { + "description": "Denies the popup command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-popup", + "markdownDescription": "Denies the popup command without any pre-configured scope." + }, + { + "description": "Denies the prepend command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-prepend", + "markdownDescription": "Denies the prepend command without any pre-configured scope." + }, + { + "description": "Denies the remove command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-remove", + "markdownDescription": "Denies the remove command without any pre-configured scope." + }, + { + "description": "Denies the remove_at command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-remove-at", + "markdownDescription": "Denies the remove_at command without any pre-configured scope." + }, + { + "description": "Denies the set_accelerator command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-accelerator", + "markdownDescription": "Denies the set_accelerator command without any pre-configured scope." + }, + { + "description": "Denies the set_as_app_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-app-menu", + "markdownDescription": "Denies the set_as_app_menu command without any pre-configured scope." + }, + { + "description": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-help-menu-for-nsapp", + "markdownDescription": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope." + }, + { + "description": "Denies the set_as_window_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-window-menu", + "markdownDescription": "Denies the set_as_window_menu command without any pre-configured scope." + }, + { + "description": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-windows-menu-for-nsapp", + "markdownDescription": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope." + }, + { + "description": "Denies the set_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-checked", + "markdownDescription": "Denies the set_checked command without any pre-configured scope." + }, + { + "description": "Denies the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-enabled", + "markdownDescription": "Denies the set_enabled command without any pre-configured scope." + }, + { + "description": "Denies the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-icon", + "markdownDescription": "Denies the set_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-text", + "markdownDescription": "Denies the set_text command without any pre-configured scope." + }, + { + "description": "Denies the text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-text", + "markdownDescription": "Denies the text command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-resolve-directory`\n- `allow-resolve`\n- `allow-normalize`\n- `allow-join`\n- `allow-dirname`\n- `allow-extname`\n- `allow-basename`\n- `allow-is-absolute`", + "type": "string", + "const": "core:path:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-resolve-directory`\n- `allow-resolve`\n- `allow-normalize`\n- `allow-join`\n- `allow-dirname`\n- `allow-extname`\n- `allow-basename`\n- `allow-is-absolute`" + }, + { + "description": "Enables the basename command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-basename", + "markdownDescription": "Enables the basename command without any pre-configured scope." + }, + { + "description": "Enables the dirname command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-dirname", + "markdownDescription": "Enables the dirname command without any pre-configured scope." + }, + { + "description": "Enables the extname command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-extname", + "markdownDescription": "Enables the extname command without any pre-configured scope." + }, + { + "description": "Enables the is_absolute command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-is-absolute", + "markdownDescription": "Enables the is_absolute command without any pre-configured scope." + }, + { + "description": "Enables the join command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-join", + "markdownDescription": "Enables the join command without any pre-configured scope." + }, + { + "description": "Enables the normalize command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-normalize", + "markdownDescription": "Enables the normalize command without any pre-configured scope." + }, + { + "description": "Enables the resolve command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-resolve", + "markdownDescription": "Enables the resolve command without any pre-configured scope." + }, + { + "description": "Enables the resolve_directory command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-resolve-directory", + "markdownDescription": "Enables the resolve_directory command without any pre-configured scope." + }, + { + "description": "Denies the basename command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-basename", + "markdownDescription": "Denies the basename command without any pre-configured scope." + }, + { + "description": "Denies the dirname command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-dirname", + "markdownDescription": "Denies the dirname command without any pre-configured scope." + }, + { + "description": "Denies the extname command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-extname", + "markdownDescription": "Denies the extname command without any pre-configured scope." + }, + { + "description": "Denies the is_absolute command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-is-absolute", + "markdownDescription": "Denies the is_absolute command without any pre-configured scope." + }, + { + "description": "Denies the join command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-join", + "markdownDescription": "Denies the join command without any pre-configured scope." + }, + { + "description": "Denies the normalize command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-normalize", + "markdownDescription": "Denies the normalize command without any pre-configured scope." + }, + { + "description": "Denies the resolve command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-resolve", + "markdownDescription": "Denies the resolve command without any pre-configured scope." + }, + { + "description": "Denies the resolve_directory command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-resolve-directory", + "markdownDescription": "Denies the resolve_directory command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-close`", + "type": "string", + "const": "core:resources:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-close`" + }, + { + "description": "Enables the close command without any pre-configured scope.", + "type": "string", + "const": "core:resources:allow-close", + "markdownDescription": "Enables the close command without any pre-configured scope." + }, + { + "description": "Denies the close command without any pre-configured scope.", + "type": "string", + "const": "core:resources:deny-close", + "markdownDescription": "Denies the close command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-get-by-id`\n- `allow-remove-by-id`\n- `allow-set-icon`\n- `allow-set-menu`\n- `allow-set-tooltip`\n- `allow-set-title`\n- `allow-set-visible`\n- `allow-set-temp-dir-path`\n- `allow-set-icon-as-template`\n- `allow-set-icon-with-as-template`\n- `allow-set-show-menu-on-left-click`", + "type": "string", + "const": "core:tray:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-get-by-id`\n- `allow-remove-by-id`\n- `allow-set-icon`\n- `allow-set-menu`\n- `allow-set-tooltip`\n- `allow-set-title`\n- `allow-set-visible`\n- `allow-set-temp-dir-path`\n- `allow-set-icon-as-template`\n- `allow-set-icon-with-as-template`\n- `allow-set-show-menu-on-left-click`" + }, + { + "description": "Enables the get_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-get-by-id", + "markdownDescription": "Enables the get_by_id command without any pre-configured scope." + }, + { + "description": "Enables the new command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-new", + "markdownDescription": "Enables the new command without any pre-configured scope." + }, + { + "description": "Enables the remove_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-remove-by-id", + "markdownDescription": "Enables the remove_by_id command without any pre-configured scope." + }, + { + "description": "Enables the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-icon", + "markdownDescription": "Enables the set_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_icon_as_template command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-icon-as-template", + "markdownDescription": "Enables the set_icon_as_template command without any pre-configured scope." + }, + { + "description": "Enables the set_icon_with_as_template command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-icon-with-as-template", + "markdownDescription": "Enables the set_icon_with_as_template command without any pre-configured scope." + }, + { + "description": "Enables the set_menu command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-menu", + "markdownDescription": "Enables the set_menu command without any pre-configured scope." + }, + { + "description": "Enables the set_show_menu_on_left_click command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-show-menu-on-left-click", + "markdownDescription": "Enables the set_show_menu_on_left_click command without any pre-configured scope." + }, + { + "description": "Enables the set_temp_dir_path command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-temp-dir-path", + "markdownDescription": "Enables the set_temp_dir_path command without any pre-configured scope." + }, + { + "description": "Enables the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-title", + "markdownDescription": "Enables the set_title command without any pre-configured scope." + }, + { + "description": "Enables the set_tooltip command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-tooltip", + "markdownDescription": "Enables the set_tooltip command without any pre-configured scope." + }, + { + "description": "Enables the set_visible command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-visible", + "markdownDescription": "Enables the set_visible command without any pre-configured scope." + }, + { + "description": "Denies the get_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-get-by-id", + "markdownDescription": "Denies the get_by_id command without any pre-configured scope." + }, + { + "description": "Denies the new command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-new", + "markdownDescription": "Denies the new command without any pre-configured scope." + }, + { + "description": "Denies the remove_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-remove-by-id", + "markdownDescription": "Denies the remove_by_id command without any pre-configured scope." + }, + { + "description": "Denies the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-icon", + "markdownDescription": "Denies the set_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_icon_as_template command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-icon-as-template", + "markdownDescription": "Denies the set_icon_as_template command without any pre-configured scope." + }, + { + "description": "Denies the set_icon_with_as_template command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-icon-with-as-template", + "markdownDescription": "Denies the set_icon_with_as_template command without any pre-configured scope." + }, + { + "description": "Denies the set_menu command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-menu", + "markdownDescription": "Denies the set_menu command without any pre-configured scope." + }, + { + "description": "Denies the set_show_menu_on_left_click command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-show-menu-on-left-click", + "markdownDescription": "Denies the set_show_menu_on_left_click command without any pre-configured scope." + }, + { + "description": "Denies the set_temp_dir_path command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-temp-dir-path", + "markdownDescription": "Denies the set_temp_dir_path command without any pre-configured scope." + }, + { + "description": "Denies the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-title", + "markdownDescription": "Denies the set_title command without any pre-configured scope." + }, + { + "description": "Denies the set_tooltip command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-tooltip", + "markdownDescription": "Denies the set_tooltip command without any pre-configured scope." + }, + { + "description": "Denies the set_visible command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-visible", + "markdownDescription": "Denies the set_visible command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-webviews`\n- `allow-webview-position`\n- `allow-webview-size`\n- `allow-internal-toggle-devtools`", + "type": "string", + "const": "core:webview:default", + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-webviews`\n- `allow-webview-position`\n- `allow-webview-size`\n- `allow-internal-toggle-devtools`" + }, + { + "description": "Enables the clear_all_browsing_data command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-clear-all-browsing-data", + "markdownDescription": "Enables the clear_all_browsing_data command without any pre-configured scope." + }, + { + "description": "Enables the create_webview command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-create-webview", + "markdownDescription": "Enables the create_webview command without any pre-configured scope." + }, + { + "description": "Enables the create_webview_window command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-create-webview-window", + "markdownDescription": "Enables the create_webview_window command without any pre-configured scope." + }, + { + "description": "Enables the get_all_webviews command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-get-all-webviews", + "markdownDescription": "Enables the get_all_webviews command without any pre-configured scope." + }, + { + "description": "Enables the internal_toggle_devtools command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-internal-toggle-devtools", + "markdownDescription": "Enables the internal_toggle_devtools command without any pre-configured scope." + }, + { + "description": "Enables the print command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-print", + "markdownDescription": "Enables the print command without any pre-configured scope." + }, + { + "description": "Enables the reparent command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-reparent", + "markdownDescription": "Enables the reparent command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_auto_resize command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-auto-resize", + "markdownDescription": "Enables the set_webview_auto_resize command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-background-color", + "markdownDescription": "Enables the set_webview_background_color command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_focus command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-focus", + "markdownDescription": "Enables the set_webview_focus command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-position", + "markdownDescription": "Enables the set_webview_position command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-size", + "markdownDescription": "Enables the set_webview_size command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_zoom command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-zoom", + "markdownDescription": "Enables the set_webview_zoom command without any pre-configured scope." + }, + { + "description": "Enables the webview_close command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-close", + "markdownDescription": "Enables the webview_close command without any pre-configured scope." + }, + { + "description": "Enables the webview_hide command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-hide", + "markdownDescription": "Enables the webview_hide command without any pre-configured scope." + }, + { + "description": "Enables the webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-position", + "markdownDescription": "Enables the webview_position command without any pre-configured scope." + }, + { + "description": "Enables the webview_show command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-show", + "markdownDescription": "Enables the webview_show command without any pre-configured scope." + }, + { + "description": "Enables the webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-size", + "markdownDescription": "Enables the webview_size command without any pre-configured scope." + }, + { + "description": "Denies the clear_all_browsing_data command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-clear-all-browsing-data", + "markdownDescription": "Denies the clear_all_browsing_data command without any pre-configured scope." + }, + { + "description": "Denies the create_webview command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-create-webview", + "markdownDescription": "Denies the create_webview command without any pre-configured scope." + }, + { + "description": "Denies the create_webview_window command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-create-webview-window", + "markdownDescription": "Denies the create_webview_window command without any pre-configured scope." + }, + { + "description": "Denies the get_all_webviews command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-get-all-webviews", + "markdownDescription": "Denies the get_all_webviews command without any pre-configured scope." + }, + { + "description": "Denies the internal_toggle_devtools command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-internal-toggle-devtools", + "markdownDescription": "Denies the internal_toggle_devtools command without any pre-configured scope." + }, + { + "description": "Denies the print command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-print", + "markdownDescription": "Denies the print command without any pre-configured scope." + }, + { + "description": "Denies the reparent command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-reparent", + "markdownDescription": "Denies the reparent command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_auto_resize command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-auto-resize", + "markdownDescription": "Denies the set_webview_auto_resize command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-background-color", + "markdownDescription": "Denies the set_webview_background_color command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_focus command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-focus", + "markdownDescription": "Denies the set_webview_focus command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-position", + "markdownDescription": "Denies the set_webview_position command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-size", + "markdownDescription": "Denies the set_webview_size command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_zoom command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-zoom", + "markdownDescription": "Denies the set_webview_zoom command without any pre-configured scope." + }, + { + "description": "Denies the webview_close command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-close", + "markdownDescription": "Denies the webview_close command without any pre-configured scope." + }, + { + "description": "Denies the webview_hide command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-hide", + "markdownDescription": "Denies the webview_hide command without any pre-configured scope." + }, + { + "description": "Denies the webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-position", + "markdownDescription": "Denies the webview_position command without any pre-configured scope." + }, + { + "description": "Denies the webview_show command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-show", + "markdownDescription": "Denies the webview_show command without any pre-configured scope." + }, + { + "description": "Denies the webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-size", + "markdownDescription": "Denies the webview_size command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-windows`\n- `allow-scale-factor`\n- `allow-inner-position`\n- `allow-outer-position`\n- `allow-inner-size`\n- `allow-outer-size`\n- `allow-is-fullscreen`\n- `allow-is-minimized`\n- `allow-is-maximized`\n- `allow-is-focused`\n- `allow-is-decorated`\n- `allow-is-resizable`\n- `allow-is-maximizable`\n- `allow-is-minimizable`\n- `allow-is-closable`\n- `allow-is-visible`\n- `allow-is-enabled`\n- `allow-title`\n- `allow-current-monitor`\n- `allow-primary-monitor`\n- `allow-monitor-from-point`\n- `allow-available-monitors`\n- `allow-cursor-position`\n- `allow-theme`\n- `allow-is-always-on-top`\n- `allow-activity-name`\n- `allow-scene-identifier`\n- `allow-internal-toggle-maximize`", + "type": "string", + "const": "core:window:default", + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-windows`\n- `allow-scale-factor`\n- `allow-inner-position`\n- `allow-outer-position`\n- `allow-inner-size`\n- `allow-outer-size`\n- `allow-is-fullscreen`\n- `allow-is-minimized`\n- `allow-is-maximized`\n- `allow-is-focused`\n- `allow-is-decorated`\n- `allow-is-resizable`\n- `allow-is-maximizable`\n- `allow-is-minimizable`\n- `allow-is-closable`\n- `allow-is-visible`\n- `allow-is-enabled`\n- `allow-title`\n- `allow-current-monitor`\n- `allow-primary-monitor`\n- `allow-monitor-from-point`\n- `allow-available-monitors`\n- `allow-cursor-position`\n- `allow-theme`\n- `allow-is-always-on-top`\n- `allow-activity-name`\n- `allow-scene-identifier`\n- `allow-internal-toggle-maximize`" + }, + { + "description": "Enables the activity_name command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-activity-name", + "markdownDescription": "Enables the activity_name command without any pre-configured scope." + }, + { + "description": "Enables the available_monitors command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-available-monitors", + "markdownDescription": "Enables the available_monitors command without any pre-configured scope." + }, + { + "description": "Enables the center command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-center", + "markdownDescription": "Enables the center command without any pre-configured scope." + }, + { + "description": "Enables the close command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-close", + "markdownDescription": "Enables the close command without any pre-configured scope." + }, + { + "description": "Enables the create command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-create", + "markdownDescription": "Enables the create command without any pre-configured scope." + }, + { + "description": "Enables the current_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-current-monitor", + "markdownDescription": "Enables the current_monitor command without any pre-configured scope." + }, + { + "description": "Enables the cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-cursor-position", + "markdownDescription": "Enables the cursor_position command without any pre-configured scope." + }, + { + "description": "Enables the destroy command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-destroy", + "markdownDescription": "Enables the destroy command without any pre-configured scope." + }, + { + "description": "Enables the get_all_windows command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-get-all-windows", + "markdownDescription": "Enables the get_all_windows command without any pre-configured scope." + }, + { + "description": "Enables the hide command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-hide", + "markdownDescription": "Enables the hide command without any pre-configured scope." + }, + { + "description": "Enables the inner_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-inner-position", + "markdownDescription": "Enables the inner_position command without any pre-configured scope." + }, + { + "description": "Enables the inner_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-inner-size", + "markdownDescription": "Enables the inner_size command without any pre-configured scope." + }, + { + "description": "Enables the internal_toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-internal-toggle-maximize", + "markdownDescription": "Enables the internal_toggle_maximize command without any pre-configured scope." + }, + { + "description": "Enables the is_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-always-on-top", + "markdownDescription": "Enables the is_always_on_top command without any pre-configured scope." + }, + { + "description": "Enables the is_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-closable", + "markdownDescription": "Enables the is_closable command without any pre-configured scope." + }, + { + "description": "Enables the is_decorated command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-decorated", + "markdownDescription": "Enables the is_decorated command without any pre-configured scope." + }, + { + "description": "Enables the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-enabled", + "markdownDescription": "Enables the is_enabled command without any pre-configured scope." + }, + { + "description": "Enables the is_focused command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-focused", + "markdownDescription": "Enables the is_focused command without any pre-configured scope." + }, + { + "description": "Enables the is_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-fullscreen", + "markdownDescription": "Enables the is_fullscreen command without any pre-configured scope." + }, + { + "description": "Enables the is_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-maximizable", + "markdownDescription": "Enables the is_maximizable command without any pre-configured scope." + }, + { + "description": "Enables the is_maximized command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-maximized", + "markdownDescription": "Enables the is_maximized command without any pre-configured scope." + }, + { + "description": "Enables the is_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-minimizable", + "markdownDescription": "Enables the is_minimizable command without any pre-configured scope." + }, + { + "description": "Enables the is_minimized command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-minimized", + "markdownDescription": "Enables the is_minimized command without any pre-configured scope." + }, + { + "description": "Enables the is_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-resizable", + "markdownDescription": "Enables the is_resizable command without any pre-configured scope." + }, + { + "description": "Enables the is_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-visible", + "markdownDescription": "Enables the is_visible command without any pre-configured scope." + }, + { + "description": "Enables the maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-maximize", + "markdownDescription": "Enables the maximize command without any pre-configured scope." + }, + { + "description": "Enables the minimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-minimize", + "markdownDescription": "Enables the minimize command without any pre-configured scope." + }, + { + "description": "Enables the monitor_from_point command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-monitor-from-point", + "markdownDescription": "Enables the monitor_from_point command without any pre-configured scope." + }, + { + "description": "Enables the outer_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-outer-position", + "markdownDescription": "Enables the outer_position command without any pre-configured scope." + }, + { + "description": "Enables the outer_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-outer-size", + "markdownDescription": "Enables the outer_size command without any pre-configured scope." + }, + { + "description": "Enables the primary_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-primary-monitor", + "markdownDescription": "Enables the primary_monitor command without any pre-configured scope." + }, + { + "description": "Enables the request_user_attention command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-request-user-attention", + "markdownDescription": "Enables the request_user_attention command without any pre-configured scope." + }, + { + "description": "Enables the scale_factor command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-scale-factor", + "markdownDescription": "Enables the scale_factor command without any pre-configured scope." + }, + { + "description": "Enables the scene_identifier command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-scene-identifier", + "markdownDescription": "Enables the scene_identifier command without any pre-configured scope." + }, + { + "description": "Enables the set_always_on_bottom command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-always-on-bottom", + "markdownDescription": "Enables the set_always_on_bottom command without any pre-configured scope." + }, + { + "description": "Enables the set_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-always-on-top", + "markdownDescription": "Enables the set_always_on_top command without any pre-configured scope." + }, + { + "description": "Enables the set_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-background-color", + "markdownDescription": "Enables the set_background_color command without any pre-configured scope." + }, + { + "description": "Enables the set_badge_count command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-badge-count", + "markdownDescription": "Enables the set_badge_count command without any pre-configured scope." + }, + { + "description": "Enables the set_badge_label command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-badge-label", + "markdownDescription": "Enables the set_badge_label command without any pre-configured scope." + }, + { + "description": "Enables the set_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-closable", + "markdownDescription": "Enables the set_closable command without any pre-configured scope." + }, + { + "description": "Enables the set_content_protected command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-content-protected", + "markdownDescription": "Enables the set_content_protected command without any pre-configured scope." + }, + { + "description": "Enables the set_cursor_grab command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-grab", + "markdownDescription": "Enables the set_cursor_grab command without any pre-configured scope." + }, + { + "description": "Enables the set_cursor_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-icon", + "markdownDescription": "Enables the set_cursor_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-position", + "markdownDescription": "Enables the set_cursor_position command without any pre-configured scope." + }, + { + "description": "Enables the set_cursor_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-visible", + "markdownDescription": "Enables the set_cursor_visible command without any pre-configured scope." + }, + { + "description": "Enables the set_decorations command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-decorations", + "markdownDescription": "Enables the set_decorations command without any pre-configured scope." + }, + { + "description": "Enables the set_effects command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-effects", + "markdownDescription": "Enables the set_effects command without any pre-configured scope." + }, + { + "description": "Enables the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-enabled", + "markdownDescription": "Enables the set_enabled command without any pre-configured scope." + }, + { + "description": "Enables the set_focus command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-focus", + "markdownDescription": "Enables the set_focus command without any pre-configured scope." + }, + { + "description": "Enables the set_focusable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-focusable", + "markdownDescription": "Enables the set_focusable command without any pre-configured scope." + }, + { + "description": "Enables the set_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-fullscreen", + "markdownDescription": "Enables the set_fullscreen command without any pre-configured scope." + }, + { + "description": "Enables the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-icon", + "markdownDescription": "Enables the set_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_ignore_cursor_events command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-ignore-cursor-events", + "markdownDescription": "Enables the set_ignore_cursor_events command without any pre-configured scope." + }, + { + "description": "Enables the set_max_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-max-size", + "markdownDescription": "Enables the set_max_size command without any pre-configured scope." + }, + { + "description": "Enables the set_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-maximizable", + "markdownDescription": "Enables the set_maximizable command without any pre-configured scope." + }, + { + "description": "Enables the set_min_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-min-size", + "markdownDescription": "Enables the set_min_size command without any pre-configured scope." + }, + { + "description": "Enables the set_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-minimizable", + "markdownDescription": "Enables the set_minimizable command without any pre-configured scope." + }, + { + "description": "Enables the set_overlay_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-overlay-icon", + "markdownDescription": "Enables the set_overlay_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-position", + "markdownDescription": "Enables the set_position command without any pre-configured scope." + }, + { + "description": "Enables the set_progress_bar command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-progress-bar", + "markdownDescription": "Enables the set_progress_bar command without any pre-configured scope." + }, + { + "description": "Enables the set_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-resizable", + "markdownDescription": "Enables the set_resizable command without any pre-configured scope." + }, + { + "description": "Enables the set_shadow command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-shadow", + "markdownDescription": "Enables the set_shadow command without any pre-configured scope." + }, + { + "description": "Enables the set_simple_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-simple-fullscreen", + "markdownDescription": "Enables the set_simple_fullscreen command without any pre-configured scope." + }, + { + "description": "Enables the set_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-size", + "markdownDescription": "Enables the set_size command without any pre-configured scope." + }, + { + "description": "Enables the set_size_constraints command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-size-constraints", + "markdownDescription": "Enables the set_size_constraints command without any pre-configured scope." + }, + { + "description": "Enables the set_skip_taskbar command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-skip-taskbar", + "markdownDescription": "Enables the set_skip_taskbar command without any pre-configured scope." + }, + { + "description": "Enables the set_theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-theme", + "markdownDescription": "Enables the set_theme command without any pre-configured scope." + }, + { + "description": "Enables the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-title", + "markdownDescription": "Enables the set_title command without any pre-configured scope." + }, + { + "description": "Enables the set_title_bar_style command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-title-bar-style", + "markdownDescription": "Enables the set_title_bar_style command without any pre-configured scope." + }, + { + "description": "Enables the set_visible_on_all_workspaces command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-visible-on-all-workspaces", + "markdownDescription": "Enables the set_visible_on_all_workspaces command without any pre-configured scope." + }, + { + "description": "Enables the show command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-show", + "markdownDescription": "Enables the show command without any pre-configured scope." + }, + { + "description": "Enables the start_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-start-dragging", + "markdownDescription": "Enables the start_dragging command without any pre-configured scope." + }, + { + "description": "Enables the start_resize_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-start-resize-dragging", + "markdownDescription": "Enables the start_resize_dragging command without any pre-configured scope." + }, + { + "description": "Enables the theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-theme", + "markdownDescription": "Enables the theme command without any pre-configured scope." + }, + { + "description": "Enables the title command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-title", + "markdownDescription": "Enables the title command without any pre-configured scope." + }, + { + "description": "Enables the toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-toggle-maximize", + "markdownDescription": "Enables the toggle_maximize command without any pre-configured scope." + }, + { + "description": "Enables the unmaximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-unmaximize", + "markdownDescription": "Enables the unmaximize command without any pre-configured scope." + }, + { + "description": "Enables the unminimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-unminimize", + "markdownDescription": "Enables the unminimize command without any pre-configured scope." + }, + { + "description": "Denies the activity_name command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-activity-name", + "markdownDescription": "Denies the activity_name command without any pre-configured scope." + }, + { + "description": "Denies the available_monitors command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-available-monitors", + "markdownDescription": "Denies the available_monitors command without any pre-configured scope." + }, + { + "description": "Denies the center command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-center", + "markdownDescription": "Denies the center command without any pre-configured scope." + }, + { + "description": "Denies the close command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-close", + "markdownDescription": "Denies the close command without any pre-configured scope." + }, + { + "description": "Denies the create command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-create", + "markdownDescription": "Denies the create command without any pre-configured scope." + }, + { + "description": "Denies the current_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-current-monitor", + "markdownDescription": "Denies the current_monitor command without any pre-configured scope." + }, + { + "description": "Denies the cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-cursor-position", + "markdownDescription": "Denies the cursor_position command without any pre-configured scope." + }, + { + "description": "Denies the destroy command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-destroy", + "markdownDescription": "Denies the destroy command without any pre-configured scope." + }, + { + "description": "Denies the get_all_windows command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-get-all-windows", + "markdownDescription": "Denies the get_all_windows command without any pre-configured scope." + }, + { + "description": "Denies the hide command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-hide", + "markdownDescription": "Denies the hide command without any pre-configured scope." + }, + { + "description": "Denies the inner_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-inner-position", + "markdownDescription": "Denies the inner_position command without any pre-configured scope." + }, + { + "description": "Denies the inner_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-inner-size", + "markdownDescription": "Denies the inner_size command without any pre-configured scope." + }, + { + "description": "Denies the internal_toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-internal-toggle-maximize", + "markdownDescription": "Denies the internal_toggle_maximize command without any pre-configured scope." + }, + { + "description": "Denies the is_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-always-on-top", + "markdownDescription": "Denies the is_always_on_top command without any pre-configured scope." + }, + { + "description": "Denies the is_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-closable", + "markdownDescription": "Denies the is_closable command without any pre-configured scope." + }, + { + "description": "Denies the is_decorated command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-decorated", + "markdownDescription": "Denies the is_decorated command without any pre-configured scope." + }, + { + "description": "Denies the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-enabled", + "markdownDescription": "Denies the is_enabled command without any pre-configured scope." + }, + { + "description": "Denies the is_focused command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-focused", + "markdownDescription": "Denies the is_focused command without any pre-configured scope." + }, + { + "description": "Denies the is_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-fullscreen", + "markdownDescription": "Denies the is_fullscreen command without any pre-configured scope." + }, + { + "description": "Denies the is_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-maximizable", + "markdownDescription": "Denies the is_maximizable command without any pre-configured scope." + }, + { + "description": "Denies the is_maximized command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-maximized", + "markdownDescription": "Denies the is_maximized command without any pre-configured scope." + }, + { + "description": "Denies the is_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-minimizable", + "markdownDescription": "Denies the is_minimizable command without any pre-configured scope." + }, + { + "description": "Denies the is_minimized command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-minimized", + "markdownDescription": "Denies the is_minimized command without any pre-configured scope." + }, + { + "description": "Denies the is_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-resizable", + "markdownDescription": "Denies the is_resizable command without any pre-configured scope." + }, + { + "description": "Denies the is_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-visible", + "markdownDescription": "Denies the is_visible command without any pre-configured scope." + }, + { + "description": "Denies the maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-maximize", + "markdownDescription": "Denies the maximize command without any pre-configured scope." + }, + { + "description": "Denies the minimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-minimize", + "markdownDescription": "Denies the minimize command without any pre-configured scope." + }, + { + "description": "Denies the monitor_from_point command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-monitor-from-point", + "markdownDescription": "Denies the monitor_from_point command without any pre-configured scope." + }, + { + "description": "Denies the outer_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-outer-position", + "markdownDescription": "Denies the outer_position command without any pre-configured scope." + }, + { + "description": "Denies the outer_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-outer-size", + "markdownDescription": "Denies the outer_size command without any pre-configured scope." + }, + { + "description": "Denies the primary_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-primary-monitor", + "markdownDescription": "Denies the primary_monitor command without any pre-configured scope." + }, + { + "description": "Denies the request_user_attention command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-request-user-attention", + "markdownDescription": "Denies the request_user_attention command without any pre-configured scope." + }, + { + "description": "Denies the scale_factor command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-scale-factor", + "markdownDescription": "Denies the scale_factor command without any pre-configured scope." + }, + { + "description": "Denies the scene_identifier command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-scene-identifier", + "markdownDescription": "Denies the scene_identifier command without any pre-configured scope." + }, + { + "description": "Denies the set_always_on_bottom command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-always-on-bottom", + "markdownDescription": "Denies the set_always_on_bottom command without any pre-configured scope." + }, + { + "description": "Denies the set_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-always-on-top", + "markdownDescription": "Denies the set_always_on_top command without any pre-configured scope." + }, + { + "description": "Denies the set_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-background-color", + "markdownDescription": "Denies the set_background_color command without any pre-configured scope." + }, + { + "description": "Denies the set_badge_count command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-badge-count", + "markdownDescription": "Denies the set_badge_count command without any pre-configured scope." + }, + { + "description": "Denies the set_badge_label command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-badge-label", + "markdownDescription": "Denies the set_badge_label command without any pre-configured scope." + }, + { + "description": "Denies the set_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-closable", + "markdownDescription": "Denies the set_closable command without any pre-configured scope." + }, + { + "description": "Denies the set_content_protected command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-content-protected", + "markdownDescription": "Denies the set_content_protected command without any pre-configured scope." + }, + { + "description": "Denies the set_cursor_grab command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-grab", + "markdownDescription": "Denies the set_cursor_grab command without any pre-configured scope." + }, + { + "description": "Denies the set_cursor_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-icon", + "markdownDescription": "Denies the set_cursor_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-position", + "markdownDescription": "Denies the set_cursor_position command without any pre-configured scope." + }, + { + "description": "Denies the set_cursor_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-visible", + "markdownDescription": "Denies the set_cursor_visible command without any pre-configured scope." + }, + { + "description": "Denies the set_decorations command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-decorations", + "markdownDescription": "Denies the set_decorations command without any pre-configured scope." + }, + { + "description": "Denies the set_effects command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-effects", + "markdownDescription": "Denies the set_effects command without any pre-configured scope." + }, + { + "description": "Denies the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-enabled", + "markdownDescription": "Denies the set_enabled command without any pre-configured scope." + }, + { + "description": "Denies the set_focus command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-focus", + "markdownDescription": "Denies the set_focus command without any pre-configured scope." + }, + { + "description": "Denies the set_focusable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-focusable", + "markdownDescription": "Denies the set_focusable command without any pre-configured scope." + }, + { + "description": "Denies the set_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-fullscreen", + "markdownDescription": "Denies the set_fullscreen command without any pre-configured scope." + }, + { + "description": "Denies the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-icon", + "markdownDescription": "Denies the set_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_ignore_cursor_events command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-ignore-cursor-events", + "markdownDescription": "Denies the set_ignore_cursor_events command without any pre-configured scope." + }, + { + "description": "Denies the set_max_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-max-size", + "markdownDescription": "Denies the set_max_size command without any pre-configured scope." + }, + { + "description": "Denies the set_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-maximizable", + "markdownDescription": "Denies the set_maximizable command without any pre-configured scope." + }, + { + "description": "Denies the set_min_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-min-size", + "markdownDescription": "Denies the set_min_size command without any pre-configured scope." + }, + { + "description": "Denies the set_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-minimizable", + "markdownDescription": "Denies the set_minimizable command without any pre-configured scope." + }, + { + "description": "Denies the set_overlay_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-overlay-icon", + "markdownDescription": "Denies the set_overlay_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-position", + "markdownDescription": "Denies the set_position command without any pre-configured scope." + }, + { + "description": "Denies the set_progress_bar command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-progress-bar", + "markdownDescription": "Denies the set_progress_bar command without any pre-configured scope." + }, + { + "description": "Denies the set_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-resizable", + "markdownDescription": "Denies the set_resizable command without any pre-configured scope." + }, + { + "description": "Denies the set_shadow command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-shadow", + "markdownDescription": "Denies the set_shadow command without any pre-configured scope." + }, + { + "description": "Denies the set_simple_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-simple-fullscreen", + "markdownDescription": "Denies the set_simple_fullscreen command without any pre-configured scope." + }, + { + "description": "Denies the set_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-size", + "markdownDescription": "Denies the set_size command without any pre-configured scope." + }, + { + "description": "Denies the set_size_constraints command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-size-constraints", + "markdownDescription": "Denies the set_size_constraints command without any pre-configured scope." + }, + { + "description": "Denies the set_skip_taskbar command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-skip-taskbar", + "markdownDescription": "Denies the set_skip_taskbar command without any pre-configured scope." + }, + { + "description": "Denies the set_theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-theme", + "markdownDescription": "Denies the set_theme command without any pre-configured scope." + }, + { + "description": "Denies the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-title", + "markdownDescription": "Denies the set_title command without any pre-configured scope." + }, + { + "description": "Denies the set_title_bar_style command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-title-bar-style", + "markdownDescription": "Denies the set_title_bar_style command without any pre-configured scope." + }, + { + "description": "Denies the set_visible_on_all_workspaces command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-visible-on-all-workspaces", + "markdownDescription": "Denies the set_visible_on_all_workspaces command without any pre-configured scope." + }, + { + "description": "Denies the show command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-show", + "markdownDescription": "Denies the show command without any pre-configured scope." + }, + { + "description": "Denies the start_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-start-dragging", + "markdownDescription": "Denies the start_dragging command without any pre-configured scope." + }, + { + "description": "Denies the start_resize_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-start-resize-dragging", + "markdownDescription": "Denies the start_resize_dragging command without any pre-configured scope." + }, + { + "description": "Denies the theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-theme", + "markdownDescription": "Denies the theme command without any pre-configured scope." + }, + { + "description": "Denies the title command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-title", + "markdownDescription": "Denies the title command without any pre-configured scope." + }, + { + "description": "Denies the toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-toggle-maximize", + "markdownDescription": "Denies the toggle_maximize command without any pre-configured scope." + }, + { + "description": "Denies the unmaximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-unmaximize", + "markdownDescription": "Denies the unmaximize command without any pre-configured scope." + }, + { + "description": "Denies the unminimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-unminimize", + "markdownDescription": "Denies the unminimize command without any pre-configured scope." + }, + { + "description": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer\n#### This default permission set includes:\n\n- `allow-open-url`\n- `allow-reveal-item-in-dir`\n- `allow-default-urls`", + "type": "string", + "const": "opener:default", + "markdownDescription": "This permission set allows opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application\nas well as reveal file in directories using default file explorer\n#### This default permission set includes:\n\n- `allow-open-url`\n- `allow-reveal-item-in-dir`\n- `allow-default-urls`" + }, + { + "description": "This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application.", + "type": "string", + "const": "opener:allow-default-urls", + "markdownDescription": "This enables opening `mailto:`, `tel:`, `https://` and `http://` urls using their default application." + }, + { + "description": "Enables the open_path command without any pre-configured scope.", + "type": "string", + "const": "opener:allow-open-path", + "markdownDescription": "Enables the open_path command without any pre-configured scope." + }, + { + "description": "Enables the open_url command without any pre-configured scope.", + "type": "string", + "const": "opener:allow-open-url", + "markdownDescription": "Enables the open_url command without any pre-configured scope." + }, + { + "description": "Enables the reveal_item_in_dir command without any pre-configured scope.", + "type": "string", + "const": "opener:allow-reveal-item-in-dir", + "markdownDescription": "Enables the reveal_item_in_dir command without any pre-configured scope." + }, + { + "description": "Denies the open_path command without any pre-configured scope.", + "type": "string", + "const": "opener:deny-open-path", + "markdownDescription": "Denies the open_path command without any pre-configured scope." + }, + { + "description": "Denies the open_url command without any pre-configured scope.", + "type": "string", + "const": "opener:deny-open-url", + "markdownDescription": "Denies the open_url command without any pre-configured scope." + }, + { + "description": "Denies the reveal_item_in_dir command without any pre-configured scope.", + "type": "string", + "const": "opener:deny-reveal-item-in-dir", + "markdownDescription": "Denies the reveal_item_in_dir command without any pre-configured scope." + }, + { + "description": "This permission set configures which\nprocess features are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n\n#### This default permission set includes:\n\n- `allow-exit`\n- `allow-restart`", + "type": "string", + "const": "process:default", + "markdownDescription": "This permission set configures which\nprocess features are by default exposed.\n\n#### Granted Permissions\n\nThis enables to quit via `allow-exit` and restart via `allow-restart`\nthe application.\n\n#### This default permission set includes:\n\n- `allow-exit`\n- `allow-restart`" + }, + { + "description": "Enables the exit command without any pre-configured scope.", + "type": "string", + "const": "process:allow-exit", + "markdownDescription": "Enables the exit command without any pre-configured scope." + }, + { + "description": "Enables the restart command without any pre-configured scope.", + "type": "string", + "const": "process:allow-restart", + "markdownDescription": "Enables the restart command without any pre-configured scope." + }, + { + "description": "Denies the exit command without any pre-configured scope.", + "type": "string", + "const": "process:deny-exit", + "markdownDescription": "Denies the exit command without any pre-configured scope." + }, + { + "description": "Denies the restart command without any pre-configured scope.", + "type": "string", + "const": "process:deny-restart", + "markdownDescription": "Denies the restart command without any pre-configured scope." + }, + { + "description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality with a reasonable\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`", + "type": "string", + "const": "shell:default", + "markdownDescription": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality with a reasonable\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`" + }, + { + "description": "Enables the execute command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-execute", + "markdownDescription": "Enables the execute command without any pre-configured scope." + }, + { + "description": "Enables the kill command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-kill", + "markdownDescription": "Enables the kill command without any pre-configured scope." + }, + { + "description": "Enables the open command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-open", + "markdownDescription": "Enables the open command without any pre-configured scope." + }, + { + "description": "Enables the spawn command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-spawn", + "markdownDescription": "Enables the spawn command without any pre-configured scope." + }, + { + "description": "Enables the stdin_write command without any pre-configured scope.", + "type": "string", + "const": "shell:allow-stdin-write", + "markdownDescription": "Enables the stdin_write command without any pre-configured scope." + }, + { + "description": "Denies the execute command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-execute", + "markdownDescription": "Denies the execute command without any pre-configured scope." + }, + { + "description": "Denies the kill command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-kill", + "markdownDescription": "Denies the kill command without any pre-configured scope." + }, + { + "description": "Denies the open command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-open", + "markdownDescription": "Denies the open command without any pre-configured scope." + }, + { + "description": "Denies the spawn command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-spawn", + "markdownDescription": "Denies the spawn command without any pre-configured scope." + }, + { + "description": "Denies the stdin_write command without any pre-configured scope.", + "type": "string", + "const": "shell:deny-stdin-write", + "markdownDescription": "Denies the stdin_write command without any pre-configured scope." + } + ] + }, + "Value": { + "description": "All supported ACL values.", + "anyOf": [ + { + "description": "Represents a null JSON value.", + "type": "null" + }, + { + "description": "Represents a [`bool`].", + "type": "boolean" + }, + { + "description": "Represents a valid ACL [`Number`].", + "allOf": [ + { + "$ref": "#/definitions/Number" + } + ] + }, + { + "description": "Represents a [`String`].", + "type": "string" + }, + { + "description": "Represents a list of other [`Value`]s.", + "type": "array", + "items": { + "$ref": "#/definitions/Value" + } + }, + { + "description": "Represents a map of [`String`] keys to [`Value`]s.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Value" + } + } + ] + }, + "Number": { + "description": "A valid ACL number.", + "anyOf": [ + { + "description": "Represents an [`i64`].", + "type": "integer", + "format": "int64" + }, + { + "description": "Represents a [`f64`].", + "type": "number", + "format": "double" + } + ] + }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + }, + "Application": { + "description": "Opener scope application.", + "anyOf": [ + { + "description": "Open in default application.", + "type": "null" + }, + { + "description": "If true, allow open with any application.", + "type": "boolean" + }, + { + "description": "Allow specific application to open with.", + "type": "string" + } + ] + }, + "ShellScopeEntryAllowedArg": { + "description": "A command argument allowed to be executed by the webview API.", + "anyOf": [ + { + "description": "A non-configurable argument that is passed to the command in the order it was specified.", + "type": "string" + }, + { + "description": "A variable that is set while calling the command from the webview API.", + "type": "object", + "required": [ + "validator" + ], + "properties": { + "raw": { + "description": "Marks the validator as a raw regex, meaning the plugin should not make any modification at runtime.\n\nThis means the regex will not match on the entire string by default, which might be exploited if your regex allow unexpected input to be considered valid. When using this option, make sure your regex is correct.", + "default": false, + "type": "boolean" + }, + "validator": { + "description": "[regex] validator to require passed values to conform to an expected input.\n\nThis will require the argument value passed to this variable to match the `validator` regex before it will be executed.\n\nThe regex string is by default surrounded by `^...$` to match the full string. For example the `https?://\\w+` regex would be registered as `^https?://\\w+$`.\n\n[regex]: ", + "type": "string" + } + }, + "additionalProperties": false + } + ] + }, + "ShellScopeEntryAllowedArgs": { + "description": "A set of command arguments allowed to be executed by the webview API.\n\nA value of `true` will allow any arguments to be passed to the command. `false` will disable all arguments. A list of [`ShellScopeEntryAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration.", + "anyOf": [ + { + "description": "Use a simple boolean to allow all or disable all arguments to this command configuration.", + "type": "boolean" + }, + { + "description": "A specific set of [`ShellScopeEntryAllowedArg`] that are valid to call for the command configuration.", + "type": "array", + "items": { + "$ref": "#/definitions/ShellScopeEntryAllowedArg" + } + } + ] + } + } +} \ No newline at end of file diff --git a/src-tauri/icons/128x128.png b/src-tauri/icons/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..8905f11b027d880ae11f7a990610455b3d69e472 GIT binary patch literal 5907 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/128x128@2x.png b/src-tauri/icons/128x128@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7abd365e2e0da89bd1c372abebc1bd29e82a7d52 GIT binary patch literal 12920 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square284x284Logo.png b/src-tauri/icons/Square284x284Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..28faf5df03aa5bb951c480e140ede17b964dba89 GIT binary patch literal 15079 zcmXY2Wn5d$(+w7idx3=D?h*n7DDLi1+`YIyrsAlC`H=-^Sr%|YXZBP!^8$Pb#)2V zQbH3kgt5}rB9v*-DrtD zimBC^M~>~GLr>zq$9g zzcY@>ziCnAPS&++qlt1B?P0+CM8zk1m;#qZr`V@8kDqi44lX_boqd$7pxP8V_ z*_=F1__oxbO_s>MFvkK?%R-V~P6f5D65oFaa?xu@dZd zIuojY(g(Bs{se?Zjz_nRUlDztQ89m3X!^v>k=s$ctse0%AYeH4}DV-@H2d@aD3bb@diL8Hq+{EDXoIY{;oI? zr`^7hm^GAH(oh+{gDORm!B~+HZ@J;d^ZicC`jR5wm@p5|9%?;I2V?iJ z(m(r2%l|8C<+qVTAMm&MsbA9Np~xS6nz+`Uu@IuyJ{>yFrz%V2Z4zn(TLBtmb|pw6 zn%`;n{Bn-oFZCBBp9J&q?EP+lFPs%%m;vYa{h&!LPDf;oUf(R`f-<&X;pp5vqZI8o zaS-X^`VwIY)ekQY=IRN5wX8)lsQ@!OaALc`DU?)YKmFhR4xFJWhpxFc_n%#1w$uDm#3{0ciTzfChSn6TQxZ*B1mYv$CS+@Xz|$KXL8Eny0} zTVDG*Hy{BidiyJhB5G9Pk$+0vA2w_}G_7n+=m^)%Xkx^IA%+uWh-mcou?)5#Ae&WK zg*J3C-zVN#BB1UKPxr~fQ}Vdiop_%4b^yXniM7IWhoDhxlNJ7$Qq)9ghEd<^+tx12 z`@Pxv48}mcL~Is@Dr)cnHG0Q|rh+Ji-&VUhQqQihkY>MGv|WtGkLi}Wu+OfX+!s{6 zuN{&l1=%*4|BO>yrW`SGR10t+ycia4B3&tD=kZTyj?iM(#DPQR@5mC9oQQ2OLp2`x zK%@(QUuyK7gl}k(!Rz)FEKMw(R%m=YkCPr4?dbb;zaxGfmG_*Z{bE-VB;cefhO50% zF2&n&$d>kX7H(YV%BDe+ib*vm`Ka}-a!oH zlC0ZgsJ~LHFF#ySnCb*?0ga7*)9;r&Su`0{8jMm|jE$}f!g7KMv#t5aF|hI?z5`>6 zfpbdxWN~dssb`W-Nsz_8RGVq0^Q3-4r|fK_ z6we{4_YyQ*bo+ectQn~-c0BKNW3#`~#lYP&RT zD_9j4JJ|{-=Zje@#M_Laz-j^VYZrwkMS`VwpK*cHPzFBO4N79ZhZk|X^LO)38m;Gb&%XSBn z2RfFtp(6=27zs8^S-CjXd^qhsRxU`R{=lSGGa_GaaXBsgIXhcAI~+NHpwZ;NS8g>k zO0a&X$?H;W<>;_5G7@+I-iS_~yGY}oF5ArC6;?!y?E7LBUuwC0ZH*;VL5nyB} zT9=e8JdNG82(NXTTg0jUp#X`-_@IYH4^J2CRwvjU96{eJy6_(X#270+SL=!qaZyPW zwT?QkuwL@+9TW8$hpGsL;}B_mLq^Vl{B8`b9`;jRRq>!b4G z?ECGR_PB0}Jv~#j-|ZGdh_U({+CyaJ?mFF-+T(hOJxW8*6wzRHiab0rrtJ@X9%v#rAP`Rw76HNSg0O0YA(~53#nB-M^+wMzJ;RXM-6v?l4dyiSoib zwnikIp;2Ip0@4cZd2XIqNsdp!>^HwB9zn^6@0PoZ{jyVDjgO9M`$DKZ`TG0f8YgZO zlq1qTSm!_VBdk-Rj`JCg>?b}jS#TqwsHUz`FO8FOr|c$+)_>=oylyjQgRl#0l6zUv@DLypjfaaNKf6Wq zfmC5j#gE3*4F9W1WUPYV@!fnZcaaOHO^!ZiHTIol>+vxHo9w#T8cjDOF}~OGxyKHCAU#8bJ4M7BpOkHRq6!AGK*}Hsja_Ij;xAq**t;iHD9qUE%?fV{;raY@I_nNy2qTTOd6w#=HCL-HSD*&-u3!Dp4Gqq zJnS+6te<Cs)23nLaAK5|NUum*wCipo^6Q@}{*y4Q@mJa}3R@3PP2?ZEqGn

yXmsoRz0PE_A6}% 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 G*#7{wifG9I literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square30x30Logo.png b/src-tauri/icons/Square30x30Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..94356e9ecd6cb5d7c43828c4439355a25df2fe74 GIT binary patch literal 1221 zcmV;$1UmbPP)@F1qqt!5CdsH;VM*W!=(%$fLeLqU}bI?nT>IL_w&u zV)7Kfb@M>oG@EWj@v|T#EhI6w^P8R*k^Q93Z(bI+VJznM96=FT-K52e#-k2Zd0 zS=I}F{>;xPbBsBy7~`mtVa+oq9ob|!0AkKCO%qD1nO_-(@g>hyQDJn&dw$|Q-!WgX zK9lDx)@S7f#v%Y>%$vXA#}CXUwiwgQrh~zjk{e16`iJ>j2LCZz_XA*Ez~k4v;WH&l zGJBk&lZRkLirK3ic+Gmh$i^`2@YMk+FX=`&5#cg}B5D zh!qvIROyT}f6PW)nF@GHfhL_m@9*#F?CgxLudnIi;(}7C)C17-^K-hnxsf$k>p-T` z?NeA1>i5}#pjzN@0xc>kqRGigs;a7@`ucjBot+iXySqE;=;)xv#zv~FtfYyF30a#5 zTyz5qm?jTC<@e{>JFH_e>+2J5eLkPay1Ke(e}A81v6vVzGc!Y@ zqoWcPU5A!bz<3T!1KEayhjYwDIxx@E?d>g9R8&w~TN`a`YzRO@LxXr54u>-atgWrl z(9jTVZEcCMh=8p_48BnIH@{cJ#(4J!1Sxk|AaO3KU2>G=4V0)c?cBXjkv z2Swhzp_Y~wG1A`WTGsM~T30+bH%BEUCA7S}OsA)(w6n8A>+9vUJOhODM{*4h57YMcHkFo^QZyQ+ z+S*ztU>hT9vhb}|)*QnPPyier9@5CjNCp&%1%Te(UYYCc?36q0^?Kb(Ck%Rv>-4+Z zSpXD8VPRoG5(*xJnwpvLg_gT++J$TT~px^WHy?XLz@e!ZI2cJd8`iS>kOCx~qBTv56 z>M6N30$?5V9gTpl^Cdttjey;RG0m%1HsRETJds2f8#T`uK^x1d*~48K_@A4-Fgp~; zY4$KsjW?1ez~H}V&0bO|c?@9EZuX!{12t_2O|4L*ZEzmr`y5hDxoyC`Vk-}rEw{T% z>@hYy+GQ%nD5K0_H~ j*(wSW@B1rTM>hQn2f5`u*rWAa00000NkvXXu0mjfzwu0u literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square310x310Logo.png b/src-tauri/icons/Square310x310Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7edf22c4ab19bed3c7d1315c30a2004df3268d7d GIT binary patch literal 17437 zcmW(+WmFsO5)SU}!6{C#65O5QUaYvg7k4O9+&#FvQ{0QYI}~Y4akrcA{>c8w*^|uK znR#a(*(gA{&8I>Y(yvB>AkSc^GdYn2MX*c&p^Cq8>x;zSaj&?2>g=8uLwlx(J8~zYUL*Ye3 ztfq-CtxTXMej&ED_15d8wB+c(C3~-EwD7uptg#{7)FjCDMQbNu^uGHutB(4I+uK{h zPa~}k-o<6VPju4%wA^HAyIV_-65eFpo_0k{^OjyuopizFI!Pa&op!Ne2(2VV_>srj z0!g?*+*vQa+`pH~OB&KffWRsnP}wD2_b9GUJc4^q%5-n(b*dM6Ze77O<*6S5`R8Ac zFIw*9g&%sFW6kK38@vgMB|$y#KM_B=<=L369D6B|u0QB6*bo7;@c_*Q2WdA3Rsx;_ z{IRj7x7}e6aoE=i0$-%^iTc{Ui=2OUAIeaf@t4`T{X@3HZ3d_^hL{l4Y_F9 zIp4SGosw&Q_b=KhK4&__t2zSqRxrNcJnqD{KgNM1MM)>Gt&S^a_$u$YU!Kh=Xd+%AR&(vuKm-vM`cA^Mwm z7aC5;Wim>cQDi_Hp2N7X_4RG>!S;!OTJC`XtGLZ-o zc?g~6COl}oZ^-=2C2eks8pva(9yutGTFM-<$rD2u!wsN#*{ zifYj9LBp_sRpVy0W#CK;z-x{|AS6z9epTH3)x7kR)-mLBeF~=QE$ZRNk@MaBYy~q| zn6+g0u%AywoU+{G2EY2?;7DWOX046PZI=#iQN}z!>yZE)&V{l$n0gxco`1V;fecGH zqedpc+XWp@x>KYNzPISk==K$N+5AexJ^}hAnYU$}V&*??rM1HV;^Td9ZjbV=(h#mgp@0TOomIC^+yHXu%Zmq+HBdXDpZBp|+E90pgI{o-Pg0t1gM{9Sz^F!Ey;_3EEf%DexY#?dV~gF^F@OxG&j``3 z@wRTpHnEH=btxSqG{=wj)t*{um3pYx`1;HK*SCcnKK$7ime>uH-JY+t{Dg?Dee-#{ zXa&-|-~Y9xFT8p(l-kw9ixG)`Dw#NaXxDR7ys|JxoBmro`iipnCRZl;9pUF27h&(K zGjKPLCg?}_@($X65kAW7aE!H_pg1!L%ly{hlJ%w{Orrwx?}ToTz(nRAfXtfm=d`)XSOgdo>5!GiqcW#=A*9zk!@(UE?2!9py<0rj zE+H+1fP|!D>bRQKkC0KsJGV{__m5OVQXSpiavgPjY0d-`EBsx0Fla=bX-=bC+bY^V z?n;qCiOC`9Q&HLxpvCQ!Ln&B~HQ8R5*&WO5?5_BdrsmWQQezTpRwJm7)Hsqh`4^^u z-jAiTiTd#Ya-+(pBjw}gl&tmsdQ2kNLQY>S{YPp{jSCS&#>GpJC#;=_^8 zTTb8E*XDoua{5aNim2ikFd?J(<(aR1Yu95*@LLjfR@G;o&C3ip?O!Z)m`QpnQGWA_ z9cRy7vibP%{jmVqpne<--A^pl4 zQuQ}#9c{!cw$sy91zXpu2hnnU~cyxIF(Q+;*OfPS;=oA~J5$=9rA zO%O{kWI2)IP2c?a>+;Ir%m`#8sZpL*dV8QaOo+V^BQlK^WwV+#6qow<1m`2LP)40j_^0rW>r#Nyu9)TB0*10 z)SxvXNyhE*H5gSmih}p^SIX&o zbCXM%mkMoPEB|!`mDx97>7-hfI`qB*2tB^+8Lfc-DzZgW>BxXV?>yOWAFP7WQK@zP zcdKG*J#_oMAfS&>@6|j zJBPTe^yr+SU=wctRHc~eGhFUlCO3DQdFykGg~fK$PoeJN&2Q-TZ}d&?%H|4QT;&b* zVQ7xM49=wbOk4HUsIV=`t7RhtxJ>Q2QoEi;bef0_%(O+j#6AxRyPjV5>J3uVJ~Jl4 zQV52UO3f$) z`m3bQl0;9E*73?QcKclf2h8Mh)`7tz^gnq-b*1&j)rhHKXQU_QB?m> zHHx$-CFMWcaC%STg~o|14Si^9#)y@*u4~m;)`|#b4di!{66M8S^RX2y{&=5!&uSF* z5HroX_1_`;HMa%3OU=)7Cxs-zA?et8YO zyBV={vQkH|r_aLc+@WiXHRyQ3MvEzbaFyM%-mKv6DDPv%(?X%~h%2p;{RqttEz+i( zE`Qvn0+Fol=v4G9Jb9_BSf=vy08P@dIjyr`$lVj3+QUXQf-ODNEmcmkbTm4_g379gPMJeV&u9W26i^Cc%TZ_ zH{vhlx;i>ZD2}TKl4_579r?DnB?iPTOP+-X?mm^=MBmL#aBM2zuUJj`MBp9W25HVM zC4R4Bs#eKJA|u$^ku2)yNX@e}YgTl}v0d{5QR7nKH5S$VS{6<@bPBvM+6oSw#;$4R z#WZUxX8t`&+I&ZyP;Zuy&sv3F`aAlgGzP;S zkGo$~o-I2c>iEE4%YHTWC>RCg4^KGlQ&`OMSt!h?l@xJmkP$UiLQCGJ6GkSVEQ7+3 zXb*yh@2-a-t{Xzj-*t4BKXssfOkYH$A;Q1SKwjJ~ENlJ6Iy7)HvBElolp||~H4wez z!YkdvbpeZD%T@^C`QfU&%BHm9v7k18CTI6Utju8K3iZ&&ebSN<4Nai{m1+mu@~`ab zWpI9Q*!TFH76AerVTIszJw$Fo!Zg^`ChZcPyrTNSw(a7y8JJKwWS262ft7lN&~SDh z1?oU_`esU#(TM;AT)(+;&2{|6u?h84sy+V^qU;hfBho{4<4B{qx$l(gSpveCQ7*{9Wc zJ(KSQr6ZOs4i3cRo>4`uBmZ!rEf$5NZv4|RjCJtCC37Dp;hNluHd&mxiOD6u#1qq` zI&Ay7*+(?i*FRWj+kn<0Mo>zw*5x^+9d2cMxs!CERjl*UNW@*5Lq87U zIxNY4*83DxfwuMp6q=2!VD=JX z0J?P%FTSjxjWm45%GVDjOAIE zv;Cw76a7fCQmy;J&}$Fja_O^C6lK7JctEXzUh3m(&dv{FF9D;vnH7B};fB|{jhKMf zCzRS!+;!3q-L_Oy{qF2~`Yqp*cAh9HY`_-fCaWmg6uy5sIX(aCT=u@ds=VARsCc)O zOZ279*t3(stvT20Fg%kRB8<}g^$;?`B2ghcf2{ZOk zHt^5$Sq)ZQeYE9o@MkBl_d7&ZxgKd=|2mFou9?IY_zx2#hseKfQU|jsIxnoihUEeXOIt2YGC6zx!|T$t z!ToezweFi-T^)u_Q^Nqo9?O=bja{1f<*vRa@_eI(Lc?AJsf-NMd{C$D5_5y~T;Z(0 z?Rn30ZTsE2-SFYh{(_4 zi$qk2>Gi-N|85W*ZM!r{=8*3PXPmUhsB@HSJjmS;o(dRVsSqCg`Zkr#OXUB2M*z(R z2DPa})KCgl!}!|-xwXU1SA|s%E*8sDaRNNo!Bh=pera@)k5bLnb2RGCRdrQZQ)PF1 z-zcN2>U#7LQG4Fso>zl_FR^e)nE1yzZpy{|_=(eT+FGcg27B5gN(5M0eR1Gme|}%# zm#O9jWx=Qz_8y&(4Mb9V>@Ca2fy;{im#%-Ee~KSb1Y`}wFpe0+&aNidiMBdD>}El_ z61g${Hf-xvC)TB8u}Yu+@!L)%9z0Lx3G06+ z;gUf_-Cc=6D;L)nIe~-@rG7SK>il}1H!W9A?p-Bf?T~AO?q;0KYph|SRjk6T@z(OO zhoZ`)gU9X5mt3-N9(JAt6i0}mb-sR5IcsFVKpBt4IR4L-nB>ys-oQYVc1JOcz@lSr zBJYe-dyCAX1aX0uCe@l&#o(x=-aqt>vL%>bXH47q_HH-8p zNi1Pafd+^4?@z1DFyk-qMk=zR2j>6%h4n0z%P_&`$Su!}DT4Anr`xWNy-E*XsxUqV z)w=K^$)K!cB6%K+|CTJ$W&VgEQB3wh3Du90g_R*{J$nMI527iL!4Bs5@5Ij|Y$nD$+ZCi@V{TOy0d(-+= z7-bG`=WjD1`dZ>s7<2Pz>|LrNMEolggXHp|>q&G9hxh(Zr)6f+r$MEN*LZJ=LBQG; zQq@pI%rneWCxJ4e>*$@Ye^=H1cHeL31pG1z{n|bvFrV>RU31Y62&ZrfZwFYf)@=fQ z$Ob!q%@^>fgs*Jd_E8AYqaJNSKX#oI#+b8JVfvkT1N;$=c*=|(N%Kqo`0DVx$D2I}Jdv^@MeG$fVu?FOk>H(Spy3-APDp1-_ zr;I?5peckYjK`9IkPQKdS?aU~TzRnH^MhIZM5Cn3{9>O*Xld!xj08lxEFfN8z5O2} zZV;~gV~>h?;vaLCNWuA*?cp&q_R0pW3WV6Z&!nz7^ahkUc$>RBE=3)u=-~(PqK5XJ zr=<;_?m4|}R}9=@Z;%4+x4t%9RRlkL{|?Iwq4#&Zd4|@h>>Gwy4fZ+PeDSOKKRt3r zrwUuiBPbNjSqDb7n%wVMvd#sQ@=VgD8_?v=J5J3*k7_l-aG|TQ55v$B{EOC}dVQZ& z#`E>xW_9V^!$E_*wd{>sUl5G?pDT$|v72kx`G5No^n|CA0iMz#~f7~`aHyr5NF-Un7?^uvWK`kpVFxIxbo6eyiCklpZysWId3h$-GJ_pGg zE=&?!CS|Inqmx!JlCWE5QKmtD3cVfHtrzQoCKydJ6sOR3b`#*pq44E#^RJI?Hsvm& zt2LhpuO0dIb(+3oq7ZkJoVfubxuKseaB+n3x=9t%#~z!GC-=pIdiUvWvL&-J7eoJ~ zok>aW9MXufy4W24IiHkgzS(Bs(99a$_iuyj-VF;&RmWNVAm;wd^-OxPPRbqTdT)s+ zyLvP>BcNPdBL=PnuJC7@V^O~4E}U58cbvK-aCQOBEC}A(9;`yTAXEcx!u~j2{8b=i zZX;VE=o^e<8iRAFZuHpkWG2^_>=L;@Fzw=QEE6EsE8g`oL{&)$pu%wd<-6n;!DPQb z1dF@h4#a{Z?Fa`9!3?=MpDr`WKAoRj^yH24fPQT#p$lOtPhspL=4b0ONAf6$+cBmd zTXsO)sqXPQl9K6_qQCGv<ZNI?gRGZrv-_>+gSl>T6CNW?j+*tgOn zghlKrge}A@D}Ipyj-V;|N9`i-Q!`T?HVS>WtS}M#2*j_XtX2hraHy+Z0(!rBUQu_o zy~aHP4403zJhwl2{DS;4S%kcdTQ(cgo^1y$PfQ)eJ2+T~ea?{&%`Yezxeg1%DeIp=rs~(LT!vGt?erwlY8~Oo^vN+wy2$ z9Ixx>PeI@d;nOc4hzR%xoyORKj}u0;#QXkKC-eyU>(JpqNmDn$=HsAxI<)3BtaM6k zod;-9FU(h*jn#J3XpS!n5B*nw;^f~RXVt~sDzS?g5vax-x#t$z`V9k%S*{@#eH>Zm zzDOoE3Ent`^678W%uomd+M!jXLMmp0lS#n-j{=o2XymXGO*aXYJKw}v!32fzusl%~ zOVfASe!0xNZTJDy)?|+T7(#8=(}F5*!p$kB%7I;&#t}H9+Too!yoDo%Vi@=YoA@t_ zi>vq;{uno0l%M~6+y%psRz!CgBni_Fl<({!CS&)|)^rds+nj;C!?w{l6k_<_bMu9N z$J)t=s;OW=w1rfS7tYV?8>2jt$Av?z#H&FEwcymb;5=m5Mmu(pWUz7HAEv z9XUw1uArUh+z3Y;?UA#h*25?DoTDYMNfc%OHx5Dd`8@EQ1&&fYNVT%Ca4ujfEjCz% zI#{U=AhZ^3LbJ+`K7PEvxCse|+1ykYcNgZp*o+R=&zV$d9t(X$QH2xp{mD2BAv9;R zs|;dY|1~eqWaX;+`41Sr^Wlq@R5KeVe<95Jl=dVyFPNa8e?HiA$N%eR5#EOqfFs{G z8$zT)2hRL;7$maY4*73)72%1H8MQgpT}@L$4#hHU3wI!_uyuAjItI(5NUKB^DR8K7 zXfZ20ds97#w3*U9C%)*YR24NK@kEc5EHFL&FEa&gXASJS7vPP$x_ql|gtdgM_jX#WZ`-6afwhxAe+}szh*stj0 zWk>K0e?1OZ2{`)xplzldbs}&mWfzbGgJZ3zt!GgNo4L4o>rXuPyY%z3mp9}1_9L%4 zjn?|{qudAA+(Ljs^{Q@15J&S(1+X)o{QH4t<&L%FF2JHs@Q(;^8?K=s2{$=FC7x4H^OG*w$?6Gi6 z6(pf$p72hz8-7zaS0t-2)u5EkgHe*SsVXpDQ#Qh+MNlTGw32wrYWhN9{=Hr zvOMN%QKebeKN@JmFU>l1kub3eE0)O(A+`cGGNYK6^Q_6~?Ipa9DPNtf8srna8XmWb zjck(Z9X49$$u{lky3Jp?t%FW}$9V>qHf<`X02Z*qXM%3Z4ZD4Q_6>hx$fdO#6-V_S zDMdLuPon%cJ^(plASQSaWh4yh$8ATb&Oa0T11Z(3aNHQKYBzT!kX0q?^|aEuT$Q4K0;K*!)Kv(dVQzvmXn3D_*JWX ze{;@B*0#;YD8!T2n^}wWj`DdEq^iQxduh6qZFjt}h+nHzs6g;ZC)@;2g?3a?Zsu>C zxIUC^D12ye-WyoeLKm=dF$jv5@D4EWx>_X2tBB!p)i0?gx>;D=pCd`ju z`w%2U(cTP01;Jbolg>&{_vh?W2Jnm*IVjp`F)|-5Zx)meQXx$klc+ty&I^qDMCLdF z++W2%`mw|WxECQcX>EA*T*07CiamUPyR8fKp0^L#4w4H(Vhq|>n~b-BE#?yFaQ!8Z zl5x@PfAy0A*B;=^p>-KBdnfj^6*;#Ztw4ULa{LX%GIk&3{g zWHa=;l)mhP!@>tmkkhxrU{eGtD*91;ASQXM%MiL8 z<`WBgR#(|Ykt#s3_OPy1F5TURQ!o9{0aYElLb;ufo94asRDY1OlBhL00Lxl__M>*S z4i1{LWa7^a#~(`W|2B2W0v`5YqykBuoC7W%FYfEQ@3Pwe)czaUAD(x*pVEZV()&w&-MsQ0!dU!!gDoy#;Xco3WfO))>zoIjx@$=f z(a2_GlY|f1mXjIOBk`1!lt*3N|E$8qHW1cU4=dLwKEf0}IC>uHvv^-v*8OM`z-t*< zPdXbunN$aBic`>gnW))0>iu~<%61wWiozR)ZcW*MPh^gs0>(inEI~>OmYcR|Ucxjj zr`=8rPTBgVmW6PngRXY+Fr&I=oLn7he?fE=C(W1^ktczkd0&#XWEoM$whdB-s&ih2t=ZTYR-v=S= z)aOD1fwf>a1;tExyE$9y_R?8orOSoo@VP z$>|0y=*(2WW`syIU^il9XiO8?ckuKcjvT>8<@w)_I>pdv;3n7~wq>agX3<8Y`)&vt&2>j+NAdOXOuVAoNvjKo$yG5qLWX3<7#(*~D<038?r8^+8X;(CshpItucLa2M3Hk(K||FSx5_!rd+x zBJ#X$Q~KYi!PP%*;lYM8$;JZdrZh@JG)3xlH_;h-cC{5OaR6t$y^pcgjHI3suslMO zE$zjH2z%FDENCkEB45%(WQ~x{uFXHu)vqb0VX9XC1cl5X4Kux8d=r&(mb8J?_hFpZ zkhTr&(Zivl0vOA8;lbRRa57>rB5kJrI=cH6c;>_&`|O=z*nFQO(`ee7tLaB5f-&ai z5Su2WMZB<6+>BOI;k;;&2#!QU^)1pDEGiPv5zHB=T;5jA;#245n_cQcE;;r7bRpsX z*>i(V^t+A{vQ=i&r?c_zX|S6KC_y6m<+GLEj^eg4kz*qWLgM&$y9_bdk|@M2|)qp zDv9H*o;PvT6itHHjOe?c%cjdH0wJq(5z)hSVNbSo4gL+0Unxfu`L0{G&|`07J~MM( zy)MuDM+Azu)WuO6y&-B#j|C^oTg!5(pQ+azdNCpg&U*N9f?!Ro}K5`Isu|q zPXx#dvzx2OBYh*d&dvCvQ0hxbM&Wh0<5X0-1!qf`850J6D->++rfQ^OZc6ovYI*wO zyk|m$7iZ@;MT;M~)bMedsax=|=QRIuB$R!quCAm4g7zjtDC?wS2pc|ehIR-$?~3Uv zGgVeH0C-dAWW|F09UD?w%11phbHT@UiRe=pmcZW~)cNY4_gRGU_w5qNoCoO#EuW$1 zvxQ){dbHL+I=A^4w#$ALgM2J2rj)VLbhwSs*MA0|dLt``5}KeJ$HJ$YA$@I=bJeO4 z-mVQ-z{XGaM(GpEU^>-gDCpuLwM}Q$sTWI9>bB?0Xe`U~sr>(#KjYdu6}~D2+~{Hx zNcVpNy9G;%GE>db8X6dB3Mp3}Sw=;h2JVs{54P$|J0~bkVZ3o>BtgQwxFw(O&RDp4 zYPzF{e@#gsVo`vgvzxLaP{FpLkW(-EhDB9;^_Z{&B+2l=&fLp~%}%2Rx#o``-A)Zq z`r&zIu6xC2O9^aFWQa*=RL&KU1~y2?9LeCGoBwo^YzFfZgss>RivbivM_TKz*hTbb z!<$hbLZTnXz~%jc2-kRFMg=srG!bgXV+G$RfH5*$md)<-#h-9Dw*%i_$yVZ4Y~*-* z!%yIQAxwpr!&q*TyR{TUv+HZ$C<7Rerm~NpxTs-$#+k~%@aX$~XV~NjOeFMQ4YH>C zK++K*r6EHlpQXm8zvxVeoclX;tznH5d9pTf z9qF>p^Xf)SGX)$}SEc<4Y`;X>k33;5Oyb?~YwD`CfQ!<4a^&FVojixi08TE@eaFq| z9-AA>80cydAg4U{iRDh?n=}?GqGIYOg|8y6koetX$rQnQ&e8cVev!H_KyG-8AVhRx zDrM1E_ln1M1nw7BFY}9uQ){|*w+9i3MUW&CbPk1%dI=jMl{LIsA8 z#E|!IrRnW3vah--e0%VZ0eB3`DZ;W7ul8D_;D!_>ZmGr7jYKY9+cY_r0+ z!6+=J{UehWXr8}sLVBTdXW0LKi$S~AKzGr={?}i{6!MIiy1F{Cley+)(YF|WHTKY!qk~X0WvX0 z8-0hh5>dprf1~necWf380s;^SOn-bmH*`PX_YdWGzxc8{Aqj`?o*?nbp=}3+NsZF) zBKRdxqf{|*n9KM6A1kzdMO`lXk$3?)k3Hdi70nD()zF_S$mpJis&E}dCG}1nzX(Y{voBoT zy4`Gq8+cUKJ=qB_U_V4~-P~3oYAWbs|5=g(TVjvEmbm~oBrPx3-i|J|_WmC^+xc5I43*|3hNa$7m7nC z?#PwENZ1n9u%x9>8s{itzCavn$!4w^J_T)RKRz^n48H9+&sSLl@!?<3^S@d@N2tz~ zYRN<~c#N1OPa8yzq7RQ6~+A+YHLJ>UgEH+*_dZf_dotN#(Yo1q!bYnm|{&LPdjmNsAy@>JcB`7 z68^mudcPD?88W-BgMm)DxM_)>0r6Z=;{9~xz__lM8Fdut37s@rPnbL2$GL^OmK8f6 zJkaOnp~cfx?Pv&Um|Lc`oFnTgTb30D^K^Gz95VM9!DEStAEITUoFU^|UoWthQ!k+f z!sY8}=G3Y8Ve}Jcq&k9mClUj~d-?YxKL86$&>aa_`)c_yFp^tF2*LFY@I=%L?@;D> zq3j58@hE`rv%%LbkB|E&YzRz3M&{J{#VC$)J-vS$Ck$*H=?UO(aHJGW(h#{tC(Y2L z6RvA(l(Ucc%ob=R-JX@pBViSOU1TZBBTcG2jJn?}ctCd7?aWPv_@qR0zrUK^;4Xlm zsK|=0-TOaUXkl)?y_w{&v6}9uL{^(t-$!G;7PCafGNZdarV62apsVPXCBC)%x1$Q` zQz7LehRM_ET)_!-sRu9|Wyy5~US7Es?QZ3IEbC%8!1Y(a zy~5vaUunTD=aXA9$y146ye43u)3xDCv#V7%;=X(bDb@ex#+#@lkFld)F|Q(1!pMrv zd_GMpi#TEUeVLsS*B-PE5f3%Dz?5=pv4=uzT<2+_YsF9FtT)~*GZ@flMZgV?Tb%@5 zJiyIa<0q(QmU_H7R7 z2n$~>LSCtqm@!FLGAE+tN=nO5U{oa(`nvDdtI92Ho;HoO2aY3tQyDJQ?Yh~mHChZm zZC1O_Hr|ZpDqS~^4>f)_b6uH5Gvq~WYtWz?5#esLQMZHuzEl|pj8H$V6(0}u!OY`J zfj>V3ZaJnL*dKE1R;_suaKQPr-ehwuM_t643+u~+zvUi5pr$X8r-0djy~py=%T_IO+pf!4IB@I;_!R%}#o zY@3orD%kDDRtaQ00v}}&FT<~b)!If{iRO}>il@k0%({G3p5vb=A84Y)Vy4 z6iA!(BWE>AJyRi@4^=gUXi`;W1;w*YTKROA1cCl>xkjbNITcf|@jT2?a~9%mf!PMp zVs1xS3PZGH^7A$Xw?S)JTSmb{tpCsP*t1>?uRMu**^wt=5*ohenlgoca=a3IP6@>d z$Lj|@sAPmu7!H6r3%$aH%Brl&DVQ1g{!ceh^~YLrn2}k0$!*ZgI>u3f;xq^r9-4J} zVJl8}+lc+Ao?J9nE^k%rKAwD*-!kdy7FUbA8Y~FVOAM(B#-YAnYkw#b5qH_E=TNpL zcF=}2(HGihCNCy!6lP>tR7bqy!SdepeTu^TS+dDVi!YXBcseTV)rAKPHy0Y1V^UTD zG*2k`K*gU>e$aay8d}ZaiB%9jL4woh_YQ-s1xLZ@XNoWG@c3O%o7k)fR1~gb)H(XV z?y_^dtn?Xt%O#@uRSvbzi$l^!!$Dkh@fBT_sVWtWl(;{2y*>S9gbaB=aI*q?ci0tg z_v2#7Y`~;xDuCB|$gmIN|DjyQcJZKLz%M0oiq4NJp6qT$dR|RE3f`wlWjAL(=?lp?RJJ zK|pC-0RlMG$B&YdMr|I8AuWdi$=_D|g2nHx!m{I#;KsVxl;>2yQ5DN{!P|6&T2|^l z&c)VbIVD0}%INlysQ;j%HU_}Bb&Lxt(TQVd2|y}3I7Mp`#4whu3x+e?qxmvy(iEnY z?pbeb(+Vfs5qX8N#ti$;*H(@Me?X{sw1^&krDW7F%~dQ$U8xEtm7tc5NSqHtD@K8= zN^+ZXFqX%;U-QZcy)P=nH6#<|+U8UQXU`d+B>xzrSe`|Lp0#1j`H3y1c*2nqGcuUB z3kxvqAk6#U{E!fo+~P}7mS~uSq7eD*ya3i1M&1poq7XzhA-L>u39;WxSm3>QX5%U| z<7-*F(5U5B2Yp=vLaGR*IjB=$MTFZSU?g!q_zfnK7#4e+S2Wv}5AaIWTZZB|rrKu) zPp}z8YFHJcRmh3i+zWLyfR|IvvVL4JZ2*!l7{6RoYLQ&{r~tEn^F{}PzbGkitHcL} zG%gWOyKW7SdrMA8-nb2fp){c4i)p|?*NBL70;v>^@8_qqm$20Z{xk}O*zKo(W_$d7 z`T1gm>+Ru;=UJd4=ZXl=hXQw=Sfa(nMVCjKe0N(dF*Q5ta51sx@&q-2sDXj}XWoi3 z84-zuFQGRT;TGeWTToeI-r?s5f8m?WG&7#2!_tC8#Ui_xTCUSA?s_J-<_LN;gv+wx z^B%mvpNHv#*P_(W7u{uGCRK9Fh|?($vJ^oISRUsT)(|SITPzkG=Rpi9B>YWio$csM zvOF)st|e%slIWSycl$<113QW$#Xwr*>5n}4riK-F71Tul^7Vs5jRg{f3zp23I7kqy z)lo3H^1e`~QU6Y9e{6?Mfu7tgsxRS!*O=0;0>wl@^KNFOtBN@U8E5|4i%II{Jh<}V z8d(@WTd2(^1)^Pj<$!wxBf<;r?Y~E8cR{MUV5RNcuAB8RD(9%^F*kNwBzP}#O2LY` zoU7S{BB}j3S<2Wi@vy1_P=LhpoJ{+lWTJ`fjD$01>5OM`6d@t`T($w*PC^ub@v1_P z#!evWm*pfF{wt~Fj>~KWJ#&8Y%bKsK4=U2nVM+Zn>raXQ+=c_VIskv&N1eFs08s=K)fgS}fQV_sV8KsT7;X~lb z^IEA=_L%MqfEPVYRUv4n&r@YKV$HI9JGz!yL)VgoR|C*3Z+;^ z)yhjBHgfG)4w>!uyE&P|l~O$=xE*|fc=PcVRixS^qsgig>a{tta((F2kSx51!nN}s zkEchSd)K>7eRbdB)Gj<&4ZCz+pw_5A23W^tul}ymT3gzOeRhzBeZB8MZuz5U*DTFl z_3Sfti=CK|Buh#2o$mw$QROAPYoFITr(V`3P~g^tdVr$1;#E_blm)85Q^5-8d|@%5Ek>R8Ff)m2(6$|J z5SnWNaJPjSh$^WS$hn;}%2I}sqGf0MHGzm0gXp+W^z-mVz!bOgR4oK$hx$HVM0FB` z+p8dv?VkxEEfOZ*$y-NCi}11Pm!VGX{q$D)M)!|u%4egBBsQYAl>`5neZ1OyI-_d{ zpiWy{DYMZnYnl?~!)4jZKgq(IiZ%{{u3ib@2jd_*<=1DhrzCr*x{~T15fa8Bzl4st zl~MooAkAvgh-bU)o6UxMA(Sx2cH<&al5-U-U7uBqsA`jcbC{ z?_d_qH?Oq|ze}Zz@H4|SQwrC~p@8yT7=%wY4m9c-nt@_V{1lXb9dE_$ytj2sNk23) zb7WaCG=_YW&ba)ll{Ut_$O8VTfiI^(>1ZV&VP`jmas~C)O5<+zhLp$>?u-W5*!9rY zv#3f&-oZTu9e8a+ZLiTxxqYZXS%q;+!+O-8QLd=g&+uD$L%%RU&AtbFF9|_4W#fWG z0r!8dNf)u@9uh?^I@G)ni5GP;Cccnph!eZ;)JtfM#`4zNv~rN=t1G2lQrLO3d2^v2 z{cJFApb8CwF&Q#%^OrE=T#=zFKqEIQEE9;7a@knjwb;{Qls~R!#nts0l@NtP47Rn8 z6C3dJ@k+fknF%WeIz zI1G);J=v?GaZyu;)^(yNYG=kskGPC@(d;U)u-IKHN%@6 zD;K2nxUtOK91t1zZX8I8rcju3Bj)bq!|HP%AW=%CIW8=rx%gY%?8yi{6Pkjl z((GFE%5!-$6U#}EI4v-Ht`$pde(B}{A6T`BU_2EYE=@}h8!g<8>uYcv5`kh%gW6cV z-_lQ;D~W~ zw+8)-M{IWp%{so()JNncOp8Wnk&dowWt3ONQ-h0)P8dLZPl@a07QsWp)6ro@UOf5s z#crbvc5yK;Zc!iDVF^!a@FlYBbdTh(jHO8hv7#NvB#NAjT5cngi3Q;h#cIlOX(&qD z++)kn%B_)sB+W!U61}5>p7nOdPz0JuqJo zwZR9K0i?fMl?q)TV?0_lM;=21_duL7nbFncnK?spptPmPe?x;(l@XjEbNGN{xk82h%L!|(Q;*OQ$_NEW3wN#1~)Cz0UT18K8h`Q=TWGIJCw z#O6m7z2$~xqOxJ~MXB&&wk0N5_9wcW$u*Q}jm9t@I7^>{pUp^=pM4v6{_QZ{^+jMe zqA~{cJ*)Wq20>G!{Vb&;!aYXPeE(0&x1Pp8JT=8W?gqZIb~#_#Y$xpDdDDJ7x%w^& zy10r@i_0X~20324BKQ1wIX`i?kNbg!h8825wJrzS@?+9}w2u(8Jr=UyOT4M0CO zGyYP|r&^_hVEDyep~Q$>^7x%|Qhi$080W9+O;^Y5cK@Z9ds>JJ#(U+wn385?L=jta zjXFOCVw;S)x1$zweC+ESDCA4rfWkk9yJ_IMg6xT>cPgqa!MUqef7tivEKJA&ypPWZ z=%dgPva@ADnT(^M@}+=8TuDOjii)BmiMkdZQ{V``nXO6f?c4VvL1XAY_Gi%7b-1>s zx_9#=!&}!dizbxI3EXJ4PZ99hV$}XgNVhPevowZfd%`_W2_b~q_!nWbKfKz)2n$92 z6MDCFHq*+dI~PW24tYNHLJnTrmzPVHr>nPd)~LL(6?hjF=#}x8jp>gKFPRgT^gWPY z|G+SB_-IJrRYTx+5bLi>UGzg`0Y0vHum)@^^`R(>05h%G#zr91A0u`FWp+eR;fkwX zi(u&x_V?{cO*$h^*Le033<^_LE?~$yVM${cEf$i=8coP|1G1`ezS2%6k|=@ z?oDkS?YRVIQEFZzfh<)#ZH`zO&nLB@X1SqfB1zS)O1T&Q4XpPpJ0I|%_xVKbV|j_K zT~+|EfGokR;EB6J(GAXVW+N?~7-Z!-oslqDz;;@=PwhD@ID7tZ7UE3`%d3e*LYvi! zZ)Q@V$+^PO*%%N1`qSXvrUScTUVU+B{rB`O6U>JA%>yh@v=TvW;vaV!DpCujb&jl^ zZ#|5yXO zdeM2!o9#gJ8^6RU2xM}aGVQ^eIx;*SPLrf=8yU<>rY9%Eu(ZGr95s+HiuFOLc*?Zp zNt}m~z?sRj@nkD=;jj7WGTtbL7@TWq1ccLnT-TQcrY{^A%?;jSSn}FAfy5Dz>@7Us zr0mXN^nA@!O(R>th&)FAPPXE=MT2W#Ot-XW^GMz-LE$A35e$7bwt~9(f~R=U8VG&W zbDPP$29}pcO}Fb}&UW#D-TEbSLkFdmhJ#K_#{C#nY>tR`hgaf;@@H&r3YOqGuJVP_cVq*O;wZ zE4~ePO}?b)q&=#k{LgoZbkHemvw$q(L>s(yIombXQV{YV#3O4~J8N|NhN5p7T{Hp? z3I|}=_Jh;Cy9kw%yoKhZG?CQ%>qX|ks=JN=#RC{%V3EgV`0{LZHHUv_aLva_4FqS> zSrho!BB@p>{_Jw5-^e8ty!U z0vi3b@D&<%)7;)i=kMto8~e~0*b-0jb(pEp-T-htXly1LsQ@+y8)6*{unfA!*CJc! z@jo;sILu8Z*D|oB2H=Eqp%cjMLE~^$vb=YJO5{9m(RR8sum77gXV1`_JxODhn|Wqo zU`tIjRZd2u$Ibmplp5oP-~I5_+y{{3*@ZBsxAzV^Rv2?sL(kVUpfRwq6rqdc;x(xhoBk>Re@{AYEgEXXHQ~rvT=Cbl^FQOz%uxI6 zGXk-<=m_m>Y7W-{*F$4qV=2cUCmg;SW%dBvy3=_N0=m8EysL+9fmTZWV}-u^dvq<| zq-*&$o&S%r`_5*GOvmXLGfDb1oe{k}E*z9*gU zqkyghjg~Z8iQJVY>T&>Ge!vUD-R16o+IdD*9w1vqV>OM%bUj|B<7)sjI)~H$CsX^< zHxBsBm_*CK#u9@vN{~XEQ3WDU7;`sz-L7=rR%FX8bu{>Mg?v%YwPOXamh2n=CLFzR z3%wV7VPTL{8tvaN!VN_h=Glza{P0ePgS4eHEn29ZzZynk}YU& zBN(wIJ=a;8wkV*vQOv&DcQn3KHOv;!aT$Hyujq&|AJ5TuU7p8`ZvamQFa|c3WSOt> z2-7nkMS)%ebF~#6ThMFJyrzcEH>PuFb||dbh0fvEYpb-qR*HsFqtc5^`iYgtl+;n& zT2*=YXJs}5l)j|*SVHeHU!53j{H|A^Ppaa93spv=k4Dza==rb+%kf4vz} TlORIN00000NkvXXu0mjf9Px1< literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square44x44Logo.png b/src-tauri/icons/Square44x44Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..73639d86131c1a3f52e25dfb88d80fdfaf058272 GIT binary patch literal 1850 zcmV-A2gUe_P)Dj?Aq6O97CpOI>l zYSQ?lwoTMOYW%^YkyKi&@kt|9BMFU>qO?(Y+*d17?FO9Su$)w4V;(l*QwAdV`eVM#XU$=aCU?@w3gF*xyWca=o=_XF1sERCUgbuM zxF~0R&#Z!1sx7OZHUoy@oo&2(z*@;bt3z$M2COJxaRYt^n#I@0S!bx%y@qkirH2DX zC%x*~udIa(ypipq&A>nuu?GNa;{ye@lpkGDV0)A?81f7Ptag$|wc%H7ro#r?DuGSd zR=~r1Sb_Dc>l57TFo<__ArJOn$s#) z|BGJ7KrS=*_7`J_EE*m$ZD%sJCXLZnfHkp?g@mo)5=&u#d}(5|6&3hCuoAs7CYgJ; z1OlNEM|6^ou6Vk-1nlF-k7@DZ#WZ#5RH+9=z3bPn zOB)WnZ!1iR3S)5Smpffsz|hT`Hz_qWm2z`)>CmA=!FQK0UzRc|DvF*wc|tikInpsx zRJq_|=NjUFSsXA1aE?r8iR;{9g2M+){rKNQE@L^iBW{q^#p=eAwzzPq~XN_^fT`e&&F;rb$O`}JT zrro=D6LU-G02*|6chj6XbEvtwnIa=2skgUR_`H7odfK^jCvDiUfsPzGLTPDfZX$+X zVVv(})HyJyVxO}XUe>2Qd-ezq_wL;*yhT}4Q$uZSZ8T!U2ziFc0kG&8MgyQVwOqz! zv^CGm#?#y^<{|K+q$Kv>zJ2?o0{}mAQ5Ez_Z}$jvYHFFE5WST(}^fU9eyQ&73)tHf`D@VDt0y zg(AP=!AU3pCM6}wBB`LDK)ertsDnsTRaNz$wX?&-Q40>&vi_yEoE-fYb#``A zQBjd_8JP?~Fw_8p2$GVLA{+-uBnk-X03=Fu=)TvW6e*AdxG(3#qKYH}2bO0WH`t&KCJ9kc!h{L}Q zjp-A%bK3kxYGzFuieIE~zej`kMQUM;DYA_vKXxy-IV+59qp&G@AP`U!>_C&t;qp>r zsnGiqmbo3o(uluQC)9WgqA~o;4$aaSZ51wbcMFYQ?7%RBHMe35O^h0_Pf_D4-+p2A za5%jSDF!BkwtZu+-VWjl$GKdoHs;>;{+ifiEMGAN3PO(({-@ime%@~Ngx_v8cfPSd z%b-sh+pWGg2-c^!TVc}xYlj{k*!_eXzXr|ME4V1rYj@+wV5meN8R$4zrfl}R`|kEo z=9oH*7}i6X;Xd}d&ssGk$6l{ESVV|fruMq#vcBWe!+*2>$a<37{myX4&>Sp=Il6_X oKjd<*!=qaOt>yB;V2^J90m2ox?pHZTX#fBK07*qoM6N<$f}@UtQ2+n{ literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square71x71Logo.png b/src-tauri/icons/Square71x71Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a35461bbe7e43401cf43f818d1e5ea25b2ecd1c6 GIT binary patch literal 3176 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 O0000q|xrq&hE_o z_S{H^rOu+%IWXDpX|=P7{67-S5%yQwCSBZ=(m9Dj#IFpnl7DD7l#8%PznMePWAI4Rjsws}wgLAt(9U{ zkV=*k(Wtwe;$#B5nmg-MP_>l`-iwMTfEOt7X@CNk8_*a5=JtnFJ;SQMsG@e1pgm}p zqUvWy$=q2`r8?8)#}t30QEy13U(oCQ7mDKu=zmf>v#6alzJjd(N_0M$j-OES_bJw> zN(MywhNuENi{iILKtCmb%XF4#oLwl5O#omjw3v>E6u?}ubOx9SFH5!O2h_e&YUecO z&D?%tl#BvcW25s;RB(|di&~=Tg$T>=1oS3qd$ALTl!EL4_yYp?SL$mAn*jADV;`X6 zkdmk0sV~r0J!Igh1K_5>f4veS+8L&Hzm4`Y_zIWQfQ(KK3}3Mb1~^MJuK=KH(0<^c zL_8}cAhR5-I=LdPgKLfz~bE`P$BP6o@QYy&tI5^lp4ej!(O0qun?Oho#y z3BRHq4rXvn8W^WaqUb!guOKv640y{g6u?Gp!nL)v_?QXv1cO1at(3eA@4@>Fg`mPK zm+J9zD(fR%b`H3RZcN3ELM8@yiGZfY2x?4YlAWKR=76qvfTz%LpJ_G`4u{2o0|&(I z+qXq16nX+kTm!h_!-tFZ?c2Ko&6JDuQ>RXeix)3SN_C@XP>(+_l;$rdW(IeS#P%H9qlqN3+7&^d9mo62H7cZ9Qcqjf6{dv3(dGY=! zQ>KVbn>N`W4D~>M!*cT&2Hw&Jos2YLVPn9K9z7~4Y4YUB_Pq@oHi+rdr^`HOd_2DE z1bFr8)nd`2Me>}}ostCZ;k{F*P8D0WY_ab#Mep0UFQ$G51`NH)5U?>mn=W2;jH*eQ zbbxT{)-8G5zJ0rxIB}wVfBpLPV%Dr#lJeYucBA0AbLYx@UI5;_d9!Vu1VuC8=yaVQ zGKJzC!mAjy3VfMW^w-86m=PqEj0zsPbLUPmY0@P7-kLRQ#O&F#ZJ^yi25`%lFP9X| zdAtE!M_i!bZQHilJle375mxmXpfl>%OdI1F5C93lckI|R904s zva&L9^5jWL#q|N0WouBd4zTkB8V0!s)uTm7O(A$*+3hS-MLWeXouY9MzcNc5xVLfR zMsffCeKC0O;F#y@1F(~V>(Ygvlnh+E;In4)pu2$2>M{cjN_I*e0Ek%y^HC=-Y})|9 zcwPq>;vueefa~57@XG`mQI6LfxIgk74npIU>;-60G87E}2w9gw<;dXTc}OQ)w{Eq| z0l<)p`Qw1nA3tkx;l4Orsg1eN_FnSE7O3P=H(A&XXrx1 zhCzb{$$0kcS=kZZxpPOfZQEAbKKk_OBcEqmL`g}BEw;64)k=N@-I9lhyd67s6eCBD zj1esj^5qvWcHp{V(8m0D+^a)OV?`ofCx(dpd-m)RqeqXHl-D8w)$x5uA?PFl8Ys53 zv{V!p7BGlt%LX4ic1+5qQt%e>2qUWT1L*tn5Kp8nF>Xt+>!Zx_k=)_>C zzj5P+q*lFw01T1@cVIJT&J=6cu8r|3pFVwBT)uo+YJA|qIXO9^ckkXY8XxS<0MKa^ z(%B2AK|Ji+x3Bzb3~7Cg=lPIYe50o+N=73@vefD&H#BDLi=3H0ODI#15aJ_1&WxX!=;T`b;Fl-u$ z2CcB@1?2^5`M`k#MP6Q>&F|sUgRhSP<&jEkZuOCpQT~@y-Xj*-zAz0kH;w_GFk!+| z0}L$@q8hUi76(}z1Iy5X2FqZI_Q_ivRb`ahgTSdGe^P~pOb(Z2DFXn*OZ_we!-5A< zEuJF5W>NO}fwGyR8E`|xvxIYSJ#dwTrKT}l)>uZw1O<2Q+*uwWMF3#Fhmk{G0fse= zZPCnj5;DExF7sLg&i1ON=h z!wbOB=Ga@3tP|6L=CN<=`-9VU{P^*nRqPXOVWy~wv2XyGfq{nv z0Hd=4$ZW^Z#}@PN4;F!ehLK3rbx52fP)Kjw_=-@iX* z&WMvuAPjBgb9XiN4D9>!ph@;|IsWq>$%zjEVZrKO7 z{?qW{3aU?c*Li%}ytB2UZsxmDkW)4Hjyu3)BAMZNd^*T$oeQi6;!p>SM!A_8srBZ? zm*`{Wi)3@F704wS+@8v;S)${ZbSVaHPG2}PiQUuElQDDmysmfgL&|(5v)+ZL@oqJ0 zy^FtjTJM6F62Jl(P|8eC*l7Y(j4($59CBNbFOX=#J+(y6QM!D+nXUzwC@>yJ>5m_z zFJ)05keN5bl5$yXMUjyvmd6#ubOv%33h$PjK0yqB#Q0VE&eHIi~OlH)t72tbnb=lHbvBwfc&+&6!OQ z4l466^_ce&<)y~y{B0_5i>3)iMAKc9Q>f|Do6&Af@`@VU zI6(hRuzVt&uTS$G8NBS&Fr8TBMxAX6pLb^%LdV@rba#gTsNES#8?rk?W}lJx)O%9Y z?KAR^hVC$-rxCA?H~?OV_9%cu4FNc%dq1&xkIr*M-QG_H zX}I?jl&&d_Zto}F*aekRYIwEUEpn{d9gO#Ws%=C{4A+JCenLIRQoUbS0Ef6;>9QZ+ zFVQvUywDpe6?JQYmN{_d*q+|;O><+5m zUbp&+bl)QtJe%Ur2=EcgS?kvxsg+bN7K8g(jr~jiJyN~w_Dh%fs)OvO#(Jc3w_gmv zhS&Yi6w9gniYB?+Z=!vxoxdifx1@Hztkxjz;j(Y__cW^3_pSaH#e2?utLgk}D&xN{ e-gw{lt^PlhvLe*V{^LRb0000JJkP)=$N$NrqqEd_|XcaA{rKAFCsc2e@R??k&MKPti)}-Kz_}IIsX(EPh zkSY%qN(^lU6B1z%O<0&90i_FH3=GrrUG5q0{LGB}|BOO!a`Hd#z302^1v$4Fswr;^q6F_)={f`4mcSvA0{r{nyxeaRfxf$_=FP<29z8`V&O$rT1IRJ{p+5 zXAtA@RLv6)1Ya|_fi`}%MtdEvQwNbi328v^dc8cL1ZC#Z!>=-#0!*ni zH%0m$WZpIbOf)s~*bN&-rPZn1kc5xswg?ZsOdGVCS*8PsI5P^9Bf;0~S%~M^p zA1p%}J}r$(ZP*iYs7}#Js^+N_JnC@Zi%=~Q6PHg|Y<(JF=mQ$I69)jEFyO11=K_5pFs{&D)44$Uf=R=c&TE(HtC?0lJud};B>#q2%O0K zidh;h3WMRPZt=&joB#oHlarG)IyxF2S-kUly|i@c(g-PVAL{m7yyGS7+k)5IUPH8jQoDT`o3bt3OaG(1nu9yUx7Gu=up^(P|y|}gTq)Ofjk=l zafI(P+_>J-(o$+@Xqch@SFT*4^73-UJnVHnr*GCH$ESTZJa&mH%ln`TX+_;gn z8KvcB+6oY08V1_h+N#_um=w1stCuk|+{{0qRzpKW z>VCy0mzUOAY$l9 zCm;d4ZX-_Y-Mg3S>gwqD@#FOP@ncm75`z21x2I2^D)%c60|m(>GUH{-mPKUCvjj3^ z=>=snmN93QYr#k{>gW)oY6iOt7cMAYygp$m!~`%=<3z03JmHZ1HiwigJ&11lJMLPAXv)pXUf)#$=17KhW*Ek_cgk0wQX8sZSF z@YaaEOX1zVWSYe<{r}q~Qw;(eCTSW;Kx|uY=^9MtJlc8#i09F^-mECzCa84}6*lp! zK4X(5^nndqHk*3&{^4`2Ey0*ORyKDysli|k6H))V7Om$4IRV+9@#*d94e@q#<1Ufv zJ$8t2T(1pR$wXfVq#(VYKo>M(7!C}Sf(P&t?>NVNJ;KqXk8t!Q6C7j6oDB)L{M6gkP-oU+gnTPGWLPk;nT>f|aW3IODRp#TYi z000pn2>=iXF91>y06;nn+VSU7y(ECVE`e7_$`t64F$kJ;0;Iy zfBX?K8f_T(1@lPThAPfZXAs~!^3xU3bfpBQZP>>!E{t0;`hs`3M3@xB-t_eOcYc_0hB|%fEp*vkNp2C0#eEwh$ILp z=^u5SDDFgs&;Ae9KL5WI|Kk5Ji%{Ud&E&t$1Twe(Hk1EGlm8#k#Px=o3xuMSz{vrF z;GNy6;21fVbg9i)I94m|vO;a{JJAWrUt0tq051CRf8 z;eUQR262MW9AE&|^nY|2gicOV0T5#;|1a^sG!DTOXao`Pf1B9wj|0Tcm%_x~|< z;vL7}dw^~0-#x#@<_Hp{@t+(x(6RX6UoRg2&&fk_1jl#(6Vm^jh7|h$?f5U~@BUZw z`>*(O`uF@hvj2Pevj125`S~B1SW3wJNC5uh|L6wjB>#zz zkOH#!|JMW|`<6YiZvb)wq2G{8{BLGR{9{_^AO9eF$iMZk6IT??+y0lLxAUOH@?ZW5 z5ZwT{=<<($m$+Q~mw!9iTo(agbr&P0W~GK4@|2pYvL10%;y+4q=ogZmKNNt~ zPN*p>-t+sp(nRrwOC^4OKE?Q5VYR^zlVx{DxyKF;lM`DP5vLD7cBnMBU#b5zF|*=G ziwbtnf>jwfR(&WqvtLWQeNA}1-!l|Dt8R-+lXF~{ngV;kURs8(txtBG~WCY zIp|!y;?12=cIl>}T2OUvZJK}S`F7{(pC-Ma0scZx#dZAC3li>wb-j0*s?FOaQ{6E2 zT9RFosf%(?<&s8UxZaZ#xbV2J{(eIF5|~-IDVF+0sk1H_^xO+>?-yp5F+N`2p2;)4 za=v%TUB7~A?EOmEO3F&Te11M_=FxKg(c6`Sh!vG4hZ&pnr|)Js0t50k>s=pIm#XRh zKpSeQpvm(Pq3WAYs&QtYcuYI{pZ#d&fv}QUDJ%x!f&6OL-P4+soredmuD8QY5K`}J zdvrMlH_6#!8itxb!(psai@)rBcX}o3XV8P`0iHN1E^W~9!Iz7qs_Edb&Cx6NK*j;jmJkohnOGu>NjTK`Gc_(lE!UE|HQ zxrdEc2=Dh+dgr=A?Al5U4_Yc7mtMgR{+cfBoBkvG zb=uM$XubOEd4bY9+<*n<3Dg6^PUJcis;a znnz^x`&hp@Lpp%2|Li+1)wYAX`+nL3v+2X`A+dcAzc?Jw^k%KcLp2nh;+Y}+=aP(} zpxO^%&p#{`X&gxlJ*BN;a(LEj#kX+}jbp8vi-POn6i*@)W$C!l9O>XkuB?q#66(1r z#J)givetl*1m*4e&sUIcW8{02H2hL!nIjU156*LwCUP<5Ru6DO-VOkq#K}!mHD)68 z4Zc1aL=R4~*QVpR$dIGH6RUM|GJB8m5tvaAP5t%WL;BltK}EgTxl)H8bI1Mk+p9iX zi^mV@MP_r!`@aJU$%CwZMUSL`DU6WX3q?R!?Zp`E`hdvd7^OjoRSK0iM=vY?IaU6q ze9F_%n8d-2e)u2R@*>tY3=_<+JN$cy@Okag6%iafzmV^W5Qdl^D6LuUFt?weHA=C}xJbQcrr^ zF8i@Dzg%pn#XKCsDQFCUp+WJ3aPde?^^q>Sd7p+S6%yGKwkcT`LNL;7td+(qiwnzf zq#ye{l|xKUYa^?c)RAnSRduEvVqWF#d%^~JiKGpy=bJ>&1KmGpjd~vC_m{dIJ$Ab= zQPWe%kIR<)HI01zYLymscY)eS?ei63DZjOl&{bME6Pu<9XY&jAvvU5{2fo{4<)35i zC`n1lVE~HAb{|-!Y8i3El6#QHWj#PhoN|i#SSElM*?4m|qt#=6??8wkgpf+_;)tBU zRS8b2indkZyI9wP-!xhDp)D`zSgU;w`G#}1i$YA;8|cOQaI0!iJy=9h(VCP^1+Q52 zu$Fl;3p~8kN@1ZbQh#?I>wUeT(&J0Y7V3TPrOTmzQP}G4Tf(fs5#D3iEUR>Gb;Ehh ziuOrh)9R=xE2y15zN!sIf1Sqij$a4`x<`w3?oZ8o9x>POqYe7on00=8(+LTP7iLMQ zSSbG-v%Wr@vn||M_;ki+qas*YXDWjNwibRl!K!uqoXILutVZ^g(lh>tI!v_xs6CKt z)UelNQ{v6<8w>k2_3=S6x3O$b@ngk7LezV=#}~Seb)Aq2F{ZeEl{fXvsd=ly;y_vK z#B^6`eXeX+<0XKhf;ns(Z^rGiTX)aGk0PXMxkYSUdPD!rdD^gnDJEfIM_>MpiV)tC zTUMn=GuL_)zP9~UaMdZ^){wv4XVL57G~OPPjqEP38%Gi3@hO2HIWwd8kDpxFf68f< zlfOD2xL(Nr=LT%2x0u!5p{lB4rhx+9Gl>3pyqeTD-hg%elt02F>v*2DcGWMNo#LH^ z!q{7d2uQg^ms)^rHhZz72f`Y`VxO0?OiPv58JAsZ`-hh6642xN$AWIi+WhTxI6c>FzrcH?g1&1hJwv;%Y1+zmQzGLG_B_T`FY98Ebba=rwPhUYDT>(USVE6FmR z@PAQDf0{QU{OMViph#VE%`@U4& zs~w}pnM7lBp;hLhK-tXkb;qp3>CZ~L@}D%b;$KidHxgpdAftqQjTjbCLX^y-zb8cT z2}8G<$2~qC$!Nu4hxT)Z&?A-{UfIp&8B}F=Rf3v%9&g(T0}MC#&@s%cH~gl52hZWa zDLWG1c&ipcM9@MiJi&kBMPE|{tv>@}{>8seQ}m4viAgQ37!9ij*~go(YkdR*rj5#^ zfNX~8N_Nm`Q(k8iyH@I37ZvtxU)jUwp&7F%oYrJfA^&j(d_mIr=w6XX}`pSR?2 z$xOx3(EL2)o%9!pq}2v-O7p1#12_0(IPda64Ws+Cn~VVPtb~5pUnI-qH=Eb#1J;pg z>y#*p-9`%hE-WSY&||Rw)sd%F2m7n+9%hZ+DD8b<+oSm&^Jux%$Nj!L{gcq0#95O_}sYr!kl(A@k8ZcK(AwCsL*l0RZPA`30vFUVWq7 zk6>h3xo};@Vx}yA&tnS{Fn18Me1M9kZ)k8D(GjGOTy%GeI7DR=m*uzxT)d)C@sf4 z(?hoiT|NCVd)GX$~&f)V%b#9LU=Ov!M*>PkV^_($<-@)OoMxJ|e|Y(35aTz}rf*ZV(gchssd$h>NJvHI z++%_up!g3^pfVmEu~aJTPLx=)%v9bl5e$-Y{FQNopt5t691SU5Ioa}4Y2xb2m0=16 zz=~UxycK?%jMq$a!==~U(q*k-Ef}?~G-wQ2Go>WXBQ0xcSgGP&lJp4Vk3>bE)!2+_ z#Bs~uwj&N!A2Xtxj?&X3USw9!kI#H0H2(5w6tr!Q7Hl@*zKVkqbEU_=ElO~p_`POU zL(9z%g3Nr4ERjX1aG#*E4Kiv8ZpZk?sd%<;f4E7qT^@*Nuw9Sb^ zmq|EP4m}w5CD1Q!d{}w0QkTD ziBvug_9)u5%GX4FppWgXyaBbRiA92e;Xpr2+IC){vzzp_@dbEL4r}j6DP8ocwEThu zVdf(33s|t=_R7EyjeGd{pR*JIC4Vyaz|~uveQMW@ZjP|+jHVMV7_eF$0T<7Rqysbz zvV)tR5F#HWv^i9ChAou*Ie&^2Dnp393W0B%rT&q~Z|P4pHcR_waA}^%0pDHvh3cD! z$KHKRqLAO6QL(u8 zP=DK&mJ(-`Lq;h+uibmyl77*_MU5o*LzogLq!VbomPm3cXSLE5MnR?8!)QW;^4Ilb zwEUkwf>~c+{>{{SR$u~cL3di<{W7YWLHu(|skpC2ttc!C>xlc=XX>IDwhB_`3U(diy zXy7L%1=HE?pZjW%&xsP``=U8PP-~Keq4iD7elDjscOzD4CUnO-;LJ_wK0V1fW31#x z(;5N2Lb%*M2Yq*@&hkX6>QhCzy#@+cV0Vcn(&)*-N zd%RBhEgDMy;72x68qUX$2ry1sBdOrKq6RD?F(#b5!Q+7}^snsTl0hCY*q9XfQj~-+ z(pOC8*3AAmcx15%5G6gCyF#Wt@QhAIK10%Z^+>Y`tZIA7D(om*yiM_I6C3-Qj#GpV zDBF8Xcm2arD+yd`whNgjvd)`YiTJ(;I`rrAmVGgyZ31l4nsk9}Srk4w=1< z0kI#dJs4&0w8$Q(qq3pC32}$*-?i+f;4t9)F6;{CE8) z%#rcH^2H7BO1;CHIi--)c8>6O-6%U+S&ZlOU_d`pKV35ODK3S-9@iiMSkXup|0uW! zeDDLTN(h5_lgMjlByhYt+eur9wJyA=(xn9{p7Dj60W#NIsd|Ggo_AGtpOtuW z9o+lPZ)~Wn^K7Kg`3%vQC52cn?Xvhw%9=SoK}Dz0Q1OwRAjLxT6l#?fveej*2QI(f zkH~lh+-rA``vGe5y~el8tn5ftrhohtjSjhX5ok$upn9KTkVvNpg-i6H8CXAe)Gra_ zTe!*A^GL8#(l%kBvU9?_MA)tk~xCQMWeHjs~gI7A0(mwGH8ZjwoAXa)u*-7nPkNetRtx&DxrgNj#&ULwp&z-Z(IRJ%);JuLE;hXf|O7Lc% zCwSL(OgW(;#59#R8t!z{`n@0YA}!LK>I_J6a>|1%!T?T4K4s#%=;SSrb}gM45=LZg|`he9oPTwn`fo6Y#0f zp@ZK4dBAc5%yQuu3u|VQY~jlKNW8VLm$7pEmM^&UHXOJM8o{CE}CR*BjyPWI?A)pBP>m) zUj{&Z?j!vmFy)ZhU^TUU_XYW6m1Kzj9?rZSS!p9zc+uzDDZZ=1S0K3uLq*RyWovXS zC3m&D-u9|Pc)-4$=1YO`h_T#3AGF`7H;8?;sHcKf?WDHPNh{>-MH&GVd}0e};#cF7e-OP8*K#W#J9 zRvqa4+|ao@9D^|&-|Lh2JZ740t(m1?99D}mBHkhaN|MI)-j$J$%2^WpDz5IEExZ=g z4|$VF7RGkcqtT}(brniI`gEB^@U+7N$|5IfZQ-omqj>_foWTd?V|`3YmJTBG@f=BR zn=85Y6q``aY^42LrstSXBLm@`QcYbI4a;0GwzGpF2VIugHbOHz`qkA*;DRJD&bv@* zg1@%L@-3!kP={H%7^*SPM6w2HY+^q?$_!eKjgDD7col8KtWd06T|bTKBE^p`Lc!e? z|7_NQTzR@B5)tk^X7V$`)O4pPvcG~vy18UihJ{8vyX9Cq=rsjtMNuvFgJ7V=25R=) z1P0ck-rhLc4XCw5I8@_#cQbAt&5K_g@#8vkl`w8=dh60stu>5B!sG}Bv^ZDOy%jEV z-39w)uS}J%L}xf*7gFq3Nx|%q%+BWTo*TE-T*ghd8Wv|CL6L_u7D}+>f`!eNp4{d9 zh-BMNkI$*_tkAHRhA?yWjq|jfF4`ao7CW*BDd*Y!QNBW3#bC2fHNVpxdwdS-8(c_? zZnjvko94C9(NH@Eyx$DdfEoFig~nU}Iv^Y$aQPkd$ol;^O}S43LE@KX7G!YkJ%c05 zU;O3Pmb&bpO801K(Zm1107#zzr3+Wa=(R<*yK3qKT^Z)ScFdG@*6buZJ&n_)rQu34 zQ}$zGL(|@5POxC&9FUx$?`rsEoHMsoh1U+#uIVw1?demAcqt&}8^JANvee;+{>^lrp*Y3%63pE2pTUNnyJP?1IS zN6JF}6)BB_ju3d#B*zbY;G>H6d-&b0f;Oq$qk?GqaHTsXXf+w$liHRHVm>p_AGPG* z%IJA_rcUO#-7bIUc>b2|vZW+eyaJ=1s5!v_+0c%kfr3~!9UqOC>G*i1zkMompMji) zpv#&IJ92&uhUi#Z{AJr&*|3!IBeY);1k+nc4!F&`o<`^oJD9y1yK-2 zO6f>dJ;H@cj0a+m5T|%HYISK&jhB}-5Gwrx@0VH*Z9XyF>t~VIAJaxO;vs+}_ZliT z{;n-9Id7z?$Vyytwdd_`s+%)2YaJV7fDN_9UmslASBUbbB# zjPDS1Q+^z9jJU|i3&@;_90t?bndPfD9ycHWg)CpQ+N!#6Z)(b(v$Rs-=sB1#O$~Nn zv$jHb_eg9^s^ZO8_%7k$8ESDp$n?Iu!K_LqK=pE`yTuNDXhCJoK``~@vAOD3{By>2 z5@4YT0BBk#{gk05RNq&)$HIABT*hY*9Sy#l>EHR({6?-n{Cl)CRBJFm&ek%vZyr(* z6J;ALk{sb~vi_57ci*bOiN~9H>!Qx^k%A{fiT!vp7RDiMrJ+7e$doeq7pi z>2$@4AiE`||Kk3)@Z7_7zDI;@i;lB%7f>zQ-d5x1t>S!DTrwWlQ;ppkBN;Q7%Rytr zj&8A=8nlEnlR`I#BT9<#YBx2lW>JT$hT`T9^SK;U+^AXl5Pci~WQX;95FO&td$1`7ZiHg+ zj$-M^IR9?V2W(@-$d3N}S*{xl_M`-9!RhcrBiIM>ubUJ`)iQZCEt%B{cx|~x;pgw} zPqj-Ea=b|gHnHOJRNQWG7z$F&vu3?*kHlQuvO|GeK3Z?=-J7RXH*VxLq4*OGW~;5d z!5=>B)2|!y>E~L51TI4lw5F18r&-?-D4SIbxim62<~G;w+f8|HNNh4=d&E0HXGVt= zDZo#oDoVb15n!M^CQ(=?1qvpmZcNTZ$ z){~-|P_+($((Y9%RSt@3I;CKq(|)FV#TmPni^gDiGy=29`*@AxH6>Y_Hq5QO#fdqD$M;8Xyj`!;ch0mLDZJ0*Y zRvXk|75N6iFzIg_JV?PEtWt0M8HSjg<{uQ4i2bb=iK?#X2Jioxm~nbw>G^Z$AszCu|3L; z%ysDJv_{mvEy6kQdZGv4>mtNSQC9RV8ja}S_m@jSJUg3>&6}=Tc^BP#h?sUFw5z`b zldruP&@trRXL>q46s}-E*`j_g@_u}u+|6*@ya4AzwY_T0xl9*aBZfXRznCOJ;)NYq zm6usQ7l0xLz?mwfoZm9{BEiAyAbLe^EbQ*^QB*xA)DwYzR8!*R-b};?avd9vAuCVA zip4J4Ex)?d1v}ApS;J-ICB~iZA;PX0W_}+Pfpe103*Wk_vx`0*xe(OHwMc;UXUz}> zAJRr#QENvTN!JZFlDZC={C?KvVat53E_b(mJ3cC0yb|>aI7wgygaIphOu_nr3fZK8 z(iYPAOB!qG(tKb25E{$zr~0NprC~A+D$vXbTn}4+wtfb4K;zuYh^syIyglR8MlpsN z9QgTLm=(OW9228a0V~ku8wh#>p$0L-Op31EamhOmyZ*Bze2v*-c{}Oir}gFCM*Vt)+ESeC}flRD$Ov*r08Zy!K7H75f2&srnarL)L{p9B=YEaS+=V7`Rva+|m z^~)#WhYxG%DH)}K{e-9uiKggoMPGU zer@~~%8YLy1jZZq1{scFns+FENDqiHUwBOll%0m7zL5a}yU5E= z%hui)yMc}V>*i5B2emREu`|u&Kvw)S`f~%H$*dmb1tnpC5owgj6>+w4 zx|q7LRGaW)hCToMxA;==NsOPNOY+BnnRm8PBt)7hMV7%NF!j!DXE}my^ z{v$!fPUVyQdM+ZxHRoP^KTK(T)ud$q4&TQ$z>6k1g{*)Z;iC)~W3I6T`y&3*BoJS8EAyzi4FrWZHNpb+s zay=L@(yk(3z1!TS#Z!Jsuaj1?^K?rU;ovK2qGN|I)9qzb_Sl!_1J zHxgEvg9uqK;WGLWGw2^@3H^;T9JdKI+{l8Ao5%Orh$^CVsdXCd`AN}Mgi3ekG5VxN z*X&JlZisb3zne4`zu=O^;#r(<@Bs!T1q&4ONRvOpI)}c&Y|G_Owbm_%H_x+kjQA*X2(6}`5*I=!!rO8zkMjXNm)l%@C#K4<$jB3W&fvFiX zN?RyGO)?*fT}RvNE-|w{VK?JbCQJ?;qkZDgw<^lxO~8d6Pb{3YbqXRmV0StA>and% zbxC2b;wwOArSMj6>@LM zJTRr0coSG$-H)x_J8X&uxsFxanL1gWMn{zPwoi%wMY?R2?*zHi86(H*1EFiL=&-{i z8-eWT;+ZRBB%*)NMII4M| zVKKWjGfywrmRQ3uG~Ap(9$ih27(FO~*5phZz}p(f`y(pq7qfc*B(o!dy*~gat+um! zrt6d1_##xml`mZ!#h)G}V3bw7aODxCUGloX)DsMAeG*$Olv6?^2jp}b3<~4r%N{Va za9FU|qT`whx97#z;@s9A>b#3N)sn#m+|3*p9s}&aH$~%v?!^(VfwoG)Gc_^qP9>m~ zd9fIsM{aiU>SpHwC_pN)3?J5p?$&o?HW{uQA+WjOBUg2H!Q2%SzxrzIdju!rA%v=^ zfpE1`x?CcWBtKIf!p9{MBg6ik74V|Ksas>uFosb#F&3m`00WGa(xraJ@}*+cy_Pm? zZ>Km9s=5`zjO<-H!h3bnN(yT^*D0Z^PHG}=+*l4PrNN;JlI#y|G~0ZU zk2r|tbMCI)j|%VDYBHSS-p3Uk6B~RQ#t{8RP77mkC1{kB@+4U{Qfx=OXLKkXi&>{% zw64NJMm|d+9b`CjcC19Cu?^X^Udu{{fTl+($vK2l_#(y?9$0*a3@&)Z>ScQE9}SnY ze2qEY#&Q!c7R%g8h%w@&51}~S@_zg7r%6qyKh>m>QQ-5#bd0U{EqIW1rI!Pu#o6vit5*k?KJ(hF&k-ZE1huXAL5Qsxo!@Pf{z$B|)OU#$x z-DiR^`_31K?kcsLR~l@~`!O9X*~&}YO~ue93ZL6j+iOtBN;J$E{OR(>qYo!{3SM`^ z)0Da8Rm@owBoU*jK4kR52l<7z_Jb*a8g8_7%F15c$W)3xFo%~k zAZ%t~DrZR#?%KnH`zu{h1r&^qXDLa614`g$-0vDa^nRRM+Z3u02j1C>ropd5;F$V0 z?riV4jV_kL>8+nbiyb*ocreBB>Pgn=xxRv5!s8z#QWI@c<%bk4hwzuEfO}fv14%x` z?`|uEaS{_n%Fz1lOj&@{eG_lKwgG`zzukyZwo;lXqy1|ar)^^4S=PW9pEt5Qe&jaX z@1|8`zAubGs_xM*pXN+6X_00?J-nijDFaGi4`bX2CY{IaUWCAOq)yIF0Ns`Q= zt`l=2h+1K6i5DhxUBjurOrr*l8Z;F6#yYC@HA$e5J56{m@e9nKK@Ry{S>Jh$(+=eX zNJSwa!_wdvVFRj5IDTuMSumCkI~Y1+DL|Puv#A*;sZ}#WfT3npnhn+s`51|KmiFcr zyM2Aq8|Sq_R(CU(`qjB97jf(Pv`*==iz9(IKm}q350;>{aAVIroPeZBq?wOa`}(rt zruJ`KxNAG23_=JO!M%E}z`OQWfrWLS;NJK(nB>K3ZNOy6xTeJ?3K?fUarZ^WDSTOTcdVhE% zT$q7^6f$9a;vV9)_SzaQZ3fx-6X*2l-DZWhr9cE%X~mFbwklNA0amlrgkfnEtN`w3InRu?}!cd9fO}pe&MtqUz>mE6N;O#<3}kp*^Zlr-9b$T zkE6N#h%;KFg?pJa8eeTmGudXRx~+yPJ}wg9p_kt0vXr5g*W!fS#Gh{#JLhrRJuRaZ z`{J@NYxK`PBvc1tzx&;;5j$i$C4BbW<1aEqyQ7pFamihij3*`6oO+_{(vpe^{Zb*A zM3v=J zLMZImg*}8=RnYOJI(O|!@zsOB`P$%HBTDUYLm5aIob zSU;)bdlxk#MrSwr;1f6%#0vMZ9+#2Q0j7HyD<%~4Xvnz;{1XlPCdP>zDWR3a|Iby_;@oJTZ(Cj+42_J&KPkQ> z2$T(e1)9DN|0HdG;je!gO3)#1YAsmDwMW!vMBM>$3^R zs_{p}%mA>?B7>({Tr}DCe(=y7Ra>1`6%C|$<9Pc?>(U~%+l%hW^n`sN^7`zo)4b^W zh`JOEetB0>YXI|eU5*{iFSE|%+x77BUO2Rd1s%Ff&hOuIO_gC@qp8A5Ub|g$i~Ry- zv*C|BS*r>pJ{;=rzV9Y(mq3;Eq#`xSw~h*{$h$*eGpT;1OS6p`TVNzjJ!#C6_JOy& z^3sVOycSL~1f<`bb?H>^AuW@z%cdV?jSm!Pv{}~UXQb@RyZ1AS8U^(gPY)3!>gmQ` z6+RN}VLonLpo6NMe*d}*owrEVX+_S`IB50HYJ&FxssGc}oF0&BD7j%SD8UZCGSaYJ zYLY{^)knBjAz3XD5=nC};S^DXNfL|bU!J>fSLQ4BC8#WSCyR5YXXAqzFE)yF&~S%9 z+%C&9-V!FOwP|xC=s;`jd6>7yRa_G@4M5E{_^81^LibwpB~HlVl0I!)ZVnej*gl?E z=>wmNY8)c(`*0oavaI3gXO1C43Pz=0ABO- z)ZI!HkOC+`ECfq{tA8R>{?0?q-fypXMviC*;(LOFba~J*{HG;lYO$_LG7ULF{sA0 zBrKj0=XTX;M(_3tq*6C3DBaZS#w3^9pc3C+tOQV)_l=+Sz!XdYm@Tm)2BuT>11*OX zkgsNcDM7xfF`-V>NfwNGcQL7n=U9Ph^_aU4xglLtCuHYF4Xw2eKpWEenV=X5Fq*#1 zC{GXK2S+yPqL9PO7o3*Rn7X8tpIK}~?EUkyOX)_g^Dg)(eptCd_{;+&XzYQ`dn9{C z!YKRJ>!j+d01%DvYPxpO@XQYFkDEe9LwODFB?@kW6sy&3pnjqtM-?7ZWkkmN2 z8o^7exl2rQbv%Poa;sQpke-+S#huIF^%n2ukU<&%7!3Hxf4Z7hHm$iXA`2&ZHmWcM z7pmMPrkCbfk;2E5QdK;^{iP=Uz&W9OI(=_FIzX<+eS2R+E3f7l^yl*-45`)WJ!WGl zha|xnLkfS8RaoJ-tCjD($m(UbjLCeW(4t%b3Xk#DV{>;sj&ry!KwLtJ^k;-d1ho_P z-fhho=Q0xzy!=$7Mlhnm;LY!Yq3Dx9Wk-F3yzU&QIkLt+j670e>Cu?BX`{1~Os>SL zSQOST&qb_;{MA?~WU`#J>J3QgCvErmnxyhNH>>EdNqA4bdtfa$T0XJL)_CWunv4a+ zE2``d?i5Cs`z9<*;**TRMs?w$f!t+)h1yjcqv6grnmPb~40>K0Ohsc^455>Eg z;^VkR$$rt^guOv$WMT*7dCQ;Xp;!$#A0jY`AAoQiLwg#+}?RCv3^nE zF&P82368h;i8GfB2&G4R;Dxb9Yo18yMWz)7K_X-WSsFH%b^E*87<~y^UmHri*KQU2 zx_uH#6Q>b&Xoo|O4|qI4mSfOy!^ft_uM4vscOCZBf8&_^$celR%)+0iU*o#->AknQ zh86#*17wvD;cl9BzeX4ABpYBj(%mR!J(vd4aO~H z-#^!?cf$mB!Fo(yPs zufjrHI_P})!FNsUkZr9Y(=UEePlDFQ`h&gYQ!&W~V@c4m37H~dkly^7vP-=*a-iVcWOk08pFQVGJtS!dQ zw<<4V>s0lfG5@rfGZ2eXny#41(l{OU)Ve*F%TI5GqcNK@)3a6JwPGD2B`XF@H@Axg z4g6k}1=I`@l*ZAgH!@lXl^6Rn1VdN>puF3C2;)hb_ijNsW(T%Zb``vrY`$*UJq*1n zOq_}YAfi{nT;o~lSo|sXzKESxm912Dxj_so;BOu=QBCxHqx>o`@+H1n?-3J|cpUp? zQ2x4$(s9<;!^{n;7#AoPfHoRLG`t~s#d8GYSJ?;6X%muHVoW@cX>Ukg7k!3;a!ac2 zt~ppG?=<=rnU2)Yp&~RD4)IoE3w5DrY;7f-HRQ_<02bGR*{?EEe0o>C%_B_qq3*_1 ztrH87E?JCHS95@RMnG9)rNLmv`;-Fwa_-gC)NQbVhldIG)Uq@td@KZcU*~xK=SlLd zcnbI$Ri;+Dik&LeG0_)fA$NU4wQwMlp7tUIs3CROCt8nD&M4*c*(MWr*C4E1>h)mKF^G3UVm?Qw}$(c@KI z@wA|`O7q~MbyPx06}fS8T!1u19QC4`tDO^AK8MJ|qZ4m}2^r1z4CaZ@1t^#`7zyj} zm>9QNyW|v0?9r6sOY>3y-E$(Qg(T3^vofIMqGQ0-ZyhFhr?PYq`=l3{GG)olc>v|> zB4sy47&@e^~FP|gf)7uSmWtaabaTw*Ll~ME~jg+`tR&*~F$)D!b0eQe5E4^!r#l zDd}QtCn-^ge`FQM4_Ow!R%j&jbF&jnm(zE~zi-N<0pUAg&1LncUeBTM!&bJ_o^_|tsbR>}vRN4Cv zYQ5U=^zJVG?Kj0$ z!+S-gy}VW0*er?TaFa%?j&kF;6P%I+4g-?)cd_~rtU;~`JvXD!-k;IiDST>YKO;~B zp{vO+en4>WZ1Nh}xlXT|l>_gwJ7YY>Kk}qd;N4}`lFlIRV>>_NjTpxVMm;6`jl~QNMI2%+(!B3P1mS>y15Yo< z0_NSg520OvZz=`omoDCgERFVI7kcDSMfit$m_Yi%dl>?F+o$@E$$9I;n&dg_%hbtPQ{xQ*5=L+07I97mWI9$x5nDulEEi8wlQtTNPUJW z;m&9vEhV zkEpe-Lg#}#^PTlOO>9%Tx|L)CXBK_l6W1)K z?ib^c!#4^xp~4~7mXf})UnGKu$VpCOY%T7EV(|4Q@q7@mm{*&Gq>wSYQ1ljc=MT^l zNCyna^dXCFf6Ej|fTdN0+9H(07TLwFG31)I(vTSNkU#~c8TcyXMECu|{Y=fvFaru( z-Ijd`Mk59*S%NyB-t*_jdBj~ikSCw3dyGmdU0q(=9y=mD!w`i3ko*#r1EP?ag9LAK z4P3ZSnnD*83>7@|w%6-2q`?Yb?*o^KjdeR2@CVm}7u)o~cm7Pzx<1%?aA20D@_nbC z6NdU0UAjJ`Z4o|8@@c)1a6z2VNCp!H%ho=Va6*NQiZekjEWhM}H2O(@S5V$IdSj;i zt`H}b*_YiJyh1F}`RUG;YfjN@krhC17~DF@Sm}?r*m6&RN;QBQA~3OnbNL`42%=Rd zoDTZXyKp()r#e!5Y0&DR#?f;FQ4&;3-tQ23`Xus}ZzQl@3QmoWFAW8YZL3f%KHD^Z zm}H0jhNMXxajjj?n`}nCu9mlvD?%VXuMHLr03CYQQXIF7tZ3kGy|qN1dZ@N%eg%L8XmyBEu6!G7us*zbkM-kFl&d#k z#MWRNELZ`i9}^{w`uzBOMLg=!Ayw&kTXtK%zuS2jwo%8L>f2!LhXHOBWPcR&yNAz=*>08vF^&63+aAcl@^{%nZ*TRpa z$YJp-znQ&FA&2UQUdDM#@b#LpI3>19_+5hhav%ENVNNWVGLU`n1DCwQ3Z2z_bhlxd zz%)hDDbC|G3+(h2Nb=c*XTeaFx!+Ip_Yvo*2ho{MpE$>3a{|< zv<3^#f6RZeJ3N_h^ZEj<0svs@*U;>p+tTR;*!Nc|Y@`Ez90fQB$axZOo!%@Q=z;nJ zkPp(T^C%SCen#KgOQL~KCJ8^%*}H$4dh}fw4P^H5t)Np(GbP-0px0k1AN$?$BY4;c z(twlU8#_b~2FRn02&TR-n?vjvEaT}nLjzv$vhr7WJm68-k?VkSLLCE+&l=<2DZ-B zzD`3GPAo3^&f}mr&%34fJtxW#Bb#eQeeLcW(|!E5%zeNBeK0Twb&^qJv5~>~aXUF% z+--mKjpjDo4$tZQ@s+JGN9yhu*_e==22c`S1eb=Z;6q7Z(qfeWU1whC4VOTx=qd{Lh+K{uQ3TWP-MMdzD ztKNjLh_dkAp5?A|dZ(Y~SRcC2(yJYm8!H#LXNY`Z)_V$imNSbUe{$<`^!Ak}H%?SREWuVs0}@AIz}66e7md*m@FVLYKM8INk=86z7@Yhbk0 z`ia-#VQjpnbA!kRK>5<+6jac;h9iHm<5gJE@s^Jb37um58sBMWsdIts?iQ z0#)~tT-6l;7y5%Y$y8Gzr~qduY6{%i#CB8xMZEKN?9EJ(4WJx*>v-s3`59C<^!5c$ z8c;-miEOGc{3JWojEi3v59)4Lf~+$#0+dJ)Po1dnlqPO*eJb{??{mSS!)^GjRs{=4J4gwrWisO>hqTlzps>&m1!v<%Sr?u+jZ z<}7;ia+Gpb=pj*`(CbQiG+7tzYsqC7yO6JQFXkQO~5 z_i9H7;zxRI+@u6n5!B#)sJnhHBIlzZk$~4DPE@Wly$pDZdloRY^XSgAmHLCmaUy38 z1Z*VZ6yzHeE+{N4;0$dP?kEC<=_y-j^B! zxgb;VwiY2rsBWaT^DWcB|F~13x9e0p3$|GcZW!#>f_(P>O#(1#1C&f?23}_^Cj=y= z1|&l}a&QwJp7ILQb(J$)*#Wu{={6xvVD}S3pyB52jfr;IEYE5PBuhv1c~4qwrnwL z*o^-)rqWt)pB-*fuiA3*<>2T&f?SJJADr_u8SpE+faw1hajW6xarl?Kuu*~~y~-@& z*5ihp{{cuS+xLFK{A^GN||yDU`Smv)WYJx8Bp3Xx~iw({l^4ZkcR?p>eG zOPEh}u?4j!LE(aJg|0ZFXKGUI@e9LkVk@r=6vwk+p{ z%ePvPS`Nz60gx_a(x;tN0G+Mgvsp${yRo}%BtQj@o~b$k@eIsa^+5|Ca#5J*`Cy~k z458y-O+G~$_K;zo-i5w!UoT2_d6)2eB$7gjJ)sfd61dQGzWwO4JUA_F)B|@(d8zo4 z7}cdyJ3cS?pYV|bc`wJDhdB0B4(2Z46xeJlzKgfopM(nz9V6FZP&o4Ju$_JA&urw! z=v2ZIy=QV{S&sua5Vzlu5YXBSV?g}mSZ=2 zlH&%9Dlqj7KD(-0B>wUQtTAwTW?g=3>{wf(|5_g^?_B#-Q^$@PB8j0Zr@k9zvNNo4 zhTE>D-NC0HXgIojDAy}{%$bY+t;XI7ti>lGqI_lGFK*XI7gMPEw3|AIz4@j)!^lV7 zEsdM_?reKDD`ZPdq=_?o5FHK~ZeN^);SP953FeUzdZj<-Q=sG&CndxKd z=O;Pqo-v5ZHH{j znOq&)2L&yw7f(L8IoHw;Z{E#(GFR~i|5}QK3V4@Uh#yzEm+-Jr^h@0=M1?p7m=<`4 zA5cNbw557U{PB_i&{`Y;<7n!=4(-+`s4P0$lR*zILko4;LGJt+GJO5>c1<=?r9or= z;9TduC0TUXp9GL^Ec3rLU_7f~<~5l7l?T`cUOjN(0Kt`NR&z#BP$$AH~4eZqe;E)!4f}zcN7ILD_f>K-|%2 z@SzCs|F=2vB8Xs{FUzVdF}NjUNTDBltG0|>IH^jlsxjH{fi##Ew<%FyK`d|QKEPB` zd1K5jC68!HU1LhDyR<|?@lOg!N#y?c%=M}5mSM4zGGg&~bUeDqco<;df|k$A1?SMn zT*nUVWw+j^AKTfLtyZsI5ZzEYgTK?)t|XZkrkw94$?l|R{QkPpu6($+;o>9<{9EZp zQ_cX{dqo4yRSzQRHNcu%A6)t~`KT{?{m6;CMX*V5`jWkgg)~#0y8ZoslVFeG=cI9) z&jXbHh61UNT@GDy2DER%j)pO&*ElPp*0i6}C;?V~GZ51Ed9`$UCpTayNU+PClGbforb* zH}odaYa&%TOZ3d)9~EK{k!tF}N7HoYWP>EY{J13N|K?Wpk6ATF?E}t8)s6XNlqcEpD zU5Y*SpNr1_oj>V%C?|EkKe@_7Rul@zIebB?{XL0;d(Q<{852|LX_q%IBmkxF7s1jx z^(rjl>2dj7snGcy(gz}%meN&%YtEsG3z6QMIe&7}*hKpZ;O@*hJ!!E z(k0HvN!~L3Ghs*yC8LMXqK_wNTxA>MqhEbJH}#ZDE9e>vRVnW?5@hgyN>5bY){LR1 zrYgFdO}=EmG@vH13rCHe{le4Hp$1r0{Xz^o5vuyXidVMHg&df>;|z`I*+NTLkengW z|ISJFGsUqaiR;Vp&0_xQ-n>VXhaLrH+G{CZ%?dT2ha;{*$cC_7OcxO2s#9PjW{ zi+GENe@+<6Lx!*qk*=iCNkKeoD-h?PIjMaxx+4teXp_y9X=MLYgC1{f`1y-k<9qwM zgJG{)(>A%u5=8?AmOnxEpI`j9dmxKdkn~P_yS`s7lro*!qxMoH+D3CxhYT>zVp;%Z2L0oAtg1?J9!{c#x}|F zu@*eB&A%HVT<9m3Z3FOBf!wFoUPUw z2+dXW$o|i`fmexn5PSIvo}EOlaijGfP!bex_~a1wsY|2sysBN>)-u5s0Gh`6-0=>J z2rqLUy)JT_jktp5{^g&`hJtMxNkGkiyfEZ=<0|OU`wWi_0g-7%mT8i(=OI4A-jqtT zP@*=Y1R46s-IuY|RysZv+w1Q#|WhYnJb*H0UOW>Cp%`NE7i z%@PGSvajDt!g)L0Mtb>i9_~QP;OqLx-~?s7D(*~BV(S*+s1Hxp(=5Jo8<-_(%v->C z^EiReln_D|#Czl1#+N%3>M{`S7fL*Fbs^(Db9sd~| zpwcZi$7JldLX7GLyzdFATc_d^QlOkta!+h#5ZI$_t-c@U>F@P2eZcWPlA9=3SKSD9 zpRHRk{vd%K3sEH|<#99&1NRv#cVyqYy6q-q#7p?-E@evU9h>LnU#0V=P~sMWA#p(>XX;^ zf9!VPB2Dcu|HxrvrVqhMoc!F=GXdw=u{_*-9nmk!Ue>v!l8Zk^lJLyHN!u>a^~_564+%56#a{r-A`ByAHeXYH^RU5m~wf;IIxN z0udw0b9~^Jjw3n_)P<~%=B`H8y5a*SsNiNVk zqB>unpmjls&wE+oVd{71q|_q*6DO3#Z=rxpa6Q=X9rx$;&tFpe*#x^I)6c;R3?v)A zyU}pNd+m@VYPU<=Pw8I~0VAgT@>Nj^K*I=%r#3eJ4ys9^8nYEx|@s(|7-Br z@v5_(F!?M}PVZ%-S^#O`Z zWcS1na2B!`-=ptH1|uJk#+|wM1r7h^-l82#R$R0slyFq6pPw(Rv{H#s0AoWyt1WrR zJfZ%(Euaj#zFu8uCdJ^L0J-D?mGPQdz0(%NihKej_~Aj{o5(;{}@u-zmPq(+XS-yycqS2 zpxuGDyZ+i23gH(}{m*dmlEDIFVKHaE?NAOnF1X|G_1@pWbQ5@9PA)mJ`U|lwVQy(V zi<(Fs4>EhTiZJwE_53gQ5{RK830&p~n_QVoqV{;=eLrY{X;O@hq_l%pxy5#ETo>t# za3C5UG);OFEyqvG=kAuhly1WQ&q^Z)0_8`x^vg6;eAy84EC&h63s{5dS01#$4>9zf zKKE`gTuJ(Gu{66o_i~H zfN%1@f&X&s^gf<6M*FHNE?qbg*!%!k<)MRt2Z5=hG2aN&T#zlPXD0j3Wxq>I{-CVH zn@zYfFBLiM=jEFxVxms?4HK97o=27KqqQ;5rIo?eClmr{|m7S)$yGC zqtB5)ON*WN$;e*uK^;|`Wsy#ngHy2X=pVWJF3mwx{qnI7&gXg_ST5eCzkV2MQ9Y$f`V9ZIV(Ejp-JGyhf zqQPCxE*Ob%$uA>;{D)186ZdA00-GmS=qe@lQu|QF^$d0|x4T>4gRvNDvvk1h2fdWXLM3@(e67_o@>*k`mE z#>5dF_Iwo{-l*oTcV#3-HwgJC`%hMIZM@t^IWyaPcz26$5=_r5v^IUE z@rfM&Ib_f%4|HWx#x0(M+JJ7g10lrFzQW|NT)==5MXQM`$mR?RO&^A)58_1bLRrDF zI#gg?9Ekeg^B^l5hx<)`!WZ3D@Ix3qRNY;le3}CRyE^oFmVSk`7yI41@s?7Z_aJ>o zeH;~iAAA}_4f>)vNZ3g&2N`3JA z*I_*AFT`6(sMPo?X$!=oA?>QP6*1&d$)fC5+(0j-7*>;%A6X(y7}wBp9ca+wK##HQ zeQcjySmC84@KRzif>4d*LUIe3KrQ>`1nq7bq?LO*7 zq7W24y!g}g?%%!jKWibOnxE-N=f_3jLaJ+aJa=wjpF$!@tT@+p7RjGJ6Jo7Y zX}dTK41B+iKk&tn=(N*8ZA2gtqW)nve{jDU<0;J4`Wxto%PL7eErHP^E1&1hma$t8 zvQ-+lJr1N^mAR7Sx@vGr$$d1O{AHNX(V zn|iGb@B3k{)~cn}?~(F=4&^`hQBtWVt9v6MJN!!@!swd_v-zr9C);cyzWCbnqqlU( zO5c5yZ()B;N;HYg?DlH=z&i3^{;18u&>oc{x@5Z`?_%B+`?yS^N#PR(-ZRC9%x(qGly z;BYNM53En3J&TDBS0?Nxw2RSxJkO3$LD~KHa>&XpLa-|)B9%3x-R9t_>}i;nC}p9y zCu^%tas-r+--oKX@BJ$QY$n3p&kY}(^ZY9Q7m|RkR^TpJw>6`RRauFj8{HS+Mh~Cz zGgUG`u5muz@UK>+b0rvv zA*w@Rq?t15&F)LkYxTUdnW~k)Ma>&b%M1-Nz>exgjoTsqV(N-F$Lpv7QIOA#=lEh^ zp@a0!@i2Y;RQiVDJ?*n%pkSErbDVB=1DVj=PHoKNAP}^(&mJD)e{t+2XxW0y>LOYI zhFlvlRRfs5!b=)9-&2z99DY=n8ky~1zr2D#=xhx(1b)C~B?XS}fk5_jI=$&Yb>lY?V1WPQ*-wt)$$ z5|CWe6*wI4hY6_Iw=a3GBs-IwaqI%QcNrH9ju^^W;CFUwd>^lho3J7aEJyYs(k+ZnMzMj&-&FXsgcd2V>d%% z?pG!yEt&jpdWtG6w$R39AZj1~zUilZTU(neCpR~J+HKd=mDj(`ZM}IPXxmMFMH>cf zpPw#8FHF`rZ2R{IjqS)cfkQ9e9u1Hg?I;YFOmVKCv+uT5RaI5K!D5V0(gS75p24!G zNrBX?7rAF|w~{cGX+>X}eaIXy0iRbxG&%D2%- zrekSmwrPQQj$ateRdaP%F31W>^?o#zFka^&#hUxc@)$k3zUxI}D|(E&Re`oBzs2Gc z`gd}o()z*lf~g zxMj6>zaB^@U)j1tK{90ZOLt>{?VyHsoh(ki$HiCzjy9{hl%@8XsHUnqb+XVN#o2be zJ>53f?BAC2ApF-i*J+EhPYrBubv4Fp%{hQV9Oh8vul^X#-mYI}0J|P>7FUrCt2`~N z8pZD>awl>>nJdO4;F?4ryJRR@uXo{lAm01*c-p;<0ZtfD{PY%}CHbv^e0`Cpc&^<|RcO5O{kJ@q<|5KDA0xO+9r*{)xb`8B#VvoGD;}`c=4%S< zX_@q`-E_b&zukwJ^+kp&_o(XKW}W51Z=|?cA9P&^a1+=&Tp#|1wZ71!s}5jHVkBfT z-Uyk~cBh|)5;I1%P@mpjrUiayAZ|?`)dR>tZ3Z4iI%u6;hZQta~?Wc$I#DizhSdCT3l`LFJpxqA~TK z{R0|S5YyOw)5jN2CNw9HadYmLH36h|e8GkE>hcTc5Qb z@CMjE99Z*yTQVPvNZN2O>c|Q_HkPNd`t(8WD(3xXrb~L!HuP9swnbX63#^T_DBZq3 zUES4H5eB2)RmP0aAGc??R6Qj{8LcjaZxg0{?9dV9wu@S*ZKYJwxNk9=SNEt~lC9%+ zK6X3{^6zhv$6tX$Skq|YSj)+l*K6VJz$Ww;EDtyM?19zIPhKU%B)^HKY>YpQ%6QQx zlz;_M7Tf<4B5BTQZi-x|c;Fh@Nau|uAS5GdcE!%W)oO7~NKSt=uaoU9jJsD6%lq;JMA+Ee*un%?W9oeQF$z zFBLs~ZhTvC%V&44`S|qw1YIBEiXoV)hLd|eKZ!D0&ALn69JM2*c`lpai~bWw*VOU6 z=o5EzbaZ_W+0Y208tTDCt0&!SsIb#gLQOIkcP<@XAwK~F(B~Dl41_YwsXs;QcUsXH zHd4Tx4WN45{9W!EEAaj0lB)kWnk)8u8TJkl9##3npWLIq$`bY0y1`LN0jO^p z17NOq;;t1YW-C@U<9+q7=r-Cy?GLE6-HmZ>s-Fqmx+kF*Z-}MIYNw`Q&b*Q8QB{CSuir+WER}_mTI#m4r95PqPs1 z-r9c-I6Mh9-KcG1hmz^kn7i2T>kScx_TqKCN+TqdL+M6RcGu(+)L}|&aMrXB(auJc zO)s%_GCr;&jf*M$p2P6^Ic`|-?A}it<-i_;?G2~%`Vbddz|ZL-XK4Gu)Y5B8(XrT? zkh)jh@)6tIJot_R`7;c1!pEU0=3Cker$NI#-muoY? zHNx}`Dp1W^d=?kIPQ;y<*;fYHDcGGnFOYk!7^@037Pl$DS5y9|$r#M0pYM?g5)+FH zKeFB)r}R?w{&LkTxIhMYU59<%*CJ*#Ok8|wcW)NgfiohCzqX@ps&Lx&AZASX*j)%G z2Q+Ga{$6<@-64g3`x|CF>wjar#cIN>lG+I>TazPZA&76}8DpT;9#wd z8nbh)hA=J3=RXGk@X#P9JZ|}$%UpHlF9$oO)M>Y#@eC8prF@8xN;G1Ki{_%A|#DLU0*&l!1zyYxbSoHY?|Po2l*pQnX| zjh;-qA!cyVQ2jxTs>a3Zf8d9jPD(#6^nQK-3uIZV>V9Y{`6Ag^6|aJI#a76jylq1! z0?TEf>d{*+4=7#$f|UO5zm~tn+ARoPb1qWBw-_ZY9}iXg<0W>%UP8+UHl}m_yHi)R zO}*=F)stM`#3mn42)7V)?i`je8;MYp%*)Y``LH~?dg;xM!pRKN5r=!vB%)37tkPGd zQDgUXxIo*meo$e~xOB%so%ah3P?*RiWjoGW5GvyEn3ltgX^DXHI72)1Nt$n>UBU09Cy*0 zPI(Yis=oQ1Adt}|Yxt4J*_qLi9BIvNo+Mo3q2RM)HrlwcFjo}sp0eSmMTXOYx3W?Z%S4`ly`LA_;5ezm+h!eot44@^xeUulQcUmB(NS$fgYj(U zy*IBqCibds)2ZR)zoBwB&|jaANwmq{G4`D5c_TlZ=PqZVyNxKG2Ak>nYb0bhj}faJ zL0>;~p`f{31Cv_s@PGHQc8kt z@KHj~UUbV|HzC;#6v^#or_Z(eo(|8;G%+<*cj(X5WD_?lobq^;wb~6J2aj7Xzq#yY zbfM~G{if5M!M+ujVXwO+%Pw;cZ^WlRa>Mu~EJ80KHwwDpVJ2WkpKLw$ST$(Jg!^Wd zRJ&xPh3Ip;XV=y@W}AFUrtGNb6neUhly8iVb=yjLwFq**GH&Pw&xVE$SkveA3UM9t z(VpQ3h+>@DasQjE2bSI*Mnx+7KroQ^Dg+RE2oiAEb;#zeL!f#6>}YfSV5P^&#-@!1 zsZ}WqV!}RvipR|a)`a?8l2h}!mR?VE0dBuPv@x)n<_eJe^rq)(xC55qm8?6e=cIx; zk2>j`Gc5Kjrb`1=CsW2+E^1}msoPU}Y}+j=Pc?9EaX9*Nw)jIn!?@XFlr4C%(7wAD z4yzs7i(Y!p@>de0IeM0!8%m%F->a7W=Asg}!a=1K)gA=7N!RU2)3vSL!D-hO%pToC zG^eaqT*n>1gxHo3$u}#al0Ei$WNMYO6-f#nei1Olde1Zpv`HqRy5}ta3jA)lDsVu0 zI=dSr`#CX_z&t1lO z<2lE~vp218b`*N7z6$cpFPGMVWu6B^@ zpRypoi{3kl`VpAE`V&jveY)TejG#T4St&TZTz{ASFsE@3GzO6!n4Yego{@<_+dEWN zT=rxSA1Lh%H+~EitMA=rL<9pHKH~iEgm^3HlLiiFzxT%f{6zm*gmg9+Xd1WTTuQsUGW8P*LkJST_|03CqUOvFVmBL-+vSe_ya2_d~8 z24mm&dR?~>@*!1D5g;CI2m`vIbxT$*K8%!v_RW2bf*)2ty(-4SPNFw9r&wq1yjuB5 z25ejj*C!SbpG#mpuOB40yu%{qc9!uDQ^tN}MiP4A%nDMGdB^n>qObF4-dBilCOHe$ zGLz&zHK=&pZ<{#@4tmTC76#W}+Pn^^t<;7peR_LY--RWB^Sm621b18a( zCj}9UkODi2;AsckAgrh`Ulb>6aP!V)Y|ABqBf4~1bW2Kw`wgI_FWQn~2wtrJC7v%4 z;3`>ROdZi)O&iB<`#Uue5oHVK0$KLrZYN|f4ylWwbw41y@Dd|>)M_2LRLXylM1>moU0a(3F zw{r)37j`G5N$tl3m0%;nbGJli$`^JgEXe>b%uKuShF8X?cSta>dYt_-9;}?qgJKcSmeV)qXTm7ukgvZbMWe_C_8qWJsK zTV&ByKYSDs7NxbYGS=hlk+ht(rDz=VZ%cj#2VuxmM2cnmCzvXV9(+cu`u5G>GVxC@ z*tFYXY6l91{-PR?q?0$Oc%-3%_-KUak)FMWev;-C`~)KT#KVp#Qe& zxC8r^lZ%HDtQ93v|Jy`rJZ;r9ni)JD#%&5=RYWR%+OSGunm2R|Ru@Z1DHtwbtyO zi8)ukd7=5MZEO$h+^&5PIWS`FWaP6WvM|n{vlk?)z6~49^VF!`e!puOU}=Yg6PK5Y zmf*`glZdNe(S;Z}ssXSn`=!!fFy)qmFp7x|j5&Wmh&_*ol#wOYEUg+8H|L~ldsM<+ zEob35KYrjX-~SelnRbte1RY}=GWWlfftw$^FA=Y3TI{Z_?vB$SZQ4G#;FPU>ZN0lb zn9(+?GBx{Iv$6TQl98nLmg$h}5g@Y4XN$6bA*Rnp?rTX+>!JL<1(Tr7Ed8YSQ~BRi zY8gCTJs4XhBjqIiG$3yF!%q$f%CgASH+TzYT&i-kUkT7@SvrHr{B9Hv`qy!^_JLv6 zqP@t968yCgxSdua3)9V^;M8%IgzsWeFg0;X$)r1(>h*}uKz(eM9r*ct;Y^|pZb!Vl z0`10APf}{}$RW%!^-wLGw)0LJ&lRJk7qe*1_sTHsQ_L z`ce#!(i>NByiN2<5u>JWW7oPZoVvyB9h+<-Me%}U$oL5?0hio+x7+n5#WU8?Wwaxw zCK++s9i(RnE z+t}oqd`&Vgj!URFPyQG?c8)(Oa3#szN)22!I2y@INu^GzD)cP7$0JE7u?2a~1@Wtj zioic6DiP-pS^Rg!x&zbs*PCr1*7?^DMAl$fsj+z(?h%%XBdnO{G3^bS#~uz^Dk;~6qx&@ zRdR}C`N{|QJD$aU)e?B0Lc@7SFL-a6c)QuGFSPI(QWBy3$$jQ~RomX~Ka@z4d^5Ya z)x}f>tO=%%Gz`{%5vffAt0||iisC~jTPYPpku_iOP`j3E6LA>GAaG}Y^ha~%YEH$$ zw&7yGA3_1Hd6x&cQ3hh$jsiSyp>^@v2}=*#q8G5;l93P6p5DA){W*kSbFZD^;@hha z9(Jo-p}k85|1|nT%OE^d^lQ`Al`}KWYJDMw!}Ls$r2esSLCs*C!dD}_IDgh-4W0_#;g}yNTItbXgeY>?31o?r^jfPyC&NBoHdM`omQq3q~rzk6-<8}(uL%w zaJ$$zISHy4e*oO5px-e2>5Eb5?V#cEY2ktljw1BcgpniAeYs(I>E14}`K?K`-vUf& z_t)aS2~oLXWm*>7mgcn?^8KSXb!+UO>*bNsVeZC>_O|9mwN*woIUW2Ax+IVJLImER zs$=8Ag&kW-wClR}!E4hYHD0CHN0qC}A`PfnC$^H)i&Tznl-{A=p5H58PpxXCuo&hY zTB|P=wu$r%^`yDcZITzB zl1LV@0QCnm`+=EiioGY}oOg~4R!IR{kW;YrmdrjvtP`{xD+8ia2>t2-i&=y0;%ZZ3 zyBFT5^-*86ejCnge3@%Qepoy!MAVZrgf@mSpqRN+Qq|egN?msxR@vm_#FYxv+#uLi&n2oPHZ?hTVFQc-i zwATH3+wA!INc8*ngRayFiQL}3`@%-%hfHy=J>$VkH;+sm`STML*h~X>z`KdLkyAvb za~{eAwzqrGdHqK7uH|^jg=HamE6V^8OK{n_7sM5+D<6i~h`e-P^7DLx6zHt}VJpjp z)W#V5HR0Jxde5dU_=Z~>=v2gtbG`*g_-_JM|9G-+I)IApfbf#K&rHkb*|^VbAX_oC zR=o36M&qOG<`(#d#}is;1wGcdXRRdkL;cDOx?fU3qxyyiLuQQDVuugo@+jU{>pYUK zEALc9;JJ4Hyb!L7TX&X9;lGjNH_ATp-WedjZ%fDiIP*ga{;|wOVb_)Ks<6GirSNrk z1l}}JGcht%Ds`=@%Fupn&8;2YC+mC^UduCyqJx?cheKx97ey|>hC-$0s^>9}1MSy; zXIZg85DW2wn$t926^EdMzFgVL^+f4@2E(b?ch-b%DIZcvI-3i;)B#x_tCyQO1 z)J8iK!|Kcc&$I{mbklFqe3mPePVWe>5yOoI_ouM=mjAF%T+YSbnx?6q>6FExti2W!h$eQ&5eXhN?8%A zexmQGfjy&kq{-UGE!Wy$VQ!+{EH`p1ofU1;DlAZ<6n3>DY*0FrKj(R=&Tzlc^R0m6 z<(fkx8lCm+OaL#@P~UgahTZA{AGZI8atYiPbUso8kiC%KFqq)wvpI&lOq3z#?A#N9 z{LYTt;A+Wo`Vm4$tH;cEesAFA*DI;N>c|)S!8|QC1Asm3ri0kLYFRoezP{ohJ$Pgd zd@he1fxJkHkl^??aAP5Kf4z^hfRYGw%s%6Tb%p}%uI82^41k=3UnOG}Lwyrr+Ph0K zM9b>uD~h!_6rYb|bp)-R{n?~>^gEmEWE3+nIW=2@R`WUB9Jed$ssfwX(E1OvvN_&` z;}Pc|(PUKrL1E|n#&(3!Cs2xzi{S~5?u9-n4@FZAWFQu!i@?P0YsV*dh38k}(cV&B zIwc$=V7u2O#t0Ao{n`0^?$g`iW=yNDP~Il3XW?B^>BJxGko>C{_cSuoBzsZG_1Y=_ z8Wu&?WVCV6#yD@x*qwHmDgX1l3nTe)hPRuek_un`XveV+Y=^co|AuoAFBZn}i*^%F zghNtC1h zX(FM@6aM8ZGe7jmLva7&ZIegeJO_VP#}V|jNZ%+wIUj^8rhXf_+V-)*#P0N@2YgdX zXKMyA;AAp%w)ScZh{5o-W!$@CJrmx@% z*gi07t-864(4_>Rb_0p-6?w%McVCpx*4;)bkvB-ocod&+M6zS<}l_>mu|;pH9urzV)8i%!f@!jhyQ=v1yj3QVmH^%*yAHk>qxF5Umg zK<-71L3{-xO@j^Z^{1P66Qia2Q}#H+spC^oxH()IB-Xr$(I!tpO=yFxQ_xpgXWAOIZ>Po*9%OdrD;Im5fy?pQ#dIR? zgvXvX?I7-a0$=o6GY0f(>SKB6L5N*kbe4t3sYH%TO(=zBRdKiw?Xs?}z}UAcxA}Zla~CTq;g%;3F^_)lo{gV_#b@A;kktd$TsGAbT>;C& z$Wc$JEW@;>Q^fnuh|`Db0W=v@M$+*LB5d8RqFi-K;^2k*)Ls%gfYP$|PoTj#Ip0X| zjhf@)@XJZW<%C~r(Hih~G?!(TEhnFC6n5oHsisECD5#zZ;SGi2=|B&>8b;y(gqVQ5 zCZAn{V&r+ROoUN{;{`GB%6*~s8xS!BMGQ{$7z>qWnOzQ}ztGfhWG{*QP4Zdxcpg;I z5%s{j3^P!V4Zu2OlAUU8I9-PYL;1ff)Z`=^h{a9DnT^;{eFXKhRO#M1JqdXfRHm}~XF(Ig%ykk!B_0BP4;3MV~ z#O+SzYD9JE;KRQ*&+iyRHX@gqA1iSHkqS~^ETQAgid72O7NL;VUP1@*5}{L2^#p@R zTFAQDnwZZ}c5{p6Pu0EfpE;I2*omck73U)TAK)sv=ee2GOLC%$JsFCo4&W{(S)7G} z;x_1#m+)H>^CpqIjBY<`lwafthWs+=le7NdBPi!e|F+nUVVc{d=5j{py~!VI*4ZyA zSr2td94(uDuUwF}@9BlhoHGVipEDvhh--gQnmedXyrm9cG#%?A@9g_ea z4pL7lR<~bf4!3mG!&P<^QV;c7fR8iq&cVx&Z5~V}#b@%YmPceDHCy6;ohy zXYJLZM;c!6C!22~pCIwJqe-!vS&11o_bYbDg*E4IK15!Ev5u3$o~>@{BCXRL_&2W) zGc1IkLd{Ujp3)$<;P!ffgyHOe7^5Jh>u;K@$N@x;MB$-EZWI@$Od_PCWHHyX+ z&Qek;#8*bzbrIR*R!z>(KNB&XB`<7r{=CcO2Rz8dGsdl>54KUddr)NgrztJ4%sq4g zMJHeTfrJ-5_m@GUfedm8T0~&{mkmsnsBYOl#vo0&bZJ^Wlf})atm!^)yx8Ioggwuw zc;CXh>(H0}7)p^UmTEkpu(D*4)?s{LES*epm~|+7x$x=rG6MuZXsg>rDDm+-4E1p8 zl>7>&ul{3u`0#2~WczAFOAexwxDI~cc7WMLN43m~tnsn7$CKr(GsvAuLA1Y0t44^> z(zQ80g?Y&J%bgsgA5+gXe!dmWtxtL@^8tBl;Y86bFMKd0bUt#Q2mP603wIDMDSawJ z^v^CJBU3|PiBei!?Afdx`q+*v5*I+m)D0?^6p_O2QxlKR&iqs;sDR3OjGPczXJL-* zd;4&4+BKeay$@^@q@^?@N{x$OLF6@tTQSSxBT5Xsc&a+0pR>d>@7|EH_KxAP!=px1lV+ z3R|L#_Y~E$KAPJJ|9G}1&!}jA^V)If#7s&?{vS){9Z2Q>{{QN$jvRB9|kv)#HzAvBO?+^bt|J zaOgMN`}cf)UUU=D_pi+lkvssu^seS&V}p<9gzbeh)z6#kd>JN0BL8ETyzbN=928`y zi)Gj3yG{}1Pe4cwtKw)5uGbg%{HQf+>9Q%ni-()M71X=9fm(XFnoi2PynN*RN0Bdr zt+`*98YxO>2ga6duE7{at+Ty>wmo&5=Tp8x#g4l`ttXkgK21>D1dttgrb*1SW8|qW zhE4~oSX1@=uUe-*)eDaA4&^Fs-OrL&g*pVS)EH=BdK)MunwvZ2k133u4ml~jXB-oC z;tJL|CMi{HZkFF}ZvXn~ds8--K_=`zw<)Z5UBCrOk2U%FN@dcWT)AEh=aas~AWl*u zO84+CTE=5M$&*M*6>N(NYnDXxm+9WVws&4#auU^5l1Y-@O(T|cX8>WYI@PWs^aERY zqMMnLPR}tWy&1EF?pVC~Y{zTE{FByb?!uf*M5;T&(9{L`+*9c6`fYd4zThq;TQHag zcw({DSr4Qko)pT2hVa?u;hTTkhxJ3qCF-j)uLl}+*bHyMhKvdy8mK(DbBEQ}r90w% z58_pJhujnw5+1qb-|T8C-X;FL(jlAGKjShsHi|!6(M|h>*&P{+;nz~#%n_t~LeEBt zvnm{JTs^v0-%l($I-K4z7b^kYr?%dT`3ePKnJ+-Gp-5eFGQ8>h>5G!X#dy~x&`471 zyeQPRwRRYOiyE1R)S^k&J&uZxi2zvat zy6qJ7fx6+`M|Zvv_J?0(bs^Tftez34-8>dd?SiFK^1x>1p>i_?D00$jeXUI#J~#6?3se6f|~*tavQ)eL{q=+7!lgy>C5u ztXO;!$Te_irqTc?;x_JeWE*MQ_!;jp(3{XMXxJA09d_RwzDJ2{BQ00OV;41KV}{;e zi->A`X{qi->x1Z$l5IOTDNa{^H#)=plFX5qso0A5%P)BkT;F;gH8;Szlhwq!AVLq4>{>e-$qG; zfD=I%NMnn-VTb=_?Q!i>nQ~Lf<;r4aj18Es8YgQ#GI#9{PE}L!bFCBU-k>>t!XQDAd$4 zUhg`m+Z$QmPcRiitNY(AaxT<-yOkGO^H zDA8wU@b<-O;Z86JT86$^$9LU_I%%i7*d%`cDRiEDIeJj(v$b=e4Xsg5#l{rr??Aw! zR!?cQ^<}{6@p^Pj+%zBTL0HUEO*wcPTGi6LRSHKWu;yFb?QGc+4SBlB9Xtc)JCZOrnvB74Lt>%FQ|Vm1Ar@$wK6S zol2wx@}&88z4@wlX-**pyv<{W?}l`sG}I+3j_RLLf6_g$j7rJ*yZnJ!0+L(Pv~J(b ze-8%J47&-0#hLwy_l0%*$y;|1|6O*b_RHXI^y+iC{fp&MTz*tGYbpC_%R4d=oh)8U zeP9vhLI1H@>KWWevk|0KIL*Uj3lO;9%kN+E8W8SInM|qk|+L)*o;@XFT@u*d?0?dFl`-OB&??WURh@mgY zajJ}z!Wc#%-%6-Z^2t4=nUI|bCG^9cb)NV$Pwcl!uP=yJkELo(w&|pylyp3Yj5T;m zYMU8(|M14Ue~@al*MQE%Pd7+S%w06sJc|IDWYMjYHHFR=<>y>Q(n6hM{?^W z$KlMrPk-iYvYl@ejZ7}UB(i^bNXR6eEw!ACXQad{isj(vzHOzQ=nTc<#U+79$zQge z-X6!!>mQUY2+m63h}OG;UKA^V2=`)5LNLPc)E)M~k*kDto!fXK9K!!ntPx+n)JE~Y z{p8JPs@7zqb$8SUP(9*p2ySPlhdwW6S17vuc`koen>7f$2%JJ@^604IxqdEu+$Ibi zZyC`g^SehYtd?+3jq~8L%6okaDw(_6@{$pkp8rl|8sfs|?Fmj&K(}&}MN0boF{=F{ z7YSfvQVtR)ef-I^H$s$7cPNa03yVNx+%d*3^=-HoV6vsCUxg6F9V*ZdVr}BxC(^b# z_y)uAlUnjFgS$&#wJK5dt39s%K|0HScI_auTQ6u|X1{Lec#y3-AhKvHiG@>ZRdU`BJcbN%bOWYy{LG<5BN3q~`E16iLnX+K zql2iaYT%X`|3&b#d?iMy*3%lu_Dge~e(GImBgAkWHi_)%6RqmMz@wxuc9@E1;!U1M z_VAcAaT-UAAFyFlMkNS7On(~mzKUUiXWFVm_2^^9s&IpW+HT?BIdI6bUWv}XxN(FW zpzOzKRSTZ)E2$;0xzxwP}_1#=f*tw zqdQH|e#!OUpG=Z98#)9#=b{u)Hs^6=m3>)IiD>-|*zb*~a!NLn3O6~&>s%l;?AM3; z%rqW3p;D9WT2ge_U+zQVIS;8|@$PSae|6BgTemW$=1ZTy+Gm6(b2TZUTaSlks2~<{ zywrp95$wP2fUw4iyesWHcJq4ydAToeSL>kU;`!tVuV~xTSRQoXhudkKQ9p$TE`gmB#Y{ZsVs5x=P$^6MZBH)!_U?! z{RQWTPX?oOj333c6D66_J9amam#n*$fd}{^n&Xo+H@W(*v8#>Li70skDHHO1WkzCi zQ2EUPzpNhY)wu?XJnB-l_m@RJp9Wq6AKk=e+jFVw(tqyBFn>R^_@*84@p2b7(Cg@} z59zV>g*d8TLd;Zn_$$^o-w!j`ka9b+m(1ULlQ>vRE;0fkU}G3bp@vJ)usqGo{Nm}Q z-hdehW}wi)g$Z0IxMJ7hZ>}E)ug7o8t_t0gKoY8K%56STLE$FZQWXm&-L>wBt~NMa zh6 z?8*n_Y$S6xzr6=DSSx#j@aQN~3;u_5+7)O^Hm>faHn6z+dLsDsKh({u68s}Q*?Pqz zYvv7rV4^&Ge@>2d)Mp-sN~5 z7RQ_mH=3xC(e;+Y;b%_M;dY+}JT>$#IgW0qW&v$r6@+w1$7I8fFJHc5waH;7JX&l- zP4qlEH3r9<5~m(TT=tE$phC%Ln!Uu=Dvg|gDy?I^xv5-1vA02bs$IF*Ez8g@)lf0D4NYoGdz2A z(r=z`OZ|UrxDbr_4V1R#ihy&7>p)`n=#mq^JO#^)L)qVggER4J6o`y2lE%oZl)Vap z)%N>)B?p+_mgdJ3i1^pebm7;0SK2=5aSMNYR`|fXf6GMdkz#2!Buu&E%KLBbGWLx{ zWj`7B-GUpnQTAk0lUsrV%KC1t{q1$RFk20~6G^Bb9$=gRaTA34N0(|@rezKa945Dd zE2mM^g6+%$qBy`IGywQ(lywOgKKFY|Dkm&j2q}8frio)kJ5dEi2anaeI}&1{*{i@D zehB@G5*pMW-30)fFI}6$35C7S~5ecKp%G7(U*-GL?%=;r+Q;Fr<+3z?5|S z19gnlP5FVaFff;bIEU}Z=2G={L!me3AB0d-U#x(Xj;*|{b)km)Lx@+y-B;TG6d#6; zy^bMf{jvXs`ci_1CT($;fcgpLpcHb(B~=^kOw#anY$2xUIF=ZW8Y5PI4{Lmp)RNQz zT!4eKn>3H=HuiXAG#+<8daA)S&@kv>g)AOF~qM);nI~!*o?3tolzl_|wpn|A} zv^TS<&~8=cX_HDnE8S@4p5A!58N)!}*b#&yh+{_I+H$$)5}y}hVqoc#UgRQA$^fzQ zCoRe5vpxVQc>T!B2h7{SO2lD41=L&`>6WN5<0q*eFi=atyt&DY?kWH4nT&pUmrYT# zoJVJF5AGg>$8ygva6n$>pNN=eklWYDCMKwOD^!ueV{&r$X-26;-guO8xbo7X3J$)1 z$oiqVr{aR_t9b30AQ~;q&QcHmrx@dV%Wm?Suhu;r$QwNZaZ%p$Zh}^8nPx&c@xQZl zISPKY%>ZF%T%g26QrvG&j;8TL#7+gF2UIn)guLZq1H}UvavV4shDwA?J zhrvhz7YztmG{ktr{L5s<#jTYzox3ZXkh8E2xD@>H>~${oRX>6G2R zCVa=lnn0&QagL*z23nbxJv1?b;#4{;7jObQ_yzJ9s`lK5C7LKi_!%h0 zpDCK=3X>Y@H%9%ZDaBO^+VOxx2D~r7(Sb?CUFHFiS#emTK%1Jq!C35_^71o2NP@03 zpy}thAsR`Rh5b<)SblxEV2V#lA1Bt1mFs;lY0tpj6C^yG+x;n;3KC{`y>cNFfDJv6i$NdWr12Zxr${^fcb5 zUyp1_jU?nvWB4}px$DKqppw&tZ0@RXwP&wBA0|jFpz`6RMCR*+JPHfzDdkG80Qhw< zy%s@vU;GkHur@w~>RQo0PJYV8I-!T2%-~2D`4E`z@GY~)nhC3?dp~)?=qlmMp;gq~ zv+hn~3d_ybraH!&bFp(=J7V0FXd>qghF_bVp<#ITEnvBMc@nZ%~q7Q%fhXj+!W=yJrVoKxtZfnr0@mc_(K`HP8+5022#97>D{V*Iz z0pj|*tguyIChG4OGEe|3w;(vEOI}V(UkhVmRmuYP6Z*-BW-)VBgu3|F7BVDZLC^&I zW6Qk6`OO~c(RjlOFzTvD1@B8Kfh|)HAEXRhs>L>d;%b^$7BCu5@bQ<6ejRkCr8Z&i zsur|X)tPh6=LZO}O#^>!!D368vn2h8ap^@iB;9E`3slM*b&k_9j*iEweD~-~Ub$LP z84oaM#Is-8d5P?3;F=}6u<+uT_rDqM{|REbe1_xA_0uE25jma@dHfRF8mhsHYU-_G zCsMV+XKxJYGOv+vozorAVIh0A(oXt71ldxmtYg;lo7k{WBboSE$>D3hK{b3kPgm50 z1Bdc(Yyf+G9TG)+fW9%YKj07YoC*`@-CXXa>^$>UntamJ{0!#y6G`#^@7;Hvc=xamQl6JQ)p@9- z{3~SyHt##=Ul}!&@jjT^p_$)&Rbu%$g;=mIUV2scA*8YK_wJwfGG~ZU>`)aOxP$K4 zG`6?4YV14BUnu9^U^U$tToodFl3SM*mubQXdB;!t1un3BZ{I!th-%;>g9tqzP?-qU zo6LCeUBMpAutwu`kN0BXx@M$wl2Ior0~6y`%v+Jy{k^+77BVziOzraX&<^(5A>P#* zw3OFJ`2GEU8hg)j;-O=H%3nOHeTD@>i2l9zf=MYwl#ysFY^*pBb06WmEOsU8SChkX zgi`7d!lG$|n);xrlppBpuZS0{;OQJ3JxNjjggE`gpSyj1mKHut`9^jN5}VX%qNHm) z!5q%ss=S}_5iOR}0V^*tlXA2b&?n>DZI4+lkH~2MbCr6jd~OtBG$jv6+mloO=iPcR zB4LBL<1w1!y>3XDO zIjJ8d3WTZNYu8pVwo{8uPxF<4L}p+Fne51a8rr=|417`*-9p#X6?m)1Ft3|aN|3aD`(W0MSD?&ZV`t!7{sOPH!QbXI1 zwVZ?lavQkDA1A2aTjMtjQbho=ywoM$fN6Rz0+yM8^Qp<*_%{b{V0 zTGW%(!;;+@vVQ>mL^&L>8UFbk6e2h0Qcb}XazHDn_=Wp(+8*dczkV?(bcg?pd>_n) zYKB(P4=!?vP(9@nL7Q&no~t-7oM?@wY^wKul%OAJz_Hcn1jy?gJPJg zg{SN5P$f^}3pYi+Vk^jBbx6vL=I({=ccOqZVKrMp)Wb4?_6(zn6?#g_k?(y`rcQef;)p0>vxsYTlI6^n4uGb z{JxM9NtiN12F!8q^JdFk*PEio4|GL6U4y_ul?~y@DlTPC*SY=pIu#hoEC(>}R#rmx zdKp5Pue4X5>UeaxOqstomCLo>New~`ow``nclq5ZR~?yH`1hN(R<-v8(?DtF{i)J= zzcP0O@-&MSV3XBjPi4f*r3YyT4M$#W_qTCE7f#qOQE(qyMO&Vca&KW(bvnfk_r%z| zcIF0=*a2B!L5-_7O9bj3q%D=Cc3+OiRDVV0I>j4WJc8rxzX5*BW_NJnv5E_rg;)#! zyk8S6fAQ4NkzDc4OpvDI=zAc<%PHEugSidvjQY!v`Fr4#GL-QqCp`~?l)m?pO&Lp_ z?*5Fm(O}Db+uwbSG0-svE%sjl#`uOW108b6QgiO@cub5G@p<~W2IA|-PjR^is30+` zP6l|$Iz4U1EXYyqq)nDEPFhDU9A#xFy>Ky`biw!}S2kH8bO|r*J6%P& zS`Fnl74r?YSn&BDDOf(>#UJ?bLy2B;C*p-Vq22SmP=-INcf+^pm-1tu`G3G7AH3OV z>&uhhtkSiU)OGH{3hN&`XH!|Iy+A*RfrN!K=Z%y;UjK8C`_=b3pSh#d3Ww`=TxC8b z_CB!v^Y{tvzoWs|31E)v-eR^kW>@tjg%Z0Vg-puth@sqVZ|hgEowWBTZj2eF}NP{M-|HQA$3f`fYZRWWeR80TYEJpn>@PKX$W19lAhH$qkBc zUi+`VY&crxl!XQIEwmKT@MlDfzorgbK#6_3?6Qa2AqX zSv6?jS}wyTJ!B5!SYlbZ5FokiYf*3re7%ib#AjWB;M#x&Ku#y;y8*{5SthYiAg@4?tYwT^?;3Ml-N%A_Z}oKx}{z? z&LHwX>iuYSdD09_2mmfIGXp=U4P>$S#fsu{v_Svtgmk*1_cwC7KYX|=`b+s@$S1_; z{!@HoR-Sw21s5X@)tH&~-KJOZ?zdn6qgksxA*;T;bLp9&r?u$*z+lk8=D#fe-@7;Z zO{G_8!e)G8TO`6K?d+kf2cuLTX`$lHloRk39MAyRGe?%z;avk*0x{AebmYzi=Gr@$ z9&lMW^7iOFpOmSiR#222Z~PE%NQR^Q$Z@};a|i*qd+R(b1qR)C%Jmng_o4T84hT97 z#bS*`jz>tfhqteOuSw82amNCR~$=PQ%JOwI&BiFRg7o|XDy-zo2j$PUl=sOj9 zuZvX6&yp{aw|__gC!uTS*+}W@GDGeF?0gnJVecFPL@cRk^Uq$pds({bfT;?!N;mq? zVhMjEqu=G%Yjf>1&HvpivPVzVQoAKwLX(+me#YRhg|q@6U%LJ)3>2}HKe zD)xQ#i2RpO>-sHxbom1*UyxFlg6Y}rzRTA;+>|}9_a7x#(*v>lHb^anlk4Rg9Trfe z+>VWOO}KDi%nY|`u_3(nIBt}#6pp7$b&uVd84rKAN%LMYE!^<&c{(l7?fbFgF#W{y zs@4mShYY2^&BlO8K+oQ}li|Sx@*_vezCAwQ6LB!7VD}$e8ZY02 zDH5^#RR7$K>PIwA=S0~I3OrIPX~ne{EbMR8+(KTx)ABS4(`fA6w>yk4Y%ZDFKq0ue z+ICPE9>7ZvU=D(8lO-)99U-KL-zauhKTCOZ!<97A?bVK&rZ>Emu zny*h|*tCq?pyu!x-aFqMUP#_js>H`_Q{#>3^)E3jmFys(2bYCfLnnhl=Jo2wLB|m1nLc|VRVwra`ChfA5;4qe6Bk_{q?3- zB-Lg`n?@luPnRy;6EnrZVh!tRH-tZq1Q=1MlmVHEk-R=7kt5l6Rv3Atxcfi2>x0;2 zds|uK6k(7|P*Y+k^N7RPfXUxZ5}My)^slijgCpA`Z9cI6z=+PdT%H!gcJp;8G2G?k z=>*3m=|c=$Yb=IKuhSox$+g9U=WxPr-5JztN2ol|c#iBZ$=&Oi{+n;T7_RU2-KpT? zs#tebp#V?B7+AS3q6D9HS=0OM9P+HxTSx*6kfhToX(;k-sS{Dr=IhZ_&@v#XV?DbE zmi$>WzxCm7zF0a+gk0#M?4@?v4Qjb@%47kz00b;6gRcm*238A(q{|pdRz|Cj2wNCb z%L4OEGyRlqO&^TCJn@SmKjUqA$H9i~R(Iw5idWF|59nd?CoIw$X)>ME4OsHn_Wm$& zcKH^9(N4V`Mv1t1?^W^avKPq9HJ(BLRNcKPI=GRyCK6qEa(f??EUUd7-JzI9{P(G9 zp6&?;__k~>-yxYZ!hRSyv+Mn!r#tU-{wNL zF1*vDy=N;pJiIZJH1{F0u?CDvX?ubkW+D`xWDv)Rkjwo<3q(|mA4!xT4tm^@ag&{3 z>;6vZbUp^qpp?O|;2ozeclGHz`c<*MX{y*`{kkWQrvJ_u-;8`y+JgY7HMOJ4=iXAI z7^-SRrddyhi7t4govEJ4q-XFbH?p^UTcHEND9oM;yBuTo+lpV=suo43vqS-I*Qk2J z(K&)ROX=JEyQyCvj-`NG>B`2ZEyKXbRzRr|b0}9V zB?r?;l^dYxv7XMeXAHiVd#7J=v!O-!E>pQG5wq4oziCVkJ;@CNw8A4apy~b&pD81d zTqwZKsyvB!-AT<9X#QNh`eAYIlS0as=UO?%<|;mObsEI}dvmwb=!37mr&J0<3ZYz3 z=SP!Nubv3mzN=a`Or>-7hWCYk%!66m+5@f4)ib1oj)X@{QOlOoeV<73VqC9mcqV34 z>$sD-HlJ~l8t&WLJYiEBC@I@jH+^{(akkz7dV9SB0uVT|<$EI7Q+L6M6!}PIyxmA+ zPTL+7t?HhD+Aa75E}YyG)dVxEf7ibwSX|Q_wz9kK<1ikiPAG{FW-w+!f6?hBMVg5{ zp8F_b9GLM3FuyfaiN!W&6y2T&6F+o_#5R67l{Z=Y4zzfWAl~v8-z5EfD8}Ko9`rY zl#K~MG&`n;5{Zik=5E+<+fSO!AFo~w83A{5Ct{pWfP<2JhpDzDI!c@Ot18xcJI1b= zvbc6D%rVlI(83Kw$l%w~!ZAeGa&9*EB$l|6Zrndp4|K-n#XPEYZw85WcoY{a`hb^P zB`#^Rasb}vvYxggswCj}Vn&28emms^o#Ji>&vkUbE$;W!Z+wsJX$R8}hNqZY+i|Fq zPlbSbw5`!c=8~K{4E95KWBK)6#>zeFZy!Cb;4g(k5zjEvhICT=>{8elnv9uquPhH) zwenCQAKVXihd`fq+y6qD;-ctIO6$*LF8SxreTUr4Coz(+sT;;=2A5RGr!^&#O;=o( zj6EM6nkc>4oS@kWMuBI+E0s0lWV8iY-CDnWuAcV9+r0PdX5mgJ71tV&xM^%4Hr^G| zPrTs&u?m@a!3{J^x;vD$a^->Ag7c9--(`<$l&t<8H&4g3w28eAy+H=)l0{9w4vww$ zbvA60xGr!u`5d0ESNFmUEDYW*TMdL8SN7DbwHo(M<4RRCZpT3D_LqKLbBs-a<^3sa zORrt~vQJiwHSamS64u|E7Ts1+Ce(Oh(+4G>Tl`=LZieQ$vQ+-mzs5 zPQkRkftKspu&gK~!u>fTMnAGH!%(y%D&kb)(sM>(mA}F0BMBOd`Iy6MrmM4X1=G&DEKbF;^a#xe#SDZ-18hh(c#i zWixo>CsBIz=-WPy6kam5funPgqn2xfQJ#k<5Z1P%&bXa+#PGHM_GdlGWo36o+&pcU zxxcg5DSTRsK9xSv5F8lzLik7+bfJx3Gjo1y)u%2$7%0djW`V&9_^&~}B=McW)^4Bu z$XgnU44tpwrCmw)E@L}gYg+I19NxME{npQ?Y(FLbXa&`{%q0_CHtlHqC2mT!zc%xV zx{8KN%UunKntSqtKwpa)46d3Dy?*&lR(wAnpB6aEPK^yoLMLr~CI6#_S!m?j>^G9c z2Ne%+#6_4cQi_NCnw3t%nZ%z>6ddh*>N_WNgd-{vJ<3+V{tqFF60s=m5kHWkm90E!pe34gzdxvm@#>(S%2g9rtg7dj zm$ORBJdU>V-GDQJb-L=J2inUqb>z&+mKvkGCOA|C8FVc9??|92Q2b%I`mjMuDCQmL zHOoutKyhZE7?9~(szoc?YEKxb_*m#7ggrB}%-ut@zYOgzX64f^ZQPONSDz$6*ztgP z=X4%UW?3_OEI7qnDM4RrTZ1%=FSY;^}95McveLbPVZ%sj_2l2IWru zzJioubAQzMNU#BvL9e5PbufNjFq!Th5~8wNp6lEYY^VpO8zcb(%b~0?D1y;P3po(5 z^WwSQwefMLE&RIywdB4vJvQeYFSX}@BC_YNR`II;dvfCDcLj-<0fKs9NB{FL|2tQ{ zNYm0y?ZFe*;%ua0A#s%}t}2U1RIj%4odUc9&f%5bolUfgOn9dm00`Uov`kXghWOvX zo2vtl`IkyM9^o*&|4DhLMxE5jtbHGFWmIS<($mvOx{8171IO~?4nNvIx+D10)`8uG zsg|R;Z43LprE3E#!oy>4%-uIe#I7e3%g{my7Lvr2 zA%o7>&@1Wm4b0pB(}PaNU@5>j^m$3lZk2B1gBU#SPdA1J=pTN}?-e2Cz5$Qhv09NC zrAP~Uw5nD=E|@}D$aRMEocK=bUJS->*?N=?FP3s3u?D*c-<#H?gJ+7h1gHzkVw~76 zvJ}9}%WI2g#S-V*G3~-2(R-b$Wp4XBXF3UW z@95S4=v@LPn`Eu$F^N&j79*1w12)4sn;9NX>afQrVVz!#SI77 zEz)j_1G&eCPj^p<;S&mEP~BH0-ATQ{zxf*Dl>0jDL>Bv2;q{SEjzeA@f=*~sy@mx=}r37JN66zc01ek{eUV4v>jumAO zx$tN2>)NA&OX@Q^Tk-DworrWZjWfR+a=7ChWe0E*s;qCls$jyn<6)G5hDLc-ce;h@ z)SD>$a-OYS-e%Qi!|q+OYWI#$@%P89AI{j9DV0_pqDvQ+f^}7EiY?wOk8cbaC)h&vc z4loAJTtkm%zV&~-$j(-C6zRs=%oRt7K$mpx73;Jx4`C}!qWj7V7I!{3K1mNlKQJs? zFPbN#V$N4Vo+F5EyKG`}27X*UwJTQ=LH=q7-mYanU!_dkEgtZzsXYM@* z6Dp!bV)T@jVFmgwx*taGjV20J)R-ppZ-2C)dL_wX@orpDBwT9`EF6975{7B={(?)J z|DMXLRx>A%g~Fi@>Az&hy_Zq*Ez5h8eQLQ)3q!UQ5KsGYvWWm-)%w~oCmjXN=VyC! z2D>bg^+~oT7wnLzP5HCz`J{3Fpa{geTX|NK>&PN(_ftzD1-z^Kaw2n!J7PCiPnwrW zF;@y|5Rr!j^m8MxtlTAJ{Fd)+c_BFu2|b9DQb+Few3V@;S4gD8Is5w%?r|@iE;{?i zo^9XGKThhTObm@R?#MbwXp<&J9<0VWFd8fIP?S~}QTG(T4`DP9 zVxFj8uWz8F|FRjsX|z+>FTZ)N@#W#0z$H%BX`-Zq(5p1W_t&n}vcDIvcyq-Vy@LLz znZOdCObO-cVq-IVU#2cQ&ayLwy%dmMB2!!2tfqCM;!51k+=rsWV_-ADPY7bjoNMM# z&J_7@NpWX?d~Rubt6pl+9D?u^6a_!X-+-ysf7AY?@||{q@4wflLBi@u>951cftb0H ze*YZTOJvhZ)n2a0)=fl;Ss?uPWZQ9&mUhh!!Bu4ArZ$yC_#k-Q#_hTaMzEFjE2 zcsJkZ+W6ir#gf=JnW?$2c{lz{Y|*4&LVld(pu-;JX#ezys>T9hDQS<4MBvXApp*Id8p6ng0~K*Nq~-K25#FQ<5b)|HyVA>FnJ>`m(P_7qefG z)mLytp%dA013Y%yM}x}_kL=z=?s{&oqPp#S+3_)m`0<~H%r<5c#D#+*m2rwT+vq=QLuDbK=J|w1wfu^RU`&6w=a3geOWpc()l==qHn1Hz zY~3#l=KISBfU3=5!(R3drlz{)h>d}c+r3iMbxmm?M7@+_ z*msb8dJ@N3Lyh65Mj|X6Kc@b@^yrj7{=qJu{Gh?Lbb+=Ye#q;GAlHIR{=R=GBYmzo z77ow6SnCWK27`*VZF_KoJ2`a2-*<{O>Fd)c&JCl+l%69!$ddNEB3b}e1zTdo-q60u zG?7YYm~bRVd&8U65iiA}pyB94p#R6B;0`K#=?ho8s1LgX7i?dk23gI7SXg@6AKl%v zxxRb&{k3`1q+0=~T9 z@_oo>_}G%EgM^??7b@hOSmW$ad_X66fy#xpu=fF~D{93TTos)X!Xvuj`U;X0y)VcDqomN4CK zH;5ZVis@Qq2^0-Xf~)M|CO5*Txcjt)qRw`O8($F-4BcmGI$G~s_%EES%p~a0$5p2P7MA(NTe0{dEeu;l&7xuRJhI>+)=`)4 zAP=J5_)8atK0p!H8*Ai>ksZ6MgS8#dPG|!T?ALm@>k{}{tCTpqca?YXqq0GY30+3? zBaSbw&!cw?++vT);yS*T%u!j<6j=G9CHLp*Sv`t=P!RV_B34SqqF;~BiI)Vt2YE%1 zZd|R1t#cJOm4sQS(RYc!q`LlYf`yHHdF{lC({PsWg#m(Qc~7_vyLsk#>%mf$ZB*WB zwF+r|hzhGf@SakIY5ke&Q%HGfs$2wzdIj>B{u-*$q%Hx&icvYxB@xh^?Zy3A(FxF#Hj-p1@I3P4M`;$@mceJZU zVl$b(T^u0ZdjDKVfcHOV2}k#SDYuJ0Y+VsDu9~b)1w8Q!cPbva_ipYMM}!$c$QJ6L zvFXq}K(P(wv0=qHI$XT{x~|D@l<5nYvpRY8UL=;yQFSA-wCTKR{@&<&vfekq=I>gV zO}~z!&UbE$rPKL=p%dly8iAQV(W;JtOTcgQD@iV*V_;La`I5r9k?A+0$M6EANPDK8OI&#?^G`)DC<5!TBb{mTJLHO=Di@Ye@GTf>-+anpxb8VRE#p8 zI9U1{edPYX(_rtOU;*2g*YeEgw?ldh`|#Z=fhiYd=>HJr(+}oT&u}8v533U4N`x;%cQjk*5UaEMO z85X;mk=ZAq@N=~}Q40FEi>Ybsh}NPO{*?3UnezCE2lsL4%cPO;K98S$9&OWLfoqNc z*ylrY;r10zby|i(i#w4rStGfRwj^<64W0Dp9&$4y<%!Kw$>Q1A^g!x!eNi(Tx12}F z>xT{-L_(Ri31k?av9H#YEc;Q5J>;5Jc+jr}-EXMot3K*^HgKiPxd-(M@$TVYM*dvw z_kQwMbyutTJY>NOPw_vbTn~IVT1pGXeFvwz&*|tA){=4_-@o3%;D)FWkUE8=dMPmT znx-UCWO8}rz7^I{L}Ki>kxFdC@AOpmcXVhio4aPYj*nq25B7G84AP(&sykO;FiEOs zdZp{yuK)aP9IA>9<4VF)NtV*eqyw--`mrEIus+n~+KLg2+n8dKUy@bS_Z+jE*3Rm^ zO335%=rwWzY|$s6qB zhe0vdOclz&-d%M!$nE1l+7P|)Stc5^J^}UjJXoq4&>l)hU%+k5lpL%SG9qC5a9s)e zOG)96eJ%Q}MDS{^$BV_m(0GNeFzlQ80VqpjN&a9;-sM~s&FkEh;>~mC(5!c9T5dC0 z^=hEK3kkhsX=9fE_71@xQfwH88IV*uZrMARWQP=^Rb($^O)Tm1{aBN3-#N4NB!hCh#Dk8N^K~Bke{ordTP-)zgBuTyCF0uYJ%@$(8o{f1FC?a? zM|RzN^bal}#;%;Wa^H&^omKrD4pG~KTxPNG_jq@~_SYsH262ULu37Fbg+hm$JBXAT zYPj@?AV`N&q0D5SXoow4#lzm5(Q2*`Lw3C}HCS!*myd;i1PIr~|Q#`C^Q-P*=v@-_&lN8A>zJ8Hk7b zKNqQCBOb*{5NDW7*F_%FABzEwm>3-ZOqDWqU-@yP097-}m&ScYbLBsYQxj>cx{ksu z{+q)(?^)1JdnB+A*iY}_{fYRX=76eb`<`N3=G1Y$^(dX%Xq1ZQK-p8*N!3@i)FuSJ z<)6gox0TRDU>WTKefIC&Chb89w{v>DB;G>YA=&tdeBrio!JltD{+CN8{R0G)OYPg* zZ{X8l^529~!f_~mDI9tDIIa6X1{t8q@*y|E8|40$e1SS%ACr?bcr=@ZE0o_|n7U_{ zs`~h)kfa2JD-@2+)pb%fI)BXjdjV0yhkbWD<2?6}?mccUnfX@1o)s;w^)i~2g)%lp z7~DFyZN2gg+ImHuRxq3Yaza4Hgu(GUxstKsr{Fd5SA?e1bkFHRBb>lVq0L@4Onwqv z=p@3{vTzUmd0^X0(#8hXugSTq<5Sdz8O}!;LvB9<$s^xl=8`pH=M^i|^2r(dmCJ%@ zk%M)LC$vB#)Da9oFv&-|o~l6##NCIWLmbGUgu%M5Jzf{7fMjq&iMUe7{B!qz_Q7U< zN3)>2on_$~Z7s{SOR<+l62IQd&b?*(@;$H6Px%6wiZzywi&?)&ER9OTC3hy=Mc^^! zNi;g=GD+tLS=c8o|M&WOA};f5F55#TM%4&I(E2%h$!Q*iA@thqJKS7Ep?9*E)$xx# ziQN&@c+{-4)l)i+M5S(U)97C;>HZtY_a3Ut$+)kY+0wZVZ=K4e|ET%=W-}rVj&{^k zQpx1CW=@sK)7eSCIR6&gNl#ZwUHV1;(QGd^tb|6ZX{|av{4gVN;Ph1$np0Cq(H(&a zb5)ed0s&qvI&#s#P2kfySf@s4uLaBS1W_+-45^*FVj>+A6TN@T@p^m z<1Kh~VUZWVgr#^zz^?P0q*M#1oTL)-BTi{h~|6FonXlS_(0zeiTs=&&-+sK4LsyI7n9BgvkcZ?VdfjT!vKzeDNb z4YrB9E-yTLiW1v7;w~Ss&(ct$FRHt&F4RdO6E-U;$MqBw4C$|HEd=c*k6gUGgvs!b ztb9CnWKo7kd z!nh>gR=OLQwd_^xzA}0S1ditHH7L>Fewl1ib#XLMDEJb}B@AJDuEu!{u<6+a6jk`c zP!w2!*{^@_$2!fI-=kzbg5mUyreVGD?zl(w{$#MY6fJktCY)4rC8StfeTh=J>#4TE z2zLKz$1>*(jmuO|RnC6A3w*&`Uae#ek@ub(xR@N;P$s%PX?@;ls<1OXPjz^I#qz|h zTEw|+*|IGOoqZWxBp36BTXfglm(}CS{jV3#Qp947 z_iKIX^vR)hlukhaO%Yd7_S_g7*az`3GH-J5tS=&v&R$z8^_+rWi%v1+sO2S%x@9d) z>m{f=kA>Xud}lx!K<0#KcfNplSke+2 z;EPXOrD6+gD60Zc_)|I|QxgTWA4^drw{ISn%~S9XMZDymRp3nb9!NV^81#uylwNq; zvtFbAL+NuRTkY3^MZ(l}T~z{`gy3rRr7*6O)VK+A*G%1DbURr)Ec&jkQswB9~9 zT(OS$l6J9yv%`sDm#;p&Bn;~5=Ae6}=!Qz2!h+c7y`GD0f1@X^E50~`=2RRDo==>Jeft2tojo2DnD+O& z2IgSJR5s+d@j%hZcgs6mzUV`>763jI0qKkbF3HJqRuBmJZ1CxeD%Ar;h3cRCN|e~W zxt355u&!9+>6C|N7C0~6tInXO4oK6b|0sHG>cuZ&p>F<=2LD8N22uY`VU1C_Et$lg z_^&kWiDhed`u>lk^Ny$L|Ks?%*R{8@BCb6mduCk8CL_rTWo7S>bx|lgd&Di0naq%) z$j&B2$jr!0#&z%SbHBg;{NZu$x#xV&XT0C9*Yjob0}M<`c6EoD6nV#osk&n{Rqo## z*TdJ(FJ!&7IcigCgsR8%dfE5La`NVw|*-@zkRv6TT)BHJ@0KQ()1Ezn$ z084EzxSgkaJ@z7&Ai{tvJ`ds0?zy`&M+R^x^J6tag-r1NSl6@QK%8y+BX!u9dEz2t~utz?ed%Y_TZm1nj``6YI|XX?Y( zH~2D$wuu=_vRjCEu~1ccGp~m1~=wt4;j)H_n2D_QWGw2BZmR zouj;qZL_b8s%lOn#Pfl~#bL~ux8d)vmclute7J)iSMV_`W%0EX#0M)?D~5w|Y+}tz z3?@m+9==Ztx+0umDBZt?d212UxGO}^7Ux+RhUu(|hPj3v^BWINKH_GwHr}sRv76oa zB~{!KzU&9&`?twdi?lC_#a0>2Ao&M!@s4B|_C-Ft^DPKv15qH?4{S^WRUx{wkLp;X zN8YVmI0Up#hGs^q*ndeUsiJub&LyGsCq;ko1Wx8D!1$N^#nWw>qlCX4my9WeTLFv8Z$Kn&Z zkmQ%~3E>}{i9{2ZQJ>LQv!hsJ-6*xY(%r?_o9fd-*qpJ-Nr?VMca?xP3<6R(f)y5+6je z_|LTmjIq?n-p7?VFEyB?GYDqB*PVYw6wt434;PG6 z!Qc!q8WLi?+Rh(Zp3OT5PCq%H4B`)pw2W+ira-wrB>K3}CmbZTl?kA3T{G?Q zel{d-HbbzpC<5x|sIi0R!*wn_wa?EU z*p%;3oUCQ~TvmqpbM%N2oDMYUSC}Dr(F^Tk1W;$qGrz?e`)}v-{j=nKD#>P1$7GNa=&1HRzaB$&S{gHxGx{GfFR@I6-0xxcDDE^G9Rx{;QF%LXU(h% z-#5q+rf@W4C=-mE`hxM1*#kW2>Q(dBf*x$p!xUrA9 zgoNLhe|x{A%@G$|m;kdtsSCev44+vX^eDcm`jhu4h>*o{9{J*Tq_{Fi94TJF?jzAC<{_!UTlc8e|1g7Zi57*i ze1+Qgr2jEMn|dJjB3hh8pIR6F-8SN*LMqvGi?e_}YJ_Ad<_%|TV2Qie?HT<#e5v3|nqT*fY!!2EXRCPUX^%U>rwh)zmnp|g+ z_cVcdS2nE#Wr$u5+d5^2;+8WGl99B)b`0s#>fjY7CC=JJXwe!$Hl4^j1K9p?Vn+N!=T zvcynmYfL~s*Jp?Gy$}q-?)_v$7%e>AQQtMJ^eVLXK|;%zqFssUo0#4XB`E@oLz3Gh zMj24T>JDrn{>i<=k&BbgJ6ps7{!f@whHBAH_e9lEKfCS!)S;6cqW?{?VXk!={iJ5+ z)Mijao51W2-y@KWGJE;)?t&^U4!HN)d}!>|V!LPjktQ&@<5!jB`1s@IDVhnVHNwMk zA#Qp=z@Bt@C%|s4LzpKLx=;d)i?#d(<46{(owYyP92FcDC2wN}6|3c{^yOdpCH6Yj zR9U_7!+ix*xfDLP$e%_qMWLT%SQzZe5*ArtNtFAlzSfiC*5VFZA2CUGBcW$U+pe&0 zzZ4ntMDu%<%IBLl`#&%OuMkvcy_ksOwC_>1qB^9CoJu+pr%Gsp&F7ufSUr_I$1(w) zi6ZA|C81O*UXmYikq9bUIhzAx`B&kiF;*l4Swg)zvd*08sRK`4m-Cc2N34VENYxN9 zc)k^B;nkER%3q<_SsL?-+tSSFHnPMg(un^law$vK8QHV-`~ETHUr7P<=`EOSsN%6# zpkZI~_8vl4pCrxVVl(OH=H~C21~`v@<$OIBBwJ-iWj_+SLUbA+eoBns;;oHL$iKP*IzD$h4 z#HG`>;%3~cU+ZOE-98qbP#lI4Za9uG?~5l8IgP*am(3(KqQThwm@WS&yCXo^`^z%# z8!T)7r}6Z?KB;kPJK*{4_K{uuJtUFXt-JP87kYRQWS((g)J7Xg*YyZnb;u@2r#bxm zL}Wr2U4j9@MlmB5eWfE)mmw;9OxSs-nOH+tC`jGds7|Cni%vB3)FUtSK2E1_`;7vZyBpIfZ4bHisoG?_4&48NXrW6`~>y_ARk!p257JjA(9-`sqm z3*d}zyHr;U9Cz(9Df+-uUiW8fuc`?+iIG6D!efWY`NMh_JBloA6HsMVE<5b@dK`XNV zEe#;7%G`qxTg|wTI$fmW<|?gkYNa0~Fhhpfy|nhsvY=$xNrF+-1StO#{%{LJp^Vlg z8lZ_8ElRwg&<8_i)sq(w$x=W}BYi3$HQOukXr^=fjbZBu=YeVxAD?Wx|H3Bpa>D0t zbHiCPG%cXby^sI<-S&0~>>OJni97E$!3WAzID&GwYeVj72^} zJKZJo@g^+rY=9CiYn2cuRth=V@>hv33_uY)k7IWs{v+tY!P=j?N1uy2#c5i~aohFN z8jS7tb5UrAUib0Y=N?x=GQ3EMM8qtMnNg4FnMIgnK%53Yk-uy*zLnJER!RFRnTO7sB)pXLW0sU)=@5%N#iJ;l}_Z00}d4nX7 zeBd%{VKnI+|8NhRBEkP2n|VrYPpJln1tGx0WhrC6``=WP>DU;R4q5ug2W^<;$R)sR zKVbt_@%95^WEhY6wz}SkwZSTrks7btu_G*0ab3kGB4zr>Oo|@BlEuxb5NdXm>&+$6f|XU&K%HD8lTN88o5(n;c;i-@B;rU0s?j z54SBd%Jc(B5+TUykT&RK^hSv&56V8fdr}_TN}ThC2VIM=Ax8Rvt&B53EbH*-crGh?8jQn!H31GNBvnx?J*}NXNT7if4Sgk>tiL6>-w^^cD5BG-bcB@K#16 zc;`TysnovQXBMLZh{CrVp*{z1y;+N|y~jcWvB=($PRQshl@X09d->!T$Pj#6j3&QW zyce@+&Cc~HLm-7I6N-poTZf934Dc6jb%UwKO|=F|yOcCJO<(5|g0;4FZ(lOPl_&)Q zE0aGCdvZ6rz($}sdqSM*zm>r3?M2iLo1EH)h6ewYz6_Vu!msuDzb6=s{>-|*cl_nW zazQn9uOzpog5v0VGg(_T?emg>+a_1b zLZ1>oIonkXc0v^N!T}&QAoL;)WlW8UQCFoj2``!V-;If93wnG=KNLM{6yz%(=!`zm z?tCG`aTEDQi0mENQbRAr-Tpv?q3eNa0*s*G-;m3cK>9sT*Bh|fN3a|ztOoyg)r2Kb zy(z=ZN1qP;2P(@Pc3ouukyq2he_`zpq{Wl4;qnJ+e+R$TA^XB=aL1B_4e%e87=O6v zHgt+|2-L762Ln|!!5F83%q2a7(DDK`qd5;EFIhU`Zlw%A+x0sm2*6m%+ZJ=U-MO7_ed1;OA|YZHq@(dvTBCIw9z}|G!sW zT8v10REFf<4=sBX$AzBam9ka2|2%i>5X%iiyN*UO&5exgBHGyJ$abK(D*>k)62VQ{ zU4*wn`=Y}yW7s>($38(_j_lVO#vG!9-rhHQLmmCaoB`8_mO%IVQI!8~Z3)<%tk=LK zJ-tX|M#K_x$FS=c5oGou?*}Uf`xV>XR7F>+QjG?tUV>aW5Mr9%_P#^4hj%Ab7nxq-Wg?g25dAI3K~uj9j#<~{uVxFy7{VpSLIN!)lban*>|EJvP=s6@FAUvsmy*W%}TI5RYudh5;2*Wd@4 zg|o~uP!0P8c)$5LuyB;$(9ltRgTG`CyVUw2_+WMX0;*f^)6iNW*xRSp;jdkUt`ZUM zbm}D};|i2=M?1O4-GA0;F_8f^Ix}kSoxuo`fZBK7gP6xujq@1Iww^ZLRd)yc?_8hX zqpvrbG=Deu+s&B3^-H?>GLbGE&$?+|6Gr%_4i=+AA7?1Oi@GD*ig>V-g0L$spuf!2 z*_YsQFJa&WY|qAKEMP^b*(M9?Iv2IMVt(@#31?lBB0eW2>tri7>E*VJd>M6XyCq^IwTs#5J4`KBDLg za;1N2BXyPTt3E2KGVL5h#wWn`oQHkl z*0NTwu1c^HDIR!%;t&flny?XQ;;wPFllaE;BTwy6LdAZ>!0Zepp5E3>{CYSKmcVBh zdqE^UdeK=;t2%|j5jUX_IS;f4uOY`(NfL{M@E4ry&OLY$FVZqwYo>R{3}{I*P-Ilq zzkSJ=tKE9vI{e_9+!a4j zZMtyC-C?Tf^)+;DafcWw%Wa@tEIa(6aiGePxAjIXBZzKx@t9#Y)!0cIA^qE{yYOXe z^&j3x`Y4daOQF9%>sI}-v4|a2{euPYGnUr*pigjcN;_;lx8U9Db5MT-q&6v^PB$tJ zkN1`ix8Kj3#d~?)dXdQ1c*)K*6{n5kQA^nO{&a1FjN`*m8~!It-&H>)`@C+8LO&EH z>^8K<26oo(Z)_>t+<@Afb%N6h{waW*PoH{O^run6@l9mR>^VCbUDrbbRSYbprA$Kv z@VP%dM-Q0Y;GScgWDsu6@*Nu)mZ3XaCYbbenLJNMI`_yI$;mNe%Y1D11(R zASP4EX8HPGJOb7&5Ts%*7PRJfYOa1{bhaz#~c~S0t~DSNm)@TX;s?>YtAlIENfRdwZI3S3qkA%@V2wqiPkfH6)6$3 zZZb->ZuCv9w1ZOE16z(c9xFY1Gb}n8V^5>y{rHl7&mxu_M4VLV9l{pmFDxvwsIxng zXurF1$?j6W6v;(h@HIo#ZP?sK8&6W<19wy9K*E_`B_7XQ{o!j7m}1_>r-}+e#TS%U z&Hg+0%Bb5%BWkpr=tU1ydvPo6-_DR)64w+FGAJxfpE&pVn%uo;mi<}J?fwK@Vn~mw zhlERPuc#V&ZK&|h^pg2LL-&Ufn0-6vr$Q(EYX{wztxwyN(jk*a*`QZ`Z_5z&ZsjUy zjj&V@#a)d-k3e+Xrnyipnb=3fD0<_I1`Z!_^z%&Bb93gjD@EVEnXksN|9QN_waoik zwO%Lqh_;=z;DXt_rjk_iM#QMm!$ln^7i(g{OMM0 zU?6b={z`DV#sE5_htL;CuP2%LYWI81f4U2*yY~INshBKXyM!Zusc9B|`}T&vk_SU1 zHlDngEw?z;fa5bf{hLzYUvHG#xpejU)z~0S_Hp z`3^*>n$7Oqd0$(6_gj*1Y3jciKt1763C9NQ5rSGHp$0r##7X3c|L^!mU)7H!l6l%S z*akpNAY+B2_2&?TTKA^QeAq!#>i6oGW*3_8rJ?Op40`p=eIs{bp*JBsO;N8TeNHG7US#zJ=t2W+}zT+S^SJ=(S4{ zp9I-lm~Uu@3PDG@lIuTfq;N7!4YElthlN0gr1^neAK)+qwA+FtOCg0?!hYHY1pcus zTx+o(Y#vb<4gSm`K6F^97~opLjv*_FIwBDt&`CIAWuPt5#Q71ozYG2yO(=0(ydM!l zA4&{!h+{Gsxqp=I3pJ2!=_;TKbjAZswpC$JF}@Tzm9BQt$4KaLuevJSCgJX&G6ghv z26955Wn^TGvZ0=3sr2c`DjWM_#*r+|jF|kwACma^yO0Cb`aqjc{d1R&?9iOaizEuI zcw!iu`8Fv!#uOqVg@K8nglu9$^Eu*#FS_fxC99NZWkZS?|J#ZiI)fmuNsWOl^c@$e z)@fT-AbP|DPdWIel~aCgiyG# z64}^1HQg2!Z;!PCI^ZE~>CuS^yJw_+>$A|3#@Dk#dMF4`8rV-|K`5C-u)jZEto#pT zX}-C3{{t%A=FjY1Blz-a1VRcK2^3^;H9}VA34&STr?5fgHA@Z8;X>pNK>YwNHZNsuV8^b|VidS!(m=YxiR zT+L%Dv**--$>0majx6?0)(W$dd*NEPh_olK0{0{0R5}ZN;$aIJSMKN%L-z0hv?cts z_5HP!Hz(R%Xvc@ZDpjZ)(O5M`&UTOu4^^zrt()Z^UeEQ&*I@2qfkV8w@8nRW0%XS$ zV?0nPVRx6GlMl_*<4VjDMg&s)m=`@_dQ|znL*D}!XPZCnjjB>LbH*j^Ts-SJ8T`f< zEexqi5FU5#OC`=^^mz9XGu*Q4ihHYmal|p@|hrZv%fcWZJMgY+#B2ylTd$~ z*&%#p_$vaq3ZKx!AglXetsT&w_h^1_g_1^s``X)qwqpDS6J28S3=0%j_>@ZQ24}C_ zJmoJ^A-a>D`+Dk2-VMuw0J+~Ik0M6d#o1+cJyM;49Vsp(pOb2~)79#5GrRC>NE^7b87>bWJ>DG-*2Y z_iT*UAhlkIM?2rl0w@pF)!2nLSf!;Fg{>h?3yH1K-4(z@F;?;34{ z;j1Km8e0o5pYyE>rE@k*V4@0Wpshof1A2)Bn|nnjQ2SY-E^N1Z<0~~MCs^gCWl6?g zS?EHnMCF>f$~VZr@ctUlRM|MWUa*D`>)E}2EPk$jivLW?xkUyw{b|G7TP@5=k+4u6 z!;n1Prk()-0eUO<{jVU~*&j0i8w#ma0jDqi`^gPzBwu@}r(g_Ud(23hyp8c4c*^S6 z31VCtf7|zR=GX!v@Yc3wC&dJ5I8q%0)d+Lnsd{#1W@ew|#yat^tWcOgPT=JEBHC}8x+*EwzgU)ITE*6Um6uH1^Vn#Kc=wDSlmkpn@5xv63b)ij^o2Agq=P|~IO$c;n#EhztGBldj zAT6ZgM^4xw(d)sME2)iz%Y7l&^=WgIJ%*%r^;|X^)-?lG3o?`4;M7ns0hiDI3Jkcs z>n>!)-P^JJyq4}L2!?r($_y=iv4Q45s+%f2L&?dL8>FY*3{LDGpngKw=w~Mm<7A23 zi|Q|5k-ZBGbCzaKXF7_L%+O>qHht-eq0q=pmn`b?K{X@82becj0dZHah= zh*RMdK3h~CRIQdUJaiOYVgwFonOiXSh!+rQhC|Gh)(o69OA0+DTP@{g{$K`QS+Ghv z)Rn*RvSPZsAHj5#%}hu%l?F&%3^GQgZUtW_m1z&59OxtBK({|jg()2pxq8(z$7(eO ztr=*kvQZNS0aE%t4KYQI*uF1X-Y_T}6j5m@(9&5R!BAzfz>cYLWMYm#nWVm5*eumj zd&Bt5tF6WdPb>2pBaRstu!cu?aMZgB8no|MaF;i6ADapdA}G7AZZPsL2wEV|B;R+^ z(T(;D8PP0AqW@eXD%U8BQrHiSQ{yVQAPC~drl=hw{BB%Zr5^&M^Km<#Z!VjH_(fbj zj2GH1el)`O|9Pa3j?!0Dz(c1vup-0rnf&jacjmDJso!|&^dM9hi1Dh~&br%n_X>?5 zQM*8t3Dh<4Vds-oV~c}(x0$czdn-`UN(qiyNH*2ay%v;MLzkgOLkASiMGTNUo`M4X zy8fe;dkfrCesEpU7t9`0++w-!Z1PjrzsUd}6`+nPY;Em7-`~kha z-G}GXhrpu1E&?r(ziW%+CM@(*ms7$|UyF%}WwFXgx|u-w{fEhIdaIlaq<~(qQ#Yh? z9RdPUqs_#fSQr2m`g{KyVruBz{yF%p*sV@EHz% z2aPZ^IjW@juZ>R^;<%%U-uwdxf{sduvxM{h-#p$rZ6W_WbGU9pc9xxjUT0dtU)a1_ zjVJxnzMf+bhWe>>ku?LP(1hK}-k%$P} zLaSE`D&n7-!rce>Mp%Z|ro*m4=`SsW{1p zSJNH;#OA9oIOdN;od5m)E6X-q$P+X=j`XwOn5&R@nZ5OU4A5|~TDvy;1mFQrOm8jX zQEMIM`#;~K`M5RPl`AY--1wMd`f={5hWdKbN3aJ8T1$FGc`!Rx_{MC-xQSi3G%^g_obS-y26`RiVluRLkxn!XKyh=$~7vKK_EU7iTz1H=v5(e5UG z;HlKQdUKkREi$q(;G=kw84ZRhvRP8wZ>Gk+yU%W2(B8Bo`_q>nlrHwRM5`JT6y6>$ zpW{?3Yz{Af^B%fXB=_fMW-uqsiI4g|{%og>Srxmh?gO&5evQ7?bF7diV<^_1u6GGD zo4~2h_8b%3gt=2SKV;e0+Q0eUR-Oa#@p^C3D;;{0nJBh>Xt8H#cFDNF?US=^+_4#Lgr(lr@CB^mlo0FWslHm)WcH?+dh(RZe-al&7nO2>)to2KY*uYwps$=oz z^Z1XZ&@Rqh@OsP#5*Ur|O-)C+v(U>EVR9Gw5?;PCXFeIQo~%&W-_QMEQHoJo`nc+LoH%`tHLSxla*W0{$m^&}A|0&KZ?uVlF9 zZkHqtv{~X(YreK7QZxV4##ziR!G^UodRBdm*>1E_=YAMGWrFNHkxODrdT)uNbZsNf z16&Y2fol!d0{^6|b`SNRed%mFD~I5Uh(P)3KAhAVJ;E{RX_e7sPzfwjpT<{#30s%- z$90(;<+45~lvK*ye^f8n9N*hkJDiF=xHNsOc_OWMqzi5ne_Z4g&{cCh^y2HLRC-6W z7XIJfm0&Zf{eharsk_a-uLnRFojNx4hTbV>9o|48xQ^}(e^zdUE4Fu(>l_b&?tNG4r41T-5GQcA48_)Y+J+8H&E)pMko49U@QDA zMO)ka{Nb?luFcWDMNXW?bFSs~V3>emfk@#6^BW$W%KXAAfYQ|(CEH>IH_Cxj<|rUj z3bZq@3btJ6krbi*k+)!67w_=mN&d`a?|A%^5dUh`ji|8Mw(1@Kl&_Asy4Vwa6CH2& z6om_j6gI`>!tX)VWi5E~ii))q38r5TD>ra$pzt$_O=d!${EMj%@JUtKkn-}fm76mD zq2$u>^*o{fD#y;$W$q-ouJH(LcSQP9Tyr$_tDcYn0TcM4C9ycqfZAFrByiVo_nMkx zaZPfKAVrzH?F?o6yR}AR|2NbNk4zz@YJJGIr3u8mzU{|xy%7O0>9+GDt7fe(@>D*; z@vzI_C++>lOuZjkj(7o`(qHo#RF*jgvPl=Lww|bn!Yj8_tD42nc_3&{;LI?F<~Dlf zk&Ax4%mroF+0LPm;h}E|&+IK>FQOCru|d6Vi{gA2gLg}|)!wIb$PIRdKO{@^_&NQDA!L+1(&gCG|$K?pR>_7SO%;X$$ zC!F6IbM&xFeq9ImYM%jng-&F3$jb3#@RHK1$E85F!o1grya?NFT2`gcOs=ou)dh9s znS|Cw|yQnYCi|%uG#yRLXFTz#QRrf;K zg|BoxIQ_IVv82!N23xNh{}lH`L~?i5z6(4aM>lTsQnmjGpdMWTf^hS8p#x5xZO?#X zt=?76Ckx}}INmsoIf?O_vI=#t=d;Tcw6!%oJ^=T6Nc#&o22c>FM;x`0>tN-rh7!4l z0#u+!ch%@Qirl$|HM*V;ypFOm@w#yvbvKJjd3B!m$G4L2@~hZ9gcaGR-I)XDJl&M$ zlNUEE=0!;^w8UVgHnSy;Sp0Ie>NS2nxIcB5&muI@EzSh$Q!=G!Xl*rZJ^K^Fqs#+# z{Fb@OU=al)DFspKsH()A-$^ofi7lqv&x*-iqDXMM#Z@-q^!FRzj`pVmZLWBY$NMc2 zVw1F2dkc%dI=t1lOQk;1`Wb;e-g}N!|1wyhY~^GxM1t&$_vGv{-;z;O8o002hvTx9Jil^Ei&ysV*@;M%aACNQxBhYrt;}OQ(&5OgrOoX4 z;kpqfT5dy8Y2NIE&u-l|s%EWwt86QNaA}H5@76+J4!7ssGtKmG>n@@$HVXKeAd^Ji zEl=VsZ*!WnPCL9FAhoqRS7orwUvMSkdN1AX`}wOGOSuOF?7&Xk`eXAbJLXQbW_8Sf z>({@rHI$H{P4QE=hG#S)L9MJYBdeJasiyCc0{w>lijvZF0y(&^3Dy^;zv`TykqT+Z zi`=U|+X`@`HW2-y&`oC$=lth5;?Hce3HY6Dx{CMn-nyj4Wlsz~eHYgv*~6VV&TiWp zRAc&%uHB@u@T0aWuM`RFRk_Br9zA}2<=v0w%CtXqWgG?FDIsL4kx&%e{n23aa~&RC zYRNaDG_9;bhH7Lzl6acxM3d`VlT3ay&mcu3x`ba%%sIJ{JJ)Y+X$k=fJIEEZmkw$iZExy8~V1@%KEl|?)QZl$Om3DY+DAVQ+ieADx0j98bs9Tfi z1FEcS4tSr`Pg&UJc#D0VMsD~0kgt~h^fzn!SccU2xy~HY+5m^>*Ow=hj)3i`)lilv z>q578!DsMu(~XAf3%Vq}DZ#FZT$d1aEJMOX=*Oi$+3&MT;RE<1YGmfTn~X1Manw_y z212`cULhew!N;CfGUc^IeWCg29mrx;XB*MG!F!V&zdbCh3K~w;|KQ)Zomb6*>V#dF zMvL~Z`a18v<@m$zLT1P(boSaRON^t2@19{8hgkdFuUxsZGGzuKA3D)}9+JWabR{lr zT&K@~0ydxwYSdxx^MlJmUq4f#56E1)jEsP5xV@PVZG>R#F2(fL6G4h^6|)dBL6rv# zL}@1MJ~&?~ts$9hG0}cTDDU(8wU>Sg$yp$n?g$c$>YiV64Kb^LdcqePlyLxumry1z zqb^-<6uquq{NP**LRH~ji98Z>`7ly&ljeB}A?#Oc6%WkvAwuUvy=~g|FZ@E%R>O;^ zwoEVFEU{$;P#cr`pmuwfUAEtySmpHT!g|m!(abE z$8>WduYZCT)Tis;{!xY3BAU6$+HEW*vqfcQHZ`pU2smbLU|X7qwlUJYEqUnDcg};P zFe%&3_Idhp9+dlR%S{Ch)n3A7?z+PxWKoLN;q@S))z(a|qHkB&oEb}ahG$+XCqa`Xld1lfT%#iK6=sy99 z!7F8Zedc5TfDl~qepRiF&)Eua$rMqxyS6kd>z~Emu0YesWq|-9ruO?(lEiz?w~kEr zt?YdRvp;9MmTSB!V-vWbFU!dNWE=qE*jVq8-M=u$M3cKc^qIxg~WI-5DKgY8B+P8bU20hC$g0%`01+6qMo&o69W!N7)?P%x` zREKXx*ztTM`)#Xx_WCgNTQ>kYTtzuOC?5ib49fbWYe83TUEMdF{5M{9i|;A-CMZj6 zP1pVCv8B4C|AShknl!f6B zy)($X|0r#tK1{kj zU0u(&Ok(r$@TozLna~K3$an>Yu2-%+KHq4BAPS(Fm86A0xvpdVh6Vc6tIhWT$IM|h zk)#zFeW!LU2&y030Ig`hYXHNSnU{Iqo#~(I{YrLZD!To;HE2|>jV51r6zZ9iIEk0U z%bWeHaP6tXdzA7d7Y4TRDm7}SE7`#4lel0ImR_9dF_y5=u-ZOU!R~fQl3{2N2pY{7 zZ%T+#eDoOxzOaaY8dMRB&;CTwE?)`n0b`n{nKj{@v*vZP+Z$5Umt1ASWm?NNStL8^YlUR z3NxAujiXa4Yjn03JOEwO2O>O68q+F7u#VsVrp#7359Gl0{x|<|KF_*v%`rTW#(J5= zKSi!bc@zimnIEO=0R8@-b9Ac-o;LN#aledG-{g|Sbn@d*Zl9Z@FOhB>mv&kHBrAoJ zy~Di4=s{{wl!hP?3niUL;!_rki*M-qSseSu0mkNDWq%s)b8UJ;X@nve2SP{0pY6Se zSy#0}1#dz|f%VsLl)8)xDrTEb+lU1}8nTB_% zpL+J#G{zHN8&P|f5^f24ikMZ-I@LH~R<~lDD|4e&VjFJmc;{aR;!gmMTY*W<%mR!s zVwfOpJ8#N&N0B(M8zQ6&^NauZK6<%sjT3VTk+yfBK35zolZ*6TKne4|Czs}T`|Qfn zl~8rKaA-KHyrPq_C03K-dHpwsLU%;LfzzXHpPDl0oy`D15NDB@ll&;CreKZMPka63 zVruh~CgTIc$-)-=?5@|Qrp#+5?-56vq10nMAO?R0^5Z@v)XCYa+L>P2<}ml6fg(@C zH!x*~eF8Fpy({zJ{>+#p6A2@ej)Zq5IUI3MagQ1hLz=;~bi*dh(5EyiI+rIse^K7* z^H)yc@^p6NhRYyPB*w>%7Tx{3V86CSYp|~TSJLa-&$tmo${#>iLNj{xa!+5q9JY0uyEr!H@N z+k;<_VQA0vVSYPBa&Y2O;!G3#F@d;ti|?5Um<4vl_X_Q_cI{?XBsYYx+N?PIB@P4X!9KhPDX?s#{lK;mYH zYQyOTK%JilZcDv=!?3^?i}O?W7o*Sh-XFA4jyyh0JHh{cQ`p!OA$<~!{jPIv@QY@Z zmcF-|quZ=-;}Qx&n?OmbA>+^`!{%qam!gv#tuGI=p)ku&+NuUr)u1q@BZ^0Rmk;dk z%b-6%@?s!^``$%p_pH9^$@f*}IJkpc)thWY@wvDaU&t!ppS}(1ibOSDs8uJCZaGgo zaVFsU1M5%So)xb+h&p*{d_vmSADvYL|N1Xm{OO%Cc#66*uc_#k=EMoxk`VnunB+1= zy|zcBWHgFuH9ntK`)>qpEh6)*l=s0XCDI9}!6H+@x_RmzEQd%en!4N`S^O~RRv~SN zc#DK1H94g8&8E<*l~WovdXcK=inB3Vg1A^I)nycoc_RsZ7L$MIVG zV(_=~9^84%y`Q3>@w~cNhwI09;MBZ`2Nv-DE!FLHhy8AqqlWjh5&L|~`@}{HkVDRv zsxUOzk>~ZvB8d}jkf7{1YpeD~wSgH-VnX3V~f z2aBdwt)7Pwd|JK(ctB9{%EYC zCPq=`L4Hn9BhRK+8!MO(ZRRZ>7vt&{{=O&Hh4!!Y^>4(Uy#7uoK>-y>tx-%T@=Rci zl^PGK^LN~i-&6`bt`z#+mVo2#X}OLq+v{H8938SZg|r9C{>G-1RfoKoj~vNwyHUBl zHtUlVlxPAeO3``WA8U^BcMI)Gf~D~W?9DT#X0<%oj7C1`yL2(-xdd`vz1r&*yvY~% zT{@rHFIhmD!G+%HPY|1 zLgbAKbpT~Dg|>q4c10#=gbMnaaJU`ik@O)x5m`hKw;!Ga4Tc~J`X-;ViP_%uVy7g9 zS;OtP3R$1tOE81%w%ROx&OFRZn~OeGhTl{05Fk1!Jn)gBD)OjwI2{}~;)r7nAi(^A z(jnbr2#I$9h`&SEAvfHnK{;@=R2n*M#F)& z2F$lbgPf)^c<Mb`vkrqBQ<4u%z zeeD6t>pVX16BH8-`dR~u+N&Ll%wx(9Wx9WMY~V({h*DPb%J3Z9M`Ias;AlbJcjVGf z1bHCc!gL3|F0ne|d$Rb>VzGs)5ueg=X^!8d@FvvK^uKfBrJ&La+({L3oBPcEWQ562Aq+cV(Asp*{hFMaFx)5)S3>Lr#BYJ`S`h;%)2 z4`!t2gD1BNY(V?QMi|N*Q(m-b5fJ&F4sE#;nfD^dpxNr9A>}|&BS>QPG_QaJnZJnr z$U5gde4xNqm)X1sB1u0|;Tt^_sSj=Dt5i7mIe%cE0#N=?2%w^NwS_!O#|CHvyMx99 zIiXhr3SG1Gf@E~jS_X)6&2ws2qJ4{^&o4uP9(;)7wlH|#XyDSHFSe%0CH%A=ZGb_+ z&@w;Tl_>iPBn}I;&VVW1Otzg0852)voIH1_`6MyR;(~aizDsbogx+I|!{)trcAOa?Ih>_y0BBei7x$B0KM*eL_BaHh zc3tof9uv%)MGZM^X0Ej)b5t)^LDXh1=>F*D)Dn==JZEj*i(hE`8qBX6Nt-f#S^L%t z;(Yy7weer$nft-&02=pRthipExdz<1FmascsRm<;i8G|L-dij65cGpOE^ia(?N^j; zqS|G;-1f!eoMJ9539=uax2SrCeVbMt5>Jo-3bGXmC^S6_N|1!{y6%#FZ?Cs4i@$U% z4_YTNLRWQ1^B&C0#9w)<&5u;8H|CK#0a6HeM{viMjt!BJz(H%3<*nri(~^fSE@kcq zT9aTY-UkN&uCwHvhziY9R^$L5zNUgGd4(2z33+NJy+}kC?H2r_kK3O##Z}D_YAu0C z)S!z0Od-!cRJX58zd8Fl$beplrFioGc3vIzBrHIu+ zgW3qPr&RdTf3aZTfVvskoeR@rtx8<*9O)d8jF}Q43#J+%t|F!7NbeLndb(5iGMC=* z2%s-dGGpWVh{(M6TDp9BSGea5(rY>=pJ+^6hC04rr8FX-oL3vo-R}splz0v({h$bH zD*R)S+_`tseAtSe7NtcWsvo#4-BiD5mmO|&7Xr%#i>7lQWcgv?^22#Tl$;EHoKO9@ z7d%6OgF-f(%(R*4L*}@M7SrW3Ra$4F)VxzQ?Oea~YkbRWI zWj%}gcb@7b|2F>A$OOi3>(#s@rp znhS<^-)RxFpa2py+BQmF2#Gq~{2x)@9ZvQC{{K3*%*cumvXZ?khis9p$PCF=k`U)m zA$wZ+G>p0DS9-;et-DA+}*bo~ItY=nFW zmC*jc+`_IlJ-6^mN0s-}hm0el^ckqS2KK827do z?p|RInGgi6J=_J03t-0r6V;~`2(@%kZ1HipThU2(X;k4B+?Io%IM|vkRnGVOQA6-j z@_eYorPg~SbKpmUJ0yB9gl@^}^4-WR{rKLr`4RcxaWlP-4Ee@eukQJgMyx;#>Mhli zNlvmO0W?bgf6PfT8@hsXaD>7lfF~Nr&^|z%Y)v^QA#9bh?s;98KZ)#P8x}ecYHMk- z!Kz@NR#eW6nQ9>u^@6Q3Xt{wX#z!m06VqZ$7O+Y8&qF z@88eczV$2FGBLo~D=$?2wmR4PV`69zuy;PMKnJj)!K*_HmtE94K42Wl`fL@>2xWZ0 z?vqfpEH+<*sIjlDy%JrVs1$+Gm^oC#0ti#8fkBn)QG$BK|7EYBmX0D9Ep|>y5m^Oq z?6dkNfrR=*yBLIvpHy8gN!Vh*L-K@i&K9CuKkx1#e+Y*2;3>WuT`QM;()BuWB6_xy z-e1e(JEM!aO?$@b^(EPr-P?ykV*zpuaP5VM&Xo68aWiio9-vmM?c&$@#5b~i`Z(*d zx!zH3gyyUx`TOBerC)RkH4dJhI1oWi)P=pf+o(T&Kh`V`gkiu*bhxk%hT}>_Eg-%t z$|o98fuY7aPL#w;VB-kXPIkSqKW|NNb~NL`Yz9O54+pE+#d`BeqC_ldzX%4toOz5; zRS+<9=Y>5=yJzh8hEP=LWaVY61p9H=7>--gbQ8NjewzJvi)(k{&C(f}m9E4$S(wrS zdly{kp}eV^d1--|u&I{~qyC^JLj&WG@!zJ}MK&%~5Vay>c!&ThE4_ z=3I69Kbs^9DqOml_VRq0^w-I}axNurTU*;+9U&@uOY&e@l_imwgO|6h9DIxTIoK42 zD60q92}q9;*@+@;{R-rfYsvsMH3vW|%Q^O0@}FJ9Td4EzrOgEF&APLDB#=NZdbSEH z-gIP65AA(v`!z3Y!bI}#{Wq`S<3V7So{SJp;dzugS%~`@p@m+dmKmc%HiWCms`CN{ zeR*pt4>wsQ0hf59h5KDC(=@CaC-?SdUFd@mB?RmwNGI0g;J%|tuF|#pn!@!)2kc{9 zc+bxJRQTk-%n^A|Dv)`I2j9A{$M2@KKxIj*2_99wt2+0DG;x&8F!ja`=CxEr3-t|% z`0nGOF5-mYld=#l^2*YUyFmcOzKK1*w%Wdpu?3+QoQK-DV9PEPNTrbVwxvrsOWhEp zR_Mp}r$~Xm(*?T~4Mx)-6x{dXHPB#>Frg{Qt!wL*I*`0D13Y$Dh}FHntbj${1$AEc zrOGv^#|_xkP6($P2KqaR;)mVAGrIzam%rDe6b)cb2Bv7M?@|I|agdYyrN!hDHzyU6 zxc#}A|1Ldfv;X^e5JKd9e_G(67ViDPB91&y% z6NMN zj9IbCA{OM}M(ZS_4O38}$v66H{aUN_(?mK*yC@s27yoPiF>~t;*W5hE^^P(Fv|*Qy~fV93C|%reamo1&p7p)@)`v;{~Q4{ArE6fPzNruX>GZs z;Ei2$*C-(~n2!L|#&eL~fbRU(qQxGbMU-wsP7-%M!7TwTJ)F?wS~(zmk!i~98maC^ zWvJbUTI(S?`OVYjfb=E$6nGK}V%t0v{LLOh9Io@#6qetuzU8L0`;rq5kEpJ*`K;qC z)KuUghE7mlC~OPRPqxzK<+-q0)pvb7^b2^jsCMAICFTt#F&LnJO7J1a?!khWTLxyF zE^In#dtRn^Ke|X=T_TRrq-F=n(PdmM5T0Gt;7oX&)D&xFeh)0$WTCQb-|X*N=cq8z zz|74B>LnL9VM*7&u6ZtPjE6s;arSFRhV~Emo{q3In-@sMx^B(5*)X>{1*A~fU}0B~ zJz8%6=)%E6dfH+~31dNID?FPJS6c9!H{ww>M?2jtqdISSO;UZ7;q9 z^yZ%_wfrq82akP*`AK6Fi!q*#GI5U@?34oS=6%1Z%KvNY(su;tLanEjevpkfQD6b7 zHR8r?@aH)P7DqgNidMj3py&eMIW?0Spky?|_A^U`TKLU=0}}*@X-h`TU~He~&P!cH z@6QiP%vPD+_?a3hK~iPF(^Hi$=j#o+7M>NYbNpp?-X9VrJ2&b}Vd)Q7lXfV2< ze={roGM6~Hr(&x=G5l&cc*6OpO-Dw4PL6sk;F{b!AzxLW7hoJMxmNuivKD&QO~u24 z7D@Gm6AF=Cehc$5LcdqL^5|oF%AptVv3cQI_M!bQw=EcDDiFbNf211bCQ*!-w#f+_ z+?v%1Iiq-Fznj;G1-WHCeF(Gu77^wctUax6v{eZ$*KycLq9FtOSeSi0{x72ht#iC( zSV$&6@!4{$c8_LD$xFE)a#+r*;EDK$4mi>PPkv%=-Dz7$5uEwQ_Nf6x?&!iHR9J&o zJ945sjfo?~>2#j6`^oItiG>IiUAwoBv&R}D#+svsG)&2uz+`v--0O}| zv3*5WM}7=`9O(i6@8c5df^&Rpc|w9wh1MH*z}08|+3jg;fhi&smACzTdT-08JTk$b zQwx%E@bi*s^1D3?Jht{srp=|!rJfJkjL;dWT#6M$qX4_+&wp2vF(Mo5RRmWLNa5hl zO6@IJ|Gbz!gAqYB08MFx5kdvtQAh$`ilAr@sY%R9u)ndEuC=|DY135j@~Y$II%P)7 zZ3(2Dt8O)A98E@d#C2U;_JC5yl)*NiE7>bB$i$_GaY*hqI7-Fs4%0i?G8fNtM%kX9 zPA&QYR*VZr75$S{s_bp^=?K72VEHE!;@2S<6j6Tt%S{80hq(A1bqpA$_w;uo!MBZV z97`AV)k>CJ#oeXGel}PF$mUFy4+=zx^68iT{1b(1FiVn=5r*RuY z4H%$`(BF<|X8C@$o!o6YsXZ+=E1nia1K~lAkKotoh0iO)pIR@fFTe2U?h)+Sqgvkw z9tpK3=*2U5&z{gYul9vgq0&vfT7)Q?+K&nI2{jLtv%TAJjk0i;huE7b!0sE3Zz9i z2WIgA8ap0|g)Tu#NONTAXLTVDv)hQ18_afWx1|kG-Wqcc#&z#396N8ApW&0%MBFw7{76ALr zvjiX^7&QgfAkuV=Xjfj|GY1=nU!D7b5plK{WZN2Y{|a44dEb#z_RVu@zkmmEAq#Xr zq<>56srX%oNniB^m_dCO*pVuyu_&*Mm+nfg3&QrjKiz;r0O7YjV5wv6`FqsnlY_(h zpB&y`lVHWDU-ZztsO}tHg^0TiEgX4lW`FdZ`(}}gK<59P)qs^b;2dw31S<9jUY!v( zWjEMhjQbQZ@QZ(0cW^yZ7Z${l2v?}Q9k$a~;^o0c)jv4|{vUm~kyOJFDcVp^F!igY zVac$Vk1js|r6`X}FntH&Wmf7|JmO#;w>SwtFtUX)5RxjH=n_PIa;;#=7+};hfOYzLQM}Cj3X-j8YdYzc%HbADrJ~QS^23kPJRR1PGbN z(uxp?1G-6@H1GHbi=Q?t^r^F@OAA^&AwGfBr2LP3+_TMDubSoKL4zkF&p^FuOKf~E z3&Kouy7^Vw;9ZEF6QKYa((df=&Lf#nfy2nxDJOo^2nS55X}un9Z4pViEF<&kq@@7{ zb+9b6Rj8MRq#a!`Dj)1M5N{4mo<6R$8+18;%zHUdr#s%XE*bqBo!&xWZ1gGo9?XWE z_fu1|qX1z(^I|J#G;!M{0&hXxgDnYs*2KGb z(0SC9)P@*V(kei4wD1y^scOo7~n|HyjV`LH8dp77CgPV*Q7iVbXFsyz{@xs0{4?<28 z0+iU{IE9~h!IhQ(DZX|G@?wj}gGJ6TQa_tjDr)^MnF`Pi`O;2GVu${&O%}TXfxj=E z|1vU<%RQBOaV9$X(;?Y?*H8uhw04F+3RM9tSVW-=Hdd!Oy49ck&+gBXu#UZjaBl^L zEjsJHEK|dOwD$a$=c+3GOKO;EoyQi(-0U=0Nr@!TV0K?mrvL`^XL)_kxM;cQW?4%` z4%1^1Co<@tybKZ?HhA>!I1H*75o zG@uS&-E$2fl1NDDIuh@Q#FS{z{ymL);J>M43uB?h^V;{G@G$tC_JiE{(w~rEW<%#W@C}Hc8_`Ki*?_sE7HEc$;_$9Kte7*!~I!;ZV+)@u`8lg9BYPe~{)B40+nl(&^A6ADy|?3|lRcGx zqin8`ib{m-f{2)Op~5%Gjg%?{0cZF6q-5t_%Ka{1@%ef!c=s-~W#U;%%_F~?_uW;+ z((`vC4py_!^I!2HPQPzS z7ob;5RGU%bN3J{@ImcSDLX0jNXQ7;+Tu%w4rIq9&t{ot5JB!D6q@7YpP=3U1k$vWv zte-@M8Yt%4oOK4IPTMhI_Mg!F<>=jzus>r^Cqph+gMd&h&;a&=2^x#jPCc!^$`TAV z#Zx+|J)UyVFsUs?PAF}onSb5;s*l|5 z-LE0}VnhZv{C-DysuHZ}!nzpah6WFr#%d}BTSaOvbMuJW9>STW2F8DXbH^ZbuVSCt zmzaG>VOSD?<#%C)8@l!J+|m<}>-(?h2+rOMIfF5~TP=8#9Lsh2c>aj@Mxa2jj`%G! z8<_gkYbr3Js4U!6Kc!H)AOu;PWv zQdcM2#Vtm@xHbj;q>9{tMOoiRrzqWcAyf9VDdVjz(Z4fbvC+XuF**rw?zWF8eO0X* zwh=MWg8Dy*=rI+k=&8}QJ_>Bt0dB0PC1}NmKnH^@U!9j|Lo=1SAG$YO$Bfxx+%vtN z=<7ref8U?{KK9g*QpW%$SAd@x5b%ifdyU8a&h(_C)1t$rg_)O>bd6CV3e7~i+rpC8 z@{Sr5StC8f^HZHWtS6a&7i_R>;{;F$X9~0`2dz^T=S{F0co07v3o2_*vcl?n_H9?& zxJoO7N^>p7666gVRA6w!(I>j$8C@a=E%_gTYAR7^#S`}_xExer5cQMeIc5dm16OCddSMZ-Dev834D4lV%wSM!7RsqVeq@VRm*9Tdv^xC}-vmNd zA5AwMMCOj;w?E2~*B%K}JP&-S)LmwS?Lnzd0r-UD{IS_fTD`@@{r>j=9RoW{zi31c zgiD(#pdBz9`hwowc@oY_7ljc0#g=wfChdNqxj!K!WeW@mNQjgUN}bSkotrMj5B~g1 zV$U2bUoiRmmba*c{#`i>@>IEJ$z$?^h$T6Ro8bP6F7e${#00~2l33G3S^B+TrD@+mikIa}v_Hv|i-Nwokn5uDs z;9b|2*$$Mrsi)w~%WT%w_E*0o?uQ~5VpoFBMmDI{L968e5C!7%$7Rp9RIFl?O9Fk9 zJcDRKXevu1@cLW7fJlL;`>e>2 zdVz_h$plV$>RxFv*+%*%A0e#u_ArDu8-B#qon=|5dhVwjfNCNVMy!sJ&^uu2SpRs5*YARP? zBOm!1j0Y)Vx>1!^zl8wq<}*t@E)OXxWKCE-N*2l0OUo{$eC-oRVZi6pB9u8eqU@(-MBQ?{)o6&0)HnmL9W?WnpmG)+g<)y#-9*zp-Dl}>=_~wz)`Sj5NDbC-j z@1(9nmvCP?0e>{qxpy9P@fq{B^dskR8VvuswSmVSN+;(r=G~|5c ztZq^qX4<{O<9>M)d%1&$ykZ$OYdAcTCq#-jMB{eJlhS)|D@~EyI$J7Ti0W>B%PX{s zMkv7c5gVfgF?+b)E50}X*hk9-@78v|I#H;P4feB;h2R%(iagO5$1!03h>TeHVj@jd zY}Ng#u%k#68<(Fy#;3!~aCtX|@G3 zd`QWpAGnxc#zZUY_hVfG5n3FA2TOQ~?e}N^EyjZemIF zk&g+#;D(4|Ban8lcapAQK!UeGF7zznj=*W&C-A!@RWq;a7-fn^Ut;(I|h2ogK_Oe!hjlq<;itG}ZY!YuS3*;h zNEaD#Av!wh8Mn^55&CXm!86(6s)>};S0@ggUv{IZH28|jbUI-UU!_-{b6EcS=)Wjp zi*tn0eYu@t@6xFIaxeUgfiDUKQ`lH|L)ldFH-2sx-tvF!9!SwdVa*VXs+9HvM8Vn_ z(2ZBDEL()4x%)>p0w@waL5we26y1i~uArbOe$}K`i(v>?JSfaq^m`P-fFJCoMX^FM$6PpRe;`DzkMAel$GC&j5Yv6k!(|1D^V$Xb4t zn2>l(P}r{}=>%l(wN2h_I;_*1qa}FaAIhNh7WyzV z=$wKPyTEE8=LZ{ZZ#{#t#}c0pQeYdAyKgcyl=PT)^>YLCK7tdS9=_%*j7pJ!69qs7 zGjZpU#;>cX`tUz_m-0!-&!)D|aE}F4pf5BJNEUoVKJy|M&VLD$e}1z zt_}7BEUX3;Wo~Me@j_CcL;JrI7(ly;j!c1z?H5IwFT_!?U>r6W(>aumLC~LT9cx8i zA*^1fVL!DwzlnxpQSM3So#^z5{PV~PgwW*W@As@-+ZNUVZxD6^seJDZK;-7CXu_dU zv{rT6-G8U+Ps>zRpq`C~6dAjN=hmSe$SZx~_T>2sO2Ed$O(`mKU`f8`>l1!37K&tb zF(Bfmg&waW_S2-Kq!OX3KuQ< zP@GuI(p^%#J-!SPAAM7zdJye=`U zR(&7ypHh){d?1yt&L|3aTbReA)>^ONAztjlb3T*H4(%44SSW-te#pLy42X43e0tzD z?2i=W&85hSegBqm^u$T%_Fu%U{=1$d7-g-jW-Cq@G8wJ}E%=QkEEssBRHh@&3&qK^ z63hD#-*N(V6cX7DMnU}rKsqG<#RV{j{+5%tJU9_Lcf-`aI96RvcY@>c>v8M15sB}v zI!y8Wqmj6j_!Y2}I)YOftvq*q^THK_Dqykn^70BbP_?CWr`DlnkJ-u{NDsqgN+H8w zOPfyb-taL4!Gry0rZJ{$+$BGWa=qj1c{>8lP6d%u$=noVxhZ=Ud*%(O*cqIy>s4R! zNg+mhai)&RKi2Ke$z%t-w6+SpKU0(i$y_(gqaP{$hq@1I-WlvEnEU>zeTDac=tmHM zl7QpclN}+8=Ejv1ZSZ#1J2Zbe-j(}g@KB};PJjjKzgz1(Pd+~QNRip`Hk@fz_qnTc zT<@tD>$0qoJmub#Y~x>m7?Ce~Fdm?l+V;IB^NL0nOLhK!Y?MgGDhr|Uw$$JD-0d&n zOk_|T|0Tevj0QbdR%rF1H-aNmflyFREX{u7APfF ztdqKx1I9ln~8a(BgYo*N@&ohd1 zo{2Le|K5AkO8p3zBYK7B=>nkk zzc>!s!UF$aTT3LNlyUnFGH1C;hS@JSO8NB_3LcbcET@;;c~ZXz>dhu0^OAcv5B`gmyLMaF!zddB-Gz@w6X zNy&r_YR~0XHi135HG+Qv9Op_j)s~u{R9%t0_09 z=y;FHY={X;FxujrCS7k~__?kG0%%Y3m7RbR|Gq}&?$i`~tyo=&SHBJDbH3?hSn!xlp zcGceF2T@lO074MKxDBU<1eAo(tmUGs`BeiFwrvnOdNRHjpyTMn;zG|0@j||7nKJZa zo|l_F?VGzzEg#yNuNT9B^h@g$Sr{2bT@%BW-{G@-cOd7kW5CV_wWhHn4Jgyn!T$Qw z-5(i$`;`AdWpS%@s`h@Sk;|9)hjUyZ+H51aP*%Xvllyk7S{Fd2NxNJa?qryRP`d`6 z01I9`W#VJ*igXX(BCtHy$P_vNvhQR>H>e}Ft#n3P11N@BLm2NNRek2zeC`(3Nydm2 zdUw#B_ooXH>-;xaZ>w)wCej(wMdg1`WS)>J)jjx1lcUxnK`gGD8#gFLaEmc3`m9rr z$hYOi>wm2=R*d(D`1*n}T4xK7=a*hGV#CFtvL&(XPy4#w6j=ec?R~y@-BS{yoTqeq zQCw-2*hTKZV67$4levB^boIrV>ZN!EItCqU*x%i94PWaH>n8m!^*aZY2wK0W1^AnO z-p20Cw^;Dw#~F^ah-jR^%i0|CaFiG^?r1bna;+;}NI7D#C$*&-d~dn17wB9H{!Xpo z=kfXN-|D8@yMGSF86m-(#TX($u|S20jMrDl9qs+>}!rk-za4O(MFpOS_%Z>G0$J? zd|qTb9&xJQvXD5^I+}?{7vXV@@~J>|p#kbR1&~Sx}_=V zo~^uC$6#CUe|=CnR|!;Y#S;X`BoPfwsGV@A2$Zw9$M9oMC++2d9mJ_!L zTif_Uq7mKiOWB&H#mTKd{P+?8#rE{%8zm6(N?>(QsG>PQd65uI&3b7#QnAa?i{jjW zTm(NE1vf_?7xEMU7g6IT=9n5OsP*l~p{w5l7Q~Fe2mfBf0Rz^GmBnN8;vJjWq@@&p zYb<(Wj`b-s*7_Wi;a(-0KIG&Q@!JEP7UU{41PhfNCD3na>Te|_F7f!9e;a)?nF2)? z*<0CpA=d13DnZ|@N#Lm~NQF$EFe(ftWQC|4U0Bj&a3>)^_fK5_^jrC<0#Vl}PD|5s z3Hk^?r_^2rgT!Ro|>8y#HM^p%FT z=N^7uC4=ot|1su}OFy-xIEo2Nk}P@j&@R zy#i5v5xShN>|t>08bvi{UkkXbyIO+b%z=pinZ2nYPaV(fs#1p9-$X`nfThb;`aVA( zg#$!S!QrRU$cw?m-}S4g(&FOy4&-&>#*WBgaR!xgVL)~#BpHRB5!`P1*ZQ90pH%WJN)}D`Ous-9u;W_i$a`*SAF?* zaeWm{L6tNw!I?T0m-3!oB^)m!f`Bc@&m21r)I8=rkGf?Q@}n+r3WmPyRp-isHu@gQc(SjF=XijRaqCR2%UO0pQUd?JJh0gz=gO;TfO zJLCOGH9;Yc8*4;(8cqZeqf<)D7Vr@R;)HkKL=$v*yV}^Lh(>pntmTQpS$e;#tk&OL~1AL*b;`0 zAgSi0H&7T2odd=&lcNpZ!N>dq`Q%XO=*OO`l(LS%%KlkN%Xs|$V-OYQueL?U1(i41 z$GUg$w!@ap++DcN8*>jMr`0=E-`r9PSXsvJwtizWCW{myf zH)T8hc?lj@n-l9I_&3(>2#8Ro@wht5+)@)ptFmdG=b}o?an@aqrVC9_2IgC!X5D?j>Pn_e*d` z=dwlBkfCY*_BmEKVb(S5_v~w{FxuC1lzU#@+kzGx_c2`eF;(1CxzK==($ z!Je*w3j42x?ei{VBmcr~R2B%lx_ORcv|{_E=Hr&($Re*l7-5u$f(1_P{U~VxZOwN3FClsPHG`bSd z77#aWC;Elae(298rC;6Aq$ zJuXdHwn#$IH*=%W9JNt5$g!`c;Lj0TUTL)#j-pR&UzY;E)$6k`@d*{%*i{4bP(KA^Gu}vebSX^CI<}OZ|9; z9z_i@QoU7?%4s;QRAgAPH=-U5)SAZjzvXXK%lViYx!c<2a9!Adq5()&4p4-m;ALdX zCQ|;i!_VoMrwxwc%iK!8UktWbt`)vdQw(T2e&9d6ewzR$K9@Pt-18{W)9?zNx(xhJ zoQS1d>AGLkXSD(+d4(`WuE}D?RxN?&7kc!DD(udw{ zw5srn;hdCNsA@b_SsmvgAiH*r;-Jju`asR_LVS#1gMN(Qp781WJ=I#oC=`S4lr+|& z!6-b`I=mR#4=BF^!f124;Kdl7qUB|H#Dwvni>Gf7i{x^ZkOgh@@{6*(Y425|RrL<5 z)Vz&=@K^)mCsk`RxYFPfSr=;&=C;fA{~}Ul*`X{Pe5Y~n=VP*2djSpKFJZOI$`zYWfP*M@ zQc>qsTZ{2)%J8HuIRaR&$DMWQ9%=2tq^IKPJy+T2H0C&jJvUvi+pK%Ic0IgyRL^&# z=#YGegGkHDS5<7eH`Tr4dyRb;*-zc4t;{;kMQ%;;99Yq7GceS zeaX9zVNflBxWK+B4!5zJRj;ML7#gO+GAf3~w zCto?g3fU)CHga@NejL312e_C==Xx|?&T&Du(7eRsdsRQCI;7uCku4?mwV?Q(ty)N6 z!&crkJ_>!O<#TO}5cYhRH!Sb<17r8DSGolm;(|#*$8wQNsZ(4x2c81ZwU<%H1N)tu zeb-bwF1$cfAc4+pcc=-LLy?`n8Ft_QnTFfnCOdjMNwA;tmYpYINo0p;hi*uVn#%NB z70Kic+}*Agg>90 zMaN04km*RB7*e*b+0Es>v2eiFadr@WTc zA$JO!rJV#`xlBoqlkSqH6&Bz2w^H+Klu`ri8#a21T6ut7*0!?kK5CEFh3<9B9CPj1 zlEv2BZJlLkk2p$=e6D-&^nDe=syZK#8cj1QNH{CAY77OI*&mJmid_LTKPFxUykn2R zy7Gr#_JpfaT{TPR%B$1E~Kktq5gOG)7b4o5IWVFI-*B@LIb^CqgCw^;Ojo+A%Mhm_DDtX_iJL7IJ9QkEFOG z*Wh$G&4uqgGm-ggrofl^-)r6_WN2a}S!DX}3KgD{&BCRQ*9@sMXm3Fuo+fsZ9no3^=q1&F8r8Oq!>=%h zb7Lx=otw{BUzhdQ(RhhIcj!Xn?922nBCoSc-8`(9$}K44K`I!U%lt_|%DPIBkaS!##7In(rFE*Hh5+rJc9TP`j6O20u(jd>zg6DLpfdoF^ufuTn3z_Lwd`aX?z`N?IvlGe zfHsc{>_m0SSK;0&jIpF7*R#42ewsN1mY9H{hhFWQyz!$d5()U?_C{W#3nl#+5aMC2 zp-<{sf%$ynRps1L+Mc^O-;lG#_8#tl27s8mEl77q&TP*YV@?pMzG2B^L|x>< zz+Uo(EhAo*|Tib(G zx0~fpEF5l0o+ote;tgxJZi0NBKdTacj}-I(mymVIE16aoLZ#K*7KO-7y`D_`trvqq zNetOSBA=UC#4bWNKtI{;n!WvK?E2nuGA6jjPmJ6GuSr=PrH_;C@shqhSnifQ*d>1s z7afT~EAD9nePs-~-w2UXfgO~)bW-idzE;=uOa|G5ASI)<`BW&@|Hpx3LW$`3b z`UJA0&(y!I)%GKg{iQ^|GnQY{5u0wi85Euy0BP|6(YAgLo`66N07}iGT#yi_`jDgXGkxht3L%SnGXqs2DjDo%g|aAIJp9fQ)x zYV#p&up3{^?DB12kL+6jVLAms)WDOPpszv;Uf<3m74WTJnK6c~hQkagk@fbvGML*C zdnwtfe4GfNb+Qf4ZWW6+)+7`9cD63PEX}M?UH3ckF~s;)CNHgaqaNoX+SF69TKxoN z7nv;Q!z;pzZ@j~<{?zNA+6R!1N}m7Md5{|Q@FxIO*WtLG7%q3gScJYA9HigQ!<+}& zZ!C&2lCv1B5peL4T{n)FW3Dug`5|pL5NeE;Uejfz?u9)Q)^yJX|C(wh`T2)xgL>>d z>EX1gL}`;#2ucb}h@T6)5ck-7tMD}~Fh<^uF_Oi>tIu<9WyI@7Xfij&V2XC)ohJVN zeWs2nIJLuBxP9IN6|>~&j$C~=;OpWx;xe&YY@LW1tg>6KMWqX2-0vBdZa{uL?4fpZ zPqU#6tH$!;ktE)L`@Pflh__0F-V)C0S^L*N^Fd?V#DiwlF57>7N)PnGX8i3?wrGID z$jQ0fbV_oq-EK7v3C1LQpurAS);Z{s*A&w=(V zj(>#Z#a}*QGsG8!@yeP#6>Nj6_2L3`$Ipt!*c6bdsKEyfVr`QJuNS|6-9d~n>cEhH z4WGTZ9o1oNCiZ*uw?FQpqUl%o>m}81++uW$y?s8|7Vg6aA<=8GZ@e*Ouaxg4u_6*r z*hUGU3no_PNr7L&7c>OH$Atn;(HHuMgKuy<@e|j!7C)K3(BR-QOUpOl)&;8;2Mj5c zK>()m>EAnjV&%W9Xe{fB?*ejx;gxnk8Fnm<{~>N>jf){R6b*c+6D~NE`tGLcA0O0? z;7^Z{)RPQu5xLZlG)NOd`RSKB>=+AMXX*{gTyTaQ|AZ^-6rfu`o+;m@9dHH!>13>v z+?d&&lZ<4<#zofRJnvLXFy-=mc1NP&FC&DbqhtHQ!GRI`Hco3+ng`--D`)DOg-NP_ z>5my?d#2RLHN>FrzzEX|HsKmrjQ|o4$;qHh(61t}jG&sz zi%$~8-UC2JSa(cMT@riEymYLV|L>ffoC9x;rASitiEAOrjeR}1IEmN4X1BfCoe}Dh zLV1_Nq2lR_=%7n%ul=1Y`dq7v$I*yp)B{=G!J?EO-rn2ZFmJepB5PFl{A7<;P%-)cE&X(91w;U73m89MU=OXk(IH033m5Ugv z=x+6g0(2rBKIYOjHqlerWo13NO+QAqJCG@9P@KAmYsG$IedT~%J6IFo7i0J8-~X9I zqJk#Yq`E#xO=167KrILK0 znCaiIhrD2=arr+7fV_S-p8!}iO3{*$jXQH`kfU=g&RPdv;&+f$@oRv!_R#dzmy9?L zYWeQCfIN@?@)_yJF@wZ@mzjlF3r+X&EXfr;`su0&CBi7mq2i;xXWpo_LgrSsqW3aQ zEU2(z+C~9UCmydeB*Ya-cw3@)OPA2;q;bxTcqAf*h7ghtvWdHy&=oiDdpa9~id_eH zKj3=<2ktl1iCgCZD1G>&y^j!u26XPsxNV@@zIG+MdM63%!wdjvtRcjkdQw^Y}bydqeCQGW zQ(N*m!}BiXQcs@mAk*C!lK5a5tN!D}vWxVsR3h4_qCSF z93O3~g098b_{gEyMylIx1h~i%U2?d)svAX14qnp(fjp6VAjk(D0>KMuhE$;**hUZG zcb8vN3?5p3g6@&m(s_U;I6~I%g5>{rdg`#Kny+VRloUZiN)S|1DJ2&bP)S7rsYRtz zB&Bvulx_q>NK7(Rt^3n(A1fa6&kd`S;paii0d{ZF-^QT{Ry*yhJpIvzAukHd z3l+4k^z!so?>-bj+Q|3(>VYZoQG7IWUx4NqHmz^k%)!$CEh0#O)R?pfrZ6RX-+8|r zqe!Rt8qKG+?h9Yv*QUBIVr_k9r2UP!?Q^98YOCS359r#|7dJFpgkx_T&8oG*-C)#i zCJ0J)n(JBKHhgJyeC`ckq(s>t_VrIj4! zV)Wlx9Dd?5#d$$P9gY+5GdWZb>9_vu75??qV_;23g|5V)d|E{H)BU&!eJPY4Gg?Ak2|>JaSSL><`^$?s zVP^cIfO~^kbw52$u&+JY+i209@#2U+YWaT2p&A|in10i)K(iFt|8@`q{cSGVxjS${ z9|Ye4*3N^YOK_%xl5YEC#z5L#O3kvu>62h;m|rcZZW)Il4|Bq`V9lOyE9AJ?+^NvhfL2NUe&%N-I$z!;RJV-Hm>>oI<^#EUT^8FVE*{QJNN>2 z9&fPhRl56iR}bK@iu=cS_P*2Kz=wP}s|L<0ae{sGR0&q>PZ!~Z@YUpk)k3dXmTW6)O;&35rj$kSbL?|T|rfyDR5)Zp)NqySQK%S#=T)3hQC71l%b58O-M z@XxUQG-=QIYD-rhO_-}wC(;)M!cB5#Dqeqn;qld&{tc|cdg=(Muzj_BQ|Oz8)ID== z;|8TZ1jg}F*96-Yd+f&{yqLT;Q0=4umgjji+hcyb;9{isl=JSV_{asvC_%n9+0SZM za;)J;w8dUfoc1ovCs3*Gk!8oqvAV2_2lG@9iEof^*%DjO|f z=;9mc{EybjnwehKETzoPuK)a&!yprRn}#J!2pN0_ql>swG?rx^>~FKloXOo1PZ!K( zmetVQiFSfCthDY4*~j+q&%HwO%!dC;MFnhVaMe8!0s?5p&hUOY5%^WuaswfPtV?1a zal5O$ndo+9uEyp5v_!e+f=t+@Hg&&Fbz=Q+92t_}Eg!J>cnZFOtuHt^QXnTx*?VIa z#dU+Bus?>u@DerRx?=h8TAccn>M3H@-(6aX<1Kq$&5mlDD>smr`OlD@;a-R2DAu^s z*1{uqd%rmm%~=_slR72a=!0jMQ<!J#(kdNT^X~H)+2*Yh?7*G3@J|!4zEhD ztZ$<2s=S}lCM9mBH$I@>eh{g>y4gjzZO3RsuCAmjfg9TX5>XiHH(ywSB|Kb>b-f_x z>7wZ<6jv!mMU}aQWd}d?WN<8AY5F|0p?~TQ7k2QyjMJv<8U*{w_5>GytMXs$4QZ*r zBXpi1jvHTUxKtG3ZDCQhgfmMqhgqXh4}^BepVePu zkUA~9VzH-NvDykuSD0l3#HP)kL|n#Fc^9Fumg99#%NQsg^EMehyR^g9 zbZ#wm#lt~j`i0~G)Skj#{zJ~@@sGF^W%;kWEo3(78NX{4>Pd`|Pba*f*T(yr!6h-X zc}ouHo2kpa2d;=eC@%`m$_z?m{w;9T(^}F@Yg~6MynN!;*eM5p2~R4{U$b(Le!sXl zqjXo71t-z!%}3qxaTIZZ1(#`r05@oDfENOz%GOSj{JTV_A0QzLMgI-EbSHGguY&sp z=M&4nsu2{(moGh9szW!|&p4^roqoc{xmDi`89_zPh$%tN9hbW^^hbb~_D#Z*m0Z#}NV$f8h3Qm-LP#bmOgC zSsJ-w-Z_+AeVTJMDGrlnzh*nCDKY{F>AyDcAgh>b#GGH|IX%zg~)N+Y~eWRo&KV z!!S7freGo!VckaO{@1I*NjUvlRPZmgp^Pxa0WP>M_H^7n|KEd&LMp4fQ5)&1++JOK zS%5RU@``=cOXc&FL+(%F|j{u=S%0UP9G(8_kMTV<%s2kOW|H3m{>=d zL5{SSSpktRl0n3odl%_gCZMyrMh-Yj$H=6!!dhNL9$62GkbSKvlIZ$1jMmTtVX~GS zLiyJkpFF3$B^%CG@#Or$+grfPAxb}Fg3KsY9L99d$@%VuowZ)`9o|Tx$QgGYHbodS zXY1FP77>mnzc{gV*Z4z*9grY4{%`j)RgLUt?D<;&Ta$!Q~TY0SML|winZ~uzyhQ z^T`O~ppf=Kt$4CV-GzDvEKK#DS$Bz4Z!|T{Dx7nkwfUo=RvKxj6zTGTn`S~O^03fY zA%{7RM-^r11iPo}mphDG$WpN+=9wk*4fEZnDPd5}LyC71(^iu0pC-iQc{$cz0-V5C z=~0Gm=`f>RQ7Ok?i{q+A7BOVv7a20Cj$`Tla-f7BG&-gqdKF&!!ti&adG)JuYj;%p>=&*nN>pI90t;u;ljh z=|;bF&la!DuTJ?f!^S;{M(N$Dti~u$KBG>^=YpP}oJ(YF|Ac$S#M$!3I)y>lA-FRN z`P4W};4}^1dt5C1xbkq6 z9DHKOQ~zl~^l-R5En>6?47V`N`i=HH+UQ!?pk1(nDn!5(S0@~X`tQeS3*Q{K|TsLN976!&;+`1$!M9I8_0AH7ox-&#p4 zj)gI>yLNaxOj+E6%dTk$avbGg6Sat3S(+-a*nfCD^$O+v$Pb=j4)ixxel`ziui4_8 zy>tKJys`IRyFqxnRU*S|wct1IRi^Zxa{}`}7<*--mSpr4x za#E_U#T;fHZI(%!WqEo*-&2Z4X=OG)5%Ca}ufoSL`EUKnKBMTw%Aedtisckm6xruJ zDL=huU!X&3<9zxy8WQxH;HOgFHGhU-{BDEG%Hipo=#=M+L_2TNAFNpu+1iHbMRqJ| z1bwa|FkDsx98tG0)YN&sPS+p0<_t+w)>#;q{kBSghu_{-@_BT0a+((>N1^JlemEOB zR~WLsB%;i$#g39F0QOX34q4C{TLxdm`%eu+{57NYz0x&_Pq$}g%Iq%FS#f??W?+`g zQV{jZxIl?pfNa~y&^roXd|`FOfy;7^0_IP*Sd)))UA?UW03+Bq=HRd5vUW;oNnutc zhw*>=1~ZZ81QcM&}{wInh_;+W0uvr_o+`Ne$)R9DX4~ zryYy$_4ZLSFE63R{m@1%8d0||n49ak1-{=c&YnvfPZ~1{08VFYTpob&`DS@Z&hf6`*g9Y261?+1JvK#@+U8 zv1*rQIHcfix?cS9z2U=4kjI}m2nCbgKKX_CAvU_U_mm{U{w_6(K1^^Y?u0{nhp3Ph zO8`H=29q4zoBt7fZv=&Ge7Dd3#oWCOZcq2~?i@DRkxYBv?BF{BbN(Ho7m+?JOZDT; zgABjaQ3!7+J>@ux-@5hve>>-F>Be~&CX3fL-{hv*dTZA3$?}C8S#aGz44BG?tLTU> z`+aes`)X468A@YLzS^w%AH^IyluO=)+uwGYzX%a>z1!t*9!PpxSKpoZ}s zdm8-#uP3^CxV?XPflj)m2C**>x5NBz$1c_)FlU6{I_&IW9S)f!xd=8hDnrM~U%P{) zzO}v$0{u20hl-57c-(TE*Rq?}hTgAVi46RIQce2a9(Mc$_!|Fp8iJ$W#}j|;&vYX& zne`HgyjEmowBBjaoz(JF?J<1gO+MRFxa0hhc*uIJQvHDQr#OcsE6djp`_pQ@WOOgt z2vsQKAB|{cVCjui%KF9Cd(;1|`!&CPr+bYXEmh+GKj(KQ&ap2sm#4$au_s&A#!p0y zcuiwf{lH5{%s2BKs`Q}gTYi3WOBQI~f^$+%h@k<%i)|MGf{A%0rK$LtoTXnKG_9F?>J*?{8b>#q2h#z&u^#2e) zHnha^dIPH3ykRA5lK@}BES-CnP~=UEGf;y#%<64rmWZXhsU%%N_s+kdTI zRGorqbXm&a_VqLO9}DYb9UgYl+ZcIK3dw)YzjQ_@2vL7SNxb7Z`kazD%3W(eEGtQB zM6Vov&eU^*U!If|{>gRvU6UYbqtbzBlAG2wsjmPy1OXW5cUchH8b7Gc0l;Y8JERrs>=`VThK;c2mih$tqrWxCaZp1 z*WLsay)Hy+9l7(zPlH%&tN|nllyY~}k)+$j?VauBEbF%3f&z4OR`Zq!kkSP}ciGuL zJHH?=XuTjGYJTm0foR+npq)jPemI8k?2Th|W1r_m$f^kY-`{ngM=+cTrvw1W0?+Da zN-pOhuf1G;y__D<^n$y1#sON@-dzmtDTCX+G|tHJ@y(26xyM?Xfy z+x#v=moDyWYht&%Dy>slh8U@IgrHM-WnyEIg7yhDjNEZ5$a|ysLyxfbb0Y6p#nVe?prxqhMKl)hhwVQAK_qWR<0NM2!Z}%J{`PX3U5+FrOEyU&ey)Qqr z^GNlIPb%)E3ESG)7Efs;b&HYN|oL($0uHB!t4g~Ev@+eN&?LRw z)GOOrWUV0r@4>a&zO`&16~zco{oh83fbJU+DgzK^h}=%=iFz!qeYh6-Wc>p(@a4eJ zf;;LM7CPmu1^wir0U|*hbla-@w@+626|4ACleK$9~mdty`jZ&ANIU$I-w zg(xc40{&8PYYt9u?KC%}|9(eaw_CZXjyrh1^UQz|MmmoXvvv&NZsDnyl8XHeRnyiE z(!^7tbXL{OoyJu(o(h}@#wLUyH2ddDJ9!7T-z>Yn=liv&p?H#&0vLRRK>!QXp4;#C z_?5}E*MA_^J<@0MA3+CEGzW_zpICgl@rRXq{uf%dSWoYVJHODCqO~uPrUtkT+EP5B zX#18Q6+b6GyUE%hIhUtla>FH!SYIr+nt=6jV*27s0aSdIoNVSay#!BtUqp@=b>Iu= zKz}s}J}gh@+J|5{fW!}xa>wH%eUQ`4zqeF=S-P=;lF31eb3b{_*VSi9e9d0IdUL_D zXp~3fvHDwbyd~1JYzXj(?ey0>2RlL!sTt}sUOu^|I!R9mq?NNQzk15mV5>3|A{-uO z?_#Coz#VtmHL7RuLEB`s*K|##_ zNS*SP+zc`eN;~v5E^S*kRilS?ynt2CdNFxFtB3n>anlP{s!wO{pK$TN1a}7c_c?1U zk(F+~u04FLVDsSstEEJ;n^_9qxVV!`gS9o44L$oV`@VVn!-AkY()d=!{ySRgq6MPsh$3%;*x?QNUwg;?&4x2- zEb4qmtd8aOY4LX2gDTl8AUSK$cK_8RoQw5&+qt8`aSH3z0DrGF7LD<&){lFT`P zG{w1z*g05k!JkS(j>=XIK9yiQ+cg;x;VMb=G1!V8pA(`7w1am9-*i*j?_aSHF!pjx z)Wp7#6cC!MKd=68WVdl(iX*!eDsHV3HO)ux7!q2+{#Lb2g1bvsz^xEV1u(kV5e&j} z^{;jUQ;02(@0{qKW&7_$O`eRt#V2?>DT$?Z?2PHP1lKzB$xQMjb=k!MOh-ST zL385Co1=N|p_=+KPs^?{u&5)m{FUIDv)usDw%ki|eOQb3Hfo!)xA6Pep;;n z2S7HCe@qw%8SgF8n&uAYv6gC+x4C`p(s_6w=7|Ep%+$-NM)4*T?}oF_j8&Bmne~%+ z&VsE4x+#@2^|sef^;n20B9 z1b{&yb<`pv?oxD3lya%()#;03<)A6%_~+<1caKE7xFZV&3E-ZAYLeAOqCtuI#58Yy zUDvVm1ouZX5w50t`YYJm6w;@PPI6^~3Sl{1-_3|N@5SsLZne0=6!ob8sRs_@{o-xZ zT02v#)}cm2(xH8o%jcK=y^$ViOmk@fBVoW$5^GH>YjOWhrMl6O*Nh)n6IJUC!5|Re zZX);^2K-8f ztu?6scV37W!in=-o3UzrW}M*m zi+w^acD(#~OY0gl?!uirUx$wd!WXfU_6%rBf9=SuhPFy6NupQ0p9EbFP-rA5+yWo6 zB`}gj%CG(=cdiWWhp;c4EzVJY{!vbV3-NmU(%V9FO;FpS@Idfe(%stI59qy zm>O9FQ6}SCMysm!hvDwlgFh2dI(ybZJuVE*Xb%m5iGioZ*gZYiJPD^yfb^?;GJjka z6uAFTXr!yWEnyYDo0(Jwoc%l(iu8E5^O{@~$tGKKWi=<;#Beoebn@~!An=L?nA}4S zxqfF7nOptJJnQGIdI4^)a_^ukP+nRVd{Ad8sr$rjWARq9?r@SFIW2f}_|7$aAWfqC z0XM*mod75lCU?uw5bb!?Td!e=HC$_gAVn(rxQf+XQA1#UGEn#e+&#onD?y1nVrg75 z`~&N{fF*a>A*wbr;NR8(@Zn>8oFVhi>fln+X0>Q^)s-bMj}u_%8hp4 zCWGB%t81$)WR#r>f#_zV#IVPloK^*(E zT7X%4LiBMk&uUb#S!*BUiVp)8Twf@`Dl8YQ^0Pz!W+YlT5%pAu^hS1inM1{0N(*5^ zIV(Z^cq>%T_g34-`IocC)>>Zfd_&ctBO2y*j1-vHoS@*B!n;Fw^9yr)T|Qh1)brNy zzDpjg=zf@AD`j*H+}U%p2I4~+i&xoNzt~ai|E%sh#)wHQ{A89F`-~1Y4_XXppTkR+ zo@T3XCXc?U4kcRj(kxl-eUY8Kp;%gR>$e(Q>h!)4F*dSsA8y#=&NMx5zn-n9ncEck{=fSl~r?l=-R8XJ-(WX-}lj7%kbj*&r~s0h6#W z!bOS6$mhahG<`ciIa5k`^2FQ|yx93>+b`FF)yNAFYj}km zF3W~HmJyO>Gnv1sS0~Gv=96dCN`3qv-lXx(Vm8$~)rV-MfKR-9R8eknwuTi@crW_r z5u+F#vv_k%$IEo&${N+W*ONt50Si^R4l{=84qRGt8isHn2ci!BIab=vrU-+>ZP{$X4x9)soNteDSWaRZ z{@>Vq_kpfsK^I4P2^)+ff&@Lab~{B5)wr{ckh3WpC~+O6yrHksTg|3ebzA-u!8X-D zBQuctl-$3uCTZn&ibbDc+Bf6Px7QBmKklB}`*I`_OcECnI@-rVPR1YqY_WmFad+UO ztNCz#DUvjF+9T@W^WxyKApq|J`8gO0Cv7_3Ns5SJlbyW zT>Q@qo*7JM=Zb63r8{GpBFFCDbsElbM2+4(d8B!9rA^ln2~|3N(hCu@pP}X%q3TUY zouH#|q8Qy0`1#YJ+ZHP~7Z{v?CA_lgC&M`}L1=0QBp+%J9Yg|pbbcTnT+A#}9)~%G z2Y|tw-Hb3<{@Fidzbv@L*jp@1o@%)BO8e)v6o6ZFVEnXHk!0~rDCFVFn_c!I+7gQ` zV;4Uao#3#Gg9OlxRiL``B=0XUDXh|H_#lnS*q#ar$Xt^p=Q>v%-WplzD4$T|JPRf! zxeZRaJN4$fRnfLR0jb!$Z~kVhrB|oU)PGXpNmqZ!0YHNUOxMgRqui~l*q^J|s)MnG zPW1i_n^6eq{GrmGpannXA=t3!2e|9%e@gK&M1>2Z!Y;9;Ppm)!XKG;uy;U+rZVRTu z4Y3vYoP<0E;0|4suNI-6UV`YeALkJBf-0B`cI4;F&F84sr5cNmg4}) zWyvTd$V17T!M7Mf^)q-DhKeM{Ed|5--3bH9RDbJ+)PbWX$-Z)F9fV*OZf zf$1Xw!UDibC5C?LnMAvgnWAc*Q_xk^OF6{=nd9K`7|qclPNPjajA1ifQIfcq9grrL zB-I}sdA(h26zsaP;6m;uB1V#h*{0sJuSnO)P2EoUJZc(CN)LSxGrrjyl$9csohtec~4-&9L&>O zT#)|+3S|N2Lv^^kSb4ko(sJm!d#81SL1;gGaHQ+`nH@iQ16hL>PC9o7)ONa*<>`bg zIcjb>`Oqf@(@qDa`}ny>BOXn*)F54(8Yf2&G*o9X%FOA6`=ru zy1r0qf$~&c70oulEVBpRwj8KF6??<1@L|L-EBO8ZM~$1Kft9g=!ri4MGw;>NxbcLw zKfE15F)LBb9`&O;2nwL-gdF&>pJ*>o4wMzWHRg6502)K{XG1AK?alFFsz{VIRH40RIfJalb9Kq@vM|eN#+bbar3@12_iBC>4oaU zR+Uayu!9XMK`Z1PDbrnf8(0o5?78@*cCbC89Q+LS1LuX@5$n|mfIBf>I>sJB)F50y zwHp&cn*v7{_}eYrjLMO;@XF33Jt@~^lT5#T?TlPJUZ#~>)vg-l60gFqR+$iT>)*bX zWUrYT9fvON2o}F8{-Xrd&eVoA&(21BXW>C`Wj*&_`O980?d5TFAV_ZoXHUMGVGH!zdT0|c6xq8o?MU|{?* zY5E))CSEgNJ8*GcPKNJx--f#n*^Br(0^d(GZpFI`Xm|Z){m+~1THN-x-7JCq`pe>n z_k&uQ2$H#tKJFc*HB~ZFBrX8}cKhWN_&De1LuXPE-ix6-53MN!IJpoB^px`ZuoaEF z0f8be;Ooc#F*QD1Esi%zYBRivccc@Ya>9cGtS^`M(j_-oGw-}o`q(3bP`+lBs=LO3 zdvx;OP9{7r+f;Apo6l|ymgBDw4!z$@M`i`U|KJY5Z}{XBl;NrdeUBPLUx>%6O&d|C zGWGiU@E1)vUI2#sR-5ir(gUk=Pjt4#-YbEIIkp)lCI#NRqNx~+J+{NGx@ltW6j zUov!&a9YiNJYyqZ@Y^pla)lwDnhxN~s%Uhw+&R>r<&!nGO?gI4dEN9WK`6UwLJm>BaWly(D30z!U&(YI zJJK#AaeO!=6;Pz3`X?oEr)$YO{aSH-XyZoKE4)gYN~tLMS6lomZA-V4#~;Ej84yoB zm#(xi`KS+TJsnN|SXUjBn%r;_HHvSm9KL&i4#g_`L+2NAQA+kZ0eimrVWQ>!)k-JB z(k&_IQFpNSZDJ&>v4FEfJHnI|+~|7hgiMQQeQgaT*NvAy+{3EFD*EV4A-y#-$RYWh zfJ!9hp!6oJY)C(p^%RFoiP^Y+0wzz6+c?`8KbiSLgjbMG^JK&$B&sPUFBb!3<*#4ln%YPw0Oai*|K7j>_V&1^Y;d9-8#OPRG z{H;pI&w~IZ>|(U`@u>(|+04^Zub+cj&$|0_sKG04j9*oP#9i2ib94oc@Ia!j5Ld3R zsO`|!|J?85#>PH%*dVRTybgSHTa_jcj!dMFU80DY!bwmgcKv8DT8pyeU_Gou-z$Wf zAm!K;yPaJ;9{%7iieBc~@i3DZ1qZWvBsx&MBv-*VWl%$D! znhG_wQxyyo(0Y~UEnU|Gj?BXONpojl#*M&e{yBbm&syoP4Dnt=V7_VT@s+ftdKXya(s?qG>q?4 z3m7LvCZi?SKT)dcne;SY7u$kdUq!CRM?N7+eceitK0m=BqI zMrkUi0Y@w68dZOK1%WR+L;Xq54kp7{s;<#Km4*kca20YjzyQJR;UcsUxnL%3Q094L zyUlQ(d+>5P5pH!vIEjQq(@xq5MVlX;JD|;**Keh=^Qj0hopu9H8R1d4Mnz7%J{k>Ef$eAY%bm$ZtuyzZ&uTnPYGtDim{I#PtL|HS=alOJAN zLD3*4Rs5WE(eJ2Bh~#AdD;OVI6F0+5j9e)Wgt=J2=dCoO&!?cm557t&iStis5$M(I z6CvxLU6nUTq5xFZv?H$mXoLoNQ=OXHMaLJ0_WV;^DXt}>&-e>g?-?>3VFA0{L5H}Z z?ICMgYqjfRSVQ@<`^LwfE7ZT>x zKJ(h?M1N>KG?={rrJ40?t{LPkquK+h;lEebz*=Dj3o}kbCzSprPm0J9-nF!SXmsw? ztRI;Fb_8K+|Jt4+lzL1>N(xfp%|t`p#Kb!S%HIMJSrh#5^o0UQrQ5sP7LZnuo_xk5 zeOkYp(>e1D>qWX=G$nAv<_HGx^r1njj1bf^_C0Oq~m zmk1^DS^b|Xo&oy7_|_(yM~aqNeQUyMgJA`jraR3kN>r6c41~FNc-81f>TrqE$X$_Q z4|OMh{X;09T?rCe==!UQfD#` z_Yp{!PgD5I$bc=xbV956RS5#>=TIYGK6%p-c}dvWti;Vb5A;Od%J~}a3n)+Nwf$_ z8z+*xsu>0BycHs}Sy`kgIX#0>(YT!1IoZ7_oJTa{I_(I@NV@JRnu0Il|7`q{_&Y@X zSG8^?x0j&ornNd)Nghxp`!A|JML^uE_K8N)Y9NH}@Ln<4k9EdqcUa z!LrKz;nq6SG$U!TJdCvv_$a*jZ!Lt}KA{oI!VxHQ!=rFP%G!yP13&Ikp$bbzRb~p4 zk8}jDjOi~dG*=2e)aGArKD-R2waVMEHrtB82FKACs-@&CaB;3k2`ZH;f4XP5NOWSv z8ohAalyfIP1K^jphlA~$o>`CD_Jd(`V&Rwb50Fx{oM(X5#H0`hz|^t=fy^33D0;=j zVQQpNMz9V(^!H#{PRU1Ld-llV8z7@8$) z(JCukxFp_g1)ocd*)lT0eJO&ZF6K>!a^wy!u54D-{j4frQzGk{l3=^Jw9Kw zL2;k+80&~@VJo&fd3=DZpRhj25UM+*R;zj7je1e7MY zid3=R-+qFrX)3Jw?c7hC_C;S{7!IlBt${Zj{*HSbD19MY#@2hAI6cPiK$_F4r&je| z)|olC!HYCG88D>gO%7DeO!>vC3;jMzp}6aeLEpNC5Wjwl2F|6`!ZEhj!b0G9=&SCK zRAR+_1FOV@Nt6T8eELf-p^B^YDS{4m zl0SR*A?r7B|AbO@SU6b0ATakd){@_D;alFL-L~fPphN4Swg`)W-!O#X6J9jFbudOI_k?2^G}FIHgU3r5IrJcevCQ_>7W#(Ma+jRnA~b2@ zuU{*c?c}AZDF73wDHBUARPlJReHU}eM#)?VS{RSWR%|mX<3V3 zLj*VV+}!Uy+B4r)$GuQ6o*FdKD1m}M@m(+3Yayo#j%4(@5t@6ir8Bn^T`JPN0Xt7t z+DY`?da{VcnJ-QBylIg<123DtbW`~%nOz!~t@nKRYycnGINFO6P`-!&&HTV^cA}{^I>SA;DYR5{aOx@Yh((4^9H$t3RD~6%8F{kA(3bKm-OVI=mSm7C#~ZJ*eIvWmr6iBzS$GSL)gC`c zh3iK!LEGP+%t6=74-Vl*$;%;bIW|hriYFrz60RNyG5vT(B|_72n`e+(O^PQ%0Eb;1 zZ+4%ESEzgY^)2HcO2pfvAgEQn#J+K;ms>T*E-(2-#x7Jn*zRwAN?fddN6strIl~bs z;_JcBw={Y?+OiVW98SkicsYO+OQ!CKw6z{x19PRRMHmjIwZgUb&&FCOgm&EShpr`~ z%0hmbQ6o$PUcw*>Lfa5I^s(1za34i5G;2)Ks}9TD`?lp+<}55XkUo>YGx;508dWID_j5qSQH9O# zcPWx+#a;q!zK-SH zrgAHG3TMNZRr76PfEeB6rAT(!oMwCp%LF(qUaNRzr0nkDfXo-Q&~gasHQjgPX7(Q{ z_(hN!>ZUp(qXMQ(8O(9Y!S)p6@fOzw5jfNQIF53^2r9N&a=E~h&Ra+UhtS{;Qy6wf zfA0P$vEq@$*bNH6Y)yM+1;2tBZ1!od@JMoGakBqU+}_JRp3Y-jdrK521GalD!yhTu zxoXtn(E3HqMjvneCLU!kak9n%gddrXU7z>U4$OjxWy_E~BQfJ@M3iQ(3cOZa8xxg%rJM9PN3Gv**i_Kb8U4_;DN zg?iD_JQhkYPf7i2iC-{=5)GtbFjM=*HQC8Z2emd(q!MJh^`W=MS9U3Vz;@{9?Dg?j z?Ps{mx;)j41}133CQ?znHAT5O!`bQwHKZy!3X?lb2HrHEb_@kDZ)gFiFvr;8W>J%Q=Seg58cwG6KS3nY7tHs{U(_}wtwf|kSVvudd3h{%#wuQOnHgReKKe4W zGd!>+e4df+>oX`#*U)yjG4^SmBI5#M>L7C3C$f4>r{)g*e)_ME%O_NhD@6+FUVMU zxf&GfM(x6K4dkrt4_&4AG8H>HAuF|5AthTcRr_%o>fVobcJbblpr+=bLg0)vo{J`) zPeddl9w&XfaPRnX@pjCezr{wsmBL$?oahe=*=O?ksJ_M(xR0&05NP4$u3O*4J>tdO z;p}#MUn*1cWio1F_u%|*J+gnPS8G;ov^^b&nxZ$S0p_+OHo7V1`hHZF`Fz(yk3|!> zAj~aXNmf-ywn)T>SU)4jF9;ifC0E)J$`);IA09>1OJ{B=O)Nx~0=MGLXU?^{71Yiq zcOJ!`K3X#nf9a``RCK;xXD4L&jS`6)o3Ij-1xY{ciW>afKu}XZ(hi{HX*`vz%CV?a zY!=Uoak6EiMMY*uo7za+WvkZfC-TmUFab>?alpC2tLfPK+;y(7MY2O7PWdM~aamj9 z9(D_fal5N~=<8VV)}9c2q#wX67nQx;pYxW-q%#OAspQ+u9l|Tn5GxgD1V8H9!+#+k z-*>a`63!UF=w7nFZRFgoMQqhaej=Z0`JB zMZSTj`q&zg+CLP}ES+pL@^KkDfD0TcVX%DOn%yFDF?}%EatW$;E}l)ywDIBwoIbo_ zy+>vb?vE$kdjAEirAmF91~7A<-eE#m+6{PbC5xpVn(SU3uNx9p*pmOxjElNLoZ)sC z*ot&*VR8sxs37AVQmd6*wsN-^liZZ6hf!=th9wX`Q}es#!>vAEQo-q|JJuEx;jl5+ zvw?LWJ8o8Pe642gfejdgWlDhgLEw+vd0@JSzU|cJR*^&e#*5}n>)x1gW*m(uMVQ`( zr6}es9e`8k;yoy@((3}5g{Qna%_uF04p+5S2GeZ1nj@Jz(*OQbIV7{{dx~U-4y@1n z0~j9EyB~X+)aQ_b_2hMYHF*-iu(H1|PlYT-lO`@d*clE2KQWQzB{e%!<8q}Cl4{)44`QF19ZwKrXPyX z?P5~NshCDP63xAlTT6LcX$99r@1$OU;|8Ezl))s_8)F%K&z2(0@p9IX=AZ4Fd6xA` z_VbpFWyJ_r}y%7RkZ(H5d-DqbRp!WvVMU+>y|&w`s5cx_}lLi>WKT&B_k@h>OzT zYpF4W{hBbZI@5`*B8&+gs+D3}BQ&%Z0_xwk{o}^fle7gIAqn^?v&k#S-5bTc-Iq_# zxwWar)ms}{P;e({A}4b4za1?QcfpkVHRIiah4BsSN8L;zQ~sK6yfHWP=v`X}p`aoz zCFl+58EX+G-1rdpw<1-`$qV93sLxv{wt+HvNc@i)BU8u#&sq|c9|kk-e7LBY zjPtp%`Hk@OKvTAwX(($Mv;2NAoNXkz)KXQ@o&2o@78pewwA(!1XIL&z-3PA8{Cxx` zZvL;Z#HF(*e{nXu9!x@fNzgxWaHohHM$*qV)f>>A-B}WWQ)IRwBf-Ov$Y~Td5_7>Hwmyg4^#|J zu*`rLHD8wQ28uriLDOnQ9?V(y($jd3Kf|3m!HfB9$0G>``T%n82d^U>0kK>|n>f|E z$p#gAP4fAWUHl3m?o_8kQJi}5KqN8j>d zyyHVBO}faDW5sH;R3q`+=uh)sF&h0fwV8)qrj3Df>Y#9~(=I73{LXw=Mdppeqa7UF z8UZ!>u4GPQM z^ZyK;f?*1YLT?5=6~r!GHM0=`ok!d;f6X0thDmya!b;$vp@#04ME!2Pp2D>MpU)-y zCeidI7x_jS?-n2FKJk=?&)sSmY>FomE#i5jNdkw#gC1C6r~1-@GA=)Ze*yp#95V1H zqx;qisz1oO)e39u0Oeo94s?7xl?fHy;>{}nmjCea`gysV9>_g9-D!z+)dn#-YG)aa6cXqX3zaHzSDEEABKF}y(ndUTreFYeedra z0Rv{+SKs<+i00Oo23~U8*sJfV(5y8T+%z7cK8At+9CsE$uIG#^gFc<4>-YUBL#3#Z z_D-u*sWj5Yt!;2LcER4}$7pGS>=7vG_9x=*L??FD_G=^eM+8TtKCBkI7Y{lP$z)&! z3zw8V(r>n@VWMA9NgF3(>LhfiXf3-bXKljy7r$-#cR^2p?v!CO?0i=O`q>PlXH zB38wwLYkWg@0@c7txyM_yoTL70*4^Y)xZ8LSY|j81T<-mssPWXhp8qOK2+vpVdjXG zL=9b=iBWS_789VNQj2pb&8x&Ps@^<8(QJO!dNnQXZ1SG9R{8Fec-XLPKuu4KFYGbt zfB2T<_7@ycb4vbcTq^o^Amx$+)%`6V#VWO1R7FdHX%6JK>}L^U7x>Hz>5h38>LG(= zk4geeMl7IbA-y-<)_jbd3L8zGo_>ayPB{#kiu;h48f>>Zl1j;GksP>l2;h567sEC7 zbACr%#kq3n!E`EuTtL7&62qOHIDoxK5<;&0EsOxjp#}kkvi5yt=iJ(M9a3k`pz-#p zGa-<1z0Fo%!5F|Wz*y=hVtmv4&rD!hzhkC1KuvmZPraVH;hc)bN??)`wR7G%dK~^J z6zF$G5AKUaiWw_yFP*;RwzgM4Xsq^=JOAW?81*|d!QSz28?@4w;IxZ-8A9X*Ag8x# z*lZt!`YpKV;``du>{tI_AaQ>|!%7#Cwo0!o*pmiGenMRZAE|19BXbk4rzir~un$?Q zIY?BPIh{8?P|GH871kCReV1e_NRj?@NC|VD$z=0; zMJi!@27EDhDu>S?_^QC;yKA)tgkm|g=y9t46X6)95g19>Sx+(<*E2oL_Peojd5!0s zo%y)FQ%;(kkJ4waftGUUYN7l|rxM$OGJrWsf(^!CK9`r-^It9q?(^WrGrQxU^M|?O zbW>q==N|`1!5HHF&dCW#JUiWHxfchiz~M++*mB8X*mAe!GP7>o1@`MF$ zAr@}}oM9iIA*&w?NKXez08|Sbz0&ZbRngzkJ`Wj!jdAFiX@Ey-uQ(DRZFMSO(!@ zVU}xGNl<3zk&B8coP#u-hPB$k5Gsb|2vd zmR2nwW&bZ9=6NR=GO#aTJ<`xVXUY>UvXuMHM2S$7r;)0L5u~6i33(1?^n&uQ3O_De z*3iXwUt4GEfIjw=QA}2d_Wk7>+1`B?;FbZI+Ib96s!Ski_K)`@Y@ytmHcC|PPx{_* zN=+*tB%E(M)8!O&&07JFWc8}gy_TZ(?_i8j_mQ<1U@1{otGE`u?h#b*CENWM+@gQy z?d2)yG?9|JA6;-FsA$5VK;eSCbkjAe5ks<%L--bRxEfrUoU?0une>tLj|NE_7~ik= zuYYeBQ1A0X{2{)06NOISYha^zCe?AKz)(mC9H^qgaiCzB`ljurZHYV_UdM@b4fA)2 zXGm4i@zoTbuh3ub9k8-M+PIFTY`p2uHv5fjWltGdxzcuM_1O zva13=Zd7rrRb+}=h2IOMl8=#9ZWx1smzYGLO;gm&e-r&{Al1TqyY|YTH^MqC27N0Y z^2!>BKNDHvcmGdJEWL2XbUGs_RM?6a0*&SPy!&2kmTJ234~GfhUN8Hb%iKDWjyR6M zGU;Zm1COi53)Dg5_MfyUYVCv!n~mu0u+Krv^)THxgQxDwMwzGr)7cm@;zDh z#R{o7^xaU~YwvZC0&E69-QXt&;r?uhjYHbsT=M z{HiDB3$_LQGhxTiEno+ESwF~WR`y{XTP4%OjMU5DeS)-`)J7K~2qNr5svrQ=L}nR(sd7bYaLh?zKY`>b=5MNErZr1UgH1R>XH!^U4>5tyby4HhP4f@C{bz!U~v229+LfbwbehFJNb)!$D~~(`|t_ zH>aO2E{|0?j+@|o@ReCvjB$_H>({eiFU&6I%l0HliI{ne7o#&`Srl z%fwxO1AnvlJ0mRBnQEz_;Aqdom+#;Nt|X#?Bkm}EJ_~|y^K$>=27pOObC~zj=Z&rn zk#@%*7#H;_{_gCqGpeD$3fAicFh&4JuntUVl&HDNhqK13MXE|`*YD!l;4GgIR%Z_zPDj)HnD+HbQg)=k;yp zN$6-u<}nGt0_H31bWPay6!_4F0?v??eN5+{lGDd^cSc-|sn2LTaAALM4anV_NB`_z zcl{2s;|RNbj`E*nlPj$|8fUdrgnjjbGx_HRUb{kV9~zF>V`_fzuVKyz{##hohK_~< zDoA38uL@i?y*BUcwRYTev_vfvG=NU56uwpss%-ySWS$s+yk-Ne?fBvk&TVt;3x{RH z6J9khOUAqUD&IH|>cgGTqw2?>y!vL_!pRMOu+u-&m!@qOd05pnIp6^x_E32wcp=mJ zGuHTAgbFR0huIbz<`H-f=F^@V@7YwJytI9(?5SCa7oSb++~i_YmrsiO5>$S}nEcw| zDD>ZfZC+FW2#mZk2fCzm=RG81GiX?~LwR=7tSWaL%OP41QP#!06zzw;u(XiKyJrXf z0-YM%gi02`%ZTLk<$%N8VopL=k1EuPT{{BE6^qX8D@k^ocB?kAunKnUY2yJBY%KwW zY@`Dkw$D+eHyz8}C3urq&MicJ_(J}!@Q5ZfG-M!0jLc2IKyC4#GB-6{L?x4+{bdg> zb-Hvyt+DQ^BMgsG`R4?p8n`*>_l&7wL}OR~xn)>fV1cW zV6<#&2qn)xPho`qbE3@`)x&Ftb~~8}qht-b#k)LjQnrU;qB7e$oF?071}m;3E5IcI ztBFP2gd|ti&(Jg{t>Z1#a@W&!xAlN~{>pwh$7>jN$Td})e`*)F2q_+2r_{Q_`(&a% zX@1R>!Bc}&wHaK(nOkv#6YKunj<0S$#$}5wqH;R=h;S$UovByXhfuC(@te1C(TTMG znZ-gsJ03c7auQkVZFweg&r=4Vnd49^)AslzEYs@{1Dnb8pnWLtz*riZ04{jA{dcyE zv|=^xJC=2u1O7P@ojZMr=T~~Wd)DWPhhcY2qp_o7)aY*@U#ZfQPw?ieT7BZGq?P+_ zGkWCQu^KN-ac16!Y6PkItOx4i@VXY*xecCWsQ77rRg98!(IvG>`}F*2&eY)<^4_gQ zr9X=yGN_{SKO=i(K{@hCL$Lo-3*pf5R+2z9jLXRdg{66W)w-)C3~O{~YcZ`P1hEX~=WF}@>{Yx?lQ)|3c>ep?X#6`GD>pUSCGlO17x-3QBiyBO2M13{ONP$CkufC}-NuXh0 z?#3DQze_B|zswA~c}o-Q><}JiV8*ol)z#edyHyWQQQS&Ju3H9Pe@f5EW=%Mj$M^5X z>zf_fuGL-t@7$0f`4|e)Wz9X+F4gCw+#Ra4PokYge%)p!t-llPrg6v~v^j4YP2@?* zo?~zC$awX7-yH(vnejErY3y^r_-$<4{N8xt0{yvfRzcC_1UOxL-9~P0UqO5V~xna@TN!HAqnkz_JGGta=XZExT#vb<%I(z*G@G1f6QE zl&7aYv5#cpvHH4>m+6KgKDD?Kc?|9-ZN~)Do`PZ?^DgLkWrJT)VZDVte+#8G{DUKt zYmXb*J73IQm4+E@rT&i`=1=lrHy;Wn(S^Gl@xwpvhb^r>iDUM~rv9z6Fk-8=J_$FW z;It@z9B2AZdE!1lCjciM|}yIe?PSf-hg8OgGloS`;tphi!p>^sV;DfIQ-ecK^&h(_asL%#NYY z#&=NRbxv{^tqG^*Qy$o58!~`Fk(j6*FCnfye#cpbB5~8A*=j{RKFW!?Zq@ng=7r-l zs$#qEC&_;*p*8#g_h*5*uR+22r8uYXuZt@#(;9?A2SUxM0QDp@@=>U|C zFI2Utr_Wl(u#Y%C^itw~?$dnhp!ws?Z2f&XH%d{paKC-)eq{5GW7y-^K9+I1a@4pR*7C9zp#m zXLVq}@}eaPFR8L}a%q72+sDU(xlnK%wP_k$ruyIEZ97B68CWXcxc^DG7fslB7g!Hl z3RsNE)M{c6O5BZWXDo(%_&R0b$KDm9_1g0v?Tk0Bp7dH&7B~%#Us?mFom-7tF*#4f zw^mubqGZ+b_dUusa+Pn9+_zsWI`;hFiva$`^L7o}CqhH`xVGy--|HZaZXrunr0yZ3 z15laHvQcU1Qd2=C#=9r6$wNdb&)^Ao5qcHSeY;_6bAIj9j-9lil7P}@*J(+^!$e=i zZj6s^p(t*7@@&l_C+)wq3*akiLXl2Gne|t-JABPO{TBRnfk|F0q0QJnN5`st3b6-y z4f^DItRzUs;Me-KmIqnittL~8-E3A6X8!kv%OiqJw~w0`B-d(S#R|i?iFz)L70>f$P5{5((<;miu>^FBvmh4%sKf7V1BPd zf(=bjQIL&0`Yd6!IeV!yGB=K090hgCQ}BxR_nG}Fh95Tx$emkJcU#qf2OvQ^mgGkI zvlDOMCvDfnSXL%aX}&~%VpE$qE9*6^q`CIkYqA)!y=7x21OP>~1Tak?FME-7L)s}V zekSGPvTD4RjLle!Rc505&KEef%lv5Wt~6LB1$TPnE|Hg7Pg~JLrK5ZI)16!B0IXU{ zD4RNvi{cF)BF{(vBqg2j#v?_+mc5@JmZ^+TH7s757Mas$yVD`LKL`Lm#^LhUu5It5 zdiXqR<84Vwx&Ha`z$`Ex0T?_j(M*E(W?!Wpoje=8Y1andIbP!g>kQ#x!-KVFPhDiQ zNJ$=o+q>dhOIyN|xU^6##H8TH^Zz22c#m!Sre$nKeKv-!3wSk5oV!l{Z)IiY0Eky| zk-e}lu#`}N9QNI*1CufoU1*X0lJZOLQw;!#b6ZbKYC80>w+z@bT+gVz_3BD_5ntci z_5vdm5~apFeG_zuB{V>@&r~Xtw~(F4`MvYa*bjG6A!hd=eDsnuo01%JK_uoAE#ck} z#L8hoA~9vyAd*}LtUn_sfBp`ry$lRZu&XNFTTWgiYh${J9RiUX{qOV%9c{7dcVjJ` z%TbJ$kYx2Ix`b}Cpt=T=EC6P`pP*lJ(St(dX6HhSZRztuCfDI7A(|^nw3LBLwS)_D zL%*<1F6IgkIbly!0o%CA@(0S6=8g|Yt0Tp2FP|+?T5y5@v}j`exE0Cwcv)rslYW&aA$AzXO6aN z=6{~GeascT;pCOR&RgNSwNCuF@taRo3>if)abKyR_{e}6TE2V z<LFYwP>)AuI-caFZUBj{rT;s!hRk)T1XTa1C~hfT70^A)X8gS~5D zuzT98Ts-lQm3%b;v`g9Xt>w*d_-bgB?db&{8}-wpdOUk(8$2%dLRL0`Z-eBY6auC? zF0id1dj6!sL>Z4OUos5>!-Qwt{RB&sWz#aJddSsE8j7q52GXZL>ToIG)I%V)YDSHV zgUM_E;(;977dYR~-dGgXLrEq6>`fmGf_}`q3-D4cHZz4+dgPdOHfUUB~%>MsaPbCc^G5u?3 zfIy~Va?P6XwX!s9#fO$A&~POt;b!~0{19ZX zm@Pl`Tuu{j&+^lALpNnwD*UtM^=XCtQLD4~A%V3tHFoa{NFEmph7Um6xV}C?CR3nj zsPv?X1UXL36;gR0t`EOVT+_`l-KZ?Aphy<=Qp-A`KM}DswQq0j4(`O<|V2 z7?SLlTWl{c@P{^3dAWz9x{${6$1DCEUeu%L?NL*2Z_Ze2DMGgqsu5}>tPhb!U#0dg zN~Db`Y)bU!Z(C}0l-0Wv#9agIc1vx`*ky3WFGKJ!{&6%qB!a{_zP#!B(PA;rEK|Tq zLt}{U>eA#{LT^*0Fm<4;O|I^7P)V@#sXN&8*oHgb_mIVX9z%5LpN>e6HV!|+8b*Cv zwx*`(rhDWbh zIR04u6sTgwcJtH+46j!^A3gW%%r@fe-?7MFvK`v(`P{jCa=C-=AtlZlKaZ_j2)N=@ zc?)7e#D0oT2kZTy`-CiIq!L@rei==Y8XmUk@OU$!^RE>j>0aw!FE<-vGMmPXI)eV5 zV-EqSi8T?}klw?p1a>_z=}(ql)fJx&pBTOD$Nic46F`D*--+7!-4=sF`P&|j(i|OP z(9t_>^oL|~e-VLMi2vJGImg@E`0U%Y1dplF1JI@S9rS;oRhr!BV}hyPUoFX`WK-u8 zkW_GfpNwoLQ*y8=DGM zxB%S(W^g+Kf{auZgKtZ`EQFx8Gd5FqrY0-A*87Gnd1%(c!*8txy!1!=(DDb0L!r02 z+a-sI0@}W8mi03Lc2$l;x$Al#CNCTVmPP!J2NLr=4=J=89n$bFPu|TTL|q%@S+@p0kvIz|q{rKyEF z!lenUzUUF5O)j6^yiOM0AhPZs|1i-3)vP;0K9gsL8jHB|BJ12H13yXBr_ANawe739 z%*$XQmvIyDm_Y3Yd@8HNtVo4DOm}Z&in!pgf$q5|;6F2B57CFvpsZLIZGZ0jx(L4%y zgS=J0+D|vKJNwWDSkuZ$%tOn0NxNw(sSh*lc_8&`<4v82Jt(d43`4MBV(NOizT4ac zK3!4 zrOxGZ+izc{5vG(+6f67=ACQu@5+jGFpX{iEO-U)N&|6P%wY_PDiO zFQCeIg27tre`fMRMdGas(L_>Q*lkV1H^DjsBj?@GlmdN*2mlsjx!QC$x`NXwo@)-8pxJj;3 z2Nw%>Yocvi3v+k&R@Ml>>v*7$#Q-o1AsPs>p7G_=&RDmriqcE3{gdzu6ID-29`&a9 zQGaj86iSa9tM74AbT{ryo0^CqN_i_$kM^@I)=oz`LIaj| zU$qqO{tEdM@~~()CIzokqspB{%bRm18-CzICMO5xnLepzf5se|Q&tqOTe%VLy zv=!|(>~7eOpI&4#-oHxrsai=qjo)a_Sm0BRp3X6x2CH%0;4XoI2fPnlNce|BZ(6iB zF^#_i`f(152PSb^bDi^r zPGYN$wInqI2&F6>yJF{`f>2W@Xdn&dB*f~_f@jIh5P$P|E>91rI{v**tPW`hZ_kTt zhA$(T_MhH);H^(e{&_Uy8R@mw@!gxG@|yS1Q)>#CF6b~-pkz&?KdW1xr?czp)W}a( z-Zc9-8|IABx3X1cu!PPd+S{vid3v8C?shW4bDmBwuppR{&Q02Sx@4e5ev=mXfKI|_u zJ$Sj2PC~|U4;4=T$Fp{f3V4%6!hTI$h!VMR5rJ2N2lAnww=S=Evqc{}xb?eER33W$ zgi}$^$k}c9`^xU0JS$mgS!xO#z9$8={_$C#!9F@wIt;XZ_6};%sf$q4IOBZPQiqrD zKj7;9jKA{U5+b_1Q?zSP$v=(#a*b@yV{2RS zYL@U!5&VXip+&4W8_}MuO?Qii1CFaKd3pmxuV2pB)FDLOPZvi|C$3Bt){-l)el^S5 z4ki}2-vVC_Ds{lTI0LHl9rnzMAt6c&@Z=cv;urjQcS^`oc@OcP#V!xl3G`cCOOZ&RQ^l zNtiwgzU&Abj38)Qwfbb+_>-ch6a0@tU062gW!Uk6nHCzf%Q%I0O6NR{+!=5d?zchToJzT_ma|jEktz~W0|OQ zd^r28iD(NPwFGau>A&}pvF$v7u5I_pg=x{r@*C@`cMof9tMoNCJ8HB~xybT6C7IU_ zTRNXo=l;Fif*_BAl^$8E{eK2TzCUD$l?wO!xsY}z!a4TNFx#Fu!MyKI&o|B)x?bg}-vO%lu4{?UXKY+gYuK00xf$7kv{%=tvZ)xf5uV=d-_PO!uc11Sttu-_-{ zx9%-^m6xh;xLr!is)w_B+93l&xk?eBm1qKKxciA3HD04%(=Z%WgsXSRrM#z1DJCqg zd?OYyHkJfkQyWXU(s~o$lU}l;X0SfpAfHoophg+iIsfhp0<3+g5MXRFhHjN2wpha* z;yo&-bRM0JCvf(D22JUIx>7)#(#5UU$0)xY8hk-F9m(=|LGN9{a&=*9JCB$XHmM9 zL10)YPlF$nb*4cd6Y;WOGNJ6e!FIJ*c1{cxhL((}&&Z?bCBH}|=Pg9)GcJGH=pS$N zE;H#Um5cCeb3r>y90j;k`^)(!nI^Uj9v>Dvs=nL$ou+hIm=lvr41D>CVpd1?L4ZLn z4QpJ{Aznu5+`<}uvtw%98tWUZ7J6-!^M95ZHcU!c67$Dd@vyF5MmOuTl(d~NE%)`Q zb}=HB7z3ij?5l6WEZWy`_Z$dbzEOALODQIH-m}xcSdKoWa?PeBPLhfo+t6tZFu`zN zwY$d(%QQc5?UXiL?X;Hk>S@oI(I|MUX7fIi>q}svPA1OD9lq5nFFkqX0*=xUfIybt z8!m6Qo%}(J+^|O!_6Hn$AHd?O0L+H%Xc$nD6^e@tNc8C zvyIyIlN#-=fWFQQEaGLBV(wJG(6fEc>5)fOFc#w3}Q$Y6;ytA~-{{axv3jle}eITDD0bStaDimjSlx z1T$%&>NFs@jIq<3mjS;M5K8m=T%WwL1DTiKCqhCEoMUiK&)}rnixi_O)P#Za?NPL( z=3`H#9-eKkrxP(8*oD(R0O{oU2TyXON|oN?clzxg&2%&kG(O+43xDD$p#aWHLB4rl zpmmL$?cdGYYdYE*5C5nBAOPvV8$yp?d~^XHQq$2;Hx8WJwkBz2&}{si6RfUI=_F}) z?>j4{_5<}46S7Xf>1t8poLs2j*z2YpHc2F5fXPJP=i&NV=xatzB28ndr0J+u4E;Mw zUb@}v09;Oai{ItR(Zmnm(;}bFsO%iL?x(UGKWxw!Ha*NSDgfm1+P~cVLuD2Z7*=gmU0K%nGFN{ zhW*!fZxr9X8Pp-kVMQOPIC5U*3$G{iCwM9LeQa1bnbM(7d8Z&48?*DAHv3lb{!JDl z2=0M^0eyVxH%DVButg+{6=t-(XYk+~YC0b!UpVe^lw<0Hk#;f;}_6oS%#7dWIi}6Sh2v1}$B^j5*_V_NoWl{!~ zB8QYl_no45A3kO#(>VG_@vZLodZGA_uKRfoq-CZRU-OnbkO^E7k|XDW97k_yQhd=r zkgTxI@XqeCzVXeG9;MNOUA?{?03N=0^|o=q@+CH_fNcf(zO{W-i_PbEx>j?pp-$ahQsRyL;gYw(-?9*tJ_l@uB~jVyH^h1i7M^&c=cZ50&( zy&ph0VaG@SuVtRrs6vzhLZ70Mog>kQWnF`6ZR?zuhg6^FVSU)&)4PhQhKHA|@r$j$ z1ysm>P^Lp(wat$gZ0Qx=y7_Hjy*9&9GEK({81}iK?0QCJ_Fk*d>n)=n+u-G$RC4gy zpRKXwk(wYbTmG$hcDMRb-=L-SukR@_Cg%56P*3zqSC2aW+Skk!f1~8CGts&y6s5ka zr?{Y3brqh_r{o(%k5WiB46#Uf7!|W8#gQv8f_S&aDkVuEvA91Vd)3JvuYMGy)>^?M zQh*^}bk8-kA!59CPOl>RkvQ4yht82+Mmi*Y>+EVRNFv*YTOfpV6z}hhwv8&3h_Vzh-N#G?`AYX$-7LEbYhM=bh0S#yzp5pdOtut~h~wnkhKN z43v^wt6skESQO1TNHg}{tY6^<`B<*31IfMdz$7#RW-IgqASb~Viv%SO1&>C+HM$SB z7Q643{7NECnFi5}D8D|*4#7N@{s9~WPdBX`ueYmatHCg+jIiO9Xj<6KyswDS%-Mni zN^%Rf>KOa!(x{+#hC_o9wC$ItxjM#j4CS)>*Cy`HiP_xneS#KoqELfyvA(2tqqI}W zy>aal&A`?)ZaHWEF$enT!A-1G%q|(N?!e6eomQ%N06P3Q;a^MxxxR= zcIQHCDqIG!dJtEcL~FEVYc%jV-&xhOJi-Lml< zO$SS@z#akR<1m`OYvDJsdc4;SA(bsUzRlO3O5}DBnyRv2KFEtmKoq8NU!=Xi%j<|z zeY7VMR<5>pqp~NA5QiT$TgiK0^|M_gO?Qv$>yAo^*nI*eGAyb@_WZSHq60e&z)T-~ z&L_l8vtsouis)KS61prWwxC9p?lRJVT6|~{ZCv5kK>h2Ed(zIa_Z!l~)W+vR%ykt+ z?HSRwp?Gga5G`^4g&p;y&$C3v&%Tw_yHp7XR?Bm3K}}W7FW!B-OMhPSwpZ2Qmwo?! zQNcMOZouh|kwGwNg|hcywszX?m|OpaYVx<-$KjJQZ-Y8{(lTKDeE~Q@-*eiC+#ADN z&?u+0kBM&Aa!VYD%%R%qtEGGepO&Y};FknZHT_w*l z$YFFak{iDAJHpfcWV*nTB0{S*>$@tv1e#3fKh|t6NcSgBAKfpxcXumSzfe3Pw+zTY z%ds)j(VM4=>TxICB}PdX4-I2nMU4G`rcefldeEhZP6(;ZB5XXk>{f!{ure&?Ml2A8N1=@XVlfTn4PvbIEG!E(JUifL(+^x zaL@KWO9rh=9Fp;c0e(IDRY97&^jSuFxkOkcX@t-of+LlmhHT(h;zoyWhz-bt5xH;5 z=%~Wp1by@=%UpQ%lQsHP@hT0$nKZ``t;dn010CnRE^!$_rdQ0cse`-Y30>Wzp1(4$ z^z?Ww@{N3(IwB=}bXgjRD&IZ~9<3?OOd+26HQb%D!0Cil;SY$!P@0G*M@mWJtFh*ihH_X*$u~#yiSLZ; z7@y&@$*{o;y)PaTJ#ZkGL|!)B@1%qamQWf)pe8>x9Y_T6oG zIW%>+0O5DzqRDnC8MBJy5)`D39^jlQS9gqaAkQEs z)eNb5{mr>6(`Lq4*mncl`GhtxBH3<%}oAF`D`Pf(*zCKWZqP|OfY#b1kd z`W6ohxWAVMa(TLjc?;C7$fu1U_NO+`e+KgnE81{jA8E7hOe z0|_hmt^vbsSKZp}biJ@s7s%XMR_~^R&#d)zr&w(O?!;mSJxnw@eA@xde`B2-9Qrw| z(AHry0N9^Y87+XV-T@gVxDgp4qxgl-&YeP7-{=$-rdppe|B`($L)(Z$SDx!`kv;bK z>h$Nrw(3Oi#PY&YDI#Is)d|Fd$iJD#HuwjoxMc56QT;Ib+)E?vlSV}Y^Da&YP5U?e z+To>}N?uxM*YFcgUC6wfOlixUQxe~U%sZ0d>;h*kV~JgN78{>^2;8h}>Nc|teZLp# zsg!l-7g}mEz0vN!Jy&4W)?e6RlE%^V*`T(DdweopTf*1J+UimNl0^btN%8eRnhJ1 zlO<@>i$C`zL%O{sgHN_9wy*#m1j_E2b|X6WHlfER`#sFI{JzIG1OY$0AL){E^xq~w$_Y3SU}w(l_b8~bjHkeJ zE(cVa?xT(bJN|Ayy zRm}2BfrZWMB_Fzlazl6p!fK0>U?48tN^Y{K9&Ed$A9K3Xwrl#lhv@0H;j`7g&BN7U z<_O|zbn*+{5iAPcdD{gGwaygMVg2sPg1`7P6K&p|!;TM5Yq(i=G%08VE zQ(7Y)g{y({+S8Q+KC>tXR;Nq5Qr-MPXXuyrY`(FP9}s*inuMG?KgBke_78ETb}d$CA&OcjqE-Ei8(@A3;N3q=%{L-$2;~pG`$>+~ zm$$-X@+yYSUk#+*q`&)`QqloR>K+yVB*BEmzwi^QMGqtJm&10E7Yl*(2jm> zywq?Zn#KSAEpUS2Zs+{e`B&fLvfZ#)Y6k=ezL^wrl^c4J(Y%tN)SV=tTkgar#X5Rx zp&de7dYqdOHC{tMY!-CyjyBZ%BaKP2WSD8CdCMGt;QQZT>Zx4ZCJ&iLEWI?hh>-2bAO?>;>D$0&mL z2`5VW;vR%d4#HBVHxX8%{~<<;>!tD0)~vM3E^K0fI4|~!ra1pF>d(gbDru`~c!(Y) zy!zzpH$}vf^3u6zx)SEwgP%4aW@KE5$q@vN`e}+PQzAmz+Nw$yuKGeF!XM4Jqx`C+e}T5>Mof&W0Vc z5Im^CA2fV!zx;3?SlR&MOsdJ!%L%+`Z32HrcCOBCDyad-!w8(T%-$vljvk`tkJF50 znte#_i^vX>aONk<5}JOjERS9%t`HJ=h`4>odxJh&&>1RW*`>6%-^V573?0mrt+Rer zO;)tY;oWIFeNOwEpoXjE*nSt=KkQX|__c>*T_;!{Y)vlA$?w#t zdgXE#)kG0luBX||&vU|8EN`W#wva`7U_|+SU^1#DqtxOuqI#G?i2$ioJr*>M#S5Q@ zlCuL57EZ1D=n08vF_7N`$uwxP-xa-*`fW$}%>sS;u{%d108Zlz*EqXT!$tXBcWamd zTLEQZhZ?@i==4{HX&mC^nI&y`q>;!;h%<}KJ3^BYJh zO2Jw(Bw2-Z+Z0o&yypUo`!zK`H9)P1sYvYulFL&ExlApYV*(TgBEK>c04IEw7hV)O zg?j=J2?&1+zazA~orOP4Bl6zyRHet=e~-u)}*L6J=d^Un@JCAIJn?vqV8ykuk>Y&siM(8`N4x9!d( zmm(l-;b>4r%S>M* zPSxiu#QKk4^-BbfYBEPYbTh_#IPXa>p7WeIu2Rq6{BEpCESxr+7e53H-8Ytbdqdf_ z4k~fv)L@m#LX1C1L(NRS`D9k*d0jDU!)r=6*A{;M=hu2^u3Y1Zk{>RwO+Z>84dV8B zXsj~aFVN;7jVud(vHt73P%Za#CG?}Im|yt zUi)O-`ttDauPVgVr@)h0SIyf7Mp*u=WE{Np^b;56~_=N!Ph`f@6^2YE|eK?JYf z+ZDk@6y*J@NlIbCOX2T@Xo6ftD4YD|C)eZ8zm2ON&0p!;Et6~^!f3|WL<0$ z_j_h_EzrQm`9uc;D#9_n4 zdxEbdfG*l(%=&S#Y&l2g#i;(912U~|i<;2(hJvx#!Fq(nu#cAE2 zt=p7$)jK+!2bksqV`hkdytmRLc=WLbIPL-x{+@q}Bg^ue%J63q7dw(<&AIS@0L=c{5DgB04xE7#Qeb4%7#9UmSo9 zCGJ)}&aOleZ8y6Y$CGA#A4+-A(KoJJ!Cu89x_ZbaJ{o-;8jXsT5Z(pQ1;$8;nAWn( zsEshW6?o`h(1(2zMS7RRj@dr?l5tplk2XSr@?>{;Ip-OQA7Z`rn&GXzovme36qizi zO%$*JlEj0aw8aQ`RGkD&gpqKCyd5)%AY&i8M;Eue7?ooGHUp4GhRaYEm~#Ch6qyKf z>pi}Bl}g7h_fzRAu50=kG={7?R^mD_T78yB5~2-aPI}W`{NX^a=0$7Gyb2-|=BG2x zBBzW1)!2$%zTJ&}N^Xkh(6xLL=6tRVz~3RnB|Qw5=Q5Z{#QXB&@&g-A#yXc!?$^{@ z;-(emU3%PkeXKuifS>HdM!oDAAs?4MJdva*n#u8-vdC|OXw6nTCfpX}X4f!&{fI)z zoHU2wA9*!+Scwyr544{TtDMgGZH?8CeLO8_em(c*s|@ik9J{PLL*NwOUvfRb{%Zx* znSrw%K=P8awvZ|>2iVx+iO_yJrS0G7);3riWpC4|DD5?R3y) ziY)K`gk{ubDdh!|=ux~XQ15e2vv$!1_P$4LQ)wVzDd*(MhepP~sjBTqrkV1Cy8!>^ zjw4&rVNqQ083O@>VsWlHpX0SrzN4XL@~vz|zuH}%vq`piX@XS3kYa0dS*t+K+5y7q z;IHLWAJAo`IU6^IJ}q+D_o6N)tG3vJgJhSh?`FT-^gbHZiZUf5>$9kHsj(m7BD0fb zLElRSGz?_eBLiTvzxNyf?)t5b=_=c)-SaWsTZ}5fCzL(JKV4Wfcp0R_>YwnnMpU>G zbB`TFIj){Kek@|^o-XV+2`QcF#|k0>?3|6{IP7CHy4bs3XX)%|LYyUI{uyK7Bp3+fCJ%pT-tSD0L+( z-6lG8gmEQHLX_;qzwr4`x>o2p?XN6%UIuqwUJsVy@9AVk3%nupO~ks%50-*{eu;Dd zBSsVdO^vpuM~Ty$o5LUE4cl=SoBsLn8hGYiO+ubI-{6L|p?gmyv?cAJ<;E|~;~!0` z#9hBVMpfrRS5{BV{%ufwoJK7l;n1ay?;hfq;??pQDb0n??U1Lq`;6>%UJiNwg1jbL zneB~d->zM{^Oru4PvT;er$7%m0xx2mOL;v5(}EH^3?@&kBIX5H#r6M9vB65K#y zMx^|9KRTV*e9h=wUQ95LW#LE0t`va;Jzm!dz)(p5Gl1NvLINx71@RvEjV4f(SFBRl z9CFxezOj-;4c@+JB2RlZ84AP+(^L8VI$zCgDrP|PWi(UMa>m*BC2;uraem}~3$<); z7a*p(?&d17u^5sKJi3tIVLYZW+Va_1XbJm75LB1~2Fm+)WF3LjZtUxaneEr8h|#~* z*E|W30_cj}f}6l`H@#tCxb1SrGW_z{KA6s$WqJ{PX`rIYN^^V~_S_B@1A9xy0^yI) z7(+Thx96LfL1(8f-bZ`WWSOg;pQc{X)J_ukfB}%qz$YiAVcm^Lh43UPMsw~H!*q!* zdTbyE47@_S+i^Pgy1DF8=^SP{thD0Na|#ixAdaK9%>fIv;U$cFs0uLxI1y7;Hy^g$N#fHS)CsojA=?OU)+p%>|gLS^3jS zH^VSiHs)w_Wgc<@dK9jgR~;d{8^?0b=4NF;S@YMo9lc}`xV*zv`tT%#&Vm}cRDLN zq=wxW!n`@|cRKP?Qjwm(!fOe;MPdLob>9V;l|2)vI}xqnGK#Kq9Ufvkdrxf~iZ9TN z^+@BIixhH%MvH>q=|>4|3$W?>?m|q5+8#(4xts4we_MmvA;a>ivSF8ex3<}8-w<`S zn%Ht{tJ!f|HVVvdX#*1XGPR*1<)d$f(Ra7q6?SDuWEXgnwB)XFSV4 z6uQ3|AAwk3_1_Tf##Jxch^TUJ(3XQuaE}B5W}YvvfAabUvCdp$IlHi8MO^pIcX`$j zJxLkMLXNr6fHv?wvK zbr)aiSpO;OqO~`uXL@oU8Qj)XJ{q}8 zru%OFlvoh?iaXhkhk;3x#5s`U=!=kEm;|!wiD!V$4=ug~5`|oqvaStm>rC#CNqL8E z()-V|Sw+qm-@YTJyvyP5W^#j+HDI#bq%N42e_-e^VPSkDR>4+1=2^YtSlQv%T4njd+I zyST?CDQn5?x&c+N0rz<{$w0qjMi|p42yO#QQ>>3pA4IUQ}}NP7)cL4$`F|ZM<_7oC7egE@OZ=n}=~1kS71Rj*og}c-Ybr zLk>6s`t2g5ifPxva7eCB&qq&DeCtPVG zqwjyEK_!Q&(Vu1|5x#}JQj8Sry5razSF=KB4*fQRN0~WT^#u_TJlF>`D2Un!#-(J| zl~83fRdm5$jt(~!5lx=fI$K<>o468;;VEuHoQe!B<3RITT>`==xyC5>gA)Dp^p>sG zVbe(1F*$MGFNho6>HlNzt>2=GzP{lB1{k`#TM22T2M`2FQ4pm|x|9-$p*vKRloBMR zTVjv~LAp~xLK-9nX68J{@BQA_dtdkSAH3Il_<=d+>{@%Twe~t|@AcVJFT}^pT-p-J zLv|+k*EPTC^IkyEHX2uDM-OL17?&5D+!;(`xbSW5sk+6SsD+C%LfM5k@%l!sEb$;@5l}v6!EM%6Fl%KX6EB zVwJIOq5vm#71J-SIJ(zrYoII#@>SW%v*jHwuPxWo6&TdpRB| zukhY*HpKD2h%VjX?&d86Kb}A7=g5B$+!b_1E}}Z91K0mV%yT&Kah$VVg|y7tDj?b# z$U;IYh->h>FwWgjBf;7#@^xP=2Z4`XxD}93+Ju}V6Qo&45sCA)$GGDa(2jv9wTk$$ zj@ReZbLQSjr50^XrN$L$BHG#g|6w$n?Xmmf6#E~Gt2)KF4?o)UfIfj?{_!?{&$bUt zjHkvX7Ib5V)&vjB@ZJcdiKO?rJa~|=jM1bea^}S&;&#)D6M5Qj+#jw{trUy3JSg>v zu)3W}VXd9mHhesY^FOh(I+rx<^%2pC5=l-TJ z?Qigmb}}h}N@w=w+in6PdABs8US6j>-Z=%8^N_-B7XL+t-wwEHY4R*MGZrI{7g|8m zuK;HXmE@*U2m+`4REaSAYB~kHe7S(At)ukG9+R}v`>#H+9R(y4YMFCsp2NgW&V-IN zCEaGy&Y}dX^ zR=S*J_A6eTm}YOh9XOyu1278^e)bRu&Ep_pR6u0RhG>AUY9@h>-W~HCxRSp0;F}Da zhhPh|%dWO*|6-@@fX9Y7!@oaeac{)R-R+`8JJn;l@F?c1I^Af`LdnVQF@O1uf`&A& zNqMe1`n~?U*yu{5jjLN#3j{i0v2WeZl3(ov{FdOiZXM>fC9vLNk07sz4}f+!fj(OZ zLb&~|>~Rk!ZdgV2&&u^jE_24&kmqJL5|bGC{d245;|7^HvQE^Jkhkv|6`%dJ{y(k{d2`IPxaF>N5Ot*3aSzy3yg47|_xQ5_owIEdpx?-Si~c>~r!HqcbV4~C*HtVG(ciTVHWwxO2 zh6#l^&oRJx$k4GjTj`o`Q*%WqlBPgpNp3IUu~7H`j^@;#1X(Y~FZ`@}ABD1wOg^fDU5!i2s(gK@oM z2UM!hA~Ze|*jg#7#wG*z1{C;8ZvU1uI83;lg6wSR4W{Lq%az`CG3wMs!Y$Oa-rIG_ zgueF&9%c0)anNzxz~rBzD&@pv5sfdl<2J(hV&cD-4^tk6u)!)S-aP{zpW6_^?Cs@!DSo_t1VMheew?da4@r$=_`o@RUmNEOE|`y;t!RRZslB)jq1}o#wI1K@ zg<8H7<@gogXge&(_O1;8iiolA%|e}$d5^LMxuZPII`;KCe#~XQCC5tHz zBu~4WApFH2Coop}glK1JoEbNq%H5aZg!tm(&n+%J9jPz#YN6{j_`*}ak{0N@df&6H z0GU4D^88r5&Y!CbOr?vyp9nLTNsPO_{2F0av<77RFsbm47QK1NVfvRaZG&O)ayo%zxxZHQiM6@B4C+9!kfdE{$=${!%aBOGmu?sSj=? z__mMEhd($@FD40jTL!Ry)U+c2il%h%OGqTe<3gu`*NT&x4fqw1qNH6v>D{<&F$1n% zUX(PCtySTHFjqDrZ`Vm_H0l%X4uNVJG3b1XST=YQce^E@%2eDXg*m?0uCRHk2lYaD<-d2sPybr+YXBV~aad6F zG>4BDd{DKeJGXi*arld;E3wwN7O=->=v9mcrD0%}pjgTspzGhO#4lJR2{D?x)Z!V# zOUaZ?7$I2(JF@^o)<5vbiU3jLVYS$ zj;>x_RxGyBE05+$)6LtRRA0KTXR5KXOAcS#pY#$lrPauH_1ZT-xKn^2r@U2_x-LqF zhvwEzXxFud(5TdnSIb(3#u2%~XE}0c0oQV~*`U<4)qo+0Pa&sxn90t|3?J{VLCgX^t?M5QdpM12R?GC z_i56g8K*F`YyL3x4j`KDgZ-EeF>lA)+pS|s(hw#Ri(5`U5KVQZ_4~r!N*?ld?;Iu7 zvwrCVrFo^J@721F#wlKo-!owgdWazo!Roa-9Di3J$WLb~i9^Tz5S^lqm5qzNogV*+ zJJXT195rsblAb_-Y_G%NEf?ff!oRmGwp!o~DifVGLNdNC1D`5m2Z*vHPG$E)c-Ap; z^0y(_lXXn%_gE&Y4SOG3<)Kb_PU|ev)6}Qm|Jx8KAD@B4-z_qjp(b|mK_?i|2?ZEX z+^5?)WSkGi!lcDo#;-h4DlI(Xsj!w;0<%v+JJtdRYkq#h@CCa59=eI5lus-$)QflI z6DAYGU;lMabxFZ_1+&mfkcneIc85|!ny%qt@tLEO)SOGz3n7W(#BATe+IJuj%a>Or z7*pll8~j3CS)F7&^dr)nM9V+AiR+@LVH&btu@CGWb`l0XlnlmC+$ui3^pslrCQ7WQ zKHDe$S_`kptoSXxXxAj@p4&iW z;xID83}3zfar8Onb;U)OoJZ(`%RRgLP!J{9RC0;9Z``DTlrzkI9akO^slTKnW5~ZG zDb91tcAZ9~*jM6XmvS4WFXod2M4P$Bwum@cg_@Di_P$yZ1#NY1O1x4b(Xj#56@|71 z+;p%l#84s>`t2T>v&vjs)E$aBKm0TpvHyU{n4hSM!B|MczNv*2m`D;*Qlg@KB{P2G z^jD9QT_Udi?(wc}uwW8=;>@Zl)GC%f!~t?!0{83TgKhtWr^dG5s8v-DuJZk1J9e<0 zBL;wu3fjj@UT|^1o-1-?u(dbntCXkq<@2 zNnZ_X)F84S8jqu|1vD zlT4f|5i0e@tVnRjG{?Uk(=&b?X~f+t2jXiw&Wf6L%z`I>Gk>s5hKO4ZK zMPBe#Hg}p`49TCRwPG7UCO zWY8|l$4gqgv->&xGhU&EWlNFgQGRV`zdbHMD0O7^A+mTYHEfKOQ^*h3xa6T7WyzGU zD3v$QMUmn6+Ck$Xi6$l^F)iblI##J|&Rvdx^5~iF=OuwGe|`r@D<_@NVw_V!u2u}Y z)Viw5zy^(y&yrd*M+SNpD6G}(eR<+o*zu%J&H?O{vnJdjQs(g;Qo1mD8PlACXdB<3 zxnH;&x_E@faH_lhq`5Wb^($tjr|h)6*?JxpKkB%W%cQazNIA`_z%#bvIkWS%VC3G8 z+BVx~suSL43$lihX4Btj>xMXeaxB&sXf$-$^G}junNG%4&Sp@#pHrC9<3hWnMd@vG>1*8uZvUotpkyFlCN-_|_(nD9F`fpQ%&jsg zJS%jbE|^eZ*Qv{R-kj6#5U{Lqc}2If!M&TO>Ggx1!C1?9El!e_KuHqfKuo8q`9vZo zebp>wbqVH&uLXN&I9Ka=sbTrS@)KOTd(SqxssP@wq$hJ?{gq&x zh1vicM8@yc&Yll8XQ}G2A+FcfTUJ&eeFwlv#Lpr^Jb6D0MwI-&@h9GrAQTPmBt8TS zfdJSrfCvjfz~A5>HVVMU{^wUHfRDZbcZ8us!Pnqh0KfnMHWYyV`v(CZVt|zv0Mobv zfGOCp02)}0p=y_hMlXXu!PGZEGc-qnB8RF4xCsM@u>eMae0xV6++-H<@2*pPdxugE z^RITc8=#dchf+Kj+6d+X^P+*37<{>Qs+iS(MS)d;WjCUM7O-Tn{{J*36o7$sp#L=m z685j9Sl|X7_V49?XdwD88vctq{Qsiv|EKo+T9hPr?2n0w|YmVK7^z%Kw7) zaUsxL;QzUDq5p0N0Sp@C94s0G3_>B09N_A|-(LYa5T$=i{@)h{P%8b$V*h=ifzqvi zoc-Sy7TEe9ssBC2{O|k!o&JB9_rK~>gnay;?fD3S;Qf#G4&eRY^!%f@>>s^l|Do5} zP8`Jj{&4hvN0xyJ!QB6eEc^Rv8jRxmQ1xGtW&0gO4fZnuYi$)@vknQsQ^A>?vI=mx z9D1j9am6DtsGOQA=i}_Yr^S$lB&Rn2YH!@<6&;Gt*$hA}SPF^Ox;?AA&m5;ZqBasy zlhLPp@9sFK!_MyPP003P_3O1iUoU6Pw?AG3&$7MCuUEhNf;%<9g)*PhsKoZ-C-RIq#S%H!U%OiVoeANslI=wJXANAA6u+@i2ksW=p&S%0! zov=sEwL+bHMCMdCY~Wm67y6;K(3#JGpwws!Pn#-FlfolxW>xb!(K(alT{F_G zlm-7h>-c6ayXc4hYg0WZ1vRx?`Vnz@AlmP?P>Kw%g)1ZqQyxg=86 zZMbU9N%A4Do5D--B5yeBIY3jg1V%o198^CRd|aB+_t@O?XZV#^KeM94zm5IF8_V@)6-*hx$t4lvi@a5o|(-yE7x_$eo!@IFmjAE}>MD;utF(f5bUGZwT5i?%vn~IcVsx@B)EnpjSa< zCZYT2vg`Kc;>lZjUs#>=oO77KfA~;|y0fFPFWD?B#KB5|^}bIhhPCXK(7v?YkuwbW z;mC5VPi(hUf;x=TmmzZJ%#)8&(Q`w?Oh*vdiJ^8e<(rV zp_&$qPBxb2mA2MtDiIAi9FE%qF}uN6Gd1qc<~EAZ(9F&ub&2w+mgvJ;X}^@pTEZUt z;h*vfj_s03HRTYse;xbxdAf{V0yCv^dK!W$%z~bix{yaCM_Z5VQx+>2xVlEpMuQP_~u+Q*@us4n*H~s zn23WG6ILCwpy@PcG)f|ZWJ)(cGj)yiu2@Om*!XwO3OVb&G;VeO#jhQbGV(6T45eeU zW@`WX7&}u+3ZhPdjEsJOjJ-Jh}us*jCdCEFxxWdh&FJ~ zR)Ko(a$B&anEVfF4$VNn zTsPwPD_fb={~GR*b=+`#B-*6fi{+BJ(>QuC8C?u7V{mu+^QZXyR^sFKuC!OmqNwJ( z`uJ(`Kfy_(F-X$RO zNOS$CQb>EIQ(8NJ6>+QqT5k1$iXkC^ds-}KJ=5~&a-^shWamq#is{dH@eve#vN(T8 zmOaMS9}j^AU=Qh^!TwRU7IBjme$9Cm>?SEcDZ}&f63)cGba2hzBu*Wox2H?_m7YLm zz>Zn=s!qv!4UF!D;rj?Q)E3-!dZ-cgFFz2B_FEp3`RIL6X+@HHjuLwCja_<;DiUiZ zF!`w0``t)*wjSe^cOW~$X+xwB2I}m{u#6j?6T}aFCc=SOY<&C@ardBl#Op+wSJVA# zSz^b&ftG9U&HfSRGxPGUjL^bIqkS{yUWDQFMM`b0!F&@@3i>8oY*{vJ+{okV8OvX` zmYLkOnG3XXy7JWMXcJVGrAh2Fsqr)zBJiM2lc&! zOiYtf{oUSAY6c~^o!Vq1V7oFSabk1t1X;x=1<*q^&Pe!3*F+8VT`Km&C~OT2fae>^ zJea!;At2S=GL-=qXU$|0*JvaI|0pJ*@xFSw%X9OqY@M>7OK#}3i;uv3Aep)i7}Wz7 zEG~69CSA9-S=@DfbN+bGdoQnIT9AVx6(_`4`ZrbNq!d?HtOd-o-VyMmQMJzQ_(%JD zsjjj6eG18amrf(zS?&}Ji!QP}&!||k(eVy*NH~e~DB0w`8QPr^Rx^v+3cMJV; z2-!-ryaQ|0yYU}dWj~hOM>ik*-4|Pk`(jF7E_(4Ut%f^M-`XX{E>yjAc z*N5-al%3Er*xSB02fwk8V-ej~CFSRwT9nK*zp7z{b&&8qQ6EeH%F%)eO+&(?!nWwFIkBbRYnD7XcK7-M` zQfypN#u!|6ulYqr65FOF8;{KXZ}PcDA=uKFe1CUE+l^{B1ge5Jr{zzr2B;FbI99HI z)bx}bs49s%&-090X%}|3jq3%en4aFq{lazgL`6H2lrH5%AvV3YgHO(h6+YT+oXPxv znc<<;{_gE6C#avVM0p(65Ml%J*Ux3JKl;fI=~bA-jXucV!ck!i-#VIXqJqnz2^UVR z7JDvHyn~+Hw=cM0;gr`84QsNXMA)PQIbh*OUc*NJR>y;X>L3(NwzM#By?tg!2PeK} zEnT33mhIhJoz81GvFfpJ>LQ?}W?|ujf`f5w)q~8U{VTWHpMFrFuwr@0)|9kL*YJU) zJ3k)wSzKdm$`eF8H%aa5cNKUwLX)Th%pGNXVBm8DhT7K5L2;hdX~!c{n1zV#!U zmG+)2wUyWAg+d{q0%E~p58T{-g?-!f+{jyq_^WYK5=?_!iVVVlc^bY^GU1KQU$L+t z!gV+a#Kz7Oalkf<8Se?CG;LADQUSMRls&5v-z*R3x#=_m7Qj5aKRxwTLk2EtkWEVa z6*7mqw5-2y`F+MfCVY#=gmHF^k#EoAozW@e(jhkSSk4?~uK6IaaA;`IQ@n@vTLW`* zjJrT4n`ce%Vb7M50XQn^yYuA02mx8p1!bj9x1mJX!*%I5$~Aj#=(vLyfQEY%m|qW7 zcVWH%d;`9K!oM&eN$7q3={H(0-4Pa(3CbeTlq{H2YzDGE7~Ud%iRj3)kCMed=2w=xRJZ7SH%Z8YfT-g4r*}sRWp1dNB}Po(4=x# zU8rjp4B+y6Z8*O;Si*few^|lJ-T!mT2PNIyYgO5&bSC%+U+)H47LY>63yJ(F^S7XG z4N)^?*E9P|dC55q`XZ6DAHk;Z#zw9DDcc4XOo;ZopLE|2% z&B@{Veor|i3YqAKH!EEneP9}g8%g7L;NR3TNkjJwV^>) z;amQzyhJo0*`4D5Ku1WJ2!&KBX#<1a36b3$(GZe1Pavm#U}Bg1BiIrWY&-O!$o z+gEii?etQip*Gi;2M0IOEP(ir-&>3wg0OJTzjyV-cmst85YBGs zPYUBJgMg&Wym9O{pEO1~4;=f5^yT)Lt{WrLh7DwjF`je#6XUc{XlU5x)spSfQorXS z?#=ewziS4j*Ti7zp0J}1nkE5&VJQ`eNn$V(0wpaU8iv_du>jWMJl$jIA*z&6n=7aN zZ~Rbn92<5z7Le0RfPx6DmkQ(L2|>>|hk+87>H& zYP2AF=hFwjE9Cw;L)NDlS}$(cun)t13rVp!p@xo|3coA=`)GpzH2t}$l%DD{$bk#C zDVCqQ9^l~J1XRtPvJ}9s4LW|xcQ|VF9K#*hbg*(Wa1F`+z{ZJ_k9i=TYAAeKpVEPL zH+zVr28Kus!5PCILZ+QJLPOuH#LTtMQR~lga#ZnWj~XIhe#|iDpEQ9*=451Uxu$`> zf%W%hKb=FCE2wZgZDXqEl{>Rdh>VUvU3)-_dgc~`a3|Txb9R8LQW6W68wny^Z&1j( zTDyu4OWe@)M>f(~7=}kbMd?vx{ZcgeX#5#cT4;e-`;(NwyHQ~wGZ%m1`LA6YphnM$ z-q5&Z#{#7&pgak|Vf&#hpBr9&{|-#e@I*C{Y~FrjZT<@3UX2hMJq4{3Yy1pPl3(Bb zuJbn9-G+?a5mf2+&?Jhi_3>wPhcsIR@3p-WU&){@K#>wenPx^BUOwAt9} zr(@~ox>X}ju!s<07bQvM3-O;%J9rMI3`Zlw#a8(VU7%<}mUQ(W87!N)w>-wJ+T&Ob zSP=ln{Jh9vubjx45ZJe*Oy1lAU1Wh>bp1@*ffkT$>Q)Hx?6SaWd&B{{djD@xz8V}P zNiC!C;kbM4{jSHOAGt|Xu=t@aynw}iF=kr}%awLb2UWfG6a%%<@=BIvIus*cxc!@! z2vR_a!e(=$XvSZd&NJ^APDoa{8&En}#U8e(72D(}oN_t3s~4Z}m&X+QkNZJmJ?)V*ur}uqd0PlJ9po zaPOU^Wh&%NN-S_-TLlCuV0Bm+?tVal#8XCkL_u1LT$W#!kqP6Rt+Tdh;&$!ehw7dD zHD^K6;obEj9GO}Cm+*D(@(%e^Y6~34yDw6pp<+QuM4ziPi!!+7!({*9d0eXYB69er zi}t1}ePqZ}oOW+caR;Q$M{n-s4MkoY>%mQqY$>Dt`}I(N~r2=HBL_PqCq`6B1i-e!r*{s{fMGx)(DP|A&P1i9`@&h z6*#Ged5t5^6r{+ z5z7iX;2ZHlNC|*>e$+cz6x~~J$iv0Bv5^rE^>5Rm4QTPk0d0i0?HNAtosU#Hm_tT> z1vHUh`zK}l9l{EOKWjlqW%ThhNpi;Xx{D{H2{ zyYI90{ScvsgEfc$dahPA!p)xEltT6k=faCY#qu#;1%9mF)jPdk@Y|0`?7%q_KZL#| zOk;0w#^q7%g~@tV`@oX1ch*^+1|}OC1^CLGDa-RtS{-YblWp3tUTbs%^8F!n=>36(x@@Vr#jAGv`&H2X&{JyHH8rQ zidUy{*=(gpZlxMekWAqeA!5aFoZa;VRLy;(=s?>SBIlwhteIgIWZ ze-&3EYAd5NTNB85t^wEC6dR_B~5WxVAD|uVOMLTJ>kTVz=Cl<{_ZL|z>GI`&zVMWfZ-l=!)) zlZ%jL4O5&HC zVrd~!!`4;Bk78ei-b*4u^zBZjEMUvC1%r!zO{kHOB%r1O!MB!)cg z@fW{?Zh!G>wXkLSPt6q8RsgZ`RKQLYP zhWqG&f*}#kT{Ft}e{REU+T-zBIgeA^SmoUAs`zTj0oL9PxF4Oig;GO?Y;{y0mTx;5 z`yQxuA4hF#Z>qom&W(PWUpHpM_Bf@l7W3G&0$ZGlQgWo&%id%KJez}ZaddlM-)_PA zk)nj#Ehd2*orCX{o3znmzn*uBJ*S0b1*kGQ$`W?R31}pL?lsxg(MYd2=nK3z1zRPcK`k7JHp+IEpL6r#gtaNPWq>9B^OALqwY%5|G59Q^ZUJ z376Q$R~^5QloarcllImp)fmE6Q7ibxp~=D_J=OPCM8w~&H1@$IE!Y+E1tc5eg^4;8 zTCLK5<#ss#w)NSdKjo37CLzqn-(2(kJt8Wb`)-83cWH3>kn&Mrn9#Q7(&BYu65Pdw z=Of%d>ut#BU|unNX^EkeOE*hYrk^ylmgZ*zA7~f7f2zr`&yT$AN7_CL-SSQ{gZm_t z1$g81)*-VG5`NUDZ_m%0g=xQh5{V_uO!KJp(lcvvBYHk})!Gl@41Ks@ZtbjlCKLHK zniggIDe&-FQ&Up{v7fa69mv#`tKrgG-w(t>a$DJcwR(EUyCM;+Tl?i|;Lp$Lmc$^~ z5rrob;|Jm@c@OYEm2n9fNU6_!IhE8gGd9w6Qi6!tK%>rjzyPCeFgl9$NtLBteJ7VMwYl*^VefH zkvARL*GDAu!Z4jQVWOMEHqUwIlAPi%#;O-{<9VlDZT+V5mkUqRz1$CNA?BtibtwzC zGzjP42=$5r_TMwtoe@He2vZh$&cXi>-?@E{R2L|hmmjJMd#gQ z=!LGYwWhK8FN^QDZs-2w;XrB0?iQtXix05UfXFj#layMoJG{4ljQ(gf0pk!oS}+$& zJ$Mv~l&e8!qsJhEj$=4vv7Q8H)LStXGVZeaSk<-Z<{eg7Aq4Zc?L`Vbh$aIrK<9b= zDJzKv(W7{1a9<&ck+*Lx%Qtuy3`og}7ULa$x1&9!hcfPAJsUPAuQV83xQH>lG%{0Q zd?MW3f5rDF7^`k`HDnM%4F)ZzI=^wsI3REuEh-ypvMDK=)p-c|bGxHRdU`0}A1%Iv zQLglNkmys&w$Km!w~_-Rj5k0$1yZY<#kp=cx(9B5d60B>6?W8qrhgxc9`RWWy8A7% zGP1?*=wKvI+PHpmZEG}}fgOQ98R3pnIomZr$hTF)B%dlkpNR#wGg@V|byb3(urI*-7_SJDAX;|yi9EwbkbMzVxwPe0NQ>&YnDlX z?j{kn*R(|J>R1iO_Qlo5-ZyFp5I};cG*b1m%f53KnX?oqJN)(QValiB)AAyB`e#BWp2RsXWmzEkt%Nyo~4{M%afw` z?kzmaZbI*iISaJA(Mvsh*|oYu!dqgykoS#;qYRyS$n{iSH26%$+S==Ck(JVRRq|hU+aWG~4N3y8RM5$NaWU{|u3Kd$#0Q zUF=zfQR{Aab3Em{Y1Xdjhj;-XsEJHHjP?QK*wxDwKP_vf!Xzf!v$Itd>)acBcI*1u z-u+r@g9#diB~w|Cv>Wq3K+frh&9E~d7O%Ex{N~|qm5+FZLdTn}CAc>qWb(Z3y!Fla zoP3aGodxmxg9&koYH_6In>8?A<^#TqG8oFngi?@8d&`Jft>p({w{C>_#_Q$c+vF4G zWGgm1`UMvp4eXa+t86a1%f2ebRY_D^W*wubCH%>QHTWb_kjEmtsp>TYiUS+D?0Tp$ zBA2XL80U#TcZ*ysz88Zg6)g4W&n1pKM=Cr70OQ=n>YWmW$EzilZ(_#se7Zo%6QzNk zTCulKPs>)QM1}Du;2HG#o>RR(P`|v{vRsDDSSHZU^EXBW7Z@z=9ulKzt}8#(#C_dG z0GP`$+%M$HSL?b{f;riC32|51Baw=RqPo8oE>Sd)m@xnpmbx?cya&?5(qld32+3M8b(tP=#8X5 zh@uQC+NbnWFO}4huYQbHA2xZJkbX-55$k;KV_P7DF&wQ!2rb0x7&gDbFONV_2k__+ z^qJ((206M%l-I(LeRjFa3YpbCKJxt8O4J&=NAtmfYfl6q?}RS&lgmoF7m;M zO7OlNQ)^2e>nKe(6Z3)*fvy<78T1XjFSB%PT^Xn&{MPC~fht6$ULrvBuoy5jvXhH5 z4jt20n>2)drYGxXoUz}0=F$;ESY<|{!Y6|*SOuQR(ED@-8}~Lmue6f3UMD!tLS5x4 z4FnZGLiWrF3l${R4msz-=}3t#yiW!6>i0K~PRRAK({5KIj>6$QSC%z8uzTTKwmshUo>s&OWvc= zXLsRK;RaH)i`xX_j2Me3At)M=6a@%ZsP~%J3qq;bSZ+xkzM|K=<>FtTWe4!j97VHu z3_@|X+MS{jzEUaUIG0|b$K?0Ec!78rGJ|V#MVzE%aEN(ekWu#$agP_yE4*+g?Al8I zL|lV{b%2iL%h65Vd8ZEDLl8|&A*#q6HW)tcQ*ra>j37n%)afY(Gn2W%aVo&+Z9Z&x z4@=1Y%9{R|5Jhuxl!Y9$8eXNWcIl>}aCc|73tW+I!FiO-{vJQy#;_3{6s|-&K;ijS z1FMlY^kimD{x*>U+ifnWb=G}OYo6$gV@*d8&RPG%g4)hKJB}^7R3Pc@a)!pu-K|%o zksKpf4$O|GWF7!U{)qQ&ujwhphbWVDUwQmAB506SS6RPoJ9#}TAH+EMA;6r~?30yR z#gmK|_1Q!4Mdw8$(+yNnQ!{c%HBxt_%oOw@Z+you5vxP&QSc?}k(_jeYp=avvHRmqF$gP6GKr&Y)MB zJq_n3KR61K64$(SWsoru^oI?@`TWt<{O0&9h%ol%!`1V9KJKL}())RP*g0_iQsfcw zl-7x7MpW;c{>dk%`J5D73U**%10Xw6mW?60>e)x2ey86ZM6%=|$AnySP)RWOAQvqHbC zQe=O{ewn9pjt=GmUW@zh4nH+ftMrlA6Y?5bYGDBo0=L5&?>qvw7GyA41HI=IqkA3mYevoeF=@&Z&z+FSkYnYkU%O3EG; z!aV^IEz^kxM&$S+Uo?u1DN-abh#q!)%Ac;6NKhif>FO77L-+Q_d zdO%AWm?|l;rVY>7*09?u(iJ|i0Ri_=Uqssp4LZ=L-)%70=Si28xbw%aI#&F=6~6kH zk>KbJ$0c5tKnaGQF&CfdNjkPTh6IPVO7ZU=Aaf(df*2QQxbW=geFJF==C3H zs%t=6=>EmD+3_tk^LBM^{#IiA4DjUbL7+eBj*iP7C@wGOzwfn z>MDNdyt|W55bUA}?q!WG89hkH(seV=9y^}3fySgH*(nI@GV*%mo`hR5B{|FbV*{lR z?ynC?K9>=*Y^90#WMxko>Z&le`_0?LNNXkV974k9`U@WDHD@8mxMrCL^W<1!h!J<* zye{Vmz@}UHJ&Qn3g%0XNA8pMH88932hk58C=EWUg4y9q-<5J4ZiLVOsG_tx~+Mf7}Wa8EyVS1V1%0Q7zIxF9BOA{4Fs3W%t& zzQHG(0zhnp^p)(lcQ2T1b*wH?Rz4FNWO;~Y9E9@;uM|)neBk<16Mk)2jFPPOc%dai zf)yd)HNdmi7xukqz~0f6=I~OLp-ygZW1Tyrx4QASxI&s`Fn9 zzB}bNseCyqH*OEhr)%Z!zpwSfw|S9b^9UJ3zkLX?+!jf4zi?&IC;h%*pqTs2g;Qt* z3oZE!rPH=tP1g^x+#CqTu11zWM(BKX0KYIUjz>L1>Q%9d6jQC$=A6;!0DfqJ1y0xO zIFn!dX#eAbew^vW<$Q^}a5n!GEYKQt8zYox4(Te{--Oe^qPwZrl?`Py&^2%T|7ac% zOcSkpivee?Px&XC8Uwgm-A|E{KgviI$2h*jLY%{;SN5$gLLV>?i{BKY5Wi^h263@Z zg*r0K9wp#x0y#%P0+KiNO-o$9vqdF!#O2iE(U7i4H^-a)RzI{iG}Lbcve*c@BK&!? zCU;vcAB`vwfjhOShhN;Ym-4`y>(ru&L@S*4$iIEfD}5N+V7w=bYVILT3f4OB*)(v3 zZ}rwo_1n0=?&45J2%_asV^6*~@)rybapVEbAONkKNa}9)qDS+#3OgDTT(EElu1>r5 zmS#NRL?nqdSm6bvV2)FTg0~Cs+`d_gVb2yG(T+P4ilUk&Rnf8S@gYm%@tw=5k@qE% zx=VSwW*~yoN=EvHw5gUtBLsF8fmT{vtK{9FJWiLnD2VPIQ3jZ(lQ!C~nfXF~v8-L) zZvjpA5+|(WsOz<7K%I7(w#p0sNUWlaM_uDpkU|HJJdvx?va*k{_)$2$t|63f?eDzU zf~*D1`Z2$V;NOBUO4D33+`-G}D-gtVruI9z%2G);$8N|K*5ZsKCKNuoFLtwG`)M#` z?&6a8L&rW3IM-g!HcOl#ORjwveQTuJ95fUz-hfUqvwNEJyJr|JJU80!O%(hbzwI6z zA`jp4?uB*Z;VFec!ut)f(|`k+d2)9OvN!9Z%G-}hss4K#G- zK&riT)E1kkB~>51(IZ~44iBh_z72i&zF*p}obVTUXoCVBZWasd?a@J47*y~RexPpG zxK!=%Ux#(E{7`tqBU~&eqN^@|Im-r_=qUELFC@)ZJZyfLDl8(ESYzfRYSX_+cHdI*gMiDt4=+c9KqQET{v~%j zE&+As4iGC?&gT2p1LWQF!-?pnAydW%7GBcQS_&LQ2Bt%7vPC`H?%+ipTqEQoI?#DP z^&N0`bl;$BP0|T#QFNT7GyGZXsc-k}MDB$yhtu%rn8O~~!|cj)(KHC&gIYWW$S_U0 z08`nTs;m0L!q(UEv=MdRR%9r{DVudO9xMxzy#tcythr?-)nHv9N>=Kt;F>Hec>zkS z%hW@0gSPxs0`;_KH&zW!6Yu+#VQ;v;YRK~eTLFE+>QQj05mfjRbtzG@u}c1QC+^jg zu7xHOWx9wfAvQCJ+sRj{um?Y#6v*3ADQRtDIh0*pd4JR(hY%T0QTq4Ajg2IOYpO%W zmsDp9PCkXl3I5F|&3_9;?9A;CA&-Z-q z)(aW}M=B+K;gfm{@4UDm^~_CvNC1}Ort(3Hvf zfl=(rJNG|#^6UAMf-_8@kBtvg8)XO?@H9nheS^(~?s)1zy7oOO2Dge(W2d}>DwOw$ zMd>4F`|giL>#q0>BB!jYwg}WR;w*YLyv0AHa?5_n2(=_y!2ck%P7&_H57cF2T4hGC zmYV`(S9?vh2B!3kLd0~~43j?>mpqGbvPX204_A3yuU}q#gT{L+BXbvyYpi0iPo0VN|B&$bi{m*G$kjQB%dM8_2@14l9 z?76LYWK_vLbf*UZTLt)PGRf~^hSw8Xju%MZ%S^X+s6}gD?kMK{WBuK)VU*y!p=r&z z-5~1c4>3L^u((x{zFz$|>jV{;3tucZxe`)1;c5AKCNKtSNxpRR$y=wXruV<*n2cc8 zZdNZP(uw)rgCC~{ot1=r5LocB{T0*44nY~h*S=r3R2nnUKoe)WI!RY@9RwEe!2Qhk zPz~bXA#fL#)zuXuMR}S5A;^o^ilNULa0wVq3jU`jCqVaX6Ou%q{TTcbUBrT{WLBh% z5LUG}d?>>-ip&F-Qwoq8VSWwUKcQxM2~?2c1iaGGcLpuJ6I{1j^IIkL0ItTYjk;l>?X=P z<<_2VE>iPG0oCT!;GW*Must)xK|;AX)_%c!P#vto_{ck-$8GdTG4;GtM&}ZVaoeYy z#uyBKxIk9kbO{ltEjsO63YVr6sOht2q;eq$j%=OzPVE^S%GZ>Tj};6W^Kd z;x9{fZ=#41K&?4WvWJrsV6i70R|u6(xQHgn#}KG}NDB+g)iGdDrO4k1{<9qzZ_Q5q zPVD9$_KlHgPyPt+FW%NyC%;A>MJ#aSAsJAa;1191sc`THZh?udV7%XDWjJW{>%m|f zOQ`SbmLxMbrApTiL=Rp0fz979Z$3x(ApZ|b-{DBr|NnpPb#d)0DSqYFRWuT* z{Zu?~Q^+x)3gJg45aiQxlSj7xuv~a<+<<-lD37V|?*>2N*{NG=exGu{(9qw1;e!kI z=Y{f@#;oU8&{MQ5W<1f4ps4VO^uKtU#XOhVXpiD)qKN{xuPn#kP2}}K5?mC~5O;Za z(Xdx0z*X7W;C%ps=2?^AUkjp{Uds#L#B&%FDgAqvXcBnsyGcxr-52ig2+Y#L@SK2G zLEGI2=i&M*q$iYr{KXm%NBSO(s#|2c8_P{+dyzZ;ojJZJK1^KU>fRsLVxvqh&wu{s z#o$vi7aAG1Px>^uwyPRDH_$|!|6n-+-^&uH$JL2Anb;9fB!wqUY-EH?&WyPN6$RFx z9THZN$U{ZjKR!d}8>-k8o@NN7MP$hoN|~ zQ&#Jxn@o4D91%W=PxR5Gqip={!xW|`mcjW}50%4!T)4T5p>RaY-54M|rwrEj2tOLp zfQYgotts+8->M!AD}*0^w^KSSZ9Fz)G(ig!LD4L4lLDOK*<7fnN*$X!X&8ck*ZZvh zEV>t1&y7GA=ICj{h3#hWs#Xif!L)}3$6i(M@!C3Pd1bwW9t62ZH6-scA#U(Ud_ty4 zgASLCfAaG7JUSwpZGTNtm4-5-O3=vanB@TAG;Iwcp2C4nr7QwLnyYgiYKxjJ#AwfZ zO*4EbT#sV_0W>>zj77C#?8MCpm7P8ll^2a|94lH^t$P=no5oLHx;op<_J+EtY{@%< z+0D;0z^VLGyS!QGma6(D&a3<$h{Zg58PSUQS;-#qL92-ZVmr3Y8phucs9k*v5*X8WB zKL<_1rwl%ulzJ1u`)n7di-Po{#FPVW!r=bUTL5Vd5bNq+TuZ>n^0}Bg3rs5x2LaE$ zQ{=n`L?HUW>}C{VD27B4Mxsclfqo;&QRafVD-GeP_b4jlc}rR-*gj_Oh(!L(l22pA z*&XA!u^!J?x_0h-jOWDs<3l=7$t-H|$F`Q~TSpwGZ&MXk|2~_Rs0}9VBFC~iIu!ol zqZiTSuYiA}xFwDltvyfV)OAL74Az(;?ti+zzH6>P*^8j-3r7suWdfH5@}xhBE!c=v z0bBy@t7*H!$6!07vgJ858P0|JKa4G3_cg<=bUd$N&}^2YMMAVP$nv!J;Hk_9hLXHA zK?P}D^kiJAN_YLe(I{dCg6MT5487Wz_>QVfAJMS_CAkGL7Pe)3xqnjLP2)u4N60^W z0X|UONPLA&aVm?{{Or|7!SH2_8ThVBY?8L&X+e2s*achGmI zoC~#murqsKcdDR_X63Tj*_-@V|jDq*i$GYfVLC>G!cAf|u5 z2?L)u#Mwvw%L)ZNNxhg9#2Cj!keEw{3cU~@B5F_t?&8@}lf*;eNRMk>179x)ri~ago)&?5~SaB3>*y|%G%iQ74f zd7vxwg~?0$eIgfY(m&h+%Pd&ULD%i*S}@^|gGIt0jN))S#Wz-A1Iqhuw5=Uc8(@{`E#%_wz-byN=AL9!Ns)x?rz=l!3^3~2JC3*di+Lo6`W5)Ow zP5u<55uy7$@b$gFx;s$B)qUEZDt}a@75d*7y-;J8^Zb*rX@Z1C5MH4B!LC&kRA<9+ z_Q_WM?Y-krg3vIncBPy(N`^4@E`5oRHUZ=Sv2twZe9iy;b*Ft zZCKOS4%va7e0TrfCxIl|&qE&>i0U6P2)D?ot&Q{(PVuPosX-}0yvKBME(4Bk3#=#6 z{v%0E$`6YYFHzlnGC5*a8!u75B%dfxr78iP|E%9!v_}>*Vn1tWx9P_>JGY6#@~wj8 z#J{DJDB9@-PLS;$Dun=b@H(p;hokiipAp&1@`3w8cfbbBbK`*Kp@FF%A?4!Du@(^_ zQYw26CQsh>)(o4#h;4Lyu|>~&2cp=Y2if{2p}`3G?C_pNFfxqENBT?Gs-R--4m@BLRboI_`?>go7~eqm<(RHkzXT@cIJ>w^%PNdSOFlW} z;^C27b~7oSL5^Md`uIEDf6>+PE@!P(B}v|pmbA+}xqJzTVJbod%*@Z8?HAjra;zrgBhQsrQE7$G z|25a`YhY(E+@rfcy?>GT-2x z$~Xi5C{NO%9d=Ia?HZHIvxz&mK}2-oJ5c4g3>B=U`fAIlpOOb=d)#yL)Sk#52r#l= zzn#}6X~BmP6e=-ptb4Lls<9%*iC)hG7Bl3aHH0PL2eRuEU3O$i-V2HS#`o*@ds zIJya(;%YG8X^UA;XuHf!yfo{8-Z}6i> zFr4lcpk=8OaW~Y6g>m1CHiZjtctg`Ky3FeSoAV`u!4kuegoqK{35jA!tM1aE1@t}x zpr|__)2tP{1O~2TrB;Ib*#Y4~e=uWWDVRpS8yq>{qExdhhC>6xXEgU#VmA$&PJf75 zCq+xtlzWjUsH z&q$?mkSSL_4|$NK{V}vOsrEM+HcgSUQWi~lG~fkw^_HruBdPG0)H@Q;}82L zo1eeXyFc_rTRc;e`@*QilYqyij$aPP1V~Wq%lt{yy)D$a|L13U_EgO)i(|Jr{h$$g zh2C>T&;`EP@mdKJcjb?A-uwNc!vv9vH*a?w2Yn{$A=}pBbDcu$FQRPq)6AuD1B>a?&k<>;IqR^RWWhWA!Su+go&X zsB>EIX@Ss(cHda}KYq!=2Js(H6wY9$ajW4B$OlYhs3?yd-Evzu3y$yHO}Kt%Yqu@s zfLR8)YYgEn?0(mN7!M)MB_B_$nQSG|p z804?_4%QgX$-sp)e7SlDo?j2bS#4J!eRQ(1kH8h5;hf!ex-q4_kXx6D5}|o2TEAUq zUof{*J}94B5c7wK^GE5z3;K%@^F5pvBd)f`j}YTA|EttEW6i2C^EEjKu3Po{*h7W$ z6X092oQ(U0e~SoEKV#pXIB#U)B8&V)byF zoBym@_%YEgJt#*p5I#j=v418;)VV*j5^Lzyy(`_d?@V)D&kYZI4^BHr zSwf8H@d(1BPrDZ*VF03@C^Y4o{^((vFgPs|KP5K%El!Ga*FY6%jGXOz1aUNoG@U-CF%3BQONANaPh z6CknI4C@ACVM62UYg|Uf+?s8aOn=#K|Cus_fo38*r=Xa&$FJ&aM>7g?f=ww?!3`OKyY+2@8Cs z{mcV`v$eT1<`090-hub8iT!6viCq1&TTaZhXBqikMjYo0%y z-`^su`otfQF9b$sCq}%gYnD6TEKkLx9ahTfRcuJ7nvtQ`1M#UuYLg<|7b9sik{f9i+-7F{w#5|j2ycz*{vDcoeM)H=?H4)A{J=f+Kkq5zRE$5dWf8F<=j&3n<#5^0>?UlpaXPg6ZB z{(*@(T;RRHEy zBPqYL`IEZV@SqNboF7*~9RnJT&4i8StpAQ!tB$w_AE)|>exrQyC#C`g<9o?+=-Oy0 zpq-6PtOKu~`Z8)cgrwHNQVA0dAIb?CFbN?xwJ`uf6rSC+u*j2dAQE{So%MKO<8N|5 z&mymNNleBCm~17p2||cV-+zk!bZtDh3lja@)WK#-6299*pIZ`Gcz$&4F#J7n!u<<) z2HyV$`J;i+v5+l?ohdSk7IK-X0EgAbRk?8m#9Xj%_k59z3|qD?2`V3xX%Q?U_798l z>=00F;eNC+{L|Z~2c-JJ5vP1R98nJi*(#q`ftRd-$ti)hM)CJcZPU!4&pd$TWY$Zp zK5)Dex~hC#B4am#)U^DV&DC!O4zc=58#_MIbrJYlT?7Li9@4JgV$voto0$Mw<3X03 z^C~0Pe`Oquoa4*_p9GeYTT6`@FFtY=JB)2uL1tr!O$8tj3+`CE%xFr7PWBZT#60VW z-&Po62~V85)>3Kq4?GF}omopD#&{5b#FC&6C37?%pn9ctarx;5iVuc~ zMHuX8&ycWF0oK8iO8sjtSp^T_O625+(J4OrD+&pP{l57aGjh>%#Nthuz>_ql559|m zq~8a;p9WZHK1x0Q&u$Q}6|OYRHrmy)<1ampIg?40?fl%~6TkgIh$1r7w$sno_;vb0 zIOa6G*;4GdtW4ii>H2FUAa0scEN^4W@uwj-@S&??i{ZpJPo}$~rC|Uvp_Pc5q6OoA z24Gwvc>&}v;7RZldh-w0tkRMMyO~j|u8=2Hr4#0KNGk|ji5Js5F<#!Ea(1+q;ij2) zN;w5_BI8d-wp4Pj$L_pa-FWhsorAXXCS!*X*U0M0QaH!JZ{WSz?!DOYGPFsV6i`d1u67@0!uB`+hkwY6}F~O|ZjWw3PWP!&qz{)fR z)iWu?@mp`#wU6EY)#*}r)M@Ce!JjF@FnZo}DE~b@c%BmrY(1h=W$XP$gJ4EIQSWbB z^ib|y1b8mEfW%s9MYo&sW$agd?|4DYe=8VN>q1-q;tRSm!5jXE!)CKaVnKfVWcr6Q z6Xqn?59T38ww+lw7Uj*Q*0b>|oNlCv+%m{w3Un*08iF(Y^*5N(G2aW3X2UlNHX4Mn z2l}96^`KMMs-nVQ`%+2lk3bC~F}dj2hi*9%lK;i-%d4P)$r8rLkpDmk-MgE7xBt3l zi}zaQ#Lx);wdEu%NPv1k#0$;33j~d|UDx-m34f~Gf!~R{3>GAw%LwXO2t8!(fQj#H zvvj*P!xXM#|C&3M137-QoNwzivFTQSGu8?)#>vHjhm& zbrzQzU=Sw)Vb58$oK&Zn{eZRSQRVn><3IVPL7DA{3Xw9K+}*kT;i4x95?da?jifB0y6x^(Bi$` znP>!j8aKK&quk?KQ{nfDKijwEf11DA8Wf-$na16VQ((IOc``q3nmIy8_|QvGP0guDJ>9u*hQ# zdjBVn*J>nQgPRJCntO{_qDOpy*AeR73SsmNWVf3(G=P_AkUB0PkxykkpPkr#AYGbF zaY|d339bBtv-2LWX`5O|KeJ+P$vGH!2hu_tVpE3;3*Iy2xqqXhT&Vw~_x3drAa_c= zh0==7Y9N7>k;S6y?Wew5nSpp_&vzok&{JVG{^hFAAPsv77U*-6f&A}csT`QYbtgf@ z(Il!s()T4xh<*W=>YW#*^>X`3?*o&xJ`3C;AIqru_xa213G}}(mT=epHZNj`-c!#f zJyfBtM#^rtMU3A}TaUiZ7X9xiQcoCuy92r?U}sgS_R6v5r7RIL<|J@wjtuwC>4r8D zXYSh>yT^Tk^iw=QH}&qicL+4-?-dq1bo&4_fVyxYs`&cGM4-tfYXCK|euLw{59Oj8 zdt>nzMbr>lZRv^PIu{9A8;M?Gh11H0moh@IRB7}IrPuXCHm*BbwfAaghg(0cyRDwD zVg-w1o276@!fLU*0Bs3R5fsS`K?B~WpKd=YhYmG>vXy^-@(Wc z_pVUDht!LRQ!RTQ!cHe1$)yqm>g%`3r=;7)e~XC1Ho?l9ionXW_>$&tV;kZ>tmUkY z${I0$09i(1De*__*4Q!J30?}mGHOr7>%!)n40Pb5@``G(nyral=_dDO-9#MVt&WQWLeZgXH!9No-uD5D=u+zj&j};N%Ec%&| zpWXoIj#m7nYK!O1&sH?4qul|!=B2OY1HG>Gw9sy97fxi%bhD=n8&w>o4aMSg6}Z!L zcq1*59au@6Z*jqn%BAD~73q+|75o2JZG;*0WRSQj=J7kXl;< ztBw6JivT*J6}?&E%3E%@{Xa|Kv@pYq(3XG`q;Q?@sRy(wsVeX$vg5_;sgJbR zyG}&hPVRMMhCe9lmJF+JGyY@|ALeIVxnQf|jUnr{|AAI;nJ=|E7N#?``hKm~M|F0h zkGBzISlKN9PcblF{ByrvfKj3^1z3sq@z;Sb)|;JmQHir$UhbB;EVVgM)*ZKg3ju^7 zu#~gL;6s}G>p3JiAzpNMIq2)1F$=VLaq+N9Sxz??`~3Zwdi>ZFc?;6c1m%6)1qW<9 zmPhIX@2#cDt(SGf{xb8zA^K34I|fhDrz^zSedbzE1+=@%h)ttF{|#Y~pm8I1bx!wI zEWJWCJ>@jpRz4~7HD(&lDrX3PRTs6H4H$9P4doy!5OR&0tI$W>;z`V&uQ9Wjtnk+5 z)%Gbv))Iv@kOOzo)uVp!WnTDKquSdUU~g~0Y8(V1TUShA)zbh%zPbM$`DXqj@|$H( zypBw{&IU!GYhi}#BVPBVNKSsY6j8n?srCBKxj0_ajh^5fl_AiNOv1~@gPi%WO6!6iXP&?=m9HIj$<)*BolaXUwGxoQuP%>{M>{ zZmgn^S;#!P`zP5?gc#+XR6EX@3us7%13`$+UpIzk(GiOhBV+5pgqBbXwajL$UEmkJ zVsbl;wwhXFWFwvCT~1lB0H@afshltta(}c~!N_}1#kD94f~L&4b3+{>PP33nQ~T{T z$@7Jcs$D5tc^DZ)7d*rtRN``Mvi+s}z?M=j`RgCgqEl6#woy$P5u?{rR=5#D_{xO) zwVTwxH_HbHR!_j~boVT9g?0(dX&8w?2SDx05dTr%a1`+$1t9kHmb@dD>NI~m?{&k= z<#xxq7jT|iSv}t-9tX02I~b6$S^Zm~;Vc$_dFRKQF0U6R-dXuw_j{g$s6q~P9@hQwk{;J?Tpww5h*u^ywOC;~DzwP} zSj0a=NSl1$Yt<+g3*}-3(>>koA!u%2kPhne=!tqIhHGK?bqts>-FI!VlC<;J$;N~x z%S}ZMNuI>)l2%N>vX3@K~8!+k)t$&W2;!{{8yWzE!=D z1&V+L$og!|w^3L6CZ^`oA1eKqOHP|dpF9SHJMtHL{14kJV8SL%vVN;~vU`kxKADYB z-p9EslC-kou^v_6?po?Te4j-D9lLA+EVlZ{lmokp@de_xCZ*3%?S~I@n9?fklk^^q{5x6Ciy06kc(0)HReF{b zl0Q6N%QeiTyYJmmehND;jn^2vKec$EZT`-wVXyP6JbEe=D7~(h3BWo) zIaMAl4N?dzp5t$xAm>>+v584{ggC_#n;Plt2y#0TM-9>)oPl>mf}J;bZyG-r4V+TD zJIBu#^IqWRy$kBm3;Fl!{F91U#wJ^5-I=1P1x(gr75BTlTvzmjrAdpJ{t~+HtoeG< zHy&2IHdZiZDCQZ?iMM8W{U>V z%*OxPQ&D}*K!`O2W@5lW8KBuI@bMehQeMv{O-VE1%%xv)!ZQ87wXu|}M6+Y%_;v`^ zc;@f-soO|azMoDHuj`5$&VrI7z1#4k_E8=SH} zOmkv1rmjj^&0-M6ZH1g{&yo6{AJguuYW#seV@HRd2SJwZtm#X;H11BXfiGJ8~iZ=e}K`WmG*>o!l*QRSn=SaEr)3;e0&7+xRoL z3v_q~PK}!KNMCXRLly96B#KmPHBLtG#fy*X$(jQHMrW;Slh0jRAf%SiL<;5@`7_(s za#nO~={vV3yg)X$;l^T&BnqjYbupp&x$epr!VntHEqtUNV^Re3?ZJJT&c@} zMkDorkSb$xZL&5A)Z z*;r$slULhYD?3a;W@CIa>259H(oQ9v66U34J#J%sPZ6)lQa-r18D<|7u2xFxCi^1} zu`b@DI|xJ(i9`!HYOq>Om=}^*hGntbiBoPJUS?EFU9M03rTQ-REn-dKQ_zr2gZW_p z7jWS(_3lDaS`ig^kFE`EFO;UD>wL$S>fmk~3WCW#pIu`~!<44wbZPHO%PO)_ovx-k zQ(t9;N)?`hY2T|kKmNX{9!Wq3QM8ux?Ea_JnNno;H%eTwfhZ)}7s){46HU{ywU`7c zdEXq4SUecZL~8du-q$_5s8#X&1#bg(z-RW{uXK{N)Ydpe9LVNnp<TZ9fioB7vw4v3j6Bq~LHyPJ6wmp= ziQ*!^1O6u9Abo)nWcPbAq90PD^b(E#(NPBFjBuC0V^njzX!Iao!4Uh1n020mc4GJ} zpwDC^j@-TW1s<9nW-P4sqdUa>w}%0zr=~T zfBvLi{s=et$VH?#R`UFu?CbeV^TkZxrj{kg?=G|TjmAA1ejwy6|+4IQznJ%{)Hia36H#=56(CS(EvfM8S zJT-jw=&(Xw;_?c|9{9|wh`0S^_h^nj8^clBWRm>{w)xSo@f+1dAaU?)z-mnPhJ@S* zD!tXn*O^$%>4B-~$u>|6gp{?O2gJ+!bEx^zlS~~ns>x4^D`lYqw$#NMD-;NG5+{39 z^F-79-Xs76{Pl=ncG?Xuxqf8p&0k7 z4_$~HTwWt693XZv3U+=>xPy`xSfcGd4(7lkxgX*$P6y-W~N2dX)4a4BcMIx#%)*^eR(6dG4vY##&YiHcYv-Agehz=gCt~v|TSD zQeppQ*ekz2UBVK5$%@A?3n{tg8*&~&WhZW2>w4do;hrX+O8ziIS87s-ccT_!GC%5(-A>WDmu*>r*;B9l{X{n^&&CUXuO08o4$?dX5J8b?mf)Ra56V+| zn$u-5%>jIv{j<`hvwv^#qne&pN07n^n80X#%X12)={`s4N+^EK=-Yj;g)gL6Q=Ht5 z3=9(A2FsS%;74Xm*2yHPJTXXVTdTqtDJ*epw^&y)LJpNnF3NnB&!QNqi}mGW4ask--~f?&WV6~ zz9d;?Yv31euv-0`*7#{As`m9PeLoQ$=)q`2D)Ea{=xYwnH!i!POzU&2rx1Wx(sH}m zdserKa+)qmUoL~?kA7ah7IJtZm9kK%KLk=}zvK7@KI}Rrwe9qMNaEBAysWHt zoNLZ(dX{c(Q2ex8&S$Dq^o?&0SM8JQ;UB;ziDUorun;weymVqYuSwcii78NT;UL;q zJ%4ZFbB%t_8|=+lR;bKIFKG6i>RWVJuG@Br>}5T1ZV`ddb8}6`*NQ1xDJ!hgIo=;E zeZ#h}=(j_%{#;CCCadCAZ1mO#8FYparPN0OQlYo9n4N#gAg@fB;%FlbWP#6tOy~uB z-&wB8mnj04+#aN+WGN_2fYd@mxY$BZeR2vANgVg)_v6GGj*b_grFiE9z_c7UG)`DP zru0v74JiIQwGz%=#qq)RWP~4hYIXM-2@71Gqu4ZPHD)l|@aUP*D`k+$_Ih=L(doDu zRNvg$O3?q2-0{p0LHpl8C$S?U8>Z&6=008URk?8O*(OWU|n|I5|xEDahU${CUn;dCmNKt`Lxusx;sft#Ixs^jKPtr&OYQjZ@?FoFsskCit&yU&zlQsh>{1s$--G#*Wqm$=wa&m@)odqcHeF`dHwX&M+ z33sHA$s8q*10To^F63SOWVc*>(8q?(j}=~v6*81+^2-i(QhUFN?c%^R>@oW}iBW~< zv|ddzj&MIe`Os9?4QhmC#X7Z{1>v&2xTYyd_WIFEMhW(i_-?*%8Sip^gP;XRR{|rB za}X5JWZ-AMpqjV-D}ceg5u0n#{++FBJ0f08qDI%RK#^~tKZcd+cfp876L6WN4@w-p zu2@(>sLYq+goAmRme7hTJ%vsyNZWRkCrzf(W8HQ%*=Hj*J4{=lh#Re5I;&tct@GPs zXrLzs6!>M;F1QwV`tA&7{65$L*@{8BSVf?AghH;LXRqWkbu2NO zpNxO|7hC<+rFzrGrjxyM1Xg?kkL+OG{ciV^o6)DXGcI`vnA@174o zE<<`Q)gZ9w?%j(1DxL zQiuo7da3%9<*a}{L?{0BcXu;L6a^I6jswNG?jk_QP4U=!;rLoUKgN?PP!Z9@ezh6f zWUps!FDDwS<}}f3{q5k-jVm|`Dd$V8@gskEN0z<@$cpfXJdkc%^np+!!>9WR^OJ=W z(**F;cXvhM(FhPEB0^&7czgz7e3z?X4+HWisrQ)l&0Lthq6tG5X~=OWLTvlj;_knGV83WGE3ewKe+#+{!M9@eT;;0_IMlBxr*h>Z`Lv#CN{NL}6` zTfnxys;T-r^ikuH$Ljob9PdSl9Fcv&^SDZ0Iup59L=Bcv7jIS|Bd(&MTXG8vjT4P@ z*(er4YfRrL`|gCJMRwwY2x?W35#9AM^{q)gDZX}CH;+GzB@`EhqlmMU!4?dbm+Du2!oR_(WIJ=#gn!zh{-=Jk- z$|f_@;3>5X{@akcgGw_ogb5l!=HjXXUw=l#X+q>DCCZ^?!&dRfW-^Hf=cOK;_=Tgw zW}89qV*21)?c8->-p12+T>kHi8Isp4xL?q?+u6@V81@URP%I#yDg)2?s$vji1uxon zF3{kV0PioXDBJ$a#bBC&K0>ld)qA|0f63_Vxk5*upG zxXF3>Ug(*18j9sJDgG$0j3$jI4OJ9iOCX{l`4Tfe5I-Qag6ZZA4*}6mF(Z)QNVUJC z_l4cvM(sD{l{o#1(j@hjsfc8uNFCWPh@1~}>%E~n3U~qx)TEs7caivy>WL~q3SBWk zGiB)GTM*tP)ep^xpb?G^-2Tq3MQB4pkS6!4-tTSSUcVwq|FA8o`5mbOD%lLBqy2Sa zt5jMzrcrBI|0aBbOA^~~>G3G*OAzztGXh0e(O6VzTXMBStb{m1pkvDe|c-=(aPJwqDJXV`2YBI54eH{0E*!wVA?mX0JbSbmkfmZ`kTQjhlOo*PsV1 zlY3hYzk)uEvWq)dB5GTD+}>iTV|PJ+kLKeawq7Zq2FM~WTMpWA8biV&W~stRZ0!un zwDFwq!>A6@%xk?TUCPUf*ehr8s}AlwGnHcX&ES$VE#-ZFPBd$f2AkY^IPCLmraO?a z-VH_nLZ1JjdcC3~pYm4;W;XeLeF)!JHn=8#QmYbPlN9ZL|0V{H&sy8L0j?hSHaw1! zMV=?cp$xz)VcI!G;{E}q{BH)h(MLy|aBf+=yH^0#vWPdkUVwa*B2XY!4eGCzsj+1S>up%Ujr;%!}gv(;C=-Qe1`XgK+?w{>DP$zPf zh;4qgPCIx6dJSl%nub<^`nm*+w4ob2ep(b(vkUP)`4Wf_h>Jxj0v%d0(BDcvBCd%6 zd`ITAby(HQW?Or_6=rapkfbRD(Y(2KGGi{=tI70p`DO?$6K;NAtvfS)=dlV*2Ej^<&y-mGd894Mr^~Nuk zJG%j>pCrjqcx7g#3|sn>?3ucziE#w^dD7pCOJ-sqhG;Q)3lEWzq^pQBIPiDUXR=s$~Ij|N3MW$`k|%ykT_L}Ed@YZUzY6u8f^XTI@wr(voU`{1Btkhi0G34RK}#Q& z2{E;Ii7wu=QQX{}F(OopKyvQYP6?30FZG>dP;9F(V$nticrE7(q0ydKD@6bdPZ z=sJXLIoX!HG0Wmv+yOmNdi@Ajo2!eLo59|U2`DIt=47&sP}OO4>_mI1<>r4Biz8S* z$yW{_DGprY$!i0d3_GoLyCZ{RWb3L#oG`)LIn2Qub&Jj|U{H}+&PeFOoV%$t*uD{<;+(H0G)W;OenkXd64 z%Ux@XAy2l)xIw~;3+jVTc?pfrR7M+py18sk6oG+bWV@2@$H~<0JOI0a2YSS7#(XWy z>M*m|emRF5^GxqO?w>iO_FOJh5x2-kWaoVt$}1CG46?+;H=)K7(|+4!Wjf^B65Nm6 zs2C{F>$(;kV*5(oCK~0oR?FZ`;=6d|M+0`Ig9jW>TTJ*Pe0%30qNZV!=s73tyeoqva_b0FsvCnwK98k= zjlM%H%40xC1EWJY`!z|50%1^FLjFaqNfpA}KjuIy6r}|gu9)*H!RBZbE0>r{vuqG@ z9LeWf@!AiUOZp|53I0J7eHI||Bgn{h+mnifGqDmEQ+?Jr)hSf|k>Ftg*`;~TbO|5U zkFuW6%O^>`pV9o-4EEc&#>Gr(@^p4>IwL7;RVxd%av3V-mmBwQ!V&${%@KSGpfWK= z1d2Nec6f21O7~+^i;kE1@4F8gyZc3_&d3f{4B?_z{#=tZm7^ z3Cb5z(Zc*C4UZv<7v25#>38eJ7_ndP#V%3Fti|AsC#St~3Vd^jQFE)LOQx??+6}=G zA`hWnhx>iNw>aoe&?MNJ&)G)z%VQ!yNpfS-OOZ$ICMP!at2-+Tpk%VP#9`u(|Gv3G zeptc6RNmSDc`$rzP3psZIi(wPnga3ia>fZbBxooM06;qc2m7u5)U-=?9w5Iz&;j4q z=_Zw=(xcRt`ju8B@G{{kKmN3O?)7u8EAi$P)gE{7LfvEkj(*HLC#`DXhF+@Bom!ky>;Fa;6+sa7rVMQpXAj=Y*5y?2qT( zgU7~sLs1_t#0BY*h^~4hg7|!w(O!hCUv4p=npgk zv^~(dA34(c-$lRu6aa%f8Y}_L=;%lyC?>Cr_9y}qo*Ggh-KQo=+qzbEtS^r?CX(ep zO!tuO^R;nY%l+v5(ue&Wqd{t!jLG~?@N)qKR8|JuqSktRW)*r=S3t|Fe{OqvHP=)u}oXbWfrQT`yA@;ve zj9#Nt2yn=8aEWa`|LeWrpLr!UHmIzv0_Uk_!_31D1;LcFxy;|zmjTkpe?Q7O$8Cp_ zlK2R6Yzupmf`H+@k8Syx%gZKp?sj00Me}_-1P+IH&nnRn+|&c5M9mm2CMc>3oC4E} zE*45Io4Fy#PKf0XVuuDB%(~4hrML*e3I@s_ol-9>-J}Z!z_RQxo_|JrD6Q#DkPVAs z6d4f2Kbhg^$BfBe>eX&~$3RkwqL88jFkqZt{tPS@_sZzpUzpb$60$2i`RLfIzkZ$mQ;2i+ZGA|`i|#Q<15FDfae{x2v>viOXKINp08Pno^Oc9{_rJ= zwcdSuvFE$_M{FZNjhvZRr$6a&Di~|k`9+Rg06AGFh`4c1vS9)J~VEdc#MGIblqQ_dU<*B5@Ku3+-6ynu}8b3 zEX%G3Fw3aa(#qfx{;7V;es-E(^2LPT>^1R<7C35Vcgpu$UpCk!D^~&%!Sf)>I{Q>> zk==kP>tAxUYnP&({pAGriTr%j>O?WHs6e7MrE)Ive7BjS87oLcPQ(Y!RKZiA(jA;u zl@924{;4*dGTUUt;qY^t3n-Bao!M1VC3t?&vO)o86TtxlrqCj8YK{dN#&(nY3y^dXA`)gtdI5%U)%Ahr;rw1 z=rV_YZ>N&f`b^#2(AIM3nieglekI2HJk=(POnSl3ZS{cf)R_%5efXL|0yZ|Fsy0sD z{?vZIUwWbUw&v_%wiH5#xOpFe<}qQ~;L+KM;larrIUk6N0Cx4Q)s9B?%K&RV&)l0w z{n^vE+qHuULr!~+qq^9f=8AV`cVnrnF_HYaxY0=vQdbLD+po3#mnwtRr(exJdgws% zOSCcM+i%GJ5!uB}s)_uo zt?BME$K~BC-cst+g7oBfQgHQif<=L*C{ney@|U;cIVV=ALO$8nf*eH~9)Hg%D<(4F z`-d=y2O;mz&M*2Ed!Od|M~W|;H0Xv;TDUO$bx@yX)}vv#dnUm^ZoHiiK(=0af<~RH z&L|$7RJ8@)yzGtGDVIJD+#SY?f%|Z<75k|gH!^_u{Rx^{I1Rfn%F~B_+8Fc#jVIN! z-*COv94YfqW|&uvPsA@#03vDBL(%I~;>@}FH7`8J(*3V-3qU|~r^HI}`D<*H9 z7jFDjN}}ur&wjN3)x6l(Y$V}$e~VZl+xIIo`#lqqt;q?#lI#D@xHEiq0EKn89HQB? zL^)|`t@hS-20&*aIMYPwzYo88j#f6PlQ*1Cw7%}Q2@wqnaD2a+VjNX}XK0)Ak=BuV z6y8fI^FtgTv<1}SrB`BjJ>^CI7+ET`Onfv6)*!TDi8b#YlS*9t{dKue4#a|nf}{UN zt4=xSaTLKr$XlLyv`TN;P5)y&cy(VqZdv{KX|uX$Z9Zs|XKhgN|5!Tfu&ADRjh|h* zyCnq#q+1YJ8l+RY8$^)KT^glB0TJntkd`h136btrl6XI>~)JPxwXL6hpB$N|;;acXs@-JCrXz{Pa7b4JYRxW2V<-!#p5>@g9l|{3nk#yrhH%T+F=e1vlH$TQG*L-um4*eA6QUngu~Z`e6z_nrp2!8Czg8`9u(22 z8jndsSBHt64-bQn=3h|{tmeKs8pHrPVW+^^zs{!+SX9!TDpMuj;7KHz=HTf=0EqrQ z#N+F{{zDF>`NqD`-XrG6alYYg!i!4$rm{=j@%t^4@?e-knSj>Vbu#({g%82C-&Wuk z%kGOw%naPbG3h%ue{dl|a4*^vT|)KorvrwO^Jn!W=WcsA`IvJ*>g<1lUTs&)UP2iJ zbEOghsK7@YDJ1^-;8^{a@z&s*7$xT7C_`E9(g}Oe9s!-?6V;Ct@5{M)_g=oS!GK|R zb0b~Hk=vD9bShNqdvcg)m$!-34>0x9R@1v^I zS(oJN)%JY}knK#PDSh+T%|k|SE+(&)JLG$|sC%u?g~Q*)gqFI8+l;!6L(nX4l&`jF zD=K9ML;K5TK@CRM-E1z-mwfHVa+|o_pY~T4POUJUE<(M=u7o>M5aQ}T@ZSuaFpH%b z8_#0TZ5#sKQf6JDA(YRwvRAUWfrrqut})g~4L`<@M+4rCtPZAXnGY);!!Dw!5u1%% zPEAA|6c1sNV)G`*&s9@vCFiesF%Z<)DiPraZlCNekH-!UC`3is|KVZezYd4d{FWkk zL$WW%B>%C=l{Y)d%mJQ1=5ZL@BYyGnz(4H(FZ+}0-3eBCNc`n5Tr|a@za>UwFkk;h z?Y+Im_vZDdw19b6Dfj8i0z(c>w`)C|o3R6`n;6-~!$!VqW*^9YI!DRB zx`7IOhpy_Xc!Swnxp(jXP)tm8Om#9hq>roI1x);COhz%WHZ20dl*WPKQp;;KF@K6U z0Dsm(!<@X<)9}OmyzPiAnd$6ZDXWbm(t5b%-RGBgl{a%zViP}v*wK*+ETy1N1CzJ? z=YVnae^iBW9g|7ZU12x?&#^6?AFDAy*4h-#G)TphUTCXouT76yA6Zg=`*6Zk-5~*> z;1U_=XrUGT{W#%Fsqd||2m5g=|5pFwyCzJ4w=cSPHKM{y02QqGFg(8nf9Vt#*3-D> z-aahGQo7;nZcBI<&FzkE%deo_lyqKrwh(L$NEkczbLS0I{S?uLW`i-F$$$L#lI|9g zugF{v$Km2AQou>i$u`j#GQ0G%dco-F&CA8YubShJ*{V#mcH+hUv2Bc2)A@C3zRIyM zeMnRQV(%fyv)rb$z5Q#=%u2T+BS2PLZsHWdrJ{)#)IP?wFd1U@nRh^JUwK;Lq|3-|3wo~r28w)B5q z9pAsP(`*a|C5SO<-0hJY0#3i(T1C}oF)}L}U|=q>yb&77J2HLSDAQMFLL&xZ9+2*P zDxHtN{}}Fl2LGSY!lcf8QxX3du5ygbJAF{LhG44_0P2tYmVOUyFO^Z6eEWb>PcA7B zAdNhH`TNsgRObCr+@oj07GD#Y2E!fzl+evmb`b@3__ZGK5BzLW_M4}4L|jhC@o;z2Q3LC`U)Cqi`f`Z8i?aW6y2%i}nW5xB8CK>=>L}sC^p4m7L+|4^?8kNV<(a9}C!Pa?(NV6~MRlX#V=h_trnt1gfL`p_wUP zoA`TX`h5sFXlrxG;qn*X0AMOlnT*!K_8%f#OEN?Ryy3wOkCc<8PCKR%KQa&>Z$6&M zLlu?1cM2CgIvaSIR=Upv*3PB{`EK?517COZpQLgPf%;C zS-^shx#M-GF)M^J4%kWvtDqZ_1Ltr+a!J%Jm;T z`U{PCJ1^jXH9$@AgS&Qt2hD~ePS%PNBIg8Q#!*!fDhxRKC$l^Cv10QVKW#_A)Xyuu zQg^>DvG|g^ODU981?vF`u}KMr4I}z|J;WI=?@>MfOv@%_*AmZfN@mNw^Fw$6H{cu= zAv|yWA#=QV;;G4iG&c0oO$j>790W$8i7c4t3Jilwt_tk zz_5Ba)IN|!}^eFlFkFBOn$9RE^HQ) z#hd-4r9bd@=GW}9hOXx(z-$`uno{2jue(?go_pes1^{N$p0zXWp8acs5vOAWkoi1e zSCKu+X1SOq)y?aF?v-F>gJK->hh0mm-H%gIXI59M$-Taj%vw>T-f5rTv#l>N?~oC5 zrBTKnq?)4p|6odIJ>c_i>Ov)J2Duju-%}1jwVS?UhX$4=!WmM9-wsvcaW^5pp!>ID zv>24s&#K0(r6No~w)?BrVYMgG9L>;i zYE1HT93deJlb!}Q- z?3dcphhl+Opc%~5cNk1|bx?*GkFab5=&x|FV*X;IP55_u&)NpW-|~?|RO+F^ofT6R zY(zK8X&xAe7t|jXxX_4kt!{Jo2TBUvlSfUm2Fg$c#(=1T=B`p_@o(=Ty?icX2(SeO zy-rzo*Sx28zE-@Uxv&(6CM#)6;PCs32(e;>v!_siSA!I;_9<;=@|tkny!D>mzhDph zq;yY}2sCJ)%8=K$zD3vo0QO({O+zH$=Xpb#UL-}9vl;w_G{QeK6$aR&KW5zx2pUHL@=ZP^xkZM7W z)VGx%n&9Mo+Fv%QlZ5(0;jU+GCT*y$_nNIM<}<$vI8ZDtz@J+{D)ctb9r=&;Wy>ie zYY{%W9MggYz~JbZj^cWHU6`?9+ji^6;1o1e7Coy)>rgp~#e2!VL3IwBd82;(dqPOtDG93vUM)~+@U6H@K zved^za6a@1&&Uz2bJ1JS+)Ig+JOcpq;OqmUFcqIo1IlYhiNS~mT;q(AiZZQUG-$R? zZ{At&9i9*X2x0^x$7-e=ggP`ro6SvW0(N4IX)(WL4T!@{Wj*eSb4Ab0RS=nBd;r<#Fn*d zben-2c;-Z{Pepc@l~_IX&+k*M2)`t0eILR4Z$Mq%R`|KFSq68SdyA~ZCLy2JTK1Ka z%zGx_FzxLUS}w_Z+^@F2tXIwBltZ*cSO}cI^geR}hTexu`F5TT#Y_ML9D9p(%)UISCI+#5@1ZjoKnshX@8aM#P8_dx(eQNX^~`AMq0#RW)S=+vgW6Hc>6;$P=84jcUVD;e*w$Ti zf~f=;P1x^WAG!J)z6tm4=iZ6ulsM#5>w~k&zx;$gz0Bni$xu1tu{uFxNoAo00A;~3 zAisid!X4$b^X|@Vj?X#W_$G#Q0C3ZP413YFDFC^0y)LnDtt3Tfa(JTzJ@?>CF(b(eZB-#b2N1&?C|=9Es*I6; zC1k-7Mp-Lxdu&)bjrLjW=)YF);>2p%lMD~jS-U5yIkdzzq#;Zs$%Hkcr!S5Ax^^)6 zo~(7(7#w!PD*m|y~;=LQQ+OPtp7y+z`@(V zo7B5SvRhYL^Zj%BtZ0u6C{T82bofofi?uZCw7QPBa+9&@tLE%{k7~CYJ<3mo7VAO| ztm?dm;kDEI+*%P!S5zSbtMo$Kpd7#@AMe^2nsnKaiO6d8{${76G9uro!3N>S1cSp~ z&~9;k;CzLSwBpn+?heT#S((dGj@yeSQ~Cb5R-(g5aE1p$J??~S_|_5+HbfJ~3CDYo zw!lUG@cvbO`)kK0v{Jb#J3O@VH|r2rmsrR$ZL>i7BZT%}Ihk)Cs?$G}i9D3}|B3++ z!t7S5cVS;Y1S{8lk5f3OTKb;k1?7)}r96@Is+5^Na&109{@Q})IKmBPw}>FrohIuN zS6If@vGr_J{&(v`oqUBBVDLrCk>7r~SzIY?434haamMw3AM!wqNU6XOEqs6|K|ASi zUw^97>3g)E1z>!}Zq#VR?vvq{Vm(+FZ~(`vmxA+9g~<1*af;9q3NBKA9yJz>2^C zydSv+6MS2KsBaX7%NT&Xb7Pq$4QSxxACix5lB$|Bk#`?8OCyUK?WnHEz{$)Ld^kb% z=3I5-HEF`y#BKYuVDr92R45a$K}(jW+SJ%*1Jxu{jp5{;1OWcd#ExtEiuJ%mEM!$5 z_^h_QFJP{;-oeyd!UEJO;8d*4n{+^&Bhx#f(ei|6h)wsQqIn~X8lmY+bZ#RndcvFb zY5!T7l(Z;F(aVvN zX=ihUM=?SH?Yh$hjjNk3wr4+g?_3WWA9$3oX*2Jc0Wuq$8d|bh*q}LdZT$F16FRtn zhHx`-SG~Iwe63bu+R#a;Eq*t8p6i=4yv#UlrNfRr>j4n zmTC+CRQ_BKWp_>`Y*t+Nk`T@4-s;spclmX11k@~G-QhQ>Hl&W5yspfuc_a{U&2PWHgit~20kVL!OE}@V#ORTClYvn#(8omS= z#0a?(tXb0Odn5;aZh3Enyz3ejKnx^5hVt`{iMMTLwVkVT-Ype8Lb30J5+ei+2pf0} z_Jpg6#!sH5YDM+!M+r~^+KLRelJ~}`uU%}NY|h{2 z1iX0Fvlwrg_A2pG==G+TR{3?~gUD0@3HCIEBcKW~4IQtr-QzgN>mc@GJKDL9yWN(j zhj+L}RzrZrRs~_98LgMj32o-C%U!BBe8&mNGZ&@$5|n@ygr8P36d+#^ ztyK|}f5VFr!UQn2cctYqni?Wn&>svoem}gIzRJ;21Z(jsB&^E*-kPI#$NiQ2=$wD) zY)j|S0UUc_gc(N-HCnqS7F8nqCVRaG}B>Uz*RhnH8C)KvUg z1|5jc&q~fc;v_w`r#GSb{YqY!FE0+9U#>$l^MbP)a#ee6(?6(=4RUtcX_;kfC_)2ihrrK)oG;9=r!{CedySae_N1Wb|OS z0JA5Wot`HwubrvWy(TMGFS)94$H&BLRD_h+p6B--IL>K`lAoTf2phR|Pe@~4O<+ji z%V7iaBcmbA?*v-aP9M`XV)Cd^bd5(1fnAvd9n*ZyTY{QDvX&EZ*8w?)G#!1;iM(Uk z1l&MjRwL+{MN!2=x$akJXGs3HNtz6i1C~hr5zRcuwi4g2C+&mk8(3!S4>+ph%5gQn+&9-tRfIkU5<{`OpCY!XO2GrRV&)8=Qb5KjEN2()hUCB=X z2!K(>M2&%?X|Qk*QFMlqCSw)fR>*7Xz~d!+t?gcHI!R;Ux8wOwCa-ZLaP34U-_xh! z0s{uXLiaG|<0Q7X7^l>bR1!!zm0_GKg|Kk*gE*pX+aeo@SyXDUd z;07C(%93G9fAP@KlfzE;Zwu#hFEYRQtiMP|a-lc+z!egF5B_6P_xn(gl-=YM^f-vN zvb39uEk@ZZ+&uyy&%Nqjxz%OyX!>h7R9$qQJKBs-Hyi%R6bwSPBTg&H@IjvAfmGY} zp7GEWj69lX{E`tW;9dT8{ZVDg!`4M2O84lRAa&u3h_-yv4yn8GG7m7 zQ_;{l!*VX>+O8z1{4SJ6j1C5Ld$@<0Ji4!Noz+^uVuSB0Se4dz{!SLpi>(m@zDH7> z2ynmYhgbhq<$MT$$jE?IK2e0%s#~pm0%>y<*WGaR{)OGMnuWpfcZ>^+g5uY+WP<2O z`;J1xmZMPmwGX~~YHQ935gei5kG2P*P6<(++|LY8afV(us!*}^(k4qUJaY`=JTE4V z+w8Is6yjP@Ymx@jzG@;>_i^o>^A1#?ej!kns}qQ z+{wTqoeWdX6ASFO#jSk^Ham4R34YMsV3^w+f)vbS-tuS1+TU7hteYsK@uh}!muv@&Bd3`LJQl6cnhIhO~YMV51gx?Z%B27P4E{VzoSpmT!w@)kJJRf3$Ap=C_2rd%c}g zR~{l(a&h~(n9*#9Y#Hoit!#MEb-KdLg&(oq#3UDy>gr~e2wR==>)uEHbs74li&U#S zqW*8NYjcoK5wUU|x@6|$2~MXJaFr0|xqZDKqbhB1Odpp zH9ok8%p+*+_VTsEJw_lS!+Goj)}%k}+0osdP}vyW{v}v3mI80@uPsW~ zez5lkfkTFV3jVn`4fUWMiBVqO428IMuCb$>8qab^zntk^}WGiKfiqfAwI3 z_E}8C(Q@Kb$alQU=kK%T(t;l;?4V(TZ?)@rQ8-R+c9m#Bdq|HE-^?FqK0Ce4s*KBT zG6Ujg(Kmi|@85n*E;{QdZn??a+~iL1>*w*8dI!J%^rMT22^?t>n2g#H|I|%G!nFK} zpm+?=YoZkMXj(AK1hlDLmGn?Er#0gJlK0|LB0p>yM*NyKe+$vB&D_9dtBJt7K-7vc z<5r#Kb}X)s()vw7+q)8pJOyji@GK8n2i;5y`5@FK51~@H>py>d;7)(e8(`#hX#DHh z*$LllvqxqiHG~Xo;=uS1B?V3Fx``=MCuV6-M(pajsx{C>mui9D*2IMFS=wlV$Lx?t z8;W$8_AZ?v5bA$WQVG7TcGfgzS~H`U`EoOt(Wu#v0oT3-pDhdvJ8Vm{I*!Ub#9bqn z+kYI2LzKGDw!q6OfTkyOU=ZUvqC0+t4&{&Dnm?ky8Y%5EJFPpo)L2+5YiSfFtC-AI zI@HT2f`PA@&Ph-r?&U>2JQ=oU^8@Be`NIBM?|!N&-Esd)M>s&wPS-c(nX0qIbqssJKQ)1P0Lz?z#qVaykejFDq1-HWf54L|2`|PK+!OU~l z$435}YM-ZsPzj%J;%F^rn~mnwe|J>`)Z0{g;Q?TVH@Hmd@4bZ%l*hmOwN<3UOl-Tu zasAF++X5f;9I2GVYvY%!hChneQkVT)d6#q3Bpj16jUjACQr7r&{}=qVBoZU=^Xn+) zt_L}D%XuyvOD~oLoOu}U|JBp8TN3Yp!uJl}uC>#xt!A)fxNc$-Wi~0H6;d?@tV<0X zFUX^vU4$otURH2GoT7oJM>u{%ojp>wWo5&qDUP&yu5c&+k3nL-wsey#YSQKsDwp;;q|YNp@}UU*jQ-ch@K-zd>k z3nw2Vl#vFzJ3wi!L1mcD!0aMrq}N^Z+j*}urE(tQ3Nx#F_!o(_A4%X&)23#Pr-_O# zSp~M<;ZN4rY9F>4Iu16G6s^jX@l9N;Jpr#bG@R|3yDT6{a=!#9w!fc|%(l0i)a$tG=E}tiw0+yp8-tMIf|! zdpL7dIq;}{I8;0;m+QGWZn&V1p|(fZ3Ze2QZP0 zs)DS(|Kfo;Rx`OG=ouR%D~oR@V5KxfgRi13n{I&932KO*Vt&qrvQI`g9nuOQ(ESXi z2fmIq)Ip;u6fqR_1yko@TGz=^@L5QYa{L}Xm$&%bU7k;mcwZHHbyja5w)CoN`P`Rk zN*9N7I+nG!FSEQ;DAd8rNKq+T-srg4?nv0~AlN?TkdO&aZ2Whj>Ky{5r<*L3FJw>H z6@KBQ@VDj>BTfInu#VCOkdW)-R$BX3`pQ(|Yw6gE`T)ImM@*v3`p40(!l0E+&+1FR z$)KGo9pqOInS*7fxKgGdtCwQ{tJd(NBhF%Zp1=+PdQ&ogiSe5+-k}ZXzGwm5Lz811 zY4|qv&kqZNknavXNpkp#Pk5*?AP?GXnq&zd25t2P8G6*iXka=A$C}!MU32+eVue!< z=bsI|S24S>$W$&T-jq4IJp25*b?n*h8~v>psmBG3PTZwyb@8D;-$+<0ZdL3w9eLaw z6mv84qj5~IR-;BGCr<2Qk95tba1_qV@CNHI9u@MA^t{Nk!Tw@c z*_*f4fks=L=bFhZ`x}HSm3)_5mGrJ)$H7`_#wBFia`+QPvEp2ue!+T$YFK4~3H|Xtfze20a zMmn*T!Y5fT@wmjJoe>zVij)+a`Unt?-ZAdSVv?skAs(X%*TDNmN1xj8}WC|bJUw3jJaKW^{TjR>36iWvt^Z63!oEj#)16Ox?-{Y?v7%6RZIjfg$ zop)?n*UlFY;xpA7C@VdQkv&qESXQsT4^JGB^bREJ5>L|#Hcr%yd3P*GpUXB5PuZps z6hPx&Ir%Aa-$|Dsdmbp$TFJ~+u#UUplB;EbK|ydsCiS!oGtFs4^;|tG6Oy@qeZL*Z zpJTzq71L$XzOD8xmNeMZ9h4_!dEfcyfHP5{6idp&Y`NIN0?ts9oZP zFTcC3zfJypRCpe|Hp>QeKv(R{%)tx$%2#q`?Hx#h*2P5A6V!*z@K}j|D&a&3jYD@` z`AT_7_xxVUJ1|PV$xfh)zigxjyJYH`ObRs?mqTLIU%AzrqrA~%I8CeYbAx~NB<=;v zyzzot34(_f4r$KW~8y7q6(m67) z^{%Y2vGiCH7*Ad=eB$Fm!6`njF>TE|>$%dHzy$I$&GBx_@259h&fqPEDvv$$8QuQa=CiO-b$$Nth2Dpjh-}oD4F>95mtyfo2f48 zfWtJ0A2Rr>^vuz@Vcm*>ov|3w7;QM-{5G>YT+Wk9>D2u109x{TSAxZ@Q8tGXH|a~`UC3M%Z{bxL=@2 z;vl<9L~f$plWf3Oul2d}uleW?b2LbG<08_Q%fud&>3yh9m5Znu|5y*76cyZ{Km4?l)6opVu6*usmZOq!H0d;aE1fo&YZg8uoE+H6 zoRI}%9q@Z#_r4*C$mJZ{hsM}tlqES4I6>lvmISAxi;g!( z&Yr(BYrs)>LyjE3a1^-C!iAB-usFTN4msw0anyiS3Al3Wry=Rk5@;H_?_{$PJL$i8 zjqYKAWBL7DjY8gt+%G^@w`96GJ&S41^+ z>xXUeq3d+K6fd(f6$D<=vmaZ&pw1$3h(}Po(M0XUMiyka2wj5=a{jO??1(4FaQY9d z#5h0yB<*&12U~zK7?Jz-3n^jP+rTofFCUj9f78T97H<)wT?^5VlDM7Q+K@6R_3#R_ zQ$|w3W>4j(5_|e4-2Z&MS662-&e!p7>WJd^QloCfs7lriny4-Pn2tIBXRI%MnZX0` zBOo$gQFalH1@dhh^O~seXDQqDPw=kQl`_!{%cuO`)#z(1qE)tA1Kz!tTdBx5eDo%2 zXjpL%>gr!E9yw`kNYm>*tA;x9b}@K=DyD%3Tshjj_~rkVKcXl`6~KKsZ=0+qa^DVJY4*iAe^OhQS@s*owh*x0cE=aSexM>gwu{f4Jk@ikWS+q6l>Z$j>LaC|%l8 z&qNurH0-A@*YW1j1rrEj?FJKIelLzQz$njDFlvE16?wIx#r;+RhOc4XxOMNhizV9c zgao22Wn-1FzOUbU6NG0$ebdopUS3<<49j6K>-H!|xuAJ8-&594B)wI&lT<0|a1;Mn zM^3ETd-_`SCrSn9K`<0kU40>rn3bDws+J}bJX?LRjMaV=EUt4h@~Ft}y9_ z^rZm0Us)x;SRJ%zw!wJsroTTzHLVCuW8Pp(4PQs-vi*~7xwLi)UgwwHIw@fDW z$gO;PmHppw%sx;G`2IM=UGmeJPe`f3+-|$?!D4}FlY4=An{R#u>L*_pIb-l~*nE3H zy|~9Zi~`ZR62wJ{xJ41riISsX;u9y(irBDQec(0A_;Df3Fk6%T89mSVA*tZ!n3J$A zX7VGXr0+g4=;QjjKaQ`H!}n;Fe*WtHhY#;Sc9}e=9+CP}Uhx%|oCz1XH&;!S#;!rC zSE5crC+bEFqB8XIyiBT0M6x0AbYi0pm?P+ssyj6lEVBkqeuA9cg6g+4Fvd$F%q|)g z(BMqU6BOjX)yNiIn3G+APH&02FB|vJ}r`%B8{(h>kh_Ttj1%G@e>IHoN)zYZtt^UsfM>h!b6diMo%$^WU*- zY8m<@rT6HlcN9(;&fUEn-P=<F4igJwAAI~bHsPI!X#>!29YfC^3c44)r2-pX?R87lKD^#1tyJ{#u^0TL{M-y4vkd{R(fqHpa&WAEOM?JL zPj=$wli^cFq*?|q#eb#^W?OR|#Ige->p>FU+f3~0nM@LXhi;Z@}at z{GIyt(3~d63gy*!FO7X1p(?|}!)B2D_?JfA?{H%CTAZdGbKp0)0&esCOL=eCXfUrY zZldO8JpU+|zJJkhwh_`ShRk_|_PxrVBhdTPM&mh)#WR$`+^Jb>+bxg^e#GZ1)Vc4? z1t85et-c4erbW*l&6IR^z4`Y-Ah^#%An0moHScV$6gM!LOPqjsajRs4kJl&qy z0p&API_81mA%a!UEMgl1FI?!5xbsGRx$uV;Y65Gc+^C_p?2g`mh$Id-2;IR#1 z+mte6h+QAL71{Pwsn&8VweJf)-v^M#vNU_s>wWR%C@hZ1241R}lltx+WNK&q=TF#| z%BEIsM=MA(!MEHFAt}AcO^lhUB^!Ggs3fNXH7X-END~MH>11!gto6@#XP$99!qZxkNY8&<1ZueGerj@BtUVo%@O z;>RySb4MoNEY1vFLbpl~98n1M7xn3|5{>M4%8UW}=lcsnQb(}qWz4*|d*b5!vzULo zQ(M@r(&54C_@OnIy@L|))#s}>LUFjy-zq87@4cr6G|B@XuX<;$&%@Ddv)^lzA|wD+ zfcLwddY%0DT}3?%=NK0ZU0iQ?P8h#EE5@fMb7s%Qx_2-upK$5IpPjLAlEt#yL-|d5B#%!97@ycf zL6fI?^T-;UqCI+#PRqF)lD}xRj4c<|N66u^*L7#T{a8DyVQc9pbs;cTwc9-|0gHb` zE}JGl-Mb#$JFy4&K}=;409Gp@mel)8sw_?mFX19iCjPP32m0r z=ntJ{(4Khzg<3od!kU1Ker>uFC-%pK!23$9DPGkPT9OKcM_Dny#8F_kuf1|=ywNWy zcyj^K=Fq17kZZYib3&)yA4-iRFSLuWw7MxU_ZgAg03-y^R9Mu8w!6GDVO-I&eK^~q zVRk-OIyD=2M_o;LQRV82&8*CqkBh}jC1jRAVV~;Y5B;2pX~`-zzKf_CBbP)&NY+dS zP9aeoHzBxmK!mYft48-Ue=Ii`Z|pb<#5pNNk%E7%&4=8R!}Itu=*52HraRPy?a`g&Fc%-eJW$Nz0O>DtYHojN2?;w3r&KVIXRA zX%``g&t8Xvz^OEEo24ujb6=)*A&~Kr0c46Oi)6A9jP9z4H6nq}20)=dqL%^ynpd27KfuEAXDV@T+kv}SKTkv9{*x$aSR_u-H!(BZ8PBS zS5UbO{>iOGIfmhE2iCl01xO?tTzVN!i!3^*es{1-%7h0qUG9a3mW&?&-GRTvmGfeZ zEc-s<3Zh}R&^L{uC!gC4qXW$^W}-}7I8+3m1cj~OnEyWig$qeUxwBEU#> zWeS!HNxH201Bw9KK=~1XA7TB0%4_x@X7sggx1Q>=`J0IN2`fR1wqHJ&;~!`cH;MEY z0Uy0}7^FR^F*VF0hxz>{6se+go%B&|_QygiH_Vr|TSQAdL;8xC92sMI38TR13w_~a z&gYi(Q2ukfM$?bfn5ff?uKAg_pa9qXk;JFn*RyK5|9KMq*(uEx{dOto^N`oZCd8Hj zar!zsSrzW%Z*iJ|^C|Rp=g-iSTyi3*^W+tItqcyqmY3$s16R{u%}tS;VqGNQY^yHq zgL-#Ts%`9nWAdh%iibG`u9=<#PzT{3Xh*YxmUu$38xtO1S!HQ|(`=&9kI_m`%%A$PvDen%FPZbkxR?Tmn&saNdH#qLafTq@Ih zDp_T4fQ|Qw&5xIEDq<+jwfw^CzD@-FR8A)pYP-_v<5hQIlK2J4{B$oI7zQ~n9SYR& zCHc+Hr0V+@)b=hZ@fTe>6h=$qhaPtX2|yaN_u$IW>qIh0E5AwEkH?@ruN!9A80IlZ zSvQj0$^%D`KcE$$E6Hc+)n*~T4cWFvF91F|{lrxH`p``5*m z#`t}NU*2=yZeh0iYxa?1ya;elodPx9PyX{KawtwwI$G^`MZ)-}g^J8W^q0zv@>f{y zNOBo~#qM$TODqnY<_5Li63QSwmVB^r&{7o(TBgFlott0=Y8JBs^&dqwp;DlQ+*!&; zT10d@ah2mpCW!E_Rf4!C!;OW!@QuNRL$GsTx47-JZ8LE^*Ku-*P(#s__oXHHGRgoQmkr>S| zA7$-KRQ>^8pxHV8?{{2`MRlj7SE0x5Rrt|ry<<`cUrhq5ZMZVMkN$FAEGq8QUfe-~ z8o49oZN(_$$1Q}I_ItE{3&v~7%J_z(%$;$WI)MID+6}_;vv@+=nR?cbEc`bK#XE3H zDKyQ&qJ|+<{DrU^DiwI%>&y9-KNE2q+@VQJm$!IQ*|`GvRdGx2T0t!8H~sItC09bK{tEJ_;zOOKFtph~_XHs5L7W)Ky1ig+6G95dJ4P(#E1lrL;ZqISpq^Kfuyw5g& zeYbBCJxZZk@Xrr?*7el&TqwUwnwY7C=fqeTp`3s#96 z8Fq^fpjVR$OoxGh#^gzZ2pqamCDQn{m6&wvBq%w3qVw$R!|R;+kf=kTY0g{^O1q*9IT}JpK$Rbz;0~A zD&LB87@rBx6S|#`MU~IE3;5auJ7k8z@*IAB#9#?1Thq2+ps05UVTvYVQQIP z8=(1Z0sN-J)cHY|6t2Drk;geA_FG`R9R7#D&~{_VFgJI$+&fNqDVkZv|ilFw_+i z=6wcs_aDdc8~DHuF1JS`!arLJ06s_8n$*G(>WYSEVUKllt;wuZyI)FBr~C`cs{16F z7lfsb7g-=XV4q>`pavWd#T*bSz+ve(xX;gY^#2mpSdY(9<_GlvzMi(@`$A!$BmBH3 zn`SXD{tR_L(QATw%L%i)zm$I7 zTq=GK-`!RnzP%E&I3xzc}KW>evbi`zuJdLs4y0k4T zqV1b29M)pV_-ul7f=8{Q*Ys_m91FR=x?nf)hHoT6oxV6rAmwKVP3z~A4aY``~01K&M`wkEx# zxxKxyY%#5N&=JiyKS2RSb)<;SyyzX&xIL=m%C90|1ufSPFiOyyk&1uxY?83vf%HoQ zCf(pK*(qX~e7H@IEUIsmewIbqYaA4~E*|2hyLgR*D&A4|KagmQjfEcxbO&{-a+_p% zkNI!+nCpmjLP3hs}iP3ld&6>V$+)@@>jG7QS0gZIOnKm+Wr7lIXvC-`b zYu)!?_`0lbU9PKkCy|<6t-;~#kG{Re)A-TZ3c;+-hiuN*+NOnDhLK!hWJ76V^9;m3 z`sF2WeS5X!w$3Q-kt|)x%}c+Ig5}19Kt=#h9P?K1+K~I2%b-TAml)5JPhvAMjka}e z#JJh>sFz2wjs(&8$xv!`z&as6Fb{}Mh$qs(-e4YsWi)_xy^fO%TSSb#Uiwx=Efd5JkDw+B4LQP9!RA3^~jJy>d@0w+85 z30^9D25XEBti%lxhE@VV_Bw!|0xIkz$JBPC#KThsDU6sdwKDm8$dLZ@us*_25a6^J z-TXzbba8zythDmZeHI?FeWZtC?3XE3&$4N{RH`BEe5$h|orAN!O7fVP?~?iZ38BZD z>|@NDoX-agjRn3Q+^|D_YK+j>`|;k6?xZ>9IwD%(K?h*IcH>_w={))5mq}Zld!yh> za7N*Hci$0ww0j}?YH^-<6kG^QxaWO(?Ig>-(XvRwhoeO0+M3cL9p=8$y0C;tx2^Cs9fGvHx52r> zBL6Yt5rHl0NsIi?sHkXN`PXx!WrLtYtBZXnHc9h^GL*S4htcme?rl1_^ofjBp z1wx2_BS75~hu!sDanFK@(WLSgKqfw9Sc@?lyHX7;8HmQGvFSrkwtxxCu%= z{ezES7`$@B8q~yb$1nrXXG7C+7;lbMB5{`HEc!DP*4pfbNKHu*3Rd6I^A?#>RK)}Z zquhbzXnv~|OrUG_g#)l4a?MtM`Lvc%C$`>kY?Su;J&}G0sz5Q$ErW3}>WM8h_9<9S zAAD$=pGD7*114$L!Oz5T`FuyRX9`3%SthQ}wR*(*R9pfc zQ~-XZk19~E@(EFV+P`%CH%k9bv#RoLc|bYNHb4BeSK?61ApY5@9?TIb_R>vo|&szv7|dG zGjtoo>cT^xXFeghPH7i%yXKd?5K)iFZM7r^q8<{(?-YK)$Pp>b&MsuI(}|5F8QxaE zqr;#kR`!=CjPpuQ77X5W7I0t}^g;OnUP99EqeREqCU=m~?KzGJ3d4_8gzU?Ykq@ss zZ%XJLp8FqLNt*JLtRF9iW8k^50}fUNgb0%I#poS;bxe11MIkE52dbA`!{h-6B$ zVkW0l#IpCtI{*GeJ&Yew?dkI5lcK*>PycqvUNUpWJb)U5Br5@4h`2eMRE!z zzC69JlL03-jo(bUL46Pj>(9|%STKTy#-`8|I^$*|1(jW!{ z{i_#mbc_lM^kM#(GRqr%IApKr%@>~N{{onM^ED!((*3&o6w6pJdzhvK@au4``T*%^ z0Y=YQte?ZSSz(kFkcV9)aj`~s5^J_jq0%$_P!{1@#{XgKt)rs)!tdc37`nT=q`Q$u zx*u@PwSM&%YjI=lIrqeK_p|qYbnnr& zS)y;KmRLIH-;Bnw=75TcT?NpH!*;;Hm-J7aEVkdE1q719#QW%NI){WeN?=Ny4T3wo zO&j_fL>SMV%n^?L?)+fT3d2f@*{C#Gq4P z;@M6Wf23k5bVJd{KN|$y#TdDlK?9i3q~lQZX)U^C6H$PC2&%83;2ju-deQr<{l`GHfz*LG z!zZvW-cz+ukMG}ib$KWj4A@{PAJNzxK9_H3-agNAVWU9>EN~-bc)&!wdqhIxm{9v$ zZd1j}*2&OobmYPQrkkh;(JC#gW7y ziVn%b3a^jH7N4UuGlZIB2g%DC;&kc6S$Ho|34{05A|(IC&K=VEtAYB_lZ$6{1Le&B zxZID4Ci-cU@Ujve(~7!}f2z*-F`{Thh9BI9jK>l}iJ)^D@)~7B=ZBA zfSwmt;#cwwF3Cf=q+^u3RHhs0qu~=2J=4q$J#i^admfGQn#)JmdUPl%ahN)EfCqIS z-4%gNf20cEMOzD)Za5^@l9HY}hj~uYK8VS*%`wcbk(GP&eT-GW$8)hpp4ex$eKz}^ zrTZ>?|BZw21sZE6nro`Nptd;+@!*bTte~J8^shjbHoHE^8@7fz> z3JUG`6lQi0C*SqD4j_bpbPa!$t%;rJ^1H^LH*!y?H124rd|Q*wsgg7F-#|0pop{BI zbCg?N*UdwJl55@%U;?AelO5j99iPcaFW%}I6HREFA!}73CbOh-W(TcGNT@Iv9E+e4Dh-UYBY z{}A8LX1>Yv+5@tddhY_WqMyVNLy8E7#HGkW`04S)1Ar|*l`qt)o=6ZOL+NOGpR7VrcrRd>6DSI@JSa2;*%=%3~RFf?8bz+~4;3`IEzCqR*c1 zA3kQY_ECBZWV652;n+2?zK||k0J8-Jb94%eob^A&j7rNKtUlz@8IjHfy*D)Hn|_jd zb#3~7QZoxIVvElY`jqlb;@y?mXS{~-wO#y=m644%H7b%p;ijQf1?vE6#MTX?MZU#S zN&-*1`|6fXvI>w1`zj8Ip?r3+GII-&K0R6Q=`nt(S6^`|I$C0V>W+B_)&6ohMBxm; z=u)*$K%^7E;&u(BAZ3=@Dj7p*k%JV0jH5h&8#(?ZPD3e%(!)cv1)hE8t!7#<16Il! z-6xg4Q`QEerAASiEw?yY9L!c(0N4%L{nK@xCRmH4>u|2tKJM}B9SUcm=Qgd1C+Wn}1wYBMV{D`ADI{ zT9~hE8UG_3jqu_&@`-{B#`^oop34$mD?b;kP=;(_Dj^e{2$vfcXR2WRBdU24cRK^x z`>Q^Zo^K>t$@<|B~&OR%^UtYyT1nvi=l^4AC%Tf#wT(re6g4`=Ro4& z{j+kC^g4(NwWcQJ9bD%ELFp_U?MvZy4JGNo0HYi4+3qQ*=gWgmzDg4)HGvEu2OM6C{+wnQV%HMl<#A7z zaNqzG931_A(o^uth6kjxU7%F4lw^&e-`4_SF3+8MGSxtV*$IMwJAiBV-FQ)uczNF& z-#Xji-xf4LHohWp%xonr5<>^ls8-=w9=!!#6fW2AZ3hRdqBDQ8rJMZ5fqgSp;`Z$|FPw}=PFtv!%JsWkt#6wd1FFm z0@uqES~Z!)d$=*7o5T)u7EiMyx>N&H|n8OVF{hnm{<_kIx?>*N8H+_6wIGa>ZG`w5zc@{GaW$%LP zxM`7gWMD@pRnts0eV6?l5!UVX{QCm(cha>pjZ2@%%;KVA@OC?*Hfbj27RLz5WuL<+ z)d_zwtoGlrQT;1ZW(9axP|Pzh^%O_X7Cr78D)(Ltn1GqfXKSC$5R6fEE@5j=3b@+- z*=#&XTyW^WL-Ajpdoa*p^p(c%NObmwY^I8$qTh47lJPP#o2TugeCgCIJl!97^NSy3 zOjJlA^*Iq0w|cA{K}~I_;o0y#bmDuVS1=wUDbpR^moveqkQ{-?{yG_EX6G&%ioFDo z6oAs)DNJ@W{B6qB7=GMI+Qzp~Q;YEq#?Yr5@1$!Wux-eLa$aKlLvuXt$d(Z^Gw~0e zX6%MfNlMpf*brS9F$D`%eNZ&;C~2SrjFivM-&_g^bXy)j?WKAWLEp(li!57z@6;VY zCrke-1|6_!Rpu%R#>Rb7m%71?g$Scpi|bS~0})6!PS%Tb5yI`O4d((< z)7N}|fILcQc|-N~+%m22t(c*2;)#R5ot!c|z!)$~Om)dZ1R&LoTb6qP#hoa+NSU$I z>q!HmeSP|72n(o>%wLXdUw)QAte@F*>&*uzckzf&eB>PEMp|07i zERYUfD4c+tWO`|xCLQ?NA`J;gn=RXpx_XUaji9Cg3M#$zVwpU}B?}=8R4H>k zgM80ru;4`)hh(A?!AxiNR0`K|TLw*c!tf^hU*2)@hN|wBsk;@ot<&lhg$5JUp0Bkd z1bt%9@{L8CJjeLn89&4Y+#3n`IZuGAOt4!>56bPvDySESC*3p^XXo%9Xe;f;u))x; z9!84p=iC->^Z?VK!OR~_@`MFuXxi`wTq7)4p#>{QloKp+h&nmdk~Xb+sE=e|rj5_7F{dMUW23yg-H77mniZ!MQU$o^vxmMxBU<`;8O{3LI!W zF)NA3+^P12USFu&v4cJxUf&D!Z`^u72z*pET-rBa;PRE&Lp`bhtta%LXZ3dLvoUex z!VI#C7+B0N?iu`Ok(g-Kj94G~EE~$|`$>bT9&5wIfyINgu_Y(7EN-{@wAhZE1-6>t!c`C?YSt>hw6PVK z|4`@3&Q~6v<2llhGNi8i#i!!QKyv>PsRThpH4zc^8uKyULBu6m*~)q^ zZp7)O=H$6UO|hG^zO(C9eY6Jdd^ubBJ zW=z^p#|;Fr;0TRnRUvKWWqw|U7Zw`?oaLT;xlqXtT+gRsYmf^0SBp~gL}`3dCW}|H zEjWbr`AM-aOVG|V@$PU`jHL`lI)b$MLLj|zSa#C$9Ur-H=Dm>8QPI7J^(MTyr8Osl znvV>CGIK%N{Gf^oX~{dG$w%8Oby{k^m`>rdeYHTg1gWV@)4CATXyPDi5Gxt^ z?>POp7QOf~GRJp?-l%()sC%a*;%7kEF^dpLhsz+%DcsE6Gh#_%K8mwVz4y|uJ89}N zZ@(FZ=+Wxj;>H@1F-|5KP2Kq=r7bgm=SsS z-Zi{%EF1fk*|~(ZXKRvJNKaJ$Z$dxaiOD;GDgO5s$jOQFF340)<%1rAR7oUnQ(x(` zp*pv6d$&1G8D1!eNvcj9s;-@9f$uo+#BAVik9ST z=Lcevr*{B-8`!f!?`!x)Q zGL|ViicC5^F11<$@!lZNAf7~}st_?@iEF?XZK|z$JfPs+BFX zWP3APgW73{-Ymt~7Ue5NQ44IyNDprly!2R>ZKcVC&B03=)CSznZA!Xy8%3>wPPuGB z_<>12xra#bD;Sc<&Pdv8OaA*lH1?;>YCf6t znm_I=r8vXHp7Za$??vNsd$PM!Wq9X|?-oV0BMfJI2^)XVdgK|eFA^xIQ5T*kM3bFQ zN?#H@tQO4NGh1zmuGDK+&gg^dar^@tka;kdN)R259uWN6ITn>iHIp)lFJgi*`g_FYSqTf_pNzD*1jtWw|7LV+w}VdiY~vXN!}{G zU60`>M1IK+vPLJ8QPkzj%UCl^T3bf-LQ+Ca(Vi_oe9&UpBUdXavceTCGtjO+UeQG$ zl6$v9R|jVdP0*d^8L9H`V$^u5Qv20|JI*?LV(jk{?niIOPY^?K*US`zy1WR`Hg~K-N`(TJahOM5A7Zg zE*`ZZFcxL-#yi1QD1%6pNn(3b$(gQhiO30JS=(;oj472-7)Qt&eL#tM!MYweAORx$94B4cB|-P2ZvsHKwRBZ`*D) z=yQBr+IYaG8T_SG_FB+(;?**eBT0ZK`Uk_=n@UHm8egp0%xAk;DaBg3)uitz*Q&Gi zt_f6aL)gvBlif)-O+FI&e5Y{})mpx_jNPh{b`q9!;Jl|VZa6&1U4q&9m4WAew4j6V zd8xUOjFNza?*z9?(f+lAhn|%==MRNB(%KX&5%_r0(v#X-8Z1~E!y5%3%ZWWj4rphw zsWWUx&U1NbCUU3WlGRQ_GHYO9PppI2vw!vuS<0;@9jA3Iq8CSxNx%A8(xP4H&z_TC zr5cBzEw~oYk{G^@{El19bLxreDR^Ksi$ohKMLO~Mt2Wz!1Cq(%? z6){JZj`JSo=>s(*>;*?91;_YR_Z|yH-@dLv`-Gl`z|Vu+Ge}BF96o`O zLeU;-i(q^)kqMV``ZHBk2$t9@o&w9CyxbodqdzMhC3%L@wEO&F&1yixi|=2UaIRLz zWe4AV1HrFRVX?R}oILtdg!IvZgA29lHd z%6id9a+X-VGw=s)G~7QbT-ONADsj(tU6!!_#5t)R5ieT4)n`V*XQ zgbV7-f0>EfOQl!h9<`mOHxyTBoLDEdEwgmc2l@t{_Go^;PR<&;QX1G+SdHt!c`$sA z48)wCP*DkOL%G##`1FVtiCI@L3g;#cc&@9iW}AH4$xjbCO-D#|R}RfYA#y)9p;>N& zhoVqxvFm=(;xuR;acLFOZCcCu^Zl?+2gpqOM)G5Pj*LV`xdV7&hY0GeClrWphCc zFR6E^`Wbv6GE+)4syGLc-3+%B=(t6^2|lPyXQ*uM#3B0K$LKLg0bKQLcRXub3E}4L z!??|vKj+(L(Xi7FGKmv>JOZ{Z-!#m*k|fE4y(xgz*2h~n@>Uj;F>H*hg98^}5(We8 z!VfELt_RRiM1@c(uOoew0F$`Dv~Cm6-*12MuK@gAvf>sqxvyxpL%E zFMHCsOrC75Gqm;tLYuA_wO3YRYIIMbc7ti$?a^iL$I?IiNMXW`%0^TJnfUE93Hn}G zp+wU@w}!xh8oy%2{s4zZAzU+AVWr8rQwXaUV1K;Fl#>i^w5iS{g$r0(yUshldvBpb zsdLp5qCj8BxFMY?vVeaEFj|K2zR5y9I)K{O0L~+2@dxx>f&h~mjkv%djWd9Pn(X;A zKuGE1P>Zf=Y1+|xf7iov@${Ay&9Iv^K-10DMq$RAyyyn#@)%1H=3N4)g{LH%BGmf< zL1TCKjWWPh#_{;6QVEVg+QIzT-JyQ<(mob~ZXXIGRxlyUJHy|ee3w=fnJg{@~@1ZpOqNi*Ahg1Oj zOC@4hrY_1?w8Y<{TX29Y;?dV#j4jV30g%D4m3A}`+JfQF#iHw2-7eiEccZ^NKXL@} zL!kY{ZPd`{`Z@Ls6l!VvoHxvlnHTD(=JDcc3 zg_(}-%Qg1i*E~W#S3xEnC{Du37L)tL83zHbxJW3mP2 zu2*L~8NYR<&)b#uNTWF90+%3_vVgM4ENyiRv?Bh?XL|=ow@!sdR+W*Ig|3l2J~%W* zI$`G~4_G)p>`#|{03cNjju13vz)!p3av7*Fuj9EttzaB*KKNk+8v2evxDy!zQC-IP zC0#yHA#ian+6+tYxo+T)uH`)_@NP2-+xGG17(-ysq7zVT{8ZjgIYi3h#*Lxx=>n>d z<&nKSM@QXB5MHbNSK>VPDaHS+17HqR18HPdRh=Qd6j0k*Pn6?*Fy&qAn%~&@b7TrV_emPiw0JupgmI8T zU5D@|^8+q^BnnISzkVR=b7OS6j5VFwm5Txx3U@M$p|FW%=N_sB5P`<-7rI_yCZ*S^ znZQBOhA3dwcn@6h+VN@1!NNxy$NlT_H+z!koUC;k56|Ri2S0QZNZ%vB%x6HcWTO;A zOC2jmDY8Jh0`MnAPFDZXX>w2j-}X2tgcd$_A1<4Zzyv8tp!*DInB;g!>+J%H*(211 zyG-H%@T<7uji)azJdWz$`ANDIq7{dTQ7|O4a&+y}ghLY3F-p&3fs+^D? zU+Cz=-c+JO84)5KM5#DZpsE9^xXh^F=-%PILUi2Na&>8CTzYz?p@fnJIYme_8fiWg zUgqK1i|>PP(`Yq#g+Qx{S>k6k*qK)3^z<85TnC1hal9QP1ciTd+BOL}jpfV3@;s)M zhZXKngLF^}o!7g6T|Ygq#i4SHli+^AIjfRvwc@n>6`fyzl+_=Flf<7t zS?$O>wL5md7wwfi?YwM^e|1k47-&t3v}vu(oF(R2?Y9-fGJ4WN?7B5_1VJ^cQBNhB z&dB1o5!-m=EsdzT4+fM5<2z?ryneq}TvRgH!#Y7b&bD{jp3%p&^BY?P-PkGU%<|3d zyT6KW+1Q#&pF-Hfy)v=!{Hi&>leXKxtN$^pjEB`;YeuLrBU7 zAQN#vIp%np-hXfOc{~7GnCr0VP;2gFwOh)>n+p>FoVCTtl~wG*+Ei zfHsn`>EeplC4m9H=|!O#SK+o~uSt2oD#LoiqD8dA6SgqsRcyMrg`T}A5Jck0vxS&Ixt1-!9|y|s z=63>=SBagNq9FzJhL|!^MlYx%lpt&2F*GS|T(`*%+sXK$m;+oE+^YR+P46u$--Imo z0tFccKvJAHXtWt|Im8__XFnE;FS8g&=Pf{PYoQkFoM_|kZGo{|IuuaSuC~|HH|-Dp zype-k5FIFd7gVpz+RH)XhdX}T@vk0ndM7TpDM6hcw_l66G*THKbouSC0Tlji5I5e= z>1P>&T7%}(3ThC;u8tH*(?v#+RoKKVf6!2#;<$@|)b`8Ol#nM04g7^XbM5yQTx=mW z2m!@UUrH0$q_@C}7Cm?Y2y=vIXk7I_Avnap&U1!}LdJ|Dj1Hhi*(OBwjqhLt+ew0d ze{E?|qkEDblfU0C4Z(oLFG$VVo_)HsOCv&*6i%S^IoZ+Rx3%;GbeMO7n4GbQ(a)v{ zyW(4BNm9J4KZu0h!Kbs4P1AolYm5D|F)3IdHxb4=>#D+D>Bv|l1rvUW30x_R6`rE} z{jRS{g&QlChpi$YN%(GhgMWl!g9R~++io>i88ds1bK@@`=1&pu2lPP5)X+KI0do6MV=tasq+ce)$&29GW10+z7=i%HhLB)7dZ4ZqeTyTAA9O{BF zFC$Y$VIQ7M@0HY4k8z`v)wl@V7iuaPduQN4WIr7%Sjc(psMO=fE49Xj)D4oFOVL2J z$xdPq)UUwYNdyvfTAvI@1nM-_zI)ajtaWu@aTS~S@xOsuhPC_GEZkS301qPXd~>oY z-o({IxS_L4z$jJY>qZuO<L_kS2M1v^ax&rU2uAv=42kkvEcZczsF-XI=W(;y_AA zXGA9btA-%p2jrqDp(BJYSJS^QX@O)bMKJvSr09zHh7ln)@EqOBN#s_0Nb5`v2a{(_TP3jVAi$s|mGR-StgGhR($Jdntk4r53B)neVwk`ZIr` zFlCmZ47FxMi>ZG#$*d}x-rq);89;xJOe&O1Mc6_!0c@A%%L&fy`l zU8EU;Omjn9k-Y|2by2ZjvaxED_ zLdEI(^TZp0I<_~y!O)XaK!elXv+>JpDD-tac4Ff&XM8M9Ym#;kZg+urb3x`l+J$A z1l&5`ElKWdKXwf+A~6K5W2fik8mfqO8Pk$WK_4w+O{tiFe}Q3&i>)bH8`pO6!-MesGGSe zgtBgPew;^pU!qBVhgztkW0+S;8dKmdrf`EKP@}K~rFzP#e|b|3q)mh;({yqw_caO} zeoP+sP@c0Jk8*tQ(x8vOuRP=@ zqU0!J{C!G!m}#S>#lW?+IQARS`S+#rWgf^hqQR6yenDE^^3-7(vQ9TVR6s9+P>gwm|3%0!ohMdd&IppL(_!+Na z4j1J$bR@%*9$%S+wSG>z@CQA+yNDBru_C3&SUeKxflqc`V@Z0>6UXvPOiGcDeLmDY zOS>!uOABQ2MOd(w1BJAE_oi~0tOA+Rbe_uuGiPpPh4SYw|OOT~}ly6J9HaZ{HS6M)2O*IL%uxsZ`5WDCvFp=FFTMGhb11 zPl4H|Zo6E4!~p=lxUVAv8F*n*2p)cN@W|b@U24R)y_N&)%8BrvQZOOXzm3LSIYd8Y|7i75O%V5^QfE-LclwZ$1iUJfGHAiu;% z8~qnstHc|%3?OdV$$}?RL=imh;Ua7gEDyG*>gdmS4z0FH?H0H21Th@w#O4;J&gvqh z^BZIXn?44`JYbFJv^~y>^8oZY-{rNh?vKog{V0)XT9zb3+{16}xGW#qR-e&Bx-mh) zR^%Pu)t8VvuOS;6^1oN|24zSWPD}Pf9|$_BL4A9*)5_HqX;tjA>*Br(2qy{}Hm{GY zJ0&;L&HN~I55tX$Fgj6r%_eo6T9s83Za|eNOHET=GRq1C12|d}(vBt5=Uy{GxD6V3 z-87y!2N@8``Gww@Z<9`PkCF$}IITj&#FIZS;KU-OUli-W^#40F&dUn|Au<0ypmAE@ zJlg-Dad$tzE5O_S&;LN<-}HW{mg?cw*LP4giI9-QPhpC_U@S>22_uOyG}6|Vm-&%9 z{?;v9$`YHd6+#GMKsT8kc!|zM(pu??=7YwJU5A?JHPo`K@x*q$GZV1dl9d%U{Mg+( zdwP5D_P76p9No^r!RXfLv0FRr4hK2Bz~ya!S^O9Q7me$^R#bue;&$Wc``j_j^!HC? zeiBAV`kIqy!)_m}c!b$e_q@3>c44MJdvI9!dm65Lg^rnX>H3tdJ1tu*wLe69`X!tsLwuwOaoTp2dCqAw6sxaPJ{#Z}&{kR*8+d&U z?95!p912Dy^}>8cf@`oACXFHb@$-sFS7s`YFL0VK-YV*Kf7u}2C~9SRMWSTYkB>YP z*4i)E9#lXPq}SA=ezwf$MGE5|f*F2w#J;Qzd(4IU;@>|#ABF`l-+Vl3ic$2Gdd=ag z+k~Xq{_r+$n3XS@O#EZbRr{(_tVbdiqG7|9wnDT!fi*RYLPtl(?9`M@LqmgytE&tr zCudq(8skPyO^twhv7>X`~xlws| zcxY#CF7xocqXY0FKH?xEA&J|kYj1C#U0>&Rm+9Mc`3hy{N;1wip zVfj5bHw}YH{GOdvGBhwCcXV{rHaFiC^zro-<>caeZET#UKUTM`dxG}DIziRlUq2=; zuH?_3_iXI!slSN`3AGFjDTs)OVzTI%n3x14B-DQY{@vW%%;-*^%$GsU!Q3S_dVk+O zOF%&I#=tkhxjdwaY@k9bCnpUxXSMFeM%j1o z-d$kP@9*!YB`4ED&K7+{%5d8K0EO~u%lQMr;Haq*q^;KqIV4$%QxVfR>+>e?Pza6}DO1p^^n$dE{Siy6& zzhCtCuXT*;$i@b(pr9ZcT8N&m?rS~0jJsIIKx|dUavohCeQp`EpZa`+>LRod>6w|C z6oQ9`hf=J^AU{904Nz@mWwMvmAdkh@Ib0;bQNyJ~Q$yng3yb0w<(j0VWYDUxsHn1J zf##QRMnOJ4Szlk@loWvg`YLH9Cmxmv8>P##@;vTpVozNs*uM&sMZ{Vn6Y^-;=gO91qkhP{c>Bj zgH6U>w%FfCS|B+A-q_@^TZ!*h=G$OZxA%p7IBSTrlDnajYHo#wG|WN6{ixi;?^`2l znj~vDj6>UhKxC8AmLBSNrBQAu#ja)CeAkEV5={*3KbbQ$L&+w{W{3ALx~MD6^LN`O z!Ur;dzan};y}pBH;-4fY;9x?4&yG;G`hObO@qs`XX8(^>QW{t#rT<$ctLGk%&Oo)kn9BB?rlQYsVr6CB*!jHS*# zD}O)(K|d~#kFLZ|f1RZyV8LsGO6q`#fJwNle$?_>=E%A#X7 z;Pmgn!@%9g6VcuLj{A`^22xBvk;}79;ghm=>EF^cRppAb&tUcG?@f4QxLuBZ_;J(Kg z84uizoj?J;s{%`8G_CWT(U1vJP0~tWe^{RlD@=cjipGaWj$6UzDi@tHJ0*k!lrlwoDXL`e`o}4&*Th9*G0lIVlVfD0tGO~O@y(;)H0iN+HeSXO`!Tc}pKn~;; zW4UJK-1wi&5=w83K)K@{-JK&<$uqPS9@z^~BR;7*WR^Z$`YAVH7a#IYz4?Hmy89UH z{N{K$gTKhV#d$s!2+bs)t#>RnY6NTS1bh<(INf=};S0pJOtYYRAAiYUNBrLb66y=T zvSBSlI}}qWq#DjtruqE(O}1{-fHmYh3dtsMg|Rn*UrUdli7O;lJALfjXu^t88;JJ) zPNmpR34rTwo*xD7it52Wy@I8@$4%ai9On;WehDZe#ScchM_%)dLpvReYQ58m zyh&pRMB~&mWET^`WxbDiVNuWqe7MMoun+NRhtEJfy$5o+M*?ryB0lro$R>>^Id2O^ zIMb(WM9{M)q0C?Z3$^Y~-s7i6F41@UxEWc)?{8ilMbg|=As4tE<6vV~!_GGQn{B7) z0mTpz5i#-fbeXChP=PotHC66kDhG-X>S7j22{P^UkpULQw1R^AHO0Qx7l`kvL|ml1 zq|1#nAd&{~AdpxBn z2Uce`ZtjY?Io<4+{$3*V<`&b_eW5$ERXPlUIA)XC0MyEQ=7X~o!f5p?S2Pu{k&y@3 zuq6OUG}Rl9qUe#Xj0=i?NA3y~bWa`Z^kpIbIV`H-gzFt4+(kbBYl*|)>qvPAY#?JnRt9k=+ zpn%W7j!|vE&c;>@Bn8;;LFs+{!)$;|NYrtyGmFcptq_WX^--}qP?F~UDF}%glAf0K z;*19`xyfa-uZ{D^i=SpCvFO)rfpr9r8FJDR{x=-52m;`5BHkxP*GJD!k5@ZC2$ldF zm2bda48d_k(AF%FOmJ(~Km#Nw!wOaA6u*Y5npvSio4-FoD$f8#72((K-^E6M{nGt_ z(}a6Qi?C6lSwQ{v@&#f~&WpW$Ha)+9azAu5i$hsiU_*MV7p(UUA;oOQ z#bq*mdipgI^}0k5O#d?yoG$y~;*Y8@0)uL5RuYtD?BhFnCc-5+V8X<@LEB%42GZBk zk}e2(5dI$YB1v6nwA4@w<6iCthS=k8ygsHQ$vxH#6_h}E*AbR~U(W|Sg$y`zQt>=l4U)yjX zkd@3IpU7n@$!mQ3`8yGHLK3#S7d4?BK>AUOjz1bi#}fq@sj%~Dah+^ai2G^`csY_| zfanAea)*Xq8T15oA+X{VhIIK}TJMnm4Ydkp{)J~1s%D!W0p$wAi90?R39l0kd9~c* zb!?yz#_G{n&He{!M{f|p0C_hZoTb*lSI!m@ zk>fWa#tLID{0u^)oiS%5eUESk4kR?G-E3A*c-LWz+|=0kCKcK9mAF(2fqVq&am*k2 zvC+}lCcBw(QO^i%jWc(2O|D4FFCIq3nVSkI|Xb~Hn=AxR0aTZ;dDSYOoUcW z-$b>)U-y&b>v*u@iJ-S4-dtC)^`}V zwkaFMi1JL$a##kdnTM^Ijv=)O5}?eDDKrG!nRal1t1B-M1vUnrzS%qh(kyR;^~JPk zdp|mT4Xgtlwe~^8HvBP{X)7$lrVB{U_NLK&Tt93rmX#NQ0a>}u#0E%)R0&#$u9Td- zfJA^Bzv_ooOit+Nr2_0U;Z!3?Fd+9-l@hw}@_R_sPfJWZL5}he#8uOM1$4AC22k+n z+RKWr-om=C%w{B~Zn-m>ukDb3^1{0OZ>yQHpp)Z8dbbhw)M0Tf8Ts^UGQ+l`X{@8B zP&;%U+)!s}1Ot>15_M^e&98D+WSI;)mRUyn873Q~9(;W9h^r=;i9;0qC_YytlM=DI zA(^Wk-ZP&V6eGKmY(Pn$%t>Zx7M=(9-==#*D=Ok1Md8uTF#5L$pdc4qI+w^s|9F@g zNGCTV{))@6MJ<%@%sK#P7o`@;kINQ>^dX5)Cd4+50O9LM${#W<`>cej28Wk|>3{#u zW*V!GZ@SK;t7A0=3zq}gZ?{J3ptB-J$NG{i^Q@g@Myf3R%fP<_RZrq51a$p#?Czp8 zwr5aESa2?N)G?g@gP&0|=<+WIv}5Q(Pmy7uVOl>hW8=);4PMy$XvKQ`m5I;q-Qscm zCVrN<8Z@O%)ygU`+1mP6A2V}OuSrRTr<>J2`seQ*>YN9pX4dAjKPHwMfsNFSbDJ5^ z(gq}auFrzG7M!Ntyvpe#Lq>cUnDJ$=c$mKFE(By@gb1an^Wn?S5!aocF7PrLu{+eY z?sld$VH8O43yn5)y#022_9p~~kt9CW*P8Zxl@YQO@cbKNNfMO7iEtxjS@0cH5h;I?c*^&ePb^BQ@l>Z53AAM7w39AEC5~HEr48NlZ}#@4GJ;rz+X* z_7v*m4|95;1_<92# z)&IrUS3a{3z)5xg6JH;7p*36m_FeC&`JR1(><1zzx6LjB(^(J9sv+=(XX4qm)GowW zj-^Lo1|_DpZgqY;V&wi2o44b8zi7hF-Qe)9@fCTD%((1$_}9!qH96r)TI;?2xyPX0 zlX}1PgYUOM9q8N#_`4kU>IVQL2aH$XJ@++8GPr(20|W9*`MT0wCcEEy^mY|RbZdV5 zi5J-P^yE>cFSxQiwyhoqXj1qu9IhU<<#e^iQF%8uEDR+I{awzaQ2aSWN%8xRs``ho zQsOdfvHVp0Q?7GE!{Si6h-CA5T|%ovr}_G!r+ByZ`XP~c-M90`uG`qI=k~lFyWs?? zam%v($2pdYW|LDZY$TaXG9vX*S`YaP9n>|ggov)eXuC^}(r(n(tqtt*PCXqpd8e2$ z%l1kE{uGy6nfCBR+^@!rw@9wznnBhbWT;Y1k18k=0f8x}HC(6y7)Z5{Ff1XVp=}gx zk+bbr9W4nzCV1Cc?NvXbkWiXzzZ4JlPk+>ED#+p&ElZURg+OGI0elFN!Cz@&1R(u} zMWs!RdpBIZzo}6ziR_*<;ZEEYSJ+Za^#+?g^5*@$#RJiw_k_{nenj9vc3wKCqHtb* ztY13RJEmmsKjeQ$aMb;_gom+68kZ4-Dyzs0;~{uAP>^G@!^iz$=Q7@sc;WE9S9ecd zee*W>=Apz3rUc7+2M4Zb z4O~f_Sm=~=9A9os=u2_yH0RHOiVuRAV?N!Y$*48owdW;xU^mVnCb(cX zU-lova4GyFlyw4{CIZhYlLmE+oHxVnc!tO&tZ%o>J4mFOE-Q{;${pVInwDgl^vz1B z|DL^%6z`>^KSRuit5r+7wb@uyi?4a9PraY+rY=Y#l~Z3zJ}P{=vza-u@jn^57X31D zA=XT%glBl>g{c%E^&QKFMZ)R!h*um=w(FHN--?fZWD{Kg)q`$jZoKG~{@3MyE;pT> z)>cZizOHE8HWwJ0?^4n|bR7lMlLq!oUuqkg?vUl2SBT;ZK zJ{egK3qr`3?#H|WKHVPQT?ibOmy;sMAcW8o&ZbEjf6YJM6_5CFCD!bXaIL#^uUHZp zT$%7>GbzB59o@y2GV$3Ss_2P4hFKS;Sn@HXEzHJ}xG#qnakGmo4C9a3e=lxo{MptM zvbT8u!%HI6lJT+KF|+78H?4ng^1#F?(J5@%QGMn8us9z2Q9$YnI1B=k8EKVTPa^o~ zdv~*j=Or?iIJ`7LNyHp}P0Sbs^NNw1P!@%RjB+d@JNvs7)n=hM{#>!&yUZ3RPB?j-~I{*4MRtIkPATl_d47G(Un_oDx`BpC6&W%14V_VU8ZzZ(R# z!OeLzHoL=7`+;}AzdG6(nM*)IvbulB^HtBZMV>SWdL`91p!8dfZi^d z>)5OJ8A9rDE*qbzIX8piG4^UshpTIl>OHqW!HzpYwd>F zR1-r_$p2mN`3v=8Z2jRqhDbx*2wi>N0I($&`@73YH$a zN5dd>t+uljKb@}=yMkI55hf4F@E~X)*-iB)-t3-}9Fu@kLjOYxar}|nsfFDj2zj7! zQUuSWA}v=VRs;U#&z8USjjoSs6Vd;=BGx3-IS%CtZ_s(0Q2gaf-R+XO=Q<&;{GnYo zN7EO6%rZ5CYQufk4SKy)UY)FJ$T&_Ku~_CZ3tztf_uNWAbvC$s_25Del@-O(umivN zuSCUVLzyfVB#yQR2j$l<;&nQq={}O&_pQQ5S%3#xkNvi`zxCX* zPe}p%}A)RAdPbjSYt{4|%Jh>X*>U07E9ZqOjWlQ-3M# z&4D=LR%@_0tJ=e@w{~-0;ni4OiI%D67UX$t=qDFwfnP)z8Otf%{@;><**}}q-n~^y zvkq5sX!4f`3i3ZxqPXmz6@yjxa4UiKzI00)Y^KD9;|z*`4=`4oCN^|_05^C(A%2JY zuVw4ukJ(`lw0D6H{9@BW3~sklWX#LQ56msR_(AH2YPjEtk%fjW$wlrOU%IaYChe$5 z9xTlbMXa`33LpPn4-bTSt^5$mbw92(#YnxrXIJi}7F@@Rcs692em&rxG9H$rPI~9= zPaSN#%{hn)tl1HvnU4(T!M`-fP==$QV`G=m`$pu${o)CHW{1|ZdColjP1e&4|259z zx0|pK`(o~!BSX7^VC~tPq=p8~g%-3V*kc&aib&|>8>hQ>6jxMjzw_6B-@qg@Bxip9 zY=Ov7wD6Q++I^Q<@JG>VW_h^dR;|8v%r9SSr$y}_Oc$B9mOnhsdTM#uBs@?ot6722 zt%8LCJXcl(I69vzz%(|&ml&dOiNS=q&aJKSq2?$Q$3nXZ{(f7M;YqkT2xxVmP_3`= zWh++r1FVOH`R7yIw^#DjAKn|?<)~I|E<3>1Z*t)a{#f$nfH^O4V_t#V3BktoopR{I z2|y=a4T>iY-rA14 zXFKAMEPW7Rc!x)k1B>M&#gIM!Dw+cK`oZ8@l2GHg@?i&_D$iSpXl@)D2K*kr@L>#- zyf@#4RBvLBg|qQW^Sjy6=>$z+T@v5`<)m&IZHTv^z%-W;Pg=Gql-Vr=DN=x6RDbmT zu||Eye*|kizB=MrjQL`KUCn)ylKz!GUiw90*oL6c^XyH;a`r7cFkZD%WF>83LeH$8 zkH>$Wb)tj&?kcLUX_auv3AXBm%J3!C`{|Y`p5sjr?dXbT-@gE6@`dK}H`~5t${4td zxRLF)1O<)e$z%Bo#y5iY#qFI&irtS_Z$@?1UZ_*-bQwCrLQD`_f+dzdNZ|ofXz=Ws zyP>~9C}^VBkedn=9^+#>7-DphVvc=8ei?W*TC%4{8>=>98;P(AtiIz z>YABAwPQlXAawKxd;S~y|3}i5$3yk~?>h{}K6W9-o~_8f4nlUa6lIsP6WNy;`yNu( zvc!idTlTFHLb65nJtEn6!>s~YWo^#&s=RD{AejeD|$HD*)C5P2&cNF#m z-`nQDwVGf^^}+3kvW^^dZLKuMjr|vgTp-I* zXyQ{*_?POa*oHKFJZr8tM^cW#MZUwQ?OiAOZ`yN)ULBl-pW0cwJ|&bX`zpqK^9(Z| zfsQ7VM~bh-4+op6w9g^@i1GcllkW%IS7cVbMZS{{e!wJhNo;;!Uxs4MbT!X zm8nR?nn|Q8qWMcNrb&70{#;u{Z2=kzfB}ddkKb{3{}u6N&1RHt1%8cqWcr+)9TlmEAQc}uNrr&GS=@X}Ftu@=HlB_kB%|V0jrwAj85pWWwPyc7*Y=bec-d zmOCzC=NUoMBL=+R0Q>3GZrf=UIfErRHKI)F34Zq*XAu59%$6uZe0BocxbtkOPI;G5 zQ#*NzdFXyiG(wfAbDHV2{Jbmm9^UziC1A1h?(qk)`{Rh{clE5KOSK1OkI8$kQm4yW zDadpHR*$=uM8#+2j}z!)@TW6Rjce75-kV{7bOP^fA3k|=s}@w{~B?NVb$#uIg< z$KoRrav+G05Y(tDt0B_43Fanf-s(d7DLSk@< zDGy3z;sc`J$Q&1aT0+%~J9bb0Qkiqfgg#3~)W zi6)06YH4A`W!3kLa*NXi&I^)p1QAc*)F!0E@*23>W8bcmU7CJ$O@A9Mq`!W?SIB`< zgGWb9QXmZW&)jidrtOP*XO0FLP_+HUmCnwkG&@0J`1d+%hcGM>aV%>f&KDxuhjIzo zw`D!RR9~Y`gs{GxS^9=bPeEOmM%niH`kX|k6e(FvMU%H~#EdGn{Zt7{t_-qr&vGH=u|77`+jj^Whfyfr(hJn!7qI!T>y@KRMvcZT<4`3RsAX^)tuO+{l0l7 z8j6lsJD+oyo9p$OCA!>5KVC9=ctHVP-5s&l!O$p3V42Gx#HFy9iGVAu5E^l{t!hnJ zO7QZCX9m>ZQ2TS|?JojQT*7ty&v=5oK@t=l{@_e;lm=zDM)3obL-~2*Z$|2?Gu*VcX5o~Jg|Z1ELzr*;t3-49hV>c&jYk@ zMnO2{lZR3UYL>u`E50#afWD5v#kWRKvvST=1Yd3Fz6Jm8keSmJPe|j=!e!qDkoWpJ z0#bOTBav}W^sp|q1LyI`7(-9^MtKj+7>@yJ-GV^|<{o7>?q#mp0QQ5u4}Z7l0fmZv zmXUyzA9&2$?3{JCOpqH`e)VX@C4Bw^9noipxaw(@&v_5X&Gx`pyTgdJbdN)MQ2r@! zc>+~~QwUd>31i$Yv6xS_jvqQ~h|tR>_R_gmEG8?rn6c%(QVb+Gk_jqCXpwmP{nQZI zn27L+(_>^|uv| zMu`j^g6PDKB-@Mf*LVMmg4K5SZ{{8-x~xJ`1+_n5i>?ZSm^y!GhxdIPTT0Q zUg*b$4#IZ4MkTjP3AYp%MBe{b{iZ*1w?+J>dGhpDfy6HY(`wYC z+!pSB664wD82JMngBBje@y&MlMCn^Wkcd=i@)wo+G2^@fYfr{4$;q5g~s&UhkD8K(QLU7_2w&PA?im`a|~hcQkJ9)<)}R4B_O_FG8$_* zS>Om$ZtE+=B;}d0?l^!GdzFFlk4NM!NyGE&x}<%{HDaqKVl@f^zY!w$;L|gnhYz-Y zYaSHH=*G}N)k;fh^91+)P>}shW~f5k7?pF-8Mv0a>ElfB&$h5TJN7-DMAg;a$<`+? zFK>QW)iqxp!A|OsPA0I3GsGI$pl<;v zCg%kg+oN`H)!WAjJ+CBi8Y-Li!e> zCg8OLDrLL2Ur3r9;677Bodhb)(O|AMl3tmc^J+RdLe;iRkLCq#-K;;DlQE>FAR0uq z+Dv`L!uM_J6Ghejb#I(TykzlxVrlL|&08G=|)Y`0iPy~x7y(6FU>CQf*Q5|I-Rb$7*4(}*9H15t1t_%TKqHcj`2Zn z4g_>FS-^E#T#`pw$^Sc&aOb6sO$Lyb8c*19s3L?a;`P{BWM5;!hlfXd#sJMFuJbq+p5%vRLMe3tR`mhf^^n>d$>uVb&V;0{$J9@SSinK=LZm$4nw_5M zWf`RR);H6VWs;Dtc?j}gdFRSI-wF9|tC9&)Mq8$EsM=&Tq`R0vE5&)C-2DE1IaoQ1 z#XAmg-OG8JXS)9GFW-Te$$v<0MkP^0yolNjDz7g2l6>1IeZI>j{RT|rKol>^Xoq)s zkG6Z#3`ufD9@8W`5Wo*Ba#oA*9>q}C+5#NreB6Z(5g3%RuEpidBis5~FSEA-C0CT- z@3aq0kDcgOKIzvikbTfeAt(HV#Ec)HA|*@P#- zx+q_VBNB?6Z|L-{c3A}!apc17?PtrUhJ*LER3_G`Sk3cyKA># zk%bRm6bsy|fXM$Sc)ZH8{ITEK7aW#F9x)GkZu}C}qYq-`KT^Tpm&U^LHt#3wJn`A& zfo8w)hjr=Sw@S?rYLzwP-#xake;pR1M}prR`O8VYYLJIBt1*@O7v$8NMb*ZX_ybA2 z!TC#rUq~TSN=Gnfl7uriM`&*KPq>=Yo<3NvYVVsf_su;j(7ein#vp&=N)BK07(vw% z^9pZ7D%q&=f1}9uS|wVoVQ@H`O;DO7eZSr?iDYojIAc=eT=Hz<-?_^}2F~%cD9?si z^YrfZ-wh8`rBm+_e%Sg%ye(i5h`J%8eZ=w#RmJC^cB4N7@^m7(d$?{@UPph9gB-A5 ze~-$0&+CC}6QA*ssAoU1r6c~mL3#giEF;w3{mf|NM17a zt;x<_+WG1F7%BdDeuPH)ZC=>J8?*VXYxhSevVCIFZ{;39Qf@4Jf$+Nj_DohvIcT)&6w9 zw%n*h6vIL2e+Hu@{;hf+Pi%h(l%#;~oqUde`h2;5!QG1S!<^PEdnHq$!mmP1%a3DB zzYYFHN|gDI5r}BCyBd@K>;BA5#=dk_niAt}>s3i1tp2p6`&tzJ{SCjRbTz=TZ`_FDb}U@_(GTBSLDHEUq7nhU$9Sun)!dJ zcnST|9afM^AyNI|KW5mf>>k-`85yT^=ly(^v>%*{W0gL;TGAa>tt zDuIc6^*VecUA2ua=;rfcci6J&0!C(Cqg4wqx61O1sQ{6e_-DOq%wB-qQ zzV$?JoHs-=!oNA_sTo&nIGg+JsCVthZ0N43!U%}fUWQ+nj|Lt?-UrSWT-Oe1b}mVM zE5%u!mK$U_1?A@I^1Tphh76}F6LpE-CW?Ja;+>ze+WmOB;1GYp2+IvpV|^+|)|DWr z`GO<2{?Ya4%LRIp%)grl^f~%;BEYePM`z~v^sztSyk5D^5Jdy~NW;57a?|0nHRB1M zmU7?{%tr9&`)Y@A*B;=7-^eGUJO3i02vqs&HDkjg^{bKMmXPvyqP+j6jVj8C37m>AmdK5IdjCOy zLj<|FUGd`#75|p-?yV%Th9 z@Zp;e(h~6$(`5#NQn>U=*vNs%+Z!ZmqoXKHM)~K zO`W&&f)!D(PuW^Nf3lQ`PLE~8I=ls4Jm8)OaO5lr4f23W*?N0Ui9908xRZHP4Ikt)O6E*y2f5>>`iNW zlYm=zZ{PEt-RSg}u?3ge2I%Fbmdxt`^Ag)F8~H1|Tv%iD{MKi=jtD`=All(@0>pjuJBDtCRtZx-OckxiwzC#Oo`D zUmdqSO9g9XIKTtw0`I@&WwD?M94`Y=AgUB2bYotj-m9ojO72!E@$Pp=#zST(>lWUt zes%0zlf{*r;);(!W*n3mM_L6e_^p7J6ZYrdjKb+b?|}@LH0SIcQs<$P@{vaSvXV(X zW0247ilOZ8rbWK7{tk-OGvCDE4&iO+*8(?QghZLIg0?7BwwJS0T}WIv^6}XY*l7#{ zTgeQy@VLR}v!SwIqAR1D{r7eT3#85K)|S?X@>n=gxPw8S7}cXqBa}j0HB8b%5o#$O z(#~p|-PTzNdOO$no%xPXu(km3ae7=5{Ryg^f&jak#3Rp_qx6q3pfOmNSkpYc4cH=G z^K7+Oy${+BwiD)%;{It0+_gb%>e&v&e@&>1*D|XQ62yS!Qc`u3^L|s-Ig_+lN0Q}> z0r*ISaiV$Rm#bOu({8X=eGyKyMghNIEel9UY4e!xU%fW zmG6-BOxT@HHRml&>H*&7^(mVWF{RUK#~JC>VKu;5wQy7r(#bM*(717(fdoBDOR3tx z<%HTv8vW#L`)L1e`NJ}C82pCTJ}ciZ0m6NiOXDtYtH@DG~niCr4+jF>w&+O(atXW7Glm-MrmMGIPP&qd2eu zy+sZ0(i3)cOvPpGLY@n(&FBN1Nk|Q%IVU`>@v0D?Ibm=<$58>e{S_T;O{m)nxT~juF~gvK3yu(L1rC0(Q|g zHSY;b=n&sn3yjkwj!7}##oGJ2BVek-O~T9c!p&F;zkJIQXU~% z8O43KSs2~BzGkEx$6%x+@y5H0JS9@Kf*29~fDn*K zCxr-Js~<{5;Z{@rqDr#q7%iB`eUvpYfx|=9yN%utsJF@k9>PaFAT7muE78Ux)(RobqQMWEQvhX$mJRu}hquO*=bo-BAPuXI!zr zd~V9=;7d*=t%EnIVcU+^TAB+uh8Vi8vCWu~>Wh;+f~FzA=DZ(SRv~;M`_l4+7F&$X zI75LZfN@}BANJbSz8$h9Mmtm+Y^D!&ZAXpvwk!~Fbnn0ZgV zQ>Cr6-7@KZF7~`Yxi7TT1k*hwDpHhO`^_aE$wWnd>U$_?P`ACdcR*u^|LJ}{_*8}A zg`y$3aq;}L@TzRF_pW6rmGV)!5QLmLWBA-DuNR5VcMQQTvR_G4Ebx zhdy)4ntj;z^~Dy0A*U<9Di0x5x3o<-!Hl&84qzF?QWXJiwC|GlGcu|8cpgb!{*vI$ z3W-+BydZ&zy;ye7ekf$U-8m+yl}-iX^8Oq*qOkSR8??2N>0g>EK~R+=0jrQuv#vdg zZf{5+ailYTX`%N=LcOA0ke-dt&>G*gbBF#eXbPwpQ(^_{j~spe;qvbhX{yShv&Gfb zM9vJ?p&-K7YT(`-JQ-)89rHdJmf>J87t?P$un4bq?P8$y@ZfX|S&(jqn7rV8MN(*g zuK^hvsm$0%>(#1>*DUyUe_}~Nh+Ofy5I58=R|{ds8=Jj<_bKSgZuoje{m&gou63pi zLW=Bsw&tbmdLUIa*C3wj>d#%t0s<)DEAe$>$v`Glhcw_a+W_b17$m`cW+fZ~u zHnn#oCGeVt#h^0pCz6L|XD?Jr;_i)eqwF7{f3II5oJ`KA*G4D*skFR4ce?Z3g|Vr3n>`>O9^`qzQB-rg4|$v-WBu9^^*`lq9)r;95u?UQAPo%6PhRqS45nCZySY0UO8~E@PiPO3Uu~+>JXHD| ze3ZEY`bf~UD(8qTO4xlnc+ar>`hCy7pa&tvans$5Z5LvSjHRmeGNP1OJO_sr%nTE&^%})w*lP(RzP(k zPn=CzjM-R$pa42n6z36}ReD|bEjp5SLP2M*xC$AL^1;tBmHg!wIXo&i3aco>mSv_J zZcI%50Z~%kkO5gd`Azb!;jG(7WvM2vPN>Uj#oO5{(#q_iE2& zm4lriRy888^I&n21U>EHtQQJ9ZA5z8;mU?~vhYk@tdsjskJ>;mDM@_@YVHgMFWkB9 zUJ9pSUp6&Te(e#wOZi_p1^arY*z?@H@q7BJZ0-Kj_HokMNxZv2|3u-@KkF3Txb0GmGyTo0e4X-=mq-Rv6ut~@m>GfI*XfrAJ*MV-`T>D-3NUYJ1TsY z@B@ug2_!_-*jf71S;sd8xl_Gb--`qZZ@*=)o0$eIoX z0(sGp*{6V|FxhecF_p6+`O(L)LZ%jhUM=lmzouE*wLMH6^TsYZWzw}-%rXqOS?deKFGg3GqV!syfIE!S{UNXLIyJl!?RZPI6(SZF zBmgb4hICGjUh{7s>NVZzh5VeIFT7n4c|9N%PiTn|x)MpY0y@jK*N_ab*e?2Im3uOp zxSF(pzjt>?f08fziW81nECj|H8-lo7JPt9E!{t;;BV6BM;VzNV3){A*XdM;`iOXUv z>K8*nKM~$Sq$B&0NfKm@@OCd$Q1Y^_agN(>vZU-2MFst6EYKP4{`9i9#UJMjMfZVEw z(?025GkS_#@2QjOwf6|_r?2RX}J0eWcyRGB&$rJ)1UEIdNBE zMKd>%8jMTn45LX0VksP9iqC+eDTFF5Unjw9<8m&JGf#9-H{nPmhHjEdRnMXOIduxJ z-_+Y01wV2rS@_|SkrcGTI$?56W=MRXApD~AJ-y+(PNgdLe_8V_3PwB=hW8~Gu---xQ`o#=EIr{h%n zxp2#5mSLo>e5!aS7PQjUtIP0FH8Sae%Tg7Br~Y2KTjDR3?5oYpcwkO=*$7U`2I}s63 z;ddk<`kkXvwFAdbmcdS6QmL1kZch>taEsRKf@XIafnhbd zwhDr9yz98Jgi%{z2B}7-<)tmyQ1+@<1(wF$s;R(FSP%LdrV)dLnn6X+uxGc+Ru^e3 z{v-t6@0@9Tpu!Y&E^_@5;C|356``}@tVq+2P0ef*e+%#IEcmMq>;f`gx0qj*HZ)N7 zFR6VqKchREaeiLBpA^t^(Bv-)N04DD@)>N&Qr2v(00x+FhxkC^>r%QEKZ@()x0A?A!`K+xb?i3lCXef8`z;)Hc zLa$fuJs=R+Q!V=%IcC7}(wiHo6OZuefd)Rb3QzcSyLhC)PO3hv<>+T$!n=)+DKOc!l%5e z7MVf3&6*(f`Br1C(L-id5eg=J_JhBtXS}mWY7?gD(J(||6KqkWl-O{Nc&yK*NuUg4w%D?sBJZSE4fE43Q1e%vC2C&HMr-5#p`kl9%f2`M{t`F>m5#!P z!WXhjgbwf6u{F>rRoQd!fD2i$lc9hB!r?gvY}t`+lZxx5Wc6TezzM@MN_lN1-xoG^ zTL*INTkZ><*;Vq!9?S%SgCcVA1?BHjmf#=SPfsy^XF2ZeQ0tb0{GqE?riPoX5pXbX z+_gh&)Zg+C0L%|bt#6cNEmt4s9$-WAk+T&K&P5atc$-&_1V_Lq$)9C4cH=PPp;qhL z2ZQ*f%f++XSrq)Qz|HB-=Ss4#04!|(@%gnk9l|nX!G5jlstq|fLL(wegR=9*Cjb_t z<8kD-s}4Nz6qJSKc6NqK!4I;5X&8#8g0# zTf_RM-q_O5$K1VC#I||Ydt`l`*_imoMG0RUX+LG#sSZ=YqYpLO205q+OUs&2@UoxzPF-Lt>g5v;v9`}-5OG(Syt7+3iI zaHD~$SM849Pyq!Bin9hmf``_#96?2pMt717d3r?HfUSETB%Gb1AM^^925XbV@v{%(XM z+Humq6u-QKPcwViT{y`1i?1c{;Mbr@)C^Yvh6S4gR(R%(M}mJKt*_!guxfSM-s`vh zrPJTWj`j;~PI=_6TfUWD$ivLtl^5`ehe7aoh-IC&0IZHfM>id!H^pmZM1y}@^L_Eq{7gzox@GZd8@TEQI2qew( zr@>bXvYCOaOEuz!OzKo&-&SZd1l;;bZBL&sN%9NL(?N0EKwxQ?oW^CG#TwZe)$g!d z9mivXy5o9|1kAuZISc3 z{@!&}V(!1tLZMH!88nl6#M~^La3Ta{0Bu@gykg;;gBmp@I*bz%TmOomnr>)vjv*vQ z{c~IfBi`BMs=c3f4SADIc+H4c@T1~6?(M%^uzCcl&Ndy#;K?V6^JXWg%0ZC#^c-JNl(d|%Y!a=nnq&F zV5gs4?i^QloIYf>RTU*BQe{id4EKT+@F30Z^lb0tqVQpTuk+0v`^F~aJlNIi zk%s(&auIjHH}nQiHC%OcajhBsgYJDCzWU!o7+RgTyW3l53Zx~43owt~fV=Ydpr&}t z&RxB2Y+#){$i?Wo#(zP5Z{Uo6XY`p8;{0=$J@!U>gmIGuB%J2jK}!$uKAXB0``+Z^ z!LuNcIqUkTUl~RU2@Bb6dD`t45wqNf#6N2W)#q*>NvXv<$ugDwz}u|c5<48P?p0aC zt{UomzkH!Etd{m^Dy~6;3OEQ2kns%@!xlXcrxlF^J4cG5I#q+omZ$toC8(q2PG?nN zrX47Og4Yj;S|KN-lU3Gp+RBeUhXzef$DX<9_h7jB5Yw-6aHiY?ZkGjNr!$rnw$(v+ zFrMvWO_7ixj3pIJ5&+m-lXbvdrRRpR!DLMWt*b__qp0AS2jCDE1@}m77t@Z6m z{`Zm_^;Zz#POZ3XbR+Fct;Li0z{oGHL3wP!(beI)a5Neuv8)YPU6Txau>j6&^?=VDKh}! zjMh%T+;kid^8Y!u5>tPsec6`+4@~HL;v(UxmYrR@EsM$C_p~mOj;ve6;4h=iXQf zb2yE|mA}abQF1z}M;$*3H~0PKetQUIKcc1fN#*;LGb9s+4Sh&AQ3 zZw=tWXy0j^V~b8rm>IfQ=z+?qtT*}Sja8hD8}?DY;gv!+0Epf18d0EPOPq7eJU<2q zAPZzsyT$xd41prJ*WZr@;*&OxFZS3|{sh z#o=lPo{OYWD{QH~2EI2e-Pih_Ru0tM_Q8>E;2w_C4mF|Velq`hCmv0M<_QmCJ~WXK z7h~@EcOcX1iFg&ME{*&Al+F0d$lSLVNeE-F;(l6RHBC*EE7&<`_sERhBy}k&`?)dF zG0cvo>_W4SAs-i2p51X@%JJIpy1Z;CZSTa^!bX+89woT+>A*W__5IOPP;`AqKxaJ@ z@zWn`N*~bKXm}k}`^<>=>;SWn0b>CH1QJ>4gfisSCMh<6E%iqtPU4bbXHSLDK53*) z$yQEZ2)~$Pn{EjUAHbT50*$~%Pleiy^67f*+BR8Go`V$46>kFjC9EIEsv#Y^c&;)MD&_MJWxnQVE?-`gp!x8bwsOUX%~vmzDhVXBE~1m6f8hhD7upE(HYF> z4iD=cMgd8P`cN@sr$$Pj8B*c?noT${mL*vBLm%Pdt)xnFygRHXge*|rR(}HAL>=lz z!I6GM?G6ZHQ|TSl_e{?0mmoypT~4Jy?H(1B*N!}&(>$6lO9_L&KeSl8y8y({Jp>9v zdDlR&nc+d5RF(pf4fVlytC-=vUuzPJn9&jw_i`u~F5;4TOf_O5qY)Yz$M zIXnk6*l*rpQf&(L4g)#9;eNtTQ==g%RO)F#Wv!7@EUA%7R`!+7iEjah49BF*smVI| z!t`%S(@XD*FO5~1L6FW|La}m*6y#wM3HMq0Xsfcs|&+25}BmryG?_9UfrjGHLRo&Xqvs9fEz!7Vom=MT8~ZQ zP6K#8J1klj2I?ZLMA54BgIf;RP3rlzhoi$kE@9eU)91Yvsy{aSyg)1tB*96h?rwMO8ww+g%S-Jxf@6>^na&?Okjr=>F z*+)MD+guQ@TJ=T`J1l5cvryQq?$4LI?7JW;8r;6Z9gRE;-f4?%lEz*1V`+Hr%O!G6xQ{M%P$T3E>flGCK`3S~?zKVsn z;cK0M!qCkhc(M9~3*!hk!wPu(|D9qnO$dFe*Qn~7tlAXgl^bQE}-Y>>v2p74Hj}_l3$@|owKha*C*c3*debczB`)X1191^9W?8Sa%ncR z#*{u1gT~a}4;001K7J+hXz6INs^gD_m`OSEZuM?Fdgbh)&Fb+JvKh38wt;ao@gN?$ zu1ms7+CVz1>mNy0@;u=H8@cxnAUF6;qA5vxP*c_cPL|{_ zL^J6P9*s!=5@pkphFNmiM=VV(uyF*XC=&TZ9!s3uF)2Bzw5WAReBCX^+5ruhkv-*J zPR;!6jK{if&UF+oStG3&a*;=uIU}J0A82c5b{`F`o0>zMbar`fTr`Oq5c2`vIzG}5 zJ=ATNBkUPlblR3vLaVFJmR=_*q7@)Evr{2ts*gKhkk8o5d2W4(C?tF7AZnEq!Im!< z(cm`qM1rW~t3*4eiYL)8(({``(7$}C`@ecpOGm=)pdD55aFq#4EDg>>_M~lnDOKTg zF-Ah84#|XnpM*yLo*L8RefNb#|9>V3D~T%SKhaj~z#-OfqA2(#*BJYM(x{?%A4 z0B<9X$)>j$H(;s-p&5gtpQ(sGhMndjtXGp1EQ0-p@(sCmvRIs8_q4C$>3GSk&z`|a8v@ev6MHSc9 z>^*+V7xVOv-GuY*-zl+Yv}MhP9b38NO6+ahpY$egUi?bBMWZZm~6N!%zNf)KGQ$83YD~O@N2{1x_F|>SIRbMx0=|2_mLP9@e|L|!y z*H6+Vj_t{cj&1kyaIp`k)PebLaCG#TgA^~RT<)Nc>au9FoPhejphXBz9lFq^OoA#X zic*~iwRxX-F|Vm^!*e6ogOqaT>pbpJvtFQLpIyvF?{KdcaBba6CiG(Qto2J=WRF_m zSNwS&a#+6ugWtmBo1d^Zp74$sX=p}O}wwH^r-bY(mC>3A$;T!4Pn3WlGyS{h}z zw9(N@6$=&@!wng>jV7^sY6(QEJ&<#BELLeJ7E4aaH(1)*%o^ff7I;#X`sS)_@3Z1I zNFlC#`hN4fPsgQ8e~ZE>Gx><6e_wC|tqb;KHs`=njwnjNWnI zn<1y{q)?m*cV9PXEJ`mW;epo3hai}lcAUL4wEoMYgR_ab>690{z=_ahhbcC&_sM2Q zWEN5J=Yo4&NjkzD4UZbZAZuxRj;Cu@|K)0I_cpSEA9y^S?~1knPS;}AHCd(J?8lSY z)tz$qgs#CLP9N#gCdc}&BK-BlP((jQjoWruj7jb1rhqRm!74egb!Hy(S}tbp$!kLI zg;uh@RNF9L{l`=3{&UL-GM`FfCj@~w@}{}GO`&q{>KZ>t#F$*@E)dXjA@-4~ z1`B%c{8Am*9SVx$l;JI zVfD8H(r2k|6>sf$e1FIbyzA@PVLEdzR_w3uY#)Y98NEWz(0zDNJq+cEE)J)#hGoLC z86DoyJLP5y_g_P<`#|nBR!=!FAe_@QkgWt;BH+{{k+8sx9>_82g0_uQ5fU&mJ2mSPLzwXOh%J zm)YIR9wh(i1CMPzDvbA-`7{$>ok>Favg&uxtXYI3@vTR82qFNgt%|4uppe_Vy+R5L z)vwV=iaY5Pi4$c@<%P#eg(c$5%%sc^VWL)cVXp>ITO^)`>kTFaWMA%BC#7NXFhZ}B zETDGj-l18Az>Mzz2*l{t&(tV(^wtL3CV9kZDzG+-LVlYT;rexd-)E51 z?HT9+l5`&PY~*{kD3nnkkLZT{eOR$48}v_nuh!1%t#;uzZNvk==u}6G z$g2DDsnl}*!@ZNG&E{(;zcp=E1^TH)(q$3N`nt!_nz-XOO)o||$YMZa^1wsP*x zzrL*EAoHgHx5n*D_KH^#QAw%#glvPErxlRu=G?P|5L*PG@c*v%wJbm z+jOgzMt_aaC%&belBVNZC?##4cBrDI3QSiq8$irK3O%TwVt|(VDX^u0~?7{7&6QYDk7T!dDTZ%cp)&mva+hyzb#X!|q(VGsQ zbwFV#9d~l8Av(`#^UX#n$|kEa0$y@Q9PzMb>hrA+mSdG{$^WuP(y*XWLFiRDOMm$Y z0#+gc`6#sb^lb}!MZNho5+_ytj=vR;fc1J=rr;ZqqW1RL_kN+#VyVAQ6C)ONoBycz zenx&lHxuofX8q@|;Eq_2I42WT=yoRu&*xy)k8`|Vi0dfDKC&fMJ`)ZWS<{ARk4FHA zBs6qo#Vr}_An#e~RCgLH;l9|-m!>B5NAGjGuUXB@&`{U z^qb|E(ZsrfK;Q}T#TtJ60<3PgYi|dGXrvxC{FR{ApAt?Ix8Xcla`hQwB^Fi9uiU-z z0(M>6(L>kNi>fX`4=1oJv^_27M_K7>rsC%{3{*>P@9!u369dZUG&@M6l>By5NG*99 z(#>t=laoEjXMX!c3?DTU)xNRXSOJz{uRtS$`Ism+m#dXQ2PMf2F%R3MQt1#^wrGn| zp1YFP)osd$nXe-eH0}EG1ZC2ws`kn~ z^*=nMs>TS_6?Pb%Qd~7N1WldGs8-Et5xvFg;nY1~ToCufp!K$1iIx*IonxNT3jxLY zqO|5zolipwuj_%G<;fnkh{(oaxz%L-?#EH3W9$(T9sYR?7a=2wW6%3yfMBvfVs7n% zMF=N@cp{HhB-mfSOEDwcHTg^ICUhIjyg6{RVrK|h$u7G6<-3i-jd3NbYwrQ$y-#UI zg#4o%0@2q0IjdnUg8Z8LHxd9_6Wjgs^~?KIR66?Lfo!TA226k57bjcn z$oCI>lW&jR)qP>btDzuV86^CBYR*TZg&#dj;%T4`2lt{C%r_VKyTMdyDnx&M|Aj8wLfnZ-rj$s zO<*&J?b!E*!y z_9kSQ;6xR_j=OyrvHL9jpq*}i_<}8#O>+grveix|Nh1poHWH5Gm=Dln{{ENCT0SMnFoXr5iy~8tImn z?i$;3`98nDcXxMp@44@D-sij`$AcIda?6VLqx5dA@@V>lw7BwD{Dx&&=n2D2U9p&E z!h~B|1X_dSIvQvlbjK_l_!Xt-#{_!}dhr~tE`hs+fxar#0Ue661l&RL*ZZG)L#q?3 zgV_s8ASbdlFH>2<{H|@&xom$Rl;%=u7q=Nf=sqHC0 zwT0~us@~TsvlD%sO(4R`e))flf$`$shYdWmqJ7E0O5E!}UD#rSC2ru|Jk=+%f7FOxAK$|Zc2a~wXbR%dWmzQ#?X@R&8 zX{Up7YIeZ@hhNJh4Z#oBQ)M^GyYV*}KrbdksJn=fKJt8pAhXX(Tc1a#yPUux64c+| z2LT#)W7g*M?#Iw5)X?0TzO$1{#6ZPB!CLJG;jZo?x3rIzJ?)0F5a;uGM9x(j!tZk= zWX{)GT2EH`>2d13E=Sbig*B1@lE|9T0N64otjM(PK{{C58!?%MK!`UKFMUCHu`-0;R- zG>3&K7{UbqX_M06G>ba>55l3V;pM?@oi;=_=#Cj0(kK2u-$0bxZ9M)#|kNKTiqF{(~uk)nyIKCI<L$uXq!D*TOwy0vs?Fva+xE0GyhAYY6uroey@c<0#Np;_eHMbVKz8^DA% zUn{xvc8p^%XtG7(sL@tiXNG8^){Yu|n?tktno6rnqE(5*k?AJCcHQa=PP#*(0)8q^yggdK#=>5oX z7F0-vvn$fs7_B63G>ZB zrxYtpM}{{W0gISta0&At2R}86g~HjG1}h!CoFK@1{vaIm^^^b9t59qU!>^*{vFCkM zi&aFOV`p0vT8!+9fZPGt1&W|E4=7JCK*!({vTaxpqmQ3=r`HARJeCd~(r$Ef+P1|< ziTr+TVZ7ghxqnq$_lCI_ub~A8 zCZ=1Ujh~ZYgY#no^!3Qy{v#gbet}wvb7vKc6yw@2)(pc-3%+_sZP*4#ZIY zayYu}-&kS$PR+t+kOa&_+-GmKD}TdpqH8(tQ0~Vqxo)3)^&a5=mAlXrc-&rz&u`u= z6R;+d*<%XyNpFR7YG$v9QOXF%cvpk7YjG*qA)^8^X4x88{P|kC0@zoK%NKSqFMTH8 zeyo;7ms;f{*W_@%x#xDB!oZHBeE?^=KX!3r1h~KBhLRrbg=w_knJXsjJsJ6TwviJ( zz>D=;k?Yanq~t;VCNk~Up2$9PWoXS(lG87m0<)|||M6obBY1OrR_azu1ILnv|WH zxQu9vOV#*p7}{)R^T*T!1QXY9S2cP)LE~8vG;mO~G1&WwPZ}GvGpmOCY-Va#KZuP@0nu|{3ZcYP-B^P5%*UrCs<=WbE{ksS5eR56dZ&1Yb9LN)(-t5^eQ zm6?x+>j*_;qpw2U1D2yC!Z_3uZNk6em-hqsXdfmhTGrQ%!VG|Sk~yy=3k}=-ui@Br z*C%W}6D2n@bd(HDswb`=Yy5f?T^-GG_MWfA!C~ZDcvZ@=z$UT*s!rnheoYm)m+$#D z^NdwO2NZTq16b{&+M)Z($CyRHZ&Fhs$#pJzAkip&7KnsoJ^#qSoT_u1`SJIN}NVBlCQp+*6jVV ziBCf7$llYOQjQ*ee<9vZj;1_2l|>N{gVXm<{L$1wgupX*6e;(U(E$txO6Fnmbk6wM z3-2iZyUMhJ_|DA-$oh5P#zP#th;04AnbIJ!;9S96^7?qReKpCP*`U~XOl&I8xEd$O z@v9Vl+ZU54_{o+b`o%;*+F6bz2;TDMQ_n}3qk;@w-nEj)^6_Pb_uLKsYlI2Tb04ahP zD!+~1;5ce0fXxDibf&_HeX2rOcv^%RziLN!nAKlz|Bv(NE2nscnz8;<(B2-d$m()n z=_|X>tm=f&}Cgfh&fEmn@a;H%>-d6IJgU%53*{Ts~``Y(v)EPGFO zWq~&_JEM>E2EiwH(W5Os!p?%)KG?rxD%B=|e6o5aL3u%ncS;nPOah$LZp>E_Ib~$* ze&)uf!VepY_NxBU1<$(3X#$A@1n#DxZkkvTc{!dX%I?!p77XH^8s_?ZK-Sh{dhKyt zM$flI5-unFR1nY0O=|H=fA9{o&+NtL($IWNSvj@Q33k`%5a!z|X+5s!c7 ze{KoQ`cK~n>DY^XuW-m7@iL%K54(glKFn&id&9NUueT$qQXCu}gzjf9E;VO5C@ZRW z43|H|u;K<$*rSy3e~D49U#9iGgywF%*0))u1{_0Ua4{^ zBx>n;;*)%YRBmY7jzVqnf@81p0P>OjPQkesZJ&cPr(OmI2yRtfju-r0Ki!uZq)-Fk zA@5Udz%|JUq^I<>q{*OKg1AtJm!-{@|2|+wwR~((AO#cnJfjV*CZtN!eJ&DJP|Uh% znG{&U7tp9GPVT=C4iVl3)0WU+9s{asg~gG4UjsBU3X6HBXD2TiI$1 zVn5{R^Kn1ciJ*u6grCdT!3%G+UHhKe^mQh(?$sw2~o?J+5#!(}_1tH~_L zs<`3rMxJtQ3=;E9tjOahi93dXt?c83hsujje&b&8IsYe~yii~`1VU(kTyPD1*>_EB z+w1$1$f_NTtEzFCYsqMSmS$yCtlusBda6_KoqrZv-GB6NzJNs%%OUQ#Kz-YX%ym?L5bg2-v8v|^JXXG0t*O`3s3RbB8S^lZjgIgV{z@pwatk#^d~FnCFo-U$z1+& z&gF(iUTc=Fc-jlrL6AU`j+rTxZ`pa8kB{#M-(HUj?EJaDC*VsbXi9(66e$DsF>FhP#zbcyfSzBv&k@~3*UXP(GWDUD2s3XQyHxD zRv|mUr&ny5Jca~~7T;D(YHSM>N79?oCy4fh-8wbS}9+LiRry6n*BIrA+ z#dE)Z9;gJ{zZ%voNBAt&!qLd?{mTAoQ^`2$umB>fQU&dlVFDz=;w@!J#Kg{dT)q}} zy<4gSN>rbuS7&~L^tac{r2X&2V$Bzb0L-=M>B~&iRL?@y`ps5o_}EbYYx-NBrrYi{ zl79E@+*}D+k~){?ik*KwjLpl>(eCdp-Dg?_WMLzjDzHTnL?HexioeH+9Y0_R;yNYU zzQdB&n$cLF61Qp~Y?5t=<+w_KH+m!J`&(t!Nl}FRBL5_;f-AK)faHaU3{5TY`E4NNkwn|# zYsf9co9TY+{A9tzG!~5d?yg7-5)L+r@DQkaj@N_uT)4FewV>Qd@&h_UOLqp}DD04R zDqvt=V z5f8!e9odD2rimu%OnF9LJ5=8&^Zta3b!Nh&x8y1yBDyOt<%4+x5vFd9V)znMNv%Ho z&8_)4D=+~yq6f*b^>~8&-n;-v-)#E=w~7MHB+fi_bh5&t8_yQriv^m!_;`{w4sE5N zUz-$aa_-6u`}RD1ZR2#^h1l!K#-|bQEN|2gpOc%#16BC-cqnf$6D<#B>AJsothnss z3&*|a+QFOdzESJKlzm2qkv_RJrff*vS-FJ(LI-_I?Czlq+jxe@YK|8mF36&7f2VTQ zeln5c!dE>sp^&B0e)l%-_4H9$-5fnIZ|~zjF1Pu7hVa$O#TYd9LFO}o+lK|!@{Ay! zDjmc6vT_ha1ur^vE>K)30e*!{@(%sD#ZZcYK5UYC^(TyMV9Dt0mBO!3-*N;9Sq;3m z+xmYGHOHRFHv)M44lX6hLZikv4`Og`H|B1dR3~OeJ23`lxjI3{eIs1>rjF?6Ma&0#_TJSS1$=Iup~GIcRPF=hPPKmSd$ct14#Ed_s6@a~U$+SoP(1Y!QL`qRPggN+-IbcaJp z?cevxAd}5lA}UZfrdqj`Wm-*d+D-G%f;l8f6yu(0JqyG#3Ypr7qq1{XJTm9S*+9AP2}gCsP*M zcpgp2C}g8dOJL^)(zG$Gu;a*IL>W}QXI+n%711}!;x`rCRYnTw+PlFeH_BU5+^k5Z z5RE&s8*lKx&t`Z5=^Ncp=mF(4ul3enp629f+r;Q;@Q#oj~eO9OZrZzDuP>LOe z!F*ody9Rk4{4PV|v)&scY?KR(O{bJ^Q>`@Vo& zq}bmn$l)C6z0Sl*$Ua_z4-*sdzrAiKTm*6+6Lks^nvRueySBw938xb2th|vy-N3ao zFbyXc1sDGuK7u@vlLU0j%MHrG6HseFE5#zb8syi-qa=(ynK9FX__g~Gzq7(%I8SVh zydv;RI~w{|>9v4ILJ-%96=gkI1=r%>gt0{pj$;$G_#j&B>t{1oGQC=Kzn9s=DCsT^ zNKg)64T1FB`h$ytH2yG(3+ffIhQSuo;Dp@EyIw;IDW#dd?_a>TZvQ|N3we!A~wR zqcpuszEKrC^qHiPy{?tP z29jx6A{_=;NpVw!!9lEbm*`vt2z;k`nG;K^)=*A{6F;B<7cgweji_rJmAZ;SV=>yfN*>EPnVdhVUS38#wHIBC-RO`|J>qp z0zwjhGrGKN$e5VA-bA@X){n9ADajoI5 z8vmI;qXn*Pp%A`+w^3XU6n7->9@oJvC+%?H;7dCF)wH8gEDIMdNc8ll59x(D>iQ%~ z2KOKy_2P8lWmkC06b>AFkR+LUIEG^Ui$5n#{1w0H{2FkzYMvJH^__!n*}L(%StN|L zR|N9*adr@XB9S*GO+*I7!pS|V_`qIqdw<3hTO$C;dRRBbN5TWwfxKyF=ewbpgktV% zpH-AoG+XvzX+HkkrnpFwT^w9*<-^3T<9f8sh7c&23w%ZXMN750gktNcwtU9wq28aH zl6fi13~alWBUCddU`fjsnpDbFJkL@!A^d;qix<|X1$1<`%D%N~?;P(NMbUe7k_PVE zzIH)js-Bto*|x7QM0d*lIc+(ecB(+jd(^Sw*5poXUH(N3vb1$=qk1@!Z15-5tTVG| zY8U`hCN62ftUr0J5t1!iph!&JjDV4khm_KXWYZfto120oa?#)%A<*P(Rvuc_`S;$+$B@ zRD?aZ7T^X0MG%3h; zE`%5LEkI>v>7Y7%!bm*obwWB1$uVpbeR@bYcC5ScNZLxo+saL4>p%w8hvm7Des?x< zLry*awnG7_UCVsNXW10ZC~1c>=E(FOH;R9LO@7oVC#vzC%yg?yFZ)h2X>jl#;(f7C zyb=nK@sEa>{uZLu^oS z&GLT|QvW)B&T!6kzGZ^iHSN#xE4Xl> zfb7_R6D~-7PZ#hhfXu{b0qDh9sPpq973z*{ZCU~jXB7sA#G1wG%1Fd+wy0sWV92!t zA`HHGA0qf6zau2ISjUEY8>BC!Ao;mV8Z{w{*WLY2X_5^>wCJLTF-v69>(Lmq$!XuL zeE%#0`MEWsC5uno1fV? ztnIBVfRxF)66cB4z(XsA+=%>zshrFIufdS_GqDd7#FY4jXAHGdu8H#L*BfB+Fu+!SNA?V zd*TIhRG0Jh0vc|BjRD|gHLcmuJ%%C1D3-QB*hZBMPW!Z~Tzj|zu%m`H2E#o&j6p)T z-ZdD1D=%qbkbr!mUu^ikuh3oJhu$5$z4x(u*8Eo+w}8&+iqY{SR5B0dsPd@3xSTAI z8qfs=P2Rnzo1$HLBE5Tu13t$ha4!73-wTv~$z};Ux2y#bDNLNcupkh;k@D>X#7sG_ zTqun+iJvOOUt!N$GV`wd22ag$h9bXQ3mN@jzsJNc6a#Xq51?W>@5AmI&?1{Cn()f* zTrjQ$_MOkgxu-sj5r?DjEm@UyuL9h z!fR@hsI6;d&klF8HIXFuWx9v>kgJV_Dm%~Z#cSq|v_>iA(&qDfp(Z?VsEjl?MXmGx z&cyemKA)1)@XF!*W?xq=M@a?hAJz1|Xg@*{^eKp1Qz=gM;rRJ4k7r*Do^?*8;*LS} zhMJ)PxAIXj@sAn-@WVpVQ7USMAm=P+_n4NeO}~Y}j2o)4QB_?vxSwh<&N%+1z?*zI zm+{vQ7bJ1InJ4QOyBkhK_?nkxm*0m7Y#2VwYs<}8UN*1yas+EEiXXdSFc_?RR*3@Z zsU9pYXh~~5L0X;f8l3j+dZ7f@au0&&gxGWtI5*m(Htb(2#lGdOynU;qQ~bG&r$qh$ zn3kQ#b1x~6CA9poG7*uq0t395|7KYFQGeuc26fwh(U9bCkqAK^d|;eg?h;HE56h`@ zdmK*qeL?zDpYCOn_hoMJ?FlT;^aP3ysV9pr`WthXnLJ(~gf!dYnLf-R_Zl!J2)StS z2K$I>>aSTI2f5a*Cian_iEA9fM%CNdVW2KqA~d8I??S@l?t9wqM34l;3iN0Cb$nO= zbwq+nbL1Nu(qQ{t+|zX2w{>fjzm zS2!~h6`xm3cqUuIF&+MRF?RbOt`GdTSB18MR7n^(b^8-FQ`qEVOAljI*=}R^$gbK845b68yoUSUnEc zre5IAUO*h|7}{*Ur5{l4J(giM02ri|>nNo!;{U0XWj;GkD=9SRwtPjfq77~}Gdtz_ z?Qo5bNsp@l(a?FY%Q~yCy~u1t_xWE^jYpTFqZ4l8-kIEdAt+o}DNx9}ks zyzIZ>cX%cp!;Vz@QOt+LCidnv-lsOyTojLi{SWA*ZQqP0tP7Jg4G)K~JX0=nzE&Xi z`~no-ux1(H;s4_l-tq-pVPvKk8ZP}9rr3T7goT)7De}`kO64hKfSEUm!g&)bO4(AG z=VUG?E`~nmIXM@#W90QAt$NU9mcZUlCGm}!`njQ<sy2wBJ>V{byo{g#gdB zBd&9|JD})8Q92=5*nq6sSaqj!r^9}Uh295Rv&Wg@a9x6yLpYMdoNkLlcQ2abLiWV% zNLT=HZ1`E@V(PREFg0+@y?fH1IsKqrClov6df+muht6uL{CFuDLuQA1&z*fSItjMa zRfEm2^2NTUsD)-q4joC(JSo5ITeLJlV{zm>VuNk8{PSuD?K8RJf$0`8tI0{cEY zq^7n7&p^HA$oF`}*X(2yxi?eO{bd%MmY6n8!JbqmwU zFw83hYa~0~P7NS_-e`hGo~z6#9-URUg|g#%-|kgNoCfa?V}!tYI9Q7PR*4-MfdBmp zO(~ehzc$S=gnr!`^aX_{)id9*eb5>y_kMhPUL`I8vqTCAq>>LsZA=L>WE<8#_xY0+ z=y&aT(wrRS*r}K+KTW%0{=seG?xs@Wt!^;(qXKXCi+wGoqApT91PYn{MGVXj%?WoV zC%8)J|6Sfof4v7NYf zCeO~OQc*;(@}*|Nz^d_ntiMP`z=_jWuesG2v7YG_sc#gZDa+94_Ef6td9a# zV(z8N+q~P%Jgs0&O^!5tF|PL)?%W-3USX#R`oMxrBVwTzjK`YLpf;z9k3{BGh<|96 z+6O`grXPf`Y*a96Ap4BIYd+IsubTj9Mjir3tId26WO($I8lp(3`yh;3tNRe^2TK3$ zk_t7S|D}O4RC7)>{*>_HK3?`R7Q}t5R{clcwDb<4(jENh>wWFP^BDZ$+umg7KI^Z) znYW&d5GIj)9F)6q_5~XW54Ivq@TJu5rSCBJ9Y3s~Ja*n9&L*7b{9*eW^lCes^%O}W zn<$V1Kn6Z~@6pHpMElYemdmHr610TV1I%ADXAU_1x5${Jxzti`fBMcZxb@7#iU0{~ z<^RZs)=V-6a`6HWCp!{6$K6iRSYyK6b3@23mQ=0(%3WFMa6&N=H}Ro*Z7~`o5A*tlcuUU z9JNTh%{OjKf!fXtT5=aF&hGMh6K}HW`2*Y1#9hn1PwZBvqw0QOFOz;O?}BD=1489B z>*29u1Ulb7KhR`h|Ch$g^Gv95UvZ73HGO+->d=C~;Uvg&@JzHR7A>jKdCQ~gfK?*i z$Y>lkvAhek%9^$W1=2p$PMb^N2e3g$EraY~nm#P4dtF{t>~<#V$=JEn;FAb?^ja0K zLk&gKZEUc##H2CibMfdx{;``N0h%7B8XB_WoNjBrKe)4VTU?xTm6RacEdnovN)btTbC3Q{=;Wq47jzN&-I8e26yN#-Y8Vo4>i- zfG>NFK}J^nVaRTF)<$TG{GYUcvKGsGR23-mtIyA_iY_K(C5AgiIPo!$*a|?O285UG zXTKr*Rl1zWrjh7BEy2Wqz`iw;54#aSU0)M|=%y1$$gx(l)wzpX?3>Yehdn@)Hc0_E zlvENvUQl622XP1@?vtfXcLzz)O6jW5Ie8SSaoV+|3Kwh)s1kh$CiR)}m5Y7Bei$j^ z<;`X!s~f`UJVSa?+i34R>jG`1W%4AohQKr-!JIG|$7Ni_D8;f?r4gy|jedN7YaL|? zCez)%H!qwDaL{wG{%8alpZQ%nWyp8&Y&xezYv>+Fv9b2%2Z>dV<$+QrpJpwW3^Nn# z$49{1YY65jv*u`P`&=uz$T`;#P|#8RgwVaM*nUPK(QIpa5juG&(ePjB{xt<3sYN6m z;SbVFQt3dOAx<&{IE^lcsu^iV;T1*Di{-&6A&Fa|d_=s!ui1_l{Fet=YT{=bayMQb zZPlC%%iaD_5-gfmTQmlM!;*8oxW+g^a$zMBJj+|bP|cW4`Cl726BkpFzNZrIkk)Iu z|5BI!8f<+Azn@fx&|tkN{BRGYx{t{^#Hv_AU}|K5#vPxTrJjwMue8S1i8zgz{O^8L zVY|G%C&uJ|+q>Y1JU#xK0}+ zqUi(5m1^Lr<&S>L14n&Dbk@n&n=@S`iC&D+a^nn&vZVi0CPgZ}%xZ{z&fO6_4~vHc zKOxm0k40c#PBv#bkKsq1Y4$&cba_z#YmX(yU~>FXOjZMB*4XB_WS{EVLk15cdyd^$Dle98{$Ql`! z=H*Ci+Vmogm02wPZ9|)Up@(pW#3&n1I^#5n3A)J7JqCDs`$lzEv8s`pcHMyh0K8Z4 zxC^@YOnu^7*q6{W7q3tSBubK^_bXdT+jJT%sv|y?Mf?~8fG}PLv&{IChVBt;;~LJw zmKc2{JM!wM0mFV`Of8gC;l^q`p|xY$E2CQHP;axIW6I9&X%!HrVe#v6T*H?wP0TiU zgyMaHqJI4@wVJst$etzJckF5$kn0#cFX)>x8GAzPE5MG8GfofykBo8Cp%FEGlOmYL zRoC%)DY+!=Yh{a!F)$tvxY6o+lD6hOMr9tj;sJo^pO@uhjW0VEx*t-SXJJkX)1d!(HQs1l26~SE#9ik_s zIVKh%LUOw;n!o62)@Z-&cb2sR-aa0xT@fRiIFjI_b{zv?i%3Any^;2RhpH|7(U<5~ z=fmdRcLB{{_}&vBY<@tQ$J~R{ol}A;`LYmHW0ESl{fhmpc8Iozk%9sMdTxzwxtQUXwlD3^&RRXKDVd#%%z|)ugEIjuxX5+hX@)Ow3^~- z-((>H;Vo-oh@}@LZgcHGjqmhc#^H~xL_5lQ%+rs6%^ZZ0Wz0RohWLm9pt*ZS=xp^n zG<@V9j>qpycp(Ec=9xPBneD&P&EnS%5-%!sqvnG9z!jql5AlKiz^(r8T?+0NlX{zs ztpq~+ETkjTgSp0nr55(Hu&8S(Fs6|Xu}3V7{rQ_8HgzwZdeaTeoX{iKwI?_gKFSZnBV{3o7NRS~eYW>XF^spZI0_$prLk%H^tjyRloV#Lsv zPxyY~IZ?9UIZKbW%-;o)UVS#}A}V}@orf~?*j*^rlrkl#UX>CbK=*Rv1kJCClloTk zsRKd{Q|3^%Fk}LQ&e7X})q1bIkEIF+N$w`&He6~MjPNq5Km=tBd71d(Gs9mkn}kAK z3$0~OcUzH#tIia-WvQw@v{J^cv5ebL0O?mLbxZisX3(76ywF|uFJ3=q^||zS?7W_O zQF+x#x9ZAieUiDG65*Z%1-|YY?pAAhvKOQrmi`bdT4O0L(Hfupsn+Uz7w4nONOYnI z-s-H%-i5>K%yKbvCtMCQyWCVmw<5r+^uehrDEhQA8J$w^Rc-U1YM)Y-CI>{A5DX66 z2R74-UB`1wRE38=kyjW2>7q>T?e;t)!k9s=3P645BHeQrE zBQmmlTfsr+d$ripERa?>A8ZcfQaHvM-typfmk>?wva$P2MbY#HZzg9 zr5FGA>&{{dK=2t>rCA00B`++?zO#7W4$N229!x?Xg?);Pd<@N3iGLyB^Ul;34pt)M zy&a0<`R4moR}YG}oW2|UrGvu7Ta2?{t!zDy=Oqxe@{R%nx-wl^Z%2vpjXa7@#HJH) zw#E%Y3H;Sn=_Ys(dMDB)0>*qN#W{E^TG`=qc zI0cYZ&tfa8#8L83LA`S$`58^<>yf{dsm{`BT4P~XsageLxm7lFXVhRZ!*vTqR=PG( zT6InpwJ?0y_~$|Gwp4f!0$66G&QhzX`eg;xB3FCE!#@H5!p$F>&Xo!mUw>XPJ6_KK=9KM?5Q(8U(kE(g=2wO&yiTPcVi2*#&x zKl~~yC(h#o1+uE2nIu(tMFk46Yt9H(iAg?>uG=yMr0&u?tmP}*)gFF?sizLUt4Kwy zlg1qq&H@E=ejG+=o?WzXJpBFd%4w$xE1(QxOul9XsI7?07^%mR-Or&5L;HJL(C#Tb zw6meB+STa;H}!mz%9hfaxj4ed;NPkvhW`nZQ7%}B-`*Dcp85mNJ=17c_)OTTb<+Nf zDNZjJgG)lTAa5bfCTKN>m>xktjxLP`y>Xg1px2>*kPH^_7$Ap!?GzJzQ8}p{|5KWJ zSfC^NTjg^Fl+!Vey!P>;r<8b7>w3G+@r(XzL!fMm=ps`xBh$+pSL`T0R&4yNxOFga zN{rT7PSwbXD{bVL2G>{4?dSc$Yya%DN2f_p3M|@DoRaLo5EIb~Ds94VHM1m&uPSkV zZS0y^1w?$1C_zVF=#x;S7pqB|AJ&&-W;vM<&I$s0cL7WMq+@?$5uuUPhwa8cKGw|HS^^Tj&m~zj(+fzyi)M# zmS`!((80qv?eJgQ;rHnQoyW}9($_|DZZE8l(+Mus2>-*t(LV}q?Q%axaZSK{+aDuC{C$O2l8S5qdXIT z9e_Sq?$KOW(KtMM!%p`?wo$zo=YqM0qo2eAY62v1j3*`J9t3qeBE&lNZWQU{>~rA; z2jGdz&*=~5@h%@vMcmdrwZETNVZ}zHC}Dpf+n-kM(k8ek$KK|7#l!$zhmU=_yoCKEcb4(rWAHAX1qK(}UR!dvZ@Rj;4ovtK zjMp`9rxGE67<8@~QoHx#Nn3!iN6|p^*rtKy*K8fSM_}$nk|*s|mTCVpHY*m}Hr|Ti z^+Qy7#DNYlKzjp(bIW$qM^{)gG>?S2_+_;4inu z6@}JNFo6CsOYrdpy&f(3M5HxG7= zj}LsvPKn9f znIGnpBIn!EY9q&INT3&pR^$Ds0eq!T;ce5N|b;B)f9JM0B^_ zXMKrhqxTY-)re?zElYW;7gL22&eAVvkZ6oJpWPE`78uZ7o@QZBhT?j?FF<+WNIhaj4`^^cKH?n9$-vFT?Wy%Gw8U@$ z5P;w-f}Vg_>*>@^XzmeCj+$L^<55;a6R9A%n~rOq$q0j)&*sZj`K+qt*9!;o*)P2d zPY93zGH8o%GE!<|on=%VLnnn%RP7}`dlVe0faA&CKL^=n$Zme9-dAQAOzi9SbHkjI#aG2-BJ32^PecgefKJII5c#*NwN>f( z3+m~zxr%hK@(L+FeoXM;_GQjw=1KB5@5Luk(J$^ACh`UbT!Y^j(QWJTm$exgh3@+^ z78SJ8alBFS3~>zwXfn?_<}P*F+-p`0dP;MTGY4vKF^z|$n}9*cvBzT}9nvkZ-xX)w z_;V;ImLQ8E;#Phi9q>N;ykf5?7Q24(5vRL%P8K)yO-x5Ay3?CG2nKxp?36`oLhu3R zAlXq2oe@?6xMdg&S?jbt5@~Sv4qO*PF~TQG05FNX#V@x=!EPYGsLohJvK%K4GV}G2 zR)v+#V{FF~PL0YBRNeNRrUu`V@K8s1K=6JD<$(LcHWT_v`wPXL%^nPQPR{+EPN-1|#$ENJY7 z<8`G5FX^C{b`pMnyCHHRF~IcD-Z%iOyUaWsO?E!$rKb3Ie{=qE4+OZ$(9H7PZ;U4JByNle0;JmluGu49nH|hr=A6Ko|NT> znCO&D^SuG}moDULQBXMm3XoXehSxU^tIGZp6Q25u?{#hz=o(1$Dt?@wr3f>r+=09abWa4ZO_8IPC zqvWLc*&V~7UZ>y2CdGRI1OQZ#4D>h|7|3K1SfHTQ6*y3zS!Y5^E!@4uLR-(o3)CP0 zV4TbGh8CSLZT?yVo;NjTU(uX>!VC61m6_L*d>lmS0|)>BQQ)A3321C&tOI-N{BV7C zn8pKj>BAvOAKY@7d5qQs=z1rZ;8h6tIyuXeQaWb$=3t#QJ$ZT7qF98^){(e0Q;LFCA zER;Mhd02DqSU43p%h%9)}0tpY2>?PSQBryY1GwoG}Ys^y6_XGkkhUeJt9rw(qzg+UN z?eN0uL23Ls3C zbTjQo(871StCT=mW59w6cl2w!dK|&;NT!TX45r?K9E?v)L7uGpo%y#khmq6;G+Ys= zwXW>Ve{Vbd1$v%ug(1KGLS0|jDq>%AB8>^yKrT@F00IC&Ir4@ix3PZ|&kjF601yBGM%T1R$|Y4?^^wfOZceuJ!)X>rpdZ~K zByNJKI^V{RxAW`fPOx!WNKzB42vhFMByUTW=pMc8=KK}9M;45?DkQ;qZ@K^8zPofd zw@tLu?{@c2lO{U=KmY(37gFG{1g8A!t%3|Q1Yv6p+nVCn@rRuV7y;Nu=O1z+Fxkb* z9#8UU_SD+2rMnu^?@aO-gq|oMu9XX-wh8b2NIUx2Qc?FB`0IQZp6^tY{cWxvc6zs{F95qQ^9@IK%<^yoX?-bAm7vIhVH06-qC24O7G0 zSf7z##KEiw?sC{JwJ@Zlp#>r6%9!3qdhfH!emI4nD)Uv55`V`OxGVBEJ^J2u>&tyd jKQPAZjevp&V0`fZsD1OVYL+=C00000NkvXXu0mjfej35- literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.ico b/src-tauri/icons/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..054892df4b1d4774db9b6d6e206cede809d560ee GIT binary patch literal 23549 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

  • jnE@CW2vK;H&hMp%daL%pIc|VS_v>S`fOY>KS~J@U#n4x@3?PAR z-~u{-gihN_Hc=+qGchA5V&D@krgbu$z&^VWb^W4d07@FLVx$U=KoS@wVn#x?4-~JS zkBU8`3Gh!5_zy~5KU&DUeo-=j1i?cMX+YPzg)R@*b_JFQ3U|j>&vq|BPtSg|>{?wk zyM9qK0H>!wKKM4!`)Kq{ARaP_yf^UaOnoYiKhg7Fu7F>N7Jg;`DKY}O?n&o&i&#}+ z!4g41?f9T~2H?%Lm$YU2_$`9in=skMAkJ0m;>9hwG z`(*KA_GSc^(jq~UQE!)wFpetB-LhPYW}t!;JS=97WX z3?M6Z0#&C_V-Tm)buSTfBle_G%dyB+$uhPXR4_jA29Wc%0?7;- z(C7>mffhDeouP(db>W_@BDBCGE6)M1!0MK4wV%d3nwO90xRB;$fr`y%-JTgh-g^+# z96KY==x^2Nx}nTN=tAcmr4jKYS=l&Igj>|X6tc-6be&z_*%L)f9-#4!h#B$FK=Tv& z-JjF>CS>9{+^vGXp3VW)K$++zeW> zZov`KZqSwh(w?qQqw}L_)S=Np9!s*AWw)KiW_jF2_xKgv<09#wM{v#_7gb1A--$C6 z20b$XW(pNSM^-YOm)={C-rERv1xN^zQPigE`cNb28cd_1WDqr_T2ZR)+*Se=Ls{e@ zuKy%~jaJt%#;vE%-9pD505*1b=<9U;o!hSNw28!Gb2vCBm+1cij0Ktre^!*%00000 LNkvXXu0mjfMHKdZ literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.png b/src-tauri/icons/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ddba6b539a52d6148f8405fc15d3488d95530c33 GIT binary patch literal 38375 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-20x20@1x.png b/src-tauri/icons/ios/AppIcon-20x20@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..3d82edd921374368dbca78605a790bad00d7adc2 GIT binary patch literal 555 zcmV+`0@VG9P)_6g~5@5eY%-BcfI*NJJq~?6yiR1rh}v9SssSh2R(X74!-XT5lUs`EC^6n%SMV zvtzv7VsG>2&76DgopbM<7vpZY8~qSMpfGw)6zgw*;H&*Y28n=3fj&3yzF&Dk6Uq3d z>|m8O_u-_(>dGQm^{=|JN%#!F?RL9C(=l?!1Fe4ib25`IGNT<_SEEXoIthY!=c*N~?i(D>;Mx%jHD1>skjAF3} zzu%8)wTet8gUx0m>PkeCn^-X#^>jMH<#NI2^IeD*zI9hAJvQMNwfEQy^KsXEq@w4RYjkT-hVv~2Km|~_vnV`AdM6G%k%Za t-}p2+suh_M!#Onh#kG2wr8QCM`2k@!Ort2C&n^G}002ovPDHLkV1gZ<0q_6- literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-20x20@2x-1.png b/src-tauri/icons/ios/AppIcon-20x20@2x-1.png new file mode 100644 index 0000000000000000000000000000000000000000..ec331f3deb4377f96e1153edb89184b01220892f GIT binary patch literal 1155 zcmV-}1bq96P)6o1{*wphk?l5iH0_y#U+93|pE_9Zw8K7cLGNE}4W*o{cIxV!lZK7qu^zArP= zf4@g{Y8Ks9V;L`*l&*eN^{co1>UFW~Hz5y!ieVT@eUQZdRAUqMRL8Q87r;bt&^J_O zPCZxL*i;)=1}N{+Wg;kffla9+=Jc|rq2gjiAU`6eqTY{!bF-1DJK!focJ-$KWrZ|z z;M+jTSSPOGgEyr9+ysp3oJo%tNtQj7-x^*3n!; zhX><=_xk#p9v>fhl4vwag@uJwR8-_x4d5;>FX`dofqXt6_vPm1lHc#wwxp>;D`ICG z8yi$nQ9-q}wNzDAMU9P({5}$iFu1L)Evl@nr0VKws;Q}A-PP4qekV4eY7A57z`wn{ zrTO`J8Xg{|zP>&>KR;)8o}Ql4)6)}WWo6O!_BM5NbkP0%JzE);?CI&Dv9U3lo10_n zyYXIP44OKm{QUe(qobqL)zwA8V33A}hPc0=pnzQnaP95w+?SJ+!|w0x?WL8K6>b3% z8`1HarF-6%mzT4P5nEUoakja+Nz>EQG&woRJI~I}=FI?9C={ZBfdO`LSy@?9;&`0> zwk0Wgf`dC>US2qsupq3kzP`?YCMG80EZyJVPs_{8)Y;j|8-QF~T(DIYGTQjqgkkAa zDtUQ%JTZX6rE6#w!CZ=jV zSS}n6Q(Ie`6KAj%+z5Bd06G7KK$Ha5rRcZ_jxa zeY?B6+`{z;1Au#deSJ?3jRVEhJtMKmJIJu>Aum_Ta5v%*G=xp+7Ob`oKr8}x1p@zQ zW@d)_TU%SXMY7-rK^%%c2$BT^j+oT|X)DE`$T*O1Q&SV2oSg9Sc6@xyyoZbi^}yB8 zYiViWI0a8GEiE~*nxCJ~V@pa(RL^DGQi(w^8BT$tqa%kZ;A(&qK!h9|9MIw6A@gJ; z8lg}y#Fm4AH#Gnna=Gsxuix^Op= zO_iuo$XF^LMsi&TaN?*N92|7O!G#cTBi`@t?{l_;JE4QIpd-cd&TuTK^mYHCgT-** zkBp2smV;FVIM4}_0nZ?22sVO{fV)xsfZ&yH6;PVl@1it7koCgC0#`I}H)sd_i;Ig4 z4$sK+`uci~*V58bu6kx?XSvYOxiWD8>K3e5S65EK3UIJ2fZ%UYkfJoZxw(leSd0C| z>^!Z~|7}v+<9fsMB1yKcn~v@p+zNny?W4&7suP31DFTz}_Enz=P>G>nx)9~B<5RwV z%Y@56TT_c>G9ecIaWTE9#3OO+bYn}N+s%pTT%zMSoh#v_`}Z$hqJP)F62AIxi2v>W V9ltw7=bHck002ovPDHLkV1gn^Hq8J4 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-20x20@2x.png b/src-tauri/icons/ios/AppIcon-20x20@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ec331f3deb4377f96e1153edb89184b01220892f GIT binary patch literal 1155 zcmV-}1bq96P)6o1{*wphk?l5iH0_y#U+93|pE_9Zw8K7cLGNE}4W*o{cIxV!lZK7qu^zArP= zf4@g{Y8Ks9V;L`*l&*eN^{co1>UFW~Hz5y!ieVT@eUQZdRAUqMRL8Q87r;bt&^J_O zPCZxL*i;)=1}N{+Wg;kffla9+=Jc|rq2gjiAU`6eqTY{!bF-1DJK!focJ-$KWrZ|z z;M+jTSSPOGgEyr9+ysp3oJo%tNtQj7-x^*3n!; zhX><=_xk#p9v>fhl4vwag@uJwR8-_x4d5;>FX`dofqXt6_vPm1lHc#wwxp>;D`ICG z8yi$nQ9-q}wNzDAMU9P({5}$iFu1L)Evl@nr0VKws;Q}A-PP4qekV4eY7A57z`wn{ zrTO`J8Xg{|zP>&>KR;)8o}Ql4)6)}WWo6O!_BM5NbkP0%JzE);?CI&Dv9U3lo10_n zyYXIP44OKm{QUe(qobqL)zwA8V33A}hPc0=pnzQnaP95w+?SJ+!|w0x?WL8K6>b3% z8`1HarF-6%mzT4P5nEUoakja+Nz>EQG&woRJI~I}=FI?9C={ZBfdO`LSy@?9;&`0> zwk0Wgf`dC>US2qsupq3kzP`?YCMG80EZyJVPs_{8)Y;j|8-QF~T(DIYGTQjqgkkAa zDtUQ%JTZX6rE6#w!CZ=jV zSS}n6Q(Ie`6KAj%+z5Bd06G7KK$Ha5rRcZ_jxa zeY?B6+`{z;1Au#deSJ?3jRVEhJtMKmJIJu>Aum_Ta5v%*G=xp+7Ob`oKr8}x1p@zQ zW@d)_TU%SXMY7-rK^%%c2$BT^j+oT|X)DE`$T*O1Q&SV2oSg9Sc6@xyyoZbi^}yB8 zYiViWI0a8GEiE~*nxCJ~V@pa(RL^DGQi(w^8BT$tqa%kZ;A(&qK!h9|9MIw6A@gJ; z8lg}y#Fm4AH#Gnna=Gsxuix^Op= zO_iuo$XF^LMsi&TaN?*N92|7O!G#cTBi`@t?{l_;JE4QIpd-cd&TuTK^mYHCgT-** zkBp2smV;FVIM4}_0nZ?22sVO{fV)xsfZ&yH6;PVl@1it7koCgC0#`I}H)sd_i;Ig4 z4$sK+`uci~*V58bu6kx?XSvYOxiWD8>K3e5S65EK3UIJ2fZ%UYkfJoZxw(leSd0C| z>^!Z~|7}v+<9fsMB1yKcn~v@p+zNny?W4&7suP31DFTz}_Enz=P>G>nx)9~B<5RwV z%Y@56TT_c>G9ecIaWTE9#3OO+bYn}N+s%pTT%zMSoh#v_`}Z$hqJP)F62AIxi2v>W V9ltw7=bHck002ovPDHLkV1gn^Hq8J4 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-20x20@3x.png b/src-tauri/icons/ios/AppIcon-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f249c66d1fbfea14a1408b725ef6cdf77dde5fa8 GIT binary patch literal 1774 zcmVF(z~G+ga=NMz=M1G7x+k^)8wx=KwiOA88eo}>ae0E1qEI9* zs741g4F`D8BJBm#KX)P}%6`WVVqKvFcB(hgD8a7LI00bIP;}dfbzB5ZHqO zOgjF>^jUN8I_$&QNE)Mv88?5@X#^q0u>w}sdZbPpPJ)2ruG0Z^*oV6=it%E{WtY?B zA=Zjvmyw*bqGEIF_O}?zj(8Z~-yGre2}iVfJdej?Mk~0mBkbPZ9>vAQMQwh!ZZKP0 zTlDqoS1(}uM5VN}G&*zUj2CDDi}o8E8+@&D`rNs5l#-I7RRZle9CDzcW-QmPU8C{w zaXNqgJpKChi$Q$*_KljGo9V@i7YyDo41RX%)G6xk@2A$*R&Im)c#iuZLSbPcO-@ca z33CtcsOYxRZ{NP9nwlD3xat;ia&l;9W`?f?Y+qj=)z;SfbtNE1b#--Qth5vB2X0)w zdX;*6d#SRrl7@zc7!aPHK7E?o#K*^bfdyd%tlRCjYV?6rynFYK!2)zqQ4wu!Zffx+ z+5k^XOi*229Ssf+QfX-^*8sM=yKCt&+KU)hRaNnQfcyRXw^c)|-@JK4Wo2bdxcm3- zvshyeEr6X2pz73x3m3QsSHQhHckXa492OS?F$M?$D~3yI^bxQk&WVYMT8tL38cqf> zm2exPDxAbZh11{`=79dTx3{zLQo%xu1*~v(czBp4031hO8C!=xRyk~j9;LhfALxK^ zqK7JIa0`om{P;106RtzN1=PU60E2!1{yiH#X(u|ZV^_qN!>(|37>n~9T#G&mr(t~V z-n~noK7FD~moD*h=r#I)2loJ_FmaNOYf!r{{6dC-E~=NrDG!=3(C&U zruFr8=CFVUC_Ml0;RD^ieVg08eEE`%5c(Dr6i`!B6Z`DZ(NVg7{W^0sFE8&8H}(zK z&dv^9zI>UUJ$q(x+=&_ju*XR%sOp~>8C5?4{^G@pG&?&>Nl8hzV}KC(`S~+ zLkN)K(ll6V)6il401k^2L#2YoVo|22r>(XChMyRtsi`T;_(5+Q8XD-;t5=p$gJ^4t zrCnM8i^TNa55p)A~!ZRa^xoC9*fXYT_`vSu7N`$-Uug!!$<^#2qMzBMuG7X z4y!~$60ErkG8v<&+tBUIL=g;ZUqemP{qQEezpk)(5#{TQ+p<1@Lx48yb zfCN~8mVGVN2%&U$cXNOtwm>2)^p%7Ipg}-M{H=!?gV}rMkzTt*$b@bC(4y8SGYcV_AK{7 zUp&KDN4=Q{^%xWrQrDXY;R<#a?Ka{87(X>yl0FdawY9ZFt_Q%eSEg$tUMt{Ga_1xT|9OcVCE~)R*GEm<*jKRb$~eq7i^HW^Cd#BeMYz z^EzxN`>}TPFpw=elEbm+ssgRqh~#nm<9KG;i1arG$L)Z)JJch5|HLN%$5pSxS&I?w zE=MpHQTJy&zH^2{ctgi=z5wBA*q`wnItlA%&Zxb42=i0CqYsWn_*1<90GdS@2`&}R Qj{pDw07*qoM6N<$g6OV9(*OVf literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-29x29@1x.png b/src-tauri/icons/ios/AppIcon-29x29@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..401c857b461fce2eedc482253870048b2bde51b0 GIT binary patch literal 861 zcmV-j1ETziP)ChL5I?{_a3#1AoDD9-g<=R~m*6)< zOjIxtobR*B*P-on-$Wk|YZFpkw@wYGs@wHG1e%aa2mymgTTw^n>&G#9mWE0^s$<=Y zs`J$EEP;OomB#c-6;M7B3b0K)2~OX6pP~o<=}ex;QfMWymafqNOn!yhQ=eY`ljwdO zwFLhIP$_p6$89vyx3{;dgQljY8a)Z=8wp%!Bjf4)dw+k2~}z!r`$j$@lc*{f74#m>{|G)6{7@bvVAmX;RG z&COK-$H&K!$z(V%s)+i%sl=}G$H;*0?rvOOUSfKBnjJ1IEFc&R;^yXt&qqf`vAw;G z$;nCN^LcK8jX&x}5{;}v$~2KkU}Iwgkw^ps0|Q7VlMG0KP+%0G1odOFFfDwwr$h?1 zY|G2bSYKbq%gYOzo13w;w1lIhBkuk4^E2z@NZG{k8)(VG{r!FJA<6mqdDZ#r>npO^ zEN*Xa`MkBYl>zCyAA$1W2OtsR@$nH`TU+Su?Zxo$FcXO~bzK(|6BBGpqeFxvd-~2& zKz~rlzSGlF^!NAkD1^gdtgWqKWn~4SPzZ~Qi&$M<#n{*w+Y*}z+`?X{%fYiZXf(>Dq+V0$35Wn`Bel1;*WF0gk8hhV-_tv#{Y+%Zr nC?CyoiFgJOPYGV=esuW*7GD=P*Zvq)00000NkvXXu0mjfuau+u literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-29x29@2x-1.png b/src-tauri/icons/ios/AppIcon-29x29@2x-1.png new file mode 100644 index 0000000000000000000000000000000000000000..330937e1e77aa27f9c363d82a54af0635fcbafab GIT binary patch literal 1822 zcmV+(2jTdMP)8JPavq_Rx)Z^!a-(G6a#e|Kx{r|TswSXS5#a4g*T zV$?;ei_CACd%pGQ)vsTM?O4r76y?H%3Hyx*(#@KT0QE4_upwa401xZ$j-dG1fI2&H zF_pgo()C@=v3P;Cy-an1$#9GTCSDTO(~>q$e?avI764l-#G)s=7@KpvzN2nDa%0>m z{*PHJYDRV3i2{-wC6ya@wi|ldwG zzn(|x5fB*hXp-_k>CMKw+riP}crx`SU$NkTr zKhvd4m+0cfi>mJxH(fj{1KG4`6FqqFU`d;&PoGkCbu}d=C8>db`0#;>ii&7#Y|ORa zYuB#v6>Wo#kKG^$o8n&`9UXM%&K){?_AEVo_)wW7fI+rx+osxM;8Rmm%rZc3+_;h3 zZ`iP5!Ln@X?d_!t7cS7yLg~rMScfkTeogiOpcC@GDw&)euE+)-QC^X$Gv;^*g7EacN2NlHjzdV zTtw?7B_#~@_A}aTRNkzJsP1+r&Imm=iw(Sg-?T z0T!UDs;X#sc$nJ&1g<)hU=VEqQuptG=|y3(wYt^{QYbic5LpSHwRI5-ewAWGICpzaBYq#7My(sMZCO5=k+jw{PDr@xLuw zwy??W*|W#BkB=WeQf_W8O-@eIty{O)#J_(1%4tV;hoE8y@lAjPm|eSeaZ!+!m8A*- z+{Yj>=!S*{WsbOykCHZfjvYJb*|TS~fB$}E zzJ7{)fPeSy9hZh+7Jr*aFEQ=CELZQsXLs)0NrQufl#`RAs+~iJ4yoc_Oc&oJD2Zi= zC5(@cQ$axigM|{sGFB`Y=^~&Ib>U<1y~@f;N=ZqfH*en1?%lgxp97eK2M_X$MFN-v zw9L#*wve>6G!^((WZO{Ez|EUCsjjY$^P=2?pCRB#dcl;esi}!xy?VtK0G6*@xx#@A zc@{OYFpEAAb)mGYSFds~lc`dkIKu-nKhBl&Q6Z9DB4e) zIKc(OnKNgUqQp19eEDLeLegv9n3 zsg3mt%TGXyR03jc+cvS)Aj*>52(|cnK5 z$WyxS03=F3CrCZWpv-&x_%ZvRR7|LMb!LT06U!)Sg+Vjha4bxUAAuDwkbC#;<@AF{ z`t94dMX3YK3Rna&i0;=xCf-JBT`Z;GiWLC_9t0o+6Pb!hvA=KMJ{lMpQ0W3~kXkSi zhY7><(GM7f?_&0Y#kGox3Nz_N+lH`$EOR=iTDkyae}6ycQz;DKhnT%MqcsHUMVQwH zT)b18Y#}XlTd~@|3>?}A6SCYXi&~pEZ>HMXS_TOgWn~YH-?(vuo;-O%$;ru!mOCY| z1zhe_n{37^qiD1q&7yU@7O-{GjoX$4ui4D|mz$48s$=7}C9&4UcBYE8fZGj=?f2N) zYTpQsYW9*yhco;JGTRvd){5ym39}?d7%@BAD}P zJ0iDayleL4n8)F0@ATqi(?uuYl}aB`oILfn-05*X*7{3e^@GXbD37@(>{0VTZe{zO zk~t3VTP}LC4E*zewcN4VSYpTj=HEf$GJDahO2-*m&wucV*YVkZ0hSKV$n}zAMF0Q* M07*qoM6N<$f-<0uj{pDw literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-29x29@2x.png b/src-tauri/icons/ios/AppIcon-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..330937e1e77aa27f9c363d82a54af0635fcbafab GIT binary patch literal 1822 zcmV+(2jTdMP)8JPavq_Rx)Z^!a-(G6a#e|Kx{r|TswSXS5#a4g*T zV$?;ei_CACd%pGQ)vsTM?O4r76y?H%3Hyx*(#@KT0QE4_upwa401xZ$j-dG1fI2&H zF_pgo()C@=v3P;Cy-an1$#9GTCSDTO(~>q$e?avI764l-#G)s=7@KpvzN2nDa%0>m z{*PHJYDRV3i2{-wC6ya@wi|ldwG zzn(|x5fB*hXp-_k>CMKw+riP}crx`SU$NkTr zKhvd4m+0cfi>mJxH(fj{1KG4`6FqqFU`d;&PoGkCbu}d=C8>db`0#;>ii&7#Y|ORa zYuB#v6>Wo#kKG^$o8n&`9UXM%&K){?_AEVo_)wW7fI+rx+osxM;8Rmm%rZc3+_;h3 zZ`iP5!Ln@X?d_!t7cS7yLg~rMScfkTeogiOpcC@GDw&)euE+)-QC^X$Gv;^*g7EacN2NlHjzdV zTtw?7B_#~@_A}aTRNkzJsP1+r&Imm=iw(Sg-?T z0T!UDs;X#sc$nJ&1g<)hU=VEqQuptG=|y3(wYt^{QYbic5LpSHwRI5-ewAWGICpzaBYq#7My(sMZCO5=k+jw{PDr@xLuw zwy??W*|W#BkB=WeQf_W8O-@eIty{O)#J_(1%4tV;hoE8y@lAjPm|eSeaZ!+!m8A*- z+{Yj>=!S*{WsbOykCHZfjvYJb*|TS~fB$}E zzJ7{)fPeSy9hZh+7Jr*aFEQ=CELZQsXLs)0NrQufl#`RAs+~iJ4yoc_Oc&oJD2Zi= zC5(@cQ$axigM|{sGFB`Y=^~&Ib>U<1y~@f;N=ZqfH*en1?%lgxp97eK2M_X$MFN-v zw9L#*wve>6G!^((WZO{Ez|EUCsjjY$^P=2?pCRB#dcl;esi}!xy?VtK0G6*@xx#@A zc@{OYFpEAAb)mGYSFds~lc`dkIKu-nKhBl&Q6Z9DB4e) zIKc(OnKNgUqQp19eEDLeLegv9n3 zsg3mt%TGXyR03jc+cvS)Aj*>52(|cnK5 z$WyxS03=F3CrCZWpv-&x_%ZvRR7|LMb!LT06U!)Sg+Vjha4bxUAAuDwkbC#;<@AF{ z`t94dMX3YK3Rna&i0;=xCf-JBT`Z;GiWLC_9t0o+6Pb!hvA=KMJ{lMpQ0W3~kXkSi zhY7><(GM7f?_&0Y#kGox3Nz_N+lH`$EOR=iTDkyae}6ycQz;DKhnT%MqcsHUMVQwH zT)b18Y#}XlTd~@|3>?}A6SCYXi&~pEZ>HMXS_TOgWn~YH-?(vuo;-O%$;ru!mOCY| z1zhe_n{37^qiD1q&7yU@7O-{GjoX$4ui4D|mz$48s$=7}C9&4UcBYE8fZGj=?f2N) zYTpQsYW9*yhco;JGTRvd){5ym39}?d7%@BAD}P zJ0iDayleL4n8)F0@ATqi(?uuYl}aB`oILfn-05*X*7{3e^@GXbD37@(>{0VTZe{zO zk~t3VTP}LC4E*zewcN4VSYpTj=HEf$GJDahO2-*m&wucV*YVkZ0hSKV$n}zAMF0Q* M07*qoM6N<$f-<0uj{pDw literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-29x29@3x.png b/src-tauri/icons/ios/AppIcon-29x29@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..244495d2f7753a586f879b9b2bd7ffafa7238564 GIT binary patch literal 2680 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 V9ltw7=bHck002ovPDHLkV1gn^Hq8J4 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-40x40@2x-1.png b/src-tauri/icons/ios/AppIcon-40x40@2x-1.png new file mode 100644 index 0000000000000000000000000000000000000000..9add81a33d882a59153e48318b7a09d64574a4ea GIT binary patch literal 2466 zcmV;T30?MyP)NQfCjvAhuv5`_PR*!S&T7f-|k5#hrFi6yb` zcWL(&r@m6tJ>5Oi)pur0OJ{Cx)m^7g{gzYJCGU4F;&5T{xm>Q;IexC#2_fZ1lo@&7 zG?ttz0E<;1s`91YFYI0}flM7h`+=>B;b2fr!uA)vRn#@+yfsi^ zK>Bxf@~ui0F|Z&~Ch+{zuWM zV_Xou62PlAdzaWQCIPXi4Ggh)eyuVvBmggJ6TLW;whFFQ@FWbpVoda+;=Ee6c`F#J{2$o4}*Q<#*K>v z@B8=f^8ER8b-t}AcXr8Y0|pF`kt0Vs2Tn7v>!!X-_O-XSOFo~MhYughj2SZ&5Vjow z7~j5qlkMBL%Yg$23YgZ`)+RlB_LS?_ugm7mo8`re7wWj(lu<6Oy?y((Or1Ja-`gda zdDk>&1;&mYD+?AZkn`uytIDIIR<eZ`NMF9$qVM702Jo}yi=!6>FxFF*UQYAGv(#W zm)btMhzmWJo!K8hepG)qH#bXTW1|KEAg)`tuE0j|y0-S;;I+24%915Zlzp_DJr#hcO1t{q&`bTtSLR5HDT2q(KA_0CD5Sjeose z?8gd_VFqySnl)<*z(eSQFbU`2T&#*6%Ko_-{-`r3msv`I&`S)-Md$T2YZS#2p$$Rd7Q`VP`Te`An#Q2ccMr$Uj#5yrc9B? zj~{Es1lcn*-!o^<=>6~CzgJ!u=^vJf6DP|2`STTsT$-Ai6l+n&v}x1SF}^G?@9WpE zvT)%-*|%?>(`3t;q>tu=irl<;Q`sz3sF+jOvuBU&-o0CSU9XocY zeMk?P0(MuYNvA9SK~Vr8B1aAKtP~ao4H~2vH+=YTecV)AXwyD?_#l%fPu3X*)E9Vi z1l(Y}9hke8zdV=D7Y`41&7C_}**oN@w$j2%qS+#2F|Re92*E_t26)&9K#^xRG&IQ7 zt5=n6METf{H4E*~bA1Cg(RuUcsTi?K(^@Al&R>T z;He=fAdGR`kK#LLAdNj&fXDD-)~s3jye(U{DDbGh*iHo3;@IH9gJtX1t-9|$bV%O3 zdGptKVCS}N+hpg?o!S&^*swumFhN-k?Jg9aNs}h&XG(hn^s z05E>rv}u#<+OeGn7GENAS?J0G`>WVS83~ zm_uxZhrM|5qLQ@$nkmY&bm>yHAEE;m*ir1ayG%_`U22{5>P|bA*c9<=f`{!m z;DM!J8kH8>R8y1%h-PyJQ?YFaM^t_A|=r!@!>fiFfDz*Ev;06cCp%_ArPi8c?NL;#*31>FNHK*MpI z4-o0;j~qE7ckbNLBehZrXZ(VZ2>}$(r8$xll0H~~j03|h03H*64$t5-5DYLc3_Ofd zFvBCPw0Qurp`lTYi$VN}d%OOQ#B<$m$|m~k*)ydFqG^I*_~nYw1VD`*Jz9alW@~~+ zkP*sY!8N=VE6T)gOG~pndGbWRkWAE=kniDAU!Wuh4Y1_6zEPt_DYix_C{Le0El_z_ z#=wCCGZ|pX--;XJTS>!s;{d6}ge+JXHN?zxDCLyndXTw^Q2~JUCD}M>FYNn=`Vw!D zxtHWKr~0Q}^^Xm+QDf?u#>d1I$O@Q`)olQO#;aIA2`a6Rdxl#$@ zl`}zCtxUjJjtW&z<+`(DJ?K-_YRW9)Okm*@KnkD%(;)lZJb{lNH6NH(l*@FAt|#L5 zLnbdvFA$F?=}-M~6+IDmf~nxsoR+w@rh<<%Nw*cKrkM`v8C!y8Rj;c5j3CBbglYYE g7@^n1xo29-FHv85xt2WvhX4Qo07*qoM6N<$f~BCLssI20 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-40x40@2x.png b/src-tauri/icons/ios/AppIcon-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9add81a33d882a59153e48318b7a09d64574a4ea GIT binary patch literal 2466 zcmV;T30?MyP)NQfCjvAhuv5`_PR*!S&T7f-|k5#hrFi6yb` zcWL(&r@m6tJ>5Oi)pur0OJ{Cx)m^7g{gzYJCGU4F;&5T{xm>Q;IexC#2_fZ1lo@&7 zG?ttz0E<;1s`91YFYI0}flM7h`+=>B;b2fr!uA)vRn#@+yfsi^ zK>Bxf@~ui0F|Z&~Ch+{zuWM zV_Xou62PlAdzaWQCIPXi4Ggh)eyuVvBmggJ6TLW;whFFQ@FWbpVoda+;=Ee6c`F#J{2$o4}*Q<#*K>v z@B8=f^8ER8b-t}AcXr8Y0|pF`kt0Vs2Tn7v>!!X-_O-XSOFo~MhYughj2SZ&5Vjow z7~j5qlkMBL%Yg$23YgZ`)+RlB_LS?_ugm7mo8`re7wWj(lu<6Oy?y((Or1Ja-`gda zdDk>&1;&mYD+?AZkn`uytIDIIR<eZ`NMF9$qVM702Jo}yi=!6>FxFF*UQYAGv(#W zm)btMhzmWJo!K8hepG)qH#bXTW1|KEAg)`tuE0j|y0-S;;I+24%915Zlzp_DJr#hcO1t{q&`bTtSLR5HDT2q(KA_0CD5Sjeose z?8gd_VFqySnl)<*z(eSQFbU`2T&#*6%Ko_-{-`r3msv`I&`S)-Md$T2YZS#2p$$Rd7Q`VP`Te`An#Q2ccMr$Uj#5yrc9B? zj~{Es1lcn*-!o^<=>6~CzgJ!u=^vJf6DP|2`STTsT$-Ai6l+n&v}x1SF}^G?@9WpE zvT)%-*|%?>(`3t;q>tu=irl<;Q`sz3sF+jOvuBU&-o0CSU9XocY zeMk?P0(MuYNvA9SK~Vr8B1aAKtP~ao4H~2vH+=YTecV)AXwyD?_#l%fPu3X*)E9Vi z1l(Y}9hke8zdV=D7Y`41&7C_}**oN@w$j2%qS+#2F|Re92*E_t26)&9K#^xRG&IQ7 zt5=n6METf{H4E*~bA1Cg(RuUcsTi?K(^@Al&R>T z;He=fAdGR`kK#LLAdNj&fXDD-)~s3jye(U{DDbGh*iHo3;@IH9gJtX1t-9|$bV%O3 zdGptKVCS}N+hpg?o!S&^*swumFhN-k?Jg9aNs}h&XG(hn^s z05E>rv}u#<+OeGn7GENAS?J0G`>WVS83~ zm_uxZhrM|5qLQ@$nkmY&bm>yHAEE;m*ir1ayG%_`U22{5>P|bA*c9<=f`{!m z;DM!J8kH8>R8y1%h-PyJQ?YFaM^t_A|=r!@!>fiFfDz*Ev;06cCp%_ArPi8c?NL;#*31>FNHK*MpI z4-o0;j~qE7ckbNLBehZrXZ(VZ2>}$(r8$xll0H~~j03|h03H*64$t5-5DYLc3_Ofd zFvBCPw0Qurp`lTYi$VN}d%OOQ#B<$m$|m~k*)ydFqG^I*_~nYw1VD`*Jz9alW@~~+ zkP*sY!8N=VE6T)gOG~pndGbWRkWAE=kniDAU!Wuh4Y1_6zEPt_DYix_C{Le0El_z_ z#=wCCGZ|pX--;XJTS>!s;{d6}ge+JXHN?zxDCLyndXTw^Q2~JUCD}M>FYNn=`Vw!D zxtHWKr~0Q}^^Xm+QDf?u#>d1I$O@Q`)olQO#;aIA2`a6Rdxl#$@ zl`}zCtxUjJjtW&z<+`(DJ?K-_YRW9)Okm*@KnkD%(;)lZJb{lNH6NH(l*@FAt|#L5 zLnbdvFA$F?=}-M~6+IDmf~nxsoR+w@rh<<%Nw*cKrkM`v8C!y8Rj;c5j3CBbglYYE g7@^n1xo29-FHv85xt2WvhX4Qo07*qoM6N<$f~BCLssI20 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-40x40@3x.png b/src-tauri/icons/ios/AppIcon-40x40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..74062d5ffe611de22e7dfc4a46cf812e1ed556aa GIT binary patch literal 3827 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 W13#W5O+rcr96NOKpZtTA8~+D6Zb%0J literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-60x60@2x.png b/src-tauri/icons/ios/AppIcon-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..74062d5ffe611de22e7dfc4a46cf812e1ed556aa GIT binary patch literal 3827 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 Z{|DzC357J_R`dV>002ovPDHLkV1mF2t~CGv literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-76x76@2x.png b/src-tauri/icons/ios/AppIcon-76x76@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a9db31d624f182699a13b90bd910b824f1c61919 GIT binary patch literal 4912 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 i%jN9=bD24WIQ|0$9DenHGXpOG0000v literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png b/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f331ad63799cd2a1f428b6f7a0b9c53f78a43069 GIT binary patch literal 5483 zcmV-x6_o0UP);a?a7l*dP!>Q*#9RD%X?HwXenw~epUevf{h z@w@cwk`BUu7SZqIJZ|DOr2U?+BWMCR^G@ur0pQAY3OENd(NPNPEgWOxAEDyUs0u1< z9j6gM^$MKaWb+B*w>bX&EI>v!fm0H=LHg}Q0lSZ$_buS82`DorEDF+REE*CJivTuA z18UZb=mSWd2B$d@>{gNhS$80o25b^@`T$ZV!I{Js?SGpSH%v15;bP8*umV*V zGe1;traI(fb>j49GwLt_8rDTu+3_|DFo(I~6nj=F^W!gbHc>R|gUKJpyoGfD=9mDX zjw8qlTD=1&Tb<}IA!5brZRXpFdq0`eeB;_H6h144ykbsMemE!w4TtDs3Mk!OuOA3N z!y!fFGCZnabuL<$s9bWPwPa2KrkMCzf>TVnFsG=JWGGQ36-*Zi)|;&fwK@NxZEA0q zP{Hs2CfJ1(Qa#dNmVGwcIX3U$h`lCcRbr;LO(MJ!@1rP#8i zG!oX7VTeVBW7Z|`kueDK9#%Y|m~k0ByWx~2vaoCkY5RmipE9yjm8|_uQ3eew`j|3g zGn7>z8H37y^1k(X0NRr0 zCSw@o;gy+FlI=2vnVb&`^c9yOW1xD^R6VD#ri@|NAccccHOr7u)EXx;r-5dt8@QHP zHcRr4Y+8{zUQ->}vz6nI0@rWa#x0DEjj1pUD<4CftMTL5xF*+KuU=&xUCikVYw~>B z+_`hrfB*fLIFUSRG$TlS-D!+c?EruQ&dFg$20u`aE>+S!Oqnu8?Yir(6DDHZ1QPQU`M}>{eE#|8g|8zCnD{sO zoK>!8haGlMlO|1aS&S3(S~&_+x;8ku%{3T=-avef&oF(MNSH$M8;gFF83fFE^X91| zk32F4CcaPCS@Z+fkNenatF6?mS+mqK%PbS$C%=E?Nw<(NWkY!><+ zyYIeR15^X1r1^^q2(dV09(LGa>ZO-nih)^n(BE&p_15Zv2OiL@iGS05^80rUpd_a= zuRYA5)yO4af>A#F@I&?MufOU^qKU)jHP>8I-E+@9YR4USR13=bXE~n+u7iMi#1TiR zIdkS%1Lii{Y@>szwbx!degWt{fB*e=^}z=p=<_=U&{$4q;xP23Q2OGFFIJmxzPUQ! zfCIFDh>0VhU;@`zV+{?^op;_@Gfk18Chx%c;1eQM1Yo}W^2=6%dEb5aX<+jE!sjo) z{8Als&_O!*JM+vlJ50TDy~Kmte5P2gy=jlYg5#6$?YG~mTW+~U{r&gf>iOrNR|g+_ zum&iA!Y6X|)mK+{-F27RX{ViH#<3;!!troEq=;tDoM{!9+ikZUW6aTx`vNd=zfV8? zwEF9>ztl}P-K0MK^i$=~(lcp2Bh&W`QyL>gF0tl6|NIlLz98@S?z``10u(+dqIg>= z817@@ypKQrcZ`BRA%`5IQ%V%YQ_$pcT8Z!& z=G`F46#**&kpTL|7hfa-6cfJJUVBvrC;{`EZ@$r{oPr;ES*ijPrhEdJ3u0jMVC${7 z-s)gzM-%di7aS&ZiE~~fND~Nv!WT;dC{}xJyX`i$#~yo>1}L59yYIf!c}$z8yc?J! z9l!)*zW(~_mCsjKlF_L%Up1Q?poboMsP@fFfUdI2D(cQV?^Jv4xo1y+n*JLH3i6l$ zrcG0x223#Yj2Sb$17=U=^cA2meQ6B3^2#f#+i$-;_CeF4cn)07m`5FTln%lu-)JNF ziGexV2}}fj0OqT&zM2Y5pU5UGpV4y*pzpl%PAWjbpm*GHM;yf`0Tikx)n2zJ#spAa zeDOtVJ|-3l76w1#*U{=W<$R?{`Mag|1UQ>e_M6AVBS=CX6b#A%N}zk;g%{MDZ@#Is z0Z7%r$3*aB)08941z?(aOqg;6Kd-&^n$M=ZO9axG4STtXM--m~(A8F3P5YpnLFqvu zu?~O$l#tMY!EBmx48E%>Xl0JvL2cy9C^VkfP%rWl4JrDE&UF z+%!n?v?KV*@-h2S0#X+S4UI@NY6^n_pfK@BWSaoRQYRQR7K<=|lH|<> zFrh92*t<=6D-M2&`k0P`GwQWMn(%;$wW|}E43rt@kc3MI= zQ%OP7d{6*1i$Sr}NhZFEKS!)fvNxoQAbU#+egMp}34Oy0P)5fZ>0L5 z@C5--{G7zR_*q^M5Ge6?I35!I&|^-XJULb|amK8wX7Z(En6D58O==L87R9HTcmzpc zy2~%WTrI!+^7?zEOeY_dgue7O{ft0~ug^N`EcMVs52Z%sV9ct*WV}FC+>ScUXDE9u zrl*a?9!OlMhO)N?+5@mRxd4wg3M6Yf0OcS6-?AowQbt zbP;DvV%#Dhs;$aG@tYSJnDK`g8P%4~m1m&361mCu-+#YSB+Y$7Q*lnfBM{(Rk3RaS zPV<2E@Ihu834O3Ff*!0&K?F^#7T~{dVJQhrIe^K7pDIG(lTSWbmqI&S&%UtHtjpl! ztatwT=c`LEz0{g2XqR1fQI9?Lm|AM7r8-0*#G-uSp(h2%Mn_?)M>IGWUwrYd;yVI1 z2M(0`k38~77ck-L?zY=*ng!{cS&}&X4*b|N&NxG@u)+#HfHT7X#$2sW=aco*Pd{k} zdhWUBtmPq3JMA=e%{A8~PBfYEwAL~NNIG6pT|G)mF1qNVjv_Vu9YFTrgAc}x+psn@ zF%APCdT-KXfB*gW>X>7W(f(Z(fD%Y>j3=LbvZpB7OnhfW%yb;2u)vHcOr!JBO98(Z zZUw|9MRlgO`Y@@Qs*>EhiMIFxeje0CnDhw{jFe^`3WU%;hR%`p9-C2m7C7incQxKC7BE+}1sK|nzSjq+X_SphQLDB%So z^Yg^Hz47Zs?bETx9@~*MXyAyvQYG<~9nxo(EdwUTLPaCQ$Tm}62(-{;E{ToF>|11O?hsEbISS%yIgI3IoVk(H%Ex(3MKvW`bD6iPA7g@Fc*AoOuP zoiixpXvj5Isj@`3I_Np8G3dq{Z)`0IkAZ5- zvd5$Ag^G#iL45>hqrho0D1xLkACx*ILw|{OGs>bM8mXaWmtD3)ZB!KG#Go+oo&q#z z95~HH{jIm&s+rLQD18m{4}GWElBR4D9&Cy8?X%B5m5xa!9t`TK59*Iur*eqA9~el8 zqsR;$fjP6$9!BsF&p!L?7!18OOW=z5UZx!#h?iJmiCDu~6`^s<;hA@HD$_UWgeUYU_i2E|HN zRXuA>dL{+VE8z(ozy0=`-enETd|Wl2+5d5T648hY05vt0SW$vP9X=-X+fX2X*B0z=2I7&3IEJ@;E1Y4-EL=Dk_2Og+4*<_Qh5)UqrhDk=Fuqps0wwye9 z(zvi>j($O0-gZ!5yUR*=nqc@^=+cJISbZsC(m1OTFrh+6sRXaSBv3-zi7HCyF(DT2 zHITO2ci(-r?@ECc9nb9WQMFzj_kxYHkf`5q!wp?#Pk&NLU@Tg%#^)k|5eMcLTWk>n zlh>_NlzqVk7ig6|luiITDdj`j!=Ci#&`8 zU?M$(YEB*$RmsD0g*#Su(z@GKQSf`vdOL{Q(fD8nibSP(8Iv|6px-b1oMIoe&ANHI z+d(}=ORG&|(6s)XfvdpG3r-HqEXIT>M_;6>`A16eXdkql+TjcefD(i9Ac;CG>&;}F zW8#B6JGgn-%!?)-oix&bi4_(A6P-hB0dwlqsXA4(?z-#7xkoM_CV=whUIb7?`e4w! zCf)-p7cyOSfeBMiEp4jyTmmqW+kEP&r!>f(c;X4Q{`%{8rIWy*052DBmtok+10@m~uqj5D%xB@@JlT##*l>oDaZSZ@u-j$Yg^JHqaVU{xZ?|Q7)Xu zpb#hL-R;=%9!c?T8fmGdz(-(aG3NaF^EG3_$3zPon?2vBOqmh~J85Q@t^=!20BBMk zly5`Rt8bGJEw|G)$!Z)hDfpRS%N-QMeqah26r8lg>7gM#iONn5u+kqb>@sed{e z^+SD*R1F0qX^d&p$Apd)K?>J@D$D)uDb18-;-O|j!5mckC!Tnsnl^2kOTiIsDHs_z z%oH0t!Jy=)0EpOX8bC$at+|~FCD?5O6Fz2MVA9WL&YY=c&6-tc^~u~_7>RjP2>r(& zf9M=3fQc8=RNi1CS1E9d) zlaEQkR+-?3f|at@Ls2>Q$V8If;rw)zw8uIhEzdSs>Uaa;51w?=N$Q3hZb+?VPxA-4 zdxL#0r%#`*F1+x<*vBlIE+TUdCP(0g)Ds0nbRLsI%(>uh*YU?6uN6)nZDXA%Pl|j4 zC%+G{9>4&`$!fM>-Zuv)f(?L@m-SY;CVZYdcWy`Bles!#eve->UJNiWH|f62S0*@p z1gOnArK)S$wy(+Od1@(-2eFh5pUhUUVe6V)UPI5DM^8<{a}(sVtWL&o*)j`XVLy__ zGGz3^W*%IHz08kKQaTy+O7-=!%B_Aaxyg``fv2EyBQF=1GG+LaNeOM%h0BnUG{#Ee zD9oGsFj!QODx(Oegj%CQ`M+If=wzM|;G{_wK zz2jQH_$};by||BC$H*95DlzPLLjx)C5FfL)KBsX5qGA%p96ocVFlZpYsJjXFL9Ysi z!)OlLW^0k#IU;*Y>dL1EQy4dRU&TgijW z^D~TP>7lL=iQG=uQrRdC?zfpwc?gnv8rcE-wr=)67e*aQpjxYEUw7e$ zFsG7^AGLgo1(-v5=Bh>wz*Oxv8A!^jiL}qYVvK{bj&4-#^_)q2@rXZKogH29>szjD z*OHVY6_DoZ2g4WTTzYm+DdCg0+Y^xHXG+(em6K%}X?sE@ME8-$>-S0b7LiaR<@qQl zOFDgGhZKhJB`wu;A6(_-lk4L}fm?-Drn&>R@U{Eo>UdRsnbUmrn(%?T0qkNbpWC;U zHE&CUZM5J^QS1Z*I!-35TfRR5XWdsohRr;A&flaAMdO+(m|f7)CfO82WCU4hEXaSB hsQ4**4NXg#{ST0XY>Ipenp^+?002ovPDHLkV1nsVS`z>O literal 0 HcmV?d00001 diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs new file mode 100644 index 0000000..24d8edf --- /dev/null +++ b/src-tauri/src/lib.rs @@ -0,0 +1,418 @@ +use std::error::Error as StdError; +use std::fs::File; +use std::io::Write; +use std::net::TcpStream; +use std::path::PathBuf; +use std::sync::atomic::{AtomicBool, Ordering}; +use std::time::{Duration, Instant}; +use tauri::{ + http::{header, Response}, + Manager, WebviewWindow, +}; + +static SERVER_SPAWNED: AtomicBool = AtomicBool::new(false); + +const RUNTIME_INTERCEPT_SCRIPT: &str = r#" +(function() { + const origOpen = window.open; + window.open = function(url, target, features) { + if (url) { + window.location.href = url; + return window; + } + return origOpen.apply(this, arguments); + }; +})(); +"#; + +fn android_log(msg: &str) { + #[cfg(target_os = "android")] + { + let tag = std::ffi::CString::new("VylaGo").unwrap(); + let msg = std::ffi::CString::new(msg.replace('\0', "?")).unwrap(); + unsafe { + __android_log_write(4, tag.as_ptr(), msg.as_ptr()); + } + } + #[cfg(not(target_os = "android"))] + { + println!("{}", msg); + } +} + +#[cfg(target_os = "android")] +#[link(name = "log")] +extern "C" { + fn __android_log_write(prio: i32, tag: *const std::os::raw::c_char, text: *const std::os::raw::c_char) -> i32; +} + +#[cfg(target_os = "android")] +mod node_ffi { + extern "C" { + pub fn _ZN4node5StartEiPPc(argc: i32, argv: *mut *mut std::os::raw::c_char) -> i32; + } +} + +fn update_ui(window: &WebviewWindow, text: &str, percent: Option) { + let escaped_text = text.replace('\'', "\\'"); + let mut js = format!( + "var s=document.getElementById('status-message');if(s)s.textContent='{}';", + escaped_text + ); + + if let Some(pct) = percent { + js.push_str(&format!( + "var p=document.getElementById('progress-fill');if(p)p.style.width='{}%';", + pct + )); + } + + let _ = window.eval(&js); +} + +fn get_app_dir(app: &tauri::AppHandle) -> PathBuf { + let data_dir = app.path().app_data_dir().unwrap_or_else(|_| PathBuf::from("./vyla_data")); + android_log(&format!("app_data_dir: {}", data_dir.display())); + data_dir +} + +fn find_native_node_path() -> Option { + if let Ok(maps) = std::fs::read_to_string("/proc/self/maps") { + for line in maps.lines() { + if line.contains("libvyla_go_lib.so") { + if let Some(path_str) = line.split_whitespace().last() { + let lib_path = PathBuf::from(path_str); + if let Some(parent) = lib_path.parent() { + let candidate = parent.join("libnode.so"); + android_log(&format!("libnode.so sibling: {} exists={}", candidate.display(), candidate.exists())); + if candidate.exists() { + return Some(candidate); + } + } + } + } + } + } + None +} + +fn wait_for_port(port: u16, timeout: Duration) -> bool { + let start = Instant::now(); + let addr = format!("127.0.0.1:{}", port); + while start.elapsed() < timeout { + if TcpStream::connect(&addr).is_ok() { + return true; + } + std::thread::sleep(Duration::from_millis(100)); + } + false +} + +fn spawn_service_manager(base_dir: &std::path::Path) { + let logs_dir = base_dir.join("logs"); + let _ = std::fs::create_dir_all(&logs_dir); + let _ = std::fs::write(logs_dir.join("player.log"), ""); + + if SERVER_SPAWNED.swap(true, Ordering::SeqCst) { + return; + } + + let player_dir = base_dir.join("player"); + let server_script = player_dir.join("server.js"); + + if !server_script.exists() { + SERVER_SPAWNED.store(false, Ordering::SeqCst); + return; + } + + let node_modules = player_dir.join("node_modules"); + android_log(&format!("player_dir: {}", player_dir.display())); + android_log(&format!("server.js exists: {}", server_script.exists())); + android_log(&format!("node_modules exists: {}", node_modules.exists())); + + let lib_dir = find_native_node_path() + .and_then(|p| p.parent().map(|d| d.to_path_buf())) + .map(|d| d.to_string_lossy().to_string()) + .unwrap_or_default(); + + std::env::set_var("PORT", "3000"); + std::env::set_var("NODE_ENV", "production"); + std::env::set_var("TMDB_API_KEY", "3f6703f3e2a0b2b40fe4fbb3e1546244"); + std::env::set_var("TOKEN_SECRET", "4794cbb1f15531c45df16cbb7a80447170718d9ed859486d3fa0569d7fb6477a"); + std::env::set_var("NODE_PATH", node_modules.to_string_lossy().to_string()); + if !lib_dir.is_empty() { + std::env::set_var( + "LD_LIBRARY_PATH", + format!("{}:/data/data/com.vyla.go/lib:/system/lib64:/vendor/lib64", lib_dir), + ); + } + + let server_js = server_script.to_string_lossy().to_string(); + let player_dir_str = player_dir.to_string_lossy().to_string(); + + std::thread::spawn(move || { + #[cfg(target_os = "android")] + { + let _ = std::env::set_current_dir(&player_dir_str); + + let arg0 = std::ffi::CString::new("node").unwrap(); + let arg1 = std::ffi::CString::new(server_js.as_str()).unwrap(); + + let mut argv: Vec<*mut std::os::raw::c_char> = vec![ + arg0.as_ptr() as *mut _, + arg1.as_ptr() as *mut _, + std::ptr::null_mut(), + ]; + + android_log("calling node::Start via FFI"); + let ret = unsafe { node_ffi::_ZN4node5StartEiPPc(2, argv.as_mut_ptr()) }; + android_log(&format!("node::Start returned: {}", ret)); + + drop(arg0); + drop(arg1); + } + + #[cfg(not(target_os = "android"))] + { + android_log("non-android: skipping node_main FFI"); + } + }); + + let _ = wait_for_port(3000, Duration::from_secs(45)); +} + +fn apply_directory_replacements(dir: &std::path::Path, find_val: &str, replace_val: &str) { + if let Ok(entries) = std::fs::read_dir(dir) { + for entry in entries.flatten() { + let path = entry.path(); + if path.is_dir() { + apply_directory_replacements(&path, find_val, replace_val); + } else if path.is_file() { + let ext = path.extension().and_then(|s| s.to_str()).unwrap_or(""); + if matches!(ext, "html" | "js" | "json" | "css") { + if let Ok(content) = std::fs::read_to_string(&path) { + if content.contains(find_val) { + let modified = content.replace(find_val, replace_val); + let _ = std::fs::write(&path, modified); + } + } + } + } + } + } +} + +fn apply_patches(base_dir: &std::path::Path) { + let replacements_path = base_dir.join("config").join("replacements.json"); + if let Ok(content) = std::fs::read_to_string(&replacements_path) { + if let Ok(json) = serde_json::from_str::(&content) { + if let Some(map) = json.as_object() { + for (target_dir_name, rules) in map { + let target_dir = base_dir.join(target_dir_name); + if target_dir.exists() { + if let Some(rule_arr) = rules.as_array() { + for rule in rule_arr { + if let (Some(find_val), Some(replace_val)) = ( + rule.get("find").and_then(|v| v.as_str()), + rule.get("replace").and_then(|v| v.as_str()), + ) { + apply_directory_replacements(&target_dir, find_val, replace_val); + } + } + } + } + } + } + } + } +} + +async fn download_and_extract_payload(app: tauri::AppHandle, window: WebviewWindow) -> Result { + let base_dir = get_app_dir(&app); + std::fs::create_dir_all(&base_dir).map_err(|e| format!("Storage dir error: {}", e))?; + + let frontend_index = base_dir.join("frontend").join("index.html"); + if frontend_index.exists() { + apply_patches(&base_dir); + spawn_service_manager(&base_dir); + update_ui(&window, "Launching Vyla Go...", Some(100)); + return Ok(base_dir); + } + + update_ui(&window, "Connecting to GitLab...", Some(10)); + + let client = reqwest::Client::builder() + .user_agent("Mozilla/5.0 (Android) VylaGo/1.0") + .connect_timeout(std::time::Duration::from_secs(30)) + .redirect(reqwest::redirect::Policy::limited(10)) + .build() + .map_err(|e| format!("Client error: {}", e))?; + + let releases_url = "https://gitlab.com/api/v4/projects/vyla-entertainment%2Fhome/releases"; + let res = client.get(releases_url).send().await.map_err(|e| format!("Release check failed: {}", e))?; + let json: serde_json::Value = res.json().await.map_err(|e| format!("JSON error: {}", e))?; + + let download_url = json.get(0) + .and_then(|r| r.get("assets")) + .and_then(|a| a.get("links")) + .and_then(|l| l.as_array()) + .and_then(|links| { + links.iter().find(|item| { + item.get("name").and_then(|n| n.as_str()) == Some("update-payload.zip") + }) + }) + .and_then(|asset| asset.get("url")) + .and_then(|u| u.as_str()) + .ok_or_else(|| "Could not locate update-payload.zip link in release assets".to_string())?; + + update_ui(&window, "Downloading update payload...", Some(25)); + + android_log(&format!("Downloading from: {}", download_url)); + let response = client.get(download_url).send().await.map_err(|e| format!("Download error: {} (source: {:?})", e, StdError::source(&e)))?; android_log(&format!("Response status: {}", response.status())); + let total_size = response.content_length().unwrap_or(0) as usize; + + let temp_zip_path = base_dir.join("temp-payload.zip"); + let mut file = File::create(&temp_zip_path).map_err(|e| format!("Temp file error: {}", e))?; + + let mut stream = response.bytes_stream(); + let mut downloaded: usize = 0; + use futures_util::StreamExt; + + while let Some(item) = stream.next().await { + let chunk = item.map_err(|e| { + android_log(&format!("stream error detail: {:?}", e)); + format!("Stream error: {} (is_body: {}, is_timeout: {})", e, e.is_body(), e.is_timeout()) + })?; + file.write_all(&chunk).map_err(|e| format!("Write error: {}", e))?; + downloaded += chunk.len(); + + let percent = if total_size > 0 { + 10 + ((downloaded as f64 / total_size as f64) * 75.0) as u32 + } else { + 35 + }; + + update_ui( + &window, + &format!("Downloading package ({}%)...", percent), + Some(percent), + ); + } + + drop(file); + + update_ui(&window, "Unpacking archive resources...", Some(90)); + + let extract_dir = base_dir.clone(); + let zip_path_clone = temp_zip_path.clone(); + + tauri::async_runtime::spawn_blocking(move || -> Result<(), String> { + let zip_file = File::open(&zip_path_clone).map_err(|e| format!("Open zip error: {}", e))?; + let mut archive = zip::ZipArchive::new(zip_file).map_err(|e| format!("Zip parse error: {}", e))?; + archive.extract(&extract_dir).map_err(|e| format!("Extraction error: {}", e))?; + let _ = std::fs::remove_file(zip_path_clone); + apply_patches(&extract_dir); + Ok(()) + }) + .await + .map_err(|e| e.to_string())??; + + spawn_service_manager(&base_dir); + update_ui(&window, "Launching Vyla Go...", Some(100)); + + Ok(base_dir) +} + +#[cfg_attr(mobile, tauri::mobile_entry_point)] +pub fn run() { + tauri::Builder::default() + .plugin(tauri_plugin_shell::init()) + .plugin(tauri_plugin_process::init()) + .plugin(tauri_plugin_opener::init()) + .register_asynchronous_uri_scheme_protocol("vyla", |ctx, request, responder| { + let app_handle = ctx.app_handle().clone(); + let base_dir = get_app_dir(&app_handle); + + let uri_path = request.uri().path().to_string(); + let clean = uri_path.trim_start_matches('/'); + + let candidates = [ + base_dir.join(clean), + base_dir.join("frontend").join(clean), + base_dir.join("frontend/index.html"), + ]; + + let mut final_path = None; + for candidate in &candidates { + if candidate.exists() && candidate.is_file() { + final_path = Some(candidate.clone()); + break; + } + } + + if final_path.is_none() && (clean.is_empty() || clean == "/") { + final_path = Some(base_dir.join("frontend/index.html")); + } + + if let Some(path) = final_path { + if let Ok(data) = std::fs::read(&path) { + let ext = path.extension().and_then(|e| e.to_str()).unwrap_or(""); + let mime = match ext { + "html" => "text/html; charset=utf-8", + "js" => "application/javascript; charset=utf-8", + "css" => "text/css; charset=utf-8", + "png" => "image/png", + "jpg" | "jpeg" => "image/jpeg", + "svg" => "image/svg+xml", + "json" => "application/json", + _ => "application/octet-stream", + }; + + let response = Response::builder() + .header(header::CONTENT_TYPE, mime) + .header(header::ACCESS_CONTROL_ALLOW_ORIGIN, "*") + .header(header::ACCESS_CONTROL_ALLOW_METHODS, "GET, POST, OPTIONS") + .header(header::ACCESS_CONTROL_ALLOW_HEADERS, "*") + .body(data) + .unwrap(); + responder.respond(response); + return; + } + } + + let response = Response::builder() + .status(404) + .body(b"Not Found".to_vec()) + .unwrap(); + responder.respond(response); + }) + .setup(|app| { + let handle = app.handle().clone(); + + tauri::async_runtime::spawn(async move { + std::thread::sleep(std::time::Duration::from_millis(400)); + + if let Some(window) = handle.get_webview_window("main") { + update_ui(&window, "Initializing Vyla Go engine...", Some(5)); + + match download_and_extract_payload(handle.clone(), window.clone()).await { + Ok(_) => { + std::thread::sleep(std::time::Duration::from_millis(400)); + let _ = window.eval("window.location.replace('http://vyla.localhost/frontend/index.html');"); + } + Err(err) => { + update_ui( + &window, + &format!("Error: {}", err), + Some(0), + ); + } + } + } + }); + + Ok(()) + }) + .run(tauri::generate_context!()) + .expect("error while running tauri application"); +} \ No newline at end of file diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs new file mode 100644 index 0000000..ceccbff --- /dev/null +++ b/src-tauri/src/main.rs @@ -0,0 +1,5 @@ +#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] + +fn main() { + vyla_go_lib::run(); +} \ No newline at end of file diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json new file mode 100644 index 0000000..cb2571c --- /dev/null +++ b/src-tauri/tauri.conf.json @@ -0,0 +1,31 @@ +{ + "$schema": "https://schema.tauri.app/config/2", + "productName": "Vyla Go", + "version": "1.0.0", + "identifier": "com.vyla.go", + "build": { + "beforeDevCommand": "", + "beforeBuildCommand": "", + "frontendDist": "../ui" + }, + "app": { + "windows": [ + { + "title": "Vyla Go", + "label": "main", + "fullscreen": false, + "resizable": true + } + ], + "security": { + "csp": null + } + }, + "bundle": { + "active": true, + "targets": "all", + "icon": [ + "icons/icon.png" + ] + } +} \ No newline at end of file diff --git a/ui/index.html b/ui/index.html new file mode 100644 index 0000000..d4b2e76 --- /dev/null +++ b/ui/index.html @@ -0,0 +1,233 @@ + + + + + + + Vyla Go + + + + +
    + +
    + +
    + Logo +
    + +
    +
    Starting runtime engine...
    +
    +
    +
    +
    + + + + + \ No newline at end of file