UNPKG

image-blob-reduce

Version:

High quality image resizing for blobs in browsers (`pica` wrapper with some sugar)

727 lines (725 loc) 80.7 kB
/*! image-blob-reduce https://github.com/nodeca/image-blob-reduce */ //#region \0rolldown/runtime.js var e = Object.defineProperty, t = (t, n) => { let r = {}; for (var i in t) e(r, i, { get: t[i], enumerable: !0 }); return n || e(r, Symbol.toStringTag, { value: "Module" }), r; }, n = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; function r(e) { let t = e.replace(/[\r\n=]/g, ""), r = t.length, i = new Uint8Array(r * 3 >> 2), a = 0, o = 0; for (let e = 0; e < r; e++) e % 4 == 0 && e && (i[o++] = a >> 16 & 255, i[o++] = a >> 8 & 255, i[o++] = a & 255), a = a << 6 | n.indexOf(t.charAt(e)); let s = r % 4 * 6; return s === 0 ? (i[o++] = a >> 16 & 255, i[o++] = a >> 8 & 255, i[o++] = a & 255) : s === 18 ? (i[o++] = a >> 10 & 255, i[o++] = a >> 2 & 255) : s === 12 && (i[o++] = a >> 4 & 255), i; } var i; function a() { if (i !== void 0 || (i = !1, typeof WebAssembly > "u")) return i; try { let e = new Uint8Array([ 0, 97, 115, 109, 1, 0, 0, 0, 1, 6, 1, 96, 1, 127, 1, 127, 3, 2, 1, 0, 5, 3, 1, 0, 1, 7, 8, 1, 4, 116, 101, 115, 116, 0, 0, 10, 16, 1, 14, 0, 32, 0, 65, 1, 54, 2, 0, 32, 0, 40, 2, 0, 11 ]), t = new WebAssembly.Module(e); return new WebAssembly.Instance(t, {}).exports.test(4) !== 0 && (i = !0), i; } catch (e) {} return i; } var o = { js: !0, wasm: !0 }, s = class { constructor(e) { let t = Object.assign({}, o, e || {}); if (this.options = t, this.__cache = {}, this.__init_promise = null, this.__modules = t.modules || {}, this.__memory = null, this.__wasm = {}, this.__isLE = new Uint32Array(new Uint8Array([ 1, 0, 0, 0 ]).buffer)[0] === 1, !this.options.js && !this.options.wasm) throw Error("mathlib: at least \"js\" or \"wasm\" should be enabled"); } has_wasm() { return a(); } use(e) { return this.__modules[e.name] = e, this.options.wasm && this.has_wasm() && e.wasm_fn ? this[e.name] = e.wasm_fn : this[e.name] = e.fn, this; } init() { return this.__init_promise ? this.__init_promise : !this.options.js && this.options.wasm && !this.has_wasm() ? Promise.reject(/* @__PURE__ */ Error("mathlib: only \"wasm\" was enabled, but it's not supported")) : (this.__init_promise = Promise.all(Object.keys(this.__modules).map((e) => { let t = this.__modules[e]; return !this.options.wasm || !this.has_wasm() || !t.wasm_fn || this.__wasm[e] ? null : WebAssembly.compile(r(t.wasm_src)).then((t) => { this.__wasm[e] = t; }); })).then(() => this), this.__init_promise); } __reallocate(e) { if (!this.__memory) return this.__memory = new WebAssembly.Memory({ initial: Math.ceil(e / (64 * 1024)) }), this.__memory; let t = this.__memory.buffer.byteLength; return t < e && this.__memory.grow(Math.ceil((e - t) / (64 * 1024))), this.__memory; } __instance(e, t, n) { if (t && this.__reallocate(t), !this.__wasm[e]) { let t = this.__modules[e]; this.__wasm[e] = new WebAssembly.Module(r(t.wasm_src)); } if (!this.__cache[e]) { let t = { memoryBase: 0, memory: this.__memory, tableBase: 0, table: new WebAssembly.Table({ initial: 0, element: "anyfunc" }) }; this.__cache[e] = new WebAssembly.Instance(this.__wasm[e], { env: Object.assign(t, n || {}) }); } return this.__cache[e]; } __align(e, t) { t = t || 8; let n = e % t; return e + (n ? t - n : 0); } }; function c(e) { e < .5 && (e = .5); let t = Math.exp(.726 * .726) / e, n = Math.exp(-t), r = Math.exp(-2 * t), i = (1 - n) * (1 - n) / (1 + 2 * t * n - r), a = i, o = i * (t - 1) * n, s = i * (t + 1) * n, c = -i * r, l = 2 * n, u = -r, d = (a + o) / (1 - l - u), f = (s + c) / (1 - l - u); return new Float32Array([ a, o, s, c, l, u, d, f ]); } function l(e, t, n, r, i, a) { let o, s, c, l, u, d, f, p, m, h, g, _, v, y; for (m = 0; m < a; m++) { for (d = m * i, f = m, p = 0, o = e[d], u = o * r[6], l = u, g = r[0], _ = r[1], v = r[4], y = r[5], h = 0; h < i; h++) s = e[d], c = s * g + o * _ + l * v + u * y, u = l, l = c, o = s, n[p] = l, p++, d++; for (d--, p--, f += a * (i - 1), o = e[d], u = o * r[7], l = u, s = o, g = r[2], _ = r[3], h = i - 1; h >= 0; h--) c = s * g + o * _ + l * v + u * y, u = l, l = c, o = s, s = e[d], t[f] = n[p] + l, d--, p--, f -= a; } } function u(e, t, n, r) { if (!r) return; let i = new Uint16Array(e.length), a = new Float32Array(Math.max(t, n)), o = c(r); l(e, i, a, o, t, n, r), l(i, e, a, o, n, t, r); } function d(e, t, n) { let r = t * n, i = new Uint16Array(r), a, o, s, c; for (let t = 0; t < r; t++) a = e[4 * t], o = e[4 * t + 1], s = e[4 * t + 2], c = a >= o && a >= s ? a : o >= s && o >= a ? o : s, i[t] = c << 8; return i; } function f(e, t, n, r, i, a) { let o, s, c, l, f; if (r === 0 || i < .5) return; i > 2 && (i = 2); let p = d(e, t, n), m = new Uint16Array(p); u(m, t, n, i); let h = r / 100 * 4096 + .5 | 0, g = a << 8, _ = t * n; for (let t = 0; t < _; t++) o = p[t], l = o - m[t], Math.abs(l) >= g && (s = o + (h * l + 2048 >> 12), s = s > 65280 ? 65280 : s, s = s < 0 ? 0 : s, o = o === 0 ? 1 : o, c = (s << 12) / o | 0, f = t * 4, e[f] = e[f] * c + 2048 >> 12, e[f + 1] = e[f + 1] * c + 2048 >> 12, e[f + 2] = e[f + 2] * c + 2048 >> 12); } function p(e, t, n, r, i, a) { if (r === 0 || i < .5) return; i > 2 && (i = 2); let o = t * n, s = o * 4, c = o * 2, l = o * 2, u = Math.max(t, n) * 4, d = s, f = d + c, p = f + l, m = p + l, h = m + u, g = this.__instance("unsharp_mask", s + c + l * 2 + u + 32, { exp: Math.exp }), _ = new Uint32Array(e.buffer); new Uint32Array(this.__memory.buffer).set(_); let v = g.exports.hsv_v16 || g.exports._hsv_v16; if (!v) throw Error("WASM hsv_v16 function is not available"); if (v(0, d, t, n), v = g.exports.blurMono16 || g.exports._blurMono16, !v) throw Error("WASM blurMono16 function is not available"); if (v(d, f, p, m, h, t, n, i), v = g.exports.unsharp || g.exports._unsharp, !v) throw Error("WASM unsharp function is not available"); v(0, 0, d, f, t, n, r, a), _.set(new Uint32Array(this.__memory.buffer, 0, o)); } var m = { name: "unsharp_mask", fn: f, wasm_fn: p, wasm_src: "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" }, h = { filter: { box: { win: .5, fn(e) { return e < 0 && (e = -e), +(e < .5); } }, hamming: { win: 1, fn(e) { if (e < 0 && (e = -e), e >= 1) return 0; if (e < 1.1920929e-7) return 1; let t = e * Math.PI; return Math.sin(t) / t * (.54 + .46 * Math.cos(t / 1)); } }, lanczos2: { win: 2, fn(e) { if (e < 0 && (e = -e), e >= 2) return 0; if (e < 1.1920929e-7) return 1; let t = e * Math.PI; return Math.sin(t) / t * Math.sin(t / 2) / (t / 2); } }, lanczos3: { win: 3, fn(e) { if (e < 0 && (e = -e), e >= 3) return 0; if (e < 1.1920929e-7) return 1; let t = e * Math.PI; return Math.sin(t) / t * Math.sin(t / 3) / (t / 3); } }, mks2013: { win: 2.5, fn(e) { return e < 0 && (e = -e), e >= 2.5 ? 0 : e >= 1.5 ? -.125 * (e - 2.5) * (e - 2.5) : e >= .5 ? .25 * (4 * e * e - 11 * e + 7) : 1.0625 - 1.75 * e * e; } } } }, g = 14; function _(e) { return Math.round(e * ((1 << g) - 1)); } function v(e, t, n, r, i) { let a = h.filter[e].fn, o = 1 / r, s = Math.min(1, r), c = h.filter[e].win / s, l, u, d, f, p, m, g, v, y, b, x, S, C, w, T, E, D, ee = Math.floor((c + 1) * 2), O = new Int16Array((ee + 2) * n), k = 0, A = !O.subarray || !O.set; for (l = 0; l < n; l++) { for (u = (l + .5) * o + i, d = Math.max(0, Math.floor(u - c)), f = Math.min(t - 1, Math.ceil(u + c)), p = f - d + 1, m = new Float32Array(p), g = new Int16Array(p), v = 0, y = d, b = 0; y <= f; y++, b++) x = a((y + .5 - u) * s), v += x, m[b] = x; for (S = 0, b = 0; b < m.length; b++) C = m[b] / v, S += C, g[b] = _(C); for (g[n >> 1] += _(1 - S), w = 0; w < g.length && g[w] === 0;) w++; if (w < g.length) { for (T = g.length - 1; T > 0 && g[T] === 0;) T--; if (E = d + w, D = T - w + 1, O[k++] = E, O[k++] = D, !A) O.set(g.subarray(w, T + 1), k), k += D; else for (b = w; b <= T; b++) O[k++] = g[b]; } else O[k++] = 0, O[k++] = 0; } return O; } function y(e) { return e < 0 ? 0 : e > 255 ? 255 : e; } function b(e) { return e >= 0 ? e : 0; } function x(e, t, n, r, i, a) { let o, s, c, l, u, d, f, p, m, h, g, _ = 0, v = 0; for (m = 0; m < r; m++) { for (u = 0, h = 0; h < i; h++) { for (d = a[u++], f = a[u++], p = _ + d * 4 | 0, o = s = c = l = 0; f > 0; f--) g = a[u++], l = l + g * e[p + 3] | 0, c = c + g * e[p + 2] | 0, s = s + g * e[p + 1] | 0, o = o + g * e[p] | 0, p = p + 4 | 0; t[v + 3] = b(l >> 7), t[v + 2] = b(c >> 7), t[v + 1] = b(s >> 7), t[v] = b(o >> 7), v = v + r * 4 | 0; } v = (m + 1) * 4 | 0, _ = (m + 1) * n * 4 | 0; } } function S(e, t, n, r, i, a) { let o, s, c, l, u, d, f, p, m, h, g, _ = 0, v = 0; for (m = 0; m < r; m++) { for (u = 0, h = 0; h < i; h++) { for (d = a[u++], f = a[u++], p = _ + d * 4 | 0, o = s = c = l = 0; f > 0; f--) g = a[u++], l = l + g * e[p + 3] | 0, c = c + g * e[p + 2] | 0, s = s + g * e[p + 1] | 0, o = o + g * e[p] | 0, p = p + 4 | 0; o >>= 7, s >>= 7, c >>= 7, l >>= 7, t[v + 3] = y(l + 8192 >> 14), t[v + 2] = y(c + 8192 >> 14), t[v + 1] = y(s + 8192 >> 14), t[v] = y(o + 8192 >> 14), v = v + r * 4 | 0; } v = (m + 1) * 4 | 0, _ = (m + 1) * n * 4 | 0; } } function C(e, t, n, r, i, a) { let o, s, c, l, u, d, f, p, m, h, g, _, v = 0, y = 0; for (h = 0; h < r; h++) { for (d = 0, g = 0; g < i; g++) { for (f = a[d++], p = a[d++], m = v + f * 4 | 0, o = s = c = l = 0; p > 0; p--) _ = a[d++], u = e[m + 3], l = l + _ * u | 0, c = c + _ * e[m + 2] * u | 0, s = s + _ * e[m + 1] * u | 0, o = o + _ * e[m] * u | 0, m = m + 4 | 0; c = c / 255 | 0, s = s / 255 | 0, o = o / 255 | 0, t[y + 3] = b(l >> 7), t[y + 2] = b(c >> 7), t[y + 1] = b(s >> 7), t[y] = b(o >> 7), y = y + r * 4 | 0; } y = (h + 1) * 4 | 0, v = (h + 1) * n * 4 | 0; } } function w(e, t, n, r, i, a) { let o, s, c, l, u, d, f, p, m, h, g, _ = 0, v = 0; for (m = 0; m < r; m++) { for (u = 0, h = 0; h < i; h++) { for (d = a[u++], f = a[u++], p = _ + d * 4 | 0, o = s = c = l = 0; f > 0; f--) g = a[u++], l = l + g * e[p + 3] | 0, c = c + g * e[p + 2] | 0, s = s + g * e[p + 1] | 0, o = o + g * e[p] | 0, p = p + 4 | 0; o >>= 7, s >>= 7, c >>= 7, l >>= 7, l = y(l + 8192 >> 14), l > 0 && (o = o * 255 / l | 0, s = s * 255 / l | 0, c = c * 255 / l | 0), t[v + 3] = l, t[v + 2] = y(c + 8192 >> 14), t[v + 1] = y(s + 8192 >> 14), t[v] = y(o + 8192 >> 14), v = v + r * 4 | 0; } v = (m + 1) * 4 | 0, _ = (m + 1) * n * 4 | 0; } } function T(e, t, n) { let r = 3, i = t * n * 4 | 0; for (; r < i;) { if (e[r] !== 255) return !0; r = r + 4 | 0; } return !1; } function E(e, t, n) { let r = 3, i = t * n * 4 | 0; for (; r < i;) e[r] = 255, r = r + 4 | 0; } function D(e) { let t = e.src, n = e.width, r = e.height, i = e.toWidth, a = e.toHeight, o = e.scaleX || e.toWidth / e.width, s = e.scaleY || e.toHeight / e.height, c = e.offsetX || 0, l = e.offsetY || 0, u = e.dest || new Uint8Array(i * a * 4), d = e.filter === void 0 ? "mks2013" : e.filter, f = v(d, n, i, o, c), p = v(d, r, a, s, l), m = new Uint16Array(i * r * 4); return T(t, n, r) ? (C(t, m, n, r, i, f), w(m, u, r, i, a, p)) : (x(t, m, n, r, i, f), S(m, u, r, i, a, p), E(u, i, a)), u; } function ee(e, t, n) { let r = 3, i = t * n * 4 | 0; for (; r < i;) { if (e[r] !== 255) return !0; r = r + 4 | 0; } return !1; } function O(e, t, n) { let r = 3, i = t * n * 4 | 0; for (; r < i;) e[r] = 255, r = r + 4 | 0; } function k(e) { return new Uint8Array(e.buffer, 0, e.byteLength); } var A = !0; try { A = new Uint32Array(new Uint8Array([ 1, 0, 0, 0 ]).buffer)[0] === 1; } catch (e) {} function te(e, t, n) { if (A) { t.set(k(e), n); return; } for (let r = n, i = 0; i < e.length; i++) { let n = e[i]; t[r++] = n & 255, t[r++] = n >> 8 & 255; } } function ne(e) { let t = e.src, n = e.width, r = e.height, i = e.toWidth, a = e.toHeight, o = e.scaleX || e.toWidth / e.width, s = e.scaleY || e.toHeight / e.height, c = e.offsetX || 0, l = e.offsetY || 0, u = e.dest || new Uint8Array(i * a * 4), d = e.filter === void 0 ? "mks2013" : e.filter, f = v(d, n, i, o, c), p = v(d, r, a, s, l), m = Math.max(t.byteLength, u.byteLength), h = this.__align(0 + m), g = r * i * 4 * 2, _ = this.__align(h + g), y = this.__align(_ + f.byteLength), b = y + p.byteLength, x = this.__instance("resize", b), S = new Uint8Array(this.__memory.buffer), C = new Uint32Array(this.__memory.buffer), w = new Uint32Array(t.buffer); C.set(w), te(f, S, _), te(p, S, y); let T = x.exports.convolveHV || x.exports._convolveHV; if (!T) throw Error("WASM resize function is not available"); return ee(t, n, r) ? T(_, y, h, n, r, i, a, 1) : (T(_, y, h, n, r, i, a, 0), O(u, i, a)), new Uint32Array(u.buffer).set(new Uint32Array(this.__memory.buffer, 0, a * i)), u; } var re = { name: "resize", fn: D, wasm_fn: ne, wasm_src: "AGFzbQEAAAAADAZkeWxpbmsAAAAAAAEYA2AGf39/f39/AGAAAGAIf39/f39/f38AAg8BA2VudgZtZW1vcnkCAAADBwYBAAAAAAIGBgF/AEEACweUAQgRX193YXNtX2NhbGxfY3RvcnMAAAtjb252b2x2ZUhvcgABDGNvbnZvbHZlVmVydAACEmNvbnZvbHZlSG9yV2l0aFByZQADE2NvbnZvbHZlVmVydFdpdGhQcmUABApjb252b2x2ZUhWAAUMX19kc29faGFuZGxlAwAYX193YXNtX2FwcGx5X2RhdGFfcmVsb2NzAAAKyA4GAwABC4wDARB/AkAgA0UNACAERQ0AIANBAnQhFQNAQQAhE0EAIQsDQCALQQJqIQcCfyALQQF0IAVqIgYuAQIiC0UEQEEAIQhBACEGQQAhCUEAIQogBwwBCyASIAYuAQBqIQhBACEJQQAhCiALIRRBACEOIAchBkEAIQ8DQCAFIAZBAXRqLgEAIhAgACAIQQJ0aigCACIRQRh2bCAPaiEPIBFB/wFxIBBsIAlqIQkgEUEQdkH/AXEgEGwgDmohDiARQQh2Qf8BcSAQbCAKaiEKIAhBAWohCCAGQQFqIQYgFEEBayIUDQALIAlBB3UhCCAKQQd1IQYgDkEHdSEJIA9BB3UhCiAHIAtqCyELIAEgDEEBdCIHaiAIQQAgCEEAShs7AQAgASAHQQJyaiAGQQAgBkEAShs7AQAgASAHQQRyaiAJQQAgCUEAShs7AQAgASAHQQZyaiAKQQAgCkEAShs7AQAgDCAVaiEMIBNBAWoiEyAERw0ACyANQQFqIg0gAmwhEiANQQJ0IQwgAyANRw0ACwsL2gMBD38CQCADRQ0AIARFDQAgAkECdCEUA0AgCyEMQQAhE0EAIQIDQCACQQJqIQYCfyACQQF0IAVqIgcuAQIiAkUEQEEAIQhBACEHQQAhCkEAIQkgBgwBCyAHLgEAQQJ0IBJqIQhBACEJIAIhCkEAIQ0gBiEHQQAhDkEAIQ8DQCAFIAdBAXRqLgEAIhAgACAIQQF0IhFqLwEAbCAJaiEJIAAgEUEGcmovAQAgEGwgDmohDiAAIBFBBHJqLwEAIBBsIA9qIQ8gACARQQJyai8BACAQbCANaiENIAhBBGohCCAHQQFqIQcgCkEBayIKDQALIAlBB3UhCCANQQd1IQcgDkEHdSEKIA9BB3UhCSACIAZqCyECIAEgDEECdGogB0GAQGtBDnUiBkH/ASAGQf8BSBsiBkEAIAZBAEobQQh0QYD+A3EgCUGAQGtBDnUiBkH/ASAGQf8BSBsiBkEAIAZBAEobQRB0QYCA/AdxIApBgEBrQQ51IgZB/wEgBkH/AUgbIgZBACAGQQBKG0EYdHJyIAhBgEBrQQ51IgZB/wEgBkH/AUgbIgZBACAGQQBKG3I2AgAgAyAMaiEMIBNBAWoiEyAERw0ACyAUIAtBAWoiC2whEiADIAtHDQALCwuSAwEQfwJAIANFDQAgBEUNACADQQJ0IRUDQEEAIRNBACEGA0AgBkECaiEIAn8gBkEBdCAFaiIGLgECIgdFBEBBACEJQQAhDEEAIQ1BACEOIAgMAQsgEiAGLgEAaiEJQQAhDkEAIQ1BACEMIAchFEEAIQ8gCCEGA0AgBSAGQQF0ai4BACAAIAlBAnRqKAIAIhBBGHZsIhEgD2ohDyARIBBBEHZB/wFxbCAMaiEMIBEgEEEIdkH/AXFsIA1qIQ0gESAQQf8BcWwgDmohDiAJQQFqIQkgBkEBaiEGIBRBAWsiFA0ACyAPQQd1IQkgByAIagshBiABIApBAXQiCGogDkH/AW1BB3UiB0EAIAdBAEobOwEAIAEgCEECcmogDUH/AW1BB3UiB0EAIAdBAEobOwEAIAEgCEEEcmogDEH/AW1BB3UiB0EAIAdBAEobOwEAIAEgCEEGcmogCUEAIAlBAEobOwEAIAogFWohCiATQQFqIhMgBEcNAAsgC0EBaiILIAJsIRIgC0ECdCEKIAMgC0cNAAsLC4IEAQ9/AkAgA0UNACAERQ0AIAJBAnQhFANAIAshDEEAIRJBACEHA0AgB0ECaiEKAn8gB0EBdCAFaiICLgECIhNFBEBBACEIQQAhCUEAIQYgCiEHQQAMAQsgAi4BAEECdCARaiEJQQAhByATIQJBACENIAohBkEAIQ5BACEPA0AgBSAGQQF0ai4BACIIIAAgCUEBdCIQai8BAGwgB2ohByAAIBBBBnJqLwEAIAhsIA5qIQ4gACAQQQRyai8BACAIbCAPaiEPIAAgEEECcmovAQAgCGwgDWohDSAJQQRqIQkgBkEBaiEGIAJBAWsiAg0ACyAHQQd1IQggDUEHdSEJIA9BB3UhBiAKIBNqIQcgDkEHdQtBgEBrQQ51IgJB/wEgAkH/AUgbIgJBACACQQBKGyIKQf8BcQRAIAlB/wFsIAJtIQkgCEH/AWwgAm0hCCAGQf8BbCACbSEGCyABIAxBAnRqIAlBgEBrQQ51IgJB/wEgAkH/AUgbIgJBACACQQBKG0EIdEGA/gNxIAZBgEBrQQ51IgJB/wEgAkH/AUgbIgJBACACQQBKG0EQdEGAgPwHcSAKQRh0ciAIQYBAa0EOdSICQf8BIAJB/wFIGyICQQAgAkEAShtycjYCACADIAxqIQwgEkEBaiISIARHDQALIBQgC0EBaiILbCERIAMgC0cNAAsLC0AAIAcEQEEAIAIgAyAEIAUgABADIAJBACAEIAUgBiABEAQPC0EAIAIgAyAEIAUgABABIAJBACAEIAUgBiABEAIL" }, ie = class extends s { constructor(e) { let t = e || [], n = { js: t.indexOf("js") >= 0, wasm: t.indexOf("wasm") >= 0 }; super(n), this.features = { js: n.js, wasm: n.wasm && this.has_wasm() }, this.use(m), this.use(re); } resizeAndUnsharp(e) { let t = this.resize(e); return e.unsharpAmount && this.unsharp_mask(t, e.toWidth, e.toHeight, e.unsharpAmount, e.unsharpRadius, e.unsharpThreshold), t; } }; function j(e) { "@babel/helpers - typeof"; return j = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) { return typeof e; } : function(e) { return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; }, j(e); } function ae(e, t) { if (j(e) != "object" || !e) return e; var n = e[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e, t || "default"); if (j(r) != "object") return r; throw TypeError("@@toPrimitive must return a primitive value."); } return (t === "string" ? String : Number)(e); } function oe(e) { var t = ae(e, "string"); return j(t) == "symbol" ? t : t + ""; } function M(e, t, n) { return (t = oe(t)) in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e; } function se(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter(function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable; })), n.push.apply(n, r); } return n; } function N(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t] == null ? {} : arguments[t]; t % 2 ? se(Object(n), !0).forEach(function(t) { M(e, t, n[t]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : se(Object(n)).forEach(function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)); }); } return e; } var ce = 100, le = class { constructor(e, t) { M(this, "create", void 0), M(this, "available", void 0), M(this, "acquired", void 0), M(this, "lastId", void 0), M(this, "timeoutId", void 0), M(this, "idle", void 0), this.create = e, this.available = [], this.acquired = {}, this.lastId = 1, this.timeoutId = 0, this.idle = t || 2e3; } acquire() { let e; return e = this.available.length === 0 ? N(N({}, this.create()), {}, { id: this.lastId++, lastUsed: 0 }) : this.available.pop(), this.acquired[e.id] = e, { value: e.value, release: () => this.release(e) }; } release(e) { delete this.acquired[e.id], e.lastUsed = Date.now(), this.available.push(e), this.timeoutId === 0 && (this.timeoutId = setTimeout(() => this.gc(), ce)); } gc() { let e = Date.now(); this.available = this.available.filter((t) => e - t.lastUsed > this.idle ? (t.destroy(), !1) : !0), this.available.length === 0 ? this.timeoutId = 0 : this.timeoutId = setTimeout(() => this.gc(), ce); } }; function P(e) { var t, n; return (t = e == null || (n = e.constructor) == null ? void 0 : n.name) == null ? "" : t; } function ue(e) { let t = P(e); return t === "HTMLCanvasElement" || t === "OffscreenCanvas" || t === "Canvas" || t === "CanvasElement"; } function F(e) { return P(e) === "HTMLImageElement"; } function de(e) { return P(e) === "ImageBitmap"; } function fe(e) { let t = 0, n = []; function r() { if (t < e && n.length) { var r; t++, (r = n.shift()) == null || r(); } } return function(e) { return new Promise((i, a) => { n.push(() => { e().then((e) => { i(e), t--, r(); }, (e) => { a(e), t--, r(); }); }), r(); }); }; } function pe(e) { switch (e) { case 0: return "pixelated"; case 1: return "low"; case 2: return "medium"; } return "high"; } var I = [ "box", "hamming", "lanczos2", "lanczos3" ]; function me(e) { return I[e]; } function he(e) { return I.indexOf(e) >= 0; } function ge(e) { let t = I.indexOf(e); return t >= 0 ? t : void 0; } var _e = 2, ve = 3; function ye(e, t, n, r, i) { let a = n / e, o = r / t, s = (2 * ve + _e + 1) / i; if (s > .5) return [[n, r]]; let c = Math.ceil(Math.log(Math.min(a, o)) / Math.log(s)); if (c <= 1) return [[n, r]]; let l = []; for (let i = 0; i < c; i++) { let a = Math.round((e ** (c - i - 1) * n ** +(i + 1)) ** (1 / c)), o = Math.round((t ** (c - i - 1) * r ** +(i + 1)) ** (1 / c)); l.push([a, o]); } return l; } var be = 1e-5; function L(e) { let t = Math.round(e); return Math.abs(e - t) < be ? t : Math.floor(e); } function xe(e) { let t = Math.round(e); return Math.abs(e - t) < be ? t : Math.ceil(e); } function Se(e) { let t = e.toWidth / e.width, n = e.toHeight / e.height, r = L(e.srcTileSize * t) - 2 * e.destTileBorder, i = L(e.srcTileSize * n) - 2 * e.destTileBorder; if (r < 1 || i < 1) throw Error("Internal error in pica: target tile width/height is too small."); let a, o, s, c, l, u, d = [], f; for (c = 0; c < e.toHeight; c += i) for (s = 0; s < e.toWidth; s += r) a = s - e.destTileBorder, a < 0 && (a = 0), l = s + r + e.destTileBorder - a, a + l >= e.toWidth && (l = e.toWidth - a), o = c - e.destTileBorder, o < 0 && (o = 0), u = c + i + e.destTileBorder - o, o + u >= e.toHeight && (u = e.toHeight - o), f = { toX: a, toY: o, toWidth: l, toHeight: u, toInnerX: s, toInnerY: c, toInnerWidth: r, toInnerHeight: i, offsetX: a / t - L(a / t), offsetY: o / n - L(o / n), scaleX: t, scaleY: n, x: L(a / t), y: L(o / n), width: xe(l / t), height: xe(u / n) }, d.push(f); return d; } var R = "/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAAAAAD/4AAQskZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/wAALCAACAAMBAREA/8QAFAABAAAAAAAAAAAAAAAAAAAACf/EABsQAAMBAQADAAAAAAAAAAAAAAECAwQFABEx/9oACAEBAAA/AC06fW6va0ps7PT179E88MiV02arrCEkjGQZiSEnKc5ovxURVHoADz//2Q==", z = { canvas: !1, offscreen_canvas: !1, may_be_worker: !1, create_image_bitmap: !1, safari_put_image_data_fix: !1, bug_canvas_orientation_region: !0, bug_image_bitmap_orientation_region: !0, cib_resize: !1 }, Ce = !1, B = null; function V() { if (typeof document > "u" || !document.createElement) return !1; try { let e = document.createElement("canvas"); e.width = 2, e.height = 1; let t = e.getContext("2d"), n = t.createImageData(2, 1); return n.data[0] = 12, n.data[1] = 23, n.data[2] = 34, n.data[3] = 255, n.data[4] = 45, n.data[5] = 56, n.data[6] = 67, n.data[7] = 255, t.putImageData(n, 0, 0), n = t.getImageData(0, 0, 2, 1), n.data[0] === 12 && n.data[1] === 23 && n.data[2] === 34 && n.data[3] === 255 && n.data[4] === 45 && n.data[5] === 56 && n.data[6] === 67 && n.data[7] === 255; } catch (e) { return !1; } } function H() { if (typeof OffscreenCanvas > "u") return !1; try { let e = new OffscreenCanvas(2, 1).getContext("2d"), t = e.createImageData(2, 1); return t.data[0] = 12, t.data[1] = 23, t.data[2] = 34, t.data[3] = 255, t.data[4] = 45, t.data[5] = 56, t.data[6] = 67, t.data[7] = 255, e.putImageData(t, 0, 0), t = e.getImageData(0, 0, 2, 1), t.data[0] === 12 && t.data[1] === 23 && t.data[2] === 34 && t.data[3] === 255 && t.data[4] === 45 && t.data[5] === 56 && t.data[6] === 67 && t.data[7] === 255; } catch (e) { return !1; } } function U() { return typeof createImageBitmap < "u"; } function we() { return typeof Worker < "u" && typeof URL < "u" && !!URL.createObjectURL; } function Te() { try { return !!(typeof navigator < "u" && navigator.userAgent && navigator.userAgent.indexOf("Safari") >= 0 && navigator.userAgent.indexOf("Chrome") < 0); } catch (e) { return !1; } } function Ee() { return Promise.resolve().then(() => { if (H() && U() && typeof Blob < "u" && typeof atob < "u") { let e = atob(R), t = new Uint8Array(e.length); for (let n = 0; n < e.length; n++) t[n] = e.charCodeAt(n); return createImageBitmap(new Blob([t], { type: "image/jpeg" })).then((e) => { let t = new OffscreenCanvas(1, 1); try { let n = t.getContext("2d"); return n.drawImage(e, 1, 1, 1, 1, 0, 0, 1, 1), n.getImageData(0, 0, 1, 1).data[0] < 240; } finally { e.close(); } }); } return V() && typeof Image < "u" ? new Promise((e) => { let t = new Image(); t.onload = () => { try { let n = document.createElement("canvas"); n.width = 1, n.height = 1; let r = n.getContext("2d"); r.drawImage(t, 1, 1, 1, 1, 0, 0, 1, 1), e(r.getImageData(0, 0, 1, 1).data[0] < 240); } catch (t) { e(!0); } }, t.onerror = () => e(!0), t.src = `data:image/jpeg;base64,${R}`; }) : !0; }).catch(() => !0); } function De() { return Promise.resolve().then(() => { if (!z.create_image_bitmap && !U() || typeof Blob > "u" || typeof atob > "u") return !0; let e = H(), t = V(); if (!e && !t) return !0; let n = atob(R), r = new Uint8Array(n.length); for (let e = 0; e < n.length; e++) r[e] = n.charCodeAt(e); return createImageBitmap(new Blob([r], { type: "image/jpeg" })).then((t) => createImageBitmap(t, 1, 1, 1, 1).then((n) => { let r; e ? r = new OffscreenCanvas(1, 1) : (r = document.createElement("canvas"), r.width = 1, r.height = 1); try { let e = r.getContext("2d"); return e.drawImage(n, 0, 0), n.width !== 1 || n.height !== 1 || e.getImageData(0, 0, 1, 1).data[0] < 240; } finally { t.close(), n.close(); } }, () => (t.close(), !0))); }).catch(() => !0); } function Oe() { return Promise.resolve().then(() => { if (!U()) return !1; let e; if (z.canvas || V()) e = document.createElement("canvas"), e.width = 20, e.height = 20; else if (z.offscreen_canvas || H()) e = new OffscreenCanvas(20, 20), e.getContext("2d").clearRect(0, 0, 20, 20); else return !1; return createImageBitmap(e, 0, 0, 20, 20, { resizeWidth: 5, resizeHeight: 5, resizeQuality: "high" }).then((t) => { let n = t.width === 5 && !!t.close; return t.close && t.close(), e = null, n; }); }).catch(() => !1); } function ke() { if (Ce) return Promise.resolve(Object.assign({}, z)); if (B) return B.then(() => Object.assign({}, z)); z.canvas = V(), z.offscreen_canvas = H(), z.may_be_worker = we(), z.create_image_bitmap = U(), z.safari_put_image_data_fix = Te(); let e = Ee().then((e) => { z.bug_canvas_orientation_region = e; }).catch(() => {}), t = De().then((e) => { z.bug_image_bitmap_orientation_region = e; }).catch(() => {}), n = Oe().then((e) => { z.cib_resize = e; }).catch(() => {}); return B = Promise.all([ e, t, n ]).then(() => (Ce = !0, B = null, Object.assign({}, z)), (e) => { throw B = null, e; }), B; } function Ae(e, t, n, r, i, a, o) { try { var s = e[a](o), c = s.value; } catch (e) { n(e); return; } s.done ? t(c) : Promise.resolve(c).then(r, i); } function W(e) { return function() { var t = this, n = arguments; return new Promise(function(r, i) { var a = e.apply(t, n); function o(e) { Ae(a, r, i, o, s, "next", e); } function s(e) { Ae(a, r, i, o, s, "throw", e); } o(void 0); }); }; } var je = "/*!\n\npica\nhttps://github.com/nodeca/pica\n\n*/\n!function(){var A;function t(A){const t=A.replace(/[\\r\\n=]/g,\"\"),e=t.length,n=new Uint8Array(3*e>>2);let a=0,i=0;for(let s=0;s<e;s++)s%4==0&&s&&(n[i++]=a>>16&255,n[i++]=a>>8&255,n[i++]=255&a),a=a<<6|\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\".indexOf(t.charAt(s));const r=e%4*6;return 0===r?(n[i++]=a>>16&255,n[i++]=a>>8&255,n[i++]=255&a):18===r?(n[i++]=a>>10&255,n[i++]=a>>2&255):12===r&&(n[i++]=a>>4&255),n}var e={js:!0,wasm:!0},n=class{constructor(A){const t=Object.assign({},e,A||{});if(this.options=t,this.__cache={},this.__init_promise=null,this.__modules=t.modules||{},this.__memory=null,this.__wasm={},this.__isLE=1===new Uint32Array(new Uint8Array([1,0,0,0]).buffer)[0],!this.options.js&&!this.options.wasm)throw new Error('mathlib: at least \"js\" or \"wasm\" should be enabled')}has_wasm(){return function(){if(void 0!==A)return A;if(A=!1,\"undefined\"==typeof WebAssembly)return A;try{const t=new Uint8Array([0,97,115,109,1,0,0,0,1,6,1,96,1,127,1,127,3,2,1,0,5,3,1,0,1,7,8,1,4,116,101,115,116,0,0,10,16,1,14,0,32,0,65,1,54,2,0,32,0,40,2,0,11]),e=new WebAssembly.Module(t);return 0!==new WebAssembly.Instance(e,{}).exports.test(4)&&(A=!0),A}catch(t){}return A}()}use(A){return this.__modules[A.name]=A,this.options.wasm&&this.has_wasm()&&A.wasm_fn?this[A.name]=A.wasm_fn:this[A.name]=A.fn,this}init(){return this.__init_promise?this.__init_promise:this.options.js||!this.options.wasm||this.has_wasm()?(this.__init_promise=Promise.all(Object.keys(this.__modules).map(A=>{const e=this.__modules[A];return this.options.wasm&&this.has_wasm()&&e.wasm_fn?this.__wasm[A]?null:WebAssembly.compile(t(e.wasm_src)).then(t=>{this.__wasm[A]=t}):null})).then(()=>this),this.__init_promise):Promise.reject(new Error('mathlib: only \"wasm\" was enabled, but it\\'s not supported'))}__reallocate(A){if(!this.__memory)return this.__memory=new WebAssembly.Memory({initial:Math.ceil(A/65536)}),this.__memory;const t=this.__memory.buffer.byteLength;return t<A&&this.__memory.grow(Math.ceil((A-t)/65536)),this.__memory}__instance(A,e,n){if(e&&this.__reallocate(e),!this.__wasm[A]){const e=this.__modules[A];this.__wasm[A]=new WebAssembly.Module(t(e.wasm_src))}if(!this.__cache[A]){const t={memoryBase:0,memory:this.__memory,tableBase:0,table:new WebAssembly.Table({initial:0,element:\"anyfunc\"})};this.__cache[A]=new WebAssembly.Instance(this.__wasm[A],{env:Object.assign(t,n||{})})}return this.__cache[A]}__align(A,t){const e=A%(t=t||8);return A+(e?t-e:0)}};function a(A,t,e,n,a,i){let r,s,o,g,I,h,B,Q,E,C,c,f,u,m;for(E=0;E<i;E++){for(h=E*a,B=E,Q=0,r=A[h],I=r*n[6],g=I,c=n[0],f=n[1],u=n[4],m=n[5],C=0;C<a;C++)s=A[h],o=s*c+r*f+g*u+I*m,I=g,g=o,r=s,e[Q]=g,Q++,h++;for(h--,Q--,B+=i*(a-1),r=A[h],I=r*n[7],g=I,s=r,c=n[2],f=n[3],C=a-1;C>=0;C--)o=s*c+r*f+g*u+I*m,I=g,g=o,r=s,s=A[h],t[B]=e[Q]+g,h--,Q--,B-=i}}function i(A,t,e,n){if(!n)return;const i=new Uint16Array(A.length),r=new Float32Array(Math.max(t,e)),s=function(A){A<.5&&(A=.5);const t=Math.exp(.527076)/A,e=Math.exp(-t),n=Math.exp(-2*t),a=(1-e)*(1-e)/(1+2*t*e-n),i=a*(t-1)*e,r=a*(t+1)*e,s=-a*n,o=2*e,g=-n;return new Float32Array([a,i,r,s,o,g,(a+i)/(1-o-g),(r+s)/(1-o-g)])}(n);a(A,i,r,s,t,e),a(i,A,r,s,e,t)}var r={name:\"unsharp_mask\",fn:function(A,t,e,n,a,r){let s,o,g,I,h;if(0===n||a<.5)return;a>2&&(a=2);const B=function(A,t,e){const n=t*e,a=new Uint16Array(n);let i,r,s,o;for(let g=0;g<n;g++)i=A[4*g],r=A[4*g+1],s=A[4*g+2],o=i>=r&&i>=s?i:r>=s&&r>=i?r:s,a[g]=o<<8;return a}(A,t,e),Q=new Uint16Array(B);i(Q,t,e,a);const E=n/100*4096+.5|0,C=r<<8,c=t*e;for(let i=0;i<c;i++)s=B[i],I=s-Q[i],Math.abs(I)>=C&&(o=s+(E*I+2048>>12),o=o>65280?65280:o,o=o<0?0:o,s=0!==s?s:1,g=(o<<12)/s|0,h=4*i,A[h]=A[h]*g+2048>>12,A[h+1]=A[h+1]*g+2048>>12,A[h+2]=A[h+2]*g+2048>>12)},wasm_fn:function(A,t,e,n,a,i){if(0===n||a<.5)return;a>2&&(a=2);const r=t*e,s=4*r,o=2*r,g=2*r,I=4*Math.max(t,e),h=s,B=h+o,Q=B+g,E=Q+g,C=E+I,c=this.__instance(\"unsharp_mask\",s+o+2*g+I+32,{exp:Math.exp}),f=new Uint32Array(A.buffer);new Uint32Array(this.__memory.buffer).set(f);let u=c.exports.hsv_v16||c.exports._hsv_v16;if(!u)throw new Error(\"WASM hsv_v16 function is not available\");if(u(0,h,t,e),u=c.exports.blurMono16||c.exports._blurMono16,!u)throw new Error(\"WASM blurMono16 function is not available\");if(u(h,B,Q,E,C,t,e,a),u=c.exports.unsharp||c.exports._unsharp,!u)throw new Error(\"WASM unsharp function is not available\");u(0,0,h,B,t,e,n,i),f.set(new Uint32Array(this.__memory.buffer,0,r))},wasm_src:\"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\"},s={filter:{box:{win:.5,fn:A=>(A<0&&(A=-A),A<.5?1:0)},hamming:{win:1,fn(A){if(A<0&&(A=-A),A>=1)return 0;if(A<1.1920929e-7)return 1;const t=A*Math.PI;return Math.sin(t)/t*(.54+.46*Math.cos(t/1))}},lanczos2:{win:2,fn(A){if(A<0&&(A=-A),A>=2)return 0;if(A<1.1920929e-7)return 1;const t=A*Math.PI;return Math.sin(t)/t*Math.sin(t/2)/(t/2)}},lanczos3:{win:3,fn(A){if(A<0&&(A=-A),A>=3)return 0;if(A<1.1920929e-7)return 1;const t=A*Math.PI;return Math.sin(t)/t*Math.sin(t/3)/(t/3)}},mks2013:{win:2.5,fn:A=>(A<0&&(A=-A),A>=2.5?0:A>=1.5?-.125*(A-2.5)*(A-2.5):A>=.5?.25*(4*A*A-11*A+7):1.0625-1.75*A*A)}}};function o(A){return Math.round(16383*A)}function g(A,t,e,n,a){const i=s.filter[A].fn,r=1/n,g=Math.min(1,n),I=s.filter[A].win/g;let h,B,Q,E,C,c,f,u,m,d,w,l,y,_,b,D,M;const p=Math.floor(2*(I+1)),G=new Int16Array((p+2)*e);let U=0;const k=!G.subarray||!G.set;for(h=0;h<e;h++){for(B=(h+.5)*r+a,Q=Math.max(0,Math.floor(B-I)),E=Math.min(t-1,Math.ceil(B+I)),C=E-Q+1,c=new Float32Array(C),f=new Int16Array(C),u=0,m=Q,d=0;m<=E;m++,d++)w=i((m+.5-B)*g),u+=w,c[d]=w;for(l=0,d=0;d<c.length;d++)y=c[d]/u,l+=y,f[d]=o(y);for(f[e>>1]+=o(1-l),_=0;_<f.length&&0===f[_];)_++;if(_<f.length){for(b=f.length-1;b>0&&0===f[b];)b--;if(D=Q+_,M=b-_+1,G[U++]=D,G[U++]=M,k)for(d=_;d<=b;d++)G[U++]=f[d];else G.set(f.subarray(_,b+1),U),U+=M}else G[U++]=0,G[U++]=0}return G}function I(A){return A<0?0:A>255?255:A}function h(A){return A>=0?A:0}var B=!0;try{B=1===new Uint32Array(new Uint8Array([1,0,0,0]).buffer)[0]}catch(p){}function Q(A,t,e){if(B)t.set(function(A){return new Uint8Array(A.buffer,0,A.byteLength)}(A),e);else for(let n=e,a=0;a<A.length;a++){const e=A[a];t[n++]=255&e,t[n++]=e>>8&255}}var E={name:\"resize\",fn:function(A){const t=A.src,e=A.width,n=A.height,a=A.toWidth,i=A.toHeight,r=A.scaleX||A.toWidth/A.width,s=A.scaleY||A.toHeight/A.height,o=A.offsetX||0,B=A.offsetY||0,Q=A.dest||new Uint8Array(a*i*4),E=void 0===A.filter?\"mks2013\":A.filter,C=g(E,e,a,r,o),c=g(E,n,i,s,B),f=new Uint16Array(a*n*4);return!function(A,t,e){let n=3;const a=t*e*4|0;for(;n<a;){if(255!==A[n])return!0;n=n+4|0}return!1}(t,e,n)?(function(A,t,e,n,a,i){let r,s,o,g,I,B,Q,E,C,c,f,u=0,m=0;for(C=0;C<n;C++){for(I=0,c=0;c<a;c++){for(B=i[I++],Q=i[I++],E=u+4*B|0,r=s=o=g=0;Q>0;Q--)f=i[I++],g=g+f*A[E+3]|0,o=o+f*A[E+2]|0,s=s+f*A[E+1]|0,r=r+f*A[E]|0,E=E+4|0;t[m+3]=h(g>>7),t[m+2]=h(o>>7),t[m+1]=h(s>>7),t[m]=h(r>>7),m=m+4*n|0}m=4*(C+1)|0,u=(C+1)*e*4|0}}(t,f,e,n,a,C),function(A,t,e,n,a,i){let r,s,o,g,h,B,Q,E,C,c,f,u=0,m=0;for(C=0;C<n;C++){for(h=0,c=0;c<a;c++){for(B=i[h++],Q=i[h++],E=u+4*B|0,r=s=o=g=0;Q>0;Q--)f=i[h++],g=g+f*A[E+3]|0,o=o+f*A[E+2]|0,s=s+f*A[E+1]|0,r=r+f*A[E]|0,E=E+4|0;r>>=7,s>>=7,o>>=7,g>>=7,t[m+3]=I(g+8192>>14),t[m+2]=I(o+8192>>14),t[m+1]=I(s+8192>>14),t[m]=I(r+8192>>14),m=m+4*n|0}m=4*(C+1)|0,u=(C+1)*e*4|0}}(f,Q,n,a,i,c),function(A,t,e){let n=3;const a=t*e*4|0;for(;n<a;)A[n]=255,n=n+4|0}(Q,a,i)):(function(A,t,e,n,a,i){let r,s,o,g,I,B,Q,E,C,c,f,u,m=0,d=0;for(c=0;c<n;c++){for(B=0,f=0;f<a;f++){for(Q=i[B++],E=i[B++],C=m+4*Q|0,r=s=o=g=0;E>0;E--)u=i[B++],I=A[C+3],g=g+u*I|0,o=o+u*A[C+2]*I|0,s=s+u*A[C+1]*I|0,r=r+u*A[C]*I|0,C=C+4|0;o=o/255|0,s=s/255|0,r=r/255|0,t[d+3]=h(g>>7),t[d+2]=h(o>>7),t[d+1]=h(s>>7),t[d]=h(r>>7),d=d+4*n|0}d=4*(c+1)|0,m=(c+1)*e*4|0}}(t,f,e,n,a,C),function(A,t,e,n,a,i){let r,s,o,g,h,B,Q,E,C,c,f,u=0,m=0;for(C=0;C<n;C++){for(h=0,c=0;c<a;c++){for(B=i[h++],Q=i[h++],E=u+4*B|0,r=s=o=g=0;Q>0;Q--)f=i[h++],g=g+f*A[E+3]|0,o=o+f*A[E+2]|0,s=s+f*A[E+1]|0,r=r+f*A[E]|0,E=E+4|0;r>>=7,s>>=7,o>>=7,g>>=7,g=I(g+8192>>14),g>0&&(r=255*r/g|0,s=255*s/g|0,o=255*o/g|0),t[m+3]=g,t[m+2]=I(o+8192>>14),t[m+1]=I(s+8192>>14),t[m]=I(r+8192>>14),m=m+4*n|0}m=4*(C+1)|0,u=(C+1)*e*4|0}}(f,Q,n,a,i,c)),Q},wasm_fn:function(A){const t=A.src,e=A.width,n=A.height,a=A.toWidth,i=A.toHeight,r=A.scaleX||A.toWidth/A.width,s=A.scaleY||A.toHeight/A.height,o=A.offsetX||0,I=A.offsetY||0,h=A.dest||new Uint8Array(a*i*4),B=void 0===A.filter?\"mks2013\":A.filter,E=g(B,e,a,r,o),C=g(B,n,i,s,I),c=Math.max(t.byteLength,h.byteLength),f=this.__align(0+c),u=n*a*4*2,m=this.__align(f+u),d=this.__align(m+E.byteLength),w=d+C.byteLength,l=this.__instance(\"resize\",w),y=new Uint8Array(this.__memory.buffer),_=new Uint32Array(this.__memory.buffer),b=new Uint32Array(t.buffer);_.set(b),Q(E,y,m),Q(C,y,d);const D=l.exports.convolveHV||l.exports._convolveHV;if(!D)throw new Error(\"WASM resize function is not available\");return!function(A,t,e){let n=3;const a=t*e*4|0;for(;n<a;){if(255!==A[n])return!0;n=n+4|0}return!1}(t,e,n)?(D(m,d,f,e,n,a,i,0),function(A,t,e){let n=3;const a=t*e*4|0;for(;n<a;)A[n]=255,n=n+4|0}(h,a,i)):D(m,d,f,e,n,a,i,1),new Uint32Array(h.buffer).set(new Uint32Array(this.__memory.buffer,0,i*a)),h},wasm_src:\"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\"},C=class extends n{constructor(A){const t=A||[],e={js:t.indexOf(\"js\")>=0,wasm:t.indexOf(\"wasm\")>=0};super(e),this.features={js:e.js,wasm:e.wasm&&this.has_wasm()},this.use(r),this.use(E)}resizeAndUnsharp(A){const t=this.resize(A);return A.unsharpAmount&&this.unsharp_mask(t,A.toWidth,A.toHeight,A.unsharpAmount,A.unsharpRadius,A.unsharpThreshold),t}},c=\"/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAAAAAD/4AAQskZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/wAALCAACAAMBAREA/8QAFAABAAAAAAAAAAAAAAAAAAAACf/EABsQAAMBAQADAAAAAAAAAAAAAAECAwQFABEx/9oACAEBAAA/AC06fW6va0ps7PT179E88MiV02arrCEkjGQZiSEnKc5ovxURVHoADz//2Q==\",f={canvas:!1,offscreen_canvas:!1,may_be_worker:!1,create_image_bitmap:!1,safari_put_image_data_fix:!1,bug_canvas_orientation_region:!0,bug_image_bitmap_orientation_region:!0,cib_resize:!1},u=!1,m=null;function d(){if(\"undefined\"==typeof document||!document.createElement)return!1;try{const A=document.createElement(\"canvas\");A.width=2,A.height=1;const t=A.getContext(\"2d\");let e=t.createImageData(2,1);return e.data[0]=12,e.data[1]=23,e.data[2]=34,e.data[3]=255,e.data[4]=45,e.data[5]=56,e.data[6]=67,e.data[7]=255,t.putImageData(e,0,0),e=t.getImageData(0,0,2,1),12===e.data[0]&&23===e.data[1]&&34===e.data[2]&&255===e.data[3]&&45===e.data[4]&&56===e.data[5]&&67===e.data[6]&&255===e.data[7]}catch(p){return!1}}function w(){if(\"undefined\"==typeof OffscreenCanvas)return!1;try{const A=new OffscreenCanvas(2,1).getContext(\"2d\");let t=A.createImageData(2,1);return t.data[0]=12,t.data[1]=23,t.data[2]=34,t.data[3]=255,t.data[4]=45,t.data[5]=56,t.data[6]=67,t.data[7]=255,A.putImageData(t,0,0),t=A.getImageData(0,0,2,1),12===t.data[0]&&23===t.data[1]&&34===t.data[2]&&255===t.data[3]&&45===t.data[4]&&56===t.data[5]&&67===t.data[6]&&255===t.data[7]}catch(p){return!1}}function l(){return\"undefined\"!=typeof createImageBitmap}function y(){if(u)return Promise.resolve(Object.assign({},f));if(m)return m.then(()=>Object.assign({},f));f.canvas=d(),f.offscreen_canvas=w(),f.may_be_worker=\"undefined\"!=typeof Worker&&\"undefined\"!=typeof URL&&!!URL.createObjectURL,f.create_image_bitmap=l(),f.safari_put_image_data_fix=function(){try{return!!(\"undefined\"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.indexOf(\"Safari\")>=0&&navigator.userAgent.indexOf(\"Chrome\")<0)}catch(p){return!1}}();const A=Promise.resolve().then(()=>{if(w()&&l()&&\"undefined\"!=typeof Blob&&\"undefined\"!=typeof atob){const A=atob(c),t=new Uint8Array(A.length);for(let e=0;e<A.length;e++)t[e]=A.charCodeAt(e);return createImageBitmap(new Blob([t],{type:\"image/jpeg\"})).then(A=>{const t=new OffscreenCanvas(1,1);try{const e=t.getContext(\"2d\");return e.drawImage(A,1,1,1,1,0,0,1,1),e.getImageData(0,0,1,1).data[0]<240}finally{A.close()}})}return!d()||\"undefined\"==typeof Image||new Promise(A=>{const t=new Image;t.onload=()=>{try{const e=document.createElement(\"canvas\");e.width=1,e.height=1;const n=e.getContext(\"2d\");n.drawImage(t,1,1,1,1,0,0,1,1),A(n.getImageData(0,0,1,1).data[0]<240)}catch(p){A(!0)}},t.onerror=()=>A(!0),t.src=`data:image/jpeg;base64,${c}`})}).catch(()=>!0).then(A=>{f.bug_canvas_orientation_region=A}).catch(()=>{}),t=Promise.resolve().then(()=>{if(!f.create_image_bitmap&&!l())return!0;if(\"undefined\"==typeof Blob||\"undefined\"==typeof atob)return!0;const A=w(),t=d();if(!A&&!t)return!0;const e=atob(c),n=new Uint8Array(e.length);for(let a=0;a<e.length;a++)n[a]=e.charCodeAt(a);return createImageBitmap(new Blob([n],{type:\"image/jpeg\"})).then(t=>createImageBitmap(t,1,1,1,1).then(e=>{let n;A?n=new OffscreenCanvas(1,1):(n=document.createElement(\"canvas\"),n.width=1,n.height=1);try{const A=n.getContext(\"2d\");return A.drawImage(e,0,0),1!==e.width||1!==e.height||A.getImageData(0,0,1,1).data[0]<240}finally{t.close(),e.close()}},()=>(t.close(),!0)))}).catch(()=>!0).then(A=>{f.bug_image_bitmap_orientation_region=A}).catch(()=>{}),e=Promise.resolve().then(()=>{if(!l())return!1;const A=20;let t;if(f.canvas||d())t=document.createElement(\"canvas\"),t.width=A,t.height=A;else{if(!f.offscreen_canvas&&!w())return!1;t=new OffscreenCanvas(A,A),t.getContext(\"2d\").clearRect(0,0,A,A)}return createImageBitmap(t,0,0,A,A,{resizeWidth:5,resizeHeight:5,resizeQuality:\"high\"}).then(A=>{const e=5===A.width&&!!A.close;return A.close&&A.close(),t=null,e})}).catch(()=>!1).then(A=>{f.cib_resize=A}).catch(()=>{});return m=Promise.all([A,t,e]).then(()=>(u=!0,m=null,Object.assign({},f)),A=>{throw m=null,A})}var _=self,b=null;function D(A,t){return b||(b=new C(A.features)),b.resizeAndUnsharp(t)}function M(A){if(\"bitmap\"===A.job.kind)return void function(A,t){let e=new OffscreenCanvas(t.width,t.height);const n=e.getContext(\"2d\");n.drawImage(t.src,0,0);const a=n.getImageData(0,0,t.width,t.height).data;e.width=e.height=0,e=null,t.src.close();const i=D(A,{src:a,width:t.width,height:t.height,toWidth:t.toWidth,toHeight:t.toHeight,scaleX:t.scaleX,scaleY:t.scaleY,offsetX:t.offsetX,offsetY:t.offsetY,filter:t.filter,unsharpAmount:t.unsharpAmount,unsharpRadius:t.unsharpRadius,unsharpThreshold:t.unsharpThreshold}),r=new OffscreenCanvas(t.toWidth,t.toHeight),s=r.getContext(\"2d\"),o=s.createImageData(t.toWidth,t.toHeight);o.data.set(i),s.putImageData(o,0,0);const g=r.transferToImageBitmap();_.postMessage({kind:\"bitmap\",data:g},[g])}(A,A.job);const t=D(A,A.job);_.postMessage({kind:\"array\",data:t},[t.buffer])}_.onmessage=function(A){Promise.resolve().then(()=>function(A){switch(A.method){case\"get_supported_features\":return y().then(A=>{_.postMessage({data:A})});case\"resize\":return M(A),Promise.resolve();default:return Promise.reject(new Error(`Unknown worker method: ${A.method}`))}}(A.data)).catch(A=>{_.postMessage({err:A})})}}();\n//# sourceURL=pica-inline-worker.js", Me = 1; typeof navigator < "u" && (Me = Math.min(navigator.hardwareConcurrency || 1, 4)); var Ne = { tile: 1024, concurrency: Me, features: [ "js", "wasm", "ww" ], idle: 2e3 }, G = { filter: "mks2013", unsharpAmount: 0, unsharpRadius: 0, unsharpThreshold: 0 }, Pe = class { constructor(e) { M(this, "options", void 0), M(this, "__limit", void 0), M(this, "resize_features", void 0), M(th