From 37cc74bfd1bb897147334f6dbdfa735a11ba4675 Mon Sep 17 00:00:00 2001 From: Dylan Knutson Date: Tue, 23 Apr 2024 09:47:36 -0700 Subject: [PATCH] initial commit --- .gitignore | 2 + Cargo.lock | 2191 ++++++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 31 + src/load_test.rs | 59 ++ src/main.rs | 280 ++++++ test/cat1.jpg | Bin 0 -> 189399 bytes test/test.rb | 29 + 7 files changed, 2592 insertions(+) create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 src/load_test.rs create mode 100644 src/main.rs create mode 100644 test/cat1.jpg create mode 100644 test/test.rb diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4c16076 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.DS_Store +target \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..ab31409 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,2191 @@ +# 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 = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + +[[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 = "anstream" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" + +[[package]] +name = "anstyle-parse" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "anyhow" +version = "1.0.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519" + +[[package]] +name = "async-trait" +version = "0.1.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "autocfg" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" + +[[package]] +name = "axum" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf" +dependencies = [ + "async-trait", + "axum-core", + "axum-macros", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "itoa", + "matchit", + "memchr", + "mime", + "multer", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sync_wrapper 1.0.1", + "tokio", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "axum-core" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper 0.1.2", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "axum-macros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00c055ee2d014ae5981ce1016374e8213682aa14d9bf40e48ab48b5f3ef20eaa" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "axum_typed_multipart" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ada0aabf9febad311ed727c9b75db0229a78c0355a29bc8e99cffe390354d33" +dependencies = [ + "anyhow", + "axum", + "axum_typed_multipart_macros", + "bytes", + "chrono", + "futures-core", + "futures-util", + "tempfile", + "thiserror", + "tokio", + "uuid", +] + +[[package]] +name = "axum_typed_multipart_macros" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "166fc62c8e1c06f387d4474563d2ba6e5930ea33e7eb856a884ac3a9652ae181" +dependencies = [ + "darling", + "heck 0.5.0", + "proc-macro-error", + "quote", + "syn 2.0.60", + "ubyte", +] + +[[package]] +name = "backtrace" +version = "0.3.71" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" + +[[package]] +name = "blob-store-app" +version = "0.1.0" +dependencies = [ + "axum", + "axum_typed_multipart", + "chrono", + "clap", + "futures", + "kdam", + "rand", + "reqwest", + "rusqlite", + "serde", + "serde_json", + "sha2", + "tokio", + "tokio-rusqlite", + "tracing", + "tracing-subscriber", +] + +[[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 = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "bytes" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" + +[[package]] +name = "cc" +version = "1.0.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d32a725bc159af97c3e629873bb9f88fb8cf8a4867175f76dc987815ea07c83b" + +[[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.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "wasm-bindgen", + "windows-targets 0.52.5", +] + +[[package]] +name = "clap" +version = "4.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim 0.11.1", +] + +[[package]] +name = "clap_derive" +version = "4.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "clap_lex" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" + +[[package]] +name = "colorchoice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" + +[[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 = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95" +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 = "darling" +version = "0.20.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.10.0", + "syn 2.0.60", +] + +[[package]] +name = "darling_macro" +version = "0.20.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.60", +] + +[[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 = "encoding_rs" +version = "0.8.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +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 = "fallible-iterator" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" + +[[package]] +name = "fallible-streaming-iterator" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" + +[[package]] +name = "fastrand" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" + +[[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 = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[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.60", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[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-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" + +[[package]] +name = "h2" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "816ec7294445779408f36fe57bc5b7fc1cf59664059096c65f905c1c61f58069" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +dependencies = [ + "ahash", + "allocator-api2", +] + +[[package]] +name = "hashlink" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "692eaaf7f7607518dd3cef090f1474b61edc5301d8012f09579920df68b725ee" +dependencies = [ + "hashbrown", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "http" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-tls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +dependencies = [ + "bytes", + "http-body-util", + "hyper", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "pin-project-lite", + "socket2", + "tokio", + "tower", + "tower-service", + "tracing", +] + +[[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 = "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 = "indexmap" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "js-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "kdam" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2f08e037030a8ae7807e4edc2a12fad4a0cce624d227f422e3879fea8c89908" +dependencies = [ + "terminal_size", + "windows-sys 0.52.0", +] + +[[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 = "libsqlite3-sys" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c10584274047cb335c23d3e61bcef8e323adae7c5c8c760540f73610177fc3f" +dependencies = [ + "pkg-config", + "vcpkg", +] + +[[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.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" + +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + +[[package]] +name = "memchr" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mime_guess" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "miniz_oxide" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.48.0", +] + +[[package]] +name = "multer" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a15d522be0a9c3e46fd2632e272d178f56387bdb5c9fbb3a36c649062e9b5219" +dependencies = [ + "bytes", + "encoding_rs", + "futures-util", + "http", + "httparse", + "log", + "memchr", + "mime", + "spin", + "version_check", +] + +[[package]] +name = "native-tls" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[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-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 = "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 = "openssl" +version = "0.10.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" +dependencies = [ + "bitflags 2.5.0", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[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 = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pin-project" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[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.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[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", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[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 = "reqwest" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10" +dependencies = [ + "base64", + "bytes", + "encoding_rs", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-tls", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "mime_guess", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 0.1.2", + "system-configuration", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + +[[package]] +name = "rusqlite" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b838eba278d213a8beaf485bd313fd580ca4505a00d5871caeb1457c55322cae" +dependencies = [ + "bitflags 2.5.0", + "fallible-iterator", + "fallible-streaming-iterator", + "hashlink", + "libsqlite3-sys", + "smallvec", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustix" +version = "0.38.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +dependencies = [ + "bitflags 2.5.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls-pemfile" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" +dependencies = [ + "base64", + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247" + +[[package]] +name = "rustversion" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47" + +[[package]] +name = "ryu" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" + +[[package]] +name = "schannel" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "security-framework" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "serde" +version = "1.0.198" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.198" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "serde_json" +version = "1.0.116" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_path_to_error" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" +dependencies = [ + "itoa", + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "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 = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "socket2" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "sync_wrapper" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tempfile" +version = "3.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +dependencies = [ + "cfg-if", + "fastrand", + "rustix", + "windows-sys 0.52.0", +] + +[[package]] +name = "terminal_size" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" +dependencies = [ + "rustix", + "windows-sys 0.48.0", +] + +[[package]] +name = "thiserror" +version = "1.0.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[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.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-macros" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rusqlite" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2cc5f712424f089fc6549afe39773e9f8914ce170c45b546be24830b482b127" +dependencies = [ + "crossbeam-channel", + "rusqlite", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "log", + "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.60", +] + +[[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 = [ + "nu-ansi-term", + "sharded-slab", + "smallvec", + "thread_local", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "ubyte" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f720def6ce1ee2fc44d40ac9ed6d3a59c361c80a75a7aa8e75bb9baed31cf2ea" + +[[package]] +name = "unicase" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "url" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + +[[package]] +name = "uuid" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.60", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" + +[[package]] +name = "web-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[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-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[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.5", +] + +[[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.5", +] + +[[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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +dependencies = [ + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", +] + +[[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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" + +[[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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" + +[[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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" + +[[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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" + +[[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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" + +[[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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" + +[[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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" + +[[package]] +name = "winreg" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "zerocopy" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..1b1fd94 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,31 @@ +[package] +name = "blob-store-app" +version = "0.1.0" +edition = "2021" +default-run = "blob-store-app" + +[[bin]] +name = "blob-store-app" +path = "src/main.rs" + +[[bin]] +name = "load-test" +path = "src/load_test.rs" + +[dependencies] +axum = { version = "0.7.5", features = ["macros"] } +axum_typed_multipart = "0.11.1" +chrono = "0.4.38" +clap = { version = "4.5.4", features = ["derive"] } +futures = "0.3.30" +kdam = "0.5.1" +rand = "0.8.5" +reqwest = { version = "0.12.4", features = ["json", "multipart", "blocking"] } +rusqlite = "0.31.0" +serde = { version = "1.0.198", features = ["serde_derive"] } +serde_json = "1.0.116" +sha2 = "0.10.8" +tokio = { version = "1.37.0", features = ["full", "rt-multi-thread"] } +tokio-rusqlite = "0.5.1" +tracing = "0.1.40" +tracing-subscriber = "0.3.18" diff --git a/src/load_test.rs b/src/load_test.rs new file mode 100644 index 0000000..4c13ce0 --- /dev/null +++ b/src/load_test.rs @@ -0,0 +1,59 @@ +use std::borrow::Borrow; +use std::borrow::BorrowMut; +use std::sync::Arc; +use std::sync::Mutex; + +use kdam::tqdm; +use kdam::Bar; +use kdam::BarExt; +use rand::Rng; + +fn main() -> Result<(), Box> { + let pb = Arc::new(Mutex::new(tqdm!())); + + let mut handles = vec![]; + let num_shards = 8; + for _ in (0..num_shards).into_iter() { + let pb = pb.clone(); + handles.push(std::thread::spawn(move || { + run_loop(pb).unwrap(); + })); + } + + for handle in handles { + handle.join().unwrap(); + } + + Ok(()) +} + +fn run_loop(mut pb: Arc>) -> Result<(), Box> { + let client = reqwest::blocking::Client::new(); + let mut rng = rand::thread_rng(); + let mut rand_data = vec![0u8; 1024 * 1024]; + rng.fill(&mut rand_data[..]); + + loop { + // tweak a byte in the data + let idx = rng.gen_range(0..rand_data.len()); + rand_data[idx] = rng.gen(); + + let form = reqwest::blocking::multipart::Form::new() + .text("content_type", "text/plain") + .part( + "data", + reqwest::blocking::multipart::Part::bytes(rand_data.clone()), + ); + + let resp = client + .post("http://localhost:7692/store") + .multipart(form) + .send()?; + + // update progress bar + let mut pb = pb.lock().unwrap(); + pb.update(1)?; + if resp.status() != 200 && resp.status() != 201 {} + } + Ok(()) +} diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..64de86e --- /dev/null +++ b/src/main.rs @@ -0,0 +1,280 @@ +use axum::Json; +use axum::{body::Bytes, http::StatusCode, routing::post, Extension, Router}; +use axum_typed_multipart::{FieldData, TryFromMultipart, TypedMultipart}; +use clap::Parser; +use rusqlite::ffi; +use rusqlite::params; +use rusqlite::Error::SqliteFailure; +use sha2::Digest; +use tokio::signal; +use std::collections::HashMap; +use std::{borrow::Borrow, error::Error, path::PathBuf, sync::Arc}; +use tokio::net::TcpListener; +use tokio_rusqlite::Connection; +use tracing::{error, info}; + +#[derive(Parser, Debug)] +#[command(version, about, long_about = None)] +struct Args { + /// Directory that holds the backing database files + #[arg(short, long)] + db_path: String, + + /// Number of shards + #[arg(short, long)] + shards: Option, +} + +#[derive(Debug, serde::Deserialize, serde::Serialize)] +struct ManifestData { + shards: usize, +} + +#[derive(TryFromMultipart)] +struct StoreRequest { + sha256: Option, + content_type: String, + data: FieldData, +} + +struct StoreRequestParsed { + sha256: String, + content_type: String, + data: Bytes, +} + +#[derive(Clone)] +struct Shards(Vec>); + +fn main() -> Result<(), Box> { + tracing_subscriber::fmt() + .with_max_level(tracing::Level::DEBUG) + .init(); + + let args = Args::parse(); + let db_path = PathBuf::from(&args.db_path); + let num_shards = validate_manifest(args)?; + + // max num_shards threads + let runtime = tokio::runtime::Builder::new_multi_thread() + .worker_threads(num_shards as usize) + .enable_all() + .build()?; + + runtime.block_on(async { + let server = TcpListener::bind("127.0.0.1:7692").await?; + info!( + "listening on {} with {} shards", + server.local_addr()?, + num_shards + ); + let mut shards = vec![]; + for shard in 0..num_shards { + let shard_path = db_path.join(format!("shard{}.sqlite", shard)); + let conn = Connection::open(shard_path).await?; + migrate(&conn).await?; + shards.push(Arc::new(conn)); + } + + for (shard, conn) in shards.iter().enumerate() { + let count = num_entries_in(&conn).await?; + info!("shard {} has {} entries", shard, count); + } + + server_loop(server, Shards(shards.clone())).await?; + info!("shutting down server..."); + for conn in shards.into_iter() { + (*conn).clone().close().await?; + } + info!("server closed sqlite connections. bye!"); + Ok::<(), Box>(()) + })?; + + Ok(()) +} + +async fn server_loop(server: TcpListener, shards: Shards) -> Result<(), Box> { + let app = Router::new() + .route("/store", post(store_request_handler)) + .layer(Extension(shards)); + axum::serve(server, app.into_make_service()).with_graceful_shutdown(shutdown_signal()).await?; + Ok(()) +} + +async fn shutdown_signal() { + let ctrl_c = async { + signal::ctrl_c() + .await + .expect("failed to install Ctrl+C handler"); + }; + + #[cfg(unix)] + let terminate = async { + signal::unix::signal(signal::unix::SignalKind::terminate()) + .expect("failed to install signal handler") + .recv() + .await; + }; + + #[cfg(not(unix))] + let terminate = std::future::pending::<()>(); + + tokio::select! { + _ = ctrl_c => {}, + _ = terminate => {}, + } +} + +type ResultType = Result< + (StatusCode, Json>), + (StatusCode, Json>) +>; + +#[axum::debug_handler] +async fn store_request_handler( + Extension(shards): Extension, + TypedMultipart(request): TypedMultipart, +) -> ResultType { + // compute sha256 of data + let data_bytes = &request.data.contents; + let sha256 = sha2::Sha256::digest(&data_bytes); + let sha256_str = format!("{:x}", sha256); + let num_shards = shards.0.len(); + // select shard + let shard_num = sha256[0] as usize % num_shards; + let conn = &shards.0[shard_num]; + + if let Some(req_sha256) = request.sha256 { + if req_sha256 != sha256_str { + error!("sha256 mismatch: {} != {}", req_sha256, sha256_str); + let mut response = HashMap::new(); + response.insert("status", "error".to_owned()); + response.insert("message", "sha256 mismatch".to_owned()); + return Err((StatusCode::BAD_REQUEST, Json(response))); + } + } + + // info!("storing {} on shard {}", sha256_str, shard_num); + + let request_parsed = StoreRequestParsed { + sha256: sha256_str, + content_type: request.content_type, + data: request.data.contents, + }; + + let conn = conn.borrow(); + perform_store(&conn, request_parsed).await +} + +async fn perform_store( + conn: &Connection, + store_request: StoreRequestParsed, +) -> ResultType { + conn.call(move |conn| { + let created_at = chrono::Utc::now().to_rfc3339(); + let maybe_error = conn.execute( + "INSERT INTO entries (sha256, content_type, size, data, created_at) VALUES (?, ?, ?, ?, ?)", + params![ + store_request.sha256, + store_request.content_type, + store_request.data.len() as i64, + store_request.data.to_vec(), + created_at, + ], + ); + + let mut response = HashMap::new(); + response.insert("sha256", store_request.sha256.clone()); + + if let Err(e) = &maybe_error { + if is_duplicate_entry_err(e) { + info!("entry {} already exists", store_request.sha256); + response.insert("status","ok".to_owned()); + response.insert("message", "already exists".to_owned()); + return Ok((StatusCode::OK, Json(response))); + } + } + maybe_error?; + let mut response = HashMap::new(); + response.insert("status", "ok".to_owned()); + response.insert("message", "created".to_owned()); + return Ok((StatusCode::CREATED, Json(response))); + }) + .await.map_err(|e| { + error!("store failed: {}", e); + let mut response = HashMap::new(); + response.insert("status", "error".to_owned()); + response.insert("message", e.to_string()); + (StatusCode::INTERNAL_SERVER_ERROR, Json(response)) + }) +} + +fn is_duplicate_entry_err(error: &rusqlite::Error) -> bool { + if let SqliteFailure( + ffi::Error { + code: ffi::ErrorCode::ConstraintViolation, + .. + }, + Some(err_str), + ) = error + { + if err_str.contains("UNIQUE constraint failed: entries.sha256") { + return true; + } + } + false +} + +async fn migrate(conn: &Connection) -> Result<(), Box> { + // create tables, indexes, etc + conn.call(|conn| { + conn.execute( + "CREATE TABLE IF NOT EXISTS entries ( + sha256 BLOB PRIMARY KEY, + content_type TEXT NOT NULL, + size INTEGER NOT NULL, + data BLOB NOT NULL, + created_at TEXT NOT NULL + )", + [], + )?; + Ok(()) + }) + .await?; + Ok(()) +} + +async fn num_entries_in(conn: &Connection) -> Result> { + conn.call(|conn| { + let count: i64 = conn.query_row("SELECT COUNT(*) FROM entries", [], |row| row.get(0))?; + Ok(count) + }).await.map_err(|e| e.into()) +} + +fn validate_manifest(args: Args) -> Result> { + let manifest_path = PathBuf::from(&args.db_path).join("manifest.json"); + if manifest_path.exists() { + let file_content = std::fs::read_to_string(manifest_path)?; + let manifest: ManifestData = serde_json::from_str(&file_content)?; + if let Some(shards) = args.shards { + if shards != manifest.shards { + return Err(format!( + "manifest indicates {} shards, expected {}", + manifest.shards, shards + ) + .into()); + } + } + Ok(manifest.shards) + } else { + if let Some(shards) = args.shards { + std::fs::create_dir_all(&args.db_path)?; + let manifest = ManifestData { shards }; + let manifest_json = serde_json::to_string(&manifest)?; + std::fs::write(manifest_path, manifest_json)?; + return Ok(shards); + } else { + return Err("new database needs --shards argument".into()); + } + } +} diff --git a/test/cat1.jpg b/test/cat1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..183c917159843358a8883f3eb74c5a1d44dda3ef GIT binary patch literal 189399 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ⓈMpHpQ%t$h*k`M6!oF|MhbXTAE{%{%2(w{FbE ztr4GZ&pKtf*_Cw?V`MrPd)0o!aGN8-=LN(x8TcI-XPuw%+2>}8tDfXX7zMRts~0bxb#aeEjOr4{kUMu3jI6h5T-kKipJ_BYYF_Eh8ktb-|=BR@ZX5j~?qck}tZv8B_xi-OPR zWj>#OC;sC0h0NbALhAm7{Aal2H8-pB@vK)TdiQ*4J9tj|#i8v>e{%&R6cl~#3_V0iDpCPjTKf}`W|3?@!1sEBa z7@3(_;8$NTG6*UfItB_P7AiDOT)6R|!Nm^`KRQ4Uw`R0g40LQ}3WaQcg3u}opf zjzwp7EI8PGfsse!ai3j#+_Ha7OG{;ymws8j_?5}7>FkRozU-`JzHn~3#4)?+3p-!E z>wgqm>nqpZzSvZ*&2Hkw9;?%`p4av_x{4*U+cGwD?AXO2VbDEYPbXs0i^Ag<3tib4 zI(7>rb6@ydwdN~d*NgSuwwy0(8D3m-6?eRHEM$fAs>SUAM~`1DdMt73OZcT-UGc8J z8uXXBI~yeNz9Gf`xVs;iiJ-T?oUY;Gcs%$(v3la`azgU=hT%_>0 zOl_7%X{qyKc`v*E3WY}I#V;QjxP`2Y6;fFl%ei`mW3!lHzmu%1xZ8?NpY<=-%C%qN zU;0JhOT7C}mxn#IEVfBqf?v)*XiQ9&_{He2Vf5f&Gh58g!qzU0M_m?s69n4b?3$Fk z+7}pKQ7x(EXi^bWt&;e%GN3)6#nzNb;Dw_8(wKT~x%Pz?k6+d@>n}b1;`oolZHE0H zW!arx#4>^1eY*Q4`x1kM)6Hx=JByy4?iL9=E>g?ye5pOm){(`p@j~_m=L^3WJ1@*@ zUsT26B=C=UA%|10RG2!;+N%e*?air@Kk`RW|H9G!kNrIL6Iv8SBn(ndPuGjtSsQVT zN3P*uGaHX&(bLmCpir-MU-*)FwZs<#uc=G|iX5fMS7ez~lK-f1ILRMz5;)v(UFt0B zH9c{U`|gY79jflfGPA`mO_uo2!1-9>KZD|hQVv_ac<<>iBfdyDy#Oba>3T6cHYRoH zExz)lk#9}1#Hklf0xhauFTU_QB+IRj`XbPx_{ZH>LFTw(Tg1H2qMXy+9$%|sGwfgR zPxvT@(bLl}j@cg*G3@^&&=Sym?dj>Sw%mGPH-iJ_Xt$V7V5!{lB^;&66316KG_i2V zwRFB@GkhJlNT5aW<;u9`rGc7!AHG&3Z`3{bpP{?2JVnB5@uo);mpHCmq_f}im35bf zLBiLaMUN%+A7M!Tb0nZe;p@(#r(bs#zLGF>W#f^o6$g9Z7qi^*1p@60dy+3LrI^1 z67T&*;0vn=I0x;l)ze9qf536f{%~CLLJlYSa{@`w$epgIlPuR}>rutXQ6=$GJ z?uich_E*oYN#ILU7mtKNRSd{~{}~t3T8yy(Ny>H3_sR z@;gf$U+N^wqTu!F$Sc0Za%*Z?6gdQ1_+uTW${#h^x1lO~=|PKof_bf(_p;?=pKbjx zd(-(9bC16?-ali8(O(wDE3sS}3&2Ug=;_g(h>f)h#|-;F3pDdT+F{sz$sqM$GbqM> z?d5lVp~&GR@MYr{fhG>8kd=Y2IpI&d&Dt{|;EA_SNgK{fb59bvn8jGMQ7*uc^Gkj&sQ{S{V zMUkUk^!Q@-1)yvbv$JlRVNb1!;sxgm#|&RNuMn`h;xp`~6ggZ8qw zSLRBrNG-XTtlRs?`#-}3n;RC{Z#5kLxLwfk-Yd1HxTj;;1#k05QYPyKUuV45@7*@_ zN{iwPW>A6n^x&(QeXZSMIuXYVdy?FLb~p+AGo7x#=;@c8MGsCl>&5JMmNNa?vndAT4d*kT{n8( z9M2-$dF=UV%@ef(zIi4$4OslrVy#aI`!#Yn3A8AI(oL=RD}%kBEl_tz)+r6Pxu-13ziB^&~;1HUj{I%e3vXsH9#^Ha4#*0t@`<9Ira zPs1%IQ$P3h?a!u)(=GpXE)4el7k4poUTOZk8lPSA0nfBu?#((C!7rY(r!858W6yNv zMiXDYko%W)oFN5{j=Y+Gu3lKo5F7)S9 f$_Nf8fkx(~UQ@Ngo!A!$ zSZ!>+)C5YCR!uBcAuHpiS+i|#Jj0f={kz<*{&<6<*M75WGd-B<{wrB8`pV(w9;P}O zIn~!by?WODSM}W6Ygsiy!k@TA|18WCFf9%h4*h(gWo6uIaG@@KvFMjx{0Ce4$Ln27 ztmF?IGXx12Jw3!D;Uv)hiG@QzktsatWzYhLCcY-wh_CDm4EtBKFA(^8-PLu|oD*4n ztMpQim0JF12wH4e!kK=?s!G<+ETBnLMjoK>fGE1wGVc!yD@9B+4U_IrnB2bKK*An z*>rjRBGXWQ&2MMLSa&WyXuM2m?e4Pzdi@C*|DN9Za4YlRvPjJy)of59sTIEN(b4I8 zG5eNCILRN3KNy=8?)A^imZ$2@zUdcQ6fZc*9}Q4&XyOo1^_r>`vND##@ru>PuN}wi z774r(X#Ze-Ii2m}$xXJ8gJL&iyDZzNYc+A(i=FRk{GKqF&)M^CQFC*8z2PnS;%8~$ zZ94kT0(_(Aoe`F=Qr=~!`s7Yf-E7czb!H3urtC?|_Pc_6 zvR7Z)-?Z!cC&O2^<*%Fs+8sHZFO?>8D1gJ@Wn9+_ z=LJr(5x>q09>aqf?$4J_xlpJTvNC9?S5LCUF~j}^ zEqqM^uVb?>2ki=9wk!OTUBfRAQ1Eb6i98FRA;z=fkgO7ifI`*k3$jiEuZ~}PEOGpj z^92s)rH-GyUKF@=%~A=JxmUUFw$Rt_<@>L=ACqH0vrjj+Ur(Wo;i`!1n=skv_e*$% zwrTV2a{JHlZ_&wf3x7{-u)gx2VW#L&gRmuBcO)W~tAL#I;+VR##INjy90CfB+H1Z3 zaecl1X=A_hg)bA@16p*JW%=eFS?J?AvQ1DLh&gZ;fHvKv0+-Gr7^^KB2d<*_Fyt!lWIOlNj z3%eC!KNFuw-%78nm|)iU=+guDE#-nc;%7{_xGwEcrqQRTCF{K=(d|h4W-h;c}dX}eHn9e@IydYO{ z8n3jDNRETyqaeMVvzA_3ENQG?X%+aHTlv6tsm=Gq4VD!$?vA>VoAhdWSx)6WhG=UaHlXVwf z{tRGRs?Yc#(q$RjkyBD@Voz7g%=^g3aA``#Tg?gEj>ZeC<({75cFZE1&rbcj{f_h_ zvIpbdOm+FJ6h+wHdxhmiVO=0*Y@YcCXig_Femb%=luo z)NAU67DW!{#c=}WX1ly*O$wYQ>+w^5vdZ3N8HdU%rhHb|v0>)kN4+^RFaI;B89vl` zcUySL8nMm1FXSI9UQp!gsc-l!ar}x?R!oPJK+Dxn&P#)MAH@}|{%UgmU%<1M{FUo3 zdSyp7aGP&s=g`T;BO&Pcozx$RVJpePwR^!}ZUTuW<$~1vSrG6gd{=+rISmxFFLfajWBQ|eUvkav$!W*A>r79Xss#ovJZLEV<8edK2J_ibdyHBO%BN%&bGR>l zrFcb=Z~X_JWQkvW?Jxfx5@=C7ud_4t%Kq)qM-F-UrzEYHs6EG{e7bYelcKDcimt#a znLt$=kL0I&oD*O2#R8ak*jJcPx_0ZDrQJ7$wTf@DMZV!Z_3rO8p7kW& zDvOY`-*l{2#UsYO;3T_O^gXj&(OH+~U5G#9;*rzDWNj+_Bf&7-JS9;(;SjGY>zmJ? z93&II*19NifXc3W$r4{`+1;Pj?cyj|Qu^TUDZeM%wg(28b}crndECv+Ud$b{&2i~R z#;M%ykAC)=az|aO@C{Vhl-w@&FQIVbvI`H)k50=9eiGvTXwmT>$1BUSPdQxt7IV*z zq4TM5Nb0osj8}X|lJ(*jCQBT@-~?*CDDnr(|J%Oe*9j+q7KN>k#3sGD(kpV@b0y#6 z6`MbP_SnupVajU%sSg#F?8%!LGBLZW<4(?|AGv$KHV7X%tZ|)p=B22ng?5#yIz!%1j8$3FRw{4?$?zEvK!_ra7G z^DB6rSBgKsm!9Tumt#RmiTR96Z>P=L$$wBzC2YN^F2kLu4buM^vX|uP#_(}$-B-{u z!8we7?wZoWn}T;8=5C#4GnwU_(U)U7JBxnlBui}kBG4YtqWCfy6ge|r9W!*(59Dx? zW!W5ND7L^L>#|h`OWZT1?+ga8oot}QBMG@5W_|L$2^ouQjz|0@- z-wFO!J>7NuSaQCzW#Ac|#@kL(r_Si-czfP@uP1dSMlN#Eku_4AH-%dj{#Fe9wyS!B z)RN5QpBXZbWzTUvnB#N)#AXwRC#Mbm2)i;K`syC=j8)Y$V~6CV$NHBx_9VYh1Vxpt zPO`-DpZC2lzBp#9qi~1^RG^j!LI z_!qQ*irxO@Q|hK3?aDb)%*Yhxb}rG>qUuLO;MDKe7j`d>=uX_ZD9UjIC%X)z;O#{( zv==hAOT~U^boj}>Wy|5+pY9*I@LpGU``j~E&9?+b?Gk=;yUb4Ig_@?N^*N_qYrZ`y z)}QlqU90N$YKPd1Qtqu?W_`bdFcf!H^p-afIdd_z*-0}`=(dA6K8@c!DLQN<6A8GPG zI%gc7p%8xh$hzt?%jEe^W;>oa*z~lgRv~^**t11@)41gwenlM9N&TYuijl*4HK-;P z_~<akQtZD@GyVbn}H4MK)QfZ!x#0>dxpCiGLO}V`3I-<(aKbz0aPMCz$-;NObue zki;0Xv0pxKd%dPI_QvH0smo7V>3oU5(8)-^9^U)b-UTGo*MH|ToB@gnKu{2QHq{}~iz&s{lO zlgPBm;^u#8D@TEgz*sy(S+lP?@!arg?8K)Xv1 zXc*^%ZCp<>D6|%{#q4keC8UcNPR&&-%ve5i+JVPgxOQ#dXd)RczcVypT~Y(nk=2V| z{yp~clLg1@km4W%^~S8n=bc_I)aO#(_c?hE^INW;4E6uKYuyQU;GuDE%*P_yUNc3;U!dMBP$2g?UWE{^&1R@2UVTkYe#qlPy!Hh8g7{FDml_f9cvY@lm>xYo;q5H}UKgzDNikrXYTJ)=~&vO$G zZ(vJWpSgLB-;T`c4JX!TvF$u{sK?!)Xi`#Fv9aib3*FWVy_GB02F4nPNUgA%b);cY zQNxc#$0QPFzlhk_rWYe&SSk`&A~0RgR{T=3KB)J75!Bk%Sk$b)@CvAP%X9SGEdS>f ztQ$9XbXl;^Y~UA|!cwNt@Ls_pcDB({p3FB<0%3O3+*8c8`!f!m+_Xk*#!cUfo&9xB zj&Uzs{C#F%>Yby^$c9W~1dJ>EPsv$KJl|j5KW$);_w2|DLT`Q zrY<=0{@@kGs|hI)iT4)pTOZdhzpUfR(lq{}au&g!0i=lnCF z3A=1J#}_9Z{Cwtcj8R(nUF!?}nV&MwTnb7#Vm3K?zcHu%ZcR4*)eSs_4N7gRAm0+T5{hVb{RF})% zW0$2Jl|H%2y<0NhGH&|fowe+SE-$_(dQ_dTatnN+J-zUSll-CMizSX3_Czc??{G+< zMUlg?-Rb3pQ+s_jn{u~*=Dj1nQGV<1G`rtlw`SR}P2`tOBb-Q24qgDbUWOVCvecxPO!P*(xu{<(v7!QRT7CFV1&|_b)$Jd3axC$({$bKKzc&fBap0 zk|n-I92HUI12w6ax-$2jO`1Nl(4g3PBd6K+q<67*)3k0*cbMfBecAuKum$Uy4E6_Q zv%?l`_+_C`7{A1>@x}g64@-2Vx7aQY&ANLa=6BylONH{Jdu^+dj4s7}b>!RDUZ!lm z`OMwwwN*y5HpR8Plb@S*Epw4+Wb}qrJi9;NLxW~6I zvhRHbr(W_71FK8+MNjX{&z>>Uv|=`ERqcabsoT@$&*)Jo$a^+PQfJ!wo_SA?vYp{R z^!A%`R$g%NqX$0Q8r!Zaf0`D4JAQ`cB>klJeTh%QUo}VlanerN=Y6=})F6s4wW7=H z`b_5qnU1Y8LH!+FKVLljcKopHlrovnI~(KjjBI@>?2Qb~1b#aI-Lvw_>@%&#Z{0$y zf_NfV{FoACHSPYQX<3_(Df3D_+mWorom!#Lup(eDhg0V_jpMgJwO5PYIkxp#fp^1A z={F9CZcf=KE}^k(%bRz{O!mgU|1~2aa)a#4{&ZC@7wZlwrF&baTi7nI`q|0G8X~4( zb1_0`tyzn~%B-dyu^FeTsy7~wC=vZ~PVj}TcUdCWORMY`x>ZkqH8QiwX4yu7S`TvV za?K(VMh`ih1YYr|=gg1^-OJl?YRU}J^vWZCU4=6l{0=AM{)*@P zib(sblC7HryGpMTTzmBaTl&s5W^cWhW__B7{U zZ(-aYhckL+kV-i?emh68q;$ zJYl%9c6Gh`o(0}4X6NSJ@?P?HXV2xFU-EAs?0VL={GDoJct+#Vr-t1xgs$xH<*!_; z|6N0)Bk_-*tL?GehXx5VJ9(5gv`^NukXXgcyh=eSrkKeje?c<$1@}2m+e55Qck3^G zzF^smc^j5g9=d&avEGUj<}2}@{ceUm$=43aItjEW@-29=gKcr)RimdJS63_e>SkK9 zzHqx;nv}fz)>)~Uv7u*k-)o8J#@@U7yZg=Cnfi0@eLA%J?YX^AMVgD`&n#J3z1T4A zgU;_lv$&tpeZRZ;n-UqSeF`RcK2kIZz0<5}b5twgmXuf9ocgXS`Dsl;r`$B|X%{Z$ z*mYXQ#!Kkh8N(U7_w)arIqd*%S-C2MjZn+3P@hG`{o>|9p@+|exlMQwz&2;|S3~xv zum2cbJ~F-W_?1OD4231Xl1mz+ednFzc${MDGe7-^S(j(EymQ=za5w8-{<-lLv9?EA z|B8H5SY!I>J^$Xn?#a>#7ejsD3Up~rwzz6{!!E#7-LlMXvHnI;n^%AAHCJqZp6EPx zpOhBcH<6$}dmOW7+*~C;@iQk|dU3?$k30tK%gg4!OPqGCH`!hBePF}3))ljD)GEu= zPKm$apB6P=owxc&$?usZyLi{@cOT)&IK57_+Eq!sg(di{W1CA{z*4X4eN#8upU>QI zX;%L4*J83$_tl?S9#EObaaq~fhf&*ZPMXrnO;YjG%Ov{bfuSh!cO{jR9KWV-lbP|M@^(qs1WN0;GyDxJf#o|l##t)Ac@7c8d-G#?zDi>Hrbv-zg z6Ze8y~8K^7vg7ESIbqGU3nCGK&rQ&<6U`M=ZdgR zhm9VJPTM0Pmj7V>o8`}f%pSHU^W9jr^={UAq2LAxlqPWY>=sQx%i`ZfTNRc_*3U zcTLdZ3lF2?_T+!nvbwl@O8tzUt^&3FA0B?q=aW2MwZd-W?=btj53k->KGFY3#C-N2 zdp0f3Vt2S*bhPK`bgS=2WLY<->=ux^nGu&L?iJTOO|{q6H+q+qw0`y^afVdKgKBZ@ zGZ^2z(?7Gurs3kcOCPo7B^L{^cZU4E6|&VpIrVM}%f4cDL!LRe}F22!QBzx)YK~asU;E&u}=IU%d zXt+bF&t}HVd*@%wdNMoqjH+IqVngMb;`wJB4@w-gQ`+n3plGo}M{cs}&i5z2Td$Bl zscYT$WOK;HdurBtn|fymFL?d^&ob7q#J9#=uWffWZ@#kJZT@BM8ME&kj=OE>%dj^8 z%%#>E$-{51pYb!<@a9JFz4 zjp4aHA;Uk7H#3{R;?MLeHE$!H2fnY5Y@PV$YQ4f4Zr$)r58hnak@@GX_}~31!4d`! zr1+cUO1>%cNB*`?{NNV#TJzj2$BK=5UrvcR)pR;npHg&N=OD8GjBumhwMFxT-s-m7 zH~mpMI!z{U{oeToY(B-ab~?8e=Pv(jaq806@~J%w;@y8v`<*Dk+iy7KqEqpfU6ng$ zmpQL^+qFL}_H@^|_7a5`oy)e?HWe)Tb8*ddj%^$3I%~cOduDZ53z)Q?=irl=B{-o_ z@AQ^qYiCw2G5NyC^X20ggJeeW1*c}YUJ7V;?Oy46<`!SK$11xPg;Tp0?_cxcg+i5H zOqF3z)pg5!lmW~1KImsDa@pXa!=f9o|>SaK_3&S!I7%V!E#!q$g;@R`CK z9{1|wy^19=>~(w>6Qo=dKIDrov`dp%#{2rCX6}vBeQ}>RTRckrY{r)2{LScGyvFAg zrsWe(zi_vxoTBu4i$K(EUjLVOzPE@T6Wg=)1~Xy$4}`;B7?+>18k4oV+pyV_HcI1?e~`b>%8oZ*(W_(m$0$E zZP%QGo338lyYBdwQ<8TsH{bcaVxEch1+%#C{YB|FnWGZxye4epe==Vve51)Bkvrwz zxqll5@UF;m|K!;GF6s5Ba|Ko34d>@nH?4l7oRzyQxB7Rs#SH5P#kebfT)gGe9@Jgf z%dNlZ{5K^_|M^YxcP?7w-}~>k*Cx~0hNFv}g`SA)vpc!Ks+u5M0yUi-p@$m0yhZkIs58fCj-Z_2u&xH=t_TJLHnX-DK!iGOfS6DuZ zEVDTkb2{S9^_4pobXoXaSjc$gqP6XQf!>XmBqdn9Gb|UK@1F7eTfer%_EkFFz5F7x^*0Ve^#m7xJ0e3|Flqf2`2TT5>F5xzzJpD(BiasV?|5bH)3^ zsfiyFA8+CCve>fm^XhjNv6^#csL#=04w`PWZeLPP{fh;5Z$92S^KV)8G?{75Z?0e2 z!E|Kr{4Ld9ooDBKsP3Jo7*ck<~ZK8w#?)7-n)ag>gOFivqod$K_2as zSFN3;rMcJ7&=y>Hw?`_zv#a%4+{Q4n4#saJPOUO$=mGU(}1w#3WNFNmm2;``T>^Wyk5F3?OqhkzpwXPCp(k{R9~ zT1xl0N<9wR5qM3{nWwC+(LLiem$>b%a^EtkV{u0c9se^Nl+>)@<$pWpt<3z47Ng3d zBWoOaFMRH3vo!EMeyVoWO25``Gj*CDMeJ^L`KbNo?1As;{~0DvmKNY#;&x}1|IU3E z%onRa`a6SnYv{7WAJ%VKSJ>yU=lbUM%w68kPX6v|T)p$I^v`9m5EE$FVB~J6tz9ROwM-sNnY1GyuOFGc78fwwZY_}j$d(qWyu1aR;TLA zZ@gA9%9Q=JtDM2mzmM^IJ?C6b*|~MDwo9wnV^byMBV&JtDKG&p7sALgbJ8 z3H>W+Dhm-g(j@_X{`P*D$yg%zVv z$O-|45)Orz8aJN{NdJy(JpGU{@Ll4|{WIg(E6jeetevG=CB7}M_^7MzyeHc~ax)zK zk+M0wA=kUKPGRqRUgLibs+JPVHm%RdO!Eu6(P64Et>c{Tx2{A5rlbajx19}VuPJkG zJ>>dL%24t2?NH~npAB7VMK=1`^($!}>yFC%SYst``{=S!vPsZ~SC;EOnk+6}>;6Hw z>|P}A{LGfAr^-X><33!|?|c97Tg9w-;s1>Ji}x(o)V|j=_dmlY>$LO-HrwQDoI~w* zUFzRo)#@v{eMOyK$9ApP=d5QJ>muiN-TmsdzF=l-YwK-~H}g~0 zoo>Cr^J9O|2N&rsJ0-)g?o`N_so;D_#8#%i!vJH3rbviVA7iH^j|mdf*% zIs2Wx58Da{&4|jqu=JR*U8ClO;u$3pMvso^xxSLyn%BI@Ybq0qLeqDC1KHpQ9k=hD zdDbuSqU4?cV?nfE2jl7>s{>~RyCn6pICj;nb@q~K3k%==r|m)&pZ%M-^R}15cl-YG z3f{%>Q^8*~;>Yz@Dl>hzcq~o$$hafM$@W6O^m{>`GPhLrs3Z3bH2yQ(^mSRAWu2dq z5Sp7d!}g)2x#P}HuA63M+_mn%R-ck6(v>RpyG~KLM}GFp2$-`ko4pII$;Dce&%`3%>|cCM|qvwkWq-0|7j`SBCwrJJ&+^ow4+x3lx^f(rH> zsVT=U9C~{5Qr635IXdqXvd@I^cqd2NzNqXz^rr7&rQETfGc-e`Rf?+b9-P@V&*}K* z^?y$5S*YAPt@ccfWuxx#+Wjf~ zy$`Q`04a_1B(spRU_!_|q`MbVb?} zIs0NYHo3F)0#aG$kG`lD>J|-;FwXDU$o9DXuTdH_!yw|G!ZQb;QduQgV2E$ccx29jd?xU6P zY3YW8suPdsrLz6)-pF`tp2zxmrm6+a%Mu@l-?4sFSGWAmkF3kTzE9`hrD(LbBkF_Q z!*9lW%(6_kEx5OKo#Lg}fp_2Xy|vY~Z!Ygu3ujF@sracTWZR;nO;_S`y?-`1b*IG%f7N@|_u6fK zmFOp@)fK+C??|n)?b!CiE`E1--HXVXcWT1>_6TMKJ?se zq+h%LQ}}FwYo$Nm{7cp_uD!DQryFOkZ%*dw^Eb^bt74bOM@~sy$G;`!C~uErS!sEp zj!)L!6Y|p(Ob`6M@Z*Bq=b29*-TcG8=a{DLcWM74A?a)LBW%|TIy#&`t)H-d#-FA+ z%XDSRs`lrB_C4&j(K4B-$D1`eMhyqQ!i( zt5hQP@+k7PgI51st%|F%NDOE#=G-o4dn)y!VWWn^W)D4$5a;|a^*i=<+Fdfxna(1u z$)3rVILSCU*lqLD^f%SPEN6C}`OmQMNZi*a+u~)5mzd<8&HrFuv_tvX)1NbH%Zm#C zz1LD|4)3eo{&U_Ly~kgkC{A?Su<;Fl^&>;y&-!ni%GK0o&3#sT`jOyjarcn>cUrHs z&RX5M@~~!F;-t0Nk5!L6mA$anU+Roe|4rYUHxAw`nm@3xP7;DOoXmbg_|5_Z|9D)b*KD0*YdIlZusz@p}-}|m4ocIk@oj!rkA@ss;ANEH4i}@#IN|$NIu~$N8(D1)Et+ z;y&myUuJ*c#@>vgelfVx@%V3!_WCzVPf^#*vT~%C7rD z;iZ6WMndz7#S4P<`WLz`Uz{fE7@(BI@hf6NGyB2|pao!80w2z5XS%0!U2ApRgk4jv zMRTqRZe-cmx>I}Yn(AxH4;8$&?yQ)#ap5c`shIVXDsE|rRPrdT_HMpscYyH+zmDNs z*F*OAXI9PC+|I7@>C^%Jz7NUUB9oh}DyO7fFEX8e>-Fs;?uR}tkI~=#Rreypl`z{i z{+ve`Ou9}zzZdaz*+oZ(Nncs7LLwwLRy?5Phs-rh85mS0&{`suh|z~r|azPrEd zTNrrr_r>&+^*pA_EoR+eKOz49$o3_oNAK~Ae`Wt{`ibdZSN)Tc1HElKf9v=g+g@d# z9yaf!PC~D2x8tvx)1o08l*0FzKAC1MwR%gXa(uYTCPstUzrFQH$&r&}lbWPZlbNkW1j~!R|-2E%?v+eiij5X`K#c$~( zv~SBlcEDQpVeRZ#*J~3ec+S>(5O(YRnSByki^SfTh>H}my*i5&pc~%Q{)_k9LQOu+Fo6D)^EHeuAZY;YvWxLSa#C2V=;#aD6 zmuzhJ@qEdVRx9CZl$xr=J?%^|TlTBa<4Yrw`t}BKOl*;B2hCk_IK@YIFL~%Wsq|iE ztn%fMl4}>b#3r3P(HF>*EakD&=%QOfz_irUybL>5sKlEsj$HVotfNHk<>b#xQ~Z+J zziYJRwXJ{qNHk*$oBuoI*1dao#?>$5-aTng`Ua{043kbS3$G3H3(%kSOlXVr!rAVB zR+pvzXV~?sa`*d>CaVO#l*oT!Rc#MoHIR%++4xX)aj?k7omW2n^Kf9+I=BDqzL{$l zsx4lAc=^1S39pSauO15dC=zm|nBn}RBT4;Fd)!i29M!vjKeh3GLjE7-nClsp8!A== zAN;AXBdYf8!Z$lVn%?wW@Z$TSnwXp=zgBJf&yaDmoAHINqR+LN>v^{v?9KlDN%rfy z=Q<1ASA3cGRQa=TsEXR=RdT68;s6(=BCn$+CX7eW`DsnccnO@ToL(%_Fme z_y6vB?yUU5TZGNh=tQBEK+!j$btg1Exq}%tm^tJuJF2JAI^*=BIPJvBDVxeC&GE4+ zktvDU*LX`sR^H2XhT#`kja^^oit@yqni06|(__j0ya26za$@0d zzFNz5HBC&EC5<61QpI7(of4*F^E}QN^lOCN{4KMYCHPj@{E0p~X-|#9<5nom4m-1P zVcBM*dz}kbd8STYVDX>fO7zPYPww63yHU|`HfW|U@AJ!oxn60UOCQS%WN_zOW#0c5 z9b~$8%6ieZUy}Flne6)dr0CSMw(a{nlP5B0=HGK!{qvsnnisRyPcePCBQSB}#Ff>z z&S@>2%d>3ZqODSgC(ZU{%*2%-i;bphv|+R63R}@OZd)vCDU}d(#f6k z)Qmm-zOKG^)&7&jp61utF9O~iYFew=n?3K^mPY3pJZrt**U9~K+ajZ~<(tnp--lIU zt~_)0bIjLMJ;}1}$d>AaPkzcf&8@F|7Jk^wxlDTh)bjThh1(w-KX63<`q7&oY8G`E z9h)-mheU_h*W!trH!RP#_Hh)>xt>39>+LXM?)(J4bq|j-b~ec}U+4Nc-GwVBn)BV= z--lOUaLQlD9$v*SoFee?xz6+Hb_QNduNey~F0eO$IwR#$sk7^O@Mn{g_qqR0 zi+QwcTltS?L8p#>seQU?%9iAw_ZrO3+oa-z{xcX&V>oy=iMu!H=vk#SC)1tVykZ~f z-MGzieP3fSkGYKUDYc17+n3&Wt#f#}<{V9v9=+K!ZMpfZWVFsb_jsXG5_rAnWnokF zMZXqzhXajFEF3}$K#NAL!WX{EU!AgK|I|Yp%rzT%BbVHtP|7p$2}g;=%ofF4vnK1! znOzwD=E>8f#cAKgW8O=@d6pGwaE;UOZ1uruLRwqayg8(_^w7HLiLV9S9{t^2G1EIT zH#hU*e}A8(iP4WBHc;>6-i%!?x2GPso2XI%ht^!ST~P=|}7vct1$X<@`1_nz(EI zH|Dz>tto9qJ#MCZIUm1JOS2T(@bKT0whP;Gv-Z7zcqH+g z*rBN(_E(q(E!2Ip{gm3bM?9<(W!n0)gMT|Q$BoWqUgSvfVH0Fwf82b5HN}a>=rWNr#>P2JC&O?QucJE{18{SF>I384hfB z5Zk?#Il-X8ZfmP+LbjICV+rebXBIR)Y~So`^Ll0&d&#=Jx{LSCUD~s^?SsP``JV>m zcI|urGYIFlau=sAxo)xQ&+D+DkMpk-i!5N&6??uvbJ6Ah42}%$Z|p8StCHTkw8OUL zBhz=!B<|4PK3lJ4ZWFkAXqLO@tWz3`h0`p~yN5d%-Ox?7X!Max@)eF*>ypp4t67WZ z^y3!M3k#0%b=$l1yT+7Gf2sL0Z^xN~FMZAi9&En&ibbJ`iA6xcp;0Sj-BbxBZ(q;V z?WHT$Zg`^;v~Q!$*=GsPk3?B(9G{(UijG)xuS0$LWy1#3Y)RV(&s3Z5E`L<`HhMZs zDf4gNP`Mvdt{e|r@y9L8ukd>D8Sm>_TXa{?T(E3m`>w3-xif9#a;y)Xt6J~&JbB-Z zk{x?jRIq(nKkK;f#~BQ3Qy#8qymU6K_gc@6rOz2enyYfo&B`s7`(<>~H7LtuY2M@x zW4&|d<4RWj`PO&imD{qp*Oq<~*sGh|^ul_Y+DWbn+e-g4Ou9W`?xEd_9)4Q$`H`VT zYGLr_Hg&b**Y<^{fAT(D6WOBkL-j4w>j1r<@f|U4jfXaz&pEx5Kda%FU22^F zwvYWD_w|~|ADyZ;?mgc5ma}JHAdBC-*jK{I4y6ws=LB*#wKs&8x$TJic!znqUdE@0 z9g7{pL^9WZp1Hz4cG*A8cel%Vzo{jzSnRp+tk*}QV^e-kj^mIQpOvbY@jm*E*DT$f z0~XoGK2%O?iYUnbx78$v!R_YesI}kkEn|_WUi;wD7wtV;Bf9++WV7eqU@s0%Puu=h zcUi!)`TB?>M%LHO6`-DDvwYk^UT7|V$mZWd)$L1KKcBTcG$Fo zDXH&~ubQ#t97*?xd@;7FyqKhCGuLJHC>>c6u~*FffOwj*Q^_2`)X- z)BbwLF(2aNyYxd=ZE_6DyRM!c?nXam=$v2go^8?JSlO5uGsWtN^%FxQZ!gmVA05sJ zQ)dXj_gTJ8#mj@GWGh-;Cm6i>EW7zu)It+)Q7R^t%^PeH@QgfogYRzAN1bJq> zk5;V?e%ljrLi#1YmBWwq3G=^9XDCXqShV;2k#%9$7ADp?rJmEAs(Q6LyhZHQW~nMZ z&2lE8GtL`tAF}w*FxeoB>+Z=f*C%Oq-n?Spno(`1Hs#Wlyeq4p%lvR|pX}>X_=bP_ zjIHxdiPkoTo7{R6mUUfv|D@es3b$k~7|Gp|yYk9OZ2MlfyIX%KTTLr^wPpSm+l4%v zi)HffDX^OKH1E9oY7d7a>!Q2W{gx{t9t2pIuidVFjDyiZM)IDVw4Al~Hsi7fdd+hc zV*NL31bmP0nAjfr_w<5q9DW-zZe-72ndcL?q9{`Qdh*ZN4;U+69pB3JZR)3I4c8@2 z=lu36c^$SX=H0~q49;g_dqVP`?cX_PHFrtbd!zbyI&u{=6@FJJPd>nr!+lpfQMzSw z!FwLD^R8DHD4Y#;brbAkC{ONC(BTSY*7JGBIeEG6Vtq!*3==nR2d`-p{~E56@lw3v zxnsd`y@k?CGN+zeR_OYohu8agR{XLfD;!N;C^T^>C^&$&5e4m%uwp)RD|c7W+($MO zyYJLyTrE7YJ7CG#q75&f89KUKA2xrvF+rYJ?gDG)-Y3(}*4$J**zFoGe80nRqki?i z+gncis_v-s^LVbiaq8ZTcWr(dw(k6KfjPWY2Ui8IJ8EQdojJKgw1(l{7WJp%(HSRdt~Avw z^S`x>Nq>X6--%mNug+_o_Wmv}XnbSlrI|G=--$&nXmd^%)Stj1~&hPJKd6;EvukrO3Pu$KgmfW%D&^)g6$Mwds4=<*z zk+-y&c=v+hs?Z$Sqwz72P>aZOLUH>zbY+Nf~+<#};j(rL1zF&`# z`2J_|o@q_n=N^=*UGTi#Ioq@P>XMZcxqVISoImO=yS(o0;dAS^C}>1~=lhcW$i%U| z+TnZX&)MFkiwk1nA4R2nK5rKl@k3c$dTw>=Ydg*`gY7b(-S*w+w#nPRdh3GRwN?IU zJ+}hquW>(a&hdH0x9$_WPyc7A^Z0Wur}2l;gs(c?H9Th+-^{9rl6Mt7dHBfYJ+7j0 z*52on)zl<59$9)#Z*xY^-C1#OTq@=+`<*WA_K1tS-$1(O^2O$xx}`m*rdm4gO?z`= z$7=(RO@?Yg3j{dYgi2g|44!Fyy?a^o@VtJ(q%+Hxp9){yBVqLDna-D>g`4IsRS#51 zh!6YfE#e!X(8BJ>A|SK?ybTSsw}T^MW#Ftsn~oj~lX5vFv{HXVp=Or2S+n4)Elsm~ z7wWA`{j@mUBgf#MgxtGFQJ3<){kLdM%5Lmv*vcxq?*5hnUJlM*zQ^P(mHU%d{5iD2 zk-71C)w&!HPS&5hcOP4_V(J0Y+fsAC^}gm|$kX=MdbZr-#sc-c@#Dko%rV=FEDH3YnPa{v6tH(-JkYE=hL2y_}Mcmk}}!9 zohZWTLh#j`F>`rB-+;*)UE%%VE^R_4!uz{ty6d&~M2cJ9`n(4Rd^ zg?Al~^0#?uTmdGgwmYNxyzdrId?LYnh1cQ6&A&x^pWdmw_4nF$``?;;nWS z`%qW(cw@v}*Y!C^PXxL}?lV90ZAXu!-qO00KieuEwDFrbNp+T3)^7PRz02$DitfH^ zSL=*^%-~JxwOrA%`}@6YiKnx^spT=1RKs`{ohNgyvTbk{IdaXp z>PzaHFz!9;IM#AJU6Sc@ETF|!IN*?h+LatvzatEn1iB3$EekyCAJo^W^^3!O)yvg< zWs5t5FLFFMX38QVXn5zkW+PJwUqj;sp{3Bo;=CeXx#q{r@{S*S+061ivprm;9!cF; z)3f?k`HcQe=gJ$VXIPgA28-TuIT>M=H=F0`{XJP#$%(gZ=SiHLy=i%Q@wrR8)q6u% z?f7do@vNca>hJcq&+a)t_dss9{Z7C9s9S59H_rNeOIq#JjXcZ0^DZ!WZ&O~euD^W7 zgQ9C;&%Vz)z3bb~MNhQ~H=lnN5ZvtkK<)Ro>9g9LYufew?m1-{PQCZ=s-`_MW;#=8fw&_B|2HQ|?~=(C%2S)4!F@0@u>cgq{C&a(UoHgHLsTm#OXT z?@!OIQ8W(AkX>6F-nK}gC3K5D)4qpB`}%d+YWR}Bhb4M{$bY7IX2BlbmG5qRZ#jK$ zYtzr%pzb&a#q z*pv>gIpqg018w-alqZSKi0AyP$s65eLpcA^8SwMH0k>Sjl9j6O-E{A`m8boeWUbl8-{MJM1)_(CTeKtn?*}79FwW4-HTZ5na%%$h@ zZ`zrqye$r1oVuWO)unL8?t>-y+QFMG4>v!L?0L0)!sX&U8(%ZDh`Z#(2fTFk%FJo= z-+tsB089N*)*;NtEe z{dc_Fk*lV*+Jyf0y_$GH#F}f5?b6=$dcED>0={=K*eht*vHxzLJY$Cczr-fDx!w(` z`?#OwYU*t(_$U3dglcixjGvw?@mQ-#uuy z>XVSBi`a(+pUa6K?QHFpM^8h^4=^)hB`d}}OXvQo-d??ap@msc`}#yZ)Dn*w*o-%{1NyUzOG zg8vK+whLvg_qp*W_a#1BBNchoG9qiT*3-ssfuF0THaxte`N`r!-wW$qf^Yaz*IKV| zJ7gN%V4&`rrrE){QN!D0nli6?GlQ1yuBi3PbRJ2cS+0{2dM0w#M!jnZtvnp-J#?pS zl#c2V{Ly9QRm;dy5F69oUhaM>alg~$#qrC6HZNOdmi%Ic04VxdRtPPHv`UtGy%K1P zteB}Rb$W(Q!Xv#IC6-kQ+jJEscyngDE{f4umT^sQad_m6O77_we`purV5;$`N=fIh2dn^tVpjq%a+A=v*zUe_Wh~Yd{fiL%x%lO()st_#Yk^hd3X0` zi;d3?Pya4=LH4|8$2V@kZD{|6547#`C`P_frXnF8=$^aAt{CbKRVKGQD3r zFR$sm`0whx>Sgln`G=_t__N+JmeA8F-Fx zUi{{@|H{6F=VsfVWZABN=HT`Q-Om!2Hht_ob;Z=@P@L(kLuRImT<^7S&s3fFgX6u8fw--E%WiITn=AKn_(I)X;WO~d&&uK3DmQ%i)Pv1M?p#S*}<)ru@r+Q-pYGM?0 z?|D{8ois4Fdhtyud{Qchw#L7R)ickz?)~z|srsC==|__TW)*VwHx)z7wZu2>pXq(* z`qDXp?02S2Nna>?aBcp4!!vg>>W;az`k*_T+zy<+cfT(p zhT)A?{HDK8A8co}zW&+rqlx4xuRV4gz0#g5cq%W{J~Mr2Cgp$s%HfAm)vCYw+fsv; zWlsDfv3aV%tt0j9SF%$APwc7r!xsM2`B1dNV?(CfSu+DJCGUx>EqJ>1t;vtxD;l~- z!n^-i^e}R~T%>+zg82o7JDTwfs{Y=ObS8Cn+pT{ecu;6#_0#y$eM*NNJx_JdGgUpi zMZ7mDG?(-I#n2^EJ-3Tm}9CF8LLE%Byqwzo8SIvo@ZX1T007My&>V_AxKQg_nR zpuMRf$CQn(F}V4zNMO6P!G>e6<)O}nk}G1{yzi+hwVIkr0d>$A8dE5112IG;08Uqbf1Zi%@t zMf5u>M{k(P?mJHZ)OdXFdOf#~xFx&Eb0_z@V{9DF>D$lN?pyRRx&LX8euc)$r|YNt z{B|@_S#bGZ&BU3Z*_tOO)u}!_lH7az$sX4>$t|1rC2H8+U9jvycyQJGuy5Ug)64GN z_}#7R*80OM|A~BH)~)GtOCC?=?@XK;zHoYDetPA&zr>;5H*0Ly^SN&e_>y&lYJ^L0NUnN<4e`Ukg{x0*!;{O!YS8a*hI_r$( z)`f}p#QUUc3>~sgZ+J%fAy)_rE+~@wgF=?^byl4F4OpDA8uj4hp z_slVG-CJGxXR0a|J@a0tep5|2{GUO6`5xXEg*We+WWUNfxnkO_20Pmab2&BD+wEs| zdba*+;eM#8AKbx_xlr@n@0~MwY}tLaE<6`JdPe5C+wVumZ%)yap z@!Kt9WAz=I+42Hf5{DNxmfqc}#>TPjwEM&^u?y>N*R~$mryccqY3+Q0`&{<#4MaW` z7i8#6UHx;KZ3w$d+TKrI+#cSmMW35_em-8!?fX;VNAA*}X)PBE-zsui3OVlTzx8XH z%Z3j-3k37jk0r0#nti5JN@)kL{7%nfmSrE02=1RT{hO7tNw&G>krl2|@*QW+F6`cv zexSbP4x~zAIUkscIkj`)!W!E%so~kz|#8tY!9KNBzMi zK~vSD9Zt8m9`ECekXozf@^Igzp5;QZYb>UgtUKc(uHm$4Qr5Hd_d01T)1ud`>?qdS z&2WS-VfSf?BdIP9scjQ1dN&30trDJN%(0gxP_Sy3)0h0qi?7vx;9KvxxjBcC@sK9t zif6rd?i*)!zvV3!6_uG7#aTLZwfEMwm5!VDbnDefN+1mz=S)A#`f={zn3BY>Mk*H{0yX+g`l9X49P1{j6EX ze@{5zYxQFH;@dMfn4Atf)3~nx>kK~$16AIqr%jJ4gq@wEu{7>kD0`8yaZvA-%%;fh zLam5fTVs7qAQqGPAuNEron7h+iFGjWJ zu!!ImS?z^wT#FNYyr=Vi(QMllaA;-G!&g@G50t2$o^D~4U8K6rw9VkOEbER*2`2)T z^)n;REBwrzvSQ<^jfGxoq-XB_=J@Tl+3&i8x^4d%{tD*Se&o@ZnfdTP!_C=GY}A{> z@9l9b-m~TQIWETD`9_3dt|- zCBKz^qqp+m^)1YsMT|tQncMq%xh-6{u>Ms2GWJeB&M4a%HjXK+e7E@%Y9`Dr4S%Rn zzQi|A?zV^d$G zmy|^2mwjhUoqDtn-rmT@ExVp=Wf0$k-&1#l>$EJ}Ym>~#-x zG}|b_HGOHpU&XH93yio8c14^`un0U>v+>U4eE&W6dPx(N@5*&0YfSod_*8^q)IpOp z+aw#GNpF=NO=e)>eK%o9&MQJBkb;!CfTyX z=;`UN@`sC_?$XuMJz%tU@r)HOHdF}j=u9cRXPGURmay=x;WI~LKc@SgDNO4o{b%?j z_3Vtv{Om@yo(udnPLE}`*dM4lls9+r>YcnN^0l|TS@f?nyZ4~NekVqDsq3%5U8#1R zb@0AdjnI2xjqmsCvb1g%X|1=aFFIs>_VO&|e@D0#ds$>x+_-!wsK$-6uTU>!F(K+NNX@k`$KGlV1~ZthI6sJBQjn{ku# z!%MEhgqLT_*FB!UPwB+s?5sO)TZ@+@?dsm%R^vJ^D>ifE%P!74@iQ4ugqc{byU01A z_Ip=yUi%?K@5%Zc2iF@-cNglE%sgeLV^B9~?@q^?!c9BU9)B)u*nZn6Gj!oS-lASn zs|seucW2VL`)1zQ6ZKsD9-CaoD(wf~W>3!dTYs8E-e7*IR=Ccx=7ZAykMtE9vKZee z>@U13m8)p9NX+C|qJ=5*Uj8a;@68MbZc(kNL5CyedKib?+29&`bdlOUec}0xrUgvB zSKO5hPxUsYzOXoQyLAd*>g6Ri7g8g0&ukW7G-Km!lf#AAiXBvwj${c=KYiv>=R(8H zL982}vFrdHwx|a>Q4DlO-oEay8C9B`tS=3YNGzP`#YDB{`_sqtZB<$xh~pQ z=#=!kjaRsQmZ`!|9$)X`8DF;E3MqKadpU64Z~J8|>IaG&50p2)X5G9$@QpoxhILul z{>^_J7@}k6%{?6XvA}iJDU*rz_dZ0i-FJ)Kb~nhlWV=Pe)9*VX70XM5merh=IrHX} z<{Amv@GaY-Z8j%G ztXuXi^|}g=`fe5x^RN$#k4?R2-E?7XY%f#IIbQ3{7H_#f2P?dBn;_rPb}f0?_1V+2 zgD0h|Tz2hFoo7R~h~hiG>18&xe2bYDFY4~Cd27)X9bxPFp6RMyuGF*6>}g@U*5dyT!{XjQ%RRnQacM?7%1~z_KXmgseW`|YJ-GYN1j=gsDMKA3Lbu= z2|`a#zY3limuflnS@2BXUE1209Is4DGjfM9fu~} zILZ7X>RH_fmxb>xX#MqW(B?Y#_o9fxvE~B_2_ciY;+wyIHhH(Hu5re5>x57lmJ7Yb z9J3biA1jz85_!6+PT{50ZwYY&i-fs_dvr2SYlj=1QE{E>{^j_gv$w-jDvJ8I98A&M z&i}_%Jg3fg|BR+J@s)L_Q`_BU^+wfSe#`sI{)@AVmA2*5!2P?tIdrl&N`FyYT)F*R z>Wp<87T*{AVgF=C?5|G_2Tq;8`utbt$%Qfh8S;{t&J+cAJ+8a;nMp!*)qzjR{_~PH zXz??BWLV$sFVOXwMUsy-YmYqt5!Pr+@B4Pog%<1yu(0>oQd=_Js!}QIvxe%s=Js_r zxNqAjKexEJ_s*mZeiG+jnFRAnA6;|Rdg1I{&sJB~t}?7yUi#c{`p@VP%lbosQG9}Y zmD8sROR208U9)4ii`)0K9jdEOC#%+WTu!jMS~DZk=*=mkgImwWyXl!G{akssIwWgW z`OLG~J+VkB$DUx>3UWYKC1^pvmhNft|3G1YQrcI;B7 zwIy?Qi)5XecDJuCGCHYX@oCeUmL|^)d|B5sMf`GWU3qHZ$7&g0egERtM~_*pk(RVco_vxAvKa z_a;8LxpwJm_sv^48lE3?t2YRWnz1(P)u(5HVvhPs_oXytSglI5nSO6Ku z*z|pmO_1X;%})Zkl{e=UKJQ4{w0Yj$$D4YMO%60&EIPR5T>FV*MmlHZ{9i{L?+Mtx z;;8Gfs6|iboIO6}+=M(6(Ta7K?ly($a>lH>t@QiY$!p9pk2Y3jpV_)4t9Rjdet{Ej znXd3%U1_K@{b%l>%k!;SA}cPx^gijz`SwuiSEeWl#=V>PcMDj)U81pf`-+BZ%l*^p z9wx&1Z1zkTuP z3-b>SzJ|jKc6unUx#>31t2ISHV%}fN6?!+W31+)ZojI@LSn|#6C8kmt+x@(=*m^Ir z@BPm(nd29)K3n^ydmmPOyj@{&;clm6m(*gxh#cdp=j>lSWFW;T{I`ehZ ziJF$lztE-!xe|Xz4vYyM1fRB5kIy;*?P0AIctPkJj zd0W3^OFMG`=hwD5ciq-^SoCBbTUyB$_O+_DxcL!JCv#5o-$Ul1%`2U*JUX8Exz6~O zg_!l@y-%x;c+74)yzhMVXCCik#dfJj-kYSKI(}qLzRT%HZ7h*X=e@h9C>xZ0|7V3q zsc{&4&gw6!9L61y^DJxDxF)Y%SQ8M@;B@19`x~C}nG80&TE zjLIe@{?LiNv09UvwA&5*TH@x-RV|p|&NqGcf*1S?K$ZXL>CZsNMxXwy$0K3Tqjbew z(n<3EB8J{|i_R>(7p?Jd$%5yTPPiV7-ckEpYucH&mR?t%>^{}z!?u1N-=+KIhYK#p zynHSYwxBh1>$(qlqSLcant3PPjQf3L!QBIQ`}CTfi`3RFjyQaKe}&VLw?SK{8m-dm z?C>_dtBN@^adusUqv4n8`yPRajlz{UyTbIXq?Pgr-l^nJ8(g8Md3u~XN+l38{1 z*~~?^`hHKIclwT14*$-HVbi=;dl&r<`_^k;p^KWsk}76*>Ld%!ATGO zbC%z{GVh}Q=_|jR^lfAJ3CT>Hee6A3jfL6--vzhS?zA>IuC-$2Ib{%3rZ_`W$gF#P zxIWY3K3i$AupsvM6mzD|aJL6vR6(a^Z;IJH-S$`Jp6|2H*G=bZ4?R6&$1zpa!!zC) z@>b_W2j4Uh`{WZmL2u!QjRD+Kx^^@M&0sL~T^e+AO6>Mi?a$KRT-tp={>r7o8~+)? zP916vo!}U9hhb-BNAL8t;T8c{ zOy2*hIW^%zOo!|d{jHx(Z*^U&m}j_pi&yBnTg%h)FR$dD;~lu)nvOo~z~VWm$-Cd(;2;RZ5-)dm{(Gj?}^E&I@kF+}_{e`W*oiu-T&8!HNZw0(S*<=BFo@1Kb= z+dMnHV879VZ;sh4w`Uhso6LGDRa>}_d-@I2_ZjZ*&i^$0D3T@kyWcoMJ@j7jnu|$c zQ>`AzeVTFE+P~N5zR86P6-v5S9?WVweMc{Rwe`m*JFW^ZoZ%Aksq^L)%TH3qqK{Yo z-P+C)xAdFOm8GTy%@H#^wg&W+T@IPPRD0Ie#$?HQkB}W{*)IhRMGmis`nuOxW@o># zyEFfX`>W&q_A&_@ytrf|`r2r^=#+yC^|q+y^?e9YzMGgFr*imeW(iAuqEA>B_iD@d z2S&%Q%)R%-tg>G*!R|ii{F(2*-T%_ZG@Dnys_5Hv^@(}>++tpjR*pt-6Q^&QxwkWB>g>1Lv6;tG<@y-vZZNOlJ8!?k zFF9nJNLG^YtH$W-hq*7@Q268X#`>vjyH0b*M={UoYV$7{Mrh}!jvZLsGouHV%N9_Yk9zN79 zDm$^Wu5~7_2-nim#GC4jBD|UH+{cQgr){{dxUQ1zw?jgT$oZ_oH<@o`)@oGPF(7WR-r8e1jo~G^kI$b)Z@4y)+>(_T* ztmHE&`z75&_7+iF}U|5JL(uF0Eo-dq%0Z{u2`C;I(@i^bXA zpQaAcGPizgHJZ5j+TP{g4Vhkcd{Yd&zh~z}O|SE!n#U_&YH(zP*zeptn|Vn>Yh~}f z^s95ySC%PAt>Zm^^9x_%+%mFQ&_g{yYxsiPo%ie zS?Jl8**gyhtTsFB{?uR^cgZ*2XB@`_wE~aIuUzV+baP+*idjKZ=l?qXy65%B*tOLT zyxL~A*DTgK=W-QC{XU(3Z_4xyJ11H-${{UZYUfp3@lRH!p{ z`vuP2!jbO?I&8{_oqs0r_P2d+orxtlm`U$TEX&wYvW zM{_yvtV}v{km>i+_j=B&dgp~5uS@etQESV3SzX?t?$hs;zo63dmV8CPt@4xWW(#f> zP0df;RpY&8Qrp5qFTZMP#d^(o?LOm(z{4Z!F6XPCeK1Y^MEseH7gsU9x4-rwdbQC0 z&EZe~JrG~H-|B@+>#b+Cx2jzq{SD6MoLhWTM^EtG!e0*m%A>!XV*cIZ8~7mCW^3xq zcbxSHW*(R$|7H5?9d?KLmiY0wuPuDH+FX_^u`N#`<_njladghCs%I&C{H}Lbs8)N4 zv9W*HztY23_(w&xTi^z_L=@b zTj*}CNR%kUtqGgncb~}-&++=18-6Lg^*@7oQBjupv)8MPCQV;#zSii2bA-h$y>Djw zt{t9HSGRHbZcUaMzBNf1ii`8}4L3~)bi3VjtGaxe!i}J%ucv4IXq$FaEqw$95#&xN`6&<+BZtMHoKH3U6&6liqsm=>n_niA@Yt+&g>}CHM3R4Ov{A2w& zrK>vf(i{7NtDVRCSJpOM_2SprtsuSQ-;21$-R}KAjbwL!`kJ1fTyuNV8^!C+bNF{A zeps@nrOb}w(a%#gnV)TRE5F5YtgBp|b9-~}cOQe?leNcVo7^vooh*;PviJArk8K}f zrf)Wt^C~OPI6eeZ&xX(``&!MAz9j5s=RPP zt?VP_4Qy`{-h>s;eSG?A8*6Vho8p9qRm*PvD6?L|#1N6O>-XJ?sWKc)k1qe3DbcWY zQCdegud!@I%^iuW9M=tx7sVz|y*z9E%voIKPlH~sj*M`P)N!)jD*0rBa>)J8TG=-; zypQq@ba$<0+0IiY%C}D7_N6b8OALE`a+Wa1GI#9MI=67ovgFn+4hyrJ#IA5{&aAk# z&ZLhcs(jYTYwsc#=u|9HO}sSymBdrt4V>MUr+>sa#=2VVJEp2~`SzN%4s^fv~g$_`5>~^dvg8jyz9_O(>hLdREXrG0{ZtZLra#Z-K8TdrlVW+~sJQRLsq$ zawq#B>y;z7vJ}1bdBPrR-ktrV_Tpv>zRqm^D%X{Bk-kts1sIHPPdrR$^A zDdnV%`YO3-z{w^!XXFv z4IQG6#cw@*bJ=y(@9k%=E|ocl7E4it!PuiVONBxZRtYE^gq3bBCaFRS12{W~^UlB*%w*>!j3dSULq zUnhO`=|AJ=;Mric)Vw3fBJ1tk*OfCvrF83 zAFp6qcrjH0x7fQ*qx-l*>i=3-@zFJUR}(+Vgtq-sD%rxSwBRn+ z`dtULR>*~Z=94!&{dDSIv3<`{YP#Q5DsdD~`}$jepRMl8?*9yq-c5lipX<_{M1J?! z-kckK?`i1%n)6Gwjvv+7cQT{-q+Y_G6O%;*l36+hUe1xaIzxTCTV~mfNtJGs=5?5w zNY4qgiiu9Ay-lN6h^lXJXq_Fx{qmp)&#DLC)EwF+H(D>5vB>O1(Tu&5 zxl7`1dsXGlT)s))=*<&r3H>wWJ3r37yVc>F+KD`-_M}M9cE-08Ir7f0yytT6&oNf9 z7g4{j{|xM7=(f0G+qqiG@;*cLl(rjx6XZGHB(*5Mmgc|dBsuHW^5jN&o%DV zt8?o&3M4b~7ay~d`YhV9hjrEZ*Q^EUk#!2a{O9CZZmgNUOx7axtmuK%nta^`J~zX* z{|qbcRy*B#$ojS{JW^}9hV<_PTTO(H2Pgabtl)q4$)&C$2~i(DIOiy~mPmwF+pPYmJ)@&Mz2@y#trHe~nKA3XTHJ}=k<4@S zx=En<$(#8bnrF)H{$`(3xp0F>je~Kw=r4s?b$s`&g#I&l)gPFzqVnTX*qQQ#AM^gs zUz0lB-a39?=JzRoMfHBDa6g@`^!Q`TpKk%q_9kmvnM?K|K(c@veKoZBRQ0oa>JeTR|w$AjOyj{CzXWhaJQ%%0eEncX- z_Vg6n(9&CGL6Xz#jjkR(Jazhl;;?iUeSv5$$D)57n~rs9%-_*EeFyugrKNKp+rHP- z^f0k%zICdc`c7xi@KbkzH-CvygIa@L6f<>0*`(XAJ zPCxS>3xrH-K0R&gcM(Zx?R=~0b^H~pes3^;ceXGftZl`LPuu%DY;6+@-F93k&*Rt- z5Mp<^hH=S;skTqoevWTByJ68)#?!UeO!t_Gx=&tqPfJ*()c78L4f$ye;!cSXjRe<1?pX!A+Ucw}NFi8*IJj zwJs|+W9j-Cfr*JJ2V^G1KDxm5uI14g#k+d?DA(uv4S%`aHa3@bG&H# z&T6i#<5T5cyZ;Q^b^E*a8=m&w{VOg1%=#z(2M?vz9f~n4^LSf7VX|AI9f;r*lcD#K-B5g&Hk?FD`82=sL~3uJw}GH7&k1Q{T#Wt_qm6N-xeeWmj3Mxs0t$ zt>}!Zh_kk_K8JbE>1>xRX4z-@B_`lYU;7HHD;y603?Dn)cA8#$=U|}ds$nKhqQyZ#D(Cvxy6>w+`K*i&fl$OK~3MY6)Q8Rt$2GZ!r71c&NKO9<9H#JzzKF2Z|M1uNe z)FtqVdsn_MT9CEHH^EvnJMH9_eGXTCuV}v*?QF<8)1-gKTv?8+YGFB5XXex-v$pT* z+Pu}1?j~j*S=6vrZRu`yp&RN6xth0bh9}jY*}TF2k;ayqQ&(^0Ju(drdnSHMt$)kR z*=KtT^81fm*vE2P#C50bX5&LYFMjZHjBT3SJ4d49@@J{dyH-YB__W~{&(W*%Qfq3& ziod%>UAuI-a)QxU{>+tI88#iM>+9WC{7Q0Gc+Pg2yaRtYyw4x}%+K&Xs`@oo{S3Xd zKWD6>ybhnqoMHCih~|ugvs<*hHe50(kqr9Xs_z`}YN>#hjF6MLR`QvnMvCQ2q8g3b177J>oGVL-<~wp_$JVN?7vD-1 z`;`9`j&V82bTR4D&1aQ4jrB9uEQ)&1y65a^sa4V!7I^)hWpU|8e43hR+&9a`I&5!? zeLpVaIB%r4{ZvLmVqtjm3B&hG&XvEpbyQrBasDyU;`e5+z02PIOXY2eoOvQ{{gv#T z&eP$cmk;W?_H`bV77gc_eXKd`N^bN9-L^N*(Z**MDrK(Gd{Z%lX~WWxkI#4%c5mA{ z)8vHP=0{Siyre@kg2e7Pr=@Ie>=8Rtv10Ky-SruVyp`UGDsGgUxiW3ltEF}M5!dXV zD#y63{@r!y(~g-8Y%f+$b(Nhe5Y+U<2*)?$K2rdD{!{+m)W3JajSeb(G4ss-z$2!RQTS=*!43Zz zYL4=2aWQr%vzQl}&3w$)<0^4_eEb#zet@G>X>sZ>5*Lb@^vR)xVm%v z%3jM7;n1dg1?U^*t@y6eLMarMf8)g!@M(fX(_*EZ-4ap$t(jKgWpG{sO@n!a=3O+ zPI;@=gXO<3^cX)$`eQO{bLD<3FZbG;Grsi9c4gH2Ra-o9Qs9*0hbMJ3WsWZQOf>ise(9HhU1NY%2*2}% zMkaw~_63KpIPvV*czSWDKEpAmr+Rf&k9ZDL$-loRxGZjK-T8N+=8JzDM2hBacoX+I zZu7a6{|uXBtvzp_$Yidtx%agxV42>6+P=H%!Xuct^4UbsrwLD78+S%zzo|h8n~04n zo2}sPSL@WGofw1fi~KmVa^n{6H_^vb_r3~<-Fe}?+$Fa5!`s%JI@NU0_q*{&gJ7Oq zw!FKxpS5RBxwr4ukH%9?N4eMExuYDg_@!QoPipMaKb>{XTfz%DTXL3rG;to;wC-Wx z({!_th^h(|^DchMzT5$n&K?Ow9%7mwPM z%#G<+wzi8TYu8TM&@g|m%ALvE(vDUyviQ+t|MowFaQ}V(JA6k!w;ibAygScO^cwfp zpRp3N|4j71Z{%q1E1y=qM90oPWeH!4jqZ|z-Y263 z=%|Z5D`L5LbeF;hxhlqPzodz_LV*lY*Z!V=6=nBvi`dJxd5SsrLN_HnoKyDkQr3); ztVp9B)0Ev8E_!<6Fl(D4-@F#hc&8gnPfz*fS>?>WGL|J|Wzb%JuO<#z_Eit=$fX|B zx8GEThQ`{EUAb%Dnri1y z`*0z|CuXO}(i_ixa-4M267&|-Bv;&9R~Ynlx4qO`-Vkl&2l7W08@92>9g$5BxmA0k zBk5glji6xIy%QlT9~PCD&rs%hcjw664ZELh6pz%?=Jhyqx269TPsfopF-Lg|*Q^xZ za!`76hxIXSi&$1RmdFba8te2+u53Rs{h7pPnS~!2MD9#^p#G=vK#tRb4UdZtIc3{6 z{!5!w=YJ`DVf{JvKT5&N_i${z{N7ShpZix+-Rio9XY7i%{`5QjlsDk}`ZJ6P)y*a* zu`}2HIq9rc{e|VusaC6kPuC<&_e`wu+xOafvS8NfJ5Ngdo*dxru+ZkXRZ*&TcI||} zJa^^W?(eA8PdYzujoG@xnzN4E9JuwCb$VxJlDeSp)ZmSGpJiy?V=y^1S1GdR@q#Cb zvnr=dJ;oO0oGR_z6LKb~XHjrRqVY_{j$hs9-8yT%eld4#y3oX7HI;eM03gL# ztxvx#H+!tzcRxeYc!NDtknO?5AE(WWG(F0uyjt&g@L9qF$wkfC*-^K`suHVB&)Khd zk@Gl$dDSw8b(b^mJhU{cQ>=WxzWW8+f$#e(EN5>wd^S5gGt{BrxAex%+F5D4ub7A5 zIFS5Nei`XZ&Wu%L`J8GcIOWtlss#>3d<&)9r#e z4#rsyB~e|u7fiNDINudh%JQ~$d)>+Y)LiiH{MT)q{U57;D?Z*N@wc=6R^r_9zdpj5 z{~5NYKT}k=sroi|%ep_`s;9Djy7YJc)%Q|AGvb5=RtWB#kz^s`m;Rq&wTEB*hc)f{ zTqJg_yCceYIcdGmrliHznkGq^%x;%TOHUq=ebo+L)u(KYvw4flqs>I${yA$|_W0M#iO&}KUolrOG+Wr8mf`Zd@40U~)~3`R>%WQ_rcM-YgXRWBb8{ti00tIiJr~ zc1@1_wbsD9d2!U$@0Tp6&X#nYcKyj|wsuF!%qa_m?+eOE9k08L?d*M{upQ(INgvjfZ8XTx)%r7P`9IS846p(4CLMEctGB$30CsU~aEI zBlD(F>{MgjnNOC9=*_)wyC&`N!)dQlfL{|uLZd!1@tyyExSgg3X^Z(00j zsLJf06xZK0vnN$)J5QtgmLuzr*gfJe75%zI)wweI*Hpf*o8KFFFZd*3_-OmH2&od2 z#F)dp%5LEoEQ}s~?QB_6#UEPYq1Rw#sNNzXAh)gT%cMS~l30$CU9N#LhiiG_;=QKw zb#v@kcyTIUb7U#|0V=ppA{;iz|S{w|n2(fOxi z_A~8QH4iWSXPBGHxcZKK3Wr?O;_1&NE{D8Z#5+IbuaDD~dr$vx^P1|!9n{{wdwzv} z#0j%+Z$C?YV7vdt=8$b!^R&Qyf}#HzPC9bk)jz~yXu37nRR442`gK3<HrOKke8 zpZ9UKhNAh(SX-~1-10>!M`aJCu)e8O65o{bHBIErJ*WQ+0s@SecWT@)YkH8k^{VZ% zP04}hf<3ajzAZbHAw03Wr}R(acay@$`JD&$1uhS%Y|8k~7Ia~sr0=~m=Xu0Ci;fjE z1-0{~zcT!~WY6*+cD}XiQkZyMPQK+^(`s?e^0HpsW5tE`t-p;$<8|iu&VPC;NLu}V zXWxmdDYXl%EWZC|2-?%k#wI#p`^D+3ZIjXyB+Y7fV zcK4H)Jq}m0m&h)&SP{4R!tskP?ye4vU8f^>{FDxU`KEZ=Ch?|CdX{+9u6Z-PrfcLI z-LqH_a<)YDg14%wLuX&3o|2;G)GLM@rx%1A(q3F}=hTYW=xvHo%DwmZZ94b%jKe1W z(%*CU%(Cm6RhO*#zVVH}O}EkAcQel4Qcd6HnNa8cO7q0Lt44wA^qyW$&}R!{I%Qb4 zd%`u*-TlkOSNCjmZ5Gqp`@lR*+w0*LUtxEXvpd&zSjb9Cg?~4?J6U$_qxl^7J3>nI z4|uag)iAHt)ihC`|It+PV$trhnG*$eq$T}0o*rQu8l}w3U9@v+I9I;bL8}{=w+JWL zeyP}5%%G;#{dUj7#52cIU$Jj-c=)i>Yr0IFN5b8iQECV8yg4mlyFJ5OU0r?t`z0Cm zuNOV*d7o^SueGm3%6sX;$Ij0bD(%0&_&sM%-trSO(o$xhjG7@hU0Xq{_qSP7eC78~ z|GrFDacf-sLruPL+vnr{8amxGHmix8OmQ#bNVR1&IjphA=i5}Kmc(hNOkXBm(TQ;M z_DcQHRHCq>dHOs7^*k28h6Acr*+-TrE%lmuWzuF72PG+DhQYKTHB)S~FT2CyR#nr#!aQ@2G=S%IB;;v7(+ZoWdC}wA~h~AaHY~9BmS*BZO z&J^Caa#P+zA?v-DU-91$arhm2I>7Da{BKtLBGa;hw;l=ml$l<~svF;{#=x_lp+tPf z#*e(~_46}yS8WNZsH}F|<2kGJ$1GFkO?CIg^M&5B>EBJOWm@~ddwSnvQP~OmEIYO> zwo$xbDqiDsSeL!GzED0?@jpXl&%9*Wb?Mh`)vqZzlzq0y;JVg~*gWy@^+(SheRqj( zWB1?bQj;d;ouBvF)G;(tsbNuO{0jDmJ~baswf#8f|1LJ-p7or`=9a5ps{UQR>-|T= zUNPId&*$XpsnndxvrmhBX2V_A(E|FP)1If<_#D-;a@RA=tA0{#bK0j_>+#)R z#m`db{dPN}wD`G=`;N29B|#C>dz&Xs72sTRT`MiiQdU&;w9BS52d60+O`UnF&&uts za-rc%?ot-py)2hIJvbvh16S69c5v-F?(}eZK=a(qnG8OeoMOriK_Zf!NAjAR)L45N zITA7&HFkt36&PA&9eE;j?!42n;M|R}T00a2MXs!vA-haA)_T*Fu+S{~WO;p|D^YvC zU9H)Deo@EoSq8ElOGOvXFIrr?FZ?uTR@ge>M{zvvVLKO#7q}QiM)ODtnf|-s9wAWH za4zdZu`Ih&?-`9(mWv(v@(-;tbxvRJ_Fm}i>uwL1EW3mE(vGiHV04ee(}CiZ*CFTa9l~;v$gkg zd}o(u$F%WQ$HH zfBW7{Aj>>UlK2Dm%yvw5W^JQ88J^GA+<{4tWq=cQoiXr#ulYKvP>L@e2jK2 zFy_=OEYxbQTK3VL=Zp75%|ijx+LeOlPFSECvPjFzq|4y!k0E#EpMl55a6)X& z7TINq{|w&?Zw$H^Y{ST*>3z}uGF!r8kK{i+g3~fjzS-__taX*`^-uxJm#^&u4vBM@ zGxg@Jdu=U{Ex;MBd)7r>-ZU(`^^&^iOx`cblB!d-nb)jIl#r8s)SacbpXKPaouBg! zu1TD}d(FzJTkzD&l%G=>m)aLSDh+tg_V`3EBdh<$-)Uw^FDm~t+(=N~l)I_!L}CX! z|Ihyn{l*Nl_!d69-w_-fEwawV?&+e8Ge=h*jF11R_nEPxZT5b1fj7OAb!Gj&-U_>; ze)+9d8gq!WoA+|}iEoX#1HQa{-o}&qc~h~m)a*G2PDWjv_4NgF#p#7<*{m|I))8HY z`=sj9lpjp_&+u$>><5Ww($BI?R7CmdDk;QTll0<#M;Z&X*Q#zJ8KV^-GBR z8O|j^kM5W&l}&I9_MRD8!ccB7>(uHa+LF$lO5Kj>B5| zhjL;p-@#R7cKilg{JQIPmj)f@n|{2~HD>p}#CR8pq?uWZ_ul?JHNd($_jl5Bx#Qd3 zh$-||{%1Jxme+5O{7=bMZyz+=Ik4{N=8*RGzh|^fFZ^0@AieR~nFDri%o$r9R#Mb$&R@uSG{iILI z-Fnh`*(HyUnX>JBo|(Pz@XlMNw*B45A6=H)<>d4!{dYrK1n19Bt|#tq_|I@;x>iSf@DY8yrcM<+yt(DTMc=+sS@ARd=Cd9M-Ht z_2t7l4rf++HCISZ4eUDDruul%3&tt#3->i~hU$x6oUEC*bmN2EJ-NOGkBrlIGHj_n zdv{yw%r#bzGa?p8@=2}@mVFv|*1=pTXW`wLx4N1+8ho62Yl?4$PLtMgY(BWA^f?oO~y(wA=w5I)6yq1o_;lS#s<9n;iLJ$9^ZdUmA3 zsVaN#v9`q0wVa`{zP^bOjJao1GcIQb7_Pl`Gf8K5*^0(ACA0dXuCVu8^g4of8<`}0 zY~9`d>mz&PBU^t)?t+gUKFoVv8`cX?nZ2y_^o_@r*^d~KniN~B*UMe{5|E;Mqr5V; z@6qMb_W~heyr-t9v>$fd7##iaKZD5>w|0Z)f3)~aeyO>~e@jz&dcHP+yD#zSOtnny z&6D(2X2oCss(0klgWXeS23BqOwoUCw@Lm2(dmorrO_~+Czt>(sjknQ9ewikxzU@}z}fpNl@9 zluXXJ+B$JosOyE7x~Ig-yrb8McP`$ObNb~yRqwb7OSo^Dv>J76IV)~ltkFH=8N-1X zm52vlOqI@TExDJuv*%OyD)(h8E9UHC35wKsAz<0!wJPk#)}D1?CP%!FrQb`x?aa*V ze#tx^$Y{^g5w-*8#gHGwXv6% zDLS5GxY6s}wPoL@Ri93`YGu}$?OYtQmdzHMx$=BOnZhlG z0QnhtC-bCtJXynahJk1G*IOZrzBY6uwe{(9Z?a@r;aPUX_t7@NGt(t~B?P||a|hO? z{+Z9#p?E8Dzp>JGtCj2DPuo6a%X9t|o=;8dL$9VKo-C7+amxxw_pV<#h2uf3+lJkz z|M)Dr_oKljv9O>+oBzkOJs@K{%0`sJ-6QeTio?4 z``cvqA3gtF;_6J9$ve*%KMK(@d4J&Z?N_O>9{ZdMtD%_um0KTl@w`tO$>DdoSh zStP@LIt=gPe?M$2LeC%4B5k5%fELM(g$Ti+0intL__D z#y+)JaOs1~mxqX}t+c_`kZEE7$LnmjvQtxI-+O_oJ&f>5KJO49G%&;sD{4Hi& z$TL0b{u#rj??=O8Z>{?>b!+P3iW_ZeYjn*SKX}V1ZVO#mP|&Y$C{oxMn_bx`5Lw!7 zUXgT=yYK#Q{wvX?h6?vj^Q>3MH+=Rw#)o6!dc&!EpY6%imM-7Hb>&LUnbT_?g_Jq3 z_|ecUe#T+_Os8$pL0SP@bY4g&MgLanS-`O2YUhEKQ-V|0ENBp5o2s+RknOpKcY}0v zq2R*h0(UZWi-R?mn`%{D*zxq%d+#O24r}!IxBdN~V|wv-$Lq_yA34@`?M_>jCD`7X zuuFDZ`Se>{eixSniJ#d1UVzW1_ju(RcfXri?sYcT#EVR#dGcm)w(ecZ)XZeXo9MzN z)fMoJA;LY@)n7A4bhB~Awbaf4-*kaRpDw6z3R8O=}IG$I|h?> zA3pJ(eTtsWx{XJC*Ij$98^+aGVRY)yoHGoo!rX7~IoPbR<;IKkI}VnKTXa3Ta@BjS z%_{Tnmqa0T5;!d)CxR}SR z$f+8d*zQtDky{PA)GvnjM)mZRu(8nLcV0MSM?*q&=)E4!<>(+4Rt~r&25S zDOfj0Uir}>5FB1sI8`rs#>SZSF=y7iY3LCa4i24trnK|8;5*j~G5yJlnGKf&3mtmO z*&DuMrsO4srI~Ee9V>2ao#N;eV|Qk$>juw@)6$phR9zIf;F{Q_DQj*rm1npd(q%JV zv!zdX(BBedi*le*UjwM zS|V{Pj%TUyvp^reOVhSmA2(pOY}(F~mV8UYuV=^2k46#|N}IYOUAy{OowZEUJ(`Za ze`vtYyd?K!qQmk+BevID$~s%}Z4ar}oZfR_YuORK71myFrZ+KUlpen$k)fdL?S1Ww zg2{re19l&_O?Ki=9}fydQENG%Qa`M%BC;t+O*kV+N&+Sw=TyVJF?)? zgMze;f0u35(6;u8*|>>u?t@i#gFP2VT}pi*J=Me{YsU@0`r_&Zdkb|g&e(V2Cff^* zV1WZYy$5y{&Qf&S74uze;yT7_!5Jr}SFB8Qc-5%BFvo!VkdRou)@%J7ojqIImIdop zv6Lpeb!48|P*UN$G~%_yA=@WAtCR8-q+EIxx_Vwp|2$Aw7^$?$?R59t>7u56jkZUY ztzQzKo>}sm=Rr$|*ukZ1_;rNx`Wl0UkLY$xuR3%_H1QethG3otZCx|hN-8_Q3tDFr zw`r}KzCpjHDR6wGS@aR3kd7`=3Sh-Xkyn49cOblCDVWq zEt3#G7S^tYRnxSVo|f39>G>A6|PHR%MG_i&1z4xer+^m8{5&m14eT>*j`Dl z@NNuP@`hz&&n5T?~=?uH3z5d}v|9o8*siMhSznvb)&pt9krnZ=T87>>I*&6u5( zrl)$Vamfpr3tuW!C98B)XC|?(2~o^Z<*Zd~IeErQb*os(tUGD!E|nEq_atWXOx0ZS z$TcBr(eBpnbxm`Z**L87aJ$eJ-JWu1g}}j1u53v|=9zgy8sYAf`5j}P%vgNWAosHF zf^t<(msL$0w`4B+(Ym#YIV|hU#h}i{^FGdcN>>&y4vN3Vw%IhqMaN*q#@nn3A$c|m zWv&px33^-h5PO*F57hPH+qtPZgSIu`rh@QB?%tvoEr%y~$ zJ#{qK@x{Wxg^epy5_L;0PYV<%@u@Lcah^;*a=79?N4Jo&lf8m>;mnyX#;Oesn}rgZzDT>sp4yu*@lyDzt0hOe zEqh%a^nP+sk~#Ep@dB;}DeukhMzPT@VuUMNp>1f6KEOg|eNK z4Q{1!FH%}6u+un3a*C?k1byRe+6igJ94D3w%=)4ge1UV{QvZ-EYxdddnIxT2sbWd9 zKIY}H#5z@vWnL_o-t(kbht1`y4Nf&pjF@*#KRvzj;DyAg88Z#mJNPKyUg0COOK(~&qw$=}ELX)8T${B{ ze9`1v_4M+**~c$zHEOlW*mRd^!sA7oFQ{I3mMj&EU+6A#_|lRi`#z=~%snO7mN7k+ zFZofmYw2{hn7EE(MN9Q0l#bk!aO2=u;-uEiezOa|OHJ_2mXvIN} z-jXVz1#S zviQQhX3m0VnwMU`knry2+p1;P7Qf`^>E=sM4=-3|^(7{5!BM@%FW3ZLe6b1-)l%VG z*i)qyva?pldwSJM&KEn^D0FoSFXUUk-b_~VU=Oft|XqFbL6_FzEHf_?|ea4VlQ8NXt$pHftVee9`y&WywWyT zLf}=Et=z7~90CHb>=yJpGleK#dwTlIB3si^yVc%Z1}|zg^>pIe_O-sO<`uLnPgvy+P5!fQf>HDJ*@5h@EsAg5YGH8ldd)B+^4$6hi@RMG9XZR)&!G@I`xD2G zl?N(=-5d9qI6Z!LGuWg(`j5h|2{F?r6pK8XD7VM$?vhszl0}@g#D%2J#V#_95qWcO z^WB7?Baay`PS964@LWjWNA1v~JTHr-1`0d@_mciIT+q%+liWS~{IWku*FU|Ol+AE? zIp6(>kLLt%{%45!o=|PYG10NO#4TeuSOqoZ!(;NKe2473bWwWd~Y;)uJ5AXd@ZIAZfJJ}{Q=zM-@*~c~gfMDqCa?y_;%Jpl? zH*yqIF|29flt`S|@qp>VQ>uRc{0vQ9Bv-fvm>;b6x)o>eV64?0Bu@b8{j z_*|pyX!W}_8XF2~SzJ_QW}JV{^60_>=QA@V>dE`LX4dTCD7+!$+_TW{`t3PJZo-Xv zT1OZjtgyYVzVwu{(3HiK)Xo__jh@DkS$5&odiL}gAK5q(4z(sNl&(A)6}9<4gHe8! zp|q<1#G>WA>nHj!Ol-Djcq?;3&2awmrY$zo>tlTkl|G*SP^dO@_Y$ssA15zyIIzTd zt@+%>wVD2(@?4(2@6y(|?QX2M(c0Z+A+yB7w-uW|DE61Q{+z*GUKr@KvagS~UUx>o zFJr4tKc3=l-NJX$XT`tBHLuG4wXM)Nv^n?P`-g%HGHf0?s4(PtFx4n7`B@nn`K_g1 zD#nVhL3FE=#Yb+52e;qvXBWu21VNcSK3~q&O~OVdUd^yfP$l zK2O|#hR_3!@0W4^*z(@7=45QK5Vvuws=yM7q~3;xyY?Lnk2u}GHh9l}@M%9^>%ZDP zJd2i^BplNCxG-ze1s2g&bsO}qhuCb336q`WlJn7Lh2oi_+J77cEe*-S^7-8x*$ZyR z{y6T<94&9@#4ASthzM95@*i>atDtAIlUTPve&*razW`u8w#T zFVx9wv801X@t$hf@(|^~V`s~CH0mu+7A-nwBza=tw}Zt$795u;=2_qA%%-SvqQ%DY zx#g@+KW$1gqFpLK7|e^4ILD&Ylr-Tx$60|{42i1U?KAA>ac&5B^tgZ4<~|z*2L=Tt zj;k_i{!0${K6Slw!j4a}Df{HC^4XmS8gD)9w_3o%u)nEUJ>uWt3hmDwjRF2sjLgol z9cp_YSe1NQWvA=6;3qpCpAbFrpTVhRSIeBIwJa7zSJwL5U-IdfVlNA~<5Cm)H2u++ z%HpeKM~`ss6};85E|JUpf$3QvEy2~L($C{{#II~DUiA3dqqM%otS7HrKONF+?0@w~ zlDR?W=cS37b$m~ET|V`Z;eJ+q(WXaxY~FC2-K{vVpd^a5|Fz!V+wW=?J^3TP!K9x3 za`c){k%fw?CszMUnZj{gmrwqx=EUekE@|i4?Z%%@v_%}zTAE~F?V);D>GiHXA1fDR z7hbb#+0c@k9@l)nW!0t4F~R~14d#mH`gEU^p}!fQolXbQLv*d;AGORrx&-GrD?{hHVR9w_*NHKTdVT@#yQ1% z=WiYMnAWji&c2Ay12UH<&S-b}pr3kTc7Di;5}g|JwmAk7jbHBH4W1Ll#UP{5xNpZy z&S@Q+Ll0W`Wvpr~a}RTTCpmldo;}SGmgd5`afy!-#eXnQpXt<5$6F}Bz4m1J0@H&3 z3Cjmw!D6>{#TEDH;4w?z*roS9ShhPd|^8KPDRm z4WzH~zpK&anDfbF7tigvl7G(~Rp$K9Fuz`)+U{0tOyrHJw|H#0z4|s}_lNoXJoL}# z{<4cg5*Kvh@?)NXOecQR~UUvECi4Se={8sXQchuFv?;`7Sv$(l$8MfD)o7#QL zagN}O7mKwN_?>d+b{zJwuwf~Z3Vm?>heTfNCYEn~Ogdf1y6oJK3+n$<7Tong;Oqs1 zXPhfz?|*$=o3DJjCEg(5;&j6cUEI@jo@ZztP1&%?{;Ss(*H=yf?|>$4p99%dd{xzt7MfzhicS}!&nI2Fh%s?M+?gID3; z5gz9Tp2J>g=H-{|G`^S1%jjg?>|R&H@lIjF=kAz@3re1?n$?p(n&$plAa`(M^~E<< zCTA{Pnd&?Lq`<@;g$wT$S`97-u(?GlbnzdK@yn8*+xu&APol>Orx3rE;vOb>?YqYB z=EXj=G{4@E(==~+uJT0-4uvhxKi)|GJMBPQSIVlJCaStu#23f@xpVbVe~ad4wXGpV z?qQENgvz(w>^bz$UhKm+se`XRF)hx%dnWk3Z0`Hlfv*CtIeyK#E}?Q{&wYWJ*H?$? z-k56O>A_#KR@nKMRVp)=suk;kw&l4u&Q(q7>_{*PHGTY)h1<7?ePZC(eW~e7Qa34< z<;+%266${IH_MhU`7yt|x5F?0V+WVp@9E0S`(dV|##bl8eb92ZjMuTqj>3bkX9d29 zZFLTowr_nVk+klKRa@%jk&#iqocY5jiGs`8~4=}9Is1eK4wku=kc~qYLYggCYPNPjTB|b|%vwC2ClWCGIzx>`i z5vTQXW?Rb_+oiB<2@=_V!kVX`s$TlS4%6kyw{51CFN-uad6@gI==5?Wm7dB9X483T za>X+@uvivc4OtK?)mo{vuW6h5!DnZde%)0q6CJ)`m1MNZNt1#Xwi-_HW#<<>7Sg)D zu>P~}+5CO1t9f>EI^DScv-Pk%=aL5F%V}3`DC{fQBYNujy~&3keJRj-Ybx;Mf)V4? zAG~uPA8Bgz(E9MR_Xx*(hr2(ImhO3WAa?Js{EfP{Ghd$0+nHXIl9Zb(aYB!y_`tlp zuXTBnIXhom;x@j_wz>7i+&LRgt*W?rRjIBr!_#d``HvX6(^4ndbG@pZqJJO|&VTTZhn0()W3!gPtXsTALC!1|(LrT(XAg326^j3(?w;V>vbU)y=lTLo zj?Stxy1#`j=D)9Ny!YLzKXTW*11|5*ypyX|3|anl)w71L``3CnZgf2|-HTQKr;l^k z!Jn_zscP^{SkUBWaU@}K^6B}U-eKAfle(%IqT5>H=I|XpXgBA8zJ}fVs3S)jx3>l8go82IO=?J#a+ei%*V}LT@S@ZEzM0`6wP9r z*&gWW`7|hO1Gl>1&R5B7FP*n=A1E(BFsJ#2?H`8we?R;r|f^1wlqeMh0dmW?*1oU}O*! zP&9N5R4_;^Z2W(VfrF8mkss3gD$tMr`PV^ah zALpL%lE>_}?tg~VZ8zE^y(6ck{&Qz%4=)p&Frl77%<0dP+`Ec;^A4s?^RzMi)BjpY z$+&0IY16(L_RUu|-R9eHJ9pD*oy~vQZEsGy&Cegc&d8&+IYA)$Tfu3SNuFvJ_unh& zGXHR!&@A$%<$jSH}N@Jg=fzsPnBsY^Doo~ z3JTiPY)($Nq3}@UmFK3@xx034i>_bMXFbV}{}E$pN7jZ?6$#I!D^(_WTKLI7su%w; zQTB+Dr+RRUHBZsWJJUREa<|?7yPW4dv;HG~Q^vQw&3tdgs+(2cRZa3#nLPc+{3|Yz zavyH1Gu?PPQ>|*|?A(8sEYp%Cy(05opO)G4%2(l}8K=)ppG~KH&irSH{=?DnkLULt zNq5(6r}Mc}zUzG6f5WBV!x68bUDDD~{vJ_omnMW#+mR-F}jo%tY(^bt*& zqA;=d#ogSpceg8P%=3RFs?KJnlR3pXzs4}lkn`!>uLtDQ-NTy{8zsLvKbd%a;w=&5 zz28oLtDTd=v1f8ZxvIO)oyn3h3V(aISUoP?SI!@MQ(&I+w22!^Rq7pCtRIP2PM)YV z`80o|Sgx*k-I_gle07eq zyR!Qn-YTt4{wEagUgfVi$Gbj1n#20tiElDGQhq(s9GaP}y^rK?hH}mozhT~Fo#VOf zvBUv4XQne7=C+l)UE{weAvk%r&e!?6hvYZBNnT-SU7h*l$=W?F&K-W5vNs)GSFnEE z=Jzk+?Sidpxz^L}KHYosI@gt7jvR;ElkSM$WYIY>S^9c# z_h09<(>zmbBTl81m9p91yz^vP-0~ZGyB-<5veLcYYgV&;rKN-=OE)*q4?nN4mGk*uUFISiKgpW!B%6Wb9c7M0ot7$L zmew8L^G=vQPH;S7I6rmsOk0C&_0#K4oY^j!^p^iqbkL?({vHqK#lEaLS$cKuS50Y! zo|9tVwYL4ckurbc^_Y}-$EVLbEOz*KrlL_y>SNgnU#~PwoUlCXuv&S_5&45Fiewdi zRVU4z?XA*(b+d}$W!nwjC8y0-6rMcOBE8-tw>bJuTu^QECy7s%+@Ic^KA*e$H~%4> zONRMH=Qos>B^#W4y?g)0O|cT96BH`-9r+6tXX}T@dfu7%hI`56MYShH9zQSpYWYbb z)sC;@5pxG)x|>*K!VL~d#d+r@om?{W&Uc=7vEFxY-*LQDGbvu}o&SbCH=f9zGFW01 z$)BUx+VEBW?cR^u=df3`D4y^Sc;~lNY`bnl0{cqOy@zXF$?I-NI==Um(3`S@-vX?+ z{LYKY*?l;%{RdO&gJ&eXC*@RLk^P;!WXbcBK0P}8s=AEJ2-jx&q5f85+~di9ns-*aa4&Q250jJ!HuWs{rmm(4pK ztSrm1eJ!PI)qJ|-t>UYA3zHL_$w{`(eGgwbKl$Ux=e42yPBZ)F^ZJ+VJEIfk{Ir^^ zcp@n9aboVxhs7seH@kf;|KoN$ck1-{ld}wje%n7{QD%SBvymeze}jOdt-tMD&+>_f zUaL&MoX?h(tl09#TYf`%u72#NpHC)j_R;;VA9iei!pVbG=O>i1m)}f$7o5DkJaBpH zwa64p#Y2bLqwS9W{Cm6a@Dj`1y|EqXf2Z$BwRmSXS=tx2)4@J zy8BsQpw4+U&!o#`=T!DKv`D7=NHEn-@cPNkol~CSF}-j?&R0IiO$Fs;lF8e>>o-@# zrtD_s+4b#+)i=Hy=blWSU0;#-r9bhf+7aiTS1y+{P2Yt+;h#8n^8yQ%C$fcaBn@7b zt27Brt5Z24GfDWe>N}}}DU}nR*t)7kZC{aJ9yoK`+gS(A4BxI@yT|^K?6%vv+rq9z zpZzAs=BawSdcvBHgHAdp*W6q7mCfVx-Ib@8aPO9UI`LI$j)41#TpL>l={?`3cU$i9 zyBC|w86oB-@`&4iPKEQ5X=i7|>;FvF^0N5NUuNDGx8U!_6AI1Wdp5mdl2qQ9J@*~wjMo(2h2Ai$(zV)UDN?fi<;GmwiB+wMpM<8P5hGc}4fIH#2UXHhv=9UB)hP<6Tw7X`M}{bvAKZZ{kf7e&cy% zlWBF{^LtP73+JlpB%b*x&~Qw6$J}}jKF@gt2XDu3+H*T`eKN~6;pKiO8Tjyk- zBjnmYVU@l#`%X#omGLUMRvR4r<~d!u>2^8q+RGG$J=2?apS(M#F?Cu|U*w%9wyxJV zeYJb@NM-)V2j@>;aj0#W-@^QN+tpinM-1P^sV@<}nO>7$RCi-tgwwwGHIIU&e=~nO zR8(~E=@u>N1D%Q)ku8g_2y_-qsOEVVRpQdpS9tqG=QSZie);z-Zn#C;xd> zdAx0DPZz3badLh#D^_JX$B8%AcE{(~Mg7c=5i7kj&G~nt;Ps8$9q6zOjL=^ zJFWi2Aj$9+-|xvg`*vsvmJ8f8PN|C8-OrWVWcX(9SEj?iC3bE9&>H>gnA;r7O&&Ur zygHZp&(_{BVREwio1b!rC%yeOaqscpLJ!NC-<;l<$#%X>vWLyPclR4h+moDX+tFqBj85Oy zF$&oA)Ao3PC%Vx>rTmS?CI;4Pqx0PaMQ4fJ!Sqk zZZ)G%*DDzIY~LN6yE@_~llAWdlGFG(8I|rPMV+Zk4RftqH$hTj`kYNCPp`i5O8WNE zCu=8JZJgZlJ3Ywj_Bp|Gwex~b-&VW5cKVuq5rxZcvHa7i-IaGD_4YnK#+<*~xD+Zi zm0nEzB)3Lz$$mZiu*OX<>TceD7O_EfQo59L>YJtelV8bN^{c+Sy|?)jzwWEoJ+spl zr}s{~?d_er?LWh`534N%1-FOoWWO=tr1U1Hd%HJotl7A`Uth8A{@Z&Vr~c@0fV#bIng^)cXvBo zyTqVc#_+9_&Fc+|8soRKO=sTSpCIIXn{R=RbWrfBRVV=9awfx05fLeA8&( zG+#-7Q-$olyQh!)^lS@HEPBVDQ=gOTxAvIb0loE|^{P%Y*Y3>B-5brLx_{e~e~P)c z%YN2Boh0^WJ9qd!(@EwVcgi_#lRLC|`p=5*_RnQEL?-`dn9#a@+w3b=m0~i|$8Y*? z6XG`P`k9=uwYpK!J6T`+wzBS)lP|BVla)z5b))*-yE~ucZ(g4?JDZzl+imXWQg3g{ zeRwbZJNHi6>FL{IW8X_^N@o3MP~6+A_?!KhWc+leuaDPkG797P=Acq!aoX~5PLuEC zhbhy_lerb&?vBp7x-!e__7&aTvIl?HpH8w@d(m^d{#=>d+kedY($`g-k8j>~^EcDI zZhM_~{~3h1tGC<`(4XKkO|qK(wDknV=ACtsSIV!A8Kj*#9FI~I))9rocKk}th7nWMxotX2Ty*j~bo4bqAZvE4n*xr1K z-MrclJSN&yc^TRDODZWy-(9SFh}06gyCxVi$RMTKu=<#s~iy z@_%OU(fxM%5}$1Ex%b-+rk$SP6R~NDk)gqczuR@$jy{gVvDPUlYhe!%Ip z;oDE|zF)i3o*n$r2|w8blhM7@(0x(YfsiY``gq_#!pKCVBV zs59rrjL$tfoA@MdS54iz+cUT5hPU-3Vb)J-%F})xwu@KZXXkkJo8^gp$0v&4e-N*H z^84ib4}P-;ir`|v<;QsqZ`BFh?20Oi|D@jqq&B8BA9}m#d5z3;RVC@%?T6}qym@s{ zF78d!3FVVLHTE;k2nczyo&IMYuyr!;w%a@gN8Ee<#lM};R+Hi^uwl}qZ#R-S6gHjn zRBvSBFya7PWcg5~#Xfz~wkJ1V@l4!mozl6yu}vbe<3EGo)0s18G%4S)^Szy{q|n5@ z^5`^&BOD6N2mjbfeyZSBX;DQE+6b*KbQpQrP6-B))W+dclS$-QGz>QL&CJAYJwPA1c$*YJZ$(@jX=4 z#9^P%#M8u~1M1G6my|#KaORATO&-oiKb_uWm0F$WcITwtoefPK3LR|{iT@cGpU#~5 z-S9z@O6`dXHb*vxgK|zBI-CFax1}X1skA6h&*|Y_FnuN?pa0I8ZBmY@(;@|V3=Tj2 z$FFnd%umJBm3E8699aZhDsFT%AFFTuaORAQ%OP>qB~r?bWH#N%-6o;@qyE5;v>HLdhl+g1Wp`bZ+5YL}j&pI7>S9;)u<11dv3)p&C z9I)9BvYMl#(~>vurc89+uN|+Iel>HuAK)+46KS#J*>q;pS&;4L@9Ug7$;~|8MrSr1 z=5dyP5SbQPBk;reVKk4y553b0pUhQ1Nh|J@&^5~wT%7Ztp;=|(rVtIs31yNT(L!!c zY|bmcb0^!#Y-su^pnkeWXVaMPbnsGL1mFDAkGU6F9A9*QW4Gcf z8DHt$mes8DE5+E0%8nhgnZA)XeC>_fn}i?aEj}QbV{n>h$p%n6_co8&VV>D`Mv=$+ z3-?aHQpVoIBKuIQjBmS}S>ELD8|AG(IVzPgOQ`+nkL{D4bHiS-rF45FZ|4cVY0rf2 zvrH;czmnzW|2Jmgze9(d5B<0qcDrWDr?SYR+lg&A>S8B(rcUoXzvYW`OdG=!spD7M zP9#{TSs4UN8vbVp{pPcl+m)#GZX;=bsjq$2aCV4v_7JhrOn(Nz~?{+a;KJGuwyZv_k zoXrROn^}y`e>&h{(jc86eCLt)0iNEN`C%;|o3}qZ_omw=)N6^J)4{tR9^A}6z3af! z%O%H@*YK21mh-62zg8jO<6Q8`M1aZcary@KmCsWXpPc*8z+)*VQGY0{Lj3T<*Bqa! zwq19MaO#P>ROgmAkHLE~(>L$H6MeSF`i_0Mbk2S5gy&7qJQX+UoIAP6J4rx4qfF*8 zM}4|brAF!@pU4SMuUOi@K7OO*UnIA_OWeZF$A2e$lQv7{{g7xIVN}(%q>=ATirtdd zch!xO;`@#XWp3Ebu4{3|py({8_3bJ9B4$kfSuk%;Ta-7iW!=(w>}wY)Hf?yWGA(A_ z5|2MKt9iU9^nchSQo*rzQu@bjXX+L_ZJ9RzxNY>@+=ffMPn)C-es5Kg=4aftJ%!JE zLgD<=OI+Sg_tfl3IPd*Qm$y$fqwL<>{GI6A@v`@XCGV^x1;!lgneT+J%Sy~q8 znAzUc@>*j3M=`Cc|G`)LbCFU#k*Yr`N@i6okr6*^lyJE7%p|KRUyBo8J?;2(P`zcb zqJ7|D8yT~hejCmQX@2?9lCqYP8|}O&{b{)~S$&0(@a@*#UGqjp{~6dAdlH$)po*wi6umPT45>7xnOOn78=K+#OH2Z^%qmT{B^VCEsBkf!Tka z&OcXg&3?n^yrlYMfs~@Rhtsbo2;DD!Dpv(RL}livhC{bx|` z`E3^s?l+&-*`y-8xnJS9^usFuXRoz4{byKVtuSq-{E5_iDr>raw@doZn)I-2#^ViD z&B;{}?q@zmc<62X)8J@b(=B&f_Gz1gZi?#D1t-d0KH1akEm=8}PvB7chy4?kwmmWX zeCWGU%=h%4o)T>qpYE#0#n?&QZkf=s`tAHM^D8`a&gop-p1YfOT7*ZV-f>UHC!4Ox zcDaO4{&#z$;O%*0Z#g1gWv$UTyxlW*@0J5PDtfbxug;fn*=h7V@%O{zLk}f(*L=AD zVg6yUPY>sKCEU9CO{Zl~d+F2dyFcVL-hObho9~45h1nT14%N;-x{!hIOnHX)yft^P zo!e<17I#AFw2?kIdaQZ+UA(%ginEvvJi^qnb^s|fn}IKb?Tu73SN?lc>R zEgO@L%k&!-#yFSVS0FkhL;lAg20 zM)d8Ltr1cOBOG7ZUFhFrY{qn`;{=CrzqIj>iGQYYY;1F>Pr5TBnOV)|-QE2H{~6@3 z-<^M7%w*k+uLVE!x9Jrfp451G(n~h8PYw=BCMU|C44&O)I#s`W7XNsySZjk6N zx>j0k@m=i+f2~u=>;DX=b;OP|UlrsOkmwQo%9gC~Ynnk%=h3^zu0QErGnL0$P;Q&l z`IQQjpH4cjbUSx_yPfriJB~sg-u6j4{FO!gqje|l ze84Yr?sNcuFza0TfG_gD{xkfnznXpPvYKPv?WzesnQI-CQ&`$p$6e@M#pPs}HtC3% zQ&FHaw>q1U{N(jauh>)mY`dL1ea^JoW!LUiC~ug?W4Da8%&$o5#*+89ukX%tR-YgC zEjB;xWQ&{k%;t?c>92(Eh{>v+414f)@yWOy+dIB_#J!d4bV}TRVqb@P4xi_@=U3#y&9_tY>E7GRBra_HKJi0~$p>C#ow_Iew<8`a zT63h^x_oSXsqkwvCC+F?U{H1quY~Rp(I(FKbv-^+L?mOP|@jruZ-Qj5` z?g!Z3`^4lVboQl;^V#W<$8Ce-9!^YRO#77eCf2A{h)H-`@%?VDZ1&%6QhRUgd(!#K zu_f2fAjJBW+_3|5a(Acxd!t_DnP=m!>QvjF%=yP{L&b^6y3>yp-u#|#nIh!L!eT#d zae}YpY>uM9n}JX2I+sVsezp0o=NGXvg=bRO!Rfv!ksjZs?Bu@|XtV#@#m85;>y{or z{l!Kg;= ze7AV=^}Zxa*5A|2S7hcF-0Tjrz1?DM^IhW2YaP}1E9$Q{Ih7w%(p}zm%=ZY-#x&>W zv3id47Ad_kn6hV!gSh${Bd+{552gn<+BPQ7d*k`1^Gm$P?C;9o9-f^x=fh0}CbuWo znBQGH#J40Rhba>Nhn{Pg4J= z6_cp@Eo4pauWi>;TlbycX?Ng6%5&9+d(GUcC)ZYpZ2HQ&Wt08phdheKchqlK=;ZZ0 z)+u5-(00oETDfXu;ni)5-q~y(iHcd9u01Q}oPMA$#!~A}-VVQzb_> z`+R5rwmBcCNh&HU-ZYqdqwbFKy@+W2Pmhjma^85!_21i@hB^hhzE|YCnK$R_+1^aP zy6efj2}ReRs9$Ej{m|^I`0b)UPYh0^emlv3C#a?O?R^d}1|9V`&mJpp+`f{3`nmnr zb3f^~H$2{ck#p)z>%w<_4omWGc}Pk;I(|}`p}**1-ZXDXtrKGZyd|Q4mcNlM54!m2 zLhFqurfMmIhkom~EPcaf;GUDyeuv53=*GMA>zpRe+;r*e=9%{W%<1w8>+~j=8TLH5 zxm);EaOvB9*EpWMe&3&YT3GYlx$~~mmq^G@?hn{`>9TE9OLhK_hLpFBg+FB!r?ke0 z-SA(Lm%1?9l2QGH=IY|BdrxzFrh0qwHvG2yoVfD!0jEmo<6}2_=3e9LxFd6dg?ENa@)O0=vC}8aGuU*q z)-7V~{qWUqc53r0Cw+f-vQm0dZfAn*c0T8|my--Uf3v@RaY-!f{>v#RihOgNE*o(i zS1l{;oLW0ANNn#baL}_Gv?&5&y!RS@ozYP zg{`b8=)1Pamah->CbNFCn)j=DGHdFb{ZH1ET{`A&$#vqG$J|MqHxzk@PM+|5hv)ZF z23>yL1fxgQcE8ysOt$q2Grf^_LoqMH-;?=@ZF7X}F@aAC>Jtv%E}tiOyUB<3?ZPu3 zl{YNZyS=GO@A#_=pYDBQRyg!)Q`MbG1~2(*QYX1T?UZVgzmdO5MIq<(^F-A@JrOf< zzCEO}R8;HS|1^2~^KN{9xTDO$aqWMGFyA+E zcQ&f#&e?9sc5ZRvllckT|F(tiV3=h3Aum#dHI5sSTTfAzFe>8m#uUIt~7cRzfY#Hg=uLylc%MoORa zN%Mnjk$c;xM=I=2v^G2uGyRhod+yf9+t$d3sXkY@@l*KK7vcaFFmxn0v=Xt(&Z{K<#=j<1*he}q9@fRTX- z0zivspyNV@j)94VjS~eHZajGL;fIe3;K3nA21a{K$aVJ?74P@4ImfgA5$~7l^A8l94Xv1= znG|+oO>x|I*~{|{9<3G#v@8sat}kZ4&vJa3&MR&o{z9?e?Pik?|LD~|9+wooy2fk0 z?9tMwzUJTEO)1OmyH~gPxp$oAYz%W`yID{!G4FxX#-h{7?**7P3QtlEONd!okY>@c zGSpO0=Eux=%4b&JmRlHC7D1$3%ib$t%8^&t-neZv%gfo?W^*`VN2qV(m2}}Wf%KAN zUtG3p8ix&i}?yB#2$MiY(l?`j(%1su9;ew_zJEmW~Vz%X=y3@W?>)&m+_>1P* z?dOv6t~vhpo!#NUkG+$5BSrN-i`{5E_w?(10WQ7hI}7*z@jDtHusY1(+^(r_=f9Z$ zvfa4gkm-#(?6&S{ym{*ajNWyKJo|HYW*WQE)9u0&ch9+n+qW}2^Wt|*dOP!;<(%$EV*6*D`TWuBLEVA_4i6eDLbSH_=A51`(6lt^pA>*=tMIz?xa7QYqRY`r*GFZr(fcb&Z(@^yXXTQ2FEhx2O&SFKB*lyI+N z?u6!33!LkNRX(5o@GSm}%vWQ}@A}8I64KtBtC~_VTj=+k#05u=G8$MnzUbylH_0-$ zR6ZPFdgQE*>|q`MCrw)|XV3BceOg5$En7I}$k8kw)8B2kj@&r1b;jB!Jx62C?(8^{ zr5d*|sPD6Wrq(x!BO*p$dGn-lnwrY`R;gvm+%N3xJrZ-J{FtIt)52Y6#Lrw;DS2k$ zwD-|N^+-e6>A(7gR)z1F6XWyV@JFBW-(%mU-?2S=rdp``^xsm4{AaOuHZ8iQ%BFO% zxGD9F_?|P$87pNzPFrI<;S_Jo#e~E9bB^v8nDCBGs*U|ab*J``b&Ag(&OIMs%v;Wv zRM9Ukx1UK>bmf!uS+a>wdA`dn7QgqHcfQe~M}Lp^9Q72pIksD!dCuuquhOTqmGkQU zX$|<)KL63bkDsS~){XRdR+)Ap^2~`V!DiO&#+8%Yl63scc`Lh{#f|>BYVW>c;eR$& zG3~SFs%C=&S8UEMFx5WeFW|H8;hXk~X|a=!vOb>a;u*OA;I*aQ^+J8B0tz3^zy6pk zY}H<%TzJQ$_YpIDN8vNBcKeQhN@5ut<+q>3tLzf#jlKPyheyu zp0R9txIXrH=!^~VwdX8*k3=eW9?9{sQN7=>(c}3nOV^}3`9U}5JkV{J^I~@WhZ)m_ z!UNP6{xD^h7dR}J+&9Uxxqe1Q<>ALae!G^-Yuui(&Gp93fwzHq- zCBM*#1AJ;3H9prlFY*{neZ<|kvc>3i`;n7cEjy|@B_>*R3Wad+A1HG4xze^uYL3AP zm#G{Amd)qVr4=^^=pQ+|ST0S7$Erp4%IR81j#TjAnTq6upV{}g|G53}Id)2_4g!aH44eZW|OxGXrOt>oeUHCzd<@=S%4u0%CN4XYj%X;}HfjP(ARH~?KL5zO>-Bp2{YTg5pPpXMAzpk-=wIgZKUc3CbUn{_ z|KUG_mOaHU(&l)Z=h4`N>Ze1^Mc$(b9GlmiqV~%u6y71gR z9N_fTq>0Bl;0jN|)JOXn9UciNu1h`}W78Vvl@v3@!d(BzI|1K2Z`*@>5|Y+k>k@jF z%zc3I@@eiR7F@-57EWrkNHAL*?#Uf@wCn!QuB0E`k7De9Xa{C=1%{i}e~vKMGdTQI ze8ztUp?5`pVxC+6Q!4u7lH~F#ghN2Jl>Z>FWB-SWAZISMxP`qMrm`D7* z3bI}b-Zlpp#0Oq2?LNY4a#`G8e@9Sr|BQ@JdfBtOS$(I@eGtQU;T>~q??#Iaj|_uN zq&v1L9WU)UuE(mgp{*}V>GzrF*9|Fb{1YKx^s8sH5ISM z844eb{Y^ePGk-`>IHGfx@8Rr?e5F5@c<8Bkv}`YkQ}P$FonXpl%EIGtglErr4?XoI zU)rJ?e@(SAm0;^}+9$R2Mbp!b?g|Ca+uLWhu14Kk58XHB z60ZS{dy(`?;WY@NAk z=A!KLkAEg4%`mlHd|Yr#m0_5k#kuq?f$wb36-*+-7=(C-8 z(DGRL1D|?1!&k;Tb~T?peI)lzeZ%^LEgYpR21gP_J0|S><6dy)Ig{y7u)H0uTP{>TRLkd1{WmXt1y zYK$%je6anQRJ4fLtfC6z9Jj}ted1@79u%0m-tobM&!UIcGv@xBuDd8V+~dKEu)9B| zPwTk0&}CPI`SB}ziuwLC1ob`qIrB%?qE)k$KU>?&&H2x;|45Y5*@8(Cf%29q>Cd_r z8C%wW@X--)d8V?$YwC}BO?`tTEuFK0&POB+Qh%l%{m6c2$5V~xh0lxLeV5&6`N-np z@3wD$ofgdEs65bkL_zrWCq3nr{SVK7xZ6|Cf4Jvf;hfaJr@sd*;)(dqTKHp$bAUqo z@ds}d4LSJ_{HQ(rh<``SDZPcW7k*?*?6GguQ&MhYt7rTZr;#&b!4ZXi56L4dcn@ST z$30xtpmA&+*M$QX=TfH!CrU0j|IvkKDT_jIqD|S69>txpffo;aam`=t&}zcmJn!?J zTw`7H3t{tl1@>OJkYllp;l;AHeaXIu8#TUdWYrWryn;DVOXhmfrsuWCCgdFc&TchJ zvUjbYVMib=~Su|N1MH21vzL-wNk-I~3oM(?5}vnd?nEFGh58|9eX#X{_GY@m}oBBw^_%a_KdOY`Wc$1HPk1`F8Ka~)8=6j z$8?>(MMr;d9WjVYer9logY)=Dm->#c%(DLRZBbVi*0)A8$qPK=uyOn2sHOQRsj00a z*__|t(Baw5Qaw(OTsno#-m#UkC?C1n5$m;M=BoXStxgV`>i=grZlLf{V$xEF zKg$e-1^XX7N|akJrX%S1hiAuLH|-;-cVd3@X~*xlvs+DSxxncjmvVXe9lDR?Gt6gr zy%U(?d`e_>OH9N80Rz8@s>Mt!-~KZ^ju!4c5MnAZXEW!tMP7|FYJ3Iy6xw2&xDtXaKRnE zbp9h(0-ZnYZ!_%fTb66g_I~D~M?Yp(9T8m~r`%j0@UWcwz=Z7v_WbkM3%1DQaoV~| z_8#nU+`%!k^M_h!z%vQ&J`0Db5}d;T#>GMhV=*^|G@>1J7ztSJ{2l&u;+wH($xjO zlWZAwmHlTB3@|KpNLLd%)aSCRLi2&>^~{YtD_j;l30>T}yySp^ydi_DWUi6p)Kv$b zn(8n{h{v9~v!3neOqpw|u4}!pJyJZY|6xS!F@?)(#NVD-l33{^>g1PiaCCO!&PsQk zG@j^bOinyWLTp@0{ehd$io_c7AF4c1F7=tkE$(CcDZ9W=fApswlXlfLYvN0)?i7Bf z;@%lB^^V6e74Pp_EMFSqXV^0dZInG`SZFS0k~3rCks|e#|CUYfH#{u!bK0+_6}5@a zS?_q<-dSj3bnd~P(?_Xo~gpM#-l~w?5Pxx*S}x^3#8YRbpqSPh8!|e1O%}!7%0{ zN6^t*Gnz9igpW8MmeSq4IN-ytX8Wn9+>TuN?0ib7@?V*ZxkO0S#hWg7xkm#Xr_Vj(tNg<%VQQgvhr?`#hYdTd>;(&ySKO&~ z>D|%7FW(Ux{^+Md8~cYE#d`{~w(h*k8)Mz9BfcWRp3QJ7i=|?7z>hYbS1g>Lrge38 zeA@Ap$LzSW&1caI53f6Hy(kHqux+#FY#UY$G_wCiA3`=%p)au1|9O`*? z_Rq0tP2Z%a6sz-qBW@xq)P9n{uPjU!Hf%_8>3`rEwA8Cp_?>#n%E+lR1QbH-6v~+e+8-Axh17GioU}Z3 zt-~z%d%@z!m93#056|E6@cjqz89_EK|I}p)W409dZ0uX)vSXrxufUHsS!avoj+)bY zm3cM@X#Z#p5XcsA&N*73WZ?AmN6*D}9g9@%g2Rt^|M3*Q?9_P0QRB#Xg>QKmzko5f zW!vOS>K(lUZty*%QNGNv++rNyf0eF=^EU)$RQ&e7|vT4%Cg_UD#2v z!cK9SA|tbbJu}DUf=_?sHTFGzDsS<0M}NHW(e^1STjUKA=brigBPoyLpwJ?hPOXq- zffCbYwlcABIK+q?{;>WI|7l@S;r$19DkmLFd?=+>-M}yGyRqAON#q@;RVLXo`-R^3 zALv@^RCHu&$3)c_uErl*>x>jvesKP0XzS9eyh7j<(%>)1{2#6m=OR!wdx;NQHZU$T{?bJS(@#>oP%`jR;E?=%C3hn)E-$Gzr?L)pDN4# zfzqTQ`xTdEr%S*uGZ$d$@$7xrIToQIxI8vUZte>UE<|wy47kDPRyOP?be6ct1mRZOSu<$)&|w)pG|X9seNEv+1<>GoE0R_@>4J!yg_~U#WN;O8(X1vNBNBtG|VxXT5wQ zqrnORRfmsE3lgSk88#K~_;c*4-ShR!^vXqS?&K6CS>(@CxINd2Www9D<3I9`7V^&T zJ#r*(Rak;oQ;EO$qmTZ)j_XfM>2FC~F4(iz!J$noqlqKIXwQKVJr-Z4c>pe z7iD02;}!LQ!#=_m^#W&B2<>q>@^r?hqSI}uvsXNb<6gnvp^!8!-0nX^fLBh_ zrKDe5?=U>OutX}HL3EnU#S)$efzbg05do8yoxOVN*0fcXh5U`>B7V^^uNMhzIwHC) zmm}PQ zs>68(fuyBxnVz<9xA9qWneXQ8ERn~bLXuoM#g9a+J$mdhkHMb)Cz781k7qI;;cyc^ z<1y#;5s%4FrfMJY4C)tD_1Sys+yduAf&pD0wIvmtSUdxje@O3`|B;LNS!#{<>hO+) z(`Ujvw!8?EOVs4CG}hKPc~^1f!6LbZJZJr7{)w$|Ik&utc}20_+|53_KhAIFn5fLD z(YoW0yMW_Qh2syBBx;;@x2-E`*RgJCH!#%f@0dLQ#97Y6pJuhM4Ap2*S#vm|T{*n( zv9A2CPOp1A#Jyh^OAAc9U_9+tpO2By&IfUNZ>#to`x`qh&k~}`vWYR1d%ONhl*1Fn zIP=adc1FiP$2CQbn%K|mSIFgN&QvLR*nVlBUS~vR&5tSKN~uY_7mV-zsrKs6IOHgC z)}Gr7;K@3O924X3n8-K{;Kt0lEK_Q-Yl<~ix|hc?W!OOvT%d;gWcBgtrP(!za9 z!xEIN=c=v#Bgx}>Y?=On3V)A@KU_M64ZgGpykZwnY-08L$Q&@)sCbsaoA!dI?Z^K! zF!t@OV|*q*yZHFyWAaB<2srf#8|`sU4|D#{Ad&Pn@RrWPOjp;s$1z4%8z(Ghn6G0S zqHsHbH-N8ZouSr#<_XoZdzjWO7fNI-;BClfy1hwMQ~O|P^7L&t&hq7d5D9-9>+*6( z0DGp_kAshRH^s7llxLqiefxzh6V6>3Rr>m`MDFfwaDC5RxZ3#!_wNQ*dVK>JA(bA7oBggF|RM(y-wkzt8f4H znNxj(Ez=)o2&lTeQ}H+yvZ79r#o&?r3YpJZ{KvzJnl;(p2^D|-@$R5mkI#`mJO}Pb zwHsuK@j7?y5ZKt?5vRz0%zj12DgODz!d3s&!Wy!>v;MN43Yo&VKu7<(K&$u(!2=(* zsGA&*^3-qD{UFqu)gyTF;OWgbjM%Q8Ug^E;(28$sZKlUPHFAyY-tg3BT~*_xt$BOp zAK5e*H`?CIek9yKQG;JB`E9@D2ImL5wG(C+PmH^|pCy6qZT!vYHu;kFD|;+gd$lf5 z6u9+Siz{Bk=gp<^m7(&6!aT?1*$gHKOcqo4_~Ydd!#{Zf!nzYqFOB{q6VNbKP{iw_ z@Dcw>hI*=bAyr;SbKxJBJmx*}AlAT#&;E+Z@}kdy7d<`& z91_)yd%WFxrm<9Vz>`mhoO(CyQ=Kg8plTebLooK~wW{Qg6t{6}m2 ze+Gu9e=6OqJFcu?WU=p;-1(p3bmR^BaJD0F@`=N!A|J8yr~9P}>tkc3X4L-pT-)0WoM%#M}nnRdBZ?GD$* z&kpMG3OB0s^tk3&Rv#{yx;CqIAD_ZRhoekCgVZ9b=Ib8k{p=X^*H!THsY4vkmwO~> zt)D%`L3CTZfB2#p+3k-4nhVX|h0FK_D!FuW6dJeX2W|Rzr}zhl0ADJPeaGB7{NALS+*%eqheDx_Yh>ZZ|uE4*W#LK@4ecA=erSkF4KB(FbI$5!uQQ2lR#cGs+! zQ0Hgq#~%Ft*>%^SbN{1s`QyqnT-aE&YbHJEC~(NSQ58`%u|elQ!-)SE#QB>Bg1VwdkFg?&7xIT8gKa(JCsc}ys*}DX|Zea zl#VwSRe2XS?TB9eNRlU%@hs<|_5B7#9Biu#*0Jx}ex_jI1$N#oB6T-?gIzWMF0orU z^<>-SQ|;e*O)UcFwWgl+f0uT?m22198Sy*y(?OvRQ$vdn2_zdW7byglB@t$>OXXp;cpE}p;|AanhHP;HM za+~AQkl=A-)}Qbz9FrEm)&9V9>Il~#_D36;to|5YiBMB{{l~pE?mxrIiSY$nmfrDt ze)rTT0o}dTa|Aa0Q*95}-@yqn9!%j7{pqp4`I-I174?EE>IJUY>(#ego{~8{U0~b4M6;gKpSNTkr!UJb``h^M zx%~NidFLC}-;zIi_K$n$w2P0ADD|}({E_IJ-u$L-!Hi#TTUZz8#K?+0NGtlfm1A4m z)%3|nlwN4LnXKWuyK3WASI6xdQa_7d88V583P&>LA8@U7o!;MTxn9?Gm5f+>@%E0^ zi8%t{3v>3go!_Q)N3P@XX~!=q(;dyXx}PbGu<)>-t=K;|>S*e=3MFq_uD-+3Njf?#OT!*j5lpMeIINU~|{K%VUzW)qN z72kzaeO)9&IRn&_Li`fE&hYrz9FA}P@J{fsteefTeC{h|viHBTzLKo&3+9)NdCRo( zkMH#FtfD*gbj@Ju zO4p6PH#b%;Jz21D51X7R#SV|8Oq$js61rmB$MIWQYFvyWyAkANTnku4WItK1v=l?bE!#8?d8R z{Ih<_Vt3BU4@nU`JGL$hu;2|-3iyz|;M5-OYfo!J^>48LTan$``I(XNz2VB^I;Q7} z{AWTRo!+9mZ;pQy zbz1qfXhO?olh3b07S$V07q9LqI+tj?cCG(~N0wDx|CCO53yOdKeWuo3B;7!v{lkxC zYkVcP1&xͶ}sV z-@P&{NR;d1Y_s`~3prM@mYnoFX50CoVO3>rcTVgK$2D`Ow>_M!oohes!L+Tm1IBl-tFmqn~98 z=Nva~vi`%N*cNN*{76E*iMun|^jko~2 zkAFBW=&|v$n2uZSx+J0FLh}Vy?EWkjnw9bRojmi(0Aprh58*)Ga>K^?HZH{%bZREf zEM{E0T6V%3bMjNb2fyP1LmObZ5J9O?0Bn&3lQD99bvcJ`r^JypFdKi>uGhOU-$6 z_pC1AnaH#)@NiAR506T=$fvP(`mf@p4ousXCaU4`Oo+E|$FjSwKf2GV>%-xnrC3hP@HoO9 z=)UDYgTO}9ZMPCfQO}~TvN3M#jc=7&@itDC;?dQTBPjk0 zPbFSiBzYa-kp0NS;u)tDF0`Y6#xwi&5627p{<`TDzS1|^@+Rp}Oy!#Jue@Q8UaTqC zNj{nt`i!-Z#quN1`!j1S6^?!uNcL^CIAZJfv&U|cma3;gW8{NG55^6VA~!d*7H2x0 z4$BX7`kgGedCD2R7bmno_RLGZwsV`@S0)#B?k86MGYYcx#B?rw{4UL=7b2CDbAHX~ zm?u~CeIKq~Gy6%hWP^uzE2B%akLrg)!Gi}nlr=(?H#HjWeGn<0s>|-3=J%nc{Fft7 z+T@dGON|tDUdovBO0~%x5KWidu~)q2=%MF7y5&z?{_(N>(+oqV#XtKy(k;x799?;i z_gsCmz#RAX9FB(x>d($piocP+Xp?r}v+2}Q4x8COB0Nq^%Ma22uD6pTKWK&4gOlEE zxkipoMg5are&t-WG$!fok2S}ig`Wy^y`Gz7`i+a>XifoN*IB_2yo+wnju(&othsa( zqa+{0sojNqiLW}p^|1cpxwdj@^YZ2cvHLpW9xwc>III8AvPb_+IIE2^{t0%r9nM@o z?cu~#jN6~)*1EsByE}hfr?1&+ufMxzZkue9rOt8h+Jj2Rd7NcDYsy~s{_zrW^gXgX zOL?7qN6hz`{~7e`0ylPSJ}E7qQ{U-2eTE}vzy`-h5;e|OWF6WcDtt8gV{BB&m*igf zhpi(|IB2P%MXJk=nVl(K^(+yObiVaOY%~1Na8-8QzNL<}&(il_k>zzc$!|3Kd4bI8 z@7f>lJ=-wHO~y~gA^AIpXH1V(hk1ZrzMgl>p|1J$`7@ge5VZ zZ@R1bOsyggJI1y}|LC)^pLz1=BjwXY)1KWdXFn3(`KRKbw$blDR!v!l+hjH*wwyWk zSj*TzHcRjEJFEW;LXX{c&*@&7eK)D3TwLa;!v@7i`yK!4m>ju$XupdnM;ZtF-{U9l z?az!qV_LHJ)0Xgq68cK!mw7C#ZiOWnhAs$V%s5@{)UZK{Z{z$OuHB_)t&T3RFSPJ+ zFj@bA&%EI1&YCyu>0<5@SR2)CxbJn%2i&`Ty( z^y%sqPKzF%?=EpLt;yMUDR-m6@tdhfl_TpqCR*GJ;GZ(>?d=I6ib5At^o^D!JT}Nq zKXW3xpn*Z=kOu49uVM|&eif~2ckeg6)cNkQxR_4(2Q%9vM*|c2{~5N)|1*fxvg-MF zA^Gu#{|uU^c#nUKY1J zcT(LIkN6jArS=>u=nw9x+s`~_tKh7Uoet|}#>~?)trDqD6i}{W5Be9d=-7EtA2!D= z*4w^k#Be)Q-F!Bgf5v;oO%p4G_IJpx;mX=~NctX{ykh6U$A%M%d2j369R6_r zBcBB4v3$0@|Fj-z7ffXro}yS7bmewnzU@(;atnXKbqA)NOnd#;r^K?)OZxis6(X9G zt9=9S^O&ujKN9sf`?|B;gX9@{H+O%F2b zt?ZO?mR(!@dRlD8jafC?1sOqU2i9F}S)a6%%{p+}(V$lq0=Ffv@KtuDDp)LH$l!5E zTNYK!D#EpWhq;W*A@e(N_YWNv7708q5?Saz|ET-=^T!J3*vlR>?Axb4<=^Bf<-+1W z6gk8>SpNwb_LNIJ(skdlG5Jiy{;tOz-~Sxr!b~QOk8IcR% zP6>91MNaS)J@r+8fmEcujGImJ?Qa`bG+mv}QhlW4plU;1YuzCemY_u}FSEK@WXr!y z_-%M5S!n4YzSpX?8y6`jXe?(7b>dzeoiOL6;fIMcp2mi4k5zLPZ&fb;&tSx^$hc9! zcIJtRGktiN4!u7VtNKLkmP=Uv;osAg4s2OF=aGn#U6GH@B`93AkmpNuDKl+PS)y_E za?oOjl@Ef`uO2Jw5PxxKzGMQ6>(o_;Y7a+l%&buiSU5W>ah*L+!L4X3Y40y}3!^T4 zx|YbMBWloJc&XJuMn-O7hW`%Mi*Hwk9lUkhjp1FhjJs3K>CFy?TlGQ<*(c;$8?kGZ zoVJ?sou~HV)TiMyj_nqGCLp*~CO$`KNep|uz)`8viVxEb#QT)bByUm+U~k@jWrgN_ z^#u?59k@LLKV-?wUcoBwQoB)+r74BE`^*Zh+jj$87#W^U{aJE9rzkA;%1SZ)-Mwdd zXY9Xo);88FS#8mdyGiujr4+ zsYKbMo#!8%e|SisvuLqIPu}DH!#kJUvTypsZ+QDoWaT-n=q1UepLvtaHP3&S-BGgR zyyYw2S9Xs+%f#xezA5!`kLfzstY!L`b^q|MW}EhgE&<(}SJq3Kvu2Vp5x@ z_#F*?!P?qyCK4+aze%t?wfG6+pTn{D*48v-~!(z_@EpT5AA1FE{fY z)n_74&Iz6fl6LKk61XLGI6MC9=}7{XY(CfDna&c_zcMeWnsue@)UL#Gap{j*`L(BJ zh~}8T`ON+5h_|rkq59i9x0bIw{=w=G|M}m}yt`LCHEynPO$iH=zTa_blhmgT^Ny=1 zmZ|P|BCo=?;6m@p-EWmAXb8yI%}+fh;T>Gb!~HQnxSV-&`yc0$uGLe-=9kt77CLo& ztojvJl{BrAvvKw2!%L<;&65`AdXs#a>B_>a{HxO?7A?{|oPDytO>4tK=NV2WtBMM$ z?luMyueM7g>xgBeAgU((tFddxZ<5z<%(_dx4B8aVfCBU(8ic> zO?r8oMWj`U-n)H?Cqfvy8opO{Eo0JJ#bNq{!>d{BgckRkZJ!r(vlw2DSA3#-J^N9D z!dl%0QXO)vzF{vuI6V3w#c`4^mD{tRbI+>SqX&1^c;9?tR1+(>wdujE>J<_lyH)2G zzR+X5@k_D&Fqift#e3`Gp8EFQIdma=W|E~=`sF?jD?Y`vTbZAAzRW+uQyY?eB+jcx z^X}2TF3&U;cj?ctoSz=J@rke(d-$Rd8`hgvHlK#3j#VD3@ zo;_UnCnVvlOV1_ynRQynRF5b391jn3uW>!K`Q*05+m8jd+ZTwJ*BjpM{^Mo&UV3$3 zoYCLIlkdylF`n{1w7+oLY<7pE8`L&PSqh~7YJc77t6aS!b{fMrjw1VxPS(X<%x%hv z8MCK^x@uiNlv;7UQ4c?CF9^vI?iy@@{{{YhcUl?iCAKd;(`_qcX*_Se0HK+o!gyA^LRKv`TT?gE~DXOHM!CB&c%e3WLd87qy^iRa;DKd6jp| zCGFK}3OAKzc)OGPPmAK2nX8(vm)UVJE;zV$+Ig3xQs3~HnC)D=>U__57z<8)ZMI#_ zzu=G1g6&$_DkV#`1>Cj^sbspzJX!bjjaYM-n){JepW1SF@CAr}*5YxDP~kk`D#!73 z$>G2Nne{r{jiMDiEa7hE=X(AgU&R%&<%!jF=BU}KKl&S_7p?hdS{8IFKCs$d?L=Ec zz+v%I8z0YBioYnZN0NPOyUF23?zHrPr-pJ_G6#aL7|!nBxaX?VgTSv>s&jWQ5_*vs zw83l1a_J+hML!mtefWy;M14Tmx{q@8XL7DBt4h?<3)%P4Y}S;k&qSYbojLxfs(%I} z(|4o1N7i?WrvFRbDj0R-wWwkLj8KhY>9*w1^}^F*&scu_!SUQMSy;o_Kuhrc!#hPA zyNx|Ixv1k!Fc6RplBV2A181w%gIc8z@qB@^PBw*=@n>XvvaJI4Pd0(h6 z*rjnm;d9hip~GwSX_L+C?wD>rsieL%z z#hlTCf+u=Pva@rt8loOJL`VpHTOGQ{N`8OQgF`nG7ao2m!pbID(x`lZM z9B-U@cl+^`fNffDc&p7SHaC?k=w@ZdJmhPoI4bM|G82YAjzOC#P zZJ46O{Fv#-jIxgbBHJ%_oE8wvpLoT~G3@a)-gc9EW7)O~Q5(){HlGz-6t^Zo>-Xi2 zw%*SfrdTl81h^kLd*WIYE8CRCPqu92f5*kZysbIbPC@4dhovHai13Y5XHM~nZT)7q zSV8Y_nB8H2anWB6i%vA3SbtckO>CRctNYpxxe;k=!gE8{Dcz8n`IP&El3Zf2*_6W` zk6mB;3mj-?&}!VzEv>U*)eh}A`y=-cO_{YYHt>(jvHLwd3oo_!ynLs!~FL z7Jga$?ZLFIJ+t=fT@!UEU}KLqrrPw^4+6b^lgQ$UB7dO)fe5%Necea znR=5WHM_@a|EJ{3(uq8A)zcqWK54zP+pKc7QH{fQe*y75KRS*r`mwRb_=Hp5Dz069 zaSx~7Q|`Sl$ZT@-@UNEVzh(#98f$$$!Y{O+Ct2pMm*2%X`+4W@Sk!-{lxtZ^*wb$P z6{|k<&wO@MKIEg|2lu;wW=;Ea<#<$I^)dOzXG(`>gsyh8;+o=}r5bK9wSn!Z^6?|O zCv2qC?U;A0ejsSHHnr>8!v)8DxU#QoZBUx?;OTSwptDOCcOUb1Xx!kvWTr$)|05GXA26 z&2&P*M3F-+K57$;PR&+1we7Xnt&54m5&Sb3y3Ku(zs6mhNknA#$wTq)M7rG8p7>H8 zG-*}gth;-@>ZUYh8vknk=ooqTKtKTZ1(W_|=R>)s&OYmP*Cyhubc5#Sz%Sc7cwPIZ zg=WdDl3l!D`^KhaL9cDFAPT<5&Ak25p#6yI#FWZfkVLZbHr4{tf9To4k{!yzG{*s|$O(iuY$iGVjE zvX>(j3uSaN8J{rCjqdox+}>dq`%`%@7xRX*H8Z9&EcmT1%l5msLNkPk;n}N$A0Mf& zQaaeBC)>(=>fol{9Xzb}Ul~Y*h#K{q{Cn!58)6i^|BEF|LTLf8JHWL4*g78 zXve{HWly{4IVH)hAu1UDz)Y|%j$F2dE@qG_A-p)Gkyn3of*P%}_ z9+gTWd-u9sTD#hPy+O~yWBUuIC?All-N>lEbI#P8vaxy#4P;Dryvmc)(+)BHET(I^ zy7OK9YWLIMjnnQa6;?Dy?K$eKdbILLiCE~dO%rz8crWOz^U%0^f2Ug#TYQ^h)ZN5Z z?@}&a{SLv?=MCC9oF2*hFH87dFV1bb_+7B?`pP?}>NBS7@)n!pHoYZnj*qqey~jyy z$4j}Ny$aN>O|z8TRQZm#x#-oxw45`1LJMa+t~sW-nGgH$&{Nc zD7ITuBICeM`+~3M+PV59#KMx6c4wbTzTsTpa?JXX?3T^>kqs(m)0T4GPW>aC|w*Bd!q?YnoDOcY|>8o+K| z@m^?6Zsw(o=vC~8d9N*$(RTM}n*S<%wd*Q(_jb9cMpI5-g~q*Yyi>kPE!=k{(dFq) z^M0N~y+1a@24}~F7P5-C+_|u#k|93R@JGg7(}2TGw(12ErwlGBTApycp+52OiYvVO zNwZ?LYcBpWyYgAtv#Mp8-m?m~tzT0Yw;kz|h!Ns$U9u}cS10h{!XIZsb6P%h^@kiS z5Ye=7F!(DdEgf=omCcQsgN__K9RxDMCQrJppeP?9V<%YERmfwpcLPI>*k$w2JXg6A zHqW~E;+Im+BGpY{%$JX79q{4_Fn_pANNfH@$JrNazfF3?SZ1?Vy!;OD)MJ+x&9%5* z-l{8_D|~RlQAYWvAuGL%`c(vj54?=nUA6sL=%mJPnWa(N&m=l}>8P`s*$AFeoXwzF z9L6KBV?5;vH-D2^)5%%<7X@bbu4Vr{g}EeW#{-3@w}RwT`xGb7y}z<@_14UYqoG+3 z)ivkEI&jQ57INmGMp4ETXIJS~hE?lJc{%ooJ`>SBzhhngofYn1b)z0Jgs$P{=6Rdb z@cKW4(8jvSvOQM1D+4zLUdrz1Q}j!)m~G;9M$M{=cl{aX{1t!JN;P-=OAgR=broYd zHGhZEroS$-TLr_m{7BZfco+5R<2%#0zh`_p)T}7eRbQ~#`R$In*z{oC7!`%kUQ^yR zQ<+v5@>{NM>)!oY=QJ}O|4&d(^k$am;> zxW?1l?{v03VVa+|?q|Yd1Lw&lE5C{6>+N6)Fx~R-;_Be@Q#n)`7|hIm6-fL{lAPJ; zed18n)`Vx_CwH-&-Ydq=dS9>f1(W!G#Xmg0kpY|5HE@SV^ju=}X+FF-GW&|yF_(bq zkfonxmsvCZTimuwwBY=wzdo@ZOA;TL3v6pRRg^ybzyOQaNM889m zUY%-h6P$3TOJ?RqnciL>9~rlcJQX(a9j%*XeV(lPytAmIZ00@JmwV5gn5J|&xwQ5_ zgTb7vS%=e4-F$yU>qbcQROc0rS=#CoA2B?7H}jTAZRbZukLhKneVt>cpIG~!A)@2$ znMItXPvlom31vOHv;P3&cezXM83CyeV&Wyz1ofhHx}z96pImY>ope?r^Pz<1LB+66 zxueG?zG=CZ+Q8lQW>=kfq1-tM?!eRw-QG)<^KlE#UT`x!i!S?On%??^VXwxU)=c$_Q-n`QKl#-4s*-U*_Ueg$muPkGcGBH^ z)@^d0*@37H&Y3e7a`gtCd)mLUPvXr()3Xatb(k2s?3QMBC=-lqoUqoxw^{kbxhjjSiMfUfYU+Rs5KzsvF;8f^{@u6@H&qNvfdvSTvbhZ za-zoIhrtC!2ftI%--VZ|t`0Xp@q6lG(NNx2-=@a7?ST*3+?jSAy)pNIPutlmtS=b& zmaYg)*KTddjQ+Y$RpreeF0VO(`=YagKP_4u(6}Xly-r!8tA*7sjxX!QXO=jo!~=Q( ztBY2Zaxr`L=J-z(*%-zZ1zq&r|OWJld zi-UW9;jFXM??mzbp0;?KXq*B6>cDII_CpFv!@|469sp`ShCom-#%Qx+HCzQP^e%&Im&dggzI!s5)k8xPGE z@n+sV^^VRlhLZh{lDhaRZQWO_%USRCh_SIu|3%M~n>h=2)-g1&i&~VeT3ayj)b*{7 z8%1PWEcA`VQbX0fw#J2i2(eqB$NS;(7nfrU9J+70^tcKqGoP5&c<;tq;p+U&7hMfD z7%Mt_b%_&8VUVwGDS3N2OD?M0D_21O3XAsXGQQ0sGc*P2ihoaMk6An85i8$C2BusM zo`sH#UCpjdrv&$O+~`=Oq|x(mhq}P7ee)6@2?d#k{#`etbfK3`==GZ#8Vnk&x%&!! zG^_|@JJ|9yQ2I({waj0Kc=j@D_qG3)=4@PBa>6#T+hH%e`o`z`9=B>q?LJ!iB+)K% zp?JYtCUtJk=swd&0#7$fJ1GQAPJJ`Im-VdLEBj?BtOmlIbE<3%zPY4kh<;+J7Vhb) zU^&dROm^$hU9B-WytBi*Ltb6IYEr)8ZLq^RSB6Z@HsipMhAncJPCi;|xHiO$QL-e! z;^?|XDauC^qcXIYGkdvhdOCs2-7GwRztHMQ2}&I~+-av*T;SkN6fsZGzTS2CZz1c3 z$r}oymqzWb(K_Jk_(Eh&VuXR~oGLGoTjoXz()}LX%!zwAY9dd{@LbyHAztcaTj8`l z>1a~e=LLR$3}id!Nu-=@_~X?T7qMt^-eli)mF2we!=^NxNR8f{ndfnT!s+ix^Xw7} zypDP&7Ks!uK4NA3?t>(Q*6>Xx*icL}Yx;@@eR5LG z8|J)Cj9gimnx%B}ypMPEd1H;75?589TpPb*%^O)^->{LT*Vvq!nluRoaj`DfYO zdfvRWJ=Y(co%=52%$;sebH(ER=l_aZzPG(vu;AD9;Ir>SH7_Mut!vVBHQ+z^yKU7f zEw&m%w#Flt%*PFS%x-sIHYt~2PHl~Q)S#;o{Vk5W@}_>mv?KhVZ^^8iS{@>{L0jRY zTkxjS9ZgI-G?z$d&Uu|zQgb3thB<`PB9~jN7N&;$fR`x?_%V=|aAT zUykl%&nx^~FVyDpP(*thkI(8{{eySvHXmsHV%@_t?P`sPxMuK~RraZW&tAB3_WmnH z*_#S=4;C=p^w!ppQRDw@@OG8HS<-+PWeiS7xVUm&M#cv!dg;FC567KZX?vTNNfPG2dzcaw?f+|;E%J1@>pVGmg1 z_T!t|qG_k5%;Hx$e&e#^&DbE-;`X3VPs|oOzq)S5b3C^0K-k%qXqG_!Kzr?iNcBmr za_uv&Eah+%ztrF_%CUQ+xkJ?!f030P(_xAN$bS$kG`v2%TQ;_PBxo7dX5 zOEYZNC2J4X)(HWZ|1i9H72mBJ!Xt8GmFU?WZ4Ft)dH)1AypVBwSHPVszTwoTSvMpT zq(7P1_I@zvS@GKYRT-Ds#BZl_%o`Lnv)tabZscn-*r{|Yf74TT0Z%tqHnww`d(EVj z4S45V(LOu*{ShVuhRhJ{8!vCpd;Dwqser{vVWr)xS8;i)tZ2x4bZBB=a)3)ML+cEq z>+DK1gf=Motz=O8oNJXOxl$;4%jK+0^Oi?8ISVe$Wj(;@cw%>7>h!#Kq3K+=9vk&6 zVY|irpy|H0fuAnZ(&Y{3Lj*Y=g(&b;D)K(GIkdbs;CjT;~R5#}Q7F&O8(GHg1l0kfD~ zG2Hf_;mBR7<`3t$7#=^9`*cObDhZv0MxWSIHc1>(c_AO;RQZ;@x%?{c+_S%@XI3nF z|D84Jv8l%4^gveC@(z)8sc8{g+v2|2B|Dc@c6NuqGnL#_6o170%RR+=|H8z}zRHWt ze%RKP@H6ewIaB@aBSEictUIw^?xf+|{|r3gJ6=DkWPhOeo&B(JTS}JXo@*SYyx+M_ zl-};h7D%`H%xRS2m@j@`=+aW7o?nTNgb$rDje8JcJYoNqytS=7?B`cJJ1Qa5d^*^8 z_2T9Q9F;$rbTfHn#o1n#9Nt!5GyBJ1H(#%vT{&fUwU6>jw)n1jz$Wq{h9hc9)&r(5 z8?I~Q%f;@F_^vT8dC!#Uym*!gpVqGK=Hq@PxIOG;Nw5fa$$pn})e$=EPE#aaabGZM zS$|&tOqkF$E}K0LiW=Qc^JU$g+q|^?hHf~u@o4gUl`^fA&5GAPcFtVd$z{AROTbDj z%4Z9=>&BCLj!HWY+Ay^r?i1!K=`;*UUFL8}z3Y)}fYqv1r|i#Y$$2uTGlhJKQ$BH( zHMO)?N%_fi6Ar!TDK=ahqbj zedmH*E?+gPiapMANP9VNrlZ3pDT{`n*p)jkCOYJEtP11UQ#+;GTQH?&o5r-3UAHQ&GENZ4+4^!r*4Bs@r9CYb25yVWLj9I|yfmF2-tvzp zxw@nl2O8G=9Au#;DRoVAM6w5%5EJH z2;HsoDTniI^olD2++7^pd(}Sj-4YgSeaoVf886^0Zp4(Ab?Mm3sMZa+51VWns%KV*$|zP8@aGl=eC5Ig1pAvGSyv&d^@J|M%sKhB6J|>rR&p; zJUPiW8(mk32y46OPwmK%66g;7wtyozIG2kn@cP?X%CnQMv|r3JoUe{$_{%{hYI zkAC;ZM>-t(_F{?_yT^w;XKe0-etX-ucAJ4$frx;jLt9_M4h7~zk_;bqb#~~U;g;ER zJo(3?ux)o1`k3ztJ^gaml=2;JKeKoG@jA(+CKh+xv+hq-zf*Q5^?u;3jZ)hZ@4YN7 znDFL`+Kzt@4W>SAj<{~{?9Lf4NoAYuMc2=s+IDlot7pmVJCxlvvfZ1Z_4rl3c+gT~ z-FS+QqorrtTymS*d(2Tn6R^wM8*>PM-yd;(f***jw9%{g{qdPV!c zV_MN1JAbZ7eVcT_`w`QDEp}-!B>}zPrFasSPPu$UNiStxQP{N*lLxWg3{x^X9&^la zS>mJWSbad)_WnnWLvzw5R=Br#+xj@iHh3Ie6IdL$;&_POg6481*5HY5o7|R8S~QtC zGNkXci;?z;l?NkFCe6w3FlJM_V(Pq*{jyf}#fHF#IyL4;!mp}%@&IEwXPQ`;FoVz|?Wqn$ktgn&IID_>SXdT1 zRwl^?@i}mxSY^K3$4{WF_UBrUh%R-Z?nm2uM84d-wOOR()XDhWHHS;|97SFK!{ z!ZU%9FDQ6|Ut)lVfI-6pxmJm(dtSsU^-cWn?sAI$^2Ls?K83A~zT%)v2<++U5u-?Y6hdG;{i zXxSl+n+D}#uhuOt`}xZ3bV1hnJNr#%w;lS~@^n=Lw|(#&joxOy*Y-ufTx=YiLPL)m z`>ES^-0iwwuv+Sw*4A~)bRRuESZH`n=rJdoeaeBAftUN9i&nQzO4_o+PT_}7jIsBg zkF0swb`NA$u8r*2bzI!`{t;{G=Q}L&>k{kFdY7NR!}RdTrqzKmW@q{jXNdjooi@qV z;>d{upY50< zr~cuRyPeTe6xS+L_Uw)LrlW0~x(%wv5*ZuL`|jwB^fYORsJysNFJ*~VuBxqRt-vgy z&P=my(dy1jt~*~&$k*3bTC-4kYr(}+Gu_%xesI6T*R^)RfdgeX_b3T1(re(ZT41s0 zyWI5Y8xHPp=+51_g6%@HmrU4CyMOI-Z5OV36ZCO1Q?TSJ28N5GW$9ww6I@n?D(FNU z;1cHGYciJnaCI^}hmM)fA@>%(S*|DbrgC2Pd;ITU(A5j;j`bbhk#bduWqYcnqS?=^ zZO2XIL{D@S1VjkD&HR+uShTA8jK?vT51c7h{xVmeNwcn#JiOkK-z07tze+?3Pu>gB z7p<3;a<^>vYrAcidc0HDb+y&%ErsbtOBqIXY;)V>E=Nz(&}eILTfzL|nclL5@LK((_aA#hv$}N7D=pd48nrgzcW~6k zj+Va*x~4yHvu<;Z{^3=@sAJ{f(7HO<>Aco-o~E}MP5Lu8Uk|i?k>#9W8LjnHd&lA6 zgKQcFylXE9Tzb>&62I+ZUtRLmD3PrVIoe%4NB9m}Z9FaK#l2{um@eak*{LKSvvb!{N>6!A&E(u zJ!hPrMZ1|6eVz7qGdT z{KtuL$KkL$C8qlyX*_(y(|YY@;j_>c>*CV)|7?ravrF5Zz_hEbft=DeoZ7p@xcv4*2*Bzz&?Mh_T z+kd$-F%ItD+F$A)^v~h)h>vxOT>5SOmGBH{5!Itli!0afOkmu@dq_I^!s74Dtv44O zUozE-d%5t@JDOoqIm>G1RQF{ZIu>QH^LD7V#ghQ#=kH7mD-C9bo?_Z|F?5>(V^8Ds zhDFQ6!#gKU)0<+tHZ8vwl4X)( za_xn$=*}z27q!bwtN9fEc9$oy@9@4n?YHg%1+z7x<|SM=o!)ax87yC5bZnM?YU7r$F!nW( zeB2uQ1YSM8wl=oW;00GvS69vyan4-}mvCvVJ8;N7&+vlM44Hnd_s>3O8oTmdn((E# zXy3wSRn77+&!^>b0ou+}xUT-H@5pcR;n3M4qY>>VSIA&2^VPMTm-ohk=jtg_n!4r9 zrfy#2aK}PxwbX?RFHh#{EH4dh^~-T9n8v-z&02M>Ls@szRw+9&dUe$kpts*`w?5^z|nW#;2R^+bx|`*wk6}B80hYvi5tEsP7%DaoH>G zO!9oPz#`}p)0!u1WD=h(TG6oZ_M#nEu5H(w$8oM{(`AV)1_#bKq;6^|ZV% zHtrJXO;5M07P%;IEf-u^J!3*|`WcQjkB@L`P6;dK(Q#f`rtx^j$>jp!&rIk3ocbfH z^7x&s)0(F91J>qFzg%=^=S8-yM^tqqI*Rw)acw=a#m%7PKSPK1VV=AVu1h!QZPYVp zpHY)0yxR82>W59ug2G$s1Gk6&Te>Xu?e3e>Vq2UF_jl;t@jTowAQxh>lI?8Rp>@6xTG6$Km2n0k|6BKtqXk;L^g7k?~q&d7anTI*`x z3;R;Ggyc}*stb6TZa_aRQ+D}@WY$T;>!*RA58cYt<-z(z`u^L z>eP#WoW4%Z4Zp$T9Qk1W&mi@UyARhYve-y?L@X0L%f7l>*C9;R_o|L*_r9gP>Dx#Xe=x=x1#_;5juj?|})!^8^ty ztu20dp5|pQwRIWKry6oyIHVxU811nqA#CabNd}h(9w}YH zQ@F$ztbQ01vbAVem)qU@ej$0Hs;6GmJke0yGPy8h#lqm21Up7`ldBvKS1s?T9#8t> zQFoD>F@`(UhT&mi)}mFNQ_nKB#tP2r;!fJ&P~NovOt<&O6xJn28}&uRxp|X!xrj3# z5KSq%=XL49w#l})46bPhL_Pk`ko4=>jBV4SrJg)vJhx!YL0L)J$eS86m$_y(Hz?fj zJ5u=R>Y-cD%VasvB;U_A=us09U!yPXBe0-oLGg`4c8pqDbyIS7ZIx@OZ0IgK^OZSE z@Zw?C2FBDVS*DG5yCNpDhxW5w-;%1hpQua#yW6wxFEF{76d1wd6zJ_MG*yQ(cj~Gj;~!-ZMvk zwRY$DL`r&aulTm7jsKac)_1e>pT$<)alFbUR&#W{(DQN)eHNq5?4^gc8(I5uPmPwj zleBKl5vR@E^(&n%TDCq**tGiy!-e}r(;n^G<2I+U=d875M|OaBTwbL8n?q}#Jx-gJ zCQv9X8scN}tU&e3El0%}=a%hUIp=ht#)*xmCDr(4y~KYtY1G}|I{RbCQm(@yQ8Vt^ zy1F~+Klwa!s;|I&Qx4JZ3>!XMu9H+zR)1tHXud*b)qjTi6^!Xu*>BIk!nb_3{yqDk zsR2(G{L%``y`LAqbJY*Y)ETRqT6Nr~*?;DdJT7ptIg*{fBV>ZuVU-ol&Pm=YxR2I7 z(ptMKjfr0{-1|V?q7>n!DK#>7<*aQdmv9w(FS>JKh0Tvm`nT?`*Dml(+_Ly;tbM>? zKBjG7OMd5Bn3!~a%du_d*rYeJykgd8(Mtz5KjBqBDX;i+>v8ehX1P<80uP+zV_e%P zey?2TMbQPDR~FlsI=+olU0cHxtJ$tJ|5=3KZq;SUAzf=JvUZ!6q$|hO2ihkD<)&`iWaqRgfOXOZ3x!)B z^iF&zSfIpxUqQA#MY|(y+R=S3*KT<`v|5F;>UtR5;1Y~Frf7EO9Jl1rhGspXgCcho za!N~+RmB=+?2Phx6!1VV{9?$i7s+8e#To(+<{pL8c1XgpCPL5aw1vMevEZAdsl1r2#48blQw^dzj0tbgEpEJ;5Ie;}zjxP_ z>=d>qMT?yhb{$(upT|9s(Zn3G&zr}g~84A{1?=KJy<*R@9NYm*Vd(DCDg9b9Ch1ZWgxU3kv zA^g~OBb{RLInVDsePeSfbmFHw+UM2p1Q^e_78N~>F@I-Lbbo3^>p*#GWl>Fsr@^ho`q@K&se*A$8mwXSD1Jv9PVxwZjt!e zZ0s?sBh>d*dY*P-YF-|b35&#~W(WNreK-7$T(ODEUi9Fsa>%jiHf)brRbuQEcQ9G6 z^*-AW^#0k?NG=VomF3C}k$bWd_gn0;xqm9(O<~gKi(eTT+K#w$}YFOD|qJTXm!SjZPKiO=QF)5J}K*$da-`;kXr4uhsWf~u{Bl` za@E2e)`x~%);lum#O*0Po5Iy3VsQPXsU8S>~|g39CC-&dq0PI^IGVlG&=Kw2x15__~itkMYX( zh@@pr2ZDG{aVEWp{_W|R-MC9vXj5o*;>V*-YZO*%1&h7RNqb=E<5{`dF!p{$ivNQx z=d?E@y$RPYQw`0X%e%w!>0(%Zc*3J2 zE}K4Y^-vYfJbO;SZ)HpqqwB_lF0xUUI9&510h zX2h7d9gvn`c%O7R_*>GeDduu%dCkq*X}+IUv=hP-G(4_$>`@*?GJ9fF1+0!!BWh^ zrMV+Pmr0+&VPX4>lc6V=CpA1(LHJkWUBp4S|n<`^Nu9dnf};!%@;Y1^$W3mrGqo~z0E ze2#Z%Zrf2g*J|lfo&!Gop98%l+QnH`nFR0)yy|oNUckbAFlt)If&~XEdRHu)a@Jck z@D*Pe&yw}Cb~{-x2CZB7I7%aKRqCwk#WLxp@~0lLXiW`zB3;!bdSCGRjId;ObFCm_ z!?vAgxU)?qE=@bo{O5qEThungrSYGojL%<5)a^+Rj5Gh;k{j`k>67#1cTd@Ro+W4( zM`sJ1|J`S?Ok?J8%PXIscY1e!a5C?h-evw#=8Q2%>-CN)0jp>CNqTip!q$i9gaStLVCS*7Z?n{v6*shPhGw zrE(?VA7y1iQftbkzTbb~m~*dC@#sIP$z1&`Yd2ivoyz;@^PObo&(b1do8C@U@VwUP z-5~BNc7-)s;?QZ4&z4CWy$@+@c)NL;>GNqDwIrUd@O#@TS6eP?(3W|qu(tP0Wy@OL zDf;htvvhVi-&w$A8dt-z-u|Ft-Dln|4d?0WjrRPS7F#6h6wWdCka;fqn?>DEDkXzk zMWye^xyox49OR0zbN{D!x5;#sjoR$a)4Hs#W?a*D$VQ*h(^pV#=aHSJRxy3)tV2^Y zCZ}F9Z(Ka9LCH9fwVU_GDlrBlC9krjiKiG6TupRExLMb!eliZxWaQ~^*1dQpLF9n> zW`m@bjjCI?&ny$GI6RAQlK7N}o4!#cOzQao2MY`Ojy$%RX{VIJ?;v<#hhWwm<+;wq z@|)NgWEM2M3_h}!W1Fbwojq=+1Xl0(!olpZ@P`v;bHb9eiHXimGd6U*x>&NoH{igm z*ADKwmC0#R(n(0jZdrDOMeNGS6j=wy)z?%7<}508DEKgqW8%Mn^Wo+RoCkLFs#z>z z?R-8b;AN6bPH)4$Q?_UFm>03cb6J#3n9n1^wcRw8y{zEq^)v0J+gp`3T@q|b+I}~B ztILPzCWTwU+KtUhhi!MaX-6+$Ki9NhucIVeFN--$Q+7+t4!djjS=N5ow%SPBoa44O zb1l=#iqOPKHy3^4Tf=%Wch1rn_Ep=MG~5`NN_Pf_#4HG0cfn@$JJYs|OG|Q0c5LsN zxIm2S_8N8vu{gc&0Wae&Z^~+Sj4XP5nsMvQP#)cvh0ez+6(V=d+;(+w>3kmJj)${8 zNHMSQ&n(kncS&!1@t*n$}I8t;WKcHCH%E%rRtC3fl4h+sbWg5c;awLo z)Ag_SjK9Zy4GedGoS`Znyfy#c<2CXsi_f14=nQ$%VROtxAn5*;jMV{0PZ+FD<4ee| zoSql*;mosQ{pD|VX0}D>el&ah&h)|lS0dh9pC!h>iizTro6ST*N^G`=+T%g;!we4d!#7z(_&At-l$h^INI0G z4BpO~m7f@1#IL*})M=@gRkm^r&(H3qo10oCwT`d*8hB(Sb3m8yhO@k}mz2CZdx|IZ zEQ?^u6+3h~De&!7iCAXe8>^jp=e(XMmZ!6zl}l-@Xz1=Gg3KOFf! znIpI^gfE=e^x{e67JtJ8w}W%Vr@glbOnt=ZCH|#lxpJ{+!jiL-jwe}vDrA1W`we62 zvzK-4yMtdV&0vr_%s%0f(AD4022%wY$`>iTS}h|cvd3KEN!+T1YckGhT&`iZ7qe}< zbn)rSg{2O9?P2*W`f8p9%ht4QtY8w^DzeZiuPMAlc7r2lYg5UxLrzLhIek0BSq%(= zD;T)8n28-cxn_lL@QLnEDjO$W-16nJ>#t-!msNh6VYVF1PF0y3A_F4C{z-A&jeEzs zNogvBOp5na!LvHv8Jv@DpOAj?l)oYTsEpf%kjjjwQhkikTx*+FSMa^*&$QEZ42@8g zSvTkKnQ-qChCL0Z&xRj%WW8O%5OqrXoruxLr)g3Gt?A;Yr8>@?vhB>Bx5wZgOSFbo zQ-EQ?!=s11#Vd{VMbl+j*Ncl(urAf&;|SlJWxgdNtwG$3BOy1-+UTgALL$4u3MS@? zATj5tG_D(ZT~VrM1G2PP8RBy$%sm_d!+--6_RE zD}CmC3}p!5xq6)8x|3Mz)ldgB@v5(^n)-LlR^7ULg=;lO(Q(5?9Cgcd_kI>Jc{h2- z$=CZHPc9D2dYr9mur&OY?%AE!jdf?~7j%8yky-mF?!)6NsvLig>hx)yOXigiI<0et zS+MBL7L}FUtKVh2?7FjV<@DK&ZY!rmOe~#o<+>^BOBt=pYmPg8INeQ_=_ov}wjzi8^SjdJ`~*e$-wY)P)Tvf`k>#Sx*`B40V;OWZzf%6-zf-C~AP zsa}jjf19qj*4lTxU!Pekq|9=jk=d?doD}uz2luevjF?N{wHY_H-)@2u6BJI8xrv|(_BnT4V8ZDsNBnvWc7`79H<-LKVm+|?9w zdR(BqMy%r6Jzn_&AEAT1zt7ZFFa6J;eWgIksk?pWCOwg<6}x1AtS^|oY3n}zkjwj) z{(2hAw54HYqRyc_(gq@!hX9y>fxEN^FasienJdjIawPmPa?;m@@O>skzJj7vJQR zuy7W5nzFSAGGj2&D(TLhPDinDKt zxM6xgytC@uT*H%Aos(1quXXqIIxwy9W|(k5BXYiky0*TKH+o4Ws_#sfZb8us;fiH&Y0a;@xhCOV>hoxz}t0+_5GJ4zHnv)=t$%z zg)T^_GQKOVm>^>9$h<{sBbz~#GOMsdK#I)GiN2kjjW-i^nKZ89UbWT4V9k4>FJ1b6 z7SnUu!Z}v$?fB~&cV!LRkwYAxgF7P~?S6h?by()Tb(!U>DGF{MQ_|+;cDsK~7Ub!4 z_BeJ;>;6n*&W1HdS2e6*RN&Y2H(TZ9prg^tu~hUNp;L{&12CO2z_^^|I5nhCgTW_IN*SKYw1a^u#;k$jJ}Pqetl z@itE>mc4v9h-(e+DltjNM|{Z=7uRGQ*s-|#qmE0+!GbxMRVpjEsnk(rx&ckY?mP8`_lJ}%U7SQfS)U} z7WipN>@~YBAZD~>k$7A2`Ja7O_A5f&7A;u%olX43zQku0P0xL-rmpz7LT94*6|IL` zr)BM}Ik18yV3ocgV^Y1)c1w#!ua@Kef18vi9DBU%t3+v&(UR-OVw_!!@i}$ZF>%>%vd>R`t%j7 zr8Q^N>rzh!avwChxS~b=b+Om^GrL|qTC}|*PxFq~s_PwB;;-aHPK#1V3)<8nxz^x$ z{EpHq779mr>>I9}wOVM%x4>C*=9+)v0?B{8x^^{2$$pj6>Ah_rD=3i1^lq;F8D$OK zVBUp$4$1I+G=34R{MSifsTBVeGeMb^8V6>6iVqzBt~X1+ONDhvRk+#*oO_)uleZ&Yu(#mCtG0=P-`w;?wl;3qRr%q_lk1TV zrkM^!oU=4HJ>9*DuW_rFp^k^rnqwCZMzX4>S+ccm(DLie)w*kWoWpQoj;g^VDLpBX zjzWC#+W0awoYe7L&R5EX=nGS3D)LfFCU0rvG9*u zbS#C*(lvnNo4>WkzQVQxx-1+fxAx2xy1Y`*qP{HTTi@F+j2Br9L|N9oP4J%D)VCnl zE;fSk+3jN*5mRoczHrI>nEuN4L7Df{iV!v3@M)p*pEOK3)_BS=;h@}!8kW|4hQ%h4 zlUTJjtYW%-W43SOqofGlJ(C}GZ0wTcc&B%`!BO&vV79kQUfi`^7a#R<@7?B{ds1o< ze_O|sLyfYncOEeLteqFuZg|6HRhT%(!RW|VX5El&-ZE=>b!Q14myl#-Zg<|u=E$@y zc#5OyBJNF(ZpR7SjBc$~E7*R|>sb5>wm+BVU0K0(BAW5r4}mRARS((x8K7%iBdbeMs`QhW7W$-CSdB8_Js zhzJ_DNG}u740Tvw9If$Y$%a_r^6tzf8Ll&~UJx#0YC1e6+Npb5?=~(i@1%wWQ$m~_ zvYoRX6gEWYu9z;_^z4a(YtyQ&Sw1008djNcZLxNCeRxixw&sDDa(KqV3vxH}ix?KN z_A%EnNicaGjGfpRyPSQ-(ccWLw_aS>`+kLj= zvDNlPSHt@pn~vRnrFUb0x}ll=8kgISQXl_ZalNOyBGH-Wz_#GX<1AXz>mDu)t+`_w z&bA;kXJypF^LJKky|<|GmwU{L)2B1DRBZk;*s0a849Hr;aXP&4N=|XmuQkV-=Xg8) zoE`k1VX|V(qqtaN0cL%)}g zTh;dXvm7z~v17GBO5+_P)j}DSO2xm95z*Oyz1AGDFXNCDvY5xqdYtpjxurZDrcJNJ zj)e3J-bb675&w)?~u3C)?4d)ahuF|~3W zirE&c6RO9c6KJWfYq0Fvfe=APp^Ttc@pc7*D;u^j6s+QqywaW6yG$TLSzGz2z||Ip z?Hy})g;t+&*qCgxfVHgeTA&4M#5J+S9!o?GC&r)N;4)dY*J`4du%Ks|)OU_Wp9)xu z9=+MJ{CMfv*=c9pqk@*bWZtzSmhr~UT=uzrZ$1~zVLK<7H0RMvbDbk@O{&%lC+!Wm zo?x*>`_$ENeimWtZBrgv=(%?ri$v`3I;MP1aMN^d(NL$nbt`(0I_}nHUS448?d@Rc zl*l}{F+gW~xkJnpEA4qJ@(MK)IoSkeI>g8LEHjZ>!nQ&u!_0e|09Wo(T^*KW&O~cp zJ|DH5rHd4pcX`WvI&gMQOXwo&qHC-Qi)Ms=IO?E!#wYrKB41k{dkK@2!}Y@@zHF?L zYd(3rsp?Byz2j@<;SK|)o~gIy1SCm4Q9Z2m?v~T%qvCIKntK%#ojG_6g|@A^9MR3d zuxH;9z7`gd?o+GoYI86vewe1)z_q}|T*_#YUHu;{p}-mO!GGFM(}haHgMdb(oS zvIW9NPu9AvXm@rx)}>I|>&AMzLU2LG*9VQ9R}Pr{b=OX~x1(X*!`07>7Vye(yqmO) zaYomZ^?#2BkZp`SKApLXt zJ8|DvB4V$s^bJ(s%=pn8>ML_dX=aVjjmtLq)1I!$7Qd4|vF0G_v{(6R+MV-CCn;Sy ze@5W^l|8FBm6%k{{O~M%{<8q{0GD$Mi)`<(WNnm8H#)z>?D@Nd>DP@KV$RR+On9>H zso?8<$?VZeQPW@a@z3;^?s(4Q^Jra7-Q&GZWs?q4vKOPg4XhuDD+FpP{hD-&5L=)rTjB zOT+rRU;K)Y^MYKjF4z|{Uc1%!zQCDBJoEA6A1z6}OV@vv2vB>;6#95}(!Yhyj9Z?+ zQe>+z>~fI38^2=JxwDb4&K}R=l2)G-c4KLe(6)OACUm}B=KEq#jr04rjA9!S;?>@T zZP7Z&k$O03oBn`Iez14ALQWJ66V=TT@uylgt zi6&L0#8Ymrf=n}3XbLC=MRf`yU*gOjtdwz9k|IjY0~N`%Qu`_ z%Chd`^@Q8;d9DIFtGr!4E@f^z+S(S>a+|{{X6aO+R0TUdDTd%!>7bom(`IF?JH*7; z6z|h8cg)U6Oew%x;j{Gw<=abrOs2=Yx#-o-mfGnydjc2=ju=Eoc(jT3<~`^;vG_r7W7wHRvR4cuUM*_#D`>D-a(1gsK~@L% z)iNj5Y3jTSy>{kxPS$I?y}|Ij3X|fyo8lUAK8qF!s4-l+ac1z&{T zu^d`@fo+5CxwpEBtlz`7Ni%3On5?>-;c%|W&GAX>6lQ17#WS|WGH@g`X6N=Cu}k0$ ziY%FH(z@1QE02I;&I}PT??l(A(rE5y2ctY4y>5u|P7x0j69iL zq!`zx|2*sO6}howQg=kz!lf}OOw;qiO_{P5B)IT2h8~UBwjtk4WV0AYbi)Sboh~M) zI2O8IICZO|ff zcQ%yH?&S+NoV+1xm1u9a^ci*C>OwZ{`a5cR-)H*litN6UwmANo^+NCOTqgS#immYBz1N&M^TF0Re(U(7k@XP4IboynDV)NY?qoNz|tp8XY9jq7I|PrY0B zU7CN*&)!YCr*(|o6pW87c_K66;xzk>J7>!t<$Kh;xwBd42fI#m|ya@J7cd!*Ex-8Q-5?v z+Dg={tLvZ9xgy}W{?_f^MO3>ZcXpmwS*6VJ?&$to2fuCVDmj&TG}&lPfIZ8Z{Cplo z2b-|eSw^mV%|6B);hMJV<@*k0W!~1#j=%4fECQ_MwAVcp zpT_iZoz8jbrtX~PCxxYV?|59Zl?o~dTq6B*#Uqx05^0StF$JB6cS@$5`pCR%;exx< zITqxcR*4Z=wPKZCz;iWj?nR*rD%%z{bO^1n@2HqecUQ8Rqe0Kq&|6&Z&QA1k zmI&oA>sZqwmmPDPIh}Fmjga`|3iq|zilrqNNbYmME8sA(!& zZgw8fx?0PkvryeN>rmIEX)g^JGDIS0aR*M7xhAAI+eM%>mOO@qoLCvKU8N{v zZGtXq+rp?&u1qb5ja5rTn{KgiAKkR`xae|DZp{XU3mlRgw9ZBbD#T2?s>~^>#T90u z7^c%3Q~mE$b9r-^ZmZO?!#CF*i4t$sRr`@|5WCJS(2Zx?8jh#C4oXOH?em#p?)4zL z=#F~qDwQ&Zwk|&(9m7mPwn^&(w6m7%IrUS*WeNwAkOZ@biJNS*kVKS}%*6$+XE;NP z7ce*kI!?QNCMCH+A?=R!=^4$F1T^&-GneObKT6wn_P|q<)C>AE?uq6uC@GM$?7Ov^ zb?Ms|Qw+LU10OxFK9gb<{9}sqgTiOA5eCm^=(?-&FgmWe!lLu;jCb7Awd**&9V`}w z$8PQF)6Y*gY&iF0Mec|8S1EgDeC$vPIl6s9598sQLqFrzchvn`WvZe5qxY0|g6OA@ ze5?77mR+bC~zve+J&t8P7z%%luO;YZiL>I`D8+p@@sp=bF>XxutiG zoSo~{x_5p-^y1eu&VJU7`Ml$4R$*^-U%O9sQ}_Bn*N<{by_3G*v0i2C9sNo~V%zGV zXX=+Nv;v-`T}!`d_|Kk4<-?R$631eySM+hFZp}HB_%D^?3WM{s$Q36yiwa)7uy678 zj2l0T<)=+>!tO zYS)Db&!Zx^Y|#g@t>SxTh7nI%ck!any;Y_3_eeI!A-| z8{Q1Hog@;lujfa@JF}|{PntGo@+41je%SPYwL4+qxo)F(;wu(US-R*2bLn-%n_{Qg z++A-QCWNLfe$y1nc(mSBy^~%HzRbt(fNrHh9$}73=PkdB`kC;la>`- zQ+gkBydYj;#y45V9oGeIS>3m;`fR*1@@JdL&m+bFwCc`$6dO z9n8`%r)n1++Vk>}sEpi$3CHSZuxvczZy=P~m{_?t*4cSxWlcrW>-3zXdrr@d-9@!HMa!ZZF}lD#iDO&-6H+3y7isGk62|-zq!6oQ7f?Kz+RF3Gb)c( z*c@6ex8TNiL$^L-O>x7BhNRRpCPyBvKbW{?^6?p^>b%Yp9`9`Z54I<&CMeF^yJ6O^ z?-F4fO`aK?5P0K0x$vSy_ecE;SM3T7FV1NWT)k0do|u}on|#b6Ifmd}-v1J|XWjbp z$?K}P-_xr*8`G@HHP|E^Bp!Xb!*HoM@x>XVGde25X7Tf%F^EK-GFx!(tL_J_liaDH zy@kua%QdWGo0=J++OFrA)EWKi$APXVtZhd$!eSQf+18cArt8A#adjE@P9-fyZXpHd zRF+gVKFO=>#d=_ zbKbJ)VQQi&my~@{61lZq8J;!G{ui4N6B?n@6>!Vhqg`Rq>6?4<*)1fVByDaGsx-}5 zIc?s8$mk_+4K^*-n%5bXw$Pa2zJm#8M-GFIxY<{ZwW1f( z-li=+*|pbkSG$sP7t>_k2X|7e&Hg+(n9!S2ALx^GL~UwT`(eko%_oE|&zXMAu(dtL z#k;v^N@LSQ&4L4xD~gw0*s^_U9Cxcih&5Yx*ioJ--_NA~_Hl0wQLoUD`)+Kx=!I$I zQh^6YeaylVf;n?8_g^f$C6h9}^+dX!s{4^?9|F4TRIgroZE#mIK8JsAj#MmTNAS{J zAqQV5+$?&v|Bb_ryW;CRj( zeZ{ME`!jo+Ywl!=9hW%6+*+?=uFCGBEncS|5HYgNWgxP9<+1evVv1|dU3_}(lMCOCfcJOS@JpUiN;{wTI6EzA zt@l2wHm+dHGkXt9uJ57x#eW=rYx% zM~%KWGsr#eZx2YEbC{pA-B`!y`eWmk$^C*mJNINu9MfN6k@axzqpt?+Cgrk|6U(nD z{wffkdpzht;&Y)V9Q?DDyu|iMsGhtM=YPjl*RWFckI2R~mfAmh%3QsgVnshPyss4T z|0=gv>@CBuWGlr*d-)7|4l)MjaAm#pzJF&$*{TwC^?y!BEFNg(EXnbIEYNa0-@)jz z$u*b5k?&%jEZj4#D~?Ce>FUe2@>?@?Gz2Ct(VcD3%TYFKzT>5~Q;rLT+Ez5Z(>fx% zML9H8smEx=jEUObrnxH=RGC=Xo@c)eXwq6VD@IyWU(X?jPdMQa(^OTnuE_oeZgE>U zy%<`A6{d)6P}uFO$mnrnGFyn2smP|oWwRtjqBosL7US|QTJ?rIpy9ems2CS#Xx_2F zh=v7nIvbiEXuOPH)A-?fg4SwH52=iUr2-SeQ&^Z!G3Chm_#WD@=+JJB;H64kD}`>} zW1Owk@2_Kiii>rj-^AXip0q?}4MC40J?_@EkJ2>OK07$K)p)_1mh&GcSm|j_dbU?7 z;4*ja&ADtJnPhj>JWx$dQVC7k_IU!6^f?{>{K6_zpY<~T8RmEBM6ha=amJ{&&8e88 z!cpwI_OVIJr5zjhCkLHq_4MBOBmb;byo{<(xS+hXlgGKMN9qn4PmpyyW>u$Y8%t&uXiB(jJa@GciOmEw@{Dsl$ z)SR~Lv|)IWqiKIv>C2ytS&aXzs+~&WH`pl`e}qkBU88qov&%Ah>M_e43`)r`+<|95FsL= z0du+p!dhouI>E)67}dkTee_xPnge|?i>9`Qi4;6o!?Hy}Cv2r}+id-=D?v;91(&R8 zD{DCGWHaqr!+~1g>s(!PZgWLzIz=zFOs(p6*C zv6g+;$*~jRc(A!(-nVSQizTkUn)99>SIbr}Sn>RK!-iEk&6Fc+By8U~v0W}A z`ef|^=^Z7?E>=|u*@D~d+%b~4veEpj>0186hN9!XzZ;Hy+I#w~;IUTo{|p-@PY)G3 z(=K$mYR0?22biW`**yP_!mFk3Tf8eArqs zPr@ci;#o@TL$#4aEn$KJw@sYS|^d z!1k-Tf|t{TIsI~b4r%Ul^S)I4k&92DW%Yuy)h#o{yH_NNFA4gl&%>!%o!iddbVg#= zt<>6x={wEE?#2e+m@fHgxzpuz!HtXCz8o+;;<$8`BhxHlj))ae0$Mv2*tA*EXH^Y!yquIP)dUx8sWjNT zWv4dVCq<7G;XD@z20Ej=bYH8!4f8|#Gou<5c6i~ zo*R}Sy^G}*CLOUj=I`;CGfl|V>ZG|xlD1GE>uO!CgG=2``h;?Zt+9~Ux8{;|m&3VR z6=Hoyp7uU2*r~+#=5kW=%u;iqCrs=jizS>pW7#qSq@9+2SUyd150^%k@IA`~1xGl! zT2rUQb1ePAw?OZJUEu2Hzxsq$t+~-Be6r=MjKXVE?n(0K?cWl_spx@1;9TPXSSob=|K5xY4KzL;n5@+c$U zahKH}}WI-Xr%v*+NBQ%hNS4|8q1DzxRUSF~8$3Mnh;XQmaw+L_bt zJ!@cK44!?gU=2f@=;;}st{v0OJrO;-xH37VEJm5{)k4+a#&E+BolQAsBSo90u=DKA z**RS(m02Re&wKyONSOoKi~T&(R)|+rwC!G{F)wHnQ`DnZUyGwy#8Y&6R)kMsvk_Wc zn7Y90u>@DkfmyTGC+=ujtj*Su@K!hR`HH9Ad%f>Uw{*>HKY2;aGRUgqq$wsF1T5zT~|+|CCdWomEI3yhjRWp&#F z#tgx_xzXI`B6s@ES|iS*^yKHZqNVp&hAiq?B`PCyAYjd|w$&oC&(AnSzrTAR?aqPT z##bh-?B7MEIcIyHb#)clJ)<$*sI{?n<5KSEmGd+Ay39;J;&kla!m1suGrlt2nS3E+ z?Y?ZG4JHS;G%CBoQXA{f?6?`AxW^!8&Hfox&-)D)E)>|2ZgMbt@(gb|>DTXgKRse8 zeHPGGs#&mKr`n==W}8f`ch3xCjjQH5>xbuHdb3Gu}Z*o z(qs*<=SzxaBpFW%J@m(MZ-}Ddiq71PJv^ZzyAm8!-miEr+md*rK-w%uz0+4U`-%X| zjo$gMB7E1@)O=o%7wA@|8LwWrMQ~ww-1J6TTXYg%~`6y*=afW@@R;|r( z4<3{Oz+qwZeL!rc$-6uZf`p45s>rL^5`SMevRv{Ygn2U-?iim8w+ZS z1nzQhYgg9^`^dF9!)A-D>NX#jXN7yaL#8}&duBDSv-fq_G45}9hQc!>H6$0!I1t>e zsj2XE-9ZPAL_xl|g%z&37mb!omFCcNSz)@F>3}L@0FPKxm($8M9-a$UX{}&O3`|~G zGUw8Xm75w?@G2%AeI{7aF)R2)!oiK+Iqtj{*E&7tXkgHAnj$;l$rJ|0)tvn)d4km) z7VL*pY<{#!O?V?_^A%mchLri zt>G)*Y+;%;Wm7V@+pgep$E%KO*>$!Zdo|?}i?391MAqRur7Sbv-1z&Zv4hd0BBxGJ zA;|xhgIU=W(}$MRUkg5K$jqIkbG5(lrU+x!Th<$^^crR?YzQz}!DP0mM|YFKQL)Cm zQ)^dN@(0NAbL(&O%RZBGKW1l9_3QgB`wq^D5UM+4CwD{fLL*1$b>8C>s`@O`7HC~f z`zk&w?(r=3Ual?CrycZqB{~*Nc^URhkvq)9>%f8s20uGf7C5cYJvm7-?>6J(gP)}* z1V4QzDDt4`Q_fVyY^UDSZc`RkxLtg}`k$eIO zvq&)Sz}E1LLgPhe@0>`w5V!8dl?VZ*E|%4)9+y|2OH4n_%O#Rwcr?lAbM}_J$Jh3@ z-jV7uEW31oi7Ps~$(8Y`?pLlE4_)J3G+c^WYrSqMGhC}VCK{b}dfign;7Sd7mQ_&! z66XWGrpX8t3B+#PymhJkGnIs3!L2)a<096qu-JS2qRCgiwLkY7+`f_cYSCr$s`lBT zkIr97u(05g3=NQ8q0FGxaY9V#=7KXK4(m9cT*%T@vNuRK3lDnc+Hv=A^fbn;`#K#i zma-J`1UPtqSf{+EfCRM>S&fw1h=m{w-L$!q-J&?el^q4oBPi4L9T~UHF<7na#F1UGQknz7(yVIa7Ol zl1wg5_}KsZieO=I>H3NP_IHFT+>DGo6dU`vocnZ}mXwer%-3x2c`RU&uK%%>r44qLrb1a2{AdhVPvW6^Gfsi{`G&q>ePU7I8+$MEIWz0?H} zY}z4HgzhTLyc)v9&hYsH*RzdYtk)#Nqh@VSK73$7-x){kTj4hoJcS(|xTIb*o)jAJ zLWkAG;u-5S$JT9E0`v|vJ#>>^^4!#UA(K*1)7@B?f}>{6Uad-Hk_UR0>T<1|xY@Ku z^JHqL>~)T%%tuzRtlk>sW|I*TAoM}eS+b(9wBzbj#zO&p-gnZsgtjt^t!CA3`lb0d zZO-Zs7qo57v_woIx}l1bIO8xr z!Nc%{eFgIuG3xo&t-BErB-YCO^2Xsq=Y^IWSaoZ~CDse-D%P`X*m^csZhW`b`>!U` z6;bI6S6@`ORrow;oo~{2k7wnNmGV;_uthVbrFcxSkT_R(UniM~A)qpjdB0#6r?7^| zlH6?N<44Xhd&Ie&I=(WD)i2KL=wZtRnyZ(nx)z?)WM6nk@jx~ocX_A#E^h9d-nvdl z9UrdwcfhFl3!d` zU0cOqf`8CFb6sSHbq(yx0oE%Dle%|}$0uh6-${~bfXK9OfR8Cns`KE&)= zb^Fc{&G|N`CR{TOQ0n~@vufJTGix+MpQS974PkhE%lQgV%*uz0`2%+Cnd@d+FRJxe z>!^j;<^uQTXJK2sXBixoFubsgC!eMI+1}Hyt}R?HA9U>XBmF?l=g*}1YPKKAu~E}g zIJ3RpT*@npiE+k;AjX_4?A|j?=RMj|_?cDpU5ChDuimWHMqkTWH7B;Qx<2gNbE;vT zId^Vk-0a4KJKcV@a0oBqkPmS15I@57sUru#K8}sMLwAd{$ z(AM_Oe0n8qVdiOi4C4xrnJQ`|!$D#tF!UU#nnfZBw zih-h5s0dfQmEXtXkX*a^3)EU-Q31KXRfxdixgwl>b#`)fKe&dVCe+6 zo`_8|!e`AfU|P7!CGaWNj+iq!hYT}vR$ucvctoFB!y_R>Z zM<--jWc{1bs^*(F&r?4#Fn(@SIWA9GiX%}C7n||WE)T_^YVT<40KT;h$ zp@Dtcgl__`7+9DX`X=zZ@9;PwDeYC=+p%y5(+WXpuScuz=zn0;Fyo*2ysA%SFWd36 zr;2pAOSb=edj3L&snG`6op$Ej0{e1Zol{tOXO(w`H;64;xBa88N~M=(#-0l%x!XIg zELy#2ru$S8GdVR27+7=4LP|PfS|VtU@w)cWdPv+aCQku@J#E57PKy0Kg$ znd>wEim!)t=N{3@wSNCAH_4mYt3< zEn20=T=Y%)XA2v9n_@@BqovI5Gcx>244+qDiQN8*bK6$K(BI#sWqjK0?b5OowrhJo zQ>w`mm006?w(i0A@&eNp0)_>RY>7YE+ytg_$fXK!w+XHMsx5v;w(r?|!$z^=9ll=c z4e}ecS9dh-J{+`L`%xC_nnE3?i3T%!uY6l`$N7O7zeJB>Qs9v@n>4*md8KSjD#WZ* zo?ZS_{$>hO377gttvw&l7j&)TG7i&WmkBHGP~F9%wJCz}gS6?a9ru0Mrma^z5jl6( zj*S=A&RL-LMlElB+QScPnVK7ddIKk)=hJ0NOSpRBMzr=CZtDcTFN+p#=x%nJu=rNm zB85p?ma&9pIPYkFz3D(xrP|y`<4dYqyAE8=iQRrDt19F|KrB~>rkB{lr3(V4tyQVa z5BJa$I1wIk)O3O`$Ew{cgnSrf0?b;~74NYJKFV^tq3pJjhjX$=2#dP+dn=(1Mn{jh zXZc57z3C`X(zx`=cEuvRPY>u|+CuYnsDwdf9%BfNx^*4-#y|P9kJVj>hCG9?7Jf?`oWIvyRhAo zRPJLBZk$e5T{F>I%=M$L@9G7*T9!U{xpjQF8jiB9ROK;XUC8j#tE!YYMk-ri-_iY> z%orXV>vo9OGQDz)&2Ns`9~PFd+dhY7Ub7s`tj}gX=QMp&tN?eUxXyZ=s0-3Ot+t=F zC6qMxgvKe(*(kl+{>a+5^;*-^W_s06{&%MEK|tP$>}^lKKG^FacJ+e!z2L6aXn~+v zd}3l#Sd3;IQMk5gNrza=mW%^28Ovte*f;e;VBp=rZLAHBvjX}Y3PdCrb{>;>A?>d8 z(oITpy5aT(Tkr1v-8+qIl6Kj&IdKYKb_BKFp8dO3TT(CJx|E-gkH&fn{v8G`*K%U> zf*Vp+B%5ly+Nc|_e7d1v=EWYLWnOz`Pu(GU$18Z>((J=$R-G4^CM=hzYj4WT#+)hW zI;&~z`R@!2t52WSmC*jqx_a%}x}9yzX1lL}rkIxl_uoW6E6m`-ouWd7~NHH;zrMtopY!YI@ZXGY!#Wi`Q2j zosq<)C3dr3)rznQ$$dZ_HUUMElnU@z)?f-T;_+4D4zZh39c56aEpG82`a2IPanpFihA?xSs}&6 z&9;K&V07!wHL-_Y9S-{JSJlK=mvz#fb?(fJsZAz{N!s0d zM@}quaN+ZsRm5+scCRv6@P*_32{~HM{t?loQGCK{giZW2jGVo=rZm;^guW78bVV_d zd!5%IuT?VZTB9c>SNOBKiwX&NE>C4X5zp+h>hc_>a}yj(oerJ4@z`);$xkn*OH*y0 zt$wvY()_4tS>`X#K<-25qBH7y4lkPC;ClX8{*|)sETyI!8`)Y;L<*)x{c`Y|dXRD9 zfyPROzRw~;GmV{Evo2b0RlC5l%7b6ZH^QCim!t;cl>M^R$GbN0=((Ern8(;X3_oh$ zoDhHHnZPwe(Q7g?;X2tmS8H4(Ci_aPbd|IW+P(3nY;^GU64v=auLL5kkH6BkVC~$n z_h*my0bU#SUH6Ze&0QdL>B%vlXXjsq>qiSLVo>YSD!ij{i9_s`>#d$`TUbm_$L6`{ z9TB(Ync8>ONYH8Flmn(tra904GYIttIxvaPXc9A(@GkG&#<1YVsf!DaWad8IqH*+^ z;?fx#Sge?*ehk)c-4b`TP{2i9)sD^XX@tV!hJwI`?=wz)$#ng(O8E^pV~Bj9v3Qj3 zcCIwm3oKdzcSYo$@>$NCw_tj}i<2FXn5yph71(T$4t@2w?8DIn`!lL9U9Ki^FiJcN z5Q!^XAz=J!Gv8FH_x*B-wogFUh3Z^9$P!&xvtICS*WcqktG9&(y`QEO$QrWRbe+fg z10M^nXoOd^PuZ+KgJoy!!S!apvVv2$-jOJdy&_>GU$D+|cR`+^F#4Li>2=Y3_z z*O}3u8O$qh3de*LoeiJi@%(4U&nQ{~3%Xu}72|USmBSb|op|1nc6sp$0a+3nyQ+92B~<8p1v*3=tI zrhF+mXsU25QP@dgA4A?kIlZ#!bN$w8hZs0kF8AXWoBr(7Lk01Kgrf4lZVDL&b8_mA zi5^&BwdGb#XV4+8E4McA-#`6KGC9FJYT6ndX77_uEul6WB((V_Se_7Bw&Lm)rJDsN zw?!_NG#oLz% zLvGcS8}pKr^*D^CmOu6hI@@f%*R^$N)VYlv2ScWX)^|*E71_PNqbrGR`a0KF20GVH zW!)$#u)ftZu2WaWtOETy?oAj#Zch9YuugqfVvyQkp)|PUeW?%6# zcgJlvgEWN$KRteUZThzA-XjLCy?MqAuZ#m0uLy~)dw9_Eo`Q$AOrid*_cN}z?l)Sh zdU_^L+GAcVQ^AT?Gd>4&&--=7v{XpzV${wx>u#1-sypo{G+I8hsQL_3&awqHJG#2h z`*%2hano7$?!=?!X>q^a+4^OM#+NpKVjwb2OTY4alqpY;li!^^`ner%cN@;-c6po=2&g-xw}jeVVc*iThB|MYSUcC+Br#m#z8}mf}m9z zGnsB}VNg@CnjEezsp+dES~ewY%NdSqVXZQkW4O&lCI=lA>@#XO=@Wd|)$7^`p*;-Y z+2M07kFIJEjB+scW(eKHdPyW`OVgvxTsyBWNIT52GE5>bhLi33OV+YCT+_@Q-7ZO1 z=)DPh;3MM6s=+0EAo7`}d%9fC?ytJvuK{?&Wtq^Ef3s!%6xR<3e5$(1lCQ=Kh9b-*)-pl1)=eL$e_`WXZQ>mea_H%Ty>r5@ z1-@Vx&+3jkED*MZmG#2f*%?<%bXOKLZn%3%tD{%cLF;Z3N7pOGNX7%Vw%mGpP{*vn zV(RJ~oujS469ToR7A8DC7`Dc5c4oly>A7+dDGyEvyt-TC8Wui_^U`Yj!mfg@6%|Kn z_vAVYJUTK*&u-yTg;RT-DyL36Av7(|lA}>+%N2g1_!6gR$1Ua(ZJ%d#doQfXldgQf zGI{zD*SN+biL-WSCG=LI|D4^^bY-mtzwB2WUUMF zmQLui^jW{U`8Y!5mL6L8S)a@Jw600=k>LKqqT(aQYb%<4Kh&Pu8c#u^^r@Bja#_* zPFR6O*PhmLvCW(FSr%I+a0Rctq}#GGF!kq-5~ZF;Gm;LyuCngSPpQ$=Ka7&;{p+|sfw#>l<*9b%Im^am*4c}_BFbYzn2nhg z9TVERcUk&uwu_yWu)t9?B<0q-iLVpXK351&S7md}TH9_DS|qL2yJZ*Oapw!kyTo}u zWMoP^bh#a53P@?#d8jWeGA@T#^MJ^P2Nw_ctd-HU3$3p?X7YO4lndA2*LiM<3G3F} zF53IDNu|@{hF9keK_|)N1)SjwJDwc!nwxOoKvT-bjnDTkifzli$Q5ucgv%wvCHJJ} z3Kd>Mr!^Uixp)q+x@9!SC@$vNsmbDBJyj#og)f9`%l- zNWqj&^DPW=T02|Vf(utCI4ZoYZmDqCBE}!GZJwK%Nbtn7%RkjUYLgVq5C1x&tVKz7 zQD{wXjl&Yf3$k%CA1BKNv2r+vx(K{(Ub0WQNwVd};Shz(?Od8-t}7Nj)#wWDJmit! zaEu}EfFIl8)TqLog$kC8B?(d+Wu$#oCbY%yxfJv@3!d|vCfxe)(O02>qf6O08qB_u z!M&65uXm5%v^6H8d0HD~n?96Zh}HHzD#&_^A$a=l)&o(Sx7D25;Ul}}31_b4ak)vM zN3w$qF3eyu(R=e!xmQ@XflDKnRa07Q!SB$#sfLR#fBneQ`SvC2@|-ma(P3AVcAP9_ z@LI_s$#mmk`%^8RrXNSNUd3_zPz+&}bS>Jk=TDN1=K`r~ZL2j;=ZgEX|4iW!V05Tp z-LqLhq;qdk7uRm@qtRTAS*%&18cjPLKNfVTJU_g6nf--j8Q+df&8%@^ zdhtnEH%RH`&Q~>SjP7WjH*`_mw08d;uCNSdgWxG5Dfhq2z1g?8?uek=Hd);}+MzNx z43AFAIP$E&aCPdpk9-q%-#QrEpzFvWAJFD3S=kmXFU}t=^l6UH?pgOb+GgG>b2Ujg zy{YH0$rFoni@9>XY;5Z~-|Ky;Y*kNE@fs(|BRa`Xdv?4EYTPU}gZX#gS+7Ymo;I;u zaa?COBc=SASoy;lYh#_lVYen9?P3?4=Oz5&hJS4_khp)JKyp$DG8*!py-^z@nT?HWHC1zZwKesxA^ZV5gA-L%dqZhL#2migr9SzB7?>A$mP zm~zO%HB5Wgrmic_c?tamjVX(!Mz2XqGWx@r%6fJ46m2chREDil+XOqLbD~6J3@&ZY zVcfb&I-vW6l*g+_&U?5V!$Lnj$?aOZDqJT@O7G3nQ)}|rW;rfyc=0b$h1>J4E61t{ zyR^>y(o?y&V-tjd`qjZ&@=b9UG& zvvjs*Cn-PF$ZFm>v8`@uL57IePu?WaN*~6wi5t9@XCytov&N}K#N5}JFQ11yB~NqH zvbE;jR^6@=tQWj$)1NjhVboZox9_W|QLEjTKe~2Wtj$Tciqa-up0E5Uf7^_pvm)QS zd?H!4jGah3(Vq<&93%Xbasl~w&FJ@VdQLKr)utK6tE|>=Ejk^jqxH>wA9uf_Wsgv|f!lx~t^goV}vMof>^1M%*FD$W?^FxUqb%%OVLbg^=Dm zsw&f?R5MVjVgCwHIlGtlr)v zt(iUN*s`hr8OkM6%{8p^J5;?LxX#72D&6Z-D9l@hgt8|Nxn2(DD=kt8pD*hE34l|yh+`#WL?SbF4k>}IhanhGoC)fCtWdy7 zo6{+CIyiFTscdI{gHFedwzCpm%R4c z=<1R3u45-G6g$r_K6>iDi0%Ec2l_eeIdYzH$)A=VF~0wg7#~O*G167eeY!xXz&M#hT+cJ0sh8>*{D`k85 zUDR>L-8WycE{fPtA)}Fe&%-H2lZ{o8JK_Pmw6Q2}WALO4zFi_Q1p+~z{WESPIK&w3 zbZ6PFeyhTbLFZuWV%9+Il@I4O+zgsS;2+u)V5kiDKiv zN87i*V|V0Q)z0(e_?dM_q*zirGrC)!ooNx1e#j-bY`wDo;zbtQ%vgQCpRv@P8p@Qu zL&a>{1zXwcZ<_TdwTtNPRX5u0C!%oO-Oal<jF8g-cCS*rsslT-Y>AtX*BG z@P@l`ZQW(7G{j7hBe^EM_jnoGk*psees_)@W_!2-wQ@ zG9#P8>+O$a42~Y}wMrcX*F4zf&HHI<7sK`x9oM}r2bXS`8rIddWs0sr!IG&~rx;VG zZI|me)||-`>3ZpQ%$1152;rlgaRt0immA$WJ}EnX*f`;BzyWoqOGkt!C);n2Tli4d z#rF%3tbjq&9|flgf|?P3jxq?8H@^~N(7VKR%hGhrShfUQ>17-PkN_~mev%Y%ay@LFeycsgf=6inC%JDLv+|>SxN#?7N z-R1A>aeIDzRCg7;{pUujLn3SZ>LpRt$#kJo?5>} z!5~avRn*6+L>>L2y5e*Cvs zB;az;F1K92M~bVL8nSgUr^H%_i;FOcNQ$14YGeJ9?7Ga$z;@cvHv&!vszbx4X1_|v zV0|LWAX_}ORR67L*xQFC0SY{;R=Taqz&6so9#Ml{#P+Y2~NX> z-Yd+X>NRMT=*u`Z3q&ODQ9u5j>$HeM?(tXBuT!K#HDl&_Id4i>c3ODe_Z9D#L`$zo zJG6eqf`;&h9NX1K`TI6*v0iX>_f0r^oFRwnRgiJ2%oT%T#)62xi457Zo-qb0KmKxJ*awjBXym;mX|?no|w#q=%}SmW<{OL zT4wB7uc##@A@X2h)EU7S7q86<3Up{V?d0_Jf>Hw0fpemZGeXR~1*R@*(9DrFSZ&DR z7-beud%P#kjhL^^ztALT--nJ0!m})WBxieD-G{JKJR+w;Y!+%sWx=`!h1~jGcD!lLubNf&7u_&lXR^L|)@N~+IbrP$ZFhCEGhWC@7Y7(-6l|zf zF`9ES_z+9-gL2FIDSs!jxF4){_z`i%H+Iv<&UkOJ30s!z6G-cjXPlwvu&=y;r^(J^ zYQP!Wz<+5X!ZLUEZRHIsowQ0v_0RFCUN5G$3hZ0R==SYrOL6iug{WhSdJ1c&?@XG$ zZn@6k{=k56(XCD1S>KtC8f5wiUStiLm!$18$BmuW@uA<3wt!oCA$pt7ET7yYxr^gw z-s77>&$Rj~dt(1H7#_M)uD!cy&htBBx5IgPp7dDN->E9zZ%~k2_UE9`)oq&%%H|7m zMJKLM+H_cJ`*Fk2^7NoX`*%p^z1v=J>XUKJ{nO0PPRzTX$Tag5+otVTeKmfp2z>gZ z@5=fW;Zvq&o3#p;zmrP4_rBBlQSy?1CuBl5gsmy(XgX@QsCZ`OGlsjdkuzjDBNHU# ztvd8xmMlx$rg$)NYT^^ukNlx~dG`gq`*kNPhV5U4a1wCv&;8@*|VSo`~b%zO|s z?ZixZ)7@QD9CJ&Od%k@AE*$tYO4sU*BIjOKjwZAF5js-}4mD^sEb8xS@Ceacprv+c z;@4W|2?-my_7&GXtQ9g6d)Mw*dPY1_&`~zrZ10ByCvHo{hU{H*z-{)CRjV2IT+{1y z*l=-E37WytW?qVTRGkA#Cx?X7h7uQ zdf(X>D#i51@k?b}vIx6~cAUUMr8F~>kENbpWe-d4`L3~!l_RV1_&((o!Aff+|4Q2> zgl>sy?aewHKPj{%Mq$56$!EQ5Cb>QWK8+$X1$+{Xf3PueT$C1MiF7(JQQCl0Mnmcw zx7N~#z%56EPP^%eMy4*-kap%Ud)(5O-Jo~bwLI~Zt5W0)(WSf@Zrjo{qh%bXdU`tL zdUs!5ej%MBNo4orROJaDCU)InZqU1KmUK(?)ne`m;)@d+^tBc~iV2ZDxMWj!S#BwV z3*#d3IS#rSCdV5a*EV=?3uuPwb#wd>S-XctDkwF4Q_Kd@MF*DZuUL?w9Hz}EC4Q)p z$z#hFJxA_YAD9I$ENV6LzHm+G*4nf89GzKD&w9Mm)y6Nxq%~(}*tWo#h1rD+hM~DJ z>$emo)I1S?B&M`NEV?Xe-?O^7Q1#{cM>IE_y>(pU_d8)Di_H%LLaa7UnY(`0MXijd z66L8{Rnjd+ULLtmik6Gnx(03A`qotU7gzFg4?o*WQa>F^bv0K6d|Udj)w=u2%aSh^ z{0wr+9EvqNd$ct#Hkp>LRlXNyw@xHMD%39a`h&)EAyLm67JfS(RAZuJ+TO6@#N8@4 z3(jn9j*!G7N1P7j^`;lb>j{M{@LF>7^AWZi3yxIEPw)&+xU}XA)Bc3dJWLMu)4D%g zek8FxVyV)vD>8@Q=|)uTxb$-EoKtU@Bl@1C96i0ZE7iMQgTE=7p>k17SFnhb>p72u zu8WqoH$9#gb#y}Dg7Ct*v4ue|x2#AJpJy>;-TPCg^QPV0=DX(*qpK;`s&~&8Zt2+H zp%DGp*xKadjNIEf9#3N&3z&~^FdHxjUVLP+)4k}x+GkZHq>^Ah%Mz4oA2?D3I<+_e*VQ}+kF)<3sc*!Qsb{v83Uy`Q!z zXV)AFE3Zme9R0zGDLH7SY2VWhhpSdIon}Qni}#SU-tk;AO1dRNR6BKZ#FgkZ2BtN3 zH4cs%YSXwU)P9!|iY?OG9$E8(L3Pg3Mu*g>1-US>A@7kEcZ!j^KG-z;f zWf`4vH8*Jx(OG(7nRnZt?hkj9y4D5goJyLtW@}KR*2RGPnlUZ9TFW|CNG@T~H;GPN zkeJ8Du|_1)=jKtj1sc&@n_12_O5gol*vML*&FcC^zLb%-ciR^?L#ySgpAH=s+gkox z)hFPTh|e2k-G&ZtAh*^A3&yG~4>>NoUM|~{6?uYRBRZAiLs?!@x*O;0 zTz#>(!5)`fe|m5i8wswx@L<{2LwC0~q+MVxjK0g~`*M>oZyM{$0Ha-oI=h`sS}rJ7 z#y)4Uk?zNAAGai z=4~Bk5y!RFZ&~FQtO(pv$NkLK+hkM!D}mdqA3BH~eB`*o+^Kf@qqxf%!t(Zqd7W+E zsBc+uK3VTTnr89^&C9M9X+kP${e^ok3C>-)MQeAs_TD>boorTi%2OE(CkMXj?)|gI zuDizNn6_E?i|UMz5<$`jU#ZHU+0m!6Xs=*v*;Bq#uLZke?<7fbgedKLCpvLn;^mse z-90Z>-w*0$&0diaY;%NV)nXNf0R66XK|_X;ZE`18m3@*wd)r#%gYU5g`?^~{Tq+Vc zkf*fZaPNjZK3=0`6Ms%;7p*-MBY3qfdA0wJYmD>OEnxc3P!K%%X@j5i)3#L8!`xY` zSLkM37nZv8=V;c0CZot1EZGJ!QnOliE)U=?=gFy4KB%enDr)C`qe**z%{+EqoP+x$ z--As;-G`rAmIDm|ZJ!mbV9PxUqBh){jhmyG}a_FdS;N zdVeP8rsje8f?25>0x$agJ@cPoPwRBk%+lJ8mMK%c`J!)6JRjArS5aU*i%W*#cw5?r z;s@fc5j;;z8Go5vb-I(%SixKt;JzzFJYb8~mSwuR%!y@YhKsI=UEGrO#`56K;tggE z2TYyIG;X~ziS=;%vFXPi9w{G>NqXNFdIjn2T=8P-Yp#ndA|iLKvSvE&+i^NWY3XVw znG3qnjvqR9o7d@`>vb2ul~kplVLCSb(AtwiCQ`5K0{}vUV&ShCYo$U}&A~G<|hI+-vp*Cg!kZx5dr=@Elnw+_1-F>!RFAu`Luj#cuF6ZNYSg%T9U>!U5r23$(OmoKDzrcIh2{ z)40y83^q{)u@8T)YAoakVTfFNYoFo-1s=;#Dc#kH;gPazsS7ezEA5$O9(!blXeyWR z^l1TMkw?>dx6C>8C`c!=D4#u0RVS*kPw;Tn=5nJc&RMgR3dF=`3%=vZ;ZEStXPx#n zR;aQ1Nvy7_h^kJu*}?BkOS1SLbXW}R~0a*f47Dj=dsr9fbn(v=0`4O0SoPrXqI z+EVmljm~W0!uzrj5@Nws0Rm@zcF$P6HPn06-55O^t)m8^y=e_meTxit`*It2v^FN@ zY!G_1vc*KhfOn$NwRsZTuP%C~92#?XRa9z@!pUl@XOQ08$k;fh1J6wN_P$eQWIUJEUzox>^`&!$-rlG~YhO4{ zD|=Yv zcue+kwLBG>IpKMqfadM|8M`(~M}OsbQ@me=G3Ze1{3}H!x=Q79_Ok?*UARoaEl|jg!Rkc^W(w+tQH{DnnpKyQ1t*y@%{+@PBUqh8a z&#dX0t-qo|Lg&dujsxXqJNnLkT>qf)R!^gweOl2?e#2Jn(j^`<@}-o{r`LaEIxN}x zvh1g(g=cC0v-OuUUtiEk7x&g+E4QDjSDeNfv(+XLK3w1hrm*4sBKf{W7U+?gQ)m~XulXcQ>YT=Q^vm=|YSj47r?flGoXX~SPobS&i{7Uob zx+CuJN;|sgl3Z5u^;fK?+m9RXWZcSQ6|~r$|A?=79Fvsp*`tRV9zL^lUDhLZ=(Nhm z)!iktp2#{$bUOJ?G4$X3x0O&U=d+?H)Z{d zXD3eRMM%6n7M!~2%x?~kX_*Xs-ckm^;VB`EXYR62OXVpI{K4MjwNxudLABs&cks7J zF_92U!3YC0g$a$aJ~wY9r)m`IvMdPWp316m<1x=V!$9_228L}bWO=vQ|6ai8=+*Vs zB6Jg9%-XX`jSemwra4Vb&^^y9JAIzdDVJ#mA&L%0Oh*N!TAE!>G;9dn|8bd-K^p5L z)k||YZu+`Joi)f%X$W$R+8NPzBT8CfE{DTHmz!b#Jg@0+ioqQMb=iGvGh3kJqKCYaVH0C@)Gox{j!|5+J?7wBx6pm--bXyD{w34izB96O zv4C||?4hWGs}pSb8MOshOtg5qZm%nsXoN%N63t|R2Maz(NbTLN6)WlJy5z{p6FW5 z%Iz&460nN<%$7tep2b`_TeV8E!tRJVT)p-8ewAu*%-MNIUx&4K>{&1+v2TOMkLGRb z&kKG0nv*YoHSyK_R7Soila=feMn40*td_Ry`ojC~>X|JQ5`I_-UyzeH7oVwlYt@=m z^+{m~-?SU2Uo1K^{qLdmUDJL%biWY%g5$(5wjKAQ2%)Iv_o@$D+bIY;`x zpZyVJ_2vWT=P6FJ7xzy#OH;lccIAgw?A_w5^|$5X&-8~Vt_+;~rbENX;@BhC6B8X% zfA%?sb1po;!=dxT{v(GLS`}+ujGd9h6zACywDOIF@}=gosUoYImrTu>^5VNR-;Gz> z^=_`%5!bGG>RaTD@)Zo?rTec~@nk8KDz-N{~^pcE0tTRrvKx3ov=Zrf}K&o4L}@FH6OBvbE%YP$so z+t^)XO+*Wp|2tU0QF@U3|&B6Q>Hl1se7s&%KiHzKZo?^n|d1+!uYfjStPD( zE`2Pld*PKrg8muiIs7TX3+{Csb9`jP)^%D!{$~CKH-Xg?nEqZ%TC}2wfiLQx>V~!z z;+4)?;h*KUXYG>CT`sMEr|J_|)IAN|`{BH=n9|J-Z4CA`)w;&;y=kS>=Lz8q8~pA? zd$~qhtQKsQKC^veGpm`ZsG8{3MhBm)F2lfGj#(xTOeaZt@y4!N>U3;&K?Co@ma6W>Ay3rppv+1s)oqy$ z3l?zgoEgO+)a<~QudccEc=Wza%-RkwxJ5JERz7NI-6p`8;k$Ox-H<~eXN}!GxESIt zXxd*`vzuYj^(m__NS!Whx=^gTKlem(H>92h+|X=XSiElP!}h9{l}n~ch0J{7bfa6bn3*w@&*ziw!5FiNVp3A9 z3WZbdlq_`;3~iphJR)g(?_84wb#;sEPrnj1T5s#K?625`OEpQUGguyG>+6(fW;|zc zJS$V#W0K1Cl=PyVx~{G) zy?WQ@NPxgW_NI?t16CdrD|xD$xi4cynz9G)+rm7nHlH-J)!p1~S8{e$tSmHO+1Bzd z;~|4_<&4E!TTZlY_i_ll7`V1&@4Km|Q$ueQuxw&t6IvY=AsB1C$0>(Pta-NIb#055 zhA;-!nQQrjE*{xjR5peEo$5&gkqU8pJsZatFJ`1O8dVvstXVN{PXAS&ve_+fAIfk1 zF-@2C#n!m&Y3v`H_Rn%HWX#=sbPE3+_4c>MbJ>7=fRc*hY*e{9L zd(8X#Rgo$~jo?i;e{B8NQMfcmu4wTq<97@DyL8-Nv1^IGU2R{m)Y~$zK1FBydI>wB zs7T2T{~1ErxEFIVK6EQmS4{j--%+*VAyb*^sZ-pI|B}_tRqc59TK3AqOh!g?kJdD+ z9f2Fy9Q2)+WNv#*d|3sbL zqGv1{!X>7!ZTQhTy)Qp--Cl))M+0_)P52u~(;c zdF=z$t?mRoUD0}K&t~hHSw|(3=Nz81{_hc+;z#v&j{Ij3d|S7m;Ir;E$^L`ftTl($ z?U`^&{HS+X-GY6pGAc&b&v4aCw3$pOxqih)@v@<@PMk)Yquq%{|LUm=SYJtNek#=c zX`#xqd(UdFo|5VNJBmFL9i4<$>jjqIS->>+0E4b)IZM(Jh zfo0OJu!j{(xpbZuvWkg)P`JjNW_&s=nQL-Fl~cF*!lDn+dS#+pni?m%Y|%`W>gSa4 zU9@z9(bA~}7lgi?*f49^)ObzDTpr_27Ke?e8qcoPxme=5!$VP5AtY**>zc*lQ-s7; zYOjh~#IF=-c&@5gM8ZthL%?aqDe;92m$N?$6a+mUmOC#WGH zlrc1X>Va=UAJ03xgl^nmxZ|IjQ`e`d6S~$hU1d;mG){de=QQnNhJknAy*38bgDdkI zxXU_~-(C#gBFeg&Wf$w?I*SKfH>ARvBE7CY=64Wq=5}?Cy~$cWv0zhT^i{1_Yjk&b zAJFR7oS^hQ*E`!VE2N>st7O_e#TBmW#I7Fpn)7*PTx-}>2F-${cipx`pIEg*<8GVk z?WmQhie=BIOfiy*;n7dLVz$BZ)#=n9Q<-jw9S!@j>pQoSg_z)>WyfS+7i|m-KTuk5 z&ShiEo^a1Id)JyRT*Mu|^!^GXh6}t`nJ<`KDZU}&kmy*lGAwN&e_$XZYk>9Q(C%ky zjb;oC?|S45xm_EUS}c3};nb%Jrng7CZU(JnFzM#2eQdn}JUoEOfc;_jH zwHI@&g}I%S5?E(muTHeO>$PCj!_#|M1uk4#@z9}z_i^sbBQ7c1GtV*2`*bvI!?J0; zSC_J{u%0IATg6z%T{B@;+8-gE`%~-GRvo%w+iYJfv&ABWpTW(_Gh$Ev7w5nQxdu&D z92>0O?OU1pLs>C<+Nlx+duH9$7JB&(-Sar!Z85k~p8Cab;u13I z1=E%G?yzO-xYpFVw)drFn%nSET-#f%o+iR|t?AE3!` zjO*y+CrM$6hvYra$OioiU)X;0$XeM>saM}Snr9sCSR2g1doX1O>-uw&0ZT7t&uY!E zm^QP+lXFJ%)2OLyxj*V1Ec~wXf{R!AP*E1|o7PS9tvi?#l^M8yxA9&4o%f?rcjj}! zHjcU885jEl3LhKRE=o9)Zd~{1TC03{;blGTf@v~dT|ZjCB*lA|cARZ`T`IaI$uwp4 zI~mcRM_4s;7?@eE?Xr8gxxX;2En*G(HZydkuD)Xx^ET`uAIqCXVota7r#`+d zyTZv#`E*R^7dMSo9=1&n?kV3s=<;X#$zwY!XMUOIA{Cy&aA578f}BMv`)`FcGd8HY zoAN!_;5BuDXn2oX=czYBD+3M~X>85ixbQBgpT|~Ky`I>YJHBd937z0P?Pz}An*(<* zCM=mO?kXsysmR>4F;%STeyht>lhfWWr9?yp+LanU1~&R^{hGwF*F@wt|GHbBc5P*4 zVXiqeSwJvk(E{Vhz|6vw(5bl>&%A44k<&V$AUh+Ahq zTSOMKF};krZcwyhsfp6U##9csh>(ULv#_$m3o9jFC<||JD7fLet~jtNqCqssYKh{m z)Q|(Bnd*l_`vqe-v?elK%AaPNp=hzR>fyTN5~H?trxJEKch52xo8=JV!X5rhkmo!< zhn~+n<}C-N2e2LpvOP9wCCl~`Om`R0b$7q3;^1~|lXm3G8H{%y_{iN^Z?vaW6Kp461_NH9x8{djX;;S7ZdNvG_Z1sS&+=vrHNe-;wZTx6f8q`C=CPK>Z^|Q~v0$>t4BS{)Epm&aW(^wr%@$|CI_uk=gxM zf(!cs|4f$p&%mnq_sO?kJ)XP^<{#z@XX84*p<%nsI#II7Tw$7~FG41H91lEAGZ$-6yW7Uwj_8ChYXdqKlk9K^E%^E}We` z^;F@Nz``q94uKo)*lj(mHAi|`n5toPs*vf|U&?zou771H^v9?1%p-xoBdjy3x+GSV zt(m7Z*D0p<)OO9BUMV)I<1?;Ztaab^CiRui&!+epc`uH?tIpFo=eHp3qm1Dn=QCn2 z8>jqi@J)FpcGln#^JnI}^#T>MV`BswtN$~c4Bu>jhNsy2^D74NzfM&Z4~5@7~Apv+2q@_A7eZLKz;ulU=miY5L*7A3aN>od5l2 zxS18in%6!j^}6816}p+Rd>`-ragN=w>*(qVYr{S*hT@bhjmNpZ=b197iN4}^^)hUS z@oArGMP`d91_n{N;W>Msq_{{k1V@G)pC%d8v}vM=n1<_4k4sk$9n)1fbgdy_x#YPU zGaGIk3~OV$8|psFKbt$~*t|HpSnb;tagn*{L&c&v4u>shID2B3C0tPxK|z#seO^R&{7; zaYoL&wZ`bkg~+5WD~=asZ8~dZuEDZHi$}b8;hC(i1pavQUTAwZq5W|8Z7X_4K3T z?TVj$StTxkOMRmmpK!A_PAqReZ+KKvg|)%f#?R7i?ZMQtSEdJAL*0eFildr!UupCm zn`g>j)aAlD`_}8*`aG?13fHqMJ~)92q=UPkFGe863AxO#8* zcBXsl-k(eL-EmU%>9Jk!bVPJ?wry+J&bm?Xgyf~1Z!L9k+MZuZ{r{-WS=VsuLEz_U ziksHG++h2kp^1yJoA=@E^;5gN%)i@zQjJweW&K%HwQFYJq5Xv&A3_)_%F-%S_p_|$ zIkNoM=4Y!LOApI@%(|a(=pw^L$zMTl!<*!_?l|o3V0_im#l5{EKE|u5@O1r-a!20V zg1)kg{u+GdiL^Vm!0X_xDWB9hTlVbFjyWnIpV2;H=kLy_8s!T&;}sSC1_;gYjo8#f9CmmgM|sR+$KL$mU_5!q2#7$KYu~3gq!~v z@|bdWSg+cyV_9S9ai4XAY5pV4eZIX63Qoz&`m4=s+Dv!!m1OT0GayU^(w53F`1{?cSasx$&-Zwryt4Yr^0=&5GNA&y*F5+=^RB%> zzGMUEoQkfqb~Xo=J>0D1YdF8a+V*g3L1pij>|)*9flQYQ`Q}7FH~N_Ab&+G$mDkN@ z3R7f6(u8c!ynD$V!OQ!_M2^YUUxP7p7T@Zf6E!1lexDP6WN{9oP;_XNPxSsrS`s!U ziEeYZR47iou*6%=HHJ09eHDX(*`=4xjN6+eR+#iCbOzZpJ=++tEbpNJo6w~re7QW` zmnsUI+68x+gs#=~>Uh=E!l)>{fmK9eWwN%taVwu}_jX-IA&D&}cd}*0dz#^vU4jOA6H_qk~joRt$ zU1G*6xKk)}p;*tlCcQ51ZB`yeKLeufc|Q(0=o6$;a9~?_>bof`GBqAXb7r4xwd(zH zh>L55Mbz1RQO*v-X?NEB(q_v_h}htulPxXdR_qwyvvqD|@4_OXYp0{03!d>@!7F`b z!vl72ueXaYGsi7EH08g*kAp5?BJOp&=uFR_-K zZl1KSLDO-Sv9GvXv3Z!~W~F428-{De_@|hJHM|$#etuy2RXI~326olsk3MoVNgs%x zV;iza1uBYJ6%wp!%<^5wCQ~KFZ?_KlQIWIXm zut}}8eE6^SyhM>i&8cmZHuJt+9xfeit+24`y+N>a%flT%WbBfkzyIs3AXhr$`=XyK zlND-;rJnw7jr1z!%uzL(621P4U_&@R&yKu%c~LKCedJ#LRp`~Ln+sc>S&JVDjGLKS znb4T_)bZmA#xTQeQYQZ%E5-e6&8zHK8}t3Pq)(pp!LQ;IjE(ke)UIz?s(1VjbI%pF ztw-lAWL>Q#HT6+SaQ-r0zFpJa8~xLYWMZw!KQX6|0!rLx7O2BzFrXgPkqWVB4~c_e0Sk-;AcKeT}&v zD-_->)!vj*wkFpragER{x*OPdsPHkV9rP~~K8^tJL?XZ}ctY1z!20QPR~$Yu}MrXXbp zwrLxp1Vwez&#q)z?4WDWx4CtBLjuRmh0$3*X6ih1GgA!{EnV%}ETiVD=jhxm)4IVl zWwyF#)=H)XOPSk@aSVw)9Sj;qPaT^t>2^47=F-h;oORUeaLdC_x>pD^JqVg2cDjWlpJA@JG^_BIH3g5BMtDwRWs8kI zdd$|$Ixg;9uCVX%mkUH0FBU`vd|q*O*|hb!^H)ZD9o(E&dNgE}s)J5pXrWkd@It}W zYfr1la=*IyLyYI5M-J;M2|ja|J!Uy=QKy&8;H!ORuErTQ-%he>mE!@K`!hS!W_h$Q zKYAV5IW2?f^zZP|PM4!5R)%nw==JP!@l64VEdh4d2&3|Xt!7lb>Q(L#D!jCA`xIeiIUmSmD zJaM-Cr#lDoroH?j@mS!J$Im?BRUZ_7Y3ZC;uXXqDk=b?%cRFJ>D)lZ-DLf&&bH}HL z&#aiQ7alsow(_KKq1?y91zztp<9$rnxVFT%Jvz8_$-&Rw(+aM|@i#8MX}Dui*BgtP z&PU-9dY#=C7mO!AY1qx@6yz==^GHYE;*8sg&l%Vi1o12(*4JYINgf55cYU%6Lv=qYo~{VvIEaVJmPFtJUc z)Sz^S-VDoWp*I7)Sm$aji#hwc?y>vv0KFNfn>(Tdm_w&O;uqMKvqG=#anb8pXExm3 zdtA?Mam03`HIM!{>xN4V& z!v4F&P4x$B%Tb+$xAzCU;JPWhsk?$}*ZCQLj;N(>=RQ%Ad-PDswxphE#|lfo8?9aU z+AZ5#d&9YPu^n7&XGB;vOWL9qDO}5wRWJ@)pzC(+o#FHiD^?chF}kgHi&%Q@VKxW* z*#<{xE)KJ$Vw!%ehYqaWy6j!}!@$T@Jfamwj}9%|d@E$@MwaHJkf~{z3k}#3#9|l( zjWfiLRIkbQ3tBSeQio6UicCSf5EI5jGc&z?Hg<(DX*S+WTOXY~qx0H~4WiBk+M6ya zIBbuKYGOIEye!|qa(38qk26fXj1z9?ys?@V#SoaYLTlAEuBa(Xg)|*Q9P=29`PXJW zC<_z_lR2KXAlK|}*hbAsmLG&BE?MIgRMD((z31}Fh6hUA0h!yc%c23TOttx@4zM=q2{uQYUxEEzM7}zb)&UCS}%Hr&IDOtZk_E*~>jZly09PCHz zEHqd?maLv}Vag}T_C42r_i0)(mfr1pCD|dsnENqthSxn+G4=}f+gc(=Q|cEc>2_?J zTKZy%wu06EZ!Gm}yq)}0*zd?)-?98{{GFoFMvpJ|X$GWX9k z$0=Ty9lkGS(a2={6>($T$3Grw@1DeeapvD6C(V%6sDA9kV&x|s*Jo&#-!l0vEcY`s z^j^fT#T6U>Tw-D2D6IH0`AeVv*>1Z_%a|RKbsR3PUs(~pY@@`Yxi=0rwR;9~UT9jc zu<_xAJ2$d%+G~T;JwC3f3XXkKW-?XoJR8(DNk)2i<9~(_{(y&5A`SZ1>6(0AbDV4U zu?MT7j`byeo}r__Q*Xe%>!QX3zlY0Tw#EKVTP`1+1W;#K@r-leQwUQV|{$}aCXdrL2{{fh0v-PuqnW&r%yW%*hL0rN~ zI<@C(Ug*VBI}Tpvn{<@N%V}2Z4LO;E54W~+<#F6>I5A`E>B%>q1vfm~8St!0cYA6_ zfQE3x2G%P%&79i0l?+J-S?}(iZsGS&&yhz$+G&$@OR&}C=#8uu++4R5r%xA=DxS^t zVyRBvah?xZYyBoLF4b6_J?B`%6(-HiXH=3^xh}a;!!0d-n^@_5-w2h*KSC)e-D^>PEgXjCA0eF zuOo|;(r2_iS|_yaF_X=~o~`e~PCdDMCuGBVgSOsM=>_`>PixppHgH~K;CaU)n=!r7 z?870^{YKB(lEwJ1Xk4vP;p#PdV{f$N_{{F*g@>lDubOgi^D~azZK}p5jEnmXMD!FZ zUQWr}vGi_I{I>QL6HYUR9Y5=8@{aG$&1X8BuM|FgC!@i{^+KU=cXw1mocuk734hZ9 z(io$X(vAxsZavJ_msS*~x>M^br&0LI0-yMI{NIJnw))6_OZcjHXGPc_$G@)kZYG$D zlsdmsuK3w1$LV!s#kmLB{}L95K3lj=a%$|}<0*&t?MvTWG|Ntr1?ZAnksHKBhal$`^{x$o`r|LZTcA1ywmMrn$cpn3RAI-OqcZDEVz&@e%9Uf zIMaZ>!XCxioLDj z*}579i@4t=IxwgtN@(cjm?YU>=iMf>AeGtCX>Hp*vz94E4H@PQy0W_p0;V%{-Of=^ zboL49IPH>z?HB47pIX*3Do9cQwb#r*AcHTPHuvedU=PbK;W))w_(<>c3Qa9^G zwaTs}9n}mt6_-EP?fZdS4NDZFR@_;dHL+`ZMa@x8trPWyYDe9*4rpktQPFB(x+ZmS zNq@$|<{63^o8*6=Q4frHwR^fql1AgHIjd(peIWGDknvM~m%dehf>A-bo2LHpGk&UR zA{K{=zJ-_^j|hwUYe+?~Rb$%-UBn{Y;F4TQgX%-$@fVu*Rgx?(I9V z#g0!z7P$RMV^lk&@+VBOxa}Kj!IlYJJ4O5@UFBzRgcO{rdKUP-_4p^pXxIM?n?t7+ zwCrB|#eTz4lvD?W%fO!=i8w%YnX!;H7=+y6`y)~l|cA-Ltk z&19y1IjMDzx!lel$`QWF8p5jTKS%J5d&8Mp>HW@8@)CYddVJ?pJkL*xiw=D8W9pHt z?0r+e#ALnqX5XkM95(M^pxds#OQ}xM2aP|^5&DRLjv~_;RnyBzm#d+eEz{4A0hp^VSn$Uw zN%4+~l+I6u>a-;Sw^ zGAExc<&$<2vCQ6(9nkwCU@5=(&ak#OH&{#-9(UWBr!TU^`eQHmoV{-&e4K<<8?;@y zz&Mxn_)68K8jM~S_b%@;7Tq3lb%v&g)U!L!mX@eEhh1Q>VPHHE7r|<}vB80>iHp-= zOVr({BpvRIzE-o?0^0t(+Px%w|W-m7cJfwK=5C2676$Dd z_XIr;u`W0zAzk1c)c5S&lErgo6tNcvb2a81n)K?$&(A{6hnJf&E#RF0&eSA2aqaCH zySD9_bVf!?!se9a41>!Z>$Nj#j%x`rlxz7`30@5?ZIj_UdzX{wv#3txoZ)Pre5*7-brKXbk%*<<>W0n({=} zWqp5rz8_@@DQvJib3{>dBkwxL=#Tu)8iyEuNc>22lt|?6H~+i%w${4!c3F&%M40M2 zS2WM9J2jr^BbYa z8iDt(-dQFvm&qT|l6cZm8&Z38PKe`yPwDc-vWJ@aI(`eC6Pz|}yLfl&))!wmE2?^h zJGlA;ZH_RDwq$D0$>Qxj;LdTWDl0u)j3It9`yB@hPwfv*{}N@_u zw=~(u=6d%dL#|Sv^^3VmtN9jeKHd9c+FFKLoi7!BMSWi}ML|&T7~kTJo6jwrbSrU1 zu*@Uv?5#_M6NhJx2SqPBjuwOiQ!O7h4io}cRWDNY;LEu6NptM;?>-9x|k@4S8FaA@bl*Y8Ai zR{u-t%2~f6NZK>uboq6Gg5Vik=OPm}YF-vBc*fG(d`H^)i=)71+oNl?i^(k~$mVM%kHWqL2jrH0-MO|kWwFbyRS8e_3(qysqe^ zK}LsWav6sQFs+PkIpSoscI`2brBczXN4qtiF+_zn3Y-e5ur*QAYGC0JGp$^Ez~}^z z?~RR#UE9+8m{T5U&u)6PdX4O~m=&sQ22R`^no28=-ZG!f_xL)a0bl4YfjwzYA33_r zc9aqo)7yMUWYNb0)^M|etet%qShh~se7vAg#C2_9hpd}Oo0Pr4I#(X%dL4}#W}9bf zagTGog7jWYT`F?m_DfH`f;~&08BbUg8oNjhC z_}Jo4i~N5Ewk!ExCH5yq%PP6$b>?n-%ID9L6f--4>9+nqC4KH!;z2o5E|+|CO*@@( zdHK_=RTr{eoqB%7-}`rL>n1F@;6LMgw{)UNL%ZQtt;aj^&38NyxBJl}dw;LnTD?$K z?kQ8-%;ODMFQ=TYId$;b_7w^G7a8)3wX9}}>}c81T>jU&s@w6`oSzB7DJECr4R57I znB>o#!d5+Xj`=H{tLay^yo-t6G2_@Cx5$UKk0M0s7QF9YvA;i1r@nD|j>76a4!c$` zNh%ok?4HW>Z(&$*chi>ZGoCDZ#h{{@mZqy2Ef{>%n{Cyr;@IMF1LJ^`t^Ml*`|?sN z*SK(B4^WD;{LYiO$;?Hq{8i%QHFJG+7t0)1nlw+Dm%qCsYfYQm?6*@x``%0qTzcK; z+LvSjgN3z@7TFO~IYM`4g{U^Y3EcYe3U6jE^VD}gRIRpH^{y+NnyOLJm~cDyYSzxA zQw@1sdl=W}B&JNd#}R+#JF!-A)vWt-SaN%%>6`^`e;lzvq%!=mHumJ#q&W8VzE^n%Q^#-R8aS9?|m7EMjr z?QX(9o%77xs|}*e8(yVOHFKAn_fM&3POHOF-UrX_9!oL^3q0&G^Wm?qH*9?@XPr+M zs9bH~cHj_iUia8Fx;uiQpg!v>r>}HEw;xMYRKvvRgc!4jpC#_8sNT+4AK5J$xb@Nb zSC&DkGP?{uFg-t${OYla&x)Mvj>)?j^8PG%eI=NaFS72`3X{uRlP@oSrD!{)ReZ@& z=QqrW(Ipx2iUAXzF}UtJ8(J30t>1Maa?gz?`vQNow{Laqe85w)-;jHy$AW(A{68Tp z1-L_NZY=)bVjJ>lqnY*Pdw}-Ll7BWK~$@e+Hvlw^Z*g zXntYg@$7zH^;P~g?H*l$Nlh;`e)@1RGPSf%JFisLp&#>1eSzVJpN%(k^bd*I7ybKo zu!i03PmhUe-maR?{Y!o{s_MD$WU}shbKh;55Pz=I)QH~5BMBClCfa#K#)h$2t*%=b z@MM4O?s!pcJ>6rr+ve#MKVmaJq<=xD?t$9UZ%PgL)uglKW8v%HuLPg5KHIlQ zR%cDd@;hEUzjt=cDJ;5pAjIon2lpCprLSV9{w4`DaAO#jLdG3Cb;-h
aaPGYXPZ_%{t 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
CnQPK9Ay8%Xr@mTU;Y% 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 literal 0 HcmV?d00001 diff --git a/test/test.rb b/test/test.rb new file mode 100644 index 0000000..f68a191 --- /dev/null +++ b/test/test.rb @@ -0,0 +1,29 @@ +require "rest_client" + +FILES = { + cat1: -> { File.new("cat1.jpg", mode: "rb") }, +} + +puts "response without sha256: " +puts RestClient.post("http://localhost:7692/store", { + content_type: "image/jpeg", + data: FILES[:cat1].call, +}) + +puts "response with correct sha256:" +puts RestClient.post("http://localhost:7692/store", { + content_type: "image/jpeg", + sha256: "e3705544cbf2fa93e16107d1821b312a7b825fc177fa28180a9c9a9d3ae8af37", + data: FILES[:cat1].call, +}) + +puts "response with incorrect sha256:" +begin + puts RestClient.post("http://localhost:7692/store", { + content_type: "image/jpeg", + sha256: "123", + data: FILES[:cat1].call, + }) +rescue => e + puts e.response +end