{"version":3,"file":"sha3.min.mjs","sources":["../../node_modules/@noble/hashes/esm/_assert.js","../../node_modules/@noble/hashes/esm/crypto.js","../../node_modules/@noble/hashes/esm/utils.js","../../node_modules/@noble/hashes/esm/_md.js","../../node_modules/@noble/hashes/esm/sha256.js","../../node_modules/@noble/hashes/esm/_u64.js","../../node_modules/@noble/hashes/esm/sha512.js","../../node_modules/@noble/hashes/esm/sha3.js"],"sourcesContent":["function number(n) {\n    if (!Number.isSafeInteger(n) || n < 0)\n        throw new Error(`positive integer expected, not ${n}`);\n}\nfunction bool(b) {\n    if (typeof b !== 'boolean')\n        throw new Error(`boolean expected, not ${b}`);\n}\n// copied from utils\nexport function isBytes(a) {\n    return (a instanceof Uint8Array ||\n        (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\n}\nfunction bytes(b, ...lengths) {\n    if (!isBytes(b))\n        throw new Error('Uint8Array expected');\n    if (lengths.length > 0 && !lengths.includes(b.length))\n        throw new Error(`Uint8Array expected of length ${lengths}, not of length=${b.length}`);\n}\nfunction hash(h) {\n    if (typeof h !== 'function' || typeof h.create !== 'function')\n        throw new Error('Hash should be wrapped by utils.wrapConstructor');\n    number(h.outputLen);\n    number(h.blockLen);\n}\nfunction exists(instance, checkFinished = true) {\n    if (instance.destroyed)\n        throw new Error('Hash instance has been destroyed');\n    if (checkFinished && instance.finished)\n        throw new Error('Hash#digest() has already been called');\n}\nfunction output(out, instance) {\n    bytes(out);\n    const min = instance.outputLen;\n    if (out.length < min) {\n        throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n    }\n}\nexport { number, bool, bytes, hash, exists, output };\nconst assert = { number, bool, bytes, hash, exists, output };\nexport default assert;\n//# sourceMappingURL=_assert.js.map","export const crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n//# sourceMappingURL=crypto.js.map","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\nimport { bytes as abytes } from './_assert.js';\n// export { isBytes } from './_assert.js';\n// We can't reuse isBytes from _assert, because somehow this causes huge perf issues\nexport function isBytes(a) {\n    return (a instanceof Uint8Array ||\n        (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\n}\n// Cast array to different type\nexport const u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n// Cast array to view\nexport const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\n// The rotate left (circular left shift) operation for uint32\nexport const rotl = (word, shift) => (word << shift) | ((word >>> (32 - shift)) >>> 0);\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// The byte swap operation for uint32\nexport const byteSwap = (word) => ((word << 24) & 0xff000000) |\n    ((word << 8) & 0xff0000) |\n    ((word >>> 8) & 0xff00) |\n    ((word >>> 24) & 0xff);\n// Conditionally byte swap if on a big-endian platform\nexport const byteSwapIfBE = isLE ? (n) => n : (n) => byteSwap(n);\n// In place byte swap for Uint32Array\nexport function byteSwap32(arr) {\n    for (let i = 0; i < arr.length; i++) {\n        arr[i] = byteSwap(arr[i]);\n    }\n}\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n    abytes(bytes);\n    // pre-caching improves the speed 6x\n    let hex = '';\n    for (let i = 0; i < bytes.length; i++) {\n        hex += hexes[bytes[i]];\n    }\n    return hex;\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 };\nfunction asciiToBase16(char) {\n    if (char >= asciis._0 && char <= asciis._9)\n        return char - asciis._0;\n    if (char >= asciis._A && char <= asciis._F)\n        return char - (asciis._A - 10);\n    if (char >= asciis._a && char <= asciis._f)\n        return char - (asciis._a - 10);\n    return;\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex) {\n    if (typeof hex !== 'string')\n        throw new Error('hex string expected, got ' + typeof hex);\n    const hl = hex.length;\n    const al = hl / 2;\n    if (hl % 2)\n        throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n    const array = new Uint8Array(al);\n    for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n        const n1 = asciiToBase16(hex.charCodeAt(hi));\n        const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n        if (n1 === undefined || n2 === undefined) {\n            const char = hex[hi] + hex[hi + 1];\n            throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n        }\n        array[ai] = n1 * 16 + n2;\n    }\n    return array;\n}\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => { };\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters, tick, cb) {\n    let ts = Date.now();\n    for (let i = 0; i < iters; i++) {\n        cb(i);\n        // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n        const diff = Date.now() - ts;\n        if (diff >= 0 && diff < tick)\n            continue;\n        await nextTick();\n        ts += diff;\n    }\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n    if (typeof str !== 'string')\n        throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n    return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data) {\n    if (typeof data === 'string')\n        data = utf8ToBytes(data);\n    abytes(data);\n    return data;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays) {\n    let sum = 0;\n    for (let i = 0; i < arrays.length; i++) {\n        const a = arrays[i];\n        abytes(a);\n        sum += a.length;\n    }\n    const res = new Uint8Array(sum);\n    for (let i = 0, pad = 0; i < arrays.length; i++) {\n        const a = arrays[i];\n        res.set(a, pad);\n        pad += a.length;\n    }\n    return res;\n}\n// For runtime check if class implements interface\nexport class Hash {\n    // Safe version that clones internal state\n    clone() {\n        return this._cloneInto();\n    }\n}\nconst toStr = {}.toString;\nexport function checkOpts(defaults, opts) {\n    if (opts !== undefined && toStr.call(opts) !== '[object Object]')\n        throw new Error('Options should be object or undefined');\n    const merged = Object.assign(defaults, opts);\n    return merged;\n}\nexport function wrapConstructor(hashCons) {\n    const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n    const tmp = hashCons();\n    hashC.outputLen = tmp.outputLen;\n    hashC.blockLen = tmp.blockLen;\n    hashC.create = () => hashCons();\n    return hashC;\n}\nexport function wrapConstructorWithOpts(hashCons) {\n    const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n    const tmp = hashCons({});\n    hashC.outputLen = tmp.outputLen;\n    hashC.blockLen = tmp.blockLen;\n    hashC.create = (opts) => hashCons(opts);\n    return hashC;\n}\nexport function wrapXOFConstructorWithOpts(hashCons) {\n    const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n    const tmp = hashCons({});\n    hashC.outputLen = tmp.outputLen;\n    hashC.blockLen = tmp.blockLen;\n    hashC.create = (opts) => hashCons(opts);\n    return hashC;\n}\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nexport function randomBytes(bytesLength = 32) {\n    if (crypto && typeof crypto.getRandomValues === 'function') {\n        return crypto.getRandomValues(new Uint8Array(bytesLength));\n    }\n    // Legacy Node.js compatibility\n    if (crypto && typeof crypto.randomBytes === 'function') {\n        return crypto.randomBytes(bytesLength);\n    }\n    throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","import { exists, output } from './_assert.js';\nimport { Hash, createView, toBytes } from './utils.js';\n/**\n * Polyfill for Safari 14\n */\nfunction setBigUint64(view, byteOffset, value, isLE) {\n    if (typeof view.setBigUint64 === 'function')\n        return view.setBigUint64(byteOffset, value, isLE);\n    const _32n = BigInt(32);\n    const _u32_max = BigInt(0xffffffff);\n    const wh = Number((value >> _32n) & _u32_max);\n    const wl = Number(value & _u32_max);\n    const h = isLE ? 4 : 0;\n    const l = isLE ? 0 : 4;\n    view.setUint32(byteOffset + h, wh, isLE);\n    view.setUint32(byteOffset + l, wl, isLE);\n}\n/**\n * Choice: a ? b : c\n */\nexport const Chi = (a, b, c) => (a & b) ^ (~a & c);\n/**\n * Majority function, true if any two inputs is true\n */\nexport const Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nexport class HashMD extends Hash {\n    constructor(blockLen, outputLen, padOffset, isLE) {\n        super();\n        this.blockLen = blockLen;\n        this.outputLen = outputLen;\n        this.padOffset = padOffset;\n        this.isLE = isLE;\n        this.finished = false;\n        this.length = 0;\n        this.pos = 0;\n        this.destroyed = false;\n        this.buffer = new Uint8Array(blockLen);\n        this.view = createView(this.buffer);\n    }\n    update(data) {\n        exists(this);\n        const { view, buffer, blockLen } = this;\n        data = toBytes(data);\n        const len = data.length;\n        for (let pos = 0; pos < len;) {\n            const take = Math.min(blockLen - this.pos, len - pos);\n            // Fast path: we have at least one block in input, cast it to view and process\n            if (take === blockLen) {\n                const dataView = createView(data);\n                for (; blockLen <= len - pos; pos += blockLen)\n                    this.process(dataView, pos);\n                continue;\n            }\n            buffer.set(data.subarray(pos, pos + take), this.pos);\n            this.pos += take;\n            pos += take;\n            if (this.pos === blockLen) {\n                this.process(view, 0);\n                this.pos = 0;\n            }\n        }\n        this.length += data.length;\n        this.roundClean();\n        return this;\n    }\n    digestInto(out) {\n        exists(this);\n        output(out, this);\n        this.finished = true;\n        // Padding\n        // We can avoid allocation of buffer for padding completely if it\n        // was previously not allocated here. But it won't change performance.\n        const { buffer, view, blockLen, isLE } = this;\n        let { pos } = this;\n        // append the bit '1' to the message\n        buffer[pos++] = 0b10000000;\n        this.buffer.subarray(pos).fill(0);\n        // we have less than padOffset left in buffer, so we cannot put length in\n        // current block, need process it and pad again\n        if (this.padOffset > blockLen - pos) {\n            this.process(view, 0);\n            pos = 0;\n        }\n        // Pad until full block byte with zeros\n        for (let i = pos; i < blockLen; i++)\n            buffer[i] = 0;\n        // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n        // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n        // So we just write lowest 64 bits of that value.\n        setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n        this.process(view, 0);\n        const oview = createView(out);\n        const len = this.outputLen;\n        // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n        if (len % 4)\n            throw new Error('_sha2: outputLen should be aligned to 32bit');\n        const outLen = len / 4;\n        const state = this.get();\n        if (outLen > state.length)\n            throw new Error('_sha2: outputLen bigger than state');\n        for (let i = 0; i < outLen; i++)\n            oview.setUint32(4 * i, state[i], isLE);\n    }\n    digest() {\n        const { buffer, outputLen } = this;\n        this.digestInto(buffer);\n        const res = buffer.slice(0, outputLen);\n        this.destroy();\n        return res;\n    }\n    _cloneInto(to) {\n        to || (to = new this.constructor());\n        to.set(...this.get());\n        const { blockLen, buffer, length, finished, destroyed, pos } = this;\n        to.length = length;\n        to.pos = pos;\n        to.finished = finished;\n        to.destroyed = destroyed;\n        if (length % blockLen)\n            to.buffer.set(buffer);\n        return to;\n    }\n}\n//# sourceMappingURL=_md.js.map","import { HashMD, Chi, Maj } from './_md.js';\nimport { rotr, wrapConstructor } from './utils.js';\n// SHA2-256 need to try 2^128 hashes to execute birthday attack.\n// BTC network is doing 2^67 hashes/sec as per early 2023.\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ new Uint32Array([\n    0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n    0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n    0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n    0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n    0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n    0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n    0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n    0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n// Initial state:\n// first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19\n// prettier-ignore\nconst SHA256_IV = /* @__PURE__ */ new Uint32Array([\n    0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nexport class SHA256 extends HashMD {\n    constructor() {\n        super(64, 32, 8, false);\n        // We cannot use array here since array allows indexing by variable\n        // which means optimizer/compiler cannot use registers.\n        this.A = SHA256_IV[0] | 0;\n        this.B = SHA256_IV[1] | 0;\n        this.C = SHA256_IV[2] | 0;\n        this.D = SHA256_IV[3] | 0;\n        this.E = SHA256_IV[4] | 0;\n        this.F = SHA256_IV[5] | 0;\n        this.G = SHA256_IV[6] | 0;\n        this.H = SHA256_IV[7] | 0;\n    }\n    get() {\n        const { A, B, C, D, E, F, G, H } = this;\n        return [A, B, C, D, E, F, G, H];\n    }\n    // prettier-ignore\n    set(A, B, C, D, E, F, G, H) {\n        this.A = A | 0;\n        this.B = B | 0;\n        this.C = C | 0;\n        this.D = D | 0;\n        this.E = E | 0;\n        this.F = F | 0;\n        this.G = G | 0;\n        this.H = H | 0;\n    }\n    process(view, offset) {\n        // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n        for (let i = 0; i < 16; i++, offset += 4)\n            SHA256_W[i] = view.getUint32(offset, false);\n        for (let i = 16; i < 64; i++) {\n            const W15 = SHA256_W[i - 15];\n            const W2 = SHA256_W[i - 2];\n            const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n            const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n            SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n        }\n        // Compression function main loop, 64 rounds\n        let { A, B, C, D, E, F, G, H } = this;\n        for (let i = 0; i < 64; i++) {\n            const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n            const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n            const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n            const T2 = (sigma0 + Maj(A, B, C)) | 0;\n            H = G;\n            G = F;\n            F = E;\n            E = (D + T1) | 0;\n            D = C;\n            C = B;\n            B = A;\n            A = (T1 + T2) | 0;\n        }\n        // Add the compressed chunk to the current hash value\n        A = (A + this.A) | 0;\n        B = (B + this.B) | 0;\n        C = (C + this.C) | 0;\n        D = (D + this.D) | 0;\n        E = (E + this.E) | 0;\n        F = (F + this.F) | 0;\n        G = (G + this.G) | 0;\n        H = (H + this.H) | 0;\n        this.set(A, B, C, D, E, F, G, H);\n    }\n    roundClean() {\n        SHA256_W.fill(0);\n    }\n    destroy() {\n        this.set(0, 0, 0, 0, 0, 0, 0, 0);\n        this.buffer.fill(0);\n    }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n    constructor() {\n        super();\n        this.A = 0xc1059ed8 | 0;\n        this.B = 0x367cd507 | 0;\n        this.C = 0x3070dd17 | 0;\n        this.D = 0xf70e5939 | 0;\n        this.E = 0xffc00b31 | 0;\n        this.F = 0x68581511 | 0;\n        this.G = 0x64f98fa7 | 0;\n        this.H = 0xbefa4fa4 | 0;\n        this.outputLen = 28;\n    }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = /* @__PURE__ */ wrapConstructor(() => new SHA256());\n/**\n * SHA2-224 hash function\n */\nexport const sha224 = /* @__PURE__ */ wrapConstructor(() => new SHA224());\n//# sourceMappingURL=sha256.js.map","const U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\n// We are not using BigUint64Array, because they are extremely slow as per 2022\nfunction fromBig(n, le = false) {\n    if (le)\n        return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n    return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nfunction split(lst, le = false) {\n    let Ah = new Uint32Array(lst.length);\n    let Al = new Uint32Array(lst.length);\n    for (let i = 0; i < lst.length; i++) {\n        const { h, l } = fromBig(lst[i], le);\n        [Ah[i], Al[i]] = [h, l];\n    }\n    return [Ah, Al];\n}\nconst toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\n// for Shift in [0, 32)\nconst shrSH = (h, _l, s) => h >>> s;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (_h, l) => l;\nconst rotr32L = (h, _l) => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(Ah, Al, Bh, Bl) {\n    const l = (Al >>> 0) + (Bl >>> 0);\n    return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n// prettier-ignore\nexport { fromBig, split, toBig, shrSH, shrSL, rotrSH, rotrSL, rotrBH, rotrBL, rotr32H, rotr32L, rotlSH, rotlSL, rotlBH, rotlBL, add, add3L, add3H, add4L, add4H, add5H, add5L, };\n// prettier-ignore\nconst u64 = {\n    fromBig, split, toBig,\n    shrSH, shrSL,\n    rotrSH, rotrSL, rotrBH, rotrBL,\n    rotr32H, rotr32L,\n    rotlSH, rotlSL, rotlBH, rotlBL,\n    add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexport default u64;\n//# sourceMappingURL=_u64.js.map","import { HashMD } from './_md.js';\nimport u64 from './_u64.js';\nimport { wrapConstructor } from './utils.js';\n// Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409):\n// prettier-ignore\nconst [SHA512_Kh, SHA512_Kl] = /* @__PURE__ */ (() => u64.split([\n    '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n    '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n    '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n    '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n    '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n    '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n    '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n    '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n    '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n    '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n    '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n    '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n    '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n    '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n    '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n    '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n    '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n    '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n    '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n    '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n))))();\n// Temporary buffer, not used to store anything between runs\nconst SHA512_W_H = /* @__PURE__ */ new Uint32Array(80);\nconst SHA512_W_L = /* @__PURE__ */ new Uint32Array(80);\nexport class SHA512 extends HashMD {\n    constructor() {\n        super(128, 64, 16, false);\n        // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers.\n        // Also looks cleaner and easier to verify with spec.\n        // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n        // h -- high 32 bits, l -- low 32 bits\n        this.Ah = 0x6a09e667 | 0;\n        this.Al = 0xf3bcc908 | 0;\n        this.Bh = 0xbb67ae85 | 0;\n        this.Bl = 0x84caa73b | 0;\n        this.Ch = 0x3c6ef372 | 0;\n        this.Cl = 0xfe94f82b | 0;\n        this.Dh = 0xa54ff53a | 0;\n        this.Dl = 0x5f1d36f1 | 0;\n        this.Eh = 0x510e527f | 0;\n        this.El = 0xade682d1 | 0;\n        this.Fh = 0x9b05688c | 0;\n        this.Fl = 0x2b3e6c1f | 0;\n        this.Gh = 0x1f83d9ab | 0;\n        this.Gl = 0xfb41bd6b | 0;\n        this.Hh = 0x5be0cd19 | 0;\n        this.Hl = 0x137e2179 | 0;\n    }\n    // prettier-ignore\n    get() {\n        const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n        return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n    }\n    // prettier-ignore\n    set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n        this.Ah = Ah | 0;\n        this.Al = Al | 0;\n        this.Bh = Bh | 0;\n        this.Bl = Bl | 0;\n        this.Ch = Ch | 0;\n        this.Cl = Cl | 0;\n        this.Dh = Dh | 0;\n        this.Dl = Dl | 0;\n        this.Eh = Eh | 0;\n        this.El = El | 0;\n        this.Fh = Fh | 0;\n        this.Fl = Fl | 0;\n        this.Gh = Gh | 0;\n        this.Gl = Gl | 0;\n        this.Hh = Hh | 0;\n        this.Hl = Hl | 0;\n    }\n    process(view, offset) {\n        // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n        for (let i = 0; i < 16; i++, offset += 4) {\n            SHA512_W_H[i] = view.getUint32(offset);\n            SHA512_W_L[i] = view.getUint32((offset += 4));\n        }\n        for (let i = 16; i < 80; i++) {\n            // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n            const W15h = SHA512_W_H[i - 15] | 0;\n            const W15l = SHA512_W_L[i - 15] | 0;\n            const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);\n            const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);\n            // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n            const W2h = SHA512_W_H[i - 2] | 0;\n            const W2l = SHA512_W_L[i - 2] | 0;\n            const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);\n            const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);\n            // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n            const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n            const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n            SHA512_W_H[i] = SUMh | 0;\n            SHA512_W_L[i] = SUMl | 0;\n        }\n        let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n        // Compression function main loop, 80 rounds\n        for (let i = 0; i < 80; i++) {\n            // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n            const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);\n            const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);\n            //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n            const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n            const CHIl = (El & Fl) ^ (~El & Gl);\n            // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n            // prettier-ignore\n            const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n            const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n            const T1l = T1ll | 0;\n            // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n            const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);\n            const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);\n            const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n            const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n            Hh = Gh | 0;\n            Hl = Gl | 0;\n            Gh = Fh | 0;\n            Gl = Fl | 0;\n            Fh = Eh | 0;\n            Fl = El | 0;\n            ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n            Dh = Ch | 0;\n            Dl = Cl | 0;\n            Ch = Bh | 0;\n            Cl = Bl | 0;\n            Bh = Ah | 0;\n            Bl = Al | 0;\n            const All = u64.add3L(T1l, sigma0l, MAJl);\n            Ah = u64.add3H(All, T1h, sigma0h, MAJh);\n            Al = All | 0;\n        }\n        // Add the compressed chunk to the current hash value\n        ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n        ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n        ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n        ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n        ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n        ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n        ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n        ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n        this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n    }\n    roundClean() {\n        SHA512_W_H.fill(0);\n        SHA512_W_L.fill(0);\n    }\n    destroy() {\n        this.buffer.fill(0);\n        this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n    }\n}\nexport class SHA512_224 extends SHA512 {\n    constructor() {\n        super();\n        // h -- high 32 bits, l -- low 32 bits\n        this.Ah = 0x8c3d37c8 | 0;\n        this.Al = 0x19544da2 | 0;\n        this.Bh = 0x73e19966 | 0;\n        this.Bl = 0x89dcd4d6 | 0;\n        this.Ch = 0x1dfab7ae | 0;\n        this.Cl = 0x32ff9c82 | 0;\n        this.Dh = 0x679dd514 | 0;\n        this.Dl = 0x582f9fcf | 0;\n        this.Eh = 0x0f6d2b69 | 0;\n        this.El = 0x7bd44da8 | 0;\n        this.Fh = 0x77e36f73 | 0;\n        this.Fl = 0x04c48942 | 0;\n        this.Gh = 0x3f9d85a8 | 0;\n        this.Gl = 0x6a1d36c8 | 0;\n        this.Hh = 0x1112e6ad | 0;\n        this.Hl = 0x91d692a1 | 0;\n        this.outputLen = 28;\n    }\n}\nexport class SHA512_256 extends SHA512 {\n    constructor() {\n        super();\n        // h -- high 32 bits, l -- low 32 bits\n        this.Ah = 0x22312194 | 0;\n        this.Al = 0xfc2bf72c | 0;\n        this.Bh = 0x9f555fa3 | 0;\n        this.Bl = 0xc84c64c2 | 0;\n        this.Ch = 0x2393b86b | 0;\n        this.Cl = 0x6f53b151 | 0;\n        this.Dh = 0x96387719 | 0;\n        this.Dl = 0x5940eabd | 0;\n        this.Eh = 0x96283ee2 | 0;\n        this.El = 0xa88effe3 | 0;\n        this.Fh = 0xbe5e1e25 | 0;\n        this.Fl = 0x53863992 | 0;\n        this.Gh = 0x2b0199fc | 0;\n        this.Gl = 0x2c85b8aa | 0;\n        this.Hh = 0x0eb72ddc | 0;\n        this.Hl = 0x81c52ca2 | 0;\n        this.outputLen = 32;\n    }\n}\nexport class SHA384 extends SHA512 {\n    constructor() {\n        super();\n        // h -- high 32 bits, l -- low 32 bits\n        this.Ah = 0xcbbb9d5d | 0;\n        this.Al = 0xc1059ed8 | 0;\n        this.Bh = 0x629a292a | 0;\n        this.Bl = 0x367cd507 | 0;\n        this.Ch = 0x9159015a | 0;\n        this.Cl = 0x3070dd17 | 0;\n        this.Dh = 0x152fecd8 | 0;\n        this.Dl = 0xf70e5939 | 0;\n        this.Eh = 0x67332667 | 0;\n        this.El = 0xffc00b31 | 0;\n        this.Fh = 0x8eb44a87 | 0;\n        this.Fl = 0x68581511 | 0;\n        this.Gh = 0xdb0c2e0d | 0;\n        this.Gl = 0x64f98fa7 | 0;\n        this.Hh = 0x47b5481d | 0;\n        this.Hl = 0xbefa4fa4 | 0;\n        this.outputLen = 48;\n    }\n}\nexport const sha512 = /* @__PURE__ */ wrapConstructor(() => new SHA512());\nexport const sha512_224 = /* @__PURE__ */ wrapConstructor(() => new SHA512_224());\nexport const sha512_256 = /* @__PURE__ */ wrapConstructor(() => new SHA512_256());\nexport const sha384 = /* @__PURE__ */ wrapConstructor(() => new SHA384());\n//# sourceMappingURL=sha512.js.map","import { bytes, exists, number, output } from './_assert.js';\nimport { rotlBH, rotlBL, rotlSH, rotlSL, split } from './_u64.js';\nimport { Hash, u32, toBytes, wrapConstructor, wrapXOFConstructorWithOpts, isLE, byteSwap32, } from './utils.js';\n// SHA3 (keccak) is based on a new design: basically, the internal state is bigger than output size.\n// It's called a sponge function.\n// Various per round constants calculations\nconst SHA3_PI = [];\nconst SHA3_ROTL = [];\nconst _SHA3_IOTA = [];\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nconst _2n = /* @__PURE__ */ BigInt(2);\nconst _7n = /* @__PURE__ */ BigInt(7);\nconst _256n = /* @__PURE__ */ BigInt(256);\nconst _0x71n = /* @__PURE__ */ BigInt(0x71);\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n    // Pi\n    [x, y] = [y, (2 * x + 3 * y) % 5];\n    SHA3_PI.push(2 * (5 * y + x));\n    // Rotational\n    SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n    // Iota\n    let t = _0n;\n    for (let j = 0; j < 7; j++) {\n        R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n        if (R & _2n)\n            t ^= _1n << ((_1n << /* @__PURE__ */ BigInt(j)) - _1n);\n    }\n    _SHA3_IOTA.push(t);\n}\nconst [SHA3_IOTA_H, SHA3_IOTA_L] = /* @__PURE__ */ split(_SHA3_IOTA, true);\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h, l, s) => (s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s));\nconst rotlL = (h, l, s) => (s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s));\n// Same as keccakf1600, but allows to skip some rounds\nexport function keccakP(s, rounds = 24) {\n    const B = new Uint32Array(5 * 2);\n    // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n    for (let round = 24 - rounds; round < 24; round++) {\n        // Theta θ\n        for (let x = 0; x < 10; x++)\n            B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n        for (let x = 0; x < 10; x += 2) {\n            const idx1 = (x + 8) % 10;\n            const idx0 = (x + 2) % 10;\n            const B0 = B[idx0];\n            const B1 = B[idx0 + 1];\n            const Th = rotlH(B0, B1, 1) ^ B[idx1];\n            const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n            for (let y = 0; y < 50; y += 10) {\n                s[x + y] ^= Th;\n                s[x + y + 1] ^= Tl;\n            }\n        }\n        // Rho (ρ) and Pi (π)\n        let curH = s[2];\n        let curL = s[3];\n        for (let t = 0; t < 24; t++) {\n            const shift = SHA3_ROTL[t];\n            const Th = rotlH(curH, curL, shift);\n            const Tl = rotlL(curH, curL, shift);\n            const PI = SHA3_PI[t];\n            curH = s[PI];\n            curL = s[PI + 1];\n            s[PI] = Th;\n            s[PI + 1] = Tl;\n        }\n        // Chi (χ)\n        for (let y = 0; y < 50; y += 10) {\n            for (let x = 0; x < 10; x++)\n                B[x] = s[y + x];\n            for (let x = 0; x < 10; x++)\n                s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n        }\n        // Iota (ι)\n        s[0] ^= SHA3_IOTA_H[round];\n        s[1] ^= SHA3_IOTA_L[round];\n    }\n    B.fill(0);\n}\nexport class Keccak extends Hash {\n    // NOTE: we accept arguments in bytes instead of bits here.\n    constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {\n        super();\n        this.blockLen = blockLen;\n        this.suffix = suffix;\n        this.outputLen = outputLen;\n        this.enableXOF = enableXOF;\n        this.rounds = rounds;\n        this.pos = 0;\n        this.posOut = 0;\n        this.finished = false;\n        this.destroyed = false;\n        // Can be passed from user as dkLen\n        number(outputLen);\n        // 1600 = 5x5 matrix of 64bit.  1600 bits === 200 bytes\n        if (0 >= this.blockLen || this.blockLen >= 200)\n            throw new Error('Sha3 supports only keccak-f1600 function');\n        this.state = new Uint8Array(200);\n        this.state32 = u32(this.state);\n    }\n    keccak() {\n        if (!isLE)\n            byteSwap32(this.state32);\n        keccakP(this.state32, this.rounds);\n        if (!isLE)\n            byteSwap32(this.state32);\n        this.posOut = 0;\n        this.pos = 0;\n    }\n    update(data) {\n        exists(this);\n        const { blockLen, state } = this;\n        data = toBytes(data);\n        const len = data.length;\n        for (let pos = 0; pos < len;) {\n            const take = Math.min(blockLen - this.pos, len - pos);\n            for (let i = 0; i < take; i++)\n                state[this.pos++] ^= data[pos++];\n            if (this.pos === blockLen)\n                this.keccak();\n        }\n        return this;\n    }\n    finish() {\n        if (this.finished)\n            return;\n        this.finished = true;\n        const { state, suffix, pos, blockLen } = this;\n        // Do the padding\n        state[pos] ^= suffix;\n        if ((suffix & 0x80) !== 0 && pos === blockLen - 1)\n            this.keccak();\n        state[blockLen - 1] ^= 0x80;\n        this.keccak();\n    }\n    writeInto(out) {\n        exists(this, false);\n        bytes(out);\n        this.finish();\n        const bufferOut = this.state;\n        const { blockLen } = this;\n        for (let pos = 0, len = out.length; pos < len;) {\n            if (this.posOut >= blockLen)\n                this.keccak();\n            const take = Math.min(blockLen - this.posOut, len - pos);\n            out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);\n            this.posOut += take;\n            pos += take;\n        }\n        return out;\n    }\n    xofInto(out) {\n        // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n        if (!this.enableXOF)\n            throw new Error('XOF is not possible for this instance');\n        return this.writeInto(out);\n    }\n    xof(bytes) {\n        number(bytes);\n        return this.xofInto(new Uint8Array(bytes));\n    }\n    digestInto(out) {\n        output(out, this);\n        if (this.finished)\n            throw new Error('digest() was already called');\n        this.writeInto(out);\n        this.destroy();\n        return out;\n    }\n    digest() {\n        return this.digestInto(new Uint8Array(this.outputLen));\n    }\n    destroy() {\n        this.destroyed = true;\n        this.state.fill(0);\n    }\n    _cloneInto(to) {\n        const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n        to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));\n        to.state32.set(this.state32);\n        to.pos = this.pos;\n        to.posOut = this.posOut;\n        to.finished = this.finished;\n        to.rounds = rounds;\n        // Suffix can change in cSHAKE\n        to.suffix = suffix;\n        to.outputLen = outputLen;\n        to.enableXOF = enableXOF;\n        to.destroyed = this.destroyed;\n        return to;\n    }\n}\nconst gen = (suffix, blockLen, outputLen) => wrapConstructor(() => new Keccak(blockLen, suffix, outputLen));\nexport const sha3_224 = /* @__PURE__ */ gen(0x06, 144, 224 / 8);\n/**\n * SHA3-256 hash function\n * @param message - that would be hashed\n */\nexport const sha3_256 = /* @__PURE__ */ gen(0x06, 136, 256 / 8);\nexport const sha3_384 = /* @__PURE__ */ gen(0x06, 104, 384 / 8);\nexport const sha3_512 = /* @__PURE__ */ gen(0x06, 72, 512 / 8);\nexport const keccak_224 = /* @__PURE__ */ gen(0x01, 144, 224 / 8);\n/**\n * keccak-256 hash function. Different from SHA3-256.\n * @param message - that would be hashed\n */\nexport const keccak_256 = /* @__PURE__ */ gen(0x01, 136, 256 / 8);\nexport const keccak_384 = /* @__PURE__ */ gen(0x01, 104, 384 / 8);\nexport const keccak_512 = /* @__PURE__ */ gen(0x01, 72, 512 / 8);\nconst genShake = (suffix, blockLen, outputLen) => wrapXOFConstructorWithOpts((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));\nexport const shake128 = /* @__PURE__ */ genShake(0x1f, 168, 128 / 8);\nexport const shake256 = /* @__PURE__ */ genShake(0x1f, 136, 256 / 8);\n//# sourceMappingURL=sha3.js.map"],"names":["number","n","Number","isSafeInteger","Error","bytes","b","lengths","a","Uint8Array","constructor","name","length","includes","hash","h","create","outputLen","blockLen","exists","instance","checkFinished","destroyed","finished","output","out","min","crypto","globalThis","undefined","createView","arr","DataView","buffer","byteOffset","byteLength","rotr","word","shift","rotl","isLE","Uint32Array","byteSwap32","i","utf8ToBytes","str","TextEncoder","encode","toBytes","data","abytes","concatBytes","arrays","sum","res","pad","set","Hash","clone","this","_cloneInto","wrapConstructor","hashCons","hashC","msg","update","digest","tmp","randomBytes","bytesLength","getRandomValues","Chi","c","Maj","HashMD","padOffset","super","pos","view","len","take","Math","subarray","process","dataView","roundClean","digestInto","fill","value","setBigUint64","_32n","BigInt","_u32_max","wh","wl","l","setUint32","oview","outLen","state","get","slice","destroy","to","SHA256_K","SHA256_IV","SHA256_W","SHA256","A","B","C","D","E","F","G","H","offset","getUint32","W15","W2","s0","s1","T1","T2","SHA224","sha256","sha224","U32_MASK64","fromBig","le","split","lst","Ah","Al","rotlSH","s","rotlSL","rotlBH","rotlBL","u64","toBig","shrSH","_l","shrSL","rotrSH","rotrSL","rotrBH","rotrBL","rotr32H","_h","rotr32L","add","Bh","Bl","add3L","Cl","add3H","low","Ch","add4L","Dl","add4H","Dh","add5H","Eh","add5L","El","SHA512_Kh","SHA512_Kl","map","SHA512_W_H","SHA512_W_L","SHA512","Fh","Fl","Gh","Gl","Hh","Hl","W15h","W15l","s0h","s0l","W2h","W2l","s1h","s1l","SUMl","SUMh","sigma1h","sigma1l","CHIh","CHIl","T1ll","T1h","T1l","sigma0h","sigma0l","MAJh","MAJl","All","SHA384","sha512","sha384","SHA3_PI","SHA3_ROTL","_SHA3_IOTA","_0n","_1n","_2n","_7n","_256n","_0x71n","round","R","x","y","push","t","j","SHA3_IOTA_H","SHA3_IOTA_L","rotlH","rotlL","Keccak","suffix","enableXOF","rounds","posOut","state32","floor","keccak","idx1","idx0","B0","B1","Th","Tl","curH","curL","PI","keccakP","finish","writeInto","bufferOut","xofInto","xof","gen","sha3_256","sha3_512","shake256","opts","wrapXOFConstructorWithOpts","dkLen","genShake"],"mappings":";6GAAA,SAASA,EAAOC,GACZ,IAAKC,OAAOC,cAAcF,IAAMA,EAAI,EAChC,MAAUG,MAAM,kCAAkCH,EAC1D,CAUA,SAASI,EAAMC,KAAMC,GACjB,MALoBC,EAKPF,aAJQG,YACX,MAALD,GAA0B,iBAANA,GAAyC,eAAvBA,EAAEE,YAAYC,MAIrD,MAAUP,MAAM,uBANjB,IAAiBI,EAOpB,GAAID,EAAQK,OAAS,IAAML,EAAQM,SAASP,EAAEM,QAC1C,MAAUR,MAAM,iCAAiCG,oBAA0BD,EAAEM,SACrF,CACA,SAASE,EAAKC,GACV,GAAiB,mBAANA,GAAwC,mBAAbA,EAAEC,OACpC,MAAUZ,MAAM,mDACpBJ,EAAOe,EAAEE,WACTjB,EAAOe,EAAEG,SACb,CACA,SAASC,EAAOC,EAAUC,GAAgB,GACtC,GAAID,EAASE,UACT,MAAUlB,MAAM,oCACpB,GAAIiB,GAAiBD,EAASG,SAC1B,MAAUnB,MAAM,wCACxB,CACA,SAASoB,EAAOC,EAAKL,GACjBf,EAAMoB,GACN,MAAMC,EAAMN,EAASH,UACrB,GAAIQ,EAAIb,OAASc,EACb,MAAUtB,MAAM,yDAAyDsB,EAEjF,CCrCO,MAAMC,EAA+B,iBAAfC,GAA2B,WAAYA,EAAaA,EAAWD,YAASE,ECmBxFC,EAAcC,GAAQ,IAAIC,SAASD,EAAIE,OAAQF,EAAIG,WAAYH,EAAII,YAEnEC,EAAO,CAACC,EAAMC,IAAWD,GAAS,GAAKC,EAAWD,IAASC,EAE3DC,EAAO,CAACF,EAAMC,IAAWD,GAAQC,EAAWD,IAAU,GAAKC,IAAY,EACvEE,EAAmE,KAA5D,IAAI/B,WAAW,IAAIgC,YAAY,CAAC,YAAaR,QAAQ;sEASlE,SAASS,EAAWX,GACvB,IAAK,IAAIY,EAAI,EAAGA,EAAIZ,EAAInB,OAAQ+B,IAC5BZ,EAAIY,IATaN,EASCN,EAAIY,KATc,GAAM,WAC5CN,GAAQ,EAAK,SACbA,IAAS,EAAK,MACdA,IAAS,GAAM,IAHG,IAACA,CAWzB,CAoEO,SAASO,EAAYC,GACxB,GAAmB,iBAARA,EACP,MAAUzC,MAAM,2CAA2CyC,GAC/D,OAAO,IAAIpC,YAAW,IAAIqC,aAAcC,OAAOF,GACnD,CAMO,SAASG,EAAQC,GAIpB,MAHoB,iBAATA,IACPA,EAAOL,EAAYK,IACvBC,EAAOD,GACAA,CACX,CAIO,SAASE,KAAeC,GAC3B,IAAIC,EAAM,EACV,IAAK,IAAIV,EAAI,EAAGA,EAAIS,EAAOxC,OAAQ+B,IAAK,CACpC,MAAMnC,EAAI4C,EAAOT,GACjBO,EAAO1C,GACP6C,GAAO7C,EAAEI,MACjB,CACI,MAAM0C,EAAM,IAAI7C,WAAW4C,GAC3B,IAAK,IAAIV,EAAI,EAAGY,EAAM,EAAGZ,EAAIS,EAAOxC,OAAQ+B,IAAK,CAC7C,MAAMnC,EAAI4C,EAAOT,GACjBW,EAAIE,IAAIhD,EAAG+C,GACXA,GAAO/C,EAAEI,MACjB,CACI,OAAO0C,CACX,CAEO,MAAMG,EAET,KAAAC,GACI,OAAOC,KAAKC,YACpB,EASO,SAASC,EAAgBC,GAC5B,MAAMC,EAASC,GAAQF,IAAWG,OAAOjB,EAAQgB,IAAME,SACjDC,EAAML,IAIZ,OAHAC,EAAM9C,UAAYkD,EAAIlD,UACtB8C,EAAM7C,SAAWiD,EAAIjD,SACrB6C,EAAM/C,OAAS,IAAM8C,IACdC,CACX,CAoBO,SAASK,EAAYC,EAAc,IACtC,GAAI1C,GAA4C,mBAA3BA,EAAO2C,gBACxB,OAAO3C,EAAO2C,gBAAgB,IAAI7D,WAAW4D,IAGjD,GAAI1C,GAAwC,mBAAvBA,EAAOyC,YACxB,OAAOzC,EAAOyC,YAAYC,GAE9B,MAAUjE,MAAM,yCACpB,CCzKY,MAACmE,EAAM,CAAC/D,EAAGF,EAAGkE,IAAOhE,EAAIF,GAAOE,EAAIgE,EAInCC,EAAM,CAACjE,EAAGF,EAAGkE,IAAOhE,EAAIF,EAAME,EAAIgE,EAAMlE,EAAIkE,EAKlD,MAAME,UAAejB,EACxB,WAAA/C,CAAYQ,EAAUD,EAAW0D,EAAWnC,GACxCoC,QACAjB,KAAKzC,SAAWA,EAChByC,KAAK1C,UAAYA,EACjB0C,KAAKgB,UAAYA,EACjBhB,KAAKnB,KAAOA,EACZmB,KAAKpC,UAAW,EAChBoC,KAAK/C,OAAS,EACd+C,KAAKkB,IAAM,EACXlB,KAAKrC,WAAY,EACjBqC,KAAK1B,OAAS,IAAIxB,WAAWS,GAC7ByC,KAAKmB,KAAOhD,EAAW6B,KAAK1B,OACpC,CACI,MAAAgC,CAAOhB,GACH9B,EAAOwC,MACP,MAAMmB,KAAEA,EAAI7C,OAAEA,EAAMf,SAAEA,GAAayC,KAE7BoB,GADN9B,EAAOD,EAAQC,IACErC,OACjB,IAAK,IAAIiE,EAAM,EAAGA,EAAME,GAAM,CAC1B,MAAMC,EAAOC,KAAKvD,IAAIR,EAAWyC,KAAKkB,IAAKE,EAAMF,GAEjD,GAAIG,IAAS9D,EAMbe,EAAOuB,IAAIP,EAAKiC,SAASL,EAAKA,EAAMG,GAAOrB,KAAKkB,KAChDlB,KAAKkB,KAAOG,EACZH,GAAOG,EACHrB,KAAKkB,MAAQ3D,IACbyC,KAAKwB,QAAQL,EAAM,GACnBnB,KAAKkB,IAAM,OAXf,CACI,MAAMO,EAAWtD,EAAWmB,GAC5B,KAAO/B,GAAY6D,EAAMF,EAAKA,GAAO3D,EACjCyC,KAAKwB,QAAQC,EAAUP,EAE3C,CAQA,CAGQ,OAFAlB,KAAK/C,QAAUqC,EAAKrC,OACpB+C,KAAK0B,aACE1B,IACf,CACI,UAAA2B,CAAW7D,GACPN,EAAOwC,MACPnC,EAAOC,EAAKkC,MACZA,KAAKpC,UAAW,EAIhB,MAAMU,OAAEA,EAAM6C,KAAEA,EAAI5D,SAAEA,EAAQsB,KAAEA,GAASmB,KACzC,IAAIkB,IAAEA,GAAQlB,KAEd1B,EAAO4C,KAAS,IAChBlB,KAAK1B,OAAOiD,SAASL,GAAKU,KAAK,GAG3B5B,KAAKgB,UAAYzD,EAAW2D,IAC5BlB,KAAKwB,QAAQL,EAAM,GACnBD,EAAM,GAGV,IAAK,IAAIlC,EAAIkC,EAAKlC,EAAIzB,EAAUyB,IAC5BV,EAAOU,GAAK,GApFxB,SAAsBmC,EAAM5C,EAAYsD,EAAOhD,GAC3C,GAAiC,mBAAtBsC,EAAKW,aACZ,OAAOX,EAAKW,aAAavD,EAAYsD,EAAOhD,GAChD,MAAMkD,EAAOC,OAAO,IACdC,EAAWD,OAAO,YAClBE,EAAK3F,OAAQsF,GAASE,EAAQE,GAC9BE,EAAK5F,OAAOsF,EAAQI,GACpB7E,EAAIyB,EAAO,EAAI,EACfuD,EAAIvD,EAAO,EAAI,EACrBsC,EAAKkB,UAAU9D,EAAanB,EAAG8E,EAAIrD,GACnCsC,EAAKkB,UAAU9D,EAAa6D,EAAGD,EAAItD,EACvC,CA6EQiD,CAAaX,EAAM5D,EAAW,EAAGyE,OAAqB,EAAdhC,KAAK/C,QAAa4B,GAC1DmB,KAAKwB,QAAQL,EAAM,GACnB,MAAMmB,EAAQnE,EAAWL,GACnBsD,EAAMpB,KAAK1C,UAEjB,GAAI8D,EAAM,EACN,MAAU3E,MAAM,+CACpB,MAAM8F,EAASnB,EAAM,EACfoB,EAAQxC,KAAKyC,MACnB,GAAIF,EAASC,EAAMvF,OACf,MAAUR,MAAM,sCACpB,IAAK,IAAIuC,EAAI,EAAGA,EAAIuD,EAAQvD,IACxBsD,EAAMD,UAAU,EAAIrD,EAAGwD,EAAMxD,GAAIH,EAC7C,CACI,MAAA0B,GACI,MAAMjC,OAAEA,EAAMhB,UAAEA,GAAc0C,KAC9BA,KAAK2B,WAAWrD,GAChB,MAAMqB,EAAMrB,EAAOoE,MAAM,EAAGpF,GAE5B,OADA0C,KAAK2C,UACEhD,CACf,CACI,UAAAM,CAAW2C,GACPA,IAAOA,EAAK,IAAI5C,KAAKjD,aACrB6F,EAAG/C,OAAOG,KAAKyC,OACf,MAAMlF,SAAEA,EAAQe,OAAEA,EAAMrB,OAAEA,EAAMW,SAAEA,EAAQD,UAAEA,EAASuD,IAAEA,GAAQlB,KAO/D,OANA4C,EAAG3F,OAASA,EACZ2F,EAAG1B,IAAMA,EACT0B,EAAGhF,SAAWA,EACdgF,EAAGjF,UAAYA,EACXV,EAASM,GACTqF,EAAGtE,OAAOuB,IAAIvB,GACXsE,CACf,ECtHA,MAAMC,iBAA2B,IAAI/D,YAAY,CAC7C,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WACpF,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UACpF,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UACpF,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,aAKlFgE,iBAA4B,IAAIhE,YAAY,CAC9C,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,aAIlFiE,iBAA2B,IAAIjE,YAAY,IAC1C,MAAMkE,UAAejC,EACxB,WAAAhE,GACIkE,MAAM,GAAI,GAAI,GAAG,GAGjBjB,KAAKiD,EAAmB,EAAfH,EAAU,GACnB9C,KAAKkD,EAAmB,EAAfJ,EAAU,GACnB9C,KAAKmD,EAAmB,EAAfL,EAAU,GACnB9C,KAAKoD,EAAmB,EAAfN,EAAU,GACnB9C,KAAKqD,EAAmB,EAAfP,EAAU,GACnB9C,KAAKsD,EAAmB,EAAfR,EAAU,GACnB9C,KAAKuD,EAAmB,EAAfT,EAAU,GACnB9C,KAAKwD,EAAmB,EAAfV,EAAU,EAC3B,CACI,GAAAL,GACI,MAAMQ,EAAEA,EAACC,EAAEA,EAACC,EAAEA,EAACC,EAAEA,EAACC,EAAEA,EAACC,EAAEA,EAACC,EAAEA,EAACC,EAAEA,GAAMxD,KACnC,MAAO,CAACiD,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EACrC,CAEI,GAAA3D,CAAIoD,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,GACrBxD,KAAKiD,EAAQ,EAAJA,EACTjD,KAAKkD,EAAQ,EAAJA,EACTlD,KAAKmD,EAAQ,EAAJA,EACTnD,KAAKoD,EAAQ,EAAJA,EACTpD,KAAKqD,EAAQ,EAAJA,EACTrD,KAAKsD,EAAQ,EAAJA,EACTtD,KAAKuD,EAAQ,EAAJA,EACTvD,KAAKwD,EAAQ,EAAJA,CACjB,CACI,OAAAhC,CAAQL,EAAMsC,GAEV,IAAK,IAAIzE,EAAI,EAAGA,EAAI,GAAIA,IAAKyE,GAAU,EACnCV,EAAS/D,GAAKmC,EAAKuC,UAAUD,GAAQ,GACzC,IAAK,IAAIzE,EAAI,GAAIA,EAAI,GAAIA,IAAK,CAC1B,MAAM2E,EAAMZ,EAAS/D,EAAI,IACnB4E,EAAKb,EAAS/D,EAAI,GAClB6E,EAAKpF,EAAKkF,EAAK,GAAKlF,EAAKkF,EAAK,IAAOA,IAAQ,EAC7CG,EAAKrF,EAAKmF,EAAI,IAAMnF,EAAKmF,EAAI,IAAOA,IAAO,GACjDb,EAAS/D,GAAM8E,EAAKf,EAAS/D,EAAI,GAAK6E,EAAKd,EAAS/D,EAAI,IAAO,CAC3E,CAEQ,IAAIiE,EAAEA,EAACC,EAAEA,EAACC,EAAEA,EAACC,EAAEA,EAACC,EAAEA,EAACC,EAAEA,EAACC,EAAEA,EAACC,EAAEA,GAAMxD,KACjC,IAAK,IAAIhB,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACzB,MACM+E,EAAMP,GADG/E,EAAK4E,EAAG,GAAK5E,EAAK4E,EAAG,IAAM5E,EAAK4E,EAAG,KACzBzC,EAAIyC,EAAGC,EAAGC,GAAKV,EAAS7D,GAAK+D,EAAS/D,GAAM,EAE/DgF,GADSvF,EAAKwE,EAAG,GAAKxE,EAAKwE,EAAG,IAAMxE,EAAKwE,EAAG,KAC7BnC,EAAImC,EAAGC,EAAGC,GAAM,EACrCK,EAAID,EACJA,EAAID,EACJA,EAAID,EACJA,EAAKD,EAAIW,EAAM,EACfX,EAAID,EACJA,EAAID,EACJA,EAAID,EACJA,EAAKc,EAAKC,EAAM,CAC5B,CAEQf,EAAKA,EAAIjD,KAAKiD,EAAK,EACnBC,EAAKA,EAAIlD,KAAKkD,EAAK,EACnBC,EAAKA,EAAInD,KAAKmD,EAAK,EACnBC,EAAKA,EAAIpD,KAAKoD,EAAK,EACnBC,EAAKA,EAAIrD,KAAKqD,EAAK,EACnBC,EAAKA,EAAItD,KAAKsD,EAAK,EACnBC,EAAKA,EAAIvD,KAAKuD,EAAK,EACnBC,EAAKA,EAAIxD,KAAKwD,EAAK,EACnBxD,KAAKH,IAAIoD,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EACtC,CACI,UAAA9B,GACIqB,EAASnB,KAAK,EACtB,CACI,OAAAe,GACI3C,KAAKH,IAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAC9BG,KAAK1B,OAAOsD,KAAK,EACzB,EAGA,MAAMqC,UAAejB,EACjB,WAAAjG,GACIkE,QACAjB,KAAKiD,GAAI,WACTjD,KAAKkD,EAAI,UACTlD,KAAKmD,EAAI,UACTnD,KAAKoD,GAAI,UACTpD,KAAKqD,GAAI,QACTrD,KAAKsD,EAAI,WACTtD,KAAKuD,EAAI,WACTvD,KAAKwD,GAAI,WACTxD,KAAK1C,UAAY,EACzB,EAMY,MAAC4G,iBAAyBhE,GAAgB,IAAM,IAAI8C,IAInDmB,iBAAyBjE,GAAgB,IAAM,IAAI+D,IC5H1DG,iBAA6BpC,OAAO,GAAK,GAAK,GAC9CD,iBAAuBC,OAAO,IAEpC,SAASqC,EAAQ/H,EAAGgI,GAAK,GACrB,OAAIA,EACO,CAAElH,EAAGb,OAAOD,EAAI8H,GAAahC,EAAG7F,OAAQD,GAAKyF,EAAQqC,IACzD,CAAEhH,EAAsC,EAAnCb,OAAQD,GAAKyF,EAAQqC,GAAiBhC,EAA4B,EAAzB7F,OAAOD,EAAI8H,GACpE,CACA,SAASG,EAAMC,EAAKF,GAAK,GACrB,IAAIG,EAAK,IAAI3F,YAAY0F,EAAIvH,QACzByH,EAAK,IAAI5F,YAAY0F,EAAIvH,QAC7B,IAAK,IAAI+B,EAAI,EAAGA,EAAIwF,EAAIvH,OAAQ+B,IAAK,CACjC,MAAM5B,EAAGgF,EAAEA,GAAMiC,EAAQG,EAAIxF,GAAIsF,IAChCG,EAAGzF,GAAI0F,EAAG1F,IAAM,CAAC5B,EAAGgF,EAC7B,CACI,MAAO,CAACqC,EAAIC,EAChB,CACA,MAcMC,EAAS,CAACvH,EAAGgF,EAAGwC,IAAOxH,GAAKwH,EAAMxC,IAAO,GAAKwC,EAC9CC,EAAS,CAACzH,EAAGgF,EAAGwC,IAAOxC,GAAKwC,EAAMxH,IAAO,GAAKwH,EAE9CE,EAAS,CAAC1H,EAAGgF,EAAGwC,IAAOxC,GAAMwC,EAAI,GAAQxH,IAAO,GAAKwH,EACrDG,EAAS,CAAC3H,EAAGgF,EAAGwC,IAAOxH,GAAMwH,EAAI,GAAQxC,IAAO,GAAKwC,EAQ3D,MASMI,EAAM,CACRX,UAASE,QAAOU,MApCN,CAAC7H,EAAGgF,IAAOJ,OAAO5E,IAAM,IAAM2E,EAAQC,OAAOI,IAAM,GAqC7D8C,MAnCU,CAAC9H,EAAG+H,EAAIP,IAAMxH,IAAMwH,EAmCvBQ,MAlCG,CAAChI,EAAGgF,EAAGwC,IAAOxH,GAAM,GAAKwH,EAAOxC,IAAMwC,EAmChDS,OAjCW,CAACjI,EAAGgF,EAAGwC,IAAOxH,IAAMwH,EAAMxC,GAAM,GAAKwC,EAiCxCU,OAhCG,CAAClI,EAAGgF,EAAGwC,IAAOxH,GAAM,GAAKwH,EAAOxC,IAAMwC,EAgCjCW,OA9BL,CAACnI,EAAGgF,EAAGwC,IAAOxH,GAAM,GAAKwH,EAAOxC,IAAOwC,EAAI,GA8B9BY,OA7Bb,CAACpI,EAAGgF,EAAGwC,IAAOxH,IAAOwH,EAAI,GAAQxC,GAAM,GAAKwC,EA8BvDa,QA5BY,CAACC,EAAItD,IAAMA,EA4BduD,QA3BG,CAACvI,EAAG+H,IAAO/H,EA4BvBuH,SAAQE,SAAQC,SAAQC,SACxBa,IApBJ,SAAanB,EAAIC,EAAImB,EAAIC,GACrB,MAAM1D,GAAKsC,IAAO,IAAMoB,IAAO,GAC/B,MAAO,CAAE1I,EAAIqH,EAAKoB,GAAOzD,EAAI,GAAK,GAAM,GAAM,EAAGA,EAAO,EAAJA,EACxD,EAiBS2D,MAfK,CAACrB,EAAIoB,EAAIE,KAAQtB,IAAO,IAAMoB,IAAO,IAAME,IAAO,GAehDC,MAdF,CAACC,EAAKzB,EAAIoB,EAAIM,IAAQ1B,EAAKoB,EAAKM,GAAOD,EAAM,GAAK,GAAM,GAAM,EAcrDE,MAbT,CAAC1B,EAAIoB,EAAIE,EAAIK,KAAQ3B,IAAO,IAAMoB,IAAO,IAAME,IAAO,IAAMK,IAAO,GAanDC,MAZhB,CAACJ,EAAKzB,EAAIoB,EAAIM,EAAII,IAAQ9B,EAAKoB,EAAKM,EAAKI,GAAOL,EAAM,GAAK,GAAM,GAAM,EAYhDM,MAVvB,CAACN,EAAKzB,EAAIoB,EAAIM,EAAII,EAAIE,IAAQhC,EAAKoB,EAAKM,EAAKI,EAAKE,GAAOP,EAAM,GAAK,GAAM,GAAM,EAUlDQ,MAX9B,CAAChC,EAAIoB,EAAIE,EAAIK,EAAIM,KAAQjC,IAAO,IAAMoB,IAAO,IAAME,IAAO,IAAMK,IAAO,IAAMM,IAAO,KC1C3FC,EAAWC,kBAA6B,KAAO7B,EAAIT,MAAM,CAC5D,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,sBACpEuC,KAAIxK,GAAK0F,OAAO1F,MArB6B,GAuBzCyK,iBAA6B,IAAIjI,YAAY,IAC7CkI,iBAA6B,IAAIlI,YAAY,IAC5C,MAAMmI,UAAelG,EACxB,WAAAhE,GACIkE,MAAM,IAAK,GAAI,IAAI,GAKnBjB,KAAKyE,GAAK,WACVzE,KAAK0E,IAAK,UACV1E,KAAK6F,IAAK,WACV7F,KAAK8F,IAAK,WACV9F,KAAKmG,GAAK,WACVnG,KAAKgG,IAAK,SACVhG,KAAKuG,IAAK,WACVvG,KAAKqG,GAAK,WACVrG,KAAKyG,GAAK,WACVzG,KAAK2G,IAAK,WACV3G,KAAKkH,IAAK,WACVlH,KAAKmH,GAAK,UACVnH,KAAKoH,GAAK,UACVpH,KAAKqH,IAAK,SACVrH,KAAKsH,GAAK,WACVtH,KAAKuH,GAAK,SAClB,CAEI,GAAA9E,GACI,MAAMgC,GAAEA,EAAEC,GAAEA,EAAEmB,GAAEA,EAAEC,GAAEA,EAAEK,GAAEA,EAAEH,GAAEA,EAAEO,GAAEA,EAAEF,GAAEA,EAAEI,GAAEA,EAAEE,GAAEA,EAAEO,GAAEA,EAAEC,GAAEA,EAAEC,GAAEA,EAAEC,GAAEA,EAAEC,GAAEA,EAAEC,GAAEA,GAAOvH,KAC3E,MAAO,CAACyE,EAAIC,EAAImB,EAAIC,EAAIK,EAAIH,EAAIO,EAAIF,EAAII,EAAIE,EAAIO,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAC5E,CAEI,GAAA1H,CAAI4E,EAAIC,EAAImB,EAAIC,EAAIK,EAAIH,EAAIO,EAAIF,EAAII,EAAIE,EAAIO,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAC5DvH,KAAKyE,GAAU,EAALA,EACVzE,KAAK0E,GAAU,EAALA,EACV1E,KAAK6F,GAAU,EAALA,EACV7F,KAAK8F,GAAU,EAALA,EACV9F,KAAKmG,GAAU,EAALA,EACVnG,KAAKgG,GAAU,EAALA,EACVhG,KAAKuG,GAAU,EAALA,EACVvG,KAAKqG,GAAU,EAALA,EACVrG,KAAKyG,GAAU,EAALA,EACVzG,KAAK2G,GAAU,EAALA,EACV3G,KAAKkH,GAAU,EAALA,EACVlH,KAAKmH,GAAU,EAALA,EACVnH,KAAKoH,GAAU,EAALA,EACVpH,KAAKqH,GAAU,EAALA,EACVrH,KAAKsH,GAAU,EAALA,EACVtH,KAAKuH,GAAU,EAALA,CAClB,CACI,OAAA/F,CAAQL,EAAMsC,GAEV,IAAK,IAAIzE,EAAI,EAAGA,EAAI,GAAIA,IAAKyE,GAAU,EACnCsD,EAAW/H,GAAKmC,EAAKuC,UAAUD,GAC/BuD,EAAWhI,GAAKmC,EAAKuC,UAAWD,GAAU,GAE9C,IAAK,IAAIzE,EAAI,GAAIA,EAAI,GAAIA,IAAK,CAE1B,MAAMwI,EAA4B,EAArBT,EAAW/H,EAAI,IACtByI,EAA4B,EAArBT,EAAWhI,EAAI,IACtB0I,EAAM1C,EAAIK,OAAOmC,EAAMC,EAAM,GAAKzC,EAAIK,OAAOmC,EAAMC,EAAM,GAAKzC,EAAIE,MAAMsC,EAAMC,EAAM,GACpFE,EAAM3C,EAAIM,OAAOkC,EAAMC,EAAM,GAAKzC,EAAIM,OAAOkC,EAAMC,EAAM,GAAKzC,EAAII,MAAMoC,EAAMC,EAAM,GAEpFG,EAA0B,EAApBb,EAAW/H,EAAI,GACrB6I,EAA0B,EAApBb,EAAWhI,EAAI,GACrB8I,EAAM9C,EAAIK,OAAOuC,EAAKC,EAAK,IAAM7C,EAAIO,OAAOqC,EAAKC,EAAK,IAAM7C,EAAIE,MAAM0C,EAAKC,EAAK,GAChFE,EAAM/C,EAAIM,OAAOsC,EAAKC,EAAK,IAAM7C,EAAIQ,OAAOoC,EAAKC,EAAK,IAAM7C,EAAII,MAAMwC,EAAKC,EAAK,GAEhFG,EAAOhD,EAAIoB,MAAMuB,EAAKI,EAAKf,EAAWhI,EAAI,GAAIgI,EAAWhI,EAAI,KAC7DiJ,EAAOjD,EAAIsB,MAAM0B,EAAMN,EAAKI,EAAKf,EAAW/H,EAAI,GAAI+H,EAAW/H,EAAI,KACzE+H,EAAW/H,GAAY,EAAPiJ,EAChBjB,EAAWhI,GAAY,EAAPgJ,CAC5B,CACQ,IAAIvD,GAAEA,EAAEC,GAAEA,EAAEmB,GAAEA,EAAEC,GAAEA,EAAEK,GAAEA,EAAEH,GAAEA,EAAEO,GAAEA,EAAEF,GAAEA,EAAEI,GAAEA,EAAEE,GAAEA,EAAEO,GAAEA,EAAEC,GAAEA,EAAEC,GAAEA,EAAEC,GAAEA,EAAEC,GAAEA,EAAEC,GAAEA,GAAOvH,KAEzE,IAAK,IAAIhB,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAEzB,MAAMkJ,EAAUlD,EAAIK,OAAOoB,EAAIE,EAAI,IAAM3B,EAAIK,OAAOoB,EAAIE,EAAI,IAAM3B,EAAIO,OAAOkB,EAAIE,EAAI,IAC/EwB,EAAUnD,EAAIM,OAAOmB,EAAIE,EAAI,IAAM3B,EAAIM,OAAOmB,EAAIE,EAAI,IAAM3B,EAAIQ,OAAOiB,EAAIE,EAAI,IAE/EyB,EAAQ3B,EAAKS,GAAQT,EAAKW,EAC1BiB,EAAQ1B,EAAKQ,GAAQR,EAAKU,EAG1BiB,EAAOtD,EAAI0B,MAAMa,EAAIY,EAASE,EAAMxB,EAAU7H,GAAIgI,EAAWhI,IAC7DuJ,EAAMvD,EAAIwB,MAAM8B,EAAMhB,EAAIY,EAASE,EAAMxB,EAAU5H,GAAI+H,EAAW/H,IAClEwJ,EAAa,EAAPF,EAENG,EAAUzD,EAAIK,OAAOZ,EAAIC,EAAI,IAAMM,EAAIO,OAAOd,EAAIC,EAAI,IAAMM,EAAIO,OAAOd,EAAIC,EAAI,IAC/EgE,EAAU1D,EAAIM,OAAOb,EAAIC,EAAI,IAAMM,EAAIQ,OAAOf,EAAIC,EAAI,IAAMM,EAAIQ,OAAOf,EAAIC,EAAI,IAC/EiE,EAAQlE,EAAKoB,EAAOpB,EAAK0B,EAAON,EAAKM,EACrCyC,EAAQlE,EAAKoB,EAAOpB,EAAKsB,EAAOF,EAAKE,EAC3CsB,EAAU,EAALF,EACLG,EAAU,EAALF,EACLD,EAAU,EAALF,EACLG,EAAU,EAALF,EACLD,EAAU,EAALT,EACLU,EAAU,EAALR,IACFvJ,EAAGqJ,EAAIrE,EAAGuE,GAAO3B,EAAIY,IAAS,EAALW,EAAa,EAALF,EAAc,EAANkC,EAAe,EAANC,IACrDjC,EAAU,EAALJ,EACLE,EAAU,EAALL,EACLG,EAAU,EAALN,EACLG,EAAU,EAALF,EACLD,EAAU,EAALpB,EACLqB,EAAU,EAALpB,EACL,MAAMmE,EAAM7D,EAAIe,MAAMyC,EAAKE,EAASE,GACpCnE,EAAKO,EAAIiB,MAAM4C,EAAKN,EAAKE,EAASE,GAClCjE,EAAW,EAANmE,CACjB,GAEWzL,EAAGqH,EAAIrC,EAAGsC,GAAOM,EAAIY,IAAc,EAAV5F,KAAKyE,GAAkB,EAAVzE,KAAK0E,GAAa,EAALD,EAAa,EAALC,MAC3DtH,EAAGyI,EAAIzD,EAAG0D,GAAOd,EAAIY,IAAc,EAAV5F,KAAK6F,GAAkB,EAAV7F,KAAK8F,GAAa,EAALD,EAAa,EAALC,MAC3D1I,EAAG+I,EAAI/D,EAAG4D,GAAOhB,EAAIY,IAAc,EAAV5F,KAAKmG,GAAkB,EAAVnG,KAAKgG,GAAa,EAALG,EAAa,EAALH,MAC3D5I,EAAGmJ,EAAInE,EAAGiE,GAAOrB,EAAIY,IAAc,EAAV5F,KAAKuG,GAAkB,EAAVvG,KAAKqG,GAAa,EAALE,EAAa,EAALF,MAC3DjJ,EAAGqJ,EAAIrE,EAAGuE,GAAO3B,EAAIY,IAAc,EAAV5F,KAAKyG,GAAkB,EAAVzG,KAAK2G,GAAa,EAALF,EAAa,EAALE,MAC3DvJ,EAAG8J,EAAI9E,EAAG+E,GAAOnC,EAAIY,IAAc,EAAV5F,KAAKkH,GAAkB,EAAVlH,KAAKmH,GAAa,EAALD,EAAa,EAALC,MAC3D/J,EAAGgK,EAAIhF,EAAGiF,GAAOrC,EAAIY,IAAc,EAAV5F,KAAKoH,GAAkB,EAAVpH,KAAKqH,GAAa,EAALD,EAAa,EAALC,MAC3DjK,EAAGkK,EAAIlF,EAAGmF,GAAOvC,EAAIY,IAAc,EAAV5F,KAAKsH,GAAkB,EAAVtH,KAAKuH,GAAa,EAALD,EAAa,EAALC,IAC9DvH,KAAKH,IAAI4E,EAAIC,EAAImB,EAAIC,EAAIK,EAAIH,EAAIO,EAAIF,EAAII,EAAIE,EAAIO,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAC7E,CACI,UAAA7F,GACIqF,EAAWnF,KAAK,GAChBoF,EAAWpF,KAAK,EACxB,CACI,OAAAe,GACI3C,KAAK1B,OAAOsD,KAAK,GACjB5B,KAAKH,IAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC9D,EAgDO,MAAMiJ,UAAe7B,EACxB,WAAAlK,GACIkE,QAEAjB,KAAKyE,IAAK,UACVzE,KAAK0E,IAAK,WACV1E,KAAK6F,GAAK,WACV7F,KAAK8F,GAAK,UACV9F,KAAKmG,IAAK,WACVnG,KAAKgG,GAAK,UACVhG,KAAKuG,GAAK,UACVvG,KAAKqG,IAAK,UACVrG,KAAKyG,GAAK,WACVzG,KAAK2G,IAAK,QACV3G,KAAKkH,IAAK,WACVlH,KAAKmH,GAAK,WACVnH,KAAKoH,IAAK,UACVpH,KAAKqH,GAAK,WACVrH,KAAKsH,GAAK,WACVtH,KAAKuH,IAAK,WACVvH,KAAK1C,UAAY,EACzB,EAEY,MAACyL,iBAAyB7I,GAAgB,IAAM,IAAI+G,IAGnD+B,iBAAyB9I,GAAgB,IAAM,IAAI4I,IC/N1DG,EAAU,GACVC,EAAY,GACZC,EAAa,GACbC,iBAAsBpH,OAAO,GAC7BqH,iBAAsBrH,OAAO,GAC7BsH,iBAAsBtH,OAAO,GAC7BuH,iBAAsBvH,OAAO,GAC7BwH,iBAAwBxH,OAAO,KAC/ByH,iBAAyBzH,OAAO,KACtC,IAAK,IAAI0H,EAAQ,EAAGC,EAAIN,EAAKO,EAAI,EAAGC,EAAI,EAAGH,EAAQ,GAAIA,IAAS,EAE3DE,EAAGC,GAAK,CAACA,GAAI,EAAID,EAAI,EAAIC,GAAK,GAC/BZ,EAAQa,KAAK,GAAK,EAAID,EAAID,IAE1BV,EAAUY,MAAQJ,EAAQ,IAAMA,EAAQ,GAAM,EAAK,IAEnD,IAAIK,EAAIX,EACR,IAAK,IAAIY,EAAI,EAAGA,EAAI,EAAGA,IACnBL,GAAMA,GAAKN,GAASM,GAAKJ,GAAOE,GAAWD,EACvCG,EAAIL,IACJS,GAAKV,IAASA,kBAAuBrH,OAAOgI,IAAMX,GAE1DF,EAAWW,KAAKC,EACpB,CACA,MAAOE,GAAaC,mBAA+B3F,EAAM4E,GAAY,GAE/DgB,GAAQ,CAAC/M,EAAGgF,EAAGwC,IAAOA,EAAI,GAAKE,EAAO1H,EAAGgF,EAAGwC,GAAKD,EAAOvH,EAAGgF,EAAGwC,GAC9DwF,GAAQ,CAAChN,EAAGgF,EAAGwC,IAAOA,EAAI,GAAKG,EAAO3H,EAAGgF,EAAGwC,GAAKC,EAAOzH,EAAGgF,EAAGwC,GA+C7D,MAAMyF,WAAevK,EAExB,WAAA/C,CAAYQ,EAAU+M,EAAQhN,EAAWiN,GAAY,EAAOC,EAAS,IAcjE,GAbAvJ,QACAjB,KAAKzC,SAAWA,EAChByC,KAAKsK,OAASA,EACdtK,KAAK1C,UAAYA,EACjB0C,KAAKuK,UAAYA,EACjBvK,KAAKwK,OAASA,EACdxK,KAAKkB,IAAM,EACXlB,KAAKyK,OAAS,EACdzK,KAAKpC,UAAW,EAChBoC,KAAKrC,WAAY,EAEjBtB,EAAOiB,GAEH,GAAK0C,KAAKzC,UAAYyC,KAAKzC,UAAY,IACvC,MAAUd,MAAM,4CLhFT,IAAC2B,EKiFZ4B,KAAKwC,MAAQ,IAAI1F,WAAW,KAC5BkD,KAAK0K,SLlFOtM,EKkFO4B,KAAKwC,MLlFJ,IAAI1D,YAAYV,EAAIE,OAAQF,EAAIG,WAAY+C,KAAKqJ,MAAMvM,EAAII,WAAa,IKmFpG,CACI,MAAAoM,GACS/L,GACDE,EAAWiB,KAAK0K,SApErB,SAAiB9F,EAAG4F,EAAS,IAChC,MAAMtH,EAAI,IAAIpE,YAAY,IAE1B,IAAK,IAAI4K,EAAQ,GAAKc,EAAQd,EAAQ,GAAIA,IAAS,CAE/C,IAAK,IAAIE,EAAI,EAAGA,EAAI,GAAIA,IACpB1G,EAAE0G,GAAKhF,EAAEgF,GAAKhF,EAAEgF,EAAI,IAAMhF,EAAEgF,EAAI,IAAMhF,EAAEgF,EAAI,IAAMhF,EAAEgF,EAAI,IAC5D,IAAK,IAAIA,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAAG,CAC5B,MAAMiB,GAAQjB,EAAI,GAAK,GACjBkB,GAAQlB,EAAI,GAAK,GACjBmB,EAAK7H,EAAE4H,GACPE,EAAK9H,EAAE4H,EAAO,GACdG,EAAKd,GAAMY,EAAIC,EAAI,GAAK9H,EAAE2H,GAC1BK,EAAKd,GAAMW,EAAIC,EAAI,GAAK9H,EAAE2H,EAAO,GACvC,IAAK,IAAIhB,EAAI,EAAGA,EAAI,GAAIA,GAAK,GACzBjF,EAAEgF,EAAIC,IAAMoB,EACZrG,EAAEgF,EAAIC,EAAI,IAAMqB,CAEhC,CAEQ,IAAIC,EAAOvG,EAAE,GACTwG,EAAOxG,EAAE,GACb,IAAK,IAAImF,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACzB,MAAMpL,EAAQuK,EAAUa,GAClBkB,EAAKd,GAAMgB,EAAMC,EAAMzM,GACvBuM,EAAKd,GAAMe,EAAMC,EAAMzM,GACvB0M,EAAKpC,EAAQc,GACnBoB,EAAOvG,EAAEyG,GACTD,EAAOxG,EAAEyG,EAAK,GACdzG,EAAEyG,GAAMJ,EACRrG,EAAEyG,EAAK,GAAKH,CACxB,CAEQ,IAAK,IAAIrB,EAAI,EAAGA,EAAI,GAAIA,GAAK,GAAI,CAC7B,IAAK,IAAID,EAAI,EAAGA,EAAI,GAAIA,IACpB1G,EAAE0G,GAAKhF,EAAEiF,EAAID,GACjB,IAAK,IAAIA,EAAI,EAAGA,EAAI,GAAIA,IACpBhF,EAAEiF,EAAID,KAAO1G,GAAG0G,EAAI,GAAK,IAAM1G,GAAG0G,EAAI,GAAK,GAC3D,CAEQhF,EAAE,IAAMqF,GAAYP,GACpB9E,EAAE,IAAMsF,GAAYR,EAC5B,CACIxG,EAAEtB,KAAK,EACX,CAyBQ0J,CAAQtL,KAAK0K,QAAS1K,KAAKwK,QACtB3L,GACDE,EAAWiB,KAAK0K,SACpB1K,KAAKyK,OAAS,EACdzK,KAAKkB,IAAM,CACnB,CACI,MAAAZ,CAAOhB,GACH9B,EAAOwC,MACP,MAAMzC,SAAEA,EAAQiF,MAAEA,GAAUxC,KAEtBoB,GADN9B,EAAOD,EAAQC,IACErC,OACjB,IAAK,IAAIiE,EAAM,EAAGA,EAAME,GAAM,CAC1B,MAAMC,EAAOC,KAAKvD,IAAIR,EAAWyC,KAAKkB,IAAKE,EAAMF,GACjD,IAAK,IAAIlC,EAAI,EAAGA,EAAIqC,EAAMrC,IACtBwD,EAAMxC,KAAKkB,QAAU5B,EAAK4B,KAC1BlB,KAAKkB,MAAQ3D,GACbyC,KAAK4K,QACrB,CACQ,OAAO5K,IACf,CACI,MAAAuL,GACI,GAAIvL,KAAKpC,SACL,OACJoC,KAAKpC,UAAW,EAChB,MAAM4E,MAAEA,EAAK8H,OAAEA,EAAMpJ,IAAEA,EAAG3D,SAAEA,GAAayC,KAEzCwC,EAAMtB,IAAQoJ,EACA,IAATA,GAAwBpJ,IAAQ3D,EAAW,GAC5CyC,KAAK4K,SACTpI,EAAMjF,EAAW,IAAM,IACvByC,KAAK4K,QACb,CACI,SAAAY,CAAU1N,GACNN,EAAOwC,MAAM,GACbtD,EAAMoB,GACNkC,KAAKuL,SACL,MAAME,EAAYzL,KAAKwC,OACjBjF,SAAEA,GAAayC,KACrB,IAAK,IAAIkB,EAAM,EAAGE,EAAMtD,EAAIb,OAAQiE,EAAME,GAAM,CACxCpB,KAAKyK,QAAUlN,GACfyC,KAAK4K,SACT,MAAMvJ,EAAOC,KAAKvD,IAAIR,EAAWyC,KAAKyK,OAAQrJ,EAAMF,GACpDpD,EAAI+B,IAAI4L,EAAUlK,SAASvB,KAAKyK,OAAQzK,KAAKyK,OAASpJ,GAAOH,GAC7DlB,KAAKyK,QAAUpJ,EACfH,GAAOG,CACnB,CACQ,OAAOvD,CACf,CACI,OAAA4N,CAAQ5N,GAEJ,IAAKkC,KAAKuK,UACN,MAAU9N,MAAM,yCACpB,OAAOuD,KAAKwL,UAAU1N,EAC9B,CACI,GAAA6N,CAAIjP,GAEA,OADAL,EAAOK,GACAsD,KAAK0L,QAAQ,IAAI5O,WAAWJ,GAC3C,CACI,UAAAiF,CAAW7D,GAEP,GADAD,EAAOC,EAAKkC,MACRA,KAAKpC,SACL,MAAUnB,MAAM,+BAGpB,OAFAuD,KAAKwL,UAAU1N,GACfkC,KAAK2C,UACE7E,CACf,CACI,MAAAyC,GACI,OAAOP,KAAK2B,WAAW,IAAI7E,WAAWkD,KAAK1C,WACnD,CACI,OAAAqF,GACI3C,KAAKrC,WAAY,EACjBqC,KAAKwC,MAAMZ,KAAK,EACxB,CACI,UAAA3B,CAAW2C,GACP,MAAMrF,SAAEA,EAAQ+M,OAAEA,EAAMhN,UAAEA,EAASkN,OAAEA,EAAMD,UAAEA,GAAcvK,KAY3D,OAXA4C,IAAOA,EAAK,IAAIyH,GAAO9M,EAAU+M,EAAQhN,EAAWiN,EAAWC,IAC/D5H,EAAG8H,QAAQ7K,IAAIG,KAAK0K,SACpB9H,EAAG1B,IAAMlB,KAAKkB,IACd0B,EAAG6H,OAASzK,KAAKyK,OACjB7H,EAAGhF,SAAWoC,KAAKpC,SACnBgF,EAAG4H,OAASA,EAEZ5H,EAAG0H,OAASA,EACZ1H,EAAGtF,UAAYA,EACfsF,EAAG2H,UAAYA,EACf3H,EAAGjF,UAAYqC,KAAKrC,UACbiF,CACf,EAEA,MAAMgJ,GAAM,CAACtB,EAAQ/M,EAAUD,IAAc4C,GAAgB,IAAM,IAAImK,GAAO9M,EAAU+M,EAAQhN,KAMnFuO,kBAA2BD,GAAI,EAAM,IAAK,IAE1CE,kBAA2BF,GAAI,EAAM,GAAI,IAWzCG,kBAFI,EAACzB,EAAQ/M,EAAUD,ILzC7B,SAAoC6C,GACvC,MAAMC,EAAQ,CAACC,EAAK2L,IAAS7L,EAAS6L,GAAM1L,OAAOjB,EAAQgB,IAAME,SAC3DC,EAAML,EAAS,IAIrB,OAHAC,EAAM9C,UAAYkD,EAAIlD,UACtB8C,EAAM7C,SAAWiD,EAAIjD,SACrB6C,EAAM/C,OAAU2O,GAAS7L,EAAS6L,GAC3B5L,CACX,CKkCkD6L,EAA2B,CAACD,EAAO,CAAA,IAAO,IAAI3B,GAAO9M,EAAU+M,OAAuBpM,IAAf8N,EAAKE,MAAsB5O,EAAY0O,EAAKE,OAAO,KAEpIC,CAAS,GAAM,IAAK","x_google_ignoreList":[0,1,2,3,4,5,6,7]}