diff --git a/README.md b/README.md
index 8f79e50..441faf7 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,7 @@
-# Rusty-slicer
-[WIP] A tool to slice single file playlist into multiple tracks
+# Tauri + Vanilla
+
+This template should help get you started developing with Tauri in vanilla HTML, CSS and Javascript.
+
+## Recommended IDE Setup
+
+- [VS Code](https://code.visualstudio.com/) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer)
diff --git a/src-tauri/.gitignore b/src-tauri/.gitignore
new file mode 100644
index 0000000..f4dfb82
--- /dev/null
+++ b/src-tauri/.gitignore
@@ -0,0 +1,4 @@
+# Generated by Cargo
+# will have compiled files and executables
+/target/
+
diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock
new file mode 100644
index 0000000..77b2df8
--- /dev/null
+++ b/src-tauri/Cargo.lock
@@ -0,0 +1,3744 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "addr2line"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+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.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
+dependencies = [
+ "alloc-no-stdlib",
+]
+
+[[package]]
+name = "android-tzdata"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
+
+[[package]]
+name = "android_system_properties"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
+
+[[package]]
+name = "atk"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c3d816ce6f0e2909a96830d6911c2aff044370b1ef92d7f267b43bae5addedd"
+dependencies = [
+ "atk-sys",
+ "bitflags 1.3.2",
+ "glib",
+ "libc",
+]
+
+[[package]]
+name = "atk-sys"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "58aeb089fb698e06db8089971c7ee317ab9644bade33383f63631437b03aafb6"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps 6.2.0",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "backtrace"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "base64"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+
+[[package]]
+name = "base64"
+version = "0.21.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+
+[[package]]
+name = "block"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
+
+[[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 = "brotli"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f"
+dependencies = [
+ "alloc-no-stdlib",
+ "alloc-stdlib",
+ "brotli-decompressor",
+]
+
+[[package]]
+name = "brotli-decompressor"
+version = "2.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f"
+dependencies = [
+ "alloc-no-stdlib",
+ "alloc-stdlib",
+]
+
+[[package]]
+name = "bstr"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc"
+dependencies = [
+ "memchr",
+ "serde",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+
+[[package]]
+name = "bytemuck"
+version = "1.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f"
+
+[[package]]
+name = "byteorder"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+
+[[package]]
+name = "bytes"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+
+[[package]]
+name = "cairo-rs"
+version = "0.15.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c76ee391b03d35510d9fa917357c7f1855bd9a6659c95a1b392e33f49b3369bc"
+dependencies = [
+ "bitflags 1.3.2",
+ "cairo-sys-rs",
+ "glib",
+ "libc",
+ "thiserror",
+]
+
+[[package]]
+name = "cairo-sys-rs"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps 6.2.0",
+]
+
+[[package]]
+name = "cargo_toml"
+version = "0.15.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "599aa35200ffff8f04c1925aa1acc92fa2e08874379ef42e210a80e527e60838"
+dependencies = [
+ "serde",
+ "toml 0.7.8",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.83"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+dependencies = [
+ "libc",
+]
+
+[[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.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3431df59f28accaf4cb4eed4a9acc66bea3f3c3753aa6cdc2f024174ef232af7"
+dependencies = [
+ "smallvec",
+]
+
+[[package]]
+name = "cfg-expr"
+version = "0.15.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d"
+dependencies = [
+ "smallvec",
+ "target-lexicon",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "chrono"
+version = "0.4.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b"
+dependencies = [
+ "android-tzdata",
+ "iana-time-zone",
+ "num-traits",
+ "serde",
+ "windows-targets 0.52.0",
+]
+
+[[package]]
+name = "cocoa"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a"
+dependencies = [
+ "bitflags 1.3.2",
+ "block",
+ "cocoa-foundation",
+ "core-foundation",
+ "core-graphics",
+ "foreign-types",
+ "libc",
+ "objc",
+]
+
+[[package]]
+name = "cocoa-foundation"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7"
+dependencies = [
+ "bitflags 1.3.2",
+ "block",
+ "core-foundation",
+ "core-graphics-types",
+ "libc",
+ "objc",
+]
+
+[[package]]
+name = "color_quant"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
+
+[[package]]
+name = "combine"
+version = "4.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4"
+dependencies = [
+ "bytes",
+ "memchr",
+]
+
+[[package]]
+name = "convert_case"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
+
+[[package]]
+name = "core-foundation"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
+
+[[package]]
+name = "core-graphics"
+version = "0.22.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "core-graphics-types",
+ "foreign-types",
+ "libc",
+]
+
+[[package]]
+name = "core-graphics-types"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "libc",
+]
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "crc32fast"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
+dependencies = [
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+
+[[package]]
+name = "crypto-common"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+dependencies = [
+ "generic-array",
+ "typenum",
+]
+
+[[package]]
+name = "cssparser"
+version = "0.27.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a"
+dependencies = [
+ "cssparser-macros",
+ "dtoa-short",
+ "itoa 0.4.8",
+ "matches",
+ "phf 0.8.0",
+ "proc-macro2",
+ "quote",
+ "smallvec",
+ "syn 1.0.109",
+]
+
+[[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.48",
+]
+
+[[package]]
+name = "ctor"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e"
+dependencies = [
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "darling"
+version = "0.20.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc5d6b04b3fd0ba9926f945895de7d806260a2d7431ba82e7edaecb043c4c6b8"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.20.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04e48a959bcd5c761246f5d090ebc2fbf7b9cd527a492b07a67510c108f1e7e3"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.20.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d1545d67a2149e1d93b7e5c7752dce5a7426eb5d1357ddcfd89336b94444f77"
+dependencies = [
+ "darling_core",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "deranged"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
+dependencies = [
+ "powerfmt",
+ "serde",
+]
+
+[[package]]
+name = "derive_more"
+version = "0.99.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
+dependencies = [
+ "convert_case",
+ "proc-macro2",
+ "quote",
+ "rustc_version",
+ "syn 1.0.109",
+]
+
+[[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-next"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
+dependencies = [
+ "cfg-if",
+ "dirs-sys-next",
+]
+
+[[package]]
+name = "dirs-sys-next"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi",
+]
+
+[[package]]
+name = "dispatch"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
+
+[[package]]
+name = "dtoa"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653"
+
+[[package]]
+name = "dtoa-short"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dbaceec3c6e4211c79e7b1800fb9680527106beb2f9c51904a3210c03a448c74"
+dependencies = [
+ "dtoa",
+]
+
+[[package]]
+name = "dunce"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
+
+[[package]]
+name = "embed-resource"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3bde55e389bea6a966bd467ad1ad7da0ae14546a5bc794d16d1e55e7fca44881"
+dependencies = [
+ "cc",
+ "memchr",
+ "rustc_version",
+ "toml 0.8.10",
+ "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.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+
+[[package]]
+name = "fdeflate"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
+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 = "filetime"
+version = "0.2.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "flate2"
+version = "1.0.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
+dependencies = [
+ "crc32fast",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "futf"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843"
+dependencies = [
+ "mac",
+ "new_debug_unreachable",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
+dependencies = [
+ "futures-core",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+
+[[package]]
+name = "futures-macro"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "futures-task"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+
+[[package]]
+name = "futures-util"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
+dependencies = [
+ "futures-core",
+ "futures-macro",
+ "futures-task",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "fxhash"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
+dependencies = [
+ "byteorder",
+]
+
+[[package]]
+name = "gdk"
+version = "0.15.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6e05c1f572ab0e1f15be94217f0dc29088c248b14f792a5ff0af0d84bcda9e8"
+dependencies = [
+ "bitflags 1.3.2",
+ "cairo-rs",
+ "gdk-pixbuf",
+ "gdk-sys",
+ "gio",
+ "glib",
+ "libc",
+ "pango",
+]
+
+[[package]]
+name = "gdk-pixbuf"
+version = "0.15.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad38dd9cc8b099cceecdf41375bb6d481b1b5a7cd5cd603e10a69a9383f8619a"
+dependencies = [
+ "bitflags 1.3.2",
+ "gdk-pixbuf-sys",
+ "gio",
+ "glib",
+ "libc",
+]
+
+[[package]]
+name = "gdk-pixbuf-sys"
+version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7"
+dependencies = [
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps 6.2.0",
+]
+
+[[package]]
+name = "gdk-sys"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32e7a08c1e8f06f4177fb7e51a777b8c1689f743a7bc11ea91d44d2226073a88"
+dependencies = [
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "pkg-config",
+ "system-deps 6.2.0",
+]
+
+[[package]]
+name = "gdkwayland-sys"
+version = "0.15.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cca49a59ad8cfdf36ef7330fe7bdfbe1d34323220cc16a0de2679ee773aee2c2"
+dependencies = [
+ "gdk-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pkg-config",
+ "system-deps 6.2.0",
+]
+
+[[package]]
+name = "gdkx11-sys"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4b7f8c7a84b407aa9b143877e267e848ff34106578b64d1e0a24bf550716178"
+dependencies = [
+ "gdk-sys",
+ "glib-sys",
+ "libc",
+ "system-deps 6.2.0",
+ "x11",
+]
+
+[[package]]
+name = "generator"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5cc16584ff22b460a382b7feec54b23d2908d858152e5739a120b949293bd74e"
+dependencies = [
+ "cc",
+ "libc",
+ "log",
+ "rustversion",
+ "windows 0.48.0",
+]
+
+[[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.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi 0.9.0+wasi-snapshot-preview1",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+]
+
+[[package]]
+name = "gimli"
+version = "0.28.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
+
+[[package]]
+name = "gio"
+version = "0.15.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68fdbc90312d462781a395f7a16d96a2b379bb6ef8cd6310a2df272771c4283b"
+dependencies = [
+ "bitflags 1.3.2",
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "gio-sys",
+ "glib",
+ "libc",
+ "once_cell",
+ "thiserror",
+]
+
+[[package]]
+name = "gio-sys"
+version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps 6.2.0",
+ "winapi",
+]
+
+[[package]]
+name = "glib"
+version = "0.15.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d"
+dependencies = [
+ "bitflags 1.3.2",
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-task",
+ "glib-macros",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "once_cell",
+ "smallvec",
+ "thiserror",
+]
+
+[[package]]
+name = "glib-macros"
+version = "0.15.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10c6ae9f6fa26f4fb2ac16b528d138d971ead56141de489f8111e259b9df3c4a"
+dependencies = [
+ "anyhow",
+ "heck 0.4.1",
+ "proc-macro-crate",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "glib-sys"
+version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4"
+dependencies = [
+ "libc",
+ "system-deps 6.2.0",
+]
+
+[[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
+[[package]]
+name = "globset"
+version = "0.4.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
+dependencies = [
+ "aho-corasick",
+ "bstr",
+ "log",
+ "regex-automata 0.4.5",
+ "regex-syntax 0.8.2",
+]
+
+[[package]]
+name = "gobject-sys"
+version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps 6.2.0",
+]
+
+[[package]]
+name = "gtk"
+version = "0.15.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92e3004a2d5d6d8b5057d2b57b3712c9529b62e82c77f25c1fecde1fd5c23bd0"
+dependencies = [
+ "atk",
+ "bitflags 1.3.2",
+ "cairo-rs",
+ "field-offset",
+ "futures-channel",
+ "gdk",
+ "gdk-pixbuf",
+ "gio",
+ "glib",
+ "gtk-sys",
+ "gtk3-macros",
+ "libc",
+ "once_cell",
+ "pango",
+ "pkg-config",
+]
+
+[[package]]
+name = "gtk-sys"
+version = "0.15.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d5bc2f0587cba247f60246a0ca11fe25fb733eabc3de12d1965fc07efab87c84"
+dependencies = [
+ "atk-sys",
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gdk-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "system-deps 6.2.0",
+]
+
+[[package]]
+name = "gtk3-macros"
+version = "0.15.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "684c0456c086e8e7e9af73ec5b84e35938df394712054550e81558d21c44ab0d"
+dependencies = [
+ "anyhow",
+ "proc-macro-crate",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+[[package]]
+name = "hashbrown"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+
+[[package]]
+name = "heck"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
+dependencies = [
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd"
+
+[[package]]
+name = "hex"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+
+[[package]]
+name = "html5ever"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7"
+dependencies = [
+ "log",
+ "mac",
+ "markup5ever",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "http"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa 1.0.10",
+]
+
+[[package]]
+name = "http-range"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573"
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+ "windows-core",
+]
+
+[[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.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3804960be0bb5e4edb1e1ad67afd321a9ecfd875c3e65c099468fd2717d7cae"
+dependencies = [
+ "byteorder",
+ "png",
+]
+
+[[package]]
+name = "ident_case"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+
+[[package]]
+name = "idna"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "ignore"
+version = "0.4.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1"
+dependencies = [
+ "crossbeam-deque",
+ "globset",
+ "log",
+ "memchr",
+ "regex-automata 0.4.5",
+ "same-file",
+ "walkdir",
+ "winapi-util",
+]
+
+[[package]]
+name = "image"
+version = "0.24.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "034bbe799d1909622a74d1193aa50147769440040ff36cb2baa947609b0a4e23"
+dependencies = [
+ "bytemuck",
+ "byteorder",
+ "color_quant",
+ "num-traits",
+]
+
+[[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.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177"
+dependencies = [
+ "equivalent",
+ "hashbrown 0.14.3",
+ "serde",
+]
+
+[[package]]
+name = "infer"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f551f8c3a39f68f986517db0d1759de85881894fdc7db798bd2a9df9cb04b7fc"
+dependencies = [
+ "cfb",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "itoa"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
+
+[[package]]
+name = "itoa"
+version = "1.0.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+
+[[package]]
+name = "javascriptcore-rs"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf053e7843f2812ff03ef5afe34bb9c06ffee120385caad4f6b9967fcd37d41c"
+dependencies = [
+ "bitflags 1.3.2",
+ "glib",
+ "javascriptcore-rs-sys",
+]
+
+[[package]]
+name = "javascriptcore-rs-sys"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "905fbb87419c5cde6e3269537e4ea7d46431f3008c5d057e915ef3f115e7793c"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps 5.0.0",
+]
+
+[[package]]
+name = "jni"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c"
+dependencies = [
+ "cesu8",
+ "combine",
+ "jni-sys",
+ "log",
+ "thiserror",
+ "walkdir",
+]
+
+[[package]]
+name = "jni-sys"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
+
+[[package]]
+name = "js-sys"
+version = "0.3.68"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "json-patch"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55ff1e1486799e3f64129f8ccad108b38290df9cd7015cd31bed17239f0789d6"
+dependencies = [
+ "serde",
+ "serde_json",
+ "thiserror",
+ "treediff",
+]
+
+[[package]]
+name = "kuchikiki"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f29e4755b7b995046f510a7520c42b2fed58b77bd94d5a87a8eb43d2fd126da8"
+dependencies = [
+ "cssparser",
+ "html5ever",
+ "indexmap 1.9.3",
+ "matches",
+ "selectors",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libc"
+version = "0.2.153"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+
+[[package]]
+name = "libredox"
+version = "0.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+dependencies = [
+ "bitflags 2.4.2",
+ "libc",
+ "redox_syscall",
+]
+
+[[package]]
+name = "line-wrap"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9"
+dependencies = [
+ "safemem",
+]
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+
+[[package]]
+name = "lock_api"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+
+[[package]]
+name = "loom"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5"
+dependencies = [
+ "cfg-if",
+ "generator",
+ "scoped-tls",
+ "serde",
+ "serde_json",
+ "tracing",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "mac"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
+
+[[package]]
+name = "malloc_buf"
+version = "0.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "markup5ever"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016"
+dependencies = [
+ "log",
+ "phf 0.10.1",
+ "phf_codegen 0.10.0",
+ "string_cache",
+ "string_cache_codegen",
+ "tendril",
+]
+
+[[package]]
+name = "matchers"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
+dependencies = [
+ "regex-automata 0.1.10",
+]
+
+[[package]]
+name = "matches"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
+
+[[package]]
+name = "memchr"
+version = "2.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+
+[[package]]
+name = "memoffset"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "miniz_oxide"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
+dependencies = [
+ "adler",
+ "simd-adler32",
+]
+
+[[package]]
+name = "ndk"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4"
+dependencies = [
+ "bitflags 1.3.2",
+ "jni-sys",
+ "ndk-sys",
+ "num_enum",
+ "thiserror",
+]
+
+[[package]]
+name = "ndk-context"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
+
+[[package]]
+name = "ndk-sys"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97"
+dependencies = [
+ "jni-sys",
+]
+
+[[package]]
+name = "new_debug_unreachable"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
+
+[[package]]
+name = "nodrop"
+version = "0.1.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
+
+[[package]]
+name = "nu-ansi-term"
+version = "0.46.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
+dependencies = [
+ "overload",
+ "winapi",
+]
+
+[[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
+name = "num-traits"
+version = "0.2.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "num_enum"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9"
+dependencies = [
+ "num_enum_derive",
+]
+
+[[package]]
+name = "num_enum_derive"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799"
+dependencies = [
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "objc"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
+dependencies = [
+ "malloc_buf",
+ "objc_exception",
+]
+
+[[package]]
+name = "objc_exception"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "objc_id"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
+dependencies = [
+ "objc",
+]
+
+[[package]]
+name = "object"
+version = "0.32.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "open"
+version = "3.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2078c0039e6a54a0c42c28faa984e115fb4c2d5bf2208f77d1961002df8576f8"
+dependencies = [
+ "pathdiff",
+ "windows-sys 0.42.0",
+]
+
+[[package]]
+name = "overload"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+
+[[package]]
+name = "pango"
+version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22e4045548659aee5313bde6c582b0d83a627b7904dd20dc2d9ef0895d414e4f"
+dependencies = [
+ "bitflags 1.3.2",
+ "glib",
+ "libc",
+ "once_cell",
+ "pango-sys",
+]
+
+[[package]]
+name = "pango-sys"
+version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps 6.2.0",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "pathdiff"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
+
+[[package]]
+name = "percent-encoding"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+
+[[package]]
+name = "phf"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
+dependencies = [
+ "phf_macros 0.8.0",
+ "phf_shared 0.8.0",
+ "proc-macro-hack",
+]
+
+[[package]]
+name = "phf"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
+dependencies = [
+ "phf_shared 0.10.0",
+]
+
+[[package]]
+name = "phf"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
+dependencies = [
+ "phf_macros 0.11.2",
+ "phf_shared 0.11.2",
+]
+
+[[package]]
+name = "phf_codegen"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815"
+dependencies = [
+ "phf_generator 0.8.0",
+ "phf_shared 0.8.0",
+]
+
+[[package]]
+name = "phf_codegen"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd"
+dependencies = [
+ "phf_generator 0.10.0",
+ "phf_shared 0.10.0",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526"
+dependencies = [
+ "phf_shared 0.8.0",
+ "rand 0.7.3",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
+dependencies = [
+ "phf_shared 0.10.0",
+ "rand 0.8.5",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
+dependencies = [
+ "phf_shared 0.11.2",
+ "rand 0.8.5",
+]
+
+[[package]]
+name = "phf_macros"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c"
+dependencies = [
+ "phf_generator 0.8.0",
+ "phf_shared 0.8.0",
+ "proc-macro-hack",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "phf_macros"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b"
+dependencies = [
+ "phf_generator 0.11.2",
+ "phf_shared 0.11.2",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
+
+[[package]]
+name = "plist"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef"
+dependencies = [
+ "base64 0.21.7",
+ "indexmap 2.2.3",
+ "line-wrap",
+ "quick-xml",
+ "serde",
+ "time",
+]
+
+[[package]]
+name = "png"
+version = "0.17.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f6c3c3e617595665b8ea2ff95a86066be38fb121ff920a9c0eb282abcd1da5a"
+dependencies = [
+ "bitflags 1.3.2",
+ "crc32fast",
+ "fdeflate",
+ "flate2",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[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-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-macro-hack"
+version = "0.5.20+deprecated"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.78"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quick-xml"
+version = "0.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+dependencies = [
+ "getrandom 0.1.16",
+ "libc",
+ "rand_chacha 0.2.2",
+ "rand_core 0.5.1",
+ "rand_hc",
+ "rand_pcg",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha 0.3.1",
+ "rand_core 0.6.4",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+dependencies = [
+ "ppv-lite86",
+ "rand_core 0.5.1",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core 0.6.4",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+dependencies = [
+ "getrandom 0.1.16",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom 0.2.12",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+dependencies = [
+ "rand_core 0.5.1",
+]
+
+[[package]]
+name = "rand_pcg"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
+dependencies = [
+ "rand_core 0.5.1",
+]
+
+[[package]]
+name = "raw-window-handle"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
+
+[[package]]
+name = "redox_syscall"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
+dependencies = [
+ "getrandom 0.2.12",
+ "libredox",
+ "thiserror",
+]
+
+[[package]]
+name = "regex"
+version = "1.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata 0.4.5",
+ "regex-syntax 0.8.2",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+dependencies = [
+ "regex-syntax 0.6.29",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax 0.8.2",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+
+[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "rustix"
+version = "0.38.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
+dependencies = [
+ "bitflags 2.4.2",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+
+[[package]]
+name = "ryu"
+version = "1.0.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
+
+[[package]]
+name = "safemem"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
+
+[[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 = "scoped-tls"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "selectors"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe"
+dependencies = [
+ "bitflags 1.3.2",
+ "cssparser",
+ "derive_more",
+ "fxhash",
+ "log",
+ "matches",
+ "phf 0.8.0",
+ "phf_codegen 0.8.0",
+ "precomputed-hash",
+ "servo_arc",
+ "smallvec",
+ "thin-slice",
+]
+
+[[package]]
+name = "semver"
+version = "1.0.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.196"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.196"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.113"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79"
+dependencies = [
+ "itoa 1.0.10",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_repr"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_with"
+version = "3.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15d167997bd841ec232f5b2b8e0e26606df2e7caa4c31b95ea9ca52b200bd270"
+dependencies = [
+ "base64 0.21.7",
+ "chrono",
+ "hex",
+ "indexmap 1.9.3",
+ "indexmap 2.2.3",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "serde_with_macros",
+ "time",
+]
+
+[[package]]
+name = "serde_with_macros"
+version = "3.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "865f9743393e638991566a8b7a479043c2c8da94a33e0a31f18214c9cae0a64d"
+dependencies = [
+ "darling",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "serialize-to-javascript"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9823f2d3b6a81d98228151fdeaf848206a7855a7a042bbf9bf870449a66cafb"
+dependencies = [
+ "serde",
+ "serde_json",
+ "serialize-to-javascript-impl",
+]
+
+[[package]]
+name = "serialize-to-javascript-impl"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "servo_arc"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432"
+dependencies = [
+ "nodrop",
+ "stable_deref_trait",
+]
+
+[[package]]
+name = "sha2"
+version = "0.10.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sharded-slab"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "simd-adler32"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
+
+[[package]]
+name = "siphasher"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
+
+[[package]]
+name = "slab"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+
+[[package]]
+name = "soup2"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2b4d76501d8ba387cf0fefbe055c3e0a59891d09f0f995ae4e4b16f6b60f3c0"
+dependencies = [
+ "bitflags 1.3.2",
+ "gio",
+ "glib",
+ "libc",
+ "once_cell",
+ "soup2-sys",
+]
+
+[[package]]
+name = "soup2-sys"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "009ef427103fcb17f802871647a7fa6c60cbb654b4c4e4c0ac60a31c5f6dc9cf"
+dependencies = [
+ "bitflags 1.3.2",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps 5.0.0",
+]
+
+[[package]]
+name = "stable_deref_trait"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+
+[[package]]
+name = "state"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dbe866e1e51e8260c9eed836a042a5e7f6726bb2b411dffeaa712e19c388f23b"
+dependencies = [
+ "loom",
+]
+
+[[package]]
+name = "string_cache"
+version = "0.8.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b"
+dependencies = [
+ "new_debug_unreachable",
+ "once_cell",
+ "parking_lot",
+ "phf_shared 0.10.0",
+ "precomputed-hash",
+ "serde",
+]
+
+[[package]]
+name = "string_cache_codegen"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988"
+dependencies = [
+ "phf_generator 0.10.0",
+ "phf_shared 0.10.0",
+ "proc-macro2",
+ "quote",
+]
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.48"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "system-deps"
+version = "5.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18db855554db7bd0e73e06cf7ba3df39f97812cb11d3f75e71c39bf45171797e"
+dependencies = [
+ "cfg-expr 0.9.1",
+ "heck 0.3.3",
+ "pkg-config",
+ "toml 0.5.11",
+ "version-compare 0.0.11",
+]
+
+[[package]]
+name = "system-deps"
+version = "6.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331"
+dependencies = [
+ "cfg-expr 0.15.7",
+ "heck 0.4.1",
+ "pkg-config",
+ "toml 0.8.10",
+ "version-compare 0.1.1",
+]
+
+[[package]]
+name = "tao"
+version = "0.16.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d22205b267a679ca1c590b9f178488d50981fc3e48a1b91641ae31593db875ce"
+dependencies = [
+ "bitflags 1.3.2",
+ "cairo-rs",
+ "cc",
+ "cocoa",
+ "core-foundation",
+ "core-graphics",
+ "crossbeam-channel",
+ "dispatch",
+ "gdk",
+ "gdk-pixbuf",
+ "gdk-sys",
+ "gdkwayland-sys",
+ "gdkx11-sys",
+ "gio",
+ "glib",
+ "glib-sys",
+ "gtk",
+ "image",
+ "instant",
+ "jni",
+ "lazy_static",
+ "libc",
+ "log",
+ "ndk",
+ "ndk-context",
+ "ndk-sys",
+ "objc",
+ "once_cell",
+ "parking_lot",
+ "png",
+ "raw-window-handle",
+ "scopeguard",
+ "serde",
+ "tao-macros",
+ "unicode-segmentation",
+ "uuid",
+ "windows 0.39.0",
+ "windows-implement",
+ "x11-dl",
+]
+
+[[package]]
+name = "tao-macros"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec114582505d158b669b136e6851f85840c109819d77c42bb7c0709f727d18c2"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "tar"
+version = "0.4.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb"
+dependencies = [
+ "filetime",
+ "libc",
+ "xattr",
+]
+
+[[package]]
+name = "target-lexicon"
+version = "0.12.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae"
+
+[[package]]
+name = "tauri"
+version = "1.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd27c04b9543776a972c86ccf70660b517ecabbeced9fb58d8b961a13ad129af"
+dependencies = [
+ "anyhow",
+ "cocoa",
+ "dirs-next",
+ "embed_plist",
+ "encoding_rs",
+ "flate2",
+ "futures-util",
+ "glib",
+ "glob",
+ "gtk",
+ "heck 0.4.1",
+ "http",
+ "ignore",
+ "objc",
+ "once_cell",
+ "open",
+ "percent-encoding",
+ "rand 0.8.5",
+ "raw-window-handle",
+ "regex",
+ "semver",
+ "serde",
+ "serde_json",
+ "serde_repr",
+ "serialize-to-javascript",
+ "state",
+ "tar",
+ "tauri-macros",
+ "tauri-runtime",
+ "tauri-runtime-wry",
+ "tauri-utils",
+ "tempfile",
+ "thiserror",
+ "tokio",
+ "url",
+ "uuid",
+ "webkit2gtk",
+ "webview2-com",
+ "windows 0.39.0",
+]
+
+[[package]]
+name = "tauri-build"
+version = "1.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e9914a4715e0b75d9f387a285c7e26b5bbfeb1249ad9f842675a82481565c532"
+dependencies = [
+ "anyhow",
+ "cargo_toml",
+ "dirs-next",
+ "heck 0.4.1",
+ "json-patch",
+ "semver",
+ "serde",
+ "serde_json",
+ "tauri-utils",
+ "tauri-winres",
+ "walkdir",
+]
+
+[[package]]
+name = "tauri-codegen"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1554c5857f65dbc377cefb6b97c8ac77b1cb2a90d30d3448114d5d6b48a77fc"
+dependencies = [
+ "base64 0.21.7",
+ "brotli",
+ "ico",
+ "json-patch",
+ "plist",
+ "png",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "semver",
+ "serde",
+ "serde_json",
+ "sha2",
+ "tauri-utils",
+ "thiserror",
+ "time",
+ "uuid",
+ "walkdir",
+]
+
+[[package]]
+name = "tauri-macros"
+version = "1.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "277abf361a3a6993ec16bcbb179de0d6518009b851090a01adfea12ac89fa875"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "tauri-codegen",
+ "tauri-utils",
+]
+
+[[package]]
+name = "tauri-runtime"
+version = "0.14.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf2d0652aa2891ff3e9caa2401405257ea29ab8372cce01f186a5825f1bd0e76"
+dependencies = [
+ "gtk",
+ "http",
+ "http-range",
+ "rand 0.8.5",
+ "raw-window-handle",
+ "serde",
+ "serde_json",
+ "tauri-utils",
+ "thiserror",
+ "url",
+ "uuid",
+ "webview2-com",
+ "windows 0.39.0",
+]
+
+[[package]]
+name = "tauri-runtime-wry"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6cae61fbc731f690a4899681c9052dde6d05b159b44563ace8186fc1bfb7d158"
+dependencies = [
+ "cocoa",
+ "gtk",
+ "percent-encoding",
+ "rand 0.8.5",
+ "raw-window-handle",
+ "tauri-runtime",
+ "tauri-utils",
+ "uuid",
+ "webkit2gtk",
+ "webview2-com",
+ "windows 0.39.0",
+ "wry",
+]
+
+[[package]]
+name = "tauri-utils"
+version = "1.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ece74810b1d3d44f29f732a7ae09a63183d63949bbdd59c61f8ed2a1b70150db"
+dependencies = [
+ "brotli",
+ "ctor",
+ "dunce",
+ "glob",
+ "heck 0.4.1",
+ "html5ever",
+ "infer",
+ "json-patch",
+ "kuchikiki",
+ "log",
+ "memchr",
+ "phf 0.11.2",
+ "proc-macro2",
+ "quote",
+ "semver",
+ "serde",
+ "serde_json",
+ "serde_with",
+ "thiserror",
+ "url",
+ "walkdir",
+ "windows-version",
+]
+
+[[package]]
+name = "tauri-winres"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5993dc129e544393574288923d1ec447c857f3f644187f4fbf7d9a875fbfc4fb"
+dependencies = [
+ "embed-resource",
+ "toml 0.7.8",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "rustix",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "tendril"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0"
+dependencies = [
+ "futf",
+ "mac",
+ "utf-8",
+]
+
+[[package]]
+name = "test-tauri"
+version = "0.0.0"
+dependencies = [
+ "serde",
+ "serde_json",
+ "tauri",
+ "tauri-build",
+]
+
+[[package]]
+name = "thin-slice"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c"
+
+[[package]]
+name = "thiserror"
+version = "1.0.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+]
+
+[[package]]
+name = "time"
+version = "0.3.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
+dependencies = [
+ "deranged",
+ "itoa 1.0.10",
+ "num-conv",
+ "powerfmt",
+ "serde",
+ "time-core",
+ "time-macros",
+]
+
+[[package]]
+name = "time-core"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
+
+[[package]]
+name = "time-macros"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
+dependencies = [
+ "num-conv",
+ "time-core",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+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.36.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
+dependencies = [
+ "backtrace",
+ "bytes",
+ "num_cpus",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "toml"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml"
+version = "0.7.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit 0.19.15",
+]
+
+[[package]]
+name = "toml"
+version = "0.8.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit 0.22.5",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.19.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
+dependencies = [
+ "indexmap 2.2.3",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow 0.5.40",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99e68c159e8f5ba8a28c4eb7b0c0c190d77bb479047ca713270048145a9ad28a"
+dependencies = [
+ "indexmap 2.2.3",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow 0.6.0",
+]
+
+[[package]]
+name = "tracing"
+version = "0.1.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+dependencies = [
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+dependencies = [
+ "once_cell",
+ "valuable",
+]
+
+[[package]]
+name = "tracing-log"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
+dependencies = [
+ "log",
+ "once_cell",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-subscriber"
+version = "0.3.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
+dependencies = [
+ "matchers",
+ "nu-ansi-term",
+ "once_cell",
+ "regex",
+ "sharded-slab",
+ "smallvec",
+ "thread_local",
+ "tracing",
+ "tracing-core",
+ "tracing-log",
+]
+
+[[package]]
+name = "treediff"
+version = "4.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d127780145176e2b5d16611cc25a900150e86e9fd79d3bde6ff3a37359c9cb5"
+dependencies = [
+ "serde_json",
+]
+
+[[package]]
+name = "typenum"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
+
+[[package]]
+name = "url"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+ "serde",
+]
+
+[[package]]
+name = "utf-8"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
+
+[[package]]
+name = "uuid"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
+dependencies = [
+ "getrandom 0.2.12",
+]
+
+[[package]]
+name = "valuable"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+
+[[package]]
+name = "version-compare"
+version = "0.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b"
+
+[[package]]
+name = "version-compare"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[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.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "walkdir"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
+dependencies = [
+ "same-file",
+ "winapi-util",
+]
+
+[[package]]
+name = "wasi"
+version = "0.9.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838"
+
+[[package]]
+name = "webkit2gtk"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8f859735e4a452aeb28c6c56a852967a8a76c8eb1cc32dbf931ad28a13d6370"
+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",
+ "soup2",
+ "webkit2gtk-sys",
+]
+
+[[package]]
+name = "webkit2gtk-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d76ca6ecc47aeba01ec61e480139dda143796abcae6f83bcddf50d6b5b1dcf3"
+dependencies = [
+ "atk-sys",
+ "bitflags 1.3.2",
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gdk-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "gtk-sys",
+ "javascriptcore-rs-sys",
+ "libc",
+ "pango-sys",
+ "pkg-config",
+ "soup2-sys",
+ "system-deps 6.2.0",
+]
+
+[[package]]
+name = "webview2-com"
+version = "0.19.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4a769c9f1a64a8734bde70caafac2b96cada12cd4aefa49196b3a386b8b4178"
+dependencies = [
+ "webview2-com-macros",
+ "webview2-com-sys",
+ "windows 0.39.0",
+ "windows-implement",
+]
+
+[[package]]
+name = "webview2-com-macros"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eaebe196c01691db62e9e4ca52c5ef1e4fd837dcae27dae3ada599b5a8fd05ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "webview2-com-sys"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aac48ef20ddf657755fdcda8dfed2a7b4fc7e4581acce6fe9b88c3d64f29dee7"
+dependencies = [
+ "regex",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "windows 0.39.0",
+ "windows-bindgen",
+ "windows-metadata",
+]
+
+[[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.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
+dependencies = [
+ "winapi",
+]
+
+[[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 = "windows"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1c4bd0a50ac6020f65184721f758dba47bb9fbc2133df715ec74a237b26794a"
+dependencies = [
+ "windows-implement",
+ "windows_aarch64_msvc 0.39.0",
+ "windows_i686_gnu 0.39.0",
+ "windows_i686_msvc 0.39.0",
+ "windows_x86_64_gnu 0.39.0",
+ "windows_x86_64_msvc 0.39.0",
+]
+
+[[package]]
+name = "windows"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-bindgen"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68003dbd0e38abc0fb85b939240f4bce37c43a5981d3df37ccbaaa981b47cb41"
+dependencies = [
+ "windows-metadata",
+ "windows-tokens",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
+ "windows-targets 0.52.0",
+]
+
+[[package]]
+name = "windows-implement"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba01f98f509cb5dc05f4e5fc95e535f78260f15fea8fe1a8abdd08f774f1cee7"
+dependencies = [
+ "syn 1.0.109",
+ "windows-tokens",
+]
+
+[[package]]
+name = "windows-metadata"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ee5e275231f07c6e240d14f34e1b635bf1faa1c76c57cfd59a5cdb9848e4278"
+
+[[package]]
+name = "windows-sys"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+dependencies = [
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[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.0",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.0",
+ "windows_aarch64_msvc 0.52.0",
+ "windows_i686_gnu 0.52.0",
+ "windows_i686_msvc 0.52.0",
+ "windows_x86_64_gnu 0.52.0",
+ "windows_x86_64_gnullvm 0.52.0",
+ "windows_x86_64_msvc 0.52.0",
+]
+
+[[package]]
+name = "windows-tokens"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f838de2fe15fe6bac988e74b798f26499a8b21a9d97edec321e79b28d1d7f597"
+
+[[package]]
+name = "windows-version"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75aa004c988e080ad34aff5739c39d0312f4684699d6d71fc8a198d057b8b9b4"
+dependencies = [
+ "windows-targets 0.52.0",
+]
+
+[[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.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2"
+
+[[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.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b"
+
+[[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.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106"
+
+[[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.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65"
+
+[[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.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+
+[[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.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809"
+
+[[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.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+
+[[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.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b1dbce9e90e5404c5a52ed82b1d13fc8cfbdad85033b6f57546ffd1265f8451"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winreg"
+version = "0.51.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "937f3df7948156640f46aacef17a70db0de5917bda9c92b0f751f3a955b588fc"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "wry"
+version = "0.24.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ad85d0e067359e409fcb88903c3eac817c392e5d638258abfb3da5ad8ba6fc4"
+dependencies = [
+ "base64 0.13.1",
+ "block",
+ "cocoa",
+ "core-graphics",
+ "crossbeam-channel",
+ "dunce",
+ "gdk",
+ "gio",
+ "glib",
+ "gtk",
+ "html5ever",
+ "http",
+ "kuchikiki",
+ "libc",
+ "log",
+ "objc",
+ "objc_id",
+ "once_cell",
+ "serde",
+ "serde_json",
+ "sha2",
+ "soup2",
+ "tao",
+ "thiserror",
+ "url",
+ "webkit2gtk",
+ "webkit2gtk-sys",
+ "webview2-com",
+ "windows 0.39.0",
+ "windows-implement",
+]
+
+[[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 = "xattr"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
+dependencies = [
+ "libc",
+ "linux-raw-sys",
+ "rustix",
+]
diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml
new file mode 100644
index 0000000..25b13a7
--- /dev/null
+++ b/src-tauri/Cargo.toml
@@ -0,0 +1,21 @@
+[package]
+name = "test-tauri"
+version = "0.0.0"
+description = "A Tauri App"
+authors = ["you"]
+edition = "2021"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[build-dependencies]
+tauri-build = { version = "1.5", features = [] }
+
+[dependencies]
+tauri = { version = "1.5", features = ["shell-open"] }
+serde = { version = "1.0", features = ["derive"] }
+serde_json = "1.0"
+
+[features]
+# this feature is used for production builds or when `devPath` points to the filesystem
+# DO NOT REMOVE!!
+custom-protocol = ["tauri/custom-protocol"]
diff --git a/src-tauri/build.rs b/src-tauri/build.rs
new file mode 100644
index 0000000..d860e1e
--- /dev/null
+++ b/src-tauri/build.rs
@@ -0,0 +1,3 @@
+fn main() {
+ tauri_build::build()
+}
diff --git a/src-tauri/icons/128x128.png b/src-tauri/icons/128x128.png
new file mode 100644
index 0000000..6be5e50
Binary files /dev/null and b/src-tauri/icons/128x128.png differ
diff --git a/src-tauri/icons/128x128@2x.png b/src-tauri/icons/128x128@2x.png
new file mode 100644
index 0000000..e81bece
Binary files /dev/null and b/src-tauri/icons/128x128@2x.png differ
diff --git a/src-tauri/icons/32x32.png b/src-tauri/icons/32x32.png
new file mode 100644
index 0000000..a437dd5
Binary files /dev/null and b/src-tauri/icons/32x32.png differ
diff --git a/src-tauri/icons/Square107x107Logo.png b/src-tauri/icons/Square107x107Logo.png
new file mode 100644
index 0000000..0ca4f27
Binary files /dev/null and b/src-tauri/icons/Square107x107Logo.png differ
diff --git a/src-tauri/icons/Square142x142Logo.png b/src-tauri/icons/Square142x142Logo.png
new file mode 100644
index 0000000..b81f820
Binary files /dev/null and b/src-tauri/icons/Square142x142Logo.png differ
diff --git a/src-tauri/icons/Square150x150Logo.png b/src-tauri/icons/Square150x150Logo.png
new file mode 100644
index 0000000..624c7bf
Binary files /dev/null and b/src-tauri/icons/Square150x150Logo.png differ
diff --git a/src-tauri/icons/Square284x284Logo.png b/src-tauri/icons/Square284x284Logo.png
new file mode 100644
index 0000000..c021d2b
Binary files /dev/null and b/src-tauri/icons/Square284x284Logo.png differ
diff --git a/src-tauri/icons/Square30x30Logo.png b/src-tauri/icons/Square30x30Logo.png
new file mode 100644
index 0000000..6219700
Binary files /dev/null and b/src-tauri/icons/Square30x30Logo.png differ
diff --git a/src-tauri/icons/Square310x310Logo.png b/src-tauri/icons/Square310x310Logo.png
new file mode 100644
index 0000000..f9bc048
Binary files /dev/null and b/src-tauri/icons/Square310x310Logo.png differ
diff --git a/src-tauri/icons/Square44x44Logo.png b/src-tauri/icons/Square44x44Logo.png
new file mode 100644
index 0000000..d5fbfb2
Binary files /dev/null and b/src-tauri/icons/Square44x44Logo.png differ
diff --git a/src-tauri/icons/Square71x71Logo.png b/src-tauri/icons/Square71x71Logo.png
new file mode 100644
index 0000000..63440d7
Binary files /dev/null and b/src-tauri/icons/Square71x71Logo.png differ
diff --git a/src-tauri/icons/Square89x89Logo.png b/src-tauri/icons/Square89x89Logo.png
new file mode 100644
index 0000000..f3f705a
Binary files /dev/null and b/src-tauri/icons/Square89x89Logo.png differ
diff --git a/src-tauri/icons/StoreLogo.png b/src-tauri/icons/StoreLogo.png
new file mode 100644
index 0000000..4556388
Binary files /dev/null and b/src-tauri/icons/StoreLogo.png differ
diff --git a/src-tauri/icons/icon.icns b/src-tauri/icons/icon.icns
new file mode 100644
index 0000000..12a5bce
Binary files /dev/null and b/src-tauri/icons/icon.icns differ
diff --git a/src-tauri/icons/icon.ico b/src-tauri/icons/icon.ico
new file mode 100644
index 0000000..b3636e4
Binary files /dev/null and b/src-tauri/icons/icon.ico differ
diff --git a/src-tauri/icons/icon.png b/src-tauri/icons/icon.png
new file mode 100644
index 0000000..e1cd261
Binary files /dev/null and b/src-tauri/icons/icon.png differ
diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs
new file mode 100644
index 0000000..523550d
--- /dev/null
+++ b/src-tauri/src/main.rs
@@ -0,0 +1,15 @@
+// Prevents additional console window on Windows in release, DO NOT REMOVE!!
+#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
+
+// Learn more about Tauri commands at https://tauri.app/v1/guides/features/command
+#[tauri::command]
+fn greet(name: &str) -> String {
+ format!("Hello, {}! You've been greeted from Rust!", name)
+}
+
+fn main() {
+ tauri::Builder::default()
+ .invoke_handler(tauri::generate_handler![greet])
+ .run(tauri::generate_context!())
+ .expect("error while running tauri application");
+}
diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json
new file mode 100644
index 0000000..94dc879
--- /dev/null
+++ b/src-tauri/tauri.conf.json
@@ -0,0 +1,44 @@
+{
+ "build": {
+ "devPath": "../src",
+ "distDir": "../src",
+ "withGlobalTauri": true
+ },
+ "package": {
+ "productName": "rusty-slicer",
+ "version": "0.0.0"
+ },
+ "tauri": {
+ "allowlist": {
+ "all": false,
+ "shell": {
+ "all": false,
+ "open": true
+ }
+ },
+ "windows": [
+ {
+ "fullscreen": false,
+ "resizable": true,
+ "title": "Rusty slicer",
+ "width": 400,
+ "height": 800
+ }
+ ],
+ "security": {
+ "csp": null
+ },
+ "bundle": {
+ "active": true,
+ "targets": "all",
+ "identifier": "dev.ayabusa.slicer",
+ "icon": [
+ "icons/32x32.png",
+ "icons/128x128.png",
+ "icons/128x128@2x.png",
+ "icons/icon.icns",
+ "icons/icon.ico"
+ ]
+ }
+ }
+}
diff --git a/src/assets/cat-vibe-vibe-cat.gif b/src/assets/cat-vibe-vibe-cat.gif
new file mode 100644
index 0000000..453bdfa
Binary files /dev/null and b/src/assets/cat-vibe-vibe-cat.gif differ
diff --git a/src/index.html b/src/index.html
new file mode 100644
index 0000000..708a08f
--- /dev/null
+++ b/src/index.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ Rusty slicer
+
+
+
+
+
+
+
+
Welcome to the Rusty slicer!
+
+
Input file
no location choosen
+
+
+
+
+
+
+
+
+
Output folder
no location choosen
+
+
+
+
+
output type
+
+
+
+
+
+
+
+
+
diff --git a/src/main.js b/src/main.js
new file mode 100644
index 0000000..95a1702
--- /dev/null
+++ b/src/main.js
@@ -0,0 +1,18 @@
+const { invoke } = window.__TAURI__.tauri;
+
+let greetInputEl;
+let greetMsgEl;
+
+async function greet() {
+ // Learn more about Tauri commands at https://tauri.app/v1/guides/features/command
+ greetMsgEl.textContent = await invoke("greet", { name: greetInputEl.value });
+}
+
+window.addEventListener("DOMContentLoaded", () => {
+ greetInputEl = document.querySelector("#greet-input");
+ greetMsgEl = document.querySelector("#greet-msg");
+ document.querySelector("#greet-form").addEventListener("submit", (e) => {
+ e.preventDefault();
+ greet();
+ });
+});
diff --git a/src/protocol.css b/src/protocol.css
new file mode 100644
index 0000000..ce0e5f2
--- /dev/null
+++ b/src/protocol.css
@@ -0,0 +1,2 @@
+@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(../fonts/Inter-Regular.woff2) format("woff2"),url(../fonts/Inter-Regular.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:700;src:url(../fonts/Inter-Bold.woff2) format("woff2"),url(../fonts/Inter-Bold.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:400;src:url(../fonts/Inter-Italic.woff2) format("woff2"),url(../fonts/Inter-Italic.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:700;src:url(../fonts/Inter-BoldItalic.woff2) format("woff2"),url(../fonts/Inter-BoldItalic.woff) format("woff")}@font-face{font-display:swap;font-family:Zilla Slab;font-style:normal;font-weight:400;src:url(../fonts/ZillaSlab-Regular.woff2) format("woff2"),url(../fonts/ZillaSlab-Regular.woff) format("woff")}@font-face{font-display:swap;font-family:Zilla Slab;font-style:normal;font-weight:700;src:url(../fonts/ZillaSlab-Bold.woff2) format("woff2"),url(../fonts/ZillaSlab-Bold.woff) format("woff")}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}blockquote,body,dd,dl,dt,figcaption,figure,h1,h2,h3,h4,h5,h6,hr,html,li,ol,p,pre,table,ul{margin:0;padding:0}blockquote:after,blockquote:before,q:after,q:before{content:""}blockquote,q{quotes:"" ""}table{border-collapse:collapse;border-spacing:0}a img,iframe{border:0}embed,img,object,video{-ms-interpolation-mode:bicubic;height:auto;max-width:100%}[hidden]{display:none}dl,ol,p,table,ul{margin:0 0 1.25em}code{font-size:inherit}hr{border:solid #ededf0;border-width:4px 0 0;margin:48px 0}@media(min-width:1024px){hr{margin:64px 0}}.mzp-l-content{zoom:1;margin:0 auto;max-width:1440px;min-width:256px;padding:48px 24px;position:relative}.mzp-l-content:after{clear:both;content:"";display:block;height:0;visibility:hidden}@media(min-width:768px){.mzp-l-content{padding:48px 64px}}@media(min-width:1312px){.mzp-l-content{padding:96px 80px}}@supports(--css:variable){.mzp-l-content{padding:var(--v-grid-xs) var(--h-grid-xs)}@media(min-width:768px){.mzp-l-content{padding:var(--v-grid-md) var(--h-grid-md)}}@media(min-width:1312px){.mzp-l-content{padding:var(--v-grid-xl) var(--h-grid-xl)}}}.mzp-l-content.mzp-t-content-sm{max-width:432px}.mzp-l-content.mzp-t-content-md{max-width:688px}.mzp-l-content.mzp-t-content-lg{max-width:928px}.mzp-l-content.mzp-t-content-xl{max-width:1152px}.mzp-l-content.mzp-t-content-nospace{padding-bottom:0;padding-top:0}.mzp-l-content>:last-child{margin-bottom:0}.mzp-c-details .is-summary button,details .is-summary button{background:rgba(0,0,0,0);border:0;color:inherit;cursor:pointer;font-family:inherit;font-size:inherit;font-weight:inherit;position:relative;text-align:inherit;width:100%}.mzp-c-details .is-closed[aria-hidden=true],details .is-closed[aria-hidden=true]{display:none}.mzp-c-details .is-summary button,details .is-summary button,summary{padding-right:48px;position:relative}[dir=rtl] .mzp-c-details .is-summary button,[dir=rtl] details .is-summary button,[dir=rtl] summary{padding-left:48px;padding-right:0}.mzp-c-details .is-summary button:before,details .is-summary button:before,summary:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath fill='none' fill-rule='evenodd' stroke='%23000' stroke-linecap='round' stroke-width='2' d='M12 3.515v16.97M3.515 12h16.97'/%3E%3C/svg%3E") 0 0 no-repeat;-webkit-background-size:20px,20px;background-size:20px,20px;content:"";height:20px;margin-top:-8px;position:absolute;top:50%;-webkit-transition:transform .1s ease-in-out;transition:transform .1s ease-in-out;width:20px}.mzp-c-details .is-summary button:before,details .is-summary button:before,summary:before{right:8px}[dir=rtl] .mzp-c-details .is-summary button:before,[dir=rtl] details .is-summary button:before,[dir=rtl] summary:before{left:8px;right:auto}summary.is-summary{padding-right:0}[dir=rtl] summary.is-summary{padding-left:0;padding-right:0}summary.is-summary:before{display:none}.mzp-c-details .is-summary button[aria-expanded=true]:before,details .is-summary button[aria-expanded=true]:before,details[open] summary:before{-webkit-transform:rotate(45deg);transform:rotate(45deg)}summary::-webkit-details-marker{display:none}html{font-size:100%}body,html{background:#fff}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:#000;font-family:Inter,X-LocaleSpecific,sans-serif;font-size:16px;font-size:1rem;line-height:1.5}@supports(--css:variables){body{font-size:var(--body-md-size);line-height:var(--body-line-height)}}@supports(--css:variable){body{background:var(--background-color);color:var(--body-text-color);font-family:var(--body-font-family);line-height:var(--body-line-height)}}.hidden{display:none}fieldset,form,legend{border:0;margin:0;padding:0}legend{box-sizing:border-box;color:inherit;display:table;font-family:Inter,X-LocaleSpecific,sans-serif;font-size:18px;font-size:1.125rem;margin-bottom:24px;max-width:100%;padding:0;white-space:normal}.mzp-u-inline legend,legend{font-weight:700;line-height:1.5}.mzp-u-inline legend{display:block;font-size:14px;font-size:.875rem;margin:0;padding-bottom:8px}@supports(--css:variables){.mzp-u-inline legend{font-size:var(--body-sm-size)}.mzp-u-inline legend,legend{line-height:var(--body-line-height)}legend{font-family:var(--body-font-family);font-size:var(--body-lg-size)}}button,input,optgroup,select,textarea{font-family:Inter,X-LocaleSpecific,sans-serif;font-size:16px;font-size:1rem;line-height:1.5;line-height:1.25}@supports(--css:variables){button,input,optgroup,select,textarea{font-size:var(--body-md-size);line-height:var(--body-line-height)}}[type=button],[type=reset],[type=submit],button{appearance:button}textarea{height:auto;overflow:auto}[type=search]{appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}[type=checkbox],[type=radio]{border-radius:4px;box-sizing:border-box;padding:0}fieldset{margin-bottom:24px;min-width:0;width:100%}fieldset.mzp-u-inline{margin-bottom:0}label{display:block;font-size:14px;font-size:.875rem;font-weight:700;line-height:1.5;margin:0;padding-bottom:8px}@supports(--css:variables){label{font-size:var(--body-sm-size);line-height:var(--body-line-height)}}label.mzp-u-inline{display:inline;padding:0 8px 0 0}[dir=rtl] label.mzp-u-inline{padding:0 0 0 8px}input[list],input[type=date],input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],textarea{background-color:#fff;border:2px solid #9595a2;border-radius:4px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-size:16px;font-size:1rem;line-height:1.5;line-height:1.25;margin:0 0 24px;padding:8px}@supports(--css:variables){input[list],input[type=date],input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],textarea{font-size:var(--body-md-size);line-height:var(--body-line-height)}}input[list]::placeholder,input[type=date]::placeholder,input[type=email]::placeholder,input[type=number]::placeholder,input[type=password]::placeholder,input[type=search]::placeholder,input[type=tel]::placeholder,input[type=text]::placeholder,input[type=time]::placeholder,input[type=url]::placeholder,textarea::placeholder{color:#5e5e72}input[list]:hover,input[type=date]:hover,input[type=email]:hover,input[type=number]:hover,input[type=password]:hover,input[type=search]:hover,input[type=tel]:hover,input[type=text]:hover,input[type=time]:hover,input[type=url]:hover,textarea:hover{border-color:#0250bb}input[list]:focus,input[type=date]:focus,input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,textarea:focus{border-color:#0060df;box-shadow:0 0 0 2px rgba(0,144,237,.5);outline:none}.mzp-t-dark input[list]:focus,.mzp-t-dark input[type=date]:focus,.mzp-t-dark input[type=email]:focus,.mzp-t-dark input[type=number]:focus,.mzp-t-dark input[type=password]:focus,.mzp-t-dark input[type=search]:focus,.mzp-t-dark input[type=tel]:focus,.mzp-t-dark input[type=text]:focus,.mzp-t-dark input[type=time]:focus,.mzp-t-dark input[type=url]:focus,.mzp-t-dark textarea:focus{box-shadow:0 0 0 2px #80c8f6}.mzp-is-error input[list],.mzp-is-error input[type=date],.mzp-is-error input[type=email],.mzp-is-error input[type=number],.mzp-is-error input[type=password],.mzp-is-error input[type=search],.mzp-is-error input[type=tel],.mzp-is-error input[type=text],.mzp-is-error input[type=time],.mzp-is-error input[type=url],.mzp-is-error textarea{border-color:#d70022;box-shadow:none}.mzp-is-error input[list]:hover,.mzp-is-error input[type=date]:hover,.mzp-is-error input[type=email]:hover,.mzp-is-error input[type=number]:hover,.mzp-is-error input[type=password]:hover,.mzp-is-error input[type=search]:hover,.mzp-is-error input[type=tel]:hover,.mzp-is-error input[type=text]:hover,.mzp-is-error input[type=time]:hover,.mzp-is-error input[type=url]:hover,.mzp-is-error textarea:hover{border-color:#810220}.mzp-is-error input[list]:focus,.mzp-is-error input[type=date]:focus,.mzp-is-error input[type=email]:focus,.mzp-is-error input[type=number]:focus,.mzp-is-error input[type=password]:focus,.mzp-is-error input[type=search]:focus,.mzp-is-error input[type=tel]:focus,.mzp-is-error input[type=text]:focus,.mzp-is-error input[type=time]:focus,.mzp-is-error input[type=url]:focus,.mzp-is-error textarea:focus{border-color:#d70022;box-shadow:0 0 0 2px rgba(255,79,94,.5)}input[list]:disabled,input[list][aria-disabled=true],input[type=date]:disabled,input[type=date][aria-disabled=true],input[type=email]:disabled,input[type=email][aria-disabled=true],input[type=number]:disabled,input[type=number][aria-disabled=true],input[type=password]:disabled,input[type=password][aria-disabled=true],input[type=search]:disabled,input[type=search][aria-disabled=true],input[type=tel]:disabled,input[type=tel][aria-disabled=true],input[type=text]:disabled,input[type=text][aria-disabled=true],input[type=time]:disabled,input[type=time][aria-disabled=true],input[type=url]:disabled,input[type=url][aria-disabled=true],textarea:disabled,textarea[aria-disabled=true]{background:#f9f9fa;border-color:#cdcdd4;color:#5e5e72}input[list]:disabled:focus,input[list][aria-disabled=true]:focus,input[type=date]:disabled:focus,input[type=date][aria-disabled=true]:focus,input[type=email]:disabled:focus,input[type=email][aria-disabled=true]:focus,input[type=number]:disabled:focus,input[type=number][aria-disabled=true]:focus,input[type=password]:disabled:focus,input[type=password][aria-disabled=true]:focus,input[type=search]:disabled:focus,input[type=search][aria-disabled=true]:focus,input[type=tel]:disabled:focus,input[type=tel][aria-disabled=true]:focus,input[type=text]:disabled:focus,input[type=text][aria-disabled=true]:focus,input[type=time]:disabled:focus,input[type=time][aria-disabled=true]:focus,input[type=url]:disabled:focus,input[type=url][aria-disabled=true]:focus,textarea:disabled:focus,textarea[aria-disabled=true]:focus{border-color:#42425a}input[list],input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],textarea{max-width:100%;min-width:256px}input[size],textarea[cols]{min-width:0}input[size="2"]{max-width:calc(2.5ch + 16px)}input[size="3"]{max-width:calc(3.5ch + 16px)}input[size="4"]{max-width:calc(4.5ch + 16px)}input[size="5"]{max-width:calc(5.5ch + 16px)}input[type=search]{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cg fill='none' fill-rule='evenodd' stroke='%239595a3' stroke-width='2' transform='translate(3 3)'%3E%3Ccircle cx='7' cy='7' r='7'/%3E%3Cpath stroke-linecap='round' d='m12 12 6 6'/%3E%3C/g%3E%3C/svg%3E");background-position:left 8px top 50%;background-repeat:no-repeat;padding:8px 8px 8px calc(1.5em + 16px)}input[type=search]:disabled{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cg fill='none' fill-rule='evenodd' stroke='%239595a3' stroke-width='2' transform='translate(3 3)'%3E%3Ccircle cx='7' cy='7' r='7'/%3E%3Cpath stroke-linecap='round' d='m12 12 6 6'/%3E%3C/g%3E%3C/svg%3E");background-position:left 8px top 50%;background-repeat:no-repeat;padding:8px 8px 8px calc(1.5em + 16px)}input[type=search]:disabled:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cg fill='none' fill-rule='evenodd' stroke='%239595a3' stroke-width='2' transform='translate(3 3)'%3E%3Ccircle cx='7' cy='7' r='7'/%3E%3Cpath stroke-linecap='round' d='m12 12 6 6'/%3E%3C/g%3E%3C/svg%3E")}input[type=search]:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cg fill='none' fill-rule='evenodd' stroke='%230250bb' stroke-width='2' transform='translate(3 3)'%3E%3Ccircle cx='7' cy='7' r='7'/%3E%3Cpath stroke-linecap='round' d='m12 12 6 6'/%3E%3C/g%3E%3C/svg%3E")}input[type=search]:focus{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cg fill='none' fill-rule='evenodd' stroke='%230060df' stroke-width='2' transform='translate(3 3)'%3E%3Ccircle cx='7' cy='7' r='7'/%3E%3Cpath stroke-linecap='round' d='m12 12 6 6'/%3E%3C/g%3E%3C/svg%3E")}[dir=rtl] input[type=search]{background-position:right 8px top 50%;padding:8px calc(1.5em + 16px) 8px 8px}input[type=color],input[type=file]{background:#fff;border:2px solid #9595a2;border-radius:4px;line-height:1.25;margin:0 0 24px}input[type=color]:hover,input[type=file]:hover{border-color:#0250bb}input[type=color]:focus,input[type=file]:focus{border-color:#0060df;box-shadow:0 0 0 2px rgba(0,144,237,.5);outline:none}.mzp-is-error input[type=color],.mzp-is-error input[type=file]{border-color:#d70022;box-shadow:none}.mzp-is-error input[type=color]:hover,.mzp-is-error input[type=file]:hover{border-color:#810220}.mzp-is-error input[type=color]:focus,.mzp-is-error input[type=file]:focus{border-color:#d70022;box-shadow:0 0 0 2px rgba(255,79,94,.5)}input[type=color]:disabled,input[type=color][aria-disabled=true],input[type=file]:disabled,input[type=file][aria-disabled=true]{background:#cdcdd4;border-color:#cdcdd4;color:#5e5e72}input[type=color]:disabled:focus,input[type=color][aria-disabled=true]:focus,input[type=file]:disabled:focus,input[type=file][aria-disabled=true]:focus{border-color:#42425a}input[type=file],select{padding:8px}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath fill='none' fill-rule='evenodd' stroke='%239595a3' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m5 9 7 7 7-7'/%3E%3C/svg%3E"),linear-gradient(180deg,#fff 0,#fff);background-position:right 8px top 50%;background-repeat:no-repeat,repeat;background-size:1.5em auto,100%;border:2px solid #9595a2;border-radius:4px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;font-size:16px;font-size:1rem;font-weight:400;line-height:1.5;line-height:1.25;margin:0 0 24px;max-width:100%;min-width:256px;padding:8px calc(1.5em + 16px) 8px 8px;text-overflow:ellipsis}[dir=rtl] select{background-position:left 8px top 50%;padding:8px 8px 8px calc(1.5em + 16px)}@supports(--css:variables){select{font-size:var(--body-md-size);line-height:var(--body-line-height)}}select[multiple],select[multiple]:focus,select[multiple]:hover{background:#fff;padding:8px}select::-ms-expand{display:none}select:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath fill='none' fill-rule='evenodd' stroke='%230250bb' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m5 9 7 7 7-7'/%3E%3C/svg%3E"),linear-gradient(180deg,#fff 0,#fff);border-color:#0250bb}select:focus{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath fill='none' fill-rule='evenodd' stroke='%230060df' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m5 9 7 7 7-7'/%3E%3C/svg%3E"),linear-gradient(180deg,#fff 0,#fff);border-color:#0060df;box-shadow:0 0 0 2px rgba(0,144,237,.5);color:#222;outline:none}.mzp-t-dark select:focus{box-shadow:0 0 0 2px #80c8f6}.mzp-is-error select{border-color:#d70022;box-shadow:none}.mzp-is-error select:hover{border-color:#810220}.mzp-is-error select:focus{border-color:#d70022;box-shadow:0 0 0 2px rgba(255,79,94,.5)}select:disabled,select[aria-disabled=true]{background-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"),linear-gradient(180deg,#f9f9fa 0,#f9f9fa);border-color:#cdcdd4;color:#5e5e72}select:disabled:hover,select[aria-disabled=true]:hover{border-color:#cdcdd4}select:disabled:focus,select[aria-disabled=true]:focus{border-color:#42425a}select option{font-weight:400}.mzp-c-fieldnote{display:block;font-size:14px;font-size:.875rem;font-weight:400;line-height:1.5;margin-bottom:0}@supports(--css:variables){.mzp-c-fieldnote{font-size:var(--body-sm-size);line-height:var(--body-line-height)}}.mzp-is-error .mzp-c-fieldnote{color:#d70022}.mzp-c-form-errors{background-color:#d70022;border-radius:4px;color:#fff;margin-bottom:32px;padding:8px}.mzp-c-form-errors a:link,.mzp-c-form-errors a:link:active,.mzp-c-form-errors a:link:focus,.mzp-c-form-errors a:link:hover,.mzp-c-form-errors a:visited,.mzp-c-form-errors a:visited:active,.mzp-c-form-errors a:visited:focus,.mzp-c-form-errors a:visited:hover{color:#fff}.mzp-c-form-header+.mzp-c-form-errors{margin-top:32px}.mzp-c-form-errors :last-child{margin-bottom:0}.mzp-c-form-errors li{margin-bottom:8px}.mzp-is-error input[type=checkbox],.mzp-is-error input[type=radio]{border-radius:4px;box-shadow:0 0 0 2px rgba(255,79,94,.5)}:link{color:#0060df;text-decoration:underline}:link:active,:link:focus,:link:hover{color:#0250bb;text-decoration:none}:link:active{background-color:rgba(0,0,0,.05)}@supports(--css:variables){:link{color:var(--link-color)}:link:active,:link:focus,:link:hover{color:var(--link-color-hover)}}:visited{color:#b833e1}:visited:active,:visited:focus,:visited:hover{color:#0250bb}@supports(--css:variables){:visited{color:var(--link-color-visited)}:visited:active,:visited:focus,:visited:hover{color:var(--link-color-visited-hover)}}.mzp-t-dark a:link{color:#80ebff}.mzp-t-dark a:visited{color:#d9bfff}.mzp-t-dark a:active,.mzp-t-dark a:focus,.mzp-t-dark a:hover{color:#aaf2ff}.mzp-t-dark a:visited:active,.mzp-t-dark a:visited:focus,.mzp-t-dark a:visited:hover{color:#e7dfff}@supports(--css:variables){.mzp-t-dark a:link{color:var(--link-color-inverse)}.mzp-t-dark a:visited{color:var(--link-color-visited-inverse)}.mzp-t-dark a:active,.mzp-t-dark a:focus,.mzp-t-dark a:hover{color:var(--link-color-hover-inverse)}.mzp-t-dark a:visited:active,.mzp-t-dark a:visited:focus,.mzp-t-dark a:visited:hover{color:var(--link-color-visited-hover-inverse)}}.mzp-c-cta-link{font-family:Inter,X-LocaleSpecific,sans-serif;font-weight:700}@supports(--css:variables){.mzp-c-cta-link{font-family:var(--button-font-family)}}ol,ul{list-style:none}ul.mzp-u-list-styled{list-style:disc;margin-left:32px}[dir=rtl] ul.mzp-u-list-styled{margin-left:0;margin-right:32px}ul.mzp-u-list-styled li{margin-bottom:.25em}ul.mzp-u-list-styled ul{list-style:circle;margin-bottom:0;margin-left:24px}[dir=rtl] ul.mzp-u-list-styled ul{margin-left:0;margin-right:24px}ul.mzp-u-list-styled ol{list-style:decimal;margin-bottom:0;margin-left:24px}[dir=rtl] ul.mzp-u-list-styled ol{margin-left:0;margin-right:24px}ol.mzp-u-list-styled{list-style:decimal;margin-left:32px}[dir=rtl] ol.mzp-u-list-styled{margin-left:0;margin-right:32px}ol.mzp-u-list-styled li{margin-bottom:.25em}ol.mzp-u-list-styled ol{list-style:lower-alpha;margin-bottom:0;margin-left:24px}[dir=rtl] ol.mzp-u-list-styled ol{margin-left:0;margin-right:24px}ol.mzp-u-list-styled ul{list-style:disc;margin-bottom:0;margin-left:24px}[dir=rtl] ol.mzp-u-list-styled ul{margin-left:0;margin-right:24px}dl.mzp-u-list-styled dt{font-weight:700;margin-bottom:0}dl.mzp-u-list-styled dd{margin-bottom:.25em;margin-left:24px}[dir=rtl] dl.mzp-u-list-styled dd{margin-left:0;margin-right:24px}dl.mzp-u-list-styled ol,dl.mzp-u-list-styled ul{margin-bottom:0;margin-left:24px}[dir=rtl] dl.mzp-u-list-styled ol,[dir=rtl] dl.mzp-u-list-styled ul{margin-left:0;margin-right:24px}dl.mzp-u-list-styled ul{list-style:circle}.mzp-u-list-unstyled,.mzp-u-list-unstyled ol,.mzp-u-list-unstyled ul{list-style:none!important;margin-left:0!important;margin-right:0!important}blockquote{border-color:#ededf0;border-style:solid;border-width:0 0 0 5px;color:#000;font-family:Zilla Slab,Inter,X-LocaleSpecific,sans-serif;font-size:24px;font-size:1.5rem;font-weight:700;line-height:1.166;margin:24px auto;padding:8px 24px}[dir=rtl] blockquote{border-width:0 5px 0 0}@media(min-width:768px){blockquote{font-size:32px;font-size:2rem;line-height:1.125}}@supports(--css:variables){blockquote{font-size:var(--title-xs-size);line-height:var(--title-xs-line-height)}@media(min-width:768px){blockquote{font-size:var(--title-sm-size);line-height:var(--title-sm-line-height)}}}blockquote cite{color:#15141a;font-size:20px;font-size:1.25rem;line-height:1.2}@media(min-width:768px){blockquote cite{font-size:24px;font-size:1.5rem;line-height:1.166}}@supports(--css:variables){blockquote cite{font-size:var(--title-2xs-size);line-height:var(--title-2xs-line-height)}@media(min-width:768px){blockquote cite{font-size:var(--title-xs-size);line-height:var(--title-xs-line-height)}}}blockquote cite:before{content:"— "}blockquote>:last-child{margin-bottom:0}@supports(--css:variables){blockquote{color:var(--title-text-color);font-family:var(--title-font-family)}blockquote cite{color:var(--body-text-color-secondary)}}.mzp-u-data-table{border-collapse:collapse;border-spacing:0}.mzp-u-data-table caption{margin-bottom:.25em;text-align:left;width:100%}[dir=rtl] .mzp-u-data-table caption{text-align:right}.mzp-u-data-table td,.mzp-u-data-table th{border-top:1px solid rgba(0,0,0,.2);padding:.5em 10px;text-align:left}[dir=rtl] .mzp-u-data-table td,[dir=rtl] .mzp-u-data-table th{text-align:right}.mzp-u-data-table thead td,.mzp-u-data-table thead th{border-top:0;padding-top:0}h1,h2,h3,h4,h5,h6{color:#000;font-family:Zilla Slab,Inter,X-LocaleSpecific,sans-serif;font-weight:700;margin:0 0 .5em}.mzp-t-dark h1,.mzp-t-dark h2,.mzp-t-dark h3,.mzp-t-dark h4,.mzp-t-dark h5,.mzp-t-dark h6{color:#fff}@supports(--css:variables){h1,h2,h3,h4,h5,h6{color:var(--title-text-color);font-family:var(--title-font-family)}.mzp-t-dark h1,.mzp-t-dark h2,.mzp-t-dark h3,.mzp-t-dark h4,.mzp-t-dark h5,.mzp-t-dark h6{color:var(--title-text-color-inverse)}}h1{font-size:40px;font-size:2.5rem;line-height:1.1}@media(min-width:768px){h1{font-size:48px;font-size:3rem;line-height:1.166}}@supports(--css:variables){h1{font-size:var(--title-md-size);line-height:var(--title-md-line-height)}@media(min-width:768px){h1{font-size:var(--title-lg-size);line-height:var(--title-lg-line-height)}}}h2{font-size:32px;font-size:2rem;line-height:1.125}@media(min-width:768px){h2{font-size:40px;font-size:2.5rem;line-height:1.1}}@supports(--css:variables){h2{font-size:var(--title-sm-size);line-height:var(--title-sm-line-height)}@media(min-width:768px){h2{font-size:var(--title-md-size);line-height:var(--title-md-line-height)}}}h3{font-size:24px;font-size:1.5rem;line-height:1.166}@media(min-width:768px){h3{font-size:32px;font-size:2rem;line-height:1.125}}@supports(--css:variables){h3{font-size:var(--title-xs-size);line-height:var(--title-xs-line-height)}@media(min-width:768px){h3{font-size:var(--title-sm-size);line-height:var(--title-sm-line-height)}}}h4{font-size:20px;font-size:1.25rem;line-height:1.2}@media(min-width:768px){h4{font-size:24px;font-size:1.5rem;line-height:1.166}}@supports(--css:variables){h4{font-size:var(--title-2xs-size);line-height:var(--title-2xs-line-height)}@media(min-width:768px){h4{font-size:var(--title-xs-size);line-height:var(--title-xs-line-height)}}}h5{font-size:16px;font-size:1rem;line-height:1.25}@media(min-width:768px){h5{font-size:20px;font-size:1.25rem;line-height:1.2}}@supports(--css:variables){h5{font-size:var(--title-3xs-size);line-height:var(--title-3xs-line-height)}@media(min-width:768px){h5{font-size:var(--title-2xs-size);line-height:var(--title-2xs-line-height)}}}h6{font-size:16px;font-size:1rem;line-height:1.25}@supports(--css:variables){h6{font-size:var(--title-3xs-size);line-height:var(--title-3xs-line-height)}}.mzp-t-background-secondary{background-color:#f9f9fb}@supports(--css:variables){.mzp-t-background-secondary{background-color:var(--background-color-secondary)}}.mzp-t-background-tertiary{background-color:#e0e0e6}@supports(--css:variables){.mzp-t-background-tertiary{background-color:var(--background-color-tertiary)}}.mzp-t-dark{background-color:#000;color:#fff}@supports(--css:variables){.mzp-t-dark{background-color:var(--background-color-inverse);color:var(--body-text-color-inverse)}}.mzp-t-dark .mzp-t-background-secondary,.mzp-t-dark.mzp-t-background-secondary{background-color:#2b2a33}@supports(--css:variables){.mzp-t-dark .mzp-t-background-secondary,.mzp-t-dark.mzp-t-background-secondary{background-color:var(--background-color-secondary-inverse)}}.mzp-t-dark .mzp-t-background-tertiary,.mzp-t-dark.mzp-t-background-tertiary{background-color:#3a3944}@supports(--css:variables){.mzp-t-dark .mzp-t-background-tertiary,.mzp-t-dark.mzp-t-background-tertiary{background-color:var(--background-color-tertiary-inverse)}}.mzp-u-title-2xl{font-family:Zilla Slab,Inter,X-LocaleSpecific,sans-serif;font-size:56px;font-size:3.5rem;line-height:1.143}@media(min-width:768px){.mzp-u-title-2xl{font-size:64px;font-size:4rem;line-height:1.125}}@supports(--css:variables){.mzp-u-title-2xl{font-size:var(--title-xl-size);line-height:var(--title-xl-line-height)}@media(min-width:768px){.mzp-u-title-2xl{font-size:var(--title-2xl-size);line-height:var(--title-2xl-line-height)}}}@supports(--css:variables){.mzp-u-title-2xl{font-family:var(--title-font-family)}}.mzp-u-title-xl{font-family:Zilla Slab,Inter,X-LocaleSpecific,sans-serif;font-size:48px;font-size:3rem;line-height:1.166}@media(min-width:768px){.mzp-u-title-xl{font-size:56px;font-size:3.5rem;line-height:1.143}}@supports(--css:variables){.mzp-u-title-xl{font-size:var(--title-lg-size);line-height:var(--title-lg-line-height)}@media(min-width:768px){.mzp-u-title-xl{font-size:var(--title-xl-size);line-height:var(--title-xl-line-height)}}}@supports(--css:variables){.mzp-u-title-xl{font-family:var(--title-font-family)}}.mzp-u-title-lg{font-family:Zilla Slab,Inter,X-LocaleSpecific,sans-serif;font-size:40px;font-size:2.5rem;line-height:1.1}@media(min-width:768px){.mzp-u-title-lg{font-size:48px;font-size:3rem;line-height:1.166}}@supports(--css:variables){.mzp-u-title-lg{font-size:var(--title-md-size);line-height:var(--title-md-line-height)}@media(min-width:768px){.mzp-u-title-lg{font-size:var(--title-lg-size);line-height:var(--title-lg-line-height)}}}@supports(--css:variables){.mzp-u-title-lg{font-family:var(--title-font-family)}}.mzp-u-title-md{font-family:Zilla Slab,Inter,X-LocaleSpecific,sans-serif;font-size:32px;font-size:2rem;line-height:1.125}@media(min-width:768px){.mzp-u-title-md{font-size:40px;font-size:2.5rem;line-height:1.1}}@supports(--css:variables){.mzp-u-title-md{font-size:var(--title-sm-size);line-height:var(--title-sm-line-height)}@media(min-width:768px){.mzp-u-title-md{font-size:var(--title-md-size);line-height:var(--title-md-line-height)}}}@supports(--css:variables){.mzp-u-title-md{font-family:var(--title-font-family)}}.mzp-u-title-sm{font-family:Zilla Slab,Inter,X-LocaleSpecific,sans-serif;font-size:24px;font-size:1.5rem;line-height:1.166}@media(min-width:768px){.mzp-u-title-sm{font-size:32px;font-size:2rem;line-height:1.125}}@supports(--css:variables){.mzp-u-title-sm{font-size:var(--title-xs-size);line-height:var(--title-xs-line-height)}@media(min-width:768px){.mzp-u-title-sm{font-size:var(--title-sm-size);line-height:var(--title-sm-line-height)}}}@supports(--css:variables){.mzp-u-title-sm{font-family:var(--title-font-family)}}.mzp-u-title-xs{font-family:Zilla Slab,Inter,X-LocaleSpecific,sans-serif;font-size:20px;font-size:1.25rem;line-height:1.2}@media(min-width:768px){.mzp-u-title-xs{font-size:24px;font-size:1.5rem;line-height:1.166}}@supports(--css:variables){.mzp-u-title-xs{font-size:var(--title-2xs-size);line-height:var(--title-2xs-line-height)}@media(min-width:768px){.mzp-u-title-xs{font-size:var(--title-xs-size);line-height:var(--title-xs-line-height)}}}@supports(--css:variables){.mzp-u-title-xs{font-family:var(--title-font-family)}}.mzp-u-title-2xs{font-family:Zilla Slab,Inter,X-LocaleSpecific,sans-serif;font-size:16px;font-size:1rem;line-height:1.25}@media(min-width:768px){.mzp-u-title-2xs{font-size:20px;font-size:1.25rem;line-height:1.2}}@supports(--css:variables){.mzp-u-title-2xs{font-size:var(--title-3xs-size);line-height:var(--title-3xs-line-height)}@media(min-width:768px){.mzp-u-title-2xs{font-size:var(--title-2xs-size);line-height:var(--title-2xs-line-height)}}}@supports(--css:variables){.mzp-u-title-2xs{font-family:var(--title-font-family)}}.mzp-u-title-3xs{font-family:Zilla Slab,Inter,X-LocaleSpecific,sans-serif;font-size:16px;font-size:1rem;line-height:1.25}@supports(--css:variables){.mzp-u-title-3xs{font-family:var(--title-font-family);font-size:var(--title-3xs-size);line-height:var(--title-3xs-line-height)}}.mzp-u-centered{text-align:center}@keyframes mzp-a-fade-in{0%{opacity:0;visibility:hidden}to{opacity:1;visibility:visible}}@keyframes mzp-a-fade-out{0%{opacity:1;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes mzp-a-slide-in-right{0%{opacity:0;transform:translateX(60px)}to{opacity:1;transform:translateX(0)}}@keyframes mzp-a-slide-in-left{0%{opacity:0;transform:translateX(-60px)}to{opacity:1;transform:translateX(0)}}.mzp-c-card{background:#fff;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:24px}.mzp-c-card.mzp-has-aspect-1-1 .mzp-c-card-media-wrapper{padding-bottom:100%;position:relative}.mzp-c-card.mzp-has-aspect-1-1 .mzp-c-card-media-wrapper embed,.mzp-c-card.mzp-has-aspect-1-1 .mzp-c-card-media-wrapper iframe,.mzp-c-card.mzp-has-aspect-1-1 .mzp-c-card-media-wrapper img,.mzp-c-card.mzp-has-aspect-1-1 .mzp-c-card-media-wrapper object,.mzp-c-card.mzp-has-aspect-1-1 .mzp-c-card-media-wrapper video{bottom:0;left:0;position:absolute;right:0;top:0}.mzp-c-card.mzp-has-aspect-16-9 .mzp-c-card-media-wrapper{padding-bottom:56.25%;position:relative}.mzp-c-card.mzp-has-aspect-16-9 .mzp-c-card-media-wrapper embed,.mzp-c-card.mzp-has-aspect-16-9 .mzp-c-card-media-wrapper iframe,.mzp-c-card.mzp-has-aspect-16-9 .mzp-c-card-media-wrapper img,.mzp-c-card.mzp-has-aspect-16-9 .mzp-c-card-media-wrapper object,.mzp-c-card.mzp-has-aspect-16-9 .mzp-c-card-media-wrapper video{bottom:0;left:0;position:absolute;right:0;top:0}.mzp-c-card.mzp-has-aspect-3-2 .mzp-c-card-media-wrapper{padding-bottom:66.6666666667%;position:relative}.mzp-c-card.mzp-has-aspect-3-2 .mzp-c-card-media-wrapper embed,.mzp-c-card.mzp-has-aspect-3-2 .mzp-c-card-media-wrapper iframe,.mzp-c-card.mzp-has-aspect-3-2 .mzp-c-card-media-wrapper img,.mzp-c-card.mzp-has-aspect-3-2 .mzp-c-card-media-wrapper object,.mzp-c-card.mzp-has-aspect-3-2 .mzp-c-card-media-wrapper video{bottom:0;left:0;position:absolute;right:0;top:0}.mzp-c-card .mzp-c-card-media-wrapper{background-color:#ededf0;border-radius:2px;overflow:hidden;position:relative}.mzp-c-card .mzp-c-card-image,.mzp-c-card .mzp-c-card-video{display:block;max-width:none;width:100%}.mzp-c-card .mzp-c-card-content{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:8px}.mzp-c-card .mzp-c-card-tag{color:#42425a;font-family:Inter,X-LocaleSpecific,sans-serif;font-size:14px;font-size:.875rem;font-weight:400;line-height:1.5;margin-bottom:4px}@supports(--css:variables){.mzp-c-card .mzp-c-card-tag{font-size:var(--body-sm-size);line-height:var(--body-line-height)}}.mzp-c-card.mzp-has-audio .mzp-c-card-tag,.mzp-c-card.mzp-has-video .mzp-c-card-tag{background-position:0;background-repeat:no-repeat;line-height:1.8;min-height:25px;padding-left:32px}[dir=rtl] .mzp-c-card.mzp-has-audio .mzp-c-card-tag,[dir=rtl] .mzp-c-card.mzp-has-video .mzp-c-card-tag{background-position:100%;padding-left:0;padding-right:32px}.mzp-c-card.mzp-has-video .mzp-c-card-tag{background-image:url(../img/icons/video-card.svg)}.mzp-c-card.mzp-has-audio .mzp-c-card-tag{background-image:url(../img/icons/audio-card.svg)}.mzp-c-card .mzp-c-card-title{display:inline;font-size:20px;font-size:1.25rem;line-height:1.2}@media(min-width:768px){.mzp-c-card .mzp-c-card-title{font-size:24px;font-size:1.5rem;line-height:1.166}}@supports(--css:variables){.mzp-c-card .mzp-c-card-title{font-size:var(--title-2xs-size);line-height:var(--title-2xs-line-height)}@media(min-width:768px){.mzp-c-card .mzp-c-card-title{font-size:var(--title-xs-size);line-height:var(--title-xs-line-height)}}}.mzp-c-card .mzp-c-card-cta-text,.mzp-c-card .mzp-c-card-title{border-bottom:2px solid rgba(0,0,0,0)}.mzp-c-card .mzp-c-card-desc{margin:4px 0 0}.mzp-c-card .mzp-c-card-cta{font-weight:700;margin:4px 0 0}.mzp-c-card .mzp-c-card-block-link{border-radius:2px;display:block}.mzp-c-card .mzp-c-card-block-link:link,.mzp-c-card .mzp-c-card-block-link:visited{color:#000;text-decoration:none}.mzp-c-card .mzp-c-card-block-link:link .mzp-c-card-cta-text,.mzp-c-card .mzp-c-card-block-link:visited .mzp-c-card-cta-text{color:#0060df}.mzp-c-card .mzp-c-card-block-link:active,.mzp-c-card .mzp-c-card-block-link:focus,.mzp-c-card .mzp-c-card-block-link:hover{box-shadow:0 0 0 4px #ededf0;-webkit-transition:box-shadow .1s ease-in-out;transition:box-shadow .1s ease-in-out}.mzp-c-card .mzp-c-card-block-link:active .mzp-c-card-cta-text,.mzp-c-card .mzp-c-card-block-link:active .mzp-c-card-title,.mzp-c-card .mzp-c-card-block-link:focus .mzp-c-card-cta-text,.mzp-c-card .mzp-c-card-block-link:focus .mzp-c-card-title,.mzp-c-card .mzp-c-card-block-link:hover .mzp-c-card-cta-text,.mzp-c-card .mzp-c-card-block-link:hover .mzp-c-card-title{border-bottom:2px solid;-webkit-transition:border-bottom-color .1s ease-in-out;transition:border-bottom-color .1s ease-in-out}.mzp-c-card .mzp-c-card-meta{color:#42425a;font-size:12px;font-size:.75rem;line-height:1.5;margin:24px 0 0}@supports(--css:variables){.mzp-c-card .mzp-c-card-meta{font-size:var(--body-xs-size);line-height:var(--body-line-height)}}@media(min-width:480px){.mzp-c-card{max-width:432px}}@media(min-width:768px){.mzp-c-card{margin-bottom:32px}}.mzp-c-card.mzp-t-dark,.mzp-t-dark .mzp-c-card{background-color:#000;color:#fff}.mzp-c-card.mzp-t-dark .mzp-c-card-meta,.mzp-c-card.mzp-t-dark .mzp-c-card-tag,.mzp-t-dark .mzp-c-card .mzp-c-card-meta,.mzp-t-dark .mzp-c-card .mzp-c-card-tag{color:#fff}.mzp-c-card.mzp-t-dark .mzp-c-card-block-link:active,.mzp-c-card.mzp-t-dark .mzp-c-card-block-link:focus,.mzp-c-card.mzp-t-dark .mzp-c-card-block-link:hover,.mzp-t-dark .mzp-c-card .mzp-c-card-block-link:active,.mzp-t-dark .mzp-c-card .mzp-c-card-block-link:focus,.mzp-t-dark .mzp-c-card .mzp-c-card-block-link:hover{box-shadow:0 0 0 4px #42425a}.mzp-c-card.mzp-t-dark .mzp-c-card-block-link:link,.mzp-c-card.mzp-t-dark .mzp-c-card-block-link:link .mzp-c-card-cta-text,.mzp-c-card.mzp-t-dark .mzp-c-card-block-link:visited,.mzp-c-card.mzp-t-dark .mzp-c-card-block-link:visited .mzp-c-card-cta-text,.mzp-t-dark .mzp-c-card .mzp-c-card-block-link:link,.mzp-t-dark .mzp-c-card .mzp-c-card-block-link:link .mzp-c-card-cta-text,.mzp-t-dark .mzp-c-card .mzp-c-card-block-link:visited,.mzp-t-dark .mzp-c-card .mzp-c-card-block-link:visited .mzp-c-card-cta-text{color:#fff}@supports(--css:variables){.mzp-c-card.mzp-t-dark,.mzp-t-dark .mzp-c-card{background-color:var(--background-color-inverse);color:var(--body-text-color-inverse)}.mzp-c-card.mzp-t-dark .mzp-c-card-block-link:link,.mzp-c-card.mzp-t-dark .mzp-c-card-block-link:link .mzp-c-card-cta-text,.mzp-c-card.mzp-t-dark .mzp-c-card-block-link:visited,.mzp-c-card.mzp-t-dark .mzp-c-card-block-link:visited .mzp-c-card-cta-text,.mzp-c-card.mzp-t-dark .mzp-c-card-meta,.mzp-c-card.mzp-t-dark .mzp-c-card-tag,.mzp-t-dark .mzp-c-card .mzp-c-card-block-link:link,.mzp-t-dark .mzp-c-card .mzp-c-card-block-link:link .mzp-c-card-cta-text,.mzp-t-dark .mzp-c-card .mzp-c-card-block-link:visited,.mzp-t-dark .mzp-c-card .mzp-c-card-block-link:visited .mzp-c-card-cta-text,.mzp-t-dark .mzp-c-card .mzp-c-card-meta,.mzp-t-dark .mzp-c-card .mzp-c-card-tag{color:var(--body-text-color-inverse)}}@media(min-width:480px){.mzp-c-card.mzp-c-card-medium{max-width:688px}}.mzp-c-card.mzp-c-card-large .mzp-c-card-title{font-size:32px;font-size:2rem;line-height:1.125}@media(min-width:768px){.mzp-c-card.mzp-c-card-large .mzp-c-card-title{font-size:40px;font-size:2.5rem;line-height:1.1}}@supports(--css:variables){.mzp-c-card.mzp-c-card-large .mzp-c-card-title{font-size:var(--title-sm-size);line-height:var(--title-sm-line-height)}@media(min-width:768px){.mzp-c-card.mzp-c-card-large .mzp-c-card-title{font-size:var(--title-md-size);line-height:var(--title-md-line-height)}}}.mzp-c-card.mzp-c-card-large .mzp-c-card-desc{font-size:18px;font-size:1.125rem;line-height:1.5}@supports(--css:variables){.mzp-c-card.mzp-c-card-large .mzp-c-card-desc{font-size:var(--body-lg-size);line-height:var(--body-line-height)}}@media(min-width:480px){.mzp-c-card.mzp-c-card-large{max-width:928px}}.mzp-c-card.mzp-c-card-extra-small .mzp-c-card-cta,.mzp-c-card.mzp-c-card-extra-small .mzp-c-card-tag{font-size:12px;font-size:.75rem;line-height:1.5}@supports(--css:variables){.mzp-c-card.mzp-c-card-extra-small .mzp-c-card-cta,.mzp-c-card.mzp-c-card-extra-small .mzp-c-card-tag{font-size:var(--body-xs-size);line-height:var(--body-line-height)}}.mzp-c-card.mzp-c-card-extra-small .mzp-c-card-title{font-size:16px;font-size:1rem;line-height:1.25}@media(min-width:768px){.mzp-c-card.mzp-c-card-extra-small .mzp-c-card-title{font-size:20px;font-size:1.25rem;line-height:1.2}}@supports(--css:variables){.mzp-c-card.mzp-c-card-extra-small .mzp-c-card-title{font-size:var(--title-3xs-size);line-height:var(--title-3xs-line-height)}@media(min-width:768px){.mzp-c-card.mzp-c-card-extra-small .mzp-c-card-title{font-size:var(--title-2xs-size);line-height:var(--title-2xs-line-height)}}}.mzp-c-card.mzp-c-card-extra-small .mzp-c-card-desc{font-size:14px;font-size:.875rem;line-height:1.5}@supports(--css:variables){.mzp-c-card.mzp-c-card-extra-small .mzp-c-card-desc{font-size:var(--body-sm-size);line-height:var(--body-line-height)}}.mzp-c-card.mzp-c-card-extra-small .mzp-c-card-block-link{border-radius:2px;height:100%}@media(min-width:1024px){.mzp-c-card.mzp-c-card-extra-small{max-width:304px}}.mzp-c-footer{background:#000;clear:both;color:#fff;font-family:Inter,X-LocaleSpecific,sans-serif;margin:0;padding-top:24px;width:100%}.mzp-c-footer a:link,.mzp-c-footer a:link:active,.mzp-c-footer a:link:focus,.mzp-c-footer a:link:hover,.mzp-c-footer a:visited,.mzp-c-footer a:visited:active,.mzp-c-footer a:visited:focus,.mzp-c-footer a:visited:hover{color:#fff}.mzp-c-footer a:link,.mzp-c-footer a:visited{font-weight:400;text-decoration:underline}.mzp-c-footer a:link:active,.mzp-c-footer a:link:focus,.mzp-c-footer a:link:hover,.mzp-c-footer a:visited:active,.mzp-c-footer a:visited:focus,.mzp-c-footer a:visited:hover{text-decoration:none}.mzp-c-footer-primary{zoom:1;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-size:16px;font-size:1rem;line-height:1.5;margin:0 auto 48px}@supports(--css:variables){.mzp-c-footer-primary{font-size:var(--body-md-size);line-height:var(--body-line-height)}}.mzp-c-footer-primary:after{clear:both;content:"";display:block;height:0;visibility:hidden}@media(min-width:1024px){.mzp-c-footer-primary{margin-bottom:32px}}.mzp-c-footer-primary-logo{margin-bottom:32px}.mzp-c-footer-primary-logo a{background:url(../img/logos/mozilla/logo-word-hor-white.svg) no-repeat;-webkit-background-size:100px,32px;background-size:100px,32px;direction:ltr;display:inline-block;height:32px;overflow:hidden;text-align:left;text-indent:-9999px;white-space:nowrap;width:100px}.mzp-c-footer-sections{zoom:1}.mzp-c-footer-sections:after{clear:both;content:"";display:block;height:0;visibility:hidden}@media(min-width:768px){.mzp-c-footer-sections{border-bottom:1px solid #42425a;padding-bottom:64px}}@media(min-width:1024px){.mzp-c-footer-sections{padding-bottom:48px}}.mzp-c-footer-section{zoom:1;margin-bottom:8px}.mzp-c-footer-section:after{clear:both;content:"";display:block;height:0;visibility:hidden}.mzp-c-footer-section a:link,.mzp-c-footer-section a:visited{text-decoration:none}.mzp-c-footer-section a:link:active,.mzp-c-footer-section a:link:focus,.mzp-c-footer-section a:link:hover,.mzp-c-footer-section a:visited:active,.mzp-c-footer-section a:visited:focus,.mzp-c-footer-section a:visited:hover{text-decoration:underline}@media(min-width:480px)and (max-width:1023px){.mzp-c-footer-section{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;width:50%}[dir=rtl] .mzp-c-footer-section{float:right}.mzp-c-footer-section:nth-child(odd){clear:left}[dir=rtl] .mzp-c-footer-section:nth-child(odd){clear:right}.mzp-c-footer-section:nth-child(odd){padding:0 24px 0 0}[dir=rtl] .mzp-c-footer-section:nth-child(odd){padding:0 0 0 24px}.mzp-c-footer-section:nth-child(2n){padding:0 0 0 24px}[dir=rtl] .mzp-c-footer-section:nth-child(2n){padding:0 24px 0 0}}@media(min-width:1024px){.mzp-c-footer-section{float:left;padding:0 24px}[dir=rtl] .mzp-c-footer-section{float:right}.mzp-c-footer-section:first-child{padding:0 24px 0 0}[dir=rtl] .mzp-c-footer-section:first-child{padding:0 0 0 24px}.mzp-c-footer-section:last-child{padding:0 0 0 24px}[dir=rtl] .mzp-c-footer-section:last-child{padding:0 24px 0 0}.mzp-c-footer-section:first-child:nth-last-child(n+2),.mzp-c-footer-section:first-child:nth-last-child(n+2)~.mzp-c-footer-section:nth-child(1n-1){width:calc(50% - 24px)}.mzp-c-footer-section:first-child:nth-last-child(n+3),.mzp-c-footer-section:first-child:nth-last-child(n+3)~.mzp-c-footer-section:nth-child(1n-1){width:calc(33.33333% - 32px)}.mzp-c-footer-section:first-child:nth-last-child(n+4),.mzp-c-footer-section:first-child:nth-last-child(n+4)~.mzp-c-footer-section:nth-child(1n-1){width:calc(25% - 36px)}.mzp-c-footer-section:first-child:nth-last-child(n+5),.mzp-c-footer-section:first-child:nth-last-child(n+5)~.mzp-c-footer-section:nth-child(1n-1){width:calc(20% - 38.4px)}.mzp-c-footer-section:first-child:nth-last-child(n+6),.mzp-c-footer-section:first-child:nth-last-child(n+6)~.mzp-c-footer-section:nth-child(1n-1){width:calc(16.66667% - 40px)}}.mzp-c-footer-heading,.mzp-c-footer-heading button{background-color:rgba(0,0,0,0);border:0;color:inherit;font-size:16px;font-size:1rem;line-height:1.5;margin-bottom:0;padding:16px 0;position:relative;width:100%}@supports(--css:variables){.mzp-c-footer-heading,.mzp-c-footer-heading button{font-size:var(--body-md-size);line-height:var(--body-line-height)}}.mzp-c-footer-heading,.mzp-c-footer-heading button{text-align:left}[dir=rtl] .mzp-c-footer-heading,[dir=rtl] .mzp-c-footer-heading button{text-align:right}.mzp-c-footer-heading.is-summary{border-bottom:0;padding:0}.mzp-c-footer-heading.is-summary button:focus{outline:1px dotted #fff}.mzp-c-footer-heading.is-summary button:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath fill='none' fill-rule='evenodd' stroke='%23FFF' stroke-linecap='round' stroke-width='2' d='M12 3.515v16.97M3.515 12h16.97'/%3E%3C/svg%3E") 0 0 no-repeat;-webkit-background-size:24px,24px;background-size:24px,24px;content:"";height:24px;margin-top:-12px;position:absolute;top:50%;-webkit-transition:transform .1s ease-in-out;transition:transform .1s ease-in-out;width:24px}.mzp-c-footer-heading.is-summary button:before{right:8px}[dir=rtl] .mzp-c-footer-heading.is-summary button:before{left:8px;right:auto}.mzp-c-footer-heading.is-summary button[aria-expanded=true]:before{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.mzp-c-footer-heading a:link,.mzp-c-footer-heading a:visited{font-weight:700}@media(min-width:768px){.mzp-c-footer-heading{border-bottom:0;padding:8px 0}}.mzp-c-footer-list{margin-bottom:32px}.mzp-c-footer-list li{list-style-type:none;padding:4px 0}.mzp-c-footer-list li:first-child{margin-top:8px}@media(min-width:768px){.mzp-c-footer-list li:first-child{margin-top:0}}.mzp-c-footer-list.is-closed[aria-hidden=true]{display:none}.mzp-c-footer-secondary{font-size:12px;font-size:.75rem;line-height:1.5;position:relative}@supports(--css:variables){.mzp-c-footer-secondary{font-size:var(--body-xs-size);line-height:var(--body-line-height)}}.mzp-c-footer-language{zoom:1;margin-bottom:24px}.mzp-c-footer-language:after{clear:both;content:"";display:block;height:0;visibility:hidden}@media(min-width:768px){.mzp-c-footer-language{float:right}[dir=rtl] .mzp-c-footer-language{float:left}}.mzp-c-footer-links-social{margin-bottom:48px}.mzp-c-footer-links-social li{display:inline-block;margin:0 16px 0 0;vertical-align:bottom}[dir=rtl] .mzp-c-footer-links-social li{margin:0 0 0 16px}.mzp-c-footer-links-social li a{background-repeat:no-repeat;border-bottom:1px solid rgba(0,0,0,0);direction:ltr;display:block;height:16px;overflow:hidden;text-align:left;text-indent:-9999px;white-space:nowrap;width:16px}.mzp-c-footer-links-social li a.twitter{background-image:url(../img/icons/social/twitter/white.svg)}.mzp-c-footer-links-social li a.instagram{background-image:url(../img/icons/social/instagram/white.svg)}.mzp-c-footer-links-social li a.youtube{background-image:url(../img/icons/social/youtube/white.svg)}.mzp-c-footer-links-social li a:focus,.mzp-c-footer-links-social li a:hover{border-bottom-color:#fff}@media(min-width:768px){.mzp-c-footer-links-social{bottom:0;margin-bottom:0;max-width:33%;position:absolute;right:0}[dir=rtl] .mzp-c-footer-links-social{left:0;right:auto}.mzp-c-footer-links-social{text-align:right}[dir=rtl] .mzp-c-footer-links-social{text-align:left}.mzp-c-footer-links-social li{margin:0;padding:0 0 16px 24px}[dir=rtl] .mzp-c-footer-links-social li{margin:0;padding:0 24px 16px 0}}.mzp-c-footer-legal li{display:inline-block;padding:0 24px 16px 0}[dir=rtl] .mzp-c-footer-legal li{padding:0 0 16px 24px}.mzp-c-footer-legal li:last-child{padding-right:0}[dir=rtl] .mzp-c-footer-legal li:last-child{padding-left:0;padding-right:0}.mzp-c-footer-license{margin-bottom:32px}@media(min-width:768px){.mzp-c-footer-license,.mzp-c-footer-terms{max-width:66%}}.mzp-c-language-switcher{color:inherit;font-weight:700}.mzp-c-language-switcher .mzp-c-language-switcher-link,.mzp-c-language-switcher label{display:inline-block;font-size:14px;font-size:.875rem;line-height:1.5;margin:0 24px 8px 0}[dir=rtl] .mzp-c-language-switcher .mzp-c-language-switcher-link,[dir=rtl] .mzp-c-language-switcher label{margin:0 0 8px 24px}@supports(--css:variables){.mzp-c-language-switcher .mzp-c-language-switcher-link,.mzp-c-language-switcher label{font-size:var(--body-sm-size);line-height:var(--body-line-height)}}.mzp-c-language-switcher .mzp-c-language-switcher-link+label{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px}.mzp-c-language-switcher select{font-size:12px;font-size:.75rem;line-height:1.5;min-width:0}@supports(--css:variables){.mzp-c-language-switcher select{font-size:var(--body-xs-size);line-height:var(--body-line-height)}}.mzp-c-language-switcher button{font-size:14px;font-size:.875rem;line-height:1.5;margin-top:8px}@supports(--css:variables){.mzp-c-language-switcher button{font-size:var(--body-sm-size);line-height:var(--body-line-height)}}.js .mzp-c-language-switcher button{display:none}.mzp-c-menu h1,.mzp-c-menu h2,.mzp-c-menu h3,.mzp-c-menu h4,.mzp-c-menu h5,.mzp-c-menu h6{font-family:Inter,X-LocaleSpecific,sans-serif}@media(min-width:768px){.mzp-c-menu{z-index:0}}.mzp-c-menu-category-list{margin-bottom:24px}@media(min-width:768px){.mzp-c-menu-category-list{zoom:1;margin-bottom:0;padding-top:24px}.mzp-c-menu-category-list:after{clear:both;content:"";display:block;height:0;visibility:hidden}}.mzp-c-menu-category .mzp-c-menu-title{border-bottom:1px solid #cdcdd4;color:#000;display:block;font-family:Inter,X-LocaleSpecific,sans-serif;font-size:16px;font-size:1rem;font-weight:700;line-height:1.5;margin-bottom:0;min-height:40px;padding:8px 0;position:relative;text-decoration:none}@supports(--css:variables){.mzp-c-menu-category .mzp-c-menu-title{font-size:var(--body-md-size);line-height:var(--body-line-height)}}.mzp-c-menu-category .mzp-c-menu-title:active,.mzp-c-menu-category .mzp-c-menu-title:focus,.mzp-c-menu-category .mzp-c-menu-title:hover{color:inherit;text-decoration:underline}.mzp-c-menu-category .mzp-c-menu-title:link:active{background:none}.mzp-c-menu-category.mzp-has-drop-down .mzp-c-menu-title{text-decoration:none}.mzp-c-menu-category.mzp-has-drop-down .mzp-c-menu-title:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath fill='none' fill-rule='evenodd' stroke='%23000' stroke-linecap='round' stroke-width='2' d='M12 3.515v16.97M3.515 12h16.97'/%3E%3C/svg%3E") 0 0 no-repeat;-webkit-background-size:20px,20px;background-size:20px,20px;content:"";height:20px;margin-top:-8px;position:absolute;top:50%;-webkit-transition:transform .1s ease-in-out;transition:transform .1s ease-in-out;width:20px}.mzp-c-menu-category.mzp-has-drop-down .mzp-c-menu-title:before{right:8px}[dir=rtl] .mzp-c-menu-category.mzp-has-drop-down .mzp-c-menu-title:before{left:8px;right:auto}@supports(display:flex){.mzp-c-menu-category .mzp-c-menu-title{align-items:center;display:flex}}@media(min-width:768px){.mzp-c-menu-category{display:inline-block;float:left}[dir=rtl] .mzp-c-menu-category{float:right}.mzp-c-menu-category .mzp-c-menu-title{border-bottom:none;padding:0 8px 24px}.mzp-c-menu-category .mzp-c-menu-title.mzp-has-drop-down{cursor:default}.mzp-c-menu-category.mzp-has-drop-down .mzp-c-menu-title:before{display:none}}@media(min-width:1024px){.mzp-c-menu-category .mzp-c-menu-title{padding:0 16px 24px}}@media(min-width:1312px){.mzp-c-menu-category .mzp-c-menu-title{padding:0 24px 24px}}.mzp-c-menu.mzp-is-basic .mzp-c-menu-category .mzp-c-menu-title:before{display:none}@media(min-width:768px){.mzp-c-menu.mzp-is-basic .mzp-c-menu-category .mzp-c-menu-title:before{display:none}.mzp-c-menu.mzp-is-basic .mzp-c-menu-category.mzp-has-drop-down:focus .mzp-c-menu-title,.mzp-c-menu.mzp-is-basic .mzp-c-menu-category.mzp-has-drop-down:hover .mzp-c-menu-title{z-index:1001}.mzp-c-menu.mzp-is-basic .mzp-c-menu-category.mzp-has-drop-down:focus .mzp-c-menu-title:after,.mzp-c-menu.mzp-is-basic .mzp-c-menu-category.mzp-has-drop-down:hover .mzp-c-menu-title:after{background:#000;bottom:-1px;content:"";height:1px;left:0;position:absolute;width:100%}.mzp-c-menu.mzp-is-basic .mzp-c-menu-category.mzp-has-drop-down:focus .mzp-c-menu-panel,.mzp-c-menu.mzp-is-basic .mzp-c-menu-category.mzp-has-drop-down:hover .mzp-c-menu-panel{display:block;z-index:1000}.mzp-c-menu.mzp-is-basic .mzp-c-menu-category.mzp-has-drop-down:focus-within .mzp-c-menu-title{z-index:1001}.mzp-c-menu.mzp-is-basic .mzp-c-menu-category.mzp-has-drop-down:focus-within .mzp-c-menu-title:after{background:#000;bottom:-1px;content:"";height:1px;left:0;position:absolute;width:100%}.mzp-c-menu.mzp-is-basic .mzp-c-menu-category.mzp-has-drop-down:focus-within .mzp-c-menu-panel{display:block;z-index:1000}}.mzp-c-menu.mzp-is-enhanced .mzp-c-menu-category.mzp-is-selected .mzp-c-menu-title:before{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.mzp-c-menu.mzp-is-enhanced .mzp-c-menu-category.mzp-is-selected .mzp-c-menu-panel{display:block;overflow:hidden}@media(min-width:768px){.mzp-c-menu.mzp-is-enhanced .mzp-c-menu-category.mzp-is-animated .mzp-c-menu-panel,.mzp-c-menu.mzp-is-enhanced .mzp-c-menu-category.mzp-is-animated .mzp-c-menu-title:after{-webkit-animation:mzp-a-fade-in 80ms ease-in 0ms 1 normal both;animation:mzp-a-fade-in 80ms ease-in 0ms 1 normal both}.mzp-c-menu.mzp-is-enhanced .mzp-c-menu-category.mzp-is-selected .mzp-c-menu-title{z-index:101}.mzp-c-menu.mzp-is-enhanced .mzp-c-menu-category.mzp-is-selected .mzp-c-menu-title:after{background:#000;bottom:-1px;content:"";height:1px;left:0;position:absolute;width:100%}.mzp-c-menu.mzp-is-enhanced .mzp-c-menu-category.mzp-is-selected .mzp-c-menu-panel{display:block;overflow:visible;z-index:100}}.mzp-c-menu-panel{background:#fff;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:none;padding-top:24px;width:100%}.mzp-c-menu-panel .mzp-c-menu-button-close{background:rgba(0,0,0,0) url(../img/icons/close.svg) 50% no-repeat;border:none;cursor:pointer;direction:ltr;display:none;height:16px;overflow:hidden;padding:0;position:absolute;right:0;text-align:left;text-indent:-9999px;top:-8px;-webkit-transition:transform .1s ease-in-out;transition:transform .1s ease-in-out;white-space:nowrap;width:16px}.mzp-c-menu-panel .mzp-c-menu-button-close:focus,.mzp-c-menu-panel .mzp-c-menu-button-close:hover{-webkit-transform:scale(1.2);transform:scale(1.2)}@media(min-width:768px){.mzp-c-menu-panel .mzp-c-menu-button-close{right:64px}[dir=rtl] .mzp-c-menu-panel .mzp-c-menu-button-close{left:64px;right:auto}}@media(min-width:1024px){.mzp-c-menu-panel .mzp-c-menu-button-close{right:96px}[dir=rtl] .mzp-c-menu-panel .mzp-c-menu-button-close{left:96px;right:auto}}.mzp-c-menu-panel.mzp-has-card .mzp-c-menu-panel-card{display:none;width:300px}.mzp-c-menu-panel.mzp-has-card .mzp-c-menu-panel-card .mzp-c-card{margin-bottom:0}.mzp-c-menu-panel .mzp-c-menu-panel-container{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0 auto;max-width:1440px;padding:0;position:relative}@media(min-width:768px){.mzp-c-menu-panel .mzp-c-menu-panel-container{padding:16px 64px 0}}@media(min-width:1024px){.mzp-c-menu-panel .mzp-c-menu-panel-container{padding:16px 96px 0}}@media(min-width:768px){.mzp-c-menu-panel{border-top:1px solid #ededf0;box-shadow:0 16px 16px -16px rgba(0,0,0,.3);left:0;padding:32px 4px;position:absolute}.mzp-c-menu-panel .mzp-c-menu-panel-container{zoom:1}.mzp-c-menu-panel .mzp-c-menu-panel-container:after{clear:both;content:"";display:block;height:0;visibility:hidden}.mzp-c-menu-panel .mzp-c-menu-button-close{display:block;top:-16px}.mzp-c-menu-panel .mzp-c-menu-panel-content{zoom:1;position:relative}.mzp-c-menu-panel .mzp-c-menu-panel-content:after{clear:both;content:"";display:block;height:0;visibility:hidden}.mzp-c-menu-panel .mzp-c-menu-panel-content>ul{float:left;margin-bottom:0;width:calc(50% - 12px)}[dir=rtl] .mzp-c-menu-panel .mzp-c-menu-panel-content>ul{float:right}.mzp-c-menu-panel .mzp-c-menu-panel-content>ul:first-child{margin-right:12px}[dir=rtl] .mzp-c-menu-panel .mzp-c-menu-panel-content>ul:first-child{margin-left:12px;margin-right:0}.mzp-c-menu-panel .mzp-c-menu-panel-content>ul:last-child{margin-left:12px}[dir=rtl] .mzp-c-menu-panel .mzp-c-menu-panel-content>ul:last-child{margin-left:0;margin-right:12px}.mzp-c-menu-panel .mzp-c-menu-panel-content>ul>li:last-child .mzp-c-menu-item{margin-bottom:16px}}@media(min-width:1024px){.mzp-c-menu-panel.mzp-has-card .mzp-c-menu-panel-content{float:left;width:calc(100% - 324px)}[dir=rtl] .mzp-c-menu-panel.mzp-has-card .mzp-c-menu-panel-content{float:right}.mzp-c-menu-panel.mzp-has-card .mzp-c-menu-panel-card{display:block;float:right}[dir=rtl] .mzp-c-menu-panel.mzp-has-card .mzp-c-menu-panel-card{float:left}}.mzp-c-menu.mzp-is-basic .mzp-c-menu-panel{display:block}@media(min-width:768px){.mzp-c-menu.mzp-is-basic .mzp-c-menu-panel,.mzp-c-menu.mzp-is-basic .mzp-c-menu-panel .mzp-c-menu-button-close{display:none}}.mzp-c-menu-item{border-radius:2px;margin-bottom:24px}.mzp-c-menu-item .mzp-c-menu-item-link{display:block}.mzp-c-menu-item .mzp-c-menu-item-link:link,.mzp-c-menu-item .mzp-c-menu-item-link:visited{color:#000;text-decoration:none}.mzp-c-menu-item .mzp-c-menu-item-link:link .mzp-c-menu-item-title,.mzp-c-menu-item .mzp-c-menu-item-link:visited .mzp-c-menu-item-title{border-bottom:2px solid rgba(0,0,0,0)}.mzp-c-menu-item .mzp-c-menu-item-link:active .mzp-c-menu-item-title,.mzp-c-menu-item .mzp-c-menu-item-link:focus .mzp-c-menu-item-title,.mzp-c-menu-item .mzp-c-menu-item-link:hover .mzp-c-menu-item-title{border-bottom:2px solid #000;color:#000;-webkit-transition:border-bottom-color .1s ease-in-out;transition:border-bottom-color .1s ease-in-out}.mzp-c-menu-item .mzp-c-menu-item-head{display:block}.mzp-c-menu-item .mzp-c-menu-item-head .mzp-c-menu-item-title{border-bottom:2px solid rgba(0,0,0,0)}.mzp-c-menu-item.mzp-has-icon .mzp-c-menu-item-head,.mzp-c-menu-item.mzp-has-icon .mzp-c-menu-item-link{padding-left:48px;position:relative}[dir=rtl] .mzp-c-menu-item.mzp-has-icon .mzp-c-menu-item-head,[dir=rtl] .mzp-c-menu-item.mzp-has-icon .mzp-c-menu-item-link{padding-left:0;padding-right:48px}.mzp-c-menu-item.mzp-has-icon .mzp-c-menu-item-head .mzp-c-menu-item-icon,.mzp-c-menu-item.mzp-has-icon .mzp-c-menu-item-link .mzp-c-menu-item-icon{height:24px;left:8px;margin:0;position:absolute;top:8px;width:24px}[dir=rtl] .mzp-c-menu-item.mzp-has-icon .mzp-c-menu-item-head .mzp-c-menu-item-icon,[dir=rtl] .mzp-c-menu-item.mzp-has-icon .mzp-c-menu-item-link .mzp-c-menu-item-icon{left:auto;right:8px}.mzp-c-menu-item .mzp-c-menu-item-title{display:inline;font-size:16px;font-size:1rem;line-height:1.25}@media(min-width:768px){.mzp-c-menu-item .mzp-c-menu-item-title{font-size:20px;font-size:1.25rem;line-height:1.2}}@supports(--css:variables){.mzp-c-menu-item .mzp-c-menu-item-title{font-size:var(--title-3xs-size);line-height:var(--title-3xs-line-height)}@media(min-width:768px){.mzp-c-menu-item .mzp-c-menu-item-title{font-size:var(--title-2xs-size);line-height:var(--title-2xs-line-height)}}}.mzp-c-menu-item .mzp-c-menu-item-desc{font-size:14px;font-size:.875rem;line-height:1.5;margin:8px 0 0}@supports(--css:variables){.mzp-c-menu-item .mzp-c-menu-item-desc{font-size:var(--body-sm-size);line-height:var(--body-line-height)}}.mzp-c-menu-item .mzp-c-menu-item-list{zoom:1;font-size:14px;font-size:.875rem;line-height:1.5;margin:16px 0 0;position:relative}.mzp-c-menu-item .mzp-c-menu-item-list:after{clear:both;content:"";display:block;height:0;visibility:hidden}@supports(--css:variables){.mzp-c-menu-item .mzp-c-menu-item-list{font-size:var(--body-sm-size);line-height:var(--body-line-height)}}.mzp-c-menu-item .mzp-c-menu-item-list li{word-wrap:break-word;margin-bottom:16px}.mzp-c-menu-item .mzp-c-menu-item-list a:link,.mzp-c-menu-item .mzp-c-menu-item-list a:visited{color:#000;text-decoration:none}.mzp-c-menu-item .mzp-c-menu-item-list a:active,.mzp-c-menu-item .mzp-c-menu-item-list a:focus,.mzp-c-menu-item .mzp-c-menu-item-list a:hover{color:#000;text-decoration:underline}@media(min-width:480px){.mzp-c-menu-item .mzp-c-menu-item-list li{float:left;width:calc(50% - 8px)}[dir=rtl] .mzp-c-menu-item .mzp-c-menu-item-list li{float:right}.mzp-c-menu-item .mzp-c-menu-item-list li:nth-child(odd){clear:left;padding-right:8px}[dir=rtl] .mzp-c-menu-item .mzp-c-menu-item-list li:nth-child(odd){clear:right;padding-left:8px;padding-right:0}.mzp-c-menu-item .mzp-c-menu-item-list li:nth-child(2n){padding-left:8px}[dir=rtl] .mzp-c-menu-item .mzp-c-menu-item-list li:nth-child(2n){padding-left:0;padding-right:8px}}.mzp-c-menu-item.mzp-has-icon .mzp-c-menu-item-list{margin-left:48px}[dir=rtl] .mzp-c-menu-item.mzp-has-icon .mzp-c-menu-item-list{margin-left:0;margin-right:48px}@media(min-width:768px){.mzp-c-menu-item:hover{box-shadow:0 0 0 4px #ededf0;-webkit-transition:box-shadow .1s ease-in-out;transition:box-shadow .1s ease-in-out}.mzp-c-menu-item .mzp-c-menu-item-head,.mzp-c-menu-item .mzp-c-menu-item-link{padding:8px}.mzp-c-menu-item .mzp-c-menu-item-list{margin:16px 0 0 8px}[dir=rtl] .mzp-c-menu-item .mzp-c-menu-item-list{margin:16px 8px 0 0}}.mzp-c-navigation{background:#fff;color:#000}.mzp-c-navigation .mzp-c-navigation-l-content{zoom:1;padding:24px;position:relative}.mzp-c-navigation .mzp-c-navigation-l-content:after{clear:both;content:"";display:block;height:0;visibility:hidden}@media(min-width:768px){.mzp-c-navigation .mzp-c-navigation-l-content{padding:0 64px}}@media(min-width:1024px){.mzp-c-navigation .mzp-c-navigation-l-content{padding:0 96px}}.mzp-c-navigation .mzp-c-navigation-container{zoom:1;margin:0 auto;max-width:1440px}.mzp-c-navigation .mzp-c-navigation-container:after{clear:both;content:"";display:block;height:0;visibility:hidden}.mzp-c-navigation-items{clear:both;padding-top:8px}@media(min-width:768px){.mzp-c-navigation-items{clear:none;padding-top:0}}@supports(position:sticky){html.mzp-has-sticky-navigation .mzp-c-navigation.mzp-is-sticky{left:0;position:sticky;top:0;-webkit-transition:transform .3s ease-in-out;transition:transform .3s ease-in-out;z-index:1000}html.mzp-has-sticky-navigation .mzp-c-navigation.mzp-is-sticky.mzp-is-scrolling{box-shadow:0 0 6px 1px rgba(29,17,51,.04),0 0 8px 2px rgba(9,32,77,.12),0 0 5px -3px rgba(29,17,51,.12)}html.mzp-has-sticky-navigation .mzp-c-navigation.mzp-is-sticky.mzp-is-hidden{-webkit-transform:translateY(-110%);transform:translateY(-110%)}html.mzp-has-sticky-navigation .mzp-is-anchor-link{scroll-margin-top:120px}}.mzp-c-navigation-logo{float:left}[dir=rtl] .mzp-c-navigation-logo{float:right}.mzp-c-navigation-logo a{background-image:url(../img/logos/mozilla/logo-word-hor.svg);background-repeat:no-repeat;-webkit-background-size:84px,24px;background-size:84px,24px;direction:ltr;display:block;height:24px;margin:0 auto;overflow:hidden;text-align:left;text-indent:-9999px;white-space:nowrap;width:84px}@media(min-width:768px){.mzp-c-navigation-logo{margin:24px 16px 24px 0}[dir=rtl] .mzp-c-navigation-logo{margin:24px 0 24px 16px}.mzp-c-navigation-logo a{margin-top:8px}}@media(min-width:1024px){.mzp-c-navigation-logo{margin:24px 32px 24px 0}[dir=rtl] .mzp-c-navigation-logo{margin:24px 0 24px 32px}.mzp-c-navigation-logo a{-webkit-background-size:112px,32px;background-size:112px,32px;height:32px;margin-top:4px;width:112px}}@media(min-width:1312px){.mzp-c-navigation-logo{margin:24px 48px 24px 0}[dir=rtl] .mzp-c-navigation-logo{margin:24px 0 24px 48px}}.mzp-t-firefox .mzp-c-navigation-logo a{background-image:url(../img/logos/firefox/logo-word-hor.svg);-webkit-background-size:81px,27px;background-size:81px,27px;height:27px;width:81px}@media(min-width:768px){.mzp-t-firefox .mzp-c-navigation-logo a{margin-top:7px}}@media(min-width:1024px){.mzp-t-firefox .mzp-c-navigation-logo a{background-image:url(../img/logos/firefox/logo-word-hor.svg);height:36px;margin-top:1px;width:109px}}.mzp-c-navigation-menu{vertical-align:bottom}@media(min-width:768px){.mzp-c-navigation-menu{display:inline-block;margin-left:-8px;width:auto}[dir=rtl] .mzp-c-navigation-menu{margin-left:0;margin-right:-8px}}@media(min-width:1024px){.mzp-c-navigation-menu{margin-left:-16px}[dir=rtl] .mzp-c-navigation-menu{margin-left:0;margin-right:-16px}}@media(min-width:1312px){.mzp-c-navigation-menu{margin-left:-24px}[dir=rtl] .mzp-c-navigation-menu{margin-left:0;margin-right:-24px}}.mzp-c-navigation-download{margin:32px 0 24px;text-align:center}.mzp-c-navigation-download .mzp-c-button-download-container{margin-bottom:0}.mzp-c-navigation-download .mzp-c-button-download-container .mzp-c-button-download-privacy-link{display:none}@media(min-width:768px){.mzp-c-navigation-download{display:block;float:right;margin:24px 0;margin:24px 0 24px 8px}[dir=rtl] .mzp-c-navigation-download{float:left;margin:24px 8px 24px 0}}@media(min-width:1024px){.mzp-c-navigation-download{margin:24px 0 24px 16px}[dir=rtl] .mzp-c-navigation-download{margin:24px 16px 24px 0}}@media(min-width:1312px){.mzp-c-navigation-download{margin:24px 0 24px 24px}[dir=rtl] .mzp-c-navigation-download{margin:24px 24px 24px 0}}.mzp-c-navigation-menu-button{background-color:rgba(0,0,0,0);background-image:url(../img/icons/menu.svg);background-position:right 6px center;background-repeat:no-repeat;border:none;border-radius:4px;display:none;height:32px}[dir=rtl] .mzp-c-navigation-menu-button{background-position:left 6px center}.mzp-c-navigation-menu-button{float:right}[dir=rtl] .mzp-c-navigation-menu-button{float:left}.mzp-c-navigation-menu-button{padding:0 32px 0 6px}[dir=rtl] .mzp-c-navigation-menu-button{padding:0 6px 0 32px}.mzp-c-navigation-menu-button.mzp-is-active,.mzp-c-navigation-menu-button:active,.mzp-c-navigation-menu-button:focus,.mzp-c-navigation-menu-button:hover{background-color:#ededf0}.mzp-c-navigation-menu-button:not(.has-label){cursor:pointer;direction:ltr;overflow:hidden;text-align:left;text-indent:-9999px;white-space:nowrap;width:32px}.mzp-c-navigation-menu-button:not(.has-label){background-position:50%}[dir=rtl] .mzp-c-navigation-menu-button:not(.has-label){background-position:50%}.mzp-c-navigation-menu-button:not(.has-label){padding:0}[dir=rtl] .mzp-c-navigation-menu-button:not(.has-label){padding:0}.js .mzp-c-navigation-menu-button{display:block;margin:-4px 0}@media(min-width:768px){.js .mzp-c-navigation-menu-button{display:none}}.js .mzp-c-navigation-l-content .mzp-c-navigation-items{display:none}.js .mzp-c-navigation-l-content .mzp-c-navigation-items.mzp-is-open{display:block}@media(min-width:768px){.js .mzp-c-navigation-l-content .mzp-c-navigation-items{display:block}}
+/*# sourceMappingURL=protocol.css.map*/
\ No newline at end of file
diff --git a/src/styles.css b/src/styles.css
new file mode 100644
index 0000000..e93ebae
--- /dev/null
+++ b/src/styles.css
@@ -0,0 +1,100 @@
+:root {
+ font-family: Inter, Avenir, Helvetica, Arial, sans-serif;
+
+ color: #f6f6f6;
+ background-color: #292829;
+
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-text-size-adjust: 100%;
+}
+
+textarea {
+ width: 100%;
+}
+
+img{
+ height: 2em;
+ width: 2em;
+}
+
+.select-file {
+
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ align-items: center;
+ row-gap: 0;
+}
+
+p{
+
+}
+
+
+
+.row {
+ display: flex;
+ justify-content: center;
+}
+
+
+h1 {
+ text-align: center;
+}
+
+input,
+button {
+ border-radius: 8px;
+ border: 1px solid transparent;
+ padding: 0.5em 0.5em;
+ font-size: 1em;
+ font-weight: 500;
+ font-family: inherit;
+ color: #ffffff;
+ background-color: #292829;
+ transition: border-color 0.25s, color 0.25s;
+ border-color: #ffffff;
+ box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2);
+}
+
+button {
+ cursor: pointer;
+}
+
+button:hover {
+ border-color: #d88939;
+ color: #d88939;
+}
+button:active {
+ border-color: #d88939;
+ background-color: #353435;
+}
+
+input,
+button {
+ outline: none;
+}
+
+.slice-button{
+ border-color: #292829;
+ color: #292829;
+ background-color: #d88939;
+}
+
+.slice-button:hover{
+ border-color: #d88939;
+ color: #d88939;
+ background-color: #292829;
+}
+
+.slice-button:active {
+ background-color: #353435;
+}
+
+
+#greet-input {
+ margin-right: 5px;
+}