UNPKG

vitessce

Version:

This package is the main `vitessce` package on NPM. It exports the `<Vitessce/>` from `@vitessce/all` for backwards compatibility.

1,242 lines (1,240 loc) 179 kB
import { bM as wn, bN as Tn, bO as Fn, ae as Cn, bP as An, a9 as Dn, a8 as En, a7 as Mn, am as Rn, u as on, z as vr, a5 as Gn, v as On, C as pr, e as gr, M as Ln, V as Bt, ap as Bn, ag as Wr, a1 as Pn, l as zr, aF as mr, x as In, aa as Nn, bQ as Wn } from "./index-CiwyZ_Wn.js"; function zn() { var c = /* @__PURE__ */ Object.create(null); function r(t, e) { var a = t.id, o = t.name, n = t.dependencies; n === void 0 && (n = []); var i = t.init; i === void 0 && (i = function() { }); var s = t.getTransferables; if (s === void 0 && (s = null), !c[a]) try { n = n.map(function(l) { return l && l.isWorkerModule && (r(l, function(h) { if (h instanceof Error) throw h; }), l = c[l.id].value), l; }), i = u("<" + o + ">.init", i), s && (s = u("<" + o + ">.getTransferables", s)); var f = null; typeof i == "function" ? f = i.apply(void 0, n) : console.error("worker module init function failed to rehydrate"), c[a] = { id: a, value: f, getTransferables: s }, e(f); } catch (l) { l && l.noLog || console.error(l), e(l); } } function d(t, e) { var a, o = t.id, n = t.args; (!c[o] || typeof c[o].value != "function") && e(new Error("Worker module " + o + ": not found or its 'init' did not return a function")); try { var i = (a = c[o]).value.apply(a, n); i && typeof i.then == "function" ? i.then(s, function(f) { return e(f instanceof Error ? f : new Error("" + f)); }) : s(i); } catch (f) { e(f); } function s(f) { try { var l = c[o].getTransferables && c[o].getTransferables(f); (!l || !Array.isArray(l) || !l.length) && (l = void 0), e(f, l); } catch (h) { console.error(h), e(h); } } } function u(t, e) { var a = void 0; self.troikaDefine = function(n) { return a = n; }; var o = URL.createObjectURL( new Blob( ["/** " + t.replace(/\*/g, "") + ` **/ troikaDefine( ` + e + ` )`], { type: "application/javascript" } ) ); try { importScripts(o); } catch (n) { console.error(n); } return URL.revokeObjectURL(o), delete self.troikaDefine, a; } self.addEventListener("message", function(t) { var e = t.data, a = e.messageId, o = e.action, n = e.data; try { o === "registerModule" && r(n, function(i) { i instanceof Error ? postMessage({ messageId: a, success: !1, error: i.message }) : postMessage({ messageId: a, success: !0, result: { isCallable: typeof i == "function" } }); }), o === "callModule" && d(n, function(i, s) { i instanceof Error ? postMessage({ messageId: a, success: !1, error: i.message }) : postMessage({ messageId: a, success: !0, result: i }, s || void 0); }); } catch (i) { postMessage({ messageId: a, success: !1, error: i.stack }); } }); } function jn(c) { var r = function() { for (var d = [], u = arguments.length; u--; ) d[u] = arguments[u]; return r._getInitResult().then(function(t) { if (typeof t == "function") return t.apply(void 0, d); throw new Error("Worker module function was called but `init` did not return a callable function"); }); }; return r._getInitResult = function() { var d = c.dependencies, u = c.init; d = Array.isArray(d) ? d.map( function(e) { return e && e._getInitResult ? e._getInitResult() : e; } ) : []; var t = Promise.all(d).then(function(e) { return u.apply(null, e); }); return r._getInitResult = function() { return t; }, t; }, r; } var sn = function() { var c = !1; if (typeof window < "u" && typeof window.document < "u") try { var r = new Worker( URL.createObjectURL(new Blob([""], { type: "application/javascript" })) ); r.terminate(), c = !0; } catch (d) { console.log( "Troika createWorkerModule: web workers not allowed; falling back to main thread execution. Cause: [" + d.message + "]" ); } return sn = function() { return c; }, c; }, Vn = 0, Xn = 0, ir = !1, yt = /* @__PURE__ */ Object.create(null), bt = /* @__PURE__ */ Object.create(null), ur = /* @__PURE__ */ Object.create(null); function it(c) { if ((!c || typeof c.init != "function") && !ir) throw new Error("requires `options.init` function"); var r = c.dependencies, d = c.init, u = c.getTransferables, t = c.workerId; if (!sn()) return jn(c); t == null && (t = "#default"); var e = "workerModule" + ++Vn, a = c.name || e, o = null; r = r && r.map(function(i) { return typeof i == "function" && !i.workerModuleData && (ir = !0, i = it({ workerId: t, name: "<" + a + "> function dependency: " + i.name, init: `function(){return ( ` + Ot(i) + ` )}` }), ir = !1), i && i.workerModuleData && (i = i.workerModuleData), i; }); function n() { for (var i = [], s = arguments.length; s--; ) i[s] = arguments[s]; if (!o) { o = jr(t, "registerModule", n.workerModuleData); var f = function() { o = null, bt[t].delete(f); }; (bt[t] || (bt[t] = /* @__PURE__ */ new Set())).add(f); } return o.then(function(l) { var h = l.isCallable; if (h) return jr(t, "callModule", { id: e, args: i }); throw new Error("Worker module function was called but `init` did not return a callable function"); }); } return n.workerModuleData = { isWorkerModule: !0, id: e, name: a, dependencies: r, init: Ot(d), getTransferables: u && Ot(u) }, n; } function Hn(c) { bt[c] && bt[c].forEach(function(r) { r(); }), yt[c] && (yt[c].terminate(), delete yt[c]); } function Ot(c) { var r = c.toString(); return !/^function/.test(r) && /^\w+\s*\(/.test(r) && (r = "function " + r), r; } function Yn(c) { var r = yt[c]; if (!r) { var d = Ot(zn); r = yt[c] = new Worker( URL.createObjectURL( new Blob( ["/** Worker Module Bootstrap: " + c.replace(/\*/g, "") + ` **/ ;(` + d + ")()"], { type: "application/javascript" } ) ) ), r.onmessage = function(u) { var t = u.data, e = t.messageId, a = ur[e]; if (!a) throw new Error("WorkerModule response with empty or unknown messageId"); delete ur[e], a(t); }; } return r; } function jr(c, r, d) { return new Promise(function(u, t) { var e = ++Xn; ur[e] = function(a) { a.success ? u(a.result) : t(new Error("Error in worker " + r + " call: " + a.error)); }, Yn(c).postMessage({ messageId: e, action: r, data: d }); }); } function fn() { var c = function(r) { function d(B, M, v, b, k, A, _, N) { var E = 1 - _; N.x = E * E * B + 2 * E * _ * v + _ * _ * k, N.y = E * E * M + 2 * E * _ * b + _ * _ * A; } function u(B, M, v, b, k, A, _, N, E, P) { var H = 1 - E; P.x = H * H * H * B + 3 * H * H * E * v + 3 * H * E * E * k + E * E * E * _, P.y = H * H * H * M + 3 * H * H * E * b + 3 * H * E * E * A + E * E * E * N; } function t(B, M) { for (var v = /([MLQCZ])([^MLQCZ]*)/g, b, k, A, _, N; b = v.exec(B); ) { var E = b[2].replace(/^\s*|\s*$/g, "").split(/[,\s]+/).map(function(P) { return parseFloat(P); }); switch (b[1]) { case "M": _ = k = E[0], N = A = E[1]; break; case "L": (E[0] !== _ || E[1] !== N) && M("L", _, N, _ = E[0], N = E[1]); break; case "Q": { M("Q", _, N, _ = E[2], N = E[3], E[0], E[1]); break; } case "C": { M("C", _, N, _ = E[4], N = E[5], E[0], E[1], E[2], E[3]); break; } case "Z": (_ !== k || N !== A) && M("L", _, N, k, A); break; } } } function e(B, M, v) { v === void 0 && (v = 16); var b = { x: 0, y: 0 }; t(B, function(k, A, _, N, E, P, H, $, V) { switch (k) { case "L": M(A, _, N, E); break; case "Q": { for (var W = A, pe = _, ue = 1; ue < v; ue++) d( A, _, P, H, N, E, ue / (v - 1), b ), M(W, pe, b.x, b.y), W = b.x, pe = b.y; break; } case "C": { for (var Q = A, ee = _, se = 1; se < v; se++) u( A, _, P, H, $, V, N, E, se / (v - 1), b ), M(Q, ee, b.x, b.y), Q = b.x, ee = b.y; break; } } }); } var a = "precision highp float;attribute vec2 aUV;varying vec2 vUV;void main(){vUV=aUV;gl_Position=vec4(mix(vec2(-1.0),vec2(1.0),aUV),0.0,1.0);}", o = "precision highp float;uniform sampler2D tex;varying vec2 vUV;void main(){gl_FragColor=texture2D(tex,vUV);}", n = /* @__PURE__ */ new WeakMap(), i = { premultipliedAlpha: !1, preserveDrawingBuffer: !0, antialias: !1, depth: !1 }; function s(B, M) { var v = B.getContext ? B.getContext("webgl", i) : B, b = n.get(v); if (!b) { let H = function(Q) { var ee = A[Q]; if (!ee && (ee = A[Q] = v.getExtension(Q), !ee)) throw new Error(Q + " not supported"); return ee; }, $ = function(Q, ee) { var se = v.createShader(ee); return v.shaderSource(se, Q), v.compileShader(se), se; }, V = function(Q, ee, se, j) { if (!_[Q]) { var te = {}, q = {}, L = v.createProgram(); v.attachShader(L, $(ee, v.VERTEX_SHADER)), v.attachShader(L, $(se, v.FRAGMENT_SHADER)), v.linkProgram(L), _[Q] = { program: L, transaction: function(K) { v.useProgram(L), K({ setUniform: function(Y, be) { for (var ne = [], oe = arguments.length - 2; oe-- > 0; ) ne[oe] = arguments[oe + 2]; var le = q[be] || (q[be] = v.getUniformLocation(L, be)); v["uniform" + Y].apply(v, [le].concat(ne)); }, setAttribute: function(Y, be, ne, oe, le) { var de = te[Y]; de || (de = te[Y] = { buf: v.createBuffer(), // TODO should we destroy our buffers? loc: v.getAttribLocation(L, Y), data: null }), v.bindBuffer(v.ARRAY_BUFFER, de.buf), v.vertexAttribPointer(de.loc, be, v.FLOAT, !1, 0, 0), v.enableVertexAttribArray(de.loc), k ? v.vertexAttribDivisor(de.loc, oe) : H("ANGLE_instanced_arrays").vertexAttribDivisorANGLE(de.loc, oe), le !== de.data && (v.bufferData(v.ARRAY_BUFFER, le, ne), de.data = le); } }); } }; } _[Q].transaction(j); }, W = function(Q, ee) { E++; try { v.activeTexture(v.TEXTURE0 + E); var se = N[Q]; se || (se = N[Q] = v.createTexture(), v.bindTexture(v.TEXTURE_2D, se), v.texParameteri(v.TEXTURE_2D, v.TEXTURE_MIN_FILTER, v.NEAREST), v.texParameteri(v.TEXTURE_2D, v.TEXTURE_MAG_FILTER, v.NEAREST)), v.bindTexture(v.TEXTURE_2D, se), ee(se, E); } finally { E--; } }, pe = function(Q, ee, se) { var j = v.createFramebuffer(); P.push(j), v.bindFramebuffer(v.FRAMEBUFFER, j), v.activeTexture(v.TEXTURE0 + ee), v.bindTexture(v.TEXTURE_2D, Q), v.framebufferTexture2D(v.FRAMEBUFFER, v.COLOR_ATTACHMENT0, v.TEXTURE_2D, Q, 0); try { se(j); } finally { v.deleteFramebuffer(j), v.bindFramebuffer(v.FRAMEBUFFER, P[--P.length - 1] || null); } }, ue = function() { A = {}, _ = {}, N = {}, E = -1, P.length = 0; }; var k = typeof WebGL2RenderingContext < "u" && v instanceof WebGL2RenderingContext, A = {}, _ = {}, N = {}, E = -1, P = []; v.canvas.addEventListener("webglcontextlost", function(Q) { ue(), Q.preventDefault(); }, !1), n.set(v, b = { gl: v, isWebGL2: k, getExtension: H, withProgram: V, withTexture: W, withTextureFramebuffer: pe, handleContextLoss: ue }); } M(b); } function f(B, M, v, b, k, A, _, N) { _ === void 0 && (_ = 15), N === void 0 && (N = null), s(B, function(E) { var P = E.gl, H = E.withProgram, $ = E.withTexture; $("copy", function(V, W) { P.texImage2D(P.TEXTURE_2D, 0, P.RGBA, k, A, 0, P.RGBA, P.UNSIGNED_BYTE, M), H("copy", a, o, function(pe) { var ue = pe.setUniform, Q = pe.setAttribute; Q("aUV", 2, P.STATIC_DRAW, 0, new Float32Array([0, 0, 2, 0, 0, 2])), ue("1i", "image", W), P.bindFramebuffer(P.FRAMEBUFFER, N || null), P.disable(P.BLEND), P.colorMask(_ & 8, _ & 4, _ & 2, _ & 1), P.viewport(v, b, k, A), P.scissor(v, b, k, A), P.drawArrays(P.TRIANGLES, 0, 3); }); }); }); } function l(B, M, v) { var b = B.width, k = B.height; s(B, function(A) { var _ = A.gl, N = new Uint8Array(b * k * 4); _.readPixels(0, 0, b, k, _.RGBA, _.UNSIGNED_BYTE, N), B.width = M, B.height = v, f(_, N, 0, 0, b, k); }); } var h = /* @__PURE__ */ Object.freeze({ __proto__: null, withWebGLContext: s, renderImageData: f, resizeWebGLCanvasWithoutClearing: l }); function p(B, M, v, b, k, A) { A === void 0 && (A = 1); var _ = new Uint8Array(B * M), N = b[2] - b[0], E = b[3] - b[1], P = []; e(v, function(Q, ee, se, j) { P.push({ x1: Q, y1: ee, x2: se, y2: j, minX: Math.min(Q, se), minY: Math.min(ee, j), maxX: Math.max(Q, se), maxY: Math.max(ee, j) }); }), P.sort(function(Q, ee) { return Q.maxX - ee.maxX; }); for (var H = 0; H < B; H++) for (var $ = 0; $ < M; $++) { var V = pe( b[0] + N * (H + 0.5) / B, b[1] + E * ($ + 0.5) / M ), W = Math.pow(1 - Math.abs(V) / k, A) / 2; V < 0 && (W = 1 - W), W = Math.max(0, Math.min(255, Math.round(W * 255))), _[$ * B + H] = W; } return _; function pe(Q, ee) { for (var se = 1 / 0, j = 1 / 0, te = P.length; te--; ) { var q = P[te]; if (q.maxX + j <= Q) break; if (Q + j > q.minX && ee - j < q.maxY && ee + j > q.minY) { var L = O(Q, ee, q.x1, q.y1, q.x2, q.y2); L < se && (se = L, j = Math.sqrt(se)); } } return ue(Q, ee) && (j = -j), j; } function ue(Q, ee) { for (var se = 0, j = P.length; j--; ) { var te = P[j]; if (te.maxX <= Q) break; var q = te.y1 > ee != te.y2 > ee && Q < (te.x2 - te.x1) * (ee - te.y1) / (te.y2 - te.y1) + te.x1; q && (se += te.y1 < te.y2 ? 1 : -1); } return se !== 0; } } function g(B, M, v, b, k, A, _, N, E, P) { A === void 0 && (A = 1), N === void 0 && (N = 0), E === void 0 && (E = 0), P === void 0 && (P = 0), y(B, M, v, b, k, A, _, null, N, E, P); } function y(B, M, v, b, k, A, _, N, E, P, H) { A === void 0 && (A = 1), E === void 0 && (E = 0), P === void 0 && (P = 0), H === void 0 && (H = 0); for (var $ = p(B, M, v, b, k, A), V = new Uint8Array($.length * 4), W = 0; W < $.length; W++) V[W * 4 + H] = $[W]; f(_, V, E, P, B, M, 1 << 3 - H, N); } function O(B, M, v, b, k, A) { var _ = k - v, N = A - b, E = _ * _ + N * N, P = E ? Math.max(0, Math.min(1, ((B - v) * _ + (M - b) * N) / E)) : 0, H = B - (v + P * _), $ = M - (b + P * N); return H * H + $ * $; } var S = /* @__PURE__ */ Object.freeze({ __proto__: null, generate: p, generateIntoCanvas: g, generateIntoFramebuffer: y }), F = "precision highp float;uniform vec4 uGlyphBounds;attribute vec2 aUV;attribute vec4 aLineSegment;varying vec4 vLineSegment;varying vec2 vGlyphXY;void main(){vLineSegment=aLineSegment;vGlyphXY=mix(uGlyphBounds.xy,uGlyphBounds.zw,aUV);gl_Position=vec4(mix(vec2(-1.0),vec2(1.0),aUV),0.0,1.0);}", U = "precision highp float;uniform vec4 uGlyphBounds;uniform float uMaxDistance;uniform float uExponent;varying vec4 vLineSegment;varying vec2 vGlyphXY;float absDistToSegment(vec2 point,vec2 lineA,vec2 lineB){vec2 lineDir=lineB-lineA;float lenSq=dot(lineDir,lineDir);float t=lenSq==0.0 ? 0.0 : clamp(dot(point-lineA,lineDir)/lenSq,0.0,1.0);vec2 linePt=lineA+t*lineDir;return distance(point,linePt);}void main(){vec4 seg=vLineSegment;vec2 p=vGlyphXY;float dist=absDistToSegment(p,seg.xy,seg.zw);float val=pow(1.0-clamp(dist/uMaxDistance,0.0,1.0),uExponent)*0.5;bool crossing=(seg.y>p.y!=seg.w>p.y)&&(p.x<(seg.z-seg.x)*(p.y-seg.y)/(seg.w-seg.y)+seg.x);bool crossingUp=crossing&&vLineSegment.y<vLineSegment.w;gl_FragColor=vec4(crossingUp ? 1.0/255.0 : 0.0,crossing&&!crossingUp ? 1.0/255.0 : 0.0,0.0,val);}", w = "precision highp float;uniform sampler2D tex;varying vec2 vUV;void main(){vec4 color=texture2D(tex,vUV);bool inside=color.r!=color.g;float val=inside ? 1.0-color.a : color.a;gl_FragColor=vec4(val);}", G = new Float32Array([0, 0, 2, 0, 0, 2]), x = null, C = !1, I = {}, R = /* @__PURE__ */ new WeakMap(); function J(B) { if (!C && !X(B)) throw new Error("WebGL generation not supported"); } function m(B, M, v, b, k, A, _) { if (A === void 0 && (A = 1), _ === void 0 && (_ = null), !_ && (_ = x, !_)) { var N = typeof OffscreenCanvas == "function" ? new OffscreenCanvas(1, 1) : typeof document < "u" ? document.createElement("canvas") : null; if (!N) throw new Error("OffscreenCanvas or DOM canvas not supported"); _ = x = N.getContext("webgl", { depth: !1 }); } J(_); var E = new Uint8Array(B * M * 4); s(_, function(V) { var W = V.gl, pe = V.withTexture, ue = V.withTextureFramebuffer; pe("readable", function(Q, ee) { W.texImage2D(W.TEXTURE_2D, 0, W.RGBA, B, M, 0, W.RGBA, W.UNSIGNED_BYTE, null), ue(Q, ee, function(se) { T( B, M, v, b, k, A, W, se, 0, 0, 0 // red channel ), W.readPixels(0, 0, B, M, W.RGBA, W.UNSIGNED_BYTE, E); }); }); }); for (var P = new Uint8Array(B * M), H = 0, $ = 0; H < E.length; H += 4) P[$++] = E[H]; return P; } function D(B, M, v, b, k, A, _, N, E, P) { A === void 0 && (A = 1), N === void 0 && (N = 0), E === void 0 && (E = 0), P === void 0 && (P = 0), T(B, M, v, b, k, A, _, null, N, E, P); } function T(B, M, v, b, k, A, _, N, E, P, H) { A === void 0 && (A = 1), E === void 0 && (E = 0), P === void 0 && (P = 0), H === void 0 && (H = 0), J(_); var $ = []; e(v, function(V, W, pe, ue) { $.push(V, W, pe, ue); }), $ = new Float32Array($), s(_, function(V) { var W = V.gl, pe = V.isWebGL2, ue = V.getExtension, Q = V.withProgram, ee = V.withTexture, se = V.withTextureFramebuffer, j = V.handleContextLoss; if (ee("rawDistances", function(te, q) { (B !== te._lastWidth || M !== te._lastHeight) && W.texImage2D( W.TEXTURE_2D, 0, W.RGBA, te._lastWidth = B, te._lastHeight = M, 0, W.RGBA, W.UNSIGNED_BYTE, null ), Q("main", F, U, function(L) { var he = L.setAttribute, K = L.setUniform, ae = !pe && ue("ANGLE_instanced_arrays"), Y = !pe && ue("EXT_blend_minmax"); he("aUV", 2, W.STATIC_DRAW, 0, G), he("aLineSegment", 4, W.DYNAMIC_DRAW, 1, $), K.apply(void 0, ["4f", "uGlyphBounds"].concat(b)), K("1f", "uMaxDistance", k), K("1f", "uExponent", A), se(te, q, function(be) { W.enable(W.BLEND), W.colorMask(!0, !0, !0, !0), W.viewport(0, 0, B, M), W.scissor(0, 0, B, M), W.blendFunc(W.ONE, W.ONE), W.blendEquationSeparate(W.FUNC_ADD, pe ? W.MAX : Y.MAX_EXT), W.clear(W.COLOR_BUFFER_BIT), pe ? W.drawArraysInstanced(W.TRIANGLES, 0, 3, $.length / 4) : ae.drawArraysInstancedANGLE(W.TRIANGLES, 0, 3, $.length / 4); }); }), Q("post", a, w, function(L) { L.setAttribute("aUV", 2, W.STATIC_DRAW, 0, G), L.setUniform("1i", "tex", q), W.bindFramebuffer(W.FRAMEBUFFER, N), W.disable(W.BLEND), W.colorMask(H === 0, H === 1, H === 2, H === 3), W.viewport(E, P, B, M), W.scissor(E, P, B, M), W.drawArrays(W.TRIANGLES, 0, 3); }); }), W.isContextLost()) throw j(), new Error("webgl context lost"); }); } function X(B) { var M = !B || B === x ? I : B.canvas || B, v = R.get(M); if (v === void 0) { C = !0; var b = null; try { var k = [ 97, 106, 97, 61, 99, 137, 118, 80, 80, 118, 137, 99, 61, 97, 106, 97 ], A = m( 4, 4, "M8,8L16,8L24,24L16,24Z", [0, 0, 32, 32], 24, 1, B ); v = A && k.length === A.length && A.every(function(_, N) { return _ === k[N]; }), v || (b = "bad trial run results", console.info(k, A)); } catch (_) { v = !1, b = _.message; } b && console.warn("WebGL SDF generation not supported:", b), C = !1, R.set(M, v); } return v; } var z = /* @__PURE__ */ Object.freeze({ __proto__: null, generate: m, generateIntoCanvas: D, generateIntoFramebuffer: T, isSupported: X }); function Z(B, M, v, b, k, A) { k === void 0 && (k = Math.max(b[2] - b[0], b[3] - b[1]) / 2), A === void 0 && (A = 1); try { return m.apply(z, arguments); } catch (_) { return console.info("WebGL SDF generation failed, falling back to JS", _), p.apply(S, arguments); } } function re(B, M, v, b, k, A, _, N, E, P) { k === void 0 && (k = Math.max(b[2] - b[0], b[3] - b[1]) / 2), A === void 0 && (A = 1), N === void 0 && (N = 0), E === void 0 && (E = 0), P === void 0 && (P = 0); try { return D.apply(z, arguments); } catch (H) { return console.info("WebGL SDF generation failed, falling back to JS", H), g.apply(S, arguments); } } return r.forEachPathCommand = t, r.generate = Z, r.generateIntoCanvas = re, r.javascript = S, r.pathToLineSegments = e, r.webgl = z, r.webglUtils = h, Object.defineProperty(r, "__esModule", { value: !0 }), r; }({}); return c; } function Jn() { var c = function(r) { var d = { R: "13k,1a,2,3,3,2+1j,ch+16,a+1,5+2,2+n,5,a,4,6+16,4+3,h+1b,4mo,179q,2+9,2+11,2i9+7y,2+68,4,3+4,5+13,4+3,2+4k,3+29,8+cf,1t+7z,w+17,3+3m,1t+3z,16o1+5r,8+30,8+mc,29+1r,29+4v,75+73", EN: "1c+9,3d+1,6,187+9,513,4+5,7+9,sf+j,175h+9,qw+q,161f+1d,4xt+a,25i+9", ES: "17,2,6dp+1,f+1,av,16vr,mx+1,4o,2", ET: "z+2,3h+3,b+1,ym,3e+1,2o,p4+1,8,6u,7c,g6,1wc,1n9+4,30+1b,2n,6d,qhx+1,h0m,a+1,49+2,63+1,4+1,6bb+3,12jj", AN: "16o+5,2j+9,2+1,35,ed,1ff2+9,87+u", CS: "18,2+1,b,2u,12k,55v,l,17v0,2,3,53,2+1,b", B: "a,3,f+2,2v,690", S: "9,2,k", WS: "c,k,4f4,1vk+a,u,1j,335", ON: "x+1,4+4,h+5,r+5,r+3,z,5+3,2+1,2+1,5,2+2,3+4,o,w,ci+1,8+d,3+d,6+8,2+g,39+1,9,6+1,2,33,b8,3+1,3c+1,7+1,5r,b,7h+3,sa+5,2,3i+6,jg+3,ur+9,2v,ij+1,9g+9,7+a,8m,4+1,49+x,14u,2+2,c+2,e+2,e+2,e+1,i+n,e+e,2+p,u+2,e+2,36+1,2+3,2+1,b,2+2,6+5,2,2,2,h+1,5+4,6+3,3+f,16+2,5+3l,3+81,1y+p,2+40,q+a,m+13,2r+ch,2+9e,75+hf,3+v,2+2w,6e+5,f+6,75+2a,1a+p,2+2g,d+5x,r+b,6+3,4+o,g,6+1,6+2,2k+1,4,2j,5h+z,1m+1,1e+f,t+2,1f+e,d+3,4o+3,2s+1,w,535+1r,h3l+1i,93+2,2s,b+1,3l+x,2v,4g+3,21+3,kz+1,g5v+1,5a,j+9,n+v,2,3,2+8,2+1,3+2,2,3,46+1,4+4,h+5,r+5,r+a,3h+2,4+6,b+4,78,1r+24,4+c,4,1hb,ey+6,103+j,16j+c,1ux+7,5+g,fsh,jdq+1t,4,57+2e,p1,1m,1m,1m,1m,4kt+1,7j+17,5+2r,d+e,3+e,2+e,2+10,m+4,w,1n+5,1q,4z+5,4b+rb,9+c,4+c,4+37,d+2g,8+b,l+b,5+1j,9+9,7+13,9+t,3+1,27+3c,2+29,2+3q,d+d,3+4,4+2,6+6,a+o,8+6,a+2,e+6,16+42,2+1i", BN: "0+8,6+d,2s+5,2+p,e,4m9,1kt+2,2b+5,5+5,17q9+v,7k,6p+8,6+1,119d+3,440+7,96s+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+75,6p+2rz,1ben+1,1ekf+1,1ekf+1", NSM: "lc+33,7o+6,7c+18,2,2+1,2+1,2,21+a,1d+k,h,2u+6,3+5,3+1,2+3,10,v+q,2k+a,1n+8,a,p+3,2+8,2+2,2+4,18+2,3c+e,2+v,1k,2,5+7,5,4+6,b+1,u,1n,5+3,9,l+1,r,3+1,1m,5+1,5+1,3+2,4,v+1,4,c+1,1m,5+4,2+1,5,l+1,n+5,2,1n,3,2+3,9,8+1,c+1,v,1q,d,1f,4,1m+2,6+2,2+3,8+1,c+1,u,1n,g+1,l+1,t+1,1m+1,5+3,9,l+1,u,21,8+2,2,2j,3+6,d+7,2r,3+8,c+5,23+1,s,2,2,1k+d,2+4,2+1,6+a,2+z,a,2v+3,2+5,2+1,3+1,q+1,5+2,h+3,e,3+1,7,g,jk+2,qb+2,u+2,u+1,v+1,1t+1,2+6,9,3+a,a,1a+2,3c+1,z,3b+2,5+1,a,7+2,64+1,3,1n,2+6,2,2,3+7,7+9,3,1d+g,1s+3,1d,2+4,2,6,15+8,d+1,x+3,3+1,2+2,1l,2+1,4,2+2,1n+7,3+1,49+2,2+c,2+6,5,7,4+1,5j+1l,2+4,k1+w,2db+2,3y,2p+v,ff+3,30+1,n9x+3,2+9,x+1,29+1,7l,4,5,q+1,6,48+1,r+h,e,13+7,q+a,1b+2,1d,3+3,3+1,14,1w+5,3+1,3+1,d,9,1c,1g,2+2,3+1,6+1,2,17+1,9,6n,3,5,fn5,ki+f,h+f,r2,6b,46+4,1af+2,2+1,6+3,15+2,5,4m+1,fy+3,as+1,4a+a,4x,1j+e,1l+2,1e+3,3+1,1y+2,11+4,2+7,1r,d+1,1h+8,b+3,3,2o+2,3,2+1,7,4h,4+7,m+1,1m+1,4,12+6,4+4,5g+7,3+2,2,o,2d+5,2,5+1,2+1,6n+3,7+1,2+1,s+1,2e+7,3,2+1,2z,2,3+5,2,2u+2,3+3,2+4,78+8,2+1,75+1,2,5,41+3,3+1,5,x+5,3+1,15+5,3+3,9,a+5,3+2,1b+c,2+1,bb+6,2+5,2d+l,3+6,2+1,2+1,3f+5,4,2+1,2+6,2,21+1,4,2,9o+1,f0c+4,1o+6,t5,1s+3,2a,f5l+1,43t+2,i+7,3+6,v+3,45+2,1j0+1i,5+1d,9,f,n+4,2+e,11t+6,2+g,3+6,2+1,2+4,7a+6,c6+3,15t+6,32+6,gzhy+6n", AL: "16w,3,2,e+1b,z+2,2+2s,g+1,8+1,b+m,2+t,s+2i,c+e,4h+f,1d+1e,1bwe+dp,3+3z,x+c,2+1,35+3y,2rm+z,5+7,b+5,dt+l,c+u,17nl+27,1t+27,4x+6n,3+d", LRO: "6ct", RLO: "6cu", LRE: "6cq", RLE: "6cr", PDF: "6cs", LRI: "6ee", RLI: "6ef", FSI: "6eg", PDI: "6eh" }, u = {}, t = {}; u.L = 1, t[1] = "L", Object.keys(d).forEach(function(j, te) { u[j] = 1 << te + 1, t[u[j]] = j; }), Object.freeze(u); var e = u.LRI | u.RLI | u.FSI, a = u.L | u.R | u.AL, o = u.B | u.S | u.WS | u.ON | u.FSI | u.LRI | u.RLI | u.PDI, n = u.BN | u.RLE | u.LRE | u.RLO | u.LRO | u.PDF, i = u.S | u.WS | u.B | e | u.PDI | n, s = null; function f() { if (!s) { s = /* @__PURE__ */ new Map(); var j = function(q) { if (d.hasOwnProperty(q)) { var L = 0; d[q].split(",").forEach(function(he) { var K = he.split("+"), ae = K[0], Y = K[1]; ae = parseInt(ae, 36), Y = Y ? parseInt(Y, 36) : 0, s.set(L += ae, u[q]); for (var be = 0; be < Y; be++) s.set(++L, u[q]); }); } }; for (var te in d) j(te); } } function l(j) { return f(), s.get(j.codePointAt(0)) || u.L; } function h(j) { return t[l(j)]; } var p = { pairs: "14>1,1e>2,u>2,2wt>1,1>1,1ge>1,1wp>1,1j>1,f>1,hm>1,1>1,u>1,u6>1,1>1,+5,28>1,w>1,1>1,+3,b8>1,1>1,+3,1>3,-1>-1,3>1,1>1,+2,1s>1,1>1,x>1,th>1,1>1,+2,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,4q>1,1e>2,u>2,2>1,+1", canonical: "6f1>-6dx,6dy>-6dx,6ec>-6ed,6ee>-6ed,6ww>2jj,-2ji>2jj,14r4>-1e7l,1e7m>-1e7l,1e7m>-1e5c,1e5d>-1e5b,1e5c>-14qx,14qy>-14qx,14vn>-1ecg,1ech>-1ecg,1edu>-1ecg,1eci>-1ecg,1eda>-1ecg,1eci>-1ecg,1eci>-168q,168r>-168q,168s>-14ye,14yf>-14ye" }; function g(j, te) { var q = 36, L = 0, he = /* @__PURE__ */ new Map(), K = te && /* @__PURE__ */ new Map(), ae; return j.split(",").forEach(function Y(be) { if (be.indexOf("+") !== -1) for (var ne = +be; ne--; ) Y(ae); else { ae = be; var oe = be.split(">"), le = oe[0], de = oe[1]; le = String.fromCodePoint(L += parseInt(le, q)), de = String.fromCodePoint(L += parseInt(de, q)), he.set(le, de), te && K.set(de, le); } }), { map: he, reverseMap: K }; } var y, O, S; function F() { if (!y) { var j = g(p.pairs, !0), te = j.map, q = j.reverseMap; y = te, O = q, S = g(p.canonical, !1).map; } } function U(j) { return F(), y.get(j) || null; } function w(j) { return F(), O.get(j) || null; } function G(j) { return F(), S.get(j) || null; } var x = u.L, C = u.R, I = u.EN, R = u.ES, J = u.ET, m = u.AN, D = u.CS, T = u.B, X = u.S, z = u.ON, Z = u.BN, re = u.NSM, B = u.AL, M = u.LRO, v = u.RLO, b = u.LRE, k = u.RLE, A = u.PDF, _ = u.LRI, N = u.RLI, E = u.FSI, P = u.PDI; function H(j, te) { for (var q = 125, L = new Uint32Array(j.length), he = 0; he < j.length; he++) L[he] = l(j[he]); var K = /* @__PURE__ */ new Map(); function ae(Le, We) { var Be = L[Le]; L[Le] = We, K.set(Be, K.get(Be) - 1), Be & o && K.set(o, K.get(o) - 1), K.set(We, (K.get(We) || 0) + 1), We & o && K.set(o, (K.get(o) || 0) + 1); } for (var Y = new Uint8Array(j.length), be = /* @__PURE__ */ new Map(), ne = [], oe = null, le = 0; le < j.length; le++) oe || ne.push(oe = { start: le, end: j.length - 1, // 3.3.1 P2-P3: Determine the paragraph level level: te === "rtl" ? 1 : te === "ltr" ? 0 : Ir(le, !1) }), L[le] & T && (oe.end = le, oe = null); for (var de = k | b | v | M | e | P | A | T, xe = function(Le) { return Le + (Le & 1 ? 1 : 2); }, Fe = function(Le) { return Le + (Le & 1 ? 2 : 1); }, ge = 0; ge < ne.length; ge++) { oe = ne[ge]; var me = [{ _level: oe.level, _override: 0, //0=neutral, 1=L, 2=R _isolate: 0 //bool }], fe = void 0, Ce = 0, ke = 0, Oe = 0; K.clear(); for (var Se = oe.start; Se <= oe.end; Se++) { var ce = L[Se]; if (fe = me[me.length - 1], K.set(ce, (K.get(ce) || 0) + 1), ce & o && K.set(o, (K.get(o) || 0) + 1), ce & de) if (ce & (k | b)) { Y[Se] = fe._level; var Ue = (ce === k ? Fe : xe)(fe._level); Ue <= q && !Ce && !ke ? me.push({ _level: Ue, _override: 0, _isolate: 0 }) : Ce || ke++; } else if (ce & (v | M)) { Y[Se] = fe._level; var Xe = (ce === v ? Fe : xe)(fe._level); Xe <= q && !Ce && !ke ? me.push({ _level: Xe, _override: ce & v ? C : x, _isolate: 0 }) : Ce || ke++; } else if (ce & e) { ce & E && (ce = Ir(Se + 1, !0) === 1 ? N : _), Y[Se] = fe._level, fe._override && ae(Se, fe._override); var _e = (ce === N ? Fe : xe)(fe._level); _e <= q && Ce === 0 && ke === 0 ? (Oe++, me.push({ _level: _e, _override: 0, _isolate: 1, _isolInitIndex: Se })) : Ce++; } else if (ce & P) { if (Ce > 0) Ce--; else if (Oe > 0) { for (ke = 0; !me[me.length - 1]._isolate; ) me.pop(); var ye = me[me.length - 1]._isolInitIndex; ye != null && (be.set(ye, Se), be.set(Se, ye)), me.pop(), Oe--; } fe = me[me.length - 1], Y[Se] = fe._level, fe._override && ae(Se, fe._override); } else ce & A ? (Ce === 0 && (ke > 0 ? ke-- : !fe._isolate && me.length > 1 && (me.pop(), fe = me[me.length - 1])), Y[Se] = fe._level) : ce & T && (Y[Se] = oe.level); else Y[Se] = fe._level, fe._override && ce !== Z && ae(Se, fe._override); } for (var Ae = [], we = null, ve = oe.start; ve <= oe.end; ve++) { var Te = L[ve]; if (!(Te & n)) { var Re = Y[ve], Me = Te & e, De = Te === P; we && Re === we._level ? (we._end = ve, we._endsWithIsolInit = Me) : Ae.push(we = { _start: ve, _end: ve, _level: Re, _startsWithPDI: De, _endsWithIsolInit: Me }); } } for (var Ie = [], He = 0; He < Ae.length; He++) { var je = Ae[He]; if (!je._startsWithPDI || je._startsWithPDI && !be.has(je._start)) { for (var Ye = [we = je], Qe = void 0; we && we._endsWithIsolInit && (Qe = be.get(we._end)) != null; ) for (var Ve = He + 1; Ve < Ae.length; Ve++) if (Ae[Ve]._start === Qe) { Ye.push(we = Ae[Ve]); break; } for (var Ge = [], Ze = 0; Ze < Ye.length; Ze++) for (var br = Ye[Ze], Nt = br._start; Nt <= br._end; Nt++) Ge.push(Nt); for (var bn = Y[Ge[0]], Ur = oe.level, Ut = Ge[0] - 1; Ut >= 0; Ut--) if (!(L[Ut] & n)) { Ur = Y[Ut]; break; } var Wt = Ge[Ge.length - 1], Un = Y[Wt], _r = oe.level; if (!(L[Wt] & e)) { for (var _t = Wt + 1; _t <= oe.end; _t++) if (!(L[_t] & n)) { _r = Y[_t]; break; } } Ie.push({ _seqIndices: Ge, _sosType: Math.max(Ur, bn) % 2 ? C : x, _eosType: Math.max(_r, Un) % 2 ? C : x }); } } for (var zt = 0; zt < Ie.length; zt++) { var jt = Ie[zt], ie = jt._seqIndices, st = jt._sosType, _n = jt._eosType, tt = Y[ie[0]] & 1 ? C : x; if (K.get(re)) for (var xt = 0; xt < ie.length; xt++) { var xr = ie[xt]; if (L[xr] & re) { for (var Vt = st, St = xt - 1; St >= 0; St--) if (!(L[ie[St]] & n)) { Vt = L[ie[St]]; break; } ae(xr, Vt & (e | P) ? z : Vt); } } if (K.get(I)) for (var kt = 0; kt < ie.length; kt++) { var Sr = ie[kt]; if (L[Sr] & I) for (var wt = kt - 1; wt >= -1; wt--) { var kr = wt === -1 ? st : L[ie[wt]]; if (kr & a) { kr === B && ae(Sr, m); break; } } } if (K.get(B)) for (var Xt = 0; Xt < ie.length; Xt++) { var wr = ie[Xt]; L[wr] & B && ae(wr, C); } if (K.get(R) || K.get(D)) for (var ft = 1; ft < ie.length - 1; ft++) { var Ht = ie[ft]; if (L[Ht] & (R | D)) { for (var rt = 0, Yt = 0, Jt = ft - 1; Jt >= 0 && (rt = L[ie[Jt]], !!(rt & n)); Jt--) ; for (var Kt = ft + 1; Kt < ie.length && (Yt = L[ie[Kt]], !!(Yt & n)); Kt++) ; rt === Yt && (L[Ht] === R ? rt === I : rt & (I | m)) && ae(Ht, rt); } } if (K.get(I)) for (var ze = 0; ze < ie.length; ze++) { var xn = ie[ze]; if (L[xn] & I) { for (var Tt = ze - 1; Tt >= 0 && L[ie[Tt]] & (J | n); Tt--) ae(ie[Tt], I); for (ze++; ze < ie.length && L[ie[ze]] & (J | n | I); ze++) L[ie[ze]] !== I && ae(ie[ze], I); } } if (K.get(J) || K.get(R) || K.get(D)) for (var lt = 0; lt < ie.length; lt++) { var Tr = ie[lt]; if (L[Tr] & (J | R | D)) { ae(Tr, z); for (var Ft = lt - 1; Ft >= 0 && L[ie[Ft]] & n; Ft--) ae(ie[Ft], z); for (var Ct = lt + 1; Ct < ie.length && L[ie[Ct]] & n; Ct++) ae(ie[Ct], z); } } if (K.get(I)) for (var Qt = 0, Fr = st; Qt < ie.length; Qt++) { var Cr = ie[Qt], Zt = L[Cr]; Zt & I ? Fr === x && ae(Cr, x) : Zt & a && (Fr = Zt); } if (K.get(o)) { var ut = C | I | m, Ar = ut | x, At = []; { for (var nt = [], at = 0; at < ie.length; at++) if (L[ie[at]] & o) { var ct = j[ie[at]], Dr = void 0; if (U(ct) !== null) if (nt.length < 63) nt.push({ char: ct, seqIndex: at }); else break; else if ((Dr = w(ct)) !== null) for (var ht = nt.length - 1; ht >= 0; ht--) { var qt = nt[ht].char; if (qt === Dr || qt === w(G(ct)) || U(G(qt)) === ct) { At.push([nt[ht].seqIndex, at]), nt.length = ht; break; } } } At.sort(function(Le, We) { return Le[0] - We[0]; }); } for (var $t = 0; $t < At.length; $t++) { for (var Er = At[$t], Dt = Er[0], er = Er[1], Mr = !1, Ne = 0, tr = Dt + 1; tr < er; tr++) { var Rr = ie[tr]; if (L[Rr] & Ar) { Mr = !0; var Gr = L[Rr] & ut ? C : x; if (Gr === tt) { Ne = Gr; break; } } } if (Mr && !Ne) { Ne = st; for (var rr = Dt - 1; rr >= 0; rr--) { var Or = ie[rr]; if (L[Or] & Ar) { var Lr = L[Or] & ut ? C : x; Lr !== tt ? Ne = Lr : Ne = tt; break; } } } if (Ne) { if (L[ie[Dt]] = L[ie[er]] = Ne, Ne !== tt) { for (var dt = Dt + 1; dt < ie.length; dt++) if (!(L[ie[dt]] & n)) { l(j[ie[dt]]) & re && (L[ie[dt]] = Ne); break; } } if (Ne !== tt) { for (var vt = er + 1; vt < ie.length; vt++) if (!(L[ie[vt]] & n)) { l(j[ie[vt]]) & re && (L[ie[vt]] = Ne); break; } } } } for (var Je = 0; Je < ie.length; Je++) if (L[ie[Je]] & o) { for (var Br = Je, nr = Je, ar = st, pt = Je - 1; pt >= 0; pt--) if (L[ie[pt]] & n) Br = pt; else { ar = L[ie[pt]] & ut ? C : x; break; } for (var Pr = _n, gt = Je + 1; gt < ie.length; gt++) if (L[ie[gt]] & (o | n)) nr = gt; else { Pr = L[ie[gt]] & ut ? C : x; break; } for (var or = Br; or <= nr; or++) L[ie[or]] = ar === Pr ? ar : tt; Je = nr; } } } for (var Pe = oe.start; Pe <= oe.end; Pe++) { var Sn = Y[Pe], Et = L[Pe]; if (Sn & 1 ? Et & (x | I | m) && Y[Pe]++ : Et & C ? Y[Pe]++ : Et & (m | I) && (Y[Pe] += 2), Et & n && (Y[Pe] = Pe === 0 ? oe.level : Y[Pe - 1]), Pe === oe.end || l(j[Pe]) & (X | T)) for (var Mt = Pe; Mt >= 0 && l(j[Mt]) & i; Mt--) Y[Mt] = oe.level; } } return { levels: Y, paragraphs: ne }; function Ir(Le, We) { for (var Be = Le; Be < j.length; Be++) { var Ke = L[Be]; if (Ke & (C | B)) return 1; if (Ke & (T | x) || We && Ke === P) return 0; if (Ke & e) { var Nr = kn(Be); Be = Nr === -1 ? j.length : Nr; } } return 0; } function kn(Le) { for (var We = 1, Be = Le + 1; Be < j.length; Be++) { var Ke = L[Be]; if (Ke & T) break; if (Ke & P) { if (--We === 0) return Be; } else Ke & e && We++; } return -1; } } var $ = "14>1,j>2,t>2,u>2,1a>g,2v3>1,1>1,1ge>1,1wd>1,b>1,1j>1,f>1,ai>3,-2>3,+1,8>1k0,-1jq>1y7,-1y6>1hf,-1he>1h6,-1h5>1ha,-1h8>1qi,-1pu>1,6>3u,-3s>7,6>1,1>1,f>1,1>1,+2,3>1,1>1,+13,4>1,1>1,6>1eo,-1ee>1,3>1mg,-1me>1mk,-1mj>1mi,-1mg>1mi,-1md>1,1>1,+2,1>10k,-103>1,1>1,4>1,5>1,1>1,+10,3>1,1>8,-7>8,+1,-6>7,+1,a>1,1>1,u>1,u6>1,1>1,+5,26>1,1>1,2>1,2>2,8>1,7>1,4>1,1>1,+5,b8>1,1>1,+3,1>3,-2>1,2>1,1>1,+2,c>1,3>1,1>1,+2,h>1,3>1,a>1,1>1,2>1,3>1,1>1,d>1,f>1,3>1,1a>1,1>1,6>1,7>1,13>1,k>1,1>1,+19,4>1,1>1,+2,2>1,1>1,+18,m>1,a>1,1>1,lk>1,1>1,4>1,2>1,f>1,3>1,1>1,+3,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,6>1,4j>1,j>2,t>2,u>2,2>1,+1", V; function W() { if (!V) { var j = g($, !0), te = j.map, q = j.reverseMap; q.forEach(function(L, he) { te.set(he, L); }), V = te; } } function pe(j) { return W(), V.get(j) || null; } function ue(j, te, q, L) { var he = j.length; q = Math.max(0, q == null ? 0 : +q), L = Math.min(he - 1, L == null ? he - 1 : +L); for (var K = /* @__PURE__ */ new Map(), ae = q; ae <= L; ae++) if (te[ae] & 1) { var Y = pe(j[ae]); Y !== null && K.set(ae, Y); } return K; } function Q(j, te, q, L) { var he = j.length; q = Math.max(0, q == null ? 0 : +q), L = Math.min(he - 1, L == null ? he - 1 : +L); var K = []; return te.paragraphs.forEach(function(ae) { var Y = Math.max(q, ae.start), be = Math.min(L, ae.end); if (Y < be) { for (var ne = te.levels.slice(Y, be + 1), oe = be; oe >= Y && l(j[oe]) & i; oe--) ne[oe] = ae.level; for (var le = ae.level, de = 1 / 0, xe = 0; xe < ne.length; xe++) { var Fe = ne[xe]; Fe > le && (le = Fe), Fe < de && (de = Fe | 1); } for (var ge = le; ge >= de; ge--) for (var me = 0; me < ne.length; me++) if (ne[me] >= ge) { for (var fe = me; me + 1 < ne.length && ne[me + 1] >= ge; ) me++; me > fe && K.push([fe + Y, me + Y]); } } }), K; } function ee(j, te, q, L) { var he = se(j, te, q, L), K = [].concat(j); return he.forEach(function(ae, Y) { K[Y] = (te.levels[ae] & 1 ? pe(j[ae]) : null) || j[ae]; }), K.join(""); } function se(j, te, q, L) { for (var he = Q(j, te, q, L), K = [], ae = 0; ae < j.length; ae++) K[ae] = ae; return he.forEach(function(Y) { for (var be = Y[0], ne = Y[1], oe = K.slice(be, ne + 1), le = oe.length; le--; ) K[ne - le] = oe[le]; }), K; } return r.closingToOpeningBracket = w, r.getBidiCharType = l, r.getBidiCharTypeName = h, r.getCanonicalBracket = G, r.getEmbeddingLevels = H, r.getMirroredCharacter = pe, r.getMirroredCharactersMap = ue, r.getReorderSegments = Q, r.getReorderedIndices = se, r.getReorderedString = ee, r.openingToClosingBracket = U, Object.defineProperty(r, "__esModule", { value: !0 }), r; }({}); return c; } const ln = /\bvoid\s+main\s*\(\s*\)\s*{/g; function cr(c) { const r = /^[ \t]*#include +<([\w\d./]+)>/gm; function d(u, t) { let e = An[t]; return e ? cr(e) : u; } return c.replace(r, d); } const Ee = []; for (let c = 0; c < 256; c++) Ee[c] = (c < 16 ? "0" : "") + c.toString(16); function Kn() { const c = Math.random() * 4294967295 | 0, r = Math.random() * 4294967295 | 0, d = Math.random() * 4294967295 | 0, u = Math.random() * 4294967295 | 0; return (Ee[c & 255] + Ee[c >> 8 & 255] + Ee[c >> 16 & 255] + Ee[c >> 24 & 255] + "-" + Ee[r & 255] + Ee[r >> 8 & 255] + "-" + Ee[r >> 16 & 15 | 64] + Ee[r >> 24 & 255] + "-" + Ee[d & 63 | 128] + Ee[d >> 8 & 255] + "-" + Ee[d >> 16 & 255] + Ee[d >> 24 & 255] + Ee[u & 255] + Ee[u >> 8 & 255] + Ee[u >> 16 & 255] + Ee[u >> 24 & 255]).toUpperCase(); } const qe = Object.assign || function() { let c = arguments[0]; for (let r = 1, d = arguments.length; r < d; r++) { let u = arguments[r]; if (u) for (let t in u) Object.prototype.hasOwnProperty.call(u, t) && (c[t] = u[t]); } return c; }, Qn = Date.now(), Vr = /* @__PURE__ */ new WeakMap(), Xr = /* @__PURE__ */ new Map(); let Zn = 1e10; function hr(c, r) { const d = ta(r); let u = Vr.get(c); if (u || Vr.set(c, u = /* @__PURE__ */ Object.create(null)), u[d]) return new u[d](); const t = `_onBeforeCompile${d}`, e = function(i, s) { c.onBeforeCompile.call(this, i, s); const f = this.customProgramCacheKey() + "|" + i.vertexShader + "|" + i.fragmentShader; let l = Xr[f]; if (!l) { const h = qn(this, i, r, d); l = Xr[f] = h; } i.vertexShader = l.vertexShader, i.fragmentShader = l.fragmentShader, qe(i.uniforms, this.uniforms), r.timeUniform && (i.uniforms[r.timeUniform] = { get value() { return Date.now() - Qn; } }), this[t] && this[t](i); }, a = function() { return o(r.chained ? c : c.clone()); }, o = function(i) { const s = Object.create(i, n); return Object.defineProperty(s, "baseMaterial", { value: c }), Object.defineProperty(s, "id", { value: Zn++ }), s.uuid = Kn(), s.uniforms = qe({}, i.uniforms, r.uniforms), s.defines = qe({}, i.defines, r.defines), s.defines[`TROIKA_DERIVED_MATERIAL_${d}`] = "", s.extensions = qe({}, i.extensions, r.extensions), s._listeners = void 0, s; }, n = { constructor: { value: a }, isDerivedMaterial: { value: !0 }, customProgramCacheKey: { writable: !0, configurable: !0, value: function() { return c.customProgramCacheKey() + "|" + d; } }, onBeforeCompile: { get() { return e; }, set(i) { this[t] = i; } }, copy: { writable: !0, configurable: !0, value: function(i) { return c.copy.call(this, i), !c.isShaderMaterial && !c.isDerivedMaterial && (qe(this.extensions, i.extensions), qe(this.defines, i.defines), qe(this.uniforms, Cn.clone(i.uniforms))), this; } }, clone: { writable: !0, configurable: !0, value: function() { const i = new c.constructor(); return o(i).copy(this); } }, /** * Utility to get a MeshDepthMaterial that will honor this derived material's vertex * transformations and discarded fragments. */ getDepthMaterial: { writable: !0, configurable: !0, value: function() { let i = this._depthMaterial; return i || (i = this._depthMaterial = hr( c.isDerivedMaterial ? c.getDepthMaterial() : new Tn({ depthPacking: Fn }), r ), i.defines.IS_DEPTH_MATERIAL = "", i.uniforms = this.uniforms), i; } }, /** * Utility to get a MeshDistanceMaterial that will honor this derived material's vertex * transformations and discarded fragments. */ getDistanceMaterial: { writable: !0, configurable: !0, value: function() { let i = this._distanceMaterial; return i || (i = this._distanceMaterial = hr( c.isDerivedMaterial ? c.getDistanceMaterial() : new wn(), r ), i.defines.IS_DISTANCE_MATERIAL = "", i.uniforms = this.uniforms), i; } }, dispose: { writable: !0, configurable: !0, value() { const { _depthMaterial: i, _distanceMaterial: s } = this; i && i.dispose(), s && s.dispose(), c.dispose.call(this); } } }; return u[d] = a, new a(); } function qn(c, { vertexShader: r, fragmentShader: d }, u, t) { let { vertexDefs: e, vertexMainIntro: a, vertexMainOutro: o, vertexTransform: n, fragmentDefs: i, fragmentMainIntro: s, fragmentMainOutro: f, fragmentColorTransform: l, customRewriter: h, timeUniform: p } = u; if (e = e || "", a = a || "", o = o || "", i = i || "", s = s || "", f = f || "", (n || h) && (r = cr(r)), (l || h) && (d = d.replace( /^[ \t]*#include <((?:tonemapping|encodings|fog|premultiplied_alpha|dithering)_fragment)>/gm, ` //!BEGIN_POST_CHUNK $1 $& //!END_POST_CHUNK ` ), d = cr(d)), h) { let g = h({ vertexShader: r, fragmentShader: d }); r = g.vertexShader, d = g.fragmentShader; } if (l) { let g = []; d = d.replace( /^\/\/!BEGIN_POST_CHUNK[^]+?^\/\/!END_POST_CHUNK/gm, // [^]+? = non-greedy match of any chars including newlines (y) => (g.push(y), "") ), f = `${l} ${g.join(` `)} ${f}`; } if (p) { const g = ` uniform float ${p}; `; e = g + e, i = g + i; } return n && (r = `vec3 troika_position_${t}; vec3 troika_normal_${t}; vec2 troika_