From 12cde89e39f99ebfc754343af0bf0830cfe9f7d8 Mon Sep 17 00:00:00 2001 From: w Date: Wed, 7 Oct 2026 16:44:28 -0400 Subject: [PATCH 1/2] perf(runtime): add exact binary32 intrinsics and local continuation --- CONTRIBUTING.md | 2 +- Cargo.lock | 14 +- Cargo.toml | 2 +- README.md | 23 +- docs/runtime/polkavm-app-abi-v1.md | 56 +++- js/packages/polkavm-browser-runtime/SOURCE | 2 +- .../polkavm-browser-runtime/package.json | 2 +- .../src/polkavm-wasm-translated.js | 28 ++ licenses/THIRD_PARTY_LICENSES.txt | 2 +- licenses/dependency-inventory.json | 2 +- package-lock.json | 6 +- package.json | 2 +- rust/crates/polkavm-assets-export/Cargo.toml | 4 +- rust/crates/polkavm-gpu-wire/Cargo.toml | 2 +- .../polkavm-host-runtime-assets/Cargo.toml | 2 +- .../assets/SHA256SUMS | 8 +- .../assets/THIRD_PARTY_LICENSES.txt | 2 +- .../assets/polkavm-browser-runtime.wasm | Bin 1190121 -> 1193150 bytes .../assets/polkavm-wasm-translated.js | 28 ++ .../assets/polkavm-worker.js | 28 ++ .../polkavm-host-runtime-assets/src/lib.rs | 10 +- rust/crates/polkavm-host-runtime/Cargo.toml | 12 +- rust/crates/polkavm-host-runtime/src/lib.rs | 220 ++++++++++++++ rust/crates/polkavm-motion-wire/Cargo.toml | 2 +- rust/crates/polkavm-ui-wire/Cargo.toml | 2 +- rust/crates/polkavm-wasm-compiler/Cargo.toml | 2 +- rust/crates/polkavm-wasm-compiler/src/lib.rs | 287 +++++++++++++++++- 27 files changed, 696 insertions(+), 54 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 781a4f8d..34f0e86c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -45,7 +45,7 @@ checksum and embedded copy, with no extra files or symlinks. Generate and review assets and embedded Rust digests before preparing the tagged source commit. The manifest command only verifies them; it does not repair release inputs. Output belongs in ignored `artifacts/`, not the tagged source. -The `0.3.2-rc.6` candidate aligns the workspace, all Rust crates, browser package, +The `0.3.2-rc.7` candidate aligns the workspace, all Rust crates, browser package, and npm lockfile. Regenerate attribution after updating `Cargo.lock`, then build the browser distribution and refresh embedded assets and their Rust digests before committing and tagging. SemVer prerelease tags are published with diff --git a/Cargo.lock b/Cargo.lock index 2be4fe3e..3f6f9710 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -879,7 +879,7 @@ dependencies = [ [[package]] name = "polkavm-assets-export" -version = "0.3.2-rc.6" +version = "0.3.2-rc.7" dependencies = [ "polkavm-host-runtime-assets", ] @@ -896,11 +896,11 @@ dependencies = [ [[package]] name = "polkavm-gpu-wire" -version = "0.3.2-rc.6" +version = "0.3.2-rc.7" [[package]] name = "polkavm-host-runtime" -version = "0.3.2-rc.6" +version = "0.3.2-rc.7" dependencies = [ "anyhow", "getrandom 0.3.4", @@ -923,7 +923,7 @@ dependencies = [ [[package]] name = "polkavm-host-runtime-assets" -version = "0.3.2-rc.6" +version = "0.3.2-rc.7" dependencies = [ "sha2", ] @@ -935,15 +935,15 @@ source = "git+https://github.com/paritytech/polkavm.git?rev=642fa95a6f1df85612bd [[package]] name = "polkavm-motion-wire" -version = "0.3.2-rc.6" +version = "0.3.2-rc.7" [[package]] name = "polkavm-ui-wire" -version = "0.3.2-rc.6" +version = "0.3.2-rc.7" [[package]] name = "polkavm-wasm-compiler" -version = "0.3.2-rc.6" +version = "0.3.2-rc.7" dependencies = [ "anyhow", "polkavm", diff --git a/Cargo.toml b/Cargo.toml index 2d6db1ba..1919e5f0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ members = [ ] [workspace.package] -version = "0.3.2-rc.6" +version = "0.3.2-rc.7" edition = "2021" license = "MPL-2.0" repository = "https://github.com/paritytech/polkavm-host-runtime" diff --git a/README.md b/README.md index e31967ac..d9417662 100644 --- a/README.md +++ b/README.md @@ -300,19 +300,26 @@ A release is identified by one source commit and records: Release tags use `v`. Moving branch references are not release inputs. -The workspace, Rust crates, and browser package are aligned at `0.3.2-rc.6`. -This candidate is `0.3.2-rc.5` plus the compiler correction for heap-backed -fiber stacks: SP-relative loads and stores use the same guest-address mapping -as other dynamic accesses, rather than assuming SP always points into the -reserved stack segment. This lets OpenHV's managed fibers use the compiled -browser backend. The 32-bit and 64-bit regression compares heap-backed and -reserved-stack accesses with the interpreter. +The workspace, Rust crates, and browser package are aligned at `0.3.2-rc.7`. +This candidate adds exact binary32 add/multiply intrinsics, accepting and returning +raw IEEE-754 bits. Native execution, browser fallback and translated Wasm preserve +round-to-nearest-even, subnormals, signed zero, and the documented NaN payload/sign +rules. The bounded intrinsics consume guest gas without consuming Host I/O quotas. +Translated float calls continue directly into the next block when it belongs to +the same generated function; gas checks and real Host-call suspension are retained. +No sustained application FPS improvement is claimed by this release. + +The candidate retains `0.3.2-rc.6`'s correction for heap-backed fiber stacks: +SP-relative loads and stores use the same guest-address mapping as other dynamic +accesses, rather than assuming SP always points into the reserved stack segment. +The 32-bit and 64-bit regression compares heap-backed and reserved-stack accesses +with the interpreter. The candidate retains the surface-resize fix: offscreen passes retain their resources across resize, stale default-surface passes report error `4` with the offending command index, and offscreen/resource-only work does not count as a presented frame. It retains PolkaVM engine `642fa95a6f1df85612bdbd0a7e4353a2aa4dc9b5` and the prior translated-dispatch -optimization, without adding the unfinished binary32 or checkpoint changes. +optimization, without adding the unfinished checkpoint changes. It remains a prerelease, not a stable compatibility promise. The release generator deliberately refuses inconsistent versions, dirty or untagged source, stale embedded files, or mismatched compiler/engine provenance. diff --git a/docs/runtime/polkavm-app-abi-v1.md b/docs/runtime/polkavm-app-abi-v1.md index b39482bd..00b4ebca 100644 --- a/docs/runtime/polkavm-app-abi-v1.md +++ b/docs/runtime/polkavm-app-abi-v1.md @@ -1127,6 +1127,56 @@ only while the execution is in the foreground and MUST stop physical sensor acquisition when the execution loses the foreground, closes, or loses authorization. The application MUST handle `-1` and `-2`. +### Exact binary32 arithmetic + +```text +host_f32_add(a: u32, b: u32) -> u32 +host_f32_mul(a: u32, b: u32) -> u32 +``` + +These optional imports interpret both arguments and the result as raw IEEE-754 +binary32 bits, not integer values or pointers. Addition and multiplication MUST +round to nearest, ties to even, with gradual underflow (no flushing subnormals +to zero), signed zeros, and signed infinities. Each operation rounds once to +binary32; it MUST NOT be fused with another operation. + +NaN propagation is explicit and matches the guest soft-float implementation, +independently of the Host's native floating-point NaN conventions: + +- If either argument is a NaN, select the first NaN in argument order `a`, `b`. +- Addition returns `(selected & 0x7fffffff) | 0x00400000`: preserve the payload, + quiet signaling NaNs, and clear the sign. +- Multiplication returns `selected | 0x00400000`: preserve the payload and + sign, and quiet signaling NaNs. +- With no NaN operand, opposite-signed infinities added together or zero + multiplied by infinity return the positive canonical NaN `0x7fc00000`, + regardless of operand order or signs. + +Subtraction uses `host_f32_add(a, b ^ 0x80000000)`; there is no separate +subtraction import. + +These are pure, fixed-cost arithmetic operations: they access no guest memory, +allocate no per-operation storage, and perform no IO. Their guest instructions +remain gas-metered, including import calls. Hosts MUST NOT charge them against +Host IO call-count or byte budgets; this exemption does not apply to any other +Host import. + +Existing guests that do not import these symbols are unchanged. Guests that +import them require an updated runtime providing this exact contract; an +unsupported Host MUST reject the import rather than silently substitute an +approximation or a fallback implementation. + +The browser Wasm translator lowers these imports directly to binary32 +arithmetic without a JavaScript hostcall. It checks the result for NaN and +repairs exceptional results from the original integer operand bits; non-NaN +results need no operand checks. This lowering preserves the register and gas +contract above, including when execution resumes after gas exhaustion. +When the arithmetic continuation is the adjacent block in the same generated +function, execution falls through without re-entering the group dispatcher. +The translator still records the continuation PC and retains its gas checks. +Continuations across function/module boundaries retain tail-call dispatch, +and ordinary Host imports still yield to the Host. + ### Time ```text @@ -1252,9 +1302,9 @@ asset files 2,048 one asset 128 MiB all assets 256 MiB one asset read 16 MiB -Host-call bytes per init/update 32 MiB -Host calls during init 131,072 -Host calls during update 65,536 +Host IO call bytes per init/update 32 MiB +Host IO calls during init 131,072 +Host IO calls during update 65,536 sleep during init 100 ms sleep during update 50 ms audio samples per submission 96,000 diff --git a/js/packages/polkavm-browser-runtime/SOURCE b/js/packages/polkavm-browser-runtime/SOURCE index 2db67d66..df47821e 100644 --- a/js/packages/polkavm-browser-runtime/SOURCE +++ b/js/packages/polkavm-browser-runtime/SOURCE @@ -1,6 +1,6 @@ PolkaVM App v2 browser runtime Source repository: https://github.com/paritytech/polkavm-host-runtime -Release tag: v0.3.2-rc.6 +Release tag: v0.3.2-rc.7 Rust crate: rust/crates/polkavm-host-runtime GPU wire crate: rust/crates/polkavm-gpu-wire PolkaVM native revision: 642fa95a6f1df85612bdbd0a7e4353a2aa4dc9b5 diff --git a/js/packages/polkavm-browser-runtime/package.json b/js/packages/polkavm-browser-runtime/package.json index 25d52019..5f155e4d 100644 --- a/js/packages/polkavm-browser-runtime/package.json +++ b/js/packages/polkavm-browser-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@parity/polkavm-browser-runtime", - "version": "0.3.2-rc.6", + "version": "0.3.2-rc.7", "description": "Host-neutral PolkaVM App v2 browser runtime artifacts", "license": "MPL-2.0", "type": "module", diff --git a/js/packages/polkavm-browser-runtime/src/polkavm-wasm-translated.js b/js/packages/polkavm-browser-runtime/src/polkavm-wasm-translated.js index e3256d3c..c1a8b8ed 100644 --- a/js/packages/polkavm-browser-runtime/src/polkavm-wasm-translated.js +++ b/js/packages/polkavm-browser-runtime/src/polkavm-wasm-translated.js @@ -12,6 +12,26 @@ const CORE_STATUS_INVALID = -3; const CORE_STATUS_DENIED = -5; const CORE_STATUS_LIMIT = -6; + // Also serve modules compiled without arithmetic lowering. Views are reused; + // the synchronous pure operation cannot overlap another instance's call. + const floatBits = new Uint32Array(2); + const floatValues = new Float32Array(floatBits.buffer); + + function float32Arithmetic(name, a, b) { + const multiply = name === "host_f32_mul"; + if ((a & 0x7fffffff) > 0x7f800000 || (b & 0x7fffffff) > 0x7f800000) { + const bits = (a & 0x7fffffff) > 0x7f800000 ? a : b; + return ((multiply ? bits : bits & 0x7fffffff) | 0x00400000) >>> 0; + } + floatBits[0] = a; + floatBits[1] = b; + floatValues[0] = multiply + ? floatValues[0] * floatValues[1] + : floatValues[0] + floatValues[1]; + const result = floatBits[0]; + return (result & 0x7fffffff) > 0x7f800000 ? 0x7fc00000 : result; + } + const INPUT_EVENT_BYTES = 8; const MOTION_SAMPLE_BYTES = 48; const MOTION_STATUS_UNAVAILABLE = 0; @@ -2085,6 +2105,14 @@ `translated PolkaVM called unknown import ${importIndex}`, ); } + if (name === "host_f32_add" || name === "host_f32_mul") { + this.#setReg( + 7, + float32Arithmetic(name, this.#u32(this.#reg(7)), this.#u32(this.#reg(8))), + ); + status = this.pvm.pvm_resume(); + continue; + } this.hostcalls--; const yielded = this.coreVm ? this.#handleCoreVmCall(name) diff --git a/licenses/THIRD_PARTY_LICENSES.txt b/licenses/THIRD_PARTY_LICENSES.txt index d46bde20..e42cb8d1 100644 --- a/licenses/THIRD_PARTY_LICENSES.txt +++ b/licenses/THIRD_PARTY_LICENSES.txt @@ -1,7 +1,7 @@ THIRD-PARTY LICENSES AND NOTICES Generated by scripts/generate-third-party-notices.mjs. See THIRD_PARTY_NOTICES.md. -Cargo.lock SHA-256: 03b8161d54ecd1854fe55e1eb2ac5501fb6db36cf29299da265114745be033cd +Cargo.lock SHA-256: 58aeed4b348b2b9bab144eaee514aa96825e7650a0409f2fc2e98be9f27134bb Rust: rustc 1.97.1 (8bab26f4f 2026-07-14) SCOPE: browser-default/runtime = normal browser dependency path; browser-default/build = build/proc-macro path. diff --git a/licenses/dependency-inventory.json b/licenses/dependency-inventory.json index 03bcf37f..b6beeff8 100644 --- a/licenses/dependency-inventory.json +++ b/licenses/dependency-inventory.json @@ -1,6 +1,6 @@ { "schemaVersion": 1, - "cargoLockSha256": "03b8161d54ecd1854fe55e1eb2ac5501fb6db36cf29299da265114745be033cd", + "cargoLockSha256": "58aeed4b348b2b9bab144eaee514aa96825e7650a0409f2fc2e98be9f27134bb", "rustToolchain": "rustc 1.97.1 (8bab26f4f 2026-07-14)", "browser": { "root": "polkavm-host-runtime", diff --git a/package-lock.json b/package-lock.json index 4dbfe13b..ccd6a67f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "polkavm-host-runtime-workspace", - "version": "0.3.2-rc.6", + "version": "0.3.2-rc.7", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "polkavm-host-runtime-workspace", - "version": "0.3.2-rc.6", + "version": "0.3.2-rc.7", "license": "MPL-2.0", "workspaces": [ "js/packages/*" @@ -17,7 +17,7 @@ }, "js/packages/polkavm-browser-runtime": { "name": "@parity/polkavm-browser-runtime", - "version": "0.3.2-rc.6", + "version": "0.3.2-rc.7", "license": "MPL-2.0", "engines": { "node": ">=22" diff --git a/package.json b/package.json index ef72885e..fe44ffc7 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "polkavm-host-runtime-workspace", "private": true, - "version": "0.3.2-rc.6", + "version": "0.3.2-rc.7", "description": "Host-neutral PolkaVM application runtime workspace", "license": "MPL-2.0", "type": "module", diff --git a/rust/crates/polkavm-assets-export/Cargo.toml b/rust/crates/polkavm-assets-export/Cargo.toml index 2456b70f..a56f1093 100644 --- a/rust/crates/polkavm-assets-export/Cargo.toml +++ b/rust/crates/polkavm-assets-export/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "polkavm-assets-export" -version = "0.3.2-rc.6" +version = "0.3.2-rc.7" edition = "2021" description = "Exports host-neutral PolkaVM browser runtime assets" license = "MPL-2.0" @@ -11,4 +11,4 @@ publish = false workspace = true [dependencies] -polkavm-host-runtime-assets = { version = "0.3.2-rc.6", path = "../polkavm-host-runtime-assets" } +polkavm-host-runtime-assets = { version = "0.3.2-rc.7", path = "../polkavm-host-runtime-assets" } diff --git a/rust/crates/polkavm-gpu-wire/Cargo.toml b/rust/crates/polkavm-gpu-wire/Cargo.toml index 360bf4ae..1ceba75c 100644 --- a/rust/crates/polkavm-gpu-wire/Cargo.toml +++ b/rust/crates/polkavm-gpu-wire/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "polkavm-gpu-wire" -version = "0.3.2-rc.6" +version = "0.3.2-rc.7" edition = "2021" description = "Bounded host-neutral Tri2D and WebGPU wire protocols for PolkaVM applications" license = "MPL-2.0" diff --git a/rust/crates/polkavm-host-runtime-assets/Cargo.toml b/rust/crates/polkavm-host-runtime-assets/Cargo.toml index 47548cdc..07a36e3b 100644 --- a/rust/crates/polkavm-host-runtime-assets/Cargo.toml +++ b/rust/crates/polkavm-host-runtime-assets/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "polkavm-host-runtime-assets" -version = "0.3.2-rc.6" +version = "0.3.2-rc.7" edition = "2021" description = "Source-built browser assets for the host-neutral PolkaVM runtime" license = "MPL-2.0" diff --git a/rust/crates/polkavm-host-runtime-assets/assets/SHA256SUMS b/rust/crates/polkavm-host-runtime-assets/assets/SHA256SUMS index cf0b2f3a..5448b924 100644 --- a/rust/crates/polkavm-host-runtime-assets/assets/SHA256SUMS +++ b/rust/crates/polkavm-host-runtime-assets/assets/SHA256SUMS @@ -1,7 +1,7 @@ -96a71c73bb3bff63209c4ca0355175fbe32ee5561296b1fe18be244914503097 polkavm-browser-runtime.wasm -0fbb81d3a5705bde006bdbe24f1c5256cbac47f02dc623224a5b1c07627fb32c polkavm-worker.js +820a2c074f9c66593f92b95ef10277cbdad77156fd85b63ef26e92af7cd37340 polkavm-browser-runtime.wasm +593d88c72873a9eb2bd9fde2059928cacbbf02165c29dc27620ba91fb93f5855 polkavm-worker.js d82122ed55f389f00808e11b1bbe36195e5b711035ca887f33e79aa6cbf01e60 polkavm-gpu-worker.js -0e180d6044be0fde18fbcfda4e7ba26e669a98cf6d92471f77310c5360973e0b polkavm-wasm-translated.js +470140632156f45b9c671582b0daaf8bbc1f5f1ea1bc4365355bbaec145be7f6 polkavm-wasm-translated.js 5b0b9a6909716a65099fa45b80b9e802fc4b10a4300b3a429bd1ed88ec49e5bd polkavm-runtime-core.js fa600faff369b09eae5a50dd4b08445b7762d89d6db269b70230ad5a8bf67951 polkavm-wasm-worker-entry.js edb78a7e5973b92c36231e1383fb384f400ba277e9158e5228f39b7234ad4e29 polkavm-computer.js @@ -11,4 +11,4 @@ caa19c63fae1fd4efd59b9b49f9fbd8425cebc8d744d6512f1d92fae24a96943 session.js f72633219f482e458a1420f60ecc84d638d12d5389173fb6c7db85ed4447667f file-input-router.d.ts 4b89d4518bd135ab4ee154a7bce722246b57a98c3d7efc1a09409898160c2bd1 LICENSE-MPL-2.0 9c0e912f1ba2853c28497f21c6bed1aa17dd11939d01cd3d59656bec5fa32ce1 THIRD_PARTY_NOTICES.md -060bcb670693a049cd0eba3483b8265d73ec1266f04dfcd7e44a9c9f599fbbeb THIRD_PARTY_LICENSES.txt +3743334b17709c9a6295e708e637015bc1c1c8def5845865f25b42385fbdf0e7 THIRD_PARTY_LICENSES.txt diff --git a/rust/crates/polkavm-host-runtime-assets/assets/THIRD_PARTY_LICENSES.txt b/rust/crates/polkavm-host-runtime-assets/assets/THIRD_PARTY_LICENSES.txt index d46bde20..e42cb8d1 100644 --- a/rust/crates/polkavm-host-runtime-assets/assets/THIRD_PARTY_LICENSES.txt +++ b/rust/crates/polkavm-host-runtime-assets/assets/THIRD_PARTY_LICENSES.txt @@ -1,7 +1,7 @@ THIRD-PARTY LICENSES AND NOTICES Generated by scripts/generate-third-party-notices.mjs. See THIRD_PARTY_NOTICES.md. -Cargo.lock SHA-256: 03b8161d54ecd1854fe55e1eb2ac5501fb6db36cf29299da265114745be033cd +Cargo.lock SHA-256: 58aeed4b348b2b9bab144eaee514aa96825e7650a0409f2fc2e98be9f27134bb Rust: rustc 1.97.1 (8bab26f4f 2026-07-14) SCOPE: browser-default/runtime = normal browser dependency path; browser-default/build = build/proc-macro path. diff --git a/rust/crates/polkavm-host-runtime-assets/assets/polkavm-browser-runtime.wasm b/rust/crates/polkavm-host-runtime-assets/assets/polkavm-browser-runtime.wasm index 3c4a0eb94e12321afcdebfd0a1e6de0cf5149268..b581bd266a5c41964d39ff6f4f9c938ea2132cd4 100755 GIT binary patch delta 287973 zcmbS!2VfJ&(y(_|mWw3&z}-5@vL(|^O{fWQbOhpkZ z_CQl$K#0i{VKSKvK7k}Kz+}X~K>TMUMw0()U@zbNE5ZIoR%9$v?}gPPkJM`6v5g*^ zfNPhk6vGV|E13pv+bYD`}F>**Y`d8`aD%f zg}cZzb$PghJXeo|$B-B5<8TK{wv<ZIm9O^fb(f)dkRQ2mf7fDkyA}f)h z>Z-_usB}x{tGs^I>#Og5hN&#dNrtOsqhiPiwRuz=$xsvVK2uGLvXPPMtSCEEEmhTL zQ58JIN2yPuUL&K`s?p_G7IOY9Dn|V^+RVUGQQXgpwy-gla{S)%O}C%BeEQ4xJ-+i9 zD~QCX%vzd^Lkh8KEo%rFufAoqlL=~~waUj6En%;+*tf@bJ-+wJwpd>+_^#WJJv_rO z$?~^h62+cT$g#wz4qKQSAe+c!)ozPWE6HXy#bOuGwsIhwirjLHzH%s=W{DQ}*|L#M zx5SG30@g%ql*9Zt3u1(D&1RG&IbY@Nl)?=4^T?$yO3_VsF&*ch@weJ9pIHmZGM zon(_bD%M3dtIK1{kS*$|*s|8Gmhe|c_J=;*yM5ooXPX)q7w6di_mThMyB^wR>DyvQtfuE1$H>5-`m|d=z5ZZA^<<6@SWkG=6B{{Mg*EtMTXKx5v+qSsarY zJ}+!cz^<^7fujQd4456ZC+tq(f|w_93r!Q_7nzR4FEt&AKW^`5yyu&09A`{3s>Um( zN4~dx2OGgS)HuTU)c20>5aSqQx-rA}!uPIkigB!Qm~o`>zVEFh-$BMK<0#{3<8b3D z^J?=N^R|FCS)~bXUL=|J?z1X;Hv4|2+W@>E3`B{%egH=0WBu=5yxL z<}>EA=5@wQ^I-FN^9A#I<4E%m^F{L|^9Eyz`Lg+n`KmEBexmuF`JwrN?@aRy^EC5y z^Iztx=4_)Hx`=DkOg6-yz$J{p$3%(gQJa~+G zym^5+Hzwb_BkZL4l=+%*k$Iu{W^A5$wt0?uu6dq0*PJxpJl33L2J>3;t+;jO_2v!c zjpj|}&E_rUt>$g!9p;_pUFO~9BJ&>eUh_Wle)FH^1LlL~L*~QgBj%&#W9H-L6Xwj| z;X&y^YS7rA(LoS2I5;zCSkS1TaY0!@V}gbTrv^_5&JG?QJTW*uI4yWma8B^#pfSM^ zoE1DRcydzkl;EksQ-Y=kj|?6iJjgjScvkS`_&LGzf@cTM4IUAk5qu-=THHD3jNnnh z3&ZAw%?-Qn8XC4FY;l-7EI({jSV7p%uxDXU!Ulz3kH6+R8$Tj^Xn0!q$nbOWU$)D( zIo1*OXSNr%N46)nOuK3yVo$XXwGXq8wu61FeY|~=J!!IihJBWOj(whezI}mxob9?i zPab32U@Np8u^qDQwH>f+v2C;Mkax+44YcOjbFF#S zan`fe?be;v_12Bne)a+Oq1Iv6r1|m!d4x67x=3CuZ?;>GwrkObM3kIJo`fX_$1p6IaeNQ+h|*B zJ8C;@+h;py+iKfx+bQps56eg8vC&>b&YkM zHQRo|_Dp^ukFaIh9#|h)Z(HwJN6T6A1bL!-$a=)u&z5FAW4jQ4CvJK4wb+8_Gx4Xa zU>##UV_hq+m#0{#TBlj3Tkl%$Ssz=UShM9x@(OvSTqN(2ugHJNx8*x>x^0*(X^w5K zZLw{MZJBMkZG~;6ZJlksZIf-YZMywg+|#(J_LH_D)@k-rwiN4q`_LGOIUT<+W>HLD z%&IitG&V$ZJ&RNcj&I``- z&O6SV&RfpgPPg-}^NRDb^Re@i^DpNO=SJr+*JM|^Yl>@`YnE%SYl*9$E6=scwc547 zwZ>KG8sJ*tTJBosTIyQtTI9-i4RkGZ6}VQq*1G1q`nyKBhP!fI*Il<<^&YzJxE{M6 zxo)_gxSqNmxNf_K$G>n5i%*Xq5kEA3Yy7tO?D)d?wecI`H^m=|KM_AG{$Tu#_`t(w z8eY!tQvNuVj;AIk`@~U;kHg17q(Rg3TUUxA^h9d@7YSDg*_r=t6({jcnT|-Xpg};G zI-+W0I(n+=s1~YTs#=p=&5x-TPNSc0Uz_ZsJn>NqcHoUPf#ds_?lBq&N(Kp4>(>f{ zD*gsv_4gXT(P5+2CpB&-s2Y+oYca1|LpjE;k_UQKK+7tlmIx^11sKAJs#bmd5w9Z(sTcV!yf6x>CsRT|b29EPh&4WqE#u?^h<&<_(uun*KOqxynpi6!+*oO zYOV8{x}bAN{)yH*$lqnX;_aWvQnmU!ZAf~4@;lxBj|{uoO(2Wawe6xvx@wtz9l2ic zaiqF>UM02R42zIF=e%|M&IA$WcCew>y0ydB|DAoau0#&16#A%>TUW>reE-xx^y2Xc zycc~tzJ^OUioOF=!K@);cDb3(b$6;pV&!E`ed9{4x=N` zVNo9XBsv16tbQC4;PAt#yF~5NY0LlKGbHw(&S8I7{`{P-M*4r!`uxkEP9|Q->-r9r zb_DsWPr8@F_AEW@^j|U7>x;J-xvj29{5bg7Q9gMc%2R%oRMqwM0CHcQ_4PTN!ozy@ zBkR=QZ}!EfALCe6l>&bCnhsCh9U3&>uh&G1WT*G3`8Tpx`s5<1G2afY^sh*17OOgB z)}^u^QOt=_|8%u)-#iLw>Q_CTzCvr%H9x+aKk>U85?Pl&Y@n}S=-|j>q8r2BdnRlN16Ac5am)%+0U;YxtKb@+FI16ww#dYuh&@#q?T`( zS~MXCoA`F(oqsZ3yqPtV(0HkT%m`O+OmgDgv)L}SR?c;kPG**Y1jFe)rZBbPIEVU9 zi}{?+t42g;7xkg-)KbJ#b)10&d8+!Wj?dm!4^FfGk5k%92l=UkytJL_QVVmP>WdlM zbon>;gA1DBMYS(_2VuPyNhIuf3XZ(VD%Ms9QKUo%mG3?@>earLUH#!Yk4F5{cHJ`?b2F4I7k(@^#3Y6sb? zK3)B@<#IXA zA!pCjnT1uNp6ifPL5Wgwf4y&be_Xv$7#1kFH;t!+L6r|^xH|Dz9ktWiCMdKiYrCS* zPG5|IZ-PjG8oy4a<8#%<>)x>sPD3hjq$&4@q<;LtL1L-NL4!?7YHt35b#=MW|60%M zx887@q^b=zcE*rb_QqjhOLuZ>wA)8o&dqWxHAkA1<7&fAy#v!AZ zHGOjh5h-17C0vnhhr9 zp&GEgO%3glm>fpwD({8K!4#4h%gjC|E&$$*cyIswOemyuHFbL{M zP5dU@L&R8vdhD@NeS0UDc+8Uq>b3J0_2kY_lw9xymm0aNbJ$7Frh_K<1jI52b&x8A zN+;E!yAsGLb@{IJpwqmZHpEp}N|Z+Ax8L1|k~8XtJ(ckH)}HqetNGq|r1#BU8%Fnr z?k!KwsY~`A#r87yy)?q1`)gn{sKx#`{QY{roh-~x+uxmH%^L^GBX-om8sw1L=3tqG z`%^ea{z@TDU^ZN9y7N(C|nk zPTvoY$WgaA4aK0CrIE>ahcXlNlpX5uBcI|5ck4(;az|}-^fe6oCLLW*_Nk4J#fO~X zBaGvy&1RD$z?H1Neeaa|@$qQvdh$h0Q1R;S`|&8y$j5fI;fXMMF%?cLfuZWxCytY; z`7KY5=iW)R$HkKDeM|3Y48aOU zM$-W!pq+tyOy)qYfs`ES{1cZy=bUEli%>uLt0gjlvs_*CSNHH?^Z2M8*Cztb0-ROS z{royt*HFZNbp10O_s1L6L;H)N@lG0!d0j2IA(IE{;Tv}ledo=RjjC;LH6o8y^;SHc za8+G#s|?EV^eqPxq_-2u6SeB?i0BPhdGob!I#o$j7K?|c{8!qN-|hCdoaKFYbed|L zyYJ%?Gwp5;DavnpkMY8nhRJWG=*u3}{y0($)>BP3`Sl;n<;Yhaa!Rc?@L@8meIAt| zQ&o7BO#9DOqaIhM&-9_~_IMQ{$2>vg{NyJg1hGavU82b}LhbgfSbAo)=vfR#b8kMg zlfgjz4546M>RVQA^*o%o)o#xfDBqk0m3nnR&#G&mhtvLP`G=o3N4`eK@}U~tpWG*B z;TJ+`(E(|&h>(2b!edcg@E0Xb>9PY*osoEQ4mvW#8<+-}jI1Vipsj&?^7m1Ps=j18 zf)Dr#Wk`PFf{%?PgUoSXHIimHzEC58{6t2<+yJr*pOgrqz{)_<7Vpg_5<@mZB@-Ei zPisx&7t47*&vXsB0L{&05>mQoCKHHp&NM9YfsZXD3Z?{+p&nwrg9R}`m`LItt(XF; zM7nu!YL*i4J`G4+1g$GYc6&O)qPkX6}e@)Zt~JJU)G#8hGq zz}gEm#DEs$2DoM7AeZ2fOvd6M_O+39WG}pKC#?eZpXCZ3sa$oZ*hw{{11n<4u&VvD zP+$&Ljz-3!b6SpuHnkuHekV))G=CcBgg<&l3Q>qO*!`1(_e__wqp=|z$K2N+hRMVa z*2ZGlWjGy6mLZ?x;)sEgBADbNHf(N{iyR;eU{pM5ftn5{;z@;o1zbSL_%bL}hBPL3 z;k`0Ain;>SC|fM)jd<@X8in}*q#nFij*CQ7l(OXoo<45*<;l-jQmKLvwhpXSQ9Owu zZ&67Mxn6R<5?MkQ--8JWD3m#X7*mk-Z!06qflr0VWM#}b7*mCOgvEENkS6qbDy*7p zkfFXG^M_7Vi9gP{xBXZQDS%#n%ms6*5+{OoRVD4oeTedBWuQeh5=(ADH-8q10vS+^ zG@uVsg!c!Bs*%@&3TNZspyAyjBo0+$0>YqbbrMGMp;>j3V7n>gM3fyqiLr#Q^`>BM zu?+~2@*$%-`30E^tU)G|OxU>{c_^xZ9e4rPYw+0%Q(hyF(ey#~>ttGakEJ8%3cX_L zwDDF7?-ioqn*(3hBnwFv*lLk#_GIpB#WL=1yddAAj_B@}f0vf(a zta$kZFLhTA!7jxSbR{V&xRTiqt1AIW&y^^>QZ`PM`D0lj`gsMgkds*jJKrR(@YOmQ zbjq|HWP*=bT9dULJ0#a9V?BLYR-%s&>I)s!Rd8+taty_zKdo;lo^lkNO8eY}3K~wb z6h3cEz9jQucVp6*n2ueMplrAu)P_H#><6f#4gY0 z`<^(1#UDpAnbsp!@me(zr#+P(f}=UHV^a;9lPJXhusNwp#z0zgQWjfW)ST2p;Fad2 zwqp!$G1g#4oj}z^FSI5NMFAa3;bLUcd}!1H>pXNPwji~Az43)ZD|oR(dC0Gl>R#T4 zq!Ci+Zt@NpQ5=PM73)en(wLHGP`LwHMURYzYaLMIpTQUJk^1yb3e;O~>_S%#gnB$exMHm#7NaxcBdx9|6NV6F=XlTy#*>k;I8-vRZ_9WpO^}bQzRoJnRb-dyraf zGfIHdIT*3fb@VaC5Ryb2N}1krf8{1CQEu1DM|#T*%4?je>vK}Glv)CM%7=r${+!e* zHL3(SgK}{G=cIP2(O$5>aw?F6pK>BuUa$e@2nRR*00gk3G3zwWb+!k4 zkqpWu(c4O2;tFyJ`h87Y5bzZl`AUT$B`OqnDpY~XUy)Q#El4DeQYl_Me^Pa{o1$w8Qw3`^^+$CL{-9 zGD$_f3%-IAKL>{TqzvekiH1DGJuMZz55&KeMglqhouQ;6b_^WpXf!k2_0rJ@VsX!5 zxY%Ry55q|%y}Q2HCMT5%3x*3)JBE{{9Jh2viKaCnlx%vmr|DlZ$=e)%%ShtKX&0%u zUQL9@DzQdq=pFN`M>?aC<@Wi?ARGr1`b$I5SNv=gS~%?GXo9G+=X&YLC ztLlO)f9WrGiwWd4PW<)%C* z-P0zMJYJ>4R5I>gRtcF#R$&$Qp6TS;|7UCIvk2}}*TIm5q&&!T$QS>z$ysx>rn2Ud zh5xcj&s=huH}!rVne;EKL@yvcb?!3%WtBGvfiwX6+%8w7F z97tSFUZ*ewCNC$gz~4>2@RsyhMnWOYP0ScthB0okr(}tf14l0-ySzX_2!TkbpBGqu z1*t$LL5CG&niuwB1*%gz#H}Rjy|Ak*(Z5ayset_Ag=G|w#$nn4jK3q0n-8kIh8~SH z1}+tl54?EIR*~$WNz=G3!})}6pOopoy^3sOWP*FuT7nV%#aUZOE_zk-x8UAMg>Sc# z>ZHg$Z7UfRfbM67eWWb2XxkPaUVX`67;%V{gTV*LLB#8PkW3|hhtOs4!G+!bF#4eV zrb4a5q$N25{SK38+J8JuJdBgz2rNHL63uHSabA3tN{P}5sB(l{B@;kCiXPZqsCSfD z1J;Nwq^UgtvMVqgemF`>N9p9bv5XcIQ24I_XoGT&qM^!wJx6ij8tJZijC@Au;u~=5 z4CzLuL#fNi4n9^ofphf^bUQ)bAY@`v!9-Sl+@c1-V*6P5}Go%e% zKZVd`7mJ}SFCp~oX@s`ARSZ3P3!#V3Ahf~lVrbEAgzh|xP+u?I$^fTHYgl&X@(ntT?a^DZFty_*8s?IEcQ7jGhk$rlltd&z_QD`Z_lK)qzp4zepqmJRqNXL@@RN;wD}tktn#5;v9%_ zyg=T9F4z86G)gb(aQ&5{%3S!oQp+2!l;H5_MfGnYTT?E3*h+vJSCD}kw-5?filOEH zLTI_$2z~8NF?8b{gxc;PH2tq)sO>63OW#F1Fdc;OR^BC_LDw6_7`JX9#?yNOgDVS6 zyHC2qvj+kLtNaQV9*_vS;bjrvqv*}ihgi1%;6Q(^wWu6BMpL<7+&by{n8v7iJ zaO+m0s6a0o{sQSOcyj0AXccI`LD20QZqJXEEG5U5)S_K{aSIN< zG|75(5YA8B6Dp2G7lwm*#7aq7#SQ5?sAi;pAl?Fg84XqZ=s5xq>Q8?m*I>9mjYdO_ zD0ShiKW%~~cZFzO;pU}G5l82cC- zPCvqpngFhZ$>9i`2+zW4JV^s*1numv(J*z&x@(AloCs>d-S)f)TAr+iAS!jG&yKKCF1m#79s~>R zG#<{z&~cC&k0cXfkmL~u4T5{|v=!Z}BV2RQ>M%5xCek5;;G~s)3>V^QFc|`UoU|o0 zC_~G_DJQK)Q}oiVPApB~rISf2{NbRVKra^!!h2qU9xf(3fu@zDnC7L}7Db*>h9;8Z z@T3f#6qX?tEQ}9I7%8L;X+vCOM?+p&Dwo~78MpR^mSWeMdIaT(Cn3+rp``Kr3nL7N zFeidY$&=uAS^6KEI?3I;9Q}ZhU9h=4wI%K1YbH`{V=-`KTn_~#8XNFaUc6v!FisQb z@WavbmX)IhB{|uU*v8^(;%F}w`6C~%R){m<>AnMh{IQPFq+oj~f@$^^d{%*WZlgW4 zu~?849_A(c)TB*NLoiCh!y66pW`am~7|Kt9Ytkq;$pTZwi1PG~=fn$~F zn{=?iP1n%Mz^*DZm=2i)C##^H5mn1TMpf!>J;$8`GcjSP0WD))A0Km|NvRwgsEj@W z`BiDM%AF5aQ64Aft`zd&3jLFK&cvNI(cf^-!+k_6OsP%7Y0)rvdn8iDa%sSd?F1r6<;IyC$h(33jU zV&dLtAr+}6FOk4PP9mf(#q4WtmukIMTq{}dBRJG*k%3@*gI2NhFD@7` z7_QgDP7Q>Q-k>rUS+{LLk+?QwzCj=39PYAx4pN@tp+3L(g#!(6IoJ;`8qg**TT9!34;#|A93=)|em_1s zy68DuxX$c{4Gn3nNDo%IMCmN=j0X!s6#99XR!aFGJ`_^-QBFOEqDC|dW-9b|bBXdN zP_+>qS`zXcHvbLMxiKADlIj4xTSZSbs=rh-1gS}PUAWa~)r3|FQbpi~uZO5vIWVLN zE})ZPUK14a6xh~;zJntX-Skz&sqjHl`WhmpH$}v0FsCVfqXa1w|8%(9l;YAe7`i>8 z;ZUU+t>L$hhcrw*p`8ggjK4Rdlk0C6kkTj=X{W}hw2NQGp)}e{{hzd3;Jt%*I0bT3 z`SL=fnea(-D&so;3tmEJih3p-PF&NmKR5z&VRm!c4BeTV&1pqCXAam}2=C^N7PM-a zIrG*f`_%QZ;C3-UG5na|qXW#m4cwIBseloi7})}qaV9KjK`X(yR`d;;HyCcV!X903 zMI%e+YK;c*QRPQu`IDhlXPV%jr@?=QwxQV7t}hG*NZV=&gx+t_rsOazd5d<7%;$@P zDZ+;~boeCr_=t0MltVr=X+!JK$K$kS5?a$pJUMIDnpQZjK9EwU2Ux2AZ^2IpJT zX7uJ@NNR&N<}6HYLt8`&9W$B2xJW%(i6eU!*xQJd31#0#2XYg1!As&f&LwjGTB5X7 zzr|hcP97FSC@SoH0To;2qXNqFq%?;bL(xT>K9KiMjP16pcW8e< zt;01T=pEFtJ23wpY7Nz30;x!&CGCOZ@6aZ`q68MULceeyv~Eiq;jVc^TlyMwYDfJ@ zFP`TY34gpz!>VE9b44}~&c8(In9e?CdU(>AHsHC9b}zbeT+ks0p>sR>di;r3J0_Sp ztTS_jUrklC){5FuM_37tkLgHbCc~}w=qSf}Ehnj1MuOA{9qZ&^j`aaZ?P-Oug#yTw zP(6PKoukcZ5PKvjJUA4!h&LLDf<%)6iqp3)ZWQv`)3QlfqQo?Ua3SMZoz`e`^WnLz zT71j@yxx^`#`D=Oh$rHOj$y?Z)A0TxwCqePm%75y zOeQh^3~0FXA*D0gr6O3>nYub^a;(c`g`T2^FX=3=#AjVOI?xcu_Xb?hdh^NR2t!*M zgpPB&ct9(Z@rxPqX%!7VfO^O7HK*Oox9LCVl}&%jy$s~ZB|Ops`!-{aIzrMMtI(peha5tP#aAf zlGT!~#)H;1EpeNj0WDk6c7c(oo46cdYAXEFjebam!M<*^ymPpa3e%!-9MCWGwzl>UhQZS@((9Hv2)?kJgQ(6T#?4V@-L>xgiK z^Oe&PiV5t~-G6ka_bEEBKYW36N`*OJ&^pz|a>Q896E2c`OJl@c3uZ59aO4#KA)I>Q z?$9r3KT=`5;Mj+6!KwI>Gzf+-MgJxW22v?zk}N3i8xQBcqMwpI&^(bYAmiX+BJC2X zlW-XEz(0=hHt>f@?zj98bd{2SyeX!lBFrp8xgEL@p zA8b7b&h^1HeX85|Eycr!nea_t^g3rkR$rPxXJQWW_cYdmCvRwt;xM&PLXhnTde#p? z{Ktg<3k&AM{0|oLYreR_`otL7fSyJtG)Rvx>16l3tIh#BVIThI&pdlF5{9Ad9Am(G|?|8hCCJ!qXscGg+2R&BCI%S++Z8HZc%B5Fa>;X zEM+HyGQt=F1Aa$GW-iS99jC)~Ab-#>auqWFprO9#`Ag@Z>L0Y#O9hb_bov`G)X1^j zL!jCpv?8=k!YR8QzD*Luh9psE__a~UIA0_1W>;lPD9=R)b`V08i-bI2E0BHwKxxc)t;se zq%HC3`as$i-OC1pDCYaXkAtX!alU1P=tQjW{$Pw8<-^0lsMm`@8G@VFB~XMH=rx44 zid@XIA!7Y_c*7{(c`+(ma2*#YU9m#76s)jRtI#=xN+^upDYTBa9!3;O)>{gNDYOhC zT}+{My-0yCBe|hYDoyZ~2E1H475+%2wY{bOymS;M3u}xmgI%e}(QG)Mic<`I$~3wI zFHu8jE?zbdMKRBSOGB}twS=YYQN)OAtGX+UbB4K-MSF{wZ*B6n(RUmx2)!$8q7%pDkROFepQKCQdPw zZ-FU?Vs?Bnlp>UID6SVA3VlYSQQYQUKN@{()RW6uv@5D=E1(ro5< zr`1par3pe~1?dJ8N{}|cTtT$Xlc}Eb3Tq*3B5tx4L$`_ev`*tJVW#-U5NdB|QLhJ5NrVns` zbbSg2v1dZJsq{9vsO9A!3F;^-vXzxKG2MBJ>Xzf@KD-L>r*-4B9@r z7)PN>`Vek=a|YwDGy@jQp#3qxU1KJ#Uc)nsjXa7PtYCVdk8*MV#}1T=%RJ4X-zZIm zF<3FeQ&`LcFWdyDXQJ?@LC7rh8HPfOS=hmS@RfE+n}y1>8CK7tt)i!K%Z@ex9f<^= zNK7HC>l2At97LK1akJ?+NFrl4?S=xlJ)8C>)7+oV!9|Dc)TYWVZK_P1hf`%x3hbE{ z9IH*Yi@E3--k(QT(}7~<*r8}11_dAI(x7tQIb<=T1{BW=?zxLOgvLh9i>mW!Xp(1! z@uWa8Yj8x1>+p0y1D{Lyo<%X#523ysYAgvgBGkyCFU?$Eg!*wP211J|@cHb|p|-zG z=l~AZCp4Tw7SVpV@6X4>6r8l}7ND$_L;eC>olZl@LX3KzhCU00;UBjUU8x!HY$0t- zX1bL{=x2~E@L9gl^1OW1@-?t2A8o*FxSIc}f}>*L;19$}x(41{ERa51Tmnhxc`?!w zSiBfrHIH(jbcAl|B$hzMC3Fkw!`&sgHQ5I#OVI>RbHC?CQ==`C^(wC_UI}>&=E@+U zi?~+rDK29KX>y|8g;)}+aAYLz@mBm7@?ns= zf+{p~H0&8^34xOZ9e|9L^gp;IG#B7GVkQhOKnFJy<`>X} zu#(Jre6T;^W&sV0@Dyppo(f`2It216IvcBRS|zAlUq!3E)a9}L`Ix-i0Mdy64cX^0-fd|F4~%SxI^$IEu2RBG=uEbw9`vWoD&s{x}1m*#}xrH=rD~5 zeXMnuCim-lV_N?;x!-w-p0A+yNWlE`y2iQ!m@KTLzYg@%dzB)f9#l`SG6XaL$7k^x zIzsWtn~$i+$Z9a6lesJ^ctq)Wm#*Dqx|ye8lcf*(P8?IxIlo9TG54 zR|9nc92d}6<#PSrkF>_8-%4Xppeh3 zqo2~$A<%3+{feA|1?zEFa2htP$6eAHh~7Y3d$!f-8*ojU1J`fh(Lfq*(l(&kT?TJ& zq@58XcO!;u&%ud}=!{Q;piPK+9uhX;qCN+5HlfAa3THNLI=al z&A2bT2s<|8?8}9_n`r{3W5#Vk%RUDh-ox$0COC1EHh}S+3?`^L%N*s)L(j!z+HA!Z z1!@dT*h)vj`EB%VXs``8WkVtMIeh~YsKjL$^xjUR;m_@~8oaxMS|N4^-evDVS2k%o zejef*e8egoiQXRq3qyQmXt=}I3_07VkxJ=W$-}>w41-BK&|gf4+dJs{bm$;B{TnXJ zop#cCwBJw|w-a}6&*1J(+~Gb4+b%k>bOw)WqE_H`%izGs*@;xxu?ts_`UVyPkA zn{tTrSD!|X6ln;2@+YlH2TTHofra{|OvlNEQGmQZX(cc4(zL$;qtRDU4xj*yT!20Q zq-8wVu;u{n5niD%>z~Lj(}5ii(j(Z#8i&xko)29P(fU$`wuj)RpYMh1;KZ+J+CIla&C&_5{jbrppf=Aa0 zCuk%cgFhtpRUxU>yiPjpsBuP+hyccbXRB#x48|(wG9u8H@y8hfQbD0on%% zk1$4B?kw)Risy(7@1EmJp8M%J+JeHxOL#^(6JA`RW!(KQ(jFx8EMJyTK}-0m*kRNP zj)T*C>lNC~J>)V9G4jIyh?>h$52M0jlrIuGU8k6G_ZRm5AfMV%aOpaI9d=x!Kfi?0 z>KbAk{_hyy;z78lI)7E9-3`j$q!M;%RtmREP2lI7!d3|bvYs0d{!SCxAuDvah2jy| zG4Svfx_BqRejDXH7m^;MSD6Q=ALCwcKm76#jm}q2Ll9(-v`8>>1$H3)4mEjwqj`5Q zy<{JBMFEGUaVeOpi+2yiiCi3yVTz(zTnGME6nhtIt^dbbn;%lU-w9DPQ~malO!56B z?3>0d-J1e2w_oYt4$VStx`+FNIcT5$FxtUzAG@YPh5KkdblJ?&WfS{Alg$I#ln%#z z!%ZBOjU4u}2##w1v?b)Ub~&S6&cdPRvfgK(e1Ss9>#a3^~DNpm>$wJr4!-{r8WnJX8E#D$OU&N zUxsm&D=@&w;&ADoVPq9br}M7!01R3W1z)w4vf+%8RYwaF=ErK|;xAq%T*F@`d>yxC z)BIRNI&(1Gs7k79?-Mrnyh?Zue)VU?uM+O|XJ;#lGjRTLtd^;xpQ0;EJqPAu%U#4M zN%Dosg95|gb^sf0xyzLc8NxnEcVSo{YeMe1_XaZj*3_M$P-U?BHF_@vdJHzd&#$Wn zn=4{;Vy2mmN0n%7VITP3<^-Ufg~h>I3wxW~1}O-~?GdyMVihr&`L`fe#_$M{ysuJ) zidU(`i;O(LN~Cq#i&pm1+GjcV5tOF@R(B`1q-6fyZ;1+zM55t;2*r1wXhYs({PX)Z zjw+bC_0;bzzB}{4@L)uP5e?Tt@RfF4#sn0j+x+IaALftfh|PG;nh$=NWA(@a{R0z8 z8anNZ(iK>=uPK=j_W#wo-i|?VQQW+PVKyBPzwj@8{f&iD1+lpPh8e`LBBO!@!b#D- zP&b%;MhB+Cq+k|92c<$`Fv~@^tCz&)qV`0WVvBicQ7KlJmzqnn#;8SYOS2aEBH!53 zYzr^_EQH1L(zFov5uTi$4`FyV0+vu#h$lw7LRn6wOMHBhH(!y)=ci{-iq}j8NJ`;@ z)6_yu$`%+G#=b%wHH5QScW3$h2 zyg$8oCT!7zh1p_=HZp>h$E44K2-XbKAXp^hN$d?HnIGXjX&J@vwa--eISOagW|$kr z-a_ODQS5`@LazFJ-uYrmuCxj|MY9&X%2qqG!^UV<2Bmg2nw95iaS>LWd+VT$mHp09 zc39bKSW0BploM|uW22W~kj&o2{vDE87rfNAvFV}1d2gZ>9uvn%kFOHR8@gpX?FIe-e^1?@ZGR8mnEH7iu1!Avp@QDju>X+EHsE= zWGrih5mZlaqainzxx&0$qK*>QIZ#+=UcV-HQI*2;oCtrh#GI%+y~e9AnJzxU z0qdPColByf3$6V)_{qhZ@ey3(VjtoZjEZL)cp<)=zHoS_5-h2J7<1ud1=bD+u3AMFX1?W_Bt*Im z?^Z;8N6yDq#K|!a3M;Z|wj9otLSv0MkeCIGHUV#V>Mia%@*t=ZYg~0QM~OD!u_tb! zzQ=)`!U4kK`C(U-ByM^cKNI!ix-}L0RbtU0X+q^NZx*HE$MccWro;S7ILRl&y-F+= zkC7r0SUz@qdjji@J_;(>r_J4*T^!`3n$+Kvh%14EuOu2NOg~1A=X`mdQJV>$lCwm* z1AoyQpOJ%EaJVwFp~ZSonc>$gQlV-Ul-WFJQ-!sU_G&H$Fp*`#&$;3-_ZEZbE2`iU zHxC|HVa+SdiB;-vs3i!UnWY9}#H^XFB ziH3a@%;PE6v(nXB8mhy@>MR;_A(mA~Sz;1I4K@UQ#OXCqf9JqGe1o>DEqM} zK$_2SG3Q(KfZ_Z;g+~a2par*?uOcE*{G|BFn#_f+g`pOEH_F>KCWq&C1)?yn!36Vd z+SkVZuZL%~SylcbdL113YtX9>dlOIb=hZ=BPKC{N*oshE#$ifFI#jC96y&y7eby5XdXLt}tUx4Du>mU+EtW_}AY$Wy@br0qB_)H4BL}{2 z!0gqQis^>4y(U^D{H`INJeu^97jo93l?nW+OV1zGbVUPJzO-f#l;2|Uq`;5cs6x2c zfVHOchr*s}fn_1FA*;aI&uYl};U+UuL9Jg5i3+pgY4c!(C7=KnE37F#Jyuu?hb}Wa zH$6hu{N0*moKYnR2WvBY+DMzn;~TMGf`lOO+|_}JD%kzF#<*FS3f&sxKrVujjnNTW z3`ZM_wjMObwW|>7Ho*z71iCiC(aM3LO;{Js-PI=Sdo1kMl-aQ`xheaCL$L`bn47T{ zp&o&Ih0R<0vKcDMRG8I_Rj@4*(2`ZO}gV67w#LhANd=9q9Y6&gQ$U zLWCx*0F;G4e;3=k&OdvX)kTG<-JT_3SC+MB2|APh+}XmMDZbK+HJ>w?)d9DWYoJpH zW)FUFkt=w(GH@hUn9Y#Zfz`ox_1k3|qTtl~xI&%>`T_1n9%A&2f4y>7M^+I(I>LT~ z*FR)o+T-sX*&Fm(F~S%0h4$cX^&v|om_fY%BlZU>T>Fn%UeZ^?CowWhdc)LQd9W+LOCBaY)E_}us`Dx&Fph$*rXxg0(3%<-3 z1w7G01`OQ#o$ik8uhM+vrajnHa^8Kp2YZi@1JK|LwgWHbFH!9d!24g~{v`{he90za z=(FKhtWC&GPAkqAS4XsH3VwnSjdRXdIQ)6A?kjeSxM6W3Yp=Ug_)!ayVS#I{bPJ-t zX34nPkN+Bj5mR9G*Q{rG-ITua?Lc1~DRimOvvT-yw)v-}+V@1Gcmsav$&zVG8a(OA z@-UP<_Z##i?}4codpAI2v!eYy1E2R|3vhHIdb1B=m+1+<=nHP)e&StZ#oBkUc?tMS7 za6kND&6VHSK0==khc$n&aC|=S2P?E;%nK&44GpyXQ)DIwkHh~fEulfU)6(*L9R@vL zeqluzHxXB}BG@vKeaQRZ%*OeM?03t?)#xF#o5bqD&TJN9NfGafpu3!Ghzo$q*{rO& z2+g#gatJe@v4Ud~i;j3Y95uNn9T<%8S!i$ll!3wg-5@0M5vQIzNu&PPBtc!yVa=@f zgh>5(HZnWbYq^B-ZD1FbhRTa<)gLh+Hwtgf>_M?9e;F7P65@gmlm z!fHE@ipSE@Qyp=Z7x9`Xi9(7a5z%jOA#b`A?3uzs0zf=OV%arLBu{@lqZ1k9C9+wR z#2{jesfc(%JcdcctS_Kq9dO2B3|<%Zsdpq*7K%Aq~|)~AunQUyol>W2_LopaKxkHv6QqyN5uR=oyV)9gb(2XjyQ0G*6Z6kBDV>CLV;CL!h2n9 zCL+!jkENykI^r@f;!07%n@;D5`^96BbXP}Q;6*$mO2QEFB1e3nBi`2$`G!hsdeBBq z3-Y1SEJPfqKOWE#(Mafsd7^|X#YB#{T}OPVBaZPRp7J6-RYCFKw?b{-<8Z`EXZL`USiRt<5sC~+a;uN-lwc$B28I%1(0@wh1A;@O9Yad*X| zMcSq#qQk5a?6-|Kg)jI(#azT2Egnlr*L6H}6*asWqJRr$0LNP`9)qRiL7H8~j6V%; zrzqgce>9g>g2E{*u+~`tlcWneQHKZljwnDT`4I%gxJ^0gPzc|S^S})Bo6cfurSXrw zV2<`py)t^GT1z8EL2${+n6sx>mU-m}@SD%1N{{tbK?HbkMN%evtG0x7fEe#77L^9Z}=%02)`_FOxoJaH%!`^`nRgQ02kH&UKh7F+9#|X{w@r~ zqbCUC7vTowIc!?Q76!~Z$K^<+4Un9VuH9}pkk9JH?%|!}0b=xW8E%EOnhs(@cNT+J z(kZCEm`ycZ(Bpb0WgVPa%znaG3_32stRdN&vDd;aHw*F0$>ZD~ zhlFJ;(tyE$8&Gx`3i<)GT*l%9Gk7o1p_g{U&&$|kOv#L1juEr*P-{85T5kAlIqS^# zZ^xEnd;~p*6|A-C;bEkh$n)06!?!DN5AKEqE7-dg2MGU=DEPH1$#d`12oGys1bd$O z;qfeAX(S}9#C=dQf7M3(a3mtKAiTZ8WRWhf5q{Uc#_~}ma z&*+0=dMSG6aJY~uCBB#HT#Fv=GH9_Dx55kHhqV}>UErRumX+oS!g=dh&(Jx1&%*;z zC_IV(gi5oa%6i;*+<=eQvwC<$2kX(LzX_|>V_;(?RNuh*NB+qbFE)_l*N)|{=Laa{ zyF}?A?AX9!t7(B$s^D9N=-qmrxcxPFpLqP1M^)qaXEwmT5uL^r(0(IZi|H3(n=tq| z8dDB1+;|nrZN?Lh-Oz3`E3!Q1+=}munr0dxc8wtt5$af*7!7x~ zVccsmG}_L(`90)SOkcvO1l$LVxJ!*jNKVJkV2; zO}K|Bh83FlnVN+AnSDE0Hl9=V-H99S39x%7?j#?9a~Fy$7v9;0a=HgU>|(A2EkKUD zK0b#v4dZ@;9(49hE2bb2<-KVaZjUh1w;NC0@*r_HJBK6xP7&LUqZG4;-Nko?Lie)H zVJC!H#{)^}x?qkVQ^Q6-MJY_$%lzg2ysL3W{%u~)EIwdEJ_>&KU)l<_iQxl?-iHAj zRFfY2FkZ9{Qunbp!b|isnWr%GPyG)`gQNS{?|20G;eOT{nVGSl#p?k&{$W{;#{bI# zaC|?jf!vk)ll_TC<>H^rW*^NbK_j0JEkrTKhVj=8s8YEm%^`TjFG0i|VCDbkZ-7vq z>5rmHo&Qz8sG$v% zdcksA6dXkJB6+{?f$!z>FMLqt?rwzhFMJ5dC&iGC%FzQ@gaGWF!VidWLP+D_)=@Ui zZ$GzsN)Qws!>{rd9%BKRKDg}|iZ%P|g{@dfKHu2IpBa3v`*He6@{H^=r|Y#eT!W~tn)I-Z~k=fmnVET+DoQ9Ll* zSd23A-!VpMF}J+PEE?QP{9PtaiI!(K@l25qklAj6iFYtd;LWov_@4;n2tw2TcS1Iu z(7dxOAVeE{REIHyHdHWgAZ0UbIm=?JY~b?ujOIf=@;ID#`Bfj!n>y^OfI;LrW{VJC zC*j&H)YTC^Q%N>T11CZ2b2yvxVct1bsg}3JL;Q8emy~pi2Jt8oq8cqoVx3)!pySdowQ)_V@eC z$Gqw4tGc?ny1Kf$JJ-etI#uEDq;SFTB-nFa{>=ZE;Cw2}?4UU8!q5GGHDZ`{{K7w= zz}4f_2a!VH3+%+-zktgC`uLGA{7=HT37c)Cd##iGkAq+{_F?C2u6Smj|0>AMmir+$ z9~FPz@2{eQlfU%0X{GwTK=NcbKioRpdSnrC*3d8gV{oMAE-Pexzd zK}Dh)GCQ2t&mbCXc2;s6T)v{gUmTUlhx4Gqf>1`<@Ud}(A_=nh#0s_vwUhFht=xoi z_r@3`(A`n-)(P=}UCUuvOSZcfH83SNK6S`%VibRU$X`iPB>F8js==g>e=9ekUi;R6 zzH!fD(ds*Bn@hz>-}#48Y{hr}^Rm<+$C*AFIAe*kcYo(ED5#zU%9rGk8fr>BN9iLCzf0hH&wPbd8pbE-q^Hw=Y(* zSIb)|dkZ9^`f#*vws^SFeh zn|qz5cHn%Y>YA5+_K)hIlF=DBkk*>dalFg!*>J9ds1G0Y_b;7I5*o74>I{U)F-qm2 z{R`@M^k+WSA1S}6o#;z`@ptc{>Y_7rsOwHGi0Sa07MxU&+>W9GR{nxLnYrTFFaFz# zRYq9{txJ5k&p?t0HGvE>f0bIyd%r>h+a%JC`Jao{Iy<^~d85YB#pW)WBUK|z+S8Hx z-a??H(7jZn3w4?v)}a+P{$PJB^wDBUw88H;qQ1NQ(RPqa4-aMM_#S!qes;ON2=K=( z0>Zzk|5uUf|ACL4Vyv8`Hvf7VtV_zVy}%O>Lal_qEW15*nGALat%M`OH!Mf|YOoQ7 zbXpxqf>1_C{>Hk7LGYM$Vzi$HWavWp1o3j~t`)OrKE<Y_@vvaZ_`-F7n(6vT{_B;<|vLV>g?$&}8Va9vRrKHkZq-Xtld4*}`m;Pd)}hvLf>MRiAE#=e?)RvG-Vmp00YH~VrdQ=;-7zDomlvOdZgV-q6N6k+;D(0_ea%j z;~qp2U2@qNIh9e>AdIUDt~3@xvZ- zZV@Z+J-h0Eir55S&cCUC^-Kl^8N3jJn97c}W>;h88C}fo^sQL+aWT+^OGB_N`0jb} zhqmleW8aEZ&$VTpec3WUnJH-0Av;6%Lt!?hePTp4Rpm~)>ahqr!{<0*wxS*UrqUf} z#Uvov4H)Riz)IO5M-a*Tipo;P9I$6gS=+Q#lFq;qd+Q&TqUBGE%iCl8KP@J=XQN8x z{i!5a8h@+-xwFhEYp4e|kw}E#q#jx>j%eByMt*81)=!*N2AboLZU?N; zmzS|o@W$|!vt_ueVtF|`D@R?U1(W(%cqots!+>uDWkdqA6NJWUF{Tsy6oXrq@K9%V zJuZbj))@k1tpu%F(uH+0jHQ!>*^>D^gt?9i5XXDc8Ac6MhMCfunqum>BB?yu|v z&x_}Juus5gNM0gV_heIzo%gG9?&`$~5^~};mYYRRKh{nR?9Jx;KBV$-aH$W=Pe|IY z54!~SouQH?;?x0b5Ipc$VM3~TecA28HxQNg>&IpqdvxXg{vMTg?$7>=LmLv+mHkt6;A z1}$F}zaPx5$g7dVKnjHL*f5@=A`9Uj@y1}*4KAKPs+4&{SUcZWV$cv)RPZuoKzHIw z$E2kG{xDeIfW;iwyWBX0iQvjT#6E{aIwsJfhiSVU{f~=C$ioxG`^+i3Rf4|`Wqpk~ zyT!7htab2cy#j6>%8HGtxYS}OST;>xECTj)NXrl=f_lVC-+{rvgBoAlB2z3|^;3MMn;p~RouV{9L3=Wc@k~;%Q zn4C8cXFbq=KMrSqhtuONr?9SMy*-891!3IwRMsBnS5G^YJ&R+0Kb*?W?I8`q@{j^K zkI0i6kOtC2lk|i*W$5e0;=EjTGC3tfycURUr?InpOeBIRFIV!@M)sYOL|9{|N5BBk zqcC-WIujeHv(}3vkAg0-&cw9w!K$CnWKkam;y=#@ zSvQHpXS34oJ7{0RvR2gKR1jS(yq3Ou)y=}IHEgAXi8Ib&#l4iZf~6V5AoS{~YUoaW z6LGmw7(JBOSkp zqa)cMt1?*vCqD)dMUbv7w&~&;h#L9~xiCz?Y zE@I_T%=Pkxp^s=t;YL}6@O+RRl8*%0A^9GVBZMb@9HAN`7Lt$iIO6c~jvbQE>gZ6E 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�BeENw7i3`~xwO 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
=LK@JDdg9n_-4t3~XBgHsUdPtrD% z)CfkQ?Wei5w86TsU7v5|IL)Vz4 zu<$$F5JW1>c{$Kkc^Bm!{D$!lxpsx899LnVJTPc4s;EtQKUlFSxH>lyjx7p~t8kS- zpf%AJA13g90~HqIA-s{0v^aQa*5~_?`3<6;MCoQ6oIN1F&#lOM>7bmz;mL|=hvXI! zV|Blx!kwWIPf zTmqL{BMklnDM>bDUysM3(XSH z!p}hnn%6Mcj5;3p6X>$}HMBe--_4DOp(o@Ajqi_~kh^+quQ_S2C57+4lk!7G`MD?M zuEz8AleD||`Zl=x2i$o47W)4n$Kzr1aX-+84*ejv$6xV3(qAb*%6A!`e(@s(JNguT z^YkeS-c9*n1e(~V%BUX>3;I2DZfF_%Vv47_9xsknGA>VTLZ+vv+kbuI7@qqh>8a|i@Piv zVcl8xAV!^&pTYy+#NC)J~IT)b;w5=%@MB@gGbM9>+WH`TKjcQn>oI@G-N>=VKjePg)~s%S$^$u! zSGVJu+zyk_>vA(p?z@ht`W{}rF5ip8`t^0(f7l4WUzgkBF^SeUa8CFhX55e~-$|80 zBg&l9C7>>wY0Hz)q1Bs!|(*$H=ME*T?Pm7%668F zgCqV*Ecad3b$>bY(kLT zO(e=nPouffGU+LW{HVLgM8!v~&yiaDnzeqexNF_3D80Nw@*4SO5cviYR2-qS3hs|S zsi5>SKv7kN%(Ga=?A<%6(#vHLc;=u_qUR?wh?cb;_z>kaqmscPKE9YwzsRItOsuH% zH$Hf!q8oz46%7cYveZh-CjY?iDPh9laHVzZVZyn%93gs{p`2m+(}{!-Cvy<@EguG* zBb4f~S)`=K$5B-(nCeETXYrbdVJWmva4$MS39s-iYDaMhPHjGeJi@&V{j0!TUpgK| zPvg3kk#JALi7d=CR;ol6 zLE3&|%cL4J8A}*aO^L}$tD>xzk$3N{t9*`}e50;%!ob+6M5U>f(5UPsniH& z4%9DsZ3?{IK#2)=za+YIW;1{CZXztkcYNMVcKrDJ2Fkz9A5SJJ-EmG@m83Mr^a6dbz zx}W=6o_Cth4Wa2YrJ+&(glX>bS1r%orqlc})0HQ&=p~kPouNGKk7NeID@tuRHbbe4 z@5GskhDj%ujAF?ymL#{L?_TVIU3~syT6_t4{tTaKMe6HHC|qD~qG!>2+& z9W&_%_&W+lna^R6n@P)YpDFDS2KwpEAxc2jhaHqffq0u-$Wlb^Nw|BdatFTWo>vk; z{Q&DbcE3`~$T&JqNhBYCsXSt2jm9!rSzjt+IXu*IPnOa|7LmIKHtV<6l zS2+9-xg{K~KSZb-VjiaCjVwdx{ymngWC?N$$*l1RO`c#0WsNzH=&TVA2On`0?(L7d z3HM^U;(!^Cx?du9IKclgcg9nXxl3=fJlB5Qoj<~SehML>9M|;;_v@vW=ZJ1JAGxDG zyxEO5gDg@X4zXwCllpK+cZ!^Ucc(P7fF;Nt;qVlr2V{E4+J+3M!upn zv*(<9MQLi!x#v~S9JLj4N#?7{ZT5nJuXz@H#v|uZ`vg6#3K8*y=qXnmc-yldjZ!U`8IY=U#V;s-98C2r+ITQ>$rX5Zu+q^wzE$AJ zSS1J!47OB+NY}F|^CSg&2SvVD}2{c>SkfywD{%HGwG9l~Ly+K)y0v+ zKY26Vt>&NvCrT9+x(|+YKYwL;j{MM_KgjZYj6GAKd)Fu`MyRYD#-34iAj0bxmNXen zf4$0*z-trLbK@sASvj}nS> z`i~N-^uE)l63X<_T4d!)ECLwJ3xg%brqc$f%I}1}M%jQZL!+qM31IADY@JaOh`I!v;nVL^P5CQ$K-DtCjXm z>ET$BeISw@Ibzl(?`ahxwPswlSu^~^lm5Vc92f)H*^&SkRx8aB$l7a^rkFgrMsaaF zVDK88yYk@6HM9c>Yw5e*ESa=c>4$-?1GAM!LXFsAh(BggSKp-$h?SbOrh&*vaL2=6 zpov<`Bos(~rqfWFeEWDVng#90y#2JuhVNimwvxaPp9Lqgm9`{JSf{iOr?iV<52;_- z-B_GCaINX)DrB9>Uv9a07Ps2BlHEedL>cG=tz7gPaFqG(;VRQ%G|pY$0*5!^A~` z*d@{uY6g2pLMKjzn2k!yxPydq4Qn=H7#Vl)AxqvM!|xyf);<>;;3RzrK=>!a%#F&@ zN*|L7>5j3>kA#lo)fw>ICM7;*2W<(_r_LZx7zmKC3j)bwkd?Wcl$Oy(35=|nqE07; zqDT?^aSX0+Qd*;1aTIPv2xGnh zTrK!8e#U-SyhTZp=hMb99%_oZU>5v*2Om-WQwEQQm$Q9E9(AfFfms|Xi!<4Z#CWd~ zLLgwJX$6_HpmTIUwI*NEuguS?o1al;IJ_Unj8dM9!>wS(A(IZk!mY}H+D6;%Zz7R$ z-0c`ZKzfycW_a~_>NcfnW%dz?A&h-MfboNq1n}F$)Uedn79EHsW%53wlG4;$XqP8 zzq*2beH$6Nm_RyU2O%d%afPulrAPAB)eIJO4RG6)YR;eapGTnHcE!c#%z_IW1M2YE zv&^9X#HEAZISaPUmJ%R&hcXh4#5;B<)o|zZzdMx1!3RiZBGs><{!X;3Y=B`qmF6td zA2T=ZRBGS{XE90INZKOQN0_T|in^Tq*0{I;Dae{bZqEt8(bxpZxe7U^_AE)VV0f-l zl~o*o6)(j&|etrmZa)Oq&aMe%tg<{qt`%f{y7ZK zJPD$ADTxYUJ}pU0qf9ss9^R$Ir5+}EB#h(*zZC5<#o8*8=eC2pkkFnZz@Hh0mD6C^ z_#@8`*_^~*Hf|%t&VEf=M;Pf_M)#zjOw!;7dKQibsqUg5+OgrvE?gc=hq}9!PX*F0 z75md6Z@1Fo5ejc*Esw(cjV^i^v6Be`$pW1mbU%(ZgiwgLg<2Fxq{l;M5m>P?tOU*W zDHss?;2vc?vi;P(%0sc+$y=-tcUZjmaI6INTU=zVg^#{fhVa{G!J_Zvn*8Qj)OjP) zhw}!$R`=l%p+ny(FXDdMz56i9g_Zjh9Z;qr)wm8S5rG(j521zLSpiMaEeW$C!x>Xi9zzc!`rc2pGRyX#@q84# zb3|!dlTsmxAWB{kxUuJ3NGXg4YAOrc;M@_M!@td{c2tSsFf4fTF{L-|nS6Xqd79EO zwzL_kjP4w@lZoF^AYnU6+ePcwqpZsT#G9jHJB<4(X@Yu|v?)7WGRBVeEa^a(CG;W- zCLUOnDU6v*((-7PK@4P>hoN~&MO2y~Pf1X|q5abl_$%zpLp|gxa2!{vOH`^6M<{<4 zck7QUTIjc=Fm~9jeVk?52joqtfD<6oFGe4MPmU{t?>d4k(hSKS2c{0cjQ#Qxt6~Kt zBiHtNv+$?eF}CQOe(HE4oczRd&~UdB z4S#&E+@)+oeF@#ZXxyI7+u+_4N>rDV_@Q?4d-8W3I)a_R2lYDXJ|g)BOSP-VNUq@? zkam<5zT~G}B_J4gtYEDe;1_HC@`Q3%M^XgU4GeytO&_Tytd1sVC3kyiU(sfdV9Vse zr~_Z5{Xi zY}ei34v2_?X~3wt0)kh(#EUwzh|!A@5fu~_6crQ^S(IHAG~Zj@=gbnKpWpvH|KzEh z)78~mb#-<1diVv#jDz4x#}CCaOe-+D1C+Ih<*X;Uo7VE z@R#}fy)9k4mg-A|zxmOdpZoX1pu$G%hl#L7-nQR+i6dDswUlIiwcnfB>@-V%rjd|i zppHx{jz39*3KdUqk$8j$<396%w>NGozx;qVU@nx&2ferBG5er*6#9*Q2fh9AC_LmX zNvuTy$LF!y-B&B89rCux+XT$eB#$3gU2`2AWOp8{6kx8$*xK5%QPv#tZo_`BCx7z3 zig>Xmq!ymjsJkR}%iPTN<?&pFKIMsPy%5a(kEwZa z*iOo_;*XnLtUcjz+azn3&ZP^YsKz0;O~Qs|jl}(VD#;0ly`9@~bgY4kU5EJ~KuG}u=k%0*0W9Or^jc`;5d z;^0QXZ#d$;DACS^i*q60JA!e+MtS6jcM~4#j(TqcV>%!6z6sZfW8MdSiuxXZY$$7w z9QRtu&v0F$;e}=A>*L<6_9{Cr>l8i;5#)+Ta|O5%TX_EfGSvEn_u66(lZPrkKMAGd zq8@iJLs)Xq;ac-q&>;jXr^7LQ`dyP?Fm5>EZ9Y)p)!;A=Vp8my&Is@r(AxC?JMvt9 z^hZN5v{g>duukQSN<~%umRi~2q_?PC(JSj5(sVuyU&Q3WcOe+hbyb&B?3!z*5RGpe za=n8juGqEBeg*Xw{i@54%Cw#P_=%5LMEWW$Vm{1hsJ=6i)CvvnQ#$Yi@2Lbeb+Jof z;X9qt$foUU6DuryXK3H~wy#aBu<)I$eJlA<9->xgI2UN|C3aw&T4CW^rF~b}zBaMK zhJ2UXzUo=*dL`0XZ9Dl{jzX*pbHn+%?Nm?f&Wv={*iQ8L={Ckx7beg zL|wvJj>@!b_jcP`J&Rp?BAvTzr+T7}ZRb9IqK+ed6&5ic*1l&Vi4_*Ur{3FG&Ve6b zu?$fIt(?;tjXJh{6&m7hJ7;L$`L@$0R#-$eSNm2*5-Tix7iixln>hUtwL-&LrM*|! zfo*Dqh3|6h`-<&r6DurytF`Ys+t(&mSoprKeK**?)tkyy5fvKVHQIZ#?QK&lEPQLV z?>5`lCRSMZZqdFwZC{&MVd1-7`|h!QZQ|{lS}9h;GQch>Xivks4U;lxlQx|lY}Y0^ z{Wt6;!~o|v%q_kz-}uejF-NNo%o#yr41%&zIs?wQ@wu@U^o#d2I=osr?6m6J5J98p zC`igCS$$eX^6_bJtMj;(=f*=|4sAwAt&2wWxq4t z%WORz8?L9T&p3J-LKo80Ms6(YX@x`4?e2?>bLi>c&UkMjW&;l6Ky$0EQr`YMa=t)5 z^}Dy<6}mt0grx&wsC#UvQ(dP=cbzW3C)jnm!&7%-5*ev0T%OxWooCdLdXGQ6oipu9 zK+>u{zz#Pq2Ibm$@(OBNl<0wic6x9Z>v+_JdqQ5UMd(FP>0rt!Cl1y1ees94jqcvi zKX7Ew-KRFm)H-j^ZcGR!XgNS1Z>Iz-_bqfrP*LbcU1V?qws`KWyWMSYr zanOduCl~@rVSW*`TkE`y)15rE)2ir0WW~(| z723|SUf<2uWqWHMKZD0SPTAPy$`YOT0F@Wt9E-=iBI2RSQR5GFSsXNVbd>+T{K>cPCK23~y z=2|(%MUBF^pt;IMpW@LR_@2+17~s_6VTWUOg|f^drWvXQx`rmf1`jf(pLVG@^P;Ra zgJA5VF&=YK=ddJIjDDRYGGFSZ{@pk>swd8F%S2ji31ZHfYXocvinG(0{4$oVbxcYVoMdZv-zGUC zjs`nuRGwo5zZ6G(v+TO(;Y*a|o@BYToI#LK=%jeXo8owC8kAI*=9`jRFdC8zNp(X~ zr^ZJ}s*Yhmjr7i)a2N;M}%rkjx#R2?Ns|4{-BZZ(6e+(;N|D4kb-xTVir z@rbK5kvhjdt%(ce%RfYC$)0W;V|!?cT$V_esL?J?3Ajo*YZ!qfB~gb2E{#75Sq5TY z675hHve#vpJe9<^7%yje<`#%T@>+(4CC*yLVHBzel*4cO@sUu1(l8<0TzXJ*k$B=m zMZn+RYp&)8RIyD~y$jV`N5mA1n?Lrr*h{x2@O+Ev7x9hV7DO#Em^_cDX;v7X#aAy4 z#ba!2J+MbUL{!puKF>+K)W`pjwV8=udZ3Ft*3T6DFUs0hKL(y^(7feX%KM|`KPjUG z-JEUD&8bhLVsXdF!$5=w*ND}Mlh#m?A{Ps~RE?~WS6r^BLhy19lUoNlDI6bNBeQ&T zZtn&&#!>R>SA!W-(dblnekY&t(E`jqcS)vm@whXY@^E_L8MtEBF)I>&m;N`SG6~g- zMKct`kBD*p(3e8(Fjd?uh1$fcth;%lK~74c#@OXCGlhD27>&iL5AcqGe_|@-$J$F2 z$L2j=ktQ!nrR;b$Uxns|3b`|tT9TUWdI?{TQb)rdwG*fU*jJyoG*x^UD43E(SDtwGEo5eZ+efshY3qJpT!XfASV3Z=@;jVK}Q zY1^Yk%BaIV|9t5g$+aYKvuDId-=6?if4%0r)Ld*;RBgOM@AvF6$Z z)N)K?;_ntsYfN{?Grw4Gfstn#H^9iE^bjMlYNRG!D$;3C_d0vp5oKTtvVry!oT9Ym zE7@ylt>Y)oSY~EWX;-z{V5LGN)q!W8R?)i3cz|aWiw!y*C_LNSehFAJ{ZqxjY(_oA8 zyBOuS9$Q|+ytVxJ2B{WH&Wqe#7nR|+76jv9^}_)S>qHd?FfnIUDerAU%~REkU4p3Q zaEJ&i)&E+`7yP8i%}ppf%U-X+*=UD{ylBm?2bap|EXo*XYI6E#J%j+0;Im zJFEfNHEbex_+%L8Zf-U;&Q#UR9h6>*4SnwJAgJWmAt>HQAgD#g*BV+Tzo0 z{hHEw&D0#Gv#5ajjLr4%(im(UoUUfUuh}JEX-fIns<5jm-ECIMt8(ZcP(7dKPyvpO zx&3q$$di8Rr4vX)0zGn3qAmD53XO6m8y)4bDHm~VktZAQ8l4A0JS1o2(N(zg_Q$8` zUHMWoYGt#lSSB{7zL?1z-kee(uVu}lCHBgvTTq5v8Q~M#f<^_o#w|^^3(d7e=303R z$~N}~5H{81=vTF*zFHNc&qE6~TTw>2t{oN`o<_3kL^X3o#2yK8XalNW)ZVqbP@@n$ zXJMko#Fgr*9q7r*0^>cUW8BbnXk5x+ZBZ!P6EVFOdQ!RgBexibg<&S}teTsr#!>eU zUaoCL5Bb(|PN1}+Eu2)umWg))BU*!No_#D`%Vc?5%1GDmx-8IAG1dl+2~@YGCr!^$ zCS5Oww4)UnTx^TmjyjzVQ-rtAz`0S10?LU|-gAGDxm_q7m34jrDyvrhyMQjj@qTxE z+7cg%Kz`MpdTDnCCi$^TzmSTw8(+GEdrTo+m#OFls}as0lvkn;ItK1qxw{aFK#n?6 zn_$9^cce5VytM;0k|R4%R#qrI4vz_R!2;Z2Jo3C%9_~mj8wlFP{8+{nQQQ6pRB7!s zG`4l{AwIMMA-?Cxl1MqM9pPmCk`fbP@0hvV;9OSBc&wq{UPPCK7wn57YGKw^bfhLa z1-_0#6)!1~V^rNFhet}RuM@4+XO$w+DTQ^+!17N+JXnUpHES?n8+X^-xWDE?r%u!- zUX_a%V6dOM6WY^Hvbqzs(rA@uxw{jkmwwC|ykAm6qE~5ukr&1D+ux|rF&tVkD?v>~ zaFO6`SbLQ>e`M&8>~;>d>aCd=Vb|3@j&@D#M{r8B`H5 zNK^HWs}O2cK#qe;j6^WdL?TBHyxU4OprAavG0WkHzf1Wa2xUUP-pqc$xk(T?rQM2q2A2gXaF_{}iYi{1(%XdnsbxYzaE1J+ioj zI$vHdAHGCexVXN^nyvDH3)*Y}7HHSOdhlA0D{p1sD4r9G|6e8@-(4l$wLA6nf1%_< zg>fV#-kKZAkbJT`<;2@u;5M?pd#E0rCIwYy;G;?hyHn?I()=Ejp`{+T;UMU+9+cz% zQ6(6!PR%o`u|d*p9k&J84XQ^$H9C}_DpNwRnJ9VZn%Qp4l9LB~ixz0);{#5BuV;zZ zOhO1Ovmu179#vKndXm4SULx^lCvxvuB&w77P?q(i_Tfc+x+gV`w}n7)3Gp|n7dXz& zAq=)!`D;%MYZRMRCno*9sAagkUeJrWslMF`_BlzhSk;SY_gt#8vsj-G_!6r%5dW4{i;@l%DKBg#tB+y#yHIV$YCz*b34*#YoQ{?C)PAIlx|{dsH~gh zFtl%nIo$T9^rnv3B=dZ4npnTZySN``j%<_#rH~fIAtjD}6USart$9&RtPC(EstM;# z-dIYP;lt5eM^dKTRZ4?WLOkWdVNS)BAdC9rvZMsuwcpTx!xw2`d&RZGQUda~zXD zL5X&lp29q2n`X1T_FQV(M8&~lH(e*Gwl~CSlYI7E6wYoDoZT8E+SryqCjc}ObM_N? z^jvCRezvEoP}F}CCmWO!C$v^dVy9}p-o(V9#3-Bbeia?2#O%y@oxFdo=#_zDa9hVB z25%LMme2Nu8U4Ae?Mp4r{Y!=_1;84{@8%0;U~m}XeHCkBV!V^gX4#=1rRqZQ_lGr$ z*bWdsDB2`eIA$AndYu(6eU zr!#je0|wDe>`#kx*h02~hMO`Xl-Y->R+7m>UQNd$)8@xV@{x+&_p)+iTOx zHaQh57byl|qo&OuWm2G3s7xOjMDxwh0}lOT_z7*Kzm_LZW~U`V^unFVok*eO6_6q(??4%z@Iryz54$;fX|?YzW5XvZ}(GwWGX4nc!kw zH4@WGIKi6FEr!J!xThvpLhO5+X z>S;K~EJXff?d6o;y&fsV)o=3LuZu@&ZlSDajQKFN?bueqqRHJwlp?KB#2?nYbQJY& zrfha@q?;87dqTJ{WxY;0X0sH)epoXK%sL>WuYe7DKo(v>Z{Tt03Tok7q8lj>`qY%z zmvZ=(l-`JoX^N#vr(x(H=J#*&K*d#b@ozc#aRZ8?sEp3hwW<0Jd2<=HaB7#C`%D?kq%gtnK8Bii zQ;Hk>!N`l7%U4|a=;$$;s6RgC-rs_b(;D+DxnK&mu3tr~c)S-~$vO;4^G+#6$wSmwvk8oXzB8pXZ=j~V1<(M4Wb~QDF z(Q)c(*dDuN_Ba@mTE!@$i^oy3a@~XR{w51!B-9;ClBxFX?sD2&VlL*>Rd>oljopvd z8Kv0lU7>25w>4YE98#e5a`%|6fgCl$VgiC7yBa9#bGr8u61QtfD2;E(GlnYT#$ZopdgVL9#w z>f$-VO{_{*-9WQ(xm3Y;nx;Dkk60`JH6C+v@5tKm^dPPS8#aM5@VI^gUFu;ziuHka zCtz*FcF3P@q^+Jq%0s?$6AjPO@7xHnvc=61^c`TbgybrYMSI_yO(lC#B6*yq%hBT zMn(~%H;A?Zia1&&efRA!I)9MQ-%g{78;C>Oib2g{&jetTQz&<`%N-aPD7T(SxaJPJ z68GA@eaG2D{Fpnb1Vj8jcT#)YDLd&-O6#N&Wt(0%Z(inyv7=pR!>p|MQqXWkCRg7{ zSp|E!34jT_)0XXM4vF_fC$PFT)T-k6`9`X{Xi)tbM?JJsM+`6}aot_iu6`d`eHV=~ z_shh)A>s#Q+q`)Q8p`AIkF#0SZrs^9JG%vP?q1Emkr#X+*C9-?dQAc2^NsjJy8qBSRD zTUIKjS-m*!gBp(E$~CPoR9nNz&cK8j)Ra}!teJF;=VzVr@tHKk{8`>Ti_$ZhFgF1Q zI1o6o&@ilzXXCt}=Xc?w)HILZLv(JQA_E=t zo7dW6)9rYa%3~cmIc5&E)H(-zkaOlxmyViFb2}LNc!Sv48XNd!4#k+s+MBc9h z)ewc|!)`g_t?kNDr8-5s^MH81t*}nS+Gyar2$5QrPK|GcbXk6R%T8}g$ek+Q2R07gP!#B+vQNW9W)m)8y7|-b}Yktduk7IYX_N+lyk&tn0#wj_XiwHY z<&k8aP*0dZe3GV`9pW{qPO{g0<&CC|TE&aiD$3&(pL^2f`Rk)=T|Y0;Yq>bB6Vw7T z%EkEH1ytgizEobhfJPQg=ZN`?pUA}(%aEsBR5&K2u|1JD<=l4ydCv2c7;MZKg~s#~ za?b*cOSVhzLh8=33|UAQ^Ygid)D7sJ3n`yV5x0o0Z+ag`jtr`eD6E*2Nz4Bd1!x{y zgvshk`NksZpTX%^`F=MKhaOOl8vc)FmGu;L@G49*YmdTJ1}=Y!vP{zZ4on=Dz$h36 zd$5w4l`w@r$bMcWsyxYYe}+KTWM77}ob`>YR43 zt^p-T52zF55F|P0X}X+CzyE34$4{)P7dKNhGZl?#+6-Ji7!z%@wj{DT=*9ezufy)3qUk((`n?=V8uhm7McDZAHn(ETb!IRN(Dpbl8nZR=tSIKwK}7ihRi*OH@s>k}ScYHV2);(z`!3*iFw2+&iVCLN-=Lzis0@GZS-AT-3sz=% zSYC7@e@c25WwSqv^eoD=vt%c46@*y9$)8nfzu(Vam_Ml4SjA(!Mu9tCrJ1f$#lpYf z4OEWXTA{*)s1ku&XUBE!>y)oWp-N7DomRPU%X6F6)YF_LuUieFnI&hfrt3;<>EFfA zU`siyusPP;Md8>D+>Wh0t4d>K{u(NYd4;Pl*PK`QTjRj}YpAygYvR9a=~?rYz_@j^ z&Gb&^ifCbN;3xKX_FGT>MhZ8d|NEo+7#HRxHnHX*dynqM%FC1MDL{`I6CqcV=Jr!}0Qs1O*g=djtbb$zwu<0a_8)IXTti0<@@L|4O^Ck_z z*Dzc)*kw~82h>mxj`6`7D&XfUH88Jb;1HZ)GIs)r7%$*Tfr(qt9XxdK0ToQrZ zt7@*mIv9*$IE&*Mc3K723U1B8Oz^fmp391|x{gQYO=~+hYw<*|oi^+(J8qx?ttFQQ z$~I6Z)1#vODDccXm=8%;4qH@}@b1)@K+HzE+tqmmN1usAmp}`eBIvBez3q;Z)g(4G zxK*|$yd_r1)$ftNSnJSW(4bQX4QW^v6h^n!umReHLj;aK?YWuGHywQoM`QW^4!Sqc z_CxvP* zz8ozWsRRvwle4n%XOww=o3ehK<$s?1+2zCDv$GO9yM){p>hVwY{5utwZP5mWq8WxJ zQxEl*n1&+H;jTeP9(d#%nrY@PWO+MFwK>X;Ra@uX)aNhs>$$AiKHiNf<3;l1Zm6RQ z+2&j90t0r)w_5Mr@hvuN!oBiacuV>1w=@#O-M*t~=1jTrJB)K@%8$N7lb$Ja_fS#J zObBEN)Csu5e?0n2#6rb*E7k9wAYPV}_F$IF9>PSKvGU%lV$%b!?V+tM=)xI4&_F!4 z1|N-Nhkck>tCW}RqaFBUOQ#>{b8L-H*iSjbS&Q-hd^eJ^R~6=IT#CZks|q$QS>fze z1sms6ID1uLUY)#iKbHLKj7$NCz8=XBH0Zjg70J^Gm(j4Hvw>=MD`xw zL;|G;DakZv1%@5Mcnci8_h<5Fb6095O!edBZysBbuF3i_wY6*4BDwx&+;E^DsS%VI z@hXD2!<3!GKI3zv*``OBPKRlX`Kz3Nn2!18!6z?ze6EMbL?_k0JZyTn{W>7qX40teu*&;y4u~sB(UVaXhv%cRfy{ z&C0-nY7lzx+ZSQae9L_-8uT*2EhudAKMW?+l3+(<4brE5f!B`J^ z>wW;j9~Hzox<3LJ=y8Vnn7H2}tL+{oo;CmT>S?jWG*`(gm$(d%-&|su zxhn9STTG2I9}YB*6?d6n+59-MkmD?j7s?2`I$m@DdS1M+7!AfYmWSd+4m*kxMB_w0 zOTv>i*7q7yZoVL2P7tLCbT~;c`=vct}lqiM>gWc3-X1;vk6-#iSgO> z2vsm#J;Sqw2(~im>|pJ^VyyX}z+A7G;`Yoy;W18%OBPQ%?<k(gPmRTqm#`FP$M3!Rn+S=EYk^GdE7 zo&~{L9j4b}+31O4eY&=>co4eRN*An&$EJ%*@K~KL@*C2`9;J!nwI+6Fh+N#D)FMM1 zgn}KKDH_Yo*`k?#?}CQ*V5W#N8*dEG1VlrV>q83BR;{dRB08lwGXdzYFj(h}TI&OQ zn~1W%4Ca^jWs64HPFQ@^z~-Bdg}39bkI2vAY|+PjLw0H^+PmuT^^~T2C*pT?O^qGmL}zyC03^7r)0OwX)s~M&f1>h_x>rbF)0U zob)HkdwWKw%A`Dz(|JQMKs0F7st43=D4J+S32TQs+rszNpw=tp*gR2!MU$K%qMHjH z@~pukJEEqsb)oIy#hS~N9lT1>Q0E}j zK|uDLu03Vv)?$YFQeb^+QEcLQqKzmpdntwQ^au@^mLXN%099a2z8Gg-#YR4^7JHEk zkjWFVrsbc+OFV|PQ~9|g{Avu_bD#2zj_{mr+MZ{WXS{e(<`#&wo?Lh<#Ub^hfjVO` ztTHegf?ZAn`Q#3}nXD)fJz{MET`nzwGul5Fh|bVbE!vBGJchRy+2+gg=Jui++U*PN z#iAtD5#2N1>o!bRlKf|(NDGt|ip{2LWH;qWrn88Egi+pK%K2Sf!xyxs_bL>pL!e=U!1 zfQWPW$Y7C`5w3c|rFN2Y|I7fC7qfFZ&16{>TtnFIeL@OkG zLpR}1bE4!D^IZ$N#Ls|&Qyt$;?59aVK)9`Uoikx+N&Q}zFm&)hqk?4F6t+S;X7?V z_7fk#73dEc*dF+RykEmiG@8BcP2x8!9^D5jRX&9aIkyt!bG9 z))NX7WrxPafeVd4)LI;7oJe5z235nEUVf`NS6Y}NVVt;AI^ z=!mCJuQ3v~uL?}RK$H#W(LCBPE;J0IQCnf;3Ia0{P_eDY6K2ZD!_)eC*FD@+K zk5~Ss1EK&20E`=Rr!WrUc?j?mfZu-x@GlX-w1?S&pW{A)cg9sB>`^?A0XQtbbJ*j6 za{wIngmzyYM4Ysd+Y$H|yq^O63iu6h8gK^C8sG#DcROKI@6us^2VF31VB%&GFf$jm z5k@=4yLFY0oqWU8>u)NXdc!!`_Ct{+TYM<`2PS=H z;s& z@sIPs5HBzPN|c)k@{6xTVSFNdlK@^*i+#_p#rBTx%@)S{fDZs40k#4@0elMh9IylM zCEzQ-F2HxQ0|UMhlN+~4K}?Q3r{X;g&yx63=}WiqPQEf^%TwY&qX91n z<2=BnfN_9{fXOceTKy^>iZ(OlzyA;eN^kwQFdhRu5BM+OOTbCM=9h%A8z5E+qXS?l z;0)Zu;MW{*BiwTVa(W$l%$w>&tQ=7%zHHgIS{T;>9s>jbp8?JQ_y^%sze`_!^+Mmb zrr9J=?DBPqGPC4FkMEnfJd~mtpm|_qjPEg5;6$8nYLxF|h!g*uvV9V`!|VGc$F9tab|oVvzzbp81w7E z(Nf zE#M8nn}D|f{{_5rNXT7Zi=y^(;dlZtA5Z~U09XX51Uv(%0z3y;0$6rPp8nOBSB8Mk*co=%c=(5hjgLQf?6fH`B(A=_BtAay$!TA_*)qJ; z2?&q~NCG%N=A+lGrDnwMzD{ujPXX}BIluef%*eoNCcxoj6TD{uvSns`@~9RUwh+c3 zL~$z^!j%(F+7x6t0KeS(hi^!EY_(5yCtN)KFLYL6a^umlZ#DlSX7-@l%FYW^*ZB%uW_$Uy zncTgg5QI(y9q?WRu*Qumn=+-}uF;+256Xzu8%CawT7976&@IlUtc)m%!yw z$pKfJt_XQ=nlRcUyORL}Ip6p>Md}9s5#iI0n$PF~ zCe)VNE z`t^06@dqG&wa-Wc_yNsV%M0U@dzrl?O4DA}#3grb(HpsSa$kyf3(yDP{8(hp4WRmE zly8WQca+w7fw#TMO`;Nq0zV9JK0qExPVQQfk{laolaf3zHGc61pRp9MY=gYBRq|`) z*ViD^fSG`&051a80zL%n0vrOI28g$OMi!tIpa)<$U<_a);9kHoz&C(X0D9YJGyyaR zvS@$>qx5{9b*@x z&gc5FAE}(^wt#9hQ!bV1!92aZ)U?)zxj5U z%j^GCuabGAGyZ*hN4IZv`oBl`sej*L-%^)2xpRnx#LGX0Sjh-^R!C(w(z~LZ7Gja_ zhj@gJ@(y^vb^n3=hq;WFeM2p5jJHAd3k~-CvfnrT2fB>)4(BC#K&U56P-^6fp_)dC z-eK?47%=FYUg`jny#K-K_IeK@%U$#) zGFkpnUo~usci{VM5AF9uzhN#@103O2eW0g<`ZW2CK9WqABMcTc!`n2;5GZ#y zc(Iw@<@w_uh5$CpI}9J)`wtxauVF5;&J(Vw(Ut*(kA0Z>!wV7$D~w{a6+bi$9+=29kMlk+CA1j}qaK z-X_Vb&sW3x|JcuEfp@eD3M1J_K0uym@+Ax9Ii|8~5zbqNDL_7F(y_(fVe*{tz)9g6 zw#2&}f0Rw({%olNb{DGYvP|w69>JEY^@-vBBuAbdu4gMy>b%9_@L;ymyRvwG8y>=P zy+g%wRkIsgrBWI;w117hE~}AJupDdlVr#r31WvNqo7u5#p*cieWe#L(z0LgDt6#4l zhV}WTUtgDX@_lm@TkmZ_u)!()4RV8saI#VE7GWlvvvL->3ta<5H=r&3- zMU$wRpn2$aZ@62$W|AgFld4J5tktd4t=H}Fyh?X^KK9t-O#_8g8=XDo!TQ$kLc-=)^fo_{-gzl2= zvTlU?Yb)sP=?Zm^+%k0Ox-{K&-4)$c-8J1)w;Q_Q&)sh7Ub)@Uy>Yv(yQ6y(xLlW` zTd7;6TcOJi%+;;dt^-CLilk#WA0bW?PTbQ$4Gb(;fE>Q3oKx-Zc!)?JNQsLRx4>E`L? z>lWySXX|8LiY`^RL3b^3qi&OKvu=wnPq$UKO}AaQL$^z}TbHlfquZ<7r`xYPpgX8L zq&uuTqC2WPraP|tQ+Gl)(s!g!yibD91fL|IWS?T6F+L-F5`8B6jPn`q^V;X7&jjBT z-|@Z^ec$-J@=5ib^s?a%5Y!s0pC%+V||}TPWPSRdp>HGZ<_B+ z-`T$Lz9W3EL|%$KWtrwX#y2x?R^aTw+t$|s3j*f{E)1L(xIA!K;FiD#f%gKR1zwK2 zWIY)bAM`r#Rp6+gQ-+Ji^Tss&NK=vVk@24KfpN5Htm&okwehVn-jrw>XBuysXp&7+ zOfyWwXPMGW>881+EYk$zWkb3l*|^rY%6QPY-?+=T*SOKR*_db8X4r2yXgF**YB+8< zVHjr^ZKy~hEawwhG${V!|oWL z8?PD1>J#-Z3vLDhV{b@DaJ9zEaQA*j&Y@Ns&Sg}v_8kM$Z*E6 z#Bk2A%5c@N$T-88Z`@%#X*_MbVZ3F`Gj21^GF~!XF+MdE8`6z)jS0pi<1WKW!$!kq zL%w0J;iloXVY_~(eujRQez$&)K0}|WpP)af-=g2Dx9ivGpBSGR--gBO=NhsM!$;~z z>*pJ?4IA{E^oR6E^vCpPjVb!c`g!_=`o;R?`W5=s`c%_lW1-=pVT5s%@wWc1{+d3) zFwwA2e?b4(@H*^I<7q>I@q#g3Kg#sb_}F;gSZEw$N-(`LzA?s`MwpUJ$)*XW6w_qW zRMSk;Y||W5hAGoD&ot3^#gH-FFy6S%xY~Hgc)+;ZxX-xBxW%~Du-$OLaL91PaLn+h z;iMtiFu^dz0EX#?nTFYhIfl#ntNQc$i~864xBAEWr}|?33w^v{q+zsStf4sUMc7^A z3*&WTf<8(A(s0Re&+x$T+VIvO8>bl888#SFjbn}Tj0=n_jJZZI4xes3qhDcIY&dIJ zYB+CLW4LBmY@BJ_W87&xWjtfNX}oRRYTRy|ZMr|HSYn?1b@5)Q!lcVV5Fu!cIgT*N@XD>rd!c8|;RudeBePPuJhn z-_qaLKhRGy$cANx<%S)GorVjBi-zll8-_SzyfMu<$2dIOxX`%7xYW4JxZJqLXg97m zZZJ+a6-5?Cg6Wv?W!N;+apSA7+ordsap8YP%?qC&o*6znd`|fC@CRWl!gIoxg{Os| zjXWKBCh}(F)5!4=k0KvNK8t)ESsXdaGQu*_vc|H(GSf2Ml3`h3$+XP3?6#y?W?1H0 zvMpJbd6p%^Ed`dnmfM!QmRpuPmP?j>mV1_2ma~>KmeZCSmaCR)mg|mBQL>xigF*7&Hn zsF6``t(&4YM@@=a6}38QZPfax!%;`0W<~9bx)S9z`C!cX+(8x2QzArGY6A=Idx_y{QIVMRWeqtQm24d zNOez@wB>DVHEhLd+qZQC5izwb{>`maFMvw#b1rviZ~}?smTS0|IH~+!*vqWdh;S}y zH!c+Hg~*L#>IoKu;ds)jU4{{vFQB*tD5bVf~6W0N899c zqOAg5%b;j23zQdp6Oh|#-~fvKtR7tZFa5k2ycB6?4;feCf2IwoTivYm)i`;?(B(8W zN&aPk#Z73AeCWrIbC>?`Kq6~$XOD7o4=A3@XNs6^TXxOXT@riviwK7Nxm^_Iuehc{pjyZ7w_QE9Gpsd z!u%ll?Hmg}c`vfcEz|F7RhrqZ#20K|x(3NHtqyP+@0$;mNir5Lxw?0gho>9mQ<>8p z&1bk0AEkNkPJ{n(F+1rXFZC2^R{8K!i|o5#uPXKqUrhYlm6Wlt8Zv%#VSUs|??q(@ z{+Jg}c~@&WdDBwIP}?u%L*;``5Kny2hnIH74Zn3+L$Wfr&$4EOEYF?4JcbZC_eM?& z{E@4y?0~R8R!SuBMFLK^Rxf<2nb@RQGnIDcX6E`5vJ(#5NO11nRq2F|8Vh;Jy3X>J zHEy0S=5iguxyn7T<~Ai+^4fJx@bAlY-+J8U>QkG#Lj0Gm{_-E|<4M+}4PTPmxnFHK zLr9w3Xwz$QQf|1pjfY*)`5v(1nR_Tqn4E{Z zz1i|yW2NnK>J|&REwA2Usd`q0PjicvPN>iM?y=Gx^*P%uHj+qpMTtmzW%s=5!<{7u zKDIrrKA$S}e6!T^VNI-bPsK^V=N$EU8a}U4pU>g*ef7Cm^!q@Rh*YRTZz5+!vOTYA z=tC7!;1eswjZnvi&u8Vgd4XPnd+kh07>>dD`4ZHA&-xwSWnuINT6{O&_M zM{ z+p7`swcT|+XA1;9B9zTvOpeJ%^B0mi@^5>3R4U*#s7!?}vC>OEL}bl&R|VEpVctY* zD?TW@?j1zV$;0-xh}z6K57W76ZN~*uJ4=}I)vDB%%NO@n^LoTZsB_iY*2YWJuxH>2Az&Kq;u*or)J&=pDxHvL9*jnu zJqMG0PVss)Zxq*(G%ok6LxU+fEgwHp8UK=_pCVS5qfz9H{QFTONtI_Ftw7GoJCB~l z{xXieGsD*7HOUsa>+wkZ`|EKNF4!5z`%-NG_Cy85u5hv@IV$%!SvLB%SdSjIJQ{1p zzq(jytMI@cwzxn6p|Q4Ci?|p9rIm8d$=IL+oJSE!J6hqaY?rH@3MHrHHmB;6OY+E5 z)%BOfP)n0ZUChb&ON-@0r#>N9Wb5fvH2Z5#N0DptxzlyYbvf`%eR4zYcqW7#miwPE zgx=&dY_2w)G${_BP-cRjElW;2^Ch_@le1lML4R?!7I`R7JiDDNmOGz|@-N^sjPt0h zX06%N8YlOBQXqeKJ`9JRazhbRlzj1N6kWSWuJFPrcf1ftFC@Yxn^%DR>xJ_KazDQ~ zi7Woyf;}j-?mI%|Lzl{73iR2fCiu7h<;rBa{LSUYWD*SUb*+;7=j9U=v6oyMirC@T zYewH5$9V|AMP>8j9?{Iqu95<*%qQ5TJk9sEQSQU8EtZF052S^Oa<3;B<$v8M&Eybz zSK$iwGBSlcf!?m9J4u60uB7yI=ia~dHRm?t80MMpv_>9qsmq7%^bNWuWPV;<4Y(9= zX-W5TTi@Nn`SpD8m5Mv&L5+YjVw#;Rhhtun_dhU@`|_;^j}ZNQVd+lg-bGDFk(^l+ zMbF)l_ZF2U$K|3TGZHNGFd8Q$=3#KysJnd1>)@KI8f$xehZi<-khC#($ipF=kUhKljroj90!hSMKr>-u{SOEyWQ zWeLa&p2yKMe2Qz($LjPBd9ewRtG-0!+?1F81hKMStyW|jEDw2IB0Zg4@H(8Vn)Jp* zM#oSrdxe_4KbsrmBX5G}^Tga+Z(1T(Q>yccnlgzzB^w}-kUI25 zB5Wfh7kO|PRV%!tq&Y4A6Php*Mb5&v4DntjLIxw7$&LRo=MdvY<{{hH-GnNnytKl1 z8j?cN?5{MW1xtb>MHG8s!pwB#4>b9||( z`f(n*=*S$T^h`%)5lvbaR=L2kwlox0`jBxBV#9p}F+tc*63-W+v6D=R^l{*{@DuR3 z#-u)ij{1>9j+!fFN?QNRzvS6HpyYYF@_ajhG(c|31|rv*wLAE(Klp(n0HTWSS>-!1Czibmuz z>^2ZHxd=B6WI8zsBaCDlIS9>7q>bm~D_kQ(Y)kCZOr$!}fxY2me6`0@P+(?Oo`ytV zoLZg+H1|dd{K+6a5yIqN#si}z8?g~-lzprjN9N#pFvP#62AFLi?r#Gq983lcI(I{~Hf%<~ZM78k7lLe56;P1uCLf7gfBJ3UyMNyz0u~HiM z6_LbSF}nLfu8y<+2#!_98OvFYGlr&kBb2Ry-gg0fR)a(vuL!9T+kThW2*N$T)|Xpu zR|H54AiW0p1z8QNNixVd*jN+i>?ypd$=5KftVLd+`GaL2kgN(0Yez69de7XcTerL? zd1(C7;Mdw@1sM;~bx8HVXME*FFs>4B$q>{O9*4mXSmj^L!wT*z?(zp|8BzhM5~+*}8I-b`Rr9JgX8rI>D4R9OK0|oEifQ%s~bvfXeki5;MmEJ~&*$Oz(*z(jx-ul`f zHa8^E^i?9|{tUpM`u4Gka1~kGQsa?^%@c`QW2N`% zW{5futjoh#ZY^x(WY)p?4~aEsy-EfHFJ-qF?V^)5KyV|n%&`vE!r^+PKDaj)>ZfYg zhQ{O^j!-QfixH(98wn>n?YQBXM@SC**pz%rvf*M=GL$TYkDHMz_*1(%I?iPvHz!{Q zOc3ky@Aj$Y7GyoS4QE@BF#LJif|v}8xMD@RdVApf#L)(%8va&`#pO(;+fc0~F_A^k zp(P1L{QfOTHIf7~T9R@k1Gcp!brATXC8=vp;yp&V>Ts4(`!K+)O#@IarxLjIn6wB! zZiQ`b+yC8))OB+vC{C^C)n;2U|CPqt_p~EPgsifE(t%7Y$vC`^^`aALN=Xqk`h;wv zm!`w(Pf&e};HOVXBd-Ty!?utRH@W(TKsf#>X%e=Yhbk0fPTaNINK26+6`S`}Q0+5Z zIg{;!KO?8nWkH*+WDBas#6F~!z0v2Sf!a$I$nHi$>4OAF=|gJTpLQcnoHf%wC4n9x z17dC8#!AcKki^0uttWAJE9Q(qL01wf%EYcv_2^ZKs%Wdjw!?T^>@}7=x4-B^lAP4B z-!dLZxJ6_qzeXFuC}#2>kCW!kvbh0mjWkqFk)fA z=%NiLWH^nHmN@G@Y=x{;y-BHG>a2IQ)#6lZeNAfnEh_~raN*!zzb1A3mX`vjP!8Vy zHL2^D;{1jFt$%9K8^dIt<9wR*h0a-5WzBzADF+)OEbOt60w zM>Nz|tx%y8?Z1s6^(mQTw~rznu`>6CXdDMDhkXX{53`H5!zVC*Mm-DR3`MkoTNJ&J*;_hZd0RsQ)RY zYhRT?mh&ckGs%qqv56&%Y{Dk?OY_LR|6^~nvI%ZY*8r>_6`=AW^3DI)<=RC`SM!&U z75`(C-uB1`Ms^z`T+C;)JDdBuxXALl_UU7dIf(Rtv)& zWV(1G>Eguu40q8!au&B{JX?oh_h>uaOfXH6Vn48zU`9V1qUgij%h5!?;$lv zzJ1jmGTM`5+v^`A<(Rj!Uvc5>SB!xS&vsI3jjzZ%zD{MacIMHcx3Zo{1AzIR97f3MCWGj2r>i0+^@GL;cD2ON^Un;Gtz~Jko zExbWEJidZN6HR5=^f?c!wb@ z4!KS~f}>Zl?(w^ISQK@;uOUa1OK}v9CFJQVxOKIpi+^9kE>_&Yjsq{1K<8gV==_@q z&A(9s{ro0EXWl|+zrqse(?W!%+(zgZMFJ`YbhiixH2Mw+f##1KB8i4SA0h6)?;>>b zO$YSfFz6lva&I{R(a`iZqV>Ix(CphK(7JaJ`uPKdR((mX4l>6R5 zXwxEudR=xvtH7+w$W+~j2z~2>MnlRK#EpK0&<+nBxY1DX5TTKe(F&*&xA!sW3(uaH z3^DNqQqw&x!C3VaF=pKqk=$&Gmxs7+;nN=)`nJajXb^G6~ z!=kAB^99zOyZcT%EQ-3lFR||KyLDI;bz5Fx-K%%&uqf(Qz2^PBTZctax9|;ezxu6{ z`zbAGJ4kzrz!R^WK=|f0k?b*)c67t-ZmK&SPHuvq2Mt97TFHa{fxt!lClxAq(yM5* ze7xu{hFiilqv1L15^KfHJWov75;k$uDVo)X^Io(WVn=G}Ms%hZwKNI0DX}_Qhj@+S zjcqP1wPRq2-8B&MylHPT3nF~5@7s>PH~7#d0oOtjBJ)KqoyN+G4J_EW>!(3ZsqMRKmHyFi4zAj84YJcqW4zcYff6=kdWTD;s){xe`f17Kp*%kc{g8P_hD;RI0UFlmDC+S@r1Ph#*;j}9{wn7W-4ju6* z3!i(NX$FbspeUFfN$Wt*2%{i8Nmu zu~*Uha-`C_BUuSacFd=aYZ%Pp9aT?sMK!2sL)9n2#(k=v(zgsI&qyIMUM3HJcZ&!|t z&T$(QRib*V_pVICg4KEtB#-wl+;JWioJN&t2-yK$D$~CBv#~ObsC4cOpW3(l(5N>3 z77=}G)4uqV#o@JSZw1nwL%<`N8bT&;$Ex$@{bCjfBX4)J7v?+@pkXu}M>auzG_4XM z7zjfYu0yA`R+Qp?%=z>PT-BAfc}~tV&h-l>>%&Wg)*h^`$S<;B$o5VmMPC zW}R7UdnKq&R!oLjYxco2uw-!`!~t_L>yR6>Mo8`@^sY%wKV= ztJD1P&~p!oRDwV~JgiTHF^%230mbVFJTBBj>jpIFJr%YVR(4?7~(&qA*MKy&~>pHVx=u27V{HnR2N%ieg_3QeMqgkrzNeP{iRjj zJFV)Lw0d6B>czXQFabLLomRCVwk(e?g-c9M(I;EEKS$hn_ zo6&h&M zZ$Yi$vpGfe283;RZM?dKx>TETBxExUcC?@!$P5T*`F{I3(5WS@^-t}q#Y*Xr)si+W z)iDY$1Mas()t?PzTA_#83_V)W4Hb6t6os}7ibUEc#^@sL7wW_hkZ{uu3|0(62cH@;iaNSTn_21BY$Sl)(K zhMYdsNav4%Lw#^dm;sFoakDl5OFD#%fRL|fCpg=NHl$0(K=qGk5LEq$hLl+>hN|`9 z8o|%R7Gyx9PieHrQU(4q6xrPa;oLEAZ^-$GHYdm6=|{8=MYL)`7{lbXMNhR1PPe7i zFkv@b1M=G8l$?aC?P#kI zp_^K5Ajc4^5V=ByISI|$Bhq;Iwmn9gJ0Kl@Vuf44`dYElZbj@U5otG12qF|UXo-M| zE%KiN$}dVOVXe}`F149i#nnpK659r#g_}3ZsTKKP>p(}iFW?SUTN^rbzR zs1N%^|9e7ZA8&TtQ@PuLu1R?oLpjMQHGp}YXw|4w?+;6Ga#H2wl<2Ig(pN}l>J6rk zsef20p3kV5$zo`8__rsakwiLSL12^Rp)-$kVhZi*a_xR@P}To#UJ z?y?=vcS}9TkrMdiQqS3?o;Nz41F_e`jsiYk70+<*GdeTyn##&eBz~B?1mr#!W_O`g z$Q9V%h1S+7i$@IWCirxvruy~yFyheEsM;yL;6!K)cLt+eBYFIeR0L2U^0NlTz(b|3 zbS`}{4i0stGF>?udiA0*rdoU!YT30QN7ask7t8 z-4eV7_gLke-?Dq6J|A}FH|rGLAktG6T7axN?%@^Uv*TV}9KTBk<-5_SW{xIf`Al&U zVU=TT7K&?g&jc|d9aV`wMvP+hc?Ui}9|Nh~Xg#vrzONhA5Lz@&3{GFHs;^_0=deN) z&wk^3&~P#ZGJ4R7=tHXa#JyA+^y`UH9DmYokgZY&t7zL zg=g>6O(l4KgskUN=frSddJ%SiLM@#gO7sfn*)g#Fh&f5@3h)pWb>fveoMgtO_*xyX z13HbBU}WL*8~E^3TE#C;cot<;t{6oufZsl)wa{O$_>@|W%9`M&j+?mSN(a(<{;M7A zG!SK=%V)HVRaEl;7?((a%F9~hQJ^bnz|%1PGuqIq7;Xh~oggOkQ;BKRM|j%{ce{_F z!Dvl5eUb&;M{6P>wl}SzUIGZyV5BFF8OtvM1jC=bsULkj1#b4HE&SAL6#pi!C{VG$ z8~33@yh3moW`Y~)L-4~_^mAO@2fm^eJd;HFpGmLa?N_L(Nf6qXe&D!NFsv_b7I)$4 zA^j02wOK!URiDoBG1NEv*ziQ&RiTNV)eYTw)30enfI!figUvzQf0_gEntF!)=dbBg ziUIAQ{%B&yDta*s`c!qRff{t7KMf9@!s$jJfB4T0_tRz#-!r>PQ|vymG@e9&;L}B1 zq!oW81%k1z7}a#h`3@5eJHa-9=8&oIZ~*NUqBb&X@Jv6FajN)-NdW!7$8c;KEc+gJ zdedO<_w-}TgBS;5#$YP^G7u#{-JUU!R^-=K_79>}@#obbI^2Jzs?i#xn8jaBk!He# z!ANQj92-n4Xy@}Q6gGckI|YhbV}`{r1SOpWKMp~ePJtyuXe%-ko(!RFjahs=ksjRI zxbyMwx$&@F6_>TspyyERd=4ZIMMpLlmJLM~Cc}lH=(Ojo`GMl8K_+}N41HH7qzt3c z__JC0xjT&BrkP`>{!9by_x?qD)Aw(=L;KpUpV)JLrt=ua%H}_)75@Dj3PFaczu^h~ zLOA*xwFK95p)ouJ%6GR>9zOADVbVgl@H@4@lix6)SO`A9W9+!>9TIbY#|#4b1LGq> zx*1(P0V4juCW(L00Nl{0{Xr{ZPy7C$O)9P8;}`c&ABuN;JfsrH3jxt65N&f9;?BZ! zd=+B8gKO|y=sBD=LHT41NAd242XQozC(q(&2rWo}J{xEyI2?y;l&%WUU;rrH`cKs% zGuC@@I9SjE}U8I{3A5Seo7sW9ohnZdZeSZ9-!$5I;Jni*P zm;TUn1oaOs;I!}xFfJP2#QE>gjNH?R+{U0ip9@vTppq|!VM-}&4DM+b!_6_YBUu9V#?snkDGVM9#S1AWHfMtctYJdW1I(h4kv ztm3SjHRb7KYWt%Fnmdgx0d4vMxHt}1;UQ>|O!woD|9H9-f3}WCqdXTbkH=-c04hzO zlSn#joniuC`v`IxfPZ#r8mJ_rY8D&EJVw61STnR zWLmfUD`l3OdyD%qL{iIme+%~l^Ugv1v=WMF@N`s`HL!9z4*xt{pN^>Kq23Jqu|q@}Uay)n zgVrEx;phy3{$>X5E#^YxOxzQ$gYRczX&t1_#Q0+|te8pnU@rI9S+t{bh9y43DR_@S zgSS1nrXkG`csYxG|#ew!qyv zD9ju%rz6u_piVjkRLMi>bPoOu%D|+^A&8wT6m;BNdIZV!$P@}%m`R`EZs}$g9f}It zZ619{uG`zsr#}&L4R$R+M>H3T7NCV)3hvqH$MWFAY&89IAvGHv!CY9BjrzJ3q8H+f zJm_aa)W=~%A!eBJ3H-0_73 z^hR19Zn)Skj^rNJOFG069Ce7-G19{}99@;|mOyaBC}-3nl*e{hyNI?4OBZ1l>Z_SV zyM*8+v-&O}c$tG>&|+9jzsGKq7SldB{JV?kAd+tHz68Ao*`utdy>?um8UmGM>IZR) zeO;mBQJpVeKW=bg89hwn5@3Z)!=_F{#dSc-w8cb;tBv5LN$%wwE4R6~w+@xWSw?kI z*BH)x3DnE6#&DK76k>8{z;MUv=l2F(`C7x5E=t`p(LBL#R84 zVlK4=m#=pZ4*kn|_vBFHUlzO<2dgH?UYLW&FSx`%T8WZe4NF&|H#`sCxtLu&53#wz zk4(;`U!ux9%cV_8roF)`3}`S}&|~%cD*#WoP&r27+T8$otI>iifa|Mqe}d}02Gv^t zgP`3SJik}~J=T<37MPOO@WU~+`3hLJ2KmSVA3L@ar66cv#{;E9aNmyGw?i;uE!yyO zdxv#sk`yo80Ikb`^)w{#z~4IA7wb{6N{1GK@c9PpM7dZ5 z*Xh57i`NI1^6#bG_`r?yGcppkPSFIw>5bGp{0L`63B+t81PwPyf$`iIwT%@pFBOK1 z9AWDHQx%5iPY6@*ovJWAJ3`o8(bhwSx$(#kp^F66Q-PMju0<4R+abX2c!eNo6a5u0 zaA`KvUy#+f%@{O~gzU{Ux>9Lo9l@Q-tV-Mw;2oK|1?|dl_+uO9OFC_#1Cd1D7D4Ie z7FzwCVNV~ySN^-hP7^SdNpy;w@dfX|nA&5`J5a}HHmWp_bMY$6mGb4IE-#ptM|-@( z#8uHiqsoei4sQ#Xs|r(?Q0G~NDYCz>cBY6zk^Q50=(!1c&jrj~ZL6s-fN{dCIVQN)b>`oTFu1=|o%U>2R3Occ;T)GaZ=9R2K>|49Vd1^m|7P6Gr`YF5Xp3 zMGUgQbBIe3!*l_2h)WT}Yyor3qaud+@3hqn7h+fvQK08`&@bt{F%Ywp_76VCm5;{I7#3q@e6zuL=Hoo%?WCPG7kH%(KFsnBhHASo zg^S0yyU=*fhty)sVPYb=%0t==s_sTtyb@aN##8Q5uwXYL7Qm_97|N%EM?U(pOHeK! z{rh~Fk&k9>C!EX2__YX9%HiQRrWbncLFg#R*n|7cE3j)1F2Tice-DPmSHZ9sZ5#IY z5H~5?ApRL`46lQ!4@mnkhE+&-I$qr%;P)K2rSrk>I)H#3$$OBHH*X5`%k{7={fbr`g{jr9AmyiARVQvFgDtGlzxYEzC-Q##>l>H9EslOsDj z>?Ez^H&W~+#6hl06LW$z623o0Ytv`=mXR9^a8HHY3Jk+!L8)Q@RMFt) z>_id*!Vlu)yhmc%Ur7W&9=3Upj_+CpQORbkqHtshZm2FkpaD<__>ytrX_|>Lh(3eC z_agZG3~eMObLMeNz<1%8;7W!CXXuZC6W)QM{$rYKg1yFB8b?rSx#uvWkO2?Qq2tZ~ z{L)Bybp0Qn$AB^eem{>&ITvP~#|U69Y(6idgPZ5kY-EDx1$xmfm6L``7cr4RFQQiB zZM7u@sN^XSQ$Q{HNxV8jOeaP|7$;&FBVgKYP_!T45t>mz{V>-c+Q_^OdeQ>ydKwrm z(`s~D0t|8Ww7}<=aK+q#!*!2Jt1>&^mGkA0l!;fQpg@r=QecX7e@MaGX z{^$GfL_Fwrpnd?sMTnCP9~EILRxu%Xt0(#){mQYxw=`$srFM1D$} zkuwnT7?Bsih36RLWkAde4Ehg)-xHj1HC~zj1TT*qg6^-WDR90ByK9J71H_S9Bu_tz zsw_T%+V`u*qx1r|aGUp+s;w_@dwgarf3{<#CaCVc;#mca~N+;eR6?yyeqVKs(!uf=$H_kjohGt>Eh z%QV-9z=?m`N)gcCR&goNqy*!L(b8*U1R#h{CkIgovfK`BMgnh+*)fB=$MvHQju+u(I1bLCx zbCI6HA&T$29fMTH8sT*Gab=4gp_8$IS*C?{kE?stLuE_Z-e^EU$Q6j!`(@mCySw( zV}SgCTh901`fK^0U-&D4VO}`?N3hC^6{F!5*2V2UZw(*$vPjtA%i5zO_mWs+ z`Xm81H)a*F_@l(i^5S8Mg^Kr@{KR`s;%!2nNF{iG5#ND|@KZjV!Cx|TfQcV71-=q1 zr38G3Usr${Wl*u+Bmk6Q;q+|+tS!TqdW_+34QewetoXq@5aRaXhJB1b<2S0x1h7>c zJwJfe=jg71tSKgrTLrRKXu(qhSw64r7Q~`>?T8@u1^S!wK@86Wz%7{N;a+uDFiWp| zl{16B&`sPfb64;AiT5D{NE*ReXzoq%ZYE3$Vf}IE`6`5EV=`%8C>s!Y@iLDDFFHQN zAd-8$wKS5qGkaiKqGlMY9dY3j$NSTXr^Ox}Sa=Bv(UQVg1-vG)DvY(jbnDA7#&25J z)iZZ|YbF6~1{TdnGT49`wGJ{3>?1^eU|?N*H*?d>_0G*^=DX}qjjR=KvNeL4V3U!R zC1c>KkyYS#!F)|P`)lArIc9+DNahd2OsqXe-eF?35bwE(HRs*Lgk$$-;P-G`(3 zJo(K#V)m58tVX)yF3&?sf{;jNR5j1=fO#Xnh6tIqH5uMYe<2o~g*nhbY4ILeb(&S(q&0Cv~n8%4t(2mI#@Z zSO^yy7PevxHM}wl#GfgZ*%~~BY8%Ze1U%t_;%8T0{0#^Xu0l^BF`9jbr(6YyfKv6U z!VLIRt_pieUnhaJDz3n*kW&>a7r>dStW#u)xWRyTI!6)P@D{j(Vt5cHU3DlXk*-0z zYN%Pr^yF%&klC=I8hQeNd)1g8BO}l1tZA8PVotSqh=#HBFtfXaC(PBE5#zYus%xRD z<2%Zw5`K%gp&3nYeU}*Rk9cZpiHieWEz~j`c%@n>#cXI*i*@G3*|k_Op2V)Mg;qQp zp44J3E2eP)X!+8@|0zlNQmX}%sHj$WUy@0);p-1r1lNef4_F0*XlM4s6^T|VeIi$? z2-^<+i%aw12doozV6M%+_gOp|J5Vlx5tQ!C+URwdDme{ zh7DpWF~#VK-v`9xYzYz`!RFRseKC3tsmsQqvrDgwI-3Ez_|IIpTbFIbedxk^Y&*KA z@9VRLI77h=ShE^V#S^daX{A!-hOuTz%Hq=Cis{Nz&SqaJ3&uBKVHM|bINtHK4Ugb& z@VVIvFd;1(d*jz;1paZv_mt+rkp?UpKPU3G0sA=ANgnV1F73)M6pL|6c8G1rVvxnf z4Ovap`HKy4iP+&uL-v7H$jf#hhfCCAE9Ae@eBON|vEft?Lsypz?LWjZ+2Qq9EEs$n zp_6?M6&m5B-hlp%*oTJMTs8QYeDLjeZUv~VZmezXR8DF(Y-_~U2aM+!e4w~+ZQ>I! z_RhtdJH(`_To|@E@1tC(orp$&z@86USz;n10 zP0=M_ld{clrEZ3H%~%M|+1JgOsrpK>mQd`qsg-}Mj;{Zv{8tr{2kO}B zW~_p`vTeUbU`p4WTbRvI*o?Ks6Z$-V*YeP>IjhKdOKr~LaSP(#f^{-3R>kZQ8;Q9g zp6RD8^tSvIPJIbpX~c=$49i=v=ID=~v_Pl70UEUw(&^EX)#22pwq(EfjNsQw@XQVU zjz$^-##R`UPJ!;NFhX4j<6E&-YDau8ABm>Z(b1?>rK5+fSQG5%gVw0bE1+9z41gxX znAWV9%CA4XXwCW{M)x+@`3m^84f{sz+yd?&u~q?s13b<6J;Fmc0l~*tAEAOwfy|GP z-eNfT5gNfIaGRGFLSS1~6$v(P%PR3%7}^$n)e4x}mW6ASyU;MZH8aE6w&>Aun3{Ij z@nVQ-$9jZK=R!jz!t;t@yfftq-NAI2g=pT2h2^0F2kmZ$gPI2S+Ocpnp5EoCP@ zYQ*}k%WYcquo2>FWHkvnJ=mV@^H(UiA_eri{GJBJ z%u713VVu>-j_ebCNf$UN6<7*w;?g8<)Q3%6&_|?pL`6VKn>w;D(a)JXv9`S3z)ma{ z53o*mVpVyq*TdoLk?VpE5m9x9vn2X;_}-Do`AEwv>{UF9$RyGFT z@)jSVJM}p_+Dq`_b2gkl#=Hvu>fwYh*aG^jq)-X|)r~cz&r3s!5CR``V}bT2-B}{R z8>stxus=|(KkCVrH($a-AIzrmFMse@iJxTIas*K41mZy!?r8YMWnwD{oG{LE1Wt{6 zv7id)6jDk^wOzTKCl<5j|O{TQA|e#6>?jo~-s z_`xT|E6hW-|KN`IC~&e@OlXP*)@m*u}>`|;<=cc`a_q45CR7>tK;1K4bG3o3li+WFt+v?ATm zJK~D7;m7yTWhZ`*6S)``f6t2WlNYlGvd(IJg&#H$hwbP>r8~d|u{hi?jT(fz-084j z5F6m7UIoOj#({A#nx4zha4@c|%kbr37DwME!qveHUrmO|LvYV<3my+)AA5?cap)`y zpu

L-tMmfpv*kqTcw!U@sp%itRD>7|*xR_syFak{0S7rAuR->e`j>N|{xCL)zM2a|7W?`uS0%0w!%+I!1gP>a zH0;}9$iHy1#zL7NnKf*b(s>0|EdoDTfQQ}qB^11-?IDeVjz8iadWwC@kIaXKDz{Dl zhGF~0Us#Ykd1yZt$BvQEWFCRlrg0jadS+WI_=>~NAU?Ej8Nu?57%Ii3vmK3}bDzrJ zzDdV3(*H)OU{;j29e z-v<169&R!p!Nhqi*jPp?=9j<`2X9((OwU-`a)B9&pGDa|kJY#2i=v-&PDRXdBAymC zA&6+6&+1x=)ZzsdG24lln8*7LN5o$_Vzwv-N(Cxnx)X7es4*bo366MLMcl62Y#D}6-M%tz#7B~?{ZRcI{DO|=8XN#hrv_nNaeBOO-}^PPyVMGfzI3rC!~gLC2|6{?8bPPhv-%Mvw# zh#0mQ5!b1R4^>3Ia23SePQ-t4#B*x#go>EsL@W|DTzd|4#PK_M*MZVw6_IbR6pC|2 z4M(iB1Q9ojVvw|6MMR6BA|4ktMnoLL5sO4IKzgboPIDrT-o^XUBjP2Fm@bNb(k>M- z#fi8=)Np|}T#8wnip!YfpWv+BBWk%40@hlDDYFGg8&xuKPQ(Ide-AmCbDRwSqO~%< zm(EVwEn~GU@@~$YPFkaqDRd&v5jFnU-+Yd^QWVQdn^i>2->4K%iJE9ce9I9>=W~h? zQl5&4dqEX(zNjgWh+UT>;z3a~N@r9={w}G);~i0BMZ^^xapE3MQIf8!i2MSIf;dOi zaG7}JAmSQP^p^Ijh{C9NxH4#VQ8t~triuW!vP#`zbJZ0cU3&RzNO$D7ZtvUw_^pX z4CyPGRQWNF60qLPkw*E(+O7yBlawvoqI-F2#kb32%=lo2b1PY8{S&nX8g-R!{60Q_ zF#OV&B^T2>+u_q(*1&tavS}1=YCMJ6xfpruuy4s_PwDWTYSnSP$FI0PcUv|-D{+9k zEd`(73LLHC`S`BJ-F6DWe`(4q{;@4aT*|kD%^p_qzP%P|*>Ues4881Zh3CyHoOz0$ za0^|Fk<}g;w3ao%m!=o5#r@G4*teEtYA>tFGOcX}{IZVyglFMJ>u_^22D-0jJ(W@| zc(5MBr7=)u18(HTK$8t@b=X)gD;;isJ@}zD{_(IKe3*wZ{blgm$U?&eVUes9r^-$& zjK7<0WX*%7FXhbLbEJ}E#a%Z5d|Fa5nqtKT9$7MR_ZN)zGmCX8(6K;UN9lW&avwV8d0#oW!Tt#&Pc z13Q-AGM)%tTX5q%2U>4oA6I%NTspDg_ktwHvrCh>xL0p|9c7*&%XY&6ch?qX(&m*S z^k54nTjoHuJl2HwcOs89w#?xHGLQN(Zo{>Kp)tQeh3w{wcfbkXTyjKg7qk@<`dBR7 z!WswtrJXx&t|x-p#j&jz7fl4RO?22~8xHIM#BF2SFn(#eowW>7;$r6QhPyLNtT{sC z^z9-v-nN}>!I*c%4oorRLjDex5Gf0V7im^W$%MGrxFY?G?@{6fJ{}Se-N|gFK2N!E zC+3@1!KIzJH(drkyD*`$%>KbHR)%20snu>aARvS9B>0{HB_{Dd0eBRUzZ;`{jGcF* z0^Wsc`50f{hR^cZFgzI8m(NDv9;N*r%-kG-etTF%b;q{}@P#eh-8o9!!nrz2JZs7m znUVZc24LTV+5RLHRPA;M z7jzMA@#$Tn*s;>63oZ-PGFQaU z?^oDBA7T4+7M@n%#GYRf=iPO$;xbKwrB~Uv-hyUCs3KW=_mZo44_EC3XmyW$iEDWAJv45k;q5(^ z&S_=bXD0r;^*;0GzbEdaMNNjf57>9KI1A=IK)16H?mS=_jg45>iz|#z^xi^NN1w$P(mzjhwIXKp6BEr7#HiCvhT<}So<(?0 zh3~x;v42@+b4Sg4E5!dR1&U`hhk0yY?m1 z5vo6R_@9{xSC{=wVtYJOnPjAGnZ1>n1-%;K?)} z^=_PNH-6rXP5w)76-s*B$Wd*9!k&np6m>#bn8Ua%4m?7av;!VJVx21$mnQqq8Vf@n zGlTNQ6SO^OeZ0(}m{gkmnDszvFCR0bKH+(2!k>lFx57ReQ&^g z>1O>GS|67Tcp69jf2>^zd{jl!&&+hsBqYEDLT+Ft+&3QFhdgfYb6pQS*WFb-7L|3^ z{Z=Pn&;S8~1ezmAP*lVqQBk5q2?`n|KoC?=j;N@psL^EwCF=LD?$>YLn|T4;UHO?e zRee=gS65e8Uq*(r!c8%<`Xu?<7`ayF+uE706e`8Y(LZ3psX#pV1N{H!hM7mPnhE|6 zIf~))DRJFV--X_zD@4Un*h@>r`$v5vC^YMs?}AZE>Ecun3Ft&qPs5z>hSK|cNvniX zzykD)VEHu2W?nkkR$6bR_ew~>hR0RMd^M(SrY=q!10p~A9tT04e)9Fl{-g;%`NlV2 zqJ&-Mg}LER@PEw^AOD1fxM?E$xbF{b9T8+lpo1SED}iKX@p0ejZA_gwGCu@$lpne* z=Sk9;@sV*@oi z?kGA;-*U07Q7WFpjlNE5l+cr3rm64vV%n5)yp zRloS|&8w1SzijFjqRw^@FO^r$;<$b?m z&yJa}mEVj89yVZ@+Bp(!C`y5iEGh*#$h8raJ@Qxl*AfjUztncmiAOz5u8n^0VSRe4 z;^>SHO25x6oet-i`hv2SYZ)YA=X=>X*vhfc%l<~foa$p)#DktbMuYz(A3FoOV1alK4%3*F;`v~;WH?SI08#8i>`fHyczfOHa zuIgaQiXz#qm=#>sjL`&ZVj0V2xL&_NJk^Yyk7Gqgo3X1gQ@=Es;fnWl^O9M<$NTBD zdCPB%K9u-d9&B58dvk_6hF=i(v|u-4jM&qHU5FzA-CDAd*gS?uTZVgr^JzMhN6WNO zlD^;q@p6!z8>oB=Er9JtDXHv?aE%0}N{*ZBfPFFE8i~ek86w2>scdNYkRuvQEZVt& zNI~P68SRx+)-7DPin7+Zp;#F$Xk;1-WeD2073&sQsiKJit=J9T&u56*%EV0ZTr1XL z;9{a!E}47K;9gQz!HIBT5czYZR;QPoAP*eD$la`2sc7DsbpSI?Yt7Qp)yB6*6PJpK zt=aF?PJ^*HNfAh6)9{g34?dR0t{M~dym+zRX_U*AR<*t-#m}gu2k3D5&kLl%Fb5=E z5u9j1wm?_4e4Xx)7}<>6x zniyvHc~-7_FpPS5%Eg*INF^M$dF(3h?x)vX-GTM+w3g|~51?{}tKw;~s3R-v6dxdo zaYkJ?wi6rYi5`1d(1i`~rC{Q09)kfqC?+&58Y;@Wu)&Vte%u4spOsu(*_E|VepWI8 z1O}fF4|GMPpA@_s6vmUHPd9d1M|r^{X{2L6R-+A4jl%WRs^$VID#noR$!_dU?5_B_ zH#>jbpSrWNJy_bW=)o>WXC<7ttS7q+=Ww6u$yR|ym-S-jm^b@i7tchjg_Bdji<^Cr zravNl(TmY$4Vm=v-fRJ+9lu|~rtc^FK(oB43c9E->+bbF{*d^l9~&t4jPYdniO<2e z#g5b2Gvo$4gIyALpTtLJu5glnHpe{xHm?{+oue z+ekGGhw?lqCJ%>--YwP+XFV}Ke>9xs;t=~U!`Zd%UY3$C^+0H12ruK1Q%$~UhF+K{ zs)n-;=q}jZwfroZ=+(1Whqj+eS;BxJU!OpaAxAs*tI-I8e9vMTsBHQOCIUz5Ns7J_ zYe!%ho-RBFYaOWBuW&gA>o5dDWp@#bb6c!TxsU=55xpZ7mPxu*e&V_ zS|l1rv2JZOFX8za3PzE7$8}x!GnBS2j2zAWiuS1-%@!iv#bc0efw+APNZBoBjbV9k z|5S`&Z2@f~*g?YY+Lu(`7Gi= zm+o*O7`RE4UdTH3DY0J=T1{JlF*B*6?+SGxXr+l;D{;8njkP^p`5ol-0N&s(GUG8L z@)@{l4934N_^a%4Fs-qcEblHfo)^O}VjcSx$ik*cD^_lzpv%eR4RxxW0b=a(n;9r& zx=Var@N&Y%u<>6PUtG*;vBdS_B@FKf z92F}rV}reoGerGm?3p&Dv_uv(pENNFhK-9dUPp25IkUKw*q6>MCf{*<#gIYy>`EUBw>4MEvfnVYF@%8?R>P{Hf0FLAnBa&EP4# z3?I{(aFN2C7sZS>$_uLVX{RuZM2-&@NNr9K?}+F>D2HOYDGCC4=LGiqK)o#MWwCt% z%b`iq;R%qoO(NqOHZ<}SSw5&SU0z9d(^~Exc7F2!N-47YWloLGeChTfFNlpuTF|lQ zO@X+Icrf{+QOl6Ozjr)PrS{@R00FiP#m8jJK!rJzFe2qzmJ?Bu&YhXlHs(=-LzG+CYtrY{*adwQK|Ee`oiQv6{whN*`+-iPF)JbgzKOxW{baH z$JVC4DThBg6+rp`cgTui*FzX3Vj3Qk`@jrC{lE&-H8^`6cphfWb6f z+aWS-7GfuK^RBh$$3oDD#EQe&g1@`Uxhc6pbIelpY$g-B2oDdPEQsa=fOB1@lWPY z_cl)$dB2?Jj=T?3Ogs>aRipXh>p!v6F(nWEnRM|Z;-){depudE{Abq3oZba6O6DcO zJjbohe@426;-^2ewr!TnDP2-@)fwx9Q$)|3nOuMvdo%0MWBD{tm}5E!`e1AfvEg1g z?0v>DY~O_k79A6JA>y3%K1lU zQaSMsTTu$d{S(P{OOy_ZNb-oKM|rgXpF$#Rkw$oRxK@UfS; z=q`3umXg*i&1^+WzSl-eGx5n?Y#?RQ_HNcCX`0L=RTnz_Zd;*d-P=xP1Cknc5&zog zc#9@0{;i(OE<)vgnT*MNTzw}7aRebDC0j`X`QF5?zp4r!{VN8GrqcbLs5^F#ikb5_ z)?K-1!;V@79}<1;XYIt_|HgVH?UdBD1$EE-jjiYt^-TnD040$e5Rh3~Y*k&A6k1*j zvRM-`o;@I@{GDxt4KV6nHlWSH#}Oz!2tK)xmWVlXshD#wY=@;{^}Uz^6pPLGvTmu% zWVe-l3$yM-T(|V=y{t2~KXm>F>h_el_#dnfJX%x!!HP+YTmK&{!`b5M|6})Lt5#~Q z>%)yVCHSwo?arYDpdpO>m*&M`}BWe)Grb5{}Z*Zl&M=Hb@Th! zOx+LDRrhV3jCB{&-^r;7j^4*QG|kX+vC$TM?YM5){qPH%DLF}gGn^v{T7Zvkh>c@r zUQ5Z&1>$&w^%-k=XN>;~Hv{wQy-u$US(S%kaTxT1@>VG-P3ARMOv-0jIi=>nMB4#d zl68zlZTzkEpzT)VqkGL2JM&oqF8sb?3d>EMOL_~(Nm_?mNxJ8XX;WAs7}{bgYnM5X zLa9p4$i<33^paH|I9H6G%GQ9TN2an1dYTfHj1wWvNPJq7)+Q=&Ef$2s_=mduzX2L| ztGMF<)+Mu;R5WEP2|NVdjJGnq!Kq^P18fCsw@V7xn&!$;r1bF%qQx{eD(^AMl^z@* zo$50dLQ|{FA!!PStrB-nV}BdxNGd(3IOcWp#Bfq57;Xg;@!Ysw4I*(Ph?`H9#qUaR zj%2-5oc17Vla+6xX@3Ujw5Tl=*C80D>0cj&nG0cg=0Ui;9}*uw$nHKj+N-><$kAA` z9(HFOIsE<)H!ouUmrtHgv-h_o8vUAqiU3-z>>*Z|{V-9H=LJ7$R)v*AY6}XVD@GQw zd(mK3g{<9aR)fVvGTSlPxJO?0h&J)!d?byo$q1q(*8`@iKP%h7-`vt{;q)4 z70eeGPiMK8Ytc6D4SP{DC*7GU1KGl8U^J2=OP^5;*sLD%T_|%eCE94r*Sw|}Kj@eS?poRL1cV@GUq@}XH$*Ax5v)Lrmm?D15c3mLunggFD zRP1*p(o#q(hA1JQ{>5xaQjtt+jc+d&vpj2THwV?>bJ-|q*olYcveUrMm*&EMI7@so z7n69^Scyq+Afd9jyZ>R#;g^d^53`Or3zUR)^?IG`1FNHsN#j)ObRL0S1rC#oR@M^Dl|V;KECDJtrw1`@A2kz?&WG*1SiC!*UD8R4 zShyvrT^y`|x~0)o$z4lHHja%Ji}MyhG8c&37O=aqeo(&v2FL^AC?S`K41p2&5iwG* z3H@~sgC{S5glZ^hMGY3BKOIT*h+Rs{6IT#xk=P|z$9A&)$osHM^2xF{6(rIZvb-#5 zn&S;3nkZwKfWh5bW`QRe7Q($P#LR`5-Y*op7qZbLmF*Ux2d|I~MI-hFi`b;VS^}}o zvl(IIHc3FO%=kiyx<_NMWOrfR(CpU6E_*cD;h{wpyWuo4ZSjH129V3KYRQ{wO4k@d z)b2M$4Qr#SS-4Rm>9S1FZx&-}uPtG-xBO)Z`(q!aMZBx+h6Qp~#hU_cF1eCG3tuVg z9a2^g#s(4)W)_Y{CQw=?7nicU>^Y=J%;V2^Ys)-bhrYL7%qoSHt`hH*vOgw$DeYF8 zQjS=v=AYA-%K2ygQZ@g~d;~MbLo-Fszb1AOQvtM-76}be9_hcs1O^%;0Tvb57JNy3 z^a!S8>x6e1vZ)qVE@OjR>IOIcLE_P6Y%#o=!^$wTe3jM>+hLwEy$nA6S7_1jbdj+f z%Va;#6#rNbbG<~YUk-!tZCbl&D}G&$Sq_~21?cDG|+Q?I3s zGq_>k5COrb$Oy&4g5=IY6^;uDfbw8uz@LMQZ>^>p}|)~#^dZ}EF9!N4qNkM zvF&lzH|J{#C-16leVTlz3CZWq3(v%*X-{BvZa34tbK%7V>@I85Bc7c>LFbVh)8-l>zBEeR1*{nG*u#5O4P-0AJ}{A{!q?3_&hc19$LdbNyL)U zt(EM3D8QL7vw^-eSRVJk#D@4Ep!*S$#YYpo({O}q%*z-aWt74AAi_Yln`S@W^;lAQ zaX~dpgIhH8Dr?ueno4!Jz&{ihzlsHfQn~o~qKH(nVV-p|$!3*gV_cHGE=ejWiFjZ= zYu~z&IOHf}pG$(5WPtO-!km2O${k{r|FZOziHdU;Rc;i)!G@Hf3S7MTTRQ~Vj{LgyT79qHiEx{uLn zsF8oXhMW(6Lmje2Jo6g6*z?(f*V$429Cau0^N?n_*d+y54|cmiU7E-6&)dY#3^d4Q z_(D9iiFFF+%Y`8|UifKzq|OU*#dXUvEn)q=O%L`PPA$gmTLA4_T=tMs` zgDHbLGuq9F7N}Rz)|G5#xOeuT`1TE$X@^CJH({xNNNe?N#B*Ly<#}aPC-6Z1tw@}E( z6gWt*8hBIc-eQRz)s9A5C~&^V;xP`&JuA4p<#Dm07waaTx)7HZ_J13TM3rK~+iZ-t z@jG*OC*KDrrZ?vTeUdr2f*J-*0_QUAUxS8SNLvIjd`Z<^ zDEA92rAWpy8Gr>{(&^P}sEuU+jDM+m3%9Vg=bI;_|KogDMhpB;@~w;}x6zBk+BMOD z|7pH1^m?~KR2GYYTd`;$r|tCY6fPx@>`OD-L82NZs*N2r_cP*tmL0W9qFS3My6p^W ze{#%9b^{(IA5JnJxsDhK;$K_g3djB6+gSHjAJemfw#%~KdrVxrrA3aY*v696>c60J zTc}pABLKFWY}Q5FSYBF{3{F+S<@Vq;Z}4W`k|MEV56=~6{oqe*Eh}YSE>tSVW;3V3 z+u8Yl{6^+P!H~7$AF8P!5-(T=Fry%dz^lXd1#*zb?i-8_#t~Jf8I#OtC9)pFL0XYn zp0p}no0*b9wd0~~9ZT+6`W00%$#`6TX-Th9mQbPas%}LDU`L3o`ptDLuV>Ncl&rb2 zNPanz9hMF9hzZMn(nu&XSqs^=kI7&(x7b|=2WQQp1v^*|@4pX;UOO-$n~eS*tSXaDRCh{&5f8Jgq09jtHj2j_q<7#=-F9$v9&{SG^w65R253qusX z1D`e)N1uELd4E4+UbuVfL{k`E5X)HIRQd_o*`Mp0EiseUGw-z;&jLbOlK)fS1{)@Fq zq-X6}5HYZit{c{{Z#cwSi-GU5w*O6uxGv`6?^yR1pXvMUq6G$2fh)ywM8M^nI}ZOZ z%3FQ1@>c(E%Ug4@^42)YJLiKKe)f3R(Sjyqwx9{ojRI)hcg3a;(4MOC@CGWTo6-2ZLiV&f<9b2t3JnzwjMi&Jd*8&u`rlES1ql^$K5 z5#i5LdJK4$)PdTc72Iw6y@7tq7nz_bf1>&s3CZK->rj|<6^N9*?2p+^Cl+1yu}+an zvSN()^YQv39w(_twLVb}Gs_yaz5sTrIO`9~;=JmiVonlEKao1Z)+b z?87D-Go@%az`C}1Pe!7dx!SssDXlfn$EE}R5^!C`9E2Go{5$tZh8+U|EblcLYC6$l(;5t zI1XF!w{z_I-&T|7V{6iI5c442{;NM`9XqN9^^%sS$(hx}wm0~~bP+z%qP0l; zB&JQXqr#wN2T5`vKrc!%+qg1ZEIo)B;)}7AHJ*Cz>rR^cy4c+RlX|Z=>wU+ktdILe ziqC$^($jW*OWK28_6GM%GspCG9JMiw#$otOo;?cPyqk1$HWn)6ptnVc}zLgJPMl51Gl`>uzPYkrl~x>&_j%^F4JTlqW=fzNyT5B zkR`(N1?$nmB@=Nm0!}FlY~qkyb;$%lRGU-Frl@JA6rCzlW;adB?B762anqy}pDHPE z=#qiu#udDbW^pCshebz?k z$+D?zIvZ@pwCa1ZY+h2?xOLH&PL=glP3KW{s(Dm5okz7TkJcjhTh>0sW*TIRZJ)8c z9(#17kV;3pqy$xi%7tFI<;Wk(o`kaBsFWTn_ji% zv(c6AHN(k;e?c|(_ljU|f0mfE#q0N$7O832MU5=^vb7XE01ScA*v(t6pai^a3`9Lm z>SQjMl%-&vnvmR%@QAp{k*vy*tW>ONWZCU@Iil1$qSSvbDjHc<_k)f&dv%->)BlK~ zf5F>4<#b2-!#cgDvfzlla*Z-rpxSw2Mk8x4Hsa5PUE!QHux+jSbvn%I!As6Y{CuKEO{)Dl>z&i|j-l)L-15$Xn#fvsvB|XfGCglg??;V-yAhkw2~wB9T9WwT%8r zeCW7c6bRc#+0N(}d33KNnmMRLKpK{0NJg-0SRVP3`>GRyWi)4pk%UawikFgjxW#J1 z5b>b*!xE8mw!fX&x{YVjY3ook-l6YSI#q4v;z7EnRRSqlsPeYhVDW4-o)%H1y2Rfb z6TjS<-S(K^n9_EgIJiy+M^Go1!uRNK_uw5T4u0pv!8>iiTox{7B=cd3n#1#^e9~Hc zoXju5NuYiyd`PNn447bPw1*#u>eh-WDf}jcewMlA5KCz$?$~X9}m$?J|VbY zl(ppTu!g^(C8t+bKWxeG3+!I-8iWS#M+f;ZZ^>+N;HSjVIHWdP^gN!}E$3l*-yZgs z$fJUw2n&OSf>KNsla41|f(h9_Q+Zc7i4Gr6>;R8a)G?H%oIWY&`@Z#3|Z1})GXw9!_*>Duy)97j}Jcchec4d|)_7;=V zc+cQG>dhe%9qKO#+ELpgO>9czA9v8*2>Mkzq=Twiy>i1fx%+T&U+T9!n_6P6_`D78 z+e#;)E!nmhZ77CpH!s};ql2zU=ck!Td@57wrK`n~bl$d=itoU`4ZLTqIAl+TJ0qcY zFl?8gT?EYGOH#NagfGXW=yQ#EvC zm%Qlb4~YiIhCG`<|I`M9hDPL!Pp}2W$QcH0|XUOSc5$Vjw z1rA9aQX;l?=9z(GCUCejzY@#*bG!00shIrnN!?KQ@4E8V0p0PdyYT+dAjiiig+xYI zo|8M1I$L%^axm^k@_gYLpEUB6Gt9eK4z!xJSU+N72etCRIB?J0PE_rq>{2X=&=2o3c}@@S!{5=(Sa8rznL+j{WKtVNOy=)dSLDU^^ZjNnCLX%D`x?V}Vd zojxJxXv1?)9xl)^3V)=2`)y~}6=G~}eny~1jtwOuzc+8w?^!C>*ey|y(eDt4IO8^4d~kFQ za*ZE}^d|);DGsT4;_cqN=Wt1KC^0PeXGSLCu6s1Ik$`{4WHghwky2@ed>6vvs~}O2 zd15_7T;GSE;a!1|^cHV=)(RpbOcto~Dft!aHud2xJf6+#cJ}3W2D&^c2~P?q5z}zq z3v-*564gA64N8Pa0&11Gbs+CVFGvmKSK;vE;eq^pbcs!a_<9T-`Ga}K9;;=ou{o`$ zx~-p)PlPeRhX)>W1VkKN7kT6f&F_f@0%!4| z@o~1PIJca|!`^kXMRifirQ*O@yo0xRxfnXl-;SOWoG{IwC&rH8t(t8<4)HTyha+Cx zID%gmnn5a9ZFeH8jwChsjpTwf@}`UTM)0#D>m>%8Uh~Q9*-WNmHui5;Ck*ifL(NG3 zd-nIH!4PRi{mBZ)?`3An;wiS2xEI_3Vy;r9BV-OE2#Lour)XpkSR{;A6AbVuE zCgK|J5hMA4merEr1fxOKL_9bWqm7vmduq+lvWH}~Mb${2+u9ili8ey>!fVsTwjc4B zV)7`S+TVq;63sRJaAx;$4i!Hs(D&y2*hH?1Bh3axmm1_9$~k5P`dbaIF>o;XP{Dt?994?`H`*Jm`4kca&w zUdYO>4(w$_ifw%X5gn54aSR@?Z84HVM#*%TK(oYnD!@oND8yw{p=3za#be~_F%e!g zx(LqEzha6-Z?g9%2 zcT>?#QI8f+-Q_hYtv=J#7(p>3-X=Pc7T-7(3euQK+8MEB=~9`lbhK1+2ubciX;3@z z@CA3wj-ZNY4M&fa+>v#^ilUknQa=j8GhYC|HBvabyw%xa0%Q-+HIa%9wC|Bw-v|GF z2V52M=8xD=`nyYbaE#ebTH81^0N7BbtT(M-O=C`jS_7=Qgr6STL|F6|Pw;)^5en|5 zF9xIlO*l7-#!Gl6Zl`K7CiHk3VHaH+-V3!v;M>a|iUVtuO@dvl4+;9;K#(l6> zwqn4zzdtS^rP!DiqA-dZz;&g;N<|VOf^y1Bd(|k@eUcVm@Lj8<)^smH!1#FPYx&~P zrMyf3-4v9q@+mXRK}wa4q+S2S4gDSI8t#PT0w($lPs$Y6T*f;_K9*%Lc%6-ETW^Hz z3`~RFA|ec$W|J%hN*~vxPlV$bcjru|4oYrhFp!+eiPZGo5k5HHLY$`iGBZctr;~(v zNn@HvAe=Ohkf%*Cea=(+zo-n<6f;ax!?I+5@EyX^k)*_lXc!+R9ei?L(!_8xDoPa@ zLY5RCXN@RhN$`7;VAd-kL&5VCe1OdVKDSDm{uc6VP zLO0liV6l@5rTi3UQ*g8<$+(`*e)>=rE~P>CVcY?R*?h85QACPLA6=ozeVN2)&x4&C z9aY;)RKAR5O0_)_Esw0%Bdm?1qS#s!FHOF z>pm@is|kWY4U9<02R=qx0Y^)QaDeF&U{YwVA8bA`c!Zo=xYFk? zERnu^6@)1WC2LhwUsfRwx4gFR;OU2ef06S2Uh zlHchTo@iiEOH8>MUW5-tnfh!{pZ!#yYyfy^JqN%s+os38LrA4rplZiU*`%P~3F9SBV{@WyBgDJ1Jv0>X~ z*dRrRZdY4ZRA~n)IvV5av0dEu$9Ouni)FyNm(@>|<ZTmA%js+0BXEmE)N879z6739+3s-T{#AeRQ;E^hyGe5JREGGN^+ z-A$F{(qC0sT~)Y?a4M#BfmF3gCMV?vS&_~JbBxo$4dULLQRxk05k3JG+5w^IbZdYD z^9aOvg}6VexLLQzB!g~&*nT84Y=<~$-rz^#&Rclfk!HWQX@ENWjKFJD+sA#3(DwPC z>dbZjNj~+3w)v9Er_V%JdSVGU5qVO%%$~?Y%?doh*JX9H#IHB=^cEox+4?3flX#j0 zyI3Nu)$R}?%ea;(j#Bg+YW)O7Up^A0_U^;kULS&m&& zY#HITg*J#J`!93aNwurM&>t{I%bkxKuaAfcVg-{t4?nW=oWwR;RUMps< zy1-@9$J77Bqq4eFD8x3qZwH|c5v8spYX8D>2a>gDS)*HIe@j*y^U2OpJ{-jP>B%L(|x%~0%BH8DsdDH{#6I2Y7lE-SwiDCBx zG3_qi;j~jRh|T7~)DNSM*mD=Jly)^azsf{DZ> zlw$kcJVTs0nRiW%3Bf~kw@>E%nmf>9>)kv{)J*0b-SDmc>W-fPd`$L!WIy+>e2`l< z4NYV-_#XG{3!1=hy9d{$?r^Jb?%z<~m=F;3yT75n4z#Lo#oth{3;w4j@T33k9)I@V z;dzto&_-1Kou@=pS0LAfS{}!~g{GyQgx#pO8(8QqUA-4kCb_{+sGf!=>_^+eF@&FY z!hM8yr>#YNiU8jay}W@444$3~qvgUYbfP(*Q6U%CwVTq&cPIx#FE0Q6pS+#f4Pz#U z0G&fdlBG8s-c;yb=fI;@^{v4|^9dCnk>^TuL@&gXT6g9ZW0y3MwQH`nOk)Phr~*_K z(Mu~B_MALxa1s+U0yRMl86NKSv{B@!W(3u?`}4t3I~}LqmQI7}ul-e6Pe)j53MjCN1bidVYqF=SEXH)Rh=Qrmo@grKJk zPQVS^v}h#{!uwQAi9rX#O>1r4ekmdP%$+ z;a!HCjPa4%av7D0F|ESZ1g3izt6Bfdql+IxdDD?czHNU8 zIeiiP?;<~+hnqV}6wl=IOc9#GbNa~vk&0_-?SifrrL{Gf8fsyU)0Mnac-st>C3YR_ zeE=9muzVp_OyONmtCbsLD(SDvIS19CT{E7^6Z?2%jnz)PnLAQn~HOuTscuM>R`PI%eg1+mU=bR%&w$Ag=lpF z&+1~faWtO$@|*a&fVT}vQv$uAi50g$iwk-N)5VBsyj7pLe4AV=B)OD?4c6iiCB{mG zIA)IMjiz$YJFj?jY5xz9XT4;Hu3u-r9yCK4HU{X z*K5!J-AW@FNOJW?`=oH4jm?$w#*9`rQ?q7A~YyKSFKqM(L zQkjL)nE2W|#$lPtv9;1?+KyQL>*~FXR1U?#pQzTc4I?srMZ|83C{%oV#x>0Ujx!my zg*#ciss6?4>Abz}#<5h_+jrJDYJJ5i)w;}?9!*po$9>{#M0X<9ME0RuVH{(X;+}ms zi^SAZ)~erxyg6F=xU-rXZn9burUE*nPujaSB?^8jM=F`#3=|DB_^@$~g>Gn8HTW6< z8qT3Lbip1yj2jLvCK&muvx&(w`B;nbR%AQNpiZKSl6L=-P6EyoJS0b%E!QU{M%evc zJS*poc<&G3%jNTO;6p>wt$DnoT(Xzuh!<7>OD-6(* zw>S8uJaE8`d|XJ6(@%INc_SScz;9fYjK9De)igL8-SJT0^de5L#Qa*sM;pstU@&oc4zEF9#i5q)O!9(acP z>e;+wx347s&15PgN><4Gdn@EN`EK5PKESs!AiQ(GZ;6Q>)X|@p!E}|1l^aoA76_-RN{3tFBu!Ev9S{gjX5HbRp)Z8q0}=_p19-@9iJ(J4WLOG+xbiIlns z%Dllnb6XV9L=nG>jo2fus)$LY#>K=u?Sln8cY@ATRgI$lD>hTNJZ+^@Lnt1p{aSF# zKt&;=jp7o)r=3xb9Yw0!eQkETN(z*FwEWmR#Bkv`nrbcfi%bTHpB19nLLTmjJTQrP zO>N2{g$reZJv}OS8gdXQE?fwQO|g_^^KC-ffE1F~s7o>oxDnm6h-R)LdUZqvV#cA; z>H4TWW}wihu_{29iDikyAma1}QsjB<@lZI43?@;>Bm%--CJ{qCE9i@~_zQO9eZ--Q z_=rK^hS4Yo0iW@!{8Hbb2%k_(gfWn)WWhZWCTO>0?+c6gpk(|sqvJsFB0jL6&g;Rs zG_cT_<7i&w?NzDw%e<&+hh$!VTFg)P9!V677xPd=?wKRqrNcjzv7uy)W4h|pJr!)2 zB^h3D^lim68Bte_?nN6iFas9n{q%Q&1B%$w;l92=D z{0FM@O-&p8MqIswhf_fe$;%OXyB(R~vA|hN_^61<0W=LVkJg@6mprsvP3kmr^OzDS zWMmXce&J&BP>w|`Ro9p=18{+RDAyUVOa{Qs5^5Cq1-p(7y$ub}7!qd_;7qrgqK{WoFI=V1=r)+pG%J5RY=qx0=o?5}(qsW86$>H@i(L z;!zFpsABsfs+pGq6`^t4t>Pz5DHGPk7wJNU!=0(9XfUZz6J&)uwIYk{$L-82xuD|t z>e6l%zeH>kG?kf4!<`yor&jTpyduQ@3P+PD#>Q8vERVbPk`FwtjyPXao=+Oa68z$v9d@gwcfB<^m>$Mbq7KbtfzdE zdUGZxb2CggikO7>kyD7DPYx6{VT4oEbElrhdPiWu_?0f3L5W0&-P1z8_LQiOrQmA& z#9O5(KF1-5Gz^jLTZnOs%ww{BrB*v79$oSnUr6%yv}V1UWaQgcILD?ch04cipBO6s2Z{ydp`+8Z2NTD(-bOOF`(r?naKf(= zOqfStvABK}G%%({LA3-Tr%ACgkF7`~@&=rHQsfaGP?I7?!5+2NhG>AC{#)eK)mw*6 z^?G!xxhY8wZ`OS3M7>(h*;#WU2L#|RA_u=!{ev7nYR+F12zz`Zy!c0Rcd63Fbx-rG zj9ofrVIa>(@8Mxi2cMak^EA)wFI51Z)J5;6K^OkZ3d|$5e`;kCZ55GVQ2;8Cg0M_n zBlbPbb2<_WExUyPm6@6lLTQamz^YtsId9(%Gh~Z+1O#8y)(!!S#Fgc|%ayf+i%u|4 zoP?@mx-wRxVCf5?)q3b$O!)%vX(og{<`^UPl=EvkLfWnN#&67mytiVunD2ohlkYh@ zC(jeyB(7S`a|7g5^WyIK`&RR;Eb1gq@ucg+pw`8j)x7Tn%IO4RL8%=JMXJ3O<+|xe z71&ABC)dP~XZ~Z|W-W6m)j)LA+n2D+t{C6@W9nLX8)#Dt4`wHKsH`US6B@wv zlmo;Kt$y&^rhb(2BwP%!GFlw_Y576A?QJe)L$ROa%3?nOYP=7jWvJ7rbC~EcMy2jT z_}x{u9GO^~#l8xjk*$t@(h503CEoP(SBe(TV%PaQWH^w%rz*)3$iawrV^r)nD7NZ} zxk@b|9>!FiEiPQKMZ|9q1NVlh>Tq9e9(pKo8K)K9iaK9c;63R^A**RGawwxw1`8W6 zDv2}8kXEDVEkP_*3Suo&RSIg#@Zx@Rxdy4tIEtl#~)bHktgOddURAbCpvj_!8BzTeK8xTp)aN@o9GMMx|+VQVyfti=}IMiFKR`&nG!#n9=|y^XeGB)@-GL06kkdL@^3Q*^4}@m1S>00OcBEq1f^wq+wT*(GrWj zA>tnvO+uOY${vFC3alB?0tWWz>?E#I6a<+D1<5UilY8JGnIM=!)zde-KN^feRMuuI z1lLGQLJCswb^1NgD8NzsTh{TGk&_gxG9$97=i{%fJ);y6Io&`GR_BNe(_2wPzgZ}C zqH)*6Jk2$g3#kUWmSI;!^(xsp6>kE0*~%ufPG_Tb3?)P4qv|xu3>@x}tiWMyTO5=O z>oT4>n8k z)R>}16#bi+rhgaOe#573;c3xC$JuTBU1R;uw8F6f7L=FqfoNJ6Gt))ns-?~Z+Q5pm z3BQjhRvVQz{7Tzz>;VWaG~mNsH3CYG>iEV3C*s-cuRZZKmee_yJMY*zFE|g0; zod$|TQBT6l)Bft_n0veLU{whALcl3H#GP!U=EZH^a$9Q0tMkWZGmsZ4Z&x8>Q zt`l=#;ZwZFW{G3XSXVLhRcu#zO5FS^zc^>PlxIZ8E*%3lRB#m`D0NVjZosJa!))>D z20nI}?ONGP^RS=XX^0|NaGmTSUUhE*Ze;A{llQX|3COZ>mN2S$r`GzG*~5#8-^C=` z^RDZgnJcX??5G6^7`z)-5CQ241O|)5>S}%(-I-fojf(^DQ0hkhJMRy(#H|~6R}o5P zNn*xE-oyLjY_V=5@7;bk*;LYopk0t;Nt$fH4Gy4kUg(#>V)$#k3*JNg(`)=%?@zNu z@ulAM^u*wkWJAdNONk1ozl7i+;d!0+@-A2|=5}FObmif>uk+t~kIa^j`Qgg^LkK>9 zA>G=H)$bKlAEd<4YrfN0Aw$e}`pV?x&gz}M8X4e+9HEISqXCY0@BZ6->*DgwG2b71 zR94jiEE99rc-x4JwzEWW)>w~UoW7ZdbBh*H)mj;k$S=L~hIa)U7gFo35`Wpu({oqI zkWBX&%Ml~8SH?)SV$dz9MwLWBrjFIb0mryA!TBsNpHCr{s!n>B7<5PtL4{G^eQn4G14~45C}fibu9sSW=}p= zNAKvh`bbJ=OGsx|FA3<>IpXOLS@-Tuzg0zI6^;Msa_b$wK-wW^I&05O9^n0E5e0e}xg>6^U$8ID)yB*TbZ*v8p0AOB%rvbq!KTk81fd+ZNG`I)(Z|*3NquAFMLfr+sHDz?{Y+{)sgHEEtt96 z9*QWO6MZP6&p}5Hdvy-&(0cSB#1TjE;U!}5+x!r&x$dxqckZ-_uELIzs37ykX{&DH zjx9X5%`QjOS_O&Iw&D)fGI8xz9Gm-O3+%t;v=v9p`WA5eTAciTnPBe-(xO4^*sFSi z`1+!_qL%l~s+GX|(nN(i!jy&nq+mDS@>)LdcTdP&J#;g8nfyhIk~M<8915VmhMYw2t(ag*iU;t=qQpMCmAC6F^Hix4nkc}`h7uSN5%SWyu0}TL$2^`=UuW@N_iEJ zt~cF?aO)M@!fXbp{uGh*hU>)Jv~6lh>B*%lII2!rwIzGT#Hb)Qw%@6M2cX{6|5tG)Wbn`wxM{Iw;g&eC!yu%}&w?y?j ze5N65f)UnZ{9?AA1b(&yjdtL86rjql7eza9P5F!B#hv^X8VJL?_+;-ZbHwtGTAV9B z-o?|~R7xsGsn?|;Pq*gz;2mxLE_R4kiVNT6;{yeckbo}{kG#vzw17SD@@uS~Kzq&5 z6IRHGFN*Wt<3s-}nHcg(_R03dg8-6O>LGRA0njXXPTdU9nlSk+*}q^01og`zbbTmE zyL?^5yrLN3+v3~z_~7Q|g9fs}UlRS_=V!*C{`NladxjE38px1Rim>FS?s(K05%4^9 zUKxNsCpNy%)4Q4d4cbR0U1!B$reK-@&xx$ve0(QWju(4@)GxZdIoeOmP9xTQ$@}LV z*M;M0Vl%cWWM$(0-F(nUm4nB~w7P(=R|5PXlS5v7?=rD5oeR6dB}b`~Z5Eg8;p6c1 zz~Vi;T^pGl?OVfHWvYc7f5eV4p7x^nW8OUVT}_Wg#j79ka7&rYSWE3otP`hw%F|6` zr5m!!4O#7m+~kI=aYNR+A?qyU^3MJq!45GzT+rL!KiDw_DQs2RWu>=OX}244uN$)7 z4SCQFdB_cU*n!MbTyD@v*@VipMgKCsK-U)E?dPrA47OweH;9?BZWB{}_GXDO`*^Q( zDcY)$&0z+O_O2-0$J?8Yc0`w9Z^>hB$VNA0{xTOqC~!j-x*?0)ki`}<^#D&dc~PQ~ zF}xr(N4#j0Z1xXyuMY(!G%L7JC$v|v)D2nYhFsx>TOsQa?)%LQ7hCd9Wi>MU6)I$XQs5RhZp4G3!i9H(FSn#@+AnhH zlC)s+o+b}v14zZ#yjMJGhy!KgV}6;N4s$~mx*?0)ki~Au5;x>R3n}Z;*FmL3ofeN8 z7LOY4K-sESY87BZmboEUxFJ`%AiA2ZpcbEWR)AT+CoBuoo-hp&CL3`D;`Jh zPBx?J9=PBuKB&b>lt-eKy_@nV|B4Tc%|UkD9n{UF0n#d_P;pH^e>QH{RQ>vTS-i1H zSI_LN-Erbv`X#VB^@~=U)+`UkzgEUkV_>0<7DYV~)7NWsDXMSuHYtmCmrx%&Dn@fW zNx4ZuJl!5kq0Wd$of(hn=Rn!Su-2l?hOD!Yj!{dS-tG;KktRAQX=B_y>Va=?(ZYRx!`OD`-={CI9HkEGcv7E_QsQ+;Bh5n2u*3^Xr^tZN#$g#r z4`P^ELCkQTc#VBvXwVtikw+|~qn(n>#&%~uwNnqpO|NmnJ}hbWi4DE{eN*2viH#Z| z=xuG$h{R@-Q^zzpF&y2fIn__qx3P(Muj?|R9cdFKwb_#S%k@ZMLl#&_Tbma;kS3># zG*TJ~y)08FPE{OF^yj8JG{E;-ahO>ZN3#lh{cTKpq(owMQ=0Y&g=eX%FN_Ztj<(a3 zG~ITV;n(`4&1^-D>QXm*bKAddliMsaSFB$C*2(SJKUflB_K8x>B)im>xgl4$Ay-<+ z@3=qx1}(JOR#fao4+=#EW@Wq#Jr$2y6_0wFB+XHbb{V)8^GtjOYvNHA@u+917@L@u zTUE3nE8LK49Z0jwRcd5Rm)k|f$WgG3*`9jn6#$6cS1Ob(o1imBc8a3DJW z#Pb-%6?H%IzE-L)Pn^o1D>>ZN$p%Q2-M(FI6SR1J+|8W|&D*nxE-sc}eH-HGEmx{5GHIVSPSBKCM}rKH<}HVa3Pz01Y~rNyO6SM2c`S|d_fo9Bo}QvE|r zceK~ot2x7rKvd00H@Q}m(!UEpRA>0d4bqt&IQ4{5T$tE#jOUnrCI3;fYIFf=ypf&K z3@>OZ+|;v$@!_&BnQEd)1~;K+?GcMl8gYyg{gM+!G`mB{GIc$M&9$D5hH>h~Lz;E& z`pzM_sxb|!;df?~Wh_EepkPUY}$OERpUL~TjKaJ zjjw^DhL!Q*&KlbLuNsZ58b((j^+0U}#W@@?%w4w}NBnU)3GO zv^i@edFHB}E#3wlPrGe(Jp0g4XCWPY)^iypwHLSbr+3q2Z`5QfDRY|pRa9m}Gk>~X zd?5df6A>4KmJ%IF;MZ^pgnfjF5kC89^r3JN`r3&IeI)7n_)UbR(a6ei zj#vA1nWs2jSp(hv-;gk+mCZW+N+)#Jzz%Kw^>2uK_&3D;_BX`cb>g_TwS--6-Oe_C z?2Zq&OZHw%vTc@7y@hm$yVD&(4<;Xz7K6B$nndeQW+>e$Z=HX%Wl(F_f);AW$&n0iYedm?j3ah))O{U+t|GkV!6j}Sn~OaCgBtW z+aaF~I-$FK+FXT)t-2FKRJDu-jf^o;uya*a(>+^<*zf!eao_n3ao;_0T!-1-Kdzaq zK{C{IP>f^RK7Mv-I@Qpog9bJoG^pvIyrzRQd*;8^8wj=5c%PUT!{qcPXg zmUu7Su8tgGHO?@H7So$kTohc)VxL{Yx;qMUWO!E7L3+=NOIb1NIrg%8I5KoptlC*I zM;La;$1)^C>u22hXbV%8gf)TvR0p11;-&ItBKQH%F-^T=x*ORCoJKcf{$tvK?;v}V zE?qInHbNCx32ewh3+c$^4QDPCW>x-8M_7z@|4s+GcLm#^QDl{DBd6F6S>lFV=!PtH zLzcNASGXZpx*^NmkQHvowQk5tH)NF?vf2%~$$?Z-XVhq94D&xcW#-rF9Hf|;+16=f zOt!d)Q%Ule5keozWVYqFz$*^tCFk58` zG>P^WEObK_xgm?)kR@)&g>J}FH)NTGl*=%2dys4!A6HmWZB<(7hAej=!;(`*g+@xf zoRFMqu1sLlh1??0UN6RzAgV3f(MU8c1%bU{_fp8c67cV+O$L~WT1NjWg|Zv_tJG3c z>`p4V<1@}PFLS23uH4a}_Y_FlR5p6C((-JOFF#^wiRfCNWu!$>*0eT?vOKdW46TAD{Mq&$i zSf`1SF+Uz9;!z9YQ6=%Hq8L;JYjX2qa6m1JN0r5+9*ajk9*}GX5elf?@epqS21Ti;v~iiN^X@d@Oyu!6u3i z#MUU1VEh=L@~3!|wFnh0QXj0a<^N!8{t1RYabb%!EgCDkiFF5fa+P|~yJIZ%A{7$$ zvWol8@b^glSZ8I0+cfoBt!hV1TC@1cFa*?Vl9gyyH4k3ugfksaD z8}gtV@{j|mbd+&eBV$On?2M>nTC1y3lx5#VQI=s7MOju^6ty*hJkT`yUFn$g#!z8R zU!y6l30xF)G`?dU1Io_i23<{wH0ypuBV$UnHXlTbu>1s3l;w$vqAU+V6lGc9QPl2e z-5u_l7%D6eS~R8Q$Bm+m}Q(Lzxu#nIVz0*`_y0^=s zy<-#!;W^gw0PV+*+x)Ig zH%+y`F8=7Ydwm?h3WYMv#jd`8^z-+#wp`l1w6+sd(OlwGYV1jYSj$k{*57|Ridoj* zpNS3qa^vo7YC7r_A&1j2rh(_gG;oP#nVsVc-H@ej$TBzN3OD3RH)OdRvLcEc=+{Rs z;jX9Sj@a5HH?6AuowDAgR=ph_(U^KKjj8wAXd$-qUv9`MH)ORNa+4df#tm8PhOBc# z?s7x!c0=xUL)NfZ@^niK$b4cAc3qT-4a5As ztqCWzi!V4|93SStBXGoI?xf-VGcDlh;r{cp8YN$MyBy|DJm>x7G z9yK){^-w&j5GXZSb*#2m)~U)8NEBprHDQ@Ya3b`3~3 zM`Cgg?LSEfJ}X9y_os>Gqx>y9zDiN(`V-r64H7(wp6T&<@LZDEn8?yZ@baKvTs6v{ z?pZJH#K)A%1oTrRcvs9HC2*GjK6~ev44!e7b2#N_2)S7r;qh_MLn+`i^nEb zi+_$qc5B6gvHs2}RkB}EJ%X=@8icFe7dVlObNBQo6D7T>BH{Qw-HrpjM$tEj)N%gq z$Y(w`MCqRUm-u!*?p$qPc^K>CFP(_lmp6HaJP!}iN;FgL2<>U{?3t=M0Iw` zM~<*J6tdod+^(u}z(fWgohMW7cSNdJMeTDSA6GH=+K}>HO%~iZMrHb;Erurl!qKdDn`BL;k^!Ris@OlDPJy zqI#zT`KgNej?V5Q6=?_HiBk1Q-Y!?zIxCh+wOzxF3f^YIBwsAJQcVW$pHj#-9LVPsa~e5z zmg4Bkj<8aNe93|QTvfZ$f&7<3u5%ziP)vW(ft;&|c)@}E><$%mtpmG6MSb3ZELF(o zEF=lZ(+c^l1NoFfR@jjwQ;E3$Y5DK{X*r)LqMxxvF#FDvq7D%vD^(8Vwg@cvfkHm* zKu%MfT4f=-`4WRA3i*_UBvL?YxoBRuh8)8 zDuc%~yh*{2YWP(JFW2w}1(#{KTEWXSypiBYcFH3fQKcd*)$l6{F4gc71uxO?F-72F z4gaX%MH;SC@fT`%hk}KMw*ba9!6^$gqEoQ!_O)Lc53)R75;4K=SrQo+UJX67MX}D0qH5#6w;5U8A z5oH`tSBN)sgy$3in>GBRf;VaS3kAQf;V%{Znufnp@J0&zzT?t20p0p6EfG0Hko`N6O@cRm0q2b*MeoVvr6#S@$_bYh0 zh7TyXOvCjA_sC9JW+K##Y=a{65erFI`@y1032qTTU+-@h*`q|YRA*DJ5-hPLz`RRE zTC5`-S1MtVhJR3r7CI9BTd8W{K)$W0UZ9a;@eTfFIY(5~`5H^p2xa%ZA~xLM&l>Zp zDqvoGgdbGWhwUN31B%|c4&*G+_C|kJ&POV%IrcDB)>d&bBBXCq5oXyV1ow&j8~te$ ze^I5)bcFq?kTV>}dPTx?6B*pE;6g{F*Hy}g>_|n+YvLEsGWfv%v-cffQ5{>r+zZ^Y zv_()sP<9a&1O+tK*lz66L`{Eb>Pt5!(f3SV-b*52kFlTvN37VfA=t2sCH5M7)Cl%2 z*t`FknR|Ed!tRPf^6US{eBtgXQ_q<*GiMshOaGz_xs1|}P)vBaB;F8cq{fH&8m2&} zkAzCxROmrIlVCXcOoj~dSr6Os)9E;i;UQi)NUi2vCK|kxkinS@zOTV)tOWNoxG(Ft z?rLy9X!NlV79&d{#c?y9WMOaFAa4(cgpUQkxH&AM8#ct*40+uKd56V)%?5do zA+PF?>YU&fqZC*uWD1$VBF?uU;|TUBtBflaEJ6Okke6+cw;A%14e|~{UbI2pWylLQ z$a@TV-ioY=DgDCg`kWPu$QcZI)&`jlIiCpr@6BYi(>An040*~1IhY|&+8`gWnmM6I z60aIwhnxt}p9%qW2C!gxML7mCN^Vig&+y}?*usV|hChlj%z{j0s5_f694X2$hfxk& zD0qhB}tGK^x>1==7Q3AGw*)_S?|TGUPrRUGvwAd z6>Hqe>SBuqPiOFE4IakeO&UC!!5cMrB7-+*a32Q$s=)&oyk3L%vsN6pPD31Eh_xDg zm8sPl4ZgV2bh2uPzYlusXVVMRmV;Nei!OI!E zM1v17{%j3C$l%2qyobSyGc!mZaW$<(j-pevH zO@sF_c&Y|p7|tfyQ#8am7QtiQGa#xO>M7cw|igO@URv<5F>Flg{%2B&CnHiMHjcoBn>H282FLyXc8zcYBG z2G3*7W`qV$W%NW1KEmMP7MSr5)8K6k9;(4pSdTSCgX5+##4j3R1q(1(gAXzIXAR!W z;6WOk&kV^x4K85t01ckb;_t7)Q(5?aDja8=#t?li3@kt&4Zh0g2^xHj!SNbAgYiG2 z&j#R(@j9bF)ZiNoexSjV8GN6?ILV&E5cf2OGzQ<*;7JU=qruA=d|QL}vH|QZ4c^D# zn;QIpiRgv~$FmGyr!bjh?`BnYO=H;261b|t>ls|2!RHx&z6M`l@D&Z7#WHYNgI6*5 zk_OLa@I?aCN%m@nxS%m4upFM(;2|sn=QMaIgU@R4Lsr5w8hnz`Piycg2A|U4J}mx| z2(wA{X~u9uV>rX$;~M;kC6K4VgBd+ngMVT0F%2HX;6F6@X9geD-~|jm!fBK2IjjZ_ zYYaII{#}FTGWd`NuVL^(4c^b-0~&mQ!TU9M7%TBU4IaVZy_`15-otXVM`PH);NLWO z9*c0d2CrlAE)C9P@J3i#coc)<)@z6fOpDiPa26}US`Ge{!D}>lK7(^Kcmso1Yw&oM z!BrZZ#^9A2e2``!&U1x^*u-+QT!R;~2$yN_CI&Cn;6)5xqQRRPoUOr=Sb~c+csz@L zkp@p7F!uioEeIB1fd)@z@O%xP$lxpuUd$5A)Zi@)o~Oat49?Kttqh*4!5gtRCH?;# z4UxcdI9r4JGI*8-uVwH|4L--3Wx57mVekwM-om=;=^A{V(Whx}{wUV}Pt_2Y8N(C} zzQEwg8hnYtlQj4ugVQv4GfQxy25(~U1P$KG;PD#VKautS<21xTR>H9wypF+RH24Nf zFja%^F?h5F?_ddl2H#}#6b-)5;A9QHtM>m%8sZjX7^T5?7(7ygZ!>s=25)BxCTj3D z1`pTZX-wwBG<1OhVBr5$Z~+7VtAa}y_`M2_Vp07^1xGUQI~7c2;I}F`nt{EvY))Zu z{aYm;V&K12@CXBYG7!CSIHSMHV(6jAU1PX!^tkH`_q7^TCe!GzR2DoofN`B=$nN@Z zml*C#J#Gn$tD7G88^e8}$K^2G=X%^BhWkv9`+Wp!f1m1+@r>~kJuZRaKGx&LGu%gd z+)9S~ryiHaa9#DdUm328M+fHTqP4JrAv^0CmonUkdfXa@`#_I-#BlG!r2nE9>ODQF zKNH@&dRz*_{X>r%!*K8Dam!h>Z|iaE815}SE`f!8li~2t6p`vkhI~WMIFR99*W*Sr z+-rK=IEL$_$1P(Cchuw7GF%5eE?#7TUxiMjGG5Ws1~5{4Jq{SIogO!q;a=9`#<8^8 z>Twepu8kgdk>Of1oLU(V8M2k0@e;$e)Z_ZHgj?uw{TQyf9=C#peMyg7&v1$!*XL~( zxS1X~is72-af2AHi5{2AaENPm%D$*49cJk_gskrczs3#pq^T@aeLZdh z!`0K{W-we`Sc9?0)zOoZ8R-Q*ZX(0g*5lSPTrE9rJHy55aT^&fMvvRUaM3D`>G4j6 ztf?`gmyUUY$3XNCLck|uS+S#v(C;!rWD&xBMyOtdaE}opiV)7g989Xh14ge_ggzYp zAoP_it5u57`+@OCA)t1D7QS*3`Y;wSv>G&66m?LrR-9yfWO;?GX`f-B=D^s`GNp}Q4nRhnP@CHX$K!-Be$!A$ z8!NmCAH)kC`AtdCGuOK+dAukp&&w3BnLY@OZ%(ntfbd0IOuz-VlKLbFeF9dKWN^!? zcGQ*a5<~z8QJG zO$z1l-6dS&Gv1jBD+k~)nkDf20O57+G}Ig@RKRx^+YS^OV|`xU?G?erL)Ji{JvS7L z^MqiiFi7y=`z8Z7!^d?k&C&486;XkT)3X=nDA#BJ}dVO(t^Wt~j!Qihn$fcamW2 zFT%f&!Fz}h&0T^fLxlLatAr1??^4|iHC`j2LJ(9Z@#wS_gD(j4O0*6k5QL;dFfG*~ zsCF832&$i6RzyWls-m(LLmp9MqP(62?+z7W)uNzqNm1|*ElSUAZho+RhkJnK5wx>I zg-ZO5B#?#)&G@TH@bWO+DxDAC4-;bWGjo^_PN;i^3ALKvq?O}tcEiN*0UrhT7^86U z2X0B#D#V>^L*{TVv>SONyeFy_3x&0VzYCzva3Pc=(|x!Qz~4-Q0mFr=<+Q+9OkFTo zJ6xzqc&-i?I*94ph`P2uo z;%cfm0^{4m1YQl>5`|zA#rZ_s6@3m&BZSrbwIs+JA($)LQvf1r+$62=!1Wi(L7kCU zgptYYMZoxxf{4v#&`6<`)37d(@DC~0%o&{}z`e*pRzKXcf3%zE0mEC1o-&RWi8>kq zdX5q*^LLXVWt0%=b`eDZmj`>k1O7?arsoh%SHhLORO1J-R`FU&BSRnzo9F4lCnVcG z;5G`3$-;-+N%$sNs2y^W$dxD%d1Rhwk@{LHg^m4SO|tNk9KVqyAsgpqd!`7JIqm|? z1Kgp00XBnBPaHz1m`QQ85G{^VfySeS^70%SPBI>V4@RTiTBy?EM+?m=uBX6g(lYU2 zLJq!ahgQQ#{`ebH;pk|T$6k9Z5@GQ~mY`Ijp3hlY_!#9RWgQ4zQ-$`%WELqt8Ef`d z{EeqzWvb9X%-l}0IUgRR3W}*XkGGWzAy)vPiNto)%{YkK5EX;R9=%80 z#t8BJ`6N(sc|V9h;qDDP;sihJUpQ;Yy}wBxH^g+FA4~Y`pN3m_D0iI}y^yqotaa{rh;~Am=}VWX2Os1wQqsjHVo8 zVZ%i1pk~3{i9!c7(=Vq9V-Px(CfpR4P>v)xJ_$*)pw?vJYmZF~N7Mx}bG=^Uha|IZ zY(TQpZfpQ_o+9kvk&C|6xBN@d8#1yz!_jzWO%P);00V)pn7){GL%!p>ju z71+pWf>-cyqHlaNlN;$Gh^=tP;^SN4SOxRpjcLMSZhp4Mbm1%~ji(i!>;|3Q6>CGy zbRjw}gT#r$4)syHapdJx1o1UjB7S^{PGjJdA)5#$NQaq0F%@)}H53!5!~9M$o;u8F zit(eEIF{HQ9g1OwY$l0$>w=9bf=Qb@#XurUO3jmW`y<&p)ZXCA#S!%mMehd*+K(uAncrtBewfVaAUUc z0r|c$N9fRzMSv{`^-q~I6Z30SALqu$GYRep#U(Lws^V7I!EIwWxHd;<$uHRk4d)6~ zDvu+D!SgsuF0F}rXib}TQ+82cG_^x3pwC=doGo*O5bqSiZzhL`&_Qq!Zp{@wtbUW> zXm5`MJc8vCiM!IzkdkA0tuJCHLR^LrVpiiIMuk&OQoHEJWMZa|DaL>@(<=-zPV?Sy zY#?qDqNA;9+Ca-2?@r;AbdouIdO8E%ohP*Ec#bB9{U4DZ8o@CnPiPZyM2pX7N{Wkz zQ5!{`AgqW`AA!D2IH~BBC8XHIh#E)1)p^1{yaw$gi5%QTDt!gKlPSEWqRy(Q>`bAi zZ{lte3{$>Mu^IXohtp{c>Wjmp34l*3(-()8EI|?TDP|7*oF%jk&ml#6(ZvN{RmW;{ zY3PC@A|-K$`lvQOmpzrnKL_q+361!i?NEQd5Zp`)WfIMzS4)y{&XenlH2w8F?(6m@l+fb2S(0E)d#~bmA8XW|1X67t$99jX$&`>ZbJWW|Eb0 zj~+b|yPJe=bcAD}O1dn$EB*?rHZ4mG(z5iUl@84p3hhLd8Il(YuW}3EGDhiKu{^65Rbu#kE(2Yy2L9 z6<=~Oo+35DwADSrHJ5Tr$W3VwmMwh5?>YcKXA2Ge8LJynY**yqN$BhY**N?0O*@G3 zDO1Q_lWUMN;~+F&D)i#!!;+;!Tg(c-OlXJDtIKdcu^1*V6Pn;BZ<)}=Go308uLO59 zE`nE<3t#XHcV{nIE{x>3WzcS=(D|cfv{~UO0(0qaWROgu02MM&C|HHCH6f=-h4ATc zgu+zFi$dWltFb2rh|a;z7a%T2Xd6J2MKe!^V)CBjky5NWqOsuxX7D?6Z>O7fp$YoWeA&%)Yh;XHOBCM@S7}o5Y!`l12dI zOj7kY3!&|Q9HV19rVov`TPM^A+(H;g?}G=&df_L|f6g(LIf?vWW@gkc^D4-{QVYQuH^75mg{ItIXuLuA zgxi-rWrMJt^I=rpxQSYaZljb)e;AAl)Z7M`xCuv;TVUxXtfh@0Zx%l0PG^6;S@7hz zZScbuAz$830)=`TcR;VL!jIfeDA+251@EE>x`*>ICj8UpOY#>FLx%G$u&0ULCXDfC z;XG%A8heHszCcg zVcZVP+f`V+LwF6j0qvYh%&=wXUK zPO4bzi6k;BkZJQvq=bX;?H*xZy+J4RT&~2>k>Mfcpj)_$OI;UFlPkUzqvVn>N;zdT zWj~q>=Ih>m&}uK9T17X;UOeA>07mQ;4z@l_Ynx5UXkoBmME3=wp5jHyOVBvTX8}w+ z7FbU9A5Ia{)SO=4Cp4`}!jMij4L}`H*nq;B584p3)K_Q4c1S<}r zxDUhc2ZdN)mKz_F7iILur#pfV;WZqGq0S-U3#^QZhlE7#PL*xnJb)QXy5oeG2G{6xUdO}c;w)2GW zu7wtV5_xccblymup0+=UW3uD$-;=^UY?$Ak68iF~7vSzGp$!`5=BI^*+zD87T8Mxd zr?Jt{-!I`D$?XhMPD0Z&!mIp%^Dz7j3gRTpJ|nc{bI)mDnX}m8oP$>F zb;G|WUAh@h!h-WcBu04bJi4&CXcR>gVNF?PodwHU>#x}?+NJU=w`hrlU z(cZJRiTe@nhm2#sFr0O=CLone zeiAU=VEE&b;ETWWFVQqAU8bMRe4#9Ky^M-}5-=~p9$wgQD3N9_Wppk~x-0|*GE?oQ zT*u1VKoSl0A<51-4f`$&tw{DNUcv0$Jq4|<(CqcPBDD73OgPEpE}rvpRiey-vMv{P zUJ+`0(~M&T5s3TkG#D`hEbX%JVm{5s8~HSAZ3+almuE@yQdIpXc2z4s0R8iDdg*Ax( zTwlR#nJ`;_d@IiZe@*zDpK}(vUlS@c%sOwYD;O*43FAFbh(_b7#Ax@b{jlYUr?rmW^k6-G?*mMV5$td{! zjxd0~kqrO5E7T(26#NF#~D+IUKsNR%{6D71nNFCP) z1JR2ZOgs@Lrz}62gKdMu^WOOe(*kr68yc&Z12ICaqa{e7H| zP3QxY8h8f@NDL-C4Lh5q@T)Hn*3hqZ73Uuhf*Klzoy{fYE64T@isP;gp z`qE9Bu38pykDKkSoD2j@w@gNrre}E&TV=(W5@Hw{z0v@7cA_JN}6e|1c zV(3fRWn}*j8T`*rwZuJyQn2D7^P!-~3n?ffc=sWC?Uz%KXPNQBO68S_(DV^mZb^nN zj|6kwM5a`D49Mh4bc<6)oMK9a3s|g*h=U#js+l0Vne(m|0>;ymkpUYQZ#7zQ%b61}znG^i@D;>bTr%LTGj-8>^n)Na;#aJL!~i#Q<+&4)iF9X2R*-0kekuH!plBl1(jO9XhE?)JpTs?*FF7J9y{?vlWWcr zi1K}00{_t`P&A7vWgZv7xB3X|<*?%oXE|)*_qYW9MXQ*I>zkWYqD}lQ)&Gr!*725S zM^z?Y!LG6vfp(_=3TR7Nu@ioR%hAu*?305Z67#S-o*l_I7r$yOpMY}5Q&X9b^}t7v zP*LoTacvI}|An7sf#SbN;OP6FJ=MUSHI~#0VlQOz4idj3EZjp+zjEV=rhDSPDx7Fq z?Du$>7sR5O@X)g-;q`sw83t(;#aGlg-`3*%p(0K8GW&F`B))-i5B-o$O{t(Bkph*C3UYtKM&YvSXByz zR1=ekX2cl0UPo3rTzmsRAL56qp9jW08McRGq?2i+F<_1m{kSQ>MTmj;3BnIQB?Ynw z=M?CGpg4tcMp8~fdqikcVLYKtrL=Gs%T(BH#Z_heQ_%=}QvQ(Y7XHc>+D<~7244}{ zG#Zx)e8RcJg^sgOI%1SKa(z5bir2t}I^w_m))Ee+ zr}4OgjVr+2jO(ChUGa5pHFWxqR349FuWBq-h2j5^s#f_`<3%?FjnO0+H>fy_Um3KU zT$cN4J+Zv+#vRT&D0$uw76R0fhy zf-~W5bp!=nzLz?dX|$kFiK!A#3^D$Za0iqP{&t8o+7@DRh;#MRKBvVyvS)O zFV;1d*IL*X5dEX%ZRQr0#TO56M2ijR@(Z~ zqev{J*Gn5Fn7!(9`yne{^7Glp1f&-B0Q}fge3jHB(ohACH5EITPzCDgRe((Uaxq^v z!Y4T}i!28wjbk?$6*0K%Z<_v~_;5jnN@NcxiWu>vdZCvz(F^GOlGs}AL)vhtgtsWp zdkL+=-dJqt+PA5EH*CVF`JllH1nKs4y<_}yUMxjlfgdo*e8>Hve;)n`z&Ce zh3vD4eHOD%Hv24LpQXTkCiM>rrgFEc5vx-a5L@T zX4%2brZ}^$|6)#2Mi}v#=-&wE`9-rd&kioLC=T*I6B|KJw&;PYwaOQwpT{DN$+#Fg ze<6m8Q;2f_i#QAcE*-MJ5MLChs<=t%VtAQ!GMQ!WfoVEC^1j~mF0Z>-7Po1} zEETIEX?r&@vfKy35-YiD>Z6SG5wvxXV6KLDyJN+O=ru;z7L=gh9jYW`=aN8cc zZ=4tjy?&$-WyOhs9)n2tj|(wmCPaz(&WNx5wqoDA}8L?wO$05ZV&Jq=GI;GxnL>+Nij1n9XsZ{ScrQUT) zz2}sA-zoKhQ|d#f)JKk}1p`ILQcdWKrT_v|O1r!bnnNEn}2xsw% zBb`!5Ii)5!r6xO~#+*aX^hRhlN(>NFbWFjza%rtbP(a6FQ)#=;iM3fYmDJwAegvtH zk03xCqhqok%~&0WO+Kh-$2p=>8$aF|6)Gh=5$!k5h&fJ(;v{E@ij$pEr#PifbxNJ) zlserhb%s-Fx>M>*r_@RjJOJ{? zSd_$mELp{fMVzl=vLDR?9fzaLhzoU0_M=&(<8TaoYY9$SNB&x-fu;g68a-t{ARX#Yq7xS@ip+nkP$c+I z)-!NZ#mKNNEFGF9^z*o(1J0H1)ETJuZ>~6fp`2Tb%L)0DMWK?7N5g)U&~!>M8HW{< zF>GfsGZ|Z){Dtil)pa;&8*H8?>9G(eHVp=!?Uxi@s8O z=OVM_dv7tap^G@+wSC11V2yr%F}R`WO);v*fx?^udMZ$h@w6}5$c9tz!BmS8jauxL zjt=L8g@Z7M^Q-C9;rtD+RrvwS(IL%E!1`v5|c?vCn4q*}^_s*=HO3Y-gVx?6Z@7cCpWH_W6x{aCM7By_bHn zo6W%$kT~PK(P%};vJTC^G1CSlILVl02RGjiZh;-#LOZxcR$Q>9&K6sd8V-+#k)@X< zMJdLmc5ut=;FjCLt+0bzX$QB8;^5zl#X59Z#I&Xm6M4dCt%ftM8x38)5UYv5t6HO9 zBsr|pB>f`E5glGzBsr?$Y*#VpBFP_&q_@$yebQ!;-vJJo}3zk#K4$?Eq}k zpsOq=Xapx87s1hG4kCbmEO$iN=ZNBWfhKzKafxnU;VA01D;-gObwu&IMiag6BvHDw za)U6Sx5L(R`UFcWH(3OQrDn&me@jiO=+cTEM{>dHVmgu?$ND%|{+&|D`Qy^K`xm5f z?=MK>{$G&BgTEk+hkrpDkN$!*;``BN`{b>TF0>?&&`KZj*J4I(4FFkafnPRLvtx%M zZgE8EYmY)#R30&k{e_Ajw$cdg6OTG0Hr?hpq~8cy(2+I;wV#ITcE{1cC(ei)oe?8; zIEnTbXT(bmh;+u)VW;TMJMvMBX{5Xksgs;iCp)E1aY~))lse5Rb-GjP45!p|r_`BF zsk59?XFH;Dd#nx@okL!AxHt+$Ww&FGbt+vrD1_{FLhRv$C}ufJRGjaWy1*%Qp;PK2 zr_{wxso74cOPo@dI;AdiN?q=V>U+?MSXb&om1GrWl{Frxt1yK|Hczk$v-(d@A?Hs| zVa=bO!rDJQg>_Gt0`=Cdw}!Q|3iGQ|>ISFOjgF{Yk6E=}=f`74ZL_0L)Tq_Wwc4%1 zK_Si=ahC(4-Z{Npm$rS+=MEi*je}C>oECTLnCwThOUL0bn%z1k`_cTSPbgby`G=aG1=Fw(>e|t&C=`n86A`TXwK?597c0a$7Da6^EwVk(ZK5S z78S7{%f({EB3{xl*^lP3j>A!A#49=``_bgJ6vVn>wnq#h6#@rz|w?7KVsP86 zcl=U}0M_V-6ocC)`k}=LV2yrQF}U^7Lx&rpQ0%p!#NxzG7i&fo=6w8O&B($*iZ0fS zVl3)n4ZL|vtRbGI7Z6N+&rarWwV+YA-1eFWih3q;aKl@QNnRzz+El>ft24QSq}FBt9QBcE6^Y_W>M)kp;hx9U z;g(XY!|uHFZ?(w#s0P(7p3F%TaP8F%@0twmhWDWDhg~mwmUR{IcqJ-UJ$G`SgsNQ2 zT&2iHtBICtS3kNaE=rmW2CoWJGHo!t!Yerp17o5~=5So8mv6hz{F`C;%Eu_T-YgN-rrQmwX!xkxRTP zmm_{sRoEg)AKT>a$%S)R70%Je31??13TJ`AqWH&(YdU*)XpOy|JGl^sYPhDFES4u} z?zOl|sFHcC)W;pF5RN2@_n z-LA(^Et$P-1QF$>mvEHSwTe^;AJizQE%`yNNs{pDSN!eIUACh5E2AN+u~ZY%f+b(P z7P6o*9!)<7H3Fo1;^-@6G_n;YwU#O%E}?-GE-sR**gsH>oMahDf2}K?-bxNfji&8fRHL zbc8058%W7@^mvr~92sMgAz_$V#_k(04MZH|RlvJomq9|9meC3jqe$N3=zLOwKJZl# zO*podWEKZeToNRhq&7IzqjgkZtq{Chf!5JgD~i818hQj{3XiRx0JVDb1Iy@84;)zf zzC{O?HuV+XT&e=wD@w1}tF!>M(kxNAlQAlZs%r}x71m;VXi`C{{b$!=fLe=|oZx7= zX{aaWB&!h{Ef=X)RrPLI>kw~~pw)WQisElQo$C38K85PlsQiCP^|ppNSG_yd3c;&6 zXdT_PqWF7HuX?dAMD_NRhU$@_J&Ef7zUswN)!XwJ)eCaN3GM?+HM$dUFRR>#R;)W> zAB~2uI!aL~4XD{ut>2hvi}l-Q*ZTF0L@T-ItgmTCP8X(idxA-#7fdSO@OQ_ zQUIyW1FSmxSP*?-cYW-2EH=_nC7O!ZNF|DhrK4&!6|t52 zc@v3}D()em6+I(X`b@Q%e_BPG^cBr!a;%bRAw4li)OO-b&c5xWmEGS`x4*N>9$-NX zgzg=s8c(COhfAuphv8Y$T1#{{5NP3(5^mEnF9 zG_BK}nARChZF>4zu(O3_jC8EThIQAgXjoSiF|3x6W=q9EcYmDOP^_R4tV(iO1&w6T zDEKB=iiKm1^`me{wN!MNS&OTQ9dsU3!sE846Nj1qvR7k8N0?+vPhz2Zcbr(uIMq=8 zX%**R#8B4an!tz%sS4hIU$jlrfn|^z)?zZNw-c-uQy2tKs%95jKdqX%xBb7VW>a2% zteT~=Dmlq2Xbgk!mfVu4S#7Fjr%I@1#QWiam%RUlYF2a(Q=4mobC^@iqB&7DyhwaJ z>n-rtX;zsNEQpDuAJ*BmH61N>?Tp^81?vYr)`3?zbE!BONA|!YYegp0!TPa|7Lz+p zgsF2z-!*5xCViwf-!mn)dwpL=ySK84-E%OYtZ!4UqRsdMGlp2BlPpz<14rVUm~25z zAzgDcq;}K~%^g*+olzyLTy<1=p6TobThoZ6%759bWIF>&ooC1c9|fSgdw~roe|p<8 za{tpR+RlKIRkAvuJkJyveO3AarScD{nz)2|U#`M8|B%{RfYo}y=UpA8^Sja)IH}qE zu2fe%t2%Ck_oPs-ndG)WTn!`FxNL_y?@6(pZ!%s{xn9R-3*iO!ED@h>QVi_qA_;KsJ;_HL#GFFl`#!3~cKD{7 z6bMb;mm1>w#DCvMgLn=myf4+n&-VAFx|OC8hhV{2;x8hvv!cIS7`>xON}P{gSX9x z^KY0WB~6zz`nX9HE{Eb9C-w2;7Qu(rbB!?>Fag)j(gbb}Ozy0c*0Ihu(jt#ccz2Ov zYdDe?Z=6G9V=FC4`%)@fQ6*6EU_6YCiU$M1gf3FcU{xr39nct3p+`4#^|kAcy}5Oz z)A*TG-Dbh`aSNS~x?2}Imw#px7p|ICkG%Z^i>BXvZjCGQBeZGT;Vb-DG`+(YQb-|9 z&-+NK^8}ji_Vk)Q?PIB|9VLI4%Y>Lubea7A6Prx(cn|;7Poz3d1e{q&z?exUV3nW> zILk)BnMA-b@cE}wStnA?w3V{DURWAJwk|!ESjOTPy6Uqd;~&0wA{p~fE8~`S#k&x; zbkpUphi|ST592}9S3|P)sJyx1F=i9_E_Wv8`5b>SdH=DpczzY4tlBi-$=G{ z<+qQ9V?ELGMfSj)ErG9k=yFD+Th`i_^2Vi1DuM?j^pIk^I_Oe);}WZobr~c`(sM}G zUe&^?id{`WwaQDNcTcHhkYlsG1peqLHPH+!C7nXe7-lT^2O zH;>1_kG-XUzxMj^P~COv=mD{J{WvU)lN9@RYk#F)O75jzN=|S4K7daoO7wE~|M#yX zU)fh`Q?zQb^OksRF{pS0K3`dNxU{Y5;PvF@a#!PSYFN;ndXJF}0Q>rMYTq_-Z$eOQ12k ztEu7E2273NI5jl}35Zow8&xPZM%V(GqokRJKC~?OGG{6jZ1NharY5PWxzp6#)YRN* zY78f-sWHgiL}^&I=;T7FF#@KRh)Z9cw|EUu%jb&a>yjdUsHP~YDY9n=UDXubXo?Ic zswt`u6XGO_mG41{^p#C*GJ=|78c08=DU#<$!$wPc)a&S3)w|<$^fYS`sTM|(wYjO% zJR3$gjd9o*=?Asicv5YXc6#--;dIqFH;t7%<1%=B`?E5gB`Psrh6?J0QNSsndiBb2 zB3Ql|-;C~D2o=eDq_~G6%8WBYvWGz=P&jU<>QAPRj4dG4K)A@$%{b{a$;PWwNmq}k z2v=i0a?c8TkCTt{&|(e_MZQ)T3g_GS7DP*YJy6Sp!l4R&j}Hlc{h1Q??_Qy9Mw%xz z7dYQ0k$Gb5Zc1FYP~7f{@#C8S623rAcMK!m^*aUM$;MGp+aP>v4_^ROPSWkF)z`88 zznB(|o7{~B)_mgDRxO|8Vec5&xu2Wh#UAJNsK#+|=zuF2D@FKTCXalD;=~!Z`z+y% zcc#L)&$vqbnN(Qu85hH!O&xWmdqkCVx^+X{ZXANa`DVsTx{zmS$VQ)Yuk+_pVZ`TL zMQA);8i}u1?;4MrJuX1t1gVa&cpdr$F2WlVr0PMJXp6%)4RQ8Q?p%@ZrQ3YU&<9c{ zNDV7)*$|J003Ty)OJ2R>o0;%uJFH>3hRe1MkUv2xhr4OSiBhwgOGxIFn#x(4$$@H} zxGS0i0o@1q4!3e}7D;|Ad^=GJsc@2ry8=G&UgXCp@8glUsTmzORSZTYmu9J8EadkS zszFSe^s>nY|g&KXhKo~w*s_HkA z&idVy7^0&BTEiI=;HU4nFt|8b`h~xl3jduVH6!2UQ=|s`Eqv@_5EmVKo7PkvC9{A` z+$~vUZ3SOzLB7^gr6xrBX@j_6lH{sET>Y{m=>Gah)Y)mh5i#b$p+`f&AF&WdOaC~?Az%*$CUdTUT zy40AzlL|+tV}@^}Lck2EtH5@-L);80J!}z*Pl-|T$ydv}l1Q;8C7#M@Ahb(IFGUXY zOvmN@weWK~4yO;prgSNuzn2Ox&y?B=R7(9}+)QaWe|!vdF5_Msy3CT^*0giwEGbge zPV`z)50)FYM|X>My3Uqfs+dc6L&?}o&F-kV0j;sc{mGh6!5 zo9tA>cX!gs7hm=Zm?M3F8T@XJRNeT1XcBtv=sQ0yc$-t^9H~72Fcmh>kzT__6Fk@2 zXyV$)TB9MJJTmbh&wxsnY>k^MHEhHh4LZxTMuR^|qmhUO-q+NNm;`lg>lrtWI_4A}bTpGNRDVdDBh^{CPT$Ds=z7pZ5OsO-z zfOs@hI)wZ3v$IeihC^aa^gNcp7Cn`}( z_+|=Tt2Brnk08(bVm_DX&p+%X?`-42gv<)egj384`ZQSyNcL!V zhBZvAa;Q+l1*B}rSdw~4vZPiEtp*tgMTfUlN5u0F%u`3N*%Zacww0o>OGT~v^vUd@-;4pkC&lg zOo0B&q=GU7iKd~5$pRDF6&_!U8L<_WWeRjzBbA4x%cZqtrxG4wJ=~RpSQ>YtwbLMR zh4dn>I_GVa0&s=p@-}P`=}>VK20FSHt)d0>;Y#d6uR!nZ())h1sDY=^7}JOWs;iHROe1);+#jB7pg*de_dd7YRx^$boM%m%7p3;d`Wi26h@jVK0k zSK&_4VQ_Di^xhMNOIS_Ajaw~M458`GA^A~K`r}_RQX-?AgOrc~c{`<0hfL{Kra*Xc zmsFOU2c33F!GenKmLoN1zZb)T94R5nDhX`$R1!30eA|gtJ+TGKCh`&$KH-DHIi#1% zCMuV3B9~X!>g94{trS{FE-ETu9qt`2fO_ksP8PXfGLleh^RVUtZ1 z>bgmKt&G{=ZWq{cay;?=k}Wm$@v}361KrN z@T0cMjttY@ifLn!Gp^qfF%zX52DzK1*KJzrW8#7jxBM9`)n}_@L{XWxN}c~I+nE2i zZRE0w*hbdo)v4fc4(F&u*)Pz3f^^50pV$d&SknD!zpj)KgVlbMuJr=Ex?5_cQw|)+v5s@nIofgN?3PaJZSyW_n=zZyAn$kSeQc>s z4r7M5y3keV3n7}M1pPgQfAbrcuyufdvAg)*M6%Xt1J>EB#74F5x_A!_z$ z{C??8EX?K0Qe|~a;A-+w&61loCa8Hpdeg>KbYa!?KCLaR&bqvf@qmm2xI=Lm*E2yZP3brf3yTSp_-Y#l2ATI%wriyFMur=?HS0hj?@ zz_W=oa6GM>fVcBf2VOX6jj`gnSI}9o`+(H?i7X+pXlMz~pOM~pqHx55Hnv#8!UJex z0QCcCi_tS6K{I-5&f3nFY?w6jiG%Dwz%iI4dl7Fc_W1K5>YVhE6Mg)Drn}Am+xq>v z)~^f>GwpV_n&tbt07o~eFrYx1frAk47Q473_BLMJaaQjDBR&S4=8##fI?W+7Tf~rA zEsobF-JpBW(r)8+*HqYbLu$aHBYSE}FSdGoTIoiIJ3&e_cX;OsMpt+zp!1p=e#>di zl}=<@#g$fUtlml(n?K~-LEml;5f!a;z!0mZs_~j454?WrYaw< zJ^b%3TJ$ZDa#w1NuKYjnqpdJR-m|QKSyveFod}C7zsEgv|8IdGeci+H<>-s|q{`ey zFy5Dv_*}YRF-TT+(e;jtsc^oGyS6T1jf_qeC`TWN_H%E6!Ph*%>>P$fKXBW0QZEW2zjaHy34)-W3xw zWBkUUY~wIlY{EqFPNYFF;!}?RXwAv>xv>z>$qFt{tmWhm0fj?bMja8nZ0`I(=a!7Z zb&Alsd^mo_-KR5=ForQ%F~Led>YO5%F)3tW11GcUMfp`Px+r2s;gIDBi1fpfCPOn>4k@%H*tt>33zGvYSq3kXLRPKN zP$#kZTR8s2vqn!7DUPIi2FqqOn=WcLCkB^BHn~#GrcbC`4qi0;U8SWb`GN{^Al&nm zo7rk*uK+#0pPQ_n@p&Gy+Ow)$0Y313ZnCR=Cz)Jnq}Wy?c1# zH`J9n7n)X+n+CG*t{%$zJ7kJ|)J3^Ye&Du7s3tE(XH2JXxnm`^qmUyz3UNao9_w-= zyR*n{58M!&1FOU33h4RyJzNgPO}n?kDPHqjlG}&Tb4hLT-ozY^sd=HtBvNvzv9%0e41|{1nao>FPKqr_O?6 zCKMAXS17M~J$Sko5>q4f=!zb$u90%}uIzSZH9_hCAp1~o?v6F9^wS>+eoUdT_+;fI zmt;>_hf!d7T#X+F7b9iUJ5P{lHKJc9<`6k6+i;tb78hHaXG($6axo5ukE7(4xV$|p zO74l?-{2bZYpwK>cpqcHdVdE$st@@MhUsXHRMJZWkC(O z-kbU;i&qcB&RVli;v`j}?u_EK)wG{#%57})<}ta2{FJi zf&4PLZ7~{YJHays)pZ9%#K`{)+C|i~r5CCg-2%Itwj4LSCd~L7Txlqu5ooaz;mC_} zWjD@vV=}}Y_pSzcvGQ;{{NJ;dOs=r(UrTOaX2lC;&kFaWY++YW`t|`#1WcE(O02LZ8=4tzYAbZZP{GYhMnx+;K=2a7#rP=jVZig zR(CGZB#bY}Em-&rc=rV??K$}Ng~F-gj!~JW8b5<%<|-_IK^`m6-v#h~9r-2p`zlPW zBeykBJk2m%c>#SlUUlWqH0J-+l|w688L+5izlMQDp3Wj)R#%>l_rrZ!PacS$%k|KO zxE$W9FMsv{tugg(1I!UIWtp_R8V=8@V0m+k;0#J8O;qFKF|?@U>TzAcEV~BbCe8`a zvAuf*fozS8mZzFW1ncNATmNgZ* z9)DmA6jbKl^Igof#eMwbl794_az;dVHSuluAt^At5?=*AeF06}A7db~4*#Z@Pjj&t za$b^iG|&Ek=5lqs_BE@y?9WhrU~6;v1OE#|JwrWA9?B!GC;s0m2=97o)B^ofpSO~I z;Nuo@MebsDpB8cer$v?4(z4%QB&!Vg2OYW?gLX*fR7?2-pPi^wp$6QGug2M_m0X_7 zg)drR&E&$UR_H1}3j12gFX9q}Z)>?uI6Z}+UZ`FkFA63%WGFt$MS898z-gFG7mp;4 zbAv};^W|ldBCa9hHvVC)Wixu+Gh541cqrg#Yxz_D0v;Br=8o4Ls%sJO*dq!#)!gf% z6}s0(u3tkvid5c(Z)U=619Y8%JdQxOJ$QJOLD?Da(pF7QO>}812MU*{Zo;t$_j=sV zkpDVg4PENT+R7&GM9Rx@1^(O^NbAJEfQNTFy)2h?JBRF$vD+)$eKRQ+P(S%atDl_x z)coY;n}R>&zbuFG2~)s)-P;c$+Q~in>tkSCJ1qKsSk+FhEYRv(3}@QOU%T%l*-7r? zQBG8sA%OczHUYGk>sl}gKVk0HL&9a*Up_^bj(7#2ptqrVBw2;fdjA%vbGSM|`U!P) zg51o37%~VLcONEwB$I~=5?+yG)KRXx>eJ2|ijqzS?i+*I#`PY60kIeJ$B){J85zct zVqo`sc3khg=6WX?Ne1Oz+4RJbVm5cZDu<}q)Lie%8Jf+mn`Cn&9apKNk;i3oO;>$3 z@d9eHLQp81TyKNvi6g~q7Hlvyum~#aUmg|V%Z_q=3q~)x(-zUiZjnn_bmoazC;Cy- zNrL|0uK_TjlAw>dwCiuGJg;6@FzpTO zh1SE`H{=gm>YHbKR5@&nZSbQuPdg1(`Q>sB9exJ0(PtwvBK-JGxjKIXdyF^bYL;BB zdQ)y~0X*N5s{~sgJfS01S6sO}V^O&g|B)l2a`pMKlRC?xt+`n7mRwP7hk|M@GV2+L zxhSE;M7!NrGQYYq49)6JdPq`9wdq=jmQGJWtOuGhROtE@OxkWxx z#&q{oL)D@-zdYo>OWWQvmDdiR%7GPL4hnUj!)!-kqml4iY4ieacD3(mdjYf;VR*jO zP`;4%%`jBLd&L~|2R7Ol5f!iBX;93@>9{X{b~*&?BzumrETgOL1}GRtrC7pj+V9Ji zr|Gvao0YoCrb0uGgfkwcVCw8E+tZpls%&;m-P;!R(^)x~80jhDu727BB$ld@JyUk$ zIkRz^J=VrT&zo5jKeunzY}75SRMoA7#zNg1RA}J;w8r9juxT|dV{!E55P#0=K~Bfx z&!V+k(_J@s!@2QW_H3Md)^?zqS*m*XOqscNzj;pQ#W#A`HyH9ci|pvUxKu^=OqqhwY*)8!8sTfaX-Z3_p zbz^f`PcoMc`4)ZEXJFvBxX5t`)_*HEz|X^P<+}K(^POB9KVN(&*Q|46D$cjb4Zh^C zkiXFe^t1)tH1JK>wa8#~q@DXt{>ZMexM)#0I_=XJteE5OtOs&gi1alC`rs{FBsR09 z8)pN?66&4(0prtlRUQ5-M-Q2@S|J} z_tww+Q4TIUntGeaiG0R^o)_fU5hq6oKvsY<;6a>RK8XJAL$#S+-_4WNWIR@Ym!U#* zyc_`crs+IJ>YSiQ7OohKPmsx+V9j*{PCOs#oXC&yQo)+()QQZ^m&vi@uKzXoc@TFt z-YAB}NW~)|hNd=tND?2qkcrnzbs>``h8W@<#wBU)njz3vl|3n|J30-GqabqzHn56u za!Y+xDRCIa#W+E$s_}7HRTFHgipSmSgrjg(Rj^-GN*wN+uNf~lvdS)A9x9}eI_?9z z=i)j@Iur~sl!e#?Inu)P%+@4MVu!B7eXIEio)UaLSFQ$?`^r%^<(UnWZW_v!sYll4 zY`vF8$s+{j)iBhwlylqwkA^7akeY^a=87v>~q&-1CsD3t5W~b)F6TiRCwMv=}Yh$Q) zn6*`E);=E~8!fqs8z4`$0J@2_d|BU*L_}rkvsBEE#IXbCnHqFDp6rw`n+_Z}Pq}9F z>0tTwLLJ?+xMp1n~dgoElB6 zYoh#CAvHtqO?mh!u{2h)N_TYf{RrJM(S{N7$9@y7C*!aqCR?)R!Lgbi!Q242U(=&1 z#E+E!i@Qngj+Ct(LG&ouWV6168`f~-V$8Q_=9i;z0Y$HwWWN(m2*`dXbwXe>w1AvZ zbWhRYQI@f(b`Z=riMoah8hh9-X_8}iIB*EVk2;jVg++oPvk@Fhwwk4m_YAS)S{_t(Sr+8*^H^*5(HF8b&f zJSuq89@5it0m=s{xUKI=BAJyUS17v6YsU*7PZo_Cs6-lpJj!B*_Jcgy0_bg0fkpDv zubitF{oj3`MMItKmnhx7FKevasgO~67W+Q)c)6KHp<=JeLC|-++}DE9sTdsVNarYY zj$W$j^>?4AoA4E9qX-(nwv*&n3aQt#+~12>S^TaEz&~=_%UYk&P&Xg;#-vuyXo@|nN z66Gd+(xW6(NMAS#)Z&jkz6T4jT;XYI1;NG7!qdT#_2R7 z$qF!UmR#8)&YtmdS7_ zYuNtlK+ppDO{a=tH3CN$$kkZ_SHWwc9HJ%Gd!9|>ugvhpZuu|h8ofWhfs<4^?cS|) z+PztG4kngjliykTO+JG(`Ie6tXJc+6lu(dbW1ncZu{#l`y{4{4qBiwR*3?y`+SKhy zk~Q^-tf^0Q)YQ8yF4WXBoHq4mRMv%Cc{r?CBG=JcA2ng~oHcd#`DCICUaRB*(OP$p zx9ZZqcQbh`%!Ie!N13rV#MZ7JDI5xz1t%JEMXZETe*3tL2K7*{FbC zQEt7hpX6VWY|Ta5@~0gpNTp*g0-@tt>o6g$6m7=A659;aqqG@v74Tjq_kS8is0W$p zvcOIH)3re}Fq3Qy%+u*a#i;sxGi{`)A3!n-q9&o5pC!!vs7TfP*wYL(Ff%`snEAPp zqZ?_2tdU3RT4-5UH{)Vvdrq!#FwA(S6$ckn;&kOHk0<`f>IpPkuiI#hyZ(dW${yJZ z`mdK?w2ZoRQ(5`Et+ymo-#~0e&2$|7JRjS5o_66$o8-`%QA2BoTSfBR3cnQEu5is?Uz-Y!=vtZUEe-r~d^I_rkVC<2mm z4Zg5%hlBlF*Dc1)_YN)sl&Y$gaCy;uFdNj2f~6Y`sOJKx)S(-#qySgM-%Obz#*k4b1$ zHeAw;>5gBL|6@C%eL5wp>EmAL5Xj3{=nl4L&6a!HNu#5i79P(Zbx>z3$-#izatDi!#r|LjwAr7Fm*C-@RK`n|UX;4# zocqg$NZi~}In!w?%n zm5sf(K8Bs$#3#=1ro1#t$bbY7L#Uo^cn2zY8my;8qdX0X7Q-II-nmSV6->Y=45<@E3z+{0x# zHj1|xYu-O{)iBwB{WExb8ORNt(Ow2~+>@t}OM)no3aLpgdVD1mZ~mn>a+3`?jrQ_guCI$7+S;$!f`dVbT#P`Bj>T@^%ODNt_Yw3RBiFoq!~ z#8gbMk`&J*iO-vnswNM!!7d*|bxZV|(a_Zb==<%5wzl+$zQT&>e%G#y2nt{qMyR7{ z6slR`o8e|HH|V;}PzeV(B^--6=*^#QEC!#HF@&pwF>U;hSGSdiSF#P{*3J^X9=c|Sgs1ayrpue^P`v~$z#Ax_$pdkux_~>9V)ZmW5PbNdKkNz-@ zi*Y+V3N%y^Mia}H1l21Tf`ygj_gH9O!4PdpCE=i=vXSd=>Zik-K7)$WbY^bd-0baa8N-ze-1{tbg3DyJ|BIF}vdv&O6+zI1C z4OM-{SdSIqts1*vHzKu?JP0*ZvE)8J*bt9b=yMefU+_o9rgSxwcXKyh#1lx0!5_v} zG(=c9|IBj6RWf{vxfou>@QJP@52_f#`25jeT#DC^3=c7wEqN)vWb+(LHk?Uz8djW( zhuH;C6ITXChzM{ChwA$ zQ!j68NvOPUtMaa2Rks6)`q;Wx)m`rG$j5fgVwm%)7Lq~nhX&7sk8NVOA+V@lCJ_Dz zr$d1f`sD4eA3Uv3{!oPB@!nCZVf|KjmpKUK& z?;5&^U}6o!D;C>aSXq|dHP?J}5d$FmZs1#icL($J-tf{(f z)910o>Q+J*paXS#%8jy}Vh!4z@!Gw3-ucL?ca(L>EKU>RC$D&(~tbTu6VIC<} zVLp?#j9378Tk5lss9@oi79c>7-t%Yzf`Gju z*bN|H`D`dbx*|o&&52rE5|9#<5_$`eC;|dX5fu>OKePMp?%m}sxs>nwCH}Q! z-_6^%ZOYEh&dw%AG4+|pI}E^s_x`Way2ot&4R$rNR1eeEQUN0B)kbUrJ2}^{yQQV! zw;3?uSxc-i6(&3&g+Weti)&N`yq?4v7y+;UL)7D1Y-MvPw3b#V-ik+bWK^%R_Bf*| z;KfGjByGW#+g^%++s!Ri4a;W3#!zE*=-R?kGk|4=-aRalRWjGJ!HOfq@^W1XrzM(>$bGia?$pCVSmv8_BbY*x$9vLp)gE%_s@pM zvHNUwH{uR{7}h|sFAVBgymKxK#&$%@Qx>$m&xxq)C!B~1>10W4%sS2wv`TcZSRw^` z#n`Ose)fi=MKc8l*n;esn{vM;F;0iLK(qtnYwK@pIU(Z}R`E|-qG4wzOO!AZCbUKa z-!XXqeoNCJmmJmTB_Z$eCoRD)u@eXbe%6_M`N@#yZ~X!CUbKYP(tsNBO!<&UaX#$G z8=s<^!n0G@8nuUNc?F3F*Qn9L7=DhiZf~C!s7_R|g}7c^6rzrRwh+e!OG8lFTI%5{ zHKnbkzwjIUUKQ;Je7@CUDfwPcXqjiYXbKt?Lu)CS1 znr9aL`%z0vy!vYVvzEC32?r{7xuM9;Kcn>gQ!{DIFx_(5cLr(#bvjz^DS(TXb}W4^ zf&s{ap4jLhon%jtt%r4Ngwl?)(aE03MlLz33HY)AHk#qWMn^asX~2@OQFl1j%TgJs z;C3%djNv9*{kL?`uXjU_6J^Z6p~qP9_^3O4_mriQHYhes z=KpX`d%A}uqOx;_qL8We9aGl|=L_#s*JxMPo2f^n@2po==B}IC-1U==>0IY7mmL3h zbJtBicTFnN+~vd-&RsQT! z;&D>hn#7K2lh|<`KeC$VE}62m)VSzvG<6+$Q47*n~Rt$0kuXEFm)ZP!Yc zTEZv~EQM28E12}O<^BTKW(|YPB~}g(J>y+DJX;W7-TN#mhiA(GUwz=pS8I#QS1&wY zm~yBeZ}(MJ%VMswXhKrW5Z~I8;7Ln7t1;L)9fQrXYl#hBL@m)JM>PRo7N8~0a?ujc zb1hK=mP|`b?t@z5S`G*{d5aR zZ)U?k9GgYl2CS#De~=B>x#hs_eZ^ZDzD+PQbC=sm8QgM+hQtBobOXr^n>nS5&9Y+z zM#E9xS3K?gm0_RktXC~=7qYA!jlK&L;QTn<1sC}io@l$|o)lvo)4{-3r5Z^W^r$5( z8yefl!loJ9T!Nj$%J(fXIA%NEw{%3)1Kp7l;f!K7i95LwvrmS4Z%dtA!jV(a7}1=H z)?%Df(FmdNe~^%6>m$~{We}WllZ#MU7`EymKD0dRiOd?Hj`Dm%B21q zZuSuuUy@QDfhb6R(~|t(7zP~S3u7(q;EA^^`WsHDt7hwBSooICipnZ?c4rC3lP%Jzr!wpDdCPpsqgYvf%o6lA==x#>qP72chN~> zxX$udVyu=aLA^XJ-_~o{-qsI(Pq(cf|DMkKv5;GUR*0Qk@K~6VcjB1E!(~Kkv_1V% zLp{zHpZGdoeCRq~EYVX~5$21U1xLy*{mEkypFD0%&`loJ5tgrACJ)>vv9fT{t-PCT z9rH%%j0B%I{_DfRCz1A$ING8QEz2j7FW_y|85~_^*Saw+Vu`O*G1iqT)|Mhw=z=Mi zK2tg?%B7(isl#q*1D4!b#&T7e*k}V!0QpfWt!z^3iqh$2eD- z*ini!p$nE*>7!4w+o1B-X z8WGMeP2H0t_VG}c)lpa06ifWQ`nr;M$%Pz-c+4Zu0QYao`X%8rR1i*cRs3Y<>Yd` z@^oOf+jDq%==U=$vYR7tnLRZ-c%dcIjqDa$DnjZkOA`m!Gug3)!ib_T6ueVi2^R{b zd$7xUbgL3JvlP#C;S}^!y2a*BYi02a*L@fVpu)qhK{_-MH+h~H5jWH!;_&3aztI42 z<|*m{Z7(cQOt)nw-0FT(&V}299_5;o*7#Y6e+65SiLG=6Tc^e4La=S@8|3019|gHf zEIM8Pogg~+KIGS+u%Ph{amGk&ZK;x23C}l_uAqotZgCGAQWlS}|3cmlhm`Lw_*3gfWLaOO76k@GjcxMTlFr zv3C$1(Pa^<-OZ*+Fmkr&ys)?2niyP&V%_Z3|^I>Fv?O+FD{7R5wfn5C*~3@c{@^vhp)Stm_&Mdr=oA=7^BH9)gB zto)D#Un)BS1KF*dER_1Lv*f#Agom;!q44s&Wmh8MwR630x1qOHtcG`wUtTFjizCRf zNcD?1s+q8Isn}SU4IADSn7)hlvR^? z(g9bun|S#34~vLyn!PStlAP)XKLj0r!4eiU)j@6>uj1*X96h-erUPyKgfF1~#8b80 zF;jFpW=?~8*DS4FyfLXf^t~kgQ1iy5bt*zq7zBjhEYWra5D&&v$n7QQjyd5MOE`2p zWO3fWj((;wQ1QCO0%L!(RDiD!S)Ow9D{y#cb~~(dXCwbqY-yS7I4+G+FIhUlr9+lj z=y%i-lCMXLnXCLAjq}G}u$sk6@Z(XPCvLtNE*+CD6a}@Oy}Q2F)Z2FiZMuWhaKriEO~C*2 zO+eDuqW_Z+;ANp#W*r^8ga==I+KbvY!$Eg!89z#AO7Ptn`>*|u+@~~OJ5mZJL&>9q zk1C(h!M&(*pLkd0W;#fasd7v7G*|>xu2R81)1{@?Eh4>6=QN~O>F$T-i-RP%|5r;5 zofZ`CuenW!!-`+MXmw?J47iFnSl1|7k9HNAa_cVy4fBfDm;QpB~+>$kLU zy{rISkJb$bVVHS87l7fi+;NWJ&T!8k`FvbW=;-Vj%dq9VrMAbl*=#+IYrxp?PPMs& z{H*irEhdh!t3!Uljjp5DER_|V-)@3`0~kn)vO2viW=Otn8RUXrqm_9#hr`M1x}605 zx~zI# z-gZ-$%jI&1F{4S-SO$2x!;oTM<#76Myvl(Ur0qPkz_}NFtD9h=c~Upv5SObQU}7fo zcaG!!&i1<&=ne!k?cNxztL#@f^uL8yITXEyVqE3my^>;F<*?R!X~n(D;hWodm4gnO zE>}6&v3dSBUge<6AT=v=_&Iwk;yy9>p`T~+A%iD=bKn0D8Iu>m68%Tz+^iRaDi zV(IKSp`-_j?v~avyQ8#mn&`Yi0PSxDgir36bW@MG!lrKW4Z^{AYN(|ew9@Y*qoJ(= z%n#DV*VXSM&vVcU^R$2eAG-iODSBh`5_)F*7u?Ex_RN6SH&`mf&16_}^UL5s=9lr1 zLrReE1zNH0_JUWYnQ{-!rrbAw~5^y?JCIo1kTH1g}5c2`pAJE z`dF}k$wT}*-}=k~lXp?KPUA{T5?5MwV8B+pZ$be+C$J~jt?iC+u(zFDPP`iDBc{7~ z6C&~|)nOq3ejS0XCwg`*Oh7ylCVFr^`NorNo&q&Y&b5TV4`HHit*x747C6KPn__n8 z8}iRm56asvcl2xj7^`VejOh7N#gAR7FQ-(guY|fyDf&s{bY31dyIn3-99iznrXJ5$ zn4v-?&qPh5%bLa7p8nOYg)0gF(0F)M;8 zioG%=I+Ci2<;&47cYqWK9X1C!BZjenQ5&l1mM-2R3oUXmrSLV>#EhjyO7W4n;%dHeHHsVH0pG<76E%4o?}}tRrr4WZqO)tZ&nw2Z%}~7cLt{ z0JMJQKzyHxK{b+==rQjS?T@e0xUrcW#qhF?%!xr1|8ID*Xx|?fwDT>Sl9>_fa!WDZ z#nFu7bf8;V6-+coGaH9c%n%Iwm)S~;ab8PpQ3E=$i;cC7XNnDoma%booa~y;x5k%3 zv6%0g?nVmU*p*L-m69eEwNz|vRDH3x zD}oVegy1pt#frjcSUEW;9+#>+>x+$R{a%E@sM|n{QP{d#GHUlN!xK}25{gvFXH$Z- z=!}veI)bR|Y9JP^n0N?^31Dr3ehtNX(5IpJgo9}9p;H3jOhX;vYidT1ukn%%&2qk0 zPqY85rLp(LNeR_hcWTvqI*J)k;I*b=g1aZ~Uc5VL>Ep}_R;FSpvQwoenu*SONEC=;1<_3Rv1fw@CZd_D@yjx8Jl({A<01A#Fxr-c~IB~eMFru*`^ zWKwe)if|3JI;j~0yT_GATiwa91Z|D78w+hgwxBkxN7_s_6DD{QLr!lo#*I2reWOhl zCi52*RXRH-DED0!hs<|9@9fJ&f+8O&GaQnh7K35^OS+2}+3v#oDLNHhztnoEk?7n) z)YD>#1z`!*Hg_^Cf!7$0&DJ*MVsF8VrQ?})o-G|y1Sj$?lq&K{I6ZhlUNNT!X60DX zp`2Pdns?N#pLDDjwA3*ZFbn<7Qbl0d;Xc<`5(PVLmYZGSO5oq6pp73qAw5R71}<#p z=T;YywuT3d6me@f->tbXchw1RZ!7R+4r*d6aDDAQigNEO@DfS`FDvlkNCOW>mKVyu zk;S>q>J7Wg9oS{EVo9l@w}i673wnzacLsT&58ia)rfp$h?lO62t_M9!ctFRhI$;lk zVw_X;+G1d@oJ31(`B1sgv)CeT&ciw_*=a5~I8s#L_lBYsE+@Z?aYw1* zvxLI7bXBi%VnFEqxR~fBH1GgY88#qfKcO=qm_HP4K?z2ik*_z=kdO%X^>m{>&(;Jd zB{K7Cj-C?#wI&z}TRFShi%Zd(5bm@lwDBvyri5gNIkiCluOF@GLv?}Co|}&w2YT@T za`AEN^q`(@3kfGwGIy`-cepjx;qGN`DvK~w|2Z+<(f7xm6C2{5$b{#_%9Wg*R6pTS zk+dL7A98p7eb0##9Ur1IUkr?VUXYI$U%bVTf(P}D@aPM;Gf?u4 z49~kR#oNfRJFXxLv0Lo1C)on-;;>T)0ahM73VSwcGkox(*l4hR1c~?Yr~~a4X-6Gs zuLvQuSENCr)K%{x-qczwu6vZ`F^HQIm}N=P3$yBvHBf2LJyqL)yR(+rL%Ew_TyTW6znQf*K1$ye1Sz9?XuK0XFMp#6lODn`Oth%ip zW-_3M)kDFjN0Rt=zMUR{N@=2R(Mdn0=%jIRyl~!9$Kt`>Qd~T=bEyB^rnC@`OMi9( zZAv|ccy^YD+bK?^Zb|W|+wMT6^9Lw}Q-EG-3#HDsTtWj;g_(PUI@Q98*51TXhe;McRmoq%atYd$QUuvA#u@? zTA90ICBpq5`eZ?Mk|DRC>dCMWBaGdF^&zzd4&Q?Iyy8sIMJ~<)}3;=JozWM@{F%-sRRX| z;YL@Uak>>}VMt{4kuzOdhT199S{F=_ZyRIE`5B$L*LVxPv0 zrwQ0?s5!8(p~l&pee9z#(8qbNF{CbbYnNlJ?d>XXtm~S+dk^D{MeX%%E@Y^^&w22A z82JAh!IN0$Ko4Tw)1F92wkLuC_lhItzxuFPV!mdEThkq4 z-rjWIXSe@s!m@698U_yZFbpm_DF(CD&j^J~Z?Jo-k2Cn=o88*w=%c+|zW4E^Em+o= z37(We2K3O!0#S|1A^Xlpt!4S%!uwodn|QxV6CK^E=M2j?ee{kJ-^4YmU!wT2Nv4Lhj>2U`lxATMQ2xeC!$r~ zOh=dP&Gfy?5AMP)ul3Yr4lJ6_YwH>`oP zVaXhl#30c9AT#5o9uz+a4+HZj7{LKl9N02WaxQRteA9FA3evHQqdaJ;Rv2_ags~_BVuE>ZRRhIu$T(i?21pj z#8fDx2FBA#>b@a-3U-TGPrH)-ZgGGdU8&SwAG@L0^}wd1Vm$|1ZX6Z+N9it3NHqAx z`#XZ%3^^uNY_I3vI2>1WN+%Ugb4n-AIfRhcoCcB9NymBbjNH**BH!{;$He}zt`#K+ zcwe%ku9K536*^ofdS#zGD>GsvSY>;1#6BJ>vpOovnqsltcT-6f&p<0BDVtRj+rzpBje#p0hTt4m_b6GhDL++1Wwtg}l zD`$3?zf`I2-<5OGSI&=|DL*UcjI*N6A;(Uf#WP*=;qSBJeIW~`r*SVG1Bydis`X>& z{j=CtVZ^oiV|?c)uJwljBgEJcv&~Ok;Ew_0RBe6%(>W|?GgLb#HfpaYM-nwS>(H{OT!%wET)b3}mPMmB8Ipf> z3sLAxp{Qg9-w?yYf*SkdX+G_kpH49(f8es!-0pv2b1nMj+Czj{Ygr;8_)@71v3q!m zk_~atW$`(py@8j-M3)Qo42=w=5PZikN+!0L2EG0kRTmYUcmqj+nxLuRqlLxt|EjL$zlkXtz1!DaqkdzGIns{nL65?SGUa!lD7{kB zD!mr&OQ}fe)2@nDwRYNx=KHIq(N4i_vEU$=;!n|96BO*4+BG z*vo6pt8Y6*o)*z|vcIIwmL-vRca*Lq2@@oDiPu3WjdqHq+s=m!lG7N12WsQs;=Ujm z))*wu7u9TZtaaEqkQ}{|_U{tgp*S)#7ukdmB5`ejw)MOl>_`Q{YnF>?4rmf6x!<{0 z4wu*poHR+EZ>ZViN_H1YmF)gqV;5tMElTc}1eQg22$yrqELg`S$%|zB)|JF={&PvJ zRg6{i;f}g&desRjLp?m9oXqzPO*w z&$<(CM_Xd80eEy*NVOT&NmFTRn*@6*NzQAKX*V=Ze*q90>FF+uZ4SX?t!Sx{v{p|! zU2yq<)^u{K)9mXmi#gb%N)+;XZc9rToT(<&)Hh!pj4koAPKPShrK;Hc&ef$FK{<3= zQG(gJ8wOREss~SZc0(O(&4vl_Qnf&>@h9*z$Ly{Qk}AM}2cw(u;=YU;rQgg*x$hwEfv7OrqmD{(zK@ZtZTPoAiatt8ZJ!*>sNT0 zLopGZSL%q)az*rx|0<&MG(_(!6-4K0h`w4BM3+K;^C8-$TN`@)kj_`XaI* zmN4R$`~5K7q*L68Tls@tI~P7kY0X^3AMW)I(Gl5&QYEr~mCm9oojdDG6}4>-Kh4{( ze3(a`Z|FtoOgiaQI&c0%>C08=9A1u<&TieL1c!t`rL!uew8h!!zNXUsAxB9U!wDvl zd^eh;TC?EOwo(OC)>H!HMa|Dx>INCq1wg9h83<@6*#g<~Wl-B&V!{IY*o^2UNq>y$ zX7=U+^lD}av$1EkM`|;m#%Z#d)l&?1g>(ef03WuK65^QF$8-7F0$HG7%xV3N^1y_S zQYf5gCxwJ*if;hkIEWkT2DL$|^%(T(A+;2KgYM0x3c^&F@PHJV)I@ua9pNf9>dB~5 zV*^N~=4z*rv}Xfq&nuftp|v!i0k@AxFIKOzHcsL`H3;#?@Wpn;I=8*l)-jHxXjafG z)@S{=X1&9qaMf*TshKoplFs1N3)_w}`s0{rn)SmRazBH>hQ}?jcFp>i4w4n5meM_U z*m0ChIKpZWNl)A*RTQ#d&|OkP9eTdL%ZZ+lPL?RRc9&#r%&{_!5GvU)JaQuWrzRT0 z)ctxKQDA25tj%Ia6Wr5EO4K8WqA%ckj+_M9ng@G&N_U3O|anUy(=Kf)cfRsl(aPPxj7#C?`TU)6K=h33@ zYmA;2T=^A7wsR!}J*OTd{1nEiJsv|&J%|#cY;o#NS5BR&M_>^-wP(Rh>Oe^8a%k(0 zu86U7C_@VJ-C@q5GdyzWcO8*KU2?i{=nQWhs+Fg4=n)Sbs^ush4t)hlC%dy0Yq+Vc z1ASsnCvusA!v(p;5_fkGPR(nSyGu2#R^MY_u|QFyx-YL|oh*yi~X zJ@xsx7ChfovT2HCpr%-^XlyBk)r-4_N(##L$xz(YOU-V&;V2jS$4#I0kDFyq|Jd!I zE2e*})zeiGrCQn4KNxaQy8TqB{^63-O}dpa{o|&le@rTZ{^7(lx8dqBT|5!T6_6l4 zZe|=|r<|Kw9<-5TK5HY#%A7Wm?aH@1^w=yS-42r-R`iy zuT)7JJ2Q^5bCyl#%-p1!Ys{Wlc%+}ypwK17UI$^aCB+3jVfwhF@P3nU2`&GgmlVZ{ z^k2mhUpla{zYVQ>{-&@wN0vRSNTcqMJ^f{<)qv zb9yYoqh3WV6s>#lH-oA`?f@y+fzN@1rD}K#?(&;b9S1DmMmAb#Y2$vM1IGhjm0XQZ zWL8A$BAFC5>mr#I5z?JOVCDOk7_2|N*Co{gEG#m{%{2sDD6^-7@RJ3;biHb%D6^*B#_KdZ}scrycd;0S#qh*`bZ#HR|0C55*B$=Xg&5fU zAE~;U$uWT>ieqa|<;NPwOxBr^lkf$i)!XrWNP3+)Xmog8>Ro#se#gqOUYd; zUEzC(eN*ZxY=RfxWWW#Klo~lu$H@5;-^h8to}6nWEzx(g2=rW&S>gjavF@Qbkg&@K z{+qhB}^UWi4vCQrv$k4Wq zEwmUmjFE;5lc4>F((IrWG*#gy?Mk@tp;S-!0xFJ`A~0zUbq9lP_fw}% z*MWP%+yhE1Bu@atxirJm@YIc>7^cEt_aNMZ}m&{~gsnBq=t9~{?AxO0lsO*jMZ zO_A`12Ba&VmP~OU>`t zLgT>0PK`0)X1jGO%$qLt6{bVpY$-Iv(8!SKkBF?<$Uspx&P|8p$*L^!Ic znV%oqI#>50gxY*|26ZJ)mgQO4>GB%=;XV24lXdVA#aWpAD)5bbU+MZ z-P^S`ESUw7=~8{ejcL#&9T{mVj7^uOAj4Iii~O_{?w%{X?9#GPvvrN>?y)hffrkb4 zcWSp|CQ!kg!B-OQ-ZsOF-t2G8)YM*9p_7NHZ~TLpQs&0W~8dcnPapI!{$p>dKR&0R^2E;{rqeu z@{&ljfferhDAk}Nk8LdOk0X8zW1_z1S~ zYi#K2kIpzMx_j`K)?eA|jh;X$Fm-`cKZ0|AAo&JK$g$d}K;8l=RNbN>0$p1Cty{TF zNHnAw;sZ%s+!W%2DZM7dTXk$tV`;#q&>bMq@MGz*y7P*NrVSt4NtP9)?$?i6odQQK zlZ{#p=cqy5Po$_iOmg}2mZ_&$9+bN)=1{{lag4*0!+vY*R7gFPRc(xc&ol~#)t^Y6 zkvoKiXe3w)i3_EHNTt&kN==0=uz#Uc9g~|2rHPNE7i}=?gmr-`{?__frmf{SmsSo-X-BGQe0sK(HD z9*ehys;5|?d!gA9To~_zQA?x?Hdj6(F3LvlsIw%;F}5Mbhncigs#*J6qJQxYrit)1 zITuu7yq_V(Ce-#rcexHIqy12G%7*hxvHWq+beWW#FmDch8AI9p+Eb3_)k?1fi$ zG-+-7b!128x)pc-26 zDt<22F-(~Y6RI1jRa2@P8yl@wCjd5lE?p8ngB4#$ZH1$7^$Y0%OggVZcdAbzb(K^# zibeNa#-?Fx2#x>~OxB~Ya22xBQOH{*wMN&g_%Bi2n+x5)l&T=`wJ-6&$+c-eZnPsTGZ0KZM_3t!=G$aeVT zD=7i5qu>6OlrnfRRh}nUVG31%WI_`@N^7KW-yU#biMxV-%`0+I)`{M8*fesIR41e!2)npn3z7?C1bFR)LwA8AY;gljL&NGL|tXgx?-AZ?u#7id(^BJ)C>bx5czX%NVG zggr;YH|tQNp9nkGNp}gk5WXIz^ciTmUK%84OH47 zy%>|rUI{4c5x&Eant(2xD5eB-_Qet+VeC;M2sUlN)!f$*o+)(<``S?!E65+cb-#vz znYcpO1{*V_1SN}lL&Cv;66brkoQciZ2GJXlt(HT_jZziEpR?hmjZ*#K->E3>*lDo- zJ{wkSl!ANOX)q=ix8X``9dyZ(`q{a41(P!) zVOy4Tx8dq+2-_}ok)|^KG*IZiU!d=H>E*6^&*ATe<2bNDd`LxBH25~bbU*Q=oq&@O zfSgHoUyU=#_KT1z3<9;jlcFOWJYlHq7p3~&h4Njnrop4%Nv|5N&x7pm&<4%v@DhX! zHH1U=-9|IC?jQt0N|s`TO5aPi!DKF0%~qB#-cJfZS)!g|K%)bQ8+Qg9Q|1Nr8hb~6 zzqp_~OFyii60PI6=(EeRNm#_NwX9rfbgG)RUY`xgQc%Ye2stdmUNO>-pw47atQZEi zwuZyc*uZe-Qjr!RI7ax@6{xra7xtUs?j2HvySd(p3#~BJCNZ(bo3JdLg95CZn5Ky^ zDIVDj=Kx$j1!((50hlQfby;*D4#a5CRdwa2EOiTAy4C#7P6&G$35n#)gJ;gY{2>p#>!X;eKt>(r(@k<}e$!#5#giYgEHh6Of=+!uCT_Gn%ym z4og)Pno*F!#;l|P91l$nOJi}j=hk5~@g6^nvTg-E#~ZHChWI0B*!&GzACU$|{77Sl zLXpX}tZ%3c*?I}K9zh|p158Jy*~p`qG=-B#rFMoJvooq5!zo6X0Uzg}4m%RI_EPlx#R#tLB*sLcriVT5Ec_TuDpP%{G}!Med{G>vCr=vTv( z38`At7p&okkEu+9izlU8hRJi_r7UB# z5d*|tfTp=p#mE(eE-{#CK{V_$sSDzpFt@2O3P$8g!L9hLp^jlGnafVGk(t<+3h;-nFe^uzYKPB{7{9?X1eZ>Ri^8AqLp9#1IL|c~Zz=AQ0I% z`M+$@qzY_SRr5$zss=tIwr5uf(0gk<4n9pTB$IPl9)ahPQ5nMZkDv3G`+KAe{}fuq z2{>!|*Y<mW~g}TL_MWSjz;`v7^8GlEmA_bkzlUg*t#WbmCK9UJY=FDu2 zBF>uUHpUa&es6#$e~{Ki?&S55f-#y_C|tAH1@(WF>UU)u$4I+urryOcP=oI#bArZM z9udKp61(*cCS8UaoVy^?+2AjJlvKmoZ()3tF}^ZuIMS?|!|>M_>#vlm?qEMAF>PWk z{2geD^%qcadia#o!tv!I!l-Xwo`Y+rq=~qnEw9;nHjtK0v{Bx1cUy zYD@rX8u6#4TG1PltpiZTtPRE;(b#4_sKlwPLlF(K&m7}G112FIFS6V^?+C51(1GL%1tmNw3*$gXB< z<{VfNYpTLZ#m{HmVx?GbOD}7+K18+lrJ@E^(DKobixsHW$vHA>%ZiGoE~%Ue?sYGp z=&Xk)V0TyGM%KJ;uE0$Uc#kV^BjgEkSR{Yf#qHf3m{7?Simo`g4;L2sE&INcYo2fC zKz1dqFLAupce&=^ZRx;I4t+N=Lw(`IYEsS!!_qR(6 zd|NS~pl`<&^ma<19BtS<2huB>#t|CpRWU`GHnTx$4tZ5f?-MYm3V+$JDo<}|>9}hA zx2?KqBGO7-i+n$2wf-aIAt--3Si}Vh=IWEbhdcghT!Ey@mTCm&}lRQkQ&c(G&Z798nsYaDJ zR#GQ3TC33b(l2Sk+8CX>6-O8y)~qeLWN876Y20(LsKo&N1M}dPvIo= zs3f*oB`+QF-Z9@R9EW(D9BKF=9X7NyRfTb{o2ym((ViPO za9PQ?m3&HrVLj@oJqGKK>CmmQDI(-2cQ{;*mLtPXYv4>?A?{3`K}Tl%K>5M`0X6~~ z+~W=NQ`I;O6=K%3vsw;nEWyx3#`+1p-Y|CyM5q;8Tjx!4l;P)eSlh((l;LCGP!>2IVynJ1F*GN05$@vLKtqnPgpI78ZM;6^rogtiNDy}g4z7kO#jpbTF~ZV zc3rouzv56eHH8TmVPKpbXSkFO>2H}M442a(shO#!@DmJNj%8j+hcwj`XSkRSvsENx zY*Wfm^Mlx?^a^rhWnC8$Q;sgu7CCB^j{dcSx`WKY*g?V<8xS12v*~cpAahgrtGVd| znPsI`62d{LB)8Dx`$b<--S&Tu(2XX|fYd zFlpW{)MN(7_&F?e_pX-~o2f1MH9o z*kKQ_BO2^3LD#0E9x@*D0L#e_gLQS~L>S-G6o^QUzf+FF4IGx_u>=y5;!YwZkkAap8Sc|C*bbiT zG(UgF1aaD~or}Y2~Ybn=@bY`;oshi(J zu0)@-Yx7{`JUI+kLlRwjtHgdAz$Z(kODXL-Fg=Of~ zwvZAo6_z2bovwuRc5))(Ysg)QucL6Wo!p7Aq&|qKw05??YL2gZcR-dr)}DXr`F;HY zK9z@zrjaz#E|K>NBc@4nmX`#pEd&LJ7w z6<2EqU`1ECiF9Om8W|H?kkbqdOhq0^A1KGkLucmeR^eYkzplCl6rNvRUYuIw^!#5T zeZ)XqH(9}M)#@f!m5$}>)+^oQ>Kair#9R}em%}mX@wALP%RS^f1g-bU-F?j#2SGg? z-7TcZxcrUw@P!E*G305vm3;6gx6v;kGo;*CP%G?Z!r#7S`}%%gN|TqJ_PvGjoT6kN z@18jf?s$mNtA?`L&!Q}N4_6VA(*9g-?9+n$9F}>?y zT-zRD;|tv%;W?jpMD9g7g@JN7tmvk%1qq`PjC)27w0|?;Q7;4InyvO@K4m+nWm}ml zyW+O4R$uh?Pjw@lhB_|a&{KIA?+%;W z@}AKnK_l!3pOsq@VGkLE>Io9I0;`{u>rsn-epY^fQY7qfc;GobxgvE}fX|+jYa{s# zv`cXipO;08bJ$_e<8my?cO$fZ9_>LsQoi^CACN*wX1vQBry&XFm^e7uR}Mx-yx3Q+ z!kgDB+Sw?act(&~$mbx|`ugArU#zHG{bU)7O71JiX+`N!<+-x@kk(fg3#qXH{CTdI zm+C|1M74!f?vV?;Rcq%0FW7)?ugIbc5k&Vd5PkVRkpIve*|~aDWNvFMjnhdk5=}ZO zjAFGeyfe_HiPZ}p9!(=z?p|u45_>F;1R==hkP{@U{jF8L0?xmRS;JgdE` zsZmo4`vz-ik2hFf)JZIPdzjo4ZoSFJ z=+`%NqGkMK57{rjCwF&bSE>KrOa1k2Uh0Xrd@9wR9ZRKY#`E9?t75WH62lb2QCMseMMs&Qfh7eJXYPh{8&J zY?Q84>u8@!{c2QUrQZF%v(zac_*Cep?-y2R^D)js;nEnNN}Z-<^UjR5#_CGV9qUu6 zqqS__ON||`D>Zw(Po=)8W%J4p@YqL=G4e>i-N81okR0;-G~amTvq^=N1pOx$l0&|5 z*|)l`Pbs7%SPzBdkdM08<%Nw%q|4j1iIQ_NzAyWVKe0N**jCdm(psp*4TjldtBwQ<5IDB~I5GFHRpuwstQVfMm-bD8;I-~zPzyVw&ieVp%o*K|HC%-+~9 zUH^XUe7O_+qP_1wPi_cx=km;G!EAtYp}rn_J}>3SlZO*U+6{zQS_+L}{({^xdM@sM z`j)jQdV!Y~b)YQlYY&}n^|7wg9^Pjc{9eAWNZ%PRwa7asx#eme$qmYQ=MI{*$)Fs7 z_F@Cti|<<~*G1d?(1mim`7pN*bpd&iTn+XvfaJ3GGXQ#mkb7umjpNipg6n)&pbJHh(Ra4$Q->G0)XbBgD!&6g4i*db>7;r45;|3CJJ*AF${m4Bcz za@WY;TQs=E`X_pwj5B|q@;>fZr6%}WFVcn^USyC)`_xvx=WS9m@#Hp#`D-2!{Fe!# z_|AGQ9Wpn|eZu&@yPukdXUF)Pv*{Tt$D2P8v_ zMK`8t^(9X>yLOPjq58&~6X413{#0r2Dds1%N=;g&Mpmi6R;iIy%3&t0QvQq1 zb8D5}nquzjGOGNIz0!0rzpd|S)v4yanxg|^cs*N=4czlB`qIpWso8QnMRQBarWD>rAjNgkv=VnhT@h(tU>N z=J$EMZ@}dYQ#j=8lVwF{lPL%LU@E;x@Sp1kaoTb(b?W{A27*CHh*HstM~FFj0BRqVD@sZ^o*~L%GHF{)Fvt>4vV3CMAXIPbU+Ynfm#Ehc(B1w z9j1p?M<`N`pZdpssF)+atmNS*YHM{rrFiORc8=USM7t%1PL&YOt*7AE9QiB5u(@!2 zc;KCI?6@q2%y$qB5^Zh2pLWBw<8lqdg1Hd?Szu^oemo<@PBlUw>umOcBT^C;Mv;;- zFj7*yP=z@?B&%7J+QUnzhZ(fGnx^>*u0JW)z>tb(Ps$YxL+3*JjKBxr@mx7kcYGe^ z=E}Vdi{`?>T&0>Y0&3;S@zL8E$6&-F&NUQN#(?L5kR+``0(-)@d2*;}4=SUL41N&& zwYiEg1R8v8jt{;@^{Nfk6-TI5-@r3pwBkAX?&zCNC4VUD$ z_HxaaS+fURW^dM9X6?Pge>J-zH^bJyc7?rL$A4Ypzfyi<@8156z5AB`y2XEWxGKMe zha@*%m8*0)O0=h)z}X=vf054A6%0kuArl4 zqiWM1Au?H4Pq{ANk2Lkbb@^?3?+;#=pAsd3ozJf$P`EBJP;n?JTN)3ektxy>Bnu5|3{jNs~N(z4ZouI^4 zJkD@$q8b(l6;lJ&e!jQY@?Q74!NcX%} z_nfVJKBarUrh6WP%PL-uU_q~=c%0;rj9{3*@)Q!}8Gog_eRNwImHYHG;7>Gwr_apv z2V+K~IM&Pw462U)_(3E$7e%;Lx53ReIPW-vOl+sP>8!&!5>68^DK=}dfM}ZL^|_48R^V3BvR?= zv4;;+<&QfnuOH?7=z%CNAH6^y^|gO=uf6gb(TYPvjEiOs861P7a6H;s=55TQpU53U zJ&K*A#E@(>c=(y4)I%}OQd`C<(KrMT#VT*uD?JeFeBC^by?!808DM|?eVp@ky$b9# z79Ior zvNBOX!FNYhB{k|CeWfk!mPS zPr}V=C>M4@$LdN2!@{{xp`kGjtVVw`d{A9c3_It*z#Ya=SXNyLw2+~b>CqE2)>l{Z zWaPc{hRWy2iT5>9ezaqwMPsFro(!3&r8x#;q$Fb04Vq}iH&%Mv^Z(gcY2q=zjq+E) zb;N4u+C-^m&p)h*m;Bm%ABg#nHc{%@^9MIomNwW=(!}mfjB37-7NP32;Rt21fozyi zz=`ogGnu-92-y#pnkr$Hw6NW=S@^Nl#JgA*gq6 zr5+som_2W7qtu3mpRlsnv+W%WGc)rO=gYtN%X$lOraA|hhZ1!v7LmBfnQP=CXA$Rg z&s{%t!dEz+tHGtgSdH~F`%4Be!>ga!ORNUtrzvLGk2(C2XyM5;B@r4dR%&78y%sAf zCc8VZB;+oZR9nK57kKg+PcHDJ&QkVn08dVKWWVA&v82&5mb}3e}9N)?)2Qc zGkb2eoaIX6$;Hm>SG~Jg(qRQlM)Bl3o=7Vh@E)Fw=gI9Z45)Tx$%CJ>WGYXN@}%1+ ztn|rySfxF`U>PQiQX(Pa3kI@wQ`%tHtF2y=RrKDWn08R+C{J188+f1m_F%?wr+d)X($@iODYy~?UUArGFI zg%!TD9!V|_X0BJ76MkkZHKFdKsPJjek8H3%H-fbr6q^RmFlFMoL5%Ssb6hReO}^jI4hA3Xe&ogQmL##8Ji@5g$=bYIXZ;XGAVFtM&0`~G}WQhm}d!E6O zFCySU{`}tajFL9hAg~qwc=1x=?oj9C}r$j?H1@UgI@8iPy~-{+e>XM%Hz}{JIiS%`0tla=+fg zAPg4Xg&t2RM`%*$obl8fip}42h17-3D0I`5O0ei{CCL?X<87st1F~n3(hbHAQd;OC zALxH{gU{b_eccV(z3UD+=mzQN5YYgWMDOULAQ1=S=<;z%anER*WhADLswT#ja z40A7`?r`_~ALfIc&j;x=!u_jWE3tu#N4OWC+y}uyBi+GIk97ZjV?IcwQP}P)fb67V zf}GR_6Pz?6;ruAZ7m=ftPOhUpYP8bW6>?@YGQt&zdfz?k==a%+uiai$fUaW{6X&q{ zAGkJKdxy;CQi%q>;ttNhlC}gonuA0g3P}@{=UgF6CMxflZZPJ!0u3iAqYzb0Z`wbJ zO#r`5ViN$H6IxAXpeH6X&__H$tqCJRO-Aka+>|Md>v5K#Nrg=igQl=gW^fQ{PBc$2 z<)}S4W%nZf%;tk&REIDR&H;|OWY1J*Rwm|~OmmUn^)dhEX-ozNPG34+-J3gOhpx|2~6fkdBO;^4!U^oBOZ2#44&yh^} z|5LNASn%u*dsYO7MNHa9D{G8?bCYZgJOr882?m<{V`HuJNlmb6Ctq>>ooc;JTjkby z9|N9-4~4tG4Xhpg9c983#Q5I2Q}=uT2Fwb+vw(0}>@|xyrhR=(_w^Cz_pQ>{x|r6j zwD3neB*j$YVcW94#r5qOj32l;AQ~b!qxs}8wAieC5dAI6W;C6kN%ppY*GdSO+%5a7 zqjy8@W+gIg8-I}N=^`P25cpk87QTw1I+ zx(PubRN#I9#Q|oy<8lAdAkwBX4lmGXs2IeM{X~=OY?!xA>ClKBffhC7(S{)fdBZ`| zAhhwUUUiyKXqd%Q{t&-aiF3qwZGnw^CrfFB$*L^HX4o+t)a}SQ7qXNJ2(xTw-59)` zHGr5&Y%zgJpCFv`V%jI@C+-i76= ziPjJ1Pi$SY5%e<$1XbYs?P@N|XRwZ9`BchR#rgr%-Jv|7Ok9B9($F$97<{xtscUt> zu;FNn83}uKC=Dam($|PM3JgpB1-K*RhyDc_6?UTj9dVU9VHk*Eu9?-2`8Z6v3Qz7r zlkiyhY?snbWc@sb_qN~;@%3Fw{fhhPn?nph2*F^-ff!Vh8iR-%2c35-vC?>|mBFnO zVBl`0Mf@S+QoCUsb0T-99oE4H+1(>daBjCEV(owIR#t^hp@P`1wat%0R~pbFxh`8t zh}*k`Msyaj zB?MHLcpmmuI()WYsnYOMUadWE70OGS+9KnQoC7$9jP7iB`HBXddJy~%C~DC@GY%+C3?IygUR44rMDbS?a?(0WYw#&TIRqa^uCg6eYF7V%;0YLquQ9R= z8&Tay>Dou>=!tt!Nq(G=tX}t1cQ9=8sMRQRtt)uH9L_75>^IvGw>MB^PAGh=!ik8H zwfL0))@3X=%-s}F83O>vA5v_wd{kJx1?x)Q24QRPIhWG8QsYF$ddRUtk=GU*{0 z8aO@x$LVXBe3VTTUsJLeL#Zki2eaA&tQqvFY&4|c*r4cohW@;u?qhGQ)~%Zpg}RfhYu1aq42$!z=rReuKl#8MJ?AFya@4`&SO zITuI_1Wj|44j2nQEk{{wp~9G?nFtM!E6sQ#qSRd0h;QJX<4ROAcR*=P6hrP^;TGh2sCz=$WPthH{iW(jCEl=cKKy(V!zeAE&;3xoIjP)<_jvt! zQW=6bN)E_XsvFkMhon5&7UjkL1h?~Ym0h?sm!7Be$K8JG4@xC+f5HpJ)?=*fOL(uC zvWLxf5|i@QJh1(UtCKCzw9e)b1vp`y1{%t@Lye9&GMusL?IVUm3 z!i^aG3F9{6eG}QR^%U+epN5J*At7Zz+nwa+M{ODdyG*lsTS)=s#7-F@FZ-$oaDZM zj%{Xg2cse!vy`OfvLa2q$+96-#M&%2jE8IsNyUKbA$?G>yKqjaseHpat0C(gR5_1} zCF0aqpU-OBDc$YI8 z!&i_W?!MRlMR``qLiGo?`cQH-^UKPD^k0;i?s=G5J#~`)ZbUDHTzs%zrf#CncZH|w zwH$)loef4Eqs*86)N53&{azI;)sK~G`BiB**OdJ@mz=w%e2L|xUsvwd%Avb& zu$(`yqp5QnRKI~bJo}vHMk?$Y{h|w-4Jq{V>^Ag?QsN|n;+Jm>RCBjL`VA$F7l(o4 zSaF#*l!i4a56R9(hD-E_p3)rGtbOXcwm@|IczqyVVXzG<{iQU0jxr^fPy=z+>*uVO zUIwWGI^_HR=hcJ&^nAs#@iL2-8)2jHCB9&-!N=4DQ+yEV2n0$nVG{|6H(!{jtLy(# z?q}`C?{NqE(l)60|7!aZ_$Z1j?(Ugna_7}d?u$&qk%SOV2@tL{_a%pb-~}R!D5!X^ z>#9NJ5>ev<76@t-6jUw|84pwxgovz$U0e|XK~X^>qM)J%`2Me|doq*YuHWzXee?Uh z>8@9=u2-*Ky?#~IT?a#ctL#^oxC0mOnZ!H5in(VJ-$rQA*~FP%)slPs(e)KRcs9|x z{2$zV(B9#d^q`V1Rmmt_NqjFVSV@<48egB#70Sok<+UXP9QKpj)#S|vsOH`060a^* zEJ0U8C29VjaxjCH?S@T!3s~hs7}nynf;D~mT{nrq!VGFQK%v!xT@0k9)HR(EXfgnM zKRJ-^@`D3|@nouk+zMStohn30K+Ss#XHvTgMXs!C$kZ^Hr^v`t>YB%R?$vX-rLIc5 zfJl5Wkr~e2gRgbix1g@kx4NC^b~|{4ulQC*c&x%A=M#*Ef~pIrR%k?@)`@3qQw3`3 zQkTLab~>X`O*_^mR#?Q&(Xk8cSesa35nHKam-3~eo?4+1T%@Cy+lg&zg+*+Yj$LKP z+QbT5AG^|yRo7D2hVbAzJIL1xG-6Xo7{OQVpt@qWXLxY49aPs+*Us=@wH;JfbWwP) z#ty10`Vzqkbf#s8_t??uTIxC+9z19V)fIhg2aoU-eHu^a4In^<8HyH3Y$vSV#xg+=VEI(DlayKZ}hYNA3Tdb5t+X-C`C z3X9lk9lP6(wTTrLu{An&pB-xxD=cF7=-9({tWCUUyId1NX~j0yCOW8tuyl>7{upa4 zl*|;kmhz$QPi>bcA}9}YqA!x#=W6A_gnrLJXd9(9_>)6Z@}jMp_vFM#>WQb9Ws$^l z+_#aGiA$tMWl-Ru0xyqonATCsekgM7c~6e_P)5Gi21e+vsHP!x^=jHsU-|_xt7&}4j>|>WfqG4M6D#|~P~4-@)G^cU2z(o-C!1I`M%8jZL% zhProQLbMs%?J$#KzPHN(mZuWGYbwtsYEnXX=DU;xAUP!9^BBq-&0WuqYtTZ4JEb}) zP?Vc#LBw^mOz=MfGomIBRo`>?fj zgs;JqB&TicN@YvVmKVm+2;}@!oRY!UETj!YEC@Vyq@$tP@fmpL8Id%;09M~z3Lrq_3y%F?gvfYvQcpnigLqY&wq#}X*JweHjKQDh%53L8ak)CpqUF_GFq z1x!w)Zb_UW@5jWKz|as({d212#zdNkQ#+YNw<$@*2bR%j_4y@8Y89z|dY@=8Oy(3p z7oZOZ37YGed5}m{_n@HOi4Q58%>x-@DU|KJG&_sFqxVJCD#=ck$!M?up~or-H_b(lfxue=TMhS z9lT0%!#cM-#pztQ1nX6#skinj9KIlBt4Lm}Lg&s+p*A5xq{q9d#sGR?R|+Nfv>OvH zxIwwa;XyT^8fgTb3EJB%l?J)$;FnFMw8UB5#rjAWKUXbGrHUk8$23+OL6Fh%hl}2sjl*~pz2LbU!8hzS#hsH`q@F)U{)JyB(5vXQd z9(ZeeJf2Ud+_svo{`04*0VZqF#piW~$kXZc*En{JK&G)gGhg1BK`l_}r!%NYb_ky3 zO|Qqq;!)O`aY%laL1pp(;K%>fz5KJRop_saCMAdERh~)d@Q_}TNz>A8&zSmhX$-Q+ z#}k6V&$$OP>Bc;+9BP0MRw+7OHen*Gma71N2tG@gMZLp|+nhzoxecpmC)By`J19?P z(IQk~UN-f{r6!y5ahl*HLb3Y0RA)>xQXYzQWy#BOC>9>Qt8=IomRRQJP*J{OnVTQk zx%up&#zz_<_IPyVGaSIn13A>gqx?JzWPTIs0n=kb6HF4-@}VZwC003zAn{;qO%rNC z%DuE2Z_Za3Y^LN=Nnhoaa9Jk25;*U@%_xY&=tcuN}{FL)cmz75yN3l%idwLlcaczs-RZ4E7+|Z)EDn_v5 z05|4c_$rzcnIDZ$LPm|i(q$)2?T_a7!lMm596g=fi>l?0Ji0rUnaKJC+#QjB9`4S{ zujeinuau|kSUwHxdQy9!xFu}boqufDGz*jnwy-ww6=yD|HKp>-$|q$dLo(IjXZCsU zu^Xe%n8CiiQiBgd8AV1N^QDuay{5*gL-L!Zm~R%yjAm4rtwcRfD^mWPoLbf3ed+N3 z$t#*sM$SH#JFEinsaa@S{@fV)8+S_f<~O6BF+Z`+G2*tGy#Aalzi&oy*<2_Tg>8c2 z3)M`+8rxb|EmNCQF1~eF+MHTqjc`J9N+}4AV!vzkj81O9^@w_Bi_7xkL!(+!xgzq1 zh{z0=^_YCMIpsv#Yi514D}CJ>S44`nO8LU##BwG_anLAF%7hlwF56!0z`BmZGG6uN z5Kfg}+JbTiDA_~f9hX(mwY-jJ$)M+Xr4H45o~y#57afrAw4e^IUzf?^)>JB66;QJ0 zFfzb$SHA*khMfdc3#e&=;=Nw1tocGNDWKLDI8}tp-R@NrRmA7NoDXFCO?KPxRsdLo z=m!fa&lFI4s{W)M9MmRvj_x6-tl~oI7Oi}~K7^(fg5f9R{vv1Lo{A4qT4a5TDHXC`dE%_Nk0NPxR`qAtWuEGqs3?lY?ETTtfBJAZKagY z;8u;JHnhUjd`RwZMdO$~Jy+6u($$&@Y+l`&vL9^XvqDBb|M6V}M%L@Cp&!1K$6C`B ze?W0X8@jB_;U14NJtj2w;zPNIGm7fuh2K@=7Q9T0M^2S>hKy@VzjIBZ+fknhN^OGM zdNzp5H(ce+S-8RQFIbsP*L})z##+JdNu?0#)5UNBJQ8$twQ8V>maE%Q`e3Dr+-Ci4>ozWwZn4-6XUa9Fep^WavE2}E|Jg{J3wPQ6}MmC~vVZngz6(^C>` z4c^d#;2UzdMY(*`^yc zZ=oB5XACv2(e0cutLivwugZ|$cL5G{qnuC;EFMJQ>j?l6(g-^e-L zsaLEjh1Wg~$=%&C5WkR-J*c2*ec`H+iS-pjdvMUy6x-ym9+axnN2&DFdQgfE^VgFO z$%m1V4x6eKZ}*_|oNcQ6)N~^tU2N}!^x!EZY1kK?ds5!e@cQ7HE&!303*3Ay_gs#AdmoCpF1ZQL3sc3Qta|!|$yu3$My2v1JT&l=tztKa8JMOA-YT2zp6|h*K$`L!b%KWAacQ6NC=^yG-$m(*M z_Wx#3zQu!bN~mmH)r;CYBFVLVvKOstr^ZSKcbIBjT9D02xU;3xYbh0gQP0W#-kUNq zj|Lmf$@=0W6se%ck-U9!O>Zi~M`!l*rlvXdywPNd@jjM-LX2VYsm$z4g*o;BMt*Fm z+>{@w^-Cl)84A0i52md>^1(jT@lr(@)Da2Z_=Nf@k~L3N37-PDTOu$dgDpt39#zrG z&`}Mg_{9IanvCzOYVuHD>hAwgNwvzt;ZbZDkG}0oxt(nup&6<~5foSc_%eh7-Z8u9 z>q)?u{nF}39b@ZL%jx|nV?+Z|)IQ4k7ap9|pkl+*1=}8mq1dk~7pq1LcOW)1x~)?x zIe%1CS0*OjEywqR(1#Qg*Pk*n8Wa=9(hGqV@5t_mcE$*I&6WMhUsj)7wK2AF8}DsI zq9&Mke8cuI7MSwPb+4TAMBvUl@GEbdmz|RUpv`zAf;!hO2M0Eb2-Z4-WGY|KuYPY zqA^kHXnp{UuCMl6s^6fo%n%LXR$K_xG1UX9JZK9Fu0tC~8i#ux&7A{JruRUk*tz zgr@4)447JnkIYmB`%`-fu9;RBg7tN~MpJ4(k7wi^_sP(?bk5%X^JaJoSA4v)JwdzczK#COW7;gpi7jV|r8 zg#>IFPRnB19=5cxb>j#aS8vIgBWSvVMm~}*qBNijE~3Su=p7ePj-ImcU3FcY?Z-i1 zYqPX`T8LSC<1{7TgGN%jOnbC8N(Q5J;m8o9)K0T!B$c<;_7m(%n~jF`xDpg>T(ldj z>&9x&9qBougmCb z*n~xwQ?s$EoEX~>W^JO}zIa80KiWoOzRoi+Yd@@I*TJ%E0gZ(*XPX)m**Xl5o6lZO zevf)0Ss*{SoUTc+d&6lF3_KGZHQ)+*GDYQF-?Pg0dtd&31&wcG%bb%cns*@7v+0=z znMTP8BPj`D$>aI8@UBQ;-H!?z=!s3^s70tvqMmu&+9q*l;Ti0ZJU5Q|*oJLXNQp~q z<zak9R zE2%FwHbGHm;%#Fv=r_rmCSW46%W<>`mZD&-qJcZ)GZSd8Bhg%q(yPdV0=eU=5CvjO z;OkdWS%GQ=&$~QY?E%SaTNq*{e;iJ01h*VAit+>9ClZa7!V;- zyX_vVkCHi)sJLT&Sdl`y{bnaOZ|UJT#tCJ4<2erg>(H@(_atfqX`R+mq{w$CQOl-k zsPinhQ+056h#g$jn^a()lDJKhuBJhFyTzqf!%F>J&bXT1#HH6{YVKXcWg|68#r{xJ zd?fFfOijdMRV6&;JJ{zY(;B21eGQEs!I_pBFfm!NRbVK{zQ1RRH9 zI9Q>;2?r;CzlJ7*gA=c%i}1{MK4nsOEoNaZ1g9KW6w0PhbEijHC0;uP(~F8%T0&M% zp=MoFH=%J*rQDCZSdZ(oIL=^jd;n}kSQsU$kHs$e-4r^M#QMQm8o|a?HB=5w#dnDn zZz~T=ah+0hEv}=Uj)lO|HSIcT8_S6;{m}UQb(E#U(aOI6@H)B_yV8oTr>3wVF1#Lw z#BO=>_0&4lw0c3uet10=Gk43Q*Hc!G(pUB_OSS#knpdwEW!?>x;!Fy*x>YA9Q0?vV z!W*cWlRLBT?>Ep`t!L^d9~N&6*&{d5nE#KRQ2l2+p_)4(Kd|^ly59_U{p zez!jc&L4LJ=MT1(1)V=5ZzdmaHNN^5EDax)uiiqPJjc;9IBW9LEi?~r%)IYbx-D9< z(IeK%bGK3sUI>+Q8_mr6H`kN}LT!MKV1GK)dn7ETf6F&-qp==NCDsSBZpVU1oDT4? zF=Wks?pE^FzfzUwTSX!>@1POc`d(46;&ovzc3HI=8<>3ut#Y?#l_1s!Ng$H`IBQ;m zgive1F153sbQe7a1z2|%-HXdTcT>}DwjOX>pJP*pRs@?Awf&-5C%Dm-k9@26fBs=mQzTs*lcwF@7Go=hU4L)9$7s~6TwN^J%gloD7&JEVAk z3R+E2YLQkz5l2Ft|> zrE216W%duun*p<5wL`fT2&)HLByEt#Q^qHI#~> z-Fr^4cB;Tu<$K*Ezn)ER+uQY{RX17r*dG7NoX}awWH*Tmv(T|QA+t~roAH2}g{mKb z^0%c1+AQ$P0~F!vr!;P%wNt6d*?JIJ`&7u;n*Jw3(wc`ANGYe!qmx+Xy!9dSr#*2W zTFEQ4JdsUN%R9JxNxt|HWos+4GVsrb=wZ`yObuW;;SusD>wCK%^HgYKVBsS)I!Jb+ zlCHLs1TKG+I-8EZc>EvKL=QL|m<()2h?Usq^XV_1T3y1x1vF;}-{-~Qj08qVd>g~C z-mSu0jj`2<$7)!_zviik9~(vNT&W^zkI0;bl%Cl*Ugvo4Q8{cOrDkx4B4geV<&Wnb z^;>uwgLU80zC)26j-z4>E_XRh-Z$d)6dK87_1g(WtXpN0$-x>K6{R#d=Yn9!o z^L;&?o1JH%gCM;np_8vHq834B$uAdCr}mmovp$&m)OoSa>Hsi58TeoDB;(y;>T*P`Tmm6o zBfnXKoi*#_;HA`JxXR#5^=T-!+VrxIvLC^D)}Q>BY(KB4mk7K3k)7OlPZ-9$wOl3N z#Q#8Wa{10uDkxWIKJ}G5#oD6+Rciip-q~ha?<%a5F{VpZS~{1O4fYj2LAjAfSxuZH3gw(-8Y-Xe5|J*;fA)CN zkEoag>nC-E-NeUN)*as_Z~P!4-K+B3u64Cojr?TK9g$yR(J!xxGW#jMVp6mh<60OP zKWY-$&0Mg$SSJ)Wf@di8id$2M4Cb<%7kTfkqSjcnTvvrhT^uesR7LHZ{LH*XcD&T6 z51`;qzaf(kptO4$hV!pXg9AIiFPGDvrp`_E;Wd8SI48saHq|PaK2GO{{|zSNj;Cp= zxl@)tLmlnoBQAx%{TV8Aomwu}KSLMuHFg;_@&1Tbu&LaKCy%VX|!f zEVazwLNR{aYW%3cX8yrCN(~fM~qXC^(;BoALoVsGWeRKS#A^B3^Oz{!mA^et`Dt66T}3$lmagWkLfmbY_r5?$>8GCDj21`pDpyqS zv`w`2t{nFQMw=q?M=D{IxyKVr(wEmUhtzp3eQTfBlE+@4_9gX^8`P~G$z#fhOF_*s z(#%`2+Y$0#DF?ks57T1QyccrxN6qSGh_B=~FH%klBd1Kwk6E1`HD?9344ZAt9gAhg zDy;dxAp5MMS1w!z3M<>HN}!J7O$hcCe`7Q*l~RhOW#7H<7B&ylq~OAN8>#+xCsm7m+NR3+Wg8(bh(WR zq^+kDZWA9{*oYoNwi{`vSrxc*BMpo4tmITntMl#Xq* zSz)uSrD50&oYE?_<~<*pL+x{n?PS%3(H^;|pFQ zeCALP_ur_f5tZT3YlOR>t6*hTgw#b>$UGwmo`jY>RJFNiB%bm4W1ZGoCul20jo2~i?T7uTJCxuEu1512ldC7F~;nm zKG>7HbO&|g9QW>^628WK0K59ZK(7z5lG%qfOg^&WXL+S~cwC}5xV{)0!@5YLR5;cN z_u|dDux#3x)r;lJJFytGSbn{eb~&SMI*+6vN1f5OE)468wtZn(XSCIZjaO&1Ef2$f zt@@h65K3yT18l$l`^vS@K_bIxOr-boVxFsPH(YfzOG2Da9qfxqmgLRXyDo2qSc?-%rlZ1D-b5r$1XO!EU3 zd+1{m+H>??r9|)8i>ak5uxu~A6PFQ^1>3MOLldyt0UMzzaQD}gVOA)0=;)~$Tg@&F zQ<6@{uL{FD9lt3I>va6m7eaf@>G*kJSnhb7;wrIrhGoGIAC6LWD%MEh{7E(2I9&rw z1%$>?a^X78@Mkru#vf7U|7psGc~<;!@r|bu!{4}|2JKN}pixRSZYTy% z1Jr-ToM(3P=d$M4nFkIYr3cKshgf7ADLF^&v67p6jC%bSZJH_Tj!_XSx`JA`lOL9Y zYoVRy%6n?DjSJYSTCD~@s>Oy*gd@H~^n}=12Mz zFR_?&l0LzH=qpcA?g&;|Wd?z>!PSEK8keMS_G*ER^C_IYT43Y63TLkt%&(I*r?608 zCtLnRPeTvy{E3>_g=Czkkeu@rg0E+yGU0{5j|^OWAzgpwLIMkarUcWR9a#1YwRgcS z^q*hJpTl#a6?dy2TMzTuMs(e*FSi!D4ocbPH_8GfUy{Qpahh8ZjQfpp5;$f`UL;%Y zNHga*y3+hv9{r6@dMgo=A2}t@<0|)?CC27T`Q7i-E8|g>!2Uv%$6D&Lb}j@8)?(fn z>M3W}QETtq@T808%58N>%4oa~hZQeQs^L}tp-HdBA*lz?z)v}kso>MO8MVSfF`lk@ z0^X+z*(hsJ2zLLAv!I+Gq-1|MDEXZ(LCVo*sU%J{d_Qb|So{y2rSWEE;JdSQz%*Aa z+$mm*Rd_I~a7IQu`l65hGWYHGrBgw*Iba9F(Wl|`krZ`nH_Z>J;B|EwUTHY@Q=kCvd%W5$&%C4#N?a?gen`nIkT94^^~wAEJZ^ z>s6ha%fz9eNMNe}2PPzy9FZp;fCl<3PvoSpV(zow1FN=hq(!q?6ERghD@DGT2|fB) zzEZ9m^Tim15}S%*T*{gXR<2{4VuR?*^3JBB7RocWP?X{FOf%65!)0$X5n*Cm>(d1y z1^aXZ1;Q^=T8N~ippytz3N{7753xSbwS|}zPF$Mf(BTsUb~7<2AqDS*U9Sp@u}K0E zvV0`mTs7m|c(ZY#Xo6P;&M6eFU3J@Jc9HOhwGnokYNMOmc%o3WG*`*2B9T`V%7{=R zE*vY7tj&0IE?Xrh6^X$p;-wxjz0>9%5&nfGEyb`Ss@&vc<|+*p;|Z7B8n_9D$=-_LC?=9n)8k~)Y|6W2i(h!V4h z(sGU(JfAUDufNVi6?mnim}o|`S&J7}Jth5}L~?}+xy4gl`%EPu)@I`--i?5Br7AKq zEONSON7kvx*zib~9l4wvYb806en`FZAOd$fH``XUDQLH591ua>%hOd;d90J@hK?@m zEZ8Kvv$H79orP@iNgzBN@R=Lr3CSC2jy_YFC_mYZOvyNy`fzi=mQcQ=4(};nDE?qk0ENH5gZ+q(s~)SU%ZXG;x23g5T~f za#PMrD^Y4nU{W7(S5$@Gh{7+X0q@_1kJd7}nwxQjh$P=$V%R3)7LBoYqu9vp8X0b2 zZqvwct_){MLhqiT?Sj(%5_8y`MjhsovL=fSr48 zb|bi<3a|-p!!V5co$~u(Vko{q)?>K%CqnTfphI>BI*$-OQ>ijX{KAr6b&=@c48$cD ziC2(t#7NN>A|ywmgLleTM~W)&`jSziSp&Ixew66=zjTe3z{1g@W7;F!DOg~_b1rIN z^k@G@B90V8Wpz#^Uh{BF*A&R_+ zG-nOp@WKHW3qtxsujL$2J=I1n#~5)N$$6(COm&Id6dtAni6;>Oi z>LWERGsXIc!bI4q@#-hY98}3_=33nI@`u>iG`V?{h>$n-7LoG!SaAw((PPmS%3EK< z3KP7=nvaaWRJ;?vE(){X^y!<8xIOCvA73ga^>6+|gkg*{3?sFrFp6>Q9cdVSL&A3> ze32aX46HA6gGiP0o`Dicl*^tG9lTRLhA}pT_BQ#=Gq5z4%BW=`x8e!Jc0#NPaQ>ZA zb|J1Ouuk|>gfm0Jd+oGN{C|hSwpRE9&#f2#iVAFeUHldqSif0}O?1`VBI7^8h>Z{Q z|459Cl&|j=r;_S!7e?A&g)!k`VSI*s_aW=oKE_mdNPhpZ7+G-yIR2#r(2vGZfWrM< z7~kUl7@!uw_um2d7Y|_C;~c=x34f1!#&tv56S)2W;Iw?tX@3M<0N}JIb@-|v;*^cN z1Brja{m+130H*=J0)7J&0-VI5VJGbdJMHhF3#OGHZ5G9Wp`VC(rWBuwe&{CtS@O^< zZ*JiBPsKHnd8=K9kqG4DMZ#!>>q>-EL&DF?a|gsX0nZ_^(#)uF8%9n@;4?R>-%%5*_d`a`G#&ERx&m;#{-L z(K_>uUt`j(s003%X}8@xaT0Fu5%FQ1^3wh-CM?_C=6j1!*Ixs}bo<~K686)35 zD%!-vA~p^XANb{{aGUMBpf+6r-2puT7N9qvFQ7kQAYd@yLcnmq$Oi+hj)|MoT6j4V zy9gidlK{y8=f}4xrd(I%9VV09-fz6AcBE6UG#MA+J(e0+A&gCcYQVn%2LNBJ2*gKv zXGNOna(=A0fB847z%oGUYGHH$3&pzFwKlWR-(64gqbNv`n;dV_|bwq zKz^WWlJ^muoK6)+3#9WvyCnp+r+EJw;jMwF@y}`HuE4NN?=QKsN2XWEaW&$C=KltT z!?@kJ{}}MHPNe>sP5+T=%e*g}p9Cg$^*$J5MhCv{X-2 zr;SE@XxiA=-V<)SWzt{#SN*LlHa4&_$`@<42yJx?62t=H0M3v3h(l;aU* zG7&&-`RZ=bQa&8xTab|kL^{CXX9n&w0a^0<6yIg?u~?r-360N2Tn?a#d?VI3c+#9T zUZw82W&8t&jCH`}g2c(vkNZ48K7fA?`ORA3?QivTSF#eu1DzWy$= zm3%qD*R`Z1gse60+W@SI6DQqrOW&Jso_2Fs(QRc`qVImQgM2E{H`%-(5JkQM)9e^% zBYXjuSt`Hr`Ep}AA%o6DR*Rgqb)Yjo{58U?zlmna}cfA!r2g(TFKpXFz?Xm@0A~Td vcf3aCJKiovN8I!Vj09W@xCih6;3>c=KmhPA0I#N7x7~<~W)`e^-fR3H4vzVO diff --git a/rust/crates/polkavm-host-runtime-assets/assets/polkavm-wasm-translated.js b/rust/crates/polkavm-host-runtime-assets/assets/polkavm-wasm-translated.js index e3256d3c..c1a8b8ed 100644 --- a/rust/crates/polkavm-host-runtime-assets/assets/polkavm-wasm-translated.js +++ b/rust/crates/polkavm-host-runtime-assets/assets/polkavm-wasm-translated.js @@ -12,6 +12,26 @@ const CORE_STATUS_INVALID = -3; const CORE_STATUS_DENIED = -5; const CORE_STATUS_LIMIT = -6; + // Also serve modules compiled without arithmetic lowering. Views are reused; + // the synchronous pure operation cannot overlap another instance's call. + const floatBits = new Uint32Array(2); + const floatValues = new Float32Array(floatBits.buffer); + + function float32Arithmetic(name, a, b) { + const multiply = name === "host_f32_mul"; + if ((a & 0x7fffffff) > 0x7f800000 || (b & 0x7fffffff) > 0x7f800000) { + const bits = (a & 0x7fffffff) > 0x7f800000 ? a : b; + return ((multiply ? bits : bits & 0x7fffffff) | 0x00400000) >>> 0; + } + floatBits[0] = a; + floatBits[1] = b; + floatValues[0] = multiply + ? floatValues[0] * floatValues[1] + : floatValues[0] + floatValues[1]; + const result = floatBits[0]; + return (result & 0x7fffffff) > 0x7f800000 ? 0x7fc00000 : result; + } + const INPUT_EVENT_BYTES = 8; const MOTION_SAMPLE_BYTES = 48; const MOTION_STATUS_UNAVAILABLE = 0; @@ -2085,6 +2105,14 @@ `translated PolkaVM called unknown import ${importIndex}`, ); } + if (name === "host_f32_add" || name === "host_f32_mul") { + this.#setReg( + 7, + float32Arithmetic(name, this.#u32(this.#reg(7)), this.#u32(this.#reg(8))), + ); + status = this.pvm.pvm_resume(); + continue; + } this.hostcalls--; const yielded = this.coreVm ? this.#handleCoreVmCall(name) diff --git a/rust/crates/polkavm-host-runtime-assets/assets/polkavm-worker.js b/rust/crates/polkavm-host-runtime-assets/assets/polkavm-worker.js index c64e27fc..74eac178 100644 --- a/rust/crates/polkavm-host-runtime-assets/assets/polkavm-worker.js +++ b/rust/crates/polkavm-host-runtime-assets/assets/polkavm-worker.js @@ -12,6 +12,26 @@ const CORE_STATUS_INVALID = -3; const CORE_STATUS_DENIED = -5; const CORE_STATUS_LIMIT = -6; + // Also serve modules compiled without arithmetic lowering. Views are reused; + // the synchronous pure operation cannot overlap another instance's call. + const floatBits = new Uint32Array(2); + const floatValues = new Float32Array(floatBits.buffer); + + function float32Arithmetic(name, a, b) { + const multiply = name === "host_f32_mul"; + if ((a & 0x7fffffff) > 0x7f800000 || (b & 0x7fffffff) > 0x7f800000) { + const bits = (a & 0x7fffffff) > 0x7f800000 ? a : b; + return ((multiply ? bits : bits & 0x7fffffff) | 0x00400000) >>> 0; + } + floatBits[0] = a; + floatBits[1] = b; + floatValues[0] = multiply + ? floatValues[0] * floatValues[1] + : floatValues[0] + floatValues[1]; + const result = floatBits[0]; + return (result & 0x7fffffff) > 0x7f800000 ? 0x7fc00000 : result; + } + const INPUT_EVENT_BYTES = 8; const MOTION_SAMPLE_BYTES = 48; const MOTION_STATUS_UNAVAILABLE = 0; @@ -2085,6 +2105,14 @@ `translated PolkaVM called unknown import ${importIndex}`, ); } + if (name === "host_f32_add" || name === "host_f32_mul") { + this.#setReg( + 7, + float32Arithmetic(name, this.#u32(this.#reg(7)), this.#u32(this.#reg(8))), + ); + status = this.pvm.pvm_resume(); + continue; + } this.hostcalls--; const yielded = this.coreVm ? this.#handleCoreVmCall(name) diff --git a/rust/crates/polkavm-host-runtime-assets/src/lib.rs b/rust/crates/polkavm-host-runtime-assets/src/lib.rs index afd40ef8..c1e0a9b7 100644 --- a/rust/crates/polkavm-host-runtime-assets/src/lib.rs +++ b/rust/crates/polkavm-host-runtime-assets/src/lib.rs @@ -32,13 +32,13 @@ const ASSETS: [BrowserAsset; 15] = [ path: "SHA256SUMS", content_type: "text/plain", bytes: include_bytes!("../assets/SHA256SUMS"), - sha256: "547c46d8bcb83d5f9b1401bf1360ab86370eb950549125bed0256101efc0a1b6", + sha256: "28317c6476c7208eb72c207993eb9a1b55d02b26d1080771b5bec7517a522e70", }, BrowserAsset { path: "THIRD_PARTY_LICENSES.txt", content_type: "text/plain", bytes: include_bytes!("../assets/THIRD_PARTY_LICENSES.txt"), - sha256: "060bcb670693a049cd0eba3483b8265d73ec1266f04dfcd7e44a9c9f599fbbeb", + sha256: "3743334b17709c9a6295e708e637015bc1c1c8def5845865f25b42385fbdf0e7", }, BrowserAsset { path: "THIRD_PARTY_NOTICES.md", @@ -62,7 +62,7 @@ const ASSETS: [BrowserAsset; 15] = [ path: "polkavm-browser-runtime.wasm", content_type: "application/wasm", bytes: include_bytes!("../assets/polkavm-browser-runtime.wasm"), - sha256: "96a71c73bb3bff63209c4ca0355175fbe32ee5561296b1fe18be244914503097", + sha256: "820a2c074f9c66593f92b95ef10277cbdad77156fd85b63ef26e92af7cd37340", }, BrowserAsset { path: "polkavm-computer.js", @@ -86,7 +86,7 @@ const ASSETS: [BrowserAsset; 15] = [ path: "polkavm-wasm-translated.js", content_type: "text/javascript", bytes: include_bytes!("../assets/polkavm-wasm-translated.js"), - sha256: "0e180d6044be0fde18fbcfda4e7ba26e669a98cf6d92471f77310c5360973e0b", + sha256: "470140632156f45b9c671582b0daaf8bbc1f5f1ea1bc4365355bbaec145be7f6", }, BrowserAsset { path: "polkavm-wasm-worker-entry.js", @@ -98,7 +98,7 @@ const ASSETS: [BrowserAsset; 15] = [ path: "polkavm-worker.js", content_type: "text/javascript", bytes: include_bytes!("../assets/polkavm-worker.js"), - sha256: "0fbb81d3a5705bde006bdbe24f1c5256cbac47f02dc623224a5b1c07627fb32c", + sha256: "593d88c72873a9eb2bd9fde2059928cacbbf02165c29dc27620ba91fb93f5855", }, BrowserAsset { path: "session.d.ts", diff --git a/rust/crates/polkavm-host-runtime/Cargo.toml b/rust/crates/polkavm-host-runtime/Cargo.toml index 54d5a61b..894ce208 100644 --- a/rust/crates/polkavm-host-runtime/Cargo.toml +++ b/rust/crates/polkavm-host-runtime/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "polkavm-host-runtime" -version = "0.3.2-rc.6" +version = "0.3.2-rc.7" edition = "2021" description = "Host-neutral App manifest v2 PolkaVM runtime and browser execution wrapper" license = "MPL-2.0" @@ -21,14 +21,14 @@ native-gpu = ["dep:pollster", "dep:wgpu"] anyhow = "1" log = "0.4" polkavm = { git = "https://github.com/paritytech/polkavm.git", rev = "642fa95a6f1df85612bdbd0a7e4353a2aa4dc9b5", version = "=0.37.0", features = ["generic-sandbox"] } -polkavm-gpu-wire = { version = "0.3.2-rc.6", path = "../polkavm-gpu-wire", features = ["tri2d-validation"] } -polkavm-motion-wire = { version = "0.3.2-rc.6", path = "../polkavm-motion-wire" } -polkavm-ui-wire = { version = "0.3.2-rc.6", path = "../polkavm-ui-wire" } +polkavm-gpu-wire = { version = "0.3.2-rc.7", path = "../polkavm-gpu-wire", features = ["tri2d-validation"] } +polkavm-motion-wire = { version = "0.3.2-rc.7", path = "../polkavm-motion-wire" } +polkavm-ui-wire = { version = "0.3.2-rc.7", path = "../polkavm-ui-wire" } serde = { version = "1", features = ["derive"] } serde_json = "1" [target.'cfg(target_arch = "wasm32")'.dependencies] -polkavm-wasm-compiler = { version = "0.3.2-rc.6", path = "../polkavm-wasm-compiler" } +polkavm-wasm-compiler = { version = "0.3.2-rc.7", path = "../polkavm-wasm-compiler" } [target.'cfg(not(target_arch = "wasm32"))'.dependencies] # getrandom 0.3 is pinned for the browser-host build toolchain; 0.4 @@ -41,7 +41,7 @@ uniffi = { workspace = true, optional = true } [dev-dependencies] -polkavm-wasm-compiler = { version = "0.3.2-rc.6", path = "../polkavm-wasm-compiler" } +polkavm-wasm-compiler = { version = "0.3.2-rc.7", path = "../polkavm-wasm-compiler" } wasmi = "0.40" polkavm-common = { git = "https://github.com/paritytech/polkavm.git", rev = "642fa95a6f1df85612bdbd0a7e4353a2aa4dc9b5", version = "=0.37.0" } wasmparser = "0.240" diff --git a/rust/crates/polkavm-host-runtime/src/lib.rs b/rust/crates/polkavm-host-runtime/src/lib.rs index af8a5f83..6f2b9cb9 100644 --- a/rust/crates/polkavm-host-runtime/src/lib.rs +++ b/rust/crates/polkavm-host-runtime/src/lib.rs @@ -280,6 +280,38 @@ pub(crate) fn validate_blob(blob: &ProgramBlob) -> Result<()> { Ok(()) } +// Raw-bit arithmetic avoids the platform-dependent NaN propagation of native +// floating-point instructions. These policies match the guest soft-float ABI. +fn host_f32_add(a: u32, b: u32) -> u32 { + let a_abs = a & 0x7fff_ffff; + let b_abs = b & 0x7fff_ffff; + if a_abs > 0x7f80_0000 { + return a_abs | 0x0040_0000; + } + if b_abs > 0x7f80_0000 { + return b_abs | 0x0040_0000; + } + if a_abs == 0x7f80_0000 && b_abs == 0x7f80_0000 && a != b { + return 0x7fc0_0000; + } + (f32::from_bits(a) + f32::from_bits(b)).to_bits() +} + +fn host_f32_mul(a: u32, b: u32) -> u32 { + let a_abs = a & 0x7fff_ffff; + let b_abs = b & 0x7fff_ffff; + if a_abs > 0x7f80_0000 { + return a | 0x0040_0000; + } + if b_abs > 0x7f80_0000 { + return b | 0x0040_0000; + } + if (a_abs == 0x7f80_0000 && b_abs == 0) || (b_abs == 0x7f80_0000 && a_abs == 0) { + return 0x7fc0_0000; + } + (f32::from_bits(a) * f32::from_bits(b)).to_bits() +} + /// Fixed input record discriminants in the guest ABI. #[derive(Clone, Copy, Debug, Eq, PartialEq)] #[repr(u8)] @@ -1112,6 +1144,25 @@ impl Runtime { Module::from_blob(&engine, &module_config, blob).context("compile PolkaVM module")?; let mut linker: Linker = Linker::new(); + // Pure, fixed-cost arithmetic is bounded by guest gas, not host IO + // quotas. Do not charge host-call counts or bytes for these imports. + linker + .define_typed( + "host_f32_add", + |_: polkavm::Caller<'_, HostState>, a: u32, b: u32| -> Result { + Ok(host_f32_add(a, b)) + }, + ) + .context("define host_f32_add")?; + linker + .define_typed( + "host_f32_mul", + |_: polkavm::Caller<'_, HostState>, a: u32, b: u32| -> Result { + Ok(host_f32_mul(a, b)) + }, + ) + .context("define host_f32_mul")?; + linker .define_typed( "host_present_frame", @@ -2833,6 +2884,175 @@ mod tests { use polkavm_common::program::{asm, InstructionSetKind}; use polkavm_common::writer::ProgramBlobBuilder; + fn f32_backends() -> impl Iterator { + [ + BackendKind::Interpreter, + #[cfg(not(target_arch = "wasm32"))] + BackendKind::Compiler, + ] + .into_iter() + } + + #[test] + fn f32_imports_preserve_soft_float_bits_without_io_budget() { + // Import index, left bits, right bits, expected result bits. Expected + // values are explicit so platform NaN propagation cannot be the oracle. + let cases: &[(u32, u32, u32, u32)] = &[ + (0, 0x3f80_0000, 0x4000_0000, 0x4040_0000), + (0, 0x0000_0000, 0x8000_0000, 0x0000_0000), + (0, 0x8000_0000, 0x0000_0000, 0x0000_0000), + (0, 0x8000_0000, 0x8000_0000, 0x8000_0000), + (0, 0x3f80_0000, 0xbf80_0000, 0x0000_0000), + // Half an ULP: even rounds down; odd rounds up. + (0, 0x3f80_0000, 0x3380_0000, 0x3f80_0000), + (0, 0x3f80_0001, 0x3380_0000, 0x3f80_0002), + (0, 0x0000_0001, 0x0000_0001, 0x0000_0002), + (0, 0x007f_ffff, 0x0000_0001, 0x0080_0000), + (0, 0x0080_0000, 0x8000_0001, 0x007f_ffff), + (0, 0x8000_0001, 0x8000_0001, 0x8000_0002), + (0, 0x7f7f_ffff, 0x7f7f_ffff, 0x7f80_0000), + (0, 0xff7f_ffff, 0xff7f_ffff, 0xff80_0000), + (0, 0x7f80_0000, 0x7f80_0000, 0x7f80_0000), + (0, 0xff80_0000, 0xff80_0000, 0xff80_0000), + (0, 0x7f80_0000, 0xff80_0000, 0x7fc0_0000), + (0, 0xff80_0000, 0x7f80_0000, 0x7fc0_0000), + (0, 0x3f80_0000, 0xff80_0000, 0xff80_0000), + // Add selects the first NaN and clears its sign. + (0, 0xff81_2345, 0x7fc5_4321, 0x7fc1_2345), + (0, 0x7fc5_4321, 0xff81_2345, 0x7fc5_4321), + (0, 0x3f80_0000, 0xff81_2345, 0x7fc1_2345), + (0, 0xffc5_4321, 0x7f81_2345, 0x7fc5_4321), + (0, 0x7f80_0000, 0xffc5_4321, 0x7fc5_4321), + // Subtraction is add with the right operand's sign flipped. + (0, 0x4000_0000, 0x3f80_0000 ^ 0x8000_0000, 0x3f80_0000), + (0, 0x3f80_0000, 0x7f81_2345 ^ 0x8000_0000, 0x7fc1_2345), + (1, 0x3fc0_0000, 0x4000_0000, 0x4040_0000), + (1, 0x0000_0000, 0xbf80_0000, 0x8000_0000), + (1, 0x8000_0000, 0xbf80_0000, 0x0000_0000), + (1, 0x8000_0000, 0x3f80_0000, 0x8000_0000), + (1, 0x0080_0000, 0x3f00_0000, 0x0040_0000), + (1, 0x0000_0001, 0x3f00_0000, 0x0000_0000), + (1, 0x8000_0001, 0x3f00_0000, 0x8000_0000), + (1, 0x0000_0003, 0x3f00_0000, 0x0000_0002), + (1, 0x0000_0005, 0x3f00_0000, 0x0000_0002), + (1, 0x0080_0000, 0x3f7f_ffff, 0x0080_0000), + (1, 0x7f7f_ffff, 0x4000_0000, 0x7f80_0000), + (1, 0xff7f_ffff, 0x4000_0000, 0xff80_0000), + (1, 0x7f80_0000, 0xbf80_0000, 0xff80_0000), + (1, 0xff80_0000, 0xbf80_0000, 0x7f80_0000), + (1, 0x7f80_0000, 0xff80_0000, 0xff80_0000), + (1, 0x7f80_0000, 0x0000_0000, 0x7fc0_0000), + (1, 0xff80_0000, 0x8000_0000, 0x7fc0_0000), + (1, 0x0000_0000, 0xff80_0000, 0x7fc0_0000), + (1, 0x8000_0000, 0x7f80_0000, 0x7fc0_0000), + // Multiply selects the first NaN but preserves its sign. + (1, 0xff81_2345, 0x7fc5_4321, 0xffc1_2345), + (1, 0x7fc5_4321, 0xff81_2345, 0x7fc5_4321), + (1, 0x3f80_0000, 0xff81_2345, 0xffc1_2345), + (1, 0xffc5_4321, 0x7f81_2345, 0xffc5_4321), + (1, 0x0000_0000, 0xffc5_4321, 0xffc5_4321), + ]; + let output_bytes = (cases.len() * 4) as u32; + let output = MemoryMapBuilder::new(64 * 1024) + .rw_data_size(output_bytes) + .build() + .unwrap() + .rw_data_address(); + let mut builder = ProgramBlobBuilder::new(InstructionSetKind::Latest32); + builder.set_rw_data_size(output_bytes); + builder.add_import(b"host_f32_add"); + builder.add_import(b"host_f32_mul"); + builder.add_export_by_basic_block(0, b"init"); + builder.add_export_by_basic_block(0, b"update"); + let mut code = Vec::new(); + for (index, &(import, a, b, _)) in cases.iter().enumerate() { + code.extend([ + asm::load_imm(Reg::A0, a as i32), + asm::load_imm(Reg::A1, b as i32), + asm::ecalli(import as i32), + asm::store_u32(Reg::A0, (output + index as u32 * 4) as i32), + ]); + } + code.push(asm::ret()); + builder.set_code(&code, &[]); + let program = builder.into_vec().unwrap(); + for backend in f32_backends() { + let mut runtime = Runtime::new_with_backend( + &program, + HashMap::new(), + PresentationProfile::Framebuffer, + false, + 100_000, + backend, + ) + .unwrap(); + // Fresh HostState has no IO allowance at all. Exercise the real + // registered imports rather than the arithmetic helpers directly. + runtime.instance.set_gas(100_000); + runtime + .instance + .call_typed_and_get_result::<(), ()>(&mut runtime.state, "init", ()) + .unwrap(); + let results = runtime.instance.read_memory(output, output_bytes).unwrap(); + for (index, &(_, a, b, expected)) in cases.iter().enumerate() { + let actual = + u32::from_le_bytes(results[index * 4..index * 4 + 4].try_into().unwrap()); + assert_eq!( + actual, expected, + "{backend:?}, case {index}: {a:08x}, {b:08x}" + ); + } + assert_eq!(runtime.state.hostcalls_remaining, 0); + assert_eq!(runtime.state.hostcall_bytes_remaining, 0); + assert!(runtime.instance.gas() < 100_000); + assert!(runtime.state.charge_hostcall(0).is_err()); + assert!(runtime.state.charge_hostcall_bytes(1).is_err()); + } + } + + #[test] + fn f32_imports_remain_gas_bounded_without_io_budget() { + let mut builder = ProgramBlobBuilder::new(InstructionSetKind::Latest32); + builder.add_import(b"host_f32_add"); + builder.add_import(b"host_f32_mul"); + builder.add_export_by_basic_block(0, b"init"); + builder.add_export_by_basic_block(0, b"update"); + builder.set_code( + &[ + asm::load_imm(Reg::A0, 0), + asm::load_imm(Reg::A1, 0), + asm::ecalli(0), + asm::ecalli(1), + asm::jump(0), + ], + &[], + ); + let program = builder.into_vec().unwrap(); + for backend in f32_backends() { + let mut runtime = Runtime::new_with_backend( + &program, + HashMap::new(), + PresentationProfile::Framebuffer, + false, + 100, + backend, + ) + .unwrap(); + runtime.instance.set_gas(100); + let result = runtime.instance.call_typed_and_get_result::<(), ()>( + &mut runtime.state, + "init", + (), + ); + assert!( + matches!(result, Err(CallError::NotEnoughGas)), + "{backend:?}: {result:?}" + ); + assert_eq!(runtime.state.hostcalls_remaining, 0); + assert_eq!(runtime.state.hostcall_bytes_remaining, 0); + } + } + fn resident_stack_program(stack_bytes: u32, touch_guard: bool) -> Vec { let mut builder = ProgramBlobBuilder::new(InstructionSetKind::Latest32); builder.set_stack_size(stack_bytes); diff --git a/rust/crates/polkavm-motion-wire/Cargo.toml b/rust/crates/polkavm-motion-wire/Cargo.toml index a3cc1a10..d07bdaed 100644 --- a/rust/crates/polkavm-motion-wire/Cargo.toml +++ b/rust/crates/polkavm-motion-wire/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "polkavm-motion-wire" -version = "0.3.2-rc.6" +version = "0.3.2-rc.7" edition = "2021" description = "Versioned host-neutral motion sample wire protocol for PolkaVM applications" license = "MPL-2.0" diff --git a/rust/crates/polkavm-ui-wire/Cargo.toml b/rust/crates/polkavm-ui-wire/Cargo.toml index 97a0bf33..e2bde781 100644 --- a/rust/crates/polkavm-ui-wire/Cargo.toml +++ b/rust/crates/polkavm-ui-wire/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "polkavm-ui-wire" -version = "0.3.2-rc.6" +version = "0.3.2-rc.7" edition = "2021" description = "Versioned host-neutral UI output wire protocol for PolkaVM applications" license = "MPL-2.0" diff --git a/rust/crates/polkavm-wasm-compiler/Cargo.toml b/rust/crates/polkavm-wasm-compiler/Cargo.toml index 09272d21..fde34bc3 100644 --- a/rust/crates/polkavm-wasm-compiler/Cargo.toml +++ b/rust/crates/polkavm-wasm-compiler/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "polkavm-wasm-compiler" -version = "0.3.2-rc.6" +version = "0.3.2-rc.7" edition = "2021" description = "Host-independent PolkaVM bytecode to WebAssembly compiler" license = "MPL-2.0" diff --git a/rust/crates/polkavm-wasm-compiler/src/lib.rs b/rust/crates/polkavm-wasm-compiler/src/lib.rs index 3d74b87f..dd8546c0 100644 --- a/rust/crates/polkavm-wasm-compiler/src/lib.rs +++ b/rust/crates/polkavm-wasm-compiler/src/lib.rs @@ -5,7 +5,9 @@ //! Host-independent PolkaVM-to-WebAssembly compilation. //! //! Callers supply resource policy through [`Limits`]. This crate emits modules; -//! it does not execute guest code, implement hostcalls, or manage browser workers. +//! it does not execute guest code or manage browser workers. The reserved pure +//! arithmetic imports `host_f32_add` and `host_f32_mul` lower to Wasm arithmetic; +//! all other hostcalls return to the embedding Host. //! //! # Output ABI //! @@ -187,6 +189,17 @@ fn translate_with_part_limit( } let metered_targets = collect_metered_targets(&instructions); + let float_imports: Vec<_> = blob + .imports() + .into_iter() + .map(|symbol| { + symbol.and_then(|symbol| match symbol.as_bytes() { + b"host_f32_add" => Some(FloatOperation::Add), + b"host_f32_mul" => Some(FloatOperation::Mul), + _ => None, + }) + }) + .collect(); let layout = build_layout(&blob, limits.max_heap_bytes)?; let targets = collect_block_targets(&blob, &instructions)?; let (blocks, block_by_pc) = build_blocks(&instructions, &targets)?; @@ -349,6 +362,7 @@ fn translate_with_part_limit( metered_targets: &metered_targets, bswap64_function: 2, is_64_bit: blob.is_64_bit(), + float_imports: &float_imports, indirect_function: 3, return_function: 4, physical_address_function: 5, @@ -701,6 +715,12 @@ fn collect_metered_targets(instructions: &[ParsedInstruction]) -> Vec { targets } +#[derive(Clone, Copy)] +enum FloatOperation { + Add, + Mul, +} + #[derive(Clone, Copy)] struct EmitContext<'a> { layout: Layout, @@ -713,6 +733,7 @@ struct EmitContext<'a> { metered_targets: &'a [u32], bswap64_function: u32, is_64_bit: bool, + float_imports: &'a [Option], indirect_function: u32, return_function: u32, physical_address_function: u32, @@ -969,7 +990,7 @@ fn emit_block_group( f.instruction(&W::GlobalGet(GLOBAL_PC)); f.instruction(&W::LocalSet(LOCAL_ADDR)); emit_switch(&mut f, blocks.len(), LOCAL_ADDR, BLOCKS_PER_FUNCTION); - for block in blocks { + for (block_index, block) in blocks.iter().enumerate() { f.instruction(&W::End); if context .metered_targets @@ -986,7 +1007,24 @@ fn emit_block_group( } } if !terminated { - emit_block_target(context, &mut f, block.last().unwrap().next_offset.0)?; + let last = block.last().unwrap(); + // Real hostcalls terminate above. Only lowered arithmetic ECALLs + // can continue into the adjacent case without re-entering this + // function's dispatcher. Keep its PC and gas-check entry intact. + if matches!(last.kind, PvmInstruction::ecalli(_)) + && blocks + .get(block_index + 1) + .is_some_and(|next| next[0].offset == last.next_offset) + { + let target = context + .block_by_pc + .get(last.next_offset.0) + .ok_or_else(|| anyhow!("arithmetic continuation is not a block"))?; + f.instruction(&W::I32Const(target as i32)); + f.instruction(&W::GlobalSet(GLOBAL_PC)); + } else { + emit_block_target(context, &mut f, last.next_offset.0)?; + } } } f.instruction(&W::End); @@ -1593,6 +1631,10 @@ fn emit_instruction( return Ok(true); } ecalli(index) => { + if let Some(Some(operation)) = context.float_imports.get(index as u32 as usize) { + emit_float32(f, *operation); + return Ok(false); + } f.instruction(&W::I32Const(index)); f.instruction(&W::GlobalSet(GLOBAL_ECALL)); let next = context @@ -2000,6 +2042,57 @@ fn emit_instruction( Ok(false) } +// These imports have fixed, pure ABI semantics. Preserve their specified NaN +// payload/sign selection explicitly: Wasm's arithmetic NaN payload is otherwise +// engine-dependent. Other guest registers and memory remain untouched. +fn emit_float32(f: &mut Function, operation: FloatOperation) { + // A non-NaN result needs no operand repair. Read the original register bits + // only on the NaN path, before writing A0, so native NaN canonicalization + // cannot lose the selected operand's payload or sign. + for reg in [Reg::A0, Reg::A1] { + f.instruction(&W::GlobalGet(reg.to_u32())); + f.instruction(&W::I32WrapI64); + f.instruction(&W::F32ReinterpretI32); + } + f.instruction(&match operation { + FloatOperation::Add => W::F32Add, + FloatOperation::Mul => W::F32Mul, + }); + f.instruction(&W::I32ReinterpretF32); + f.instruction(&W::LocalTee(LOCAL_ADDR)); + f.instruction(&W::I32Const(0x7fffffff)); + f.instruction(&W::I32And); + f.instruction(&W::I32Const(0x7f800000)); + f.instruction(&W::I32GtU); + f.instruction(&W::If(BlockType::Result(ValType::I32))); + for reg in [Reg::A0, Reg::A1] { + f.instruction(&W::GlobalGet(reg.to_u32())); + f.instruction(&W::I32WrapI64); + f.instruction(&W::LocalTee(LOCAL_PHYS)); + f.instruction(&W::I32Const(0x7fffffff)); + f.instruction(&W::I32And); + f.instruction(&W::I32Const(0x7f800000)); + f.instruction(&W::I32GtU); + f.instruction(&W::If(BlockType::Result(ValType::I32))); + f.instruction(&W::LocalGet(LOCAL_PHYS)); + if matches!(operation, FloatOperation::Add) { + f.instruction(&W::I32Const(0x7fffffff)); + f.instruction(&W::I32And); + } + f.instruction(&W::I32Const(0x00400000)); + f.instruction(&W::I32Or); + f.instruction(&W::Else); + } + f.instruction(&W::I32Const(0x7fc00000)); + f.instruction(&W::End); + f.instruction(&W::End); + f.instruction(&W::Else); + f.instruction(&W::LocalGet(LOCAL_ADDR)); + f.instruction(&W::End); + f.instruction(&W::I64ExtendI32U); + f.instruction(&W::GlobalSet(Reg::A0.to_u32())); +} + fn emit_memset(context: &EmitContext<'_>, f: &mut Function, pc: u32) { emit_reg(f, Reg::A0.raw()); f.instruction(&W::I32WrapI64); @@ -3046,6 +3139,194 @@ mod tests { } } + #[test] + fn float_intrinsics_preserve_bits_and_other_registers() { + let add: [(u32, u32, u32); 14] = [ + (0x3f800000, 0x33800000, 0x3f800000), // halfway, even down + (0x3f800001, 0x33800000, 0x3f800002), // halfway, even up + (0x00800000, 0x80000001, 0x007fffff), + (0x00000001, 0x00000001, 0x00000002), + (0x7f7fffff, 0x7f7fffff, 0x7f800000), + (0x3f800000, 0xbf800000, 0x00000000), + (0x80000000, 0x80000000, 0x80000000), + (0x80000000, 0x00000000, 0x00000000), + (0xff800123, 0x7fc32100, 0x7fc00123), + (0x3f800000, 0xffc01234, 0x7fc01234), + (0x7f800000, 0xff800000, 0x7fc00000), + (0x7f800000, 0x3f800000, 0x7f800000), + (0xff800000, 0xff800000, 0xff800000), + (0x7fc32100, 0xff800123, 0x7fc32100), + ]; + let mul: [(u32, u32, u32); 14] = [ + (0x40000000, 0x40400000, 0x40c00000), + (0x80000000, 0x40400000, 0x80000000), + (0x80000000, 0xc0400000, 0x00000000), + (0x00800000, 0x3f000000, 0x00400000), + (0x00000001, 0x3f000000, 0x00000000), + (0x00000003, 0x3f000000, 0x00000002), + (0x80000001, 0x3f000000, 0x80000000), + (0x7f7fffff, 0x40000000, 0x7f800000), + (0xff800123, 0x7fc32100, 0xffc00123), + (0x3f800000, 0xff800123, 0xffc00123), + (0xff800000, 0x00000000, 0x7fc00000), + (0x7f800000, 0xbf800000, 0xff800000), + (0x00000000, 0xff800000, 0x7fc00000), + (0x7fc32100, 0xff800123, 0x7fc32100), + ]; + for isa in [InstructionSetKind::Latest32, InstructionSetKind::Latest64] { + for (name, cases) in [(b"host_f32_add", add), (b"host_f32_mul", mul)] { + let mut builder = ProgramBlobBuilder::new(isa); + builder.set_stack_size(4096); + builder.add_export_by_basic_block(0, b"main"); + builder.add_import(name); + builder.set_code(&[asm::ecalli(0), asm::ret()], &[]); + let program = builder.into_vec().unwrap(); + for part_limit in [None, Some(1)] { + let wasm = + translate_with_part_limit(&program, TEST_LIMITS, part_limit).unwrap(); + let (mut store, instance) = instance_from_wasm(&wasm); + let begin = instance + .get_typed_func::<(i32, i64), i32>(&store, "pvm_begin") + .unwrap(); + for (a, b, expected) in cases { + let high = if isa == InstructionSetKind::Latest64 { + 0x1234567800000000u64 + } else { + 0 + }; + for (reg, bits) in [(Reg::A0, a), (Reg::A1, b), (Reg::A2, 123)] { + instance + .get_global(&store, reg.name_non_abi()) + .unwrap() + .set(&mut store, Val::I64((high | bits as u64) as i64)) + .unwrap(); + } + assert_eq!(begin.call(&mut store, (0, 10)).unwrap(), STATUS_FINISHED); + let registers = register_values(&store, instance); + assert_eq!(registers[Reg::A0 as usize], expected as u64); + assert_eq!(registers[Reg::A1 as usize], high | b as u64); + assert_eq!(registers[Reg::A2 as usize], high | 123); + } + } + } + } + } + + #[test] + fn float_intrinsic_loop_yields_to_gas_and_resumes_once() { + let mut builder = ProgramBlobBuilder::new(InstructionSetKind::Latest32); + builder.set_stack_size(4096); + builder.add_export_by_basic_block(0, b"main"); + builder.add_import(b"host_f32_add"); + builder.set_code(&[asm::ecalli(0), asm::jump(0)], &[]); + let program = builder.into_vec().unwrap(); + let (mut store, instance) = translated_instance(&program); + for reg in [Reg::A0, Reg::A1] { + instance + .get_global(&store, reg.name_non_abi()) + .unwrap() + .set(&mut store, Val::I64(0x3f800000)) + .unwrap(); + } + let begin = instance + .get_typed_func::<(i32, i64), i32>(&store, "pvm_begin") + .unwrap(); + let resume = instance + .get_typed_func::<(), i32>(&store, "pvm_resume") + .unwrap(); + let gas = instance + .get_typed_func::(&store, "pvm_set_gas") + .unwrap(); + assert_eq!(begin.call(&mut store, (0, 2)).unwrap(), STATUS_OUT_OF_GAS); + assert_eq!( + register_values(&store, instance)[Reg::A0 as usize], + 0x40000000 + ); + gas.call(&mut store, 2).unwrap(); + assert_eq!(resume.call(&mut store, ()).unwrap(), STATUS_OUT_OF_GAS); + assert_eq!( + register_values(&store, instance)[Reg::A0 as usize], + 0x40400000 + ); + } + + #[test] + fn float_continuations_preserve_gas_and_hostcall_resume_across_groups() { + for isa in [InstructionSetKind::Latest32, InstructionSetKind::Latest64] { + // Put either intrinsic at the end of a group as well as testing + // both continuations within one group. + for padding in [0, BLOCKS_PER_FUNCTION - 2, BLOCKS_PER_FUNCTION - 1] { + let mut builder = ProgramBlobBuilder::new(isa); + builder.set_stack_size(4096); + builder.add_export_by_basic_block(0, b"main"); + builder.add_import(b"host_f32_add"); + builder.add_import(b"host_f32_mul"); + builder.add_import(b"host_test"); + let mut instructions = Vec::with_capacity(padding + 5); + instructions.extend((0..padding).map(|i| asm::jump(i as u32 + 1))); + instructions.extend([ + asm::ecalli(0), + asm::ecalli(1), + asm::ecalli(2), + asm::add_imm_32(Reg::A2, Reg::A2, 1), + asm::jump(padding as u32), + ]); + builder.set_code(&instructions, &[]); + let program = builder.into_vec().unwrap(); + for part_limit in [None, Some(1)] { + let wasm = + translate_with_part_limit(&program, TEST_LIMITS, part_limit).unwrap(); + let (mut store, instance) = instance_from_wasm(&wasm); + for (reg, bits) in [(Reg::A0, 0x3f800000), (Reg::A1, 0x40000000)] { + instance + .get_global(&store, reg.name_non_abi()) + .unwrap() + .set(&mut store, Val::I64(bits)) + .unwrap(); + } + let begin = instance + .get_typed_func::<(i32, i64), i32>(&store, "pvm_begin") + .unwrap(); + let resume = instance + .get_typed_func::<(), i32>(&store, "pvm_resume") + .unwrap(); + let gas = instance + .get_typed_func::(&store, "pvm_set_gas") + .unwrap(); + + // Exhaust gas before the loop, then perform (a + 2) * 2 + // exactly once per resumed iteration. + assert_eq!(begin.call(&mut store, (0, 1)).unwrap(), STATUS_OUT_OF_GAS); + assert_eq!( + register_values(&store, instance)[Reg::A0 as usize], + 0x3f800000 + ); + assert_eq!(register_values(&store, instance)[Reg::A2 as usize], 0); + for (count, expected) in [(1, 0x40c00000), (2, 0x41800000)] { + gas.call(&mut store, 2).unwrap(); + assert_eq!(resume.call(&mut store, ()).unwrap(), STATUS_ECALL); + assert_eq!( + register_values(&store, instance)[Reg::A0 as usize], + expected + ); + assert_eq!( + register_values(&store, instance)[Reg::A2 as usize], + count - 1 + ); + // The real hostcall still yields; only its resume may + // advance the counter and return to the metered entry. + assert_eq!(resume.call(&mut store, ()).unwrap(), STATUS_OUT_OF_GAS); + assert_eq!( + register_values(&store, instance)[Reg::A0 as usize], + expected + ); + assert_eq!(register_values(&store, instance)[Reg::A2 as usize], count); + } + } + } + } + } + #[test] fn hostcall_resume_across_groups_reports_exact_trap_pc() { let mut builder = ProgramBlobBuilder::new(InstructionSetKind::Latest64); From 05ef4acee64d1fc8f78e553f29ae62fc351c4ae4 Mon Sep 17 00:00:00 2001 From: w Date: Wed, 7 Oct 2026 20:38:02 -0400 Subject: [PATCH 2/2] fix(ci): verify immutable releases on duplicate tag events --- .github/workflows/release.yml | 34 ++++++++++++++++--- docs/adr/0002-runtime-distribution-channel.md | 4 +++ 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ca04c9d2..708e2615 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -8,6 +8,11 @@ on: permissions: contents: write +# A repeated tag event must verify the first publication, not race its upload. +concurrency: + group: runtime-release-${{ github.ref }} + cancel-in-progress: false + jobs: release: runs-on: ubuntu-latest @@ -52,11 +57,30 @@ jobs: GH_TOKEN: ${{ github.token }} run: | release_flags=() + prerelease=false if [[ "$GITHUB_REF_NAME" =~ ^v[0-9]+\.[0-9]+\.[0-9]+- ]]; then + prerelease=true release_flags+=(--prerelease --latest=false) fi - gh release create "$GITHUB_REF_NAME" artifacts/* \ - --verify-tag \ - --title "PolkaVM Host Runtime $GITHUB_REF_NAME" \ - --generate-notes \ - "${release_flags[@]}" + if state="$(gh release view "$GITHUB_REF_NAME" \ + --json isDraft,isPrerelease --jq '[.isDraft,.isPrerelease] | @tsv')"; then + [[ "$state" == $'false\t'"$prerelease" ]] || { + echo "existing release has unexpected draft/prerelease state" >&2 + exit 1 + } + published="$(mktemp -d)" + trap 'rm -rf "$published"' EXIT + gh release download "$GITHUB_REF_NAME" --dir "$published" + # Compare the complete inventory and every byte, including provenance. + # Never overwrite a release or accept a partial previous publication. + diff -r -- artifacts "$published" + echo "Existing immutable release exactly matches the rebuilt artifacts." + else + # Creation remains fail-closed if lookup failed for any other reason, + # or another publisher created the tag's release in the meantime. + gh release create "$GITHUB_REF_NAME" artifacts/* \ + --verify-tag \ + --title "PolkaVM Host Runtime $GITHUB_REF_NAME" \ + --generate-notes \ + "${release_flags[@]}" + fi diff --git a/docs/adr/0002-runtime-distribution-channel.md b/docs/adr/0002-runtime-distribution-channel.md index 7cd12d81..1e758f2a 100644 --- a/docs/adr/0002-runtime-distribution-channel.md +++ b/docs/adr/0002-runtime-distribution-channel.md @@ -40,6 +40,10 @@ allowlist entry for this repository to `paritytech/npm_publish_automation`. and attaches all three to the tagged GitHub release. That tarball is the artifact downstream Hosts vendor, recorded by upstream revision in their own lockfiles. +- Repeated tag events are serialized. Retrying publication accepts an existing + non-draft release only when its prerelease flag, complete asset inventory and + every artifact byte (including the provenance manifest) match the rebuilt + release. Missing or differing assets fail; the workflow never replaces them. - A Host that wants the package from a registry gets it through the useragent-kit distribution, which owns that publication and its versioning. - Changing the distribution channel is an organisational decision, not a