From ea0502858dd64e2c1c0990b86dea89a4cef6209b Mon Sep 17 00:00:00 2001 From: coomdev Date: Mon, 15 Aug 2022 09:10:59 +0200 Subject: [PATCH] Fix (frequent) bit ordering issue when extracting some JPGs --- README.md | 2 +- chrome/dist/main.js | 108 ++++++++++++++++++------------------ chrome/manifest.json | 2 +- dist/main.js | 108 ++++++++++++++++++------------------ firefox/dist/main.js | 108 ++++++++++++++++++------------------ firefox/manifest.json | 2 +- firefox_update.json | 2 +- main.meta.js | 2 +- main.user.js | 110 +++++++++++++++++++------------------ pngextraembedder-0.314.xpi | Bin 0 -> 548376 bytes src/f5stego.ts | 101 +++++++++++++++++++--------------- src/main.ts | 28 ++++++---- 12 files changed, 303 insertions(+), 270 deletions(-) create mode 100644 pngextraembedder-0.314.xpi diff --git a/README.md b/README.md index c7c7f3a..2f5d24e 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Also, use this if you plan to use b4k's archive. - [Install 4chanX (recommended)](https://www.4chan-x.net/builds/4chan-X.user.js) - [Install JKCS (recommended)](https://git.coom.tech/araragi/JKCS/src/branch/master/README.md) -- Install the correct WebExtension for your Browser ([Firefox](https://git.coom.tech/fuckjannies/lolipiss/raw/branch/%E4%B8%AD%E5%87%BA%E3%81%97/pngextraembedder-0.313.xpi) or Chrome-based (Down for "maintainance")) +- Install the correct WebExtension for your Browser ([Firefox](https://git.coom.tech/fuckjannies/lolipiss/raw/branch/%E4%B8%AD%E5%87%BA%E3%81%97/pngextraembedder-0.314.xpi) or Chrome-based (Down for "maintainance")) For FF users, the extension is signed so you can just drag and drop it on your about:addons tab. diff --git a/chrome/dist/main.js b/chrome/dist/main.js index bd2f372..c2cd760 100644 --- a/chrome/dist/main.js +++ b/chrome/dist/main.js @@ -73,7 +73,7 @@ var define_BUILD_VERSION_default; var init_define_BUILD_VERSION = __esm({ ""() { - define_BUILD_VERSION_default = [0, 313]; + define_BUILD_VERSION_default = [0, 314]; } }); @@ -12006,7 +12006,8 @@ let toread = 8; let len = 0; while (toread--) { - len = len * 2 + (yield); + const b2 = yield; + len = len * 2 + b2; } const b = yield; toread += 8; @@ -12015,12 +12016,13 @@ else len *= 2; while (toread--) { - len = len * 2 + (yield); + const b2 = yield; + len = len * 2 + b2; } - let rlen = revbyte(len, b ? 23 : 16); + const rlen = revbyte(len, b ? 23 : 16); len = rlen; - if (len >= 256) - len = rlen = 256; + if (len > 256) + throw new Error("Too big for Smash"); len *= 8; const chunks = []; const bw = new BitstreamWriter({ @@ -12490,15 +12492,9 @@ } const coeff = new Int16Array(comp.blocks.length); coeff.set(comp.blocks); - let pos = -1, extrBit = 0; - const cCount = coeff.length - 1; - let k = 0; - const out = new Uint8Array(coeff.length / 8 | 0); - let extrByte = 0; - let outPos = 0; - let bitsAvail = 0; - let code = 0; - let hash2 = 0; + let pos = -1, extrBit = 0, cCount = coeff.length - 1; + let n, k = 0; + let out = new Uint8Array(coeff.length / 8 | 0), extrByte = 0, outPos = 0, bitsAvail = 0, code = 0, hash2 = 0; while (bitsAvail < 4) { pos++; if (coeff[pos] === 0) { @@ -12512,7 +12508,7 @@ bitsAvail++; } k = (k & 15) + 1; - const n = (1 << k) - 1; + n = (1 << k) - 1; bitsAvail = 0; if (k == 1) { while (pos < cCount) { @@ -12573,9 +12569,7 @@ parse(data, tolerant = false) { let offset = 0; function _buildHuffmanTable(nrcodes, values) { - let codevalue = 0; - let pos_in_table = 0; - const HT = new Uint16Array(65536); + let codevalue = 0, pos_in_table = 0, HT = new Uint16Array(65536); for (let k = 0; k < 16; k++) { for (let j2 = 0; j2 < nrcodes[k]; j2++) { for (let i2 = codevalue << 15 - k, cntTo = codevalue + 1 << 15 - k; i2 < cntTo; i2++) { @@ -12589,10 +12583,8 @@ return HT; } const decodeScan = (data2, offset2, frame, components, resetInterval2, spectralStart, spectralEnd, successivePrev, successive) => { - const startOffset = offset2; - let bitsData = 0, bitsCount = 0, eobrun = 0; - const p1 = 1 << successive; - const m1 = -1 << successive; + let startOffset = offset2, bitsData = 0, bitsCount = 0, eobrun = 0, p1 = 1 << successive, m1 = -1 << successive; + const prevpos = 0; const decodeBaseline = (component2, pos) => { while (bitsCount < 16) { bitsData = (bitsData << 8) + (data2[offset2] | 0); @@ -12649,18 +12641,9 @@ offset2++; bitsCount += 8; } - if (component2.componentId == 1) { - component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1; - if (component2.blocks[pos + k2] < 1 << s - 1) - component2.blocks[pos + k2] += (-1 << s) + 1; - if (this.gengen && component2.blocks[pos + k2] != 0) { - const v = component2.blocks[pos + k2] < 0 ? 1 - (component2.blocks[pos + k2] & 1) : component2.blocks[pos + k2] & 1; - const it = this.gengen.next(v); - if (it.done) { - throw it.value; - } - } - } + component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1; + if (component2.blocks[pos + k2] < 1 << s - 1) + component2.blocks[pos + k2] += (-1 << s) + 1; bitsCount -= s; k2++; } @@ -12848,6 +12831,21 @@ decodeFn = decodeBaseline; } let marker, mcuExpected, i2, j2, k, n, mcusPerLine, mcusPerRow, x, y; + let lastflushidx = 0; + const flushBits = () => { + const component2 = components.find((e) => e.componentId == 1); + while (component2.blocks[lastflushidx + 1] !== void 0) { + const blk = component2.blocks[lastflushidx]; + if (blk != 0) { + const v = blk < 0 ? 1 - (blk & 1) : blk & 1; + const it = this.gengen.next(v); + if (it.done) { + throw it.value; + } + } + lastflushidx++; + } + }; if (components.length == 1) { mcusPerLine = components[0].blocksPerLine; mcusPerRow = components[0].blocksPerColumn; @@ -12882,6 +12880,7 @@ decodeFn(components[i2], (y * components[i2].blocksPerLineForMcu + x) * 64); } } + flushBits(); } } else { mcusPerLine = frame.mcusPerLine; @@ -12923,6 +12922,7 @@ } } } + flushBits(); } } offset2 -= bitsCount / 8 | 0; @@ -12988,8 +12988,7 @@ }); if (__privateGet(this, _frame).scanLines * __privateGet(this, _frame).samplesPerLine > this.maxPixels) throw "Image is too big."; - const componentsCount = data[offset++]; - let componentId; + var componentsCount = data[offset++], componentId; let maxH = 0, maxV = 0; for (i = 0; i < componentsCount; i++) { componentId = data[offset]; @@ -13445,9 +13444,9 @@ __f5write = new WeakSet(); _f5write_fn = function(coeff, data, k) { const coeff_count = coeff.length; - let _changed = 0, _embedded = 0, _examined = 0, _thrown = 0, shuffled_index = 0, i, ii; + let _changed = 0, _embedded = 0, _examined = 0, _thrown = 0, shuffled_index = 0, i, n, ii; let next_bit_to_embed = 0, byte_to_embed = data.length, data_idx = 0, available_bits_to_embed = 0; - const n = (1 << k) - 1; + n = (1 << k) - 1; byte_to_embed = k - 1; byte_to_embed ^= 0; next_bit_to_embed = byte_to_embed & 1; @@ -13518,8 +13517,7 @@ } _examined += n; while (true) { - let vhash = 0; - let extracted_bit; + var vhash = 0, extracted_bit; for (i = 0; i < code_word.length; i++) { if (coeff[code_word[i]] > 0) { extracted_bit = coeff[code_word[i]] & 1; @@ -21577,7 +21575,7 @@ // src/processor.worker.ts function Worker2() { - return inlineWorker('var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key2 of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key2) && key2 !== except)\n __defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));\nvar __decorateClass = (decorators, target, key2, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key2) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key2, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key2, result);\n return result;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError("Cannot " + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, "read from private field");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError("Cannot add the same private member more than once");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, "write to private field");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, "access private method");\n return method;\n};\nvar __toBinary = /* @__PURE__ */ (() => {\n var table = new Uint8Array(128);\n for (var i = 0; i < 64; i++)\n table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i;\n return (base64) => {\n var n = base64.length, bytes = new Uint8Array((n - (base64[n - 1] == "=") - (base64[n - 2] == "=")) * 3 / 4 | 0);\n for (var i2 = 0, j = 0; i2 < n; ) {\n var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)];\n var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)];\n bytes[j++] = c0 << 2 | c1 >> 4;\n bytes[j++] = c1 << 4 | c2 >> 2;\n bytes[j++] = c2 << 6 | c3;\n }\n return bytes;\n };\n})();\n\n// \nvar init_define_BUILD_VERSION = __esm({\n ""() {\n }\n});\n\n// node_modules/base64-js/index.js\nvar require_base64_js = __commonJS({\n "node_modules/base64-js/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.byteLength = byteLength;\n exports.toByteArray = toByteArray;\n exports.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array;\n var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";\n for (i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n var i;\n var len;\n revLookup["-".charCodeAt(0)] = 62;\n revLookup["_".charCodeAt(0)] = 63;\n function getLens(b64) {\n var len2 = b64.length;\n if (len2 % 4 > 0) {\n throw new Error("Invalid string. Length must be a multiple of 4");\n }\n var validLen = b64.indexOf("=");\n if (validLen === -1)\n validLen = len2;\n var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n }\n function byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0;\n var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i2;\n for (i2 = 0; i2 < len2; i2 += 4) {\n tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)];\n arr[curByte++] = tmp >> 16 & 255;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n return arr;\n }\n function tripletToBase64(num) {\n return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];\n }\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n for (var i2 = start; i2 < end; i2 += 3) {\n tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255);\n output.push(tripletToBase64(tmp));\n }\n return output.join("");\n }\n function fromByteArray(uint8) {\n var tmp;\n var len2 = uint8.length;\n var extraBytes = len2 % 3;\n var parts = [];\n var maxChunkLength = 16383;\n for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) {\n parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength));\n }\n if (extraBytes === 1) {\n tmp = uint8[len2 - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "==");\n } else if (extraBytes === 2) {\n tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "=");\n }\n return parts.join("");\n }\n }\n});\n\n// node_modules/ieee754/index.js\nvar require_ieee754 = __commonJS({\n "node_modules/ieee754/index.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.read = function(buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n exports.write = function(buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {\n }\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {\n }\n buffer[offset + i - d] |= s * 128;\n };\n }\n});\n\n// node_modules/buffer/index.js\nvar require_buffer = __commonJS({\n "node_modules/buffer/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var base64 = require_base64_js();\n var ieee7542 = require_ieee754();\n var customInspectSymbol = typeof Symbol === "function" && typeof Symbol["for"] === "function" ? Symbol["for"]("nodejs.util.inspect.custom") : null;\n exports.Buffer = Buffer13;\n exports.SlowBuffer = SlowBuffer;\n exports.INSPECT_MAX_BYTES = 50;\n var K_MAX_LENGTH = 2147483647;\n exports.kMaxLength = K_MAX_LENGTH;\n Buffer13.TYPED_ARRAY_SUPPORT = typedArraySupport();\n if (!Buffer13.TYPED_ARRAY_SUPPORT && typeof console !== "undefined" && typeof console.error === "function") {\n console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");\n }\n function typedArraySupport() {\n try {\n const arr = new Uint8Array(1);\n const proto = { foo: function() {\n return 42;\n } };\n Object.setPrototypeOf(proto, Uint8Array.prototype);\n Object.setPrototypeOf(arr, proto);\n return arr.foo() === 42;\n } catch (e) {\n return false;\n }\n }\n Object.defineProperty(Buffer13.prototype, "parent", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.buffer;\n }\n });\n Object.defineProperty(Buffer13.prototype, "offset", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.byteOffset;\n }\n });\n function createBuffer(length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError(\'The value "\' + length + \'" is invalid for option "size"\');\n }\n const buf2 = new Uint8Array(length);\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function Buffer13(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n if (typeof encodingOrOffset === "string") {\n throw new TypeError(\'The "string" argument must be of type string. Received type number\');\n }\n return allocUnsafe(arg);\n }\n return from(arg, encodingOrOffset, length);\n }\n Buffer13.poolSize = 8192;\n function from(value, encodingOrOffset, length) {\n if (typeof value === "string") {\n return fromString(value, encodingOrOffset);\n }\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value);\n }\n if (value == null) {\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof SharedArrayBuffer !== "undefined" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof value === "number") {\n throw new TypeError(\'The "value" argument must not be of type number. Received type number\');\n }\n const valueOf = value.valueOf && value.valueOf();\n if (valueOf != null && valueOf !== value) {\n return Buffer13.from(valueOf, encodingOrOffset, length);\n }\n const b = fromObject(value);\n if (b)\n return b;\n if (typeof Symbol !== "undefined" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === "function") {\n return Buffer13.from(value[Symbol.toPrimitive]("string"), encodingOrOffset, length);\n }\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n Buffer13.from = function(value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n };\n Object.setPrototypeOf(Buffer13.prototype, Uint8Array.prototype);\n Object.setPrototypeOf(Buffer13, Uint8Array);\n function assertSize(size) {\n if (typeof size !== "number") {\n throw new TypeError(\'"size" argument must be of type number\');\n } else if (size < 0) {\n throw new RangeError(\'The value "\' + size + \'" is invalid for option "size"\');\n }\n }\n function alloc(size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(size);\n }\n if (fill !== void 0) {\n return typeof encoding === "string" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n return createBuffer(size);\n }\n Buffer13.alloc = function(size, fill, encoding) {\n return alloc(size, fill, encoding);\n };\n function allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n }\n Buffer13.allocUnsafe = function(size) {\n return allocUnsafe(size);\n };\n Buffer13.allocUnsafeSlow = function(size) {\n return allocUnsafe(size);\n };\n function fromString(string, encoding) {\n if (typeof encoding !== "string" || encoding === "") {\n encoding = "utf8";\n }\n if (!Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n const length = byteLength(string, encoding) | 0;\n let buf2 = createBuffer(length);\n const actual = buf2.write(string, encoding);\n if (actual !== length) {\n buf2 = buf2.slice(0, actual);\n }\n return buf2;\n }\n function fromArrayLike(array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0;\n const buf2 = createBuffer(length);\n for (let i = 0; i < length; i += 1) {\n buf2[i] = array[i] & 255;\n }\n return buf2;\n }\n function fromArrayView(arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView);\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);\n }\n return fromArrayLike(arrayView);\n }\n function fromArrayBuffer(array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError(\'"offset" is outside of buffer bounds\');\n }\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError(\'"length" is outside of buffer bounds\');\n }\n let buf2;\n if (byteOffset === void 0 && length === void 0) {\n buf2 = new Uint8Array(array);\n } else if (length === void 0) {\n buf2 = new Uint8Array(array, byteOffset);\n } else {\n buf2 = new Uint8Array(array, byteOffset, length);\n }\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function fromObject(obj) {\n if (Buffer13.isBuffer(obj)) {\n const len = checked(obj.length) | 0;\n const buf2 = createBuffer(len);\n if (buf2.length === 0) {\n return buf2;\n }\n obj.copy(buf2, 0, 0, len);\n return buf2;\n }\n if (obj.length !== void 0) {\n if (typeof obj.length !== "number" || numberIsNaN(obj.length)) {\n return createBuffer(0);\n }\n return fromArrayLike(obj);\n }\n if (obj.type === "Buffer" && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n }\n function checked(length) {\n if (length >= K_MAX_LENGTH) {\n throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + K_MAX_LENGTH.toString(16) + " bytes");\n }\n return length | 0;\n }\n function SlowBuffer(length) {\n if (+length != length) {\n length = 0;\n }\n return Buffer13.alloc(+length);\n }\n Buffer13.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer13.prototype;\n };\n Buffer13.compare = function compare(a, b) {\n if (isInstance(a, Uint8Array))\n a = Buffer13.from(a, a.offset, a.byteLength);\n if (isInstance(b, Uint8Array))\n b = Buffer13.from(b, b.offset, b.byteLength);\n if (!Buffer13.isBuffer(a) || !Buffer13.isBuffer(b)) {\n throw new TypeError(\'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array\');\n }\n if (a === b)\n return 0;\n let x = a.length;\n let y = b.length;\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n Buffer13.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "latin1":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return true;\n default:\n return false;\n }\n };\n Buffer13.concat = function concat(list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n }\n if (list.length === 0) {\n return Buffer13.alloc(0);\n }\n let i;\n if (length === void 0) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n const buffer = Buffer13.allocUnsafe(length);\n let pos = 0;\n for (i = 0; i < list.length; ++i) {\n let buf2 = list[i];\n if (isInstance(buf2, Uint8Array)) {\n if (pos + buf2.length > buffer.length) {\n if (!Buffer13.isBuffer(buf2))\n buf2 = Buffer13.from(buf2);\n buf2.copy(buffer, pos);\n } else {\n Uint8Array.prototype.set.call(buffer, buf2, pos);\n }\n } else if (!Buffer13.isBuffer(buf2)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n } else {\n buf2.copy(buffer, pos);\n }\n pos += buf2.length;\n }\n return buffer;\n };\n function byteLength(string, encoding) {\n if (Buffer13.isBuffer(string)) {\n return string.length;\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength;\n }\n if (typeof string !== "string") {\n throw new TypeError(\'The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type \' + typeof string);\n }\n const len = string.length;\n const mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0)\n return 0;\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "ascii":\n case "latin1":\n case "binary":\n return len;\n case "utf8":\n case "utf-8":\n return utf8ToBytes(string).length;\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return len * 2;\n case "hex":\n return len >>> 1;\n case "base64":\n return base64ToBytes(string).length;\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length;\n }\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.byteLength = byteLength;\n function slowToString(encoding, start, end) {\n let loweredCase = false;\n if (start === void 0 || start < 0) {\n start = 0;\n }\n if (start > this.length) {\n return "";\n }\n if (end === void 0 || end > this.length) {\n end = this.length;\n }\n if (end <= 0) {\n return "";\n }\n end >>>= 0;\n start >>>= 0;\n if (end <= start) {\n return "";\n }\n if (!encoding)\n encoding = "utf8";\n while (true) {\n switch (encoding) {\n case "hex":\n return hexSlice(this, start, end);\n case "utf8":\n case "utf-8":\n return utf8Slice(this, start, end);\n case "ascii":\n return asciiSlice(this, start, end);\n case "latin1":\n case "binary":\n return latin1Slice(this, start, end);\n case "base64":\n return base64Slice(this, start, end);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return utf16leSlice(this, start, end);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = (encoding + "").toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.prototype._isBuffer = true;\n function swap(b, n, m) {\n const i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n Buffer13.prototype.swap16 = function swap16() {\n const len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 16-bits");\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this;\n };\n Buffer13.prototype.swap32 = function swap32() {\n const len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 32-bits");\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this;\n };\n Buffer13.prototype.swap64 = function swap64() {\n const len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 64-bits");\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this;\n };\n Buffer13.prototype.toString = function toString() {\n const length = this.length;\n if (length === 0)\n return "";\n if (arguments.length === 0)\n return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n };\n Buffer13.prototype.toLocaleString = Buffer13.prototype.toString;\n Buffer13.prototype.equals = function equals(b) {\n if (!Buffer13.isBuffer(b))\n throw new TypeError("Argument must be a Buffer");\n if (this === b)\n return true;\n return Buffer13.compare(this, b) === 0;\n };\n Buffer13.prototype.inspect = function inspect() {\n let str = "";\n const max = exports.INSPECT_MAX_BYTES;\n str = this.toString("hex", 0, max).replace(/(.{2})/g, "$1 ").trim();\n if (this.length > max)\n str += " ... ";\n return "";\n };\n if (customInspectSymbol) {\n Buffer13.prototype[customInspectSymbol] = Buffer13.prototype.inspect;\n }\n Buffer13.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer13.from(target, target.offset, target.byteLength);\n }\n if (!Buffer13.isBuffer(target)) {\n throw new TypeError(\'The "target" argument must be one of type Buffer or Uint8Array. Received type \' + typeof target);\n }\n if (start === void 0) {\n start = 0;\n }\n if (end === void 0) {\n end = target ? target.length : 0;\n }\n if (thisStart === void 0) {\n thisStart = 0;\n }\n if (thisEnd === void 0) {\n thisEnd = this.length;\n }\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError("out of range index");\n }\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n if (thisStart >= thisEnd) {\n return -1;\n }\n if (start >= end) {\n return 1;\n }\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target)\n return 0;\n let x = thisEnd - thisStart;\n let y = end - start;\n const len = Math.min(x, y);\n const thisCopy = this.slice(thisStart, thisEnd);\n const targetCopy = target.slice(start, end);\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n if (buffer.length === 0)\n return -1;\n if (typeof byteOffset === "string") {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 2147483647) {\n byteOffset = 2147483647;\n } else if (byteOffset < -2147483648) {\n byteOffset = -2147483648;\n }\n byteOffset = +byteOffset;\n if (numberIsNaN(byteOffset)) {\n byteOffset = dir ? 0 : buffer.length - 1;\n }\n if (byteOffset < 0)\n byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir)\n return -1;\n else\n byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir)\n byteOffset = 0;\n else\n return -1;\n }\n if (typeof val === "string") {\n val = Buffer13.from(val, encoding);\n }\n if (Buffer13.isBuffer(val)) {\n if (val.length === 0) {\n return -1;\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === "number") {\n val = val & 255;\n if (typeof Uint8Array.prototype.indexOf === "function") {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n throw new TypeError("val must be string, number or Buffer");\n }\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n let indexSize = 1;\n let arrLength = arr.length;\n let valLength = val.length;\n if (encoding !== void 0) {\n encoding = String(encoding).toLowerCase();\n if (encoding === "ucs2" || encoding === "ucs-2" || encoding === "utf16le" || encoding === "utf-16le") {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n function read2(buf2, i2) {\n if (indexSize === 1) {\n return buf2[i2];\n } else {\n return buf2.readUInt16BE(i2 * indexSize);\n }\n }\n let i;\n if (dir) {\n let foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read2(arr, i) === read2(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1)\n foundIndex = i;\n if (i - foundIndex + 1 === valLength)\n return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1)\n i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength)\n byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n let found = true;\n for (let j = 0; j < valLength; j++) {\n if (read2(arr, i + j) !== read2(val, j)) {\n found = false;\n break;\n }\n }\n if (found)\n return i;\n }\n }\n return -1;\n }\n Buffer13.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n Buffer13.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n Buffer13.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n function hexWrite(buf2, string, offset, length) {\n offset = Number(offset) || 0;\n const remaining = buf2.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n const strLen = string.length;\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n let i;\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16);\n if (numberIsNaN(parsed))\n return i;\n buf2[offset + i] = parsed;\n }\n return i;\n }\n function utf8Write(buf2, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n function asciiWrite(buf2, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf2, offset, length);\n }\n function base64Write(buf2, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf2, offset, length);\n }\n function ucs2Write(buf2, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n Buffer13.prototype.write = function write2(string, offset, length, encoding) {\n if (offset === void 0) {\n encoding = "utf8";\n length = this.length;\n offset = 0;\n } else if (length === void 0 && typeof offset === "string") {\n encoding = offset;\n length = this.length;\n offset = 0;\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n if (isFinite(length)) {\n length = length >>> 0;\n if (encoding === void 0)\n encoding = "utf8";\n } else {\n encoding = length;\n length = void 0;\n }\n } else {\n throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");\n }\n const remaining = this.length - offset;\n if (length === void 0 || length > remaining)\n length = remaining;\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError("Attempt to write outside buffer bounds");\n }\n if (!encoding)\n encoding = "utf8";\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "hex":\n return hexWrite(this, string, offset, length);\n case "utf8":\n case "utf-8":\n return utf8Write(this, string, offset, length);\n case "ascii":\n case "latin1":\n case "binary":\n return asciiWrite(this, string, offset, length);\n case "base64":\n return base64Write(this, string, offset, length);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return ucs2Write(this, string, offset, length);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n Buffer13.prototype.toJSON = function toJSON() {\n return {\n type: "Buffer",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n function base64Slice(buf2, start, end) {\n if (start === 0 && end === buf2.length) {\n return base64.fromByteArray(buf2);\n } else {\n return base64.fromByteArray(buf2.slice(start, end));\n }\n }\n function utf8Slice(buf2, start, end) {\n end = Math.min(buf2.length, end);\n const res = [];\n let i = start;\n while (i < end) {\n const firstByte = buf2[i];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf2[i + 1];\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n fourthByte = buf2[i + 3];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n res.push(codePoint);\n i += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n }\n var MAX_ARGUMENTS_LENGTH = 4096;\n function decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints);\n }\n let res = "";\n let i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n }\n function asciiSlice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i] & 127);\n }\n return ret;\n }\n function latin1Slice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i]);\n }\n return ret;\n }\n function hexSlice(buf2, start, end) {\n const len = buf2.length;\n if (!start || start < 0)\n start = 0;\n if (!end || end < 0 || end > len)\n end = len;\n let out = "";\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf2[i]];\n }\n return out;\n }\n function utf16leSlice(buf2, start, end) {\n const bytes = buf2.slice(start, end);\n let res = "";\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res;\n }\n Buffer13.prototype.slice = function slice(start, end) {\n const len = this.length;\n start = ~~start;\n end = end === void 0 ? len : ~~end;\n if (start < 0) {\n start += len;\n if (start < 0)\n start = 0;\n } else if (start > len) {\n start = len;\n }\n if (end < 0) {\n end += len;\n if (end < 0)\n end = 0;\n } else if (end > len) {\n end = len;\n }\n if (end < start)\n end = start;\n const newBuf = this.subarray(start, end);\n Object.setPrototypeOf(newBuf, Buffer13.prototype);\n return newBuf;\n };\n function checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0)\n throw new RangeError("offset is not uint");\n if (offset + ext > length)\n throw new RangeError("Trying to access beyond buffer length");\n }\n Buffer13.prototype.readUintLE = Buffer13.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUintBE = Buffer13.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n checkOffset(offset, byteLength2, this.length);\n }\n let val = this[offset + --byteLength2];\n let mul = 1;\n while (byteLength2 > 0 && (mul *= 256)) {\n val += this[offset + --byteLength2] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUint8 = Buffer13.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n return this[offset];\n };\n Buffer13.prototype.readUint16LE = Buffer13.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n };\n Buffer13.prototype.readUint16BE = Buffer13.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n };\n Buffer13.prototype.readUint32LE = Buffer13.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;\n };\n Buffer13.prototype.readUint32BE = Buffer13.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n Buffer13.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const lo = first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24;\n const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last * 2 ** 24;\n return BigInt(lo) + (BigInt(hi) << BigInt(32));\n });\n Buffer13.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const hi = first * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last;\n return (BigInt(hi) << BigInt(32)) + BigInt(lo);\n });\n Buffer13.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let i = byteLength2;\n let mul = 1;\n let val = this[offset + --i];\n while (i > 0 && (mul *= 256)) {\n val += this[offset + --i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readInt8 = function readInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n if (!(this[offset] & 128))\n return this[offset];\n return (255 - this[offset] + 1) * -1;\n };\n Buffer13.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset] | this[offset + 1] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset + 1] | this[offset] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n Buffer13.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n Buffer13.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last << 24);\n return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24);\n });\n Buffer13.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = (first << 24) + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last);\n });\n Buffer13.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, true, 23, 4);\n };\n Buffer13.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, false, 23, 4);\n };\n Buffer13.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, true, 52, 8);\n };\n Buffer13.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, false, 52, 8);\n };\n function checkInt(buf2, value, offset, ext, max, min) {\n if (!Buffer13.isBuffer(buf2))\n throw new TypeError(\'"buffer" argument must be a Buffer instance\');\n if (value > max || value < min)\n throw new RangeError(\'"value" argument is out of bounds\');\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n }\n Buffer13.prototype.writeUintLE = Buffer13.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let mul = 1;\n let i = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUintBE = Buffer13.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUint8 = Buffer13.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 255, 0);\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeUint16LE = Buffer13.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeUint16BE = Buffer13.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeUint32LE = Buffer13.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeUint32BE = Buffer13.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n function wrtBigUInt64LE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n return offset;\n }\n function wrtBigUInt64BE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset + 7] = lo;\n lo = lo >> 8;\n buf2[offset + 6] = lo;\n lo = lo >> 8;\n buf2[offset + 5] = lo;\n lo = lo >> 8;\n buf2[offset + 4] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset + 3] = hi;\n hi = hi >> 8;\n buf2[offset + 2] = hi;\n hi = hi >> 8;\n buf2[offset + 1] = hi;\n hi = hi >> 8;\n buf2[offset] = hi;\n return offset + 8;\n }\n Buffer13.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = 0;\n let mul = 1;\n let sub = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n let sub = 0;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 127, -128);\n if (value < 0)\n value = 255 + value + 1;\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n return offset + 4;\n };\n Buffer13.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n if (value < 0)\n value = 4294967295 + value + 1;\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n Buffer13.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n function checkIEEE754(buf2, value, offset, ext, max, min) {\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n if (offset < 0)\n throw new RangeError("Index out of range");\n }\n function writeFloat(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 4, 34028234663852886e22, -34028234663852886e22);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n Buffer13.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n function writeDouble(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 8, 17976931348623157e292, -17976931348623157e292);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n Buffer13.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n };\n Buffer13.prototype.copy = function copy(target, targetStart, start, end) {\n if (!Buffer13.isBuffer(target))\n throw new TypeError("argument should be a Buffer");\n if (!start)\n start = 0;\n if (!end && end !== 0)\n end = this.length;\n if (targetStart >= target.length)\n targetStart = target.length;\n if (!targetStart)\n targetStart = 0;\n if (end > 0 && end < start)\n end = start;\n if (end === start)\n return 0;\n if (target.length === 0 || this.length === 0)\n return 0;\n if (targetStart < 0) {\n throw new RangeError("targetStart out of bounds");\n }\n if (start < 0 || start >= this.length)\n throw new RangeError("Index out of range");\n if (end < 0)\n throw new RangeError("sourceEnd out of bounds");\n if (end > this.length)\n end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n const len = end - start;\n if (this === target && typeof Uint8Array.prototype.copyWithin === "function") {\n this.copyWithin(targetStart, start, end);\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart);\n }\n return len;\n };\n Buffer13.prototype.fill = function fill(val, start, end, encoding) {\n if (typeof val === "string") {\n if (typeof start === "string") {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === "string") {\n encoding = end;\n end = this.length;\n }\n if (encoding !== void 0 && typeof encoding !== "string") {\n throw new TypeError("encoding must be a string");\n }\n if (typeof encoding === "string" && !Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0);\n if (encoding === "utf8" && code < 128 || encoding === "latin1") {\n val = code;\n }\n }\n } else if (typeof val === "number") {\n val = val & 255;\n } else if (typeof val === "boolean") {\n val = Number(val);\n }\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError("Out of range index");\n }\n if (end <= start) {\n return this;\n }\n start = start >>> 0;\n end = end === void 0 ? this.length : end >>> 0;\n if (!val)\n val = 0;\n let i;\n if (typeof val === "number") {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n const bytes = Buffer13.isBuffer(val) ? val : Buffer13.from(val, encoding);\n const len = bytes.length;\n if (len === 0) {\n throw new TypeError(\'The value "\' + val + \'" is invalid for argument "value"\');\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n return this;\n };\n var errors = {};\n function E(sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor() {\n super();\n Object.defineProperty(this, "message", {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n });\n this.name = `${this.name} [${sym}]`;\n this.stack;\n delete this.name;\n }\n get code() {\n return sym;\n }\n set code(value) {\n Object.defineProperty(this, "code", {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n });\n }\n toString() {\n return `${this.name} [${sym}]: ${this.message}`;\n }\n };\n }\n E("ERR_BUFFER_OUT_OF_BOUNDS", function(name) {\n if (name) {\n return `${name} is outside of buffer bounds`;\n }\n return "Attempt to access memory outside buffer bounds";\n }, RangeError);\n E("ERR_INVALID_ARG_TYPE", function(name, actual) {\n return `The "${name}" argument must be of type number. Received type ${typeof actual}`;\n }, TypeError);\n E("ERR_OUT_OF_RANGE", function(str, range, input) {\n let msg = `The value of "${str}" is out of range.`;\n let received = input;\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input));\n } else if (typeof input === "bigint") {\n received = String(input);\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received);\n }\n received += "n";\n }\n msg += ` It must be ${range}. Received ${received}`;\n return msg;\n }, RangeError);\n function addNumericalSeparator(val) {\n let res = "";\n let i = val.length;\n const start = val[0] === "-" ? 1 : 0;\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`;\n }\n return `${val.slice(0, i)}${res}`;\n }\n function checkBounds(buf2, offset, byteLength2) {\n validateNumber(offset, "offset");\n if (buf2[offset] === void 0 || buf2[offset + byteLength2] === void 0) {\n boundsError(offset, buf2.length - (byteLength2 + 1));\n }\n }\n function checkIntBI(value, min, max, buf2, offset, byteLength2) {\n if (value > max || value < min) {\n const n = typeof min === "bigint" ? "n" : "";\n let range;\n if (byteLength2 > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength2 + 1) * 8}${n}`;\n } else {\n range = `>= -(2${n} ** ${(byteLength2 + 1) * 8 - 1}${n}) and < 2 ** ${(byteLength2 + 1) * 8 - 1}${n}`;\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`;\n }\n throw new errors.ERR_OUT_OF_RANGE("value", range, value);\n }\n checkBounds(buf2, offset, byteLength2);\n }\n function validateNumber(value, name) {\n if (typeof value !== "number") {\n throw new errors.ERR_INVALID_ARG_TYPE(name, "number", value);\n }\n }\n function boundsError(value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type);\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", "an integer", value);\n }\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n }\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", `>= ${type ? 1 : 0} and <= ${length}`, value);\n }\n var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n function base64clean(str) {\n str = str.split("=")[0];\n str = str.trim().replace(INVALID_BASE64_RE, "");\n if (str.length < 2)\n return "";\n while (str.length % 4 !== 0) {\n str = str + "=";\n }\n return str;\n }\n function utf8ToBytes(string, units) {\n units = units || Infinity;\n let codePoint;\n const length = string.length;\n let leadSurrogate = null;\n const bytes = [];\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n if (codePoint > 55295 && codePoint < 57344) {\n if (!leadSurrogate) {\n if (codePoint > 56319) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n }\n leadSurrogate = codePoint;\n continue;\n }\n if (codePoint < 56320) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n }\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n }\n leadSurrogate = null;\n if (codePoint < 128) {\n if ((units -= 1) < 0)\n break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0)\n break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0)\n break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0)\n break;\n bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else {\n throw new Error("Invalid code point");\n }\n }\n return bytes;\n }\n function asciiToBytes(str) {\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n byteArray.push(str.charCodeAt(i) & 255);\n }\n return byteArray;\n }\n function utf16leToBytes(str, units) {\n let c, hi, lo;\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0)\n break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n return byteArray;\n }\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n function blitBuffer(src, dst, offset, length) {\n let i;\n for (i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length)\n break;\n dst[i + offset] = src[i];\n }\n return i;\n }\n function isInstance(obj, type) {\n return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n }\n function numberIsNaN(obj) {\n return obj !== obj;\n }\n var hexSliceLookupTable = function() {\n const alphabet = "0123456789abcdef";\n const table = new Array(256);\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16;\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n return table;\n }();\n function defineBigIntMethod(fn) {\n return typeof BigInt === "undefined" ? BufferBigIntNotDefined : fn;\n }\n function BufferBigIntNotDefined() {\n throw new Error("BigInt not supported");\n }\n }\n});\n\n// esbuild.inject.js\nvar Buffer2;\nvar init_esbuild_inject = __esm({\n "esbuild.inject.js"() {\n "use strict";\n Buffer2 = require_buffer().Buffer;\n }\n});\n\n// node_modules/crc-32/crc32.js\nvar require_crc32 = __commonJS({\n "node_modules/crc-32/crc32.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var CRC32;\n (function(factory) {\n if (typeof DO_NOT_EXPORT_CRC === "undefined") {\n if (typeof exports === "object") {\n factory(exports);\n } else if (typeof define === "function" && define.amd) {\n define(function() {\n var module2 = {};\n factory(module2);\n return module2;\n });\n } else {\n factory(CRC32 = {});\n }\n } else {\n factory(CRC32 = {});\n }\n })(function(CRC322) {\n CRC322.version = "1.2.0";\n function signed_crc_table() {\n var c = 0, table = new Array(256);\n for (var n = 0; n != 256; ++n) {\n c = n;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n table[n] = c;\n }\n return typeof Int32Array !== "undefined" ? new Int32Array(table) : table;\n }\n var T = signed_crc_table();\n function crc32_bstr(bstr, seed) {\n var C = seed ^ -1, L = bstr.length - 1;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n }\n if (i === L)\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i)) & 255];\n return C ^ -1;\n }\n function crc32_buf(buf2, seed) {\n if (buf2.length > 1e4)\n return crc32_buf_8(buf2, seed);\n var C = seed ^ -1, L = buf2.length - 3;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 3)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_buf_8(buf2, seed) {\n var C = seed ^ -1, L = buf2.length - 7;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 7)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_str(str, seed) {\n var C = seed ^ -1;\n for (var i = 0, L = str.length, c, d; i < L; ) {\n c = str.charCodeAt(i++);\n if (c < 128) {\n C = C >>> 8 ^ T[(C ^ c) & 255];\n } else if (c < 2048) {\n C = C >>> 8 ^ T[(C ^ (192 | c >> 6 & 31)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n } else if (c >= 55296 && c < 57344) {\n c = (c & 1023) + 64;\n d = str.charCodeAt(i++) & 1023;\n C = C >>> 8 ^ T[(C ^ (240 | c >> 8 & 7)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 2 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d >> 6 & 15 | (c & 3) << 4)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d & 63)) & 255];\n } else {\n C = C >>> 8 ^ T[(C ^ (224 | c >> 12 & 15)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 6 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n }\n }\n return C ^ -1;\n }\n CRC322.table = T;\n CRC322.bstr = crc32_bstr;\n CRC322.buf = crc32_buf;\n CRC322.str = crc32_str;\n });\n }\n});\n\n// node_modules/events/events.js\nvar require_events = __commonJS({\n "node_modules/events/events.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var R = typeof Reflect === "object" ? Reflect : null;\n var ReflectApply = R && typeof R.apply === "function" ? R.apply : function ReflectApply2(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n };\n var ReflectOwnKeys;\n if (R && typeof R.ownKeys === "function") {\n ReflectOwnKeys = R.ownKeys;\n } else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n } else {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target);\n };\n }\n function ProcessEmitWarning(warning) {\n if (console && console.warn)\n console.warn(warning);\n }\n var NumberIsNaN = Number.isNaN || function NumberIsNaN2(value) {\n return value !== value;\n };\n function EventEmitter() {\n EventEmitter.init.call(this);\n }\n module.exports = EventEmitter;\n module.exports.once = once;\n EventEmitter.EventEmitter = EventEmitter;\n EventEmitter.prototype._events = void 0;\n EventEmitter.prototype._eventsCount = 0;\n EventEmitter.prototype._maxListeners = void 0;\n var defaultMaxListeners = 10;\n function checkListener(listener) {\n if (typeof listener !== "function") {\n throw new TypeError(\'The "listener" argument must be of type Function. Received type \' + typeof listener);\n }\n }\n Object.defineProperty(EventEmitter, "defaultMaxListeners", {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== "number" || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError(\'The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received \' + arg + ".");\n }\n defaultMaxListeners = arg;\n }\n });\n EventEmitter.init = function() {\n if (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n }\n this._maxListeners = this._maxListeners || void 0;\n };\n EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== "number" || n < 0 || NumberIsNaN(n)) {\n throw new RangeError(\'The value of "n" is out of range. It must be a non-negative number. Received \' + n + ".");\n }\n this._maxListeners = n;\n return this;\n };\n function _getMaxListeners(that) {\n if (that._maxListeners === void 0)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n }\n EventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n };\n EventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++)\n args.push(arguments[i]);\n var doError = type === "error";\n var events = this._events;\n if (events !== void 0)\n doError = doError && events.error === void 0;\n else if (!doError)\n return false;\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n throw er;\n }\n var err = new Error("Unhandled error." + (er ? " (" + er.message + ")" : ""));\n err.context = er;\n throw err;\n }\n var handler = events[type];\n if (handler === void 0)\n return false;\n if (typeof handler === "function") {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n return true;\n };\n function _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n if (events === void 0) {\n events = target._events = /* @__PURE__ */ Object.create(null);\n target._eventsCount = 0;\n } else {\n if (events.newListener !== void 0) {\n target.emit("newListener", type, listener.listener ? listener.listener : listener);\n events = target._events;\n }\n existing = events[type];\n }\n if (existing === void 0) {\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === "function") {\n existing = events[type] = prepend ? [listener, existing] : [existing, listener];\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n var w = new Error("Possible EventEmitter memory leak detected. " + existing.length + " " + String(type) + " listeners added. Use emitter.setMaxListeners() to increase limit");\n w.name = "MaxListenersExceededWarning";\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n return target;\n }\n EventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n };\n EventEmitter.prototype.on = EventEmitter.prototype.addListener;\n EventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n function onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n }\n function _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: void 0, target, type, listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n }\n EventEmitter.prototype.once = function once2(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === void 0)\n return this;\n list = events[type];\n if (list === void 0)\n return this;\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit("removeListener", type, list.listener || listener);\n }\n } else if (typeof list !== "function") {\n position = -1;\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n if (position < 0)\n return this;\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n if (list.length === 1)\n events[type] = list[0];\n if (events.removeListener !== void 0)\n this.emit("removeListener", type, originalListener || listener);\n }\n return this;\n };\n EventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === void 0)\n return this;\n if (events.removeListener === void 0) {\n if (arguments.length === 0) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== void 0) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key2;\n for (i = 0; i < keys.length; ++i) {\n key2 = keys[i];\n if (key2 === "removeListener")\n continue;\n this.removeAllListeners(key2);\n }\n this.removeAllListeners("removeListener");\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n listeners = events[type];\n if (typeof listeners === "function") {\n this.removeListener(type, listeners);\n } else if (listeners !== void 0) {\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n return this;\n };\n function _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === void 0)\n return [];\n var evlistener = events[type];\n if (evlistener === void 0)\n return [];\n if (typeof evlistener === "function")\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n }\n EventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n };\n EventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n };\n EventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === "function") {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n };\n EventEmitter.prototype.listenerCount = listenerCount;\n function listenerCount(type) {\n var events = this._events;\n if (events !== void 0) {\n var evlistener = events[type];\n if (typeof evlistener === "function") {\n return 1;\n } else if (evlistener !== void 0) {\n return evlistener.length;\n }\n }\n return 0;\n }\n EventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n };\n function arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n }\n function spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n }\n function unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n }\n function once(emitter, name) {\n return new Promise(function(resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n function resolver() {\n if (typeof emitter.removeListener === "function") {\n emitter.removeListener("error", errorListener);\n }\n resolve([].slice.call(arguments));\n }\n ;\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== "error") {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n }\n function addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === "function") {\n eventTargetAgnosticAddListener(emitter, "error", handler, flags);\n }\n }\n function eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === "function") {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === "function") {\n emitter.addEventListener(name, function wrapListener(arg) {\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError(\'The "emitter" argument must be of type EventEmitter. Received type \' + typeof emitter);\n }\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/stream-browser.js\nvar require_stream_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/stream-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = require_events().EventEmitter;\n }\n});\n\n// (disabled):node_modules/util/util.js\nvar require_util = __commonJS({\n "(disabled):node_modules/util/util.js"() {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/buffer_list.js\nvar require_buffer_list = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/buffer_list.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly)\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n }\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function(key2) {\n _defineProperty(target, key2, source[key2]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key2) {\n Object.defineProperty(target, key2, Object.getOwnPropertyDescriptor(source, key2));\n });\n }\n }\n return target;\n }\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n var _require = require_buffer();\n var Buffer13 = _require.Buffer;\n var _require2 = require_util();\n var inspect = _require2.inspect;\n var custom = inspect && inspect.custom || "inspect";\n function copyBuffer(src, target, offset) {\n Buffer13.prototype.copy.call(src, target, offset);\n }\n module.exports = /* @__PURE__ */ function() {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: "push",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0)\n this.tail.next = entry;\n else\n this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: "unshift",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0)\n this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: "shift",\n value: function shift() {\n if (this.length === 0)\n return;\n var ret = this.head.data;\n if (this.length === 1)\n this.head = this.tail = null;\n else\n this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: "clear",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: "join",\n value: function join(s) {\n if (this.length === 0)\n return "";\n var p = this.head;\n var ret = "" + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }\n return ret;\n }\n }, {\n key: "concat",\n value: function concat(n) {\n if (this.length === 0)\n return Buffer13.alloc(0);\n var ret = Buffer13.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n }, {\n key: "consume",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n ret = this.shift();\n } else {\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: "first",\n value: function first() {\n return this.head.data;\n }\n }, {\n key: "_getString",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length)\n ret += str;\n else\n ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: "_getBuffer",\n value: function _getBuffer(n) {\n var ret = Buffer13.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf2 = p.data;\n var nb = n > buf2.length ? buf2.length : n;\n buf2.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf2.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf2.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n depth: 0,\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n }();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/destroy.js\nvar require_destroy = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/destroy.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function(err2) {\n if (!cb && err2) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n }\n function emitErrorAndCloseNT(self2, err) {\n emitErrorNT(self2, err);\n emitCloseNT(self2);\n }\n function emitCloseNT(self2) {\n if (self2._writableState && !self2._writableState.emitClose)\n return;\n if (self2._readableState && !self2._readableState.emitClose)\n return;\n self2.emit("close");\n }\n function undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n }\n function emitErrorNT(self2, err) {\n self2.emit("error", err);\n }\n function errorOrDestroy(stream, err) {\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy)\n stream.destroy(err);\n else\n stream.emit("error", err);\n }\n module.exports = {\n destroy,\n undestroy,\n errorOrDestroy\n };\n }\n});\n\n// node_modules/readable-stream/errors-browser.js\nvar require_errors_browser = __commonJS({\n "node_modules/readable-stream/errors-browser.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n }\n var codes = {};\n function createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === "string") {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /* @__PURE__ */ function(_Base) {\n _inheritsLoose(NodeError2, _Base);\n function NodeError2(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n return NodeError2;\n }(Base);\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n }\n function oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function(i) {\n return String(i);\n });\n if (len > 2) {\n return "one of ".concat(thing, " ").concat(expected.slice(0, len - 1).join(", "), ", or ") + expected[len - 1];\n } else if (len === 2) {\n return "one of ".concat(thing, " ").concat(expected[0], " or ").concat(expected[1]);\n } else {\n return "of ".concat(thing, " ").concat(expected[0]);\n }\n } else {\n return "of ".concat(thing, " ").concat(String(expected));\n }\n }\n function startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n }\n function endsWith(str, search, this_len) {\n if (this_len === void 0 || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n }\n function includes(str, search, start) {\n if (typeof start !== "number") {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n }\n createErrorType("ERR_INVALID_OPT_VALUE", function(name, value) {\n return \'The value "\' + value + \'" is invalid for option "\' + name + \'"\';\n }, TypeError);\n createErrorType("ERR_INVALID_ARG_TYPE", function(name, expected, actual) {\n var determiner;\n if (typeof expected === "string" && startsWith(expected, "not ")) {\n determiner = "must not be";\n expected = expected.replace(/^not /, "");\n } else {\n determiner = "must be";\n }\n var msg;\n if (endsWith(name, " argument")) {\n msg = "The ".concat(name, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n } else {\n var type = includes(name, ".") ? "property" : "argument";\n msg = \'The "\'.concat(name, \'" \').concat(type, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n }\n msg += ". Received type ".concat(typeof actual);\n return msg;\n }, TypeError);\n createErrorType("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF");\n createErrorType("ERR_METHOD_NOT_IMPLEMENTED", function(name) {\n return "The " + name + " method is not implemented";\n });\n createErrorType("ERR_STREAM_PREMATURE_CLOSE", "Premature close");\n createErrorType("ERR_STREAM_DESTROYED", function(name) {\n return "Cannot call " + name + " after a stream was destroyed";\n });\n createErrorType("ERR_MULTIPLE_CALLBACK", "Callback called multiple times");\n createErrorType("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable");\n createErrorType("ERR_STREAM_WRITE_AFTER_END", "write after end");\n createErrorType("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError);\n createErrorType("ERR_UNKNOWN_ENCODING", function(arg) {\n return "Unknown encoding: " + arg;\n }, TypeError);\n createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event");\n module.exports.codes = codes;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/state.js\nvar require_state = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/state.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_INVALID_OPT_VALUE = require_errors_browser().codes.ERR_INVALID_OPT_VALUE;\n function highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n }\n function getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : "highWaterMark";\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n return state.objectMode ? 16 : 16 * 1024;\n }\n module.exports = {\n getHighWaterMark\n };\n }\n});\n\n// node_modules/inherits/inherits_browser.js\nvar require_inherits_browser = __commonJS({\n "node_modules/inherits/inherits_browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n if (typeof Object.create === "function") {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n } else {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function() {\n };\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n }\n }\n});\n\n// node_modules/util-deprecate/browser.js\nvar require_browser = __commonJS({\n "node_modules/util-deprecate/browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = deprecate;\n function deprecate(fn, msg) {\n if (config("noDeprecation")) {\n return fn;\n }\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config("throwDeprecation")) {\n throw new Error(msg);\n } else if (config("traceDeprecation")) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n }\n function config(name) {\n try {\n if (!self.localStorage)\n return false;\n } catch (_) {\n return false;\n }\n var val = self.localStorage[name];\n if (val == null)\n return false;\n return String(val).toLowerCase() === "true";\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_writable.js\nvar require_stream_writable = __commonJS({\n "node_modules/readable-stream/lib/_stream_writable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Writable;\n function CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function() {\n onCorkedFinish(_this, state);\n };\n }\n var Duplex;\n Writable.WritableState = WritableState;\n var internalUtil = {\n deprecate: require_browser()\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n var ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES;\n var ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END;\n var ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n require_inherits_browser()(Writable, Stream);\n function nop() {\n }\n function WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.writableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "writableHighWaterMark", isDuplex);\n this.finalCalled = false;\n this.needDrain = false;\n this.ending = false;\n this.ended = false;\n this.finished = false;\n this.destroyed = false;\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.length = 0;\n this.writing = false;\n this.corked = 0;\n this.sync = true;\n this.bufferProcessing = false;\n this.onwrite = function(er) {\n onwrite(stream, er);\n };\n this.writecb = null;\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n this.pendingcb = 0;\n this.prefinished = false;\n this.errorEmitted = false;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.bufferedRequestCount = 0;\n this.corkedRequestsFree = new CorkedRequest(this);\n }\n WritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n };\n (function() {\n try {\n Object.defineProperty(WritableState.prototype, "buffer", {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003")\n });\n } catch (_) {\n }\n })();\n var realHasInstance;\n if (typeof Symbol === "function" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === "function") {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object))\n return true;\n if (this !== Writable)\n return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n } else {\n realHasInstance = function realHasInstance2(object) {\n return object instanceof this;\n };\n }\n function Writable(options) {\n Duplex = Duplex || require_stream_duplex();\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this))\n return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n this.writable = true;\n if (options) {\n if (typeof options.write === "function")\n this._write = options.write;\n if (typeof options.writev === "function")\n this._writev = options.writev;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n if (typeof options.final === "function")\n this._final = options.final;\n }\n Stream.call(this);\n }\n Writable.prototype.pipe = function() {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n };\n function writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n }\n function validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== "string" && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer"], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n }\n Writable.prototype.write = function(chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer13.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (isBuf)\n encoding = "buffer";\n else if (!encoding)\n encoding = state.defaultEncoding;\n if (typeof cb !== "function")\n cb = nop;\n if (state.ending)\n writeAfterEnd(this, cb);\n else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n };\n Writable.prototype.cork = function() {\n this._writableState.corked++;\n };\n Writable.prototype.uncork = function() {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest)\n clearBuffer(this, state);\n }\n };\n Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n if (typeof encoding === "string")\n encoding = encoding.toLowerCase();\n if (!(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((encoding + "").toLowerCase()) > -1))\n throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n function decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === "string") {\n chunk = Buffer13.from(chunk, encoding);\n }\n return chunk;\n }\n Object.defineProperty(Writable.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = "buffer";\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n if (!ret)\n state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk,\n encoding,\n isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n }\n function doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed)\n state.onwrite(new ERR_STREAM_DESTROYED("write"));\n else if (writev)\n stream._writev(chunk, state.onwrite);\n else\n stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n }\n function onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n process.nextTick(cb, er);\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n finishMaybe(stream, state);\n }\n }\n function onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n }\n function onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== "function")\n throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er)\n onwriteError(stream, state, sync, er, cb);\n else {\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n }\n function afterWrite(stream, state, finished, cb) {\n if (!finished)\n onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n }\n function onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit("drain");\n }\n }\n function clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf)\n allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, "", holder.finish);\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n if (state.writing) {\n break;\n }\n }\n if (entry === null)\n state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n }\n Writable.prototype._write = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_write()"));\n };\n Writable.prototype._writev = null;\n Writable.prototype.end = function(chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === "function") {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== void 0)\n this.write(chunk, encoding);\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n if (!state.ending)\n endWritable(this, state, cb);\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n }\n function callFinal(stream, state) {\n stream._final(function(err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit("prefinish");\n finishMaybe(stream, state);\n });\n }\n function prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === "function" && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit("prefinish");\n }\n }\n }\n function finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit("finish");\n if (state.autoDestroy) {\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n }\n function endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished)\n process.nextTick(cb);\n else\n stream.once("finish", cb);\n }\n state.ended = true;\n stream.writable = false;\n }\n function onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n state.corkedRequestsFree.next = corkReq;\n }\n Object.defineProperty(Writable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._writableState === void 0) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n if (!this._writableState) {\n return;\n }\n this._writableState.destroyed = value;\n }\n });\n Writable.prototype.destroy = destroyImpl.destroy;\n Writable.prototype._undestroy = destroyImpl.undestroy;\n Writable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_duplex.js\nvar require_stream_duplex = __commonJS({\n "node_modules/readable-stream/lib/_stream_duplex.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var objectKeys = Object.keys || function(obj) {\n var keys2 = [];\n for (var key2 in obj) {\n keys2.push(key2);\n }\n return keys2;\n };\n module.exports = Duplex;\n var Readable = require_stream_readable();\n var Writable = require_stream_writable();\n require_inherits_browser()(Duplex, Readable);\n {\n keys = objectKeys(Writable.prototype);\n for (v = 0; v < keys.length; v++) {\n method = keys[v];\n if (!Duplex.prototype[method])\n Duplex.prototype[method] = Writable.prototype[method];\n }\n }\n var keys;\n var method;\n var v;\n function Duplex(options) {\n if (!(this instanceof Duplex))\n return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false)\n this.readable = false;\n if (options.writable === false)\n this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once("end", onend);\n }\n }\n }\n Object.defineProperty(Duplex.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n Object.defineProperty(Duplex.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n Object.defineProperty(Duplex.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function onend() {\n if (this._writableState.ended)\n return;\n process.nextTick(onEndNT, this);\n }\n function onEndNT(self2) {\n self2.end();\n }\n Object.defineProperty(Duplex.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return;\n }\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n });\n }\n});\n\n// node_modules/safe-buffer/index.js\nvar require_safe_buffer = __commonJS({\n "node_modules/safe-buffer/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var buffer = require_buffer();\n var Buffer13 = buffer.Buffer;\n function copyProps(src, dst) {\n for (var key2 in src) {\n dst[key2] = src[key2];\n }\n }\n if (Buffer13.from && Buffer13.alloc && Buffer13.allocUnsafe && Buffer13.allocUnsafeSlow) {\n module.exports = buffer;\n } else {\n copyProps(buffer, exports);\n exports.Buffer = SafeBuffer;\n }\n function SafeBuffer(arg, encodingOrOffset, length) {\n return Buffer13(arg, encodingOrOffset, length);\n }\n SafeBuffer.prototype = Object.create(Buffer13.prototype);\n copyProps(Buffer13, SafeBuffer);\n SafeBuffer.from = function(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n throw new TypeError("Argument must not be a number");\n }\n return Buffer13(arg, encodingOrOffset, length);\n };\n SafeBuffer.alloc = function(size, fill, encoding) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n var buf2 = Buffer13(size);\n if (fill !== void 0) {\n if (typeof encoding === "string") {\n buf2.fill(fill, encoding);\n } else {\n buf2.fill(fill);\n }\n } else {\n buf2.fill(0);\n }\n return buf2;\n };\n SafeBuffer.allocUnsafe = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return Buffer13(size);\n };\n SafeBuffer.allocUnsafeSlow = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return buffer.SlowBuffer(size);\n };\n }\n});\n\n// node_modules/string_decoder/lib/string_decoder.js\nvar require_string_decoder = __commonJS({\n "node_modules/string_decoder/lib/string_decoder.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var Buffer13 = require_safe_buffer().Buffer;\n var isEncoding = Buffer13.isEncoding || function(encoding) {\n encoding = "" + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n case "raw":\n return true;\n default:\n return false;\n }\n };\n function _normalizeEncoding(enc) {\n if (!enc)\n return "utf8";\n var retried;\n while (true) {\n switch (enc) {\n case "utf8":\n case "utf-8":\n return "utf8";\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return "utf16le";\n case "latin1":\n case "binary":\n return "latin1";\n case "base64":\n case "ascii":\n case "hex":\n return enc;\n default:\n if (retried)\n return;\n enc = ("" + enc).toLowerCase();\n retried = true;\n }\n }\n }\n function normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== "string" && (Buffer13.isEncoding === isEncoding || !isEncoding(enc)))\n throw new Error("Unknown encoding: " + enc);\n return nenc || enc;\n }\n exports.StringDecoder = StringDecoder;\n function StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case "utf16le":\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case "utf8":\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case "base64":\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer13.allocUnsafe(nb);\n }\n StringDecoder.prototype.write = function(buf2) {\n if (buf2.length === 0)\n return "";\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf2);\n if (r === void 0)\n return "";\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf2.length)\n return r ? r + this.text(buf2, i) : this.text(buf2, i);\n return r || "";\n };\n StringDecoder.prototype.end = utf8End;\n StringDecoder.prototype.text = utf8Text;\n StringDecoder.prototype.fillLast = function(buf2) {\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf2.length);\n this.lastNeed -= buf2.length;\n };\n function utf8CheckByte(byte) {\n if (byte <= 127)\n return 0;\n else if (byte >> 5 === 6)\n return 2;\n else if (byte >> 4 === 14)\n return 3;\n else if (byte >> 3 === 30)\n return 4;\n return byte >> 6 === 2 ? -1 : -2;\n }\n function utf8CheckIncomplete(self2, buf2, i) {\n var j = buf2.length - 1;\n if (j < i)\n return 0;\n var nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2)\n nb = 0;\n else\n self2.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n }\n function utf8CheckExtraBytes(self2, buf2, p) {\n if ((buf2[0] & 192) !== 128) {\n self2.lastNeed = 0;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 1 && buf2.length > 1) {\n if ((buf2[1] & 192) !== 128) {\n self2.lastNeed = 1;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 2 && buf2.length > 2) {\n if ((buf2[2] & 192) !== 128) {\n self2.lastNeed = 2;\n return "\\uFFFD";\n }\n }\n }\n }\n function utf8FillLast(buf2) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf2, p);\n if (r !== void 0)\n return r;\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, p, 0, buf2.length);\n this.lastNeed -= buf2.length;\n }\n function utf8Text(buf2, i) {\n var total = utf8CheckIncomplete(this, buf2, i);\n if (!this.lastNeed)\n return buf2.toString("utf8", i);\n this.lastTotal = total;\n var end = buf2.length - (total - this.lastNeed);\n buf2.copy(this.lastChar, 0, end);\n return buf2.toString("utf8", i, end);\n }\n function utf8End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + "\\uFFFD";\n return r;\n }\n function utf16Text(buf2, i) {\n if ((buf2.length - i) % 2 === 0) {\n var r = buf2.toString("utf16le", i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 55296 && c <= 56319) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf2[buf2.length - 1];\n return buf2.toString("utf16le", i, buf2.length - 1);\n }\n function utf16End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString("utf16le", 0, end);\n }\n return r;\n }\n function base64Text(buf2, i) {\n var n = (buf2.length - i) % 3;\n if (n === 0)\n return buf2.toString("base64", i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf2[buf2.length - 1];\n } else {\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n }\n return buf2.toString("base64", i, buf2.length - n);\n }\n function base64End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + this.lastChar.toString("base64", 0, 3 - this.lastNeed);\n return r;\n }\n function simpleWrite(buf2) {\n return buf2.toString(this.encoding);\n }\n function simpleEnd(buf2) {\n return buf2 && buf2.length ? this.write(buf2) : "";\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/end-of-stream.js\nvar require_end_of_stream = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_STREAM_PREMATURE_CLOSE = require_errors_browser().codes.ERR_STREAM_PREMATURE_CLOSE;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n }\n function noop2() {\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function eos(stream, opts, callback) {\n if (typeof opts === "function")\n return eos(stream, null, opts);\n if (!opts)\n opts = {};\n callback = once(callback || noop2);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable2 = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish2() {\n if (!stream.writable)\n onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish2() {\n writable2 = false;\n writableEnded = true;\n if (!readable)\n callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend2() {\n readable = false;\n readableEnded = true;\n if (!writable2)\n callback.call(stream);\n };\n var onerror = function onerror2(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose2() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable2 && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest2() {\n stream.req.on("finish", onfinish);\n };\n if (isRequest(stream)) {\n stream.on("complete", onfinish);\n stream.on("abort", onclose);\n if (stream.req)\n onrequest();\n else\n stream.on("request", onrequest);\n } else if (writable2 && !stream._writableState) {\n stream.on("end", onlegacyfinish);\n stream.on("close", onlegacyfinish);\n }\n stream.on("end", onend);\n stream.on("finish", onfinish);\n if (opts.error !== false)\n stream.on("error", onerror);\n stream.on("close", onclose);\n return function() {\n stream.removeListener("complete", onfinish);\n stream.removeListener("abort", onclose);\n stream.removeListener("request", onrequest);\n if (stream.req)\n stream.req.removeListener("finish", onfinish);\n stream.removeListener("end", onlegacyfinish);\n stream.removeListener("close", onlegacyfinish);\n stream.removeListener("finish", onfinish);\n stream.removeListener("end", onend);\n stream.removeListener("error", onerror);\n stream.removeListener("close", onclose);\n };\n }\n module.exports = eos;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/async_iterator.js\nvar require_async_iterator = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/async_iterator.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var _Object$setPrototypeO;\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n var finished = require_end_of_stream();\n var kLastResolve = Symbol("lastResolve");\n var kLastReject = Symbol("lastReject");\n var kError = Symbol("error");\n var kEnded = Symbol("ended");\n var kLastPromise = Symbol("lastPromise");\n var kHandlePromise = Symbol("handlePromise");\n var kStream = Symbol("stream");\n function createIterResult(value, done) {\n return {\n value,\n done\n };\n }\n function readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n }\n function onReadable(iter) {\n process.nextTick(readAndResolve, iter);\n }\n function wrapForNext(lastPromise, iter) {\n return function(resolve, reject) {\n lastPromise.then(function() {\n if (iter[kEnded]) {\n resolve(createIterResult(void 0, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n }\n var AsyncIteratorPrototype = Object.getPrototypeOf(function() {\n });\n var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(void 0, true));\n }\n if (this[kStream].destroyed) {\n return new Promise(function(resolve, reject) {\n process.nextTick(function() {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(void 0, true));\n }\n });\n });\n }\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n }, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function() {\n return this;\n }), _defineProperty(_Object$setPrototypeO, "return", function _return() {\n var _this2 = this;\n return new Promise(function(resolve, reject) {\n _this2[kStream].destroy(null, function(err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(void 0, true));\n });\n });\n }), _Object$setPrototypeO), AsyncIteratorPrototype);\n var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator2(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function(err) {\n if (err && err.code !== "ERR_STREAM_PREMATURE_CLOSE") {\n var reject = iterator[kLastReject];\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(void 0, true));\n }\n iterator[kEnded] = true;\n });\n stream.on("readable", onReadable.bind(null, iterator));\n return iterator;\n };\n module.exports = createReadableStreamAsyncIterator;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/from-browser.js\nvar require_from_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/from-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = function() {\n throw new Error("Readable.from is not available in the browser");\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_readable.js\nvar require_stream_readable = __commonJS({\n "node_modules/readable-stream/lib/_stream_readable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Readable;\n var Duplex;\n Readable.ReadableState = ReadableState;\n var EE = require_events().EventEmitter;\n var EElistenerCount = function EElistenerCount2(emitter, type) {\n return emitter.listeners(type).length;\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var debugUtil = require_util();\n var debug;\n if (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog("stream");\n } else {\n debug = function debug2() {\n };\n }\n var BufferList = require_buffer_list();\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n var StringDecoder;\n var createReadableStreamAsyncIterator;\n var from;\n require_inherits_browser()(Readable, Stream);\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n var kProxyEvents = ["error", "close", "destroy", "pause", "resume"];\n function prependListener(emitter, event, fn) {\n if (typeof emitter.prependListener === "function")\n return emitter.prependListener(event, fn);\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n function ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.readableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "readableHighWaterMark", isDuplex);\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n this.sync = true;\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.destroyed = false;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.awaitDrain = 0;\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n }\n function Readable(options) {\n Duplex = Duplex || require_stream_duplex();\n if (!(this instanceof Readable))\n return new Readable(options);\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n this.readable = true;\n if (options) {\n if (typeof options.read === "function")\n this._read = options.read;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n }\n Stream.call(this);\n }\n Object.defineProperty(Readable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n if (!this._readableState) {\n return;\n }\n this._readableState.destroyed = value;\n }\n });\n Readable.prototype.destroy = destroyImpl.destroy;\n Readable.prototype._undestroy = destroyImpl.undestroy;\n Readable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n Readable.prototype.push = function(chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === "string") {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer13.from(chunk, encoding);\n encoding = "";\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n };\n Readable.prototype.unshift = function(chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n };\n function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug("readableAddChunk", chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck)\n er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== "string" && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer13.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted)\n errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());\n else\n addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0)\n addChunk(stream, state, chunk, false);\n else\n maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n }\n function addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit("data", chunk);\n } else {\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront)\n state.buffer.unshift(chunk);\n else\n state.buffer.push(chunk);\n if (state.needReadable)\n emitReadable(stream);\n }\n maybeReadMore(stream, state);\n }\n function chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== "string" && chunk !== void 0 && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer", "Uint8Array"], chunk);\n }\n return er;\n }\n Readable.prototype.isPaused = function() {\n return this._readableState.flowing === false;\n };\n Readable.prototype.setEncoding = function(enc) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n this._readableState.encoding = this._readableState.decoder.encoding;\n var p = this._readableState.buffer.head;\n var content = "";\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== "")\n this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n };\n var MAX_HWM = 1073741824;\n function computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n }\n function howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended)\n return 0;\n if (state.objectMode)\n return 1;\n if (n !== n) {\n if (state.flowing && state.length)\n return state.buffer.head.data.length;\n else\n return state.length;\n }\n if (n > state.highWaterMark)\n state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length)\n return n;\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n }\n Readable.prototype.read = function(n) {\n debug("read", n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0)\n state.emittedReadable = false;\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug("read: emitReadable", state.length, state.ended);\n if (state.length === 0 && state.ended)\n endReadable(this);\n else\n emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n if (n === 0 && state.ended) {\n if (state.length === 0)\n endReadable(this);\n return null;\n }\n var doRead = state.needReadable;\n debug("need readable", doRead);\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug("length less than watermark", doRead);\n }\n if (state.ended || state.reading) {\n doRead = false;\n debug("reading or ended", doRead);\n } else if (doRead) {\n debug("do read");\n state.reading = true;\n state.sync = true;\n if (state.length === 0)\n state.needReadable = true;\n this._read(state.highWaterMark);\n state.sync = false;\n if (!state.reading)\n n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0)\n ret = fromList(n, state);\n else\n ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n if (!state.ended)\n state.needReadable = true;\n if (nOrig !== n && state.ended)\n endReadable(this);\n }\n if (ret !== null)\n this.emit("data", ret);\n return ret;\n };\n function onEofChunk(stream, state) {\n debug("onEofChunk");\n if (state.ended)\n return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n emitReadable(stream);\n } else {\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n }\n function emitReadable(stream) {\n var state = stream._readableState;\n debug("emitReadable", state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug("emitReadable", state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n }\n function emitReadable_(stream) {\n var state = stream._readableState;\n debug("emitReadable_", state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit("readable");\n state.emittedReadable = false;\n }\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n }\n function maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n }\n function maybeReadMore_(stream, state) {\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug("maybeReadMore read 0");\n stream.read(0);\n if (len === state.length)\n break;\n }\n state.readingMore = false;\n }\n Readable.prototype._read = function(n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED("_read()"));\n };\n Readable.prototype.pipe = function(dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug("pipe count=%d opts=%j", state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted)\n process.nextTick(endFn);\n else\n src.once("end", endFn);\n dest.on("unpipe", onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug("onunpipe");\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug("onend");\n dest.end();\n }\n var ondrain = pipeOnDrain(src);\n dest.on("drain", ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug("cleanup");\n dest.removeListener("close", onclose);\n dest.removeListener("finish", onfinish);\n dest.removeListener("drain", ondrain);\n dest.removeListener("error", onerror);\n dest.removeListener("unpipe", onunpipe);\n src.removeListener("end", onend);\n src.removeListener("end", unpipe);\n src.removeListener("data", ondata);\n cleanedUp = true;\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain))\n ondrain();\n }\n src.on("data", ondata);\n function ondata(chunk) {\n debug("ondata");\n var ret = dest.write(chunk);\n debug("dest.write", ret);\n if (ret === false) {\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug("false write response, pause", state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n function onerror(er) {\n debug("onerror", er);\n unpipe();\n dest.removeListener("error", onerror);\n if (EElistenerCount(dest, "error") === 0)\n errorOrDestroy(dest, er);\n }\n prependListener(dest, "error", onerror);\n function onclose() {\n dest.removeListener("finish", onfinish);\n unpipe();\n }\n dest.once("close", onclose);\n function onfinish() {\n debug("onfinish");\n dest.removeListener("close", onclose);\n unpipe();\n }\n dest.once("finish", onfinish);\n function unpipe() {\n debug("unpipe");\n src.unpipe(dest);\n }\n dest.emit("pipe", src);\n if (!state.flowing) {\n debug("pipe resume");\n src.resume();\n }\n return dest;\n };\n function pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug("pipeOnDrain", state.awaitDrain);\n if (state.awaitDrain)\n state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, "data")) {\n state.flowing = true;\n flow(src);\n }\n };\n }\n Readable.prototype.unpipe = function(dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n if (state.pipesCount === 0)\n return this;\n if (state.pipesCount === 1) {\n if (dest && dest !== state.pipes)\n return this;\n if (!dest)\n dest = state.pipes;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest)\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n }\n if (!dest) {\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) {\n dests[i].emit("unpipe", this, {\n hasUnpiped: false\n });\n }\n return this;\n }\n var index = indexOf(state.pipes, dest);\n if (index === -1)\n return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1)\n state.pipes = state.pipes[0];\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n };\n Readable.prototype.on = function(ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === "data") {\n state.readableListening = this.listenerCount("readable") > 0;\n if (state.flowing !== false)\n this.resume();\n } else if (ev === "readable") {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug("on readable", state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n };\n Readable.prototype.addListener = Readable.prototype.on;\n Readable.prototype.removeListener = function(ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === "readable") {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n Readable.prototype.removeAllListeners = function(ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === "readable" || ev === void 0) {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n function updateReadableListening(self2) {\n var state = self2._readableState;\n state.readableListening = self2.listenerCount("readable") > 0;\n if (state.resumeScheduled && !state.paused) {\n state.flowing = true;\n } else if (self2.listenerCount("data") > 0) {\n self2.resume();\n }\n }\n function nReadingNextTick(self2) {\n debug("readable nexttick read 0");\n self2.read(0);\n }\n Readable.prototype.resume = function() {\n var state = this._readableState;\n if (!state.flowing) {\n debug("resume");\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n };\n function resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n }\n function resume_(stream, state) {\n debug("resume", state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit("resume");\n flow(stream);\n if (state.flowing && !state.reading)\n stream.read(0);\n }\n Readable.prototype.pause = function() {\n debug("call pause flowing=%j", this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug("pause");\n this._readableState.flowing = false;\n this.emit("pause");\n }\n this._readableState.paused = true;\n return this;\n };\n function flow(stream) {\n var state = stream._readableState;\n debug("flow", state.flowing);\n while (state.flowing && stream.read() !== null) {\n ;\n }\n }\n Readable.prototype.wrap = function(stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on("end", function() {\n debug("wrapped end");\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length)\n _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on("data", function(chunk) {\n debug("wrapped data");\n if (state.decoder)\n chunk = state.decoder.write(chunk);\n if (state.objectMode && (chunk === null || chunk === void 0))\n return;\n else if (!state.objectMode && (!chunk || !chunk.length))\n return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n for (var i in stream) {\n if (this[i] === void 0 && typeof stream[i] === "function") {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n this._read = function(n2) {\n debug("wrapped _read", n2);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n };\n if (typeof Symbol === "function") {\n Readable.prototype[Symbol.asyncIterator] = function() {\n if (createReadableStreamAsyncIterator === void 0) {\n createReadableStreamAsyncIterator = require_async_iterator();\n }\n return createReadableStreamAsyncIterator(this);\n };\n }\n Object.defineProperty(Readable.prototype, "readableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n });\n Object.defineProperty(Readable.prototype, "readableBuffer", {\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n });\n Object.defineProperty(Readable.prototype, "readableFlowing", {\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n });\n Readable._fromList = fromList;\n Object.defineProperty(Readable.prototype, "readableLength", {\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n });\n function fromList(n, state) {\n if (state.length === 0)\n return null;\n var ret;\n if (state.objectMode)\n ret = state.buffer.shift();\n else if (!n || n >= state.length) {\n if (state.decoder)\n ret = state.buffer.join("");\n else if (state.buffer.length === 1)\n ret = state.buffer.first();\n else\n ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n }\n function endReadable(stream) {\n var state = stream._readableState;\n debug("endReadable", state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n }\n function endReadableNT(state, stream) {\n debug("endReadableNT", state.endEmitted, state.length);\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit("end");\n if (state.autoDestroy) {\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n }\n if (typeof Symbol === "function") {\n Readable.from = function(iterable, opts) {\n if (from === void 0) {\n from = require_from_browser();\n }\n return from(Readable, iterable, opts);\n };\n }\n function indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x)\n return i;\n }\n return -1;\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_transform.js\nvar require_stream_transform = __commonJS({\n "node_modules/readable-stream/lib/_stream_transform.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Transform;\n var _require$codes = require_errors_browser().codes;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING;\n var ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n var Duplex = require_stream_duplex();\n require_inherits_browser()(Transform, Duplex);\n function afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit("error", new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n }\n function Transform(options) {\n if (!(this instanceof Transform))\n return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n this._readableState.needReadable = true;\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === "function")\n this._transform = options.transform;\n if (typeof options.flush === "function")\n this._flush = options.flush;\n }\n this.on("prefinish", prefinish);\n }\n function prefinish() {\n var _this = this;\n if (typeof this._flush === "function" && !this._readableState.destroyed) {\n this._flush(function(er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n }\n Transform.prototype.push = function(chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n };\n Transform.prototype._transform = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_transform()"));\n };\n Transform.prototype._write = function(chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark)\n this._read(rs.highWaterMark);\n }\n };\n Transform.prototype._read = function(n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n ts.needTransform = true;\n }\n };\n Transform.prototype._destroy = function(err, cb) {\n Duplex.prototype._destroy.call(this, err, function(err2) {\n cb(err2);\n });\n };\n function done(stream, er, data) {\n if (er)\n return stream.emit("error", er);\n if (data != null)\n stream.push(data);\n if (stream._writableState.length)\n throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming)\n throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_passthrough.js\nvar require_stream_passthrough = __commonJS({\n "node_modules/readable-stream/lib/_stream_passthrough.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = PassThrough;\n var Transform = require_stream_transform();\n require_inherits_browser()(PassThrough, Transform);\n function PassThrough(options) {\n if (!(this instanceof PassThrough))\n return new PassThrough(options);\n Transform.call(this, options);\n }\n PassThrough.prototype._transform = function(chunk, encoding, cb) {\n cb(null, chunk);\n };\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/pipeline.js\nvar require_pipeline = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/pipeline.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var eos;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n callback.apply(void 0, arguments);\n };\n }\n var _require$codes = require_errors_browser().codes;\n var ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n function noop2(err) {\n if (err)\n throw err;\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on("close", function() {\n closed = true;\n });\n if (eos === void 0)\n eos = require_end_of_stream();\n eos(stream, {\n readable: reading,\n writable: writing\n }, function(err) {\n if (err)\n return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function(err) {\n if (closed)\n return;\n if (destroyed)\n return;\n destroyed = true;\n if (isRequest(stream))\n return stream.abort();\n if (typeof stream.destroy === "function")\n return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED("pipe"));\n };\n }\n function call(fn) {\n fn();\n }\n function pipe(from, to) {\n return from.pipe(to);\n }\n function popCallback(streams) {\n if (!streams.length)\n return noop2;\n if (typeof streams[streams.length - 1] !== "function")\n return noop2;\n return streams.pop();\n }\n function pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0]))\n streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS("streams");\n }\n var error;\n var destroys = streams.map(function(stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function(err) {\n if (!error)\n error = err;\n if (err)\n destroys.forEach(call);\n if (reading)\n return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n }\n module.exports = pipeline;\n }\n});\n\n// node_modules/readable-stream/readable-browser.js\nvar require_readable_browser = __commonJS({\n "node_modules/readable-stream/readable-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports = module.exports = require_stream_readable();\n exports.Stream = exports;\n exports.Readable = exports;\n exports.Writable = require_stream_writable();\n exports.Duplex = require_stream_duplex();\n exports.Transform = require_stream_transform();\n exports.PassThrough = require_stream_passthrough();\n exports.finished = require_end_of_stream();\n exports.pipeline = require_pipeline();\n }\n});\n\n// node_modules/readable-web-to-node-stream/lib/index.js\nvar require_lib = __commonJS({\n "node_modules/readable-web-to-node-stream/lib/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n Object.defineProperty(exports, "__esModule", { value: true });\n exports.ReadableWebToNodeStream = void 0;\n var readable_stream_1 = require_readable_browser();\n var ReadableWebToNodeStream2 = class extends readable_stream_1.Readable {\n constructor(stream) {\n super();\n this.bytesRead = 0;\n this.released = false;\n this.reader = stream.getReader();\n }\n async _read() {\n if (this.released) {\n this.push(null);\n return;\n }\n this.pendingRead = this.reader.read();\n const data = await this.pendingRead;\n delete this.pendingRead;\n if (data.done || this.released) {\n this.push(null);\n } else {\n this.bytesRead += data.value.length;\n this.push(data.value);\n }\n }\n async waitForReadToComplete() {\n if (this.pendingRead) {\n await this.pendingRead;\n }\n }\n async close() {\n await this.syncAndRelease();\n }\n async syncAndRelease() {\n this.released = true;\n await this.waitForReadToComplete();\n await this.reader.releaseLock();\n }\n };\n exports.ReadableWebToNodeStream = ReadableWebToNodeStream2;\n }\n});\n\n// node_modules/base-x/src/index.js\nvar require_src = __commonJS({\n "node_modules/base-x/src/index.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function base(ALPHABET) {\n if (ALPHABET.length >= 255) {\n throw new TypeError("Alphabet too long");\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + " is ambiguous");\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode2(source) {\n if (source instanceof Uint8Array) {\n } else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError("Expected Uint8Array");\n }\n if (source.length === 0) {\n return "";\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i2 = 0;\n for (var it1 = size - 1; (carry !== 0 || i2 < length) && it1 !== -1; it1--, i2++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== "string") {\n throw new TypeError("Expected String");\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i2 = 0;\n for (var it3 = size - 1; (carry !== 0 || i2 < length) && it3 !== -1; it3--, i2++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n psz++;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j2 = zeroes;\n while (it4 !== size) {\n vch[j2++] = b256[it4++];\n }\n return vch;\n }\n function decode3(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error("Non-base" + BASE + " character");\n }\n return {\n encode: encode2,\n decodeUnsafe,\n decode: decode3\n };\n }\n module.exports = base;\n }\n});\n\n// node_modules/bs58/index.js\nvar require_bs58 = __commonJS({\n "node_modules/bs58/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var basex = require_src();\n var ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";\n module.exports = basex(ALPHABET);\n }\n});\n\n// node_modules/jpeg-js/lib/encoder.js\nvar require_encoder = __commonJS({\n "node_modules/jpeg-js/lib/encoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var btoa = btoa || function(buf2) {\n return Buffer2.from(buf2).toString("base64");\n };\n function JPEGEncoder(quality) {\n var self2 = this;\n var fround = Math.round;\n var ffloor = Math.floor;\n var YTable = new Array(64);\n var UVTable = new Array(64);\n var fdtbl_Y = new Array(64);\n var fdtbl_UV = new Array(64);\n var YDC_HT2;\n var UVDC_HT2;\n var YAC_HT2;\n var UVAC_HT2;\n var bitcode2 = new Array(65535);\n var category2 = new Array(65535);\n var outputfDCTQuant = new Array(64);\n var DU = new Array(64);\n var byteout = [];\n var bytenew = 0;\n var bytepos = 7;\n var YDU = new Array(64);\n var UDU = new Array(64);\n var VDU = new Array(64);\n var clt = new Array(256);\n var RGB_YUV_TABLE = new Array(2048);\n var currentQuality;\n var ZigZag = [\n 0,\n 1,\n 5,\n 6,\n 14,\n 15,\n 27,\n 28,\n 2,\n 4,\n 7,\n 13,\n 16,\n 26,\n 29,\n 42,\n 3,\n 8,\n 12,\n 17,\n 25,\n 30,\n 41,\n 43,\n 9,\n 11,\n 18,\n 24,\n 31,\n 40,\n 44,\n 53,\n 10,\n 19,\n 23,\n 32,\n 39,\n 45,\n 52,\n 54,\n 20,\n 22,\n 33,\n 38,\n 46,\n 51,\n 55,\n 60,\n 21,\n 34,\n 37,\n 47,\n 50,\n 56,\n 59,\n 61,\n 35,\n 36,\n 48,\n 49,\n 57,\n 58,\n 62,\n 63\n ];\n var std_dc_luminance_nrcodes2 = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\n var std_dc_luminance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_luminance_nrcodes2 = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\n var std_ac_luminance_values2 = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n var std_dc_chrominance_nrcodes2 = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\n var std_dc_chrominance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_chrominance_nrcodes2 = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\n var std_ac_chrominance_values2 = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n function initQuantTables(sf) {\n var YQT = [\n 16,\n 11,\n 10,\n 16,\n 24,\n 40,\n 51,\n 61,\n 12,\n 12,\n 14,\n 19,\n 26,\n 58,\n 60,\n 55,\n 14,\n 13,\n 16,\n 24,\n 40,\n 57,\n 69,\n 56,\n 14,\n 17,\n 22,\n 29,\n 51,\n 87,\n 80,\n 62,\n 18,\n 22,\n 37,\n 56,\n 68,\n 109,\n 103,\n 77,\n 24,\n 35,\n 55,\n 64,\n 81,\n 104,\n 113,\n 92,\n 49,\n 64,\n 78,\n 87,\n 103,\n 121,\n 120,\n 101,\n 72,\n 92,\n 95,\n 98,\n 112,\n 100,\n 103,\n 99\n ];\n for (var i = 0; i < 64; i++) {\n var t = ffloor((YQT[i] * sf + 50) / 100);\n if (t < 1) {\n t = 1;\n } else if (t > 255) {\n t = 255;\n }\n YTable[ZigZag[i]] = t;\n }\n var UVQT = [\n 17,\n 18,\n 24,\n 47,\n 99,\n 99,\n 99,\n 99,\n 18,\n 21,\n 26,\n 66,\n 99,\n 99,\n 99,\n 99,\n 24,\n 26,\n 56,\n 99,\n 99,\n 99,\n 99,\n 99,\n 47,\n 66,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99\n ];\n for (var j = 0; j < 64; j++) {\n var u = ffloor((UVQT[j] * sf + 50) / 100);\n if (u < 1) {\n u = 1;\n } else if (u > 255) {\n u = 255;\n }\n UVTable[ZigZag[j]] = u;\n }\n var aasf = [\n 1,\n 1.387039845,\n 1.306562965,\n 1.175875602,\n 1,\n 0.785694958,\n 0.5411961,\n 0.275899379\n ];\n var k = 0;\n for (var row = 0; row < 8; row++) {\n for (var col = 0; col < 8; col++) {\n fdtbl_Y[k] = 1 / (YTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n fdtbl_UV[k] = 1 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n k++;\n }\n }\n }\n function computeHuffmanTbl(nrcodes, std_table) {\n var codevalue = 0;\n var pos_in_table = 0;\n var HT = new Array();\n for (var k = 1; k <= 16; k++) {\n for (var j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n function initHuffmanTbl() {\n YDC_HT2 = computeHuffmanTbl(std_dc_luminance_nrcodes2, std_dc_luminance_values2);\n UVDC_HT2 = computeHuffmanTbl(std_dc_chrominance_nrcodes2, std_dc_chrominance_values2);\n YAC_HT2 = computeHuffmanTbl(std_ac_luminance_nrcodes2, std_ac_luminance_values2);\n UVAC_HT2 = computeHuffmanTbl(std_ac_chrominance_nrcodes2, std_ac_chrominance_values2);\n }\n function initCategoryNumber() {\n var nrlower = 1;\n var nrupper = 2;\n for (var cat = 1; cat <= 15; cat++) {\n for (var nr = nrlower; nr < nrupper; nr++) {\n category2[32767 + nr] = cat;\n bitcode2[32767 + nr] = [];\n bitcode2[32767 + nr][1] = cat;\n bitcode2[32767 + nr][0] = nr;\n }\n for (var nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category2[32767 + nrneg] = cat;\n bitcode2[32767 + nrneg] = [];\n bitcode2[32767 + nrneg][1] = cat;\n bitcode2[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n }\n function initRGBYUVTable() {\n for (var i = 0; i < 256; i++) {\n RGB_YUV_TABLE[i] = 19595 * i;\n RGB_YUV_TABLE[i + 256 >> 0] = 38470 * i;\n RGB_YUV_TABLE[i + 512 >> 0] = 7471 * i + 32768;\n RGB_YUV_TABLE[i + 768 >> 0] = -11059 * i;\n RGB_YUV_TABLE[i + 1024 >> 0] = -21709 * i;\n RGB_YUV_TABLE[i + 1280 >> 0] = 32768 * i + 8421375;\n RGB_YUV_TABLE[i + 1536 >> 0] = -27439 * i;\n RGB_YUV_TABLE[i + 1792 >> 0] = -5329 * i;\n }\n }\n function writeBits(bs) {\n var value = bs[0];\n var posval = bs[1] - 1;\n while (posval >= 0) {\n if (value & 1 << posval) {\n bytenew |= 1 << bytepos;\n }\n posval--;\n bytepos--;\n if (bytepos < 0) {\n if (bytenew == 255) {\n writeByte(255);\n writeByte(0);\n } else {\n writeByte(bytenew);\n }\n bytepos = 7;\n bytenew = 0;\n }\n }\n }\n function writeByte(value) {\n byteout.push(value);\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function fDCTQuant(data, fdtbl) {\n var d0, d1, d2, d3, d4, d5, d6, d7;\n var dataOff = 0;\n var i;\n var I8 = 8;\n var I64 = 64;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 1];\n d2 = data[dataOff + 2];\n d3 = data[dataOff + 3];\n d4 = data[dataOff + 4];\n d5 = data[dataOff + 5];\n d6 = data[dataOff + 6];\n d7 = data[dataOff + 7];\n var tmp0 = d0 + d7;\n var tmp7 = d0 - d7;\n var tmp1 = d1 + d6;\n var tmp6 = d1 - d6;\n var tmp2 = d2 + d5;\n var tmp5 = d2 - d5;\n var tmp3 = d3 + d4;\n var tmp4 = d3 - d4;\n var tmp10 = tmp0 + tmp3;\n var tmp13 = tmp0 - tmp3;\n var tmp11 = tmp1 + tmp2;\n var tmp12 = tmp1 - tmp2;\n data[dataOff] = tmp10 + tmp11;\n data[dataOff + 4] = tmp10 - tmp11;\n var z1 = (tmp12 + tmp13) * 0.707106781;\n data[dataOff + 2] = tmp13 + z1;\n data[dataOff + 6] = tmp13 - z1;\n tmp10 = tmp4 + tmp5;\n tmp11 = tmp5 + tmp6;\n tmp12 = tmp6 + tmp7;\n var z5 = (tmp10 - tmp12) * 0.382683433;\n var z2 = 0.5411961 * tmp10 + z5;\n var z4 = 1.306562965 * tmp12 + z5;\n var z3 = tmp11 * 0.707106781;\n var z11 = tmp7 + z3;\n var z13 = tmp7 - z3;\n data[dataOff + 5] = z13 + z2;\n data[dataOff + 3] = z13 - z2;\n data[dataOff + 1] = z11 + z4;\n data[dataOff + 7] = z11 - z4;\n dataOff += 8;\n }\n dataOff = 0;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 8];\n d2 = data[dataOff + 16];\n d3 = data[dataOff + 24];\n d4 = data[dataOff + 32];\n d5 = data[dataOff + 40];\n d6 = data[dataOff + 48];\n d7 = data[dataOff + 56];\n var tmp0p2 = d0 + d7;\n var tmp7p2 = d0 - d7;\n var tmp1p2 = d1 + d6;\n var tmp6p2 = d1 - d6;\n var tmp2p2 = d2 + d5;\n var tmp5p2 = d2 - d5;\n var tmp3p2 = d3 + d4;\n var tmp4p2 = d3 - d4;\n var tmp10p2 = tmp0p2 + tmp3p2;\n var tmp13p2 = tmp0p2 - tmp3p2;\n var tmp11p2 = tmp1p2 + tmp2p2;\n var tmp12p2 = tmp1p2 - tmp2p2;\n data[dataOff] = tmp10p2 + tmp11p2;\n data[dataOff + 32] = tmp10p2 - tmp11p2;\n var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781;\n data[dataOff + 16] = tmp13p2 + z1p2;\n data[dataOff + 48] = tmp13p2 - z1p2;\n tmp10p2 = tmp4p2 + tmp5p2;\n tmp11p2 = tmp5p2 + tmp6p2;\n tmp12p2 = tmp6p2 + tmp7p2;\n var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433;\n var z2p2 = 0.5411961 * tmp10p2 + z5p2;\n var z4p2 = 1.306562965 * tmp12p2 + z5p2;\n var z3p2 = tmp11p2 * 0.707106781;\n var z11p2 = tmp7p2 + z3p2;\n var z13p2 = tmp7p2 - z3p2;\n data[dataOff + 40] = z13p2 + z2p2;\n data[dataOff + 24] = z13p2 - z2p2;\n data[dataOff + 8] = z11p2 + z4p2;\n data[dataOff + 56] = z11p2 - z4p2;\n dataOff++;\n }\n var fDCTQuant2;\n for (i = 0; i < I64; ++i) {\n fDCTQuant2 = data[i] * fdtbl[i];\n outputfDCTQuant[i] = fDCTQuant2 > 0 ? fDCTQuant2 + 0.5 | 0 : fDCTQuant2 - 0.5 | 0;\n }\n return outputfDCTQuant;\n }\n function writeAPP0() {\n writeWord(65504);\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n }\n function writeAPP1(exifBuffer) {\n if (!exifBuffer)\n return;\n writeWord(65505);\n if (exifBuffer[0] === 69 && exifBuffer[1] === 120 && exifBuffer[2] === 105 && exifBuffer[3] === 102) {\n writeWord(exifBuffer.length + 2);\n } else {\n writeWord(exifBuffer.length + 5 + 2);\n writeByte(69);\n writeByte(120);\n writeByte(105);\n writeByte(102);\n writeByte(0);\n }\n for (var i = 0; i < exifBuffer.length; i++) {\n writeByte(exifBuffer[i]);\n }\n }\n function writeSOF0(width, height) {\n writeWord(65472);\n writeWord(17);\n writeByte(8);\n writeWord(height);\n writeWord(width);\n writeByte(3);\n writeByte(1);\n writeByte(17);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(1);\n writeByte(3);\n writeByte(17);\n writeByte(1);\n }\n function writeDQT() {\n writeWord(65499);\n writeWord(132);\n writeByte(0);\n for (var i = 0; i < 64; i++) {\n writeByte(YTable[i]);\n }\n writeByte(1);\n for (var j = 0; j < 64; j++) {\n writeByte(UVTable[j]);\n }\n }\n function writeDHT() {\n writeWord(65476);\n writeWord(418);\n writeByte(0);\n for (var i = 0; i < 16; i++) {\n writeByte(std_dc_luminance_nrcodes2[i + 1]);\n }\n for (var j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values2[j]);\n }\n writeByte(16);\n for (var k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes2[k + 1]);\n }\n for (var l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values2[l]);\n }\n writeByte(1);\n for (var m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes2[m + 1]);\n }\n for (var n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values2[n]);\n }\n writeByte(17);\n for (var o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes2[o + 1]);\n }\n for (var p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values2[p]);\n }\n }\n function writeCOM(comments) {\n if (typeof comments === "undefined" || comments.constructor !== Array)\n return;\n comments.forEach((e) => {\n if (typeof e !== "string")\n return;\n writeWord(65534);\n var l = e.length;\n writeWord(l + 2);\n var i;\n for (i = 0; i < l; i++)\n writeByte(e.charCodeAt(i));\n });\n }\n function writeSOS() {\n writeWord(65498);\n writeWord(12);\n writeByte(3);\n writeByte(1);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(3);\n writeByte(17);\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(CDU, fdtbl, DC, HTDC, HTAC) {\n var EOB = HTAC[0];\n var M16zeroes = HTAC[240];\n var pos;\n var I16 = 16;\n var I63 = 63;\n var I64 = 64;\n var DU_DCT = fDCTQuant(CDU, fdtbl);\n for (var j = 0; j < I64; ++j) {\n DU[ZigZag[j]] = DU_DCT[j];\n }\n var Diff = DU[0] - DC;\n DC = DU[0];\n if (Diff == 0) {\n writeBits(HTDC[0]);\n } else {\n pos = 32767 + Diff;\n writeBits(HTDC[category2[pos]]);\n writeBits(bitcode2[pos]);\n }\n var end0pos = 63;\n for (; end0pos > 0 && DU[end0pos] == 0; end0pos--) {\n }\n ;\n if (end0pos == 0) {\n writeBits(EOB);\n return DC;\n }\n var i = 1;\n var lng;\n while (i <= end0pos) {\n var startpos = i;\n for (; DU[i] == 0 && i <= end0pos; ++i) {\n }\n var nrzeroes = i - startpos;\n if (nrzeroes >= I16) {\n lng = nrzeroes >> 4;\n for (var nrmarker = 1; nrmarker <= lng; ++nrmarker)\n writeBits(M16zeroes);\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + DU[i];\n writeBits(HTAC[(nrzeroes << 4) + category2[pos]]);\n writeBits(bitcode2[pos]);\n i++;\n }\n if (end0pos != I63) {\n writeBits(EOB);\n }\n return DC;\n }\n function initCharLookupTable() {\n var sfcc = String.fromCharCode;\n for (var i = 0; i < 256; i++) {\n clt[i] = sfcc(i);\n }\n }\n this.encode = function(image, quality2) {\n var time_start = new Date().getTime();\n if (quality2)\n setQuality(quality2);\n byteout = new Array();\n bytenew = 0;\n bytepos = 7;\n writeWord(65496);\n writeAPP0();\n writeCOM(image.comments);\n writeAPP1(image.exifBuffer);\n writeDQT();\n writeSOF0(image.width, image.height);\n writeDHT();\n writeSOS();\n var DCY = 0;\n var DCU = 0;\n var DCV = 0;\n bytenew = 0;\n bytepos = 7;\n this.encode.displayName = "_encode_";\n var imageData = image.data;\n var width = image.width;\n var height = image.height;\n var quadWidth = width * 4;\n var tripleWidth = width * 3;\n var x, y = 0;\n var r, g, b;\n var start, p, col, row, pos;\n while (y < height) {\n x = 0;\n while (x < quadWidth) {\n start = quadWidth * y + x;\n p = start;\n col = -1;\n row = 0;\n for (pos = 0; pos < 64; pos++) {\n row = pos >> 3;\n col = (pos & 7) * 4;\n p = start + row * quadWidth + col;\n if (y + row >= height) {\n p -= quadWidth * (y + 1 + row - height);\n }\n if (x + col >= quadWidth) {\n p -= x + col - quadWidth + 4;\n }\n r = imageData[p++];\n g = imageData[p++];\n b = imageData[p++];\n YDU[pos] = (RGB_YUV_TABLE[r] + RGB_YUV_TABLE[g + 256 >> 0] + RGB_YUV_TABLE[b + 512 >> 0] >> 16) - 128;\n UDU[pos] = (RGB_YUV_TABLE[r + 768 >> 0] + RGB_YUV_TABLE[g + 1024 >> 0] + RGB_YUV_TABLE[b + 1280 >> 0] >> 16) - 128;\n VDU[pos] = (RGB_YUV_TABLE[r + 1280 >> 0] + RGB_YUV_TABLE[g + 1536 >> 0] + RGB_YUV_TABLE[b + 1792 >> 0] >> 16) - 128;\n }\n DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT2, YAC_HT2);\n DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT2, UVAC_HT2);\n DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT2, UVAC_HT2);\n x += 32;\n }\n y += 8;\n }\n if (bytepos >= 0) {\n var fillbits = [];\n fillbits[1] = bytepos + 1;\n fillbits[0] = (1 << bytepos + 1) - 1;\n writeBits(fillbits);\n }\n writeWord(65497);\n if (typeof module === "undefined")\n return new Uint8Array(byteout);\n return Buffer2.from(byteout);\n var jpegDataUri = "data:image/jpeg;base64," + btoa(byteout.join(""));\n byteout = [];\n var duration = new Date().getTime() - time_start;\n return jpegDataUri;\n };\n function setQuality(quality2) {\n if (quality2 <= 0) {\n quality2 = 1;\n }\n if (quality2 > 100) {\n quality2 = 100;\n }\n if (currentQuality == quality2)\n return;\n var sf = 0;\n if (quality2 < 50) {\n sf = Math.floor(5e3 / quality2);\n } else {\n sf = Math.floor(200 - quality2 * 2);\n }\n initQuantTables(sf);\n currentQuality = quality2;\n }\n function init3() {\n var time_start = new Date().getTime();\n if (!quality)\n quality = 50;\n initCharLookupTable();\n initHuffmanTbl();\n initCategoryNumber();\n initRGBYUVTable();\n setQuality(quality);\n var duration = new Date().getTime() - time_start;\n }\n init3();\n }\n if (typeof module !== "undefined") {\n module.exports = encode2;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].encode = encode2;\n }\n function encode2(imgData, qu) {\n if (typeof qu === "undefined")\n qu = 50;\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(imgData, qu);\n return {\n data,\n width: imgData.width,\n height: imgData.height\n };\n }\n }\n});\n\n// node_modules/jpeg-js/lib/decoder.js\nvar require_decoder = __commonJS({\n "node_modules/jpeg-js/lib/decoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var JpegImage = function jpegImage() {\n "use strict";\n var dctZigZag = new Int32Array([\n 0,\n 1,\n 8,\n 16,\n 9,\n 2,\n 3,\n 10,\n 17,\n 24,\n 32,\n 25,\n 18,\n 11,\n 4,\n 5,\n 12,\n 19,\n 26,\n 33,\n 40,\n 48,\n 41,\n 34,\n 27,\n 20,\n 13,\n 6,\n 7,\n 14,\n 21,\n 28,\n 35,\n 42,\n 49,\n 56,\n 57,\n 50,\n 43,\n 36,\n 29,\n 22,\n 15,\n 23,\n 30,\n 37,\n 44,\n 51,\n 58,\n 59,\n 52,\n 45,\n 38,\n 31,\n 39,\n 46,\n 53,\n 60,\n 61,\n 54,\n 47,\n 55,\n 62,\n 63\n ]);\n var dctCos1 = 4017;\n var dctSin1 = 799;\n var dctCos3 = 3406;\n var dctSin3 = 2276;\n var dctCos6 = 1567;\n var dctSin6 = 3784;\n var dctSqrt2 = 5793;\n var dctSqrt1d2 = 2896;\n function constructor() {\n }\n function buildHuffmanTable2(codeLengths, values) {\n var k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n var p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n }\n function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive, opts) {\n var precision = frame.precision;\n var samplesPerLine = frame.samplesPerLine;\n var scanLines = frame.scanLines;\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\n var maxH = frame.maxH, maxV = frame.maxV;\n var startOffset = offset, bitsData = 0, bitsCount = 0;\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return bitsData >> bitsCount & 1;\n }\n bitsData = data[offset++];\n if (bitsData == 255) {\n var nextByte = data[offset++];\n if (nextByte) {\n throw new Error("unexpected marker: " + (bitsData << 8 | nextByte).toString(16));\n }\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n function decodeHuffman(tree) {\n var node = tree, bit;\n while ((bit = readBit()) !== null) {\n node = node[bit];\n if (typeof node === "number")\n return node;\n if (typeof node !== "object")\n throw new Error("invalid huffman sequence");\n }\n return null;\n }\n function receive(length) {\n var n2 = 0;\n while (length > 0) {\n var bit = readBit();\n if (bit === null)\n return;\n n2 = n2 << 1 | bit;\n length--;\n }\n return n2;\n }\n function receiveAndExtend(length) {\n var n2 = receive(length);\n if (n2 >= 1 << length - 1)\n return n2;\n return n2 + (-1 << length) + 1;\n }\n function decodeBaseline(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t);\n zz[0] = component2.pred += diff;\n var k2 = 1;\n while (k2 < 64) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15)\n break;\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s);\n k2++;\n }\n }\n function decodeDCFirst(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n zz[0] = component2.pred += diff;\n }\n function decodeDCSuccessive(component2, zz) {\n zz[0] |= readBit() << successive;\n }\n var eobrun = 0;\n function decodeACFirst(component2, zz) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n var k2 = spectralStart, e = spectralEnd;\n while (k2 <= e) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s) * (1 << successive);\n k2++;\n }\n }\n var successiveACState = 0, successiveACNextValue;\n function decodeACSuccessive(component2, zz) {\n var k2 = spectralStart, e = spectralEnd, r = 0;\n while (k2 <= e) {\n var z = dctZigZag[k2];\n var direction = zz[z] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0:\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1)\n throw new Error("invalid ACn encoding");\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1:\n case 2:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n r--;\n if (r === 0)\n successiveACState = successiveACState == 2 ? 3 : 0;\n }\n break;\n case 3:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n zz[z] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n break;\n }\n k2++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0)\n successiveACState = 0;\n }\n }\n function decodeMcu(component2, decode4, mcu2, row, col) {\n var mcuRow = mcu2 / mcusPerLine | 0;\n var mcuCol = mcu2 % mcusPerLine;\n var blockRow = mcuRow * component2.v + row;\n var blockCol = mcuCol * component2.h + col;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n function decodeBlock(component2, decode4, mcu2) {\n var blockRow = mcu2 / component2.blocksPerLine | 0;\n var blockCol = mcu2 % component2.blocksPerLine;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n var componentsLength = components.length;\n var component, i, j, k, n;\n var decodeFn;\n if (progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n var mcu = 0, marker;\n var mcuExpected;\n if (componentsLength == 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n if (!resetInterval)\n resetInterval = mcuExpected;\n var h, v;\n while (mcu < mcuExpected) {\n for (i = 0; i < componentsLength; i++)\n components[i].pred = 0;\n eobrun = 0;\n if (componentsLength == 1) {\n component = components[0];\n for (n = 0; n < resetInterval; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < resetInterval; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n if (mcu === mcuExpected)\n break;\n }\n }\n if (mcu === mcuExpected) {\n do {\n if (data[offset] === 255) {\n if (data[offset + 1] !== 0) {\n break;\n }\n }\n offset += 1;\n } while (offset < data.length - 2);\n }\n bitsCount = 0;\n marker = data[offset] << 8 | data[offset + 1];\n if (marker < 65280) {\n throw new Error("marker was not found");\n }\n if (marker >= 65488 && marker <= 65495) {\n offset += 2;\n } else\n break;\n }\n return offset - startOffset;\n }\n function buildComponentData(frame, component) {\n var lines = [];\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var samplesPerLine = blocksPerLine << 3;\n var R = new Int32Array(64), r = new Uint8Array(64);\n function quantizeAndInverse(zz, dataOut, dataIn) {\n var qt = component.quantizationTable;\n var v0, v1, v2, v3, v4, v5, v6, v7, t;\n var p = dataIn;\n var i2;\n for (i2 = 0; i2 < 64; i2++)\n p[i2] = zz[i2] * qt[i2];\n for (i2 = 0; i2 < 8; ++i2) {\n var row = 8 * i2;\n if (p[1 + row] == 0 && p[2 + row] == 0 && p[3 + row] == 0 && p[4 + row] == 0 && p[5 + row] == 0 && p[6 + row] == 0 && p[7 + row] == 0) {\n t = dctSqrt2 * p[0 + row] + 512 >> 10;\n p[0 + row] = t;\n p[1 + row] = t;\n p[2 + row] = t;\n p[3 + row] = t;\n p[4 + row] = t;\n p[5 + row] = t;\n p[6 + row] = t;\n p[7 + row] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 + row] + 128 >> 8;\n v1 = dctSqrt2 * p[4 + row] + 128 >> 8;\n v2 = p[2 + row];\n v3 = p[6 + row];\n v4 = dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128 >> 8;\n v7 = dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128 >> 8;\n v5 = p[3 + row] << 4;\n v6 = p[5 + row] << 4;\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 + row] = v0 + v7;\n p[7 + row] = v0 - v7;\n p[1 + row] = v1 + v6;\n p[6 + row] = v1 - v6;\n p[2 + row] = v2 + v5;\n p[5 + row] = v2 - v5;\n p[3 + row] = v3 + v4;\n p[4 + row] = v3 - v4;\n }\n for (i2 = 0; i2 < 8; ++i2) {\n var col = i2;\n if (p[1 * 8 + col] == 0 && p[2 * 8 + col] == 0 && p[3 * 8 + col] == 0 && p[4 * 8 + col] == 0 && p[5 * 8 + col] == 0 && p[6 * 8 + col] == 0 && p[7 * 8 + col] == 0) {\n t = dctSqrt2 * dataIn[i2 + 0] + 8192 >> 14;\n p[0 * 8 + col] = t;\n p[1 * 8 + col] = t;\n p[2 * 8 + col] = t;\n p[3 * 8 + col] = t;\n p[4 * 8 + col] = t;\n p[5 * 8 + col] = t;\n p[6 * 8 + col] = t;\n p[7 * 8 + col] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 * 8 + col] + 2048 >> 12;\n v1 = dctSqrt2 * p[4 * 8 + col] + 2048 >> 12;\n v2 = p[2 * 8 + col];\n v3 = p[6 * 8 + col];\n v4 = dctSqrt1d2 * (p[1 * 8 + col] - p[7 * 8 + col]) + 2048 >> 12;\n v7 = dctSqrt1d2 * (p[1 * 8 + col] + p[7 * 8 + col]) + 2048 >> 12;\n v5 = p[3 * 8 + col];\n v6 = p[5 * 8 + col];\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 * 8 + col] = v0 + v7;\n p[7 * 8 + col] = v0 - v7;\n p[1 * 8 + col] = v1 + v6;\n p[6 * 8 + col] = v1 - v6;\n p[2 * 8 + col] = v2 + v5;\n p[5 * 8 + col] = v2 - v5;\n p[3 * 8 + col] = v3 + v4;\n p[4 * 8 + col] = v3 - v4;\n }\n for (i2 = 0; i2 < 64; ++i2) {\n var sample2 = 128 + (p[i2] + 8 >> 4);\n dataOut[i2] = sample2 < 0 ? 0 : sample2 > 255 ? 255 : sample2;\n }\n }\n requestMemoryAllocation(samplesPerLine * blocksPerColumn * 8);\n var i, j;\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n var scanLine = blockRow << 3;\n for (i = 0; i < 8; i++)\n lines.push(new Uint8Array(samplesPerLine));\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n quantizeAndInverse(component.blocks[blockRow][blockCol], r, R);\n var offset = 0, sample = blockCol << 3;\n for (j = 0; j < 8; j++) {\n var line = lines[scanLine + j];\n for (i = 0; i < 8; i++)\n line[sample + i] = r[offset++];\n }\n }\n }\n return lines;\n }\n function clampTo8bit(a) {\n return a < 0 ? 0 : a > 255 ? 255 : a;\n }\n constructor.prototype = {\n load: function load(path) {\n var xhr = new XMLHttpRequest();\n xhr.open("GET", path, true);\n xhr.responseType = "arraybuffer";\n xhr.onload = function() {\n var data = new Uint8Array(xhr.response || xhr.mozResponseArrayBuffer);\n this.parse(data);\n if (this.onload)\n this.onload();\n }.bind(this);\n xhr.send(null);\n },\n parse: function parse(data) {\n var maxResolutionInPixels = this.opts.maxResolutionInMP * 1e3 * 1e3;\n var offset = 0, length = data.length;\n function readUint16() {\n var value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n var length2 = readUint16();\n var array = data.subarray(offset, offset + length2 - 2);\n offset += array.length;\n return array;\n }\n function prepareComponents(frame2) {\n var maxH2 = 1, maxV2 = 1;\n var component2, componentId2;\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n if (maxH2 < component2.h)\n maxH2 = component2.h;\n if (maxV2 < component2.v)\n maxV2 = component2.v;\n }\n }\n var mcusPerLine = Math.ceil(frame2.samplesPerLine / 8 / maxH2);\n var mcusPerColumn = Math.ceil(frame2.scanLines / 8 / maxV2);\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n var blocksPerLine = Math.ceil(Math.ceil(frame2.samplesPerLine / 8) * component2.h / maxH2);\n var blocksPerColumn = Math.ceil(Math.ceil(frame2.scanLines / 8) * component2.v / maxV2);\n var blocksPerLineForMcu = mcusPerLine * component2.h;\n var blocksPerColumnForMcu = mcusPerColumn * component2.v;\n var blocksToAllocate = blocksPerColumnForMcu * blocksPerLineForMcu;\n var blocks = [];\n requestMemoryAllocation(blocksToAllocate * 256);\n for (var i2 = 0; i2 < blocksPerColumnForMcu; i2++) {\n var row = [];\n for (var j2 = 0; j2 < blocksPerLineForMcu; j2++)\n row.push(new Int32Array(64));\n blocks.push(row);\n }\n component2.blocksPerLine = blocksPerLine;\n component2.blocksPerColumn = blocksPerColumn;\n component2.blocks = blocks;\n }\n }\n frame2.maxH = maxH2;\n frame2.maxV = maxV2;\n frame2.mcusPerLine = mcusPerLine;\n frame2.mcusPerColumn = mcusPerColumn;\n }\n var jfif = null;\n var adobe = null;\n var pixels = null;\n var frame, resetInterval;\n var quantizationTables = [], frames = [];\n var huffmanTablesAC = [], huffmanTablesDC = [];\n var fileMarker = readUint16();\n var malformedDataOffset = -1;\n this.comments = [];\n if (fileMarker != 65496) {\n throw new Error("SOI not found");\n }\n fileMarker = readUint16();\n while (fileMarker != 65497) {\n var i, j, l;\n switch (fileMarker) {\n case 65280:\n break;\n case 65504:\n case 65505:\n case 65506:\n case 65507:\n case 65508:\n case 65509:\n case 65510:\n case 65511:\n case 65512:\n case 65513:\n case 65514:\n case 65515:\n case 65516:\n case 65517:\n case 65518:\n case 65519:\n case 65534:\n var appData = readDataBlock();\n if (fileMarker === 65534) {\n var comment = String.fromCharCode.apply(null, appData);\n this.comments.push(comment);\n }\n if (fileMarker === 65504) {\n if (appData[0] === 74 && appData[1] === 70 && appData[2] === 73 && appData[3] === 70 && appData[4] === 0) {\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: appData[8] << 8 | appData[9],\n yDensity: appData[10] << 8 | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n };\n }\n }\n if (fileMarker === 65505) {\n if (appData[0] === 69 && appData[1] === 120 && appData[2] === 105 && appData[3] === 102 && appData[4] === 0) {\n this.exifBuffer = appData.subarray(5, appData.length);\n }\n }\n if (fileMarker === 65518) {\n if (appData[0] === 65 && appData[1] === 100 && appData[2] === 111 && appData[3] === 98 && appData[4] === 101 && appData[5] === 0) {\n adobe = {\n version: appData[6],\n flags0: appData[7] << 8 | appData[8],\n flags1: appData[9] << 8 | appData[10],\n transformCode: appData[11]\n };\n }\n }\n break;\n case 65499:\n var quantizationTablesLength = readUint16();\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n requestMemoryAllocation(64 * 4);\n var tableData = new Int32Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = readUint16();\n }\n } else\n throw new Error("DQT: invalid table spec");\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n case 65472:\n case 65473:\n case 65474:\n readUint16();\n frame = {};\n frame.extended = fileMarker === 65473;\n frame.progressive = fileMarker === 65474;\n frame.precision = data[offset++];\n frame.scanLines = readUint16();\n frame.samplesPerLine = readUint16();\n frame.components = {};\n frame.componentsOrder = [];\n var pixelsInFrame = frame.scanLines * frame.samplesPerLine;\n if (pixelsInFrame > maxResolutionInPixels) {\n var exceededAmount = Math.ceil((pixelsInFrame - maxResolutionInPixels) / 1e6);\n throw new Error(`maxResolutionInMP limit exceeded by ${exceededAmount}MP`);\n }\n var componentsCount = data[offset++], componentId;\n var maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n var h = data[offset + 1] >> 4;\n var v = data[offset + 1] & 15;\n var qId = data[offset + 2];\n if (h <= 0 || v <= 0) {\n throw new Error("Invalid sampling factor, expected values above 0");\n }\n frame.componentsOrder.push(componentId);\n frame.components[componentId] = {\n h,\n v,\n quantizationIdx: qId\n };\n offset += 3;\n }\n prepareComponents(frame);\n frames.push(frame);\n break;\n case 65476:\n var huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n requestMemoryAllocation(16 + codeLengthSum);\n var huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable2(codeLengths, huffmanValues);\n }\n break;\n case 65501:\n readUint16();\n resetInterval = readUint16();\n break;\n case 65500:\n readUint16();\n readUint16();\n break;\n case 65498:\n var scanLength = readUint16();\n var selectorsCount = data[offset++];\n var components = [], component;\n for (i = 0; i < selectorsCount; i++) {\n component = frame.components[data[offset++]];\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n var processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, this.opts);\n offset += processed;\n break;\n case 65535:\n if (data[offset] !== 255) {\n offset--;\n }\n break;\n default:\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n break;\n } else if (fileMarker === 224 || fileMarker == 225) {\n if (malformedDataOffset !== -1) {\n throw new Error(`first unknown JPEG marker at offset ${malformedDataOffset.toString(16)}, second unknown JPEG marker ${fileMarker.toString(16)} at offset ${(offset - 1).toString(16)}`);\n }\n malformedDataOffset = offset - 1;\n const nextOffset = readUint16();\n if (data[offset + nextOffset - 2] === 255) {\n offset += nextOffset - 2;\n break;\n }\n }\n throw new Error("unknown JPEG marker " + fileMarker.toString(16));\n }\n fileMarker = readUint16();\n }\n if (frames.length != 1)\n throw new Error("only single frame JPEGs supported");\n for (var i = 0; i < frames.length; i++) {\n var cp = frames[i].components;\n for (var j in cp) {\n cp[j].quantizationTable = quantizationTables[cp[j].quantizationIdx];\n delete cp[j].quantizationIdx;\n }\n }\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (var i = 0; i < frame.componentsOrder.length; i++) {\n var component = frame.components[frame.componentsOrder[i]];\n this.components.push({\n lines: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV\n });\n }\n },\n getData: function getData(width, height) {\n var scaleX = this.width / width, scaleY = this.height / height;\n var component1, component2, component3, component4;\n var component1Line, component2Line, component3Line, component4Line;\n var x, y;\n var offset = 0;\n var Y, Cb, Cr, K, C, M, Ye, R, G, B;\n var colorTransform;\n var dataLength = width * height * this.components.length;\n requestMemoryAllocation(dataLength);\n var data = new Uint8Array(dataLength);\n switch (this.components.length) {\n case 1:\n component1 = this.components[0];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 2:\n component1 = this.components[0];\n component2 = this.components[1];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n Y = component2Line[0 | x * component2.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 3:\n colorTransform = true;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n R = component1Line[0 | x * component1.scaleX * scaleX];\n G = component2Line[0 | x * component2.scaleX * scaleX];\n B = component3Line[0 | x * component3.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n R = clampTo8bit(Y + 1.402 * (Cr - 128));\n G = clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n B = clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = R;\n data[offset++] = G;\n data[offset++] = B;\n }\n }\n break;\n case 4:\n if (!this.adobe)\n throw new Error("Unsupported color mode (4 components)");\n colorTransform = false;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n component4 = this.components[3];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n component4Line = component4.lines[0 | y * component4.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n C = component1Line[0 | x * component1.scaleX * scaleX];\n M = component2Line[0 | x * component2.scaleX * scaleX];\n Ye = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n C = 255 - clampTo8bit(Y + 1.402 * (Cr - 128));\n M = 255 - clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n Ye = 255 - clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = 255 - C;\n data[offset++] = 255 - M;\n data[offset++] = 255 - Ye;\n data[offset++] = 255 - K;\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n return data;\n },\n copyToImageData: function copyToImageData(imageData, formatAsRGBA) {\n var width = imageData.width, height = imageData.height;\n var imageDataArray = imageData.data;\n var data = this.getData(width, height);\n var i = 0, j = 0, x, y;\n var Y, K, C, M, R, G, B;\n switch (this.components.length) {\n case 1:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n Y = data[i++];\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 3:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n R = data[i++];\n G = data[i++];\n B = data[i++];\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 4:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n C = data[i++];\n M = data[i++];\n Y = data[i++];\n K = data[i++];\n R = 255 - clampTo8bit(C * (1 - K / 255) + K);\n G = 255 - clampTo8bit(M * (1 - K / 255) + K);\n B = 255 - clampTo8bit(Y * (1 - K / 255) + K);\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n }\n };\n var totalBytesAllocated = 0;\n var maxMemoryUsageBytes = 0;\n function requestMemoryAllocation(increaseAmount = 0) {\n var totalMemoryImpactBytes = totalBytesAllocated + increaseAmount;\n if (totalMemoryImpactBytes > maxMemoryUsageBytes) {\n var exceededAmount = Math.ceil((totalMemoryImpactBytes - maxMemoryUsageBytes) / 1024 / 1024);\n throw new Error(`maxMemoryUsageInMB limit exceeded by at least ${exceededAmount}MB`);\n }\n totalBytesAllocated = totalMemoryImpactBytes;\n }\n constructor.resetMaxMemoryUsage = function(maxMemoryUsageBytes_) {\n totalBytesAllocated = 0;\n maxMemoryUsageBytes = maxMemoryUsageBytes_;\n };\n constructor.getBytesAllocated = function() {\n return totalBytesAllocated;\n };\n constructor.requestMemoryAllocation = requestMemoryAllocation;\n return constructor;\n }();\n if (typeof module !== "undefined") {\n module.exports = decode3;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].decode = decode3;\n }\n function decode3(jpegData, userOpts = {}) {\n var defaultOpts = {\n colorTransform: void 0,\n useTArray: false,\n formatAsRGBA: true,\n tolerantDecoding: true,\n maxResolutionInMP: 100,\n maxMemoryUsageInMB: 512\n };\n var opts = { ...defaultOpts, ...userOpts };\n var arr = new Uint8Array(jpegData);\n var decoder = new JpegImage();\n decoder.opts = opts;\n JpegImage.resetMaxMemoryUsage(opts.maxMemoryUsageInMB * 1024 * 1024);\n decoder.parse(arr);\n var channels = opts.formatAsRGBA ? 4 : 3;\n var bytesNeeded = decoder.width * decoder.height * channels;\n try {\n JpegImage.requestMemoryAllocation(bytesNeeded);\n var image = {\n width: decoder.width,\n height: decoder.height,\n exifBuffer: decoder.exifBuffer,\n data: opts.useTArray ? new Uint8Array(bytesNeeded) : Buffer2.alloc(bytesNeeded)\n };\n if (decoder.comments.length > 0) {\n image["comments"] = decoder.comments;\n }\n } catch (err) {\n if (err instanceof RangeError) {\n throw new Error("Could not allocate enough memory for the image. Required: " + bytesNeeded);\n }\n if (err instanceof ReferenceError) {\n if (err.message === "Buffer is not defined") {\n throw new Error("Buffer is not globally defined in this environment. Consider setting useTArray to true");\n }\n }\n throw err;\n }\n decoder.copyToImageData(image, opts.formatAsRGBA);\n return image;\n }\n }\n});\n\n// node_modules/jpeg-js/index.js\nvar require_jpeg_js = __commonJS({\n "node_modules/jpeg-js/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var encode2 = require_encoder();\n var decode3 = require_decoder();\n module.exports = {\n encode: encode2,\n decode: decode3\n };\n }\n});\n\n// src/processor.worker.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/platform.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/requests.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar xmlhttprequest;\nif (false)\n xmlhttprequest = typeof GM_xmlhttpRequest != "undefined" ? GM_xmlhttpRequest : typeof GM != "undefined" ? GM.xmlHttpRequest : window["GM_xmlhttpRequest"];\nvar GM_fetch = (...[url, opt, lisn]) => {\n function blobTo(to, blob) {\n if (to == "arrayBuffer" && blob.arrayBuffer) {\n const ret = blob.arrayBuffer();\n if (ret)\n return ret;\n }\n return new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.onload = function(event) {\n if (!event)\n return;\n if (to == "base64")\n resolve(event.target.result);\n else\n resolve(event.target.result);\n };\n if (to == "arrayBuffer")\n fileReader.readAsArrayBuffer(blob);\n else if (to == "base64")\n fileReader.readAsDataURL(blob);\n else if (to == "text")\n fileReader.readAsText(blob, "utf-8");\n else\n reject(new Error("unknown to"));\n });\n }\n return new Promise((resolve, reject) => {\n const gmopt = {\n url: url.toString(),\n data: opt?.body,\n responseType: "blob",\n headers: opt?.headers,\n method: opt?.method || "GET",\n ...lisn ? {\n onprogress: (prog) => {\n if (prog.loaded != prog.total && prog.total != 0)\n lisn.dispatchEvent(new CustomEvent("progress", { detail: [prog.loaded, prog.total] }));\n }\n } : {},\n onload: (resp) => {\n if (resp.status / 100 >= 4) {\n reject(new Error("Server Error: " + resp.status));\n return;\n }\n const blob = resp.response;\n const ref = resp;\n ref.blob = () => Promise.resolve(blob);\n ref.arrayBuffer = () => blobTo("arrayBuffer", blob);\n ref.text = () => blobTo("text", blob);\n ref.json = async () => JSON.parse(await blobTo("text", blob));\n resolve(resp);\n },\n ontimeout: () => reject(new Error("fetch timeout")),\n onerror: (...args) => {\n reject(new Error("fetch error"));\n },\n onabort: () => reject(new Error("fetch abort"))\n };\n xmlhttprequest(gmopt);\n });\n};\n\n// src/platform.ts\nvar lqueue = {};\nvar localSet = (key2, value) => localStorage.setItem("__pee__" + key2, JSON.stringify(value));\nvar port1;\nconsole.log("worker", false);\nvar msgBuff = [];\nvar setupPort = (port) => {\n port1 = port;\n port1.onmessage = (ev) => {\n lqueue[ev.data.id](ev.data);\n };\n if (true) {\n for (const msg of msgBuff) {\n port.postMessage(msg[0], { transfer: msg[1] });\n }\n msgBuff = [];\n }\n};\nif (true) {\n port1 = {\n onmessage(ev) {\n lqueue[ev.data.id](ev.data);\n },\n postMessage(msg, tr) {\n msgBuff.push([msg, tr]);\n }\n };\n}\nvar gid = 0;\nvar sendCmd = (cmd, tr, overwrite = false, todelete = false) => {\n const prom = new Promise((_) => {\n const id = gid++;\n if (overwrite)\n cmd.id = id;\n lqueue[id] = (e) => {\n _(e.res);\n if (todelete)\n delete lqueue[id];\n };\n port1.postMessage({ id, ...cmd }, tr || []);\n });\n return prom;\n};\nvar bridge = (name, f) => {\n if (false)\n return f;\n if (false)\n return f;\n return (...args) => {\n return sendCmd({ name, args });\n };\n};\nvar Bridged = (ctor) => {\n const keys = Object.getOwnPropertyNames(ctor).filter((k) => typeof ctor[k] == "function");\n for (const k of keys)\n ctor[k] = bridge(k, ctor[k]);\n};\nif (false) {\n popupport = chrome.runtime.connect({ name: "popup" });\n popupport.onMessage.addListener((msg) => {\n if (msg.id in pendingcmds) {\n pendingcmds[msg.id](msg);\n delete pendingcmds[msg.id];\n }\n });\n}\nvar Platform = class {\n static async openInTab(src, opts) {\n if (false) {\n return GM.openInTab(src, opts);\n }\n const obj = false ? chrome : browser;\n let i;\n if (opts.insert)\n i = (await obj.tabs.getCurrent()).index + 1;\n return obj.tabs.create({ active: opts.active, url: src, index: i });\n }\n static async getValue(key2, def) {\n const isinls = "__pee__" + key2 in localStorage;\n let ret;\n if (isinls) {\n let it = localStorage.getItem("__pee__" + key2);\n if (it === "undefined")\n it = null;\n ret = { ...def, ...JSON.parse(it || "{}") };\n } else\n ret = def;\n if (true) {\n if (isinls) {\n delete localStorage["__pee__" + key2];\n await chrome.storage.local.set({\n [key2]: JSON.stringify(ret)\n });\n } else {\n const d = await chrome.storage.local.get([key2]);\n if (typeof d[key2] == "string")\n return { ...def, ...await JSON.parse("" + d[key2] || "{}") };\n }\n }\n return ret;\n }\n static setValue(name, val) {\n localSet(name, val);\n }\n};\nPlatform.cmdid = 0;\nPlatform = __decorateClass([\n Bridged\n], Platform);\nvar corsFetch = async (input, init3, lsn) => {\n const id = gid++;\n let transfer = [];\n if (init3?.body) {\n if (false) {\n [init3.body, transfer] = await braveserialize(init3.body);\n }\n }\n const prom = new Promise((_, rej) => {\n let gcontroller;\n let buffer = [];\n let finished = false;\n const rs = new ReadableStream({\n start(controller) {\n gcontroller = controller;\n buffer.forEach((b) => gcontroller?.enqueue(b));\n buffer = [];\n if (finished) {\n gcontroller.close();\n }\n }\n });\n let s;\n s = 0;\n const cmdbuff = [];\n lqueue[id] = async (e) => {\n if (e.progress) {\n if (lsn)\n lsn.dispatchEvent(new CustomEvent("progress", { detail: e.progress }));\n }\n if (e.pushData) {\n if (e.s > s) {\n let idx = 0;\n while (idx < cmdbuff.length) {\n if (cmdbuff[idx].s > e.s)\n break;\n idx++;\n }\n cmdbuff.splice(idx, 0, e);\n return;\n }\n const processCmd = (e2) => {\n if (e2.pushData.data) {\n const data = new Uint8Array(e2.pushData.data);\n if (gcontroller)\n gcontroller.enqueue(data);\n else\n buffer.push(data);\n } else {\n if (gcontroller)\n gcontroller?.close();\n else\n finished = true;\n }\n };\n await processCmd(e);\n s++;\n while (cmdbuff[0]?.s == s) {\n await processCmd(cmdbuff.shift());\n s++;\n }\n }\n if (e.setRes) {\n const arrayBuffer = async () => {\n const r = rs.getReader();\n await sendCmd({ name: "fullyRead", fid: id });\n const abs = [];\n let res;\n do {\n res = await r.read();\n if (res.done)\n break;\n abs.push(res.value);\n } while (!res.done);\n const sum = abs.reduce((a, b) => a + b.byteLength, 0);\n const ret = new Uint8Array(sum);\n abs.reduce((ptr, arr) => {\n ret.set(arr, ptr);\n return ptr + arr.byteLength;\n }, 0);\n r.releaseLock();\n return ret;\n };\n const blob = async () => new Blob([await arrayBuffer()]);\n const text = async () => new TextDecoder().decode(await arrayBuffer());\n const json = async () => JSON.parse(await text());\n if (e.ok)\n _({\n body: rs,\n ok: e.ok,\n headers: e.headers,\n redirected: e.redirected,\n type: e.type,\n url: e.url,\n status: e.status,\n bodyUsed: e.bodyUsed,\n statusText: e.statusText,\n clone() {\n return this;\n },\n arrayBuffer,\n blob,\n text,\n json,\n async formData() {\n return new FormData();\n }\n });\n else {\n rej(new Error(`${e.url} - ${e.status}`));\n }\n }\n };\n port1.postMessage({\n id,\n name: "corsFetch",\n args: [input, init3]\n }, transfer);\n });\n return prom;\n};\nasync function getHeaders(s) {\n if (false)\n return headerStringToObject(await GM_head(s));\n const res = await ifetch(s, {\n method: "HEAD"\n });\n return res.headers;\n}\nasync function ifetch(...[url, opt, lisn]) {\n if (true)\n return corsFetch(url.toString(), opt, lisn);\n return GM_fetch(url, opt, lisn);\n}\nasync function* streamRemote(url, chunkSize = 72 * 1024, fetchRestOnNonCanceled = true) {\n let size = Number.POSITIVE_INFINITY;\n let ptr = 0;\n let fetchSize = chunkSize;\n while (ptr != size) {\n let obj;\n const fres = await ifetch(url, { headers: { range: `bytes=${ptr}-${ptr + fetchSize - 1}` } });\n if (false) {\n obj = headerStringToObject(fres.responseHeaders);\n } else {\n obj = fres.headers;\n }\n if (!("content-length" in obj)) {\n console.warn("no content lenght???", url);\n break;\n }\n if ("content-range" in obj) {\n size = +obj["content-range"].split("/")[1];\n }\n const len = +obj["content-length"];\n ptr += len;\n if (fetchRestOnNonCanceled)\n fetchSize = size;\n const val = Buffer2.from(await fres.arrayBuffer());\n const e = yield val;\n if (e) {\n break;\n }\n }\n}\n\n// src/stores.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/store/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/internal/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction noop() {\n}\nfunction run(fn) {\n return fn();\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === "function";\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || (a && typeof a === "object" || typeof a === "function");\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nvar resolved_promise = Promise.resolve();\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nvar SvelteElement;\nif (typeof HTMLElement === "function") {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: "open" });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n for (const key2 in this.$$.slotted) {\n this.appendChild(this.$$.slotted[key2]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []);\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n\n// node_modules/svelte/store/index.mjs\nvar subscriber_queue = [];\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = /* @__PURE__ */ new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) {\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe2(run2, invalidate = noop) {\n const subscriber = [run2, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run2(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe: subscribe2 };\n}\n\n// src/stores.ts\nvar localLoad = async (key2, def) => {\n const ret = await Platform.getValue(key2, def);\n return ret;\n};\nvar localSet2 = (key2, value) => {\n if (true) {\n return;\n }\n if (true)\n chrome.storage.local.set({ [key2]: JSON.stringify(value) });\n else\n localStorage.setItem("__pee__" + key2, JSON.stringify(value));\n};\nvar initial_settings = {\n loop: true,\n dh: false,\n pmeth: 5,\n xpv: false,\n xpi: false,\n hyd: false,\n notcata: false,\n ak: "",\n auto_embed: 0,\n auto_tags: "",\n te: false,\n eye: false,\n ca: false,\n pre: false,\n prev: false,\n sh: false,\n ep: false,\n tm: false,\n dvc: false,\n expte: false,\n mdist: -1,\n phash: false,\n hotlink: false,\n jpeg: false,\n vercheck: false,\n cache: void 0,\n fhost: 0,\n maxe: 5,\n conc: 8,\n ho: false,\n blacklist: [],\n rsources: []\n};\nvar settings = writable();\nvar appState = writable({\n isCatalog: false,\n is4chanX: false,\n akValid: false,\n herror: "",\n client: null,\n processing: 0,\n processed: 0,\n foundPosts: []\n});\nsettings.subscribe((newVal) => {\n if (newVal)\n localSet2("settingsv2", newVal);\n});\n\n// src/pngv3.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer3 = __toESM(require_buffer(), 1);\n\n// src/png.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_crc_32 = __toESM(require_crc32(), 1);\nvar import_buffer = __toESM(require_buffer(), 1);\nvar PNGDecoder = class {\n constructor(reader, strict = true) {\n this.reader = reader;\n this.strict = strict;\n this.req = 8;\n this.ptr = 8;\n this.stopped = false;\n this.repr = import_buffer.Buffer.from([]);\n }\n async catchup() {\n while (this.repr.byteLength < this.req) {\n const chunk = await this.reader.read();\n if (chunk.done) {\n if (this.strict)\n throw new Error(`Unexpected EOF, got ${this.repr.byteLength}, required ${this.req}, ${chunk.value}`);\n this.stopped = true;\n return;\n }\n this.repr = import_buffer.Buffer.concat([this.repr, chunk.value]);\n }\n }\n async *chunks() {\n while (true) {\n this.req += 8;\n await this.catchup();\n if (this.stopped)\n break;\n const length = this.repr.readUInt32BE(this.ptr);\n const name = this.repr.slice(this.ptr + 4, this.ptr + 8).toString();\n this.ptr += 4;\n this.req += length + 4;\n await this.catchup();\n yield [\n name,\n this.repr.slice(this.ptr, this.ptr + length + 4),\n this.ptr + length > this.repr.length ? -1 : this.repr.readUInt32BE(this.ptr + length + 4),\n this.ptr\n ];\n if (this.stopped)\n break;\n this.ptr += length + 8;\n if (name == "IEND")\n break;\n }\n }\n async dtor() {\n }\n};\nvar PNGEncoder = class {\n constructor(bytes) {\n this.writer = bytes.getWriter();\n this.writer.write(import_buffer.Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]));\n }\n async insertchunk(chunk) {\n let b = import_buffer.Buffer.alloc(4);\n const buff = chunk[1];\n b.writeInt32BE(buff.length - 4, 0);\n await this.writer.write(b);\n await this.writer.write(buff);\n b = import_buffer.Buffer.alloc(4);\n b.writeInt32BE((0, import_crc_32.buf)(buff), 0);\n await this.writer.write(b);\n }\n async dtor() {\n this.writer.releaseLock();\n }\n};\n\n// src/utils.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer2 = __toESM(require_buffer(), 1);\n\n// src/assets/hasembed.png\nvar hasembed_default = __toBinary("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");\n\n// src/filehosts.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction parseForm(data) {\n const form = new FormData();\n Object.entries(data).filter(([key2, value]) => value !== null).map(([key2, value]) => form.append(key2, value));\n return form;\n}\nvar lolisafe = (domain, serving = domain) => ({\n domain,\n serving,\n async uploadFile(f) {\n const resp = await ifetch(`https://${domain}/api/upload`, {\n headers: {\n accept: "application/json"\n },\n "body": parseForm({\n reqtype: "fileupload",\n "files[]": new File([f], "f.pee")\n }),\n "method": "POST"\n });\n const res = await resp.json();\n return res.files.map((e) => e.url)[0];\n }\n});\nvar catbox = (domain, serving) => ({\n domain,\n serving,\n async uploadFile(inj) {\n const resp = await ifetch(`https://${domain}/user/api.php`, {\n method: "POST",\n body: parseForm({\n reqtype: "fileupload",\n fileToUpload: inj\n })\n });\n return resp.text();\n }\n});\nvar filehosts = [\n catbox("catbox.moe", "files.catbox.moe"),\n catbox("pomf.moe", "a.pomf.cat"),\n lolisafe("take-me-to.space"),\n lolisafe("zz.ht", "z.zz.fo")\n];\n\n// node_modules/file-type/browser.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer4 = __toESM(require_buffer(), 1);\nvar import_readable_web_to_node_stream = __toESM(require_lib(), 1);\n\n// node_modules/file-type/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer3 = __toESM(require_buffer(), 1);\n\n// node_modules/token-types/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar ieee754 = __toESM(require_ieee754(), 1);\nvar import_node_buffer = __toESM(require_buffer(), 1);\nvar AnsiStringType = class {\n constructor(len) {\n this.len = len;\n }\n static decode(buffer, offset, until) {\n let str = "";\n for (let i = offset; i < until; ++i) {\n str += AnsiStringType.codePointToString(AnsiStringType.singleByteDecoder(buffer[i]));\n }\n return str;\n }\n static inRange(a, min, max) {\n return min <= a && a <= max;\n }\n static codePointToString(cp) {\n if (cp <= 65535) {\n return String.fromCharCode(cp);\n } else {\n cp -= 65536;\n return String.fromCharCode((cp >> 10) + 55296, (cp & 1023) + 56320);\n }\n }\n static singleByteDecoder(bite) {\n if (AnsiStringType.inRange(bite, 0, 127)) {\n return bite;\n }\n const codePoint = AnsiStringType.windows1252[bite - 128];\n if (codePoint === null) {\n throw Error("invaliding encoding");\n }\n return codePoint;\n }\n get(buffer, offset = 0) {\n return AnsiStringType.decode(buffer, offset, offset + this.len);\n }\n};\nAnsiStringType.windows1252 = [\n 8364,\n 129,\n 8218,\n 402,\n 8222,\n 8230,\n 8224,\n 8225,\n 710,\n 8240,\n 352,\n 8249,\n 338,\n 141,\n 381,\n 143,\n 144,\n 8216,\n 8217,\n 8220,\n 8221,\n 8226,\n 8211,\n 8212,\n 732,\n 8482,\n 353,\n 8250,\n 339,\n 157,\n 382,\n 376,\n 160,\n 161,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 171,\n 172,\n 173,\n 174,\n 175,\n 176,\n 177,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 187,\n 188,\n 189,\n 190,\n 191,\n 192,\n 193,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 203,\n 204,\n 205,\n 206,\n 207,\n 208,\n 209,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 219,\n 220,\n 221,\n 222,\n 223,\n 224,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 235,\n 236,\n 237,\n 238,\n 239,\n 240,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250,\n 251,\n 252,\n 253,\n 254,\n 255\n];\n\n// node_modules/strtok3/lib/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/ReadStreamTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/EndOfFileStream.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/Deferred.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\nvar maxStreamReadSize = 1 * 1024 * 1024;\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\nvar import_node_buffer2 = __toESM(require_buffer(), 1);\n\n// node_modules/strtok3/lib/BufferTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/util.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/supported.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar extensions = [\n "jpg",\n "png",\n "apng",\n "gif",\n "webp",\n "flif",\n "xcf",\n "cr2",\n "cr3",\n "orf",\n "arw",\n "dng",\n "nef",\n "rw2",\n "raf",\n "tif",\n "bmp",\n "icns",\n "jxr",\n "psd",\n "indd",\n "zip",\n "tar",\n "rar",\n "gz",\n "bz2",\n "7z",\n "dmg",\n "mp4",\n "mid",\n "mkv",\n "webm",\n "mov",\n "avi",\n "mpg",\n "mp2",\n "mp3",\n "m4a",\n "oga",\n "ogg",\n "ogv",\n "opus",\n "flac",\n "wav",\n "spx",\n "amr",\n "pdf",\n "epub",\n "elf",\n "exe",\n "swf",\n "rtf",\n "wasm",\n "woff",\n "woff2",\n "eot",\n "ttf",\n "otf",\n "ico",\n "flv",\n "ps",\n "xz",\n "sqlite",\n "nes",\n "crx",\n "xpi",\n "cab",\n "deb",\n "ar",\n "rpm",\n "Z",\n "lz",\n "cfb",\n "mxf",\n "mts",\n "blend",\n "bpg",\n "docx",\n "pptx",\n "xlsx",\n "3gp",\n "3g2",\n "jp2",\n "jpm",\n "jpx",\n "mj2",\n "aif",\n "qcp",\n "odt",\n "ods",\n "odp",\n "xml",\n "mobi",\n "heic",\n "cur",\n "ktx",\n "ape",\n "wv",\n "dcm",\n "ics",\n "glb",\n "pcap",\n "dsf",\n "lnk",\n "alias",\n "voc",\n "ac3",\n "m4v",\n "m4p",\n "m4b",\n "f4v",\n "f4p",\n "f4b",\n "f4a",\n "mie",\n "asf",\n "ogm",\n "ogx",\n "mpc",\n "arrow",\n "shp",\n "aac",\n "mp1",\n "it",\n "s3m",\n "xm",\n "ai",\n "skp",\n "avif",\n "eps",\n "lzh",\n "pgp",\n "asar",\n "stl",\n "chm",\n "3mf",\n "zst",\n "jxl",\n "vcf"\n];\nvar mimeTypes = [\n "image/jpeg",\n "image/png",\n "image/gif",\n "image/webp",\n "image/flif",\n "image/x-xcf",\n "image/x-canon-cr2",\n "image/x-canon-cr3",\n "image/tiff",\n "image/bmp",\n "image/vnd.ms-photo",\n "image/vnd.adobe.photoshop",\n "application/x-indesign",\n "application/epub+zip",\n "application/x-xpinstall",\n "application/vnd.oasis.opendocument.text",\n "application/vnd.oasis.opendocument.spreadsheet",\n "application/vnd.oasis.opendocument.presentation",\n "application/vnd.openxmlformats-officedocument.wordprocessingml.document",\n "application/vnd.openxmlformats-officedocument.presentationml.presentation",\n "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",\n "application/zip",\n "application/x-tar",\n "application/x-rar-compressed",\n "application/gzip",\n "application/x-bzip2",\n "application/x-7z-compressed",\n "application/x-apple-diskimage",\n "application/x-apache-arrow",\n "video/mp4",\n "audio/midi",\n "video/x-matroska",\n "video/webm",\n "video/quicktime",\n "video/vnd.avi",\n "audio/vnd.wave",\n "audio/qcelp",\n "audio/x-ms-asf",\n "video/x-ms-asf",\n "application/vnd.ms-asf",\n "video/mpeg",\n "video/3gpp",\n "audio/mpeg",\n "audio/mp4",\n "audio/opus",\n "video/ogg",\n "audio/ogg",\n "application/ogg",\n "audio/x-flac",\n "audio/ape",\n "audio/wavpack",\n "audio/amr",\n "application/pdf",\n "application/x-elf",\n "application/x-msdownload",\n "application/x-shockwave-flash",\n "application/rtf",\n "application/wasm",\n "font/woff",\n "font/woff2",\n "application/vnd.ms-fontobject",\n "font/ttf",\n "font/otf",\n "image/x-icon",\n "video/x-flv",\n "application/postscript",\n "application/eps",\n "application/x-xz",\n "application/x-sqlite3",\n "application/x-nintendo-nes-rom",\n "application/x-google-chrome-extension",\n "application/vnd.ms-cab-compressed",\n "application/x-deb",\n "application/x-unix-archive",\n "application/x-rpm",\n "application/x-compress",\n "application/x-lzip",\n "application/x-cfb",\n "application/x-mie",\n "application/mxf",\n "video/mp2t",\n "application/x-blender",\n "image/bpg",\n "image/jp2",\n "image/jpx",\n "image/jpm",\n "image/mj2",\n "audio/aiff",\n "application/xml",\n "application/x-mobipocket-ebook",\n "image/heif",\n "image/heif-sequence",\n "image/heic",\n "image/heic-sequence",\n "image/icns",\n "image/ktx",\n "application/dicom",\n "audio/x-musepack",\n "text/calendar",\n "text/vcard",\n "model/gltf-binary",\n "application/vnd.tcpdump.pcap",\n "audio/x-dsf",\n "application/x.ms.shortcut",\n "application/x.apple.alias",\n "audio/x-voc",\n "audio/vnd.dolby.dd-raw",\n "audio/x-m4a",\n "image/apng",\n "image/x-olympus-orf",\n "image/x-sony-arw",\n "image/x-adobe-dng",\n "image/x-nikon-nef",\n "image/x-panasonic-rw2",\n "image/x-fujifilm-raf",\n "video/x-m4v",\n "video/3gpp2",\n "application/x-esri-shape",\n "audio/aac",\n "audio/x-it",\n "audio/x-s3m",\n "audio/x-xm",\n "video/MP1S",\n "video/MP2P",\n "application/vnd.sketchup.skp",\n "image/avif",\n "application/x-lzh-compressed",\n "application/pgp-encrypted",\n "application/x-asar",\n "model/stl",\n "application/vnd.ms-htmlhelp",\n "model/3mf",\n "image/jxl",\n "application/zstd"\n];\n\n// node_modules/file-type/core.js\nvar supportedExtensions = new Set(extensions);\nvar supportedMimeTypes = new Set(mimeTypes);\n\n// src/utils.ts\nvar csettings;\nsettings.subscribe((b) => {\n csettings = b;\n});\nvar threadDataCache = writable();\nvar cthreadDataCache;\nthreadDataCache.subscribe((newval) => {\n cthreadDataCache = newval;\n});\nvar decodeCoom3Payload = async (buff) => {\n if (!csettings)\n throw new Error("Settings uninit");\n const allowed_domains = filehosts.map((e) => e.serving.replaceAll(".", "\\\\."));\n const pees = buff.toString().split(" ").slice(0, csettings.maxe).filter((e) => allowed_domains.some((v) => e.match(`https://(.*\\\\.)?${v}/`)));\n return (await Promise.all(pees.map(async (pee) => {\n try {\n const m = pee.match(/(?https?):\\/\\/(?.*?)(?\\/.*)/);\n if (!m)\n return;\n const { domain, file } = m.groups;\n const headers = await getHeaders(pee);\n const res = await ifetch(pee, {\n headers: { range: "bytes=0-32767", "user-agent": "" },\n mode: "cors",\n referrerPolicy: "no-referrer"\n });\n const size = +headers["content-length"] || 0;\n const header = import_buffer2.Buffer.from(await res.arrayBuffer());\n let hptr = 0;\n if (header.slice(0, 4).toString() == "PEE\\0")\n hptr += 4;\n else\n return;\n const flags = header[hptr];\n const hasFn = !!(flags & 1);\n const hasTags = !!(flags & 2);\n const hasThumbnail = !!(flags & 4);\n let [ptr, ptr2] = [hptr + 1, hptr + 1];\n let fn = "embedded";\n let tags = [];\n let thumb = import_buffer2.Buffer.from(hasembed_default);\n if (hasFn) {\n while (header[ptr2] != 0)\n ptr2++;\n fn = header.slice(ptr, ptr2).toString();\n ptr = ++ptr2;\n }\n if (hasTags) {\n while (header[ptr2] != 0)\n ptr2++;\n tags = header.slice(ptr, ptr2).toString().split(/\\s+/);\n }\n let thumbsize = 0;\n if (hasThumbnail) {\n thumbsize = header.readInt32LE(ptr);\n ptr += 4;\n if (header.byteLength >= ptr + thumbsize)\n thumb = header.slice(ptr, ptr + thumbsize);\n else\n thumb = import_buffer2.Buffer.from(await (await ifetch(pee, { headers: { "user-agent": "", range: `bytes=${ptr}-${ptr + thumbsize}` } })).arrayBuffer());\n ptr += thumbsize;\n }\n const unzip = { url: pee, headers: { "user-agent": "", range: `bytes=${ptr}-${size - 1}` } };\n let data;\n data = unzip;\n if (size < 3072) {\n thumb = data = import_buffer2.Buffer.from(await (await ifetch(unzip.url, { headers: unzip.headers })).arrayBuffer());\n }\n return {\n filename: fn,\n data,\n thumbnail: thumb\n };\n } catch (e) {\n console.warn(e);\n }\n }))).filter((e) => e).map((e) => e);\n};\n\n// src/pngv3.ts\nvar bs58 = __toESM(require_bs58(), 1);\n\n// src/bitstream.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar revbyte = (n, len = 8) => {\n let acc = 0;\n let n2 = n;\n let len2 = len;\n while (len2) {\n acc = acc * 2 + (n2 & 1);\n n2 >>= 1;\n len2--;\n }\n return acc;\n};\nvar BitstreamReader = class {\n constructor() {\n this.buffers = [];\n this.bufferedLength = 0;\n this._offsetIntoBuffer = 0;\n this._bufferIndex = 0;\n this._offset = 0;\n this.skippedLength = 0;\n }\n get bufferIndex() {\n return this._bufferIndex;\n }\n get offset() {\n return this._offset;\n }\n get available() {\n return this.bufferedLength - this.skippedLength;\n }\n getBit(offset) {\n const byte = this.buffers[0][offset >> 3];\n return +!!(byte & 1 << (offset & 7));\n }\n readSync(length) {\n let value = 0;\n if (this._offset >> 3 > this.buffers[0].byteLength) {\n throw "Out of data";\n }\n for (let i = length - 1; i >= 0; --i) {\n value = value * 2 + this.getBit(this._offset + i);\n }\n this._offset += length;\n this.bufferedLength -= length;\n return value;\n }\n addBuffer(buffer) {\n this.buffers.push(buffer);\n this.bufferedLength += buffer.length * 8;\n }\n};\nvar BitstreamWriter = class {\n constructor(stream, bufferSize = 1) {\n this.stream = stream;\n this.pendingBits = 0;\n this.bufferoffset = 0;\n this._offset = 0;\n bufferSize = 1;\n this.buffer = new Uint8Array(bufferSize);\n }\n get offset() {\n return this._offset;\n }\n get byteOffset() {\n return this.pendingBits;\n }\n end() {\n this.flush();\n }\n flush() {\n this.stream.write(new Uint8Array(this.buffer));\n this.bufferoffset = 0;\n this.buffer.fill(0);\n }\n setBit(b) {\n let byte = this.buffer[0];\n byte |= b << (this._offset & 7);\n this.buffer[0] = byte;\n this._offset += 1;\n if (++this.bufferoffset == this.buffer.length * 8) {\n this.flush();\n }\n }\n write(length, value) {\n while (length--) {\n this.setBit(value & 1);\n value >>= 1;\n }\n }\n};\n\n// src/dh-deflate.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar TINF_OK = 0;\nvar Tree = class {\n constructor() {\n this.table = new Uint16Array(16);\n this.trans = new Uint16Array(288);\n }\n};\nvar getPathTo = (tree, value) => {\n if (tree[0] === value)\n return "0";\n if (tree[1] === value)\n return "1";\n let p;\n if (typeof tree[0] != "number")\n p = getPathTo(tree[0], value);\n let b = "0";\n if (!p) {\n if (tree[1] && typeof tree[1] != "number")\n p = getPathTo(tree[1], value);\n b = "1";\n }\n if (p)\n return b + p;\n};\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n let p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n}\nvar Data = class {\n constructor(source, dests, to_hide, hidden) {\n this.source = source;\n this.dests = dests;\n this.to_hide = to_hide;\n this.hidden = hidden;\n this.pathMap = /* @__PURE__ */ new Map();\n this.dest = [];\n this.ltree = new Tree();\n this.dtree = new Tree();\n }\n computeReverse() {\n this.rltree = buildHuffmanTable(this.ltree.table, this.ltree.trans)[0];\n this.rdtree = buildHuffmanTable(this.dtree.table, this.dtree.trans)[0];\n this.adists = new Set(this.rdtree.flat(16));\n }\n};\nvar sltree = new Tree();\nvar sdtree = new Tree();\nvar rltree;\nvar rdtree;\nvar sadist;\nvar length_bits = new Uint8Array(30);\nvar length_base = new Uint16Array(30);\nvar dist_bits = new Uint8Array(30);\nvar dist_base = new Uint16Array(30);\nvar clcidx = new Uint8Array([\n 16,\n 17,\n 18,\n 0,\n 8,\n 7,\n 9,\n 6,\n 10,\n 5,\n 11,\n 4,\n 12,\n 3,\n 13,\n 2,\n 14,\n 1,\n 15\n]);\nvar code_tree = new Tree();\nvar lengths = new Uint8Array(288 + 32);\nfunction tinf_build_bits_base(bits, base, delta, first) {\n let i, sum;\n for (i = 0; i < delta; ++i)\n bits[i] = 0;\n for (i = 0; i < 30 - delta; ++i)\n bits[i + delta] = i / delta | 0;\n for (sum = first, i = 0; i < 30; ++i) {\n base[i] = sum;\n sum += 1 << bits[i];\n }\n}\nfunction tinf_build_fixed_trees(lt, dt) {\n let i;\n for (i = 0; i < 7; ++i)\n lt.table[i] = 0;\n lt.table[7] = 24;\n lt.table[8] = 152;\n lt.table[9] = 112;\n for (i = 0; i < 24; ++i)\n lt.trans[i] = 256 + i;\n for (i = 0; i < 144; ++i)\n lt.trans[24 + i] = i;\n for (i = 0; i < 8; ++i)\n lt.trans[24 + 144 + i] = 280 + i;\n for (i = 0; i < 112; ++i)\n lt.trans[24 + 144 + 8 + i] = 144 + i;\n for (i = 0; i < 5; ++i)\n dt.table[i] = 0;\n dt.table[5] = 32;\n for (i = 0; i < 32; ++i)\n dt.trans[i] = i;\n}\nvar offs = new Uint16Array(16);\nfunction tinf_build_tree(t, lengths2, off, num) {\n let i, sum;\n for (i = 0; i < 16; ++i)\n t.table[i] = 0;\n for (i = 0; i < num; ++i)\n t.table[lengths2[off + i]]++;\n t.table[0] = 0;\n for (sum = 0, i = 0; i < 16; ++i) {\n offs[i] = sum;\n sum += t.table[i];\n }\n for (i = 0; i < num; ++i) {\n if (lengths2[off + i])\n t.trans[offs[lengths2[off + i]]++] = i;\n }\n}\nfunction tinf_getbit(d) {\n const v = d.source.readSync(1);\n return v;\n}\nvar loff = 0;\nvar loffs = [];\nfunction tinf_read_bits(d, num, base) {\n if (!num)\n return base;\n const v = d.source.readSync(num) + base;\n loff = v;\n loffs.push(v);\n if (loffs.length > 4) {\n loffs.shift();\n }\n return v;\n}\nfunction tinf_decode_symbol(d, t, copy = true, ext = {}) {\n let sum = 0, cur = 0, len = 0;\n let s = 0;\n do {\n const b = d.source.readSync(1);\n copy && d.hidden?.write(1, b);\n s = s << 1 | b;\n cur = 2 * cur + b;\n ++len;\n sum += t.table[len];\n cur -= t.table[len];\n } while (cur >= 0);\n ext.length = len;\n ext.sym = s;\n return t.trans[sum + cur];\n}\nfunction tinf_decode_trees(d, lt, dt, copy = true) {\n let i, num, length;\n const hlit = tinf_read_bits(d, 5, 257);\n copy && d.hidden?.write(5, hlit - 257);\n const hdist = tinf_read_bits(d, 5, 1);\n copy && d.hidden?.write(5, hdist - 1);\n const hclen = tinf_read_bits(d, 4, 4);\n copy && d.hidden?.write(4, hclen - 4);\n for (i = 0; i < 19; ++i)\n lengths[i] = 0;\n for (i = 0; i < hclen; ++i) {\n const clen = tinf_read_bits(d, 3, 0);\n copy && d.hidden?.write(3, clen);\n lengths[clcidx[i]] = clen;\n }\n tinf_build_tree(code_tree, lengths, 0, 19);\n for (num = 0; num < hlit + hdist; ) {\n const sym = tinf_decode_symbol(d, code_tree, copy);\n let prev;\n switch (sym) {\n case 16:\n prev = lengths[num - 1];\n length = tinf_read_bits(d, 2, 3);\n copy && d.hidden?.write(2, length - 3);\n for (; length; --length) {\n lengths[num++] = prev;\n }\n break;\n case 17:\n length = tinf_read_bits(d, 3, 3);\n copy && d.hidden?.write(3, length - 3);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n case 18:\n length = tinf_read_bits(d, 7, 11);\n copy && d.hidden?.write(7, length - 11);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n default:\n lengths[num++] = sym;\n break;\n }\n }\n tinf_build_tree(lt, lengths, 0, hlit);\n tinf_build_tree(dt, lengths, hlit, hdist);\n}\nvar get_symbol = (value, bits_table, base_table) => {\n let i = 0;\n for (i = 0; i < base_table.length; ++i) {\n if (base_table[i] > value) {\n i--;\n return [i, bits_table[i], value - base_table[i]];\n }\n }\n i--;\n return [i, bits_table[i], value - base_table[i]];\n};\nvar encode_symbol = (sym, tree, pathMap) => {\n const code = getPathTo(tree, sym);\n const v = {\n length: code?.length,\n val: parseInt(code, 2)\n };\n return v;\n};\nvar capacity = 0;\nfunction tinf_inflate_block_data(d, lt, dt) {\n while (1) {\n let sym = tinf_decode_symbol(d, lt);\n if (sym === 256) {\n return TINF_OK;\n }\n if (sym < 256) {\n d.dest.push(sym);\n } else {\n sym -= 257;\n const length = tinf_read_bits(d, length_bits[sym], length_base[sym]);\n if (length_bits[sym])\n d.hidden?.write(length_bits[sym], length - length_base[sym]);\n const ext = { length: 0, sym: 0 };\n const dist = tinf_decode_symbol(d, dt, false, ext);\n let backoffset = tinf_read_bits(d, dist_bits[dist], dist_base[dist]);\n const offs2 = d.dest.length - backoffset;\n let match;\n const skip = !d.to_hide || d.to_hide && d.to_hide instanceof BitstreamReader && d.to_hide.available == 0;\n if (!skip && (match = Buffer2.from(d.dest.slice(offs2, offs2 + length))).length == length) {\n let begin = d.dest.length - 32768;\n if (begin < 0)\n begin = 0;\n let matches = [];\n let o = 0;\n const slic = Buffer2.from(d.dest.slice(begin + o, d.dest.length));\n while (begin + o < d.dest.length) {\n const r = slic.slice(o, d.dest.length).indexOf(match);\n if (r >= 0) {\n matches.push(r + begin + o);\n o += r;\n } else {\n break;\n }\n o++;\n }\n if (matches.length > 1) {\n matches = matches.map((e) => -(e - d.dest.length)).filter((e) => {\n const [dsym2] = get_symbol(e, dist_bits, dist_base);\n return d.adists.has(dsym2);\n });\n matches.reverse();\n const v = Math.floor(Math.log2(matches.length));\n capacity += v;\n if (d.to_hide instanceof BitstreamReader) {\n if (d.to_hide.available) {\n const s = d.to_hide.readSync(Math.min(d.to_hide.available, v));\n backoffset = matches[s];\n }\n } else {\n const idx = matches.indexOf(backoffset);\n d.to_hide.write(v, idx);\n }\n }\n }\n const [dsym, dlen, doff] = get_symbol(backoffset, dist_bits, dist_base);\n const encdist = encode_symbol(dsym, d.rdtree, d.pathMap);\n d.hidden?.write(encdist.length, revbyte(encdist.val, encdist.length));\n d.hidden?.write(dlen, doff);\n for (let i = offs2; i < offs2 + length; ++i) {\n d.dest.push(d.dest[i]);\n }\n }\n }\n}\nfunction tinf_inflate_uncompressed_block(d) {\n if (d.source.offset & 7)\n d.source.readSync(8 - d.source.offset & 7);\n if (d.hidden && d.hidden.offset & 7)\n d.hidden?.write(8 - d.hidden.offset & 7, 0);\n const length = d.source.readSync(16);\n d.hidden?.write(16, length);\n const invlength = d.source.readSync(16);\n d.hidden?.write(16, invlength);\n if (length !== (~invlength & 65535)) {\n return -4;\n }\n for (let i = length; i; --i) {\n const v = d.source.readSync(8);\n d.dest.push(v);\n d.hidden?.write(8, v);\n }\n return TINF_OK;\n}\nfunction tinf_uncompress(source, decompressed, to_hide, hidden, opt = 0) {\n const decomp = decompressed ? new BitstreamWriter({ write: decompressed }) : null;\n const hid = hidden && new BitstreamWriter({ write: hidden }, 4);\n const d = new Data(source, decomp, to_hide, hid);\n let res;\n let bfinal, btype;\n do {\n bfinal = tinf_getbit(d);\n d.hidden?.write(1, bfinal);\n btype = tinf_read_bits(d, 2, 0);\n d.hidden?.write(2, btype);\n switch (btype) {\n case 0:\n res = tinf_inflate_uncompressed_block(d);\n break;\n case 1:\n d.rdtree = rdtree;\n d.rltree = rltree;\n d.adists = sadist;\n res = tinf_inflate_block_data(d, sltree, sdtree);\n break;\n case 2:\n tinf_decode_trees(d, d.ltree, d.dtree);\n d.computeReverse();\n res = tinf_inflate_block_data(d, d.ltree, d.dtree);\n break;\n default:\n res = -2;\n }\n if (res !== TINF_OK)\n throw new Error("Data error " + res);\n } while (!bfinal);\n decomp?.end();\n hid?.end();\n}\ntinf_build_fixed_trees(sltree, sdtree);\ntinf_build_bits_base(length_bits, length_base, 4, 3);\ntinf_build_bits_base(dist_bits, dist_base, 2, 1);\nrltree = buildHuffmanTable(sltree.table, sltree.trans)[0];\nrdtree = buildHuffmanTable(sdtree.table, sdtree.trans)[0];\nsadist = new Set(rdtree.flat(16));\nlength_bits[28] = 0;\nlength_base[28] = 258;\n\n// src/pngv3.ts\nvar csettings2;\nsettings.subscribe((b) => {\n csettings2 = b;\n});\nvar CUM3 = import_buffer3.Buffer.from("doo\\0m");\nvar CUM4 = import_buffer3.Buffer.from("voo\\0m");\nvar CUM5 = import_buffer3.Buffer.from("boo\\0");\nvar CUM6 = import_buffer3.Buffer.from("Creation Time\\0");\nvar CUM7 = import_buffer3.Buffer.from("Software\\0");\nvar BufferReadStream = (b) => {\n const ret = new ReadableStream({\n pull(cont) {\n cont.enqueue(b);\n cont.close();\n }\n });\n return ret;\n};\nvar password = import_buffer3.Buffer.from("NOA");\nvar xor = (a, p) => {\n let n = 0;\n for (let i = 0; i < a.byteLength; ++i) {\n a[i] ^= p[n];\n n++;\n n %= p.byteLength;\n }\n};\nvar prefs = {\n "files.catbox.moe": "c",\n "a.pomf.cat": "p",\n "take-me-to.space": "t",\n "z.zz.fo": "z"\n};\nvar rprefs = {\n "c": "files.catbox.moe",\n "p": "a.pomf.cat",\n "t": "take-me-to.space",\n "z": "z.zz.fo"\n};\nvar extractFromRawDeflate = (b) => {\n const src = new BitstreamReader();\n src.addBuffer(b);\n const chnks = [];\n const hidden = new BitstreamWriter({\n write(chunk) {\n for (const i of chunk) {\n if (i >= 32 && i <= 128)\n chnks.push(i);\n else\n throw "Finish";\n }\n }\n });\n try {\n tinf_uncompress(src, void 0, hidden, void 0);\n } catch (e) {\n if (e == "Finish")\n return import_buffer3.Buffer.from(chnks);\n }\n return false;\n};\nvar extract = async (png, doextract = true) => {\n const reader = BufferReadStream(png).getReader();\n const sneed = new PNGDecoder(reader, false);\n const ret = [];\n let w;\n if (!csettings2)\n throw new Error("Settings uninit");\n try {\n let complete = false;\n const idats = [];\n for await (const [name, chunk, crc, offset] of sneed.chunks()) {\n let buff;\n switch (name) {\n case "tEXt":\n buff = chunk;\n if (buff.slice(4, 4 + CUM3.length).equals(CUM3)) {\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(buff.slice(4 + CUM3.length));\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM4.length).equals(CUM4)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM4.length);\n xor(passed, password);\n const k = await decodeCoom3Payload(passed);\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM5.length).equals(CUM5)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM5.length);\n const decoded = import_buffer3.Buffer.from(passed.toString(), "base64").toString().split(" ").map((e) => {\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n }\n if (w = [CUM6, CUM7].find((e) => buff.slice(4, 4 + e.length).equals(e))) {\n const passed = buff.slice(4 + w.length);\n if (!passed.toString().match(/^[0-9a-zA-Z+/=]+$/g))\n continue;\n const decoders = [\n (b) => import_buffer3.Buffer.from(b.toString(), "base64").toString(),\n (b) => import_buffer3.Buffer.from(bs58.decode(passed.toString())).toString()\n ];\n for (const d of decoders) {\n try {\n const decoded = d(passed).split(" ").map((e) => {\n if (!(e[0] in rprefs))\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n } catch (e) {\n }\n }\n }\n break;\n case "IDAT":\n if (ret.length)\n return ret;\n buff = chunk;\n idats.push(buff.slice(4));\n break;\n case "IEND":\n complete = true;\n default:\n break;\n }\n }\n if (idats.length) {\n let decoded;\n if ((decoded = extractFromRawDeflate(import_buffer3.Buffer.concat(idats).slice(2))) === false)\n return false;\n const dec = decoded.toString().split(" ").map((e) => {\n if (!(e[0] in rprefs) || e.length < 5)\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (doextract)\n return decodeCoom3Payload(import_buffer3.Buffer.from(dec));\n return true;\n }\n } catch (e) {\n if (e != "Uhh")\n console.error(e);\n } finally {\n reader.releaseLock();\n }\n};\nvar buildChunk = (tag, data) => {\n const ret = import_buffer3.Buffer.alloc(data.byteLength + 4);\n ret.write(tag.slice(0, 4), 0);\n data.copy(ret, 4);\n return ret;\n};\nvar BufferWriteStream = () => {\n let b = import_buffer3.Buffer.from([]);\n const ret = new WritableStream({\n write(chunk) {\n b = import_buffer3.Buffer.concat([b, chunk]);\n console.log("finished appending");\n }\n });\n return [ret, () => b];\n};\nvar embedInRawDeflate = (b, h) => {\n const src = new BitstreamReader();\n const hid = new BitstreamReader();\n hid.addBuffer(h);\n src.addBuffer(b);\n const chnks = [];\n tinf_uncompress(src, void 0, hid, (c) => chnks.push(c));\n return import_buffer3.Buffer.concat(chnks);\n};\nvar inject_data = async (container, injb) => {\n injb = import_buffer3.Buffer.concat([injb, import_buffer3.Buffer.from([0])]);\n if (!csettings2)\n throw new Error("Settings uninit");\n if (csettings2.pmeth < 5) {\n let magic = false;\n const [writestream2, extract6] = BufferWriteStream();\n const encoder = new PNGEncoder(writestream2);\n const decoder = new PNGDecoder(container.stream().getReader());\n for await (const [name, chunk, crc, offset] of decoder.chunks()) {\n if (magic && name != "IDAT")\n break;\n if (!magic && name == "IDAT") {\n const passed = import_buffer3.Buffer.from(injb);\n switch (csettings2.pmeth) {\n case 0:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM3, passed])), 0, 0]);\n break;\n case 1:\n xor(passed, password);\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM4, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 2:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM5, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 3:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM6, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 4:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM7, import_buffer3.Buffer.from(bs58.encode(passed))])), 0, 0]);\n break;\n }\n magic = true;\n }\n await encoder.insertchunk([name, chunk, crc, offset]);\n }\n await encoder.insertchunk([\n "IEND",\n buildChunk("IEND", import_buffer3.Buffer.from([])),\n 0,\n 0\n ]);\n return extract6();\n }\n let pdec = new PNGDecoder(container.stream().getReader());\n const concat = [];\n for await (const chk of pdec.chunks())\n if (chk[0] == "IDAT")\n concat.push(chk[1].slice(4));\n const comp = import_buffer3.Buffer.concat(concat);\n const head = comp.slice(0, 2);\n const chksum = comp.slice(-4);\n const idatblk = embedInRawDeflate(comp.slice(2, -4), injb);\n const [writestream, extract5] = BufferWriteStream();\n const penc = new PNGEncoder(writestream);\n pdec = new PNGDecoder(container.stream().getReader());\n let ins = false;\n for await (const chk of pdec.chunks()) {\n if (chk[0] != "IDAT") {\n await penc.insertchunk(chk);\n } else {\n if (!ins) {\n await penc.insertchunk(["IDAT", import_buffer3.Buffer.concat([import_buffer3.Buffer.from("IDAT"), head, idatblk, chksum]), 0, 0]);\n ins = true;\n }\n }\n }\n await penc.dtor();\n console.log("Finished writing");\n return extract5();\n};\nvar inject = async (container, links) => {\n links = links.map((link) => {\n for (const h of filehosts) {\n if (link.includes(h.serving)) {\n const end = link.split("/").slice(-1)[0];\n return `${prefs[h.serving]}${end}`;\n }\n }\n return "";\n });\n const injb = import_buffer3.Buffer.from(links.join(" "));\n return inject_data(container, injb);\n};\nvar has_embed = async (png) => {\n const r = await extract(png, false);\n return !!r;\n};\nvar pngv3_default = {\n extract,\n has_embed,\n inject,\n match: (fn) => !!fn.match(/\\.png$/)\n};\n\n// src/jpg.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer4 = __toESM(require_buffer(), 1);\n\n// src/f5stego.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction* f5get() {\n let extrBit = 0;\n let k = 0;\n for (let i = 0; i < 4; ++i) {\n const b2 = yield;\n k |= b2 << i;\n }\n k = (k & 15) + 1;\n let toread = 8;\n let len = 0;\n while (toread--) {\n len = len * 2 + (yield);\n }\n const b = yield;\n toread += 8;\n if (b)\n toread += 7;\n else\n len *= 2;\n while (toread--) {\n len = len * 2 + (yield);\n }\n let rlen = revbyte(len, b ? 23 : 16);\n len = rlen;\n if (len >= 256)\n len = rlen = 256;\n len *= 8;\n const chunks = [];\n const bw = new BitstreamWriter({\n write(chunk) {\n chunks.push(chunk);\n }\n });\n while (len) {\n extrBit = yield;\n bw.write(1, extrBit);\n len--;\n }\n bw.end();\n return Buffer2.concat(chunks).slice(0, rlen);\n}\nvar bitcode = new Array(65535);\nvar category = new Array(65535);\nvar std_dc_luminance_nrcodes = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\nvar std_dc_luminance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_luminance_nrcodes = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\nvar std_ac_luminance_values = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nvar std_dc_chrominance_nrcodes = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\nvar std_dc_chrominance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_chrominance_nrcodes = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\nvar std_ac_chrominance_values = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nfunction _initCategoryNumber() {\n let nrlower = 1;\n let nrupper = 2;\n for (let cat = 1; cat <= 15; cat++) {\n for (let nr = nrlower; nr < nrupper; nr++) {\n category[32767 + nr] = cat;\n bitcode[32767 + nr] = [];\n bitcode[32767 + nr][1] = cat;\n bitcode[32767 + nr][0] = nr;\n }\n for (let nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category[32767 + nrneg] = cat;\n bitcode[32767 + nrneg] = [];\n bitcode[32767 + nrneg][1] = cat;\n bitcode[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n}\n_initCategoryNumber();\nfunction _computeHuffmanTbl(nrcodes, std_table) {\n let codevalue = 0;\n let pos_in_table = 0;\n const HT = [];\n for (let k = 1; k <= 16; k++) {\n for (let j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n}\nvar YDC_HT = _computeHuffmanTbl(std_dc_luminance_nrcodes, std_dc_luminance_values);\nvar UVDC_HT = _computeHuffmanTbl(std_dc_chrominance_nrcodes, std_dc_chrominance_values);\nvar YAC_HT = _computeHuffmanTbl(std_ac_luminance_nrcodes, std_ac_luminance_values);\nvar UVAC_HT = _computeHuffmanTbl(std_ac_chrominance_nrcodes, std_ac_chrominance_values);\nvar __raw, _jfif, _APPn, _qts, _frame, _tail, __f5write, _f5write_fn;\nvar f5stego = class {\n constructor(key2, maxPixels = 4096 * 4096) {\n this.maxPixels = maxPixels;\n __privateAdd(this, __f5write);\n __privateAdd(this, __raw, void 0);\n __privateAdd(this, _jfif, void 0);\n __privateAdd(this, _APPn, void 0);\n __privateAdd(this, _qts, void 0);\n __privateAdd(this, _frame, null);\n __privateAdd(this, _tail, null);\n }\n embed(image, data, k) {\n this.parse(image);\n this.f5put(data, k);\n return this.pack();\n }\n extract(image) {\n try {\n this.gengen = f5get();\n this.gengen.next();\n this.parse(image, true);\n return this.f5get();\n } catch (e) {\n if (e instanceof Buffer2)\n return e;\n throw e;\n }\n }\n f5put(data, k) {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let t, i, comp = __privateGet(this, _frame).components[0];\n if (data.length > 8388607)\n throw "Data too big. Max 8388607 bytes allowed.";\n if (data.length < 32768) {\n t = new Uint8Array(2 + data.length);\n t[0] = data.length & 255;\n t[1] = data.length >>> 8;\n t.set(data, 2);\n } else {\n t = new Uint8Array(3 + data.length);\n t[0] = data.length & 255;\n t[1] = (data.length >>> 8 & 127) + 128;\n t[2] = data.length >>> 15;\n t.set(data, 3);\n }\n if (comp.componentId != 1) {\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n return __privateMethod(this, __f5write, _f5write_fn).call(this, comp.blocks, t, k);\n }\n f5get() {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let comp = __privateGet(this, _frame).components[0];\n if (comp.componentId != 1) {\n for (let i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n const coeff = new Int16Array(comp.blocks.length);\n coeff.set(comp.blocks);\n let pos = -1, extrBit = 0;\n const cCount = coeff.length - 1;\n let k = 0;\n const out = new Uint8Array(coeff.length / 8 | 0);\n let extrByte = 0;\n let outPos = 0;\n let bitsAvail = 0;\n let code = 0;\n let hash = 0;\n while (bitsAvail < 4) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n k |= extrBit << bitsAvail;\n bitsAvail++;\n }\n k = (k & 15) + 1;\n const n = (1 << k) - 1;\n bitsAvail = 0;\n if (k == 1) {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n extrByte |= extrBit << bitsAvail;\n bitsAvail++;\n if (bitsAvail == 8) {\n out[outPos++] = extrByte;\n extrByte = 0;\n bitsAvail = 0;\n }\n }\n } else {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n hash ^= extrBit * ++code;\n if (code == n) {\n extrByte |= hash << bitsAvail;\n bitsAvail += k;\n code = 0;\n hash = 0;\n while (bitsAvail >= 8) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n }\n }\n }\n while (bitsAvail > 0) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n let s = 2, l = out[0];\n if (out[1] & 128) {\n s++;\n l += ((out[1] & 127) << 8) + (out[2] << 15);\n } else {\n l += out[1] << 8;\n }\n return out.subarray(s, s + l);\n }\n parse(data, tolerant = false) {\n let offset = 0;\n function _buildHuffmanTable(nrcodes, values) {\n let codevalue = 0;\n let pos_in_table = 0;\n const HT = new Uint16Array(65536);\n for (let k = 0; k < 16; k++) {\n for (let j2 = 0; j2 < nrcodes[k]; j2++) {\n for (let i2 = codevalue << 15 - k, cntTo = codevalue + 1 << 15 - k; i2 < cntTo; i2++) {\n HT[i2] = values[pos_in_table] + (k + 1 << 8);\n }\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n const decodeScan = (data2, offset2, frame, components, resetInterval2, spectralStart, spectralEnd, successivePrev, successive) => {\n const startOffset = offset2;\n let bitsData = 0, bitsCount = 0, eobrun = 0;\n const p1 = 1 << successive;\n const m1 = -1 << successive;\n const decodeBaseline = (component2, pos) => {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n let diff = 0;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff;\n let k2 = 1, s, r;\n while (k2 < 64) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n if (component2.componentId == 1) {\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n if (this.gengen && component2.blocks[pos + k2] != 0) {\n const v = component2.blocks[pos + k2] < 0 ? 1 - (component2.blocks[pos + k2] & 1) : component2.blocks[pos + k2] & 1;\n const it = this.gengen.next(v);\n if (it.done) {\n throw it.value;\n }\n }\n }\n bitsCount -= s;\n k2++;\n }\n };\n function decodeDCFirst(component2, pos) {\n let diff = 0;\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff << successive;\n }\n function decodeDCSuccessive(component2, pos) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocksDC[pos >> 6] |= (bitsData >>> --bitsCount & 1) << successive;\n }\n if (!frame)\n throw "Frame not parsed yet";\n function decodeACFirst(component2, pos) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k2 = spectralStart, s, r;\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r != 15) {\n eobrun = (1 << r) - 1;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n bitsCount -= s;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n component2.blocks[pos + k2] *= p1;\n k2++;\n }\n }\n function decodeACSuccessive(component2, pos) {\n let k2 = spectralStart, r, s;\n if (frame == null)\n throw "Frame not defined";\n if (!eobrun) {\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s) {\n if (s != 1)\n throw "bad jpeg";\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n s = bitsData >>> --bitsCount & 1 ? p1 : m1;\n } else {\n if (r != 15) {\n eobrun = 1 << r;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n }\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n } else {\n if (--r < 0)\n break;\n }\n k2++;\n }\n if (s)\n component2.blocks[pos + k2] = s;\n k2++;\n }\n }\n if (eobrun) {\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n }\n k2++;\n }\n eobrun--;\n }\n }\n let decodeFn;\n if (frame.progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n let marker, mcuExpected, i2, j2, k, n, mcusPerLine, mcusPerRow, x, y;\n if (components.length == 1) {\n mcusPerLine = components[0].blocksPerLine;\n mcusPerRow = components[0].blocksPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n decodeFn(components[i2], (y * components[i2].blocksPerLineForMcu + x) * 64);\n }\n }\n }\n } else {\n mcusPerLine = frame.mcusPerLine;\n mcusPerRow = frame.mcusPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n for (j2 = 0; j2 < components[i2].v; j2++) {\n for (k = 0; k < components[i2].h; k++) {\n decodeFn(components[i2], ((y * components[i2].v + j2) * components[i2].blocksPerLineForMcu + x * components[i2].h + k) * 64);\n }\n }\n }\n }\n }\n }\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n return offset2 - startOffset;\n };\n function readUint16() {\n const value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n const length = readUint16();\n const array = data.subarray(offset, offset + length - 2);\n offset += array.length;\n return array;\n }\n __privateSet(this, __raw, data);\n __privateSet(this, _jfif, null);\n __privateSet(this, _APPn, []);\n __privateSet(this, _qts, []);\n __privateSet(this, _frame, null);\n __privateSet(this, _tail, null);\n let markerHi, markerLo, i, j, resetInterval, component;\n const huffmanTablesAC = [];\n const huffmanTablesDC = [];\n while (1) {\n if (offset >= data.length) {\n if (tolerant)\n break;\n throw "unexpected EOF";\n }\n markerHi = data[offset++];\n markerLo = data[offset++];\n if (markerHi == 255) {\n if (markerLo == 224) {\n __privateSet(this, _jfif, readDataBlock());\n }\n if (markerLo > 224 && markerLo < 240 || markerLo == 254) {\n __privateGet(this, _APPn).push({\n "app": markerLo,\n "data": readDataBlock()\n });\n }\n if (markerLo == 219) {\n __privateGet(this, _qts).push(readDataBlock());\n }\n if (markerLo >= 192 && markerLo <= 194) {\n if (__privateGet(this, _frame))\n throw "Only single frame JPEGs supported";\n readUint16();\n __privateSet(this, _frame, {\n "extended": markerLo === 193,\n "progressive": markerLo === 194,\n "precision": data[offset++],\n "scanLines": readUint16(),\n "samplesPerLine": readUint16(),\n "components": [],\n "componentIds": {},\n "maxH": 1,\n "maxV": 1\n });\n if (__privateGet(this, _frame).scanLines * __privateGet(this, _frame).samplesPerLine > this.maxPixels)\n throw "Image is too big.";\n const componentsCount = data[offset++];\n let componentId;\n let maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n const h = data[offset + 1] >> 4;\n const v = data[offset + 1] & 15;\n if (maxH < h)\n maxH = h;\n if (maxV < v)\n maxV = v;\n const qId = data[offset + 2];\n const l = __privateGet(this, _frame).components.push({\n componentId,\n h,\n v,\n quantizationTable: qId\n });\n __privateGet(this, _frame).componentIds[componentId] = l - 1;\n offset += 3;\n }\n __privateGet(this, _frame).maxH = maxH;\n __privateGet(this, _frame).maxV = maxV;\n const mcusPerLine = Math.ceil(__privateGet(this, _frame).samplesPerLine / 8 / maxH);\n const mcusPerColumn = Math.ceil(__privateGet(this, _frame).scanLines / 8 / maxV);\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n component = __privateGet(this, _frame).components[i];\n const blocksPerLine = Math.ceil(Math.ceil(__privateGet(this, _frame).samplesPerLine / 8) * component.h / maxH);\n const blocksPerColumn = Math.ceil(Math.ceil(__privateGet(this, _frame).scanLines / 8) * component.v / maxV);\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n __privateGet(this, _frame).components[i] = {\n ...component,\n blocks: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu * 64),\n blocksDC: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu),\n blocksPerLine,\n blocksPerColumn,\n blocksPerLineForMcu,\n blocksPerColumnForMcu\n };\n }\n __privateGet(this, _frame).mcusPerLine = mcusPerLine;\n __privateGet(this, _frame).mcusPerColumn = mcusPerColumn;\n }\n if (markerLo == 196) {\n const huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++)\n codeLengthSum += codeLengths[j] = data[offset];\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n const v = _buildHuffmanTable(codeLengths, huffmanValues);\n if (huffmanTableSpec >> 4 === 0)\n huffmanTablesDC[huffmanTableSpec & 15] = v;\n else\n huffmanTablesAC[huffmanTableSpec & 15] = v;\n }\n }\n if (markerLo == 221) {\n resetInterval = readUint16();\n }\n if (markerLo == 218) {\n if (__privateGet(this, _frame) == null)\n throw "SOS before SOF";\n readUint16();\n const selectorsCount = data[offset++];\n const components = [];\n for (i = 0; i < selectorsCount; i++) {\n const componentIndex = __privateGet(this, _frame).componentIds[data[offset++]];\n component = __privateGet(this, _frame).components[componentIndex];\n const tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n const spectralStart = data[offset++];\n const spectralEnd = data[offset++];\n const successiveApproximation = data[offset++];\n const processed = decodeScan(data, offset, __privateGet(this, _frame), components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15);\n offset += processed;\n }\n if (markerLo == 217) {\n break;\n }\n } else {\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n }\n while (data[offset] != 255 && offset < data.length) {\n offset++;\n }\n if (data[offset] != 255) {\n throw "bad jpeg ";\n }\n }\n }\n if (!__privateGet(this, _frame))\n throw "bad jpeg";\n if (offset < data.length)\n __privateSet(this, _tail, data.subarray(offset));\n return this;\n }\n pack() {\n let byteout;\n let bytenew;\n let bytepos;\n let poslast;\n let outpos;\n let byte;\n function writeByte(value) {\n let t;\n byteout[outpos++] = value;\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function writeBlock(block) {\n let t;\n if (outpos + block.length > poslast) {\n t = new Uint8Array(byteout.length * 2 + block.length);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n byteout.set(block, outpos);\n outpos += block.length;\n }\n function writeAPP0(self2) {\n writeWord(65504);\n if (!__privateGet(self2, _jfif)) {\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n } else {\n writeWord(__privateGet(self2, _jfif).length + 2);\n writeBlock(__privateGet(self2, _jfif));\n }\n }\n function writeDQT(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _qts).length; i2++) {\n writeWord(65499);\n writeWord(__privateGet(self2, _qts)[i2].length + 2);\n writeBlock(__privateGet(self2, _qts)[i2]);\n }\n }\n function writeAPPn(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _APPn).length; i2++) {\n writeWord(65280 | __privateGet(self2, _APPn)[i2].app);\n writeWord(__privateGet(self2, _APPn)[i2].data.length + 2);\n writeBlock(__privateGet(self2, _APPn)[i2].data);\n }\n }\n function writeSOF0(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65472);\n writeWord(8 + __privateGet(self2, _frame).components.length * 3);\n writeByte(__privateGet(self2, _frame).precision);\n writeWord(__privateGet(self2, _frame).scanLines);\n writeWord(__privateGet(self2, _frame).samplesPerLine);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n writeByte(c2.h << 4 | c2.v);\n writeByte(c2.quantizationTable);\n }\n }\n function writeDHT(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65476);\n writeWord(31);\n writeByte(0);\n for (let i2 = 0; i2 < 16; i2++) {\n writeByte(std_dc_luminance_nrcodes[i2 + 1]);\n }\n for (let j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values[j]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(16);\n for (let k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes[k + 1]);\n }\n for (let l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values[l]);\n }\n if (__privateGet(self2, _frame).components.length != 1) {\n writeWord(65476);\n writeWord(31);\n writeByte(1);\n for (let m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes[m + 1]);\n }\n for (let n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values[n]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(17);\n for (let o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes[o + 1]);\n }\n for (let p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values[p]);\n }\n }\n }\n function writeSOS(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65498);\n writeWord(6 + __privateGet(self2, _frame).components.length * 2);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n if (i2 === 0) {\n writeByte(0);\n } else {\n writeByte(17);\n }\n }\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(comp, POS, DC, HTDC, HTAC) {\n let pos, posval, t;\n if (bytepos === 0)\n bytenew = 0;\n if (!("blocks" in comp))\n throw "Blocks not parsed";\n const Diff = comp.blocksDC[POS >> 6] - DC;\n DC = comp.blocksDC[POS >> 6];\n if (Diff === 0) {\n posval = HTDC[0][1];\n bytenew <<= posval;\n bytenew += HTDC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n } else {\n pos = 32767 + Diff;\n posval = HTDC[category[pos]][1];\n bytenew <<= posval;\n bytenew += HTDC[category[pos]][0];\n bytepos += posval;\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n let end0pos = 63;\n for (; end0pos > 0 && comp.blocks[POS + end0pos] === 0; end0pos--) {\n }\n if (end0pos === 0) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n return DC;\n }\n let i2 = 1;\n let lng;\n while (i2 <= end0pos) {\n const startpos = i2;\n for (; comp.blocks[POS + i2] === 0 && i2 <= end0pos; ++i2) {\n }\n let nrzeroes = i2 - startpos;\n if (nrzeroes >= 16) {\n lng = nrzeroes >> 4;\n for (let nrmarker = 1; nrmarker <= lng; ++nrmarker) {\n posval = HTAC[240][1];\n bytenew <<= posval;\n bytenew += HTAC[240][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + comp.blocks[POS + i2];\n posval = HTAC[(nrzeroes << 4) + category[pos]][1];\n bytenew <<= posval;\n bytenew += HTAC[(nrzeroes << 4) + category[pos]][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n i2++;\n }\n if (end0pos != 63) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n return DC;\n }\n byteout = new Uint8Array(65536);\n poslast = 65536 - 128;\n outpos = 0;\n bytenew = 0;\n bytepos = 0;\n writeWord(65496);\n writeAPP0(this);\n writeAPPn(this);\n writeDQT(this);\n writeSOF0(this);\n writeDHT(this);\n writeSOS(this);\n bytenew = 0;\n bytepos = 0;\n if (!__privateGet(this, _frame))\n throw "Frame not ready";\n let c, mcuRow, mcuCol, blockRow, blockCol, mcu, i, v, h;\n const DCdiff = [];\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n DCdiff.push(0);\n }\n for (mcu = 0; mcu < __privateGet(this, _frame).mcusPerLine * __privateGet(this, _frame).mcusPerColumn; mcu++) {\n mcuRow = mcu / __privateGet(this, _frame).mcusPerLine | 0;\n mcuCol = mcu % __privateGet(this, _frame).mcusPerLine;\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n c = __privateGet(this, _frame).components[i];\n for (v = 0; v < c.v; v++) {\n blockRow = mcuRow * c.v + v;\n for (h = 0; h < c.h; h++) {\n blockCol = mcuCol * c.h + h;\n if (i === 0) {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], YDC_HT, YAC_HT);\n } else {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], UVDC_HT, UVAC_HT);\n }\n }\n }\n }\n }\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n }\n if (bytepos > 0) {\n bytenew <<= 8 - bytepos;\n bytenew += (1 << 8 - bytepos) - 1;\n byteout[outpos++] = 255 & bytenew;\n }\n writeWord(65497);\n if (__privateGet(this, _tail))\n writeBlock(__privateGet(this, _tail));\n return byteout.slice(0, outpos);\n }\n};\n__raw = new WeakMap();\n_jfif = new WeakMap();\n_APPn = new WeakMap();\n_qts = new WeakMap();\n_frame = new WeakMap();\n_tail = new WeakMap();\n__f5write = new WeakSet();\n_f5write_fn = function(coeff, data, k) {\n const coeff_count = coeff.length;\n let _changed = 0, _embedded = 0, _examined = 0, _thrown = 0, shuffled_index = 0, i, ii;\n let next_bit_to_embed = 0, byte_to_embed = data.length, data_idx = 0, available_bits_to_embed = 0;\n const n = (1 << k) - 1;\n byte_to_embed = k - 1;\n byte_to_embed ^= 0;\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed = 3;\n for (ii = 0; ii < coeff_count; ii++) {\n shuffled_index = ii;\n if (shuffled_index % 64 === 0 || coeff[shuffled_index] === 0)\n continue;\n const cc = coeff[shuffled_index];\n _examined++;\n if (cc > 0 && (cc & 1) != next_bit_to_embed) {\n coeff[shuffled_index]--;\n _changed++;\n } else if (cc < 0 && (cc & 1) == next_bit_to_embed) {\n coeff[shuffled_index]++;\n _changed++;\n }\n if (coeff[shuffled_index] !== 0) {\n _embedded++;\n if (available_bits_to_embed === 0) {\n if (k != 1 || data_idx >= data.length)\n break;\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n } else {\n _thrown++;\n }\n }\n if (k == 1 && _embedded < data.length * 8)\n throw "capacity exceeded " + _embedded / 8 + " " + data.length;\n if (k != 1) {\n let is_last_byte = false, k_bits_to_embed = 0;\n while (!is_last_byte || available_bits_to_embed !== 0 && is_last_byte) {\n k_bits_to_embed = 0;\n for (i = 0; i < k; i++) {\n if (available_bits_to_embed === 0) {\n if (data_idx >= data.length) {\n is_last_byte = true;\n break;\n }\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n k_bits_to_embed |= next_bit_to_embed << i;\n }\n const code_word = [];\n let ci = null;\n for (i = 0; i < n; i++) {\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n code_word.push(ci);\n }\n _examined += n;\n while (true) {\n let vhash = 0;\n let extracted_bit;\n for (i = 0; i < code_word.length; i++) {\n if (coeff[code_word[i]] > 0) {\n extracted_bit = coeff[code_word[i]] & 1;\n } else {\n extracted_bit = 1 - (coeff[code_word[i]] & 1);\n }\n if (extracted_bit == 1)\n vhash ^= i + 1;\n }\n i = vhash ^ k_bits_to_embed;\n if (!i) {\n _embedded += k;\n break;\n }\n i--;\n coeff[code_word[i]] += coeff[code_word[i]] < 0 ? 1 : -1;\n _changed++;\n if (coeff[code_word[i]] === 0) {\n _thrown++;\n code_word.splice(i, 1);\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n _examined++;\n code_word.push(ci);\n } else {\n _embedded += k;\n break;\n }\n }\n }\n }\n return {\n "k": k,\n "embedded": _embedded / 8,\n "examined": _examined,\n "changed": _changed,\n "thrown": _thrown,\n "efficiency": (_embedded / _changed).toFixed(2)\n };\n};\n\n// src/jpg.ts\nvar key = import_buffer4.Buffer.from("CUNNYCUNNYCUNNY");\nvar f5inst = new f5stego(key);\nvar inject2 = async (b, links) => {\n if (b.size / 20 < links.join(" ").length)\n throw "Image too small to embed.";\n const arr = new Uint8Array(new Uint8Array(await b.arrayBuffer()));\n const buff = f5inst.embed(arr, new TextEncoder().encode(links.join(" ")), 1);\n return import_buffer4.Buffer.from(buff);\n};\nvar has_embed2 = (b) => {\n try {\n const res = f5inst.extract(b);\n if (!res)\n return false;\n if (res.length > 1024)\n return false;\n const str = import_buffer4.Buffer.from(res).toString();\n if (!str.match(/^[a-zA-Z0-9:/.\\-_ ]+$/))\n return false;\n return str;\n } catch {\n return false;\n }\n};\nvar extract2 = (b, ex) => {\n return decodeCoom3Payload(import_buffer4.Buffer.from(ex));\n};\nvar jpg_default = {\n match: (fn) => !!fn.match(/\\.jpe?g$/),\n has_embed: has_embed2,\n extract: extract2,\n inject: inject2\n};\n\n// src/thirdeye.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer5 = __toESM(require_buffer(), 1);\nvar import_jpeg_js = __toESM(require_jpeg_js(), 1);\n\n// src/phash.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar median = (data) => {\n const mdarr = data.slice(0);\n mdarr.sort((a, b) => a - b);\n if (mdarr.length % 2 === 0)\n return (mdarr[mdarr.length / 2 - 1] + mdarr[mdarr.length / 2]) / 2;\n return mdarr[Math.floor(mdarr.length / 2)];\n};\nvar translate_blocks_to_bits = function(blocks, pixels_per_block) {\n const half_block_value = pixels_per_block * 256 * 3 / 2;\n const bandsize = blocks.length / 4;\n for (let i = 0; i < 4; i++) {\n const m = median(blocks.slice(i * bandsize, (i + 1) * bandsize));\n for (let j = i * bandsize; j < (i + 1) * bandsize; j++) {\n const v = blocks[j];\n blocks[j] = Number(v > m || Math.abs(v - m) < 1 && m > half_block_value);\n }\n }\n};\nvar bits_to_hexhash = (bitsArray) => {\n const hex = [];\n for (let i = 0; i < bitsArray.length; i += 4) {\n const nibble = bitsArray.slice(i, i + 4);\n hex.push(parseInt(nibble.join(""), 2).toString(16));\n }\n return hex.join("");\n};\nvar bmvbhash_even = (data, bits) => {\n const blocksize_x = Math.floor(data.width / bits);\n const blocksize_y = Math.floor(data.height / bits);\n const result = [];\n for (let y = 0; y < bits; y++) {\n for (let x = 0; x < bits; x++) {\n let total = 0;\n for (let iy = 0; iy < blocksize_y; iy++) {\n for (let ix = 0; ix < blocksize_x; ix++) {\n const cx = x * blocksize_x + ix;\n const cy = y * blocksize_y + iy;\n const ii = (cy * data.width + cx) * 4;\n const alpha = data.data[ii + 3];\n if (alpha === 0) {\n total += 765;\n } else {\n total += data.data[ii] + data.data[ii + 1] + data.data[ii + 2];\n }\n }\n }\n result.push(total);\n }\n }\n translate_blocks_to_bits(result, blocksize_x * blocksize_y);\n return bits_to_hexhash(result);\n};\n\n// src/thirdeye.ts\nvar csettings3;\nsettings.subscribe((b) => {\n csettings3 = b;\n});\nvar gelquirk = (prefix) => (a) => {\n let base = a.post || a.data || a;\n if (!Array.isArray(base))\n return [];\n base = base.filter((e) => e.file_url);\n return base.map((e) => ({\n full_url: e.file_url,\n preview_url: e.preview_url || e.preview_url,\n source: e.source,\n ext: e.file_ext || e.file_url.substr(e.file_url.lastIndexOf(".") + 1),\n page: `${prefix}${e.id || e.parent_id}`,\n tags: (e.tag_string || (e.tags && (Array.isArray(e.tags) && (typeof e.tags[0] == "string" ? e.tags.join(" ") : e.tags.map((e2) => e2.name_en).join(" "))) || e.tags) || "").split(" ")\n })) || [];\n};\nvar experimentalApi = false;\nvar black = /* @__PURE__ */ new Set();\nvar phashEn = false;\nvar mindist = 5;\nsettings.subscribe((s) => {\n if (!s)\n return;\n experimentalApi = s.expte;\n boorus = s.rsources.map((e) => ({\n ...e,\n quirks: gelquirk(e.view)\n }));\n black = new Set(s.blacklist);\n mindist = s.mdist || 5;\n phashEn = s.phash;\n});\nvar boorus = [];\nvar unlockQueue = Promise.resolve();\nvar cache = {};\nvar findFileFrom = async (b, hex, abort) => {\n try {\n if (b.domain in cache && hex in cache[b.domain])\n return cache[b.domain][hex];\n const res = await ifetch(`https://${b.domain}${b.endpoint}${hex}`);\n const txt = await res.text();\n const pres = JSON.parse(txt);\n const tran = b.quirks(pres).filter((e) => !e.tags.some((e2) => black.has(e2)));\n if (!(b.domain in cache))\n cache[b.domain] = {};\n cache[b.domain][hex] = tran;\n return tran;\n } catch (e) {\n const error = e;\n if (!error.message.includes("Unexpected end of JSON input"))\n console.error(e);\n return [];\n }\n};\nvar extract3 = async (b, fn) => {\n if (!csettings3)\n throw new Error("Settings uninit");\n let result;\n let booru;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n if (result.length) {\n booru = e.name;\n break;\n }\n }\n let cachedFile;\n const prev = result[0].preview_url;\n const full = result[0].full_url;\n return [{\n source: result[0].source,\n page: {\n title: booru,\n url: result[0].page\n },\n filename: fn.substring(0, 33) + result[0].ext,\n thumbnail: csettings3.hotlink ? prev || full : import_buffer5.Buffer.from(await (await ifetch(prev || full)).arrayBuffer()),\n data: csettings3.hotlink ? full || prev : { url: full || prev }\n }];\n};\nvar phash = (b) => {\n const res = (0, import_jpeg_js.decode)(b);\n return bmvbhash_even(res, 8);\n};\nvar hammingDist = (a, b) => {\n let res = BigInt("0x" + a) ^ BigInt("0x" + b);\n let acc = 0;\n while (res != 0n) {\n acc += Number(res & 1n);\n res >>= 1n;\n }\n return acc;\n};\nvar has_embed3 = async (b, fn, prevlink) => {\n if (import_buffer5.Buffer.from(fn, "hex").equals(b))\n return false;\n let result = void 0;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n result = result.filter((e2) => e2.full_url || e2.preview_url);\n if (result.length)\n break;\n }\n if (result && result.length != 0 && phashEn && prevlink) {\n if (!result[0].preview_url)\n return true;\n const getHash = async (l) => {\n const ogreq = await ifetch(l);\n const origPreview = await ogreq.arrayBuffer();\n return phash(import_buffer5.Buffer.from(origPreview));\n };\n const [orighash, tehash] = await Promise.all([\n getHash(prevlink),\n getHash(result[0].preview_url)\n ]);\n const d = hammingDist(orighash, tehash);\n console.log(d, prevlink);\n return d > mindist;\n }\n return result && result.length != 0;\n};\nvar thirdeye_default = {\n skip: true,\n extract: extract3,\n has_embed: has_embed3,\n match: (fn) => !!fn.match(/^[0-9a-f]{32}\\.....?/)\n};\n\n// src/pomf.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer6 = __toESM(require_buffer(), 1);\nvar sources = [\n { host: "Catbox", prefix: "files.catbox.moe/" },\n { host: "Litter", prefix: "litter.catbox.moe/" },\n { host: "Zzzz", prefix: "z.zz.fo/" }\n];\nvar csettings4;\nsettings.subscribe((b) => {\n csettings4 = b;\n});\nvar getExt = (fn) => {\n const isB64 = fn.match(/^((?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=))?\\.(gif|jpe?g|png|webm)/);\n const isExt = fn.match(/\\[.*=(.*)\\]/);\n let ext;\n let source;\n try {\n if (isB64) {\n ext = atob(isB64[1]);\n } else if (isExt) {\n ext = decodeURIComponent(isExt[1]);\n if (ext.startsWith("https://"))\n ext = ext.slice("https://".length);\n for (const cs of sources)\n if (ext.startsWith(cs.prefix)) {\n source = cs.prefix;\n ext = ext.slice(cs.prefix.length);\n break;\n }\n }\n } catch {\n }\n return { ext, source };\n};\nvar extract4 = async (b, fn) => {\n if (!csettings4)\n throw new Error("Settings uninit");\n const { ext, source } = getExt(fn);\n let rsource;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n await getHeaders("https://" + cs.prefix + ext);\n rsource = "https://" + cs.prefix + ext;\n break;\n } catch {\n }\n }\n return [{\n filename: ext,\n data: csettings4.hotlink ? rsource : { url: rsource },\n thumbnail: import_buffer6.Buffer.from(hasembed_default)\n }];\n};\nvar has_embed4 = async (b, fn) => {\n const { ext, source } = getExt(fn);\n if (!ext)\n return false;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n const e = await getHeaders("https://" + cs.prefix + ext);\n return true;\n } catch {\n }\n }\n return false;\n};\nvar pomf_default = {\n skip: true,\n extract: extract4,\n has_embed: has_embed4,\n match: (fn) => !!getExt(fn)\n};\n\n// src/processor.worker.ts\nconsole.log("Worker started");\nvar pendinggens = {};\nvar proxyAsyncGen = (id) => {\n return {\n next(arg) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n return(v) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n throw() {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n [Symbol.asyncIterator]() {\n return this;\n }\n };\n};\nvar deserializeMessage = (m) => {\n if (m instanceof MessagePort)\n return m;\n if (typeof m == "object" && m.type == "AsyncGenerator") {\n return proxyAsyncGen(m.id);\n }\n if (typeof m == "object") {\n for (const p in m) {\n m[p] = deserializeMessage(m[p]);\n }\n }\n return m;\n};\nvar processors = [thirdeye_default, pomf_default, pngv3_default, jpg_default];\nvar processImage = async (srcs, fn, hex, prevurl) => {\n const ret = await Promise.all(processors.filter((e) => e.match(fn)).map(async (proc) => {\n if (proc.skip) {\n const md5 = Buffer2.from(hex, "base64");\n if (await proc.has_embed(md5, fn, prevurl) === true) {\n return [await proc.extract(md5, fn), true];\n }\n return;\n }\n let succ = false;\n let cumul;\n do {\n try {\n const n = await srcs.next();\n if (n.done)\n return;\n const iter = streamRemote(n.value);\n if (!iter)\n return;\n cumul = Buffer2.alloc(0);\n let found;\n let chunk = { done: true };\n do {\n const { value, done } = await iter.next(typeof found === "boolean");\n if (done) {\n chunk = { done: true };\n } else {\n chunk = { done: false, value };\n cumul = Buffer2.concat([cumul, value]);\n const v = await proc.has_embed(cumul);\n if (typeof v == "string") {\n return [await proc.extract(cumul, v), false];\n }\n found = v;\n }\n } while (found !== false && !chunk.done);\n succ = true;\n await iter.next(true);\n if (found !== true) {\n return;\n }\n return [await proc.extract(cumul), false];\n } catch (err) {\n console.log(err);\n }\n } while (!succ);\n }));\n return ret.filter((e) => e).map((e) => e);\n};\nvar init2 = false;\n(async () => {\n onmessage = async (msg) => {\n const des = deserializeMessage(msg.data);\n switch (des.type) {\n case "ipc": {\n setupPort(des.port);\n const nset = await localLoad("settingsv2", initial_settings);\n settings.set(nset);\n break;\n }\n case "cmd": {\n switch (des.fun) {\n case "processImage": {\n if (!init2) {\n await new Promise((_) => {\n settings.subscribe((v) => {\n if (v)\n _();\n });\n });\n init2 = true;\n }\n const res = await processImage(des.args[0], des.args[1], des.args[2], des.args[3]);\n const tr = [];\n for (const ef of res) {\n for (const e of ef[0]) {\n if (e.thumbnail && Buffer2.isBuffer(e.thumbnail) || typeof e.thumbnail != "string")\n tr.push(e.thumbnail.buffer);\n if (Buffer2.isBuffer(e.data) || typeof e.data != "string" && !("url" in e.data))\n tr.push(e.data.buffer);\n }\n }\n postMessage({\n type: "reply",\n id: des.id,\n res\n }, [...new Set(tr)]);\n }\n }\n break;\n }\n case "ag": {\n const cb = pendinggens[des.id].shift();\n if (cb) {\n cb(des.res);\n }\n break;\n }\n }\n };\n})();\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n'); + return inlineWorker('var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key2 of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key2) && key2 !== except)\n __defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));\nvar __decorateClass = (decorators, target, key2, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key2) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key2, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key2, result);\n return result;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError("Cannot " + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, "read from private field");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError("Cannot add the same private member more than once");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, "write to private field");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, "access private method");\n return method;\n};\nvar __toBinary = /* @__PURE__ */ (() => {\n var table = new Uint8Array(128);\n for (var i = 0; i < 64; i++)\n table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i;\n return (base64) => {\n var n = base64.length, bytes = new Uint8Array((n - (base64[n - 1] == "=") - (base64[n - 2] == "=")) * 3 / 4 | 0);\n for (var i2 = 0, j = 0; i2 < n; ) {\n var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)];\n var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)];\n bytes[j++] = c0 << 2 | c1 >> 4;\n bytes[j++] = c1 << 4 | c2 >> 2;\n bytes[j++] = c2 << 6 | c3;\n }\n return bytes;\n };\n})();\n\n// \nvar init_define_BUILD_VERSION = __esm({\n ""() {\n }\n});\n\n// node_modules/base64-js/index.js\nvar require_base64_js = __commonJS({\n "node_modules/base64-js/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.byteLength = byteLength;\n exports.toByteArray = toByteArray;\n exports.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array;\n var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";\n for (i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n var i;\n var len;\n revLookup["-".charCodeAt(0)] = 62;\n revLookup["_".charCodeAt(0)] = 63;\n function getLens(b64) {\n var len2 = b64.length;\n if (len2 % 4 > 0) {\n throw new Error("Invalid string. Length must be a multiple of 4");\n }\n var validLen = b64.indexOf("=");\n if (validLen === -1)\n validLen = len2;\n var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n }\n function byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0;\n var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i2;\n for (i2 = 0; i2 < len2; i2 += 4) {\n tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)];\n arr[curByte++] = tmp >> 16 & 255;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n return arr;\n }\n function tripletToBase64(num) {\n return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];\n }\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n for (var i2 = start; i2 < end; i2 += 3) {\n tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255);\n output.push(tripletToBase64(tmp));\n }\n return output.join("");\n }\n function fromByteArray(uint8) {\n var tmp;\n var len2 = uint8.length;\n var extraBytes = len2 % 3;\n var parts = [];\n var maxChunkLength = 16383;\n for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) {\n parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength));\n }\n if (extraBytes === 1) {\n tmp = uint8[len2 - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "==");\n } else if (extraBytes === 2) {\n tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "=");\n }\n return parts.join("");\n }\n }\n});\n\n// node_modules/ieee754/index.js\nvar require_ieee754 = __commonJS({\n "node_modules/ieee754/index.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.read = function(buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n exports.write = function(buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {\n }\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {\n }\n buffer[offset + i - d] |= s * 128;\n };\n }\n});\n\n// node_modules/buffer/index.js\nvar require_buffer = __commonJS({\n "node_modules/buffer/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var base64 = require_base64_js();\n var ieee7542 = require_ieee754();\n var customInspectSymbol = typeof Symbol === "function" && typeof Symbol["for"] === "function" ? Symbol["for"]("nodejs.util.inspect.custom") : null;\n exports.Buffer = Buffer13;\n exports.SlowBuffer = SlowBuffer;\n exports.INSPECT_MAX_BYTES = 50;\n var K_MAX_LENGTH = 2147483647;\n exports.kMaxLength = K_MAX_LENGTH;\n Buffer13.TYPED_ARRAY_SUPPORT = typedArraySupport();\n if (!Buffer13.TYPED_ARRAY_SUPPORT && typeof console !== "undefined" && typeof console.error === "function") {\n console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");\n }\n function typedArraySupport() {\n try {\n const arr = new Uint8Array(1);\n const proto = { foo: function() {\n return 42;\n } };\n Object.setPrototypeOf(proto, Uint8Array.prototype);\n Object.setPrototypeOf(arr, proto);\n return arr.foo() === 42;\n } catch (e) {\n return false;\n }\n }\n Object.defineProperty(Buffer13.prototype, "parent", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.buffer;\n }\n });\n Object.defineProperty(Buffer13.prototype, "offset", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.byteOffset;\n }\n });\n function createBuffer(length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError(\'The value "\' + length + \'" is invalid for option "size"\');\n }\n const buf2 = new Uint8Array(length);\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function Buffer13(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n if (typeof encodingOrOffset === "string") {\n throw new TypeError(\'The "string" argument must be of type string. Received type number\');\n }\n return allocUnsafe(arg);\n }\n return from(arg, encodingOrOffset, length);\n }\n Buffer13.poolSize = 8192;\n function from(value, encodingOrOffset, length) {\n if (typeof value === "string") {\n return fromString(value, encodingOrOffset);\n }\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value);\n }\n if (value == null) {\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof SharedArrayBuffer !== "undefined" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof value === "number") {\n throw new TypeError(\'The "value" argument must not be of type number. Received type number\');\n }\n const valueOf = value.valueOf && value.valueOf();\n if (valueOf != null && valueOf !== value) {\n return Buffer13.from(valueOf, encodingOrOffset, length);\n }\n const b = fromObject(value);\n if (b)\n return b;\n if (typeof Symbol !== "undefined" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === "function") {\n return Buffer13.from(value[Symbol.toPrimitive]("string"), encodingOrOffset, length);\n }\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n Buffer13.from = function(value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n };\n Object.setPrototypeOf(Buffer13.prototype, Uint8Array.prototype);\n Object.setPrototypeOf(Buffer13, Uint8Array);\n function assertSize(size) {\n if (typeof size !== "number") {\n throw new TypeError(\'"size" argument must be of type number\');\n } else if (size < 0) {\n throw new RangeError(\'The value "\' + size + \'" is invalid for option "size"\');\n }\n }\n function alloc(size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(size);\n }\n if (fill !== void 0) {\n return typeof encoding === "string" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n return createBuffer(size);\n }\n Buffer13.alloc = function(size, fill, encoding) {\n return alloc(size, fill, encoding);\n };\n function allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n }\n Buffer13.allocUnsafe = function(size) {\n return allocUnsafe(size);\n };\n Buffer13.allocUnsafeSlow = function(size) {\n return allocUnsafe(size);\n };\n function fromString(string, encoding) {\n if (typeof encoding !== "string" || encoding === "") {\n encoding = "utf8";\n }\n if (!Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n const length = byteLength(string, encoding) | 0;\n let buf2 = createBuffer(length);\n const actual = buf2.write(string, encoding);\n if (actual !== length) {\n buf2 = buf2.slice(0, actual);\n }\n return buf2;\n }\n function fromArrayLike(array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0;\n const buf2 = createBuffer(length);\n for (let i = 0; i < length; i += 1) {\n buf2[i] = array[i] & 255;\n }\n return buf2;\n }\n function fromArrayView(arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView);\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);\n }\n return fromArrayLike(arrayView);\n }\n function fromArrayBuffer(array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError(\'"offset" is outside of buffer bounds\');\n }\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError(\'"length" is outside of buffer bounds\');\n }\n let buf2;\n if (byteOffset === void 0 && length === void 0) {\n buf2 = new Uint8Array(array);\n } else if (length === void 0) {\n buf2 = new Uint8Array(array, byteOffset);\n } else {\n buf2 = new Uint8Array(array, byteOffset, length);\n }\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function fromObject(obj) {\n if (Buffer13.isBuffer(obj)) {\n const len = checked(obj.length) | 0;\n const buf2 = createBuffer(len);\n if (buf2.length === 0) {\n return buf2;\n }\n obj.copy(buf2, 0, 0, len);\n return buf2;\n }\n if (obj.length !== void 0) {\n if (typeof obj.length !== "number" || numberIsNaN(obj.length)) {\n return createBuffer(0);\n }\n return fromArrayLike(obj);\n }\n if (obj.type === "Buffer" && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n }\n function checked(length) {\n if (length >= K_MAX_LENGTH) {\n throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + K_MAX_LENGTH.toString(16) + " bytes");\n }\n return length | 0;\n }\n function SlowBuffer(length) {\n if (+length != length) {\n length = 0;\n }\n return Buffer13.alloc(+length);\n }\n Buffer13.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer13.prototype;\n };\n Buffer13.compare = function compare(a, b) {\n if (isInstance(a, Uint8Array))\n a = Buffer13.from(a, a.offset, a.byteLength);\n if (isInstance(b, Uint8Array))\n b = Buffer13.from(b, b.offset, b.byteLength);\n if (!Buffer13.isBuffer(a) || !Buffer13.isBuffer(b)) {\n throw new TypeError(\'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array\');\n }\n if (a === b)\n return 0;\n let x = a.length;\n let y = b.length;\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n Buffer13.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "latin1":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return true;\n default:\n return false;\n }\n };\n Buffer13.concat = function concat(list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n }\n if (list.length === 0) {\n return Buffer13.alloc(0);\n }\n let i;\n if (length === void 0) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n const buffer = Buffer13.allocUnsafe(length);\n let pos = 0;\n for (i = 0; i < list.length; ++i) {\n let buf2 = list[i];\n if (isInstance(buf2, Uint8Array)) {\n if (pos + buf2.length > buffer.length) {\n if (!Buffer13.isBuffer(buf2))\n buf2 = Buffer13.from(buf2);\n buf2.copy(buffer, pos);\n } else {\n Uint8Array.prototype.set.call(buffer, buf2, pos);\n }\n } else if (!Buffer13.isBuffer(buf2)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n } else {\n buf2.copy(buffer, pos);\n }\n pos += buf2.length;\n }\n return buffer;\n };\n function byteLength(string, encoding) {\n if (Buffer13.isBuffer(string)) {\n return string.length;\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength;\n }\n if (typeof string !== "string") {\n throw new TypeError(\'The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type \' + typeof string);\n }\n const len = string.length;\n const mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0)\n return 0;\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "ascii":\n case "latin1":\n case "binary":\n return len;\n case "utf8":\n case "utf-8":\n return utf8ToBytes(string).length;\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return len * 2;\n case "hex":\n return len >>> 1;\n case "base64":\n return base64ToBytes(string).length;\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length;\n }\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.byteLength = byteLength;\n function slowToString(encoding, start, end) {\n let loweredCase = false;\n if (start === void 0 || start < 0) {\n start = 0;\n }\n if (start > this.length) {\n return "";\n }\n if (end === void 0 || end > this.length) {\n end = this.length;\n }\n if (end <= 0) {\n return "";\n }\n end >>>= 0;\n start >>>= 0;\n if (end <= start) {\n return "";\n }\n if (!encoding)\n encoding = "utf8";\n while (true) {\n switch (encoding) {\n case "hex":\n return hexSlice(this, start, end);\n case "utf8":\n case "utf-8":\n return utf8Slice(this, start, end);\n case "ascii":\n return asciiSlice(this, start, end);\n case "latin1":\n case "binary":\n return latin1Slice(this, start, end);\n case "base64":\n return base64Slice(this, start, end);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return utf16leSlice(this, start, end);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = (encoding + "").toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.prototype._isBuffer = true;\n function swap(b, n, m) {\n const i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n Buffer13.prototype.swap16 = function swap16() {\n const len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 16-bits");\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this;\n };\n Buffer13.prototype.swap32 = function swap32() {\n const len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 32-bits");\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this;\n };\n Buffer13.prototype.swap64 = function swap64() {\n const len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 64-bits");\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this;\n };\n Buffer13.prototype.toString = function toString() {\n const length = this.length;\n if (length === 0)\n return "";\n if (arguments.length === 0)\n return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n };\n Buffer13.prototype.toLocaleString = Buffer13.prototype.toString;\n Buffer13.prototype.equals = function equals(b) {\n if (!Buffer13.isBuffer(b))\n throw new TypeError("Argument must be a Buffer");\n if (this === b)\n return true;\n return Buffer13.compare(this, b) === 0;\n };\n Buffer13.prototype.inspect = function inspect() {\n let str = "";\n const max = exports.INSPECT_MAX_BYTES;\n str = this.toString("hex", 0, max).replace(/(.{2})/g, "$1 ").trim();\n if (this.length > max)\n str += " ... ";\n return "";\n };\n if (customInspectSymbol) {\n Buffer13.prototype[customInspectSymbol] = Buffer13.prototype.inspect;\n }\n Buffer13.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer13.from(target, target.offset, target.byteLength);\n }\n if (!Buffer13.isBuffer(target)) {\n throw new TypeError(\'The "target" argument must be one of type Buffer or Uint8Array. Received type \' + typeof target);\n }\n if (start === void 0) {\n start = 0;\n }\n if (end === void 0) {\n end = target ? target.length : 0;\n }\n if (thisStart === void 0) {\n thisStart = 0;\n }\n if (thisEnd === void 0) {\n thisEnd = this.length;\n }\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError("out of range index");\n }\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n if (thisStart >= thisEnd) {\n return -1;\n }\n if (start >= end) {\n return 1;\n }\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target)\n return 0;\n let x = thisEnd - thisStart;\n let y = end - start;\n const len = Math.min(x, y);\n const thisCopy = this.slice(thisStart, thisEnd);\n const targetCopy = target.slice(start, end);\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n if (buffer.length === 0)\n return -1;\n if (typeof byteOffset === "string") {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 2147483647) {\n byteOffset = 2147483647;\n } else if (byteOffset < -2147483648) {\n byteOffset = -2147483648;\n }\n byteOffset = +byteOffset;\n if (numberIsNaN(byteOffset)) {\n byteOffset = dir ? 0 : buffer.length - 1;\n }\n if (byteOffset < 0)\n byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir)\n return -1;\n else\n byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir)\n byteOffset = 0;\n else\n return -1;\n }\n if (typeof val === "string") {\n val = Buffer13.from(val, encoding);\n }\n if (Buffer13.isBuffer(val)) {\n if (val.length === 0) {\n return -1;\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === "number") {\n val = val & 255;\n if (typeof Uint8Array.prototype.indexOf === "function") {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n throw new TypeError("val must be string, number or Buffer");\n }\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n let indexSize = 1;\n let arrLength = arr.length;\n let valLength = val.length;\n if (encoding !== void 0) {\n encoding = String(encoding).toLowerCase();\n if (encoding === "ucs2" || encoding === "ucs-2" || encoding === "utf16le" || encoding === "utf-16le") {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n function read2(buf2, i2) {\n if (indexSize === 1) {\n return buf2[i2];\n } else {\n return buf2.readUInt16BE(i2 * indexSize);\n }\n }\n let i;\n if (dir) {\n let foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read2(arr, i) === read2(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1)\n foundIndex = i;\n if (i - foundIndex + 1 === valLength)\n return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1)\n i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength)\n byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n let found = true;\n for (let j = 0; j < valLength; j++) {\n if (read2(arr, i + j) !== read2(val, j)) {\n found = false;\n break;\n }\n }\n if (found)\n return i;\n }\n }\n return -1;\n }\n Buffer13.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n Buffer13.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n Buffer13.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n function hexWrite(buf2, string, offset, length) {\n offset = Number(offset) || 0;\n const remaining = buf2.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n const strLen = string.length;\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n let i;\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16);\n if (numberIsNaN(parsed))\n return i;\n buf2[offset + i] = parsed;\n }\n return i;\n }\n function utf8Write(buf2, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n function asciiWrite(buf2, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf2, offset, length);\n }\n function base64Write(buf2, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf2, offset, length);\n }\n function ucs2Write(buf2, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n Buffer13.prototype.write = function write2(string, offset, length, encoding) {\n if (offset === void 0) {\n encoding = "utf8";\n length = this.length;\n offset = 0;\n } else if (length === void 0 && typeof offset === "string") {\n encoding = offset;\n length = this.length;\n offset = 0;\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n if (isFinite(length)) {\n length = length >>> 0;\n if (encoding === void 0)\n encoding = "utf8";\n } else {\n encoding = length;\n length = void 0;\n }\n } else {\n throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");\n }\n const remaining = this.length - offset;\n if (length === void 0 || length > remaining)\n length = remaining;\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError("Attempt to write outside buffer bounds");\n }\n if (!encoding)\n encoding = "utf8";\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "hex":\n return hexWrite(this, string, offset, length);\n case "utf8":\n case "utf-8":\n return utf8Write(this, string, offset, length);\n case "ascii":\n case "latin1":\n case "binary":\n return asciiWrite(this, string, offset, length);\n case "base64":\n return base64Write(this, string, offset, length);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return ucs2Write(this, string, offset, length);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n Buffer13.prototype.toJSON = function toJSON() {\n return {\n type: "Buffer",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n function base64Slice(buf2, start, end) {\n if (start === 0 && end === buf2.length) {\n return base64.fromByteArray(buf2);\n } else {\n return base64.fromByteArray(buf2.slice(start, end));\n }\n }\n function utf8Slice(buf2, start, end) {\n end = Math.min(buf2.length, end);\n const res = [];\n let i = start;\n while (i < end) {\n const firstByte = buf2[i];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf2[i + 1];\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n fourthByte = buf2[i + 3];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n res.push(codePoint);\n i += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n }\n var MAX_ARGUMENTS_LENGTH = 4096;\n function decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints);\n }\n let res = "";\n let i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n }\n function asciiSlice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i] & 127);\n }\n return ret;\n }\n function latin1Slice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i]);\n }\n return ret;\n }\n function hexSlice(buf2, start, end) {\n const len = buf2.length;\n if (!start || start < 0)\n start = 0;\n if (!end || end < 0 || end > len)\n end = len;\n let out = "";\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf2[i]];\n }\n return out;\n }\n function utf16leSlice(buf2, start, end) {\n const bytes = buf2.slice(start, end);\n let res = "";\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res;\n }\n Buffer13.prototype.slice = function slice(start, end) {\n const len = this.length;\n start = ~~start;\n end = end === void 0 ? len : ~~end;\n if (start < 0) {\n start += len;\n if (start < 0)\n start = 0;\n } else if (start > len) {\n start = len;\n }\n if (end < 0) {\n end += len;\n if (end < 0)\n end = 0;\n } else if (end > len) {\n end = len;\n }\n if (end < start)\n end = start;\n const newBuf = this.subarray(start, end);\n Object.setPrototypeOf(newBuf, Buffer13.prototype);\n return newBuf;\n };\n function checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0)\n throw new RangeError("offset is not uint");\n if (offset + ext > length)\n throw new RangeError("Trying to access beyond buffer length");\n }\n Buffer13.prototype.readUintLE = Buffer13.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUintBE = Buffer13.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n checkOffset(offset, byteLength2, this.length);\n }\n let val = this[offset + --byteLength2];\n let mul = 1;\n while (byteLength2 > 0 && (mul *= 256)) {\n val += this[offset + --byteLength2] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUint8 = Buffer13.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n return this[offset];\n };\n Buffer13.prototype.readUint16LE = Buffer13.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n };\n Buffer13.prototype.readUint16BE = Buffer13.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n };\n Buffer13.prototype.readUint32LE = Buffer13.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;\n };\n Buffer13.prototype.readUint32BE = Buffer13.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n Buffer13.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const lo = first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24;\n const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last * 2 ** 24;\n return BigInt(lo) + (BigInt(hi) << BigInt(32));\n });\n Buffer13.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const hi = first * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last;\n return (BigInt(hi) << BigInt(32)) + BigInt(lo);\n });\n Buffer13.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let i = byteLength2;\n let mul = 1;\n let val = this[offset + --i];\n while (i > 0 && (mul *= 256)) {\n val += this[offset + --i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readInt8 = function readInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n if (!(this[offset] & 128))\n return this[offset];\n return (255 - this[offset] + 1) * -1;\n };\n Buffer13.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset] | this[offset + 1] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset + 1] | this[offset] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n Buffer13.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n Buffer13.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last << 24);\n return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24);\n });\n Buffer13.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = (first << 24) + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last);\n });\n Buffer13.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, true, 23, 4);\n };\n Buffer13.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, false, 23, 4);\n };\n Buffer13.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, true, 52, 8);\n };\n Buffer13.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, false, 52, 8);\n };\n function checkInt(buf2, value, offset, ext, max, min) {\n if (!Buffer13.isBuffer(buf2))\n throw new TypeError(\'"buffer" argument must be a Buffer instance\');\n if (value > max || value < min)\n throw new RangeError(\'"value" argument is out of bounds\');\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n }\n Buffer13.prototype.writeUintLE = Buffer13.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let mul = 1;\n let i = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUintBE = Buffer13.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUint8 = Buffer13.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 255, 0);\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeUint16LE = Buffer13.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeUint16BE = Buffer13.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeUint32LE = Buffer13.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeUint32BE = Buffer13.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n function wrtBigUInt64LE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n return offset;\n }\n function wrtBigUInt64BE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset + 7] = lo;\n lo = lo >> 8;\n buf2[offset + 6] = lo;\n lo = lo >> 8;\n buf2[offset + 5] = lo;\n lo = lo >> 8;\n buf2[offset + 4] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset + 3] = hi;\n hi = hi >> 8;\n buf2[offset + 2] = hi;\n hi = hi >> 8;\n buf2[offset + 1] = hi;\n hi = hi >> 8;\n buf2[offset] = hi;\n return offset + 8;\n }\n Buffer13.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = 0;\n let mul = 1;\n let sub = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n let sub = 0;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 127, -128);\n if (value < 0)\n value = 255 + value + 1;\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n return offset + 4;\n };\n Buffer13.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n if (value < 0)\n value = 4294967295 + value + 1;\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n Buffer13.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n function checkIEEE754(buf2, value, offset, ext, max, min) {\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n if (offset < 0)\n throw new RangeError("Index out of range");\n }\n function writeFloat(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 4, 34028234663852886e22, -34028234663852886e22);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n Buffer13.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n function writeDouble(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 8, 17976931348623157e292, -17976931348623157e292);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n Buffer13.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n };\n Buffer13.prototype.copy = function copy(target, targetStart, start, end) {\n if (!Buffer13.isBuffer(target))\n throw new TypeError("argument should be a Buffer");\n if (!start)\n start = 0;\n if (!end && end !== 0)\n end = this.length;\n if (targetStart >= target.length)\n targetStart = target.length;\n if (!targetStart)\n targetStart = 0;\n if (end > 0 && end < start)\n end = start;\n if (end === start)\n return 0;\n if (target.length === 0 || this.length === 0)\n return 0;\n if (targetStart < 0) {\n throw new RangeError("targetStart out of bounds");\n }\n if (start < 0 || start >= this.length)\n throw new RangeError("Index out of range");\n if (end < 0)\n throw new RangeError("sourceEnd out of bounds");\n if (end > this.length)\n end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n const len = end - start;\n if (this === target && typeof Uint8Array.prototype.copyWithin === "function") {\n this.copyWithin(targetStart, start, end);\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart);\n }\n return len;\n };\n Buffer13.prototype.fill = function fill(val, start, end, encoding) {\n if (typeof val === "string") {\n if (typeof start === "string") {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === "string") {\n encoding = end;\n end = this.length;\n }\n if (encoding !== void 0 && typeof encoding !== "string") {\n throw new TypeError("encoding must be a string");\n }\n if (typeof encoding === "string" && !Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0);\n if (encoding === "utf8" && code < 128 || encoding === "latin1") {\n val = code;\n }\n }\n } else if (typeof val === "number") {\n val = val & 255;\n } else if (typeof val === "boolean") {\n val = Number(val);\n }\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError("Out of range index");\n }\n if (end <= start) {\n return this;\n }\n start = start >>> 0;\n end = end === void 0 ? this.length : end >>> 0;\n if (!val)\n val = 0;\n let i;\n if (typeof val === "number") {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n const bytes = Buffer13.isBuffer(val) ? val : Buffer13.from(val, encoding);\n const len = bytes.length;\n if (len === 0) {\n throw new TypeError(\'The value "\' + val + \'" is invalid for argument "value"\');\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n return this;\n };\n var errors = {};\n function E(sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor() {\n super();\n Object.defineProperty(this, "message", {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n });\n this.name = `${this.name} [${sym}]`;\n this.stack;\n delete this.name;\n }\n get code() {\n return sym;\n }\n set code(value) {\n Object.defineProperty(this, "code", {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n });\n }\n toString() {\n return `${this.name} [${sym}]: ${this.message}`;\n }\n };\n }\n E("ERR_BUFFER_OUT_OF_BOUNDS", function(name) {\n if (name) {\n return `${name} is outside of buffer bounds`;\n }\n return "Attempt to access memory outside buffer bounds";\n }, RangeError);\n E("ERR_INVALID_ARG_TYPE", function(name, actual) {\n return `The "${name}" argument must be of type number. Received type ${typeof actual}`;\n }, TypeError);\n E("ERR_OUT_OF_RANGE", function(str, range, input) {\n let msg = `The value of "${str}" is out of range.`;\n let received = input;\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input));\n } else if (typeof input === "bigint") {\n received = String(input);\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received);\n }\n received += "n";\n }\n msg += ` It must be ${range}. Received ${received}`;\n return msg;\n }, RangeError);\n function addNumericalSeparator(val) {\n let res = "";\n let i = val.length;\n const start = val[0] === "-" ? 1 : 0;\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`;\n }\n return `${val.slice(0, i)}${res}`;\n }\n function checkBounds(buf2, offset, byteLength2) {\n validateNumber(offset, "offset");\n if (buf2[offset] === void 0 || buf2[offset + byteLength2] === void 0) {\n boundsError(offset, buf2.length - (byteLength2 + 1));\n }\n }\n function checkIntBI(value, min, max, buf2, offset, byteLength2) {\n if (value > max || value < min) {\n const n = typeof min === "bigint" ? "n" : "";\n let range;\n if (byteLength2 > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength2 + 1) * 8}${n}`;\n } else {\n range = `>= -(2${n} ** ${(byteLength2 + 1) * 8 - 1}${n}) and < 2 ** ${(byteLength2 + 1) * 8 - 1}${n}`;\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`;\n }\n throw new errors.ERR_OUT_OF_RANGE("value", range, value);\n }\n checkBounds(buf2, offset, byteLength2);\n }\n function validateNumber(value, name) {\n if (typeof value !== "number") {\n throw new errors.ERR_INVALID_ARG_TYPE(name, "number", value);\n }\n }\n function boundsError(value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type);\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", "an integer", value);\n }\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n }\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", `>= ${type ? 1 : 0} and <= ${length}`, value);\n }\n var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n function base64clean(str) {\n str = str.split("=")[0];\n str = str.trim().replace(INVALID_BASE64_RE, "");\n if (str.length < 2)\n return "";\n while (str.length % 4 !== 0) {\n str = str + "=";\n }\n return str;\n }\n function utf8ToBytes(string, units) {\n units = units || Infinity;\n let codePoint;\n const length = string.length;\n let leadSurrogate = null;\n const bytes = [];\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n if (codePoint > 55295 && codePoint < 57344) {\n if (!leadSurrogate) {\n if (codePoint > 56319) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n }\n leadSurrogate = codePoint;\n continue;\n }\n if (codePoint < 56320) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n }\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n }\n leadSurrogate = null;\n if (codePoint < 128) {\n if ((units -= 1) < 0)\n break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0)\n break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0)\n break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0)\n break;\n bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else {\n throw new Error("Invalid code point");\n }\n }\n return bytes;\n }\n function asciiToBytes(str) {\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n byteArray.push(str.charCodeAt(i) & 255);\n }\n return byteArray;\n }\n function utf16leToBytes(str, units) {\n let c, hi, lo;\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0)\n break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n return byteArray;\n }\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n function blitBuffer(src, dst, offset, length) {\n let i;\n for (i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length)\n break;\n dst[i + offset] = src[i];\n }\n return i;\n }\n function isInstance(obj, type) {\n return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n }\n function numberIsNaN(obj) {\n return obj !== obj;\n }\n var hexSliceLookupTable = function() {\n const alphabet = "0123456789abcdef";\n const table = new Array(256);\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16;\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n return table;\n }();\n function defineBigIntMethod(fn) {\n return typeof BigInt === "undefined" ? BufferBigIntNotDefined : fn;\n }\n function BufferBigIntNotDefined() {\n throw new Error("BigInt not supported");\n }\n }\n});\n\n// esbuild.inject.js\nvar Buffer2;\nvar init_esbuild_inject = __esm({\n "esbuild.inject.js"() {\n "use strict";\n Buffer2 = require_buffer().Buffer;\n }\n});\n\n// node_modules/crc-32/crc32.js\nvar require_crc32 = __commonJS({\n "node_modules/crc-32/crc32.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var CRC32;\n (function(factory) {\n if (typeof DO_NOT_EXPORT_CRC === "undefined") {\n if (typeof exports === "object") {\n factory(exports);\n } else if (typeof define === "function" && define.amd) {\n define(function() {\n var module2 = {};\n factory(module2);\n return module2;\n });\n } else {\n factory(CRC32 = {});\n }\n } else {\n factory(CRC32 = {});\n }\n })(function(CRC322) {\n CRC322.version = "1.2.0";\n function signed_crc_table() {\n var c = 0, table = new Array(256);\n for (var n = 0; n != 256; ++n) {\n c = n;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n table[n] = c;\n }\n return typeof Int32Array !== "undefined" ? new Int32Array(table) : table;\n }\n var T = signed_crc_table();\n function crc32_bstr(bstr, seed) {\n var C = seed ^ -1, L = bstr.length - 1;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n }\n if (i === L)\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i)) & 255];\n return C ^ -1;\n }\n function crc32_buf(buf2, seed) {\n if (buf2.length > 1e4)\n return crc32_buf_8(buf2, seed);\n var C = seed ^ -1, L = buf2.length - 3;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 3)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_buf_8(buf2, seed) {\n var C = seed ^ -1, L = buf2.length - 7;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 7)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_str(str, seed) {\n var C = seed ^ -1;\n for (var i = 0, L = str.length, c, d; i < L; ) {\n c = str.charCodeAt(i++);\n if (c < 128) {\n C = C >>> 8 ^ T[(C ^ c) & 255];\n } else if (c < 2048) {\n C = C >>> 8 ^ T[(C ^ (192 | c >> 6 & 31)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n } else if (c >= 55296 && c < 57344) {\n c = (c & 1023) + 64;\n d = str.charCodeAt(i++) & 1023;\n C = C >>> 8 ^ T[(C ^ (240 | c >> 8 & 7)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 2 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d >> 6 & 15 | (c & 3) << 4)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d & 63)) & 255];\n } else {\n C = C >>> 8 ^ T[(C ^ (224 | c >> 12 & 15)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 6 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n }\n }\n return C ^ -1;\n }\n CRC322.table = T;\n CRC322.bstr = crc32_bstr;\n CRC322.buf = crc32_buf;\n CRC322.str = crc32_str;\n });\n }\n});\n\n// node_modules/events/events.js\nvar require_events = __commonJS({\n "node_modules/events/events.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var R = typeof Reflect === "object" ? Reflect : null;\n var ReflectApply = R && typeof R.apply === "function" ? R.apply : function ReflectApply2(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n };\n var ReflectOwnKeys;\n if (R && typeof R.ownKeys === "function") {\n ReflectOwnKeys = R.ownKeys;\n } else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n } else {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target);\n };\n }\n function ProcessEmitWarning(warning) {\n if (console && console.warn)\n console.warn(warning);\n }\n var NumberIsNaN = Number.isNaN || function NumberIsNaN2(value) {\n return value !== value;\n };\n function EventEmitter() {\n EventEmitter.init.call(this);\n }\n module.exports = EventEmitter;\n module.exports.once = once;\n EventEmitter.EventEmitter = EventEmitter;\n EventEmitter.prototype._events = void 0;\n EventEmitter.prototype._eventsCount = 0;\n EventEmitter.prototype._maxListeners = void 0;\n var defaultMaxListeners = 10;\n function checkListener(listener) {\n if (typeof listener !== "function") {\n throw new TypeError(\'The "listener" argument must be of type Function. Received type \' + typeof listener);\n }\n }\n Object.defineProperty(EventEmitter, "defaultMaxListeners", {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== "number" || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError(\'The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received \' + arg + ".");\n }\n defaultMaxListeners = arg;\n }\n });\n EventEmitter.init = function() {\n if (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n }\n this._maxListeners = this._maxListeners || void 0;\n };\n EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== "number" || n < 0 || NumberIsNaN(n)) {\n throw new RangeError(\'The value of "n" is out of range. It must be a non-negative number. Received \' + n + ".");\n }\n this._maxListeners = n;\n return this;\n };\n function _getMaxListeners(that) {\n if (that._maxListeners === void 0)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n }\n EventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n };\n EventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++)\n args.push(arguments[i]);\n var doError = type === "error";\n var events = this._events;\n if (events !== void 0)\n doError = doError && events.error === void 0;\n else if (!doError)\n return false;\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n throw er;\n }\n var err = new Error("Unhandled error." + (er ? " (" + er.message + ")" : ""));\n err.context = er;\n throw err;\n }\n var handler = events[type];\n if (handler === void 0)\n return false;\n if (typeof handler === "function") {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n return true;\n };\n function _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n if (events === void 0) {\n events = target._events = /* @__PURE__ */ Object.create(null);\n target._eventsCount = 0;\n } else {\n if (events.newListener !== void 0) {\n target.emit("newListener", type, listener.listener ? listener.listener : listener);\n events = target._events;\n }\n existing = events[type];\n }\n if (existing === void 0) {\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === "function") {\n existing = events[type] = prepend ? [listener, existing] : [existing, listener];\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n var w = new Error("Possible EventEmitter memory leak detected. " + existing.length + " " + String(type) + " listeners added. Use emitter.setMaxListeners() to increase limit");\n w.name = "MaxListenersExceededWarning";\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n return target;\n }\n EventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n };\n EventEmitter.prototype.on = EventEmitter.prototype.addListener;\n EventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n function onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n }\n function _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: void 0, target, type, listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n }\n EventEmitter.prototype.once = function once2(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === void 0)\n return this;\n list = events[type];\n if (list === void 0)\n return this;\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit("removeListener", type, list.listener || listener);\n }\n } else if (typeof list !== "function") {\n position = -1;\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n if (position < 0)\n return this;\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n if (list.length === 1)\n events[type] = list[0];\n if (events.removeListener !== void 0)\n this.emit("removeListener", type, originalListener || listener);\n }\n return this;\n };\n EventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === void 0)\n return this;\n if (events.removeListener === void 0) {\n if (arguments.length === 0) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== void 0) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key2;\n for (i = 0; i < keys.length; ++i) {\n key2 = keys[i];\n if (key2 === "removeListener")\n continue;\n this.removeAllListeners(key2);\n }\n this.removeAllListeners("removeListener");\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n listeners = events[type];\n if (typeof listeners === "function") {\n this.removeListener(type, listeners);\n } else if (listeners !== void 0) {\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n return this;\n };\n function _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === void 0)\n return [];\n var evlistener = events[type];\n if (evlistener === void 0)\n return [];\n if (typeof evlistener === "function")\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n }\n EventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n };\n EventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n };\n EventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === "function") {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n };\n EventEmitter.prototype.listenerCount = listenerCount;\n function listenerCount(type) {\n var events = this._events;\n if (events !== void 0) {\n var evlistener = events[type];\n if (typeof evlistener === "function") {\n return 1;\n } else if (evlistener !== void 0) {\n return evlistener.length;\n }\n }\n return 0;\n }\n EventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n };\n function arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n }\n function spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n }\n function unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n }\n function once(emitter, name) {\n return new Promise(function(resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n function resolver() {\n if (typeof emitter.removeListener === "function") {\n emitter.removeListener("error", errorListener);\n }\n resolve([].slice.call(arguments));\n }\n ;\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== "error") {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n }\n function addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === "function") {\n eventTargetAgnosticAddListener(emitter, "error", handler, flags);\n }\n }\n function eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === "function") {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === "function") {\n emitter.addEventListener(name, function wrapListener(arg) {\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError(\'The "emitter" argument must be of type EventEmitter. Received type \' + typeof emitter);\n }\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/stream-browser.js\nvar require_stream_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/stream-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = require_events().EventEmitter;\n }\n});\n\n// (disabled):node_modules/util/util.js\nvar require_util = __commonJS({\n "(disabled):node_modules/util/util.js"() {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/buffer_list.js\nvar require_buffer_list = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/buffer_list.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly)\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n }\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function(key2) {\n _defineProperty(target, key2, source[key2]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key2) {\n Object.defineProperty(target, key2, Object.getOwnPropertyDescriptor(source, key2));\n });\n }\n }\n return target;\n }\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n var _require = require_buffer();\n var Buffer13 = _require.Buffer;\n var _require2 = require_util();\n var inspect = _require2.inspect;\n var custom = inspect && inspect.custom || "inspect";\n function copyBuffer(src, target, offset) {\n Buffer13.prototype.copy.call(src, target, offset);\n }\n module.exports = /* @__PURE__ */ function() {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: "push",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0)\n this.tail.next = entry;\n else\n this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: "unshift",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0)\n this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: "shift",\n value: function shift() {\n if (this.length === 0)\n return;\n var ret = this.head.data;\n if (this.length === 1)\n this.head = this.tail = null;\n else\n this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: "clear",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: "join",\n value: function join(s) {\n if (this.length === 0)\n return "";\n var p = this.head;\n var ret = "" + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }\n return ret;\n }\n }, {\n key: "concat",\n value: function concat(n) {\n if (this.length === 0)\n return Buffer13.alloc(0);\n var ret = Buffer13.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n }, {\n key: "consume",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n ret = this.shift();\n } else {\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: "first",\n value: function first() {\n return this.head.data;\n }\n }, {\n key: "_getString",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length)\n ret += str;\n else\n ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: "_getBuffer",\n value: function _getBuffer(n) {\n var ret = Buffer13.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf2 = p.data;\n var nb = n > buf2.length ? buf2.length : n;\n buf2.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf2.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf2.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n depth: 0,\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n }();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/destroy.js\nvar require_destroy = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/destroy.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function(err2) {\n if (!cb && err2) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n }\n function emitErrorAndCloseNT(self2, err) {\n emitErrorNT(self2, err);\n emitCloseNT(self2);\n }\n function emitCloseNT(self2) {\n if (self2._writableState && !self2._writableState.emitClose)\n return;\n if (self2._readableState && !self2._readableState.emitClose)\n return;\n self2.emit("close");\n }\n function undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n }\n function emitErrorNT(self2, err) {\n self2.emit("error", err);\n }\n function errorOrDestroy(stream, err) {\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy)\n stream.destroy(err);\n else\n stream.emit("error", err);\n }\n module.exports = {\n destroy,\n undestroy,\n errorOrDestroy\n };\n }\n});\n\n// node_modules/readable-stream/errors-browser.js\nvar require_errors_browser = __commonJS({\n "node_modules/readable-stream/errors-browser.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n }\n var codes = {};\n function createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === "string") {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /* @__PURE__ */ function(_Base) {\n _inheritsLoose(NodeError2, _Base);\n function NodeError2(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n return NodeError2;\n }(Base);\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n }\n function oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function(i) {\n return String(i);\n });\n if (len > 2) {\n return "one of ".concat(thing, " ").concat(expected.slice(0, len - 1).join(", "), ", or ") + expected[len - 1];\n } else if (len === 2) {\n return "one of ".concat(thing, " ").concat(expected[0], " or ").concat(expected[1]);\n } else {\n return "of ".concat(thing, " ").concat(expected[0]);\n }\n } else {\n return "of ".concat(thing, " ").concat(String(expected));\n }\n }\n function startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n }\n function endsWith(str, search, this_len) {\n if (this_len === void 0 || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n }\n function includes(str, search, start) {\n if (typeof start !== "number") {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n }\n createErrorType("ERR_INVALID_OPT_VALUE", function(name, value) {\n return \'The value "\' + value + \'" is invalid for option "\' + name + \'"\';\n }, TypeError);\n createErrorType("ERR_INVALID_ARG_TYPE", function(name, expected, actual) {\n var determiner;\n if (typeof expected === "string" && startsWith(expected, "not ")) {\n determiner = "must not be";\n expected = expected.replace(/^not /, "");\n } else {\n determiner = "must be";\n }\n var msg;\n if (endsWith(name, " argument")) {\n msg = "The ".concat(name, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n } else {\n var type = includes(name, ".") ? "property" : "argument";\n msg = \'The "\'.concat(name, \'" \').concat(type, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n }\n msg += ". Received type ".concat(typeof actual);\n return msg;\n }, TypeError);\n createErrorType("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF");\n createErrorType("ERR_METHOD_NOT_IMPLEMENTED", function(name) {\n return "The " + name + " method is not implemented";\n });\n createErrorType("ERR_STREAM_PREMATURE_CLOSE", "Premature close");\n createErrorType("ERR_STREAM_DESTROYED", function(name) {\n return "Cannot call " + name + " after a stream was destroyed";\n });\n createErrorType("ERR_MULTIPLE_CALLBACK", "Callback called multiple times");\n createErrorType("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable");\n createErrorType("ERR_STREAM_WRITE_AFTER_END", "write after end");\n createErrorType("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError);\n createErrorType("ERR_UNKNOWN_ENCODING", function(arg) {\n return "Unknown encoding: " + arg;\n }, TypeError);\n createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event");\n module.exports.codes = codes;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/state.js\nvar require_state = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/state.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_INVALID_OPT_VALUE = require_errors_browser().codes.ERR_INVALID_OPT_VALUE;\n function highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n }\n function getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : "highWaterMark";\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n return state.objectMode ? 16 : 16 * 1024;\n }\n module.exports = {\n getHighWaterMark\n };\n }\n});\n\n// node_modules/inherits/inherits_browser.js\nvar require_inherits_browser = __commonJS({\n "node_modules/inherits/inherits_browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n if (typeof Object.create === "function") {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n } else {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function() {\n };\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n }\n }\n});\n\n// node_modules/util-deprecate/browser.js\nvar require_browser = __commonJS({\n "node_modules/util-deprecate/browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = deprecate;\n function deprecate(fn, msg) {\n if (config("noDeprecation")) {\n return fn;\n }\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config("throwDeprecation")) {\n throw new Error(msg);\n } else if (config("traceDeprecation")) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n }\n function config(name) {\n try {\n if (!self.localStorage)\n return false;\n } catch (_) {\n return false;\n }\n var val = self.localStorage[name];\n if (val == null)\n return false;\n return String(val).toLowerCase() === "true";\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_writable.js\nvar require_stream_writable = __commonJS({\n "node_modules/readable-stream/lib/_stream_writable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Writable;\n function CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function() {\n onCorkedFinish(_this, state);\n };\n }\n var Duplex;\n Writable.WritableState = WritableState;\n var internalUtil = {\n deprecate: require_browser()\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n var ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES;\n var ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END;\n var ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n require_inherits_browser()(Writable, Stream);\n function nop() {\n }\n function WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.writableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "writableHighWaterMark", isDuplex);\n this.finalCalled = false;\n this.needDrain = false;\n this.ending = false;\n this.ended = false;\n this.finished = false;\n this.destroyed = false;\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.length = 0;\n this.writing = false;\n this.corked = 0;\n this.sync = true;\n this.bufferProcessing = false;\n this.onwrite = function(er) {\n onwrite(stream, er);\n };\n this.writecb = null;\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n this.pendingcb = 0;\n this.prefinished = false;\n this.errorEmitted = false;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.bufferedRequestCount = 0;\n this.corkedRequestsFree = new CorkedRequest(this);\n }\n WritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n };\n (function() {\n try {\n Object.defineProperty(WritableState.prototype, "buffer", {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003")\n });\n } catch (_) {\n }\n })();\n var realHasInstance;\n if (typeof Symbol === "function" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === "function") {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object))\n return true;\n if (this !== Writable)\n return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n } else {\n realHasInstance = function realHasInstance2(object) {\n return object instanceof this;\n };\n }\n function Writable(options) {\n Duplex = Duplex || require_stream_duplex();\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this))\n return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n this.writable = true;\n if (options) {\n if (typeof options.write === "function")\n this._write = options.write;\n if (typeof options.writev === "function")\n this._writev = options.writev;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n if (typeof options.final === "function")\n this._final = options.final;\n }\n Stream.call(this);\n }\n Writable.prototype.pipe = function() {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n };\n function writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n }\n function validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== "string" && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer"], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n }\n Writable.prototype.write = function(chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer13.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (isBuf)\n encoding = "buffer";\n else if (!encoding)\n encoding = state.defaultEncoding;\n if (typeof cb !== "function")\n cb = nop;\n if (state.ending)\n writeAfterEnd(this, cb);\n else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n };\n Writable.prototype.cork = function() {\n this._writableState.corked++;\n };\n Writable.prototype.uncork = function() {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest)\n clearBuffer(this, state);\n }\n };\n Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n if (typeof encoding === "string")\n encoding = encoding.toLowerCase();\n if (!(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((encoding + "").toLowerCase()) > -1))\n throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n function decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === "string") {\n chunk = Buffer13.from(chunk, encoding);\n }\n return chunk;\n }\n Object.defineProperty(Writable.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = "buffer";\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n if (!ret)\n state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk,\n encoding,\n isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n }\n function doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed)\n state.onwrite(new ERR_STREAM_DESTROYED("write"));\n else if (writev)\n stream._writev(chunk, state.onwrite);\n else\n stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n }\n function onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n process.nextTick(cb, er);\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n finishMaybe(stream, state);\n }\n }\n function onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n }\n function onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== "function")\n throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er)\n onwriteError(stream, state, sync, er, cb);\n else {\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n }\n function afterWrite(stream, state, finished, cb) {\n if (!finished)\n onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n }\n function onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit("drain");\n }\n }\n function clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf)\n allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, "", holder.finish);\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n if (state.writing) {\n break;\n }\n }\n if (entry === null)\n state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n }\n Writable.prototype._write = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_write()"));\n };\n Writable.prototype._writev = null;\n Writable.prototype.end = function(chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === "function") {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== void 0)\n this.write(chunk, encoding);\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n if (!state.ending)\n endWritable(this, state, cb);\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n }\n function callFinal(stream, state) {\n stream._final(function(err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit("prefinish");\n finishMaybe(stream, state);\n });\n }\n function prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === "function" && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit("prefinish");\n }\n }\n }\n function finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit("finish");\n if (state.autoDestroy) {\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n }\n function endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished)\n process.nextTick(cb);\n else\n stream.once("finish", cb);\n }\n state.ended = true;\n stream.writable = false;\n }\n function onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n state.corkedRequestsFree.next = corkReq;\n }\n Object.defineProperty(Writable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._writableState === void 0) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n if (!this._writableState) {\n return;\n }\n this._writableState.destroyed = value;\n }\n });\n Writable.prototype.destroy = destroyImpl.destroy;\n Writable.prototype._undestroy = destroyImpl.undestroy;\n Writable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_duplex.js\nvar require_stream_duplex = __commonJS({\n "node_modules/readable-stream/lib/_stream_duplex.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var objectKeys = Object.keys || function(obj) {\n var keys2 = [];\n for (var key2 in obj) {\n keys2.push(key2);\n }\n return keys2;\n };\n module.exports = Duplex;\n var Readable = require_stream_readable();\n var Writable = require_stream_writable();\n require_inherits_browser()(Duplex, Readable);\n {\n keys = objectKeys(Writable.prototype);\n for (v = 0; v < keys.length; v++) {\n method = keys[v];\n if (!Duplex.prototype[method])\n Duplex.prototype[method] = Writable.prototype[method];\n }\n }\n var keys;\n var method;\n var v;\n function Duplex(options) {\n if (!(this instanceof Duplex))\n return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false)\n this.readable = false;\n if (options.writable === false)\n this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once("end", onend);\n }\n }\n }\n Object.defineProperty(Duplex.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n Object.defineProperty(Duplex.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n Object.defineProperty(Duplex.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function onend() {\n if (this._writableState.ended)\n return;\n process.nextTick(onEndNT, this);\n }\n function onEndNT(self2) {\n self2.end();\n }\n Object.defineProperty(Duplex.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return;\n }\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n });\n }\n});\n\n// node_modules/safe-buffer/index.js\nvar require_safe_buffer = __commonJS({\n "node_modules/safe-buffer/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var buffer = require_buffer();\n var Buffer13 = buffer.Buffer;\n function copyProps(src, dst) {\n for (var key2 in src) {\n dst[key2] = src[key2];\n }\n }\n if (Buffer13.from && Buffer13.alloc && Buffer13.allocUnsafe && Buffer13.allocUnsafeSlow) {\n module.exports = buffer;\n } else {\n copyProps(buffer, exports);\n exports.Buffer = SafeBuffer;\n }\n function SafeBuffer(arg, encodingOrOffset, length) {\n return Buffer13(arg, encodingOrOffset, length);\n }\n SafeBuffer.prototype = Object.create(Buffer13.prototype);\n copyProps(Buffer13, SafeBuffer);\n SafeBuffer.from = function(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n throw new TypeError("Argument must not be a number");\n }\n return Buffer13(arg, encodingOrOffset, length);\n };\n SafeBuffer.alloc = function(size, fill, encoding) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n var buf2 = Buffer13(size);\n if (fill !== void 0) {\n if (typeof encoding === "string") {\n buf2.fill(fill, encoding);\n } else {\n buf2.fill(fill);\n }\n } else {\n buf2.fill(0);\n }\n return buf2;\n };\n SafeBuffer.allocUnsafe = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return Buffer13(size);\n };\n SafeBuffer.allocUnsafeSlow = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return buffer.SlowBuffer(size);\n };\n }\n});\n\n// node_modules/string_decoder/lib/string_decoder.js\nvar require_string_decoder = __commonJS({\n "node_modules/string_decoder/lib/string_decoder.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var Buffer13 = require_safe_buffer().Buffer;\n var isEncoding = Buffer13.isEncoding || function(encoding) {\n encoding = "" + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n case "raw":\n return true;\n default:\n return false;\n }\n };\n function _normalizeEncoding(enc) {\n if (!enc)\n return "utf8";\n var retried;\n while (true) {\n switch (enc) {\n case "utf8":\n case "utf-8":\n return "utf8";\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return "utf16le";\n case "latin1":\n case "binary":\n return "latin1";\n case "base64":\n case "ascii":\n case "hex":\n return enc;\n default:\n if (retried)\n return;\n enc = ("" + enc).toLowerCase();\n retried = true;\n }\n }\n }\n function normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== "string" && (Buffer13.isEncoding === isEncoding || !isEncoding(enc)))\n throw new Error("Unknown encoding: " + enc);\n return nenc || enc;\n }\n exports.StringDecoder = StringDecoder;\n function StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case "utf16le":\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case "utf8":\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case "base64":\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer13.allocUnsafe(nb);\n }\n StringDecoder.prototype.write = function(buf2) {\n if (buf2.length === 0)\n return "";\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf2);\n if (r === void 0)\n return "";\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf2.length)\n return r ? r + this.text(buf2, i) : this.text(buf2, i);\n return r || "";\n };\n StringDecoder.prototype.end = utf8End;\n StringDecoder.prototype.text = utf8Text;\n StringDecoder.prototype.fillLast = function(buf2) {\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf2.length);\n this.lastNeed -= buf2.length;\n };\n function utf8CheckByte(byte) {\n if (byte <= 127)\n return 0;\n else if (byte >> 5 === 6)\n return 2;\n else if (byte >> 4 === 14)\n return 3;\n else if (byte >> 3 === 30)\n return 4;\n return byte >> 6 === 2 ? -1 : -2;\n }\n function utf8CheckIncomplete(self2, buf2, i) {\n var j = buf2.length - 1;\n if (j < i)\n return 0;\n var nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2)\n nb = 0;\n else\n self2.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n }\n function utf8CheckExtraBytes(self2, buf2, p) {\n if ((buf2[0] & 192) !== 128) {\n self2.lastNeed = 0;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 1 && buf2.length > 1) {\n if ((buf2[1] & 192) !== 128) {\n self2.lastNeed = 1;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 2 && buf2.length > 2) {\n if ((buf2[2] & 192) !== 128) {\n self2.lastNeed = 2;\n return "\\uFFFD";\n }\n }\n }\n }\n function utf8FillLast(buf2) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf2, p);\n if (r !== void 0)\n return r;\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, p, 0, buf2.length);\n this.lastNeed -= buf2.length;\n }\n function utf8Text(buf2, i) {\n var total = utf8CheckIncomplete(this, buf2, i);\n if (!this.lastNeed)\n return buf2.toString("utf8", i);\n this.lastTotal = total;\n var end = buf2.length - (total - this.lastNeed);\n buf2.copy(this.lastChar, 0, end);\n return buf2.toString("utf8", i, end);\n }\n function utf8End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + "\\uFFFD";\n return r;\n }\n function utf16Text(buf2, i) {\n if ((buf2.length - i) % 2 === 0) {\n var r = buf2.toString("utf16le", i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 55296 && c <= 56319) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf2[buf2.length - 1];\n return buf2.toString("utf16le", i, buf2.length - 1);\n }\n function utf16End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString("utf16le", 0, end);\n }\n return r;\n }\n function base64Text(buf2, i) {\n var n = (buf2.length - i) % 3;\n if (n === 0)\n return buf2.toString("base64", i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf2[buf2.length - 1];\n } else {\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n }\n return buf2.toString("base64", i, buf2.length - n);\n }\n function base64End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + this.lastChar.toString("base64", 0, 3 - this.lastNeed);\n return r;\n }\n function simpleWrite(buf2) {\n return buf2.toString(this.encoding);\n }\n function simpleEnd(buf2) {\n return buf2 && buf2.length ? this.write(buf2) : "";\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/end-of-stream.js\nvar require_end_of_stream = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_STREAM_PREMATURE_CLOSE = require_errors_browser().codes.ERR_STREAM_PREMATURE_CLOSE;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n }\n function noop2() {\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function eos(stream, opts, callback) {\n if (typeof opts === "function")\n return eos(stream, null, opts);\n if (!opts)\n opts = {};\n callback = once(callback || noop2);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable2 = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish2() {\n if (!stream.writable)\n onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish2() {\n writable2 = false;\n writableEnded = true;\n if (!readable)\n callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend2() {\n readable = false;\n readableEnded = true;\n if (!writable2)\n callback.call(stream);\n };\n var onerror = function onerror2(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose2() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable2 && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest2() {\n stream.req.on("finish", onfinish);\n };\n if (isRequest(stream)) {\n stream.on("complete", onfinish);\n stream.on("abort", onclose);\n if (stream.req)\n onrequest();\n else\n stream.on("request", onrequest);\n } else if (writable2 && !stream._writableState) {\n stream.on("end", onlegacyfinish);\n stream.on("close", onlegacyfinish);\n }\n stream.on("end", onend);\n stream.on("finish", onfinish);\n if (opts.error !== false)\n stream.on("error", onerror);\n stream.on("close", onclose);\n return function() {\n stream.removeListener("complete", onfinish);\n stream.removeListener("abort", onclose);\n stream.removeListener("request", onrequest);\n if (stream.req)\n stream.req.removeListener("finish", onfinish);\n stream.removeListener("end", onlegacyfinish);\n stream.removeListener("close", onlegacyfinish);\n stream.removeListener("finish", onfinish);\n stream.removeListener("end", onend);\n stream.removeListener("error", onerror);\n stream.removeListener("close", onclose);\n };\n }\n module.exports = eos;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/async_iterator.js\nvar require_async_iterator = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/async_iterator.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var _Object$setPrototypeO;\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n var finished = require_end_of_stream();\n var kLastResolve = Symbol("lastResolve");\n var kLastReject = Symbol("lastReject");\n var kError = Symbol("error");\n var kEnded = Symbol("ended");\n var kLastPromise = Symbol("lastPromise");\n var kHandlePromise = Symbol("handlePromise");\n var kStream = Symbol("stream");\n function createIterResult(value, done) {\n return {\n value,\n done\n };\n }\n function readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n }\n function onReadable(iter) {\n process.nextTick(readAndResolve, iter);\n }\n function wrapForNext(lastPromise, iter) {\n return function(resolve, reject) {\n lastPromise.then(function() {\n if (iter[kEnded]) {\n resolve(createIterResult(void 0, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n }\n var AsyncIteratorPrototype = Object.getPrototypeOf(function() {\n });\n var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(void 0, true));\n }\n if (this[kStream].destroyed) {\n return new Promise(function(resolve, reject) {\n process.nextTick(function() {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(void 0, true));\n }\n });\n });\n }\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n }, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function() {\n return this;\n }), _defineProperty(_Object$setPrototypeO, "return", function _return() {\n var _this2 = this;\n return new Promise(function(resolve, reject) {\n _this2[kStream].destroy(null, function(err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(void 0, true));\n });\n });\n }), _Object$setPrototypeO), AsyncIteratorPrototype);\n var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator2(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function(err) {\n if (err && err.code !== "ERR_STREAM_PREMATURE_CLOSE") {\n var reject = iterator[kLastReject];\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(void 0, true));\n }\n iterator[kEnded] = true;\n });\n stream.on("readable", onReadable.bind(null, iterator));\n return iterator;\n };\n module.exports = createReadableStreamAsyncIterator;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/from-browser.js\nvar require_from_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/from-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = function() {\n throw new Error("Readable.from is not available in the browser");\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_readable.js\nvar require_stream_readable = __commonJS({\n "node_modules/readable-stream/lib/_stream_readable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Readable;\n var Duplex;\n Readable.ReadableState = ReadableState;\n var EE = require_events().EventEmitter;\n var EElistenerCount = function EElistenerCount2(emitter, type) {\n return emitter.listeners(type).length;\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var debugUtil = require_util();\n var debug;\n if (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog("stream");\n } else {\n debug = function debug2() {\n };\n }\n var BufferList = require_buffer_list();\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n var StringDecoder;\n var createReadableStreamAsyncIterator;\n var from;\n require_inherits_browser()(Readable, Stream);\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n var kProxyEvents = ["error", "close", "destroy", "pause", "resume"];\n function prependListener(emitter, event, fn) {\n if (typeof emitter.prependListener === "function")\n return emitter.prependListener(event, fn);\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n function ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.readableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "readableHighWaterMark", isDuplex);\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n this.sync = true;\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.destroyed = false;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.awaitDrain = 0;\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n }\n function Readable(options) {\n Duplex = Duplex || require_stream_duplex();\n if (!(this instanceof Readable))\n return new Readable(options);\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n this.readable = true;\n if (options) {\n if (typeof options.read === "function")\n this._read = options.read;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n }\n Stream.call(this);\n }\n Object.defineProperty(Readable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n if (!this._readableState) {\n return;\n }\n this._readableState.destroyed = value;\n }\n });\n Readable.prototype.destroy = destroyImpl.destroy;\n Readable.prototype._undestroy = destroyImpl.undestroy;\n Readable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n Readable.prototype.push = function(chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === "string") {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer13.from(chunk, encoding);\n encoding = "";\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n };\n Readable.prototype.unshift = function(chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n };\n function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug("readableAddChunk", chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck)\n er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== "string" && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer13.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted)\n errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());\n else\n addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0)\n addChunk(stream, state, chunk, false);\n else\n maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n }\n function addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit("data", chunk);\n } else {\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront)\n state.buffer.unshift(chunk);\n else\n state.buffer.push(chunk);\n if (state.needReadable)\n emitReadable(stream);\n }\n maybeReadMore(stream, state);\n }\n function chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== "string" && chunk !== void 0 && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer", "Uint8Array"], chunk);\n }\n return er;\n }\n Readable.prototype.isPaused = function() {\n return this._readableState.flowing === false;\n };\n Readable.prototype.setEncoding = function(enc) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n this._readableState.encoding = this._readableState.decoder.encoding;\n var p = this._readableState.buffer.head;\n var content = "";\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== "")\n this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n };\n var MAX_HWM = 1073741824;\n function computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n }\n function howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended)\n return 0;\n if (state.objectMode)\n return 1;\n if (n !== n) {\n if (state.flowing && state.length)\n return state.buffer.head.data.length;\n else\n return state.length;\n }\n if (n > state.highWaterMark)\n state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length)\n return n;\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n }\n Readable.prototype.read = function(n) {\n debug("read", n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0)\n state.emittedReadable = false;\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug("read: emitReadable", state.length, state.ended);\n if (state.length === 0 && state.ended)\n endReadable(this);\n else\n emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n if (n === 0 && state.ended) {\n if (state.length === 0)\n endReadable(this);\n return null;\n }\n var doRead = state.needReadable;\n debug("need readable", doRead);\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug("length less than watermark", doRead);\n }\n if (state.ended || state.reading) {\n doRead = false;\n debug("reading or ended", doRead);\n } else if (doRead) {\n debug("do read");\n state.reading = true;\n state.sync = true;\n if (state.length === 0)\n state.needReadable = true;\n this._read(state.highWaterMark);\n state.sync = false;\n if (!state.reading)\n n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0)\n ret = fromList(n, state);\n else\n ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n if (!state.ended)\n state.needReadable = true;\n if (nOrig !== n && state.ended)\n endReadable(this);\n }\n if (ret !== null)\n this.emit("data", ret);\n return ret;\n };\n function onEofChunk(stream, state) {\n debug("onEofChunk");\n if (state.ended)\n return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n emitReadable(stream);\n } else {\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n }\n function emitReadable(stream) {\n var state = stream._readableState;\n debug("emitReadable", state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug("emitReadable", state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n }\n function emitReadable_(stream) {\n var state = stream._readableState;\n debug("emitReadable_", state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit("readable");\n state.emittedReadable = false;\n }\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n }\n function maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n }\n function maybeReadMore_(stream, state) {\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug("maybeReadMore read 0");\n stream.read(0);\n if (len === state.length)\n break;\n }\n state.readingMore = false;\n }\n Readable.prototype._read = function(n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED("_read()"));\n };\n Readable.prototype.pipe = function(dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug("pipe count=%d opts=%j", state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted)\n process.nextTick(endFn);\n else\n src.once("end", endFn);\n dest.on("unpipe", onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug("onunpipe");\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug("onend");\n dest.end();\n }\n var ondrain = pipeOnDrain(src);\n dest.on("drain", ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug("cleanup");\n dest.removeListener("close", onclose);\n dest.removeListener("finish", onfinish);\n dest.removeListener("drain", ondrain);\n dest.removeListener("error", onerror);\n dest.removeListener("unpipe", onunpipe);\n src.removeListener("end", onend);\n src.removeListener("end", unpipe);\n src.removeListener("data", ondata);\n cleanedUp = true;\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain))\n ondrain();\n }\n src.on("data", ondata);\n function ondata(chunk) {\n debug("ondata");\n var ret = dest.write(chunk);\n debug("dest.write", ret);\n if (ret === false) {\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug("false write response, pause", state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n function onerror(er) {\n debug("onerror", er);\n unpipe();\n dest.removeListener("error", onerror);\n if (EElistenerCount(dest, "error") === 0)\n errorOrDestroy(dest, er);\n }\n prependListener(dest, "error", onerror);\n function onclose() {\n dest.removeListener("finish", onfinish);\n unpipe();\n }\n dest.once("close", onclose);\n function onfinish() {\n debug("onfinish");\n dest.removeListener("close", onclose);\n unpipe();\n }\n dest.once("finish", onfinish);\n function unpipe() {\n debug("unpipe");\n src.unpipe(dest);\n }\n dest.emit("pipe", src);\n if (!state.flowing) {\n debug("pipe resume");\n src.resume();\n }\n return dest;\n };\n function pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug("pipeOnDrain", state.awaitDrain);\n if (state.awaitDrain)\n state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, "data")) {\n state.flowing = true;\n flow(src);\n }\n };\n }\n Readable.prototype.unpipe = function(dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n if (state.pipesCount === 0)\n return this;\n if (state.pipesCount === 1) {\n if (dest && dest !== state.pipes)\n return this;\n if (!dest)\n dest = state.pipes;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest)\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n }\n if (!dest) {\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) {\n dests[i].emit("unpipe", this, {\n hasUnpiped: false\n });\n }\n return this;\n }\n var index = indexOf(state.pipes, dest);\n if (index === -1)\n return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1)\n state.pipes = state.pipes[0];\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n };\n Readable.prototype.on = function(ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === "data") {\n state.readableListening = this.listenerCount("readable") > 0;\n if (state.flowing !== false)\n this.resume();\n } else if (ev === "readable") {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug("on readable", state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n };\n Readable.prototype.addListener = Readable.prototype.on;\n Readable.prototype.removeListener = function(ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === "readable") {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n Readable.prototype.removeAllListeners = function(ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === "readable" || ev === void 0) {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n function updateReadableListening(self2) {\n var state = self2._readableState;\n state.readableListening = self2.listenerCount("readable") > 0;\n if (state.resumeScheduled && !state.paused) {\n state.flowing = true;\n } else if (self2.listenerCount("data") > 0) {\n self2.resume();\n }\n }\n function nReadingNextTick(self2) {\n debug("readable nexttick read 0");\n self2.read(0);\n }\n Readable.prototype.resume = function() {\n var state = this._readableState;\n if (!state.flowing) {\n debug("resume");\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n };\n function resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n }\n function resume_(stream, state) {\n debug("resume", state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit("resume");\n flow(stream);\n if (state.flowing && !state.reading)\n stream.read(0);\n }\n Readable.prototype.pause = function() {\n debug("call pause flowing=%j", this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug("pause");\n this._readableState.flowing = false;\n this.emit("pause");\n }\n this._readableState.paused = true;\n return this;\n };\n function flow(stream) {\n var state = stream._readableState;\n debug("flow", state.flowing);\n while (state.flowing && stream.read() !== null) {\n ;\n }\n }\n Readable.prototype.wrap = function(stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on("end", function() {\n debug("wrapped end");\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length)\n _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on("data", function(chunk) {\n debug("wrapped data");\n if (state.decoder)\n chunk = state.decoder.write(chunk);\n if (state.objectMode && (chunk === null || chunk === void 0))\n return;\n else if (!state.objectMode && (!chunk || !chunk.length))\n return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n for (var i in stream) {\n if (this[i] === void 0 && typeof stream[i] === "function") {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n this._read = function(n2) {\n debug("wrapped _read", n2);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n };\n if (typeof Symbol === "function") {\n Readable.prototype[Symbol.asyncIterator] = function() {\n if (createReadableStreamAsyncIterator === void 0) {\n createReadableStreamAsyncIterator = require_async_iterator();\n }\n return createReadableStreamAsyncIterator(this);\n };\n }\n Object.defineProperty(Readable.prototype, "readableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n });\n Object.defineProperty(Readable.prototype, "readableBuffer", {\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n });\n Object.defineProperty(Readable.prototype, "readableFlowing", {\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n });\n Readable._fromList = fromList;\n Object.defineProperty(Readable.prototype, "readableLength", {\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n });\n function fromList(n, state) {\n if (state.length === 0)\n return null;\n var ret;\n if (state.objectMode)\n ret = state.buffer.shift();\n else if (!n || n >= state.length) {\n if (state.decoder)\n ret = state.buffer.join("");\n else if (state.buffer.length === 1)\n ret = state.buffer.first();\n else\n ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n }\n function endReadable(stream) {\n var state = stream._readableState;\n debug("endReadable", state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n }\n function endReadableNT(state, stream) {\n debug("endReadableNT", state.endEmitted, state.length);\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit("end");\n if (state.autoDestroy) {\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n }\n if (typeof Symbol === "function") {\n Readable.from = function(iterable, opts) {\n if (from === void 0) {\n from = require_from_browser();\n }\n return from(Readable, iterable, opts);\n };\n }\n function indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x)\n return i;\n }\n return -1;\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_transform.js\nvar require_stream_transform = __commonJS({\n "node_modules/readable-stream/lib/_stream_transform.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Transform;\n var _require$codes = require_errors_browser().codes;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING;\n var ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n var Duplex = require_stream_duplex();\n require_inherits_browser()(Transform, Duplex);\n function afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit("error", new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n }\n function Transform(options) {\n if (!(this instanceof Transform))\n return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n this._readableState.needReadable = true;\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === "function")\n this._transform = options.transform;\n if (typeof options.flush === "function")\n this._flush = options.flush;\n }\n this.on("prefinish", prefinish);\n }\n function prefinish() {\n var _this = this;\n if (typeof this._flush === "function" && !this._readableState.destroyed) {\n this._flush(function(er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n }\n Transform.prototype.push = function(chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n };\n Transform.prototype._transform = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_transform()"));\n };\n Transform.prototype._write = function(chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark)\n this._read(rs.highWaterMark);\n }\n };\n Transform.prototype._read = function(n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n ts.needTransform = true;\n }\n };\n Transform.prototype._destroy = function(err, cb) {\n Duplex.prototype._destroy.call(this, err, function(err2) {\n cb(err2);\n });\n };\n function done(stream, er, data) {\n if (er)\n return stream.emit("error", er);\n if (data != null)\n stream.push(data);\n if (stream._writableState.length)\n throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming)\n throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_passthrough.js\nvar require_stream_passthrough = __commonJS({\n "node_modules/readable-stream/lib/_stream_passthrough.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = PassThrough;\n var Transform = require_stream_transform();\n require_inherits_browser()(PassThrough, Transform);\n function PassThrough(options) {\n if (!(this instanceof PassThrough))\n return new PassThrough(options);\n Transform.call(this, options);\n }\n PassThrough.prototype._transform = function(chunk, encoding, cb) {\n cb(null, chunk);\n };\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/pipeline.js\nvar require_pipeline = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/pipeline.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var eos;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n callback.apply(void 0, arguments);\n };\n }\n var _require$codes = require_errors_browser().codes;\n var ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n function noop2(err) {\n if (err)\n throw err;\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on("close", function() {\n closed = true;\n });\n if (eos === void 0)\n eos = require_end_of_stream();\n eos(stream, {\n readable: reading,\n writable: writing\n }, function(err) {\n if (err)\n return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function(err) {\n if (closed)\n return;\n if (destroyed)\n return;\n destroyed = true;\n if (isRequest(stream))\n return stream.abort();\n if (typeof stream.destroy === "function")\n return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED("pipe"));\n };\n }\n function call(fn) {\n fn();\n }\n function pipe(from, to) {\n return from.pipe(to);\n }\n function popCallback(streams) {\n if (!streams.length)\n return noop2;\n if (typeof streams[streams.length - 1] !== "function")\n return noop2;\n return streams.pop();\n }\n function pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0]))\n streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS("streams");\n }\n var error;\n var destroys = streams.map(function(stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function(err) {\n if (!error)\n error = err;\n if (err)\n destroys.forEach(call);\n if (reading)\n return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n }\n module.exports = pipeline;\n }\n});\n\n// node_modules/readable-stream/readable-browser.js\nvar require_readable_browser = __commonJS({\n "node_modules/readable-stream/readable-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports = module.exports = require_stream_readable();\n exports.Stream = exports;\n exports.Readable = exports;\n exports.Writable = require_stream_writable();\n exports.Duplex = require_stream_duplex();\n exports.Transform = require_stream_transform();\n exports.PassThrough = require_stream_passthrough();\n exports.finished = require_end_of_stream();\n exports.pipeline = require_pipeline();\n }\n});\n\n// node_modules/readable-web-to-node-stream/lib/index.js\nvar require_lib = __commonJS({\n "node_modules/readable-web-to-node-stream/lib/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n Object.defineProperty(exports, "__esModule", { value: true });\n exports.ReadableWebToNodeStream = void 0;\n var readable_stream_1 = require_readable_browser();\n var ReadableWebToNodeStream2 = class extends readable_stream_1.Readable {\n constructor(stream) {\n super();\n this.bytesRead = 0;\n this.released = false;\n this.reader = stream.getReader();\n }\n async _read() {\n if (this.released) {\n this.push(null);\n return;\n }\n this.pendingRead = this.reader.read();\n const data = await this.pendingRead;\n delete this.pendingRead;\n if (data.done || this.released) {\n this.push(null);\n } else {\n this.bytesRead += data.value.length;\n this.push(data.value);\n }\n }\n async waitForReadToComplete() {\n if (this.pendingRead) {\n await this.pendingRead;\n }\n }\n async close() {\n await this.syncAndRelease();\n }\n async syncAndRelease() {\n this.released = true;\n await this.waitForReadToComplete();\n await this.reader.releaseLock();\n }\n };\n exports.ReadableWebToNodeStream = ReadableWebToNodeStream2;\n }\n});\n\n// node_modules/base-x/src/index.js\nvar require_src = __commonJS({\n "node_modules/base-x/src/index.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function base(ALPHABET) {\n if (ALPHABET.length >= 255) {\n throw new TypeError("Alphabet too long");\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + " is ambiguous");\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode2(source) {\n if (source instanceof Uint8Array) {\n } else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError("Expected Uint8Array");\n }\n if (source.length === 0) {\n return "";\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i2 = 0;\n for (var it1 = size - 1; (carry !== 0 || i2 < length) && it1 !== -1; it1--, i2++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== "string") {\n throw new TypeError("Expected String");\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i2 = 0;\n for (var it3 = size - 1; (carry !== 0 || i2 < length) && it3 !== -1; it3--, i2++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n psz++;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j2 = zeroes;\n while (it4 !== size) {\n vch[j2++] = b256[it4++];\n }\n return vch;\n }\n function decode3(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error("Non-base" + BASE + " character");\n }\n return {\n encode: encode2,\n decodeUnsafe,\n decode: decode3\n };\n }\n module.exports = base;\n }\n});\n\n// node_modules/bs58/index.js\nvar require_bs58 = __commonJS({\n "node_modules/bs58/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var basex = require_src();\n var ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";\n module.exports = basex(ALPHABET);\n }\n});\n\n// node_modules/jpeg-js/lib/encoder.js\nvar require_encoder = __commonJS({\n "node_modules/jpeg-js/lib/encoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var btoa = btoa || function(buf2) {\n return Buffer2.from(buf2).toString("base64");\n };\n function JPEGEncoder(quality) {\n var self2 = this;\n var fround = Math.round;\n var ffloor = Math.floor;\n var YTable = new Array(64);\n var UVTable = new Array(64);\n var fdtbl_Y = new Array(64);\n var fdtbl_UV = new Array(64);\n var YDC_HT2;\n var UVDC_HT2;\n var YAC_HT2;\n var UVAC_HT2;\n var bitcode2 = new Array(65535);\n var category2 = new Array(65535);\n var outputfDCTQuant = new Array(64);\n var DU = new Array(64);\n var byteout = [];\n var bytenew = 0;\n var bytepos = 7;\n var YDU = new Array(64);\n var UDU = new Array(64);\n var VDU = new Array(64);\n var clt = new Array(256);\n var RGB_YUV_TABLE = new Array(2048);\n var currentQuality;\n var ZigZag = [\n 0,\n 1,\n 5,\n 6,\n 14,\n 15,\n 27,\n 28,\n 2,\n 4,\n 7,\n 13,\n 16,\n 26,\n 29,\n 42,\n 3,\n 8,\n 12,\n 17,\n 25,\n 30,\n 41,\n 43,\n 9,\n 11,\n 18,\n 24,\n 31,\n 40,\n 44,\n 53,\n 10,\n 19,\n 23,\n 32,\n 39,\n 45,\n 52,\n 54,\n 20,\n 22,\n 33,\n 38,\n 46,\n 51,\n 55,\n 60,\n 21,\n 34,\n 37,\n 47,\n 50,\n 56,\n 59,\n 61,\n 35,\n 36,\n 48,\n 49,\n 57,\n 58,\n 62,\n 63\n ];\n var std_dc_luminance_nrcodes2 = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\n var std_dc_luminance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_luminance_nrcodes2 = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\n var std_ac_luminance_values2 = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n var std_dc_chrominance_nrcodes2 = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\n var std_dc_chrominance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_chrominance_nrcodes2 = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\n var std_ac_chrominance_values2 = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n function initQuantTables(sf) {\n var YQT = [\n 16,\n 11,\n 10,\n 16,\n 24,\n 40,\n 51,\n 61,\n 12,\n 12,\n 14,\n 19,\n 26,\n 58,\n 60,\n 55,\n 14,\n 13,\n 16,\n 24,\n 40,\n 57,\n 69,\n 56,\n 14,\n 17,\n 22,\n 29,\n 51,\n 87,\n 80,\n 62,\n 18,\n 22,\n 37,\n 56,\n 68,\n 109,\n 103,\n 77,\n 24,\n 35,\n 55,\n 64,\n 81,\n 104,\n 113,\n 92,\n 49,\n 64,\n 78,\n 87,\n 103,\n 121,\n 120,\n 101,\n 72,\n 92,\n 95,\n 98,\n 112,\n 100,\n 103,\n 99\n ];\n for (var i = 0; i < 64; i++) {\n var t = ffloor((YQT[i] * sf + 50) / 100);\n if (t < 1) {\n t = 1;\n } else if (t > 255) {\n t = 255;\n }\n YTable[ZigZag[i]] = t;\n }\n var UVQT = [\n 17,\n 18,\n 24,\n 47,\n 99,\n 99,\n 99,\n 99,\n 18,\n 21,\n 26,\n 66,\n 99,\n 99,\n 99,\n 99,\n 24,\n 26,\n 56,\n 99,\n 99,\n 99,\n 99,\n 99,\n 47,\n 66,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99\n ];\n for (var j = 0; j < 64; j++) {\n var u = ffloor((UVQT[j] * sf + 50) / 100);\n if (u < 1) {\n u = 1;\n } else if (u > 255) {\n u = 255;\n }\n UVTable[ZigZag[j]] = u;\n }\n var aasf = [\n 1,\n 1.387039845,\n 1.306562965,\n 1.175875602,\n 1,\n 0.785694958,\n 0.5411961,\n 0.275899379\n ];\n var k = 0;\n for (var row = 0; row < 8; row++) {\n for (var col = 0; col < 8; col++) {\n fdtbl_Y[k] = 1 / (YTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n fdtbl_UV[k] = 1 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n k++;\n }\n }\n }\n function computeHuffmanTbl(nrcodes, std_table) {\n var codevalue = 0;\n var pos_in_table = 0;\n var HT = new Array();\n for (var k = 1; k <= 16; k++) {\n for (var j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n function initHuffmanTbl() {\n YDC_HT2 = computeHuffmanTbl(std_dc_luminance_nrcodes2, std_dc_luminance_values2);\n UVDC_HT2 = computeHuffmanTbl(std_dc_chrominance_nrcodes2, std_dc_chrominance_values2);\n YAC_HT2 = computeHuffmanTbl(std_ac_luminance_nrcodes2, std_ac_luminance_values2);\n UVAC_HT2 = computeHuffmanTbl(std_ac_chrominance_nrcodes2, std_ac_chrominance_values2);\n }\n function initCategoryNumber() {\n var nrlower = 1;\n var nrupper = 2;\n for (var cat = 1; cat <= 15; cat++) {\n for (var nr = nrlower; nr < nrupper; nr++) {\n category2[32767 + nr] = cat;\n bitcode2[32767 + nr] = [];\n bitcode2[32767 + nr][1] = cat;\n bitcode2[32767 + nr][0] = nr;\n }\n for (var nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category2[32767 + nrneg] = cat;\n bitcode2[32767 + nrneg] = [];\n bitcode2[32767 + nrneg][1] = cat;\n bitcode2[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n }\n function initRGBYUVTable() {\n for (var i = 0; i < 256; i++) {\n RGB_YUV_TABLE[i] = 19595 * i;\n RGB_YUV_TABLE[i + 256 >> 0] = 38470 * i;\n RGB_YUV_TABLE[i + 512 >> 0] = 7471 * i + 32768;\n RGB_YUV_TABLE[i + 768 >> 0] = -11059 * i;\n RGB_YUV_TABLE[i + 1024 >> 0] = -21709 * i;\n RGB_YUV_TABLE[i + 1280 >> 0] = 32768 * i + 8421375;\n RGB_YUV_TABLE[i + 1536 >> 0] = -27439 * i;\n RGB_YUV_TABLE[i + 1792 >> 0] = -5329 * i;\n }\n }\n function writeBits(bs) {\n var value = bs[0];\n var posval = bs[1] - 1;\n while (posval >= 0) {\n if (value & 1 << posval) {\n bytenew |= 1 << bytepos;\n }\n posval--;\n bytepos--;\n if (bytepos < 0) {\n if (bytenew == 255) {\n writeByte(255);\n writeByte(0);\n } else {\n writeByte(bytenew);\n }\n bytepos = 7;\n bytenew = 0;\n }\n }\n }\n function writeByte(value) {\n byteout.push(value);\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function fDCTQuant(data, fdtbl) {\n var d0, d1, d2, d3, d4, d5, d6, d7;\n var dataOff = 0;\n var i;\n var I8 = 8;\n var I64 = 64;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 1];\n d2 = data[dataOff + 2];\n d3 = data[dataOff + 3];\n d4 = data[dataOff + 4];\n d5 = data[dataOff + 5];\n d6 = data[dataOff + 6];\n d7 = data[dataOff + 7];\n var tmp0 = d0 + d7;\n var tmp7 = d0 - d7;\n var tmp1 = d1 + d6;\n var tmp6 = d1 - d6;\n var tmp2 = d2 + d5;\n var tmp5 = d2 - d5;\n var tmp3 = d3 + d4;\n var tmp4 = d3 - d4;\n var tmp10 = tmp0 + tmp3;\n var tmp13 = tmp0 - tmp3;\n var tmp11 = tmp1 + tmp2;\n var tmp12 = tmp1 - tmp2;\n data[dataOff] = tmp10 + tmp11;\n data[dataOff + 4] = tmp10 - tmp11;\n var z1 = (tmp12 + tmp13) * 0.707106781;\n data[dataOff + 2] = tmp13 + z1;\n data[dataOff + 6] = tmp13 - z1;\n tmp10 = tmp4 + tmp5;\n tmp11 = tmp5 + tmp6;\n tmp12 = tmp6 + tmp7;\n var z5 = (tmp10 - tmp12) * 0.382683433;\n var z2 = 0.5411961 * tmp10 + z5;\n var z4 = 1.306562965 * tmp12 + z5;\n var z3 = tmp11 * 0.707106781;\n var z11 = tmp7 + z3;\n var z13 = tmp7 - z3;\n data[dataOff + 5] = z13 + z2;\n data[dataOff + 3] = z13 - z2;\n data[dataOff + 1] = z11 + z4;\n data[dataOff + 7] = z11 - z4;\n dataOff += 8;\n }\n dataOff = 0;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 8];\n d2 = data[dataOff + 16];\n d3 = data[dataOff + 24];\n d4 = data[dataOff + 32];\n d5 = data[dataOff + 40];\n d6 = data[dataOff + 48];\n d7 = data[dataOff + 56];\n var tmp0p2 = d0 + d7;\n var tmp7p2 = d0 - d7;\n var tmp1p2 = d1 + d6;\n var tmp6p2 = d1 - d6;\n var tmp2p2 = d2 + d5;\n var tmp5p2 = d2 - d5;\n var tmp3p2 = d3 + d4;\n var tmp4p2 = d3 - d4;\n var tmp10p2 = tmp0p2 + tmp3p2;\n var tmp13p2 = tmp0p2 - tmp3p2;\n var tmp11p2 = tmp1p2 + tmp2p2;\n var tmp12p2 = tmp1p2 - tmp2p2;\n data[dataOff] = tmp10p2 + tmp11p2;\n data[dataOff + 32] = tmp10p2 - tmp11p2;\n var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781;\n data[dataOff + 16] = tmp13p2 + z1p2;\n data[dataOff + 48] = tmp13p2 - z1p2;\n tmp10p2 = tmp4p2 + tmp5p2;\n tmp11p2 = tmp5p2 + tmp6p2;\n tmp12p2 = tmp6p2 + tmp7p2;\n var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433;\n var z2p2 = 0.5411961 * tmp10p2 + z5p2;\n var z4p2 = 1.306562965 * tmp12p2 + z5p2;\n var z3p2 = tmp11p2 * 0.707106781;\n var z11p2 = tmp7p2 + z3p2;\n var z13p2 = tmp7p2 - z3p2;\n data[dataOff + 40] = z13p2 + z2p2;\n data[dataOff + 24] = z13p2 - z2p2;\n data[dataOff + 8] = z11p2 + z4p2;\n data[dataOff + 56] = z11p2 - z4p2;\n dataOff++;\n }\n var fDCTQuant2;\n for (i = 0; i < I64; ++i) {\n fDCTQuant2 = data[i] * fdtbl[i];\n outputfDCTQuant[i] = fDCTQuant2 > 0 ? fDCTQuant2 + 0.5 | 0 : fDCTQuant2 - 0.5 | 0;\n }\n return outputfDCTQuant;\n }\n function writeAPP0() {\n writeWord(65504);\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n }\n function writeAPP1(exifBuffer) {\n if (!exifBuffer)\n return;\n writeWord(65505);\n if (exifBuffer[0] === 69 && exifBuffer[1] === 120 && exifBuffer[2] === 105 && exifBuffer[3] === 102) {\n writeWord(exifBuffer.length + 2);\n } else {\n writeWord(exifBuffer.length + 5 + 2);\n writeByte(69);\n writeByte(120);\n writeByte(105);\n writeByte(102);\n writeByte(0);\n }\n for (var i = 0; i < exifBuffer.length; i++) {\n writeByte(exifBuffer[i]);\n }\n }\n function writeSOF0(width, height) {\n writeWord(65472);\n writeWord(17);\n writeByte(8);\n writeWord(height);\n writeWord(width);\n writeByte(3);\n writeByte(1);\n writeByte(17);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(1);\n writeByte(3);\n writeByte(17);\n writeByte(1);\n }\n function writeDQT() {\n writeWord(65499);\n writeWord(132);\n writeByte(0);\n for (var i = 0; i < 64; i++) {\n writeByte(YTable[i]);\n }\n writeByte(1);\n for (var j = 0; j < 64; j++) {\n writeByte(UVTable[j]);\n }\n }\n function writeDHT() {\n writeWord(65476);\n writeWord(418);\n writeByte(0);\n for (var i = 0; i < 16; i++) {\n writeByte(std_dc_luminance_nrcodes2[i + 1]);\n }\n for (var j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values2[j]);\n }\n writeByte(16);\n for (var k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes2[k + 1]);\n }\n for (var l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values2[l]);\n }\n writeByte(1);\n for (var m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes2[m + 1]);\n }\n for (var n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values2[n]);\n }\n writeByte(17);\n for (var o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes2[o + 1]);\n }\n for (var p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values2[p]);\n }\n }\n function writeCOM(comments) {\n if (typeof comments === "undefined" || comments.constructor !== Array)\n return;\n comments.forEach((e) => {\n if (typeof e !== "string")\n return;\n writeWord(65534);\n var l = e.length;\n writeWord(l + 2);\n var i;\n for (i = 0; i < l; i++)\n writeByte(e.charCodeAt(i));\n });\n }\n function writeSOS() {\n writeWord(65498);\n writeWord(12);\n writeByte(3);\n writeByte(1);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(3);\n writeByte(17);\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(CDU, fdtbl, DC, HTDC, HTAC) {\n var EOB = HTAC[0];\n var M16zeroes = HTAC[240];\n var pos;\n var I16 = 16;\n var I63 = 63;\n var I64 = 64;\n var DU_DCT = fDCTQuant(CDU, fdtbl);\n for (var j = 0; j < I64; ++j) {\n DU[ZigZag[j]] = DU_DCT[j];\n }\n var Diff = DU[0] - DC;\n DC = DU[0];\n if (Diff == 0) {\n writeBits(HTDC[0]);\n } else {\n pos = 32767 + Diff;\n writeBits(HTDC[category2[pos]]);\n writeBits(bitcode2[pos]);\n }\n var end0pos = 63;\n for (; end0pos > 0 && DU[end0pos] == 0; end0pos--) {\n }\n ;\n if (end0pos == 0) {\n writeBits(EOB);\n return DC;\n }\n var i = 1;\n var lng;\n while (i <= end0pos) {\n var startpos = i;\n for (; DU[i] == 0 && i <= end0pos; ++i) {\n }\n var nrzeroes = i - startpos;\n if (nrzeroes >= I16) {\n lng = nrzeroes >> 4;\n for (var nrmarker = 1; nrmarker <= lng; ++nrmarker)\n writeBits(M16zeroes);\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + DU[i];\n writeBits(HTAC[(nrzeroes << 4) + category2[pos]]);\n writeBits(bitcode2[pos]);\n i++;\n }\n if (end0pos != I63) {\n writeBits(EOB);\n }\n return DC;\n }\n function initCharLookupTable() {\n var sfcc = String.fromCharCode;\n for (var i = 0; i < 256; i++) {\n clt[i] = sfcc(i);\n }\n }\n this.encode = function(image, quality2) {\n var time_start = new Date().getTime();\n if (quality2)\n setQuality(quality2);\n byteout = new Array();\n bytenew = 0;\n bytepos = 7;\n writeWord(65496);\n writeAPP0();\n writeCOM(image.comments);\n writeAPP1(image.exifBuffer);\n writeDQT();\n writeSOF0(image.width, image.height);\n writeDHT();\n writeSOS();\n var DCY = 0;\n var DCU = 0;\n var DCV = 0;\n bytenew = 0;\n bytepos = 7;\n this.encode.displayName = "_encode_";\n var imageData = image.data;\n var width = image.width;\n var height = image.height;\n var quadWidth = width * 4;\n var tripleWidth = width * 3;\n var x, y = 0;\n var r, g, b;\n var start, p, col, row, pos;\n while (y < height) {\n x = 0;\n while (x < quadWidth) {\n start = quadWidth * y + x;\n p = start;\n col = -1;\n row = 0;\n for (pos = 0; pos < 64; pos++) {\n row = pos >> 3;\n col = (pos & 7) * 4;\n p = start + row * quadWidth + col;\n if (y + row >= height) {\n p -= quadWidth * (y + 1 + row - height);\n }\n if (x + col >= quadWidth) {\n p -= x + col - quadWidth + 4;\n }\n r = imageData[p++];\n g = imageData[p++];\n b = imageData[p++];\n YDU[pos] = (RGB_YUV_TABLE[r] + RGB_YUV_TABLE[g + 256 >> 0] + RGB_YUV_TABLE[b + 512 >> 0] >> 16) - 128;\n UDU[pos] = (RGB_YUV_TABLE[r + 768 >> 0] + RGB_YUV_TABLE[g + 1024 >> 0] + RGB_YUV_TABLE[b + 1280 >> 0] >> 16) - 128;\n VDU[pos] = (RGB_YUV_TABLE[r + 1280 >> 0] + RGB_YUV_TABLE[g + 1536 >> 0] + RGB_YUV_TABLE[b + 1792 >> 0] >> 16) - 128;\n }\n DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT2, YAC_HT2);\n DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT2, UVAC_HT2);\n DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT2, UVAC_HT2);\n x += 32;\n }\n y += 8;\n }\n if (bytepos >= 0) {\n var fillbits = [];\n fillbits[1] = bytepos + 1;\n fillbits[0] = (1 << bytepos + 1) - 1;\n writeBits(fillbits);\n }\n writeWord(65497);\n if (typeof module === "undefined")\n return new Uint8Array(byteout);\n return Buffer2.from(byteout);\n var jpegDataUri = "data:image/jpeg;base64," + btoa(byteout.join(""));\n byteout = [];\n var duration = new Date().getTime() - time_start;\n return jpegDataUri;\n };\n function setQuality(quality2) {\n if (quality2 <= 0) {\n quality2 = 1;\n }\n if (quality2 > 100) {\n quality2 = 100;\n }\n if (currentQuality == quality2)\n return;\n var sf = 0;\n if (quality2 < 50) {\n sf = Math.floor(5e3 / quality2);\n } else {\n sf = Math.floor(200 - quality2 * 2);\n }\n initQuantTables(sf);\n currentQuality = quality2;\n }\n function init3() {\n var time_start = new Date().getTime();\n if (!quality)\n quality = 50;\n initCharLookupTable();\n initHuffmanTbl();\n initCategoryNumber();\n initRGBYUVTable();\n setQuality(quality);\n var duration = new Date().getTime() - time_start;\n }\n init3();\n }\n if (typeof module !== "undefined") {\n module.exports = encode2;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].encode = encode2;\n }\n function encode2(imgData, qu) {\n if (typeof qu === "undefined")\n qu = 50;\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(imgData, qu);\n return {\n data,\n width: imgData.width,\n height: imgData.height\n };\n }\n }\n});\n\n// node_modules/jpeg-js/lib/decoder.js\nvar require_decoder = __commonJS({\n "node_modules/jpeg-js/lib/decoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var JpegImage = function jpegImage() {\n "use strict";\n var dctZigZag = new Int32Array([\n 0,\n 1,\n 8,\n 16,\n 9,\n 2,\n 3,\n 10,\n 17,\n 24,\n 32,\n 25,\n 18,\n 11,\n 4,\n 5,\n 12,\n 19,\n 26,\n 33,\n 40,\n 48,\n 41,\n 34,\n 27,\n 20,\n 13,\n 6,\n 7,\n 14,\n 21,\n 28,\n 35,\n 42,\n 49,\n 56,\n 57,\n 50,\n 43,\n 36,\n 29,\n 22,\n 15,\n 23,\n 30,\n 37,\n 44,\n 51,\n 58,\n 59,\n 52,\n 45,\n 38,\n 31,\n 39,\n 46,\n 53,\n 60,\n 61,\n 54,\n 47,\n 55,\n 62,\n 63\n ]);\n var dctCos1 = 4017;\n var dctSin1 = 799;\n var dctCos3 = 3406;\n var dctSin3 = 2276;\n var dctCos6 = 1567;\n var dctSin6 = 3784;\n var dctSqrt2 = 5793;\n var dctSqrt1d2 = 2896;\n function constructor() {\n }\n function buildHuffmanTable2(codeLengths, values) {\n var k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n var p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n }\n function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive, opts) {\n var precision = frame.precision;\n var samplesPerLine = frame.samplesPerLine;\n var scanLines = frame.scanLines;\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\n var maxH = frame.maxH, maxV = frame.maxV;\n var startOffset = offset, bitsData = 0, bitsCount = 0;\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return bitsData >> bitsCount & 1;\n }\n bitsData = data[offset++];\n if (bitsData == 255) {\n var nextByte = data[offset++];\n if (nextByte) {\n throw new Error("unexpected marker: " + (bitsData << 8 | nextByte).toString(16));\n }\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n function decodeHuffman(tree) {\n var node = tree, bit;\n while ((bit = readBit()) !== null) {\n node = node[bit];\n if (typeof node === "number")\n return node;\n if (typeof node !== "object")\n throw new Error("invalid huffman sequence");\n }\n return null;\n }\n function receive(length) {\n var n2 = 0;\n while (length > 0) {\n var bit = readBit();\n if (bit === null)\n return;\n n2 = n2 << 1 | bit;\n length--;\n }\n return n2;\n }\n function receiveAndExtend(length) {\n var n2 = receive(length);\n if (n2 >= 1 << length - 1)\n return n2;\n return n2 + (-1 << length) + 1;\n }\n function decodeBaseline(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t);\n zz[0] = component2.pred += diff;\n var k2 = 1;\n while (k2 < 64) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15)\n break;\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s);\n k2++;\n }\n }\n function decodeDCFirst(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n zz[0] = component2.pred += diff;\n }\n function decodeDCSuccessive(component2, zz) {\n zz[0] |= readBit() << successive;\n }\n var eobrun = 0;\n function decodeACFirst(component2, zz) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n var k2 = spectralStart, e = spectralEnd;\n while (k2 <= e) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s) * (1 << successive);\n k2++;\n }\n }\n var successiveACState = 0, successiveACNextValue;\n function decodeACSuccessive(component2, zz) {\n var k2 = spectralStart, e = spectralEnd, r = 0;\n while (k2 <= e) {\n var z = dctZigZag[k2];\n var direction = zz[z] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0:\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1)\n throw new Error("invalid ACn encoding");\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1:\n case 2:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n r--;\n if (r === 0)\n successiveACState = successiveACState == 2 ? 3 : 0;\n }\n break;\n case 3:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n zz[z] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n break;\n }\n k2++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0)\n successiveACState = 0;\n }\n }\n function decodeMcu(component2, decode4, mcu2, row, col) {\n var mcuRow = mcu2 / mcusPerLine | 0;\n var mcuCol = mcu2 % mcusPerLine;\n var blockRow = mcuRow * component2.v + row;\n var blockCol = mcuCol * component2.h + col;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n function decodeBlock(component2, decode4, mcu2) {\n var blockRow = mcu2 / component2.blocksPerLine | 0;\n var blockCol = mcu2 % component2.blocksPerLine;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n var componentsLength = components.length;\n var component, i, j, k, n;\n var decodeFn;\n if (progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n var mcu = 0, marker;\n var mcuExpected;\n if (componentsLength == 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n if (!resetInterval)\n resetInterval = mcuExpected;\n var h, v;\n while (mcu < mcuExpected) {\n for (i = 0; i < componentsLength; i++)\n components[i].pred = 0;\n eobrun = 0;\n if (componentsLength == 1) {\n component = components[0];\n for (n = 0; n < resetInterval; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < resetInterval; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n if (mcu === mcuExpected)\n break;\n }\n }\n if (mcu === mcuExpected) {\n do {\n if (data[offset] === 255) {\n if (data[offset + 1] !== 0) {\n break;\n }\n }\n offset += 1;\n } while (offset < data.length - 2);\n }\n bitsCount = 0;\n marker = data[offset] << 8 | data[offset + 1];\n if (marker < 65280) {\n throw new Error("marker was not found");\n }\n if (marker >= 65488 && marker <= 65495) {\n offset += 2;\n } else\n break;\n }\n return offset - startOffset;\n }\n function buildComponentData(frame, component) {\n var lines = [];\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var samplesPerLine = blocksPerLine << 3;\n var R = new Int32Array(64), r = new Uint8Array(64);\n function quantizeAndInverse(zz, dataOut, dataIn) {\n var qt = component.quantizationTable;\n var v0, v1, v2, v3, v4, v5, v6, v7, t;\n var p = dataIn;\n var i2;\n for (i2 = 0; i2 < 64; i2++)\n p[i2] = zz[i2] * qt[i2];\n for (i2 = 0; i2 < 8; ++i2) {\n var row = 8 * i2;\n if (p[1 + row] == 0 && p[2 + row] == 0 && p[3 + row] == 0 && p[4 + row] == 0 && p[5 + row] == 0 && p[6 + row] == 0 && p[7 + row] == 0) {\n t = dctSqrt2 * p[0 + row] + 512 >> 10;\n p[0 + row] = t;\n p[1 + row] = t;\n p[2 + row] = t;\n p[3 + row] = t;\n p[4 + row] = t;\n p[5 + row] = t;\n p[6 + row] = t;\n p[7 + row] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 + row] + 128 >> 8;\n v1 = dctSqrt2 * p[4 + row] + 128 >> 8;\n v2 = p[2 + row];\n v3 = p[6 + row];\n v4 = dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128 >> 8;\n v7 = dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128 >> 8;\n v5 = p[3 + row] << 4;\n v6 = p[5 + row] << 4;\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 + row] = v0 + v7;\n p[7 + row] = v0 - v7;\n p[1 + row] = v1 + v6;\n p[6 + row] = v1 - v6;\n p[2 + row] = v2 + v5;\n p[5 + row] = v2 - v5;\n p[3 + row] = v3 + v4;\n p[4 + row] = v3 - v4;\n }\n for (i2 = 0; i2 < 8; ++i2) {\n var col = i2;\n if (p[1 * 8 + col] == 0 && p[2 * 8 + col] == 0 && p[3 * 8 + col] == 0 && p[4 * 8 + col] == 0 && p[5 * 8 + col] == 0 && p[6 * 8 + col] == 0 && p[7 * 8 + col] == 0) {\n t = dctSqrt2 * dataIn[i2 + 0] + 8192 >> 14;\n p[0 * 8 + col] = t;\n p[1 * 8 + col] = t;\n p[2 * 8 + col] = t;\n p[3 * 8 + col] = t;\n p[4 * 8 + col] = t;\n p[5 * 8 + col] = t;\n p[6 * 8 + col] = t;\n p[7 * 8 + col] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 * 8 + col] + 2048 >> 12;\n v1 = dctSqrt2 * p[4 * 8 + col] + 2048 >> 12;\n v2 = p[2 * 8 + col];\n v3 = p[6 * 8 + col];\n v4 = dctSqrt1d2 * (p[1 * 8 + col] - p[7 * 8 + col]) + 2048 >> 12;\n v7 = dctSqrt1d2 * (p[1 * 8 + col] + p[7 * 8 + col]) + 2048 >> 12;\n v5 = p[3 * 8 + col];\n v6 = p[5 * 8 + col];\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 * 8 + col] = v0 + v7;\n p[7 * 8 + col] = v0 - v7;\n p[1 * 8 + col] = v1 + v6;\n p[6 * 8 + col] = v1 - v6;\n p[2 * 8 + col] = v2 + v5;\n p[5 * 8 + col] = v2 - v5;\n p[3 * 8 + col] = v3 + v4;\n p[4 * 8 + col] = v3 - v4;\n }\n for (i2 = 0; i2 < 64; ++i2) {\n var sample2 = 128 + (p[i2] + 8 >> 4);\n dataOut[i2] = sample2 < 0 ? 0 : sample2 > 255 ? 255 : sample2;\n }\n }\n requestMemoryAllocation(samplesPerLine * blocksPerColumn * 8);\n var i, j;\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n var scanLine = blockRow << 3;\n for (i = 0; i < 8; i++)\n lines.push(new Uint8Array(samplesPerLine));\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n quantizeAndInverse(component.blocks[blockRow][blockCol], r, R);\n var offset = 0, sample = blockCol << 3;\n for (j = 0; j < 8; j++) {\n var line = lines[scanLine + j];\n for (i = 0; i < 8; i++)\n line[sample + i] = r[offset++];\n }\n }\n }\n return lines;\n }\n function clampTo8bit(a) {\n return a < 0 ? 0 : a > 255 ? 255 : a;\n }\n constructor.prototype = {\n load: function load(path) {\n var xhr = new XMLHttpRequest();\n xhr.open("GET", path, true);\n xhr.responseType = "arraybuffer";\n xhr.onload = function() {\n var data = new Uint8Array(xhr.response || xhr.mozResponseArrayBuffer);\n this.parse(data);\n if (this.onload)\n this.onload();\n }.bind(this);\n xhr.send(null);\n },\n parse: function parse(data) {\n var maxResolutionInPixels = this.opts.maxResolutionInMP * 1e3 * 1e3;\n var offset = 0, length = data.length;\n function readUint16() {\n var value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n var length2 = readUint16();\n var array = data.subarray(offset, offset + length2 - 2);\n offset += array.length;\n return array;\n }\n function prepareComponents(frame2) {\n var maxH2 = 1, maxV2 = 1;\n var component2, componentId2;\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n if (maxH2 < component2.h)\n maxH2 = component2.h;\n if (maxV2 < component2.v)\n maxV2 = component2.v;\n }\n }\n var mcusPerLine = Math.ceil(frame2.samplesPerLine / 8 / maxH2);\n var mcusPerColumn = Math.ceil(frame2.scanLines / 8 / maxV2);\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n var blocksPerLine = Math.ceil(Math.ceil(frame2.samplesPerLine / 8) * component2.h / maxH2);\n var blocksPerColumn = Math.ceil(Math.ceil(frame2.scanLines / 8) * component2.v / maxV2);\n var blocksPerLineForMcu = mcusPerLine * component2.h;\n var blocksPerColumnForMcu = mcusPerColumn * component2.v;\n var blocksToAllocate = blocksPerColumnForMcu * blocksPerLineForMcu;\n var blocks = [];\n requestMemoryAllocation(blocksToAllocate * 256);\n for (var i2 = 0; i2 < blocksPerColumnForMcu; i2++) {\n var row = [];\n for (var j2 = 0; j2 < blocksPerLineForMcu; j2++)\n row.push(new Int32Array(64));\n blocks.push(row);\n }\n component2.blocksPerLine = blocksPerLine;\n component2.blocksPerColumn = blocksPerColumn;\n component2.blocks = blocks;\n }\n }\n frame2.maxH = maxH2;\n frame2.maxV = maxV2;\n frame2.mcusPerLine = mcusPerLine;\n frame2.mcusPerColumn = mcusPerColumn;\n }\n var jfif = null;\n var adobe = null;\n var pixels = null;\n var frame, resetInterval;\n var quantizationTables = [], frames = [];\n var huffmanTablesAC = [], huffmanTablesDC = [];\n var fileMarker = readUint16();\n var malformedDataOffset = -1;\n this.comments = [];\n if (fileMarker != 65496) {\n throw new Error("SOI not found");\n }\n fileMarker = readUint16();\n while (fileMarker != 65497) {\n var i, j, l;\n switch (fileMarker) {\n case 65280:\n break;\n case 65504:\n case 65505:\n case 65506:\n case 65507:\n case 65508:\n case 65509:\n case 65510:\n case 65511:\n case 65512:\n case 65513:\n case 65514:\n case 65515:\n case 65516:\n case 65517:\n case 65518:\n case 65519:\n case 65534:\n var appData = readDataBlock();\n if (fileMarker === 65534) {\n var comment = String.fromCharCode.apply(null, appData);\n this.comments.push(comment);\n }\n if (fileMarker === 65504) {\n if (appData[0] === 74 && appData[1] === 70 && appData[2] === 73 && appData[3] === 70 && appData[4] === 0) {\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: appData[8] << 8 | appData[9],\n yDensity: appData[10] << 8 | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n };\n }\n }\n if (fileMarker === 65505) {\n if (appData[0] === 69 && appData[1] === 120 && appData[2] === 105 && appData[3] === 102 && appData[4] === 0) {\n this.exifBuffer = appData.subarray(5, appData.length);\n }\n }\n if (fileMarker === 65518) {\n if (appData[0] === 65 && appData[1] === 100 && appData[2] === 111 && appData[3] === 98 && appData[4] === 101 && appData[5] === 0) {\n adobe = {\n version: appData[6],\n flags0: appData[7] << 8 | appData[8],\n flags1: appData[9] << 8 | appData[10],\n transformCode: appData[11]\n };\n }\n }\n break;\n case 65499:\n var quantizationTablesLength = readUint16();\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n requestMemoryAllocation(64 * 4);\n var tableData = new Int32Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = readUint16();\n }\n } else\n throw new Error("DQT: invalid table spec");\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n case 65472:\n case 65473:\n case 65474:\n readUint16();\n frame = {};\n frame.extended = fileMarker === 65473;\n frame.progressive = fileMarker === 65474;\n frame.precision = data[offset++];\n frame.scanLines = readUint16();\n frame.samplesPerLine = readUint16();\n frame.components = {};\n frame.componentsOrder = [];\n var pixelsInFrame = frame.scanLines * frame.samplesPerLine;\n if (pixelsInFrame > maxResolutionInPixels) {\n var exceededAmount = Math.ceil((pixelsInFrame - maxResolutionInPixels) / 1e6);\n throw new Error(`maxResolutionInMP limit exceeded by ${exceededAmount}MP`);\n }\n var componentsCount = data[offset++], componentId;\n var maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n var h = data[offset + 1] >> 4;\n var v = data[offset + 1] & 15;\n var qId = data[offset + 2];\n if (h <= 0 || v <= 0) {\n throw new Error("Invalid sampling factor, expected values above 0");\n }\n frame.componentsOrder.push(componentId);\n frame.components[componentId] = {\n h,\n v,\n quantizationIdx: qId\n };\n offset += 3;\n }\n prepareComponents(frame);\n frames.push(frame);\n break;\n case 65476:\n var huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n requestMemoryAllocation(16 + codeLengthSum);\n var huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable2(codeLengths, huffmanValues);\n }\n break;\n case 65501:\n readUint16();\n resetInterval = readUint16();\n break;\n case 65500:\n readUint16();\n readUint16();\n break;\n case 65498:\n var scanLength = readUint16();\n var selectorsCount = data[offset++];\n var components = [], component;\n for (i = 0; i < selectorsCount; i++) {\n component = frame.components[data[offset++]];\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n var processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, this.opts);\n offset += processed;\n break;\n case 65535:\n if (data[offset] !== 255) {\n offset--;\n }\n break;\n default:\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n break;\n } else if (fileMarker === 224 || fileMarker == 225) {\n if (malformedDataOffset !== -1) {\n throw new Error(`first unknown JPEG marker at offset ${malformedDataOffset.toString(16)}, second unknown JPEG marker ${fileMarker.toString(16)} at offset ${(offset - 1).toString(16)}`);\n }\n malformedDataOffset = offset - 1;\n const nextOffset = readUint16();\n if (data[offset + nextOffset - 2] === 255) {\n offset += nextOffset - 2;\n break;\n }\n }\n throw new Error("unknown JPEG marker " + fileMarker.toString(16));\n }\n fileMarker = readUint16();\n }\n if (frames.length != 1)\n throw new Error("only single frame JPEGs supported");\n for (var i = 0; i < frames.length; i++) {\n var cp = frames[i].components;\n for (var j in cp) {\n cp[j].quantizationTable = quantizationTables[cp[j].quantizationIdx];\n delete cp[j].quantizationIdx;\n }\n }\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (var i = 0; i < frame.componentsOrder.length; i++) {\n var component = frame.components[frame.componentsOrder[i]];\n this.components.push({\n lines: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV\n });\n }\n },\n getData: function getData(width, height) {\n var scaleX = this.width / width, scaleY = this.height / height;\n var component1, component2, component3, component4;\n var component1Line, component2Line, component3Line, component4Line;\n var x, y;\n var offset = 0;\n var Y, Cb, Cr, K, C, M, Ye, R, G, B;\n var colorTransform;\n var dataLength = width * height * this.components.length;\n requestMemoryAllocation(dataLength);\n var data = new Uint8Array(dataLength);\n switch (this.components.length) {\n case 1:\n component1 = this.components[0];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 2:\n component1 = this.components[0];\n component2 = this.components[1];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n Y = component2Line[0 | x * component2.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 3:\n colorTransform = true;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n R = component1Line[0 | x * component1.scaleX * scaleX];\n G = component2Line[0 | x * component2.scaleX * scaleX];\n B = component3Line[0 | x * component3.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n R = clampTo8bit(Y + 1.402 * (Cr - 128));\n G = clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n B = clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = R;\n data[offset++] = G;\n data[offset++] = B;\n }\n }\n break;\n case 4:\n if (!this.adobe)\n throw new Error("Unsupported color mode (4 components)");\n colorTransform = false;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n component4 = this.components[3];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n component4Line = component4.lines[0 | y * component4.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n C = component1Line[0 | x * component1.scaleX * scaleX];\n M = component2Line[0 | x * component2.scaleX * scaleX];\n Ye = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n C = 255 - clampTo8bit(Y + 1.402 * (Cr - 128));\n M = 255 - clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n Ye = 255 - clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = 255 - C;\n data[offset++] = 255 - M;\n data[offset++] = 255 - Ye;\n data[offset++] = 255 - K;\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n return data;\n },\n copyToImageData: function copyToImageData(imageData, formatAsRGBA) {\n var width = imageData.width, height = imageData.height;\n var imageDataArray = imageData.data;\n var data = this.getData(width, height);\n var i = 0, j = 0, x, y;\n var Y, K, C, M, R, G, B;\n switch (this.components.length) {\n case 1:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n Y = data[i++];\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 3:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n R = data[i++];\n G = data[i++];\n B = data[i++];\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 4:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n C = data[i++];\n M = data[i++];\n Y = data[i++];\n K = data[i++];\n R = 255 - clampTo8bit(C * (1 - K / 255) + K);\n G = 255 - clampTo8bit(M * (1 - K / 255) + K);\n B = 255 - clampTo8bit(Y * (1 - K / 255) + K);\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n }\n };\n var totalBytesAllocated = 0;\n var maxMemoryUsageBytes = 0;\n function requestMemoryAllocation(increaseAmount = 0) {\n var totalMemoryImpactBytes = totalBytesAllocated + increaseAmount;\n if (totalMemoryImpactBytes > maxMemoryUsageBytes) {\n var exceededAmount = Math.ceil((totalMemoryImpactBytes - maxMemoryUsageBytes) / 1024 / 1024);\n throw new Error(`maxMemoryUsageInMB limit exceeded by at least ${exceededAmount}MB`);\n }\n totalBytesAllocated = totalMemoryImpactBytes;\n }\n constructor.resetMaxMemoryUsage = function(maxMemoryUsageBytes_) {\n totalBytesAllocated = 0;\n maxMemoryUsageBytes = maxMemoryUsageBytes_;\n };\n constructor.getBytesAllocated = function() {\n return totalBytesAllocated;\n };\n constructor.requestMemoryAllocation = requestMemoryAllocation;\n return constructor;\n }();\n if (typeof module !== "undefined") {\n module.exports = decode3;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].decode = decode3;\n }\n function decode3(jpegData, userOpts = {}) {\n var defaultOpts = {\n colorTransform: void 0,\n useTArray: false,\n formatAsRGBA: true,\n tolerantDecoding: true,\n maxResolutionInMP: 100,\n maxMemoryUsageInMB: 512\n };\n var opts = { ...defaultOpts, ...userOpts };\n var arr = new Uint8Array(jpegData);\n var decoder = new JpegImage();\n decoder.opts = opts;\n JpegImage.resetMaxMemoryUsage(opts.maxMemoryUsageInMB * 1024 * 1024);\n decoder.parse(arr);\n var channels = opts.formatAsRGBA ? 4 : 3;\n var bytesNeeded = decoder.width * decoder.height * channels;\n try {\n JpegImage.requestMemoryAllocation(bytesNeeded);\n var image = {\n width: decoder.width,\n height: decoder.height,\n exifBuffer: decoder.exifBuffer,\n data: opts.useTArray ? new Uint8Array(bytesNeeded) : Buffer2.alloc(bytesNeeded)\n };\n if (decoder.comments.length > 0) {\n image["comments"] = decoder.comments;\n }\n } catch (err) {\n if (err instanceof RangeError) {\n throw new Error("Could not allocate enough memory for the image. Required: " + bytesNeeded);\n }\n if (err instanceof ReferenceError) {\n if (err.message === "Buffer is not defined") {\n throw new Error("Buffer is not globally defined in this environment. Consider setting useTArray to true");\n }\n }\n throw err;\n }\n decoder.copyToImageData(image, opts.formatAsRGBA);\n return image;\n }\n }\n});\n\n// node_modules/jpeg-js/index.js\nvar require_jpeg_js = __commonJS({\n "node_modules/jpeg-js/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var encode2 = require_encoder();\n var decode3 = require_decoder();\n module.exports = {\n encode: encode2,\n decode: decode3\n };\n }\n});\n\n// src/processor.worker.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/platform.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/requests.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar xmlhttprequest;\nif (false)\n xmlhttprequest = typeof GM_xmlhttpRequest != "undefined" ? GM_xmlhttpRequest : typeof GM != "undefined" ? GM.xmlHttpRequest : window["GM_xmlhttpRequest"];\nvar GM_fetch = (...[url, opt, lisn]) => {\n function blobTo(to, blob) {\n if (to == "arrayBuffer" && blob.arrayBuffer) {\n const ret = blob.arrayBuffer();\n if (ret)\n return ret;\n }\n return new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.onload = function(event) {\n if (!event)\n return;\n if (to == "base64")\n resolve(event.target.result);\n else\n resolve(event.target.result);\n };\n if (to == "arrayBuffer")\n fileReader.readAsArrayBuffer(blob);\n else if (to == "base64")\n fileReader.readAsDataURL(blob);\n else if (to == "text")\n fileReader.readAsText(blob, "utf-8");\n else\n reject(new Error("unknown to"));\n });\n }\n return new Promise((resolve, reject) => {\n const gmopt = {\n url: url.toString(),\n data: opt?.body,\n responseType: "blob",\n headers: opt?.headers,\n method: opt?.method || "GET",\n ...lisn ? {\n onprogress: (prog) => {\n if (prog.loaded != prog.total && prog.total != 0)\n lisn.dispatchEvent(new CustomEvent("progress", { detail: [prog.loaded, prog.total] }));\n }\n } : {},\n onload: (resp) => {\n if (resp.status / 100 >= 4) {\n reject(new Error("Server Error: " + resp.status));\n return;\n }\n const blob = resp.response;\n const ref = resp;\n ref.blob = () => Promise.resolve(blob);\n ref.arrayBuffer = () => blobTo("arrayBuffer", blob);\n ref.text = () => blobTo("text", blob);\n ref.json = async () => JSON.parse(await blobTo("text", blob));\n resolve(resp);\n },\n ontimeout: () => reject(new Error("fetch timeout")),\n onerror: (...args) => {\n reject(new Error("fetch error"));\n },\n onabort: () => reject(new Error("fetch abort"))\n };\n xmlhttprequest(gmopt);\n });\n};\n\n// src/platform.ts\nvar lqueue = {};\nvar localSet = (key2, value) => localStorage.setItem("__pee__" + key2, JSON.stringify(value));\nvar port1;\nconsole.log("worker", false);\nvar msgBuff = [];\nvar setupPort = (port) => {\n port1 = port;\n port1.onmessage = (ev) => {\n lqueue[ev.data.id](ev.data);\n };\n if (true) {\n for (const msg of msgBuff) {\n port.postMessage(msg[0], { transfer: msg[1] });\n }\n msgBuff = [];\n }\n};\nif (true) {\n port1 = {\n onmessage(ev) {\n lqueue[ev.data.id](ev.data);\n },\n postMessage(msg, tr) {\n msgBuff.push([msg, tr]);\n }\n };\n}\nvar gid = 0;\nvar sendCmd = (cmd, tr, overwrite = false, todelete = false) => {\n const prom = new Promise((_) => {\n const id = gid++;\n if (overwrite)\n cmd.id = id;\n lqueue[id] = (e) => {\n _(e.res);\n if (todelete)\n delete lqueue[id];\n };\n port1.postMessage({ id, ...cmd }, tr || []);\n });\n return prom;\n};\nvar bridge = (name, f) => {\n if (false)\n return f;\n if (false)\n return f;\n return (...args) => {\n return sendCmd({ name, args });\n };\n};\nvar Bridged = (ctor) => {\n const keys = Object.getOwnPropertyNames(ctor).filter((k) => typeof ctor[k] == "function");\n for (const k of keys)\n ctor[k] = bridge(k, ctor[k]);\n};\nif (false) {\n popupport = chrome.runtime.connect({ name: "popup" });\n popupport.onMessage.addListener((msg) => {\n if (msg.id in pendingcmds) {\n pendingcmds[msg.id](msg);\n delete pendingcmds[msg.id];\n }\n });\n}\nvar Platform = class {\n static async openInTab(src, opts) {\n if (false) {\n return GM.openInTab(src, opts);\n }\n const obj = false ? chrome : browser;\n let i;\n if (opts.insert)\n i = (await obj.tabs.getCurrent()).index + 1;\n return obj.tabs.create({ active: opts.active, url: src, index: i });\n }\n static async getValue(key2, def) {\n const isinls = "__pee__" + key2 in localStorage;\n let ret;\n if (isinls) {\n let it = localStorage.getItem("__pee__" + key2);\n if (it === "undefined")\n it = null;\n ret = { ...def, ...JSON.parse(it || "{}") };\n } else\n ret = def;\n if (true) {\n if (isinls) {\n delete localStorage["__pee__" + key2];\n await chrome.storage.local.set({\n [key2]: JSON.stringify(ret)\n });\n } else {\n const d = await chrome.storage.local.get([key2]);\n if (typeof d[key2] == "string")\n return { ...def, ...await JSON.parse("" + d[key2] || "{}") };\n }\n }\n return ret;\n }\n static setValue(name, val) {\n localSet(name, val);\n }\n};\nPlatform.cmdid = 0;\nPlatform = __decorateClass([\n Bridged\n], Platform);\nvar corsFetch = async (input, init3, lsn) => {\n const id = gid++;\n let transfer = [];\n if (init3?.body) {\n if (false) {\n [init3.body, transfer] = await braveserialize(init3.body);\n }\n }\n const prom = new Promise((_, rej) => {\n let gcontroller;\n let buffer = [];\n let finished = false;\n const rs = new ReadableStream({\n start(controller) {\n gcontroller = controller;\n buffer.forEach((b) => gcontroller?.enqueue(b));\n buffer = [];\n if (finished) {\n gcontroller.close();\n }\n }\n });\n let s;\n s = 0;\n const cmdbuff = [];\n lqueue[id] = async (e) => {\n if (e.progress) {\n if (lsn)\n lsn.dispatchEvent(new CustomEvent("progress", { detail: e.progress }));\n }\n if (e.pushData) {\n if (e.s > s) {\n let idx = 0;\n while (idx < cmdbuff.length) {\n if (cmdbuff[idx].s > e.s)\n break;\n idx++;\n }\n cmdbuff.splice(idx, 0, e);\n return;\n }\n const processCmd = (e2) => {\n if (e2.pushData.data) {\n const data = new Uint8Array(e2.pushData.data);\n if (gcontroller)\n gcontroller.enqueue(data);\n else\n buffer.push(data);\n } else {\n if (gcontroller)\n gcontroller?.close();\n else\n finished = true;\n }\n };\n await processCmd(e);\n s++;\n while (cmdbuff[0]?.s == s) {\n await processCmd(cmdbuff.shift());\n s++;\n }\n }\n if (e.setRes) {\n const arrayBuffer = async () => {\n const r = rs.getReader();\n await sendCmd({ name: "fullyRead", fid: id });\n const abs = [];\n let res;\n do {\n res = await r.read();\n if (res.done)\n break;\n abs.push(res.value);\n } while (!res.done);\n const sum = abs.reduce((a, b) => a + b.byteLength, 0);\n const ret = new Uint8Array(sum);\n abs.reduce((ptr, arr) => {\n ret.set(arr, ptr);\n return ptr + arr.byteLength;\n }, 0);\n r.releaseLock();\n return ret;\n };\n const blob = async () => new Blob([await arrayBuffer()]);\n const text = async () => new TextDecoder().decode(await arrayBuffer());\n const json = async () => JSON.parse(await text());\n if (e.ok)\n _({\n body: rs,\n ok: e.ok,\n headers: e.headers,\n redirected: e.redirected,\n type: e.type,\n url: e.url,\n status: e.status,\n bodyUsed: e.bodyUsed,\n statusText: e.statusText,\n clone() {\n return this;\n },\n arrayBuffer,\n blob,\n text,\n json,\n async formData() {\n return new FormData();\n }\n });\n else {\n rej(new Error(`${e.url} - ${e.status}`));\n }\n }\n };\n port1.postMessage({\n id,\n name: "corsFetch",\n args: [input, init3]\n }, transfer);\n });\n return prom;\n};\nasync function getHeaders(s) {\n if (false)\n return headerStringToObject(await GM_head(s));\n const res = await ifetch(s, {\n method: "HEAD"\n });\n return res.headers;\n}\nasync function ifetch(...[url, opt, lisn]) {\n if (true)\n return corsFetch(url.toString(), opt, lisn);\n return GM_fetch(url, opt, lisn);\n}\nasync function* streamRemote(url, chunkSize = 72 * 1024, fetchRestOnNonCanceled = true) {\n let size = Number.POSITIVE_INFINITY;\n let ptr = 0;\n let fetchSize = chunkSize;\n while (ptr != size) {\n let obj;\n const fres = await ifetch(url, { headers: { range: `bytes=${ptr}-${ptr + fetchSize - 1}` } });\n if (false) {\n obj = headerStringToObject(fres.responseHeaders);\n } else {\n obj = fres.headers;\n }\n if (!("content-length" in obj)) {\n console.warn("no content lenght???", url);\n break;\n }\n if ("content-range" in obj) {\n size = +obj["content-range"].split("/")[1];\n }\n const len = +obj["content-length"];\n ptr += len;\n if (fetchRestOnNonCanceled)\n fetchSize = size;\n const val = Buffer2.from(await fres.arrayBuffer());\n const e = yield val;\n if (e) {\n break;\n }\n }\n}\n\n// src/stores.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/store/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/internal/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction noop() {\n}\nfunction run(fn) {\n return fn();\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === "function";\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || (a && typeof a === "object" || typeof a === "function");\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nvar resolved_promise = Promise.resolve();\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nvar SvelteElement;\nif (typeof HTMLElement === "function") {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: "open" });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n for (const key2 in this.$$.slotted) {\n this.appendChild(this.$$.slotted[key2]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []);\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n\n// node_modules/svelte/store/index.mjs\nvar subscriber_queue = [];\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = /* @__PURE__ */ new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) {\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe2(run2, invalidate = noop) {\n const subscriber = [run2, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run2(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe: subscribe2 };\n}\n\n// src/stores.ts\nvar localLoad = async (key2, def) => {\n const ret = await Platform.getValue(key2, def);\n return ret;\n};\nvar localSet2 = (key2, value) => {\n if (true) {\n return;\n }\n if (true)\n chrome.storage.local.set({ [key2]: JSON.stringify(value) });\n else\n localStorage.setItem("__pee__" + key2, JSON.stringify(value));\n};\nvar initial_settings = {\n loop: true,\n dh: false,\n pmeth: 5,\n xpv: false,\n xpi: false,\n hyd: false,\n notcata: false,\n ak: "",\n auto_embed: 0,\n auto_tags: "",\n te: false,\n eye: false,\n ca: false,\n pre: false,\n prev: false,\n sh: false,\n ep: false,\n tm: false,\n dvc: false,\n expte: false,\n mdist: -1,\n phash: false,\n hotlink: false,\n jpeg: false,\n vercheck: false,\n cache: void 0,\n fhost: 0,\n maxe: 5,\n conc: 8,\n ho: false,\n blacklist: [],\n rsources: []\n};\nvar settings = writable();\nvar appState = writable({\n isCatalog: false,\n is4chanX: false,\n akValid: false,\n herror: "",\n client: null,\n processing: 0,\n processed: 0,\n foundPosts: []\n});\nsettings.subscribe((newVal) => {\n if (newVal)\n localSet2("settingsv2", newVal);\n});\n\n// src/pngv3.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer3 = __toESM(require_buffer(), 1);\n\n// src/png.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_crc_32 = __toESM(require_crc32(), 1);\nvar import_buffer = __toESM(require_buffer(), 1);\nvar PNGDecoder = class {\n constructor(reader, strict = true) {\n this.reader = reader;\n this.strict = strict;\n this.req = 8;\n this.ptr = 8;\n this.stopped = false;\n this.repr = import_buffer.Buffer.from([]);\n }\n async catchup() {\n while (this.repr.byteLength < this.req) {\n const chunk = await this.reader.read();\n if (chunk.done) {\n if (this.strict)\n throw new Error(`Unexpected EOF, got ${this.repr.byteLength}, required ${this.req}, ${chunk.value}`);\n this.stopped = true;\n return;\n }\n this.repr = import_buffer.Buffer.concat([this.repr, chunk.value]);\n }\n }\n async *chunks() {\n while (true) {\n this.req += 8;\n await this.catchup();\n if (this.stopped)\n break;\n const length = this.repr.readUInt32BE(this.ptr);\n const name = this.repr.slice(this.ptr + 4, this.ptr + 8).toString();\n this.ptr += 4;\n this.req += length + 4;\n await this.catchup();\n yield [\n name,\n this.repr.slice(this.ptr, this.ptr + length + 4),\n this.ptr + length > this.repr.length ? -1 : this.repr.readUInt32BE(this.ptr + length + 4),\n this.ptr\n ];\n if (this.stopped)\n break;\n this.ptr += length + 8;\n if (name == "IEND")\n break;\n }\n }\n async dtor() {\n }\n};\nvar PNGEncoder = class {\n constructor(bytes) {\n this.writer = bytes.getWriter();\n this.writer.write(import_buffer.Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]));\n }\n async insertchunk(chunk) {\n let b = import_buffer.Buffer.alloc(4);\n const buff = chunk[1];\n b.writeInt32BE(buff.length - 4, 0);\n await this.writer.write(b);\n await this.writer.write(buff);\n b = import_buffer.Buffer.alloc(4);\n b.writeInt32BE((0, import_crc_32.buf)(buff), 0);\n await this.writer.write(b);\n }\n async dtor() {\n this.writer.releaseLock();\n }\n};\n\n// src/utils.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer2 = __toESM(require_buffer(), 1);\n\n// src/assets/hasembed.png\nvar hasembed_default = __toBinary("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");\n\n// src/filehosts.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction parseForm(data) {\n const form = new FormData();\n Object.entries(data).filter(([key2, value]) => value !== null).map(([key2, value]) => form.append(key2, value));\n return form;\n}\nvar lolisafe = (domain, serving = domain) => ({\n domain,\n serving,\n async uploadFile(f) {\n const resp = await ifetch(`https://${domain}/api/upload`, {\n headers: {\n accept: "application/json"\n },\n "body": parseForm({\n reqtype: "fileupload",\n "files[]": new File([f], "f.pee")\n }),\n "method": "POST"\n });\n const res = await resp.json();\n return res.files.map((e) => e.url)[0];\n }\n});\nvar catbox = (domain, serving) => ({\n domain,\n serving,\n async uploadFile(inj) {\n const resp = await ifetch(`https://${domain}/user/api.php`, {\n method: "POST",\n body: parseForm({\n reqtype: "fileupload",\n fileToUpload: inj\n })\n });\n return resp.text();\n }\n});\nvar filehosts = [\n catbox("catbox.moe", "files.catbox.moe"),\n catbox("pomf.moe", "a.pomf.cat"),\n lolisafe("take-me-to.space"),\n lolisafe("zz.ht", "z.zz.fo")\n];\n\n// node_modules/file-type/browser.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer4 = __toESM(require_buffer(), 1);\nvar import_readable_web_to_node_stream = __toESM(require_lib(), 1);\n\n// node_modules/file-type/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer3 = __toESM(require_buffer(), 1);\n\n// node_modules/token-types/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar ieee754 = __toESM(require_ieee754(), 1);\nvar import_node_buffer = __toESM(require_buffer(), 1);\nvar AnsiStringType = class {\n constructor(len) {\n this.len = len;\n }\n static decode(buffer, offset, until) {\n let str = "";\n for (let i = offset; i < until; ++i) {\n str += AnsiStringType.codePointToString(AnsiStringType.singleByteDecoder(buffer[i]));\n }\n return str;\n }\n static inRange(a, min, max) {\n return min <= a && a <= max;\n }\n static codePointToString(cp) {\n if (cp <= 65535) {\n return String.fromCharCode(cp);\n } else {\n cp -= 65536;\n return String.fromCharCode((cp >> 10) + 55296, (cp & 1023) + 56320);\n }\n }\n static singleByteDecoder(bite) {\n if (AnsiStringType.inRange(bite, 0, 127)) {\n return bite;\n }\n const codePoint = AnsiStringType.windows1252[bite - 128];\n if (codePoint === null) {\n throw Error("invaliding encoding");\n }\n return codePoint;\n }\n get(buffer, offset = 0) {\n return AnsiStringType.decode(buffer, offset, offset + this.len);\n }\n};\nAnsiStringType.windows1252 = [\n 8364,\n 129,\n 8218,\n 402,\n 8222,\n 8230,\n 8224,\n 8225,\n 710,\n 8240,\n 352,\n 8249,\n 338,\n 141,\n 381,\n 143,\n 144,\n 8216,\n 8217,\n 8220,\n 8221,\n 8226,\n 8211,\n 8212,\n 732,\n 8482,\n 353,\n 8250,\n 339,\n 157,\n 382,\n 376,\n 160,\n 161,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 171,\n 172,\n 173,\n 174,\n 175,\n 176,\n 177,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 187,\n 188,\n 189,\n 190,\n 191,\n 192,\n 193,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 203,\n 204,\n 205,\n 206,\n 207,\n 208,\n 209,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 219,\n 220,\n 221,\n 222,\n 223,\n 224,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 235,\n 236,\n 237,\n 238,\n 239,\n 240,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250,\n 251,\n 252,\n 253,\n 254,\n 255\n];\n\n// node_modules/strtok3/lib/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/ReadStreamTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/EndOfFileStream.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/Deferred.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\nvar maxStreamReadSize = 1 * 1024 * 1024;\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\nvar import_node_buffer2 = __toESM(require_buffer(), 1);\n\n// node_modules/strtok3/lib/BufferTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/util.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/supported.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar extensions = [\n "jpg",\n "png",\n "apng",\n "gif",\n "webp",\n "flif",\n "xcf",\n "cr2",\n "cr3",\n "orf",\n "arw",\n "dng",\n "nef",\n "rw2",\n "raf",\n "tif",\n "bmp",\n "icns",\n "jxr",\n "psd",\n "indd",\n "zip",\n "tar",\n "rar",\n "gz",\n "bz2",\n "7z",\n "dmg",\n "mp4",\n "mid",\n "mkv",\n "webm",\n "mov",\n "avi",\n "mpg",\n "mp2",\n "mp3",\n "m4a",\n "oga",\n "ogg",\n "ogv",\n "opus",\n "flac",\n "wav",\n "spx",\n "amr",\n "pdf",\n "epub",\n "elf",\n "exe",\n "swf",\n "rtf",\n "wasm",\n "woff",\n "woff2",\n "eot",\n "ttf",\n "otf",\n "ico",\n "flv",\n "ps",\n "xz",\n "sqlite",\n "nes",\n "crx",\n "xpi",\n "cab",\n "deb",\n "ar",\n "rpm",\n "Z",\n "lz",\n "cfb",\n "mxf",\n "mts",\n "blend",\n "bpg",\n "docx",\n "pptx",\n "xlsx",\n "3gp",\n "3g2",\n "jp2",\n "jpm",\n "jpx",\n "mj2",\n "aif",\n "qcp",\n "odt",\n "ods",\n "odp",\n "xml",\n "mobi",\n "heic",\n "cur",\n "ktx",\n "ape",\n "wv",\n "dcm",\n "ics",\n "glb",\n "pcap",\n "dsf",\n "lnk",\n "alias",\n "voc",\n "ac3",\n "m4v",\n "m4p",\n "m4b",\n "f4v",\n "f4p",\n "f4b",\n "f4a",\n "mie",\n "asf",\n "ogm",\n "ogx",\n "mpc",\n "arrow",\n "shp",\n "aac",\n "mp1",\n "it",\n "s3m",\n "xm",\n "ai",\n "skp",\n "avif",\n "eps",\n "lzh",\n "pgp",\n "asar",\n "stl",\n "chm",\n "3mf",\n "zst",\n "jxl",\n "vcf"\n];\nvar mimeTypes = [\n "image/jpeg",\n "image/png",\n "image/gif",\n "image/webp",\n "image/flif",\n "image/x-xcf",\n "image/x-canon-cr2",\n "image/x-canon-cr3",\n "image/tiff",\n "image/bmp",\n "image/vnd.ms-photo",\n "image/vnd.adobe.photoshop",\n "application/x-indesign",\n "application/epub+zip",\n "application/x-xpinstall",\n "application/vnd.oasis.opendocument.text",\n "application/vnd.oasis.opendocument.spreadsheet",\n "application/vnd.oasis.opendocument.presentation",\n "application/vnd.openxmlformats-officedocument.wordprocessingml.document",\n "application/vnd.openxmlformats-officedocument.presentationml.presentation",\n "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",\n "application/zip",\n "application/x-tar",\n "application/x-rar-compressed",\n "application/gzip",\n "application/x-bzip2",\n "application/x-7z-compressed",\n "application/x-apple-diskimage",\n "application/x-apache-arrow",\n "video/mp4",\n "audio/midi",\n "video/x-matroska",\n "video/webm",\n "video/quicktime",\n "video/vnd.avi",\n "audio/vnd.wave",\n "audio/qcelp",\n "audio/x-ms-asf",\n "video/x-ms-asf",\n "application/vnd.ms-asf",\n "video/mpeg",\n "video/3gpp",\n "audio/mpeg",\n "audio/mp4",\n "audio/opus",\n "video/ogg",\n "audio/ogg",\n "application/ogg",\n "audio/x-flac",\n "audio/ape",\n "audio/wavpack",\n "audio/amr",\n "application/pdf",\n "application/x-elf",\n "application/x-msdownload",\n "application/x-shockwave-flash",\n "application/rtf",\n "application/wasm",\n "font/woff",\n "font/woff2",\n "application/vnd.ms-fontobject",\n "font/ttf",\n "font/otf",\n "image/x-icon",\n "video/x-flv",\n "application/postscript",\n "application/eps",\n "application/x-xz",\n "application/x-sqlite3",\n "application/x-nintendo-nes-rom",\n "application/x-google-chrome-extension",\n "application/vnd.ms-cab-compressed",\n "application/x-deb",\n "application/x-unix-archive",\n "application/x-rpm",\n "application/x-compress",\n "application/x-lzip",\n "application/x-cfb",\n "application/x-mie",\n "application/mxf",\n "video/mp2t",\n "application/x-blender",\n "image/bpg",\n "image/jp2",\n "image/jpx",\n "image/jpm",\n "image/mj2",\n "audio/aiff",\n "application/xml",\n "application/x-mobipocket-ebook",\n "image/heif",\n "image/heif-sequence",\n "image/heic",\n "image/heic-sequence",\n "image/icns",\n "image/ktx",\n "application/dicom",\n "audio/x-musepack",\n "text/calendar",\n "text/vcard",\n "model/gltf-binary",\n "application/vnd.tcpdump.pcap",\n "audio/x-dsf",\n "application/x.ms.shortcut",\n "application/x.apple.alias",\n "audio/x-voc",\n "audio/vnd.dolby.dd-raw",\n "audio/x-m4a",\n "image/apng",\n "image/x-olympus-orf",\n "image/x-sony-arw",\n "image/x-adobe-dng",\n "image/x-nikon-nef",\n "image/x-panasonic-rw2",\n "image/x-fujifilm-raf",\n "video/x-m4v",\n "video/3gpp2",\n "application/x-esri-shape",\n "audio/aac",\n "audio/x-it",\n "audio/x-s3m",\n "audio/x-xm",\n "video/MP1S",\n "video/MP2P",\n "application/vnd.sketchup.skp",\n "image/avif",\n "application/x-lzh-compressed",\n "application/pgp-encrypted",\n "application/x-asar",\n "model/stl",\n "application/vnd.ms-htmlhelp",\n "model/3mf",\n "image/jxl",\n "application/zstd"\n];\n\n// node_modules/file-type/core.js\nvar supportedExtensions = new Set(extensions);\nvar supportedMimeTypes = new Set(mimeTypes);\n\n// src/utils.ts\nvar csettings;\nsettings.subscribe((b) => {\n csettings = b;\n});\nvar threadDataCache = writable();\nvar cthreadDataCache;\nthreadDataCache.subscribe((newval) => {\n cthreadDataCache = newval;\n});\nvar decodeCoom3Payload = async (buff) => {\n if (!csettings)\n throw new Error("Settings uninit");\n const allowed_domains = filehosts.map((e) => e.serving.replaceAll(".", "\\\\."));\n const pees = buff.toString().split(" ").slice(0, csettings.maxe).filter((e) => allowed_domains.some((v) => e.match(`https://(.*\\\\.)?${v}/`)));\n return (await Promise.all(pees.map(async (pee) => {\n try {\n const m = pee.match(/(?https?):\\/\\/(?.*?)(?\\/.*)/);\n if (!m)\n return;\n const { domain, file } = m.groups;\n const headers = await getHeaders(pee);\n const res = await ifetch(pee, {\n headers: { range: "bytes=0-32767", "user-agent": "" },\n mode: "cors",\n referrerPolicy: "no-referrer"\n });\n const size = +headers["content-length"] || 0;\n const header = import_buffer2.Buffer.from(await res.arrayBuffer());\n let hptr = 0;\n if (header.slice(0, 4).toString() == "PEE\\0")\n hptr += 4;\n else\n return;\n const flags = header[hptr];\n const hasFn = !!(flags & 1);\n const hasTags = !!(flags & 2);\n const hasThumbnail = !!(flags & 4);\n let [ptr, ptr2] = [hptr + 1, hptr + 1];\n let fn = "embedded";\n let tags = [];\n let thumb = import_buffer2.Buffer.from(hasembed_default);\n if (hasFn) {\n while (header[ptr2] != 0)\n ptr2++;\n fn = header.slice(ptr, ptr2).toString();\n ptr = ++ptr2;\n }\n if (hasTags) {\n while (header[ptr2] != 0)\n ptr2++;\n tags = header.slice(ptr, ptr2).toString().split(/\\s+/);\n }\n let thumbsize = 0;\n if (hasThumbnail) {\n thumbsize = header.readInt32LE(ptr);\n ptr += 4;\n if (header.byteLength >= ptr + thumbsize)\n thumb = header.slice(ptr, ptr + thumbsize);\n else\n thumb = import_buffer2.Buffer.from(await (await ifetch(pee, { headers: { "user-agent": "", range: `bytes=${ptr}-${ptr + thumbsize}` } })).arrayBuffer());\n ptr += thumbsize;\n }\n const unzip = { url: pee, headers: { "user-agent": "", range: `bytes=${ptr}-${size - 1}` } };\n let data;\n data = unzip;\n if (size < 3072) {\n thumb = data = import_buffer2.Buffer.from(await (await ifetch(unzip.url, { headers: unzip.headers })).arrayBuffer());\n }\n return {\n filename: fn,\n data,\n thumbnail: thumb\n };\n } catch (e) {\n console.warn(e);\n }\n }))).filter((e) => e).map((e) => e);\n};\n\n// src/pngv3.ts\nvar bs58 = __toESM(require_bs58(), 1);\n\n// src/bitstream.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar revbyte = (n, len = 8) => {\n let acc = 0;\n let n2 = n;\n let len2 = len;\n while (len2) {\n acc = acc * 2 + (n2 & 1);\n n2 >>= 1;\n len2--;\n }\n return acc;\n};\nvar BitstreamReader = class {\n constructor() {\n this.buffers = [];\n this.bufferedLength = 0;\n this._offsetIntoBuffer = 0;\n this._bufferIndex = 0;\n this._offset = 0;\n this.skippedLength = 0;\n }\n get bufferIndex() {\n return this._bufferIndex;\n }\n get offset() {\n return this._offset;\n }\n get available() {\n return this.bufferedLength - this.skippedLength;\n }\n getBit(offset) {\n const byte = this.buffers[0][offset >> 3];\n return +!!(byte & 1 << (offset & 7));\n }\n readSync(length) {\n let value = 0;\n if (this._offset >> 3 > this.buffers[0].byteLength) {\n throw "Out of data";\n }\n for (let i = length - 1; i >= 0; --i) {\n value = value * 2 + this.getBit(this._offset + i);\n }\n this._offset += length;\n this.bufferedLength -= length;\n return value;\n }\n addBuffer(buffer) {\n this.buffers.push(buffer);\n this.bufferedLength += buffer.length * 8;\n }\n};\nvar BitstreamWriter = class {\n constructor(stream, bufferSize = 1) {\n this.stream = stream;\n this.pendingBits = 0;\n this.bufferoffset = 0;\n this._offset = 0;\n bufferSize = 1;\n this.buffer = new Uint8Array(bufferSize);\n }\n get offset() {\n return this._offset;\n }\n get byteOffset() {\n return this.pendingBits;\n }\n end() {\n this.flush();\n }\n flush() {\n this.stream.write(new Uint8Array(this.buffer));\n this.bufferoffset = 0;\n this.buffer.fill(0);\n }\n setBit(b) {\n let byte = this.buffer[0];\n byte |= b << (this._offset & 7);\n this.buffer[0] = byte;\n this._offset += 1;\n if (++this.bufferoffset == this.buffer.length * 8) {\n this.flush();\n }\n }\n write(length, value) {\n while (length--) {\n this.setBit(value & 1);\n value >>= 1;\n }\n }\n};\n\n// src/dh-deflate.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar TINF_OK = 0;\nvar Tree = class {\n constructor() {\n this.table = new Uint16Array(16);\n this.trans = new Uint16Array(288);\n }\n};\nvar getPathTo = (tree, value) => {\n if (tree[0] === value)\n return "0";\n if (tree[1] === value)\n return "1";\n let p;\n if (typeof tree[0] != "number")\n p = getPathTo(tree[0], value);\n let b = "0";\n if (!p) {\n if (tree[1] && typeof tree[1] != "number")\n p = getPathTo(tree[1], value);\n b = "1";\n }\n if (p)\n return b + p;\n};\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n let p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n}\nvar Data = class {\n constructor(source, dests, to_hide, hidden) {\n this.source = source;\n this.dests = dests;\n this.to_hide = to_hide;\n this.hidden = hidden;\n this.pathMap = /* @__PURE__ */ new Map();\n this.dest = [];\n this.ltree = new Tree();\n this.dtree = new Tree();\n }\n computeReverse() {\n this.rltree = buildHuffmanTable(this.ltree.table, this.ltree.trans)[0];\n this.rdtree = buildHuffmanTable(this.dtree.table, this.dtree.trans)[0];\n this.adists = new Set(this.rdtree.flat(16));\n }\n};\nvar sltree = new Tree();\nvar sdtree = new Tree();\nvar rltree;\nvar rdtree;\nvar sadist;\nvar length_bits = new Uint8Array(30);\nvar length_base = new Uint16Array(30);\nvar dist_bits = new Uint8Array(30);\nvar dist_base = new Uint16Array(30);\nvar clcidx = new Uint8Array([\n 16,\n 17,\n 18,\n 0,\n 8,\n 7,\n 9,\n 6,\n 10,\n 5,\n 11,\n 4,\n 12,\n 3,\n 13,\n 2,\n 14,\n 1,\n 15\n]);\nvar code_tree = new Tree();\nvar lengths = new Uint8Array(288 + 32);\nfunction tinf_build_bits_base(bits, base, delta, first) {\n let i, sum;\n for (i = 0; i < delta; ++i)\n bits[i] = 0;\n for (i = 0; i < 30 - delta; ++i)\n bits[i + delta] = i / delta | 0;\n for (sum = first, i = 0; i < 30; ++i) {\n base[i] = sum;\n sum += 1 << bits[i];\n }\n}\nfunction tinf_build_fixed_trees(lt, dt) {\n let i;\n for (i = 0; i < 7; ++i)\n lt.table[i] = 0;\n lt.table[7] = 24;\n lt.table[8] = 152;\n lt.table[9] = 112;\n for (i = 0; i < 24; ++i)\n lt.trans[i] = 256 + i;\n for (i = 0; i < 144; ++i)\n lt.trans[24 + i] = i;\n for (i = 0; i < 8; ++i)\n lt.trans[24 + 144 + i] = 280 + i;\n for (i = 0; i < 112; ++i)\n lt.trans[24 + 144 + 8 + i] = 144 + i;\n for (i = 0; i < 5; ++i)\n dt.table[i] = 0;\n dt.table[5] = 32;\n for (i = 0; i < 32; ++i)\n dt.trans[i] = i;\n}\nvar offs = new Uint16Array(16);\nfunction tinf_build_tree(t, lengths2, off, num) {\n let i, sum;\n for (i = 0; i < 16; ++i)\n t.table[i] = 0;\n for (i = 0; i < num; ++i)\n t.table[lengths2[off + i]]++;\n t.table[0] = 0;\n for (sum = 0, i = 0; i < 16; ++i) {\n offs[i] = sum;\n sum += t.table[i];\n }\n for (i = 0; i < num; ++i) {\n if (lengths2[off + i])\n t.trans[offs[lengths2[off + i]]++] = i;\n }\n}\nfunction tinf_getbit(d) {\n const v = d.source.readSync(1);\n return v;\n}\nvar loff = 0;\nvar loffs = [];\nfunction tinf_read_bits(d, num, base) {\n if (!num)\n return base;\n const v = d.source.readSync(num) + base;\n loff = v;\n loffs.push(v);\n if (loffs.length > 4) {\n loffs.shift();\n }\n return v;\n}\nfunction tinf_decode_symbol(d, t, copy = true, ext = {}) {\n let sum = 0, cur = 0, len = 0;\n let s = 0;\n do {\n const b = d.source.readSync(1);\n copy && d.hidden?.write(1, b);\n s = s << 1 | b;\n cur = 2 * cur + b;\n ++len;\n sum += t.table[len];\n cur -= t.table[len];\n } while (cur >= 0);\n ext.length = len;\n ext.sym = s;\n return t.trans[sum + cur];\n}\nfunction tinf_decode_trees(d, lt, dt, copy = true) {\n let i, num, length;\n const hlit = tinf_read_bits(d, 5, 257);\n copy && d.hidden?.write(5, hlit - 257);\n const hdist = tinf_read_bits(d, 5, 1);\n copy && d.hidden?.write(5, hdist - 1);\n const hclen = tinf_read_bits(d, 4, 4);\n copy && d.hidden?.write(4, hclen - 4);\n for (i = 0; i < 19; ++i)\n lengths[i] = 0;\n for (i = 0; i < hclen; ++i) {\n const clen = tinf_read_bits(d, 3, 0);\n copy && d.hidden?.write(3, clen);\n lengths[clcidx[i]] = clen;\n }\n tinf_build_tree(code_tree, lengths, 0, 19);\n for (num = 0; num < hlit + hdist; ) {\n const sym = tinf_decode_symbol(d, code_tree, copy);\n let prev;\n switch (sym) {\n case 16:\n prev = lengths[num - 1];\n length = tinf_read_bits(d, 2, 3);\n copy && d.hidden?.write(2, length - 3);\n for (; length; --length) {\n lengths[num++] = prev;\n }\n break;\n case 17:\n length = tinf_read_bits(d, 3, 3);\n copy && d.hidden?.write(3, length - 3);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n case 18:\n length = tinf_read_bits(d, 7, 11);\n copy && d.hidden?.write(7, length - 11);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n default:\n lengths[num++] = sym;\n break;\n }\n }\n tinf_build_tree(lt, lengths, 0, hlit);\n tinf_build_tree(dt, lengths, hlit, hdist);\n}\nvar get_symbol = (value, bits_table, base_table) => {\n let i = 0;\n for (i = 0; i < base_table.length; ++i) {\n if (base_table[i] > value) {\n i--;\n return [i, bits_table[i], value - base_table[i]];\n }\n }\n i--;\n return [i, bits_table[i], value - base_table[i]];\n};\nvar encode_symbol = (sym, tree, pathMap) => {\n const code = getPathTo(tree, sym);\n const v = {\n length: code?.length,\n val: parseInt(code, 2)\n };\n return v;\n};\nvar capacity = 0;\nfunction tinf_inflate_block_data(d, lt, dt) {\n while (1) {\n let sym = tinf_decode_symbol(d, lt);\n if (sym === 256) {\n return TINF_OK;\n }\n if (sym < 256) {\n d.dest.push(sym);\n } else {\n sym -= 257;\n const length = tinf_read_bits(d, length_bits[sym], length_base[sym]);\n if (length_bits[sym])\n d.hidden?.write(length_bits[sym], length - length_base[sym]);\n const ext = { length: 0, sym: 0 };\n const dist = tinf_decode_symbol(d, dt, false, ext);\n let backoffset = tinf_read_bits(d, dist_bits[dist], dist_base[dist]);\n const offs2 = d.dest.length - backoffset;\n let match;\n const skip = !d.to_hide || d.to_hide && d.to_hide instanceof BitstreamReader && d.to_hide.available == 0;\n if (!skip && (match = Buffer2.from(d.dest.slice(offs2, offs2 + length))).length == length) {\n let begin = d.dest.length - 32768;\n if (begin < 0)\n begin = 0;\n let matches = [];\n let o = 0;\n const slic = Buffer2.from(d.dest.slice(begin + o, d.dest.length));\n while (begin + o < d.dest.length) {\n const r = slic.slice(o, d.dest.length).indexOf(match);\n if (r >= 0) {\n matches.push(r + begin + o);\n o += r;\n } else {\n break;\n }\n o++;\n }\n if (matches.length > 1) {\n matches = matches.map((e) => -(e - d.dest.length)).filter((e) => {\n const [dsym2] = get_symbol(e, dist_bits, dist_base);\n return d.adists.has(dsym2);\n });\n matches.reverse();\n const v = Math.floor(Math.log2(matches.length));\n capacity += v;\n if (d.to_hide instanceof BitstreamReader) {\n if (d.to_hide.available) {\n const s = d.to_hide.readSync(Math.min(d.to_hide.available, v));\n backoffset = matches[s];\n }\n } else {\n const idx = matches.indexOf(backoffset);\n d.to_hide.write(v, idx);\n }\n }\n }\n const [dsym, dlen, doff] = get_symbol(backoffset, dist_bits, dist_base);\n const encdist = encode_symbol(dsym, d.rdtree, d.pathMap);\n d.hidden?.write(encdist.length, revbyte(encdist.val, encdist.length));\n d.hidden?.write(dlen, doff);\n for (let i = offs2; i < offs2 + length; ++i) {\n d.dest.push(d.dest[i]);\n }\n }\n }\n}\nfunction tinf_inflate_uncompressed_block(d) {\n if (d.source.offset & 7)\n d.source.readSync(8 - d.source.offset & 7);\n if (d.hidden && d.hidden.offset & 7)\n d.hidden?.write(8 - d.hidden.offset & 7, 0);\n const length = d.source.readSync(16);\n d.hidden?.write(16, length);\n const invlength = d.source.readSync(16);\n d.hidden?.write(16, invlength);\n if (length !== (~invlength & 65535)) {\n return -4;\n }\n for (let i = length; i; --i) {\n const v = d.source.readSync(8);\n d.dest.push(v);\n d.hidden?.write(8, v);\n }\n return TINF_OK;\n}\nfunction tinf_uncompress(source, decompressed, to_hide, hidden, opt = 0) {\n const decomp = decompressed ? new BitstreamWriter({ write: decompressed }) : null;\n const hid = hidden && new BitstreamWriter({ write: hidden }, 4);\n const d = new Data(source, decomp, to_hide, hid);\n let res;\n let bfinal, btype;\n do {\n bfinal = tinf_getbit(d);\n d.hidden?.write(1, bfinal);\n btype = tinf_read_bits(d, 2, 0);\n d.hidden?.write(2, btype);\n switch (btype) {\n case 0:\n res = tinf_inflate_uncompressed_block(d);\n break;\n case 1:\n d.rdtree = rdtree;\n d.rltree = rltree;\n d.adists = sadist;\n res = tinf_inflate_block_data(d, sltree, sdtree);\n break;\n case 2:\n tinf_decode_trees(d, d.ltree, d.dtree);\n d.computeReverse();\n res = tinf_inflate_block_data(d, d.ltree, d.dtree);\n break;\n default:\n res = -2;\n }\n if (res !== TINF_OK)\n throw new Error("Data error " + res);\n } while (!bfinal);\n decomp?.end();\n hid?.end();\n}\ntinf_build_fixed_trees(sltree, sdtree);\ntinf_build_bits_base(length_bits, length_base, 4, 3);\ntinf_build_bits_base(dist_bits, dist_base, 2, 1);\nrltree = buildHuffmanTable(sltree.table, sltree.trans)[0];\nrdtree = buildHuffmanTable(sdtree.table, sdtree.trans)[0];\nsadist = new Set(rdtree.flat(16));\nlength_bits[28] = 0;\nlength_base[28] = 258;\n\n// src/pngv3.ts\nvar csettings2;\nsettings.subscribe((b) => {\n csettings2 = b;\n});\nvar CUM3 = import_buffer3.Buffer.from("doo\\0m");\nvar CUM4 = import_buffer3.Buffer.from("voo\\0m");\nvar CUM5 = import_buffer3.Buffer.from("boo\\0");\nvar CUM6 = import_buffer3.Buffer.from("Creation Time\\0");\nvar CUM7 = import_buffer3.Buffer.from("Software\\0");\nvar BufferReadStream = (b) => {\n const ret = new ReadableStream({\n pull(cont) {\n cont.enqueue(b);\n cont.close();\n }\n });\n return ret;\n};\nvar password = import_buffer3.Buffer.from("NOA");\nvar xor = (a, p) => {\n let n = 0;\n for (let i = 0; i < a.byteLength; ++i) {\n a[i] ^= p[n];\n n++;\n n %= p.byteLength;\n }\n};\nvar prefs = {\n "files.catbox.moe": "c",\n "a.pomf.cat": "p",\n "take-me-to.space": "t",\n "z.zz.fo": "z"\n};\nvar rprefs = {\n "c": "files.catbox.moe",\n "p": "a.pomf.cat",\n "t": "take-me-to.space",\n "z": "z.zz.fo"\n};\nvar extractFromRawDeflate = (b) => {\n const src = new BitstreamReader();\n src.addBuffer(b);\n const chnks = [];\n const hidden = new BitstreamWriter({\n write(chunk) {\n for (const i of chunk) {\n if (i >= 32 && i <= 128)\n chnks.push(i);\n else\n throw "Finish";\n }\n }\n });\n try {\n tinf_uncompress(src, void 0, hidden, void 0);\n } catch (e) {\n if (e == "Finish")\n return import_buffer3.Buffer.from(chnks);\n }\n return false;\n};\nvar extract = async (png, doextract = true) => {\n const reader = BufferReadStream(png).getReader();\n const sneed = new PNGDecoder(reader, false);\n const ret = [];\n let w;\n if (!csettings2)\n throw new Error("Settings uninit");\n try {\n let complete = false;\n const idats = [];\n for await (const [name, chunk, crc, offset] of sneed.chunks()) {\n let buff;\n switch (name) {\n case "tEXt":\n buff = chunk;\n if (buff.slice(4, 4 + CUM3.length).equals(CUM3)) {\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(buff.slice(4 + CUM3.length));\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM4.length).equals(CUM4)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM4.length);\n xor(passed, password);\n const k = await decodeCoom3Payload(passed);\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM5.length).equals(CUM5)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM5.length);\n const decoded = import_buffer3.Buffer.from(passed.toString(), "base64").toString().split(" ").map((e) => {\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n }\n if (w = [CUM6, CUM7].find((e) => buff.slice(4, 4 + e.length).equals(e))) {\n const passed = buff.slice(4 + w.length);\n if (!passed.toString().match(/^[0-9a-zA-Z+/=]+$/g))\n continue;\n const decoders = [\n (b) => import_buffer3.Buffer.from(b.toString(), "base64").toString(),\n (b) => import_buffer3.Buffer.from(bs58.decode(passed.toString())).toString()\n ];\n for (const d of decoders) {\n try {\n const decoded = d(passed).split(" ").map((e) => {\n if (!(e[0] in rprefs))\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n } catch (e) {\n }\n }\n }\n break;\n case "IDAT":\n if (ret.length)\n return ret;\n buff = chunk;\n idats.push(buff.slice(4));\n break;\n case "IEND":\n complete = true;\n default:\n break;\n }\n }\n if (idats.length) {\n let decoded;\n if ((decoded = extractFromRawDeflate(import_buffer3.Buffer.concat(idats).slice(2))) === false)\n return false;\n const dec = decoded.toString().split(" ").map((e) => {\n if (!(e[0] in rprefs) || e.length < 5)\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (doextract)\n return decodeCoom3Payload(import_buffer3.Buffer.from(dec));\n return true;\n }\n } catch (e) {\n if (e != "Uhh")\n console.error(e);\n } finally {\n reader.releaseLock();\n }\n};\nvar buildChunk = (tag, data) => {\n const ret = import_buffer3.Buffer.alloc(data.byteLength + 4);\n ret.write(tag.slice(0, 4), 0);\n data.copy(ret, 4);\n return ret;\n};\nvar BufferWriteStream = () => {\n let b = import_buffer3.Buffer.from([]);\n const ret = new WritableStream({\n write(chunk) {\n b = import_buffer3.Buffer.concat([b, chunk]);\n console.log("finished appending");\n }\n });\n return [ret, () => b];\n};\nvar embedInRawDeflate = (b, h) => {\n const src = new BitstreamReader();\n const hid = new BitstreamReader();\n hid.addBuffer(h);\n src.addBuffer(b);\n const chnks = [];\n tinf_uncompress(src, void 0, hid, (c) => chnks.push(c));\n return import_buffer3.Buffer.concat(chnks);\n};\nvar inject_data = async (container, injb) => {\n injb = import_buffer3.Buffer.concat([injb, import_buffer3.Buffer.from([0])]);\n if (!csettings2)\n throw new Error("Settings uninit");\n if (csettings2.pmeth < 5) {\n let magic = false;\n const [writestream2, extract6] = BufferWriteStream();\n const encoder = new PNGEncoder(writestream2);\n const decoder = new PNGDecoder(container.stream().getReader());\n for await (const [name, chunk, crc, offset] of decoder.chunks()) {\n if (magic && name != "IDAT")\n break;\n if (!magic && name == "IDAT") {\n const passed = import_buffer3.Buffer.from(injb);\n switch (csettings2.pmeth) {\n case 0:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM3, passed])), 0, 0]);\n break;\n case 1:\n xor(passed, password);\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM4, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 2:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM5, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 3:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM6, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 4:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM7, import_buffer3.Buffer.from(bs58.encode(passed))])), 0, 0]);\n break;\n }\n magic = true;\n }\n await encoder.insertchunk([name, chunk, crc, offset]);\n }\n await encoder.insertchunk([\n "IEND",\n buildChunk("IEND", import_buffer3.Buffer.from([])),\n 0,\n 0\n ]);\n return extract6();\n }\n let pdec = new PNGDecoder(container.stream().getReader());\n const concat = [];\n for await (const chk of pdec.chunks())\n if (chk[0] == "IDAT")\n concat.push(chk[1].slice(4));\n const comp = import_buffer3.Buffer.concat(concat);\n const head = comp.slice(0, 2);\n const chksum = comp.slice(-4);\n const idatblk = embedInRawDeflate(comp.slice(2, -4), injb);\n const [writestream, extract5] = BufferWriteStream();\n const penc = new PNGEncoder(writestream);\n pdec = new PNGDecoder(container.stream().getReader());\n let ins = false;\n for await (const chk of pdec.chunks()) {\n if (chk[0] != "IDAT") {\n await penc.insertchunk(chk);\n } else {\n if (!ins) {\n await penc.insertchunk(["IDAT", import_buffer3.Buffer.concat([import_buffer3.Buffer.from("IDAT"), head, idatblk, chksum]), 0, 0]);\n ins = true;\n }\n }\n }\n await penc.dtor();\n console.log("Finished writing");\n return extract5();\n};\nvar inject = async (container, links) => {\n links = links.map((link) => {\n for (const h of filehosts) {\n if (link.includes(h.serving)) {\n const end = link.split("/").slice(-1)[0];\n return `${prefs[h.serving]}${end}`;\n }\n }\n return "";\n });\n const injb = import_buffer3.Buffer.from(links.join(" "));\n return inject_data(container, injb);\n};\nvar has_embed = async (png) => {\n const r = await extract(png, false);\n return !!r;\n};\nvar pngv3_default = {\n extract,\n has_embed,\n inject,\n match: (fn) => !!fn.match(/\\.png$/)\n};\n\n// src/jpg.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer4 = __toESM(require_buffer(), 1);\n\n// src/f5stego.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction* f5get() {\n let extrBit = 0;\n let k = 0;\n for (let i = 0; i < 4; ++i) {\n const b2 = yield;\n k |= b2 << i;\n }\n k = (k & 15) + 1;\n let toread = 8;\n let len = 0;\n while (toread--) {\n const b2 = yield;\n len = len * 2 + b2;\n }\n const b = yield;\n toread += 8;\n if (b)\n toread += 7;\n else\n len *= 2;\n while (toread--) {\n const b2 = yield;\n len = len * 2 + b2;\n }\n const rlen = revbyte(len, b ? 23 : 16);\n len = rlen;\n if (len > 256)\n throw new Error("Too big for Smash");\n len *= 8;\n const chunks = [];\n const bw = new BitstreamWriter({\n write(chunk) {\n chunks.push(chunk);\n }\n });\n while (len) {\n extrBit = yield;\n bw.write(1, extrBit);\n len--;\n }\n bw.end();\n return Buffer2.concat(chunks).slice(0, rlen);\n}\nvar bitcode = new Array(65535);\nvar category = new Array(65535);\nvar std_dc_luminance_nrcodes = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\nvar std_dc_luminance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_luminance_nrcodes = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\nvar std_ac_luminance_values = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nvar std_dc_chrominance_nrcodes = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\nvar std_dc_chrominance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_chrominance_nrcodes = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\nvar std_ac_chrominance_values = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nfunction _initCategoryNumber() {\n let nrlower = 1;\n let nrupper = 2;\n for (let cat = 1; cat <= 15; cat++) {\n for (let nr = nrlower; nr < nrupper; nr++) {\n category[32767 + nr] = cat;\n bitcode[32767 + nr] = [];\n bitcode[32767 + nr][1] = cat;\n bitcode[32767 + nr][0] = nr;\n }\n for (let nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category[32767 + nrneg] = cat;\n bitcode[32767 + nrneg] = [];\n bitcode[32767 + nrneg][1] = cat;\n bitcode[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n}\n_initCategoryNumber();\nfunction _computeHuffmanTbl(nrcodes, std_table) {\n let codevalue = 0;\n let pos_in_table = 0;\n const HT = [];\n for (let k = 1; k <= 16; k++) {\n for (let j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n}\nvar YDC_HT = _computeHuffmanTbl(std_dc_luminance_nrcodes, std_dc_luminance_values);\nvar UVDC_HT = _computeHuffmanTbl(std_dc_chrominance_nrcodes, std_dc_chrominance_values);\nvar YAC_HT = _computeHuffmanTbl(std_ac_luminance_nrcodes, std_ac_luminance_values);\nvar UVAC_HT = _computeHuffmanTbl(std_ac_chrominance_nrcodes, std_ac_chrominance_values);\nvar __raw, _jfif, _APPn, _qts, _frame, _tail, __f5write, _f5write_fn;\nvar f5stego = class {\n constructor(key2, maxPixels = 4096 * 4096) {\n this.maxPixels = maxPixels;\n __privateAdd(this, __f5write);\n __privateAdd(this, __raw, void 0);\n __privateAdd(this, _jfif, void 0);\n __privateAdd(this, _APPn, void 0);\n __privateAdd(this, _qts, void 0);\n __privateAdd(this, _frame, null);\n __privateAdd(this, _tail, null);\n }\n embed(image, data, k) {\n this.parse(image);\n this.f5put(data, k);\n return this.pack();\n }\n extract(image) {\n try {\n this.gengen = f5get();\n this.gengen.next();\n this.parse(image, true);\n return this.f5get();\n } catch (e) {\n if (e instanceof Buffer2)\n return e;\n throw e;\n }\n }\n f5put(data, k) {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let t, i, comp = __privateGet(this, _frame).components[0];\n if (data.length > 8388607)\n throw "Data too big. Max 8388607 bytes allowed.";\n if (data.length < 32768) {\n t = new Uint8Array(2 + data.length);\n t[0] = data.length & 255;\n t[1] = data.length >>> 8;\n t.set(data, 2);\n } else {\n t = new Uint8Array(3 + data.length);\n t[0] = data.length & 255;\n t[1] = (data.length >>> 8 & 127) + 128;\n t[2] = data.length >>> 15;\n t.set(data, 3);\n }\n if (comp.componentId != 1) {\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n return __privateMethod(this, __f5write, _f5write_fn).call(this, comp.blocks, t, k);\n }\n f5get() {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let comp = __privateGet(this, _frame).components[0];\n if (comp.componentId != 1) {\n for (let i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n const coeff = new Int16Array(comp.blocks.length);\n coeff.set(comp.blocks);\n let pos = -1, extrBit = 0, cCount = coeff.length - 1;\n let n, k = 0;\n let out = new Uint8Array(coeff.length / 8 | 0), extrByte = 0, outPos = 0, bitsAvail = 0, code = 0, hash = 0;\n while (bitsAvail < 4) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n k |= extrBit << bitsAvail;\n bitsAvail++;\n }\n k = (k & 15) + 1;\n n = (1 << k) - 1;\n bitsAvail = 0;\n if (k == 1) {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n extrByte |= extrBit << bitsAvail;\n bitsAvail++;\n if (bitsAvail == 8) {\n out[outPos++] = extrByte;\n extrByte = 0;\n bitsAvail = 0;\n }\n }\n } else {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n hash ^= extrBit * ++code;\n if (code == n) {\n extrByte |= hash << bitsAvail;\n bitsAvail += k;\n code = 0;\n hash = 0;\n while (bitsAvail >= 8) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n }\n }\n }\n while (bitsAvail > 0) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n let s = 2, l = out[0];\n if (out[1] & 128) {\n s++;\n l += ((out[1] & 127) << 8) + (out[2] << 15);\n } else {\n l += out[1] << 8;\n }\n return out.subarray(s, s + l);\n }\n parse(data, tolerant = false) {\n let offset = 0;\n function _buildHuffmanTable(nrcodes, values) {\n let codevalue = 0, pos_in_table = 0, HT = new Uint16Array(65536);\n for (let k = 0; k < 16; k++) {\n for (let j2 = 0; j2 < nrcodes[k]; j2++) {\n for (let i2 = codevalue << 15 - k, cntTo = codevalue + 1 << 15 - k; i2 < cntTo; i2++) {\n HT[i2] = values[pos_in_table] + (k + 1 << 8);\n }\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n const decodeScan = (data2, offset2, frame, components, resetInterval2, spectralStart, spectralEnd, successivePrev, successive) => {\n let startOffset = offset2, bitsData = 0, bitsCount = 0, eobrun = 0, p1 = 1 << successive, m1 = -1 << successive;\n const prevpos = 0;\n const decodeBaseline = (component2, pos) => {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n let diff = 0;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff;\n let k2 = 1, s, r;\n while (k2 < 64) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n bitsCount -= s;\n k2++;\n }\n };\n function decodeDCFirst(component2, pos) {\n let diff = 0;\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff << successive;\n }\n function decodeDCSuccessive(component2, pos) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocksDC[pos >> 6] |= (bitsData >>> --bitsCount & 1) << successive;\n }\n if (!frame)\n throw "Frame not parsed yet";\n function decodeACFirst(component2, pos) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k2 = spectralStart, s, r;\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r != 15) {\n eobrun = (1 << r) - 1;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n bitsCount -= s;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n component2.blocks[pos + k2] *= p1;\n k2++;\n }\n }\n function decodeACSuccessive(component2, pos) {\n let k2 = spectralStart, r, s;\n if (frame == null)\n throw "Frame not defined";\n if (!eobrun) {\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s) {\n if (s != 1)\n throw "bad jpeg";\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n s = bitsData >>> --bitsCount & 1 ? p1 : m1;\n } else {\n if (r != 15) {\n eobrun = 1 << r;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n }\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n } else {\n if (--r < 0)\n break;\n }\n k2++;\n }\n if (s)\n component2.blocks[pos + k2] = s;\n k2++;\n }\n }\n if (eobrun) {\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n }\n k2++;\n }\n eobrun--;\n }\n }\n let decodeFn;\n if (frame.progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n let marker, mcuExpected, i2, j2, k, n, mcusPerLine, mcusPerRow, x, y;\n let lastflushidx = 0;\n const flushBits = () => {\n const component2 = components.find((e) => e.componentId == 1);\n while (component2.blocks[lastflushidx + 1] !== void 0) {\n const blk = component2.blocks[lastflushidx];\n if (blk != 0) {\n const v = blk < 0 ? 1 - (blk & 1) : blk & 1;\n const it = this.gengen.next(v);\n if (it.done) {\n throw it.value;\n }\n }\n lastflushidx++;\n }\n };\n if (components.length == 1) {\n mcusPerLine = components[0].blocksPerLine;\n mcusPerRow = components[0].blocksPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n decodeFn(components[i2], (y * components[i2].blocksPerLineForMcu + x) * 64);\n }\n }\n flushBits();\n }\n } else {\n mcusPerLine = frame.mcusPerLine;\n mcusPerRow = frame.mcusPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n for (j2 = 0; j2 < components[i2].v; j2++) {\n for (k = 0; k < components[i2].h; k++) {\n decodeFn(components[i2], ((y * components[i2].v + j2) * components[i2].blocksPerLineForMcu + x * components[i2].h + k) * 64);\n }\n }\n }\n }\n flushBits();\n }\n }\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n return offset2 - startOffset;\n };\n function readUint16() {\n const value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n const length = readUint16();\n const array = data.subarray(offset, offset + length - 2);\n offset += array.length;\n return array;\n }\n __privateSet(this, __raw, data);\n __privateSet(this, _jfif, null);\n __privateSet(this, _APPn, []);\n __privateSet(this, _qts, []);\n __privateSet(this, _frame, null);\n __privateSet(this, _tail, null);\n let markerHi, markerLo, i, j, resetInterval, component;\n const huffmanTablesAC = [];\n const huffmanTablesDC = [];\n while (1) {\n if (offset >= data.length) {\n if (tolerant)\n break;\n throw "unexpected EOF";\n }\n markerHi = data[offset++];\n markerLo = data[offset++];\n if (markerHi == 255) {\n if (markerLo == 224) {\n __privateSet(this, _jfif, readDataBlock());\n }\n if (markerLo > 224 && markerLo < 240 || markerLo == 254) {\n __privateGet(this, _APPn).push({\n "app": markerLo,\n "data": readDataBlock()\n });\n }\n if (markerLo == 219) {\n __privateGet(this, _qts).push(readDataBlock());\n }\n if (markerLo >= 192 && markerLo <= 194) {\n if (__privateGet(this, _frame))\n throw "Only single frame JPEGs supported";\n readUint16();\n __privateSet(this, _frame, {\n "extended": markerLo === 193,\n "progressive": markerLo === 194,\n "precision": data[offset++],\n "scanLines": readUint16(),\n "samplesPerLine": readUint16(),\n "components": [],\n "componentIds": {},\n "maxH": 1,\n "maxV": 1\n });\n if (__privateGet(this, _frame).scanLines * __privateGet(this, _frame).samplesPerLine > this.maxPixels)\n throw "Image is too big.";\n var componentsCount = data[offset++], componentId;\n let maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n const h = data[offset + 1] >> 4;\n const v = data[offset + 1] & 15;\n if (maxH < h)\n maxH = h;\n if (maxV < v)\n maxV = v;\n const qId = data[offset + 2];\n const l = __privateGet(this, _frame).components.push({\n componentId,\n h,\n v,\n quantizationTable: qId\n });\n __privateGet(this, _frame).componentIds[componentId] = l - 1;\n offset += 3;\n }\n __privateGet(this, _frame).maxH = maxH;\n __privateGet(this, _frame).maxV = maxV;\n const mcusPerLine = Math.ceil(__privateGet(this, _frame).samplesPerLine / 8 / maxH);\n const mcusPerColumn = Math.ceil(__privateGet(this, _frame).scanLines / 8 / maxV);\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n component = __privateGet(this, _frame).components[i];\n const blocksPerLine = Math.ceil(Math.ceil(__privateGet(this, _frame).samplesPerLine / 8) * component.h / maxH);\n const blocksPerColumn = Math.ceil(Math.ceil(__privateGet(this, _frame).scanLines / 8) * component.v / maxV);\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n __privateGet(this, _frame).components[i] = {\n ...component,\n blocks: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu * 64),\n blocksDC: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu),\n blocksPerLine,\n blocksPerColumn,\n blocksPerLineForMcu,\n blocksPerColumnForMcu\n };\n }\n __privateGet(this, _frame).mcusPerLine = mcusPerLine;\n __privateGet(this, _frame).mcusPerColumn = mcusPerColumn;\n }\n if (markerLo == 196) {\n const huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++)\n codeLengthSum += codeLengths[j] = data[offset];\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n const v = _buildHuffmanTable(codeLengths, huffmanValues);\n if (huffmanTableSpec >> 4 === 0)\n huffmanTablesDC[huffmanTableSpec & 15] = v;\n else\n huffmanTablesAC[huffmanTableSpec & 15] = v;\n }\n }\n if (markerLo == 221) {\n resetInterval = readUint16();\n }\n if (markerLo == 218) {\n if (__privateGet(this, _frame) == null)\n throw "SOS before SOF";\n readUint16();\n const selectorsCount = data[offset++];\n const components = [];\n for (i = 0; i < selectorsCount; i++) {\n const componentIndex = __privateGet(this, _frame).componentIds[data[offset++]];\n component = __privateGet(this, _frame).components[componentIndex];\n const tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n const spectralStart = data[offset++];\n const spectralEnd = data[offset++];\n const successiveApproximation = data[offset++];\n const processed = decodeScan(data, offset, __privateGet(this, _frame), components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15);\n offset += processed;\n }\n if (markerLo == 217) {\n break;\n }\n } else {\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n }\n while (data[offset] != 255 && offset < data.length) {\n offset++;\n }\n if (data[offset] != 255) {\n throw "bad jpeg ";\n }\n }\n }\n if (!__privateGet(this, _frame))\n throw "bad jpeg";\n if (offset < data.length)\n __privateSet(this, _tail, data.subarray(offset));\n return this;\n }\n pack() {\n let byteout;\n let bytenew;\n let bytepos;\n let poslast;\n let outpos;\n let byte;\n function writeByte(value) {\n let t;\n byteout[outpos++] = value;\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function writeBlock(block) {\n let t;\n if (outpos + block.length > poslast) {\n t = new Uint8Array(byteout.length * 2 + block.length);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n byteout.set(block, outpos);\n outpos += block.length;\n }\n function writeAPP0(self2) {\n writeWord(65504);\n if (!__privateGet(self2, _jfif)) {\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n } else {\n writeWord(__privateGet(self2, _jfif).length + 2);\n writeBlock(__privateGet(self2, _jfif));\n }\n }\n function writeDQT(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _qts).length; i2++) {\n writeWord(65499);\n writeWord(__privateGet(self2, _qts)[i2].length + 2);\n writeBlock(__privateGet(self2, _qts)[i2]);\n }\n }\n function writeAPPn(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _APPn).length; i2++) {\n writeWord(65280 | __privateGet(self2, _APPn)[i2].app);\n writeWord(__privateGet(self2, _APPn)[i2].data.length + 2);\n writeBlock(__privateGet(self2, _APPn)[i2].data);\n }\n }\n function writeSOF0(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65472);\n writeWord(8 + __privateGet(self2, _frame).components.length * 3);\n writeByte(__privateGet(self2, _frame).precision);\n writeWord(__privateGet(self2, _frame).scanLines);\n writeWord(__privateGet(self2, _frame).samplesPerLine);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n writeByte(c2.h << 4 | c2.v);\n writeByte(c2.quantizationTable);\n }\n }\n function writeDHT(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65476);\n writeWord(31);\n writeByte(0);\n for (let i2 = 0; i2 < 16; i2++) {\n writeByte(std_dc_luminance_nrcodes[i2 + 1]);\n }\n for (let j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values[j]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(16);\n for (let k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes[k + 1]);\n }\n for (let l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values[l]);\n }\n if (__privateGet(self2, _frame).components.length != 1) {\n writeWord(65476);\n writeWord(31);\n writeByte(1);\n for (let m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes[m + 1]);\n }\n for (let n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values[n]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(17);\n for (let o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes[o + 1]);\n }\n for (let p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values[p]);\n }\n }\n }\n function writeSOS(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65498);\n writeWord(6 + __privateGet(self2, _frame).components.length * 2);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n if (i2 === 0) {\n writeByte(0);\n } else {\n writeByte(17);\n }\n }\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(comp, POS, DC, HTDC, HTAC) {\n let pos, posval, t;\n if (bytepos === 0)\n bytenew = 0;\n if (!("blocks" in comp))\n throw "Blocks not parsed";\n const Diff = comp.blocksDC[POS >> 6] - DC;\n DC = comp.blocksDC[POS >> 6];\n if (Diff === 0) {\n posval = HTDC[0][1];\n bytenew <<= posval;\n bytenew += HTDC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n } else {\n pos = 32767 + Diff;\n posval = HTDC[category[pos]][1];\n bytenew <<= posval;\n bytenew += HTDC[category[pos]][0];\n bytepos += posval;\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n let end0pos = 63;\n for (; end0pos > 0 && comp.blocks[POS + end0pos] === 0; end0pos--) {\n }\n if (end0pos === 0) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n return DC;\n }\n let i2 = 1;\n let lng;\n while (i2 <= end0pos) {\n const startpos = i2;\n for (; comp.blocks[POS + i2] === 0 && i2 <= end0pos; ++i2) {\n }\n let nrzeroes = i2 - startpos;\n if (nrzeroes >= 16) {\n lng = nrzeroes >> 4;\n for (let nrmarker = 1; nrmarker <= lng; ++nrmarker) {\n posval = HTAC[240][1];\n bytenew <<= posval;\n bytenew += HTAC[240][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + comp.blocks[POS + i2];\n posval = HTAC[(nrzeroes << 4) + category[pos]][1];\n bytenew <<= posval;\n bytenew += HTAC[(nrzeroes << 4) + category[pos]][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n i2++;\n }\n if (end0pos != 63) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n return DC;\n }\n byteout = new Uint8Array(65536);\n poslast = 65536 - 128;\n outpos = 0;\n bytenew = 0;\n bytepos = 0;\n writeWord(65496);\n writeAPP0(this);\n writeAPPn(this);\n writeDQT(this);\n writeSOF0(this);\n writeDHT(this);\n writeSOS(this);\n bytenew = 0;\n bytepos = 0;\n if (!__privateGet(this, _frame))\n throw "Frame not ready";\n let c, mcuRow, mcuCol, blockRow, blockCol, mcu, i, v, h;\n const DCdiff = [];\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n DCdiff.push(0);\n }\n for (mcu = 0; mcu < __privateGet(this, _frame).mcusPerLine * __privateGet(this, _frame).mcusPerColumn; mcu++) {\n mcuRow = mcu / __privateGet(this, _frame).mcusPerLine | 0;\n mcuCol = mcu % __privateGet(this, _frame).mcusPerLine;\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n c = __privateGet(this, _frame).components[i];\n for (v = 0; v < c.v; v++) {\n blockRow = mcuRow * c.v + v;\n for (h = 0; h < c.h; h++) {\n blockCol = mcuCol * c.h + h;\n if (i === 0) {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], YDC_HT, YAC_HT);\n } else {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], UVDC_HT, UVAC_HT);\n }\n }\n }\n }\n }\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n }\n if (bytepos > 0) {\n bytenew <<= 8 - bytepos;\n bytenew += (1 << 8 - bytepos) - 1;\n byteout[outpos++] = 255 & bytenew;\n }\n writeWord(65497);\n if (__privateGet(this, _tail))\n writeBlock(__privateGet(this, _tail));\n return byteout.slice(0, outpos);\n }\n};\n__raw = new WeakMap();\n_jfif = new WeakMap();\n_APPn = new WeakMap();\n_qts = new WeakMap();\n_frame = new WeakMap();\n_tail = new WeakMap();\n__f5write = new WeakSet();\n_f5write_fn = function(coeff, data, k) {\n const coeff_count = coeff.length;\n let _changed = 0, _embedded = 0, _examined = 0, _thrown = 0, shuffled_index = 0, i, n, ii;\n let next_bit_to_embed = 0, byte_to_embed = data.length, data_idx = 0, available_bits_to_embed = 0;\n n = (1 << k) - 1;\n byte_to_embed = k - 1;\n byte_to_embed ^= 0;\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed = 3;\n for (ii = 0; ii < coeff_count; ii++) {\n shuffled_index = ii;\n if (shuffled_index % 64 === 0 || coeff[shuffled_index] === 0)\n continue;\n const cc = coeff[shuffled_index];\n _examined++;\n if (cc > 0 && (cc & 1) != next_bit_to_embed) {\n coeff[shuffled_index]--;\n _changed++;\n } else if (cc < 0 && (cc & 1) == next_bit_to_embed) {\n coeff[shuffled_index]++;\n _changed++;\n }\n if (coeff[shuffled_index] !== 0) {\n _embedded++;\n if (available_bits_to_embed === 0) {\n if (k != 1 || data_idx >= data.length)\n break;\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n } else {\n _thrown++;\n }\n }\n if (k == 1 && _embedded < data.length * 8)\n throw "capacity exceeded " + _embedded / 8 + " " + data.length;\n if (k != 1) {\n let is_last_byte = false, k_bits_to_embed = 0;\n while (!is_last_byte || available_bits_to_embed !== 0 && is_last_byte) {\n k_bits_to_embed = 0;\n for (i = 0; i < k; i++) {\n if (available_bits_to_embed === 0) {\n if (data_idx >= data.length) {\n is_last_byte = true;\n break;\n }\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n k_bits_to_embed |= next_bit_to_embed << i;\n }\n const code_word = [];\n let ci = null;\n for (i = 0; i < n; i++) {\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n code_word.push(ci);\n }\n _examined += n;\n while (true) {\n var vhash = 0, extracted_bit;\n for (i = 0; i < code_word.length; i++) {\n if (coeff[code_word[i]] > 0) {\n extracted_bit = coeff[code_word[i]] & 1;\n } else {\n extracted_bit = 1 - (coeff[code_word[i]] & 1);\n }\n if (extracted_bit == 1)\n vhash ^= i + 1;\n }\n i = vhash ^ k_bits_to_embed;\n if (!i) {\n _embedded += k;\n break;\n }\n i--;\n coeff[code_word[i]] += coeff[code_word[i]] < 0 ? 1 : -1;\n _changed++;\n if (coeff[code_word[i]] === 0) {\n _thrown++;\n code_word.splice(i, 1);\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n _examined++;\n code_word.push(ci);\n } else {\n _embedded += k;\n break;\n }\n }\n }\n }\n return {\n "k": k,\n "embedded": _embedded / 8,\n "examined": _examined,\n "changed": _changed,\n "thrown": _thrown,\n "efficiency": (_embedded / _changed).toFixed(2)\n };\n};\n\n// src/jpg.ts\nvar key = import_buffer4.Buffer.from("CUNNYCUNNYCUNNY");\nvar f5inst = new f5stego(key);\nvar inject2 = async (b, links) => {\n if (b.size / 20 < links.join(" ").length)\n throw "Image too small to embed.";\n const arr = new Uint8Array(new Uint8Array(await b.arrayBuffer()));\n const buff = f5inst.embed(arr, new TextEncoder().encode(links.join(" ")), 1);\n return import_buffer4.Buffer.from(buff);\n};\nvar has_embed2 = (b) => {\n try {\n const res = f5inst.extract(b);\n if (!res)\n return false;\n if (res.length > 1024)\n return false;\n const str = import_buffer4.Buffer.from(res).toString();\n if (!str.match(/^[a-zA-Z0-9:/.\\-_ ]+$/))\n return false;\n return str;\n } catch {\n return false;\n }\n};\nvar extract2 = (b, ex) => {\n return decodeCoom3Payload(import_buffer4.Buffer.from(ex));\n};\nvar jpg_default = {\n match: (fn) => !!fn.match(/\\.jpe?g$/),\n has_embed: has_embed2,\n extract: extract2,\n inject: inject2\n};\n\n// src/thirdeye.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer5 = __toESM(require_buffer(), 1);\nvar import_jpeg_js = __toESM(require_jpeg_js(), 1);\n\n// src/phash.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar median = (data) => {\n const mdarr = data.slice(0);\n mdarr.sort((a, b) => a - b);\n if (mdarr.length % 2 === 0)\n return (mdarr[mdarr.length / 2 - 1] + mdarr[mdarr.length / 2]) / 2;\n return mdarr[Math.floor(mdarr.length / 2)];\n};\nvar translate_blocks_to_bits = function(blocks, pixels_per_block) {\n const half_block_value = pixels_per_block * 256 * 3 / 2;\n const bandsize = blocks.length / 4;\n for (let i = 0; i < 4; i++) {\n const m = median(blocks.slice(i * bandsize, (i + 1) * bandsize));\n for (let j = i * bandsize; j < (i + 1) * bandsize; j++) {\n const v = blocks[j];\n blocks[j] = Number(v > m || Math.abs(v - m) < 1 && m > half_block_value);\n }\n }\n};\nvar bits_to_hexhash = (bitsArray) => {\n const hex = [];\n for (let i = 0; i < bitsArray.length; i += 4) {\n const nibble = bitsArray.slice(i, i + 4);\n hex.push(parseInt(nibble.join(""), 2).toString(16));\n }\n return hex.join("");\n};\nvar bmvbhash_even = (data, bits) => {\n const blocksize_x = Math.floor(data.width / bits);\n const blocksize_y = Math.floor(data.height / bits);\n const result = [];\n for (let y = 0; y < bits; y++) {\n for (let x = 0; x < bits; x++) {\n let total = 0;\n for (let iy = 0; iy < blocksize_y; iy++) {\n for (let ix = 0; ix < blocksize_x; ix++) {\n const cx = x * blocksize_x + ix;\n const cy = y * blocksize_y + iy;\n const ii = (cy * data.width + cx) * 4;\n const alpha = data.data[ii + 3];\n if (alpha === 0) {\n total += 765;\n } else {\n total += data.data[ii] + data.data[ii + 1] + data.data[ii + 2];\n }\n }\n }\n result.push(total);\n }\n }\n translate_blocks_to_bits(result, blocksize_x * blocksize_y);\n return bits_to_hexhash(result);\n};\n\n// src/thirdeye.ts\nvar csettings3;\nsettings.subscribe((b) => {\n csettings3 = b;\n});\nvar gelquirk = (prefix) => (a) => {\n let base = a.post || a.data || a;\n if (!Array.isArray(base))\n return [];\n base = base.filter((e) => e.file_url);\n return base.map((e) => ({\n full_url: e.file_url,\n preview_url: e.preview_url || e.preview_url,\n source: e.source,\n ext: e.file_ext || e.file_url.substr(e.file_url.lastIndexOf(".") + 1),\n page: `${prefix}${e.id || e.parent_id}`,\n tags: (e.tag_string || (e.tags && (Array.isArray(e.tags) && (typeof e.tags[0] == "string" ? e.tags.join(" ") : e.tags.map((e2) => e2.name_en).join(" "))) || e.tags) || "").split(" ")\n })) || [];\n};\nvar experimentalApi = false;\nvar black = /* @__PURE__ */ new Set();\nvar phashEn = false;\nvar mindist = 5;\nsettings.subscribe((s) => {\n if (!s)\n return;\n experimentalApi = s.expte;\n boorus = s.rsources.map((e) => ({\n ...e,\n quirks: gelquirk(e.view)\n }));\n black = new Set(s.blacklist);\n mindist = s.mdist || 5;\n phashEn = s.phash;\n});\nvar boorus = [];\nvar unlockQueue = Promise.resolve();\nvar cache = {};\nvar findFileFrom = async (b, hex, abort) => {\n try {\n if (b.domain in cache && hex in cache[b.domain])\n return cache[b.domain][hex];\n const res = await ifetch(`https://${b.domain}${b.endpoint}${hex}`);\n const txt = await res.text();\n const pres = JSON.parse(txt);\n const tran = b.quirks(pres).filter((e) => !e.tags.some((e2) => black.has(e2)));\n if (!(b.domain in cache))\n cache[b.domain] = {};\n cache[b.domain][hex] = tran;\n return tran;\n } catch (e) {\n const error = e;\n if (!error.message.includes("Unexpected end of JSON input"))\n console.error(e);\n return [];\n }\n};\nvar extract3 = async (b, fn) => {\n if (!csettings3)\n throw new Error("Settings uninit");\n let result;\n let booru;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n if (result.length) {\n booru = e.name;\n break;\n }\n }\n let cachedFile;\n const prev = result[0].preview_url;\n const full = result[0].full_url;\n return [{\n source: result[0].source,\n page: {\n title: booru,\n url: result[0].page\n },\n filename: fn.substring(0, 33) + result[0].ext,\n thumbnail: csettings3.hotlink ? prev || full : import_buffer5.Buffer.from(await (await ifetch(prev || full)).arrayBuffer()),\n data: csettings3.hotlink ? full || prev : { url: full || prev }\n }];\n};\nvar phash = (b) => {\n const res = (0, import_jpeg_js.decode)(b);\n return bmvbhash_even(res, 8);\n};\nvar hammingDist = (a, b) => {\n let res = BigInt("0x" + a) ^ BigInt("0x" + b);\n let acc = 0;\n while (res != 0n) {\n acc += Number(res & 1n);\n res >>= 1n;\n }\n return acc;\n};\nvar has_embed3 = async (b, fn, prevlink) => {\n if (import_buffer5.Buffer.from(fn, "hex").equals(b))\n return false;\n let result = void 0;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n result = result.filter((e2) => e2.full_url || e2.preview_url);\n if (result.length)\n break;\n }\n if (result && result.length != 0 && phashEn && prevlink) {\n if (!result[0].preview_url)\n return true;\n const getHash = async (l) => {\n const ogreq = await ifetch(l);\n const origPreview = await ogreq.arrayBuffer();\n return phash(import_buffer5.Buffer.from(origPreview));\n };\n const [orighash, tehash] = await Promise.all([\n getHash(prevlink),\n getHash(result[0].preview_url)\n ]);\n const d = hammingDist(orighash, tehash);\n console.log(d, prevlink);\n return d > mindist;\n }\n return result && result.length != 0;\n};\nvar thirdeye_default = {\n skip: true,\n extract: extract3,\n has_embed: has_embed3,\n match: (fn) => !!fn.match(/^[0-9a-f]{32}\\.....?/)\n};\n\n// src/pomf.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer6 = __toESM(require_buffer(), 1);\nvar sources = [\n { host: "Catbox", prefix: "files.catbox.moe/" },\n { host: "Litter", prefix: "litter.catbox.moe/" },\n { host: "Zzzz", prefix: "z.zz.fo/" }\n];\nvar csettings4;\nsettings.subscribe((b) => {\n csettings4 = b;\n});\nvar getExt = (fn) => {\n const isB64 = fn.match(/^((?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=))?\\.(gif|jpe?g|png|webm)/);\n const isExt = fn.match(/\\[.*=(.*)\\]/);\n let ext;\n let source;\n try {\n if (isB64) {\n ext = atob(isB64[1]);\n } else if (isExt) {\n ext = decodeURIComponent(isExt[1]);\n if (ext.startsWith("https://"))\n ext = ext.slice("https://".length);\n for (const cs of sources)\n if (ext.startsWith(cs.prefix)) {\n source = cs.prefix;\n ext = ext.slice(cs.prefix.length);\n break;\n }\n }\n } catch {\n }\n return { ext, source };\n};\nvar extract4 = async (b, fn) => {\n if (!csettings4)\n throw new Error("Settings uninit");\n const { ext, source } = getExt(fn);\n let rsource;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n await getHeaders("https://" + cs.prefix + ext);\n rsource = "https://" + cs.prefix + ext;\n break;\n } catch {\n }\n }\n return [{\n filename: ext,\n data: csettings4.hotlink ? rsource : { url: rsource },\n thumbnail: import_buffer6.Buffer.from(hasembed_default)\n }];\n};\nvar has_embed4 = async (b, fn) => {\n const { ext, source } = getExt(fn);\n if (!ext)\n return false;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n const e = await getHeaders("https://" + cs.prefix + ext);\n return true;\n } catch {\n }\n }\n return false;\n};\nvar pomf_default = {\n skip: true,\n extract: extract4,\n has_embed: has_embed4,\n match: (fn) => !!getExt(fn)\n};\n\n// src/processor.worker.ts\nconsole.log("Worker started");\nvar pendinggens = {};\nvar proxyAsyncGen = (id) => {\n return {\n next(arg) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n return(v) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n throw() {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n [Symbol.asyncIterator]() {\n return this;\n }\n };\n};\nvar deserializeMessage = (m) => {\n if (m instanceof MessagePort)\n return m;\n if (typeof m == "object" && m.type == "AsyncGenerator") {\n return proxyAsyncGen(m.id);\n }\n if (typeof m == "object") {\n for (const p in m) {\n m[p] = deserializeMessage(m[p]);\n }\n }\n return m;\n};\nvar processors = [thirdeye_default, pomf_default, pngv3_default, jpg_default];\nvar processImage = async (srcs, fn, hex, prevurl) => {\n const ret = await Promise.all(processors.filter((e) => e.match(fn)).map(async (proc) => {\n if (proc.skip) {\n const md5 = Buffer2.from(hex, "base64");\n if (await proc.has_embed(md5, fn, prevurl) === true) {\n return [await proc.extract(md5, fn), true];\n }\n return;\n }\n let succ = false;\n let cumul;\n do {\n try {\n const n = await srcs.next();\n if (n.done)\n return;\n const iter = streamRemote(n.value);\n if (!iter)\n return;\n cumul = Buffer2.alloc(0);\n let found;\n let chunk = { done: true };\n do {\n const { value, done } = await iter.next(typeof found === "boolean");\n if (done) {\n chunk = { done: true };\n } else {\n chunk = { done: false, value };\n cumul = Buffer2.concat([cumul, value]);\n const v = await proc.has_embed(cumul);\n if (typeof v == "string") {\n return [await proc.extract(cumul, v), false];\n }\n found = v;\n }\n } while (found !== false && !chunk.done);\n succ = true;\n await iter.next(true);\n if (found !== true) {\n return;\n }\n return [await proc.extract(cumul), false];\n } catch (err) {\n console.log(err);\n }\n } while (!succ);\n }));\n return ret.filter((e) => e).map((e) => e);\n};\nvar init2 = false;\n(async () => {\n onmessage = async (msg) => {\n const des = deserializeMessage(msg.data);\n switch (des.type) {\n case "ipc": {\n setupPort(des.port);\n const nset = await localLoad("settingsv2", initial_settings);\n settings.set(nset);\n break;\n }\n case "cmd": {\n switch (des.fun) {\n case "processImage": {\n if (!init2) {\n await new Promise((_) => {\n settings.subscribe((v) => {\n if (v)\n _();\n });\n });\n init2 = true;\n }\n const res = await processImage(des.args[0], des.args[1], des.args[2], des.args[3]);\n const tr = [];\n for (const ef of res) {\n for (const e of ef[0]) {\n if (e.thumbnail && Buffer2.isBuffer(e.thumbnail) || typeof e.thumbnail != "string")\n tr.push(e.thumbnail.buffer);\n if (Buffer2.isBuffer(e.data) || typeof e.data != "string" && !("url" in e.data))\n tr.push(e.data.buffer);\n }\n }\n postMessage({\n type: "reply",\n id: des.id,\n res\n }, [...new Set(tr)]);\n }\n }\n break;\n }\n case "ag": {\n const cb = pendinggens[des.id].shift();\n if (cb) {\n cb(des.res);\n }\n break;\n }\n }\n };\n})();\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n'); } // src/main.ts @@ -21924,11 +21922,15 @@ Use the WebExtension version of PEE if you want to use b4k!`); if (!el && e.classList.contains("postContainer")) el = [e]; if (el) { - appState.update((v) => { - v.processing += el.length; - return v; - }); - [...el].map((el2) => processPost(el2)); + for (const e2 of el) { + if (processed.has(e2.id)) + continue; + appState.update((v) => { + v.processing += 1; + return v; + }); + processPost(e2); + } } }); }); @@ -22063,11 +22065,13 @@ Use the WebExtension version of PEE if you want to use b4k!`); const postContainer = document.getElementById("pc" + post.substring(post.indexOf(".") + 1)); const fn = qp.getFilename(postContainer); if (fn) { - appState.update((v) => { - v.processing++; - return v; - }); - processPost(postContainer); + if (!processed.has(postContainer.id)) { + appState.update((v) => { + v.processing++; + return v; + }); + processPost(postContainer); + } } } }); diff --git a/chrome/manifest.json b/chrome/manifest.json index 8bb12b8..cf21479 100644 --- a/chrome/manifest.json +++ b/chrome/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 3, "name": "PngExtraEmbedder", "description": "Discover embedded files on 4chan and archives!", - "version": "0.313", + "version": "0.314", "icons": { "64": "1449696017588.png" }, diff --git a/dist/main.js b/dist/main.js index 01b7fec..2a45646 100644 --- a/dist/main.js +++ b/dist/main.js @@ -73,7 +73,7 @@ var define_BUILD_VERSION_default; var init_define_BUILD_VERSION = __esm({ ""() { - define_BUILD_VERSION_default = [0, 313]; + define_BUILD_VERSION_default = [0, 314]; } }); @@ -11818,7 +11818,8 @@ let toread = 8; let len = 0; while (toread--) { - len = len * 2 + (yield); + const b2 = yield; + len = len * 2 + b2; } const b = yield; toread += 8; @@ -11827,12 +11828,13 @@ else len *= 2; while (toread--) { - len = len * 2 + (yield); + const b2 = yield; + len = len * 2 + b2; } - let rlen = revbyte(len, b ? 23 : 16); + const rlen = revbyte(len, b ? 23 : 16); len = rlen; - if (len >= 256) - len = rlen = 256; + if (len > 256) + throw new Error("Too big for Smash"); len *= 8; const chunks = []; const bw = new BitstreamWriter({ @@ -12302,15 +12304,9 @@ } const coeff = new Int16Array(comp.blocks.length); coeff.set(comp.blocks); - let pos = -1, extrBit = 0; - const cCount = coeff.length - 1; - let k = 0; - const out = new Uint8Array(coeff.length / 8 | 0); - let extrByte = 0; - let outPos = 0; - let bitsAvail = 0; - let code = 0; - let hash2 = 0; + let pos = -1, extrBit = 0, cCount = coeff.length - 1; + let n, k = 0; + let out = new Uint8Array(coeff.length / 8 | 0), extrByte = 0, outPos = 0, bitsAvail = 0, code = 0, hash2 = 0; while (bitsAvail < 4) { pos++; if (coeff[pos] === 0) { @@ -12324,7 +12320,7 @@ bitsAvail++; } k = (k & 15) + 1; - const n = (1 << k) - 1; + n = (1 << k) - 1; bitsAvail = 0; if (k == 1) { while (pos < cCount) { @@ -12385,9 +12381,7 @@ parse(data, tolerant = false) { let offset = 0; function _buildHuffmanTable(nrcodes, values) { - let codevalue = 0; - let pos_in_table = 0; - const HT = new Uint16Array(65536); + let codevalue = 0, pos_in_table = 0, HT = new Uint16Array(65536); for (let k = 0; k < 16; k++) { for (let j2 = 0; j2 < nrcodes[k]; j2++) { for (let i2 = codevalue << 15 - k, cntTo = codevalue + 1 << 15 - k; i2 < cntTo; i2++) { @@ -12401,10 +12395,8 @@ return HT; } const decodeScan = (data2, offset2, frame, components, resetInterval2, spectralStart, spectralEnd, successivePrev, successive) => { - const startOffset = offset2; - let bitsData = 0, bitsCount = 0, eobrun = 0; - const p1 = 1 << successive; - const m1 = -1 << successive; + let startOffset = offset2, bitsData = 0, bitsCount = 0, eobrun = 0, p1 = 1 << successive, m1 = -1 << successive; + const prevpos = 0; const decodeBaseline = (component2, pos) => { while (bitsCount < 16) { bitsData = (bitsData << 8) + (data2[offset2] | 0); @@ -12461,18 +12453,9 @@ offset2++; bitsCount += 8; } - if (component2.componentId == 1) { - component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1; - if (component2.blocks[pos + k2] < 1 << s - 1) - component2.blocks[pos + k2] += (-1 << s) + 1; - if (this.gengen && component2.blocks[pos + k2] != 0) { - const v = component2.blocks[pos + k2] < 0 ? 1 - (component2.blocks[pos + k2] & 1) : component2.blocks[pos + k2] & 1; - const it = this.gengen.next(v); - if (it.done) { - throw it.value; - } - } - } + component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1; + if (component2.blocks[pos + k2] < 1 << s - 1) + component2.blocks[pos + k2] += (-1 << s) + 1; bitsCount -= s; k2++; } @@ -12660,6 +12643,21 @@ decodeFn = decodeBaseline; } let marker, mcuExpected, i2, j2, k, n, mcusPerLine, mcusPerRow, x, y; + let lastflushidx = 0; + const flushBits = () => { + const component2 = components.find((e) => e.componentId == 1); + while (component2.blocks[lastflushidx + 1] !== void 0) { + const blk = component2.blocks[lastflushidx]; + if (blk != 0) { + const v = blk < 0 ? 1 - (blk & 1) : blk & 1; + const it = this.gengen.next(v); + if (it.done) { + throw it.value; + } + } + lastflushidx++; + } + }; if (components.length == 1) { mcusPerLine = components[0].blocksPerLine; mcusPerRow = components[0].blocksPerColumn; @@ -12694,6 +12692,7 @@ decodeFn(components[i2], (y * components[i2].blocksPerLineForMcu + x) * 64); } } + flushBits(); } } else { mcusPerLine = frame.mcusPerLine; @@ -12735,6 +12734,7 @@ } } } + flushBits(); } } offset2 -= bitsCount / 8 | 0; @@ -12800,8 +12800,7 @@ }); if (__privateGet(this, _frame).scanLines * __privateGet(this, _frame).samplesPerLine > this.maxPixels) throw "Image is too big."; - const componentsCount = data[offset++]; - let componentId; + var componentsCount = data[offset++], componentId; let maxH = 0, maxV = 0; for (i = 0; i < componentsCount; i++) { componentId = data[offset]; @@ -13257,9 +13256,9 @@ __f5write = new WeakSet(); _f5write_fn = function(coeff, data, k) { const coeff_count = coeff.length; - let _changed = 0, _embedded = 0, _examined = 0, _thrown = 0, shuffled_index = 0, i, ii; + let _changed = 0, _embedded = 0, _examined = 0, _thrown = 0, shuffled_index = 0, i, n, ii; let next_bit_to_embed = 0, byte_to_embed = data.length, data_idx = 0, available_bits_to_embed = 0; - const n = (1 << k) - 1; + n = (1 << k) - 1; byte_to_embed = k - 1; byte_to_embed ^= 0; next_bit_to_embed = byte_to_embed & 1; @@ -13330,8 +13329,7 @@ } _examined += n; while (true) { - let vhash = 0; - let extracted_bit; + var vhash = 0, extracted_bit; for (i = 0; i < code_word.length; i++) { if (coeff[code_word[i]] > 0) { extracted_bit = coeff[code_word[i]] & 1; @@ -21389,7 +21387,7 @@ // src/processor.worker.ts function Worker2() { - return inlineWorker('var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key2 of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key2) && key2 !== except)\n __defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));\nvar __decorateClass = (decorators, target, key2, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key2) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key2, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key2, result);\n return result;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError("Cannot " + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, "read from private field");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError("Cannot add the same private member more than once");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, "write to private field");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, "access private method");\n return method;\n};\nvar __toBinary = /* @__PURE__ */ (() => {\n var table = new Uint8Array(128);\n for (var i = 0; i < 64; i++)\n table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i;\n return (base64) => {\n var n = base64.length, bytes = new Uint8Array((n - (base64[n - 1] == "=") - (base64[n - 2] == "=")) * 3 / 4 | 0);\n for (var i2 = 0, j = 0; i2 < n; ) {\n var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)];\n var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)];\n bytes[j++] = c0 << 2 | c1 >> 4;\n bytes[j++] = c1 << 4 | c2 >> 2;\n bytes[j++] = c2 << 6 | c3;\n }\n return bytes;\n };\n})();\n\n// \nvar init_define_BUILD_VERSION = __esm({\n ""() {\n }\n});\n\n// node_modules/base64-js/index.js\nvar require_base64_js = __commonJS({\n "node_modules/base64-js/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.byteLength = byteLength;\n exports.toByteArray = toByteArray;\n exports.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array;\n var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";\n for (i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n var i;\n var len;\n revLookup["-".charCodeAt(0)] = 62;\n revLookup["_".charCodeAt(0)] = 63;\n function getLens(b64) {\n var len2 = b64.length;\n if (len2 % 4 > 0) {\n throw new Error("Invalid string. Length must be a multiple of 4");\n }\n var validLen = b64.indexOf("=");\n if (validLen === -1)\n validLen = len2;\n var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n }\n function byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0;\n var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i2;\n for (i2 = 0; i2 < len2; i2 += 4) {\n tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)];\n arr[curByte++] = tmp >> 16 & 255;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n return arr;\n }\n function tripletToBase64(num) {\n return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];\n }\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n for (var i2 = start; i2 < end; i2 += 3) {\n tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255);\n output.push(tripletToBase64(tmp));\n }\n return output.join("");\n }\n function fromByteArray(uint8) {\n var tmp;\n var len2 = uint8.length;\n var extraBytes = len2 % 3;\n var parts = [];\n var maxChunkLength = 16383;\n for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) {\n parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength));\n }\n if (extraBytes === 1) {\n tmp = uint8[len2 - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "==");\n } else if (extraBytes === 2) {\n tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "=");\n }\n return parts.join("");\n }\n }\n});\n\n// node_modules/ieee754/index.js\nvar require_ieee754 = __commonJS({\n "node_modules/ieee754/index.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.read = function(buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n exports.write = function(buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {\n }\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {\n }\n buffer[offset + i - d] |= s * 128;\n };\n }\n});\n\n// node_modules/buffer/index.js\nvar require_buffer = __commonJS({\n "node_modules/buffer/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var base64 = require_base64_js();\n var ieee7542 = require_ieee754();\n var customInspectSymbol = typeof Symbol === "function" && typeof Symbol["for"] === "function" ? Symbol["for"]("nodejs.util.inspect.custom") : null;\n exports.Buffer = Buffer13;\n exports.SlowBuffer = SlowBuffer;\n exports.INSPECT_MAX_BYTES = 50;\n var K_MAX_LENGTH = 2147483647;\n exports.kMaxLength = K_MAX_LENGTH;\n Buffer13.TYPED_ARRAY_SUPPORT = typedArraySupport();\n if (!Buffer13.TYPED_ARRAY_SUPPORT && typeof console !== "undefined" && typeof console.error === "function") {\n console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");\n }\n function typedArraySupport() {\n try {\n const arr = new Uint8Array(1);\n const proto = { foo: function() {\n return 42;\n } };\n Object.setPrototypeOf(proto, Uint8Array.prototype);\n Object.setPrototypeOf(arr, proto);\n return arr.foo() === 42;\n } catch (e) {\n return false;\n }\n }\n Object.defineProperty(Buffer13.prototype, "parent", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.buffer;\n }\n });\n Object.defineProperty(Buffer13.prototype, "offset", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.byteOffset;\n }\n });\n function createBuffer(length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError(\'The value "\' + length + \'" is invalid for option "size"\');\n }\n const buf2 = new Uint8Array(length);\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function Buffer13(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n if (typeof encodingOrOffset === "string") {\n throw new TypeError(\'The "string" argument must be of type string. Received type number\');\n }\n return allocUnsafe(arg);\n }\n return from(arg, encodingOrOffset, length);\n }\n Buffer13.poolSize = 8192;\n function from(value, encodingOrOffset, length) {\n if (typeof value === "string") {\n return fromString(value, encodingOrOffset);\n }\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value);\n }\n if (value == null) {\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof SharedArrayBuffer !== "undefined" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof value === "number") {\n throw new TypeError(\'The "value" argument must not be of type number. Received type number\');\n }\n const valueOf = value.valueOf && value.valueOf();\n if (valueOf != null && valueOf !== value) {\n return Buffer13.from(valueOf, encodingOrOffset, length);\n }\n const b = fromObject(value);\n if (b)\n return b;\n if (typeof Symbol !== "undefined" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === "function") {\n return Buffer13.from(value[Symbol.toPrimitive]("string"), encodingOrOffset, length);\n }\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n Buffer13.from = function(value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n };\n Object.setPrototypeOf(Buffer13.prototype, Uint8Array.prototype);\n Object.setPrototypeOf(Buffer13, Uint8Array);\n function assertSize(size) {\n if (typeof size !== "number") {\n throw new TypeError(\'"size" argument must be of type number\');\n } else if (size < 0) {\n throw new RangeError(\'The value "\' + size + \'" is invalid for option "size"\');\n }\n }\n function alloc(size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(size);\n }\n if (fill !== void 0) {\n return typeof encoding === "string" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n return createBuffer(size);\n }\n Buffer13.alloc = function(size, fill, encoding) {\n return alloc(size, fill, encoding);\n };\n function allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n }\n Buffer13.allocUnsafe = function(size) {\n return allocUnsafe(size);\n };\n Buffer13.allocUnsafeSlow = function(size) {\n return allocUnsafe(size);\n };\n function fromString(string, encoding) {\n if (typeof encoding !== "string" || encoding === "") {\n encoding = "utf8";\n }\n if (!Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n const length = byteLength(string, encoding) | 0;\n let buf2 = createBuffer(length);\n const actual = buf2.write(string, encoding);\n if (actual !== length) {\n buf2 = buf2.slice(0, actual);\n }\n return buf2;\n }\n function fromArrayLike(array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0;\n const buf2 = createBuffer(length);\n for (let i = 0; i < length; i += 1) {\n buf2[i] = array[i] & 255;\n }\n return buf2;\n }\n function fromArrayView(arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView);\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);\n }\n return fromArrayLike(arrayView);\n }\n function fromArrayBuffer(array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError(\'"offset" is outside of buffer bounds\');\n }\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError(\'"length" is outside of buffer bounds\');\n }\n let buf2;\n if (byteOffset === void 0 && length === void 0) {\n buf2 = new Uint8Array(array);\n } else if (length === void 0) {\n buf2 = new Uint8Array(array, byteOffset);\n } else {\n buf2 = new Uint8Array(array, byteOffset, length);\n }\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function fromObject(obj) {\n if (Buffer13.isBuffer(obj)) {\n const len = checked(obj.length) | 0;\n const buf2 = createBuffer(len);\n if (buf2.length === 0) {\n return buf2;\n }\n obj.copy(buf2, 0, 0, len);\n return buf2;\n }\n if (obj.length !== void 0) {\n if (typeof obj.length !== "number" || numberIsNaN(obj.length)) {\n return createBuffer(0);\n }\n return fromArrayLike(obj);\n }\n if (obj.type === "Buffer" && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n }\n function checked(length) {\n if (length >= K_MAX_LENGTH) {\n throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + K_MAX_LENGTH.toString(16) + " bytes");\n }\n return length | 0;\n }\n function SlowBuffer(length) {\n if (+length != length) {\n length = 0;\n }\n return Buffer13.alloc(+length);\n }\n Buffer13.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer13.prototype;\n };\n Buffer13.compare = function compare(a, b) {\n if (isInstance(a, Uint8Array))\n a = Buffer13.from(a, a.offset, a.byteLength);\n if (isInstance(b, Uint8Array))\n b = Buffer13.from(b, b.offset, b.byteLength);\n if (!Buffer13.isBuffer(a) || !Buffer13.isBuffer(b)) {\n throw new TypeError(\'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array\');\n }\n if (a === b)\n return 0;\n let x = a.length;\n let y = b.length;\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n Buffer13.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "latin1":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return true;\n default:\n return false;\n }\n };\n Buffer13.concat = function concat(list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n }\n if (list.length === 0) {\n return Buffer13.alloc(0);\n }\n let i;\n if (length === void 0) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n const buffer = Buffer13.allocUnsafe(length);\n let pos = 0;\n for (i = 0; i < list.length; ++i) {\n let buf2 = list[i];\n if (isInstance(buf2, Uint8Array)) {\n if (pos + buf2.length > buffer.length) {\n if (!Buffer13.isBuffer(buf2))\n buf2 = Buffer13.from(buf2);\n buf2.copy(buffer, pos);\n } else {\n Uint8Array.prototype.set.call(buffer, buf2, pos);\n }\n } else if (!Buffer13.isBuffer(buf2)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n } else {\n buf2.copy(buffer, pos);\n }\n pos += buf2.length;\n }\n return buffer;\n };\n function byteLength(string, encoding) {\n if (Buffer13.isBuffer(string)) {\n return string.length;\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength;\n }\n if (typeof string !== "string") {\n throw new TypeError(\'The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type \' + typeof string);\n }\n const len = string.length;\n const mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0)\n return 0;\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "ascii":\n case "latin1":\n case "binary":\n return len;\n case "utf8":\n case "utf-8":\n return utf8ToBytes(string).length;\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return len * 2;\n case "hex":\n return len >>> 1;\n case "base64":\n return base64ToBytes(string).length;\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length;\n }\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.byteLength = byteLength;\n function slowToString(encoding, start, end) {\n let loweredCase = false;\n if (start === void 0 || start < 0) {\n start = 0;\n }\n if (start > this.length) {\n return "";\n }\n if (end === void 0 || end > this.length) {\n end = this.length;\n }\n if (end <= 0) {\n return "";\n }\n end >>>= 0;\n start >>>= 0;\n if (end <= start) {\n return "";\n }\n if (!encoding)\n encoding = "utf8";\n while (true) {\n switch (encoding) {\n case "hex":\n return hexSlice(this, start, end);\n case "utf8":\n case "utf-8":\n return utf8Slice(this, start, end);\n case "ascii":\n return asciiSlice(this, start, end);\n case "latin1":\n case "binary":\n return latin1Slice(this, start, end);\n case "base64":\n return base64Slice(this, start, end);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return utf16leSlice(this, start, end);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = (encoding + "").toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.prototype._isBuffer = true;\n function swap(b, n, m) {\n const i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n Buffer13.prototype.swap16 = function swap16() {\n const len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 16-bits");\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this;\n };\n Buffer13.prototype.swap32 = function swap32() {\n const len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 32-bits");\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this;\n };\n Buffer13.prototype.swap64 = function swap64() {\n const len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 64-bits");\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this;\n };\n Buffer13.prototype.toString = function toString() {\n const length = this.length;\n if (length === 0)\n return "";\n if (arguments.length === 0)\n return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n };\n Buffer13.prototype.toLocaleString = Buffer13.prototype.toString;\n Buffer13.prototype.equals = function equals(b) {\n if (!Buffer13.isBuffer(b))\n throw new TypeError("Argument must be a Buffer");\n if (this === b)\n return true;\n return Buffer13.compare(this, b) === 0;\n };\n Buffer13.prototype.inspect = function inspect() {\n let str = "";\n const max = exports.INSPECT_MAX_BYTES;\n str = this.toString("hex", 0, max).replace(/(.{2})/g, "$1 ").trim();\n if (this.length > max)\n str += " ... ";\n return "";\n };\n if (customInspectSymbol) {\n Buffer13.prototype[customInspectSymbol] = Buffer13.prototype.inspect;\n }\n Buffer13.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer13.from(target, target.offset, target.byteLength);\n }\n if (!Buffer13.isBuffer(target)) {\n throw new TypeError(\'The "target" argument must be one of type Buffer or Uint8Array. Received type \' + typeof target);\n }\n if (start === void 0) {\n start = 0;\n }\n if (end === void 0) {\n end = target ? target.length : 0;\n }\n if (thisStart === void 0) {\n thisStart = 0;\n }\n if (thisEnd === void 0) {\n thisEnd = this.length;\n }\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError("out of range index");\n }\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n if (thisStart >= thisEnd) {\n return -1;\n }\n if (start >= end) {\n return 1;\n }\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target)\n return 0;\n let x = thisEnd - thisStart;\n let y = end - start;\n const len = Math.min(x, y);\n const thisCopy = this.slice(thisStart, thisEnd);\n const targetCopy = target.slice(start, end);\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n if (buffer.length === 0)\n return -1;\n if (typeof byteOffset === "string") {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 2147483647) {\n byteOffset = 2147483647;\n } else if (byteOffset < -2147483648) {\n byteOffset = -2147483648;\n }\n byteOffset = +byteOffset;\n if (numberIsNaN(byteOffset)) {\n byteOffset = dir ? 0 : buffer.length - 1;\n }\n if (byteOffset < 0)\n byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir)\n return -1;\n else\n byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir)\n byteOffset = 0;\n else\n return -1;\n }\n if (typeof val === "string") {\n val = Buffer13.from(val, encoding);\n }\n if (Buffer13.isBuffer(val)) {\n if (val.length === 0) {\n return -1;\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === "number") {\n val = val & 255;\n if (typeof Uint8Array.prototype.indexOf === "function") {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n throw new TypeError("val must be string, number or Buffer");\n }\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n let indexSize = 1;\n let arrLength = arr.length;\n let valLength = val.length;\n if (encoding !== void 0) {\n encoding = String(encoding).toLowerCase();\n if (encoding === "ucs2" || encoding === "ucs-2" || encoding === "utf16le" || encoding === "utf-16le") {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n function read2(buf2, i2) {\n if (indexSize === 1) {\n return buf2[i2];\n } else {\n return buf2.readUInt16BE(i2 * indexSize);\n }\n }\n let i;\n if (dir) {\n let foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read2(arr, i) === read2(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1)\n foundIndex = i;\n if (i - foundIndex + 1 === valLength)\n return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1)\n i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength)\n byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n let found = true;\n for (let j = 0; j < valLength; j++) {\n if (read2(arr, i + j) !== read2(val, j)) {\n found = false;\n break;\n }\n }\n if (found)\n return i;\n }\n }\n return -1;\n }\n Buffer13.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n Buffer13.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n Buffer13.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n function hexWrite(buf2, string, offset, length) {\n offset = Number(offset) || 0;\n const remaining = buf2.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n const strLen = string.length;\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n let i;\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16);\n if (numberIsNaN(parsed))\n return i;\n buf2[offset + i] = parsed;\n }\n return i;\n }\n function utf8Write(buf2, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n function asciiWrite(buf2, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf2, offset, length);\n }\n function base64Write(buf2, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf2, offset, length);\n }\n function ucs2Write(buf2, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n Buffer13.prototype.write = function write2(string, offset, length, encoding) {\n if (offset === void 0) {\n encoding = "utf8";\n length = this.length;\n offset = 0;\n } else if (length === void 0 && typeof offset === "string") {\n encoding = offset;\n length = this.length;\n offset = 0;\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n if (isFinite(length)) {\n length = length >>> 0;\n if (encoding === void 0)\n encoding = "utf8";\n } else {\n encoding = length;\n length = void 0;\n }\n } else {\n throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");\n }\n const remaining = this.length - offset;\n if (length === void 0 || length > remaining)\n length = remaining;\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError("Attempt to write outside buffer bounds");\n }\n if (!encoding)\n encoding = "utf8";\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "hex":\n return hexWrite(this, string, offset, length);\n case "utf8":\n case "utf-8":\n return utf8Write(this, string, offset, length);\n case "ascii":\n case "latin1":\n case "binary":\n return asciiWrite(this, string, offset, length);\n case "base64":\n return base64Write(this, string, offset, length);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return ucs2Write(this, string, offset, length);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n Buffer13.prototype.toJSON = function toJSON() {\n return {\n type: "Buffer",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n function base64Slice(buf2, start, end) {\n if (start === 0 && end === buf2.length) {\n return base64.fromByteArray(buf2);\n } else {\n return base64.fromByteArray(buf2.slice(start, end));\n }\n }\n function utf8Slice(buf2, start, end) {\n end = Math.min(buf2.length, end);\n const res = [];\n let i = start;\n while (i < end) {\n const firstByte = buf2[i];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf2[i + 1];\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n fourthByte = buf2[i + 3];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n res.push(codePoint);\n i += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n }\n var MAX_ARGUMENTS_LENGTH = 4096;\n function decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints);\n }\n let res = "";\n let i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n }\n function asciiSlice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i] & 127);\n }\n return ret;\n }\n function latin1Slice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i]);\n }\n return ret;\n }\n function hexSlice(buf2, start, end) {\n const len = buf2.length;\n if (!start || start < 0)\n start = 0;\n if (!end || end < 0 || end > len)\n end = len;\n let out = "";\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf2[i]];\n }\n return out;\n }\n function utf16leSlice(buf2, start, end) {\n const bytes = buf2.slice(start, end);\n let res = "";\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res;\n }\n Buffer13.prototype.slice = function slice(start, end) {\n const len = this.length;\n start = ~~start;\n end = end === void 0 ? len : ~~end;\n if (start < 0) {\n start += len;\n if (start < 0)\n start = 0;\n } else if (start > len) {\n start = len;\n }\n if (end < 0) {\n end += len;\n if (end < 0)\n end = 0;\n } else if (end > len) {\n end = len;\n }\n if (end < start)\n end = start;\n const newBuf = this.subarray(start, end);\n Object.setPrototypeOf(newBuf, Buffer13.prototype);\n return newBuf;\n };\n function checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0)\n throw new RangeError("offset is not uint");\n if (offset + ext > length)\n throw new RangeError("Trying to access beyond buffer length");\n }\n Buffer13.prototype.readUintLE = Buffer13.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUintBE = Buffer13.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n checkOffset(offset, byteLength2, this.length);\n }\n let val = this[offset + --byteLength2];\n let mul = 1;\n while (byteLength2 > 0 && (mul *= 256)) {\n val += this[offset + --byteLength2] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUint8 = Buffer13.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n return this[offset];\n };\n Buffer13.prototype.readUint16LE = Buffer13.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n };\n Buffer13.prototype.readUint16BE = Buffer13.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n };\n Buffer13.prototype.readUint32LE = Buffer13.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;\n };\n Buffer13.prototype.readUint32BE = Buffer13.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n Buffer13.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const lo = first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24;\n const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last * 2 ** 24;\n return BigInt(lo) + (BigInt(hi) << BigInt(32));\n });\n Buffer13.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const hi = first * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last;\n return (BigInt(hi) << BigInt(32)) + BigInt(lo);\n });\n Buffer13.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let i = byteLength2;\n let mul = 1;\n let val = this[offset + --i];\n while (i > 0 && (mul *= 256)) {\n val += this[offset + --i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readInt8 = function readInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n if (!(this[offset] & 128))\n return this[offset];\n return (255 - this[offset] + 1) * -1;\n };\n Buffer13.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset] | this[offset + 1] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset + 1] | this[offset] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n Buffer13.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n Buffer13.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last << 24);\n return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24);\n });\n Buffer13.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = (first << 24) + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last);\n });\n Buffer13.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, true, 23, 4);\n };\n Buffer13.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, false, 23, 4);\n };\n Buffer13.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, true, 52, 8);\n };\n Buffer13.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, false, 52, 8);\n };\n function checkInt(buf2, value, offset, ext, max, min) {\n if (!Buffer13.isBuffer(buf2))\n throw new TypeError(\'"buffer" argument must be a Buffer instance\');\n if (value > max || value < min)\n throw new RangeError(\'"value" argument is out of bounds\');\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n }\n Buffer13.prototype.writeUintLE = Buffer13.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let mul = 1;\n let i = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUintBE = Buffer13.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUint8 = Buffer13.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 255, 0);\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeUint16LE = Buffer13.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeUint16BE = Buffer13.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeUint32LE = Buffer13.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeUint32BE = Buffer13.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n function wrtBigUInt64LE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n return offset;\n }\n function wrtBigUInt64BE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset + 7] = lo;\n lo = lo >> 8;\n buf2[offset + 6] = lo;\n lo = lo >> 8;\n buf2[offset + 5] = lo;\n lo = lo >> 8;\n buf2[offset + 4] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset + 3] = hi;\n hi = hi >> 8;\n buf2[offset + 2] = hi;\n hi = hi >> 8;\n buf2[offset + 1] = hi;\n hi = hi >> 8;\n buf2[offset] = hi;\n return offset + 8;\n }\n Buffer13.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = 0;\n let mul = 1;\n let sub = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n let sub = 0;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 127, -128);\n if (value < 0)\n value = 255 + value + 1;\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n return offset + 4;\n };\n Buffer13.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n if (value < 0)\n value = 4294967295 + value + 1;\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n Buffer13.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n function checkIEEE754(buf2, value, offset, ext, max, min) {\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n if (offset < 0)\n throw new RangeError("Index out of range");\n }\n function writeFloat(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 4, 34028234663852886e22, -34028234663852886e22);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n Buffer13.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n function writeDouble(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 8, 17976931348623157e292, -17976931348623157e292);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n Buffer13.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n };\n Buffer13.prototype.copy = function copy(target, targetStart, start, end) {\n if (!Buffer13.isBuffer(target))\n throw new TypeError("argument should be a Buffer");\n if (!start)\n start = 0;\n if (!end && end !== 0)\n end = this.length;\n if (targetStart >= target.length)\n targetStart = target.length;\n if (!targetStart)\n targetStart = 0;\n if (end > 0 && end < start)\n end = start;\n if (end === start)\n return 0;\n if (target.length === 0 || this.length === 0)\n return 0;\n if (targetStart < 0) {\n throw new RangeError("targetStart out of bounds");\n }\n if (start < 0 || start >= this.length)\n throw new RangeError("Index out of range");\n if (end < 0)\n throw new RangeError("sourceEnd out of bounds");\n if (end > this.length)\n end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n const len = end - start;\n if (this === target && typeof Uint8Array.prototype.copyWithin === "function") {\n this.copyWithin(targetStart, start, end);\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart);\n }\n return len;\n };\n Buffer13.prototype.fill = function fill(val, start, end, encoding) {\n if (typeof val === "string") {\n if (typeof start === "string") {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === "string") {\n encoding = end;\n end = this.length;\n }\n if (encoding !== void 0 && typeof encoding !== "string") {\n throw new TypeError("encoding must be a string");\n }\n if (typeof encoding === "string" && !Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0);\n if (encoding === "utf8" && code < 128 || encoding === "latin1") {\n val = code;\n }\n }\n } else if (typeof val === "number") {\n val = val & 255;\n } else if (typeof val === "boolean") {\n val = Number(val);\n }\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError("Out of range index");\n }\n if (end <= start) {\n return this;\n }\n start = start >>> 0;\n end = end === void 0 ? this.length : end >>> 0;\n if (!val)\n val = 0;\n let i;\n if (typeof val === "number") {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n const bytes = Buffer13.isBuffer(val) ? val : Buffer13.from(val, encoding);\n const len = bytes.length;\n if (len === 0) {\n throw new TypeError(\'The value "\' + val + \'" is invalid for argument "value"\');\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n return this;\n };\n var errors = {};\n function E(sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor() {\n super();\n Object.defineProperty(this, "message", {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n });\n this.name = `${this.name} [${sym}]`;\n this.stack;\n delete this.name;\n }\n get code() {\n return sym;\n }\n set code(value) {\n Object.defineProperty(this, "code", {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n });\n }\n toString() {\n return `${this.name} [${sym}]: ${this.message}`;\n }\n };\n }\n E("ERR_BUFFER_OUT_OF_BOUNDS", function(name) {\n if (name) {\n return `${name} is outside of buffer bounds`;\n }\n return "Attempt to access memory outside buffer bounds";\n }, RangeError);\n E("ERR_INVALID_ARG_TYPE", function(name, actual) {\n return `The "${name}" argument must be of type number. Received type ${typeof actual}`;\n }, TypeError);\n E("ERR_OUT_OF_RANGE", function(str, range, input) {\n let msg = `The value of "${str}" is out of range.`;\n let received = input;\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input));\n } else if (typeof input === "bigint") {\n received = String(input);\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received);\n }\n received += "n";\n }\n msg += ` It must be ${range}. Received ${received}`;\n return msg;\n }, RangeError);\n function addNumericalSeparator(val) {\n let res = "";\n let i = val.length;\n const start = val[0] === "-" ? 1 : 0;\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`;\n }\n return `${val.slice(0, i)}${res}`;\n }\n function checkBounds(buf2, offset, byteLength2) {\n validateNumber(offset, "offset");\n if (buf2[offset] === void 0 || buf2[offset + byteLength2] === void 0) {\n boundsError(offset, buf2.length - (byteLength2 + 1));\n }\n }\n function checkIntBI(value, min, max, buf2, offset, byteLength2) {\n if (value > max || value < min) {\n const n = typeof min === "bigint" ? "n" : "";\n let range;\n if (byteLength2 > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength2 + 1) * 8}${n}`;\n } else {\n range = `>= -(2${n} ** ${(byteLength2 + 1) * 8 - 1}${n}) and < 2 ** ${(byteLength2 + 1) * 8 - 1}${n}`;\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`;\n }\n throw new errors.ERR_OUT_OF_RANGE("value", range, value);\n }\n checkBounds(buf2, offset, byteLength2);\n }\n function validateNumber(value, name) {\n if (typeof value !== "number") {\n throw new errors.ERR_INVALID_ARG_TYPE(name, "number", value);\n }\n }\n function boundsError(value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type);\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", "an integer", value);\n }\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n }\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", `>= ${type ? 1 : 0} and <= ${length}`, value);\n }\n var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n function base64clean(str) {\n str = str.split("=")[0];\n str = str.trim().replace(INVALID_BASE64_RE, "");\n if (str.length < 2)\n return "";\n while (str.length % 4 !== 0) {\n str = str + "=";\n }\n return str;\n }\n function utf8ToBytes(string, units) {\n units = units || Infinity;\n let codePoint;\n const length = string.length;\n let leadSurrogate = null;\n const bytes = [];\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n if (codePoint > 55295 && codePoint < 57344) {\n if (!leadSurrogate) {\n if (codePoint > 56319) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n }\n leadSurrogate = codePoint;\n continue;\n }\n if (codePoint < 56320) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n }\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n }\n leadSurrogate = null;\n if (codePoint < 128) {\n if ((units -= 1) < 0)\n break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0)\n break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0)\n break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0)\n break;\n bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else {\n throw new Error("Invalid code point");\n }\n }\n return bytes;\n }\n function asciiToBytes(str) {\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n byteArray.push(str.charCodeAt(i) & 255);\n }\n return byteArray;\n }\n function utf16leToBytes(str, units) {\n let c, hi, lo;\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0)\n break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n return byteArray;\n }\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n function blitBuffer(src, dst, offset, length) {\n let i;\n for (i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length)\n break;\n dst[i + offset] = src[i];\n }\n return i;\n }\n function isInstance(obj, type) {\n return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n }\n function numberIsNaN(obj) {\n return obj !== obj;\n }\n var hexSliceLookupTable = function() {\n const alphabet = "0123456789abcdef";\n const table = new Array(256);\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16;\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n return table;\n }();\n function defineBigIntMethod(fn) {\n return typeof BigInt === "undefined" ? BufferBigIntNotDefined : fn;\n }\n function BufferBigIntNotDefined() {\n throw new Error("BigInt not supported");\n }\n }\n});\n\n// esbuild.inject.js\nvar Buffer2;\nvar init_esbuild_inject = __esm({\n "esbuild.inject.js"() {\n "use strict";\n Buffer2 = require_buffer().Buffer;\n }\n});\n\n// node_modules/crc-32/crc32.js\nvar require_crc32 = __commonJS({\n "node_modules/crc-32/crc32.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var CRC32;\n (function(factory) {\n if (typeof DO_NOT_EXPORT_CRC === "undefined") {\n if (typeof exports === "object") {\n factory(exports);\n } else if (typeof define === "function" && define.amd) {\n define(function() {\n var module2 = {};\n factory(module2);\n return module2;\n });\n } else {\n factory(CRC32 = {});\n }\n } else {\n factory(CRC32 = {});\n }\n })(function(CRC322) {\n CRC322.version = "1.2.0";\n function signed_crc_table() {\n var c = 0, table = new Array(256);\n for (var n = 0; n != 256; ++n) {\n c = n;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n table[n] = c;\n }\n return typeof Int32Array !== "undefined" ? new Int32Array(table) : table;\n }\n var T = signed_crc_table();\n function crc32_bstr(bstr, seed) {\n var C = seed ^ -1, L = bstr.length - 1;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n }\n if (i === L)\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i)) & 255];\n return C ^ -1;\n }\n function crc32_buf(buf2, seed) {\n if (buf2.length > 1e4)\n return crc32_buf_8(buf2, seed);\n var C = seed ^ -1, L = buf2.length - 3;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 3)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_buf_8(buf2, seed) {\n var C = seed ^ -1, L = buf2.length - 7;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 7)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_str(str, seed) {\n var C = seed ^ -1;\n for (var i = 0, L = str.length, c, d; i < L; ) {\n c = str.charCodeAt(i++);\n if (c < 128) {\n C = C >>> 8 ^ T[(C ^ c) & 255];\n } else if (c < 2048) {\n C = C >>> 8 ^ T[(C ^ (192 | c >> 6 & 31)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n } else if (c >= 55296 && c < 57344) {\n c = (c & 1023) + 64;\n d = str.charCodeAt(i++) & 1023;\n C = C >>> 8 ^ T[(C ^ (240 | c >> 8 & 7)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 2 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d >> 6 & 15 | (c & 3) << 4)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d & 63)) & 255];\n } else {\n C = C >>> 8 ^ T[(C ^ (224 | c >> 12 & 15)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 6 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n }\n }\n return C ^ -1;\n }\n CRC322.table = T;\n CRC322.bstr = crc32_bstr;\n CRC322.buf = crc32_buf;\n CRC322.str = crc32_str;\n });\n }\n});\n\n// node_modules/events/events.js\nvar require_events = __commonJS({\n "node_modules/events/events.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var R = typeof Reflect === "object" ? Reflect : null;\n var ReflectApply = R && typeof R.apply === "function" ? R.apply : function ReflectApply2(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n };\n var ReflectOwnKeys;\n if (R && typeof R.ownKeys === "function") {\n ReflectOwnKeys = R.ownKeys;\n } else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n } else {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target);\n };\n }\n function ProcessEmitWarning(warning) {\n if (console && console.warn)\n console.warn(warning);\n }\n var NumberIsNaN = Number.isNaN || function NumberIsNaN2(value) {\n return value !== value;\n };\n function EventEmitter() {\n EventEmitter.init.call(this);\n }\n module.exports = EventEmitter;\n module.exports.once = once;\n EventEmitter.EventEmitter = EventEmitter;\n EventEmitter.prototype._events = void 0;\n EventEmitter.prototype._eventsCount = 0;\n EventEmitter.prototype._maxListeners = void 0;\n var defaultMaxListeners = 10;\n function checkListener(listener) {\n if (typeof listener !== "function") {\n throw new TypeError(\'The "listener" argument must be of type Function. Received type \' + typeof listener);\n }\n }\n Object.defineProperty(EventEmitter, "defaultMaxListeners", {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== "number" || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError(\'The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received \' + arg + ".");\n }\n defaultMaxListeners = arg;\n }\n });\n EventEmitter.init = function() {\n if (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n }\n this._maxListeners = this._maxListeners || void 0;\n };\n EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== "number" || n < 0 || NumberIsNaN(n)) {\n throw new RangeError(\'The value of "n" is out of range. It must be a non-negative number. Received \' + n + ".");\n }\n this._maxListeners = n;\n return this;\n };\n function _getMaxListeners(that) {\n if (that._maxListeners === void 0)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n }\n EventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n };\n EventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++)\n args.push(arguments[i]);\n var doError = type === "error";\n var events = this._events;\n if (events !== void 0)\n doError = doError && events.error === void 0;\n else if (!doError)\n return false;\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n throw er;\n }\n var err = new Error("Unhandled error." + (er ? " (" + er.message + ")" : ""));\n err.context = er;\n throw err;\n }\n var handler = events[type];\n if (handler === void 0)\n return false;\n if (typeof handler === "function") {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n return true;\n };\n function _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n if (events === void 0) {\n events = target._events = /* @__PURE__ */ Object.create(null);\n target._eventsCount = 0;\n } else {\n if (events.newListener !== void 0) {\n target.emit("newListener", type, listener.listener ? listener.listener : listener);\n events = target._events;\n }\n existing = events[type];\n }\n if (existing === void 0) {\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === "function") {\n existing = events[type] = prepend ? [listener, existing] : [existing, listener];\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n var w = new Error("Possible EventEmitter memory leak detected. " + existing.length + " " + String(type) + " listeners added. Use emitter.setMaxListeners() to increase limit");\n w.name = "MaxListenersExceededWarning";\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n return target;\n }\n EventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n };\n EventEmitter.prototype.on = EventEmitter.prototype.addListener;\n EventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n function onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n }\n function _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: void 0, target, type, listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n }\n EventEmitter.prototype.once = function once2(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === void 0)\n return this;\n list = events[type];\n if (list === void 0)\n return this;\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit("removeListener", type, list.listener || listener);\n }\n } else if (typeof list !== "function") {\n position = -1;\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n if (position < 0)\n return this;\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n if (list.length === 1)\n events[type] = list[0];\n if (events.removeListener !== void 0)\n this.emit("removeListener", type, originalListener || listener);\n }\n return this;\n };\n EventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === void 0)\n return this;\n if (events.removeListener === void 0) {\n if (arguments.length === 0) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== void 0) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key2;\n for (i = 0; i < keys.length; ++i) {\n key2 = keys[i];\n if (key2 === "removeListener")\n continue;\n this.removeAllListeners(key2);\n }\n this.removeAllListeners("removeListener");\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n listeners = events[type];\n if (typeof listeners === "function") {\n this.removeListener(type, listeners);\n } else if (listeners !== void 0) {\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n return this;\n };\n function _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === void 0)\n return [];\n var evlistener = events[type];\n if (evlistener === void 0)\n return [];\n if (typeof evlistener === "function")\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n }\n EventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n };\n EventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n };\n EventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === "function") {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n };\n EventEmitter.prototype.listenerCount = listenerCount;\n function listenerCount(type) {\n var events = this._events;\n if (events !== void 0) {\n var evlistener = events[type];\n if (typeof evlistener === "function") {\n return 1;\n } else if (evlistener !== void 0) {\n return evlistener.length;\n }\n }\n return 0;\n }\n EventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n };\n function arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n }\n function spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n }\n function unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n }\n function once(emitter, name) {\n return new Promise(function(resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n function resolver() {\n if (typeof emitter.removeListener === "function") {\n emitter.removeListener("error", errorListener);\n }\n resolve([].slice.call(arguments));\n }\n ;\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== "error") {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n }\n function addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === "function") {\n eventTargetAgnosticAddListener(emitter, "error", handler, flags);\n }\n }\n function eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === "function") {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === "function") {\n emitter.addEventListener(name, function wrapListener(arg) {\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError(\'The "emitter" argument must be of type EventEmitter. Received type \' + typeof emitter);\n }\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/stream-browser.js\nvar require_stream_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/stream-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = require_events().EventEmitter;\n }\n});\n\n// (disabled):node_modules/util/util.js\nvar require_util = __commonJS({\n "(disabled):node_modules/util/util.js"() {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/buffer_list.js\nvar require_buffer_list = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/buffer_list.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly)\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n }\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function(key2) {\n _defineProperty(target, key2, source[key2]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key2) {\n Object.defineProperty(target, key2, Object.getOwnPropertyDescriptor(source, key2));\n });\n }\n }\n return target;\n }\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n var _require = require_buffer();\n var Buffer13 = _require.Buffer;\n var _require2 = require_util();\n var inspect = _require2.inspect;\n var custom = inspect && inspect.custom || "inspect";\n function copyBuffer(src, target, offset) {\n Buffer13.prototype.copy.call(src, target, offset);\n }\n module.exports = /* @__PURE__ */ function() {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: "push",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0)\n this.tail.next = entry;\n else\n this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: "unshift",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0)\n this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: "shift",\n value: function shift() {\n if (this.length === 0)\n return;\n var ret = this.head.data;\n if (this.length === 1)\n this.head = this.tail = null;\n else\n this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: "clear",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: "join",\n value: function join(s) {\n if (this.length === 0)\n return "";\n var p = this.head;\n var ret = "" + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }\n return ret;\n }\n }, {\n key: "concat",\n value: function concat(n) {\n if (this.length === 0)\n return Buffer13.alloc(0);\n var ret = Buffer13.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n }, {\n key: "consume",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n ret = this.shift();\n } else {\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: "first",\n value: function first() {\n return this.head.data;\n }\n }, {\n key: "_getString",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length)\n ret += str;\n else\n ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: "_getBuffer",\n value: function _getBuffer(n) {\n var ret = Buffer13.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf2 = p.data;\n var nb = n > buf2.length ? buf2.length : n;\n buf2.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf2.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf2.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n depth: 0,\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n }();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/destroy.js\nvar require_destroy = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/destroy.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function(err2) {\n if (!cb && err2) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n }\n function emitErrorAndCloseNT(self2, err) {\n emitErrorNT(self2, err);\n emitCloseNT(self2);\n }\n function emitCloseNT(self2) {\n if (self2._writableState && !self2._writableState.emitClose)\n return;\n if (self2._readableState && !self2._readableState.emitClose)\n return;\n self2.emit("close");\n }\n function undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n }\n function emitErrorNT(self2, err) {\n self2.emit("error", err);\n }\n function errorOrDestroy(stream, err) {\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy)\n stream.destroy(err);\n else\n stream.emit("error", err);\n }\n module.exports = {\n destroy,\n undestroy,\n errorOrDestroy\n };\n }\n});\n\n// node_modules/readable-stream/errors-browser.js\nvar require_errors_browser = __commonJS({\n "node_modules/readable-stream/errors-browser.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n }\n var codes = {};\n function createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === "string") {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /* @__PURE__ */ function(_Base) {\n _inheritsLoose(NodeError2, _Base);\n function NodeError2(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n return NodeError2;\n }(Base);\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n }\n function oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function(i) {\n return String(i);\n });\n if (len > 2) {\n return "one of ".concat(thing, " ").concat(expected.slice(0, len - 1).join(", "), ", or ") + expected[len - 1];\n } else if (len === 2) {\n return "one of ".concat(thing, " ").concat(expected[0], " or ").concat(expected[1]);\n } else {\n return "of ".concat(thing, " ").concat(expected[0]);\n }\n } else {\n return "of ".concat(thing, " ").concat(String(expected));\n }\n }\n function startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n }\n function endsWith(str, search, this_len) {\n if (this_len === void 0 || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n }\n function includes(str, search, start) {\n if (typeof start !== "number") {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n }\n createErrorType("ERR_INVALID_OPT_VALUE", function(name, value) {\n return \'The value "\' + value + \'" is invalid for option "\' + name + \'"\';\n }, TypeError);\n createErrorType("ERR_INVALID_ARG_TYPE", function(name, expected, actual) {\n var determiner;\n if (typeof expected === "string" && startsWith(expected, "not ")) {\n determiner = "must not be";\n expected = expected.replace(/^not /, "");\n } else {\n determiner = "must be";\n }\n var msg;\n if (endsWith(name, " argument")) {\n msg = "The ".concat(name, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n } else {\n var type = includes(name, ".") ? "property" : "argument";\n msg = \'The "\'.concat(name, \'" \').concat(type, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n }\n msg += ". Received type ".concat(typeof actual);\n return msg;\n }, TypeError);\n createErrorType("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF");\n createErrorType("ERR_METHOD_NOT_IMPLEMENTED", function(name) {\n return "The " + name + " method is not implemented";\n });\n createErrorType("ERR_STREAM_PREMATURE_CLOSE", "Premature close");\n createErrorType("ERR_STREAM_DESTROYED", function(name) {\n return "Cannot call " + name + " after a stream was destroyed";\n });\n createErrorType("ERR_MULTIPLE_CALLBACK", "Callback called multiple times");\n createErrorType("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable");\n createErrorType("ERR_STREAM_WRITE_AFTER_END", "write after end");\n createErrorType("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError);\n createErrorType("ERR_UNKNOWN_ENCODING", function(arg) {\n return "Unknown encoding: " + arg;\n }, TypeError);\n createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event");\n module.exports.codes = codes;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/state.js\nvar require_state = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/state.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_INVALID_OPT_VALUE = require_errors_browser().codes.ERR_INVALID_OPT_VALUE;\n function highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n }\n function getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : "highWaterMark";\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n return state.objectMode ? 16 : 16 * 1024;\n }\n module.exports = {\n getHighWaterMark\n };\n }\n});\n\n// node_modules/inherits/inherits_browser.js\nvar require_inherits_browser = __commonJS({\n "node_modules/inherits/inherits_browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n if (typeof Object.create === "function") {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n } else {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function() {\n };\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n }\n }\n});\n\n// node_modules/util-deprecate/browser.js\nvar require_browser = __commonJS({\n "node_modules/util-deprecate/browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = deprecate;\n function deprecate(fn, msg) {\n if (config("noDeprecation")) {\n return fn;\n }\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config("throwDeprecation")) {\n throw new Error(msg);\n } else if (config("traceDeprecation")) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n }\n function config(name) {\n try {\n if (!self.localStorage)\n return false;\n } catch (_) {\n return false;\n }\n var val = self.localStorage[name];\n if (val == null)\n return false;\n return String(val).toLowerCase() === "true";\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_writable.js\nvar require_stream_writable = __commonJS({\n "node_modules/readable-stream/lib/_stream_writable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Writable;\n function CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function() {\n onCorkedFinish(_this, state);\n };\n }\n var Duplex;\n Writable.WritableState = WritableState;\n var internalUtil = {\n deprecate: require_browser()\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n var ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES;\n var ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END;\n var ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n require_inherits_browser()(Writable, Stream);\n function nop() {\n }\n function WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.writableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "writableHighWaterMark", isDuplex);\n this.finalCalled = false;\n this.needDrain = false;\n this.ending = false;\n this.ended = false;\n this.finished = false;\n this.destroyed = false;\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.length = 0;\n this.writing = false;\n this.corked = 0;\n this.sync = true;\n this.bufferProcessing = false;\n this.onwrite = function(er) {\n onwrite(stream, er);\n };\n this.writecb = null;\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n this.pendingcb = 0;\n this.prefinished = false;\n this.errorEmitted = false;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.bufferedRequestCount = 0;\n this.corkedRequestsFree = new CorkedRequest(this);\n }\n WritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n };\n (function() {\n try {\n Object.defineProperty(WritableState.prototype, "buffer", {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003")\n });\n } catch (_) {\n }\n })();\n var realHasInstance;\n if (typeof Symbol === "function" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === "function") {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object))\n return true;\n if (this !== Writable)\n return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n } else {\n realHasInstance = function realHasInstance2(object) {\n return object instanceof this;\n };\n }\n function Writable(options) {\n Duplex = Duplex || require_stream_duplex();\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this))\n return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n this.writable = true;\n if (options) {\n if (typeof options.write === "function")\n this._write = options.write;\n if (typeof options.writev === "function")\n this._writev = options.writev;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n if (typeof options.final === "function")\n this._final = options.final;\n }\n Stream.call(this);\n }\n Writable.prototype.pipe = function() {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n };\n function writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n }\n function validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== "string" && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer"], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n }\n Writable.prototype.write = function(chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer13.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (isBuf)\n encoding = "buffer";\n else if (!encoding)\n encoding = state.defaultEncoding;\n if (typeof cb !== "function")\n cb = nop;\n if (state.ending)\n writeAfterEnd(this, cb);\n else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n };\n Writable.prototype.cork = function() {\n this._writableState.corked++;\n };\n Writable.prototype.uncork = function() {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest)\n clearBuffer(this, state);\n }\n };\n Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n if (typeof encoding === "string")\n encoding = encoding.toLowerCase();\n if (!(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((encoding + "").toLowerCase()) > -1))\n throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n function decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === "string") {\n chunk = Buffer13.from(chunk, encoding);\n }\n return chunk;\n }\n Object.defineProperty(Writable.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = "buffer";\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n if (!ret)\n state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk,\n encoding,\n isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n }\n function doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed)\n state.onwrite(new ERR_STREAM_DESTROYED("write"));\n else if (writev)\n stream._writev(chunk, state.onwrite);\n else\n stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n }\n function onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n process.nextTick(cb, er);\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n finishMaybe(stream, state);\n }\n }\n function onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n }\n function onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== "function")\n throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er)\n onwriteError(stream, state, sync, er, cb);\n else {\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n }\n function afterWrite(stream, state, finished, cb) {\n if (!finished)\n onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n }\n function onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit("drain");\n }\n }\n function clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf)\n allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, "", holder.finish);\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n if (state.writing) {\n break;\n }\n }\n if (entry === null)\n state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n }\n Writable.prototype._write = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_write()"));\n };\n Writable.prototype._writev = null;\n Writable.prototype.end = function(chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === "function") {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== void 0)\n this.write(chunk, encoding);\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n if (!state.ending)\n endWritable(this, state, cb);\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n }\n function callFinal(stream, state) {\n stream._final(function(err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit("prefinish");\n finishMaybe(stream, state);\n });\n }\n function prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === "function" && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit("prefinish");\n }\n }\n }\n function finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit("finish");\n if (state.autoDestroy) {\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n }\n function endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished)\n process.nextTick(cb);\n else\n stream.once("finish", cb);\n }\n state.ended = true;\n stream.writable = false;\n }\n function onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n state.corkedRequestsFree.next = corkReq;\n }\n Object.defineProperty(Writable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._writableState === void 0) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n if (!this._writableState) {\n return;\n }\n this._writableState.destroyed = value;\n }\n });\n Writable.prototype.destroy = destroyImpl.destroy;\n Writable.prototype._undestroy = destroyImpl.undestroy;\n Writable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_duplex.js\nvar require_stream_duplex = __commonJS({\n "node_modules/readable-stream/lib/_stream_duplex.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var objectKeys = Object.keys || function(obj) {\n var keys2 = [];\n for (var key2 in obj) {\n keys2.push(key2);\n }\n return keys2;\n };\n module.exports = Duplex;\n var Readable = require_stream_readable();\n var Writable = require_stream_writable();\n require_inherits_browser()(Duplex, Readable);\n {\n keys = objectKeys(Writable.prototype);\n for (v = 0; v < keys.length; v++) {\n method = keys[v];\n if (!Duplex.prototype[method])\n Duplex.prototype[method] = Writable.prototype[method];\n }\n }\n var keys;\n var method;\n var v;\n function Duplex(options) {\n if (!(this instanceof Duplex))\n return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false)\n this.readable = false;\n if (options.writable === false)\n this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once("end", onend);\n }\n }\n }\n Object.defineProperty(Duplex.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n Object.defineProperty(Duplex.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n Object.defineProperty(Duplex.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function onend() {\n if (this._writableState.ended)\n return;\n process.nextTick(onEndNT, this);\n }\n function onEndNT(self2) {\n self2.end();\n }\n Object.defineProperty(Duplex.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return;\n }\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n });\n }\n});\n\n// node_modules/safe-buffer/index.js\nvar require_safe_buffer = __commonJS({\n "node_modules/safe-buffer/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var buffer = require_buffer();\n var Buffer13 = buffer.Buffer;\n function copyProps(src, dst) {\n for (var key2 in src) {\n dst[key2] = src[key2];\n }\n }\n if (Buffer13.from && Buffer13.alloc && Buffer13.allocUnsafe && Buffer13.allocUnsafeSlow) {\n module.exports = buffer;\n } else {\n copyProps(buffer, exports);\n exports.Buffer = SafeBuffer;\n }\n function SafeBuffer(arg, encodingOrOffset, length) {\n return Buffer13(arg, encodingOrOffset, length);\n }\n SafeBuffer.prototype = Object.create(Buffer13.prototype);\n copyProps(Buffer13, SafeBuffer);\n SafeBuffer.from = function(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n throw new TypeError("Argument must not be a number");\n }\n return Buffer13(arg, encodingOrOffset, length);\n };\n SafeBuffer.alloc = function(size, fill, encoding) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n var buf2 = Buffer13(size);\n if (fill !== void 0) {\n if (typeof encoding === "string") {\n buf2.fill(fill, encoding);\n } else {\n buf2.fill(fill);\n }\n } else {\n buf2.fill(0);\n }\n return buf2;\n };\n SafeBuffer.allocUnsafe = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return Buffer13(size);\n };\n SafeBuffer.allocUnsafeSlow = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return buffer.SlowBuffer(size);\n };\n }\n});\n\n// node_modules/string_decoder/lib/string_decoder.js\nvar require_string_decoder = __commonJS({\n "node_modules/string_decoder/lib/string_decoder.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var Buffer13 = require_safe_buffer().Buffer;\n var isEncoding = Buffer13.isEncoding || function(encoding) {\n encoding = "" + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n case "raw":\n return true;\n default:\n return false;\n }\n };\n function _normalizeEncoding(enc) {\n if (!enc)\n return "utf8";\n var retried;\n while (true) {\n switch (enc) {\n case "utf8":\n case "utf-8":\n return "utf8";\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return "utf16le";\n case "latin1":\n case "binary":\n return "latin1";\n case "base64":\n case "ascii":\n case "hex":\n return enc;\n default:\n if (retried)\n return;\n enc = ("" + enc).toLowerCase();\n retried = true;\n }\n }\n }\n function normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== "string" && (Buffer13.isEncoding === isEncoding || !isEncoding(enc)))\n throw new Error("Unknown encoding: " + enc);\n return nenc || enc;\n }\n exports.StringDecoder = StringDecoder;\n function StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case "utf16le":\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case "utf8":\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case "base64":\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer13.allocUnsafe(nb);\n }\n StringDecoder.prototype.write = function(buf2) {\n if (buf2.length === 0)\n return "";\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf2);\n if (r === void 0)\n return "";\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf2.length)\n return r ? r + this.text(buf2, i) : this.text(buf2, i);\n return r || "";\n };\n StringDecoder.prototype.end = utf8End;\n StringDecoder.prototype.text = utf8Text;\n StringDecoder.prototype.fillLast = function(buf2) {\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf2.length);\n this.lastNeed -= buf2.length;\n };\n function utf8CheckByte(byte) {\n if (byte <= 127)\n return 0;\n else if (byte >> 5 === 6)\n return 2;\n else if (byte >> 4 === 14)\n return 3;\n else if (byte >> 3 === 30)\n return 4;\n return byte >> 6 === 2 ? -1 : -2;\n }\n function utf8CheckIncomplete(self2, buf2, i) {\n var j = buf2.length - 1;\n if (j < i)\n return 0;\n var nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2)\n nb = 0;\n else\n self2.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n }\n function utf8CheckExtraBytes(self2, buf2, p) {\n if ((buf2[0] & 192) !== 128) {\n self2.lastNeed = 0;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 1 && buf2.length > 1) {\n if ((buf2[1] & 192) !== 128) {\n self2.lastNeed = 1;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 2 && buf2.length > 2) {\n if ((buf2[2] & 192) !== 128) {\n self2.lastNeed = 2;\n return "\\uFFFD";\n }\n }\n }\n }\n function utf8FillLast(buf2) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf2, p);\n if (r !== void 0)\n return r;\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, p, 0, buf2.length);\n this.lastNeed -= buf2.length;\n }\n function utf8Text(buf2, i) {\n var total = utf8CheckIncomplete(this, buf2, i);\n if (!this.lastNeed)\n return buf2.toString("utf8", i);\n this.lastTotal = total;\n var end = buf2.length - (total - this.lastNeed);\n buf2.copy(this.lastChar, 0, end);\n return buf2.toString("utf8", i, end);\n }\n function utf8End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + "\\uFFFD";\n return r;\n }\n function utf16Text(buf2, i) {\n if ((buf2.length - i) % 2 === 0) {\n var r = buf2.toString("utf16le", i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 55296 && c <= 56319) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf2[buf2.length - 1];\n return buf2.toString("utf16le", i, buf2.length - 1);\n }\n function utf16End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString("utf16le", 0, end);\n }\n return r;\n }\n function base64Text(buf2, i) {\n var n = (buf2.length - i) % 3;\n if (n === 0)\n return buf2.toString("base64", i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf2[buf2.length - 1];\n } else {\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n }\n return buf2.toString("base64", i, buf2.length - n);\n }\n function base64End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + this.lastChar.toString("base64", 0, 3 - this.lastNeed);\n return r;\n }\n function simpleWrite(buf2) {\n return buf2.toString(this.encoding);\n }\n function simpleEnd(buf2) {\n return buf2 && buf2.length ? this.write(buf2) : "";\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/end-of-stream.js\nvar require_end_of_stream = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_STREAM_PREMATURE_CLOSE = require_errors_browser().codes.ERR_STREAM_PREMATURE_CLOSE;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n }\n function noop2() {\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function eos(stream, opts, callback) {\n if (typeof opts === "function")\n return eos(stream, null, opts);\n if (!opts)\n opts = {};\n callback = once(callback || noop2);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable2 = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish2() {\n if (!stream.writable)\n onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish2() {\n writable2 = false;\n writableEnded = true;\n if (!readable)\n callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend2() {\n readable = false;\n readableEnded = true;\n if (!writable2)\n callback.call(stream);\n };\n var onerror = function onerror2(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose2() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable2 && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest2() {\n stream.req.on("finish", onfinish);\n };\n if (isRequest(stream)) {\n stream.on("complete", onfinish);\n stream.on("abort", onclose);\n if (stream.req)\n onrequest();\n else\n stream.on("request", onrequest);\n } else if (writable2 && !stream._writableState) {\n stream.on("end", onlegacyfinish);\n stream.on("close", onlegacyfinish);\n }\n stream.on("end", onend);\n stream.on("finish", onfinish);\n if (opts.error !== false)\n stream.on("error", onerror);\n stream.on("close", onclose);\n return function() {\n stream.removeListener("complete", onfinish);\n stream.removeListener("abort", onclose);\n stream.removeListener("request", onrequest);\n if (stream.req)\n stream.req.removeListener("finish", onfinish);\n stream.removeListener("end", onlegacyfinish);\n stream.removeListener("close", onlegacyfinish);\n stream.removeListener("finish", onfinish);\n stream.removeListener("end", onend);\n stream.removeListener("error", onerror);\n stream.removeListener("close", onclose);\n };\n }\n module.exports = eos;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/async_iterator.js\nvar require_async_iterator = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/async_iterator.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var _Object$setPrototypeO;\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n var finished = require_end_of_stream();\n var kLastResolve = Symbol("lastResolve");\n var kLastReject = Symbol("lastReject");\n var kError = Symbol("error");\n var kEnded = Symbol("ended");\n var kLastPromise = Symbol("lastPromise");\n var kHandlePromise = Symbol("handlePromise");\n var kStream = Symbol("stream");\n function createIterResult(value, done) {\n return {\n value,\n done\n };\n }\n function readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n }\n function onReadable(iter) {\n process.nextTick(readAndResolve, iter);\n }\n function wrapForNext(lastPromise, iter) {\n return function(resolve, reject) {\n lastPromise.then(function() {\n if (iter[kEnded]) {\n resolve(createIterResult(void 0, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n }\n var AsyncIteratorPrototype = Object.getPrototypeOf(function() {\n });\n var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(void 0, true));\n }\n if (this[kStream].destroyed) {\n return new Promise(function(resolve, reject) {\n process.nextTick(function() {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(void 0, true));\n }\n });\n });\n }\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n }, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function() {\n return this;\n }), _defineProperty(_Object$setPrototypeO, "return", function _return() {\n var _this2 = this;\n return new Promise(function(resolve, reject) {\n _this2[kStream].destroy(null, function(err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(void 0, true));\n });\n });\n }), _Object$setPrototypeO), AsyncIteratorPrototype);\n var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator2(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function(err) {\n if (err && err.code !== "ERR_STREAM_PREMATURE_CLOSE") {\n var reject = iterator[kLastReject];\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(void 0, true));\n }\n iterator[kEnded] = true;\n });\n stream.on("readable", onReadable.bind(null, iterator));\n return iterator;\n };\n module.exports = createReadableStreamAsyncIterator;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/from-browser.js\nvar require_from_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/from-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = function() {\n throw new Error("Readable.from is not available in the browser");\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_readable.js\nvar require_stream_readable = __commonJS({\n "node_modules/readable-stream/lib/_stream_readable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Readable;\n var Duplex;\n Readable.ReadableState = ReadableState;\n var EE = require_events().EventEmitter;\n var EElistenerCount = function EElistenerCount2(emitter, type) {\n return emitter.listeners(type).length;\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var debugUtil = require_util();\n var debug;\n if (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog("stream");\n } else {\n debug = function debug2() {\n };\n }\n var BufferList = require_buffer_list();\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n var StringDecoder;\n var createReadableStreamAsyncIterator;\n var from;\n require_inherits_browser()(Readable, Stream);\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n var kProxyEvents = ["error", "close", "destroy", "pause", "resume"];\n function prependListener(emitter, event, fn) {\n if (typeof emitter.prependListener === "function")\n return emitter.prependListener(event, fn);\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n function ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.readableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "readableHighWaterMark", isDuplex);\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n this.sync = true;\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.destroyed = false;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.awaitDrain = 0;\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n }\n function Readable(options) {\n Duplex = Duplex || require_stream_duplex();\n if (!(this instanceof Readable))\n return new Readable(options);\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n this.readable = true;\n if (options) {\n if (typeof options.read === "function")\n this._read = options.read;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n }\n Stream.call(this);\n }\n Object.defineProperty(Readable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n if (!this._readableState) {\n return;\n }\n this._readableState.destroyed = value;\n }\n });\n Readable.prototype.destroy = destroyImpl.destroy;\n Readable.prototype._undestroy = destroyImpl.undestroy;\n Readable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n Readable.prototype.push = function(chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === "string") {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer13.from(chunk, encoding);\n encoding = "";\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n };\n Readable.prototype.unshift = function(chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n };\n function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug("readableAddChunk", chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck)\n er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== "string" && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer13.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted)\n errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());\n else\n addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0)\n addChunk(stream, state, chunk, false);\n else\n maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n }\n function addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit("data", chunk);\n } else {\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront)\n state.buffer.unshift(chunk);\n else\n state.buffer.push(chunk);\n if (state.needReadable)\n emitReadable(stream);\n }\n maybeReadMore(stream, state);\n }\n function chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== "string" && chunk !== void 0 && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer", "Uint8Array"], chunk);\n }\n return er;\n }\n Readable.prototype.isPaused = function() {\n return this._readableState.flowing === false;\n };\n Readable.prototype.setEncoding = function(enc) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n this._readableState.encoding = this._readableState.decoder.encoding;\n var p = this._readableState.buffer.head;\n var content = "";\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== "")\n this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n };\n var MAX_HWM = 1073741824;\n function computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n }\n function howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended)\n return 0;\n if (state.objectMode)\n return 1;\n if (n !== n) {\n if (state.flowing && state.length)\n return state.buffer.head.data.length;\n else\n return state.length;\n }\n if (n > state.highWaterMark)\n state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length)\n return n;\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n }\n Readable.prototype.read = function(n) {\n debug("read", n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0)\n state.emittedReadable = false;\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug("read: emitReadable", state.length, state.ended);\n if (state.length === 0 && state.ended)\n endReadable(this);\n else\n emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n if (n === 0 && state.ended) {\n if (state.length === 0)\n endReadable(this);\n return null;\n }\n var doRead = state.needReadable;\n debug("need readable", doRead);\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug("length less than watermark", doRead);\n }\n if (state.ended || state.reading) {\n doRead = false;\n debug("reading or ended", doRead);\n } else if (doRead) {\n debug("do read");\n state.reading = true;\n state.sync = true;\n if (state.length === 0)\n state.needReadable = true;\n this._read(state.highWaterMark);\n state.sync = false;\n if (!state.reading)\n n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0)\n ret = fromList(n, state);\n else\n ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n if (!state.ended)\n state.needReadable = true;\n if (nOrig !== n && state.ended)\n endReadable(this);\n }\n if (ret !== null)\n this.emit("data", ret);\n return ret;\n };\n function onEofChunk(stream, state) {\n debug("onEofChunk");\n if (state.ended)\n return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n emitReadable(stream);\n } else {\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n }\n function emitReadable(stream) {\n var state = stream._readableState;\n debug("emitReadable", state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug("emitReadable", state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n }\n function emitReadable_(stream) {\n var state = stream._readableState;\n debug("emitReadable_", state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit("readable");\n state.emittedReadable = false;\n }\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n }\n function maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n }\n function maybeReadMore_(stream, state) {\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug("maybeReadMore read 0");\n stream.read(0);\n if (len === state.length)\n break;\n }\n state.readingMore = false;\n }\n Readable.prototype._read = function(n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED("_read()"));\n };\n Readable.prototype.pipe = function(dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug("pipe count=%d opts=%j", state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted)\n process.nextTick(endFn);\n else\n src.once("end", endFn);\n dest.on("unpipe", onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug("onunpipe");\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug("onend");\n dest.end();\n }\n var ondrain = pipeOnDrain(src);\n dest.on("drain", ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug("cleanup");\n dest.removeListener("close", onclose);\n dest.removeListener("finish", onfinish);\n dest.removeListener("drain", ondrain);\n dest.removeListener("error", onerror);\n dest.removeListener("unpipe", onunpipe);\n src.removeListener("end", onend);\n src.removeListener("end", unpipe);\n src.removeListener("data", ondata);\n cleanedUp = true;\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain))\n ondrain();\n }\n src.on("data", ondata);\n function ondata(chunk) {\n debug("ondata");\n var ret = dest.write(chunk);\n debug("dest.write", ret);\n if (ret === false) {\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug("false write response, pause", state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n function onerror(er) {\n debug("onerror", er);\n unpipe();\n dest.removeListener("error", onerror);\n if (EElistenerCount(dest, "error") === 0)\n errorOrDestroy(dest, er);\n }\n prependListener(dest, "error", onerror);\n function onclose() {\n dest.removeListener("finish", onfinish);\n unpipe();\n }\n dest.once("close", onclose);\n function onfinish() {\n debug("onfinish");\n dest.removeListener("close", onclose);\n unpipe();\n }\n dest.once("finish", onfinish);\n function unpipe() {\n debug("unpipe");\n src.unpipe(dest);\n }\n dest.emit("pipe", src);\n if (!state.flowing) {\n debug("pipe resume");\n src.resume();\n }\n return dest;\n };\n function pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug("pipeOnDrain", state.awaitDrain);\n if (state.awaitDrain)\n state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, "data")) {\n state.flowing = true;\n flow(src);\n }\n };\n }\n Readable.prototype.unpipe = function(dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n if (state.pipesCount === 0)\n return this;\n if (state.pipesCount === 1) {\n if (dest && dest !== state.pipes)\n return this;\n if (!dest)\n dest = state.pipes;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest)\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n }\n if (!dest) {\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) {\n dests[i].emit("unpipe", this, {\n hasUnpiped: false\n });\n }\n return this;\n }\n var index = indexOf(state.pipes, dest);\n if (index === -1)\n return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1)\n state.pipes = state.pipes[0];\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n };\n Readable.prototype.on = function(ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === "data") {\n state.readableListening = this.listenerCount("readable") > 0;\n if (state.flowing !== false)\n this.resume();\n } else if (ev === "readable") {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug("on readable", state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n };\n Readable.prototype.addListener = Readable.prototype.on;\n Readable.prototype.removeListener = function(ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === "readable") {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n Readable.prototype.removeAllListeners = function(ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === "readable" || ev === void 0) {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n function updateReadableListening(self2) {\n var state = self2._readableState;\n state.readableListening = self2.listenerCount("readable") > 0;\n if (state.resumeScheduled && !state.paused) {\n state.flowing = true;\n } else if (self2.listenerCount("data") > 0) {\n self2.resume();\n }\n }\n function nReadingNextTick(self2) {\n debug("readable nexttick read 0");\n self2.read(0);\n }\n Readable.prototype.resume = function() {\n var state = this._readableState;\n if (!state.flowing) {\n debug("resume");\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n };\n function resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n }\n function resume_(stream, state) {\n debug("resume", state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit("resume");\n flow(stream);\n if (state.flowing && !state.reading)\n stream.read(0);\n }\n Readable.prototype.pause = function() {\n debug("call pause flowing=%j", this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug("pause");\n this._readableState.flowing = false;\n this.emit("pause");\n }\n this._readableState.paused = true;\n return this;\n };\n function flow(stream) {\n var state = stream._readableState;\n debug("flow", state.flowing);\n while (state.flowing && stream.read() !== null) {\n ;\n }\n }\n Readable.prototype.wrap = function(stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on("end", function() {\n debug("wrapped end");\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length)\n _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on("data", function(chunk) {\n debug("wrapped data");\n if (state.decoder)\n chunk = state.decoder.write(chunk);\n if (state.objectMode && (chunk === null || chunk === void 0))\n return;\n else if (!state.objectMode && (!chunk || !chunk.length))\n return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n for (var i in stream) {\n if (this[i] === void 0 && typeof stream[i] === "function") {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n this._read = function(n2) {\n debug("wrapped _read", n2);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n };\n if (typeof Symbol === "function") {\n Readable.prototype[Symbol.asyncIterator] = function() {\n if (createReadableStreamAsyncIterator === void 0) {\n createReadableStreamAsyncIterator = require_async_iterator();\n }\n return createReadableStreamAsyncIterator(this);\n };\n }\n Object.defineProperty(Readable.prototype, "readableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n });\n Object.defineProperty(Readable.prototype, "readableBuffer", {\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n });\n Object.defineProperty(Readable.prototype, "readableFlowing", {\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n });\n Readable._fromList = fromList;\n Object.defineProperty(Readable.prototype, "readableLength", {\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n });\n function fromList(n, state) {\n if (state.length === 0)\n return null;\n var ret;\n if (state.objectMode)\n ret = state.buffer.shift();\n else if (!n || n >= state.length) {\n if (state.decoder)\n ret = state.buffer.join("");\n else if (state.buffer.length === 1)\n ret = state.buffer.first();\n else\n ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n }\n function endReadable(stream) {\n var state = stream._readableState;\n debug("endReadable", state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n }\n function endReadableNT(state, stream) {\n debug("endReadableNT", state.endEmitted, state.length);\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit("end");\n if (state.autoDestroy) {\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n }\n if (typeof Symbol === "function") {\n Readable.from = function(iterable, opts) {\n if (from === void 0) {\n from = require_from_browser();\n }\n return from(Readable, iterable, opts);\n };\n }\n function indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x)\n return i;\n }\n return -1;\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_transform.js\nvar require_stream_transform = __commonJS({\n "node_modules/readable-stream/lib/_stream_transform.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Transform;\n var _require$codes = require_errors_browser().codes;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING;\n var ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n var Duplex = require_stream_duplex();\n require_inherits_browser()(Transform, Duplex);\n function afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit("error", new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n }\n function Transform(options) {\n if (!(this instanceof Transform))\n return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n this._readableState.needReadable = true;\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === "function")\n this._transform = options.transform;\n if (typeof options.flush === "function")\n this._flush = options.flush;\n }\n this.on("prefinish", prefinish);\n }\n function prefinish() {\n var _this = this;\n if (typeof this._flush === "function" && !this._readableState.destroyed) {\n this._flush(function(er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n }\n Transform.prototype.push = function(chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n };\n Transform.prototype._transform = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_transform()"));\n };\n Transform.prototype._write = function(chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark)\n this._read(rs.highWaterMark);\n }\n };\n Transform.prototype._read = function(n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n ts.needTransform = true;\n }\n };\n Transform.prototype._destroy = function(err, cb) {\n Duplex.prototype._destroy.call(this, err, function(err2) {\n cb(err2);\n });\n };\n function done(stream, er, data) {\n if (er)\n return stream.emit("error", er);\n if (data != null)\n stream.push(data);\n if (stream._writableState.length)\n throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming)\n throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_passthrough.js\nvar require_stream_passthrough = __commonJS({\n "node_modules/readable-stream/lib/_stream_passthrough.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = PassThrough;\n var Transform = require_stream_transform();\n require_inherits_browser()(PassThrough, Transform);\n function PassThrough(options) {\n if (!(this instanceof PassThrough))\n return new PassThrough(options);\n Transform.call(this, options);\n }\n PassThrough.prototype._transform = function(chunk, encoding, cb) {\n cb(null, chunk);\n };\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/pipeline.js\nvar require_pipeline = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/pipeline.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var eos;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n callback.apply(void 0, arguments);\n };\n }\n var _require$codes = require_errors_browser().codes;\n var ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n function noop2(err) {\n if (err)\n throw err;\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on("close", function() {\n closed = true;\n });\n if (eos === void 0)\n eos = require_end_of_stream();\n eos(stream, {\n readable: reading,\n writable: writing\n }, function(err) {\n if (err)\n return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function(err) {\n if (closed)\n return;\n if (destroyed)\n return;\n destroyed = true;\n if (isRequest(stream))\n return stream.abort();\n if (typeof stream.destroy === "function")\n return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED("pipe"));\n };\n }\n function call(fn) {\n fn();\n }\n function pipe(from, to) {\n return from.pipe(to);\n }\n function popCallback(streams) {\n if (!streams.length)\n return noop2;\n if (typeof streams[streams.length - 1] !== "function")\n return noop2;\n return streams.pop();\n }\n function pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0]))\n streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS("streams");\n }\n var error;\n var destroys = streams.map(function(stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function(err) {\n if (!error)\n error = err;\n if (err)\n destroys.forEach(call);\n if (reading)\n return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n }\n module.exports = pipeline;\n }\n});\n\n// node_modules/readable-stream/readable-browser.js\nvar require_readable_browser = __commonJS({\n "node_modules/readable-stream/readable-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports = module.exports = require_stream_readable();\n exports.Stream = exports;\n exports.Readable = exports;\n exports.Writable = require_stream_writable();\n exports.Duplex = require_stream_duplex();\n exports.Transform = require_stream_transform();\n exports.PassThrough = require_stream_passthrough();\n exports.finished = require_end_of_stream();\n exports.pipeline = require_pipeline();\n }\n});\n\n// node_modules/readable-web-to-node-stream/lib/index.js\nvar require_lib = __commonJS({\n "node_modules/readable-web-to-node-stream/lib/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n Object.defineProperty(exports, "__esModule", { value: true });\n exports.ReadableWebToNodeStream = void 0;\n var readable_stream_1 = require_readable_browser();\n var ReadableWebToNodeStream2 = class extends readable_stream_1.Readable {\n constructor(stream) {\n super();\n this.bytesRead = 0;\n this.released = false;\n this.reader = stream.getReader();\n }\n async _read() {\n if (this.released) {\n this.push(null);\n return;\n }\n this.pendingRead = this.reader.read();\n const data = await this.pendingRead;\n delete this.pendingRead;\n if (data.done || this.released) {\n this.push(null);\n } else {\n this.bytesRead += data.value.length;\n this.push(data.value);\n }\n }\n async waitForReadToComplete() {\n if (this.pendingRead) {\n await this.pendingRead;\n }\n }\n async close() {\n await this.syncAndRelease();\n }\n async syncAndRelease() {\n this.released = true;\n await this.waitForReadToComplete();\n await this.reader.releaseLock();\n }\n };\n exports.ReadableWebToNodeStream = ReadableWebToNodeStream2;\n }\n});\n\n// node_modules/base-x/src/index.js\nvar require_src = __commonJS({\n "node_modules/base-x/src/index.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function base(ALPHABET) {\n if (ALPHABET.length >= 255) {\n throw new TypeError("Alphabet too long");\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + " is ambiguous");\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode2(source) {\n if (source instanceof Uint8Array) {\n } else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError("Expected Uint8Array");\n }\n if (source.length === 0) {\n return "";\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i2 = 0;\n for (var it1 = size - 1; (carry !== 0 || i2 < length) && it1 !== -1; it1--, i2++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== "string") {\n throw new TypeError("Expected String");\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i2 = 0;\n for (var it3 = size - 1; (carry !== 0 || i2 < length) && it3 !== -1; it3--, i2++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n psz++;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j2 = zeroes;\n while (it4 !== size) {\n vch[j2++] = b256[it4++];\n }\n return vch;\n }\n function decode3(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error("Non-base" + BASE + " character");\n }\n return {\n encode: encode2,\n decodeUnsafe,\n decode: decode3\n };\n }\n module.exports = base;\n }\n});\n\n// node_modules/bs58/index.js\nvar require_bs58 = __commonJS({\n "node_modules/bs58/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var basex = require_src();\n var ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";\n module.exports = basex(ALPHABET);\n }\n});\n\n// node_modules/jpeg-js/lib/encoder.js\nvar require_encoder = __commonJS({\n "node_modules/jpeg-js/lib/encoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var btoa = btoa || function(buf2) {\n return Buffer2.from(buf2).toString("base64");\n };\n function JPEGEncoder(quality) {\n var self2 = this;\n var fround = Math.round;\n var ffloor = Math.floor;\n var YTable = new Array(64);\n var UVTable = new Array(64);\n var fdtbl_Y = new Array(64);\n var fdtbl_UV = new Array(64);\n var YDC_HT2;\n var UVDC_HT2;\n var YAC_HT2;\n var UVAC_HT2;\n var bitcode2 = new Array(65535);\n var category2 = new Array(65535);\n var outputfDCTQuant = new Array(64);\n var DU = new Array(64);\n var byteout = [];\n var bytenew = 0;\n var bytepos = 7;\n var YDU = new Array(64);\n var UDU = new Array(64);\n var VDU = new Array(64);\n var clt = new Array(256);\n var RGB_YUV_TABLE = new Array(2048);\n var currentQuality;\n var ZigZag = [\n 0,\n 1,\n 5,\n 6,\n 14,\n 15,\n 27,\n 28,\n 2,\n 4,\n 7,\n 13,\n 16,\n 26,\n 29,\n 42,\n 3,\n 8,\n 12,\n 17,\n 25,\n 30,\n 41,\n 43,\n 9,\n 11,\n 18,\n 24,\n 31,\n 40,\n 44,\n 53,\n 10,\n 19,\n 23,\n 32,\n 39,\n 45,\n 52,\n 54,\n 20,\n 22,\n 33,\n 38,\n 46,\n 51,\n 55,\n 60,\n 21,\n 34,\n 37,\n 47,\n 50,\n 56,\n 59,\n 61,\n 35,\n 36,\n 48,\n 49,\n 57,\n 58,\n 62,\n 63\n ];\n var std_dc_luminance_nrcodes2 = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\n var std_dc_luminance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_luminance_nrcodes2 = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\n var std_ac_luminance_values2 = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n var std_dc_chrominance_nrcodes2 = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\n var std_dc_chrominance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_chrominance_nrcodes2 = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\n var std_ac_chrominance_values2 = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n function initQuantTables(sf) {\n var YQT = [\n 16,\n 11,\n 10,\n 16,\n 24,\n 40,\n 51,\n 61,\n 12,\n 12,\n 14,\n 19,\n 26,\n 58,\n 60,\n 55,\n 14,\n 13,\n 16,\n 24,\n 40,\n 57,\n 69,\n 56,\n 14,\n 17,\n 22,\n 29,\n 51,\n 87,\n 80,\n 62,\n 18,\n 22,\n 37,\n 56,\n 68,\n 109,\n 103,\n 77,\n 24,\n 35,\n 55,\n 64,\n 81,\n 104,\n 113,\n 92,\n 49,\n 64,\n 78,\n 87,\n 103,\n 121,\n 120,\n 101,\n 72,\n 92,\n 95,\n 98,\n 112,\n 100,\n 103,\n 99\n ];\n for (var i = 0; i < 64; i++) {\n var t = ffloor((YQT[i] * sf + 50) / 100);\n if (t < 1) {\n t = 1;\n } else if (t > 255) {\n t = 255;\n }\n YTable[ZigZag[i]] = t;\n }\n var UVQT = [\n 17,\n 18,\n 24,\n 47,\n 99,\n 99,\n 99,\n 99,\n 18,\n 21,\n 26,\n 66,\n 99,\n 99,\n 99,\n 99,\n 24,\n 26,\n 56,\n 99,\n 99,\n 99,\n 99,\n 99,\n 47,\n 66,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99\n ];\n for (var j = 0; j < 64; j++) {\n var u = ffloor((UVQT[j] * sf + 50) / 100);\n if (u < 1) {\n u = 1;\n } else if (u > 255) {\n u = 255;\n }\n UVTable[ZigZag[j]] = u;\n }\n var aasf = [\n 1,\n 1.387039845,\n 1.306562965,\n 1.175875602,\n 1,\n 0.785694958,\n 0.5411961,\n 0.275899379\n ];\n var k = 0;\n for (var row = 0; row < 8; row++) {\n for (var col = 0; col < 8; col++) {\n fdtbl_Y[k] = 1 / (YTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n fdtbl_UV[k] = 1 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n k++;\n }\n }\n }\n function computeHuffmanTbl(nrcodes, std_table) {\n var codevalue = 0;\n var pos_in_table = 0;\n var HT = new Array();\n for (var k = 1; k <= 16; k++) {\n for (var j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n function initHuffmanTbl() {\n YDC_HT2 = computeHuffmanTbl(std_dc_luminance_nrcodes2, std_dc_luminance_values2);\n UVDC_HT2 = computeHuffmanTbl(std_dc_chrominance_nrcodes2, std_dc_chrominance_values2);\n YAC_HT2 = computeHuffmanTbl(std_ac_luminance_nrcodes2, std_ac_luminance_values2);\n UVAC_HT2 = computeHuffmanTbl(std_ac_chrominance_nrcodes2, std_ac_chrominance_values2);\n }\n function initCategoryNumber() {\n var nrlower = 1;\n var nrupper = 2;\n for (var cat = 1; cat <= 15; cat++) {\n for (var nr = nrlower; nr < nrupper; nr++) {\n category2[32767 + nr] = cat;\n bitcode2[32767 + nr] = [];\n bitcode2[32767 + nr][1] = cat;\n bitcode2[32767 + nr][0] = nr;\n }\n for (var nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category2[32767 + nrneg] = cat;\n bitcode2[32767 + nrneg] = [];\n bitcode2[32767 + nrneg][1] = cat;\n bitcode2[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n }\n function initRGBYUVTable() {\n for (var i = 0; i < 256; i++) {\n RGB_YUV_TABLE[i] = 19595 * i;\n RGB_YUV_TABLE[i + 256 >> 0] = 38470 * i;\n RGB_YUV_TABLE[i + 512 >> 0] = 7471 * i + 32768;\n RGB_YUV_TABLE[i + 768 >> 0] = -11059 * i;\n RGB_YUV_TABLE[i + 1024 >> 0] = -21709 * i;\n RGB_YUV_TABLE[i + 1280 >> 0] = 32768 * i + 8421375;\n RGB_YUV_TABLE[i + 1536 >> 0] = -27439 * i;\n RGB_YUV_TABLE[i + 1792 >> 0] = -5329 * i;\n }\n }\n function writeBits(bs) {\n var value = bs[0];\n var posval = bs[1] - 1;\n while (posval >= 0) {\n if (value & 1 << posval) {\n bytenew |= 1 << bytepos;\n }\n posval--;\n bytepos--;\n if (bytepos < 0) {\n if (bytenew == 255) {\n writeByte(255);\n writeByte(0);\n } else {\n writeByte(bytenew);\n }\n bytepos = 7;\n bytenew = 0;\n }\n }\n }\n function writeByte(value) {\n byteout.push(value);\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function fDCTQuant(data, fdtbl) {\n var d0, d1, d2, d3, d4, d5, d6, d7;\n var dataOff = 0;\n var i;\n var I8 = 8;\n var I64 = 64;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 1];\n d2 = data[dataOff + 2];\n d3 = data[dataOff + 3];\n d4 = data[dataOff + 4];\n d5 = data[dataOff + 5];\n d6 = data[dataOff + 6];\n d7 = data[dataOff + 7];\n var tmp0 = d0 + d7;\n var tmp7 = d0 - d7;\n var tmp1 = d1 + d6;\n var tmp6 = d1 - d6;\n var tmp2 = d2 + d5;\n var tmp5 = d2 - d5;\n var tmp3 = d3 + d4;\n var tmp4 = d3 - d4;\n var tmp10 = tmp0 + tmp3;\n var tmp13 = tmp0 - tmp3;\n var tmp11 = tmp1 + tmp2;\n var tmp12 = tmp1 - tmp2;\n data[dataOff] = tmp10 + tmp11;\n data[dataOff + 4] = tmp10 - tmp11;\n var z1 = (tmp12 + tmp13) * 0.707106781;\n data[dataOff + 2] = tmp13 + z1;\n data[dataOff + 6] = tmp13 - z1;\n tmp10 = tmp4 + tmp5;\n tmp11 = tmp5 + tmp6;\n tmp12 = tmp6 + tmp7;\n var z5 = (tmp10 - tmp12) * 0.382683433;\n var z2 = 0.5411961 * tmp10 + z5;\n var z4 = 1.306562965 * tmp12 + z5;\n var z3 = tmp11 * 0.707106781;\n var z11 = tmp7 + z3;\n var z13 = tmp7 - z3;\n data[dataOff + 5] = z13 + z2;\n data[dataOff + 3] = z13 - z2;\n data[dataOff + 1] = z11 + z4;\n data[dataOff + 7] = z11 - z4;\n dataOff += 8;\n }\n dataOff = 0;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 8];\n d2 = data[dataOff + 16];\n d3 = data[dataOff + 24];\n d4 = data[dataOff + 32];\n d5 = data[dataOff + 40];\n d6 = data[dataOff + 48];\n d7 = data[dataOff + 56];\n var tmp0p2 = d0 + d7;\n var tmp7p2 = d0 - d7;\n var tmp1p2 = d1 + d6;\n var tmp6p2 = d1 - d6;\n var tmp2p2 = d2 + d5;\n var tmp5p2 = d2 - d5;\n var tmp3p2 = d3 + d4;\n var tmp4p2 = d3 - d4;\n var tmp10p2 = tmp0p2 + tmp3p2;\n var tmp13p2 = tmp0p2 - tmp3p2;\n var tmp11p2 = tmp1p2 + tmp2p2;\n var tmp12p2 = tmp1p2 - tmp2p2;\n data[dataOff] = tmp10p2 + tmp11p2;\n data[dataOff + 32] = tmp10p2 - tmp11p2;\n var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781;\n data[dataOff + 16] = tmp13p2 + z1p2;\n data[dataOff + 48] = tmp13p2 - z1p2;\n tmp10p2 = tmp4p2 + tmp5p2;\n tmp11p2 = tmp5p2 + tmp6p2;\n tmp12p2 = tmp6p2 + tmp7p2;\n var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433;\n var z2p2 = 0.5411961 * tmp10p2 + z5p2;\n var z4p2 = 1.306562965 * tmp12p2 + z5p2;\n var z3p2 = tmp11p2 * 0.707106781;\n var z11p2 = tmp7p2 + z3p2;\n var z13p2 = tmp7p2 - z3p2;\n data[dataOff + 40] = z13p2 + z2p2;\n data[dataOff + 24] = z13p2 - z2p2;\n data[dataOff + 8] = z11p2 + z4p2;\n data[dataOff + 56] = z11p2 - z4p2;\n dataOff++;\n }\n var fDCTQuant2;\n for (i = 0; i < I64; ++i) {\n fDCTQuant2 = data[i] * fdtbl[i];\n outputfDCTQuant[i] = fDCTQuant2 > 0 ? fDCTQuant2 + 0.5 | 0 : fDCTQuant2 - 0.5 | 0;\n }\n return outputfDCTQuant;\n }\n function writeAPP0() {\n writeWord(65504);\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n }\n function writeAPP1(exifBuffer) {\n if (!exifBuffer)\n return;\n writeWord(65505);\n if (exifBuffer[0] === 69 && exifBuffer[1] === 120 && exifBuffer[2] === 105 && exifBuffer[3] === 102) {\n writeWord(exifBuffer.length + 2);\n } else {\n writeWord(exifBuffer.length + 5 + 2);\n writeByte(69);\n writeByte(120);\n writeByte(105);\n writeByte(102);\n writeByte(0);\n }\n for (var i = 0; i < exifBuffer.length; i++) {\n writeByte(exifBuffer[i]);\n }\n }\n function writeSOF0(width, height) {\n writeWord(65472);\n writeWord(17);\n writeByte(8);\n writeWord(height);\n writeWord(width);\n writeByte(3);\n writeByte(1);\n writeByte(17);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(1);\n writeByte(3);\n writeByte(17);\n writeByte(1);\n }\n function writeDQT() {\n writeWord(65499);\n writeWord(132);\n writeByte(0);\n for (var i = 0; i < 64; i++) {\n writeByte(YTable[i]);\n }\n writeByte(1);\n for (var j = 0; j < 64; j++) {\n writeByte(UVTable[j]);\n }\n }\n function writeDHT() {\n writeWord(65476);\n writeWord(418);\n writeByte(0);\n for (var i = 0; i < 16; i++) {\n writeByte(std_dc_luminance_nrcodes2[i + 1]);\n }\n for (var j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values2[j]);\n }\n writeByte(16);\n for (var k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes2[k + 1]);\n }\n for (var l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values2[l]);\n }\n writeByte(1);\n for (var m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes2[m + 1]);\n }\n for (var n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values2[n]);\n }\n writeByte(17);\n for (var o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes2[o + 1]);\n }\n for (var p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values2[p]);\n }\n }\n function writeCOM(comments) {\n if (typeof comments === "undefined" || comments.constructor !== Array)\n return;\n comments.forEach((e) => {\n if (typeof e !== "string")\n return;\n writeWord(65534);\n var l = e.length;\n writeWord(l + 2);\n var i;\n for (i = 0; i < l; i++)\n writeByte(e.charCodeAt(i));\n });\n }\n function writeSOS() {\n writeWord(65498);\n writeWord(12);\n writeByte(3);\n writeByte(1);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(3);\n writeByte(17);\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(CDU, fdtbl, DC, HTDC, HTAC) {\n var EOB = HTAC[0];\n var M16zeroes = HTAC[240];\n var pos;\n var I16 = 16;\n var I63 = 63;\n var I64 = 64;\n var DU_DCT = fDCTQuant(CDU, fdtbl);\n for (var j = 0; j < I64; ++j) {\n DU[ZigZag[j]] = DU_DCT[j];\n }\n var Diff = DU[0] - DC;\n DC = DU[0];\n if (Diff == 0) {\n writeBits(HTDC[0]);\n } else {\n pos = 32767 + Diff;\n writeBits(HTDC[category2[pos]]);\n writeBits(bitcode2[pos]);\n }\n var end0pos = 63;\n for (; end0pos > 0 && DU[end0pos] == 0; end0pos--) {\n }\n ;\n if (end0pos == 0) {\n writeBits(EOB);\n return DC;\n }\n var i = 1;\n var lng;\n while (i <= end0pos) {\n var startpos = i;\n for (; DU[i] == 0 && i <= end0pos; ++i) {\n }\n var nrzeroes = i - startpos;\n if (nrzeroes >= I16) {\n lng = nrzeroes >> 4;\n for (var nrmarker = 1; nrmarker <= lng; ++nrmarker)\n writeBits(M16zeroes);\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + DU[i];\n writeBits(HTAC[(nrzeroes << 4) + category2[pos]]);\n writeBits(bitcode2[pos]);\n i++;\n }\n if (end0pos != I63) {\n writeBits(EOB);\n }\n return DC;\n }\n function initCharLookupTable() {\n var sfcc = String.fromCharCode;\n for (var i = 0; i < 256; i++) {\n clt[i] = sfcc(i);\n }\n }\n this.encode = function(image, quality2) {\n var time_start = new Date().getTime();\n if (quality2)\n setQuality(quality2);\n byteout = new Array();\n bytenew = 0;\n bytepos = 7;\n writeWord(65496);\n writeAPP0();\n writeCOM(image.comments);\n writeAPP1(image.exifBuffer);\n writeDQT();\n writeSOF0(image.width, image.height);\n writeDHT();\n writeSOS();\n var DCY = 0;\n var DCU = 0;\n var DCV = 0;\n bytenew = 0;\n bytepos = 7;\n this.encode.displayName = "_encode_";\n var imageData = image.data;\n var width = image.width;\n var height = image.height;\n var quadWidth = width * 4;\n var tripleWidth = width * 3;\n var x, y = 0;\n var r, g, b;\n var start, p, col, row, pos;\n while (y < height) {\n x = 0;\n while (x < quadWidth) {\n start = quadWidth * y + x;\n p = start;\n col = -1;\n row = 0;\n for (pos = 0; pos < 64; pos++) {\n row = pos >> 3;\n col = (pos & 7) * 4;\n p = start + row * quadWidth + col;\n if (y + row >= height) {\n p -= quadWidth * (y + 1 + row - height);\n }\n if (x + col >= quadWidth) {\n p -= x + col - quadWidth + 4;\n }\n r = imageData[p++];\n g = imageData[p++];\n b = imageData[p++];\n YDU[pos] = (RGB_YUV_TABLE[r] + RGB_YUV_TABLE[g + 256 >> 0] + RGB_YUV_TABLE[b + 512 >> 0] >> 16) - 128;\n UDU[pos] = (RGB_YUV_TABLE[r + 768 >> 0] + RGB_YUV_TABLE[g + 1024 >> 0] + RGB_YUV_TABLE[b + 1280 >> 0] >> 16) - 128;\n VDU[pos] = (RGB_YUV_TABLE[r + 1280 >> 0] + RGB_YUV_TABLE[g + 1536 >> 0] + RGB_YUV_TABLE[b + 1792 >> 0] >> 16) - 128;\n }\n DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT2, YAC_HT2);\n DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT2, UVAC_HT2);\n DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT2, UVAC_HT2);\n x += 32;\n }\n y += 8;\n }\n if (bytepos >= 0) {\n var fillbits = [];\n fillbits[1] = bytepos + 1;\n fillbits[0] = (1 << bytepos + 1) - 1;\n writeBits(fillbits);\n }\n writeWord(65497);\n if (typeof module === "undefined")\n return new Uint8Array(byteout);\n return Buffer2.from(byteout);\n var jpegDataUri = "data:image/jpeg;base64," + btoa(byteout.join(""));\n byteout = [];\n var duration = new Date().getTime() - time_start;\n return jpegDataUri;\n };\n function setQuality(quality2) {\n if (quality2 <= 0) {\n quality2 = 1;\n }\n if (quality2 > 100) {\n quality2 = 100;\n }\n if (currentQuality == quality2)\n return;\n var sf = 0;\n if (quality2 < 50) {\n sf = Math.floor(5e3 / quality2);\n } else {\n sf = Math.floor(200 - quality2 * 2);\n }\n initQuantTables(sf);\n currentQuality = quality2;\n }\n function init3() {\n var time_start = new Date().getTime();\n if (!quality)\n quality = 50;\n initCharLookupTable();\n initHuffmanTbl();\n initCategoryNumber();\n initRGBYUVTable();\n setQuality(quality);\n var duration = new Date().getTime() - time_start;\n }\n init3();\n }\n if (typeof module !== "undefined") {\n module.exports = encode2;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].encode = encode2;\n }\n function encode2(imgData, qu) {\n if (typeof qu === "undefined")\n qu = 50;\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(imgData, qu);\n return {\n data,\n width: imgData.width,\n height: imgData.height\n };\n }\n }\n});\n\n// node_modules/jpeg-js/lib/decoder.js\nvar require_decoder = __commonJS({\n "node_modules/jpeg-js/lib/decoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var JpegImage = function jpegImage() {\n "use strict";\n var dctZigZag = new Int32Array([\n 0,\n 1,\n 8,\n 16,\n 9,\n 2,\n 3,\n 10,\n 17,\n 24,\n 32,\n 25,\n 18,\n 11,\n 4,\n 5,\n 12,\n 19,\n 26,\n 33,\n 40,\n 48,\n 41,\n 34,\n 27,\n 20,\n 13,\n 6,\n 7,\n 14,\n 21,\n 28,\n 35,\n 42,\n 49,\n 56,\n 57,\n 50,\n 43,\n 36,\n 29,\n 22,\n 15,\n 23,\n 30,\n 37,\n 44,\n 51,\n 58,\n 59,\n 52,\n 45,\n 38,\n 31,\n 39,\n 46,\n 53,\n 60,\n 61,\n 54,\n 47,\n 55,\n 62,\n 63\n ]);\n var dctCos1 = 4017;\n var dctSin1 = 799;\n var dctCos3 = 3406;\n var dctSin3 = 2276;\n var dctCos6 = 1567;\n var dctSin6 = 3784;\n var dctSqrt2 = 5793;\n var dctSqrt1d2 = 2896;\n function constructor() {\n }\n function buildHuffmanTable2(codeLengths, values) {\n var k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n var p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n }\n function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive, opts) {\n var precision = frame.precision;\n var samplesPerLine = frame.samplesPerLine;\n var scanLines = frame.scanLines;\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\n var maxH = frame.maxH, maxV = frame.maxV;\n var startOffset = offset, bitsData = 0, bitsCount = 0;\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return bitsData >> bitsCount & 1;\n }\n bitsData = data[offset++];\n if (bitsData == 255) {\n var nextByte = data[offset++];\n if (nextByte) {\n throw new Error("unexpected marker: " + (bitsData << 8 | nextByte).toString(16));\n }\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n function decodeHuffman(tree) {\n var node = tree, bit;\n while ((bit = readBit()) !== null) {\n node = node[bit];\n if (typeof node === "number")\n return node;\n if (typeof node !== "object")\n throw new Error("invalid huffman sequence");\n }\n return null;\n }\n function receive(length) {\n var n2 = 0;\n while (length > 0) {\n var bit = readBit();\n if (bit === null)\n return;\n n2 = n2 << 1 | bit;\n length--;\n }\n return n2;\n }\n function receiveAndExtend(length) {\n var n2 = receive(length);\n if (n2 >= 1 << length - 1)\n return n2;\n return n2 + (-1 << length) + 1;\n }\n function decodeBaseline(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t);\n zz[0] = component2.pred += diff;\n var k2 = 1;\n while (k2 < 64) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15)\n break;\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s);\n k2++;\n }\n }\n function decodeDCFirst(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n zz[0] = component2.pred += diff;\n }\n function decodeDCSuccessive(component2, zz) {\n zz[0] |= readBit() << successive;\n }\n var eobrun = 0;\n function decodeACFirst(component2, zz) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n var k2 = spectralStart, e = spectralEnd;\n while (k2 <= e) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s) * (1 << successive);\n k2++;\n }\n }\n var successiveACState = 0, successiveACNextValue;\n function decodeACSuccessive(component2, zz) {\n var k2 = spectralStart, e = spectralEnd, r = 0;\n while (k2 <= e) {\n var z = dctZigZag[k2];\n var direction = zz[z] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0:\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1)\n throw new Error("invalid ACn encoding");\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1:\n case 2:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n r--;\n if (r === 0)\n successiveACState = successiveACState == 2 ? 3 : 0;\n }\n break;\n case 3:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n zz[z] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n break;\n }\n k2++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0)\n successiveACState = 0;\n }\n }\n function decodeMcu(component2, decode4, mcu2, row, col) {\n var mcuRow = mcu2 / mcusPerLine | 0;\n var mcuCol = mcu2 % mcusPerLine;\n var blockRow = mcuRow * component2.v + row;\n var blockCol = mcuCol * component2.h + col;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n function decodeBlock(component2, decode4, mcu2) {\n var blockRow = mcu2 / component2.blocksPerLine | 0;\n var blockCol = mcu2 % component2.blocksPerLine;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n var componentsLength = components.length;\n var component, i, j, k, n;\n var decodeFn;\n if (progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n var mcu = 0, marker;\n var mcuExpected;\n if (componentsLength == 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n if (!resetInterval)\n resetInterval = mcuExpected;\n var h, v;\n while (mcu < mcuExpected) {\n for (i = 0; i < componentsLength; i++)\n components[i].pred = 0;\n eobrun = 0;\n if (componentsLength == 1) {\n component = components[0];\n for (n = 0; n < resetInterval; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < resetInterval; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n if (mcu === mcuExpected)\n break;\n }\n }\n if (mcu === mcuExpected) {\n do {\n if (data[offset] === 255) {\n if (data[offset + 1] !== 0) {\n break;\n }\n }\n offset += 1;\n } while (offset < data.length - 2);\n }\n bitsCount = 0;\n marker = data[offset] << 8 | data[offset + 1];\n if (marker < 65280) {\n throw new Error("marker was not found");\n }\n if (marker >= 65488 && marker <= 65495) {\n offset += 2;\n } else\n break;\n }\n return offset - startOffset;\n }\n function buildComponentData(frame, component) {\n var lines = [];\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var samplesPerLine = blocksPerLine << 3;\n var R = new Int32Array(64), r = new Uint8Array(64);\n function quantizeAndInverse(zz, dataOut, dataIn) {\n var qt = component.quantizationTable;\n var v0, v1, v2, v3, v4, v5, v6, v7, t;\n var p = dataIn;\n var i2;\n for (i2 = 0; i2 < 64; i2++)\n p[i2] = zz[i2] * qt[i2];\n for (i2 = 0; i2 < 8; ++i2) {\n var row = 8 * i2;\n if (p[1 + row] == 0 && p[2 + row] == 0 && p[3 + row] == 0 && p[4 + row] == 0 && p[5 + row] == 0 && p[6 + row] == 0 && p[7 + row] == 0) {\n t = dctSqrt2 * p[0 + row] + 512 >> 10;\n p[0 + row] = t;\n p[1 + row] = t;\n p[2 + row] = t;\n p[3 + row] = t;\n p[4 + row] = t;\n p[5 + row] = t;\n p[6 + row] = t;\n p[7 + row] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 + row] + 128 >> 8;\n v1 = dctSqrt2 * p[4 + row] + 128 >> 8;\n v2 = p[2 + row];\n v3 = p[6 + row];\n v4 = dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128 >> 8;\n v7 = dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128 >> 8;\n v5 = p[3 + row] << 4;\n v6 = p[5 + row] << 4;\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 + row] = v0 + v7;\n p[7 + row] = v0 - v7;\n p[1 + row] = v1 + v6;\n p[6 + row] = v1 - v6;\n p[2 + row] = v2 + v5;\n p[5 + row] = v2 - v5;\n p[3 + row] = v3 + v4;\n p[4 + row] = v3 - v4;\n }\n for (i2 = 0; i2 < 8; ++i2) {\n var col = i2;\n if (p[1 * 8 + col] == 0 && p[2 * 8 + col] == 0 && p[3 * 8 + col] == 0 && p[4 * 8 + col] == 0 && p[5 * 8 + col] == 0 && p[6 * 8 + col] == 0 && p[7 * 8 + col] == 0) {\n t = dctSqrt2 * dataIn[i2 + 0] + 8192 >> 14;\n p[0 * 8 + col] = t;\n p[1 * 8 + col] = t;\n p[2 * 8 + col] = t;\n p[3 * 8 + col] = t;\n p[4 * 8 + col] = t;\n p[5 * 8 + col] = t;\n p[6 * 8 + col] = t;\n p[7 * 8 + col] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 * 8 + col] + 2048 >> 12;\n v1 = dctSqrt2 * p[4 * 8 + col] + 2048 >> 12;\n v2 = p[2 * 8 + col];\n v3 = p[6 * 8 + col];\n v4 = dctSqrt1d2 * (p[1 * 8 + col] - p[7 * 8 + col]) + 2048 >> 12;\n v7 = dctSqrt1d2 * (p[1 * 8 + col] + p[7 * 8 + col]) + 2048 >> 12;\n v5 = p[3 * 8 + col];\n v6 = p[5 * 8 + col];\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 * 8 + col] = v0 + v7;\n p[7 * 8 + col] = v0 - v7;\n p[1 * 8 + col] = v1 + v6;\n p[6 * 8 + col] = v1 - v6;\n p[2 * 8 + col] = v2 + v5;\n p[5 * 8 + col] = v2 - v5;\n p[3 * 8 + col] = v3 + v4;\n p[4 * 8 + col] = v3 - v4;\n }\n for (i2 = 0; i2 < 64; ++i2) {\n var sample2 = 128 + (p[i2] + 8 >> 4);\n dataOut[i2] = sample2 < 0 ? 0 : sample2 > 255 ? 255 : sample2;\n }\n }\n requestMemoryAllocation(samplesPerLine * blocksPerColumn * 8);\n var i, j;\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n var scanLine = blockRow << 3;\n for (i = 0; i < 8; i++)\n lines.push(new Uint8Array(samplesPerLine));\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n quantizeAndInverse(component.blocks[blockRow][blockCol], r, R);\n var offset = 0, sample = blockCol << 3;\n for (j = 0; j < 8; j++) {\n var line = lines[scanLine + j];\n for (i = 0; i < 8; i++)\n line[sample + i] = r[offset++];\n }\n }\n }\n return lines;\n }\n function clampTo8bit(a) {\n return a < 0 ? 0 : a > 255 ? 255 : a;\n }\n constructor.prototype = {\n load: function load(path) {\n var xhr = new XMLHttpRequest();\n xhr.open("GET", path, true);\n xhr.responseType = "arraybuffer";\n xhr.onload = function() {\n var data = new Uint8Array(xhr.response || xhr.mozResponseArrayBuffer);\n this.parse(data);\n if (this.onload)\n this.onload();\n }.bind(this);\n xhr.send(null);\n },\n parse: function parse(data) {\n var maxResolutionInPixels = this.opts.maxResolutionInMP * 1e3 * 1e3;\n var offset = 0, length = data.length;\n function readUint16() {\n var value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n var length2 = readUint16();\n var array = data.subarray(offset, offset + length2 - 2);\n offset += array.length;\n return array;\n }\n function prepareComponents(frame2) {\n var maxH2 = 1, maxV2 = 1;\n var component2, componentId2;\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n if (maxH2 < component2.h)\n maxH2 = component2.h;\n if (maxV2 < component2.v)\n maxV2 = component2.v;\n }\n }\n var mcusPerLine = Math.ceil(frame2.samplesPerLine / 8 / maxH2);\n var mcusPerColumn = Math.ceil(frame2.scanLines / 8 / maxV2);\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n var blocksPerLine = Math.ceil(Math.ceil(frame2.samplesPerLine / 8) * component2.h / maxH2);\n var blocksPerColumn = Math.ceil(Math.ceil(frame2.scanLines / 8) * component2.v / maxV2);\n var blocksPerLineForMcu = mcusPerLine * component2.h;\n var blocksPerColumnForMcu = mcusPerColumn * component2.v;\n var blocksToAllocate = blocksPerColumnForMcu * blocksPerLineForMcu;\n var blocks = [];\n requestMemoryAllocation(blocksToAllocate * 256);\n for (var i2 = 0; i2 < blocksPerColumnForMcu; i2++) {\n var row = [];\n for (var j2 = 0; j2 < blocksPerLineForMcu; j2++)\n row.push(new Int32Array(64));\n blocks.push(row);\n }\n component2.blocksPerLine = blocksPerLine;\n component2.blocksPerColumn = blocksPerColumn;\n component2.blocks = blocks;\n }\n }\n frame2.maxH = maxH2;\n frame2.maxV = maxV2;\n frame2.mcusPerLine = mcusPerLine;\n frame2.mcusPerColumn = mcusPerColumn;\n }\n var jfif = null;\n var adobe = null;\n var pixels = null;\n var frame, resetInterval;\n var quantizationTables = [], frames = [];\n var huffmanTablesAC = [], huffmanTablesDC = [];\n var fileMarker = readUint16();\n var malformedDataOffset = -1;\n this.comments = [];\n if (fileMarker != 65496) {\n throw new Error("SOI not found");\n }\n fileMarker = readUint16();\n while (fileMarker != 65497) {\n var i, j, l;\n switch (fileMarker) {\n case 65280:\n break;\n case 65504:\n case 65505:\n case 65506:\n case 65507:\n case 65508:\n case 65509:\n case 65510:\n case 65511:\n case 65512:\n case 65513:\n case 65514:\n case 65515:\n case 65516:\n case 65517:\n case 65518:\n case 65519:\n case 65534:\n var appData = readDataBlock();\n if (fileMarker === 65534) {\n var comment = String.fromCharCode.apply(null, appData);\n this.comments.push(comment);\n }\n if (fileMarker === 65504) {\n if (appData[0] === 74 && appData[1] === 70 && appData[2] === 73 && appData[3] === 70 && appData[4] === 0) {\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: appData[8] << 8 | appData[9],\n yDensity: appData[10] << 8 | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n };\n }\n }\n if (fileMarker === 65505) {\n if (appData[0] === 69 && appData[1] === 120 && appData[2] === 105 && appData[3] === 102 && appData[4] === 0) {\n this.exifBuffer = appData.subarray(5, appData.length);\n }\n }\n if (fileMarker === 65518) {\n if (appData[0] === 65 && appData[1] === 100 && appData[2] === 111 && appData[3] === 98 && appData[4] === 101 && appData[5] === 0) {\n adobe = {\n version: appData[6],\n flags0: appData[7] << 8 | appData[8],\n flags1: appData[9] << 8 | appData[10],\n transformCode: appData[11]\n };\n }\n }\n break;\n case 65499:\n var quantizationTablesLength = readUint16();\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n requestMemoryAllocation(64 * 4);\n var tableData = new Int32Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = readUint16();\n }\n } else\n throw new Error("DQT: invalid table spec");\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n case 65472:\n case 65473:\n case 65474:\n readUint16();\n frame = {};\n frame.extended = fileMarker === 65473;\n frame.progressive = fileMarker === 65474;\n frame.precision = data[offset++];\n frame.scanLines = readUint16();\n frame.samplesPerLine = readUint16();\n frame.components = {};\n frame.componentsOrder = [];\n var pixelsInFrame = frame.scanLines * frame.samplesPerLine;\n if (pixelsInFrame > maxResolutionInPixels) {\n var exceededAmount = Math.ceil((pixelsInFrame - maxResolutionInPixels) / 1e6);\n throw new Error(`maxResolutionInMP limit exceeded by ${exceededAmount}MP`);\n }\n var componentsCount = data[offset++], componentId;\n var maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n var h = data[offset + 1] >> 4;\n var v = data[offset + 1] & 15;\n var qId = data[offset + 2];\n if (h <= 0 || v <= 0) {\n throw new Error("Invalid sampling factor, expected values above 0");\n }\n frame.componentsOrder.push(componentId);\n frame.components[componentId] = {\n h,\n v,\n quantizationIdx: qId\n };\n offset += 3;\n }\n prepareComponents(frame);\n frames.push(frame);\n break;\n case 65476:\n var huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n requestMemoryAllocation(16 + codeLengthSum);\n var huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable2(codeLengths, huffmanValues);\n }\n break;\n case 65501:\n readUint16();\n resetInterval = readUint16();\n break;\n case 65500:\n readUint16();\n readUint16();\n break;\n case 65498:\n var scanLength = readUint16();\n var selectorsCount = data[offset++];\n var components = [], component;\n for (i = 0; i < selectorsCount; i++) {\n component = frame.components[data[offset++]];\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n var processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, this.opts);\n offset += processed;\n break;\n case 65535:\n if (data[offset] !== 255) {\n offset--;\n }\n break;\n default:\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n break;\n } else if (fileMarker === 224 || fileMarker == 225) {\n if (malformedDataOffset !== -1) {\n throw new Error(`first unknown JPEG marker at offset ${malformedDataOffset.toString(16)}, second unknown JPEG marker ${fileMarker.toString(16)} at offset ${(offset - 1).toString(16)}`);\n }\n malformedDataOffset = offset - 1;\n const nextOffset = readUint16();\n if (data[offset + nextOffset - 2] === 255) {\n offset += nextOffset - 2;\n break;\n }\n }\n throw new Error("unknown JPEG marker " + fileMarker.toString(16));\n }\n fileMarker = readUint16();\n }\n if (frames.length != 1)\n throw new Error("only single frame JPEGs supported");\n for (var i = 0; i < frames.length; i++) {\n var cp = frames[i].components;\n for (var j in cp) {\n cp[j].quantizationTable = quantizationTables[cp[j].quantizationIdx];\n delete cp[j].quantizationIdx;\n }\n }\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (var i = 0; i < frame.componentsOrder.length; i++) {\n var component = frame.components[frame.componentsOrder[i]];\n this.components.push({\n lines: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV\n });\n }\n },\n getData: function getData(width, height) {\n var scaleX = this.width / width, scaleY = this.height / height;\n var component1, component2, component3, component4;\n var component1Line, component2Line, component3Line, component4Line;\n var x, y;\n var offset = 0;\n var Y, Cb, Cr, K, C, M, Ye, R, G, B;\n var colorTransform;\n var dataLength = width * height * this.components.length;\n requestMemoryAllocation(dataLength);\n var data = new Uint8Array(dataLength);\n switch (this.components.length) {\n case 1:\n component1 = this.components[0];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 2:\n component1 = this.components[0];\n component2 = this.components[1];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n Y = component2Line[0 | x * component2.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 3:\n colorTransform = true;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n R = component1Line[0 | x * component1.scaleX * scaleX];\n G = component2Line[0 | x * component2.scaleX * scaleX];\n B = component3Line[0 | x * component3.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n R = clampTo8bit(Y + 1.402 * (Cr - 128));\n G = clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n B = clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = R;\n data[offset++] = G;\n data[offset++] = B;\n }\n }\n break;\n case 4:\n if (!this.adobe)\n throw new Error("Unsupported color mode (4 components)");\n colorTransform = false;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n component4 = this.components[3];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n component4Line = component4.lines[0 | y * component4.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n C = component1Line[0 | x * component1.scaleX * scaleX];\n M = component2Line[0 | x * component2.scaleX * scaleX];\n Ye = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n C = 255 - clampTo8bit(Y + 1.402 * (Cr - 128));\n M = 255 - clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n Ye = 255 - clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = 255 - C;\n data[offset++] = 255 - M;\n data[offset++] = 255 - Ye;\n data[offset++] = 255 - K;\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n return data;\n },\n copyToImageData: function copyToImageData(imageData, formatAsRGBA) {\n var width = imageData.width, height = imageData.height;\n var imageDataArray = imageData.data;\n var data = this.getData(width, height);\n var i = 0, j = 0, x, y;\n var Y, K, C, M, R, G, B;\n switch (this.components.length) {\n case 1:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n Y = data[i++];\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 3:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n R = data[i++];\n G = data[i++];\n B = data[i++];\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 4:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n C = data[i++];\n M = data[i++];\n Y = data[i++];\n K = data[i++];\n R = 255 - clampTo8bit(C * (1 - K / 255) + K);\n G = 255 - clampTo8bit(M * (1 - K / 255) + K);\n B = 255 - clampTo8bit(Y * (1 - K / 255) + K);\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n }\n };\n var totalBytesAllocated = 0;\n var maxMemoryUsageBytes = 0;\n function requestMemoryAllocation(increaseAmount = 0) {\n var totalMemoryImpactBytes = totalBytesAllocated + increaseAmount;\n if (totalMemoryImpactBytes > maxMemoryUsageBytes) {\n var exceededAmount = Math.ceil((totalMemoryImpactBytes - maxMemoryUsageBytes) / 1024 / 1024);\n throw new Error(`maxMemoryUsageInMB limit exceeded by at least ${exceededAmount}MB`);\n }\n totalBytesAllocated = totalMemoryImpactBytes;\n }\n constructor.resetMaxMemoryUsage = function(maxMemoryUsageBytes_) {\n totalBytesAllocated = 0;\n maxMemoryUsageBytes = maxMemoryUsageBytes_;\n };\n constructor.getBytesAllocated = function() {\n return totalBytesAllocated;\n };\n constructor.requestMemoryAllocation = requestMemoryAllocation;\n return constructor;\n }();\n if (typeof module !== "undefined") {\n module.exports = decode3;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].decode = decode3;\n }\n function decode3(jpegData, userOpts = {}) {\n var defaultOpts = {\n colorTransform: void 0,\n useTArray: false,\n formatAsRGBA: true,\n tolerantDecoding: true,\n maxResolutionInMP: 100,\n maxMemoryUsageInMB: 512\n };\n var opts = { ...defaultOpts, ...userOpts };\n var arr = new Uint8Array(jpegData);\n var decoder = new JpegImage();\n decoder.opts = opts;\n JpegImage.resetMaxMemoryUsage(opts.maxMemoryUsageInMB * 1024 * 1024);\n decoder.parse(arr);\n var channels = opts.formatAsRGBA ? 4 : 3;\n var bytesNeeded = decoder.width * decoder.height * channels;\n try {\n JpegImage.requestMemoryAllocation(bytesNeeded);\n var image = {\n width: decoder.width,\n height: decoder.height,\n exifBuffer: decoder.exifBuffer,\n data: opts.useTArray ? new Uint8Array(bytesNeeded) : Buffer2.alloc(bytesNeeded)\n };\n if (decoder.comments.length > 0) {\n image["comments"] = decoder.comments;\n }\n } catch (err) {\n if (err instanceof RangeError) {\n throw new Error("Could not allocate enough memory for the image. Required: " + bytesNeeded);\n }\n if (err instanceof ReferenceError) {\n if (err.message === "Buffer is not defined") {\n throw new Error("Buffer is not globally defined in this environment. Consider setting useTArray to true");\n }\n }\n throw err;\n }\n decoder.copyToImageData(image, opts.formatAsRGBA);\n return image;\n }\n }\n});\n\n// node_modules/jpeg-js/index.js\nvar require_jpeg_js = __commonJS({\n "node_modules/jpeg-js/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var encode2 = require_encoder();\n var decode3 = require_decoder();\n module.exports = {\n encode: encode2,\n decode: decode3\n };\n }\n});\n\n// src/processor.worker.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/platform.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/requests.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar xmlhttprequest;\nif (false)\n xmlhttprequest = typeof GM_xmlhttpRequest != "undefined" ? GM_xmlhttpRequest : typeof GM != "undefined" ? GM.xmlHttpRequest : window["GM_xmlhttpRequest"];\nvar GM_fetch = (...[url, opt, lisn]) => {\n function blobTo(to, blob) {\n if (to == "arrayBuffer" && blob.arrayBuffer) {\n const ret = blob.arrayBuffer();\n if (ret)\n return ret;\n }\n return new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.onload = function(event) {\n if (!event)\n return;\n if (to == "base64")\n resolve(event.target.result);\n else\n resolve(event.target.result);\n };\n if (to == "arrayBuffer")\n fileReader.readAsArrayBuffer(blob);\n else if (to == "base64")\n fileReader.readAsDataURL(blob);\n else if (to == "text")\n fileReader.readAsText(blob, "utf-8");\n else\n reject(new Error("unknown to"));\n });\n }\n return new Promise((resolve, reject) => {\n const gmopt = {\n url: url.toString(),\n data: opt?.body,\n responseType: "blob",\n headers: opt?.headers,\n method: opt?.method || "GET",\n ...lisn ? {\n onprogress: (prog) => {\n if (prog.loaded != prog.total && prog.total != 0)\n lisn.dispatchEvent(new CustomEvent("progress", { detail: [prog.loaded, prog.total] }));\n }\n } : {},\n onload: (resp) => {\n if (resp.status / 100 >= 4) {\n reject(new Error("Server Error: " + resp.status));\n return;\n }\n const blob = resp.response;\n const ref = resp;\n ref.blob = () => Promise.resolve(blob);\n ref.arrayBuffer = () => blobTo("arrayBuffer", blob);\n ref.text = () => blobTo("text", blob);\n ref.json = async () => JSON.parse(await blobTo("text", blob));\n resolve(resp);\n },\n ontimeout: () => reject(new Error("fetch timeout")),\n onerror: (...args) => {\n reject(new Error("fetch error"));\n },\n onabort: () => reject(new Error("fetch abort"))\n };\n xmlhttprequest(gmopt);\n });\n};\n\n// src/platform.ts\nvar lqueue = {};\nvar localSet = (key2, value) => localStorage.setItem("__pee__" + key2, JSON.stringify(value));\nvar port1;\nconsole.log("worker", false);\nvar msgBuff = [];\nvar setupPort = (port) => {\n port1 = port;\n port1.onmessage = (ev) => {\n lqueue[ev.data.id](ev.data);\n };\n if (true) {\n for (const msg of msgBuff) {\n port.postMessage(msg[0], { transfer: msg[1] });\n }\n msgBuff = [];\n }\n};\nif (true) {\n port1 = {\n onmessage(ev) {\n lqueue[ev.data.id](ev.data);\n },\n postMessage(msg, tr) {\n msgBuff.push([msg, tr]);\n }\n };\n}\nvar gid = 0;\nvar sendCmd = (cmd, tr, overwrite = false, todelete = false) => {\n const prom = new Promise((_) => {\n const id = gid++;\n if (overwrite)\n cmd.id = id;\n lqueue[id] = (e) => {\n _(e.res);\n if (todelete)\n delete lqueue[id];\n };\n port1.postMessage({ id, ...cmd }, tr || []);\n });\n return prom;\n};\nvar bridge = (name, f) => {\n if (false)\n return f;\n if (false)\n return f;\n return (...args) => {\n return sendCmd({ name, args });\n };\n};\nvar Bridged = (ctor) => {\n const keys = Object.getOwnPropertyNames(ctor).filter((k) => typeof ctor[k] == "function");\n for (const k of keys)\n ctor[k] = bridge(k, ctor[k]);\n};\nif (false) {\n popupport = chrome.runtime.connect({ name: "popup" });\n popupport.onMessage.addListener((msg) => {\n if (msg.id in pendingcmds) {\n pendingcmds[msg.id](msg);\n delete pendingcmds[msg.id];\n }\n });\n}\nvar Platform = class {\n static async openInTab(src, opts) {\n if (false) {\n return GM.openInTab(src, opts);\n }\n const obj = false ? chrome : browser;\n let i;\n if (opts.insert)\n i = (await obj.tabs.getCurrent()).index + 1;\n return obj.tabs.create({ active: opts.active, url: src, index: i });\n }\n static async getValue(key2, def) {\n const isinls = "__pee__" + key2 in localStorage;\n let ret;\n if (isinls) {\n let it = localStorage.getItem("__pee__" + key2);\n if (it === "undefined")\n it = null;\n ret = { ...def, ...JSON.parse(it || "{}") };\n } else\n ret = def;\n if (true) {\n if (isinls) {\n delete localStorage["__pee__" + key2];\n await chrome.storage.local.set({\n [key2]: JSON.stringify(ret)\n });\n } else {\n const d = await chrome.storage.local.get([key2]);\n if (typeof d[key2] == "string")\n return { ...def, ...await JSON.parse("" + d[key2] || "{}") };\n }\n }\n return ret;\n }\n static setValue(name, val) {\n localSet(name, val);\n }\n};\nPlatform.cmdid = 0;\nPlatform = __decorateClass([\n Bridged\n], Platform);\nvar corsFetch = async (input, init3, lsn) => {\n const id = gid++;\n let transfer = [];\n if (init3?.body) {\n if (false) {\n [init3.body, transfer] = await braveserialize(init3.body);\n }\n }\n const prom = new Promise((_, rej) => {\n let gcontroller;\n let buffer = [];\n let finished = false;\n const rs = new ReadableStream({\n start(controller) {\n gcontroller = controller;\n buffer.forEach((b) => gcontroller?.enqueue(b));\n buffer = [];\n if (finished) {\n gcontroller.close();\n }\n }\n });\n let s;\n s = 0;\n const cmdbuff = [];\n lqueue[id] = async (e) => {\n if (e.progress) {\n if (lsn)\n lsn.dispatchEvent(new CustomEvent("progress", { detail: e.progress }));\n }\n if (e.pushData) {\n if (e.s > s) {\n let idx = 0;\n while (idx < cmdbuff.length) {\n if (cmdbuff[idx].s > e.s)\n break;\n idx++;\n }\n cmdbuff.splice(idx, 0, e);\n return;\n }\n const processCmd = (e2) => {\n if (e2.pushData.data) {\n const data = new Uint8Array(e2.pushData.data);\n if (gcontroller)\n gcontroller.enqueue(data);\n else\n buffer.push(data);\n } else {\n if (gcontroller)\n gcontroller?.close();\n else\n finished = true;\n }\n };\n await processCmd(e);\n s++;\n while (cmdbuff[0]?.s == s) {\n await processCmd(cmdbuff.shift());\n s++;\n }\n }\n if (e.setRes) {\n const arrayBuffer = async () => {\n const r = rs.getReader();\n await sendCmd({ name: "fullyRead", fid: id });\n const abs = [];\n let res;\n do {\n res = await r.read();\n if (res.done)\n break;\n abs.push(res.value);\n } while (!res.done);\n const sum = abs.reduce((a, b) => a + b.byteLength, 0);\n const ret = new Uint8Array(sum);\n abs.reduce((ptr, arr) => {\n ret.set(arr, ptr);\n return ptr + arr.byteLength;\n }, 0);\n r.releaseLock();\n return ret;\n };\n const blob = async () => new Blob([await arrayBuffer()]);\n const text = async () => new TextDecoder().decode(await arrayBuffer());\n const json = async () => JSON.parse(await text());\n if (e.ok)\n _({\n body: rs,\n ok: e.ok,\n headers: e.headers,\n redirected: e.redirected,\n type: e.type,\n url: e.url,\n status: e.status,\n bodyUsed: e.bodyUsed,\n statusText: e.statusText,\n clone() {\n return this;\n },\n arrayBuffer,\n blob,\n text,\n json,\n async formData() {\n return new FormData();\n }\n });\n else {\n rej(new Error(`${e.url} - ${e.status}`));\n }\n }\n };\n port1.postMessage({\n id,\n name: "corsFetch",\n args: [input, init3]\n }, transfer);\n });\n return prom;\n};\nasync function getHeaders(s) {\n if (false)\n return headerStringToObject(await GM_head(s));\n const res = await ifetch(s, {\n method: "HEAD"\n });\n return res.headers;\n}\nasync function ifetch(...[url, opt, lisn]) {\n if (true)\n return corsFetch(url.toString(), opt, lisn);\n return GM_fetch(url, opt, lisn);\n}\nasync function* streamRemote(url, chunkSize = 72 * 1024, fetchRestOnNonCanceled = true) {\n let size = Number.POSITIVE_INFINITY;\n let ptr = 0;\n let fetchSize = chunkSize;\n while (ptr != size) {\n let obj;\n const fres = await ifetch(url, { headers: { range: `bytes=${ptr}-${ptr + fetchSize - 1}` } });\n if (false) {\n obj = headerStringToObject(fres.responseHeaders);\n } else {\n obj = fres.headers;\n }\n if (!("content-length" in obj)) {\n console.warn("no content lenght???", url);\n break;\n }\n if ("content-range" in obj) {\n size = +obj["content-range"].split("/")[1];\n }\n const len = +obj["content-length"];\n ptr += len;\n if (fetchRestOnNonCanceled)\n fetchSize = size;\n const val = Buffer2.from(await fres.arrayBuffer());\n const e = yield val;\n if (e) {\n break;\n }\n }\n}\n\n// src/stores.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/store/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/internal/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction noop() {\n}\nfunction run(fn) {\n return fn();\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === "function";\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || (a && typeof a === "object" || typeof a === "function");\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nvar resolved_promise = Promise.resolve();\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nvar SvelteElement;\nif (typeof HTMLElement === "function") {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: "open" });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n for (const key2 in this.$$.slotted) {\n this.appendChild(this.$$.slotted[key2]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []);\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n\n// node_modules/svelte/store/index.mjs\nvar subscriber_queue = [];\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = /* @__PURE__ */ new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) {\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe2(run2, invalidate = noop) {\n const subscriber = [run2, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run2(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe: subscribe2 };\n}\n\n// src/stores.ts\nvar localLoad = async (key2, def) => {\n const ret = await Platform.getValue(key2, def);\n return ret;\n};\nvar localSet2 = (key2, value) => {\n if (true) {\n return;\n }\n if (true)\n chrome.storage.local.set({ [key2]: JSON.stringify(value) });\n else\n localStorage.setItem("__pee__" + key2, JSON.stringify(value));\n};\nvar initial_settings = {\n loop: true,\n dh: false,\n pmeth: 5,\n xpv: false,\n xpi: false,\n hyd: false,\n notcata: false,\n ak: "",\n auto_embed: 0,\n auto_tags: "",\n te: false,\n eye: false,\n ca: false,\n pre: false,\n prev: false,\n sh: false,\n ep: false,\n tm: false,\n dvc: false,\n expte: false,\n mdist: -1,\n phash: false,\n hotlink: false,\n jpeg: false,\n vercheck: false,\n cache: void 0,\n fhost: 0,\n maxe: 5,\n conc: 8,\n ho: false,\n blacklist: [],\n rsources: []\n};\nvar settings = writable();\nvar appState = writable({\n isCatalog: false,\n is4chanX: false,\n akValid: false,\n herror: "",\n client: null,\n processing: 0,\n processed: 0,\n foundPosts: []\n});\nsettings.subscribe((newVal) => {\n if (newVal)\n localSet2("settingsv2", newVal);\n});\n\n// src/pngv3.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer3 = __toESM(require_buffer(), 1);\n\n// src/png.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_crc_32 = __toESM(require_crc32(), 1);\nvar import_buffer = __toESM(require_buffer(), 1);\nvar PNGDecoder = class {\n constructor(reader, strict = true) {\n this.reader = reader;\n this.strict = strict;\n this.req = 8;\n this.ptr = 8;\n this.stopped = false;\n this.repr = import_buffer.Buffer.from([]);\n }\n async catchup() {\n while (this.repr.byteLength < this.req) {\n const chunk = await this.reader.read();\n if (chunk.done) {\n if (this.strict)\n throw new Error(`Unexpected EOF, got ${this.repr.byteLength}, required ${this.req}, ${chunk.value}`);\n this.stopped = true;\n return;\n }\n this.repr = import_buffer.Buffer.concat([this.repr, chunk.value]);\n }\n }\n async *chunks() {\n while (true) {\n this.req += 8;\n await this.catchup();\n if (this.stopped)\n break;\n const length = this.repr.readUInt32BE(this.ptr);\n const name = this.repr.slice(this.ptr + 4, this.ptr + 8).toString();\n this.ptr += 4;\n this.req += length + 4;\n await this.catchup();\n yield [\n name,\n this.repr.slice(this.ptr, this.ptr + length + 4),\n this.ptr + length > this.repr.length ? -1 : this.repr.readUInt32BE(this.ptr + length + 4),\n this.ptr\n ];\n if (this.stopped)\n break;\n this.ptr += length + 8;\n if (name == "IEND")\n break;\n }\n }\n async dtor() {\n }\n};\nvar PNGEncoder = class {\n constructor(bytes) {\n this.writer = bytes.getWriter();\n this.writer.write(import_buffer.Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]));\n }\n async insertchunk(chunk) {\n let b = import_buffer.Buffer.alloc(4);\n const buff = chunk[1];\n b.writeInt32BE(buff.length - 4, 0);\n await this.writer.write(b);\n await this.writer.write(buff);\n b = import_buffer.Buffer.alloc(4);\n b.writeInt32BE((0, import_crc_32.buf)(buff), 0);\n await this.writer.write(b);\n }\n async dtor() {\n this.writer.releaseLock();\n }\n};\n\n// src/utils.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer2 = __toESM(require_buffer(), 1);\n\n// src/assets/hasembed.png\nvar hasembed_default = __toBinary("iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAMAAABHPGVmAAAAMFBMVEX+/v3c3c2moZhda1ODfnfKvK49RDgCAgIbHxpsGhv6BQT9hIOV0Hh4pWO03Z//5coEk9oIAAAHdUlEQVR42qWZDXurIAyFhcDJsS31///bKzEWHX6sd2fPVqYbLycJwXXDTiGKSMrDkQKGc8WwjhCHa0WoSY5u5guIYIUk5BuGEc4oUYZTaVztUq4ZWZtSfzulCyPrCAjXEGgT+9vncQhoRtI1I1BnIdEouYecG5FmZPhNRsLn9T4l3fIjwq8gcXlFv9xwXpPriDLcKHjGYeX1RW0J2uBWUid3FsPPm+flz7Qd3FtJbqhzkuSiYHIzcq8Ybb7KiCRju5PlqirdNdLwewlT2u/IcNUrEvyVwzfKAbvEhHS1RrBF6ysK1ZRvGW0DxhbekGOSlGKzfxgIbpyE8XqJEI9W8GZN6ioi2VU9osSWk8jx8byCMC1zw5JHEiIwOY4YHmM8PDx0sZ/Gx6w9JeQcq3JoRZUUFeFLD+G1qBSh6vB4jBchjzI8NpSQE6BNgAiiodQINg4hvF9NxeYY02mFShw+lAogCUCAFhAiW3wpS/wNsGPQphjloP2FmINtkIdJoCSkvH5OIYZUxAURXk0CcsmJaQRi2IVdLGe1dJ7z7ZEkDNApDEFY27drYwRqC1shdR4dIalKBBhbwg3RCB3Edj39KNmnQ1QtZeoQJ4lIijF4kKzQZkaLUq+3zQ0iz+kwwkYFygrZUaahyr7m52TbHYa4gQxFwBT7u0XICtGO0fZFhAfqzskyHV69KkUbxeeefOQ2XjeyXEjx2JQDCgbdUAbTh5fdxr2RSBpFDillUNMmXB9bibxFFGOEIv6z9tqlxSH6CVirNL1nENGrtlCPKJWuNEijNFHlykHxfYCU1vyqXRRFo1CVJAzSU0bVKxsgpKyzoBRrLrTpy7ZWyroZDylm/lxic9ugYhapmvnSAmbfBId0FD2OlZQWB5JiSzWJFBGSHsMNRWGQnkJ2DDdP+SQDJPzk8/wV240esGY67SG6JgTHmVCQCo9JEiNQZZq82sUpdiaUspoOg/YU8n1sJE3zfLBoCGk2INT5aiTFKFoxhl9ro9QS7ijUGA4hzFNVpMKObskZBBTzxSykRUp1xkFjSIB6cRhkRxk1DXsI1zxMroRqw5iJBKRSUjVTaCbEn3SMUzhoJ/jp1hzI6z3vamBalaEEYUOSFWdmzOE6yeAcooNQ47A4efsRJCyhXmKamiIISh0FKhd8qGZIxMRGGQI6iN99z2sf3BGY67BodoDPqOpJEmX0OFo5LIPho9A7yX6jyijUWHugp6RppsBtESs6qiqMkhqlgzSbwb6E4t0CmH4okqu5sE2XWQbDOUTWe2kZVQjKLMr0UwEy9YrKClOcQ8rbjdhSLExWSYVp6oWpV6DWFAnzOcQO1DkJ5Dx428FdP4T5aNU2q6gydlbIMwjs1A7WDV5vY8xieQmnE2U1bRYhmtzKMUTs8eNlkLL0CQRhKcAZg+qU0LBmBXIMYakbJBhEizE0TplSKOdGXOmHFeIAQlmiFd4VQpUCUnReICCMJ5B0AAnKXRVvI1VsR1SEQQBy2YMgKutQoqvihly/SR3EMuAnu0NYjQEWXup0oqir8rSz0kNgrXAHsXr27QHV6UyfxG8vQvM2XG6jhxjZ22KyhnRdXnlfDjJxB+Hr1UP8JKUvN0/nygKJnT+2Humh6iCiSraOFacvlZRxWGWMc4gH4Xvl7TuyjbFWl2DNCUUw/a+IBnFGgxRygRAk/x8iG8jrFBInIfN/QwLCCUQsTss4b3dHTpK+BGo8hlBLg4QpKnZbQb6DSAcxoUKgxSETkv+8K32f+R4iNV5CMUhN3o9Gy/AFBAqEDuInlRDGu26090oKQo6cKDwp4BEkfQUpRYC+ulTFkrKHpP+F1NgjO6T1xE+8yKMTNn8JMQq2ENEqWbYjscuhiV9Vl3fCAg47I1WweBmkSayTfbcbSZ8Xw86IaYnXz1Mq5/BlW1G+XMPOiAkFykJMf1M6hOhW0PhHCCjrzMPWiItI1L9Cco27SVripblItjPyH6NFfmb+QLBrHVn1z9Fqjw5DlxF6zf6NEeup0RK/jGUHyRHyXXAQfrZgvhoErJSCLSRSVZF/v2wwHRtxiD8FcwuBplQx4Xd1hH5BXI2UskAUxVKygcyfjFDG35VR6tuWwpyQhJRBjSIbSJ6gFTKlOr6PlIR+j0AAKyeRkWoQFWqTTBEzJNUSS3eR4kHqApmGNEqFxOH5GBcIdCPa2Z5gfyyH60jhKKBkPXRH1iyE+ob5AqFuZcs3K8R1Og6NUsdh1nOmCOeBQTr5O0tMWeOUbk+RnvEYqsYRglOI0mudFUd+QwmV8Xi6FT2HtHd/kjn6gpJJ+fxr4TFyfObnGURl37Tl18c607zy1crD/mnVIL2XJlX+MlRknqduVkynECoRg/1mAvmr5xSxsnLIdA/xomaVklKZt91FvaxunTQRIqgQyHIQMN8hPBeTG7mFeG+uascmTjBBqMpHczANpucdhHht9LkYekLCksN1wqbHDYQsHcTE/V91GcaOWXvK4xYiW0bplgCA9OKQmRq1UZ7ZY3UDIXZGuAOQ68AApqROabqHlDMjNKlKzGG31a8o/wBpRk19RswBZgAAAABJRU5ErkJggg==");\n\n// src/filehosts.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction parseForm(data) {\n const form = new FormData();\n Object.entries(data).filter(([key2, value]) => value !== null).map(([key2, value]) => form.append(key2, value));\n return form;\n}\nvar lolisafe = (domain, serving = domain) => ({\n domain,\n serving,\n async uploadFile(f) {\n const resp = await ifetch(`https://${domain}/api/upload`, {\n headers: {\n accept: "application/json"\n },\n "body": parseForm({\n reqtype: "fileupload",\n "files[]": new File([f], "f.pee")\n }),\n "method": "POST"\n });\n const res = await resp.json();\n return res.files.map((e) => e.url)[0];\n }\n});\nvar catbox = (domain, serving) => ({\n domain,\n serving,\n async uploadFile(inj) {\n const resp = await ifetch(`https://${domain}/user/api.php`, {\n method: "POST",\n body: parseForm({\n reqtype: "fileupload",\n fileToUpload: inj\n })\n });\n return resp.text();\n }\n});\nvar filehosts = [\n catbox("catbox.moe", "files.catbox.moe"),\n catbox("pomf.moe", "a.pomf.cat"),\n lolisafe("take-me-to.space"),\n lolisafe("zz.ht", "z.zz.fo")\n];\n\n// node_modules/file-type/browser.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer4 = __toESM(require_buffer(), 1);\nvar import_readable_web_to_node_stream = __toESM(require_lib(), 1);\n\n// node_modules/file-type/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer3 = __toESM(require_buffer(), 1);\n\n// node_modules/token-types/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar ieee754 = __toESM(require_ieee754(), 1);\nvar import_node_buffer = __toESM(require_buffer(), 1);\nvar AnsiStringType = class {\n constructor(len) {\n this.len = len;\n }\n static decode(buffer, offset, until) {\n let str = "";\n for (let i = offset; i < until; ++i) {\n str += AnsiStringType.codePointToString(AnsiStringType.singleByteDecoder(buffer[i]));\n }\n return str;\n }\n static inRange(a, min, max) {\n return min <= a && a <= max;\n }\n static codePointToString(cp) {\n if (cp <= 65535) {\n return String.fromCharCode(cp);\n } else {\n cp -= 65536;\n return String.fromCharCode((cp >> 10) + 55296, (cp & 1023) + 56320);\n }\n }\n static singleByteDecoder(bite) {\n if (AnsiStringType.inRange(bite, 0, 127)) {\n return bite;\n }\n const codePoint = AnsiStringType.windows1252[bite - 128];\n if (codePoint === null) {\n throw Error("invaliding encoding");\n }\n return codePoint;\n }\n get(buffer, offset = 0) {\n return AnsiStringType.decode(buffer, offset, offset + this.len);\n }\n};\nAnsiStringType.windows1252 = [\n 8364,\n 129,\n 8218,\n 402,\n 8222,\n 8230,\n 8224,\n 8225,\n 710,\n 8240,\n 352,\n 8249,\n 338,\n 141,\n 381,\n 143,\n 144,\n 8216,\n 8217,\n 8220,\n 8221,\n 8226,\n 8211,\n 8212,\n 732,\n 8482,\n 353,\n 8250,\n 339,\n 157,\n 382,\n 376,\n 160,\n 161,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 171,\n 172,\n 173,\n 174,\n 175,\n 176,\n 177,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 187,\n 188,\n 189,\n 190,\n 191,\n 192,\n 193,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 203,\n 204,\n 205,\n 206,\n 207,\n 208,\n 209,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 219,\n 220,\n 221,\n 222,\n 223,\n 224,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 235,\n 236,\n 237,\n 238,\n 239,\n 240,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250,\n 251,\n 252,\n 253,\n 254,\n 255\n];\n\n// node_modules/strtok3/lib/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/ReadStreamTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/EndOfFileStream.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/Deferred.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\nvar maxStreamReadSize = 1 * 1024 * 1024;\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\nvar import_node_buffer2 = __toESM(require_buffer(), 1);\n\n// node_modules/strtok3/lib/BufferTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/util.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/supported.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar extensions = [\n "jpg",\n "png",\n "apng",\n "gif",\n "webp",\n "flif",\n "xcf",\n "cr2",\n "cr3",\n "orf",\n "arw",\n "dng",\n "nef",\n "rw2",\n "raf",\n "tif",\n "bmp",\n "icns",\n "jxr",\n "psd",\n "indd",\n "zip",\n "tar",\n "rar",\n "gz",\n "bz2",\n "7z",\n "dmg",\n "mp4",\n "mid",\n "mkv",\n "webm",\n "mov",\n "avi",\n "mpg",\n "mp2",\n "mp3",\n "m4a",\n "oga",\n "ogg",\n "ogv",\n "opus",\n "flac",\n "wav",\n "spx",\n "amr",\n "pdf",\n "epub",\n "elf",\n "exe",\n "swf",\n "rtf",\n "wasm",\n "woff",\n "woff2",\n "eot",\n "ttf",\n "otf",\n "ico",\n "flv",\n "ps",\n "xz",\n "sqlite",\n "nes",\n "crx",\n "xpi",\n "cab",\n "deb",\n "ar",\n "rpm",\n "Z",\n "lz",\n "cfb",\n "mxf",\n "mts",\n "blend",\n "bpg",\n "docx",\n "pptx",\n "xlsx",\n "3gp",\n "3g2",\n "jp2",\n "jpm",\n "jpx",\n "mj2",\n "aif",\n "qcp",\n "odt",\n "ods",\n "odp",\n "xml",\n "mobi",\n "heic",\n "cur",\n "ktx",\n "ape",\n "wv",\n "dcm",\n "ics",\n "glb",\n "pcap",\n "dsf",\n "lnk",\n "alias",\n "voc",\n "ac3",\n "m4v",\n "m4p",\n "m4b",\n "f4v",\n "f4p",\n "f4b",\n "f4a",\n "mie",\n "asf",\n "ogm",\n "ogx",\n "mpc",\n "arrow",\n "shp",\n "aac",\n "mp1",\n "it",\n "s3m",\n "xm",\n "ai",\n "skp",\n "avif",\n "eps",\n "lzh",\n "pgp",\n "asar",\n "stl",\n "chm",\n "3mf",\n "zst",\n "jxl",\n "vcf"\n];\nvar mimeTypes = [\n "image/jpeg",\n "image/png",\n "image/gif",\n "image/webp",\n "image/flif",\n "image/x-xcf",\n "image/x-canon-cr2",\n "image/x-canon-cr3",\n "image/tiff",\n "image/bmp",\n "image/vnd.ms-photo",\n "image/vnd.adobe.photoshop",\n "application/x-indesign",\n "application/epub+zip",\n "application/x-xpinstall",\n "application/vnd.oasis.opendocument.text",\n "application/vnd.oasis.opendocument.spreadsheet",\n "application/vnd.oasis.opendocument.presentation",\n "application/vnd.openxmlformats-officedocument.wordprocessingml.document",\n "application/vnd.openxmlformats-officedocument.presentationml.presentation",\n "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",\n "application/zip",\n "application/x-tar",\n "application/x-rar-compressed",\n "application/gzip",\n "application/x-bzip2",\n "application/x-7z-compressed",\n "application/x-apple-diskimage",\n "application/x-apache-arrow",\n "video/mp4",\n "audio/midi",\n "video/x-matroska",\n "video/webm",\n "video/quicktime",\n "video/vnd.avi",\n "audio/vnd.wave",\n "audio/qcelp",\n "audio/x-ms-asf",\n "video/x-ms-asf",\n "application/vnd.ms-asf",\n "video/mpeg",\n "video/3gpp",\n "audio/mpeg",\n "audio/mp4",\n "audio/opus",\n "video/ogg",\n "audio/ogg",\n "application/ogg",\n "audio/x-flac",\n "audio/ape",\n "audio/wavpack",\n "audio/amr",\n "application/pdf",\n "application/x-elf",\n "application/x-msdownload",\n "application/x-shockwave-flash",\n "application/rtf",\n "application/wasm",\n "font/woff",\n "font/woff2",\n "application/vnd.ms-fontobject",\n "font/ttf",\n "font/otf",\n "image/x-icon",\n "video/x-flv",\n "application/postscript",\n "application/eps",\n "application/x-xz",\n "application/x-sqlite3",\n "application/x-nintendo-nes-rom",\n "application/x-google-chrome-extension",\n "application/vnd.ms-cab-compressed",\n "application/x-deb",\n "application/x-unix-archive",\n "application/x-rpm",\n "application/x-compress",\n "application/x-lzip",\n "application/x-cfb",\n "application/x-mie",\n "application/mxf",\n "video/mp2t",\n "application/x-blender",\n "image/bpg",\n "image/jp2",\n "image/jpx",\n "image/jpm",\n "image/mj2",\n "audio/aiff",\n "application/xml",\n "application/x-mobipocket-ebook",\n "image/heif",\n "image/heif-sequence",\n "image/heic",\n "image/heic-sequence",\n "image/icns",\n "image/ktx",\n "application/dicom",\n "audio/x-musepack",\n "text/calendar",\n "text/vcard",\n "model/gltf-binary",\n "application/vnd.tcpdump.pcap",\n "audio/x-dsf",\n "application/x.ms.shortcut",\n "application/x.apple.alias",\n "audio/x-voc",\n "audio/vnd.dolby.dd-raw",\n "audio/x-m4a",\n "image/apng",\n "image/x-olympus-orf",\n "image/x-sony-arw",\n "image/x-adobe-dng",\n "image/x-nikon-nef",\n "image/x-panasonic-rw2",\n "image/x-fujifilm-raf",\n "video/x-m4v",\n "video/3gpp2",\n "application/x-esri-shape",\n "audio/aac",\n "audio/x-it",\n "audio/x-s3m",\n "audio/x-xm",\n "video/MP1S",\n "video/MP2P",\n "application/vnd.sketchup.skp",\n "image/avif",\n "application/x-lzh-compressed",\n "application/pgp-encrypted",\n "application/x-asar",\n "model/stl",\n "application/vnd.ms-htmlhelp",\n "model/3mf",\n "image/jxl",\n "application/zstd"\n];\n\n// node_modules/file-type/core.js\nvar supportedExtensions = new Set(extensions);\nvar supportedMimeTypes = new Set(mimeTypes);\n\n// src/utils.ts\nvar csettings;\nsettings.subscribe((b) => {\n csettings = b;\n});\nvar threadDataCache = writable();\nvar cthreadDataCache;\nthreadDataCache.subscribe((newval) => {\n cthreadDataCache = newval;\n});\nvar decodeCoom3Payload = async (buff) => {\n if (!csettings)\n throw new Error("Settings uninit");\n const allowed_domains = filehosts.map((e) => e.serving.replaceAll(".", "\\\\."));\n const pees = buff.toString().split(" ").slice(0, csettings.maxe).filter((e) => allowed_domains.some((v) => e.match(`https://(.*\\\\.)?${v}/`)));\n return (await Promise.all(pees.map(async (pee) => {\n try {\n const m = pee.match(/(?https?):\\/\\/(?.*?)(?\\/.*)/);\n if (!m)\n return;\n const { domain, file } = m.groups;\n const headers = await getHeaders(pee);\n const res = await ifetch(pee, {\n headers: { range: "bytes=0-32767", "user-agent": "" },\n mode: "cors",\n referrerPolicy: "no-referrer"\n });\n const size = +headers["content-length"] || 0;\n const header = import_buffer2.Buffer.from(await res.arrayBuffer());\n let hptr = 0;\n if (header.slice(0, 4).toString() == "PEE\\0")\n hptr += 4;\n else\n return;\n const flags = header[hptr];\n const hasFn = !!(flags & 1);\n const hasTags = !!(flags & 2);\n const hasThumbnail = !!(flags & 4);\n let [ptr, ptr2] = [hptr + 1, hptr + 1];\n let fn = "embedded";\n let tags = [];\n let thumb = import_buffer2.Buffer.from(hasembed_default);\n if (hasFn) {\n while (header[ptr2] != 0)\n ptr2++;\n fn = header.slice(ptr, ptr2).toString();\n ptr = ++ptr2;\n }\n if (hasTags) {\n while (header[ptr2] != 0)\n ptr2++;\n tags = header.slice(ptr, ptr2).toString().split(/\\s+/);\n }\n let thumbsize = 0;\n if (hasThumbnail) {\n thumbsize = header.readInt32LE(ptr);\n ptr += 4;\n if (header.byteLength >= ptr + thumbsize)\n thumb = header.slice(ptr, ptr + thumbsize);\n else\n thumb = import_buffer2.Buffer.from(await (await ifetch(pee, { headers: { "user-agent": "", range: `bytes=${ptr}-${ptr + thumbsize}` } })).arrayBuffer());\n ptr += thumbsize;\n }\n const unzip = { url: pee, headers: { "user-agent": "", range: `bytes=${ptr}-${size - 1}` } };\n let data;\n data = unzip;\n if (size < 3072) {\n thumb = data = import_buffer2.Buffer.from(await (await ifetch(unzip.url, { headers: unzip.headers })).arrayBuffer());\n }\n return {\n filename: fn,\n data,\n thumbnail: thumb\n };\n } catch (e) {\n console.warn(e);\n }\n }))).filter((e) => e).map((e) => e);\n};\n\n// src/pngv3.ts\nvar bs58 = __toESM(require_bs58(), 1);\n\n// src/bitstream.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar revbyte = (n, len = 8) => {\n let acc = 0;\n let n2 = n;\n let len2 = len;\n while (len2) {\n acc = acc * 2 + (n2 & 1);\n n2 >>= 1;\n len2--;\n }\n return acc;\n};\nvar BitstreamReader = class {\n constructor() {\n this.buffers = [];\n this.bufferedLength = 0;\n this._offsetIntoBuffer = 0;\n this._bufferIndex = 0;\n this._offset = 0;\n this.skippedLength = 0;\n }\n get bufferIndex() {\n return this._bufferIndex;\n }\n get offset() {\n return this._offset;\n }\n get available() {\n return this.bufferedLength - this.skippedLength;\n }\n getBit(offset) {\n const byte = this.buffers[0][offset >> 3];\n return +!!(byte & 1 << (offset & 7));\n }\n readSync(length) {\n let value = 0;\n if (this._offset >> 3 > this.buffers[0].byteLength) {\n throw "Out of data";\n }\n for (let i = length - 1; i >= 0; --i) {\n value = value * 2 + this.getBit(this._offset + i);\n }\n this._offset += length;\n this.bufferedLength -= length;\n return value;\n }\n addBuffer(buffer) {\n this.buffers.push(buffer);\n this.bufferedLength += buffer.length * 8;\n }\n};\nvar BitstreamWriter = class {\n constructor(stream, bufferSize = 1) {\n this.stream = stream;\n this.pendingBits = 0;\n this.bufferoffset = 0;\n this._offset = 0;\n bufferSize = 1;\n this.buffer = new Uint8Array(bufferSize);\n }\n get offset() {\n return this._offset;\n }\n get byteOffset() {\n return this.pendingBits;\n }\n end() {\n this.flush();\n }\n flush() {\n this.stream.write(new Uint8Array(this.buffer));\n this.bufferoffset = 0;\n this.buffer.fill(0);\n }\n setBit(b) {\n let byte = this.buffer[0];\n byte |= b << (this._offset & 7);\n this.buffer[0] = byte;\n this._offset += 1;\n if (++this.bufferoffset == this.buffer.length * 8) {\n this.flush();\n }\n }\n write(length, value) {\n while (length--) {\n this.setBit(value & 1);\n value >>= 1;\n }\n }\n};\n\n// src/dh-deflate.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar TINF_OK = 0;\nvar Tree = class {\n constructor() {\n this.table = new Uint16Array(16);\n this.trans = new Uint16Array(288);\n }\n};\nvar getPathTo = (tree, value) => {\n if (tree[0] === value)\n return "0";\n if (tree[1] === value)\n return "1";\n let p;\n if (typeof tree[0] != "number")\n p = getPathTo(tree[0], value);\n let b = "0";\n if (!p) {\n if (tree[1] && typeof tree[1] != "number")\n p = getPathTo(tree[1], value);\n b = "1";\n }\n if (p)\n return b + p;\n};\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n let p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n}\nvar Data = class {\n constructor(source, dests, to_hide, hidden) {\n this.source = source;\n this.dests = dests;\n this.to_hide = to_hide;\n this.hidden = hidden;\n this.pathMap = /* @__PURE__ */ new Map();\n this.dest = [];\n this.ltree = new Tree();\n this.dtree = new Tree();\n }\n computeReverse() {\n this.rltree = buildHuffmanTable(this.ltree.table, this.ltree.trans)[0];\n this.rdtree = buildHuffmanTable(this.dtree.table, this.dtree.trans)[0];\n this.adists = new Set(this.rdtree.flat(16));\n }\n};\nvar sltree = new Tree();\nvar sdtree = new Tree();\nvar rltree;\nvar rdtree;\nvar sadist;\nvar length_bits = new Uint8Array(30);\nvar length_base = new Uint16Array(30);\nvar dist_bits = new Uint8Array(30);\nvar dist_base = new Uint16Array(30);\nvar clcidx = new Uint8Array([\n 16,\n 17,\n 18,\n 0,\n 8,\n 7,\n 9,\n 6,\n 10,\n 5,\n 11,\n 4,\n 12,\n 3,\n 13,\n 2,\n 14,\n 1,\n 15\n]);\nvar code_tree = new Tree();\nvar lengths = new Uint8Array(288 + 32);\nfunction tinf_build_bits_base(bits, base, delta, first) {\n let i, sum;\n for (i = 0; i < delta; ++i)\n bits[i] = 0;\n for (i = 0; i < 30 - delta; ++i)\n bits[i + delta] = i / delta | 0;\n for (sum = first, i = 0; i < 30; ++i) {\n base[i] = sum;\n sum += 1 << bits[i];\n }\n}\nfunction tinf_build_fixed_trees(lt, dt) {\n let i;\n for (i = 0; i < 7; ++i)\n lt.table[i] = 0;\n lt.table[7] = 24;\n lt.table[8] = 152;\n lt.table[9] = 112;\n for (i = 0; i < 24; ++i)\n lt.trans[i] = 256 + i;\n for (i = 0; i < 144; ++i)\n lt.trans[24 + i] = i;\n for (i = 0; i < 8; ++i)\n lt.trans[24 + 144 + i] = 280 + i;\n for (i = 0; i < 112; ++i)\n lt.trans[24 + 144 + 8 + i] = 144 + i;\n for (i = 0; i < 5; ++i)\n dt.table[i] = 0;\n dt.table[5] = 32;\n for (i = 0; i < 32; ++i)\n dt.trans[i] = i;\n}\nvar offs = new Uint16Array(16);\nfunction tinf_build_tree(t, lengths2, off, num) {\n let i, sum;\n for (i = 0; i < 16; ++i)\n t.table[i] = 0;\n for (i = 0; i < num; ++i)\n t.table[lengths2[off + i]]++;\n t.table[0] = 0;\n for (sum = 0, i = 0; i < 16; ++i) {\n offs[i] = sum;\n sum += t.table[i];\n }\n for (i = 0; i < num; ++i) {\n if (lengths2[off + i])\n t.trans[offs[lengths2[off + i]]++] = i;\n }\n}\nfunction tinf_getbit(d) {\n const v = d.source.readSync(1);\n return v;\n}\nvar loff = 0;\nvar loffs = [];\nfunction tinf_read_bits(d, num, base) {\n if (!num)\n return base;\n const v = d.source.readSync(num) + base;\n loff = v;\n loffs.push(v);\n if (loffs.length > 4) {\n loffs.shift();\n }\n return v;\n}\nfunction tinf_decode_symbol(d, t, copy = true, ext = {}) {\n let sum = 0, cur = 0, len = 0;\n let s = 0;\n do {\n const b = d.source.readSync(1);\n copy && d.hidden?.write(1, b);\n s = s << 1 | b;\n cur = 2 * cur + b;\n ++len;\n sum += t.table[len];\n cur -= t.table[len];\n } while (cur >= 0);\n ext.length = len;\n ext.sym = s;\n return t.trans[sum + cur];\n}\nfunction tinf_decode_trees(d, lt, dt, copy = true) {\n let i, num, length;\n const hlit = tinf_read_bits(d, 5, 257);\n copy && d.hidden?.write(5, hlit - 257);\n const hdist = tinf_read_bits(d, 5, 1);\n copy && d.hidden?.write(5, hdist - 1);\n const hclen = tinf_read_bits(d, 4, 4);\n copy && d.hidden?.write(4, hclen - 4);\n for (i = 0; i < 19; ++i)\n lengths[i] = 0;\n for (i = 0; i < hclen; ++i) {\n const clen = tinf_read_bits(d, 3, 0);\n copy && d.hidden?.write(3, clen);\n lengths[clcidx[i]] = clen;\n }\n tinf_build_tree(code_tree, lengths, 0, 19);\n for (num = 0; num < hlit + hdist; ) {\n const sym = tinf_decode_symbol(d, code_tree, copy);\n let prev;\n switch (sym) {\n case 16:\n prev = lengths[num - 1];\n length = tinf_read_bits(d, 2, 3);\n copy && d.hidden?.write(2, length - 3);\n for (; length; --length) {\n lengths[num++] = prev;\n }\n break;\n case 17:\n length = tinf_read_bits(d, 3, 3);\n copy && d.hidden?.write(3, length - 3);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n case 18:\n length = tinf_read_bits(d, 7, 11);\n copy && d.hidden?.write(7, length - 11);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n default:\n lengths[num++] = sym;\n break;\n }\n }\n tinf_build_tree(lt, lengths, 0, hlit);\n tinf_build_tree(dt, lengths, hlit, hdist);\n}\nvar get_symbol = (value, bits_table, base_table) => {\n let i = 0;\n for (i = 0; i < base_table.length; ++i) {\n if (base_table[i] > value) {\n i--;\n return [i, bits_table[i], value - base_table[i]];\n }\n }\n i--;\n return [i, bits_table[i], value - base_table[i]];\n};\nvar encode_symbol = (sym, tree, pathMap) => {\n const code = getPathTo(tree, sym);\n const v = {\n length: code?.length,\n val: parseInt(code, 2)\n };\n return v;\n};\nvar capacity = 0;\nfunction tinf_inflate_block_data(d, lt, dt) {\n while (1) {\n let sym = tinf_decode_symbol(d, lt);\n if (sym === 256) {\n return TINF_OK;\n }\n if (sym < 256) {\n d.dest.push(sym);\n } else {\n sym -= 257;\n const length = tinf_read_bits(d, length_bits[sym], length_base[sym]);\n if (length_bits[sym])\n d.hidden?.write(length_bits[sym], length - length_base[sym]);\n const ext = { length: 0, sym: 0 };\n const dist = tinf_decode_symbol(d, dt, false, ext);\n let backoffset = tinf_read_bits(d, dist_bits[dist], dist_base[dist]);\n const offs2 = d.dest.length - backoffset;\n let match;\n const skip = !d.to_hide || d.to_hide && d.to_hide instanceof BitstreamReader && d.to_hide.available == 0;\n if (!skip && (match = Buffer2.from(d.dest.slice(offs2, offs2 + length))).length == length) {\n let begin = d.dest.length - 32768;\n if (begin < 0)\n begin = 0;\n let matches = [];\n let o = 0;\n const slic = Buffer2.from(d.dest.slice(begin + o, d.dest.length));\n while (begin + o < d.dest.length) {\n const r = slic.slice(o, d.dest.length).indexOf(match);\n if (r >= 0) {\n matches.push(r + begin + o);\n o += r;\n } else {\n break;\n }\n o++;\n }\n if (matches.length > 1) {\n matches = matches.map((e) => -(e - d.dest.length)).filter((e) => {\n const [dsym2] = get_symbol(e, dist_bits, dist_base);\n return d.adists.has(dsym2);\n });\n matches.reverse();\n const v = Math.floor(Math.log2(matches.length));\n capacity += v;\n if (d.to_hide instanceof BitstreamReader) {\n if (d.to_hide.available) {\n const s = d.to_hide.readSync(Math.min(d.to_hide.available, v));\n backoffset = matches[s];\n }\n } else {\n const idx = matches.indexOf(backoffset);\n d.to_hide.write(v, idx);\n }\n }\n }\n const [dsym, dlen, doff] = get_symbol(backoffset, dist_bits, dist_base);\n const encdist = encode_symbol(dsym, d.rdtree, d.pathMap);\n d.hidden?.write(encdist.length, revbyte(encdist.val, encdist.length));\n d.hidden?.write(dlen, doff);\n for (let i = offs2; i < offs2 + length; ++i) {\n d.dest.push(d.dest[i]);\n }\n }\n }\n}\nfunction tinf_inflate_uncompressed_block(d) {\n if (d.source.offset & 7)\n d.source.readSync(8 - d.source.offset & 7);\n if (d.hidden && d.hidden.offset & 7)\n d.hidden?.write(8 - d.hidden.offset & 7, 0);\n const length = d.source.readSync(16);\n d.hidden?.write(16, length);\n const invlength = d.source.readSync(16);\n d.hidden?.write(16, invlength);\n if (length !== (~invlength & 65535)) {\n return -4;\n }\n for (let i = length; i; --i) {\n const v = d.source.readSync(8);\n d.dest.push(v);\n d.hidden?.write(8, v);\n }\n return TINF_OK;\n}\nfunction tinf_uncompress(source, decompressed, to_hide, hidden, opt = 0) {\n const decomp = decompressed ? new BitstreamWriter({ write: decompressed }) : null;\n const hid = hidden && new BitstreamWriter({ write: hidden }, 4);\n const d = new Data(source, decomp, to_hide, hid);\n let res;\n let bfinal, btype;\n do {\n bfinal = tinf_getbit(d);\n d.hidden?.write(1, bfinal);\n btype = tinf_read_bits(d, 2, 0);\n d.hidden?.write(2, btype);\n switch (btype) {\n case 0:\n res = tinf_inflate_uncompressed_block(d);\n break;\n case 1:\n d.rdtree = rdtree;\n d.rltree = rltree;\n d.adists = sadist;\n res = tinf_inflate_block_data(d, sltree, sdtree);\n break;\n case 2:\n tinf_decode_trees(d, d.ltree, d.dtree);\n d.computeReverse();\n res = tinf_inflate_block_data(d, d.ltree, d.dtree);\n break;\n default:\n res = -2;\n }\n if (res !== TINF_OK)\n throw new Error("Data error " + res);\n } while (!bfinal);\n decomp?.end();\n hid?.end();\n}\ntinf_build_fixed_trees(sltree, sdtree);\ntinf_build_bits_base(length_bits, length_base, 4, 3);\ntinf_build_bits_base(dist_bits, dist_base, 2, 1);\nrltree = buildHuffmanTable(sltree.table, sltree.trans)[0];\nrdtree = buildHuffmanTable(sdtree.table, sdtree.trans)[0];\nsadist = new Set(rdtree.flat(16));\nlength_bits[28] = 0;\nlength_base[28] = 258;\n\n// src/pngv3.ts\nvar csettings2;\nsettings.subscribe((b) => {\n csettings2 = b;\n});\nvar CUM3 = import_buffer3.Buffer.from("doo\\0m");\nvar CUM4 = import_buffer3.Buffer.from("voo\\0m");\nvar CUM5 = import_buffer3.Buffer.from("boo\\0");\nvar CUM6 = import_buffer3.Buffer.from("Creation Time\\0");\nvar CUM7 = import_buffer3.Buffer.from("Software\\0");\nvar BufferReadStream = (b) => {\n const ret = new ReadableStream({\n pull(cont) {\n cont.enqueue(b);\n cont.close();\n }\n });\n return ret;\n};\nvar password = import_buffer3.Buffer.from("NOA");\nvar xor = (a, p) => {\n let n = 0;\n for (let i = 0; i < a.byteLength; ++i) {\n a[i] ^= p[n];\n n++;\n n %= p.byteLength;\n }\n};\nvar prefs = {\n "files.catbox.moe": "c",\n "a.pomf.cat": "p",\n "take-me-to.space": "t",\n "z.zz.fo": "z"\n};\nvar rprefs = {\n "c": "files.catbox.moe",\n "p": "a.pomf.cat",\n "t": "take-me-to.space",\n "z": "z.zz.fo"\n};\nvar extractFromRawDeflate = (b) => {\n const src = new BitstreamReader();\n src.addBuffer(b);\n const chnks = [];\n const hidden = new BitstreamWriter({\n write(chunk) {\n for (const i of chunk) {\n if (i >= 32 && i <= 128)\n chnks.push(i);\n else\n throw "Finish";\n }\n }\n });\n try {\n tinf_uncompress(src, void 0, hidden, void 0);\n } catch (e) {\n if (e == "Finish")\n return import_buffer3.Buffer.from(chnks);\n }\n return false;\n};\nvar extract = async (png, doextract = true) => {\n const reader = BufferReadStream(png).getReader();\n const sneed = new PNGDecoder(reader, false);\n const ret = [];\n let w;\n if (!csettings2)\n throw new Error("Settings uninit");\n try {\n let complete = false;\n const idats = [];\n for await (const [name, chunk, crc, offset] of sneed.chunks()) {\n let buff;\n switch (name) {\n case "tEXt":\n buff = chunk;\n if (buff.slice(4, 4 + CUM3.length).equals(CUM3)) {\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(buff.slice(4 + CUM3.length));\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM4.length).equals(CUM4)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM4.length);\n xor(passed, password);\n const k = await decodeCoom3Payload(passed);\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM5.length).equals(CUM5)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM5.length);\n const decoded = import_buffer3.Buffer.from(passed.toString(), "base64").toString().split(" ").map((e) => {\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n }\n if (w = [CUM6, CUM7].find((e) => buff.slice(4, 4 + e.length).equals(e))) {\n const passed = buff.slice(4 + w.length);\n if (!passed.toString().match(/^[0-9a-zA-Z+/=]+$/g))\n continue;\n const decoders = [\n (b) => import_buffer3.Buffer.from(b.toString(), "base64").toString(),\n (b) => import_buffer3.Buffer.from(bs58.decode(passed.toString())).toString()\n ];\n for (const d of decoders) {\n try {\n const decoded = d(passed).split(" ").map((e) => {\n if (!(e[0] in rprefs))\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n } catch (e) {\n }\n }\n }\n break;\n case "IDAT":\n if (ret.length)\n return ret;\n buff = chunk;\n idats.push(buff.slice(4));\n break;\n case "IEND":\n complete = true;\n default:\n break;\n }\n }\n if (idats.length) {\n let decoded;\n if ((decoded = extractFromRawDeflate(import_buffer3.Buffer.concat(idats).slice(2))) === false)\n return false;\n const dec = decoded.toString().split(" ").map((e) => {\n if (!(e[0] in rprefs) || e.length < 5)\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (doextract)\n return decodeCoom3Payload(import_buffer3.Buffer.from(dec));\n return true;\n }\n } catch (e) {\n if (e != "Uhh")\n console.error(e);\n } finally {\n reader.releaseLock();\n }\n};\nvar buildChunk = (tag, data) => {\n const ret = import_buffer3.Buffer.alloc(data.byteLength + 4);\n ret.write(tag.slice(0, 4), 0);\n data.copy(ret, 4);\n return ret;\n};\nvar BufferWriteStream = () => {\n let b = import_buffer3.Buffer.from([]);\n const ret = new WritableStream({\n write(chunk) {\n b = import_buffer3.Buffer.concat([b, chunk]);\n console.log("finished appending");\n }\n });\n return [ret, () => b];\n};\nvar embedInRawDeflate = (b, h) => {\n const src = new BitstreamReader();\n const hid = new BitstreamReader();\n hid.addBuffer(h);\n src.addBuffer(b);\n const chnks = [];\n tinf_uncompress(src, void 0, hid, (c) => chnks.push(c));\n return import_buffer3.Buffer.concat(chnks);\n};\nvar inject_data = async (container, injb) => {\n injb = import_buffer3.Buffer.concat([injb, import_buffer3.Buffer.from([0])]);\n if (!csettings2)\n throw new Error("Settings uninit");\n if (csettings2.pmeth < 5) {\n let magic = false;\n const [writestream2, extract6] = BufferWriteStream();\n const encoder = new PNGEncoder(writestream2);\n const decoder = new PNGDecoder(container.stream().getReader());\n for await (const [name, chunk, crc, offset] of decoder.chunks()) {\n if (magic && name != "IDAT")\n break;\n if (!magic && name == "IDAT") {\n const passed = import_buffer3.Buffer.from(injb);\n switch (csettings2.pmeth) {\n case 0:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM3, passed])), 0, 0]);\n break;\n case 1:\n xor(passed, password);\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM4, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 2:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM5, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 3:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM6, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 4:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM7, import_buffer3.Buffer.from(bs58.encode(passed))])), 0, 0]);\n break;\n }\n magic = true;\n }\n await encoder.insertchunk([name, chunk, crc, offset]);\n }\n await encoder.insertchunk([\n "IEND",\n buildChunk("IEND", import_buffer3.Buffer.from([])),\n 0,\n 0\n ]);\n return extract6();\n }\n let pdec = new PNGDecoder(container.stream().getReader());\n const concat = [];\n for await (const chk of pdec.chunks())\n if (chk[0] == "IDAT")\n concat.push(chk[1].slice(4));\n const comp = import_buffer3.Buffer.concat(concat);\n const head = comp.slice(0, 2);\n const chksum = comp.slice(-4);\n const idatblk = embedInRawDeflate(comp.slice(2, -4), injb);\n const [writestream, extract5] = BufferWriteStream();\n const penc = new PNGEncoder(writestream);\n pdec = new PNGDecoder(container.stream().getReader());\n let ins = false;\n for await (const chk of pdec.chunks()) {\n if (chk[0] != "IDAT") {\n await penc.insertchunk(chk);\n } else {\n if (!ins) {\n await penc.insertchunk(["IDAT", import_buffer3.Buffer.concat([import_buffer3.Buffer.from("IDAT"), head, idatblk, chksum]), 0, 0]);\n ins = true;\n }\n }\n }\n await penc.dtor();\n console.log("Finished writing");\n return extract5();\n};\nvar inject = async (container, links) => {\n links = links.map((link) => {\n for (const h of filehosts) {\n if (link.includes(h.serving)) {\n const end = link.split("/").slice(-1)[0];\n return `${prefs[h.serving]}${end}`;\n }\n }\n return "";\n });\n const injb = import_buffer3.Buffer.from(links.join(" "));\n return inject_data(container, injb);\n};\nvar has_embed = async (png) => {\n const r = await extract(png, false);\n return !!r;\n};\nvar pngv3_default = {\n extract,\n has_embed,\n inject,\n match: (fn) => !!fn.match(/\\.png$/)\n};\n\n// src/jpg.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer4 = __toESM(require_buffer(), 1);\n\n// src/f5stego.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction* f5get() {\n let extrBit = 0;\n let k = 0;\n for (let i = 0; i < 4; ++i) {\n const b2 = yield;\n k |= b2 << i;\n }\n k = (k & 15) + 1;\n let toread = 8;\n let len = 0;\n while (toread--) {\n len = len * 2 + (yield);\n }\n const b = yield;\n toread += 8;\n if (b)\n toread += 7;\n else\n len *= 2;\n while (toread--) {\n len = len * 2 + (yield);\n }\n let rlen = revbyte(len, b ? 23 : 16);\n len = rlen;\n if (len >= 256)\n len = rlen = 256;\n len *= 8;\n const chunks = [];\n const bw = new BitstreamWriter({\n write(chunk) {\n chunks.push(chunk);\n }\n });\n while (len) {\n extrBit = yield;\n bw.write(1, extrBit);\n len--;\n }\n bw.end();\n return Buffer2.concat(chunks).slice(0, rlen);\n}\nvar bitcode = new Array(65535);\nvar category = new Array(65535);\nvar std_dc_luminance_nrcodes = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\nvar std_dc_luminance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_luminance_nrcodes = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\nvar std_ac_luminance_values = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nvar std_dc_chrominance_nrcodes = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\nvar std_dc_chrominance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_chrominance_nrcodes = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\nvar std_ac_chrominance_values = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nfunction _initCategoryNumber() {\n let nrlower = 1;\n let nrupper = 2;\n for (let cat = 1; cat <= 15; cat++) {\n for (let nr = nrlower; nr < nrupper; nr++) {\n category[32767 + nr] = cat;\n bitcode[32767 + nr] = [];\n bitcode[32767 + nr][1] = cat;\n bitcode[32767 + nr][0] = nr;\n }\n for (let nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category[32767 + nrneg] = cat;\n bitcode[32767 + nrneg] = [];\n bitcode[32767 + nrneg][1] = cat;\n bitcode[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n}\n_initCategoryNumber();\nfunction _computeHuffmanTbl(nrcodes, std_table) {\n let codevalue = 0;\n let pos_in_table = 0;\n const HT = [];\n for (let k = 1; k <= 16; k++) {\n for (let j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n}\nvar YDC_HT = _computeHuffmanTbl(std_dc_luminance_nrcodes, std_dc_luminance_values);\nvar UVDC_HT = _computeHuffmanTbl(std_dc_chrominance_nrcodes, std_dc_chrominance_values);\nvar YAC_HT = _computeHuffmanTbl(std_ac_luminance_nrcodes, std_ac_luminance_values);\nvar UVAC_HT = _computeHuffmanTbl(std_ac_chrominance_nrcodes, std_ac_chrominance_values);\nvar __raw, _jfif, _APPn, _qts, _frame, _tail, __f5write, _f5write_fn;\nvar f5stego = class {\n constructor(key2, maxPixels = 4096 * 4096) {\n this.maxPixels = maxPixels;\n __privateAdd(this, __f5write);\n __privateAdd(this, __raw, void 0);\n __privateAdd(this, _jfif, void 0);\n __privateAdd(this, _APPn, void 0);\n __privateAdd(this, _qts, void 0);\n __privateAdd(this, _frame, null);\n __privateAdd(this, _tail, null);\n }\n embed(image, data, k) {\n this.parse(image);\n this.f5put(data, k);\n return this.pack();\n }\n extract(image) {\n try {\n this.gengen = f5get();\n this.gengen.next();\n this.parse(image, true);\n return this.f5get();\n } catch (e) {\n if (e instanceof Buffer2)\n return e;\n throw e;\n }\n }\n f5put(data, k) {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let t, i, comp = __privateGet(this, _frame).components[0];\n if (data.length > 8388607)\n throw "Data too big. Max 8388607 bytes allowed.";\n if (data.length < 32768) {\n t = new Uint8Array(2 + data.length);\n t[0] = data.length & 255;\n t[1] = data.length >>> 8;\n t.set(data, 2);\n } else {\n t = new Uint8Array(3 + data.length);\n t[0] = data.length & 255;\n t[1] = (data.length >>> 8 & 127) + 128;\n t[2] = data.length >>> 15;\n t.set(data, 3);\n }\n if (comp.componentId != 1) {\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n return __privateMethod(this, __f5write, _f5write_fn).call(this, comp.blocks, t, k);\n }\n f5get() {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let comp = __privateGet(this, _frame).components[0];\n if (comp.componentId != 1) {\n for (let i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n const coeff = new Int16Array(comp.blocks.length);\n coeff.set(comp.blocks);\n let pos = -1, extrBit = 0;\n const cCount = coeff.length - 1;\n let k = 0;\n const out = new Uint8Array(coeff.length / 8 | 0);\n let extrByte = 0;\n let outPos = 0;\n let bitsAvail = 0;\n let code = 0;\n let hash = 0;\n while (bitsAvail < 4) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n k |= extrBit << bitsAvail;\n bitsAvail++;\n }\n k = (k & 15) + 1;\n const n = (1 << k) - 1;\n bitsAvail = 0;\n if (k == 1) {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n extrByte |= extrBit << bitsAvail;\n bitsAvail++;\n if (bitsAvail == 8) {\n out[outPos++] = extrByte;\n extrByte = 0;\n bitsAvail = 0;\n }\n }\n } else {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n hash ^= extrBit * ++code;\n if (code == n) {\n extrByte |= hash << bitsAvail;\n bitsAvail += k;\n code = 0;\n hash = 0;\n while (bitsAvail >= 8) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n }\n }\n }\n while (bitsAvail > 0) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n let s = 2, l = out[0];\n if (out[1] & 128) {\n s++;\n l += ((out[1] & 127) << 8) + (out[2] << 15);\n } else {\n l += out[1] << 8;\n }\n return out.subarray(s, s + l);\n }\n parse(data, tolerant = false) {\n let offset = 0;\n function _buildHuffmanTable(nrcodes, values) {\n let codevalue = 0;\n let pos_in_table = 0;\n const HT = new Uint16Array(65536);\n for (let k = 0; k < 16; k++) {\n for (let j2 = 0; j2 < nrcodes[k]; j2++) {\n for (let i2 = codevalue << 15 - k, cntTo = codevalue + 1 << 15 - k; i2 < cntTo; i2++) {\n HT[i2] = values[pos_in_table] + (k + 1 << 8);\n }\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n const decodeScan = (data2, offset2, frame, components, resetInterval2, spectralStart, spectralEnd, successivePrev, successive) => {\n const startOffset = offset2;\n let bitsData = 0, bitsCount = 0, eobrun = 0;\n const p1 = 1 << successive;\n const m1 = -1 << successive;\n const decodeBaseline = (component2, pos) => {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n let diff = 0;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff;\n let k2 = 1, s, r;\n while (k2 < 64) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n if (component2.componentId == 1) {\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n if (this.gengen && component2.blocks[pos + k2] != 0) {\n const v = component2.blocks[pos + k2] < 0 ? 1 - (component2.blocks[pos + k2] & 1) : component2.blocks[pos + k2] & 1;\n const it = this.gengen.next(v);\n if (it.done) {\n throw it.value;\n }\n }\n }\n bitsCount -= s;\n k2++;\n }\n };\n function decodeDCFirst(component2, pos) {\n let diff = 0;\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff << successive;\n }\n function decodeDCSuccessive(component2, pos) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocksDC[pos >> 6] |= (bitsData >>> --bitsCount & 1) << successive;\n }\n if (!frame)\n throw "Frame not parsed yet";\n function decodeACFirst(component2, pos) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k2 = spectralStart, s, r;\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r != 15) {\n eobrun = (1 << r) - 1;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n bitsCount -= s;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n component2.blocks[pos + k2] *= p1;\n k2++;\n }\n }\n function decodeACSuccessive(component2, pos) {\n let k2 = spectralStart, r, s;\n if (frame == null)\n throw "Frame not defined";\n if (!eobrun) {\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s) {\n if (s != 1)\n throw "bad jpeg";\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n s = bitsData >>> --bitsCount & 1 ? p1 : m1;\n } else {\n if (r != 15) {\n eobrun = 1 << r;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n }\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n } else {\n if (--r < 0)\n break;\n }\n k2++;\n }\n if (s)\n component2.blocks[pos + k2] = s;\n k2++;\n }\n }\n if (eobrun) {\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n }\n k2++;\n }\n eobrun--;\n }\n }\n let decodeFn;\n if (frame.progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n let marker, mcuExpected, i2, j2, k, n, mcusPerLine, mcusPerRow, x, y;\n if (components.length == 1) {\n mcusPerLine = components[0].blocksPerLine;\n mcusPerRow = components[0].blocksPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n decodeFn(components[i2], (y * components[i2].blocksPerLineForMcu + x) * 64);\n }\n }\n }\n } else {\n mcusPerLine = frame.mcusPerLine;\n mcusPerRow = frame.mcusPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n for (j2 = 0; j2 < components[i2].v; j2++) {\n for (k = 0; k < components[i2].h; k++) {\n decodeFn(components[i2], ((y * components[i2].v + j2) * components[i2].blocksPerLineForMcu + x * components[i2].h + k) * 64);\n }\n }\n }\n }\n }\n }\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n return offset2 - startOffset;\n };\n function readUint16() {\n const value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n const length = readUint16();\n const array = data.subarray(offset, offset + length - 2);\n offset += array.length;\n return array;\n }\n __privateSet(this, __raw, data);\n __privateSet(this, _jfif, null);\n __privateSet(this, _APPn, []);\n __privateSet(this, _qts, []);\n __privateSet(this, _frame, null);\n __privateSet(this, _tail, null);\n let markerHi, markerLo, i, j, resetInterval, component;\n const huffmanTablesAC = [];\n const huffmanTablesDC = [];\n while (1) {\n if (offset >= data.length) {\n if (tolerant)\n break;\n throw "unexpected EOF";\n }\n markerHi = data[offset++];\n markerLo = data[offset++];\n if (markerHi == 255) {\n if (markerLo == 224) {\n __privateSet(this, _jfif, readDataBlock());\n }\n if (markerLo > 224 && markerLo < 240 || markerLo == 254) {\n __privateGet(this, _APPn).push({\n "app": markerLo,\n "data": readDataBlock()\n });\n }\n if (markerLo == 219) {\n __privateGet(this, _qts).push(readDataBlock());\n }\n if (markerLo >= 192 && markerLo <= 194) {\n if (__privateGet(this, _frame))\n throw "Only single frame JPEGs supported";\n readUint16();\n __privateSet(this, _frame, {\n "extended": markerLo === 193,\n "progressive": markerLo === 194,\n "precision": data[offset++],\n "scanLines": readUint16(),\n "samplesPerLine": readUint16(),\n "components": [],\n "componentIds": {},\n "maxH": 1,\n "maxV": 1\n });\n if (__privateGet(this, _frame).scanLines * __privateGet(this, _frame).samplesPerLine > this.maxPixels)\n throw "Image is too big.";\n const componentsCount = data[offset++];\n let componentId;\n let maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n const h = data[offset + 1] >> 4;\n const v = data[offset + 1] & 15;\n if (maxH < h)\n maxH = h;\n if (maxV < v)\n maxV = v;\n const qId = data[offset + 2];\n const l = __privateGet(this, _frame).components.push({\n componentId,\n h,\n v,\n quantizationTable: qId\n });\n __privateGet(this, _frame).componentIds[componentId] = l - 1;\n offset += 3;\n }\n __privateGet(this, _frame).maxH = maxH;\n __privateGet(this, _frame).maxV = maxV;\n const mcusPerLine = Math.ceil(__privateGet(this, _frame).samplesPerLine / 8 / maxH);\n const mcusPerColumn = Math.ceil(__privateGet(this, _frame).scanLines / 8 / maxV);\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n component = __privateGet(this, _frame).components[i];\n const blocksPerLine = Math.ceil(Math.ceil(__privateGet(this, _frame).samplesPerLine / 8) * component.h / maxH);\n const blocksPerColumn = Math.ceil(Math.ceil(__privateGet(this, _frame).scanLines / 8) * component.v / maxV);\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n __privateGet(this, _frame).components[i] = {\n ...component,\n blocks: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu * 64),\n blocksDC: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu),\n blocksPerLine,\n blocksPerColumn,\n blocksPerLineForMcu,\n blocksPerColumnForMcu\n };\n }\n __privateGet(this, _frame).mcusPerLine = mcusPerLine;\n __privateGet(this, _frame).mcusPerColumn = mcusPerColumn;\n }\n if (markerLo == 196) {\n const huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++)\n codeLengthSum += codeLengths[j] = data[offset];\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n const v = _buildHuffmanTable(codeLengths, huffmanValues);\n if (huffmanTableSpec >> 4 === 0)\n huffmanTablesDC[huffmanTableSpec & 15] = v;\n else\n huffmanTablesAC[huffmanTableSpec & 15] = v;\n }\n }\n if (markerLo == 221) {\n resetInterval = readUint16();\n }\n if (markerLo == 218) {\n if (__privateGet(this, _frame) == null)\n throw "SOS before SOF";\n readUint16();\n const selectorsCount = data[offset++];\n const components = [];\n for (i = 0; i < selectorsCount; i++) {\n const componentIndex = __privateGet(this, _frame).componentIds[data[offset++]];\n component = __privateGet(this, _frame).components[componentIndex];\n const tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n const spectralStart = data[offset++];\n const spectralEnd = data[offset++];\n const successiveApproximation = data[offset++];\n const processed = decodeScan(data, offset, __privateGet(this, _frame), components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15);\n offset += processed;\n }\n if (markerLo == 217) {\n break;\n }\n } else {\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n }\n while (data[offset] != 255 && offset < data.length) {\n offset++;\n }\n if (data[offset] != 255) {\n throw "bad jpeg ";\n }\n }\n }\n if (!__privateGet(this, _frame))\n throw "bad jpeg";\n if (offset < data.length)\n __privateSet(this, _tail, data.subarray(offset));\n return this;\n }\n pack() {\n let byteout;\n let bytenew;\n let bytepos;\n let poslast;\n let outpos;\n let byte;\n function writeByte(value) {\n let t;\n byteout[outpos++] = value;\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function writeBlock(block) {\n let t;\n if (outpos + block.length > poslast) {\n t = new Uint8Array(byteout.length * 2 + block.length);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n byteout.set(block, outpos);\n outpos += block.length;\n }\n function writeAPP0(self2) {\n writeWord(65504);\n if (!__privateGet(self2, _jfif)) {\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n } else {\n writeWord(__privateGet(self2, _jfif).length + 2);\n writeBlock(__privateGet(self2, _jfif));\n }\n }\n function writeDQT(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _qts).length; i2++) {\n writeWord(65499);\n writeWord(__privateGet(self2, _qts)[i2].length + 2);\n writeBlock(__privateGet(self2, _qts)[i2]);\n }\n }\n function writeAPPn(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _APPn).length; i2++) {\n writeWord(65280 | __privateGet(self2, _APPn)[i2].app);\n writeWord(__privateGet(self2, _APPn)[i2].data.length + 2);\n writeBlock(__privateGet(self2, _APPn)[i2].data);\n }\n }\n function writeSOF0(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65472);\n writeWord(8 + __privateGet(self2, _frame).components.length * 3);\n writeByte(__privateGet(self2, _frame).precision);\n writeWord(__privateGet(self2, _frame).scanLines);\n writeWord(__privateGet(self2, _frame).samplesPerLine);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n writeByte(c2.h << 4 | c2.v);\n writeByte(c2.quantizationTable);\n }\n }\n function writeDHT(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65476);\n writeWord(31);\n writeByte(0);\n for (let i2 = 0; i2 < 16; i2++) {\n writeByte(std_dc_luminance_nrcodes[i2 + 1]);\n }\n for (let j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values[j]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(16);\n for (let k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes[k + 1]);\n }\n for (let l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values[l]);\n }\n if (__privateGet(self2, _frame).components.length != 1) {\n writeWord(65476);\n writeWord(31);\n writeByte(1);\n for (let m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes[m + 1]);\n }\n for (let n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values[n]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(17);\n for (let o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes[o + 1]);\n }\n for (let p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values[p]);\n }\n }\n }\n function writeSOS(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65498);\n writeWord(6 + __privateGet(self2, _frame).components.length * 2);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n if (i2 === 0) {\n writeByte(0);\n } else {\n writeByte(17);\n }\n }\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(comp, POS, DC, HTDC, HTAC) {\n let pos, posval, t;\n if (bytepos === 0)\n bytenew = 0;\n if (!("blocks" in comp))\n throw "Blocks not parsed";\n const Diff = comp.blocksDC[POS >> 6] - DC;\n DC = comp.blocksDC[POS >> 6];\n if (Diff === 0) {\n posval = HTDC[0][1];\n bytenew <<= posval;\n bytenew += HTDC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n } else {\n pos = 32767 + Diff;\n posval = HTDC[category[pos]][1];\n bytenew <<= posval;\n bytenew += HTDC[category[pos]][0];\n bytepos += posval;\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n let end0pos = 63;\n for (; end0pos > 0 && comp.blocks[POS + end0pos] === 0; end0pos--) {\n }\n if (end0pos === 0) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n return DC;\n }\n let i2 = 1;\n let lng;\n while (i2 <= end0pos) {\n const startpos = i2;\n for (; comp.blocks[POS + i2] === 0 && i2 <= end0pos; ++i2) {\n }\n let nrzeroes = i2 - startpos;\n if (nrzeroes >= 16) {\n lng = nrzeroes >> 4;\n for (let nrmarker = 1; nrmarker <= lng; ++nrmarker) {\n posval = HTAC[240][1];\n bytenew <<= posval;\n bytenew += HTAC[240][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + comp.blocks[POS + i2];\n posval = HTAC[(nrzeroes << 4) + category[pos]][1];\n bytenew <<= posval;\n bytenew += HTAC[(nrzeroes << 4) + category[pos]][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n i2++;\n }\n if (end0pos != 63) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n return DC;\n }\n byteout = new Uint8Array(65536);\n poslast = 65536 - 128;\n outpos = 0;\n bytenew = 0;\n bytepos = 0;\n writeWord(65496);\n writeAPP0(this);\n writeAPPn(this);\n writeDQT(this);\n writeSOF0(this);\n writeDHT(this);\n writeSOS(this);\n bytenew = 0;\n bytepos = 0;\n if (!__privateGet(this, _frame))\n throw "Frame not ready";\n let c, mcuRow, mcuCol, blockRow, blockCol, mcu, i, v, h;\n const DCdiff = [];\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n DCdiff.push(0);\n }\n for (mcu = 0; mcu < __privateGet(this, _frame).mcusPerLine * __privateGet(this, _frame).mcusPerColumn; mcu++) {\n mcuRow = mcu / __privateGet(this, _frame).mcusPerLine | 0;\n mcuCol = mcu % __privateGet(this, _frame).mcusPerLine;\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n c = __privateGet(this, _frame).components[i];\n for (v = 0; v < c.v; v++) {\n blockRow = mcuRow * c.v + v;\n for (h = 0; h < c.h; h++) {\n blockCol = mcuCol * c.h + h;\n if (i === 0) {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], YDC_HT, YAC_HT);\n } else {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], UVDC_HT, UVAC_HT);\n }\n }\n }\n }\n }\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n }\n if (bytepos > 0) {\n bytenew <<= 8 - bytepos;\n bytenew += (1 << 8 - bytepos) - 1;\n byteout[outpos++] = 255 & bytenew;\n }\n writeWord(65497);\n if (__privateGet(this, _tail))\n writeBlock(__privateGet(this, _tail));\n return byteout.slice(0, outpos);\n }\n};\n__raw = new WeakMap();\n_jfif = new WeakMap();\n_APPn = new WeakMap();\n_qts = new WeakMap();\n_frame = new WeakMap();\n_tail = new WeakMap();\n__f5write = new WeakSet();\n_f5write_fn = function(coeff, data, k) {\n const coeff_count = coeff.length;\n let _changed = 0, _embedded = 0, _examined = 0, _thrown = 0, shuffled_index = 0, i, ii;\n let next_bit_to_embed = 0, byte_to_embed = data.length, data_idx = 0, available_bits_to_embed = 0;\n const n = (1 << k) - 1;\n byte_to_embed = k - 1;\n byte_to_embed ^= 0;\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed = 3;\n for (ii = 0; ii < coeff_count; ii++) {\n shuffled_index = ii;\n if (shuffled_index % 64 === 0 || coeff[shuffled_index] === 0)\n continue;\n const cc = coeff[shuffled_index];\n _examined++;\n if (cc > 0 && (cc & 1) != next_bit_to_embed) {\n coeff[shuffled_index]--;\n _changed++;\n } else if (cc < 0 && (cc & 1) == next_bit_to_embed) {\n coeff[shuffled_index]++;\n _changed++;\n }\n if (coeff[shuffled_index] !== 0) {\n _embedded++;\n if (available_bits_to_embed === 0) {\n if (k != 1 || data_idx >= data.length)\n break;\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n } else {\n _thrown++;\n }\n }\n if (k == 1 && _embedded < data.length * 8)\n throw "capacity exceeded " + _embedded / 8 + " " + data.length;\n if (k != 1) {\n let is_last_byte = false, k_bits_to_embed = 0;\n while (!is_last_byte || available_bits_to_embed !== 0 && is_last_byte) {\n k_bits_to_embed = 0;\n for (i = 0; i < k; i++) {\n if (available_bits_to_embed === 0) {\n if (data_idx >= data.length) {\n is_last_byte = true;\n break;\n }\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n k_bits_to_embed |= next_bit_to_embed << i;\n }\n const code_word = [];\n let ci = null;\n for (i = 0; i < n; i++) {\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n code_word.push(ci);\n }\n _examined += n;\n while (true) {\n let vhash = 0;\n let extracted_bit;\n for (i = 0; i < code_word.length; i++) {\n if (coeff[code_word[i]] > 0) {\n extracted_bit = coeff[code_word[i]] & 1;\n } else {\n extracted_bit = 1 - (coeff[code_word[i]] & 1);\n }\n if (extracted_bit == 1)\n vhash ^= i + 1;\n }\n i = vhash ^ k_bits_to_embed;\n if (!i) {\n _embedded += k;\n break;\n }\n i--;\n coeff[code_word[i]] += coeff[code_word[i]] < 0 ? 1 : -1;\n _changed++;\n if (coeff[code_word[i]] === 0) {\n _thrown++;\n code_word.splice(i, 1);\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n _examined++;\n code_word.push(ci);\n } else {\n _embedded += k;\n break;\n }\n }\n }\n }\n return {\n "k": k,\n "embedded": _embedded / 8,\n "examined": _examined,\n "changed": _changed,\n "thrown": _thrown,\n "efficiency": (_embedded / _changed).toFixed(2)\n };\n};\n\n// src/jpg.ts\nvar key = import_buffer4.Buffer.from("CUNNYCUNNYCUNNY");\nvar f5inst = new f5stego(key);\nvar inject2 = async (b, links) => {\n if (b.size / 20 < links.join(" ").length)\n throw "Image too small to embed.";\n const arr = new Uint8Array(new Uint8Array(await b.arrayBuffer()));\n const buff = f5inst.embed(arr, new TextEncoder().encode(links.join(" ")), 1);\n return import_buffer4.Buffer.from(buff);\n};\nvar has_embed2 = (b) => {\n try {\n const res = f5inst.extract(b);\n if (!res)\n return false;\n if (res.length > 1024)\n return false;\n const str = import_buffer4.Buffer.from(res).toString();\n if (!str.match(/^[a-zA-Z0-9:/.\\-_ ]+$/))\n return false;\n return str;\n } catch {\n return false;\n }\n};\nvar extract2 = (b, ex) => {\n return decodeCoom3Payload(import_buffer4.Buffer.from(ex));\n};\nvar jpg_default = {\n match: (fn) => !!fn.match(/\\.jpe?g$/),\n has_embed: has_embed2,\n extract: extract2,\n inject: inject2\n};\n\n// src/thirdeye.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer5 = __toESM(require_buffer(), 1);\nvar import_jpeg_js = __toESM(require_jpeg_js(), 1);\n\n// src/phash.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar median = (data) => {\n const mdarr = data.slice(0);\n mdarr.sort((a, b) => a - b);\n if (mdarr.length % 2 === 0)\n return (mdarr[mdarr.length / 2 - 1] + mdarr[mdarr.length / 2]) / 2;\n return mdarr[Math.floor(mdarr.length / 2)];\n};\nvar translate_blocks_to_bits = function(blocks, pixels_per_block) {\n const half_block_value = pixels_per_block * 256 * 3 / 2;\n const bandsize = blocks.length / 4;\n for (let i = 0; i < 4; i++) {\n const m = median(blocks.slice(i * bandsize, (i + 1) * bandsize));\n for (let j = i * bandsize; j < (i + 1) * bandsize; j++) {\n const v = blocks[j];\n blocks[j] = Number(v > m || Math.abs(v - m) < 1 && m > half_block_value);\n }\n }\n};\nvar bits_to_hexhash = (bitsArray) => {\n const hex = [];\n for (let i = 0; i < bitsArray.length; i += 4) {\n const nibble = bitsArray.slice(i, i + 4);\n hex.push(parseInt(nibble.join(""), 2).toString(16));\n }\n return hex.join("");\n};\nvar bmvbhash_even = (data, bits) => {\n const blocksize_x = Math.floor(data.width / bits);\n const blocksize_y = Math.floor(data.height / bits);\n const result = [];\n for (let y = 0; y < bits; y++) {\n for (let x = 0; x < bits; x++) {\n let total = 0;\n for (let iy = 0; iy < blocksize_y; iy++) {\n for (let ix = 0; ix < blocksize_x; ix++) {\n const cx = x * blocksize_x + ix;\n const cy = y * blocksize_y + iy;\n const ii = (cy * data.width + cx) * 4;\n const alpha = data.data[ii + 3];\n if (alpha === 0) {\n total += 765;\n } else {\n total += data.data[ii] + data.data[ii + 1] + data.data[ii + 2];\n }\n }\n }\n result.push(total);\n }\n }\n translate_blocks_to_bits(result, blocksize_x * blocksize_y);\n return bits_to_hexhash(result);\n};\n\n// src/thirdeye.ts\nvar csettings3;\nsettings.subscribe((b) => {\n csettings3 = b;\n});\nvar gelquirk = (prefix) => (a) => {\n let base = a.post || a.data || a;\n if (!Array.isArray(base))\n return [];\n base = base.filter((e) => e.file_url);\n return base.map((e) => ({\n full_url: e.file_url,\n preview_url: e.preview_url || e.preview_url,\n source: e.source,\n ext: e.file_ext || e.file_url.substr(e.file_url.lastIndexOf(".") + 1),\n page: `${prefix}${e.id || e.parent_id}`,\n tags: (e.tag_string || (e.tags && (Array.isArray(e.tags) && (typeof e.tags[0] == "string" ? e.tags.join(" ") : e.tags.map((e2) => e2.name_en).join(" "))) || e.tags) || "").split(" ")\n })) || [];\n};\nvar experimentalApi = false;\nvar black = /* @__PURE__ */ new Set();\nvar phashEn = false;\nvar mindist = 5;\nsettings.subscribe((s) => {\n if (!s)\n return;\n experimentalApi = s.expte;\n boorus = s.rsources.map((e) => ({\n ...e,\n quirks: gelquirk(e.view)\n }));\n black = new Set(s.blacklist);\n mindist = s.mdist || 5;\n phashEn = s.phash;\n});\nvar boorus = [];\nvar unlockQueue = Promise.resolve();\nvar cache = {};\nvar findFileFrom = async (b, hex, abort) => {\n try {\n if (b.domain in cache && hex in cache[b.domain])\n return cache[b.domain][hex];\n const res = await ifetch(`https://${b.domain}${b.endpoint}${hex}`);\n const txt = await res.text();\n const pres = JSON.parse(txt);\n const tran = b.quirks(pres).filter((e) => !e.tags.some((e2) => black.has(e2)));\n if (!(b.domain in cache))\n cache[b.domain] = {};\n cache[b.domain][hex] = tran;\n return tran;\n } catch (e) {\n const error = e;\n if (!error.message.includes("Unexpected end of JSON input"))\n console.error(e);\n return [];\n }\n};\nvar extract3 = async (b, fn) => {\n if (!csettings3)\n throw new Error("Settings uninit");\n let result;\n let booru;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n if (result.length) {\n booru = e.name;\n break;\n }\n }\n let cachedFile;\n const prev = result[0].preview_url;\n const full = result[0].full_url;\n return [{\n source: result[0].source,\n page: {\n title: booru,\n url: result[0].page\n },\n filename: fn.substring(0, 33) + result[0].ext,\n thumbnail: csettings3.hotlink ? prev || full : import_buffer5.Buffer.from(await (await ifetch(prev || full)).arrayBuffer()),\n data: csettings3.hotlink ? full || prev : { url: full || prev }\n }];\n};\nvar phash = (b) => {\n const res = (0, import_jpeg_js.decode)(b);\n return bmvbhash_even(res, 8);\n};\nvar hammingDist = (a, b) => {\n let res = BigInt("0x" + a) ^ BigInt("0x" + b);\n let acc = 0;\n while (res != 0n) {\n acc += Number(res & 1n);\n res >>= 1n;\n }\n return acc;\n};\nvar has_embed3 = async (b, fn, prevlink) => {\n if (import_buffer5.Buffer.from(fn, "hex").equals(b))\n return false;\n let result = void 0;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n result = result.filter((e2) => e2.full_url || e2.preview_url);\n if (result.length)\n break;\n }\n if (result && result.length != 0 && phashEn && prevlink) {\n if (!result[0].preview_url)\n return true;\n const getHash = async (l) => {\n const ogreq = await ifetch(l);\n const origPreview = await ogreq.arrayBuffer();\n return phash(import_buffer5.Buffer.from(origPreview));\n };\n const [orighash, tehash] = await Promise.all([\n getHash(prevlink),\n getHash(result[0].preview_url)\n ]);\n const d = hammingDist(orighash, tehash);\n console.log(d, prevlink);\n return d > mindist;\n }\n return result && result.length != 0;\n};\nvar thirdeye_default = {\n skip: true,\n extract: extract3,\n has_embed: has_embed3,\n match: (fn) => !!fn.match(/^[0-9a-f]{32}\\.....?/)\n};\n\n// src/pomf.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer6 = __toESM(require_buffer(), 1);\nvar sources = [\n { host: "Catbox", prefix: "files.catbox.moe/" },\n { host: "Litter", prefix: "litter.catbox.moe/" },\n { host: "Zzzz", prefix: "z.zz.fo/" }\n];\nvar csettings4;\nsettings.subscribe((b) => {\n csettings4 = b;\n});\nvar getExt = (fn) => {\n const isB64 = fn.match(/^((?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=))?\\.(gif|jpe?g|png|webm)/);\n const isExt = fn.match(/\\[.*=(.*)\\]/);\n let ext;\n let source;\n try {\n if (isB64) {\n ext = atob(isB64[1]);\n } else if (isExt) {\n ext = decodeURIComponent(isExt[1]);\n if (ext.startsWith("https://"))\n ext = ext.slice("https://".length);\n for (const cs of sources)\n if (ext.startsWith(cs.prefix)) {\n source = cs.prefix;\n ext = ext.slice(cs.prefix.length);\n break;\n }\n }\n } catch {\n }\n return { ext, source };\n};\nvar extract4 = async (b, fn) => {\n if (!csettings4)\n throw new Error("Settings uninit");\n const { ext, source } = getExt(fn);\n let rsource;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n await getHeaders("https://" + cs.prefix + ext);\n rsource = "https://" + cs.prefix + ext;\n break;\n } catch {\n }\n }\n return [{\n filename: ext,\n data: csettings4.hotlink ? rsource : { url: rsource },\n thumbnail: import_buffer6.Buffer.from(hasembed_default)\n }];\n};\nvar has_embed4 = async (b, fn) => {\n const { ext, source } = getExt(fn);\n if (!ext)\n return false;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n const e = await getHeaders("https://" + cs.prefix + ext);\n return true;\n } catch {\n }\n }\n return false;\n};\nvar pomf_default = {\n skip: true,\n extract: extract4,\n has_embed: has_embed4,\n match: (fn) => !!getExt(fn)\n};\n\n// src/processor.worker.ts\nconsole.log("Worker started");\nvar pendinggens = {};\nvar proxyAsyncGen = (id) => {\n return {\n next(arg) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n return(v) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n throw() {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n [Symbol.asyncIterator]() {\n return this;\n }\n };\n};\nvar deserializeMessage = (m) => {\n if (m instanceof MessagePort)\n return m;\n if (typeof m == "object" && m.type == "AsyncGenerator") {\n return proxyAsyncGen(m.id);\n }\n if (typeof m == "object") {\n for (const p in m) {\n m[p] = deserializeMessage(m[p]);\n }\n }\n return m;\n};\nvar processors = [thirdeye_default, pomf_default, pngv3_default, jpg_default];\nvar processImage = async (srcs, fn, hex, prevurl) => {\n const ret = await Promise.all(processors.filter((e) => e.match(fn)).map(async (proc) => {\n if (proc.skip) {\n const md5 = Buffer2.from(hex, "base64");\n if (await proc.has_embed(md5, fn, prevurl) === true) {\n return [await proc.extract(md5, fn), true];\n }\n return;\n }\n let succ = false;\n let cumul;\n do {\n try {\n const n = await srcs.next();\n if (n.done)\n return;\n const iter = streamRemote(n.value);\n if (!iter)\n return;\n cumul = Buffer2.alloc(0);\n let found;\n let chunk = { done: true };\n do {\n const { value, done } = await iter.next(typeof found === "boolean");\n if (done) {\n chunk = { done: true };\n } else {\n chunk = { done: false, value };\n cumul = Buffer2.concat([cumul, value]);\n const v = await proc.has_embed(cumul);\n if (typeof v == "string") {\n return [await proc.extract(cumul, v), false];\n }\n found = v;\n }\n } while (found !== false && !chunk.done);\n succ = true;\n await iter.next(true);\n if (found !== true) {\n return;\n }\n return [await proc.extract(cumul), false];\n } catch (err) {\n console.log(err);\n }\n } while (!succ);\n }));\n return ret.filter((e) => e).map((e) => e);\n};\nvar init2 = false;\n(async () => {\n onmessage = async (msg) => {\n const des = deserializeMessage(msg.data);\n switch (des.type) {\n case "ipc": {\n setupPort(des.port);\n const nset = await localLoad("settingsv2", initial_settings);\n settings.set(nset);\n break;\n }\n case "cmd": {\n switch (des.fun) {\n case "processImage": {\n if (!init2) {\n await new Promise((_) => {\n settings.subscribe((v) => {\n if (v)\n _();\n });\n });\n init2 = true;\n }\n const res = await processImage(des.args[0], des.args[1], des.args[2], des.args[3]);\n const tr = [];\n for (const ef of res) {\n for (const e of ef[0]) {\n if (e.thumbnail && Buffer2.isBuffer(e.thumbnail) || typeof e.thumbnail != "string")\n tr.push(e.thumbnail.buffer);\n if (Buffer2.isBuffer(e.data) || typeof e.data != "string" && !("url" in e.data))\n tr.push(e.data.buffer);\n }\n }\n postMessage({\n type: "reply",\n id: des.id,\n res\n }, [...new Set(tr)]);\n }\n }\n break;\n }\n case "ag": {\n const cb = pendinggens[des.id].shift();\n if (cb) {\n cb(des.res);\n }\n break;\n }\n }\n };\n})();\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n'); + return inlineWorker('var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key2 of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key2) && key2 !== except)\n __defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));\nvar __decorateClass = (decorators, target, key2, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key2) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key2, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key2, result);\n return result;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError("Cannot " + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, "read from private field");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError("Cannot add the same private member more than once");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, "write to private field");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, "access private method");\n return method;\n};\nvar __toBinary = /* @__PURE__ */ (() => {\n var table = new Uint8Array(128);\n for (var i = 0; i < 64; i++)\n table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i;\n return (base64) => {\n var n = base64.length, bytes = new Uint8Array((n - (base64[n - 1] == "=") - (base64[n - 2] == "=")) * 3 / 4 | 0);\n for (var i2 = 0, j = 0; i2 < n; ) {\n var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)];\n var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)];\n bytes[j++] = c0 << 2 | c1 >> 4;\n bytes[j++] = c1 << 4 | c2 >> 2;\n bytes[j++] = c2 << 6 | c3;\n }\n return bytes;\n };\n})();\n\n// \nvar init_define_BUILD_VERSION = __esm({\n ""() {\n }\n});\n\n// node_modules/base64-js/index.js\nvar require_base64_js = __commonJS({\n "node_modules/base64-js/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.byteLength = byteLength;\n exports.toByteArray = toByteArray;\n exports.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array;\n var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";\n for (i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n var i;\n var len;\n revLookup["-".charCodeAt(0)] = 62;\n revLookup["_".charCodeAt(0)] = 63;\n function getLens(b64) {\n var len2 = b64.length;\n if (len2 % 4 > 0) {\n throw new Error("Invalid string. Length must be a multiple of 4");\n }\n var validLen = b64.indexOf("=");\n if (validLen === -1)\n validLen = len2;\n var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n }\n function byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0;\n var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i2;\n for (i2 = 0; i2 < len2; i2 += 4) {\n tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)];\n arr[curByte++] = tmp >> 16 & 255;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n return arr;\n }\n function tripletToBase64(num) {\n return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];\n }\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n for (var i2 = start; i2 < end; i2 += 3) {\n tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255);\n output.push(tripletToBase64(tmp));\n }\n return output.join("");\n }\n function fromByteArray(uint8) {\n var tmp;\n var len2 = uint8.length;\n var extraBytes = len2 % 3;\n var parts = [];\n var maxChunkLength = 16383;\n for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) {\n parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength));\n }\n if (extraBytes === 1) {\n tmp = uint8[len2 - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "==");\n } else if (extraBytes === 2) {\n tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "=");\n }\n return parts.join("");\n }\n }\n});\n\n// node_modules/ieee754/index.js\nvar require_ieee754 = __commonJS({\n "node_modules/ieee754/index.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.read = function(buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n exports.write = function(buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {\n }\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {\n }\n buffer[offset + i - d] |= s * 128;\n };\n }\n});\n\n// node_modules/buffer/index.js\nvar require_buffer = __commonJS({\n "node_modules/buffer/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var base64 = require_base64_js();\n var ieee7542 = require_ieee754();\n var customInspectSymbol = typeof Symbol === "function" && typeof Symbol["for"] === "function" ? Symbol["for"]("nodejs.util.inspect.custom") : null;\n exports.Buffer = Buffer13;\n exports.SlowBuffer = SlowBuffer;\n exports.INSPECT_MAX_BYTES = 50;\n var K_MAX_LENGTH = 2147483647;\n exports.kMaxLength = K_MAX_LENGTH;\n Buffer13.TYPED_ARRAY_SUPPORT = typedArraySupport();\n if (!Buffer13.TYPED_ARRAY_SUPPORT && typeof console !== "undefined" && typeof console.error === "function") {\n console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");\n }\n function typedArraySupport() {\n try {\n const arr = new Uint8Array(1);\n const proto = { foo: function() {\n return 42;\n } };\n Object.setPrototypeOf(proto, Uint8Array.prototype);\n Object.setPrototypeOf(arr, proto);\n return arr.foo() === 42;\n } catch (e) {\n return false;\n }\n }\n Object.defineProperty(Buffer13.prototype, "parent", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.buffer;\n }\n });\n Object.defineProperty(Buffer13.prototype, "offset", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.byteOffset;\n }\n });\n function createBuffer(length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError(\'The value "\' + length + \'" is invalid for option "size"\');\n }\n const buf2 = new Uint8Array(length);\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function Buffer13(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n if (typeof encodingOrOffset === "string") {\n throw new TypeError(\'The "string" argument must be of type string. Received type number\');\n }\n return allocUnsafe(arg);\n }\n return from(arg, encodingOrOffset, length);\n }\n Buffer13.poolSize = 8192;\n function from(value, encodingOrOffset, length) {\n if (typeof value === "string") {\n return fromString(value, encodingOrOffset);\n }\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value);\n }\n if (value == null) {\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof SharedArrayBuffer !== "undefined" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof value === "number") {\n throw new TypeError(\'The "value" argument must not be of type number. Received type number\');\n }\n const valueOf = value.valueOf && value.valueOf();\n if (valueOf != null && valueOf !== value) {\n return Buffer13.from(valueOf, encodingOrOffset, length);\n }\n const b = fromObject(value);\n if (b)\n return b;\n if (typeof Symbol !== "undefined" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === "function") {\n return Buffer13.from(value[Symbol.toPrimitive]("string"), encodingOrOffset, length);\n }\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n Buffer13.from = function(value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n };\n Object.setPrototypeOf(Buffer13.prototype, Uint8Array.prototype);\n Object.setPrototypeOf(Buffer13, Uint8Array);\n function assertSize(size) {\n if (typeof size !== "number") {\n throw new TypeError(\'"size" argument must be of type number\');\n } else if (size < 0) {\n throw new RangeError(\'The value "\' + size + \'" is invalid for option "size"\');\n }\n }\n function alloc(size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(size);\n }\n if (fill !== void 0) {\n return typeof encoding === "string" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n return createBuffer(size);\n }\n Buffer13.alloc = function(size, fill, encoding) {\n return alloc(size, fill, encoding);\n };\n function allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n }\n Buffer13.allocUnsafe = function(size) {\n return allocUnsafe(size);\n };\n Buffer13.allocUnsafeSlow = function(size) {\n return allocUnsafe(size);\n };\n function fromString(string, encoding) {\n if (typeof encoding !== "string" || encoding === "") {\n encoding = "utf8";\n }\n if (!Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n const length = byteLength(string, encoding) | 0;\n let buf2 = createBuffer(length);\n const actual = buf2.write(string, encoding);\n if (actual !== length) {\n buf2 = buf2.slice(0, actual);\n }\n return buf2;\n }\n function fromArrayLike(array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0;\n const buf2 = createBuffer(length);\n for (let i = 0; i < length; i += 1) {\n buf2[i] = array[i] & 255;\n }\n return buf2;\n }\n function fromArrayView(arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView);\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);\n }\n return fromArrayLike(arrayView);\n }\n function fromArrayBuffer(array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError(\'"offset" is outside of buffer bounds\');\n }\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError(\'"length" is outside of buffer bounds\');\n }\n let buf2;\n if (byteOffset === void 0 && length === void 0) {\n buf2 = new Uint8Array(array);\n } else if (length === void 0) {\n buf2 = new Uint8Array(array, byteOffset);\n } else {\n buf2 = new Uint8Array(array, byteOffset, length);\n }\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function fromObject(obj) {\n if (Buffer13.isBuffer(obj)) {\n const len = checked(obj.length) | 0;\n const buf2 = createBuffer(len);\n if (buf2.length === 0) {\n return buf2;\n }\n obj.copy(buf2, 0, 0, len);\n return buf2;\n }\n if (obj.length !== void 0) {\n if (typeof obj.length !== "number" || numberIsNaN(obj.length)) {\n return createBuffer(0);\n }\n return fromArrayLike(obj);\n }\n if (obj.type === "Buffer" && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n }\n function checked(length) {\n if (length >= K_MAX_LENGTH) {\n throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + K_MAX_LENGTH.toString(16) + " bytes");\n }\n return length | 0;\n }\n function SlowBuffer(length) {\n if (+length != length) {\n length = 0;\n }\n return Buffer13.alloc(+length);\n }\n Buffer13.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer13.prototype;\n };\n Buffer13.compare = function compare(a, b) {\n if (isInstance(a, Uint8Array))\n a = Buffer13.from(a, a.offset, a.byteLength);\n if (isInstance(b, Uint8Array))\n b = Buffer13.from(b, b.offset, b.byteLength);\n if (!Buffer13.isBuffer(a) || !Buffer13.isBuffer(b)) {\n throw new TypeError(\'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array\');\n }\n if (a === b)\n return 0;\n let x = a.length;\n let y = b.length;\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n Buffer13.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "latin1":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return true;\n default:\n return false;\n }\n };\n Buffer13.concat = function concat(list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n }\n if (list.length === 0) {\n return Buffer13.alloc(0);\n }\n let i;\n if (length === void 0) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n const buffer = Buffer13.allocUnsafe(length);\n let pos = 0;\n for (i = 0; i < list.length; ++i) {\n let buf2 = list[i];\n if (isInstance(buf2, Uint8Array)) {\n if (pos + buf2.length > buffer.length) {\n if (!Buffer13.isBuffer(buf2))\n buf2 = Buffer13.from(buf2);\n buf2.copy(buffer, pos);\n } else {\n Uint8Array.prototype.set.call(buffer, buf2, pos);\n }\n } else if (!Buffer13.isBuffer(buf2)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n } else {\n buf2.copy(buffer, pos);\n }\n pos += buf2.length;\n }\n return buffer;\n };\n function byteLength(string, encoding) {\n if (Buffer13.isBuffer(string)) {\n return string.length;\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength;\n }\n if (typeof string !== "string") {\n throw new TypeError(\'The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type \' + typeof string);\n }\n const len = string.length;\n const mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0)\n return 0;\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "ascii":\n case "latin1":\n case "binary":\n return len;\n case "utf8":\n case "utf-8":\n return utf8ToBytes(string).length;\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return len * 2;\n case "hex":\n return len >>> 1;\n case "base64":\n return base64ToBytes(string).length;\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length;\n }\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.byteLength = byteLength;\n function slowToString(encoding, start, end) {\n let loweredCase = false;\n if (start === void 0 || start < 0) {\n start = 0;\n }\n if (start > this.length) {\n return "";\n }\n if (end === void 0 || end > this.length) {\n end = this.length;\n }\n if (end <= 0) {\n return "";\n }\n end >>>= 0;\n start >>>= 0;\n if (end <= start) {\n return "";\n }\n if (!encoding)\n encoding = "utf8";\n while (true) {\n switch (encoding) {\n case "hex":\n return hexSlice(this, start, end);\n case "utf8":\n case "utf-8":\n return utf8Slice(this, start, end);\n case "ascii":\n return asciiSlice(this, start, end);\n case "latin1":\n case "binary":\n return latin1Slice(this, start, end);\n case "base64":\n return base64Slice(this, start, end);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return utf16leSlice(this, start, end);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = (encoding + "").toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.prototype._isBuffer = true;\n function swap(b, n, m) {\n const i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n Buffer13.prototype.swap16 = function swap16() {\n const len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 16-bits");\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this;\n };\n Buffer13.prototype.swap32 = function swap32() {\n const len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 32-bits");\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this;\n };\n Buffer13.prototype.swap64 = function swap64() {\n const len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 64-bits");\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this;\n };\n Buffer13.prototype.toString = function toString() {\n const length = this.length;\n if (length === 0)\n return "";\n if (arguments.length === 0)\n return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n };\n Buffer13.prototype.toLocaleString = Buffer13.prototype.toString;\n Buffer13.prototype.equals = function equals(b) {\n if (!Buffer13.isBuffer(b))\n throw new TypeError("Argument must be a Buffer");\n if (this === b)\n return true;\n return Buffer13.compare(this, b) === 0;\n };\n Buffer13.prototype.inspect = function inspect() {\n let str = "";\n const max = exports.INSPECT_MAX_BYTES;\n str = this.toString("hex", 0, max).replace(/(.{2})/g, "$1 ").trim();\n if (this.length > max)\n str += " ... ";\n return "";\n };\n if (customInspectSymbol) {\n Buffer13.prototype[customInspectSymbol] = Buffer13.prototype.inspect;\n }\n Buffer13.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer13.from(target, target.offset, target.byteLength);\n }\n if (!Buffer13.isBuffer(target)) {\n throw new TypeError(\'The "target" argument must be one of type Buffer or Uint8Array. Received type \' + typeof target);\n }\n if (start === void 0) {\n start = 0;\n }\n if (end === void 0) {\n end = target ? target.length : 0;\n }\n if (thisStart === void 0) {\n thisStart = 0;\n }\n if (thisEnd === void 0) {\n thisEnd = this.length;\n }\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError("out of range index");\n }\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n if (thisStart >= thisEnd) {\n return -1;\n }\n if (start >= end) {\n return 1;\n }\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target)\n return 0;\n let x = thisEnd - thisStart;\n let y = end - start;\n const len = Math.min(x, y);\n const thisCopy = this.slice(thisStart, thisEnd);\n const targetCopy = target.slice(start, end);\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n if (buffer.length === 0)\n return -1;\n if (typeof byteOffset === "string") {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 2147483647) {\n byteOffset = 2147483647;\n } else if (byteOffset < -2147483648) {\n byteOffset = -2147483648;\n }\n byteOffset = +byteOffset;\n if (numberIsNaN(byteOffset)) {\n byteOffset = dir ? 0 : buffer.length - 1;\n }\n if (byteOffset < 0)\n byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir)\n return -1;\n else\n byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir)\n byteOffset = 0;\n else\n return -1;\n }\n if (typeof val === "string") {\n val = Buffer13.from(val, encoding);\n }\n if (Buffer13.isBuffer(val)) {\n if (val.length === 0) {\n return -1;\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === "number") {\n val = val & 255;\n if (typeof Uint8Array.prototype.indexOf === "function") {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n throw new TypeError("val must be string, number or Buffer");\n }\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n let indexSize = 1;\n let arrLength = arr.length;\n let valLength = val.length;\n if (encoding !== void 0) {\n encoding = String(encoding).toLowerCase();\n if (encoding === "ucs2" || encoding === "ucs-2" || encoding === "utf16le" || encoding === "utf-16le") {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n function read2(buf2, i2) {\n if (indexSize === 1) {\n return buf2[i2];\n } else {\n return buf2.readUInt16BE(i2 * indexSize);\n }\n }\n let i;\n if (dir) {\n let foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read2(arr, i) === read2(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1)\n foundIndex = i;\n if (i - foundIndex + 1 === valLength)\n return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1)\n i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength)\n byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n let found = true;\n for (let j = 0; j < valLength; j++) {\n if (read2(arr, i + j) !== read2(val, j)) {\n found = false;\n break;\n }\n }\n if (found)\n return i;\n }\n }\n return -1;\n }\n Buffer13.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n Buffer13.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n Buffer13.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n function hexWrite(buf2, string, offset, length) {\n offset = Number(offset) || 0;\n const remaining = buf2.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n const strLen = string.length;\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n let i;\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16);\n if (numberIsNaN(parsed))\n return i;\n buf2[offset + i] = parsed;\n }\n return i;\n }\n function utf8Write(buf2, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n function asciiWrite(buf2, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf2, offset, length);\n }\n function base64Write(buf2, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf2, offset, length);\n }\n function ucs2Write(buf2, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n Buffer13.prototype.write = function write2(string, offset, length, encoding) {\n if (offset === void 0) {\n encoding = "utf8";\n length = this.length;\n offset = 0;\n } else if (length === void 0 && typeof offset === "string") {\n encoding = offset;\n length = this.length;\n offset = 0;\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n if (isFinite(length)) {\n length = length >>> 0;\n if (encoding === void 0)\n encoding = "utf8";\n } else {\n encoding = length;\n length = void 0;\n }\n } else {\n throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");\n }\n const remaining = this.length - offset;\n if (length === void 0 || length > remaining)\n length = remaining;\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError("Attempt to write outside buffer bounds");\n }\n if (!encoding)\n encoding = "utf8";\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "hex":\n return hexWrite(this, string, offset, length);\n case "utf8":\n case "utf-8":\n return utf8Write(this, string, offset, length);\n case "ascii":\n case "latin1":\n case "binary":\n return asciiWrite(this, string, offset, length);\n case "base64":\n return base64Write(this, string, offset, length);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return ucs2Write(this, string, offset, length);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n Buffer13.prototype.toJSON = function toJSON() {\n return {\n type: "Buffer",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n function base64Slice(buf2, start, end) {\n if (start === 0 && end === buf2.length) {\n return base64.fromByteArray(buf2);\n } else {\n return base64.fromByteArray(buf2.slice(start, end));\n }\n }\n function utf8Slice(buf2, start, end) {\n end = Math.min(buf2.length, end);\n const res = [];\n let i = start;\n while (i < end) {\n const firstByte = buf2[i];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf2[i + 1];\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n fourthByte = buf2[i + 3];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n res.push(codePoint);\n i += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n }\n var MAX_ARGUMENTS_LENGTH = 4096;\n function decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints);\n }\n let res = "";\n let i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n }\n function asciiSlice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i] & 127);\n }\n return ret;\n }\n function latin1Slice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i]);\n }\n return ret;\n }\n function hexSlice(buf2, start, end) {\n const len = buf2.length;\n if (!start || start < 0)\n start = 0;\n if (!end || end < 0 || end > len)\n end = len;\n let out = "";\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf2[i]];\n }\n return out;\n }\n function utf16leSlice(buf2, start, end) {\n const bytes = buf2.slice(start, end);\n let res = "";\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res;\n }\n Buffer13.prototype.slice = function slice(start, end) {\n const len = this.length;\n start = ~~start;\n end = end === void 0 ? len : ~~end;\n if (start < 0) {\n start += len;\n if (start < 0)\n start = 0;\n } else if (start > len) {\n start = len;\n }\n if (end < 0) {\n end += len;\n if (end < 0)\n end = 0;\n } else if (end > len) {\n end = len;\n }\n if (end < start)\n end = start;\n const newBuf = this.subarray(start, end);\n Object.setPrototypeOf(newBuf, Buffer13.prototype);\n return newBuf;\n };\n function checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0)\n throw new RangeError("offset is not uint");\n if (offset + ext > length)\n throw new RangeError("Trying to access beyond buffer length");\n }\n Buffer13.prototype.readUintLE = Buffer13.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUintBE = Buffer13.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n checkOffset(offset, byteLength2, this.length);\n }\n let val = this[offset + --byteLength2];\n let mul = 1;\n while (byteLength2 > 0 && (mul *= 256)) {\n val += this[offset + --byteLength2] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUint8 = Buffer13.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n return this[offset];\n };\n Buffer13.prototype.readUint16LE = Buffer13.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n };\n Buffer13.prototype.readUint16BE = Buffer13.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n };\n Buffer13.prototype.readUint32LE = Buffer13.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;\n };\n Buffer13.prototype.readUint32BE = Buffer13.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n Buffer13.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const lo = first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24;\n const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last * 2 ** 24;\n return BigInt(lo) + (BigInt(hi) << BigInt(32));\n });\n Buffer13.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const hi = first * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last;\n return (BigInt(hi) << BigInt(32)) + BigInt(lo);\n });\n Buffer13.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let i = byteLength2;\n let mul = 1;\n let val = this[offset + --i];\n while (i > 0 && (mul *= 256)) {\n val += this[offset + --i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readInt8 = function readInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n if (!(this[offset] & 128))\n return this[offset];\n return (255 - this[offset] + 1) * -1;\n };\n Buffer13.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset] | this[offset + 1] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset + 1] | this[offset] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n Buffer13.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n Buffer13.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last << 24);\n return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24);\n });\n Buffer13.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = (first << 24) + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last);\n });\n Buffer13.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, true, 23, 4);\n };\n Buffer13.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, false, 23, 4);\n };\n Buffer13.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, true, 52, 8);\n };\n Buffer13.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, false, 52, 8);\n };\n function checkInt(buf2, value, offset, ext, max, min) {\n if (!Buffer13.isBuffer(buf2))\n throw new TypeError(\'"buffer" argument must be a Buffer instance\');\n if (value > max || value < min)\n throw new RangeError(\'"value" argument is out of bounds\');\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n }\n Buffer13.prototype.writeUintLE = Buffer13.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let mul = 1;\n let i = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUintBE = Buffer13.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUint8 = Buffer13.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 255, 0);\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeUint16LE = Buffer13.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeUint16BE = Buffer13.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeUint32LE = Buffer13.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeUint32BE = Buffer13.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n function wrtBigUInt64LE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n return offset;\n }\n function wrtBigUInt64BE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset + 7] = lo;\n lo = lo >> 8;\n buf2[offset + 6] = lo;\n lo = lo >> 8;\n buf2[offset + 5] = lo;\n lo = lo >> 8;\n buf2[offset + 4] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset + 3] = hi;\n hi = hi >> 8;\n buf2[offset + 2] = hi;\n hi = hi >> 8;\n buf2[offset + 1] = hi;\n hi = hi >> 8;\n buf2[offset] = hi;\n return offset + 8;\n }\n Buffer13.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = 0;\n let mul = 1;\n let sub = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n let sub = 0;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 127, -128);\n if (value < 0)\n value = 255 + value + 1;\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n return offset + 4;\n };\n Buffer13.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n if (value < 0)\n value = 4294967295 + value + 1;\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n Buffer13.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n function checkIEEE754(buf2, value, offset, ext, max, min) {\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n if (offset < 0)\n throw new RangeError("Index out of range");\n }\n function writeFloat(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 4, 34028234663852886e22, -34028234663852886e22);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n Buffer13.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n function writeDouble(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 8, 17976931348623157e292, -17976931348623157e292);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n Buffer13.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n };\n Buffer13.prototype.copy = function copy(target, targetStart, start, end) {\n if (!Buffer13.isBuffer(target))\n throw new TypeError("argument should be a Buffer");\n if (!start)\n start = 0;\n if (!end && end !== 0)\n end = this.length;\n if (targetStart >= target.length)\n targetStart = target.length;\n if (!targetStart)\n targetStart = 0;\n if (end > 0 && end < start)\n end = start;\n if (end === start)\n return 0;\n if (target.length === 0 || this.length === 0)\n return 0;\n if (targetStart < 0) {\n throw new RangeError("targetStart out of bounds");\n }\n if (start < 0 || start >= this.length)\n throw new RangeError("Index out of range");\n if (end < 0)\n throw new RangeError("sourceEnd out of bounds");\n if (end > this.length)\n end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n const len = end - start;\n if (this === target && typeof Uint8Array.prototype.copyWithin === "function") {\n this.copyWithin(targetStart, start, end);\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart);\n }\n return len;\n };\n Buffer13.prototype.fill = function fill(val, start, end, encoding) {\n if (typeof val === "string") {\n if (typeof start === "string") {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === "string") {\n encoding = end;\n end = this.length;\n }\n if (encoding !== void 0 && typeof encoding !== "string") {\n throw new TypeError("encoding must be a string");\n }\n if (typeof encoding === "string" && !Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0);\n if (encoding === "utf8" && code < 128 || encoding === "latin1") {\n val = code;\n }\n }\n } else if (typeof val === "number") {\n val = val & 255;\n } else if (typeof val === "boolean") {\n val = Number(val);\n }\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError("Out of range index");\n }\n if (end <= start) {\n return this;\n }\n start = start >>> 0;\n end = end === void 0 ? this.length : end >>> 0;\n if (!val)\n val = 0;\n let i;\n if (typeof val === "number") {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n const bytes = Buffer13.isBuffer(val) ? val : Buffer13.from(val, encoding);\n const len = bytes.length;\n if (len === 0) {\n throw new TypeError(\'The value "\' + val + \'" is invalid for argument "value"\');\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n return this;\n };\n var errors = {};\n function E(sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor() {\n super();\n Object.defineProperty(this, "message", {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n });\n this.name = `${this.name} [${sym}]`;\n this.stack;\n delete this.name;\n }\n get code() {\n return sym;\n }\n set code(value) {\n Object.defineProperty(this, "code", {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n });\n }\n toString() {\n return `${this.name} [${sym}]: ${this.message}`;\n }\n };\n }\n E("ERR_BUFFER_OUT_OF_BOUNDS", function(name) {\n if (name) {\n return `${name} is outside of buffer bounds`;\n }\n return "Attempt to access memory outside buffer bounds";\n }, RangeError);\n E("ERR_INVALID_ARG_TYPE", function(name, actual) {\n return `The "${name}" argument must be of type number. Received type ${typeof actual}`;\n }, TypeError);\n E("ERR_OUT_OF_RANGE", function(str, range, input) {\n let msg = `The value of "${str}" is out of range.`;\n let received = input;\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input));\n } else if (typeof input === "bigint") {\n received = String(input);\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received);\n }\n received += "n";\n }\n msg += ` It must be ${range}. Received ${received}`;\n return msg;\n }, RangeError);\n function addNumericalSeparator(val) {\n let res = "";\n let i = val.length;\n const start = val[0] === "-" ? 1 : 0;\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`;\n }\n return `${val.slice(0, i)}${res}`;\n }\n function checkBounds(buf2, offset, byteLength2) {\n validateNumber(offset, "offset");\n if (buf2[offset] === void 0 || buf2[offset + byteLength2] === void 0) {\n boundsError(offset, buf2.length - (byteLength2 + 1));\n }\n }\n function checkIntBI(value, min, max, buf2, offset, byteLength2) {\n if (value > max || value < min) {\n const n = typeof min === "bigint" ? "n" : "";\n let range;\n if (byteLength2 > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength2 + 1) * 8}${n}`;\n } else {\n range = `>= -(2${n} ** ${(byteLength2 + 1) * 8 - 1}${n}) and < 2 ** ${(byteLength2 + 1) * 8 - 1}${n}`;\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`;\n }\n throw new errors.ERR_OUT_OF_RANGE("value", range, value);\n }\n checkBounds(buf2, offset, byteLength2);\n }\n function validateNumber(value, name) {\n if (typeof value !== "number") {\n throw new errors.ERR_INVALID_ARG_TYPE(name, "number", value);\n }\n }\n function boundsError(value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type);\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", "an integer", value);\n }\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n }\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", `>= ${type ? 1 : 0} and <= ${length}`, value);\n }\n var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n function base64clean(str) {\n str = str.split("=")[0];\n str = str.trim().replace(INVALID_BASE64_RE, "");\n if (str.length < 2)\n return "";\n while (str.length % 4 !== 0) {\n str = str + "=";\n }\n return str;\n }\n function utf8ToBytes(string, units) {\n units = units || Infinity;\n let codePoint;\n const length = string.length;\n let leadSurrogate = null;\n const bytes = [];\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n if (codePoint > 55295 && codePoint < 57344) {\n if (!leadSurrogate) {\n if (codePoint > 56319) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n }\n leadSurrogate = codePoint;\n continue;\n }\n if (codePoint < 56320) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n }\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n }\n leadSurrogate = null;\n if (codePoint < 128) {\n if ((units -= 1) < 0)\n break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0)\n break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0)\n break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0)\n break;\n bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else {\n throw new Error("Invalid code point");\n }\n }\n return bytes;\n }\n function asciiToBytes(str) {\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n byteArray.push(str.charCodeAt(i) & 255);\n }\n return byteArray;\n }\n function utf16leToBytes(str, units) {\n let c, hi, lo;\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0)\n break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n return byteArray;\n }\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n function blitBuffer(src, dst, offset, length) {\n let i;\n for (i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length)\n break;\n dst[i + offset] = src[i];\n }\n return i;\n }\n function isInstance(obj, type) {\n return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n }\n function numberIsNaN(obj) {\n return obj !== obj;\n }\n var hexSliceLookupTable = function() {\n const alphabet = "0123456789abcdef";\n const table = new Array(256);\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16;\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n return table;\n }();\n function defineBigIntMethod(fn) {\n return typeof BigInt === "undefined" ? BufferBigIntNotDefined : fn;\n }\n function BufferBigIntNotDefined() {\n throw new Error("BigInt not supported");\n }\n }\n});\n\n// esbuild.inject.js\nvar Buffer2;\nvar init_esbuild_inject = __esm({\n "esbuild.inject.js"() {\n "use strict";\n Buffer2 = require_buffer().Buffer;\n }\n});\n\n// node_modules/crc-32/crc32.js\nvar require_crc32 = __commonJS({\n "node_modules/crc-32/crc32.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var CRC32;\n (function(factory) {\n if (typeof DO_NOT_EXPORT_CRC === "undefined") {\n if (typeof exports === "object") {\n factory(exports);\n } else if (typeof define === "function" && define.amd) {\n define(function() {\n var module2 = {};\n factory(module2);\n return module2;\n });\n } else {\n factory(CRC32 = {});\n }\n } else {\n factory(CRC32 = {});\n }\n })(function(CRC322) {\n CRC322.version = "1.2.0";\n function signed_crc_table() {\n var c = 0, table = new Array(256);\n for (var n = 0; n != 256; ++n) {\n c = n;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n table[n] = c;\n }\n return typeof Int32Array !== "undefined" ? new Int32Array(table) : table;\n }\n var T = signed_crc_table();\n function crc32_bstr(bstr, seed) {\n var C = seed ^ -1, L = bstr.length - 1;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n }\n if (i === L)\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i)) & 255];\n return C ^ -1;\n }\n function crc32_buf(buf2, seed) {\n if (buf2.length > 1e4)\n return crc32_buf_8(buf2, seed);\n var C = seed ^ -1, L = buf2.length - 3;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 3)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_buf_8(buf2, seed) {\n var C = seed ^ -1, L = buf2.length - 7;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 7)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_str(str, seed) {\n var C = seed ^ -1;\n for (var i = 0, L = str.length, c, d; i < L; ) {\n c = str.charCodeAt(i++);\n if (c < 128) {\n C = C >>> 8 ^ T[(C ^ c) & 255];\n } else if (c < 2048) {\n C = C >>> 8 ^ T[(C ^ (192 | c >> 6 & 31)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n } else if (c >= 55296 && c < 57344) {\n c = (c & 1023) + 64;\n d = str.charCodeAt(i++) & 1023;\n C = C >>> 8 ^ T[(C ^ (240 | c >> 8 & 7)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 2 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d >> 6 & 15 | (c & 3) << 4)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d & 63)) & 255];\n } else {\n C = C >>> 8 ^ T[(C ^ (224 | c >> 12 & 15)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 6 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n }\n }\n return C ^ -1;\n }\n CRC322.table = T;\n CRC322.bstr = crc32_bstr;\n CRC322.buf = crc32_buf;\n CRC322.str = crc32_str;\n });\n }\n});\n\n// node_modules/events/events.js\nvar require_events = __commonJS({\n "node_modules/events/events.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var R = typeof Reflect === "object" ? Reflect : null;\n var ReflectApply = R && typeof R.apply === "function" ? R.apply : function ReflectApply2(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n };\n var ReflectOwnKeys;\n if (R && typeof R.ownKeys === "function") {\n ReflectOwnKeys = R.ownKeys;\n } else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n } else {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target);\n };\n }\n function ProcessEmitWarning(warning) {\n if (console && console.warn)\n console.warn(warning);\n }\n var NumberIsNaN = Number.isNaN || function NumberIsNaN2(value) {\n return value !== value;\n };\n function EventEmitter() {\n EventEmitter.init.call(this);\n }\n module.exports = EventEmitter;\n module.exports.once = once;\n EventEmitter.EventEmitter = EventEmitter;\n EventEmitter.prototype._events = void 0;\n EventEmitter.prototype._eventsCount = 0;\n EventEmitter.prototype._maxListeners = void 0;\n var defaultMaxListeners = 10;\n function checkListener(listener) {\n if (typeof listener !== "function") {\n throw new TypeError(\'The "listener" argument must be of type Function. Received type \' + typeof listener);\n }\n }\n Object.defineProperty(EventEmitter, "defaultMaxListeners", {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== "number" || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError(\'The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received \' + arg + ".");\n }\n defaultMaxListeners = arg;\n }\n });\n EventEmitter.init = function() {\n if (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n }\n this._maxListeners = this._maxListeners || void 0;\n };\n EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== "number" || n < 0 || NumberIsNaN(n)) {\n throw new RangeError(\'The value of "n" is out of range. It must be a non-negative number. Received \' + n + ".");\n }\n this._maxListeners = n;\n return this;\n };\n function _getMaxListeners(that) {\n if (that._maxListeners === void 0)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n }\n EventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n };\n EventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++)\n args.push(arguments[i]);\n var doError = type === "error";\n var events = this._events;\n if (events !== void 0)\n doError = doError && events.error === void 0;\n else if (!doError)\n return false;\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n throw er;\n }\n var err = new Error("Unhandled error." + (er ? " (" + er.message + ")" : ""));\n err.context = er;\n throw err;\n }\n var handler = events[type];\n if (handler === void 0)\n return false;\n if (typeof handler === "function") {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n return true;\n };\n function _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n if (events === void 0) {\n events = target._events = /* @__PURE__ */ Object.create(null);\n target._eventsCount = 0;\n } else {\n if (events.newListener !== void 0) {\n target.emit("newListener", type, listener.listener ? listener.listener : listener);\n events = target._events;\n }\n existing = events[type];\n }\n if (existing === void 0) {\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === "function") {\n existing = events[type] = prepend ? [listener, existing] : [existing, listener];\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n var w = new Error("Possible EventEmitter memory leak detected. " + existing.length + " " + String(type) + " listeners added. Use emitter.setMaxListeners() to increase limit");\n w.name = "MaxListenersExceededWarning";\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n return target;\n }\n EventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n };\n EventEmitter.prototype.on = EventEmitter.prototype.addListener;\n EventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n function onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n }\n function _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: void 0, target, type, listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n }\n EventEmitter.prototype.once = function once2(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === void 0)\n return this;\n list = events[type];\n if (list === void 0)\n return this;\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit("removeListener", type, list.listener || listener);\n }\n } else if (typeof list !== "function") {\n position = -1;\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n if (position < 0)\n return this;\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n if (list.length === 1)\n events[type] = list[0];\n if (events.removeListener !== void 0)\n this.emit("removeListener", type, originalListener || listener);\n }\n return this;\n };\n EventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === void 0)\n return this;\n if (events.removeListener === void 0) {\n if (arguments.length === 0) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== void 0) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key2;\n for (i = 0; i < keys.length; ++i) {\n key2 = keys[i];\n if (key2 === "removeListener")\n continue;\n this.removeAllListeners(key2);\n }\n this.removeAllListeners("removeListener");\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n listeners = events[type];\n if (typeof listeners === "function") {\n this.removeListener(type, listeners);\n } else if (listeners !== void 0) {\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n return this;\n };\n function _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === void 0)\n return [];\n var evlistener = events[type];\n if (evlistener === void 0)\n return [];\n if (typeof evlistener === "function")\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n }\n EventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n };\n EventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n };\n EventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === "function") {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n };\n EventEmitter.prototype.listenerCount = listenerCount;\n function listenerCount(type) {\n var events = this._events;\n if (events !== void 0) {\n var evlistener = events[type];\n if (typeof evlistener === "function") {\n return 1;\n } else if (evlistener !== void 0) {\n return evlistener.length;\n }\n }\n return 0;\n }\n EventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n };\n function arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n }\n function spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n }\n function unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n }\n function once(emitter, name) {\n return new Promise(function(resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n function resolver() {\n if (typeof emitter.removeListener === "function") {\n emitter.removeListener("error", errorListener);\n }\n resolve([].slice.call(arguments));\n }\n ;\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== "error") {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n }\n function addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === "function") {\n eventTargetAgnosticAddListener(emitter, "error", handler, flags);\n }\n }\n function eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === "function") {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === "function") {\n emitter.addEventListener(name, function wrapListener(arg) {\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError(\'The "emitter" argument must be of type EventEmitter. Received type \' + typeof emitter);\n }\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/stream-browser.js\nvar require_stream_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/stream-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = require_events().EventEmitter;\n }\n});\n\n// (disabled):node_modules/util/util.js\nvar require_util = __commonJS({\n "(disabled):node_modules/util/util.js"() {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/buffer_list.js\nvar require_buffer_list = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/buffer_list.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly)\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n }\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function(key2) {\n _defineProperty(target, key2, source[key2]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key2) {\n Object.defineProperty(target, key2, Object.getOwnPropertyDescriptor(source, key2));\n });\n }\n }\n return target;\n }\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n var _require = require_buffer();\n var Buffer13 = _require.Buffer;\n var _require2 = require_util();\n var inspect = _require2.inspect;\n var custom = inspect && inspect.custom || "inspect";\n function copyBuffer(src, target, offset) {\n Buffer13.prototype.copy.call(src, target, offset);\n }\n module.exports = /* @__PURE__ */ function() {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: "push",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0)\n this.tail.next = entry;\n else\n this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: "unshift",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0)\n this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: "shift",\n value: function shift() {\n if (this.length === 0)\n return;\n var ret = this.head.data;\n if (this.length === 1)\n this.head = this.tail = null;\n else\n this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: "clear",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: "join",\n value: function join(s) {\n if (this.length === 0)\n return "";\n var p = this.head;\n var ret = "" + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }\n return ret;\n }\n }, {\n key: "concat",\n value: function concat(n) {\n if (this.length === 0)\n return Buffer13.alloc(0);\n var ret = Buffer13.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n }, {\n key: "consume",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n ret = this.shift();\n } else {\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: "first",\n value: function first() {\n return this.head.data;\n }\n }, {\n key: "_getString",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length)\n ret += str;\n else\n ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: "_getBuffer",\n value: function _getBuffer(n) {\n var ret = Buffer13.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf2 = p.data;\n var nb = n > buf2.length ? buf2.length : n;\n buf2.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf2.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf2.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n depth: 0,\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n }();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/destroy.js\nvar require_destroy = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/destroy.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function(err2) {\n if (!cb && err2) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n }\n function emitErrorAndCloseNT(self2, err) {\n emitErrorNT(self2, err);\n emitCloseNT(self2);\n }\n function emitCloseNT(self2) {\n if (self2._writableState && !self2._writableState.emitClose)\n return;\n if (self2._readableState && !self2._readableState.emitClose)\n return;\n self2.emit("close");\n }\n function undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n }\n function emitErrorNT(self2, err) {\n self2.emit("error", err);\n }\n function errorOrDestroy(stream, err) {\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy)\n stream.destroy(err);\n else\n stream.emit("error", err);\n }\n module.exports = {\n destroy,\n undestroy,\n errorOrDestroy\n };\n }\n});\n\n// node_modules/readable-stream/errors-browser.js\nvar require_errors_browser = __commonJS({\n "node_modules/readable-stream/errors-browser.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n }\n var codes = {};\n function createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === "string") {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /* @__PURE__ */ function(_Base) {\n _inheritsLoose(NodeError2, _Base);\n function NodeError2(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n return NodeError2;\n }(Base);\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n }\n function oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function(i) {\n return String(i);\n });\n if (len > 2) {\n return "one of ".concat(thing, " ").concat(expected.slice(0, len - 1).join(", "), ", or ") + expected[len - 1];\n } else if (len === 2) {\n return "one of ".concat(thing, " ").concat(expected[0], " or ").concat(expected[1]);\n } else {\n return "of ".concat(thing, " ").concat(expected[0]);\n }\n } else {\n return "of ".concat(thing, " ").concat(String(expected));\n }\n }\n function startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n }\n function endsWith(str, search, this_len) {\n if (this_len === void 0 || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n }\n function includes(str, search, start) {\n if (typeof start !== "number") {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n }\n createErrorType("ERR_INVALID_OPT_VALUE", function(name, value) {\n return \'The value "\' + value + \'" is invalid for option "\' + name + \'"\';\n }, TypeError);\n createErrorType("ERR_INVALID_ARG_TYPE", function(name, expected, actual) {\n var determiner;\n if (typeof expected === "string" && startsWith(expected, "not ")) {\n determiner = "must not be";\n expected = expected.replace(/^not /, "");\n } else {\n determiner = "must be";\n }\n var msg;\n if (endsWith(name, " argument")) {\n msg = "The ".concat(name, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n } else {\n var type = includes(name, ".") ? "property" : "argument";\n msg = \'The "\'.concat(name, \'" \').concat(type, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n }\n msg += ". Received type ".concat(typeof actual);\n return msg;\n }, TypeError);\n createErrorType("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF");\n createErrorType("ERR_METHOD_NOT_IMPLEMENTED", function(name) {\n return "The " + name + " method is not implemented";\n });\n createErrorType("ERR_STREAM_PREMATURE_CLOSE", "Premature close");\n createErrorType("ERR_STREAM_DESTROYED", function(name) {\n return "Cannot call " + name + " after a stream was destroyed";\n });\n createErrorType("ERR_MULTIPLE_CALLBACK", "Callback called multiple times");\n createErrorType("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable");\n createErrorType("ERR_STREAM_WRITE_AFTER_END", "write after end");\n createErrorType("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError);\n createErrorType("ERR_UNKNOWN_ENCODING", function(arg) {\n return "Unknown encoding: " + arg;\n }, TypeError);\n createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event");\n module.exports.codes = codes;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/state.js\nvar require_state = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/state.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_INVALID_OPT_VALUE = require_errors_browser().codes.ERR_INVALID_OPT_VALUE;\n function highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n }\n function getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : "highWaterMark";\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n return state.objectMode ? 16 : 16 * 1024;\n }\n module.exports = {\n getHighWaterMark\n };\n }\n});\n\n// node_modules/inherits/inherits_browser.js\nvar require_inherits_browser = __commonJS({\n "node_modules/inherits/inherits_browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n if (typeof Object.create === "function") {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n } else {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function() {\n };\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n }\n }\n});\n\n// node_modules/util-deprecate/browser.js\nvar require_browser = __commonJS({\n "node_modules/util-deprecate/browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = deprecate;\n function deprecate(fn, msg) {\n if (config("noDeprecation")) {\n return fn;\n }\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config("throwDeprecation")) {\n throw new Error(msg);\n } else if (config("traceDeprecation")) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n }\n function config(name) {\n try {\n if (!self.localStorage)\n return false;\n } catch (_) {\n return false;\n }\n var val = self.localStorage[name];\n if (val == null)\n return false;\n return String(val).toLowerCase() === "true";\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_writable.js\nvar require_stream_writable = __commonJS({\n "node_modules/readable-stream/lib/_stream_writable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Writable;\n function CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function() {\n onCorkedFinish(_this, state);\n };\n }\n var Duplex;\n Writable.WritableState = WritableState;\n var internalUtil = {\n deprecate: require_browser()\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n var ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES;\n var ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END;\n var ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n require_inherits_browser()(Writable, Stream);\n function nop() {\n }\n function WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.writableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "writableHighWaterMark", isDuplex);\n this.finalCalled = false;\n this.needDrain = false;\n this.ending = false;\n this.ended = false;\n this.finished = false;\n this.destroyed = false;\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.length = 0;\n this.writing = false;\n this.corked = 0;\n this.sync = true;\n this.bufferProcessing = false;\n this.onwrite = function(er) {\n onwrite(stream, er);\n };\n this.writecb = null;\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n this.pendingcb = 0;\n this.prefinished = false;\n this.errorEmitted = false;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.bufferedRequestCount = 0;\n this.corkedRequestsFree = new CorkedRequest(this);\n }\n WritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n };\n (function() {\n try {\n Object.defineProperty(WritableState.prototype, "buffer", {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003")\n });\n } catch (_) {\n }\n })();\n var realHasInstance;\n if (typeof Symbol === "function" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === "function") {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object))\n return true;\n if (this !== Writable)\n return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n } else {\n realHasInstance = function realHasInstance2(object) {\n return object instanceof this;\n };\n }\n function Writable(options) {\n Duplex = Duplex || require_stream_duplex();\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this))\n return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n this.writable = true;\n if (options) {\n if (typeof options.write === "function")\n this._write = options.write;\n if (typeof options.writev === "function")\n this._writev = options.writev;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n if (typeof options.final === "function")\n this._final = options.final;\n }\n Stream.call(this);\n }\n Writable.prototype.pipe = function() {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n };\n function writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n }\n function validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== "string" && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer"], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n }\n Writable.prototype.write = function(chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer13.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (isBuf)\n encoding = "buffer";\n else if (!encoding)\n encoding = state.defaultEncoding;\n if (typeof cb !== "function")\n cb = nop;\n if (state.ending)\n writeAfterEnd(this, cb);\n else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n };\n Writable.prototype.cork = function() {\n this._writableState.corked++;\n };\n Writable.prototype.uncork = function() {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest)\n clearBuffer(this, state);\n }\n };\n Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n if (typeof encoding === "string")\n encoding = encoding.toLowerCase();\n if (!(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((encoding + "").toLowerCase()) > -1))\n throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n function decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === "string") {\n chunk = Buffer13.from(chunk, encoding);\n }\n return chunk;\n }\n Object.defineProperty(Writable.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = "buffer";\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n if (!ret)\n state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk,\n encoding,\n isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n }\n function doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed)\n state.onwrite(new ERR_STREAM_DESTROYED("write"));\n else if (writev)\n stream._writev(chunk, state.onwrite);\n else\n stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n }\n function onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n process.nextTick(cb, er);\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n finishMaybe(stream, state);\n }\n }\n function onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n }\n function onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== "function")\n throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er)\n onwriteError(stream, state, sync, er, cb);\n else {\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n }\n function afterWrite(stream, state, finished, cb) {\n if (!finished)\n onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n }\n function onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit("drain");\n }\n }\n function clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf)\n allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, "", holder.finish);\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n if (state.writing) {\n break;\n }\n }\n if (entry === null)\n state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n }\n Writable.prototype._write = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_write()"));\n };\n Writable.prototype._writev = null;\n Writable.prototype.end = function(chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === "function") {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== void 0)\n this.write(chunk, encoding);\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n if (!state.ending)\n endWritable(this, state, cb);\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n }\n function callFinal(stream, state) {\n stream._final(function(err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit("prefinish");\n finishMaybe(stream, state);\n });\n }\n function prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === "function" && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit("prefinish");\n }\n }\n }\n function finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit("finish");\n if (state.autoDestroy) {\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n }\n function endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished)\n process.nextTick(cb);\n else\n stream.once("finish", cb);\n }\n state.ended = true;\n stream.writable = false;\n }\n function onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n state.corkedRequestsFree.next = corkReq;\n }\n Object.defineProperty(Writable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._writableState === void 0) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n if (!this._writableState) {\n return;\n }\n this._writableState.destroyed = value;\n }\n });\n Writable.prototype.destroy = destroyImpl.destroy;\n Writable.prototype._undestroy = destroyImpl.undestroy;\n Writable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_duplex.js\nvar require_stream_duplex = __commonJS({\n "node_modules/readable-stream/lib/_stream_duplex.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var objectKeys = Object.keys || function(obj) {\n var keys2 = [];\n for (var key2 in obj) {\n keys2.push(key2);\n }\n return keys2;\n };\n module.exports = Duplex;\n var Readable = require_stream_readable();\n var Writable = require_stream_writable();\n require_inherits_browser()(Duplex, Readable);\n {\n keys = objectKeys(Writable.prototype);\n for (v = 0; v < keys.length; v++) {\n method = keys[v];\n if (!Duplex.prototype[method])\n Duplex.prototype[method] = Writable.prototype[method];\n }\n }\n var keys;\n var method;\n var v;\n function Duplex(options) {\n if (!(this instanceof Duplex))\n return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false)\n this.readable = false;\n if (options.writable === false)\n this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once("end", onend);\n }\n }\n }\n Object.defineProperty(Duplex.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n Object.defineProperty(Duplex.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n Object.defineProperty(Duplex.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function onend() {\n if (this._writableState.ended)\n return;\n process.nextTick(onEndNT, this);\n }\n function onEndNT(self2) {\n self2.end();\n }\n Object.defineProperty(Duplex.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return;\n }\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n });\n }\n});\n\n// node_modules/safe-buffer/index.js\nvar require_safe_buffer = __commonJS({\n "node_modules/safe-buffer/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var buffer = require_buffer();\n var Buffer13 = buffer.Buffer;\n function copyProps(src, dst) {\n for (var key2 in src) {\n dst[key2] = src[key2];\n }\n }\n if (Buffer13.from && Buffer13.alloc && Buffer13.allocUnsafe && Buffer13.allocUnsafeSlow) {\n module.exports = buffer;\n } else {\n copyProps(buffer, exports);\n exports.Buffer = SafeBuffer;\n }\n function SafeBuffer(arg, encodingOrOffset, length) {\n return Buffer13(arg, encodingOrOffset, length);\n }\n SafeBuffer.prototype = Object.create(Buffer13.prototype);\n copyProps(Buffer13, SafeBuffer);\n SafeBuffer.from = function(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n throw new TypeError("Argument must not be a number");\n }\n return Buffer13(arg, encodingOrOffset, length);\n };\n SafeBuffer.alloc = function(size, fill, encoding) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n var buf2 = Buffer13(size);\n if (fill !== void 0) {\n if (typeof encoding === "string") {\n buf2.fill(fill, encoding);\n } else {\n buf2.fill(fill);\n }\n } else {\n buf2.fill(0);\n }\n return buf2;\n };\n SafeBuffer.allocUnsafe = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return Buffer13(size);\n };\n SafeBuffer.allocUnsafeSlow = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return buffer.SlowBuffer(size);\n };\n }\n});\n\n// node_modules/string_decoder/lib/string_decoder.js\nvar require_string_decoder = __commonJS({\n "node_modules/string_decoder/lib/string_decoder.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var Buffer13 = require_safe_buffer().Buffer;\n var isEncoding = Buffer13.isEncoding || function(encoding) {\n encoding = "" + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n case "raw":\n return true;\n default:\n return false;\n }\n };\n function _normalizeEncoding(enc) {\n if (!enc)\n return "utf8";\n var retried;\n while (true) {\n switch (enc) {\n case "utf8":\n case "utf-8":\n return "utf8";\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return "utf16le";\n case "latin1":\n case "binary":\n return "latin1";\n case "base64":\n case "ascii":\n case "hex":\n return enc;\n default:\n if (retried)\n return;\n enc = ("" + enc).toLowerCase();\n retried = true;\n }\n }\n }\n function normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== "string" && (Buffer13.isEncoding === isEncoding || !isEncoding(enc)))\n throw new Error("Unknown encoding: " + enc);\n return nenc || enc;\n }\n exports.StringDecoder = StringDecoder;\n function StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case "utf16le":\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case "utf8":\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case "base64":\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer13.allocUnsafe(nb);\n }\n StringDecoder.prototype.write = function(buf2) {\n if (buf2.length === 0)\n return "";\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf2);\n if (r === void 0)\n return "";\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf2.length)\n return r ? r + this.text(buf2, i) : this.text(buf2, i);\n return r || "";\n };\n StringDecoder.prototype.end = utf8End;\n StringDecoder.prototype.text = utf8Text;\n StringDecoder.prototype.fillLast = function(buf2) {\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf2.length);\n this.lastNeed -= buf2.length;\n };\n function utf8CheckByte(byte) {\n if (byte <= 127)\n return 0;\n else if (byte >> 5 === 6)\n return 2;\n else if (byte >> 4 === 14)\n return 3;\n else if (byte >> 3 === 30)\n return 4;\n return byte >> 6 === 2 ? -1 : -2;\n }\n function utf8CheckIncomplete(self2, buf2, i) {\n var j = buf2.length - 1;\n if (j < i)\n return 0;\n var nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2)\n nb = 0;\n else\n self2.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n }\n function utf8CheckExtraBytes(self2, buf2, p) {\n if ((buf2[0] & 192) !== 128) {\n self2.lastNeed = 0;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 1 && buf2.length > 1) {\n if ((buf2[1] & 192) !== 128) {\n self2.lastNeed = 1;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 2 && buf2.length > 2) {\n if ((buf2[2] & 192) !== 128) {\n self2.lastNeed = 2;\n return "\\uFFFD";\n }\n }\n }\n }\n function utf8FillLast(buf2) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf2, p);\n if (r !== void 0)\n return r;\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, p, 0, buf2.length);\n this.lastNeed -= buf2.length;\n }\n function utf8Text(buf2, i) {\n var total = utf8CheckIncomplete(this, buf2, i);\n if (!this.lastNeed)\n return buf2.toString("utf8", i);\n this.lastTotal = total;\n var end = buf2.length - (total - this.lastNeed);\n buf2.copy(this.lastChar, 0, end);\n return buf2.toString("utf8", i, end);\n }\n function utf8End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + "\\uFFFD";\n return r;\n }\n function utf16Text(buf2, i) {\n if ((buf2.length - i) % 2 === 0) {\n var r = buf2.toString("utf16le", i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 55296 && c <= 56319) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf2[buf2.length - 1];\n return buf2.toString("utf16le", i, buf2.length - 1);\n }\n function utf16End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString("utf16le", 0, end);\n }\n return r;\n }\n function base64Text(buf2, i) {\n var n = (buf2.length - i) % 3;\n if (n === 0)\n return buf2.toString("base64", i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf2[buf2.length - 1];\n } else {\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n }\n return buf2.toString("base64", i, buf2.length - n);\n }\n function base64End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + this.lastChar.toString("base64", 0, 3 - this.lastNeed);\n return r;\n }\n function simpleWrite(buf2) {\n return buf2.toString(this.encoding);\n }\n function simpleEnd(buf2) {\n return buf2 && buf2.length ? this.write(buf2) : "";\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/end-of-stream.js\nvar require_end_of_stream = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_STREAM_PREMATURE_CLOSE = require_errors_browser().codes.ERR_STREAM_PREMATURE_CLOSE;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n }\n function noop2() {\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function eos(stream, opts, callback) {\n if (typeof opts === "function")\n return eos(stream, null, opts);\n if (!opts)\n opts = {};\n callback = once(callback || noop2);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable2 = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish2() {\n if (!stream.writable)\n onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish2() {\n writable2 = false;\n writableEnded = true;\n if (!readable)\n callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend2() {\n readable = false;\n readableEnded = true;\n if (!writable2)\n callback.call(stream);\n };\n var onerror = function onerror2(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose2() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable2 && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest2() {\n stream.req.on("finish", onfinish);\n };\n if (isRequest(stream)) {\n stream.on("complete", onfinish);\n stream.on("abort", onclose);\n if (stream.req)\n onrequest();\n else\n stream.on("request", onrequest);\n } else if (writable2 && !stream._writableState) {\n stream.on("end", onlegacyfinish);\n stream.on("close", onlegacyfinish);\n }\n stream.on("end", onend);\n stream.on("finish", onfinish);\n if (opts.error !== false)\n stream.on("error", onerror);\n stream.on("close", onclose);\n return function() {\n stream.removeListener("complete", onfinish);\n stream.removeListener("abort", onclose);\n stream.removeListener("request", onrequest);\n if (stream.req)\n stream.req.removeListener("finish", onfinish);\n stream.removeListener("end", onlegacyfinish);\n stream.removeListener("close", onlegacyfinish);\n stream.removeListener("finish", onfinish);\n stream.removeListener("end", onend);\n stream.removeListener("error", onerror);\n stream.removeListener("close", onclose);\n };\n }\n module.exports = eos;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/async_iterator.js\nvar require_async_iterator = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/async_iterator.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var _Object$setPrototypeO;\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n var finished = require_end_of_stream();\n var kLastResolve = Symbol("lastResolve");\n var kLastReject = Symbol("lastReject");\n var kError = Symbol("error");\n var kEnded = Symbol("ended");\n var kLastPromise = Symbol("lastPromise");\n var kHandlePromise = Symbol("handlePromise");\n var kStream = Symbol("stream");\n function createIterResult(value, done) {\n return {\n value,\n done\n };\n }\n function readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n }\n function onReadable(iter) {\n process.nextTick(readAndResolve, iter);\n }\n function wrapForNext(lastPromise, iter) {\n return function(resolve, reject) {\n lastPromise.then(function() {\n if (iter[kEnded]) {\n resolve(createIterResult(void 0, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n }\n var AsyncIteratorPrototype = Object.getPrototypeOf(function() {\n });\n var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(void 0, true));\n }\n if (this[kStream].destroyed) {\n return new Promise(function(resolve, reject) {\n process.nextTick(function() {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(void 0, true));\n }\n });\n });\n }\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n }, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function() {\n return this;\n }), _defineProperty(_Object$setPrototypeO, "return", function _return() {\n var _this2 = this;\n return new Promise(function(resolve, reject) {\n _this2[kStream].destroy(null, function(err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(void 0, true));\n });\n });\n }), _Object$setPrototypeO), AsyncIteratorPrototype);\n var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator2(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function(err) {\n if (err && err.code !== "ERR_STREAM_PREMATURE_CLOSE") {\n var reject = iterator[kLastReject];\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(void 0, true));\n }\n iterator[kEnded] = true;\n });\n stream.on("readable", onReadable.bind(null, iterator));\n return iterator;\n };\n module.exports = createReadableStreamAsyncIterator;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/from-browser.js\nvar require_from_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/from-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = function() {\n throw new Error("Readable.from is not available in the browser");\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_readable.js\nvar require_stream_readable = __commonJS({\n "node_modules/readable-stream/lib/_stream_readable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Readable;\n var Duplex;\n Readable.ReadableState = ReadableState;\n var EE = require_events().EventEmitter;\n var EElistenerCount = function EElistenerCount2(emitter, type) {\n return emitter.listeners(type).length;\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var debugUtil = require_util();\n var debug;\n if (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog("stream");\n } else {\n debug = function debug2() {\n };\n }\n var BufferList = require_buffer_list();\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n var StringDecoder;\n var createReadableStreamAsyncIterator;\n var from;\n require_inherits_browser()(Readable, Stream);\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n var kProxyEvents = ["error", "close", "destroy", "pause", "resume"];\n function prependListener(emitter, event, fn) {\n if (typeof emitter.prependListener === "function")\n return emitter.prependListener(event, fn);\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n function ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.readableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "readableHighWaterMark", isDuplex);\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n this.sync = true;\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.destroyed = false;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.awaitDrain = 0;\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n }\n function Readable(options) {\n Duplex = Duplex || require_stream_duplex();\n if (!(this instanceof Readable))\n return new Readable(options);\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n this.readable = true;\n if (options) {\n if (typeof options.read === "function")\n this._read = options.read;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n }\n Stream.call(this);\n }\n Object.defineProperty(Readable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n if (!this._readableState) {\n return;\n }\n this._readableState.destroyed = value;\n }\n });\n Readable.prototype.destroy = destroyImpl.destroy;\n Readable.prototype._undestroy = destroyImpl.undestroy;\n Readable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n Readable.prototype.push = function(chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === "string") {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer13.from(chunk, encoding);\n encoding = "";\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n };\n Readable.prototype.unshift = function(chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n };\n function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug("readableAddChunk", chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck)\n er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== "string" && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer13.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted)\n errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());\n else\n addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0)\n addChunk(stream, state, chunk, false);\n else\n maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n }\n function addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit("data", chunk);\n } else {\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront)\n state.buffer.unshift(chunk);\n else\n state.buffer.push(chunk);\n if (state.needReadable)\n emitReadable(stream);\n }\n maybeReadMore(stream, state);\n }\n function chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== "string" && chunk !== void 0 && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer", "Uint8Array"], chunk);\n }\n return er;\n }\n Readable.prototype.isPaused = function() {\n return this._readableState.flowing === false;\n };\n Readable.prototype.setEncoding = function(enc) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n this._readableState.encoding = this._readableState.decoder.encoding;\n var p = this._readableState.buffer.head;\n var content = "";\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== "")\n this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n };\n var MAX_HWM = 1073741824;\n function computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n }\n function howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended)\n return 0;\n if (state.objectMode)\n return 1;\n if (n !== n) {\n if (state.flowing && state.length)\n return state.buffer.head.data.length;\n else\n return state.length;\n }\n if (n > state.highWaterMark)\n state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length)\n return n;\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n }\n Readable.prototype.read = function(n) {\n debug("read", n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0)\n state.emittedReadable = false;\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug("read: emitReadable", state.length, state.ended);\n if (state.length === 0 && state.ended)\n endReadable(this);\n else\n emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n if (n === 0 && state.ended) {\n if (state.length === 0)\n endReadable(this);\n return null;\n }\n var doRead = state.needReadable;\n debug("need readable", doRead);\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug("length less than watermark", doRead);\n }\n if (state.ended || state.reading) {\n doRead = false;\n debug("reading or ended", doRead);\n } else if (doRead) {\n debug("do read");\n state.reading = true;\n state.sync = true;\n if (state.length === 0)\n state.needReadable = true;\n this._read(state.highWaterMark);\n state.sync = false;\n if (!state.reading)\n n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0)\n ret = fromList(n, state);\n else\n ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n if (!state.ended)\n state.needReadable = true;\n if (nOrig !== n && state.ended)\n endReadable(this);\n }\n if (ret !== null)\n this.emit("data", ret);\n return ret;\n };\n function onEofChunk(stream, state) {\n debug("onEofChunk");\n if (state.ended)\n return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n emitReadable(stream);\n } else {\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n }\n function emitReadable(stream) {\n var state = stream._readableState;\n debug("emitReadable", state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug("emitReadable", state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n }\n function emitReadable_(stream) {\n var state = stream._readableState;\n debug("emitReadable_", state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit("readable");\n state.emittedReadable = false;\n }\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n }\n function maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n }\n function maybeReadMore_(stream, state) {\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug("maybeReadMore read 0");\n stream.read(0);\n if (len === state.length)\n break;\n }\n state.readingMore = false;\n }\n Readable.prototype._read = function(n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED("_read()"));\n };\n Readable.prototype.pipe = function(dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug("pipe count=%d opts=%j", state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted)\n process.nextTick(endFn);\n else\n src.once("end", endFn);\n dest.on("unpipe", onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug("onunpipe");\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug("onend");\n dest.end();\n }\n var ondrain = pipeOnDrain(src);\n dest.on("drain", ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug("cleanup");\n dest.removeListener("close", onclose);\n dest.removeListener("finish", onfinish);\n dest.removeListener("drain", ondrain);\n dest.removeListener("error", onerror);\n dest.removeListener("unpipe", onunpipe);\n src.removeListener("end", onend);\n src.removeListener("end", unpipe);\n src.removeListener("data", ondata);\n cleanedUp = true;\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain))\n ondrain();\n }\n src.on("data", ondata);\n function ondata(chunk) {\n debug("ondata");\n var ret = dest.write(chunk);\n debug("dest.write", ret);\n if (ret === false) {\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug("false write response, pause", state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n function onerror(er) {\n debug("onerror", er);\n unpipe();\n dest.removeListener("error", onerror);\n if (EElistenerCount(dest, "error") === 0)\n errorOrDestroy(dest, er);\n }\n prependListener(dest, "error", onerror);\n function onclose() {\n dest.removeListener("finish", onfinish);\n unpipe();\n }\n dest.once("close", onclose);\n function onfinish() {\n debug("onfinish");\n dest.removeListener("close", onclose);\n unpipe();\n }\n dest.once("finish", onfinish);\n function unpipe() {\n debug("unpipe");\n src.unpipe(dest);\n }\n dest.emit("pipe", src);\n if (!state.flowing) {\n debug("pipe resume");\n src.resume();\n }\n return dest;\n };\n function pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug("pipeOnDrain", state.awaitDrain);\n if (state.awaitDrain)\n state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, "data")) {\n state.flowing = true;\n flow(src);\n }\n };\n }\n Readable.prototype.unpipe = function(dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n if (state.pipesCount === 0)\n return this;\n if (state.pipesCount === 1) {\n if (dest && dest !== state.pipes)\n return this;\n if (!dest)\n dest = state.pipes;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest)\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n }\n if (!dest) {\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) {\n dests[i].emit("unpipe", this, {\n hasUnpiped: false\n });\n }\n return this;\n }\n var index = indexOf(state.pipes, dest);\n if (index === -1)\n return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1)\n state.pipes = state.pipes[0];\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n };\n Readable.prototype.on = function(ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === "data") {\n state.readableListening = this.listenerCount("readable") > 0;\n if (state.flowing !== false)\n this.resume();\n } else if (ev === "readable") {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug("on readable", state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n };\n Readable.prototype.addListener = Readable.prototype.on;\n Readable.prototype.removeListener = function(ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === "readable") {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n Readable.prototype.removeAllListeners = function(ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === "readable" || ev === void 0) {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n function updateReadableListening(self2) {\n var state = self2._readableState;\n state.readableListening = self2.listenerCount("readable") > 0;\n if (state.resumeScheduled && !state.paused) {\n state.flowing = true;\n } else if (self2.listenerCount("data") > 0) {\n self2.resume();\n }\n }\n function nReadingNextTick(self2) {\n debug("readable nexttick read 0");\n self2.read(0);\n }\n Readable.prototype.resume = function() {\n var state = this._readableState;\n if (!state.flowing) {\n debug("resume");\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n };\n function resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n }\n function resume_(stream, state) {\n debug("resume", state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit("resume");\n flow(stream);\n if (state.flowing && !state.reading)\n stream.read(0);\n }\n Readable.prototype.pause = function() {\n debug("call pause flowing=%j", this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug("pause");\n this._readableState.flowing = false;\n this.emit("pause");\n }\n this._readableState.paused = true;\n return this;\n };\n function flow(stream) {\n var state = stream._readableState;\n debug("flow", state.flowing);\n while (state.flowing && stream.read() !== null) {\n ;\n }\n }\n Readable.prototype.wrap = function(stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on("end", function() {\n debug("wrapped end");\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length)\n _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on("data", function(chunk) {\n debug("wrapped data");\n if (state.decoder)\n chunk = state.decoder.write(chunk);\n if (state.objectMode && (chunk === null || chunk === void 0))\n return;\n else if (!state.objectMode && (!chunk || !chunk.length))\n return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n for (var i in stream) {\n if (this[i] === void 0 && typeof stream[i] === "function") {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n this._read = function(n2) {\n debug("wrapped _read", n2);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n };\n if (typeof Symbol === "function") {\n Readable.prototype[Symbol.asyncIterator] = function() {\n if (createReadableStreamAsyncIterator === void 0) {\n createReadableStreamAsyncIterator = require_async_iterator();\n }\n return createReadableStreamAsyncIterator(this);\n };\n }\n Object.defineProperty(Readable.prototype, "readableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n });\n Object.defineProperty(Readable.prototype, "readableBuffer", {\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n });\n Object.defineProperty(Readable.prototype, "readableFlowing", {\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n });\n Readable._fromList = fromList;\n Object.defineProperty(Readable.prototype, "readableLength", {\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n });\n function fromList(n, state) {\n if (state.length === 0)\n return null;\n var ret;\n if (state.objectMode)\n ret = state.buffer.shift();\n else if (!n || n >= state.length) {\n if (state.decoder)\n ret = state.buffer.join("");\n else if (state.buffer.length === 1)\n ret = state.buffer.first();\n else\n ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n }\n function endReadable(stream) {\n var state = stream._readableState;\n debug("endReadable", state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n }\n function endReadableNT(state, stream) {\n debug("endReadableNT", state.endEmitted, state.length);\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit("end");\n if (state.autoDestroy) {\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n }\n if (typeof Symbol === "function") {\n Readable.from = function(iterable, opts) {\n if (from === void 0) {\n from = require_from_browser();\n }\n return from(Readable, iterable, opts);\n };\n }\n function indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x)\n return i;\n }\n return -1;\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_transform.js\nvar require_stream_transform = __commonJS({\n "node_modules/readable-stream/lib/_stream_transform.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Transform;\n var _require$codes = require_errors_browser().codes;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING;\n var ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n var Duplex = require_stream_duplex();\n require_inherits_browser()(Transform, Duplex);\n function afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit("error", new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n }\n function Transform(options) {\n if (!(this instanceof Transform))\n return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n this._readableState.needReadable = true;\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === "function")\n this._transform = options.transform;\n if (typeof options.flush === "function")\n this._flush = options.flush;\n }\n this.on("prefinish", prefinish);\n }\n function prefinish() {\n var _this = this;\n if (typeof this._flush === "function" && !this._readableState.destroyed) {\n this._flush(function(er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n }\n Transform.prototype.push = function(chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n };\n Transform.prototype._transform = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_transform()"));\n };\n Transform.prototype._write = function(chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark)\n this._read(rs.highWaterMark);\n }\n };\n Transform.prototype._read = function(n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n ts.needTransform = true;\n }\n };\n Transform.prototype._destroy = function(err, cb) {\n Duplex.prototype._destroy.call(this, err, function(err2) {\n cb(err2);\n });\n };\n function done(stream, er, data) {\n if (er)\n return stream.emit("error", er);\n if (data != null)\n stream.push(data);\n if (stream._writableState.length)\n throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming)\n throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_passthrough.js\nvar require_stream_passthrough = __commonJS({\n "node_modules/readable-stream/lib/_stream_passthrough.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = PassThrough;\n var Transform = require_stream_transform();\n require_inherits_browser()(PassThrough, Transform);\n function PassThrough(options) {\n if (!(this instanceof PassThrough))\n return new PassThrough(options);\n Transform.call(this, options);\n }\n PassThrough.prototype._transform = function(chunk, encoding, cb) {\n cb(null, chunk);\n };\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/pipeline.js\nvar require_pipeline = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/pipeline.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var eos;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n callback.apply(void 0, arguments);\n };\n }\n var _require$codes = require_errors_browser().codes;\n var ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n function noop2(err) {\n if (err)\n throw err;\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on("close", function() {\n closed = true;\n });\n if (eos === void 0)\n eos = require_end_of_stream();\n eos(stream, {\n readable: reading,\n writable: writing\n }, function(err) {\n if (err)\n return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function(err) {\n if (closed)\n return;\n if (destroyed)\n return;\n destroyed = true;\n if (isRequest(stream))\n return stream.abort();\n if (typeof stream.destroy === "function")\n return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED("pipe"));\n };\n }\n function call(fn) {\n fn();\n }\n function pipe(from, to) {\n return from.pipe(to);\n }\n function popCallback(streams) {\n if (!streams.length)\n return noop2;\n if (typeof streams[streams.length - 1] !== "function")\n return noop2;\n return streams.pop();\n }\n function pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0]))\n streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS("streams");\n }\n var error;\n var destroys = streams.map(function(stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function(err) {\n if (!error)\n error = err;\n if (err)\n destroys.forEach(call);\n if (reading)\n return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n }\n module.exports = pipeline;\n }\n});\n\n// node_modules/readable-stream/readable-browser.js\nvar require_readable_browser = __commonJS({\n "node_modules/readable-stream/readable-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports = module.exports = require_stream_readable();\n exports.Stream = exports;\n exports.Readable = exports;\n exports.Writable = require_stream_writable();\n exports.Duplex = require_stream_duplex();\n exports.Transform = require_stream_transform();\n exports.PassThrough = require_stream_passthrough();\n exports.finished = require_end_of_stream();\n exports.pipeline = require_pipeline();\n }\n});\n\n// node_modules/readable-web-to-node-stream/lib/index.js\nvar require_lib = __commonJS({\n "node_modules/readable-web-to-node-stream/lib/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n Object.defineProperty(exports, "__esModule", { value: true });\n exports.ReadableWebToNodeStream = void 0;\n var readable_stream_1 = require_readable_browser();\n var ReadableWebToNodeStream2 = class extends readable_stream_1.Readable {\n constructor(stream) {\n super();\n this.bytesRead = 0;\n this.released = false;\n this.reader = stream.getReader();\n }\n async _read() {\n if (this.released) {\n this.push(null);\n return;\n }\n this.pendingRead = this.reader.read();\n const data = await this.pendingRead;\n delete this.pendingRead;\n if (data.done || this.released) {\n this.push(null);\n } else {\n this.bytesRead += data.value.length;\n this.push(data.value);\n }\n }\n async waitForReadToComplete() {\n if (this.pendingRead) {\n await this.pendingRead;\n }\n }\n async close() {\n await this.syncAndRelease();\n }\n async syncAndRelease() {\n this.released = true;\n await this.waitForReadToComplete();\n await this.reader.releaseLock();\n }\n };\n exports.ReadableWebToNodeStream = ReadableWebToNodeStream2;\n }\n});\n\n// node_modules/base-x/src/index.js\nvar require_src = __commonJS({\n "node_modules/base-x/src/index.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function base(ALPHABET) {\n if (ALPHABET.length >= 255) {\n throw new TypeError("Alphabet too long");\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + " is ambiguous");\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode2(source) {\n if (source instanceof Uint8Array) {\n } else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError("Expected Uint8Array");\n }\n if (source.length === 0) {\n return "";\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i2 = 0;\n for (var it1 = size - 1; (carry !== 0 || i2 < length) && it1 !== -1; it1--, i2++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== "string") {\n throw new TypeError("Expected String");\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i2 = 0;\n for (var it3 = size - 1; (carry !== 0 || i2 < length) && it3 !== -1; it3--, i2++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n psz++;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j2 = zeroes;\n while (it4 !== size) {\n vch[j2++] = b256[it4++];\n }\n return vch;\n }\n function decode3(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error("Non-base" + BASE + " character");\n }\n return {\n encode: encode2,\n decodeUnsafe,\n decode: decode3\n };\n }\n module.exports = base;\n }\n});\n\n// node_modules/bs58/index.js\nvar require_bs58 = __commonJS({\n "node_modules/bs58/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var basex = require_src();\n var ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";\n module.exports = basex(ALPHABET);\n }\n});\n\n// node_modules/jpeg-js/lib/encoder.js\nvar require_encoder = __commonJS({\n "node_modules/jpeg-js/lib/encoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var btoa = btoa || function(buf2) {\n return Buffer2.from(buf2).toString("base64");\n };\n function JPEGEncoder(quality) {\n var self2 = this;\n var fround = Math.round;\n var ffloor = Math.floor;\n var YTable = new Array(64);\n var UVTable = new Array(64);\n var fdtbl_Y = new Array(64);\n var fdtbl_UV = new Array(64);\n var YDC_HT2;\n var UVDC_HT2;\n var YAC_HT2;\n var UVAC_HT2;\n var bitcode2 = new Array(65535);\n var category2 = new Array(65535);\n var outputfDCTQuant = new Array(64);\n var DU = new Array(64);\n var byteout = [];\n var bytenew = 0;\n var bytepos = 7;\n var YDU = new Array(64);\n var UDU = new Array(64);\n var VDU = new Array(64);\n var clt = new Array(256);\n var RGB_YUV_TABLE = new Array(2048);\n var currentQuality;\n var ZigZag = [\n 0,\n 1,\n 5,\n 6,\n 14,\n 15,\n 27,\n 28,\n 2,\n 4,\n 7,\n 13,\n 16,\n 26,\n 29,\n 42,\n 3,\n 8,\n 12,\n 17,\n 25,\n 30,\n 41,\n 43,\n 9,\n 11,\n 18,\n 24,\n 31,\n 40,\n 44,\n 53,\n 10,\n 19,\n 23,\n 32,\n 39,\n 45,\n 52,\n 54,\n 20,\n 22,\n 33,\n 38,\n 46,\n 51,\n 55,\n 60,\n 21,\n 34,\n 37,\n 47,\n 50,\n 56,\n 59,\n 61,\n 35,\n 36,\n 48,\n 49,\n 57,\n 58,\n 62,\n 63\n ];\n var std_dc_luminance_nrcodes2 = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\n var std_dc_luminance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_luminance_nrcodes2 = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\n var std_ac_luminance_values2 = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n var std_dc_chrominance_nrcodes2 = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\n var std_dc_chrominance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_chrominance_nrcodes2 = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\n var std_ac_chrominance_values2 = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n function initQuantTables(sf) {\n var YQT = [\n 16,\n 11,\n 10,\n 16,\n 24,\n 40,\n 51,\n 61,\n 12,\n 12,\n 14,\n 19,\n 26,\n 58,\n 60,\n 55,\n 14,\n 13,\n 16,\n 24,\n 40,\n 57,\n 69,\n 56,\n 14,\n 17,\n 22,\n 29,\n 51,\n 87,\n 80,\n 62,\n 18,\n 22,\n 37,\n 56,\n 68,\n 109,\n 103,\n 77,\n 24,\n 35,\n 55,\n 64,\n 81,\n 104,\n 113,\n 92,\n 49,\n 64,\n 78,\n 87,\n 103,\n 121,\n 120,\n 101,\n 72,\n 92,\n 95,\n 98,\n 112,\n 100,\n 103,\n 99\n ];\n for (var i = 0; i < 64; i++) {\n var t = ffloor((YQT[i] * sf + 50) / 100);\n if (t < 1) {\n t = 1;\n } else if (t > 255) {\n t = 255;\n }\n YTable[ZigZag[i]] = t;\n }\n var UVQT = [\n 17,\n 18,\n 24,\n 47,\n 99,\n 99,\n 99,\n 99,\n 18,\n 21,\n 26,\n 66,\n 99,\n 99,\n 99,\n 99,\n 24,\n 26,\n 56,\n 99,\n 99,\n 99,\n 99,\n 99,\n 47,\n 66,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99\n ];\n for (var j = 0; j < 64; j++) {\n var u = ffloor((UVQT[j] * sf + 50) / 100);\n if (u < 1) {\n u = 1;\n } else if (u > 255) {\n u = 255;\n }\n UVTable[ZigZag[j]] = u;\n }\n var aasf = [\n 1,\n 1.387039845,\n 1.306562965,\n 1.175875602,\n 1,\n 0.785694958,\n 0.5411961,\n 0.275899379\n ];\n var k = 0;\n for (var row = 0; row < 8; row++) {\n for (var col = 0; col < 8; col++) {\n fdtbl_Y[k] = 1 / (YTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n fdtbl_UV[k] = 1 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n k++;\n }\n }\n }\n function computeHuffmanTbl(nrcodes, std_table) {\n var codevalue = 0;\n var pos_in_table = 0;\n var HT = new Array();\n for (var k = 1; k <= 16; k++) {\n for (var j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n function initHuffmanTbl() {\n YDC_HT2 = computeHuffmanTbl(std_dc_luminance_nrcodes2, std_dc_luminance_values2);\n UVDC_HT2 = computeHuffmanTbl(std_dc_chrominance_nrcodes2, std_dc_chrominance_values2);\n YAC_HT2 = computeHuffmanTbl(std_ac_luminance_nrcodes2, std_ac_luminance_values2);\n UVAC_HT2 = computeHuffmanTbl(std_ac_chrominance_nrcodes2, std_ac_chrominance_values2);\n }\n function initCategoryNumber() {\n var nrlower = 1;\n var nrupper = 2;\n for (var cat = 1; cat <= 15; cat++) {\n for (var nr = nrlower; nr < nrupper; nr++) {\n category2[32767 + nr] = cat;\n bitcode2[32767 + nr] = [];\n bitcode2[32767 + nr][1] = cat;\n bitcode2[32767 + nr][0] = nr;\n }\n for (var nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category2[32767 + nrneg] = cat;\n bitcode2[32767 + nrneg] = [];\n bitcode2[32767 + nrneg][1] = cat;\n bitcode2[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n }\n function initRGBYUVTable() {\n for (var i = 0; i < 256; i++) {\n RGB_YUV_TABLE[i] = 19595 * i;\n RGB_YUV_TABLE[i + 256 >> 0] = 38470 * i;\n RGB_YUV_TABLE[i + 512 >> 0] = 7471 * i + 32768;\n RGB_YUV_TABLE[i + 768 >> 0] = -11059 * i;\n RGB_YUV_TABLE[i + 1024 >> 0] = -21709 * i;\n RGB_YUV_TABLE[i + 1280 >> 0] = 32768 * i + 8421375;\n RGB_YUV_TABLE[i + 1536 >> 0] = -27439 * i;\n RGB_YUV_TABLE[i + 1792 >> 0] = -5329 * i;\n }\n }\n function writeBits(bs) {\n var value = bs[0];\n var posval = bs[1] - 1;\n while (posval >= 0) {\n if (value & 1 << posval) {\n bytenew |= 1 << bytepos;\n }\n posval--;\n bytepos--;\n if (bytepos < 0) {\n if (bytenew == 255) {\n writeByte(255);\n writeByte(0);\n } else {\n writeByte(bytenew);\n }\n bytepos = 7;\n bytenew = 0;\n }\n }\n }\n function writeByte(value) {\n byteout.push(value);\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function fDCTQuant(data, fdtbl) {\n var d0, d1, d2, d3, d4, d5, d6, d7;\n var dataOff = 0;\n var i;\n var I8 = 8;\n var I64 = 64;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 1];\n d2 = data[dataOff + 2];\n d3 = data[dataOff + 3];\n d4 = data[dataOff + 4];\n d5 = data[dataOff + 5];\n d6 = data[dataOff + 6];\n d7 = data[dataOff + 7];\n var tmp0 = d0 + d7;\n var tmp7 = d0 - d7;\n var tmp1 = d1 + d6;\n var tmp6 = d1 - d6;\n var tmp2 = d2 + d5;\n var tmp5 = d2 - d5;\n var tmp3 = d3 + d4;\n var tmp4 = d3 - d4;\n var tmp10 = tmp0 + tmp3;\n var tmp13 = tmp0 - tmp3;\n var tmp11 = tmp1 + tmp2;\n var tmp12 = tmp1 - tmp2;\n data[dataOff] = tmp10 + tmp11;\n data[dataOff + 4] = tmp10 - tmp11;\n var z1 = (tmp12 + tmp13) * 0.707106781;\n data[dataOff + 2] = tmp13 + z1;\n data[dataOff + 6] = tmp13 - z1;\n tmp10 = tmp4 + tmp5;\n tmp11 = tmp5 + tmp6;\n tmp12 = tmp6 + tmp7;\n var z5 = (tmp10 - tmp12) * 0.382683433;\n var z2 = 0.5411961 * tmp10 + z5;\n var z4 = 1.306562965 * tmp12 + z5;\n var z3 = tmp11 * 0.707106781;\n var z11 = tmp7 + z3;\n var z13 = tmp7 - z3;\n data[dataOff + 5] = z13 + z2;\n data[dataOff + 3] = z13 - z2;\n data[dataOff + 1] = z11 + z4;\n data[dataOff + 7] = z11 - z4;\n dataOff += 8;\n }\n dataOff = 0;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 8];\n d2 = data[dataOff + 16];\n d3 = data[dataOff + 24];\n d4 = data[dataOff + 32];\n d5 = data[dataOff + 40];\n d6 = data[dataOff + 48];\n d7 = data[dataOff + 56];\n var tmp0p2 = d0 + d7;\n var tmp7p2 = d0 - d7;\n var tmp1p2 = d1 + d6;\n var tmp6p2 = d1 - d6;\n var tmp2p2 = d2 + d5;\n var tmp5p2 = d2 - d5;\n var tmp3p2 = d3 + d4;\n var tmp4p2 = d3 - d4;\n var tmp10p2 = tmp0p2 + tmp3p2;\n var tmp13p2 = tmp0p2 - tmp3p2;\n var tmp11p2 = tmp1p2 + tmp2p2;\n var tmp12p2 = tmp1p2 - tmp2p2;\n data[dataOff] = tmp10p2 + tmp11p2;\n data[dataOff + 32] = tmp10p2 - tmp11p2;\n var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781;\n data[dataOff + 16] = tmp13p2 + z1p2;\n data[dataOff + 48] = tmp13p2 - z1p2;\n tmp10p2 = tmp4p2 + tmp5p2;\n tmp11p2 = tmp5p2 + tmp6p2;\n tmp12p2 = tmp6p2 + tmp7p2;\n var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433;\n var z2p2 = 0.5411961 * tmp10p2 + z5p2;\n var z4p2 = 1.306562965 * tmp12p2 + z5p2;\n var z3p2 = tmp11p2 * 0.707106781;\n var z11p2 = tmp7p2 + z3p2;\n var z13p2 = tmp7p2 - z3p2;\n data[dataOff + 40] = z13p2 + z2p2;\n data[dataOff + 24] = z13p2 - z2p2;\n data[dataOff + 8] = z11p2 + z4p2;\n data[dataOff + 56] = z11p2 - z4p2;\n dataOff++;\n }\n var fDCTQuant2;\n for (i = 0; i < I64; ++i) {\n fDCTQuant2 = data[i] * fdtbl[i];\n outputfDCTQuant[i] = fDCTQuant2 > 0 ? fDCTQuant2 + 0.5 | 0 : fDCTQuant2 - 0.5 | 0;\n }\n return outputfDCTQuant;\n }\n function writeAPP0() {\n writeWord(65504);\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n }\n function writeAPP1(exifBuffer) {\n if (!exifBuffer)\n return;\n writeWord(65505);\n if (exifBuffer[0] === 69 && exifBuffer[1] === 120 && exifBuffer[2] === 105 && exifBuffer[3] === 102) {\n writeWord(exifBuffer.length + 2);\n } else {\n writeWord(exifBuffer.length + 5 + 2);\n writeByte(69);\n writeByte(120);\n writeByte(105);\n writeByte(102);\n writeByte(0);\n }\n for (var i = 0; i < exifBuffer.length; i++) {\n writeByte(exifBuffer[i]);\n }\n }\n function writeSOF0(width, height) {\n writeWord(65472);\n writeWord(17);\n writeByte(8);\n writeWord(height);\n writeWord(width);\n writeByte(3);\n writeByte(1);\n writeByte(17);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(1);\n writeByte(3);\n writeByte(17);\n writeByte(1);\n }\n function writeDQT() {\n writeWord(65499);\n writeWord(132);\n writeByte(0);\n for (var i = 0; i < 64; i++) {\n writeByte(YTable[i]);\n }\n writeByte(1);\n for (var j = 0; j < 64; j++) {\n writeByte(UVTable[j]);\n }\n }\n function writeDHT() {\n writeWord(65476);\n writeWord(418);\n writeByte(0);\n for (var i = 0; i < 16; i++) {\n writeByte(std_dc_luminance_nrcodes2[i + 1]);\n }\n for (var j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values2[j]);\n }\n writeByte(16);\n for (var k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes2[k + 1]);\n }\n for (var l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values2[l]);\n }\n writeByte(1);\n for (var m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes2[m + 1]);\n }\n for (var n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values2[n]);\n }\n writeByte(17);\n for (var o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes2[o + 1]);\n }\n for (var p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values2[p]);\n }\n }\n function writeCOM(comments) {\n if (typeof comments === "undefined" || comments.constructor !== Array)\n return;\n comments.forEach((e) => {\n if (typeof e !== "string")\n return;\n writeWord(65534);\n var l = e.length;\n writeWord(l + 2);\n var i;\n for (i = 0; i < l; i++)\n writeByte(e.charCodeAt(i));\n });\n }\n function writeSOS() {\n writeWord(65498);\n writeWord(12);\n writeByte(3);\n writeByte(1);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(3);\n writeByte(17);\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(CDU, fdtbl, DC, HTDC, HTAC) {\n var EOB = HTAC[0];\n var M16zeroes = HTAC[240];\n var pos;\n var I16 = 16;\n var I63 = 63;\n var I64 = 64;\n var DU_DCT = fDCTQuant(CDU, fdtbl);\n for (var j = 0; j < I64; ++j) {\n DU[ZigZag[j]] = DU_DCT[j];\n }\n var Diff = DU[0] - DC;\n DC = DU[0];\n if (Diff == 0) {\n writeBits(HTDC[0]);\n } else {\n pos = 32767 + Diff;\n writeBits(HTDC[category2[pos]]);\n writeBits(bitcode2[pos]);\n }\n var end0pos = 63;\n for (; end0pos > 0 && DU[end0pos] == 0; end0pos--) {\n }\n ;\n if (end0pos == 0) {\n writeBits(EOB);\n return DC;\n }\n var i = 1;\n var lng;\n while (i <= end0pos) {\n var startpos = i;\n for (; DU[i] == 0 && i <= end0pos; ++i) {\n }\n var nrzeroes = i - startpos;\n if (nrzeroes >= I16) {\n lng = nrzeroes >> 4;\n for (var nrmarker = 1; nrmarker <= lng; ++nrmarker)\n writeBits(M16zeroes);\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + DU[i];\n writeBits(HTAC[(nrzeroes << 4) + category2[pos]]);\n writeBits(bitcode2[pos]);\n i++;\n }\n if (end0pos != I63) {\n writeBits(EOB);\n }\n return DC;\n }\n function initCharLookupTable() {\n var sfcc = String.fromCharCode;\n for (var i = 0; i < 256; i++) {\n clt[i] = sfcc(i);\n }\n }\n this.encode = function(image, quality2) {\n var time_start = new Date().getTime();\n if (quality2)\n setQuality(quality2);\n byteout = new Array();\n bytenew = 0;\n bytepos = 7;\n writeWord(65496);\n writeAPP0();\n writeCOM(image.comments);\n writeAPP1(image.exifBuffer);\n writeDQT();\n writeSOF0(image.width, image.height);\n writeDHT();\n writeSOS();\n var DCY = 0;\n var DCU = 0;\n var DCV = 0;\n bytenew = 0;\n bytepos = 7;\n this.encode.displayName = "_encode_";\n var imageData = image.data;\n var width = image.width;\n var height = image.height;\n var quadWidth = width * 4;\n var tripleWidth = width * 3;\n var x, y = 0;\n var r, g, b;\n var start, p, col, row, pos;\n while (y < height) {\n x = 0;\n while (x < quadWidth) {\n start = quadWidth * y + x;\n p = start;\n col = -1;\n row = 0;\n for (pos = 0; pos < 64; pos++) {\n row = pos >> 3;\n col = (pos & 7) * 4;\n p = start + row * quadWidth + col;\n if (y + row >= height) {\n p -= quadWidth * (y + 1 + row - height);\n }\n if (x + col >= quadWidth) {\n p -= x + col - quadWidth + 4;\n }\n r = imageData[p++];\n g = imageData[p++];\n b = imageData[p++];\n YDU[pos] = (RGB_YUV_TABLE[r] + RGB_YUV_TABLE[g + 256 >> 0] + RGB_YUV_TABLE[b + 512 >> 0] >> 16) - 128;\n UDU[pos] = (RGB_YUV_TABLE[r + 768 >> 0] + RGB_YUV_TABLE[g + 1024 >> 0] + RGB_YUV_TABLE[b + 1280 >> 0] >> 16) - 128;\n VDU[pos] = (RGB_YUV_TABLE[r + 1280 >> 0] + RGB_YUV_TABLE[g + 1536 >> 0] + RGB_YUV_TABLE[b + 1792 >> 0] >> 16) - 128;\n }\n DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT2, YAC_HT2);\n DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT2, UVAC_HT2);\n DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT2, UVAC_HT2);\n x += 32;\n }\n y += 8;\n }\n if (bytepos >= 0) {\n var fillbits = [];\n fillbits[1] = bytepos + 1;\n fillbits[0] = (1 << bytepos + 1) - 1;\n writeBits(fillbits);\n }\n writeWord(65497);\n if (typeof module === "undefined")\n return new Uint8Array(byteout);\n return Buffer2.from(byteout);\n var jpegDataUri = "data:image/jpeg;base64," + btoa(byteout.join(""));\n byteout = [];\n var duration = new Date().getTime() - time_start;\n return jpegDataUri;\n };\n function setQuality(quality2) {\n if (quality2 <= 0) {\n quality2 = 1;\n }\n if (quality2 > 100) {\n quality2 = 100;\n }\n if (currentQuality == quality2)\n return;\n var sf = 0;\n if (quality2 < 50) {\n sf = Math.floor(5e3 / quality2);\n } else {\n sf = Math.floor(200 - quality2 * 2);\n }\n initQuantTables(sf);\n currentQuality = quality2;\n }\n function init3() {\n var time_start = new Date().getTime();\n if (!quality)\n quality = 50;\n initCharLookupTable();\n initHuffmanTbl();\n initCategoryNumber();\n initRGBYUVTable();\n setQuality(quality);\n var duration = new Date().getTime() - time_start;\n }\n init3();\n }\n if (typeof module !== "undefined") {\n module.exports = encode2;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].encode = encode2;\n }\n function encode2(imgData, qu) {\n if (typeof qu === "undefined")\n qu = 50;\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(imgData, qu);\n return {\n data,\n width: imgData.width,\n height: imgData.height\n };\n }\n }\n});\n\n// node_modules/jpeg-js/lib/decoder.js\nvar require_decoder = __commonJS({\n "node_modules/jpeg-js/lib/decoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var JpegImage = function jpegImage() {\n "use strict";\n var dctZigZag = new Int32Array([\n 0,\n 1,\n 8,\n 16,\n 9,\n 2,\n 3,\n 10,\n 17,\n 24,\n 32,\n 25,\n 18,\n 11,\n 4,\n 5,\n 12,\n 19,\n 26,\n 33,\n 40,\n 48,\n 41,\n 34,\n 27,\n 20,\n 13,\n 6,\n 7,\n 14,\n 21,\n 28,\n 35,\n 42,\n 49,\n 56,\n 57,\n 50,\n 43,\n 36,\n 29,\n 22,\n 15,\n 23,\n 30,\n 37,\n 44,\n 51,\n 58,\n 59,\n 52,\n 45,\n 38,\n 31,\n 39,\n 46,\n 53,\n 60,\n 61,\n 54,\n 47,\n 55,\n 62,\n 63\n ]);\n var dctCos1 = 4017;\n var dctSin1 = 799;\n var dctCos3 = 3406;\n var dctSin3 = 2276;\n var dctCos6 = 1567;\n var dctSin6 = 3784;\n var dctSqrt2 = 5793;\n var dctSqrt1d2 = 2896;\n function constructor() {\n }\n function buildHuffmanTable2(codeLengths, values) {\n var k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n var p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n }\n function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive, opts) {\n var precision = frame.precision;\n var samplesPerLine = frame.samplesPerLine;\n var scanLines = frame.scanLines;\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\n var maxH = frame.maxH, maxV = frame.maxV;\n var startOffset = offset, bitsData = 0, bitsCount = 0;\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return bitsData >> bitsCount & 1;\n }\n bitsData = data[offset++];\n if (bitsData == 255) {\n var nextByte = data[offset++];\n if (nextByte) {\n throw new Error("unexpected marker: " + (bitsData << 8 | nextByte).toString(16));\n }\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n function decodeHuffman(tree) {\n var node = tree, bit;\n while ((bit = readBit()) !== null) {\n node = node[bit];\n if (typeof node === "number")\n return node;\n if (typeof node !== "object")\n throw new Error("invalid huffman sequence");\n }\n return null;\n }\n function receive(length) {\n var n2 = 0;\n while (length > 0) {\n var bit = readBit();\n if (bit === null)\n return;\n n2 = n2 << 1 | bit;\n length--;\n }\n return n2;\n }\n function receiveAndExtend(length) {\n var n2 = receive(length);\n if (n2 >= 1 << length - 1)\n return n2;\n return n2 + (-1 << length) + 1;\n }\n function decodeBaseline(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t);\n zz[0] = component2.pred += diff;\n var k2 = 1;\n while (k2 < 64) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15)\n break;\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s);\n k2++;\n }\n }\n function decodeDCFirst(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n zz[0] = component2.pred += diff;\n }\n function decodeDCSuccessive(component2, zz) {\n zz[0] |= readBit() << successive;\n }\n var eobrun = 0;\n function decodeACFirst(component2, zz) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n var k2 = spectralStart, e = spectralEnd;\n while (k2 <= e) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s) * (1 << successive);\n k2++;\n }\n }\n var successiveACState = 0, successiveACNextValue;\n function decodeACSuccessive(component2, zz) {\n var k2 = spectralStart, e = spectralEnd, r = 0;\n while (k2 <= e) {\n var z = dctZigZag[k2];\n var direction = zz[z] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0:\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1)\n throw new Error("invalid ACn encoding");\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1:\n case 2:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n r--;\n if (r === 0)\n successiveACState = successiveACState == 2 ? 3 : 0;\n }\n break;\n case 3:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n zz[z] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n break;\n }\n k2++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0)\n successiveACState = 0;\n }\n }\n function decodeMcu(component2, decode4, mcu2, row, col) {\n var mcuRow = mcu2 / mcusPerLine | 0;\n var mcuCol = mcu2 % mcusPerLine;\n var blockRow = mcuRow * component2.v + row;\n var blockCol = mcuCol * component2.h + col;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n function decodeBlock(component2, decode4, mcu2) {\n var blockRow = mcu2 / component2.blocksPerLine | 0;\n var blockCol = mcu2 % component2.blocksPerLine;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n var componentsLength = components.length;\n var component, i, j, k, n;\n var decodeFn;\n if (progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n var mcu = 0, marker;\n var mcuExpected;\n if (componentsLength == 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n if (!resetInterval)\n resetInterval = mcuExpected;\n var h, v;\n while (mcu < mcuExpected) {\n for (i = 0; i < componentsLength; i++)\n components[i].pred = 0;\n eobrun = 0;\n if (componentsLength == 1) {\n component = components[0];\n for (n = 0; n < resetInterval; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < resetInterval; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n if (mcu === mcuExpected)\n break;\n }\n }\n if (mcu === mcuExpected) {\n do {\n if (data[offset] === 255) {\n if (data[offset + 1] !== 0) {\n break;\n }\n }\n offset += 1;\n } while (offset < data.length - 2);\n }\n bitsCount = 0;\n marker = data[offset] << 8 | data[offset + 1];\n if (marker < 65280) {\n throw new Error("marker was not found");\n }\n if (marker >= 65488 && marker <= 65495) {\n offset += 2;\n } else\n break;\n }\n return offset - startOffset;\n }\n function buildComponentData(frame, component) {\n var lines = [];\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var samplesPerLine = blocksPerLine << 3;\n var R = new Int32Array(64), r = new Uint8Array(64);\n function quantizeAndInverse(zz, dataOut, dataIn) {\n var qt = component.quantizationTable;\n var v0, v1, v2, v3, v4, v5, v6, v7, t;\n var p = dataIn;\n var i2;\n for (i2 = 0; i2 < 64; i2++)\n p[i2] = zz[i2] * qt[i2];\n for (i2 = 0; i2 < 8; ++i2) {\n var row = 8 * i2;\n if (p[1 + row] == 0 && p[2 + row] == 0 && p[3 + row] == 0 && p[4 + row] == 0 && p[5 + row] == 0 && p[6 + row] == 0 && p[7 + row] == 0) {\n t = dctSqrt2 * p[0 + row] + 512 >> 10;\n p[0 + row] = t;\n p[1 + row] = t;\n p[2 + row] = t;\n p[3 + row] = t;\n p[4 + row] = t;\n p[5 + row] = t;\n p[6 + row] = t;\n p[7 + row] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 + row] + 128 >> 8;\n v1 = dctSqrt2 * p[4 + row] + 128 >> 8;\n v2 = p[2 + row];\n v3 = p[6 + row];\n v4 = dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128 >> 8;\n v7 = dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128 >> 8;\n v5 = p[3 + row] << 4;\n v6 = p[5 + row] << 4;\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 + row] = v0 + v7;\n p[7 + row] = v0 - v7;\n p[1 + row] = v1 + v6;\n p[6 + row] = v1 - v6;\n p[2 + row] = v2 + v5;\n p[5 + row] = v2 - v5;\n p[3 + row] = v3 + v4;\n p[4 + row] = v3 - v4;\n }\n for (i2 = 0; i2 < 8; ++i2) {\n var col = i2;\n if (p[1 * 8 + col] == 0 && p[2 * 8 + col] == 0 && p[3 * 8 + col] == 0 && p[4 * 8 + col] == 0 && p[5 * 8 + col] == 0 && p[6 * 8 + col] == 0 && p[7 * 8 + col] == 0) {\n t = dctSqrt2 * dataIn[i2 + 0] + 8192 >> 14;\n p[0 * 8 + col] = t;\n p[1 * 8 + col] = t;\n p[2 * 8 + col] = t;\n p[3 * 8 + col] = t;\n p[4 * 8 + col] = t;\n p[5 * 8 + col] = t;\n p[6 * 8 + col] = t;\n p[7 * 8 + col] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 * 8 + col] + 2048 >> 12;\n v1 = dctSqrt2 * p[4 * 8 + col] + 2048 >> 12;\n v2 = p[2 * 8 + col];\n v3 = p[6 * 8 + col];\n v4 = dctSqrt1d2 * (p[1 * 8 + col] - p[7 * 8 + col]) + 2048 >> 12;\n v7 = dctSqrt1d2 * (p[1 * 8 + col] + p[7 * 8 + col]) + 2048 >> 12;\n v5 = p[3 * 8 + col];\n v6 = p[5 * 8 + col];\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 * 8 + col] = v0 + v7;\n p[7 * 8 + col] = v0 - v7;\n p[1 * 8 + col] = v1 + v6;\n p[6 * 8 + col] = v1 - v6;\n p[2 * 8 + col] = v2 + v5;\n p[5 * 8 + col] = v2 - v5;\n p[3 * 8 + col] = v3 + v4;\n p[4 * 8 + col] = v3 - v4;\n }\n for (i2 = 0; i2 < 64; ++i2) {\n var sample2 = 128 + (p[i2] + 8 >> 4);\n dataOut[i2] = sample2 < 0 ? 0 : sample2 > 255 ? 255 : sample2;\n }\n }\n requestMemoryAllocation(samplesPerLine * blocksPerColumn * 8);\n var i, j;\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n var scanLine = blockRow << 3;\n for (i = 0; i < 8; i++)\n lines.push(new Uint8Array(samplesPerLine));\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n quantizeAndInverse(component.blocks[blockRow][blockCol], r, R);\n var offset = 0, sample = blockCol << 3;\n for (j = 0; j < 8; j++) {\n var line = lines[scanLine + j];\n for (i = 0; i < 8; i++)\n line[sample + i] = r[offset++];\n }\n }\n }\n return lines;\n }\n function clampTo8bit(a) {\n return a < 0 ? 0 : a > 255 ? 255 : a;\n }\n constructor.prototype = {\n load: function load(path) {\n var xhr = new XMLHttpRequest();\n xhr.open("GET", path, true);\n xhr.responseType = "arraybuffer";\n xhr.onload = function() {\n var data = new Uint8Array(xhr.response || xhr.mozResponseArrayBuffer);\n this.parse(data);\n if (this.onload)\n this.onload();\n }.bind(this);\n xhr.send(null);\n },\n parse: function parse(data) {\n var maxResolutionInPixels = this.opts.maxResolutionInMP * 1e3 * 1e3;\n var offset = 0, length = data.length;\n function readUint16() {\n var value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n var length2 = readUint16();\n var array = data.subarray(offset, offset + length2 - 2);\n offset += array.length;\n return array;\n }\n function prepareComponents(frame2) {\n var maxH2 = 1, maxV2 = 1;\n var component2, componentId2;\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n if (maxH2 < component2.h)\n maxH2 = component2.h;\n if (maxV2 < component2.v)\n maxV2 = component2.v;\n }\n }\n var mcusPerLine = Math.ceil(frame2.samplesPerLine / 8 / maxH2);\n var mcusPerColumn = Math.ceil(frame2.scanLines / 8 / maxV2);\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n var blocksPerLine = Math.ceil(Math.ceil(frame2.samplesPerLine / 8) * component2.h / maxH2);\n var blocksPerColumn = Math.ceil(Math.ceil(frame2.scanLines / 8) * component2.v / maxV2);\n var blocksPerLineForMcu = mcusPerLine * component2.h;\n var blocksPerColumnForMcu = mcusPerColumn * component2.v;\n var blocksToAllocate = blocksPerColumnForMcu * blocksPerLineForMcu;\n var blocks = [];\n requestMemoryAllocation(blocksToAllocate * 256);\n for (var i2 = 0; i2 < blocksPerColumnForMcu; i2++) {\n var row = [];\n for (var j2 = 0; j2 < blocksPerLineForMcu; j2++)\n row.push(new Int32Array(64));\n blocks.push(row);\n }\n component2.blocksPerLine = blocksPerLine;\n component2.blocksPerColumn = blocksPerColumn;\n component2.blocks = blocks;\n }\n }\n frame2.maxH = maxH2;\n frame2.maxV = maxV2;\n frame2.mcusPerLine = mcusPerLine;\n frame2.mcusPerColumn = mcusPerColumn;\n }\n var jfif = null;\n var adobe = null;\n var pixels = null;\n var frame, resetInterval;\n var quantizationTables = [], frames = [];\n var huffmanTablesAC = [], huffmanTablesDC = [];\n var fileMarker = readUint16();\n var malformedDataOffset = -1;\n this.comments = [];\n if (fileMarker != 65496) {\n throw new Error("SOI not found");\n }\n fileMarker = readUint16();\n while (fileMarker != 65497) {\n var i, j, l;\n switch (fileMarker) {\n case 65280:\n break;\n case 65504:\n case 65505:\n case 65506:\n case 65507:\n case 65508:\n case 65509:\n case 65510:\n case 65511:\n case 65512:\n case 65513:\n case 65514:\n case 65515:\n case 65516:\n case 65517:\n case 65518:\n case 65519:\n case 65534:\n var appData = readDataBlock();\n if (fileMarker === 65534) {\n var comment = String.fromCharCode.apply(null, appData);\n this.comments.push(comment);\n }\n if (fileMarker === 65504) {\n if (appData[0] === 74 && appData[1] === 70 && appData[2] === 73 && appData[3] === 70 && appData[4] === 0) {\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: appData[8] << 8 | appData[9],\n yDensity: appData[10] << 8 | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n };\n }\n }\n if (fileMarker === 65505) {\n if (appData[0] === 69 && appData[1] === 120 && appData[2] === 105 && appData[3] === 102 && appData[4] === 0) {\n this.exifBuffer = appData.subarray(5, appData.length);\n }\n }\n if (fileMarker === 65518) {\n if (appData[0] === 65 && appData[1] === 100 && appData[2] === 111 && appData[3] === 98 && appData[4] === 101 && appData[5] === 0) {\n adobe = {\n version: appData[6],\n flags0: appData[7] << 8 | appData[8],\n flags1: appData[9] << 8 | appData[10],\n transformCode: appData[11]\n };\n }\n }\n break;\n case 65499:\n var quantizationTablesLength = readUint16();\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n requestMemoryAllocation(64 * 4);\n var tableData = new Int32Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = readUint16();\n }\n } else\n throw new Error("DQT: invalid table spec");\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n case 65472:\n case 65473:\n case 65474:\n readUint16();\n frame = {};\n frame.extended = fileMarker === 65473;\n frame.progressive = fileMarker === 65474;\n frame.precision = data[offset++];\n frame.scanLines = readUint16();\n frame.samplesPerLine = readUint16();\n frame.components = {};\n frame.componentsOrder = [];\n var pixelsInFrame = frame.scanLines * frame.samplesPerLine;\n if (pixelsInFrame > maxResolutionInPixels) {\n var exceededAmount = Math.ceil((pixelsInFrame - maxResolutionInPixels) / 1e6);\n throw new Error(`maxResolutionInMP limit exceeded by ${exceededAmount}MP`);\n }\n var componentsCount = data[offset++], componentId;\n var maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n var h = data[offset + 1] >> 4;\n var v = data[offset + 1] & 15;\n var qId = data[offset + 2];\n if (h <= 0 || v <= 0) {\n throw new Error("Invalid sampling factor, expected values above 0");\n }\n frame.componentsOrder.push(componentId);\n frame.components[componentId] = {\n h,\n v,\n quantizationIdx: qId\n };\n offset += 3;\n }\n prepareComponents(frame);\n frames.push(frame);\n break;\n case 65476:\n var huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n requestMemoryAllocation(16 + codeLengthSum);\n var huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable2(codeLengths, huffmanValues);\n }\n break;\n case 65501:\n readUint16();\n resetInterval = readUint16();\n break;\n case 65500:\n readUint16();\n readUint16();\n break;\n case 65498:\n var scanLength = readUint16();\n var selectorsCount = data[offset++];\n var components = [], component;\n for (i = 0; i < selectorsCount; i++) {\n component = frame.components[data[offset++]];\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n var processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, this.opts);\n offset += processed;\n break;\n case 65535:\n if (data[offset] !== 255) {\n offset--;\n }\n break;\n default:\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n break;\n } else if (fileMarker === 224 || fileMarker == 225) {\n if (malformedDataOffset !== -1) {\n throw new Error(`first unknown JPEG marker at offset ${malformedDataOffset.toString(16)}, second unknown JPEG marker ${fileMarker.toString(16)} at offset ${(offset - 1).toString(16)}`);\n }\n malformedDataOffset = offset - 1;\n const nextOffset = readUint16();\n if (data[offset + nextOffset - 2] === 255) {\n offset += nextOffset - 2;\n break;\n }\n }\n throw new Error("unknown JPEG marker " + fileMarker.toString(16));\n }\n fileMarker = readUint16();\n }\n if (frames.length != 1)\n throw new Error("only single frame JPEGs supported");\n for (var i = 0; i < frames.length; i++) {\n var cp = frames[i].components;\n for (var j in cp) {\n cp[j].quantizationTable = quantizationTables[cp[j].quantizationIdx];\n delete cp[j].quantizationIdx;\n }\n }\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (var i = 0; i < frame.componentsOrder.length; i++) {\n var component = frame.components[frame.componentsOrder[i]];\n this.components.push({\n lines: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV\n });\n }\n },\n getData: function getData(width, height) {\n var scaleX = this.width / width, scaleY = this.height / height;\n var component1, component2, component3, component4;\n var component1Line, component2Line, component3Line, component4Line;\n var x, y;\n var offset = 0;\n var Y, Cb, Cr, K, C, M, Ye, R, G, B;\n var colorTransform;\n var dataLength = width * height * this.components.length;\n requestMemoryAllocation(dataLength);\n var data = new Uint8Array(dataLength);\n switch (this.components.length) {\n case 1:\n component1 = this.components[0];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 2:\n component1 = this.components[0];\n component2 = this.components[1];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n Y = component2Line[0 | x * component2.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 3:\n colorTransform = true;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n R = component1Line[0 | x * component1.scaleX * scaleX];\n G = component2Line[0 | x * component2.scaleX * scaleX];\n B = component3Line[0 | x * component3.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n R = clampTo8bit(Y + 1.402 * (Cr - 128));\n G = clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n B = clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = R;\n data[offset++] = G;\n data[offset++] = B;\n }\n }\n break;\n case 4:\n if (!this.adobe)\n throw new Error("Unsupported color mode (4 components)");\n colorTransform = false;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n component4 = this.components[3];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n component4Line = component4.lines[0 | y * component4.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n C = component1Line[0 | x * component1.scaleX * scaleX];\n M = component2Line[0 | x * component2.scaleX * scaleX];\n Ye = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n C = 255 - clampTo8bit(Y + 1.402 * (Cr - 128));\n M = 255 - clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n Ye = 255 - clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = 255 - C;\n data[offset++] = 255 - M;\n data[offset++] = 255 - Ye;\n data[offset++] = 255 - K;\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n return data;\n },\n copyToImageData: function copyToImageData(imageData, formatAsRGBA) {\n var width = imageData.width, height = imageData.height;\n var imageDataArray = imageData.data;\n var data = this.getData(width, height);\n var i = 0, j = 0, x, y;\n var Y, K, C, M, R, G, B;\n switch (this.components.length) {\n case 1:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n Y = data[i++];\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 3:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n R = data[i++];\n G = data[i++];\n B = data[i++];\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 4:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n C = data[i++];\n M = data[i++];\n Y = data[i++];\n K = data[i++];\n R = 255 - clampTo8bit(C * (1 - K / 255) + K);\n G = 255 - clampTo8bit(M * (1 - K / 255) + K);\n B = 255 - clampTo8bit(Y * (1 - K / 255) + K);\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n }\n };\n var totalBytesAllocated = 0;\n var maxMemoryUsageBytes = 0;\n function requestMemoryAllocation(increaseAmount = 0) {\n var totalMemoryImpactBytes = totalBytesAllocated + increaseAmount;\n if (totalMemoryImpactBytes > maxMemoryUsageBytes) {\n var exceededAmount = Math.ceil((totalMemoryImpactBytes - maxMemoryUsageBytes) / 1024 / 1024);\n throw new Error(`maxMemoryUsageInMB limit exceeded by at least ${exceededAmount}MB`);\n }\n totalBytesAllocated = totalMemoryImpactBytes;\n }\n constructor.resetMaxMemoryUsage = function(maxMemoryUsageBytes_) {\n totalBytesAllocated = 0;\n maxMemoryUsageBytes = maxMemoryUsageBytes_;\n };\n constructor.getBytesAllocated = function() {\n return totalBytesAllocated;\n };\n constructor.requestMemoryAllocation = requestMemoryAllocation;\n return constructor;\n }();\n if (typeof module !== "undefined") {\n module.exports = decode3;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].decode = decode3;\n }\n function decode3(jpegData, userOpts = {}) {\n var defaultOpts = {\n colorTransform: void 0,\n useTArray: false,\n formatAsRGBA: true,\n tolerantDecoding: true,\n maxResolutionInMP: 100,\n maxMemoryUsageInMB: 512\n };\n var opts = { ...defaultOpts, ...userOpts };\n var arr = new Uint8Array(jpegData);\n var decoder = new JpegImage();\n decoder.opts = opts;\n JpegImage.resetMaxMemoryUsage(opts.maxMemoryUsageInMB * 1024 * 1024);\n decoder.parse(arr);\n var channels = opts.formatAsRGBA ? 4 : 3;\n var bytesNeeded = decoder.width * decoder.height * channels;\n try {\n JpegImage.requestMemoryAllocation(bytesNeeded);\n var image = {\n width: decoder.width,\n height: decoder.height,\n exifBuffer: decoder.exifBuffer,\n data: opts.useTArray ? new Uint8Array(bytesNeeded) : Buffer2.alloc(bytesNeeded)\n };\n if (decoder.comments.length > 0) {\n image["comments"] = decoder.comments;\n }\n } catch (err) {\n if (err instanceof RangeError) {\n throw new Error("Could not allocate enough memory for the image. Required: " + bytesNeeded);\n }\n if (err instanceof ReferenceError) {\n if (err.message === "Buffer is not defined") {\n throw new Error("Buffer is not globally defined in this environment. Consider setting useTArray to true");\n }\n }\n throw err;\n }\n decoder.copyToImageData(image, opts.formatAsRGBA);\n return image;\n }\n }\n});\n\n// node_modules/jpeg-js/index.js\nvar require_jpeg_js = __commonJS({\n "node_modules/jpeg-js/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var encode2 = require_encoder();\n var decode3 = require_decoder();\n module.exports = {\n encode: encode2,\n decode: decode3\n };\n }\n});\n\n// src/processor.worker.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/platform.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/requests.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar xmlhttprequest;\nif (false)\n xmlhttprequest = typeof GM_xmlhttpRequest != "undefined" ? GM_xmlhttpRequest : typeof GM != "undefined" ? GM.xmlHttpRequest : window["GM_xmlhttpRequest"];\nvar GM_fetch = (...[url, opt, lisn]) => {\n function blobTo(to, blob) {\n if (to == "arrayBuffer" && blob.arrayBuffer) {\n const ret = blob.arrayBuffer();\n if (ret)\n return ret;\n }\n return new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.onload = function(event) {\n if (!event)\n return;\n if (to == "base64")\n resolve(event.target.result);\n else\n resolve(event.target.result);\n };\n if (to == "arrayBuffer")\n fileReader.readAsArrayBuffer(blob);\n else if (to == "base64")\n fileReader.readAsDataURL(blob);\n else if (to == "text")\n fileReader.readAsText(blob, "utf-8");\n else\n reject(new Error("unknown to"));\n });\n }\n return new Promise((resolve, reject) => {\n const gmopt = {\n url: url.toString(),\n data: opt?.body,\n responseType: "blob",\n headers: opt?.headers,\n method: opt?.method || "GET",\n ...lisn ? {\n onprogress: (prog) => {\n if (prog.loaded != prog.total && prog.total != 0)\n lisn.dispatchEvent(new CustomEvent("progress", { detail: [prog.loaded, prog.total] }));\n }\n } : {},\n onload: (resp) => {\n if (resp.status / 100 >= 4) {\n reject(new Error("Server Error: " + resp.status));\n return;\n }\n const blob = resp.response;\n const ref = resp;\n ref.blob = () => Promise.resolve(blob);\n ref.arrayBuffer = () => blobTo("arrayBuffer", blob);\n ref.text = () => blobTo("text", blob);\n ref.json = async () => JSON.parse(await blobTo("text", blob));\n resolve(resp);\n },\n ontimeout: () => reject(new Error("fetch timeout")),\n onerror: (...args) => {\n reject(new Error("fetch error"));\n },\n onabort: () => reject(new Error("fetch abort"))\n };\n xmlhttprequest(gmopt);\n });\n};\n\n// src/platform.ts\nvar lqueue = {};\nvar localSet = (key2, value) => localStorage.setItem("__pee__" + key2, JSON.stringify(value));\nvar port1;\nconsole.log("worker", false);\nvar msgBuff = [];\nvar setupPort = (port) => {\n port1 = port;\n port1.onmessage = (ev) => {\n lqueue[ev.data.id](ev.data);\n };\n if (true) {\n for (const msg of msgBuff) {\n port.postMessage(msg[0], { transfer: msg[1] });\n }\n msgBuff = [];\n }\n};\nif (true) {\n port1 = {\n onmessage(ev) {\n lqueue[ev.data.id](ev.data);\n },\n postMessage(msg, tr) {\n msgBuff.push([msg, tr]);\n }\n };\n}\nvar gid = 0;\nvar sendCmd = (cmd, tr, overwrite = false, todelete = false) => {\n const prom = new Promise((_) => {\n const id = gid++;\n if (overwrite)\n cmd.id = id;\n lqueue[id] = (e) => {\n _(e.res);\n if (todelete)\n delete lqueue[id];\n };\n port1.postMessage({ id, ...cmd }, tr || []);\n });\n return prom;\n};\nvar bridge = (name, f) => {\n if (false)\n return f;\n if (false)\n return f;\n return (...args) => {\n return sendCmd({ name, args });\n };\n};\nvar Bridged = (ctor) => {\n const keys = Object.getOwnPropertyNames(ctor).filter((k) => typeof ctor[k] == "function");\n for (const k of keys)\n ctor[k] = bridge(k, ctor[k]);\n};\nif (false) {\n popupport = chrome.runtime.connect({ name: "popup" });\n popupport.onMessage.addListener((msg) => {\n if (msg.id in pendingcmds) {\n pendingcmds[msg.id](msg);\n delete pendingcmds[msg.id];\n }\n });\n}\nvar Platform = class {\n static async openInTab(src, opts) {\n if (false) {\n return GM.openInTab(src, opts);\n }\n const obj = false ? chrome : browser;\n let i;\n if (opts.insert)\n i = (await obj.tabs.getCurrent()).index + 1;\n return obj.tabs.create({ active: opts.active, url: src, index: i });\n }\n static async getValue(key2, def) {\n const isinls = "__pee__" + key2 in localStorage;\n let ret;\n if (isinls) {\n let it = localStorage.getItem("__pee__" + key2);\n if (it === "undefined")\n it = null;\n ret = { ...def, ...JSON.parse(it || "{}") };\n } else\n ret = def;\n if (true) {\n if (isinls) {\n delete localStorage["__pee__" + key2];\n await chrome.storage.local.set({\n [key2]: JSON.stringify(ret)\n });\n } else {\n const d = await chrome.storage.local.get([key2]);\n if (typeof d[key2] == "string")\n return { ...def, ...await JSON.parse("" + d[key2] || "{}") };\n }\n }\n return ret;\n }\n static setValue(name, val) {\n localSet(name, val);\n }\n};\nPlatform.cmdid = 0;\nPlatform = __decorateClass([\n Bridged\n], Platform);\nvar corsFetch = async (input, init3, lsn) => {\n const id = gid++;\n let transfer = [];\n if (init3?.body) {\n if (false) {\n [init3.body, transfer] = await braveserialize(init3.body);\n }\n }\n const prom = new Promise((_, rej) => {\n let gcontroller;\n let buffer = [];\n let finished = false;\n const rs = new ReadableStream({\n start(controller) {\n gcontroller = controller;\n buffer.forEach((b) => gcontroller?.enqueue(b));\n buffer = [];\n if (finished) {\n gcontroller.close();\n }\n }\n });\n let s;\n s = 0;\n const cmdbuff = [];\n lqueue[id] = async (e) => {\n if (e.progress) {\n if (lsn)\n lsn.dispatchEvent(new CustomEvent("progress", { detail: e.progress }));\n }\n if (e.pushData) {\n if (e.s > s) {\n let idx = 0;\n while (idx < cmdbuff.length) {\n if (cmdbuff[idx].s > e.s)\n break;\n idx++;\n }\n cmdbuff.splice(idx, 0, e);\n return;\n }\n const processCmd = (e2) => {\n if (e2.pushData.data) {\n const data = new Uint8Array(e2.pushData.data);\n if (gcontroller)\n gcontroller.enqueue(data);\n else\n buffer.push(data);\n } else {\n if (gcontroller)\n gcontroller?.close();\n else\n finished = true;\n }\n };\n await processCmd(e);\n s++;\n while (cmdbuff[0]?.s == s) {\n await processCmd(cmdbuff.shift());\n s++;\n }\n }\n if (e.setRes) {\n const arrayBuffer = async () => {\n const r = rs.getReader();\n await sendCmd({ name: "fullyRead", fid: id });\n const abs = [];\n let res;\n do {\n res = await r.read();\n if (res.done)\n break;\n abs.push(res.value);\n } while (!res.done);\n const sum = abs.reduce((a, b) => a + b.byteLength, 0);\n const ret = new Uint8Array(sum);\n abs.reduce((ptr, arr) => {\n ret.set(arr, ptr);\n return ptr + arr.byteLength;\n }, 0);\n r.releaseLock();\n return ret;\n };\n const blob = async () => new Blob([await arrayBuffer()]);\n const text = async () => new TextDecoder().decode(await arrayBuffer());\n const json = async () => JSON.parse(await text());\n if (e.ok)\n _({\n body: rs,\n ok: e.ok,\n headers: e.headers,\n redirected: e.redirected,\n type: e.type,\n url: e.url,\n status: e.status,\n bodyUsed: e.bodyUsed,\n statusText: e.statusText,\n clone() {\n return this;\n },\n arrayBuffer,\n blob,\n text,\n json,\n async formData() {\n return new FormData();\n }\n });\n else {\n rej(new Error(`${e.url} - ${e.status}`));\n }\n }\n };\n port1.postMessage({\n id,\n name: "corsFetch",\n args: [input, init3]\n }, transfer);\n });\n return prom;\n};\nasync function getHeaders(s) {\n if (false)\n return headerStringToObject(await GM_head(s));\n const res = await ifetch(s, {\n method: "HEAD"\n });\n return res.headers;\n}\nasync function ifetch(...[url, opt, lisn]) {\n if (true)\n return corsFetch(url.toString(), opt, lisn);\n return GM_fetch(url, opt, lisn);\n}\nasync function* streamRemote(url, chunkSize = 72 * 1024, fetchRestOnNonCanceled = true) {\n let size = Number.POSITIVE_INFINITY;\n let ptr = 0;\n let fetchSize = chunkSize;\n while (ptr != size) {\n let obj;\n const fres = await ifetch(url, { headers: { range: `bytes=${ptr}-${ptr + fetchSize - 1}` } });\n if (false) {\n obj = headerStringToObject(fres.responseHeaders);\n } else {\n obj = fres.headers;\n }\n if (!("content-length" in obj)) {\n console.warn("no content lenght???", url);\n break;\n }\n if ("content-range" in obj) {\n size = +obj["content-range"].split("/")[1];\n }\n const len = +obj["content-length"];\n ptr += len;\n if (fetchRestOnNonCanceled)\n fetchSize = size;\n const val = Buffer2.from(await fres.arrayBuffer());\n const e = yield val;\n if (e) {\n break;\n }\n }\n}\n\n// src/stores.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/store/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/internal/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction noop() {\n}\nfunction run(fn) {\n return fn();\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === "function";\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || (a && typeof a === "object" || typeof a === "function");\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nvar resolved_promise = Promise.resolve();\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nvar SvelteElement;\nif (typeof HTMLElement === "function") {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: "open" });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n for (const key2 in this.$$.slotted) {\n this.appendChild(this.$$.slotted[key2]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []);\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n\n// node_modules/svelte/store/index.mjs\nvar subscriber_queue = [];\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = /* @__PURE__ */ new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) {\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe2(run2, invalidate = noop) {\n const subscriber = [run2, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run2(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe: subscribe2 };\n}\n\n// src/stores.ts\nvar localLoad = async (key2, def) => {\n const ret = await Platform.getValue(key2, def);\n return ret;\n};\nvar localSet2 = (key2, value) => {\n if (true) {\n return;\n }\n if (true)\n chrome.storage.local.set({ [key2]: JSON.stringify(value) });\n else\n localStorage.setItem("__pee__" + key2, JSON.stringify(value));\n};\nvar initial_settings = {\n loop: true,\n dh: false,\n pmeth: 5,\n xpv: false,\n xpi: false,\n hyd: false,\n notcata: false,\n ak: "",\n auto_embed: 0,\n auto_tags: "",\n te: false,\n eye: false,\n ca: false,\n pre: false,\n prev: false,\n sh: false,\n ep: false,\n tm: false,\n dvc: false,\n expte: false,\n mdist: -1,\n phash: false,\n hotlink: false,\n jpeg: false,\n vercheck: false,\n cache: void 0,\n fhost: 0,\n maxe: 5,\n conc: 8,\n ho: false,\n blacklist: [],\n rsources: []\n};\nvar settings = writable();\nvar appState = writable({\n isCatalog: false,\n is4chanX: false,\n akValid: false,\n herror: "",\n client: null,\n processing: 0,\n processed: 0,\n foundPosts: []\n});\nsettings.subscribe((newVal) => {\n if (newVal)\n localSet2("settingsv2", newVal);\n});\n\n// src/pngv3.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer3 = __toESM(require_buffer(), 1);\n\n// src/png.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_crc_32 = __toESM(require_crc32(), 1);\nvar import_buffer = __toESM(require_buffer(), 1);\nvar PNGDecoder = class {\n constructor(reader, strict = true) {\n this.reader = reader;\n this.strict = strict;\n this.req = 8;\n this.ptr = 8;\n this.stopped = false;\n this.repr = import_buffer.Buffer.from([]);\n }\n async catchup() {\n while (this.repr.byteLength < this.req) {\n const chunk = await this.reader.read();\n if (chunk.done) {\n if (this.strict)\n throw new Error(`Unexpected EOF, got ${this.repr.byteLength}, required ${this.req}, ${chunk.value}`);\n this.stopped = true;\n return;\n }\n this.repr = import_buffer.Buffer.concat([this.repr, chunk.value]);\n }\n }\n async *chunks() {\n while (true) {\n this.req += 8;\n await this.catchup();\n if (this.stopped)\n break;\n const length = this.repr.readUInt32BE(this.ptr);\n const name = this.repr.slice(this.ptr + 4, this.ptr + 8).toString();\n this.ptr += 4;\n this.req += length + 4;\n await this.catchup();\n yield [\n name,\n this.repr.slice(this.ptr, this.ptr + length + 4),\n this.ptr + length > this.repr.length ? -1 : this.repr.readUInt32BE(this.ptr + length + 4),\n this.ptr\n ];\n if (this.stopped)\n break;\n this.ptr += length + 8;\n if (name == "IEND")\n break;\n }\n }\n async dtor() {\n }\n};\nvar PNGEncoder = class {\n constructor(bytes) {\n this.writer = bytes.getWriter();\n this.writer.write(import_buffer.Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]));\n }\n async insertchunk(chunk) {\n let b = import_buffer.Buffer.alloc(4);\n const buff = chunk[1];\n b.writeInt32BE(buff.length - 4, 0);\n await this.writer.write(b);\n await this.writer.write(buff);\n b = import_buffer.Buffer.alloc(4);\n b.writeInt32BE((0, import_crc_32.buf)(buff), 0);\n await this.writer.write(b);\n }\n async dtor() {\n this.writer.releaseLock();\n }\n};\n\n// src/utils.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer2 = __toESM(require_buffer(), 1);\n\n// src/assets/hasembed.png\nvar hasembed_default = __toBinary("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");\n\n// src/filehosts.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction parseForm(data) {\n const form = new FormData();\n Object.entries(data).filter(([key2, value]) => value !== null).map(([key2, value]) => form.append(key2, value));\n return form;\n}\nvar lolisafe = (domain, serving = domain) => ({\n domain,\n serving,\n async uploadFile(f) {\n const resp = await ifetch(`https://${domain}/api/upload`, {\n headers: {\n accept: "application/json"\n },\n "body": parseForm({\n reqtype: "fileupload",\n "files[]": new File([f], "f.pee")\n }),\n "method": "POST"\n });\n const res = await resp.json();\n return res.files.map((e) => e.url)[0];\n }\n});\nvar catbox = (domain, serving) => ({\n domain,\n serving,\n async uploadFile(inj) {\n const resp = await ifetch(`https://${domain}/user/api.php`, {\n method: "POST",\n body: parseForm({\n reqtype: "fileupload",\n fileToUpload: inj\n })\n });\n return resp.text();\n }\n});\nvar filehosts = [\n catbox("catbox.moe", "files.catbox.moe"),\n catbox("pomf.moe", "a.pomf.cat"),\n lolisafe("take-me-to.space"),\n lolisafe("zz.ht", "z.zz.fo")\n];\n\n// node_modules/file-type/browser.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer4 = __toESM(require_buffer(), 1);\nvar import_readable_web_to_node_stream = __toESM(require_lib(), 1);\n\n// node_modules/file-type/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer3 = __toESM(require_buffer(), 1);\n\n// node_modules/token-types/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar ieee754 = __toESM(require_ieee754(), 1);\nvar import_node_buffer = __toESM(require_buffer(), 1);\nvar AnsiStringType = class {\n constructor(len) {\n this.len = len;\n }\n static decode(buffer, offset, until) {\n let str = "";\n for (let i = offset; i < until; ++i) {\n str += AnsiStringType.codePointToString(AnsiStringType.singleByteDecoder(buffer[i]));\n }\n return str;\n }\n static inRange(a, min, max) {\n return min <= a && a <= max;\n }\n static codePointToString(cp) {\n if (cp <= 65535) {\n return String.fromCharCode(cp);\n } else {\n cp -= 65536;\n return String.fromCharCode((cp >> 10) + 55296, (cp & 1023) + 56320);\n }\n }\n static singleByteDecoder(bite) {\n if (AnsiStringType.inRange(bite, 0, 127)) {\n return bite;\n }\n const codePoint = AnsiStringType.windows1252[bite - 128];\n if (codePoint === null) {\n throw Error("invaliding encoding");\n }\n return codePoint;\n }\n get(buffer, offset = 0) {\n return AnsiStringType.decode(buffer, offset, offset + this.len);\n }\n};\nAnsiStringType.windows1252 = [\n 8364,\n 129,\n 8218,\n 402,\n 8222,\n 8230,\n 8224,\n 8225,\n 710,\n 8240,\n 352,\n 8249,\n 338,\n 141,\n 381,\n 143,\n 144,\n 8216,\n 8217,\n 8220,\n 8221,\n 8226,\n 8211,\n 8212,\n 732,\n 8482,\n 353,\n 8250,\n 339,\n 157,\n 382,\n 376,\n 160,\n 161,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 171,\n 172,\n 173,\n 174,\n 175,\n 176,\n 177,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 187,\n 188,\n 189,\n 190,\n 191,\n 192,\n 193,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 203,\n 204,\n 205,\n 206,\n 207,\n 208,\n 209,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 219,\n 220,\n 221,\n 222,\n 223,\n 224,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 235,\n 236,\n 237,\n 238,\n 239,\n 240,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250,\n 251,\n 252,\n 253,\n 254,\n 255\n];\n\n// node_modules/strtok3/lib/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/ReadStreamTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/EndOfFileStream.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/Deferred.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\nvar maxStreamReadSize = 1 * 1024 * 1024;\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\nvar import_node_buffer2 = __toESM(require_buffer(), 1);\n\n// node_modules/strtok3/lib/BufferTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/util.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/supported.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar extensions = [\n "jpg",\n "png",\n "apng",\n "gif",\n "webp",\n "flif",\n "xcf",\n "cr2",\n "cr3",\n "orf",\n "arw",\n "dng",\n "nef",\n "rw2",\n "raf",\n "tif",\n "bmp",\n "icns",\n "jxr",\n "psd",\n "indd",\n "zip",\n "tar",\n "rar",\n "gz",\n "bz2",\n "7z",\n "dmg",\n "mp4",\n "mid",\n "mkv",\n "webm",\n "mov",\n "avi",\n "mpg",\n "mp2",\n "mp3",\n "m4a",\n "oga",\n "ogg",\n "ogv",\n "opus",\n "flac",\n "wav",\n "spx",\n "amr",\n "pdf",\n "epub",\n "elf",\n "exe",\n "swf",\n "rtf",\n "wasm",\n "woff",\n "woff2",\n "eot",\n "ttf",\n "otf",\n "ico",\n "flv",\n "ps",\n "xz",\n "sqlite",\n "nes",\n "crx",\n "xpi",\n "cab",\n "deb",\n "ar",\n "rpm",\n "Z",\n "lz",\n "cfb",\n "mxf",\n "mts",\n "blend",\n "bpg",\n "docx",\n "pptx",\n "xlsx",\n "3gp",\n "3g2",\n "jp2",\n "jpm",\n "jpx",\n "mj2",\n "aif",\n "qcp",\n "odt",\n "ods",\n "odp",\n "xml",\n "mobi",\n "heic",\n "cur",\n "ktx",\n "ape",\n "wv",\n "dcm",\n "ics",\n "glb",\n "pcap",\n "dsf",\n "lnk",\n "alias",\n "voc",\n "ac3",\n "m4v",\n "m4p",\n "m4b",\n "f4v",\n "f4p",\n "f4b",\n "f4a",\n "mie",\n "asf",\n "ogm",\n "ogx",\n "mpc",\n "arrow",\n "shp",\n "aac",\n "mp1",\n "it",\n "s3m",\n "xm",\n "ai",\n "skp",\n "avif",\n "eps",\n "lzh",\n "pgp",\n "asar",\n "stl",\n "chm",\n "3mf",\n "zst",\n "jxl",\n "vcf"\n];\nvar mimeTypes = [\n "image/jpeg",\n "image/png",\n "image/gif",\n "image/webp",\n "image/flif",\n "image/x-xcf",\n "image/x-canon-cr2",\n "image/x-canon-cr3",\n "image/tiff",\n "image/bmp",\n "image/vnd.ms-photo",\n "image/vnd.adobe.photoshop",\n "application/x-indesign",\n "application/epub+zip",\n "application/x-xpinstall",\n "application/vnd.oasis.opendocument.text",\n "application/vnd.oasis.opendocument.spreadsheet",\n "application/vnd.oasis.opendocument.presentation",\n "application/vnd.openxmlformats-officedocument.wordprocessingml.document",\n "application/vnd.openxmlformats-officedocument.presentationml.presentation",\n "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",\n "application/zip",\n "application/x-tar",\n "application/x-rar-compressed",\n "application/gzip",\n "application/x-bzip2",\n "application/x-7z-compressed",\n "application/x-apple-diskimage",\n "application/x-apache-arrow",\n "video/mp4",\n "audio/midi",\n "video/x-matroska",\n "video/webm",\n "video/quicktime",\n "video/vnd.avi",\n "audio/vnd.wave",\n "audio/qcelp",\n "audio/x-ms-asf",\n "video/x-ms-asf",\n "application/vnd.ms-asf",\n "video/mpeg",\n "video/3gpp",\n "audio/mpeg",\n "audio/mp4",\n "audio/opus",\n "video/ogg",\n "audio/ogg",\n "application/ogg",\n "audio/x-flac",\n "audio/ape",\n "audio/wavpack",\n "audio/amr",\n "application/pdf",\n "application/x-elf",\n "application/x-msdownload",\n "application/x-shockwave-flash",\n "application/rtf",\n "application/wasm",\n "font/woff",\n "font/woff2",\n "application/vnd.ms-fontobject",\n "font/ttf",\n "font/otf",\n "image/x-icon",\n "video/x-flv",\n "application/postscript",\n "application/eps",\n "application/x-xz",\n "application/x-sqlite3",\n "application/x-nintendo-nes-rom",\n "application/x-google-chrome-extension",\n "application/vnd.ms-cab-compressed",\n "application/x-deb",\n "application/x-unix-archive",\n "application/x-rpm",\n "application/x-compress",\n "application/x-lzip",\n "application/x-cfb",\n "application/x-mie",\n "application/mxf",\n "video/mp2t",\n "application/x-blender",\n "image/bpg",\n "image/jp2",\n "image/jpx",\n "image/jpm",\n "image/mj2",\n "audio/aiff",\n "application/xml",\n "application/x-mobipocket-ebook",\n "image/heif",\n "image/heif-sequence",\n "image/heic",\n "image/heic-sequence",\n "image/icns",\n "image/ktx",\n "application/dicom",\n "audio/x-musepack",\n "text/calendar",\n "text/vcard",\n "model/gltf-binary",\n "application/vnd.tcpdump.pcap",\n "audio/x-dsf",\n "application/x.ms.shortcut",\n "application/x.apple.alias",\n "audio/x-voc",\n "audio/vnd.dolby.dd-raw",\n "audio/x-m4a",\n "image/apng",\n "image/x-olympus-orf",\n "image/x-sony-arw",\n "image/x-adobe-dng",\n "image/x-nikon-nef",\n "image/x-panasonic-rw2",\n "image/x-fujifilm-raf",\n "video/x-m4v",\n "video/3gpp2",\n "application/x-esri-shape",\n "audio/aac",\n "audio/x-it",\n "audio/x-s3m",\n "audio/x-xm",\n "video/MP1S",\n "video/MP2P",\n "application/vnd.sketchup.skp",\n "image/avif",\n "application/x-lzh-compressed",\n "application/pgp-encrypted",\n "application/x-asar",\n "model/stl",\n "application/vnd.ms-htmlhelp",\n "model/3mf",\n "image/jxl",\n "application/zstd"\n];\n\n// node_modules/file-type/core.js\nvar supportedExtensions = new Set(extensions);\nvar supportedMimeTypes = new Set(mimeTypes);\n\n// src/utils.ts\nvar csettings;\nsettings.subscribe((b) => {\n csettings = b;\n});\nvar threadDataCache = writable();\nvar cthreadDataCache;\nthreadDataCache.subscribe((newval) => {\n cthreadDataCache = newval;\n});\nvar decodeCoom3Payload = async (buff) => {\n if (!csettings)\n throw new Error("Settings uninit");\n const allowed_domains = filehosts.map((e) => e.serving.replaceAll(".", "\\\\."));\n const pees = buff.toString().split(" ").slice(0, csettings.maxe).filter((e) => allowed_domains.some((v) => e.match(`https://(.*\\\\.)?${v}/`)));\n return (await Promise.all(pees.map(async (pee) => {\n try {\n const m = pee.match(/(?https?):\\/\\/(?.*?)(?\\/.*)/);\n if (!m)\n return;\n const { domain, file } = m.groups;\n const headers = await getHeaders(pee);\n const res = await ifetch(pee, {\n headers: { range: "bytes=0-32767", "user-agent": "" },\n mode: "cors",\n referrerPolicy: "no-referrer"\n });\n const size = +headers["content-length"] || 0;\n const header = import_buffer2.Buffer.from(await res.arrayBuffer());\n let hptr = 0;\n if (header.slice(0, 4).toString() == "PEE\\0")\n hptr += 4;\n else\n return;\n const flags = header[hptr];\n const hasFn = !!(flags & 1);\n const hasTags = !!(flags & 2);\n const hasThumbnail = !!(flags & 4);\n let [ptr, ptr2] = [hptr + 1, hptr + 1];\n let fn = "embedded";\n let tags = [];\n let thumb = import_buffer2.Buffer.from(hasembed_default);\n if (hasFn) {\n while (header[ptr2] != 0)\n ptr2++;\n fn = header.slice(ptr, ptr2).toString();\n ptr = ++ptr2;\n }\n if (hasTags) {\n while (header[ptr2] != 0)\n ptr2++;\n tags = header.slice(ptr, ptr2).toString().split(/\\s+/);\n }\n let thumbsize = 0;\n if (hasThumbnail) {\n thumbsize = header.readInt32LE(ptr);\n ptr += 4;\n if (header.byteLength >= ptr + thumbsize)\n thumb = header.slice(ptr, ptr + thumbsize);\n else\n thumb = import_buffer2.Buffer.from(await (await ifetch(pee, { headers: { "user-agent": "", range: `bytes=${ptr}-${ptr + thumbsize}` } })).arrayBuffer());\n ptr += thumbsize;\n }\n const unzip = { url: pee, headers: { "user-agent": "", range: `bytes=${ptr}-${size - 1}` } };\n let data;\n data = unzip;\n if (size < 3072) {\n thumb = data = import_buffer2.Buffer.from(await (await ifetch(unzip.url, { headers: unzip.headers })).arrayBuffer());\n }\n return {\n filename: fn,\n data,\n thumbnail: thumb\n };\n } catch (e) {\n console.warn(e);\n }\n }))).filter((e) => e).map((e) => e);\n};\n\n// src/pngv3.ts\nvar bs58 = __toESM(require_bs58(), 1);\n\n// src/bitstream.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar revbyte = (n, len = 8) => {\n let acc = 0;\n let n2 = n;\n let len2 = len;\n while (len2) {\n acc = acc * 2 + (n2 & 1);\n n2 >>= 1;\n len2--;\n }\n return acc;\n};\nvar BitstreamReader = class {\n constructor() {\n this.buffers = [];\n this.bufferedLength = 0;\n this._offsetIntoBuffer = 0;\n this._bufferIndex = 0;\n this._offset = 0;\n this.skippedLength = 0;\n }\n get bufferIndex() {\n return this._bufferIndex;\n }\n get offset() {\n return this._offset;\n }\n get available() {\n return this.bufferedLength - this.skippedLength;\n }\n getBit(offset) {\n const byte = this.buffers[0][offset >> 3];\n return +!!(byte & 1 << (offset & 7));\n }\n readSync(length) {\n let value = 0;\n if (this._offset >> 3 > this.buffers[0].byteLength) {\n throw "Out of data";\n }\n for (let i = length - 1; i >= 0; --i) {\n value = value * 2 + this.getBit(this._offset + i);\n }\n this._offset += length;\n this.bufferedLength -= length;\n return value;\n }\n addBuffer(buffer) {\n this.buffers.push(buffer);\n this.bufferedLength += buffer.length * 8;\n }\n};\nvar BitstreamWriter = class {\n constructor(stream, bufferSize = 1) {\n this.stream = stream;\n this.pendingBits = 0;\n this.bufferoffset = 0;\n this._offset = 0;\n bufferSize = 1;\n this.buffer = new Uint8Array(bufferSize);\n }\n get offset() {\n return this._offset;\n }\n get byteOffset() {\n return this.pendingBits;\n }\n end() {\n this.flush();\n }\n flush() {\n this.stream.write(new Uint8Array(this.buffer));\n this.bufferoffset = 0;\n this.buffer.fill(0);\n }\n setBit(b) {\n let byte = this.buffer[0];\n byte |= b << (this._offset & 7);\n this.buffer[0] = byte;\n this._offset += 1;\n if (++this.bufferoffset == this.buffer.length * 8) {\n this.flush();\n }\n }\n write(length, value) {\n while (length--) {\n this.setBit(value & 1);\n value >>= 1;\n }\n }\n};\n\n// src/dh-deflate.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar TINF_OK = 0;\nvar Tree = class {\n constructor() {\n this.table = new Uint16Array(16);\n this.trans = new Uint16Array(288);\n }\n};\nvar getPathTo = (tree, value) => {\n if (tree[0] === value)\n return "0";\n if (tree[1] === value)\n return "1";\n let p;\n if (typeof tree[0] != "number")\n p = getPathTo(tree[0], value);\n let b = "0";\n if (!p) {\n if (tree[1] && typeof tree[1] != "number")\n p = getPathTo(tree[1], value);\n b = "1";\n }\n if (p)\n return b + p;\n};\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n let p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n}\nvar Data = class {\n constructor(source, dests, to_hide, hidden) {\n this.source = source;\n this.dests = dests;\n this.to_hide = to_hide;\n this.hidden = hidden;\n this.pathMap = /* @__PURE__ */ new Map();\n this.dest = [];\n this.ltree = new Tree();\n this.dtree = new Tree();\n }\n computeReverse() {\n this.rltree = buildHuffmanTable(this.ltree.table, this.ltree.trans)[0];\n this.rdtree = buildHuffmanTable(this.dtree.table, this.dtree.trans)[0];\n this.adists = new Set(this.rdtree.flat(16));\n }\n};\nvar sltree = new Tree();\nvar sdtree = new Tree();\nvar rltree;\nvar rdtree;\nvar sadist;\nvar length_bits = new Uint8Array(30);\nvar length_base = new Uint16Array(30);\nvar dist_bits = new Uint8Array(30);\nvar dist_base = new Uint16Array(30);\nvar clcidx = new Uint8Array([\n 16,\n 17,\n 18,\n 0,\n 8,\n 7,\n 9,\n 6,\n 10,\n 5,\n 11,\n 4,\n 12,\n 3,\n 13,\n 2,\n 14,\n 1,\n 15\n]);\nvar code_tree = new Tree();\nvar lengths = new Uint8Array(288 + 32);\nfunction tinf_build_bits_base(bits, base, delta, first) {\n let i, sum;\n for (i = 0; i < delta; ++i)\n bits[i] = 0;\n for (i = 0; i < 30 - delta; ++i)\n bits[i + delta] = i / delta | 0;\n for (sum = first, i = 0; i < 30; ++i) {\n base[i] = sum;\n sum += 1 << bits[i];\n }\n}\nfunction tinf_build_fixed_trees(lt, dt) {\n let i;\n for (i = 0; i < 7; ++i)\n lt.table[i] = 0;\n lt.table[7] = 24;\n lt.table[8] = 152;\n lt.table[9] = 112;\n for (i = 0; i < 24; ++i)\n lt.trans[i] = 256 + i;\n for (i = 0; i < 144; ++i)\n lt.trans[24 + i] = i;\n for (i = 0; i < 8; ++i)\n lt.trans[24 + 144 + i] = 280 + i;\n for (i = 0; i < 112; ++i)\n lt.trans[24 + 144 + 8 + i] = 144 + i;\n for (i = 0; i < 5; ++i)\n dt.table[i] = 0;\n dt.table[5] = 32;\n for (i = 0; i < 32; ++i)\n dt.trans[i] = i;\n}\nvar offs = new Uint16Array(16);\nfunction tinf_build_tree(t, lengths2, off, num) {\n let i, sum;\n for (i = 0; i < 16; ++i)\n t.table[i] = 0;\n for (i = 0; i < num; ++i)\n t.table[lengths2[off + i]]++;\n t.table[0] = 0;\n for (sum = 0, i = 0; i < 16; ++i) {\n offs[i] = sum;\n sum += t.table[i];\n }\n for (i = 0; i < num; ++i) {\n if (lengths2[off + i])\n t.trans[offs[lengths2[off + i]]++] = i;\n }\n}\nfunction tinf_getbit(d) {\n const v = d.source.readSync(1);\n return v;\n}\nvar loff = 0;\nvar loffs = [];\nfunction tinf_read_bits(d, num, base) {\n if (!num)\n return base;\n const v = d.source.readSync(num) + base;\n loff = v;\n loffs.push(v);\n if (loffs.length > 4) {\n loffs.shift();\n }\n return v;\n}\nfunction tinf_decode_symbol(d, t, copy = true, ext = {}) {\n let sum = 0, cur = 0, len = 0;\n let s = 0;\n do {\n const b = d.source.readSync(1);\n copy && d.hidden?.write(1, b);\n s = s << 1 | b;\n cur = 2 * cur + b;\n ++len;\n sum += t.table[len];\n cur -= t.table[len];\n } while (cur >= 0);\n ext.length = len;\n ext.sym = s;\n return t.trans[sum + cur];\n}\nfunction tinf_decode_trees(d, lt, dt, copy = true) {\n let i, num, length;\n const hlit = tinf_read_bits(d, 5, 257);\n copy && d.hidden?.write(5, hlit - 257);\n const hdist = tinf_read_bits(d, 5, 1);\n copy && d.hidden?.write(5, hdist - 1);\n const hclen = tinf_read_bits(d, 4, 4);\n copy && d.hidden?.write(4, hclen - 4);\n for (i = 0; i < 19; ++i)\n lengths[i] = 0;\n for (i = 0; i < hclen; ++i) {\n const clen = tinf_read_bits(d, 3, 0);\n copy && d.hidden?.write(3, clen);\n lengths[clcidx[i]] = clen;\n }\n tinf_build_tree(code_tree, lengths, 0, 19);\n for (num = 0; num < hlit + hdist; ) {\n const sym = tinf_decode_symbol(d, code_tree, copy);\n let prev;\n switch (sym) {\n case 16:\n prev = lengths[num - 1];\n length = tinf_read_bits(d, 2, 3);\n copy && d.hidden?.write(2, length - 3);\n for (; length; --length) {\n lengths[num++] = prev;\n }\n break;\n case 17:\n length = tinf_read_bits(d, 3, 3);\n copy && d.hidden?.write(3, length - 3);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n case 18:\n length = tinf_read_bits(d, 7, 11);\n copy && d.hidden?.write(7, length - 11);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n default:\n lengths[num++] = sym;\n break;\n }\n }\n tinf_build_tree(lt, lengths, 0, hlit);\n tinf_build_tree(dt, lengths, hlit, hdist);\n}\nvar get_symbol = (value, bits_table, base_table) => {\n let i = 0;\n for (i = 0; i < base_table.length; ++i) {\n if (base_table[i] > value) {\n i--;\n return [i, bits_table[i], value - base_table[i]];\n }\n }\n i--;\n return [i, bits_table[i], value - base_table[i]];\n};\nvar encode_symbol = (sym, tree, pathMap) => {\n const code = getPathTo(tree, sym);\n const v = {\n length: code?.length,\n val: parseInt(code, 2)\n };\n return v;\n};\nvar capacity = 0;\nfunction tinf_inflate_block_data(d, lt, dt) {\n while (1) {\n let sym = tinf_decode_symbol(d, lt);\n if (sym === 256) {\n return TINF_OK;\n }\n if (sym < 256) {\n d.dest.push(sym);\n } else {\n sym -= 257;\n const length = tinf_read_bits(d, length_bits[sym], length_base[sym]);\n if (length_bits[sym])\n d.hidden?.write(length_bits[sym], length - length_base[sym]);\n const ext = { length: 0, sym: 0 };\n const dist = tinf_decode_symbol(d, dt, false, ext);\n let backoffset = tinf_read_bits(d, dist_bits[dist], dist_base[dist]);\n const offs2 = d.dest.length - backoffset;\n let match;\n const skip = !d.to_hide || d.to_hide && d.to_hide instanceof BitstreamReader && d.to_hide.available == 0;\n if (!skip && (match = Buffer2.from(d.dest.slice(offs2, offs2 + length))).length == length) {\n let begin = d.dest.length - 32768;\n if (begin < 0)\n begin = 0;\n let matches = [];\n let o = 0;\n const slic = Buffer2.from(d.dest.slice(begin + o, d.dest.length));\n while (begin + o < d.dest.length) {\n const r = slic.slice(o, d.dest.length).indexOf(match);\n if (r >= 0) {\n matches.push(r + begin + o);\n o += r;\n } else {\n break;\n }\n o++;\n }\n if (matches.length > 1) {\n matches = matches.map((e) => -(e - d.dest.length)).filter((e) => {\n const [dsym2] = get_symbol(e, dist_bits, dist_base);\n return d.adists.has(dsym2);\n });\n matches.reverse();\n const v = Math.floor(Math.log2(matches.length));\n capacity += v;\n if (d.to_hide instanceof BitstreamReader) {\n if (d.to_hide.available) {\n const s = d.to_hide.readSync(Math.min(d.to_hide.available, v));\n backoffset = matches[s];\n }\n } else {\n const idx = matches.indexOf(backoffset);\n d.to_hide.write(v, idx);\n }\n }\n }\n const [dsym, dlen, doff] = get_symbol(backoffset, dist_bits, dist_base);\n const encdist = encode_symbol(dsym, d.rdtree, d.pathMap);\n d.hidden?.write(encdist.length, revbyte(encdist.val, encdist.length));\n d.hidden?.write(dlen, doff);\n for (let i = offs2; i < offs2 + length; ++i) {\n d.dest.push(d.dest[i]);\n }\n }\n }\n}\nfunction tinf_inflate_uncompressed_block(d) {\n if (d.source.offset & 7)\n d.source.readSync(8 - d.source.offset & 7);\n if (d.hidden && d.hidden.offset & 7)\n d.hidden?.write(8 - d.hidden.offset & 7, 0);\n const length = d.source.readSync(16);\n d.hidden?.write(16, length);\n const invlength = d.source.readSync(16);\n d.hidden?.write(16, invlength);\n if (length !== (~invlength & 65535)) {\n return -4;\n }\n for (let i = length; i; --i) {\n const v = d.source.readSync(8);\n d.dest.push(v);\n d.hidden?.write(8, v);\n }\n return TINF_OK;\n}\nfunction tinf_uncompress(source, decompressed, to_hide, hidden, opt = 0) {\n const decomp = decompressed ? new BitstreamWriter({ write: decompressed }) : null;\n const hid = hidden && new BitstreamWriter({ write: hidden }, 4);\n const d = new Data(source, decomp, to_hide, hid);\n let res;\n let bfinal, btype;\n do {\n bfinal = tinf_getbit(d);\n d.hidden?.write(1, bfinal);\n btype = tinf_read_bits(d, 2, 0);\n d.hidden?.write(2, btype);\n switch (btype) {\n case 0:\n res = tinf_inflate_uncompressed_block(d);\n break;\n case 1:\n d.rdtree = rdtree;\n d.rltree = rltree;\n d.adists = sadist;\n res = tinf_inflate_block_data(d, sltree, sdtree);\n break;\n case 2:\n tinf_decode_trees(d, d.ltree, d.dtree);\n d.computeReverse();\n res = tinf_inflate_block_data(d, d.ltree, d.dtree);\n break;\n default:\n res = -2;\n }\n if (res !== TINF_OK)\n throw new Error("Data error " + res);\n } while (!bfinal);\n decomp?.end();\n hid?.end();\n}\ntinf_build_fixed_trees(sltree, sdtree);\ntinf_build_bits_base(length_bits, length_base, 4, 3);\ntinf_build_bits_base(dist_bits, dist_base, 2, 1);\nrltree = buildHuffmanTable(sltree.table, sltree.trans)[0];\nrdtree = buildHuffmanTable(sdtree.table, sdtree.trans)[0];\nsadist = new Set(rdtree.flat(16));\nlength_bits[28] = 0;\nlength_base[28] = 258;\n\n// src/pngv3.ts\nvar csettings2;\nsettings.subscribe((b) => {\n csettings2 = b;\n});\nvar CUM3 = import_buffer3.Buffer.from("doo\\0m");\nvar CUM4 = import_buffer3.Buffer.from("voo\\0m");\nvar CUM5 = import_buffer3.Buffer.from("boo\\0");\nvar CUM6 = import_buffer3.Buffer.from("Creation Time\\0");\nvar CUM7 = import_buffer3.Buffer.from("Software\\0");\nvar BufferReadStream = (b) => {\n const ret = new ReadableStream({\n pull(cont) {\n cont.enqueue(b);\n cont.close();\n }\n });\n return ret;\n};\nvar password = import_buffer3.Buffer.from("NOA");\nvar xor = (a, p) => {\n let n = 0;\n for (let i = 0; i < a.byteLength; ++i) {\n a[i] ^= p[n];\n n++;\n n %= p.byteLength;\n }\n};\nvar prefs = {\n "files.catbox.moe": "c",\n "a.pomf.cat": "p",\n "take-me-to.space": "t",\n "z.zz.fo": "z"\n};\nvar rprefs = {\n "c": "files.catbox.moe",\n "p": "a.pomf.cat",\n "t": "take-me-to.space",\n "z": "z.zz.fo"\n};\nvar extractFromRawDeflate = (b) => {\n const src = new BitstreamReader();\n src.addBuffer(b);\n const chnks = [];\n const hidden = new BitstreamWriter({\n write(chunk) {\n for (const i of chunk) {\n if (i >= 32 && i <= 128)\n chnks.push(i);\n else\n throw "Finish";\n }\n }\n });\n try {\n tinf_uncompress(src, void 0, hidden, void 0);\n } catch (e) {\n if (e == "Finish")\n return import_buffer3.Buffer.from(chnks);\n }\n return false;\n};\nvar extract = async (png, doextract = true) => {\n const reader = BufferReadStream(png).getReader();\n const sneed = new PNGDecoder(reader, false);\n const ret = [];\n let w;\n if (!csettings2)\n throw new Error("Settings uninit");\n try {\n let complete = false;\n const idats = [];\n for await (const [name, chunk, crc, offset] of sneed.chunks()) {\n let buff;\n switch (name) {\n case "tEXt":\n buff = chunk;\n if (buff.slice(4, 4 + CUM3.length).equals(CUM3)) {\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(buff.slice(4 + CUM3.length));\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM4.length).equals(CUM4)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM4.length);\n xor(passed, password);\n const k = await decodeCoom3Payload(passed);\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM5.length).equals(CUM5)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM5.length);\n const decoded = import_buffer3.Buffer.from(passed.toString(), "base64").toString().split(" ").map((e) => {\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n }\n if (w = [CUM6, CUM7].find((e) => buff.slice(4, 4 + e.length).equals(e))) {\n const passed = buff.slice(4 + w.length);\n if (!passed.toString().match(/^[0-9a-zA-Z+/=]+$/g))\n continue;\n const decoders = [\n (b) => import_buffer3.Buffer.from(b.toString(), "base64").toString(),\n (b) => import_buffer3.Buffer.from(bs58.decode(passed.toString())).toString()\n ];\n for (const d of decoders) {\n try {\n const decoded = d(passed).split(" ").map((e) => {\n if (!(e[0] in rprefs))\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n } catch (e) {\n }\n }\n }\n break;\n case "IDAT":\n if (ret.length)\n return ret;\n buff = chunk;\n idats.push(buff.slice(4));\n break;\n case "IEND":\n complete = true;\n default:\n break;\n }\n }\n if (idats.length) {\n let decoded;\n if ((decoded = extractFromRawDeflate(import_buffer3.Buffer.concat(idats).slice(2))) === false)\n return false;\n const dec = decoded.toString().split(" ").map((e) => {\n if (!(e[0] in rprefs) || e.length < 5)\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (doextract)\n return decodeCoom3Payload(import_buffer3.Buffer.from(dec));\n return true;\n }\n } catch (e) {\n if (e != "Uhh")\n console.error(e);\n } finally {\n reader.releaseLock();\n }\n};\nvar buildChunk = (tag, data) => {\n const ret = import_buffer3.Buffer.alloc(data.byteLength + 4);\n ret.write(tag.slice(0, 4), 0);\n data.copy(ret, 4);\n return ret;\n};\nvar BufferWriteStream = () => {\n let b = import_buffer3.Buffer.from([]);\n const ret = new WritableStream({\n write(chunk) {\n b = import_buffer3.Buffer.concat([b, chunk]);\n console.log("finished appending");\n }\n });\n return [ret, () => b];\n};\nvar embedInRawDeflate = (b, h) => {\n const src = new BitstreamReader();\n const hid = new BitstreamReader();\n hid.addBuffer(h);\n src.addBuffer(b);\n const chnks = [];\n tinf_uncompress(src, void 0, hid, (c) => chnks.push(c));\n return import_buffer3.Buffer.concat(chnks);\n};\nvar inject_data = async (container, injb) => {\n injb = import_buffer3.Buffer.concat([injb, import_buffer3.Buffer.from([0])]);\n if (!csettings2)\n throw new Error("Settings uninit");\n if (csettings2.pmeth < 5) {\n let magic = false;\n const [writestream2, extract6] = BufferWriteStream();\n const encoder = new PNGEncoder(writestream2);\n const decoder = new PNGDecoder(container.stream().getReader());\n for await (const [name, chunk, crc, offset] of decoder.chunks()) {\n if (magic && name != "IDAT")\n break;\n if (!magic && name == "IDAT") {\n const passed = import_buffer3.Buffer.from(injb);\n switch (csettings2.pmeth) {\n case 0:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM3, passed])), 0, 0]);\n break;\n case 1:\n xor(passed, password);\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM4, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 2:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM5, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 3:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM6, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 4:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM7, import_buffer3.Buffer.from(bs58.encode(passed))])), 0, 0]);\n break;\n }\n magic = true;\n }\n await encoder.insertchunk([name, chunk, crc, offset]);\n }\n await encoder.insertchunk([\n "IEND",\n buildChunk("IEND", import_buffer3.Buffer.from([])),\n 0,\n 0\n ]);\n return extract6();\n }\n let pdec = new PNGDecoder(container.stream().getReader());\n const concat = [];\n for await (const chk of pdec.chunks())\n if (chk[0] == "IDAT")\n concat.push(chk[1].slice(4));\n const comp = import_buffer3.Buffer.concat(concat);\n const head = comp.slice(0, 2);\n const chksum = comp.slice(-4);\n const idatblk = embedInRawDeflate(comp.slice(2, -4), injb);\n const [writestream, extract5] = BufferWriteStream();\n const penc = new PNGEncoder(writestream);\n pdec = new PNGDecoder(container.stream().getReader());\n let ins = false;\n for await (const chk of pdec.chunks()) {\n if (chk[0] != "IDAT") {\n await penc.insertchunk(chk);\n } else {\n if (!ins) {\n await penc.insertchunk(["IDAT", import_buffer3.Buffer.concat([import_buffer3.Buffer.from("IDAT"), head, idatblk, chksum]), 0, 0]);\n ins = true;\n }\n }\n }\n await penc.dtor();\n console.log("Finished writing");\n return extract5();\n};\nvar inject = async (container, links) => {\n links = links.map((link) => {\n for (const h of filehosts) {\n if (link.includes(h.serving)) {\n const end = link.split("/").slice(-1)[0];\n return `${prefs[h.serving]}${end}`;\n }\n }\n return "";\n });\n const injb = import_buffer3.Buffer.from(links.join(" "));\n return inject_data(container, injb);\n};\nvar has_embed = async (png) => {\n const r = await extract(png, false);\n return !!r;\n};\nvar pngv3_default = {\n extract,\n has_embed,\n inject,\n match: (fn) => !!fn.match(/\\.png$/)\n};\n\n// src/jpg.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer4 = __toESM(require_buffer(), 1);\n\n// src/f5stego.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction* f5get() {\n let extrBit = 0;\n let k = 0;\n for (let i = 0; i < 4; ++i) {\n const b2 = yield;\n k |= b2 << i;\n }\n k = (k & 15) + 1;\n let toread = 8;\n let len = 0;\n while (toread--) {\n const b2 = yield;\n len = len * 2 + b2;\n }\n const b = yield;\n toread += 8;\n if (b)\n toread += 7;\n else\n len *= 2;\n while (toread--) {\n const b2 = yield;\n len = len * 2 + b2;\n }\n const rlen = revbyte(len, b ? 23 : 16);\n len = rlen;\n if (len > 256)\n throw new Error("Too big for Smash");\n len *= 8;\n const chunks = [];\n const bw = new BitstreamWriter({\n write(chunk) {\n chunks.push(chunk);\n }\n });\n while (len) {\n extrBit = yield;\n bw.write(1, extrBit);\n len--;\n }\n bw.end();\n return Buffer2.concat(chunks).slice(0, rlen);\n}\nvar bitcode = new Array(65535);\nvar category = new Array(65535);\nvar std_dc_luminance_nrcodes = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\nvar std_dc_luminance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_luminance_nrcodes = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\nvar std_ac_luminance_values = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nvar std_dc_chrominance_nrcodes = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\nvar std_dc_chrominance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_chrominance_nrcodes = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\nvar std_ac_chrominance_values = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nfunction _initCategoryNumber() {\n let nrlower = 1;\n let nrupper = 2;\n for (let cat = 1; cat <= 15; cat++) {\n for (let nr = nrlower; nr < nrupper; nr++) {\n category[32767 + nr] = cat;\n bitcode[32767 + nr] = [];\n bitcode[32767 + nr][1] = cat;\n bitcode[32767 + nr][0] = nr;\n }\n for (let nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category[32767 + nrneg] = cat;\n bitcode[32767 + nrneg] = [];\n bitcode[32767 + nrneg][1] = cat;\n bitcode[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n}\n_initCategoryNumber();\nfunction _computeHuffmanTbl(nrcodes, std_table) {\n let codevalue = 0;\n let pos_in_table = 0;\n const HT = [];\n for (let k = 1; k <= 16; k++) {\n for (let j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n}\nvar YDC_HT = _computeHuffmanTbl(std_dc_luminance_nrcodes, std_dc_luminance_values);\nvar UVDC_HT = _computeHuffmanTbl(std_dc_chrominance_nrcodes, std_dc_chrominance_values);\nvar YAC_HT = _computeHuffmanTbl(std_ac_luminance_nrcodes, std_ac_luminance_values);\nvar UVAC_HT = _computeHuffmanTbl(std_ac_chrominance_nrcodes, std_ac_chrominance_values);\nvar __raw, _jfif, _APPn, _qts, _frame, _tail, __f5write, _f5write_fn;\nvar f5stego = class {\n constructor(key2, maxPixels = 4096 * 4096) {\n this.maxPixels = maxPixels;\n __privateAdd(this, __f5write);\n __privateAdd(this, __raw, void 0);\n __privateAdd(this, _jfif, void 0);\n __privateAdd(this, _APPn, void 0);\n __privateAdd(this, _qts, void 0);\n __privateAdd(this, _frame, null);\n __privateAdd(this, _tail, null);\n }\n embed(image, data, k) {\n this.parse(image);\n this.f5put(data, k);\n return this.pack();\n }\n extract(image) {\n try {\n this.gengen = f5get();\n this.gengen.next();\n this.parse(image, true);\n return this.f5get();\n } catch (e) {\n if (e instanceof Buffer2)\n return e;\n throw e;\n }\n }\n f5put(data, k) {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let t, i, comp = __privateGet(this, _frame).components[0];\n if (data.length > 8388607)\n throw "Data too big. Max 8388607 bytes allowed.";\n if (data.length < 32768) {\n t = new Uint8Array(2 + data.length);\n t[0] = data.length & 255;\n t[1] = data.length >>> 8;\n t.set(data, 2);\n } else {\n t = new Uint8Array(3 + data.length);\n t[0] = data.length & 255;\n t[1] = (data.length >>> 8 & 127) + 128;\n t[2] = data.length >>> 15;\n t.set(data, 3);\n }\n if (comp.componentId != 1) {\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n return __privateMethod(this, __f5write, _f5write_fn).call(this, comp.blocks, t, k);\n }\n f5get() {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let comp = __privateGet(this, _frame).components[0];\n if (comp.componentId != 1) {\n for (let i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n const coeff = new Int16Array(comp.blocks.length);\n coeff.set(comp.blocks);\n let pos = -1, extrBit = 0, cCount = coeff.length - 1;\n let n, k = 0;\n let out = new Uint8Array(coeff.length / 8 | 0), extrByte = 0, outPos = 0, bitsAvail = 0, code = 0, hash = 0;\n while (bitsAvail < 4) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n k |= extrBit << bitsAvail;\n bitsAvail++;\n }\n k = (k & 15) + 1;\n n = (1 << k) - 1;\n bitsAvail = 0;\n if (k == 1) {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n extrByte |= extrBit << bitsAvail;\n bitsAvail++;\n if (bitsAvail == 8) {\n out[outPos++] = extrByte;\n extrByte = 0;\n bitsAvail = 0;\n }\n }\n } else {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n hash ^= extrBit * ++code;\n if (code == n) {\n extrByte |= hash << bitsAvail;\n bitsAvail += k;\n code = 0;\n hash = 0;\n while (bitsAvail >= 8) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n }\n }\n }\n while (bitsAvail > 0) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n let s = 2, l = out[0];\n if (out[1] & 128) {\n s++;\n l += ((out[1] & 127) << 8) + (out[2] << 15);\n } else {\n l += out[1] << 8;\n }\n return out.subarray(s, s + l);\n }\n parse(data, tolerant = false) {\n let offset = 0;\n function _buildHuffmanTable(nrcodes, values) {\n let codevalue = 0, pos_in_table = 0, HT = new Uint16Array(65536);\n for (let k = 0; k < 16; k++) {\n for (let j2 = 0; j2 < nrcodes[k]; j2++) {\n for (let i2 = codevalue << 15 - k, cntTo = codevalue + 1 << 15 - k; i2 < cntTo; i2++) {\n HT[i2] = values[pos_in_table] + (k + 1 << 8);\n }\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n const decodeScan = (data2, offset2, frame, components, resetInterval2, spectralStart, spectralEnd, successivePrev, successive) => {\n let startOffset = offset2, bitsData = 0, bitsCount = 0, eobrun = 0, p1 = 1 << successive, m1 = -1 << successive;\n const prevpos = 0;\n const decodeBaseline = (component2, pos) => {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n let diff = 0;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff;\n let k2 = 1, s, r;\n while (k2 < 64) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n bitsCount -= s;\n k2++;\n }\n };\n function decodeDCFirst(component2, pos) {\n let diff = 0;\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff << successive;\n }\n function decodeDCSuccessive(component2, pos) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocksDC[pos >> 6] |= (bitsData >>> --bitsCount & 1) << successive;\n }\n if (!frame)\n throw "Frame not parsed yet";\n function decodeACFirst(component2, pos) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k2 = spectralStart, s, r;\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r != 15) {\n eobrun = (1 << r) - 1;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n bitsCount -= s;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n component2.blocks[pos + k2] *= p1;\n k2++;\n }\n }\n function decodeACSuccessive(component2, pos) {\n let k2 = spectralStart, r, s;\n if (frame == null)\n throw "Frame not defined";\n if (!eobrun) {\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s) {\n if (s != 1)\n throw "bad jpeg";\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n s = bitsData >>> --bitsCount & 1 ? p1 : m1;\n } else {\n if (r != 15) {\n eobrun = 1 << r;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n }\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n } else {\n if (--r < 0)\n break;\n }\n k2++;\n }\n if (s)\n component2.blocks[pos + k2] = s;\n k2++;\n }\n }\n if (eobrun) {\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n }\n k2++;\n }\n eobrun--;\n }\n }\n let decodeFn;\n if (frame.progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n let marker, mcuExpected, i2, j2, k, n, mcusPerLine, mcusPerRow, x, y;\n let lastflushidx = 0;\n const flushBits = () => {\n const component2 = components.find((e) => e.componentId == 1);\n while (component2.blocks[lastflushidx + 1] !== void 0) {\n const blk = component2.blocks[lastflushidx];\n if (blk != 0) {\n const v = blk < 0 ? 1 - (blk & 1) : blk & 1;\n const it = this.gengen.next(v);\n if (it.done) {\n throw it.value;\n }\n }\n lastflushidx++;\n }\n };\n if (components.length == 1) {\n mcusPerLine = components[0].blocksPerLine;\n mcusPerRow = components[0].blocksPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n decodeFn(components[i2], (y * components[i2].blocksPerLineForMcu + x) * 64);\n }\n }\n flushBits();\n }\n } else {\n mcusPerLine = frame.mcusPerLine;\n mcusPerRow = frame.mcusPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n for (j2 = 0; j2 < components[i2].v; j2++) {\n for (k = 0; k < components[i2].h; k++) {\n decodeFn(components[i2], ((y * components[i2].v + j2) * components[i2].blocksPerLineForMcu + x * components[i2].h + k) * 64);\n }\n }\n }\n }\n flushBits();\n }\n }\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n return offset2 - startOffset;\n };\n function readUint16() {\n const value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n const length = readUint16();\n const array = data.subarray(offset, offset + length - 2);\n offset += array.length;\n return array;\n }\n __privateSet(this, __raw, data);\n __privateSet(this, _jfif, null);\n __privateSet(this, _APPn, []);\n __privateSet(this, _qts, []);\n __privateSet(this, _frame, null);\n __privateSet(this, _tail, null);\n let markerHi, markerLo, i, j, resetInterval, component;\n const huffmanTablesAC = [];\n const huffmanTablesDC = [];\n while (1) {\n if (offset >= data.length) {\n if (tolerant)\n break;\n throw "unexpected EOF";\n }\n markerHi = data[offset++];\n markerLo = data[offset++];\n if (markerHi == 255) {\n if (markerLo == 224) {\n __privateSet(this, _jfif, readDataBlock());\n }\n if (markerLo > 224 && markerLo < 240 || markerLo == 254) {\n __privateGet(this, _APPn).push({\n "app": markerLo,\n "data": readDataBlock()\n });\n }\n if (markerLo == 219) {\n __privateGet(this, _qts).push(readDataBlock());\n }\n if (markerLo >= 192 && markerLo <= 194) {\n if (__privateGet(this, _frame))\n throw "Only single frame JPEGs supported";\n readUint16();\n __privateSet(this, _frame, {\n "extended": markerLo === 193,\n "progressive": markerLo === 194,\n "precision": data[offset++],\n "scanLines": readUint16(),\n "samplesPerLine": readUint16(),\n "components": [],\n "componentIds": {},\n "maxH": 1,\n "maxV": 1\n });\n if (__privateGet(this, _frame).scanLines * __privateGet(this, _frame).samplesPerLine > this.maxPixels)\n throw "Image is too big.";\n var componentsCount = data[offset++], componentId;\n let maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n const h = data[offset + 1] >> 4;\n const v = data[offset + 1] & 15;\n if (maxH < h)\n maxH = h;\n if (maxV < v)\n maxV = v;\n const qId = data[offset + 2];\n const l = __privateGet(this, _frame).components.push({\n componentId,\n h,\n v,\n quantizationTable: qId\n });\n __privateGet(this, _frame).componentIds[componentId] = l - 1;\n offset += 3;\n }\n __privateGet(this, _frame).maxH = maxH;\n __privateGet(this, _frame).maxV = maxV;\n const mcusPerLine = Math.ceil(__privateGet(this, _frame).samplesPerLine / 8 / maxH);\n const mcusPerColumn = Math.ceil(__privateGet(this, _frame).scanLines / 8 / maxV);\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n component = __privateGet(this, _frame).components[i];\n const blocksPerLine = Math.ceil(Math.ceil(__privateGet(this, _frame).samplesPerLine / 8) * component.h / maxH);\n const blocksPerColumn = Math.ceil(Math.ceil(__privateGet(this, _frame).scanLines / 8) * component.v / maxV);\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n __privateGet(this, _frame).components[i] = {\n ...component,\n blocks: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu * 64),\n blocksDC: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu),\n blocksPerLine,\n blocksPerColumn,\n blocksPerLineForMcu,\n blocksPerColumnForMcu\n };\n }\n __privateGet(this, _frame).mcusPerLine = mcusPerLine;\n __privateGet(this, _frame).mcusPerColumn = mcusPerColumn;\n }\n if (markerLo == 196) {\n const huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++)\n codeLengthSum += codeLengths[j] = data[offset];\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n const v = _buildHuffmanTable(codeLengths, huffmanValues);\n if (huffmanTableSpec >> 4 === 0)\n huffmanTablesDC[huffmanTableSpec & 15] = v;\n else\n huffmanTablesAC[huffmanTableSpec & 15] = v;\n }\n }\n if (markerLo == 221) {\n resetInterval = readUint16();\n }\n if (markerLo == 218) {\n if (__privateGet(this, _frame) == null)\n throw "SOS before SOF";\n readUint16();\n const selectorsCount = data[offset++];\n const components = [];\n for (i = 0; i < selectorsCount; i++) {\n const componentIndex = __privateGet(this, _frame).componentIds[data[offset++]];\n component = __privateGet(this, _frame).components[componentIndex];\n const tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n const spectralStart = data[offset++];\n const spectralEnd = data[offset++];\n const successiveApproximation = data[offset++];\n const processed = decodeScan(data, offset, __privateGet(this, _frame), components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15);\n offset += processed;\n }\n if (markerLo == 217) {\n break;\n }\n } else {\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n }\n while (data[offset] != 255 && offset < data.length) {\n offset++;\n }\n if (data[offset] != 255) {\n throw "bad jpeg ";\n }\n }\n }\n if (!__privateGet(this, _frame))\n throw "bad jpeg";\n if (offset < data.length)\n __privateSet(this, _tail, data.subarray(offset));\n return this;\n }\n pack() {\n let byteout;\n let bytenew;\n let bytepos;\n let poslast;\n let outpos;\n let byte;\n function writeByte(value) {\n let t;\n byteout[outpos++] = value;\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function writeBlock(block) {\n let t;\n if (outpos + block.length > poslast) {\n t = new Uint8Array(byteout.length * 2 + block.length);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n byteout.set(block, outpos);\n outpos += block.length;\n }\n function writeAPP0(self2) {\n writeWord(65504);\n if (!__privateGet(self2, _jfif)) {\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n } else {\n writeWord(__privateGet(self2, _jfif).length + 2);\n writeBlock(__privateGet(self2, _jfif));\n }\n }\n function writeDQT(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _qts).length; i2++) {\n writeWord(65499);\n writeWord(__privateGet(self2, _qts)[i2].length + 2);\n writeBlock(__privateGet(self2, _qts)[i2]);\n }\n }\n function writeAPPn(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _APPn).length; i2++) {\n writeWord(65280 | __privateGet(self2, _APPn)[i2].app);\n writeWord(__privateGet(self2, _APPn)[i2].data.length + 2);\n writeBlock(__privateGet(self2, _APPn)[i2].data);\n }\n }\n function writeSOF0(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65472);\n writeWord(8 + __privateGet(self2, _frame).components.length * 3);\n writeByte(__privateGet(self2, _frame).precision);\n writeWord(__privateGet(self2, _frame).scanLines);\n writeWord(__privateGet(self2, _frame).samplesPerLine);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n writeByte(c2.h << 4 | c2.v);\n writeByte(c2.quantizationTable);\n }\n }\n function writeDHT(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65476);\n writeWord(31);\n writeByte(0);\n for (let i2 = 0; i2 < 16; i2++) {\n writeByte(std_dc_luminance_nrcodes[i2 + 1]);\n }\n for (let j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values[j]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(16);\n for (let k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes[k + 1]);\n }\n for (let l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values[l]);\n }\n if (__privateGet(self2, _frame).components.length != 1) {\n writeWord(65476);\n writeWord(31);\n writeByte(1);\n for (let m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes[m + 1]);\n }\n for (let n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values[n]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(17);\n for (let o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes[o + 1]);\n }\n for (let p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values[p]);\n }\n }\n }\n function writeSOS(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65498);\n writeWord(6 + __privateGet(self2, _frame).components.length * 2);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n if (i2 === 0) {\n writeByte(0);\n } else {\n writeByte(17);\n }\n }\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(comp, POS, DC, HTDC, HTAC) {\n let pos, posval, t;\n if (bytepos === 0)\n bytenew = 0;\n if (!("blocks" in comp))\n throw "Blocks not parsed";\n const Diff = comp.blocksDC[POS >> 6] - DC;\n DC = comp.blocksDC[POS >> 6];\n if (Diff === 0) {\n posval = HTDC[0][1];\n bytenew <<= posval;\n bytenew += HTDC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n } else {\n pos = 32767 + Diff;\n posval = HTDC[category[pos]][1];\n bytenew <<= posval;\n bytenew += HTDC[category[pos]][0];\n bytepos += posval;\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n let end0pos = 63;\n for (; end0pos > 0 && comp.blocks[POS + end0pos] === 0; end0pos--) {\n }\n if (end0pos === 0) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n return DC;\n }\n let i2 = 1;\n let lng;\n while (i2 <= end0pos) {\n const startpos = i2;\n for (; comp.blocks[POS + i2] === 0 && i2 <= end0pos; ++i2) {\n }\n let nrzeroes = i2 - startpos;\n if (nrzeroes >= 16) {\n lng = nrzeroes >> 4;\n for (let nrmarker = 1; nrmarker <= lng; ++nrmarker) {\n posval = HTAC[240][1];\n bytenew <<= posval;\n bytenew += HTAC[240][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + comp.blocks[POS + i2];\n posval = HTAC[(nrzeroes << 4) + category[pos]][1];\n bytenew <<= posval;\n bytenew += HTAC[(nrzeroes << 4) + category[pos]][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n i2++;\n }\n if (end0pos != 63) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n return DC;\n }\n byteout = new Uint8Array(65536);\n poslast = 65536 - 128;\n outpos = 0;\n bytenew = 0;\n bytepos = 0;\n writeWord(65496);\n writeAPP0(this);\n writeAPPn(this);\n writeDQT(this);\n writeSOF0(this);\n writeDHT(this);\n writeSOS(this);\n bytenew = 0;\n bytepos = 0;\n if (!__privateGet(this, _frame))\n throw "Frame not ready";\n let c, mcuRow, mcuCol, blockRow, blockCol, mcu, i, v, h;\n const DCdiff = [];\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n DCdiff.push(0);\n }\n for (mcu = 0; mcu < __privateGet(this, _frame).mcusPerLine * __privateGet(this, _frame).mcusPerColumn; mcu++) {\n mcuRow = mcu / __privateGet(this, _frame).mcusPerLine | 0;\n mcuCol = mcu % __privateGet(this, _frame).mcusPerLine;\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n c = __privateGet(this, _frame).components[i];\n for (v = 0; v < c.v; v++) {\n blockRow = mcuRow * c.v + v;\n for (h = 0; h < c.h; h++) {\n blockCol = mcuCol * c.h + h;\n if (i === 0) {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], YDC_HT, YAC_HT);\n } else {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], UVDC_HT, UVAC_HT);\n }\n }\n }\n }\n }\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n }\n if (bytepos > 0) {\n bytenew <<= 8 - bytepos;\n bytenew += (1 << 8 - bytepos) - 1;\n byteout[outpos++] = 255 & bytenew;\n }\n writeWord(65497);\n if (__privateGet(this, _tail))\n writeBlock(__privateGet(this, _tail));\n return byteout.slice(0, outpos);\n }\n};\n__raw = new WeakMap();\n_jfif = new WeakMap();\n_APPn = new WeakMap();\n_qts = new WeakMap();\n_frame = new WeakMap();\n_tail = new WeakMap();\n__f5write = new WeakSet();\n_f5write_fn = function(coeff, data, k) {\n const coeff_count = coeff.length;\n let _changed = 0, _embedded = 0, _examined = 0, _thrown = 0, shuffled_index = 0, i, n, ii;\n let next_bit_to_embed = 0, byte_to_embed = data.length, data_idx = 0, available_bits_to_embed = 0;\n n = (1 << k) - 1;\n byte_to_embed = k - 1;\n byte_to_embed ^= 0;\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed = 3;\n for (ii = 0; ii < coeff_count; ii++) {\n shuffled_index = ii;\n if (shuffled_index % 64 === 0 || coeff[shuffled_index] === 0)\n continue;\n const cc = coeff[shuffled_index];\n _examined++;\n if (cc > 0 && (cc & 1) != next_bit_to_embed) {\n coeff[shuffled_index]--;\n _changed++;\n } else if (cc < 0 && (cc & 1) == next_bit_to_embed) {\n coeff[shuffled_index]++;\n _changed++;\n }\n if (coeff[shuffled_index] !== 0) {\n _embedded++;\n if (available_bits_to_embed === 0) {\n if (k != 1 || data_idx >= data.length)\n break;\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n } else {\n _thrown++;\n }\n }\n if (k == 1 && _embedded < data.length * 8)\n throw "capacity exceeded " + _embedded / 8 + " " + data.length;\n if (k != 1) {\n let is_last_byte = false, k_bits_to_embed = 0;\n while (!is_last_byte || available_bits_to_embed !== 0 && is_last_byte) {\n k_bits_to_embed = 0;\n for (i = 0; i < k; i++) {\n if (available_bits_to_embed === 0) {\n if (data_idx >= data.length) {\n is_last_byte = true;\n break;\n }\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n k_bits_to_embed |= next_bit_to_embed << i;\n }\n const code_word = [];\n let ci = null;\n for (i = 0; i < n; i++) {\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n code_word.push(ci);\n }\n _examined += n;\n while (true) {\n var vhash = 0, extracted_bit;\n for (i = 0; i < code_word.length; i++) {\n if (coeff[code_word[i]] > 0) {\n extracted_bit = coeff[code_word[i]] & 1;\n } else {\n extracted_bit = 1 - (coeff[code_word[i]] & 1);\n }\n if (extracted_bit == 1)\n vhash ^= i + 1;\n }\n i = vhash ^ k_bits_to_embed;\n if (!i) {\n _embedded += k;\n break;\n }\n i--;\n coeff[code_word[i]] += coeff[code_word[i]] < 0 ? 1 : -1;\n _changed++;\n if (coeff[code_word[i]] === 0) {\n _thrown++;\n code_word.splice(i, 1);\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n _examined++;\n code_word.push(ci);\n } else {\n _embedded += k;\n break;\n }\n }\n }\n }\n return {\n "k": k,\n "embedded": _embedded / 8,\n "examined": _examined,\n "changed": _changed,\n "thrown": _thrown,\n "efficiency": (_embedded / _changed).toFixed(2)\n };\n};\n\n// src/jpg.ts\nvar key = import_buffer4.Buffer.from("CUNNYCUNNYCUNNY");\nvar f5inst = new f5stego(key);\nvar inject2 = async (b, links) => {\n if (b.size / 20 < links.join(" ").length)\n throw "Image too small to embed.";\n const arr = new Uint8Array(new Uint8Array(await b.arrayBuffer()));\n const buff = f5inst.embed(arr, new TextEncoder().encode(links.join(" ")), 1);\n return import_buffer4.Buffer.from(buff);\n};\nvar has_embed2 = (b) => {\n try {\n const res = f5inst.extract(b);\n if (!res)\n return false;\n if (res.length > 1024)\n return false;\n const str = import_buffer4.Buffer.from(res).toString();\n if (!str.match(/^[a-zA-Z0-9:/.\\-_ ]+$/))\n return false;\n return str;\n } catch {\n return false;\n }\n};\nvar extract2 = (b, ex) => {\n return decodeCoom3Payload(import_buffer4.Buffer.from(ex));\n};\nvar jpg_default = {\n match: (fn) => !!fn.match(/\\.jpe?g$/),\n has_embed: has_embed2,\n extract: extract2,\n inject: inject2\n};\n\n// src/thirdeye.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer5 = __toESM(require_buffer(), 1);\nvar import_jpeg_js = __toESM(require_jpeg_js(), 1);\n\n// src/phash.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar median = (data) => {\n const mdarr = data.slice(0);\n mdarr.sort((a, b) => a - b);\n if (mdarr.length % 2 === 0)\n return (mdarr[mdarr.length / 2 - 1] + mdarr[mdarr.length / 2]) / 2;\n return mdarr[Math.floor(mdarr.length / 2)];\n};\nvar translate_blocks_to_bits = function(blocks, pixels_per_block) {\n const half_block_value = pixels_per_block * 256 * 3 / 2;\n const bandsize = blocks.length / 4;\n for (let i = 0; i < 4; i++) {\n const m = median(blocks.slice(i * bandsize, (i + 1) * bandsize));\n for (let j = i * bandsize; j < (i + 1) * bandsize; j++) {\n const v = blocks[j];\n blocks[j] = Number(v > m || Math.abs(v - m) < 1 && m > half_block_value);\n }\n }\n};\nvar bits_to_hexhash = (bitsArray) => {\n const hex = [];\n for (let i = 0; i < bitsArray.length; i += 4) {\n const nibble = bitsArray.slice(i, i + 4);\n hex.push(parseInt(nibble.join(""), 2).toString(16));\n }\n return hex.join("");\n};\nvar bmvbhash_even = (data, bits) => {\n const blocksize_x = Math.floor(data.width / bits);\n const blocksize_y = Math.floor(data.height / bits);\n const result = [];\n for (let y = 0; y < bits; y++) {\n for (let x = 0; x < bits; x++) {\n let total = 0;\n for (let iy = 0; iy < blocksize_y; iy++) {\n for (let ix = 0; ix < blocksize_x; ix++) {\n const cx = x * blocksize_x + ix;\n const cy = y * blocksize_y + iy;\n const ii = (cy * data.width + cx) * 4;\n const alpha = data.data[ii + 3];\n if (alpha === 0) {\n total += 765;\n } else {\n total += data.data[ii] + data.data[ii + 1] + data.data[ii + 2];\n }\n }\n }\n result.push(total);\n }\n }\n translate_blocks_to_bits(result, blocksize_x * blocksize_y);\n return bits_to_hexhash(result);\n};\n\n// src/thirdeye.ts\nvar csettings3;\nsettings.subscribe((b) => {\n csettings3 = b;\n});\nvar gelquirk = (prefix) => (a) => {\n let base = a.post || a.data || a;\n if (!Array.isArray(base))\n return [];\n base = base.filter((e) => e.file_url);\n return base.map((e) => ({\n full_url: e.file_url,\n preview_url: e.preview_url || e.preview_url,\n source: e.source,\n ext: e.file_ext || e.file_url.substr(e.file_url.lastIndexOf(".") + 1),\n page: `${prefix}${e.id || e.parent_id}`,\n tags: (e.tag_string || (e.tags && (Array.isArray(e.tags) && (typeof e.tags[0] == "string" ? e.tags.join(" ") : e.tags.map((e2) => e2.name_en).join(" "))) || e.tags) || "").split(" ")\n })) || [];\n};\nvar experimentalApi = false;\nvar black = /* @__PURE__ */ new Set();\nvar phashEn = false;\nvar mindist = 5;\nsettings.subscribe((s) => {\n if (!s)\n return;\n experimentalApi = s.expte;\n boorus = s.rsources.map((e) => ({\n ...e,\n quirks: gelquirk(e.view)\n }));\n black = new Set(s.blacklist);\n mindist = s.mdist || 5;\n phashEn = s.phash;\n});\nvar boorus = [];\nvar unlockQueue = Promise.resolve();\nvar cache = {};\nvar findFileFrom = async (b, hex, abort) => {\n try {\n if (b.domain in cache && hex in cache[b.domain])\n return cache[b.domain][hex];\n const res = await ifetch(`https://${b.domain}${b.endpoint}${hex}`);\n const txt = await res.text();\n const pres = JSON.parse(txt);\n const tran = b.quirks(pres).filter((e) => !e.tags.some((e2) => black.has(e2)));\n if (!(b.domain in cache))\n cache[b.domain] = {};\n cache[b.domain][hex] = tran;\n return tran;\n } catch (e) {\n const error = e;\n if (!error.message.includes("Unexpected end of JSON input"))\n console.error(e);\n return [];\n }\n};\nvar extract3 = async (b, fn) => {\n if (!csettings3)\n throw new Error("Settings uninit");\n let result;\n let booru;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n if (result.length) {\n booru = e.name;\n break;\n }\n }\n let cachedFile;\n const prev = result[0].preview_url;\n const full = result[0].full_url;\n return [{\n source: result[0].source,\n page: {\n title: booru,\n url: result[0].page\n },\n filename: fn.substring(0, 33) + result[0].ext,\n thumbnail: csettings3.hotlink ? prev || full : import_buffer5.Buffer.from(await (await ifetch(prev || full)).arrayBuffer()),\n data: csettings3.hotlink ? full || prev : { url: full || prev }\n }];\n};\nvar phash = (b) => {\n const res = (0, import_jpeg_js.decode)(b);\n return bmvbhash_even(res, 8);\n};\nvar hammingDist = (a, b) => {\n let res = BigInt("0x" + a) ^ BigInt("0x" + b);\n let acc = 0;\n while (res != 0n) {\n acc += Number(res & 1n);\n res >>= 1n;\n }\n return acc;\n};\nvar has_embed3 = async (b, fn, prevlink) => {\n if (import_buffer5.Buffer.from(fn, "hex").equals(b))\n return false;\n let result = void 0;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n result = result.filter((e2) => e2.full_url || e2.preview_url);\n if (result.length)\n break;\n }\n if (result && result.length != 0 && phashEn && prevlink) {\n if (!result[0].preview_url)\n return true;\n const getHash = async (l) => {\n const ogreq = await ifetch(l);\n const origPreview = await ogreq.arrayBuffer();\n return phash(import_buffer5.Buffer.from(origPreview));\n };\n const [orighash, tehash] = await Promise.all([\n getHash(prevlink),\n getHash(result[0].preview_url)\n ]);\n const d = hammingDist(orighash, tehash);\n console.log(d, prevlink);\n return d > mindist;\n }\n return result && result.length != 0;\n};\nvar thirdeye_default = {\n skip: true,\n extract: extract3,\n has_embed: has_embed3,\n match: (fn) => !!fn.match(/^[0-9a-f]{32}\\.....?/)\n};\n\n// src/pomf.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer6 = __toESM(require_buffer(), 1);\nvar sources = [\n { host: "Catbox", prefix: "files.catbox.moe/" },\n { host: "Litter", prefix: "litter.catbox.moe/" },\n { host: "Zzzz", prefix: "z.zz.fo/" }\n];\nvar csettings4;\nsettings.subscribe((b) => {\n csettings4 = b;\n});\nvar getExt = (fn) => {\n const isB64 = fn.match(/^((?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=))?\\.(gif|jpe?g|png|webm)/);\n const isExt = fn.match(/\\[.*=(.*)\\]/);\n let ext;\n let source;\n try {\n if (isB64) {\n ext = atob(isB64[1]);\n } else if (isExt) {\n ext = decodeURIComponent(isExt[1]);\n if (ext.startsWith("https://"))\n ext = ext.slice("https://".length);\n for (const cs of sources)\n if (ext.startsWith(cs.prefix)) {\n source = cs.prefix;\n ext = ext.slice(cs.prefix.length);\n break;\n }\n }\n } catch {\n }\n return { ext, source };\n};\nvar extract4 = async (b, fn) => {\n if (!csettings4)\n throw new Error("Settings uninit");\n const { ext, source } = getExt(fn);\n let rsource;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n await getHeaders("https://" + cs.prefix + ext);\n rsource = "https://" + cs.prefix + ext;\n break;\n } catch {\n }\n }\n return [{\n filename: ext,\n data: csettings4.hotlink ? rsource : { url: rsource },\n thumbnail: import_buffer6.Buffer.from(hasembed_default)\n }];\n};\nvar has_embed4 = async (b, fn) => {\n const { ext, source } = getExt(fn);\n if (!ext)\n return false;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n const e = await getHeaders("https://" + cs.prefix + ext);\n return true;\n } catch {\n }\n }\n return false;\n};\nvar pomf_default = {\n skip: true,\n extract: extract4,\n has_embed: has_embed4,\n match: (fn) => !!getExt(fn)\n};\n\n// src/processor.worker.ts\nconsole.log("Worker started");\nvar pendinggens = {};\nvar proxyAsyncGen = (id) => {\n return {\n next(arg) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n return(v) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n throw() {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n [Symbol.asyncIterator]() {\n return this;\n }\n };\n};\nvar deserializeMessage = (m) => {\n if (m instanceof MessagePort)\n return m;\n if (typeof m == "object" && m.type == "AsyncGenerator") {\n return proxyAsyncGen(m.id);\n }\n if (typeof m == "object") {\n for (const p in m) {\n m[p] = deserializeMessage(m[p]);\n }\n }\n return m;\n};\nvar processors = [thirdeye_default, pomf_default, pngv3_default, jpg_default];\nvar processImage = async (srcs, fn, hex, prevurl) => {\n const ret = await Promise.all(processors.filter((e) => e.match(fn)).map(async (proc) => {\n if (proc.skip) {\n const md5 = Buffer2.from(hex, "base64");\n if (await proc.has_embed(md5, fn, prevurl) === true) {\n return [await proc.extract(md5, fn), true];\n }\n return;\n }\n let succ = false;\n let cumul;\n do {\n try {\n const n = await srcs.next();\n if (n.done)\n return;\n const iter = streamRemote(n.value);\n if (!iter)\n return;\n cumul = Buffer2.alloc(0);\n let found;\n let chunk = { done: true };\n do {\n const { value, done } = await iter.next(typeof found === "boolean");\n if (done) {\n chunk = { done: true };\n } else {\n chunk = { done: false, value };\n cumul = Buffer2.concat([cumul, value]);\n const v = await proc.has_embed(cumul);\n if (typeof v == "string") {\n return [await proc.extract(cumul, v), false];\n }\n found = v;\n }\n } while (found !== false && !chunk.done);\n succ = true;\n await iter.next(true);\n if (found !== true) {\n return;\n }\n return [await proc.extract(cumul), false];\n } catch (err) {\n console.log(err);\n }\n } while (!succ);\n }));\n return ret.filter((e) => e).map((e) => e);\n};\nvar init2 = false;\n(async () => {\n onmessage = async (msg) => {\n const des = deserializeMessage(msg.data);\n switch (des.type) {\n case "ipc": {\n setupPort(des.port);\n const nset = await localLoad("settingsv2", initial_settings);\n settings.set(nset);\n break;\n }\n case "cmd": {\n switch (des.fun) {\n case "processImage": {\n if (!init2) {\n await new Promise((_) => {\n settings.subscribe((v) => {\n if (v)\n _();\n });\n });\n init2 = true;\n }\n const res = await processImage(des.args[0], des.args[1], des.args[2], des.args[3]);\n const tr = [];\n for (const ef of res) {\n for (const e of ef[0]) {\n if (e.thumbnail && Buffer2.isBuffer(e.thumbnail) || typeof e.thumbnail != "string")\n tr.push(e.thumbnail.buffer);\n if (Buffer2.isBuffer(e.data) || typeof e.data != "string" && !("url" in e.data))\n tr.push(e.data.buffer);\n }\n }\n postMessage({\n type: "reply",\n id: des.id,\n res\n }, [...new Set(tr)]);\n }\n }\n break;\n }\n case "ag": {\n const cb = pendinggens[des.id].shift();\n if (cb) {\n cb(des.res);\n }\n break;\n }\n }\n };\n})();\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n'); } // src/main.ts @@ -21824,11 +21822,15 @@ Use the WebExtension version of PEE if you want to use b4k!`); if (!el && e.classList.contains("postContainer")) el = [e]; if (el) { - appState.update((v) => { - v.processing += el.length; - return v; - }); - [...el].map((el2) => processPost(el2)); + for (const e2 of el) { + if (processed.has(e2.id)) + continue; + appState.update((v) => { + v.processing += 1; + return v; + }); + processPost(e2); + } } }); }); @@ -21963,11 +21965,13 @@ Use the WebExtension version of PEE if you want to use b4k!`); const postContainer = document.getElementById("pc" + post.substring(post.indexOf(".") + 1)); const fn = qp.getFilename(postContainer); if (fn) { - appState.update((v) => { - v.processing++; - return v; - }); - processPost(postContainer); + if (!processed.has(postContainer.id)) { + appState.update((v) => { + v.processing++; + return v; + }); + processPost(postContainer); + } } } }); diff --git a/firefox/dist/main.js b/firefox/dist/main.js index 0d492dc..640841a 100644 --- a/firefox/dist/main.js +++ b/firefox/dist/main.js @@ -73,7 +73,7 @@ var define_BUILD_VERSION_default; var init_define_BUILD_VERSION = __esm({ ""() { - define_BUILD_VERSION_default = [0, 313]; + define_BUILD_VERSION_default = [0, 314]; } }); @@ -11983,7 +11983,8 @@ let toread = 8; let len = 0; while (toread--) { - len = len * 2 + (yield); + const b2 = yield; + len = len * 2 + b2; } const b = yield; toread += 8; @@ -11992,12 +11993,13 @@ else len *= 2; while (toread--) { - len = len * 2 + (yield); + const b2 = yield; + len = len * 2 + b2; } - let rlen = revbyte(len, b ? 23 : 16); + const rlen = revbyte(len, b ? 23 : 16); len = rlen; - if (len >= 256) - len = rlen = 256; + if (len > 256) + throw new Error("Too big for Smash"); len *= 8; const chunks = []; const bw = new BitstreamWriter({ @@ -12467,15 +12469,9 @@ } const coeff = new Int16Array(comp.blocks.length); coeff.set(comp.blocks); - let pos = -1, extrBit = 0; - const cCount = coeff.length - 1; - let k = 0; - const out = new Uint8Array(coeff.length / 8 | 0); - let extrByte = 0; - let outPos = 0; - let bitsAvail = 0; - let code = 0; - let hash2 = 0; + let pos = -1, extrBit = 0, cCount = coeff.length - 1; + let n, k = 0; + let out = new Uint8Array(coeff.length / 8 | 0), extrByte = 0, outPos = 0, bitsAvail = 0, code = 0, hash2 = 0; while (bitsAvail < 4) { pos++; if (coeff[pos] === 0) { @@ -12489,7 +12485,7 @@ bitsAvail++; } k = (k & 15) + 1; - const n = (1 << k) - 1; + n = (1 << k) - 1; bitsAvail = 0; if (k == 1) { while (pos < cCount) { @@ -12550,9 +12546,7 @@ parse(data, tolerant = false) { let offset = 0; function _buildHuffmanTable(nrcodes, values) { - let codevalue = 0; - let pos_in_table = 0; - const HT = new Uint16Array(65536); + let codevalue = 0, pos_in_table = 0, HT = new Uint16Array(65536); for (let k = 0; k < 16; k++) { for (let j2 = 0; j2 < nrcodes[k]; j2++) { for (let i2 = codevalue << 15 - k, cntTo = codevalue + 1 << 15 - k; i2 < cntTo; i2++) { @@ -12566,10 +12560,8 @@ return HT; } const decodeScan = (data2, offset2, frame, components, resetInterval2, spectralStart, spectralEnd, successivePrev, successive) => { - const startOffset = offset2; - let bitsData = 0, bitsCount = 0, eobrun = 0; - const p1 = 1 << successive; - const m1 = -1 << successive; + let startOffset = offset2, bitsData = 0, bitsCount = 0, eobrun = 0, p1 = 1 << successive, m1 = -1 << successive; + const prevpos = 0; const decodeBaseline = (component2, pos) => { while (bitsCount < 16) { bitsData = (bitsData << 8) + (data2[offset2] | 0); @@ -12626,18 +12618,9 @@ offset2++; bitsCount += 8; } - if (component2.componentId == 1) { - component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1; - if (component2.blocks[pos + k2] < 1 << s - 1) - component2.blocks[pos + k2] += (-1 << s) + 1; - if (this.gengen && component2.blocks[pos + k2] != 0) { - const v = component2.blocks[pos + k2] < 0 ? 1 - (component2.blocks[pos + k2] & 1) : component2.blocks[pos + k2] & 1; - const it = this.gengen.next(v); - if (it.done) { - throw it.value; - } - } - } + component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1; + if (component2.blocks[pos + k2] < 1 << s - 1) + component2.blocks[pos + k2] += (-1 << s) + 1; bitsCount -= s; k2++; } @@ -12825,6 +12808,21 @@ decodeFn = decodeBaseline; } let marker, mcuExpected, i2, j2, k, n, mcusPerLine, mcusPerRow, x, y; + let lastflushidx = 0; + const flushBits = () => { + const component2 = components.find((e) => e.componentId == 1); + while (component2.blocks[lastflushidx + 1] !== void 0) { + const blk = component2.blocks[lastflushidx]; + if (blk != 0) { + const v = blk < 0 ? 1 - (blk & 1) : blk & 1; + const it = this.gengen.next(v); + if (it.done) { + throw it.value; + } + } + lastflushidx++; + } + }; if (components.length == 1) { mcusPerLine = components[0].blocksPerLine; mcusPerRow = components[0].blocksPerColumn; @@ -12859,6 +12857,7 @@ decodeFn(components[i2], (y * components[i2].blocksPerLineForMcu + x) * 64); } } + flushBits(); } } else { mcusPerLine = frame.mcusPerLine; @@ -12900,6 +12899,7 @@ } } } + flushBits(); } } offset2 -= bitsCount / 8 | 0; @@ -12965,8 +12965,7 @@ }); if (__privateGet(this, _frame).scanLines * __privateGet(this, _frame).samplesPerLine > this.maxPixels) throw "Image is too big."; - const componentsCount = data[offset++]; - let componentId; + var componentsCount = data[offset++], componentId; let maxH = 0, maxV = 0; for (i = 0; i < componentsCount; i++) { componentId = data[offset]; @@ -13422,9 +13421,9 @@ __f5write = new WeakSet(); _f5write_fn = function(coeff, data, k) { const coeff_count = coeff.length; - let _changed = 0, _embedded = 0, _examined = 0, _thrown = 0, shuffled_index = 0, i, ii; + let _changed = 0, _embedded = 0, _examined = 0, _thrown = 0, shuffled_index = 0, i, n, ii; let next_bit_to_embed = 0, byte_to_embed = data.length, data_idx = 0, available_bits_to_embed = 0; - const n = (1 << k) - 1; + n = (1 << k) - 1; byte_to_embed = k - 1; byte_to_embed ^= 0; next_bit_to_embed = byte_to_embed & 1; @@ -13495,8 +13494,7 @@ } _examined += n; while (true) { - let vhash = 0; - let extracted_bit; + var vhash = 0, extracted_bit; for (i = 0; i < code_word.length; i++) { if (coeff[code_word[i]] > 0) { extracted_bit = coeff[code_word[i]] & 1; @@ -21554,7 +21552,7 @@ // src/processor.worker.ts function Worker2() { - return inlineWorker('var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key2 of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key2) && key2 !== except)\n __defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));\nvar __decorateClass = (decorators, target, key2, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key2) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key2, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key2, result);\n return result;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError("Cannot " + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, "read from private field");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError("Cannot add the same private member more than once");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, "write to private field");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, "access private method");\n return method;\n};\nvar __toBinary = /* @__PURE__ */ (() => {\n var table = new Uint8Array(128);\n for (var i = 0; i < 64; i++)\n table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i;\n return (base64) => {\n var n = base64.length, bytes = new Uint8Array((n - (base64[n - 1] == "=") - (base64[n - 2] == "=")) * 3 / 4 | 0);\n for (var i2 = 0, j = 0; i2 < n; ) {\n var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)];\n var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)];\n bytes[j++] = c0 << 2 | c1 >> 4;\n bytes[j++] = c1 << 4 | c2 >> 2;\n bytes[j++] = c2 << 6 | c3;\n }\n return bytes;\n };\n})();\n\n// \nvar init_define_BUILD_VERSION = __esm({\n ""() {\n }\n});\n\n// node_modules/base64-js/index.js\nvar require_base64_js = __commonJS({\n "node_modules/base64-js/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.byteLength = byteLength;\n exports.toByteArray = toByteArray;\n exports.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array;\n var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";\n for (i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n var i;\n var len;\n revLookup["-".charCodeAt(0)] = 62;\n revLookup["_".charCodeAt(0)] = 63;\n function getLens(b64) {\n var len2 = b64.length;\n if (len2 % 4 > 0) {\n throw new Error("Invalid string. Length must be a multiple of 4");\n }\n var validLen = b64.indexOf("=");\n if (validLen === -1)\n validLen = len2;\n var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n }\n function byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0;\n var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i2;\n for (i2 = 0; i2 < len2; i2 += 4) {\n tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)];\n arr[curByte++] = tmp >> 16 & 255;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n return arr;\n }\n function tripletToBase64(num) {\n return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];\n }\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n for (var i2 = start; i2 < end; i2 += 3) {\n tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255);\n output.push(tripletToBase64(tmp));\n }\n return output.join("");\n }\n function fromByteArray(uint8) {\n var tmp;\n var len2 = uint8.length;\n var extraBytes = len2 % 3;\n var parts = [];\n var maxChunkLength = 16383;\n for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) {\n parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength));\n }\n if (extraBytes === 1) {\n tmp = uint8[len2 - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "==");\n } else if (extraBytes === 2) {\n tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "=");\n }\n return parts.join("");\n }\n }\n});\n\n// node_modules/ieee754/index.js\nvar require_ieee754 = __commonJS({\n "node_modules/ieee754/index.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.read = function(buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n exports.write = function(buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {\n }\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {\n }\n buffer[offset + i - d] |= s * 128;\n };\n }\n});\n\n// node_modules/buffer/index.js\nvar require_buffer = __commonJS({\n "node_modules/buffer/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var base64 = require_base64_js();\n var ieee7542 = require_ieee754();\n var customInspectSymbol = typeof Symbol === "function" && typeof Symbol["for"] === "function" ? Symbol["for"]("nodejs.util.inspect.custom") : null;\n exports.Buffer = Buffer13;\n exports.SlowBuffer = SlowBuffer;\n exports.INSPECT_MAX_BYTES = 50;\n var K_MAX_LENGTH = 2147483647;\n exports.kMaxLength = K_MAX_LENGTH;\n Buffer13.TYPED_ARRAY_SUPPORT = typedArraySupport();\n if (!Buffer13.TYPED_ARRAY_SUPPORT && typeof console !== "undefined" && typeof console.error === "function") {\n console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");\n }\n function typedArraySupport() {\n try {\n const arr = new Uint8Array(1);\n const proto = { foo: function() {\n return 42;\n } };\n Object.setPrototypeOf(proto, Uint8Array.prototype);\n Object.setPrototypeOf(arr, proto);\n return arr.foo() === 42;\n } catch (e) {\n return false;\n }\n }\n Object.defineProperty(Buffer13.prototype, "parent", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.buffer;\n }\n });\n Object.defineProperty(Buffer13.prototype, "offset", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.byteOffset;\n }\n });\n function createBuffer(length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError(\'The value "\' + length + \'" is invalid for option "size"\');\n }\n const buf2 = new Uint8Array(length);\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function Buffer13(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n if (typeof encodingOrOffset === "string") {\n throw new TypeError(\'The "string" argument must be of type string. Received type number\');\n }\n return allocUnsafe(arg);\n }\n return from(arg, encodingOrOffset, length);\n }\n Buffer13.poolSize = 8192;\n function from(value, encodingOrOffset, length) {\n if (typeof value === "string") {\n return fromString(value, encodingOrOffset);\n }\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value);\n }\n if (value == null) {\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof SharedArrayBuffer !== "undefined" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof value === "number") {\n throw new TypeError(\'The "value" argument must not be of type number. Received type number\');\n }\n const valueOf = value.valueOf && value.valueOf();\n if (valueOf != null && valueOf !== value) {\n return Buffer13.from(valueOf, encodingOrOffset, length);\n }\n const b = fromObject(value);\n if (b)\n return b;\n if (typeof Symbol !== "undefined" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === "function") {\n return Buffer13.from(value[Symbol.toPrimitive]("string"), encodingOrOffset, length);\n }\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n Buffer13.from = function(value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n };\n Object.setPrototypeOf(Buffer13.prototype, Uint8Array.prototype);\n Object.setPrototypeOf(Buffer13, Uint8Array);\n function assertSize(size) {\n if (typeof size !== "number") {\n throw new TypeError(\'"size" argument must be of type number\');\n } else if (size < 0) {\n throw new RangeError(\'The value "\' + size + \'" is invalid for option "size"\');\n }\n }\n function alloc(size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(size);\n }\n if (fill !== void 0) {\n return typeof encoding === "string" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n return createBuffer(size);\n }\n Buffer13.alloc = function(size, fill, encoding) {\n return alloc(size, fill, encoding);\n };\n function allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n }\n Buffer13.allocUnsafe = function(size) {\n return allocUnsafe(size);\n };\n Buffer13.allocUnsafeSlow = function(size) {\n return allocUnsafe(size);\n };\n function fromString(string, encoding) {\n if (typeof encoding !== "string" || encoding === "") {\n encoding = "utf8";\n }\n if (!Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n const length = byteLength(string, encoding) | 0;\n let buf2 = createBuffer(length);\n const actual = buf2.write(string, encoding);\n if (actual !== length) {\n buf2 = buf2.slice(0, actual);\n }\n return buf2;\n }\n function fromArrayLike(array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0;\n const buf2 = createBuffer(length);\n for (let i = 0; i < length; i += 1) {\n buf2[i] = array[i] & 255;\n }\n return buf2;\n }\n function fromArrayView(arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView);\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);\n }\n return fromArrayLike(arrayView);\n }\n function fromArrayBuffer(array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError(\'"offset" is outside of buffer bounds\');\n }\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError(\'"length" is outside of buffer bounds\');\n }\n let buf2;\n if (byteOffset === void 0 && length === void 0) {\n buf2 = new Uint8Array(array);\n } else if (length === void 0) {\n buf2 = new Uint8Array(array, byteOffset);\n } else {\n buf2 = new Uint8Array(array, byteOffset, length);\n }\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function fromObject(obj) {\n if (Buffer13.isBuffer(obj)) {\n const len = checked(obj.length) | 0;\n const buf2 = createBuffer(len);\n if (buf2.length === 0) {\n return buf2;\n }\n obj.copy(buf2, 0, 0, len);\n return buf2;\n }\n if (obj.length !== void 0) {\n if (typeof obj.length !== "number" || numberIsNaN(obj.length)) {\n return createBuffer(0);\n }\n return fromArrayLike(obj);\n }\n if (obj.type === "Buffer" && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n }\n function checked(length) {\n if (length >= K_MAX_LENGTH) {\n throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + K_MAX_LENGTH.toString(16) + " bytes");\n }\n return length | 0;\n }\n function SlowBuffer(length) {\n if (+length != length) {\n length = 0;\n }\n return Buffer13.alloc(+length);\n }\n Buffer13.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer13.prototype;\n };\n Buffer13.compare = function compare(a, b) {\n if (isInstance(a, Uint8Array))\n a = Buffer13.from(a, a.offset, a.byteLength);\n if (isInstance(b, Uint8Array))\n b = Buffer13.from(b, b.offset, b.byteLength);\n if (!Buffer13.isBuffer(a) || !Buffer13.isBuffer(b)) {\n throw new TypeError(\'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array\');\n }\n if (a === b)\n return 0;\n let x = a.length;\n let y = b.length;\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n Buffer13.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "latin1":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return true;\n default:\n return false;\n }\n };\n Buffer13.concat = function concat(list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n }\n if (list.length === 0) {\n return Buffer13.alloc(0);\n }\n let i;\n if (length === void 0) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n const buffer = Buffer13.allocUnsafe(length);\n let pos = 0;\n for (i = 0; i < list.length; ++i) {\n let buf2 = list[i];\n if (isInstance(buf2, Uint8Array)) {\n if (pos + buf2.length > buffer.length) {\n if (!Buffer13.isBuffer(buf2))\n buf2 = Buffer13.from(buf2);\n buf2.copy(buffer, pos);\n } else {\n Uint8Array.prototype.set.call(buffer, buf2, pos);\n }\n } else if (!Buffer13.isBuffer(buf2)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n } else {\n buf2.copy(buffer, pos);\n }\n pos += buf2.length;\n }\n return buffer;\n };\n function byteLength(string, encoding) {\n if (Buffer13.isBuffer(string)) {\n return string.length;\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength;\n }\n if (typeof string !== "string") {\n throw new TypeError(\'The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type \' + typeof string);\n }\n const len = string.length;\n const mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0)\n return 0;\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "ascii":\n case "latin1":\n case "binary":\n return len;\n case "utf8":\n case "utf-8":\n return utf8ToBytes(string).length;\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return len * 2;\n case "hex":\n return len >>> 1;\n case "base64":\n return base64ToBytes(string).length;\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length;\n }\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.byteLength = byteLength;\n function slowToString(encoding, start, end) {\n let loweredCase = false;\n if (start === void 0 || start < 0) {\n start = 0;\n }\n if (start > this.length) {\n return "";\n }\n if (end === void 0 || end > this.length) {\n end = this.length;\n }\n if (end <= 0) {\n return "";\n }\n end >>>= 0;\n start >>>= 0;\n if (end <= start) {\n return "";\n }\n if (!encoding)\n encoding = "utf8";\n while (true) {\n switch (encoding) {\n case "hex":\n return hexSlice(this, start, end);\n case "utf8":\n case "utf-8":\n return utf8Slice(this, start, end);\n case "ascii":\n return asciiSlice(this, start, end);\n case "latin1":\n case "binary":\n return latin1Slice(this, start, end);\n case "base64":\n return base64Slice(this, start, end);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return utf16leSlice(this, start, end);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = (encoding + "").toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.prototype._isBuffer = true;\n function swap(b, n, m) {\n const i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n Buffer13.prototype.swap16 = function swap16() {\n const len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 16-bits");\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this;\n };\n Buffer13.prototype.swap32 = function swap32() {\n const len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 32-bits");\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this;\n };\n Buffer13.prototype.swap64 = function swap64() {\n const len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 64-bits");\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this;\n };\n Buffer13.prototype.toString = function toString() {\n const length = this.length;\n if (length === 0)\n return "";\n if (arguments.length === 0)\n return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n };\n Buffer13.prototype.toLocaleString = Buffer13.prototype.toString;\n Buffer13.prototype.equals = function equals(b) {\n if (!Buffer13.isBuffer(b))\n throw new TypeError("Argument must be a Buffer");\n if (this === b)\n return true;\n return Buffer13.compare(this, b) === 0;\n };\n Buffer13.prototype.inspect = function inspect() {\n let str = "";\n const max = exports.INSPECT_MAX_BYTES;\n str = this.toString("hex", 0, max).replace(/(.{2})/g, "$1 ").trim();\n if (this.length > max)\n str += " ... ";\n return "";\n };\n if (customInspectSymbol) {\n Buffer13.prototype[customInspectSymbol] = Buffer13.prototype.inspect;\n }\n Buffer13.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer13.from(target, target.offset, target.byteLength);\n }\n if (!Buffer13.isBuffer(target)) {\n throw new TypeError(\'The "target" argument must be one of type Buffer or Uint8Array. Received type \' + typeof target);\n }\n if (start === void 0) {\n start = 0;\n }\n if (end === void 0) {\n end = target ? target.length : 0;\n }\n if (thisStart === void 0) {\n thisStart = 0;\n }\n if (thisEnd === void 0) {\n thisEnd = this.length;\n }\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError("out of range index");\n }\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n if (thisStart >= thisEnd) {\n return -1;\n }\n if (start >= end) {\n return 1;\n }\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target)\n return 0;\n let x = thisEnd - thisStart;\n let y = end - start;\n const len = Math.min(x, y);\n const thisCopy = this.slice(thisStart, thisEnd);\n const targetCopy = target.slice(start, end);\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n if (buffer.length === 0)\n return -1;\n if (typeof byteOffset === "string") {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 2147483647) {\n byteOffset = 2147483647;\n } else if (byteOffset < -2147483648) {\n byteOffset = -2147483648;\n }\n byteOffset = +byteOffset;\n if (numberIsNaN(byteOffset)) {\n byteOffset = dir ? 0 : buffer.length - 1;\n }\n if (byteOffset < 0)\n byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir)\n return -1;\n else\n byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir)\n byteOffset = 0;\n else\n return -1;\n }\n if (typeof val === "string") {\n val = Buffer13.from(val, encoding);\n }\n if (Buffer13.isBuffer(val)) {\n if (val.length === 0) {\n return -1;\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === "number") {\n val = val & 255;\n if (typeof Uint8Array.prototype.indexOf === "function") {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n throw new TypeError("val must be string, number or Buffer");\n }\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n let indexSize = 1;\n let arrLength = arr.length;\n let valLength = val.length;\n if (encoding !== void 0) {\n encoding = String(encoding).toLowerCase();\n if (encoding === "ucs2" || encoding === "ucs-2" || encoding === "utf16le" || encoding === "utf-16le") {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n function read2(buf2, i2) {\n if (indexSize === 1) {\n return buf2[i2];\n } else {\n return buf2.readUInt16BE(i2 * indexSize);\n }\n }\n let i;\n if (dir) {\n let foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read2(arr, i) === read2(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1)\n foundIndex = i;\n if (i - foundIndex + 1 === valLength)\n return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1)\n i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength)\n byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n let found = true;\n for (let j = 0; j < valLength; j++) {\n if (read2(arr, i + j) !== read2(val, j)) {\n found = false;\n break;\n }\n }\n if (found)\n return i;\n }\n }\n return -1;\n }\n Buffer13.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n Buffer13.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n Buffer13.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n function hexWrite(buf2, string, offset, length) {\n offset = Number(offset) || 0;\n const remaining = buf2.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n const strLen = string.length;\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n let i;\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16);\n if (numberIsNaN(parsed))\n return i;\n buf2[offset + i] = parsed;\n }\n return i;\n }\n function utf8Write(buf2, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n function asciiWrite(buf2, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf2, offset, length);\n }\n function base64Write(buf2, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf2, offset, length);\n }\n function ucs2Write(buf2, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n Buffer13.prototype.write = function write2(string, offset, length, encoding) {\n if (offset === void 0) {\n encoding = "utf8";\n length = this.length;\n offset = 0;\n } else if (length === void 0 && typeof offset === "string") {\n encoding = offset;\n length = this.length;\n offset = 0;\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n if (isFinite(length)) {\n length = length >>> 0;\n if (encoding === void 0)\n encoding = "utf8";\n } else {\n encoding = length;\n length = void 0;\n }\n } else {\n throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");\n }\n const remaining = this.length - offset;\n if (length === void 0 || length > remaining)\n length = remaining;\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError("Attempt to write outside buffer bounds");\n }\n if (!encoding)\n encoding = "utf8";\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "hex":\n return hexWrite(this, string, offset, length);\n case "utf8":\n case "utf-8":\n return utf8Write(this, string, offset, length);\n case "ascii":\n case "latin1":\n case "binary":\n return asciiWrite(this, string, offset, length);\n case "base64":\n return base64Write(this, string, offset, length);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return ucs2Write(this, string, offset, length);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n Buffer13.prototype.toJSON = function toJSON() {\n return {\n type: "Buffer",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n function base64Slice(buf2, start, end) {\n if (start === 0 && end === buf2.length) {\n return base64.fromByteArray(buf2);\n } else {\n return base64.fromByteArray(buf2.slice(start, end));\n }\n }\n function utf8Slice(buf2, start, end) {\n end = Math.min(buf2.length, end);\n const res = [];\n let i = start;\n while (i < end) {\n const firstByte = buf2[i];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf2[i + 1];\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n fourthByte = buf2[i + 3];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n res.push(codePoint);\n i += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n }\n var MAX_ARGUMENTS_LENGTH = 4096;\n function decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints);\n }\n let res = "";\n let i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n }\n function asciiSlice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i] & 127);\n }\n return ret;\n }\n function latin1Slice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i]);\n }\n return ret;\n }\n function hexSlice(buf2, start, end) {\n const len = buf2.length;\n if (!start || start < 0)\n start = 0;\n if (!end || end < 0 || end > len)\n end = len;\n let out = "";\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf2[i]];\n }\n return out;\n }\n function utf16leSlice(buf2, start, end) {\n const bytes = buf2.slice(start, end);\n let res = "";\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res;\n }\n Buffer13.prototype.slice = function slice(start, end) {\n const len = this.length;\n start = ~~start;\n end = end === void 0 ? len : ~~end;\n if (start < 0) {\n start += len;\n if (start < 0)\n start = 0;\n } else if (start > len) {\n start = len;\n }\n if (end < 0) {\n end += len;\n if (end < 0)\n end = 0;\n } else if (end > len) {\n end = len;\n }\n if (end < start)\n end = start;\n const newBuf = this.subarray(start, end);\n Object.setPrototypeOf(newBuf, Buffer13.prototype);\n return newBuf;\n };\n function checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0)\n throw new RangeError("offset is not uint");\n if (offset + ext > length)\n throw new RangeError("Trying to access beyond buffer length");\n }\n Buffer13.prototype.readUintLE = Buffer13.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUintBE = Buffer13.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n checkOffset(offset, byteLength2, this.length);\n }\n let val = this[offset + --byteLength2];\n let mul = 1;\n while (byteLength2 > 0 && (mul *= 256)) {\n val += this[offset + --byteLength2] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUint8 = Buffer13.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n return this[offset];\n };\n Buffer13.prototype.readUint16LE = Buffer13.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n };\n Buffer13.prototype.readUint16BE = Buffer13.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n };\n Buffer13.prototype.readUint32LE = Buffer13.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;\n };\n Buffer13.prototype.readUint32BE = Buffer13.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n Buffer13.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const lo = first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24;\n const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last * 2 ** 24;\n return BigInt(lo) + (BigInt(hi) << BigInt(32));\n });\n Buffer13.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const hi = first * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last;\n return (BigInt(hi) << BigInt(32)) + BigInt(lo);\n });\n Buffer13.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let i = byteLength2;\n let mul = 1;\n let val = this[offset + --i];\n while (i > 0 && (mul *= 256)) {\n val += this[offset + --i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readInt8 = function readInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n if (!(this[offset] & 128))\n return this[offset];\n return (255 - this[offset] + 1) * -1;\n };\n Buffer13.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset] | this[offset + 1] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset + 1] | this[offset] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n Buffer13.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n Buffer13.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last << 24);\n return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24);\n });\n Buffer13.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = (first << 24) + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last);\n });\n Buffer13.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, true, 23, 4);\n };\n Buffer13.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, false, 23, 4);\n };\n Buffer13.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, true, 52, 8);\n };\n Buffer13.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, false, 52, 8);\n };\n function checkInt(buf2, value, offset, ext, max, min) {\n if (!Buffer13.isBuffer(buf2))\n throw new TypeError(\'"buffer" argument must be a Buffer instance\');\n if (value > max || value < min)\n throw new RangeError(\'"value" argument is out of bounds\');\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n }\n Buffer13.prototype.writeUintLE = Buffer13.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let mul = 1;\n let i = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUintBE = Buffer13.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUint8 = Buffer13.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 255, 0);\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeUint16LE = Buffer13.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeUint16BE = Buffer13.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeUint32LE = Buffer13.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeUint32BE = Buffer13.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n function wrtBigUInt64LE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n return offset;\n }\n function wrtBigUInt64BE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset + 7] = lo;\n lo = lo >> 8;\n buf2[offset + 6] = lo;\n lo = lo >> 8;\n buf2[offset + 5] = lo;\n lo = lo >> 8;\n buf2[offset + 4] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset + 3] = hi;\n hi = hi >> 8;\n buf2[offset + 2] = hi;\n hi = hi >> 8;\n buf2[offset + 1] = hi;\n hi = hi >> 8;\n buf2[offset] = hi;\n return offset + 8;\n }\n Buffer13.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = 0;\n let mul = 1;\n let sub = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n let sub = 0;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 127, -128);\n if (value < 0)\n value = 255 + value + 1;\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n return offset + 4;\n };\n Buffer13.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n if (value < 0)\n value = 4294967295 + value + 1;\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n Buffer13.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n function checkIEEE754(buf2, value, offset, ext, max, min) {\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n if (offset < 0)\n throw new RangeError("Index out of range");\n }\n function writeFloat(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 4, 34028234663852886e22, -34028234663852886e22);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n Buffer13.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n function writeDouble(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 8, 17976931348623157e292, -17976931348623157e292);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n Buffer13.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n };\n Buffer13.prototype.copy = function copy(target, targetStart, start, end) {\n if (!Buffer13.isBuffer(target))\n throw new TypeError("argument should be a Buffer");\n if (!start)\n start = 0;\n if (!end && end !== 0)\n end = this.length;\n if (targetStart >= target.length)\n targetStart = target.length;\n if (!targetStart)\n targetStart = 0;\n if (end > 0 && end < start)\n end = start;\n if (end === start)\n return 0;\n if (target.length === 0 || this.length === 0)\n return 0;\n if (targetStart < 0) {\n throw new RangeError("targetStart out of bounds");\n }\n if (start < 0 || start >= this.length)\n throw new RangeError("Index out of range");\n if (end < 0)\n throw new RangeError("sourceEnd out of bounds");\n if (end > this.length)\n end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n const len = end - start;\n if (this === target && typeof Uint8Array.prototype.copyWithin === "function") {\n this.copyWithin(targetStart, start, end);\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart);\n }\n return len;\n };\n Buffer13.prototype.fill = function fill(val, start, end, encoding) {\n if (typeof val === "string") {\n if (typeof start === "string") {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === "string") {\n encoding = end;\n end = this.length;\n }\n if (encoding !== void 0 && typeof encoding !== "string") {\n throw new TypeError("encoding must be a string");\n }\n if (typeof encoding === "string" && !Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0);\n if (encoding === "utf8" && code < 128 || encoding === "latin1") {\n val = code;\n }\n }\n } else if (typeof val === "number") {\n val = val & 255;\n } else if (typeof val === "boolean") {\n val = Number(val);\n }\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError("Out of range index");\n }\n if (end <= start) {\n return this;\n }\n start = start >>> 0;\n end = end === void 0 ? this.length : end >>> 0;\n if (!val)\n val = 0;\n let i;\n if (typeof val === "number") {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n const bytes = Buffer13.isBuffer(val) ? val : Buffer13.from(val, encoding);\n const len = bytes.length;\n if (len === 0) {\n throw new TypeError(\'The value "\' + val + \'" is invalid for argument "value"\');\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n return this;\n };\n var errors = {};\n function E(sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor() {\n super();\n Object.defineProperty(this, "message", {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n });\n this.name = `${this.name} [${sym}]`;\n this.stack;\n delete this.name;\n }\n get code() {\n return sym;\n }\n set code(value) {\n Object.defineProperty(this, "code", {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n });\n }\n toString() {\n return `${this.name} [${sym}]: ${this.message}`;\n }\n };\n }\n E("ERR_BUFFER_OUT_OF_BOUNDS", function(name) {\n if (name) {\n return `${name} is outside of buffer bounds`;\n }\n return "Attempt to access memory outside buffer bounds";\n }, RangeError);\n E("ERR_INVALID_ARG_TYPE", function(name, actual) {\n return `The "${name}" argument must be of type number. Received type ${typeof actual}`;\n }, TypeError);\n E("ERR_OUT_OF_RANGE", function(str, range, input) {\n let msg = `The value of "${str}" is out of range.`;\n let received = input;\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input));\n } else if (typeof input === "bigint") {\n received = String(input);\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received);\n }\n received += "n";\n }\n msg += ` It must be ${range}. Received ${received}`;\n return msg;\n }, RangeError);\n function addNumericalSeparator(val) {\n let res = "";\n let i = val.length;\n const start = val[0] === "-" ? 1 : 0;\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`;\n }\n return `${val.slice(0, i)}${res}`;\n }\n function checkBounds(buf2, offset, byteLength2) {\n validateNumber(offset, "offset");\n if (buf2[offset] === void 0 || buf2[offset + byteLength2] === void 0) {\n boundsError(offset, buf2.length - (byteLength2 + 1));\n }\n }\n function checkIntBI(value, min, max, buf2, offset, byteLength2) {\n if (value > max || value < min) {\n const n = typeof min === "bigint" ? "n" : "";\n let range;\n if (byteLength2 > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength2 + 1) * 8}${n}`;\n } else {\n range = `>= -(2${n} ** ${(byteLength2 + 1) * 8 - 1}${n}) and < 2 ** ${(byteLength2 + 1) * 8 - 1}${n}`;\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`;\n }\n throw new errors.ERR_OUT_OF_RANGE("value", range, value);\n }\n checkBounds(buf2, offset, byteLength2);\n }\n function validateNumber(value, name) {\n if (typeof value !== "number") {\n throw new errors.ERR_INVALID_ARG_TYPE(name, "number", value);\n }\n }\n function boundsError(value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type);\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", "an integer", value);\n }\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n }\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", `>= ${type ? 1 : 0} and <= ${length}`, value);\n }\n var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n function base64clean(str) {\n str = str.split("=")[0];\n str = str.trim().replace(INVALID_BASE64_RE, "");\n if (str.length < 2)\n return "";\n while (str.length % 4 !== 0) {\n str = str + "=";\n }\n return str;\n }\n function utf8ToBytes(string, units) {\n units = units || Infinity;\n let codePoint;\n const length = string.length;\n let leadSurrogate = null;\n const bytes = [];\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n if (codePoint > 55295 && codePoint < 57344) {\n if (!leadSurrogate) {\n if (codePoint > 56319) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n }\n leadSurrogate = codePoint;\n continue;\n }\n if (codePoint < 56320) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n }\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n }\n leadSurrogate = null;\n if (codePoint < 128) {\n if ((units -= 1) < 0)\n break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0)\n break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0)\n break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0)\n break;\n bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else {\n throw new Error("Invalid code point");\n }\n }\n return bytes;\n }\n function asciiToBytes(str) {\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n byteArray.push(str.charCodeAt(i) & 255);\n }\n return byteArray;\n }\n function utf16leToBytes(str, units) {\n let c, hi, lo;\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0)\n break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n return byteArray;\n }\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n function blitBuffer(src, dst, offset, length) {\n let i;\n for (i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length)\n break;\n dst[i + offset] = src[i];\n }\n return i;\n }\n function isInstance(obj, type) {\n return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n }\n function numberIsNaN(obj) {\n return obj !== obj;\n }\n var hexSliceLookupTable = function() {\n const alphabet = "0123456789abcdef";\n const table = new Array(256);\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16;\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n return table;\n }();\n function defineBigIntMethod(fn) {\n return typeof BigInt === "undefined" ? BufferBigIntNotDefined : fn;\n }\n function BufferBigIntNotDefined() {\n throw new Error("BigInt not supported");\n }\n }\n});\n\n// esbuild.inject.js\nvar Buffer2;\nvar init_esbuild_inject = __esm({\n "esbuild.inject.js"() {\n "use strict";\n Buffer2 = require_buffer().Buffer;\n }\n});\n\n// node_modules/crc-32/crc32.js\nvar require_crc32 = __commonJS({\n "node_modules/crc-32/crc32.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var CRC32;\n (function(factory) {\n if (typeof DO_NOT_EXPORT_CRC === "undefined") {\n if (typeof exports === "object") {\n factory(exports);\n } else if (typeof define === "function" && define.amd) {\n define(function() {\n var module2 = {};\n factory(module2);\n return module2;\n });\n } else {\n factory(CRC32 = {});\n }\n } else {\n factory(CRC32 = {});\n }\n })(function(CRC322) {\n CRC322.version = "1.2.0";\n function signed_crc_table() {\n var c = 0, table = new Array(256);\n for (var n = 0; n != 256; ++n) {\n c = n;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n table[n] = c;\n }\n return typeof Int32Array !== "undefined" ? new Int32Array(table) : table;\n }\n var T = signed_crc_table();\n function crc32_bstr(bstr, seed) {\n var C = seed ^ -1, L = bstr.length - 1;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n }\n if (i === L)\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i)) & 255];\n return C ^ -1;\n }\n function crc32_buf(buf2, seed) {\n if (buf2.length > 1e4)\n return crc32_buf_8(buf2, seed);\n var C = seed ^ -1, L = buf2.length - 3;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 3)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_buf_8(buf2, seed) {\n var C = seed ^ -1, L = buf2.length - 7;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 7)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_str(str, seed) {\n var C = seed ^ -1;\n for (var i = 0, L = str.length, c, d; i < L; ) {\n c = str.charCodeAt(i++);\n if (c < 128) {\n C = C >>> 8 ^ T[(C ^ c) & 255];\n } else if (c < 2048) {\n C = C >>> 8 ^ T[(C ^ (192 | c >> 6 & 31)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n } else if (c >= 55296 && c < 57344) {\n c = (c & 1023) + 64;\n d = str.charCodeAt(i++) & 1023;\n C = C >>> 8 ^ T[(C ^ (240 | c >> 8 & 7)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 2 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d >> 6 & 15 | (c & 3) << 4)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d & 63)) & 255];\n } else {\n C = C >>> 8 ^ T[(C ^ (224 | c >> 12 & 15)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 6 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n }\n }\n return C ^ -1;\n }\n CRC322.table = T;\n CRC322.bstr = crc32_bstr;\n CRC322.buf = crc32_buf;\n CRC322.str = crc32_str;\n });\n }\n});\n\n// node_modules/events/events.js\nvar require_events = __commonJS({\n "node_modules/events/events.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var R = typeof Reflect === "object" ? Reflect : null;\n var ReflectApply = R && typeof R.apply === "function" ? R.apply : function ReflectApply2(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n };\n var ReflectOwnKeys;\n if (R && typeof R.ownKeys === "function") {\n ReflectOwnKeys = R.ownKeys;\n } else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n } else {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target);\n };\n }\n function ProcessEmitWarning(warning) {\n if (console && console.warn)\n console.warn(warning);\n }\n var NumberIsNaN = Number.isNaN || function NumberIsNaN2(value) {\n return value !== value;\n };\n function EventEmitter() {\n EventEmitter.init.call(this);\n }\n module.exports = EventEmitter;\n module.exports.once = once;\n EventEmitter.EventEmitter = EventEmitter;\n EventEmitter.prototype._events = void 0;\n EventEmitter.prototype._eventsCount = 0;\n EventEmitter.prototype._maxListeners = void 0;\n var defaultMaxListeners = 10;\n function checkListener(listener) {\n if (typeof listener !== "function") {\n throw new TypeError(\'The "listener" argument must be of type Function. Received type \' + typeof listener);\n }\n }\n Object.defineProperty(EventEmitter, "defaultMaxListeners", {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== "number" || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError(\'The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received \' + arg + ".");\n }\n defaultMaxListeners = arg;\n }\n });\n EventEmitter.init = function() {\n if (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n }\n this._maxListeners = this._maxListeners || void 0;\n };\n EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== "number" || n < 0 || NumberIsNaN(n)) {\n throw new RangeError(\'The value of "n" is out of range. It must be a non-negative number. Received \' + n + ".");\n }\n this._maxListeners = n;\n return this;\n };\n function _getMaxListeners(that) {\n if (that._maxListeners === void 0)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n }\n EventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n };\n EventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++)\n args.push(arguments[i]);\n var doError = type === "error";\n var events = this._events;\n if (events !== void 0)\n doError = doError && events.error === void 0;\n else if (!doError)\n return false;\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n throw er;\n }\n var err = new Error("Unhandled error." + (er ? " (" + er.message + ")" : ""));\n err.context = er;\n throw err;\n }\n var handler = events[type];\n if (handler === void 0)\n return false;\n if (typeof handler === "function") {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n return true;\n };\n function _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n if (events === void 0) {\n events = target._events = /* @__PURE__ */ Object.create(null);\n target._eventsCount = 0;\n } else {\n if (events.newListener !== void 0) {\n target.emit("newListener", type, listener.listener ? listener.listener : listener);\n events = target._events;\n }\n existing = events[type];\n }\n if (existing === void 0) {\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === "function") {\n existing = events[type] = prepend ? [listener, existing] : [existing, listener];\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n var w = new Error("Possible EventEmitter memory leak detected. " + existing.length + " " + String(type) + " listeners added. Use emitter.setMaxListeners() to increase limit");\n w.name = "MaxListenersExceededWarning";\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n return target;\n }\n EventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n };\n EventEmitter.prototype.on = EventEmitter.prototype.addListener;\n EventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n function onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n }\n function _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: void 0, target, type, listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n }\n EventEmitter.prototype.once = function once2(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === void 0)\n return this;\n list = events[type];\n if (list === void 0)\n return this;\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit("removeListener", type, list.listener || listener);\n }\n } else if (typeof list !== "function") {\n position = -1;\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n if (position < 0)\n return this;\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n if (list.length === 1)\n events[type] = list[0];\n if (events.removeListener !== void 0)\n this.emit("removeListener", type, originalListener || listener);\n }\n return this;\n };\n EventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === void 0)\n return this;\n if (events.removeListener === void 0) {\n if (arguments.length === 0) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== void 0) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key2;\n for (i = 0; i < keys.length; ++i) {\n key2 = keys[i];\n if (key2 === "removeListener")\n continue;\n this.removeAllListeners(key2);\n }\n this.removeAllListeners("removeListener");\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n listeners = events[type];\n if (typeof listeners === "function") {\n this.removeListener(type, listeners);\n } else if (listeners !== void 0) {\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n return this;\n };\n function _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === void 0)\n return [];\n var evlistener = events[type];\n if (evlistener === void 0)\n return [];\n if (typeof evlistener === "function")\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n }\n EventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n };\n EventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n };\n EventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === "function") {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n };\n EventEmitter.prototype.listenerCount = listenerCount;\n function listenerCount(type) {\n var events = this._events;\n if (events !== void 0) {\n var evlistener = events[type];\n if (typeof evlistener === "function") {\n return 1;\n } else if (evlistener !== void 0) {\n return evlistener.length;\n }\n }\n return 0;\n }\n EventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n };\n function arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n }\n function spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n }\n function unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n }\n function once(emitter, name) {\n return new Promise(function(resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n function resolver() {\n if (typeof emitter.removeListener === "function") {\n emitter.removeListener("error", errorListener);\n }\n resolve([].slice.call(arguments));\n }\n ;\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== "error") {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n }\n function addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === "function") {\n eventTargetAgnosticAddListener(emitter, "error", handler, flags);\n }\n }\n function eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === "function") {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === "function") {\n emitter.addEventListener(name, function wrapListener(arg) {\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError(\'The "emitter" argument must be of type EventEmitter. Received type \' + typeof emitter);\n }\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/stream-browser.js\nvar require_stream_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/stream-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = require_events().EventEmitter;\n }\n});\n\n// (disabled):node_modules/util/util.js\nvar require_util = __commonJS({\n "(disabled):node_modules/util/util.js"() {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/buffer_list.js\nvar require_buffer_list = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/buffer_list.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly)\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n }\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function(key2) {\n _defineProperty(target, key2, source[key2]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key2) {\n Object.defineProperty(target, key2, Object.getOwnPropertyDescriptor(source, key2));\n });\n }\n }\n return target;\n }\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n var _require = require_buffer();\n var Buffer13 = _require.Buffer;\n var _require2 = require_util();\n var inspect = _require2.inspect;\n var custom = inspect && inspect.custom || "inspect";\n function copyBuffer(src, target, offset) {\n Buffer13.prototype.copy.call(src, target, offset);\n }\n module.exports = /* @__PURE__ */ function() {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: "push",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0)\n this.tail.next = entry;\n else\n this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: "unshift",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0)\n this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: "shift",\n value: function shift() {\n if (this.length === 0)\n return;\n var ret = this.head.data;\n if (this.length === 1)\n this.head = this.tail = null;\n else\n this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: "clear",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: "join",\n value: function join(s) {\n if (this.length === 0)\n return "";\n var p = this.head;\n var ret = "" + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }\n return ret;\n }\n }, {\n key: "concat",\n value: function concat(n) {\n if (this.length === 0)\n return Buffer13.alloc(0);\n var ret = Buffer13.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n }, {\n key: "consume",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n ret = this.shift();\n } else {\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: "first",\n value: function first() {\n return this.head.data;\n }\n }, {\n key: "_getString",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length)\n ret += str;\n else\n ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: "_getBuffer",\n value: function _getBuffer(n) {\n var ret = Buffer13.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf2 = p.data;\n var nb = n > buf2.length ? buf2.length : n;\n buf2.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf2.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf2.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n depth: 0,\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n }();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/destroy.js\nvar require_destroy = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/destroy.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function(err2) {\n if (!cb && err2) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n }\n function emitErrorAndCloseNT(self2, err) {\n emitErrorNT(self2, err);\n emitCloseNT(self2);\n }\n function emitCloseNT(self2) {\n if (self2._writableState && !self2._writableState.emitClose)\n return;\n if (self2._readableState && !self2._readableState.emitClose)\n return;\n self2.emit("close");\n }\n function undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n }\n function emitErrorNT(self2, err) {\n self2.emit("error", err);\n }\n function errorOrDestroy(stream, err) {\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy)\n stream.destroy(err);\n else\n stream.emit("error", err);\n }\n module.exports = {\n destroy,\n undestroy,\n errorOrDestroy\n };\n }\n});\n\n// node_modules/readable-stream/errors-browser.js\nvar require_errors_browser = __commonJS({\n "node_modules/readable-stream/errors-browser.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n }\n var codes = {};\n function createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === "string") {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /* @__PURE__ */ function(_Base) {\n _inheritsLoose(NodeError2, _Base);\n function NodeError2(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n return NodeError2;\n }(Base);\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n }\n function oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function(i) {\n return String(i);\n });\n if (len > 2) {\n return "one of ".concat(thing, " ").concat(expected.slice(0, len - 1).join(", "), ", or ") + expected[len - 1];\n } else if (len === 2) {\n return "one of ".concat(thing, " ").concat(expected[0], " or ").concat(expected[1]);\n } else {\n return "of ".concat(thing, " ").concat(expected[0]);\n }\n } else {\n return "of ".concat(thing, " ").concat(String(expected));\n }\n }\n function startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n }\n function endsWith(str, search, this_len) {\n if (this_len === void 0 || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n }\n function includes(str, search, start) {\n if (typeof start !== "number") {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n }\n createErrorType("ERR_INVALID_OPT_VALUE", function(name, value) {\n return \'The value "\' + value + \'" is invalid for option "\' + name + \'"\';\n }, TypeError);\n createErrorType("ERR_INVALID_ARG_TYPE", function(name, expected, actual) {\n var determiner;\n if (typeof expected === "string" && startsWith(expected, "not ")) {\n determiner = "must not be";\n expected = expected.replace(/^not /, "");\n } else {\n determiner = "must be";\n }\n var msg;\n if (endsWith(name, " argument")) {\n msg = "The ".concat(name, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n } else {\n var type = includes(name, ".") ? "property" : "argument";\n msg = \'The "\'.concat(name, \'" \').concat(type, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n }\n msg += ". Received type ".concat(typeof actual);\n return msg;\n }, TypeError);\n createErrorType("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF");\n createErrorType("ERR_METHOD_NOT_IMPLEMENTED", function(name) {\n return "The " + name + " method is not implemented";\n });\n createErrorType("ERR_STREAM_PREMATURE_CLOSE", "Premature close");\n createErrorType("ERR_STREAM_DESTROYED", function(name) {\n return "Cannot call " + name + " after a stream was destroyed";\n });\n createErrorType("ERR_MULTIPLE_CALLBACK", "Callback called multiple times");\n createErrorType("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable");\n createErrorType("ERR_STREAM_WRITE_AFTER_END", "write after end");\n createErrorType("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError);\n createErrorType("ERR_UNKNOWN_ENCODING", function(arg) {\n return "Unknown encoding: " + arg;\n }, TypeError);\n createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event");\n module.exports.codes = codes;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/state.js\nvar require_state = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/state.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_INVALID_OPT_VALUE = require_errors_browser().codes.ERR_INVALID_OPT_VALUE;\n function highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n }\n function getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : "highWaterMark";\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n return state.objectMode ? 16 : 16 * 1024;\n }\n module.exports = {\n getHighWaterMark\n };\n }\n});\n\n// node_modules/inherits/inherits_browser.js\nvar require_inherits_browser = __commonJS({\n "node_modules/inherits/inherits_browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n if (typeof Object.create === "function") {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n } else {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function() {\n };\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n }\n }\n});\n\n// node_modules/util-deprecate/browser.js\nvar require_browser = __commonJS({\n "node_modules/util-deprecate/browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = deprecate;\n function deprecate(fn, msg) {\n if (config("noDeprecation")) {\n return fn;\n }\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config("throwDeprecation")) {\n throw new Error(msg);\n } else if (config("traceDeprecation")) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n }\n function config(name) {\n try {\n if (!self.localStorage)\n return false;\n } catch (_) {\n return false;\n }\n var val = self.localStorage[name];\n if (val == null)\n return false;\n return String(val).toLowerCase() === "true";\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_writable.js\nvar require_stream_writable = __commonJS({\n "node_modules/readable-stream/lib/_stream_writable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Writable;\n function CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function() {\n onCorkedFinish(_this, state);\n };\n }\n var Duplex;\n Writable.WritableState = WritableState;\n var internalUtil = {\n deprecate: require_browser()\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n var ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES;\n var ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END;\n var ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n require_inherits_browser()(Writable, Stream);\n function nop() {\n }\n function WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.writableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "writableHighWaterMark", isDuplex);\n this.finalCalled = false;\n this.needDrain = false;\n this.ending = false;\n this.ended = false;\n this.finished = false;\n this.destroyed = false;\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.length = 0;\n this.writing = false;\n this.corked = 0;\n this.sync = true;\n this.bufferProcessing = false;\n this.onwrite = function(er) {\n onwrite(stream, er);\n };\n this.writecb = null;\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n this.pendingcb = 0;\n this.prefinished = false;\n this.errorEmitted = false;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.bufferedRequestCount = 0;\n this.corkedRequestsFree = new CorkedRequest(this);\n }\n WritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n };\n (function() {\n try {\n Object.defineProperty(WritableState.prototype, "buffer", {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003")\n });\n } catch (_) {\n }\n })();\n var realHasInstance;\n if (typeof Symbol === "function" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === "function") {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object))\n return true;\n if (this !== Writable)\n return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n } else {\n realHasInstance = function realHasInstance2(object) {\n return object instanceof this;\n };\n }\n function Writable(options) {\n Duplex = Duplex || require_stream_duplex();\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this))\n return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n this.writable = true;\n if (options) {\n if (typeof options.write === "function")\n this._write = options.write;\n if (typeof options.writev === "function")\n this._writev = options.writev;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n if (typeof options.final === "function")\n this._final = options.final;\n }\n Stream.call(this);\n }\n Writable.prototype.pipe = function() {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n };\n function writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n }\n function validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== "string" && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer"], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n }\n Writable.prototype.write = function(chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer13.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (isBuf)\n encoding = "buffer";\n else if (!encoding)\n encoding = state.defaultEncoding;\n if (typeof cb !== "function")\n cb = nop;\n if (state.ending)\n writeAfterEnd(this, cb);\n else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n };\n Writable.prototype.cork = function() {\n this._writableState.corked++;\n };\n Writable.prototype.uncork = function() {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest)\n clearBuffer(this, state);\n }\n };\n Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n if (typeof encoding === "string")\n encoding = encoding.toLowerCase();\n if (!(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((encoding + "").toLowerCase()) > -1))\n throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n function decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === "string") {\n chunk = Buffer13.from(chunk, encoding);\n }\n return chunk;\n }\n Object.defineProperty(Writable.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = "buffer";\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n if (!ret)\n state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk,\n encoding,\n isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n }\n function doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed)\n state.onwrite(new ERR_STREAM_DESTROYED("write"));\n else if (writev)\n stream._writev(chunk, state.onwrite);\n else\n stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n }\n function onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n process.nextTick(cb, er);\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n finishMaybe(stream, state);\n }\n }\n function onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n }\n function onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== "function")\n throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er)\n onwriteError(stream, state, sync, er, cb);\n else {\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n }\n function afterWrite(stream, state, finished, cb) {\n if (!finished)\n onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n }\n function onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit("drain");\n }\n }\n function clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf)\n allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, "", holder.finish);\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n if (state.writing) {\n break;\n }\n }\n if (entry === null)\n state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n }\n Writable.prototype._write = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_write()"));\n };\n Writable.prototype._writev = null;\n Writable.prototype.end = function(chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === "function") {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== void 0)\n this.write(chunk, encoding);\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n if (!state.ending)\n endWritable(this, state, cb);\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n }\n function callFinal(stream, state) {\n stream._final(function(err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit("prefinish");\n finishMaybe(stream, state);\n });\n }\n function prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === "function" && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit("prefinish");\n }\n }\n }\n function finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit("finish");\n if (state.autoDestroy) {\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n }\n function endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished)\n process.nextTick(cb);\n else\n stream.once("finish", cb);\n }\n state.ended = true;\n stream.writable = false;\n }\n function onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n state.corkedRequestsFree.next = corkReq;\n }\n Object.defineProperty(Writable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._writableState === void 0) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n if (!this._writableState) {\n return;\n }\n this._writableState.destroyed = value;\n }\n });\n Writable.prototype.destroy = destroyImpl.destroy;\n Writable.prototype._undestroy = destroyImpl.undestroy;\n Writable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_duplex.js\nvar require_stream_duplex = __commonJS({\n "node_modules/readable-stream/lib/_stream_duplex.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var objectKeys = Object.keys || function(obj) {\n var keys2 = [];\n for (var key2 in obj) {\n keys2.push(key2);\n }\n return keys2;\n };\n module.exports = Duplex;\n var Readable = require_stream_readable();\n var Writable = require_stream_writable();\n require_inherits_browser()(Duplex, Readable);\n {\n keys = objectKeys(Writable.prototype);\n for (v = 0; v < keys.length; v++) {\n method = keys[v];\n if (!Duplex.prototype[method])\n Duplex.prototype[method] = Writable.prototype[method];\n }\n }\n var keys;\n var method;\n var v;\n function Duplex(options) {\n if (!(this instanceof Duplex))\n return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false)\n this.readable = false;\n if (options.writable === false)\n this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once("end", onend);\n }\n }\n }\n Object.defineProperty(Duplex.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n Object.defineProperty(Duplex.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n Object.defineProperty(Duplex.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function onend() {\n if (this._writableState.ended)\n return;\n process.nextTick(onEndNT, this);\n }\n function onEndNT(self2) {\n self2.end();\n }\n Object.defineProperty(Duplex.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return;\n }\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n });\n }\n});\n\n// node_modules/safe-buffer/index.js\nvar require_safe_buffer = __commonJS({\n "node_modules/safe-buffer/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var buffer = require_buffer();\n var Buffer13 = buffer.Buffer;\n function copyProps(src, dst) {\n for (var key2 in src) {\n dst[key2] = src[key2];\n }\n }\n if (Buffer13.from && Buffer13.alloc && Buffer13.allocUnsafe && Buffer13.allocUnsafeSlow) {\n module.exports = buffer;\n } else {\n copyProps(buffer, exports);\n exports.Buffer = SafeBuffer;\n }\n function SafeBuffer(arg, encodingOrOffset, length) {\n return Buffer13(arg, encodingOrOffset, length);\n }\n SafeBuffer.prototype = Object.create(Buffer13.prototype);\n copyProps(Buffer13, SafeBuffer);\n SafeBuffer.from = function(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n throw new TypeError("Argument must not be a number");\n }\n return Buffer13(arg, encodingOrOffset, length);\n };\n SafeBuffer.alloc = function(size, fill, encoding) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n var buf2 = Buffer13(size);\n if (fill !== void 0) {\n if (typeof encoding === "string") {\n buf2.fill(fill, encoding);\n } else {\n buf2.fill(fill);\n }\n } else {\n buf2.fill(0);\n }\n return buf2;\n };\n SafeBuffer.allocUnsafe = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return Buffer13(size);\n };\n SafeBuffer.allocUnsafeSlow = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return buffer.SlowBuffer(size);\n };\n }\n});\n\n// node_modules/string_decoder/lib/string_decoder.js\nvar require_string_decoder = __commonJS({\n "node_modules/string_decoder/lib/string_decoder.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var Buffer13 = require_safe_buffer().Buffer;\n var isEncoding = Buffer13.isEncoding || function(encoding) {\n encoding = "" + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n case "raw":\n return true;\n default:\n return false;\n }\n };\n function _normalizeEncoding(enc) {\n if (!enc)\n return "utf8";\n var retried;\n while (true) {\n switch (enc) {\n case "utf8":\n case "utf-8":\n return "utf8";\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return "utf16le";\n case "latin1":\n case "binary":\n return "latin1";\n case "base64":\n case "ascii":\n case "hex":\n return enc;\n default:\n if (retried)\n return;\n enc = ("" + enc).toLowerCase();\n retried = true;\n }\n }\n }\n function normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== "string" && (Buffer13.isEncoding === isEncoding || !isEncoding(enc)))\n throw new Error("Unknown encoding: " + enc);\n return nenc || enc;\n }\n exports.StringDecoder = StringDecoder;\n function StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case "utf16le":\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case "utf8":\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case "base64":\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer13.allocUnsafe(nb);\n }\n StringDecoder.prototype.write = function(buf2) {\n if (buf2.length === 0)\n return "";\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf2);\n if (r === void 0)\n return "";\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf2.length)\n return r ? r + this.text(buf2, i) : this.text(buf2, i);\n return r || "";\n };\n StringDecoder.prototype.end = utf8End;\n StringDecoder.prototype.text = utf8Text;\n StringDecoder.prototype.fillLast = function(buf2) {\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf2.length);\n this.lastNeed -= buf2.length;\n };\n function utf8CheckByte(byte) {\n if (byte <= 127)\n return 0;\n else if (byte >> 5 === 6)\n return 2;\n else if (byte >> 4 === 14)\n return 3;\n else if (byte >> 3 === 30)\n return 4;\n return byte >> 6 === 2 ? -1 : -2;\n }\n function utf8CheckIncomplete(self2, buf2, i) {\n var j = buf2.length - 1;\n if (j < i)\n return 0;\n var nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2)\n nb = 0;\n else\n self2.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n }\n function utf8CheckExtraBytes(self2, buf2, p) {\n if ((buf2[0] & 192) !== 128) {\n self2.lastNeed = 0;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 1 && buf2.length > 1) {\n if ((buf2[1] & 192) !== 128) {\n self2.lastNeed = 1;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 2 && buf2.length > 2) {\n if ((buf2[2] & 192) !== 128) {\n self2.lastNeed = 2;\n return "\\uFFFD";\n }\n }\n }\n }\n function utf8FillLast(buf2) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf2, p);\n if (r !== void 0)\n return r;\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, p, 0, buf2.length);\n this.lastNeed -= buf2.length;\n }\n function utf8Text(buf2, i) {\n var total = utf8CheckIncomplete(this, buf2, i);\n if (!this.lastNeed)\n return buf2.toString("utf8", i);\n this.lastTotal = total;\n var end = buf2.length - (total - this.lastNeed);\n buf2.copy(this.lastChar, 0, end);\n return buf2.toString("utf8", i, end);\n }\n function utf8End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + "\\uFFFD";\n return r;\n }\n function utf16Text(buf2, i) {\n if ((buf2.length - i) % 2 === 0) {\n var r = buf2.toString("utf16le", i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 55296 && c <= 56319) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf2[buf2.length - 1];\n return buf2.toString("utf16le", i, buf2.length - 1);\n }\n function utf16End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString("utf16le", 0, end);\n }\n return r;\n }\n function base64Text(buf2, i) {\n var n = (buf2.length - i) % 3;\n if (n === 0)\n return buf2.toString("base64", i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf2[buf2.length - 1];\n } else {\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n }\n return buf2.toString("base64", i, buf2.length - n);\n }\n function base64End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + this.lastChar.toString("base64", 0, 3 - this.lastNeed);\n return r;\n }\n function simpleWrite(buf2) {\n return buf2.toString(this.encoding);\n }\n function simpleEnd(buf2) {\n return buf2 && buf2.length ? this.write(buf2) : "";\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/end-of-stream.js\nvar require_end_of_stream = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_STREAM_PREMATURE_CLOSE = require_errors_browser().codes.ERR_STREAM_PREMATURE_CLOSE;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n }\n function noop2() {\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function eos(stream, opts, callback) {\n if (typeof opts === "function")\n return eos(stream, null, opts);\n if (!opts)\n opts = {};\n callback = once(callback || noop2);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable2 = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish2() {\n if (!stream.writable)\n onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish2() {\n writable2 = false;\n writableEnded = true;\n if (!readable)\n callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend2() {\n readable = false;\n readableEnded = true;\n if (!writable2)\n callback.call(stream);\n };\n var onerror = function onerror2(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose2() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable2 && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest2() {\n stream.req.on("finish", onfinish);\n };\n if (isRequest(stream)) {\n stream.on("complete", onfinish);\n stream.on("abort", onclose);\n if (stream.req)\n onrequest();\n else\n stream.on("request", onrequest);\n } else if (writable2 && !stream._writableState) {\n stream.on("end", onlegacyfinish);\n stream.on("close", onlegacyfinish);\n }\n stream.on("end", onend);\n stream.on("finish", onfinish);\n if (opts.error !== false)\n stream.on("error", onerror);\n stream.on("close", onclose);\n return function() {\n stream.removeListener("complete", onfinish);\n stream.removeListener("abort", onclose);\n stream.removeListener("request", onrequest);\n if (stream.req)\n stream.req.removeListener("finish", onfinish);\n stream.removeListener("end", onlegacyfinish);\n stream.removeListener("close", onlegacyfinish);\n stream.removeListener("finish", onfinish);\n stream.removeListener("end", onend);\n stream.removeListener("error", onerror);\n stream.removeListener("close", onclose);\n };\n }\n module.exports = eos;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/async_iterator.js\nvar require_async_iterator = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/async_iterator.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var _Object$setPrototypeO;\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n var finished = require_end_of_stream();\n var kLastResolve = Symbol("lastResolve");\n var kLastReject = Symbol("lastReject");\n var kError = Symbol("error");\n var kEnded = Symbol("ended");\n var kLastPromise = Symbol("lastPromise");\n var kHandlePromise = Symbol("handlePromise");\n var kStream = Symbol("stream");\n function createIterResult(value, done) {\n return {\n value,\n done\n };\n }\n function readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n }\n function onReadable(iter) {\n process.nextTick(readAndResolve, iter);\n }\n function wrapForNext(lastPromise, iter) {\n return function(resolve, reject) {\n lastPromise.then(function() {\n if (iter[kEnded]) {\n resolve(createIterResult(void 0, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n }\n var AsyncIteratorPrototype = Object.getPrototypeOf(function() {\n });\n var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(void 0, true));\n }\n if (this[kStream].destroyed) {\n return new Promise(function(resolve, reject) {\n process.nextTick(function() {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(void 0, true));\n }\n });\n });\n }\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n }, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function() {\n return this;\n }), _defineProperty(_Object$setPrototypeO, "return", function _return() {\n var _this2 = this;\n return new Promise(function(resolve, reject) {\n _this2[kStream].destroy(null, function(err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(void 0, true));\n });\n });\n }), _Object$setPrototypeO), AsyncIteratorPrototype);\n var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator2(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function(err) {\n if (err && err.code !== "ERR_STREAM_PREMATURE_CLOSE") {\n var reject = iterator[kLastReject];\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(void 0, true));\n }\n iterator[kEnded] = true;\n });\n stream.on("readable", onReadable.bind(null, iterator));\n return iterator;\n };\n module.exports = createReadableStreamAsyncIterator;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/from-browser.js\nvar require_from_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/from-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = function() {\n throw new Error("Readable.from is not available in the browser");\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_readable.js\nvar require_stream_readable = __commonJS({\n "node_modules/readable-stream/lib/_stream_readable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Readable;\n var Duplex;\n Readable.ReadableState = ReadableState;\n var EE = require_events().EventEmitter;\n var EElistenerCount = function EElistenerCount2(emitter, type) {\n return emitter.listeners(type).length;\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var debugUtil = require_util();\n var debug;\n if (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog("stream");\n } else {\n debug = function debug2() {\n };\n }\n var BufferList = require_buffer_list();\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n var StringDecoder;\n var createReadableStreamAsyncIterator;\n var from;\n require_inherits_browser()(Readable, Stream);\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n var kProxyEvents = ["error", "close", "destroy", "pause", "resume"];\n function prependListener(emitter, event, fn) {\n if (typeof emitter.prependListener === "function")\n return emitter.prependListener(event, fn);\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n function ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.readableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "readableHighWaterMark", isDuplex);\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n this.sync = true;\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.destroyed = false;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.awaitDrain = 0;\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n }\n function Readable(options) {\n Duplex = Duplex || require_stream_duplex();\n if (!(this instanceof Readable))\n return new Readable(options);\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n this.readable = true;\n if (options) {\n if (typeof options.read === "function")\n this._read = options.read;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n }\n Stream.call(this);\n }\n Object.defineProperty(Readable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n if (!this._readableState) {\n return;\n }\n this._readableState.destroyed = value;\n }\n });\n Readable.prototype.destroy = destroyImpl.destroy;\n Readable.prototype._undestroy = destroyImpl.undestroy;\n Readable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n Readable.prototype.push = function(chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === "string") {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer13.from(chunk, encoding);\n encoding = "";\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n };\n Readable.prototype.unshift = function(chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n };\n function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug("readableAddChunk", chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck)\n er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== "string" && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer13.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted)\n errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());\n else\n addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0)\n addChunk(stream, state, chunk, false);\n else\n maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n }\n function addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit("data", chunk);\n } else {\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront)\n state.buffer.unshift(chunk);\n else\n state.buffer.push(chunk);\n if (state.needReadable)\n emitReadable(stream);\n }\n maybeReadMore(stream, state);\n }\n function chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== "string" && chunk !== void 0 && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer", "Uint8Array"], chunk);\n }\n return er;\n }\n Readable.prototype.isPaused = function() {\n return this._readableState.flowing === false;\n };\n Readable.prototype.setEncoding = function(enc) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n this._readableState.encoding = this._readableState.decoder.encoding;\n var p = this._readableState.buffer.head;\n var content = "";\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== "")\n this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n };\n var MAX_HWM = 1073741824;\n function computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n }\n function howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended)\n return 0;\n if (state.objectMode)\n return 1;\n if (n !== n) {\n if (state.flowing && state.length)\n return state.buffer.head.data.length;\n else\n return state.length;\n }\n if (n > state.highWaterMark)\n state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length)\n return n;\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n }\n Readable.prototype.read = function(n) {\n debug("read", n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0)\n state.emittedReadable = false;\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug("read: emitReadable", state.length, state.ended);\n if (state.length === 0 && state.ended)\n endReadable(this);\n else\n emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n if (n === 0 && state.ended) {\n if (state.length === 0)\n endReadable(this);\n return null;\n }\n var doRead = state.needReadable;\n debug("need readable", doRead);\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug("length less than watermark", doRead);\n }\n if (state.ended || state.reading) {\n doRead = false;\n debug("reading or ended", doRead);\n } else if (doRead) {\n debug("do read");\n state.reading = true;\n state.sync = true;\n if (state.length === 0)\n state.needReadable = true;\n this._read(state.highWaterMark);\n state.sync = false;\n if (!state.reading)\n n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0)\n ret = fromList(n, state);\n else\n ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n if (!state.ended)\n state.needReadable = true;\n if (nOrig !== n && state.ended)\n endReadable(this);\n }\n if (ret !== null)\n this.emit("data", ret);\n return ret;\n };\n function onEofChunk(stream, state) {\n debug("onEofChunk");\n if (state.ended)\n return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n emitReadable(stream);\n } else {\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n }\n function emitReadable(stream) {\n var state = stream._readableState;\n debug("emitReadable", state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug("emitReadable", state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n }\n function emitReadable_(stream) {\n var state = stream._readableState;\n debug("emitReadable_", state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit("readable");\n state.emittedReadable = false;\n }\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n }\n function maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n }\n function maybeReadMore_(stream, state) {\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug("maybeReadMore read 0");\n stream.read(0);\n if (len === state.length)\n break;\n }\n state.readingMore = false;\n }\n Readable.prototype._read = function(n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED("_read()"));\n };\n Readable.prototype.pipe = function(dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug("pipe count=%d opts=%j", state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted)\n process.nextTick(endFn);\n else\n src.once("end", endFn);\n dest.on("unpipe", onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug("onunpipe");\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug("onend");\n dest.end();\n }\n var ondrain = pipeOnDrain(src);\n dest.on("drain", ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug("cleanup");\n dest.removeListener("close", onclose);\n dest.removeListener("finish", onfinish);\n dest.removeListener("drain", ondrain);\n dest.removeListener("error", onerror);\n dest.removeListener("unpipe", onunpipe);\n src.removeListener("end", onend);\n src.removeListener("end", unpipe);\n src.removeListener("data", ondata);\n cleanedUp = true;\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain))\n ondrain();\n }\n src.on("data", ondata);\n function ondata(chunk) {\n debug("ondata");\n var ret = dest.write(chunk);\n debug("dest.write", ret);\n if (ret === false) {\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug("false write response, pause", state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n function onerror(er) {\n debug("onerror", er);\n unpipe();\n dest.removeListener("error", onerror);\n if (EElistenerCount(dest, "error") === 0)\n errorOrDestroy(dest, er);\n }\n prependListener(dest, "error", onerror);\n function onclose() {\n dest.removeListener("finish", onfinish);\n unpipe();\n }\n dest.once("close", onclose);\n function onfinish() {\n debug("onfinish");\n dest.removeListener("close", onclose);\n unpipe();\n }\n dest.once("finish", onfinish);\n function unpipe() {\n debug("unpipe");\n src.unpipe(dest);\n }\n dest.emit("pipe", src);\n if (!state.flowing) {\n debug("pipe resume");\n src.resume();\n }\n return dest;\n };\n function pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug("pipeOnDrain", state.awaitDrain);\n if (state.awaitDrain)\n state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, "data")) {\n state.flowing = true;\n flow(src);\n }\n };\n }\n Readable.prototype.unpipe = function(dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n if (state.pipesCount === 0)\n return this;\n if (state.pipesCount === 1) {\n if (dest && dest !== state.pipes)\n return this;\n if (!dest)\n dest = state.pipes;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest)\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n }\n if (!dest) {\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) {\n dests[i].emit("unpipe", this, {\n hasUnpiped: false\n });\n }\n return this;\n }\n var index = indexOf(state.pipes, dest);\n if (index === -1)\n return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1)\n state.pipes = state.pipes[0];\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n };\n Readable.prototype.on = function(ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === "data") {\n state.readableListening = this.listenerCount("readable") > 0;\n if (state.flowing !== false)\n this.resume();\n } else if (ev === "readable") {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug("on readable", state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n };\n Readable.prototype.addListener = Readable.prototype.on;\n Readable.prototype.removeListener = function(ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === "readable") {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n Readable.prototype.removeAllListeners = function(ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === "readable" || ev === void 0) {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n function updateReadableListening(self2) {\n var state = self2._readableState;\n state.readableListening = self2.listenerCount("readable") > 0;\n if (state.resumeScheduled && !state.paused) {\n state.flowing = true;\n } else if (self2.listenerCount("data") > 0) {\n self2.resume();\n }\n }\n function nReadingNextTick(self2) {\n debug("readable nexttick read 0");\n self2.read(0);\n }\n Readable.prototype.resume = function() {\n var state = this._readableState;\n if (!state.flowing) {\n debug("resume");\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n };\n function resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n }\n function resume_(stream, state) {\n debug("resume", state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit("resume");\n flow(stream);\n if (state.flowing && !state.reading)\n stream.read(0);\n }\n Readable.prototype.pause = function() {\n debug("call pause flowing=%j", this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug("pause");\n this._readableState.flowing = false;\n this.emit("pause");\n }\n this._readableState.paused = true;\n return this;\n };\n function flow(stream) {\n var state = stream._readableState;\n debug("flow", state.flowing);\n while (state.flowing && stream.read() !== null) {\n ;\n }\n }\n Readable.prototype.wrap = function(stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on("end", function() {\n debug("wrapped end");\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length)\n _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on("data", function(chunk) {\n debug("wrapped data");\n if (state.decoder)\n chunk = state.decoder.write(chunk);\n if (state.objectMode && (chunk === null || chunk === void 0))\n return;\n else if (!state.objectMode && (!chunk || !chunk.length))\n return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n for (var i in stream) {\n if (this[i] === void 0 && typeof stream[i] === "function") {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n this._read = function(n2) {\n debug("wrapped _read", n2);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n };\n if (typeof Symbol === "function") {\n Readable.prototype[Symbol.asyncIterator] = function() {\n if (createReadableStreamAsyncIterator === void 0) {\n createReadableStreamAsyncIterator = require_async_iterator();\n }\n return createReadableStreamAsyncIterator(this);\n };\n }\n Object.defineProperty(Readable.prototype, "readableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n });\n Object.defineProperty(Readable.prototype, "readableBuffer", {\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n });\n Object.defineProperty(Readable.prototype, "readableFlowing", {\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n });\n Readable._fromList = fromList;\n Object.defineProperty(Readable.prototype, "readableLength", {\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n });\n function fromList(n, state) {\n if (state.length === 0)\n return null;\n var ret;\n if (state.objectMode)\n ret = state.buffer.shift();\n else if (!n || n >= state.length) {\n if (state.decoder)\n ret = state.buffer.join("");\n else if (state.buffer.length === 1)\n ret = state.buffer.first();\n else\n ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n }\n function endReadable(stream) {\n var state = stream._readableState;\n debug("endReadable", state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n }\n function endReadableNT(state, stream) {\n debug("endReadableNT", state.endEmitted, state.length);\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit("end");\n if (state.autoDestroy) {\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n }\n if (typeof Symbol === "function") {\n Readable.from = function(iterable, opts) {\n if (from === void 0) {\n from = require_from_browser();\n }\n return from(Readable, iterable, opts);\n };\n }\n function indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x)\n return i;\n }\n return -1;\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_transform.js\nvar require_stream_transform = __commonJS({\n "node_modules/readable-stream/lib/_stream_transform.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Transform;\n var _require$codes = require_errors_browser().codes;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING;\n var ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n var Duplex = require_stream_duplex();\n require_inherits_browser()(Transform, Duplex);\n function afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit("error", new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n }\n function Transform(options) {\n if (!(this instanceof Transform))\n return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n this._readableState.needReadable = true;\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === "function")\n this._transform = options.transform;\n if (typeof options.flush === "function")\n this._flush = options.flush;\n }\n this.on("prefinish", prefinish);\n }\n function prefinish() {\n var _this = this;\n if (typeof this._flush === "function" && !this._readableState.destroyed) {\n this._flush(function(er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n }\n Transform.prototype.push = function(chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n };\n Transform.prototype._transform = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_transform()"));\n };\n Transform.prototype._write = function(chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark)\n this._read(rs.highWaterMark);\n }\n };\n Transform.prototype._read = function(n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n ts.needTransform = true;\n }\n };\n Transform.prototype._destroy = function(err, cb) {\n Duplex.prototype._destroy.call(this, err, function(err2) {\n cb(err2);\n });\n };\n function done(stream, er, data) {\n if (er)\n return stream.emit("error", er);\n if (data != null)\n stream.push(data);\n if (stream._writableState.length)\n throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming)\n throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_passthrough.js\nvar require_stream_passthrough = __commonJS({\n "node_modules/readable-stream/lib/_stream_passthrough.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = PassThrough;\n var Transform = require_stream_transform();\n require_inherits_browser()(PassThrough, Transform);\n function PassThrough(options) {\n if (!(this instanceof PassThrough))\n return new PassThrough(options);\n Transform.call(this, options);\n }\n PassThrough.prototype._transform = function(chunk, encoding, cb) {\n cb(null, chunk);\n };\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/pipeline.js\nvar require_pipeline = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/pipeline.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var eos;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n callback.apply(void 0, arguments);\n };\n }\n var _require$codes = require_errors_browser().codes;\n var ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n function noop2(err) {\n if (err)\n throw err;\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on("close", function() {\n closed = true;\n });\n if (eos === void 0)\n eos = require_end_of_stream();\n eos(stream, {\n readable: reading,\n writable: writing\n }, function(err) {\n if (err)\n return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function(err) {\n if (closed)\n return;\n if (destroyed)\n return;\n destroyed = true;\n if (isRequest(stream))\n return stream.abort();\n if (typeof stream.destroy === "function")\n return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED("pipe"));\n };\n }\n function call(fn) {\n fn();\n }\n function pipe(from, to) {\n return from.pipe(to);\n }\n function popCallback(streams) {\n if (!streams.length)\n return noop2;\n if (typeof streams[streams.length - 1] !== "function")\n return noop2;\n return streams.pop();\n }\n function pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0]))\n streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS("streams");\n }\n var error;\n var destroys = streams.map(function(stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function(err) {\n if (!error)\n error = err;\n if (err)\n destroys.forEach(call);\n if (reading)\n return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n }\n module.exports = pipeline;\n }\n});\n\n// node_modules/readable-stream/readable-browser.js\nvar require_readable_browser = __commonJS({\n "node_modules/readable-stream/readable-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports = module.exports = require_stream_readable();\n exports.Stream = exports;\n exports.Readable = exports;\n exports.Writable = require_stream_writable();\n exports.Duplex = require_stream_duplex();\n exports.Transform = require_stream_transform();\n exports.PassThrough = require_stream_passthrough();\n exports.finished = require_end_of_stream();\n exports.pipeline = require_pipeline();\n }\n});\n\n// node_modules/readable-web-to-node-stream/lib/index.js\nvar require_lib = __commonJS({\n "node_modules/readable-web-to-node-stream/lib/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n Object.defineProperty(exports, "__esModule", { value: true });\n exports.ReadableWebToNodeStream = void 0;\n var readable_stream_1 = require_readable_browser();\n var ReadableWebToNodeStream2 = class extends readable_stream_1.Readable {\n constructor(stream) {\n super();\n this.bytesRead = 0;\n this.released = false;\n this.reader = stream.getReader();\n }\n async _read() {\n if (this.released) {\n this.push(null);\n return;\n }\n this.pendingRead = this.reader.read();\n const data = await this.pendingRead;\n delete this.pendingRead;\n if (data.done || this.released) {\n this.push(null);\n } else {\n this.bytesRead += data.value.length;\n this.push(data.value);\n }\n }\n async waitForReadToComplete() {\n if (this.pendingRead) {\n await this.pendingRead;\n }\n }\n async close() {\n await this.syncAndRelease();\n }\n async syncAndRelease() {\n this.released = true;\n await this.waitForReadToComplete();\n await this.reader.releaseLock();\n }\n };\n exports.ReadableWebToNodeStream = ReadableWebToNodeStream2;\n }\n});\n\n// node_modules/base-x/src/index.js\nvar require_src = __commonJS({\n "node_modules/base-x/src/index.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function base(ALPHABET) {\n if (ALPHABET.length >= 255) {\n throw new TypeError("Alphabet too long");\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + " is ambiguous");\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode2(source) {\n if (source instanceof Uint8Array) {\n } else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError("Expected Uint8Array");\n }\n if (source.length === 0) {\n return "";\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i2 = 0;\n for (var it1 = size - 1; (carry !== 0 || i2 < length) && it1 !== -1; it1--, i2++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== "string") {\n throw new TypeError("Expected String");\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i2 = 0;\n for (var it3 = size - 1; (carry !== 0 || i2 < length) && it3 !== -1; it3--, i2++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n psz++;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j2 = zeroes;\n while (it4 !== size) {\n vch[j2++] = b256[it4++];\n }\n return vch;\n }\n function decode3(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error("Non-base" + BASE + " character");\n }\n return {\n encode: encode2,\n decodeUnsafe,\n decode: decode3\n };\n }\n module.exports = base;\n }\n});\n\n// node_modules/bs58/index.js\nvar require_bs58 = __commonJS({\n "node_modules/bs58/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var basex = require_src();\n var ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";\n module.exports = basex(ALPHABET);\n }\n});\n\n// node_modules/jpeg-js/lib/encoder.js\nvar require_encoder = __commonJS({\n "node_modules/jpeg-js/lib/encoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var btoa = btoa || function(buf2) {\n return Buffer2.from(buf2).toString("base64");\n };\n function JPEGEncoder(quality) {\n var self2 = this;\n var fround = Math.round;\n var ffloor = Math.floor;\n var YTable = new Array(64);\n var UVTable = new Array(64);\n var fdtbl_Y = new Array(64);\n var fdtbl_UV = new Array(64);\n var YDC_HT2;\n var UVDC_HT2;\n var YAC_HT2;\n var UVAC_HT2;\n var bitcode2 = new Array(65535);\n var category2 = new Array(65535);\n var outputfDCTQuant = new Array(64);\n var DU = new Array(64);\n var byteout = [];\n var bytenew = 0;\n var bytepos = 7;\n var YDU = new Array(64);\n var UDU = new Array(64);\n var VDU = new Array(64);\n var clt = new Array(256);\n var RGB_YUV_TABLE = new Array(2048);\n var currentQuality;\n var ZigZag = [\n 0,\n 1,\n 5,\n 6,\n 14,\n 15,\n 27,\n 28,\n 2,\n 4,\n 7,\n 13,\n 16,\n 26,\n 29,\n 42,\n 3,\n 8,\n 12,\n 17,\n 25,\n 30,\n 41,\n 43,\n 9,\n 11,\n 18,\n 24,\n 31,\n 40,\n 44,\n 53,\n 10,\n 19,\n 23,\n 32,\n 39,\n 45,\n 52,\n 54,\n 20,\n 22,\n 33,\n 38,\n 46,\n 51,\n 55,\n 60,\n 21,\n 34,\n 37,\n 47,\n 50,\n 56,\n 59,\n 61,\n 35,\n 36,\n 48,\n 49,\n 57,\n 58,\n 62,\n 63\n ];\n var std_dc_luminance_nrcodes2 = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\n var std_dc_luminance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_luminance_nrcodes2 = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\n var std_ac_luminance_values2 = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n var std_dc_chrominance_nrcodes2 = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\n var std_dc_chrominance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_chrominance_nrcodes2 = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\n var std_ac_chrominance_values2 = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n function initQuantTables(sf) {\n var YQT = [\n 16,\n 11,\n 10,\n 16,\n 24,\n 40,\n 51,\n 61,\n 12,\n 12,\n 14,\n 19,\n 26,\n 58,\n 60,\n 55,\n 14,\n 13,\n 16,\n 24,\n 40,\n 57,\n 69,\n 56,\n 14,\n 17,\n 22,\n 29,\n 51,\n 87,\n 80,\n 62,\n 18,\n 22,\n 37,\n 56,\n 68,\n 109,\n 103,\n 77,\n 24,\n 35,\n 55,\n 64,\n 81,\n 104,\n 113,\n 92,\n 49,\n 64,\n 78,\n 87,\n 103,\n 121,\n 120,\n 101,\n 72,\n 92,\n 95,\n 98,\n 112,\n 100,\n 103,\n 99\n ];\n for (var i = 0; i < 64; i++) {\n var t = ffloor((YQT[i] * sf + 50) / 100);\n if (t < 1) {\n t = 1;\n } else if (t > 255) {\n t = 255;\n }\n YTable[ZigZag[i]] = t;\n }\n var UVQT = [\n 17,\n 18,\n 24,\n 47,\n 99,\n 99,\n 99,\n 99,\n 18,\n 21,\n 26,\n 66,\n 99,\n 99,\n 99,\n 99,\n 24,\n 26,\n 56,\n 99,\n 99,\n 99,\n 99,\n 99,\n 47,\n 66,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99\n ];\n for (var j = 0; j < 64; j++) {\n var u = ffloor((UVQT[j] * sf + 50) / 100);\n if (u < 1) {\n u = 1;\n } else if (u > 255) {\n u = 255;\n }\n UVTable[ZigZag[j]] = u;\n }\n var aasf = [\n 1,\n 1.387039845,\n 1.306562965,\n 1.175875602,\n 1,\n 0.785694958,\n 0.5411961,\n 0.275899379\n ];\n var k = 0;\n for (var row = 0; row < 8; row++) {\n for (var col = 0; col < 8; col++) {\n fdtbl_Y[k] = 1 / (YTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n fdtbl_UV[k] = 1 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n k++;\n }\n }\n }\n function computeHuffmanTbl(nrcodes, std_table) {\n var codevalue = 0;\n var pos_in_table = 0;\n var HT = new Array();\n for (var k = 1; k <= 16; k++) {\n for (var j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n function initHuffmanTbl() {\n YDC_HT2 = computeHuffmanTbl(std_dc_luminance_nrcodes2, std_dc_luminance_values2);\n UVDC_HT2 = computeHuffmanTbl(std_dc_chrominance_nrcodes2, std_dc_chrominance_values2);\n YAC_HT2 = computeHuffmanTbl(std_ac_luminance_nrcodes2, std_ac_luminance_values2);\n UVAC_HT2 = computeHuffmanTbl(std_ac_chrominance_nrcodes2, std_ac_chrominance_values2);\n }\n function initCategoryNumber() {\n var nrlower = 1;\n var nrupper = 2;\n for (var cat = 1; cat <= 15; cat++) {\n for (var nr = nrlower; nr < nrupper; nr++) {\n category2[32767 + nr] = cat;\n bitcode2[32767 + nr] = [];\n bitcode2[32767 + nr][1] = cat;\n bitcode2[32767 + nr][0] = nr;\n }\n for (var nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category2[32767 + nrneg] = cat;\n bitcode2[32767 + nrneg] = [];\n bitcode2[32767 + nrneg][1] = cat;\n bitcode2[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n }\n function initRGBYUVTable() {\n for (var i = 0; i < 256; i++) {\n RGB_YUV_TABLE[i] = 19595 * i;\n RGB_YUV_TABLE[i + 256 >> 0] = 38470 * i;\n RGB_YUV_TABLE[i + 512 >> 0] = 7471 * i + 32768;\n RGB_YUV_TABLE[i + 768 >> 0] = -11059 * i;\n RGB_YUV_TABLE[i + 1024 >> 0] = -21709 * i;\n RGB_YUV_TABLE[i + 1280 >> 0] = 32768 * i + 8421375;\n RGB_YUV_TABLE[i + 1536 >> 0] = -27439 * i;\n RGB_YUV_TABLE[i + 1792 >> 0] = -5329 * i;\n }\n }\n function writeBits(bs) {\n var value = bs[0];\n var posval = bs[1] - 1;\n while (posval >= 0) {\n if (value & 1 << posval) {\n bytenew |= 1 << bytepos;\n }\n posval--;\n bytepos--;\n if (bytepos < 0) {\n if (bytenew == 255) {\n writeByte(255);\n writeByte(0);\n } else {\n writeByte(bytenew);\n }\n bytepos = 7;\n bytenew = 0;\n }\n }\n }\n function writeByte(value) {\n byteout.push(value);\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function fDCTQuant(data, fdtbl) {\n var d0, d1, d2, d3, d4, d5, d6, d7;\n var dataOff = 0;\n var i;\n var I8 = 8;\n var I64 = 64;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 1];\n d2 = data[dataOff + 2];\n d3 = data[dataOff + 3];\n d4 = data[dataOff + 4];\n d5 = data[dataOff + 5];\n d6 = data[dataOff + 6];\n d7 = data[dataOff + 7];\n var tmp0 = d0 + d7;\n var tmp7 = d0 - d7;\n var tmp1 = d1 + d6;\n var tmp6 = d1 - d6;\n var tmp2 = d2 + d5;\n var tmp5 = d2 - d5;\n var tmp3 = d3 + d4;\n var tmp4 = d3 - d4;\n var tmp10 = tmp0 + tmp3;\n var tmp13 = tmp0 - tmp3;\n var tmp11 = tmp1 + tmp2;\n var tmp12 = tmp1 - tmp2;\n data[dataOff] = tmp10 + tmp11;\n data[dataOff + 4] = tmp10 - tmp11;\n var z1 = (tmp12 + tmp13) * 0.707106781;\n data[dataOff + 2] = tmp13 + z1;\n data[dataOff + 6] = tmp13 - z1;\n tmp10 = tmp4 + tmp5;\n tmp11 = tmp5 + tmp6;\n tmp12 = tmp6 + tmp7;\n var z5 = (tmp10 - tmp12) * 0.382683433;\n var z2 = 0.5411961 * tmp10 + z5;\n var z4 = 1.306562965 * tmp12 + z5;\n var z3 = tmp11 * 0.707106781;\n var z11 = tmp7 + z3;\n var z13 = tmp7 - z3;\n data[dataOff + 5] = z13 + z2;\n data[dataOff + 3] = z13 - z2;\n data[dataOff + 1] = z11 + z4;\n data[dataOff + 7] = z11 - z4;\n dataOff += 8;\n }\n dataOff = 0;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 8];\n d2 = data[dataOff + 16];\n d3 = data[dataOff + 24];\n d4 = data[dataOff + 32];\n d5 = data[dataOff + 40];\n d6 = data[dataOff + 48];\n d7 = data[dataOff + 56];\n var tmp0p2 = d0 + d7;\n var tmp7p2 = d0 - d7;\n var tmp1p2 = d1 + d6;\n var tmp6p2 = d1 - d6;\n var tmp2p2 = d2 + d5;\n var tmp5p2 = d2 - d5;\n var tmp3p2 = d3 + d4;\n var tmp4p2 = d3 - d4;\n var tmp10p2 = tmp0p2 + tmp3p2;\n var tmp13p2 = tmp0p2 - tmp3p2;\n var tmp11p2 = tmp1p2 + tmp2p2;\n var tmp12p2 = tmp1p2 - tmp2p2;\n data[dataOff] = tmp10p2 + tmp11p2;\n data[dataOff + 32] = tmp10p2 - tmp11p2;\n var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781;\n data[dataOff + 16] = tmp13p2 + z1p2;\n data[dataOff + 48] = tmp13p2 - z1p2;\n tmp10p2 = tmp4p2 + tmp5p2;\n tmp11p2 = tmp5p2 + tmp6p2;\n tmp12p2 = tmp6p2 + tmp7p2;\n var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433;\n var z2p2 = 0.5411961 * tmp10p2 + z5p2;\n var z4p2 = 1.306562965 * tmp12p2 + z5p2;\n var z3p2 = tmp11p2 * 0.707106781;\n var z11p2 = tmp7p2 + z3p2;\n var z13p2 = tmp7p2 - z3p2;\n data[dataOff + 40] = z13p2 + z2p2;\n data[dataOff + 24] = z13p2 - z2p2;\n data[dataOff + 8] = z11p2 + z4p2;\n data[dataOff + 56] = z11p2 - z4p2;\n dataOff++;\n }\n var fDCTQuant2;\n for (i = 0; i < I64; ++i) {\n fDCTQuant2 = data[i] * fdtbl[i];\n outputfDCTQuant[i] = fDCTQuant2 > 0 ? fDCTQuant2 + 0.5 | 0 : fDCTQuant2 - 0.5 | 0;\n }\n return outputfDCTQuant;\n }\n function writeAPP0() {\n writeWord(65504);\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n }\n function writeAPP1(exifBuffer) {\n if (!exifBuffer)\n return;\n writeWord(65505);\n if (exifBuffer[0] === 69 && exifBuffer[1] === 120 && exifBuffer[2] === 105 && exifBuffer[3] === 102) {\n writeWord(exifBuffer.length + 2);\n } else {\n writeWord(exifBuffer.length + 5 + 2);\n writeByte(69);\n writeByte(120);\n writeByte(105);\n writeByte(102);\n writeByte(0);\n }\n for (var i = 0; i < exifBuffer.length; i++) {\n writeByte(exifBuffer[i]);\n }\n }\n function writeSOF0(width, height) {\n writeWord(65472);\n writeWord(17);\n writeByte(8);\n writeWord(height);\n writeWord(width);\n writeByte(3);\n writeByte(1);\n writeByte(17);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(1);\n writeByte(3);\n writeByte(17);\n writeByte(1);\n }\n function writeDQT() {\n writeWord(65499);\n writeWord(132);\n writeByte(0);\n for (var i = 0; i < 64; i++) {\n writeByte(YTable[i]);\n }\n writeByte(1);\n for (var j = 0; j < 64; j++) {\n writeByte(UVTable[j]);\n }\n }\n function writeDHT() {\n writeWord(65476);\n writeWord(418);\n writeByte(0);\n for (var i = 0; i < 16; i++) {\n writeByte(std_dc_luminance_nrcodes2[i + 1]);\n }\n for (var j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values2[j]);\n }\n writeByte(16);\n for (var k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes2[k + 1]);\n }\n for (var l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values2[l]);\n }\n writeByte(1);\n for (var m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes2[m + 1]);\n }\n for (var n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values2[n]);\n }\n writeByte(17);\n for (var o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes2[o + 1]);\n }\n for (var p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values2[p]);\n }\n }\n function writeCOM(comments) {\n if (typeof comments === "undefined" || comments.constructor !== Array)\n return;\n comments.forEach((e) => {\n if (typeof e !== "string")\n return;\n writeWord(65534);\n var l = e.length;\n writeWord(l + 2);\n var i;\n for (i = 0; i < l; i++)\n writeByte(e.charCodeAt(i));\n });\n }\n function writeSOS() {\n writeWord(65498);\n writeWord(12);\n writeByte(3);\n writeByte(1);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(3);\n writeByte(17);\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(CDU, fdtbl, DC, HTDC, HTAC) {\n var EOB = HTAC[0];\n var M16zeroes = HTAC[240];\n var pos;\n var I16 = 16;\n var I63 = 63;\n var I64 = 64;\n var DU_DCT = fDCTQuant(CDU, fdtbl);\n for (var j = 0; j < I64; ++j) {\n DU[ZigZag[j]] = DU_DCT[j];\n }\n var Diff = DU[0] - DC;\n DC = DU[0];\n if (Diff == 0) {\n writeBits(HTDC[0]);\n } else {\n pos = 32767 + Diff;\n writeBits(HTDC[category2[pos]]);\n writeBits(bitcode2[pos]);\n }\n var end0pos = 63;\n for (; end0pos > 0 && DU[end0pos] == 0; end0pos--) {\n }\n ;\n if (end0pos == 0) {\n writeBits(EOB);\n return DC;\n }\n var i = 1;\n var lng;\n while (i <= end0pos) {\n var startpos = i;\n for (; DU[i] == 0 && i <= end0pos; ++i) {\n }\n var nrzeroes = i - startpos;\n if (nrzeroes >= I16) {\n lng = nrzeroes >> 4;\n for (var nrmarker = 1; nrmarker <= lng; ++nrmarker)\n writeBits(M16zeroes);\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + DU[i];\n writeBits(HTAC[(nrzeroes << 4) + category2[pos]]);\n writeBits(bitcode2[pos]);\n i++;\n }\n if (end0pos != I63) {\n writeBits(EOB);\n }\n return DC;\n }\n function initCharLookupTable() {\n var sfcc = String.fromCharCode;\n for (var i = 0; i < 256; i++) {\n clt[i] = sfcc(i);\n }\n }\n this.encode = function(image, quality2) {\n var time_start = new Date().getTime();\n if (quality2)\n setQuality(quality2);\n byteout = new Array();\n bytenew = 0;\n bytepos = 7;\n writeWord(65496);\n writeAPP0();\n writeCOM(image.comments);\n writeAPP1(image.exifBuffer);\n writeDQT();\n writeSOF0(image.width, image.height);\n writeDHT();\n writeSOS();\n var DCY = 0;\n var DCU = 0;\n var DCV = 0;\n bytenew = 0;\n bytepos = 7;\n this.encode.displayName = "_encode_";\n var imageData = image.data;\n var width = image.width;\n var height = image.height;\n var quadWidth = width * 4;\n var tripleWidth = width * 3;\n var x, y = 0;\n var r, g, b;\n var start, p, col, row, pos;\n while (y < height) {\n x = 0;\n while (x < quadWidth) {\n start = quadWidth * y + x;\n p = start;\n col = -1;\n row = 0;\n for (pos = 0; pos < 64; pos++) {\n row = pos >> 3;\n col = (pos & 7) * 4;\n p = start + row * quadWidth + col;\n if (y + row >= height) {\n p -= quadWidth * (y + 1 + row - height);\n }\n if (x + col >= quadWidth) {\n p -= x + col - quadWidth + 4;\n }\n r = imageData[p++];\n g = imageData[p++];\n b = imageData[p++];\n YDU[pos] = (RGB_YUV_TABLE[r] + RGB_YUV_TABLE[g + 256 >> 0] + RGB_YUV_TABLE[b + 512 >> 0] >> 16) - 128;\n UDU[pos] = (RGB_YUV_TABLE[r + 768 >> 0] + RGB_YUV_TABLE[g + 1024 >> 0] + RGB_YUV_TABLE[b + 1280 >> 0] >> 16) - 128;\n VDU[pos] = (RGB_YUV_TABLE[r + 1280 >> 0] + RGB_YUV_TABLE[g + 1536 >> 0] + RGB_YUV_TABLE[b + 1792 >> 0] >> 16) - 128;\n }\n DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT2, YAC_HT2);\n DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT2, UVAC_HT2);\n DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT2, UVAC_HT2);\n x += 32;\n }\n y += 8;\n }\n if (bytepos >= 0) {\n var fillbits = [];\n fillbits[1] = bytepos + 1;\n fillbits[0] = (1 << bytepos + 1) - 1;\n writeBits(fillbits);\n }\n writeWord(65497);\n if (typeof module === "undefined")\n return new Uint8Array(byteout);\n return Buffer2.from(byteout);\n var jpegDataUri = "data:image/jpeg;base64," + btoa(byteout.join(""));\n byteout = [];\n var duration = new Date().getTime() - time_start;\n return jpegDataUri;\n };\n function setQuality(quality2) {\n if (quality2 <= 0) {\n quality2 = 1;\n }\n if (quality2 > 100) {\n quality2 = 100;\n }\n if (currentQuality == quality2)\n return;\n var sf = 0;\n if (quality2 < 50) {\n sf = Math.floor(5e3 / quality2);\n } else {\n sf = Math.floor(200 - quality2 * 2);\n }\n initQuantTables(sf);\n currentQuality = quality2;\n }\n function init3() {\n var time_start = new Date().getTime();\n if (!quality)\n quality = 50;\n initCharLookupTable();\n initHuffmanTbl();\n initCategoryNumber();\n initRGBYUVTable();\n setQuality(quality);\n var duration = new Date().getTime() - time_start;\n }\n init3();\n }\n if (typeof module !== "undefined") {\n module.exports = encode2;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].encode = encode2;\n }\n function encode2(imgData, qu) {\n if (typeof qu === "undefined")\n qu = 50;\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(imgData, qu);\n return {\n data,\n width: imgData.width,\n height: imgData.height\n };\n }\n }\n});\n\n// node_modules/jpeg-js/lib/decoder.js\nvar require_decoder = __commonJS({\n "node_modules/jpeg-js/lib/decoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var JpegImage = function jpegImage() {\n "use strict";\n var dctZigZag = new Int32Array([\n 0,\n 1,\n 8,\n 16,\n 9,\n 2,\n 3,\n 10,\n 17,\n 24,\n 32,\n 25,\n 18,\n 11,\n 4,\n 5,\n 12,\n 19,\n 26,\n 33,\n 40,\n 48,\n 41,\n 34,\n 27,\n 20,\n 13,\n 6,\n 7,\n 14,\n 21,\n 28,\n 35,\n 42,\n 49,\n 56,\n 57,\n 50,\n 43,\n 36,\n 29,\n 22,\n 15,\n 23,\n 30,\n 37,\n 44,\n 51,\n 58,\n 59,\n 52,\n 45,\n 38,\n 31,\n 39,\n 46,\n 53,\n 60,\n 61,\n 54,\n 47,\n 55,\n 62,\n 63\n ]);\n var dctCos1 = 4017;\n var dctSin1 = 799;\n var dctCos3 = 3406;\n var dctSin3 = 2276;\n var dctCos6 = 1567;\n var dctSin6 = 3784;\n var dctSqrt2 = 5793;\n var dctSqrt1d2 = 2896;\n function constructor() {\n }\n function buildHuffmanTable2(codeLengths, values) {\n var k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n var p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n }\n function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive, opts) {\n var precision = frame.precision;\n var samplesPerLine = frame.samplesPerLine;\n var scanLines = frame.scanLines;\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\n var maxH = frame.maxH, maxV = frame.maxV;\n var startOffset = offset, bitsData = 0, bitsCount = 0;\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return bitsData >> bitsCount & 1;\n }\n bitsData = data[offset++];\n if (bitsData == 255) {\n var nextByte = data[offset++];\n if (nextByte) {\n throw new Error("unexpected marker: " + (bitsData << 8 | nextByte).toString(16));\n }\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n function decodeHuffman(tree) {\n var node = tree, bit;\n while ((bit = readBit()) !== null) {\n node = node[bit];\n if (typeof node === "number")\n return node;\n if (typeof node !== "object")\n throw new Error("invalid huffman sequence");\n }\n return null;\n }\n function receive(length) {\n var n2 = 0;\n while (length > 0) {\n var bit = readBit();\n if (bit === null)\n return;\n n2 = n2 << 1 | bit;\n length--;\n }\n return n2;\n }\n function receiveAndExtend(length) {\n var n2 = receive(length);\n if (n2 >= 1 << length - 1)\n return n2;\n return n2 + (-1 << length) + 1;\n }\n function decodeBaseline(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t);\n zz[0] = component2.pred += diff;\n var k2 = 1;\n while (k2 < 64) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15)\n break;\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s);\n k2++;\n }\n }\n function decodeDCFirst(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n zz[0] = component2.pred += diff;\n }\n function decodeDCSuccessive(component2, zz) {\n zz[0] |= readBit() << successive;\n }\n var eobrun = 0;\n function decodeACFirst(component2, zz) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n var k2 = spectralStart, e = spectralEnd;\n while (k2 <= e) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s) * (1 << successive);\n k2++;\n }\n }\n var successiveACState = 0, successiveACNextValue;\n function decodeACSuccessive(component2, zz) {\n var k2 = spectralStart, e = spectralEnd, r = 0;\n while (k2 <= e) {\n var z = dctZigZag[k2];\n var direction = zz[z] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0:\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1)\n throw new Error("invalid ACn encoding");\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1:\n case 2:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n r--;\n if (r === 0)\n successiveACState = successiveACState == 2 ? 3 : 0;\n }\n break;\n case 3:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n zz[z] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n break;\n }\n k2++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0)\n successiveACState = 0;\n }\n }\n function decodeMcu(component2, decode4, mcu2, row, col) {\n var mcuRow = mcu2 / mcusPerLine | 0;\n var mcuCol = mcu2 % mcusPerLine;\n var blockRow = mcuRow * component2.v + row;\n var blockCol = mcuCol * component2.h + col;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n function decodeBlock(component2, decode4, mcu2) {\n var blockRow = mcu2 / component2.blocksPerLine | 0;\n var blockCol = mcu2 % component2.blocksPerLine;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n var componentsLength = components.length;\n var component, i, j, k, n;\n var decodeFn;\n if (progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n var mcu = 0, marker;\n var mcuExpected;\n if (componentsLength == 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n if (!resetInterval)\n resetInterval = mcuExpected;\n var h, v;\n while (mcu < mcuExpected) {\n for (i = 0; i < componentsLength; i++)\n components[i].pred = 0;\n eobrun = 0;\n if (componentsLength == 1) {\n component = components[0];\n for (n = 0; n < resetInterval; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < resetInterval; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n if (mcu === mcuExpected)\n break;\n }\n }\n if (mcu === mcuExpected) {\n do {\n if (data[offset] === 255) {\n if (data[offset + 1] !== 0) {\n break;\n }\n }\n offset += 1;\n } while (offset < data.length - 2);\n }\n bitsCount = 0;\n marker = data[offset] << 8 | data[offset + 1];\n if (marker < 65280) {\n throw new Error("marker was not found");\n }\n if (marker >= 65488 && marker <= 65495) {\n offset += 2;\n } else\n break;\n }\n return offset - startOffset;\n }\n function buildComponentData(frame, component) {\n var lines = [];\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var samplesPerLine = blocksPerLine << 3;\n var R = new Int32Array(64), r = new Uint8Array(64);\n function quantizeAndInverse(zz, dataOut, dataIn) {\n var qt = component.quantizationTable;\n var v0, v1, v2, v3, v4, v5, v6, v7, t;\n var p = dataIn;\n var i2;\n for (i2 = 0; i2 < 64; i2++)\n p[i2] = zz[i2] * qt[i2];\n for (i2 = 0; i2 < 8; ++i2) {\n var row = 8 * i2;\n if (p[1 + row] == 0 && p[2 + row] == 0 && p[3 + row] == 0 && p[4 + row] == 0 && p[5 + row] == 0 && p[6 + row] == 0 && p[7 + row] == 0) {\n t = dctSqrt2 * p[0 + row] + 512 >> 10;\n p[0 + row] = t;\n p[1 + row] = t;\n p[2 + row] = t;\n p[3 + row] = t;\n p[4 + row] = t;\n p[5 + row] = t;\n p[6 + row] = t;\n p[7 + row] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 + row] + 128 >> 8;\n v1 = dctSqrt2 * p[4 + row] + 128 >> 8;\n v2 = p[2 + row];\n v3 = p[6 + row];\n v4 = dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128 >> 8;\n v7 = dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128 >> 8;\n v5 = p[3 + row] << 4;\n v6 = p[5 + row] << 4;\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 + row] = v0 + v7;\n p[7 + row] = v0 - v7;\n p[1 + row] = v1 + v6;\n p[6 + row] = v1 - v6;\n p[2 + row] = v2 + v5;\n p[5 + row] = v2 - v5;\n p[3 + row] = v3 + v4;\n p[4 + row] = v3 - v4;\n }\n for (i2 = 0; i2 < 8; ++i2) {\n var col = i2;\n if (p[1 * 8 + col] == 0 && p[2 * 8 + col] == 0 && p[3 * 8 + col] == 0 && p[4 * 8 + col] == 0 && p[5 * 8 + col] == 0 && p[6 * 8 + col] == 0 && p[7 * 8 + col] == 0) {\n t = dctSqrt2 * dataIn[i2 + 0] + 8192 >> 14;\n p[0 * 8 + col] = t;\n p[1 * 8 + col] = t;\n p[2 * 8 + col] = t;\n p[3 * 8 + col] = t;\n p[4 * 8 + col] = t;\n p[5 * 8 + col] = t;\n p[6 * 8 + col] = t;\n p[7 * 8 + col] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 * 8 + col] + 2048 >> 12;\n v1 = dctSqrt2 * p[4 * 8 + col] + 2048 >> 12;\n v2 = p[2 * 8 + col];\n v3 = p[6 * 8 + col];\n v4 = dctSqrt1d2 * (p[1 * 8 + col] - p[7 * 8 + col]) + 2048 >> 12;\n v7 = dctSqrt1d2 * (p[1 * 8 + col] + p[7 * 8 + col]) + 2048 >> 12;\n v5 = p[3 * 8 + col];\n v6 = p[5 * 8 + col];\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 * 8 + col] = v0 + v7;\n p[7 * 8 + col] = v0 - v7;\n p[1 * 8 + col] = v1 + v6;\n p[6 * 8 + col] = v1 - v6;\n p[2 * 8 + col] = v2 + v5;\n p[5 * 8 + col] = v2 - v5;\n p[3 * 8 + col] = v3 + v4;\n p[4 * 8 + col] = v3 - v4;\n }\n for (i2 = 0; i2 < 64; ++i2) {\n var sample2 = 128 + (p[i2] + 8 >> 4);\n dataOut[i2] = sample2 < 0 ? 0 : sample2 > 255 ? 255 : sample2;\n }\n }\n requestMemoryAllocation(samplesPerLine * blocksPerColumn * 8);\n var i, j;\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n var scanLine = blockRow << 3;\n for (i = 0; i < 8; i++)\n lines.push(new Uint8Array(samplesPerLine));\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n quantizeAndInverse(component.blocks[blockRow][blockCol], r, R);\n var offset = 0, sample = blockCol << 3;\n for (j = 0; j < 8; j++) {\n var line = lines[scanLine + j];\n for (i = 0; i < 8; i++)\n line[sample + i] = r[offset++];\n }\n }\n }\n return lines;\n }\n function clampTo8bit(a) {\n return a < 0 ? 0 : a > 255 ? 255 : a;\n }\n constructor.prototype = {\n load: function load(path) {\n var xhr = new XMLHttpRequest();\n xhr.open("GET", path, true);\n xhr.responseType = "arraybuffer";\n xhr.onload = function() {\n var data = new Uint8Array(xhr.response || xhr.mozResponseArrayBuffer);\n this.parse(data);\n if (this.onload)\n this.onload();\n }.bind(this);\n xhr.send(null);\n },\n parse: function parse(data) {\n var maxResolutionInPixels = this.opts.maxResolutionInMP * 1e3 * 1e3;\n var offset = 0, length = data.length;\n function readUint16() {\n var value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n var length2 = readUint16();\n var array = data.subarray(offset, offset + length2 - 2);\n offset += array.length;\n return array;\n }\n function prepareComponents(frame2) {\n var maxH2 = 1, maxV2 = 1;\n var component2, componentId2;\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n if (maxH2 < component2.h)\n maxH2 = component2.h;\n if (maxV2 < component2.v)\n maxV2 = component2.v;\n }\n }\n var mcusPerLine = Math.ceil(frame2.samplesPerLine / 8 / maxH2);\n var mcusPerColumn = Math.ceil(frame2.scanLines / 8 / maxV2);\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n var blocksPerLine = Math.ceil(Math.ceil(frame2.samplesPerLine / 8) * component2.h / maxH2);\n var blocksPerColumn = Math.ceil(Math.ceil(frame2.scanLines / 8) * component2.v / maxV2);\n var blocksPerLineForMcu = mcusPerLine * component2.h;\n var blocksPerColumnForMcu = mcusPerColumn * component2.v;\n var blocksToAllocate = blocksPerColumnForMcu * blocksPerLineForMcu;\n var blocks = [];\n requestMemoryAllocation(blocksToAllocate * 256);\n for (var i2 = 0; i2 < blocksPerColumnForMcu; i2++) {\n var row = [];\n for (var j2 = 0; j2 < blocksPerLineForMcu; j2++)\n row.push(new Int32Array(64));\n blocks.push(row);\n }\n component2.blocksPerLine = blocksPerLine;\n component2.blocksPerColumn = blocksPerColumn;\n component2.blocks = blocks;\n }\n }\n frame2.maxH = maxH2;\n frame2.maxV = maxV2;\n frame2.mcusPerLine = mcusPerLine;\n frame2.mcusPerColumn = mcusPerColumn;\n }\n var jfif = null;\n var adobe = null;\n var pixels = null;\n var frame, resetInterval;\n var quantizationTables = [], frames = [];\n var huffmanTablesAC = [], huffmanTablesDC = [];\n var fileMarker = readUint16();\n var malformedDataOffset = -1;\n this.comments = [];\n if (fileMarker != 65496) {\n throw new Error("SOI not found");\n }\n fileMarker = readUint16();\n while (fileMarker != 65497) {\n var i, j, l;\n switch (fileMarker) {\n case 65280:\n break;\n case 65504:\n case 65505:\n case 65506:\n case 65507:\n case 65508:\n case 65509:\n case 65510:\n case 65511:\n case 65512:\n case 65513:\n case 65514:\n case 65515:\n case 65516:\n case 65517:\n case 65518:\n case 65519:\n case 65534:\n var appData = readDataBlock();\n if (fileMarker === 65534) {\n var comment = String.fromCharCode.apply(null, appData);\n this.comments.push(comment);\n }\n if (fileMarker === 65504) {\n if (appData[0] === 74 && appData[1] === 70 && appData[2] === 73 && appData[3] === 70 && appData[4] === 0) {\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: appData[8] << 8 | appData[9],\n yDensity: appData[10] << 8 | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n };\n }\n }\n if (fileMarker === 65505) {\n if (appData[0] === 69 && appData[1] === 120 && appData[2] === 105 && appData[3] === 102 && appData[4] === 0) {\n this.exifBuffer = appData.subarray(5, appData.length);\n }\n }\n if (fileMarker === 65518) {\n if (appData[0] === 65 && appData[1] === 100 && appData[2] === 111 && appData[3] === 98 && appData[4] === 101 && appData[5] === 0) {\n adobe = {\n version: appData[6],\n flags0: appData[7] << 8 | appData[8],\n flags1: appData[9] << 8 | appData[10],\n transformCode: appData[11]\n };\n }\n }\n break;\n case 65499:\n var quantizationTablesLength = readUint16();\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n requestMemoryAllocation(64 * 4);\n var tableData = new Int32Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = readUint16();\n }\n } else\n throw new Error("DQT: invalid table spec");\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n case 65472:\n case 65473:\n case 65474:\n readUint16();\n frame = {};\n frame.extended = fileMarker === 65473;\n frame.progressive = fileMarker === 65474;\n frame.precision = data[offset++];\n frame.scanLines = readUint16();\n frame.samplesPerLine = readUint16();\n frame.components = {};\n frame.componentsOrder = [];\n var pixelsInFrame = frame.scanLines * frame.samplesPerLine;\n if (pixelsInFrame > maxResolutionInPixels) {\n var exceededAmount = Math.ceil((pixelsInFrame - maxResolutionInPixels) / 1e6);\n throw new Error(`maxResolutionInMP limit exceeded by ${exceededAmount}MP`);\n }\n var componentsCount = data[offset++], componentId;\n var maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n var h = data[offset + 1] >> 4;\n var v = data[offset + 1] & 15;\n var qId = data[offset + 2];\n if (h <= 0 || v <= 0) {\n throw new Error("Invalid sampling factor, expected values above 0");\n }\n frame.componentsOrder.push(componentId);\n frame.components[componentId] = {\n h,\n v,\n quantizationIdx: qId\n };\n offset += 3;\n }\n prepareComponents(frame);\n frames.push(frame);\n break;\n case 65476:\n var huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n requestMemoryAllocation(16 + codeLengthSum);\n var huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable2(codeLengths, huffmanValues);\n }\n break;\n case 65501:\n readUint16();\n resetInterval = readUint16();\n break;\n case 65500:\n readUint16();\n readUint16();\n break;\n case 65498:\n var scanLength = readUint16();\n var selectorsCount = data[offset++];\n var components = [], component;\n for (i = 0; i < selectorsCount; i++) {\n component = frame.components[data[offset++]];\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n var processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, this.opts);\n offset += processed;\n break;\n case 65535:\n if (data[offset] !== 255) {\n offset--;\n }\n break;\n default:\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n break;\n } else if (fileMarker === 224 || fileMarker == 225) {\n if (malformedDataOffset !== -1) {\n throw new Error(`first unknown JPEG marker at offset ${malformedDataOffset.toString(16)}, second unknown JPEG marker ${fileMarker.toString(16)} at offset ${(offset - 1).toString(16)}`);\n }\n malformedDataOffset = offset - 1;\n const nextOffset = readUint16();\n if (data[offset + nextOffset - 2] === 255) {\n offset += nextOffset - 2;\n break;\n }\n }\n throw new Error("unknown JPEG marker " + fileMarker.toString(16));\n }\n fileMarker = readUint16();\n }\n if (frames.length != 1)\n throw new Error("only single frame JPEGs supported");\n for (var i = 0; i < frames.length; i++) {\n var cp = frames[i].components;\n for (var j in cp) {\n cp[j].quantizationTable = quantizationTables[cp[j].quantizationIdx];\n delete cp[j].quantizationIdx;\n }\n }\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (var i = 0; i < frame.componentsOrder.length; i++) {\n var component = frame.components[frame.componentsOrder[i]];\n this.components.push({\n lines: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV\n });\n }\n },\n getData: function getData(width, height) {\n var scaleX = this.width / width, scaleY = this.height / height;\n var component1, component2, component3, component4;\n var component1Line, component2Line, component3Line, component4Line;\n var x, y;\n var offset = 0;\n var Y, Cb, Cr, K, C, M, Ye, R, G, B;\n var colorTransform;\n var dataLength = width * height * this.components.length;\n requestMemoryAllocation(dataLength);\n var data = new Uint8Array(dataLength);\n switch (this.components.length) {\n case 1:\n component1 = this.components[0];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 2:\n component1 = this.components[0];\n component2 = this.components[1];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n Y = component2Line[0 | x * component2.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 3:\n colorTransform = true;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n R = component1Line[0 | x * component1.scaleX * scaleX];\n G = component2Line[0 | x * component2.scaleX * scaleX];\n B = component3Line[0 | x * component3.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n R = clampTo8bit(Y + 1.402 * (Cr - 128));\n G = clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n B = clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = R;\n data[offset++] = G;\n data[offset++] = B;\n }\n }\n break;\n case 4:\n if (!this.adobe)\n throw new Error("Unsupported color mode (4 components)");\n colorTransform = false;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n component4 = this.components[3];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n component4Line = component4.lines[0 | y * component4.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n C = component1Line[0 | x * component1.scaleX * scaleX];\n M = component2Line[0 | x * component2.scaleX * scaleX];\n Ye = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n C = 255 - clampTo8bit(Y + 1.402 * (Cr - 128));\n M = 255 - clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n Ye = 255 - clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = 255 - C;\n data[offset++] = 255 - M;\n data[offset++] = 255 - Ye;\n data[offset++] = 255 - K;\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n return data;\n },\n copyToImageData: function copyToImageData(imageData, formatAsRGBA) {\n var width = imageData.width, height = imageData.height;\n var imageDataArray = imageData.data;\n var data = this.getData(width, height);\n var i = 0, j = 0, x, y;\n var Y, K, C, M, R, G, B;\n switch (this.components.length) {\n case 1:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n Y = data[i++];\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 3:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n R = data[i++];\n G = data[i++];\n B = data[i++];\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 4:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n C = data[i++];\n M = data[i++];\n Y = data[i++];\n K = data[i++];\n R = 255 - clampTo8bit(C * (1 - K / 255) + K);\n G = 255 - clampTo8bit(M * (1 - K / 255) + K);\n B = 255 - clampTo8bit(Y * (1 - K / 255) + K);\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n }\n };\n var totalBytesAllocated = 0;\n var maxMemoryUsageBytes = 0;\n function requestMemoryAllocation(increaseAmount = 0) {\n var totalMemoryImpactBytes = totalBytesAllocated + increaseAmount;\n if (totalMemoryImpactBytes > maxMemoryUsageBytes) {\n var exceededAmount = Math.ceil((totalMemoryImpactBytes - maxMemoryUsageBytes) / 1024 / 1024);\n throw new Error(`maxMemoryUsageInMB limit exceeded by at least ${exceededAmount}MB`);\n }\n totalBytesAllocated = totalMemoryImpactBytes;\n }\n constructor.resetMaxMemoryUsage = function(maxMemoryUsageBytes_) {\n totalBytesAllocated = 0;\n maxMemoryUsageBytes = maxMemoryUsageBytes_;\n };\n constructor.getBytesAllocated = function() {\n return totalBytesAllocated;\n };\n constructor.requestMemoryAllocation = requestMemoryAllocation;\n return constructor;\n }();\n if (typeof module !== "undefined") {\n module.exports = decode3;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].decode = decode3;\n }\n function decode3(jpegData, userOpts = {}) {\n var defaultOpts = {\n colorTransform: void 0,\n useTArray: false,\n formatAsRGBA: true,\n tolerantDecoding: true,\n maxResolutionInMP: 100,\n maxMemoryUsageInMB: 512\n };\n var opts = { ...defaultOpts, ...userOpts };\n var arr = new Uint8Array(jpegData);\n var decoder = new JpegImage();\n decoder.opts = opts;\n JpegImage.resetMaxMemoryUsage(opts.maxMemoryUsageInMB * 1024 * 1024);\n decoder.parse(arr);\n var channels = opts.formatAsRGBA ? 4 : 3;\n var bytesNeeded = decoder.width * decoder.height * channels;\n try {\n JpegImage.requestMemoryAllocation(bytesNeeded);\n var image = {\n width: decoder.width,\n height: decoder.height,\n exifBuffer: decoder.exifBuffer,\n data: opts.useTArray ? new Uint8Array(bytesNeeded) : Buffer2.alloc(bytesNeeded)\n };\n if (decoder.comments.length > 0) {\n image["comments"] = decoder.comments;\n }\n } catch (err) {\n if (err instanceof RangeError) {\n throw new Error("Could not allocate enough memory for the image. Required: " + bytesNeeded);\n }\n if (err instanceof ReferenceError) {\n if (err.message === "Buffer is not defined") {\n throw new Error("Buffer is not globally defined in this environment. Consider setting useTArray to true");\n }\n }\n throw err;\n }\n decoder.copyToImageData(image, opts.formatAsRGBA);\n return image;\n }\n }\n});\n\n// node_modules/jpeg-js/index.js\nvar require_jpeg_js = __commonJS({\n "node_modules/jpeg-js/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var encode2 = require_encoder();\n var decode3 = require_decoder();\n module.exports = {\n encode: encode2,\n decode: decode3\n };\n }\n});\n\n// src/processor.worker.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/platform.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/requests.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar xmlhttprequest;\nif (false)\n xmlhttprequest = typeof GM_xmlhttpRequest != "undefined" ? GM_xmlhttpRequest : typeof GM != "undefined" ? GM.xmlHttpRequest : window["GM_xmlhttpRequest"];\nvar GM_fetch = (...[url, opt, lisn]) => {\n function blobTo(to, blob) {\n if (to == "arrayBuffer" && blob.arrayBuffer) {\n const ret = blob.arrayBuffer();\n if (ret)\n return ret;\n }\n return new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.onload = function(event) {\n if (!event)\n return;\n if (to == "base64")\n resolve(event.target.result);\n else\n resolve(event.target.result);\n };\n if (to == "arrayBuffer")\n fileReader.readAsArrayBuffer(blob);\n else if (to == "base64")\n fileReader.readAsDataURL(blob);\n else if (to == "text")\n fileReader.readAsText(blob, "utf-8");\n else\n reject(new Error("unknown to"));\n });\n }\n return new Promise((resolve, reject) => {\n const gmopt = {\n url: url.toString(),\n data: opt?.body,\n responseType: "blob",\n headers: opt?.headers,\n method: opt?.method || "GET",\n ...lisn ? {\n onprogress: (prog) => {\n if (prog.loaded != prog.total && prog.total != 0)\n lisn.dispatchEvent(new CustomEvent("progress", { detail: [prog.loaded, prog.total] }));\n }\n } : {},\n onload: (resp) => {\n if (resp.status / 100 >= 4) {\n reject(new Error("Server Error: " + resp.status));\n return;\n }\n const blob = resp.response;\n const ref = resp;\n ref.blob = () => Promise.resolve(blob);\n ref.arrayBuffer = () => blobTo("arrayBuffer", blob);\n ref.text = () => blobTo("text", blob);\n ref.json = async () => JSON.parse(await blobTo("text", blob));\n resolve(resp);\n },\n ontimeout: () => reject(new Error("fetch timeout")),\n onerror: (...args) => {\n reject(new Error("fetch error"));\n },\n onabort: () => reject(new Error("fetch abort"))\n };\n xmlhttprequest(gmopt);\n });\n};\n\n// src/platform.ts\nvar lqueue = {};\nvar localSet = (key2, value) => localStorage.setItem("__pee__" + key2, JSON.stringify(value));\nvar port1;\nconsole.log("worker", false);\nvar msgBuff = [];\nvar setupPort = (port) => {\n port1 = port;\n port1.onmessage = (ev) => {\n lqueue[ev.data.id](ev.data);\n };\n if (true) {\n for (const msg of msgBuff) {\n port.postMessage(msg[0], { transfer: msg[1] });\n }\n msgBuff = [];\n }\n};\nif (true) {\n port1 = {\n onmessage(ev) {\n lqueue[ev.data.id](ev.data);\n },\n postMessage(msg, tr) {\n msgBuff.push([msg, tr]);\n }\n };\n}\nvar gid = 0;\nvar sendCmd = (cmd, tr, overwrite = false, todelete = false) => {\n const prom = new Promise((_) => {\n const id = gid++;\n if (overwrite)\n cmd.id = id;\n lqueue[id] = (e) => {\n _(e.res);\n if (todelete)\n delete lqueue[id];\n };\n port1.postMessage({ id, ...cmd }, tr || []);\n });\n return prom;\n};\nvar bridge = (name, f) => {\n if (false)\n return f;\n if (false)\n return f;\n return (...args) => {\n return sendCmd({ name, args });\n };\n};\nvar Bridged = (ctor) => {\n const keys = Object.getOwnPropertyNames(ctor).filter((k) => typeof ctor[k] == "function");\n for (const k of keys)\n ctor[k] = bridge(k, ctor[k]);\n};\nif (false) {\n popupport = chrome.runtime.connect({ name: "popup" });\n popupport.onMessage.addListener((msg) => {\n if (msg.id in pendingcmds) {\n pendingcmds[msg.id](msg);\n delete pendingcmds[msg.id];\n }\n });\n}\nvar Platform = class {\n static async openInTab(src, opts) {\n if (false) {\n return GM.openInTab(src, opts);\n }\n const obj = false ? chrome : browser;\n let i;\n if (opts.insert)\n i = (await obj.tabs.getCurrent()).index + 1;\n return obj.tabs.create({ active: opts.active, url: src, index: i });\n }\n static async getValue(key2, def) {\n const isinls = "__pee__" + key2 in localStorage;\n let ret;\n if (isinls) {\n let it = localStorage.getItem("__pee__" + key2);\n if (it === "undefined")\n it = null;\n ret = { ...def, ...JSON.parse(it || "{}") };\n } else\n ret = def;\n if (true) {\n if (isinls) {\n delete localStorage["__pee__" + key2];\n await chrome.storage.local.set({\n [key2]: JSON.stringify(ret)\n });\n } else {\n const d = await chrome.storage.local.get([key2]);\n if (typeof d[key2] == "string")\n return { ...def, ...await JSON.parse("" + d[key2] || "{}") };\n }\n }\n return ret;\n }\n static setValue(name, val) {\n localSet(name, val);\n }\n};\nPlatform.cmdid = 0;\nPlatform = __decorateClass([\n Bridged\n], Platform);\nvar corsFetch = async (input, init3, lsn) => {\n const id = gid++;\n let transfer = [];\n if (init3?.body) {\n if (false) {\n [init3.body, transfer] = await braveserialize(init3.body);\n }\n }\n const prom = new Promise((_, rej) => {\n let gcontroller;\n let buffer = [];\n let finished = false;\n const rs = new ReadableStream({\n start(controller) {\n gcontroller = controller;\n buffer.forEach((b) => gcontroller?.enqueue(b));\n buffer = [];\n if (finished) {\n gcontroller.close();\n }\n }\n });\n let s;\n s = 0;\n const cmdbuff = [];\n lqueue[id] = async (e) => {\n if (e.progress) {\n if (lsn)\n lsn.dispatchEvent(new CustomEvent("progress", { detail: e.progress }));\n }\n if (e.pushData) {\n if (e.s > s) {\n let idx = 0;\n while (idx < cmdbuff.length) {\n if (cmdbuff[idx].s > e.s)\n break;\n idx++;\n }\n cmdbuff.splice(idx, 0, e);\n return;\n }\n const processCmd = (e2) => {\n if (e2.pushData.data) {\n const data = new Uint8Array(e2.pushData.data);\n if (gcontroller)\n gcontroller.enqueue(data);\n else\n buffer.push(data);\n } else {\n if (gcontroller)\n gcontroller?.close();\n else\n finished = true;\n }\n };\n await processCmd(e);\n s++;\n while (cmdbuff[0]?.s == s) {\n await processCmd(cmdbuff.shift());\n s++;\n }\n }\n if (e.setRes) {\n const arrayBuffer = async () => {\n const r = rs.getReader();\n await sendCmd({ name: "fullyRead", fid: id });\n const abs = [];\n let res;\n do {\n res = await r.read();\n if (res.done)\n break;\n abs.push(res.value);\n } while (!res.done);\n const sum = abs.reduce((a, b) => a + b.byteLength, 0);\n const ret = new Uint8Array(sum);\n abs.reduce((ptr, arr) => {\n ret.set(arr, ptr);\n return ptr + arr.byteLength;\n }, 0);\n r.releaseLock();\n return ret;\n };\n const blob = async () => new Blob([await arrayBuffer()]);\n const text = async () => new TextDecoder().decode(await arrayBuffer());\n const json = async () => JSON.parse(await text());\n if (e.ok)\n _({\n body: rs,\n ok: e.ok,\n headers: e.headers,\n redirected: e.redirected,\n type: e.type,\n url: e.url,\n status: e.status,\n bodyUsed: e.bodyUsed,\n statusText: e.statusText,\n clone() {\n return this;\n },\n arrayBuffer,\n blob,\n text,\n json,\n async formData() {\n return new FormData();\n }\n });\n else {\n rej(new Error(`${e.url} - ${e.status}`));\n }\n }\n };\n port1.postMessage({\n id,\n name: "corsFetch",\n args: [input, init3]\n }, transfer);\n });\n return prom;\n};\nasync function getHeaders(s) {\n if (false)\n return headerStringToObject(await GM_head(s));\n const res = await ifetch(s, {\n method: "HEAD"\n });\n return res.headers;\n}\nasync function ifetch(...[url, opt, lisn]) {\n if (true)\n return corsFetch(url.toString(), opt, lisn);\n return GM_fetch(url, opt, lisn);\n}\nasync function* streamRemote(url, chunkSize = 72 * 1024, fetchRestOnNonCanceled = true) {\n let size = Number.POSITIVE_INFINITY;\n let ptr = 0;\n let fetchSize = chunkSize;\n while (ptr != size) {\n let obj;\n const fres = await ifetch(url, { headers: { range: `bytes=${ptr}-${ptr + fetchSize - 1}` } });\n if (false) {\n obj = headerStringToObject(fres.responseHeaders);\n } else {\n obj = fres.headers;\n }\n if (!("content-length" in obj)) {\n console.warn("no content lenght???", url);\n break;\n }\n if ("content-range" in obj) {\n size = +obj["content-range"].split("/")[1];\n }\n const len = +obj["content-length"];\n ptr += len;\n if (fetchRestOnNonCanceled)\n fetchSize = size;\n const val = Buffer2.from(await fres.arrayBuffer());\n const e = yield val;\n if (e) {\n break;\n }\n }\n}\n\n// src/stores.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/store/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/internal/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction noop() {\n}\nfunction run(fn) {\n return fn();\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === "function";\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || (a && typeof a === "object" || typeof a === "function");\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nvar resolved_promise = Promise.resolve();\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nvar SvelteElement;\nif (typeof HTMLElement === "function") {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: "open" });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n for (const key2 in this.$$.slotted) {\n this.appendChild(this.$$.slotted[key2]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []);\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n\n// node_modules/svelte/store/index.mjs\nvar subscriber_queue = [];\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = /* @__PURE__ */ new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) {\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe2(run2, invalidate = noop) {\n const subscriber = [run2, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run2(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe: subscribe2 };\n}\n\n// src/stores.ts\nvar localLoad = async (key2, def) => {\n const ret = await Platform.getValue(key2, def);\n return ret;\n};\nvar localSet2 = (key2, value) => {\n if (true) {\n return;\n }\n if (true)\n chrome.storage.local.set({ [key2]: JSON.stringify(value) });\n else\n localStorage.setItem("__pee__" + key2, JSON.stringify(value));\n};\nvar initial_settings = {\n loop: true,\n dh: false,\n pmeth: 5,\n xpv: false,\n xpi: false,\n hyd: false,\n notcata: false,\n ak: "",\n auto_embed: 0,\n auto_tags: "",\n te: false,\n eye: false,\n ca: false,\n pre: false,\n prev: false,\n sh: false,\n ep: false,\n tm: false,\n dvc: false,\n expte: false,\n mdist: -1,\n phash: false,\n hotlink: false,\n jpeg: false,\n vercheck: false,\n cache: void 0,\n fhost: 0,\n maxe: 5,\n conc: 8,\n ho: false,\n blacklist: [],\n rsources: []\n};\nvar settings = writable();\nvar appState = writable({\n isCatalog: false,\n is4chanX: false,\n akValid: false,\n herror: "",\n client: null,\n processing: 0,\n processed: 0,\n foundPosts: []\n});\nsettings.subscribe((newVal) => {\n if (newVal)\n localSet2("settingsv2", newVal);\n});\n\n// src/pngv3.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer3 = __toESM(require_buffer(), 1);\n\n// src/png.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_crc_32 = __toESM(require_crc32(), 1);\nvar import_buffer = __toESM(require_buffer(), 1);\nvar PNGDecoder = class {\n constructor(reader, strict = true) {\n this.reader = reader;\n this.strict = strict;\n this.req = 8;\n this.ptr = 8;\n this.stopped = false;\n this.repr = import_buffer.Buffer.from([]);\n }\n async catchup() {\n while (this.repr.byteLength < this.req) {\n const chunk = await this.reader.read();\n if (chunk.done) {\n if (this.strict)\n throw new Error(`Unexpected EOF, got ${this.repr.byteLength}, required ${this.req}, ${chunk.value}`);\n this.stopped = true;\n return;\n }\n this.repr = import_buffer.Buffer.concat([this.repr, chunk.value]);\n }\n }\n async *chunks() {\n while (true) {\n this.req += 8;\n await this.catchup();\n if (this.stopped)\n break;\n const length = this.repr.readUInt32BE(this.ptr);\n const name = this.repr.slice(this.ptr + 4, this.ptr + 8).toString();\n this.ptr += 4;\n this.req += length + 4;\n await this.catchup();\n yield [\n name,\n this.repr.slice(this.ptr, this.ptr + length + 4),\n this.ptr + length > this.repr.length ? -1 : this.repr.readUInt32BE(this.ptr + length + 4),\n this.ptr\n ];\n if (this.stopped)\n break;\n this.ptr += length + 8;\n if (name == "IEND")\n break;\n }\n }\n async dtor() {\n }\n};\nvar PNGEncoder = class {\n constructor(bytes) {\n this.writer = bytes.getWriter();\n this.writer.write(import_buffer.Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]));\n }\n async insertchunk(chunk) {\n let b = import_buffer.Buffer.alloc(4);\n const buff = chunk[1];\n b.writeInt32BE(buff.length - 4, 0);\n await this.writer.write(b);\n await this.writer.write(buff);\n b = import_buffer.Buffer.alloc(4);\n b.writeInt32BE((0, import_crc_32.buf)(buff), 0);\n await this.writer.write(b);\n }\n async dtor() {\n this.writer.releaseLock();\n }\n};\n\n// src/utils.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer2 = __toESM(require_buffer(), 1);\n\n// src/assets/hasembed.png\nvar hasembed_default = __toBinary("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");\n\n// src/filehosts.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction parseForm(data) {\n const form = new FormData();\n Object.entries(data).filter(([key2, value]) => value !== null).map(([key2, value]) => form.append(key2, value));\n return form;\n}\nvar lolisafe = (domain, serving = domain) => ({\n domain,\n serving,\n async uploadFile(f) {\n const resp = await ifetch(`https://${domain}/api/upload`, {\n headers: {\n accept: "application/json"\n },\n "body": parseForm({\n reqtype: "fileupload",\n "files[]": new File([f], "f.pee")\n }),\n "method": "POST"\n });\n const res = await resp.json();\n return res.files.map((e) => e.url)[0];\n }\n});\nvar catbox = (domain, serving) => ({\n domain,\n serving,\n async uploadFile(inj) {\n const resp = await ifetch(`https://${domain}/user/api.php`, {\n method: "POST",\n body: parseForm({\n reqtype: "fileupload",\n fileToUpload: inj\n })\n });\n return resp.text();\n }\n});\nvar filehosts = [\n catbox("catbox.moe", "files.catbox.moe"),\n catbox("pomf.moe", "a.pomf.cat"),\n lolisafe("take-me-to.space"),\n lolisafe("zz.ht", "z.zz.fo")\n];\n\n// node_modules/file-type/browser.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer4 = __toESM(require_buffer(), 1);\nvar import_readable_web_to_node_stream = __toESM(require_lib(), 1);\n\n// node_modules/file-type/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer3 = __toESM(require_buffer(), 1);\n\n// node_modules/token-types/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar ieee754 = __toESM(require_ieee754(), 1);\nvar import_node_buffer = __toESM(require_buffer(), 1);\nvar AnsiStringType = class {\n constructor(len) {\n this.len = len;\n }\n static decode(buffer, offset, until) {\n let str = "";\n for (let i = offset; i < until; ++i) {\n str += AnsiStringType.codePointToString(AnsiStringType.singleByteDecoder(buffer[i]));\n }\n return str;\n }\n static inRange(a, min, max) {\n return min <= a && a <= max;\n }\n static codePointToString(cp) {\n if (cp <= 65535) {\n return String.fromCharCode(cp);\n } else {\n cp -= 65536;\n return String.fromCharCode((cp >> 10) + 55296, (cp & 1023) + 56320);\n }\n }\n static singleByteDecoder(bite) {\n if (AnsiStringType.inRange(bite, 0, 127)) {\n return bite;\n }\n const codePoint = AnsiStringType.windows1252[bite - 128];\n if (codePoint === null) {\n throw Error("invaliding encoding");\n }\n return codePoint;\n }\n get(buffer, offset = 0) {\n return AnsiStringType.decode(buffer, offset, offset + this.len);\n }\n};\nAnsiStringType.windows1252 = [\n 8364,\n 129,\n 8218,\n 402,\n 8222,\n 8230,\n 8224,\n 8225,\n 710,\n 8240,\n 352,\n 8249,\n 338,\n 141,\n 381,\n 143,\n 144,\n 8216,\n 8217,\n 8220,\n 8221,\n 8226,\n 8211,\n 8212,\n 732,\n 8482,\n 353,\n 8250,\n 339,\n 157,\n 382,\n 376,\n 160,\n 161,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 171,\n 172,\n 173,\n 174,\n 175,\n 176,\n 177,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 187,\n 188,\n 189,\n 190,\n 191,\n 192,\n 193,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 203,\n 204,\n 205,\n 206,\n 207,\n 208,\n 209,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 219,\n 220,\n 221,\n 222,\n 223,\n 224,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 235,\n 236,\n 237,\n 238,\n 239,\n 240,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250,\n 251,\n 252,\n 253,\n 254,\n 255\n];\n\n// node_modules/strtok3/lib/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/ReadStreamTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/EndOfFileStream.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/Deferred.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\nvar maxStreamReadSize = 1 * 1024 * 1024;\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\nvar import_node_buffer2 = __toESM(require_buffer(), 1);\n\n// node_modules/strtok3/lib/BufferTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/util.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/supported.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar extensions = [\n "jpg",\n "png",\n "apng",\n "gif",\n "webp",\n "flif",\n "xcf",\n "cr2",\n "cr3",\n "orf",\n "arw",\n "dng",\n "nef",\n "rw2",\n "raf",\n "tif",\n "bmp",\n "icns",\n "jxr",\n "psd",\n "indd",\n "zip",\n "tar",\n "rar",\n "gz",\n "bz2",\n "7z",\n "dmg",\n "mp4",\n "mid",\n "mkv",\n "webm",\n "mov",\n "avi",\n "mpg",\n "mp2",\n "mp3",\n "m4a",\n "oga",\n "ogg",\n "ogv",\n "opus",\n "flac",\n "wav",\n "spx",\n "amr",\n "pdf",\n "epub",\n "elf",\n "exe",\n "swf",\n "rtf",\n "wasm",\n "woff",\n "woff2",\n "eot",\n "ttf",\n "otf",\n "ico",\n "flv",\n "ps",\n "xz",\n "sqlite",\n "nes",\n "crx",\n "xpi",\n "cab",\n "deb",\n "ar",\n "rpm",\n "Z",\n "lz",\n "cfb",\n "mxf",\n "mts",\n "blend",\n "bpg",\n "docx",\n "pptx",\n "xlsx",\n "3gp",\n "3g2",\n "jp2",\n "jpm",\n "jpx",\n "mj2",\n "aif",\n "qcp",\n "odt",\n "ods",\n "odp",\n "xml",\n "mobi",\n "heic",\n "cur",\n "ktx",\n "ape",\n "wv",\n "dcm",\n "ics",\n "glb",\n "pcap",\n "dsf",\n "lnk",\n "alias",\n "voc",\n "ac3",\n "m4v",\n "m4p",\n "m4b",\n "f4v",\n "f4p",\n "f4b",\n "f4a",\n "mie",\n "asf",\n "ogm",\n "ogx",\n "mpc",\n "arrow",\n "shp",\n "aac",\n "mp1",\n "it",\n "s3m",\n "xm",\n "ai",\n "skp",\n "avif",\n "eps",\n "lzh",\n "pgp",\n "asar",\n "stl",\n "chm",\n "3mf",\n "zst",\n "jxl",\n "vcf"\n];\nvar mimeTypes = [\n "image/jpeg",\n "image/png",\n "image/gif",\n "image/webp",\n "image/flif",\n "image/x-xcf",\n "image/x-canon-cr2",\n "image/x-canon-cr3",\n "image/tiff",\n "image/bmp",\n "image/vnd.ms-photo",\n "image/vnd.adobe.photoshop",\n "application/x-indesign",\n "application/epub+zip",\n "application/x-xpinstall",\n "application/vnd.oasis.opendocument.text",\n "application/vnd.oasis.opendocument.spreadsheet",\n "application/vnd.oasis.opendocument.presentation",\n "application/vnd.openxmlformats-officedocument.wordprocessingml.document",\n "application/vnd.openxmlformats-officedocument.presentationml.presentation",\n "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",\n "application/zip",\n "application/x-tar",\n "application/x-rar-compressed",\n "application/gzip",\n "application/x-bzip2",\n "application/x-7z-compressed",\n "application/x-apple-diskimage",\n "application/x-apache-arrow",\n "video/mp4",\n "audio/midi",\n "video/x-matroska",\n "video/webm",\n "video/quicktime",\n "video/vnd.avi",\n "audio/vnd.wave",\n "audio/qcelp",\n "audio/x-ms-asf",\n "video/x-ms-asf",\n "application/vnd.ms-asf",\n "video/mpeg",\n "video/3gpp",\n "audio/mpeg",\n "audio/mp4",\n "audio/opus",\n "video/ogg",\n "audio/ogg",\n "application/ogg",\n "audio/x-flac",\n "audio/ape",\n "audio/wavpack",\n "audio/amr",\n "application/pdf",\n "application/x-elf",\n "application/x-msdownload",\n "application/x-shockwave-flash",\n "application/rtf",\n "application/wasm",\n "font/woff",\n "font/woff2",\n "application/vnd.ms-fontobject",\n "font/ttf",\n "font/otf",\n "image/x-icon",\n "video/x-flv",\n "application/postscript",\n "application/eps",\n "application/x-xz",\n "application/x-sqlite3",\n "application/x-nintendo-nes-rom",\n "application/x-google-chrome-extension",\n "application/vnd.ms-cab-compressed",\n "application/x-deb",\n "application/x-unix-archive",\n "application/x-rpm",\n "application/x-compress",\n "application/x-lzip",\n "application/x-cfb",\n "application/x-mie",\n "application/mxf",\n "video/mp2t",\n "application/x-blender",\n "image/bpg",\n "image/jp2",\n "image/jpx",\n "image/jpm",\n "image/mj2",\n "audio/aiff",\n "application/xml",\n "application/x-mobipocket-ebook",\n "image/heif",\n "image/heif-sequence",\n "image/heic",\n "image/heic-sequence",\n "image/icns",\n "image/ktx",\n "application/dicom",\n "audio/x-musepack",\n "text/calendar",\n "text/vcard",\n "model/gltf-binary",\n "application/vnd.tcpdump.pcap",\n "audio/x-dsf",\n "application/x.ms.shortcut",\n "application/x.apple.alias",\n "audio/x-voc",\n "audio/vnd.dolby.dd-raw",\n "audio/x-m4a",\n "image/apng",\n "image/x-olympus-orf",\n "image/x-sony-arw",\n "image/x-adobe-dng",\n "image/x-nikon-nef",\n "image/x-panasonic-rw2",\n "image/x-fujifilm-raf",\n "video/x-m4v",\n "video/3gpp2",\n "application/x-esri-shape",\n "audio/aac",\n "audio/x-it",\n "audio/x-s3m",\n "audio/x-xm",\n "video/MP1S",\n "video/MP2P",\n "application/vnd.sketchup.skp",\n "image/avif",\n "application/x-lzh-compressed",\n "application/pgp-encrypted",\n "application/x-asar",\n "model/stl",\n "application/vnd.ms-htmlhelp",\n "model/3mf",\n "image/jxl",\n "application/zstd"\n];\n\n// node_modules/file-type/core.js\nvar supportedExtensions = new Set(extensions);\nvar supportedMimeTypes = new Set(mimeTypes);\n\n// src/utils.ts\nvar csettings;\nsettings.subscribe((b) => {\n csettings = b;\n});\nvar threadDataCache = writable();\nvar cthreadDataCache;\nthreadDataCache.subscribe((newval) => {\n cthreadDataCache = newval;\n});\nvar decodeCoom3Payload = async (buff) => {\n if (!csettings)\n throw new Error("Settings uninit");\n const allowed_domains = filehosts.map((e) => e.serving.replaceAll(".", "\\\\."));\n const pees = buff.toString().split(" ").slice(0, csettings.maxe).filter((e) => allowed_domains.some((v) => e.match(`https://(.*\\\\.)?${v}/`)));\n return (await Promise.all(pees.map(async (pee) => {\n try {\n const m = pee.match(/(?https?):\\/\\/(?.*?)(?\\/.*)/);\n if (!m)\n return;\n const { domain, file } = m.groups;\n const headers = await getHeaders(pee);\n const res = await ifetch(pee, {\n headers: { range: "bytes=0-32767", "user-agent": "" },\n mode: "cors",\n referrerPolicy: "no-referrer"\n });\n const size = +headers["content-length"] || 0;\n const header = import_buffer2.Buffer.from(await res.arrayBuffer());\n let hptr = 0;\n if (header.slice(0, 4).toString() == "PEE\\0")\n hptr += 4;\n else\n return;\n const flags = header[hptr];\n const hasFn = !!(flags & 1);\n const hasTags = !!(flags & 2);\n const hasThumbnail = !!(flags & 4);\n let [ptr, ptr2] = [hptr + 1, hptr + 1];\n let fn = "embedded";\n let tags = [];\n let thumb = import_buffer2.Buffer.from(hasembed_default);\n if (hasFn) {\n while (header[ptr2] != 0)\n ptr2++;\n fn = header.slice(ptr, ptr2).toString();\n ptr = ++ptr2;\n }\n if (hasTags) {\n while (header[ptr2] != 0)\n ptr2++;\n tags = header.slice(ptr, ptr2).toString().split(/\\s+/);\n }\n let thumbsize = 0;\n if (hasThumbnail) {\n thumbsize = header.readInt32LE(ptr);\n ptr += 4;\n if (header.byteLength >= ptr + thumbsize)\n thumb = header.slice(ptr, ptr + thumbsize);\n else\n thumb = import_buffer2.Buffer.from(await (await ifetch(pee, { headers: { "user-agent": "", range: `bytes=${ptr}-${ptr + thumbsize}` } })).arrayBuffer());\n ptr += thumbsize;\n }\n const unzip = { url: pee, headers: { "user-agent": "", range: `bytes=${ptr}-${size - 1}` } };\n let data;\n data = unzip;\n if (size < 3072) {\n thumb = data = import_buffer2.Buffer.from(await (await ifetch(unzip.url, { headers: unzip.headers })).arrayBuffer());\n }\n return {\n filename: fn,\n data,\n thumbnail: thumb\n };\n } catch (e) {\n console.warn(e);\n }\n }))).filter((e) => e).map((e) => e);\n};\n\n// src/pngv3.ts\nvar bs58 = __toESM(require_bs58(), 1);\n\n// src/bitstream.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar revbyte = (n, len = 8) => {\n let acc = 0;\n let n2 = n;\n let len2 = len;\n while (len2) {\n acc = acc * 2 + (n2 & 1);\n n2 >>= 1;\n len2--;\n }\n return acc;\n};\nvar BitstreamReader = class {\n constructor() {\n this.buffers = [];\n this.bufferedLength = 0;\n this._offsetIntoBuffer = 0;\n this._bufferIndex = 0;\n this._offset = 0;\n this.skippedLength = 0;\n }\n get bufferIndex() {\n return this._bufferIndex;\n }\n get offset() {\n return this._offset;\n }\n get available() {\n return this.bufferedLength - this.skippedLength;\n }\n getBit(offset) {\n const byte = this.buffers[0][offset >> 3];\n return +!!(byte & 1 << (offset & 7));\n }\n readSync(length) {\n let value = 0;\n if (this._offset >> 3 > this.buffers[0].byteLength) {\n throw "Out of data";\n }\n for (let i = length - 1; i >= 0; --i) {\n value = value * 2 + this.getBit(this._offset + i);\n }\n this._offset += length;\n this.bufferedLength -= length;\n return value;\n }\n addBuffer(buffer) {\n this.buffers.push(buffer);\n this.bufferedLength += buffer.length * 8;\n }\n};\nvar BitstreamWriter = class {\n constructor(stream, bufferSize = 1) {\n this.stream = stream;\n this.pendingBits = 0;\n this.bufferoffset = 0;\n this._offset = 0;\n bufferSize = 1;\n this.buffer = new Uint8Array(bufferSize);\n }\n get offset() {\n return this._offset;\n }\n get byteOffset() {\n return this.pendingBits;\n }\n end() {\n this.flush();\n }\n flush() {\n this.stream.write(new Uint8Array(this.buffer));\n this.bufferoffset = 0;\n this.buffer.fill(0);\n }\n setBit(b) {\n let byte = this.buffer[0];\n byte |= b << (this._offset & 7);\n this.buffer[0] = byte;\n this._offset += 1;\n if (++this.bufferoffset == this.buffer.length * 8) {\n this.flush();\n }\n }\n write(length, value) {\n while (length--) {\n this.setBit(value & 1);\n value >>= 1;\n }\n }\n};\n\n// src/dh-deflate.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar TINF_OK = 0;\nvar Tree = class {\n constructor() {\n this.table = new Uint16Array(16);\n this.trans = new Uint16Array(288);\n }\n};\nvar getPathTo = (tree, value) => {\n if (tree[0] === value)\n return "0";\n if (tree[1] === value)\n return "1";\n let p;\n if (typeof tree[0] != "number")\n p = getPathTo(tree[0], value);\n let b = "0";\n if (!p) {\n if (tree[1] && typeof tree[1] != "number")\n p = getPathTo(tree[1], value);\n b = "1";\n }\n if (p)\n return b + p;\n};\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n let p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n}\nvar Data = class {\n constructor(source, dests, to_hide, hidden) {\n this.source = source;\n this.dests = dests;\n this.to_hide = to_hide;\n this.hidden = hidden;\n this.pathMap = /* @__PURE__ */ new Map();\n this.dest = [];\n this.ltree = new Tree();\n this.dtree = new Tree();\n }\n computeReverse() {\n this.rltree = buildHuffmanTable(this.ltree.table, this.ltree.trans)[0];\n this.rdtree = buildHuffmanTable(this.dtree.table, this.dtree.trans)[0];\n this.adists = new Set(this.rdtree.flat(16));\n }\n};\nvar sltree = new Tree();\nvar sdtree = new Tree();\nvar rltree;\nvar rdtree;\nvar sadist;\nvar length_bits = new Uint8Array(30);\nvar length_base = new Uint16Array(30);\nvar dist_bits = new Uint8Array(30);\nvar dist_base = new Uint16Array(30);\nvar clcidx = new Uint8Array([\n 16,\n 17,\n 18,\n 0,\n 8,\n 7,\n 9,\n 6,\n 10,\n 5,\n 11,\n 4,\n 12,\n 3,\n 13,\n 2,\n 14,\n 1,\n 15\n]);\nvar code_tree = new Tree();\nvar lengths = new Uint8Array(288 + 32);\nfunction tinf_build_bits_base(bits, base, delta, first) {\n let i, sum;\n for (i = 0; i < delta; ++i)\n bits[i] = 0;\n for (i = 0; i < 30 - delta; ++i)\n bits[i + delta] = i / delta | 0;\n for (sum = first, i = 0; i < 30; ++i) {\n base[i] = sum;\n sum += 1 << bits[i];\n }\n}\nfunction tinf_build_fixed_trees(lt, dt) {\n let i;\n for (i = 0; i < 7; ++i)\n lt.table[i] = 0;\n lt.table[7] = 24;\n lt.table[8] = 152;\n lt.table[9] = 112;\n for (i = 0; i < 24; ++i)\n lt.trans[i] = 256 + i;\n for (i = 0; i < 144; ++i)\n lt.trans[24 + i] = i;\n for (i = 0; i < 8; ++i)\n lt.trans[24 + 144 + i] = 280 + i;\n for (i = 0; i < 112; ++i)\n lt.trans[24 + 144 + 8 + i] = 144 + i;\n for (i = 0; i < 5; ++i)\n dt.table[i] = 0;\n dt.table[5] = 32;\n for (i = 0; i < 32; ++i)\n dt.trans[i] = i;\n}\nvar offs = new Uint16Array(16);\nfunction tinf_build_tree(t, lengths2, off, num) {\n let i, sum;\n for (i = 0; i < 16; ++i)\n t.table[i] = 0;\n for (i = 0; i < num; ++i)\n t.table[lengths2[off + i]]++;\n t.table[0] = 0;\n for (sum = 0, i = 0; i < 16; ++i) {\n offs[i] = sum;\n sum += t.table[i];\n }\n for (i = 0; i < num; ++i) {\n if (lengths2[off + i])\n t.trans[offs[lengths2[off + i]]++] = i;\n }\n}\nfunction tinf_getbit(d) {\n const v = d.source.readSync(1);\n return v;\n}\nvar loff = 0;\nvar loffs = [];\nfunction tinf_read_bits(d, num, base) {\n if (!num)\n return base;\n const v = d.source.readSync(num) + base;\n loff = v;\n loffs.push(v);\n if (loffs.length > 4) {\n loffs.shift();\n }\n return v;\n}\nfunction tinf_decode_symbol(d, t, copy = true, ext = {}) {\n let sum = 0, cur = 0, len = 0;\n let s = 0;\n do {\n const b = d.source.readSync(1);\n copy && d.hidden?.write(1, b);\n s = s << 1 | b;\n cur = 2 * cur + b;\n ++len;\n sum += t.table[len];\n cur -= t.table[len];\n } while (cur >= 0);\n ext.length = len;\n ext.sym = s;\n return t.trans[sum + cur];\n}\nfunction tinf_decode_trees(d, lt, dt, copy = true) {\n let i, num, length;\n const hlit = tinf_read_bits(d, 5, 257);\n copy && d.hidden?.write(5, hlit - 257);\n const hdist = tinf_read_bits(d, 5, 1);\n copy && d.hidden?.write(5, hdist - 1);\n const hclen = tinf_read_bits(d, 4, 4);\n copy && d.hidden?.write(4, hclen - 4);\n for (i = 0; i < 19; ++i)\n lengths[i] = 0;\n for (i = 0; i < hclen; ++i) {\n const clen = tinf_read_bits(d, 3, 0);\n copy && d.hidden?.write(3, clen);\n lengths[clcidx[i]] = clen;\n }\n tinf_build_tree(code_tree, lengths, 0, 19);\n for (num = 0; num < hlit + hdist; ) {\n const sym = tinf_decode_symbol(d, code_tree, copy);\n let prev;\n switch (sym) {\n case 16:\n prev = lengths[num - 1];\n length = tinf_read_bits(d, 2, 3);\n copy && d.hidden?.write(2, length - 3);\n for (; length; --length) {\n lengths[num++] = prev;\n }\n break;\n case 17:\n length = tinf_read_bits(d, 3, 3);\n copy && d.hidden?.write(3, length - 3);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n case 18:\n length = tinf_read_bits(d, 7, 11);\n copy && d.hidden?.write(7, length - 11);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n default:\n lengths[num++] = sym;\n break;\n }\n }\n tinf_build_tree(lt, lengths, 0, hlit);\n tinf_build_tree(dt, lengths, hlit, hdist);\n}\nvar get_symbol = (value, bits_table, base_table) => {\n let i = 0;\n for (i = 0; i < base_table.length; ++i) {\n if (base_table[i] > value) {\n i--;\n return [i, bits_table[i], value - base_table[i]];\n }\n }\n i--;\n return [i, bits_table[i], value - base_table[i]];\n};\nvar encode_symbol = (sym, tree, pathMap) => {\n const code = getPathTo(tree, sym);\n const v = {\n length: code?.length,\n val: parseInt(code, 2)\n };\n return v;\n};\nvar capacity = 0;\nfunction tinf_inflate_block_data(d, lt, dt) {\n while (1) {\n let sym = tinf_decode_symbol(d, lt);\n if (sym === 256) {\n return TINF_OK;\n }\n if (sym < 256) {\n d.dest.push(sym);\n } else {\n sym -= 257;\n const length = tinf_read_bits(d, length_bits[sym], length_base[sym]);\n if (length_bits[sym])\n d.hidden?.write(length_bits[sym], length - length_base[sym]);\n const ext = { length: 0, sym: 0 };\n const dist = tinf_decode_symbol(d, dt, false, ext);\n let backoffset = tinf_read_bits(d, dist_bits[dist], dist_base[dist]);\n const offs2 = d.dest.length - backoffset;\n let match;\n const skip = !d.to_hide || d.to_hide && d.to_hide instanceof BitstreamReader && d.to_hide.available == 0;\n if (!skip && (match = Buffer2.from(d.dest.slice(offs2, offs2 + length))).length == length) {\n let begin = d.dest.length - 32768;\n if (begin < 0)\n begin = 0;\n let matches = [];\n let o = 0;\n const slic = Buffer2.from(d.dest.slice(begin + o, d.dest.length));\n while (begin + o < d.dest.length) {\n const r = slic.slice(o, d.dest.length).indexOf(match);\n if (r >= 0) {\n matches.push(r + begin + o);\n o += r;\n } else {\n break;\n }\n o++;\n }\n if (matches.length > 1) {\n matches = matches.map((e) => -(e - d.dest.length)).filter((e) => {\n const [dsym2] = get_symbol(e, dist_bits, dist_base);\n return d.adists.has(dsym2);\n });\n matches.reverse();\n const v = Math.floor(Math.log2(matches.length));\n capacity += v;\n if (d.to_hide instanceof BitstreamReader) {\n if (d.to_hide.available) {\n const s = d.to_hide.readSync(Math.min(d.to_hide.available, v));\n backoffset = matches[s];\n }\n } else {\n const idx = matches.indexOf(backoffset);\n d.to_hide.write(v, idx);\n }\n }\n }\n const [dsym, dlen, doff] = get_symbol(backoffset, dist_bits, dist_base);\n const encdist = encode_symbol(dsym, d.rdtree, d.pathMap);\n d.hidden?.write(encdist.length, revbyte(encdist.val, encdist.length));\n d.hidden?.write(dlen, doff);\n for (let i = offs2; i < offs2 + length; ++i) {\n d.dest.push(d.dest[i]);\n }\n }\n }\n}\nfunction tinf_inflate_uncompressed_block(d) {\n if (d.source.offset & 7)\n d.source.readSync(8 - d.source.offset & 7);\n if (d.hidden && d.hidden.offset & 7)\n d.hidden?.write(8 - d.hidden.offset & 7, 0);\n const length = d.source.readSync(16);\n d.hidden?.write(16, length);\n const invlength = d.source.readSync(16);\n d.hidden?.write(16, invlength);\n if (length !== (~invlength & 65535)) {\n return -4;\n }\n for (let i = length; i; --i) {\n const v = d.source.readSync(8);\n d.dest.push(v);\n d.hidden?.write(8, v);\n }\n return TINF_OK;\n}\nfunction tinf_uncompress(source, decompressed, to_hide, hidden, opt = 0) {\n const decomp = decompressed ? new BitstreamWriter({ write: decompressed }) : null;\n const hid = hidden && new BitstreamWriter({ write: hidden }, 4);\n const d = new Data(source, decomp, to_hide, hid);\n let res;\n let bfinal, btype;\n do {\n bfinal = tinf_getbit(d);\n d.hidden?.write(1, bfinal);\n btype = tinf_read_bits(d, 2, 0);\n d.hidden?.write(2, btype);\n switch (btype) {\n case 0:\n res = tinf_inflate_uncompressed_block(d);\n break;\n case 1:\n d.rdtree = rdtree;\n d.rltree = rltree;\n d.adists = sadist;\n res = tinf_inflate_block_data(d, sltree, sdtree);\n break;\n case 2:\n tinf_decode_trees(d, d.ltree, d.dtree);\n d.computeReverse();\n res = tinf_inflate_block_data(d, d.ltree, d.dtree);\n break;\n default:\n res = -2;\n }\n if (res !== TINF_OK)\n throw new Error("Data error " + res);\n } while (!bfinal);\n decomp?.end();\n hid?.end();\n}\ntinf_build_fixed_trees(sltree, sdtree);\ntinf_build_bits_base(length_bits, length_base, 4, 3);\ntinf_build_bits_base(dist_bits, dist_base, 2, 1);\nrltree = buildHuffmanTable(sltree.table, sltree.trans)[0];\nrdtree = buildHuffmanTable(sdtree.table, sdtree.trans)[0];\nsadist = new Set(rdtree.flat(16));\nlength_bits[28] = 0;\nlength_base[28] = 258;\n\n// src/pngv3.ts\nvar csettings2;\nsettings.subscribe((b) => {\n csettings2 = b;\n});\nvar CUM3 = import_buffer3.Buffer.from("doo\\0m");\nvar CUM4 = import_buffer3.Buffer.from("voo\\0m");\nvar CUM5 = import_buffer3.Buffer.from("boo\\0");\nvar CUM6 = import_buffer3.Buffer.from("Creation Time\\0");\nvar CUM7 = import_buffer3.Buffer.from("Software\\0");\nvar BufferReadStream = (b) => {\n const ret = new ReadableStream({\n pull(cont) {\n cont.enqueue(b);\n cont.close();\n }\n });\n return ret;\n};\nvar password = import_buffer3.Buffer.from("NOA");\nvar xor = (a, p) => {\n let n = 0;\n for (let i = 0; i < a.byteLength; ++i) {\n a[i] ^= p[n];\n n++;\n n %= p.byteLength;\n }\n};\nvar prefs = {\n "files.catbox.moe": "c",\n "a.pomf.cat": "p",\n "take-me-to.space": "t",\n "z.zz.fo": "z"\n};\nvar rprefs = {\n "c": "files.catbox.moe",\n "p": "a.pomf.cat",\n "t": "take-me-to.space",\n "z": "z.zz.fo"\n};\nvar extractFromRawDeflate = (b) => {\n const src = new BitstreamReader();\n src.addBuffer(b);\n const chnks = [];\n const hidden = new BitstreamWriter({\n write(chunk) {\n for (const i of chunk) {\n if (i >= 32 && i <= 128)\n chnks.push(i);\n else\n throw "Finish";\n }\n }\n });\n try {\n tinf_uncompress(src, void 0, hidden, void 0);\n } catch (e) {\n if (e == "Finish")\n return import_buffer3.Buffer.from(chnks);\n }\n return false;\n};\nvar extract = async (png, doextract = true) => {\n const reader = BufferReadStream(png).getReader();\n const sneed = new PNGDecoder(reader, false);\n const ret = [];\n let w;\n if (!csettings2)\n throw new Error("Settings uninit");\n try {\n let complete = false;\n const idats = [];\n for await (const [name, chunk, crc, offset] of sneed.chunks()) {\n let buff;\n switch (name) {\n case "tEXt":\n buff = chunk;\n if (buff.slice(4, 4 + CUM3.length).equals(CUM3)) {\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(buff.slice(4 + CUM3.length));\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM4.length).equals(CUM4)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM4.length);\n xor(passed, password);\n const k = await decodeCoom3Payload(passed);\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM5.length).equals(CUM5)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM5.length);\n const decoded = import_buffer3.Buffer.from(passed.toString(), "base64").toString().split(" ").map((e) => {\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n }\n if (w = [CUM6, CUM7].find((e) => buff.slice(4, 4 + e.length).equals(e))) {\n const passed = buff.slice(4 + w.length);\n if (!passed.toString().match(/^[0-9a-zA-Z+/=]+$/g))\n continue;\n const decoders = [\n (b) => import_buffer3.Buffer.from(b.toString(), "base64").toString(),\n (b) => import_buffer3.Buffer.from(bs58.decode(passed.toString())).toString()\n ];\n for (const d of decoders) {\n try {\n const decoded = d(passed).split(" ").map((e) => {\n if (!(e[0] in rprefs))\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n } catch (e) {\n }\n }\n }\n break;\n case "IDAT":\n if (ret.length)\n return ret;\n buff = chunk;\n idats.push(buff.slice(4));\n break;\n case "IEND":\n complete = true;\n default:\n break;\n }\n }\n if (idats.length) {\n let decoded;\n if ((decoded = extractFromRawDeflate(import_buffer3.Buffer.concat(idats).slice(2))) === false)\n return false;\n const dec = decoded.toString().split(" ").map((e) => {\n if (!(e[0] in rprefs) || e.length < 5)\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (doextract)\n return decodeCoom3Payload(import_buffer3.Buffer.from(dec));\n return true;\n }\n } catch (e) {\n if (e != "Uhh")\n console.error(e);\n } finally {\n reader.releaseLock();\n }\n};\nvar buildChunk = (tag, data) => {\n const ret = import_buffer3.Buffer.alloc(data.byteLength + 4);\n ret.write(tag.slice(0, 4), 0);\n data.copy(ret, 4);\n return ret;\n};\nvar BufferWriteStream = () => {\n let b = import_buffer3.Buffer.from([]);\n const ret = new WritableStream({\n write(chunk) {\n b = import_buffer3.Buffer.concat([b, chunk]);\n console.log("finished appending");\n }\n });\n return [ret, () => b];\n};\nvar embedInRawDeflate = (b, h) => {\n const src = new BitstreamReader();\n const hid = new BitstreamReader();\n hid.addBuffer(h);\n src.addBuffer(b);\n const chnks = [];\n tinf_uncompress(src, void 0, hid, (c) => chnks.push(c));\n return import_buffer3.Buffer.concat(chnks);\n};\nvar inject_data = async (container, injb) => {\n injb = import_buffer3.Buffer.concat([injb, import_buffer3.Buffer.from([0])]);\n if (!csettings2)\n throw new Error("Settings uninit");\n if (csettings2.pmeth < 5) {\n let magic = false;\n const [writestream2, extract6] = BufferWriteStream();\n const encoder = new PNGEncoder(writestream2);\n const decoder = new PNGDecoder(container.stream().getReader());\n for await (const [name, chunk, crc, offset] of decoder.chunks()) {\n if (magic && name != "IDAT")\n break;\n if (!magic && name == "IDAT") {\n const passed = import_buffer3.Buffer.from(injb);\n switch (csettings2.pmeth) {\n case 0:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM3, passed])), 0, 0]);\n break;\n case 1:\n xor(passed, password);\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM4, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 2:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM5, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 3:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM6, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 4:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM7, import_buffer3.Buffer.from(bs58.encode(passed))])), 0, 0]);\n break;\n }\n magic = true;\n }\n await encoder.insertchunk([name, chunk, crc, offset]);\n }\n await encoder.insertchunk([\n "IEND",\n buildChunk("IEND", import_buffer3.Buffer.from([])),\n 0,\n 0\n ]);\n return extract6();\n }\n let pdec = new PNGDecoder(container.stream().getReader());\n const concat = [];\n for await (const chk of pdec.chunks())\n if (chk[0] == "IDAT")\n concat.push(chk[1].slice(4));\n const comp = import_buffer3.Buffer.concat(concat);\n const head = comp.slice(0, 2);\n const chksum = comp.slice(-4);\n const idatblk = embedInRawDeflate(comp.slice(2, -4), injb);\n const [writestream, extract5] = BufferWriteStream();\n const penc = new PNGEncoder(writestream);\n pdec = new PNGDecoder(container.stream().getReader());\n let ins = false;\n for await (const chk of pdec.chunks()) {\n if (chk[0] != "IDAT") {\n await penc.insertchunk(chk);\n } else {\n if (!ins) {\n await penc.insertchunk(["IDAT", import_buffer3.Buffer.concat([import_buffer3.Buffer.from("IDAT"), head, idatblk, chksum]), 0, 0]);\n ins = true;\n }\n }\n }\n await penc.dtor();\n console.log("Finished writing");\n return extract5();\n};\nvar inject = async (container, links) => {\n links = links.map((link) => {\n for (const h of filehosts) {\n if (link.includes(h.serving)) {\n const end = link.split("/").slice(-1)[0];\n return `${prefs[h.serving]}${end}`;\n }\n }\n return "";\n });\n const injb = import_buffer3.Buffer.from(links.join(" "));\n return inject_data(container, injb);\n};\nvar has_embed = async (png) => {\n const r = await extract(png, false);\n return !!r;\n};\nvar pngv3_default = {\n extract,\n has_embed,\n inject,\n match: (fn) => !!fn.match(/\\.png$/)\n};\n\n// src/jpg.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer4 = __toESM(require_buffer(), 1);\n\n// src/f5stego.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction* f5get() {\n let extrBit = 0;\n let k = 0;\n for (let i = 0; i < 4; ++i) {\n const b2 = yield;\n k |= b2 << i;\n }\n k = (k & 15) + 1;\n let toread = 8;\n let len = 0;\n while (toread--) {\n len = len * 2 + (yield);\n }\n const b = yield;\n toread += 8;\n if (b)\n toread += 7;\n else\n len *= 2;\n while (toread--) {\n len = len * 2 + (yield);\n }\n let rlen = revbyte(len, b ? 23 : 16);\n len = rlen;\n if (len >= 256)\n len = rlen = 256;\n len *= 8;\n const chunks = [];\n const bw = new BitstreamWriter({\n write(chunk) {\n chunks.push(chunk);\n }\n });\n while (len) {\n extrBit = yield;\n bw.write(1, extrBit);\n len--;\n }\n bw.end();\n return Buffer2.concat(chunks).slice(0, rlen);\n}\nvar bitcode = new Array(65535);\nvar category = new Array(65535);\nvar std_dc_luminance_nrcodes = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\nvar std_dc_luminance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_luminance_nrcodes = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\nvar std_ac_luminance_values = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nvar std_dc_chrominance_nrcodes = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\nvar std_dc_chrominance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_chrominance_nrcodes = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\nvar std_ac_chrominance_values = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nfunction _initCategoryNumber() {\n let nrlower = 1;\n let nrupper = 2;\n for (let cat = 1; cat <= 15; cat++) {\n for (let nr = nrlower; nr < nrupper; nr++) {\n category[32767 + nr] = cat;\n bitcode[32767 + nr] = [];\n bitcode[32767 + nr][1] = cat;\n bitcode[32767 + nr][0] = nr;\n }\n for (let nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category[32767 + nrneg] = cat;\n bitcode[32767 + nrneg] = [];\n bitcode[32767 + nrneg][1] = cat;\n bitcode[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n}\n_initCategoryNumber();\nfunction _computeHuffmanTbl(nrcodes, std_table) {\n let codevalue = 0;\n let pos_in_table = 0;\n const HT = [];\n for (let k = 1; k <= 16; k++) {\n for (let j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n}\nvar YDC_HT = _computeHuffmanTbl(std_dc_luminance_nrcodes, std_dc_luminance_values);\nvar UVDC_HT = _computeHuffmanTbl(std_dc_chrominance_nrcodes, std_dc_chrominance_values);\nvar YAC_HT = _computeHuffmanTbl(std_ac_luminance_nrcodes, std_ac_luminance_values);\nvar UVAC_HT = _computeHuffmanTbl(std_ac_chrominance_nrcodes, std_ac_chrominance_values);\nvar __raw, _jfif, _APPn, _qts, _frame, _tail, __f5write, _f5write_fn;\nvar f5stego = class {\n constructor(key2, maxPixels = 4096 * 4096) {\n this.maxPixels = maxPixels;\n __privateAdd(this, __f5write);\n __privateAdd(this, __raw, void 0);\n __privateAdd(this, _jfif, void 0);\n __privateAdd(this, _APPn, void 0);\n __privateAdd(this, _qts, void 0);\n __privateAdd(this, _frame, null);\n __privateAdd(this, _tail, null);\n }\n embed(image, data, k) {\n this.parse(image);\n this.f5put(data, k);\n return this.pack();\n }\n extract(image) {\n try {\n this.gengen = f5get();\n this.gengen.next();\n this.parse(image, true);\n return this.f5get();\n } catch (e) {\n if (e instanceof Buffer2)\n return e;\n throw e;\n }\n }\n f5put(data, k) {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let t, i, comp = __privateGet(this, _frame).components[0];\n if (data.length > 8388607)\n throw "Data too big. Max 8388607 bytes allowed.";\n if (data.length < 32768) {\n t = new Uint8Array(2 + data.length);\n t[0] = data.length & 255;\n t[1] = data.length >>> 8;\n t.set(data, 2);\n } else {\n t = new Uint8Array(3 + data.length);\n t[0] = data.length & 255;\n t[1] = (data.length >>> 8 & 127) + 128;\n t[2] = data.length >>> 15;\n t.set(data, 3);\n }\n if (comp.componentId != 1) {\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n return __privateMethod(this, __f5write, _f5write_fn).call(this, comp.blocks, t, k);\n }\n f5get() {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let comp = __privateGet(this, _frame).components[0];\n if (comp.componentId != 1) {\n for (let i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n const coeff = new Int16Array(comp.blocks.length);\n coeff.set(comp.blocks);\n let pos = -1, extrBit = 0;\n const cCount = coeff.length - 1;\n let k = 0;\n const out = new Uint8Array(coeff.length / 8 | 0);\n let extrByte = 0;\n let outPos = 0;\n let bitsAvail = 0;\n let code = 0;\n let hash = 0;\n while (bitsAvail < 4) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n k |= extrBit << bitsAvail;\n bitsAvail++;\n }\n k = (k & 15) + 1;\n const n = (1 << k) - 1;\n bitsAvail = 0;\n if (k == 1) {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n extrByte |= extrBit << bitsAvail;\n bitsAvail++;\n if (bitsAvail == 8) {\n out[outPos++] = extrByte;\n extrByte = 0;\n bitsAvail = 0;\n }\n }\n } else {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n hash ^= extrBit * ++code;\n if (code == n) {\n extrByte |= hash << bitsAvail;\n bitsAvail += k;\n code = 0;\n hash = 0;\n while (bitsAvail >= 8) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n }\n }\n }\n while (bitsAvail > 0) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n let s = 2, l = out[0];\n if (out[1] & 128) {\n s++;\n l += ((out[1] & 127) << 8) + (out[2] << 15);\n } else {\n l += out[1] << 8;\n }\n return out.subarray(s, s + l);\n }\n parse(data, tolerant = false) {\n let offset = 0;\n function _buildHuffmanTable(nrcodes, values) {\n let codevalue = 0;\n let pos_in_table = 0;\n const HT = new Uint16Array(65536);\n for (let k = 0; k < 16; k++) {\n for (let j2 = 0; j2 < nrcodes[k]; j2++) {\n for (let i2 = codevalue << 15 - k, cntTo = codevalue + 1 << 15 - k; i2 < cntTo; i2++) {\n HT[i2] = values[pos_in_table] + (k + 1 << 8);\n }\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n const decodeScan = (data2, offset2, frame, components, resetInterval2, spectralStart, spectralEnd, successivePrev, successive) => {\n const startOffset = offset2;\n let bitsData = 0, bitsCount = 0, eobrun = 0;\n const p1 = 1 << successive;\n const m1 = -1 << successive;\n const decodeBaseline = (component2, pos) => {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n let diff = 0;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff;\n let k2 = 1, s, r;\n while (k2 < 64) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n if (component2.componentId == 1) {\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n if (this.gengen && component2.blocks[pos + k2] != 0) {\n const v = component2.blocks[pos + k2] < 0 ? 1 - (component2.blocks[pos + k2] & 1) : component2.blocks[pos + k2] & 1;\n const it = this.gengen.next(v);\n if (it.done) {\n throw it.value;\n }\n }\n }\n bitsCount -= s;\n k2++;\n }\n };\n function decodeDCFirst(component2, pos) {\n let diff = 0;\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff << successive;\n }\n function decodeDCSuccessive(component2, pos) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocksDC[pos >> 6] |= (bitsData >>> --bitsCount & 1) << successive;\n }\n if (!frame)\n throw "Frame not parsed yet";\n function decodeACFirst(component2, pos) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k2 = spectralStart, s, r;\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r != 15) {\n eobrun = (1 << r) - 1;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n bitsCount -= s;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n component2.blocks[pos + k2] *= p1;\n k2++;\n }\n }\n function decodeACSuccessive(component2, pos) {\n let k2 = spectralStart, r, s;\n if (frame == null)\n throw "Frame not defined";\n if (!eobrun) {\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s) {\n if (s != 1)\n throw "bad jpeg";\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n s = bitsData >>> --bitsCount & 1 ? p1 : m1;\n } else {\n if (r != 15) {\n eobrun = 1 << r;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n }\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n } else {\n if (--r < 0)\n break;\n }\n k2++;\n }\n if (s)\n component2.blocks[pos + k2] = s;\n k2++;\n }\n }\n if (eobrun) {\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n }\n k2++;\n }\n eobrun--;\n }\n }\n let decodeFn;\n if (frame.progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n let marker, mcuExpected, i2, j2, k, n, mcusPerLine, mcusPerRow, x, y;\n if (components.length == 1) {\n mcusPerLine = components[0].blocksPerLine;\n mcusPerRow = components[0].blocksPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n decodeFn(components[i2], (y * components[i2].blocksPerLineForMcu + x) * 64);\n }\n }\n }\n } else {\n mcusPerLine = frame.mcusPerLine;\n mcusPerRow = frame.mcusPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n for (j2 = 0; j2 < components[i2].v; j2++) {\n for (k = 0; k < components[i2].h; k++) {\n decodeFn(components[i2], ((y * components[i2].v + j2) * components[i2].blocksPerLineForMcu + x * components[i2].h + k) * 64);\n }\n }\n }\n }\n }\n }\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n return offset2 - startOffset;\n };\n function readUint16() {\n const value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n const length = readUint16();\n const array = data.subarray(offset, offset + length - 2);\n offset += array.length;\n return array;\n }\n __privateSet(this, __raw, data);\n __privateSet(this, _jfif, null);\n __privateSet(this, _APPn, []);\n __privateSet(this, _qts, []);\n __privateSet(this, _frame, null);\n __privateSet(this, _tail, null);\n let markerHi, markerLo, i, j, resetInterval, component;\n const huffmanTablesAC = [];\n const huffmanTablesDC = [];\n while (1) {\n if (offset >= data.length) {\n if (tolerant)\n break;\n throw "unexpected EOF";\n }\n markerHi = data[offset++];\n markerLo = data[offset++];\n if (markerHi == 255) {\n if (markerLo == 224) {\n __privateSet(this, _jfif, readDataBlock());\n }\n if (markerLo > 224 && markerLo < 240 || markerLo == 254) {\n __privateGet(this, _APPn).push({\n "app": markerLo,\n "data": readDataBlock()\n });\n }\n if (markerLo == 219) {\n __privateGet(this, _qts).push(readDataBlock());\n }\n if (markerLo >= 192 && markerLo <= 194) {\n if (__privateGet(this, _frame))\n throw "Only single frame JPEGs supported";\n readUint16();\n __privateSet(this, _frame, {\n "extended": markerLo === 193,\n "progressive": markerLo === 194,\n "precision": data[offset++],\n "scanLines": readUint16(),\n "samplesPerLine": readUint16(),\n "components": [],\n "componentIds": {},\n "maxH": 1,\n "maxV": 1\n });\n if (__privateGet(this, _frame).scanLines * __privateGet(this, _frame).samplesPerLine > this.maxPixels)\n throw "Image is too big.";\n const componentsCount = data[offset++];\n let componentId;\n let maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n const h = data[offset + 1] >> 4;\n const v = data[offset + 1] & 15;\n if (maxH < h)\n maxH = h;\n if (maxV < v)\n maxV = v;\n const qId = data[offset + 2];\n const l = __privateGet(this, _frame).components.push({\n componentId,\n h,\n v,\n quantizationTable: qId\n });\n __privateGet(this, _frame).componentIds[componentId] = l - 1;\n offset += 3;\n }\n __privateGet(this, _frame).maxH = maxH;\n __privateGet(this, _frame).maxV = maxV;\n const mcusPerLine = Math.ceil(__privateGet(this, _frame).samplesPerLine / 8 / maxH);\n const mcusPerColumn = Math.ceil(__privateGet(this, _frame).scanLines / 8 / maxV);\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n component = __privateGet(this, _frame).components[i];\n const blocksPerLine = Math.ceil(Math.ceil(__privateGet(this, _frame).samplesPerLine / 8) * component.h / maxH);\n const blocksPerColumn = Math.ceil(Math.ceil(__privateGet(this, _frame).scanLines / 8) * component.v / maxV);\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n __privateGet(this, _frame).components[i] = {\n ...component,\n blocks: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu * 64),\n blocksDC: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu),\n blocksPerLine,\n blocksPerColumn,\n blocksPerLineForMcu,\n blocksPerColumnForMcu\n };\n }\n __privateGet(this, _frame).mcusPerLine = mcusPerLine;\n __privateGet(this, _frame).mcusPerColumn = mcusPerColumn;\n }\n if (markerLo == 196) {\n const huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++)\n codeLengthSum += codeLengths[j] = data[offset];\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n const v = _buildHuffmanTable(codeLengths, huffmanValues);\n if (huffmanTableSpec >> 4 === 0)\n huffmanTablesDC[huffmanTableSpec & 15] = v;\n else\n huffmanTablesAC[huffmanTableSpec & 15] = v;\n }\n }\n if (markerLo == 221) {\n resetInterval = readUint16();\n }\n if (markerLo == 218) {\n if (__privateGet(this, _frame) == null)\n throw "SOS before SOF";\n readUint16();\n const selectorsCount = data[offset++];\n const components = [];\n for (i = 0; i < selectorsCount; i++) {\n const componentIndex = __privateGet(this, _frame).componentIds[data[offset++]];\n component = __privateGet(this, _frame).components[componentIndex];\n const tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n const spectralStart = data[offset++];\n const spectralEnd = data[offset++];\n const successiveApproximation = data[offset++];\n const processed = decodeScan(data, offset, __privateGet(this, _frame), components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15);\n offset += processed;\n }\n if (markerLo == 217) {\n break;\n }\n } else {\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n }\n while (data[offset] != 255 && offset < data.length) {\n offset++;\n }\n if (data[offset] != 255) {\n throw "bad jpeg ";\n }\n }\n }\n if (!__privateGet(this, _frame))\n throw "bad jpeg";\n if (offset < data.length)\n __privateSet(this, _tail, data.subarray(offset));\n return this;\n }\n pack() {\n let byteout;\n let bytenew;\n let bytepos;\n let poslast;\n let outpos;\n let byte;\n function writeByte(value) {\n let t;\n byteout[outpos++] = value;\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function writeBlock(block) {\n let t;\n if (outpos + block.length > poslast) {\n t = new Uint8Array(byteout.length * 2 + block.length);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n byteout.set(block, outpos);\n outpos += block.length;\n }\n function writeAPP0(self2) {\n writeWord(65504);\n if (!__privateGet(self2, _jfif)) {\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n } else {\n writeWord(__privateGet(self2, _jfif).length + 2);\n writeBlock(__privateGet(self2, _jfif));\n }\n }\n function writeDQT(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _qts).length; i2++) {\n writeWord(65499);\n writeWord(__privateGet(self2, _qts)[i2].length + 2);\n writeBlock(__privateGet(self2, _qts)[i2]);\n }\n }\n function writeAPPn(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _APPn).length; i2++) {\n writeWord(65280 | __privateGet(self2, _APPn)[i2].app);\n writeWord(__privateGet(self2, _APPn)[i2].data.length + 2);\n writeBlock(__privateGet(self2, _APPn)[i2].data);\n }\n }\n function writeSOF0(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65472);\n writeWord(8 + __privateGet(self2, _frame).components.length * 3);\n writeByte(__privateGet(self2, _frame).precision);\n writeWord(__privateGet(self2, _frame).scanLines);\n writeWord(__privateGet(self2, _frame).samplesPerLine);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n writeByte(c2.h << 4 | c2.v);\n writeByte(c2.quantizationTable);\n }\n }\n function writeDHT(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65476);\n writeWord(31);\n writeByte(0);\n for (let i2 = 0; i2 < 16; i2++) {\n writeByte(std_dc_luminance_nrcodes[i2 + 1]);\n }\n for (let j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values[j]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(16);\n for (let k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes[k + 1]);\n }\n for (let l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values[l]);\n }\n if (__privateGet(self2, _frame).components.length != 1) {\n writeWord(65476);\n writeWord(31);\n writeByte(1);\n for (let m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes[m + 1]);\n }\n for (let n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values[n]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(17);\n for (let o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes[o + 1]);\n }\n for (let p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values[p]);\n }\n }\n }\n function writeSOS(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65498);\n writeWord(6 + __privateGet(self2, _frame).components.length * 2);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n if (i2 === 0) {\n writeByte(0);\n } else {\n writeByte(17);\n }\n }\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(comp, POS, DC, HTDC, HTAC) {\n let pos, posval, t;\n if (bytepos === 0)\n bytenew = 0;\n if (!("blocks" in comp))\n throw "Blocks not parsed";\n const Diff = comp.blocksDC[POS >> 6] - DC;\n DC = comp.blocksDC[POS >> 6];\n if (Diff === 0) {\n posval = HTDC[0][1];\n bytenew <<= posval;\n bytenew += HTDC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n } else {\n pos = 32767 + Diff;\n posval = HTDC[category[pos]][1];\n bytenew <<= posval;\n bytenew += HTDC[category[pos]][0];\n bytepos += posval;\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n let end0pos = 63;\n for (; end0pos > 0 && comp.blocks[POS + end0pos] === 0; end0pos--) {\n }\n if (end0pos === 0) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n return DC;\n }\n let i2 = 1;\n let lng;\n while (i2 <= end0pos) {\n const startpos = i2;\n for (; comp.blocks[POS + i2] === 0 && i2 <= end0pos; ++i2) {\n }\n let nrzeroes = i2 - startpos;\n if (nrzeroes >= 16) {\n lng = nrzeroes >> 4;\n for (let nrmarker = 1; nrmarker <= lng; ++nrmarker) {\n posval = HTAC[240][1];\n bytenew <<= posval;\n bytenew += HTAC[240][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + comp.blocks[POS + i2];\n posval = HTAC[(nrzeroes << 4) + category[pos]][1];\n bytenew <<= posval;\n bytenew += HTAC[(nrzeroes << 4) + category[pos]][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n i2++;\n }\n if (end0pos != 63) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n return DC;\n }\n byteout = new Uint8Array(65536);\n poslast = 65536 - 128;\n outpos = 0;\n bytenew = 0;\n bytepos = 0;\n writeWord(65496);\n writeAPP0(this);\n writeAPPn(this);\n writeDQT(this);\n writeSOF0(this);\n writeDHT(this);\n writeSOS(this);\n bytenew = 0;\n bytepos = 0;\n if (!__privateGet(this, _frame))\n throw "Frame not ready";\n let c, mcuRow, mcuCol, blockRow, blockCol, mcu, i, v, h;\n const DCdiff = [];\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n DCdiff.push(0);\n }\n for (mcu = 0; mcu < __privateGet(this, _frame).mcusPerLine * __privateGet(this, _frame).mcusPerColumn; mcu++) {\n mcuRow = mcu / __privateGet(this, _frame).mcusPerLine | 0;\n mcuCol = mcu % __privateGet(this, _frame).mcusPerLine;\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n c = __privateGet(this, _frame).components[i];\n for (v = 0; v < c.v; v++) {\n blockRow = mcuRow * c.v + v;\n for (h = 0; h < c.h; h++) {\n blockCol = mcuCol * c.h + h;\n if (i === 0) {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], YDC_HT, YAC_HT);\n } else {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], UVDC_HT, UVAC_HT);\n }\n }\n }\n }\n }\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n }\n if (bytepos > 0) {\n bytenew <<= 8 - bytepos;\n bytenew += (1 << 8 - bytepos) - 1;\n byteout[outpos++] = 255 & bytenew;\n }\n writeWord(65497);\n if (__privateGet(this, _tail))\n writeBlock(__privateGet(this, _tail));\n return byteout.slice(0, outpos);\n }\n};\n__raw = new WeakMap();\n_jfif = new WeakMap();\n_APPn = new WeakMap();\n_qts = new WeakMap();\n_frame = new WeakMap();\n_tail = new WeakMap();\n__f5write = new WeakSet();\n_f5write_fn = function(coeff, data, k) {\n const coeff_count = coeff.length;\n let _changed = 0, _embedded = 0, _examined = 0, _thrown = 0, shuffled_index = 0, i, ii;\n let next_bit_to_embed = 0, byte_to_embed = data.length, data_idx = 0, available_bits_to_embed = 0;\n const n = (1 << k) - 1;\n byte_to_embed = k - 1;\n byte_to_embed ^= 0;\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed = 3;\n for (ii = 0; ii < coeff_count; ii++) {\n shuffled_index = ii;\n if (shuffled_index % 64 === 0 || coeff[shuffled_index] === 0)\n continue;\n const cc = coeff[shuffled_index];\n _examined++;\n if (cc > 0 && (cc & 1) != next_bit_to_embed) {\n coeff[shuffled_index]--;\n _changed++;\n } else if (cc < 0 && (cc & 1) == next_bit_to_embed) {\n coeff[shuffled_index]++;\n _changed++;\n }\n if (coeff[shuffled_index] !== 0) {\n _embedded++;\n if (available_bits_to_embed === 0) {\n if (k != 1 || data_idx >= data.length)\n break;\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n } else {\n _thrown++;\n }\n }\n if (k == 1 && _embedded < data.length * 8)\n throw "capacity exceeded " + _embedded / 8 + " " + data.length;\n if (k != 1) {\n let is_last_byte = false, k_bits_to_embed = 0;\n while (!is_last_byte || available_bits_to_embed !== 0 && is_last_byte) {\n k_bits_to_embed = 0;\n for (i = 0; i < k; i++) {\n if (available_bits_to_embed === 0) {\n if (data_idx >= data.length) {\n is_last_byte = true;\n break;\n }\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n k_bits_to_embed |= next_bit_to_embed << i;\n }\n const code_word = [];\n let ci = null;\n for (i = 0; i < n; i++) {\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n code_word.push(ci);\n }\n _examined += n;\n while (true) {\n let vhash = 0;\n let extracted_bit;\n for (i = 0; i < code_word.length; i++) {\n if (coeff[code_word[i]] > 0) {\n extracted_bit = coeff[code_word[i]] & 1;\n } else {\n extracted_bit = 1 - (coeff[code_word[i]] & 1);\n }\n if (extracted_bit == 1)\n vhash ^= i + 1;\n }\n i = vhash ^ k_bits_to_embed;\n if (!i) {\n _embedded += k;\n break;\n }\n i--;\n coeff[code_word[i]] += coeff[code_word[i]] < 0 ? 1 : -1;\n _changed++;\n if (coeff[code_word[i]] === 0) {\n _thrown++;\n code_word.splice(i, 1);\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n _examined++;\n code_word.push(ci);\n } else {\n _embedded += k;\n break;\n }\n }\n }\n }\n return {\n "k": k,\n "embedded": _embedded / 8,\n "examined": _examined,\n "changed": _changed,\n "thrown": _thrown,\n "efficiency": (_embedded / _changed).toFixed(2)\n };\n};\n\n// src/jpg.ts\nvar key = import_buffer4.Buffer.from("CUNNYCUNNYCUNNY");\nvar f5inst = new f5stego(key);\nvar inject2 = async (b, links) => {\n if (b.size / 20 < links.join(" ").length)\n throw "Image too small to embed.";\n const arr = new Uint8Array(new Uint8Array(await b.arrayBuffer()));\n const buff = f5inst.embed(arr, new TextEncoder().encode(links.join(" ")), 1);\n return import_buffer4.Buffer.from(buff);\n};\nvar has_embed2 = (b) => {\n try {\n const res = f5inst.extract(b);\n if (!res)\n return false;\n if (res.length > 1024)\n return false;\n const str = import_buffer4.Buffer.from(res).toString();\n if (!str.match(/^[a-zA-Z0-9:/.\\-_ ]+$/))\n return false;\n return str;\n } catch {\n return false;\n }\n};\nvar extract2 = (b, ex) => {\n return decodeCoom3Payload(import_buffer4.Buffer.from(ex));\n};\nvar jpg_default = {\n match: (fn) => !!fn.match(/\\.jpe?g$/),\n has_embed: has_embed2,\n extract: extract2,\n inject: inject2\n};\n\n// src/thirdeye.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer5 = __toESM(require_buffer(), 1);\nvar import_jpeg_js = __toESM(require_jpeg_js(), 1);\n\n// src/phash.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar median = (data) => {\n const mdarr = data.slice(0);\n mdarr.sort((a, b) => a - b);\n if (mdarr.length % 2 === 0)\n return (mdarr[mdarr.length / 2 - 1] + mdarr[mdarr.length / 2]) / 2;\n return mdarr[Math.floor(mdarr.length / 2)];\n};\nvar translate_blocks_to_bits = function(blocks, pixels_per_block) {\n const half_block_value = pixels_per_block * 256 * 3 / 2;\n const bandsize = blocks.length / 4;\n for (let i = 0; i < 4; i++) {\n const m = median(blocks.slice(i * bandsize, (i + 1) * bandsize));\n for (let j = i * bandsize; j < (i + 1) * bandsize; j++) {\n const v = blocks[j];\n blocks[j] = Number(v > m || Math.abs(v - m) < 1 && m > half_block_value);\n }\n }\n};\nvar bits_to_hexhash = (bitsArray) => {\n const hex = [];\n for (let i = 0; i < bitsArray.length; i += 4) {\n const nibble = bitsArray.slice(i, i + 4);\n hex.push(parseInt(nibble.join(""), 2).toString(16));\n }\n return hex.join("");\n};\nvar bmvbhash_even = (data, bits) => {\n const blocksize_x = Math.floor(data.width / bits);\n const blocksize_y = Math.floor(data.height / bits);\n const result = [];\n for (let y = 0; y < bits; y++) {\n for (let x = 0; x < bits; x++) {\n let total = 0;\n for (let iy = 0; iy < blocksize_y; iy++) {\n for (let ix = 0; ix < blocksize_x; ix++) {\n const cx = x * blocksize_x + ix;\n const cy = y * blocksize_y + iy;\n const ii = (cy * data.width + cx) * 4;\n const alpha = data.data[ii + 3];\n if (alpha === 0) {\n total += 765;\n } else {\n total += data.data[ii] + data.data[ii + 1] + data.data[ii + 2];\n }\n }\n }\n result.push(total);\n }\n }\n translate_blocks_to_bits(result, blocksize_x * blocksize_y);\n return bits_to_hexhash(result);\n};\n\n// src/thirdeye.ts\nvar csettings3;\nsettings.subscribe((b) => {\n csettings3 = b;\n});\nvar gelquirk = (prefix) => (a) => {\n let base = a.post || a.data || a;\n if (!Array.isArray(base))\n return [];\n base = base.filter((e) => e.file_url);\n return base.map((e) => ({\n full_url: e.file_url,\n preview_url: e.preview_url || e.preview_url,\n source: e.source,\n ext: e.file_ext || e.file_url.substr(e.file_url.lastIndexOf(".") + 1),\n page: `${prefix}${e.id || e.parent_id}`,\n tags: (e.tag_string || (e.tags && (Array.isArray(e.tags) && (typeof e.tags[0] == "string" ? e.tags.join(" ") : e.tags.map((e2) => e2.name_en).join(" "))) || e.tags) || "").split(" ")\n })) || [];\n};\nvar experimentalApi = false;\nvar black = /* @__PURE__ */ new Set();\nvar phashEn = false;\nvar mindist = 5;\nsettings.subscribe((s) => {\n if (!s)\n return;\n experimentalApi = s.expte;\n boorus = s.rsources.map((e) => ({\n ...e,\n quirks: gelquirk(e.view)\n }));\n black = new Set(s.blacklist);\n mindist = s.mdist || 5;\n phashEn = s.phash;\n});\nvar boorus = [];\nvar unlockQueue = Promise.resolve();\nvar cache = {};\nvar findFileFrom = async (b, hex, abort) => {\n try {\n if (b.domain in cache && hex in cache[b.domain])\n return cache[b.domain][hex];\n const res = await ifetch(`https://${b.domain}${b.endpoint}${hex}`);\n const txt = await res.text();\n const pres = JSON.parse(txt);\n const tran = b.quirks(pres).filter((e) => !e.tags.some((e2) => black.has(e2)));\n if (!(b.domain in cache))\n cache[b.domain] = {};\n cache[b.domain][hex] = tran;\n return tran;\n } catch (e) {\n const error = e;\n if (!error.message.includes("Unexpected end of JSON input"))\n console.error(e);\n return [];\n }\n};\nvar extract3 = async (b, fn) => {\n if (!csettings3)\n throw new Error("Settings uninit");\n let result;\n let booru;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n if (result.length) {\n booru = e.name;\n break;\n }\n }\n let cachedFile;\n const prev = result[0].preview_url;\n const full = result[0].full_url;\n return [{\n source: result[0].source,\n page: {\n title: booru,\n url: result[0].page\n },\n filename: fn.substring(0, 33) + result[0].ext,\n thumbnail: csettings3.hotlink ? prev || full : import_buffer5.Buffer.from(await (await ifetch(prev || full)).arrayBuffer()),\n data: csettings3.hotlink ? full || prev : { url: full || prev }\n }];\n};\nvar phash = (b) => {\n const res = (0, import_jpeg_js.decode)(b);\n return bmvbhash_even(res, 8);\n};\nvar hammingDist = (a, b) => {\n let res = BigInt("0x" + a) ^ BigInt("0x" + b);\n let acc = 0;\n while (res != 0n) {\n acc += Number(res & 1n);\n res >>= 1n;\n }\n return acc;\n};\nvar has_embed3 = async (b, fn, prevlink) => {\n if (import_buffer5.Buffer.from(fn, "hex").equals(b))\n return false;\n let result = void 0;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n result = result.filter((e2) => e2.full_url || e2.preview_url);\n if (result.length)\n break;\n }\n if (result && result.length != 0 && phashEn && prevlink) {\n if (!result[0].preview_url)\n return true;\n const getHash = async (l) => {\n const ogreq = await ifetch(l);\n const origPreview = await ogreq.arrayBuffer();\n return phash(import_buffer5.Buffer.from(origPreview));\n };\n const [orighash, tehash] = await Promise.all([\n getHash(prevlink),\n getHash(result[0].preview_url)\n ]);\n const d = hammingDist(orighash, tehash);\n console.log(d, prevlink);\n return d > mindist;\n }\n return result && result.length != 0;\n};\nvar thirdeye_default = {\n skip: true,\n extract: extract3,\n has_embed: has_embed3,\n match: (fn) => !!fn.match(/^[0-9a-f]{32}\\.....?/)\n};\n\n// src/pomf.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer6 = __toESM(require_buffer(), 1);\nvar sources = [\n { host: "Catbox", prefix: "files.catbox.moe/" },\n { host: "Litter", prefix: "litter.catbox.moe/" },\n { host: "Zzzz", prefix: "z.zz.fo/" }\n];\nvar csettings4;\nsettings.subscribe((b) => {\n csettings4 = b;\n});\nvar getExt = (fn) => {\n const isB64 = fn.match(/^((?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=))?\\.(gif|jpe?g|png|webm)/);\n const isExt = fn.match(/\\[.*=(.*)\\]/);\n let ext;\n let source;\n try {\n if (isB64) {\n ext = atob(isB64[1]);\n } else if (isExt) {\n ext = decodeURIComponent(isExt[1]);\n if (ext.startsWith("https://"))\n ext = ext.slice("https://".length);\n for (const cs of sources)\n if (ext.startsWith(cs.prefix)) {\n source = cs.prefix;\n ext = ext.slice(cs.prefix.length);\n break;\n }\n }\n } catch {\n }\n return { ext, source };\n};\nvar extract4 = async (b, fn) => {\n if (!csettings4)\n throw new Error("Settings uninit");\n const { ext, source } = getExt(fn);\n let rsource;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n await getHeaders("https://" + cs.prefix + ext);\n rsource = "https://" + cs.prefix + ext;\n break;\n } catch {\n }\n }\n return [{\n filename: ext,\n data: csettings4.hotlink ? rsource : { url: rsource },\n thumbnail: import_buffer6.Buffer.from(hasembed_default)\n }];\n};\nvar has_embed4 = async (b, fn) => {\n const { ext, source } = getExt(fn);\n if (!ext)\n return false;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n const e = await getHeaders("https://" + cs.prefix + ext);\n return true;\n } catch {\n }\n }\n return false;\n};\nvar pomf_default = {\n skip: true,\n extract: extract4,\n has_embed: has_embed4,\n match: (fn) => !!getExt(fn)\n};\n\n// src/processor.worker.ts\nconsole.log("Worker started");\nvar pendinggens = {};\nvar proxyAsyncGen = (id) => {\n return {\n next(arg) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n return(v) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n throw() {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n [Symbol.asyncIterator]() {\n return this;\n }\n };\n};\nvar deserializeMessage = (m) => {\n if (m instanceof MessagePort)\n return m;\n if (typeof m == "object" && m.type == "AsyncGenerator") {\n return proxyAsyncGen(m.id);\n }\n if (typeof m == "object") {\n for (const p in m) {\n m[p] = deserializeMessage(m[p]);\n }\n }\n return m;\n};\nvar processors = [thirdeye_default, pomf_default, pngv3_default, jpg_default];\nvar processImage = async (srcs, fn, hex, prevurl) => {\n const ret = await Promise.all(processors.filter((e) => e.match(fn)).map(async (proc) => {\n if (proc.skip) {\n const md5 = Buffer2.from(hex, "base64");\n if (await proc.has_embed(md5, fn, prevurl) === true) {\n return [await proc.extract(md5, fn), true];\n }\n return;\n }\n let succ = false;\n let cumul;\n do {\n try {\n const n = await srcs.next();\n if (n.done)\n return;\n const iter = streamRemote(n.value);\n if (!iter)\n return;\n cumul = Buffer2.alloc(0);\n let found;\n let chunk = { done: true };\n do {\n const { value, done } = await iter.next(typeof found === "boolean");\n if (done) {\n chunk = { done: true };\n } else {\n chunk = { done: false, value };\n cumul = Buffer2.concat([cumul, value]);\n const v = await proc.has_embed(cumul);\n if (typeof v == "string") {\n return [await proc.extract(cumul, v), false];\n }\n found = v;\n }\n } while (found !== false && !chunk.done);\n succ = true;\n await iter.next(true);\n if (found !== true) {\n return;\n }\n return [await proc.extract(cumul), false];\n } catch (err) {\n console.log(err);\n }\n } while (!succ);\n }));\n return ret.filter((e) => e).map((e) => e);\n};\nvar init2 = false;\n(async () => {\n onmessage = async (msg) => {\n const des = deserializeMessage(msg.data);\n switch (des.type) {\n case "ipc": {\n setupPort(des.port);\n const nset = await localLoad("settingsv2", initial_settings);\n settings.set(nset);\n break;\n }\n case "cmd": {\n switch (des.fun) {\n case "processImage": {\n if (!init2) {\n await new Promise((_) => {\n settings.subscribe((v) => {\n if (v)\n _();\n });\n });\n init2 = true;\n }\n const res = await processImage(des.args[0], des.args[1], des.args[2], des.args[3]);\n const tr = [];\n for (const ef of res) {\n for (const e of ef[0]) {\n if (e.thumbnail && Buffer2.isBuffer(e.thumbnail) || typeof e.thumbnail != "string")\n tr.push(e.thumbnail.buffer);\n if (Buffer2.isBuffer(e.data) || typeof e.data != "string" && !("url" in e.data))\n tr.push(e.data.buffer);\n }\n }\n postMessage({\n type: "reply",\n id: des.id,\n res\n }, [...new Set(tr)]);\n }\n }\n break;\n }\n case "ag": {\n const cb = pendinggens[des.id].shift();\n if (cb) {\n cb(des.res);\n }\n break;\n }\n }\n };\n})();\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n'); + return inlineWorker('var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key2 of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key2) && key2 !== except)\n __defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));\nvar __decorateClass = (decorators, target, key2, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key2) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key2, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key2, result);\n return result;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError("Cannot " + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, "read from private field");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError("Cannot add the same private member more than once");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, "write to private field");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, "access private method");\n return method;\n};\nvar __toBinary = /* @__PURE__ */ (() => {\n var table = new Uint8Array(128);\n for (var i = 0; i < 64; i++)\n table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i;\n return (base64) => {\n var n = base64.length, bytes = new Uint8Array((n - (base64[n - 1] == "=") - (base64[n - 2] == "=")) * 3 / 4 | 0);\n for (var i2 = 0, j = 0; i2 < n; ) {\n var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)];\n var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)];\n bytes[j++] = c0 << 2 | c1 >> 4;\n bytes[j++] = c1 << 4 | c2 >> 2;\n bytes[j++] = c2 << 6 | c3;\n }\n return bytes;\n };\n})();\n\n// \nvar init_define_BUILD_VERSION = __esm({\n ""() {\n }\n});\n\n// node_modules/base64-js/index.js\nvar require_base64_js = __commonJS({\n "node_modules/base64-js/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.byteLength = byteLength;\n exports.toByteArray = toByteArray;\n exports.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array;\n var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";\n for (i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n var i;\n var len;\n revLookup["-".charCodeAt(0)] = 62;\n revLookup["_".charCodeAt(0)] = 63;\n function getLens(b64) {\n var len2 = b64.length;\n if (len2 % 4 > 0) {\n throw new Error("Invalid string. Length must be a multiple of 4");\n }\n var validLen = b64.indexOf("=");\n if (validLen === -1)\n validLen = len2;\n var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n }\n function byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0;\n var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i2;\n for (i2 = 0; i2 < len2; i2 += 4) {\n tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)];\n arr[curByte++] = tmp >> 16 & 255;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n return arr;\n }\n function tripletToBase64(num) {\n return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];\n }\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n for (var i2 = start; i2 < end; i2 += 3) {\n tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255);\n output.push(tripletToBase64(tmp));\n }\n return output.join("");\n }\n function fromByteArray(uint8) {\n var tmp;\n var len2 = uint8.length;\n var extraBytes = len2 % 3;\n var parts = [];\n var maxChunkLength = 16383;\n for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) {\n parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength));\n }\n if (extraBytes === 1) {\n tmp = uint8[len2 - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "==");\n } else if (extraBytes === 2) {\n tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "=");\n }\n return parts.join("");\n }\n }\n});\n\n// node_modules/ieee754/index.js\nvar require_ieee754 = __commonJS({\n "node_modules/ieee754/index.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.read = function(buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n exports.write = function(buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {\n }\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {\n }\n buffer[offset + i - d] |= s * 128;\n };\n }\n});\n\n// node_modules/buffer/index.js\nvar require_buffer = __commonJS({\n "node_modules/buffer/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var base64 = require_base64_js();\n var ieee7542 = require_ieee754();\n var customInspectSymbol = typeof Symbol === "function" && typeof Symbol["for"] === "function" ? Symbol["for"]("nodejs.util.inspect.custom") : null;\n exports.Buffer = Buffer13;\n exports.SlowBuffer = SlowBuffer;\n exports.INSPECT_MAX_BYTES = 50;\n var K_MAX_LENGTH = 2147483647;\n exports.kMaxLength = K_MAX_LENGTH;\n Buffer13.TYPED_ARRAY_SUPPORT = typedArraySupport();\n if (!Buffer13.TYPED_ARRAY_SUPPORT && typeof console !== "undefined" && typeof console.error === "function") {\n console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");\n }\n function typedArraySupport() {\n try {\n const arr = new Uint8Array(1);\n const proto = { foo: function() {\n return 42;\n } };\n Object.setPrototypeOf(proto, Uint8Array.prototype);\n Object.setPrototypeOf(arr, proto);\n return arr.foo() === 42;\n } catch (e) {\n return false;\n }\n }\n Object.defineProperty(Buffer13.prototype, "parent", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.buffer;\n }\n });\n Object.defineProperty(Buffer13.prototype, "offset", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.byteOffset;\n }\n });\n function createBuffer(length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError(\'The value "\' + length + \'" is invalid for option "size"\');\n }\n const buf2 = new Uint8Array(length);\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function Buffer13(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n if (typeof encodingOrOffset === "string") {\n throw new TypeError(\'The "string" argument must be of type string. Received type number\');\n }\n return allocUnsafe(arg);\n }\n return from(arg, encodingOrOffset, length);\n }\n Buffer13.poolSize = 8192;\n function from(value, encodingOrOffset, length) {\n if (typeof value === "string") {\n return fromString(value, encodingOrOffset);\n }\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value);\n }\n if (value == null) {\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof SharedArrayBuffer !== "undefined" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof value === "number") {\n throw new TypeError(\'The "value" argument must not be of type number. Received type number\');\n }\n const valueOf = value.valueOf && value.valueOf();\n if (valueOf != null && valueOf !== value) {\n return Buffer13.from(valueOf, encodingOrOffset, length);\n }\n const b = fromObject(value);\n if (b)\n return b;\n if (typeof Symbol !== "undefined" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === "function") {\n return Buffer13.from(value[Symbol.toPrimitive]("string"), encodingOrOffset, length);\n }\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n Buffer13.from = function(value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n };\n Object.setPrototypeOf(Buffer13.prototype, Uint8Array.prototype);\n Object.setPrototypeOf(Buffer13, Uint8Array);\n function assertSize(size) {\n if (typeof size !== "number") {\n throw new TypeError(\'"size" argument must be of type number\');\n } else if (size < 0) {\n throw new RangeError(\'The value "\' + size + \'" is invalid for option "size"\');\n }\n }\n function alloc(size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(size);\n }\n if (fill !== void 0) {\n return typeof encoding === "string" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n return createBuffer(size);\n }\n Buffer13.alloc = function(size, fill, encoding) {\n return alloc(size, fill, encoding);\n };\n function allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n }\n Buffer13.allocUnsafe = function(size) {\n return allocUnsafe(size);\n };\n Buffer13.allocUnsafeSlow = function(size) {\n return allocUnsafe(size);\n };\n function fromString(string, encoding) {\n if (typeof encoding !== "string" || encoding === "") {\n encoding = "utf8";\n }\n if (!Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n const length = byteLength(string, encoding) | 0;\n let buf2 = createBuffer(length);\n const actual = buf2.write(string, encoding);\n if (actual !== length) {\n buf2 = buf2.slice(0, actual);\n }\n return buf2;\n }\n function fromArrayLike(array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0;\n const buf2 = createBuffer(length);\n for (let i = 0; i < length; i += 1) {\n buf2[i] = array[i] & 255;\n }\n return buf2;\n }\n function fromArrayView(arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView);\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);\n }\n return fromArrayLike(arrayView);\n }\n function fromArrayBuffer(array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError(\'"offset" is outside of buffer bounds\');\n }\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError(\'"length" is outside of buffer bounds\');\n }\n let buf2;\n if (byteOffset === void 0 && length === void 0) {\n buf2 = new Uint8Array(array);\n } else if (length === void 0) {\n buf2 = new Uint8Array(array, byteOffset);\n } else {\n buf2 = new Uint8Array(array, byteOffset, length);\n }\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function fromObject(obj) {\n if (Buffer13.isBuffer(obj)) {\n const len = checked(obj.length) | 0;\n const buf2 = createBuffer(len);\n if (buf2.length === 0) {\n return buf2;\n }\n obj.copy(buf2, 0, 0, len);\n return buf2;\n }\n if (obj.length !== void 0) {\n if (typeof obj.length !== "number" || numberIsNaN(obj.length)) {\n return createBuffer(0);\n }\n return fromArrayLike(obj);\n }\n if (obj.type === "Buffer" && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n }\n function checked(length) {\n if (length >= K_MAX_LENGTH) {\n throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + K_MAX_LENGTH.toString(16) + " bytes");\n }\n return length | 0;\n }\n function SlowBuffer(length) {\n if (+length != length) {\n length = 0;\n }\n return Buffer13.alloc(+length);\n }\n Buffer13.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer13.prototype;\n };\n Buffer13.compare = function compare(a, b) {\n if (isInstance(a, Uint8Array))\n a = Buffer13.from(a, a.offset, a.byteLength);\n if (isInstance(b, Uint8Array))\n b = Buffer13.from(b, b.offset, b.byteLength);\n if (!Buffer13.isBuffer(a) || !Buffer13.isBuffer(b)) {\n throw new TypeError(\'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array\');\n }\n if (a === b)\n return 0;\n let x = a.length;\n let y = b.length;\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n Buffer13.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "latin1":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return true;\n default:\n return false;\n }\n };\n Buffer13.concat = function concat(list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n }\n if (list.length === 0) {\n return Buffer13.alloc(0);\n }\n let i;\n if (length === void 0) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n const buffer = Buffer13.allocUnsafe(length);\n let pos = 0;\n for (i = 0; i < list.length; ++i) {\n let buf2 = list[i];\n if (isInstance(buf2, Uint8Array)) {\n if (pos + buf2.length > buffer.length) {\n if (!Buffer13.isBuffer(buf2))\n buf2 = Buffer13.from(buf2);\n buf2.copy(buffer, pos);\n } else {\n Uint8Array.prototype.set.call(buffer, buf2, pos);\n }\n } else if (!Buffer13.isBuffer(buf2)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n } else {\n buf2.copy(buffer, pos);\n }\n pos += buf2.length;\n }\n return buffer;\n };\n function byteLength(string, encoding) {\n if (Buffer13.isBuffer(string)) {\n return string.length;\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength;\n }\n if (typeof string !== "string") {\n throw new TypeError(\'The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type \' + typeof string);\n }\n const len = string.length;\n const mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0)\n return 0;\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "ascii":\n case "latin1":\n case "binary":\n return len;\n case "utf8":\n case "utf-8":\n return utf8ToBytes(string).length;\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return len * 2;\n case "hex":\n return len >>> 1;\n case "base64":\n return base64ToBytes(string).length;\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length;\n }\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.byteLength = byteLength;\n function slowToString(encoding, start, end) {\n let loweredCase = false;\n if (start === void 0 || start < 0) {\n start = 0;\n }\n if (start > this.length) {\n return "";\n }\n if (end === void 0 || end > this.length) {\n end = this.length;\n }\n if (end <= 0) {\n return "";\n }\n end >>>= 0;\n start >>>= 0;\n if (end <= start) {\n return "";\n }\n if (!encoding)\n encoding = "utf8";\n while (true) {\n switch (encoding) {\n case "hex":\n return hexSlice(this, start, end);\n case "utf8":\n case "utf-8":\n return utf8Slice(this, start, end);\n case "ascii":\n return asciiSlice(this, start, end);\n case "latin1":\n case "binary":\n return latin1Slice(this, start, end);\n case "base64":\n return base64Slice(this, start, end);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return utf16leSlice(this, start, end);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = (encoding + "").toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.prototype._isBuffer = true;\n function swap(b, n, m) {\n const i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n Buffer13.prototype.swap16 = function swap16() {\n const len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 16-bits");\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this;\n };\n Buffer13.prototype.swap32 = function swap32() {\n const len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 32-bits");\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this;\n };\n Buffer13.prototype.swap64 = function swap64() {\n const len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 64-bits");\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this;\n };\n Buffer13.prototype.toString = function toString() {\n const length = this.length;\n if (length === 0)\n return "";\n if (arguments.length === 0)\n return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n };\n Buffer13.prototype.toLocaleString = Buffer13.prototype.toString;\n Buffer13.prototype.equals = function equals(b) {\n if (!Buffer13.isBuffer(b))\n throw new TypeError("Argument must be a Buffer");\n if (this === b)\n return true;\n return Buffer13.compare(this, b) === 0;\n };\n Buffer13.prototype.inspect = function inspect() {\n let str = "";\n const max = exports.INSPECT_MAX_BYTES;\n str = this.toString("hex", 0, max).replace(/(.{2})/g, "$1 ").trim();\n if (this.length > max)\n str += " ... ";\n return "";\n };\n if (customInspectSymbol) {\n Buffer13.prototype[customInspectSymbol] = Buffer13.prototype.inspect;\n }\n Buffer13.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer13.from(target, target.offset, target.byteLength);\n }\n if (!Buffer13.isBuffer(target)) {\n throw new TypeError(\'The "target" argument must be one of type Buffer or Uint8Array. Received type \' + typeof target);\n }\n if (start === void 0) {\n start = 0;\n }\n if (end === void 0) {\n end = target ? target.length : 0;\n }\n if (thisStart === void 0) {\n thisStart = 0;\n }\n if (thisEnd === void 0) {\n thisEnd = this.length;\n }\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError("out of range index");\n }\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n if (thisStart >= thisEnd) {\n return -1;\n }\n if (start >= end) {\n return 1;\n }\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target)\n return 0;\n let x = thisEnd - thisStart;\n let y = end - start;\n const len = Math.min(x, y);\n const thisCopy = this.slice(thisStart, thisEnd);\n const targetCopy = target.slice(start, end);\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n if (buffer.length === 0)\n return -1;\n if (typeof byteOffset === "string") {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 2147483647) {\n byteOffset = 2147483647;\n } else if (byteOffset < -2147483648) {\n byteOffset = -2147483648;\n }\n byteOffset = +byteOffset;\n if (numberIsNaN(byteOffset)) {\n byteOffset = dir ? 0 : buffer.length - 1;\n }\n if (byteOffset < 0)\n byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir)\n return -1;\n else\n byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir)\n byteOffset = 0;\n else\n return -1;\n }\n if (typeof val === "string") {\n val = Buffer13.from(val, encoding);\n }\n if (Buffer13.isBuffer(val)) {\n if (val.length === 0) {\n return -1;\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === "number") {\n val = val & 255;\n if (typeof Uint8Array.prototype.indexOf === "function") {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n throw new TypeError("val must be string, number or Buffer");\n }\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n let indexSize = 1;\n let arrLength = arr.length;\n let valLength = val.length;\n if (encoding !== void 0) {\n encoding = String(encoding).toLowerCase();\n if (encoding === "ucs2" || encoding === "ucs-2" || encoding === "utf16le" || encoding === "utf-16le") {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n function read2(buf2, i2) {\n if (indexSize === 1) {\n return buf2[i2];\n } else {\n return buf2.readUInt16BE(i2 * indexSize);\n }\n }\n let i;\n if (dir) {\n let foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read2(arr, i) === read2(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1)\n foundIndex = i;\n if (i - foundIndex + 1 === valLength)\n return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1)\n i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength)\n byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n let found = true;\n for (let j = 0; j < valLength; j++) {\n if (read2(arr, i + j) !== read2(val, j)) {\n found = false;\n break;\n }\n }\n if (found)\n return i;\n }\n }\n return -1;\n }\n Buffer13.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n Buffer13.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n Buffer13.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n function hexWrite(buf2, string, offset, length) {\n offset = Number(offset) || 0;\n const remaining = buf2.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n const strLen = string.length;\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n let i;\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16);\n if (numberIsNaN(parsed))\n return i;\n buf2[offset + i] = parsed;\n }\n return i;\n }\n function utf8Write(buf2, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n function asciiWrite(buf2, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf2, offset, length);\n }\n function base64Write(buf2, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf2, offset, length);\n }\n function ucs2Write(buf2, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n Buffer13.prototype.write = function write2(string, offset, length, encoding) {\n if (offset === void 0) {\n encoding = "utf8";\n length = this.length;\n offset = 0;\n } else if (length === void 0 && typeof offset === "string") {\n encoding = offset;\n length = this.length;\n offset = 0;\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n if (isFinite(length)) {\n length = length >>> 0;\n if (encoding === void 0)\n encoding = "utf8";\n } else {\n encoding = length;\n length = void 0;\n }\n } else {\n throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");\n }\n const remaining = this.length - offset;\n if (length === void 0 || length > remaining)\n length = remaining;\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError("Attempt to write outside buffer bounds");\n }\n if (!encoding)\n encoding = "utf8";\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "hex":\n return hexWrite(this, string, offset, length);\n case "utf8":\n case "utf-8":\n return utf8Write(this, string, offset, length);\n case "ascii":\n case "latin1":\n case "binary":\n return asciiWrite(this, string, offset, length);\n case "base64":\n return base64Write(this, string, offset, length);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return ucs2Write(this, string, offset, length);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n Buffer13.prototype.toJSON = function toJSON() {\n return {\n type: "Buffer",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n function base64Slice(buf2, start, end) {\n if (start === 0 && end === buf2.length) {\n return base64.fromByteArray(buf2);\n } else {\n return base64.fromByteArray(buf2.slice(start, end));\n }\n }\n function utf8Slice(buf2, start, end) {\n end = Math.min(buf2.length, end);\n const res = [];\n let i = start;\n while (i < end) {\n const firstByte = buf2[i];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf2[i + 1];\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n fourthByte = buf2[i + 3];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n res.push(codePoint);\n i += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n }\n var MAX_ARGUMENTS_LENGTH = 4096;\n function decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints);\n }\n let res = "";\n let i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n }\n function asciiSlice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i] & 127);\n }\n return ret;\n }\n function latin1Slice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i]);\n }\n return ret;\n }\n function hexSlice(buf2, start, end) {\n const len = buf2.length;\n if (!start || start < 0)\n start = 0;\n if (!end || end < 0 || end > len)\n end = len;\n let out = "";\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf2[i]];\n }\n return out;\n }\n function utf16leSlice(buf2, start, end) {\n const bytes = buf2.slice(start, end);\n let res = "";\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res;\n }\n Buffer13.prototype.slice = function slice(start, end) {\n const len = this.length;\n start = ~~start;\n end = end === void 0 ? len : ~~end;\n if (start < 0) {\n start += len;\n if (start < 0)\n start = 0;\n } else if (start > len) {\n start = len;\n }\n if (end < 0) {\n end += len;\n if (end < 0)\n end = 0;\n } else if (end > len) {\n end = len;\n }\n if (end < start)\n end = start;\n const newBuf = this.subarray(start, end);\n Object.setPrototypeOf(newBuf, Buffer13.prototype);\n return newBuf;\n };\n function checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0)\n throw new RangeError("offset is not uint");\n if (offset + ext > length)\n throw new RangeError("Trying to access beyond buffer length");\n }\n Buffer13.prototype.readUintLE = Buffer13.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUintBE = Buffer13.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n checkOffset(offset, byteLength2, this.length);\n }\n let val = this[offset + --byteLength2];\n let mul = 1;\n while (byteLength2 > 0 && (mul *= 256)) {\n val += this[offset + --byteLength2] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUint8 = Buffer13.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n return this[offset];\n };\n Buffer13.prototype.readUint16LE = Buffer13.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n };\n Buffer13.prototype.readUint16BE = Buffer13.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n };\n Buffer13.prototype.readUint32LE = Buffer13.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;\n };\n Buffer13.prototype.readUint32BE = Buffer13.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n Buffer13.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const lo = first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24;\n const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last * 2 ** 24;\n return BigInt(lo) + (BigInt(hi) << BigInt(32));\n });\n Buffer13.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const hi = first * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last;\n return (BigInt(hi) << BigInt(32)) + BigInt(lo);\n });\n Buffer13.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let i = byteLength2;\n let mul = 1;\n let val = this[offset + --i];\n while (i > 0 && (mul *= 256)) {\n val += this[offset + --i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readInt8 = function readInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n if (!(this[offset] & 128))\n return this[offset];\n return (255 - this[offset] + 1) * -1;\n };\n Buffer13.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset] | this[offset + 1] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset + 1] | this[offset] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n Buffer13.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n Buffer13.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last << 24);\n return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24);\n });\n Buffer13.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = (first << 24) + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last);\n });\n Buffer13.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, true, 23, 4);\n };\n Buffer13.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, false, 23, 4);\n };\n Buffer13.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, true, 52, 8);\n };\n Buffer13.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, false, 52, 8);\n };\n function checkInt(buf2, value, offset, ext, max, min) {\n if (!Buffer13.isBuffer(buf2))\n throw new TypeError(\'"buffer" argument must be a Buffer instance\');\n if (value > max || value < min)\n throw new RangeError(\'"value" argument is out of bounds\');\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n }\n Buffer13.prototype.writeUintLE = Buffer13.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let mul = 1;\n let i = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUintBE = Buffer13.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUint8 = Buffer13.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 255, 0);\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeUint16LE = Buffer13.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeUint16BE = Buffer13.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeUint32LE = Buffer13.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeUint32BE = Buffer13.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n function wrtBigUInt64LE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n return offset;\n }\n function wrtBigUInt64BE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset + 7] = lo;\n lo = lo >> 8;\n buf2[offset + 6] = lo;\n lo = lo >> 8;\n buf2[offset + 5] = lo;\n lo = lo >> 8;\n buf2[offset + 4] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset + 3] = hi;\n hi = hi >> 8;\n buf2[offset + 2] = hi;\n hi = hi >> 8;\n buf2[offset + 1] = hi;\n hi = hi >> 8;\n buf2[offset] = hi;\n return offset + 8;\n }\n Buffer13.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = 0;\n let mul = 1;\n let sub = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n let sub = 0;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 127, -128);\n if (value < 0)\n value = 255 + value + 1;\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n return offset + 4;\n };\n Buffer13.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n if (value < 0)\n value = 4294967295 + value + 1;\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n Buffer13.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n function checkIEEE754(buf2, value, offset, ext, max, min) {\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n if (offset < 0)\n throw new RangeError("Index out of range");\n }\n function writeFloat(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 4, 34028234663852886e22, -34028234663852886e22);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n Buffer13.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n function writeDouble(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 8, 17976931348623157e292, -17976931348623157e292);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n Buffer13.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n };\n Buffer13.prototype.copy = function copy(target, targetStart, start, end) {\n if (!Buffer13.isBuffer(target))\n throw new TypeError("argument should be a Buffer");\n if (!start)\n start = 0;\n if (!end && end !== 0)\n end = this.length;\n if (targetStart >= target.length)\n targetStart = target.length;\n if (!targetStart)\n targetStart = 0;\n if (end > 0 && end < start)\n end = start;\n if (end === start)\n return 0;\n if (target.length === 0 || this.length === 0)\n return 0;\n if (targetStart < 0) {\n throw new RangeError("targetStart out of bounds");\n }\n if (start < 0 || start >= this.length)\n throw new RangeError("Index out of range");\n if (end < 0)\n throw new RangeError("sourceEnd out of bounds");\n if (end > this.length)\n end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n const len = end - start;\n if (this === target && typeof Uint8Array.prototype.copyWithin === "function") {\n this.copyWithin(targetStart, start, end);\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart);\n }\n return len;\n };\n Buffer13.prototype.fill = function fill(val, start, end, encoding) {\n if (typeof val === "string") {\n if (typeof start === "string") {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === "string") {\n encoding = end;\n end = this.length;\n }\n if (encoding !== void 0 && typeof encoding !== "string") {\n throw new TypeError("encoding must be a string");\n }\n if (typeof encoding === "string" && !Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0);\n if (encoding === "utf8" && code < 128 || encoding === "latin1") {\n val = code;\n }\n }\n } else if (typeof val === "number") {\n val = val & 255;\n } else if (typeof val === "boolean") {\n val = Number(val);\n }\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError("Out of range index");\n }\n if (end <= start) {\n return this;\n }\n start = start >>> 0;\n end = end === void 0 ? this.length : end >>> 0;\n if (!val)\n val = 0;\n let i;\n if (typeof val === "number") {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n const bytes = Buffer13.isBuffer(val) ? val : Buffer13.from(val, encoding);\n const len = bytes.length;\n if (len === 0) {\n throw new TypeError(\'The value "\' + val + \'" is invalid for argument "value"\');\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n return this;\n };\n var errors = {};\n function E(sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor() {\n super();\n Object.defineProperty(this, "message", {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n });\n this.name = `${this.name} [${sym}]`;\n this.stack;\n delete this.name;\n }\n get code() {\n return sym;\n }\n set code(value) {\n Object.defineProperty(this, "code", {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n });\n }\n toString() {\n return `${this.name} [${sym}]: ${this.message}`;\n }\n };\n }\n E("ERR_BUFFER_OUT_OF_BOUNDS", function(name) {\n if (name) {\n return `${name} is outside of buffer bounds`;\n }\n return "Attempt to access memory outside buffer bounds";\n }, RangeError);\n E("ERR_INVALID_ARG_TYPE", function(name, actual) {\n return `The "${name}" argument must be of type number. Received type ${typeof actual}`;\n }, TypeError);\n E("ERR_OUT_OF_RANGE", function(str, range, input) {\n let msg = `The value of "${str}" is out of range.`;\n let received = input;\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input));\n } else if (typeof input === "bigint") {\n received = String(input);\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received);\n }\n received += "n";\n }\n msg += ` It must be ${range}. Received ${received}`;\n return msg;\n }, RangeError);\n function addNumericalSeparator(val) {\n let res = "";\n let i = val.length;\n const start = val[0] === "-" ? 1 : 0;\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`;\n }\n return `${val.slice(0, i)}${res}`;\n }\n function checkBounds(buf2, offset, byteLength2) {\n validateNumber(offset, "offset");\n if (buf2[offset] === void 0 || buf2[offset + byteLength2] === void 0) {\n boundsError(offset, buf2.length - (byteLength2 + 1));\n }\n }\n function checkIntBI(value, min, max, buf2, offset, byteLength2) {\n if (value > max || value < min) {\n const n = typeof min === "bigint" ? "n" : "";\n let range;\n if (byteLength2 > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength2 + 1) * 8}${n}`;\n } else {\n range = `>= -(2${n} ** ${(byteLength2 + 1) * 8 - 1}${n}) and < 2 ** ${(byteLength2 + 1) * 8 - 1}${n}`;\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`;\n }\n throw new errors.ERR_OUT_OF_RANGE("value", range, value);\n }\n checkBounds(buf2, offset, byteLength2);\n }\n function validateNumber(value, name) {\n if (typeof value !== "number") {\n throw new errors.ERR_INVALID_ARG_TYPE(name, "number", value);\n }\n }\n function boundsError(value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type);\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", "an integer", value);\n }\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n }\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", `>= ${type ? 1 : 0} and <= ${length}`, value);\n }\n var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n function base64clean(str) {\n str = str.split("=")[0];\n str = str.trim().replace(INVALID_BASE64_RE, "");\n if (str.length < 2)\n return "";\n while (str.length % 4 !== 0) {\n str = str + "=";\n }\n return str;\n }\n function utf8ToBytes(string, units) {\n units = units || Infinity;\n let codePoint;\n const length = string.length;\n let leadSurrogate = null;\n const bytes = [];\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n if (codePoint > 55295 && codePoint < 57344) {\n if (!leadSurrogate) {\n if (codePoint > 56319) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n }\n leadSurrogate = codePoint;\n continue;\n }\n if (codePoint < 56320) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n }\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n }\n leadSurrogate = null;\n if (codePoint < 128) {\n if ((units -= 1) < 0)\n break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0)\n break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0)\n break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0)\n break;\n bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else {\n throw new Error("Invalid code point");\n }\n }\n return bytes;\n }\n function asciiToBytes(str) {\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n byteArray.push(str.charCodeAt(i) & 255);\n }\n return byteArray;\n }\n function utf16leToBytes(str, units) {\n let c, hi, lo;\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0)\n break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n return byteArray;\n }\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n function blitBuffer(src, dst, offset, length) {\n let i;\n for (i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length)\n break;\n dst[i + offset] = src[i];\n }\n return i;\n }\n function isInstance(obj, type) {\n return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n }\n function numberIsNaN(obj) {\n return obj !== obj;\n }\n var hexSliceLookupTable = function() {\n const alphabet = "0123456789abcdef";\n const table = new Array(256);\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16;\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n return table;\n }();\n function defineBigIntMethod(fn) {\n return typeof BigInt === "undefined" ? BufferBigIntNotDefined : fn;\n }\n function BufferBigIntNotDefined() {\n throw new Error("BigInt not supported");\n }\n }\n});\n\n// esbuild.inject.js\nvar Buffer2;\nvar init_esbuild_inject = __esm({\n "esbuild.inject.js"() {\n "use strict";\n Buffer2 = require_buffer().Buffer;\n }\n});\n\n// node_modules/crc-32/crc32.js\nvar require_crc32 = __commonJS({\n "node_modules/crc-32/crc32.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var CRC32;\n (function(factory) {\n if (typeof DO_NOT_EXPORT_CRC === "undefined") {\n if (typeof exports === "object") {\n factory(exports);\n } else if (typeof define === "function" && define.amd) {\n define(function() {\n var module2 = {};\n factory(module2);\n return module2;\n });\n } else {\n factory(CRC32 = {});\n }\n } else {\n factory(CRC32 = {});\n }\n })(function(CRC322) {\n CRC322.version = "1.2.0";\n function signed_crc_table() {\n var c = 0, table = new Array(256);\n for (var n = 0; n != 256; ++n) {\n c = n;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n table[n] = c;\n }\n return typeof Int32Array !== "undefined" ? new Int32Array(table) : table;\n }\n var T = signed_crc_table();\n function crc32_bstr(bstr, seed) {\n var C = seed ^ -1, L = bstr.length - 1;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n }\n if (i === L)\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i)) & 255];\n return C ^ -1;\n }\n function crc32_buf(buf2, seed) {\n if (buf2.length > 1e4)\n return crc32_buf_8(buf2, seed);\n var C = seed ^ -1, L = buf2.length - 3;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 3)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_buf_8(buf2, seed) {\n var C = seed ^ -1, L = buf2.length - 7;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 7)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_str(str, seed) {\n var C = seed ^ -1;\n for (var i = 0, L = str.length, c, d; i < L; ) {\n c = str.charCodeAt(i++);\n if (c < 128) {\n C = C >>> 8 ^ T[(C ^ c) & 255];\n } else if (c < 2048) {\n C = C >>> 8 ^ T[(C ^ (192 | c >> 6 & 31)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n } else if (c >= 55296 && c < 57344) {\n c = (c & 1023) + 64;\n d = str.charCodeAt(i++) & 1023;\n C = C >>> 8 ^ T[(C ^ (240 | c >> 8 & 7)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 2 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d >> 6 & 15 | (c & 3) << 4)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d & 63)) & 255];\n } else {\n C = C >>> 8 ^ T[(C ^ (224 | c >> 12 & 15)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 6 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n }\n }\n return C ^ -1;\n }\n CRC322.table = T;\n CRC322.bstr = crc32_bstr;\n CRC322.buf = crc32_buf;\n CRC322.str = crc32_str;\n });\n }\n});\n\n// node_modules/events/events.js\nvar require_events = __commonJS({\n "node_modules/events/events.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var R = typeof Reflect === "object" ? Reflect : null;\n var ReflectApply = R && typeof R.apply === "function" ? R.apply : function ReflectApply2(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n };\n var ReflectOwnKeys;\n if (R && typeof R.ownKeys === "function") {\n ReflectOwnKeys = R.ownKeys;\n } else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n } else {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target);\n };\n }\n function ProcessEmitWarning(warning) {\n if (console && console.warn)\n console.warn(warning);\n }\n var NumberIsNaN = Number.isNaN || function NumberIsNaN2(value) {\n return value !== value;\n };\n function EventEmitter() {\n EventEmitter.init.call(this);\n }\n module.exports = EventEmitter;\n module.exports.once = once;\n EventEmitter.EventEmitter = EventEmitter;\n EventEmitter.prototype._events = void 0;\n EventEmitter.prototype._eventsCount = 0;\n EventEmitter.prototype._maxListeners = void 0;\n var defaultMaxListeners = 10;\n function checkListener(listener) {\n if (typeof listener !== "function") {\n throw new TypeError(\'The "listener" argument must be of type Function. Received type \' + typeof listener);\n }\n }\n Object.defineProperty(EventEmitter, "defaultMaxListeners", {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== "number" || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError(\'The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received \' + arg + ".");\n }\n defaultMaxListeners = arg;\n }\n });\n EventEmitter.init = function() {\n if (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n }\n this._maxListeners = this._maxListeners || void 0;\n };\n EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== "number" || n < 0 || NumberIsNaN(n)) {\n throw new RangeError(\'The value of "n" is out of range. It must be a non-negative number. Received \' + n + ".");\n }\n this._maxListeners = n;\n return this;\n };\n function _getMaxListeners(that) {\n if (that._maxListeners === void 0)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n }\n EventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n };\n EventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++)\n args.push(arguments[i]);\n var doError = type === "error";\n var events = this._events;\n if (events !== void 0)\n doError = doError && events.error === void 0;\n else if (!doError)\n return false;\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n throw er;\n }\n var err = new Error("Unhandled error." + (er ? " (" + er.message + ")" : ""));\n err.context = er;\n throw err;\n }\n var handler = events[type];\n if (handler === void 0)\n return false;\n if (typeof handler === "function") {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n return true;\n };\n function _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n if (events === void 0) {\n events = target._events = /* @__PURE__ */ Object.create(null);\n target._eventsCount = 0;\n } else {\n if (events.newListener !== void 0) {\n target.emit("newListener", type, listener.listener ? listener.listener : listener);\n events = target._events;\n }\n existing = events[type];\n }\n if (existing === void 0) {\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === "function") {\n existing = events[type] = prepend ? [listener, existing] : [existing, listener];\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n var w = new Error("Possible EventEmitter memory leak detected. " + existing.length + " " + String(type) + " listeners added. Use emitter.setMaxListeners() to increase limit");\n w.name = "MaxListenersExceededWarning";\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n return target;\n }\n EventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n };\n EventEmitter.prototype.on = EventEmitter.prototype.addListener;\n EventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n function onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n }\n function _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: void 0, target, type, listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n }\n EventEmitter.prototype.once = function once2(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === void 0)\n return this;\n list = events[type];\n if (list === void 0)\n return this;\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit("removeListener", type, list.listener || listener);\n }\n } else if (typeof list !== "function") {\n position = -1;\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n if (position < 0)\n return this;\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n if (list.length === 1)\n events[type] = list[0];\n if (events.removeListener !== void 0)\n this.emit("removeListener", type, originalListener || listener);\n }\n return this;\n };\n EventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === void 0)\n return this;\n if (events.removeListener === void 0) {\n if (arguments.length === 0) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== void 0) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key2;\n for (i = 0; i < keys.length; ++i) {\n key2 = keys[i];\n if (key2 === "removeListener")\n continue;\n this.removeAllListeners(key2);\n }\n this.removeAllListeners("removeListener");\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n listeners = events[type];\n if (typeof listeners === "function") {\n this.removeListener(type, listeners);\n } else if (listeners !== void 0) {\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n return this;\n };\n function _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === void 0)\n return [];\n var evlistener = events[type];\n if (evlistener === void 0)\n return [];\n if (typeof evlistener === "function")\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n }\n EventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n };\n EventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n };\n EventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === "function") {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n };\n EventEmitter.prototype.listenerCount = listenerCount;\n function listenerCount(type) {\n var events = this._events;\n if (events !== void 0) {\n var evlistener = events[type];\n if (typeof evlistener === "function") {\n return 1;\n } else if (evlistener !== void 0) {\n return evlistener.length;\n }\n }\n return 0;\n }\n EventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n };\n function arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n }\n function spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n }\n function unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n }\n function once(emitter, name) {\n return new Promise(function(resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n function resolver() {\n if (typeof emitter.removeListener === "function") {\n emitter.removeListener("error", errorListener);\n }\n resolve([].slice.call(arguments));\n }\n ;\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== "error") {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n }\n function addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === "function") {\n eventTargetAgnosticAddListener(emitter, "error", handler, flags);\n }\n }\n function eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === "function") {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === "function") {\n emitter.addEventListener(name, function wrapListener(arg) {\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError(\'The "emitter" argument must be of type EventEmitter. Received type \' + typeof emitter);\n }\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/stream-browser.js\nvar require_stream_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/stream-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = require_events().EventEmitter;\n }\n});\n\n// (disabled):node_modules/util/util.js\nvar require_util = __commonJS({\n "(disabled):node_modules/util/util.js"() {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/buffer_list.js\nvar require_buffer_list = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/buffer_list.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly)\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n }\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function(key2) {\n _defineProperty(target, key2, source[key2]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key2) {\n Object.defineProperty(target, key2, Object.getOwnPropertyDescriptor(source, key2));\n });\n }\n }\n return target;\n }\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n var _require = require_buffer();\n var Buffer13 = _require.Buffer;\n var _require2 = require_util();\n var inspect = _require2.inspect;\n var custom = inspect && inspect.custom || "inspect";\n function copyBuffer(src, target, offset) {\n Buffer13.prototype.copy.call(src, target, offset);\n }\n module.exports = /* @__PURE__ */ function() {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: "push",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0)\n this.tail.next = entry;\n else\n this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: "unshift",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0)\n this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: "shift",\n value: function shift() {\n if (this.length === 0)\n return;\n var ret = this.head.data;\n if (this.length === 1)\n this.head = this.tail = null;\n else\n this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: "clear",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: "join",\n value: function join(s) {\n if (this.length === 0)\n return "";\n var p = this.head;\n var ret = "" + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }\n return ret;\n }\n }, {\n key: "concat",\n value: function concat(n) {\n if (this.length === 0)\n return Buffer13.alloc(0);\n var ret = Buffer13.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n }, {\n key: "consume",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n ret = this.shift();\n } else {\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: "first",\n value: function first() {\n return this.head.data;\n }\n }, {\n key: "_getString",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length)\n ret += str;\n else\n ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: "_getBuffer",\n value: function _getBuffer(n) {\n var ret = Buffer13.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf2 = p.data;\n var nb = n > buf2.length ? buf2.length : n;\n buf2.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf2.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf2.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n depth: 0,\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n }();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/destroy.js\nvar require_destroy = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/destroy.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function(err2) {\n if (!cb && err2) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n }\n function emitErrorAndCloseNT(self2, err) {\n emitErrorNT(self2, err);\n emitCloseNT(self2);\n }\n function emitCloseNT(self2) {\n if (self2._writableState && !self2._writableState.emitClose)\n return;\n if (self2._readableState && !self2._readableState.emitClose)\n return;\n self2.emit("close");\n }\n function undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n }\n function emitErrorNT(self2, err) {\n self2.emit("error", err);\n }\n function errorOrDestroy(stream, err) {\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy)\n stream.destroy(err);\n else\n stream.emit("error", err);\n }\n module.exports = {\n destroy,\n undestroy,\n errorOrDestroy\n };\n }\n});\n\n// node_modules/readable-stream/errors-browser.js\nvar require_errors_browser = __commonJS({\n "node_modules/readable-stream/errors-browser.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n }\n var codes = {};\n function createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === "string") {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /* @__PURE__ */ function(_Base) {\n _inheritsLoose(NodeError2, _Base);\n function NodeError2(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n return NodeError2;\n }(Base);\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n }\n function oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function(i) {\n return String(i);\n });\n if (len > 2) {\n return "one of ".concat(thing, " ").concat(expected.slice(0, len - 1).join(", "), ", or ") + expected[len - 1];\n } else if (len === 2) {\n return "one of ".concat(thing, " ").concat(expected[0], " or ").concat(expected[1]);\n } else {\n return "of ".concat(thing, " ").concat(expected[0]);\n }\n } else {\n return "of ".concat(thing, " ").concat(String(expected));\n }\n }\n function startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n }\n function endsWith(str, search, this_len) {\n if (this_len === void 0 || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n }\n function includes(str, search, start) {\n if (typeof start !== "number") {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n }\n createErrorType("ERR_INVALID_OPT_VALUE", function(name, value) {\n return \'The value "\' + value + \'" is invalid for option "\' + name + \'"\';\n }, TypeError);\n createErrorType("ERR_INVALID_ARG_TYPE", function(name, expected, actual) {\n var determiner;\n if (typeof expected === "string" && startsWith(expected, "not ")) {\n determiner = "must not be";\n expected = expected.replace(/^not /, "");\n } else {\n determiner = "must be";\n }\n var msg;\n if (endsWith(name, " argument")) {\n msg = "The ".concat(name, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n } else {\n var type = includes(name, ".") ? "property" : "argument";\n msg = \'The "\'.concat(name, \'" \').concat(type, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n }\n msg += ". Received type ".concat(typeof actual);\n return msg;\n }, TypeError);\n createErrorType("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF");\n createErrorType("ERR_METHOD_NOT_IMPLEMENTED", function(name) {\n return "The " + name + " method is not implemented";\n });\n createErrorType("ERR_STREAM_PREMATURE_CLOSE", "Premature close");\n createErrorType("ERR_STREAM_DESTROYED", function(name) {\n return "Cannot call " + name + " after a stream was destroyed";\n });\n createErrorType("ERR_MULTIPLE_CALLBACK", "Callback called multiple times");\n createErrorType("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable");\n createErrorType("ERR_STREAM_WRITE_AFTER_END", "write after end");\n createErrorType("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError);\n createErrorType("ERR_UNKNOWN_ENCODING", function(arg) {\n return "Unknown encoding: " + arg;\n }, TypeError);\n createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event");\n module.exports.codes = codes;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/state.js\nvar require_state = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/state.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_INVALID_OPT_VALUE = require_errors_browser().codes.ERR_INVALID_OPT_VALUE;\n function highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n }\n function getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : "highWaterMark";\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n return state.objectMode ? 16 : 16 * 1024;\n }\n module.exports = {\n getHighWaterMark\n };\n }\n});\n\n// node_modules/inherits/inherits_browser.js\nvar require_inherits_browser = __commonJS({\n "node_modules/inherits/inherits_browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n if (typeof Object.create === "function") {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n } else {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function() {\n };\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n }\n }\n});\n\n// node_modules/util-deprecate/browser.js\nvar require_browser = __commonJS({\n "node_modules/util-deprecate/browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = deprecate;\n function deprecate(fn, msg) {\n if (config("noDeprecation")) {\n return fn;\n }\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config("throwDeprecation")) {\n throw new Error(msg);\n } else if (config("traceDeprecation")) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n }\n function config(name) {\n try {\n if (!self.localStorage)\n return false;\n } catch (_) {\n return false;\n }\n var val = self.localStorage[name];\n if (val == null)\n return false;\n return String(val).toLowerCase() === "true";\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_writable.js\nvar require_stream_writable = __commonJS({\n "node_modules/readable-stream/lib/_stream_writable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Writable;\n function CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function() {\n onCorkedFinish(_this, state);\n };\n }\n var Duplex;\n Writable.WritableState = WritableState;\n var internalUtil = {\n deprecate: require_browser()\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n var ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES;\n var ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END;\n var ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n require_inherits_browser()(Writable, Stream);\n function nop() {\n }\n function WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.writableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "writableHighWaterMark", isDuplex);\n this.finalCalled = false;\n this.needDrain = false;\n this.ending = false;\n this.ended = false;\n this.finished = false;\n this.destroyed = false;\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.length = 0;\n this.writing = false;\n this.corked = 0;\n this.sync = true;\n this.bufferProcessing = false;\n this.onwrite = function(er) {\n onwrite(stream, er);\n };\n this.writecb = null;\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n this.pendingcb = 0;\n this.prefinished = false;\n this.errorEmitted = false;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.bufferedRequestCount = 0;\n this.corkedRequestsFree = new CorkedRequest(this);\n }\n WritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n };\n (function() {\n try {\n Object.defineProperty(WritableState.prototype, "buffer", {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003")\n });\n } catch (_) {\n }\n })();\n var realHasInstance;\n if (typeof Symbol === "function" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === "function") {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object))\n return true;\n if (this !== Writable)\n return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n } else {\n realHasInstance = function realHasInstance2(object) {\n return object instanceof this;\n };\n }\n function Writable(options) {\n Duplex = Duplex || require_stream_duplex();\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this))\n return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n this.writable = true;\n if (options) {\n if (typeof options.write === "function")\n this._write = options.write;\n if (typeof options.writev === "function")\n this._writev = options.writev;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n if (typeof options.final === "function")\n this._final = options.final;\n }\n Stream.call(this);\n }\n Writable.prototype.pipe = function() {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n };\n function writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n }\n function validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== "string" && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer"], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n }\n Writable.prototype.write = function(chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer13.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (isBuf)\n encoding = "buffer";\n else if (!encoding)\n encoding = state.defaultEncoding;\n if (typeof cb !== "function")\n cb = nop;\n if (state.ending)\n writeAfterEnd(this, cb);\n else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n };\n Writable.prototype.cork = function() {\n this._writableState.corked++;\n };\n Writable.prototype.uncork = function() {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest)\n clearBuffer(this, state);\n }\n };\n Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n if (typeof encoding === "string")\n encoding = encoding.toLowerCase();\n if (!(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((encoding + "").toLowerCase()) > -1))\n throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n function decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === "string") {\n chunk = Buffer13.from(chunk, encoding);\n }\n return chunk;\n }\n Object.defineProperty(Writable.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = "buffer";\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n if (!ret)\n state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk,\n encoding,\n isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n }\n function doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed)\n state.onwrite(new ERR_STREAM_DESTROYED("write"));\n else if (writev)\n stream._writev(chunk, state.onwrite);\n else\n stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n }\n function onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n process.nextTick(cb, er);\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n finishMaybe(stream, state);\n }\n }\n function onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n }\n function onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== "function")\n throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er)\n onwriteError(stream, state, sync, er, cb);\n else {\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n }\n function afterWrite(stream, state, finished, cb) {\n if (!finished)\n onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n }\n function onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit("drain");\n }\n }\n function clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf)\n allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, "", holder.finish);\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n if (state.writing) {\n break;\n }\n }\n if (entry === null)\n state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n }\n Writable.prototype._write = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_write()"));\n };\n Writable.prototype._writev = null;\n Writable.prototype.end = function(chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === "function") {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== void 0)\n this.write(chunk, encoding);\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n if (!state.ending)\n endWritable(this, state, cb);\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n }\n function callFinal(stream, state) {\n stream._final(function(err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit("prefinish");\n finishMaybe(stream, state);\n });\n }\n function prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === "function" && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit("prefinish");\n }\n }\n }\n function finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit("finish");\n if (state.autoDestroy) {\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n }\n function endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished)\n process.nextTick(cb);\n else\n stream.once("finish", cb);\n }\n state.ended = true;\n stream.writable = false;\n }\n function onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n state.corkedRequestsFree.next = corkReq;\n }\n Object.defineProperty(Writable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._writableState === void 0) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n if (!this._writableState) {\n return;\n }\n this._writableState.destroyed = value;\n }\n });\n Writable.prototype.destroy = destroyImpl.destroy;\n Writable.prototype._undestroy = destroyImpl.undestroy;\n Writable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_duplex.js\nvar require_stream_duplex = __commonJS({\n "node_modules/readable-stream/lib/_stream_duplex.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var objectKeys = Object.keys || function(obj) {\n var keys2 = [];\n for (var key2 in obj) {\n keys2.push(key2);\n }\n return keys2;\n };\n module.exports = Duplex;\n var Readable = require_stream_readable();\n var Writable = require_stream_writable();\n require_inherits_browser()(Duplex, Readable);\n {\n keys = objectKeys(Writable.prototype);\n for (v = 0; v < keys.length; v++) {\n method = keys[v];\n if (!Duplex.prototype[method])\n Duplex.prototype[method] = Writable.prototype[method];\n }\n }\n var keys;\n var method;\n var v;\n function Duplex(options) {\n if (!(this instanceof Duplex))\n return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false)\n this.readable = false;\n if (options.writable === false)\n this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once("end", onend);\n }\n }\n }\n Object.defineProperty(Duplex.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n Object.defineProperty(Duplex.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n Object.defineProperty(Duplex.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function onend() {\n if (this._writableState.ended)\n return;\n process.nextTick(onEndNT, this);\n }\n function onEndNT(self2) {\n self2.end();\n }\n Object.defineProperty(Duplex.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return;\n }\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n });\n }\n});\n\n// node_modules/safe-buffer/index.js\nvar require_safe_buffer = __commonJS({\n "node_modules/safe-buffer/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var buffer = require_buffer();\n var Buffer13 = buffer.Buffer;\n function copyProps(src, dst) {\n for (var key2 in src) {\n dst[key2] = src[key2];\n }\n }\n if (Buffer13.from && Buffer13.alloc && Buffer13.allocUnsafe && Buffer13.allocUnsafeSlow) {\n module.exports = buffer;\n } else {\n copyProps(buffer, exports);\n exports.Buffer = SafeBuffer;\n }\n function SafeBuffer(arg, encodingOrOffset, length) {\n return Buffer13(arg, encodingOrOffset, length);\n }\n SafeBuffer.prototype = Object.create(Buffer13.prototype);\n copyProps(Buffer13, SafeBuffer);\n SafeBuffer.from = function(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n throw new TypeError("Argument must not be a number");\n }\n return Buffer13(arg, encodingOrOffset, length);\n };\n SafeBuffer.alloc = function(size, fill, encoding) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n var buf2 = Buffer13(size);\n if (fill !== void 0) {\n if (typeof encoding === "string") {\n buf2.fill(fill, encoding);\n } else {\n buf2.fill(fill);\n }\n } else {\n buf2.fill(0);\n }\n return buf2;\n };\n SafeBuffer.allocUnsafe = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return Buffer13(size);\n };\n SafeBuffer.allocUnsafeSlow = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return buffer.SlowBuffer(size);\n };\n }\n});\n\n// node_modules/string_decoder/lib/string_decoder.js\nvar require_string_decoder = __commonJS({\n "node_modules/string_decoder/lib/string_decoder.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var Buffer13 = require_safe_buffer().Buffer;\n var isEncoding = Buffer13.isEncoding || function(encoding) {\n encoding = "" + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n case "raw":\n return true;\n default:\n return false;\n }\n };\n function _normalizeEncoding(enc) {\n if (!enc)\n return "utf8";\n var retried;\n while (true) {\n switch (enc) {\n case "utf8":\n case "utf-8":\n return "utf8";\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return "utf16le";\n case "latin1":\n case "binary":\n return "latin1";\n case "base64":\n case "ascii":\n case "hex":\n return enc;\n default:\n if (retried)\n return;\n enc = ("" + enc).toLowerCase();\n retried = true;\n }\n }\n }\n function normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== "string" && (Buffer13.isEncoding === isEncoding || !isEncoding(enc)))\n throw new Error("Unknown encoding: " + enc);\n return nenc || enc;\n }\n exports.StringDecoder = StringDecoder;\n function StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case "utf16le":\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case "utf8":\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case "base64":\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer13.allocUnsafe(nb);\n }\n StringDecoder.prototype.write = function(buf2) {\n if (buf2.length === 0)\n return "";\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf2);\n if (r === void 0)\n return "";\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf2.length)\n return r ? r + this.text(buf2, i) : this.text(buf2, i);\n return r || "";\n };\n StringDecoder.prototype.end = utf8End;\n StringDecoder.prototype.text = utf8Text;\n StringDecoder.prototype.fillLast = function(buf2) {\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf2.length);\n this.lastNeed -= buf2.length;\n };\n function utf8CheckByte(byte) {\n if (byte <= 127)\n return 0;\n else if (byte >> 5 === 6)\n return 2;\n else if (byte >> 4 === 14)\n return 3;\n else if (byte >> 3 === 30)\n return 4;\n return byte >> 6 === 2 ? -1 : -2;\n }\n function utf8CheckIncomplete(self2, buf2, i) {\n var j = buf2.length - 1;\n if (j < i)\n return 0;\n var nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2)\n nb = 0;\n else\n self2.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n }\n function utf8CheckExtraBytes(self2, buf2, p) {\n if ((buf2[0] & 192) !== 128) {\n self2.lastNeed = 0;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 1 && buf2.length > 1) {\n if ((buf2[1] & 192) !== 128) {\n self2.lastNeed = 1;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 2 && buf2.length > 2) {\n if ((buf2[2] & 192) !== 128) {\n self2.lastNeed = 2;\n return "\\uFFFD";\n }\n }\n }\n }\n function utf8FillLast(buf2) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf2, p);\n if (r !== void 0)\n return r;\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, p, 0, buf2.length);\n this.lastNeed -= buf2.length;\n }\n function utf8Text(buf2, i) {\n var total = utf8CheckIncomplete(this, buf2, i);\n if (!this.lastNeed)\n return buf2.toString("utf8", i);\n this.lastTotal = total;\n var end = buf2.length - (total - this.lastNeed);\n buf2.copy(this.lastChar, 0, end);\n return buf2.toString("utf8", i, end);\n }\n function utf8End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + "\\uFFFD";\n return r;\n }\n function utf16Text(buf2, i) {\n if ((buf2.length - i) % 2 === 0) {\n var r = buf2.toString("utf16le", i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 55296 && c <= 56319) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf2[buf2.length - 1];\n return buf2.toString("utf16le", i, buf2.length - 1);\n }\n function utf16End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString("utf16le", 0, end);\n }\n return r;\n }\n function base64Text(buf2, i) {\n var n = (buf2.length - i) % 3;\n if (n === 0)\n return buf2.toString("base64", i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf2[buf2.length - 1];\n } else {\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n }\n return buf2.toString("base64", i, buf2.length - n);\n }\n function base64End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + this.lastChar.toString("base64", 0, 3 - this.lastNeed);\n return r;\n }\n function simpleWrite(buf2) {\n return buf2.toString(this.encoding);\n }\n function simpleEnd(buf2) {\n return buf2 && buf2.length ? this.write(buf2) : "";\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/end-of-stream.js\nvar require_end_of_stream = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_STREAM_PREMATURE_CLOSE = require_errors_browser().codes.ERR_STREAM_PREMATURE_CLOSE;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n }\n function noop2() {\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function eos(stream, opts, callback) {\n if (typeof opts === "function")\n return eos(stream, null, opts);\n if (!opts)\n opts = {};\n callback = once(callback || noop2);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable2 = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish2() {\n if (!stream.writable)\n onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish2() {\n writable2 = false;\n writableEnded = true;\n if (!readable)\n callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend2() {\n readable = false;\n readableEnded = true;\n if (!writable2)\n callback.call(stream);\n };\n var onerror = function onerror2(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose2() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable2 && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest2() {\n stream.req.on("finish", onfinish);\n };\n if (isRequest(stream)) {\n stream.on("complete", onfinish);\n stream.on("abort", onclose);\n if (stream.req)\n onrequest();\n else\n stream.on("request", onrequest);\n } else if (writable2 && !stream._writableState) {\n stream.on("end", onlegacyfinish);\n stream.on("close", onlegacyfinish);\n }\n stream.on("end", onend);\n stream.on("finish", onfinish);\n if (opts.error !== false)\n stream.on("error", onerror);\n stream.on("close", onclose);\n return function() {\n stream.removeListener("complete", onfinish);\n stream.removeListener("abort", onclose);\n stream.removeListener("request", onrequest);\n if (stream.req)\n stream.req.removeListener("finish", onfinish);\n stream.removeListener("end", onlegacyfinish);\n stream.removeListener("close", onlegacyfinish);\n stream.removeListener("finish", onfinish);\n stream.removeListener("end", onend);\n stream.removeListener("error", onerror);\n stream.removeListener("close", onclose);\n };\n }\n module.exports = eos;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/async_iterator.js\nvar require_async_iterator = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/async_iterator.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var _Object$setPrototypeO;\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n var finished = require_end_of_stream();\n var kLastResolve = Symbol("lastResolve");\n var kLastReject = Symbol("lastReject");\n var kError = Symbol("error");\n var kEnded = Symbol("ended");\n var kLastPromise = Symbol("lastPromise");\n var kHandlePromise = Symbol("handlePromise");\n var kStream = Symbol("stream");\n function createIterResult(value, done) {\n return {\n value,\n done\n };\n }\n function readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n }\n function onReadable(iter) {\n process.nextTick(readAndResolve, iter);\n }\n function wrapForNext(lastPromise, iter) {\n return function(resolve, reject) {\n lastPromise.then(function() {\n if (iter[kEnded]) {\n resolve(createIterResult(void 0, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n }\n var AsyncIteratorPrototype = Object.getPrototypeOf(function() {\n });\n var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(void 0, true));\n }\n if (this[kStream].destroyed) {\n return new Promise(function(resolve, reject) {\n process.nextTick(function() {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(void 0, true));\n }\n });\n });\n }\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n }, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function() {\n return this;\n }), _defineProperty(_Object$setPrototypeO, "return", function _return() {\n var _this2 = this;\n return new Promise(function(resolve, reject) {\n _this2[kStream].destroy(null, function(err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(void 0, true));\n });\n });\n }), _Object$setPrototypeO), AsyncIteratorPrototype);\n var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator2(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function(err) {\n if (err && err.code !== "ERR_STREAM_PREMATURE_CLOSE") {\n var reject = iterator[kLastReject];\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(void 0, true));\n }\n iterator[kEnded] = true;\n });\n stream.on("readable", onReadable.bind(null, iterator));\n return iterator;\n };\n module.exports = createReadableStreamAsyncIterator;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/from-browser.js\nvar require_from_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/from-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = function() {\n throw new Error("Readable.from is not available in the browser");\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_readable.js\nvar require_stream_readable = __commonJS({\n "node_modules/readable-stream/lib/_stream_readable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Readable;\n var Duplex;\n Readable.ReadableState = ReadableState;\n var EE = require_events().EventEmitter;\n var EElistenerCount = function EElistenerCount2(emitter, type) {\n return emitter.listeners(type).length;\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var debugUtil = require_util();\n var debug;\n if (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog("stream");\n } else {\n debug = function debug2() {\n };\n }\n var BufferList = require_buffer_list();\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n var StringDecoder;\n var createReadableStreamAsyncIterator;\n var from;\n require_inherits_browser()(Readable, Stream);\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n var kProxyEvents = ["error", "close", "destroy", "pause", "resume"];\n function prependListener(emitter, event, fn) {\n if (typeof emitter.prependListener === "function")\n return emitter.prependListener(event, fn);\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n function ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.readableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "readableHighWaterMark", isDuplex);\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n this.sync = true;\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.destroyed = false;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.awaitDrain = 0;\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n }\n function Readable(options) {\n Duplex = Duplex || require_stream_duplex();\n if (!(this instanceof Readable))\n return new Readable(options);\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n this.readable = true;\n if (options) {\n if (typeof options.read === "function")\n this._read = options.read;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n }\n Stream.call(this);\n }\n Object.defineProperty(Readable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n if (!this._readableState) {\n return;\n }\n this._readableState.destroyed = value;\n }\n });\n Readable.prototype.destroy = destroyImpl.destroy;\n Readable.prototype._undestroy = destroyImpl.undestroy;\n Readable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n Readable.prototype.push = function(chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === "string") {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer13.from(chunk, encoding);\n encoding = "";\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n };\n Readable.prototype.unshift = function(chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n };\n function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug("readableAddChunk", chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck)\n er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== "string" && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer13.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted)\n errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());\n else\n addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0)\n addChunk(stream, state, chunk, false);\n else\n maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n }\n function addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit("data", chunk);\n } else {\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront)\n state.buffer.unshift(chunk);\n else\n state.buffer.push(chunk);\n if (state.needReadable)\n emitReadable(stream);\n }\n maybeReadMore(stream, state);\n }\n function chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== "string" && chunk !== void 0 && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer", "Uint8Array"], chunk);\n }\n return er;\n }\n Readable.prototype.isPaused = function() {\n return this._readableState.flowing === false;\n };\n Readable.prototype.setEncoding = function(enc) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n this._readableState.encoding = this._readableState.decoder.encoding;\n var p = this._readableState.buffer.head;\n var content = "";\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== "")\n this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n };\n var MAX_HWM = 1073741824;\n function computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n }\n function howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended)\n return 0;\n if (state.objectMode)\n return 1;\n if (n !== n) {\n if (state.flowing && state.length)\n return state.buffer.head.data.length;\n else\n return state.length;\n }\n if (n > state.highWaterMark)\n state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length)\n return n;\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n }\n Readable.prototype.read = function(n) {\n debug("read", n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0)\n state.emittedReadable = false;\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug("read: emitReadable", state.length, state.ended);\n if (state.length === 0 && state.ended)\n endReadable(this);\n else\n emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n if (n === 0 && state.ended) {\n if (state.length === 0)\n endReadable(this);\n return null;\n }\n var doRead = state.needReadable;\n debug("need readable", doRead);\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug("length less than watermark", doRead);\n }\n if (state.ended || state.reading) {\n doRead = false;\n debug("reading or ended", doRead);\n } else if (doRead) {\n debug("do read");\n state.reading = true;\n state.sync = true;\n if (state.length === 0)\n state.needReadable = true;\n this._read(state.highWaterMark);\n state.sync = false;\n if (!state.reading)\n n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0)\n ret = fromList(n, state);\n else\n ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n if (!state.ended)\n state.needReadable = true;\n if (nOrig !== n && state.ended)\n endReadable(this);\n }\n if (ret !== null)\n this.emit("data", ret);\n return ret;\n };\n function onEofChunk(stream, state) {\n debug("onEofChunk");\n if (state.ended)\n return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n emitReadable(stream);\n } else {\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n }\n function emitReadable(stream) {\n var state = stream._readableState;\n debug("emitReadable", state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug("emitReadable", state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n }\n function emitReadable_(stream) {\n var state = stream._readableState;\n debug("emitReadable_", state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit("readable");\n state.emittedReadable = false;\n }\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n }\n function maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n }\n function maybeReadMore_(stream, state) {\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug("maybeReadMore read 0");\n stream.read(0);\n if (len === state.length)\n break;\n }\n state.readingMore = false;\n }\n Readable.prototype._read = function(n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED("_read()"));\n };\n Readable.prototype.pipe = function(dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug("pipe count=%d opts=%j", state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted)\n process.nextTick(endFn);\n else\n src.once("end", endFn);\n dest.on("unpipe", onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug("onunpipe");\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug("onend");\n dest.end();\n }\n var ondrain = pipeOnDrain(src);\n dest.on("drain", ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug("cleanup");\n dest.removeListener("close", onclose);\n dest.removeListener("finish", onfinish);\n dest.removeListener("drain", ondrain);\n dest.removeListener("error", onerror);\n dest.removeListener("unpipe", onunpipe);\n src.removeListener("end", onend);\n src.removeListener("end", unpipe);\n src.removeListener("data", ondata);\n cleanedUp = true;\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain))\n ondrain();\n }\n src.on("data", ondata);\n function ondata(chunk) {\n debug("ondata");\n var ret = dest.write(chunk);\n debug("dest.write", ret);\n if (ret === false) {\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug("false write response, pause", state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n function onerror(er) {\n debug("onerror", er);\n unpipe();\n dest.removeListener("error", onerror);\n if (EElistenerCount(dest, "error") === 0)\n errorOrDestroy(dest, er);\n }\n prependListener(dest, "error", onerror);\n function onclose() {\n dest.removeListener("finish", onfinish);\n unpipe();\n }\n dest.once("close", onclose);\n function onfinish() {\n debug("onfinish");\n dest.removeListener("close", onclose);\n unpipe();\n }\n dest.once("finish", onfinish);\n function unpipe() {\n debug("unpipe");\n src.unpipe(dest);\n }\n dest.emit("pipe", src);\n if (!state.flowing) {\n debug("pipe resume");\n src.resume();\n }\n return dest;\n };\n function pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug("pipeOnDrain", state.awaitDrain);\n if (state.awaitDrain)\n state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, "data")) {\n state.flowing = true;\n flow(src);\n }\n };\n }\n Readable.prototype.unpipe = function(dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n if (state.pipesCount === 0)\n return this;\n if (state.pipesCount === 1) {\n if (dest && dest !== state.pipes)\n return this;\n if (!dest)\n dest = state.pipes;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest)\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n }\n if (!dest) {\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) {\n dests[i].emit("unpipe", this, {\n hasUnpiped: false\n });\n }\n return this;\n }\n var index = indexOf(state.pipes, dest);\n if (index === -1)\n return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1)\n state.pipes = state.pipes[0];\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n };\n Readable.prototype.on = function(ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === "data") {\n state.readableListening = this.listenerCount("readable") > 0;\n if (state.flowing !== false)\n this.resume();\n } else if (ev === "readable") {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug("on readable", state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n };\n Readable.prototype.addListener = Readable.prototype.on;\n Readable.prototype.removeListener = function(ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === "readable") {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n Readable.prototype.removeAllListeners = function(ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === "readable" || ev === void 0) {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n function updateReadableListening(self2) {\n var state = self2._readableState;\n state.readableListening = self2.listenerCount("readable") > 0;\n if (state.resumeScheduled && !state.paused) {\n state.flowing = true;\n } else if (self2.listenerCount("data") > 0) {\n self2.resume();\n }\n }\n function nReadingNextTick(self2) {\n debug("readable nexttick read 0");\n self2.read(0);\n }\n Readable.prototype.resume = function() {\n var state = this._readableState;\n if (!state.flowing) {\n debug("resume");\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n };\n function resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n }\n function resume_(stream, state) {\n debug("resume", state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit("resume");\n flow(stream);\n if (state.flowing && !state.reading)\n stream.read(0);\n }\n Readable.prototype.pause = function() {\n debug("call pause flowing=%j", this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug("pause");\n this._readableState.flowing = false;\n this.emit("pause");\n }\n this._readableState.paused = true;\n return this;\n };\n function flow(stream) {\n var state = stream._readableState;\n debug("flow", state.flowing);\n while (state.flowing && stream.read() !== null) {\n ;\n }\n }\n Readable.prototype.wrap = function(stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on("end", function() {\n debug("wrapped end");\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length)\n _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on("data", function(chunk) {\n debug("wrapped data");\n if (state.decoder)\n chunk = state.decoder.write(chunk);\n if (state.objectMode && (chunk === null || chunk === void 0))\n return;\n else if (!state.objectMode && (!chunk || !chunk.length))\n return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n for (var i in stream) {\n if (this[i] === void 0 && typeof stream[i] === "function") {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n this._read = function(n2) {\n debug("wrapped _read", n2);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n };\n if (typeof Symbol === "function") {\n Readable.prototype[Symbol.asyncIterator] = function() {\n if (createReadableStreamAsyncIterator === void 0) {\n createReadableStreamAsyncIterator = require_async_iterator();\n }\n return createReadableStreamAsyncIterator(this);\n };\n }\n Object.defineProperty(Readable.prototype, "readableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n });\n Object.defineProperty(Readable.prototype, "readableBuffer", {\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n });\n Object.defineProperty(Readable.prototype, "readableFlowing", {\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n });\n Readable._fromList = fromList;\n Object.defineProperty(Readable.prototype, "readableLength", {\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n });\n function fromList(n, state) {\n if (state.length === 0)\n return null;\n var ret;\n if (state.objectMode)\n ret = state.buffer.shift();\n else if (!n || n >= state.length) {\n if (state.decoder)\n ret = state.buffer.join("");\n else if (state.buffer.length === 1)\n ret = state.buffer.first();\n else\n ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n }\n function endReadable(stream) {\n var state = stream._readableState;\n debug("endReadable", state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n }\n function endReadableNT(state, stream) {\n debug("endReadableNT", state.endEmitted, state.length);\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit("end");\n if (state.autoDestroy) {\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n }\n if (typeof Symbol === "function") {\n Readable.from = function(iterable, opts) {\n if (from === void 0) {\n from = require_from_browser();\n }\n return from(Readable, iterable, opts);\n };\n }\n function indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x)\n return i;\n }\n return -1;\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_transform.js\nvar require_stream_transform = __commonJS({\n "node_modules/readable-stream/lib/_stream_transform.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Transform;\n var _require$codes = require_errors_browser().codes;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING;\n var ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n var Duplex = require_stream_duplex();\n require_inherits_browser()(Transform, Duplex);\n function afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit("error", new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n }\n function Transform(options) {\n if (!(this instanceof Transform))\n return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n this._readableState.needReadable = true;\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === "function")\n this._transform = options.transform;\n if (typeof options.flush === "function")\n this._flush = options.flush;\n }\n this.on("prefinish", prefinish);\n }\n function prefinish() {\n var _this = this;\n if (typeof this._flush === "function" && !this._readableState.destroyed) {\n this._flush(function(er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n }\n Transform.prototype.push = function(chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n };\n Transform.prototype._transform = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_transform()"));\n };\n Transform.prototype._write = function(chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark)\n this._read(rs.highWaterMark);\n }\n };\n Transform.prototype._read = function(n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n ts.needTransform = true;\n }\n };\n Transform.prototype._destroy = function(err, cb) {\n Duplex.prototype._destroy.call(this, err, function(err2) {\n cb(err2);\n });\n };\n function done(stream, er, data) {\n if (er)\n return stream.emit("error", er);\n if (data != null)\n stream.push(data);\n if (stream._writableState.length)\n throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming)\n throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_passthrough.js\nvar require_stream_passthrough = __commonJS({\n "node_modules/readable-stream/lib/_stream_passthrough.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = PassThrough;\n var Transform = require_stream_transform();\n require_inherits_browser()(PassThrough, Transform);\n function PassThrough(options) {\n if (!(this instanceof PassThrough))\n return new PassThrough(options);\n Transform.call(this, options);\n }\n PassThrough.prototype._transform = function(chunk, encoding, cb) {\n cb(null, chunk);\n };\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/pipeline.js\nvar require_pipeline = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/pipeline.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var eos;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n callback.apply(void 0, arguments);\n };\n }\n var _require$codes = require_errors_browser().codes;\n var ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n function noop2(err) {\n if (err)\n throw err;\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on("close", function() {\n closed = true;\n });\n if (eos === void 0)\n eos = require_end_of_stream();\n eos(stream, {\n readable: reading,\n writable: writing\n }, function(err) {\n if (err)\n return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function(err) {\n if (closed)\n return;\n if (destroyed)\n return;\n destroyed = true;\n if (isRequest(stream))\n return stream.abort();\n if (typeof stream.destroy === "function")\n return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED("pipe"));\n };\n }\n function call(fn) {\n fn();\n }\n function pipe(from, to) {\n return from.pipe(to);\n }\n function popCallback(streams) {\n if (!streams.length)\n return noop2;\n if (typeof streams[streams.length - 1] !== "function")\n return noop2;\n return streams.pop();\n }\n function pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0]))\n streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS("streams");\n }\n var error;\n var destroys = streams.map(function(stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function(err) {\n if (!error)\n error = err;\n if (err)\n destroys.forEach(call);\n if (reading)\n return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n }\n module.exports = pipeline;\n }\n});\n\n// node_modules/readable-stream/readable-browser.js\nvar require_readable_browser = __commonJS({\n "node_modules/readable-stream/readable-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports = module.exports = require_stream_readable();\n exports.Stream = exports;\n exports.Readable = exports;\n exports.Writable = require_stream_writable();\n exports.Duplex = require_stream_duplex();\n exports.Transform = require_stream_transform();\n exports.PassThrough = require_stream_passthrough();\n exports.finished = require_end_of_stream();\n exports.pipeline = require_pipeline();\n }\n});\n\n// node_modules/readable-web-to-node-stream/lib/index.js\nvar require_lib = __commonJS({\n "node_modules/readable-web-to-node-stream/lib/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n Object.defineProperty(exports, "__esModule", { value: true });\n exports.ReadableWebToNodeStream = void 0;\n var readable_stream_1 = require_readable_browser();\n var ReadableWebToNodeStream2 = class extends readable_stream_1.Readable {\n constructor(stream) {\n super();\n this.bytesRead = 0;\n this.released = false;\n this.reader = stream.getReader();\n }\n async _read() {\n if (this.released) {\n this.push(null);\n return;\n }\n this.pendingRead = this.reader.read();\n const data = await this.pendingRead;\n delete this.pendingRead;\n if (data.done || this.released) {\n this.push(null);\n } else {\n this.bytesRead += data.value.length;\n this.push(data.value);\n }\n }\n async waitForReadToComplete() {\n if (this.pendingRead) {\n await this.pendingRead;\n }\n }\n async close() {\n await this.syncAndRelease();\n }\n async syncAndRelease() {\n this.released = true;\n await this.waitForReadToComplete();\n await this.reader.releaseLock();\n }\n };\n exports.ReadableWebToNodeStream = ReadableWebToNodeStream2;\n }\n});\n\n// node_modules/base-x/src/index.js\nvar require_src = __commonJS({\n "node_modules/base-x/src/index.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function base(ALPHABET) {\n if (ALPHABET.length >= 255) {\n throw new TypeError("Alphabet too long");\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + " is ambiguous");\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode2(source) {\n if (source instanceof Uint8Array) {\n } else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError("Expected Uint8Array");\n }\n if (source.length === 0) {\n return "";\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i2 = 0;\n for (var it1 = size - 1; (carry !== 0 || i2 < length) && it1 !== -1; it1--, i2++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== "string") {\n throw new TypeError("Expected String");\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i2 = 0;\n for (var it3 = size - 1; (carry !== 0 || i2 < length) && it3 !== -1; it3--, i2++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n psz++;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j2 = zeroes;\n while (it4 !== size) {\n vch[j2++] = b256[it4++];\n }\n return vch;\n }\n function decode3(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error("Non-base" + BASE + " character");\n }\n return {\n encode: encode2,\n decodeUnsafe,\n decode: decode3\n };\n }\n module.exports = base;\n }\n});\n\n// node_modules/bs58/index.js\nvar require_bs58 = __commonJS({\n "node_modules/bs58/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var basex = require_src();\n var ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";\n module.exports = basex(ALPHABET);\n }\n});\n\n// node_modules/jpeg-js/lib/encoder.js\nvar require_encoder = __commonJS({\n "node_modules/jpeg-js/lib/encoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var btoa = btoa || function(buf2) {\n return Buffer2.from(buf2).toString("base64");\n };\n function JPEGEncoder(quality) {\n var self2 = this;\n var fround = Math.round;\n var ffloor = Math.floor;\n var YTable = new Array(64);\n var UVTable = new Array(64);\n var fdtbl_Y = new Array(64);\n var fdtbl_UV = new Array(64);\n var YDC_HT2;\n var UVDC_HT2;\n var YAC_HT2;\n var UVAC_HT2;\n var bitcode2 = new Array(65535);\n var category2 = new Array(65535);\n var outputfDCTQuant = new Array(64);\n var DU = new Array(64);\n var byteout = [];\n var bytenew = 0;\n var bytepos = 7;\n var YDU = new Array(64);\n var UDU = new Array(64);\n var VDU = new Array(64);\n var clt = new Array(256);\n var RGB_YUV_TABLE = new Array(2048);\n var currentQuality;\n var ZigZag = [\n 0,\n 1,\n 5,\n 6,\n 14,\n 15,\n 27,\n 28,\n 2,\n 4,\n 7,\n 13,\n 16,\n 26,\n 29,\n 42,\n 3,\n 8,\n 12,\n 17,\n 25,\n 30,\n 41,\n 43,\n 9,\n 11,\n 18,\n 24,\n 31,\n 40,\n 44,\n 53,\n 10,\n 19,\n 23,\n 32,\n 39,\n 45,\n 52,\n 54,\n 20,\n 22,\n 33,\n 38,\n 46,\n 51,\n 55,\n 60,\n 21,\n 34,\n 37,\n 47,\n 50,\n 56,\n 59,\n 61,\n 35,\n 36,\n 48,\n 49,\n 57,\n 58,\n 62,\n 63\n ];\n var std_dc_luminance_nrcodes2 = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\n var std_dc_luminance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_luminance_nrcodes2 = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\n var std_ac_luminance_values2 = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n var std_dc_chrominance_nrcodes2 = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\n var std_dc_chrominance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_chrominance_nrcodes2 = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\n var std_ac_chrominance_values2 = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n function initQuantTables(sf) {\n var YQT = [\n 16,\n 11,\n 10,\n 16,\n 24,\n 40,\n 51,\n 61,\n 12,\n 12,\n 14,\n 19,\n 26,\n 58,\n 60,\n 55,\n 14,\n 13,\n 16,\n 24,\n 40,\n 57,\n 69,\n 56,\n 14,\n 17,\n 22,\n 29,\n 51,\n 87,\n 80,\n 62,\n 18,\n 22,\n 37,\n 56,\n 68,\n 109,\n 103,\n 77,\n 24,\n 35,\n 55,\n 64,\n 81,\n 104,\n 113,\n 92,\n 49,\n 64,\n 78,\n 87,\n 103,\n 121,\n 120,\n 101,\n 72,\n 92,\n 95,\n 98,\n 112,\n 100,\n 103,\n 99\n ];\n for (var i = 0; i < 64; i++) {\n var t = ffloor((YQT[i] * sf + 50) / 100);\n if (t < 1) {\n t = 1;\n } else if (t > 255) {\n t = 255;\n }\n YTable[ZigZag[i]] = t;\n }\n var UVQT = [\n 17,\n 18,\n 24,\n 47,\n 99,\n 99,\n 99,\n 99,\n 18,\n 21,\n 26,\n 66,\n 99,\n 99,\n 99,\n 99,\n 24,\n 26,\n 56,\n 99,\n 99,\n 99,\n 99,\n 99,\n 47,\n 66,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99\n ];\n for (var j = 0; j < 64; j++) {\n var u = ffloor((UVQT[j] * sf + 50) / 100);\n if (u < 1) {\n u = 1;\n } else if (u > 255) {\n u = 255;\n }\n UVTable[ZigZag[j]] = u;\n }\n var aasf = [\n 1,\n 1.387039845,\n 1.306562965,\n 1.175875602,\n 1,\n 0.785694958,\n 0.5411961,\n 0.275899379\n ];\n var k = 0;\n for (var row = 0; row < 8; row++) {\n for (var col = 0; col < 8; col++) {\n fdtbl_Y[k] = 1 / (YTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n fdtbl_UV[k] = 1 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n k++;\n }\n }\n }\n function computeHuffmanTbl(nrcodes, std_table) {\n var codevalue = 0;\n var pos_in_table = 0;\n var HT = new Array();\n for (var k = 1; k <= 16; k++) {\n for (var j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n function initHuffmanTbl() {\n YDC_HT2 = computeHuffmanTbl(std_dc_luminance_nrcodes2, std_dc_luminance_values2);\n UVDC_HT2 = computeHuffmanTbl(std_dc_chrominance_nrcodes2, std_dc_chrominance_values2);\n YAC_HT2 = computeHuffmanTbl(std_ac_luminance_nrcodes2, std_ac_luminance_values2);\n UVAC_HT2 = computeHuffmanTbl(std_ac_chrominance_nrcodes2, std_ac_chrominance_values2);\n }\n function initCategoryNumber() {\n var nrlower = 1;\n var nrupper = 2;\n for (var cat = 1; cat <= 15; cat++) {\n for (var nr = nrlower; nr < nrupper; nr++) {\n category2[32767 + nr] = cat;\n bitcode2[32767 + nr] = [];\n bitcode2[32767 + nr][1] = cat;\n bitcode2[32767 + nr][0] = nr;\n }\n for (var nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category2[32767 + nrneg] = cat;\n bitcode2[32767 + nrneg] = [];\n bitcode2[32767 + nrneg][1] = cat;\n bitcode2[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n }\n function initRGBYUVTable() {\n for (var i = 0; i < 256; i++) {\n RGB_YUV_TABLE[i] = 19595 * i;\n RGB_YUV_TABLE[i + 256 >> 0] = 38470 * i;\n RGB_YUV_TABLE[i + 512 >> 0] = 7471 * i + 32768;\n RGB_YUV_TABLE[i + 768 >> 0] = -11059 * i;\n RGB_YUV_TABLE[i + 1024 >> 0] = -21709 * i;\n RGB_YUV_TABLE[i + 1280 >> 0] = 32768 * i + 8421375;\n RGB_YUV_TABLE[i + 1536 >> 0] = -27439 * i;\n RGB_YUV_TABLE[i + 1792 >> 0] = -5329 * i;\n }\n }\n function writeBits(bs) {\n var value = bs[0];\n var posval = bs[1] - 1;\n while (posval >= 0) {\n if (value & 1 << posval) {\n bytenew |= 1 << bytepos;\n }\n posval--;\n bytepos--;\n if (bytepos < 0) {\n if (bytenew == 255) {\n writeByte(255);\n writeByte(0);\n } else {\n writeByte(bytenew);\n }\n bytepos = 7;\n bytenew = 0;\n }\n }\n }\n function writeByte(value) {\n byteout.push(value);\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function fDCTQuant(data, fdtbl) {\n var d0, d1, d2, d3, d4, d5, d6, d7;\n var dataOff = 0;\n var i;\n var I8 = 8;\n var I64 = 64;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 1];\n d2 = data[dataOff + 2];\n d3 = data[dataOff + 3];\n d4 = data[dataOff + 4];\n d5 = data[dataOff + 5];\n d6 = data[dataOff + 6];\n d7 = data[dataOff + 7];\n var tmp0 = d0 + d7;\n var tmp7 = d0 - d7;\n var tmp1 = d1 + d6;\n var tmp6 = d1 - d6;\n var tmp2 = d2 + d5;\n var tmp5 = d2 - d5;\n var tmp3 = d3 + d4;\n var tmp4 = d3 - d4;\n var tmp10 = tmp0 + tmp3;\n var tmp13 = tmp0 - tmp3;\n var tmp11 = tmp1 + tmp2;\n var tmp12 = tmp1 - tmp2;\n data[dataOff] = tmp10 + tmp11;\n data[dataOff + 4] = tmp10 - tmp11;\n var z1 = (tmp12 + tmp13) * 0.707106781;\n data[dataOff + 2] = tmp13 + z1;\n data[dataOff + 6] = tmp13 - z1;\n tmp10 = tmp4 + tmp5;\n tmp11 = tmp5 + tmp6;\n tmp12 = tmp6 + tmp7;\n var z5 = (tmp10 - tmp12) * 0.382683433;\n var z2 = 0.5411961 * tmp10 + z5;\n var z4 = 1.306562965 * tmp12 + z5;\n var z3 = tmp11 * 0.707106781;\n var z11 = tmp7 + z3;\n var z13 = tmp7 - z3;\n data[dataOff + 5] = z13 + z2;\n data[dataOff + 3] = z13 - z2;\n data[dataOff + 1] = z11 + z4;\n data[dataOff + 7] = z11 - z4;\n dataOff += 8;\n }\n dataOff = 0;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 8];\n d2 = data[dataOff + 16];\n d3 = data[dataOff + 24];\n d4 = data[dataOff + 32];\n d5 = data[dataOff + 40];\n d6 = data[dataOff + 48];\n d7 = data[dataOff + 56];\n var tmp0p2 = d0 + d7;\n var tmp7p2 = d0 - d7;\n var tmp1p2 = d1 + d6;\n var tmp6p2 = d1 - d6;\n var tmp2p2 = d2 + d5;\n var tmp5p2 = d2 - d5;\n var tmp3p2 = d3 + d4;\n var tmp4p2 = d3 - d4;\n var tmp10p2 = tmp0p2 + tmp3p2;\n var tmp13p2 = tmp0p2 - tmp3p2;\n var tmp11p2 = tmp1p2 + tmp2p2;\n var tmp12p2 = tmp1p2 - tmp2p2;\n data[dataOff] = tmp10p2 + tmp11p2;\n data[dataOff + 32] = tmp10p2 - tmp11p2;\n var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781;\n data[dataOff + 16] = tmp13p2 + z1p2;\n data[dataOff + 48] = tmp13p2 - z1p2;\n tmp10p2 = tmp4p2 + tmp5p2;\n tmp11p2 = tmp5p2 + tmp6p2;\n tmp12p2 = tmp6p2 + tmp7p2;\n var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433;\n var z2p2 = 0.5411961 * tmp10p2 + z5p2;\n var z4p2 = 1.306562965 * tmp12p2 + z5p2;\n var z3p2 = tmp11p2 * 0.707106781;\n var z11p2 = tmp7p2 + z3p2;\n var z13p2 = tmp7p2 - z3p2;\n data[dataOff + 40] = z13p2 + z2p2;\n data[dataOff + 24] = z13p2 - z2p2;\n data[dataOff + 8] = z11p2 + z4p2;\n data[dataOff + 56] = z11p2 - z4p2;\n dataOff++;\n }\n var fDCTQuant2;\n for (i = 0; i < I64; ++i) {\n fDCTQuant2 = data[i] * fdtbl[i];\n outputfDCTQuant[i] = fDCTQuant2 > 0 ? fDCTQuant2 + 0.5 | 0 : fDCTQuant2 - 0.5 | 0;\n }\n return outputfDCTQuant;\n }\n function writeAPP0() {\n writeWord(65504);\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n }\n function writeAPP1(exifBuffer) {\n if (!exifBuffer)\n return;\n writeWord(65505);\n if (exifBuffer[0] === 69 && exifBuffer[1] === 120 && exifBuffer[2] === 105 && exifBuffer[3] === 102) {\n writeWord(exifBuffer.length + 2);\n } else {\n writeWord(exifBuffer.length + 5 + 2);\n writeByte(69);\n writeByte(120);\n writeByte(105);\n writeByte(102);\n writeByte(0);\n }\n for (var i = 0; i < exifBuffer.length; i++) {\n writeByte(exifBuffer[i]);\n }\n }\n function writeSOF0(width, height) {\n writeWord(65472);\n writeWord(17);\n writeByte(8);\n writeWord(height);\n writeWord(width);\n writeByte(3);\n writeByte(1);\n writeByte(17);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(1);\n writeByte(3);\n writeByte(17);\n writeByte(1);\n }\n function writeDQT() {\n writeWord(65499);\n writeWord(132);\n writeByte(0);\n for (var i = 0; i < 64; i++) {\n writeByte(YTable[i]);\n }\n writeByte(1);\n for (var j = 0; j < 64; j++) {\n writeByte(UVTable[j]);\n }\n }\n function writeDHT() {\n writeWord(65476);\n writeWord(418);\n writeByte(0);\n for (var i = 0; i < 16; i++) {\n writeByte(std_dc_luminance_nrcodes2[i + 1]);\n }\n for (var j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values2[j]);\n }\n writeByte(16);\n for (var k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes2[k + 1]);\n }\n for (var l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values2[l]);\n }\n writeByte(1);\n for (var m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes2[m + 1]);\n }\n for (var n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values2[n]);\n }\n writeByte(17);\n for (var o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes2[o + 1]);\n }\n for (var p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values2[p]);\n }\n }\n function writeCOM(comments) {\n if (typeof comments === "undefined" || comments.constructor !== Array)\n return;\n comments.forEach((e) => {\n if (typeof e !== "string")\n return;\n writeWord(65534);\n var l = e.length;\n writeWord(l + 2);\n var i;\n for (i = 0; i < l; i++)\n writeByte(e.charCodeAt(i));\n });\n }\n function writeSOS() {\n writeWord(65498);\n writeWord(12);\n writeByte(3);\n writeByte(1);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(3);\n writeByte(17);\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(CDU, fdtbl, DC, HTDC, HTAC) {\n var EOB = HTAC[0];\n var M16zeroes = HTAC[240];\n var pos;\n var I16 = 16;\n var I63 = 63;\n var I64 = 64;\n var DU_DCT = fDCTQuant(CDU, fdtbl);\n for (var j = 0; j < I64; ++j) {\n DU[ZigZag[j]] = DU_DCT[j];\n }\n var Diff = DU[0] - DC;\n DC = DU[0];\n if (Diff == 0) {\n writeBits(HTDC[0]);\n } else {\n pos = 32767 + Diff;\n writeBits(HTDC[category2[pos]]);\n writeBits(bitcode2[pos]);\n }\n var end0pos = 63;\n for (; end0pos > 0 && DU[end0pos] == 0; end0pos--) {\n }\n ;\n if (end0pos == 0) {\n writeBits(EOB);\n return DC;\n }\n var i = 1;\n var lng;\n while (i <= end0pos) {\n var startpos = i;\n for (; DU[i] == 0 && i <= end0pos; ++i) {\n }\n var nrzeroes = i - startpos;\n if (nrzeroes >= I16) {\n lng = nrzeroes >> 4;\n for (var nrmarker = 1; nrmarker <= lng; ++nrmarker)\n writeBits(M16zeroes);\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + DU[i];\n writeBits(HTAC[(nrzeroes << 4) + category2[pos]]);\n writeBits(bitcode2[pos]);\n i++;\n }\n if (end0pos != I63) {\n writeBits(EOB);\n }\n return DC;\n }\n function initCharLookupTable() {\n var sfcc = String.fromCharCode;\n for (var i = 0; i < 256; i++) {\n clt[i] = sfcc(i);\n }\n }\n this.encode = function(image, quality2) {\n var time_start = new Date().getTime();\n if (quality2)\n setQuality(quality2);\n byteout = new Array();\n bytenew = 0;\n bytepos = 7;\n writeWord(65496);\n writeAPP0();\n writeCOM(image.comments);\n writeAPP1(image.exifBuffer);\n writeDQT();\n writeSOF0(image.width, image.height);\n writeDHT();\n writeSOS();\n var DCY = 0;\n var DCU = 0;\n var DCV = 0;\n bytenew = 0;\n bytepos = 7;\n this.encode.displayName = "_encode_";\n var imageData = image.data;\n var width = image.width;\n var height = image.height;\n var quadWidth = width * 4;\n var tripleWidth = width * 3;\n var x, y = 0;\n var r, g, b;\n var start, p, col, row, pos;\n while (y < height) {\n x = 0;\n while (x < quadWidth) {\n start = quadWidth * y + x;\n p = start;\n col = -1;\n row = 0;\n for (pos = 0; pos < 64; pos++) {\n row = pos >> 3;\n col = (pos & 7) * 4;\n p = start + row * quadWidth + col;\n if (y + row >= height) {\n p -= quadWidth * (y + 1 + row - height);\n }\n if (x + col >= quadWidth) {\n p -= x + col - quadWidth + 4;\n }\n r = imageData[p++];\n g = imageData[p++];\n b = imageData[p++];\n YDU[pos] = (RGB_YUV_TABLE[r] + RGB_YUV_TABLE[g + 256 >> 0] + RGB_YUV_TABLE[b + 512 >> 0] >> 16) - 128;\n UDU[pos] = (RGB_YUV_TABLE[r + 768 >> 0] + RGB_YUV_TABLE[g + 1024 >> 0] + RGB_YUV_TABLE[b + 1280 >> 0] >> 16) - 128;\n VDU[pos] = (RGB_YUV_TABLE[r + 1280 >> 0] + RGB_YUV_TABLE[g + 1536 >> 0] + RGB_YUV_TABLE[b + 1792 >> 0] >> 16) - 128;\n }\n DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT2, YAC_HT2);\n DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT2, UVAC_HT2);\n DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT2, UVAC_HT2);\n x += 32;\n }\n y += 8;\n }\n if (bytepos >= 0) {\n var fillbits = [];\n fillbits[1] = bytepos + 1;\n fillbits[0] = (1 << bytepos + 1) - 1;\n writeBits(fillbits);\n }\n writeWord(65497);\n if (typeof module === "undefined")\n return new Uint8Array(byteout);\n return Buffer2.from(byteout);\n var jpegDataUri = "data:image/jpeg;base64," + btoa(byteout.join(""));\n byteout = [];\n var duration = new Date().getTime() - time_start;\n return jpegDataUri;\n };\n function setQuality(quality2) {\n if (quality2 <= 0) {\n quality2 = 1;\n }\n if (quality2 > 100) {\n quality2 = 100;\n }\n if (currentQuality == quality2)\n return;\n var sf = 0;\n if (quality2 < 50) {\n sf = Math.floor(5e3 / quality2);\n } else {\n sf = Math.floor(200 - quality2 * 2);\n }\n initQuantTables(sf);\n currentQuality = quality2;\n }\n function init3() {\n var time_start = new Date().getTime();\n if (!quality)\n quality = 50;\n initCharLookupTable();\n initHuffmanTbl();\n initCategoryNumber();\n initRGBYUVTable();\n setQuality(quality);\n var duration = new Date().getTime() - time_start;\n }\n init3();\n }\n if (typeof module !== "undefined") {\n module.exports = encode2;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].encode = encode2;\n }\n function encode2(imgData, qu) {\n if (typeof qu === "undefined")\n qu = 50;\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(imgData, qu);\n return {\n data,\n width: imgData.width,\n height: imgData.height\n };\n }\n }\n});\n\n// node_modules/jpeg-js/lib/decoder.js\nvar require_decoder = __commonJS({\n "node_modules/jpeg-js/lib/decoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var JpegImage = function jpegImage() {\n "use strict";\n var dctZigZag = new Int32Array([\n 0,\n 1,\n 8,\n 16,\n 9,\n 2,\n 3,\n 10,\n 17,\n 24,\n 32,\n 25,\n 18,\n 11,\n 4,\n 5,\n 12,\n 19,\n 26,\n 33,\n 40,\n 48,\n 41,\n 34,\n 27,\n 20,\n 13,\n 6,\n 7,\n 14,\n 21,\n 28,\n 35,\n 42,\n 49,\n 56,\n 57,\n 50,\n 43,\n 36,\n 29,\n 22,\n 15,\n 23,\n 30,\n 37,\n 44,\n 51,\n 58,\n 59,\n 52,\n 45,\n 38,\n 31,\n 39,\n 46,\n 53,\n 60,\n 61,\n 54,\n 47,\n 55,\n 62,\n 63\n ]);\n var dctCos1 = 4017;\n var dctSin1 = 799;\n var dctCos3 = 3406;\n var dctSin3 = 2276;\n var dctCos6 = 1567;\n var dctSin6 = 3784;\n var dctSqrt2 = 5793;\n var dctSqrt1d2 = 2896;\n function constructor() {\n }\n function buildHuffmanTable2(codeLengths, values) {\n var k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n var p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n }\n function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive, opts) {\n var precision = frame.precision;\n var samplesPerLine = frame.samplesPerLine;\n var scanLines = frame.scanLines;\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\n var maxH = frame.maxH, maxV = frame.maxV;\n var startOffset = offset, bitsData = 0, bitsCount = 0;\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return bitsData >> bitsCount & 1;\n }\n bitsData = data[offset++];\n if (bitsData == 255) {\n var nextByte = data[offset++];\n if (nextByte) {\n throw new Error("unexpected marker: " + (bitsData << 8 | nextByte).toString(16));\n }\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n function decodeHuffman(tree) {\n var node = tree, bit;\n while ((bit = readBit()) !== null) {\n node = node[bit];\n if (typeof node === "number")\n return node;\n if (typeof node !== "object")\n throw new Error("invalid huffman sequence");\n }\n return null;\n }\n function receive(length) {\n var n2 = 0;\n while (length > 0) {\n var bit = readBit();\n if (bit === null)\n return;\n n2 = n2 << 1 | bit;\n length--;\n }\n return n2;\n }\n function receiveAndExtend(length) {\n var n2 = receive(length);\n if (n2 >= 1 << length - 1)\n return n2;\n return n2 + (-1 << length) + 1;\n }\n function decodeBaseline(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t);\n zz[0] = component2.pred += diff;\n var k2 = 1;\n while (k2 < 64) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15)\n break;\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s);\n k2++;\n }\n }\n function decodeDCFirst(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n zz[0] = component2.pred += diff;\n }\n function decodeDCSuccessive(component2, zz) {\n zz[0] |= readBit() << successive;\n }\n var eobrun = 0;\n function decodeACFirst(component2, zz) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n var k2 = spectralStart, e = spectralEnd;\n while (k2 <= e) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s) * (1 << successive);\n k2++;\n }\n }\n var successiveACState = 0, successiveACNextValue;\n function decodeACSuccessive(component2, zz) {\n var k2 = spectralStart, e = spectralEnd, r = 0;\n while (k2 <= e) {\n var z = dctZigZag[k2];\n var direction = zz[z] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0:\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1)\n throw new Error("invalid ACn encoding");\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1:\n case 2:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n r--;\n if (r === 0)\n successiveACState = successiveACState == 2 ? 3 : 0;\n }\n break;\n case 3:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n zz[z] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n break;\n }\n k2++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0)\n successiveACState = 0;\n }\n }\n function decodeMcu(component2, decode4, mcu2, row, col) {\n var mcuRow = mcu2 / mcusPerLine | 0;\n var mcuCol = mcu2 % mcusPerLine;\n var blockRow = mcuRow * component2.v + row;\n var blockCol = mcuCol * component2.h + col;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n function decodeBlock(component2, decode4, mcu2) {\n var blockRow = mcu2 / component2.blocksPerLine | 0;\n var blockCol = mcu2 % component2.blocksPerLine;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n var componentsLength = components.length;\n var component, i, j, k, n;\n var decodeFn;\n if (progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n var mcu = 0, marker;\n var mcuExpected;\n if (componentsLength == 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n if (!resetInterval)\n resetInterval = mcuExpected;\n var h, v;\n while (mcu < mcuExpected) {\n for (i = 0; i < componentsLength; i++)\n components[i].pred = 0;\n eobrun = 0;\n if (componentsLength == 1) {\n component = components[0];\n for (n = 0; n < resetInterval; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < resetInterval; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n if (mcu === mcuExpected)\n break;\n }\n }\n if (mcu === mcuExpected) {\n do {\n if (data[offset] === 255) {\n if (data[offset + 1] !== 0) {\n break;\n }\n }\n offset += 1;\n } while (offset < data.length - 2);\n }\n bitsCount = 0;\n marker = data[offset] << 8 | data[offset + 1];\n if (marker < 65280) {\n throw new Error("marker was not found");\n }\n if (marker >= 65488 && marker <= 65495) {\n offset += 2;\n } else\n break;\n }\n return offset - startOffset;\n }\n function buildComponentData(frame, component) {\n var lines = [];\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var samplesPerLine = blocksPerLine << 3;\n var R = new Int32Array(64), r = new Uint8Array(64);\n function quantizeAndInverse(zz, dataOut, dataIn) {\n var qt = component.quantizationTable;\n var v0, v1, v2, v3, v4, v5, v6, v7, t;\n var p = dataIn;\n var i2;\n for (i2 = 0; i2 < 64; i2++)\n p[i2] = zz[i2] * qt[i2];\n for (i2 = 0; i2 < 8; ++i2) {\n var row = 8 * i2;\n if (p[1 + row] == 0 && p[2 + row] == 0 && p[3 + row] == 0 && p[4 + row] == 0 && p[5 + row] == 0 && p[6 + row] == 0 && p[7 + row] == 0) {\n t = dctSqrt2 * p[0 + row] + 512 >> 10;\n p[0 + row] = t;\n p[1 + row] = t;\n p[2 + row] = t;\n p[3 + row] = t;\n p[4 + row] = t;\n p[5 + row] = t;\n p[6 + row] = t;\n p[7 + row] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 + row] + 128 >> 8;\n v1 = dctSqrt2 * p[4 + row] + 128 >> 8;\n v2 = p[2 + row];\n v3 = p[6 + row];\n v4 = dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128 >> 8;\n v7 = dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128 >> 8;\n v5 = p[3 + row] << 4;\n v6 = p[5 + row] << 4;\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 + row] = v0 + v7;\n p[7 + row] = v0 - v7;\n p[1 + row] = v1 + v6;\n p[6 + row] = v1 - v6;\n p[2 + row] = v2 + v5;\n p[5 + row] = v2 - v5;\n p[3 + row] = v3 + v4;\n p[4 + row] = v3 - v4;\n }\n for (i2 = 0; i2 < 8; ++i2) {\n var col = i2;\n if (p[1 * 8 + col] == 0 && p[2 * 8 + col] == 0 && p[3 * 8 + col] == 0 && p[4 * 8 + col] == 0 && p[5 * 8 + col] == 0 && p[6 * 8 + col] == 0 && p[7 * 8 + col] == 0) {\n t = dctSqrt2 * dataIn[i2 + 0] + 8192 >> 14;\n p[0 * 8 + col] = t;\n p[1 * 8 + col] = t;\n p[2 * 8 + col] = t;\n p[3 * 8 + col] = t;\n p[4 * 8 + col] = t;\n p[5 * 8 + col] = t;\n p[6 * 8 + col] = t;\n p[7 * 8 + col] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 * 8 + col] + 2048 >> 12;\n v1 = dctSqrt2 * p[4 * 8 + col] + 2048 >> 12;\n v2 = p[2 * 8 + col];\n v3 = p[6 * 8 + col];\n v4 = dctSqrt1d2 * (p[1 * 8 + col] - p[7 * 8 + col]) + 2048 >> 12;\n v7 = dctSqrt1d2 * (p[1 * 8 + col] + p[7 * 8 + col]) + 2048 >> 12;\n v5 = p[3 * 8 + col];\n v6 = p[5 * 8 + col];\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 * 8 + col] = v0 + v7;\n p[7 * 8 + col] = v0 - v7;\n p[1 * 8 + col] = v1 + v6;\n p[6 * 8 + col] = v1 - v6;\n p[2 * 8 + col] = v2 + v5;\n p[5 * 8 + col] = v2 - v5;\n p[3 * 8 + col] = v3 + v4;\n p[4 * 8 + col] = v3 - v4;\n }\n for (i2 = 0; i2 < 64; ++i2) {\n var sample2 = 128 + (p[i2] + 8 >> 4);\n dataOut[i2] = sample2 < 0 ? 0 : sample2 > 255 ? 255 : sample2;\n }\n }\n requestMemoryAllocation(samplesPerLine * blocksPerColumn * 8);\n var i, j;\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n var scanLine = blockRow << 3;\n for (i = 0; i < 8; i++)\n lines.push(new Uint8Array(samplesPerLine));\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n quantizeAndInverse(component.blocks[blockRow][blockCol], r, R);\n var offset = 0, sample = blockCol << 3;\n for (j = 0; j < 8; j++) {\n var line = lines[scanLine + j];\n for (i = 0; i < 8; i++)\n line[sample + i] = r[offset++];\n }\n }\n }\n return lines;\n }\n function clampTo8bit(a) {\n return a < 0 ? 0 : a > 255 ? 255 : a;\n }\n constructor.prototype = {\n load: function load(path) {\n var xhr = new XMLHttpRequest();\n xhr.open("GET", path, true);\n xhr.responseType = "arraybuffer";\n xhr.onload = function() {\n var data = new Uint8Array(xhr.response || xhr.mozResponseArrayBuffer);\n this.parse(data);\n if (this.onload)\n this.onload();\n }.bind(this);\n xhr.send(null);\n },\n parse: function parse(data) {\n var maxResolutionInPixels = this.opts.maxResolutionInMP * 1e3 * 1e3;\n var offset = 0, length = data.length;\n function readUint16() {\n var value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n var length2 = readUint16();\n var array = data.subarray(offset, offset + length2 - 2);\n offset += array.length;\n return array;\n }\n function prepareComponents(frame2) {\n var maxH2 = 1, maxV2 = 1;\n var component2, componentId2;\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n if (maxH2 < component2.h)\n maxH2 = component2.h;\n if (maxV2 < component2.v)\n maxV2 = component2.v;\n }\n }\n var mcusPerLine = Math.ceil(frame2.samplesPerLine / 8 / maxH2);\n var mcusPerColumn = Math.ceil(frame2.scanLines / 8 / maxV2);\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n var blocksPerLine = Math.ceil(Math.ceil(frame2.samplesPerLine / 8) * component2.h / maxH2);\n var blocksPerColumn = Math.ceil(Math.ceil(frame2.scanLines / 8) * component2.v / maxV2);\n var blocksPerLineForMcu = mcusPerLine * component2.h;\n var blocksPerColumnForMcu = mcusPerColumn * component2.v;\n var blocksToAllocate = blocksPerColumnForMcu * blocksPerLineForMcu;\n var blocks = [];\n requestMemoryAllocation(blocksToAllocate * 256);\n for (var i2 = 0; i2 < blocksPerColumnForMcu; i2++) {\n var row = [];\n for (var j2 = 0; j2 < blocksPerLineForMcu; j2++)\n row.push(new Int32Array(64));\n blocks.push(row);\n }\n component2.blocksPerLine = blocksPerLine;\n component2.blocksPerColumn = blocksPerColumn;\n component2.blocks = blocks;\n }\n }\n frame2.maxH = maxH2;\n frame2.maxV = maxV2;\n frame2.mcusPerLine = mcusPerLine;\n frame2.mcusPerColumn = mcusPerColumn;\n }\n var jfif = null;\n var adobe = null;\n var pixels = null;\n var frame, resetInterval;\n var quantizationTables = [], frames = [];\n var huffmanTablesAC = [], huffmanTablesDC = [];\n var fileMarker = readUint16();\n var malformedDataOffset = -1;\n this.comments = [];\n if (fileMarker != 65496) {\n throw new Error("SOI not found");\n }\n fileMarker = readUint16();\n while (fileMarker != 65497) {\n var i, j, l;\n switch (fileMarker) {\n case 65280:\n break;\n case 65504:\n case 65505:\n case 65506:\n case 65507:\n case 65508:\n case 65509:\n case 65510:\n case 65511:\n case 65512:\n case 65513:\n case 65514:\n case 65515:\n case 65516:\n case 65517:\n case 65518:\n case 65519:\n case 65534:\n var appData = readDataBlock();\n if (fileMarker === 65534) {\n var comment = String.fromCharCode.apply(null, appData);\n this.comments.push(comment);\n }\n if (fileMarker === 65504) {\n if (appData[0] === 74 && appData[1] === 70 && appData[2] === 73 && appData[3] === 70 && appData[4] === 0) {\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: appData[8] << 8 | appData[9],\n yDensity: appData[10] << 8 | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n };\n }\n }\n if (fileMarker === 65505) {\n if (appData[0] === 69 && appData[1] === 120 && appData[2] === 105 && appData[3] === 102 && appData[4] === 0) {\n this.exifBuffer = appData.subarray(5, appData.length);\n }\n }\n if (fileMarker === 65518) {\n if (appData[0] === 65 && appData[1] === 100 && appData[2] === 111 && appData[3] === 98 && appData[4] === 101 && appData[5] === 0) {\n adobe = {\n version: appData[6],\n flags0: appData[7] << 8 | appData[8],\n flags1: appData[9] << 8 | appData[10],\n transformCode: appData[11]\n };\n }\n }\n break;\n case 65499:\n var quantizationTablesLength = readUint16();\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n requestMemoryAllocation(64 * 4);\n var tableData = new Int32Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = readUint16();\n }\n } else\n throw new Error("DQT: invalid table spec");\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n case 65472:\n case 65473:\n case 65474:\n readUint16();\n frame = {};\n frame.extended = fileMarker === 65473;\n frame.progressive = fileMarker === 65474;\n frame.precision = data[offset++];\n frame.scanLines = readUint16();\n frame.samplesPerLine = readUint16();\n frame.components = {};\n frame.componentsOrder = [];\n var pixelsInFrame = frame.scanLines * frame.samplesPerLine;\n if (pixelsInFrame > maxResolutionInPixels) {\n var exceededAmount = Math.ceil((pixelsInFrame - maxResolutionInPixels) / 1e6);\n throw new Error(`maxResolutionInMP limit exceeded by ${exceededAmount}MP`);\n }\n var componentsCount = data[offset++], componentId;\n var maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n var h = data[offset + 1] >> 4;\n var v = data[offset + 1] & 15;\n var qId = data[offset + 2];\n if (h <= 0 || v <= 0) {\n throw new Error("Invalid sampling factor, expected values above 0");\n }\n frame.componentsOrder.push(componentId);\n frame.components[componentId] = {\n h,\n v,\n quantizationIdx: qId\n };\n offset += 3;\n }\n prepareComponents(frame);\n frames.push(frame);\n break;\n case 65476:\n var huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n requestMemoryAllocation(16 + codeLengthSum);\n var huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable2(codeLengths, huffmanValues);\n }\n break;\n case 65501:\n readUint16();\n resetInterval = readUint16();\n break;\n case 65500:\n readUint16();\n readUint16();\n break;\n case 65498:\n var scanLength = readUint16();\n var selectorsCount = data[offset++];\n var components = [], component;\n for (i = 0; i < selectorsCount; i++) {\n component = frame.components[data[offset++]];\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n var processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, this.opts);\n offset += processed;\n break;\n case 65535:\n if (data[offset] !== 255) {\n offset--;\n }\n break;\n default:\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n break;\n } else if (fileMarker === 224 || fileMarker == 225) {\n if (malformedDataOffset !== -1) {\n throw new Error(`first unknown JPEG marker at offset ${malformedDataOffset.toString(16)}, second unknown JPEG marker ${fileMarker.toString(16)} at offset ${(offset - 1).toString(16)}`);\n }\n malformedDataOffset = offset - 1;\n const nextOffset = readUint16();\n if (data[offset + nextOffset - 2] === 255) {\n offset += nextOffset - 2;\n break;\n }\n }\n throw new Error("unknown JPEG marker " + fileMarker.toString(16));\n }\n fileMarker = readUint16();\n }\n if (frames.length != 1)\n throw new Error("only single frame JPEGs supported");\n for (var i = 0; i < frames.length; i++) {\n var cp = frames[i].components;\n for (var j in cp) {\n cp[j].quantizationTable = quantizationTables[cp[j].quantizationIdx];\n delete cp[j].quantizationIdx;\n }\n }\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (var i = 0; i < frame.componentsOrder.length; i++) {\n var component = frame.components[frame.componentsOrder[i]];\n this.components.push({\n lines: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV\n });\n }\n },\n getData: function getData(width, height) {\n var scaleX = this.width / width, scaleY = this.height / height;\n var component1, component2, component3, component4;\n var component1Line, component2Line, component3Line, component4Line;\n var x, y;\n var offset = 0;\n var Y, Cb, Cr, K, C, M, Ye, R, G, B;\n var colorTransform;\n var dataLength = width * height * this.components.length;\n requestMemoryAllocation(dataLength);\n var data = new Uint8Array(dataLength);\n switch (this.components.length) {\n case 1:\n component1 = this.components[0];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 2:\n component1 = this.components[0];\n component2 = this.components[1];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n Y = component2Line[0 | x * component2.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 3:\n colorTransform = true;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n R = component1Line[0 | x * component1.scaleX * scaleX];\n G = component2Line[0 | x * component2.scaleX * scaleX];\n B = component3Line[0 | x * component3.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n R = clampTo8bit(Y + 1.402 * (Cr - 128));\n G = clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n B = clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = R;\n data[offset++] = G;\n data[offset++] = B;\n }\n }\n break;\n case 4:\n if (!this.adobe)\n throw new Error("Unsupported color mode (4 components)");\n colorTransform = false;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n component4 = this.components[3];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n component4Line = component4.lines[0 | y * component4.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n C = component1Line[0 | x * component1.scaleX * scaleX];\n M = component2Line[0 | x * component2.scaleX * scaleX];\n Ye = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n C = 255 - clampTo8bit(Y + 1.402 * (Cr - 128));\n M = 255 - clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n Ye = 255 - clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = 255 - C;\n data[offset++] = 255 - M;\n data[offset++] = 255 - Ye;\n data[offset++] = 255 - K;\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n return data;\n },\n copyToImageData: function copyToImageData(imageData, formatAsRGBA) {\n var width = imageData.width, height = imageData.height;\n var imageDataArray = imageData.data;\n var data = this.getData(width, height);\n var i = 0, j = 0, x, y;\n var Y, K, C, M, R, G, B;\n switch (this.components.length) {\n case 1:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n Y = data[i++];\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 3:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n R = data[i++];\n G = data[i++];\n B = data[i++];\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 4:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n C = data[i++];\n M = data[i++];\n Y = data[i++];\n K = data[i++];\n R = 255 - clampTo8bit(C * (1 - K / 255) + K);\n G = 255 - clampTo8bit(M * (1 - K / 255) + K);\n B = 255 - clampTo8bit(Y * (1 - K / 255) + K);\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n }\n };\n var totalBytesAllocated = 0;\n var maxMemoryUsageBytes = 0;\n function requestMemoryAllocation(increaseAmount = 0) {\n var totalMemoryImpactBytes = totalBytesAllocated + increaseAmount;\n if (totalMemoryImpactBytes > maxMemoryUsageBytes) {\n var exceededAmount = Math.ceil((totalMemoryImpactBytes - maxMemoryUsageBytes) / 1024 / 1024);\n throw new Error(`maxMemoryUsageInMB limit exceeded by at least ${exceededAmount}MB`);\n }\n totalBytesAllocated = totalMemoryImpactBytes;\n }\n constructor.resetMaxMemoryUsage = function(maxMemoryUsageBytes_) {\n totalBytesAllocated = 0;\n maxMemoryUsageBytes = maxMemoryUsageBytes_;\n };\n constructor.getBytesAllocated = function() {\n return totalBytesAllocated;\n };\n constructor.requestMemoryAllocation = requestMemoryAllocation;\n return constructor;\n }();\n if (typeof module !== "undefined") {\n module.exports = decode3;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].decode = decode3;\n }\n function decode3(jpegData, userOpts = {}) {\n var defaultOpts = {\n colorTransform: void 0,\n useTArray: false,\n formatAsRGBA: true,\n tolerantDecoding: true,\n maxResolutionInMP: 100,\n maxMemoryUsageInMB: 512\n };\n var opts = { ...defaultOpts, ...userOpts };\n var arr = new Uint8Array(jpegData);\n var decoder = new JpegImage();\n decoder.opts = opts;\n JpegImage.resetMaxMemoryUsage(opts.maxMemoryUsageInMB * 1024 * 1024);\n decoder.parse(arr);\n var channels = opts.formatAsRGBA ? 4 : 3;\n var bytesNeeded = decoder.width * decoder.height * channels;\n try {\n JpegImage.requestMemoryAllocation(bytesNeeded);\n var image = {\n width: decoder.width,\n height: decoder.height,\n exifBuffer: decoder.exifBuffer,\n data: opts.useTArray ? new Uint8Array(bytesNeeded) : Buffer2.alloc(bytesNeeded)\n };\n if (decoder.comments.length > 0) {\n image["comments"] = decoder.comments;\n }\n } catch (err) {\n if (err instanceof RangeError) {\n throw new Error("Could not allocate enough memory for the image. Required: " + bytesNeeded);\n }\n if (err instanceof ReferenceError) {\n if (err.message === "Buffer is not defined") {\n throw new Error("Buffer is not globally defined in this environment. Consider setting useTArray to true");\n }\n }\n throw err;\n }\n decoder.copyToImageData(image, opts.formatAsRGBA);\n return image;\n }\n }\n});\n\n// node_modules/jpeg-js/index.js\nvar require_jpeg_js = __commonJS({\n "node_modules/jpeg-js/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var encode2 = require_encoder();\n var decode3 = require_decoder();\n module.exports = {\n encode: encode2,\n decode: decode3\n };\n }\n});\n\n// src/processor.worker.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/platform.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/requests.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar xmlhttprequest;\nif (false)\n xmlhttprequest = typeof GM_xmlhttpRequest != "undefined" ? GM_xmlhttpRequest : typeof GM != "undefined" ? GM.xmlHttpRequest : window["GM_xmlhttpRequest"];\nvar GM_fetch = (...[url, opt, lisn]) => {\n function blobTo(to, blob) {\n if (to == "arrayBuffer" && blob.arrayBuffer) {\n const ret = blob.arrayBuffer();\n if (ret)\n return ret;\n }\n return new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.onload = function(event) {\n if (!event)\n return;\n if (to == "base64")\n resolve(event.target.result);\n else\n resolve(event.target.result);\n };\n if (to == "arrayBuffer")\n fileReader.readAsArrayBuffer(blob);\n else if (to == "base64")\n fileReader.readAsDataURL(blob);\n else if (to == "text")\n fileReader.readAsText(blob, "utf-8");\n else\n reject(new Error("unknown to"));\n });\n }\n return new Promise((resolve, reject) => {\n const gmopt = {\n url: url.toString(),\n data: opt?.body,\n responseType: "blob",\n headers: opt?.headers,\n method: opt?.method || "GET",\n ...lisn ? {\n onprogress: (prog) => {\n if (prog.loaded != prog.total && prog.total != 0)\n lisn.dispatchEvent(new CustomEvent("progress", { detail: [prog.loaded, prog.total] }));\n }\n } : {},\n onload: (resp) => {\n if (resp.status / 100 >= 4) {\n reject(new Error("Server Error: " + resp.status));\n return;\n }\n const blob = resp.response;\n const ref = resp;\n ref.blob = () => Promise.resolve(blob);\n ref.arrayBuffer = () => blobTo("arrayBuffer", blob);\n ref.text = () => blobTo("text", blob);\n ref.json = async () => JSON.parse(await blobTo("text", blob));\n resolve(resp);\n },\n ontimeout: () => reject(new Error("fetch timeout")),\n onerror: (...args) => {\n reject(new Error("fetch error"));\n },\n onabort: () => reject(new Error("fetch abort"))\n };\n xmlhttprequest(gmopt);\n });\n};\n\n// src/platform.ts\nvar lqueue = {};\nvar localSet = (key2, value) => localStorage.setItem("__pee__" + key2, JSON.stringify(value));\nvar port1;\nconsole.log("worker", false);\nvar msgBuff = [];\nvar setupPort = (port) => {\n port1 = port;\n port1.onmessage = (ev) => {\n lqueue[ev.data.id](ev.data);\n };\n if (true) {\n for (const msg of msgBuff) {\n port.postMessage(msg[0], { transfer: msg[1] });\n }\n msgBuff = [];\n }\n};\nif (true) {\n port1 = {\n onmessage(ev) {\n lqueue[ev.data.id](ev.data);\n },\n postMessage(msg, tr) {\n msgBuff.push([msg, tr]);\n }\n };\n}\nvar gid = 0;\nvar sendCmd = (cmd, tr, overwrite = false, todelete = false) => {\n const prom = new Promise((_) => {\n const id = gid++;\n if (overwrite)\n cmd.id = id;\n lqueue[id] = (e) => {\n _(e.res);\n if (todelete)\n delete lqueue[id];\n };\n port1.postMessage({ id, ...cmd }, tr || []);\n });\n return prom;\n};\nvar bridge = (name, f) => {\n if (false)\n return f;\n if (false)\n return f;\n return (...args) => {\n return sendCmd({ name, args });\n };\n};\nvar Bridged = (ctor) => {\n const keys = Object.getOwnPropertyNames(ctor).filter((k) => typeof ctor[k] == "function");\n for (const k of keys)\n ctor[k] = bridge(k, ctor[k]);\n};\nif (false) {\n popupport = chrome.runtime.connect({ name: "popup" });\n popupport.onMessage.addListener((msg) => {\n if (msg.id in pendingcmds) {\n pendingcmds[msg.id](msg);\n delete pendingcmds[msg.id];\n }\n });\n}\nvar Platform = class {\n static async openInTab(src, opts) {\n if (false) {\n return GM.openInTab(src, opts);\n }\n const obj = false ? chrome : browser;\n let i;\n if (opts.insert)\n i = (await obj.tabs.getCurrent()).index + 1;\n return obj.tabs.create({ active: opts.active, url: src, index: i });\n }\n static async getValue(key2, def) {\n const isinls = "__pee__" + key2 in localStorage;\n let ret;\n if (isinls) {\n let it = localStorage.getItem("__pee__" + key2);\n if (it === "undefined")\n it = null;\n ret = { ...def, ...JSON.parse(it || "{}") };\n } else\n ret = def;\n if (true) {\n if (isinls) {\n delete localStorage["__pee__" + key2];\n await chrome.storage.local.set({\n [key2]: JSON.stringify(ret)\n });\n } else {\n const d = await chrome.storage.local.get([key2]);\n if (typeof d[key2] == "string")\n return { ...def, ...await JSON.parse("" + d[key2] || "{}") };\n }\n }\n return ret;\n }\n static setValue(name, val) {\n localSet(name, val);\n }\n};\nPlatform.cmdid = 0;\nPlatform = __decorateClass([\n Bridged\n], Platform);\nvar corsFetch = async (input, init3, lsn) => {\n const id = gid++;\n let transfer = [];\n if (init3?.body) {\n if (false) {\n [init3.body, transfer] = await braveserialize(init3.body);\n }\n }\n const prom = new Promise((_, rej) => {\n let gcontroller;\n let buffer = [];\n let finished = false;\n const rs = new ReadableStream({\n start(controller) {\n gcontroller = controller;\n buffer.forEach((b) => gcontroller?.enqueue(b));\n buffer = [];\n if (finished) {\n gcontroller.close();\n }\n }\n });\n let s;\n s = 0;\n const cmdbuff = [];\n lqueue[id] = async (e) => {\n if (e.progress) {\n if (lsn)\n lsn.dispatchEvent(new CustomEvent("progress", { detail: e.progress }));\n }\n if (e.pushData) {\n if (e.s > s) {\n let idx = 0;\n while (idx < cmdbuff.length) {\n if (cmdbuff[idx].s > e.s)\n break;\n idx++;\n }\n cmdbuff.splice(idx, 0, e);\n return;\n }\n const processCmd = (e2) => {\n if (e2.pushData.data) {\n const data = new Uint8Array(e2.pushData.data);\n if (gcontroller)\n gcontroller.enqueue(data);\n else\n buffer.push(data);\n } else {\n if (gcontroller)\n gcontroller?.close();\n else\n finished = true;\n }\n };\n await processCmd(e);\n s++;\n while (cmdbuff[0]?.s == s) {\n await processCmd(cmdbuff.shift());\n s++;\n }\n }\n if (e.setRes) {\n const arrayBuffer = async () => {\n const r = rs.getReader();\n await sendCmd({ name: "fullyRead", fid: id });\n const abs = [];\n let res;\n do {\n res = await r.read();\n if (res.done)\n break;\n abs.push(res.value);\n } while (!res.done);\n const sum = abs.reduce((a, b) => a + b.byteLength, 0);\n const ret = new Uint8Array(sum);\n abs.reduce((ptr, arr) => {\n ret.set(arr, ptr);\n return ptr + arr.byteLength;\n }, 0);\n r.releaseLock();\n return ret;\n };\n const blob = async () => new Blob([await arrayBuffer()]);\n const text = async () => new TextDecoder().decode(await arrayBuffer());\n const json = async () => JSON.parse(await text());\n if (e.ok)\n _({\n body: rs,\n ok: e.ok,\n headers: e.headers,\n redirected: e.redirected,\n type: e.type,\n url: e.url,\n status: e.status,\n bodyUsed: e.bodyUsed,\n statusText: e.statusText,\n clone() {\n return this;\n },\n arrayBuffer,\n blob,\n text,\n json,\n async formData() {\n return new FormData();\n }\n });\n else {\n rej(new Error(`${e.url} - ${e.status}`));\n }\n }\n };\n port1.postMessage({\n id,\n name: "corsFetch",\n args: [input, init3]\n }, transfer);\n });\n return prom;\n};\nasync function getHeaders(s) {\n if (false)\n return headerStringToObject(await GM_head(s));\n const res = await ifetch(s, {\n method: "HEAD"\n });\n return res.headers;\n}\nasync function ifetch(...[url, opt, lisn]) {\n if (true)\n return corsFetch(url.toString(), opt, lisn);\n return GM_fetch(url, opt, lisn);\n}\nasync function* streamRemote(url, chunkSize = 72 * 1024, fetchRestOnNonCanceled = true) {\n let size = Number.POSITIVE_INFINITY;\n let ptr = 0;\n let fetchSize = chunkSize;\n while (ptr != size) {\n let obj;\n const fres = await ifetch(url, { headers: { range: `bytes=${ptr}-${ptr + fetchSize - 1}` } });\n if (false) {\n obj = headerStringToObject(fres.responseHeaders);\n } else {\n obj = fres.headers;\n }\n if (!("content-length" in obj)) {\n console.warn("no content lenght???", url);\n break;\n }\n if ("content-range" in obj) {\n size = +obj["content-range"].split("/")[1];\n }\n const len = +obj["content-length"];\n ptr += len;\n if (fetchRestOnNonCanceled)\n fetchSize = size;\n const val = Buffer2.from(await fres.arrayBuffer());\n const e = yield val;\n if (e) {\n break;\n }\n }\n}\n\n// src/stores.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/store/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/internal/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction noop() {\n}\nfunction run(fn) {\n return fn();\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === "function";\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || (a && typeof a === "object" || typeof a === "function");\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nvar resolved_promise = Promise.resolve();\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nvar SvelteElement;\nif (typeof HTMLElement === "function") {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: "open" });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n for (const key2 in this.$$.slotted) {\n this.appendChild(this.$$.slotted[key2]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []);\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n\n// node_modules/svelte/store/index.mjs\nvar subscriber_queue = [];\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = /* @__PURE__ */ new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) {\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe2(run2, invalidate = noop) {\n const subscriber = [run2, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run2(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe: subscribe2 };\n}\n\n// src/stores.ts\nvar localLoad = async (key2, def) => {\n const ret = await Platform.getValue(key2, def);\n return ret;\n};\nvar localSet2 = (key2, value) => {\n if (true) {\n return;\n }\n if (true)\n chrome.storage.local.set({ [key2]: JSON.stringify(value) });\n else\n localStorage.setItem("__pee__" + key2, JSON.stringify(value));\n};\nvar initial_settings = {\n loop: true,\n dh: false,\n pmeth: 5,\n xpv: false,\n xpi: false,\n hyd: false,\n notcata: false,\n ak: "",\n auto_embed: 0,\n auto_tags: "",\n te: false,\n eye: false,\n ca: false,\n pre: false,\n prev: false,\n sh: false,\n ep: false,\n tm: false,\n dvc: false,\n expte: false,\n mdist: -1,\n phash: false,\n hotlink: false,\n jpeg: false,\n vercheck: false,\n cache: void 0,\n fhost: 0,\n maxe: 5,\n conc: 8,\n ho: false,\n blacklist: [],\n rsources: []\n};\nvar settings = writable();\nvar appState = writable({\n isCatalog: false,\n is4chanX: false,\n akValid: false,\n herror: "",\n client: null,\n processing: 0,\n processed: 0,\n foundPosts: []\n});\nsettings.subscribe((newVal) => {\n if (newVal)\n localSet2("settingsv2", newVal);\n});\n\n// src/pngv3.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer3 = __toESM(require_buffer(), 1);\n\n// src/png.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_crc_32 = __toESM(require_crc32(), 1);\nvar import_buffer = __toESM(require_buffer(), 1);\nvar PNGDecoder = class {\n constructor(reader, strict = true) {\n this.reader = reader;\n this.strict = strict;\n this.req = 8;\n this.ptr = 8;\n this.stopped = false;\n this.repr = import_buffer.Buffer.from([]);\n }\n async catchup() {\n while (this.repr.byteLength < this.req) {\n const chunk = await this.reader.read();\n if (chunk.done) {\n if (this.strict)\n throw new Error(`Unexpected EOF, got ${this.repr.byteLength}, required ${this.req}, ${chunk.value}`);\n this.stopped = true;\n return;\n }\n this.repr = import_buffer.Buffer.concat([this.repr, chunk.value]);\n }\n }\n async *chunks() {\n while (true) {\n this.req += 8;\n await this.catchup();\n if (this.stopped)\n break;\n const length = this.repr.readUInt32BE(this.ptr);\n const name = this.repr.slice(this.ptr + 4, this.ptr + 8).toString();\n this.ptr += 4;\n this.req += length + 4;\n await this.catchup();\n yield [\n name,\n this.repr.slice(this.ptr, this.ptr + length + 4),\n this.ptr + length > this.repr.length ? -1 : this.repr.readUInt32BE(this.ptr + length + 4),\n this.ptr\n ];\n if (this.stopped)\n break;\n this.ptr += length + 8;\n if (name == "IEND")\n break;\n }\n }\n async dtor() {\n }\n};\nvar PNGEncoder = class {\n constructor(bytes) {\n this.writer = bytes.getWriter();\n this.writer.write(import_buffer.Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]));\n }\n async insertchunk(chunk) {\n let b = import_buffer.Buffer.alloc(4);\n const buff = chunk[1];\n b.writeInt32BE(buff.length - 4, 0);\n await this.writer.write(b);\n await this.writer.write(buff);\n b = import_buffer.Buffer.alloc(4);\n b.writeInt32BE((0, import_crc_32.buf)(buff), 0);\n await this.writer.write(b);\n }\n async dtor() {\n this.writer.releaseLock();\n }\n};\n\n// src/utils.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer2 = __toESM(require_buffer(), 1);\n\n// src/assets/hasembed.png\nvar hasembed_default = __toBinary("iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAMAAABHPGVmAAAAMFBMVEX+/v3c3c2moZhda1ODfnfKvK49RDgCAgIbHxpsGhv6BQT9hIOV0Hh4pWO03Z//5coEk9oIAAAHdUlEQVR42qWZDXurIAyFhcDJsS31///bKzEWHX6sd2fPVqYbLycJwXXDTiGKSMrDkQKGc8WwjhCHa0WoSY5u5guIYIUk5BuGEc4oUYZTaVztUq4ZWZtSfzulCyPrCAjXEGgT+9vncQhoRtI1I1BnIdEouYecG5FmZPhNRsLn9T4l3fIjwq8gcXlFv9xwXpPriDLcKHjGYeX1RW0J2uBWUid3FsPPm+flz7Qd3FtJbqhzkuSiYHIzcq8Ybb7KiCRju5PlqirdNdLwewlT2u/IcNUrEvyVwzfKAbvEhHS1RrBF6ysK1ZRvGW0DxhbekGOSlGKzfxgIbpyE8XqJEI9W8GZN6ioi2VU9osSWk8jx8byCMC1zw5JHEiIwOY4YHmM8PDx0sZ/Gx6w9JeQcq3JoRZUUFeFLD+G1qBSh6vB4jBchjzI8NpSQE6BNgAiiodQINg4hvF9NxeYY02mFShw+lAogCUCAFhAiW3wpS/wNsGPQphjloP2FmINtkIdJoCSkvH5OIYZUxAURXk0CcsmJaQRi2IVdLGe1dJ7z7ZEkDNApDEFY27drYwRqC1shdR4dIalKBBhbwg3RCB3Edj39KNmnQ1QtZeoQJ4lIijF4kKzQZkaLUq+3zQ0iz+kwwkYFygrZUaahyr7m52TbHYa4gQxFwBT7u0XICtGO0fZFhAfqzskyHV69KkUbxeeefOQ2XjeyXEjx2JQDCgbdUAbTh5fdxr2RSBpFDillUNMmXB9bibxFFGOEIv6z9tqlxSH6CVirNL1nENGrtlCPKJWuNEijNFHlykHxfYCU1vyqXRRFo1CVJAzSU0bVKxsgpKyzoBRrLrTpy7ZWyroZDylm/lxic9ugYhapmvnSAmbfBId0FD2OlZQWB5JiSzWJFBGSHsMNRWGQnkJ2DDdP+SQDJPzk8/wV240esGY67SG6JgTHmVCQCo9JEiNQZZq82sUpdiaUspoOg/YU8n1sJE3zfLBoCGk2INT5aiTFKFoxhl9ro9QS7ijUGA4hzFNVpMKObskZBBTzxSykRUp1xkFjSIB6cRhkRxk1DXsI1zxMroRqw5iJBKRSUjVTaCbEn3SMUzhoJ/jp1hzI6z3vamBalaEEYUOSFWdmzOE6yeAcooNQ47A4efsRJCyhXmKamiIISh0FKhd8qGZIxMRGGQI6iN99z2sf3BGY67BodoDPqOpJEmX0OFo5LIPho9A7yX6jyijUWHugp6RppsBtESs6qiqMkhqlgzSbwb6E4t0CmH4okqu5sE2XWQbDOUTWe2kZVQjKLMr0UwEy9YrKClOcQ8rbjdhSLExWSYVp6oWpV6DWFAnzOcQO1DkJ5Dx428FdP4T5aNU2q6gydlbIMwjs1A7WDV5vY8xieQmnE2U1bRYhmtzKMUTs8eNlkLL0CQRhKcAZg+qU0LBmBXIMYakbJBhEizE0TplSKOdGXOmHFeIAQlmiFd4VQpUCUnReICCMJ5B0AAnKXRVvI1VsR1SEQQBy2YMgKutQoqvihly/SR3EMuAnu0NYjQEWXup0oqir8rSz0kNgrXAHsXr27QHV6UyfxG8vQvM2XG6jhxjZ22KyhnRdXnlfDjJxB+Hr1UP8JKUvN0/nygKJnT+2Humh6iCiSraOFacvlZRxWGWMc4gH4Xvl7TuyjbFWl2DNCUUw/a+IBnFGgxRygRAk/x8iG8jrFBInIfN/QwLCCUQsTss4b3dHTpK+BGo8hlBLg4QpKnZbQb6DSAcxoUKgxSETkv+8K32f+R4iNV5CMUhN3o9Gy/AFBAqEDuInlRDGu26090oKQo6cKDwp4BEkfQUpRYC+ulTFkrKHpP+F1NgjO6T1xE+8yKMTNn8JMQq2ENEqWbYjscuhiV9Vl3fCAg47I1WweBmkSayTfbcbSZ8Xw86IaYnXz1Mq5/BlW1G+XMPOiAkFykJMf1M6hOhW0PhHCCjrzMPWiItI1L9Cco27SVripblItjPyH6NFfmb+QLBrHVn1z9Fqjw5DlxF6zf6NEeup0RK/jGUHyRHyXXAQfrZgvhoErJSCLSRSVZF/v2wwHRtxiD8FcwuBplQx4Xd1hH5BXI2UskAUxVKygcyfjFDG35VR6tuWwpyQhJRBjSIbSJ6gFTKlOr6PlIR+j0AAKyeRkWoQFWqTTBEzJNUSS3eR4kHqApmGNEqFxOH5GBcIdCPa2Z5gfyyH60jhKKBkPXRH1iyE+ob5AqFuZcs3K8R1Og6NUsdh1nOmCOeBQTr5O0tMWeOUbk+RnvEYqsYRglOI0mudFUd+QwmV8Xi6FT2HtHd/kjn6gpJJ+fxr4TFyfObnGURl37Tl18c607zy1crD/mnVIL2XJlX+MlRknqduVkynECoRg/1mAvmr5xSxsnLIdA/xomaVklKZt91FvaxunTQRIqgQyHIQMN8hPBeTG7mFeG+uascmTjBBqMpHczANpucdhHht9LkYekLCksN1wqbHDYQsHcTE/V91GcaOWXvK4xYiW0bplgCA9OKQmRq1UZ7ZY3UDIXZGuAOQ68AApqROabqHlDMjNKlKzGG31a8o/wBpRk19RswBZgAAAABJRU5ErkJggg==");\n\n// src/filehosts.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction parseForm(data) {\n const form = new FormData();\n Object.entries(data).filter(([key2, value]) => value !== null).map(([key2, value]) => form.append(key2, value));\n return form;\n}\nvar lolisafe = (domain, serving = domain) => ({\n domain,\n serving,\n async uploadFile(f) {\n const resp = await ifetch(`https://${domain}/api/upload`, {\n headers: {\n accept: "application/json"\n },\n "body": parseForm({\n reqtype: "fileupload",\n "files[]": new File([f], "f.pee")\n }),\n "method": "POST"\n });\n const res = await resp.json();\n return res.files.map((e) => e.url)[0];\n }\n});\nvar catbox = (domain, serving) => ({\n domain,\n serving,\n async uploadFile(inj) {\n const resp = await ifetch(`https://${domain}/user/api.php`, {\n method: "POST",\n body: parseForm({\n reqtype: "fileupload",\n fileToUpload: inj\n })\n });\n return resp.text();\n }\n});\nvar filehosts = [\n catbox("catbox.moe", "files.catbox.moe"),\n catbox("pomf.moe", "a.pomf.cat"),\n lolisafe("take-me-to.space"),\n lolisafe("zz.ht", "z.zz.fo")\n];\n\n// node_modules/file-type/browser.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer4 = __toESM(require_buffer(), 1);\nvar import_readable_web_to_node_stream = __toESM(require_lib(), 1);\n\n// node_modules/file-type/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer3 = __toESM(require_buffer(), 1);\n\n// node_modules/token-types/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar ieee754 = __toESM(require_ieee754(), 1);\nvar import_node_buffer = __toESM(require_buffer(), 1);\nvar AnsiStringType = class {\n constructor(len) {\n this.len = len;\n }\n static decode(buffer, offset, until) {\n let str = "";\n for (let i = offset; i < until; ++i) {\n str += AnsiStringType.codePointToString(AnsiStringType.singleByteDecoder(buffer[i]));\n }\n return str;\n }\n static inRange(a, min, max) {\n return min <= a && a <= max;\n }\n static codePointToString(cp) {\n if (cp <= 65535) {\n return String.fromCharCode(cp);\n } else {\n cp -= 65536;\n return String.fromCharCode((cp >> 10) + 55296, (cp & 1023) + 56320);\n }\n }\n static singleByteDecoder(bite) {\n if (AnsiStringType.inRange(bite, 0, 127)) {\n return bite;\n }\n const codePoint = AnsiStringType.windows1252[bite - 128];\n if (codePoint === null) {\n throw Error("invaliding encoding");\n }\n return codePoint;\n }\n get(buffer, offset = 0) {\n return AnsiStringType.decode(buffer, offset, offset + this.len);\n }\n};\nAnsiStringType.windows1252 = [\n 8364,\n 129,\n 8218,\n 402,\n 8222,\n 8230,\n 8224,\n 8225,\n 710,\n 8240,\n 352,\n 8249,\n 338,\n 141,\n 381,\n 143,\n 144,\n 8216,\n 8217,\n 8220,\n 8221,\n 8226,\n 8211,\n 8212,\n 732,\n 8482,\n 353,\n 8250,\n 339,\n 157,\n 382,\n 376,\n 160,\n 161,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 171,\n 172,\n 173,\n 174,\n 175,\n 176,\n 177,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 187,\n 188,\n 189,\n 190,\n 191,\n 192,\n 193,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 203,\n 204,\n 205,\n 206,\n 207,\n 208,\n 209,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 219,\n 220,\n 221,\n 222,\n 223,\n 224,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 235,\n 236,\n 237,\n 238,\n 239,\n 240,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250,\n 251,\n 252,\n 253,\n 254,\n 255\n];\n\n// node_modules/strtok3/lib/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/ReadStreamTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/EndOfFileStream.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/Deferred.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\nvar maxStreamReadSize = 1 * 1024 * 1024;\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\nvar import_node_buffer2 = __toESM(require_buffer(), 1);\n\n// node_modules/strtok3/lib/BufferTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/util.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/supported.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar extensions = [\n "jpg",\n "png",\n "apng",\n "gif",\n "webp",\n "flif",\n "xcf",\n "cr2",\n "cr3",\n "orf",\n "arw",\n "dng",\n "nef",\n "rw2",\n "raf",\n "tif",\n "bmp",\n "icns",\n "jxr",\n "psd",\n "indd",\n "zip",\n "tar",\n "rar",\n "gz",\n "bz2",\n "7z",\n "dmg",\n "mp4",\n "mid",\n "mkv",\n "webm",\n "mov",\n "avi",\n "mpg",\n "mp2",\n "mp3",\n "m4a",\n "oga",\n "ogg",\n "ogv",\n "opus",\n "flac",\n "wav",\n "spx",\n "amr",\n "pdf",\n "epub",\n "elf",\n "exe",\n "swf",\n "rtf",\n "wasm",\n "woff",\n "woff2",\n "eot",\n "ttf",\n "otf",\n "ico",\n "flv",\n "ps",\n "xz",\n "sqlite",\n "nes",\n "crx",\n "xpi",\n "cab",\n "deb",\n "ar",\n "rpm",\n "Z",\n "lz",\n "cfb",\n "mxf",\n "mts",\n "blend",\n "bpg",\n "docx",\n "pptx",\n "xlsx",\n "3gp",\n "3g2",\n "jp2",\n "jpm",\n "jpx",\n "mj2",\n "aif",\n "qcp",\n "odt",\n "ods",\n "odp",\n "xml",\n "mobi",\n "heic",\n "cur",\n "ktx",\n "ape",\n "wv",\n "dcm",\n "ics",\n "glb",\n "pcap",\n "dsf",\n "lnk",\n "alias",\n "voc",\n "ac3",\n "m4v",\n "m4p",\n "m4b",\n "f4v",\n "f4p",\n "f4b",\n "f4a",\n "mie",\n "asf",\n "ogm",\n "ogx",\n "mpc",\n "arrow",\n "shp",\n "aac",\n "mp1",\n "it",\n "s3m",\n "xm",\n "ai",\n "skp",\n "avif",\n "eps",\n "lzh",\n "pgp",\n "asar",\n "stl",\n "chm",\n "3mf",\n "zst",\n "jxl",\n "vcf"\n];\nvar mimeTypes = [\n "image/jpeg",\n "image/png",\n "image/gif",\n "image/webp",\n "image/flif",\n "image/x-xcf",\n "image/x-canon-cr2",\n "image/x-canon-cr3",\n "image/tiff",\n "image/bmp",\n "image/vnd.ms-photo",\n "image/vnd.adobe.photoshop",\n "application/x-indesign",\n "application/epub+zip",\n "application/x-xpinstall",\n "application/vnd.oasis.opendocument.text",\n "application/vnd.oasis.opendocument.spreadsheet",\n "application/vnd.oasis.opendocument.presentation",\n "application/vnd.openxmlformats-officedocument.wordprocessingml.document",\n "application/vnd.openxmlformats-officedocument.presentationml.presentation",\n "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",\n "application/zip",\n "application/x-tar",\n "application/x-rar-compressed",\n "application/gzip",\n "application/x-bzip2",\n "application/x-7z-compressed",\n "application/x-apple-diskimage",\n "application/x-apache-arrow",\n "video/mp4",\n "audio/midi",\n "video/x-matroska",\n "video/webm",\n "video/quicktime",\n "video/vnd.avi",\n "audio/vnd.wave",\n "audio/qcelp",\n "audio/x-ms-asf",\n "video/x-ms-asf",\n "application/vnd.ms-asf",\n "video/mpeg",\n "video/3gpp",\n "audio/mpeg",\n "audio/mp4",\n "audio/opus",\n "video/ogg",\n "audio/ogg",\n "application/ogg",\n "audio/x-flac",\n "audio/ape",\n "audio/wavpack",\n "audio/amr",\n "application/pdf",\n "application/x-elf",\n "application/x-msdownload",\n "application/x-shockwave-flash",\n "application/rtf",\n "application/wasm",\n "font/woff",\n "font/woff2",\n "application/vnd.ms-fontobject",\n "font/ttf",\n "font/otf",\n "image/x-icon",\n "video/x-flv",\n "application/postscript",\n "application/eps",\n "application/x-xz",\n "application/x-sqlite3",\n "application/x-nintendo-nes-rom",\n "application/x-google-chrome-extension",\n "application/vnd.ms-cab-compressed",\n "application/x-deb",\n "application/x-unix-archive",\n "application/x-rpm",\n "application/x-compress",\n "application/x-lzip",\n "application/x-cfb",\n "application/x-mie",\n "application/mxf",\n "video/mp2t",\n "application/x-blender",\n "image/bpg",\n "image/jp2",\n "image/jpx",\n "image/jpm",\n "image/mj2",\n "audio/aiff",\n "application/xml",\n "application/x-mobipocket-ebook",\n "image/heif",\n "image/heif-sequence",\n "image/heic",\n "image/heic-sequence",\n "image/icns",\n "image/ktx",\n "application/dicom",\n "audio/x-musepack",\n "text/calendar",\n "text/vcard",\n "model/gltf-binary",\n "application/vnd.tcpdump.pcap",\n "audio/x-dsf",\n "application/x.ms.shortcut",\n "application/x.apple.alias",\n "audio/x-voc",\n "audio/vnd.dolby.dd-raw",\n "audio/x-m4a",\n "image/apng",\n "image/x-olympus-orf",\n "image/x-sony-arw",\n "image/x-adobe-dng",\n "image/x-nikon-nef",\n "image/x-panasonic-rw2",\n "image/x-fujifilm-raf",\n "video/x-m4v",\n "video/3gpp2",\n "application/x-esri-shape",\n "audio/aac",\n "audio/x-it",\n "audio/x-s3m",\n "audio/x-xm",\n "video/MP1S",\n "video/MP2P",\n "application/vnd.sketchup.skp",\n "image/avif",\n "application/x-lzh-compressed",\n "application/pgp-encrypted",\n "application/x-asar",\n "model/stl",\n "application/vnd.ms-htmlhelp",\n "model/3mf",\n "image/jxl",\n "application/zstd"\n];\n\n// node_modules/file-type/core.js\nvar supportedExtensions = new Set(extensions);\nvar supportedMimeTypes = new Set(mimeTypes);\n\n// src/utils.ts\nvar csettings;\nsettings.subscribe((b) => {\n csettings = b;\n});\nvar threadDataCache = writable();\nvar cthreadDataCache;\nthreadDataCache.subscribe((newval) => {\n cthreadDataCache = newval;\n});\nvar decodeCoom3Payload = async (buff) => {\n if (!csettings)\n throw new Error("Settings uninit");\n const allowed_domains = filehosts.map((e) => e.serving.replaceAll(".", "\\\\."));\n const pees = buff.toString().split(" ").slice(0, csettings.maxe).filter((e) => allowed_domains.some((v) => e.match(`https://(.*\\\\.)?${v}/`)));\n return (await Promise.all(pees.map(async (pee) => {\n try {\n const m = pee.match(/(?https?):\\/\\/(?.*?)(?\\/.*)/);\n if (!m)\n return;\n const { domain, file } = m.groups;\n const headers = await getHeaders(pee);\n const res = await ifetch(pee, {\n headers: { range: "bytes=0-32767", "user-agent": "" },\n mode: "cors",\n referrerPolicy: "no-referrer"\n });\n const size = +headers["content-length"] || 0;\n const header = import_buffer2.Buffer.from(await res.arrayBuffer());\n let hptr = 0;\n if (header.slice(0, 4).toString() == "PEE\\0")\n hptr += 4;\n else\n return;\n const flags = header[hptr];\n const hasFn = !!(flags & 1);\n const hasTags = !!(flags & 2);\n const hasThumbnail = !!(flags & 4);\n let [ptr, ptr2] = [hptr + 1, hptr + 1];\n let fn = "embedded";\n let tags = [];\n let thumb = import_buffer2.Buffer.from(hasembed_default);\n if (hasFn) {\n while (header[ptr2] != 0)\n ptr2++;\n fn = header.slice(ptr, ptr2).toString();\n ptr = ++ptr2;\n }\n if (hasTags) {\n while (header[ptr2] != 0)\n ptr2++;\n tags = header.slice(ptr, ptr2).toString().split(/\\s+/);\n }\n let thumbsize = 0;\n if (hasThumbnail) {\n thumbsize = header.readInt32LE(ptr);\n ptr += 4;\n if (header.byteLength >= ptr + thumbsize)\n thumb = header.slice(ptr, ptr + thumbsize);\n else\n thumb = import_buffer2.Buffer.from(await (await ifetch(pee, { headers: { "user-agent": "", range: `bytes=${ptr}-${ptr + thumbsize}` } })).arrayBuffer());\n ptr += thumbsize;\n }\n const unzip = { url: pee, headers: { "user-agent": "", range: `bytes=${ptr}-${size - 1}` } };\n let data;\n data = unzip;\n if (size < 3072) {\n thumb = data = import_buffer2.Buffer.from(await (await ifetch(unzip.url, { headers: unzip.headers })).arrayBuffer());\n }\n return {\n filename: fn,\n data,\n thumbnail: thumb\n };\n } catch (e) {\n console.warn(e);\n }\n }))).filter((e) => e).map((e) => e);\n};\n\n// src/pngv3.ts\nvar bs58 = __toESM(require_bs58(), 1);\n\n// src/bitstream.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar revbyte = (n, len = 8) => {\n let acc = 0;\n let n2 = n;\n let len2 = len;\n while (len2) {\n acc = acc * 2 + (n2 & 1);\n n2 >>= 1;\n len2--;\n }\n return acc;\n};\nvar BitstreamReader = class {\n constructor() {\n this.buffers = [];\n this.bufferedLength = 0;\n this._offsetIntoBuffer = 0;\n this._bufferIndex = 0;\n this._offset = 0;\n this.skippedLength = 0;\n }\n get bufferIndex() {\n return this._bufferIndex;\n }\n get offset() {\n return this._offset;\n }\n get available() {\n return this.bufferedLength - this.skippedLength;\n }\n getBit(offset) {\n const byte = this.buffers[0][offset >> 3];\n return +!!(byte & 1 << (offset & 7));\n }\n readSync(length) {\n let value = 0;\n if (this._offset >> 3 > this.buffers[0].byteLength) {\n throw "Out of data";\n }\n for (let i = length - 1; i >= 0; --i) {\n value = value * 2 + this.getBit(this._offset + i);\n }\n this._offset += length;\n this.bufferedLength -= length;\n return value;\n }\n addBuffer(buffer) {\n this.buffers.push(buffer);\n this.bufferedLength += buffer.length * 8;\n }\n};\nvar BitstreamWriter = class {\n constructor(stream, bufferSize = 1) {\n this.stream = stream;\n this.pendingBits = 0;\n this.bufferoffset = 0;\n this._offset = 0;\n bufferSize = 1;\n this.buffer = new Uint8Array(bufferSize);\n }\n get offset() {\n return this._offset;\n }\n get byteOffset() {\n return this.pendingBits;\n }\n end() {\n this.flush();\n }\n flush() {\n this.stream.write(new Uint8Array(this.buffer));\n this.bufferoffset = 0;\n this.buffer.fill(0);\n }\n setBit(b) {\n let byte = this.buffer[0];\n byte |= b << (this._offset & 7);\n this.buffer[0] = byte;\n this._offset += 1;\n if (++this.bufferoffset == this.buffer.length * 8) {\n this.flush();\n }\n }\n write(length, value) {\n while (length--) {\n this.setBit(value & 1);\n value >>= 1;\n }\n }\n};\n\n// src/dh-deflate.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar TINF_OK = 0;\nvar Tree = class {\n constructor() {\n this.table = new Uint16Array(16);\n this.trans = new Uint16Array(288);\n }\n};\nvar getPathTo = (tree, value) => {\n if (tree[0] === value)\n return "0";\n if (tree[1] === value)\n return "1";\n let p;\n if (typeof tree[0] != "number")\n p = getPathTo(tree[0], value);\n let b = "0";\n if (!p) {\n if (tree[1] && typeof tree[1] != "number")\n p = getPathTo(tree[1], value);\n b = "1";\n }\n if (p)\n return b + p;\n};\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n let p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n}\nvar Data = class {\n constructor(source, dests, to_hide, hidden) {\n this.source = source;\n this.dests = dests;\n this.to_hide = to_hide;\n this.hidden = hidden;\n this.pathMap = /* @__PURE__ */ new Map();\n this.dest = [];\n this.ltree = new Tree();\n this.dtree = new Tree();\n }\n computeReverse() {\n this.rltree = buildHuffmanTable(this.ltree.table, this.ltree.trans)[0];\n this.rdtree = buildHuffmanTable(this.dtree.table, this.dtree.trans)[0];\n this.adists = new Set(this.rdtree.flat(16));\n }\n};\nvar sltree = new Tree();\nvar sdtree = new Tree();\nvar rltree;\nvar rdtree;\nvar sadist;\nvar length_bits = new Uint8Array(30);\nvar length_base = new Uint16Array(30);\nvar dist_bits = new Uint8Array(30);\nvar dist_base = new Uint16Array(30);\nvar clcidx = new Uint8Array([\n 16,\n 17,\n 18,\n 0,\n 8,\n 7,\n 9,\n 6,\n 10,\n 5,\n 11,\n 4,\n 12,\n 3,\n 13,\n 2,\n 14,\n 1,\n 15\n]);\nvar code_tree = new Tree();\nvar lengths = new Uint8Array(288 + 32);\nfunction tinf_build_bits_base(bits, base, delta, first) {\n let i, sum;\n for (i = 0; i < delta; ++i)\n bits[i] = 0;\n for (i = 0; i < 30 - delta; ++i)\n bits[i + delta] = i / delta | 0;\n for (sum = first, i = 0; i < 30; ++i) {\n base[i] = sum;\n sum += 1 << bits[i];\n }\n}\nfunction tinf_build_fixed_trees(lt, dt) {\n let i;\n for (i = 0; i < 7; ++i)\n lt.table[i] = 0;\n lt.table[7] = 24;\n lt.table[8] = 152;\n lt.table[9] = 112;\n for (i = 0; i < 24; ++i)\n lt.trans[i] = 256 + i;\n for (i = 0; i < 144; ++i)\n lt.trans[24 + i] = i;\n for (i = 0; i < 8; ++i)\n lt.trans[24 + 144 + i] = 280 + i;\n for (i = 0; i < 112; ++i)\n lt.trans[24 + 144 + 8 + i] = 144 + i;\n for (i = 0; i < 5; ++i)\n dt.table[i] = 0;\n dt.table[5] = 32;\n for (i = 0; i < 32; ++i)\n dt.trans[i] = i;\n}\nvar offs = new Uint16Array(16);\nfunction tinf_build_tree(t, lengths2, off, num) {\n let i, sum;\n for (i = 0; i < 16; ++i)\n t.table[i] = 0;\n for (i = 0; i < num; ++i)\n t.table[lengths2[off + i]]++;\n t.table[0] = 0;\n for (sum = 0, i = 0; i < 16; ++i) {\n offs[i] = sum;\n sum += t.table[i];\n }\n for (i = 0; i < num; ++i) {\n if (lengths2[off + i])\n t.trans[offs[lengths2[off + i]]++] = i;\n }\n}\nfunction tinf_getbit(d) {\n const v = d.source.readSync(1);\n return v;\n}\nvar loff = 0;\nvar loffs = [];\nfunction tinf_read_bits(d, num, base) {\n if (!num)\n return base;\n const v = d.source.readSync(num) + base;\n loff = v;\n loffs.push(v);\n if (loffs.length > 4) {\n loffs.shift();\n }\n return v;\n}\nfunction tinf_decode_symbol(d, t, copy = true, ext = {}) {\n let sum = 0, cur = 0, len = 0;\n let s = 0;\n do {\n const b = d.source.readSync(1);\n copy && d.hidden?.write(1, b);\n s = s << 1 | b;\n cur = 2 * cur + b;\n ++len;\n sum += t.table[len];\n cur -= t.table[len];\n } while (cur >= 0);\n ext.length = len;\n ext.sym = s;\n return t.trans[sum + cur];\n}\nfunction tinf_decode_trees(d, lt, dt, copy = true) {\n let i, num, length;\n const hlit = tinf_read_bits(d, 5, 257);\n copy && d.hidden?.write(5, hlit - 257);\n const hdist = tinf_read_bits(d, 5, 1);\n copy && d.hidden?.write(5, hdist - 1);\n const hclen = tinf_read_bits(d, 4, 4);\n copy && d.hidden?.write(4, hclen - 4);\n for (i = 0; i < 19; ++i)\n lengths[i] = 0;\n for (i = 0; i < hclen; ++i) {\n const clen = tinf_read_bits(d, 3, 0);\n copy && d.hidden?.write(3, clen);\n lengths[clcidx[i]] = clen;\n }\n tinf_build_tree(code_tree, lengths, 0, 19);\n for (num = 0; num < hlit + hdist; ) {\n const sym = tinf_decode_symbol(d, code_tree, copy);\n let prev;\n switch (sym) {\n case 16:\n prev = lengths[num - 1];\n length = tinf_read_bits(d, 2, 3);\n copy && d.hidden?.write(2, length - 3);\n for (; length; --length) {\n lengths[num++] = prev;\n }\n break;\n case 17:\n length = tinf_read_bits(d, 3, 3);\n copy && d.hidden?.write(3, length - 3);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n case 18:\n length = tinf_read_bits(d, 7, 11);\n copy && d.hidden?.write(7, length - 11);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n default:\n lengths[num++] = sym;\n break;\n }\n }\n tinf_build_tree(lt, lengths, 0, hlit);\n tinf_build_tree(dt, lengths, hlit, hdist);\n}\nvar get_symbol = (value, bits_table, base_table) => {\n let i = 0;\n for (i = 0; i < base_table.length; ++i) {\n if (base_table[i] > value) {\n i--;\n return [i, bits_table[i], value - base_table[i]];\n }\n }\n i--;\n return [i, bits_table[i], value - base_table[i]];\n};\nvar encode_symbol = (sym, tree, pathMap) => {\n const code = getPathTo(tree, sym);\n const v = {\n length: code?.length,\n val: parseInt(code, 2)\n };\n return v;\n};\nvar capacity = 0;\nfunction tinf_inflate_block_data(d, lt, dt) {\n while (1) {\n let sym = tinf_decode_symbol(d, lt);\n if (sym === 256) {\n return TINF_OK;\n }\n if (sym < 256) {\n d.dest.push(sym);\n } else {\n sym -= 257;\n const length = tinf_read_bits(d, length_bits[sym], length_base[sym]);\n if (length_bits[sym])\n d.hidden?.write(length_bits[sym], length - length_base[sym]);\n const ext = { length: 0, sym: 0 };\n const dist = tinf_decode_symbol(d, dt, false, ext);\n let backoffset = tinf_read_bits(d, dist_bits[dist], dist_base[dist]);\n const offs2 = d.dest.length - backoffset;\n let match;\n const skip = !d.to_hide || d.to_hide && d.to_hide instanceof BitstreamReader && d.to_hide.available == 0;\n if (!skip && (match = Buffer2.from(d.dest.slice(offs2, offs2 + length))).length == length) {\n let begin = d.dest.length - 32768;\n if (begin < 0)\n begin = 0;\n let matches = [];\n let o = 0;\n const slic = Buffer2.from(d.dest.slice(begin + o, d.dest.length));\n while (begin + o < d.dest.length) {\n const r = slic.slice(o, d.dest.length).indexOf(match);\n if (r >= 0) {\n matches.push(r + begin + o);\n o += r;\n } else {\n break;\n }\n o++;\n }\n if (matches.length > 1) {\n matches = matches.map((e) => -(e - d.dest.length)).filter((e) => {\n const [dsym2] = get_symbol(e, dist_bits, dist_base);\n return d.adists.has(dsym2);\n });\n matches.reverse();\n const v = Math.floor(Math.log2(matches.length));\n capacity += v;\n if (d.to_hide instanceof BitstreamReader) {\n if (d.to_hide.available) {\n const s = d.to_hide.readSync(Math.min(d.to_hide.available, v));\n backoffset = matches[s];\n }\n } else {\n const idx = matches.indexOf(backoffset);\n d.to_hide.write(v, idx);\n }\n }\n }\n const [dsym, dlen, doff] = get_symbol(backoffset, dist_bits, dist_base);\n const encdist = encode_symbol(dsym, d.rdtree, d.pathMap);\n d.hidden?.write(encdist.length, revbyte(encdist.val, encdist.length));\n d.hidden?.write(dlen, doff);\n for (let i = offs2; i < offs2 + length; ++i) {\n d.dest.push(d.dest[i]);\n }\n }\n }\n}\nfunction tinf_inflate_uncompressed_block(d) {\n if (d.source.offset & 7)\n d.source.readSync(8 - d.source.offset & 7);\n if (d.hidden && d.hidden.offset & 7)\n d.hidden?.write(8 - d.hidden.offset & 7, 0);\n const length = d.source.readSync(16);\n d.hidden?.write(16, length);\n const invlength = d.source.readSync(16);\n d.hidden?.write(16, invlength);\n if (length !== (~invlength & 65535)) {\n return -4;\n }\n for (let i = length; i; --i) {\n const v = d.source.readSync(8);\n d.dest.push(v);\n d.hidden?.write(8, v);\n }\n return TINF_OK;\n}\nfunction tinf_uncompress(source, decompressed, to_hide, hidden, opt = 0) {\n const decomp = decompressed ? new BitstreamWriter({ write: decompressed }) : null;\n const hid = hidden && new BitstreamWriter({ write: hidden }, 4);\n const d = new Data(source, decomp, to_hide, hid);\n let res;\n let bfinal, btype;\n do {\n bfinal = tinf_getbit(d);\n d.hidden?.write(1, bfinal);\n btype = tinf_read_bits(d, 2, 0);\n d.hidden?.write(2, btype);\n switch (btype) {\n case 0:\n res = tinf_inflate_uncompressed_block(d);\n break;\n case 1:\n d.rdtree = rdtree;\n d.rltree = rltree;\n d.adists = sadist;\n res = tinf_inflate_block_data(d, sltree, sdtree);\n break;\n case 2:\n tinf_decode_trees(d, d.ltree, d.dtree);\n d.computeReverse();\n res = tinf_inflate_block_data(d, d.ltree, d.dtree);\n break;\n default:\n res = -2;\n }\n if (res !== TINF_OK)\n throw new Error("Data error " + res);\n } while (!bfinal);\n decomp?.end();\n hid?.end();\n}\ntinf_build_fixed_trees(sltree, sdtree);\ntinf_build_bits_base(length_bits, length_base, 4, 3);\ntinf_build_bits_base(dist_bits, dist_base, 2, 1);\nrltree = buildHuffmanTable(sltree.table, sltree.trans)[0];\nrdtree = buildHuffmanTable(sdtree.table, sdtree.trans)[0];\nsadist = new Set(rdtree.flat(16));\nlength_bits[28] = 0;\nlength_base[28] = 258;\n\n// src/pngv3.ts\nvar csettings2;\nsettings.subscribe((b) => {\n csettings2 = b;\n});\nvar CUM3 = import_buffer3.Buffer.from("doo\\0m");\nvar CUM4 = import_buffer3.Buffer.from("voo\\0m");\nvar CUM5 = import_buffer3.Buffer.from("boo\\0");\nvar CUM6 = import_buffer3.Buffer.from("Creation Time\\0");\nvar CUM7 = import_buffer3.Buffer.from("Software\\0");\nvar BufferReadStream = (b) => {\n const ret = new ReadableStream({\n pull(cont) {\n cont.enqueue(b);\n cont.close();\n }\n });\n return ret;\n};\nvar password = import_buffer3.Buffer.from("NOA");\nvar xor = (a, p) => {\n let n = 0;\n for (let i = 0; i < a.byteLength; ++i) {\n a[i] ^= p[n];\n n++;\n n %= p.byteLength;\n }\n};\nvar prefs = {\n "files.catbox.moe": "c",\n "a.pomf.cat": "p",\n "take-me-to.space": "t",\n "z.zz.fo": "z"\n};\nvar rprefs = {\n "c": "files.catbox.moe",\n "p": "a.pomf.cat",\n "t": "take-me-to.space",\n "z": "z.zz.fo"\n};\nvar extractFromRawDeflate = (b) => {\n const src = new BitstreamReader();\n src.addBuffer(b);\n const chnks = [];\n const hidden = new BitstreamWriter({\n write(chunk) {\n for (const i of chunk) {\n if (i >= 32 && i <= 128)\n chnks.push(i);\n else\n throw "Finish";\n }\n }\n });\n try {\n tinf_uncompress(src, void 0, hidden, void 0);\n } catch (e) {\n if (e == "Finish")\n return import_buffer3.Buffer.from(chnks);\n }\n return false;\n};\nvar extract = async (png, doextract = true) => {\n const reader = BufferReadStream(png).getReader();\n const sneed = new PNGDecoder(reader, false);\n const ret = [];\n let w;\n if (!csettings2)\n throw new Error("Settings uninit");\n try {\n let complete = false;\n const idats = [];\n for await (const [name, chunk, crc, offset] of sneed.chunks()) {\n let buff;\n switch (name) {\n case "tEXt":\n buff = chunk;\n if (buff.slice(4, 4 + CUM3.length).equals(CUM3)) {\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(buff.slice(4 + CUM3.length));\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM4.length).equals(CUM4)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM4.length);\n xor(passed, password);\n const k = await decodeCoom3Payload(passed);\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM5.length).equals(CUM5)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM5.length);\n const decoded = import_buffer3.Buffer.from(passed.toString(), "base64").toString().split(" ").map((e) => {\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n }\n if (w = [CUM6, CUM7].find((e) => buff.slice(4, 4 + e.length).equals(e))) {\n const passed = buff.slice(4 + w.length);\n if (!passed.toString().match(/^[0-9a-zA-Z+/=]+$/g))\n continue;\n const decoders = [\n (b) => import_buffer3.Buffer.from(b.toString(), "base64").toString(),\n (b) => import_buffer3.Buffer.from(bs58.decode(passed.toString())).toString()\n ];\n for (const d of decoders) {\n try {\n const decoded = d(passed).split(" ").map((e) => {\n if (!(e[0] in rprefs))\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n } catch (e) {\n }\n }\n }\n break;\n case "IDAT":\n if (ret.length)\n return ret;\n buff = chunk;\n idats.push(buff.slice(4));\n break;\n case "IEND":\n complete = true;\n default:\n break;\n }\n }\n if (idats.length) {\n let decoded;\n if ((decoded = extractFromRawDeflate(import_buffer3.Buffer.concat(idats).slice(2))) === false)\n return false;\n const dec = decoded.toString().split(" ").map((e) => {\n if (!(e[0] in rprefs) || e.length < 5)\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (doextract)\n return decodeCoom3Payload(import_buffer3.Buffer.from(dec));\n return true;\n }\n } catch (e) {\n if (e != "Uhh")\n console.error(e);\n } finally {\n reader.releaseLock();\n }\n};\nvar buildChunk = (tag, data) => {\n const ret = import_buffer3.Buffer.alloc(data.byteLength + 4);\n ret.write(tag.slice(0, 4), 0);\n data.copy(ret, 4);\n return ret;\n};\nvar BufferWriteStream = () => {\n let b = import_buffer3.Buffer.from([]);\n const ret = new WritableStream({\n write(chunk) {\n b = import_buffer3.Buffer.concat([b, chunk]);\n console.log("finished appending");\n }\n });\n return [ret, () => b];\n};\nvar embedInRawDeflate = (b, h) => {\n const src = new BitstreamReader();\n const hid = new BitstreamReader();\n hid.addBuffer(h);\n src.addBuffer(b);\n const chnks = [];\n tinf_uncompress(src, void 0, hid, (c) => chnks.push(c));\n return import_buffer3.Buffer.concat(chnks);\n};\nvar inject_data = async (container, injb) => {\n injb = import_buffer3.Buffer.concat([injb, import_buffer3.Buffer.from([0])]);\n if (!csettings2)\n throw new Error("Settings uninit");\n if (csettings2.pmeth < 5) {\n let magic = false;\n const [writestream2, extract6] = BufferWriteStream();\n const encoder = new PNGEncoder(writestream2);\n const decoder = new PNGDecoder(container.stream().getReader());\n for await (const [name, chunk, crc, offset] of decoder.chunks()) {\n if (magic && name != "IDAT")\n break;\n if (!magic && name == "IDAT") {\n const passed = import_buffer3.Buffer.from(injb);\n switch (csettings2.pmeth) {\n case 0:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM3, passed])), 0, 0]);\n break;\n case 1:\n xor(passed, password);\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM4, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 2:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM5, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 3:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM6, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 4:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM7, import_buffer3.Buffer.from(bs58.encode(passed))])), 0, 0]);\n break;\n }\n magic = true;\n }\n await encoder.insertchunk([name, chunk, crc, offset]);\n }\n await encoder.insertchunk([\n "IEND",\n buildChunk("IEND", import_buffer3.Buffer.from([])),\n 0,\n 0\n ]);\n return extract6();\n }\n let pdec = new PNGDecoder(container.stream().getReader());\n const concat = [];\n for await (const chk of pdec.chunks())\n if (chk[0] == "IDAT")\n concat.push(chk[1].slice(4));\n const comp = import_buffer3.Buffer.concat(concat);\n const head = comp.slice(0, 2);\n const chksum = comp.slice(-4);\n const idatblk = embedInRawDeflate(comp.slice(2, -4), injb);\n const [writestream, extract5] = BufferWriteStream();\n const penc = new PNGEncoder(writestream);\n pdec = new PNGDecoder(container.stream().getReader());\n let ins = false;\n for await (const chk of pdec.chunks()) {\n if (chk[0] != "IDAT") {\n await penc.insertchunk(chk);\n } else {\n if (!ins) {\n await penc.insertchunk(["IDAT", import_buffer3.Buffer.concat([import_buffer3.Buffer.from("IDAT"), head, idatblk, chksum]), 0, 0]);\n ins = true;\n }\n }\n }\n await penc.dtor();\n console.log("Finished writing");\n return extract5();\n};\nvar inject = async (container, links) => {\n links = links.map((link) => {\n for (const h of filehosts) {\n if (link.includes(h.serving)) {\n const end = link.split("/").slice(-1)[0];\n return `${prefs[h.serving]}${end}`;\n }\n }\n return "";\n });\n const injb = import_buffer3.Buffer.from(links.join(" "));\n return inject_data(container, injb);\n};\nvar has_embed = async (png) => {\n const r = await extract(png, false);\n return !!r;\n};\nvar pngv3_default = {\n extract,\n has_embed,\n inject,\n match: (fn) => !!fn.match(/\\.png$/)\n};\n\n// src/jpg.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer4 = __toESM(require_buffer(), 1);\n\n// src/f5stego.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction* f5get() {\n let extrBit = 0;\n let k = 0;\n for (let i = 0; i < 4; ++i) {\n const b2 = yield;\n k |= b2 << i;\n }\n k = (k & 15) + 1;\n let toread = 8;\n let len = 0;\n while (toread--) {\n const b2 = yield;\n len = len * 2 + b2;\n }\n const b = yield;\n toread += 8;\n if (b)\n toread += 7;\n else\n len *= 2;\n while (toread--) {\n const b2 = yield;\n len = len * 2 + b2;\n }\n const rlen = revbyte(len, b ? 23 : 16);\n len = rlen;\n if (len > 256)\n throw new Error("Too big for Smash");\n len *= 8;\n const chunks = [];\n const bw = new BitstreamWriter({\n write(chunk) {\n chunks.push(chunk);\n }\n });\n while (len) {\n extrBit = yield;\n bw.write(1, extrBit);\n len--;\n }\n bw.end();\n return Buffer2.concat(chunks).slice(0, rlen);\n}\nvar bitcode = new Array(65535);\nvar category = new Array(65535);\nvar std_dc_luminance_nrcodes = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\nvar std_dc_luminance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_luminance_nrcodes = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\nvar std_ac_luminance_values = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nvar std_dc_chrominance_nrcodes = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\nvar std_dc_chrominance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_chrominance_nrcodes = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\nvar std_ac_chrominance_values = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nfunction _initCategoryNumber() {\n let nrlower = 1;\n let nrupper = 2;\n for (let cat = 1; cat <= 15; cat++) {\n for (let nr = nrlower; nr < nrupper; nr++) {\n category[32767 + nr] = cat;\n bitcode[32767 + nr] = [];\n bitcode[32767 + nr][1] = cat;\n bitcode[32767 + nr][0] = nr;\n }\n for (let nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category[32767 + nrneg] = cat;\n bitcode[32767 + nrneg] = [];\n bitcode[32767 + nrneg][1] = cat;\n bitcode[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n}\n_initCategoryNumber();\nfunction _computeHuffmanTbl(nrcodes, std_table) {\n let codevalue = 0;\n let pos_in_table = 0;\n const HT = [];\n for (let k = 1; k <= 16; k++) {\n for (let j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n}\nvar YDC_HT = _computeHuffmanTbl(std_dc_luminance_nrcodes, std_dc_luminance_values);\nvar UVDC_HT = _computeHuffmanTbl(std_dc_chrominance_nrcodes, std_dc_chrominance_values);\nvar YAC_HT = _computeHuffmanTbl(std_ac_luminance_nrcodes, std_ac_luminance_values);\nvar UVAC_HT = _computeHuffmanTbl(std_ac_chrominance_nrcodes, std_ac_chrominance_values);\nvar __raw, _jfif, _APPn, _qts, _frame, _tail, __f5write, _f5write_fn;\nvar f5stego = class {\n constructor(key2, maxPixels = 4096 * 4096) {\n this.maxPixels = maxPixels;\n __privateAdd(this, __f5write);\n __privateAdd(this, __raw, void 0);\n __privateAdd(this, _jfif, void 0);\n __privateAdd(this, _APPn, void 0);\n __privateAdd(this, _qts, void 0);\n __privateAdd(this, _frame, null);\n __privateAdd(this, _tail, null);\n }\n embed(image, data, k) {\n this.parse(image);\n this.f5put(data, k);\n return this.pack();\n }\n extract(image) {\n try {\n this.gengen = f5get();\n this.gengen.next();\n this.parse(image, true);\n return this.f5get();\n } catch (e) {\n if (e instanceof Buffer2)\n return e;\n throw e;\n }\n }\n f5put(data, k) {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let t, i, comp = __privateGet(this, _frame).components[0];\n if (data.length > 8388607)\n throw "Data too big. Max 8388607 bytes allowed.";\n if (data.length < 32768) {\n t = new Uint8Array(2 + data.length);\n t[0] = data.length & 255;\n t[1] = data.length >>> 8;\n t.set(data, 2);\n } else {\n t = new Uint8Array(3 + data.length);\n t[0] = data.length & 255;\n t[1] = (data.length >>> 8 & 127) + 128;\n t[2] = data.length >>> 15;\n t.set(data, 3);\n }\n if (comp.componentId != 1) {\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n return __privateMethod(this, __f5write, _f5write_fn).call(this, comp.blocks, t, k);\n }\n f5get() {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let comp = __privateGet(this, _frame).components[0];\n if (comp.componentId != 1) {\n for (let i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n const coeff = new Int16Array(comp.blocks.length);\n coeff.set(comp.blocks);\n let pos = -1, extrBit = 0, cCount = coeff.length - 1;\n let n, k = 0;\n let out = new Uint8Array(coeff.length / 8 | 0), extrByte = 0, outPos = 0, bitsAvail = 0, code = 0, hash = 0;\n while (bitsAvail < 4) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n k |= extrBit << bitsAvail;\n bitsAvail++;\n }\n k = (k & 15) + 1;\n n = (1 << k) - 1;\n bitsAvail = 0;\n if (k == 1) {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n extrByte |= extrBit << bitsAvail;\n bitsAvail++;\n if (bitsAvail == 8) {\n out[outPos++] = extrByte;\n extrByte = 0;\n bitsAvail = 0;\n }\n }\n } else {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n hash ^= extrBit * ++code;\n if (code == n) {\n extrByte |= hash << bitsAvail;\n bitsAvail += k;\n code = 0;\n hash = 0;\n while (bitsAvail >= 8) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n }\n }\n }\n while (bitsAvail > 0) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n let s = 2, l = out[0];\n if (out[1] & 128) {\n s++;\n l += ((out[1] & 127) << 8) + (out[2] << 15);\n } else {\n l += out[1] << 8;\n }\n return out.subarray(s, s + l);\n }\n parse(data, tolerant = false) {\n let offset = 0;\n function _buildHuffmanTable(nrcodes, values) {\n let codevalue = 0, pos_in_table = 0, HT = new Uint16Array(65536);\n for (let k = 0; k < 16; k++) {\n for (let j2 = 0; j2 < nrcodes[k]; j2++) {\n for (let i2 = codevalue << 15 - k, cntTo = codevalue + 1 << 15 - k; i2 < cntTo; i2++) {\n HT[i2] = values[pos_in_table] + (k + 1 << 8);\n }\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n const decodeScan = (data2, offset2, frame, components, resetInterval2, spectralStart, spectralEnd, successivePrev, successive) => {\n let startOffset = offset2, bitsData = 0, bitsCount = 0, eobrun = 0, p1 = 1 << successive, m1 = -1 << successive;\n const prevpos = 0;\n const decodeBaseline = (component2, pos) => {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n let diff = 0;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff;\n let k2 = 1, s, r;\n while (k2 < 64) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n bitsCount -= s;\n k2++;\n }\n };\n function decodeDCFirst(component2, pos) {\n let diff = 0;\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff << successive;\n }\n function decodeDCSuccessive(component2, pos) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocksDC[pos >> 6] |= (bitsData >>> --bitsCount & 1) << successive;\n }\n if (!frame)\n throw "Frame not parsed yet";\n function decodeACFirst(component2, pos) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k2 = spectralStart, s, r;\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r != 15) {\n eobrun = (1 << r) - 1;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n bitsCount -= s;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n component2.blocks[pos + k2] *= p1;\n k2++;\n }\n }\n function decodeACSuccessive(component2, pos) {\n let k2 = spectralStart, r, s;\n if (frame == null)\n throw "Frame not defined";\n if (!eobrun) {\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s) {\n if (s != 1)\n throw "bad jpeg";\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n s = bitsData >>> --bitsCount & 1 ? p1 : m1;\n } else {\n if (r != 15) {\n eobrun = 1 << r;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n }\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n } else {\n if (--r < 0)\n break;\n }\n k2++;\n }\n if (s)\n component2.blocks[pos + k2] = s;\n k2++;\n }\n }\n if (eobrun) {\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n }\n k2++;\n }\n eobrun--;\n }\n }\n let decodeFn;\n if (frame.progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n let marker, mcuExpected, i2, j2, k, n, mcusPerLine, mcusPerRow, x, y;\n let lastflushidx = 0;\n const flushBits = () => {\n const component2 = components.find((e) => e.componentId == 1);\n while (component2.blocks[lastflushidx + 1] !== void 0) {\n const blk = component2.blocks[lastflushidx];\n if (blk != 0) {\n const v = blk < 0 ? 1 - (blk & 1) : blk & 1;\n const it = this.gengen.next(v);\n if (it.done) {\n throw it.value;\n }\n }\n lastflushidx++;\n }\n };\n if (components.length == 1) {\n mcusPerLine = components[0].blocksPerLine;\n mcusPerRow = components[0].blocksPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n decodeFn(components[i2], (y * components[i2].blocksPerLineForMcu + x) * 64);\n }\n }\n flushBits();\n }\n } else {\n mcusPerLine = frame.mcusPerLine;\n mcusPerRow = frame.mcusPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n for (j2 = 0; j2 < components[i2].v; j2++) {\n for (k = 0; k < components[i2].h; k++) {\n decodeFn(components[i2], ((y * components[i2].v + j2) * components[i2].blocksPerLineForMcu + x * components[i2].h + k) * 64);\n }\n }\n }\n }\n flushBits();\n }\n }\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n return offset2 - startOffset;\n };\n function readUint16() {\n const value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n const length = readUint16();\n const array = data.subarray(offset, offset + length - 2);\n offset += array.length;\n return array;\n }\n __privateSet(this, __raw, data);\n __privateSet(this, _jfif, null);\n __privateSet(this, _APPn, []);\n __privateSet(this, _qts, []);\n __privateSet(this, _frame, null);\n __privateSet(this, _tail, null);\n let markerHi, markerLo, i, j, resetInterval, component;\n const huffmanTablesAC = [];\n const huffmanTablesDC = [];\n while (1) {\n if (offset >= data.length) {\n if (tolerant)\n break;\n throw "unexpected EOF";\n }\n markerHi = data[offset++];\n markerLo = data[offset++];\n if (markerHi == 255) {\n if (markerLo == 224) {\n __privateSet(this, _jfif, readDataBlock());\n }\n if (markerLo > 224 && markerLo < 240 || markerLo == 254) {\n __privateGet(this, _APPn).push({\n "app": markerLo,\n "data": readDataBlock()\n });\n }\n if (markerLo == 219) {\n __privateGet(this, _qts).push(readDataBlock());\n }\n if (markerLo >= 192 && markerLo <= 194) {\n if (__privateGet(this, _frame))\n throw "Only single frame JPEGs supported";\n readUint16();\n __privateSet(this, _frame, {\n "extended": markerLo === 193,\n "progressive": markerLo === 194,\n "precision": data[offset++],\n "scanLines": readUint16(),\n "samplesPerLine": readUint16(),\n "components": [],\n "componentIds": {},\n "maxH": 1,\n "maxV": 1\n });\n if (__privateGet(this, _frame).scanLines * __privateGet(this, _frame).samplesPerLine > this.maxPixels)\n throw "Image is too big.";\n var componentsCount = data[offset++], componentId;\n let maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n const h = data[offset + 1] >> 4;\n const v = data[offset + 1] & 15;\n if (maxH < h)\n maxH = h;\n if (maxV < v)\n maxV = v;\n const qId = data[offset + 2];\n const l = __privateGet(this, _frame).components.push({\n componentId,\n h,\n v,\n quantizationTable: qId\n });\n __privateGet(this, _frame).componentIds[componentId] = l - 1;\n offset += 3;\n }\n __privateGet(this, _frame).maxH = maxH;\n __privateGet(this, _frame).maxV = maxV;\n const mcusPerLine = Math.ceil(__privateGet(this, _frame).samplesPerLine / 8 / maxH);\n const mcusPerColumn = Math.ceil(__privateGet(this, _frame).scanLines / 8 / maxV);\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n component = __privateGet(this, _frame).components[i];\n const blocksPerLine = Math.ceil(Math.ceil(__privateGet(this, _frame).samplesPerLine / 8) * component.h / maxH);\n const blocksPerColumn = Math.ceil(Math.ceil(__privateGet(this, _frame).scanLines / 8) * component.v / maxV);\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n __privateGet(this, _frame).components[i] = {\n ...component,\n blocks: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu * 64),\n blocksDC: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu),\n blocksPerLine,\n blocksPerColumn,\n blocksPerLineForMcu,\n blocksPerColumnForMcu\n };\n }\n __privateGet(this, _frame).mcusPerLine = mcusPerLine;\n __privateGet(this, _frame).mcusPerColumn = mcusPerColumn;\n }\n if (markerLo == 196) {\n const huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++)\n codeLengthSum += codeLengths[j] = data[offset];\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n const v = _buildHuffmanTable(codeLengths, huffmanValues);\n if (huffmanTableSpec >> 4 === 0)\n huffmanTablesDC[huffmanTableSpec & 15] = v;\n else\n huffmanTablesAC[huffmanTableSpec & 15] = v;\n }\n }\n if (markerLo == 221) {\n resetInterval = readUint16();\n }\n if (markerLo == 218) {\n if (__privateGet(this, _frame) == null)\n throw "SOS before SOF";\n readUint16();\n const selectorsCount = data[offset++];\n const components = [];\n for (i = 0; i < selectorsCount; i++) {\n const componentIndex = __privateGet(this, _frame).componentIds[data[offset++]];\n component = __privateGet(this, _frame).components[componentIndex];\n const tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n const spectralStart = data[offset++];\n const spectralEnd = data[offset++];\n const successiveApproximation = data[offset++];\n const processed = decodeScan(data, offset, __privateGet(this, _frame), components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15);\n offset += processed;\n }\n if (markerLo == 217) {\n break;\n }\n } else {\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n }\n while (data[offset] != 255 && offset < data.length) {\n offset++;\n }\n if (data[offset] != 255) {\n throw "bad jpeg ";\n }\n }\n }\n if (!__privateGet(this, _frame))\n throw "bad jpeg";\n if (offset < data.length)\n __privateSet(this, _tail, data.subarray(offset));\n return this;\n }\n pack() {\n let byteout;\n let bytenew;\n let bytepos;\n let poslast;\n let outpos;\n let byte;\n function writeByte(value) {\n let t;\n byteout[outpos++] = value;\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function writeBlock(block) {\n let t;\n if (outpos + block.length > poslast) {\n t = new Uint8Array(byteout.length * 2 + block.length);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n byteout.set(block, outpos);\n outpos += block.length;\n }\n function writeAPP0(self2) {\n writeWord(65504);\n if (!__privateGet(self2, _jfif)) {\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n } else {\n writeWord(__privateGet(self2, _jfif).length + 2);\n writeBlock(__privateGet(self2, _jfif));\n }\n }\n function writeDQT(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _qts).length; i2++) {\n writeWord(65499);\n writeWord(__privateGet(self2, _qts)[i2].length + 2);\n writeBlock(__privateGet(self2, _qts)[i2]);\n }\n }\n function writeAPPn(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _APPn).length; i2++) {\n writeWord(65280 | __privateGet(self2, _APPn)[i2].app);\n writeWord(__privateGet(self2, _APPn)[i2].data.length + 2);\n writeBlock(__privateGet(self2, _APPn)[i2].data);\n }\n }\n function writeSOF0(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65472);\n writeWord(8 + __privateGet(self2, _frame).components.length * 3);\n writeByte(__privateGet(self2, _frame).precision);\n writeWord(__privateGet(self2, _frame).scanLines);\n writeWord(__privateGet(self2, _frame).samplesPerLine);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n writeByte(c2.h << 4 | c2.v);\n writeByte(c2.quantizationTable);\n }\n }\n function writeDHT(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65476);\n writeWord(31);\n writeByte(0);\n for (let i2 = 0; i2 < 16; i2++) {\n writeByte(std_dc_luminance_nrcodes[i2 + 1]);\n }\n for (let j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values[j]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(16);\n for (let k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes[k + 1]);\n }\n for (let l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values[l]);\n }\n if (__privateGet(self2, _frame).components.length != 1) {\n writeWord(65476);\n writeWord(31);\n writeByte(1);\n for (let m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes[m + 1]);\n }\n for (let n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values[n]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(17);\n for (let o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes[o + 1]);\n }\n for (let p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values[p]);\n }\n }\n }\n function writeSOS(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65498);\n writeWord(6 + __privateGet(self2, _frame).components.length * 2);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n if (i2 === 0) {\n writeByte(0);\n } else {\n writeByte(17);\n }\n }\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(comp, POS, DC, HTDC, HTAC) {\n let pos, posval, t;\n if (bytepos === 0)\n bytenew = 0;\n if (!("blocks" in comp))\n throw "Blocks not parsed";\n const Diff = comp.blocksDC[POS >> 6] - DC;\n DC = comp.blocksDC[POS >> 6];\n if (Diff === 0) {\n posval = HTDC[0][1];\n bytenew <<= posval;\n bytenew += HTDC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n } else {\n pos = 32767 + Diff;\n posval = HTDC[category[pos]][1];\n bytenew <<= posval;\n bytenew += HTDC[category[pos]][0];\n bytepos += posval;\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n let end0pos = 63;\n for (; end0pos > 0 && comp.blocks[POS + end0pos] === 0; end0pos--) {\n }\n if (end0pos === 0) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n return DC;\n }\n let i2 = 1;\n let lng;\n while (i2 <= end0pos) {\n const startpos = i2;\n for (; comp.blocks[POS + i2] === 0 && i2 <= end0pos; ++i2) {\n }\n let nrzeroes = i2 - startpos;\n if (nrzeroes >= 16) {\n lng = nrzeroes >> 4;\n for (let nrmarker = 1; nrmarker <= lng; ++nrmarker) {\n posval = HTAC[240][1];\n bytenew <<= posval;\n bytenew += HTAC[240][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + comp.blocks[POS + i2];\n posval = HTAC[(nrzeroes << 4) + category[pos]][1];\n bytenew <<= posval;\n bytenew += HTAC[(nrzeroes << 4) + category[pos]][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n i2++;\n }\n if (end0pos != 63) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n return DC;\n }\n byteout = new Uint8Array(65536);\n poslast = 65536 - 128;\n outpos = 0;\n bytenew = 0;\n bytepos = 0;\n writeWord(65496);\n writeAPP0(this);\n writeAPPn(this);\n writeDQT(this);\n writeSOF0(this);\n writeDHT(this);\n writeSOS(this);\n bytenew = 0;\n bytepos = 0;\n if (!__privateGet(this, _frame))\n throw "Frame not ready";\n let c, mcuRow, mcuCol, blockRow, blockCol, mcu, i, v, h;\n const DCdiff = [];\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n DCdiff.push(0);\n }\n for (mcu = 0; mcu < __privateGet(this, _frame).mcusPerLine * __privateGet(this, _frame).mcusPerColumn; mcu++) {\n mcuRow = mcu / __privateGet(this, _frame).mcusPerLine | 0;\n mcuCol = mcu % __privateGet(this, _frame).mcusPerLine;\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n c = __privateGet(this, _frame).components[i];\n for (v = 0; v < c.v; v++) {\n blockRow = mcuRow * c.v + v;\n for (h = 0; h < c.h; h++) {\n blockCol = mcuCol * c.h + h;\n if (i === 0) {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], YDC_HT, YAC_HT);\n } else {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], UVDC_HT, UVAC_HT);\n }\n }\n }\n }\n }\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n }\n if (bytepos > 0) {\n bytenew <<= 8 - bytepos;\n bytenew += (1 << 8 - bytepos) - 1;\n byteout[outpos++] = 255 & bytenew;\n }\n writeWord(65497);\n if (__privateGet(this, _tail))\n writeBlock(__privateGet(this, _tail));\n return byteout.slice(0, outpos);\n }\n};\n__raw = new WeakMap();\n_jfif = new WeakMap();\n_APPn = new WeakMap();\n_qts = new WeakMap();\n_frame = new WeakMap();\n_tail = new WeakMap();\n__f5write = new WeakSet();\n_f5write_fn = function(coeff, data, k) {\n const coeff_count = coeff.length;\n let _changed = 0, _embedded = 0, _examined = 0, _thrown = 0, shuffled_index = 0, i, n, ii;\n let next_bit_to_embed = 0, byte_to_embed = data.length, data_idx = 0, available_bits_to_embed = 0;\n n = (1 << k) - 1;\n byte_to_embed = k - 1;\n byte_to_embed ^= 0;\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed = 3;\n for (ii = 0; ii < coeff_count; ii++) {\n shuffled_index = ii;\n if (shuffled_index % 64 === 0 || coeff[shuffled_index] === 0)\n continue;\n const cc = coeff[shuffled_index];\n _examined++;\n if (cc > 0 && (cc & 1) != next_bit_to_embed) {\n coeff[shuffled_index]--;\n _changed++;\n } else if (cc < 0 && (cc & 1) == next_bit_to_embed) {\n coeff[shuffled_index]++;\n _changed++;\n }\n if (coeff[shuffled_index] !== 0) {\n _embedded++;\n if (available_bits_to_embed === 0) {\n if (k != 1 || data_idx >= data.length)\n break;\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n } else {\n _thrown++;\n }\n }\n if (k == 1 && _embedded < data.length * 8)\n throw "capacity exceeded " + _embedded / 8 + " " + data.length;\n if (k != 1) {\n let is_last_byte = false, k_bits_to_embed = 0;\n while (!is_last_byte || available_bits_to_embed !== 0 && is_last_byte) {\n k_bits_to_embed = 0;\n for (i = 0; i < k; i++) {\n if (available_bits_to_embed === 0) {\n if (data_idx >= data.length) {\n is_last_byte = true;\n break;\n }\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n k_bits_to_embed |= next_bit_to_embed << i;\n }\n const code_word = [];\n let ci = null;\n for (i = 0; i < n; i++) {\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n code_word.push(ci);\n }\n _examined += n;\n while (true) {\n var vhash = 0, extracted_bit;\n for (i = 0; i < code_word.length; i++) {\n if (coeff[code_word[i]] > 0) {\n extracted_bit = coeff[code_word[i]] & 1;\n } else {\n extracted_bit = 1 - (coeff[code_word[i]] & 1);\n }\n if (extracted_bit == 1)\n vhash ^= i + 1;\n }\n i = vhash ^ k_bits_to_embed;\n if (!i) {\n _embedded += k;\n break;\n }\n i--;\n coeff[code_word[i]] += coeff[code_word[i]] < 0 ? 1 : -1;\n _changed++;\n if (coeff[code_word[i]] === 0) {\n _thrown++;\n code_word.splice(i, 1);\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n _examined++;\n code_word.push(ci);\n } else {\n _embedded += k;\n break;\n }\n }\n }\n }\n return {\n "k": k,\n "embedded": _embedded / 8,\n "examined": _examined,\n "changed": _changed,\n "thrown": _thrown,\n "efficiency": (_embedded / _changed).toFixed(2)\n };\n};\n\n// src/jpg.ts\nvar key = import_buffer4.Buffer.from("CUNNYCUNNYCUNNY");\nvar f5inst = new f5stego(key);\nvar inject2 = async (b, links) => {\n if (b.size / 20 < links.join(" ").length)\n throw "Image too small to embed.";\n const arr = new Uint8Array(new Uint8Array(await b.arrayBuffer()));\n const buff = f5inst.embed(arr, new TextEncoder().encode(links.join(" ")), 1);\n return import_buffer4.Buffer.from(buff);\n};\nvar has_embed2 = (b) => {\n try {\n const res = f5inst.extract(b);\n if (!res)\n return false;\n if (res.length > 1024)\n return false;\n const str = import_buffer4.Buffer.from(res).toString();\n if (!str.match(/^[a-zA-Z0-9:/.\\-_ ]+$/))\n return false;\n return str;\n } catch {\n return false;\n }\n};\nvar extract2 = (b, ex) => {\n return decodeCoom3Payload(import_buffer4.Buffer.from(ex));\n};\nvar jpg_default = {\n match: (fn) => !!fn.match(/\\.jpe?g$/),\n has_embed: has_embed2,\n extract: extract2,\n inject: inject2\n};\n\n// src/thirdeye.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer5 = __toESM(require_buffer(), 1);\nvar import_jpeg_js = __toESM(require_jpeg_js(), 1);\n\n// src/phash.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar median = (data) => {\n const mdarr = data.slice(0);\n mdarr.sort((a, b) => a - b);\n if (mdarr.length % 2 === 0)\n return (mdarr[mdarr.length / 2 - 1] + mdarr[mdarr.length / 2]) / 2;\n return mdarr[Math.floor(mdarr.length / 2)];\n};\nvar translate_blocks_to_bits = function(blocks, pixels_per_block) {\n const half_block_value = pixels_per_block * 256 * 3 / 2;\n const bandsize = blocks.length / 4;\n for (let i = 0; i < 4; i++) {\n const m = median(blocks.slice(i * bandsize, (i + 1) * bandsize));\n for (let j = i * bandsize; j < (i + 1) * bandsize; j++) {\n const v = blocks[j];\n blocks[j] = Number(v > m || Math.abs(v - m) < 1 && m > half_block_value);\n }\n }\n};\nvar bits_to_hexhash = (bitsArray) => {\n const hex = [];\n for (let i = 0; i < bitsArray.length; i += 4) {\n const nibble = bitsArray.slice(i, i + 4);\n hex.push(parseInt(nibble.join(""), 2).toString(16));\n }\n return hex.join("");\n};\nvar bmvbhash_even = (data, bits) => {\n const blocksize_x = Math.floor(data.width / bits);\n const blocksize_y = Math.floor(data.height / bits);\n const result = [];\n for (let y = 0; y < bits; y++) {\n for (let x = 0; x < bits; x++) {\n let total = 0;\n for (let iy = 0; iy < blocksize_y; iy++) {\n for (let ix = 0; ix < blocksize_x; ix++) {\n const cx = x * blocksize_x + ix;\n const cy = y * blocksize_y + iy;\n const ii = (cy * data.width + cx) * 4;\n const alpha = data.data[ii + 3];\n if (alpha === 0) {\n total += 765;\n } else {\n total += data.data[ii] + data.data[ii + 1] + data.data[ii + 2];\n }\n }\n }\n result.push(total);\n }\n }\n translate_blocks_to_bits(result, blocksize_x * blocksize_y);\n return bits_to_hexhash(result);\n};\n\n// src/thirdeye.ts\nvar csettings3;\nsettings.subscribe((b) => {\n csettings3 = b;\n});\nvar gelquirk = (prefix) => (a) => {\n let base = a.post || a.data || a;\n if (!Array.isArray(base))\n return [];\n base = base.filter((e) => e.file_url);\n return base.map((e) => ({\n full_url: e.file_url,\n preview_url: e.preview_url || e.preview_url,\n source: e.source,\n ext: e.file_ext || e.file_url.substr(e.file_url.lastIndexOf(".") + 1),\n page: `${prefix}${e.id || e.parent_id}`,\n tags: (e.tag_string || (e.tags && (Array.isArray(e.tags) && (typeof e.tags[0] == "string" ? e.tags.join(" ") : e.tags.map((e2) => e2.name_en).join(" "))) || e.tags) || "").split(" ")\n })) || [];\n};\nvar experimentalApi = false;\nvar black = /* @__PURE__ */ new Set();\nvar phashEn = false;\nvar mindist = 5;\nsettings.subscribe((s) => {\n if (!s)\n return;\n experimentalApi = s.expte;\n boorus = s.rsources.map((e) => ({\n ...e,\n quirks: gelquirk(e.view)\n }));\n black = new Set(s.blacklist);\n mindist = s.mdist || 5;\n phashEn = s.phash;\n});\nvar boorus = [];\nvar unlockQueue = Promise.resolve();\nvar cache = {};\nvar findFileFrom = async (b, hex, abort) => {\n try {\n if (b.domain in cache && hex in cache[b.domain])\n return cache[b.domain][hex];\n const res = await ifetch(`https://${b.domain}${b.endpoint}${hex}`);\n const txt = await res.text();\n const pres = JSON.parse(txt);\n const tran = b.quirks(pres).filter((e) => !e.tags.some((e2) => black.has(e2)));\n if (!(b.domain in cache))\n cache[b.domain] = {};\n cache[b.domain][hex] = tran;\n return tran;\n } catch (e) {\n const error = e;\n if (!error.message.includes("Unexpected end of JSON input"))\n console.error(e);\n return [];\n }\n};\nvar extract3 = async (b, fn) => {\n if (!csettings3)\n throw new Error("Settings uninit");\n let result;\n let booru;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n if (result.length) {\n booru = e.name;\n break;\n }\n }\n let cachedFile;\n const prev = result[0].preview_url;\n const full = result[0].full_url;\n return [{\n source: result[0].source,\n page: {\n title: booru,\n url: result[0].page\n },\n filename: fn.substring(0, 33) + result[0].ext,\n thumbnail: csettings3.hotlink ? prev || full : import_buffer5.Buffer.from(await (await ifetch(prev || full)).arrayBuffer()),\n data: csettings3.hotlink ? full || prev : { url: full || prev }\n }];\n};\nvar phash = (b) => {\n const res = (0, import_jpeg_js.decode)(b);\n return bmvbhash_even(res, 8);\n};\nvar hammingDist = (a, b) => {\n let res = BigInt("0x" + a) ^ BigInt("0x" + b);\n let acc = 0;\n while (res != 0n) {\n acc += Number(res & 1n);\n res >>= 1n;\n }\n return acc;\n};\nvar has_embed3 = async (b, fn, prevlink) => {\n if (import_buffer5.Buffer.from(fn, "hex").equals(b))\n return false;\n let result = void 0;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n result = result.filter((e2) => e2.full_url || e2.preview_url);\n if (result.length)\n break;\n }\n if (result && result.length != 0 && phashEn && prevlink) {\n if (!result[0].preview_url)\n return true;\n const getHash = async (l) => {\n const ogreq = await ifetch(l);\n const origPreview = await ogreq.arrayBuffer();\n return phash(import_buffer5.Buffer.from(origPreview));\n };\n const [orighash, tehash] = await Promise.all([\n getHash(prevlink),\n getHash(result[0].preview_url)\n ]);\n const d = hammingDist(orighash, tehash);\n console.log(d, prevlink);\n return d > mindist;\n }\n return result && result.length != 0;\n};\nvar thirdeye_default = {\n skip: true,\n extract: extract3,\n has_embed: has_embed3,\n match: (fn) => !!fn.match(/^[0-9a-f]{32}\\.....?/)\n};\n\n// src/pomf.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer6 = __toESM(require_buffer(), 1);\nvar sources = [\n { host: "Catbox", prefix: "files.catbox.moe/" },\n { host: "Litter", prefix: "litter.catbox.moe/" },\n { host: "Zzzz", prefix: "z.zz.fo/" }\n];\nvar csettings4;\nsettings.subscribe((b) => {\n csettings4 = b;\n});\nvar getExt = (fn) => {\n const isB64 = fn.match(/^((?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=))?\\.(gif|jpe?g|png|webm)/);\n const isExt = fn.match(/\\[.*=(.*)\\]/);\n let ext;\n let source;\n try {\n if (isB64) {\n ext = atob(isB64[1]);\n } else if (isExt) {\n ext = decodeURIComponent(isExt[1]);\n if (ext.startsWith("https://"))\n ext = ext.slice("https://".length);\n for (const cs of sources)\n if (ext.startsWith(cs.prefix)) {\n source = cs.prefix;\n ext = ext.slice(cs.prefix.length);\n break;\n }\n }\n } catch {\n }\n return { ext, source };\n};\nvar extract4 = async (b, fn) => {\n if (!csettings4)\n throw new Error("Settings uninit");\n const { ext, source } = getExt(fn);\n let rsource;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n await getHeaders("https://" + cs.prefix + ext);\n rsource = "https://" + cs.prefix + ext;\n break;\n } catch {\n }\n }\n return [{\n filename: ext,\n data: csettings4.hotlink ? rsource : { url: rsource },\n thumbnail: import_buffer6.Buffer.from(hasembed_default)\n }];\n};\nvar has_embed4 = async (b, fn) => {\n const { ext, source } = getExt(fn);\n if (!ext)\n return false;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n const e = await getHeaders("https://" + cs.prefix + ext);\n return true;\n } catch {\n }\n }\n return false;\n};\nvar pomf_default = {\n skip: true,\n extract: extract4,\n has_embed: has_embed4,\n match: (fn) => !!getExt(fn)\n};\n\n// src/processor.worker.ts\nconsole.log("Worker started");\nvar pendinggens = {};\nvar proxyAsyncGen = (id) => {\n return {\n next(arg) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n return(v) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n throw() {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n [Symbol.asyncIterator]() {\n return this;\n }\n };\n};\nvar deserializeMessage = (m) => {\n if (m instanceof MessagePort)\n return m;\n if (typeof m == "object" && m.type == "AsyncGenerator") {\n return proxyAsyncGen(m.id);\n }\n if (typeof m == "object") {\n for (const p in m) {\n m[p] = deserializeMessage(m[p]);\n }\n }\n return m;\n};\nvar processors = [thirdeye_default, pomf_default, pngv3_default, jpg_default];\nvar processImage = async (srcs, fn, hex, prevurl) => {\n const ret = await Promise.all(processors.filter((e) => e.match(fn)).map(async (proc) => {\n if (proc.skip) {\n const md5 = Buffer2.from(hex, "base64");\n if (await proc.has_embed(md5, fn, prevurl) === true) {\n return [await proc.extract(md5, fn), true];\n }\n return;\n }\n let succ = false;\n let cumul;\n do {\n try {\n const n = await srcs.next();\n if (n.done)\n return;\n const iter = streamRemote(n.value);\n if (!iter)\n return;\n cumul = Buffer2.alloc(0);\n let found;\n let chunk = { done: true };\n do {\n const { value, done } = await iter.next(typeof found === "boolean");\n if (done) {\n chunk = { done: true };\n } else {\n chunk = { done: false, value };\n cumul = Buffer2.concat([cumul, value]);\n const v = await proc.has_embed(cumul);\n if (typeof v == "string") {\n return [await proc.extract(cumul, v), false];\n }\n found = v;\n }\n } while (found !== false && !chunk.done);\n succ = true;\n await iter.next(true);\n if (found !== true) {\n return;\n }\n return [await proc.extract(cumul), false];\n } catch (err) {\n console.log(err);\n }\n } while (!succ);\n }));\n return ret.filter((e) => e).map((e) => e);\n};\nvar init2 = false;\n(async () => {\n onmessage = async (msg) => {\n const des = deserializeMessage(msg.data);\n switch (des.type) {\n case "ipc": {\n setupPort(des.port);\n const nset = await localLoad("settingsv2", initial_settings);\n settings.set(nset);\n break;\n }\n case "cmd": {\n switch (des.fun) {\n case "processImage": {\n if (!init2) {\n await new Promise((_) => {\n settings.subscribe((v) => {\n if (v)\n _();\n });\n });\n init2 = true;\n }\n const res = await processImage(des.args[0], des.args[1], des.args[2], des.args[3]);\n const tr = [];\n for (const ef of res) {\n for (const e of ef[0]) {\n if (e.thumbnail && Buffer2.isBuffer(e.thumbnail) || typeof e.thumbnail != "string")\n tr.push(e.thumbnail.buffer);\n if (Buffer2.isBuffer(e.data) || typeof e.data != "string" && !("url" in e.data))\n tr.push(e.data.buffer);\n }\n }\n postMessage({\n type: "reply",\n id: des.id,\n res\n }, [...new Set(tr)]);\n }\n }\n break;\n }\n case "ag": {\n const cb = pendinggens[des.id].shift();\n if (cb) {\n cb(des.res);\n }\n break;\n }\n }\n };\n})();\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n'); } // src/main.ts @@ -21901,11 +21899,15 @@ Use the WebExtension version of PEE if you want to use b4k!`); if (!el && e.classList.contains("postContainer")) el = [e]; if (el) { - appState.update((v) => { - v.processing += el.length; - return v; - }); - [...el].map((el2) => processPost(el2)); + for (const e2 of el) { + if (processed.has(e2.id)) + continue; + appState.update((v) => { + v.processing += 1; + return v; + }); + processPost(e2); + } } }); }); @@ -22040,11 +22042,13 @@ Use the WebExtension version of PEE if you want to use b4k!`); const postContainer = document.getElementById("pc" + post.substring(post.indexOf(".") + 1)); const fn = qp.getFilename(postContainer); if (fn) { - appState.update((v) => { - v.processing++; - return v; - }); - processPost(postContainer); + if (!processed.has(postContainer.id)) { + appState.update((v) => { + v.processing++; + return v; + }); + processPost(postContainer); + } } } }); diff --git a/firefox/manifest.json b/firefox/manifest.json index 6ddbef2..7c1547b 100644 --- a/firefox/manifest.json +++ b/firefox/manifest.json @@ -7,7 +7,7 @@ }, "name": "PngExtraEmbedder", "description": "Discover embedded files on 4chan and archives!", - "version": "0.313", + "version": "0.314", "icons": { "64": "1449696017588.png" }, diff --git a/firefox_update.json b/firefox_update.json index cc72f6c..acc827f 100644 --- a/firefox_update.json +++ b/firefox_update.json @@ -1 +1 @@ -{"addons":{"{34ac4994-07f2-44d2-8599-682516a6c6a6}":{"updates":[{"version":"0.313","update_link":"https://git.coom.tech/fuckjannies/lolipiss/raw/branch/%E4%B8%AD%E5%87%BA%E3%81%97/pngextraembedder-0.313.xpi"}]}}} \ No newline at end of file +{"addons":{"{34ac4994-07f2-44d2-8599-682516a6c6a6}":{"updates":[{"version":"0.314","update_link":"https://git.coom.tech/fuckjannies/lolipiss/raw/branch/%E4%B8%AD%E5%87%BA%E3%81%97/pngextraembedder-0.314.xpi"}]}}} \ No newline at end of file diff --git a/main.meta.js b/main.meta.js index cb743d1..7c24872 100644 --- a/main.meta.js +++ b/main.meta.js @@ -1,7 +1,7 @@ // ==UserScript== // @name PNGExtraEmbed // @namespace https://coom.tech/ -// @version 0.313 +// @version 0.314 // @description uhh // @author You // @match https://boards.4channel.org/* diff --git a/main.user.js b/main.user.js index e9862dc..ab5f01b 100644 --- a/main.user.js +++ b/main.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name PNGExtraEmbed // @namespace https://coom.tech/ -// @version 0.313 +// @version 0.314 // @description uhh // @author You // @match https://boards.4channel.org/* @@ -109,7 +109,7 @@ const _DOMParser = DOMParser; var define_BUILD_VERSION_default; var init_define_BUILD_VERSION = __esm({ ""() { - define_BUILD_VERSION_default = [0, 313]; + define_BUILD_VERSION_default = [0, 314]; } }); @@ -11854,7 +11854,8 @@ const _DOMParser = DOMParser; let toread = 8; let len = 0; while (toread--) { - len = len * 2 + (yield); + const b2 = yield; + len = len * 2 + b2; } const b = yield; toread += 8; @@ -11863,12 +11864,13 @@ const _DOMParser = DOMParser; else len *= 2; while (toread--) { - len = len * 2 + (yield); + const b2 = yield; + len = len * 2 + b2; } - let rlen = revbyte(len, b ? 23 : 16); + const rlen = revbyte(len, b ? 23 : 16); len = rlen; - if (len >= 256) - len = rlen = 256; + if (len > 256) + throw new Error("Too big for Smash"); len *= 8; const chunks = []; const bw = new BitstreamWriter({ @@ -12338,15 +12340,9 @@ const _DOMParser = DOMParser; } const coeff = new Int16Array(comp.blocks.length); coeff.set(comp.blocks); - let pos = -1, extrBit = 0; - const cCount = coeff.length - 1; - let k = 0; - const out = new Uint8Array(coeff.length / 8 | 0); - let extrByte = 0; - let outPos = 0; - let bitsAvail = 0; - let code = 0; - let hash2 = 0; + let pos = -1, extrBit = 0, cCount = coeff.length - 1; + let n, k = 0; + let out = new Uint8Array(coeff.length / 8 | 0), extrByte = 0, outPos = 0, bitsAvail = 0, code = 0, hash2 = 0; while (bitsAvail < 4) { pos++; if (coeff[pos] === 0) { @@ -12360,7 +12356,7 @@ const _DOMParser = DOMParser; bitsAvail++; } k = (k & 15) + 1; - const n = (1 << k) - 1; + n = (1 << k) - 1; bitsAvail = 0; if (k == 1) { while (pos < cCount) { @@ -12421,9 +12417,7 @@ const _DOMParser = DOMParser; parse(data, tolerant = false) { let offset = 0; function _buildHuffmanTable(nrcodes, values) { - let codevalue = 0; - let pos_in_table = 0; - const HT = new Uint16Array(65536); + let codevalue = 0, pos_in_table = 0, HT = new Uint16Array(65536); for (let k = 0; k < 16; k++) { for (let j2 = 0; j2 < nrcodes[k]; j2++) { for (let i2 = codevalue << 15 - k, cntTo = codevalue + 1 << 15 - k; i2 < cntTo; i2++) { @@ -12437,10 +12431,8 @@ const _DOMParser = DOMParser; return HT; } const decodeScan = (data2, offset2, frame, components, resetInterval2, spectralStart, spectralEnd, successivePrev, successive) => { - const startOffset = offset2; - let bitsData = 0, bitsCount = 0, eobrun = 0; - const p1 = 1 << successive; - const m1 = -1 << successive; + let startOffset = offset2, bitsData = 0, bitsCount = 0, eobrun = 0, p1 = 1 << successive, m1 = -1 << successive; + const prevpos = 0; const decodeBaseline = (component2, pos) => { while (bitsCount < 16) { bitsData = (bitsData << 8) + (data2[offset2] | 0); @@ -12497,18 +12489,9 @@ const _DOMParser = DOMParser; offset2++; bitsCount += 8; } - if (component2.componentId == 1) { - component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1; - if (component2.blocks[pos + k2] < 1 << s - 1) - component2.blocks[pos + k2] += (-1 << s) + 1; - if (this.gengen && component2.blocks[pos + k2] != 0) { - const v = component2.blocks[pos + k2] < 0 ? 1 - (component2.blocks[pos + k2] & 1) : component2.blocks[pos + k2] & 1; - const it = this.gengen.next(v); - if (it.done) { - throw it.value; - } - } - } + component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1; + if (component2.blocks[pos + k2] < 1 << s - 1) + component2.blocks[pos + k2] += (-1 << s) + 1; bitsCount -= s; k2++; } @@ -12696,6 +12679,21 @@ const _DOMParser = DOMParser; decodeFn = decodeBaseline; } let marker, mcuExpected, i2, j2, k, n, mcusPerLine, mcusPerRow, x, y; + let lastflushidx = 0; + const flushBits = () => { + const component2 = components.find((e) => e.componentId == 1); + while (component2.blocks[lastflushidx + 1] !== void 0) { + const blk = component2.blocks[lastflushidx]; + if (blk != 0) { + const v = blk < 0 ? 1 - (blk & 1) : blk & 1; + const it = this.gengen.next(v); + if (it.done) { + throw it.value; + } + } + lastflushidx++; + } + }; if (components.length == 1) { mcusPerLine = components[0].blocksPerLine; mcusPerRow = components[0].blocksPerColumn; @@ -12730,6 +12728,7 @@ const _DOMParser = DOMParser; decodeFn(components[i2], (y * components[i2].blocksPerLineForMcu + x) * 64); } } + flushBits(); } } else { mcusPerLine = frame.mcusPerLine; @@ -12771,6 +12770,7 @@ const _DOMParser = DOMParser; } } } + flushBits(); } } offset2 -= bitsCount / 8 | 0; @@ -12836,8 +12836,7 @@ const _DOMParser = DOMParser; }); if (__privateGet(this, _frame).scanLines * __privateGet(this, _frame).samplesPerLine > this.maxPixels) throw "Image is too big."; - const componentsCount = data[offset++]; - let componentId; + var componentsCount = data[offset++], componentId; let maxH = 0, maxV = 0; for (i = 0; i < componentsCount; i++) { componentId = data[offset]; @@ -13293,9 +13292,9 @@ const _DOMParser = DOMParser; __f5write = new WeakSet(); _f5write_fn = function(coeff, data, k) { const coeff_count = coeff.length; - let _changed = 0, _embedded = 0, _examined = 0, _thrown = 0, shuffled_index = 0, i, ii; + let _changed = 0, _embedded = 0, _examined = 0, _thrown = 0, shuffled_index = 0, i, n, ii; let next_bit_to_embed = 0, byte_to_embed = data.length, data_idx = 0, available_bits_to_embed = 0; - const n = (1 << k) - 1; + n = (1 << k) - 1; byte_to_embed = k - 1; byte_to_embed ^= 0; next_bit_to_embed = byte_to_embed & 1; @@ -13366,8 +13365,7 @@ const _DOMParser = DOMParser; } _examined += n; while (true) { - let vhash = 0; - let extracted_bit; + var vhash = 0, extracted_bit; for (i = 0; i < code_word.length; i++) { if (coeff[code_word[i]] > 0) { extracted_bit = coeff[code_word[i]] & 1; @@ -21425,7 +21423,7 @@ const _DOMParser = DOMParser; // src/processor.worker.ts function Worker2() { - return inlineWorker('var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key2 of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key2) && key2 !== except)\n __defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));\nvar __decorateClass = (decorators, target, key2, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key2) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key2, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key2, result);\n return result;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError("Cannot " + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, "read from private field");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError("Cannot add the same private member more than once");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, "write to private field");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, "access private method");\n return method;\n};\nvar __toBinary = /* @__PURE__ */ (() => {\n var table = new Uint8Array(128);\n for (var i = 0; i < 64; i++)\n table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i;\n return (base64) => {\n var n = base64.length, bytes = new Uint8Array((n - (base64[n - 1] == "=") - (base64[n - 2] == "=")) * 3 / 4 | 0);\n for (var i2 = 0, j = 0; i2 < n; ) {\n var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)];\n var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)];\n bytes[j++] = c0 << 2 | c1 >> 4;\n bytes[j++] = c1 << 4 | c2 >> 2;\n bytes[j++] = c2 << 6 | c3;\n }\n return bytes;\n };\n})();\n\n// \nvar init_define_BUILD_VERSION = __esm({\n ""() {\n }\n});\n\n// node_modules/base64-js/index.js\nvar require_base64_js = __commonJS({\n "node_modules/base64-js/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.byteLength = byteLength;\n exports.toByteArray = toByteArray;\n exports.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array;\n var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";\n for (i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n var i;\n var len;\n revLookup["-".charCodeAt(0)] = 62;\n revLookup["_".charCodeAt(0)] = 63;\n function getLens(b64) {\n var len2 = b64.length;\n if (len2 % 4 > 0) {\n throw new Error("Invalid string. Length must be a multiple of 4");\n }\n var validLen = b64.indexOf("=");\n if (validLen === -1)\n validLen = len2;\n var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n }\n function byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0;\n var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i2;\n for (i2 = 0; i2 < len2; i2 += 4) {\n tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)];\n arr[curByte++] = tmp >> 16 & 255;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n return arr;\n }\n function tripletToBase64(num) {\n return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];\n }\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n for (var i2 = start; i2 < end; i2 += 3) {\n tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255);\n output.push(tripletToBase64(tmp));\n }\n return output.join("");\n }\n function fromByteArray(uint8) {\n var tmp;\n var len2 = uint8.length;\n var extraBytes = len2 % 3;\n var parts = [];\n var maxChunkLength = 16383;\n for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) {\n parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength));\n }\n if (extraBytes === 1) {\n tmp = uint8[len2 - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "==");\n } else if (extraBytes === 2) {\n tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "=");\n }\n return parts.join("");\n }\n }\n});\n\n// node_modules/ieee754/index.js\nvar require_ieee754 = __commonJS({\n "node_modules/ieee754/index.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.read = function(buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n exports.write = function(buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {\n }\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {\n }\n buffer[offset + i - d] |= s * 128;\n };\n }\n});\n\n// node_modules/buffer/index.js\nvar require_buffer = __commonJS({\n "node_modules/buffer/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var base64 = require_base64_js();\n var ieee7542 = require_ieee754();\n var customInspectSymbol = typeof Symbol === "function" && typeof Symbol["for"] === "function" ? Symbol["for"]("nodejs.util.inspect.custom") : null;\n exports.Buffer = Buffer13;\n exports.SlowBuffer = SlowBuffer;\n exports.INSPECT_MAX_BYTES = 50;\n var K_MAX_LENGTH = 2147483647;\n exports.kMaxLength = K_MAX_LENGTH;\n Buffer13.TYPED_ARRAY_SUPPORT = typedArraySupport();\n if (!Buffer13.TYPED_ARRAY_SUPPORT && typeof console !== "undefined" && typeof console.error === "function") {\n console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");\n }\n function typedArraySupport() {\n try {\n const arr = new Uint8Array(1);\n const proto = { foo: function() {\n return 42;\n } };\n Object.setPrototypeOf(proto, Uint8Array.prototype);\n Object.setPrototypeOf(arr, proto);\n return arr.foo() === 42;\n } catch (e) {\n return false;\n }\n }\n Object.defineProperty(Buffer13.prototype, "parent", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.buffer;\n }\n });\n Object.defineProperty(Buffer13.prototype, "offset", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.byteOffset;\n }\n });\n function createBuffer(length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError(\'The value "\' + length + \'" is invalid for option "size"\');\n }\n const buf2 = new Uint8Array(length);\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function Buffer13(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n if (typeof encodingOrOffset === "string") {\n throw new TypeError(\'The "string" argument must be of type string. Received type number\');\n }\n return allocUnsafe(arg);\n }\n return from(arg, encodingOrOffset, length);\n }\n Buffer13.poolSize = 8192;\n function from(value, encodingOrOffset, length) {\n if (typeof value === "string") {\n return fromString(value, encodingOrOffset);\n }\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value);\n }\n if (value == null) {\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof SharedArrayBuffer !== "undefined" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof value === "number") {\n throw new TypeError(\'The "value" argument must not be of type number. Received type number\');\n }\n const valueOf = value.valueOf && value.valueOf();\n if (valueOf != null && valueOf !== value) {\n return Buffer13.from(valueOf, encodingOrOffset, length);\n }\n const b = fromObject(value);\n if (b)\n return b;\n if (typeof Symbol !== "undefined" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === "function") {\n return Buffer13.from(value[Symbol.toPrimitive]("string"), encodingOrOffset, length);\n }\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n Buffer13.from = function(value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n };\n Object.setPrototypeOf(Buffer13.prototype, Uint8Array.prototype);\n Object.setPrototypeOf(Buffer13, Uint8Array);\n function assertSize(size) {\n if (typeof size !== "number") {\n throw new TypeError(\'"size" argument must be of type number\');\n } else if (size < 0) {\n throw new RangeError(\'The value "\' + size + \'" is invalid for option "size"\');\n }\n }\n function alloc(size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(size);\n }\n if (fill !== void 0) {\n return typeof encoding === "string" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n return createBuffer(size);\n }\n Buffer13.alloc = function(size, fill, encoding) {\n return alloc(size, fill, encoding);\n };\n function allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n }\n Buffer13.allocUnsafe = function(size) {\n return allocUnsafe(size);\n };\n Buffer13.allocUnsafeSlow = function(size) {\n return allocUnsafe(size);\n };\n function fromString(string, encoding) {\n if (typeof encoding !== "string" || encoding === "") {\n encoding = "utf8";\n }\n if (!Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n const length = byteLength(string, encoding) | 0;\n let buf2 = createBuffer(length);\n const actual = buf2.write(string, encoding);\n if (actual !== length) {\n buf2 = buf2.slice(0, actual);\n }\n return buf2;\n }\n function fromArrayLike(array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0;\n const buf2 = createBuffer(length);\n for (let i = 0; i < length; i += 1) {\n buf2[i] = array[i] & 255;\n }\n return buf2;\n }\n function fromArrayView(arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView);\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);\n }\n return fromArrayLike(arrayView);\n }\n function fromArrayBuffer(array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError(\'"offset" is outside of buffer bounds\');\n }\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError(\'"length" is outside of buffer bounds\');\n }\n let buf2;\n if (byteOffset === void 0 && length === void 0) {\n buf2 = new Uint8Array(array);\n } else if (length === void 0) {\n buf2 = new Uint8Array(array, byteOffset);\n } else {\n buf2 = new Uint8Array(array, byteOffset, length);\n }\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function fromObject(obj) {\n if (Buffer13.isBuffer(obj)) {\n const len = checked(obj.length) | 0;\n const buf2 = createBuffer(len);\n if (buf2.length === 0) {\n return buf2;\n }\n obj.copy(buf2, 0, 0, len);\n return buf2;\n }\n if (obj.length !== void 0) {\n if (typeof obj.length !== "number" || numberIsNaN(obj.length)) {\n return createBuffer(0);\n }\n return fromArrayLike(obj);\n }\n if (obj.type === "Buffer" && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n }\n function checked(length) {\n if (length >= K_MAX_LENGTH) {\n throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + K_MAX_LENGTH.toString(16) + " bytes");\n }\n return length | 0;\n }\n function SlowBuffer(length) {\n if (+length != length) {\n length = 0;\n }\n return Buffer13.alloc(+length);\n }\n Buffer13.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer13.prototype;\n };\n Buffer13.compare = function compare(a, b) {\n if (isInstance(a, Uint8Array))\n a = Buffer13.from(a, a.offset, a.byteLength);\n if (isInstance(b, Uint8Array))\n b = Buffer13.from(b, b.offset, b.byteLength);\n if (!Buffer13.isBuffer(a) || !Buffer13.isBuffer(b)) {\n throw new TypeError(\'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array\');\n }\n if (a === b)\n return 0;\n let x = a.length;\n let y = b.length;\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n Buffer13.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "latin1":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return true;\n default:\n return false;\n }\n };\n Buffer13.concat = function concat(list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n }\n if (list.length === 0) {\n return Buffer13.alloc(0);\n }\n let i;\n if (length === void 0) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n const buffer = Buffer13.allocUnsafe(length);\n let pos = 0;\n for (i = 0; i < list.length; ++i) {\n let buf2 = list[i];\n if (isInstance(buf2, Uint8Array)) {\n if (pos + buf2.length > buffer.length) {\n if (!Buffer13.isBuffer(buf2))\n buf2 = Buffer13.from(buf2);\n buf2.copy(buffer, pos);\n } else {\n Uint8Array.prototype.set.call(buffer, buf2, pos);\n }\n } else if (!Buffer13.isBuffer(buf2)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n } else {\n buf2.copy(buffer, pos);\n }\n pos += buf2.length;\n }\n return buffer;\n };\n function byteLength(string, encoding) {\n if (Buffer13.isBuffer(string)) {\n return string.length;\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength;\n }\n if (typeof string !== "string") {\n throw new TypeError(\'The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type \' + typeof string);\n }\n const len = string.length;\n const mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0)\n return 0;\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "ascii":\n case "latin1":\n case "binary":\n return len;\n case "utf8":\n case "utf-8":\n return utf8ToBytes(string).length;\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return len * 2;\n case "hex":\n return len >>> 1;\n case "base64":\n return base64ToBytes(string).length;\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length;\n }\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.byteLength = byteLength;\n function slowToString(encoding, start, end) {\n let loweredCase = false;\n if (start === void 0 || start < 0) {\n start = 0;\n }\n if (start > this.length) {\n return "";\n }\n if (end === void 0 || end > this.length) {\n end = this.length;\n }\n if (end <= 0) {\n return "";\n }\n end >>>= 0;\n start >>>= 0;\n if (end <= start) {\n return "";\n }\n if (!encoding)\n encoding = "utf8";\n while (true) {\n switch (encoding) {\n case "hex":\n return hexSlice(this, start, end);\n case "utf8":\n case "utf-8":\n return utf8Slice(this, start, end);\n case "ascii":\n return asciiSlice(this, start, end);\n case "latin1":\n case "binary":\n return latin1Slice(this, start, end);\n case "base64":\n return base64Slice(this, start, end);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return utf16leSlice(this, start, end);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = (encoding + "").toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.prototype._isBuffer = true;\n function swap(b, n, m) {\n const i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n Buffer13.prototype.swap16 = function swap16() {\n const len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 16-bits");\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this;\n };\n Buffer13.prototype.swap32 = function swap32() {\n const len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 32-bits");\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this;\n };\n Buffer13.prototype.swap64 = function swap64() {\n const len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 64-bits");\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this;\n };\n Buffer13.prototype.toString = function toString() {\n const length = this.length;\n if (length === 0)\n return "";\n if (arguments.length === 0)\n return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n };\n Buffer13.prototype.toLocaleString = Buffer13.prototype.toString;\n Buffer13.prototype.equals = function equals(b) {\n if (!Buffer13.isBuffer(b))\n throw new TypeError("Argument must be a Buffer");\n if (this === b)\n return true;\n return Buffer13.compare(this, b) === 0;\n };\n Buffer13.prototype.inspect = function inspect() {\n let str = "";\n const max = exports.INSPECT_MAX_BYTES;\n str = this.toString("hex", 0, max).replace(/(.{2})/g, "$1 ").trim();\n if (this.length > max)\n str += " ... ";\n return "";\n };\n if (customInspectSymbol) {\n Buffer13.prototype[customInspectSymbol] = Buffer13.prototype.inspect;\n }\n Buffer13.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer13.from(target, target.offset, target.byteLength);\n }\n if (!Buffer13.isBuffer(target)) {\n throw new TypeError(\'The "target" argument must be one of type Buffer or Uint8Array. Received type \' + typeof target);\n }\n if (start === void 0) {\n start = 0;\n }\n if (end === void 0) {\n end = target ? target.length : 0;\n }\n if (thisStart === void 0) {\n thisStart = 0;\n }\n if (thisEnd === void 0) {\n thisEnd = this.length;\n }\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError("out of range index");\n }\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n if (thisStart >= thisEnd) {\n return -1;\n }\n if (start >= end) {\n return 1;\n }\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target)\n return 0;\n let x = thisEnd - thisStart;\n let y = end - start;\n const len = Math.min(x, y);\n const thisCopy = this.slice(thisStart, thisEnd);\n const targetCopy = target.slice(start, end);\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n if (buffer.length === 0)\n return -1;\n if (typeof byteOffset === "string") {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 2147483647) {\n byteOffset = 2147483647;\n } else if (byteOffset < -2147483648) {\n byteOffset = -2147483648;\n }\n byteOffset = +byteOffset;\n if (numberIsNaN(byteOffset)) {\n byteOffset = dir ? 0 : buffer.length - 1;\n }\n if (byteOffset < 0)\n byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir)\n return -1;\n else\n byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir)\n byteOffset = 0;\n else\n return -1;\n }\n if (typeof val === "string") {\n val = Buffer13.from(val, encoding);\n }\n if (Buffer13.isBuffer(val)) {\n if (val.length === 0) {\n return -1;\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === "number") {\n val = val & 255;\n if (typeof Uint8Array.prototype.indexOf === "function") {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n throw new TypeError("val must be string, number or Buffer");\n }\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n let indexSize = 1;\n let arrLength = arr.length;\n let valLength = val.length;\n if (encoding !== void 0) {\n encoding = String(encoding).toLowerCase();\n if (encoding === "ucs2" || encoding === "ucs-2" || encoding === "utf16le" || encoding === "utf-16le") {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n function read2(buf2, i2) {\n if (indexSize === 1) {\n return buf2[i2];\n } else {\n return buf2.readUInt16BE(i2 * indexSize);\n }\n }\n let i;\n if (dir) {\n let foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read2(arr, i) === read2(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1)\n foundIndex = i;\n if (i - foundIndex + 1 === valLength)\n return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1)\n i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength)\n byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n let found = true;\n for (let j = 0; j < valLength; j++) {\n if (read2(arr, i + j) !== read2(val, j)) {\n found = false;\n break;\n }\n }\n if (found)\n return i;\n }\n }\n return -1;\n }\n Buffer13.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n Buffer13.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n Buffer13.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n function hexWrite(buf2, string, offset, length) {\n offset = Number(offset) || 0;\n const remaining = buf2.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n const strLen = string.length;\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n let i;\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16);\n if (numberIsNaN(parsed))\n return i;\n buf2[offset + i] = parsed;\n }\n return i;\n }\n function utf8Write(buf2, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n function asciiWrite(buf2, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf2, offset, length);\n }\n function base64Write(buf2, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf2, offset, length);\n }\n function ucs2Write(buf2, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n Buffer13.prototype.write = function write2(string, offset, length, encoding) {\n if (offset === void 0) {\n encoding = "utf8";\n length = this.length;\n offset = 0;\n } else if (length === void 0 && typeof offset === "string") {\n encoding = offset;\n length = this.length;\n offset = 0;\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n if (isFinite(length)) {\n length = length >>> 0;\n if (encoding === void 0)\n encoding = "utf8";\n } else {\n encoding = length;\n length = void 0;\n }\n } else {\n throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");\n }\n const remaining = this.length - offset;\n if (length === void 0 || length > remaining)\n length = remaining;\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError("Attempt to write outside buffer bounds");\n }\n if (!encoding)\n encoding = "utf8";\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "hex":\n return hexWrite(this, string, offset, length);\n case "utf8":\n case "utf-8":\n return utf8Write(this, string, offset, length);\n case "ascii":\n case "latin1":\n case "binary":\n return asciiWrite(this, string, offset, length);\n case "base64":\n return base64Write(this, string, offset, length);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return ucs2Write(this, string, offset, length);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n Buffer13.prototype.toJSON = function toJSON() {\n return {\n type: "Buffer",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n function base64Slice(buf2, start, end) {\n if (start === 0 && end === buf2.length) {\n return base64.fromByteArray(buf2);\n } else {\n return base64.fromByteArray(buf2.slice(start, end));\n }\n }\n function utf8Slice(buf2, start, end) {\n end = Math.min(buf2.length, end);\n const res = [];\n let i = start;\n while (i < end) {\n const firstByte = buf2[i];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf2[i + 1];\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n fourthByte = buf2[i + 3];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n res.push(codePoint);\n i += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n }\n var MAX_ARGUMENTS_LENGTH = 4096;\n function decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints);\n }\n let res = "";\n let i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n }\n function asciiSlice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i] & 127);\n }\n return ret;\n }\n function latin1Slice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i]);\n }\n return ret;\n }\n function hexSlice(buf2, start, end) {\n const len = buf2.length;\n if (!start || start < 0)\n start = 0;\n if (!end || end < 0 || end > len)\n end = len;\n let out = "";\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf2[i]];\n }\n return out;\n }\n function utf16leSlice(buf2, start, end) {\n const bytes = buf2.slice(start, end);\n let res = "";\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res;\n }\n Buffer13.prototype.slice = function slice(start, end) {\n const len = this.length;\n start = ~~start;\n end = end === void 0 ? len : ~~end;\n if (start < 0) {\n start += len;\n if (start < 0)\n start = 0;\n } else if (start > len) {\n start = len;\n }\n if (end < 0) {\n end += len;\n if (end < 0)\n end = 0;\n } else if (end > len) {\n end = len;\n }\n if (end < start)\n end = start;\n const newBuf = this.subarray(start, end);\n Object.setPrototypeOf(newBuf, Buffer13.prototype);\n return newBuf;\n };\n function checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0)\n throw new RangeError("offset is not uint");\n if (offset + ext > length)\n throw new RangeError("Trying to access beyond buffer length");\n }\n Buffer13.prototype.readUintLE = Buffer13.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUintBE = Buffer13.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n checkOffset(offset, byteLength2, this.length);\n }\n let val = this[offset + --byteLength2];\n let mul = 1;\n while (byteLength2 > 0 && (mul *= 256)) {\n val += this[offset + --byteLength2] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUint8 = Buffer13.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n return this[offset];\n };\n Buffer13.prototype.readUint16LE = Buffer13.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n };\n Buffer13.prototype.readUint16BE = Buffer13.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n };\n Buffer13.prototype.readUint32LE = Buffer13.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;\n };\n Buffer13.prototype.readUint32BE = Buffer13.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n Buffer13.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const lo = first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24;\n const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last * 2 ** 24;\n return BigInt(lo) + (BigInt(hi) << BigInt(32));\n });\n Buffer13.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const hi = first * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last;\n return (BigInt(hi) << BigInt(32)) + BigInt(lo);\n });\n Buffer13.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let i = byteLength2;\n let mul = 1;\n let val = this[offset + --i];\n while (i > 0 && (mul *= 256)) {\n val += this[offset + --i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readInt8 = function readInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n if (!(this[offset] & 128))\n return this[offset];\n return (255 - this[offset] + 1) * -1;\n };\n Buffer13.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset] | this[offset + 1] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset + 1] | this[offset] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n Buffer13.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n Buffer13.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last << 24);\n return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24);\n });\n Buffer13.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = (first << 24) + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last);\n });\n Buffer13.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, true, 23, 4);\n };\n Buffer13.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, false, 23, 4);\n };\n Buffer13.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, true, 52, 8);\n };\n Buffer13.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, false, 52, 8);\n };\n function checkInt(buf2, value, offset, ext, max, min) {\n if (!Buffer13.isBuffer(buf2))\n throw new TypeError(\'"buffer" argument must be a Buffer instance\');\n if (value > max || value < min)\n throw new RangeError(\'"value" argument is out of bounds\');\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n }\n Buffer13.prototype.writeUintLE = Buffer13.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let mul = 1;\n let i = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUintBE = Buffer13.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUint8 = Buffer13.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 255, 0);\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeUint16LE = Buffer13.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeUint16BE = Buffer13.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeUint32LE = Buffer13.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeUint32BE = Buffer13.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n function wrtBigUInt64LE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n return offset;\n }\n function wrtBigUInt64BE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset + 7] = lo;\n lo = lo >> 8;\n buf2[offset + 6] = lo;\n lo = lo >> 8;\n buf2[offset + 5] = lo;\n lo = lo >> 8;\n buf2[offset + 4] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset + 3] = hi;\n hi = hi >> 8;\n buf2[offset + 2] = hi;\n hi = hi >> 8;\n buf2[offset + 1] = hi;\n hi = hi >> 8;\n buf2[offset] = hi;\n return offset + 8;\n }\n Buffer13.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = 0;\n let mul = 1;\n let sub = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n let sub = 0;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 127, -128);\n if (value < 0)\n value = 255 + value + 1;\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n return offset + 4;\n };\n Buffer13.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n if (value < 0)\n value = 4294967295 + value + 1;\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n Buffer13.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n function checkIEEE754(buf2, value, offset, ext, max, min) {\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n if (offset < 0)\n throw new RangeError("Index out of range");\n }\n function writeFloat(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 4, 34028234663852886e22, -34028234663852886e22);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n Buffer13.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n function writeDouble(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 8, 17976931348623157e292, -17976931348623157e292);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n Buffer13.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n };\n Buffer13.prototype.copy = function copy(target, targetStart, start, end) {\n if (!Buffer13.isBuffer(target))\n throw new TypeError("argument should be a Buffer");\n if (!start)\n start = 0;\n if (!end && end !== 0)\n end = this.length;\n if (targetStart >= target.length)\n targetStart = target.length;\n if (!targetStart)\n targetStart = 0;\n if (end > 0 && end < start)\n end = start;\n if (end === start)\n return 0;\n if (target.length === 0 || this.length === 0)\n return 0;\n if (targetStart < 0) {\n throw new RangeError("targetStart out of bounds");\n }\n if (start < 0 || start >= this.length)\n throw new RangeError("Index out of range");\n if (end < 0)\n throw new RangeError("sourceEnd out of bounds");\n if (end > this.length)\n end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n const len = end - start;\n if (this === target && typeof Uint8Array.prototype.copyWithin === "function") {\n this.copyWithin(targetStart, start, end);\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart);\n }\n return len;\n };\n Buffer13.prototype.fill = function fill(val, start, end, encoding) {\n if (typeof val === "string") {\n if (typeof start === "string") {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === "string") {\n encoding = end;\n end = this.length;\n }\n if (encoding !== void 0 && typeof encoding !== "string") {\n throw new TypeError("encoding must be a string");\n }\n if (typeof encoding === "string" && !Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0);\n if (encoding === "utf8" && code < 128 || encoding === "latin1") {\n val = code;\n }\n }\n } else if (typeof val === "number") {\n val = val & 255;\n } else if (typeof val === "boolean") {\n val = Number(val);\n }\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError("Out of range index");\n }\n if (end <= start) {\n return this;\n }\n start = start >>> 0;\n end = end === void 0 ? this.length : end >>> 0;\n if (!val)\n val = 0;\n let i;\n if (typeof val === "number") {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n const bytes = Buffer13.isBuffer(val) ? val : Buffer13.from(val, encoding);\n const len = bytes.length;\n if (len === 0) {\n throw new TypeError(\'The value "\' + val + \'" is invalid for argument "value"\');\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n return this;\n };\n var errors = {};\n function E(sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor() {\n super();\n Object.defineProperty(this, "message", {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n });\n this.name = `${this.name} [${sym}]`;\n this.stack;\n delete this.name;\n }\n get code() {\n return sym;\n }\n set code(value) {\n Object.defineProperty(this, "code", {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n });\n }\n toString() {\n return `${this.name} [${sym}]: ${this.message}`;\n }\n };\n }\n E("ERR_BUFFER_OUT_OF_BOUNDS", function(name) {\n if (name) {\n return `${name} is outside of buffer bounds`;\n }\n return "Attempt to access memory outside buffer bounds";\n }, RangeError);\n E("ERR_INVALID_ARG_TYPE", function(name, actual) {\n return `The "${name}" argument must be of type number. Received type ${typeof actual}`;\n }, TypeError);\n E("ERR_OUT_OF_RANGE", function(str, range, input) {\n let msg = `The value of "${str}" is out of range.`;\n let received = input;\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input));\n } else if (typeof input === "bigint") {\n received = String(input);\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received);\n }\n received += "n";\n }\n msg += ` It must be ${range}. Received ${received}`;\n return msg;\n }, RangeError);\n function addNumericalSeparator(val) {\n let res = "";\n let i = val.length;\n const start = val[0] === "-" ? 1 : 0;\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`;\n }\n return `${val.slice(0, i)}${res}`;\n }\n function checkBounds(buf2, offset, byteLength2) {\n validateNumber(offset, "offset");\n if (buf2[offset] === void 0 || buf2[offset + byteLength2] === void 0) {\n boundsError(offset, buf2.length - (byteLength2 + 1));\n }\n }\n function checkIntBI(value, min, max, buf2, offset, byteLength2) {\n if (value > max || value < min) {\n const n = typeof min === "bigint" ? "n" : "";\n let range;\n if (byteLength2 > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength2 + 1) * 8}${n}`;\n } else {\n range = `>= -(2${n} ** ${(byteLength2 + 1) * 8 - 1}${n}) and < 2 ** ${(byteLength2 + 1) * 8 - 1}${n}`;\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`;\n }\n throw new errors.ERR_OUT_OF_RANGE("value", range, value);\n }\n checkBounds(buf2, offset, byteLength2);\n }\n function validateNumber(value, name) {\n if (typeof value !== "number") {\n throw new errors.ERR_INVALID_ARG_TYPE(name, "number", value);\n }\n }\n function boundsError(value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type);\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", "an integer", value);\n }\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n }\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", `>= ${type ? 1 : 0} and <= ${length}`, value);\n }\n var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n function base64clean(str) {\n str = str.split("=")[0];\n str = str.trim().replace(INVALID_BASE64_RE, "");\n if (str.length < 2)\n return "";\n while (str.length % 4 !== 0) {\n str = str + "=";\n }\n return str;\n }\n function utf8ToBytes(string, units) {\n units = units || Infinity;\n let codePoint;\n const length = string.length;\n let leadSurrogate = null;\n const bytes = [];\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n if (codePoint > 55295 && codePoint < 57344) {\n if (!leadSurrogate) {\n if (codePoint > 56319) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n }\n leadSurrogate = codePoint;\n continue;\n }\n if (codePoint < 56320) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n }\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n }\n leadSurrogate = null;\n if (codePoint < 128) {\n if ((units -= 1) < 0)\n break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0)\n break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0)\n break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0)\n break;\n bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else {\n throw new Error("Invalid code point");\n }\n }\n return bytes;\n }\n function asciiToBytes(str) {\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n byteArray.push(str.charCodeAt(i) & 255);\n }\n return byteArray;\n }\n function utf16leToBytes(str, units) {\n let c, hi, lo;\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0)\n break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n return byteArray;\n }\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n function blitBuffer(src, dst, offset, length) {\n let i;\n for (i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length)\n break;\n dst[i + offset] = src[i];\n }\n return i;\n }\n function isInstance(obj, type) {\n return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n }\n function numberIsNaN(obj) {\n return obj !== obj;\n }\n var hexSliceLookupTable = function() {\n const alphabet = "0123456789abcdef";\n const table = new Array(256);\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16;\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n return table;\n }();\n function defineBigIntMethod(fn) {\n return typeof BigInt === "undefined" ? BufferBigIntNotDefined : fn;\n }\n function BufferBigIntNotDefined() {\n throw new Error("BigInt not supported");\n }\n }\n});\n\n// esbuild.inject.js\nvar Buffer2;\nvar init_esbuild_inject = __esm({\n "esbuild.inject.js"() {\n "use strict";\n Buffer2 = require_buffer().Buffer;\n }\n});\n\n// node_modules/crc-32/crc32.js\nvar require_crc32 = __commonJS({\n "node_modules/crc-32/crc32.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var CRC32;\n (function(factory) {\n if (typeof DO_NOT_EXPORT_CRC === "undefined") {\n if (typeof exports === "object") {\n factory(exports);\n } else if (typeof define === "function" && define.amd) {\n define(function() {\n var module2 = {};\n factory(module2);\n return module2;\n });\n } else {\n factory(CRC32 = {});\n }\n } else {\n factory(CRC32 = {});\n }\n })(function(CRC322) {\n CRC322.version = "1.2.0";\n function signed_crc_table() {\n var c = 0, table = new Array(256);\n for (var n = 0; n != 256; ++n) {\n c = n;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n table[n] = c;\n }\n return typeof Int32Array !== "undefined" ? new Int32Array(table) : table;\n }\n var T = signed_crc_table();\n function crc32_bstr(bstr, seed) {\n var C = seed ^ -1, L = bstr.length - 1;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n }\n if (i === L)\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i)) & 255];\n return C ^ -1;\n }\n function crc32_buf(buf2, seed) {\n if (buf2.length > 1e4)\n return crc32_buf_8(buf2, seed);\n var C = seed ^ -1, L = buf2.length - 3;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 3)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_buf_8(buf2, seed) {\n var C = seed ^ -1, L = buf2.length - 7;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 7)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_str(str, seed) {\n var C = seed ^ -1;\n for (var i = 0, L = str.length, c, d; i < L; ) {\n c = str.charCodeAt(i++);\n if (c < 128) {\n C = C >>> 8 ^ T[(C ^ c) & 255];\n } else if (c < 2048) {\n C = C >>> 8 ^ T[(C ^ (192 | c >> 6 & 31)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n } else if (c >= 55296 && c < 57344) {\n c = (c & 1023) + 64;\n d = str.charCodeAt(i++) & 1023;\n C = C >>> 8 ^ T[(C ^ (240 | c >> 8 & 7)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 2 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d >> 6 & 15 | (c & 3) << 4)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d & 63)) & 255];\n } else {\n C = C >>> 8 ^ T[(C ^ (224 | c >> 12 & 15)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 6 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n }\n }\n return C ^ -1;\n }\n CRC322.table = T;\n CRC322.bstr = crc32_bstr;\n CRC322.buf = crc32_buf;\n CRC322.str = crc32_str;\n });\n }\n});\n\n// node_modules/events/events.js\nvar require_events = __commonJS({\n "node_modules/events/events.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var R = typeof Reflect === "object" ? Reflect : null;\n var ReflectApply = R && typeof R.apply === "function" ? R.apply : function ReflectApply2(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n };\n var ReflectOwnKeys;\n if (R && typeof R.ownKeys === "function") {\n ReflectOwnKeys = R.ownKeys;\n } else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n } else {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target);\n };\n }\n function ProcessEmitWarning(warning) {\n if (console && console.warn)\n console.warn(warning);\n }\n var NumberIsNaN = Number.isNaN || function NumberIsNaN2(value) {\n return value !== value;\n };\n function EventEmitter() {\n EventEmitter.init.call(this);\n }\n module.exports = EventEmitter;\n module.exports.once = once;\n EventEmitter.EventEmitter = EventEmitter;\n EventEmitter.prototype._events = void 0;\n EventEmitter.prototype._eventsCount = 0;\n EventEmitter.prototype._maxListeners = void 0;\n var defaultMaxListeners = 10;\n function checkListener(listener) {\n if (typeof listener !== "function") {\n throw new TypeError(\'The "listener" argument must be of type Function. Received type \' + typeof listener);\n }\n }\n Object.defineProperty(EventEmitter, "defaultMaxListeners", {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== "number" || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError(\'The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received \' + arg + ".");\n }\n defaultMaxListeners = arg;\n }\n });\n EventEmitter.init = function() {\n if (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n }\n this._maxListeners = this._maxListeners || void 0;\n };\n EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== "number" || n < 0 || NumberIsNaN(n)) {\n throw new RangeError(\'The value of "n" is out of range. It must be a non-negative number. Received \' + n + ".");\n }\n this._maxListeners = n;\n return this;\n };\n function _getMaxListeners(that) {\n if (that._maxListeners === void 0)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n }\n EventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n };\n EventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++)\n args.push(arguments[i]);\n var doError = type === "error";\n var events = this._events;\n if (events !== void 0)\n doError = doError && events.error === void 0;\n else if (!doError)\n return false;\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n throw er;\n }\n var err = new Error("Unhandled error." + (er ? " (" + er.message + ")" : ""));\n err.context = er;\n throw err;\n }\n var handler = events[type];\n if (handler === void 0)\n return false;\n if (typeof handler === "function") {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n return true;\n };\n function _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n if (events === void 0) {\n events = target._events = /* @__PURE__ */ Object.create(null);\n target._eventsCount = 0;\n } else {\n if (events.newListener !== void 0) {\n target.emit("newListener", type, listener.listener ? listener.listener : listener);\n events = target._events;\n }\n existing = events[type];\n }\n if (existing === void 0) {\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === "function") {\n existing = events[type] = prepend ? [listener, existing] : [existing, listener];\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n var w = new Error("Possible EventEmitter memory leak detected. " + existing.length + " " + String(type) + " listeners added. Use emitter.setMaxListeners() to increase limit");\n w.name = "MaxListenersExceededWarning";\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n return target;\n }\n EventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n };\n EventEmitter.prototype.on = EventEmitter.prototype.addListener;\n EventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n function onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n }\n function _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: void 0, target, type, listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n }\n EventEmitter.prototype.once = function once2(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === void 0)\n return this;\n list = events[type];\n if (list === void 0)\n return this;\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit("removeListener", type, list.listener || listener);\n }\n } else if (typeof list !== "function") {\n position = -1;\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n if (position < 0)\n return this;\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n if (list.length === 1)\n events[type] = list[0];\n if (events.removeListener !== void 0)\n this.emit("removeListener", type, originalListener || listener);\n }\n return this;\n };\n EventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === void 0)\n return this;\n if (events.removeListener === void 0) {\n if (arguments.length === 0) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== void 0) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key2;\n for (i = 0; i < keys.length; ++i) {\n key2 = keys[i];\n if (key2 === "removeListener")\n continue;\n this.removeAllListeners(key2);\n }\n this.removeAllListeners("removeListener");\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n listeners = events[type];\n if (typeof listeners === "function") {\n this.removeListener(type, listeners);\n } else if (listeners !== void 0) {\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n return this;\n };\n function _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === void 0)\n return [];\n var evlistener = events[type];\n if (evlistener === void 0)\n return [];\n if (typeof evlistener === "function")\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n }\n EventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n };\n EventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n };\n EventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === "function") {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n };\n EventEmitter.prototype.listenerCount = listenerCount;\n function listenerCount(type) {\n var events = this._events;\n if (events !== void 0) {\n var evlistener = events[type];\n if (typeof evlistener === "function") {\n return 1;\n } else if (evlistener !== void 0) {\n return evlistener.length;\n }\n }\n return 0;\n }\n EventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n };\n function arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n }\n function spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n }\n function unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n }\n function once(emitter, name) {\n return new Promise(function(resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n function resolver() {\n if (typeof emitter.removeListener === "function") {\n emitter.removeListener("error", errorListener);\n }\n resolve([].slice.call(arguments));\n }\n ;\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== "error") {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n }\n function addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === "function") {\n eventTargetAgnosticAddListener(emitter, "error", handler, flags);\n }\n }\n function eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === "function") {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === "function") {\n emitter.addEventListener(name, function wrapListener(arg) {\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError(\'The "emitter" argument must be of type EventEmitter. Received type \' + typeof emitter);\n }\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/stream-browser.js\nvar require_stream_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/stream-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = require_events().EventEmitter;\n }\n});\n\n// (disabled):node_modules/util/util.js\nvar require_util = __commonJS({\n "(disabled):node_modules/util/util.js"() {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/buffer_list.js\nvar require_buffer_list = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/buffer_list.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly)\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n }\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function(key2) {\n _defineProperty(target, key2, source[key2]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key2) {\n Object.defineProperty(target, key2, Object.getOwnPropertyDescriptor(source, key2));\n });\n }\n }\n return target;\n }\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n var _require = require_buffer();\n var Buffer13 = _require.Buffer;\n var _require2 = require_util();\n var inspect = _require2.inspect;\n var custom = inspect && inspect.custom || "inspect";\n function copyBuffer(src, target, offset) {\n Buffer13.prototype.copy.call(src, target, offset);\n }\n module.exports = /* @__PURE__ */ function() {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: "push",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0)\n this.tail.next = entry;\n else\n this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: "unshift",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0)\n this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: "shift",\n value: function shift() {\n if (this.length === 0)\n return;\n var ret = this.head.data;\n if (this.length === 1)\n this.head = this.tail = null;\n else\n this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: "clear",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: "join",\n value: function join(s) {\n if (this.length === 0)\n return "";\n var p = this.head;\n var ret = "" + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }\n return ret;\n }\n }, {\n key: "concat",\n value: function concat(n) {\n if (this.length === 0)\n return Buffer13.alloc(0);\n var ret = Buffer13.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n }, {\n key: "consume",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n ret = this.shift();\n } else {\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: "first",\n value: function first() {\n return this.head.data;\n }\n }, {\n key: "_getString",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length)\n ret += str;\n else\n ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: "_getBuffer",\n value: function _getBuffer(n) {\n var ret = Buffer13.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf2 = p.data;\n var nb = n > buf2.length ? buf2.length : n;\n buf2.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf2.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf2.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n depth: 0,\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n }();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/destroy.js\nvar require_destroy = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/destroy.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function(err2) {\n if (!cb && err2) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n }\n function emitErrorAndCloseNT(self2, err) {\n emitErrorNT(self2, err);\n emitCloseNT(self2);\n }\n function emitCloseNT(self2) {\n if (self2._writableState && !self2._writableState.emitClose)\n return;\n if (self2._readableState && !self2._readableState.emitClose)\n return;\n self2.emit("close");\n }\n function undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n }\n function emitErrorNT(self2, err) {\n self2.emit("error", err);\n }\n function errorOrDestroy(stream, err) {\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy)\n stream.destroy(err);\n else\n stream.emit("error", err);\n }\n module.exports = {\n destroy,\n undestroy,\n errorOrDestroy\n };\n }\n});\n\n// node_modules/readable-stream/errors-browser.js\nvar require_errors_browser = __commonJS({\n "node_modules/readable-stream/errors-browser.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n }\n var codes = {};\n function createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === "string") {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /* @__PURE__ */ function(_Base) {\n _inheritsLoose(NodeError2, _Base);\n function NodeError2(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n return NodeError2;\n }(Base);\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n }\n function oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function(i) {\n return String(i);\n });\n if (len > 2) {\n return "one of ".concat(thing, " ").concat(expected.slice(0, len - 1).join(", "), ", or ") + expected[len - 1];\n } else if (len === 2) {\n return "one of ".concat(thing, " ").concat(expected[0], " or ").concat(expected[1]);\n } else {\n return "of ".concat(thing, " ").concat(expected[0]);\n }\n } else {\n return "of ".concat(thing, " ").concat(String(expected));\n }\n }\n function startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n }\n function endsWith(str, search, this_len) {\n if (this_len === void 0 || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n }\n function includes(str, search, start) {\n if (typeof start !== "number") {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n }\n createErrorType("ERR_INVALID_OPT_VALUE", function(name, value) {\n return \'The value "\' + value + \'" is invalid for option "\' + name + \'"\';\n }, TypeError);\n createErrorType("ERR_INVALID_ARG_TYPE", function(name, expected, actual) {\n var determiner;\n if (typeof expected === "string" && startsWith(expected, "not ")) {\n determiner = "must not be";\n expected = expected.replace(/^not /, "");\n } else {\n determiner = "must be";\n }\n var msg;\n if (endsWith(name, " argument")) {\n msg = "The ".concat(name, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n } else {\n var type = includes(name, ".") ? "property" : "argument";\n msg = \'The "\'.concat(name, \'" \').concat(type, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n }\n msg += ". Received type ".concat(typeof actual);\n return msg;\n }, TypeError);\n createErrorType("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF");\n createErrorType("ERR_METHOD_NOT_IMPLEMENTED", function(name) {\n return "The " + name + " method is not implemented";\n });\n createErrorType("ERR_STREAM_PREMATURE_CLOSE", "Premature close");\n createErrorType("ERR_STREAM_DESTROYED", function(name) {\n return "Cannot call " + name + " after a stream was destroyed";\n });\n createErrorType("ERR_MULTIPLE_CALLBACK", "Callback called multiple times");\n createErrorType("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable");\n createErrorType("ERR_STREAM_WRITE_AFTER_END", "write after end");\n createErrorType("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError);\n createErrorType("ERR_UNKNOWN_ENCODING", function(arg) {\n return "Unknown encoding: " + arg;\n }, TypeError);\n createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event");\n module.exports.codes = codes;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/state.js\nvar require_state = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/state.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_INVALID_OPT_VALUE = require_errors_browser().codes.ERR_INVALID_OPT_VALUE;\n function highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n }\n function getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : "highWaterMark";\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n return state.objectMode ? 16 : 16 * 1024;\n }\n module.exports = {\n getHighWaterMark\n };\n }\n});\n\n// node_modules/inherits/inherits_browser.js\nvar require_inherits_browser = __commonJS({\n "node_modules/inherits/inherits_browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n if (typeof Object.create === "function") {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n } else {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function() {\n };\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n }\n }\n});\n\n// node_modules/util-deprecate/browser.js\nvar require_browser = __commonJS({\n "node_modules/util-deprecate/browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = deprecate;\n function deprecate(fn, msg) {\n if (config("noDeprecation")) {\n return fn;\n }\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config("throwDeprecation")) {\n throw new Error(msg);\n } else if (config("traceDeprecation")) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n }\n function config(name) {\n try {\n if (!self.localStorage)\n return false;\n } catch (_) {\n return false;\n }\n var val = self.localStorage[name];\n if (val == null)\n return false;\n return String(val).toLowerCase() === "true";\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_writable.js\nvar require_stream_writable = __commonJS({\n "node_modules/readable-stream/lib/_stream_writable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Writable;\n function CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function() {\n onCorkedFinish(_this, state);\n };\n }\n var Duplex;\n Writable.WritableState = WritableState;\n var internalUtil = {\n deprecate: require_browser()\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n var ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES;\n var ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END;\n var ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n require_inherits_browser()(Writable, Stream);\n function nop() {\n }\n function WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.writableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "writableHighWaterMark", isDuplex);\n this.finalCalled = false;\n this.needDrain = false;\n this.ending = false;\n this.ended = false;\n this.finished = false;\n this.destroyed = false;\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.length = 0;\n this.writing = false;\n this.corked = 0;\n this.sync = true;\n this.bufferProcessing = false;\n this.onwrite = function(er) {\n onwrite(stream, er);\n };\n this.writecb = null;\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n this.pendingcb = 0;\n this.prefinished = false;\n this.errorEmitted = false;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.bufferedRequestCount = 0;\n this.corkedRequestsFree = new CorkedRequest(this);\n }\n WritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n };\n (function() {\n try {\n Object.defineProperty(WritableState.prototype, "buffer", {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003")\n });\n } catch (_) {\n }\n })();\n var realHasInstance;\n if (typeof Symbol === "function" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === "function") {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object))\n return true;\n if (this !== Writable)\n return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n } else {\n realHasInstance = function realHasInstance2(object) {\n return object instanceof this;\n };\n }\n function Writable(options) {\n Duplex = Duplex || require_stream_duplex();\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this))\n return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n this.writable = true;\n if (options) {\n if (typeof options.write === "function")\n this._write = options.write;\n if (typeof options.writev === "function")\n this._writev = options.writev;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n if (typeof options.final === "function")\n this._final = options.final;\n }\n Stream.call(this);\n }\n Writable.prototype.pipe = function() {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n };\n function writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n }\n function validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== "string" && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer"], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n }\n Writable.prototype.write = function(chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer13.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (isBuf)\n encoding = "buffer";\n else if (!encoding)\n encoding = state.defaultEncoding;\n if (typeof cb !== "function")\n cb = nop;\n if (state.ending)\n writeAfterEnd(this, cb);\n else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n };\n Writable.prototype.cork = function() {\n this._writableState.corked++;\n };\n Writable.prototype.uncork = function() {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest)\n clearBuffer(this, state);\n }\n };\n Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n if (typeof encoding === "string")\n encoding = encoding.toLowerCase();\n if (!(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((encoding + "").toLowerCase()) > -1))\n throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n function decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === "string") {\n chunk = Buffer13.from(chunk, encoding);\n }\n return chunk;\n }\n Object.defineProperty(Writable.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = "buffer";\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n if (!ret)\n state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk,\n encoding,\n isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n }\n function doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed)\n state.onwrite(new ERR_STREAM_DESTROYED("write"));\n else if (writev)\n stream._writev(chunk, state.onwrite);\n else\n stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n }\n function onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n process.nextTick(cb, er);\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n finishMaybe(stream, state);\n }\n }\n function onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n }\n function onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== "function")\n throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er)\n onwriteError(stream, state, sync, er, cb);\n else {\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n }\n function afterWrite(stream, state, finished, cb) {\n if (!finished)\n onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n }\n function onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit("drain");\n }\n }\n function clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf)\n allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, "", holder.finish);\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n if (state.writing) {\n break;\n }\n }\n if (entry === null)\n state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n }\n Writable.prototype._write = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_write()"));\n };\n Writable.prototype._writev = null;\n Writable.prototype.end = function(chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === "function") {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== void 0)\n this.write(chunk, encoding);\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n if (!state.ending)\n endWritable(this, state, cb);\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n }\n function callFinal(stream, state) {\n stream._final(function(err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit("prefinish");\n finishMaybe(stream, state);\n });\n }\n function prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === "function" && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit("prefinish");\n }\n }\n }\n function finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit("finish");\n if (state.autoDestroy) {\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n }\n function endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished)\n process.nextTick(cb);\n else\n stream.once("finish", cb);\n }\n state.ended = true;\n stream.writable = false;\n }\n function onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n state.corkedRequestsFree.next = corkReq;\n }\n Object.defineProperty(Writable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._writableState === void 0) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n if (!this._writableState) {\n return;\n }\n this._writableState.destroyed = value;\n }\n });\n Writable.prototype.destroy = destroyImpl.destroy;\n Writable.prototype._undestroy = destroyImpl.undestroy;\n Writable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_duplex.js\nvar require_stream_duplex = __commonJS({\n "node_modules/readable-stream/lib/_stream_duplex.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var objectKeys = Object.keys || function(obj) {\n var keys2 = [];\n for (var key2 in obj) {\n keys2.push(key2);\n }\n return keys2;\n };\n module.exports = Duplex;\n var Readable = require_stream_readable();\n var Writable = require_stream_writable();\n require_inherits_browser()(Duplex, Readable);\n {\n keys = objectKeys(Writable.prototype);\n for (v = 0; v < keys.length; v++) {\n method = keys[v];\n if (!Duplex.prototype[method])\n Duplex.prototype[method] = Writable.prototype[method];\n }\n }\n var keys;\n var method;\n var v;\n function Duplex(options) {\n if (!(this instanceof Duplex))\n return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false)\n this.readable = false;\n if (options.writable === false)\n this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once("end", onend);\n }\n }\n }\n Object.defineProperty(Duplex.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n Object.defineProperty(Duplex.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n Object.defineProperty(Duplex.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function onend() {\n if (this._writableState.ended)\n return;\n process.nextTick(onEndNT, this);\n }\n function onEndNT(self2) {\n self2.end();\n }\n Object.defineProperty(Duplex.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return;\n }\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n });\n }\n});\n\n// node_modules/safe-buffer/index.js\nvar require_safe_buffer = __commonJS({\n "node_modules/safe-buffer/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var buffer = require_buffer();\n var Buffer13 = buffer.Buffer;\n function copyProps(src, dst) {\n for (var key2 in src) {\n dst[key2] = src[key2];\n }\n }\n if (Buffer13.from && Buffer13.alloc && Buffer13.allocUnsafe && Buffer13.allocUnsafeSlow) {\n module.exports = buffer;\n } else {\n copyProps(buffer, exports);\n exports.Buffer = SafeBuffer;\n }\n function SafeBuffer(arg, encodingOrOffset, length) {\n return Buffer13(arg, encodingOrOffset, length);\n }\n SafeBuffer.prototype = Object.create(Buffer13.prototype);\n copyProps(Buffer13, SafeBuffer);\n SafeBuffer.from = function(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n throw new TypeError("Argument must not be a number");\n }\n return Buffer13(arg, encodingOrOffset, length);\n };\n SafeBuffer.alloc = function(size, fill, encoding) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n var buf2 = Buffer13(size);\n if (fill !== void 0) {\n if (typeof encoding === "string") {\n buf2.fill(fill, encoding);\n } else {\n buf2.fill(fill);\n }\n } else {\n buf2.fill(0);\n }\n return buf2;\n };\n SafeBuffer.allocUnsafe = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return Buffer13(size);\n };\n SafeBuffer.allocUnsafeSlow = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return buffer.SlowBuffer(size);\n };\n }\n});\n\n// node_modules/string_decoder/lib/string_decoder.js\nvar require_string_decoder = __commonJS({\n "node_modules/string_decoder/lib/string_decoder.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var Buffer13 = require_safe_buffer().Buffer;\n var isEncoding = Buffer13.isEncoding || function(encoding) {\n encoding = "" + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n case "raw":\n return true;\n default:\n return false;\n }\n };\n function _normalizeEncoding(enc) {\n if (!enc)\n return "utf8";\n var retried;\n while (true) {\n switch (enc) {\n case "utf8":\n case "utf-8":\n return "utf8";\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return "utf16le";\n case "latin1":\n case "binary":\n return "latin1";\n case "base64":\n case "ascii":\n case "hex":\n return enc;\n default:\n if (retried)\n return;\n enc = ("" + enc).toLowerCase();\n retried = true;\n }\n }\n }\n function normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== "string" && (Buffer13.isEncoding === isEncoding || !isEncoding(enc)))\n throw new Error("Unknown encoding: " + enc);\n return nenc || enc;\n }\n exports.StringDecoder = StringDecoder;\n function StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case "utf16le":\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case "utf8":\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case "base64":\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer13.allocUnsafe(nb);\n }\n StringDecoder.prototype.write = function(buf2) {\n if (buf2.length === 0)\n return "";\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf2);\n if (r === void 0)\n return "";\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf2.length)\n return r ? r + this.text(buf2, i) : this.text(buf2, i);\n return r || "";\n };\n StringDecoder.prototype.end = utf8End;\n StringDecoder.prototype.text = utf8Text;\n StringDecoder.prototype.fillLast = function(buf2) {\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf2.length);\n this.lastNeed -= buf2.length;\n };\n function utf8CheckByte(byte) {\n if (byte <= 127)\n return 0;\n else if (byte >> 5 === 6)\n return 2;\n else if (byte >> 4 === 14)\n return 3;\n else if (byte >> 3 === 30)\n return 4;\n return byte >> 6 === 2 ? -1 : -2;\n }\n function utf8CheckIncomplete(self2, buf2, i) {\n var j = buf2.length - 1;\n if (j < i)\n return 0;\n var nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2)\n nb = 0;\n else\n self2.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n }\n function utf8CheckExtraBytes(self2, buf2, p) {\n if ((buf2[0] & 192) !== 128) {\n self2.lastNeed = 0;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 1 && buf2.length > 1) {\n if ((buf2[1] & 192) !== 128) {\n self2.lastNeed = 1;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 2 && buf2.length > 2) {\n if ((buf2[2] & 192) !== 128) {\n self2.lastNeed = 2;\n return "\\uFFFD";\n }\n }\n }\n }\n function utf8FillLast(buf2) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf2, p);\n if (r !== void 0)\n return r;\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, p, 0, buf2.length);\n this.lastNeed -= buf2.length;\n }\n function utf8Text(buf2, i) {\n var total = utf8CheckIncomplete(this, buf2, i);\n if (!this.lastNeed)\n return buf2.toString("utf8", i);\n this.lastTotal = total;\n var end = buf2.length - (total - this.lastNeed);\n buf2.copy(this.lastChar, 0, end);\n return buf2.toString("utf8", i, end);\n }\n function utf8End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + "\\uFFFD";\n return r;\n }\n function utf16Text(buf2, i) {\n if ((buf2.length - i) % 2 === 0) {\n var r = buf2.toString("utf16le", i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 55296 && c <= 56319) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf2[buf2.length - 1];\n return buf2.toString("utf16le", i, buf2.length - 1);\n }\n function utf16End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString("utf16le", 0, end);\n }\n return r;\n }\n function base64Text(buf2, i) {\n var n = (buf2.length - i) % 3;\n if (n === 0)\n return buf2.toString("base64", i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf2[buf2.length - 1];\n } else {\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n }\n return buf2.toString("base64", i, buf2.length - n);\n }\n function base64End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + this.lastChar.toString("base64", 0, 3 - this.lastNeed);\n return r;\n }\n function simpleWrite(buf2) {\n return buf2.toString(this.encoding);\n }\n function simpleEnd(buf2) {\n return buf2 && buf2.length ? this.write(buf2) : "";\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/end-of-stream.js\nvar require_end_of_stream = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_STREAM_PREMATURE_CLOSE = require_errors_browser().codes.ERR_STREAM_PREMATURE_CLOSE;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n }\n function noop2() {\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function eos(stream, opts, callback) {\n if (typeof opts === "function")\n return eos(stream, null, opts);\n if (!opts)\n opts = {};\n callback = once(callback || noop2);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable2 = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish2() {\n if (!stream.writable)\n onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish2() {\n writable2 = false;\n writableEnded = true;\n if (!readable)\n callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend2() {\n readable = false;\n readableEnded = true;\n if (!writable2)\n callback.call(stream);\n };\n var onerror = function onerror2(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose2() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable2 && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest2() {\n stream.req.on("finish", onfinish);\n };\n if (isRequest(stream)) {\n stream.on("complete", onfinish);\n stream.on("abort", onclose);\n if (stream.req)\n onrequest();\n else\n stream.on("request", onrequest);\n } else if (writable2 && !stream._writableState) {\n stream.on("end", onlegacyfinish);\n stream.on("close", onlegacyfinish);\n }\n stream.on("end", onend);\n stream.on("finish", onfinish);\n if (opts.error !== false)\n stream.on("error", onerror);\n stream.on("close", onclose);\n return function() {\n stream.removeListener("complete", onfinish);\n stream.removeListener("abort", onclose);\n stream.removeListener("request", onrequest);\n if (stream.req)\n stream.req.removeListener("finish", onfinish);\n stream.removeListener("end", onlegacyfinish);\n stream.removeListener("close", onlegacyfinish);\n stream.removeListener("finish", onfinish);\n stream.removeListener("end", onend);\n stream.removeListener("error", onerror);\n stream.removeListener("close", onclose);\n };\n }\n module.exports = eos;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/async_iterator.js\nvar require_async_iterator = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/async_iterator.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var _Object$setPrototypeO;\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n var finished = require_end_of_stream();\n var kLastResolve = Symbol("lastResolve");\n var kLastReject = Symbol("lastReject");\n var kError = Symbol("error");\n var kEnded = Symbol("ended");\n var kLastPromise = Symbol("lastPromise");\n var kHandlePromise = Symbol("handlePromise");\n var kStream = Symbol("stream");\n function createIterResult(value, done) {\n return {\n value,\n done\n };\n }\n function readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n }\n function onReadable(iter) {\n process.nextTick(readAndResolve, iter);\n }\n function wrapForNext(lastPromise, iter) {\n return function(resolve, reject) {\n lastPromise.then(function() {\n if (iter[kEnded]) {\n resolve(createIterResult(void 0, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n }\n var AsyncIteratorPrototype = Object.getPrototypeOf(function() {\n });\n var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(void 0, true));\n }\n if (this[kStream].destroyed) {\n return new Promise(function(resolve, reject) {\n process.nextTick(function() {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(void 0, true));\n }\n });\n });\n }\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n }, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function() {\n return this;\n }), _defineProperty(_Object$setPrototypeO, "return", function _return() {\n var _this2 = this;\n return new Promise(function(resolve, reject) {\n _this2[kStream].destroy(null, function(err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(void 0, true));\n });\n });\n }), _Object$setPrototypeO), AsyncIteratorPrototype);\n var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator2(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function(err) {\n if (err && err.code !== "ERR_STREAM_PREMATURE_CLOSE") {\n var reject = iterator[kLastReject];\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(void 0, true));\n }\n iterator[kEnded] = true;\n });\n stream.on("readable", onReadable.bind(null, iterator));\n return iterator;\n };\n module.exports = createReadableStreamAsyncIterator;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/from-browser.js\nvar require_from_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/from-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = function() {\n throw new Error("Readable.from is not available in the browser");\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_readable.js\nvar require_stream_readable = __commonJS({\n "node_modules/readable-stream/lib/_stream_readable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Readable;\n var Duplex;\n Readable.ReadableState = ReadableState;\n var EE = require_events().EventEmitter;\n var EElistenerCount = function EElistenerCount2(emitter, type) {\n return emitter.listeners(type).length;\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var debugUtil = require_util();\n var debug;\n if (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog("stream");\n } else {\n debug = function debug2() {\n };\n }\n var BufferList = require_buffer_list();\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n var StringDecoder;\n var createReadableStreamAsyncIterator;\n var from;\n require_inherits_browser()(Readable, Stream);\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n var kProxyEvents = ["error", "close", "destroy", "pause", "resume"];\n function prependListener(emitter, event, fn) {\n if (typeof emitter.prependListener === "function")\n return emitter.prependListener(event, fn);\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n function ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.readableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "readableHighWaterMark", isDuplex);\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n this.sync = true;\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.destroyed = false;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.awaitDrain = 0;\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n }\n function Readable(options) {\n Duplex = Duplex || require_stream_duplex();\n if (!(this instanceof Readable))\n return new Readable(options);\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n this.readable = true;\n if (options) {\n if (typeof options.read === "function")\n this._read = options.read;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n }\n Stream.call(this);\n }\n Object.defineProperty(Readable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n if (!this._readableState) {\n return;\n }\n this._readableState.destroyed = value;\n }\n });\n Readable.prototype.destroy = destroyImpl.destroy;\n Readable.prototype._undestroy = destroyImpl.undestroy;\n Readable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n Readable.prototype.push = function(chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === "string") {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer13.from(chunk, encoding);\n encoding = "";\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n };\n Readable.prototype.unshift = function(chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n };\n function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug("readableAddChunk", chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck)\n er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== "string" && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer13.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted)\n errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());\n else\n addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0)\n addChunk(stream, state, chunk, false);\n else\n maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n }\n function addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit("data", chunk);\n } else {\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront)\n state.buffer.unshift(chunk);\n else\n state.buffer.push(chunk);\n if (state.needReadable)\n emitReadable(stream);\n }\n maybeReadMore(stream, state);\n }\n function chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== "string" && chunk !== void 0 && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer", "Uint8Array"], chunk);\n }\n return er;\n }\n Readable.prototype.isPaused = function() {\n return this._readableState.flowing === false;\n };\n Readable.prototype.setEncoding = function(enc) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n this._readableState.encoding = this._readableState.decoder.encoding;\n var p = this._readableState.buffer.head;\n var content = "";\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== "")\n this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n };\n var MAX_HWM = 1073741824;\n function computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n }\n function howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended)\n return 0;\n if (state.objectMode)\n return 1;\n if (n !== n) {\n if (state.flowing && state.length)\n return state.buffer.head.data.length;\n else\n return state.length;\n }\n if (n > state.highWaterMark)\n state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length)\n return n;\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n }\n Readable.prototype.read = function(n) {\n debug("read", n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0)\n state.emittedReadable = false;\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug("read: emitReadable", state.length, state.ended);\n if (state.length === 0 && state.ended)\n endReadable(this);\n else\n emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n if (n === 0 && state.ended) {\n if (state.length === 0)\n endReadable(this);\n return null;\n }\n var doRead = state.needReadable;\n debug("need readable", doRead);\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug("length less than watermark", doRead);\n }\n if (state.ended || state.reading) {\n doRead = false;\n debug("reading or ended", doRead);\n } else if (doRead) {\n debug("do read");\n state.reading = true;\n state.sync = true;\n if (state.length === 0)\n state.needReadable = true;\n this._read(state.highWaterMark);\n state.sync = false;\n if (!state.reading)\n n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0)\n ret = fromList(n, state);\n else\n ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n if (!state.ended)\n state.needReadable = true;\n if (nOrig !== n && state.ended)\n endReadable(this);\n }\n if (ret !== null)\n this.emit("data", ret);\n return ret;\n };\n function onEofChunk(stream, state) {\n debug("onEofChunk");\n if (state.ended)\n return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n emitReadable(stream);\n } else {\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n }\n function emitReadable(stream) {\n var state = stream._readableState;\n debug("emitReadable", state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug("emitReadable", state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n }\n function emitReadable_(stream) {\n var state = stream._readableState;\n debug("emitReadable_", state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit("readable");\n state.emittedReadable = false;\n }\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n }\n function maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n }\n function maybeReadMore_(stream, state) {\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug("maybeReadMore read 0");\n stream.read(0);\n if (len === state.length)\n break;\n }\n state.readingMore = false;\n }\n Readable.prototype._read = function(n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED("_read()"));\n };\n Readable.prototype.pipe = function(dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug("pipe count=%d opts=%j", state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted)\n process.nextTick(endFn);\n else\n src.once("end", endFn);\n dest.on("unpipe", onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug("onunpipe");\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug("onend");\n dest.end();\n }\n var ondrain = pipeOnDrain(src);\n dest.on("drain", ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug("cleanup");\n dest.removeListener("close", onclose);\n dest.removeListener("finish", onfinish);\n dest.removeListener("drain", ondrain);\n dest.removeListener("error", onerror);\n dest.removeListener("unpipe", onunpipe);\n src.removeListener("end", onend);\n src.removeListener("end", unpipe);\n src.removeListener("data", ondata);\n cleanedUp = true;\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain))\n ondrain();\n }\n src.on("data", ondata);\n function ondata(chunk) {\n debug("ondata");\n var ret = dest.write(chunk);\n debug("dest.write", ret);\n if (ret === false) {\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug("false write response, pause", state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n function onerror(er) {\n debug("onerror", er);\n unpipe();\n dest.removeListener("error", onerror);\n if (EElistenerCount(dest, "error") === 0)\n errorOrDestroy(dest, er);\n }\n prependListener(dest, "error", onerror);\n function onclose() {\n dest.removeListener("finish", onfinish);\n unpipe();\n }\n dest.once("close", onclose);\n function onfinish() {\n debug("onfinish");\n dest.removeListener("close", onclose);\n unpipe();\n }\n dest.once("finish", onfinish);\n function unpipe() {\n debug("unpipe");\n src.unpipe(dest);\n }\n dest.emit("pipe", src);\n if (!state.flowing) {\n debug("pipe resume");\n src.resume();\n }\n return dest;\n };\n function pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug("pipeOnDrain", state.awaitDrain);\n if (state.awaitDrain)\n state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, "data")) {\n state.flowing = true;\n flow(src);\n }\n };\n }\n Readable.prototype.unpipe = function(dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n if (state.pipesCount === 0)\n return this;\n if (state.pipesCount === 1) {\n if (dest && dest !== state.pipes)\n return this;\n if (!dest)\n dest = state.pipes;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest)\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n }\n if (!dest) {\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) {\n dests[i].emit("unpipe", this, {\n hasUnpiped: false\n });\n }\n return this;\n }\n var index = indexOf(state.pipes, dest);\n if (index === -1)\n return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1)\n state.pipes = state.pipes[0];\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n };\n Readable.prototype.on = function(ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === "data") {\n state.readableListening = this.listenerCount("readable") > 0;\n if (state.flowing !== false)\n this.resume();\n } else if (ev === "readable") {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug("on readable", state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n };\n Readable.prototype.addListener = Readable.prototype.on;\n Readable.prototype.removeListener = function(ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === "readable") {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n Readable.prototype.removeAllListeners = function(ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === "readable" || ev === void 0) {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n function updateReadableListening(self2) {\n var state = self2._readableState;\n state.readableListening = self2.listenerCount("readable") > 0;\n if (state.resumeScheduled && !state.paused) {\n state.flowing = true;\n } else if (self2.listenerCount("data") > 0) {\n self2.resume();\n }\n }\n function nReadingNextTick(self2) {\n debug("readable nexttick read 0");\n self2.read(0);\n }\n Readable.prototype.resume = function() {\n var state = this._readableState;\n if (!state.flowing) {\n debug("resume");\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n };\n function resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n }\n function resume_(stream, state) {\n debug("resume", state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit("resume");\n flow(stream);\n if (state.flowing && !state.reading)\n stream.read(0);\n }\n Readable.prototype.pause = function() {\n debug("call pause flowing=%j", this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug("pause");\n this._readableState.flowing = false;\n this.emit("pause");\n }\n this._readableState.paused = true;\n return this;\n };\n function flow(stream) {\n var state = stream._readableState;\n debug("flow", state.flowing);\n while (state.flowing && stream.read() !== null) {\n ;\n }\n }\n Readable.prototype.wrap = function(stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on("end", function() {\n debug("wrapped end");\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length)\n _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on("data", function(chunk) {\n debug("wrapped data");\n if (state.decoder)\n chunk = state.decoder.write(chunk);\n if (state.objectMode && (chunk === null || chunk === void 0))\n return;\n else if (!state.objectMode && (!chunk || !chunk.length))\n return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n for (var i in stream) {\n if (this[i] === void 0 && typeof stream[i] === "function") {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n this._read = function(n2) {\n debug("wrapped _read", n2);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n };\n if (typeof Symbol === "function") {\n Readable.prototype[Symbol.asyncIterator] = function() {\n if (createReadableStreamAsyncIterator === void 0) {\n createReadableStreamAsyncIterator = require_async_iterator();\n }\n return createReadableStreamAsyncIterator(this);\n };\n }\n Object.defineProperty(Readable.prototype, "readableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n });\n Object.defineProperty(Readable.prototype, "readableBuffer", {\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n });\n Object.defineProperty(Readable.prototype, "readableFlowing", {\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n });\n Readable._fromList = fromList;\n Object.defineProperty(Readable.prototype, "readableLength", {\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n });\n function fromList(n, state) {\n if (state.length === 0)\n return null;\n var ret;\n if (state.objectMode)\n ret = state.buffer.shift();\n else if (!n || n >= state.length) {\n if (state.decoder)\n ret = state.buffer.join("");\n else if (state.buffer.length === 1)\n ret = state.buffer.first();\n else\n ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n }\n function endReadable(stream) {\n var state = stream._readableState;\n debug("endReadable", state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n }\n function endReadableNT(state, stream) {\n debug("endReadableNT", state.endEmitted, state.length);\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit("end");\n if (state.autoDestroy) {\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n }\n if (typeof Symbol === "function") {\n Readable.from = function(iterable, opts) {\n if (from === void 0) {\n from = require_from_browser();\n }\n return from(Readable, iterable, opts);\n };\n }\n function indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x)\n return i;\n }\n return -1;\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_transform.js\nvar require_stream_transform = __commonJS({\n "node_modules/readable-stream/lib/_stream_transform.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Transform;\n var _require$codes = require_errors_browser().codes;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING;\n var ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n var Duplex = require_stream_duplex();\n require_inherits_browser()(Transform, Duplex);\n function afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit("error", new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n }\n function Transform(options) {\n if (!(this instanceof Transform))\n return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n this._readableState.needReadable = true;\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === "function")\n this._transform = options.transform;\n if (typeof options.flush === "function")\n this._flush = options.flush;\n }\n this.on("prefinish", prefinish);\n }\n function prefinish() {\n var _this = this;\n if (typeof this._flush === "function" && !this._readableState.destroyed) {\n this._flush(function(er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n }\n Transform.prototype.push = function(chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n };\n Transform.prototype._transform = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_transform()"));\n };\n Transform.prototype._write = function(chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark)\n this._read(rs.highWaterMark);\n }\n };\n Transform.prototype._read = function(n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n ts.needTransform = true;\n }\n };\n Transform.prototype._destroy = function(err, cb) {\n Duplex.prototype._destroy.call(this, err, function(err2) {\n cb(err2);\n });\n };\n function done(stream, er, data) {\n if (er)\n return stream.emit("error", er);\n if (data != null)\n stream.push(data);\n if (stream._writableState.length)\n throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming)\n throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_passthrough.js\nvar require_stream_passthrough = __commonJS({\n "node_modules/readable-stream/lib/_stream_passthrough.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = PassThrough;\n var Transform = require_stream_transform();\n require_inherits_browser()(PassThrough, Transform);\n function PassThrough(options) {\n if (!(this instanceof PassThrough))\n return new PassThrough(options);\n Transform.call(this, options);\n }\n PassThrough.prototype._transform = function(chunk, encoding, cb) {\n cb(null, chunk);\n };\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/pipeline.js\nvar require_pipeline = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/pipeline.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var eos;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n callback.apply(void 0, arguments);\n };\n }\n var _require$codes = require_errors_browser().codes;\n var ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n function noop2(err) {\n if (err)\n throw err;\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on("close", function() {\n closed = true;\n });\n if (eos === void 0)\n eos = require_end_of_stream();\n eos(stream, {\n readable: reading,\n writable: writing\n }, function(err) {\n if (err)\n return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function(err) {\n if (closed)\n return;\n if (destroyed)\n return;\n destroyed = true;\n if (isRequest(stream))\n return stream.abort();\n if (typeof stream.destroy === "function")\n return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED("pipe"));\n };\n }\n function call(fn) {\n fn();\n }\n function pipe(from, to) {\n return from.pipe(to);\n }\n function popCallback(streams) {\n if (!streams.length)\n return noop2;\n if (typeof streams[streams.length - 1] !== "function")\n return noop2;\n return streams.pop();\n }\n function pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0]))\n streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS("streams");\n }\n var error;\n var destroys = streams.map(function(stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function(err) {\n if (!error)\n error = err;\n if (err)\n destroys.forEach(call);\n if (reading)\n return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n }\n module.exports = pipeline;\n }\n});\n\n// node_modules/readable-stream/readable-browser.js\nvar require_readable_browser = __commonJS({\n "node_modules/readable-stream/readable-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports = module.exports = require_stream_readable();\n exports.Stream = exports;\n exports.Readable = exports;\n exports.Writable = require_stream_writable();\n exports.Duplex = require_stream_duplex();\n exports.Transform = require_stream_transform();\n exports.PassThrough = require_stream_passthrough();\n exports.finished = require_end_of_stream();\n exports.pipeline = require_pipeline();\n }\n});\n\n// node_modules/readable-web-to-node-stream/lib/index.js\nvar require_lib = __commonJS({\n "node_modules/readable-web-to-node-stream/lib/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n Object.defineProperty(exports, "__esModule", { value: true });\n exports.ReadableWebToNodeStream = void 0;\n var readable_stream_1 = require_readable_browser();\n var ReadableWebToNodeStream2 = class extends readable_stream_1.Readable {\n constructor(stream) {\n super();\n this.bytesRead = 0;\n this.released = false;\n this.reader = stream.getReader();\n }\n async _read() {\n if (this.released) {\n this.push(null);\n return;\n }\n this.pendingRead = this.reader.read();\n const data = await this.pendingRead;\n delete this.pendingRead;\n if (data.done || this.released) {\n this.push(null);\n } else {\n this.bytesRead += data.value.length;\n this.push(data.value);\n }\n }\n async waitForReadToComplete() {\n if (this.pendingRead) {\n await this.pendingRead;\n }\n }\n async close() {\n await this.syncAndRelease();\n }\n async syncAndRelease() {\n this.released = true;\n await this.waitForReadToComplete();\n await this.reader.releaseLock();\n }\n };\n exports.ReadableWebToNodeStream = ReadableWebToNodeStream2;\n }\n});\n\n// node_modules/base-x/src/index.js\nvar require_src = __commonJS({\n "node_modules/base-x/src/index.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function base(ALPHABET) {\n if (ALPHABET.length >= 255) {\n throw new TypeError("Alphabet too long");\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + " is ambiguous");\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode2(source) {\n if (source instanceof Uint8Array) {\n } else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError("Expected Uint8Array");\n }\n if (source.length === 0) {\n return "";\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i2 = 0;\n for (var it1 = size - 1; (carry !== 0 || i2 < length) && it1 !== -1; it1--, i2++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== "string") {\n throw new TypeError("Expected String");\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i2 = 0;\n for (var it3 = size - 1; (carry !== 0 || i2 < length) && it3 !== -1; it3--, i2++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n psz++;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j2 = zeroes;\n while (it4 !== size) {\n vch[j2++] = b256[it4++];\n }\n return vch;\n }\n function decode3(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error("Non-base" + BASE + " character");\n }\n return {\n encode: encode2,\n decodeUnsafe,\n decode: decode3\n };\n }\n module.exports = base;\n }\n});\n\n// node_modules/bs58/index.js\nvar require_bs58 = __commonJS({\n "node_modules/bs58/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var basex = require_src();\n var ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";\n module.exports = basex(ALPHABET);\n }\n});\n\n// node_modules/jpeg-js/lib/encoder.js\nvar require_encoder = __commonJS({\n "node_modules/jpeg-js/lib/encoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var btoa = btoa || function(buf2) {\n return Buffer2.from(buf2).toString("base64");\n };\n function JPEGEncoder(quality) {\n var self2 = this;\n var fround = Math.round;\n var ffloor = Math.floor;\n var YTable = new Array(64);\n var UVTable = new Array(64);\n var fdtbl_Y = new Array(64);\n var fdtbl_UV = new Array(64);\n var YDC_HT2;\n var UVDC_HT2;\n var YAC_HT2;\n var UVAC_HT2;\n var bitcode2 = new Array(65535);\n var category2 = new Array(65535);\n var outputfDCTQuant = new Array(64);\n var DU = new Array(64);\n var byteout = [];\n var bytenew = 0;\n var bytepos = 7;\n var YDU = new Array(64);\n var UDU = new Array(64);\n var VDU = new Array(64);\n var clt = new Array(256);\n var RGB_YUV_TABLE = new Array(2048);\n var currentQuality;\n var ZigZag = [\n 0,\n 1,\n 5,\n 6,\n 14,\n 15,\n 27,\n 28,\n 2,\n 4,\n 7,\n 13,\n 16,\n 26,\n 29,\n 42,\n 3,\n 8,\n 12,\n 17,\n 25,\n 30,\n 41,\n 43,\n 9,\n 11,\n 18,\n 24,\n 31,\n 40,\n 44,\n 53,\n 10,\n 19,\n 23,\n 32,\n 39,\n 45,\n 52,\n 54,\n 20,\n 22,\n 33,\n 38,\n 46,\n 51,\n 55,\n 60,\n 21,\n 34,\n 37,\n 47,\n 50,\n 56,\n 59,\n 61,\n 35,\n 36,\n 48,\n 49,\n 57,\n 58,\n 62,\n 63\n ];\n var std_dc_luminance_nrcodes2 = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\n var std_dc_luminance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_luminance_nrcodes2 = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\n var std_ac_luminance_values2 = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n var std_dc_chrominance_nrcodes2 = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\n var std_dc_chrominance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_chrominance_nrcodes2 = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\n var std_ac_chrominance_values2 = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n function initQuantTables(sf) {\n var YQT = [\n 16,\n 11,\n 10,\n 16,\n 24,\n 40,\n 51,\n 61,\n 12,\n 12,\n 14,\n 19,\n 26,\n 58,\n 60,\n 55,\n 14,\n 13,\n 16,\n 24,\n 40,\n 57,\n 69,\n 56,\n 14,\n 17,\n 22,\n 29,\n 51,\n 87,\n 80,\n 62,\n 18,\n 22,\n 37,\n 56,\n 68,\n 109,\n 103,\n 77,\n 24,\n 35,\n 55,\n 64,\n 81,\n 104,\n 113,\n 92,\n 49,\n 64,\n 78,\n 87,\n 103,\n 121,\n 120,\n 101,\n 72,\n 92,\n 95,\n 98,\n 112,\n 100,\n 103,\n 99\n ];\n for (var i = 0; i < 64; i++) {\n var t = ffloor((YQT[i] * sf + 50) / 100);\n if (t < 1) {\n t = 1;\n } else if (t > 255) {\n t = 255;\n }\n YTable[ZigZag[i]] = t;\n }\n var UVQT = [\n 17,\n 18,\n 24,\n 47,\n 99,\n 99,\n 99,\n 99,\n 18,\n 21,\n 26,\n 66,\n 99,\n 99,\n 99,\n 99,\n 24,\n 26,\n 56,\n 99,\n 99,\n 99,\n 99,\n 99,\n 47,\n 66,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99\n ];\n for (var j = 0; j < 64; j++) {\n var u = ffloor((UVQT[j] * sf + 50) / 100);\n if (u < 1) {\n u = 1;\n } else if (u > 255) {\n u = 255;\n }\n UVTable[ZigZag[j]] = u;\n }\n var aasf = [\n 1,\n 1.387039845,\n 1.306562965,\n 1.175875602,\n 1,\n 0.785694958,\n 0.5411961,\n 0.275899379\n ];\n var k = 0;\n for (var row = 0; row < 8; row++) {\n for (var col = 0; col < 8; col++) {\n fdtbl_Y[k] = 1 / (YTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n fdtbl_UV[k] = 1 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n k++;\n }\n }\n }\n function computeHuffmanTbl(nrcodes, std_table) {\n var codevalue = 0;\n var pos_in_table = 0;\n var HT = new Array();\n for (var k = 1; k <= 16; k++) {\n for (var j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n function initHuffmanTbl() {\n YDC_HT2 = computeHuffmanTbl(std_dc_luminance_nrcodes2, std_dc_luminance_values2);\n UVDC_HT2 = computeHuffmanTbl(std_dc_chrominance_nrcodes2, std_dc_chrominance_values2);\n YAC_HT2 = computeHuffmanTbl(std_ac_luminance_nrcodes2, std_ac_luminance_values2);\n UVAC_HT2 = computeHuffmanTbl(std_ac_chrominance_nrcodes2, std_ac_chrominance_values2);\n }\n function initCategoryNumber() {\n var nrlower = 1;\n var nrupper = 2;\n for (var cat = 1; cat <= 15; cat++) {\n for (var nr = nrlower; nr < nrupper; nr++) {\n category2[32767 + nr] = cat;\n bitcode2[32767 + nr] = [];\n bitcode2[32767 + nr][1] = cat;\n bitcode2[32767 + nr][0] = nr;\n }\n for (var nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category2[32767 + nrneg] = cat;\n bitcode2[32767 + nrneg] = [];\n bitcode2[32767 + nrneg][1] = cat;\n bitcode2[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n }\n function initRGBYUVTable() {\n for (var i = 0; i < 256; i++) {\n RGB_YUV_TABLE[i] = 19595 * i;\n RGB_YUV_TABLE[i + 256 >> 0] = 38470 * i;\n RGB_YUV_TABLE[i + 512 >> 0] = 7471 * i + 32768;\n RGB_YUV_TABLE[i + 768 >> 0] = -11059 * i;\n RGB_YUV_TABLE[i + 1024 >> 0] = -21709 * i;\n RGB_YUV_TABLE[i + 1280 >> 0] = 32768 * i + 8421375;\n RGB_YUV_TABLE[i + 1536 >> 0] = -27439 * i;\n RGB_YUV_TABLE[i + 1792 >> 0] = -5329 * i;\n }\n }\n function writeBits(bs) {\n var value = bs[0];\n var posval = bs[1] - 1;\n while (posval >= 0) {\n if (value & 1 << posval) {\n bytenew |= 1 << bytepos;\n }\n posval--;\n bytepos--;\n if (bytepos < 0) {\n if (bytenew == 255) {\n writeByte(255);\n writeByte(0);\n } else {\n writeByte(bytenew);\n }\n bytepos = 7;\n bytenew = 0;\n }\n }\n }\n function writeByte(value) {\n byteout.push(value);\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function fDCTQuant(data, fdtbl) {\n var d0, d1, d2, d3, d4, d5, d6, d7;\n var dataOff = 0;\n var i;\n var I8 = 8;\n var I64 = 64;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 1];\n d2 = data[dataOff + 2];\n d3 = data[dataOff + 3];\n d4 = data[dataOff + 4];\n d5 = data[dataOff + 5];\n d6 = data[dataOff + 6];\n d7 = data[dataOff + 7];\n var tmp0 = d0 + d7;\n var tmp7 = d0 - d7;\n var tmp1 = d1 + d6;\n var tmp6 = d1 - d6;\n var tmp2 = d2 + d5;\n var tmp5 = d2 - d5;\n var tmp3 = d3 + d4;\n var tmp4 = d3 - d4;\n var tmp10 = tmp0 + tmp3;\n var tmp13 = tmp0 - tmp3;\n var tmp11 = tmp1 + tmp2;\n var tmp12 = tmp1 - tmp2;\n data[dataOff] = tmp10 + tmp11;\n data[dataOff + 4] = tmp10 - tmp11;\n var z1 = (tmp12 + tmp13) * 0.707106781;\n data[dataOff + 2] = tmp13 + z1;\n data[dataOff + 6] = tmp13 - z1;\n tmp10 = tmp4 + tmp5;\n tmp11 = tmp5 + tmp6;\n tmp12 = tmp6 + tmp7;\n var z5 = (tmp10 - tmp12) * 0.382683433;\n var z2 = 0.5411961 * tmp10 + z5;\n var z4 = 1.306562965 * tmp12 + z5;\n var z3 = tmp11 * 0.707106781;\n var z11 = tmp7 + z3;\n var z13 = tmp7 - z3;\n data[dataOff + 5] = z13 + z2;\n data[dataOff + 3] = z13 - z2;\n data[dataOff + 1] = z11 + z4;\n data[dataOff + 7] = z11 - z4;\n dataOff += 8;\n }\n dataOff = 0;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 8];\n d2 = data[dataOff + 16];\n d3 = data[dataOff + 24];\n d4 = data[dataOff + 32];\n d5 = data[dataOff + 40];\n d6 = data[dataOff + 48];\n d7 = data[dataOff + 56];\n var tmp0p2 = d0 + d7;\n var tmp7p2 = d0 - d7;\n var tmp1p2 = d1 + d6;\n var tmp6p2 = d1 - d6;\n var tmp2p2 = d2 + d5;\n var tmp5p2 = d2 - d5;\n var tmp3p2 = d3 + d4;\n var tmp4p2 = d3 - d4;\n var tmp10p2 = tmp0p2 + tmp3p2;\n var tmp13p2 = tmp0p2 - tmp3p2;\n var tmp11p2 = tmp1p2 + tmp2p2;\n var tmp12p2 = tmp1p2 - tmp2p2;\n data[dataOff] = tmp10p2 + tmp11p2;\n data[dataOff + 32] = tmp10p2 - tmp11p2;\n var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781;\n data[dataOff + 16] = tmp13p2 + z1p2;\n data[dataOff + 48] = tmp13p2 - z1p2;\n tmp10p2 = tmp4p2 + tmp5p2;\n tmp11p2 = tmp5p2 + tmp6p2;\n tmp12p2 = tmp6p2 + tmp7p2;\n var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433;\n var z2p2 = 0.5411961 * tmp10p2 + z5p2;\n var z4p2 = 1.306562965 * tmp12p2 + z5p2;\n var z3p2 = tmp11p2 * 0.707106781;\n var z11p2 = tmp7p2 + z3p2;\n var z13p2 = tmp7p2 - z3p2;\n data[dataOff + 40] = z13p2 + z2p2;\n data[dataOff + 24] = z13p2 - z2p2;\n data[dataOff + 8] = z11p2 + z4p2;\n data[dataOff + 56] = z11p2 - z4p2;\n dataOff++;\n }\n var fDCTQuant2;\n for (i = 0; i < I64; ++i) {\n fDCTQuant2 = data[i] * fdtbl[i];\n outputfDCTQuant[i] = fDCTQuant2 > 0 ? fDCTQuant2 + 0.5 | 0 : fDCTQuant2 - 0.5 | 0;\n }\n return outputfDCTQuant;\n }\n function writeAPP0() {\n writeWord(65504);\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n }\n function writeAPP1(exifBuffer) {\n if (!exifBuffer)\n return;\n writeWord(65505);\n if (exifBuffer[0] === 69 && exifBuffer[1] === 120 && exifBuffer[2] === 105 && exifBuffer[3] === 102) {\n writeWord(exifBuffer.length + 2);\n } else {\n writeWord(exifBuffer.length + 5 + 2);\n writeByte(69);\n writeByte(120);\n writeByte(105);\n writeByte(102);\n writeByte(0);\n }\n for (var i = 0; i < exifBuffer.length; i++) {\n writeByte(exifBuffer[i]);\n }\n }\n function writeSOF0(width, height) {\n writeWord(65472);\n writeWord(17);\n writeByte(8);\n writeWord(height);\n writeWord(width);\n writeByte(3);\n writeByte(1);\n writeByte(17);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(1);\n writeByte(3);\n writeByte(17);\n writeByte(1);\n }\n function writeDQT() {\n writeWord(65499);\n writeWord(132);\n writeByte(0);\n for (var i = 0; i < 64; i++) {\n writeByte(YTable[i]);\n }\n writeByte(1);\n for (var j = 0; j < 64; j++) {\n writeByte(UVTable[j]);\n }\n }\n function writeDHT() {\n writeWord(65476);\n writeWord(418);\n writeByte(0);\n for (var i = 0; i < 16; i++) {\n writeByte(std_dc_luminance_nrcodes2[i + 1]);\n }\n for (var j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values2[j]);\n }\n writeByte(16);\n for (var k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes2[k + 1]);\n }\n for (var l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values2[l]);\n }\n writeByte(1);\n for (var m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes2[m + 1]);\n }\n for (var n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values2[n]);\n }\n writeByte(17);\n for (var o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes2[o + 1]);\n }\n for (var p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values2[p]);\n }\n }\n function writeCOM(comments) {\n if (typeof comments === "undefined" || comments.constructor !== Array)\n return;\n comments.forEach((e) => {\n if (typeof e !== "string")\n return;\n writeWord(65534);\n var l = e.length;\n writeWord(l + 2);\n var i;\n for (i = 0; i < l; i++)\n writeByte(e.charCodeAt(i));\n });\n }\n function writeSOS() {\n writeWord(65498);\n writeWord(12);\n writeByte(3);\n writeByte(1);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(3);\n writeByte(17);\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(CDU, fdtbl, DC, HTDC, HTAC) {\n var EOB = HTAC[0];\n var M16zeroes = HTAC[240];\n var pos;\n var I16 = 16;\n var I63 = 63;\n var I64 = 64;\n var DU_DCT = fDCTQuant(CDU, fdtbl);\n for (var j = 0; j < I64; ++j) {\n DU[ZigZag[j]] = DU_DCT[j];\n }\n var Diff = DU[0] - DC;\n DC = DU[0];\n if (Diff == 0) {\n writeBits(HTDC[0]);\n } else {\n pos = 32767 + Diff;\n writeBits(HTDC[category2[pos]]);\n writeBits(bitcode2[pos]);\n }\n var end0pos = 63;\n for (; end0pos > 0 && DU[end0pos] == 0; end0pos--) {\n }\n ;\n if (end0pos == 0) {\n writeBits(EOB);\n return DC;\n }\n var i = 1;\n var lng;\n while (i <= end0pos) {\n var startpos = i;\n for (; DU[i] == 0 && i <= end0pos; ++i) {\n }\n var nrzeroes = i - startpos;\n if (nrzeroes >= I16) {\n lng = nrzeroes >> 4;\n for (var nrmarker = 1; nrmarker <= lng; ++nrmarker)\n writeBits(M16zeroes);\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + DU[i];\n writeBits(HTAC[(nrzeroes << 4) + category2[pos]]);\n writeBits(bitcode2[pos]);\n i++;\n }\n if (end0pos != I63) {\n writeBits(EOB);\n }\n return DC;\n }\n function initCharLookupTable() {\n var sfcc = String.fromCharCode;\n for (var i = 0; i < 256; i++) {\n clt[i] = sfcc(i);\n }\n }\n this.encode = function(image, quality2) {\n var time_start = new Date().getTime();\n if (quality2)\n setQuality(quality2);\n byteout = new Array();\n bytenew = 0;\n bytepos = 7;\n writeWord(65496);\n writeAPP0();\n writeCOM(image.comments);\n writeAPP1(image.exifBuffer);\n writeDQT();\n writeSOF0(image.width, image.height);\n writeDHT();\n writeSOS();\n var DCY = 0;\n var DCU = 0;\n var DCV = 0;\n bytenew = 0;\n bytepos = 7;\n this.encode.displayName = "_encode_";\n var imageData = image.data;\n var width = image.width;\n var height = image.height;\n var quadWidth = width * 4;\n var tripleWidth = width * 3;\n var x, y = 0;\n var r, g, b;\n var start, p, col, row, pos;\n while (y < height) {\n x = 0;\n while (x < quadWidth) {\n start = quadWidth * y + x;\n p = start;\n col = -1;\n row = 0;\n for (pos = 0; pos < 64; pos++) {\n row = pos >> 3;\n col = (pos & 7) * 4;\n p = start + row * quadWidth + col;\n if (y + row >= height) {\n p -= quadWidth * (y + 1 + row - height);\n }\n if (x + col >= quadWidth) {\n p -= x + col - quadWidth + 4;\n }\n r = imageData[p++];\n g = imageData[p++];\n b = imageData[p++];\n YDU[pos] = (RGB_YUV_TABLE[r] + RGB_YUV_TABLE[g + 256 >> 0] + RGB_YUV_TABLE[b + 512 >> 0] >> 16) - 128;\n UDU[pos] = (RGB_YUV_TABLE[r + 768 >> 0] + RGB_YUV_TABLE[g + 1024 >> 0] + RGB_YUV_TABLE[b + 1280 >> 0] >> 16) - 128;\n VDU[pos] = (RGB_YUV_TABLE[r + 1280 >> 0] + RGB_YUV_TABLE[g + 1536 >> 0] + RGB_YUV_TABLE[b + 1792 >> 0] >> 16) - 128;\n }\n DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT2, YAC_HT2);\n DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT2, UVAC_HT2);\n DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT2, UVAC_HT2);\n x += 32;\n }\n y += 8;\n }\n if (bytepos >= 0) {\n var fillbits = [];\n fillbits[1] = bytepos + 1;\n fillbits[0] = (1 << bytepos + 1) - 1;\n writeBits(fillbits);\n }\n writeWord(65497);\n if (typeof module === "undefined")\n return new Uint8Array(byteout);\n return Buffer2.from(byteout);\n var jpegDataUri = "data:image/jpeg;base64," + btoa(byteout.join(""));\n byteout = [];\n var duration = new Date().getTime() - time_start;\n return jpegDataUri;\n };\n function setQuality(quality2) {\n if (quality2 <= 0) {\n quality2 = 1;\n }\n if (quality2 > 100) {\n quality2 = 100;\n }\n if (currentQuality == quality2)\n return;\n var sf = 0;\n if (quality2 < 50) {\n sf = Math.floor(5e3 / quality2);\n } else {\n sf = Math.floor(200 - quality2 * 2);\n }\n initQuantTables(sf);\n currentQuality = quality2;\n }\n function init3() {\n var time_start = new Date().getTime();\n if (!quality)\n quality = 50;\n initCharLookupTable();\n initHuffmanTbl();\n initCategoryNumber();\n initRGBYUVTable();\n setQuality(quality);\n var duration = new Date().getTime() - time_start;\n }\n init3();\n }\n if (typeof module !== "undefined") {\n module.exports = encode2;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].encode = encode2;\n }\n function encode2(imgData, qu) {\n if (typeof qu === "undefined")\n qu = 50;\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(imgData, qu);\n return {\n data,\n width: imgData.width,\n height: imgData.height\n };\n }\n }\n});\n\n// node_modules/jpeg-js/lib/decoder.js\nvar require_decoder = __commonJS({\n "node_modules/jpeg-js/lib/decoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var JpegImage = function jpegImage() {\n "use strict";\n var dctZigZag = new Int32Array([\n 0,\n 1,\n 8,\n 16,\n 9,\n 2,\n 3,\n 10,\n 17,\n 24,\n 32,\n 25,\n 18,\n 11,\n 4,\n 5,\n 12,\n 19,\n 26,\n 33,\n 40,\n 48,\n 41,\n 34,\n 27,\n 20,\n 13,\n 6,\n 7,\n 14,\n 21,\n 28,\n 35,\n 42,\n 49,\n 56,\n 57,\n 50,\n 43,\n 36,\n 29,\n 22,\n 15,\n 23,\n 30,\n 37,\n 44,\n 51,\n 58,\n 59,\n 52,\n 45,\n 38,\n 31,\n 39,\n 46,\n 53,\n 60,\n 61,\n 54,\n 47,\n 55,\n 62,\n 63\n ]);\n var dctCos1 = 4017;\n var dctSin1 = 799;\n var dctCos3 = 3406;\n var dctSin3 = 2276;\n var dctCos6 = 1567;\n var dctSin6 = 3784;\n var dctSqrt2 = 5793;\n var dctSqrt1d2 = 2896;\n function constructor() {\n }\n function buildHuffmanTable2(codeLengths, values) {\n var k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n var p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n }\n function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive, opts) {\n var precision = frame.precision;\n var samplesPerLine = frame.samplesPerLine;\n var scanLines = frame.scanLines;\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\n var maxH = frame.maxH, maxV = frame.maxV;\n var startOffset = offset, bitsData = 0, bitsCount = 0;\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return bitsData >> bitsCount & 1;\n }\n bitsData = data[offset++];\n if (bitsData == 255) {\n var nextByte = data[offset++];\n if (nextByte) {\n throw new Error("unexpected marker: " + (bitsData << 8 | nextByte).toString(16));\n }\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n function decodeHuffman(tree) {\n var node = tree, bit;\n while ((bit = readBit()) !== null) {\n node = node[bit];\n if (typeof node === "number")\n return node;\n if (typeof node !== "object")\n throw new Error("invalid huffman sequence");\n }\n return null;\n }\n function receive(length) {\n var n2 = 0;\n while (length > 0) {\n var bit = readBit();\n if (bit === null)\n return;\n n2 = n2 << 1 | bit;\n length--;\n }\n return n2;\n }\n function receiveAndExtend(length) {\n var n2 = receive(length);\n if (n2 >= 1 << length - 1)\n return n2;\n return n2 + (-1 << length) + 1;\n }\n function decodeBaseline(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t);\n zz[0] = component2.pred += diff;\n var k2 = 1;\n while (k2 < 64) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15)\n break;\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s);\n k2++;\n }\n }\n function decodeDCFirst(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n zz[0] = component2.pred += diff;\n }\n function decodeDCSuccessive(component2, zz) {\n zz[0] |= readBit() << successive;\n }\n var eobrun = 0;\n function decodeACFirst(component2, zz) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n var k2 = spectralStart, e = spectralEnd;\n while (k2 <= e) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s) * (1 << successive);\n k2++;\n }\n }\n var successiveACState = 0, successiveACNextValue;\n function decodeACSuccessive(component2, zz) {\n var k2 = spectralStart, e = spectralEnd, r = 0;\n while (k2 <= e) {\n var z = dctZigZag[k2];\n var direction = zz[z] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0:\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1)\n throw new Error("invalid ACn encoding");\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1:\n case 2:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n r--;\n if (r === 0)\n successiveACState = successiveACState == 2 ? 3 : 0;\n }\n break;\n case 3:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n zz[z] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n break;\n }\n k2++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0)\n successiveACState = 0;\n }\n }\n function decodeMcu(component2, decode4, mcu2, row, col) {\n var mcuRow = mcu2 / mcusPerLine | 0;\n var mcuCol = mcu2 % mcusPerLine;\n var blockRow = mcuRow * component2.v + row;\n var blockCol = mcuCol * component2.h + col;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n function decodeBlock(component2, decode4, mcu2) {\n var blockRow = mcu2 / component2.blocksPerLine | 0;\n var blockCol = mcu2 % component2.blocksPerLine;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n var componentsLength = components.length;\n var component, i, j, k, n;\n var decodeFn;\n if (progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n var mcu = 0, marker;\n var mcuExpected;\n if (componentsLength == 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n if (!resetInterval)\n resetInterval = mcuExpected;\n var h, v;\n while (mcu < mcuExpected) {\n for (i = 0; i < componentsLength; i++)\n components[i].pred = 0;\n eobrun = 0;\n if (componentsLength == 1) {\n component = components[0];\n for (n = 0; n < resetInterval; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < resetInterval; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n if (mcu === mcuExpected)\n break;\n }\n }\n if (mcu === mcuExpected) {\n do {\n if (data[offset] === 255) {\n if (data[offset + 1] !== 0) {\n break;\n }\n }\n offset += 1;\n } while (offset < data.length - 2);\n }\n bitsCount = 0;\n marker = data[offset] << 8 | data[offset + 1];\n if (marker < 65280) {\n throw new Error("marker was not found");\n }\n if (marker >= 65488 && marker <= 65495) {\n offset += 2;\n } else\n break;\n }\n return offset - startOffset;\n }\n function buildComponentData(frame, component) {\n var lines = [];\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var samplesPerLine = blocksPerLine << 3;\n var R = new Int32Array(64), r = new Uint8Array(64);\n function quantizeAndInverse(zz, dataOut, dataIn) {\n var qt = component.quantizationTable;\n var v0, v1, v2, v3, v4, v5, v6, v7, t;\n var p = dataIn;\n var i2;\n for (i2 = 0; i2 < 64; i2++)\n p[i2] = zz[i2] * qt[i2];\n for (i2 = 0; i2 < 8; ++i2) {\n var row = 8 * i2;\n if (p[1 + row] == 0 && p[2 + row] == 0 && p[3 + row] == 0 && p[4 + row] == 0 && p[5 + row] == 0 && p[6 + row] == 0 && p[7 + row] == 0) {\n t = dctSqrt2 * p[0 + row] + 512 >> 10;\n p[0 + row] = t;\n p[1 + row] = t;\n p[2 + row] = t;\n p[3 + row] = t;\n p[4 + row] = t;\n p[5 + row] = t;\n p[6 + row] = t;\n p[7 + row] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 + row] + 128 >> 8;\n v1 = dctSqrt2 * p[4 + row] + 128 >> 8;\n v2 = p[2 + row];\n v3 = p[6 + row];\n v4 = dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128 >> 8;\n v7 = dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128 >> 8;\n v5 = p[3 + row] << 4;\n v6 = p[5 + row] << 4;\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 + row] = v0 + v7;\n p[7 + row] = v0 - v7;\n p[1 + row] = v1 + v6;\n p[6 + row] = v1 - v6;\n p[2 + row] = v2 + v5;\n p[5 + row] = v2 - v5;\n p[3 + row] = v3 + v4;\n p[4 + row] = v3 - v4;\n }\n for (i2 = 0; i2 < 8; ++i2) {\n var col = i2;\n if (p[1 * 8 + col] == 0 && p[2 * 8 + col] == 0 && p[3 * 8 + col] == 0 && p[4 * 8 + col] == 0 && p[5 * 8 + col] == 0 && p[6 * 8 + col] == 0 && p[7 * 8 + col] == 0) {\n t = dctSqrt2 * dataIn[i2 + 0] + 8192 >> 14;\n p[0 * 8 + col] = t;\n p[1 * 8 + col] = t;\n p[2 * 8 + col] = t;\n p[3 * 8 + col] = t;\n p[4 * 8 + col] = t;\n p[5 * 8 + col] = t;\n p[6 * 8 + col] = t;\n p[7 * 8 + col] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 * 8 + col] + 2048 >> 12;\n v1 = dctSqrt2 * p[4 * 8 + col] + 2048 >> 12;\n v2 = p[2 * 8 + col];\n v3 = p[6 * 8 + col];\n v4 = dctSqrt1d2 * (p[1 * 8 + col] - p[7 * 8 + col]) + 2048 >> 12;\n v7 = dctSqrt1d2 * (p[1 * 8 + col] + p[7 * 8 + col]) + 2048 >> 12;\n v5 = p[3 * 8 + col];\n v6 = p[5 * 8 + col];\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 * 8 + col] = v0 + v7;\n p[7 * 8 + col] = v0 - v7;\n p[1 * 8 + col] = v1 + v6;\n p[6 * 8 + col] = v1 - v6;\n p[2 * 8 + col] = v2 + v5;\n p[5 * 8 + col] = v2 - v5;\n p[3 * 8 + col] = v3 + v4;\n p[4 * 8 + col] = v3 - v4;\n }\n for (i2 = 0; i2 < 64; ++i2) {\n var sample2 = 128 + (p[i2] + 8 >> 4);\n dataOut[i2] = sample2 < 0 ? 0 : sample2 > 255 ? 255 : sample2;\n }\n }\n requestMemoryAllocation(samplesPerLine * blocksPerColumn * 8);\n var i, j;\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n var scanLine = blockRow << 3;\n for (i = 0; i < 8; i++)\n lines.push(new Uint8Array(samplesPerLine));\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n quantizeAndInverse(component.blocks[blockRow][blockCol], r, R);\n var offset = 0, sample = blockCol << 3;\n for (j = 0; j < 8; j++) {\n var line = lines[scanLine + j];\n for (i = 0; i < 8; i++)\n line[sample + i] = r[offset++];\n }\n }\n }\n return lines;\n }\n function clampTo8bit(a) {\n return a < 0 ? 0 : a > 255 ? 255 : a;\n }\n constructor.prototype = {\n load: function load(path) {\n var xhr = new XMLHttpRequest();\n xhr.open("GET", path, true);\n xhr.responseType = "arraybuffer";\n xhr.onload = function() {\n var data = new Uint8Array(xhr.response || xhr.mozResponseArrayBuffer);\n this.parse(data);\n if (this.onload)\n this.onload();\n }.bind(this);\n xhr.send(null);\n },\n parse: function parse(data) {\n var maxResolutionInPixels = this.opts.maxResolutionInMP * 1e3 * 1e3;\n var offset = 0, length = data.length;\n function readUint16() {\n var value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n var length2 = readUint16();\n var array = data.subarray(offset, offset + length2 - 2);\n offset += array.length;\n return array;\n }\n function prepareComponents(frame2) {\n var maxH2 = 1, maxV2 = 1;\n var component2, componentId2;\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n if (maxH2 < component2.h)\n maxH2 = component2.h;\n if (maxV2 < component2.v)\n maxV2 = component2.v;\n }\n }\n var mcusPerLine = Math.ceil(frame2.samplesPerLine / 8 / maxH2);\n var mcusPerColumn = Math.ceil(frame2.scanLines / 8 / maxV2);\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n var blocksPerLine = Math.ceil(Math.ceil(frame2.samplesPerLine / 8) * component2.h / maxH2);\n var blocksPerColumn = Math.ceil(Math.ceil(frame2.scanLines / 8) * component2.v / maxV2);\n var blocksPerLineForMcu = mcusPerLine * component2.h;\n var blocksPerColumnForMcu = mcusPerColumn * component2.v;\n var blocksToAllocate = blocksPerColumnForMcu * blocksPerLineForMcu;\n var blocks = [];\n requestMemoryAllocation(blocksToAllocate * 256);\n for (var i2 = 0; i2 < blocksPerColumnForMcu; i2++) {\n var row = [];\n for (var j2 = 0; j2 < blocksPerLineForMcu; j2++)\n row.push(new Int32Array(64));\n blocks.push(row);\n }\n component2.blocksPerLine = blocksPerLine;\n component2.blocksPerColumn = blocksPerColumn;\n component2.blocks = blocks;\n }\n }\n frame2.maxH = maxH2;\n frame2.maxV = maxV2;\n frame2.mcusPerLine = mcusPerLine;\n frame2.mcusPerColumn = mcusPerColumn;\n }\n var jfif = null;\n var adobe = null;\n var pixels = null;\n var frame, resetInterval;\n var quantizationTables = [], frames = [];\n var huffmanTablesAC = [], huffmanTablesDC = [];\n var fileMarker = readUint16();\n var malformedDataOffset = -1;\n this.comments = [];\n if (fileMarker != 65496) {\n throw new Error("SOI not found");\n }\n fileMarker = readUint16();\n while (fileMarker != 65497) {\n var i, j, l;\n switch (fileMarker) {\n case 65280:\n break;\n case 65504:\n case 65505:\n case 65506:\n case 65507:\n case 65508:\n case 65509:\n case 65510:\n case 65511:\n case 65512:\n case 65513:\n case 65514:\n case 65515:\n case 65516:\n case 65517:\n case 65518:\n case 65519:\n case 65534:\n var appData = readDataBlock();\n if (fileMarker === 65534) {\n var comment = String.fromCharCode.apply(null, appData);\n this.comments.push(comment);\n }\n if (fileMarker === 65504) {\n if (appData[0] === 74 && appData[1] === 70 && appData[2] === 73 && appData[3] === 70 && appData[4] === 0) {\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: appData[8] << 8 | appData[9],\n yDensity: appData[10] << 8 | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n };\n }\n }\n if (fileMarker === 65505) {\n if (appData[0] === 69 && appData[1] === 120 && appData[2] === 105 && appData[3] === 102 && appData[4] === 0) {\n this.exifBuffer = appData.subarray(5, appData.length);\n }\n }\n if (fileMarker === 65518) {\n if (appData[0] === 65 && appData[1] === 100 && appData[2] === 111 && appData[3] === 98 && appData[4] === 101 && appData[5] === 0) {\n adobe = {\n version: appData[6],\n flags0: appData[7] << 8 | appData[8],\n flags1: appData[9] << 8 | appData[10],\n transformCode: appData[11]\n };\n }\n }\n break;\n case 65499:\n var quantizationTablesLength = readUint16();\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n requestMemoryAllocation(64 * 4);\n var tableData = new Int32Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = readUint16();\n }\n } else\n throw new Error("DQT: invalid table spec");\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n case 65472:\n case 65473:\n case 65474:\n readUint16();\n frame = {};\n frame.extended = fileMarker === 65473;\n frame.progressive = fileMarker === 65474;\n frame.precision = data[offset++];\n frame.scanLines = readUint16();\n frame.samplesPerLine = readUint16();\n frame.components = {};\n frame.componentsOrder = [];\n var pixelsInFrame = frame.scanLines * frame.samplesPerLine;\n if (pixelsInFrame > maxResolutionInPixels) {\n var exceededAmount = Math.ceil((pixelsInFrame - maxResolutionInPixels) / 1e6);\n throw new Error(`maxResolutionInMP limit exceeded by ${exceededAmount}MP`);\n }\n var componentsCount = data[offset++], componentId;\n var maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n var h = data[offset + 1] >> 4;\n var v = data[offset + 1] & 15;\n var qId = data[offset + 2];\n if (h <= 0 || v <= 0) {\n throw new Error("Invalid sampling factor, expected values above 0");\n }\n frame.componentsOrder.push(componentId);\n frame.components[componentId] = {\n h,\n v,\n quantizationIdx: qId\n };\n offset += 3;\n }\n prepareComponents(frame);\n frames.push(frame);\n break;\n case 65476:\n var huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n requestMemoryAllocation(16 + codeLengthSum);\n var huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable2(codeLengths, huffmanValues);\n }\n break;\n case 65501:\n readUint16();\n resetInterval = readUint16();\n break;\n case 65500:\n readUint16();\n readUint16();\n break;\n case 65498:\n var scanLength = readUint16();\n var selectorsCount = data[offset++];\n var components = [], component;\n for (i = 0; i < selectorsCount; i++) {\n component = frame.components[data[offset++]];\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n var processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, this.opts);\n offset += processed;\n break;\n case 65535:\n if (data[offset] !== 255) {\n offset--;\n }\n break;\n default:\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n break;\n } else if (fileMarker === 224 || fileMarker == 225) {\n if (malformedDataOffset !== -1) {\n throw new Error(`first unknown JPEG marker at offset ${malformedDataOffset.toString(16)}, second unknown JPEG marker ${fileMarker.toString(16)} at offset ${(offset - 1).toString(16)}`);\n }\n malformedDataOffset = offset - 1;\n const nextOffset = readUint16();\n if (data[offset + nextOffset - 2] === 255) {\n offset += nextOffset - 2;\n break;\n }\n }\n throw new Error("unknown JPEG marker " + fileMarker.toString(16));\n }\n fileMarker = readUint16();\n }\n if (frames.length != 1)\n throw new Error("only single frame JPEGs supported");\n for (var i = 0; i < frames.length; i++) {\n var cp = frames[i].components;\n for (var j in cp) {\n cp[j].quantizationTable = quantizationTables[cp[j].quantizationIdx];\n delete cp[j].quantizationIdx;\n }\n }\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (var i = 0; i < frame.componentsOrder.length; i++) {\n var component = frame.components[frame.componentsOrder[i]];\n this.components.push({\n lines: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV\n });\n }\n },\n getData: function getData(width, height) {\n var scaleX = this.width / width, scaleY = this.height / height;\n var component1, component2, component3, component4;\n var component1Line, component2Line, component3Line, component4Line;\n var x, y;\n var offset = 0;\n var Y, Cb, Cr, K, C, M, Ye, R, G, B;\n var colorTransform;\n var dataLength = width * height * this.components.length;\n requestMemoryAllocation(dataLength);\n var data = new Uint8Array(dataLength);\n switch (this.components.length) {\n case 1:\n component1 = this.components[0];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 2:\n component1 = this.components[0];\n component2 = this.components[1];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n Y = component2Line[0 | x * component2.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 3:\n colorTransform = true;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n R = component1Line[0 | x * component1.scaleX * scaleX];\n G = component2Line[0 | x * component2.scaleX * scaleX];\n B = component3Line[0 | x * component3.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n R = clampTo8bit(Y + 1.402 * (Cr - 128));\n G = clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n B = clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = R;\n data[offset++] = G;\n data[offset++] = B;\n }\n }\n break;\n case 4:\n if (!this.adobe)\n throw new Error("Unsupported color mode (4 components)");\n colorTransform = false;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n component4 = this.components[3];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n component4Line = component4.lines[0 | y * component4.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n C = component1Line[0 | x * component1.scaleX * scaleX];\n M = component2Line[0 | x * component2.scaleX * scaleX];\n Ye = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n C = 255 - clampTo8bit(Y + 1.402 * (Cr - 128));\n M = 255 - clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n Ye = 255 - clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = 255 - C;\n data[offset++] = 255 - M;\n data[offset++] = 255 - Ye;\n data[offset++] = 255 - K;\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n return data;\n },\n copyToImageData: function copyToImageData(imageData, formatAsRGBA) {\n var width = imageData.width, height = imageData.height;\n var imageDataArray = imageData.data;\n var data = this.getData(width, height);\n var i = 0, j = 0, x, y;\n var Y, K, C, M, R, G, B;\n switch (this.components.length) {\n case 1:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n Y = data[i++];\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 3:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n R = data[i++];\n G = data[i++];\n B = data[i++];\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 4:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n C = data[i++];\n M = data[i++];\n Y = data[i++];\n K = data[i++];\n R = 255 - clampTo8bit(C * (1 - K / 255) + K);\n G = 255 - clampTo8bit(M * (1 - K / 255) + K);\n B = 255 - clampTo8bit(Y * (1 - K / 255) + K);\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n }\n };\n var totalBytesAllocated = 0;\n var maxMemoryUsageBytes = 0;\n function requestMemoryAllocation(increaseAmount = 0) {\n var totalMemoryImpactBytes = totalBytesAllocated + increaseAmount;\n if (totalMemoryImpactBytes > maxMemoryUsageBytes) {\n var exceededAmount = Math.ceil((totalMemoryImpactBytes - maxMemoryUsageBytes) / 1024 / 1024);\n throw new Error(`maxMemoryUsageInMB limit exceeded by at least ${exceededAmount}MB`);\n }\n totalBytesAllocated = totalMemoryImpactBytes;\n }\n constructor.resetMaxMemoryUsage = function(maxMemoryUsageBytes_) {\n totalBytesAllocated = 0;\n maxMemoryUsageBytes = maxMemoryUsageBytes_;\n };\n constructor.getBytesAllocated = function() {\n return totalBytesAllocated;\n };\n constructor.requestMemoryAllocation = requestMemoryAllocation;\n return constructor;\n }();\n if (typeof module !== "undefined") {\n module.exports = decode3;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].decode = decode3;\n }\n function decode3(jpegData, userOpts = {}) {\n var defaultOpts = {\n colorTransform: void 0,\n useTArray: false,\n formatAsRGBA: true,\n tolerantDecoding: true,\n maxResolutionInMP: 100,\n maxMemoryUsageInMB: 512\n };\n var opts = { ...defaultOpts, ...userOpts };\n var arr = new Uint8Array(jpegData);\n var decoder = new JpegImage();\n decoder.opts = opts;\n JpegImage.resetMaxMemoryUsage(opts.maxMemoryUsageInMB * 1024 * 1024);\n decoder.parse(arr);\n var channels = opts.formatAsRGBA ? 4 : 3;\n var bytesNeeded = decoder.width * decoder.height * channels;\n try {\n JpegImage.requestMemoryAllocation(bytesNeeded);\n var image = {\n width: decoder.width,\n height: decoder.height,\n exifBuffer: decoder.exifBuffer,\n data: opts.useTArray ? new Uint8Array(bytesNeeded) : Buffer2.alloc(bytesNeeded)\n };\n if (decoder.comments.length > 0) {\n image["comments"] = decoder.comments;\n }\n } catch (err) {\n if (err instanceof RangeError) {\n throw new Error("Could not allocate enough memory for the image. Required: " + bytesNeeded);\n }\n if (err instanceof ReferenceError) {\n if (err.message === "Buffer is not defined") {\n throw new Error("Buffer is not globally defined in this environment. Consider setting useTArray to true");\n }\n }\n throw err;\n }\n decoder.copyToImageData(image, opts.formatAsRGBA);\n return image;\n }\n }\n});\n\n// node_modules/jpeg-js/index.js\nvar require_jpeg_js = __commonJS({\n "node_modules/jpeg-js/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var encode2 = require_encoder();\n var decode3 = require_decoder();\n module.exports = {\n encode: encode2,\n decode: decode3\n };\n }\n});\n\n// src/processor.worker.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/platform.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/requests.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar xmlhttprequest;\nif (false)\n xmlhttprequest = typeof GM_xmlhttpRequest != "undefined" ? GM_xmlhttpRequest : typeof GM != "undefined" ? GM.xmlHttpRequest : window["GM_xmlhttpRequest"];\nvar GM_fetch = (...[url, opt, lisn]) => {\n function blobTo(to, blob) {\n if (to == "arrayBuffer" && blob.arrayBuffer) {\n const ret = blob.arrayBuffer();\n if (ret)\n return ret;\n }\n return new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.onload = function(event) {\n if (!event)\n return;\n if (to == "base64")\n resolve(event.target.result);\n else\n resolve(event.target.result);\n };\n if (to == "arrayBuffer")\n fileReader.readAsArrayBuffer(blob);\n else if (to == "base64")\n fileReader.readAsDataURL(blob);\n else if (to == "text")\n fileReader.readAsText(blob, "utf-8");\n else\n reject(new Error("unknown to"));\n });\n }\n return new Promise((resolve, reject) => {\n const gmopt = {\n url: url.toString(),\n data: opt?.body,\n responseType: "blob",\n headers: opt?.headers,\n method: opt?.method || "GET",\n ...lisn ? {\n onprogress: (prog) => {\n if (prog.loaded != prog.total && prog.total != 0)\n lisn.dispatchEvent(new CustomEvent("progress", { detail: [prog.loaded, prog.total] }));\n }\n } : {},\n onload: (resp) => {\n if (resp.status / 100 >= 4) {\n reject(new Error("Server Error: " + resp.status));\n return;\n }\n const blob = resp.response;\n const ref = resp;\n ref.blob = () => Promise.resolve(blob);\n ref.arrayBuffer = () => blobTo("arrayBuffer", blob);\n ref.text = () => blobTo("text", blob);\n ref.json = async () => JSON.parse(await blobTo("text", blob));\n resolve(resp);\n },\n ontimeout: () => reject(new Error("fetch timeout")),\n onerror: (...args) => {\n reject(new Error("fetch error"));\n },\n onabort: () => reject(new Error("fetch abort"))\n };\n xmlhttprequest(gmopt);\n });\n};\n\n// src/platform.ts\nvar lqueue = {};\nvar localSet = (key2, value) => localStorage.setItem("__pee__" + key2, JSON.stringify(value));\nvar port1;\nconsole.log("worker", false);\nvar msgBuff = [];\nvar setupPort = (port) => {\n port1 = port;\n port1.onmessage = (ev) => {\n lqueue[ev.data.id](ev.data);\n };\n if (true) {\n for (const msg of msgBuff) {\n port.postMessage(msg[0], { transfer: msg[1] });\n }\n msgBuff = [];\n }\n};\nif (true) {\n port1 = {\n onmessage(ev) {\n lqueue[ev.data.id](ev.data);\n },\n postMessage(msg, tr) {\n msgBuff.push([msg, tr]);\n }\n };\n}\nvar gid = 0;\nvar sendCmd = (cmd, tr, overwrite = false, todelete = false) => {\n const prom = new Promise((_) => {\n const id = gid++;\n if (overwrite)\n cmd.id = id;\n lqueue[id] = (e) => {\n _(e.res);\n if (todelete)\n delete lqueue[id];\n };\n port1.postMessage({ id, ...cmd }, tr || []);\n });\n return prom;\n};\nvar bridge = (name, f) => {\n if (false)\n return f;\n if (false)\n return f;\n return (...args) => {\n return sendCmd({ name, args });\n };\n};\nvar Bridged = (ctor) => {\n const keys = Object.getOwnPropertyNames(ctor).filter((k) => typeof ctor[k] == "function");\n for (const k of keys)\n ctor[k] = bridge(k, ctor[k]);\n};\nif (false) {\n popupport = chrome.runtime.connect({ name: "popup" });\n popupport.onMessage.addListener((msg) => {\n if (msg.id in pendingcmds) {\n pendingcmds[msg.id](msg);\n delete pendingcmds[msg.id];\n }\n });\n}\nvar Platform = class {\n static async openInTab(src, opts) {\n if (false) {\n return GM.openInTab(src, opts);\n }\n const obj = false ? chrome : browser;\n let i;\n if (opts.insert)\n i = (await obj.tabs.getCurrent()).index + 1;\n return obj.tabs.create({ active: opts.active, url: src, index: i });\n }\n static async getValue(key2, def) {\n const isinls = "__pee__" + key2 in localStorage;\n let ret;\n if (isinls) {\n let it = localStorage.getItem("__pee__" + key2);\n if (it === "undefined")\n it = null;\n ret = { ...def, ...JSON.parse(it || "{}") };\n } else\n ret = def;\n if (true) {\n if (isinls) {\n delete localStorage["__pee__" + key2];\n await chrome.storage.local.set({\n [key2]: JSON.stringify(ret)\n });\n } else {\n const d = await chrome.storage.local.get([key2]);\n if (typeof d[key2] == "string")\n return { ...def, ...await JSON.parse("" + d[key2] || "{}") };\n }\n }\n return ret;\n }\n static setValue(name, val) {\n localSet(name, val);\n }\n};\nPlatform.cmdid = 0;\nPlatform = __decorateClass([\n Bridged\n], Platform);\nvar corsFetch = async (input, init3, lsn) => {\n const id = gid++;\n let transfer = [];\n if (init3?.body) {\n if (false) {\n [init3.body, transfer] = await braveserialize(init3.body);\n }\n }\n const prom = new Promise((_, rej) => {\n let gcontroller;\n let buffer = [];\n let finished = false;\n const rs = new ReadableStream({\n start(controller) {\n gcontroller = controller;\n buffer.forEach((b) => gcontroller?.enqueue(b));\n buffer = [];\n if (finished) {\n gcontroller.close();\n }\n }\n });\n let s;\n s = 0;\n const cmdbuff = [];\n lqueue[id] = async (e) => {\n if (e.progress) {\n if (lsn)\n lsn.dispatchEvent(new CustomEvent("progress", { detail: e.progress }));\n }\n if (e.pushData) {\n if (e.s > s) {\n let idx = 0;\n while (idx < cmdbuff.length) {\n if (cmdbuff[idx].s > e.s)\n break;\n idx++;\n }\n cmdbuff.splice(idx, 0, e);\n return;\n }\n const processCmd = (e2) => {\n if (e2.pushData.data) {\n const data = new Uint8Array(e2.pushData.data);\n if (gcontroller)\n gcontroller.enqueue(data);\n else\n buffer.push(data);\n } else {\n if (gcontroller)\n gcontroller?.close();\n else\n finished = true;\n }\n };\n await processCmd(e);\n s++;\n while (cmdbuff[0]?.s == s) {\n await processCmd(cmdbuff.shift());\n s++;\n }\n }\n if (e.setRes) {\n const arrayBuffer = async () => {\n const r = rs.getReader();\n await sendCmd({ name: "fullyRead", fid: id });\n const abs = [];\n let res;\n do {\n res = await r.read();\n if (res.done)\n break;\n abs.push(res.value);\n } while (!res.done);\n const sum = abs.reduce((a, b) => a + b.byteLength, 0);\n const ret = new Uint8Array(sum);\n abs.reduce((ptr, arr) => {\n ret.set(arr, ptr);\n return ptr + arr.byteLength;\n }, 0);\n r.releaseLock();\n return ret;\n };\n const blob = async () => new Blob([await arrayBuffer()]);\n const text = async () => new TextDecoder().decode(await arrayBuffer());\n const json = async () => JSON.parse(await text());\n if (e.ok)\n _({\n body: rs,\n ok: e.ok,\n headers: e.headers,\n redirected: e.redirected,\n type: e.type,\n url: e.url,\n status: e.status,\n bodyUsed: e.bodyUsed,\n statusText: e.statusText,\n clone() {\n return this;\n },\n arrayBuffer,\n blob,\n text,\n json,\n async formData() {\n return new FormData();\n }\n });\n else {\n rej(new Error(`${e.url} - ${e.status}`));\n }\n }\n };\n port1.postMessage({\n id,\n name: "corsFetch",\n args: [input, init3]\n }, transfer);\n });\n return prom;\n};\nasync function getHeaders(s) {\n if (false)\n return headerStringToObject(await GM_head(s));\n const res = await ifetch(s, {\n method: "HEAD"\n });\n return res.headers;\n}\nasync function ifetch(...[url, opt, lisn]) {\n if (true)\n return corsFetch(url.toString(), opt, lisn);\n return GM_fetch(url, opt, lisn);\n}\nasync function* streamRemote(url, chunkSize = 72 * 1024, fetchRestOnNonCanceled = true) {\n let size = Number.POSITIVE_INFINITY;\n let ptr = 0;\n let fetchSize = chunkSize;\n while (ptr != size) {\n let obj;\n const fres = await ifetch(url, { headers: { range: `bytes=${ptr}-${ptr + fetchSize - 1}` } });\n if (false) {\n obj = headerStringToObject(fres.responseHeaders);\n } else {\n obj = fres.headers;\n }\n if (!("content-length" in obj)) {\n console.warn("no content lenght???", url);\n break;\n }\n if ("content-range" in obj) {\n size = +obj["content-range"].split("/")[1];\n }\n const len = +obj["content-length"];\n ptr += len;\n if (fetchRestOnNonCanceled)\n fetchSize = size;\n const val = Buffer2.from(await fres.arrayBuffer());\n const e = yield val;\n if (e) {\n break;\n }\n }\n}\n\n// src/stores.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/store/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/internal/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction noop() {\n}\nfunction run(fn) {\n return fn();\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === "function";\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || (a && typeof a === "object" || typeof a === "function");\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nvar resolved_promise = Promise.resolve();\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nvar SvelteElement;\nif (typeof HTMLElement === "function") {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: "open" });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n for (const key2 in this.$$.slotted) {\n this.appendChild(this.$$.slotted[key2]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []);\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n\n// node_modules/svelte/store/index.mjs\nvar subscriber_queue = [];\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = /* @__PURE__ */ new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) {\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe2(run2, invalidate = noop) {\n const subscriber = [run2, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run2(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe: subscribe2 };\n}\n\n// src/stores.ts\nvar localLoad = async (key2, def) => {\n const ret = await Platform.getValue(key2, def);\n return ret;\n};\nvar localSet2 = (key2, value) => {\n if (true) {\n return;\n }\n if (true)\n chrome.storage.local.set({ [key2]: JSON.stringify(value) });\n else\n localStorage.setItem("__pee__" + key2, JSON.stringify(value));\n};\nvar initial_settings = {\n loop: true,\n dh: false,\n pmeth: 5,\n xpv: false,\n xpi: false,\n hyd: false,\n notcata: false,\n ak: "",\n auto_embed: 0,\n auto_tags: "",\n te: false,\n eye: false,\n ca: false,\n pre: false,\n prev: false,\n sh: false,\n ep: false,\n tm: false,\n dvc: false,\n expte: false,\n mdist: -1,\n phash: false,\n hotlink: false,\n jpeg: false,\n vercheck: false,\n cache: void 0,\n fhost: 0,\n maxe: 5,\n conc: 8,\n ho: false,\n blacklist: [],\n rsources: []\n};\nvar settings = writable();\nvar appState = writable({\n isCatalog: false,\n is4chanX: false,\n akValid: false,\n herror: "",\n client: null,\n processing: 0,\n processed: 0,\n foundPosts: []\n});\nsettings.subscribe((newVal) => {\n if (newVal)\n localSet2("settingsv2", newVal);\n});\n\n// src/pngv3.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer3 = __toESM(require_buffer(), 1);\n\n// src/png.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_crc_32 = __toESM(require_crc32(), 1);\nvar import_buffer = __toESM(require_buffer(), 1);\nvar PNGDecoder = class {\n constructor(reader, strict = true) {\n this.reader = reader;\n this.strict = strict;\n this.req = 8;\n this.ptr = 8;\n this.stopped = false;\n this.repr = import_buffer.Buffer.from([]);\n }\n async catchup() {\n while (this.repr.byteLength < this.req) {\n const chunk = await this.reader.read();\n if (chunk.done) {\n if (this.strict)\n throw new Error(`Unexpected EOF, got ${this.repr.byteLength}, required ${this.req}, ${chunk.value}`);\n this.stopped = true;\n return;\n }\n this.repr = import_buffer.Buffer.concat([this.repr, chunk.value]);\n }\n }\n async *chunks() {\n while (true) {\n this.req += 8;\n await this.catchup();\n if (this.stopped)\n break;\n const length = this.repr.readUInt32BE(this.ptr);\n const name = this.repr.slice(this.ptr + 4, this.ptr + 8).toString();\n this.ptr += 4;\n this.req += length + 4;\n await this.catchup();\n yield [\n name,\n this.repr.slice(this.ptr, this.ptr + length + 4),\n this.ptr + length > this.repr.length ? -1 : this.repr.readUInt32BE(this.ptr + length + 4),\n this.ptr\n ];\n if (this.stopped)\n break;\n this.ptr += length + 8;\n if (name == "IEND")\n break;\n }\n }\n async dtor() {\n }\n};\nvar PNGEncoder = class {\n constructor(bytes) {\n this.writer = bytes.getWriter();\n this.writer.write(import_buffer.Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]));\n }\n async insertchunk(chunk) {\n let b = import_buffer.Buffer.alloc(4);\n const buff = chunk[1];\n b.writeInt32BE(buff.length - 4, 0);\n await this.writer.write(b);\n await this.writer.write(buff);\n b = import_buffer.Buffer.alloc(4);\n b.writeInt32BE((0, import_crc_32.buf)(buff), 0);\n await this.writer.write(b);\n }\n async dtor() {\n this.writer.releaseLock();\n }\n};\n\n// src/utils.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer2 = __toESM(require_buffer(), 1);\n\n// src/assets/hasembed.png\nvar hasembed_default = __toBinary("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");\n\n// src/filehosts.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction parseForm(data) {\n const form = new FormData();\n Object.entries(data).filter(([key2, value]) => value !== null).map(([key2, value]) => form.append(key2, value));\n return form;\n}\nvar lolisafe = (domain, serving = domain) => ({\n domain,\n serving,\n async uploadFile(f) {\n const resp = await ifetch(`https://${domain}/api/upload`, {\n headers: {\n accept: "application/json"\n },\n "body": parseForm({\n reqtype: "fileupload",\n "files[]": new File([f], "f.pee")\n }),\n "method": "POST"\n });\n const res = await resp.json();\n return res.files.map((e) => e.url)[0];\n }\n});\nvar catbox = (domain, serving) => ({\n domain,\n serving,\n async uploadFile(inj) {\n const resp = await ifetch(`https://${domain}/user/api.php`, {\n method: "POST",\n body: parseForm({\n reqtype: "fileupload",\n fileToUpload: inj\n })\n });\n return resp.text();\n }\n});\nvar filehosts = [\n catbox("catbox.moe", "files.catbox.moe"),\n catbox("pomf.moe", "a.pomf.cat"),\n lolisafe("take-me-to.space"),\n lolisafe("zz.ht", "z.zz.fo")\n];\n\n// node_modules/file-type/browser.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer4 = __toESM(require_buffer(), 1);\nvar import_readable_web_to_node_stream = __toESM(require_lib(), 1);\n\n// node_modules/file-type/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer3 = __toESM(require_buffer(), 1);\n\n// node_modules/token-types/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar ieee754 = __toESM(require_ieee754(), 1);\nvar import_node_buffer = __toESM(require_buffer(), 1);\nvar AnsiStringType = class {\n constructor(len) {\n this.len = len;\n }\n static decode(buffer, offset, until) {\n let str = "";\n for (let i = offset; i < until; ++i) {\n str += AnsiStringType.codePointToString(AnsiStringType.singleByteDecoder(buffer[i]));\n }\n return str;\n }\n static inRange(a, min, max) {\n return min <= a && a <= max;\n }\n static codePointToString(cp) {\n if (cp <= 65535) {\n return String.fromCharCode(cp);\n } else {\n cp -= 65536;\n return String.fromCharCode((cp >> 10) + 55296, (cp & 1023) + 56320);\n }\n }\n static singleByteDecoder(bite) {\n if (AnsiStringType.inRange(bite, 0, 127)) {\n return bite;\n }\n const codePoint = AnsiStringType.windows1252[bite - 128];\n if (codePoint === null) {\n throw Error("invaliding encoding");\n }\n return codePoint;\n }\n get(buffer, offset = 0) {\n return AnsiStringType.decode(buffer, offset, offset + this.len);\n }\n};\nAnsiStringType.windows1252 = [\n 8364,\n 129,\n 8218,\n 402,\n 8222,\n 8230,\n 8224,\n 8225,\n 710,\n 8240,\n 352,\n 8249,\n 338,\n 141,\n 381,\n 143,\n 144,\n 8216,\n 8217,\n 8220,\n 8221,\n 8226,\n 8211,\n 8212,\n 732,\n 8482,\n 353,\n 8250,\n 339,\n 157,\n 382,\n 376,\n 160,\n 161,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 171,\n 172,\n 173,\n 174,\n 175,\n 176,\n 177,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 187,\n 188,\n 189,\n 190,\n 191,\n 192,\n 193,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 203,\n 204,\n 205,\n 206,\n 207,\n 208,\n 209,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 219,\n 220,\n 221,\n 222,\n 223,\n 224,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 235,\n 236,\n 237,\n 238,\n 239,\n 240,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250,\n 251,\n 252,\n 253,\n 254,\n 255\n];\n\n// node_modules/strtok3/lib/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/ReadStreamTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/EndOfFileStream.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/Deferred.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\nvar maxStreamReadSize = 1 * 1024 * 1024;\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\nvar import_node_buffer2 = __toESM(require_buffer(), 1);\n\n// node_modules/strtok3/lib/BufferTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/util.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/supported.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar extensions = [\n "jpg",\n "png",\n "apng",\n "gif",\n "webp",\n "flif",\n "xcf",\n "cr2",\n "cr3",\n "orf",\n "arw",\n "dng",\n "nef",\n "rw2",\n "raf",\n "tif",\n "bmp",\n "icns",\n "jxr",\n "psd",\n "indd",\n "zip",\n "tar",\n "rar",\n "gz",\n "bz2",\n "7z",\n "dmg",\n "mp4",\n "mid",\n "mkv",\n "webm",\n "mov",\n "avi",\n "mpg",\n "mp2",\n "mp3",\n "m4a",\n "oga",\n "ogg",\n "ogv",\n "opus",\n "flac",\n "wav",\n "spx",\n "amr",\n "pdf",\n "epub",\n "elf",\n "exe",\n "swf",\n "rtf",\n "wasm",\n "woff",\n "woff2",\n "eot",\n "ttf",\n "otf",\n "ico",\n "flv",\n "ps",\n "xz",\n "sqlite",\n "nes",\n "crx",\n "xpi",\n "cab",\n "deb",\n "ar",\n "rpm",\n "Z",\n "lz",\n "cfb",\n "mxf",\n "mts",\n "blend",\n "bpg",\n "docx",\n "pptx",\n "xlsx",\n "3gp",\n "3g2",\n "jp2",\n "jpm",\n "jpx",\n "mj2",\n "aif",\n "qcp",\n "odt",\n "ods",\n "odp",\n "xml",\n "mobi",\n "heic",\n "cur",\n "ktx",\n "ape",\n "wv",\n "dcm",\n "ics",\n "glb",\n "pcap",\n "dsf",\n "lnk",\n "alias",\n "voc",\n "ac3",\n "m4v",\n "m4p",\n "m4b",\n "f4v",\n "f4p",\n "f4b",\n "f4a",\n "mie",\n "asf",\n "ogm",\n "ogx",\n "mpc",\n "arrow",\n "shp",\n "aac",\n "mp1",\n "it",\n "s3m",\n "xm",\n "ai",\n "skp",\n "avif",\n "eps",\n "lzh",\n "pgp",\n "asar",\n "stl",\n "chm",\n "3mf",\n "zst",\n "jxl",\n "vcf"\n];\nvar mimeTypes = [\n "image/jpeg",\n "image/png",\n "image/gif",\n "image/webp",\n "image/flif",\n "image/x-xcf",\n "image/x-canon-cr2",\n "image/x-canon-cr3",\n "image/tiff",\n "image/bmp",\n "image/vnd.ms-photo",\n "image/vnd.adobe.photoshop",\n "application/x-indesign",\n "application/epub+zip",\n "application/x-xpinstall",\n "application/vnd.oasis.opendocument.text",\n "application/vnd.oasis.opendocument.spreadsheet",\n "application/vnd.oasis.opendocument.presentation",\n "application/vnd.openxmlformats-officedocument.wordprocessingml.document",\n "application/vnd.openxmlformats-officedocument.presentationml.presentation",\n "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",\n "application/zip",\n "application/x-tar",\n "application/x-rar-compressed",\n "application/gzip",\n "application/x-bzip2",\n "application/x-7z-compressed",\n "application/x-apple-diskimage",\n "application/x-apache-arrow",\n "video/mp4",\n "audio/midi",\n "video/x-matroska",\n "video/webm",\n "video/quicktime",\n "video/vnd.avi",\n "audio/vnd.wave",\n "audio/qcelp",\n "audio/x-ms-asf",\n "video/x-ms-asf",\n "application/vnd.ms-asf",\n "video/mpeg",\n "video/3gpp",\n "audio/mpeg",\n "audio/mp4",\n "audio/opus",\n "video/ogg",\n "audio/ogg",\n "application/ogg",\n "audio/x-flac",\n "audio/ape",\n "audio/wavpack",\n "audio/amr",\n "application/pdf",\n "application/x-elf",\n "application/x-msdownload",\n "application/x-shockwave-flash",\n "application/rtf",\n "application/wasm",\n "font/woff",\n "font/woff2",\n "application/vnd.ms-fontobject",\n "font/ttf",\n "font/otf",\n "image/x-icon",\n "video/x-flv",\n "application/postscript",\n "application/eps",\n "application/x-xz",\n "application/x-sqlite3",\n "application/x-nintendo-nes-rom",\n "application/x-google-chrome-extension",\n "application/vnd.ms-cab-compressed",\n "application/x-deb",\n "application/x-unix-archive",\n "application/x-rpm",\n "application/x-compress",\n "application/x-lzip",\n "application/x-cfb",\n "application/x-mie",\n "application/mxf",\n "video/mp2t",\n "application/x-blender",\n "image/bpg",\n "image/jp2",\n "image/jpx",\n "image/jpm",\n "image/mj2",\n "audio/aiff",\n "application/xml",\n "application/x-mobipocket-ebook",\n "image/heif",\n "image/heif-sequence",\n "image/heic",\n "image/heic-sequence",\n "image/icns",\n "image/ktx",\n "application/dicom",\n "audio/x-musepack",\n "text/calendar",\n "text/vcard",\n "model/gltf-binary",\n "application/vnd.tcpdump.pcap",\n "audio/x-dsf",\n "application/x.ms.shortcut",\n "application/x.apple.alias",\n "audio/x-voc",\n "audio/vnd.dolby.dd-raw",\n "audio/x-m4a",\n "image/apng",\n "image/x-olympus-orf",\n "image/x-sony-arw",\n "image/x-adobe-dng",\n "image/x-nikon-nef",\n "image/x-panasonic-rw2",\n "image/x-fujifilm-raf",\n "video/x-m4v",\n "video/3gpp2",\n "application/x-esri-shape",\n "audio/aac",\n "audio/x-it",\n "audio/x-s3m",\n "audio/x-xm",\n "video/MP1S",\n "video/MP2P",\n "application/vnd.sketchup.skp",\n "image/avif",\n "application/x-lzh-compressed",\n "application/pgp-encrypted",\n "application/x-asar",\n "model/stl",\n "application/vnd.ms-htmlhelp",\n "model/3mf",\n "image/jxl",\n "application/zstd"\n];\n\n// node_modules/file-type/core.js\nvar supportedExtensions = new Set(extensions);\nvar supportedMimeTypes = new Set(mimeTypes);\n\n// src/utils.ts\nvar csettings;\nsettings.subscribe((b) => {\n csettings = b;\n});\nvar threadDataCache = writable();\nvar cthreadDataCache;\nthreadDataCache.subscribe((newval) => {\n cthreadDataCache = newval;\n});\nvar decodeCoom3Payload = async (buff) => {\n if (!csettings)\n throw new Error("Settings uninit");\n const allowed_domains = filehosts.map((e) => e.serving.replaceAll(".", "\\\\."));\n const pees = buff.toString().split(" ").slice(0, csettings.maxe).filter((e) => allowed_domains.some((v) => e.match(`https://(.*\\\\.)?${v}/`)));\n return (await Promise.all(pees.map(async (pee) => {\n try {\n const m = pee.match(/(?https?):\\/\\/(?.*?)(?\\/.*)/);\n if (!m)\n return;\n const { domain, file } = m.groups;\n const headers = await getHeaders(pee);\n const res = await ifetch(pee, {\n headers: { range: "bytes=0-32767", "user-agent": "" },\n mode: "cors",\n referrerPolicy: "no-referrer"\n });\n const size = +headers["content-length"] || 0;\n const header = import_buffer2.Buffer.from(await res.arrayBuffer());\n let hptr = 0;\n if (header.slice(0, 4).toString() == "PEE\\0")\n hptr += 4;\n else\n return;\n const flags = header[hptr];\n const hasFn = !!(flags & 1);\n const hasTags = !!(flags & 2);\n const hasThumbnail = !!(flags & 4);\n let [ptr, ptr2] = [hptr + 1, hptr + 1];\n let fn = "embedded";\n let tags = [];\n let thumb = import_buffer2.Buffer.from(hasembed_default);\n if (hasFn) {\n while (header[ptr2] != 0)\n ptr2++;\n fn = header.slice(ptr, ptr2).toString();\n ptr = ++ptr2;\n }\n if (hasTags) {\n while (header[ptr2] != 0)\n ptr2++;\n tags = header.slice(ptr, ptr2).toString().split(/\\s+/);\n }\n let thumbsize = 0;\n if (hasThumbnail) {\n thumbsize = header.readInt32LE(ptr);\n ptr += 4;\n if (header.byteLength >= ptr + thumbsize)\n thumb = header.slice(ptr, ptr + thumbsize);\n else\n thumb = import_buffer2.Buffer.from(await (await ifetch(pee, { headers: { "user-agent": "", range: `bytes=${ptr}-${ptr + thumbsize}` } })).arrayBuffer());\n ptr += thumbsize;\n }\n const unzip = { url: pee, headers: { "user-agent": "", range: `bytes=${ptr}-${size - 1}` } };\n let data;\n data = unzip;\n if (size < 3072) {\n thumb = data = import_buffer2.Buffer.from(await (await ifetch(unzip.url, { headers: unzip.headers })).arrayBuffer());\n }\n return {\n filename: fn,\n data,\n thumbnail: thumb\n };\n } catch (e) {\n console.warn(e);\n }\n }))).filter((e) => e).map((e) => e);\n};\n\n// src/pngv3.ts\nvar bs58 = __toESM(require_bs58(), 1);\n\n// src/bitstream.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar revbyte = (n, len = 8) => {\n let acc = 0;\n let n2 = n;\n let len2 = len;\n while (len2) {\n acc = acc * 2 + (n2 & 1);\n n2 >>= 1;\n len2--;\n }\n return acc;\n};\nvar BitstreamReader = class {\n constructor() {\n this.buffers = [];\n this.bufferedLength = 0;\n this._offsetIntoBuffer = 0;\n this._bufferIndex = 0;\n this._offset = 0;\n this.skippedLength = 0;\n }\n get bufferIndex() {\n return this._bufferIndex;\n }\n get offset() {\n return this._offset;\n }\n get available() {\n return this.bufferedLength - this.skippedLength;\n }\n getBit(offset) {\n const byte = this.buffers[0][offset >> 3];\n return +!!(byte & 1 << (offset & 7));\n }\n readSync(length) {\n let value = 0;\n if (this._offset >> 3 > this.buffers[0].byteLength) {\n throw "Out of data";\n }\n for (let i = length - 1; i >= 0; --i) {\n value = value * 2 + this.getBit(this._offset + i);\n }\n this._offset += length;\n this.bufferedLength -= length;\n return value;\n }\n addBuffer(buffer) {\n this.buffers.push(buffer);\n this.bufferedLength += buffer.length * 8;\n }\n};\nvar BitstreamWriter = class {\n constructor(stream, bufferSize = 1) {\n this.stream = stream;\n this.pendingBits = 0;\n this.bufferoffset = 0;\n this._offset = 0;\n bufferSize = 1;\n this.buffer = new Uint8Array(bufferSize);\n }\n get offset() {\n return this._offset;\n }\n get byteOffset() {\n return this.pendingBits;\n }\n end() {\n this.flush();\n }\n flush() {\n this.stream.write(new Uint8Array(this.buffer));\n this.bufferoffset = 0;\n this.buffer.fill(0);\n }\n setBit(b) {\n let byte = this.buffer[0];\n byte |= b << (this._offset & 7);\n this.buffer[0] = byte;\n this._offset += 1;\n if (++this.bufferoffset == this.buffer.length * 8) {\n this.flush();\n }\n }\n write(length, value) {\n while (length--) {\n this.setBit(value & 1);\n value >>= 1;\n }\n }\n};\n\n// src/dh-deflate.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar TINF_OK = 0;\nvar Tree = class {\n constructor() {\n this.table = new Uint16Array(16);\n this.trans = new Uint16Array(288);\n }\n};\nvar getPathTo = (tree, value) => {\n if (tree[0] === value)\n return "0";\n if (tree[1] === value)\n return "1";\n let p;\n if (typeof tree[0] != "number")\n p = getPathTo(tree[0], value);\n let b = "0";\n if (!p) {\n if (tree[1] && typeof tree[1] != "number")\n p = getPathTo(tree[1], value);\n b = "1";\n }\n if (p)\n return b + p;\n};\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n let p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n}\nvar Data = class {\n constructor(source, dests, to_hide, hidden) {\n this.source = source;\n this.dests = dests;\n this.to_hide = to_hide;\n this.hidden = hidden;\n this.pathMap = /* @__PURE__ */ new Map();\n this.dest = [];\n this.ltree = new Tree();\n this.dtree = new Tree();\n }\n computeReverse() {\n this.rltree = buildHuffmanTable(this.ltree.table, this.ltree.trans)[0];\n this.rdtree = buildHuffmanTable(this.dtree.table, this.dtree.trans)[0];\n this.adists = new Set(this.rdtree.flat(16));\n }\n};\nvar sltree = new Tree();\nvar sdtree = new Tree();\nvar rltree;\nvar rdtree;\nvar sadist;\nvar length_bits = new Uint8Array(30);\nvar length_base = new Uint16Array(30);\nvar dist_bits = new Uint8Array(30);\nvar dist_base = new Uint16Array(30);\nvar clcidx = new Uint8Array([\n 16,\n 17,\n 18,\n 0,\n 8,\n 7,\n 9,\n 6,\n 10,\n 5,\n 11,\n 4,\n 12,\n 3,\n 13,\n 2,\n 14,\n 1,\n 15\n]);\nvar code_tree = new Tree();\nvar lengths = new Uint8Array(288 + 32);\nfunction tinf_build_bits_base(bits, base, delta, first) {\n let i, sum;\n for (i = 0; i < delta; ++i)\n bits[i] = 0;\n for (i = 0; i < 30 - delta; ++i)\n bits[i + delta] = i / delta | 0;\n for (sum = first, i = 0; i < 30; ++i) {\n base[i] = sum;\n sum += 1 << bits[i];\n }\n}\nfunction tinf_build_fixed_trees(lt, dt) {\n let i;\n for (i = 0; i < 7; ++i)\n lt.table[i] = 0;\n lt.table[7] = 24;\n lt.table[8] = 152;\n lt.table[9] = 112;\n for (i = 0; i < 24; ++i)\n lt.trans[i] = 256 + i;\n for (i = 0; i < 144; ++i)\n lt.trans[24 + i] = i;\n for (i = 0; i < 8; ++i)\n lt.trans[24 + 144 + i] = 280 + i;\n for (i = 0; i < 112; ++i)\n lt.trans[24 + 144 + 8 + i] = 144 + i;\n for (i = 0; i < 5; ++i)\n dt.table[i] = 0;\n dt.table[5] = 32;\n for (i = 0; i < 32; ++i)\n dt.trans[i] = i;\n}\nvar offs = new Uint16Array(16);\nfunction tinf_build_tree(t, lengths2, off, num) {\n let i, sum;\n for (i = 0; i < 16; ++i)\n t.table[i] = 0;\n for (i = 0; i < num; ++i)\n t.table[lengths2[off + i]]++;\n t.table[0] = 0;\n for (sum = 0, i = 0; i < 16; ++i) {\n offs[i] = sum;\n sum += t.table[i];\n }\n for (i = 0; i < num; ++i) {\n if (lengths2[off + i])\n t.trans[offs[lengths2[off + i]]++] = i;\n }\n}\nfunction tinf_getbit(d) {\n const v = d.source.readSync(1);\n return v;\n}\nvar loff = 0;\nvar loffs = [];\nfunction tinf_read_bits(d, num, base) {\n if (!num)\n return base;\n const v = d.source.readSync(num) + base;\n loff = v;\n loffs.push(v);\n if (loffs.length > 4) {\n loffs.shift();\n }\n return v;\n}\nfunction tinf_decode_symbol(d, t, copy = true, ext = {}) {\n let sum = 0, cur = 0, len = 0;\n let s = 0;\n do {\n const b = d.source.readSync(1);\n copy && d.hidden?.write(1, b);\n s = s << 1 | b;\n cur = 2 * cur + b;\n ++len;\n sum += t.table[len];\n cur -= t.table[len];\n } while (cur >= 0);\n ext.length = len;\n ext.sym = s;\n return t.trans[sum + cur];\n}\nfunction tinf_decode_trees(d, lt, dt, copy = true) {\n let i, num, length;\n const hlit = tinf_read_bits(d, 5, 257);\n copy && d.hidden?.write(5, hlit - 257);\n const hdist = tinf_read_bits(d, 5, 1);\n copy && d.hidden?.write(5, hdist - 1);\n const hclen = tinf_read_bits(d, 4, 4);\n copy && d.hidden?.write(4, hclen - 4);\n for (i = 0; i < 19; ++i)\n lengths[i] = 0;\n for (i = 0; i < hclen; ++i) {\n const clen = tinf_read_bits(d, 3, 0);\n copy && d.hidden?.write(3, clen);\n lengths[clcidx[i]] = clen;\n }\n tinf_build_tree(code_tree, lengths, 0, 19);\n for (num = 0; num < hlit + hdist; ) {\n const sym = tinf_decode_symbol(d, code_tree, copy);\n let prev;\n switch (sym) {\n case 16:\n prev = lengths[num - 1];\n length = tinf_read_bits(d, 2, 3);\n copy && d.hidden?.write(2, length - 3);\n for (; length; --length) {\n lengths[num++] = prev;\n }\n break;\n case 17:\n length = tinf_read_bits(d, 3, 3);\n copy && d.hidden?.write(3, length - 3);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n case 18:\n length = tinf_read_bits(d, 7, 11);\n copy && d.hidden?.write(7, length - 11);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n default:\n lengths[num++] = sym;\n break;\n }\n }\n tinf_build_tree(lt, lengths, 0, hlit);\n tinf_build_tree(dt, lengths, hlit, hdist);\n}\nvar get_symbol = (value, bits_table, base_table) => {\n let i = 0;\n for (i = 0; i < base_table.length; ++i) {\n if (base_table[i] > value) {\n i--;\n return [i, bits_table[i], value - base_table[i]];\n }\n }\n i--;\n return [i, bits_table[i], value - base_table[i]];\n};\nvar encode_symbol = (sym, tree, pathMap) => {\n const code = getPathTo(tree, sym);\n const v = {\n length: code?.length,\n val: parseInt(code, 2)\n };\n return v;\n};\nvar capacity = 0;\nfunction tinf_inflate_block_data(d, lt, dt) {\n while (1) {\n let sym = tinf_decode_symbol(d, lt);\n if (sym === 256) {\n return TINF_OK;\n }\n if (sym < 256) {\n d.dest.push(sym);\n } else {\n sym -= 257;\n const length = tinf_read_bits(d, length_bits[sym], length_base[sym]);\n if (length_bits[sym])\n d.hidden?.write(length_bits[sym], length - length_base[sym]);\n const ext = { length: 0, sym: 0 };\n const dist = tinf_decode_symbol(d, dt, false, ext);\n let backoffset = tinf_read_bits(d, dist_bits[dist], dist_base[dist]);\n const offs2 = d.dest.length - backoffset;\n let match;\n const skip = !d.to_hide || d.to_hide && d.to_hide instanceof BitstreamReader && d.to_hide.available == 0;\n if (!skip && (match = Buffer2.from(d.dest.slice(offs2, offs2 + length))).length == length) {\n let begin = d.dest.length - 32768;\n if (begin < 0)\n begin = 0;\n let matches = [];\n let o = 0;\n const slic = Buffer2.from(d.dest.slice(begin + o, d.dest.length));\n while (begin + o < d.dest.length) {\n const r = slic.slice(o, d.dest.length).indexOf(match);\n if (r >= 0) {\n matches.push(r + begin + o);\n o += r;\n } else {\n break;\n }\n o++;\n }\n if (matches.length > 1) {\n matches = matches.map((e) => -(e - d.dest.length)).filter((e) => {\n const [dsym2] = get_symbol(e, dist_bits, dist_base);\n return d.adists.has(dsym2);\n });\n matches.reverse();\n const v = Math.floor(Math.log2(matches.length));\n capacity += v;\n if (d.to_hide instanceof BitstreamReader) {\n if (d.to_hide.available) {\n const s = d.to_hide.readSync(Math.min(d.to_hide.available, v));\n backoffset = matches[s];\n }\n } else {\n const idx = matches.indexOf(backoffset);\n d.to_hide.write(v, idx);\n }\n }\n }\n const [dsym, dlen, doff] = get_symbol(backoffset, dist_bits, dist_base);\n const encdist = encode_symbol(dsym, d.rdtree, d.pathMap);\n d.hidden?.write(encdist.length, revbyte(encdist.val, encdist.length));\n d.hidden?.write(dlen, doff);\n for (let i = offs2; i < offs2 + length; ++i) {\n d.dest.push(d.dest[i]);\n }\n }\n }\n}\nfunction tinf_inflate_uncompressed_block(d) {\n if (d.source.offset & 7)\n d.source.readSync(8 - d.source.offset & 7);\n if (d.hidden && d.hidden.offset & 7)\n d.hidden?.write(8 - d.hidden.offset & 7, 0);\n const length = d.source.readSync(16);\n d.hidden?.write(16, length);\n const invlength = d.source.readSync(16);\n d.hidden?.write(16, invlength);\n if (length !== (~invlength & 65535)) {\n return -4;\n }\n for (let i = length; i; --i) {\n const v = d.source.readSync(8);\n d.dest.push(v);\n d.hidden?.write(8, v);\n }\n return TINF_OK;\n}\nfunction tinf_uncompress(source, decompressed, to_hide, hidden, opt = 0) {\n const decomp = decompressed ? new BitstreamWriter({ write: decompressed }) : null;\n const hid = hidden && new BitstreamWriter({ write: hidden }, 4);\n const d = new Data(source, decomp, to_hide, hid);\n let res;\n let bfinal, btype;\n do {\n bfinal = tinf_getbit(d);\n d.hidden?.write(1, bfinal);\n btype = tinf_read_bits(d, 2, 0);\n d.hidden?.write(2, btype);\n switch (btype) {\n case 0:\n res = tinf_inflate_uncompressed_block(d);\n break;\n case 1:\n d.rdtree = rdtree;\n d.rltree = rltree;\n d.adists = sadist;\n res = tinf_inflate_block_data(d, sltree, sdtree);\n break;\n case 2:\n tinf_decode_trees(d, d.ltree, d.dtree);\n d.computeReverse();\n res = tinf_inflate_block_data(d, d.ltree, d.dtree);\n break;\n default:\n res = -2;\n }\n if (res !== TINF_OK)\n throw new Error("Data error " + res);\n } while (!bfinal);\n decomp?.end();\n hid?.end();\n}\ntinf_build_fixed_trees(sltree, sdtree);\ntinf_build_bits_base(length_bits, length_base, 4, 3);\ntinf_build_bits_base(dist_bits, dist_base, 2, 1);\nrltree = buildHuffmanTable(sltree.table, sltree.trans)[0];\nrdtree = buildHuffmanTable(sdtree.table, sdtree.trans)[0];\nsadist = new Set(rdtree.flat(16));\nlength_bits[28] = 0;\nlength_base[28] = 258;\n\n// src/pngv3.ts\nvar csettings2;\nsettings.subscribe((b) => {\n csettings2 = b;\n});\nvar CUM3 = import_buffer3.Buffer.from("doo\\0m");\nvar CUM4 = import_buffer3.Buffer.from("voo\\0m");\nvar CUM5 = import_buffer3.Buffer.from("boo\\0");\nvar CUM6 = import_buffer3.Buffer.from("Creation Time\\0");\nvar CUM7 = import_buffer3.Buffer.from("Software\\0");\nvar BufferReadStream = (b) => {\n const ret = new ReadableStream({\n pull(cont) {\n cont.enqueue(b);\n cont.close();\n }\n });\n return ret;\n};\nvar password = import_buffer3.Buffer.from("NOA");\nvar xor = (a, p) => {\n let n = 0;\n for (let i = 0; i < a.byteLength; ++i) {\n a[i] ^= p[n];\n n++;\n n %= p.byteLength;\n }\n};\nvar prefs = {\n "files.catbox.moe": "c",\n "a.pomf.cat": "p",\n "take-me-to.space": "t",\n "z.zz.fo": "z"\n};\nvar rprefs = {\n "c": "files.catbox.moe",\n "p": "a.pomf.cat",\n "t": "take-me-to.space",\n "z": "z.zz.fo"\n};\nvar extractFromRawDeflate = (b) => {\n const src = new BitstreamReader();\n src.addBuffer(b);\n const chnks = [];\n const hidden = new BitstreamWriter({\n write(chunk) {\n for (const i of chunk) {\n if (i >= 32 && i <= 128)\n chnks.push(i);\n else\n throw "Finish";\n }\n }\n });\n try {\n tinf_uncompress(src, void 0, hidden, void 0);\n } catch (e) {\n if (e == "Finish")\n return import_buffer3.Buffer.from(chnks);\n }\n return false;\n};\nvar extract = async (png, doextract = true) => {\n const reader = BufferReadStream(png).getReader();\n const sneed = new PNGDecoder(reader, false);\n const ret = [];\n let w;\n if (!csettings2)\n throw new Error("Settings uninit");\n try {\n let complete = false;\n const idats = [];\n for await (const [name, chunk, crc, offset] of sneed.chunks()) {\n let buff;\n switch (name) {\n case "tEXt":\n buff = chunk;\n if (buff.slice(4, 4 + CUM3.length).equals(CUM3)) {\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(buff.slice(4 + CUM3.length));\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM4.length).equals(CUM4)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM4.length);\n xor(passed, password);\n const k = await decodeCoom3Payload(passed);\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM5.length).equals(CUM5)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM5.length);\n const decoded = import_buffer3.Buffer.from(passed.toString(), "base64").toString().split(" ").map((e) => {\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n }\n if (w = [CUM6, CUM7].find((e) => buff.slice(4, 4 + e.length).equals(e))) {\n const passed = buff.slice(4 + w.length);\n if (!passed.toString().match(/^[0-9a-zA-Z+/=]+$/g))\n continue;\n const decoders = [\n (b) => import_buffer3.Buffer.from(b.toString(), "base64").toString(),\n (b) => import_buffer3.Buffer.from(bs58.decode(passed.toString())).toString()\n ];\n for (const d of decoders) {\n try {\n const decoded = d(passed).split(" ").map((e) => {\n if (!(e[0] in rprefs))\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n } catch (e) {\n }\n }\n }\n break;\n case "IDAT":\n if (ret.length)\n return ret;\n buff = chunk;\n idats.push(buff.slice(4));\n break;\n case "IEND":\n complete = true;\n default:\n break;\n }\n }\n if (idats.length) {\n let decoded;\n if ((decoded = extractFromRawDeflate(import_buffer3.Buffer.concat(idats).slice(2))) === false)\n return false;\n const dec = decoded.toString().split(" ").map((e) => {\n if (!(e[0] in rprefs) || e.length < 5)\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (doextract)\n return decodeCoom3Payload(import_buffer3.Buffer.from(dec));\n return true;\n }\n } catch (e) {\n if (e != "Uhh")\n console.error(e);\n } finally {\n reader.releaseLock();\n }\n};\nvar buildChunk = (tag, data) => {\n const ret = import_buffer3.Buffer.alloc(data.byteLength + 4);\n ret.write(tag.slice(0, 4), 0);\n data.copy(ret, 4);\n return ret;\n};\nvar BufferWriteStream = () => {\n let b = import_buffer3.Buffer.from([]);\n const ret = new WritableStream({\n write(chunk) {\n b = import_buffer3.Buffer.concat([b, chunk]);\n console.log("finished appending");\n }\n });\n return [ret, () => b];\n};\nvar embedInRawDeflate = (b, h) => {\n const src = new BitstreamReader();\n const hid = new BitstreamReader();\n hid.addBuffer(h);\n src.addBuffer(b);\n const chnks = [];\n tinf_uncompress(src, void 0, hid, (c) => chnks.push(c));\n return import_buffer3.Buffer.concat(chnks);\n};\nvar inject_data = async (container, injb) => {\n injb = import_buffer3.Buffer.concat([injb, import_buffer3.Buffer.from([0])]);\n if (!csettings2)\n throw new Error("Settings uninit");\n if (csettings2.pmeth < 5) {\n let magic = false;\n const [writestream2, extract6] = BufferWriteStream();\n const encoder = new PNGEncoder(writestream2);\n const decoder = new PNGDecoder(container.stream().getReader());\n for await (const [name, chunk, crc, offset] of decoder.chunks()) {\n if (magic && name != "IDAT")\n break;\n if (!magic && name == "IDAT") {\n const passed = import_buffer3.Buffer.from(injb);\n switch (csettings2.pmeth) {\n case 0:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM3, passed])), 0, 0]);\n break;\n case 1:\n xor(passed, password);\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM4, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 2:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM5, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 3:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM6, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 4:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM7, import_buffer3.Buffer.from(bs58.encode(passed))])), 0, 0]);\n break;\n }\n magic = true;\n }\n await encoder.insertchunk([name, chunk, crc, offset]);\n }\n await encoder.insertchunk([\n "IEND",\n buildChunk("IEND", import_buffer3.Buffer.from([])),\n 0,\n 0\n ]);\n return extract6();\n }\n let pdec = new PNGDecoder(container.stream().getReader());\n const concat = [];\n for await (const chk of pdec.chunks())\n if (chk[0] == "IDAT")\n concat.push(chk[1].slice(4));\n const comp = import_buffer3.Buffer.concat(concat);\n const head = comp.slice(0, 2);\n const chksum = comp.slice(-4);\n const idatblk = embedInRawDeflate(comp.slice(2, -4), injb);\n const [writestream, extract5] = BufferWriteStream();\n const penc = new PNGEncoder(writestream);\n pdec = new PNGDecoder(container.stream().getReader());\n let ins = false;\n for await (const chk of pdec.chunks()) {\n if (chk[0] != "IDAT") {\n await penc.insertchunk(chk);\n } else {\n if (!ins) {\n await penc.insertchunk(["IDAT", import_buffer3.Buffer.concat([import_buffer3.Buffer.from("IDAT"), head, idatblk, chksum]), 0, 0]);\n ins = true;\n }\n }\n }\n await penc.dtor();\n console.log("Finished writing");\n return extract5();\n};\nvar inject = async (container, links) => {\n links = links.map((link) => {\n for (const h of filehosts) {\n if (link.includes(h.serving)) {\n const end = link.split("/").slice(-1)[0];\n return `${prefs[h.serving]}${end}`;\n }\n }\n return "";\n });\n const injb = import_buffer3.Buffer.from(links.join(" "));\n return inject_data(container, injb);\n};\nvar has_embed = async (png) => {\n const r = await extract(png, false);\n return !!r;\n};\nvar pngv3_default = {\n extract,\n has_embed,\n inject,\n match: (fn) => !!fn.match(/\\.png$/)\n};\n\n// src/jpg.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer4 = __toESM(require_buffer(), 1);\n\n// src/f5stego.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction* f5get() {\n let extrBit = 0;\n let k = 0;\n for (let i = 0; i < 4; ++i) {\n const b2 = yield;\n k |= b2 << i;\n }\n k = (k & 15) + 1;\n let toread = 8;\n let len = 0;\n while (toread--) {\n len = len * 2 + (yield);\n }\n const b = yield;\n toread += 8;\n if (b)\n toread += 7;\n else\n len *= 2;\n while (toread--) {\n len = len * 2 + (yield);\n }\n let rlen = revbyte(len, b ? 23 : 16);\n len = rlen;\n if (len >= 256)\n len = rlen = 256;\n len *= 8;\n const chunks = [];\n const bw = new BitstreamWriter({\n write(chunk) {\n chunks.push(chunk);\n }\n });\n while (len) {\n extrBit = yield;\n bw.write(1, extrBit);\n len--;\n }\n bw.end();\n return Buffer2.concat(chunks).slice(0, rlen);\n}\nvar bitcode = new Array(65535);\nvar category = new Array(65535);\nvar std_dc_luminance_nrcodes = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\nvar std_dc_luminance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_luminance_nrcodes = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\nvar std_ac_luminance_values = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nvar std_dc_chrominance_nrcodes = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\nvar std_dc_chrominance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_chrominance_nrcodes = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\nvar std_ac_chrominance_values = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nfunction _initCategoryNumber() {\n let nrlower = 1;\n let nrupper = 2;\n for (let cat = 1; cat <= 15; cat++) {\n for (let nr = nrlower; nr < nrupper; nr++) {\n category[32767 + nr] = cat;\n bitcode[32767 + nr] = [];\n bitcode[32767 + nr][1] = cat;\n bitcode[32767 + nr][0] = nr;\n }\n for (let nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category[32767 + nrneg] = cat;\n bitcode[32767 + nrneg] = [];\n bitcode[32767 + nrneg][1] = cat;\n bitcode[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n}\n_initCategoryNumber();\nfunction _computeHuffmanTbl(nrcodes, std_table) {\n let codevalue = 0;\n let pos_in_table = 0;\n const HT = [];\n for (let k = 1; k <= 16; k++) {\n for (let j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n}\nvar YDC_HT = _computeHuffmanTbl(std_dc_luminance_nrcodes, std_dc_luminance_values);\nvar UVDC_HT = _computeHuffmanTbl(std_dc_chrominance_nrcodes, std_dc_chrominance_values);\nvar YAC_HT = _computeHuffmanTbl(std_ac_luminance_nrcodes, std_ac_luminance_values);\nvar UVAC_HT = _computeHuffmanTbl(std_ac_chrominance_nrcodes, std_ac_chrominance_values);\nvar __raw, _jfif, _APPn, _qts, _frame, _tail, __f5write, _f5write_fn;\nvar f5stego = class {\n constructor(key2, maxPixels = 4096 * 4096) {\n this.maxPixels = maxPixels;\n __privateAdd(this, __f5write);\n __privateAdd(this, __raw, void 0);\n __privateAdd(this, _jfif, void 0);\n __privateAdd(this, _APPn, void 0);\n __privateAdd(this, _qts, void 0);\n __privateAdd(this, _frame, null);\n __privateAdd(this, _tail, null);\n }\n embed(image, data, k) {\n this.parse(image);\n this.f5put(data, k);\n return this.pack();\n }\n extract(image) {\n try {\n this.gengen = f5get();\n this.gengen.next();\n this.parse(image, true);\n return this.f5get();\n } catch (e) {\n if (e instanceof Buffer2)\n return e;\n throw e;\n }\n }\n f5put(data, k) {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let t, i, comp = __privateGet(this, _frame).components[0];\n if (data.length > 8388607)\n throw "Data too big. Max 8388607 bytes allowed.";\n if (data.length < 32768) {\n t = new Uint8Array(2 + data.length);\n t[0] = data.length & 255;\n t[1] = data.length >>> 8;\n t.set(data, 2);\n } else {\n t = new Uint8Array(3 + data.length);\n t[0] = data.length & 255;\n t[1] = (data.length >>> 8 & 127) + 128;\n t[2] = data.length >>> 15;\n t.set(data, 3);\n }\n if (comp.componentId != 1) {\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n return __privateMethod(this, __f5write, _f5write_fn).call(this, comp.blocks, t, k);\n }\n f5get() {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let comp = __privateGet(this, _frame).components[0];\n if (comp.componentId != 1) {\n for (let i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n const coeff = new Int16Array(comp.blocks.length);\n coeff.set(comp.blocks);\n let pos = -1, extrBit = 0;\n const cCount = coeff.length - 1;\n let k = 0;\n const out = new Uint8Array(coeff.length / 8 | 0);\n let extrByte = 0;\n let outPos = 0;\n let bitsAvail = 0;\n let code = 0;\n let hash = 0;\n while (bitsAvail < 4) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n k |= extrBit << bitsAvail;\n bitsAvail++;\n }\n k = (k & 15) + 1;\n const n = (1 << k) - 1;\n bitsAvail = 0;\n if (k == 1) {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n extrByte |= extrBit << bitsAvail;\n bitsAvail++;\n if (bitsAvail == 8) {\n out[outPos++] = extrByte;\n extrByte = 0;\n bitsAvail = 0;\n }\n }\n } else {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n hash ^= extrBit * ++code;\n if (code == n) {\n extrByte |= hash << bitsAvail;\n bitsAvail += k;\n code = 0;\n hash = 0;\n while (bitsAvail >= 8) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n }\n }\n }\n while (bitsAvail > 0) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n let s = 2, l = out[0];\n if (out[1] & 128) {\n s++;\n l += ((out[1] & 127) << 8) + (out[2] << 15);\n } else {\n l += out[1] << 8;\n }\n return out.subarray(s, s + l);\n }\n parse(data, tolerant = false) {\n let offset = 0;\n function _buildHuffmanTable(nrcodes, values) {\n let codevalue = 0;\n let pos_in_table = 0;\n const HT = new Uint16Array(65536);\n for (let k = 0; k < 16; k++) {\n for (let j2 = 0; j2 < nrcodes[k]; j2++) {\n for (let i2 = codevalue << 15 - k, cntTo = codevalue + 1 << 15 - k; i2 < cntTo; i2++) {\n HT[i2] = values[pos_in_table] + (k + 1 << 8);\n }\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n const decodeScan = (data2, offset2, frame, components, resetInterval2, spectralStart, spectralEnd, successivePrev, successive) => {\n const startOffset = offset2;\n let bitsData = 0, bitsCount = 0, eobrun = 0;\n const p1 = 1 << successive;\n const m1 = -1 << successive;\n const decodeBaseline = (component2, pos) => {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n let diff = 0;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff;\n let k2 = 1, s, r;\n while (k2 < 64) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n if (component2.componentId == 1) {\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n if (this.gengen && component2.blocks[pos + k2] != 0) {\n const v = component2.blocks[pos + k2] < 0 ? 1 - (component2.blocks[pos + k2] & 1) : component2.blocks[pos + k2] & 1;\n const it = this.gengen.next(v);\n if (it.done) {\n throw it.value;\n }\n }\n }\n bitsCount -= s;\n k2++;\n }\n };\n function decodeDCFirst(component2, pos) {\n let diff = 0;\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff << successive;\n }\n function decodeDCSuccessive(component2, pos) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocksDC[pos >> 6] |= (bitsData >>> --bitsCount & 1) << successive;\n }\n if (!frame)\n throw "Frame not parsed yet";\n function decodeACFirst(component2, pos) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k2 = spectralStart, s, r;\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r != 15) {\n eobrun = (1 << r) - 1;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n bitsCount -= s;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n component2.blocks[pos + k2] *= p1;\n k2++;\n }\n }\n function decodeACSuccessive(component2, pos) {\n let k2 = spectralStart, r, s;\n if (frame == null)\n throw "Frame not defined";\n if (!eobrun) {\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s) {\n if (s != 1)\n throw "bad jpeg";\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n s = bitsData >>> --bitsCount & 1 ? p1 : m1;\n } else {\n if (r != 15) {\n eobrun = 1 << r;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n }\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n } else {\n if (--r < 0)\n break;\n }\n k2++;\n }\n if (s)\n component2.blocks[pos + k2] = s;\n k2++;\n }\n }\n if (eobrun) {\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n }\n k2++;\n }\n eobrun--;\n }\n }\n let decodeFn;\n if (frame.progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n let marker, mcuExpected, i2, j2, k, n, mcusPerLine, mcusPerRow, x, y;\n if (components.length == 1) {\n mcusPerLine = components[0].blocksPerLine;\n mcusPerRow = components[0].blocksPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n decodeFn(components[i2], (y * components[i2].blocksPerLineForMcu + x) * 64);\n }\n }\n }\n } else {\n mcusPerLine = frame.mcusPerLine;\n mcusPerRow = frame.mcusPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n for (j2 = 0; j2 < components[i2].v; j2++) {\n for (k = 0; k < components[i2].h; k++) {\n decodeFn(components[i2], ((y * components[i2].v + j2) * components[i2].blocksPerLineForMcu + x * components[i2].h + k) * 64);\n }\n }\n }\n }\n }\n }\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n return offset2 - startOffset;\n };\n function readUint16() {\n const value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n const length = readUint16();\n const array = data.subarray(offset, offset + length - 2);\n offset += array.length;\n return array;\n }\n __privateSet(this, __raw, data);\n __privateSet(this, _jfif, null);\n __privateSet(this, _APPn, []);\n __privateSet(this, _qts, []);\n __privateSet(this, _frame, null);\n __privateSet(this, _tail, null);\n let markerHi, markerLo, i, j, resetInterval, component;\n const huffmanTablesAC = [];\n const huffmanTablesDC = [];\n while (1) {\n if (offset >= data.length) {\n if (tolerant)\n break;\n throw "unexpected EOF";\n }\n markerHi = data[offset++];\n markerLo = data[offset++];\n if (markerHi == 255) {\n if (markerLo == 224) {\n __privateSet(this, _jfif, readDataBlock());\n }\n if (markerLo > 224 && markerLo < 240 || markerLo == 254) {\n __privateGet(this, _APPn).push({\n "app": markerLo,\n "data": readDataBlock()\n });\n }\n if (markerLo == 219) {\n __privateGet(this, _qts).push(readDataBlock());\n }\n if (markerLo >= 192 && markerLo <= 194) {\n if (__privateGet(this, _frame))\n throw "Only single frame JPEGs supported";\n readUint16();\n __privateSet(this, _frame, {\n "extended": markerLo === 193,\n "progressive": markerLo === 194,\n "precision": data[offset++],\n "scanLines": readUint16(),\n "samplesPerLine": readUint16(),\n "components": [],\n "componentIds": {},\n "maxH": 1,\n "maxV": 1\n });\n if (__privateGet(this, _frame).scanLines * __privateGet(this, _frame).samplesPerLine > this.maxPixels)\n throw "Image is too big.";\n const componentsCount = data[offset++];\n let componentId;\n let maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n const h = data[offset + 1] >> 4;\n const v = data[offset + 1] & 15;\n if (maxH < h)\n maxH = h;\n if (maxV < v)\n maxV = v;\n const qId = data[offset + 2];\n const l = __privateGet(this, _frame).components.push({\n componentId,\n h,\n v,\n quantizationTable: qId\n });\n __privateGet(this, _frame).componentIds[componentId] = l - 1;\n offset += 3;\n }\n __privateGet(this, _frame).maxH = maxH;\n __privateGet(this, _frame).maxV = maxV;\n const mcusPerLine = Math.ceil(__privateGet(this, _frame).samplesPerLine / 8 / maxH);\n const mcusPerColumn = Math.ceil(__privateGet(this, _frame).scanLines / 8 / maxV);\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n component = __privateGet(this, _frame).components[i];\n const blocksPerLine = Math.ceil(Math.ceil(__privateGet(this, _frame).samplesPerLine / 8) * component.h / maxH);\n const blocksPerColumn = Math.ceil(Math.ceil(__privateGet(this, _frame).scanLines / 8) * component.v / maxV);\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n __privateGet(this, _frame).components[i] = {\n ...component,\n blocks: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu * 64),\n blocksDC: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu),\n blocksPerLine,\n blocksPerColumn,\n blocksPerLineForMcu,\n blocksPerColumnForMcu\n };\n }\n __privateGet(this, _frame).mcusPerLine = mcusPerLine;\n __privateGet(this, _frame).mcusPerColumn = mcusPerColumn;\n }\n if (markerLo == 196) {\n const huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++)\n codeLengthSum += codeLengths[j] = data[offset];\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n const v = _buildHuffmanTable(codeLengths, huffmanValues);\n if (huffmanTableSpec >> 4 === 0)\n huffmanTablesDC[huffmanTableSpec & 15] = v;\n else\n huffmanTablesAC[huffmanTableSpec & 15] = v;\n }\n }\n if (markerLo == 221) {\n resetInterval = readUint16();\n }\n if (markerLo == 218) {\n if (__privateGet(this, _frame) == null)\n throw "SOS before SOF";\n readUint16();\n const selectorsCount = data[offset++];\n const components = [];\n for (i = 0; i < selectorsCount; i++) {\n const componentIndex = __privateGet(this, _frame).componentIds[data[offset++]];\n component = __privateGet(this, _frame).components[componentIndex];\n const tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n const spectralStart = data[offset++];\n const spectralEnd = data[offset++];\n const successiveApproximation = data[offset++];\n const processed = decodeScan(data, offset, __privateGet(this, _frame), components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15);\n offset += processed;\n }\n if (markerLo == 217) {\n break;\n }\n } else {\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n }\n while (data[offset] != 255 && offset < data.length) {\n offset++;\n }\n if (data[offset] != 255) {\n throw "bad jpeg ";\n }\n }\n }\n if (!__privateGet(this, _frame))\n throw "bad jpeg";\n if (offset < data.length)\n __privateSet(this, _tail, data.subarray(offset));\n return this;\n }\n pack() {\n let byteout;\n let bytenew;\n let bytepos;\n let poslast;\n let outpos;\n let byte;\n function writeByte(value) {\n let t;\n byteout[outpos++] = value;\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function writeBlock(block) {\n let t;\n if (outpos + block.length > poslast) {\n t = new Uint8Array(byteout.length * 2 + block.length);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n byteout.set(block, outpos);\n outpos += block.length;\n }\n function writeAPP0(self2) {\n writeWord(65504);\n if (!__privateGet(self2, _jfif)) {\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n } else {\n writeWord(__privateGet(self2, _jfif).length + 2);\n writeBlock(__privateGet(self2, _jfif));\n }\n }\n function writeDQT(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _qts).length; i2++) {\n writeWord(65499);\n writeWord(__privateGet(self2, _qts)[i2].length + 2);\n writeBlock(__privateGet(self2, _qts)[i2]);\n }\n }\n function writeAPPn(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _APPn).length; i2++) {\n writeWord(65280 | __privateGet(self2, _APPn)[i2].app);\n writeWord(__privateGet(self2, _APPn)[i2].data.length + 2);\n writeBlock(__privateGet(self2, _APPn)[i2].data);\n }\n }\n function writeSOF0(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65472);\n writeWord(8 + __privateGet(self2, _frame).components.length * 3);\n writeByte(__privateGet(self2, _frame).precision);\n writeWord(__privateGet(self2, _frame).scanLines);\n writeWord(__privateGet(self2, _frame).samplesPerLine);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n writeByte(c2.h << 4 | c2.v);\n writeByte(c2.quantizationTable);\n }\n }\n function writeDHT(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65476);\n writeWord(31);\n writeByte(0);\n for (let i2 = 0; i2 < 16; i2++) {\n writeByte(std_dc_luminance_nrcodes[i2 + 1]);\n }\n for (let j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values[j]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(16);\n for (let k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes[k + 1]);\n }\n for (let l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values[l]);\n }\n if (__privateGet(self2, _frame).components.length != 1) {\n writeWord(65476);\n writeWord(31);\n writeByte(1);\n for (let m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes[m + 1]);\n }\n for (let n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values[n]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(17);\n for (let o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes[o + 1]);\n }\n for (let p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values[p]);\n }\n }\n }\n function writeSOS(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65498);\n writeWord(6 + __privateGet(self2, _frame).components.length * 2);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n if (i2 === 0) {\n writeByte(0);\n } else {\n writeByte(17);\n }\n }\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(comp, POS, DC, HTDC, HTAC) {\n let pos, posval, t;\n if (bytepos === 0)\n bytenew = 0;\n if (!("blocks" in comp))\n throw "Blocks not parsed";\n const Diff = comp.blocksDC[POS >> 6] - DC;\n DC = comp.blocksDC[POS >> 6];\n if (Diff === 0) {\n posval = HTDC[0][1];\n bytenew <<= posval;\n bytenew += HTDC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n } else {\n pos = 32767 + Diff;\n posval = HTDC[category[pos]][1];\n bytenew <<= posval;\n bytenew += HTDC[category[pos]][0];\n bytepos += posval;\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n let end0pos = 63;\n for (; end0pos > 0 && comp.blocks[POS + end0pos] === 0; end0pos--) {\n }\n if (end0pos === 0) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n return DC;\n }\n let i2 = 1;\n let lng;\n while (i2 <= end0pos) {\n const startpos = i2;\n for (; comp.blocks[POS + i2] === 0 && i2 <= end0pos; ++i2) {\n }\n let nrzeroes = i2 - startpos;\n if (nrzeroes >= 16) {\n lng = nrzeroes >> 4;\n for (let nrmarker = 1; nrmarker <= lng; ++nrmarker) {\n posval = HTAC[240][1];\n bytenew <<= posval;\n bytenew += HTAC[240][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + comp.blocks[POS + i2];\n posval = HTAC[(nrzeroes << 4) + category[pos]][1];\n bytenew <<= posval;\n bytenew += HTAC[(nrzeroes << 4) + category[pos]][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n i2++;\n }\n if (end0pos != 63) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n return DC;\n }\n byteout = new Uint8Array(65536);\n poslast = 65536 - 128;\n outpos = 0;\n bytenew = 0;\n bytepos = 0;\n writeWord(65496);\n writeAPP0(this);\n writeAPPn(this);\n writeDQT(this);\n writeSOF0(this);\n writeDHT(this);\n writeSOS(this);\n bytenew = 0;\n bytepos = 0;\n if (!__privateGet(this, _frame))\n throw "Frame not ready";\n let c, mcuRow, mcuCol, blockRow, blockCol, mcu, i, v, h;\n const DCdiff = [];\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n DCdiff.push(0);\n }\n for (mcu = 0; mcu < __privateGet(this, _frame).mcusPerLine * __privateGet(this, _frame).mcusPerColumn; mcu++) {\n mcuRow = mcu / __privateGet(this, _frame).mcusPerLine | 0;\n mcuCol = mcu % __privateGet(this, _frame).mcusPerLine;\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n c = __privateGet(this, _frame).components[i];\n for (v = 0; v < c.v; v++) {\n blockRow = mcuRow * c.v + v;\n for (h = 0; h < c.h; h++) {\n blockCol = mcuCol * c.h + h;\n if (i === 0) {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], YDC_HT, YAC_HT);\n } else {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], UVDC_HT, UVAC_HT);\n }\n }\n }\n }\n }\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n }\n if (bytepos > 0) {\n bytenew <<= 8 - bytepos;\n bytenew += (1 << 8 - bytepos) - 1;\n byteout[outpos++] = 255 & bytenew;\n }\n writeWord(65497);\n if (__privateGet(this, _tail))\n writeBlock(__privateGet(this, _tail));\n return byteout.slice(0, outpos);\n }\n};\n__raw = new WeakMap();\n_jfif = new WeakMap();\n_APPn = new WeakMap();\n_qts = new WeakMap();\n_frame = new WeakMap();\n_tail = new WeakMap();\n__f5write = new WeakSet();\n_f5write_fn = function(coeff, data, k) {\n const coeff_count = coeff.length;\n let _changed = 0, _embedded = 0, _examined = 0, _thrown = 0, shuffled_index = 0, i, ii;\n let next_bit_to_embed = 0, byte_to_embed = data.length, data_idx = 0, available_bits_to_embed = 0;\n const n = (1 << k) - 1;\n byte_to_embed = k - 1;\n byte_to_embed ^= 0;\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed = 3;\n for (ii = 0; ii < coeff_count; ii++) {\n shuffled_index = ii;\n if (shuffled_index % 64 === 0 || coeff[shuffled_index] === 0)\n continue;\n const cc = coeff[shuffled_index];\n _examined++;\n if (cc > 0 && (cc & 1) != next_bit_to_embed) {\n coeff[shuffled_index]--;\n _changed++;\n } else if (cc < 0 && (cc & 1) == next_bit_to_embed) {\n coeff[shuffled_index]++;\n _changed++;\n }\n if (coeff[shuffled_index] !== 0) {\n _embedded++;\n if (available_bits_to_embed === 0) {\n if (k != 1 || data_idx >= data.length)\n break;\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n } else {\n _thrown++;\n }\n }\n if (k == 1 && _embedded < data.length * 8)\n throw "capacity exceeded " + _embedded / 8 + " " + data.length;\n if (k != 1) {\n let is_last_byte = false, k_bits_to_embed = 0;\n while (!is_last_byte || available_bits_to_embed !== 0 && is_last_byte) {\n k_bits_to_embed = 0;\n for (i = 0; i < k; i++) {\n if (available_bits_to_embed === 0) {\n if (data_idx >= data.length) {\n is_last_byte = true;\n break;\n }\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n k_bits_to_embed |= next_bit_to_embed << i;\n }\n const code_word = [];\n let ci = null;\n for (i = 0; i < n; i++) {\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n code_word.push(ci);\n }\n _examined += n;\n while (true) {\n let vhash = 0;\n let extracted_bit;\n for (i = 0; i < code_word.length; i++) {\n if (coeff[code_word[i]] > 0) {\n extracted_bit = coeff[code_word[i]] & 1;\n } else {\n extracted_bit = 1 - (coeff[code_word[i]] & 1);\n }\n if (extracted_bit == 1)\n vhash ^= i + 1;\n }\n i = vhash ^ k_bits_to_embed;\n if (!i) {\n _embedded += k;\n break;\n }\n i--;\n coeff[code_word[i]] += coeff[code_word[i]] < 0 ? 1 : -1;\n _changed++;\n if (coeff[code_word[i]] === 0) {\n _thrown++;\n code_word.splice(i, 1);\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n _examined++;\n code_word.push(ci);\n } else {\n _embedded += k;\n break;\n }\n }\n }\n }\n return {\n "k": k,\n "embedded": _embedded / 8,\n "examined": _examined,\n "changed": _changed,\n "thrown": _thrown,\n "efficiency": (_embedded / _changed).toFixed(2)\n };\n};\n\n// src/jpg.ts\nvar key = import_buffer4.Buffer.from("CUNNYCUNNYCUNNY");\nvar f5inst = new f5stego(key);\nvar inject2 = async (b, links) => {\n if (b.size / 20 < links.join(" ").length)\n throw "Image too small to embed.";\n const arr = new Uint8Array(new Uint8Array(await b.arrayBuffer()));\n const buff = f5inst.embed(arr, new TextEncoder().encode(links.join(" ")), 1);\n return import_buffer4.Buffer.from(buff);\n};\nvar has_embed2 = (b) => {\n try {\n const res = f5inst.extract(b);\n if (!res)\n return false;\n if (res.length > 1024)\n return false;\n const str = import_buffer4.Buffer.from(res).toString();\n if (!str.match(/^[a-zA-Z0-9:/.\\-_ ]+$/))\n return false;\n return str;\n } catch {\n return false;\n }\n};\nvar extract2 = (b, ex) => {\n return decodeCoom3Payload(import_buffer4.Buffer.from(ex));\n};\nvar jpg_default = {\n match: (fn) => !!fn.match(/\\.jpe?g$/),\n has_embed: has_embed2,\n extract: extract2,\n inject: inject2\n};\n\n// src/thirdeye.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer5 = __toESM(require_buffer(), 1);\nvar import_jpeg_js = __toESM(require_jpeg_js(), 1);\n\n// src/phash.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar median = (data) => {\n const mdarr = data.slice(0);\n mdarr.sort((a, b) => a - b);\n if (mdarr.length % 2 === 0)\n return (mdarr[mdarr.length / 2 - 1] + mdarr[mdarr.length / 2]) / 2;\n return mdarr[Math.floor(mdarr.length / 2)];\n};\nvar translate_blocks_to_bits = function(blocks, pixels_per_block) {\n const half_block_value = pixels_per_block * 256 * 3 / 2;\n const bandsize = blocks.length / 4;\n for (let i = 0; i < 4; i++) {\n const m = median(blocks.slice(i * bandsize, (i + 1) * bandsize));\n for (let j = i * bandsize; j < (i + 1) * bandsize; j++) {\n const v = blocks[j];\n blocks[j] = Number(v > m || Math.abs(v - m) < 1 && m > half_block_value);\n }\n }\n};\nvar bits_to_hexhash = (bitsArray) => {\n const hex = [];\n for (let i = 0; i < bitsArray.length; i += 4) {\n const nibble = bitsArray.slice(i, i + 4);\n hex.push(parseInt(nibble.join(""), 2).toString(16));\n }\n return hex.join("");\n};\nvar bmvbhash_even = (data, bits) => {\n const blocksize_x = Math.floor(data.width / bits);\n const blocksize_y = Math.floor(data.height / bits);\n const result = [];\n for (let y = 0; y < bits; y++) {\n for (let x = 0; x < bits; x++) {\n let total = 0;\n for (let iy = 0; iy < blocksize_y; iy++) {\n for (let ix = 0; ix < blocksize_x; ix++) {\n const cx = x * blocksize_x + ix;\n const cy = y * blocksize_y + iy;\n const ii = (cy * data.width + cx) * 4;\n const alpha = data.data[ii + 3];\n if (alpha === 0) {\n total += 765;\n } else {\n total += data.data[ii] + data.data[ii + 1] + data.data[ii + 2];\n }\n }\n }\n result.push(total);\n }\n }\n translate_blocks_to_bits(result, blocksize_x * blocksize_y);\n return bits_to_hexhash(result);\n};\n\n// src/thirdeye.ts\nvar csettings3;\nsettings.subscribe((b) => {\n csettings3 = b;\n});\nvar gelquirk = (prefix) => (a) => {\n let base = a.post || a.data || a;\n if (!Array.isArray(base))\n return [];\n base = base.filter((e) => e.file_url);\n return base.map((e) => ({\n full_url: e.file_url,\n preview_url: e.preview_url || e.preview_url,\n source: e.source,\n ext: e.file_ext || e.file_url.substr(e.file_url.lastIndexOf(".") + 1),\n page: `${prefix}${e.id || e.parent_id}`,\n tags: (e.tag_string || (e.tags && (Array.isArray(e.tags) && (typeof e.tags[0] == "string" ? e.tags.join(" ") : e.tags.map((e2) => e2.name_en).join(" "))) || e.tags) || "").split(" ")\n })) || [];\n};\nvar experimentalApi = false;\nvar black = /* @__PURE__ */ new Set();\nvar phashEn = false;\nvar mindist = 5;\nsettings.subscribe((s) => {\n if (!s)\n return;\n experimentalApi = s.expte;\n boorus = s.rsources.map((e) => ({\n ...e,\n quirks: gelquirk(e.view)\n }));\n black = new Set(s.blacklist);\n mindist = s.mdist || 5;\n phashEn = s.phash;\n});\nvar boorus = [];\nvar unlockQueue = Promise.resolve();\nvar cache = {};\nvar findFileFrom = async (b, hex, abort) => {\n try {\n if (b.domain in cache && hex in cache[b.domain])\n return cache[b.domain][hex];\n const res = await ifetch(`https://${b.domain}${b.endpoint}${hex}`);\n const txt = await res.text();\n const pres = JSON.parse(txt);\n const tran = b.quirks(pres).filter((e) => !e.tags.some((e2) => black.has(e2)));\n if (!(b.domain in cache))\n cache[b.domain] = {};\n cache[b.domain][hex] = tran;\n return tran;\n } catch (e) {\n const error = e;\n if (!error.message.includes("Unexpected end of JSON input"))\n console.error(e);\n return [];\n }\n};\nvar extract3 = async (b, fn) => {\n if (!csettings3)\n throw new Error("Settings uninit");\n let result;\n let booru;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n if (result.length) {\n booru = e.name;\n break;\n }\n }\n let cachedFile;\n const prev = result[0].preview_url;\n const full = result[0].full_url;\n return [{\n source: result[0].source,\n page: {\n title: booru,\n url: result[0].page\n },\n filename: fn.substring(0, 33) + result[0].ext,\n thumbnail: csettings3.hotlink ? prev || full : import_buffer5.Buffer.from(await (await ifetch(prev || full)).arrayBuffer()),\n data: csettings3.hotlink ? full || prev : { url: full || prev }\n }];\n};\nvar phash = (b) => {\n const res = (0, import_jpeg_js.decode)(b);\n return bmvbhash_even(res, 8);\n};\nvar hammingDist = (a, b) => {\n let res = BigInt("0x" + a) ^ BigInt("0x" + b);\n let acc = 0;\n while (res != 0n) {\n acc += Number(res & 1n);\n res >>= 1n;\n }\n return acc;\n};\nvar has_embed3 = async (b, fn, prevlink) => {\n if (import_buffer5.Buffer.from(fn, "hex").equals(b))\n return false;\n let result = void 0;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n result = result.filter((e2) => e2.full_url || e2.preview_url);\n if (result.length)\n break;\n }\n if (result && result.length != 0 && phashEn && prevlink) {\n if (!result[0].preview_url)\n return true;\n const getHash = async (l) => {\n const ogreq = await ifetch(l);\n const origPreview = await ogreq.arrayBuffer();\n return phash(import_buffer5.Buffer.from(origPreview));\n };\n const [orighash, tehash] = await Promise.all([\n getHash(prevlink),\n getHash(result[0].preview_url)\n ]);\n const d = hammingDist(orighash, tehash);\n console.log(d, prevlink);\n return d > mindist;\n }\n return result && result.length != 0;\n};\nvar thirdeye_default = {\n skip: true,\n extract: extract3,\n has_embed: has_embed3,\n match: (fn) => !!fn.match(/^[0-9a-f]{32}\\.....?/)\n};\n\n// src/pomf.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer6 = __toESM(require_buffer(), 1);\nvar sources = [\n { host: "Catbox", prefix: "files.catbox.moe/" },\n { host: "Litter", prefix: "litter.catbox.moe/" },\n { host: "Zzzz", prefix: "z.zz.fo/" }\n];\nvar csettings4;\nsettings.subscribe((b) => {\n csettings4 = b;\n});\nvar getExt = (fn) => {\n const isB64 = fn.match(/^((?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=))?\\.(gif|jpe?g|png|webm)/);\n const isExt = fn.match(/\\[.*=(.*)\\]/);\n let ext;\n let source;\n try {\n if (isB64) {\n ext = atob(isB64[1]);\n } else if (isExt) {\n ext = decodeURIComponent(isExt[1]);\n if (ext.startsWith("https://"))\n ext = ext.slice("https://".length);\n for (const cs of sources)\n if (ext.startsWith(cs.prefix)) {\n source = cs.prefix;\n ext = ext.slice(cs.prefix.length);\n break;\n }\n }\n } catch {\n }\n return { ext, source };\n};\nvar extract4 = async (b, fn) => {\n if (!csettings4)\n throw new Error("Settings uninit");\n const { ext, source } = getExt(fn);\n let rsource;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n await getHeaders("https://" + cs.prefix + ext);\n rsource = "https://" + cs.prefix + ext;\n break;\n } catch {\n }\n }\n return [{\n filename: ext,\n data: csettings4.hotlink ? rsource : { url: rsource },\n thumbnail: import_buffer6.Buffer.from(hasembed_default)\n }];\n};\nvar has_embed4 = async (b, fn) => {\n const { ext, source } = getExt(fn);\n if (!ext)\n return false;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n const e = await getHeaders("https://" + cs.prefix + ext);\n return true;\n } catch {\n }\n }\n return false;\n};\nvar pomf_default = {\n skip: true,\n extract: extract4,\n has_embed: has_embed4,\n match: (fn) => !!getExt(fn)\n};\n\n// src/processor.worker.ts\nconsole.log("Worker started");\nvar pendinggens = {};\nvar proxyAsyncGen = (id) => {\n return {\n next(arg) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n return(v) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n throw() {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n [Symbol.asyncIterator]() {\n return this;\n }\n };\n};\nvar deserializeMessage = (m) => {\n if (m instanceof MessagePort)\n return m;\n if (typeof m == "object" && m.type == "AsyncGenerator") {\n return proxyAsyncGen(m.id);\n }\n if (typeof m == "object") {\n for (const p in m) {\n m[p] = deserializeMessage(m[p]);\n }\n }\n return m;\n};\nvar processors = [thirdeye_default, pomf_default, pngv3_default, jpg_default];\nvar processImage = async (srcs, fn, hex, prevurl) => {\n const ret = await Promise.all(processors.filter((e) => e.match(fn)).map(async (proc) => {\n if (proc.skip) {\n const md5 = Buffer2.from(hex, "base64");\n if (await proc.has_embed(md5, fn, prevurl) === true) {\n return [await proc.extract(md5, fn), true];\n }\n return;\n }\n let succ = false;\n let cumul;\n do {\n try {\n const n = await srcs.next();\n if (n.done)\n return;\n const iter = streamRemote(n.value);\n if (!iter)\n return;\n cumul = Buffer2.alloc(0);\n let found;\n let chunk = { done: true };\n do {\n const { value, done } = await iter.next(typeof found === "boolean");\n if (done) {\n chunk = { done: true };\n } else {\n chunk = { done: false, value };\n cumul = Buffer2.concat([cumul, value]);\n const v = await proc.has_embed(cumul);\n if (typeof v == "string") {\n return [await proc.extract(cumul, v), false];\n }\n found = v;\n }\n } while (found !== false && !chunk.done);\n succ = true;\n await iter.next(true);\n if (found !== true) {\n return;\n }\n return [await proc.extract(cumul), false];\n } catch (err) {\n console.log(err);\n }\n } while (!succ);\n }));\n return ret.filter((e) => e).map((e) => e);\n};\nvar init2 = false;\n(async () => {\n onmessage = async (msg) => {\n const des = deserializeMessage(msg.data);\n switch (des.type) {\n case "ipc": {\n setupPort(des.port);\n const nset = await localLoad("settingsv2", initial_settings);\n settings.set(nset);\n break;\n }\n case "cmd": {\n switch (des.fun) {\n case "processImage": {\n if (!init2) {\n await new Promise((_) => {\n settings.subscribe((v) => {\n if (v)\n _();\n });\n });\n init2 = true;\n }\n const res = await processImage(des.args[0], des.args[1], des.args[2], des.args[3]);\n const tr = [];\n for (const ef of res) {\n for (const e of ef[0]) {\n if (e.thumbnail && Buffer2.isBuffer(e.thumbnail) || typeof e.thumbnail != "string")\n tr.push(e.thumbnail.buffer);\n if (Buffer2.isBuffer(e.data) || typeof e.data != "string" && !("url" in e.data))\n tr.push(e.data.buffer);\n }\n }\n postMessage({\n type: "reply",\n id: des.id,\n res\n }, [...new Set(tr)]);\n }\n }\n break;\n }\n case "ag": {\n const cb = pendinggens[des.id].shift();\n if (cb) {\n cb(des.res);\n }\n break;\n }\n }\n };\n})();\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n'); + return inlineWorker('var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key2 of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key2) && key2 !== except)\n __defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));\nvar __decorateClass = (decorators, target, key2, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key2) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key2, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key2, result);\n return result;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError("Cannot " + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, "read from private field");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError("Cannot add the same private member more than once");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, "write to private field");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, "access private method");\n return method;\n};\nvar __toBinary = /* @__PURE__ */ (() => {\n var table = new Uint8Array(128);\n for (var i = 0; i < 64; i++)\n table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i;\n return (base64) => {\n var n = base64.length, bytes = new Uint8Array((n - (base64[n - 1] == "=") - (base64[n - 2] == "=")) * 3 / 4 | 0);\n for (var i2 = 0, j = 0; i2 < n; ) {\n var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)];\n var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)];\n bytes[j++] = c0 << 2 | c1 >> 4;\n bytes[j++] = c1 << 4 | c2 >> 2;\n bytes[j++] = c2 << 6 | c3;\n }\n return bytes;\n };\n})();\n\n// \nvar init_define_BUILD_VERSION = __esm({\n ""() {\n }\n});\n\n// node_modules/base64-js/index.js\nvar require_base64_js = __commonJS({\n "node_modules/base64-js/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.byteLength = byteLength;\n exports.toByteArray = toByteArray;\n exports.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array;\n var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";\n for (i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n var i;\n var len;\n revLookup["-".charCodeAt(0)] = 62;\n revLookup["_".charCodeAt(0)] = 63;\n function getLens(b64) {\n var len2 = b64.length;\n if (len2 % 4 > 0) {\n throw new Error("Invalid string. Length must be a multiple of 4");\n }\n var validLen = b64.indexOf("=");\n if (validLen === -1)\n validLen = len2;\n var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n }\n function byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0;\n var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i2;\n for (i2 = 0; i2 < len2; i2 += 4) {\n tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)];\n arr[curByte++] = tmp >> 16 & 255;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n return arr;\n }\n function tripletToBase64(num) {\n return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];\n }\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n for (var i2 = start; i2 < end; i2 += 3) {\n tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255);\n output.push(tripletToBase64(tmp));\n }\n return output.join("");\n }\n function fromByteArray(uint8) {\n var tmp;\n var len2 = uint8.length;\n var extraBytes = len2 % 3;\n var parts = [];\n var maxChunkLength = 16383;\n for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) {\n parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength));\n }\n if (extraBytes === 1) {\n tmp = uint8[len2 - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "==");\n } else if (extraBytes === 2) {\n tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "=");\n }\n return parts.join("");\n }\n }\n});\n\n// node_modules/ieee754/index.js\nvar require_ieee754 = __commonJS({\n "node_modules/ieee754/index.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.read = function(buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n exports.write = function(buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {\n }\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {\n }\n buffer[offset + i - d] |= s * 128;\n };\n }\n});\n\n// node_modules/buffer/index.js\nvar require_buffer = __commonJS({\n "node_modules/buffer/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var base64 = require_base64_js();\n var ieee7542 = require_ieee754();\n var customInspectSymbol = typeof Symbol === "function" && typeof Symbol["for"] === "function" ? Symbol["for"]("nodejs.util.inspect.custom") : null;\n exports.Buffer = Buffer13;\n exports.SlowBuffer = SlowBuffer;\n exports.INSPECT_MAX_BYTES = 50;\n var K_MAX_LENGTH = 2147483647;\n exports.kMaxLength = K_MAX_LENGTH;\n Buffer13.TYPED_ARRAY_SUPPORT = typedArraySupport();\n if (!Buffer13.TYPED_ARRAY_SUPPORT && typeof console !== "undefined" && typeof console.error === "function") {\n console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");\n }\n function typedArraySupport() {\n try {\n const arr = new Uint8Array(1);\n const proto = { foo: function() {\n return 42;\n } };\n Object.setPrototypeOf(proto, Uint8Array.prototype);\n Object.setPrototypeOf(arr, proto);\n return arr.foo() === 42;\n } catch (e) {\n return false;\n }\n }\n Object.defineProperty(Buffer13.prototype, "parent", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.buffer;\n }\n });\n Object.defineProperty(Buffer13.prototype, "offset", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.byteOffset;\n }\n });\n function createBuffer(length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError(\'The value "\' + length + \'" is invalid for option "size"\');\n }\n const buf2 = new Uint8Array(length);\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function Buffer13(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n if (typeof encodingOrOffset === "string") {\n throw new TypeError(\'The "string" argument must be of type string. Received type number\');\n }\n return allocUnsafe(arg);\n }\n return from(arg, encodingOrOffset, length);\n }\n Buffer13.poolSize = 8192;\n function from(value, encodingOrOffset, length) {\n if (typeof value === "string") {\n return fromString(value, encodingOrOffset);\n }\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value);\n }\n if (value == null) {\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof SharedArrayBuffer !== "undefined" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof value === "number") {\n throw new TypeError(\'The "value" argument must not be of type number. Received type number\');\n }\n const valueOf = value.valueOf && value.valueOf();\n if (valueOf != null && valueOf !== value) {\n return Buffer13.from(valueOf, encodingOrOffset, length);\n }\n const b = fromObject(value);\n if (b)\n return b;\n if (typeof Symbol !== "undefined" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === "function") {\n return Buffer13.from(value[Symbol.toPrimitive]("string"), encodingOrOffset, length);\n }\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n Buffer13.from = function(value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n };\n Object.setPrototypeOf(Buffer13.prototype, Uint8Array.prototype);\n Object.setPrototypeOf(Buffer13, Uint8Array);\n function assertSize(size) {\n if (typeof size !== "number") {\n throw new TypeError(\'"size" argument must be of type number\');\n } else if (size < 0) {\n throw new RangeError(\'The value "\' + size + \'" is invalid for option "size"\');\n }\n }\n function alloc(size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(size);\n }\n if (fill !== void 0) {\n return typeof encoding === "string" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n return createBuffer(size);\n }\n Buffer13.alloc = function(size, fill, encoding) {\n return alloc(size, fill, encoding);\n };\n function allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n }\n Buffer13.allocUnsafe = function(size) {\n return allocUnsafe(size);\n };\n Buffer13.allocUnsafeSlow = function(size) {\n return allocUnsafe(size);\n };\n function fromString(string, encoding) {\n if (typeof encoding !== "string" || encoding === "") {\n encoding = "utf8";\n }\n if (!Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n const length = byteLength(string, encoding) | 0;\n let buf2 = createBuffer(length);\n const actual = buf2.write(string, encoding);\n if (actual !== length) {\n buf2 = buf2.slice(0, actual);\n }\n return buf2;\n }\n function fromArrayLike(array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0;\n const buf2 = createBuffer(length);\n for (let i = 0; i < length; i += 1) {\n buf2[i] = array[i] & 255;\n }\n return buf2;\n }\n function fromArrayView(arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView);\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);\n }\n return fromArrayLike(arrayView);\n }\n function fromArrayBuffer(array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError(\'"offset" is outside of buffer bounds\');\n }\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError(\'"length" is outside of buffer bounds\');\n }\n let buf2;\n if (byteOffset === void 0 && length === void 0) {\n buf2 = new Uint8Array(array);\n } else if (length === void 0) {\n buf2 = new Uint8Array(array, byteOffset);\n } else {\n buf2 = new Uint8Array(array, byteOffset, length);\n }\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function fromObject(obj) {\n if (Buffer13.isBuffer(obj)) {\n const len = checked(obj.length) | 0;\n const buf2 = createBuffer(len);\n if (buf2.length === 0) {\n return buf2;\n }\n obj.copy(buf2, 0, 0, len);\n return buf2;\n }\n if (obj.length !== void 0) {\n if (typeof obj.length !== "number" || numberIsNaN(obj.length)) {\n return createBuffer(0);\n }\n return fromArrayLike(obj);\n }\n if (obj.type === "Buffer" && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n }\n function checked(length) {\n if (length >= K_MAX_LENGTH) {\n throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + K_MAX_LENGTH.toString(16) + " bytes");\n }\n return length | 0;\n }\n function SlowBuffer(length) {\n if (+length != length) {\n length = 0;\n }\n return Buffer13.alloc(+length);\n }\n Buffer13.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer13.prototype;\n };\n Buffer13.compare = function compare(a, b) {\n if (isInstance(a, Uint8Array))\n a = Buffer13.from(a, a.offset, a.byteLength);\n if (isInstance(b, Uint8Array))\n b = Buffer13.from(b, b.offset, b.byteLength);\n if (!Buffer13.isBuffer(a) || !Buffer13.isBuffer(b)) {\n throw new TypeError(\'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array\');\n }\n if (a === b)\n return 0;\n let x = a.length;\n let y = b.length;\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n Buffer13.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "latin1":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return true;\n default:\n return false;\n }\n };\n Buffer13.concat = function concat(list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n }\n if (list.length === 0) {\n return Buffer13.alloc(0);\n }\n let i;\n if (length === void 0) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n const buffer = Buffer13.allocUnsafe(length);\n let pos = 0;\n for (i = 0; i < list.length; ++i) {\n let buf2 = list[i];\n if (isInstance(buf2, Uint8Array)) {\n if (pos + buf2.length > buffer.length) {\n if (!Buffer13.isBuffer(buf2))\n buf2 = Buffer13.from(buf2);\n buf2.copy(buffer, pos);\n } else {\n Uint8Array.prototype.set.call(buffer, buf2, pos);\n }\n } else if (!Buffer13.isBuffer(buf2)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n } else {\n buf2.copy(buffer, pos);\n }\n pos += buf2.length;\n }\n return buffer;\n };\n function byteLength(string, encoding) {\n if (Buffer13.isBuffer(string)) {\n return string.length;\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength;\n }\n if (typeof string !== "string") {\n throw new TypeError(\'The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type \' + typeof string);\n }\n const len = string.length;\n const mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0)\n return 0;\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "ascii":\n case "latin1":\n case "binary":\n return len;\n case "utf8":\n case "utf-8":\n return utf8ToBytes(string).length;\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return len * 2;\n case "hex":\n return len >>> 1;\n case "base64":\n return base64ToBytes(string).length;\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length;\n }\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.byteLength = byteLength;\n function slowToString(encoding, start, end) {\n let loweredCase = false;\n if (start === void 0 || start < 0) {\n start = 0;\n }\n if (start > this.length) {\n return "";\n }\n if (end === void 0 || end > this.length) {\n end = this.length;\n }\n if (end <= 0) {\n return "";\n }\n end >>>= 0;\n start >>>= 0;\n if (end <= start) {\n return "";\n }\n if (!encoding)\n encoding = "utf8";\n while (true) {\n switch (encoding) {\n case "hex":\n return hexSlice(this, start, end);\n case "utf8":\n case "utf-8":\n return utf8Slice(this, start, end);\n case "ascii":\n return asciiSlice(this, start, end);\n case "latin1":\n case "binary":\n return latin1Slice(this, start, end);\n case "base64":\n return base64Slice(this, start, end);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return utf16leSlice(this, start, end);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = (encoding + "").toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.prototype._isBuffer = true;\n function swap(b, n, m) {\n const i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n Buffer13.prototype.swap16 = function swap16() {\n const len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 16-bits");\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this;\n };\n Buffer13.prototype.swap32 = function swap32() {\n const len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 32-bits");\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this;\n };\n Buffer13.prototype.swap64 = function swap64() {\n const len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 64-bits");\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this;\n };\n Buffer13.prototype.toString = function toString() {\n const length = this.length;\n if (length === 0)\n return "";\n if (arguments.length === 0)\n return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n };\n Buffer13.prototype.toLocaleString = Buffer13.prototype.toString;\n Buffer13.prototype.equals = function equals(b) {\n if (!Buffer13.isBuffer(b))\n throw new TypeError("Argument must be a Buffer");\n if (this === b)\n return true;\n return Buffer13.compare(this, b) === 0;\n };\n Buffer13.prototype.inspect = function inspect() {\n let str = "";\n const max = exports.INSPECT_MAX_BYTES;\n str = this.toString("hex", 0, max).replace(/(.{2})/g, "$1 ").trim();\n if (this.length > max)\n str += " ... ";\n return "";\n };\n if (customInspectSymbol) {\n Buffer13.prototype[customInspectSymbol] = Buffer13.prototype.inspect;\n }\n Buffer13.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer13.from(target, target.offset, target.byteLength);\n }\n if (!Buffer13.isBuffer(target)) {\n throw new TypeError(\'The "target" argument must be one of type Buffer or Uint8Array. Received type \' + typeof target);\n }\n if (start === void 0) {\n start = 0;\n }\n if (end === void 0) {\n end = target ? target.length : 0;\n }\n if (thisStart === void 0) {\n thisStart = 0;\n }\n if (thisEnd === void 0) {\n thisEnd = this.length;\n }\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError("out of range index");\n }\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n if (thisStart >= thisEnd) {\n return -1;\n }\n if (start >= end) {\n return 1;\n }\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target)\n return 0;\n let x = thisEnd - thisStart;\n let y = end - start;\n const len = Math.min(x, y);\n const thisCopy = this.slice(thisStart, thisEnd);\n const targetCopy = target.slice(start, end);\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n if (buffer.length === 0)\n return -1;\n if (typeof byteOffset === "string") {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 2147483647) {\n byteOffset = 2147483647;\n } else if (byteOffset < -2147483648) {\n byteOffset = -2147483648;\n }\n byteOffset = +byteOffset;\n if (numberIsNaN(byteOffset)) {\n byteOffset = dir ? 0 : buffer.length - 1;\n }\n if (byteOffset < 0)\n byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir)\n return -1;\n else\n byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir)\n byteOffset = 0;\n else\n return -1;\n }\n if (typeof val === "string") {\n val = Buffer13.from(val, encoding);\n }\n if (Buffer13.isBuffer(val)) {\n if (val.length === 0) {\n return -1;\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === "number") {\n val = val & 255;\n if (typeof Uint8Array.prototype.indexOf === "function") {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n throw new TypeError("val must be string, number or Buffer");\n }\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n let indexSize = 1;\n let arrLength = arr.length;\n let valLength = val.length;\n if (encoding !== void 0) {\n encoding = String(encoding).toLowerCase();\n if (encoding === "ucs2" || encoding === "ucs-2" || encoding === "utf16le" || encoding === "utf-16le") {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n function read2(buf2, i2) {\n if (indexSize === 1) {\n return buf2[i2];\n } else {\n return buf2.readUInt16BE(i2 * indexSize);\n }\n }\n let i;\n if (dir) {\n let foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read2(arr, i) === read2(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1)\n foundIndex = i;\n if (i - foundIndex + 1 === valLength)\n return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1)\n i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength)\n byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n let found = true;\n for (let j = 0; j < valLength; j++) {\n if (read2(arr, i + j) !== read2(val, j)) {\n found = false;\n break;\n }\n }\n if (found)\n return i;\n }\n }\n return -1;\n }\n Buffer13.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n Buffer13.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n Buffer13.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n function hexWrite(buf2, string, offset, length) {\n offset = Number(offset) || 0;\n const remaining = buf2.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n const strLen = string.length;\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n let i;\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16);\n if (numberIsNaN(parsed))\n return i;\n buf2[offset + i] = parsed;\n }\n return i;\n }\n function utf8Write(buf2, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n function asciiWrite(buf2, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf2, offset, length);\n }\n function base64Write(buf2, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf2, offset, length);\n }\n function ucs2Write(buf2, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n Buffer13.prototype.write = function write2(string, offset, length, encoding) {\n if (offset === void 0) {\n encoding = "utf8";\n length = this.length;\n offset = 0;\n } else if (length === void 0 && typeof offset === "string") {\n encoding = offset;\n length = this.length;\n offset = 0;\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n if (isFinite(length)) {\n length = length >>> 0;\n if (encoding === void 0)\n encoding = "utf8";\n } else {\n encoding = length;\n length = void 0;\n }\n } else {\n throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");\n }\n const remaining = this.length - offset;\n if (length === void 0 || length > remaining)\n length = remaining;\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError("Attempt to write outside buffer bounds");\n }\n if (!encoding)\n encoding = "utf8";\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "hex":\n return hexWrite(this, string, offset, length);\n case "utf8":\n case "utf-8":\n return utf8Write(this, string, offset, length);\n case "ascii":\n case "latin1":\n case "binary":\n return asciiWrite(this, string, offset, length);\n case "base64":\n return base64Write(this, string, offset, length);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return ucs2Write(this, string, offset, length);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n Buffer13.prototype.toJSON = function toJSON() {\n return {\n type: "Buffer",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n function base64Slice(buf2, start, end) {\n if (start === 0 && end === buf2.length) {\n return base64.fromByteArray(buf2);\n } else {\n return base64.fromByteArray(buf2.slice(start, end));\n }\n }\n function utf8Slice(buf2, start, end) {\n end = Math.min(buf2.length, end);\n const res = [];\n let i = start;\n while (i < end) {\n const firstByte = buf2[i];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf2[i + 1];\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n fourthByte = buf2[i + 3];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n res.push(codePoint);\n i += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n }\n var MAX_ARGUMENTS_LENGTH = 4096;\n function decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints);\n }\n let res = "";\n let i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n }\n function asciiSlice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i] & 127);\n }\n return ret;\n }\n function latin1Slice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i]);\n }\n return ret;\n }\n function hexSlice(buf2, start, end) {\n const len = buf2.length;\n if (!start || start < 0)\n start = 0;\n if (!end || end < 0 || end > len)\n end = len;\n let out = "";\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf2[i]];\n }\n return out;\n }\n function utf16leSlice(buf2, start, end) {\n const bytes = buf2.slice(start, end);\n let res = "";\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res;\n }\n Buffer13.prototype.slice = function slice(start, end) {\n const len = this.length;\n start = ~~start;\n end = end === void 0 ? len : ~~end;\n if (start < 0) {\n start += len;\n if (start < 0)\n start = 0;\n } else if (start > len) {\n start = len;\n }\n if (end < 0) {\n end += len;\n if (end < 0)\n end = 0;\n } else if (end > len) {\n end = len;\n }\n if (end < start)\n end = start;\n const newBuf = this.subarray(start, end);\n Object.setPrototypeOf(newBuf, Buffer13.prototype);\n return newBuf;\n };\n function checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0)\n throw new RangeError("offset is not uint");\n if (offset + ext > length)\n throw new RangeError("Trying to access beyond buffer length");\n }\n Buffer13.prototype.readUintLE = Buffer13.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUintBE = Buffer13.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n checkOffset(offset, byteLength2, this.length);\n }\n let val = this[offset + --byteLength2];\n let mul = 1;\n while (byteLength2 > 0 && (mul *= 256)) {\n val += this[offset + --byteLength2] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUint8 = Buffer13.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n return this[offset];\n };\n Buffer13.prototype.readUint16LE = Buffer13.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n };\n Buffer13.prototype.readUint16BE = Buffer13.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n };\n Buffer13.prototype.readUint32LE = Buffer13.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;\n };\n Buffer13.prototype.readUint32BE = Buffer13.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n Buffer13.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const lo = first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24;\n const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last * 2 ** 24;\n return BigInt(lo) + (BigInt(hi) << BigInt(32));\n });\n Buffer13.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const hi = first * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last;\n return (BigInt(hi) << BigInt(32)) + BigInt(lo);\n });\n Buffer13.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let i = byteLength2;\n let mul = 1;\n let val = this[offset + --i];\n while (i > 0 && (mul *= 256)) {\n val += this[offset + --i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readInt8 = function readInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n if (!(this[offset] & 128))\n return this[offset];\n return (255 - this[offset] + 1) * -1;\n };\n Buffer13.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset] | this[offset + 1] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset + 1] | this[offset] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n Buffer13.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n Buffer13.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last << 24);\n return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24);\n });\n Buffer13.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = (first << 24) + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last);\n });\n Buffer13.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, true, 23, 4);\n };\n Buffer13.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, false, 23, 4);\n };\n Buffer13.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, true, 52, 8);\n };\n Buffer13.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, false, 52, 8);\n };\n function checkInt(buf2, value, offset, ext, max, min) {\n if (!Buffer13.isBuffer(buf2))\n throw new TypeError(\'"buffer" argument must be a Buffer instance\');\n if (value > max || value < min)\n throw new RangeError(\'"value" argument is out of bounds\');\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n }\n Buffer13.prototype.writeUintLE = Buffer13.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let mul = 1;\n let i = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUintBE = Buffer13.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUint8 = Buffer13.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 255, 0);\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeUint16LE = Buffer13.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeUint16BE = Buffer13.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeUint32LE = Buffer13.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeUint32BE = Buffer13.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n function wrtBigUInt64LE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n return offset;\n }\n function wrtBigUInt64BE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset + 7] = lo;\n lo = lo >> 8;\n buf2[offset + 6] = lo;\n lo = lo >> 8;\n buf2[offset + 5] = lo;\n lo = lo >> 8;\n buf2[offset + 4] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset + 3] = hi;\n hi = hi >> 8;\n buf2[offset + 2] = hi;\n hi = hi >> 8;\n buf2[offset + 1] = hi;\n hi = hi >> 8;\n buf2[offset] = hi;\n return offset + 8;\n }\n Buffer13.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = 0;\n let mul = 1;\n let sub = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n let sub = 0;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 127, -128);\n if (value < 0)\n value = 255 + value + 1;\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n return offset + 4;\n };\n Buffer13.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n if (value < 0)\n value = 4294967295 + value + 1;\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n Buffer13.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n function checkIEEE754(buf2, value, offset, ext, max, min) {\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n if (offset < 0)\n throw new RangeError("Index out of range");\n }\n function writeFloat(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 4, 34028234663852886e22, -34028234663852886e22);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n Buffer13.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n function writeDouble(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 8, 17976931348623157e292, -17976931348623157e292);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n Buffer13.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n };\n Buffer13.prototype.copy = function copy(target, targetStart, start, end) {\n if (!Buffer13.isBuffer(target))\n throw new TypeError("argument should be a Buffer");\n if (!start)\n start = 0;\n if (!end && end !== 0)\n end = this.length;\n if (targetStart >= target.length)\n targetStart = target.length;\n if (!targetStart)\n targetStart = 0;\n if (end > 0 && end < start)\n end = start;\n if (end === start)\n return 0;\n if (target.length === 0 || this.length === 0)\n return 0;\n if (targetStart < 0) {\n throw new RangeError("targetStart out of bounds");\n }\n if (start < 0 || start >= this.length)\n throw new RangeError("Index out of range");\n if (end < 0)\n throw new RangeError("sourceEnd out of bounds");\n if (end > this.length)\n end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n const len = end - start;\n if (this === target && typeof Uint8Array.prototype.copyWithin === "function") {\n this.copyWithin(targetStart, start, end);\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart);\n }\n return len;\n };\n Buffer13.prototype.fill = function fill(val, start, end, encoding) {\n if (typeof val === "string") {\n if (typeof start === "string") {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === "string") {\n encoding = end;\n end = this.length;\n }\n if (encoding !== void 0 && typeof encoding !== "string") {\n throw new TypeError("encoding must be a string");\n }\n if (typeof encoding === "string" && !Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0);\n if (encoding === "utf8" && code < 128 || encoding === "latin1") {\n val = code;\n }\n }\n } else if (typeof val === "number") {\n val = val & 255;\n } else if (typeof val === "boolean") {\n val = Number(val);\n }\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError("Out of range index");\n }\n if (end <= start) {\n return this;\n }\n start = start >>> 0;\n end = end === void 0 ? this.length : end >>> 0;\n if (!val)\n val = 0;\n let i;\n if (typeof val === "number") {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n const bytes = Buffer13.isBuffer(val) ? val : Buffer13.from(val, encoding);\n const len = bytes.length;\n if (len === 0) {\n throw new TypeError(\'The value "\' + val + \'" is invalid for argument "value"\');\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n return this;\n };\n var errors = {};\n function E(sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor() {\n super();\n Object.defineProperty(this, "message", {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n });\n this.name = `${this.name} [${sym}]`;\n this.stack;\n delete this.name;\n }\n get code() {\n return sym;\n }\n set code(value) {\n Object.defineProperty(this, "code", {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n });\n }\n toString() {\n return `${this.name} [${sym}]: ${this.message}`;\n }\n };\n }\n E("ERR_BUFFER_OUT_OF_BOUNDS", function(name) {\n if (name) {\n return `${name} is outside of buffer bounds`;\n }\n return "Attempt to access memory outside buffer bounds";\n }, RangeError);\n E("ERR_INVALID_ARG_TYPE", function(name, actual) {\n return `The "${name}" argument must be of type number. Received type ${typeof actual}`;\n }, TypeError);\n E("ERR_OUT_OF_RANGE", function(str, range, input) {\n let msg = `The value of "${str}" is out of range.`;\n let received = input;\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input));\n } else if (typeof input === "bigint") {\n received = String(input);\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received);\n }\n received += "n";\n }\n msg += ` It must be ${range}. Received ${received}`;\n return msg;\n }, RangeError);\n function addNumericalSeparator(val) {\n let res = "";\n let i = val.length;\n const start = val[0] === "-" ? 1 : 0;\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`;\n }\n return `${val.slice(0, i)}${res}`;\n }\n function checkBounds(buf2, offset, byteLength2) {\n validateNumber(offset, "offset");\n if (buf2[offset] === void 0 || buf2[offset + byteLength2] === void 0) {\n boundsError(offset, buf2.length - (byteLength2 + 1));\n }\n }\n function checkIntBI(value, min, max, buf2, offset, byteLength2) {\n if (value > max || value < min) {\n const n = typeof min === "bigint" ? "n" : "";\n let range;\n if (byteLength2 > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength2 + 1) * 8}${n}`;\n } else {\n range = `>= -(2${n} ** ${(byteLength2 + 1) * 8 - 1}${n}) and < 2 ** ${(byteLength2 + 1) * 8 - 1}${n}`;\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`;\n }\n throw new errors.ERR_OUT_OF_RANGE("value", range, value);\n }\n checkBounds(buf2, offset, byteLength2);\n }\n function validateNumber(value, name) {\n if (typeof value !== "number") {\n throw new errors.ERR_INVALID_ARG_TYPE(name, "number", value);\n }\n }\n function boundsError(value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type);\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", "an integer", value);\n }\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n }\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", `>= ${type ? 1 : 0} and <= ${length}`, value);\n }\n var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n function base64clean(str) {\n str = str.split("=")[0];\n str = str.trim().replace(INVALID_BASE64_RE, "");\n if (str.length < 2)\n return "";\n while (str.length % 4 !== 0) {\n str = str + "=";\n }\n return str;\n }\n function utf8ToBytes(string, units) {\n units = units || Infinity;\n let codePoint;\n const length = string.length;\n let leadSurrogate = null;\n const bytes = [];\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n if (codePoint > 55295 && codePoint < 57344) {\n if (!leadSurrogate) {\n if (codePoint > 56319) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n }\n leadSurrogate = codePoint;\n continue;\n }\n if (codePoint < 56320) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n }\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n }\n leadSurrogate = null;\n if (codePoint < 128) {\n if ((units -= 1) < 0)\n break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0)\n break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0)\n break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0)\n break;\n bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else {\n throw new Error("Invalid code point");\n }\n }\n return bytes;\n }\n function asciiToBytes(str) {\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n byteArray.push(str.charCodeAt(i) & 255);\n }\n return byteArray;\n }\n function utf16leToBytes(str, units) {\n let c, hi, lo;\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0)\n break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n return byteArray;\n }\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n function blitBuffer(src, dst, offset, length) {\n let i;\n for (i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length)\n break;\n dst[i + offset] = src[i];\n }\n return i;\n }\n function isInstance(obj, type) {\n return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n }\n function numberIsNaN(obj) {\n return obj !== obj;\n }\n var hexSliceLookupTable = function() {\n const alphabet = "0123456789abcdef";\n const table = new Array(256);\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16;\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n return table;\n }();\n function defineBigIntMethod(fn) {\n return typeof BigInt === "undefined" ? BufferBigIntNotDefined : fn;\n }\n function BufferBigIntNotDefined() {\n throw new Error("BigInt not supported");\n }\n }\n});\n\n// esbuild.inject.js\nvar Buffer2;\nvar init_esbuild_inject = __esm({\n "esbuild.inject.js"() {\n "use strict";\n Buffer2 = require_buffer().Buffer;\n }\n});\n\n// node_modules/crc-32/crc32.js\nvar require_crc32 = __commonJS({\n "node_modules/crc-32/crc32.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var CRC32;\n (function(factory) {\n if (typeof DO_NOT_EXPORT_CRC === "undefined") {\n if (typeof exports === "object") {\n factory(exports);\n } else if (typeof define === "function" && define.amd) {\n define(function() {\n var module2 = {};\n factory(module2);\n return module2;\n });\n } else {\n factory(CRC32 = {});\n }\n } else {\n factory(CRC32 = {});\n }\n })(function(CRC322) {\n CRC322.version = "1.2.0";\n function signed_crc_table() {\n var c = 0, table = new Array(256);\n for (var n = 0; n != 256; ++n) {\n c = n;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n table[n] = c;\n }\n return typeof Int32Array !== "undefined" ? new Int32Array(table) : table;\n }\n var T = signed_crc_table();\n function crc32_bstr(bstr, seed) {\n var C = seed ^ -1, L = bstr.length - 1;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n }\n if (i === L)\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i)) & 255];\n return C ^ -1;\n }\n function crc32_buf(buf2, seed) {\n if (buf2.length > 1e4)\n return crc32_buf_8(buf2, seed);\n var C = seed ^ -1, L = buf2.length - 3;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 3)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_buf_8(buf2, seed) {\n var C = seed ^ -1, L = buf2.length - 7;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 7)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_str(str, seed) {\n var C = seed ^ -1;\n for (var i = 0, L = str.length, c, d; i < L; ) {\n c = str.charCodeAt(i++);\n if (c < 128) {\n C = C >>> 8 ^ T[(C ^ c) & 255];\n } else if (c < 2048) {\n C = C >>> 8 ^ T[(C ^ (192 | c >> 6 & 31)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n } else if (c >= 55296 && c < 57344) {\n c = (c & 1023) + 64;\n d = str.charCodeAt(i++) & 1023;\n C = C >>> 8 ^ T[(C ^ (240 | c >> 8 & 7)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 2 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d >> 6 & 15 | (c & 3) << 4)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d & 63)) & 255];\n } else {\n C = C >>> 8 ^ T[(C ^ (224 | c >> 12 & 15)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 6 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n }\n }\n return C ^ -1;\n }\n CRC322.table = T;\n CRC322.bstr = crc32_bstr;\n CRC322.buf = crc32_buf;\n CRC322.str = crc32_str;\n });\n }\n});\n\n// node_modules/events/events.js\nvar require_events = __commonJS({\n "node_modules/events/events.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var R = typeof Reflect === "object" ? Reflect : null;\n var ReflectApply = R && typeof R.apply === "function" ? R.apply : function ReflectApply2(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n };\n var ReflectOwnKeys;\n if (R && typeof R.ownKeys === "function") {\n ReflectOwnKeys = R.ownKeys;\n } else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n } else {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target);\n };\n }\n function ProcessEmitWarning(warning) {\n if (console && console.warn)\n console.warn(warning);\n }\n var NumberIsNaN = Number.isNaN || function NumberIsNaN2(value) {\n return value !== value;\n };\n function EventEmitter() {\n EventEmitter.init.call(this);\n }\n module.exports = EventEmitter;\n module.exports.once = once;\n EventEmitter.EventEmitter = EventEmitter;\n EventEmitter.prototype._events = void 0;\n EventEmitter.prototype._eventsCount = 0;\n EventEmitter.prototype._maxListeners = void 0;\n var defaultMaxListeners = 10;\n function checkListener(listener) {\n if (typeof listener !== "function") {\n throw new TypeError(\'The "listener" argument must be of type Function. Received type \' + typeof listener);\n }\n }\n Object.defineProperty(EventEmitter, "defaultMaxListeners", {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== "number" || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError(\'The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received \' + arg + ".");\n }\n defaultMaxListeners = arg;\n }\n });\n EventEmitter.init = function() {\n if (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n }\n this._maxListeners = this._maxListeners || void 0;\n };\n EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== "number" || n < 0 || NumberIsNaN(n)) {\n throw new RangeError(\'The value of "n" is out of range. It must be a non-negative number. Received \' + n + ".");\n }\n this._maxListeners = n;\n return this;\n };\n function _getMaxListeners(that) {\n if (that._maxListeners === void 0)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n }\n EventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n };\n EventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++)\n args.push(arguments[i]);\n var doError = type === "error";\n var events = this._events;\n if (events !== void 0)\n doError = doError && events.error === void 0;\n else if (!doError)\n return false;\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n throw er;\n }\n var err = new Error("Unhandled error." + (er ? " (" + er.message + ")" : ""));\n err.context = er;\n throw err;\n }\n var handler = events[type];\n if (handler === void 0)\n return false;\n if (typeof handler === "function") {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n return true;\n };\n function _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n if (events === void 0) {\n events = target._events = /* @__PURE__ */ Object.create(null);\n target._eventsCount = 0;\n } else {\n if (events.newListener !== void 0) {\n target.emit("newListener", type, listener.listener ? listener.listener : listener);\n events = target._events;\n }\n existing = events[type];\n }\n if (existing === void 0) {\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === "function") {\n existing = events[type] = prepend ? [listener, existing] : [existing, listener];\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n var w = new Error("Possible EventEmitter memory leak detected. " + existing.length + " " + String(type) + " listeners added. Use emitter.setMaxListeners() to increase limit");\n w.name = "MaxListenersExceededWarning";\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n return target;\n }\n EventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n };\n EventEmitter.prototype.on = EventEmitter.prototype.addListener;\n EventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n function onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n }\n function _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: void 0, target, type, listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n }\n EventEmitter.prototype.once = function once2(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === void 0)\n return this;\n list = events[type];\n if (list === void 0)\n return this;\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit("removeListener", type, list.listener || listener);\n }\n } else if (typeof list !== "function") {\n position = -1;\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n if (position < 0)\n return this;\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n if (list.length === 1)\n events[type] = list[0];\n if (events.removeListener !== void 0)\n this.emit("removeListener", type, originalListener || listener);\n }\n return this;\n };\n EventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === void 0)\n return this;\n if (events.removeListener === void 0) {\n if (arguments.length === 0) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== void 0) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key2;\n for (i = 0; i < keys.length; ++i) {\n key2 = keys[i];\n if (key2 === "removeListener")\n continue;\n this.removeAllListeners(key2);\n }\n this.removeAllListeners("removeListener");\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n listeners = events[type];\n if (typeof listeners === "function") {\n this.removeListener(type, listeners);\n } else if (listeners !== void 0) {\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n return this;\n };\n function _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === void 0)\n return [];\n var evlistener = events[type];\n if (evlistener === void 0)\n return [];\n if (typeof evlistener === "function")\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n }\n EventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n };\n EventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n };\n EventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === "function") {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n };\n EventEmitter.prototype.listenerCount = listenerCount;\n function listenerCount(type) {\n var events = this._events;\n if (events !== void 0) {\n var evlistener = events[type];\n if (typeof evlistener === "function") {\n return 1;\n } else if (evlistener !== void 0) {\n return evlistener.length;\n }\n }\n return 0;\n }\n EventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n };\n function arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n }\n function spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n }\n function unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n }\n function once(emitter, name) {\n return new Promise(function(resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n function resolver() {\n if (typeof emitter.removeListener === "function") {\n emitter.removeListener("error", errorListener);\n }\n resolve([].slice.call(arguments));\n }\n ;\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== "error") {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n }\n function addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === "function") {\n eventTargetAgnosticAddListener(emitter, "error", handler, flags);\n }\n }\n function eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === "function") {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === "function") {\n emitter.addEventListener(name, function wrapListener(arg) {\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError(\'The "emitter" argument must be of type EventEmitter. Received type \' + typeof emitter);\n }\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/stream-browser.js\nvar require_stream_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/stream-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = require_events().EventEmitter;\n }\n});\n\n// (disabled):node_modules/util/util.js\nvar require_util = __commonJS({\n "(disabled):node_modules/util/util.js"() {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/buffer_list.js\nvar require_buffer_list = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/buffer_list.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly)\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n }\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function(key2) {\n _defineProperty(target, key2, source[key2]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key2) {\n Object.defineProperty(target, key2, Object.getOwnPropertyDescriptor(source, key2));\n });\n }\n }\n return target;\n }\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n var _require = require_buffer();\n var Buffer13 = _require.Buffer;\n var _require2 = require_util();\n var inspect = _require2.inspect;\n var custom = inspect && inspect.custom || "inspect";\n function copyBuffer(src, target, offset) {\n Buffer13.prototype.copy.call(src, target, offset);\n }\n module.exports = /* @__PURE__ */ function() {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: "push",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0)\n this.tail.next = entry;\n else\n this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: "unshift",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0)\n this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: "shift",\n value: function shift() {\n if (this.length === 0)\n return;\n var ret = this.head.data;\n if (this.length === 1)\n this.head = this.tail = null;\n else\n this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: "clear",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: "join",\n value: function join(s) {\n if (this.length === 0)\n return "";\n var p = this.head;\n var ret = "" + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }\n return ret;\n }\n }, {\n key: "concat",\n value: function concat(n) {\n if (this.length === 0)\n return Buffer13.alloc(0);\n var ret = Buffer13.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n }, {\n key: "consume",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n ret = this.shift();\n } else {\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: "first",\n value: function first() {\n return this.head.data;\n }\n }, {\n key: "_getString",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length)\n ret += str;\n else\n ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: "_getBuffer",\n value: function _getBuffer(n) {\n var ret = Buffer13.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf2 = p.data;\n var nb = n > buf2.length ? buf2.length : n;\n buf2.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf2.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf2.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n depth: 0,\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n }();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/destroy.js\nvar require_destroy = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/destroy.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function(err2) {\n if (!cb && err2) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n }\n function emitErrorAndCloseNT(self2, err) {\n emitErrorNT(self2, err);\n emitCloseNT(self2);\n }\n function emitCloseNT(self2) {\n if (self2._writableState && !self2._writableState.emitClose)\n return;\n if (self2._readableState && !self2._readableState.emitClose)\n return;\n self2.emit("close");\n }\n function undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n }\n function emitErrorNT(self2, err) {\n self2.emit("error", err);\n }\n function errorOrDestroy(stream, err) {\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy)\n stream.destroy(err);\n else\n stream.emit("error", err);\n }\n module.exports = {\n destroy,\n undestroy,\n errorOrDestroy\n };\n }\n});\n\n// node_modules/readable-stream/errors-browser.js\nvar require_errors_browser = __commonJS({\n "node_modules/readable-stream/errors-browser.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n }\n var codes = {};\n function createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === "string") {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /* @__PURE__ */ function(_Base) {\n _inheritsLoose(NodeError2, _Base);\n function NodeError2(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n return NodeError2;\n }(Base);\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n }\n function oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function(i) {\n return String(i);\n });\n if (len > 2) {\n return "one of ".concat(thing, " ").concat(expected.slice(0, len - 1).join(", "), ", or ") + expected[len - 1];\n } else if (len === 2) {\n return "one of ".concat(thing, " ").concat(expected[0], " or ").concat(expected[1]);\n } else {\n return "of ".concat(thing, " ").concat(expected[0]);\n }\n } else {\n return "of ".concat(thing, " ").concat(String(expected));\n }\n }\n function startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n }\n function endsWith(str, search, this_len) {\n if (this_len === void 0 || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n }\n function includes(str, search, start) {\n if (typeof start !== "number") {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n }\n createErrorType("ERR_INVALID_OPT_VALUE", function(name, value) {\n return \'The value "\' + value + \'" is invalid for option "\' + name + \'"\';\n }, TypeError);\n createErrorType("ERR_INVALID_ARG_TYPE", function(name, expected, actual) {\n var determiner;\n if (typeof expected === "string" && startsWith(expected, "not ")) {\n determiner = "must not be";\n expected = expected.replace(/^not /, "");\n } else {\n determiner = "must be";\n }\n var msg;\n if (endsWith(name, " argument")) {\n msg = "The ".concat(name, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n } else {\n var type = includes(name, ".") ? "property" : "argument";\n msg = \'The "\'.concat(name, \'" \').concat(type, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n }\n msg += ". Received type ".concat(typeof actual);\n return msg;\n }, TypeError);\n createErrorType("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF");\n createErrorType("ERR_METHOD_NOT_IMPLEMENTED", function(name) {\n return "The " + name + " method is not implemented";\n });\n createErrorType("ERR_STREAM_PREMATURE_CLOSE", "Premature close");\n createErrorType("ERR_STREAM_DESTROYED", function(name) {\n return "Cannot call " + name + " after a stream was destroyed";\n });\n createErrorType("ERR_MULTIPLE_CALLBACK", "Callback called multiple times");\n createErrorType("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable");\n createErrorType("ERR_STREAM_WRITE_AFTER_END", "write after end");\n createErrorType("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError);\n createErrorType("ERR_UNKNOWN_ENCODING", function(arg) {\n return "Unknown encoding: " + arg;\n }, TypeError);\n createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event");\n module.exports.codes = codes;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/state.js\nvar require_state = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/state.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_INVALID_OPT_VALUE = require_errors_browser().codes.ERR_INVALID_OPT_VALUE;\n function highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n }\n function getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : "highWaterMark";\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n return state.objectMode ? 16 : 16 * 1024;\n }\n module.exports = {\n getHighWaterMark\n };\n }\n});\n\n// node_modules/inherits/inherits_browser.js\nvar require_inherits_browser = __commonJS({\n "node_modules/inherits/inherits_browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n if (typeof Object.create === "function") {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n } else {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function() {\n };\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n }\n }\n});\n\n// node_modules/util-deprecate/browser.js\nvar require_browser = __commonJS({\n "node_modules/util-deprecate/browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = deprecate;\n function deprecate(fn, msg) {\n if (config("noDeprecation")) {\n return fn;\n }\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config("throwDeprecation")) {\n throw new Error(msg);\n } else if (config("traceDeprecation")) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n }\n function config(name) {\n try {\n if (!self.localStorage)\n return false;\n } catch (_) {\n return false;\n }\n var val = self.localStorage[name];\n if (val == null)\n return false;\n return String(val).toLowerCase() === "true";\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_writable.js\nvar require_stream_writable = __commonJS({\n "node_modules/readable-stream/lib/_stream_writable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Writable;\n function CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function() {\n onCorkedFinish(_this, state);\n };\n }\n var Duplex;\n Writable.WritableState = WritableState;\n var internalUtil = {\n deprecate: require_browser()\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n var ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES;\n var ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END;\n var ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n require_inherits_browser()(Writable, Stream);\n function nop() {\n }\n function WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.writableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "writableHighWaterMark", isDuplex);\n this.finalCalled = false;\n this.needDrain = false;\n this.ending = false;\n this.ended = false;\n this.finished = false;\n this.destroyed = false;\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.length = 0;\n this.writing = false;\n this.corked = 0;\n this.sync = true;\n this.bufferProcessing = false;\n this.onwrite = function(er) {\n onwrite(stream, er);\n };\n this.writecb = null;\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n this.pendingcb = 0;\n this.prefinished = false;\n this.errorEmitted = false;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.bufferedRequestCount = 0;\n this.corkedRequestsFree = new CorkedRequest(this);\n }\n WritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n };\n (function() {\n try {\n Object.defineProperty(WritableState.prototype, "buffer", {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003")\n });\n } catch (_) {\n }\n })();\n var realHasInstance;\n if (typeof Symbol === "function" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === "function") {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object))\n return true;\n if (this !== Writable)\n return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n } else {\n realHasInstance = function realHasInstance2(object) {\n return object instanceof this;\n };\n }\n function Writable(options) {\n Duplex = Duplex || require_stream_duplex();\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this))\n return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n this.writable = true;\n if (options) {\n if (typeof options.write === "function")\n this._write = options.write;\n if (typeof options.writev === "function")\n this._writev = options.writev;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n if (typeof options.final === "function")\n this._final = options.final;\n }\n Stream.call(this);\n }\n Writable.prototype.pipe = function() {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n };\n function writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n }\n function validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== "string" && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer"], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n }\n Writable.prototype.write = function(chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer13.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (isBuf)\n encoding = "buffer";\n else if (!encoding)\n encoding = state.defaultEncoding;\n if (typeof cb !== "function")\n cb = nop;\n if (state.ending)\n writeAfterEnd(this, cb);\n else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n };\n Writable.prototype.cork = function() {\n this._writableState.corked++;\n };\n Writable.prototype.uncork = function() {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest)\n clearBuffer(this, state);\n }\n };\n Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n if (typeof encoding === "string")\n encoding = encoding.toLowerCase();\n if (!(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((encoding + "").toLowerCase()) > -1))\n throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n function decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === "string") {\n chunk = Buffer13.from(chunk, encoding);\n }\n return chunk;\n }\n Object.defineProperty(Writable.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = "buffer";\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n if (!ret)\n state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk,\n encoding,\n isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n }\n function doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed)\n state.onwrite(new ERR_STREAM_DESTROYED("write"));\n else if (writev)\n stream._writev(chunk, state.onwrite);\n else\n stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n }\n function onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n process.nextTick(cb, er);\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n finishMaybe(stream, state);\n }\n }\n function onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n }\n function onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== "function")\n throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er)\n onwriteError(stream, state, sync, er, cb);\n else {\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n }\n function afterWrite(stream, state, finished, cb) {\n if (!finished)\n onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n }\n function onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit("drain");\n }\n }\n function clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf)\n allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, "", holder.finish);\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n if (state.writing) {\n break;\n }\n }\n if (entry === null)\n state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n }\n Writable.prototype._write = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_write()"));\n };\n Writable.prototype._writev = null;\n Writable.prototype.end = function(chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === "function") {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== void 0)\n this.write(chunk, encoding);\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n if (!state.ending)\n endWritable(this, state, cb);\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n }\n function callFinal(stream, state) {\n stream._final(function(err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit("prefinish");\n finishMaybe(stream, state);\n });\n }\n function prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === "function" && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit("prefinish");\n }\n }\n }\n function finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit("finish");\n if (state.autoDestroy) {\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n }\n function endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished)\n process.nextTick(cb);\n else\n stream.once("finish", cb);\n }\n state.ended = true;\n stream.writable = false;\n }\n function onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n state.corkedRequestsFree.next = corkReq;\n }\n Object.defineProperty(Writable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._writableState === void 0) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n if (!this._writableState) {\n return;\n }\n this._writableState.destroyed = value;\n }\n });\n Writable.prototype.destroy = destroyImpl.destroy;\n Writable.prototype._undestroy = destroyImpl.undestroy;\n Writable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_duplex.js\nvar require_stream_duplex = __commonJS({\n "node_modules/readable-stream/lib/_stream_duplex.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var objectKeys = Object.keys || function(obj) {\n var keys2 = [];\n for (var key2 in obj) {\n keys2.push(key2);\n }\n return keys2;\n };\n module.exports = Duplex;\n var Readable = require_stream_readable();\n var Writable = require_stream_writable();\n require_inherits_browser()(Duplex, Readable);\n {\n keys = objectKeys(Writable.prototype);\n for (v = 0; v < keys.length; v++) {\n method = keys[v];\n if (!Duplex.prototype[method])\n Duplex.prototype[method] = Writable.prototype[method];\n }\n }\n var keys;\n var method;\n var v;\n function Duplex(options) {\n if (!(this instanceof Duplex))\n return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false)\n this.readable = false;\n if (options.writable === false)\n this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once("end", onend);\n }\n }\n }\n Object.defineProperty(Duplex.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n Object.defineProperty(Duplex.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n Object.defineProperty(Duplex.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function onend() {\n if (this._writableState.ended)\n return;\n process.nextTick(onEndNT, this);\n }\n function onEndNT(self2) {\n self2.end();\n }\n Object.defineProperty(Duplex.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return;\n }\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n });\n }\n});\n\n// node_modules/safe-buffer/index.js\nvar require_safe_buffer = __commonJS({\n "node_modules/safe-buffer/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var buffer = require_buffer();\n var Buffer13 = buffer.Buffer;\n function copyProps(src, dst) {\n for (var key2 in src) {\n dst[key2] = src[key2];\n }\n }\n if (Buffer13.from && Buffer13.alloc && Buffer13.allocUnsafe && Buffer13.allocUnsafeSlow) {\n module.exports = buffer;\n } else {\n copyProps(buffer, exports);\n exports.Buffer = SafeBuffer;\n }\n function SafeBuffer(arg, encodingOrOffset, length) {\n return Buffer13(arg, encodingOrOffset, length);\n }\n SafeBuffer.prototype = Object.create(Buffer13.prototype);\n copyProps(Buffer13, SafeBuffer);\n SafeBuffer.from = function(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n throw new TypeError("Argument must not be a number");\n }\n return Buffer13(arg, encodingOrOffset, length);\n };\n SafeBuffer.alloc = function(size, fill, encoding) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n var buf2 = Buffer13(size);\n if (fill !== void 0) {\n if (typeof encoding === "string") {\n buf2.fill(fill, encoding);\n } else {\n buf2.fill(fill);\n }\n } else {\n buf2.fill(0);\n }\n return buf2;\n };\n SafeBuffer.allocUnsafe = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return Buffer13(size);\n };\n SafeBuffer.allocUnsafeSlow = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return buffer.SlowBuffer(size);\n };\n }\n});\n\n// node_modules/string_decoder/lib/string_decoder.js\nvar require_string_decoder = __commonJS({\n "node_modules/string_decoder/lib/string_decoder.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var Buffer13 = require_safe_buffer().Buffer;\n var isEncoding = Buffer13.isEncoding || function(encoding) {\n encoding = "" + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n case "raw":\n return true;\n default:\n return false;\n }\n };\n function _normalizeEncoding(enc) {\n if (!enc)\n return "utf8";\n var retried;\n while (true) {\n switch (enc) {\n case "utf8":\n case "utf-8":\n return "utf8";\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return "utf16le";\n case "latin1":\n case "binary":\n return "latin1";\n case "base64":\n case "ascii":\n case "hex":\n return enc;\n default:\n if (retried)\n return;\n enc = ("" + enc).toLowerCase();\n retried = true;\n }\n }\n }\n function normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== "string" && (Buffer13.isEncoding === isEncoding || !isEncoding(enc)))\n throw new Error("Unknown encoding: " + enc);\n return nenc || enc;\n }\n exports.StringDecoder = StringDecoder;\n function StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case "utf16le":\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case "utf8":\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case "base64":\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer13.allocUnsafe(nb);\n }\n StringDecoder.prototype.write = function(buf2) {\n if (buf2.length === 0)\n return "";\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf2);\n if (r === void 0)\n return "";\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf2.length)\n return r ? r + this.text(buf2, i) : this.text(buf2, i);\n return r || "";\n };\n StringDecoder.prototype.end = utf8End;\n StringDecoder.prototype.text = utf8Text;\n StringDecoder.prototype.fillLast = function(buf2) {\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf2.length);\n this.lastNeed -= buf2.length;\n };\n function utf8CheckByte(byte) {\n if (byte <= 127)\n return 0;\n else if (byte >> 5 === 6)\n return 2;\n else if (byte >> 4 === 14)\n return 3;\n else if (byte >> 3 === 30)\n return 4;\n return byte >> 6 === 2 ? -1 : -2;\n }\n function utf8CheckIncomplete(self2, buf2, i) {\n var j = buf2.length - 1;\n if (j < i)\n return 0;\n var nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2)\n nb = 0;\n else\n self2.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n }\n function utf8CheckExtraBytes(self2, buf2, p) {\n if ((buf2[0] & 192) !== 128) {\n self2.lastNeed = 0;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 1 && buf2.length > 1) {\n if ((buf2[1] & 192) !== 128) {\n self2.lastNeed = 1;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 2 && buf2.length > 2) {\n if ((buf2[2] & 192) !== 128) {\n self2.lastNeed = 2;\n return "\\uFFFD";\n }\n }\n }\n }\n function utf8FillLast(buf2) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf2, p);\n if (r !== void 0)\n return r;\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, p, 0, buf2.length);\n this.lastNeed -= buf2.length;\n }\n function utf8Text(buf2, i) {\n var total = utf8CheckIncomplete(this, buf2, i);\n if (!this.lastNeed)\n return buf2.toString("utf8", i);\n this.lastTotal = total;\n var end = buf2.length - (total - this.lastNeed);\n buf2.copy(this.lastChar, 0, end);\n return buf2.toString("utf8", i, end);\n }\n function utf8End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + "\\uFFFD";\n return r;\n }\n function utf16Text(buf2, i) {\n if ((buf2.length - i) % 2 === 0) {\n var r = buf2.toString("utf16le", i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 55296 && c <= 56319) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf2[buf2.length - 1];\n return buf2.toString("utf16le", i, buf2.length - 1);\n }\n function utf16End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString("utf16le", 0, end);\n }\n return r;\n }\n function base64Text(buf2, i) {\n var n = (buf2.length - i) % 3;\n if (n === 0)\n return buf2.toString("base64", i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf2[buf2.length - 1];\n } else {\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n }\n return buf2.toString("base64", i, buf2.length - n);\n }\n function base64End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + this.lastChar.toString("base64", 0, 3 - this.lastNeed);\n return r;\n }\n function simpleWrite(buf2) {\n return buf2.toString(this.encoding);\n }\n function simpleEnd(buf2) {\n return buf2 && buf2.length ? this.write(buf2) : "";\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/end-of-stream.js\nvar require_end_of_stream = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_STREAM_PREMATURE_CLOSE = require_errors_browser().codes.ERR_STREAM_PREMATURE_CLOSE;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n }\n function noop2() {\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function eos(stream, opts, callback) {\n if (typeof opts === "function")\n return eos(stream, null, opts);\n if (!opts)\n opts = {};\n callback = once(callback || noop2);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable2 = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish2() {\n if (!stream.writable)\n onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish2() {\n writable2 = false;\n writableEnded = true;\n if (!readable)\n callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend2() {\n readable = false;\n readableEnded = true;\n if (!writable2)\n callback.call(stream);\n };\n var onerror = function onerror2(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose2() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable2 && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest2() {\n stream.req.on("finish", onfinish);\n };\n if (isRequest(stream)) {\n stream.on("complete", onfinish);\n stream.on("abort", onclose);\n if (stream.req)\n onrequest();\n else\n stream.on("request", onrequest);\n } else if (writable2 && !stream._writableState) {\n stream.on("end", onlegacyfinish);\n stream.on("close", onlegacyfinish);\n }\n stream.on("end", onend);\n stream.on("finish", onfinish);\n if (opts.error !== false)\n stream.on("error", onerror);\n stream.on("close", onclose);\n return function() {\n stream.removeListener("complete", onfinish);\n stream.removeListener("abort", onclose);\n stream.removeListener("request", onrequest);\n if (stream.req)\n stream.req.removeListener("finish", onfinish);\n stream.removeListener("end", onlegacyfinish);\n stream.removeListener("close", onlegacyfinish);\n stream.removeListener("finish", onfinish);\n stream.removeListener("end", onend);\n stream.removeListener("error", onerror);\n stream.removeListener("close", onclose);\n };\n }\n module.exports = eos;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/async_iterator.js\nvar require_async_iterator = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/async_iterator.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var _Object$setPrototypeO;\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n var finished = require_end_of_stream();\n var kLastResolve = Symbol("lastResolve");\n var kLastReject = Symbol("lastReject");\n var kError = Symbol("error");\n var kEnded = Symbol("ended");\n var kLastPromise = Symbol("lastPromise");\n var kHandlePromise = Symbol("handlePromise");\n var kStream = Symbol("stream");\n function createIterResult(value, done) {\n return {\n value,\n done\n };\n }\n function readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n }\n function onReadable(iter) {\n process.nextTick(readAndResolve, iter);\n }\n function wrapForNext(lastPromise, iter) {\n return function(resolve, reject) {\n lastPromise.then(function() {\n if (iter[kEnded]) {\n resolve(createIterResult(void 0, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n }\n var AsyncIteratorPrototype = Object.getPrototypeOf(function() {\n });\n var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(void 0, true));\n }\n if (this[kStream].destroyed) {\n return new Promise(function(resolve, reject) {\n process.nextTick(function() {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(void 0, true));\n }\n });\n });\n }\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n }, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function() {\n return this;\n }), _defineProperty(_Object$setPrototypeO, "return", function _return() {\n var _this2 = this;\n return new Promise(function(resolve, reject) {\n _this2[kStream].destroy(null, function(err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(void 0, true));\n });\n });\n }), _Object$setPrototypeO), AsyncIteratorPrototype);\n var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator2(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function(err) {\n if (err && err.code !== "ERR_STREAM_PREMATURE_CLOSE") {\n var reject = iterator[kLastReject];\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(void 0, true));\n }\n iterator[kEnded] = true;\n });\n stream.on("readable", onReadable.bind(null, iterator));\n return iterator;\n };\n module.exports = createReadableStreamAsyncIterator;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/from-browser.js\nvar require_from_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/from-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = function() {\n throw new Error("Readable.from is not available in the browser");\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_readable.js\nvar require_stream_readable = __commonJS({\n "node_modules/readable-stream/lib/_stream_readable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Readable;\n var Duplex;\n Readable.ReadableState = ReadableState;\n var EE = require_events().EventEmitter;\n var EElistenerCount = function EElistenerCount2(emitter, type) {\n return emitter.listeners(type).length;\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var debugUtil = require_util();\n var debug;\n if (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog("stream");\n } else {\n debug = function debug2() {\n };\n }\n var BufferList = require_buffer_list();\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n var StringDecoder;\n var createReadableStreamAsyncIterator;\n var from;\n require_inherits_browser()(Readable, Stream);\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n var kProxyEvents = ["error", "close", "destroy", "pause", "resume"];\n function prependListener(emitter, event, fn) {\n if (typeof emitter.prependListener === "function")\n return emitter.prependListener(event, fn);\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n function ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.readableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "readableHighWaterMark", isDuplex);\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n this.sync = true;\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.destroyed = false;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.awaitDrain = 0;\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n }\n function Readable(options) {\n Duplex = Duplex || require_stream_duplex();\n if (!(this instanceof Readable))\n return new Readable(options);\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n this.readable = true;\n if (options) {\n if (typeof options.read === "function")\n this._read = options.read;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n }\n Stream.call(this);\n }\n Object.defineProperty(Readable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n if (!this._readableState) {\n return;\n }\n this._readableState.destroyed = value;\n }\n });\n Readable.prototype.destroy = destroyImpl.destroy;\n Readable.prototype._undestroy = destroyImpl.undestroy;\n Readable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n Readable.prototype.push = function(chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === "string") {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer13.from(chunk, encoding);\n encoding = "";\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n };\n Readable.prototype.unshift = function(chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n };\n function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug("readableAddChunk", chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck)\n er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== "string" && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer13.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted)\n errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());\n else\n addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0)\n addChunk(stream, state, chunk, false);\n else\n maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n }\n function addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit("data", chunk);\n } else {\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront)\n state.buffer.unshift(chunk);\n else\n state.buffer.push(chunk);\n if (state.needReadable)\n emitReadable(stream);\n }\n maybeReadMore(stream, state);\n }\n function chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== "string" && chunk !== void 0 && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer", "Uint8Array"], chunk);\n }\n return er;\n }\n Readable.prototype.isPaused = function() {\n return this._readableState.flowing === false;\n };\n Readable.prototype.setEncoding = function(enc) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n this._readableState.encoding = this._readableState.decoder.encoding;\n var p = this._readableState.buffer.head;\n var content = "";\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== "")\n this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n };\n var MAX_HWM = 1073741824;\n function computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n }\n function howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended)\n return 0;\n if (state.objectMode)\n return 1;\n if (n !== n) {\n if (state.flowing && state.length)\n return state.buffer.head.data.length;\n else\n return state.length;\n }\n if (n > state.highWaterMark)\n state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length)\n return n;\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n }\n Readable.prototype.read = function(n) {\n debug("read", n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0)\n state.emittedReadable = false;\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug("read: emitReadable", state.length, state.ended);\n if (state.length === 0 && state.ended)\n endReadable(this);\n else\n emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n if (n === 0 && state.ended) {\n if (state.length === 0)\n endReadable(this);\n return null;\n }\n var doRead = state.needReadable;\n debug("need readable", doRead);\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug("length less than watermark", doRead);\n }\n if (state.ended || state.reading) {\n doRead = false;\n debug("reading or ended", doRead);\n } else if (doRead) {\n debug("do read");\n state.reading = true;\n state.sync = true;\n if (state.length === 0)\n state.needReadable = true;\n this._read(state.highWaterMark);\n state.sync = false;\n if (!state.reading)\n n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0)\n ret = fromList(n, state);\n else\n ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n if (!state.ended)\n state.needReadable = true;\n if (nOrig !== n && state.ended)\n endReadable(this);\n }\n if (ret !== null)\n this.emit("data", ret);\n return ret;\n };\n function onEofChunk(stream, state) {\n debug("onEofChunk");\n if (state.ended)\n return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n emitReadable(stream);\n } else {\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n }\n function emitReadable(stream) {\n var state = stream._readableState;\n debug("emitReadable", state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug("emitReadable", state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n }\n function emitReadable_(stream) {\n var state = stream._readableState;\n debug("emitReadable_", state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit("readable");\n state.emittedReadable = false;\n }\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n }\n function maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n }\n function maybeReadMore_(stream, state) {\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug("maybeReadMore read 0");\n stream.read(0);\n if (len === state.length)\n break;\n }\n state.readingMore = false;\n }\n Readable.prototype._read = function(n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED("_read()"));\n };\n Readable.prototype.pipe = function(dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug("pipe count=%d opts=%j", state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted)\n process.nextTick(endFn);\n else\n src.once("end", endFn);\n dest.on("unpipe", onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug("onunpipe");\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug("onend");\n dest.end();\n }\n var ondrain = pipeOnDrain(src);\n dest.on("drain", ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug("cleanup");\n dest.removeListener("close", onclose);\n dest.removeListener("finish", onfinish);\n dest.removeListener("drain", ondrain);\n dest.removeListener("error", onerror);\n dest.removeListener("unpipe", onunpipe);\n src.removeListener("end", onend);\n src.removeListener("end", unpipe);\n src.removeListener("data", ondata);\n cleanedUp = true;\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain))\n ondrain();\n }\n src.on("data", ondata);\n function ondata(chunk) {\n debug("ondata");\n var ret = dest.write(chunk);\n debug("dest.write", ret);\n if (ret === false) {\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug("false write response, pause", state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n function onerror(er) {\n debug("onerror", er);\n unpipe();\n dest.removeListener("error", onerror);\n if (EElistenerCount(dest, "error") === 0)\n errorOrDestroy(dest, er);\n }\n prependListener(dest, "error", onerror);\n function onclose() {\n dest.removeListener("finish", onfinish);\n unpipe();\n }\n dest.once("close", onclose);\n function onfinish() {\n debug("onfinish");\n dest.removeListener("close", onclose);\n unpipe();\n }\n dest.once("finish", onfinish);\n function unpipe() {\n debug("unpipe");\n src.unpipe(dest);\n }\n dest.emit("pipe", src);\n if (!state.flowing) {\n debug("pipe resume");\n src.resume();\n }\n return dest;\n };\n function pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug("pipeOnDrain", state.awaitDrain);\n if (state.awaitDrain)\n state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, "data")) {\n state.flowing = true;\n flow(src);\n }\n };\n }\n Readable.prototype.unpipe = function(dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n if (state.pipesCount === 0)\n return this;\n if (state.pipesCount === 1) {\n if (dest && dest !== state.pipes)\n return this;\n if (!dest)\n dest = state.pipes;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest)\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n }\n if (!dest) {\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) {\n dests[i].emit("unpipe", this, {\n hasUnpiped: false\n });\n }\n return this;\n }\n var index = indexOf(state.pipes, dest);\n if (index === -1)\n return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1)\n state.pipes = state.pipes[0];\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n };\n Readable.prototype.on = function(ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === "data") {\n state.readableListening = this.listenerCount("readable") > 0;\n if (state.flowing !== false)\n this.resume();\n } else if (ev === "readable") {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug("on readable", state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n };\n Readable.prototype.addListener = Readable.prototype.on;\n Readable.prototype.removeListener = function(ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === "readable") {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n Readable.prototype.removeAllListeners = function(ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === "readable" || ev === void 0) {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n function updateReadableListening(self2) {\n var state = self2._readableState;\n state.readableListening = self2.listenerCount("readable") > 0;\n if (state.resumeScheduled && !state.paused) {\n state.flowing = true;\n } else if (self2.listenerCount("data") > 0) {\n self2.resume();\n }\n }\n function nReadingNextTick(self2) {\n debug("readable nexttick read 0");\n self2.read(0);\n }\n Readable.prototype.resume = function() {\n var state = this._readableState;\n if (!state.flowing) {\n debug("resume");\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n };\n function resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n }\n function resume_(stream, state) {\n debug("resume", state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit("resume");\n flow(stream);\n if (state.flowing && !state.reading)\n stream.read(0);\n }\n Readable.prototype.pause = function() {\n debug("call pause flowing=%j", this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug("pause");\n this._readableState.flowing = false;\n this.emit("pause");\n }\n this._readableState.paused = true;\n return this;\n };\n function flow(stream) {\n var state = stream._readableState;\n debug("flow", state.flowing);\n while (state.flowing && stream.read() !== null) {\n ;\n }\n }\n Readable.prototype.wrap = function(stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on("end", function() {\n debug("wrapped end");\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length)\n _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on("data", function(chunk) {\n debug("wrapped data");\n if (state.decoder)\n chunk = state.decoder.write(chunk);\n if (state.objectMode && (chunk === null || chunk === void 0))\n return;\n else if (!state.objectMode && (!chunk || !chunk.length))\n return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n for (var i in stream) {\n if (this[i] === void 0 && typeof stream[i] === "function") {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n this._read = function(n2) {\n debug("wrapped _read", n2);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n };\n if (typeof Symbol === "function") {\n Readable.prototype[Symbol.asyncIterator] = function() {\n if (createReadableStreamAsyncIterator === void 0) {\n createReadableStreamAsyncIterator = require_async_iterator();\n }\n return createReadableStreamAsyncIterator(this);\n };\n }\n Object.defineProperty(Readable.prototype, "readableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n });\n Object.defineProperty(Readable.prototype, "readableBuffer", {\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n });\n Object.defineProperty(Readable.prototype, "readableFlowing", {\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n });\n Readable._fromList = fromList;\n Object.defineProperty(Readable.prototype, "readableLength", {\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n });\n function fromList(n, state) {\n if (state.length === 0)\n return null;\n var ret;\n if (state.objectMode)\n ret = state.buffer.shift();\n else if (!n || n >= state.length) {\n if (state.decoder)\n ret = state.buffer.join("");\n else if (state.buffer.length === 1)\n ret = state.buffer.first();\n else\n ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n }\n function endReadable(stream) {\n var state = stream._readableState;\n debug("endReadable", state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n }\n function endReadableNT(state, stream) {\n debug("endReadableNT", state.endEmitted, state.length);\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit("end");\n if (state.autoDestroy) {\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n }\n if (typeof Symbol === "function") {\n Readable.from = function(iterable, opts) {\n if (from === void 0) {\n from = require_from_browser();\n }\n return from(Readable, iterable, opts);\n };\n }\n function indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x)\n return i;\n }\n return -1;\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_transform.js\nvar require_stream_transform = __commonJS({\n "node_modules/readable-stream/lib/_stream_transform.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Transform;\n var _require$codes = require_errors_browser().codes;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING;\n var ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n var Duplex = require_stream_duplex();\n require_inherits_browser()(Transform, Duplex);\n function afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit("error", new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n }\n function Transform(options) {\n if (!(this instanceof Transform))\n return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n this._readableState.needReadable = true;\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === "function")\n this._transform = options.transform;\n if (typeof options.flush === "function")\n this._flush = options.flush;\n }\n this.on("prefinish", prefinish);\n }\n function prefinish() {\n var _this = this;\n if (typeof this._flush === "function" && !this._readableState.destroyed) {\n this._flush(function(er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n }\n Transform.prototype.push = function(chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n };\n Transform.prototype._transform = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_transform()"));\n };\n Transform.prototype._write = function(chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark)\n this._read(rs.highWaterMark);\n }\n };\n Transform.prototype._read = function(n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n ts.needTransform = true;\n }\n };\n Transform.prototype._destroy = function(err, cb) {\n Duplex.prototype._destroy.call(this, err, function(err2) {\n cb(err2);\n });\n };\n function done(stream, er, data) {\n if (er)\n return stream.emit("error", er);\n if (data != null)\n stream.push(data);\n if (stream._writableState.length)\n throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming)\n throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_passthrough.js\nvar require_stream_passthrough = __commonJS({\n "node_modules/readable-stream/lib/_stream_passthrough.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = PassThrough;\n var Transform = require_stream_transform();\n require_inherits_browser()(PassThrough, Transform);\n function PassThrough(options) {\n if (!(this instanceof PassThrough))\n return new PassThrough(options);\n Transform.call(this, options);\n }\n PassThrough.prototype._transform = function(chunk, encoding, cb) {\n cb(null, chunk);\n };\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/pipeline.js\nvar require_pipeline = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/pipeline.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var eos;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n callback.apply(void 0, arguments);\n };\n }\n var _require$codes = require_errors_browser().codes;\n var ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n function noop2(err) {\n if (err)\n throw err;\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on("close", function() {\n closed = true;\n });\n if (eos === void 0)\n eos = require_end_of_stream();\n eos(stream, {\n readable: reading,\n writable: writing\n }, function(err) {\n if (err)\n return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function(err) {\n if (closed)\n return;\n if (destroyed)\n return;\n destroyed = true;\n if (isRequest(stream))\n return stream.abort();\n if (typeof stream.destroy === "function")\n return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED("pipe"));\n };\n }\n function call(fn) {\n fn();\n }\n function pipe(from, to) {\n return from.pipe(to);\n }\n function popCallback(streams) {\n if (!streams.length)\n return noop2;\n if (typeof streams[streams.length - 1] !== "function")\n return noop2;\n return streams.pop();\n }\n function pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0]))\n streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS("streams");\n }\n var error;\n var destroys = streams.map(function(stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function(err) {\n if (!error)\n error = err;\n if (err)\n destroys.forEach(call);\n if (reading)\n return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n }\n module.exports = pipeline;\n }\n});\n\n// node_modules/readable-stream/readable-browser.js\nvar require_readable_browser = __commonJS({\n "node_modules/readable-stream/readable-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports = module.exports = require_stream_readable();\n exports.Stream = exports;\n exports.Readable = exports;\n exports.Writable = require_stream_writable();\n exports.Duplex = require_stream_duplex();\n exports.Transform = require_stream_transform();\n exports.PassThrough = require_stream_passthrough();\n exports.finished = require_end_of_stream();\n exports.pipeline = require_pipeline();\n }\n});\n\n// node_modules/readable-web-to-node-stream/lib/index.js\nvar require_lib = __commonJS({\n "node_modules/readable-web-to-node-stream/lib/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n Object.defineProperty(exports, "__esModule", { value: true });\n exports.ReadableWebToNodeStream = void 0;\n var readable_stream_1 = require_readable_browser();\n var ReadableWebToNodeStream2 = class extends readable_stream_1.Readable {\n constructor(stream) {\n super();\n this.bytesRead = 0;\n this.released = false;\n this.reader = stream.getReader();\n }\n async _read() {\n if (this.released) {\n this.push(null);\n return;\n }\n this.pendingRead = this.reader.read();\n const data = await this.pendingRead;\n delete this.pendingRead;\n if (data.done || this.released) {\n this.push(null);\n } else {\n this.bytesRead += data.value.length;\n this.push(data.value);\n }\n }\n async waitForReadToComplete() {\n if (this.pendingRead) {\n await this.pendingRead;\n }\n }\n async close() {\n await this.syncAndRelease();\n }\n async syncAndRelease() {\n this.released = true;\n await this.waitForReadToComplete();\n await this.reader.releaseLock();\n }\n };\n exports.ReadableWebToNodeStream = ReadableWebToNodeStream2;\n }\n});\n\n// node_modules/base-x/src/index.js\nvar require_src = __commonJS({\n "node_modules/base-x/src/index.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function base(ALPHABET) {\n if (ALPHABET.length >= 255) {\n throw new TypeError("Alphabet too long");\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + " is ambiguous");\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode2(source) {\n if (source instanceof Uint8Array) {\n } else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError("Expected Uint8Array");\n }\n if (source.length === 0) {\n return "";\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i2 = 0;\n for (var it1 = size - 1; (carry !== 0 || i2 < length) && it1 !== -1; it1--, i2++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== "string") {\n throw new TypeError("Expected String");\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i2 = 0;\n for (var it3 = size - 1; (carry !== 0 || i2 < length) && it3 !== -1; it3--, i2++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n psz++;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j2 = zeroes;\n while (it4 !== size) {\n vch[j2++] = b256[it4++];\n }\n return vch;\n }\n function decode3(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error("Non-base" + BASE + " character");\n }\n return {\n encode: encode2,\n decodeUnsafe,\n decode: decode3\n };\n }\n module.exports = base;\n }\n});\n\n// node_modules/bs58/index.js\nvar require_bs58 = __commonJS({\n "node_modules/bs58/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var basex = require_src();\n var ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";\n module.exports = basex(ALPHABET);\n }\n});\n\n// node_modules/jpeg-js/lib/encoder.js\nvar require_encoder = __commonJS({\n "node_modules/jpeg-js/lib/encoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var btoa = btoa || function(buf2) {\n return Buffer2.from(buf2).toString("base64");\n };\n function JPEGEncoder(quality) {\n var self2 = this;\n var fround = Math.round;\n var ffloor = Math.floor;\n var YTable = new Array(64);\n var UVTable = new Array(64);\n var fdtbl_Y = new Array(64);\n var fdtbl_UV = new Array(64);\n var YDC_HT2;\n var UVDC_HT2;\n var YAC_HT2;\n var UVAC_HT2;\n var bitcode2 = new Array(65535);\n var category2 = new Array(65535);\n var outputfDCTQuant = new Array(64);\n var DU = new Array(64);\n var byteout = [];\n var bytenew = 0;\n var bytepos = 7;\n var YDU = new Array(64);\n var UDU = new Array(64);\n var VDU = new Array(64);\n var clt = new Array(256);\n var RGB_YUV_TABLE = new Array(2048);\n var currentQuality;\n var ZigZag = [\n 0,\n 1,\n 5,\n 6,\n 14,\n 15,\n 27,\n 28,\n 2,\n 4,\n 7,\n 13,\n 16,\n 26,\n 29,\n 42,\n 3,\n 8,\n 12,\n 17,\n 25,\n 30,\n 41,\n 43,\n 9,\n 11,\n 18,\n 24,\n 31,\n 40,\n 44,\n 53,\n 10,\n 19,\n 23,\n 32,\n 39,\n 45,\n 52,\n 54,\n 20,\n 22,\n 33,\n 38,\n 46,\n 51,\n 55,\n 60,\n 21,\n 34,\n 37,\n 47,\n 50,\n 56,\n 59,\n 61,\n 35,\n 36,\n 48,\n 49,\n 57,\n 58,\n 62,\n 63\n ];\n var std_dc_luminance_nrcodes2 = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\n var std_dc_luminance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_luminance_nrcodes2 = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\n var std_ac_luminance_values2 = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n var std_dc_chrominance_nrcodes2 = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\n var std_dc_chrominance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_chrominance_nrcodes2 = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\n var std_ac_chrominance_values2 = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n function initQuantTables(sf) {\n var YQT = [\n 16,\n 11,\n 10,\n 16,\n 24,\n 40,\n 51,\n 61,\n 12,\n 12,\n 14,\n 19,\n 26,\n 58,\n 60,\n 55,\n 14,\n 13,\n 16,\n 24,\n 40,\n 57,\n 69,\n 56,\n 14,\n 17,\n 22,\n 29,\n 51,\n 87,\n 80,\n 62,\n 18,\n 22,\n 37,\n 56,\n 68,\n 109,\n 103,\n 77,\n 24,\n 35,\n 55,\n 64,\n 81,\n 104,\n 113,\n 92,\n 49,\n 64,\n 78,\n 87,\n 103,\n 121,\n 120,\n 101,\n 72,\n 92,\n 95,\n 98,\n 112,\n 100,\n 103,\n 99\n ];\n for (var i = 0; i < 64; i++) {\n var t = ffloor((YQT[i] * sf + 50) / 100);\n if (t < 1) {\n t = 1;\n } else if (t > 255) {\n t = 255;\n }\n YTable[ZigZag[i]] = t;\n }\n var UVQT = [\n 17,\n 18,\n 24,\n 47,\n 99,\n 99,\n 99,\n 99,\n 18,\n 21,\n 26,\n 66,\n 99,\n 99,\n 99,\n 99,\n 24,\n 26,\n 56,\n 99,\n 99,\n 99,\n 99,\n 99,\n 47,\n 66,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99\n ];\n for (var j = 0; j < 64; j++) {\n var u = ffloor((UVQT[j] * sf + 50) / 100);\n if (u < 1) {\n u = 1;\n } else if (u > 255) {\n u = 255;\n }\n UVTable[ZigZag[j]] = u;\n }\n var aasf = [\n 1,\n 1.387039845,\n 1.306562965,\n 1.175875602,\n 1,\n 0.785694958,\n 0.5411961,\n 0.275899379\n ];\n var k = 0;\n for (var row = 0; row < 8; row++) {\n for (var col = 0; col < 8; col++) {\n fdtbl_Y[k] = 1 / (YTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n fdtbl_UV[k] = 1 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n k++;\n }\n }\n }\n function computeHuffmanTbl(nrcodes, std_table) {\n var codevalue = 0;\n var pos_in_table = 0;\n var HT = new Array();\n for (var k = 1; k <= 16; k++) {\n for (var j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n function initHuffmanTbl() {\n YDC_HT2 = computeHuffmanTbl(std_dc_luminance_nrcodes2, std_dc_luminance_values2);\n UVDC_HT2 = computeHuffmanTbl(std_dc_chrominance_nrcodes2, std_dc_chrominance_values2);\n YAC_HT2 = computeHuffmanTbl(std_ac_luminance_nrcodes2, std_ac_luminance_values2);\n UVAC_HT2 = computeHuffmanTbl(std_ac_chrominance_nrcodes2, std_ac_chrominance_values2);\n }\n function initCategoryNumber() {\n var nrlower = 1;\n var nrupper = 2;\n for (var cat = 1; cat <= 15; cat++) {\n for (var nr = nrlower; nr < nrupper; nr++) {\n category2[32767 + nr] = cat;\n bitcode2[32767 + nr] = [];\n bitcode2[32767 + nr][1] = cat;\n bitcode2[32767 + nr][0] = nr;\n }\n for (var nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category2[32767 + nrneg] = cat;\n bitcode2[32767 + nrneg] = [];\n bitcode2[32767 + nrneg][1] = cat;\n bitcode2[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n }\n function initRGBYUVTable() {\n for (var i = 0; i < 256; i++) {\n RGB_YUV_TABLE[i] = 19595 * i;\n RGB_YUV_TABLE[i + 256 >> 0] = 38470 * i;\n RGB_YUV_TABLE[i + 512 >> 0] = 7471 * i + 32768;\n RGB_YUV_TABLE[i + 768 >> 0] = -11059 * i;\n RGB_YUV_TABLE[i + 1024 >> 0] = -21709 * i;\n RGB_YUV_TABLE[i + 1280 >> 0] = 32768 * i + 8421375;\n RGB_YUV_TABLE[i + 1536 >> 0] = -27439 * i;\n RGB_YUV_TABLE[i + 1792 >> 0] = -5329 * i;\n }\n }\n function writeBits(bs) {\n var value = bs[0];\n var posval = bs[1] - 1;\n while (posval >= 0) {\n if (value & 1 << posval) {\n bytenew |= 1 << bytepos;\n }\n posval--;\n bytepos--;\n if (bytepos < 0) {\n if (bytenew == 255) {\n writeByte(255);\n writeByte(0);\n } else {\n writeByte(bytenew);\n }\n bytepos = 7;\n bytenew = 0;\n }\n }\n }\n function writeByte(value) {\n byteout.push(value);\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function fDCTQuant(data, fdtbl) {\n var d0, d1, d2, d3, d4, d5, d6, d7;\n var dataOff = 0;\n var i;\n var I8 = 8;\n var I64 = 64;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 1];\n d2 = data[dataOff + 2];\n d3 = data[dataOff + 3];\n d4 = data[dataOff + 4];\n d5 = data[dataOff + 5];\n d6 = data[dataOff + 6];\n d7 = data[dataOff + 7];\n var tmp0 = d0 + d7;\n var tmp7 = d0 - d7;\n var tmp1 = d1 + d6;\n var tmp6 = d1 - d6;\n var tmp2 = d2 + d5;\n var tmp5 = d2 - d5;\n var tmp3 = d3 + d4;\n var tmp4 = d3 - d4;\n var tmp10 = tmp0 + tmp3;\n var tmp13 = tmp0 - tmp3;\n var tmp11 = tmp1 + tmp2;\n var tmp12 = tmp1 - tmp2;\n data[dataOff] = tmp10 + tmp11;\n data[dataOff + 4] = tmp10 - tmp11;\n var z1 = (tmp12 + tmp13) * 0.707106781;\n data[dataOff + 2] = tmp13 + z1;\n data[dataOff + 6] = tmp13 - z1;\n tmp10 = tmp4 + tmp5;\n tmp11 = tmp5 + tmp6;\n tmp12 = tmp6 + tmp7;\n var z5 = (tmp10 - tmp12) * 0.382683433;\n var z2 = 0.5411961 * tmp10 + z5;\n var z4 = 1.306562965 * tmp12 + z5;\n var z3 = tmp11 * 0.707106781;\n var z11 = tmp7 + z3;\n var z13 = tmp7 - z3;\n data[dataOff + 5] = z13 + z2;\n data[dataOff + 3] = z13 - z2;\n data[dataOff + 1] = z11 + z4;\n data[dataOff + 7] = z11 - z4;\n dataOff += 8;\n }\n dataOff = 0;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 8];\n d2 = data[dataOff + 16];\n d3 = data[dataOff + 24];\n d4 = data[dataOff + 32];\n d5 = data[dataOff + 40];\n d6 = data[dataOff + 48];\n d7 = data[dataOff + 56];\n var tmp0p2 = d0 + d7;\n var tmp7p2 = d0 - d7;\n var tmp1p2 = d1 + d6;\n var tmp6p2 = d1 - d6;\n var tmp2p2 = d2 + d5;\n var tmp5p2 = d2 - d5;\n var tmp3p2 = d3 + d4;\n var tmp4p2 = d3 - d4;\n var tmp10p2 = tmp0p2 + tmp3p2;\n var tmp13p2 = tmp0p2 - tmp3p2;\n var tmp11p2 = tmp1p2 + tmp2p2;\n var tmp12p2 = tmp1p2 - tmp2p2;\n data[dataOff] = tmp10p2 + tmp11p2;\n data[dataOff + 32] = tmp10p2 - tmp11p2;\n var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781;\n data[dataOff + 16] = tmp13p2 + z1p2;\n data[dataOff + 48] = tmp13p2 - z1p2;\n tmp10p2 = tmp4p2 + tmp5p2;\n tmp11p2 = tmp5p2 + tmp6p2;\n tmp12p2 = tmp6p2 + tmp7p2;\n var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433;\n var z2p2 = 0.5411961 * tmp10p2 + z5p2;\n var z4p2 = 1.306562965 * tmp12p2 + z5p2;\n var z3p2 = tmp11p2 * 0.707106781;\n var z11p2 = tmp7p2 + z3p2;\n var z13p2 = tmp7p2 - z3p2;\n data[dataOff + 40] = z13p2 + z2p2;\n data[dataOff + 24] = z13p2 - z2p2;\n data[dataOff + 8] = z11p2 + z4p2;\n data[dataOff + 56] = z11p2 - z4p2;\n dataOff++;\n }\n var fDCTQuant2;\n for (i = 0; i < I64; ++i) {\n fDCTQuant2 = data[i] * fdtbl[i];\n outputfDCTQuant[i] = fDCTQuant2 > 0 ? fDCTQuant2 + 0.5 | 0 : fDCTQuant2 - 0.5 | 0;\n }\n return outputfDCTQuant;\n }\n function writeAPP0() {\n writeWord(65504);\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n }\n function writeAPP1(exifBuffer) {\n if (!exifBuffer)\n return;\n writeWord(65505);\n if (exifBuffer[0] === 69 && exifBuffer[1] === 120 && exifBuffer[2] === 105 && exifBuffer[3] === 102) {\n writeWord(exifBuffer.length + 2);\n } else {\n writeWord(exifBuffer.length + 5 + 2);\n writeByte(69);\n writeByte(120);\n writeByte(105);\n writeByte(102);\n writeByte(0);\n }\n for (var i = 0; i < exifBuffer.length; i++) {\n writeByte(exifBuffer[i]);\n }\n }\n function writeSOF0(width, height) {\n writeWord(65472);\n writeWord(17);\n writeByte(8);\n writeWord(height);\n writeWord(width);\n writeByte(3);\n writeByte(1);\n writeByte(17);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(1);\n writeByte(3);\n writeByte(17);\n writeByte(1);\n }\n function writeDQT() {\n writeWord(65499);\n writeWord(132);\n writeByte(0);\n for (var i = 0; i < 64; i++) {\n writeByte(YTable[i]);\n }\n writeByte(1);\n for (var j = 0; j < 64; j++) {\n writeByte(UVTable[j]);\n }\n }\n function writeDHT() {\n writeWord(65476);\n writeWord(418);\n writeByte(0);\n for (var i = 0; i < 16; i++) {\n writeByte(std_dc_luminance_nrcodes2[i + 1]);\n }\n for (var j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values2[j]);\n }\n writeByte(16);\n for (var k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes2[k + 1]);\n }\n for (var l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values2[l]);\n }\n writeByte(1);\n for (var m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes2[m + 1]);\n }\n for (var n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values2[n]);\n }\n writeByte(17);\n for (var o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes2[o + 1]);\n }\n for (var p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values2[p]);\n }\n }\n function writeCOM(comments) {\n if (typeof comments === "undefined" || comments.constructor !== Array)\n return;\n comments.forEach((e) => {\n if (typeof e !== "string")\n return;\n writeWord(65534);\n var l = e.length;\n writeWord(l + 2);\n var i;\n for (i = 0; i < l; i++)\n writeByte(e.charCodeAt(i));\n });\n }\n function writeSOS() {\n writeWord(65498);\n writeWord(12);\n writeByte(3);\n writeByte(1);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(3);\n writeByte(17);\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(CDU, fdtbl, DC, HTDC, HTAC) {\n var EOB = HTAC[0];\n var M16zeroes = HTAC[240];\n var pos;\n var I16 = 16;\n var I63 = 63;\n var I64 = 64;\n var DU_DCT = fDCTQuant(CDU, fdtbl);\n for (var j = 0; j < I64; ++j) {\n DU[ZigZag[j]] = DU_DCT[j];\n }\n var Diff = DU[0] - DC;\n DC = DU[0];\n if (Diff == 0) {\n writeBits(HTDC[0]);\n } else {\n pos = 32767 + Diff;\n writeBits(HTDC[category2[pos]]);\n writeBits(bitcode2[pos]);\n }\n var end0pos = 63;\n for (; end0pos > 0 && DU[end0pos] == 0; end0pos--) {\n }\n ;\n if (end0pos == 0) {\n writeBits(EOB);\n return DC;\n }\n var i = 1;\n var lng;\n while (i <= end0pos) {\n var startpos = i;\n for (; DU[i] == 0 && i <= end0pos; ++i) {\n }\n var nrzeroes = i - startpos;\n if (nrzeroes >= I16) {\n lng = nrzeroes >> 4;\n for (var nrmarker = 1; nrmarker <= lng; ++nrmarker)\n writeBits(M16zeroes);\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + DU[i];\n writeBits(HTAC[(nrzeroes << 4) + category2[pos]]);\n writeBits(bitcode2[pos]);\n i++;\n }\n if (end0pos != I63) {\n writeBits(EOB);\n }\n return DC;\n }\n function initCharLookupTable() {\n var sfcc = String.fromCharCode;\n for (var i = 0; i < 256; i++) {\n clt[i] = sfcc(i);\n }\n }\n this.encode = function(image, quality2) {\n var time_start = new Date().getTime();\n if (quality2)\n setQuality(quality2);\n byteout = new Array();\n bytenew = 0;\n bytepos = 7;\n writeWord(65496);\n writeAPP0();\n writeCOM(image.comments);\n writeAPP1(image.exifBuffer);\n writeDQT();\n writeSOF0(image.width, image.height);\n writeDHT();\n writeSOS();\n var DCY = 0;\n var DCU = 0;\n var DCV = 0;\n bytenew = 0;\n bytepos = 7;\n this.encode.displayName = "_encode_";\n var imageData = image.data;\n var width = image.width;\n var height = image.height;\n var quadWidth = width * 4;\n var tripleWidth = width * 3;\n var x, y = 0;\n var r, g, b;\n var start, p, col, row, pos;\n while (y < height) {\n x = 0;\n while (x < quadWidth) {\n start = quadWidth * y + x;\n p = start;\n col = -1;\n row = 0;\n for (pos = 0; pos < 64; pos++) {\n row = pos >> 3;\n col = (pos & 7) * 4;\n p = start + row * quadWidth + col;\n if (y + row >= height) {\n p -= quadWidth * (y + 1 + row - height);\n }\n if (x + col >= quadWidth) {\n p -= x + col - quadWidth + 4;\n }\n r = imageData[p++];\n g = imageData[p++];\n b = imageData[p++];\n YDU[pos] = (RGB_YUV_TABLE[r] + RGB_YUV_TABLE[g + 256 >> 0] + RGB_YUV_TABLE[b + 512 >> 0] >> 16) - 128;\n UDU[pos] = (RGB_YUV_TABLE[r + 768 >> 0] + RGB_YUV_TABLE[g + 1024 >> 0] + RGB_YUV_TABLE[b + 1280 >> 0] >> 16) - 128;\n VDU[pos] = (RGB_YUV_TABLE[r + 1280 >> 0] + RGB_YUV_TABLE[g + 1536 >> 0] + RGB_YUV_TABLE[b + 1792 >> 0] >> 16) - 128;\n }\n DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT2, YAC_HT2);\n DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT2, UVAC_HT2);\n DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT2, UVAC_HT2);\n x += 32;\n }\n y += 8;\n }\n if (bytepos >= 0) {\n var fillbits = [];\n fillbits[1] = bytepos + 1;\n fillbits[0] = (1 << bytepos + 1) - 1;\n writeBits(fillbits);\n }\n writeWord(65497);\n if (typeof module === "undefined")\n return new Uint8Array(byteout);\n return Buffer2.from(byteout);\n var jpegDataUri = "data:image/jpeg;base64," + btoa(byteout.join(""));\n byteout = [];\n var duration = new Date().getTime() - time_start;\n return jpegDataUri;\n };\n function setQuality(quality2) {\n if (quality2 <= 0) {\n quality2 = 1;\n }\n if (quality2 > 100) {\n quality2 = 100;\n }\n if (currentQuality == quality2)\n return;\n var sf = 0;\n if (quality2 < 50) {\n sf = Math.floor(5e3 / quality2);\n } else {\n sf = Math.floor(200 - quality2 * 2);\n }\n initQuantTables(sf);\n currentQuality = quality2;\n }\n function init3() {\n var time_start = new Date().getTime();\n if (!quality)\n quality = 50;\n initCharLookupTable();\n initHuffmanTbl();\n initCategoryNumber();\n initRGBYUVTable();\n setQuality(quality);\n var duration = new Date().getTime() - time_start;\n }\n init3();\n }\n if (typeof module !== "undefined") {\n module.exports = encode2;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].encode = encode2;\n }\n function encode2(imgData, qu) {\n if (typeof qu === "undefined")\n qu = 50;\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(imgData, qu);\n return {\n data,\n width: imgData.width,\n height: imgData.height\n };\n }\n }\n});\n\n// node_modules/jpeg-js/lib/decoder.js\nvar require_decoder = __commonJS({\n "node_modules/jpeg-js/lib/decoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var JpegImage = function jpegImage() {\n "use strict";\n var dctZigZag = new Int32Array([\n 0,\n 1,\n 8,\n 16,\n 9,\n 2,\n 3,\n 10,\n 17,\n 24,\n 32,\n 25,\n 18,\n 11,\n 4,\n 5,\n 12,\n 19,\n 26,\n 33,\n 40,\n 48,\n 41,\n 34,\n 27,\n 20,\n 13,\n 6,\n 7,\n 14,\n 21,\n 28,\n 35,\n 42,\n 49,\n 56,\n 57,\n 50,\n 43,\n 36,\n 29,\n 22,\n 15,\n 23,\n 30,\n 37,\n 44,\n 51,\n 58,\n 59,\n 52,\n 45,\n 38,\n 31,\n 39,\n 46,\n 53,\n 60,\n 61,\n 54,\n 47,\n 55,\n 62,\n 63\n ]);\n var dctCos1 = 4017;\n var dctSin1 = 799;\n var dctCos3 = 3406;\n var dctSin3 = 2276;\n var dctCos6 = 1567;\n var dctSin6 = 3784;\n var dctSqrt2 = 5793;\n var dctSqrt1d2 = 2896;\n function constructor() {\n }\n function buildHuffmanTable2(codeLengths, values) {\n var k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n var p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n }\n function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive, opts) {\n var precision = frame.precision;\n var samplesPerLine = frame.samplesPerLine;\n var scanLines = frame.scanLines;\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\n var maxH = frame.maxH, maxV = frame.maxV;\n var startOffset = offset, bitsData = 0, bitsCount = 0;\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return bitsData >> bitsCount & 1;\n }\n bitsData = data[offset++];\n if (bitsData == 255) {\n var nextByte = data[offset++];\n if (nextByte) {\n throw new Error("unexpected marker: " + (bitsData << 8 | nextByte).toString(16));\n }\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n function decodeHuffman(tree) {\n var node = tree, bit;\n while ((bit = readBit()) !== null) {\n node = node[bit];\n if (typeof node === "number")\n return node;\n if (typeof node !== "object")\n throw new Error("invalid huffman sequence");\n }\n return null;\n }\n function receive(length) {\n var n2 = 0;\n while (length > 0) {\n var bit = readBit();\n if (bit === null)\n return;\n n2 = n2 << 1 | bit;\n length--;\n }\n return n2;\n }\n function receiveAndExtend(length) {\n var n2 = receive(length);\n if (n2 >= 1 << length - 1)\n return n2;\n return n2 + (-1 << length) + 1;\n }\n function decodeBaseline(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t);\n zz[0] = component2.pred += diff;\n var k2 = 1;\n while (k2 < 64) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15)\n break;\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s);\n k2++;\n }\n }\n function decodeDCFirst(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n zz[0] = component2.pred += diff;\n }\n function decodeDCSuccessive(component2, zz) {\n zz[0] |= readBit() << successive;\n }\n var eobrun = 0;\n function decodeACFirst(component2, zz) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n var k2 = spectralStart, e = spectralEnd;\n while (k2 <= e) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s) * (1 << successive);\n k2++;\n }\n }\n var successiveACState = 0, successiveACNextValue;\n function decodeACSuccessive(component2, zz) {\n var k2 = spectralStart, e = spectralEnd, r = 0;\n while (k2 <= e) {\n var z = dctZigZag[k2];\n var direction = zz[z] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0:\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1)\n throw new Error("invalid ACn encoding");\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1:\n case 2:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n r--;\n if (r === 0)\n successiveACState = successiveACState == 2 ? 3 : 0;\n }\n break;\n case 3:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n zz[z] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n break;\n }\n k2++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0)\n successiveACState = 0;\n }\n }\n function decodeMcu(component2, decode4, mcu2, row, col) {\n var mcuRow = mcu2 / mcusPerLine | 0;\n var mcuCol = mcu2 % mcusPerLine;\n var blockRow = mcuRow * component2.v + row;\n var blockCol = mcuCol * component2.h + col;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n function decodeBlock(component2, decode4, mcu2) {\n var blockRow = mcu2 / component2.blocksPerLine | 0;\n var blockCol = mcu2 % component2.blocksPerLine;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n var componentsLength = components.length;\n var component, i, j, k, n;\n var decodeFn;\n if (progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n var mcu = 0, marker;\n var mcuExpected;\n if (componentsLength == 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n if (!resetInterval)\n resetInterval = mcuExpected;\n var h, v;\n while (mcu < mcuExpected) {\n for (i = 0; i < componentsLength; i++)\n components[i].pred = 0;\n eobrun = 0;\n if (componentsLength == 1) {\n component = components[0];\n for (n = 0; n < resetInterval; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < resetInterval; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n if (mcu === mcuExpected)\n break;\n }\n }\n if (mcu === mcuExpected) {\n do {\n if (data[offset] === 255) {\n if (data[offset + 1] !== 0) {\n break;\n }\n }\n offset += 1;\n } while (offset < data.length - 2);\n }\n bitsCount = 0;\n marker = data[offset] << 8 | data[offset + 1];\n if (marker < 65280) {\n throw new Error("marker was not found");\n }\n if (marker >= 65488 && marker <= 65495) {\n offset += 2;\n } else\n break;\n }\n return offset - startOffset;\n }\n function buildComponentData(frame, component) {\n var lines = [];\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var samplesPerLine = blocksPerLine << 3;\n var R = new Int32Array(64), r = new Uint8Array(64);\n function quantizeAndInverse(zz, dataOut, dataIn) {\n var qt = component.quantizationTable;\n var v0, v1, v2, v3, v4, v5, v6, v7, t;\n var p = dataIn;\n var i2;\n for (i2 = 0; i2 < 64; i2++)\n p[i2] = zz[i2] * qt[i2];\n for (i2 = 0; i2 < 8; ++i2) {\n var row = 8 * i2;\n if (p[1 + row] == 0 && p[2 + row] == 0 && p[3 + row] == 0 && p[4 + row] == 0 && p[5 + row] == 0 && p[6 + row] == 0 && p[7 + row] == 0) {\n t = dctSqrt2 * p[0 + row] + 512 >> 10;\n p[0 + row] = t;\n p[1 + row] = t;\n p[2 + row] = t;\n p[3 + row] = t;\n p[4 + row] = t;\n p[5 + row] = t;\n p[6 + row] = t;\n p[7 + row] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 + row] + 128 >> 8;\n v1 = dctSqrt2 * p[4 + row] + 128 >> 8;\n v2 = p[2 + row];\n v3 = p[6 + row];\n v4 = dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128 >> 8;\n v7 = dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128 >> 8;\n v5 = p[3 + row] << 4;\n v6 = p[5 + row] << 4;\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 + row] = v0 + v7;\n p[7 + row] = v0 - v7;\n p[1 + row] = v1 + v6;\n p[6 + row] = v1 - v6;\n p[2 + row] = v2 + v5;\n p[5 + row] = v2 - v5;\n p[3 + row] = v3 + v4;\n p[4 + row] = v3 - v4;\n }\n for (i2 = 0; i2 < 8; ++i2) {\n var col = i2;\n if (p[1 * 8 + col] == 0 && p[2 * 8 + col] == 0 && p[3 * 8 + col] == 0 && p[4 * 8 + col] == 0 && p[5 * 8 + col] == 0 && p[6 * 8 + col] == 0 && p[7 * 8 + col] == 0) {\n t = dctSqrt2 * dataIn[i2 + 0] + 8192 >> 14;\n p[0 * 8 + col] = t;\n p[1 * 8 + col] = t;\n p[2 * 8 + col] = t;\n p[3 * 8 + col] = t;\n p[4 * 8 + col] = t;\n p[5 * 8 + col] = t;\n p[6 * 8 + col] = t;\n p[7 * 8 + col] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 * 8 + col] + 2048 >> 12;\n v1 = dctSqrt2 * p[4 * 8 + col] + 2048 >> 12;\n v2 = p[2 * 8 + col];\n v3 = p[6 * 8 + col];\n v4 = dctSqrt1d2 * (p[1 * 8 + col] - p[7 * 8 + col]) + 2048 >> 12;\n v7 = dctSqrt1d2 * (p[1 * 8 + col] + p[7 * 8 + col]) + 2048 >> 12;\n v5 = p[3 * 8 + col];\n v6 = p[5 * 8 + col];\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 * 8 + col] = v0 + v7;\n p[7 * 8 + col] = v0 - v7;\n p[1 * 8 + col] = v1 + v6;\n p[6 * 8 + col] = v1 - v6;\n p[2 * 8 + col] = v2 + v5;\n p[5 * 8 + col] = v2 - v5;\n p[3 * 8 + col] = v3 + v4;\n p[4 * 8 + col] = v3 - v4;\n }\n for (i2 = 0; i2 < 64; ++i2) {\n var sample2 = 128 + (p[i2] + 8 >> 4);\n dataOut[i2] = sample2 < 0 ? 0 : sample2 > 255 ? 255 : sample2;\n }\n }\n requestMemoryAllocation(samplesPerLine * blocksPerColumn * 8);\n var i, j;\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n var scanLine = blockRow << 3;\n for (i = 0; i < 8; i++)\n lines.push(new Uint8Array(samplesPerLine));\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n quantizeAndInverse(component.blocks[blockRow][blockCol], r, R);\n var offset = 0, sample = blockCol << 3;\n for (j = 0; j < 8; j++) {\n var line = lines[scanLine + j];\n for (i = 0; i < 8; i++)\n line[sample + i] = r[offset++];\n }\n }\n }\n return lines;\n }\n function clampTo8bit(a) {\n return a < 0 ? 0 : a > 255 ? 255 : a;\n }\n constructor.prototype = {\n load: function load(path) {\n var xhr = new XMLHttpRequest();\n xhr.open("GET", path, true);\n xhr.responseType = "arraybuffer";\n xhr.onload = function() {\n var data = new Uint8Array(xhr.response || xhr.mozResponseArrayBuffer);\n this.parse(data);\n if (this.onload)\n this.onload();\n }.bind(this);\n xhr.send(null);\n },\n parse: function parse(data) {\n var maxResolutionInPixels = this.opts.maxResolutionInMP * 1e3 * 1e3;\n var offset = 0, length = data.length;\n function readUint16() {\n var value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n var length2 = readUint16();\n var array = data.subarray(offset, offset + length2 - 2);\n offset += array.length;\n return array;\n }\n function prepareComponents(frame2) {\n var maxH2 = 1, maxV2 = 1;\n var component2, componentId2;\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n if (maxH2 < component2.h)\n maxH2 = component2.h;\n if (maxV2 < component2.v)\n maxV2 = component2.v;\n }\n }\n var mcusPerLine = Math.ceil(frame2.samplesPerLine / 8 / maxH2);\n var mcusPerColumn = Math.ceil(frame2.scanLines / 8 / maxV2);\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n var blocksPerLine = Math.ceil(Math.ceil(frame2.samplesPerLine / 8) * component2.h / maxH2);\n var blocksPerColumn = Math.ceil(Math.ceil(frame2.scanLines / 8) * component2.v / maxV2);\n var blocksPerLineForMcu = mcusPerLine * component2.h;\n var blocksPerColumnForMcu = mcusPerColumn * component2.v;\n var blocksToAllocate = blocksPerColumnForMcu * blocksPerLineForMcu;\n var blocks = [];\n requestMemoryAllocation(blocksToAllocate * 256);\n for (var i2 = 0; i2 < blocksPerColumnForMcu; i2++) {\n var row = [];\n for (var j2 = 0; j2 < blocksPerLineForMcu; j2++)\n row.push(new Int32Array(64));\n blocks.push(row);\n }\n component2.blocksPerLine = blocksPerLine;\n component2.blocksPerColumn = blocksPerColumn;\n component2.blocks = blocks;\n }\n }\n frame2.maxH = maxH2;\n frame2.maxV = maxV2;\n frame2.mcusPerLine = mcusPerLine;\n frame2.mcusPerColumn = mcusPerColumn;\n }\n var jfif = null;\n var adobe = null;\n var pixels = null;\n var frame, resetInterval;\n var quantizationTables = [], frames = [];\n var huffmanTablesAC = [], huffmanTablesDC = [];\n var fileMarker = readUint16();\n var malformedDataOffset = -1;\n this.comments = [];\n if (fileMarker != 65496) {\n throw new Error("SOI not found");\n }\n fileMarker = readUint16();\n while (fileMarker != 65497) {\n var i, j, l;\n switch (fileMarker) {\n case 65280:\n break;\n case 65504:\n case 65505:\n case 65506:\n case 65507:\n case 65508:\n case 65509:\n case 65510:\n case 65511:\n case 65512:\n case 65513:\n case 65514:\n case 65515:\n case 65516:\n case 65517:\n case 65518:\n case 65519:\n case 65534:\n var appData = readDataBlock();\n if (fileMarker === 65534) {\n var comment = String.fromCharCode.apply(null, appData);\n this.comments.push(comment);\n }\n if (fileMarker === 65504) {\n if (appData[0] === 74 && appData[1] === 70 && appData[2] === 73 && appData[3] === 70 && appData[4] === 0) {\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: appData[8] << 8 | appData[9],\n yDensity: appData[10] << 8 | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n };\n }\n }\n if (fileMarker === 65505) {\n if (appData[0] === 69 && appData[1] === 120 && appData[2] === 105 && appData[3] === 102 && appData[4] === 0) {\n this.exifBuffer = appData.subarray(5, appData.length);\n }\n }\n if (fileMarker === 65518) {\n if (appData[0] === 65 && appData[1] === 100 && appData[2] === 111 && appData[3] === 98 && appData[4] === 101 && appData[5] === 0) {\n adobe = {\n version: appData[6],\n flags0: appData[7] << 8 | appData[8],\n flags1: appData[9] << 8 | appData[10],\n transformCode: appData[11]\n };\n }\n }\n break;\n case 65499:\n var quantizationTablesLength = readUint16();\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n requestMemoryAllocation(64 * 4);\n var tableData = new Int32Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = readUint16();\n }\n } else\n throw new Error("DQT: invalid table spec");\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n case 65472:\n case 65473:\n case 65474:\n readUint16();\n frame = {};\n frame.extended = fileMarker === 65473;\n frame.progressive = fileMarker === 65474;\n frame.precision = data[offset++];\n frame.scanLines = readUint16();\n frame.samplesPerLine = readUint16();\n frame.components = {};\n frame.componentsOrder = [];\n var pixelsInFrame = frame.scanLines * frame.samplesPerLine;\n if (pixelsInFrame > maxResolutionInPixels) {\n var exceededAmount = Math.ceil((pixelsInFrame - maxResolutionInPixels) / 1e6);\n throw new Error(`maxResolutionInMP limit exceeded by ${exceededAmount}MP`);\n }\n var componentsCount = data[offset++], componentId;\n var maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n var h = data[offset + 1] >> 4;\n var v = data[offset + 1] & 15;\n var qId = data[offset + 2];\n if (h <= 0 || v <= 0) {\n throw new Error("Invalid sampling factor, expected values above 0");\n }\n frame.componentsOrder.push(componentId);\n frame.components[componentId] = {\n h,\n v,\n quantizationIdx: qId\n };\n offset += 3;\n }\n prepareComponents(frame);\n frames.push(frame);\n break;\n case 65476:\n var huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n requestMemoryAllocation(16 + codeLengthSum);\n var huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable2(codeLengths, huffmanValues);\n }\n break;\n case 65501:\n readUint16();\n resetInterval = readUint16();\n break;\n case 65500:\n readUint16();\n readUint16();\n break;\n case 65498:\n var scanLength = readUint16();\n var selectorsCount = data[offset++];\n var components = [], component;\n for (i = 0; i < selectorsCount; i++) {\n component = frame.components[data[offset++]];\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n var processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, this.opts);\n offset += processed;\n break;\n case 65535:\n if (data[offset] !== 255) {\n offset--;\n }\n break;\n default:\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n break;\n } else if (fileMarker === 224 || fileMarker == 225) {\n if (malformedDataOffset !== -1) {\n throw new Error(`first unknown JPEG marker at offset ${malformedDataOffset.toString(16)}, second unknown JPEG marker ${fileMarker.toString(16)} at offset ${(offset - 1).toString(16)}`);\n }\n malformedDataOffset = offset - 1;\n const nextOffset = readUint16();\n if (data[offset + nextOffset - 2] === 255) {\n offset += nextOffset - 2;\n break;\n }\n }\n throw new Error("unknown JPEG marker " + fileMarker.toString(16));\n }\n fileMarker = readUint16();\n }\n if (frames.length != 1)\n throw new Error("only single frame JPEGs supported");\n for (var i = 0; i < frames.length; i++) {\n var cp = frames[i].components;\n for (var j in cp) {\n cp[j].quantizationTable = quantizationTables[cp[j].quantizationIdx];\n delete cp[j].quantizationIdx;\n }\n }\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (var i = 0; i < frame.componentsOrder.length; i++) {\n var component = frame.components[frame.componentsOrder[i]];\n this.components.push({\n lines: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV\n });\n }\n },\n getData: function getData(width, height) {\n var scaleX = this.width / width, scaleY = this.height / height;\n var component1, component2, component3, component4;\n var component1Line, component2Line, component3Line, component4Line;\n var x, y;\n var offset = 0;\n var Y, Cb, Cr, K, C, M, Ye, R, G, B;\n var colorTransform;\n var dataLength = width * height * this.components.length;\n requestMemoryAllocation(dataLength);\n var data = new Uint8Array(dataLength);\n switch (this.components.length) {\n case 1:\n component1 = this.components[0];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 2:\n component1 = this.components[0];\n component2 = this.components[1];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n Y = component2Line[0 | x * component2.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 3:\n colorTransform = true;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n R = component1Line[0 | x * component1.scaleX * scaleX];\n G = component2Line[0 | x * component2.scaleX * scaleX];\n B = component3Line[0 | x * component3.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n R = clampTo8bit(Y + 1.402 * (Cr - 128));\n G = clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n B = clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = R;\n data[offset++] = G;\n data[offset++] = B;\n }\n }\n break;\n case 4:\n if (!this.adobe)\n throw new Error("Unsupported color mode (4 components)");\n colorTransform = false;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n component4 = this.components[3];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n component4Line = component4.lines[0 | y * component4.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n C = component1Line[0 | x * component1.scaleX * scaleX];\n M = component2Line[0 | x * component2.scaleX * scaleX];\n Ye = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n C = 255 - clampTo8bit(Y + 1.402 * (Cr - 128));\n M = 255 - clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n Ye = 255 - clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = 255 - C;\n data[offset++] = 255 - M;\n data[offset++] = 255 - Ye;\n data[offset++] = 255 - K;\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n return data;\n },\n copyToImageData: function copyToImageData(imageData, formatAsRGBA) {\n var width = imageData.width, height = imageData.height;\n var imageDataArray = imageData.data;\n var data = this.getData(width, height);\n var i = 0, j = 0, x, y;\n var Y, K, C, M, R, G, B;\n switch (this.components.length) {\n case 1:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n Y = data[i++];\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 3:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n R = data[i++];\n G = data[i++];\n B = data[i++];\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 4:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n C = data[i++];\n M = data[i++];\n Y = data[i++];\n K = data[i++];\n R = 255 - clampTo8bit(C * (1 - K / 255) + K);\n G = 255 - clampTo8bit(M * (1 - K / 255) + K);\n B = 255 - clampTo8bit(Y * (1 - K / 255) + K);\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n }\n };\n var totalBytesAllocated = 0;\n var maxMemoryUsageBytes = 0;\n function requestMemoryAllocation(increaseAmount = 0) {\n var totalMemoryImpactBytes = totalBytesAllocated + increaseAmount;\n if (totalMemoryImpactBytes > maxMemoryUsageBytes) {\n var exceededAmount = Math.ceil((totalMemoryImpactBytes - maxMemoryUsageBytes) / 1024 / 1024);\n throw new Error(`maxMemoryUsageInMB limit exceeded by at least ${exceededAmount}MB`);\n }\n totalBytesAllocated = totalMemoryImpactBytes;\n }\n constructor.resetMaxMemoryUsage = function(maxMemoryUsageBytes_) {\n totalBytesAllocated = 0;\n maxMemoryUsageBytes = maxMemoryUsageBytes_;\n };\n constructor.getBytesAllocated = function() {\n return totalBytesAllocated;\n };\n constructor.requestMemoryAllocation = requestMemoryAllocation;\n return constructor;\n }();\n if (typeof module !== "undefined") {\n module.exports = decode3;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].decode = decode3;\n }\n function decode3(jpegData, userOpts = {}) {\n var defaultOpts = {\n colorTransform: void 0,\n useTArray: false,\n formatAsRGBA: true,\n tolerantDecoding: true,\n maxResolutionInMP: 100,\n maxMemoryUsageInMB: 512\n };\n var opts = { ...defaultOpts, ...userOpts };\n var arr = new Uint8Array(jpegData);\n var decoder = new JpegImage();\n decoder.opts = opts;\n JpegImage.resetMaxMemoryUsage(opts.maxMemoryUsageInMB * 1024 * 1024);\n decoder.parse(arr);\n var channels = opts.formatAsRGBA ? 4 : 3;\n var bytesNeeded = decoder.width * decoder.height * channels;\n try {\n JpegImage.requestMemoryAllocation(bytesNeeded);\n var image = {\n width: decoder.width,\n height: decoder.height,\n exifBuffer: decoder.exifBuffer,\n data: opts.useTArray ? new Uint8Array(bytesNeeded) : Buffer2.alloc(bytesNeeded)\n };\n if (decoder.comments.length > 0) {\n image["comments"] = decoder.comments;\n }\n } catch (err) {\n if (err instanceof RangeError) {\n throw new Error("Could not allocate enough memory for the image. Required: " + bytesNeeded);\n }\n if (err instanceof ReferenceError) {\n if (err.message === "Buffer is not defined") {\n throw new Error("Buffer is not globally defined in this environment. Consider setting useTArray to true");\n }\n }\n throw err;\n }\n decoder.copyToImageData(image, opts.formatAsRGBA);\n return image;\n }\n }\n});\n\n// node_modules/jpeg-js/index.js\nvar require_jpeg_js = __commonJS({\n "node_modules/jpeg-js/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var encode2 = require_encoder();\n var decode3 = require_decoder();\n module.exports = {\n encode: encode2,\n decode: decode3\n };\n }\n});\n\n// src/processor.worker.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/platform.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/requests.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar xmlhttprequest;\nif (false)\n xmlhttprequest = typeof GM_xmlhttpRequest != "undefined" ? GM_xmlhttpRequest : typeof GM != "undefined" ? GM.xmlHttpRequest : window["GM_xmlhttpRequest"];\nvar GM_fetch = (...[url, opt, lisn]) => {\n function blobTo(to, blob) {\n if (to == "arrayBuffer" && blob.arrayBuffer) {\n const ret = blob.arrayBuffer();\n if (ret)\n return ret;\n }\n return new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.onload = function(event) {\n if (!event)\n return;\n if (to == "base64")\n resolve(event.target.result);\n else\n resolve(event.target.result);\n };\n if (to == "arrayBuffer")\n fileReader.readAsArrayBuffer(blob);\n else if (to == "base64")\n fileReader.readAsDataURL(blob);\n else if (to == "text")\n fileReader.readAsText(blob, "utf-8");\n else\n reject(new Error("unknown to"));\n });\n }\n return new Promise((resolve, reject) => {\n const gmopt = {\n url: url.toString(),\n data: opt?.body,\n responseType: "blob",\n headers: opt?.headers,\n method: opt?.method || "GET",\n ...lisn ? {\n onprogress: (prog) => {\n if (prog.loaded != prog.total && prog.total != 0)\n lisn.dispatchEvent(new CustomEvent("progress", { detail: [prog.loaded, prog.total] }));\n }\n } : {},\n onload: (resp) => {\n if (resp.status / 100 >= 4) {\n reject(new Error("Server Error: " + resp.status));\n return;\n }\n const blob = resp.response;\n const ref = resp;\n ref.blob = () => Promise.resolve(blob);\n ref.arrayBuffer = () => blobTo("arrayBuffer", blob);\n ref.text = () => blobTo("text", blob);\n ref.json = async () => JSON.parse(await blobTo("text", blob));\n resolve(resp);\n },\n ontimeout: () => reject(new Error("fetch timeout")),\n onerror: (...args) => {\n reject(new Error("fetch error"));\n },\n onabort: () => reject(new Error("fetch abort"))\n };\n xmlhttprequest(gmopt);\n });\n};\n\n// src/platform.ts\nvar lqueue = {};\nvar localSet = (key2, value) => localStorage.setItem("__pee__" + key2, JSON.stringify(value));\nvar port1;\nconsole.log("worker", false);\nvar msgBuff = [];\nvar setupPort = (port) => {\n port1 = port;\n port1.onmessage = (ev) => {\n lqueue[ev.data.id](ev.data);\n };\n if (true) {\n for (const msg of msgBuff) {\n port.postMessage(msg[0], { transfer: msg[1] });\n }\n msgBuff = [];\n }\n};\nif (true) {\n port1 = {\n onmessage(ev) {\n lqueue[ev.data.id](ev.data);\n },\n postMessage(msg, tr) {\n msgBuff.push([msg, tr]);\n }\n };\n}\nvar gid = 0;\nvar sendCmd = (cmd, tr, overwrite = false, todelete = false) => {\n const prom = new Promise((_) => {\n const id = gid++;\n if (overwrite)\n cmd.id = id;\n lqueue[id] = (e) => {\n _(e.res);\n if (todelete)\n delete lqueue[id];\n };\n port1.postMessage({ id, ...cmd }, tr || []);\n });\n return prom;\n};\nvar bridge = (name, f) => {\n if (false)\n return f;\n if (false)\n return f;\n return (...args) => {\n return sendCmd({ name, args });\n };\n};\nvar Bridged = (ctor) => {\n const keys = Object.getOwnPropertyNames(ctor).filter((k) => typeof ctor[k] == "function");\n for (const k of keys)\n ctor[k] = bridge(k, ctor[k]);\n};\nif (false) {\n popupport = chrome.runtime.connect({ name: "popup" });\n popupport.onMessage.addListener((msg) => {\n if (msg.id in pendingcmds) {\n pendingcmds[msg.id](msg);\n delete pendingcmds[msg.id];\n }\n });\n}\nvar Platform = class {\n static async openInTab(src, opts) {\n if (false) {\n return GM.openInTab(src, opts);\n }\n const obj = false ? chrome : browser;\n let i;\n if (opts.insert)\n i = (await obj.tabs.getCurrent()).index + 1;\n return obj.tabs.create({ active: opts.active, url: src, index: i });\n }\n static async getValue(key2, def) {\n const isinls = "__pee__" + key2 in localStorage;\n let ret;\n if (isinls) {\n let it = localStorage.getItem("__pee__" + key2);\n if (it === "undefined")\n it = null;\n ret = { ...def, ...JSON.parse(it || "{}") };\n } else\n ret = def;\n if (true) {\n if (isinls) {\n delete localStorage["__pee__" + key2];\n await chrome.storage.local.set({\n [key2]: JSON.stringify(ret)\n });\n } else {\n const d = await chrome.storage.local.get([key2]);\n if (typeof d[key2] == "string")\n return { ...def, ...await JSON.parse("" + d[key2] || "{}") };\n }\n }\n return ret;\n }\n static setValue(name, val) {\n localSet(name, val);\n }\n};\nPlatform.cmdid = 0;\nPlatform = __decorateClass([\n Bridged\n], Platform);\nvar corsFetch = async (input, init3, lsn) => {\n const id = gid++;\n let transfer = [];\n if (init3?.body) {\n if (false) {\n [init3.body, transfer] = await braveserialize(init3.body);\n }\n }\n const prom = new Promise((_, rej) => {\n let gcontroller;\n let buffer = [];\n let finished = false;\n const rs = new ReadableStream({\n start(controller) {\n gcontroller = controller;\n buffer.forEach((b) => gcontroller?.enqueue(b));\n buffer = [];\n if (finished) {\n gcontroller.close();\n }\n }\n });\n let s;\n s = 0;\n const cmdbuff = [];\n lqueue[id] = async (e) => {\n if (e.progress) {\n if (lsn)\n lsn.dispatchEvent(new CustomEvent("progress", { detail: e.progress }));\n }\n if (e.pushData) {\n if (e.s > s) {\n let idx = 0;\n while (idx < cmdbuff.length) {\n if (cmdbuff[idx].s > e.s)\n break;\n idx++;\n }\n cmdbuff.splice(idx, 0, e);\n return;\n }\n const processCmd = (e2) => {\n if (e2.pushData.data) {\n const data = new Uint8Array(e2.pushData.data);\n if (gcontroller)\n gcontroller.enqueue(data);\n else\n buffer.push(data);\n } else {\n if (gcontroller)\n gcontroller?.close();\n else\n finished = true;\n }\n };\n await processCmd(e);\n s++;\n while (cmdbuff[0]?.s == s) {\n await processCmd(cmdbuff.shift());\n s++;\n }\n }\n if (e.setRes) {\n const arrayBuffer = async () => {\n const r = rs.getReader();\n await sendCmd({ name: "fullyRead", fid: id });\n const abs = [];\n let res;\n do {\n res = await r.read();\n if (res.done)\n break;\n abs.push(res.value);\n } while (!res.done);\n const sum = abs.reduce((a, b) => a + b.byteLength, 0);\n const ret = new Uint8Array(sum);\n abs.reduce((ptr, arr) => {\n ret.set(arr, ptr);\n return ptr + arr.byteLength;\n }, 0);\n r.releaseLock();\n return ret;\n };\n const blob = async () => new Blob([await arrayBuffer()]);\n const text = async () => new TextDecoder().decode(await arrayBuffer());\n const json = async () => JSON.parse(await text());\n if (e.ok)\n _({\n body: rs,\n ok: e.ok,\n headers: e.headers,\n redirected: e.redirected,\n type: e.type,\n url: e.url,\n status: e.status,\n bodyUsed: e.bodyUsed,\n statusText: e.statusText,\n clone() {\n return this;\n },\n arrayBuffer,\n blob,\n text,\n json,\n async formData() {\n return new FormData();\n }\n });\n else {\n rej(new Error(`${e.url} - ${e.status}`));\n }\n }\n };\n port1.postMessage({\n id,\n name: "corsFetch",\n args: [input, init3]\n }, transfer);\n });\n return prom;\n};\nasync function getHeaders(s) {\n if (false)\n return headerStringToObject(await GM_head(s));\n const res = await ifetch(s, {\n method: "HEAD"\n });\n return res.headers;\n}\nasync function ifetch(...[url, opt, lisn]) {\n if (true)\n return corsFetch(url.toString(), opt, lisn);\n return GM_fetch(url, opt, lisn);\n}\nasync function* streamRemote(url, chunkSize = 72 * 1024, fetchRestOnNonCanceled = true) {\n let size = Number.POSITIVE_INFINITY;\n let ptr = 0;\n let fetchSize = chunkSize;\n while (ptr != size) {\n let obj;\n const fres = await ifetch(url, { headers: { range: `bytes=${ptr}-${ptr + fetchSize - 1}` } });\n if (false) {\n obj = headerStringToObject(fres.responseHeaders);\n } else {\n obj = fres.headers;\n }\n if (!("content-length" in obj)) {\n console.warn("no content lenght???", url);\n break;\n }\n if ("content-range" in obj) {\n size = +obj["content-range"].split("/")[1];\n }\n const len = +obj["content-length"];\n ptr += len;\n if (fetchRestOnNonCanceled)\n fetchSize = size;\n const val = Buffer2.from(await fres.arrayBuffer());\n const e = yield val;\n if (e) {\n break;\n }\n }\n}\n\n// src/stores.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/store/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/internal/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction noop() {\n}\nfunction run(fn) {\n return fn();\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === "function";\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || (a && typeof a === "object" || typeof a === "function");\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nvar resolved_promise = Promise.resolve();\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nvar SvelteElement;\nif (typeof HTMLElement === "function") {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: "open" });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n for (const key2 in this.$$.slotted) {\n this.appendChild(this.$$.slotted[key2]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []);\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n\n// node_modules/svelte/store/index.mjs\nvar subscriber_queue = [];\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = /* @__PURE__ */ new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) {\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe2(run2, invalidate = noop) {\n const subscriber = [run2, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run2(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe: subscribe2 };\n}\n\n// src/stores.ts\nvar localLoad = async (key2, def) => {\n const ret = await Platform.getValue(key2, def);\n return ret;\n};\nvar localSet2 = (key2, value) => {\n if (true) {\n return;\n }\n if (true)\n chrome.storage.local.set({ [key2]: JSON.stringify(value) });\n else\n localStorage.setItem("__pee__" + key2, JSON.stringify(value));\n};\nvar initial_settings = {\n loop: true,\n dh: false,\n pmeth: 5,\n xpv: false,\n xpi: false,\n hyd: false,\n notcata: false,\n ak: "",\n auto_embed: 0,\n auto_tags: "",\n te: false,\n eye: false,\n ca: false,\n pre: false,\n prev: false,\n sh: false,\n ep: false,\n tm: false,\n dvc: false,\n expte: false,\n mdist: -1,\n phash: false,\n hotlink: false,\n jpeg: false,\n vercheck: false,\n cache: void 0,\n fhost: 0,\n maxe: 5,\n conc: 8,\n ho: false,\n blacklist: [],\n rsources: []\n};\nvar settings = writable();\nvar appState = writable({\n isCatalog: false,\n is4chanX: false,\n akValid: false,\n herror: "",\n client: null,\n processing: 0,\n processed: 0,\n foundPosts: []\n});\nsettings.subscribe((newVal) => {\n if (newVal)\n localSet2("settingsv2", newVal);\n});\n\n// src/pngv3.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer3 = __toESM(require_buffer(), 1);\n\n// src/png.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_crc_32 = __toESM(require_crc32(), 1);\nvar import_buffer = __toESM(require_buffer(), 1);\nvar PNGDecoder = class {\n constructor(reader, strict = true) {\n this.reader = reader;\n this.strict = strict;\n this.req = 8;\n this.ptr = 8;\n this.stopped = false;\n this.repr = import_buffer.Buffer.from([]);\n }\n async catchup() {\n while (this.repr.byteLength < this.req) {\n const chunk = await this.reader.read();\n if (chunk.done) {\n if (this.strict)\n throw new Error(`Unexpected EOF, got ${this.repr.byteLength}, required ${this.req}, ${chunk.value}`);\n this.stopped = true;\n return;\n }\n this.repr = import_buffer.Buffer.concat([this.repr, chunk.value]);\n }\n }\n async *chunks() {\n while (true) {\n this.req += 8;\n await this.catchup();\n if (this.stopped)\n break;\n const length = this.repr.readUInt32BE(this.ptr);\n const name = this.repr.slice(this.ptr + 4, this.ptr + 8).toString();\n this.ptr += 4;\n this.req += length + 4;\n await this.catchup();\n yield [\n name,\n this.repr.slice(this.ptr, this.ptr + length + 4),\n this.ptr + length > this.repr.length ? -1 : this.repr.readUInt32BE(this.ptr + length + 4),\n this.ptr\n ];\n if (this.stopped)\n break;\n this.ptr += length + 8;\n if (name == "IEND")\n break;\n }\n }\n async dtor() {\n }\n};\nvar PNGEncoder = class {\n constructor(bytes) {\n this.writer = bytes.getWriter();\n this.writer.write(import_buffer.Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]));\n }\n async insertchunk(chunk) {\n let b = import_buffer.Buffer.alloc(4);\n const buff = chunk[1];\n b.writeInt32BE(buff.length - 4, 0);\n await this.writer.write(b);\n await this.writer.write(buff);\n b = import_buffer.Buffer.alloc(4);\n b.writeInt32BE((0, import_crc_32.buf)(buff), 0);\n await this.writer.write(b);\n }\n async dtor() {\n this.writer.releaseLock();\n }\n};\n\n// src/utils.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer2 = __toESM(require_buffer(), 1);\n\n// src/assets/hasembed.png\nvar hasembed_default = __toBinary("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");\n\n// src/filehosts.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction parseForm(data) {\n const form = new FormData();\n Object.entries(data).filter(([key2, value]) => value !== null).map(([key2, value]) => form.append(key2, value));\n return form;\n}\nvar lolisafe = (domain, serving = domain) => ({\n domain,\n serving,\n async uploadFile(f) {\n const resp = await ifetch(`https://${domain}/api/upload`, {\n headers: {\n accept: "application/json"\n },\n "body": parseForm({\n reqtype: "fileupload",\n "files[]": new File([f], "f.pee")\n }),\n "method": "POST"\n });\n const res = await resp.json();\n return res.files.map((e) => e.url)[0];\n }\n});\nvar catbox = (domain, serving) => ({\n domain,\n serving,\n async uploadFile(inj) {\n const resp = await ifetch(`https://${domain}/user/api.php`, {\n method: "POST",\n body: parseForm({\n reqtype: "fileupload",\n fileToUpload: inj\n })\n });\n return resp.text();\n }\n});\nvar filehosts = [\n catbox("catbox.moe", "files.catbox.moe"),\n catbox("pomf.moe", "a.pomf.cat"),\n lolisafe("take-me-to.space"),\n lolisafe("zz.ht", "z.zz.fo")\n];\n\n// node_modules/file-type/browser.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer4 = __toESM(require_buffer(), 1);\nvar import_readable_web_to_node_stream = __toESM(require_lib(), 1);\n\n// node_modules/file-type/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer3 = __toESM(require_buffer(), 1);\n\n// node_modules/token-types/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar ieee754 = __toESM(require_ieee754(), 1);\nvar import_node_buffer = __toESM(require_buffer(), 1);\nvar AnsiStringType = class {\n constructor(len) {\n this.len = len;\n }\n static decode(buffer, offset, until) {\n let str = "";\n for (let i = offset; i < until; ++i) {\n str += AnsiStringType.codePointToString(AnsiStringType.singleByteDecoder(buffer[i]));\n }\n return str;\n }\n static inRange(a, min, max) {\n return min <= a && a <= max;\n }\n static codePointToString(cp) {\n if (cp <= 65535) {\n return String.fromCharCode(cp);\n } else {\n cp -= 65536;\n return String.fromCharCode((cp >> 10) + 55296, (cp & 1023) + 56320);\n }\n }\n static singleByteDecoder(bite) {\n if (AnsiStringType.inRange(bite, 0, 127)) {\n return bite;\n }\n const codePoint = AnsiStringType.windows1252[bite - 128];\n if (codePoint === null) {\n throw Error("invaliding encoding");\n }\n return codePoint;\n }\n get(buffer, offset = 0) {\n return AnsiStringType.decode(buffer, offset, offset + this.len);\n }\n};\nAnsiStringType.windows1252 = [\n 8364,\n 129,\n 8218,\n 402,\n 8222,\n 8230,\n 8224,\n 8225,\n 710,\n 8240,\n 352,\n 8249,\n 338,\n 141,\n 381,\n 143,\n 144,\n 8216,\n 8217,\n 8220,\n 8221,\n 8226,\n 8211,\n 8212,\n 732,\n 8482,\n 353,\n 8250,\n 339,\n 157,\n 382,\n 376,\n 160,\n 161,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 171,\n 172,\n 173,\n 174,\n 175,\n 176,\n 177,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 187,\n 188,\n 189,\n 190,\n 191,\n 192,\n 193,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 203,\n 204,\n 205,\n 206,\n 207,\n 208,\n 209,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 219,\n 220,\n 221,\n 222,\n 223,\n 224,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 235,\n 236,\n 237,\n 238,\n 239,\n 240,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250,\n 251,\n 252,\n 253,\n 254,\n 255\n];\n\n// node_modules/strtok3/lib/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/ReadStreamTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/EndOfFileStream.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/Deferred.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\nvar maxStreamReadSize = 1 * 1024 * 1024;\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\nvar import_node_buffer2 = __toESM(require_buffer(), 1);\n\n// node_modules/strtok3/lib/BufferTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/util.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/supported.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar extensions = [\n "jpg",\n "png",\n "apng",\n "gif",\n "webp",\n "flif",\n "xcf",\n "cr2",\n "cr3",\n "orf",\n "arw",\n "dng",\n "nef",\n "rw2",\n "raf",\n "tif",\n "bmp",\n "icns",\n "jxr",\n "psd",\n "indd",\n "zip",\n "tar",\n "rar",\n "gz",\n "bz2",\n "7z",\n "dmg",\n "mp4",\n "mid",\n "mkv",\n "webm",\n "mov",\n "avi",\n "mpg",\n "mp2",\n "mp3",\n "m4a",\n "oga",\n "ogg",\n "ogv",\n "opus",\n "flac",\n "wav",\n "spx",\n "amr",\n "pdf",\n "epub",\n "elf",\n "exe",\n "swf",\n "rtf",\n "wasm",\n "woff",\n "woff2",\n "eot",\n "ttf",\n "otf",\n "ico",\n "flv",\n "ps",\n "xz",\n "sqlite",\n "nes",\n "crx",\n "xpi",\n "cab",\n "deb",\n "ar",\n "rpm",\n "Z",\n "lz",\n "cfb",\n "mxf",\n "mts",\n "blend",\n "bpg",\n "docx",\n "pptx",\n "xlsx",\n "3gp",\n "3g2",\n "jp2",\n "jpm",\n "jpx",\n "mj2",\n "aif",\n "qcp",\n "odt",\n "ods",\n "odp",\n "xml",\n "mobi",\n "heic",\n "cur",\n "ktx",\n "ape",\n "wv",\n "dcm",\n "ics",\n "glb",\n "pcap",\n "dsf",\n "lnk",\n "alias",\n "voc",\n "ac3",\n "m4v",\n "m4p",\n "m4b",\n "f4v",\n "f4p",\n "f4b",\n "f4a",\n "mie",\n "asf",\n "ogm",\n "ogx",\n "mpc",\n "arrow",\n "shp",\n "aac",\n "mp1",\n "it",\n "s3m",\n "xm",\n "ai",\n "skp",\n "avif",\n "eps",\n "lzh",\n "pgp",\n "asar",\n "stl",\n "chm",\n "3mf",\n "zst",\n "jxl",\n "vcf"\n];\nvar mimeTypes = [\n "image/jpeg",\n "image/png",\n "image/gif",\n "image/webp",\n "image/flif",\n "image/x-xcf",\n "image/x-canon-cr2",\n "image/x-canon-cr3",\n "image/tiff",\n "image/bmp",\n "image/vnd.ms-photo",\n "image/vnd.adobe.photoshop",\n "application/x-indesign",\n "application/epub+zip",\n "application/x-xpinstall",\n "application/vnd.oasis.opendocument.text",\n "application/vnd.oasis.opendocument.spreadsheet",\n "application/vnd.oasis.opendocument.presentation",\n "application/vnd.openxmlformats-officedocument.wordprocessingml.document",\n "application/vnd.openxmlformats-officedocument.presentationml.presentation",\n "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",\n "application/zip",\n "application/x-tar",\n "application/x-rar-compressed",\n "application/gzip",\n "application/x-bzip2",\n "application/x-7z-compressed",\n "application/x-apple-diskimage",\n "application/x-apache-arrow",\n "video/mp4",\n "audio/midi",\n "video/x-matroska",\n "video/webm",\n "video/quicktime",\n "video/vnd.avi",\n "audio/vnd.wave",\n "audio/qcelp",\n "audio/x-ms-asf",\n "video/x-ms-asf",\n "application/vnd.ms-asf",\n "video/mpeg",\n "video/3gpp",\n "audio/mpeg",\n "audio/mp4",\n "audio/opus",\n "video/ogg",\n "audio/ogg",\n "application/ogg",\n "audio/x-flac",\n "audio/ape",\n "audio/wavpack",\n "audio/amr",\n "application/pdf",\n "application/x-elf",\n "application/x-msdownload",\n "application/x-shockwave-flash",\n "application/rtf",\n "application/wasm",\n "font/woff",\n "font/woff2",\n "application/vnd.ms-fontobject",\n "font/ttf",\n "font/otf",\n "image/x-icon",\n "video/x-flv",\n "application/postscript",\n "application/eps",\n "application/x-xz",\n "application/x-sqlite3",\n "application/x-nintendo-nes-rom",\n "application/x-google-chrome-extension",\n "application/vnd.ms-cab-compressed",\n "application/x-deb",\n "application/x-unix-archive",\n "application/x-rpm",\n "application/x-compress",\n "application/x-lzip",\n "application/x-cfb",\n "application/x-mie",\n "application/mxf",\n "video/mp2t",\n "application/x-blender",\n "image/bpg",\n "image/jp2",\n "image/jpx",\n "image/jpm",\n "image/mj2",\n "audio/aiff",\n "application/xml",\n "application/x-mobipocket-ebook",\n "image/heif",\n "image/heif-sequence",\n "image/heic",\n "image/heic-sequence",\n "image/icns",\n "image/ktx",\n "application/dicom",\n "audio/x-musepack",\n "text/calendar",\n "text/vcard",\n "model/gltf-binary",\n "application/vnd.tcpdump.pcap",\n "audio/x-dsf",\n "application/x.ms.shortcut",\n "application/x.apple.alias",\n "audio/x-voc",\n "audio/vnd.dolby.dd-raw",\n "audio/x-m4a",\n "image/apng",\n "image/x-olympus-orf",\n "image/x-sony-arw",\n "image/x-adobe-dng",\n "image/x-nikon-nef",\n "image/x-panasonic-rw2",\n "image/x-fujifilm-raf",\n "video/x-m4v",\n "video/3gpp2",\n "application/x-esri-shape",\n "audio/aac",\n "audio/x-it",\n "audio/x-s3m",\n "audio/x-xm",\n "video/MP1S",\n "video/MP2P",\n "application/vnd.sketchup.skp",\n "image/avif",\n "application/x-lzh-compressed",\n "application/pgp-encrypted",\n "application/x-asar",\n "model/stl",\n "application/vnd.ms-htmlhelp",\n "model/3mf",\n "image/jxl",\n "application/zstd"\n];\n\n// node_modules/file-type/core.js\nvar supportedExtensions = new Set(extensions);\nvar supportedMimeTypes = new Set(mimeTypes);\n\n// src/utils.ts\nvar csettings;\nsettings.subscribe((b) => {\n csettings = b;\n});\nvar threadDataCache = writable();\nvar cthreadDataCache;\nthreadDataCache.subscribe((newval) => {\n cthreadDataCache = newval;\n});\nvar decodeCoom3Payload = async (buff) => {\n if (!csettings)\n throw new Error("Settings uninit");\n const allowed_domains = filehosts.map((e) => e.serving.replaceAll(".", "\\\\."));\n const pees = buff.toString().split(" ").slice(0, csettings.maxe).filter((e) => allowed_domains.some((v) => e.match(`https://(.*\\\\.)?${v}/`)));\n return (await Promise.all(pees.map(async (pee) => {\n try {\n const m = pee.match(/(?https?):\\/\\/(?.*?)(?\\/.*)/);\n if (!m)\n return;\n const { domain, file } = m.groups;\n const headers = await getHeaders(pee);\n const res = await ifetch(pee, {\n headers: { range: "bytes=0-32767", "user-agent": "" },\n mode: "cors",\n referrerPolicy: "no-referrer"\n });\n const size = +headers["content-length"] || 0;\n const header = import_buffer2.Buffer.from(await res.arrayBuffer());\n let hptr = 0;\n if (header.slice(0, 4).toString() == "PEE\\0")\n hptr += 4;\n else\n return;\n const flags = header[hptr];\n const hasFn = !!(flags & 1);\n const hasTags = !!(flags & 2);\n const hasThumbnail = !!(flags & 4);\n let [ptr, ptr2] = [hptr + 1, hptr + 1];\n let fn = "embedded";\n let tags = [];\n let thumb = import_buffer2.Buffer.from(hasembed_default);\n if (hasFn) {\n while (header[ptr2] != 0)\n ptr2++;\n fn = header.slice(ptr, ptr2).toString();\n ptr = ++ptr2;\n }\n if (hasTags) {\n while (header[ptr2] != 0)\n ptr2++;\n tags = header.slice(ptr, ptr2).toString().split(/\\s+/);\n }\n let thumbsize = 0;\n if (hasThumbnail) {\n thumbsize = header.readInt32LE(ptr);\n ptr += 4;\n if (header.byteLength >= ptr + thumbsize)\n thumb = header.slice(ptr, ptr + thumbsize);\n else\n thumb = import_buffer2.Buffer.from(await (await ifetch(pee, { headers: { "user-agent": "", range: `bytes=${ptr}-${ptr + thumbsize}` } })).arrayBuffer());\n ptr += thumbsize;\n }\n const unzip = { url: pee, headers: { "user-agent": "", range: `bytes=${ptr}-${size - 1}` } };\n let data;\n data = unzip;\n if (size < 3072) {\n thumb = data = import_buffer2.Buffer.from(await (await ifetch(unzip.url, { headers: unzip.headers })).arrayBuffer());\n }\n return {\n filename: fn,\n data,\n thumbnail: thumb\n };\n } catch (e) {\n console.warn(e);\n }\n }))).filter((e) => e).map((e) => e);\n};\n\n// src/pngv3.ts\nvar bs58 = __toESM(require_bs58(), 1);\n\n// src/bitstream.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar revbyte = (n, len = 8) => {\n let acc = 0;\n let n2 = n;\n let len2 = len;\n while (len2) {\n acc = acc * 2 + (n2 & 1);\n n2 >>= 1;\n len2--;\n }\n return acc;\n};\nvar BitstreamReader = class {\n constructor() {\n this.buffers = [];\n this.bufferedLength = 0;\n this._offsetIntoBuffer = 0;\n this._bufferIndex = 0;\n this._offset = 0;\n this.skippedLength = 0;\n }\n get bufferIndex() {\n return this._bufferIndex;\n }\n get offset() {\n return this._offset;\n }\n get available() {\n return this.bufferedLength - this.skippedLength;\n }\n getBit(offset) {\n const byte = this.buffers[0][offset >> 3];\n return +!!(byte & 1 << (offset & 7));\n }\n readSync(length) {\n let value = 0;\n if (this._offset >> 3 > this.buffers[0].byteLength) {\n throw "Out of data";\n }\n for (let i = length - 1; i >= 0; --i) {\n value = value * 2 + this.getBit(this._offset + i);\n }\n this._offset += length;\n this.bufferedLength -= length;\n return value;\n }\n addBuffer(buffer) {\n this.buffers.push(buffer);\n this.bufferedLength += buffer.length * 8;\n }\n};\nvar BitstreamWriter = class {\n constructor(stream, bufferSize = 1) {\n this.stream = stream;\n this.pendingBits = 0;\n this.bufferoffset = 0;\n this._offset = 0;\n bufferSize = 1;\n this.buffer = new Uint8Array(bufferSize);\n }\n get offset() {\n return this._offset;\n }\n get byteOffset() {\n return this.pendingBits;\n }\n end() {\n this.flush();\n }\n flush() {\n this.stream.write(new Uint8Array(this.buffer));\n this.bufferoffset = 0;\n this.buffer.fill(0);\n }\n setBit(b) {\n let byte = this.buffer[0];\n byte |= b << (this._offset & 7);\n this.buffer[0] = byte;\n this._offset += 1;\n if (++this.bufferoffset == this.buffer.length * 8) {\n this.flush();\n }\n }\n write(length, value) {\n while (length--) {\n this.setBit(value & 1);\n value >>= 1;\n }\n }\n};\n\n// src/dh-deflate.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar TINF_OK = 0;\nvar Tree = class {\n constructor() {\n this.table = new Uint16Array(16);\n this.trans = new Uint16Array(288);\n }\n};\nvar getPathTo = (tree, value) => {\n if (tree[0] === value)\n return "0";\n if (tree[1] === value)\n return "1";\n let p;\n if (typeof tree[0] != "number")\n p = getPathTo(tree[0], value);\n let b = "0";\n if (!p) {\n if (tree[1] && typeof tree[1] != "number")\n p = getPathTo(tree[1], value);\n b = "1";\n }\n if (p)\n return b + p;\n};\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n let p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n}\nvar Data = class {\n constructor(source, dests, to_hide, hidden) {\n this.source = source;\n this.dests = dests;\n this.to_hide = to_hide;\n this.hidden = hidden;\n this.pathMap = /* @__PURE__ */ new Map();\n this.dest = [];\n this.ltree = new Tree();\n this.dtree = new Tree();\n }\n computeReverse() {\n this.rltree = buildHuffmanTable(this.ltree.table, this.ltree.trans)[0];\n this.rdtree = buildHuffmanTable(this.dtree.table, this.dtree.trans)[0];\n this.adists = new Set(this.rdtree.flat(16));\n }\n};\nvar sltree = new Tree();\nvar sdtree = new Tree();\nvar rltree;\nvar rdtree;\nvar sadist;\nvar length_bits = new Uint8Array(30);\nvar length_base = new Uint16Array(30);\nvar dist_bits = new Uint8Array(30);\nvar dist_base = new Uint16Array(30);\nvar clcidx = new Uint8Array([\n 16,\n 17,\n 18,\n 0,\n 8,\n 7,\n 9,\n 6,\n 10,\n 5,\n 11,\n 4,\n 12,\n 3,\n 13,\n 2,\n 14,\n 1,\n 15\n]);\nvar code_tree = new Tree();\nvar lengths = new Uint8Array(288 + 32);\nfunction tinf_build_bits_base(bits, base, delta, first) {\n let i, sum;\n for (i = 0; i < delta; ++i)\n bits[i] = 0;\n for (i = 0; i < 30 - delta; ++i)\n bits[i + delta] = i / delta | 0;\n for (sum = first, i = 0; i < 30; ++i) {\n base[i] = sum;\n sum += 1 << bits[i];\n }\n}\nfunction tinf_build_fixed_trees(lt, dt) {\n let i;\n for (i = 0; i < 7; ++i)\n lt.table[i] = 0;\n lt.table[7] = 24;\n lt.table[8] = 152;\n lt.table[9] = 112;\n for (i = 0; i < 24; ++i)\n lt.trans[i] = 256 + i;\n for (i = 0; i < 144; ++i)\n lt.trans[24 + i] = i;\n for (i = 0; i < 8; ++i)\n lt.trans[24 + 144 + i] = 280 + i;\n for (i = 0; i < 112; ++i)\n lt.trans[24 + 144 + 8 + i] = 144 + i;\n for (i = 0; i < 5; ++i)\n dt.table[i] = 0;\n dt.table[5] = 32;\n for (i = 0; i < 32; ++i)\n dt.trans[i] = i;\n}\nvar offs = new Uint16Array(16);\nfunction tinf_build_tree(t, lengths2, off, num) {\n let i, sum;\n for (i = 0; i < 16; ++i)\n t.table[i] = 0;\n for (i = 0; i < num; ++i)\n t.table[lengths2[off + i]]++;\n t.table[0] = 0;\n for (sum = 0, i = 0; i < 16; ++i) {\n offs[i] = sum;\n sum += t.table[i];\n }\n for (i = 0; i < num; ++i) {\n if (lengths2[off + i])\n t.trans[offs[lengths2[off + i]]++] = i;\n }\n}\nfunction tinf_getbit(d) {\n const v = d.source.readSync(1);\n return v;\n}\nvar loff = 0;\nvar loffs = [];\nfunction tinf_read_bits(d, num, base) {\n if (!num)\n return base;\n const v = d.source.readSync(num) + base;\n loff = v;\n loffs.push(v);\n if (loffs.length > 4) {\n loffs.shift();\n }\n return v;\n}\nfunction tinf_decode_symbol(d, t, copy = true, ext = {}) {\n let sum = 0, cur = 0, len = 0;\n let s = 0;\n do {\n const b = d.source.readSync(1);\n copy && d.hidden?.write(1, b);\n s = s << 1 | b;\n cur = 2 * cur + b;\n ++len;\n sum += t.table[len];\n cur -= t.table[len];\n } while (cur >= 0);\n ext.length = len;\n ext.sym = s;\n return t.trans[sum + cur];\n}\nfunction tinf_decode_trees(d, lt, dt, copy = true) {\n let i, num, length;\n const hlit = tinf_read_bits(d, 5, 257);\n copy && d.hidden?.write(5, hlit - 257);\n const hdist = tinf_read_bits(d, 5, 1);\n copy && d.hidden?.write(5, hdist - 1);\n const hclen = tinf_read_bits(d, 4, 4);\n copy && d.hidden?.write(4, hclen - 4);\n for (i = 0; i < 19; ++i)\n lengths[i] = 0;\n for (i = 0; i < hclen; ++i) {\n const clen = tinf_read_bits(d, 3, 0);\n copy && d.hidden?.write(3, clen);\n lengths[clcidx[i]] = clen;\n }\n tinf_build_tree(code_tree, lengths, 0, 19);\n for (num = 0; num < hlit + hdist; ) {\n const sym = tinf_decode_symbol(d, code_tree, copy);\n let prev;\n switch (sym) {\n case 16:\n prev = lengths[num - 1];\n length = tinf_read_bits(d, 2, 3);\n copy && d.hidden?.write(2, length - 3);\n for (; length; --length) {\n lengths[num++] = prev;\n }\n break;\n case 17:\n length = tinf_read_bits(d, 3, 3);\n copy && d.hidden?.write(3, length - 3);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n case 18:\n length = tinf_read_bits(d, 7, 11);\n copy && d.hidden?.write(7, length - 11);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n default:\n lengths[num++] = sym;\n break;\n }\n }\n tinf_build_tree(lt, lengths, 0, hlit);\n tinf_build_tree(dt, lengths, hlit, hdist);\n}\nvar get_symbol = (value, bits_table, base_table) => {\n let i = 0;\n for (i = 0; i < base_table.length; ++i) {\n if (base_table[i] > value) {\n i--;\n return [i, bits_table[i], value - base_table[i]];\n }\n }\n i--;\n return [i, bits_table[i], value - base_table[i]];\n};\nvar encode_symbol = (sym, tree, pathMap) => {\n const code = getPathTo(tree, sym);\n const v = {\n length: code?.length,\n val: parseInt(code, 2)\n };\n return v;\n};\nvar capacity = 0;\nfunction tinf_inflate_block_data(d, lt, dt) {\n while (1) {\n let sym = tinf_decode_symbol(d, lt);\n if (sym === 256) {\n return TINF_OK;\n }\n if (sym < 256) {\n d.dest.push(sym);\n } else {\n sym -= 257;\n const length = tinf_read_bits(d, length_bits[sym], length_base[sym]);\n if (length_bits[sym])\n d.hidden?.write(length_bits[sym], length - length_base[sym]);\n const ext = { length: 0, sym: 0 };\n const dist = tinf_decode_symbol(d, dt, false, ext);\n let backoffset = tinf_read_bits(d, dist_bits[dist], dist_base[dist]);\n const offs2 = d.dest.length - backoffset;\n let match;\n const skip = !d.to_hide || d.to_hide && d.to_hide instanceof BitstreamReader && d.to_hide.available == 0;\n if (!skip && (match = Buffer2.from(d.dest.slice(offs2, offs2 + length))).length == length) {\n let begin = d.dest.length - 32768;\n if (begin < 0)\n begin = 0;\n let matches = [];\n let o = 0;\n const slic = Buffer2.from(d.dest.slice(begin + o, d.dest.length));\n while (begin + o < d.dest.length) {\n const r = slic.slice(o, d.dest.length).indexOf(match);\n if (r >= 0) {\n matches.push(r + begin + o);\n o += r;\n } else {\n break;\n }\n o++;\n }\n if (matches.length > 1) {\n matches = matches.map((e) => -(e - d.dest.length)).filter((e) => {\n const [dsym2] = get_symbol(e, dist_bits, dist_base);\n return d.adists.has(dsym2);\n });\n matches.reverse();\n const v = Math.floor(Math.log2(matches.length));\n capacity += v;\n if (d.to_hide instanceof BitstreamReader) {\n if (d.to_hide.available) {\n const s = d.to_hide.readSync(Math.min(d.to_hide.available, v));\n backoffset = matches[s];\n }\n } else {\n const idx = matches.indexOf(backoffset);\n d.to_hide.write(v, idx);\n }\n }\n }\n const [dsym, dlen, doff] = get_symbol(backoffset, dist_bits, dist_base);\n const encdist = encode_symbol(dsym, d.rdtree, d.pathMap);\n d.hidden?.write(encdist.length, revbyte(encdist.val, encdist.length));\n d.hidden?.write(dlen, doff);\n for (let i = offs2; i < offs2 + length; ++i) {\n d.dest.push(d.dest[i]);\n }\n }\n }\n}\nfunction tinf_inflate_uncompressed_block(d) {\n if (d.source.offset & 7)\n d.source.readSync(8 - d.source.offset & 7);\n if (d.hidden && d.hidden.offset & 7)\n d.hidden?.write(8 - d.hidden.offset & 7, 0);\n const length = d.source.readSync(16);\n d.hidden?.write(16, length);\n const invlength = d.source.readSync(16);\n d.hidden?.write(16, invlength);\n if (length !== (~invlength & 65535)) {\n return -4;\n }\n for (let i = length; i; --i) {\n const v = d.source.readSync(8);\n d.dest.push(v);\n d.hidden?.write(8, v);\n }\n return TINF_OK;\n}\nfunction tinf_uncompress(source, decompressed, to_hide, hidden, opt = 0) {\n const decomp = decompressed ? new BitstreamWriter({ write: decompressed }) : null;\n const hid = hidden && new BitstreamWriter({ write: hidden }, 4);\n const d = new Data(source, decomp, to_hide, hid);\n let res;\n let bfinal, btype;\n do {\n bfinal = tinf_getbit(d);\n d.hidden?.write(1, bfinal);\n btype = tinf_read_bits(d, 2, 0);\n d.hidden?.write(2, btype);\n switch (btype) {\n case 0:\n res = tinf_inflate_uncompressed_block(d);\n break;\n case 1:\n d.rdtree = rdtree;\n d.rltree = rltree;\n d.adists = sadist;\n res = tinf_inflate_block_data(d, sltree, sdtree);\n break;\n case 2:\n tinf_decode_trees(d, d.ltree, d.dtree);\n d.computeReverse();\n res = tinf_inflate_block_data(d, d.ltree, d.dtree);\n break;\n default:\n res = -2;\n }\n if (res !== TINF_OK)\n throw new Error("Data error " + res);\n } while (!bfinal);\n decomp?.end();\n hid?.end();\n}\ntinf_build_fixed_trees(sltree, sdtree);\ntinf_build_bits_base(length_bits, length_base, 4, 3);\ntinf_build_bits_base(dist_bits, dist_base, 2, 1);\nrltree = buildHuffmanTable(sltree.table, sltree.trans)[0];\nrdtree = buildHuffmanTable(sdtree.table, sdtree.trans)[0];\nsadist = new Set(rdtree.flat(16));\nlength_bits[28] = 0;\nlength_base[28] = 258;\n\n// src/pngv3.ts\nvar csettings2;\nsettings.subscribe((b) => {\n csettings2 = b;\n});\nvar CUM3 = import_buffer3.Buffer.from("doo\\0m");\nvar CUM4 = import_buffer3.Buffer.from("voo\\0m");\nvar CUM5 = import_buffer3.Buffer.from("boo\\0");\nvar CUM6 = import_buffer3.Buffer.from("Creation Time\\0");\nvar CUM7 = import_buffer3.Buffer.from("Software\\0");\nvar BufferReadStream = (b) => {\n const ret = new ReadableStream({\n pull(cont) {\n cont.enqueue(b);\n cont.close();\n }\n });\n return ret;\n};\nvar password = import_buffer3.Buffer.from("NOA");\nvar xor = (a, p) => {\n let n = 0;\n for (let i = 0; i < a.byteLength; ++i) {\n a[i] ^= p[n];\n n++;\n n %= p.byteLength;\n }\n};\nvar prefs = {\n "files.catbox.moe": "c",\n "a.pomf.cat": "p",\n "take-me-to.space": "t",\n "z.zz.fo": "z"\n};\nvar rprefs = {\n "c": "files.catbox.moe",\n "p": "a.pomf.cat",\n "t": "take-me-to.space",\n "z": "z.zz.fo"\n};\nvar extractFromRawDeflate = (b) => {\n const src = new BitstreamReader();\n src.addBuffer(b);\n const chnks = [];\n const hidden = new BitstreamWriter({\n write(chunk) {\n for (const i of chunk) {\n if (i >= 32 && i <= 128)\n chnks.push(i);\n else\n throw "Finish";\n }\n }\n });\n try {\n tinf_uncompress(src, void 0, hidden, void 0);\n } catch (e) {\n if (e == "Finish")\n return import_buffer3.Buffer.from(chnks);\n }\n return false;\n};\nvar extract = async (png, doextract = true) => {\n const reader = BufferReadStream(png).getReader();\n const sneed = new PNGDecoder(reader, false);\n const ret = [];\n let w;\n if (!csettings2)\n throw new Error("Settings uninit");\n try {\n let complete = false;\n const idats = [];\n for await (const [name, chunk, crc, offset] of sneed.chunks()) {\n let buff;\n switch (name) {\n case "tEXt":\n buff = chunk;\n if (buff.slice(4, 4 + CUM3.length).equals(CUM3)) {\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(buff.slice(4 + CUM3.length));\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM4.length).equals(CUM4)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM4.length);\n xor(passed, password);\n const k = await decodeCoom3Payload(passed);\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM5.length).equals(CUM5)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM5.length);\n const decoded = import_buffer3.Buffer.from(passed.toString(), "base64").toString().split(" ").map((e) => {\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n }\n if (w = [CUM6, CUM7].find((e) => buff.slice(4, 4 + e.length).equals(e))) {\n const passed = buff.slice(4 + w.length);\n if (!passed.toString().match(/^[0-9a-zA-Z+/=]+$/g))\n continue;\n const decoders = [\n (b) => import_buffer3.Buffer.from(b.toString(), "base64").toString(),\n (b) => import_buffer3.Buffer.from(bs58.decode(passed.toString())).toString()\n ];\n for (const d of decoders) {\n try {\n const decoded = d(passed).split(" ").map((e) => {\n if (!(e[0] in rprefs))\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n } catch (e) {\n }\n }\n }\n break;\n case "IDAT":\n if (ret.length)\n return ret;\n buff = chunk;\n idats.push(buff.slice(4));\n break;\n case "IEND":\n complete = true;\n default:\n break;\n }\n }\n if (idats.length) {\n let decoded;\n if ((decoded = extractFromRawDeflate(import_buffer3.Buffer.concat(idats).slice(2))) === false)\n return false;\n const dec = decoded.toString().split(" ").map((e) => {\n if (!(e[0] in rprefs) || e.length < 5)\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (doextract)\n return decodeCoom3Payload(import_buffer3.Buffer.from(dec));\n return true;\n }\n } catch (e) {\n if (e != "Uhh")\n console.error(e);\n } finally {\n reader.releaseLock();\n }\n};\nvar buildChunk = (tag, data) => {\n const ret = import_buffer3.Buffer.alloc(data.byteLength + 4);\n ret.write(tag.slice(0, 4), 0);\n data.copy(ret, 4);\n return ret;\n};\nvar BufferWriteStream = () => {\n let b = import_buffer3.Buffer.from([]);\n const ret = new WritableStream({\n write(chunk) {\n b = import_buffer3.Buffer.concat([b, chunk]);\n console.log("finished appending");\n }\n });\n return [ret, () => b];\n};\nvar embedInRawDeflate = (b, h) => {\n const src = new BitstreamReader();\n const hid = new BitstreamReader();\n hid.addBuffer(h);\n src.addBuffer(b);\n const chnks = [];\n tinf_uncompress(src, void 0, hid, (c) => chnks.push(c));\n return import_buffer3.Buffer.concat(chnks);\n};\nvar inject_data = async (container, injb) => {\n injb = import_buffer3.Buffer.concat([injb, import_buffer3.Buffer.from([0])]);\n if (!csettings2)\n throw new Error("Settings uninit");\n if (csettings2.pmeth < 5) {\n let magic = false;\n const [writestream2, extract6] = BufferWriteStream();\n const encoder = new PNGEncoder(writestream2);\n const decoder = new PNGDecoder(container.stream().getReader());\n for await (const [name, chunk, crc, offset] of decoder.chunks()) {\n if (magic && name != "IDAT")\n break;\n if (!magic && name == "IDAT") {\n const passed = import_buffer3.Buffer.from(injb);\n switch (csettings2.pmeth) {\n case 0:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM3, passed])), 0, 0]);\n break;\n case 1:\n xor(passed, password);\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM4, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 2:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM5, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 3:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM6, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 4:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM7, import_buffer3.Buffer.from(bs58.encode(passed))])), 0, 0]);\n break;\n }\n magic = true;\n }\n await encoder.insertchunk([name, chunk, crc, offset]);\n }\n await encoder.insertchunk([\n "IEND",\n buildChunk("IEND", import_buffer3.Buffer.from([])),\n 0,\n 0\n ]);\n return extract6();\n }\n let pdec = new PNGDecoder(container.stream().getReader());\n const concat = [];\n for await (const chk of pdec.chunks())\n if (chk[0] == "IDAT")\n concat.push(chk[1].slice(4));\n const comp = import_buffer3.Buffer.concat(concat);\n const head = comp.slice(0, 2);\n const chksum = comp.slice(-4);\n const idatblk = embedInRawDeflate(comp.slice(2, -4), injb);\n const [writestream, extract5] = BufferWriteStream();\n const penc = new PNGEncoder(writestream);\n pdec = new PNGDecoder(container.stream().getReader());\n let ins = false;\n for await (const chk of pdec.chunks()) {\n if (chk[0] != "IDAT") {\n await penc.insertchunk(chk);\n } else {\n if (!ins) {\n await penc.insertchunk(["IDAT", import_buffer3.Buffer.concat([import_buffer3.Buffer.from("IDAT"), head, idatblk, chksum]), 0, 0]);\n ins = true;\n }\n }\n }\n await penc.dtor();\n console.log("Finished writing");\n return extract5();\n};\nvar inject = async (container, links) => {\n links = links.map((link) => {\n for (const h of filehosts) {\n if (link.includes(h.serving)) {\n const end = link.split("/").slice(-1)[0];\n return `${prefs[h.serving]}${end}`;\n }\n }\n return "";\n });\n const injb = import_buffer3.Buffer.from(links.join(" "));\n return inject_data(container, injb);\n};\nvar has_embed = async (png) => {\n const r = await extract(png, false);\n return !!r;\n};\nvar pngv3_default = {\n extract,\n has_embed,\n inject,\n match: (fn) => !!fn.match(/\\.png$/)\n};\n\n// src/jpg.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer4 = __toESM(require_buffer(), 1);\n\n// src/f5stego.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction* f5get() {\n let extrBit = 0;\n let k = 0;\n for (let i = 0; i < 4; ++i) {\n const b2 = yield;\n k |= b2 << i;\n }\n k = (k & 15) + 1;\n let toread = 8;\n let len = 0;\n while (toread--) {\n const b2 = yield;\n len = len * 2 + b2;\n }\n const b = yield;\n toread += 8;\n if (b)\n toread += 7;\n else\n len *= 2;\n while (toread--) {\n const b2 = yield;\n len = len * 2 + b2;\n }\n const rlen = revbyte(len, b ? 23 : 16);\n len = rlen;\n if (len > 256)\n throw new Error("Too big for Smash");\n len *= 8;\n const chunks = [];\n const bw = new BitstreamWriter({\n write(chunk) {\n chunks.push(chunk);\n }\n });\n while (len) {\n extrBit = yield;\n bw.write(1, extrBit);\n len--;\n }\n bw.end();\n return Buffer2.concat(chunks).slice(0, rlen);\n}\nvar bitcode = new Array(65535);\nvar category = new Array(65535);\nvar std_dc_luminance_nrcodes = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\nvar std_dc_luminance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_luminance_nrcodes = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\nvar std_ac_luminance_values = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nvar std_dc_chrominance_nrcodes = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\nvar std_dc_chrominance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_chrominance_nrcodes = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\nvar std_ac_chrominance_values = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nfunction _initCategoryNumber() {\n let nrlower = 1;\n let nrupper = 2;\n for (let cat = 1; cat <= 15; cat++) {\n for (let nr = nrlower; nr < nrupper; nr++) {\n category[32767 + nr] = cat;\n bitcode[32767 + nr] = [];\n bitcode[32767 + nr][1] = cat;\n bitcode[32767 + nr][0] = nr;\n }\n for (let nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category[32767 + nrneg] = cat;\n bitcode[32767 + nrneg] = [];\n bitcode[32767 + nrneg][1] = cat;\n bitcode[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n}\n_initCategoryNumber();\nfunction _computeHuffmanTbl(nrcodes, std_table) {\n let codevalue = 0;\n let pos_in_table = 0;\n const HT = [];\n for (let k = 1; k <= 16; k++) {\n for (let j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n}\nvar YDC_HT = _computeHuffmanTbl(std_dc_luminance_nrcodes, std_dc_luminance_values);\nvar UVDC_HT = _computeHuffmanTbl(std_dc_chrominance_nrcodes, std_dc_chrominance_values);\nvar YAC_HT = _computeHuffmanTbl(std_ac_luminance_nrcodes, std_ac_luminance_values);\nvar UVAC_HT = _computeHuffmanTbl(std_ac_chrominance_nrcodes, std_ac_chrominance_values);\nvar __raw, _jfif, _APPn, _qts, _frame, _tail, __f5write, _f5write_fn;\nvar f5stego = class {\n constructor(key2, maxPixels = 4096 * 4096) {\n this.maxPixels = maxPixels;\n __privateAdd(this, __f5write);\n __privateAdd(this, __raw, void 0);\n __privateAdd(this, _jfif, void 0);\n __privateAdd(this, _APPn, void 0);\n __privateAdd(this, _qts, void 0);\n __privateAdd(this, _frame, null);\n __privateAdd(this, _tail, null);\n }\n embed(image, data, k) {\n this.parse(image);\n this.f5put(data, k);\n return this.pack();\n }\n extract(image) {\n try {\n this.gengen = f5get();\n this.gengen.next();\n this.parse(image, true);\n return this.f5get();\n } catch (e) {\n if (e instanceof Buffer2)\n return e;\n throw e;\n }\n }\n f5put(data, k) {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let t, i, comp = __privateGet(this, _frame).components[0];\n if (data.length > 8388607)\n throw "Data too big. Max 8388607 bytes allowed.";\n if (data.length < 32768) {\n t = new Uint8Array(2 + data.length);\n t[0] = data.length & 255;\n t[1] = data.length >>> 8;\n t.set(data, 2);\n } else {\n t = new Uint8Array(3 + data.length);\n t[0] = data.length & 255;\n t[1] = (data.length >>> 8 & 127) + 128;\n t[2] = data.length >>> 15;\n t.set(data, 3);\n }\n if (comp.componentId != 1) {\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n return __privateMethod(this, __f5write, _f5write_fn).call(this, comp.blocks, t, k);\n }\n f5get() {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let comp = __privateGet(this, _frame).components[0];\n if (comp.componentId != 1) {\n for (let i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n const coeff = new Int16Array(comp.blocks.length);\n coeff.set(comp.blocks);\n let pos = -1, extrBit = 0, cCount = coeff.length - 1;\n let n, k = 0;\n let out = new Uint8Array(coeff.length / 8 | 0), extrByte = 0, outPos = 0, bitsAvail = 0, code = 0, hash = 0;\n while (bitsAvail < 4) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n k |= extrBit << bitsAvail;\n bitsAvail++;\n }\n k = (k & 15) + 1;\n n = (1 << k) - 1;\n bitsAvail = 0;\n if (k == 1) {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n extrByte |= extrBit << bitsAvail;\n bitsAvail++;\n if (bitsAvail == 8) {\n out[outPos++] = extrByte;\n extrByte = 0;\n bitsAvail = 0;\n }\n }\n } else {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n hash ^= extrBit * ++code;\n if (code == n) {\n extrByte |= hash << bitsAvail;\n bitsAvail += k;\n code = 0;\n hash = 0;\n while (bitsAvail >= 8) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n }\n }\n }\n while (bitsAvail > 0) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n let s = 2, l = out[0];\n if (out[1] & 128) {\n s++;\n l += ((out[1] & 127) << 8) + (out[2] << 15);\n } else {\n l += out[1] << 8;\n }\n return out.subarray(s, s + l);\n }\n parse(data, tolerant = false) {\n let offset = 0;\n function _buildHuffmanTable(nrcodes, values) {\n let codevalue = 0, pos_in_table = 0, HT = new Uint16Array(65536);\n for (let k = 0; k < 16; k++) {\n for (let j2 = 0; j2 < nrcodes[k]; j2++) {\n for (let i2 = codevalue << 15 - k, cntTo = codevalue + 1 << 15 - k; i2 < cntTo; i2++) {\n HT[i2] = values[pos_in_table] + (k + 1 << 8);\n }\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n const decodeScan = (data2, offset2, frame, components, resetInterval2, spectralStart, spectralEnd, successivePrev, successive) => {\n let startOffset = offset2, bitsData = 0, bitsCount = 0, eobrun = 0, p1 = 1 << successive, m1 = -1 << successive;\n const prevpos = 0;\n const decodeBaseline = (component2, pos) => {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n let diff = 0;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff;\n let k2 = 1, s, r;\n while (k2 < 64) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n bitsCount -= s;\n k2++;\n }\n };\n function decodeDCFirst(component2, pos) {\n let diff = 0;\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff << successive;\n }\n function decodeDCSuccessive(component2, pos) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocksDC[pos >> 6] |= (bitsData >>> --bitsCount & 1) << successive;\n }\n if (!frame)\n throw "Frame not parsed yet";\n function decodeACFirst(component2, pos) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k2 = spectralStart, s, r;\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r != 15) {\n eobrun = (1 << r) - 1;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n bitsCount -= s;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n component2.blocks[pos + k2] *= p1;\n k2++;\n }\n }\n function decodeACSuccessive(component2, pos) {\n let k2 = spectralStart, r, s;\n if (frame == null)\n throw "Frame not defined";\n if (!eobrun) {\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s) {\n if (s != 1)\n throw "bad jpeg";\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n s = bitsData >>> --bitsCount & 1 ? p1 : m1;\n } else {\n if (r != 15) {\n eobrun = 1 << r;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n }\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n } else {\n if (--r < 0)\n break;\n }\n k2++;\n }\n if (s)\n component2.blocks[pos + k2] = s;\n k2++;\n }\n }\n if (eobrun) {\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n }\n k2++;\n }\n eobrun--;\n }\n }\n let decodeFn;\n if (frame.progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n let marker, mcuExpected, i2, j2, k, n, mcusPerLine, mcusPerRow, x, y;\n let lastflushidx = 0;\n const flushBits = () => {\n const component2 = components.find((e) => e.componentId == 1);\n while (component2.blocks[lastflushidx + 1] !== void 0) {\n const blk = component2.blocks[lastflushidx];\n if (blk != 0) {\n const v = blk < 0 ? 1 - (blk & 1) : blk & 1;\n const it = this.gengen.next(v);\n if (it.done) {\n throw it.value;\n }\n }\n lastflushidx++;\n }\n };\n if (components.length == 1) {\n mcusPerLine = components[0].blocksPerLine;\n mcusPerRow = components[0].blocksPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n decodeFn(components[i2], (y * components[i2].blocksPerLineForMcu + x) * 64);\n }\n }\n flushBits();\n }\n } else {\n mcusPerLine = frame.mcusPerLine;\n mcusPerRow = frame.mcusPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n for (j2 = 0; j2 < components[i2].v; j2++) {\n for (k = 0; k < components[i2].h; k++) {\n decodeFn(components[i2], ((y * components[i2].v + j2) * components[i2].blocksPerLineForMcu + x * components[i2].h + k) * 64);\n }\n }\n }\n }\n flushBits();\n }\n }\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n return offset2 - startOffset;\n };\n function readUint16() {\n const value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n const length = readUint16();\n const array = data.subarray(offset, offset + length - 2);\n offset += array.length;\n return array;\n }\n __privateSet(this, __raw, data);\n __privateSet(this, _jfif, null);\n __privateSet(this, _APPn, []);\n __privateSet(this, _qts, []);\n __privateSet(this, _frame, null);\n __privateSet(this, _tail, null);\n let markerHi, markerLo, i, j, resetInterval, component;\n const huffmanTablesAC = [];\n const huffmanTablesDC = [];\n while (1) {\n if (offset >= data.length) {\n if (tolerant)\n break;\n throw "unexpected EOF";\n }\n markerHi = data[offset++];\n markerLo = data[offset++];\n if (markerHi == 255) {\n if (markerLo == 224) {\n __privateSet(this, _jfif, readDataBlock());\n }\n if (markerLo > 224 && markerLo < 240 || markerLo == 254) {\n __privateGet(this, _APPn).push({\n "app": markerLo,\n "data": readDataBlock()\n });\n }\n if (markerLo == 219) {\n __privateGet(this, _qts).push(readDataBlock());\n }\n if (markerLo >= 192 && markerLo <= 194) {\n if (__privateGet(this, _frame))\n throw "Only single frame JPEGs supported";\n readUint16();\n __privateSet(this, _frame, {\n "extended": markerLo === 193,\n "progressive": markerLo === 194,\n "precision": data[offset++],\n "scanLines": readUint16(),\n "samplesPerLine": readUint16(),\n "components": [],\n "componentIds": {},\n "maxH": 1,\n "maxV": 1\n });\n if (__privateGet(this, _frame).scanLines * __privateGet(this, _frame).samplesPerLine > this.maxPixels)\n throw "Image is too big.";\n var componentsCount = data[offset++], componentId;\n let maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n const h = data[offset + 1] >> 4;\n const v = data[offset + 1] & 15;\n if (maxH < h)\n maxH = h;\n if (maxV < v)\n maxV = v;\n const qId = data[offset + 2];\n const l = __privateGet(this, _frame).components.push({\n componentId,\n h,\n v,\n quantizationTable: qId\n });\n __privateGet(this, _frame).componentIds[componentId] = l - 1;\n offset += 3;\n }\n __privateGet(this, _frame).maxH = maxH;\n __privateGet(this, _frame).maxV = maxV;\n const mcusPerLine = Math.ceil(__privateGet(this, _frame).samplesPerLine / 8 / maxH);\n const mcusPerColumn = Math.ceil(__privateGet(this, _frame).scanLines / 8 / maxV);\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n component = __privateGet(this, _frame).components[i];\n const blocksPerLine = Math.ceil(Math.ceil(__privateGet(this, _frame).samplesPerLine / 8) * component.h / maxH);\n const blocksPerColumn = Math.ceil(Math.ceil(__privateGet(this, _frame).scanLines / 8) * component.v / maxV);\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n __privateGet(this, _frame).components[i] = {\n ...component,\n blocks: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu * 64),\n blocksDC: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu),\n blocksPerLine,\n blocksPerColumn,\n blocksPerLineForMcu,\n blocksPerColumnForMcu\n };\n }\n __privateGet(this, _frame).mcusPerLine = mcusPerLine;\n __privateGet(this, _frame).mcusPerColumn = mcusPerColumn;\n }\n if (markerLo == 196) {\n const huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++)\n codeLengthSum += codeLengths[j] = data[offset];\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n const v = _buildHuffmanTable(codeLengths, huffmanValues);\n if (huffmanTableSpec >> 4 === 0)\n huffmanTablesDC[huffmanTableSpec & 15] = v;\n else\n huffmanTablesAC[huffmanTableSpec & 15] = v;\n }\n }\n if (markerLo == 221) {\n resetInterval = readUint16();\n }\n if (markerLo == 218) {\n if (__privateGet(this, _frame) == null)\n throw "SOS before SOF";\n readUint16();\n const selectorsCount = data[offset++];\n const components = [];\n for (i = 0; i < selectorsCount; i++) {\n const componentIndex = __privateGet(this, _frame).componentIds[data[offset++]];\n component = __privateGet(this, _frame).components[componentIndex];\n const tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n const spectralStart = data[offset++];\n const spectralEnd = data[offset++];\n const successiveApproximation = data[offset++];\n const processed = decodeScan(data, offset, __privateGet(this, _frame), components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15);\n offset += processed;\n }\n if (markerLo == 217) {\n break;\n }\n } else {\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n }\n while (data[offset] != 255 && offset < data.length) {\n offset++;\n }\n if (data[offset] != 255) {\n throw "bad jpeg ";\n }\n }\n }\n if (!__privateGet(this, _frame))\n throw "bad jpeg";\n if (offset < data.length)\n __privateSet(this, _tail, data.subarray(offset));\n return this;\n }\n pack() {\n let byteout;\n let bytenew;\n let bytepos;\n let poslast;\n let outpos;\n let byte;\n function writeByte(value) {\n let t;\n byteout[outpos++] = value;\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function writeBlock(block) {\n let t;\n if (outpos + block.length > poslast) {\n t = new Uint8Array(byteout.length * 2 + block.length);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n byteout.set(block, outpos);\n outpos += block.length;\n }\n function writeAPP0(self2) {\n writeWord(65504);\n if (!__privateGet(self2, _jfif)) {\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n } else {\n writeWord(__privateGet(self2, _jfif).length + 2);\n writeBlock(__privateGet(self2, _jfif));\n }\n }\n function writeDQT(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _qts).length; i2++) {\n writeWord(65499);\n writeWord(__privateGet(self2, _qts)[i2].length + 2);\n writeBlock(__privateGet(self2, _qts)[i2]);\n }\n }\n function writeAPPn(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _APPn).length; i2++) {\n writeWord(65280 | __privateGet(self2, _APPn)[i2].app);\n writeWord(__privateGet(self2, _APPn)[i2].data.length + 2);\n writeBlock(__privateGet(self2, _APPn)[i2].data);\n }\n }\n function writeSOF0(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65472);\n writeWord(8 + __privateGet(self2, _frame).components.length * 3);\n writeByte(__privateGet(self2, _frame).precision);\n writeWord(__privateGet(self2, _frame).scanLines);\n writeWord(__privateGet(self2, _frame).samplesPerLine);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n writeByte(c2.h << 4 | c2.v);\n writeByte(c2.quantizationTable);\n }\n }\n function writeDHT(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65476);\n writeWord(31);\n writeByte(0);\n for (let i2 = 0; i2 < 16; i2++) {\n writeByte(std_dc_luminance_nrcodes[i2 + 1]);\n }\n for (let j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values[j]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(16);\n for (let k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes[k + 1]);\n }\n for (let l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values[l]);\n }\n if (__privateGet(self2, _frame).components.length != 1) {\n writeWord(65476);\n writeWord(31);\n writeByte(1);\n for (let m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes[m + 1]);\n }\n for (let n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values[n]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(17);\n for (let o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes[o + 1]);\n }\n for (let p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values[p]);\n }\n }\n }\n function writeSOS(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65498);\n writeWord(6 + __privateGet(self2, _frame).components.length * 2);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n if (i2 === 0) {\n writeByte(0);\n } else {\n writeByte(17);\n }\n }\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(comp, POS, DC, HTDC, HTAC) {\n let pos, posval, t;\n if (bytepos === 0)\n bytenew = 0;\n if (!("blocks" in comp))\n throw "Blocks not parsed";\n const Diff = comp.blocksDC[POS >> 6] - DC;\n DC = comp.blocksDC[POS >> 6];\n if (Diff === 0) {\n posval = HTDC[0][1];\n bytenew <<= posval;\n bytenew += HTDC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n } else {\n pos = 32767 + Diff;\n posval = HTDC[category[pos]][1];\n bytenew <<= posval;\n bytenew += HTDC[category[pos]][0];\n bytepos += posval;\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n let end0pos = 63;\n for (; end0pos > 0 && comp.blocks[POS + end0pos] === 0; end0pos--) {\n }\n if (end0pos === 0) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n return DC;\n }\n let i2 = 1;\n let lng;\n while (i2 <= end0pos) {\n const startpos = i2;\n for (; comp.blocks[POS + i2] === 0 && i2 <= end0pos; ++i2) {\n }\n let nrzeroes = i2 - startpos;\n if (nrzeroes >= 16) {\n lng = nrzeroes >> 4;\n for (let nrmarker = 1; nrmarker <= lng; ++nrmarker) {\n posval = HTAC[240][1];\n bytenew <<= posval;\n bytenew += HTAC[240][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + comp.blocks[POS + i2];\n posval = HTAC[(nrzeroes << 4) + category[pos]][1];\n bytenew <<= posval;\n bytenew += HTAC[(nrzeroes << 4) + category[pos]][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n i2++;\n }\n if (end0pos != 63) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n return DC;\n }\n byteout = new Uint8Array(65536);\n poslast = 65536 - 128;\n outpos = 0;\n bytenew = 0;\n bytepos = 0;\n writeWord(65496);\n writeAPP0(this);\n writeAPPn(this);\n writeDQT(this);\n writeSOF0(this);\n writeDHT(this);\n writeSOS(this);\n bytenew = 0;\n bytepos = 0;\n if (!__privateGet(this, _frame))\n throw "Frame not ready";\n let c, mcuRow, mcuCol, blockRow, blockCol, mcu, i, v, h;\n const DCdiff = [];\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n DCdiff.push(0);\n }\n for (mcu = 0; mcu < __privateGet(this, _frame).mcusPerLine * __privateGet(this, _frame).mcusPerColumn; mcu++) {\n mcuRow = mcu / __privateGet(this, _frame).mcusPerLine | 0;\n mcuCol = mcu % __privateGet(this, _frame).mcusPerLine;\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n c = __privateGet(this, _frame).components[i];\n for (v = 0; v < c.v; v++) {\n blockRow = mcuRow * c.v + v;\n for (h = 0; h < c.h; h++) {\n blockCol = mcuCol * c.h + h;\n if (i === 0) {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], YDC_HT, YAC_HT);\n } else {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], UVDC_HT, UVAC_HT);\n }\n }\n }\n }\n }\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n }\n if (bytepos > 0) {\n bytenew <<= 8 - bytepos;\n bytenew += (1 << 8 - bytepos) - 1;\n byteout[outpos++] = 255 & bytenew;\n }\n writeWord(65497);\n if (__privateGet(this, _tail))\n writeBlock(__privateGet(this, _tail));\n return byteout.slice(0, outpos);\n }\n};\n__raw = new WeakMap();\n_jfif = new WeakMap();\n_APPn = new WeakMap();\n_qts = new WeakMap();\n_frame = new WeakMap();\n_tail = new WeakMap();\n__f5write = new WeakSet();\n_f5write_fn = function(coeff, data, k) {\n const coeff_count = coeff.length;\n let _changed = 0, _embedded = 0, _examined = 0, _thrown = 0, shuffled_index = 0, i, n, ii;\n let next_bit_to_embed = 0, byte_to_embed = data.length, data_idx = 0, available_bits_to_embed = 0;\n n = (1 << k) - 1;\n byte_to_embed = k - 1;\n byte_to_embed ^= 0;\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed = 3;\n for (ii = 0; ii < coeff_count; ii++) {\n shuffled_index = ii;\n if (shuffled_index % 64 === 0 || coeff[shuffled_index] === 0)\n continue;\n const cc = coeff[shuffled_index];\n _examined++;\n if (cc > 0 && (cc & 1) != next_bit_to_embed) {\n coeff[shuffled_index]--;\n _changed++;\n } else if (cc < 0 && (cc & 1) == next_bit_to_embed) {\n coeff[shuffled_index]++;\n _changed++;\n }\n if (coeff[shuffled_index] !== 0) {\n _embedded++;\n if (available_bits_to_embed === 0) {\n if (k != 1 || data_idx >= data.length)\n break;\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n } else {\n _thrown++;\n }\n }\n if (k == 1 && _embedded < data.length * 8)\n throw "capacity exceeded " + _embedded / 8 + " " + data.length;\n if (k != 1) {\n let is_last_byte = false, k_bits_to_embed = 0;\n while (!is_last_byte || available_bits_to_embed !== 0 && is_last_byte) {\n k_bits_to_embed = 0;\n for (i = 0; i < k; i++) {\n if (available_bits_to_embed === 0) {\n if (data_idx >= data.length) {\n is_last_byte = true;\n break;\n }\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n k_bits_to_embed |= next_bit_to_embed << i;\n }\n const code_word = [];\n let ci = null;\n for (i = 0; i < n; i++) {\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n code_word.push(ci);\n }\n _examined += n;\n while (true) {\n var vhash = 0, extracted_bit;\n for (i = 0; i < code_word.length; i++) {\n if (coeff[code_word[i]] > 0) {\n extracted_bit = coeff[code_word[i]] & 1;\n } else {\n extracted_bit = 1 - (coeff[code_word[i]] & 1);\n }\n if (extracted_bit == 1)\n vhash ^= i + 1;\n }\n i = vhash ^ k_bits_to_embed;\n if (!i) {\n _embedded += k;\n break;\n }\n i--;\n coeff[code_word[i]] += coeff[code_word[i]] < 0 ? 1 : -1;\n _changed++;\n if (coeff[code_word[i]] === 0) {\n _thrown++;\n code_word.splice(i, 1);\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n _examined++;\n code_word.push(ci);\n } else {\n _embedded += k;\n break;\n }\n }\n }\n }\n return {\n "k": k,\n "embedded": _embedded / 8,\n "examined": _examined,\n "changed": _changed,\n "thrown": _thrown,\n "efficiency": (_embedded / _changed).toFixed(2)\n };\n};\n\n// src/jpg.ts\nvar key = import_buffer4.Buffer.from("CUNNYCUNNYCUNNY");\nvar f5inst = new f5stego(key);\nvar inject2 = async (b, links) => {\n if (b.size / 20 < links.join(" ").length)\n throw "Image too small to embed.";\n const arr = new Uint8Array(new Uint8Array(await b.arrayBuffer()));\n const buff = f5inst.embed(arr, new TextEncoder().encode(links.join(" ")), 1);\n return import_buffer4.Buffer.from(buff);\n};\nvar has_embed2 = (b) => {\n try {\n const res = f5inst.extract(b);\n if (!res)\n return false;\n if (res.length > 1024)\n return false;\n const str = import_buffer4.Buffer.from(res).toString();\n if (!str.match(/^[a-zA-Z0-9:/.\\-_ ]+$/))\n return false;\n return str;\n } catch {\n return false;\n }\n};\nvar extract2 = (b, ex) => {\n return decodeCoom3Payload(import_buffer4.Buffer.from(ex));\n};\nvar jpg_default = {\n match: (fn) => !!fn.match(/\\.jpe?g$/),\n has_embed: has_embed2,\n extract: extract2,\n inject: inject2\n};\n\n// src/thirdeye.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer5 = __toESM(require_buffer(), 1);\nvar import_jpeg_js = __toESM(require_jpeg_js(), 1);\n\n// src/phash.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar median = (data) => {\n const mdarr = data.slice(0);\n mdarr.sort((a, b) => a - b);\n if (mdarr.length % 2 === 0)\n return (mdarr[mdarr.length / 2 - 1] + mdarr[mdarr.length / 2]) / 2;\n return mdarr[Math.floor(mdarr.length / 2)];\n};\nvar translate_blocks_to_bits = function(blocks, pixels_per_block) {\n const half_block_value = pixels_per_block * 256 * 3 / 2;\n const bandsize = blocks.length / 4;\n for (let i = 0; i < 4; i++) {\n const m = median(blocks.slice(i * bandsize, (i + 1) * bandsize));\n for (let j = i * bandsize; j < (i + 1) * bandsize; j++) {\n const v = blocks[j];\n blocks[j] = Number(v > m || Math.abs(v - m) < 1 && m > half_block_value);\n }\n }\n};\nvar bits_to_hexhash = (bitsArray) => {\n const hex = [];\n for (let i = 0; i < bitsArray.length; i += 4) {\n const nibble = bitsArray.slice(i, i + 4);\n hex.push(parseInt(nibble.join(""), 2).toString(16));\n }\n return hex.join("");\n};\nvar bmvbhash_even = (data, bits) => {\n const blocksize_x = Math.floor(data.width / bits);\n const blocksize_y = Math.floor(data.height / bits);\n const result = [];\n for (let y = 0; y < bits; y++) {\n for (let x = 0; x < bits; x++) {\n let total = 0;\n for (let iy = 0; iy < blocksize_y; iy++) {\n for (let ix = 0; ix < blocksize_x; ix++) {\n const cx = x * blocksize_x + ix;\n const cy = y * blocksize_y + iy;\n const ii = (cy * data.width + cx) * 4;\n const alpha = data.data[ii + 3];\n if (alpha === 0) {\n total += 765;\n } else {\n total += data.data[ii] + data.data[ii + 1] + data.data[ii + 2];\n }\n }\n }\n result.push(total);\n }\n }\n translate_blocks_to_bits(result, blocksize_x * blocksize_y);\n return bits_to_hexhash(result);\n};\n\n// src/thirdeye.ts\nvar csettings3;\nsettings.subscribe((b) => {\n csettings3 = b;\n});\nvar gelquirk = (prefix) => (a) => {\n let base = a.post || a.data || a;\n if (!Array.isArray(base))\n return [];\n base = base.filter((e) => e.file_url);\n return base.map((e) => ({\n full_url: e.file_url,\n preview_url: e.preview_url || e.preview_url,\n source: e.source,\n ext: e.file_ext || e.file_url.substr(e.file_url.lastIndexOf(".") + 1),\n page: `${prefix}${e.id || e.parent_id}`,\n tags: (e.tag_string || (e.tags && (Array.isArray(e.tags) && (typeof e.tags[0] == "string" ? e.tags.join(" ") : e.tags.map((e2) => e2.name_en).join(" "))) || e.tags) || "").split(" ")\n })) || [];\n};\nvar experimentalApi = false;\nvar black = /* @__PURE__ */ new Set();\nvar phashEn = false;\nvar mindist = 5;\nsettings.subscribe((s) => {\n if (!s)\n return;\n experimentalApi = s.expte;\n boorus = s.rsources.map((e) => ({\n ...e,\n quirks: gelquirk(e.view)\n }));\n black = new Set(s.blacklist);\n mindist = s.mdist || 5;\n phashEn = s.phash;\n});\nvar boorus = [];\nvar unlockQueue = Promise.resolve();\nvar cache = {};\nvar findFileFrom = async (b, hex, abort) => {\n try {\n if (b.domain in cache && hex in cache[b.domain])\n return cache[b.domain][hex];\n const res = await ifetch(`https://${b.domain}${b.endpoint}${hex}`);\n const txt = await res.text();\n const pres = JSON.parse(txt);\n const tran = b.quirks(pres).filter((e) => !e.tags.some((e2) => black.has(e2)));\n if (!(b.domain in cache))\n cache[b.domain] = {};\n cache[b.domain][hex] = tran;\n return tran;\n } catch (e) {\n const error = e;\n if (!error.message.includes("Unexpected end of JSON input"))\n console.error(e);\n return [];\n }\n};\nvar extract3 = async (b, fn) => {\n if (!csettings3)\n throw new Error("Settings uninit");\n let result;\n let booru;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n if (result.length) {\n booru = e.name;\n break;\n }\n }\n let cachedFile;\n const prev = result[0].preview_url;\n const full = result[0].full_url;\n return [{\n source: result[0].source,\n page: {\n title: booru,\n url: result[0].page\n },\n filename: fn.substring(0, 33) + result[0].ext,\n thumbnail: csettings3.hotlink ? prev || full : import_buffer5.Buffer.from(await (await ifetch(prev || full)).arrayBuffer()),\n data: csettings3.hotlink ? full || prev : { url: full || prev }\n }];\n};\nvar phash = (b) => {\n const res = (0, import_jpeg_js.decode)(b);\n return bmvbhash_even(res, 8);\n};\nvar hammingDist = (a, b) => {\n let res = BigInt("0x" + a) ^ BigInt("0x" + b);\n let acc = 0;\n while (res != 0n) {\n acc += Number(res & 1n);\n res >>= 1n;\n }\n return acc;\n};\nvar has_embed3 = async (b, fn, prevlink) => {\n if (import_buffer5.Buffer.from(fn, "hex").equals(b))\n return false;\n let result = void 0;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n result = result.filter((e2) => e2.full_url || e2.preview_url);\n if (result.length)\n break;\n }\n if (result && result.length != 0 && phashEn && prevlink) {\n if (!result[0].preview_url)\n return true;\n const getHash = async (l) => {\n const ogreq = await ifetch(l);\n const origPreview = await ogreq.arrayBuffer();\n return phash(import_buffer5.Buffer.from(origPreview));\n };\n const [orighash, tehash] = await Promise.all([\n getHash(prevlink),\n getHash(result[0].preview_url)\n ]);\n const d = hammingDist(orighash, tehash);\n console.log(d, prevlink);\n return d > mindist;\n }\n return result && result.length != 0;\n};\nvar thirdeye_default = {\n skip: true,\n extract: extract3,\n has_embed: has_embed3,\n match: (fn) => !!fn.match(/^[0-9a-f]{32}\\.....?/)\n};\n\n// src/pomf.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer6 = __toESM(require_buffer(), 1);\nvar sources = [\n { host: "Catbox", prefix: "files.catbox.moe/" },\n { host: "Litter", prefix: "litter.catbox.moe/" },\n { host: "Zzzz", prefix: "z.zz.fo/" }\n];\nvar csettings4;\nsettings.subscribe((b) => {\n csettings4 = b;\n});\nvar getExt = (fn) => {\n const isB64 = fn.match(/^((?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=))?\\.(gif|jpe?g|png|webm)/);\n const isExt = fn.match(/\\[.*=(.*)\\]/);\n let ext;\n let source;\n try {\n if (isB64) {\n ext = atob(isB64[1]);\n } else if (isExt) {\n ext = decodeURIComponent(isExt[1]);\n if (ext.startsWith("https://"))\n ext = ext.slice("https://".length);\n for (const cs of sources)\n if (ext.startsWith(cs.prefix)) {\n source = cs.prefix;\n ext = ext.slice(cs.prefix.length);\n break;\n }\n }\n } catch {\n }\n return { ext, source };\n};\nvar extract4 = async (b, fn) => {\n if (!csettings4)\n throw new Error("Settings uninit");\n const { ext, source } = getExt(fn);\n let rsource;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n await getHeaders("https://" + cs.prefix + ext);\n rsource = "https://" + cs.prefix + ext;\n break;\n } catch {\n }\n }\n return [{\n filename: ext,\n data: csettings4.hotlink ? rsource : { url: rsource },\n thumbnail: import_buffer6.Buffer.from(hasembed_default)\n }];\n};\nvar has_embed4 = async (b, fn) => {\n const { ext, source } = getExt(fn);\n if (!ext)\n return false;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n const e = await getHeaders("https://" + cs.prefix + ext);\n return true;\n } catch {\n }\n }\n return false;\n};\nvar pomf_default = {\n skip: true,\n extract: extract4,\n has_embed: has_embed4,\n match: (fn) => !!getExt(fn)\n};\n\n// src/processor.worker.ts\nconsole.log("Worker started");\nvar pendinggens = {};\nvar proxyAsyncGen = (id) => {\n return {\n next(arg) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n return(v) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n throw() {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n [Symbol.asyncIterator]() {\n return this;\n }\n };\n};\nvar deserializeMessage = (m) => {\n if (m instanceof MessagePort)\n return m;\n if (typeof m == "object" && m.type == "AsyncGenerator") {\n return proxyAsyncGen(m.id);\n }\n if (typeof m == "object") {\n for (const p in m) {\n m[p] = deserializeMessage(m[p]);\n }\n }\n return m;\n};\nvar processors = [thirdeye_default, pomf_default, pngv3_default, jpg_default];\nvar processImage = async (srcs, fn, hex, prevurl) => {\n const ret = await Promise.all(processors.filter((e) => e.match(fn)).map(async (proc) => {\n if (proc.skip) {\n const md5 = Buffer2.from(hex, "base64");\n if (await proc.has_embed(md5, fn, prevurl) === true) {\n return [await proc.extract(md5, fn), true];\n }\n return;\n }\n let succ = false;\n let cumul;\n do {\n try {\n const n = await srcs.next();\n if (n.done)\n return;\n const iter = streamRemote(n.value);\n if (!iter)\n return;\n cumul = Buffer2.alloc(0);\n let found;\n let chunk = { done: true };\n do {\n const { value, done } = await iter.next(typeof found === "boolean");\n if (done) {\n chunk = { done: true };\n } else {\n chunk = { done: false, value };\n cumul = Buffer2.concat([cumul, value]);\n const v = await proc.has_embed(cumul);\n if (typeof v == "string") {\n return [await proc.extract(cumul, v), false];\n }\n found = v;\n }\n } while (found !== false && !chunk.done);\n succ = true;\n await iter.next(true);\n if (found !== true) {\n return;\n }\n return [await proc.extract(cumul), false];\n } catch (err) {\n console.log(err);\n }\n } while (!succ);\n }));\n return ret.filter((e) => e).map((e) => e);\n};\nvar init2 = false;\n(async () => {\n onmessage = async (msg) => {\n const des = deserializeMessage(msg.data);\n switch (des.type) {\n case "ipc": {\n setupPort(des.port);\n const nset = await localLoad("settingsv2", initial_settings);\n settings.set(nset);\n break;\n }\n case "cmd": {\n switch (des.fun) {\n case "processImage": {\n if (!init2) {\n await new Promise((_) => {\n settings.subscribe((v) => {\n if (v)\n _();\n });\n });\n init2 = true;\n }\n const res = await processImage(des.args[0], des.args[1], des.args[2], des.args[3]);\n const tr = [];\n for (const ef of res) {\n for (const e of ef[0]) {\n if (e.thumbnail && Buffer2.isBuffer(e.thumbnail) || typeof e.thumbnail != "string")\n tr.push(e.thumbnail.buffer);\n if (Buffer2.isBuffer(e.data) || typeof e.data != "string" && !("url" in e.data))\n tr.push(e.data.buffer);\n }\n }\n postMessage({\n type: "reply",\n id: des.id,\n res\n }, [...new Set(tr)]);\n }\n }\n break;\n }\n case "ag": {\n const cb = pendinggens[des.id].shift();\n if (cb) {\n cb(des.res);\n }\n break;\n }\n }\n };\n})();\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n'); } // src/main.ts @@ -21860,11 +21858,15 @@ Use the WebExtension version of PEE if you want to use b4k!`); if (!el && e.classList.contains("postContainer")) el = [e]; if (el) { - appState.update((v) => { - v.processing += el.length; - return v; - }); - [...el].map((el2) => processPost(el2)); + for (const e2 of el) { + if (processed.has(e2.id)) + continue; + appState.update((v) => { + v.processing += 1; + return v; + }); + processPost(e2); + } } }); }); @@ -21999,11 +22001,13 @@ Use the WebExtension version of PEE if you want to use b4k!`); const postContainer = document.getElementById("pc" + post.substring(post.indexOf(".") + 1)); const fn = qp.getFilename(postContainer); if (fn) { - appState.update((v) => { - v.processing++; - return v; - }); - processPost(postContainer); + if (!processed.has(postContainer.id)) { + appState.update((v) => { + v.processing++; + return v; + }); + processPost(postContainer); + } } } }); diff --git a/pngextraembedder-0.314.xpi b/pngextraembedder-0.314.xpi new file mode 100644 index 0000000000000000000000000000000000000000..4bd2f62ed0ccc367b60358797b2c105e4e0dd7af GIT binary patch literal 548376 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

2N5RA7 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ð-dpUCG4(1&FnInQWWk{x2$G! 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

IhK+yHB%uoGvbB5V$Hd1wJfH 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

IjEt^j$%Sx% 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 z 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 JcLVt);D5R==w1K- literal 0 HcmV?d00001 diff --git a/src/f5stego.ts b/src/f5stego.ts index 7004dc4..a4c9515 100644 --- a/src/f5stego.ts +++ b/src/f5stego.ts @@ -1,4 +1,3 @@ -/* eslint-disable no-constant-condition */ /* This software is licensed under the MIT License. Copyright (c) 2016 desudesutalk @@ -112,7 +111,7 @@ import { BitstreamWriter, revbyte } from "./bitstream"; // Standard Huffman tables for coder initialization // =========================================================================================================== -function* f5get(): Generator { +function* f5get() { let extrBit = 0; //var pm = this.#stegShuffle(coeff), @@ -132,7 +131,8 @@ function* f5get(): Generator { let len = 0; while (toread--) { - len = len * 2 + (yield); + const b = (yield); + len = len * 2 + b; } const b = yield; toread += 8; @@ -141,12 +141,13 @@ function* f5get(): Generator { else len *= 2; while (toread--) { - len = len * 2 + (yield); + const b = (yield); + len = len * 2 + b; } - let rlen = revbyte(len, b ? 23 : 16); + const rlen = revbyte(len, b ? 23 : 16); len = rlen; - if (len >= 256) // don't know if length decoding is correct so let's be safe and trim - len = rlen = 256; + if (len > 256) + throw new Error("Too big for Smash"); len *= 8; // bytes to bits // k must be 1 const chunks: Uint8Array[] = []; @@ -348,7 +349,7 @@ export class f5stego { _examined = 0, _thrown = 0, shuffled_index = 0, - i, ii: number; + i, n, ii: number; //let { gamma, pm } = this.#stegShuffle(coeff_count); //let gammaI = 0; @@ -358,7 +359,7 @@ export class f5stego { data_idx = 0, available_bits_to_embed = 0; - const n = (1 << k) - 1; + n = (1 << k) - 1; byte_to_embed = k - 1; byte_to_embed ^= 0; // nop @@ -447,8 +448,8 @@ export class f5stego { _examined += n; while (true) { - let vhash = 0; - let extracted_bit; + var vhash = 0, + extracted_bit; for (i = 0; i < code_word.length; i++) { if (coeff[code_word[i]] > 0) { @@ -564,21 +565,21 @@ export class f5stego { coeff.set(comp.blocks); let pos = -1, - extrBit = 0; - const cCount = coeff.length - 1; + extrBit = 0, + cCount = coeff.length - 1; //var pm = this.#stegShuffle(coeff), // gamma = pm.gamma, // gammaI = 0; - let k = 0; + let n, k = 0; - const out = new Uint8Array((coeff.length / 8) | 0); - let extrByte = 0; - let outPos = 0; - let bitsAvail = 0; - let code = 0; - let hash = 0; + let out = new Uint8Array((coeff.length / 8) | 0), + extrByte = 0, + outPos = 0, + bitsAvail = 0, + code = 0, + hash = 0; while (bitsAvail < 4) { pos++; @@ -598,7 +599,7 @@ export class f5stego { //k = (k ^ gamma[gammaI++] & 15) + 1; k = (k & 15) + 1; - const n = (1 << k) - 1; + n = (1 << k) - 1; bitsAvail = 0; @@ -677,15 +678,15 @@ export class f5stego { return out.subarray(s, s + l); } - gengen!: Generator; + gengen: Generator; parse(data: Uint8Array, tolerant = false) { let offset = 0; function _buildHuffmanTable(nrcodes: Uint8Array, values: Uint8Array) { - let codevalue = 0; - let pos_in_table = 0; - const HT = new Uint16Array(65536); + let codevalue = 0, + pos_in_table = 0, + HT = new Uint16Array(65536); for (let k = 0; k < 16; k++) { for (let j = 0; j < nrcodes[k]; j++) { for (let i = codevalue << (15 - k), cntTo = ((codevalue + 1) << (15 - k)); i < cntTo; i++) { @@ -709,13 +710,14 @@ export class f5stego { successivePrev: number, successive: number) => { - const startOffset = offset; - let bitsData = 0, + let startOffset = offset, + bitsData = 0, bitsCount = 0, - eobrun = 0; - const p1 = 1 << successive; /* 1 in the bit position being coded */ - const m1 = -1 << successive; /* -1 in the bit position being coded */ + eobrun = 0, + p1 = 1 << successive, /* 1 in the bit position being coded */ + m1 = -1 << successive; /* -1 in the bit position being coded */ + const prevpos = 0; const decodeBaseline = (component: typeof components[0], pos: number) => { while (bitsCount < 16) { bitsData = (bitsData << 8) + (data[offset] | 0); @@ -770,19 +772,8 @@ export class f5stego { if ((bitsData & 0xff) == 0xFF) offset++; bitsCount += 8; } - if (component.componentId == 1) { - // EMIT BITS HERE - component.blocks[pos + k] = (bitsData >>> (bitsCount - s)) & ((1 << s) - 1); - if (component.blocks[pos + k] < 1 << (s - 1)) component.blocks[pos + k] += (-1 << s) + 1; - if (this.gengen && component.blocks[pos + k] != 0) { - - const v = (component.blocks[pos + k] < 0) ? 1 - (component.blocks[pos + k] & 1) : (component.blocks[pos + k] & 1); - const it = this.gengen.next(v); - if (it.done) { - throw it.value; - } - } - } + component.blocks[pos + k] = (bitsData >>> (bitsCount - s)) & ((1 << s) - 1); + if (component.blocks[pos + k] < 1 << (s - 1)) component.blocks[pos + k] += (-1 << s) + 1; bitsCount -= s; k++; } @@ -972,6 +963,23 @@ export class f5stego { let marker, mcuExpected, i, j, k, n, mcusPerLine, mcusPerRow, x, y; + let lastflushidx = 0; + const flushBits = () => { + const component = components.find(e => e.componentId == 1)!; + // EMIT BITS HERE + while (component.blocks[lastflushidx + 1] !== undefined) { + const blk = component.blocks[lastflushidx]; + if (blk != 0) { + const v = (blk < 0) ? 1 - (blk & 1) : (blk & 1); + const it = this.gengen.next(v); + if (it.done) { + throw it.value; + } + } + lastflushidx++; + } + }; + if (components.length == 1) { mcusPerLine = components[0].blocksPerLine; mcusPerRow = components[0].blocksPerColumn; @@ -1010,6 +1018,7 @@ export class f5stego { } } + flushBits(); } } else { mcusPerLine = frame.mcusPerLine; @@ -1052,6 +1061,7 @@ export class f5stego { } } } + flushBits(); } } offset -= (bitsCount / 8) | 0; @@ -1129,8 +1139,8 @@ export class f5stego { if (this.#frame.scanLines * this.#frame.samplesPerLine > this.maxPixels) throw "Image is too big."; - const componentsCount = data[offset++]; - let componentId; + var componentsCount = data[offset++], + componentId; let maxH = 0, maxV = 0; for (i = 0; i < componentsCount; i++) { @@ -1647,4 +1657,5 @@ export class f5stego { return byteout.slice(0, outpos); } + } diff --git a/src/main.ts b/src/main.ts index 74cf1c0..6c17b6f 100644 --- a/src/main.ts +++ b/src/main.ts @@ -401,7 +401,7 @@ class CommandProcessor { const convertToLocalEmbed = (wef: WorkerEmbeddedFile) => { let ret: EmbeddedFileWithPreview; - ret = {...wef} as any; + ret = { ...wef } as any; // handles bigger files where data is represented as a {url, header} object if (typeof wef.data == "object") { if ('url' in wef.data) { @@ -754,11 +754,15 @@ const startup = async (is4chanX = true) => { if (!el && e.classList.contains('postContainer')) el = [e]; if (el) { - appState.update(v => { - v.processing += el.length; - return v; - }); - [...el].map(el => processPost(el as any)); + for (const e of el) { + if (processed.has(e.id)) + continue; + appState.update(v => { + v.processing += 1; + return v; + }); + processPost(e as HTMLDivElement); + } } }); }); @@ -916,12 +920,14 @@ document.addEventListener('ThreadUpdate', (async (e: CustomEvent) => { const postContainer = document.getElementById("pc" + post.substring(post.indexOf(".") + 1)) as HTMLDivElement; const fn = qp.getFilename(postContainer); if (fn) { - appState.update(v => { - v.processing++; - return v; - }); + if (!processed.has(postContainer.id)) { + appState.update(v => { + v.processing++; + return v; + }); - processPost(postContainer); + processPost(postContainer); + } } } }));

WF{0!ziQCgL1rmcn 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 &WxKlVK<7y$ir(MuDl^bI~;^y8YS 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