From 9836a6ebe3332d057e3f3390a13b11fec9d27042 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Tue, 6 Jan 2026 10:18:15 -0500 Subject: [PATCH] feat: upgrade to wasm-bindgen 0.2.106 --- .github/workflows/ci.yml | 3 - Cargo.lock | 200 ++++++++++++++------------------------- deno.json | 2 +- lib/versions.ts | 8 +- lib/wasmbuild.js | 2 +- lib/wasmbuild_bg.js | 152 +++++++++++++++-------------- lib/wasmbuild_bg.wasm | Bin 1357191 -> 1390277 bytes rs_lib/Cargo.toml | 6 +- rs_lib/src/lib.rs | 3 +- tests/Cargo.toml | 2 +- 10 files changed, 159 insertions(+), 219 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b23ac2f..cc5e56c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -41,9 +41,6 @@ jobs: if: contains(matrix.os, 'ubuntu') run: deno lint && cargo clippy - - name: Install wasm-bindgen-cli - run: cargo install wasm-bindgen-cli --version 0.2.105 --locked - - name: Check Wasm up-to-date run: deno task build --check diff --git a/Cargo.lock b/Cargo.lock index e3abcfd..d36671d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,18 +2,6 @@ # It is not intended for manual editing. version = 4 -[[package]] -name = "ahash" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" -dependencies = [ - "cfg-if", - "once_cell", - "version_check", - "zerocopy", -] - [[package]] name = "anyhow" version = "1.0.93" @@ -22,9 +10,9 @@ checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" [[package]] name = "autocfg" -version = "1.1.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "base64" @@ -34,21 +22,21 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bitflags" -version = "2.4.1" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "crossbeam-deque" @@ -84,15 +72,15 @@ dependencies = [ [[package]] name = "either" -version = "1.13.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "equivalent" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "fallible-iterator" @@ -123,16 +111,6 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", - "serde", -] - [[package]] name = "hashbrown" version = "0.15.5" @@ -145,9 +123,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.16.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" [[package]] name = "heck" @@ -176,27 +154,27 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.12.0" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" +checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" dependencies = [ "equivalent", - "hashbrown 0.16.0", + "hashbrown 0.16.1", "serde", "serde_core", ] [[package]] name = "itoa" -version = "1.0.9" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" [[package]] name = "js-sys" -version = "0.3.82" +version = "0.3.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" +checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" dependencies = [ "once_cell", "wasm-bindgen", @@ -216,39 +194,45 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "log" -version = "0.4.20" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" + +[[package]] +name = "memchr" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" [[package]] name = "once_cell" -version = "1.18.0" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "proc-macro2" -version = "1.0.92" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.37" +version = "1.0.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a" dependencies = [ "proc-macro2", ] [[package]] name = "rayon" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" dependencies = [ "either", "rayon-core", @@ -256,9 +240,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.1" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" dependencies = [ "crossbeam-deque", "crossbeam-utils", @@ -266,27 +250,21 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.23" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" [[package]] name = "rustversion" -version = "1.0.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" - -[[package]] -name = "ryu" -version = "1.0.15" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "semver" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" [[package]] name = "serde" @@ -331,26 +309,28 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.108" +version = "1.0.148" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +checksum = "3084b546a1dd6289475996f182a22aba973866ea8e8b02c51d9f46b1336a22da" dependencies = [ "itoa", - "ryu", + "memchr", "serde", + "serde_core", + "zmij", ] [[package]] name = "stable_deref_trait" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "syn" -version = "2.0.89" +version = "2.0.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d46482f1c1c87acd84dea20c1bf5ebff4c757009ed6bf19cfd36fb10e92c4e" +checksum = "678faa00651c9eb72dd2020cbdf275d92eccb2400d568e419efdd64838145cb4" dependencies = [ "proc-macro2", "quote", @@ -359,15 +339,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" [[package]] name = "walrus" @@ -383,7 +357,7 @@ dependencies = [ "rayon", "walrus-macro", "wasm-encoder", - "wasmparser 0.240.0", + "wasmparser", ] [[package]] @@ -400,9 +374,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.105" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" +checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" dependencies = [ "cfg-if", "once_cell", @@ -413,9 +387,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-cli-support" -version = "0.2.105" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d3f73cd40cc5c6adf6a090e331f24595f87e7a5bd70ccf3db46be0e1d6e0d92" +checksum = "03794299fa80bda34aef2784a496c6440fbc75fb1977c4e05750ddcd617e5a09" dependencies = [ "anyhow", "base64", @@ -426,14 +400,14 @@ dependencies = [ "serde_json", "walrus", "wasm-bindgen-shared", - "wasmparser 0.214.0", + "wasmparser", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.105" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" +checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -441,9 +415,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.105" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" +checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" dependencies = [ "bumpalo", "proc-macro2", @@ -454,9 +428,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.105" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" +checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" dependencies = [ "unicode-ident", ] @@ -468,7 +442,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06d642d8c5ecc083aafe9ceb32809276a304547a3a6eeecceb5d8152598bc71f" dependencies = [ "leb128fmt", - "wasmparser 0.240.0", + "wasmparser", ] [[package]] @@ -483,20 +457,6 @@ dependencies = [ "wasm-bindgen-cli-support", ] -[[package]] -name = "wasmparser" -version = "0.214.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5309c1090e3e84dad0d382f42064e9933fdaedb87e468cc239f0eabea73ddcb6" -dependencies = [ - "ahash", - "bitflags", - "hashbrown 0.14.5", - "indexmap 2.12.0", - "semver", - "serde", -] - [[package]] name = "wasmparser" version = "0.240.0" @@ -505,27 +465,13 @@ checksum = "b722dcf61e0ea47440b53ff83ccb5df8efec57a69d150e4f24882e4eba7e24a4" dependencies = [ "bitflags", "hashbrown 0.15.5", - "indexmap 2.12.0", + "indexmap 2.12.1", "semver", "serde", ] [[package]] -name = "zerocopy" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" -dependencies = [ - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.35" +name = "zmij" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] +checksum = "2fc5a66a20078bf1251bde995aa2fdcc4b800c70b5d92dd2c62abc5c60f679f8" diff --git a/deno.json b/deno.json index d014650..fa77620 100644 --- a/deno.json +++ b/deno.json @@ -19,7 +19,7 @@ }, "tasks": { "fmt": "deno fmt && cargo fmt", - "build": "WASMBUILD_BINDGEN_UPGRADE=1 deno run -A ./main.ts -p wasmbuild", + "build": "cargo install wasm-bindgen-cli --version 0.2.106 --locked && WASMBUILD_BINDGEN_UPGRADE=1 deno run -A ./main.ts -p wasmbuild", "build:lkg": "deno run -A jsr:@deno/wasmbuild@^0.15.4 -p wasmbuild", "test": "cd tests && rm -rf lib lib_out_js_file lib_inline lib_no_cache && deno task test:main && deno task test:js-ext && deno task test:inline && deno test -A && deno task test:check && deno task test:start && deno task test:start-inline", "test:main": "cd tests && deno run -A ../main.ts -p deno_test", diff --git a/lib/versions.ts b/lib/versions.ts index e91eed2..f2c8349 100644 --- a/lib/versions.ts +++ b/lib/versions.ts @@ -6,10 +6,10 @@ interface WasmCrate { } export const versions = { - "wasm-bindgen": "0.2.105", - "wasm-bindgen-futures": "0.4.55", - "js-sys": "0.3.82", - "web-sys": "0.3.82", + "wasm-bindgen": "0.2.106", + "wasm-bindgen-futures": "0.4.56", + "js-sys": "0.3.83", + "web-sys": "0.3.83", } as const; export function verifyVersions(crate: WasmCrate) { diff --git a/lib/wasmbuild.js b/lib/wasmbuild.js index 56b8f69..81f3582 100644 --- a/lib/wasmbuild.js +++ b/lib/wasmbuild.js @@ -4,7 +4,7 @@ // deno-fmt-ignore-file // @ts-self-types="./wasmbuild.d.ts" -// source-hash: 5a933c5f7e80aad0dbb29f1b6f7a4de52dc62bf5 +// source-hash: d191f1a910caf8cc420de41ad5000f22e50a1473 import * as wasm from "./wasmbuild_bg.wasm"; export * from "./wasmbuild_bg.js"; import { __wbg_set_wasm } from "./wasmbuild_bg.js"; diff --git a/lib/wasmbuild_bg.js b/lib/wasmbuild_bg.js index 65ecf59..82ba8c7 100644 --- a/lib/wasmbuild_bg.js +++ b/lib/wasmbuild_bg.js @@ -8,39 +8,17 @@ export function __wbg_set_wasm(val) { wasm = val; } -let cachedUint8ArrayMemory0 = null; - -function getUint8ArrayMemory0() { +let cachedDataViewMemory0 = null; +function getDataViewMemory0() { if ( - cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0 + cachedDataViewMemory0 === null || + cachedDataViewMemory0.buffer.detached === true || + (cachedDataViewMemory0.buffer.detached === undefined && + cachedDataViewMemory0.buffer !== wasm.memory.buffer) ) { - cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer); - } - return cachedUint8ArrayMemory0; -} - -let cachedTextDecoder = new TextDecoder("utf-8", { - ignoreBOM: true, - fatal: true, -}); - -cachedTextDecoder.decode(); - -const MAX_SAFARI_DECODE_BYTES = 2146435072; -let numBytesDecoded = 0; -function decodeText(ptr, len) { - numBytesDecoded += len; - if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) { - cachedTextDecoder = new TextDecoder("utf-8", { - ignoreBOM: true, - fatal: true, - }); - cachedTextDecoder.decode(); - numBytesDecoded = len; + cachedDataViewMemory0 = new DataView(wasm.memory.buffer); } - return cachedTextDecoder.decode( - getUint8ArrayMemory0().subarray(ptr, ptr + len), - ); + return cachedDataViewMemory0; } function getStringFromWasm0(ptr, len) { @@ -48,19 +26,21 @@ function getStringFromWasm0(ptr, len) { return decodeText(ptr, len); } -let WASM_VECTOR_LEN = 0; - -const cachedTextEncoder = new TextEncoder(); +let cachedUint8ArrayMemory0 = null; +function getUint8ArrayMemory0() { + if ( + cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0 + ) { + cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer); + } + return cachedUint8ArrayMemory0; +} -if (!("encodeInto" in cachedTextEncoder)) { - cachedTextEncoder.encodeInto = function (arg, view) { - const buf = cachedTextEncoder.encode(arg); - view.set(buf); - return { - read: arg.length, - written: buf.length, - }; - }; +function passArray8ToWasm0(arg, malloc) { + const ptr = malloc(arg.length * 1, 1) >>> 0; + getUint8ArrayMemory0().set(arg, ptr / 1); + WASM_VECTOR_LEN = arg.length; + return ptr; } function passStringToWasm0(arg, malloc, realloc) { @@ -84,7 +64,6 @@ function passStringToWasm0(arg, malloc, realloc) { if (code > 0x7F) break; mem[ptr + offset] = code; } - if (offset !== len) { if (offset !== 0) { arg = arg.slice(offset); @@ -101,32 +80,49 @@ function passStringToWasm0(arg, malloc, realloc) { return ptr; } -let cachedDataViewMemory0 = null; +function takeFromExternrefTable0(idx) { + const value = wasm.__wbindgen_externrefs.get(idx); + wasm.__externref_table_dealloc(idx); + return value; +} -function getDataViewMemory0() { - if ( - cachedDataViewMemory0 === null || - cachedDataViewMemory0.buffer.detached === true || - (cachedDataViewMemory0.buffer.detached === undefined && - cachedDataViewMemory0.buffer !== wasm.memory.buffer) - ) { - cachedDataViewMemory0 = new DataView(wasm.memory.buffer); +let cachedTextDecoder = new TextDecoder("utf-8", { + ignoreBOM: true, + fatal: true, +}); +cachedTextDecoder.decode(); +const MAX_SAFARI_DECODE_BYTES = 2146435072; +let numBytesDecoded = 0; +function decodeText(ptr, len) { + numBytesDecoded += len; + if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) { + cachedTextDecoder = new TextDecoder("utf-8", { + ignoreBOM: true, + fatal: true, + }); + cachedTextDecoder.decode(); + numBytesDecoded = len; } - return cachedDataViewMemory0; + return cachedTextDecoder.decode( + getUint8ArrayMemory0().subarray(ptr, ptr + len), + ); } -function passArray8ToWasm0(arg, malloc) { - const ptr = malloc(arg.length * 1, 1) >>> 0; - getUint8ArrayMemory0().set(arg, ptr / 1); - WASM_VECTOR_LEN = arg.length; - return ptr; -} +const cachedTextEncoder = new TextEncoder(); -function takeFromExternrefTable0(idx) { - const value = wasm.__wbindgen_externrefs.get(idx); - wasm.__externref_table_dealloc(idx); - return value; +if (!("encodeInto" in cachedTextEncoder)) { + cachedTextEncoder.encodeInto = function (arg, view) { + const buf = cachedTextEncoder.encode(arg); + view.set(buf); + return { + read: arg.length, + written: buf.length, + }; + }; } + +let WASM_VECTOR_LEN = 0; + /** * @param {string} name * @param {string} ext @@ -155,7 +151,7 @@ export function generate_bindgen(name, ext, wasm_bytes) { return takeFromExternrefTable0(ret[0]); } -export function __wbg_Error_e83987f665cf5504(arg0, arg1) { +export function __wbg_Error_52673b7de5a0ca89(arg0, arg1) { const ret = Error(getStringFromWasm0(arg0, arg1)); return ret; } @@ -172,32 +168,32 @@ export function __wbg_String_8f0eb39a4a4c2f66(arg0, arg1) { getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); } -export function __wbg___wbindgen_is_string_fbb76cb2940daafd(arg0) { +export function __wbg___wbindgen_is_string_704ef9c8fc131030(arg0) { const ret = typeof arg0 === "string"; return ret; } -export function __wbg___wbindgen_throw_b855445ff6a94295(arg0, arg1) { +export function __wbg___wbindgen_throw_dd24417ed36fc46e(arg0, arg1) { throw new Error(getStringFromWasm0(arg0, arg1)); } -export function __wbg_new_1acc0b6eea89d040() { +export function __wbg_new_1ba21ce319a06297() { const ret = new Object(); return ret; } -export function __wbg_new_68651c719dcda04e() { - const ret = new Map(); +export function __wbg_new_25f239778d6112b9() { + const ret = new Array(); return ret; } -export function __wbg_new_a7442b4b19c1a356(arg0, arg1) { - const ret = new Error(getStringFromWasm0(arg0, arg1)); +export function __wbg_new_b546ae120718850e() { + const ret = new Map(); return ret; } -export function __wbg_new_e17d9f43105b08be() { - const ret = new Array(); +export function __wbg_new_df1173567d5ff028(arg0, arg1) { + const ret = new Error(getStringFromWasm0(arg0, arg1)); return ret; } @@ -205,13 +201,13 @@ export function __wbg_set_3f1d0b984ed272ed(arg0, arg1, arg2) { arg0[arg1] = arg2; } -export function __wbg_set_907fb406c34a251d(arg0, arg1, arg2) { - const ret = arg0.set(arg1, arg2); - return ret; +export function __wbg_set_7df433eea03a5c14(arg0, arg1, arg2) { + arg0[arg1 >>> 0] = arg2; } -export function __wbg_set_c213c871859d6500(arg0, arg1, arg2) { - arg0[arg1 >>> 0] = arg2; +export function __wbg_set_efaaf145b9377369(arg0, arg1, arg2) { + const ret = arg0.set(arg1, arg2); + return ret; } export function __wbindgen_cast_2241b6af4c4b2941(arg0, arg1) { diff --git a/lib/wasmbuild_bg.wasm b/lib/wasmbuild_bg.wasm index f794a0bf9157d69fb77c679b32498ede79b0435a..fcf5a02cea1b6e2a53bd001da81dde099d5a99c3 100644 GIT binary patch literal 1390277 zcmeFad3+UBnm1mjs_v5H-kY1`UPM8?NxKABPz0BrZV%Ji-P7IE%k(?%%)IlywhMMQ z+HJS(O!vIgqXAhW24pu%6hx4SVNp>dL}b+fVUxuGVU;C76a_>C|OLyQUh{V%M?9(znY_6zf|#|-*~Q-L#* z8o#jd8wWws0G(?Yu7m2Dsp8RJ7-$p*{eI{nWe3j1L!gO2<1#ZjG6@Dz zhWVYjIAt-k>5r1%l(9(Sf=-(23{Z(n;9O|i$l^i|4vgvu$pf^>3`mfVswS!mt{9!h zV~{cr4b%iTTu+;B@@UG0Cx11yO zzW3eV`^Fpl_rJU6jd$O4Z?E3QbvaWfWBT8J_ucpR>V4Bax7^sb?~Q$KF|PO1FLsLh z505)-zJuAA@g+5es!Z@Iho-M#O<;r>2-jGlgt4CmZ;f3IGBZ@j5b-}`R5|Nfpg z+-zLxr(f-4K)-+e+xvdm|F?Jj`VV*g!O5;~&))s-zvbSW@4vU#jlFu_*wg6c*YED= z-|_In4?TR>O*i!Ed*eNQ@9Tfl-97KU`{rA+Wtd^#Jva64b9et*kwp>e)Y= zd$07__sFjve&~;P-FM#&y?giS+yA~B``mwT?>_wv;kWJ5%u@aK*YNnC9_jz^Zy)Y| z|6PyVeb0majUvBJDnsYqyZ`XWUHA35_r6}Y+;elUoBH&;|2|}N!+9v(a6|82_w>2@ z{@(ZYzUPKpdiOFewYGKH+Qk&MeSsYah>$Q%)6TmfFV76pX(}M>8!x!rGz>dx+Gf;> zn9-;m3Ph7pGn5xK%}6wAL|s3@Kp;?Tgpf*}EzCUp;LQ06n0C+>5C-!~%%GO$nLMG0Pr5+eg6gp`YHyTFK`z&N)9rU=1o(-y%H@(YH{ zP_c>f2Cj^DM+!(RkM4EqhYUhF$rv(C1Om1p?1XKkL;yYu*eC>9ZbKgg3piZ_ZQBT# zK^O{qkp)pGL)51o!I=U7+AxHCgc1hGDP%XQJS0lNF1Aq0ywbd`0m}-(Tmy=>ZN|z# zj8JN5A4m>ZtTOmmSTUG@`UnP4n>U+g9)wBq zI!vJa!_?}?cP8rhBKR66g+h5~L!oaN7f}hsEnu5T7;acF%nqmWP>e|6f}k0~k7-|i zE42tDmKT5-!o1Bgf~N6J0Y6c7<7iVsEmTCQ9S)SEDIhTjk+uaNhEc)rcra{VAc97* zjfPJdz%7Oqri3FV+L$o%x}f}|CW47@xO*rRG|gfpkJMp601eKxsIA(8pb^P4!m2Va z4u_495QZ6uii=Sy^+U#*c9<$SX2OTm6K+7X9m%u@2Gv?nEgwVdw4+18PMl(g>ECclcQqVBW`~X!LS^)9_-M&niVN|AR zUIC8;V%@(L__h&3($pF02Q_CK31mP%3>au#!Ng_M#-L420zb$Ep6b#CEs!igJ|v*( z#^vouJZzyi!3}w2M?e@Tt3YAsUsz$IV4ZH0`^^L1XZ(9HmhHD9<*Qu1{#w_FZdNdX!?|KA-sWxofj;`6-4Nt zun`%dIsoGbLNh-{M8@PU^%KJAfo@$;fNHxK%|Z!nG<+B< z3a%1eF`PgT9ff)ss#S(hpjLm5-4e4T0(@Y!%@aL4%Yjii(PaRRnX)I6Q)ZTq!^$X4`Rc zS3er*Eb5NX$H)V1G%VOj76!?4)B;hfa8V(30{X!{2lpv51Q*>ftmLC;`P2c>g;1lU z1)DG=#L({kRs>bi$s{BgrXF||wFcEXkqri4^J?7Ml+6L^wERPMqcfmrbZ>CVL=Ay# zK$2Dg&gdv&0fWYH^dd4r4c|0`2SXSP$Rr$+Ff2gAj2|>QrG-+{sEQHG@geHn`(p($ zoQ1w~N94Pz`F$VF6xEIvX@)O@JK)QJ9gmxV0wf4sD~{O###9L03Osvam6Du=5hX{&Tl8A05m z!?=}mRpD-6(J%rFxQnA_78Jk&WKZ=)KPp9ZdYq{CMlyitE=~(^E=iR6W1$crq3@$8 z=>1lh`WJpMyn3im3!}uSN`uO3z`V2L=3~W#axQXy^!ZaP!iW1i(uIY|3~Bm#;t#ls-sOF~xa&Sv8k--_Q2N6ocR&1yQINMW zUl>vp%nD3Pw3h6N4JsNEe=>Bc_*7wizeLPQ z?oX`A-w`-s&P>)OUoTvp-x~PTnw6Z9Jdmg?_&ERNYLaa)>o}8Q9Vb2tA=BJi@YCMQ1WicJFx|^#>l&|<&lN4 zu?6D_p3fg&up%;{U}4Fk*y7ld*wWat*n6=>CGW=;mo&zf$5zBv#+H;UEoq89U9d8; zD%KQP9a|My9a$4wRR@pm=+9Y4Na< zErBQE7hSO_e@B0o(WjDo#n{l8(8l1>z=z5G(UWpDFw-)*OC1R2>?Te>T23 zzaqS%WMy)7s6MzU_?-QY-DE#+ud)}|?a7(p&A}H6rxd7j7t-TKGiq@Zzn>SE5HkbiFMoF4-sGIhZ6MYSbkqt7Jh-_*p=!eL#8by-{RY=Zv1 zoTx0EA%=BXXI3ZZUu|Mo;laSE)yNnK;Nxp4=lBfurPL2$m zO^yic%bOAUB)_`kv;4`iS%K$Dj^w{mTwi=NGQwJ(oKjMiT#;-QLt`^bj)sTD>PlWM zd9CENL`TuomQ^|7W zyE%F9C6*MgNNg!tn^;w{2)4|}|BiRpD8}l+(KJE=jB{S(+GDysl(R z@*SkOB78L2nE1g;yQyS-@%xDx(X9#kw=-Fp7}jNEe0=!DWQBMmax%0fu`@Kd%gN-; zHR9F${FmSO-qtRA-o&l#v2PeM{y>>|nPEO=-v0H!uRZX!2fp^e|4SZ78Q0S!@`2bv zJOp6n4Uc$v`2~?^tT0|wT#`t3xuENX7j^4?@gEHStFO8Cy6b!P zy5Yv&cr|eIEw|qG&A<89w{MsI{`Na}-1*(_egE%%@WUVd{f~e0)1Upr&;Q3i{?C8< z=YRQM|N6iG&t1Q``<{F6>wo_*fA#AD4?Osr-#+xa-#`3^NB-^K|M;i>_`m=8=l^>2 zu?jIz3=)rv!D5IQDu#(l@q`#Io)lGLgcvEF5~IXuF-D9P%|7KQEU<) zie|A{Y!O>Ui`XW%iydO8*d=z0kHj9aSL_q}MXNX<4vIsfO?)gq5r@SQ@u@f}j)~*q zGx51NA=c#lMw}HD=0I~0Zn1;SA?8qXm|1B)VGcK+G^@-J=1B7?bCfyS z9Al0($C=~J3FgygwfT(stU1xFF`qM^Hz%2s%@@om=8NW3bDH^*Io+%^Up8l$ub6e_ zOmmhw+ni&*YQAQ^Zq7B|FyA!aGV9H^&3Wd0v%!4FTwuOyE;JXJi_InGQgfO4p83An zXf8Kbm@CaDbCtQ;Tw|^^*O?!f>&*@3Mst(-q1kM1Hn*5t%@%W;x!v4h?lgCqyUmZx zJ?36>pSj;`H4m5v%|m9J`LX$ldDuK+erg^ykD15K&&lg?Z9EWpGCfYqT}S8f%TS##$!18S7bV zqE%x(XFYFCvL;(ESW~PQt*O>D>m_TtRcpO$&9Gjv>a3a8ENiwk$9mOz&3fIMYrSE; zX}x9DTW?$Qtoc@h^^Uc`de>TLEwUC{ORS~VGV49-eXG%0ZmqCZT20m}Yqhn;T5GMd zKCsqX8?24iChJ41+1hMvv9?+*);4RqwZqzJ?Xq@TA6a{>z1BW!ztw6TunuCP)n4*_HMa z_Hg@2yUHG6kF=k%N7`#H?3C)tzj7wjqai}qA| zn*EYJ-LAD?wrAL{*md?ydzL-ho@2jizh=K~&$ZvM-?ZPd>+QGgdG>s}0WtL-)RT6>-SfxX_|U~jZH*&o`?_GWvFz1429 zx7pk69rjLpm%ZEm$lhaPLT>N3TkQk(LE9)uiE^{MZ2MrPA=P=R+>8_%M&zK)&4N|`b;K)zwdp9w}`L22DFrjl-Ra3|qLbGouT48VdCeq3M7~Xjd{qguP%fb>R0_F17C#w? zY}XmDCdB2ZZ5sN3AeT)o9-Eqp5tch$sl!iOJ-kCXcw0QYV>x)6J-k!I%aemQ;1JQJ zLcYx&-Y6nu;eE(FT|dtdFC-_^A?T#{ma3mk9^y;6h#Nh`nYoA?JjA)Vi0eJX`9#di zV&exM;?i8ibspj>BIajFajl2=VJ_kt4{=wntXF%82Xhfud5FhyW!>ZN`yS#exrpz1h_B}&F7puQ6ER!sS?VD!C1SQl zvBX1Moh!w~9^!|&Qe5OA?#e}6$V7cVIph#Oql1;v{onQQ+H>$0czEMBsS2#7`$E7; zZ?@|G?|3Y%@e{A5`$B^!!Kr>;y-IMtC&4;D@ohz%2co+1&LxIx5Pn-j^9TxL-ZSbo z^sWzjOG8V23BIYJ6+Y+<4XyP-b2YTd2fePL79aGQhIad)S2fh?gXU=H6CX5NL&ts4 zEDfC`$mOV+8anHP>NGU?L$Bvw(a>-oG($t9e9+4pn&5+KHB{q+rfX=54|+*MwLWN? zhGzMosT!I~kjon{YUphrG(|%Te9#LTTH=EyYpBr&P14XRAN0J2KJY=$Y3M^ARHLC5 zA2d-zyL`~I8rtWBp3%@DA5^WOBLum6<I+ML7~jNMr-JKA2dos(|piV8mjX_BQ^9oK`w8M(9qiixf)xQh8Fm=p48A% zA2eJ;D+qFx>j@35^FfswYW6|HG_=D94b{*-f?VYqqMlgv{^$>6Xf!IvxcS+ zIh!<8?}IjKXsHj{prN%sXuXD72#RLr^?`;C_@H$f`rMb`S`7_q z@fyEILnD3AY7IT>gH~ziC4yp^7B*>Ut`AzNp~XIEg@)Gppye9cPLRvuxwPhM=mj4%PeU^aa^2eA29&wF`5H0uwYbv5;@ki%;O!-0<^tZE9<3up$k(ao(t5+Ab@IHl=6bXS??7JZ z66eb6b=J~P?ITDlEXUI!p5dq0JiKW{DD?AQ^;j{Ncu~z`D;AM3U#E_R&N&{fl|+bm zv_2$Z+9qht_Gs`6{aadW2=+)-+&Q<4X^K_5aej<3Q&Q}R9d9;pa z)ACiqG*3we?m}KM`4k;^v1p!JVwvh8jv+>27UGK@;tRP_oZ=zQ&XwW|Obqb*fdxbi z>-Pvar7r&-38V0-IY7=g<$Aj05unjL26_WfD?Rjp87w$1@wn^BOwo zgPzmS@ZHdIO@nGQG>RbCL~Wvmp7ue{YUp`_3Ny`kMnf}wP_>2{e9+SxTIqu(XlRQM z8n2-PK4_eV+I`Si4GsIqYy22MbhpqQW&$y=zN!wo!?;&6G5(BZEj@P5AUc+q9j(q0 zVw5NK*PPTF=n&GWFLACqyW>-y)K@rKZYwbUjP#_wfp~dxo1*K~r;ewWdl@6{2v6$! zi5}KkowiqbQa|jZ-mVTh^?`dR%Z${YWG$1s&Tt|W$er}&&~$hWs(TOjm@%G+aXF0+ zJPy30h);NkwZsTz83!ssR6S)jF0{w-4d@As${M@xp%I zU=MF?4&LJ)UUQCo2YGnAa_|Ovcn67>FMZ{$V4iOM$B9>bu9uT%P4^6I=w4_=rLTRS zVV+KXEb)r7yofpNAx_Ih?C=oZ%0)Z{qG}7viJ{K*+wYT}G&T?;n#HOwJj7kOi0vNY zCqyjFlHv&u@iY=OOOPMO^D4o*-hj*0aV#9C|1RakYmyo`~5>y~;y;iHO<8 zo+b~mK39q>J;dd?Qe5F7Zp}qp?je3m#B6ol=pmlYMSR~w9MP7e)bDwSlZaT7Wei{D zA-bB`*IQIdx#xG%(iQ2o`*R26A&X=3iGyyI4T#h-b1V*VzwFSTOQ)e zxrlFih;Qa1zTqJ*$wi#&A+9B2wxRiT4{v9oa@DO(sF`gyG$sXd-Tq#cS z5Fh_EhmFsBh~tQuE$inz#HqQ6H6G&JT*QeU;?i8iXFbFXxronrhVtXFNw!$Xr2!mqoJifXtah_`=C)8YW6`- zX=t|(8mXZ+f?O-iBQ$i(2UTh4BtfoS0#9ma&@nGGTtmZs&=VRO4(+8c=P^%9* zt)U}6s6#{TKIoK&Dvo>W>!gM%337Sk3k^NxgW5GT!I$6(4L$FJKG)DoKIk(I&GJFV zHT0$rI;NooKIo{1-t$49YG}0&I-;RX1i8F%SVP-<&?g$&<4f>k4Ym28HVqy3L5DQd z;e!rpXz*uV3lC`MNgvdzp)o#azlNUiLHjf`*$3^_&~zWPM?0J9t!=%A8hp?P8fqlSwZ~uu3$4W05qt28wDgg3z^4OJ23D%VO4Rr{b78k*`$aJh!+ zd|Hhfs`o+fYiKD!u5!Jnp;bO;nT9s`prsnx;e(cFsFfgB6J4yKqXb=;`M!9OhMsKq zLJKuCl^|Dry{n-*AGAP2a|v?2B7a9iO9^sSN`r>h`k?t5Y9Ywg*yd^IV;}UkhRzU_ z$SiWbhQ@pWD47YprJ?BrxwPKY(0rfP8yZ?mkjqhXHPlRys{y>OplqC# z_i0sYXgfi!ay_k~eFVAM#sm!=_Cez{)b2}goQ5h+d-EErp-LY#Mnj_ra+xt&L(ll2 zQ5u@!gPzjRD?VtXhUOCF+8sMWLyHM=RZ5kHHWB2ilqWTG$fq@2LuY+jPiSb|86@bc zlu8ZN_@H4Lno5wXu?^MG93M19Lk$GE$~9O+YYB3d>v0Y3^=S>#&=)?fff^cl)?2O$ z4NV}(Rm+d@YdE+MX3xR;UleaJnGtRciz3wJZp?9=%LBRhS_U5vE) zkpIKT5g+ou8EN++|H??kAa8m87bBH~xUBvcMn?OPe`e%aLP|1ccmKr5Ods+;8Cgh3 zai-2cGV*~B`5%nzA>@Kgou4yu%7^>|BV!(ij;q)IjFIU+_aWb5WVsLdTSj*HkbaDOMu=<2tz=~IP%m;jBV&EY zw;7q@L%zkxtAw~}`)?RoM#x2(CH*ENI|#Wr6S>W^H;^`dhGhrwc%SG(^?u}5H*d%= z5CU>I9n$+r@pj}E&S)$Fu7T%fcLEcMU}Xt8)7Q;=K1W7<+_V>o7SfxwJ9ow2dm;MQ7qep(-inetBKv)_R+?O3sEYHoa(-InZmlz<<*Q|1URS!cMm+(oQ8Gnf#7rWDFpfr5_^c;3{cc-z2((v`#bEMJDNkf0*v6s^D z^e**u7q`}&^V3SY zwHBS9R>H0I0crV02%m)|Zmr$tmshb{>lkVIday6ABDdC%DrosePoGwtX9dp^-SvD` z=uYn?B82pJ7@f0^n430}Xi+~c%K6OmxIBlZZyJZ4Oi$1uravSaG6GlWSaIk_VRzc22@m<_haq>`)kF(w6Zj7F zd`8-f)wZjkqZQ$glx7eCA1OJ8vldT9;UD_i&yxmjV*z*0Z)D5aJ)K3VbYPJA#CAPh z;!7O0;bW-}(eLzEDJwJQl6tkN*^9t586R+&QBXe#f4hUiY_ByQD6=m!QV1o8ppXAA zh1mVNEMI%zYY%+w0rJ4t;kLgHxBYdv?XSaa|Nj|oTN<+Z?M5R$uh5CHErqP*YYMC_ z5SY5&xmI)Al!$jkR3vSI<;g}LLZPz-f>byA5EUyMYoe{3It9qK5g|I>l88`5Y@^)7 zYz~{xE9WV5kW*8hih<2YR90sq6!jWNq%`2D;yhl8&0~0EtYuzMnvawk*6k^Xkyy&G zF{DcSfl?zCC^rqT1BiE1ia!d9Cj^xpMabstHVRpvnIA>SW@wX;jhPSy#TJ-VH#=vvyKeXTT8(ZOurrtj$Cyn002l zC9*yPcG9Il*5D)@S9UEmQJPC-BlGA10=y3OIP)O+4$ly!LAVt><<>i*%{F<|F17qO zZsqE-ki=h&puY`=NxoffeiM1Hi2l%HDoE8qPX=g?b+0?+Mv!-E0eCR!M1^c{qx77C zCfejkQIWW`WQ%iIkg_Pz09qLpO-88ZgLD;)7zGG6&n^qg<_w=iC=9nie1TR+7@=s} z0*_(sUWY^|yf&xNRaQ21)>nk$X)_X%)tLwd&=&GSS?dTR6epXRd9pr}NrAD2yht`O zlj2_s*-bX{HHEom&6I4-)TFr9jFiguOr)t3DU+4&WLQj*tEoRK#du3`gd$XPBA3b9 zOe%$>7P4H{vydJtQCVNaA{2vK$R4uMhfvUIA+M6nK7^u73wgC{^&u2iTF7f;yAPo_ z(n4M};WVH`bL7Qb?S?fbo%w~DBtoI=* zWV5_QHu?}1v02_Kn|+81*eq|8tv*D>YnI=X?LI_>YnFc_D;IjpqoOs-Z^>#OLcyB3 zy?tBOGOUIGiq*`>LPOSPLKLf6LHLFDX|e-Dv&OL$)U3~GoKk5~1ZPeQ+*Xa_>!@~p zPNNP*bM~ZLxrloUhK6c=o=%ryJa?vBt8uKu)a!Ffx6Vat)DYI_n)Nx+DE4z_XFP33 zDB`mt=wXH9+lwO<=ed)yHyWYn&Yg^X(TIxaESDLwcCj)%q9QrV_uxSmsQAtDeM2^~ zKt*kqjfQMyfr`~E5vaVC1u8)weh52QprRtnX4t_36$@Ezh8-+W5s>8;*uer7_gHR) z9m^a$RJ3E+0y|isVjRnDu!99Eva#F_J6NFN8Ot58g9TNnTOoJC4i>1`#c~(yV1bHQ zEO)~W7N|JI@*~*so@0lKPAvDp4i>1G#Bwj}V1bH6Ecd|<7O42cazE@~fr>gTTVV$a zRIFin0CuoIMHrR`VFwFTTw!?#cD(P{p`r=PHrT-e6+>8l3_Dn$A_vP)UF*pi4SfJtn%VV&k(Xm5C|CPsK2MbipU-=pAV1bJC zD?f)FEKu=%|lY4;44qU4i>1mz48?7Snk+yM5%PZ4i=~w zz4A2dV8JJfaRzp!ETkt zaM;0uT}tpI>{#j8p`zi+D%imS6$4j}fE_GQk#FTl*uer7?^ZqqJ6NEi+{#g~g9R$K ztsD(ISg=K9I|g>JK*h0@V_`>=V~2`fE62eO7O0rDay;x{fr?ZsC%_ICsQ9$y$Mg9Xb~qA$XZ)s7u1I;@-uJ6ND%!pdo| zg9Yy?m6u=#3sn49IURPeKt+9(wXlN)D%Puf8FsK>u}WhG>|ntnC3ppPta0p6(OhL6 z>|lY4;VNgs4i>1$t#TIZV1bI)DrdtE7N{t#at`cZfr`y4Uxghkn5VLR4R)}A;;;(& zI_y~M*g*kTg`5jJSU{0gg?s~cuz-T53i&4NU;)KL74j|E!GgI;P!Bs;@VXMb4Levs z;Yx*^2Rm3maY==o4?EU5cFa+N2H3#@iY6-LJFtTVvy@-~>|g;!1QqgK*ueq{{VC)^ z*uesd@hRjY*uer7%u_Cg9V~cRF_yrN4;(uvR;Q3lVFwE+45ylq)j9%PU>NO$Ao2R~h5NlGV<6go0-}d8R>I)-yOogNep5f#!>c9*q`*_c4#DGHBLc&P1T(n~6%hiUi41G6n}e?SUM zL{G*d6z&oe#t5E-aiFtv*jHjP)zjYZ6wX z8ufWvfx>5In6Gg>`?u{GBYgKIG$1}n=>q@V40n?Y7Jp=u2!FuA1FFzC#_yX zc!%Gp&xuB{F*|9^8p1+dt3D^%6QBu+me{VPSW>Ip?6g&ihS`}$wIc;RE^GBUr9qJ~ zK})ZqA+>sqV^>I{J_pxnghTxb&6Q3C% zDPXlG$%L%sb6a+$HI(Ur$m1CbDMz6`t&o(BX@wLk49ZX_cNCh_3SDGtTA`d324*Pq zbQIdt3Kz)Atxg$i*^?D0ux5t$85gpvtkvf!<60w5zq(8D$iuQ;%gJ%PIy0Tt;1Zl9 zMcwR7vQg8qFxITkJxR7|d9EZWK&R7yG!u(wl`T#KqM)1#tab#r=q76!q(GbstWSg8 zWg~+s_$IZ><}`S*Y-NzbZ#sFV!AoT2HYZOCxtZBku;5VbK+r*7(&y>MMWHv@Dd5&? zoH~>~2RA~2H#=#~8bSka)#pT`u$xS~Lbhij6lar>%Vp*E&L$h7z?z*&S8E78u~wf` z(iB#+lUA=GbjL=0PBaRtsc87ct250Sr|z%M!F4(d1=kevG{yi2l7^D&7K9Z>imIs? zl{=K#>UP@M#=xL(nu<}w482U9UZtcsnu;-p8O~C3MlKXUQ!$n@1Ft5?$j)^}ikzt! z8<>Hp{cZ+@%v6j$%+PNk(sod+OvO0P41`Q@r$Iq76=U#Dr?l{*n?cbr6=NJT98YFg zN?|b-V=6Q9y=hQ9OvRYXj255UDH5ilEM>|zABAFID#`|?;L>d?1;4}yVX7AlsN_9N z+~7?sC9vb?xPwM05@x2>;9ZU@HfGft=b({Y9<8aYwJEFCT-Kr(nVESlWvvghYHeUG z3YeLxwTHEuvuYh@EsCC*sWo`FQ?AWfwZ=JUghFX%YE5OWEm^hZvKGbF%+y-ST3fSf zZD1`5vZ>Ls1jdZtpC%}i<|Q!nkLHZzq1ZDvwinVRaP zwlkGNZDvv{_c^wfc2cVyQG|kRW>RaJTGmOeXDWr;R86XpIruCXMUPN)O(kz;IX*NZ zIR(>H@>Z7PgDR3!>`WzZXE{EnA~}W1RPxIGj=A`xjpP&=Q^~7Yj!(l#PJu9$yq4wo z@QCCT_fpC0S^f=2PGK&UypiRXIdY0>spQQpzub{8((+c8U*X6pW~Jh{v;0a&P9Z9l zyt37?AM--8hayrcc{R&>IC2U=spPdRzsiwQyh$amXZh8RoWe^gc_YiOapV+DQpuZH zeyt;?;E_t+%JS@)2aO}r4mF%ZTkV;<7@?MUd0zWEwEz56k zs{R6sQYn`k)$HA5i>6;R8- zhYU>BKs^J^3{XfxrP0X1W(FvPpaPm1*uuaI8fax;D+3fFP-(O?u!zm2kbnxPY;(%7 zm;nj_sDNq)mM}me{}fQmz)}V%#GeA{8Cb>uh4fQEBLnX-Kq34T(9FR53{c2E1++5I z$N+`tQ$RZd%Nd}MdpMC2AUX90rv=~XJ8crD%>6c zjSQ@2Kn2?)pqYU+45(0h1hg`+mH`!LkAQXt)-j;M>=97;iBpab7*Ij>2&iUYJp(Gl z9s#us>|{U%*dw5xfn5x!@OlI^GO(Kg6YLG%cyX5bhDDuf;ZwG4dDfC`{TKs^H| z7*OH!2xw%WodFd*kAP+dzF6()~>s-sRhhB2Um>Wk3_QU=o7xKnpn-wm45;vUq|wB{lMJZf zcm%XCP{n`>jYmKm10xtvf$<3FU|=KzDl8rWRmYriJjH+tibp^V1EUz&tIe%rU^D|N zARcKnFffJz6%LPpCI-ebuv;h9!oYY2R46>sXk%ak13R@w2Ln$tpu*shM%8hr9Mue{ zAb14SFz^fmDg+(@bqq{oKn1`fpn-uJ22}Vv0-6|jjsX??j(`>ho@YRXz9XQGfk_Og zz;^_6FmQ&ufeL#^K-FhXInFYmg5D8O!@y)tN`<^5ppJnT7*GN42xws7MFv#3I|7;* zn96_(c1J)91JfB$q3#H1W1yA+73hwD4hCLkK!v#@pz3p{95WbDLGB2sVc-=8RERqQ z>KLeFph?$x0|PS|P~q)Jqltl845;9C1hg>lDg!FC9RY0&yupA9Y)3!`18*{*!rBo~ zb;2pfTMVe6b_CQgP|v_JZEhU{Z!@3*+L1;B1M?VA;p_-#VxWP6#X6}L2Hs&ng|Z`! zHU<_juuyAsFz_w|DvTXzRJA+hSjd11Vn;v?1B)0?A?ygKV_*pbDu5jU4Gb)0K!vX( zpoxL^8BoFN2xwuTkpUIDj(|1>mNTFN*AdXczzPOb*g68LzHrL1k^vR8j({2lnixjyMs46J5Ag{vc=iGg(ts9<#jv@o!d0Trr_fHnqN7*K)g2%vE4I0y-Gj#efP+M?lpnryL(Kpn}p7P{Y6;2Bv9q>loO}fC@-Q8VwBW zV?c$YBcO?a{R~XeNwqN0%76+*M;dJm9AIFw*63j1AOk849cff`IORCRfC@rKKn(-O z*;gtA9RYO=e8zwZKu16W11A|!;pYfwVqhHSp@Pp5(853)11j_!0c{L?%zz3!M?ePy zhZ#^|=Lo1e?UdsP11jho0W}PK%76+vM?f6|M;TB7=Ll$E;1~lc+#CT-3>;@b1)C$F zg@Ml)P@(1sXk*}W22`Lq0y-Et!GH=gM?lpXryT7Js33C$)G+V`11iKE0d)+VWS~md zc>@Ed7*OHmNTZ2?4hB?kIRaW3IL&|xEk{5b17{def#nG3VBjnRDy$p;oTUh=i%PDjm$=g_7#c~Q9NAeDqk6<~4jU##0K*#=(ET^DxB(GulQ!J;D zaU`!}`6!k@!tw@|k7hZAiz9v$%g3;sg2j=%h2>*ePNCxD8QAa0abd^~KJR>YMPcKJ zRW(RijSE=H=bbDHAxEsbG|Q9?J{E0vTP_JDS_)htY5g{*@bv_ma!6Q~fnste6^06o&9wGKU=B;%BSo~v#yd&J{AS&Q+B0USIagZi-PqjyV9&{WYuu5T@<*F zST&5$w?K7176tKBcBNU@$tE9*0{SVt(yZ%cn~z1o{ghp4R!>>=q}MJA^r!4%guWfB z^Ra%Q?Mkz5kWD@o1pribrCB%1HXnl8cBNT; zWRs6|r?xB2>MPrPtUI(_Y1YlMYJ}IW?`XRi5%@N#&d2&&ZC9Fgt8DVI`f0n;tlMOp zk0rHTY1TJo)kv>h6nIeiixGiund*Ej3PMP%hBWJ2vdPDyfP}2Mv)4YVT@ptF20!b(Ga%Ku`EqnY{(`b4N(gn)6%phxMTZh6tz&P{$4e<*d+tM_A0M+KBAz-0nTbhQ?qN>JtZ9{}Y z$2LX;eJoYyqah@rV_TYrPpF!FG{hiuwp?MO4O^L3z$aF1`XauE-(4g8phuxYbLbPS zshwig;cA~kgXYjDTuu5St$=ugo*Y^Z@NtVv&_6|V3pv}g`}V%DZF(h8UR z6go7AK0&J*?=8b+K7|_1p-1N6Ytk2Kg)*N)i{{WLZf*J^tx&2I z!d~BYXd-}*;E@eo4&1U(id)3MEJ|5 z+M?O?6<(XZaH}G)UpCba&8F}5s-DhTR>bqmrdp%f^krY2zHsM?Fn-xo8#J4~0c_G2 zZdJtc%ck0*+4Qwwo4#jcxiuYef*+&!fTm(`5JPI|MBk@6G zoxVutfPj7;g$B)`4b!t6go7AKDexU)>{Td@bf6t zXbydlS*I`3IUul~N1;J;=!4BBeUVl`h(C`)i{{V=oo)Iet$<*E9)%9gp$|T*CVI<& z7=Rvy8qJ{(LhJNJItPmNK~sSSjYxbZ+T>hB5Cc%9hOccgW77=U;DWG!KzMu-au*g^ zGGJ#QLX(= zsHIKVgXf=2UD}7^O#sm|GOgZ=Yw@v1|?JEJh(lAoA;%ncyQ!#Kff9t+<=FUJR5 zc&lVdi0Y_jaIB$Yhk~kcii^1dkr&qz&AQbXM{uH#iKRWO-{gvlig;fW%alsBf{$2r zR$Q!bD=t>kt$wM#CSEis9^Q|rV>6C8LkatswX8c8N5~pUHko7%Vn7-3tIYxNEvPfc zFXW*Ch;>o$N(x7^#t3UsqMBj}fh)Y2!wyjIVVf-QT4&7?}Qwkws`q0>$vTqY64iE}# z3N~&v3|yt_4h0CSz?c}Q%kX!EVexmP*oyBIz#dR$#$OAR*-@-{!}jT+GI0m2LINsr z*&WG|IwH0^3Bv>%9nFO0;8Ak042MK1itRL$_)93TtC8e^YRSpwfUPb%HW3 zH)}-{r3jzf4=K^Z>RN^%NUG>6$pK|SRLsn>=+C2Q@-s18j-;ah^^dp^*Bbu>WAb7# zVcCITI4{2-5{(s_R~E<>)EbIX;cSfnk1?trV-yeYcvfwazhP*NStg>GrKtQx%Km;7 zdw1!|E(`o1dKI0KFHOV;DP^D2aFQzMi)M@?RM2wZe#gsPBhX5uC?+)C4LVsXN5?m* zk)p;#J4N2rW|;{qR0C~BpFjgufmd-rGo*%hk?MjHpQL4WBGrs7+)BAuMd&$=G^sJF zZ)2T?8o}cjMv~v(5sgOhR70mU5JBEAnVsbNNW?CNuR3@X}VXpZoaYQxH7H25lyA@GsoFsD^ToS`+$b%vXf@*i$S zW)wF{HAYaEwb5%b%TG_2y349z>nV=d2;0L$s zwDU5Xm(wNVxSgPRVGB5Ab)L>TpXL>JJ1gNhE1u0+Sh~pRENVn9XQ6CrAWS)pi^fB4 zmT~9KpqgMAIxvQI9$W>!!g9vf2%O*9M0#X2k#l#d^JyX&$upZscc;`{vz7YGnh32Y zxJrFF-RU|Th~+d8JBr&8b(Nr#tE;Ott2-##NQtw1Kc3G z2F-+MtVd^1Ga=-gP*-ZIMDsG$ zy2h!L@~>JcnY~CgIOSEG`Nt0Xd@6<3;9R{DYit2bjWId?5sllJ5fuDaUke|c(flEv zD)=*vKsZg6Mr2{+k^&hlwdMS^%Z*ZjE1HI6^l9`hRS|#bpbzW5VsFBCMd{vjD{I_Is97GPbaF7-B%(0{Xuzz<)siCmu1M9%H3^O+ai{(!5Ae8+Lt?b)35Wdm-u zzL=wlB+jRa!1@GVq?KKvE(cDpmA=molj%g>G9fqj@N#X&1+xQ zSh5Vixf)BC^Jy$uYJuFS9uwWwgZEOMQ~P|b8Zw_6TPamh=3}sVuKCzsfAnhixcJYG zi~sahU7R_3sReD^ZS0ZRJYjB526XDpJO#DW97y5u;jE@^{`~8Lav7;T6s|qOGlJD zX$jX^NO*+S!l`Zi4s~v0ZYZc*p<9+=iHqu9wuWTWM)c0E@tM(dBT~Jz%%o)ywd$r8 zzR^i(Ih&q|X)POwUa+RLu#g;I3}Lys6RQ+-Y!=@~rYI1CYT2^wRjlL9#?vGbN==xd z8Z1=Hv99i{&EPpi+fR1wA-lT7mnfwNskN4yzq*55h(zQ2@m|YW{fSU&^cbkty`QZ=Xn)tR`f7Lqt*p9YEeS8q^d0F*pRkB^u-_tXg)g;3x{e=3?j7xPv+qqYw-M{ zfJ_xwBX+FS<#jj7i@jrS#OdI))Q!Mr8LO04f|fMP%}Vv)&Nmty5~!&l7NNtbz>lJq zUWN|Rnj*bv(j5Rrww01fIu|6I zW};TgzHCU&HiYIFFS?%3ctINgw7b;!gV*|ajnT*K?L0gq@Bk_Y?;-N;zzSZPiuHCo z(jE1fF-%8wEvhAIX9Wh0Bx5nR5ss!}H(~kZ4!l~ya_+eXa!=JD7)SbEnfj|#%_vXR zjN_^q^_8n8)0OBhc7%3FWFN{eJfEt;E(vb&Sf4`t!*szfJ!iq4^(nR3?ezD~rCVC9 zau&Ni1+T&C3F;HoQ!VVrQUU#@NR47>mm$<$umEp8XyKM#|AUDUk=`xQ>m#gj$u^;5 zKGN$Wj2!Cq5f+d8mXHd78;1~8bL0k_YL{!DV(}L_aMWm zoudd?3dFeg9mhNxJ+a0|qa%bgIu_9Ah)fg{eKg$zR1ITG3H~yIlWls4qMrQKrYDzX zRPMQ3wS6Az@{>K4JC$4Y70MpzUK6IRJJC&;a@q=kPt}aJzH38SF@3t0xW^gvxQqn5^OTYF{hm zKwZJNXgy$s7;vrO>?@$il9t?x5!f*L7_f-4`BysJYWxa^t!jq4pi_Y?Zh*!Aj5J|m zwb{q`HF#}`H__yDXmg7JTZhouG2&;81!&6|y$93J42(unHEK}L z+H_D>pko*xklA|i%s8-7BngOLH zIIIm|YtF-^7vZ$g8c^B|$B(cJ;X)j59#DE|Dxc8qxGEn|T82Y4z>9G_ZVo6-SY%D7 z(Ph#2r!dsyXVSNsHPIr*t*d@^cF7gV9wi?Xt06t73IZ3v?{u}d$f zyUb;@VFG9=W;)jzrT8047^TS){DSl1JM$fR+=PKTN%CD>n%_r)7*uj5h{-ZilSZkH z($SVN+JB_{gz>2?2xnSo?RaHN?#1AXDA-7i{%jYyhupc=h`%MsG~%X|k08bd4P_iQ zj!d@TBHH8x+ty-R5h@ntrRy8T2Z6HkpCCtU=U|7V8K|}Efn&BVqi8vo;Js=QbuGs@ zr{sdJ2#wd&X}RXLq@%+xtoaa~IvS-0bQ+m~~I(u}i6_&G2MMA{PT$7hszl zjHWShEsk84+Ry;mG=G^9A4T0EH6Y$voI(rk0Zw12b*G@GA!p7C93xCB6)Y{FzwU)a z26|PNM<SGOrYsad(x7x%r+PrPP{xgUm?wbRlYCchUQ>$p zc)hsFX|6r!efYJ8>ipD{3zbLc;aaw$g%zhRl?$l_U4%Qcc_*gimRx8JD2t|wJLQ%m zuYkNb71eUoMPF+ajVbwk%qlwO-6n?95!1mZ=!h4Im2||4(_lJcc3)wqF78Yk{l46& z$Nk4hT}Xdy4eJS}zOPv+>|xkVYRTKgPC8!E*TSD$yF#^%_`kq&(NrRJMf?EmeM?<2 zy(|w~#L7S{$M{ng{Bblua@DGwe!L+-9r;>gU4VQ-jk|z+Y;%N?qHj}C- zg(h8zW={`E_+DJO4_}%q_YI^Y+*d(IxVJ;l&Z-BI9|rOivcn;aT(I;Or&_05P0Ex# zX(&L_G+59*j)nwv|Is%%9BF$dHRX1?sa;Q#4poumI0U5i0EVoYG~K}VOo`PQS#id~ zj>q_&Wr1!I;}0Zf&zAfETP3@dp&!gucJ?vn;E3*oRT*LhyYa3~WYeFf~g+;uKO8y zR_dz0)>?90kG@tT6@msu)W)^O0sN*_J;>yOPNho)oTO!nKZjGYC?ou(UzR_ly6ute{&duFB0uD|JZ< z7njge4A9h1?ub%%%TQ#cYkx)nT{K$sfMNB+3QdY`LfP2ee@3<9