@annotorious/react 3.0.0-rc.3 → 3.0.0-rc.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/annotorious-react.es10.js +1 -1
- package/dist/annotorious-react.es13.js +1 -1
- package/dist/annotorious-react.es14.js +1 -1
- package/dist/annotorious-react.es15.js +1 -1
- package/dist/annotorious-react.es18.js +1537 -1472
- package/dist/annotorious-react.es18.js.map +1 -1
- package/dist/annotorious-react.es19.js +7 -7
- package/dist/annotorious-react.es2.js.map +1 -1
- package/dist/annotorious-react.es20.js +1 -1
- package/dist/annotorious-react.es22.js +1 -1
- package/dist/annotorious-react.es24.js.map +1 -1
- package/dist/annotorious-react.es25.js +20131 -6
- package/dist/annotorious-react.es25.js.map +1 -1
- package/dist/annotorious-react.es26.js +31 -20661
- package/dist/annotorious-react.es26.js.map +1 -1
- package/dist/annotorious-react.es27.js +6 -32
- package/dist/annotorious-react.es27.js.map +1 -1
- package/dist/annotorious-react.es29.js.map +1 -1
- package/dist/annotorious-react.es30.js.map +1 -1
- package/dist/annotorious-react.es33.js +16 -17
- package/dist/annotorious-react.es33.js.map +1 -1
- package/dist/annotorious-react.es34.js +15 -25
- package/dist/annotorious-react.es34.js.map +1 -1
- package/dist/annotorious-react.es35.js +26 -15
- package/dist/annotorious-react.es35.js.map +1 -1
- package/dist/annotorious-react.es37.js.map +1 -1
- package/dist/annotorious-react.es38.js.map +1 -1
- package/dist/annotorious-react.es39.js.map +1 -1
- package/dist/annotorious-react.es40.js.map +1 -1
- package/dist/annotorious-react.es5.js +2 -2
- package/dist/annotorious-react.es8.js +50 -39
- package/dist/annotorious-react.es8.js.map +1 -1
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"annotorious-react.es18.js","sources":["../../annotorious/dist/annotorious.es.js"],"sourcesContent":["function H() {\n}\nfunction Kt(e, t) {\n for (const n in t)\n e[n] = t[n];\n return e;\n}\nfunction Dt(e) {\n return e();\n}\nfunction ct() {\n return /* @__PURE__ */ Object.create(null);\n}\nfunction ae(e) {\n e.forEach(Dt);\n}\nfunction j(e) {\n return typeof e == \"function\";\n}\nfunction $(e, t) {\n return e != e ? t == t : e !== t || e && typeof e == \"object\" || typeof e == \"function\";\n}\nfunction Zt(e) {\n return Object.keys(e).length === 0;\n}\nfunction Xt(e, ...t) {\n if (e == null)\n return H;\n const n = e.subscribe(...t);\n return n.unsubscribe ? () => n.unsubscribe() : n;\n}\nfunction ft(e, t, n) {\n e.$$.on_destroy.push(Xt(t, n));\n}\nfunction Qt(e, t, n, o) {\n if (e) {\n const i = Ut(e, t, n, o);\n return e[0](i);\n }\n}\nfunction Ut(e, t, n, o) {\n return e[1] && o ? Kt(n.ctx.slice(), e[1](o(t))) : n.ctx;\n}\nfunction xt(e, t, n, o) {\n if (e[2] && o) {\n const i = e[2](o(n));\n if (t.dirty === void 0)\n return i;\n if (typeof i == \"object\") {\n const s = [], r = Math.max(t.dirty.length, i.length);\n for (let a = 0; a < r; a += 1)\n s[a] = t.dirty[a] | i[a];\n return s;\n }\n return t.dirty | i;\n }\n return t.dirty;\n}\nfunction $t(e, t, n, o, i, s) {\n if (i) {\n const r = Ut(t, n, o, s);\n e.p(r, i);\n }\n}\nfunction en(e) {\n if (e.ctx.length > 32) {\n const t = [], n = e.ctx.length / 32;\n for (let o = 0; o < n; o++)\n t[o] = -1;\n return t;\n }\n return -1;\n}\nfunction fe(e, t) {\n e.appendChild(t);\n}\nfunction v(e, t, n) {\n e.insertBefore(t, n || null);\n}\nfunction O(e) {\n e.parentNode && e.parentNode.removeChild(e);\n}\nfunction ot(e, t) {\n for (let n = 0; n < e.length; n += 1)\n e[n] && e[n].d(t);\n}\nfunction I(e) {\n return document.createElementNS(\"http://www.w3.org/2000/svg\", e);\n}\nfunction Nt(e) {\n return document.createTextNode(e);\n}\nfunction ne() {\n return Nt(\" \");\n}\nfunction ce() {\n return Nt(\"\");\n}\nfunction J(e, t, n, o) {\n return e.addEventListener(t, n, o), () => e.removeEventListener(t, n, o);\n}\nfunction u(e, t, n) {\n n == null ? e.removeAttribute(t) : e.getAttribute(t) !== n && e.setAttribute(t, n);\n}\nfunction tn(e) {\n return Array.from(e.childNodes);\n}\nfunction ut(e, t, n) {\n e.classList[n ? \"add\" : \"remove\"](t);\n}\nfunction nn(e, t, { bubbles: n = !1, cancelable: o = !1 } = {}) {\n const i = document.createEvent(\"CustomEvent\");\n return i.initCustomEvent(e, n, o, t), i;\n}\nlet Be;\nfunction ke(e) {\n Be = e;\n}\nfunction Gt() {\n if (!Be)\n throw new Error(\"Function called outside component initialization\");\n return Be;\n}\nfunction Ce(e) {\n Gt().$$.on_mount.push(e);\n}\nfunction Se() {\n const e = Gt();\n return (t, n, { cancelable: o = !1 } = {}) => {\n const i = e.$$.callbacks[t];\n if (i) {\n const s = nn(t, n, { cancelable: o });\n return i.slice().forEach((r) => {\n r.call(e, s);\n }), !s.defaultPrevented;\n }\n return !0;\n };\n}\nfunction Ae(e, t) {\n const n = e.$$.callbacks[t.type];\n n && n.slice().forEach((o) => o.call(this, t));\n}\nconst be = [], Ge = [];\nlet Te = [];\nconst dt = [], on = /* @__PURE__ */ Promise.resolve();\nlet et = !1;\nfunction sn() {\n et || (et = !0, on.then(Ht));\n}\nfunction tt(e) {\n Te.push(e);\n}\nconst qe = /* @__PURE__ */ new Set();\nlet _e = 0;\nfunction Ht() {\n if (_e !== 0)\n return;\n const e = Be;\n do {\n try {\n for (; _e < be.length; ) {\n const t = be[_e];\n _e++, ke(t), rn(t.$$);\n }\n } catch (t) {\n throw be.length = 0, _e = 0, t;\n }\n for (ke(null), be.length = 0, _e = 0; Ge.length; )\n Ge.pop()();\n for (let t = 0; t < Te.length; t += 1) {\n const n = Te[t];\n qe.has(n) || (qe.add(n), n());\n }\n Te.length = 0;\n } while (be.length);\n for (; dt.length; )\n dt.pop()();\n et = !1, qe.clear(), ke(e);\n}\nfunction rn(e) {\n if (e.fragment !== null) {\n e.update(), ae(e.before_update);\n const t = e.dirty;\n e.dirty = [-1], e.fragment && e.fragment.p(e.ctx, t), e.after_update.forEach(tt);\n }\n}\nfunction ln(e) {\n const t = [], n = [];\n Te.forEach((o) => e.indexOf(o) === -1 ? t.push(o) : n.push(o)), n.forEach((o) => o()), Te = t;\n}\nconst Ne = /* @__PURE__ */ new Set();\nlet me;\nfunction re() {\n me = {\n r: 0,\n c: [],\n p: me\n // parent group\n };\n}\nfunction le() {\n me.r || ae(me.c), me = me.p;\n}\nfunction Y(e, t) {\n e && e.i && (Ne.delete(e), e.i(t));\n}\nfunction N(e, t, n, o) {\n if (e && e.o) {\n if (Ne.has(e))\n return;\n Ne.add(e), me.c.push(() => {\n Ne.delete(e), o && (n && e.d(1), o());\n }), e.o(t);\n } else\n o && o();\n}\nfunction pe(e) {\n e && e.c();\n}\nfunction ue(e, t, n, o) {\n const { fragment: i, after_update: s } = e.$$;\n i && i.m(t, n), o || tt(() => {\n const r = e.$$.on_mount.map(Dt).filter(j);\n e.$$.on_destroy ? e.$$.on_destroy.push(...r) : ae(r), e.$$.on_mount = [];\n }), s.forEach(tt);\n}\nfunction de(e, t) {\n const n = e.$$;\n n.fragment !== null && (ln(n.after_update), ae(n.on_destroy), n.fragment && n.fragment.d(t), n.on_destroy = n.fragment = null, n.ctx = []);\n}\nfunction an(e, t) {\n e.$$.dirty[0] === -1 && (be.push(e), sn(), e.$$.dirty.fill(0)), e.$$.dirty[t / 31 | 0] |= 1 << t % 31;\n}\nfunction oe(e, t, n, o, i, s, r, a = [-1]) {\n const l = Be;\n ke(e);\n const d = e.$$ = {\n fragment: null,\n ctx: [],\n // state\n props: s,\n update: H,\n not_equal: i,\n bound: ct(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(t.context || (l ? l.$$.context : [])),\n // everything else\n callbacks: ct(),\n dirty: a,\n skip_bound: !1,\n root: t.target || l.$$.root\n };\n r && r(d.root);\n let m = !1;\n if (d.ctx = n ? n(e, t.props || {}, (c, f, ...h) => {\n const p = h.length ? h[0] : f;\n return d.ctx && i(d.ctx[c], d.ctx[c] = p) && (!d.skip_bound && d.bound[c] && d.bound[c](p), m && an(e, c)), f;\n }) : [], d.update(), m = !0, ae(d.before_update), d.fragment = o ? o(d.ctx) : !1, t.target) {\n if (t.hydrate) {\n const c = tn(t.target);\n d.fragment && d.fragment.l(c), c.forEach(O);\n } else\n d.fragment && d.fragment.c();\n t.intro && Y(e.$$.fragment), ue(e, t.target, t.anchor, t.customElement), Ht();\n }\n ke(l);\n}\nclass ie {\n $destroy() {\n de(this, 1), this.$destroy = H;\n }\n $on(t, n) {\n if (!j(n))\n return H;\n const o = this.$$.callbacks[t] || (this.$$.callbacks[t] = []);\n return o.push(n), () => {\n const i = o.indexOf(n);\n i !== -1 && o.splice(i, 1);\n };\n }\n $set(t) {\n this.$$set && !Zt(t) && (this.$$.skip_bound = !0, this.$$set(t), this.$$.skip_bound = !1);\n }\n}\nvar V = /* @__PURE__ */ ((e) => (e.ELLIPSE = \"ELLIPSE\", e.POLYGON = \"POLYGON\", e.RECTANGLE = \"RECTANGLE\", e))(V || {});\nconst it = {}, st = (e, t) => it[e] = t, nt = (e) => it[e.type].area(e), cn = (e, t, n) => it[e.type].intersects(e, t, n), He = (e) => {\n let t = 1 / 0, n = 1 / 0, o = -1 / 0, i = -1 / 0;\n return e.forEach(([s, r]) => {\n t = Math.min(t, s), n = Math.min(n, r), o = Math.max(o, s), i = Math.max(i, r);\n }), { minX: t, minY: n, maxX: o, maxY: i };\n}, fn = {\n area: (e) => Math.PI * e.geometry.rx * e.geometry.ry,\n intersects: (e, t, n) => {\n const { cx: o, cy: i, rx: s, ry: r } = e.geometry, a = 0, l = Math.cos(a), d = Math.sin(a), m = t - o, c = n - i, f = l * m + d * c, h = d * m - l * c;\n return f * f / (s * s) + h * h / (r * r) <= 1;\n }\n};\nst(V.ELLIPSE, fn);\nconst un = {\n area: (e) => {\n const { points: t } = e.geometry;\n let n = 0, o = t.length - 1;\n for (let i = 0; i < t.length; i++)\n n += (t[o][0] + t[i][0]) * (t[o][1] - t[i][1]), o = i;\n return Math.abs(0.5 * n);\n },\n intersects: (e, t, n) => {\n const { points: o } = e.geometry;\n let i = !1;\n for (let s = 0, r = o.length - 1; s < o.length; r = s++) {\n const a = o[s][0], l = o[s][1], d = o[r][0], m = o[r][1];\n l > n != m > n && t < (d - a) * (n - l) / (m - l) + a && (i = !i);\n }\n return i;\n }\n};\nst(V.POLYGON, un);\nconst dn = {\n area: (e) => e.geometry.w * e.geometry.h,\n intersects: (e, t, n) => t >= e.geometry.x && t <= e.geometry.x + e.geometry.w && n >= e.geometry.y && n <= e.geometry.y + e.geometry.h\n};\nst(V.RECTANGLE, dn);\nconst hn = (e, t = !1) => {\n const n = typeof e == \"string\" ? e : e.value, o = /^(xywh)=(pixel|percent)?:?(.+?),(.+?),(.+?),(.+)*/g, i = [...n.matchAll(o)][0], [s, r, a, l, d, m, c] = i;\n if (r !== \"xywh\")\n throw new Error(\"Unsupported MediaFragment: \" + n);\n if (a && a !== \"pixel\")\n throw new Error(`Unsupported MediaFragment unit: ${a}`);\n const [f, h, p, g] = [l, d, m, c].map(parseFloat);\n return {\n type: V.RECTANGLE,\n geometry: {\n x: f,\n y: h,\n w: p,\n h: g,\n bounds: {\n minX: f,\n minY: t ? h - g : h,\n maxX: f + p,\n maxY: t ? h : h + g\n }\n }\n };\n}, mn = (e) => {\n const { x: t, y: n, w: o, h: i } = e;\n return {\n type: \"FragmentSelector\",\n conformsTo: \"http://www.w3.org/TR/media-frags/\",\n value: `xywh=pixel:${t},${n},${o},${i}`\n };\n}, Ft = \"http://www.w3.org/2000/svg\", ht = (e) => {\n const t = (o) => {\n Array.from(o.attributes).forEach((i) => {\n i.name.startsWith(\"on\") && o.removeAttribute(i.name);\n });\n }, n = e.getElementsByTagName(\"script\");\n return Array.from(n).reverse().forEach((o) => o.parentNode.removeChild(o)), Array.from(e.querySelectorAll(\"*\")).forEach(t), e;\n}, gn = (e) => {\n const o = new XMLSerializer().serializeToString(e.documentElement).replace(\"<svg>\", `<svg xmlns=\"${Ft}\">`);\n return new DOMParser().parseFromString(o, \"image/svg+xml\").documentElement;\n}, pn = (e) => {\n const n = new DOMParser().parseFromString(e, \"image/svg+xml\"), o = n.lookupPrefix(Ft), i = n.lookupNamespaceURI(null);\n return o || i ? ht(n).firstChild : ht(gn(n)).firstChild;\n}, _n = (e) => {\n const [t, n, o] = e.match(/(<polygon points=[\"|'])([^(\"|')]*)/) || [];\n if (!o)\n return;\n const i = o.split(\" \").map((s) => s.split(\",\").map(parseFloat));\n return {\n type: V.POLYGON,\n geometry: {\n points: i,\n bounds: He(i)\n }\n };\n}, yn = (e) => {\n const t = pn(e), n = parseFloat(t.getAttribute(\"cx\")), o = parseFloat(t.getAttribute(\"cy\")), i = parseFloat(t.getAttribute(\"rx\")), s = parseFloat(t.getAttribute(\"ry\")), r = {\n minX: n - i,\n minY: o - s,\n maxX: n + i,\n maxY: o + s\n };\n return {\n type: V.ELLIPSE,\n geometry: {\n cx: n,\n cy: o,\n rx: i,\n ry: s,\n bounds: r\n }\n };\n}, wn = (e) => {\n const t = typeof e == \"string\" ? e : e.value;\n if (t.includes(\"<polygon points=\"))\n return _n(t);\n if (t.includes(\"<ellipse \"))\n return yn(t);\n}, bn = (e) => {\n let t;\n if (e.type === V.POLYGON) {\n const n = e.geometry, { points: o } = n;\n t = `<svg><polygon points=\"${o.map((i) => i.join(\",\")).join(\" \")}\" /></svg>`;\n } else if (e.type === V.ELLIPSE) {\n const n = e.geometry;\n t = `<svg><ellipse cx=\"${n.cx}\" cy=\"${n.cy}\" rx=\"${n.rx}\" ry=\"${n.ry}\" /></svg>`;\n }\n if (t)\n return { type: \"SvgSelector\", value: t };\n throw `Unsupported shape type: ${e.type}`;\n};\nlet De;\nconst En = new Uint8Array(16);\nfunction An() {\n if (!De && (De = typeof crypto < \"u\" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !De))\n throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");\n return De(En);\n}\nconst q = [];\nfor (let e = 0; e < 256; ++e)\n q.push((e + 256).toString(16).slice(1));\nfunction Tn(e, t = 0) {\n return q[e[t + 0]] + q[e[t + 1]] + q[e[t + 2]] + q[e[t + 3]] + \"-\" + q[e[t + 4]] + q[e[t + 5]] + \"-\" + q[e[t + 6]] + q[e[t + 7]] + \"-\" + q[e[t + 8]] + q[e[t + 9]] + \"-\" + q[e[t + 10]] + q[e[t + 11]] + q[e[t + 12]] + q[e[t + 13]] + q[e[t + 14]] + q[e[t + 15]];\n}\nconst Sn = typeof crypto < \"u\" && crypto.randomUUID && crypto.randomUUID.bind(crypto), mt = {\n randomUUID: Sn\n};\nfunction rt(e, t, n) {\n if (mt.randomUUID && !t && !e)\n return mt.randomUUID();\n e = e || {};\n const o = e.random || (e.rng || An)();\n if (o[6] = o[6] & 15 | 64, o[8] = o[8] & 63 | 128, t) {\n n = n || 0;\n for (let i = 0; i < 16; ++i)\n t[n + i] = o[i];\n return t;\n }\n return Tn(o);\n}\nvar gt = Object.prototype.hasOwnProperty;\nfunction ge(e, t) {\n var n, o;\n if (e === t)\n return !0;\n if (e && t && (n = e.constructor) === t.constructor) {\n if (n === Date)\n return e.getTime() === t.getTime();\n if (n === RegExp)\n return e.toString() === t.toString();\n if (n === Array) {\n if ((o = e.length) === t.length)\n for (; o-- && ge(e[o], t[o]); )\n ;\n return o === -1;\n }\n if (!n || typeof e == \"object\") {\n o = 0;\n for (n in e)\n if (gt.call(e, n) && ++o && !gt.call(t, n) || !(n in t) || !ge(e[n], t[n]))\n return !1;\n return Object.keys(t).length === o;\n }\n }\n return e !== e && t !== t;\n}\nconst ye = [];\nfunction Fe(e, t = H) {\n let n;\n const o = /* @__PURE__ */ new Set();\n function i(a) {\n if ($(e, a) && (e = a, n)) {\n const l = !ye.length;\n for (const d of o)\n d[1](), ye.push(d, e);\n if (l) {\n for (let d = 0; d < ye.length; d += 2)\n ye[d][0](ye[d + 1]);\n ye.length = 0;\n }\n }\n }\n function s(a) {\n i(a(e));\n }\n function r(a, l = H) {\n const d = [a, l];\n return o.add(d), o.size === 1 && (n = t(i) || H), a(e), () => {\n o.delete(d), o.size === 0 && n && (n(), n = null);\n };\n }\n return { set: i, update: s, subscribe: r };\n}\nconst Mn = (e) => {\n const { subscribe: t, set: n } = Fe(null);\n let o = null;\n return t((i) => o = i), e.observe(({ changes: i }) => {\n if (o) {\n i.deleted.some((a) => a.id === o) && n(null);\n const r = i.updated.find(({ oldValue: a }) => a.id === o);\n r && n(r.newValue.id);\n }\n }), {\n get current() {\n return o;\n },\n subscribe: t,\n set: n\n };\n};\nvar zt = /* @__PURE__ */ ((e) => (e.EDIT = \"EDIT\", e.SELECT = \"SELECT\", e.NONE = \"NONE\", e))(zt || {});\nconst Je = { selected: [] }, Ln = (e, t = \"EDIT\") => {\n const { subscribe: n, set: o } = Fe(Je);\n let i = Je;\n n((c) => i = c);\n const s = () => o(Je), r = () => {\n var c;\n return ((c = i.selected) == null ? void 0 : c.length) === 0;\n }, a = (c) => {\n if (i.selected.length === 0)\n return !1;\n const f = typeof c == \"string\" ? c : c.id;\n return i.selected.some((h) => h.id === f);\n }, l = (c, f) => {\n const h = e.getAnnotation(c);\n if (h) {\n const p = On(h, t);\n o(p === \"EDIT\" ? { selected: [{ id: c, editable: !0 }], pointerEvent: f } : p === \"SELECT\" ? { selected: [{ id: c }], pointerEvent: f } : { selected: [], pointerEvent: f });\n } else\n console.warn(\"Invalid selection: \" + c);\n }, d = (c, f = !0) => {\n const h = Array.isArray(c) ? c : [c], p = h.map((g) => e.getAnnotation(g)).filter((g) => g);\n o({ selected: p.map(({ id: g }) => ({ id: g, editable: f })) }), p.length !== h.length && console.warn(\"Invalid selection\", c);\n }, m = (c) => {\n if (i.selected.length === 0)\n return !1;\n const { selected: f } = i;\n f.filter(({ id: p }) => c.includes(p)).length > 0 && o({ selected: f.filter(({ id: p }) => !c.includes(p)) });\n };\n return e.observe(({ changes: c }) => m(c.deleted.map((f) => f.id))), {\n clear: s,\n clickSelect: l,\n get selected() {\n return i ? [...i.selected] : null;\n },\n get pointerEvent() {\n return i ? i.pointerEvent : null;\n },\n isEmpty: r,\n isSelected: a,\n setSelected: d,\n subscribe: n\n };\n}, On = (e, t) => typeof t == \"function\" ? t(e) || \"EDIT\" : t || \"EDIT\", pi = (e) => {\n const { creator: t, updatedBy: n } = e.target, o = e.bodies.reduce((i, s) => [...i, s.creator, s.updatedBy], []);\n return [\n t,\n n,\n ...o\n ].filter((i) => i);\n}, _i = (e, t, n, o) => ({\n id: rt(),\n annotation: e.id,\n created: n || /* @__PURE__ */ new Date(),\n creator: o,\n ...t\n}), vn = (e, t) => {\n const n = new Set(e.bodies.map((o) => o.id));\n return t.bodies.filter((o) => !n.has(o.id));\n}, kn = (e, t) => {\n const n = new Set(t.bodies.map((o) => o.id));\n return e.bodies.filter((o) => !n.has(o.id));\n}, Bn = (e, t) => t.bodies.map((n) => {\n const o = e.bodies.find((i) => i.id === n.id);\n return { newBody: n, oldBody: o && !ge(o, n) ? o : void 0 };\n}).filter(({ oldBody: n }) => n), Cn = (e, t) => !ge(e.target, t.target), Vt = (e, t) => {\n const n = vn(e, t), o = kn(e, t), i = Bn(e, t);\n return {\n oldValue: e,\n newValue: t,\n bodiesCreated: n.length > 0 ? n : void 0,\n bodiesDeleted: o.length > 0 ? o : void 0,\n bodiesUpdated: i.length > 0 ? i : void 0,\n targetUpdated: Cn(e, t) ? { oldTarget: e.target, newTarget: t.target } : void 0\n };\n};\nvar G = /* @__PURE__ */ ((e) => (e.LOCAL = \"LOCAL\", e.REMOTE = \"REMOTE\", e))(G || {});\nconst In = (e, t) => {\n var s, r;\n const { changes: n, origin: o } = t;\n if (!(!e.options.origin || e.options.origin === o))\n return !1;\n if (e.options.ignore) {\n const { ignore: a } = e.options, l = (m) => (m == null ? void 0 : m.length) > 0;\n if (!(l(n.created) || l(n.deleted))) {\n const m = (s = n.updated) == null ? void 0 : s.some((f) => l(f.bodiesCreated) || l(f.bodiesDeleted) || l(f.bodiesUpdated)), c = (r = n.updated) == null ? void 0 : r.some((f) => f.targetUpdated);\n if (a === \"BODY_ONLY\" && m && !c || a === \"TARGET_ONLY\" && c && !m)\n return !1;\n }\n }\n if (e.options.annotations) {\n const a = /* @__PURE__ */ new Set([\n ...n.created.map((d) => d.id),\n ...n.deleted.map((d) => d.id),\n ...n.updated.map(({ oldValue: d }) => d.id)\n ]);\n return !!(Array.isArray(e.options.annotations) ? e.options.annotations : [e.options.annotations]).find((d) => a.has(d));\n } else\n return !0;\n}, Pn = (e, t) => {\n const n = new Set((e.created || []).map((c) => c.id)), o = new Set((e.updated || []).map(({ newValue: c }) => c.id)), i = new Set((t.created || []).map((c) => c.id)), s = new Set((t.deleted || []).map((c) => c.id)), r = new Set((t.updated || []).map(({ oldValue: c }) => c.id)), a = new Set((t.updated || []).filter(({ oldValue: c }) => n.has(c.id) || o.has(c.id)).map(({ oldValue: c }) => c.id)), l = [\n ...(e.created || []).filter((c) => !s.has(c.id)).map((c) => r.has(c.id) ? t.updated.find(({ oldValue: f }) => f.id === c.id).newValue : c),\n ...t.created || []\n ], d = [\n ...(e.deleted || []).filter((c) => !i.has(c.id)),\n ...(t.deleted || []).filter((c) => !n.has(c.id))\n ], m = [\n ...(e.updated || []).filter(({ newValue: c }) => !s.has(c.id)).map((c) => {\n const { oldValue: f, newValue: h } = c;\n if (r.has(h.id)) {\n const p = t.updated.find((g) => g.oldValue.id === h.id).newValue;\n return Vt(f, p);\n } else\n return c;\n }),\n ...(t.updated || []).filter(({ oldValue: c }) => !a.has(c.id))\n ];\n return { created: l, deleted: d, updated: m };\n}, Yn = (e) => e.id !== void 0, Rn = () => {\n const e = /* @__PURE__ */ new Map(), t = /* @__PURE__ */ new Map(), n = [], o = (y, b = {}) => n.push({ onChange: y, options: b }), i = (y) => {\n const b = n.findIndex((E) => E.onChange == y);\n b > -1 && n.splice(b, 1);\n }, s = (y, b) => {\n const E = {\n origin: y,\n changes: {\n created: b.created || [],\n updated: b.updated || [],\n deleted: b.deleted || []\n },\n state: [...e.values()]\n };\n n.forEach((A) => {\n In(A, E) && A.onChange(E);\n });\n }, r = (y, b = G.LOCAL) => {\n if (e.get(y.id))\n throw Error(`Cannot add annotation ${y.id} - exists already`);\n e.set(y.id, y), y.bodies.forEach((A) => t.set(A.id, y.id)), s(b, { created: [y] });\n }, a = (y, b) => {\n const E = typeof y == \"string\" ? b : y, A = typeof y == \"string\" ? y : y.id, k = e.get(A);\n if (k) {\n const U = Vt(k, E);\n return A === E.id ? e.set(A, E) : (e.delete(A), e.set(E.id, E)), k.bodies.forEach((Q) => t.delete(Q.id)), E.bodies.forEach((Q) => t.set(Q.id, E.id)), U;\n } else\n console.warn(`Cannot update annotation ${A} - does not exist`);\n }, l = (y, b = G.LOCAL, E = G.LOCAL) => {\n const A = Yn(b) ? E : b, k = a(y, b);\n k && s(A, { updated: [k] });\n }, d = (y, b = G.LOCAL) => {\n const E = y.reduce((A, k) => {\n const U = a(k);\n return U ? [...A, U] : A;\n }, []);\n E.length > 0 && s(b, { updated: E });\n }, m = (y, b = G.LOCAL) => {\n const E = e.get(y.annotation);\n if (E) {\n const A = {\n ...E,\n bodies: [...E.bodies, y]\n };\n e.set(E.id, A), t.set(y.id, A.id), s(b, { updated: [{\n oldValue: E,\n newValue: A,\n bodiesCreated: [y]\n }] });\n } else\n console.warn(`Attempt to add body to missing annotation: ${y.annotation}`);\n }, c = () => [...e.values()], f = (y = G.LOCAL) => {\n const b = [...e.values()];\n e.clear(), t.clear(), s(y, { deleted: b });\n }, h = (y, b = !0, E = G.LOCAL) => {\n if (b) {\n const A = [...e.values()];\n e.clear(), t.clear(), y.forEach((k) => {\n e.set(k.id, k), k.bodies.forEach((U) => t.set(U.id, k.id));\n }), s(E, { created: y, deleted: A });\n } else {\n const A = y.reduce((k, U) => {\n const Q = e.get(U.id);\n return Q ? [...k, Q] : k;\n }, []);\n if (A.length > 0)\n throw Error(`Bulk insert would overwrite the following annotations: ${A.map((k) => k.id).join(\", \")}`);\n y.forEach((k) => {\n e.set(k.id, k), k.bodies.forEach((U) => t.set(U.id, k.id));\n }), s(E, { created: y });\n }\n }, p = (y) => {\n const b = typeof y == \"string\" ? y : y.id, E = e.get(b);\n if (E)\n return e.delete(b), E.bodies.forEach((A) => t.delete(A.id)), E;\n console.warn(`Attempt to delete missing annotation: ${b}`);\n }, g = (y, b = G.LOCAL) => {\n const E = p(y);\n E && s(b, { deleted: [E] });\n }, w = (y, b = G.LOCAL) => {\n const E = y.reduce((A, k) => {\n const U = p(k);\n return U ? [...A, U] : A;\n }, []);\n E.length > 0 && s(b, { deleted: E });\n }, T = (y, b = G.LOCAL) => {\n const E = e.get(y.annotation);\n if (E) {\n const A = E.bodies.find((k) => k.id === y.id);\n if (A) {\n t.delete(A.id);\n const k = {\n ...E,\n bodies: E.bodies.filter((Q) => Q.id !== y.id)\n };\n e.set(E.id, k), s(b, { updated: [{\n oldValue: E,\n newValue: k,\n bodiesDeleted: [A]\n }] });\n } else\n console.warn(`Attempt to delete missing body ${y.id} from annotation ${y.annotation}`);\n } else\n console.warn(`Attempt to delete body from missing annotation ${y.annotation}`);\n }, _ = (y) => {\n const b = e.get(y);\n return b ? { ...b } : void 0;\n }, M = (y) => {\n const b = t.get(y);\n if (b) {\n const A = _(b).bodies.find((k) => k.id === y);\n if (A)\n return A;\n console.error(`Store integrity error: body ${y} in index, but not in annotation`);\n } else\n console.warn(`Attempt to retrieve missing body: ${y}`);\n }, X = (y, b) => {\n if (y.annotation !== b.annotation)\n throw \"Annotation integrity violation: annotation ID must be the same when updating bodies\";\n const E = e.get(y.annotation);\n if (E) {\n const A = E.bodies.find((U) => U.id === y.id), k = {\n ...E,\n bodies: E.bodies.map((U) => U.id === A.id ? b : U)\n };\n return e.set(E.id, k), A.id !== b.id && (t.delete(A.id), t.set(b.id, k.id)), {\n oldValue: E,\n newValue: k,\n bodiesUpdated: [{ oldBody: A, newBody: b }]\n };\n } else\n console.warn(`Attempt to add body to missing annotation ${y.annotation}`);\n }, R = (y, b, E = G.LOCAL) => {\n const A = X(y, b);\n s(E, { updated: [A] });\n }, z = (y, b = G.LOCAL) => {\n const E = y.map((A) => X({ id: A.id, annotation: A.annotation }, A));\n s(b, { updated: E });\n }, K = (y) => {\n const b = e.get(y.annotation);\n if (b) {\n const E = {\n ...b,\n target: {\n ...b.target,\n ...y\n }\n };\n return e.set(b.id, E), {\n oldValue: b,\n newValue: E,\n targetUpdated: {\n oldTarget: b.target,\n newTarget: y\n }\n };\n } else\n console.warn(`Attempt to update target on missing annotation: ${y.annotation}`);\n };\n return {\n addAnnotation: r,\n addBody: m,\n all: c,\n bulkAddAnnotation: h,\n bulkDeleteAnnotation: w,\n bulkUpdateAnnotation: d,\n bulkUpdateBodies: z,\n bulkUpdateTargets: (y, b = G.LOCAL) => {\n const E = y.map(K).filter((A) => A);\n E.length > 0 && s(b, { updated: E });\n },\n clear: f,\n deleteAnnotation: g,\n deleteBody: T,\n getAnnotation: _,\n getBody: M,\n observe: o,\n unobserve: i,\n updateAnnotation: l,\n updateBody: R,\n updateTarget: (y, b = G.LOCAL) => {\n const E = K(y);\n E && s(b, { updated: [E] });\n }\n };\n}, Dn = (e) => ({\n ...e,\n subscribe: (n) => {\n const o = (i) => n(i.state);\n return e.observe(o), n(e.all()), () => e.unobserve(o);\n }\n}), Xn = 250, Un = (e) => {\n const t = [];\n let n = -1, o = !1, i = 0;\n const s = (g) => {\n if (!o) {\n const { changes: w } = g, T = performance.now();\n if (T - i > Xn)\n t.splice(n + 1), t.push(w), n = t.length - 1;\n else {\n const _ = t.length - 1;\n t[_] = Pn(t[_], w);\n }\n i = T;\n }\n o = !1;\n };\n e.observe(s, { origin: G.LOCAL });\n const r = (g) => (g == null ? void 0 : g.length) > 0 && e.bulkDeleteAnnotation(g), a = (g) => (g == null ? void 0 : g.length) > 0 && e.bulkAddAnnotation(g, !1), l = (g) => (g == null ? void 0 : g.length) > 0 && e.bulkUpdateAnnotation(g.map(({ oldValue: w }) => w)), d = (g) => (g == null ? void 0 : g.length) > 0 && e.bulkUpdateAnnotation(g.map(({ newValue: w }) => w)), m = (g) => (g == null ? void 0 : g.length) > 0 && e.bulkAddAnnotation(g, !1), c = (g) => (g == null ? void 0 : g.length) > 0 && e.bulkDeleteAnnotation(g);\n return {\n destroy: () => e.unobserve(s),\n redo: () => {\n if (t.length - 1 > n) {\n o = !0;\n const { created: g, updated: w, deleted: T } = t[n + 1];\n a(g), d(w), c(T), n += 1;\n }\n },\n undo: () => {\n if (n > -1) {\n o = !0;\n const { created: g, updated: w, deleted: T } = t[n];\n r(g), l(w), m(T), n -= 1;\n }\n }\n };\n}, Nn = () => {\n const { subscribe: e, set: t } = Fe([]);\n return {\n subscribe: e,\n set: t\n };\n}, Gn = (e, t, n, o, i, s) => {\n const r = /* @__PURE__ */ new Map();\n let a = [], l, d;\n const m = (p, g) => {\n r.has(p) ? r.get(p).push(g) : r.set(p, [g]);\n }, c = (p, g) => {\n const w = r.get(p);\n w && w.indexOf(g) > 0 && w.splice(w.indexOf(g), 1);\n }, f = (p, g, w) => {\n r.has(p) && setTimeout(() => {\n r.get(p).forEach((T) => {\n if (i) {\n const _ = Array.isArray(g) ? g.map((X) => i.serialize(X)) : i.serialize(g), M = w ? w instanceof PointerEvent ? w : i.serialize(w) : void 0;\n T(_, M);\n } else\n T(g, w);\n });\n }, 1);\n }, h = () => {\n const { selected: p } = t, g = p.map(({ id: w }) => e.getAnnotation(w));\n g.forEach((w) => {\n const T = a.find((_) => _.id === w.id);\n (!T || !ge(T, w)) && f(\"updateAnnotation\", w, T);\n }), a = a.map((w) => {\n const T = g.find(({ id: _ }) => _ === w.id);\n return T || w;\n });\n };\n return t.subscribe(({ selected: p }) => {\n if (!(a.length === 0 && p.length === 0)) {\n if (a.length === 0 && p.length > 0)\n a = p.map(({ id: g }) => e.getAnnotation(g));\n else if (a.length > 0 && p.length === 0)\n a.forEach((g) => {\n const w = e.getAnnotation(g.id);\n w && !ge(w, g) && f(\"updateAnnotation\", w, g);\n }), a = [];\n else {\n const g = new Set(a.map((_) => _.id)), w = new Set(p.map(({ id: _ }) => _));\n a.filter((_) => !w.has(_.id)).forEach((_) => {\n const M = e.getAnnotation(_.id);\n M && !ge(M, _) && f(\"updateAnnotation\", M, _);\n }), a = [\n // Remove annotations that were deselected\n ...a.filter((_) => w.has(_.id)),\n // Add editable annotations that were selected\n ...p.filter(({ id: _ }) => !g.has(_)).map(({ id: _ }) => e.getAnnotation(_))\n ];\n }\n f(\"selectionChanged\", a);\n }\n }), n.subscribe((p) => {\n !l && p ? f(\"mouseEnterAnnotation\", e.getAnnotation(p)) : l && !p ? f(\"mouseLeaveAnnotation\", e.getAnnotation(l)) : l && p && (f(\"mouseLeaveAnnotation\", e.getAnnotation(l)), f(\"mouseEnterAnnotation\", e.getAnnotation(p))), l = p;\n }), o == null || o.subscribe((p) => f(\"viewportIntersect\", p.map(e.getAnnotation))), e.observe((p) => {\n s && (d && clearTimeout(d), d = setTimeout(h, 1e3));\n const { created: g, deleted: w } = p.changes;\n g.forEach((_) => f(\"createAnnotation\", _)), w.forEach((_) => f(\"deleteAnnotation\", _)), p.changes.updated.filter((_) => [\n ..._.bodiesCreated || [],\n ..._.bodiesDeleted || [],\n ..._.bodiesUpdated || []\n ].length > 0).forEach(({ oldValue: _, newValue: M }) => {\n const X = a.find((R) => R.id === _.id) || _;\n a = a.map((R) => R.id === _.id ? M : R), f(\"updateAnnotation\", M, X);\n });\n }, { origin: G.LOCAL }), e.observe((p) => {\n if (a) {\n const g = new Set(a.map((T) => T.id)), w = p.changes.updated.filter(({ newValue: T }) => g.has(T.id)).map(({ newValue: T }) => T);\n w.length > 0 && (a = a.map((T) => {\n const _ = w.find((M) => M.id === T.id);\n return _ || T;\n }));\n }\n }, { origin: G.REMOTE }), { on: m, off: c, emit: f };\n}, yi = (e) => (t) => t.map((n) => e.serialize(n)), Hn = (e) => (t) => t.reduce((n, o) => {\n const { parsed: i, error: s } = e.parse(o);\n return s ? {\n parsed: n.parsed,\n failed: [...n.failed, o]\n } : {\n parsed: [...n.parsed, i],\n failed: n.failed\n };\n}, { parsed: [], failed: [] }), Fn = (e, t, n) => {\n const o = (c) => {\n if (n) {\n const { parsed: f, error: h } = n.parse(c);\n f ? e.addAnnotation(f, G.REMOTE) : console.error(h);\n } else\n e.addAnnotation(c, G.REMOTE);\n }, i = () => e.clear(), s = (c) => {\n const f = e.getAnnotation(c);\n return n && f ? n.serialize(f) : f;\n }, r = () => n ? e.all().map(n.serialize) : e.all(), a = (c) => fetch(c).then((f) => f.json()).then((f) => (d(f), f)), l = (c) => {\n if (typeof c == \"string\") {\n const f = e.getAnnotation(c);\n return e.deleteAnnotation(c), n ? n.serialize(f) : f;\n } else {\n const f = n ? n.parse(c).parsed : c;\n return e.deleteAnnotation(f), c;\n }\n }, d = (c) => {\n if (n) {\n const { parsed: f, failed: h } = Hn(n)(c);\n h.length > 0 && console.warn(`Discarded ${h.length} invalid annotations`, h), e.bulkAddAnnotation(f, !0, G.REMOTE);\n } else\n e.bulkAddAnnotation(c, !0, G.REMOTE);\n }, m = (c) => {\n if (n) {\n const f = n.parse(c).parsed, h = n.serialize(e.getAnnotation(f.id));\n return e.updateAnnotation(f), h;\n } else {\n const f = e.getAnnotation(c.id);\n return e.updateAnnotation(c), f;\n }\n };\n return {\n addAnnotation: o,\n clearAnnotations: i,\n getAnnotationById: s,\n getAnnotations: r,\n loadAnnotations: a,\n redo: t.redo,\n removeAnnotation: l,\n setAnnotations: d,\n undo: t.undo,\n updateAnnotation: m\n };\n};\nlet zn = (e) => crypto.getRandomValues(new Uint8Array(e)), Vn = (e, t, n) => {\n let o = (2 << Math.log(e.length - 1) / Math.LN2) - 1, i = -~(1.6 * o * t / e.length);\n return (s = t) => {\n let r = \"\";\n for (; ; ) {\n let a = n(i), l = i;\n for (; l--; )\n if (r += e[a[l] & o] || \"\", r.length === s)\n return r;\n }\n };\n}, jn = (e, t = 21) => Vn(e, t, zn), Wn = (e = 21) => crypto.getRandomValues(new Uint8Array(e)).reduce((t, n) => (n &= 63, n < 36 ? t += n.toString(36) : n < 62 ? t += (n - 26).toString(36).toUpperCase() : n > 62 ? t += \"-\" : t += \"_\", t), \"\");\nconst qn = () => ({ isGuest: !0, id: jn(\"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_\", 20)() }), Jn = (e) => {\n const t = JSON.stringify(e);\n let n = 0;\n for (let o = 0, i = t.length; o < i; o++) {\n let s = t.charCodeAt(o);\n n = (n << 5) - n + s, n |= 0;\n }\n return `${n}`;\n}, Kn = (e, t) => (Array.isArray(e) ? e : [e]).map((n) => {\n const { id: o, type: i, purpose: s, value: r, created: a, creator: l, ...d } = n;\n return {\n id: o || `temp-${Jn(n)}`,\n annotation: t,\n type: i,\n purpose: s,\n value: r,\n created: a,\n creator: l ? typeof l == \"object\" ? { ...l } : l : void 0,\n ...d\n };\n}), Zn = (e) => e.map((t) => {\n var o;\n const n = { ...t };\n return delete n.annotation, (o = n.id) != null && o.startsWith(\"temp-\") && delete n.id, n;\n}), Qn = [\n \"#ff7c00\",\n // orange\n \"#1ac938\",\n // green\n \"#e8000b\",\n // red\n \"#8b2be2\",\n // purple\n \"#9f4800\",\n // brown\n \"#f14cc1\",\n // pink\n \"#ffc400\",\n // khaki\n \"#00d7ff\",\n // cyan\n \"#023eff\"\n // blue\n], xn = () => {\n const e = [...Qn];\n return { assignRandomColor: () => {\n const o = Math.floor(Math.random() * e.length), i = e[o];\n return e.splice(o, 1), i;\n }, releaseColor: (o) => e.push(o) };\n}, $n = () => {\n const e = xn();\n return { addUser: (o, i) => {\n const s = e.assignRandomColor();\n return {\n label: i.name || i.id,\n avatar: i.avatar,\n color: s\n };\n }, removeUser: (o) => e.releaseColor(o.appearance.color) };\n};\nlet eo = () => ({\n emit(e, ...t) {\n let n = this.events[e] || [];\n for (let o = 0, i = n.length; o < i; o++)\n n[o](...t);\n },\n events: {},\n on(e, t) {\n var n;\n return (n = this.events[e]) != null && n.push(t) || (this.events[e] = [t]), () => {\n var o;\n this.events[e] = (o = this.events[e]) == null ? void 0 : o.filter((i) => t !== i);\n };\n }\n});\nconst to = (e, t) => e.every((n) => e.includes(n)) && t.every((n) => e.includes(n)), wi = Wn(), bi = (e = $n()) => {\n const t = eo(), n = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), i = (c, f) => {\n if (n.has(c)) {\n console.warn(\"Attempt to add user that is already present\", c, f);\n return;\n }\n const h = e.addUser(c, f);\n n.set(c, {\n ...f,\n presenceKey: c,\n appearance: h\n });\n }, s = (c) => {\n const f = n.get(c);\n if (!f) {\n console.warn(\"Attempt to remove user that is not present\", c);\n return;\n }\n e.removeUser(f), n.delete(c);\n }, r = (c) => {\n const f = new Set(c.map((g) => g.presenceKey)), h = c.filter(({ presenceKey: g }) => !n.has(g)), p = Array.from(n.values()).filter((g) => !f.has(g.presenceKey));\n h.forEach(({ presenceKey: g, user: w }) => i(g, w)), p.forEach((g) => {\n const { presenceKey: w } = g;\n o.has(w) && t.emit(\"selectionChange\", g, null), s(w);\n }), (h.length > 0 || p.length > 0) && t.emit(\"presence\", d());\n }, a = (c, f) => {\n const h = n.get(c);\n if (!h) {\n console.warn(\"Activity notification from user that is not present\");\n return;\n }\n const p = o.get(c);\n (!p || !to(p, f)) && (o.set(c, f), t.emit(\"selectionChange\", h, f));\n }, l = (c, f) => {\n const h = n.get(c);\n if (!h) {\n console.warn(\"Selection change for user that is not present\", c);\n return;\n }\n f ? o.set(c, f) : o.delete(c), t.emit(\"selectionChange\", h, f);\n }, d = () => [...Array.from(n.values())];\n return {\n getPresentUsers: d,\n notifyActivity: a,\n on: (c, f) => t.on(c, f),\n syncUsers: r,\n updateSelection: l\n };\n}, Ei = (e, t = !1) => ({ parse: (i) => no(i, t), serialize: (i) => oo(i, e) }), no = (e, t = !1) => {\n const n = e.id || rt(), { body: o, ...i } = e, s = Kn(o, n), r = Array.isArray(e.target) ? e.target[0] : e.target, a = Array.isArray(r.selector) ? r.selector[0] : r.selector, l = a.type === \"FragmentSelector\" ? hn(a, t) : a.type === \"SvgSelector\" ? wn(a) : void 0;\n return l ? {\n parsed: {\n ...i,\n id: n,\n bodies: s,\n target: {\n annotation: n,\n selector: l\n }\n }\n } : {\n error: Error(`Unknown selector type: ${l.type}`)\n };\n}, oo = (e, t) => {\n const n = e.target.selector, o = n.type == V.RECTANGLE ? mn(n.geometry) : bn(n);\n return {\n ...e,\n \"@context\": \"http://www.w3.org/ns/anno.jsonld\",\n id: e.id,\n type: \"Annotation\",\n body: Zn(e.bodies),\n target: {\n source: t,\n selector: o\n }\n };\n};\nfunction pt(e, t, n) {\n const o = e.slice();\n return o[11] = t[n], o[13] = n, o;\n}\nfunction _t(e) {\n let t, n, o, i, s;\n return {\n c() {\n t = I(\"rect\"), u(t, \"class\", \"a9s-corner-handle\"), u(t, \"x\", n = /*point*/\n e[11][0] - /*handleSize*/\n e[3] / 2), u(t, \"y\", o = /*point*/\n e[11][1] - /*handleSize*/\n e[3] / 2), u(\n t,\n \"height\",\n /*handleSize*/\n e[3]\n ), u(\n t,\n \"width\",\n /*handleSize*/\n e[3]\n );\n },\n m(r, a) {\n v(r, t, a), i || (s = J(t, \"pointerdown\", function() {\n j(\n /*grab*/\n e[10](L(\n /*idx*/\n e[13]\n ))\n ) && e[10](L(\n /*idx*/\n e[13]\n )).apply(this, arguments);\n }), i = !0);\n },\n p(r, a) {\n e = r, a & /*geom, handleSize*/\n 24 && n !== (n = /*point*/\n e[11][0] - /*handleSize*/\n e[3] / 2) && u(t, \"x\", n), a & /*geom, handleSize*/\n 24 && o !== (o = /*point*/\n e[11][1] - /*handleSize*/\n e[3] / 2) && u(t, \"y\", o), a & /*handleSize*/\n 8 && u(\n t,\n \"height\",\n /*handleSize*/\n e[3]\n ), a & /*handleSize*/\n 8 && u(\n t,\n \"width\",\n /*handleSize*/\n e[3]\n );\n },\n d(r) {\n r && O(t), i = !1, s();\n }\n };\n}\nfunction io(e) {\n let t, n, o, i, s, r, a, l, d, m, c = (\n /*geom*/\n e[4].points\n ), f = [];\n for (let h = 0; h < c.length; h += 1)\n f[h] = _t(pt(e, c, h));\n return {\n c() {\n t = I(\"polygon\"), i = ne(), s = I(\"polygon\"), a = ne();\n for (let h = 0; h < f.length; h += 1)\n f[h].c();\n l = ce(), u(t, \"class\", \"a9s-outer\"), u(t, \"style\", n = /*computedStyle*/\n e[1] ? \"display:none;\" : void 0), u(t, \"points\", o = /*geom*/\n e[4].points.map(yt).join(\" \")), u(s, \"class\", \"a9s-inner a9s-shape-handle\"), u(\n s,\n \"style\",\n /*computedStyle*/\n e[1]\n ), u(s, \"points\", r = /*geom*/\n e[4].points.map(wt).join(\" \"));\n },\n m(h, p) {\n v(h, t, p), v(h, i, p), v(h, s, p), v(h, a, p);\n for (let g = 0; g < f.length; g += 1)\n f[g] && f[g].m(h, p);\n v(h, l, p), d || (m = [\n J(t, \"pointerdown\", function() {\n j(\n /*grab*/\n e[10](L.SHAPE)\n ) && e[10](L.SHAPE).apply(this, arguments);\n }),\n J(s, \"pointerdown\", function() {\n j(\n /*grab*/\n e[10](L.SHAPE)\n ) && e[10](L.SHAPE).apply(this, arguments);\n })\n ], d = !0);\n },\n p(h, p) {\n if (e = h, p & /*computedStyle*/\n 2 && n !== (n = /*computedStyle*/\n e[1] ? \"display:none;\" : void 0) && u(t, \"style\", n), p & /*geom*/\n 16 && o !== (o = /*geom*/\n e[4].points.map(yt).join(\" \")) && u(t, \"points\", o), p & /*computedStyle*/\n 2 && u(\n s,\n \"style\",\n /*computedStyle*/\n e[1]\n ), p & /*geom*/\n 16 && r !== (r = /*geom*/\n e[4].points.map(wt).join(\" \")) && u(s, \"points\", r), p & /*geom, handleSize, grab, Handle*/\n 1048) {\n c = /*geom*/\n e[4].points;\n let g;\n for (g = 0; g < c.length; g += 1) {\n const w = pt(e, c, g);\n f[g] ? f[g].p(w, p) : (f[g] = _t(w), f[g].c(), f[g].m(l.parentNode, l));\n }\n for (; g < f.length; g += 1)\n f[g].d(1);\n f.length = c.length;\n }\n },\n d(h) {\n h && O(t), h && O(i), h && O(s), h && O(a), ot(f, h), h && O(l), d = !1, ae(m);\n }\n };\n}\nfunction so(e) {\n let t, n;\n return t = new Wt({\n props: {\n shape: (\n /*shape*/\n e[0]\n ),\n transform: (\n /*transform*/\n e[2]\n ),\n editor: (\n /*editor*/\n e[5]\n ),\n $$slots: {\n default: [\n io,\n ({ grab: o }) => ({ 10: o }),\n ({ grab: o }) => o ? 1024 : 0\n ]\n },\n $$scope: { ctx: e }\n }\n }), t.$on(\n \"change\",\n /*change_handler*/\n e[7]\n ), t.$on(\n \"grab\",\n /*grab_handler*/\n e[8]\n ), t.$on(\n \"release\",\n /*release_handler*/\n e[9]\n ), {\n c() {\n pe(t.$$.fragment);\n },\n m(o, i) {\n ue(t, o, i), n = !0;\n },\n p(o, [i]) {\n const s = {};\n i & /*shape*/\n 1 && (s.shape = /*shape*/\n o[0]), i & /*transform*/\n 4 && (s.transform = /*transform*/\n o[2]), i & /*$$scope, geom, handleSize, grab, computedStyle*/\n 17434 && (s.$$scope = { dirty: i, ctx: o }), t.$set(s);\n },\n i(o) {\n n || (Y(t.$$.fragment, o), n = !0);\n },\n o(o) {\n N(t.$$.fragment, o), n = !1;\n },\n d(o) {\n de(t, o);\n }\n };\n}\nconst yt = (e) => e.join(\",\"), wt = (e) => e.join(\",\");\nfunction ro(e, t, n) {\n let o, i, { shape: s } = t, { computedStyle: r = void 0 } = t, { transform: a } = t, { viewportScale: l = 1 } = t;\n const d = (h, p, g) => {\n let w;\n p === L.SHAPE ? w = h.geometry.points.map(([_, M]) => [_ + g[0], M + g[1]]) : w = h.geometry.points.map(([_, M], X) => p === L(X) ? [_ + g[0], M + g[1]] : [_, M]);\n const T = He(w);\n return { ...h, geometry: { points: w, bounds: T } };\n };\n function m(h) {\n Ae.call(this, e, h);\n }\n function c(h) {\n Ae.call(this, e, h);\n }\n function f(h) {\n Ae.call(this, e, h);\n }\n return e.$$set = (h) => {\n \"shape\" in h && n(0, s = h.shape), \"computedStyle\" in h && n(1, r = h.computedStyle), \"transform\" in h && n(2, a = h.transform), \"viewportScale\" in h && n(6, l = h.viewportScale);\n }, e.$$.update = () => {\n e.$$.dirty & /*shape*/\n 1 && n(4, o = s.geometry), e.$$.dirty & /*viewportScale*/\n 64 && n(3, i = 10 / l);\n }, [\n s,\n r,\n a,\n i,\n o,\n d,\n l,\n m,\n c,\n f\n ];\n}\nclass lo extends ie {\n constructor(t) {\n super(), oe(this, t, ro, so, $, {\n shape: 0,\n computedStyle: 1,\n transform: 2,\n viewportScale: 6\n });\n }\n}\nfunction ao(e) {\n let t, n, o, i, s, r, a, l, d, m, c, f, h, p, g, w, T, _, M, X, R, z, K, D, P, y, b, E, A, k, U, Q, Me, x, B, Z, F, W, se, he, Ve, ee, Ie, Pe, je, te, Ye, Re, We, at;\n return {\n c() {\n t = I(\"rect\"), a = ne(), l = I(\"rect\"), h = ne(), p = I(\"rect\"), _ = ne(), M = I(\"rect\"), K = ne(), D = I(\"rect\"), E = ne(), A = I(\"rect\"), Me = ne(), x = I(\"rect\"), F = ne(), W = I(\"rect\"), Ve = ne(), ee = I(\"rect\"), je = ne(), te = I(\"rect\"), u(t, \"class\", \"a9s-outer\"), u(t, \"style\", n = /*computedStyle*/\n e[1] ? \"display:none;\" : void 0), u(t, \"x\", o = /*geom*/\n e[4].x), u(t, \"y\", i = /*geom*/\n e[4].y), u(t, \"width\", s = /*geom*/\n e[4].w), u(t, \"height\", r = /*geom*/\n e[4].h), u(l, \"class\", \"a9s-inner a9s-shape-handle\"), u(\n l,\n \"style\",\n /*computedStyle*/\n e[1]\n ), u(l, \"x\", d = /*geom*/\n e[4].x), u(l, \"y\", m = /*geom*/\n e[4].y), u(l, \"width\", c = /*geom*/\n e[4].w), u(l, \"height\", f = /*geom*/\n e[4].h), u(p, \"class\", \"a9s-edge-handle a9s-edge-handle-top\"), u(p, \"x\", g = /*geom*/\n e[4].x), u(p, \"y\", w = /*geom*/\n e[4].y), u(p, \"height\", 1), u(p, \"width\", T = /*geom*/\n e[4].w), u(M, \"class\", \"a9s-edge-handle a9s-edge-handle-right\"), u(M, \"x\", X = /*geom*/\n e[4].x + /*geom*/\n e[4].w), u(M, \"y\", R = /*geom*/\n e[4].y), u(M, \"height\", z = /*geom*/\n e[4].h), u(M, \"width\", 1), u(D, \"class\", \"a9s-edge-handle a9s-edge-handle-bottom\"), u(D, \"x\", P = /*geom*/\n e[4].x), u(D, \"y\", y = /*geom*/\n e[4].y + /*geom*/\n e[4].h), u(D, \"height\", 1), u(D, \"width\", b = /*geom*/\n e[4].w), u(A, \"class\", \"a9s-edge-handle a9s-edge-handle-left\"), u(A, \"x\", k = /*geom*/\n e[4].x), u(A, \"y\", U = /*geom*/\n e[4].y), u(A, \"height\", Q = /*geom*/\n e[4].h), u(A, \"width\", 1), u(x, \"class\", \"a9s-corner-handle a9s-corner-handle-topleft\"), u(x, \"x\", B = /*geom*/\n e[4].x - /*handleSize*/\n e[3] / 2), u(x, \"y\", Z = /*geom*/\n e[4].y - /*handleSize*/\n e[3] / 2), u(\n x,\n \"height\",\n /*handleSize*/\n e[3]\n ), u(\n x,\n \"width\",\n /*handleSize*/\n e[3]\n ), u(W, \"class\", \"a9s-corner-handle a9s-corner-handle-topright\"), u(W, \"x\", se = /*geom*/\n e[4].x + /*geom*/\n e[4].w - /*handleSize*/\n e[3] / 2), u(W, \"y\", he = /*geom*/\n e[4].y - /*handleSize*/\n e[3] / 2), u(\n W,\n \"height\",\n /*handleSize*/\n e[3]\n ), u(\n W,\n \"width\",\n /*handleSize*/\n e[3]\n ), u(ee, \"class\", \"a9s-corner-handle a9s-corner-handle-bottomright\"), u(ee, \"x\", Ie = /*geom*/\n e[4].x + /*geom*/\n e[4].w - /*handleSize*/\n e[3] / 2), u(ee, \"y\", Pe = /*geom*/\n e[4].y + /*geom*/\n e[4].h - /*handleSize*/\n e[3] / 2), u(\n ee,\n \"height\",\n /*handleSize*/\n e[3]\n ), u(\n ee,\n \"width\",\n /*handleSize*/\n e[3]\n ), u(te, \"class\", \"a9s-corner-handle a9s-corner-handle-bottomleft\"), u(te, \"x\", Ye = /*geom*/\n e[4].x - /*handleSize*/\n e[3] / 2), u(te, \"y\", Re = /*geom*/\n e[4].y + /*geom*/\n e[4].h - /*handleSize*/\n e[3] / 2), u(\n te,\n \"height\",\n /*handleSize*/\n e[3]\n ), u(\n te,\n \"width\",\n /*handleSize*/\n e[3]\n );\n },\n m(C, S) {\n v(C, t, S), v(C, a, S), v(C, l, S), v(C, h, S), v(C, p, S), v(C, _, S), v(C, M, S), v(C, K, S), v(C, D, S), v(C, E, S), v(C, A, S), v(C, Me, S), v(C, x, S), v(C, F, S), v(C, W, S), v(C, Ve, S), v(C, ee, S), v(C, je, S), v(C, te, S), We || (at = [\n J(t, \"pointerdown\", function() {\n j(\n /*grab*/\n e[10](L.SHAPE)\n ) && e[10](L.SHAPE).apply(this, arguments);\n }),\n J(l, \"pointerdown\", function() {\n j(\n /*grab*/\n e[10](L.SHAPE)\n ) && e[10](L.SHAPE).apply(this, arguments);\n }),\n J(p, \"pointerdown\", function() {\n j(\n /*grab*/\n e[10](L.TOP)\n ) && e[10](L.TOP).apply(this, arguments);\n }),\n J(M, \"pointerdown\", function() {\n j(\n /*grab*/\n e[10](L.RIGHT)\n ) && e[10](L.RIGHT).apply(this, arguments);\n }),\n J(D, \"pointerdown\", function() {\n j(\n /*grab*/\n e[10](L.BOTTOM)\n ) && e[10](L.BOTTOM).apply(this, arguments);\n }),\n J(A, \"pointerdown\", function() {\n j(\n /*grab*/\n e[10](L.LEFT)\n ) && e[10](L.LEFT).apply(this, arguments);\n }),\n J(x, \"pointerdown\", function() {\n j(\n /*grab*/\n e[10](L.TOP_LEFT)\n ) && e[10](L.TOP_LEFT).apply(this, arguments);\n }),\n J(W, \"pointerdown\", function() {\n j(\n /*grab*/\n e[10](L.TOP_RIGHT)\n ) && e[10](L.TOP_RIGHT).apply(this, arguments);\n }),\n J(ee, \"pointerdown\", function() {\n j(\n /*grab*/\n e[10](L.BOTTOM_RIGHT)\n ) && e[10](L.BOTTOM_RIGHT).apply(this, arguments);\n }),\n J(te, \"pointerdown\", function() {\n j(\n /*grab*/\n e[10](L.BOTTOM_LEFT)\n ) && e[10](L.BOTTOM_LEFT).apply(this, arguments);\n })\n ], We = !0);\n },\n p(C, S) {\n e = C, S & /*computedStyle*/\n 2 && n !== (n = /*computedStyle*/\n e[1] ? \"display:none;\" : void 0) && u(t, \"style\", n), S & /*geom*/\n 16 && o !== (o = /*geom*/\n e[4].x) && u(t, \"x\", o), S & /*geom*/\n 16 && i !== (i = /*geom*/\n e[4].y) && u(t, \"y\", i), S & /*geom*/\n 16 && s !== (s = /*geom*/\n e[4].w) && u(t, \"width\", s), S & /*geom*/\n 16 && r !== (r = /*geom*/\n e[4].h) && u(t, \"height\", r), S & /*computedStyle*/\n 2 && u(\n l,\n \"style\",\n /*computedStyle*/\n e[1]\n ), S & /*geom*/\n 16 && d !== (d = /*geom*/\n e[4].x) && u(l, \"x\", d), S & /*geom*/\n 16 && m !== (m = /*geom*/\n e[4].y) && u(l, \"y\", m), S & /*geom*/\n 16 && c !== (c = /*geom*/\n e[4].w) && u(l, \"width\", c), S & /*geom*/\n 16 && f !== (f = /*geom*/\n e[4].h) && u(l, \"height\", f), S & /*geom*/\n 16 && g !== (g = /*geom*/\n e[4].x) && u(p, \"x\", g), S & /*geom*/\n 16 && w !== (w = /*geom*/\n e[4].y) && u(p, \"y\", w), S & /*geom*/\n 16 && T !== (T = /*geom*/\n e[4].w) && u(p, \"width\", T), S & /*geom*/\n 16 && X !== (X = /*geom*/\n e[4].x + /*geom*/\n e[4].w) && u(M, \"x\", X), S & /*geom*/\n 16 && R !== (R = /*geom*/\n e[4].y) && u(M, \"y\", R), S & /*geom*/\n 16 && z !== (z = /*geom*/\n e[4].h) && u(M, \"height\", z), S & /*geom*/\n 16 && P !== (P = /*geom*/\n e[4].x) && u(D, \"x\", P), S & /*geom*/\n 16 && y !== (y = /*geom*/\n e[4].y + /*geom*/\n e[4].h) && u(D, \"y\", y), S & /*geom*/\n 16 && b !== (b = /*geom*/\n e[4].w) && u(D, \"width\", b), S & /*geom*/\n 16 && k !== (k = /*geom*/\n e[4].x) && u(A, \"x\", k), S & /*geom*/\n 16 && U !== (U = /*geom*/\n e[4].y) && u(A, \"y\", U), S & /*geom*/\n 16 && Q !== (Q = /*geom*/\n e[4].h) && u(A, \"height\", Q), S & /*geom, handleSize*/\n 24 && B !== (B = /*geom*/\n e[4].x - /*handleSize*/\n e[3] / 2) && u(x, \"x\", B), S & /*geom, handleSize*/\n 24 && Z !== (Z = /*geom*/\n e[4].y - /*handleSize*/\n e[3] / 2) && u(x, \"y\", Z), S & /*handleSize*/\n 8 && u(\n x,\n \"height\",\n /*handleSize*/\n e[3]\n ), S & /*handleSize*/\n 8 && u(\n x,\n \"width\",\n /*handleSize*/\n e[3]\n ), S & /*geom, handleSize*/\n 24 && se !== (se = /*geom*/\n e[4].x + /*geom*/\n e[4].w - /*handleSize*/\n e[3] / 2) && u(W, \"x\", se), S & /*geom, handleSize*/\n 24 && he !== (he = /*geom*/\n e[4].y - /*handleSize*/\n e[3] / 2) && u(W, \"y\", he), S & /*handleSize*/\n 8 && u(\n W,\n \"height\",\n /*handleSize*/\n e[3]\n ), S & /*handleSize*/\n 8 && u(\n W,\n \"width\",\n /*handleSize*/\n e[3]\n ), S & /*geom, handleSize*/\n 24 && Ie !== (Ie = /*geom*/\n e[4].x + /*geom*/\n e[4].w - /*handleSize*/\n e[3] / 2) && u(ee, \"x\", Ie), S & /*geom, handleSize*/\n 24 && Pe !== (Pe = /*geom*/\n e[4].y + /*geom*/\n e[4].h - /*handleSize*/\n e[3] / 2) && u(ee, \"y\", Pe), S & /*handleSize*/\n 8 && u(\n ee,\n \"height\",\n /*handleSize*/\n e[3]\n ), S & /*handleSize*/\n 8 && u(\n ee,\n \"width\",\n /*handleSize*/\n e[3]\n ), S & /*geom, handleSize*/\n 24 && Ye !== (Ye = /*geom*/\n e[4].x - /*handleSize*/\n e[3] / 2) && u(te, \"x\", Ye), S & /*geom, handleSize*/\n 24 && Re !== (Re = /*geom*/\n e[4].y + /*geom*/\n e[4].h - /*handleSize*/\n e[3] / 2) && u(te, \"y\", Re), S & /*handleSize*/\n 8 && u(\n te,\n \"height\",\n /*handleSize*/\n e[3]\n ), S & /*handleSize*/\n 8 && u(\n te,\n \"width\",\n /*handleSize*/\n e[3]\n );\n },\n d(C) {\n C && O(t), C && O(a), C && O(l), C && O(h), C && O(p), C && O(_), C && O(M), C && O(K), C && O(D), C && O(E), C && O(A), C && O(Me), C && O(x), C && O(F), C && O(W), C && O(Ve), C && O(ee), C && O(je), C && O(te), We = !1, ae(at);\n }\n };\n}\nfunction co(e) {\n let t, n;\n return t = new Wt({\n props: {\n shape: (\n /*shape*/\n e[0]\n ),\n transform: (\n /*transform*/\n e[2]\n ),\n editor: (\n /*editor*/\n e[5]\n ),\n $$slots: {\n default: [\n ao,\n ({ grab: o }) => ({ 10: o }),\n ({ grab: o }) => o ? 1024 : 0\n ]\n },\n $$scope: { ctx: e }\n }\n }), t.$on(\n \"grab\",\n /*grab_handler*/\n e[7]\n ), t.$on(\n \"change\",\n /*change_handler*/\n e[8]\n ), t.$on(\n \"release\",\n /*release_handler*/\n e[9]\n ), {\n c() {\n pe(t.$$.fragment);\n },\n m(o, i) {\n ue(t, o, i), n = !0;\n },\n p(o, [i]) {\n const s = {};\n i & /*shape*/\n 1 && (s.shape = /*shape*/\n o[0]), i & /*transform*/\n 4 && (s.transform = /*transform*/\n o[2]), i & /*$$scope, geom, handleSize, grab, computedStyle*/\n 3098 && (s.$$scope = { dirty: i, ctx: o }), t.$set(s);\n },\n i(o) {\n n || (Y(t.$$.fragment, o), n = !0);\n },\n o(o) {\n N(t.$$.fragment, o), n = !1;\n },\n d(o) {\n de(t, o);\n }\n };\n}\nfunction fo(e, t, n) {\n let o, i, { shape: s } = t, { computedStyle: r = void 0 } = t, { transform: a } = t, { viewportScale: l = 1 } = t;\n const d = (h, p, g) => {\n const w = h.geometry.bounds;\n let [T, _] = [w.minX, w.minY], [M, X] = [w.maxX, w.maxY];\n const [R, z] = g;\n if (p === L.SHAPE)\n T += R, M += R, _ += z, X += z;\n else {\n switch (p) {\n case L.TOP:\n case L.TOP_LEFT:\n case L.TOP_RIGHT: {\n _ += z;\n break;\n }\n case L.BOTTOM:\n case L.BOTTOM_LEFT:\n case L.BOTTOM_RIGHT: {\n X += z;\n break;\n }\n }\n switch (p) {\n case L.LEFT:\n case L.TOP_LEFT:\n case L.BOTTOM_LEFT: {\n T += R;\n break;\n }\n case L.RIGHT:\n case L.TOP_RIGHT:\n case L.BOTTOM_RIGHT: {\n M += R;\n break;\n }\n }\n }\n const K = Math.min(T, M), D = Math.min(_, X), P = Math.abs(M - T), y = Math.abs(X - _);\n return {\n ...h,\n geometry: {\n x: K,\n y: D,\n w: P,\n h: y,\n bounds: {\n minX: K,\n minY: D,\n maxX: K + P,\n maxY: D + y\n }\n }\n };\n };\n function m(h) {\n Ae.call(this, e, h);\n }\n function c(h) {\n Ae.call(this, e, h);\n }\n function f(h) {\n Ae.call(this, e, h);\n }\n return e.$$set = (h) => {\n \"shape\" in h && n(0, s = h.shape), \"computedStyle\" in h && n(1, r = h.computedStyle), \"transform\" in h && n(2, a = h.transform), \"viewportScale\" in h && n(6, l = h.viewportScale);\n }, e.$$.update = () => {\n e.$$.dirty & /*shape*/\n 1 && n(4, o = s.geometry), e.$$.dirty & /*viewportScale*/\n 64 && n(3, i = 10 / l);\n }, [\n s,\n r,\n a,\n i,\n o,\n d,\n l,\n m,\n c,\n f\n ];\n}\nclass uo extends ie {\n constructor(t) {\n super(), oe(this, t, fo, co, $, {\n shape: 0,\n computedStyle: 1,\n transform: 2,\n viewportScale: 6\n });\n }\n}\nconst jt = /* @__PURE__ */ new Map([\n [V.RECTANGLE, uo],\n [V.POLYGON, lo]\n]), bt = (e) => jt.get(e.type), ho = (e, t) => jt.set(e, t), L = (e) => `HANDLE-${e}`;\nL.SHAPE = \"SHAPE\";\nL.TOP = \"TOP\";\nL.RIGHT = \"RIGHT\";\nL.BOTTOM = \"BOTTOM\";\nL.LEFT = \"LEFT\";\nL.TOP_LEFT = \"TOP_LEFT\";\nL.TOP_RIGHT = \"TOP_RIGHT\";\nL.BOTTOM_RIGHT = \"BOTTOM_RIGHT\";\nL.BOTTOM_LEFT = \"BOTTOM_LEFT\";\nconst mo = (e) => ({}), Et = (e) => ({ grab: (\n /*onGrab*/\n e[0]\n) });\nfunction go(e) {\n let t, n, o, i;\n const s = (\n /*#slots*/\n e[7].default\n ), r = Qt(\n s,\n e,\n /*$$scope*/\n e[6],\n Et\n );\n return {\n c() {\n t = I(\"g\"), r && r.c(), u(t, \"class\", \"a9s-annotation selected\");\n },\n m(a, l) {\n v(a, t, l), r && r.m(t, null), n = !0, o || (i = [\n J(\n t,\n \"pointerup\",\n /*onRelease*/\n e[2]\n ),\n J(\n t,\n \"pointermove\",\n /*onPointerMove*/\n e[1]\n )\n ], o = !0);\n },\n p(a, [l]) {\n r && r.p && (!n || l & /*$$scope*/\n 64) && $t(\n r,\n s,\n a,\n /*$$scope*/\n a[6],\n n ? xt(\n s,\n /*$$scope*/\n a[6],\n l,\n mo\n ) : en(\n /*$$scope*/\n a[6]\n ),\n Et\n );\n },\n i(a) {\n n || (Y(r, a), n = !0);\n },\n o(a) {\n N(r, a), n = !1;\n },\n d(a) {\n a && O(t), r && r.d(a), o = !1, ae(i);\n }\n };\n}\nfunction po(e, t, n) {\n let { $$slots: o = {}, $$scope: i } = t;\n const s = Se();\n let { shape: r } = t, { editor: a } = t, { transform: l } = t, d = null, m, c = null;\n const f = (g) => (w) => {\n d = g, m = l.elementToImage(w.offsetX, w.offsetY), c = r, w.target.setPointerCapture(w.pointerId), s(\"grab\");\n }, h = (g) => {\n if (d) {\n const [w, T] = l.elementToImage(g.offsetX, g.offsetY), _ = [w - m[0], T - m[1]];\n n(3, r = a(c, d, _)), s(\"change\", r);\n }\n }, p = (g) => {\n g.target.releasePointerCapture(g.pointerId), d = null, c = r, s(\"release\");\n };\n return e.$$set = (g) => {\n \"shape\" in g && n(3, r = g.shape), \"editor\" in g && n(4, a = g.editor), \"transform\" in g && n(5, l = g.transform), \"$$scope\" in g && n(6, i = g.$$scope);\n }, [f, h, p, r, a, l, i, o];\n}\nclass Wt extends ie {\n constructor(t) {\n super(), oe(this, t, po, go, $, { shape: 3, editor: 4, transform: 5 });\n }\n}\nconst ze = (e, t) => {\n const n = typeof t == \"function\" ? t(e) : t;\n if (n) {\n const { fill: o, fillOpacity: i } = n;\n let s = \"\";\n return o && (s += `fill:${o};stroke:${o};`), s += `fill-opacity:${i || \"0.25\"};`, s;\n }\n};\nfunction _o(e, t, n) {\n let o;\n const i = Se();\n let { annotation: s } = t, { editor: r } = t, { style: a = void 0 } = t, { target: l } = t, { transform: d } = t, { viewportScale: m } = t, c;\n return Ce(() => (n(6, c = new r({\n target: l,\n props: {\n shape: s.target.selector,\n computedStyle: o,\n transform: d,\n viewportScale: m\n }\n })), c.$on(\"change\", (f) => {\n c.$$set({ shape: f.detail }), i(\"change\", f.detail);\n }), c.$on(\"grab\", (f) => i(\"grab\", f.detail)), c.$on(\"release\", (f) => i(\"release\", f.detail)), () => {\n c.$destroy();\n })), e.$$set = (f) => {\n \"annotation\" in f && n(0, s = f.annotation), \"editor\" in f && n(1, r = f.editor), \"style\" in f && n(2, a = f.style), \"target\" in f && n(3, l = f.target), \"transform\" in f && n(4, d = f.transform), \"viewportScale\" in f && n(5, m = f.viewportScale);\n }, e.$$.update = () => {\n e.$$.dirty & /*annotation, style*/\n 5 && (o = ze(s, a)), e.$$.dirty & /*annotation, editorComponent*/\n 65 && s && (c == null || c.$set({ shape: s.target.selector })), e.$$.dirty & /*editorComponent, transform*/\n 80 && c && c.$set({ transform: d }), e.$$.dirty & /*editorComponent, viewportScale*/\n 96 && c && c.$set({ viewportScale: m });\n }, [s, r, a, l, d, m, c];\n}\nclass yo extends ie {\n constructor(t) {\n super(), oe(this, t, _o, null, $, {\n annotation: 0,\n editor: 1,\n style: 2,\n target: 3,\n transform: 4,\n viewportScale: 5\n });\n }\n}\nfunction wo(e, t, n) {\n const o = Se();\n let { drawingMode: i } = t, { target: s } = t, { tool: r } = t, { transform: a } = t, { viewportScale: l } = t, d;\n return Ce(() => {\n const m = s.closest(\"svg\"), c = [], f = (h, p, g) => {\n m.addEventListener(h, p, g), c.push(() => m.removeEventListener(h, p, g));\n };\n return n(5, d = new r({\n target: s,\n props: {\n addEventListener: f,\n drawingMode: i,\n transform: a,\n viewportScale: l\n }\n })), d.$on(\"create\", (h) => o(\"create\", h.detail)), () => {\n c.forEach((h) => h()), d.$destroy();\n };\n }), e.$$set = (m) => {\n \"drawingMode\" in m && n(0, i = m.drawingMode), \"target\" in m && n(1, s = m.target), \"tool\" in m && n(2, r = m.tool), \"transform\" in m && n(3, a = m.transform), \"viewportScale\" in m && n(4, l = m.viewportScale);\n }, e.$$.update = () => {\n e.$$.dirty & /*toolComponent, transform*/\n 40 && d && d.$set({ transform: a }), e.$$.dirty & /*toolComponent, viewportScale*/\n 48 && d && d.$set({ viewportScale: l });\n }, [i, s, r, a, l, d];\n}\nclass bo extends ie {\n constructor(t) {\n super(), oe(this, t, wo, null, $, {\n drawingMode: 0,\n target: 1,\n tool: 2,\n transform: 3,\n viewportScale: 4\n });\n }\n}\nfunction At(e) {\n let t, n;\n return {\n c() {\n t = I(\"rect\"), n = I(\"rect\"), u(t, \"class\", \"a9s-outer\"), u(\n t,\n \"x\",\n /*x*/\n e[1]\n ), u(\n t,\n \"y\",\n /*y*/\n e[2]\n ), u(\n t,\n \"width\",\n /*w*/\n e[3]\n ), u(\n t,\n \"height\",\n /*h*/\n e[4]\n ), u(n, \"class\", \"a9s-inner\"), u(\n n,\n \"x\",\n /*x*/\n e[1]\n ), u(\n n,\n \"y\",\n /*y*/\n e[2]\n ), u(\n n,\n \"width\",\n /*w*/\n e[3]\n ), u(\n n,\n \"height\",\n /*h*/\n e[4]\n );\n },\n m(o, i) {\n v(o, t, i), v(o, n, i);\n },\n p(o, i) {\n i & /*x*/\n 2 && u(\n t,\n \"x\",\n /*x*/\n o[1]\n ), i & /*y*/\n 4 && u(\n t,\n \"y\",\n /*y*/\n o[2]\n ), i & /*w*/\n 8 && u(\n t,\n \"width\",\n /*w*/\n o[3]\n ), i & /*h*/\n 16 && u(\n t,\n \"height\",\n /*h*/\n o[4]\n ), i & /*x*/\n 2 && u(\n n,\n \"x\",\n /*x*/\n o[1]\n ), i & /*y*/\n 4 && u(\n n,\n \"y\",\n /*y*/\n o[2]\n ), i & /*w*/\n 8 && u(\n n,\n \"width\",\n /*w*/\n o[3]\n ), i & /*h*/\n 16 && u(\n n,\n \"height\",\n /*h*/\n o[4]\n );\n },\n d(o) {\n o && O(t), o && O(n);\n }\n };\n}\nfunction Eo(e) {\n let t, n = (\n /*origin*/\n e[0] && At(e)\n );\n return {\n c() {\n t = I(\"g\"), n && n.c(), u(t, \"class\", \"a9s-annotation a9s-rubberband\");\n },\n m(o, i) {\n v(o, t, i), n && n.m(t, null);\n },\n p(o, [i]) {\n /*origin*/\n o[0] ? n ? n.p(o, i) : (n = At(o), n.c(), n.m(t, null)) : n && (n.d(1), n = null);\n },\n i: H,\n o: H,\n d(o) {\n o && O(t), n && n.d();\n }\n };\n}\nfunction Ao(e, t, n) {\n const o = Se();\n let { addEventListener: i } = t, { drawingMode: s } = t, { transform: r } = t, a, l, d, m, c, f, h;\n const p = (_) => {\n a = performance.now(), s === \"drag\" && (n(0, l = r.elementToImage(_.offsetX, _.offsetY)), d = l, n(1, m = l[0]), n(2, c = l[1]), n(3, f = 1), n(4, h = 1));\n }, g = (_) => {\n l && (d = r.elementToImage(_.offsetX, _.offsetY), n(1, m = Math.min(d[0], l[0])), n(2, c = Math.min(d[1], l[1])), n(3, f = Math.abs(d[0] - l[0])), n(4, h = Math.abs(d[1] - l[1])));\n }, w = (_) => {\n const M = performance.now() - a;\n if (s === \"click\") {\n if (M > 300)\n return;\n _.stopPropagation(), l ? T() : (n(0, l = r.elementToImage(_.offsetX, _.offsetY)), d = l, n(1, m = l[0]), n(2, c = l[1]), n(3, f = 1), n(4, h = 1));\n } else\n l && (M > 300 || f * h > 100 ? (_.stopPropagation(), T()) : (n(0, l = null), d = null));\n }, T = () => {\n if (f * h > 15) {\n const _ = {\n type: V.RECTANGLE,\n geometry: {\n bounds: {\n minX: m,\n minY: c,\n maxX: m + f,\n maxY: c + h\n },\n x: m,\n y: c,\n w: f,\n h\n }\n };\n o(\"create\", _);\n }\n n(0, l = null), d = null;\n };\n return Ce(() => {\n i(\"pointerdown\", p), i(\"pointermove\", g), i(\"pointerup\", w, !0);\n }), e.$$set = (_) => {\n \"addEventListener\" in _ && n(5, i = _.addEventListener), \"drawingMode\" in _ && n(6, s = _.drawingMode), \"transform\" in _ && n(7, r = _.transform);\n }, [l, m, c, f, h, i, s, r];\n}\nclass To extends ie {\n constructor(t) {\n super(), oe(this, t, Ao, Eo, $, {\n addEventListener: 5,\n drawingMode: 6,\n transform: 7\n });\n }\n}\nconst Ke = (e, t) => {\n const n = Math.abs(t[0] - e[0]), o = Math.abs(t[1] - e[1]);\n return Math.sqrt(Math.pow(n, 2) + Math.pow(o, 2));\n}, So = (e, t) => {\n const { naturalWidth: n, naturalHeight: o } = e;\n if (!n && !o) {\n const { width: i, height: s } = e;\n t.setAttribute(\"viewBox\", `0 0 ${i} ${s}`), e.addEventListener(\"load\", (r) => {\n const a = r.target;\n t.setAttribute(\"viewBox\", `0 0 ${a.naturalWidth} ${a.naturalHeight}`);\n });\n } else\n t.setAttribute(\"viewBox\", `0 0 ${n} ${o}`);\n}, Mo = (e, t) => {\n So(e, t);\n const { subscribe: n, set: o } = Fe(1);\n let i;\n return window.ResizeObserver && (i = new ResizeObserver(() => {\n const r = t.getBoundingClientRect(), { width: a, height: l } = t.viewBox.baseVal, d = Math.max(\n r.width / a,\n r.height / l\n );\n o(d);\n }), i.observe(t.parentElement)), { destroy: () => {\n i && i.disconnect();\n }, subscribe: n };\n}, Ai = \"ontouchstart\" in window || navigator.maxTouchPoints > 0;\nfunction Ze(e) {\n const t = e.slice(), n = (\n /*isClosable*/\n (t[2] ? (\n /*points*/\n t[0]\n ) : [\n .../*points*/\n t[0],\n /*cursor*/\n t[1]\n ]).map((o) => o.join(\",\")).join(\" \")\n );\n return t[15] = n, t;\n}\nfunction Tt(e) {\n let t, n, o, i, s, r = (\n /*isClosable*/\n e[2] && St(e)\n );\n return {\n c() {\n t = I(\"polygon\"), o = I(\"polygon\"), r && r.c(), s = ce(), u(t, \"class\", \"a9s-outer\"), u(t, \"points\", n = /*coords*/\n e[15]), u(o, \"class\", \"a9s-inner\"), u(o, \"points\", i = /*coords*/\n e[15]);\n },\n m(a, l) {\n v(a, t, l), v(a, o, l), r && r.m(a, l), v(a, s, l);\n },\n p(a, l) {\n l & /*isClosable, points, cursor*/\n 7 && n !== (n = /*coords*/\n a[15]) && u(t, \"points\", n), l & /*isClosable, points, cursor*/\n 7 && i !== (i = /*coords*/\n a[15]) && u(o, \"points\", i), /*isClosable*/\n a[2] ? r ? r.p(a, l) : (r = St(a), r.c(), r.m(s.parentNode, s)) : r && (r.d(1), r = null);\n },\n d(a) {\n a && O(t), a && O(o), r && r.d(a), a && O(s);\n }\n };\n}\nfunction St(e) {\n let t, n, o;\n return {\n c() {\n t = I(\"rect\"), u(t, \"class\", \"a9s-corner-handle\"), u(t, \"x\", n = /*points*/\n e[0][0][0] - /*handleSize*/\n e[3] / 2), u(t, \"y\", o = /*points*/\n e[0][0][1] - /*handleSize*/\n e[3] / 2), u(\n t,\n \"height\",\n /*handleSize*/\n e[3]\n ), u(\n t,\n \"width\",\n /*handleSize*/\n e[3]\n );\n },\n m(i, s) {\n v(i, t, s);\n },\n p(i, s) {\n s & /*points, handleSize*/\n 9 && n !== (n = /*points*/\n i[0][0][0] - /*handleSize*/\n i[3] / 2) && u(t, \"x\", n), s & /*points, handleSize*/\n 9 && o !== (o = /*points*/\n i[0][0][1] - /*handleSize*/\n i[3] / 2) && u(t, \"y\", o), s & /*handleSize*/\n 8 && u(\n t,\n \"height\",\n /*handleSize*/\n i[3]\n ), s & /*handleSize*/\n 8 && u(\n t,\n \"width\",\n /*handleSize*/\n i[3]\n );\n },\n d(i) {\n i && O(t);\n }\n };\n}\nfunction Lo(e) {\n let t, n = (\n /*cursor*/\n e[1] && Tt(Ze(e))\n );\n return {\n c() {\n t = I(\"g\"), n && n.c(), u(t, \"class\", \"a9s-annotation a9s-rubberband\");\n },\n m(o, i) {\n v(o, t, i), n && n.m(t, null);\n },\n p(o, [i]) {\n /*cursor*/\n o[1] ? n ? n.p(Ze(o), i) : (n = Tt(Ze(o)), n.c(), n.m(t, null)) : n && (n.d(1), n = null);\n },\n i: H,\n o: H,\n d(o) {\n o && O(t), n && n.d();\n }\n };\n}\nconst Oo = 20;\nfunction vo(e, t, n) {\n let o;\n const i = Se();\n let { addEventListener: s } = t, { drawingMode: r } = t, { transform: a } = t, { viewportScale: l = 1 } = t, d, m = [], c = null, f = !1;\n const h = (_) => {\n if (d = { ..._ }, r === \"drag\" && m.length === 0) {\n const M = a.elementToImage(_.offsetX, _.offsetY);\n m.push(M), n(1, c = M);\n }\n }, p = (_) => {\n if (m.length > 0 && (n(1, c = a.elementToImage(_.offsetX, _.offsetY)), m.length > 2)) {\n const M = Ke(c, m[0]) * l;\n n(2, f = M < Oo);\n }\n }, g = (_) => {\n if (r === \"click\") {\n const M = _.timeStamp - d.timeStamp, X = Ke([d.offsetX, d.offsetY], [_.offsetX, _.offsetY]);\n if (M > 300 || X > 15)\n return;\n if (f)\n T();\n else if (m.length === 0) {\n const R = a.elementToImage(_.offsetX, _.offsetY);\n m.push(R), n(1, c = R);\n } else\n m.push(c);\n } else {\n if (m.length === 1 && Ke(m[0], c) <= 4) {\n n(0, m = []), n(1, c = null);\n return;\n }\n _.stopImmediatePropagation(), f ? T() : m.push(c);\n }\n }, w = () => {\n const _ = [...m, c], M = {\n type: V.POLYGON,\n geometry: { bounds: He(_), points: _ }\n };\n nt(M) > 4 && (n(0, m = []), n(1, c = null), i(\"create\", M));\n }, T = () => {\n const _ = {\n type: V.POLYGON,\n geometry: {\n bounds: He(m),\n points: [...m]\n }\n };\n n(0, m = []), n(1, c = null), i(\"create\", _);\n };\n return Ce(() => {\n s(\"pointerdown\", h, !0), s(\"pointermove\", p), s(\"pointerup\", g, !0), s(\"dblclick\", w, !0);\n }), e.$$set = (_) => {\n \"addEventListener\" in _ && n(4, s = _.addEventListener), \"drawingMode\" in _ && n(5, r = _.drawingMode), \"transform\" in _ && n(6, a = _.transform), \"viewportScale\" in _ && n(7, l = _.viewportScale);\n }, e.$$.update = () => {\n e.$$.dirty & /*viewportScale*/\n 128 && n(3, o = 10 / l);\n }, [\n m,\n c,\n f,\n o,\n s,\n r,\n a,\n l\n ];\n}\nclass ko extends ie {\n constructor(t) {\n super(), oe(this, t, vo, Lo, $, {\n addEventListener: 4,\n drawingMode: 5,\n transform: 6,\n viewportScale: 7\n });\n }\n}\nconst lt = /* @__PURE__ */ new Map([\n [\"rectangle\", { tool: To }],\n [\"polygon\", { tool: ko }]\n]), Bo = () => [...lt.keys()], qt = (e) => lt.get(e), Co = (e, t, n) => lt.set(e, { tool: t, opts: n });\nfunction Io(e) {\n let t, n, o, i, s;\n return {\n c() {\n t = I(\"g\"), n = I(\"ellipse\"), i = I(\"ellipse\"), u(n, \"class\", \"a9s-outer\"), u(n, \"style\", o = /*computedStyle*/\n e[1] ? \"display:none;\" : void 0), u(\n n,\n \"cx\",\n /*cx*/\n e[2]\n ), u(\n n,\n \"cy\",\n /*cy*/\n e[3]\n ), u(\n n,\n \"rx\",\n /*rx*/\n e[4]\n ), u(\n n,\n \"ry\",\n /*ry*/\n e[5]\n ), u(i, \"class\", \"a9s-inner\"), u(\n i,\n \"style\",\n /*computedStyle*/\n e[1]\n ), u(\n i,\n \"cx\",\n /*cx*/\n e[2]\n ), u(\n i,\n \"cy\",\n /*cy*/\n e[3]\n ), u(\n i,\n \"rx\",\n /*rx*/\n e[4]\n ), u(\n i,\n \"ry\",\n /*ry*/\n e[5]\n ), u(t, \"data-id\", s = /*annotation*/\n e[0].id);\n },\n m(r, a) {\n v(r, t, a), fe(t, n), fe(t, i);\n },\n p(r, [a]) {\n a & /*computedStyle*/\n 2 && o !== (o = /*computedStyle*/\n r[1] ? \"display:none;\" : void 0) && u(n, \"style\", o), a & /*computedStyle*/\n 2 && u(\n i,\n \"style\",\n /*computedStyle*/\n r[1]\n ), a & /*annotation*/\n 1 && s !== (s = /*annotation*/\n r[0].id) && u(t, \"data-id\", s);\n },\n i: H,\n o: H,\n d(r) {\n r && O(t);\n }\n };\n}\nfunction Po(e, t, n) {\n let o, { annotation: i } = t, { geom: s } = t, { style: r = void 0 } = t;\n const { cx: a, cy: l, rx: d, ry: m } = s;\n return e.$$set = (c) => {\n \"annotation\" in c && n(0, i = c.annotation), \"geom\" in c && n(6, s = c.geom), \"style\" in c && n(7, r = c.style);\n }, e.$$.update = () => {\n e.$$.dirty & /*annotation, style*/\n 129 && n(1, o = ze(i, r));\n }, [i, o, a, l, d, m, s, r];\n}\nclass Yo extends ie {\n constructor(t) {\n super(), oe(this, t, Po, Io, $, { annotation: 0, geom: 6, style: 7 });\n }\n}\nfunction Ro(e) {\n let t, n, o, i, s;\n return {\n c() {\n t = I(\"g\"), n = I(\"polygon\"), i = I(\"polygon\"), u(n, \"class\", \"a9s-outer\"), u(n, \"style\", o = /*computedStyle*/\n e[1] ? \"display:none;\" : void 0), u(\n n,\n \"points\",\n /*points*/\n e[2].map(Do).join(\" \")\n ), u(i, \"class\", \"a9s-inner\"), u(\n i,\n \"style\",\n /*computedStyle*/\n e[1]\n ), u(\n i,\n \"points\",\n /*points*/\n e[2].map(Xo).join(\" \")\n ), u(t, \"data-id\", s = /*annotation*/\n e[0].id);\n },\n m(r, a) {\n v(r, t, a), fe(t, n), fe(t, i);\n },\n p(r, [a]) {\n a & /*computedStyle*/\n 2 && o !== (o = /*computedStyle*/\n r[1] ? \"display:none;\" : void 0) && u(n, \"style\", o), a & /*computedStyle*/\n 2 && u(\n i,\n \"style\",\n /*computedStyle*/\n r[1]\n ), a & /*annotation*/\n 1 && s !== (s = /*annotation*/\n r[0].id) && u(t, \"data-id\", s);\n },\n i: H,\n o: H,\n d(r) {\n r && O(t);\n }\n };\n}\nconst Do = (e) => e.join(\",\"), Xo = (e) => e.join(\",\");\nfunction Uo(e, t, n) {\n let o, { annotation: i } = t, { geom: s } = t, { style: r = void 0 } = t;\n const { points: a } = s;\n return e.$$set = (l) => {\n \"annotation\" in l && n(0, i = l.annotation), \"geom\" in l && n(3, s = l.geom), \"style\" in l && n(4, r = l.style);\n }, e.$$.update = () => {\n e.$$.dirty & /*annotation, style*/\n 17 && n(1, o = ze(i, r));\n }, [i, o, a, s, r];\n}\nclass No extends ie {\n constructor(t) {\n super(), oe(this, t, Uo, Ro, $, { annotation: 0, geom: 3, style: 4 });\n }\n}\nfunction Go(e) {\n let t, n, o, i, s;\n return {\n c() {\n t = I(\"g\"), n = I(\"rect\"), i = I(\"rect\"), u(n, \"class\", \"a9s-outer\"), u(n, \"style\", o = /*computedStyle*/\n e[5] ? \"display:none;\" : void 0), u(\n n,\n \"x\",\n /*x*/\n e[4]\n ), u(\n n,\n \"y\",\n /*y*/\n e[3]\n ), u(\n n,\n \"width\",\n /*w*/\n e[2]\n ), u(\n n,\n \"height\",\n /*h*/\n e[1]\n ), u(i, \"class\", \"a9s-inner\"), u(\n i,\n \"style\",\n /*computedStyle*/\n e[5]\n ), u(\n i,\n \"x\",\n /*x*/\n e[4]\n ), u(\n i,\n \"y\",\n /*y*/\n e[3]\n ), u(\n i,\n \"width\",\n /*w*/\n e[2]\n ), u(\n i,\n \"height\",\n /*h*/\n e[1]\n ), u(t, \"data-id\", s = /*annotation*/\n e[0].id);\n },\n m(r, a) {\n v(r, t, a), fe(t, n), fe(t, i);\n },\n p(r, [a]) {\n a & /*computedStyle*/\n 32 && o !== (o = /*computedStyle*/\n r[5] ? \"display:none;\" : void 0) && u(n, \"style\", o), a & /*x*/\n 16 && u(\n n,\n \"x\",\n /*x*/\n r[4]\n ), a & /*y*/\n 8 && u(\n n,\n \"y\",\n /*y*/\n r[3]\n ), a & /*w*/\n 4 && u(\n n,\n \"width\",\n /*w*/\n r[2]\n ), a & /*h*/\n 2 && u(\n n,\n \"height\",\n /*h*/\n r[1]\n ), a & /*computedStyle*/\n 32 && u(\n i,\n \"style\",\n /*computedStyle*/\n r[5]\n ), a & /*x*/\n 16 && u(\n i,\n \"x\",\n /*x*/\n r[4]\n ), a & /*y*/\n 8 && u(\n i,\n \"y\",\n /*y*/\n r[3]\n ), a & /*w*/\n 4 && u(\n i,\n \"width\",\n /*w*/\n r[2]\n ), a & /*h*/\n 2 && u(\n i,\n \"height\",\n /*h*/\n r[1]\n ), a & /*annotation*/\n 1 && s !== (s = /*annotation*/\n r[0].id) && u(t, \"data-id\", s);\n },\n i: H,\n o: H,\n d(r) {\n r && O(t);\n }\n };\n}\nfunction Ho(e, t, n) {\n let o, i, s, r, a, { annotation: l } = t, { geom: d } = t, { style: m = void 0 } = t;\n return e.$$set = (c) => {\n \"annotation\" in c && n(0, l = c.annotation), \"geom\" in c && n(6, d = c.geom), \"style\" in c && n(7, m = c.style);\n }, e.$$.update = () => {\n e.$$.dirty & /*annotation, style*/\n 129 && n(5, o = ze(l, m)), e.$$.dirty & /*geom*/\n 64 && n(4, { x: i, y: s, w: r, h: a } = d, i, (n(3, s), n(6, d)), (n(2, r), n(6, d)), (n(1, a), n(6, d)));\n }, [l, a, r, s, i, o, d, m];\n}\nclass Fo extends ie {\n constructor(t) {\n super(), oe(this, t, Ho, Go, $, { annotation: 0, geom: 6, style: 7 });\n }\n}\nconst Ti = {\n elementToImage: (e, t) => [e, t]\n}, zo = (e) => ({\n elementToImage: (t, n) => {\n const o = e.getBoundingClientRect(), i = e.createSVGPoint();\n i.x = t + o.x, i.y = n + o.y;\n const { x: s, y: r } = i.matrixTransform(e.getScreenCTM().inverse());\n return [s, r];\n }\n}), Vo = 250, jo = (e, t) => {\n const n = Se();\n let o;\n return { onPointerDown: () => o = performance.now(), onPointerUp: (r) => {\n if (performance.now() - o < Vo) {\n const { x: l, y: d } = Wo(r, e), m = t.getAt(l, d);\n m ? n(\"click\", { originalEvent: r, annotation: m }) : n(\"click\", { originalEvent: r });\n }\n } };\n}, Wo = (e, t) => {\n const n = t.createSVGPoint(), o = t.getBoundingClientRect(), i = e.clientX - o.x, s = e.clientY - o.y, { left: r, top: a } = t.getBoundingClientRect();\n return n.x = i + r, n.y = s + a, n.matrixTransform(t.getScreenCTM().inverse());\n};\nfunction Mt(e, t, n) {\n const o = e.slice();\n return o[28] = t[n], o;\n}\nfunction Lt(e, t, n) {\n const o = e.slice();\n return o[31] = t[n], o;\n}\nfunction Qe(e) {\n const t = e.slice(), n = (\n /*annotation*/\n t[31].target.selector\n );\n return t[34] = n, t;\n}\nfunction Ot(e) {\n let t = (\n /*annotation*/\n e[31].id\n ), n, o, i = vt(e);\n return {\n c() {\n i.c(), n = ce();\n },\n m(s, r) {\n i.m(s, r), v(s, n, r), o = !0;\n },\n p(s, r) {\n r[0] & /*$store*/\n 4096 && $(t, t = /*annotation*/\n s[31].id) ? (re(), N(i, 1, 1, H), le(), i = vt(s), i.c(), Y(i, 1), i.m(n.parentNode, n)) : i.p(s, r);\n },\n i(s) {\n o || (Y(i), o = !0);\n },\n o(s) {\n N(i), o = !1;\n },\n d(s) {\n s && O(n), i.d(s);\n }\n };\n}\nfunction qo(e) {\n let t, n;\n return t = new No({\n props: {\n annotation: (\n /*annotation*/\n e[31]\n ),\n geom: (\n /*selector*/\n e[34].geometry\n ),\n style: (\n /*style*/\n e[1]\n )\n }\n }), {\n c() {\n pe(t.$$.fragment);\n },\n m(o, i) {\n ue(t, o, i), n = !0;\n },\n p(o, i) {\n const s = {};\n i[0] & /*$store*/\n 4096 && (s.annotation = /*annotation*/\n o[31]), i[0] & /*$store*/\n 4096 && (s.geom = /*selector*/\n o[34].geometry), i[0] & /*style*/\n 2 && (s.style = /*style*/\n o[1]), t.$set(s);\n },\n i(o) {\n n || (Y(t.$$.fragment, o), n = !0);\n },\n o(o) {\n N(t.$$.fragment, o), n = !1;\n },\n d(o) {\n de(t, o);\n }\n };\n}\nfunction Jo(e) {\n let t, n;\n return t = new Fo({\n props: {\n annotation: (\n /*annotation*/\n e[31]\n ),\n geom: (\n /*selector*/\n e[34].geometry\n ),\n style: (\n /*style*/\n e[1]\n )\n }\n }), {\n c() {\n pe(t.$$.fragment);\n },\n m(o, i) {\n ue(t, o, i), n = !0;\n },\n p(o, i) {\n const s = {};\n i[0] & /*$store*/\n 4096 && (s.annotation = /*annotation*/\n o[31]), i[0] & /*$store*/\n 4096 && (s.geom = /*selector*/\n o[34].geometry), i[0] & /*style*/\n 2 && (s.style = /*style*/\n o[1]), t.$set(s);\n },\n i(o) {\n n || (Y(t.$$.fragment, o), n = !0);\n },\n o(o) {\n N(t.$$.fragment, o), n = !1;\n },\n d(o) {\n de(t, o);\n }\n };\n}\nfunction Ko(e) {\n let t, n;\n return t = new Yo({\n props: {\n annotation: (\n /*annotation*/\n e[31]\n ),\n geom: (\n /*selector*/\n e[34].geometry\n ),\n style: (\n /*style*/\n e[1]\n )\n }\n }), {\n c() {\n pe(t.$$.fragment);\n },\n m(o, i) {\n ue(t, o, i), n = !0;\n },\n p(o, i) {\n const s = {};\n i[0] & /*$store*/\n 4096 && (s.annotation = /*annotation*/\n o[31]), i[0] & /*$store*/\n 4096 && (s.geom = /*selector*/\n o[34].geometry), i[0] & /*style*/\n 2 && (s.style = /*style*/\n o[1]), t.$set(s);\n },\n i(o) {\n n || (Y(t.$$.fragment, o), n = !0);\n },\n o(o) {\n N(t.$$.fragment, o), n = !1;\n },\n d(o) {\n de(t, o);\n }\n };\n}\nfunction vt(e) {\n let t, n, o, i;\n const s = [Ko, Jo, qo], r = [];\n function a(l, d) {\n return (\n /*selector*/\n l[34].type === V.ELLIPSE ? 0 : (\n /*selector*/\n l[34].type === V.RECTANGLE ? 1 : (\n /*selector*/\n l[34].type === V.POLYGON ? 2 : -1\n )\n )\n );\n }\n return ~(t = a(e)) && (n = r[t] = s[t](e)), {\n c() {\n n && n.c(), o = ce();\n },\n m(l, d) {\n ~t && r[t].m(l, d), v(l, o, d), i = !0;\n },\n p(l, d) {\n let m = t;\n t = a(l), t === m ? ~t && r[t].p(l, d) : (n && (re(), N(r[m], 1, 1, () => {\n r[m] = null;\n }), le()), ~t ? (n = r[t], n ? n.p(l, d) : (n = r[t] = s[t](l), n.c()), Y(n, 1), n.m(o.parentNode, o)) : n = null);\n },\n i(l) {\n i || (Y(n), i = !0);\n },\n o(l) {\n N(n), i = !1;\n },\n d(l) {\n ~t && r[t].d(l), l && O(o);\n }\n };\n}\nfunction kt(e) {\n let t = !/*isEditable*/\n e[7](\n /*annotation*/\n e[31]\n ), n, o, i = t && Ot(Qe(e));\n return {\n c() {\n i && i.c(), n = ce();\n },\n m(s, r) {\n i && i.m(s, r), v(s, n, r), o = !0;\n },\n p(s, r) {\n r[0] & /*isEditable, $store*/\n 4224 && (t = !/*isEditable*/\n s[7](\n /*annotation*/\n s[31]\n )), t ? i ? (i.p(Qe(s), r), r[0] & /*isEditable, $store*/\n 4224 && Y(i, 1)) : (i = Ot(Qe(s)), i.c(), Y(i, 1), i.m(n.parentNode, n)) : i && (re(), N(i, 1, 1, () => {\n i = null;\n }), le());\n },\n i(s) {\n o || (Y(i), o = !0);\n },\n o(s) {\n N(i), o = !1;\n },\n d(s) {\n i && i.d(s), s && O(n);\n }\n };\n}\nfunction Bt(e) {\n let t, n, o, i;\n const s = [Qo, Zo], r = [];\n function a(l, d) {\n return (\n /*editableAnnotations*/\n l[6] ? 0 : (\n /*tool*/\n l[2] && /*drawingEnabled*/\n l[0] ? 1 : -1\n )\n );\n }\n return ~(t = a(e)) && (n = r[t] = s[t](e)), {\n c() {\n n && n.c(), o = ce();\n },\n m(l, d) {\n ~t && r[t].m(l, d), v(l, o, d), i = !0;\n },\n p(l, d) {\n let m = t;\n t = a(l), t === m ? ~t && r[t].p(l, d) : (n && (re(), N(r[m], 1, 1, () => {\n r[m] = null;\n }), le()), ~t ? (n = r[t], n ? n.p(l, d) : (n = r[t] = s[t](l), n.c()), Y(n, 1), n.m(o.parentNode, o)) : n = null);\n },\n i(l) {\n i || (Y(n), i = !0);\n },\n o(l) {\n N(n), i = !1;\n },\n d(l) {\n ~t && r[t].d(l), l && O(o);\n }\n };\n}\nfunction Zo(e) {\n let t = (\n /*tool*/\n e[2]\n ), n, o, i = Ct(e);\n return {\n c() {\n i.c(), n = ce();\n },\n m(s, r) {\n i.m(s, r), v(s, n, r), o = !0;\n },\n p(s, r) {\n r[0] & /*tool*/\n 4 && $(t, t = /*tool*/\n s[2]) ? (re(), N(i, 1, 1, H), le(), i = Ct(s), i.c(), Y(i, 1), i.m(n.parentNode, n)) : i.p(s, r);\n },\n i(s) {\n o || (Y(i), o = !0);\n },\n o(s) {\n N(i), o = !1;\n },\n d(s) {\n s && O(n), i.d(s);\n }\n };\n}\nfunction Qo(e) {\n let t, n, o = (\n /*editableAnnotations*/\n e[6]\n ), i = [];\n for (let r = 0; r < o.length; r += 1)\n i[r] = Pt(Mt(e, o, r));\n const s = (r) => N(i[r], 1, 1, () => {\n i[r] = null;\n });\n return {\n c() {\n for (let r = 0; r < i.length; r += 1)\n i[r].c();\n t = ce();\n },\n m(r, a) {\n for (let l = 0; l < i.length; l += 1)\n i[l] && i[l].m(r, a);\n v(r, t, a), n = !0;\n },\n p(r, a) {\n if (a[0] & /*editableAnnotations, drawingEl, style, transform, $scale, onChangeSelected*/\n 140370) {\n o = /*editableAnnotations*/\n r[6];\n let l;\n for (l = 0; l < o.length; l += 1) {\n const d = Mt(r, o, l);\n i[l] ? (i[l].p(d, a), Y(i[l], 1)) : (i[l] = Pt(d), i[l].c(), Y(i[l], 1), i[l].m(t.parentNode, t));\n }\n for (re(), l = o.length; l < i.length; l += 1)\n s(l);\n le();\n }\n },\n i(r) {\n if (!n) {\n for (let a = 0; a < o.length; a += 1)\n Y(i[a]);\n n = !0;\n }\n },\n o(r) {\n i = i.filter(Boolean);\n for (let a = 0; a < i.length; a += 1)\n N(i[a]);\n n = !1;\n },\n d(r) {\n ot(i, r), r && O(t);\n }\n };\n}\nfunction Ct(e) {\n let t, n;\n return t = new bo({\n props: {\n target: (\n /*drawingEl*/\n e[4]\n ),\n tool: (\n /*tool*/\n e[2]\n ),\n drawingMode: (\n /*drawingMode*/\n e[11]\n ),\n transform: (\n /*transform*/\n e[10]\n ),\n viewportScale: (\n /*$scale*/\n e[13]\n )\n }\n }), t.$on(\n \"create\",\n /*onSelectionCreated*/\n e[16]\n ), {\n c() {\n pe(t.$$.fragment);\n },\n m(o, i) {\n ue(t, o, i), n = !0;\n },\n p(o, i) {\n const s = {};\n i[0] & /*drawingEl*/\n 16 && (s.target = /*drawingEl*/\n o[4]), i[0] & /*tool*/\n 4 && (s.tool = /*tool*/\n o[2]), i[0] & /*drawingMode*/\n 2048 && (s.drawingMode = /*drawingMode*/\n o[11]), i[0] & /*transform*/\n 1024 && (s.transform = /*transform*/\n o[10]), i[0] & /*$scale*/\n 8192 && (s.viewportScale = /*$scale*/\n o[13]), t.$set(s);\n },\n i(o) {\n n || (Y(t.$$.fragment, o), n = !0);\n },\n o(o) {\n N(t.$$.fragment, o), n = !1;\n },\n d(o) {\n de(t, o);\n }\n };\n}\nfunction It(e) {\n let t, n;\n return t = new yo({\n props: {\n target: (\n /*drawingEl*/\n e[4]\n ),\n editor: bt(\n /*editable*/\n e[28].target.selector\n ),\n annotation: (\n /*editable*/\n e[28]\n ),\n style: (\n /*style*/\n e[1]\n ),\n transform: (\n /*transform*/\n e[10]\n ),\n viewportScale: (\n /*$scale*/\n e[13]\n )\n }\n }), t.$on(\"change\", function() {\n j(\n /*onChangeSelected*/\n e[17](\n /*editable*/\n e[28]\n )\n ) && e[17](\n /*editable*/\n e[28]\n ).apply(this, arguments);\n }), {\n c() {\n pe(t.$$.fragment);\n },\n m(o, i) {\n ue(t, o, i), n = !0;\n },\n p(o, i) {\n e = o;\n const s = {};\n i[0] & /*drawingEl*/\n 16 && (s.target = /*drawingEl*/\n e[4]), i[0] & /*editableAnnotations*/\n 64 && (s.editor = bt(\n /*editable*/\n e[28].target.selector\n )), i[0] & /*editableAnnotations*/\n 64 && (s.annotation = /*editable*/\n e[28]), i[0] & /*style*/\n 2 && (s.style = /*style*/\n e[1]), i[0] & /*transform*/\n 1024 && (s.transform = /*transform*/\n e[10]), i[0] & /*$scale*/\n 8192 && (s.viewportScale = /*$scale*/\n e[13]), t.$set(s);\n },\n i(o) {\n n || (Y(t.$$.fragment, o), n = !0);\n },\n o(o) {\n N(t.$$.fragment, o), n = !1;\n },\n d(o) {\n de(t, o);\n }\n };\n}\nfunction Pt(e) {\n let t = (\n /*editable*/\n e[28].id\n ), n, o, i = It(e);\n return {\n c() {\n i.c(), n = ce();\n },\n m(s, r) {\n i.m(s, r), v(s, n, r), o = !0;\n },\n p(s, r) {\n r[0] & /*editableAnnotations*/\n 64 && $(t, t = /*editable*/\n s[28].id) ? (re(), N(i, 1, 1, H), le(), i = It(s), i.c(), Y(i, 1), i.m(n.parentNode, n)) : i.p(s, r);\n },\n i(s) {\n o || (Y(i), o = !0);\n },\n o(s) {\n N(i), o = !1;\n },\n d(s) {\n s && O(n), i.d(s);\n }\n };\n}\nfunction xo(e) {\n let t, n, o, i, s, r, a = (\n /*$store*/\n e[12]\n ), l = [];\n for (let c = 0; c < a.length; c += 1)\n l[c] = kt(Lt(e, a, c));\n const d = (c) => N(l[c], 1, 1, () => {\n l[c] = null;\n });\n let m = (\n /*drawingEl*/\n e[4] && Bt(e)\n );\n return {\n c() {\n t = I(\"svg\"), n = I(\"g\");\n for (let c = 0; c < l.length; c += 1)\n l[c].c();\n o = I(\"g\"), m && m.c(), u(o, \"class\", \"drawing\"), u(t, \"class\", \"a9s-annotationlayer\"), ut(\n t,\n \"drawing\",\n /*tool*/\n e[2]\n );\n },\n m(c, f) {\n v(c, t, f), fe(t, n);\n for (let h = 0; h < l.length; h += 1)\n l[h] && l[h].m(n, null);\n fe(t, o), m && m.m(o, null), e[24](o), e[25](t), i = !0, s || (r = [\n J(t, \"pointerup\", function() {\n j(\n /*onPointerUp*/\n e[8]\n ) && e[8].apply(this, arguments);\n }),\n J(t, \"pointerdown\", function() {\n j(\n /*onPointerDown*/\n e[9]\n ) && e[9].apply(this, arguments);\n })\n ], s = !0);\n },\n p(c, f) {\n if (e = c, f[0] & /*$store, style, isEditable*/\n 4226) {\n a = /*$store*/\n e[12];\n let h;\n for (h = 0; h < a.length; h += 1) {\n const p = Lt(e, a, h);\n l[h] ? (l[h].p(p, f), Y(l[h], 1)) : (l[h] = kt(p), l[h].c(), Y(l[h], 1), l[h].m(n, null));\n }\n for (re(), h = a.length; h < l.length; h += 1)\n d(h);\n le();\n }\n /*drawingEl*/\n e[4] ? m ? (m.p(e, f), f[0] & /*drawingEl*/\n 16 && Y(m, 1)) : (m = Bt(e), m.c(), Y(m, 1), m.m(o, null)) : m && (re(), N(m, 1, 1, () => {\n m = null;\n }), le()), (!i || f[0] & /*tool*/\n 4) && ut(\n t,\n \"drawing\",\n /*tool*/\n e[2]\n );\n },\n i(c) {\n if (!i) {\n for (let f = 0; f < a.length; f += 1)\n Y(l[f]);\n Y(m), i = !0;\n }\n },\n o(c) {\n l = l.filter(Boolean);\n for (let f = 0; f < l.length; f += 1)\n N(l[f]);\n N(m), i = !1;\n },\n d(c) {\n c && O(t), ot(l, c), m && m.d(), e[24](null), e[25](null), s = !1, ae(r);\n }\n };\n}\nfunction $o(e, t, n) {\n let o, i, s, r, a, l, d, m, c = H, f = () => (c(), c = Xt(P, (B) => n(13, m = B)), P);\n e.$$.on_destroy.push(() => c());\n let { drawingEnabled: h } = t, { image: p } = t, { preferredDrawingMode: g } = t, { state: w } = t, { style: T = void 0 } = t, { tool: _, opts: M } = qt(\"rectangle\"), { tool: X = _, opts: R = M } = t, { user: z } = t, K, D, P;\n Ce(() => f(n(5, P = Mo(p, D))));\n const { selection: y, store: b } = w;\n ft(e, y, (B) => n(23, l = B)), ft(e, b, (B) => n(12, d = B));\n let E = null, A = null;\n const k = (B) => {\n b.unobserve(E);\n const Z = B.filter(({ editable: F }) => F).map(({ id: F }) => F);\n Z.length > 0 ? (n(6, A = Z.map((F) => b.getAnnotation(F))), E = (F) => {\n const { updated: W } = F.changes;\n n(6, A = W.map((se) => se.newValue));\n }, b.observe(E, { annotations: Z })) : n(6, A = null);\n }, U = (B) => {\n const Z = rt(), F = {\n id: Z,\n bodies: [],\n target: {\n annotation: Z,\n selector: B.detail,\n creator: z,\n created: /* @__PURE__ */ new Date()\n }\n };\n b.addAnnotation(F), y.setSelected(F.id);\n }, Q = (B) => (Z) => {\n var he;\n const { target: F } = B, W = 10 * 60 * 1e3, se = ((he = F.creator) == null ? void 0 : he.id) !== z.id || !F.created || (/* @__PURE__ */ new Date()).getTime() - F.created.getTime() > W;\n b.updateTarget({\n ...F,\n selector: Z.detail,\n created: se ? F.created : /* @__PURE__ */ new Date(),\n updated: se ? /* @__PURE__ */ new Date() : null,\n updatedBy: se ? z : null\n });\n };\n function Me(B) {\n Ge[B ? \"unshift\" : \"push\"](() => {\n K = B, n(4, K);\n });\n }\n function x(B) {\n Ge[B ? \"unshift\" : \"push\"](() => {\n D = B, n(3, D);\n });\n }\n return e.$$set = (B) => {\n \"drawingEnabled\" in B && n(0, h = B.drawingEnabled), \"image\" in B && n(18, p = B.image), \"preferredDrawingMode\" in B && n(19, g = B.preferredDrawingMode), \"state\" in B && n(20, w = B.state), \"style\" in B && n(1, T = B.style), \"tool\" in B && n(2, X = B.tool), \"opts\" in B && n(21, R = B.opts), \"user\" in B && n(22, z = B.user);\n }, e.$$.update = () => {\n e.$$.dirty[0] & /*opts, preferredDrawingMode*/\n 2621440 && n(11, o = (R == null ? void 0 : R.drawingMode) || g), e.$$.dirty[0] & /*svgEl*/\n 8 && n(10, i = zo(D)), e.$$.dirty[0] & /*svgEl*/\n 8 && n(9, { onPointerDown: s, onPointerUp: r } = jo(D, b), s, (n(8, r), n(3, D))), e.$$.dirty[0] & /*$selection*/\n 8388608 && n(7, a = (B) => l.selected.find((Z) => Z.id === B.id && Z.editable)), e.$$.dirty[0] & /*$selection*/\n 8388608 && k(l.selected);\n }, [\n h,\n T,\n X,\n D,\n K,\n P,\n A,\n a,\n r,\n s,\n i,\n o,\n d,\n m,\n y,\n b,\n U,\n Q,\n p,\n g,\n w,\n R,\n z,\n l,\n Me,\n x\n ];\n}\nclass ei extends ie {\n constructor(t) {\n super(), oe(\n this,\n t,\n $o,\n xo,\n $,\n {\n drawingEnabled: 0,\n image: 18,\n preferredDrawingMode: 19,\n state: 20,\n style: 1,\n tool: 2,\n opts: 21,\n user: 22\n },\n null,\n [-1, -1]\n );\n }\n}\nfunction ti(e, t, n, o, i) {\n Jt(e, t, n || 0, o || e.length - 1, i || ni);\n}\nfunction Jt(e, t, n, o, i) {\n for (; o > n; ) {\n if (o - n > 600) {\n var s = o - n + 1, r = t - n + 1, a = Math.log(s), l = 0.5 * Math.exp(2 * a / 3), d = 0.5 * Math.sqrt(a * l * (s - l) / s) * (r - s / 2 < 0 ? -1 : 1), m = Math.max(n, Math.floor(t - r * l / s + d)), c = Math.min(o, Math.floor(t + (s - r) * l / s + d));\n Jt(e, t, m, c, i);\n }\n var f = e[t], h = n, p = o;\n for (Le(e, n, t), i(e[o], f) > 0 && Le(e, n, o); h < p; ) {\n for (Le(e, h, p), h++, p--; i(e[h], f) < 0; )\n h++;\n for (; i(e[p], f) > 0; )\n p--;\n }\n i(e[n], f) === 0 ? Le(e, n, p) : (p++, Le(e, p, o)), p <= t && (n = p + 1), t <= p && (o = p - 1);\n }\n}\nfunction Le(e, t, n) {\n var o = e[t];\n e[t] = e[n], e[n] = o;\n}\nfunction ni(e, t) {\n return e < t ? -1 : e > t ? 1 : 0;\n}\nclass oi {\n constructor(t = 9) {\n this._maxEntries = Math.max(4, t), this._minEntries = Math.max(2, Math.ceil(this._maxEntries * 0.4)), this.clear();\n }\n all() {\n return this._all(this.data, []);\n }\n search(t) {\n let n = this.data;\n const o = [];\n if (!Ue(t, n))\n return o;\n const i = this.toBBox, s = [];\n for (; n; ) {\n for (let r = 0; r < n.children.length; r++) {\n const a = n.children[r], l = n.leaf ? i(a) : a;\n Ue(t, l) && (n.leaf ? o.push(a) : $e(t, l) ? this._all(a, o) : s.push(a));\n }\n n = s.pop();\n }\n return o;\n }\n collides(t) {\n let n = this.data;\n if (!Ue(t, n))\n return !1;\n const o = [];\n for (; n; ) {\n for (let i = 0; i < n.children.length; i++) {\n const s = n.children[i], r = n.leaf ? this.toBBox(s) : s;\n if (Ue(t, r)) {\n if (n.leaf || $e(t, r))\n return !0;\n o.push(s);\n }\n }\n n = o.pop();\n }\n return !1;\n }\n load(t) {\n if (!(t && t.length))\n return this;\n if (t.length < this._minEntries) {\n for (let o = 0; o < t.length; o++)\n this.insert(t[o]);\n return this;\n }\n let n = this._build(t.slice(), 0, t.length - 1, 0);\n if (!this.data.children.length)\n this.data = n;\n else if (this.data.height === n.height)\n this._splitRoot(this.data, n);\n else {\n if (this.data.height < n.height) {\n const o = this.data;\n this.data = n, n = o;\n }\n this._insert(n, this.data.height - n.height - 1, !0);\n }\n return this;\n }\n insert(t) {\n return t && this._insert(t, this.data.height - 1), this;\n }\n clear() {\n return this.data = Ee([]), this;\n }\n remove(t, n) {\n if (!t)\n return this;\n let o = this.data;\n const i = this.toBBox(t), s = [], r = [];\n let a, l, d;\n for (; o || s.length; ) {\n if (o || (o = s.pop(), l = s[s.length - 1], a = r.pop(), d = !0), o.leaf) {\n const m = ii(t, o.children, n);\n if (m !== -1)\n return o.children.splice(m, 1), s.push(o), this._condense(s), this;\n }\n !d && !o.leaf && $e(o, i) ? (s.push(o), r.push(a), a = 0, l = o, o = o.children[0]) : l ? (a++, o = l.children[a], d = !1) : o = null;\n }\n return this;\n }\n toBBox(t) {\n return t;\n }\n compareMinX(t, n) {\n return t.minX - n.minX;\n }\n compareMinY(t, n) {\n return t.minY - n.minY;\n }\n toJSON() {\n return this.data;\n }\n fromJSON(t) {\n return this.data = t, this;\n }\n _all(t, n) {\n const o = [];\n for (; t; )\n t.leaf ? n.push(...t.children) : o.push(...t.children), t = o.pop();\n return n;\n }\n _build(t, n, o, i) {\n const s = o - n + 1;\n let r = this._maxEntries, a;\n if (s <= r)\n return a = Ee(t.slice(n, o + 1)), we(a, this.toBBox), a;\n i || (i = Math.ceil(Math.log(s) / Math.log(r)), r = Math.ceil(s / Math.pow(r, i - 1))), a = Ee([]), a.leaf = !1, a.height = i;\n const l = Math.ceil(s / r), d = l * Math.ceil(Math.sqrt(r));\n Yt(t, n, o, d, this.compareMinX);\n for (let m = n; m <= o; m += d) {\n const c = Math.min(m + d - 1, o);\n Yt(t, m, c, l, this.compareMinY);\n for (let f = m; f <= c; f += l) {\n const h = Math.min(f + l - 1, c);\n a.children.push(this._build(t, f, h, i - 1));\n }\n }\n return we(a, this.toBBox), a;\n }\n _chooseSubtree(t, n, o, i) {\n for (; i.push(n), !(n.leaf || i.length - 1 === o); ) {\n let s = 1 / 0, r = 1 / 0, a;\n for (let l = 0; l < n.children.length; l++) {\n const d = n.children[l], m = xe(d), c = li(t, d) - m;\n c < r ? (r = c, s = m < s ? m : s, a = d) : c === r && m < s && (s = m, a = d);\n }\n n = a || n.children[0];\n }\n return n;\n }\n _insert(t, n, o) {\n const i = o ? t : this.toBBox(t), s = [], r = this._chooseSubtree(i, this.data, n, s);\n for (r.children.push(t), ve(r, i); n >= 0 && s[n].children.length > this._maxEntries; )\n this._split(s, n), n--;\n this._adjustParentBBoxes(i, s, n);\n }\n // split overflowed node into two\n _split(t, n) {\n const o = t[n], i = o.children.length, s = this._minEntries;\n this._chooseSplitAxis(o, s, i);\n const r = this._chooseSplitIndex(o, s, i), a = Ee(o.children.splice(r, o.children.length - r));\n a.height = o.height, a.leaf = o.leaf, we(o, this.toBBox), we(a, this.toBBox), n ? t[n - 1].children.push(a) : this._splitRoot(o, a);\n }\n _splitRoot(t, n) {\n this.data = Ee([t, n]), this.data.height = t.height + 1, this.data.leaf = !1, we(this.data, this.toBBox);\n }\n _chooseSplitIndex(t, n, o) {\n let i, s = 1 / 0, r = 1 / 0;\n for (let a = n; a <= o - n; a++) {\n const l = Oe(t, 0, a, this.toBBox), d = Oe(t, a, o, this.toBBox), m = ai(l, d), c = xe(l) + xe(d);\n m < s ? (s = m, i = a, r = c < r ? c : r) : m === s && c < r && (r = c, i = a);\n }\n return i || o - n;\n }\n // sorts node children by the best axis for split\n _chooseSplitAxis(t, n, o) {\n const i = t.leaf ? this.compareMinX : si, s = t.leaf ? this.compareMinY : ri, r = this._allDistMargin(t, n, o, i), a = this._allDistMargin(t, n, o, s);\n r < a && t.children.sort(i);\n }\n // total margin of all possible split distributions where each node is at least m full\n _allDistMargin(t, n, o, i) {\n t.children.sort(i);\n const s = this.toBBox, r = Oe(t, 0, n, s), a = Oe(t, o - n, o, s);\n let l = Xe(r) + Xe(a);\n for (let d = n; d < o - n; d++) {\n const m = t.children[d];\n ve(r, t.leaf ? s(m) : m), l += Xe(r);\n }\n for (let d = o - n - 1; d >= n; d--) {\n const m = t.children[d];\n ve(a, t.leaf ? s(m) : m), l += Xe(a);\n }\n return l;\n }\n _adjustParentBBoxes(t, n, o) {\n for (let i = o; i >= 0; i--)\n ve(n[i], t);\n }\n _condense(t) {\n for (let n = t.length - 1, o; n >= 0; n--)\n t[n].children.length === 0 ? n > 0 ? (o = t[n - 1].children, o.splice(o.indexOf(t[n]), 1)) : this.clear() : we(t[n], this.toBBox);\n }\n}\nfunction ii(e, t, n) {\n if (!n)\n return t.indexOf(e);\n for (let o = 0; o < t.length; o++)\n if (n(e, t[o]))\n return o;\n return -1;\n}\nfunction we(e, t) {\n Oe(e, 0, e.children.length, t, e);\n}\nfunction Oe(e, t, n, o, i) {\n i || (i = Ee(null)), i.minX = 1 / 0, i.minY = 1 / 0, i.maxX = -1 / 0, i.maxY = -1 / 0;\n for (let s = t; s < n; s++) {\n const r = e.children[s];\n ve(i, e.leaf ? o(r) : r);\n }\n return i;\n}\nfunction ve(e, t) {\n return e.minX = Math.min(e.minX, t.minX), e.minY = Math.min(e.minY, t.minY), e.maxX = Math.max(e.maxX, t.maxX), e.maxY = Math.max(e.maxY, t.maxY), e;\n}\nfunction si(e, t) {\n return e.minX - t.minX;\n}\nfunction ri(e, t) {\n return e.minY - t.minY;\n}\nfunction xe(e) {\n return (e.maxX - e.minX) * (e.maxY - e.minY);\n}\nfunction Xe(e) {\n return e.maxX - e.minX + (e.maxY - e.minY);\n}\nfunction li(e, t) {\n return (Math.max(t.maxX, e.maxX) - Math.min(t.minX, e.minX)) * (Math.max(t.maxY, e.maxY) - Math.min(t.minY, e.minY));\n}\nfunction ai(e, t) {\n const n = Math.max(e.minX, t.minX), o = Math.max(e.minY, t.minY), i = Math.min(e.maxX, t.maxX), s = Math.min(e.maxY, t.maxY);\n return Math.max(0, i - n) * Math.max(0, s - o);\n}\nfunction $e(e, t) {\n return e.minX <= t.minX && e.minY <= t.minY && t.maxX <= e.maxX && t.maxY <= e.maxY;\n}\nfunction Ue(e, t) {\n return t.minX <= e.maxX && t.minY <= e.maxY && t.maxX >= e.minX && t.maxY >= e.minY;\n}\nfunction Ee(e) {\n return {\n children: e,\n height: 1,\n leaf: !0,\n minX: 1 / 0,\n minY: 1 / 0,\n maxX: -1 / 0,\n maxY: -1 / 0\n };\n}\nfunction Yt(e, t, n, o, i) {\n const s = [t, n];\n for (; s.length; ) {\n if (n = s.pop(), t = s.pop(), n - t <= o)\n continue;\n const r = t + Math.ceil((n - t) / o / 2) * o;\n ti(e, r, t, n, i), s.push(t, r, r, n);\n }\n}\nconst ci = () => {\n const e = new oi(), t = /* @__PURE__ */ new Map(), n = () => [...t.values()], o = () => {\n e.clear(), t.clear();\n }, i = (c) => {\n const { minX: f, minY: h, maxX: p, maxY: g } = c.selector.geometry.bounds, w = { minX: f, minY: h, maxX: p, maxY: g, target: c };\n e.insert(w), t.set(c.annotation, w);\n }, s = (c) => {\n const f = t.get(c.annotation);\n e.remove(f), t.delete(c.annotation);\n };\n return {\n all: n,\n clear: o,\n getAt: (c, f) => {\n const p = e.search({\n minX: c,\n minY: f,\n maxX: c,\n maxY: f\n }).map((g) => g.target).filter((g) => g.selector.type === V.RECTANGLE || cn(g.selector, c, f));\n if (p.length > 0)\n return p.sort((g, w) => nt(g.selector) - nt(w.selector)), p[0];\n },\n getIntersecting: (c, f, h, p) => e.search({\n minX: c,\n minY: f,\n maxX: c + h,\n maxY: f + p\n }).map((g) => g.target),\n insert: i,\n remove: s,\n set: (c, f = !0) => {\n f && o();\n const h = c.map((p) => {\n const { minX: g, minY: w, maxX: T, maxY: _ } = p.selector.geometry.bounds;\n return { minX: g, minY: w, maxX: T, maxY: _, target: p };\n });\n h.forEach((p) => t.set(p.target.annotation, p)), e.load(h);\n },\n size: () => e.all().length,\n update: (c, f) => {\n s(c), i(f);\n }\n };\n}, fi = (e) => {\n const t = Rn(), n = ci(), o = Ln(t, e.pointerSelectAction), i = Mn(t), s = Nn();\n return t.observe(({ changes: l }) => {\n n.set(l.created.map((d) => d.target), !1), l.deleted.forEach((d) => n.remove(d.target)), l.updated.forEach(({ oldValue: d, newValue: m }) => n.update(d.target, m.target));\n }), {\n store: {\n ...t,\n getAt: (l, d) => {\n const m = n.getAt(l, d);\n return m ? t.getAnnotation(m.annotation) : void 0;\n },\n getIntersecting: (l, d, m, c) => n.getIntersecting(l, d, m, c).map((f) => t.getAnnotation(f.annotation))\n },\n selection: o,\n hover: i,\n viewport: s\n };\n}, ui = (e) => {\n const t = fi(e);\n return {\n ...t,\n store: Dn(t.store)\n };\n}, di = (e) => {\n let t, n;\n if (e.nodeName === \"CANVAS\")\n t = e, n = t.getContext(\"2d\", { willReadFrequently: !0 });\n else {\n const i = e;\n t = document.createElement(\"canvas\"), t.width = i.width, t.height = i.height, n = t.getContext(\"2d\", { willReadFrequently: !0 }), n.drawImage(i, 0, 0, i.width, i.height);\n }\n let o = 0;\n for (let i = 1; i < 10; i++)\n for (let s = 1; s < 10; s++) {\n const r = Math.round(s * t.width / 10), a = Math.round(i * t.height / 10), l = n.getImageData(r, a, 1, 1).data, d = (0.299 * l[0] + 0.587 * l[1] + 0.114 * l[2]) / 255;\n o += d;\n }\n return o / 81;\n}, hi = (e, t) => {\n const n = di(e), o = n > 0.6 ? \"dark\" : \"light\";\n console.log(`[Annotorious] Image brightness: ${n.toFixed(1)}. Setting ${o} theme.`), t.setAttribute(\"data-theme\", o);\n}, mi = (e) => ({\n ...e,\n drawingEnabled: e.drawingEnabled === void 0 ? !0 : e.drawingEnabled,\n drawingMode: e.drawingMode || \"drag\",\n pointerSelectAction: e.pointerSelectAction || zt.EDIT\n}), Rt = navigator.userAgent.indexOf(\"Mac OS X\") !== -1, gi = (e, t) => {\n const n = t || document, o = (r) => {\n r.key === \"Z\" && r.ctrlKey ? e.undo() : r.key === \"Y\" && r.ctrlKey && e.redo();\n }, i = (r) => {\n r.key === \"z\" && r.metaKey && (r.shiftKey ? e.redo() : e.undo());\n }, s = () => {\n Rt ? n.removeEventListener(\"keydown\", i) : n.removeEventListener(\"keydown\", o);\n };\n return Rt ? n.addEventListener(\"keydown\", i) : n.addEventListener(\"keydown\", o), {\n destroy: s\n };\n};\nconst Si = (e, t = {}) => {\n if (!e)\n throw \"Missing argument: image\";\n const n = typeof e == \"string\" ? document.getElementById(e) : e, o = mi(t), i = ui(o), { hover: s, selection: r, store: a } = i, l = Gn(\n a,\n r,\n s,\n void 0,\n o.adapter,\n o.autoSave\n ), d = Un(a), m = document.createElement(\"DIV\");\n m.style.position = \"relative\", m.style.display = \"inline-block\", n.style.display = \"block\", n.parentNode.insertBefore(m, n), m.appendChild(n);\n const c = gi(d);\n let f = qn();\n hi(n, m);\n const h = new ei({\n target: m,\n props: {\n drawingEnabled: o.drawingEnabled,\n image: n,\n preferredDrawingMode: o.drawingMode,\n state: i,\n style: o.style,\n user: f\n }\n });\n h.$on(\"click\", (P) => {\n const { originalEvent: y, annotation: b } = P.detail;\n b ? r.clickSelect(b.id, y) : r.isEmpty() || r.clear();\n });\n const p = Fn(a, d, o.adapter), g = () => {\n h.$destroy(), m.parentNode.insertBefore(n, m), m.parentNode.removeChild(m), c.destroy(), d.destroy();\n }, w = () => f, T = (P, y, b) => Co(P, y, b), _ = (P, y) => ho(P, y), M = (P) => {\n const { tool: y, opts: b } = qt(P);\n h.$set({ tool: y, opts: b });\n }, X = (P) => h.$set({ drawingEnabled: P }), R = (P) => {\n console.warn(\"Filter not implemented yet\");\n }, z = (P) => {\n P ? r.setSelected(P) : r.clear();\n }, K = (P) => h.$set({ style: P }), D = (P) => {\n f = P, h.$set({ user: P });\n };\n return {\n ...p,\n destroy: g,\n getUser: w,\n listDrawingTools: Bo,\n on: l.on,\n off: l.off,\n registerDrawingTool: T,\n registerShapeEditor: _,\n setDrawingEnabled: X,\n setDrawingTool: M,\n setFilter: R,\n setSelected: z,\n setStyle: K,\n setUser: D,\n state: i\n };\n};\nexport {\n Wt as Editor,\n yo as EditorMount,\n L as Handle,\n Ti as IdentityTransform,\n G as Origin,\n wi as PRESENCE_KEY,\n zt as PointerSelectAction,\n lo as PolygonEditor,\n uo as RectangleEditor,\n dn as RectangleUtil,\n To as RubberbandRectangle,\n ei as SVGAnnotationLayer,\n V as ShapeType,\n bo as ToolMount,\n Ei as W3CImageFormat,\n jo as addEventListeners,\n He as boundsFromPoints,\n nt as computeArea,\n qn as createAnonymousGuest,\n Fn as createBaseAnnotator,\n _i as createBody,\n $n as createDefaultAppearenceProvider,\n Si as createImageAnnotator,\n fi as createImageAnnotatorState,\n bi as createPresenceState,\n zo as createSVGTransform,\n ui as createSvelteImageAnnotatorState,\n xn as defaultColorProvider,\n Vt as diffAnnotations,\n Ke as distance,\n Mo as enableResponsive,\n mi as fillDefaults,\n pi as getContributors,\n bt as getEditor,\n qt as getTool,\n gi as initKeyboardCommands,\n cn as intersects,\n Ai as isTouch,\n Bo as listDrawingTools,\n Hn as parseAll,\n hn as parseFragmentSelector,\n wn as parseSVGSelector,\n Kn as parseW3CBodies,\n no as parseW3CImageAnnotation,\n ho as registerEditor,\n st as registerShapeUtil,\n Co as registerTool,\n di as sampleBrightness,\n yi as serializeAll,\n mn as serializeFragmentSelector,\n bn as serializeSVGSelector,\n Zn as serializeW3CBodies,\n oo as serializeW3CImageAnnotation,\n hi as setTheme\n};\n//# sourceMappingURL=annotorious.es.js.map\n"],"names":["H","Kt","e","t","Dt","ct","ae","j","$","Zt","Xt","ft","Qt","i","Ut","xt","s","r","a","$t","en","fe","v","ot","I","Nt","ne","ce","J","u","tn","ut","Be","ke","Gt","Ce","Se","Ae","be","Ge","Te","dt","et","sn","Ht","tt","qe","_e","rn","ln","Ne","me","re","le","Y","N","pe","ue","de","an","oe","d","c","f","h","p","ie","V","it","st","nt","cn","He","fn","dn","hn","g","Ft","ht","o","pn","n","_n","yn","wn","bn","De","En","An","q","Tn","Sn","mt","rt","gt","ge","ye","Fe","Mn","zt","Je","Ln","vn","kn","Bn","Cn","Vt","G","l","m","Yn","Rn","y","b","E","A","k","U","Q","w","T","_","X","R","z","K","Dn","Xn","Un","Nn","Gn","M","Hn","zn","Vn","jn","Wn","qn","Jn","Zn","Ei","no","oo","pt","_t","L","io","yt","wt","so","Wt","ro","lo","ao","D","P","Me","x","B","Z","F","W","se","he","Ve","ee","Ie","Pe","je","te","Ye","Re","We","at","C","S","co","fo","uo","jt","bt","ho","mo","Et","go","po","ze","_o","yo","wo","bo","At","Eo","Ao","To","Ke","So","Mo","Ze","Tt","St","Lo","Oo","ko","lt","Bo","qt","Co","Io","Po","Ro","Do","Xo","Uo","No","Go","Ho","Fo","zo","Vo","jo","Wo","Mt","Lt","Qe","Ot","vt","qo","Jo","Ko","kt","Bt","Qo","Zo","Ct","Pt","It","xo","$o","ei","ti","Jt","ni","Le","oi","Ue","$e","Ee","ii","we","Yt","xe","li","ve","Oe","ai","si","ri","Xe","ci","fi","ui","di","hi","mi","Rt","gi","Si"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"annotorious-react.es18.js","sources":["../../annotorious/dist/annotorious.es.js"],"sourcesContent":["function V() {\n}\nfunction tn(e, t) {\n for (const n in t)\n e[n] = t[n];\n return e;\n}\nfunction zt(e) {\n return e();\n}\nfunction ht() {\n return /* @__PURE__ */ Object.create(null);\n}\nfunction re(e) {\n e.forEach(zt);\n}\nfunction H(e) {\n return typeof e == \"function\";\n}\nfunction Z(e, t) {\n return e != e ? t == t : e !== t || e && typeof e == \"object\" || typeof e == \"function\";\n}\nfunction nn(e) {\n return Object.keys(e).length === 0;\n}\nfunction Ft(e, ...t) {\n if (e == null)\n return V;\n const n = e.subscribe(...t);\n return n.unsubscribe ? () => n.unsubscribe() : n;\n}\nfunction gt(e, t, n) {\n e.$$.on_destroy.push(Ft(t, n));\n}\nfunction on(e, t, n, o) {\n if (e) {\n const i = Ht(e, t, n, o);\n return e[0](i);\n }\n}\nfunction Ht(e, t, n, o) {\n return e[1] && o ? tn(n.ctx.slice(), e[1](o(t))) : n.ctx;\n}\nfunction sn(e, t, n, o) {\n if (e[2] && o) {\n const i = e[2](o(n));\n if (t.dirty === void 0)\n return i;\n if (typeof i == \"object\") {\n const s = [], r = Math.max(t.dirty.length, i.length);\n for (let a = 0; a < r; a += 1)\n s[a] = t.dirty[a] | i[a];\n return s;\n }\n return t.dirty | i;\n }\n return t.dirty;\n}\nfunction rn(e, t, n, o, i, s) {\n if (i) {\n const r = Ht(t, n, o, s);\n e.p(r, i);\n }\n}\nfunction ln(e) {\n if (e.ctx.length > 32) {\n const t = [], n = e.ctx.length / 32;\n for (let o = 0; o < n; o++)\n t[o] = -1;\n return t;\n }\n return -1;\n}\nfunction ae(e, t) {\n e.appendChild(t);\n}\nfunction k(e, t, n) {\n e.insertBefore(t, n || null);\n}\nfunction L(e) {\n e.parentNode && e.parentNode.removeChild(e);\n}\nfunction rt(e, t) {\n for (let n = 0; n < e.length; n += 1)\n e[n] && e[n].d(t);\n}\nfunction U(e) {\n return document.createElementNS(\"http://www.w3.org/2000/svg\", e);\n}\nfunction jt(e) {\n return document.createTextNode(e);\n}\nfunction ee() {\n return jt(\" \");\n}\nfunction le() {\n return jt(\"\");\n}\nfunction W(e, t, n, o) {\n return e.addEventListener(t, n, o), () => e.removeEventListener(t, n, o);\n}\nfunction f(e, t, n) {\n n == null ? e.removeAttribute(t) : e.getAttribute(t) !== n && e.setAttribute(t, n);\n}\nfunction an(e) {\n return Array.from(e.childNodes);\n}\nfunction mt(e, t, n) {\n e.classList[n ? \"add\" : \"remove\"](t);\n}\nfunction cn(e, t, { bubbles: n = !1, cancelable: o = !1 } = {}) {\n const i = document.createEvent(\"CustomEvent\");\n return i.initCustomEvent(e, n, o, t), i;\n}\nlet Ce;\nfunction Ie(e) {\n Ce = e;\n}\nfunction qt() {\n if (!Ce)\n throw new Error(\"Function called outside component initialization\");\n return Ce;\n}\nfunction Pe(e) {\n qt().$$.on_mount.push(e);\n}\nfunction ve() {\n const e = qt();\n return (t, n, { cancelable: o = !1 } = {}) => {\n const i = e.$$.callbacks[t];\n if (i) {\n const s = cn(t, n, { cancelable: o });\n return i.slice().forEach((r) => {\n r.call(e, s);\n }), !s.defaultPrevented;\n }\n return !0;\n };\n}\nfunction Te(e, t) {\n const n = e.$$.callbacks[t.type];\n n && n.slice().forEach((o) => o.call(this, t));\n}\nconst Ee = [], ze = [];\nlet Se = [];\nconst pt = [], dn = /* @__PURE__ */ Promise.resolve();\nlet ot = !1;\nfunction un() {\n ot || (ot = !0, dn.then(Wt));\n}\nfunction it(e) {\n Se.push(e);\n}\nconst Ke = /* @__PURE__ */ new Set();\nlet ye = 0;\nfunction Wt() {\n if (ye !== 0)\n return;\n const e = Ce;\n do {\n try {\n for (; ye < Ee.length; ) {\n const t = Ee[ye];\n ye++, Ie(t), fn(t.$$);\n }\n } catch (t) {\n throw Ee.length = 0, ye = 0, t;\n }\n for (Ie(null), Ee.length = 0, ye = 0; ze.length; )\n ze.pop()();\n for (let t = 0; t < Se.length; t += 1) {\n const n = Se[t];\n Ke.has(n) || (Ke.add(n), n());\n }\n Se.length = 0;\n } while (Ee.length);\n for (; pt.length; )\n pt.pop()();\n ot = !1, Ke.clear(), Ie(e);\n}\nfunction fn(e) {\n if (e.fragment !== null) {\n e.update(), re(e.before_update);\n const t = e.dirty;\n e.dirty = [-1], e.fragment && e.fragment.p(e.ctx, t), e.after_update.forEach(it);\n }\n}\nfunction hn(e) {\n const t = [], n = [];\n Se.forEach((o) => e.indexOf(o) === -1 ? t.push(o) : n.push(o)), n.forEach((o) => o()), Se = t;\n}\nconst Ve = /* @__PURE__ */ new Set();\nlet fe;\nfunction ie() {\n fe = {\n r: 0,\n c: [],\n p: fe\n // parent group\n };\n}\nfunction se() {\n fe.r || re(fe.c), fe = fe.p;\n}\nfunction D(e, t) {\n e && e.i && (Ve.delete(e), e.i(t));\n}\nfunction X(e, t, n, o) {\n if (e && e.o) {\n if (Ve.has(e))\n return;\n Ve.add(e), fe.c.push(() => {\n Ve.delete(e), o && (n && e.d(1), o());\n }), e.o(t);\n } else\n o && o();\n}\nfunction ge(e) {\n e && e.c();\n}\nfunction ce(e, t, n, o) {\n const { fragment: i, after_update: s } = e.$$;\n i && i.m(t, n), o || it(() => {\n const r = e.$$.on_mount.map(zt).filter(H);\n e.$$.on_destroy ? e.$$.on_destroy.push(...r) : re(r), e.$$.on_mount = [];\n }), s.forEach(it);\n}\nfunction de(e, t) {\n const n = e.$$;\n n.fragment !== null && (hn(n.after_update), re(n.on_destroy), n.fragment && n.fragment.d(t), n.on_destroy = n.fragment = null, n.ctx = []);\n}\nfunction gn(e, t) {\n e.$$.dirty[0] === -1 && (Ee.push(e), un(), e.$$.dirty.fill(0)), e.$$.dirty[t / 31 | 0] |= 1 << t % 31;\n}\nfunction te(e, t, n, o, i, s, r, a = [-1]) {\n const l = Ce;\n Ie(e);\n const d = e.$$ = {\n fragment: null,\n ctx: [],\n // state\n props: s,\n update: V,\n not_equal: i,\n bound: ht(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(t.context || (l ? l.$$.context : [])),\n // everything else\n callbacks: ht(),\n dirty: a,\n skip_bound: !1,\n root: t.target || l.$$.root\n };\n r && r(d.root);\n let h = !1;\n if (d.ctx = n ? n(e, t.props || {}, (c, g, ...u) => {\n const m = u.length ? u[0] : g;\n return d.ctx && i(d.ctx[c], d.ctx[c] = m) && (!d.skip_bound && d.bound[c] && d.bound[c](m), h && gn(e, c)), g;\n }) : [], d.update(), h = !0, re(d.before_update), d.fragment = o ? o(d.ctx) : !1, t.target) {\n if (t.hydrate) {\n const c = an(t.target);\n d.fragment && d.fragment.l(c), c.forEach(L);\n } else\n d.fragment && d.fragment.c();\n t.intro && D(e.$$.fragment), ce(e, t.target, t.anchor, t.customElement), Wt();\n }\n Ie(l);\n}\nclass ne {\n $destroy() {\n de(this, 1), this.$destroy = V;\n }\n $on(t, n) {\n if (!H(n))\n return V;\n const o = this.$$.callbacks[t] || (this.$$.callbacks[t] = []);\n return o.push(n), () => {\n const i = o.indexOf(n);\n i !== -1 && o.splice(i, 1);\n };\n }\n $set(t) {\n this.$$set && !nn(t) && (this.$$.skip_bound = !0, this.$$set(t), this.$$.skip_bound = !1);\n }\n}\nvar F = /* @__PURE__ */ ((e) => (e.ELLIPSE = \"ELLIPSE\", e.POLYGON = \"POLYGON\", e.RECTANGLE = \"RECTANGLE\", e))(F || {});\nconst lt = {}, at = (e, t) => lt[e] = t, st = (e) => lt[e.type].area(e), mn = (e, t, n) => lt[e.type].intersects(e, t, n), Fe = (e) => {\n let t = 1 / 0, n = 1 / 0, o = -1 / 0, i = -1 / 0;\n return e.forEach(([s, r]) => {\n t = Math.min(t, s), n = Math.min(n, r), o = Math.max(o, s), i = Math.max(i, r);\n }), { minX: t, minY: n, maxX: o, maxY: i };\n}, pn = {\n area: (e) => Math.PI * e.geometry.rx * e.geometry.ry,\n intersects: (e, t, n) => {\n const { cx: o, cy: i, rx: s, ry: r } = e.geometry, a = 0, l = Math.cos(a), d = Math.sin(a), h = t - o, c = n - i, g = l * h + d * c, u = d * h - l * c;\n return g * g / (s * s) + u * u / (r * r) <= 1;\n }\n};\nat(F.ELLIPSE, pn);\nconst yn = {\n area: (e) => {\n const { points: t } = e.geometry;\n let n = 0, o = t.length - 1;\n for (let i = 0; i < t.length; i++)\n n += (t[o][0] + t[i][0]) * (t[o][1] - t[i][1]), o = i;\n return Math.abs(0.5 * n);\n },\n intersects: (e, t, n) => {\n const { points: o } = e.geometry;\n let i = !1;\n for (let s = 0, r = o.length - 1; s < o.length; r = s++) {\n const a = o[s][0], l = o[s][1], d = o[r][0], h = o[r][1];\n l > n != h > n && t < (d - a) * (n - l) / (h - l) + a && (i = !i);\n }\n return i;\n }\n};\nat(F.POLYGON, yn);\nconst _n = {\n area: (e) => e.geometry.w * e.geometry.h,\n intersects: (e, t, n) => t >= e.geometry.x && t <= e.geometry.x + e.geometry.w && n >= e.geometry.y && n <= e.geometry.y + e.geometry.h\n};\nat(F.RECTANGLE, _n);\nconst wn = (e, t = !1) => {\n const n = typeof e == \"string\" ? e : e.value, o = /^(xywh)=(pixel|percent)?:?(.+?),(.+?),(.+?),(.+)*/g, i = [...n.matchAll(o)][0], [s, r, a, l, d, h, c] = i;\n if (r !== \"xywh\")\n throw new Error(\"Unsupported MediaFragment: \" + n);\n if (a && a !== \"pixel\")\n throw new Error(`Unsupported MediaFragment unit: ${a}`);\n const [g, u, m, w] = [l, d, h, c].map(parseFloat);\n return {\n type: F.RECTANGLE,\n geometry: {\n x: g,\n y: u,\n w: m,\n h: w,\n bounds: {\n minX: g,\n minY: t ? u - w : u,\n maxX: g + m,\n maxY: t ? u : u + w\n }\n }\n };\n}, bn = (e) => {\n const { x: t, y: n, w: o, h: i } = e;\n return {\n type: \"FragmentSelector\",\n conformsTo: \"http://www.w3.org/TR/media-frags/\",\n value: `xywh=pixel:${t},${n},${o},${i}`\n };\n}, Jt = \"http://www.w3.org/2000/svg\", yt = (e) => {\n const t = (o) => {\n Array.from(o.attributes).forEach((i) => {\n i.name.startsWith(\"on\") && o.removeAttribute(i.name);\n });\n }, n = e.getElementsByTagName(\"script\");\n return Array.from(n).reverse().forEach((o) => o.parentNode.removeChild(o)), Array.from(e.querySelectorAll(\"*\")).forEach(t), e;\n}, En = (e) => {\n const o = new XMLSerializer().serializeToString(e.documentElement).replace(\"<svg>\", `<svg xmlns=\"${Jt}\">`);\n return new DOMParser().parseFromString(o, \"image/svg+xml\").documentElement;\n}, An = (e) => {\n const n = new DOMParser().parseFromString(e, \"image/svg+xml\"), o = n.lookupPrefix(Jt), i = n.lookupNamespaceURI(null);\n return o || i ? yt(n).firstChild : yt(En(n)).firstChild;\n}, Tn = (e) => {\n const [t, n, o] = e.match(/(<polygon points=[\"|'])([^(\"|')]*)/) || [];\n if (!o)\n return;\n const i = o.split(\" \").map((s) => s.split(\",\").map(parseFloat));\n return {\n type: F.POLYGON,\n geometry: {\n points: i,\n bounds: Fe(i)\n }\n };\n}, Sn = (e) => {\n const t = An(e), n = parseFloat(t.getAttribute(\"cx\")), o = parseFloat(t.getAttribute(\"cy\")), i = parseFloat(t.getAttribute(\"rx\")), s = parseFloat(t.getAttribute(\"ry\")), r = {\n minX: n - i,\n minY: o - s,\n maxX: n + i,\n maxY: o + s\n };\n return {\n type: F.ELLIPSE,\n geometry: {\n cx: n,\n cy: o,\n rx: i,\n ry: s,\n bounds: r\n }\n };\n}, vn = (e) => {\n const t = typeof e == \"string\" ? e : e.value;\n if (t.includes(\"<polygon points=\"))\n return Tn(t);\n if (t.includes(\"<ellipse \"))\n return Sn(t);\n}, Mn = (e) => {\n let t;\n if (e.type === F.POLYGON) {\n const n = e.geometry, { points: o } = n;\n t = `<svg><polygon points=\"${o.map((i) => i.join(\",\")).join(\" \")}\" /></svg>`;\n } else if (e.type === F.ELLIPSE) {\n const n = e.geometry;\n t = `<svg><ellipse cx=\"${n.cx}\" cy=\"${n.cy}\" rx=\"${n.rx}\" ry=\"${n.ry}\" /></svg>`;\n }\n if (t)\n return { type: \"SvgSelector\", value: t };\n throw `Unsupported shape type: ${e.type}`;\n};\nlet Xe;\nconst On = new Uint8Array(16);\nfunction Ln() {\n if (!Xe && (Xe = typeof crypto < \"u\" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !Xe))\n throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");\n return Xe(On);\n}\nconst q = [];\nfor (let e = 0; e < 256; ++e)\n q.push((e + 256).toString(16).slice(1));\nfunction kn(e, t = 0) {\n return q[e[t + 0]] + q[e[t + 1]] + q[e[t + 2]] + q[e[t + 3]] + \"-\" + q[e[t + 4]] + q[e[t + 5]] + \"-\" + q[e[t + 6]] + q[e[t + 7]] + \"-\" + q[e[t + 8]] + q[e[t + 9]] + \"-\" + q[e[t + 10]] + q[e[t + 11]] + q[e[t + 12]] + q[e[t + 13]] + q[e[t + 14]] + q[e[t + 15]];\n}\nconst Bn = typeof crypto < \"u\" && crypto.randomUUID && crypto.randomUUID.bind(crypto), _t = {\n randomUUID: Bn\n};\nfunction ct(e, t, n) {\n if (_t.randomUUID && !t && !e)\n return _t.randomUUID();\n e = e || {};\n const o = e.random || (e.rng || Ln)();\n if (o[6] = o[6] & 15 | 64, o[8] = o[8] & 63 | 128, t) {\n n = n || 0;\n for (let i = 0; i < 16; ++i)\n t[n + i] = o[i];\n return t;\n }\n return kn(o);\n}\nvar wt = Object.prototype.hasOwnProperty;\nfunction he(e, t) {\n var n, o;\n if (e === t)\n return !0;\n if (e && t && (n = e.constructor) === t.constructor) {\n if (n === Date)\n return e.getTime() === t.getTime();\n if (n === RegExp)\n return e.toString() === t.toString();\n if (n === Array) {\n if ((o = e.length) === t.length)\n for (; o-- && he(e[o], t[o]); )\n ;\n return o === -1;\n }\n if (!n || typeof e == \"object\") {\n o = 0;\n for (n in e)\n if (wt.call(e, n) && ++o && !wt.call(t, n) || !(n in t) || !he(e[n], t[n]))\n return !1;\n return Object.keys(t).length === o;\n }\n }\n return e !== e && t !== t;\n}\nfunction Ze() {\n}\nfunction In(e, t) {\n return e != e ? t == t : e !== t || e && typeof e == \"object\" || typeof e == \"function\";\n}\nconst _e = [];\nfunction dt(e, t = Ze) {\n let n;\n const o = /* @__PURE__ */ new Set();\n function i(a) {\n if (In(e, a) && (e = a, n)) {\n const l = !_e.length;\n for (const d of o)\n d[1](), _e.push(d, e);\n if (l) {\n for (let d = 0; d < _e.length; d += 2)\n _e[d][0](_e[d + 1]);\n _e.length = 0;\n }\n }\n }\n function s(a) {\n i(a(e));\n }\n function r(a, l = Ze) {\n const d = [a, l];\n return o.add(d), o.size === 1 && (n = t(i) || Ze), a(e), () => {\n o.delete(d), o.size === 0 && n && (n(), n = null);\n };\n }\n return { set: i, update: s, subscribe: r };\n}\nconst Cn = (e) => {\n const { subscribe: t, set: n } = dt(null);\n let o = null;\n return t((i) => o = i), e.observe(({ changes: i }) => {\n if (o) {\n i.deleted.some((r) => r.id === o) && n(null);\n const s = i.updated.find(({ oldValue: r }) => r.id === o);\n s && n(s.newValue.id);\n }\n }), {\n get current() {\n return o;\n },\n subscribe: t,\n set: n\n };\n};\nvar Kt = /* @__PURE__ */ ((e) => (e.EDIT = \"EDIT\", e.SELECT = \"SELECT\", e.NONE = \"NONE\", e))(Kt || {});\nconst Qe = { selected: [] }, Pn = (e, t = \"EDIT\") => {\n const { subscribe: n, set: o } = dt(Qe);\n let i = Qe;\n n((c) => i = c);\n const s = () => o(Qe), r = () => {\n var c;\n return ((c = i.selected) == null ? void 0 : c.length) === 0;\n }, a = (c) => {\n if (i.selected.length === 0)\n return !1;\n const g = typeof c == \"string\" ? c : c.id;\n return i.selected.some((u) => u.id === g);\n }, l = (c, g) => {\n const u = e.getAnnotation(c);\n if (u) {\n const m = Rn(u, t);\n o(m === \"EDIT\" ? { selected: [{ id: c, editable: !0 }], pointerEvent: g } : m === \"SELECT\" ? { selected: [{ id: c }], pointerEvent: g } : { selected: [], pointerEvent: g });\n } else\n console.warn(\"Invalid selection: \" + c);\n }, d = (c, g = !0) => {\n const u = Array.isArray(c) ? c : [c], m = u.map((w) => e.getAnnotation(w)).filter((w) => w);\n o({ selected: m.map(({ id: w }) => ({ id: w, editable: g })) }), m.length !== u.length && console.warn(\"Invalid selection\", c);\n }, h = (c) => {\n if (i.selected.length === 0)\n return !1;\n const { selected: g } = i;\n g.filter(({ id: u }) => c.includes(u)).length > 0 && o({ selected: g.filter(({ id: u }) => !c.includes(u)) });\n };\n return e.observe(({ changes: c }) => h(c.deleted.map((g) => g.id))), {\n clear: s,\n clickSelect: l,\n get selected() {\n return i ? [...i.selected] : null;\n },\n get pointerEvent() {\n return i ? i.pointerEvent : null;\n },\n isEmpty: r,\n isSelected: a,\n setSelected: d,\n subscribe: n\n };\n}, Rn = (e, t) => typeof t == \"function\" ? t(e) || \"EDIT\" : t || \"EDIT\", Yn = [];\nfor (let e = 0; e < 256; ++e)\n Yn.push((e + 256).toString(16).slice(1));\ntypeof crypto < \"u\" && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nconst Un = (e, t) => {\n const n = new Set(e.bodies.map((o) => o.id));\n return t.bodies.filter((o) => !n.has(o.id));\n}, Dn = (e, t) => {\n const n = new Set(t.bodies.map((o) => o.id));\n return e.bodies.filter((o) => !n.has(o.id));\n}, Xn = (e, t) => t.bodies.map((n) => {\n const o = e.bodies.find((i) => i.id === n.id);\n return { newBody: n, oldBody: o && !he(o, n) ? o : void 0 };\n}).filter(({ oldBody: n }) => n), Nn = (e, t) => !he(e.target, t.target), Zt = (e, t) => {\n const n = Un(e, t), o = Dn(e, t), i = Xn(e, t);\n return {\n oldValue: e,\n newValue: t,\n bodiesCreated: n.length > 0 ? n : void 0,\n bodiesDeleted: o.length > 0 ? o : void 0,\n bodiesUpdated: i.length > 0 ? i : void 0,\n targetUpdated: Nn(e, t) ? { oldTarget: e.target, newTarget: t.target } : void 0\n };\n};\nvar G = /* @__PURE__ */ ((e) => (e.LOCAL = \"LOCAL\", e.REMOTE = \"REMOTE\", e))(G || {});\nconst Gn = (e, t) => {\n var n, o;\n const { changes: i, origin: s } = t;\n if (!(!e.options.origin || e.options.origin === s))\n return !1;\n if (e.options.ignore) {\n const { ignore: r } = e.options, a = (l) => (l == null ? void 0 : l.length) > 0;\n if (!(a(i.created) || a(i.deleted))) {\n const l = (n = i.updated) == null ? void 0 : n.some((h) => a(h.bodiesCreated) || a(h.bodiesDeleted) || a(h.bodiesUpdated)), d = (o = i.updated) == null ? void 0 : o.some((h) => h.targetUpdated);\n if (r === \"BODY_ONLY\" && l && !d || r === \"TARGET_ONLY\" && d && !l)\n return !1;\n }\n }\n if (e.options.annotations) {\n const r = /* @__PURE__ */ new Set([\n ...i.created.map((a) => a.id),\n ...i.deleted.map((a) => a.id),\n ...i.updated.map(({ oldValue: a }) => a.id)\n ]);\n return !!(Array.isArray(e.options.annotations) ? e.options.annotations : [e.options.annotations]).find((a) => r.has(a));\n } else\n return !0;\n}, Vn = (e, t) => {\n const n = new Set((e.created || []).map((c) => c.id)), o = new Set((e.updated || []).map(({ newValue: c }) => c.id)), i = new Set((t.created || []).map((c) => c.id)), s = new Set((t.deleted || []).map((c) => c.id)), r = new Set((t.updated || []).map(({ oldValue: c }) => c.id)), a = new Set((t.updated || []).filter(({ oldValue: c }) => n.has(c.id) || o.has(c.id)).map(({ oldValue: c }) => c.id)), l = [\n ...(e.created || []).filter((c) => !s.has(c.id)).map((c) => r.has(c.id) ? t.updated.find(({ oldValue: g }) => g.id === c.id).newValue : c),\n ...t.created || []\n ], d = [\n ...(e.deleted || []).filter((c) => !i.has(c.id)),\n ...(t.deleted || []).filter((c) => !n.has(c.id))\n ], h = [\n ...(e.updated || []).filter(({ newValue: c }) => !s.has(c.id)).map((c) => {\n const { oldValue: g, newValue: u } = c;\n if (r.has(u.id)) {\n const m = t.updated.find((w) => w.oldValue.id === u.id).newValue;\n return Zt(g, m);\n } else\n return c;\n }),\n ...(t.updated || []).filter(({ oldValue: c }) => !a.has(c.id))\n ];\n return { created: l, deleted: d, updated: h };\n}, zn = (e) => e.id !== void 0, Fn = () => {\n const e = /* @__PURE__ */ new Map(), t = /* @__PURE__ */ new Map(), n = [], o = (y, A = {}) => n.push({ onChange: y, options: A }), i = (y) => {\n const A = n.findIndex((E) => E.onChange == y);\n A > -1 && n.splice(A, 1);\n }, s = (y, A) => {\n const E = {\n origin: y,\n changes: {\n created: A.created || [],\n updated: A.updated || [],\n deleted: A.deleted || []\n },\n state: [...e.values()]\n };\n n.forEach((v) => {\n Gn(v, E) && v.onChange(E);\n });\n }, r = (y, A = G.LOCAL) => {\n if (e.get(y.id))\n throw Error(`Cannot add annotation ${y.id} - exists already`);\n e.set(y.id, y), y.bodies.forEach((E) => t.set(E.id, y.id)), s(A, { created: [y] });\n }, a = (y, A) => {\n const E = typeof y == \"string\" ? A : y, v = typeof y == \"string\" ? y : y.id, B = e.get(v);\n if (B) {\n const Y = Zt(B, E);\n return v === E.id ? e.set(v, E) : (e.delete(v), e.set(E.id, E)), B.bodies.forEach((Q) => t.delete(Q.id)), E.bodies.forEach((Q) => t.set(Q.id, E.id)), Y;\n } else\n console.warn(`Cannot update annotation ${v} - does not exist`);\n }, l = (y, A = G.LOCAL, E = G.LOCAL) => {\n const v = zn(A) ? E : A, B = a(y, A);\n B && s(v, { updated: [B] });\n }, d = (y, A = G.LOCAL) => {\n const E = y.reduce((v, B) => {\n const Y = a(B);\n return Y ? [...v, Y] : v;\n }, []);\n E.length > 0 && s(A, { updated: E });\n }, h = (y, A = G.LOCAL) => {\n const E = e.get(y.annotation);\n if (E) {\n const v = {\n ...E,\n bodies: [...E.bodies, y]\n };\n e.set(E.id, v), t.set(y.id, v.id), s(A, { updated: [{\n oldValue: E,\n newValue: v,\n bodiesCreated: [y]\n }] });\n } else\n console.warn(`Attempt to add body to missing annotation: ${y.annotation}`);\n }, c = () => [...e.values()], g = (y = G.LOCAL) => {\n const A = [...e.values()];\n e.clear(), t.clear(), s(y, { deleted: A });\n }, u = (y, A = !0, E = G.LOCAL) => {\n if (A) {\n const v = [...e.values()];\n e.clear(), t.clear(), y.forEach((B) => {\n e.set(B.id, B), B.bodies.forEach((Y) => t.set(Y.id, B.id));\n }), s(E, { created: y, deleted: v });\n } else {\n const v = y.reduce((B, Y) => {\n const Q = e.get(Y.id);\n return Q ? [...B, Q] : B;\n }, []);\n if (v.length > 0)\n throw Error(`Bulk insert would overwrite the following annotations: ${v.map((B) => B.id).join(\", \")}`);\n y.forEach((B) => {\n e.set(B.id, B), B.bodies.forEach((Y) => t.set(Y.id, B.id));\n }), s(E, { created: y });\n }\n }, m = (y) => {\n const A = typeof y == \"string\" ? y : y.id, E = e.get(A);\n if (E)\n return e.delete(A), E.bodies.forEach((v) => t.delete(v.id)), E;\n console.warn(`Attempt to delete missing annotation: ${A}`);\n }, w = (y, A = G.LOCAL) => {\n const E = m(y);\n E && s(A, { deleted: [E] });\n }, b = (y, A = G.LOCAL) => {\n const E = y.reduce((v, B) => {\n const Y = m(B);\n return Y ? [...v, Y] : v;\n }, []);\n E.length > 0 && s(A, { deleted: E });\n }, _ = (y, A = G.LOCAL) => {\n const E = e.get(y.annotation);\n if (E) {\n const v = E.bodies.find((B) => B.id === y.id);\n if (v) {\n t.delete(v.id);\n const B = {\n ...E,\n bodies: E.bodies.filter((Y) => Y.id !== y.id)\n };\n e.set(E.id, B), s(A, { updated: [{\n oldValue: E,\n newValue: B,\n bodiesDeleted: [v]\n }] });\n } else\n console.warn(`Attempt to delete missing body ${y.id} from annotation ${y.annotation}`);\n } else\n console.warn(`Attempt to delete body from missing annotation ${y.annotation}`);\n }, p = (y) => {\n const A = e.get(y);\n return A ? { ...A } : void 0;\n }, T = (y) => {\n const A = t.get(y);\n if (A) {\n const E = p(A).bodies.find((v) => v.id === y);\n if (E)\n return E;\n console.error(`Store integrity error: body ${y} in index, but not in annotation`);\n } else\n console.warn(`Attempt to retrieve missing body: ${y}`);\n }, S = (y, A) => {\n if (y.annotation !== A.annotation)\n throw \"Annotation integrity violation: annotation ID must be the same when updating bodies\";\n const E = e.get(y.annotation);\n if (E) {\n const v = E.bodies.find((Y) => Y.id === y.id), B = {\n ...E,\n bodies: E.bodies.map((Y) => Y.id === v.id ? A : Y)\n };\n return e.set(E.id, B), v.id !== A.id && (t.delete(v.id), t.set(A.id, B.id)), {\n oldValue: E,\n newValue: B,\n bodiesUpdated: [{ oldBody: v, newBody: A }]\n };\n } else\n console.warn(`Attempt to add body to missing annotation ${y.annotation}`);\n }, I = (y, A, E = G.LOCAL) => {\n const v = S(y, A);\n s(E, { updated: [v] });\n }, R = (y, A = G.LOCAL) => {\n const E = y.map((v) => S({ id: v.id, annotation: v.annotation }, v));\n s(A, { updated: E });\n }, N = (y) => {\n const A = e.get(y.annotation);\n if (A) {\n const E = {\n ...A,\n target: {\n ...A.target,\n ...y\n }\n };\n return e.set(A.id, E), {\n oldValue: A,\n newValue: E,\n targetUpdated: {\n oldTarget: A.target,\n newTarget: y\n }\n };\n } else\n console.warn(`Attempt to update target on missing annotation: ${y.annotation}`);\n };\n return {\n addAnnotation: r,\n addBody: h,\n all: c,\n bulkAddAnnotation: u,\n bulkDeleteAnnotation: b,\n bulkUpdateAnnotation: d,\n bulkUpdateBodies: R,\n bulkUpdateTargets: (y, A = G.LOCAL) => {\n const E = y.map(N).filter((v) => v);\n E.length > 0 && s(A, { updated: E });\n },\n clear: g,\n deleteAnnotation: w,\n deleteBody: _,\n getAnnotation: p,\n getBody: T,\n observe: o,\n unobserve: i,\n updateAnnotation: l,\n updateBody: I,\n updateTarget: (y, A = G.LOCAL) => {\n const E = N(y);\n E && s(A, { updated: [E] });\n }\n };\n}, Hn = (e) => ({\n ...e,\n subscribe: (t) => {\n const n = (o) => t(o.state);\n return e.observe(n), t(e.all()), () => e.unobserve(n);\n }\n});\nlet jn = () => ({\n emit(e, ...t) {\n let n = this.events[e] || [];\n for (let o = 0, i = n.length; o < i; o++)\n n[o](...t);\n },\n events: {},\n on(e, t) {\n var n;\n return (n = this.events[e]) != null && n.push(t) || (this.events[e] = [t]), () => {\n var o;\n this.events[e] = (o = this.events[e]) == null ? void 0 : o.filter((i) => t !== i);\n };\n }\n});\nconst qn = 250, Wn = (e) => {\n const t = jn(), n = [];\n let o = -1, i = !1, s = 0;\n const r = (u) => {\n if (!i) {\n const { changes: m } = u, w = performance.now();\n if (w - s > qn)\n n.splice(o + 1), n.push(m), o = n.length - 1;\n else {\n const b = n.length - 1;\n n[b] = Vn(n[b], m);\n }\n s = w;\n }\n i = !1;\n };\n e.observe(r, { origin: G.LOCAL });\n const a = (u) => (u == null ? void 0 : u.length) > 0 && e.bulkDeleteAnnotation(u), l = (u) => (u == null ? void 0 : u.length) > 0 && e.bulkAddAnnotation(u, !1), d = (u) => (u == null ? void 0 : u.length) > 0 && e.bulkUpdateAnnotation(u.map(({ oldValue: m }) => m)), h = (u) => (u == null ? void 0 : u.length) > 0 && e.bulkUpdateAnnotation(u.map(({ newValue: m }) => m)), c = (u) => (u == null ? void 0 : u.length) > 0 && e.bulkAddAnnotation(u, !1), g = (u) => (u == null ? void 0 : u.length) > 0 && e.bulkDeleteAnnotation(u);\n return {\n canRedo: () => n.length - 1 > o,\n canUndo: () => o > -1,\n destroy: () => e.unobserve(r),\n on: (u, m) => t.on(u, m),\n redo: () => {\n if (n.length - 1 > o) {\n i = !0;\n const { created: u, updated: m, deleted: w } = n[o + 1];\n l(u), h(m), g(w), t.emit(\"redo\", n[o + 1]), o += 1;\n }\n },\n undo: () => {\n if (o > -1) {\n i = !0;\n const { created: u, updated: m, deleted: w } = n[o];\n a(u), d(m), c(w), t.emit(\"undo\", n[o]), o -= 1;\n }\n }\n };\n}, Jn = () => {\n const { subscribe: e, set: t } = dt([]);\n return {\n subscribe: e,\n set: t\n };\n}, Kn = (e, t, n, o) => {\n const { store: i, selection: s, hover: r, viewport: a } = e, l = /* @__PURE__ */ new Map();\n let d = [], h, c;\n const g = (_, p) => {\n l.has(_) ? l.get(_).push(p) : l.set(_, [p]);\n }, u = (_, p) => {\n const T = l.get(_);\n T && T.indexOf(p) > 0 && T.splice(T.indexOf(p), 1);\n }, m = (_, p, T) => {\n l.has(_) && setTimeout(() => {\n l.get(_).forEach((S) => {\n if (n) {\n const I = Array.isArray(p) ? p.map((N) => n.serialize(N)) : n.serialize(p), R = T ? T instanceof PointerEvent ? T : n.serialize(T) : void 0;\n S(I, R);\n } else\n S(p, T);\n });\n }, 1);\n }, w = () => {\n const { selected: _ } = s, p = _.map(({ id: T }) => i.getAnnotation(T));\n p.forEach((T) => {\n const S = d.find((I) => I.id === T.id);\n (!S || !he(S, T)) && m(\"updateAnnotation\", T, S);\n }), d = d.map((T) => p.find(({ id: I }) => I === T.id) || T);\n };\n s.subscribe(({ selected: _ }) => {\n if (!(d.length === 0 && _.length === 0)) {\n if (d.length === 0 && _.length > 0)\n d = _.map(({ id: p }) => i.getAnnotation(p));\n else if (d.length > 0 && _.length === 0)\n d.forEach((p) => {\n const T = i.getAnnotation(p.id);\n T && !he(T, p) && m(\"updateAnnotation\", T, p);\n }), d = [];\n else {\n const p = new Set(d.map((S) => S.id)), T = new Set(_.map(({ id: S }) => S));\n d.filter((S) => !T.has(S.id)).forEach((S) => {\n const I = i.getAnnotation(S.id);\n I && !he(I, S) && m(\"updateAnnotation\", I, S);\n }), d = [\n // Remove annotations that were deselected\n ...d.filter((S) => T.has(S.id)),\n // Add editable annotations that were selected\n ..._.filter(({ id: S }) => !p.has(S)).map(({ id: S }) => i.getAnnotation(S))\n ];\n }\n m(\"selectionChanged\", d);\n }\n }), r.subscribe((_) => {\n !h && _ ? m(\"mouseEnterAnnotation\", i.getAnnotation(_)) : h && !_ ? m(\"mouseLeaveAnnotation\", i.getAnnotation(h)) : h && _ && (m(\"mouseLeaveAnnotation\", i.getAnnotation(h)), m(\"mouseEnterAnnotation\", i.getAnnotation(_))), h = _;\n }), a == null || a.subscribe((_) => m(\"viewportIntersect\", _.map(i.getAnnotation))), i.observe((_) => {\n o && (c && clearTimeout(c), c = setTimeout(w, 1e3));\n const { created: p, deleted: T } = _.changes;\n p.forEach((S) => m(\"createAnnotation\", S)), T.forEach((S) => m(\"deleteAnnotation\", S)), _.changes.updated.filter((S) => [\n ...S.bodiesCreated || [],\n ...S.bodiesDeleted || [],\n ...S.bodiesUpdated || []\n ].length > 0).forEach(({ oldValue: S, newValue: I }) => {\n const R = d.find((N) => N.id === S.id) || S;\n d = d.map((N) => N.id === S.id ? I : N), m(\"updateAnnotation\", I, R);\n });\n }, { origin: G.LOCAL }), i.observe((_) => {\n if (d) {\n const p = new Set(d.map((S) => S.id)), T = _.changes.updated.filter(({ newValue: S }) => p.has(S.id)).map(({ newValue: S }) => S);\n T.length > 0 && (d = d.map((S) => T.find((R) => R.id === S.id) || S));\n }\n }, { origin: G.REMOTE });\n const b = (_) => (p) => {\n const { created: T, deleted: S, updated: I } = p;\n T.forEach((R) => m(\"createAnnotation\", R)), S.forEach((R) => m(\"deleteAnnotation\", R)), _ ? I.forEach((R) => m(\"updateAnnotation\", R.oldValue, R.newValue)) : I.forEach((R) => m(\"updateAnnotation\", R.newValue, R.oldValue));\n };\n return t.on(\"undo\", b(!0)), t.on(\"redo\", b(!1)), { on: g, off: u, emit: m };\n}, Zn = (e) => (t) => t.reduce((n, o) => {\n const { parsed: i, error: s } = e.parse(o);\n return s ? {\n parsed: n.parsed,\n failed: [...n.failed, o]\n } : {\n parsed: [...n.parsed, i],\n failed: n.failed\n };\n}, { parsed: [], failed: [] }), Qn = (e, t, n) => {\n const { store: o, selection: i } = e, s = (b) => {\n if (n) {\n const { parsed: _, error: p } = n.parse(b);\n _ ? o.addAnnotation(_, G.REMOTE) : console.error(p);\n } else\n o.addAnnotation(b, G.REMOTE);\n }, r = () => i.clear(), a = () => o.clear(), l = (b) => {\n const _ = o.getAnnotation(b);\n return n && _ ? n.serialize(_) : _;\n }, d = () => n ? o.all().map(n.serialize) : o.all(), h = () => {\n var b;\n const _ = (((b = i.selected) == null ? void 0 : b.map((p) => p.id)) || []).map((p) => o.getAnnotation(p));\n return n ? _.map(n.serialize) : _;\n }, c = (b) => fetch(b).then((_) => _.json()).then((_) => (u(_), _)), g = (b) => {\n if (typeof b == \"string\") {\n const _ = o.getAnnotation(b);\n return o.deleteAnnotation(b), n ? n.serialize(_) : _;\n } else {\n const _ = n ? n.parse(b).parsed : b;\n return o.deleteAnnotation(_), b;\n }\n }, u = (b) => {\n if (n) {\n const { parsed: _, failed: p } = Zn(n)(b);\n p.length > 0 && console.warn(`Discarded ${p.length} invalid annotations`, p), o.bulkAddAnnotation(_, !0, G.REMOTE);\n } else\n o.bulkAddAnnotation(b, !0, G.REMOTE);\n }, m = (b) => {\n b ? i.setSelected(b) : i.clear();\n }, w = (b) => {\n if (n) {\n const _ = n.parse(b).parsed, p = n.serialize(o.getAnnotation(_.id));\n return o.updateAnnotation(_), p;\n } else {\n const _ = o.getAnnotation(b.id);\n return o.updateAnnotation(b), _;\n }\n };\n return {\n addAnnotation: s,\n cancelSelected: r,\n canRedo: t.canRedo,\n canUndo: t.canUndo,\n clearAnnotations: a,\n getAnnotationById: l,\n getAnnotations: d,\n getSelected: h,\n loadAnnotations: c,\n redo: t.redo,\n removeAnnotation: g,\n setAnnotations: u,\n setSelected: m,\n undo: t.undo,\n updateAnnotation: w\n };\n};\nlet xn = (e) => crypto.getRandomValues(new Uint8Array(e)), $n = (e, t, n) => {\n let o = (2 << Math.log(e.length - 1) / Math.LN2) - 1, i = -~(1.6 * o * t / e.length);\n return (s = t) => {\n let r = \"\";\n for (; ; ) {\n let a = n(i), l = i;\n for (; l--; )\n if (r += e[a[l] & o] || \"\", r.length === s)\n return r;\n }\n };\n}, eo = (e, t = 21) => $n(e, t, xn), to = (e = 21) => crypto.getRandomValues(new Uint8Array(e)).reduce((t, n) => (n &= 63, n < 36 ? t += n.toString(36) : n < 62 ? t += (n - 26).toString(36).toUpperCase() : n > 62 ? t += \"-\" : t += \"_\", t), \"\");\nconst no = () => ({ isGuest: !0, id: eo(\"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_\", 20)() }), oo = (e) => {\n const t = JSON.stringify(e);\n let n = 0;\n for (let o = 0, i = t.length; o < i; o++) {\n let s = t.charCodeAt(o);\n n = (n << 5) - n + s, n |= 0;\n }\n return `${n}`;\n}, io = (e, t) => (Array.isArray(e) ? e : [e]).map((n) => {\n const { id: o, type: i, purpose: s, value: r, created: a, creator: l, ...d } = n;\n return {\n id: o || `temp-${oo(n)}`,\n annotation: t,\n type: i,\n purpose: s,\n value: r,\n created: a,\n creator: l ? typeof l == \"object\" ? { ...l } : l : void 0,\n ...d\n };\n}), so = (e) => e.map((t) => {\n var n;\n const o = { ...t };\n return delete o.annotation, (n = o.id) != null && n.startsWith(\"temp-\") && delete o.id, o;\n});\nto();\nconst Di = (e, t = !1) => ({ parse: (i) => ro(i, t), serialize: (i) => lo(i, e) }), ro = (e, t = !1) => {\n const n = e.id || ct(), { body: o, ...i } = e, s = io(o, n), r = Array.isArray(e.target) ? e.target[0] : e.target, a = Array.isArray(r.selector) ? r.selector[0] : r.selector, l = a.type === \"FragmentSelector\" ? wn(a, t) : a.type === \"SvgSelector\" ? vn(a) : void 0;\n return l ? {\n parsed: {\n ...i,\n id: n,\n bodies: s,\n target: {\n ...i.target,\n annotation: n,\n selector: l\n }\n }\n } : {\n error: Error(`Unknown selector type: ${a.type}`)\n };\n}, lo = (e, t) => {\n const n = e.target.selector, o = n.type == F.RECTANGLE ? bn(n.geometry) : Mn(n);\n return {\n ...e,\n \"@context\": \"http://www.w3.org/ns/anno.jsonld\",\n id: e.id,\n type: \"Annotation\",\n body: so(e.bodies),\n target: {\n source: t,\n selector: o\n }\n };\n};\nfunction bt(e, t, n) {\n const o = e.slice();\n return o[11] = t[n], o[13] = n, o;\n}\nfunction Et(e) {\n let t, n, o, i, s;\n return {\n c() {\n t = U(\"rect\"), f(t, \"class\", \"a9s-corner-handle\"), f(t, \"x\", n = /*point*/\n e[11][0] - /*handleSize*/\n e[3] / 2), f(t, \"y\", o = /*point*/\n e[11][1] - /*handleSize*/\n e[3] / 2), f(\n t,\n \"height\",\n /*handleSize*/\n e[3]\n ), f(\n t,\n \"width\",\n /*handleSize*/\n e[3]\n );\n },\n m(r, a) {\n k(r, t, a), i || (s = W(t, \"pointerdown\", function() {\n H(\n /*grab*/\n e[10](O(\n /*idx*/\n e[13]\n ))\n ) && e[10](O(\n /*idx*/\n e[13]\n )).apply(this, arguments);\n }), i = !0);\n },\n p(r, a) {\n e = r, a & /*geom, handleSize*/\n 24 && n !== (n = /*point*/\n e[11][0] - /*handleSize*/\n e[3] / 2) && f(t, \"x\", n), a & /*geom, handleSize*/\n 24 && o !== (o = /*point*/\n e[11][1] - /*handleSize*/\n e[3] / 2) && f(t, \"y\", o), a & /*handleSize*/\n 8 && f(\n t,\n \"height\",\n /*handleSize*/\n e[3]\n ), a & /*handleSize*/\n 8 && f(\n t,\n \"width\",\n /*handleSize*/\n e[3]\n );\n },\n d(r) {\n r && L(t), i = !1, s();\n }\n };\n}\nfunction ao(e) {\n let t, n, o, i, s, r, a, l, d, h, c = (\n /*geom*/\n e[4].points\n ), g = [];\n for (let u = 0; u < c.length; u += 1)\n g[u] = Et(bt(e, c, u));\n return {\n c() {\n t = U(\"polygon\"), i = ee(), s = U(\"polygon\"), a = ee();\n for (let u = 0; u < g.length; u += 1)\n g[u].c();\n l = le(), f(t, \"class\", \"a9s-outer\"), f(t, \"style\", n = /*computedStyle*/\n e[1] ? \"display:none;\" : void 0), f(t, \"points\", o = /*geom*/\n e[4].points.map(At).join(\" \")), f(s, \"class\", \"a9s-inner a9s-shape-handle\"), f(\n s,\n \"style\",\n /*computedStyle*/\n e[1]\n ), f(s, \"points\", r = /*geom*/\n e[4].points.map(Tt).join(\" \"));\n },\n m(u, m) {\n k(u, t, m), k(u, i, m), k(u, s, m), k(u, a, m);\n for (let w = 0; w < g.length; w += 1)\n g[w] && g[w].m(u, m);\n k(u, l, m), d || (h = [\n W(t, \"pointerdown\", function() {\n H(\n /*grab*/\n e[10](O.SHAPE)\n ) && e[10](O.SHAPE).apply(this, arguments);\n }),\n W(s, \"pointerdown\", function() {\n H(\n /*grab*/\n e[10](O.SHAPE)\n ) && e[10](O.SHAPE).apply(this, arguments);\n })\n ], d = !0);\n },\n p(u, m) {\n if (e = u, m & /*computedStyle*/\n 2 && n !== (n = /*computedStyle*/\n e[1] ? \"display:none;\" : void 0) && f(t, \"style\", n), m & /*geom*/\n 16 && o !== (o = /*geom*/\n e[4].points.map(At).join(\" \")) && f(t, \"points\", o), m & /*computedStyle*/\n 2 && f(\n s,\n \"style\",\n /*computedStyle*/\n e[1]\n ), m & /*geom*/\n 16 && r !== (r = /*geom*/\n e[4].points.map(Tt).join(\" \")) && f(s, \"points\", r), m & /*geom, handleSize, grab, Handle*/\n 1048) {\n c = /*geom*/\n e[4].points;\n let w;\n for (w = 0; w < c.length; w += 1) {\n const b = bt(e, c, w);\n g[w] ? g[w].p(b, m) : (g[w] = Et(b), g[w].c(), g[w].m(l.parentNode, l));\n }\n for (; w < g.length; w += 1)\n g[w].d(1);\n g.length = c.length;\n }\n },\n d(u) {\n u && L(t), u && L(i), u && L(s), u && L(a), rt(g, u), u && L(l), d = !1, re(h);\n }\n };\n}\nfunction co(e) {\n let t, n;\n return t = new xt({\n props: {\n shape: (\n /*shape*/\n e[0]\n ),\n transform: (\n /*transform*/\n e[2]\n ),\n editor: (\n /*editor*/\n e[5]\n ),\n $$slots: {\n default: [\n ao,\n ({ grab: o }) => ({ 10: o }),\n ({ grab: o }) => o ? 1024 : 0\n ]\n },\n $$scope: { ctx: e }\n }\n }), t.$on(\n \"change\",\n /*change_handler*/\n e[7]\n ), t.$on(\n \"grab\",\n /*grab_handler*/\n e[8]\n ), t.$on(\n \"release\",\n /*release_handler*/\n e[9]\n ), {\n c() {\n ge(t.$$.fragment);\n },\n m(o, i) {\n ce(t, o, i), n = !0;\n },\n p(o, [i]) {\n const s = {};\n i & /*shape*/\n 1 && (s.shape = /*shape*/\n o[0]), i & /*transform*/\n 4 && (s.transform = /*transform*/\n o[2]), i & /*$$scope, geom, handleSize, grab, computedStyle*/\n 17434 && (s.$$scope = { dirty: i, ctx: o }), t.$set(s);\n },\n i(o) {\n n || (D(t.$$.fragment, o), n = !0);\n },\n o(o) {\n X(t.$$.fragment, o), n = !1;\n },\n d(o) {\n de(t, o);\n }\n };\n}\nconst At = (e) => e.join(\",\"), Tt = (e) => e.join(\",\");\nfunction uo(e, t, n) {\n let o, i, { shape: s } = t, { computedStyle: r = void 0 } = t, { transform: a } = t, { viewportScale: l = 1 } = t;\n const d = (u, m, w) => {\n let b;\n m === O.SHAPE ? b = u.geometry.points.map(([p, T]) => [p + w[0], T + w[1]]) : b = u.geometry.points.map(([p, T], S) => m === O(S) ? [p + w[0], T + w[1]] : [p, T]);\n const _ = Fe(b);\n return { ...u, geometry: { points: b, bounds: _ } };\n };\n function h(u) {\n Te.call(this, e, u);\n }\n function c(u) {\n Te.call(this, e, u);\n }\n function g(u) {\n Te.call(this, e, u);\n }\n return e.$$set = (u) => {\n \"shape\" in u && n(0, s = u.shape), \"computedStyle\" in u && n(1, r = u.computedStyle), \"transform\" in u && n(2, a = u.transform), \"viewportScale\" in u && n(6, l = u.viewportScale);\n }, e.$$.update = () => {\n e.$$.dirty & /*shape*/\n 1 && n(4, o = s.geometry), e.$$.dirty & /*viewportScale*/\n 64 && n(3, i = 10 / l);\n }, [\n s,\n r,\n a,\n i,\n o,\n d,\n l,\n h,\n c,\n g\n ];\n}\nclass fo extends ne {\n constructor(t) {\n super(), te(this, t, uo, co, Z, {\n shape: 0,\n computedStyle: 1,\n transform: 2,\n viewportScale: 6\n });\n }\n}\nfunction ho(e) {\n let t, n, o, i, s, r, a, l, d, h, c, g, u, m, w, b, _, p, T, S, I, R, N, y, A, E, v, B, Y, Q, me, pe, Me, K, C, J, z, j, oe, ue, qe, x, Re, Ye, We, $, Ue, De, Je, ft;\n return {\n c() {\n t = U(\"rect\"), a = ee(), l = U(\"rect\"), u = ee(), m = U(\"rect\"), p = ee(), T = U(\"rect\"), N = ee(), y = U(\"rect\"), B = ee(), Y = U(\"rect\"), Me = ee(), K = U(\"rect\"), z = ee(), j = U(\"rect\"), qe = ee(), x = U(\"rect\"), We = ee(), $ = U(\"rect\"), f(t, \"class\", \"a9s-outer\"), f(t, \"style\", n = /*computedStyle*/\n e[1] ? \"display:none;\" : void 0), f(t, \"x\", o = /*geom*/\n e[4].x), f(t, \"y\", i = /*geom*/\n e[4].y), f(t, \"width\", s = /*geom*/\n e[4].w), f(t, \"height\", r = /*geom*/\n e[4].h), f(l, \"class\", \"a9s-inner a9s-shape-handle\"), f(\n l,\n \"style\",\n /*computedStyle*/\n e[1]\n ), f(l, \"x\", d = /*geom*/\n e[4].x), f(l, \"y\", h = /*geom*/\n e[4].y), f(l, \"width\", c = /*geom*/\n e[4].w), f(l, \"height\", g = /*geom*/\n e[4].h), f(m, \"class\", \"a9s-edge-handle a9s-edge-handle-top\"), f(m, \"x\", w = /*geom*/\n e[4].x), f(m, \"y\", b = /*geom*/\n e[4].y), f(m, \"height\", 1), f(m, \"width\", _ = /*geom*/\n e[4].w), f(T, \"class\", \"a9s-edge-handle a9s-edge-handle-right\"), f(T, \"x\", S = /*geom*/\n e[4].x + /*geom*/\n e[4].w), f(T, \"y\", I = /*geom*/\n e[4].y), f(T, \"height\", R = /*geom*/\n e[4].h), f(T, \"width\", 1), f(y, \"class\", \"a9s-edge-handle a9s-edge-handle-bottom\"), f(y, \"x\", A = /*geom*/\n e[4].x), f(y, \"y\", E = /*geom*/\n e[4].y + /*geom*/\n e[4].h), f(y, \"height\", 1), f(y, \"width\", v = /*geom*/\n e[4].w), f(Y, \"class\", \"a9s-edge-handle a9s-edge-handle-left\"), f(Y, \"x\", Q = /*geom*/\n e[4].x), f(Y, \"y\", me = /*geom*/\n e[4].y), f(Y, \"height\", pe = /*geom*/\n e[4].h), f(Y, \"width\", 1), f(K, \"class\", \"a9s-corner-handle a9s-corner-handle-topleft\"), f(K, \"x\", C = /*geom*/\n e[4].x - /*handleSize*/\n e[3] / 2), f(K, \"y\", J = /*geom*/\n e[4].y - /*handleSize*/\n e[3] / 2), f(\n K,\n \"height\",\n /*handleSize*/\n e[3]\n ), f(\n K,\n \"width\",\n /*handleSize*/\n e[3]\n ), f(j, \"class\", \"a9s-corner-handle a9s-corner-handle-topright\"), f(j, \"x\", oe = /*geom*/\n e[4].x + /*geom*/\n e[4].w - /*handleSize*/\n e[3] / 2), f(j, \"y\", ue = /*geom*/\n e[4].y - /*handleSize*/\n e[3] / 2), f(\n j,\n \"height\",\n /*handleSize*/\n e[3]\n ), f(\n j,\n \"width\",\n /*handleSize*/\n e[3]\n ), f(x, \"class\", \"a9s-corner-handle a9s-corner-handle-bottomright\"), f(x, \"x\", Re = /*geom*/\n e[4].x + /*geom*/\n e[4].w - /*handleSize*/\n e[3] / 2), f(x, \"y\", Ye = /*geom*/\n e[4].y + /*geom*/\n e[4].h - /*handleSize*/\n e[3] / 2), f(\n x,\n \"height\",\n /*handleSize*/\n e[3]\n ), f(\n x,\n \"width\",\n /*handleSize*/\n e[3]\n ), f($, \"class\", \"a9s-corner-handle a9s-corner-handle-bottomleft\"), f($, \"x\", Ue = /*geom*/\n e[4].x - /*handleSize*/\n e[3] / 2), f($, \"y\", De = /*geom*/\n e[4].y + /*geom*/\n e[4].h - /*handleSize*/\n e[3] / 2), f(\n $,\n \"height\",\n /*handleSize*/\n e[3]\n ), f(\n $,\n \"width\",\n /*handleSize*/\n e[3]\n );\n },\n m(P, M) {\n k(P, t, M), k(P, a, M), k(P, l, M), k(P, u, M), k(P, m, M), k(P, p, M), k(P, T, M), k(P, N, M), k(P, y, M), k(P, B, M), k(P, Y, M), k(P, Me, M), k(P, K, M), k(P, z, M), k(P, j, M), k(P, qe, M), k(P, x, M), k(P, We, M), k(P, $, M), Je || (ft = [\n W(t, \"pointerdown\", function() {\n H(\n /*grab*/\n e[10](O.SHAPE)\n ) && e[10](O.SHAPE).apply(this, arguments);\n }),\n W(l, \"pointerdown\", function() {\n H(\n /*grab*/\n e[10](O.SHAPE)\n ) && e[10](O.SHAPE).apply(this, arguments);\n }),\n W(m, \"pointerdown\", function() {\n H(\n /*grab*/\n e[10](O.TOP)\n ) && e[10](O.TOP).apply(this, arguments);\n }),\n W(T, \"pointerdown\", function() {\n H(\n /*grab*/\n e[10](O.RIGHT)\n ) && e[10](O.RIGHT).apply(this, arguments);\n }),\n W(y, \"pointerdown\", function() {\n H(\n /*grab*/\n e[10](O.BOTTOM)\n ) && e[10](O.BOTTOM).apply(this, arguments);\n }),\n W(Y, \"pointerdown\", function() {\n H(\n /*grab*/\n e[10](O.LEFT)\n ) && e[10](O.LEFT).apply(this, arguments);\n }),\n W(K, \"pointerdown\", function() {\n H(\n /*grab*/\n e[10](O.TOP_LEFT)\n ) && e[10](O.TOP_LEFT).apply(this, arguments);\n }),\n W(j, \"pointerdown\", function() {\n H(\n /*grab*/\n e[10](O.TOP_RIGHT)\n ) && e[10](O.TOP_RIGHT).apply(this, arguments);\n }),\n W(x, \"pointerdown\", function() {\n H(\n /*grab*/\n e[10](O.BOTTOM_RIGHT)\n ) && e[10](O.BOTTOM_RIGHT).apply(this, arguments);\n }),\n W($, \"pointerdown\", function() {\n H(\n /*grab*/\n e[10](O.BOTTOM_LEFT)\n ) && e[10](O.BOTTOM_LEFT).apply(this, arguments);\n })\n ], Je = !0);\n },\n p(P, M) {\n e = P, M & /*computedStyle*/\n 2 && n !== (n = /*computedStyle*/\n e[1] ? \"display:none;\" : void 0) && f(t, \"style\", n), M & /*geom*/\n 16 && o !== (o = /*geom*/\n e[4].x) && f(t, \"x\", o), M & /*geom*/\n 16 && i !== (i = /*geom*/\n e[4].y) && f(t, \"y\", i), M & /*geom*/\n 16 && s !== (s = /*geom*/\n e[4].w) && f(t, \"width\", s), M & /*geom*/\n 16 && r !== (r = /*geom*/\n e[4].h) && f(t, \"height\", r), M & /*computedStyle*/\n 2 && f(\n l,\n \"style\",\n /*computedStyle*/\n e[1]\n ), M & /*geom*/\n 16 && d !== (d = /*geom*/\n e[4].x) && f(l, \"x\", d), M & /*geom*/\n 16 && h !== (h = /*geom*/\n e[4].y) && f(l, \"y\", h), M & /*geom*/\n 16 && c !== (c = /*geom*/\n e[4].w) && f(l, \"width\", c), M & /*geom*/\n 16 && g !== (g = /*geom*/\n e[4].h) && f(l, \"height\", g), M & /*geom*/\n 16 && w !== (w = /*geom*/\n e[4].x) && f(m, \"x\", w), M & /*geom*/\n 16 && b !== (b = /*geom*/\n e[4].y) && f(m, \"y\", b), M & /*geom*/\n 16 && _ !== (_ = /*geom*/\n e[4].w) && f(m, \"width\", _), M & /*geom*/\n 16 && S !== (S = /*geom*/\n e[4].x + /*geom*/\n e[4].w) && f(T, \"x\", S), M & /*geom*/\n 16 && I !== (I = /*geom*/\n e[4].y) && f(T, \"y\", I), M & /*geom*/\n 16 && R !== (R = /*geom*/\n e[4].h) && f(T, \"height\", R), M & /*geom*/\n 16 && A !== (A = /*geom*/\n e[4].x) && f(y, \"x\", A), M & /*geom*/\n 16 && E !== (E = /*geom*/\n e[4].y + /*geom*/\n e[4].h) && f(y, \"y\", E), M & /*geom*/\n 16 && v !== (v = /*geom*/\n e[4].w) && f(y, \"width\", v), M & /*geom*/\n 16 && Q !== (Q = /*geom*/\n e[4].x) && f(Y, \"x\", Q), M & /*geom*/\n 16 && me !== (me = /*geom*/\n e[4].y) && f(Y, \"y\", me), M & /*geom*/\n 16 && pe !== (pe = /*geom*/\n e[4].h) && f(Y, \"height\", pe), M & /*geom, handleSize*/\n 24 && C !== (C = /*geom*/\n e[4].x - /*handleSize*/\n e[3] / 2) && f(K, \"x\", C), M & /*geom, handleSize*/\n 24 && J !== (J = /*geom*/\n e[4].y - /*handleSize*/\n e[3] / 2) && f(K, \"y\", J), M & /*handleSize*/\n 8 && f(\n K,\n \"height\",\n /*handleSize*/\n e[3]\n ), M & /*handleSize*/\n 8 && f(\n K,\n \"width\",\n /*handleSize*/\n e[3]\n ), M & /*geom, handleSize*/\n 24 && oe !== (oe = /*geom*/\n e[4].x + /*geom*/\n e[4].w - /*handleSize*/\n e[3] / 2) && f(j, \"x\", oe), M & /*geom, handleSize*/\n 24 && ue !== (ue = /*geom*/\n e[4].y - /*handleSize*/\n e[3] / 2) && f(j, \"y\", ue), M & /*handleSize*/\n 8 && f(\n j,\n \"height\",\n /*handleSize*/\n e[3]\n ), M & /*handleSize*/\n 8 && f(\n j,\n \"width\",\n /*handleSize*/\n e[3]\n ), M & /*geom, handleSize*/\n 24 && Re !== (Re = /*geom*/\n e[4].x + /*geom*/\n e[4].w - /*handleSize*/\n e[3] / 2) && f(x, \"x\", Re), M & /*geom, handleSize*/\n 24 && Ye !== (Ye = /*geom*/\n e[4].y + /*geom*/\n e[4].h - /*handleSize*/\n e[3] / 2) && f(x, \"y\", Ye), M & /*handleSize*/\n 8 && f(\n x,\n \"height\",\n /*handleSize*/\n e[3]\n ), M & /*handleSize*/\n 8 && f(\n x,\n \"width\",\n /*handleSize*/\n e[3]\n ), M & /*geom, handleSize*/\n 24 && Ue !== (Ue = /*geom*/\n e[4].x - /*handleSize*/\n e[3] / 2) && f($, \"x\", Ue), M & /*geom, handleSize*/\n 24 && De !== (De = /*geom*/\n e[4].y + /*geom*/\n e[4].h - /*handleSize*/\n e[3] / 2) && f($, \"y\", De), M & /*handleSize*/\n 8 && f(\n $,\n \"height\",\n /*handleSize*/\n e[3]\n ), M & /*handleSize*/\n 8 && f(\n $,\n \"width\",\n /*handleSize*/\n e[3]\n );\n },\n d(P) {\n P && L(t), P && L(a), P && L(l), P && L(u), P && L(m), P && L(p), P && L(T), P && L(N), P && L(y), P && L(B), P && L(Y), P && L(Me), P && L(K), P && L(z), P && L(j), P && L(qe), P && L(x), P && L(We), P && L($), Je = !1, re(ft);\n }\n };\n}\nfunction go(e) {\n let t, n;\n return t = new xt({\n props: {\n shape: (\n /*shape*/\n e[0]\n ),\n transform: (\n /*transform*/\n e[2]\n ),\n editor: (\n /*editor*/\n e[5]\n ),\n $$slots: {\n default: [\n ho,\n ({ grab: o }) => ({ 10: o }),\n ({ grab: o }) => o ? 1024 : 0\n ]\n },\n $$scope: { ctx: e }\n }\n }), t.$on(\n \"grab\",\n /*grab_handler*/\n e[7]\n ), t.$on(\n \"change\",\n /*change_handler*/\n e[8]\n ), t.$on(\n \"release\",\n /*release_handler*/\n e[9]\n ), {\n c() {\n ge(t.$$.fragment);\n },\n m(o, i) {\n ce(t, o, i), n = !0;\n },\n p(o, [i]) {\n const s = {};\n i & /*shape*/\n 1 && (s.shape = /*shape*/\n o[0]), i & /*transform*/\n 4 && (s.transform = /*transform*/\n o[2]), i & /*$$scope, geom, handleSize, grab, computedStyle*/\n 3098 && (s.$$scope = { dirty: i, ctx: o }), t.$set(s);\n },\n i(o) {\n n || (D(t.$$.fragment, o), n = !0);\n },\n o(o) {\n X(t.$$.fragment, o), n = !1;\n },\n d(o) {\n de(t, o);\n }\n };\n}\nfunction mo(e, t, n) {\n let o, i, { shape: s } = t, { computedStyle: r = void 0 } = t, { transform: a } = t, { viewportScale: l = 1 } = t;\n const d = (u, m, w) => {\n const b = u.geometry.bounds;\n let [_, p] = [b.minX, b.minY], [T, S] = [b.maxX, b.maxY];\n const [I, R] = w;\n if (m === O.SHAPE)\n _ += I, T += I, p += R, S += R;\n else {\n switch (m) {\n case O.TOP:\n case O.TOP_LEFT:\n case O.TOP_RIGHT: {\n p += R;\n break;\n }\n case O.BOTTOM:\n case O.BOTTOM_LEFT:\n case O.BOTTOM_RIGHT: {\n S += R;\n break;\n }\n }\n switch (m) {\n case O.LEFT:\n case O.TOP_LEFT:\n case O.BOTTOM_LEFT: {\n _ += I;\n break;\n }\n case O.RIGHT:\n case O.TOP_RIGHT:\n case O.BOTTOM_RIGHT: {\n T += I;\n break;\n }\n }\n }\n const N = Math.min(_, T), y = Math.min(p, S), A = Math.abs(T - _), E = Math.abs(S - p);\n return {\n ...u,\n geometry: {\n x: N,\n y,\n w: A,\n h: E,\n bounds: {\n minX: N,\n minY: y,\n maxX: N + A,\n maxY: y + E\n }\n }\n };\n };\n function h(u) {\n Te.call(this, e, u);\n }\n function c(u) {\n Te.call(this, e, u);\n }\n function g(u) {\n Te.call(this, e, u);\n }\n return e.$$set = (u) => {\n \"shape\" in u && n(0, s = u.shape), \"computedStyle\" in u && n(1, r = u.computedStyle), \"transform\" in u && n(2, a = u.transform), \"viewportScale\" in u && n(6, l = u.viewportScale);\n }, e.$$.update = () => {\n e.$$.dirty & /*shape*/\n 1 && n(4, o = s.geometry), e.$$.dirty & /*viewportScale*/\n 64 && n(3, i = 10 / l);\n }, [\n s,\n r,\n a,\n i,\n o,\n d,\n l,\n h,\n c,\n g\n ];\n}\nclass po extends ne {\n constructor(t) {\n super(), te(this, t, mo, go, Z, {\n shape: 0,\n computedStyle: 1,\n transform: 2,\n viewportScale: 6\n });\n }\n}\nconst Qt = /* @__PURE__ */ new Map([\n [F.RECTANGLE, po],\n [F.POLYGON, fo]\n]), St = (e) => Qt.get(e.type), yo = (e, t) => Qt.set(e, t), O = (e) => `HANDLE-${e}`;\nO.SHAPE = \"SHAPE\";\nO.TOP = \"TOP\";\nO.RIGHT = \"RIGHT\";\nO.BOTTOM = \"BOTTOM\";\nO.LEFT = \"LEFT\";\nO.TOP_LEFT = \"TOP_LEFT\";\nO.TOP_RIGHT = \"TOP_RIGHT\";\nO.BOTTOM_RIGHT = \"BOTTOM_RIGHT\";\nO.BOTTOM_LEFT = \"BOTTOM_LEFT\";\nconst _o = (e) => ({}), vt = (e) => ({ grab: (\n /*onGrab*/\n e[0]\n) });\nfunction wo(e) {\n let t, n, o, i;\n const s = (\n /*#slots*/\n e[7].default\n ), r = on(\n s,\n e,\n /*$$scope*/\n e[6],\n vt\n );\n return {\n c() {\n t = U(\"g\"), r && r.c(), f(t, \"class\", \"a9s-annotation selected\");\n },\n m(a, l) {\n k(a, t, l), r && r.m(t, null), n = !0, o || (i = [\n W(\n t,\n \"pointerup\",\n /*onRelease*/\n e[2]\n ),\n W(\n t,\n \"pointermove\",\n /*onPointerMove*/\n e[1]\n )\n ], o = !0);\n },\n p(a, [l]) {\n r && r.p && (!n || l & /*$$scope*/\n 64) && rn(\n r,\n s,\n a,\n /*$$scope*/\n a[6],\n n ? sn(\n s,\n /*$$scope*/\n a[6],\n l,\n _o\n ) : ln(\n /*$$scope*/\n a[6]\n ),\n vt\n );\n },\n i(a) {\n n || (D(r, a), n = !0);\n },\n o(a) {\n X(r, a), n = !1;\n },\n d(a) {\n a && L(t), r && r.d(a), o = !1, re(i);\n }\n };\n}\nfunction bo(e, t, n) {\n let { $$slots: o = {}, $$scope: i } = t;\n const s = ve();\n let { shape: r } = t, { editor: a } = t, { transform: l } = t, d = null, h, c = null;\n const g = (w) => (b) => {\n d = w, h = l.elementToImage(b.offsetX, b.offsetY), c = r, b.target.setPointerCapture(b.pointerId), s(\"grab\");\n }, u = (w) => {\n if (d) {\n const [b, _] = l.elementToImage(w.offsetX, w.offsetY), p = [b - h[0], _ - h[1]];\n n(3, r = a(c, d, p)), s(\"change\", r);\n }\n }, m = (w) => {\n w.target.releasePointerCapture(w.pointerId), d = null, c = r, s(\"release\");\n };\n return e.$$set = (w) => {\n \"shape\" in w && n(3, r = w.shape), \"editor\" in w && n(4, a = w.editor), \"transform\" in w && n(5, l = w.transform), \"$$scope\" in w && n(6, i = w.$$scope);\n }, [g, u, m, r, a, l, i, o];\n}\nclass xt extends ne {\n constructor(t) {\n super(), te(this, t, bo, wo, Z, { shape: 3, editor: 4, transform: 5 });\n }\n}\nconst je = (e, t) => {\n const n = typeof t == \"function\" ? t(e) : t;\n if (n) {\n const { fill: o, fillOpacity: i } = n;\n let s = \"\";\n return o && (s += `fill:${o};stroke:${o};`), s += `fill-opacity:${i || \"0.25\"};`, s;\n }\n};\nfunction Eo(e, t, n) {\n let o;\n const i = ve();\n let { annotation: s } = t, { editor: r } = t, { style: a = void 0 } = t, { target: l } = t, { transform: d } = t, { viewportScale: h } = t, c;\n return Pe(() => (n(6, c = new r({\n target: l,\n props: {\n shape: s.target.selector,\n computedStyle: o,\n transform: d,\n viewportScale: h\n }\n })), c.$on(\"change\", (g) => {\n c.$$set({ shape: g.detail }), i(\"change\", g.detail);\n }), c.$on(\"grab\", (g) => i(\"grab\", g.detail)), c.$on(\"release\", (g) => i(\"release\", g.detail)), () => {\n c.$destroy();\n })), e.$$set = (g) => {\n \"annotation\" in g && n(0, s = g.annotation), \"editor\" in g && n(1, r = g.editor), \"style\" in g && n(2, a = g.style), \"target\" in g && n(3, l = g.target), \"transform\" in g && n(4, d = g.transform), \"viewportScale\" in g && n(5, h = g.viewportScale);\n }, e.$$.update = () => {\n e.$$.dirty & /*annotation, style*/\n 5 && (o = je(s, a)), e.$$.dirty & /*annotation, editorComponent*/\n 65 && s && (c == null || c.$set({ shape: s.target.selector })), e.$$.dirty & /*editorComponent, transform*/\n 80 && c && c.$set({ transform: d }), e.$$.dirty & /*editorComponent, viewportScale*/\n 96 && c && c.$set({ viewportScale: h });\n }, [s, r, a, l, d, h, c];\n}\nclass Ao extends ne {\n constructor(t) {\n super(), te(this, t, Eo, null, Z, {\n annotation: 0,\n editor: 1,\n style: 2,\n target: 3,\n transform: 4,\n viewportScale: 5\n });\n }\n}\nfunction To(e, t, n) {\n const o = ve();\n let { drawingMode: i } = t, { target: s } = t, { tool: r } = t, { transform: a } = t, { viewportScale: l } = t, d;\n return Pe(() => {\n const h = s.closest(\"svg\"), c = [], g = (u, m, w) => {\n h.addEventListener(u, m, w), c.push(() => h.removeEventListener(u, m, w));\n };\n return n(5, d = new r({\n target: s,\n props: {\n addEventListener: g,\n drawingMode: i,\n transform: a,\n viewportScale: l\n }\n })), d.$on(\"create\", (u) => o(\"create\", u.detail)), () => {\n c.forEach((u) => u()), d.$destroy();\n };\n }), e.$$set = (h) => {\n \"drawingMode\" in h && n(0, i = h.drawingMode), \"target\" in h && n(1, s = h.target), \"tool\" in h && n(2, r = h.tool), \"transform\" in h && n(3, a = h.transform), \"viewportScale\" in h && n(4, l = h.viewportScale);\n }, e.$$.update = () => {\n e.$$.dirty & /*toolComponent, transform*/\n 40 && d && d.$set({ transform: a }), e.$$.dirty & /*toolComponent, viewportScale*/\n 48 && d && d.$set({ viewportScale: l });\n }, [i, s, r, a, l, d];\n}\nclass So extends ne {\n constructor(t) {\n super(), te(this, t, To, null, Z, {\n drawingMode: 0,\n target: 1,\n tool: 2,\n transform: 3,\n viewportScale: 4\n });\n }\n}\nfunction Mt(e) {\n let t, n;\n return {\n c() {\n t = U(\"rect\"), n = U(\"rect\"), f(t, \"class\", \"a9s-outer\"), f(\n t,\n \"x\",\n /*x*/\n e[1]\n ), f(\n t,\n \"y\",\n /*y*/\n e[2]\n ), f(\n t,\n \"width\",\n /*w*/\n e[3]\n ), f(\n t,\n \"height\",\n /*h*/\n e[4]\n ), f(n, \"class\", \"a9s-inner\"), f(\n n,\n \"x\",\n /*x*/\n e[1]\n ), f(\n n,\n \"y\",\n /*y*/\n e[2]\n ), f(\n n,\n \"width\",\n /*w*/\n e[3]\n ), f(\n n,\n \"height\",\n /*h*/\n e[4]\n );\n },\n m(o, i) {\n k(o, t, i), k(o, n, i);\n },\n p(o, i) {\n i & /*x*/\n 2 && f(\n t,\n \"x\",\n /*x*/\n o[1]\n ), i & /*y*/\n 4 && f(\n t,\n \"y\",\n /*y*/\n o[2]\n ), i & /*w*/\n 8 && f(\n t,\n \"width\",\n /*w*/\n o[3]\n ), i & /*h*/\n 16 && f(\n t,\n \"height\",\n /*h*/\n o[4]\n ), i & /*x*/\n 2 && f(\n n,\n \"x\",\n /*x*/\n o[1]\n ), i & /*y*/\n 4 && f(\n n,\n \"y\",\n /*y*/\n o[2]\n ), i & /*w*/\n 8 && f(\n n,\n \"width\",\n /*w*/\n o[3]\n ), i & /*h*/\n 16 && f(\n n,\n \"height\",\n /*h*/\n o[4]\n );\n },\n d(o) {\n o && L(t), o && L(n);\n }\n };\n}\nfunction vo(e) {\n let t, n = (\n /*origin*/\n e[0] && Mt(e)\n );\n return {\n c() {\n t = U(\"g\"), n && n.c(), f(t, \"class\", \"a9s-annotation a9s-rubberband\");\n },\n m(o, i) {\n k(o, t, i), n && n.m(t, null);\n },\n p(o, [i]) {\n /*origin*/\n o[0] ? n ? n.p(o, i) : (n = Mt(o), n.c(), n.m(t, null)) : n && (n.d(1), n = null);\n },\n i: V,\n o: V,\n d(o) {\n o && L(t), n && n.d();\n }\n };\n}\nfunction Mo(e, t, n) {\n const o = ve();\n let { addEventListener: i } = t, { drawingMode: s } = t, { transform: r } = t, a, l, d, h, c, g, u;\n const m = (p) => {\n a = performance.now(), s === \"drag\" && (n(0, l = r.elementToImage(p.offsetX, p.offsetY)), d = l, n(1, h = l[0]), n(2, c = l[1]), n(3, g = 1), n(4, u = 1));\n }, w = (p) => {\n l && (d = r.elementToImage(p.offsetX, p.offsetY), n(1, h = Math.min(d[0], l[0])), n(2, c = Math.min(d[1], l[1])), n(3, g = Math.abs(d[0] - l[0])), n(4, u = Math.abs(d[1] - l[1])));\n }, b = (p) => {\n const T = performance.now() - a;\n if (s === \"click\") {\n if (T > 300)\n return;\n p.stopPropagation(), l ? _() : (n(0, l = r.elementToImage(p.offsetX, p.offsetY)), d = l, n(1, h = l[0]), n(2, c = l[1]), n(3, g = 1), n(4, u = 1));\n } else\n l && (T > 300 || g * u > 100 ? (p.stopPropagation(), _()) : (n(0, l = null), d = null));\n }, _ = () => {\n if (g * u > 15) {\n const p = {\n type: F.RECTANGLE,\n geometry: {\n bounds: {\n minX: h,\n minY: c,\n maxX: h + g,\n maxY: c + u\n },\n x: h,\n y: c,\n w: g,\n h: u\n }\n };\n o(\"create\", p);\n }\n n(0, l = null), d = null;\n };\n return Pe(() => {\n i(\"pointerdown\", m), i(\"pointermove\", w), i(\"pointerup\", b, !0);\n }), e.$$set = (p) => {\n \"addEventListener\" in p && n(5, i = p.addEventListener), \"drawingMode\" in p && n(6, s = p.drawingMode), \"transform\" in p && n(7, r = p.transform);\n }, [l, h, c, g, u, i, s, r];\n}\nclass Oo extends ne {\n constructor(t) {\n super(), te(this, t, Mo, vo, Z, {\n addEventListener: 5,\n drawingMode: 6,\n transform: 7\n });\n }\n}\nconst xe = (e, t) => {\n const n = Math.abs(t[0] - e[0]), o = Math.abs(t[1] - e[1]);\n return Math.sqrt(Math.pow(n, 2) + Math.pow(o, 2));\n}, we = [];\nfunction Lo(e, t = V) {\n let n;\n const o = /* @__PURE__ */ new Set();\n function i(a) {\n if (Z(e, a) && (e = a, n)) {\n const l = !we.length;\n for (const d of o)\n d[1](), we.push(d, e);\n if (l) {\n for (let d = 0; d < we.length; d += 2)\n we[d][0](we[d + 1]);\n we.length = 0;\n }\n }\n }\n function s(a) {\n i(a(e));\n }\n function r(a, l = V) {\n const d = [a, l];\n return o.add(d), o.size === 1 && (n = t(i) || V), a(e), () => {\n o.delete(d), o.size === 0 && n && (n(), n = null);\n };\n }\n return { set: i, update: s, subscribe: r };\n}\nconst ko = (e, t) => {\n const { naturalWidth: n, naturalHeight: o } = e;\n if (!n && !o) {\n const { width: i, height: s } = e;\n t.setAttribute(\"viewBox\", `0 0 ${i} ${s}`), e.addEventListener(\"load\", (r) => {\n const a = r.target;\n t.setAttribute(\"viewBox\", `0 0 ${a.naturalWidth} ${a.naturalHeight}`);\n });\n } else\n t.setAttribute(\"viewBox\", `0 0 ${n} ${o}`);\n}, Bo = (e, t) => {\n ko(e, t);\n const { subscribe: n, set: o } = Lo(1);\n let i;\n return window.ResizeObserver && (i = new ResizeObserver(() => {\n const r = t.getBoundingClientRect(), { width: a, height: l } = t.viewBox.baseVal, d = Math.max(\n r.width / a,\n r.height / l\n );\n o(d);\n }), i.observe(t.parentElement)), { destroy: () => {\n i && i.disconnect();\n }, subscribe: n };\n}, Xi = \"ontouchstart\" in window || navigator.maxTouchPoints > 0;\nfunction $e(e) {\n const t = e.slice(), n = (\n /*isClosable*/\n (t[2] ? (\n /*points*/\n t[0]\n ) : [\n .../*points*/\n t[0],\n /*cursor*/\n t[1]\n ]).map((o) => o.join(\",\")).join(\" \")\n );\n return t[15] = n, t;\n}\nfunction Ot(e) {\n let t, n, o, i, s, r = (\n /*isClosable*/\n e[2] && Lt(e)\n );\n return {\n c() {\n t = U(\"polygon\"), o = U(\"polygon\"), r && r.c(), s = le(), f(t, \"class\", \"a9s-outer\"), f(t, \"points\", n = /*coords*/\n e[15]), f(o, \"class\", \"a9s-inner\"), f(o, \"points\", i = /*coords*/\n e[15]);\n },\n m(a, l) {\n k(a, t, l), k(a, o, l), r && r.m(a, l), k(a, s, l);\n },\n p(a, l) {\n l & /*isClosable, points, cursor*/\n 7 && n !== (n = /*coords*/\n a[15]) && f(t, \"points\", n), l & /*isClosable, points, cursor*/\n 7 && i !== (i = /*coords*/\n a[15]) && f(o, \"points\", i), /*isClosable*/\n a[2] ? r ? r.p(a, l) : (r = Lt(a), r.c(), r.m(s.parentNode, s)) : r && (r.d(1), r = null);\n },\n d(a) {\n a && L(t), a && L(o), r && r.d(a), a && L(s);\n }\n };\n}\nfunction Lt(e) {\n let t, n, o;\n return {\n c() {\n t = U(\"rect\"), f(t, \"class\", \"a9s-corner-handle\"), f(t, \"x\", n = /*points*/\n e[0][0][0] - /*handleSize*/\n e[3] / 2), f(t, \"y\", o = /*points*/\n e[0][0][1] - /*handleSize*/\n e[3] / 2), f(\n t,\n \"height\",\n /*handleSize*/\n e[3]\n ), f(\n t,\n \"width\",\n /*handleSize*/\n e[3]\n );\n },\n m(i, s) {\n k(i, t, s);\n },\n p(i, s) {\n s & /*points, handleSize*/\n 9 && n !== (n = /*points*/\n i[0][0][0] - /*handleSize*/\n i[3] / 2) && f(t, \"x\", n), s & /*points, handleSize*/\n 9 && o !== (o = /*points*/\n i[0][0][1] - /*handleSize*/\n i[3] / 2) && f(t, \"y\", o), s & /*handleSize*/\n 8 && f(\n t,\n \"height\",\n /*handleSize*/\n i[3]\n ), s & /*handleSize*/\n 8 && f(\n t,\n \"width\",\n /*handleSize*/\n i[3]\n );\n },\n d(i) {\n i && L(t);\n }\n };\n}\nfunction Io(e) {\n let t, n = (\n /*cursor*/\n e[1] && Ot($e(e))\n );\n return {\n c() {\n t = U(\"g\"), n && n.c(), f(t, \"class\", \"a9s-annotation a9s-rubberband\");\n },\n m(o, i) {\n k(o, t, i), n && n.m(t, null);\n },\n p(o, [i]) {\n /*cursor*/\n o[1] ? n ? n.p($e(o), i) : (n = Ot($e(o)), n.c(), n.m(t, null)) : n && (n.d(1), n = null);\n },\n i: V,\n o: V,\n d(o) {\n o && L(t), n && n.d();\n }\n };\n}\nconst Co = 20;\nfunction Po(e, t, n) {\n let o;\n const i = ve();\n let { addEventListener: s } = t, { drawingMode: r } = t, { transform: a } = t, { viewportScale: l = 1 } = t, d, h = [], c = null, g = !1;\n const u = (p) => {\n const { timeStamp: T, offsetX: S, offsetY: I } = p;\n if (d = { timeStamp: T, offsetX: S, offsetY: I }, r === \"drag\" && h.length === 0) {\n const R = a.elementToImage(p.offsetX, p.offsetY);\n h.push(R), n(1, c = R);\n }\n }, m = (p) => {\n if (h.length > 0 && (n(1, c = a.elementToImage(p.offsetX, p.offsetY)), h.length > 2)) {\n const T = xe(c, h[0]) * l;\n n(2, g = T < Co);\n }\n }, w = (p) => {\n if (r === \"click\") {\n const T = p.timeStamp - d.timeStamp, S = xe([d.offsetX, d.offsetY], [p.offsetX, p.offsetY]);\n if (T > 300 || S > 15)\n return;\n if (g)\n _();\n else if (h.length === 0) {\n const I = a.elementToImage(p.offsetX, p.offsetY);\n h.push(I), n(1, c = I);\n } else\n h.push(c);\n } else {\n if (h.length === 1 && xe(h[0], c) <= 4) {\n n(0, h = []), n(1, c = null);\n return;\n }\n p.stopImmediatePropagation(), g ? _() : h.push(c);\n }\n }, b = () => {\n const p = [...h, c], T = {\n type: F.POLYGON,\n geometry: { bounds: Fe(p), points: p }\n };\n st(T) > 4 && (n(0, h = []), n(1, c = null), i(\"create\", T));\n }, _ = () => {\n const p = {\n type: F.POLYGON,\n geometry: {\n bounds: Fe(h),\n points: [...h]\n }\n };\n n(0, h = []), n(1, c = null), i(\"create\", p);\n };\n return Pe(() => {\n s(\"pointerdown\", u, !0), s(\"pointermove\", m), s(\"pointerup\", w, !0), s(\"dblclick\", b, !0);\n }), e.$$set = (p) => {\n \"addEventListener\" in p && n(4, s = p.addEventListener), \"drawingMode\" in p && n(5, r = p.drawingMode), \"transform\" in p && n(6, a = p.transform), \"viewportScale\" in p && n(7, l = p.viewportScale);\n }, e.$$.update = () => {\n e.$$.dirty & /*viewportScale*/\n 128 && n(3, o = 10 / l);\n }, [\n h,\n c,\n g,\n o,\n s,\n r,\n a,\n l\n ];\n}\nclass Ro extends ne {\n constructor(t) {\n super(), te(this, t, Po, Io, Z, {\n addEventListener: 4,\n drawingMode: 5,\n transform: 6,\n viewportScale: 7\n });\n }\n}\nconst ut = /* @__PURE__ */ new Map([\n [\"rectangle\", { tool: Oo }],\n [\"polygon\", { tool: Ro }]\n]), Yo = () => [...ut.keys()], $t = (e) => ut.get(e), Uo = (e, t, n) => ut.set(e, { tool: t, opts: n });\nfunction Do(e) {\n let t, n, o, i, s;\n return {\n c() {\n t = U(\"g\"), n = U(\"ellipse\"), i = U(\"ellipse\"), f(n, \"class\", \"a9s-outer\"), f(n, \"style\", o = /*computedStyle*/\n e[1] ? \"display:none;\" : void 0), f(\n n,\n \"cx\",\n /*cx*/\n e[2]\n ), f(\n n,\n \"cy\",\n /*cy*/\n e[3]\n ), f(\n n,\n \"rx\",\n /*rx*/\n e[4]\n ), f(\n n,\n \"ry\",\n /*ry*/\n e[5]\n ), f(i, \"class\", \"a9s-inner\"), f(\n i,\n \"style\",\n /*computedStyle*/\n e[1]\n ), f(\n i,\n \"cx\",\n /*cx*/\n e[2]\n ), f(\n i,\n \"cy\",\n /*cy*/\n e[3]\n ), f(\n i,\n \"rx\",\n /*rx*/\n e[4]\n ), f(\n i,\n \"ry\",\n /*ry*/\n e[5]\n ), f(t, \"data-id\", s = /*annotation*/\n e[0].id);\n },\n m(r, a) {\n k(r, t, a), ae(t, n), ae(t, i);\n },\n p(r, [a]) {\n a & /*computedStyle*/\n 2 && o !== (o = /*computedStyle*/\n r[1] ? \"display:none;\" : void 0) && f(n, \"style\", o), a & /*computedStyle*/\n 2 && f(\n i,\n \"style\",\n /*computedStyle*/\n r[1]\n ), a & /*annotation*/\n 1 && s !== (s = /*annotation*/\n r[0].id) && f(t, \"data-id\", s);\n },\n i: V,\n o: V,\n d(r) {\n r && L(t);\n }\n };\n}\nfunction Xo(e, t, n) {\n let o, { annotation: i } = t, { geom: s } = t, { style: r = void 0 } = t;\n const { cx: a, cy: l, rx: d, ry: h } = s;\n return e.$$set = (c) => {\n \"annotation\" in c && n(0, i = c.annotation), \"geom\" in c && n(6, s = c.geom), \"style\" in c && n(7, r = c.style);\n }, e.$$.update = () => {\n e.$$.dirty & /*annotation, style*/\n 129 && n(1, o = je(i, r));\n }, [i, o, a, l, d, h, s, r];\n}\nclass No extends ne {\n constructor(t) {\n super(), te(this, t, Xo, Do, Z, { annotation: 0, geom: 6, style: 7 });\n }\n}\nfunction Go(e) {\n let t, n, o, i, s;\n return {\n c() {\n t = U(\"g\"), n = U(\"polygon\"), i = U(\"polygon\"), f(n, \"class\", \"a9s-outer\"), f(n, \"style\", o = /*computedStyle*/\n e[1] ? \"display:none;\" : void 0), f(\n n,\n \"points\",\n /*points*/\n e[2].map(Vo).join(\" \")\n ), f(i, \"class\", \"a9s-inner\"), f(\n i,\n \"style\",\n /*computedStyle*/\n e[1]\n ), f(\n i,\n \"points\",\n /*points*/\n e[2].map(zo).join(\" \")\n ), f(t, \"data-id\", s = /*annotation*/\n e[0].id);\n },\n m(r, a) {\n k(r, t, a), ae(t, n), ae(t, i);\n },\n p(r, [a]) {\n a & /*computedStyle*/\n 2 && o !== (o = /*computedStyle*/\n r[1] ? \"display:none;\" : void 0) && f(n, \"style\", o), a & /*computedStyle*/\n 2 && f(\n i,\n \"style\",\n /*computedStyle*/\n r[1]\n ), a & /*annotation*/\n 1 && s !== (s = /*annotation*/\n r[0].id) && f(t, \"data-id\", s);\n },\n i: V,\n o: V,\n d(r) {\n r && L(t);\n }\n };\n}\nconst Vo = (e) => e.join(\",\"), zo = (e) => e.join(\",\");\nfunction Fo(e, t, n) {\n let o, { annotation: i } = t, { geom: s } = t, { style: r = void 0 } = t;\n const { points: a } = s;\n return e.$$set = (l) => {\n \"annotation\" in l && n(0, i = l.annotation), \"geom\" in l && n(3, s = l.geom), \"style\" in l && n(4, r = l.style);\n }, e.$$.update = () => {\n e.$$.dirty & /*annotation, style*/\n 17 && n(1, o = je(i, r));\n }, [i, o, a, s, r];\n}\nclass Ho extends ne {\n constructor(t) {\n super(), te(this, t, Fo, Go, Z, { annotation: 0, geom: 3, style: 4 });\n }\n}\nfunction jo(e) {\n let t, n, o, i, s;\n return {\n c() {\n t = U(\"g\"), n = U(\"rect\"), i = U(\"rect\"), f(n, \"class\", \"a9s-outer\"), f(n, \"style\", o = /*computedStyle*/\n e[5] ? \"display:none;\" : void 0), f(\n n,\n \"x\",\n /*x*/\n e[4]\n ), f(\n n,\n \"y\",\n /*y*/\n e[3]\n ), f(\n n,\n \"width\",\n /*w*/\n e[2]\n ), f(\n n,\n \"height\",\n /*h*/\n e[1]\n ), f(i, \"class\", \"a9s-inner\"), f(\n i,\n \"style\",\n /*computedStyle*/\n e[5]\n ), f(\n i,\n \"x\",\n /*x*/\n e[4]\n ), f(\n i,\n \"y\",\n /*y*/\n e[3]\n ), f(\n i,\n \"width\",\n /*w*/\n e[2]\n ), f(\n i,\n \"height\",\n /*h*/\n e[1]\n ), f(t, \"data-id\", s = /*annotation*/\n e[0].id);\n },\n m(r, a) {\n k(r, t, a), ae(t, n), ae(t, i);\n },\n p(r, [a]) {\n a & /*computedStyle*/\n 32 && o !== (o = /*computedStyle*/\n r[5] ? \"display:none;\" : void 0) && f(n, \"style\", o), a & /*x*/\n 16 && f(\n n,\n \"x\",\n /*x*/\n r[4]\n ), a & /*y*/\n 8 && f(\n n,\n \"y\",\n /*y*/\n r[3]\n ), a & /*w*/\n 4 && f(\n n,\n \"width\",\n /*w*/\n r[2]\n ), a & /*h*/\n 2 && f(\n n,\n \"height\",\n /*h*/\n r[1]\n ), a & /*computedStyle*/\n 32 && f(\n i,\n \"style\",\n /*computedStyle*/\n r[5]\n ), a & /*x*/\n 16 && f(\n i,\n \"x\",\n /*x*/\n r[4]\n ), a & /*y*/\n 8 && f(\n i,\n \"y\",\n /*y*/\n r[3]\n ), a & /*w*/\n 4 && f(\n i,\n \"width\",\n /*w*/\n r[2]\n ), a & /*h*/\n 2 && f(\n i,\n \"height\",\n /*h*/\n r[1]\n ), a & /*annotation*/\n 1 && s !== (s = /*annotation*/\n r[0].id) && f(t, \"data-id\", s);\n },\n i: V,\n o: V,\n d(r) {\n r && L(t);\n }\n };\n}\nfunction qo(e, t, n) {\n let o, i, s, r, a, { annotation: l } = t, { geom: d } = t, { style: h = void 0 } = t;\n return e.$$set = (c) => {\n \"annotation\" in c && n(0, l = c.annotation), \"geom\" in c && n(6, d = c.geom), \"style\" in c && n(7, h = c.style);\n }, e.$$.update = () => {\n e.$$.dirty & /*annotation, style*/\n 129 && n(5, o = je(l, h)), e.$$.dirty & /*geom*/\n 64 && n(4, { x: i, y: s, w: r, h: a } = d, i, (n(3, s), n(6, d)), (n(2, r), n(6, d)), (n(1, a), n(6, d)));\n }, [l, a, r, s, i, o, d, h];\n}\nclass Wo extends ne {\n constructor(t) {\n super(), te(this, t, qo, jo, Z, { annotation: 0, geom: 6, style: 7 });\n }\n}\nconst Ni = {\n elementToImage: (e, t) => [e, t]\n}, Jo = (e) => ({\n elementToImage: (t, n) => {\n const o = e.getBoundingClientRect(), i = e.createSVGPoint();\n i.x = t + o.x, i.y = n + o.y;\n const { x: s, y: r } = i.matrixTransform(e.getScreenCTM().inverse());\n return [s, r];\n }\n}), Ko = 250, Zo = (e, t) => {\n const n = ve();\n let o;\n return { onPointerDown: () => o = performance.now(), onPointerUp: (r) => {\n if (performance.now() - o < Ko) {\n const { x: l, y: d } = Qo(r, e), h = t.getAt(l, d);\n h ? n(\"click\", { originalEvent: r, annotation: h }) : n(\"click\", { originalEvent: r });\n }\n } };\n}, Qo = (e, t) => {\n const n = t.createSVGPoint(), o = t.getBoundingClientRect(), i = e.clientX - o.x, s = e.clientY - o.y, { left: r, top: a } = t.getBoundingClientRect();\n return n.x = i + r, n.y = s + a, n.matrixTransform(t.getScreenCTM().inverse());\n};\nfunction kt(e, t, n) {\n const o = e.slice();\n return o[28] = t[n], o;\n}\nfunction Bt(e, t, n) {\n const o = e.slice();\n return o[31] = t[n], o;\n}\nfunction et(e) {\n const t = e.slice(), n = (\n /*annotation*/\n t[31].target.selector\n );\n return t[34] = n, t;\n}\nfunction It(e) {\n let t = (\n /*annotation*/\n e[31].id\n ), n, o, i = Ct(e);\n return {\n c() {\n i.c(), n = le();\n },\n m(s, r) {\n i.m(s, r), k(s, n, r), o = !0;\n },\n p(s, r) {\n r[0] & /*$store*/\n 4096 && Z(t, t = /*annotation*/\n s[31].id) ? (ie(), X(i, 1, 1, V), se(), i = Ct(s), i.c(), D(i, 1), i.m(n.parentNode, n)) : i.p(s, r);\n },\n i(s) {\n o || (D(i), o = !0);\n },\n o(s) {\n X(i), o = !1;\n },\n d(s) {\n s && L(n), i.d(s);\n }\n };\n}\nfunction xo(e) {\n let t, n;\n return t = new Ho({\n props: {\n annotation: (\n /*annotation*/\n e[31]\n ),\n geom: (\n /*selector*/\n e[34].geometry\n ),\n style: (\n /*style*/\n e[1]\n )\n }\n }), {\n c() {\n ge(t.$$.fragment);\n },\n m(o, i) {\n ce(t, o, i), n = !0;\n },\n p(o, i) {\n const s = {};\n i[0] & /*$store*/\n 4096 && (s.annotation = /*annotation*/\n o[31]), i[0] & /*$store*/\n 4096 && (s.geom = /*selector*/\n o[34].geometry), i[0] & /*style*/\n 2 && (s.style = /*style*/\n o[1]), t.$set(s);\n },\n i(o) {\n n || (D(t.$$.fragment, o), n = !0);\n },\n o(o) {\n X(t.$$.fragment, o), n = !1;\n },\n d(o) {\n de(t, o);\n }\n };\n}\nfunction $o(e) {\n let t, n;\n return t = new Wo({\n props: {\n annotation: (\n /*annotation*/\n e[31]\n ),\n geom: (\n /*selector*/\n e[34].geometry\n ),\n style: (\n /*style*/\n e[1]\n )\n }\n }), {\n c() {\n ge(t.$$.fragment);\n },\n m(o, i) {\n ce(t, o, i), n = !0;\n },\n p(o, i) {\n const s = {};\n i[0] & /*$store*/\n 4096 && (s.annotation = /*annotation*/\n o[31]), i[0] & /*$store*/\n 4096 && (s.geom = /*selector*/\n o[34].geometry), i[0] & /*style*/\n 2 && (s.style = /*style*/\n o[1]), t.$set(s);\n },\n i(o) {\n n || (D(t.$$.fragment, o), n = !0);\n },\n o(o) {\n X(t.$$.fragment, o), n = !1;\n },\n d(o) {\n de(t, o);\n }\n };\n}\nfunction ei(e) {\n let t, n;\n return t = new No({\n props: {\n annotation: (\n /*annotation*/\n e[31]\n ),\n geom: (\n /*selector*/\n e[34].geometry\n ),\n style: (\n /*style*/\n e[1]\n )\n }\n }), {\n c() {\n ge(t.$$.fragment);\n },\n m(o, i) {\n ce(t, o, i), n = !0;\n },\n p(o, i) {\n const s = {};\n i[0] & /*$store*/\n 4096 && (s.annotation = /*annotation*/\n o[31]), i[0] & /*$store*/\n 4096 && (s.geom = /*selector*/\n o[34].geometry), i[0] & /*style*/\n 2 && (s.style = /*style*/\n o[1]), t.$set(s);\n },\n i(o) {\n n || (D(t.$$.fragment, o), n = !0);\n },\n o(o) {\n X(t.$$.fragment, o), n = !1;\n },\n d(o) {\n de(t, o);\n }\n };\n}\nfunction Ct(e) {\n let t, n, o, i;\n const s = [ei, $o, xo], r = [];\n function a(l, d) {\n return (\n /*selector*/\n l[34].type === F.ELLIPSE ? 0 : (\n /*selector*/\n l[34].type === F.RECTANGLE ? 1 : (\n /*selector*/\n l[34].type === F.POLYGON ? 2 : -1\n )\n )\n );\n }\n return ~(t = a(e)) && (n = r[t] = s[t](e)), {\n c() {\n n && n.c(), o = le();\n },\n m(l, d) {\n ~t && r[t].m(l, d), k(l, o, d), i = !0;\n },\n p(l, d) {\n let h = t;\n t = a(l), t === h ? ~t && r[t].p(l, d) : (n && (ie(), X(r[h], 1, 1, () => {\n r[h] = null;\n }), se()), ~t ? (n = r[t], n ? n.p(l, d) : (n = r[t] = s[t](l), n.c()), D(n, 1), n.m(o.parentNode, o)) : n = null);\n },\n i(l) {\n i || (D(n), i = !0);\n },\n o(l) {\n X(n), i = !1;\n },\n d(l) {\n ~t && r[t].d(l), l && L(o);\n }\n };\n}\nfunction Pt(e) {\n let t = !/*isEditable*/\n e[7](\n /*annotation*/\n e[31]\n ), n, o, i = t && It(et(e));\n return {\n c() {\n i && i.c(), n = le();\n },\n m(s, r) {\n i && i.m(s, r), k(s, n, r), o = !0;\n },\n p(s, r) {\n r[0] & /*isEditable, $store*/\n 4224 && (t = !/*isEditable*/\n s[7](\n /*annotation*/\n s[31]\n )), t ? i ? (i.p(et(s), r), r[0] & /*isEditable, $store*/\n 4224 && D(i, 1)) : (i = It(et(s)), i.c(), D(i, 1), i.m(n.parentNode, n)) : i && (ie(), X(i, 1, 1, () => {\n i = null;\n }), se());\n },\n i(s) {\n o || (D(i), o = !0);\n },\n o(s) {\n X(i), o = !1;\n },\n d(s) {\n i && i.d(s), s && L(n);\n }\n };\n}\nfunction Rt(e) {\n let t, n, o, i;\n const s = [ni, ti], r = [];\n function a(l, d) {\n return (\n /*editableAnnotations*/\n l[6] ? 0 : (\n /*tool*/\n l[2] && /*drawingEnabled*/\n l[0] ? 1 : -1\n )\n );\n }\n return ~(t = a(e)) && (n = r[t] = s[t](e)), {\n c() {\n n && n.c(), o = le();\n },\n m(l, d) {\n ~t && r[t].m(l, d), k(l, o, d), i = !0;\n },\n p(l, d) {\n let h = t;\n t = a(l), t === h ? ~t && r[t].p(l, d) : (n && (ie(), X(r[h], 1, 1, () => {\n r[h] = null;\n }), se()), ~t ? (n = r[t], n ? n.p(l, d) : (n = r[t] = s[t](l), n.c()), D(n, 1), n.m(o.parentNode, o)) : n = null);\n },\n i(l) {\n i || (D(n), i = !0);\n },\n o(l) {\n X(n), i = !1;\n },\n d(l) {\n ~t && r[t].d(l), l && L(o);\n }\n };\n}\nfunction ti(e) {\n let t = (\n /*tool*/\n e[2]\n ), n, o, i = Yt(e);\n return {\n c() {\n i.c(), n = le();\n },\n m(s, r) {\n i.m(s, r), k(s, n, r), o = !0;\n },\n p(s, r) {\n r[0] & /*tool*/\n 4 && Z(t, t = /*tool*/\n s[2]) ? (ie(), X(i, 1, 1, V), se(), i = Yt(s), i.c(), D(i, 1), i.m(n.parentNode, n)) : i.p(s, r);\n },\n i(s) {\n o || (D(i), o = !0);\n },\n o(s) {\n X(i), o = !1;\n },\n d(s) {\n s && L(n), i.d(s);\n }\n };\n}\nfunction ni(e) {\n let t, n, o = (\n /*editableAnnotations*/\n e[6]\n ), i = [];\n for (let r = 0; r < o.length; r += 1)\n i[r] = Dt(kt(e, o, r));\n const s = (r) => X(i[r], 1, 1, () => {\n i[r] = null;\n });\n return {\n c() {\n for (let r = 0; r < i.length; r += 1)\n i[r].c();\n t = le();\n },\n m(r, a) {\n for (let l = 0; l < i.length; l += 1)\n i[l] && i[l].m(r, a);\n k(r, t, a), n = !0;\n },\n p(r, a) {\n if (a[0] & /*editableAnnotations, drawingEl, style, transform, $scale, onChangeSelected*/\n 140370) {\n o = /*editableAnnotations*/\n r[6];\n let l;\n for (l = 0; l < o.length; l += 1) {\n const d = kt(r, o, l);\n i[l] ? (i[l].p(d, a), D(i[l], 1)) : (i[l] = Dt(d), i[l].c(), D(i[l], 1), i[l].m(t.parentNode, t));\n }\n for (ie(), l = o.length; l < i.length; l += 1)\n s(l);\n se();\n }\n },\n i(r) {\n if (!n) {\n for (let a = 0; a < o.length; a += 1)\n D(i[a]);\n n = !0;\n }\n },\n o(r) {\n i = i.filter(Boolean);\n for (let a = 0; a < i.length; a += 1)\n X(i[a]);\n n = !1;\n },\n d(r) {\n rt(i, r), r && L(t);\n }\n };\n}\nfunction Yt(e) {\n let t, n;\n return t = new So({\n props: {\n target: (\n /*drawingEl*/\n e[4]\n ),\n tool: (\n /*tool*/\n e[2]\n ),\n drawingMode: (\n /*drawingMode*/\n e[11]\n ),\n transform: (\n /*transform*/\n e[10]\n ),\n viewportScale: (\n /*$scale*/\n e[13]\n )\n }\n }), t.$on(\n \"create\",\n /*onSelectionCreated*/\n e[16]\n ), {\n c() {\n ge(t.$$.fragment);\n },\n m(o, i) {\n ce(t, o, i), n = !0;\n },\n p(o, i) {\n const s = {};\n i[0] & /*drawingEl*/\n 16 && (s.target = /*drawingEl*/\n o[4]), i[0] & /*tool*/\n 4 && (s.tool = /*tool*/\n o[2]), i[0] & /*drawingMode*/\n 2048 && (s.drawingMode = /*drawingMode*/\n o[11]), i[0] & /*transform*/\n 1024 && (s.transform = /*transform*/\n o[10]), i[0] & /*$scale*/\n 8192 && (s.viewportScale = /*$scale*/\n o[13]), t.$set(s);\n },\n i(o) {\n n || (D(t.$$.fragment, o), n = !0);\n },\n o(o) {\n X(t.$$.fragment, o), n = !1;\n },\n d(o) {\n de(t, o);\n }\n };\n}\nfunction Ut(e) {\n let t, n;\n return t = new Ao({\n props: {\n target: (\n /*drawingEl*/\n e[4]\n ),\n editor: St(\n /*editable*/\n e[28].target.selector\n ),\n annotation: (\n /*editable*/\n e[28]\n ),\n style: (\n /*style*/\n e[1]\n ),\n transform: (\n /*transform*/\n e[10]\n ),\n viewportScale: (\n /*$scale*/\n e[13]\n )\n }\n }), t.$on(\"change\", function() {\n H(\n /*onChangeSelected*/\n e[17](\n /*editable*/\n e[28]\n )\n ) && e[17](\n /*editable*/\n e[28]\n ).apply(this, arguments);\n }), {\n c() {\n ge(t.$$.fragment);\n },\n m(o, i) {\n ce(t, o, i), n = !0;\n },\n p(o, i) {\n e = o;\n const s = {};\n i[0] & /*drawingEl*/\n 16 && (s.target = /*drawingEl*/\n e[4]), i[0] & /*editableAnnotations*/\n 64 && (s.editor = St(\n /*editable*/\n e[28].target.selector\n )), i[0] & /*editableAnnotations*/\n 64 && (s.annotation = /*editable*/\n e[28]), i[0] & /*style*/\n 2 && (s.style = /*style*/\n e[1]), i[0] & /*transform*/\n 1024 && (s.transform = /*transform*/\n e[10]), i[0] & /*$scale*/\n 8192 && (s.viewportScale = /*$scale*/\n e[13]), t.$set(s);\n },\n i(o) {\n n || (D(t.$$.fragment, o), n = !0);\n },\n o(o) {\n X(t.$$.fragment, o), n = !1;\n },\n d(o) {\n de(t, o);\n }\n };\n}\nfunction Dt(e) {\n let t = (\n /*editable*/\n e[28].id\n ), n, o, i = Ut(e);\n return {\n c() {\n i.c(), n = le();\n },\n m(s, r) {\n i.m(s, r), k(s, n, r), o = !0;\n },\n p(s, r) {\n r[0] & /*editableAnnotations*/\n 64 && Z(t, t = /*editable*/\n s[28].id) ? (ie(), X(i, 1, 1, V), se(), i = Ut(s), i.c(), D(i, 1), i.m(n.parentNode, n)) : i.p(s, r);\n },\n i(s) {\n o || (D(i), o = !0);\n },\n o(s) {\n X(i), o = !1;\n },\n d(s) {\n s && L(n), i.d(s);\n }\n };\n}\nfunction oi(e) {\n let t, n, o, i, s, r, a = (\n /*$store*/\n e[12]\n ), l = [];\n for (let c = 0; c < a.length; c += 1)\n l[c] = Pt(Bt(e, a, c));\n const d = (c) => X(l[c], 1, 1, () => {\n l[c] = null;\n });\n let h = (\n /*drawingEl*/\n e[4] && Rt(e)\n );\n return {\n c() {\n t = U(\"svg\"), n = U(\"g\");\n for (let c = 0; c < l.length; c += 1)\n l[c].c();\n o = U(\"g\"), h && h.c(), f(o, \"class\", \"drawing\"), f(t, \"class\", \"a9s-annotationlayer\"), mt(\n t,\n \"drawing\",\n /*tool*/\n e[2]\n );\n },\n m(c, g) {\n k(c, t, g), ae(t, n);\n for (let u = 0; u < l.length; u += 1)\n l[u] && l[u].m(n, null);\n ae(t, o), h && h.m(o, null), e[24](o), e[25](t), i = !0, s || (r = [\n W(t, \"pointerup\", function() {\n H(\n /*onPointerUp*/\n e[8]\n ) && e[8].apply(this, arguments);\n }),\n W(t, \"pointerdown\", function() {\n H(\n /*onPointerDown*/\n e[9]\n ) && e[9].apply(this, arguments);\n })\n ], s = !0);\n },\n p(c, g) {\n if (e = c, g[0] & /*$store, style, isEditable*/\n 4226) {\n a = /*$store*/\n e[12];\n let u;\n for (u = 0; u < a.length; u += 1) {\n const m = Bt(e, a, u);\n l[u] ? (l[u].p(m, g), D(l[u], 1)) : (l[u] = Pt(m), l[u].c(), D(l[u], 1), l[u].m(n, null));\n }\n for (ie(), u = a.length; u < l.length; u += 1)\n d(u);\n se();\n }\n /*drawingEl*/\n e[4] ? h ? (h.p(e, g), g[0] & /*drawingEl*/\n 16 && D(h, 1)) : (h = Rt(e), h.c(), D(h, 1), h.m(o, null)) : h && (ie(), X(h, 1, 1, () => {\n h = null;\n }), se()), (!i || g[0] & /*tool*/\n 4) && mt(\n t,\n \"drawing\",\n /*tool*/\n e[2]\n );\n },\n i(c) {\n if (!i) {\n for (let g = 0; g < a.length; g += 1)\n D(l[g]);\n D(h), i = !0;\n }\n },\n o(c) {\n l = l.filter(Boolean);\n for (let g = 0; g < l.length; g += 1)\n X(l[g]);\n X(h), i = !1;\n },\n d(c) {\n c && L(t), rt(l, c), h && h.d(), e[24](null), e[25](null), s = !1, re(r);\n }\n };\n}\nfunction ii(e, t, n) {\n let o, i, s, r, a, l, d, h, c = V, g = () => (c(), c = Ft(A, (C) => n(13, h = C)), A);\n e.$$.on_destroy.push(() => c());\n let { drawingEnabled: u } = t, { image: m } = t, { preferredDrawingMode: w } = t, { state: b } = t, { style: _ = void 0 } = t, { tool: p, opts: T } = $t(\"rectangle\"), { tool: S = p, opts: I = T } = t, { user: R } = t, N, y, A;\n Pe(() => g(n(5, A = Bo(m, y))));\n const { selection: E, store: v } = b;\n gt(e, E, (C) => n(23, l = C)), gt(e, v, (C) => n(12, d = C));\n let B = null, Y = null;\n const Q = (C) => {\n v.unobserve(B);\n const J = C.filter(({ editable: z }) => z).map(({ id: z }) => z);\n J.length > 0 ? (n(6, Y = J.map((z) => v.getAnnotation(z))), B = (z) => {\n const { updated: j } = z.changes;\n n(6, Y = j.map((oe) => oe.newValue));\n }, v.observe(B, { annotations: J })) : n(6, Y = null);\n }, me = (C) => {\n const J = ct(), z = {\n id: J,\n bodies: [],\n target: {\n annotation: J,\n selector: C.detail,\n creator: R,\n created: /* @__PURE__ */ new Date()\n }\n };\n v.addAnnotation(z), E.setSelected(z.id);\n }, pe = (C) => (J) => {\n var ue;\n const { target: z } = C, j = 10 * 60 * 1e3, oe = ((ue = z.creator) == null ? void 0 : ue.id) !== R.id || !z.created || (/* @__PURE__ */ new Date()).getTime() - z.created.getTime() > j;\n v.updateTarget({\n ...z,\n selector: J.detail,\n created: oe ? z.created : /* @__PURE__ */ new Date(),\n updated: oe ? /* @__PURE__ */ new Date() : null,\n updatedBy: oe ? R : null\n });\n };\n function Me(C) {\n ze[C ? \"unshift\" : \"push\"](() => {\n N = C, n(4, N);\n });\n }\n function K(C) {\n ze[C ? \"unshift\" : \"push\"](() => {\n y = C, n(3, y);\n });\n }\n return e.$$set = (C) => {\n \"drawingEnabled\" in C && n(0, u = C.drawingEnabled), \"image\" in C && n(18, m = C.image), \"preferredDrawingMode\" in C && n(19, w = C.preferredDrawingMode), \"state\" in C && n(20, b = C.state), \"style\" in C && n(1, _ = C.style), \"tool\" in C && n(2, S = C.tool), \"opts\" in C && n(21, I = C.opts), \"user\" in C && n(22, R = C.user);\n }, e.$$.update = () => {\n e.$$.dirty[0] & /*opts, preferredDrawingMode*/\n 2621440 && n(11, o = (I == null ? void 0 : I.drawingMode) || w), e.$$.dirty[0] & /*svgEl*/\n 8 && n(10, i = Jo(y)), e.$$.dirty[0] & /*svgEl*/\n 8 && n(9, { onPointerDown: s, onPointerUp: r } = Zo(y, v), s, (n(8, r), n(3, y))), e.$$.dirty[0] & /*$selection*/\n 8388608 && n(7, a = (C) => l.selected.find((J) => J.id === C.id && J.editable)), e.$$.dirty[0] & /*$selection*/\n 8388608 && Q(l.selected);\n }, [\n u,\n _,\n S,\n y,\n N,\n A,\n Y,\n a,\n r,\n s,\n i,\n o,\n d,\n h,\n E,\n v,\n me,\n pe,\n m,\n w,\n b,\n I,\n R,\n l,\n Me,\n K\n ];\n}\nclass si extends ne {\n constructor(t) {\n super(), te(\n this,\n t,\n ii,\n oi,\n Z,\n {\n drawingEnabled: 0,\n image: 18,\n preferredDrawingMode: 19,\n state: 20,\n style: 1,\n tool: 2,\n opts: 21,\n user: 22\n },\n null,\n [-1, -1]\n );\n }\n}\nfunction ri(e, t, n, o, i) {\n en(e, t, n || 0, o || e.length - 1, i || li);\n}\nfunction en(e, t, n, o, i) {\n for (; o > n; ) {\n if (o - n > 600) {\n var s = o - n + 1, r = t - n + 1, a = Math.log(s), l = 0.5 * Math.exp(2 * a / 3), d = 0.5 * Math.sqrt(a * l * (s - l) / s) * (r - s / 2 < 0 ? -1 : 1), h = Math.max(n, Math.floor(t - r * l / s + d)), c = Math.min(o, Math.floor(t + (s - r) * l / s + d));\n en(e, t, h, c, i);\n }\n var g = e[t], u = n, m = o;\n for (Oe(e, n, t), i(e[o], g) > 0 && Oe(e, n, o); u < m; ) {\n for (Oe(e, u, m), u++, m--; i(e[u], g) < 0; )\n u++;\n for (; i(e[m], g) > 0; )\n m--;\n }\n i(e[n], g) === 0 ? Oe(e, n, m) : (m++, Oe(e, m, o)), m <= t && (n = m + 1), t <= m && (o = m - 1);\n }\n}\nfunction Oe(e, t, n) {\n var o = e[t];\n e[t] = e[n], e[n] = o;\n}\nfunction li(e, t) {\n return e < t ? -1 : e > t ? 1 : 0;\n}\nclass ai {\n constructor(t = 9) {\n this._maxEntries = Math.max(4, t), this._minEntries = Math.max(2, Math.ceil(this._maxEntries * 0.4)), this.clear();\n }\n all() {\n return this._all(this.data, []);\n }\n search(t) {\n let n = this.data;\n const o = [];\n if (!Ge(t, n))\n return o;\n const i = this.toBBox, s = [];\n for (; n; ) {\n for (let r = 0; r < n.children.length; r++) {\n const a = n.children[r], l = n.leaf ? i(a) : a;\n Ge(t, l) && (n.leaf ? o.push(a) : nt(t, l) ? this._all(a, o) : s.push(a));\n }\n n = s.pop();\n }\n return o;\n }\n collides(t) {\n let n = this.data;\n if (!Ge(t, n))\n return !1;\n const o = [];\n for (; n; ) {\n for (let i = 0; i < n.children.length; i++) {\n const s = n.children[i], r = n.leaf ? this.toBBox(s) : s;\n if (Ge(t, r)) {\n if (n.leaf || nt(t, r))\n return !0;\n o.push(s);\n }\n }\n n = o.pop();\n }\n return !1;\n }\n load(t) {\n if (!(t && t.length))\n return this;\n if (t.length < this._minEntries) {\n for (let o = 0; o < t.length; o++)\n this.insert(t[o]);\n return this;\n }\n let n = this._build(t.slice(), 0, t.length - 1, 0);\n if (!this.data.children.length)\n this.data = n;\n else if (this.data.height === n.height)\n this._splitRoot(this.data, n);\n else {\n if (this.data.height < n.height) {\n const o = this.data;\n this.data = n, n = o;\n }\n this._insert(n, this.data.height - n.height - 1, !0);\n }\n return this;\n }\n insert(t) {\n return t && this._insert(t, this.data.height - 1), this;\n }\n clear() {\n return this.data = Ae([]), this;\n }\n remove(t, n) {\n if (!t)\n return this;\n let o = this.data;\n const i = this.toBBox(t), s = [], r = [];\n let a, l, d;\n for (; o || s.length; ) {\n if (o || (o = s.pop(), l = s[s.length - 1], a = r.pop(), d = !0), o.leaf) {\n const h = ci(t, o.children, n);\n if (h !== -1)\n return o.children.splice(h, 1), s.push(o), this._condense(s), this;\n }\n !d && !o.leaf && nt(o, i) ? (s.push(o), r.push(a), a = 0, l = o, o = o.children[0]) : l ? (a++, o = l.children[a], d = !1) : o = null;\n }\n return this;\n }\n toBBox(t) {\n return t;\n }\n compareMinX(t, n) {\n return t.minX - n.minX;\n }\n compareMinY(t, n) {\n return t.minY - n.minY;\n }\n toJSON() {\n return this.data;\n }\n fromJSON(t) {\n return this.data = t, this;\n }\n _all(t, n) {\n const o = [];\n for (; t; )\n t.leaf ? n.push(...t.children) : o.push(...t.children), t = o.pop();\n return n;\n }\n _build(t, n, o, i) {\n const s = o - n + 1;\n let r = this._maxEntries, a;\n if (s <= r)\n return a = Ae(t.slice(n, o + 1)), be(a, this.toBBox), a;\n i || (i = Math.ceil(Math.log(s) / Math.log(r)), r = Math.ceil(s / Math.pow(r, i - 1))), a = Ae([]), a.leaf = !1, a.height = i;\n const l = Math.ceil(s / r), d = l * Math.ceil(Math.sqrt(r));\n Xt(t, n, o, d, this.compareMinX);\n for (let h = n; h <= o; h += d) {\n const c = Math.min(h + d - 1, o);\n Xt(t, h, c, l, this.compareMinY);\n for (let g = h; g <= c; g += l) {\n const u = Math.min(g + l - 1, c);\n a.children.push(this._build(t, g, u, i - 1));\n }\n }\n return be(a, this.toBBox), a;\n }\n _chooseSubtree(t, n, o, i) {\n for (; i.push(n), !(n.leaf || i.length - 1 === o); ) {\n let s = 1 / 0, r = 1 / 0, a;\n for (let l = 0; l < n.children.length; l++) {\n const d = n.children[l], h = tt(d), c = fi(t, d) - h;\n c < r ? (r = c, s = h < s ? h : s, a = d) : c === r && h < s && (s = h, a = d);\n }\n n = a || n.children[0];\n }\n return n;\n }\n _insert(t, n, o) {\n const i = o ? t : this.toBBox(t), s = [], r = this._chooseSubtree(i, this.data, n, s);\n for (r.children.push(t), ke(r, i); n >= 0 && s[n].children.length > this._maxEntries; )\n this._split(s, n), n--;\n this._adjustParentBBoxes(i, s, n);\n }\n // split overflowed node into two\n _split(t, n) {\n const o = t[n], i = o.children.length, s = this._minEntries;\n this._chooseSplitAxis(o, s, i);\n const r = this._chooseSplitIndex(o, s, i), a = Ae(o.children.splice(r, o.children.length - r));\n a.height = o.height, a.leaf = o.leaf, be(o, this.toBBox), be(a, this.toBBox), n ? t[n - 1].children.push(a) : this._splitRoot(o, a);\n }\n _splitRoot(t, n) {\n this.data = Ae([t, n]), this.data.height = t.height + 1, this.data.leaf = !1, be(this.data, this.toBBox);\n }\n _chooseSplitIndex(t, n, o) {\n let i, s = 1 / 0, r = 1 / 0;\n for (let a = n; a <= o - n; a++) {\n const l = Le(t, 0, a, this.toBBox), d = Le(t, a, o, this.toBBox), h = hi(l, d), c = tt(l) + tt(d);\n h < s ? (s = h, i = a, r = c < r ? c : r) : h === s && c < r && (r = c, i = a);\n }\n return i || o - n;\n }\n // sorts node children by the best axis for split\n _chooseSplitAxis(t, n, o) {\n const i = t.leaf ? this.compareMinX : di, s = t.leaf ? this.compareMinY : ui, r = this._allDistMargin(t, n, o, i), a = this._allDistMargin(t, n, o, s);\n r < a && t.children.sort(i);\n }\n // total margin of all possible split distributions where each node is at least m full\n _allDistMargin(t, n, o, i) {\n t.children.sort(i);\n const s = this.toBBox, r = Le(t, 0, n, s), a = Le(t, o - n, o, s);\n let l = Ne(r) + Ne(a);\n for (let d = n; d < o - n; d++) {\n const h = t.children[d];\n ke(r, t.leaf ? s(h) : h), l += Ne(r);\n }\n for (let d = o - n - 1; d >= n; d--) {\n const h = t.children[d];\n ke(a, t.leaf ? s(h) : h), l += Ne(a);\n }\n return l;\n }\n _adjustParentBBoxes(t, n, o) {\n for (let i = o; i >= 0; i--)\n ke(n[i], t);\n }\n _condense(t) {\n for (let n = t.length - 1, o; n >= 0; n--)\n t[n].children.length === 0 ? n > 0 ? (o = t[n - 1].children, o.splice(o.indexOf(t[n]), 1)) : this.clear() : be(t[n], this.toBBox);\n }\n}\nfunction ci(e, t, n) {\n if (!n)\n return t.indexOf(e);\n for (let o = 0; o < t.length; o++)\n if (n(e, t[o]))\n return o;\n return -1;\n}\nfunction be(e, t) {\n Le(e, 0, e.children.length, t, e);\n}\nfunction Le(e, t, n, o, i) {\n i || (i = Ae(null)), i.minX = 1 / 0, i.minY = 1 / 0, i.maxX = -1 / 0, i.maxY = -1 / 0;\n for (let s = t; s < n; s++) {\n const r = e.children[s];\n ke(i, e.leaf ? o(r) : r);\n }\n return i;\n}\nfunction ke(e, t) {\n return e.minX = Math.min(e.minX, t.minX), e.minY = Math.min(e.minY, t.minY), e.maxX = Math.max(e.maxX, t.maxX), e.maxY = Math.max(e.maxY, t.maxY), e;\n}\nfunction di(e, t) {\n return e.minX - t.minX;\n}\nfunction ui(e, t) {\n return e.minY - t.minY;\n}\nfunction tt(e) {\n return (e.maxX - e.minX) * (e.maxY - e.minY);\n}\nfunction Ne(e) {\n return e.maxX - e.minX + (e.maxY - e.minY);\n}\nfunction fi(e, t) {\n return (Math.max(t.maxX, e.maxX) - Math.min(t.minX, e.minX)) * (Math.max(t.maxY, e.maxY) - Math.min(t.minY, e.minY));\n}\nfunction hi(e, t) {\n const n = Math.max(e.minX, t.minX), o = Math.max(e.minY, t.minY), i = Math.min(e.maxX, t.maxX), s = Math.min(e.maxY, t.maxY);\n return Math.max(0, i - n) * Math.max(0, s - o);\n}\nfunction nt(e, t) {\n return e.minX <= t.minX && e.minY <= t.minY && t.maxX <= e.maxX && t.maxY <= e.maxY;\n}\nfunction Ge(e, t) {\n return t.minX <= e.maxX && t.minY <= e.maxY && t.maxX >= e.minX && t.maxY >= e.minY;\n}\nfunction Ae(e) {\n return {\n children: e,\n height: 1,\n leaf: !0,\n minX: 1 / 0,\n minY: 1 / 0,\n maxX: -1 / 0,\n maxY: -1 / 0\n };\n}\nfunction Xt(e, t, n, o, i) {\n const s = [t, n];\n for (; s.length; ) {\n if (n = s.pop(), t = s.pop(), n - t <= o)\n continue;\n const r = t + Math.ceil((n - t) / o / 2) * o;\n ri(e, r, t, n, i), s.push(t, r, r, n);\n }\n}\nconst gi = () => {\n const e = new ai(), t = /* @__PURE__ */ new Map(), n = () => [...t.values()], o = () => {\n e.clear(), t.clear();\n }, i = (c) => {\n const { minX: g, minY: u, maxX: m, maxY: w } = c.selector.geometry.bounds, b = { minX: g, minY: u, maxX: m, maxY: w, target: c };\n e.insert(b), t.set(c.annotation, b);\n }, s = (c) => {\n const g = t.get(c.annotation);\n e.remove(g), t.delete(c.annotation);\n };\n return {\n all: n,\n clear: o,\n getAt: (c, g) => {\n const m = e.search({\n minX: c,\n minY: g,\n maxX: c,\n maxY: g\n }).map((w) => w.target).filter((w) => w.selector.type === F.RECTANGLE || mn(w.selector, c, g));\n if (m.length > 0)\n return m.sort((w, b) => st(w.selector) - st(b.selector)), m[0];\n },\n getIntersecting: (c, g, u, m) => e.search({\n minX: c,\n minY: g,\n maxX: c + u,\n maxY: g + m\n }).map((w) => w.target),\n insert: i,\n remove: s,\n set: (c, g = !0) => {\n g && o();\n const u = c.map((m) => {\n const { minX: w, minY: b, maxX: _, maxY: p } = m.selector.geometry.bounds;\n return { minX: w, minY: b, maxX: _, maxY: p, target: m };\n });\n u.forEach((m) => t.set(m.target.annotation, m)), e.load(u);\n },\n size: () => e.all().length,\n update: (c, g) => {\n s(c), i(g);\n }\n };\n}, mi = (e) => {\n const t = Fn(), n = gi(), o = Pn(t, e.pointerSelectAction), i = Cn(t), s = Jn();\n return t.observe(({ changes: l }) => {\n n.set(l.created.map((d) => d.target), !1), l.deleted.forEach((d) => n.remove(d.target)), l.updated.forEach(({ oldValue: d, newValue: h }) => n.update(d.target, h.target));\n }), {\n store: {\n ...t,\n getAt: (l, d) => {\n const h = n.getAt(l, d);\n return h ? t.getAnnotation(h.annotation) : void 0;\n },\n getIntersecting: (l, d, h, c) => n.getIntersecting(l, d, h, c).map((g) => t.getAnnotation(g.annotation))\n },\n selection: o,\n hover: i,\n viewport: s\n };\n}, pi = (e) => {\n const t = mi(e);\n return {\n ...t,\n store: Hn(t.store)\n };\n}, yi = (e) => {\n let t, n;\n if (e.nodeName === \"CANVAS\")\n t = e, n = t.getContext(\"2d\", { willReadFrequently: !0 });\n else {\n const i = e;\n t = document.createElement(\"canvas\"), t.width = i.width, t.height = i.height, n = t.getContext(\"2d\", { willReadFrequently: !0 }), n.drawImage(i, 0, 0, i.width, i.height);\n }\n let o = 0;\n for (let i = 1; i < 10; i++)\n for (let s = 1; s < 10; s++) {\n const r = Math.round(s * t.width / 10), a = Math.round(i * t.height / 10), l = n.getImageData(r, a, 1, 1).data, d = (0.299 * l[0] + 0.587 * l[1] + 0.114 * l[2]) / 255;\n o += d;\n }\n return o / 81;\n}, _i = (e) => {\n const t = yi(e), n = t > 0.6 ? \"dark\" : \"light\";\n return console.log(`[Annotorious] Image brightness: ${t.toFixed(1)}. Setting ${n} theme.`), n;\n}, Nt = (e, t, n) => t.setAttribute(\"data-theme\", n === \"auto\" ? _i(e) : n), wi = (e) => ({\n ...e,\n drawingEnabled: e.drawingEnabled === void 0 ? !0 : e.drawingEnabled,\n drawingMode: e.drawingMode || \"drag\",\n pointerSelectAction: e.pointerSelectAction || Kt.EDIT,\n theme: e.theme || \"light\"\n}), Gt = navigator.userAgent.indexOf(\"Mac OS X\") !== -1, bi = (e, t) => {\n const n = t || document, o = (r) => {\n r.key === \"Z\" && r.ctrlKey ? e.undo() : r.key === \"Y\" && r.ctrlKey && e.redo();\n }, i = (r) => {\n r.key === \"z\" && r.metaKey && (r.shiftKey ? e.redo() : e.undo());\n }, s = () => {\n Gt ? n.removeEventListener(\"keydown\", i) : n.removeEventListener(\"keydown\", o);\n };\n return Gt ? n.addEventListener(\"keydown\", i) : n.addEventListener(\"keydown\", o), {\n destroy: s\n };\n};\nconst Gi = (e, t = {}) => {\n if (!e)\n throw \"Missing argument: image\";\n const n = typeof e == \"string\" ? document.getElementById(e) : e, o = wi(t), i = pi(o), { selection: s, store: r } = i, a = Wn(r), l = Kn(\n i,\n a,\n o.adapter,\n o.autoSave\n ), d = document.createElement(\"DIV\");\n d.style.position = \"relative\", d.style.display = \"inline-block\", n.style.display = \"block\", n.parentNode.insertBefore(d, n), d.appendChild(n);\n const h = bi(a);\n let c = no();\n Nt(n, d, o.theme);\n const g = new si({\n target: d,\n props: {\n drawingEnabled: o.drawingEnabled,\n image: n,\n preferredDrawingMode: o.drawingMode,\n state: i,\n style: o.style,\n user: c\n }\n });\n g.$on(\"click\", (y) => {\n const { originalEvent: A, annotation: E } = y.detail;\n E ? s.clickSelect(E.id, A) : s.isEmpty() || s.clear();\n });\n const u = Qn(i, a, o.adapter), m = () => {\n g.$destroy(), d.parentNode.insertBefore(n, d), d.parentNode.removeChild(d), h.destroy(), a.destroy();\n }, w = () => c, b = (y, A, E) => Uo(y, A, E), _ = (y, A) => yo(y, A), p = (y) => {\n const { tool: A, opts: E } = $t(y);\n g.$set({ tool: A, opts: E });\n }, T = (y) => g.$set({ drawingEnabled: y }), S = (y) => {\n console.warn(\"Filter not implemented yet\");\n }, I = (y) => g.$set({ style: y }), R = (y) => Nt(n, d, y), N = (y) => {\n c = y, g.$set({ user: y });\n };\n return {\n ...u,\n destroy: m,\n getUser: w,\n listDrawingTools: Yo,\n on: l.on,\n off: l.off,\n registerDrawingTool: b,\n registerShapeEditor: _,\n setDrawingEnabled: T,\n setDrawingTool: p,\n setFilter: S,\n setStyle: I,\n setTheme: R,\n setUser: N,\n state: i\n };\n};\nvar Ei = /* @__PURE__ */ ((e) => (e.EDIT = \"EDIT\", e.SELECT = \"SELECT\", e.NONE = \"NONE\", e))(Ei || {});\nconst Vi = (e) => {\n const { creator: t, updatedBy: n } = e.target, o = e.bodies.reduce((i, s) => [...i, s.creator, s.updatedBy], []);\n return [\n t,\n n,\n ...o\n ].filter((i) => i);\n}, zi = (e, t, n, o) => ({\n id: ct(),\n annotation: e.id,\n created: n || /* @__PURE__ */ new Date(),\n creator: o,\n ...t\n});\nvar Vt = Object.prototype.hasOwnProperty;\nfunction He(e, t) {\n var n, o;\n if (e === t)\n return !0;\n if (e && t && (n = e.constructor) === t.constructor) {\n if (n === Date)\n return e.getTime() === t.getTime();\n if (n === RegExp)\n return e.toString() === t.toString();\n if (n === Array) {\n if ((o = e.length) === t.length)\n for (; o-- && He(e[o], t[o]); )\n ;\n return o === -1;\n }\n if (!n || typeof e == \"object\") {\n o = 0;\n for (n in e)\n if (Vt.call(e, n) && ++o && !Vt.call(t, n) || !(n in t) || !He(e[n], t[n]))\n return !1;\n return Object.keys(t).length === o;\n }\n }\n return e !== e && t !== t;\n}\nconst Ai = (e, t) => {\n const n = new Set(e.bodies.map((o) => o.id));\n return t.bodies.filter((o) => !n.has(o.id));\n}, Ti = (e, t) => {\n const n = new Set(t.bodies.map((o) => o.id));\n return e.bodies.filter((o) => !n.has(o.id));\n}, Si = (e, t) => t.bodies.map((n) => {\n const o = e.bodies.find((i) => i.id === n.id);\n return { newBody: n, oldBody: o && !He(o, n) ? o : void 0 };\n}).filter(({ oldBody: n }) => n), vi = (e, t) => !He(e.target, t.target), Fi = (e, t) => {\n const n = Ai(e, t), o = Ti(e, t), i = Si(e, t);\n return {\n oldValue: e,\n newValue: t,\n bodiesCreated: n.length > 0 ? n : void 0,\n bodiesDeleted: o.length > 0 ? o : void 0,\n bodiesUpdated: i.length > 0 ? i : void 0,\n targetUpdated: vi(e, t) ? { oldTarget: e.target, newTarget: t.target } : void 0\n };\n};\nvar Be = /* @__PURE__ */ ((e) => (e.LOCAL = \"LOCAL\", e.REMOTE = \"REMOTE\", e))(Be || {});\nlet Mi = () => ({\n emit(e, ...t) {\n let n = this.events[e] || [];\n for (let o = 0, i = n.length; o < i; o++)\n n[o](...t);\n },\n events: {},\n on(e, t) {\n var n;\n return (n = this.events[e]) != null && n.push(t) || (this.events[e] = [t]), () => {\n var o;\n this.events[e] = (o = this.events[e]) == null ? void 0 : o.filter((i) => t !== i);\n };\n }\n});\nconst Hi = (e) => (t) => t.map((n) => e.serialize(n)), Oi = (e) => (t) => t.reduce((n, o) => {\n const { parsed: i, error: s } = e.parse(o);\n return s ? {\n parsed: n.parsed,\n failed: [...n.failed, o]\n } : {\n parsed: [...n.parsed, i],\n failed: n.failed\n };\n}, { parsed: [], failed: [] }), ji = (e, t, n) => {\n const { store: o, selection: i } = e, s = (b) => {\n if (n) {\n const { parsed: _, error: p } = n.parse(b);\n _ ? o.addAnnotation(_, Be.REMOTE) : console.error(p);\n } else\n o.addAnnotation(b, Be.REMOTE);\n }, r = () => i.clear(), a = () => o.clear(), l = (b) => {\n const _ = o.getAnnotation(b);\n return n && _ ? n.serialize(_) : _;\n }, d = () => n ? o.all().map(n.serialize) : o.all(), h = () => {\n var p;\n const _ = (((p = i.selected) == null ? void 0 : p.map((T) => T.id)) || []).map((T) => o.getAnnotation(T));\n return n ? _.map(n.serialize) : _;\n }, c = (b) => fetch(b).then((_) => _.json()).then((_) => (u(_), _)), g = (b) => {\n if (typeof b == \"string\") {\n const _ = o.getAnnotation(b);\n return o.deleteAnnotation(b), n ? n.serialize(_) : _;\n } else {\n const _ = n ? n.parse(b).parsed : b;\n return o.deleteAnnotation(_), b;\n }\n }, u = (b) => {\n if (n) {\n const { parsed: _, failed: p } = Oi(n)(b);\n p.length > 0 && console.warn(`Discarded ${p.length} invalid annotations`, p), o.bulkAddAnnotation(_, !0, Be.REMOTE);\n } else\n o.bulkAddAnnotation(b, !0, Be.REMOTE);\n }, m = (b) => {\n b ? i.setSelected(b) : i.clear();\n }, w = (b) => {\n if (n) {\n const _ = n.parse(b).parsed, p = n.serialize(o.getAnnotation(_.id));\n return o.updateAnnotation(_), p;\n } else {\n const _ = o.getAnnotation(b.id);\n return o.updateAnnotation(b), _;\n }\n };\n return {\n addAnnotation: s,\n cancelSelected: r,\n canRedo: t.canRedo,\n canUndo: t.canUndo,\n clearAnnotations: a,\n getAnnotationById: l,\n getAnnotations: d,\n getSelected: h,\n loadAnnotations: c,\n redo: t.redo,\n removeAnnotation: g,\n setAnnotations: u,\n setSelected: m,\n undo: t.undo,\n updateAnnotation: w\n };\n};\nlet Li = (e) => crypto.getRandomValues(new Uint8Array(e)), ki = (e, t, n) => {\n let o = (2 << Math.log(e.length - 1) / Math.LN2) - 1, i = -~(1.6 * o * t / e.length);\n return (s = t) => {\n let r = \"\";\n for (; ; ) {\n let a = n(i), l = i;\n for (; l--; )\n if (r += e[a[l] & o] || \"\", r.length === s)\n return r;\n }\n };\n}, Bi = (e, t = 21) => ki(e, t, Li), Ii = (e = 21) => crypto.getRandomValues(new Uint8Array(e)).reduce((t, n) => (n &= 63, n < 36 ? t += n.toString(36) : n < 62 ? t += (n - 26).toString(36).toUpperCase() : n > 62 ? t += \"-\" : t += \"_\", t), \"\");\nconst qi = () => ({ isGuest: !0, id: Bi(\"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_\", 20)() }), Ci = (e) => {\n const t = JSON.stringify(e);\n let n = 0;\n for (let o = 0, i = t.length; o < i; o++) {\n let s = t.charCodeAt(o);\n n = (n << 5) - n + s, n |= 0;\n }\n return `${n}`;\n}, Wi = (e, t) => (Array.isArray(e) ? e : [e]).map((n) => {\n const { id: o, type: i, purpose: s, value: r, created: a, creator: l, ...d } = n;\n return {\n id: o || `temp-${Ci(n)}`,\n annotation: t,\n type: i,\n purpose: s,\n value: r,\n created: a,\n creator: l ? typeof l == \"object\" ? { ...l } : l : void 0,\n ...d\n };\n}), Ji = (e) => e.map((t) => {\n var o;\n const n = { ...t };\n return delete n.annotation, (o = n.id) != null && o.startsWith(\"temp-\") && delete n.id, n;\n}), Pi = [\n \"#ff7c00\",\n // orange\n \"#1ac938\",\n // green\n \"#e8000b\",\n // red\n \"#8b2be2\",\n // purple\n \"#9f4800\",\n // brown\n \"#f14cc1\",\n // pink\n \"#ffc400\",\n // khaki\n \"#00d7ff\",\n // cyan\n \"#023eff\"\n // blue\n], Ri = () => {\n const e = [...Pi];\n return { assignRandomColor: () => {\n const o = Math.floor(Math.random() * e.length), i = e[o];\n return e.splice(o, 1), i;\n }, releaseColor: (o) => e.push(o) };\n}, Yi = () => {\n const e = Ri();\n return { addUser: (o, i) => {\n const s = e.assignRandomColor();\n return {\n label: i.name || i.id,\n avatar: i.avatar,\n color: s\n };\n }, removeUser: (o) => e.releaseColor(o.appearance.color) };\n}, Ui = (e, t) => e.every((n) => e.includes(n)) && t.every((n) => e.includes(n)), Ki = Ii(), Zi = (e = Yi()) => {\n const t = Mi(), n = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), i = (c, g) => {\n if (n.has(c)) {\n console.warn(\"Attempt to add user that is already present\", c, g);\n return;\n }\n const u = e.addUser(c, g);\n n.set(c, {\n ...g,\n presenceKey: c,\n appearance: u\n });\n }, s = (c) => {\n const g = n.get(c);\n if (!g) {\n console.warn(\"Attempt to remove user that is not present\", c);\n return;\n }\n e.removeUser(g), n.delete(c);\n }, r = (c) => {\n const g = new Set(c.map((w) => w.presenceKey)), u = c.filter(({ presenceKey: w }) => !n.has(w)), m = Array.from(n.values()).filter((w) => !g.has(w.presenceKey));\n u.forEach(({ presenceKey: w, user: b }) => i(w, b)), m.forEach((w) => {\n const { presenceKey: b } = w;\n o.has(b) && t.emit(\"selectionChange\", w, null), s(b);\n }), (u.length > 0 || m.length > 0) && t.emit(\"presence\", d());\n }, a = (c, g) => {\n const u = n.get(c);\n if (!u) {\n console.warn(\"Activity notification from user that is not present\");\n return;\n }\n const m = o.get(c);\n (!m || !Ui(m, g)) && (o.set(c, g), t.emit(\"selectionChange\", u, g));\n }, l = (c, g) => {\n const u = n.get(c);\n if (!u) {\n console.warn(\"Selection change for user that is not present\", c);\n return;\n }\n g ? o.set(c, g) : o.delete(c), t.emit(\"selectionChange\", u, g);\n }, d = () => [...Array.from(n.values())];\n return {\n getPresentUsers: d,\n notifyActivity: a,\n on: (c, g) => t.on(c, g),\n syncUsers: r,\n updateSelection: l\n };\n};\nexport {\n xt as Editor,\n Ao as EditorMount,\n O as Handle,\n Ni as IdentityTransform,\n Be as Origin,\n Ki as PRESENCE_KEY,\n Ei as PointerSelectAction,\n fo as PolygonEditor,\n po as RectangleEditor,\n _n as RectangleUtil,\n Oo as RubberbandRectangle,\n si as SVGAnnotationLayer,\n F as ShapeType,\n So as ToolMount,\n Di as W3CImageFormat,\n Zo as addEventListeners,\n Fe as boundsFromPoints,\n st as computeArea,\n qi as createAnonymousGuest,\n ji as createBaseAnnotator,\n zi as createBody,\n Yi as createDefaultAppearenceProvider,\n Gi as createImageAnnotator,\n mi as createImageAnnotatorState,\n Zi as createPresenceState,\n Jo as createSVGTransform,\n pi as createSvelteImageAnnotatorState,\n Ri as defaultColorProvider,\n _i as detectTheme,\n Fi as diffAnnotations,\n xe as distance,\n Bo as enableResponsive,\n wi as fillDefaults,\n Vi as getContributors,\n St as getEditor,\n $t as getTool,\n bi as initKeyboardCommands,\n mn as intersects,\n Xi as isTouch,\n Yo as listDrawingTools,\n Oi as parseAll,\n wn as parseFragmentSelector,\n vn as parseSVGSelector,\n Wi as parseW3CBodies,\n ro as parseW3CImageAnnotation,\n yo as registerEditor,\n at as registerShapeUtil,\n Uo as registerTool,\n yi as sampleBrightness,\n Hi as serializeAll,\n bn as serializeFragmentSelector,\n Mn as serializeSVGSelector,\n Ji as serializeW3CBodies,\n lo as serializeW3CImageAnnotation,\n Nt as setTheme\n};\n//# sourceMappingURL=annotorious.es.js.map\n"],"names":["V","tn","e","t","zt","ht","re","Z","nn","Ft","gt","on","i","Ht","sn","s","r","a","rn","ln","ae","k","rt","U","jt","ee","le","W","f","an","mt","cn","Ce","Ie","qt","Pe","ve","Te","Ee","ze","Se","pt","dn","ot","un","Wt","it","Ke","ye","fn","hn","Ve","fe","ie","se","D","X","ge","ce","de","gn","te","h","u","ne","lt","at","st","mn","Fe","yn","_n","wn","w","bn","Jt","yt","En","o","An","n","Tn","Sn","vn","Mn","Xe","On","Ln","q","kn","Bn","_t","ct","wt","he","Ze","In","_e","dt","Cn","Kt","Qe","Pn","Rn","Yn","Un","Dn","Xn","Zt","G","Gn","zn","Fn","y","A","E","v","B","Y","Q","b","_","p","T","S","I","N","Hn","jn","qn","Wn","Jn","Kn","R","Zn","Qn","xn","$n","eo","to","no","oo","io","so","Di","ro","lo","bt","Et","ao","At","Tt","co","xt","uo","fo","ho","me","pe","Me","K","C","J","z","j","oe","ue","qe","x","Re","Ye","We","$","Ue","De","Je","ft","P","M","go","mo","Qt","St","yo","_o","vt","wo","bo","je","Eo","Ao","To","So","Mt","vo","Mo","Oo","xe","we","Lo","ko","Bo","l","d","$e","Ot","Lt","Io","Co","Po","Ro","ut","Yo","$t","Uo","Do","Xo","Go","zo","Fo","Ho","jo","qo","Wo","Jo","Ko","Zo","Qo","kt","Bt","et","It","Ct","xo","$o","ei","Pt","Rt","ni","ti","Yt","Dt","Ut","oi","ii","si","ri","en","li","Oe","ai","Ge","nt","Ae","ci","be","Xt","tt","fi","ke","Le","hi","di","ui","Ne","gi","c","g","m","mi","pi","yi","_i","Nt","wi","Gt","bi","Gi","Ii"],"mappings":"AAAA,SAASA,IAAI;AACb;AACA,SAASC,GAAGC,GAAGC,GAAG;AAChB,aAAW,KAAKA;AACd,IAAAD,EAAE,CAAC,IAAIC,EAAE,CAAC;AACZ,SAAOD;AACT;AACA,SAASE,GAAGF,GAAG;AACb,SAAOA,EAAC;AACV;AACA,SAASG,KAAK;AACZ,SAAuB,uBAAO,OAAO,IAAI;AAC3C;AACA,SAASC,GAAGJ,GAAG;AACb,EAAAA,EAAE,QAAQE,EAAE;AACd;AACA,SAAS,EAAEF,GAAG;AACZ,SAAO,OAAOA,KAAK;AACrB;AACA,SAASK,EAAEL,GAAGC,GAAG;AACf,SAAOD,KAAKA,IAAIC,KAAKA,IAAID,MAAMC,KAAKD,KAAK,OAAOA,KAAK,YAAY,OAAOA,KAAK;AAC/E;AACA,SAASM,GAAGN,GAAG;AACb,SAAO,OAAO,KAAKA,CAAC,EAAE,WAAW;AACnC;AACA,SAASO,GAAGP,MAAMC,GAAG;AACnB,MAAID,KAAK;AACP,WAAOF;AACT,QAAM,IAAIE,EAAE,UAAU,GAAGC,CAAC;AAC1B,SAAO,EAAE,cAAc,MAAM,EAAE,YAAW,IAAK;AACjD;AACA,SAASO,GAAGR,GAAGC,GAAG,GAAG;AACnB,EAAAD,EAAE,GAAG,WAAW,KAAKO,GAAGN,GAAG,CAAC,CAAC;AAC/B;AACA,SAASQ,GAAGT,GAAGC,GAAG,GAAG,GAAG;AACtB,MAAID,GAAG;AACL,UAAMU,IAAIC,GAAGX,GAAGC,GAAG,GAAG,CAAC;AACvB,WAAOD,EAAE,CAAC,EAAEU,CAAC;AAAA,EACd;AACH;AACA,SAASC,GAAGX,GAAGC,GAAG,GAAG,GAAG;AACtB,SAAOD,EAAE,CAAC,KAAK,IAAID,GAAG,EAAE,IAAI,MAAK,GAAIC,EAAE,CAAC,EAAE,EAAEC,CAAC,CAAC,CAAC,IAAI,EAAE;AACvD;AACA,SAASW,GAAGZ,GAAGC,GAAG,GAAG,GAAG;AACtB,MAAID,EAAE,CAAC,KAAK,GAAG;AACb,UAAMU,IAAIV,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACnB,QAAIC,EAAE,UAAU;AACd,aAAOS;AACT,QAAI,OAAOA,KAAK,UAAU;AACxB,YAAMG,IAAI,CAAA,GAAIC,IAAI,KAAK,IAAIb,EAAE,MAAM,QAAQS,EAAE,MAAM;AACnD,eAASK,IAAI,GAAGA,IAAID,GAAGC,KAAK;AAC1B,QAAAF,EAAEE,CAAC,IAAId,EAAE,MAAMc,CAAC,IAAIL,EAAEK,CAAC;AACzB,aAAOF;AAAA,IACR;AACD,WAAOZ,EAAE,QAAQS;AAAA,EAClB;AACD,SAAOT,EAAE;AACX;AACA,SAASe,GAAGhB,GAAGC,GAAG,GAAG,GAAGS,GAAGG,GAAG;AAC5B,MAAIH,GAAG;AACL,UAAMI,IAAIH,GAAGV,GAAG,GAAG,GAAGY,CAAC;AACvB,IAAAb,EAAE,EAAEc,GAAGJ,CAAC;AAAA,EACT;AACH;AACA,SAASO,GAAGjB,GAAG;AACb,MAAIA,EAAE,IAAI,SAAS,IAAI;AACrB,UAAMC,IAAI,CAAA,GAAI,IAAID,EAAE,IAAI,SAAS;AACjC,aAAS,IAAI,GAAG,IAAI,GAAG;AACrB,MAAAC,EAAE,CAAC,IAAI;AACT,WAAOA;AAAA,EACR;AACD,SAAO;AACT;AACA,SAASiB,GAAGlB,GAAGC,GAAG;AAChB,EAAAD,EAAE,YAAYC,CAAC;AACjB;AACA,SAASkB,EAAEnB,GAAGC,GAAG,GAAG;AAClB,EAAAD,EAAE,aAAaC,GAAG,KAAK,IAAI;AAC7B;AACA,SAAS,EAAED,GAAG;AACZ,EAAAA,EAAE,cAAcA,EAAE,WAAW,YAAYA,CAAC;AAC5C;AACA,SAASoB,GAAGpB,GAAGC,GAAG;AAChB,WAAS,IAAI,GAAG,IAAID,EAAE,QAAQ,KAAK;AACjC,IAAAA,EAAE,CAAC,KAAKA,EAAE,CAAC,EAAE,EAAEC,CAAC;AACpB;AACA,SAASoB,EAAErB,GAAG;AACZ,SAAO,SAAS,gBAAgB,8BAA8BA,CAAC;AACjE;AACA,SAASsB,GAAGtB,GAAG;AACb,SAAO,SAAS,eAAeA,CAAC;AAClC;AACA,SAASuB,KAAK;AACZ,SAAOD,GAAG,GAAG;AACf;AACA,SAASE,KAAK;AACZ,SAAOF,GAAG,EAAE;AACd;AACA,SAASG,EAAEzB,GAAGC,GAAG,GAAG,GAAG;AACrB,SAAOD,EAAE,iBAAiBC,GAAG,GAAG,CAAC,GAAG,MAAMD,EAAE,oBAAoBC,GAAG,GAAG,CAAC;AACzE;AACA,SAASyB,EAAE1B,GAAGC,GAAG,GAAG;AAClB,OAAK,OAAOD,EAAE,gBAAgBC,CAAC,IAAID,EAAE,aAAaC,CAAC,MAAM,KAAKD,EAAE,aAAaC,GAAG,CAAC;AACnF;AACA,SAAS0B,GAAG3B,GAAG;AACb,SAAO,MAAM,KAAKA,EAAE,UAAU;AAChC;AACA,SAAS4B,GAAG5B,GAAGC,GAAG,GAAG;AACnB,EAAAD,EAAE,UAAU,IAAI,QAAQ,QAAQ,EAAEC,CAAC;AACrC;AACA,SAAS4B,GAAG7B,GAAGC,GAAG,EAAE,SAAS,IAAI,IAAI,YAAY,IAAI,GAAE,IAAK,CAAA,GAAI;AAC9D,QAAMS,IAAI,SAAS,YAAY,aAAa;AAC5C,SAAOA,EAAE,gBAAgBV,GAAG,GAAG,GAAGC,CAAC,GAAGS;AACxC;AACA,IAAIoB;AACJ,SAASC,GAAG/B,GAAG;AACb,EAAA8B,KAAK9B;AACP;AACA,SAASgC,KAAK;AACZ,MAAI,CAACF;AACH,UAAM,IAAI,MAAM,kDAAkD;AACpE,SAAOA;AACT;AACA,SAASG,GAAGjC,GAAG;AACb,EAAAgC,GAAI,EAAC,GAAG,SAAS,KAAKhC,CAAC;AACzB;AACA,SAASkC,KAAK;AACZ,QAAMlC,IAAIgC;AACV,SAAO,CAAC/B,GAAG,GAAG,EAAE,YAAY,IAAI,GAAI,IAAG,OAAO;AAC5C,UAAMS,IAAIV,EAAE,GAAG,UAAUC,CAAC;AAC1B,QAAIS,GAAG;AACL,YAAMG,IAAIgB,GAAG5B,GAAG,GAAG,EAAE,YAAY,EAAC,CAAE;AACpC,aAAOS,EAAE,MAAK,EAAG,QAAQ,CAACI,MAAM;AAC9B,QAAAA,EAAE,KAAKd,GAAGa,CAAC;AAAA,MACnB,CAAO,GAAG,CAACA,EAAE;AAAA,IACR;AACD,WAAO;AAAA,EACX;AACA;AACA,SAASsB,GAAGnC,GAAGC,GAAG;AAChB,QAAM,IAAID,EAAE,GAAG,UAAUC,EAAE,IAAI;AAC/B,OAAK,EAAE,MAAO,EAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,MAAMA,CAAC,CAAC;AAC/C;AACA,MAAMmC,KAAK,CAAA,GAAIC,KAAK;AACpB,IAAIC,KAAK,CAAA;AACT,MAAMC,KAAK,CAAA,GAAIC,KAAqB,wBAAQ,QAAO;AACnD,IAAIC,KAAK;AACT,SAASC,KAAK;AACZ,EAAAD,OAAOA,KAAK,IAAID,GAAG,KAAKG,EAAE;AAC5B;AACA,SAASC,GAAG5C,GAAG;AACb,EAAAsC,GAAG,KAAKtC,CAAC;AACX;AACA,MAAM6C,KAAqB,oBAAI;AAC/B,IAAIC,KAAK;AACT,SAASH,KAAK;AACZ,MAAIG,OAAO;AACT;AACF,QAAM9C,IAAI8B;AACV,KAAG;AACD,QAAI;AACF,aAAOgB,KAAKV,GAAG,UAAU;AACvB,cAAMnC,IAAImC,GAAGU,EAAE;AACf,QAAAA,MAAMf,GAAG9B,CAAC,GAAG8C,GAAG9C,EAAE,EAAE;AAAA,MACrB;AAAA,IACF,SAAQA,GAAG;AACV,YAAMmC,GAAG,SAAS,GAAGU,KAAK,GAAG7C;AAAA,IAC9B;AACD,SAAK8B,GAAG,IAAI,GAAGK,GAAG,SAAS,GAAGU,KAAK,GAAGT,GAAG;AACvC,MAAAA,GAAG,IAAG;AACR,aAASpC,IAAI,GAAGA,IAAIqC,GAAG,QAAQrC,KAAK,GAAG;AACrC,YAAM,IAAIqC,GAAGrC,CAAC;AACd,MAAA4C,GAAG,IAAI,CAAC,MAAMA,GAAG,IAAI,CAAC,GAAG,EAAC;AAAA,IAC3B;AACD,IAAAP,GAAG,SAAS;AAAA,EAChB,SAAWF,GAAG;AACZ,SAAOG,GAAG;AACR,IAAAA,GAAG,IAAG;AACR,EAAAE,KAAK,IAAII,GAAG,MAAK,GAAId,GAAG/B,CAAC;AAC3B;AACA,SAAS+C,GAAG/C,GAAG;AACb,MAAIA,EAAE,aAAa,MAAM;AACvB,IAAAA,EAAE,OAAQ,GAAEI,GAAGJ,EAAE,aAAa;AAC9B,UAAMC,IAAID,EAAE;AACZ,IAAAA,EAAE,QAAQ,CAAC,EAAE,GAAGA,EAAE,YAAYA,EAAE,SAAS,EAAEA,EAAE,KAAKC,CAAC,GAAGD,EAAE,aAAa,QAAQ4C,EAAE;AAAA,EAChF;AACH;AACA,SAASI,GAAGhD,GAAG;AACb,QAAMC,IAAI,CAAA,GAAI,IAAI;AAClB,EAAAqC,GAAG,QAAQ,CAAC,MAAMtC,EAAE,QAAQ,CAAC,MAAM,KAAKC,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,EAAC,CAAE,GAAGqC,KAAKrC;AAC9F;AACA,MAAMgD,KAAqB,oBAAI;AAC/B,IAAIC;AACJ,SAASC,KAAK;AACZ,EAAAD,KAAK;AAAA,IACH,GAAG;AAAA,IACH,GAAG,CAAE;AAAA,IACL,GAAGA;AAAA;AAAA,EAEP;AACA;AACA,SAASE,KAAK;AACZ,EAAAF,GAAG,KAAK9C,GAAG8C,GAAG,CAAC,GAAGA,KAAKA,GAAG;AAC5B;AACA,SAASG,EAAErD,GAAGC,GAAG;AACf,EAAAD,KAAKA,EAAE,MAAMiD,GAAG,OAAOjD,CAAC,GAAGA,EAAE,EAAEC,CAAC;AAClC;AACA,SAASqD,EAAEtD,GAAGC,GAAG,GAAG,GAAG;AACrB,MAAID,KAAKA,EAAE,GAAG;AACZ,QAAIiD,GAAG,IAAIjD,CAAC;AACV;AACF,IAAAiD,GAAG,IAAIjD,CAAC,GAAGkD,GAAG,EAAE,KAAK,MAAM;AACzB,MAAAD,GAAG,OAAOjD,CAAC,GAAG,MAAM,KAAKA,EAAE,EAAE,CAAC,GAAG,EAAG;AAAA,IACrC,CAAA,GAAGA,EAAE,EAAEC,CAAC;AAAA,EACV;AACC,SAAK,EAAC;AACV;AACA,SAASsD,GAAGvD,GAAG;AACb,EAAAA,KAAKA,EAAE;AACT;AACA,SAASwD,GAAGxD,GAAGC,GAAG,GAAG,GAAG;AACtB,QAAM,EAAE,UAAUS,GAAG,cAAcG,EAAG,IAAGb,EAAE;AAC3C,EAAAU,KAAKA,EAAE,EAAET,GAAG,CAAC,GAAG,KAAK2C,GAAG,MAAM;AAC5B,UAAM9B,IAAId,EAAE,GAAG,SAAS,IAAIE,EAAE,EAAE,OAAO,CAAC;AACxC,IAAAF,EAAE,GAAG,aAAaA,EAAE,GAAG,WAAW,KAAK,GAAGc,CAAC,IAAIV,GAAGU,CAAC,GAAGd,EAAE,GAAG,WAAW;EACvE,CAAA,GAAGa,EAAE,QAAQ+B,EAAE;AAClB;AACA,SAASa,GAAGzD,GAAGC,GAAG;AAChB,QAAM,IAAID,EAAE;AACZ,IAAE,aAAa,SAASgD,GAAG,EAAE,YAAY,GAAG5C,GAAG,EAAE,UAAU,GAAG,EAAE,YAAY,EAAE,SAAS,EAAEH,CAAC,GAAG,EAAE,aAAa,EAAE,WAAW,MAAM,EAAE,MAAM,CAAE;AAC3I;AACA,SAASyD,GAAG1D,GAAGC,GAAG;AAChB,EAAAD,EAAE,GAAG,MAAM,CAAC,MAAM,OAAOoC,GAAG,KAAKpC,CAAC,GAAG0C,GAAI,GAAE1C,EAAE,GAAG,MAAM,KAAK,CAAC,IAAIA,EAAE,GAAG,MAAMC,IAAI,KAAK,CAAC,KAAK,KAAKA,IAAI;AACrG;AACA,SAAS0D,GAAG3D,GAAGC,GAAG,GAAG,GAAGS,GAAGG,GAAGC,GAAGC,IAAI,CAAC,EAAE,GAAG;AACzC,QAAM,IAAIe;AACV,EAAAC,GAAG/B,CAAC;AACJ,QAAM,IAAIA,EAAE,KAAK;AAAA,IACf,UAAU;AAAA,IACV,KAAK,CAAE;AAAA;AAAA,IAEP,OAAOa;AAAA,IACP,QAAQf;AAAA,IACR,WAAWY;AAAA,IACX,OAAOP,GAAI;AAAA;AAAA,IAEX,UAAU,CAAE;AAAA,IACZ,YAAY,CAAE;AAAA,IACd,eAAe,CAAE;AAAA,IACjB,eAAe,CAAE;AAAA,IACjB,cAAc,CAAE;AAAA,IAChB,SAAS,IAAI,IAAIF,EAAE,YAAY,IAAI,EAAE,GAAG,UAAU,CAAA,EAAG;AAAA;AAAA,IAErD,WAAWE,GAAI;AAAA,IACf,OAAOY;AAAA,IACP,YAAY;AAAA,IACZ,MAAMd,EAAE,UAAU,EAAE,GAAG;AAAA,EAC3B;AACE,EAAAa,KAAKA,EAAE,EAAE,IAAI;AACb,MAAI8C,IAAI;AACR,MAAI,EAAE,MAAM,IAAI,EAAE5D,GAAGC,EAAE,SAAS,CAAE,GAAE,CAAC,GAAG,MAAM4D,MAAM;AAClD,UAAM,IAAIA,EAAE,SAASA,EAAE,CAAC,IAAI;AAC5B,WAAO,EAAE,OAAOnD,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,GAAGkD,KAAKF,GAAG1D,GAAG,CAAC,IAAI;AAAA,EAChH,CAAG,IAAI,CAAA,GAAI,EAAE,OAAQ,GAAE4D,IAAI,IAAIxD,GAAG,EAAE,aAAa,GAAG,EAAE,WAAW,IAAI,EAAE,EAAE,GAAG,IAAI,IAAIH,EAAE,QAAQ;AAC1F,QAAIA,EAAE,SAAS;AACb,YAAM,IAAI0B,GAAG1B,EAAE,MAAM;AACrB,QAAE,YAAY,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC;AAAA,IAC3C;AACC,QAAE,YAAY,EAAE,SAAS,EAAC;AAC5B,IAAAA,EAAE,SAASoD,EAAErD,EAAE,GAAG,QAAQ,GAAGwD,GAAGxD,GAAGC,EAAE,QAAQA,EAAE,QAAQA,EAAE,aAAa,GAAG0C;EAC1E;AACD,EAAAZ,GAAG,CAAC;AACN;AACA,MAAM+B,GAAG;AAAA,EACP,WAAW;AACT,IAAAL,GAAG,MAAM,CAAC,GAAG,KAAK,WAAW3D;AAAA,EAC9B;AAAA,EACD,IAAIG,GAAG,GAAG;AACR,QAAI,CAAC,EAAE,CAAC;AACN,aAAOH;AACT,UAAM,IAAI,KAAK,GAAG,UAAUG,CAAC,MAAM,KAAK,GAAG,UAAUA,CAAC,IAAI,CAAE;AAC5D,WAAO,EAAE,KAAK,CAAC,GAAG,MAAM;AACtB,YAAMS,IAAI,EAAE,QAAQ,CAAC;AACrB,MAAAA,MAAM,MAAM,EAAE,OAAOA,GAAG,CAAC;AAAA,IAC/B;AAAA,EACG;AAAA,EACD,KAAKT,GAAG;AACN,SAAK,SAAS,CAACK,GAAGL,CAAC,MAAM,KAAK,GAAG,aAAa,IAAI,KAAK,MAAMA,CAAC,GAAG,KAAK,GAAG,aAAa;AAAA,EACvF;AACH;AACG,IAAC,IAAqB,kBAACD,OAAOA,EAAE,UAAU,WAAWA,EAAE,UAAU,WAAWA,EAAE,YAAY,aAAaA,IAAI,KAAK,EAAE;AAChH,MAAC+D,KAAK,CAAE,GAAEC,KAAK,CAAChE,GAAGC,MAAM8D,GAAG/D,CAAC,IAAIC,GAAGgE,KAAK,CAACjE,MAAM+D,GAAG/D,EAAE,IAAI,EAAE,KAAKA,CAAC,GAAGkE,KAAK,CAAClE,GAAGC,GAAG,MAAM8D,GAAG/D,EAAE,IAAI,EAAE,WAAWA,GAAGC,GAAG,CAAC,GAAGkE,KAAK,CAACnE,MAAM;AACrI,MAAIC,IAAI,OAAO,IAAI,IAAI,GAAG,IAAI,KAAK,GAAGS,IAAI,KAAK;AAC/C,SAAOV,EAAE,QAAQ,CAAC,CAACa,GAAGC,CAAC,MAAM;AAC3B,IAAAb,IAAI,KAAK,IAAIA,GAAGY,CAAC,GAAG,IAAI,KAAK,IAAI,GAAGC,CAAC,GAAG,IAAI,KAAK,IAAI,GAAGD,CAAC,GAAGH,IAAI,KAAK,IAAIA,GAAGI,CAAC;AAAA,EACjF,CAAG,GAAG,EAAE,MAAMb,GAAG,MAAM,GAAG,MAAM,GAAG,MAAMS;AACzC,GAAG,KAAK;AAAA,EACN,MAAM,CAACV,MAAM,KAAK,KAAKA,EAAE,SAAS,KAAKA,EAAE,SAAS;AAAA,EAClD,YAAY,CAACA,GAAGC,GAAG,MAAM;AACvB,UAAM,EAAE,IAAI,GAAG,IAAIS,GAAG,IAAIG,GAAG,IAAIC,EAAC,IAAKd,EAAE,UAAUe,IAAI,GAAG,IAAI,KAAK,IAAIA,CAAC,GAAG,IAAI,KAAK,IAAIA,CAAC,GAAG6C,IAAI3D,IAAI,GAAG,IAAI,IAAIS,GAAG,IAAI,IAAIkD,IAAI,IAAI,GAAGC,IAAI,IAAID,IAAI,IAAI;AACrJ,WAAO,IAAI,KAAK/C,IAAIA,KAAKgD,IAAIA,KAAK/C,IAAIA,MAAM;AAAA,EAC7C;AACH;AACAkD,GAAG,EAAE,SAAS,EAAE;AAChB,MAAMI,KAAK;AAAA,EACT,MAAM,CAACpE,MAAM;AACX,UAAM,EAAE,QAAQC,MAAMD,EAAE;AACxB,QAAI,IAAI,GAAG,IAAIC,EAAE,SAAS;AAC1B,aAASS,IAAI,GAAGA,IAAIT,EAAE,QAAQS;AAC5B,YAAMT,EAAE,CAAC,EAAE,CAAC,IAAIA,EAAES,CAAC,EAAE,CAAC,MAAMT,EAAE,CAAC,EAAE,CAAC,IAAIA,EAAES,CAAC,EAAE,CAAC,IAAI,IAAIA;AACtD,WAAO,KAAK,IAAI,MAAM,CAAC;AAAA,EACxB;AAAA,EACD,YAAY,CAACV,GAAGC,GAAG,MAAM;AACvB,UAAM,EAAE,QAAQ,MAAMD,EAAE;AACxB,QAAIU,IAAI;AACR,aAASG,IAAI,GAAGC,IAAI,EAAE,SAAS,GAAGD,IAAI,EAAE,QAAQC,IAAID,KAAK;AACvD,YAAME,IAAI,EAAEF,CAAC,EAAE,CAAC,GAAG,IAAI,EAAEA,CAAC,EAAE,CAAC,GAAG,IAAI,EAAEC,CAAC,EAAE,CAAC,GAAG8C,IAAI,EAAE9C,CAAC,EAAE,CAAC;AACvD,UAAI,KAAK8C,IAAI,KAAK3D,KAAK,IAAIc,MAAM,IAAI,MAAM6C,IAAI,KAAK7C,MAAML,IAAI,CAACA;AAAA,IAChE;AACD,WAAOA;AAAA,EACR;AACH;AACAsD,GAAG,EAAE,SAASI,EAAE;AACX,MAACC,KAAK;AAAA,EACT,MAAM,CAACrE,MAAMA,EAAE,SAAS,IAAIA,EAAE,SAAS;AAAA,EACvC,YAAY,CAACA,GAAGC,GAAG,MAAMA,KAAKD,EAAE,SAAS,KAAKC,KAAKD,EAAE,SAAS,IAAIA,EAAE,SAAS,KAAK,KAAKA,EAAE,SAAS,KAAK,KAAKA,EAAE,SAAS,IAAIA,EAAE,SAAS;AACxI;AACAgE,GAAG,EAAE,WAAWK,EAAE;AACb,MAACC,KAAK,CAACtE,GAAGC,IAAI,OAAO;AACxB,QAAM,IAAI,OAAOD,KAAK,WAAWA,IAAIA,EAAE,OAAO,IAAI,sDAAsDU,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAACG,GAAGC,GAAGC,GAAG,GAAG,GAAG6C,GAAG,CAAC,IAAIlD;AAC3J,MAAII,MAAM;AACR,UAAM,IAAI,MAAM,gCAAgC,CAAC;AACnD,MAAIC,KAAKA,MAAM;AACb,UAAM,IAAI,MAAM,mCAAmCA,CAAC,EAAE;AACxD,QAAM,CAAC,GAAG8C,GAAG,GAAGU,CAAC,IAAI,CAAC,GAAG,GAAGX,GAAG,CAAC,EAAE,IAAI,UAAU;AAChD,SAAO;AAAA,IACL,MAAM,EAAE;AAAA,IACR,UAAU;AAAA,MACR,GAAG;AAAA,MACH,GAAGC;AAAA,MACH,GAAG;AAAA,MACH,GAAGU;AAAA,MACH,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,MAAMtE,IAAI4D,IAAIU,IAAIV;AAAA,QAClB,MAAM,IAAI;AAAA,QACV,MAAM5D,IAAI4D,IAAIA,IAAIU;AAAA,MACnB;AAAA,IACF;AAAA,EACL;AACA,GAAGC,KAAK,CAACxE,MAAM;AACb,QAAM,EAAE,GAAGC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAGS,EAAG,IAAGV;AACnC,SAAO;AAAA,IACL,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,OAAO,cAAcC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAIS,CAAC;AAAA,EACzC;AACA,GAAG+D,KAAK,8BAA8BC,KAAK,CAAC1E,MAAM;AAChD,QAAMC,IAAI,CAAC,MAAM;AACf,UAAM,KAAK,EAAE,UAAU,EAAE,QAAQ,CAACS,MAAM;AACtC,MAAAA,EAAE,KAAK,WAAW,IAAI,KAAK,EAAE,gBAAgBA,EAAE,IAAI;AAAA,IACzD,CAAK;AAAA,EACF,GAAE,IAAIV,EAAE,qBAAqB,QAAQ;AACtC,SAAO,MAAM,KAAK,CAAC,EAAE,QAAO,EAAG,QAAQ,CAAC,MAAM,EAAE,WAAW,YAAY,CAAC,CAAC,GAAG,MAAM,KAAKA,EAAE,iBAAiB,GAAG,CAAC,EAAE,QAAQC,CAAC,GAAGD;AAC9H,GAAG2E,KAAK,CAAC3E,MAAM;AACb,QAAM4E,IAAI,IAAI,cAAe,EAAC,kBAAkB5E,EAAE,eAAe,EAAE,QAAQ,SAAS,eAAeyE,EAAE,IAAI;AACzG,SAAO,IAAI,UAAS,EAAG,gBAAgBG,GAAG,eAAe,EAAE;AAC7D,GAAGC,KAAK,CAAC7E,MAAM;AACb,QAAM8E,IAAI,IAAI,UAAS,EAAG,gBAAgB9E,GAAG,eAAe,GAAG4E,IAAIE,EAAE,aAAaL,EAAE,GAAG/D,IAAIoE,EAAE,mBAAmB,IAAI;AACpH,SAAOF,KAAKlE,IAAIgE,GAAGI,CAAC,EAAE,aAAaJ,GAAGC,GAAGG,CAAC,CAAC,EAAE;AAC/C,GAAGC,KAAK,CAAC/E,MAAM;AACb,QAAM,CAACC,GAAG,GAAG,CAAC,IAAID,EAAE,MAAM,oCAAoC,KAAK;AACnE,MAAI,CAAC;AACH;AACF,QAAMU,IAAI,EAAE,MAAM,GAAG,EAAE,IAAI,CAACG,MAAMA,EAAE,MAAM,GAAG,EAAE,IAAI,UAAU,CAAC;AAC9D,SAAO;AAAA,IACL,MAAM,EAAE;AAAA,IACR,UAAU;AAAA,MACR,QAAQH;AAAA,MACR,QAAQyD,GAAGzD,CAAC;AAAA,IACb;AAAA,EACL;AACA,GAAGsE,KAAK,CAAChF,MAAM;AACb,QAAMC,IAAI4E,GAAG7E,CAAC,GAAG,IAAI,WAAWC,EAAE,aAAa,IAAI,CAAC,GAAG,IAAI,WAAWA,EAAE,aAAa,IAAI,CAAC,GAAGS,IAAI,WAAWT,EAAE,aAAa,IAAI,CAAC,GAAGY,IAAI,WAAWZ,EAAE,aAAa,IAAI,CAAC,GAAGa,IAAI;AAAA,IAC3K,MAAM,IAAIJ;AAAA,IACV,MAAM,IAAIG;AAAA,IACV,MAAM,IAAIH;AAAA,IACV,MAAM,IAAIG;AAAA,EACd;AACE,SAAO;AAAA,IACL,MAAM,EAAE;AAAA,IACR,UAAU;AAAA,MACR,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAIH;AAAA,MACJ,IAAIG;AAAA,MACJ,QAAQC;AAAA,IACT;AAAA,EACL;AACA,GAAGmE,KAAK,CAACjF,MAAM;AACb,QAAMC,IAAI,OAAOD,KAAK,WAAWA,IAAIA,EAAE;AACvC,MAAIC,EAAE,SAAS,kBAAkB;AAC/B,WAAO8E,GAAG9E,CAAC;AACb,MAAIA,EAAE,SAAS,WAAW;AACxB,WAAO+E,GAAG/E,CAAC;AACf,GAAGiF,KAAK,CAAClF,MAAM;AACb,MAAIC;AACJ,MAAID,EAAE,SAAS,EAAE,SAAS;AACxB,UAAM,IAAIA,EAAE,UAAU,EAAE,QAAQ,EAAG,IAAG;AACtC,IAAAC,IAAI,yBAAyB,EAAE,IAAI,CAACS,MAAMA,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC;AAAA,EACjE,WAAUV,EAAE,SAAS,EAAE,SAAS;AAC/B,UAAM,IAAIA,EAAE;AACZ,IAAAC,IAAI,qBAAqB,EAAE,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,EAAE;AAAA,EACrE;AACD,MAAIA;AACF,WAAO,EAAE,MAAM,eAAe,OAAOA,EAAC;AACxC,QAAM,2BAA2BD,EAAE,IAAI;AACzC;AACA,IAAImF;AACJ,MAAMC,KAAK,IAAI,WAAW,EAAE;AAC5B,SAASC,KAAK;AACZ,MAAI,CAACF,OAAOA,KAAK,OAAO,SAAS,OAAO,OAAO,mBAAmB,OAAO,gBAAgB,KAAK,MAAM,GAAG,CAACA;AACtG,UAAM,IAAI,MAAM,0GAA0G;AAC5H,SAAOA,GAAGC,EAAE;AACd;AACA,MAAME,IAAI,CAAA;AACV,SAAStF,IAAI,GAAGA,IAAI,KAAK,EAAEA;AACzB,EAAAsF,EAAE,MAAMtF,IAAI,KAAK,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;AACxC,SAASuF,GAAGvF,GAAGC,IAAI,GAAG;AACpB,SAAOqF,EAAEtF,EAAEC,IAAI,CAAC,CAAC,IAAIqF,EAAEtF,EAAEC,IAAI,CAAC,CAAC,IAAIqF,EAAEtF,EAAEC,IAAI,CAAC,CAAC,IAAIqF,EAAEtF,EAAEC,IAAI,CAAC,CAAC,IAAI,MAAMqF,EAAEtF,EAAEC,IAAI,CAAC,CAAC,IAAIqF,EAAEtF,EAAEC,IAAI,CAAC,CAAC,IAAI,MAAMqF,EAAEtF,EAAEC,IAAI,CAAC,CAAC,IAAIqF,EAAEtF,EAAEC,IAAI,CAAC,CAAC,IAAI,MAAMqF,EAAEtF,EAAEC,IAAI,CAAC,CAAC,IAAIqF,EAAEtF,EAAEC,IAAI,CAAC,CAAC,IAAI,MAAMqF,EAAEtF,EAAEC,IAAI,EAAE,CAAC,IAAIqF,EAAEtF,EAAEC,IAAI,EAAE,CAAC,IAAIqF,EAAEtF,EAAEC,IAAI,EAAE,CAAC,IAAIqF,EAAEtF,EAAEC,IAAI,EAAE,CAAC,IAAIqF,EAAEtF,EAAEC,IAAI,EAAE,CAAC,IAAIqF,EAAEtF,EAAEC,IAAI,EAAE,CAAC;AACnQ;AACA,MAAMuF,KAAK,OAAO,SAAS,OAAO,OAAO,cAAc,OAAO,WAAW,KAAK,MAAM,GAAGC,KAAK;AAAA,EAC1F,YAAYD;AACd;AACA,SAASE,GAAG1F,GAAGC,GAAG,GAAG;AACnB,MAAIwF,GAAG,cAAc,CAACxF,KAAK,CAACD;AAC1B,WAAOyF,GAAG;AACZ,EAAAzF,IAAIA,KAAK;AACT,QAAM,IAAIA,EAAE,WAAWA,EAAE,OAAOqF;AAChC,MAAI,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,KAAKpF,GAAG;AACpD,QAAI,KAAK;AACT,aAASS,IAAI,GAAGA,IAAI,IAAI,EAAEA;AACxB,MAAAT,EAAE,IAAIS,CAAC,IAAI,EAAEA,CAAC;AAChB,WAAOT;AAAA,EACR;AACD,SAAOsF,GAAG,CAAC;AACb;AACA,IAAII,KAAK,OAAO,UAAU;AAC1B,SAASC,GAAG5F,GAAGC,GAAG;AAChB,MAAI,GAAG;AACP,MAAID,MAAMC;AACR,WAAO;AACT,MAAID,KAAKC,MAAM,IAAID,EAAE,iBAAiBC,EAAE,aAAa;AACnD,QAAI,MAAM;AACR,aAAOD,EAAE,QAAO,MAAOC,EAAE,QAAO;AAClC,QAAI,MAAM;AACR,aAAOD,EAAE,SAAQ,MAAOC,EAAE,SAAQ;AACpC,QAAI,MAAM,OAAO;AACf,WAAK,IAAID,EAAE,YAAYC,EAAE;AACvB,eAAO,OAAO2F,GAAG5F,EAAE,CAAC,GAAGC,EAAE,CAAC,CAAC;AACzB;AACJ,aAAO,MAAM;AAAA,IACd;AACD,QAAI,CAAC,KAAK,OAAOD,KAAK,UAAU;AAC9B,UAAI;AACJ,WAAK,KAAKA;AACR,YAAI2F,GAAG,KAAK3F,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC2F,GAAG,KAAK1F,GAAG,CAAC,KAAK,EAAE,KAAKA,MAAM,CAAC2F,GAAG5F,EAAE,CAAC,GAAGC,EAAE,CAAC,CAAC;AACvE,iBAAO;AACX,aAAO,OAAO,KAAKA,CAAC,EAAE,WAAW;AAAA,IAClC;AAAA,EACF;AACD,SAAOD,MAAMA,KAAKC,MAAMA;AAC1B;AACA,SAAS4F,KAAK;AACd;AACA,SAASC,GAAG9F,GAAGC,GAAG;AAChB,SAAOD,KAAKA,IAAIC,KAAKA,IAAID,MAAMC,KAAKD,KAAK,OAAOA,KAAK,YAAY,OAAOA,KAAK;AAC/E;AACA,MAAM+F,KAAK,CAAA;AACX,SAASC,GAAGhG,GAAGC,IAAI4F,IAAI;AACrB,MAAI;AACJ,QAAM,IAAoB,oBAAI;AAC9B,WAASnF,EAAEK,GAAG;AACZ,QAAI+E,GAAG9F,GAAGe,CAAC,MAAMf,IAAIe,GAAG,IAAI;AAC1B,YAAM,IAAI,CAACgF,GAAG;AACd,iBAAW,KAAK;AACd,UAAE,CAAC,KAAKA,GAAG,KAAK,GAAG/F,CAAC;AACtB,UAAI,GAAG;AACL,iBAAS,IAAI,GAAG,IAAI+F,GAAG,QAAQ,KAAK;AAClC,UAAAA,GAAG,CAAC,EAAE,CAAC,EAAEA,GAAG,IAAI,CAAC,CAAC;AACpB,QAAAA,GAAG,SAAS;AAAA,MACb;AAAA,IACF;AAAA,EACF;AACD,WAASlF,EAAEE,GAAG;AACZ,IAAAL,EAAEK,EAAEf,CAAC,CAAC;AAAA,EACP;AACD,WAASc,EAAEC,GAAG,IAAI8E,IAAI;AACpB,UAAM,IAAI,CAAC9E,GAAG,CAAC;AACf,WAAO,EAAE,IAAI,CAAC,GAAG,EAAE,SAAS,MAAM,IAAId,EAAES,CAAC,KAAKmF,KAAK9E,EAAEf,CAAC,GAAG,MAAM;AAC7D,QAAE,OAAO,CAAC,GAAG,EAAE,SAAS,KAAK,MAAM,EAAC,GAAI,IAAI;AAAA,IAClD;AAAA,EACG;AACD,SAAO,EAAE,KAAKU,GAAG,QAAQG,GAAG,WAAWC;AACzC;AACA,MAAMmF,KAAK,CAACjG,MAAM;AAChB,QAAM,EAAE,WAAWC,GAAG,KAAK,MAAM+F,GAAG,IAAI;AACxC,MAAI,IAAI;AACR,SAAO/F,EAAE,CAACS,MAAM,IAAIA,CAAC,GAAGV,EAAE,QAAQ,CAAC,EAAE,SAASU,EAAC,MAAO;AACpD,QAAI,GAAG;AACL,MAAAA,EAAE,QAAQ,KAAK,CAACI,MAAMA,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI;AAC3C,YAAMD,IAAIH,EAAE,QAAQ,KAAK,CAAC,EAAE,UAAUI,QAAQA,EAAE,OAAO,CAAC;AACxD,MAAAD,KAAK,EAAEA,EAAE,SAAS,EAAE;AAAA,IACrB;AAAA,EACL,CAAG,GAAG;AAAA,IACF,IAAI,UAAU;AACZ,aAAO;AAAA,IACR;AAAA,IACD,WAAWZ;AAAA,IACX,KAAK;AAAA,EACT;AACA;AACA,IAAIiG,KAAsB,kBAAClG,OAAOA,EAAE,OAAO,QAAQA,EAAE,SAAS,UAAUA,EAAE,OAAO,QAAQA,IAAIkG,MAAM,CAAA,CAAE;AACrG,MAAMC,KAAK,EAAE,UAAU,GAAI,GAAEC,KAAK,CAACpG,GAAGC,IAAI,WAAW;AACnD,QAAM,EAAE,WAAW,GAAG,KAAK,MAAM+F,GAAGG,EAAE;AACtC,MAAIzF,IAAIyF;AACR,IAAE,CAAC,MAAMzF,IAAI,CAAC;AACd,QAAMG,IAAI,MAAM,EAAEsF,EAAE,GAAGrF,IAAI,MAAM;AAC/B,QAAI;AACJ,aAAS,IAAIJ,EAAE,aAAa,OAAO,SAAS,EAAE,YAAY;AAAA,EAC9D,GAAKK,IAAI,CAAC,MAAM;AACZ,QAAIL,EAAE,SAAS,WAAW;AACxB,aAAO;AACT,UAAM,IAAI,OAAO,KAAK,WAAW,IAAI,EAAE;AACvC,WAAOA,EAAE,SAAS,KAAK,CAACmD,MAAMA,EAAE,OAAO,CAAC;AAAA,EAC5C,GAAK,IAAI,CAAC,GAAG,MAAM;AACf,UAAMA,IAAI7D,EAAE,cAAc,CAAC;AAC3B,QAAI6D,GAAG;AACL,YAAM,IAAIwC,GAAGxC,GAAG5D,CAAC;AACjB,QAAE,MAAM,SAAS,EAAE,UAAU,CAAC,EAAE,IAAI,GAAG,UAAU,GAAE,CAAE,GAAG,cAAc,EAAC,IAAK,MAAM,WAAW,EAAE,UAAU,CAAC,EAAE,IAAI,EAAG,CAAA,GAAG,cAAc,EAAG,IAAG,EAAE,UAAU,CAAA,GAAI,cAAc,EAAG,CAAA;AAAA,IAC5K;AACC,cAAQ,KAAK,wBAAwB,CAAC;AAAA,EACzC,GAAE,IAAI,CAAC,GAAG,IAAI,OAAO;AACpB,UAAM4D,IAAI,MAAM,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAIA,EAAE,IAAI,CAACU,MAAMvE,EAAE,cAAcuE,CAAC,CAAC,EAAE,OAAO,CAACA,MAAMA,CAAC;AAC1F,MAAE,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,IAAIA,EAAG,OAAM,EAAE,IAAIA,GAAG,UAAU,EAAG,EAAC,EAAG,CAAA,GAAG,EAAE,WAAWV,EAAE,UAAU,QAAQ,KAAK,qBAAqB,CAAC;AAAA,EACjI,GAAKD,IAAI,CAAC,MAAM;AACZ,QAAIlD,EAAE,SAAS,WAAW;AACxB,aAAO;AACT,UAAM,EAAE,UAAU,EAAG,IAAGA;AACxB,MAAE,OAAO,CAAC,EAAE,IAAImD,EAAG,MAAK,EAAE,SAASA,CAAC,CAAC,EAAE,SAAS,KAAK,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,IAAIA,QAAQ,CAAC,EAAE,SAASA,CAAC,CAAC,EAAG,CAAA;AAAA,EAChH;AACE,SAAO7D,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAG,MAAK4D,EAAE,EAAE,QAAQ,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG;AAAA,IACnE,OAAO/C;AAAA,IACP,aAAa;AAAA,IACb,IAAI,WAAW;AACb,aAAOH,IAAI,CAAC,GAAGA,EAAE,QAAQ,IAAI;AAAA,IAC9B;AAAA,IACD,IAAI,eAAe;AACjB,aAAOA,IAAIA,EAAE,eAAe;AAAA,IAC7B;AAAA,IACD,SAASI;AAAA,IACT,YAAYC;AAAA,IACZ,aAAa;AAAA,IACb,WAAW;AAAA,EACf;AACA,GAAGsF,KAAK,CAACrG,GAAGC,MAAM,OAAOA,KAAK,aAAaA,EAAED,CAAC,KAAK,SAASC,KAAK,QAAQqG,KAAK,CAAA;AAC9E,SAAStG,IAAI,GAAGA,IAAI,KAAK,EAAEA;AACzB,EAAAsG,GAAG,MAAMtG,IAAI,KAAK,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;AACzC,OAAO,SAAS,OAAO,OAAO,cAAc,OAAO,WAAW,KAAK,MAAM;AACzE,MAAMuG,KAAK,CAACvG,GAAGC,MAAM;AACnB,QAAM,IAAI,IAAI,IAAID,EAAE,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;AAC3C,SAAOC,EAAE,OAAO,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;AAC5C,GAAGuG,KAAK,CAACxG,GAAGC,MAAM;AAChB,QAAM,IAAI,IAAI,IAAIA,EAAE,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;AAC3C,SAAOD,EAAE,OAAO,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;AAC5C,GAAGyG,KAAK,CAACzG,GAAGC,MAAMA,EAAE,OAAO,IAAI,CAAC,MAAM;AACpC,QAAM,IAAID,EAAE,OAAO,KAAK,CAACU,MAAMA,EAAE,OAAO,EAAE,EAAE;AAC5C,SAAO,EAAE,SAAS,GAAG,SAAS,KAAK,CAACkF,GAAG,GAAG,CAAC,IAAI,IAAI,OAAM;AAC3D,CAAC,EAAE,OAAO,CAAC,EAAE,SAAS,EAAC,MAAO,CAAC,GAAG,KAAK,CAAC5F,GAAGC,MAAM,CAAC2F,GAAG5F,EAAE,QAAQC,EAAE,MAAM,GAAGyG,KAAK,CAAC1G,GAAGC,MAAM;AACvF,QAAM,IAAIsG,GAAGvG,GAAGC,CAAC,GAAG,IAAIuG,GAAGxG,GAAGC,CAAC,GAAGS,IAAI+F,GAAGzG,GAAGC,CAAC;AAC7C,SAAO;AAAA,IACL,UAAUD;AAAA,IACV,UAAUC;AAAA,IACV,eAAe,EAAE,SAAS,IAAI,IAAI;AAAA,IAClC,eAAe,EAAE,SAAS,IAAI,IAAI;AAAA,IAClC,eAAeS,EAAE,SAAS,IAAIA,IAAI;AAAA,IAClC,eAAe,GAAGV,GAAGC,CAAC,IAAI,EAAE,WAAWD,EAAE,QAAQ,WAAWC,EAAE,OAAM,IAAK;AAAA,EAC7E;AACA;AACA,IAAI0G,IAAqB,kBAAC3G,OAAOA,EAAE,QAAQ,SAASA,EAAE,SAAS,UAAUA,IAAI2G,KAAK,CAAE,CAAA;AACpF,MAAMC,KAAK,CAAC5G,GAAGC,MAAM;AACnB,MAAI,GAAG;AACP,QAAM,EAAE,SAASS,GAAG,QAAQG,EAAC,IAAKZ;AAClC,MAAI,EAAE,CAACD,EAAE,QAAQ,UAAUA,EAAE,QAAQ,WAAWa;AAC9C,WAAO;AACT,MAAIb,EAAE,QAAQ,QAAQ;AACpB,UAAM,EAAE,QAAQc,EAAC,IAAKd,EAAE,SAASe,IAAI,CAAC,OAAO,KAAK,OAAO,SAAS,EAAE,UAAU;AAC9E,QAAI,EAAEA,EAAEL,EAAE,OAAO,KAAKK,EAAEL,EAAE,OAAO,IAAI;AACnC,YAAM,KAAK,IAAIA,EAAE,YAAY,OAAO,SAAS,EAAE,KAAK,CAACkD,MAAM7C,EAAE6C,EAAE,aAAa,KAAK7C,EAAE6C,EAAE,aAAa,KAAK7C,EAAE6C,EAAE,aAAa,CAAC,GAAG,KAAK,IAAIlD,EAAE,YAAY,OAAO,SAAS,EAAE,KAAK,CAACkD,MAAMA,EAAE,aAAa;AAChM,UAAI9C,MAAM,eAAe,KAAK,CAAC,KAAKA,MAAM,iBAAiB,KAAK,CAAC;AAC/D,eAAO;AAAA,IACV;AAAA,EACF;AACD,MAAId,EAAE,QAAQ,aAAa;AACzB,UAAMc,IAAoB,oBAAI,IAAI;AAAA,MAChC,GAAGJ,EAAE,QAAQ,IAAI,CAACK,MAAMA,EAAE,EAAE;AAAA,MAC5B,GAAGL,EAAE,QAAQ,IAAI,CAACK,MAAMA,EAAE,EAAE;AAAA,MAC5B,GAAGL,EAAE,QAAQ,IAAI,CAAC,EAAE,UAAUK,EAAC,MAAOA,EAAE,EAAE;AAAA,IAChD,CAAK;AACD,WAAO,CAAC,EAAE,MAAM,QAAQf,EAAE,QAAQ,WAAW,IAAIA,EAAE,QAAQ,cAAc,CAACA,EAAE,QAAQ,WAAW,GAAG,KAAK,CAACe,MAAMD,EAAE,IAAIC,CAAC,CAAC;AAAA,EACvH;AACC,WAAO;AACX,GAAG,KAAK,CAACf,GAAGC,MAAM;AAChB,QAAM,IAAI,IAAI,KAAKD,EAAE,WAAW,CAAA,GAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,KAAKA,EAAE,WAAW,CAAA,GAAI,IAAI,CAAC,EAAE,UAAU,EAAC,MAAO,EAAE,EAAE,CAAC,GAAGU,IAAI,IAAI,KAAKT,EAAE,WAAW,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,GAAGY,IAAI,IAAI,KAAKZ,EAAE,WAAW,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,GAAGa,IAAI,IAAI,KAAKb,EAAE,WAAW,IAAI,IAAI,CAAC,EAAE,UAAU,EAAG,MAAK,EAAE,EAAE,CAAC,GAAGc,IAAI,IAAI,KAAKd,EAAE,WAAW,CAAE,GAAE,OAAO,CAAC,EAAE,UAAU,EAAC,MAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,UAAU,EAAG,MAAK,EAAE,EAAE,CAAC,GAAG,IAAI;AAAA,IAChZ,IAAID,EAAE,WAAW,CAAE,GAAE,OAAO,CAAC,MAAM,CAACa,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,MAAMC,EAAE,IAAI,EAAE,EAAE,IAAIb,EAAE,QAAQ,KAAK,CAAC,EAAE,UAAU,EAAC,MAAO,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,CAAC;AAAA,IACzI,GAAGA,EAAE,WAAW,CAAE;AAAA,EACnB,GAAE,IAAI;AAAA,IACL,IAAID,EAAE,WAAW,CAAA,GAAI,OAAO,CAAC,MAAM,CAACU,EAAE,IAAI,EAAE,EAAE,CAAC;AAAA,IAC/C,IAAIT,EAAE,WAAW,CAAA,GAAI,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;AAAA,EAChD,GAAE2D,IAAI;AAAA,IACL,IAAI5D,EAAE,WAAW,CAAA,GAAI,OAAO,CAAC,EAAE,UAAU,EAAC,MAAO,CAACa,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM;AACxE,YAAM,EAAE,UAAU,GAAG,UAAUgD,EAAC,IAAK;AACrC,UAAI/C,EAAE,IAAI+C,EAAE,EAAE,GAAG;AACf,cAAM,IAAI5D,EAAE,QAAQ,KAAK,CAACsE,MAAMA,EAAE,SAAS,OAAOV,EAAE,EAAE,EAAE;AACxD,eAAO6C,GAAG,GAAG,CAAC;AAAA,MACf;AACC,eAAO;AAAA,IACf,CAAK;AAAA,IACD,IAAIzG,EAAE,WAAW,CAAA,GAAI,OAAO,CAAC,EAAE,UAAU,EAAC,MAAO,CAACc,EAAE,IAAI,EAAE,EAAE,CAAC;AAAA,EACjE;AACE,SAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS6C;AAC5C,GAAGiD,KAAK,CAAC7G,MAAMA,EAAE,OAAO,QAAQ8G,KAAK,MAAM;AACzC,QAAM9G,IAAoB,oBAAI,IAAK,GAAEC,IAAoB,oBAAI,IAAK,GAAE,IAAI,CAAA,GAAI,IAAI,CAAC8G,GAAGC,IAAI,CAAA,MAAO,EAAE,KAAK,EAAE,UAAUD,GAAG,SAASC,EAAG,CAAA,GAAGtG,IAAI,CAACqG,MAAM;AAC7I,UAAMC,IAAI,EAAE,UAAU,CAACC,MAAMA,EAAE,YAAYF,CAAC;AAC5C,IAAAC,IAAI,MAAM,EAAE,OAAOA,GAAG,CAAC;AAAA,EAC3B,GAAKnG,IAAI,CAACkG,GAAGC,MAAM;AACf,UAAMC,IAAI;AAAA,MACR,QAAQF;AAAA,MACR,SAAS;AAAA,QACP,SAASC,EAAE,WAAW,CAAE;AAAA,QACxB,SAASA,EAAE,WAAW,CAAE;AAAA,QACxB,SAASA,EAAE,WAAW,CAAE;AAAA,MACzB;AAAA,MACD,OAAO,CAAC,GAAGhH,EAAE,QAAQ;AAAA,IAC3B;AACI,MAAE,QAAQ,CAACkH,MAAM;AACf,MAAAN,GAAGM,GAAGD,CAAC,KAAKC,EAAE,SAASD,CAAC;AAAA,IAC9B,CAAK;AAAA,EACF,GAAEnG,IAAI,CAACiG,GAAGC,IAAIL,EAAE,UAAU;AACzB,QAAI3G,EAAE,IAAI+G,EAAE,EAAE;AACZ,YAAM,MAAM,yBAAyBA,EAAE,EAAE,mBAAmB;AAC9D,IAAA/G,EAAE,IAAI+G,EAAE,IAAIA,CAAC,GAAGA,EAAE,OAAO,QAAQ,CAACE,MAAMhH,EAAE,IAAIgH,EAAE,IAAIF,EAAE,EAAE,CAAC,GAAGlG,EAAEmG,GAAG,EAAE,SAAS,CAACD,CAAC,EAAG,CAAA;AAAA,EACrF,GAAKhG,IAAI,CAACgG,GAAGC,MAAM;AACf,UAAMC,IAAI,OAAOF,KAAK,WAAWC,IAAID,GAAGG,IAAI,OAAOH,KAAK,WAAWA,IAAIA,EAAE,IAAII,IAAInH,EAAE,IAAIkH,CAAC;AACxF,QAAIC,GAAG;AACL,YAAMC,IAAIV,GAAGS,GAAGF,CAAC;AACjB,aAAOC,MAAMD,EAAE,KAAKjH,EAAE,IAAIkH,GAAGD,CAAC,KAAKjH,EAAE,OAAOkH,CAAC,GAAGlH,EAAE,IAAIiH,EAAE,IAAIA,CAAC,IAAIE,EAAE,OAAO,QAAQ,CAACE,MAAMpH,EAAE,OAAOoH,EAAE,EAAE,CAAC,GAAGJ,EAAE,OAAO,QAAQ,CAACI,MAAMpH,EAAE,IAAIoH,EAAE,IAAIJ,EAAE,EAAE,CAAC,GAAGG;AAAA,IACvJ;AACC,cAAQ,KAAK,4BAA4BF,CAAC,mBAAmB;AAAA,EACnE,GAAK,IAAI,CAACH,GAAGC,IAAIL,EAAE,OAAOM,IAAIN,EAAE,UAAU;AACtC,UAAMO,IAAIL,GAAGG,CAAC,IAAIC,IAAID,GAAGG,IAAIpG,EAAEgG,GAAGC,CAAC;AACnC,IAAAG,KAAKtG,EAAEqG,GAAG,EAAE,SAAS,CAACC,CAAC,EAAC,CAAE;AAAA,EAC3B,GAAE,IAAI,CAACJ,GAAGC,IAAIL,EAAE,UAAU;AACzB,UAAMM,IAAIF,EAAE,OAAO,CAACG,GAAGC,MAAM;AAC3B,YAAMC,IAAIrG,EAAEoG,CAAC;AACb,aAAOC,IAAI,CAAC,GAAGF,GAAGE,CAAC,IAAIF;AAAA,IACxB,GAAE,CAAE,CAAA;AACL,IAAAD,EAAE,SAAS,KAAKpG,EAAEmG,GAAG,EAAE,SAASC,EAAC,CAAE;AAAA,EACpC,GAAErD,IAAI,CAACmD,GAAGC,IAAIL,EAAE,UAAU;AACzB,UAAMM,IAAIjH,EAAE,IAAI+G,EAAE,UAAU;AAC5B,QAAIE,GAAG;AACL,YAAMC,IAAI;AAAA,QACR,GAAGD;AAAA,QACH,QAAQ,CAAC,GAAGA,EAAE,QAAQF,CAAC;AAAA,MAC/B;AACM,MAAA/G,EAAE,IAAIiH,EAAE,IAAIC,CAAC,GAAGjH,EAAE,IAAI8G,EAAE,IAAIG,EAAE,EAAE,GAAGrG,EAAEmG,GAAG,EAAE,SAAS,CAAC;AAAA,QAClD,UAAUC;AAAA,QACV,UAAUC;AAAA,QACV,eAAe,CAACH,CAAC;AAAA,MAClB,CAAA,EAAG,CAAA;AAAA,IACL;AACC,cAAQ,KAAK,8CAA8CA,EAAE,UAAU,EAAE;AAAA,EAC5E,GAAE,IAAI,MAAM,CAAC,GAAG/G,EAAE,OAAM,CAAE,GAAG,IAAI,CAAC+G,IAAIJ,EAAE,UAAU;AACjD,UAAMK,IAAI,CAAC,GAAGhH,EAAE,OAAQ,CAAA;AACxB,IAAAA,EAAE,MAAK,GAAIC,EAAE,MAAO,GAAEY,EAAEkG,GAAG,EAAE,SAASC,EAAC,CAAE;AAAA,EAC7C,GAAKnD,IAAI,CAACkD,GAAGC,IAAI,IAAIC,IAAIN,EAAE,UAAU;AACjC,QAAIK,GAAG;AACL,YAAME,IAAI,CAAC,GAAGlH,EAAE,OAAQ,CAAA;AACxB,MAAAA,EAAE,MAAO,GAAEC,EAAE,MAAO,GAAE8G,EAAE,QAAQ,CAACI,MAAM;AACrC,QAAAnH,EAAE,IAAImH,EAAE,IAAIA,CAAC,GAAGA,EAAE,OAAO,QAAQ,CAACC,MAAMnH,EAAE,IAAImH,EAAE,IAAID,EAAE,EAAE,CAAC;AAAA,MACjE,CAAO,GAAGtG,EAAEoG,GAAG,EAAE,SAASF,GAAG,SAASG,EAAC,CAAE;AAAA,IACzC,OAAW;AACL,YAAMA,IAAIH,EAAE,OAAO,CAACI,GAAGC,MAAM;AAC3B,cAAMC,IAAIrH,EAAE,IAAIoH,EAAE,EAAE;AACpB,eAAOC,IAAI,CAAC,GAAGF,GAAGE,CAAC,IAAIF;AAAA,MACxB,GAAE,CAAE,CAAA;AACL,UAAID,EAAE,SAAS;AACb,cAAM,MAAM,0DAA0DA,EAAE,IAAI,CAACC,MAAMA,EAAE,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE;AACvG,MAAAJ,EAAE,QAAQ,CAACI,MAAM;AACf,QAAAnH,EAAE,IAAImH,EAAE,IAAIA,CAAC,GAAGA,EAAE,OAAO,QAAQ,CAACC,MAAMnH,EAAE,IAAImH,EAAE,IAAID,EAAE,EAAE,CAAC;AAAA,MACjE,CAAO,GAAGtG,EAAEoG,GAAG,EAAE,SAASF,EAAG,CAAA;AAAA,IACxB;AAAA,EACL,GAAK,IAAI,CAACA,MAAM;AACZ,UAAMC,IAAI,OAAOD,KAAK,WAAWA,IAAIA,EAAE,IAAIE,IAAIjH,EAAE,IAAIgH,CAAC;AACtD,QAAIC;AACF,aAAOjH,EAAE,OAAOgH,CAAC,GAAGC,EAAE,OAAO,QAAQ,CAACC,MAAMjH,EAAE,OAAOiH,EAAE,EAAE,CAAC,GAAGD;AAC/D,YAAQ,KAAK,yCAAyCD,CAAC,EAAE;AAAA,EAC1D,GAAEzC,IAAI,CAACwC,GAAGC,IAAIL,EAAE,UAAU;AACzB,UAAMM,IAAI,EAAEF,CAAC;AACb,IAAAE,KAAKpG,EAAEmG,GAAG,EAAE,SAAS,CAACC,CAAC,EAAC,CAAE;AAAA,EAC3B,GAAEK,IAAI,CAACP,GAAGC,IAAIL,EAAE,UAAU;AACzB,UAAMM,IAAIF,EAAE,OAAO,CAACG,GAAGC,MAAM;AAC3B,YAAMC,IAAI,EAAED,CAAC;AACb,aAAOC,IAAI,CAAC,GAAGF,GAAGE,CAAC,IAAIF;AAAA,IACxB,GAAE,CAAE,CAAA;AACL,IAAAD,EAAE,SAAS,KAAKpG,EAAEmG,GAAG,EAAE,SAASC,EAAC,CAAE;AAAA,EACpC,GAAEM,IAAI,CAACR,GAAGC,IAAIL,EAAE,UAAU;AACzB,UAAMM,IAAIjH,EAAE,IAAI+G,EAAE,UAAU;AAC5B,QAAIE,GAAG;AACL,YAAMC,IAAID,EAAE,OAAO,KAAK,CAACE,MAAMA,EAAE,OAAOJ,EAAE,EAAE;AAC5C,UAAIG,GAAG;AACL,QAAAjH,EAAE,OAAOiH,EAAE,EAAE;AACb,cAAMC,IAAI;AAAA,UACR,GAAGF;AAAA,UACH,QAAQA,EAAE,OAAO,OAAO,CAACG,MAAMA,EAAE,OAAOL,EAAE,EAAE;AAAA,QACtD;AACQ,QAAA/G,EAAE,IAAIiH,EAAE,IAAIE,CAAC,GAAGtG,EAAEmG,GAAG,EAAE,SAAS,CAAC;AAAA,UAC/B,UAAUC;AAAA,UACV,UAAUE;AAAA,UACV,eAAe,CAACD,CAAC;AAAA,QAClB,CAAA,EAAG,CAAA;AAAA,MACL;AACC,gBAAQ,KAAK,kCAAkCH,EAAE,EAAE,oBAAoBA,EAAE,UAAU,EAAE;AAAA,IACxF;AACC,cAAQ,KAAK,kDAAkDA,EAAE,UAAU,EAAE;AAAA,EACnF,GAAKS,IAAI,CAACT,MAAM;AACZ,UAAMC,IAAIhH,EAAE,IAAI+G,CAAC;AACjB,WAAOC,IAAI,EAAE,GAAGA,EAAG,IAAG;AAAA,EAC1B,GAAKS,IAAI,CAACV,MAAM;AACZ,UAAMC,IAAI/G,EAAE,IAAI8G,CAAC;AACjB,QAAIC,GAAG;AACL,YAAMC,IAAIO,EAAER,CAAC,EAAE,OAAO,KAAK,CAACE,MAAMA,EAAE,OAAOH,CAAC;AAC5C,UAAIE;AACF,eAAOA;AACT,cAAQ,MAAM,+BAA+BF,CAAC,kCAAkC;AAAA,IACjF;AACC,cAAQ,KAAK,qCAAqCA,CAAC,EAAE;AAAA,EAC3D,GAAKW,IAAI,CAACX,GAAGC,MAAM;AACf,QAAID,EAAE,eAAeC,EAAE;AACrB,YAAM;AACR,UAAMC,IAAIjH,EAAE,IAAI+G,EAAE,UAAU;AAC5B,QAAIE,GAAG;AACL,YAAMC,IAAID,EAAE,OAAO,KAAK,CAACG,MAAMA,EAAE,OAAOL,EAAE,EAAE,GAAGI,IAAI;AAAA,QACjD,GAAGF;AAAA,QACH,QAAQA,EAAE,OAAO,IAAI,CAACG,MAAMA,EAAE,OAAOF,EAAE,KAAKF,IAAII,CAAC;AAAA,MACzD;AACM,aAAOpH,EAAE,IAAIiH,EAAE,IAAIE,CAAC,GAAGD,EAAE,OAAOF,EAAE,OAAO/G,EAAE,OAAOiH,EAAE,EAAE,GAAGjH,EAAE,IAAI+G,EAAE,IAAIG,EAAE,EAAE,IAAI;AAAA,QAC3E,UAAUF;AAAA,QACV,UAAUE;AAAA,QACV,eAAe,CAAC,EAAE,SAASD,GAAG,SAASF,EAAC,CAAE;AAAA,MAClD;AAAA,IACK;AACC,cAAQ,KAAK,6CAA6CD,EAAE,UAAU,EAAE;AAAA,EAC9E,GAAKY,IAAI,CAACZ,GAAGC,GAAGC,IAAIN,EAAE,UAAU;AAC5B,UAAMO,IAAIQ,EAAEX,GAAGC,CAAC;AAChB,IAAAnG,EAAEoG,GAAG,EAAE,SAAS,CAACC,CAAC,EAAG,CAAA;AAAA,EACtB,GAAE,IAAI,CAACH,GAAGC,IAAIL,EAAE,UAAU;AACzB,UAAMM,IAAIF,EAAE,IAAI,CAACG,MAAMQ,EAAE,EAAE,IAAIR,EAAE,IAAI,YAAYA,EAAE,WAAY,GAAEA,CAAC,CAAC;AACnE,IAAArG,EAAEmG,GAAG,EAAE,SAASC,EAAG,CAAA;AAAA,EACvB,GAAKW,IAAI,CAACb,MAAM;AACZ,UAAMC,IAAIhH,EAAE,IAAI+G,EAAE,UAAU;AAC5B,QAAIC,GAAG;AACL,YAAMC,IAAI;AAAA,QACR,GAAGD;AAAA,QACH,QAAQ;AAAA,UACN,GAAGA,EAAE;AAAA,UACL,GAAGD;AAAA,QACJ;AAAA,MACT;AACM,aAAO/G,EAAE,IAAIgH,EAAE,IAAIC,CAAC,GAAG;AAAA,QACrB,UAAUD;AAAA,QACV,UAAUC;AAAA,QACV,eAAe;AAAA,UACb,WAAWD,EAAE;AAAA,UACb,WAAWD;AAAA,QACZ;AAAA,MACT;AAAA,IACK;AACC,cAAQ,KAAK,mDAAmDA,EAAE,UAAU,EAAE;AAAA,EACpF;AACE,SAAO;AAAA,IACL,eAAejG;AAAA,IACf,SAAS8C;AAAA,IACT,KAAK;AAAA,IACL,mBAAmBC;AAAA,IACnB,sBAAsByD;AAAA,IACtB,sBAAsB;AAAA,IACtB,kBAAkB;AAAA,IAClB,mBAAmB,CAACP,GAAGC,IAAIL,EAAE,UAAU;AACrC,YAAMM,IAAIF,EAAE,IAAIa,CAAC,EAAE,OAAO,CAACV,MAAMA,CAAC;AAClC,MAAAD,EAAE,SAAS,KAAKpG,EAAEmG,GAAG,EAAE,SAASC,EAAC,CAAE;AAAA,IACpC;AAAA,IACD,OAAO;AAAA,IACP,kBAAkB1C;AAAA,IAClB,YAAYgD;AAAA,IACZ,eAAeC;AAAA,IACf,SAASC;AAAA,IACT,SAAS;AAAA,IACT,WAAW/G;AAAA,IACX,kBAAkB;AAAA,IAClB,YAAYiH;AAAA,IACZ,cAAc,CAACZ,GAAGC,IAAIL,EAAE,UAAU;AAChC,YAAMM,IAAIW,EAAEb,CAAC;AACb,MAAAE,KAAKpG,EAAEmG,GAAG,EAAE,SAAS,CAACC,CAAC,EAAC,CAAE;AAAA,IAC3B;AAAA,EACL;AACA,GAAGY,KAAK,CAAC7H,OAAO;AAAA,EACd,GAAGA;AAAA,EACH,WAAW,CAACC,MAAM;AAChB,UAAM,IAAI,CAAC,MAAMA,EAAE,EAAE,KAAK;AAC1B,WAAOD,EAAE,QAAQ,CAAC,GAAGC,EAAED,EAAE,IAAG,CAAE,GAAG,MAAMA,EAAE,UAAU,CAAC;AAAA,EACrD;AACH;AACA,IAAI8H,KAAK,OAAO;AAAA,EACd,KAAK9H,MAAMC,GAAG;AACZ,QAAI,IAAI,KAAK,OAAOD,CAAC,KAAK,CAAA;AAC1B,aAAS,IAAI,GAAGU,IAAI,EAAE,QAAQ,IAAIA,GAAG;AACnC,QAAE,CAAC,EAAE,GAAGT,CAAC;AAAA,EACZ;AAAA,EACD,QAAQ,CAAE;AAAA,EACV,GAAGD,GAAGC,GAAG;AACP,QAAI;AACJ,YAAQ,IAAI,KAAK,OAAOD,CAAC,MAAM,QAAQ,EAAE,KAAKC,CAAC,MAAM,KAAK,OAAOD,CAAC,IAAI,CAACC,CAAC,IAAI,MAAM;AAChF,UAAI;AACJ,WAAK,OAAOD,CAAC,KAAK,IAAI,KAAK,OAAOA,CAAC,MAAM,OAAO,SAAS,EAAE,OAAO,CAACU,MAAMT,MAAMS,CAAC;AAAA,IACtF;AAAA,EACG;AACH;AACA,MAAMqH,KAAK,KAAKC,KAAK,CAAChI,MAAM;AAC1B,QAAMC,IAAI6H,MAAM,IAAI,CAAA;AACpB,MAAI,IAAI,IAAIpH,IAAI,IAAIG,IAAI;AACxB,QAAMC,IAAI,CAAC+C,MAAM;AACf,QAAI,CAACnD,GAAG;AACN,YAAM,EAAE,SAAS,EAAG,IAAGmD,GAAGU,IAAI,YAAY;AAC1C,UAAIA,IAAI1D,IAAIkH;AACV,UAAE,OAAO,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,EAAE,SAAS;AAAA,WACxC;AACH,cAAMT,IAAI,EAAE,SAAS;AACrB,UAAEA,CAAC,IAAI,GAAG,EAAEA,CAAC,GAAG,CAAC;AAAA,MAClB;AACD,MAAAzG,IAAI0D;AAAA,IACL;AACD,IAAA7D,IAAI;AAAA,EACR;AACE,EAAAV,EAAE,QAAQc,GAAG,EAAE,QAAQ6F,EAAE,MAAK,CAAE;AAChC,QAAM5F,IAAI,CAAC8C,OAAOA,KAAK,OAAO,SAASA,EAAE,UAAU,KAAK7D,EAAE,qBAAqB6D,CAAC,GAAG,IAAI,CAACA,OAAOA,KAAK,OAAO,SAASA,EAAE,UAAU,KAAK7D,EAAE,kBAAkB6D,GAAG,EAAE,GAAG,IAAI,CAACA,OAAOA,KAAK,OAAO,SAASA,EAAE,UAAU,KAAK7D,EAAE,qBAAqB6D,EAAE,IAAI,CAAC,EAAE,UAAU,EAAG,MAAK,CAAC,CAAC,GAAGD,IAAI,CAACC,OAAOA,KAAK,OAAO,SAASA,EAAE,UAAU,KAAK7D,EAAE,qBAAqB6D,EAAE,IAAI,CAAC,EAAE,UAAU,EAAG,MAAK,CAAC,CAAC,GAAG,IAAI,CAACA,OAAOA,KAAK,OAAO,SAASA,EAAE,UAAU,KAAK7D,EAAE,kBAAkB6D,GAAG,EAAE,GAAG,IAAI,CAACA,OAAOA,KAAK,OAAO,SAASA,EAAE,UAAU,KAAK7D,EAAE,qBAAqB6D,CAAC;AAC3gB,SAAO;AAAA,IACL,SAAS,MAAM,EAAE,SAAS,IAAI;AAAA,IAC9B,SAAS,MAAM,IAAI;AAAA,IACnB,SAAS,MAAM7D,EAAE,UAAUc,CAAC;AAAA,IAC5B,IAAI,CAAC+C,GAAG,MAAM5D,EAAE,GAAG4D,GAAG,CAAC;AAAA,IACvB,MAAM,MAAM;AACV,UAAI,EAAE,SAAS,IAAI,GAAG;AACpB,QAAAnD,IAAI;AACJ,cAAM,EAAE,SAASmD,GAAG,SAAS,GAAG,SAASU,MAAM,EAAE,IAAI,CAAC;AACtD,UAAEV,CAAC,GAAGD,EAAE,CAAC,GAAG,EAAEW,CAAC,GAAGtE,EAAE,KAAK,QAAQ,EAAE,IAAI,CAAC,CAAC,GAAG,KAAK;AAAA,MAClD;AAAA,IACF;AAAA,IACD,MAAM,MAAM;AACV,UAAI,IAAI,IAAI;AACV,QAAAS,IAAI;AACJ,cAAM,EAAE,SAASmD,GAAG,SAAS,GAAG,SAASU,EAAG,IAAG,EAAE,CAAC;AAClD,QAAAxD,EAAE8C,CAAC,GAAG,EAAE,CAAC,GAAG,EAAEU,CAAC,GAAGtE,EAAE,KAAK,QAAQ,EAAE,CAAC,CAAC,GAAG,KAAK;AAAA,MAC9C;AAAA,IACF;AAAA,EACL;AACA,GAAGgI,KAAK,MAAM;AACZ,QAAM,EAAE,WAAWjI,GAAG,KAAKC,MAAM+F,GAAG,CAAA,CAAE;AACtC,SAAO;AAAA,IACL,WAAWhG;AAAA,IACX,KAAKC;AAAA,EACT;AACA,GAAGiI,KAAK,CAAClI,GAAGC,GAAG,GAAG,MAAM;AACtB,QAAM,EAAE,OAAOS,GAAG,WAAWG,GAAG,OAAOC,GAAG,UAAUC,EAAC,IAAKf,GAAG,IAAoB,oBAAI,IAAG;AACxF,MAAI,IAAI,CAAA,GAAI4D,GAAG;AACf,QAAM,IAAI,CAAC2D,GAAGC,MAAM;AAClB,MAAE,IAAID,CAAC,IAAI,EAAE,IAAIA,CAAC,EAAE,KAAKC,CAAC,IAAI,EAAE,IAAID,GAAG,CAACC,CAAC,CAAC;AAAA,EAC9C,GAAK3D,IAAI,CAAC0D,GAAGC,MAAM;AACf,UAAMC,IAAI,EAAE,IAAIF,CAAC;AACjB,IAAAE,KAAKA,EAAE,QAAQD,CAAC,IAAI,KAAKC,EAAE,OAAOA,EAAE,QAAQD,CAAC,GAAG,CAAC;AAAA,EAClD,GAAE,IAAI,CAACD,GAAGC,GAAGC,MAAM;AAClB,MAAE,IAAIF,CAAC,KAAK,WAAW,MAAM;AAC3B,QAAE,IAAIA,CAAC,EAAE,QAAQ,CAACG,MAAM;AACtB,YAAI,GAAG;AACL,gBAAMC,IAAI,MAAM,QAAQH,CAAC,IAAIA,EAAE,IAAI,CAACI,MAAM,EAAE,UAAUA,CAAC,CAAC,IAAI,EAAE,UAAUJ,CAAC,GAAG,IAAIC,IAAIA,aAAa,eAAeA,IAAI,EAAE,UAAUA,CAAC,IAAI;AACrI,UAAAC,EAAEC,GAAG,CAAC;AAAA,QACP;AACC,UAAAD,EAAEF,GAAGC,CAAC;AAAA,MAChB,CAAO;AAAA,IACF,GAAE,CAAC;AAAA,EACL,GAAElD,IAAI,MAAM;AACX,UAAM,EAAE,UAAUgD,EAAC,IAAK1G,GAAG2G,IAAID,EAAE,IAAI,CAAC,EAAE,IAAIE,EAAG,MAAK/G,EAAE,cAAc+G,CAAC,CAAC;AACtE,IAAAD,EAAE,QAAQ,CAACC,MAAM;AACf,YAAMC,IAAI,EAAE,KAAK,CAACC,MAAMA,EAAE,OAAOF,EAAE,EAAE;AACrC,OAAC,CAACC,KAAK,CAAC9B,GAAG8B,GAAGD,CAAC,MAAM,EAAE,oBAAoBA,GAAGC,CAAC;AAAA,IACrD,CAAK,GAAG,IAAI,EAAE,IAAI,CAACD,MAAMD,EAAE,KAAK,CAAC,EAAE,IAAIG,EAAC,MAAOA,MAAMF,EAAE,EAAE,KAAKA,CAAC;AAAA,EAC/D;AACE,EAAA5G,EAAE,UAAU,CAAC,EAAE,UAAU0G,EAAC,MAAO;AAC/B,QAAI,EAAE,EAAE,WAAW,KAAKA,EAAE,WAAW,IAAI;AACvC,UAAI,EAAE,WAAW,KAAKA,EAAE,SAAS;AAC/B,YAAIA,EAAE,IAAI,CAAC,EAAE,IAAIC,EAAG,MAAK9G,EAAE,cAAc8G,CAAC,CAAC;AAAA,eACpC,EAAE,SAAS,KAAKD,EAAE,WAAW;AACpC,UAAE,QAAQ,CAACC,MAAM;AACf,gBAAMC,IAAI/G,EAAE,cAAc8G,EAAE,EAAE;AAC9B,UAAAC,KAAK,CAAC7B,GAAG6B,GAAGD,CAAC,KAAK,EAAE,oBAAoBC,GAAGD,CAAC;AAAA,QACtD,CAAS,GAAG,IAAI;WACL;AACH,cAAMA,IAAI,IAAI,IAAI,EAAE,IAAI,CAACE,MAAMA,EAAE,EAAE,CAAC,GAAGD,IAAI,IAAI,IAAIF,EAAE,IAAI,CAAC,EAAE,IAAIG,EAAC,MAAOA,CAAC,CAAC;AAC1E,UAAE,OAAO,CAACA,MAAM,CAACD,EAAE,IAAIC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAACA,MAAM;AAC3C,gBAAMC,IAAIjH,EAAE,cAAcgH,EAAE,EAAE;AAC9B,UAAAC,KAAK,CAAC/B,GAAG+B,GAAGD,CAAC,KAAK,EAAE,oBAAoBC,GAAGD,CAAC;AAAA,QAC7C,CAAA,GAAG,IAAI;AAAA;AAAA,UAEN,GAAG,EAAE,OAAO,CAACA,MAAMD,EAAE,IAAIC,EAAE,EAAE,CAAC;AAAA;AAAA,UAE9B,GAAGH,EAAE,OAAO,CAAC,EAAE,IAAIG,QAAQ,CAACF,EAAE,IAAIE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,IAAIA,EAAG,MAAKhH,EAAE,cAAcgH,CAAC,CAAC;AAAA,QACrF;AAAA,MACO;AACD,QAAE,oBAAoB,CAAC;AAAA,IACxB;AAAA,EACF,CAAA,GAAG5G,EAAE,UAAU,CAACyG,MAAM;AACrB,KAAC3D,KAAK2D,IAAI,EAAE,wBAAwB7G,EAAE,cAAc6G,CAAC,CAAC,IAAI3D,KAAK,CAAC2D,IAAI,EAAE,wBAAwB7G,EAAE,cAAckD,CAAC,CAAC,IAAIA,KAAK2D,MAAM,EAAE,wBAAwB7G,EAAE,cAAckD,CAAC,CAAC,GAAG,EAAE,wBAAwBlD,EAAE,cAAc6G,CAAC,CAAC,IAAI3D,IAAI2D;AAAA,EACtO,CAAG,GAAGxG,KAAK,QAAQA,EAAE,UAAU,CAACwG,MAAM,EAAE,qBAAqBA,EAAE,IAAI7G,EAAE,aAAa,CAAC,CAAC,GAAGA,EAAE,QAAQ,CAAC6G,MAAM;AACpG,UAAM,KAAK,aAAa,CAAC,GAAG,IAAI,WAAWhD,GAAG,GAAG;AACjD,UAAM,EAAE,SAASiD,GAAG,SAASC,EAAG,IAAGF,EAAE;AACrC,IAAAC,EAAE,QAAQ,CAACE,MAAM,EAAE,oBAAoBA,CAAC,CAAC,GAAGD,EAAE,QAAQ,CAACC,MAAM,EAAE,oBAAoBA,CAAC,CAAC,GAAGH,EAAE,QAAQ,QAAQ,OAAO,CAACG,MAAM;AAAA,MACtH,GAAGA,EAAE,iBAAiB,CAAE;AAAA,MACxB,GAAGA,EAAE,iBAAiB,CAAE;AAAA,MACxB,GAAGA,EAAE,iBAAiB,CAAE;AAAA,IAC9B,EAAM,SAAS,CAAC,EAAE,QAAQ,CAAC,EAAE,UAAUA,GAAG,UAAUC,QAAQ;AACtD,YAAM,IAAI,EAAE,KAAK,CAACC,MAAMA,EAAE,OAAOF,EAAE,EAAE,KAAKA;AAC1C,UAAI,EAAE,IAAI,CAACE,MAAMA,EAAE,OAAOF,EAAE,KAAKC,IAAIC,CAAC,GAAG,EAAE,oBAAoBD,GAAG,CAAC;AAAA,IACzE,CAAK;AAAA,EACL,GAAK,EAAE,QAAQhB,EAAE,MAAK,CAAE,GAAGjG,EAAE,QAAQ,CAAC6G,MAAM;AACxC,QAAI,GAAG;AACL,YAAMC,IAAI,IAAI,IAAI,EAAE,IAAI,CAACE,MAAMA,EAAE,EAAE,CAAC,GAAGD,IAAIF,EAAE,QAAQ,QAAQ,OAAO,CAAC,EAAE,UAAUG,EAAC,MAAOF,EAAE,IAAIE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,UAAUA,EAAG,MAAKA,CAAC;AAChI,MAAAD,EAAE,SAAS,MAAM,IAAI,EAAE,IAAI,CAACC,MAAMD,EAAE,KAAK,CAACU,MAAMA,EAAE,OAAOT,EAAE,EAAE,KAAKA,CAAC;AAAA,IACpE;AAAA,EACF,GAAE,EAAE,QAAQf,EAAE,OAAQ,CAAA;AACvB,QAAMW,IAAI,CAACC,MAAM,CAACC,MAAM;AACtB,UAAM,EAAE,SAASC,GAAG,SAASC,GAAG,SAASC,EAAG,IAAGH;AAC/C,IAAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,GAAGC,EAAE,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,GAAGH,IAAII,EAAE,QAAQ,CAAC,MAAM,EAAE,oBAAoB,EAAE,UAAU,EAAE,QAAQ,CAAC,IAAIA,EAAE,QAAQ,CAAC,MAAM,EAAE,oBAAoB,EAAE,UAAU,EAAE,QAAQ,CAAC;AAAA,EAChO;AACE,SAAO1H,EAAE,GAAG,QAAQqH,EAAE,EAAE,CAAC,GAAGrH,EAAE,GAAG,QAAQqH,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,GAAG,KAAKzD,GAAG,MAAM;AAC1E,GAAGuE,KAAK,CAACpI,MAAM,CAACC,MAAMA,EAAE,OAAO,CAAC,GAAG,MAAM;AACvC,QAAM,EAAE,QAAQS,GAAG,OAAOG,EAAC,IAAKb,EAAE,MAAM,CAAC;AACzC,SAAOa,IAAI;AAAA,IACT,QAAQ,EAAE;AAAA,IACV,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;AAAA,EAC3B,IAAM;AAAA,IACF,QAAQ,CAAC,GAAG,EAAE,QAAQH,CAAC;AAAA,IACvB,QAAQ,EAAE;AAAA,EACd;AACA,GAAG,EAAE,QAAQ,IAAI,QAAQ,CAAE,EAAA,CAAE,GAAG2H,KAAK,CAACrI,GAAGC,GAAG,MAAM;AAChD,QAAM,EAAE,OAAO,GAAG,WAAWS,EAAC,IAAKV,GAAGa,IAAI,CAACyG,MAAM;AAC/C,QAAI,GAAG;AACL,YAAM,EAAE,QAAQC,GAAG,OAAOC,EAAC,IAAK,EAAE,MAAMF,CAAC;AACzC,MAAAC,IAAI,EAAE,cAAcA,GAAGZ,EAAE,MAAM,IAAI,QAAQ,MAAMa,CAAC;AAAA,IACnD;AACC,QAAE,cAAcF,GAAGX,EAAE,MAAM;AAAA,EAC9B,GAAE7F,IAAI,MAAMJ,EAAE,SAASK,IAAI,MAAM,EAAE,MAAK,GAAI,IAAI,CAACuG,MAAM;AACtD,UAAMC,IAAI,EAAE,cAAcD,CAAC;AAC3B,WAAO,KAAKC,IAAI,EAAE,UAAUA,CAAC,IAAIA;AAAA,EAClC,GAAE,IAAI,MAAM,IAAI,EAAE,IAAG,EAAG,IAAI,EAAE,SAAS,IAAI,EAAE,IAAK,GAAE3D,IAAI,MAAM;AAC7D,QAAI0D;AACJ,UAAMC,OAAOD,IAAI5G,EAAE,aAAa,OAAO,SAAS4G,EAAE,IAAI,CAACE,MAAMA,EAAE,EAAE,MAAM,CAAA,GAAI,IAAI,CAACA,MAAM,EAAE,cAAcA,CAAC,CAAC;AACxG,WAAO,IAAID,EAAE,IAAI,EAAE,SAAS,IAAIA;AAAA,EACpC,GAAK,IAAI,CAACD,MAAM,MAAMA,CAAC,EAAE,KAAK,CAACC,MAAMA,EAAE,KAAI,CAAE,EAAE,KAAK,CAACA,OAAO1D,EAAE0D,CAAC,GAAGA,EAAE,GAAG,IAAI,CAACD,MAAM;AAC9E,QAAI,OAAOA,KAAK,UAAU;AACxB,YAAMC,IAAI,EAAE,cAAcD,CAAC;AAC3B,aAAO,EAAE,iBAAiBA,CAAC,GAAG,IAAI,EAAE,UAAUC,CAAC,IAAIA;AAAA,IACzD,OAAW;AACL,YAAMA,IAAI,IAAI,EAAE,MAAMD,CAAC,EAAE,SAASA;AAClC,aAAO,EAAE,iBAAiBC,CAAC,GAAGD;AAAA,IAC/B;AAAA,EACL,GAAKzD,IAAI,CAACyD,MAAM;AACZ,QAAI,GAAG;AACL,YAAM,EAAE,QAAQC,GAAG,QAAQC,EAAG,IAAGY,GAAG,CAAC,EAAEd,CAAC;AACxC,MAAAE,EAAE,SAAS,KAAK,QAAQ,KAAK,aAAaA,EAAE,MAAM,wBAAwBA,CAAC,GAAG,EAAE,kBAAkBD,GAAG,IAAIZ,EAAE,MAAM;AAAA,IAClH;AACC,QAAE,kBAAkBW,GAAG,IAAIX,EAAE,MAAM;AAAA,EACzC,GAAK,IAAI,CAACW,MAAM;AACZ,IAAAA,IAAI5G,EAAE,YAAY4G,CAAC,IAAI5G,EAAE;EAC7B,GAAK6D,IAAI,CAAC+C,MAAM;AACZ,QAAI,GAAG;AACL,YAAMC,IAAI,EAAE,MAAMD,CAAC,EAAE,QAAQE,IAAI,EAAE,UAAU,EAAE,cAAcD,EAAE,EAAE,CAAC;AAClE,aAAO,EAAE,iBAAiBA,CAAC,GAAGC;AAAA,IACpC,OAAW;AACL,YAAMD,IAAI,EAAE,cAAcD,EAAE,EAAE;AAC9B,aAAO,EAAE,iBAAiBA,CAAC,GAAGC;AAAA,IAC/B;AAAA,EACL;AACE,SAAO;AAAA,IACL,eAAe1G;AAAA,IACf,gBAAgBC;AAAA,IAChB,SAASb,EAAE;AAAA,IACX,SAASA,EAAE;AAAA,IACX,kBAAkBc;AAAA,IAClB,mBAAmB;AAAA,IACnB,gBAAgB;AAAA,IAChB,aAAa6C;AAAA,IACb,iBAAiB;AAAA,IACjB,MAAM3D,EAAE;AAAA,IACR,kBAAkB;AAAA,IAClB,gBAAgB4D;AAAA,IAChB,aAAa;AAAA,IACb,MAAM5D,EAAE;AAAA,IACR,kBAAkBsE;AAAA,EACtB;AACA;AACA,IAAI+D,KAAK,CAACtI,MAAM,OAAO,gBAAgB,IAAI,WAAWA,CAAC,CAAC,GAAGuI,KAAK,CAACvI,GAAGC,GAAG,MAAM;AAC3E,MAAI,KAAK,KAAK,KAAK,IAAID,EAAE,SAAS,CAAC,IAAI,KAAK,OAAO,GAAGU,IAAI,CAAC,EAAE,MAAM,IAAIT,IAAID,EAAE;AAC7E,SAAO,CAACa,IAAIZ,MAAM;AAChB,QAAIa,IAAI;AACR,eAAW;AACT,UAAIC,IAAI,EAAEL,CAAC,GAAG,IAAIA;AAClB,aAAO;AACL,YAAII,KAAKd,EAAEe,EAAE,CAAC,IAAI,CAAC,KAAK,IAAID,EAAE,WAAWD;AACvC,iBAAOC;AAAA,IACZ;AAAA,EACL;AACA,GAAG0H,KAAK,CAACxI,GAAGC,IAAI,OAAOsI,GAAGvI,GAAGC,GAAGqI,EAAE,GAAGG,KAAK,CAACzI,IAAI,OAAO,OAAO,gBAAgB,IAAI,WAAWA,CAAC,CAAC,EAAE,OAAO,CAACC,GAAG,OAAO,KAAK,IAAI,IAAI,KAAKA,KAAK,EAAE,SAAS,EAAE,IAAI,IAAI,KAAKA,MAAM,IAAI,IAAI,SAAS,EAAE,EAAE,YAAW,IAAK,IAAI,KAAKA,KAAK,MAAMA,KAAK,KAAKA,IAAI,EAAE;AAClP,MAAMyI,KAAK,OAAO,EAAE,SAAS,IAAI,IAAIF,GAAG,mEAAmE,EAAE,EAAG,EAAA,IAAKG,KAAK,CAAC3I,MAAM;AAC/H,QAAMC,IAAI,KAAK,UAAUD,CAAC;AAC1B,MAAI,IAAI;AACR,WAAS,IAAI,GAAGU,IAAIT,EAAE,QAAQ,IAAIS,GAAG,KAAK;AACxC,QAAIG,IAAIZ,EAAE,WAAW,CAAC;AACtB,SAAK,KAAK,KAAK,IAAIY,GAAG,KAAK;AAAA,EAC5B;AACD,SAAO,GAAG,CAAC;AACb,GAAG+H,KAAK,CAAC5I,GAAGC,OAAO,MAAM,QAAQD,CAAC,IAAIA,IAAI,CAACA,CAAC,GAAG,IAAI,CAAC,MAAM;AACxD,QAAM,EAAE,IAAI,GAAG,MAAMU,GAAG,SAASG,GAAG,OAAOC,GAAG,SAASC,GAAG,SAAS,GAAG,GAAG,EAAG,IAAG;AAC/E,SAAO;AAAA,IACL,IAAI,KAAK,QAAQ4H,GAAG,CAAC,CAAC;AAAA,IACtB,YAAY1I;AAAA,IACZ,MAAMS;AAAA,IACN,SAASG;AAAA,IACT,OAAOC;AAAA,IACP,SAASC;AAAA,IACT,SAAS,IAAI,OAAO,KAAK,WAAW,EAAE,GAAG,EAAC,IAAK,IAAI;AAAA,IACnD,GAAG;AAAA,EACP;AACA,CAAC,GAAG8H,KAAK,CAAC7I,MAAMA,EAAE,IAAI,CAACC,MAAM;AAC3B,MAAI;AACJ,QAAM,IAAI,EAAE,GAAGA;AACf,SAAO,OAAO,EAAE,aAAa,IAAI,EAAE,OAAO,QAAQ,EAAE,WAAW,OAAO,KAAK,OAAO,EAAE,IAAI;AAC1F,CAAC;AACDwI;AACK,MAACK,KAAK,CAAC9I,GAAGC,IAAI,QAAQ,EAAE,OAAO,CAACS,MAAMqI,GAAGrI,GAAGT,CAAC,GAAG,WAAW,CAACS,MAAMsI,GAAGtI,GAAGV,CAAC,EAAG,IAAG+I,KAAK,CAAC/I,GAAGC,IAAI,OAAO;AACtG,QAAM,IAAID,EAAE,MAAM0F,GAAE,GAAI,EAAE,MAAM,GAAG,GAAGhF,MAAMV,GAAGa,IAAI+H,GAAG,GAAG,CAAC,GAAG9H,IAAI,MAAM,QAAQd,EAAE,MAAM,IAAIA,EAAE,OAAO,CAAC,IAAIA,EAAE,QAAQe,IAAI,MAAM,QAAQD,EAAE,QAAQ,IAAIA,EAAE,SAAS,CAAC,IAAIA,EAAE,UAAU,IAAIC,EAAE,SAAS,qBAAqBuD,GAAGvD,GAAGd,CAAC,IAAIc,EAAE,SAAS,gBAAgBkE,GAAGlE,CAAC,IAAI;AACjQ,SAAO,IAAI;AAAA,IACT,QAAQ;AAAA,MACN,GAAGL;AAAA,MACH,IAAI;AAAA,MACJ,QAAQG;AAAA,MACR,QAAQ;AAAA,QACN,GAAGH,EAAE;AAAA,QACL,YAAY;AAAA,QACZ,UAAU;AAAA,MACX;AAAA,IACF;AAAA,EACL,IAAM;AAAA,IACF,OAAO,MAAM,0BAA0BK,EAAE,IAAI,EAAE;AAAA,EACnD;AACA,GAAGiI,KAAK,CAAChJ,GAAGC,MAAM;AAChB,QAAM,IAAID,EAAE,OAAO,UAAU,IAAI,EAAE,QAAQ,EAAE,YAAYwE,GAAG,EAAE,QAAQ,IAAIU,GAAG,CAAC;AAC9E,SAAO;AAAA,IACL,GAAGlF;AAAA,IACH,YAAY;AAAA,IACZ,IAAIA,EAAE;AAAA,IACN,MAAM;AAAA,IACN,MAAM6I,GAAG7I,EAAE,MAAM;AAAA,IACjB,QAAQ;AAAA,MACN,QAAQC;AAAA,MACR,UAAU;AAAA,IACX;AAAA,EACL;AACA;AACA,SAASgJ,GAAGjJ,GAAGC,GAAG,GAAG;AACnB,QAAM,IAAID,EAAE;AACZ,SAAO,EAAE,EAAE,IAAIC,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,GAAG;AAClC;AACA,SAASiJ,GAAGlJ,GAAG;AACb,MAAIC,GAAG,GAAG,GAAGS,GAAGG;AAChB,SAAO;AAAA,IACL,IAAI;AACF,MAAAZ,IAAIoB,EAAE,MAAM,GAAGK,EAAEzB,GAAG,SAAS,mBAAmB,GAAGyB,EAAEzB,GAAG,KAAK;AAAA,MAC7DD,EAAE,EAAE,EAAE,CAAC;AAAA,MACPA,EAAE,CAAC,IAAI,CAAC,GAAG0B,EAAEzB,GAAG,KAAK;AAAA,MACrBD,EAAE,EAAE,EAAE,CAAC;AAAA,MACPA,EAAE,CAAC,IAAI,CAAC,GAAG0B;AAAA,QACTzB;AAAA,QACA;AAAA;AAAA,QAEAD,EAAE,CAAC;AAAA,MACX,GAAS0B;AAAA,QACDzB;AAAA,QACA;AAAA;AAAA,QAEAD,EAAE,CAAC;AAAA,MACX;AAAA,IACK;AAAA,IACD,EAAEc,GAAGC,GAAG;AACN,MAAAI,EAAEL,GAAGb,GAAGc,CAAC,GAAGL,MAAMG,IAAIY,EAAExB,GAAG,eAAe,WAAW;AACnD;AAAA;AAAA,UAEED,EAAE,EAAE,EAAE;AAAA;AAAA,YAEJA,EAAE,EAAE;AAAA,UAChB,CAAW;AAAA,QACX,KAAaA,EAAE,EAAE,EAAE;AAAA;AAAA,UAETA,EAAE,EAAE;AAAA,QACL,CAAA,EAAE,MAAM,MAAM,SAAS;AAAA,MAChC,CAAO,GAAGU,IAAI;AAAA,IACT;AAAA,IACD,EAAEI,GAAGC,GAAG;AACN,MAAAf,IAAIc,GAAGC;AAAA,MACP,MAAM,OAAO;AAAA,MACbf,EAAE,EAAE,EAAE,CAAC;AAAA,MACPA,EAAE,CAAC,IAAI,MAAM0B,EAAEzB,GAAG,KAAK,CAAC,GAAGc;AAAA,MAC3B,MAAM,OAAO;AAAA,MACbf,EAAE,EAAE,EAAE,CAAC;AAAA,MACPA,EAAE,CAAC,IAAI,MAAM0B,EAAEzB,GAAG,KAAK,CAAC,GAAGc;AAAA,MAC3B,KAAKW;AAAA,QACHzB;AAAA,QACA;AAAA;AAAA,QAEAD,EAAE,CAAC;AAAA,MACX,GAASe;AAAA,MACH,KAAKW;AAAA,QACHzB;AAAA,QACA;AAAA;AAAA,QAEAD,EAAE,CAAC;AAAA,MACX;AAAA,IACK;AAAA,IACD,EAAEc,GAAG;AACH,MAAAA,KAAK,EAAEb,CAAC,GAAGS,IAAI,IAAIG;IACpB;AAAA,EACL;AACA;AACA,SAASsI,GAAGnJ,GAAG;AACb,MAAIC,GAAG,GAAG,GAAGS,GAAGG,GAAGC,GAAGC,GAAG,GAAG,GAAG6C,GAAG;AAAA;AAAA,IAEhC5D,EAAE,CAAC,EAAE;AAAA,KACJ,IAAI,CAAA;AACP,WAAS6D,IAAI,GAAGA,IAAI,EAAE,QAAQA,KAAK;AACjC,MAAEA,CAAC,IAAIqF,GAAGD,GAAGjJ,GAAG,GAAG6D,CAAC,CAAC;AACvB,SAAO;AAAA,IACL,IAAI;AACF,MAAA5D,IAAIoB,EAAE,SAAS,GAAGX,IAAIa,GAAE,GAAIV,IAAIQ,EAAE,SAAS,GAAGN,IAAIQ,GAAE;AACpD,eAASsC,IAAI,GAAGA,IAAI,EAAE,QAAQA,KAAK;AACjC,UAAEA,CAAC,EAAE;AACP,UAAIrC,GAAE,GAAIE,EAAEzB,GAAG,SAAS,WAAW,GAAGyB,EAAEzB,GAAG,SAAS;AAAA,MACpDD,EAAE,CAAC,IAAI,kBAAkB,MAAM,GAAG0B,EAAEzB,GAAG,UAAU;AAAA,MACjDD,EAAE,CAAC,EAAE,OAAO,IAAIoJ,EAAE,EAAE,KAAK,GAAG,CAAC,GAAG1H,EAAEb,GAAG,SAAS,4BAA4B,GAAGa;AAAA,QAC3Eb;AAAA,QACA;AAAA;AAAA,QAEAb,EAAE,CAAC;AAAA,MACX,GAAS0B,EAAEb,GAAG,UAAUC;AAAA,MAClBd,EAAE,CAAC,EAAE,OAAO,IAAIqJ,EAAE,EAAE,KAAK,GAAG,CAAC;AAAA,IAC9B;AAAA,IACD,EAAExF,GAAG,GAAG;AACN,MAAA1C,EAAE0C,GAAG5D,GAAG,CAAC,GAAGkB,EAAE0C,GAAGnD,GAAG,CAAC,GAAGS,EAAE0C,GAAGhD,GAAG,CAAC,GAAGM,EAAE0C,GAAG9C,GAAG,CAAC;AAC7C,eAASwD,IAAI,GAAGA,IAAI,EAAE,QAAQA,KAAK;AACjC,UAAEA,CAAC,KAAK,EAAEA,CAAC,EAAE,EAAEV,GAAG,CAAC;AACrB,MAAA1C,EAAE0C,GAAG,GAAG,CAAC,GAAG,MAAMD,IAAI;AAAA,QACpBnC,EAAExB,GAAG,eAAe,WAAW;AAC7B;AAAA;AAAA,YAEED,EAAE,EAAE,EAAE,EAAE,KAAK;AAAA,UACzB,KAAeA,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,MAAM,SAAS;AAAA,QACnD,CAAS;AAAA,QACDyB,EAAEZ,GAAG,eAAe,WAAW;AAC7B;AAAA;AAAA,YAEEb,EAAE,EAAE,EAAE,EAAE,KAAK;AAAA,UACzB,KAAeA,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,MAAM,SAAS;AAAA,QACnD,CAAS;AAAA,MACT,GAAS,IAAI;AAAA,IACR;AAAA,IACD,EAAE6D,GAAG,GAAG;AACN,UAAI7D,IAAI6D,GAAG;AAAA,MACX,KAAK,OAAO;AAAA,MACZ7D,EAAE,CAAC,IAAI,kBAAkB,WAAW0B,EAAEzB,GAAG,SAAS,CAAC,GAAG;AAAA,MACtD,MAAM,OAAO;AAAA,MACbD,EAAE,CAAC,EAAE,OAAO,IAAIoJ,EAAE,EAAE,KAAK,GAAG,MAAM1H,EAAEzB,GAAG,UAAU,CAAC,GAAG;AAAA,MACrD,KAAKyB;AAAA,QACHb;AAAA,QACA;AAAA;AAAA,QAEAb,EAAE,CAAC;AAAA,MACX,GAAS;AAAA,MACH,MAAMc,OAAOA;AAAA,MACbd,EAAE,CAAC,EAAE,OAAO,IAAIqJ,EAAE,EAAE,KAAK,GAAG,MAAM3H,EAAEb,GAAG,UAAUC,CAAC,GAAG;AAAA,MACrD,MAAM;AACJ;AAAA,QACAd,EAAE,CAAC,EAAE;AACL,YAAIuE;AACJ,aAAKA,IAAI,GAAGA,IAAI,EAAE,QAAQA,KAAK,GAAG;AAChC,gBAAM+C,IAAI2B,GAAGjJ,GAAG,GAAGuE,CAAC;AACpB,YAAEA,CAAC,IAAI,EAAEA,CAAC,EAAE,EAAE+C,GAAG,CAAC,KAAK,EAAE/C,CAAC,IAAI2E,GAAG5B,CAAC,GAAG,EAAE/C,CAAC,EAAE,EAAG,GAAE,EAAEA,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC;AAAA,QACtE;AACD,eAAOA,IAAI,EAAE,QAAQA,KAAK;AACxB,YAAEA,CAAC,EAAE,EAAE,CAAC;AACV,UAAE,SAAS,EAAE;AAAA,MACd;AAAA,IACF;AAAA,IACD,EAAEV,GAAG;AACH,MAAAA,KAAK,EAAE5D,CAAC,GAAG4D,KAAK,EAAEnD,CAAC,GAAGmD,KAAK,EAAEhD,CAAC,GAAGgD,KAAK,EAAE9C,CAAC,GAAGK,GAAG,GAAGyC,CAAC,GAAGA,KAAK,EAAE,CAAC,GAAG,IAAI,IAAIzD,GAAGwD,CAAC;AAAA,IAC9E;AAAA,EACL;AACA;AACA,SAAS0F,GAAGtJ,GAAG;AACb,MAAIC,GAAG;AACP,SAAOA,IAAI,IAAIsJ,GAAG;AAAA,IAChB,OAAO;AAAA,MACL;AAAA;AAAA,QAEEvJ,EAAE,CAAC;AAAA;AAAA,MAEL;AAAA;AAAA,QAEEA,EAAE,CAAC;AAAA;AAAA,MAEL;AAAA;AAAA,QAEEA,EAAE,CAAC;AAAA;AAAA,MAEL,SAAS;AAAA,QACP,SAAS;AAAA,UACPmJ;AAAA,UACA,CAAC,EAAE,MAAM,EAAC,OAAQ,EAAE,IAAI,EAAC;AAAA,UACzB,CAAC,EAAE,MAAM,EAAG,MAAK,IAAI,OAAO;AAAA,QAC7B;AAAA,MACF;AAAA,MACD,SAAS,EAAE,KAAKnJ,EAAG;AAAA,IACpB;AAAA,EACL,CAAG,GAAGC,EAAE;AAAA,IACJ;AAAA;AAAA,IAEAD,EAAE,CAAC;AAAA,EACJ,GAAEC,EAAE;AAAA,IACH;AAAA;AAAA,IAEAD,EAAE,CAAC;AAAA,EACJ,GAAEC,EAAE;AAAA,IACH;AAAA;AAAA,IAEAD,EAAE,CAAC;AAAA,EACP,GAAK;AAAA,IACD,IAAI;AACF,MAAAuD,GAAGtD,EAAE,GAAG,QAAQ;AAAA,IACjB;AAAA,IACD,EAAE,GAAGS,GAAG;AACN,MAAA8C,GAAGvD,GAAG,GAAGS,CAAC,GAAG,IAAI;AAAA,IAClB;AAAA,IACD,EAAE,GAAG,CAACA,CAAC,GAAG;AACR,YAAMG,IAAI,CAAA;AACV,MAAAH;AAAA,MACA,MAAMG,EAAE;AAAA,MACR,EAAE,CAAC,IAAIH;AAAA,MACP,MAAMG,EAAE;AAAA,MACR,EAAE,CAAC,IAAIH;AAAA,MACP,UAAUG,EAAE,UAAU,EAAE,OAAOH,GAAG,KAAK,EAAG,IAAGT,EAAE,KAAKY,CAAC;AAAA,IACtD;AAAA,IACD,EAAE,GAAG;AACH,YAAMwC,EAAEpD,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI;AAAA,IAChC;AAAA,IACD,EAAE,GAAG;AACH,MAAAqD,EAAErD,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI;AAAA,IAC1B;AAAA,IACD,EAAE,GAAG;AACH,MAAAwD,GAAGxD,GAAG,CAAC;AAAA,IACR;AAAA,EACL;AACA;AACA,MAAMmJ,KAAK,CAACpJ,MAAMA,EAAE,KAAK,GAAG,GAAGqJ,KAAK,CAACrJ,MAAMA,EAAE,KAAK,GAAG;AACrD,SAASwJ,GAAGxJ,GAAGC,GAAG,GAAG;AACnB,MAAI,GAAGS,GAAG,EAAE,OAAOG,EAAG,IAAGZ,GAAG,EAAE,eAAea,IAAI,OAAQ,IAAGb,GAAG,EAAE,WAAWc,MAAMd,GAAG,EAAE,eAAe,IAAI,EAAG,IAAGA;AAChH,QAAM,IAAI,CAAC4D,GAAG,GAAGU,MAAM;AACrB,QAAI+C;AACJ,UAAM,EAAE,QAAQA,IAAIzD,EAAE,SAAS,OAAO,IAAI,CAAC,CAAC2D,GAAGC,CAAC,MAAM,CAACD,IAAIjD,EAAE,CAAC,GAAGkD,IAAIlD,EAAE,CAAC,CAAC,CAAC,IAAI+C,IAAIzD,EAAE,SAAS,OAAO,IAAI,CAAC,CAAC2D,GAAGC,CAAC,GAAGC,MAAM,MAAM,EAAEA,CAAC,IAAI,CAACF,IAAIjD,EAAE,CAAC,GAAGkD,IAAIlD,EAAE,CAAC,CAAC,IAAI,CAACiD,GAAGC,CAAC,CAAC;AACjK,UAAMF,IAAIpD,GAAGmD,CAAC;AACd,WAAO,EAAE,GAAGzD,GAAG,UAAU,EAAE,QAAQyD,GAAG,QAAQC,EAAC;EACnD;AACE,WAAS3D,EAAEC,GAAG;AACZ,IAAA1B,GAAG,KAAK,MAAMnC,GAAG6D,CAAC;AAAA,EACnB;AACD,WAAS,EAAEA,GAAG;AACZ,IAAA1B,GAAG,KAAK,MAAMnC,GAAG6D,CAAC;AAAA,EACnB;AACD,WAAS,EAAEA,GAAG;AACZ,IAAA1B,GAAG,KAAK,MAAMnC,GAAG6D,CAAC;AAAA,EACnB;AACD,SAAO7D,EAAE,QAAQ,CAAC6D,MAAM;AACtB,eAAWA,KAAK,EAAE,GAAGhD,IAAIgD,EAAE,KAAK,GAAG,mBAAmBA,KAAK,EAAE,GAAG/C,IAAI+C,EAAE,aAAa,GAAG,eAAeA,KAAK,EAAE,GAAG9C,IAAI8C,EAAE,SAAS,GAAG,mBAAmBA,KAAK,EAAE,GAAG,IAAIA,EAAE,aAAa;AAAA,EACrL,GAAK7D,EAAE,GAAG,SAAS,MAAM;AACrB,IAAAA,EAAE,GAAG;AAAA,IACL,KAAK,EAAE,GAAG,IAAIa,EAAE,QAAQ,GAAGb,EAAE,GAAG;AAAA,IAChC,MAAM,EAAE,GAAGU,IAAI,KAAK,CAAC;AAAA,EACzB,GAAK;AAAA,IACDG;AAAA,IACAC;AAAA,IACAC;AAAA,IACAL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACAkD;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACA;AACA,MAAM6F,WAAW3F,GAAG;AAAA,EAClB,YAAY7D,GAAG;AACb,UAAK,GAAI0D,GAAG,MAAM1D,GAAGuJ,IAAIF,IAAIjJ,GAAG;AAAA,MAC9B,OAAO;AAAA,MACP,eAAe;AAAA,MACf,WAAW;AAAA,MACX,eAAe;AAAA,IACrB,CAAK;AAAA,EACF;AACH;AACA,SAASqJ,GAAG1J,GAAG;AACb,MAAIC,GAAG,GAAG,GAAGS,GAAGG,GAAGC,GAAGC,GAAG,GAAG,GAAG6C,GAAG,GAAG,GAAGC,GAAG,GAAGU,GAAG+C,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAG,GAAGC,GAAGb,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGsC,IAAIC,IAAIC,IAAIC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,IAAIC,IAAIC,IAAIC,GAAGC,IAAIC,IAAIC,IAAIC,GAAGC,IAAIC,IAAIC,IAAIC;AACnK,SAAO;AAAA,IACL,IAAI;AACF,MAAA7K,IAAIoB,EAAE,MAAM,GAAGN,IAAIQ,GAAI,GAAE,IAAIF,EAAE,MAAM,GAAGwC,IAAItC,GAAI,GAAE,IAAIF,EAAE,MAAM,GAAGmG,IAAIjG,GAAE,GAAIkG,IAAIpG,EAAE,MAAM,GAAGuG,IAAIrG,GAAI,GAAEwF,IAAI1F,EAAE,MAAM,GAAG8F,IAAI5F,GAAI,GAAE6F,IAAI/F,EAAE,MAAM,GAAGwI,KAAKtI,GAAE,GAAIuI,IAAIzI,EAAE,MAAM,GAAG4I,IAAI1I,GAAE,GAAI2I,IAAI7I,EAAE,MAAM,GAAGgJ,KAAK9I,GAAE,GAAI+I,IAAIjJ,EAAE,MAAM,GAAGoJ,KAAKlJ,GAAI,GAAEmJ,IAAIrJ,EAAE,MAAM,GAAGK,EAAEzB,GAAG,SAAS,WAAW,GAAGyB,EAAEzB,GAAG,SAAS;AAAA,MAC7RD,EAAE,CAAC,IAAI,kBAAkB,MAAM,GAAG0B,EAAEzB,GAAG,KAAK;AAAA,MAC5CD,EAAE,CAAC,EAAE,CAAC,GAAG0B,EAAEzB,GAAG,KAAKS;AAAA,MACnBV,EAAE,CAAC,EAAE,CAAC,GAAG0B,EAAEzB,GAAG,SAASY;AAAA,MACvBb,EAAE,CAAC,EAAE,CAAC,GAAG0B,EAAEzB,GAAG,UAAUa;AAAA,MACxBd,EAAE,CAAC,EAAE,CAAC,GAAG0B,EAAE,GAAG,SAAS,4BAA4B,GAAGA;AAAA,QACpD;AAAA,QACA;AAAA;AAAA,QAEA1B,EAAE,CAAC;AAAA,MACX,GAAS0B,EAAE,GAAG,KAAK;AAAA,MACb1B,EAAE,CAAC,EAAE,CAAC,GAAG0B,EAAE,GAAG,KAAKkC;AAAA,MACnB5D,EAAE,CAAC,EAAE,CAAC,GAAG0B,EAAE,GAAG,SAAS;AAAA,MACvB1B,EAAE,CAAC,EAAE,CAAC,GAAG0B,EAAE,GAAG,UAAU;AAAA,MACxB1B,EAAE,CAAC,EAAE,CAAC,GAAG0B,EAAE,GAAG,SAAS,qCAAqC,GAAGA,EAAE,GAAG,KAAK6C;AAAA,MACzEvE,EAAE,CAAC,EAAE,CAAC,GAAG0B,EAAE,GAAG,KAAK4F;AAAA,MACnBtH,EAAE,CAAC,EAAE,CAAC,GAAG0B,EAAE,GAAG,UAAU,CAAC,GAAGA,EAAE,GAAG,SAAS6F;AAAA,MAC1CvH,EAAE,CAAC,EAAE,CAAC,GAAG0B,EAAE+F,GAAG,SAAS,uCAAuC,GAAG/F,EAAE+F,GAAG,KAAKC;AAAA,MAC3E1H,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,EAAE,CAAC,GAAG0B,EAAE+F,GAAG,KAAKE;AAAA,MACnB3H,EAAE,CAAC,EAAE,CAAC,GAAG0B,EAAE+F,GAAG,UAAU;AAAA,MACxBzH,EAAE,CAAC,EAAE,CAAC,GAAG0B,EAAE+F,GAAG,SAAS,CAAC,GAAG/F,EAAEqF,GAAG,SAAS,wCAAwC,GAAGrF,EAAEqF,GAAG,KAAKC;AAAA,MAC9FhH,EAAE,CAAC,EAAE,CAAC,GAAG0B,EAAEqF,GAAG,KAAKE;AAAA,MACnBjH,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,EAAE,CAAC,GAAG0B,EAAEqF,GAAG,UAAU,CAAC,GAAGrF,EAAEqF,GAAG,SAASG;AAAA,MAC1ClH,EAAE,CAAC,EAAE,CAAC,GAAG0B,EAAE0F,GAAG,SAAS,sCAAsC,GAAG1F,EAAE0F,GAAG,KAAKC;AAAA,MAC1ErH,EAAE,CAAC,EAAE,CAAC,GAAG0B,EAAE0F,GAAG,KAAKuC;AAAA,MACnB3J,EAAE,CAAC,EAAE,CAAC,GAAG0B,EAAE0F,GAAG,UAAUwC;AAAA,MACxB5J,EAAE,CAAC,EAAE,CAAC,GAAG0B,EAAE0F,GAAG,SAAS,CAAC,GAAG1F,EAAEoI,GAAG,SAAS,6CAA6C,GAAGpI,EAAEoI,GAAG,KAAKC;AAAA,MACnG/J,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,IAAI,CAAC,GAAG0B,EAAEoI,GAAG,KAAKE;AAAA,MACrBhK,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,IAAI,CAAC,GAAG0B;AAAA,QACToI;AAAA,QACA;AAAA;AAAA,QAEA9J,EAAE,CAAC;AAAA,MACX,GAAS0B;AAAA,QACDoI;AAAA,QACA;AAAA;AAAA,QAEA9J,EAAE,CAAC;AAAA,MACX,GAAS0B,EAAEwI,GAAG,SAAS,8CAA8C,GAAGxI,EAAEwI,GAAG,KAAKC;AAAA,MAC5EnK,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,IAAI,CAAC,GAAG0B,EAAEwI,GAAG,KAAKE;AAAA,MACrBpK,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,IAAI,CAAC,GAAG0B;AAAA,QACTwI;AAAA,QACA;AAAA;AAAA,QAEAlK,EAAE,CAAC;AAAA,MACX,GAAS0B;AAAA,QACDwI;AAAA,QACA;AAAA;AAAA,QAEAlK,EAAE,CAAC;AAAA,MACX,GAAS0B,EAAE4I,GAAG,SAAS,iDAAiD,GAAG5I,EAAE4I,GAAG,KAAKC;AAAA,MAC/EvK,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,IAAI,CAAC,GAAG0B,EAAE4I,GAAG,KAAKE;AAAA,MACrBxK,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,IAAI,CAAC,GAAG0B;AAAA,QACT4I;AAAA,QACA;AAAA;AAAA,QAEAtK,EAAE,CAAC;AAAA,MACX,GAAS0B;AAAA,QACD4I;AAAA,QACA;AAAA;AAAA,QAEAtK,EAAE,CAAC;AAAA,MACX,GAAS0B,EAAEgJ,GAAG,SAAS,gDAAgD,GAAGhJ,EAAEgJ,GAAG,KAAKC;AAAA,MAC9E3K,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,IAAI,CAAC,GAAG0B,EAAEgJ,GAAG,KAAKE;AAAA,MACrB5K,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,IAAI,CAAC,GAAG0B;AAAA,QACTgJ;AAAA,QACA;AAAA;AAAA,QAEA1K,EAAE,CAAC;AAAA,MACX,GAAS0B;AAAA,QACDgJ;AAAA,QACA;AAAA;AAAA,QAEA1K,EAAE,CAAC;AAAA,MACX;AAAA,IACK;AAAA,IACD,EAAE+K,GAAGC,GAAG;AACN,MAAA7J,EAAE4J,GAAG9K,GAAG+K,CAAC,GAAG7J,EAAE4J,GAAGhK,GAAGiK,CAAC,GAAG7J,EAAE4J,GAAG,GAAGC,CAAC,GAAG7J,EAAE4J,GAAGlH,GAAGmH,CAAC,GAAG7J,EAAE4J,GAAG,GAAGC,CAAC,GAAG7J,EAAE4J,GAAGvD,GAAGwD,CAAC,GAAG7J,EAAE4J,GAAGtD,GAAGuD,CAAC,GAAG7J,EAAE4J,GAAGnD,GAAGoD,CAAC,GAAG7J,EAAE4J,GAAGhE,GAAGiE,CAAC,GAAG7J,EAAE4J,GAAG5D,GAAG6D,CAAC,GAAG7J,EAAE4J,GAAG3D,GAAG4D,CAAC,GAAG7J,EAAE4J,GAAGlB,IAAImB,CAAC,GAAG7J,EAAE4J,GAAGjB,GAAGkB,CAAC,GAAG7J,EAAE4J,GAAGd,GAAGe,CAAC,GAAG7J,EAAE4J,GAAGb,GAAGc,CAAC,GAAG7J,EAAE4J,GAAGV,IAAIW,CAAC,GAAG7J,EAAE4J,GAAGT,GAAGU,CAAC,GAAG7J,EAAE4J,GAAGN,IAAIO,CAAC,GAAG7J,EAAE4J,GAAGL,GAAGM,CAAC,GAAGH,OAAOC,KAAK;AAAA,QACjPrJ,EAAExB,GAAG,eAAe,WAAW;AAC7B;AAAA;AAAA,YAEED,EAAE,EAAE,EAAE,EAAE,KAAK;AAAA,UACzB,KAAeA,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,MAAM,SAAS;AAAA,QACnD,CAAS;AAAA,QACDyB,EAAE,GAAG,eAAe,WAAW;AAC7B;AAAA;AAAA,YAEEzB,EAAE,EAAE,EAAE,EAAE,KAAK;AAAA,UACzB,KAAeA,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,MAAM,SAAS;AAAA,QACnD,CAAS;AAAA,QACDyB,EAAE,GAAG,eAAe,WAAW;AAC7B;AAAA;AAAA,YAEEzB,EAAE,EAAE,EAAE,EAAE,GAAG;AAAA,UACvB,KAAeA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,MAAM,SAAS;AAAA,QACjD,CAAS;AAAA,QACDyB,EAAEgG,GAAG,eAAe,WAAW;AAC7B;AAAA;AAAA,YAEEzH,EAAE,EAAE,EAAE,EAAE,KAAK;AAAA,UACzB,KAAeA,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,MAAM,SAAS;AAAA,QACnD,CAAS;AAAA,QACDyB,EAAEsF,GAAG,eAAe,WAAW;AAC7B;AAAA;AAAA,YAEE/G,EAAE,EAAE,EAAE,EAAE,MAAM;AAAA,UAC1B,KAAeA,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,MAAM,SAAS;AAAA,QACpD,CAAS;AAAA,QACDyB,EAAE2F,GAAG,eAAe,WAAW;AAC7B;AAAA;AAAA,YAEEpH,EAAE,EAAE,EAAE,EAAE,IAAI;AAAA,UACxB,KAAeA,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,MAAM,SAAS;AAAA,QAClD,CAAS;AAAA,QACDyB,EAAEqI,GAAG,eAAe,WAAW;AAC7B;AAAA;AAAA,YAEE9J,EAAE,EAAE,EAAE,EAAE,QAAQ;AAAA,UAC5B,KAAeA,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,MAAM,SAAS;AAAA,QACtD,CAAS;AAAA,QACDyB,EAAEyI,GAAG,eAAe,WAAW;AAC7B;AAAA;AAAA,YAEElK,EAAE,EAAE,EAAE,EAAE,SAAS;AAAA,UAC7B,KAAeA,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,MAAM,SAAS;AAAA,QACvD,CAAS;AAAA,QACDyB,EAAE6I,GAAG,eAAe,WAAW;AAC7B;AAAA;AAAA,YAEEtK,EAAE,EAAE,EAAE,EAAE,YAAY;AAAA,UAChC,KAAeA,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,MAAM,SAAS;AAAA,QAC1D,CAAS;AAAA,QACDyB,EAAEiJ,GAAG,eAAe,WAAW;AAC7B;AAAA;AAAA,YAEE1K,EAAE,EAAE,EAAE,EAAE,WAAW;AAAA,UAC/B,KAAeA,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,MAAM,SAAS;AAAA,QACzD,CAAS;AAAA,MACT,GAAS6K,KAAK;AAAA,IACT;AAAA,IACD,EAAEE,GAAGC,GAAG;AACN,MAAAhL,IAAI+K,GAAGC;AAAA,MACP,KAAK,OAAO;AAAA,MACZhL,EAAE,CAAC,IAAI,kBAAkB,WAAW0B,EAAEzB,GAAG,SAAS,CAAC,GAAG+K;AAAA,MACtD,MAAM,OAAO;AAAA,MACbhL,EAAE,CAAC,EAAE,MAAM0B,EAAEzB,GAAG,KAAK,CAAC,GAAG+K;AAAA,MACzB,MAAMtK,OAAOA;AAAA,MACbV,EAAE,CAAC,EAAE,MAAM0B,EAAEzB,GAAG,KAAKS,CAAC,GAAGsK;AAAA,MACzB,MAAMnK,OAAOA;AAAA,MACbb,EAAE,CAAC,EAAE,MAAM0B,EAAEzB,GAAG,SAASY,CAAC,GAAGmK;AAAA,MAC7B,MAAMlK,OAAOA;AAAA,MACbd,EAAE,CAAC,EAAE,MAAM0B,EAAEzB,GAAG,UAAUa,CAAC,GAAGkK;AAAA,MAC9B,KAAKtJ;AAAA,QACH;AAAA,QACA;AAAA;AAAA,QAEA1B,EAAE,CAAC;AAAA,MACX,GAASgL;AAAA,MACH,MAAM,OAAO;AAAA,MACbhL,EAAE,CAAC,EAAE,MAAM0B,EAAE,GAAG,KAAK,CAAC,GAAGsJ;AAAA,MACzB,MAAMpH,OAAOA;AAAA,MACb5D,EAAE,CAAC,EAAE,MAAM0B,EAAE,GAAG,KAAKkC,CAAC,GAAGoH;AAAA,MACzB,MAAM,OAAO;AAAA,MACbhL,EAAE,CAAC,EAAE,MAAM0B,EAAE,GAAG,SAAS,CAAC,GAAGsJ;AAAA,MAC7B,MAAM,OAAO;AAAA,MACbhL,EAAE,CAAC,EAAE,MAAM0B,EAAE,GAAG,UAAU,CAAC,GAAGsJ;AAAA,MAC9B,MAAMzG,OAAOA;AAAA,MACbvE,EAAE,CAAC,EAAE,MAAM0B,EAAE,GAAG,KAAK6C,CAAC,GAAGyG;AAAA,MACzB,MAAM1D,OAAOA;AAAA,MACbtH,EAAE,CAAC,EAAE,MAAM0B,EAAE,GAAG,KAAK4F,CAAC,GAAG0D;AAAA,MACzB,MAAMzD,OAAOA;AAAA,MACbvH,EAAE,CAAC,EAAE,MAAM0B,EAAE,GAAG,SAAS6F,CAAC,GAAGyD;AAAA,MAC7B,MAAMtD,OAAOA;AAAA,MACb1H,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,EAAE,MAAM0B,EAAE+F,GAAG,KAAKC,CAAC,GAAGsD;AAAA,MACzB,MAAMrD,OAAOA;AAAA,MACb3H,EAAE,CAAC,EAAE,MAAM0B,EAAE+F,GAAG,KAAKE,CAAC,GAAGqD;AAAA,MACzB,MAAM,OAAO;AAAA,MACbhL,EAAE,CAAC,EAAE,MAAM0B,EAAE+F,GAAG,UAAU,CAAC,GAAGuD;AAAA,MAC9B,MAAMhE,OAAOA;AAAA,MACbhH,EAAE,CAAC,EAAE,MAAM0B,EAAEqF,GAAG,KAAKC,CAAC,GAAGgE;AAAA,MACzB,MAAM/D,OAAOA;AAAA,MACbjH,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,EAAE,MAAM0B,EAAEqF,GAAG,KAAKE,CAAC,GAAG+D;AAAA,MACzB,MAAM9D,OAAOA;AAAA,MACblH,EAAE,CAAC,EAAE,MAAM0B,EAAEqF,GAAG,SAASG,CAAC,GAAG8D;AAAA,MAC7B,MAAM3D,OAAOA;AAAA,MACbrH,EAAE,CAAC,EAAE,MAAM0B,EAAE0F,GAAG,KAAKC,CAAC,GAAG2D;AAAA,MACzB,MAAMrB,QAAQA;AAAA,MACd3J,EAAE,CAAC,EAAE,MAAM0B,EAAE0F,GAAG,KAAKuC,EAAE,GAAGqB;AAAA,MAC1B,MAAMpB,QAAQA;AAAA,MACd5J,EAAE,CAAC,EAAE,MAAM0B,EAAE0F,GAAG,UAAUwC,EAAE,GAAGoB;AAAA,MAC/B,MAAMjB,OAAOA;AAAA,MACb/J,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,IAAI,MAAM0B,EAAEoI,GAAG,KAAKC,CAAC,GAAGiB;AAAA,MAC3B,MAAMhB,OAAOA;AAAA,MACbhK,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,IAAI,MAAM0B,EAAEoI,GAAG,KAAKE,CAAC,GAAGgB;AAAA,MAC3B,KAAKtJ;AAAA,QACHoI;AAAA,QACA;AAAA;AAAA,QAEA9J,EAAE,CAAC;AAAA,MACX,GAASgL;AAAA,MACH,KAAKtJ;AAAA,QACHoI;AAAA,QACA;AAAA;AAAA,QAEA9J,EAAE,CAAC;AAAA,MACX,GAASgL;AAAA,MACH,MAAMb,QAAQA;AAAA,MACdnK,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,IAAI,MAAM0B,EAAEwI,GAAG,KAAKC,EAAE,GAAGa;AAAA,MAC5B,MAAMZ,QAAQA;AAAA,MACdpK,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,IAAI,MAAM0B,EAAEwI,GAAG,KAAKE,EAAE,GAAGY;AAAA,MAC5B,KAAKtJ;AAAA,QACHwI;AAAA,QACA;AAAA;AAAA,QAEAlK,EAAE,CAAC;AAAA,MACX,GAASgL;AAAA,MACH,KAAKtJ;AAAA,QACHwI;AAAA,QACA;AAAA;AAAA,QAEAlK,EAAE,CAAC;AAAA,MACX,GAASgL;AAAA,MACH,MAAMT,QAAQA;AAAA,MACdvK,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,IAAI,MAAM0B,EAAE4I,GAAG,KAAKC,EAAE,GAAGS;AAAA,MAC5B,MAAMR,QAAQA;AAAA,MACdxK,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,IAAI,MAAM0B,EAAE4I,GAAG,KAAKE,EAAE,GAAGQ;AAAA,MAC5B,KAAKtJ;AAAA,QACH4I;AAAA,QACA;AAAA;AAAA,QAEAtK,EAAE,CAAC;AAAA,MACX,GAASgL;AAAA,MACH,KAAKtJ;AAAA,QACH4I;AAAA,QACA;AAAA;AAAA,QAEAtK,EAAE,CAAC;AAAA,MACX,GAASgL;AAAA,MACH,MAAML,QAAQA;AAAA,MACd3K,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,IAAI,MAAM0B,EAAEgJ,GAAG,KAAKC,EAAE,GAAGK;AAAA,MAC5B,MAAMJ,QAAQA;AAAA,MACd5K,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,EAAE;AAAA,MACLA,EAAE,CAAC,IAAI,MAAM0B,EAAEgJ,GAAG,KAAKE,EAAE,GAAGI;AAAA,MAC5B,KAAKtJ;AAAA,QACHgJ;AAAA,QACA;AAAA;AAAA,QAEA1K,EAAE,CAAC;AAAA,MACX,GAASgL;AAAA,MACH,KAAKtJ;AAAA,QACHgJ;AAAA,QACA;AAAA;AAAA,QAEA1K,EAAE,CAAC;AAAA,MACX;AAAA,IACK;AAAA,IACD,EAAE+K,GAAG;AACH,MAAAA,KAAK,EAAE9K,CAAC,GAAG8K,KAAK,EAAEhK,CAAC,GAAGgK,KAAK,EAAE,CAAC,GAAGA,KAAK,EAAElH,CAAC,GAAGkH,KAAK,EAAE,CAAC,GAAGA,KAAK,EAAEvD,CAAC,GAAGuD,KAAK,EAAEtD,CAAC,GAAGsD,KAAK,EAAEnD,CAAC,GAAGmD,KAAK,EAAEhE,CAAC,GAAGgE,KAAK,EAAE5D,CAAC,GAAG4D,KAAK,EAAE3D,CAAC,GAAG2D,KAAK,EAAElB,EAAE,GAAGkB,KAAK,EAAEjB,CAAC,GAAGiB,KAAK,EAAEd,CAAC,GAAGc,KAAK,EAAEb,CAAC,GAAGa,KAAK,EAAEV,EAAE,GAAGU,KAAK,EAAET,CAAC,GAAGS,KAAK,EAAEN,EAAE,GAAGM,KAAK,EAAEL,CAAC,GAAGG,KAAK,IAAIzK,GAAG0K,EAAE;AAAA,IACnO;AAAA,EACL;AACA;AACA,SAASG,GAAGjL,GAAG;AACb,MAAIC,GAAG;AACP,SAAOA,IAAI,IAAIsJ,GAAG;AAAA,IAChB,OAAO;AAAA,MACL;AAAA;AAAA,QAEEvJ,EAAE,CAAC;AAAA;AAAA,MAEL;AAAA;AAAA,QAEEA,EAAE,CAAC;AAAA;AAAA,MAEL;AAAA;AAAA,QAEEA,EAAE,CAAC;AAAA;AAAA,MAEL,SAAS;AAAA,QACP,SAAS;AAAA,UACP0J;AAAA,UACA,CAAC,EAAE,MAAM,EAAC,OAAQ,EAAE,IAAI,EAAC;AAAA,UACzB,CAAC,EAAE,MAAM,EAAG,MAAK,IAAI,OAAO;AAAA,QAC7B;AAAA,MACF;AAAA,MACD,SAAS,EAAE,KAAK1J,EAAG;AAAA,IACpB;AAAA,EACL,CAAG,GAAGC,EAAE;AAAA,IACJ;AAAA;AAAA,IAEAD,EAAE,CAAC;AAAA,EACJ,GAAEC,EAAE;AAAA,IACH;AAAA;AAAA,IAEAD,EAAE,CAAC;AAAA,EACJ,GAAEC,EAAE;AAAA,IACH;AAAA;AAAA,IAEAD,EAAE,CAAC;AAAA,EACP,GAAK;AAAA,IACD,IAAI;AACF,MAAAuD,GAAGtD,EAAE,GAAG,QAAQ;AAAA,IACjB;AAAA,IACD,EAAE,GAAGS,GAAG;AACN,MAAA8C,GAAGvD,GAAG,GAAGS,CAAC,GAAG,IAAI;AAAA,IAClB;AAAA,IACD,EAAE,GAAG,CAACA,CAAC,GAAG;AACR,YAAMG,IAAI,CAAA;AACV,MAAAH;AAAA,MACA,MAAMG,EAAE;AAAA,MACR,EAAE,CAAC,IAAIH;AAAA,MACP,MAAMG,EAAE;AAAA,MACR,EAAE,CAAC,IAAIH;AAAA,MACP,SAASG,EAAE,UAAU,EAAE,OAAOH,GAAG,KAAK,EAAG,IAAGT,EAAE,KAAKY,CAAC;AAAA,IACrD;AAAA,IACD,EAAE,GAAG;AACH,YAAMwC,EAAEpD,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI;AAAA,IAChC;AAAA,IACD,EAAE,GAAG;AACH,MAAAqD,EAAErD,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI;AAAA,IAC1B;AAAA,IACD,EAAE,GAAG;AACH,MAAAwD,GAAGxD,GAAG,CAAC;AAAA,IACR;AAAA,EACL;AACA;AACA,SAASiL,GAAGlL,GAAGC,GAAG,GAAG;AACnB,MAAI,GAAGS,GAAG,EAAE,OAAOG,EAAG,IAAGZ,GAAG,EAAE,eAAea,IAAI,OAAQ,IAAGb,GAAG,EAAE,WAAWc,MAAMd,GAAG,EAAE,eAAe,IAAI,EAAG,IAAGA;AAChH,QAAM,IAAI,CAAC4D,GAAG,GAAGU,MAAM;AACrB,UAAM+C,IAAIzD,EAAE,SAAS;AACrB,QAAI,CAAC0D,GAAGC,CAAC,IAAI,CAACF,EAAE,MAAMA,EAAE,IAAI,GAAG,CAACG,GAAGC,CAAC,IAAI,CAACJ,EAAE,MAAMA,EAAE,IAAI;AACvD,UAAM,CAACK,GAAG,CAAC,IAAIpD;AACf,QAAI,MAAM,EAAE;AACV,MAAAgD,KAAKI,GAAGF,KAAKE,GAAGH,KAAK,GAAGE,KAAK;AAAA,SAC1B;AACH,cAAQ,GAAC;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE,WAAW;AAChB,UAAAF,KAAK;AACL;AAAA,QACD;AAAA,QACD,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE,cAAc;AACnB,UAAAE,KAAK;AACL;AAAA,QACD;AAAA,MACF;AACD,cAAQ,GAAC;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE,aAAa;AAClB,UAAAH,KAAKI;AACL;AAAA,QACD;AAAA,QACD,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE,cAAc;AACnB,UAAAF,KAAKE;AACL;AAAA,QACD;AAAA,MACF;AAAA,IACF;AACD,UAAMC,IAAI,KAAK,IAAIL,GAAGE,CAAC,GAAGV,IAAI,KAAK,IAAIS,GAAGE,CAAC,GAAGV,IAAI,KAAK,IAAIS,IAAIF,CAAC,GAAGN,IAAI,KAAK,IAAIS,IAAIF,CAAC;AACrF,WAAO;AAAA,MACL,GAAG3D;AAAA,MACH,UAAU;AAAA,QACR,GAAG+D;AAAA,QACH,GAAAb;AAAA,QACA,GAAGC;AAAA,QACH,GAAGC;AAAA,QACH,QAAQ;AAAA,UACN,MAAMW;AAAA,UACN,MAAMb;AAAA,UACN,MAAMa,IAAIZ;AAAA,UACV,MAAMD,IAAIE;AAAA,QACX;AAAA,MACF;AAAA,IACP;AAAA,EACA;AACE,WAASrD,EAAEC,GAAG;AACZ,IAAA1B,GAAG,KAAK,MAAMnC,GAAG6D,CAAC;AAAA,EACnB;AACD,WAAS,EAAEA,GAAG;AACZ,IAAA1B,GAAG,KAAK,MAAMnC,GAAG6D,CAAC;AAAA,EACnB;AACD,WAAS,EAAEA,GAAG;AACZ,IAAA1B,GAAG,KAAK,MAAMnC,GAAG6D,CAAC;AAAA,EACnB;AACD,SAAO7D,EAAE,QAAQ,CAAC6D,MAAM;AACtB,eAAWA,KAAK,EAAE,GAAGhD,IAAIgD,EAAE,KAAK,GAAG,mBAAmBA,KAAK,EAAE,GAAG/C,IAAI+C,EAAE,aAAa,GAAG,eAAeA,KAAK,EAAE,GAAG9C,IAAI8C,EAAE,SAAS,GAAG,mBAAmBA,KAAK,EAAE,GAAG,IAAIA,EAAE,aAAa;AAAA,EACrL,GAAK7D,EAAE,GAAG,SAAS,MAAM;AACrB,IAAAA,EAAE,GAAG;AAAA,IACL,KAAK,EAAE,GAAG,IAAIa,EAAE,QAAQ,GAAGb,EAAE,GAAG;AAAA,IAChC,MAAM,EAAE,GAAGU,IAAI,KAAK,CAAC;AAAA,EACzB,GAAK;AAAA,IACDG;AAAA,IACAC;AAAA,IACAC;AAAA,IACAL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACAkD;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACA;AACA,MAAM,WAAWE,GAAG;AAAA,EAClB,YAAY7D,GAAG;AACb,UAAK,GAAI0D,GAAG,MAAM1D,GAAGiL,IAAID,IAAI5K,GAAG;AAAA,MAC9B,OAAO;AAAA,MACP,eAAe;AAAA,MACf,WAAW;AAAA,MACX,eAAe;AAAA,IACrB,CAAK;AAAA,EACF;AACH;AACK,MAAC8K,KAAqB,oBAAI,IAAI;AAAA,EACjC,CAAC,EAAE,WAAW,EAAE;AAAA,EAChB,CAAC,EAAE,SAAS1B,EAAE;AAChB,CAAC,GAAG2B,KAAK,CAACpL,MAAMmL,GAAG,IAAInL,EAAE,IAAI,GAAGqL,KAAK,CAACrL,GAAGC,MAAMkL,GAAG,IAAInL,GAAGC,CAAC,GAAG,IAAI,CAACD,MAAM,UAAUA,CAAC;AACnF,EAAE,QAAQ;AACV,EAAE,MAAM;AACR,EAAE,QAAQ;AACV,EAAE,SAAS;AACX,EAAE,OAAO;AACT,EAAE,WAAW;AACb,EAAE,YAAY;AACd,EAAE,eAAe;AACjB,EAAE,cAAc;AAChB,MAAMsL,KAAK,CAACtL,OAAO,CAAE,IAAGuL,KAAK,CAACvL,OAAO,EAAE;AAAA;AAAA,EAErCA,EAAE,CAAC;AAAA,EACJ;AACD,SAASwL,GAAGxL,GAAG;AACb,MAAIC,GAAG,GAAG,GAAGS;AACb,QAAMG;AAAA;AAAA,IAEJb,EAAE,CAAC,EAAE;AAAA,KACJc,IAAIL;AAAA,IACLI;AAAA,IACAb;AAAA;AAAA,IAEAA,EAAE,CAAC;AAAA,IACHuL;AAAA,EACJ;AACE,SAAO;AAAA,IACL,IAAI;AACF,MAAAtL,IAAIoB,EAAE,GAAG,GAAGP,KAAKA,EAAE,EAAG,GAAEY,EAAEzB,GAAG,SAAS,yBAAyB;AAAA,IAChE;AAAA,IACD,EAAEc,GAAG,GAAG;AACN,MAAAI,EAAEJ,GAAGd,GAAG,CAAC,GAAGa,KAAKA,EAAE,EAAEb,GAAG,IAAI,GAAG,IAAI,IAAI,MAAMS,IAAI;AAAA,QAC/Ce;AAAA,UACExB;AAAA,UACA;AAAA;AAAA,UAEAD,EAAE,CAAC;AAAA,QACJ;AAAA,QACDyB;AAAA,UACExB;AAAA,UACA;AAAA;AAAA,UAEAD,EAAE,CAAC;AAAA,QACJ;AAAA,MACT,GAAS,IAAI;AAAA,IACR;AAAA,IACD,EAAEe,GAAG,CAAC,CAAC,GAAG;AACR,MAAAD,KAAKA,EAAE,MAAM,CAAC,KAAK;AAAA,MACnB,OAAOE;AAAA,QACLF;AAAA,QACAD;AAAA,QACAE;AAAA;AAAA,QAEAA,EAAE,CAAC;AAAA,QACH,IAAIH;AAAA,UACFC;AAAA;AAAA,UAEAE,EAAE,CAAC;AAAA,UACH;AAAA,UACAuK;AAAA,QACV,IAAYrK;AAAA;AAAA,UAEFF,EAAE,CAAC;AAAA,QACJ;AAAA,QACDwK;AAAA,MACR;AAAA,IACK;AAAA,IACD,EAAExK,GAAG;AACH,YAAMsC,EAAEvC,GAAGC,CAAC,GAAG,IAAI;AAAA,IACpB;AAAA,IACD,EAAEA,GAAG;AACH,MAAAuC,EAAExC,GAAGC,CAAC,GAAG,IAAI;AAAA,IACd;AAAA,IACD,EAAEA,GAAG;AACH,MAAAA,KAAK,EAAEd,CAAC,GAAGa,KAAKA,EAAE,EAAEC,CAAC,GAAG,IAAI,IAAIX,GAAGM,CAAC;AAAA,IACrC;AAAA,EACL;AACA;AACA,SAAS+K,GAAGzL,GAAGC,GAAG,GAAG;AACnB,MAAI,EAAE,SAAS,IAAI,CAAA,GAAI,SAASS,EAAG,IAAGT;AACtC,QAAMY,IAAIqB;AACV,MAAI,EAAE,OAAOpB,EAAG,IAAGb,GAAG,EAAE,QAAQc,EAAC,IAAKd,GAAG,EAAE,WAAW,EAAG,IAAGA,GAAG,IAAI,MAAM2D,GAAG,IAAI;AAChF,QAAM,IAAI,CAACW,MAAM,CAAC+C,MAAM;AACtB,QAAI/C,GAAGX,IAAI,EAAE,eAAe0D,EAAE,SAASA,EAAE,OAAO,GAAG,IAAIxG,GAAGwG,EAAE,OAAO,kBAAkBA,EAAE,SAAS,GAAGzG,EAAE,MAAM;AAAA,EAC/G,GAAKgD,IAAI,CAACU,MAAM;AACZ,QAAI,GAAG;AACL,YAAM,CAAC+C,GAAGC,CAAC,IAAI,EAAE,eAAehD,EAAE,SAASA,EAAE,OAAO,GAAGiD,IAAI,CAACF,IAAI1D,EAAE,CAAC,GAAG2D,IAAI3D,EAAE,CAAC,CAAC;AAC9E,QAAE,GAAG9C,IAAIC,EAAE,GAAG,GAAGyG,CAAC,CAAC,GAAG3G,EAAE,UAAUC,CAAC;AAAA,IACpC;AAAA,EACL,GAAK,IAAI,CAACyD,MAAM;AACZ,IAAAA,EAAE,OAAO,sBAAsBA,EAAE,SAAS,GAAG,IAAI,MAAM,IAAIzD,GAAGD,EAAE,SAAS;AAAA,EAC7E;AACE,SAAOb,EAAE,QAAQ,CAACuE,MAAM;AACtB,eAAWA,KAAK,EAAE,GAAGzD,IAAIyD,EAAE,KAAK,GAAG,YAAYA,KAAK,EAAE,GAAGxD,IAAIwD,EAAE,MAAM,GAAG,eAAeA,KAAK,EAAE,GAAG,IAAIA,EAAE,SAAS,GAAG,aAAaA,KAAK,EAAE,GAAG7D,IAAI6D,EAAE,OAAO;AAAA,EAC3J,GAAK,CAAC,GAAGV,GAAG,GAAG/C,GAAGC,GAAG,GAAGL,GAAG,CAAC;AAC5B;AACA,MAAM6I,WAAWzF,GAAG;AAAA,EAClB,YAAY7D,GAAG;AACb,UAAK,GAAI0D,GAAG,MAAM1D,GAAGwL,IAAID,IAAInL,GAAG,EAAE,OAAO,GAAG,QAAQ,GAAG,WAAW,EAAC,CAAE;AAAA,EACtE;AACH;AACA,MAAMqL,KAAK,CAAC1L,GAAGC,MAAM;AACnB,QAAM,IAAI,OAAOA,KAAK,aAAaA,EAAED,CAAC,IAAIC;AAC1C,MAAI,GAAG;AACL,UAAM,EAAE,MAAM,GAAG,aAAaS,EAAC,IAAK;AACpC,QAAIG,IAAI;AACR,WAAO,MAAMA,KAAK,QAAQ,CAAC,WAAW,CAAC,MAAMA,KAAK,gBAAgBH,KAAK,MAAM,KAAKG;AAAA,EACnF;AACH;AACA,SAAS8K,GAAG3L,GAAGC,GAAG,GAAG;AACnB,MAAI;AACJ,QAAMS,IAAIwB;AACV,MAAI,EAAE,YAAYrB,MAAMZ,GAAG,EAAE,QAAQa,EAAG,IAAGb,GAAG,EAAE,OAAOc,IAAI,OAAQ,IAAGd,GAAG,EAAE,QAAQ,EAAC,IAAKA,GAAG,EAAE,WAAW,MAAMA,GAAG,EAAE,eAAe2D,EAAC,IAAK3D,GAAG;AAC5I,SAAOgC,GAAG,OAAO,EAAE,GAAG,IAAI,IAAInB,EAAE;AAAA,IAC9B,QAAQ;AAAA,IACR,OAAO;AAAA,MACL,OAAOD,EAAE,OAAO;AAAA,MAChB,eAAe;AAAA,MACf,WAAW;AAAA,MACX,eAAe+C;AAAA,IAChB;AAAA,EACF,CAAA,CAAC,GAAG,EAAE,IAAI,UAAU,CAAC,MAAM;AAC1B,MAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAGlD,EAAE,UAAU,EAAE,MAAM;AAAA,EACtD,CAAG,GAAG,EAAE,IAAI,QAAQ,CAAC,MAAMA,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,WAAW,CAAC,MAAMA,EAAE,WAAW,EAAE,MAAM,CAAC,GAAG,MAAM;AACpG,MAAE,SAAQ;AAAA,EACX,EAAC,GAAGV,EAAE,QAAQ,CAAC,MAAM;AACpB,oBAAgB,KAAK,EAAE,GAAGa,IAAI,EAAE,UAAU,GAAG,YAAY,KAAK,EAAE,GAAGC,IAAI,EAAE,MAAM,GAAG,WAAW,KAAK,EAAE,GAAGC,IAAI,EAAE,KAAK,GAAG,YAAY,KAAK,EAAE,GAAG,IAAI,EAAE,MAAM,GAAG,eAAe,KAAK,EAAE,GAAG,IAAI,EAAE,SAAS,GAAG,mBAAmB,KAAK,EAAE,GAAG6C,IAAI,EAAE,aAAa;AAAA,EACzP,GAAK5D,EAAE,GAAG,SAAS,MAAM;AACrB,IAAAA,EAAE,GAAG;AAAA,IACL,MAAM,IAAI0L,GAAG7K,GAAGE,CAAC,IAAIf,EAAE,GAAG;AAAA,IAC1B,MAAMa,MAAM,KAAK,QAAQ,EAAE,KAAK,EAAE,OAAOA,EAAE,OAAO,SAAU,CAAA,IAAIb,EAAE,GAAG;AAAA,IACrE,MAAM,KAAK,EAAE,KAAK,EAAE,WAAW,GAAG,GAAGA,EAAE,GAAG;AAAA,IAC1C,MAAM,KAAK,EAAE,KAAK,EAAE,eAAe4D,EAAC,CAAE;AAAA,EAC1C,GAAK,CAAC/C,GAAGC,GAAGC,GAAG,GAAG,GAAG6C,GAAG,CAAC;AACzB;AACA,MAAMgI,WAAW9H,GAAG;AAAA,EAClB,YAAY7D,GAAG;AACb,UAAK,GAAI0D,GAAG,MAAM1D,GAAG0L,IAAI,MAAMtL,GAAG;AAAA,MAChC,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,eAAe;AAAA,IACrB,CAAK;AAAA,EACF;AACH;AACA,SAASwL,GAAG7L,GAAGC,GAAG,GAAG;AACnB,QAAM,IAAIiC;AACV,MAAI,EAAE,aAAaxB,EAAC,IAAKT,GAAG,EAAE,QAAQY,EAAG,IAAGZ,GAAG,EAAE,MAAMa,EAAG,IAAGb,GAAG,EAAE,WAAWc,MAAMd,GAAG,EAAE,eAAe,EAAC,IAAKA,GAAG;AAChH,SAAOgC,GAAG,MAAM;AACd,UAAM2B,IAAI/C,EAAE,QAAQ,KAAK,GAAG,IAAI,CAAE,GAAE,IAAI,CAACgD,GAAG,GAAGU,MAAM;AACnD,MAAAX,EAAE,iBAAiBC,GAAG,GAAGU,CAAC,GAAG,EAAE,KAAK,MAAMX,EAAE,oBAAoBC,GAAG,GAAGU,CAAC,CAAC;AAAA,IAC9E;AACI,WAAO,EAAE,GAAG,IAAI,IAAIzD,EAAE;AAAA,MACpB,QAAQD;AAAA,MACR,OAAO;AAAA,QACL,kBAAkB;AAAA,QAClB,aAAaH;AAAA,QACb,WAAWK;AAAA,QACX,eAAe;AAAA,MAChB;AAAA,IACF,CAAA,CAAC,GAAG,EAAE,IAAI,UAAU,CAAC8C,MAAM,EAAE,UAAUA,EAAE,MAAM,CAAC,GAAG,MAAM;AACxD,QAAE,QAAQ,CAACA,MAAMA,EAAC,CAAE,GAAG,EAAE;IAC/B;AAAA,EACG,CAAA,GAAG7D,EAAE,QAAQ,CAAC4D,MAAM;AACnB,qBAAiBA,KAAK,EAAE,GAAGlD,IAAIkD,EAAE,WAAW,GAAG,YAAYA,KAAK,EAAE,GAAG/C,IAAI+C,EAAE,MAAM,GAAG,UAAUA,KAAK,EAAE,GAAG9C,IAAI8C,EAAE,IAAI,GAAG,eAAeA,KAAK,EAAE,GAAG7C,IAAI6C,EAAE,SAAS,GAAG,mBAAmBA,KAAK,EAAE,GAAG,IAAIA,EAAE,aAAa;AAAA,EACpN,GAAK5D,EAAE,GAAG,SAAS,MAAM;AACrB,IAAAA,EAAE,GAAG;AAAA,IACL,MAAM,KAAK,EAAE,KAAK,EAAE,WAAWe,GAAG,GAAGf,EAAE,GAAG;AAAA,IAC1C,MAAM,KAAK,EAAE,KAAK,EAAE,eAAe,EAAC,CAAE;AAAA,EAC1C,GAAK,CAACU,GAAGG,GAAGC,GAAGC,GAAG,GAAG,CAAC;AACtB;AACA,MAAM+K,WAAWhI,GAAG;AAAA,EAClB,YAAY7D,GAAG;AACb,UAAK,GAAI0D,GAAG,MAAM1D,GAAG4L,IAAI,MAAMxL,GAAG;AAAA,MAChC,aAAa;AAAA,MACb,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,MACX,eAAe;AAAA,IACrB,CAAK;AAAA,EACF;AACH;AACA,SAAS0L,GAAG/L,GAAG;AACb,MAAIC,GAAG;AACP,SAAO;AAAA,IACL,IAAI;AACF,MAAAA,IAAIoB,EAAE,MAAM,GAAG,IAAIA,EAAE,MAAM,GAAGK,EAAEzB,GAAG,SAAS,WAAW,GAAGyB;AAAA,QACxDzB;AAAA,QACA;AAAA;AAAA,QAEAD,EAAE,CAAC;AAAA,MACX,GAAS0B;AAAA,QACDzB;AAAA,QACA;AAAA;AAAA,QAEAD,EAAE,CAAC;AAAA,MACX,GAAS0B;AAAA,QACDzB;AAAA,QACA;AAAA;AAAA,QAEAD,EAAE,CAAC;AAAA,MACX,GAAS0B;AAAA,QACDzB;AAAA,QACA;AAAA;AAAA,QAEAD,EAAE,CAAC;AAAA,MACJ,GAAE0B,EAAE,GAAG,SAAS,WAAW,GAAGA;AAAA,QAC7B;AAAA,QACA;AAAA;AAAA,QAEA1B,EAAE,CAAC;AAAA,MACX,GAAS0B;AAAA,QACD;AAAA,QACA;AAAA;AAAA,QAEA1B,EAAE,CAAC;AAAA,MACX,GAAS0B;AAAA,QACD;AAAA,QACA;AAAA;AAAA,QAEA1B,EAAE,CAAC;AAAA,MACX,GAAS0B;AAAA,QACD;AAAA,QACA;AAAA;AAAA,QAEA1B,EAAE,CAAC;AAAA,MACX;AAAA,IACK;AAAA,IACD,EAAE,GAAGU,GAAG;AACN,MAAAS,EAAE,GAAGlB,GAAGS,CAAC,GAAGS,EAAE,GAAG,GAAGT,CAAC;AAAA,IACtB;AAAA,IACD,EAAE,GAAGA,GAAG;AACN,MAAAA;AAAA,MACA,KAAKgB;AAAA,QACHzB;AAAA,QACA;AAAA;AAAA,QAEA,EAAE,CAAC;AAAA,MACX,GAASS;AAAA,MACH,KAAKgB;AAAA,QACHzB;AAAA,QACA;AAAA;AAAA,QAEA,EAAE,CAAC;AAAA,MACX,GAASS;AAAA,MACH,KAAKgB;AAAA,QACHzB;AAAA,QACA;AAAA;AAAA,QAEA,EAAE,CAAC;AAAA,MACX,GAASS;AAAA,MACH,MAAMgB;AAAA,QACJzB;AAAA,QACA;AAAA;AAAA,QAEA,EAAE,CAAC;AAAA,MACX,GAASS;AAAA,MACH,KAAKgB;AAAA,QACH;AAAA,QACA;AAAA;AAAA,QAEA,EAAE,CAAC;AAAA,MACX,GAAShB;AAAA,MACH,KAAKgB;AAAA,QACH;AAAA,QACA;AAAA;AAAA,QAEA,EAAE,CAAC;AAAA,MACX,GAAShB;AAAA,MACH,KAAKgB;AAAA,QACH;AAAA,QACA;AAAA;AAAA,QAEA,EAAE,CAAC;AAAA,MACX,GAAShB;AAAA,MACH,MAAMgB;AAAA,QACJ;AAAA,QACA;AAAA;AAAA,QAEA,EAAE,CAAC;AAAA,MACX;AAAA,IACK;AAAA,IACD,EAAE,GAAG;AACH,WAAK,EAAEzB,CAAC,GAAG,KAAK,EAAE,CAAC;AAAA,IACpB;AAAA,EACL;AACA;AACA,SAAS+L,GAAGhM,GAAG;AACb,MAAIC,GAAG;AAAA;AAAA,IAELD,EAAE,CAAC,KAAK+L,GAAG/L,CAAC;AAAA;AAEd,SAAO;AAAA,IACL,IAAI;AACF,MAAAC,IAAIoB,EAAE,GAAG,GAAG,KAAK,EAAE,EAAG,GAAEK,EAAEzB,GAAG,SAAS,+BAA+B;AAAA,IACtE;AAAA,IACD,EAAE,GAAGS,GAAG;AACN,MAAAS,EAAE,GAAGlB,GAAGS,CAAC,GAAG,KAAK,EAAE,EAAET,GAAG,IAAI;AAAA,IAC7B;AAAA,IACD,EAAE,GAAG,CAACS,CAAC,GAAG;AAER,QAAE,CAAC,IAAI,IAAI,EAAE,EAAE,GAAGA,CAAC,KAAK,IAAIqL,GAAG,CAAC,GAAG,EAAE,EAAG,GAAE,EAAE,EAAE9L,GAAG,IAAI,KAAK,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI;AAAA,IAC7E;AAAA,IACD,GAAGH;AAAA,IACH,GAAGA;AAAA,IACH,EAAE,GAAG;AACH,WAAK,EAAEG,CAAC,GAAG,KAAK,EAAE;IACnB;AAAA,EACL;AACA;AACA,SAASgM,GAAGjM,GAAGC,GAAG,GAAG;AACnB,QAAM,IAAIiC;AACV,MAAI,EAAE,kBAAkBxB,MAAMT,GAAG,EAAE,aAAaY,MAAMZ,GAAG,EAAE,WAAWa,MAAMb,GAAGc,GAAG,GAAG,GAAG6C,GAAG,GAAG,GAAGC;AACjG,QAAM,IAAI,CAAC2D,MAAM;AACf,IAAAzG,IAAI,YAAY,OAAOF,MAAM,WAAW,EAAE,GAAG,IAAIC,EAAE,eAAe0G,EAAE,SAASA,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG5D,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAGC,IAAI,CAAC;AAAA,EAC5J,GAAKU,IAAI,CAACiD,MAAM;AACZ,UAAM,IAAI1G,EAAE,eAAe0G,EAAE,SAASA,EAAE,OAAO,GAAG,EAAE,GAAG5D,IAAI,KAAK,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAGC,IAAI,KAAK,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAAA,EACrL,GAAKyD,IAAI,CAACE,MAAM;AACZ,UAAMC,IAAI,YAAY,IAAG,IAAK1G;AAC9B,QAAIF,MAAM,SAAS;AACjB,UAAI4G,IAAI;AACN;AACF,MAAAD,EAAE,gBAAiB,GAAE,IAAID,EAAG,KAAI,EAAE,GAAG,IAAIzG,EAAE,eAAe0G,EAAE,SAASA,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG5D,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAGC,IAAI,CAAC;AAAA,IACjJ;AACC,YAAM4D,IAAI,OAAO,IAAI5D,IAAI,OAAO2D,EAAE,gBAAiB,GAAED,EAAC,MAAO,EAAE,GAAG,IAAI,IAAI,GAAG,IAAI;AAAA,EACpF,GAAEA,IAAI,MAAM;AACX,QAAI,IAAI1D,IAAI,IAAI;AACd,YAAM2D,IAAI;AAAA,QACR,MAAM,EAAE;AAAA,QACR,UAAU;AAAA,UACR,QAAQ;AAAA,YACN,MAAM5D;AAAA,YACN,MAAM;AAAA,YACN,MAAMA,IAAI;AAAA,YACV,MAAM,IAAIC;AAAA,UACX;AAAA,UACD,GAAGD;AAAA,UACH,GAAG;AAAA,UACH,GAAG;AAAA,UACHC;AAAA,QACD;AAAA,MACT;AACM,QAAE,UAAU2D,CAAC;AAAA,IACd;AACD,MAAE,GAAG,IAAI,IAAI,GAAG,IAAI;AAAA,EACxB;AACE,SAAOvF,GAAG,MAAM;AACd,IAAAvB,EAAE,eAAe,CAAC,GAAGA,EAAE,eAAe6D,CAAC,GAAG7D,EAAE,aAAa4G,GAAG,EAAE;AAAA,EAC/D,CAAA,GAAGtH,EAAE,QAAQ,CAACwH,MAAM;AACnB,0BAAsBA,KAAK,EAAE,GAAG9G,IAAI8G,EAAE,gBAAgB,GAAG,iBAAiBA,KAAK,EAAE,GAAG3G,IAAI2G,EAAE,WAAW,GAAG,eAAeA,KAAK,EAAE,GAAG1G,IAAI0G,EAAE,SAAS;AAAA,EACpJ,GAAK,CAAC,GAAG5D,GAAG,GAAG,GAAGC,GAAGnD,GAAGG,GAAGC,CAAC;AAC5B;AACA,MAAMoL,WAAWpI,GAAG;AAAA,EAClB,YAAY7D,GAAG;AACb,UAAK,GAAI0D,GAAG,MAAM1D,GAAGgM,IAAID,IAAI3L,GAAG;AAAA,MAC9B,kBAAkB;AAAA,MAClB,aAAa;AAAA,MACb,WAAW;AAAA,IACjB,CAAK;AAAA,EACF;AACH;AACK,MAAC8L,KAAK,CAACnM,GAAGC,MAAM;AACnB,QAAM,IAAI,KAAK,IAAIA,EAAE,CAAC,IAAID,EAAE,CAAC,CAAC,GAAG,IAAI,KAAK,IAAIC,EAAE,CAAC,IAAID,EAAE,CAAC,CAAC;AACzD,SAAO,KAAK,KAAK,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,GAAG,CAAC,CAAC;AAClD,GAAGoM,KAAK,CAAG;AACX,SAASC,GAAGrM,GAAGC,IAAIH,GAAG;AACpB,MAAI;AACJ,QAAM,IAAoB,oBAAI;AAC9B,WAASY,EAAEK,GAAG;AACZ,QAAIV,EAAEL,GAAGe,CAAC,MAAMf,IAAIe,GAAG,IAAI;AACzB,YAAM,IAAI,CAACqL,GAAG;AACd,iBAAW,KAAK;AACd,UAAE,CAAC,KAAKA,GAAG,KAAK,GAAGpM,CAAC;AACtB,UAAI,GAAG;AACL,iBAAS,IAAI,GAAG,IAAIoM,GAAG,QAAQ,KAAK;AAClC,UAAAA,GAAG,CAAC,EAAE,CAAC,EAAEA,GAAG,IAAI,CAAC,CAAC;AACpB,QAAAA,GAAG,SAAS;AAAA,MACb;AAAA,IACF;AAAA,EACF;AACD,WAASvL,EAAEE,GAAG;AACZ,IAAAL,EAAEK,EAAEf,CAAC,CAAC;AAAA,EACP;AACD,WAASc,EAAEC,GAAG,IAAIjB,GAAG;AACnB,UAAM,IAAI,CAACiB,GAAG,CAAC;AACf,WAAO,EAAE,IAAI,CAAC,GAAG,EAAE,SAAS,MAAM,IAAId,EAAES,CAAC,KAAKZ,IAAIiB,EAAEf,CAAC,GAAG,MAAM;AAC5D,QAAE,OAAO,CAAC,GAAG,EAAE,SAAS,KAAK,MAAM,EAAC,GAAI,IAAI;AAAA,IAClD;AAAA,EACG;AACD,SAAO,EAAE,KAAKU,GAAG,QAAQG,GAAG,WAAWC;AACzC;AACK,MAACwL,KAAK,CAACtM,GAAGC,MAAM;AACnB,QAAM,EAAE,cAAc,GAAG,eAAe,EAAC,IAAKD;AAC9C,MAAI,CAAC,KAAK,CAAC,GAAG;AACZ,UAAM,EAAE,OAAOU,GAAG,QAAQG,EAAC,IAAKb;AAChC,IAAAC,EAAE,aAAa,WAAW,OAAOS,CAAC,IAAIG,CAAC,EAAE,GAAGb,EAAE,iBAAiB,QAAQ,CAACc,MAAM;AAC5E,YAAMC,IAAID,EAAE;AACZ,MAAAb,EAAE,aAAa,WAAW,OAAOc,EAAE,YAAY,IAAIA,EAAE,aAAa,EAAE;AAAA,IAC1E,CAAK;AAAA,EACF;AACC,IAAAd,EAAE,aAAa,WAAW,OAAO,CAAC,IAAI,CAAC,EAAE;AAC7C,GAAGsM,KAAK,CAACvM,GAAGC,MAAM;AAChB,EAAAqM,GAAGtM,GAAGC,CAAC;AACP,QAAM,EAAE,WAAW,GAAG,KAAK,MAAMoM,GAAG,CAAC;AACrC,MAAI3L;AACJ,SAAO,OAAO,mBAAmBA,IAAI,IAAI,eAAe,MAAM;AAC5D,UAAMI,IAAIb,EAAE,sBAAuB,GAAE,EAAE,OAAO,GAAG,QAAQuM,EAAG,IAAGvM,EAAE,QAAQ,SAASwM,IAAI,KAAK;AAAA,MACzF3L,EAAE,QAAQ;AAAA,MACVA,EAAE,SAAS0L;AAAA,IACjB;AACI,MAAEC,CAAC;AAAA,EACP,CAAG,GAAG/L,EAAE,QAAQT,EAAE,aAAa,IAAI,EAAE,SAAS,MAAM;AAChD,IAAAS,KAAKA,EAAE;EACX,GAAK,WAAW;AAChB;AACA,SAASgM,GAAG1M,GAAG;AACb,QAAMC,IAAID,EAAE,MAAK,GAAI;AAAA;AAAA,KAElBC,EAAE,CAAC;AAAA;AAAA,MAEFA,EAAE,CAAC;AAAA,QACD;AAAA,MACF;AAAA,MACAA,EAAE,CAAC;AAAA;AAAA,MAEHA,EAAE,CAAC;AAAA,IACT,GAAO,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG;AAAA;AAErC,SAAOA,EAAE,EAAE,IAAI,GAAGA;AACpB;AACA,SAAS0M,GAAG3M,GAAG;AACb,MAAIC,GAAG,GAAG,GAAGS,GAAGG,GAAGC;AAAA;AAAA,IAEjBd,EAAE,CAAC,KAAK4M,GAAG5M,CAAC;AAAA;AAEd,SAAO;AAAA,IACL,IAAI;AACF,MAAAC,IAAIoB,EAAE,SAAS,GAAG,IAAIA,EAAE,SAAS,GAAGP,KAAKA,EAAE,EAAC,GAAID,IAAIW,GAAE,GAAIE,EAAEzB,GAAG,SAAS,WAAW,GAAGyB,EAAEzB,GAAG,UAAU;AAAA,MACrGD,EAAE,EAAE,CAAC,GAAG0B,EAAE,GAAG,SAAS,WAAW,GAAGA,EAAE,GAAG,UAAUhB;AAAA,MACnDV,EAAE,EAAE,CAAC;AAAA,IACN;AAAA,IACD,EAAEe,GAAG,GAAG;AACN,MAAAI,EAAEJ,GAAGd,GAAG,CAAC,GAAGkB,EAAEJ,GAAG,GAAG,CAAC,GAAGD,KAAKA,EAAE,EAAEC,GAAG,CAAC,GAAGI,EAAEJ,GAAGF,GAAG,CAAC;AAAA,IAClD;AAAA,IACD,EAAEE,GAAG,GAAG;AACN;AAAA,MACA,KAAK,OAAO;AAAA,MACZA,EAAE,EAAE,MAAMW,EAAEzB,GAAG,UAAU,CAAC,GAAG;AAAA,MAC7B,KAAKS,OAAOA;AAAA,MACZK,EAAE,EAAE,MAAMW,EAAE,GAAG,UAAUhB,CAAC;AAAA,MAC1BK,EAAE,CAAC,IAAID,IAAIA,EAAE,EAAEC,GAAG,CAAC,KAAKD,IAAI8L,GAAG7L,CAAC,GAAGD,EAAE,KAAKA,EAAE,EAAED,EAAE,YAAYA,CAAC,KAAKC,MAAMA,EAAE,EAAE,CAAC,GAAGA,IAAI;AAAA,IACrF;AAAA,IACD,EAAEC,GAAG;AACH,MAAAA,KAAK,EAAEd,CAAC,GAAGc,KAAK,EAAE,CAAC,GAAGD,KAAKA,EAAE,EAAEC,CAAC,GAAGA,KAAK,EAAEF,CAAC;AAAA,IAC5C;AAAA,EACL;AACA;AACA,SAAS+L,GAAG5M,GAAG;AACb,MAAIC,GAAG,GAAG;AACV,SAAO;AAAA,IACL,IAAI;AACF,MAAAA,IAAIoB,EAAE,MAAM,GAAGK,EAAEzB,GAAG,SAAS,mBAAmB,GAAGyB,EAAEzB,GAAG,KAAK;AAAA,MAC7DD,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAAA,MACTA,EAAE,CAAC,IAAI,CAAC,GAAG0B,EAAEzB,GAAG,KAAK;AAAA,MACrBD,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAAA,MACTA,EAAE,CAAC,IAAI,CAAC,GAAG0B;AAAA,QACTzB;AAAA,QACA;AAAA;AAAA,QAEAD,EAAE,CAAC;AAAA,MACX,GAAS0B;AAAA,QACDzB;AAAA,QACA;AAAA;AAAA,QAEAD,EAAE,CAAC;AAAA,MACX;AAAA,IACK;AAAA,IACD,EAAEU,GAAGG,GAAG;AACN,MAAAM,EAAET,GAAGT,GAAGY,CAAC;AAAA,IACV;AAAA,IACD,EAAEH,GAAGG,GAAG;AACN,MAAAA;AAAA,MACA,KAAK,OAAO;AAAA,MACZH,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAAA,MACTA,EAAE,CAAC,IAAI,MAAMgB,EAAEzB,GAAG,KAAK,CAAC,GAAGY;AAAA,MAC3B,KAAK,OAAO;AAAA,MACZH,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAAA,MACTA,EAAE,CAAC,IAAI,MAAMgB,EAAEzB,GAAG,KAAK,CAAC,GAAGY;AAAA,MAC3B,KAAKa;AAAA,QACHzB;AAAA,QACA;AAAA;AAAA,QAEAS,EAAE,CAAC;AAAA,MACX,GAASG;AAAA,MACH,KAAKa;AAAA,QACHzB;AAAA,QACA;AAAA;AAAA,QAEAS,EAAE,CAAC;AAAA,MACX;AAAA,IACK;AAAA,IACD,EAAEA,GAAG;AACH,MAAAA,KAAK,EAAET,CAAC;AAAA,IACT;AAAA,EACL;AACA;AACA,SAAS4M,GAAG7M,GAAG;AACb,MAAIC,GAAG;AAAA;AAAA,IAELD,EAAE,CAAC,KAAK2M,GAAGD,GAAG1M,CAAC,CAAC;AAAA;AAElB,SAAO;AAAA,IACL,IAAI;AACF,MAAAC,IAAIoB,EAAE,GAAG,GAAG,KAAK,EAAE,EAAG,GAAEK,EAAEzB,GAAG,SAAS,+BAA+B;AAAA,IACtE;AAAA,IACD,EAAE,GAAGS,GAAG;AACN,MAAAS,EAAE,GAAGlB,GAAGS,CAAC,GAAG,KAAK,EAAE,EAAET,GAAG,IAAI;AAAA,IAC7B;AAAA,IACD,EAAE,GAAG,CAACS,CAAC,GAAG;AAER,QAAE,CAAC,IAAI,IAAI,EAAE,EAAEgM,GAAG,CAAC,GAAGhM,CAAC,KAAK,IAAIiM,GAAGD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAC,GAAI,EAAE,EAAEzM,GAAG,IAAI,KAAK,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI;AAAA,IACrF;AAAA,IACD,GAAGH;AAAA,IACH,GAAGA;AAAA,IACH,EAAE,GAAG;AACH,WAAK,EAAEG,CAAC,GAAG,KAAK,EAAE;IACnB;AAAA,EACL;AACA;AACA,MAAM6M,KAAK;AACX,SAASC,GAAG/M,GAAGC,GAAG,GAAG;AACnB,MAAI;AACJ,QAAMS,IAAIwB;AACV,MAAI,EAAE,kBAAkBrB,EAAG,IAAGZ,GAAG,EAAE,aAAaa,EAAC,IAAKb,GAAG,EAAE,WAAWc,EAAC,IAAKd,GAAG,EAAE,eAAe,IAAI,EAAG,IAAGA,GAAG,GAAG2D,IAAI,CAAA,GAAI,IAAI,MAAM,IAAI;AACtI,QAAMC,IAAI,CAAC2D,MAAM;AACf,UAAM,EAAE,WAAWC,GAAG,SAASC,GAAG,SAASC,EAAG,IAAGH;AACjD,QAAI,IAAI,EAAE,WAAWC,GAAG,SAASC,GAAG,SAASC,EAAC,GAAI7G,MAAM,UAAU8C,EAAE,WAAW,GAAG;AAChF,YAAM,IAAI7C,EAAE,eAAeyG,EAAE,SAASA,EAAE,OAAO;AAC/C,MAAA5D,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAAA,IACtB;AAAA,EACL,GAAK,IAAI,CAAC4D,MAAM;AACZ,QAAI5D,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI7C,EAAE,eAAeyG,EAAE,SAASA,EAAE,OAAO,CAAC,GAAG5D,EAAE,SAAS,IAAI;AACpF,YAAM6D,IAAI0E,GAAG,GAAGvI,EAAE,CAAC,CAAC,IAAI;AACxB,QAAE,GAAG,IAAI6D,IAAIqF,EAAE;AAAA,IAChB;AAAA,EACL,GAAKvI,IAAI,CAACiD,MAAM;AACZ,QAAI1G,MAAM,SAAS;AACjB,YAAM2G,IAAID,EAAE,YAAY,EAAE,WAAWE,IAAIyE,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,GAAG,CAAC3E,EAAE,SAASA,EAAE,OAAO,CAAC;AAC1F,UAAIC,IAAI,OAAOC,IAAI;AACjB;AACF,UAAI;AACF,QAAAH;eACO3D,EAAE,WAAW,GAAG;AACvB,cAAM+D,IAAI5G,EAAE,eAAeyG,EAAE,SAASA,EAAE,OAAO;AAC/C,QAAA5D,EAAE,KAAK+D,CAAC,GAAG,EAAE,GAAG,IAAIA,CAAC;AAAA,MACtB;AACC,QAAA/D,EAAE,KAAK,CAAC;AAAA,IAChB,OAAW;AACL,UAAIA,EAAE,WAAW,KAAKuI,GAAGvI,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG;AACtC,UAAE,GAAGA,IAAI,CAAE,CAAA,GAAG,EAAE,GAAG,IAAI,IAAI;AAC3B;AAAA,MACD;AACD,MAAA4D,EAAE,yBAA0B,GAAE,IAAID,EAAG,IAAG3D,EAAE,KAAK,CAAC;AAAA,IACjD;AAAA,EACF,GAAE0D,IAAI,MAAM;AACX,UAAME,IAAI,CAAC,GAAG5D,GAAG,CAAC,GAAG6D,IAAI;AAAA,MACvB,MAAM,EAAE;AAAA,MACR,UAAU,EAAE,QAAQtD,GAAGqD,CAAC,GAAG,QAAQA,EAAG;AAAA,IAC5C;AACI,IAAAvD,GAAGwD,CAAC,IAAI,MAAM,EAAE,GAAG7D,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,GAAGlD,EAAE,UAAU+G,CAAC;AAAA,EAC1D,GAAEF,IAAI,MAAM;AACX,UAAMC,IAAI;AAAA,MACR,MAAM,EAAE;AAAA,MACR,UAAU;AAAA,QACR,QAAQrD,GAAGP,CAAC;AAAA,QACZ,QAAQ,CAAC,GAAGA,CAAC;AAAA,MACd;AAAA,IACP;AACI,MAAE,GAAGA,IAAI,CAAE,CAAA,GAAG,EAAE,GAAG,IAAI,IAAI,GAAGlD,EAAE,UAAU8G,CAAC;AAAA,EAC/C;AACE,SAAOvF,GAAG,MAAM;AACd,IAAApB,EAAE,eAAegD,GAAG,EAAE,GAAGhD,EAAE,eAAe,CAAC,GAAGA,EAAE,aAAa0D,GAAG,EAAE,GAAG1D,EAAE,YAAYyG,GAAG,EAAE;AAAA,EACzF,CAAA,GAAGtH,EAAE,QAAQ,CAACwH,MAAM;AACnB,0BAAsBA,KAAK,EAAE,GAAG3G,IAAI2G,EAAE,gBAAgB,GAAG,iBAAiBA,KAAK,EAAE,GAAG1G,IAAI0G,EAAE,WAAW,GAAG,eAAeA,KAAK,EAAE,GAAGzG,IAAIyG,EAAE,SAAS,GAAG,mBAAmBA,KAAK,EAAE,GAAG,IAAIA,EAAE,aAAa;AAAA,EACvM,GAAKxH,EAAE,GAAG,SAAS,MAAM;AACrB,IAAAA,EAAE,GAAG;AAAA,IACL,OAAO,EAAE,GAAG,IAAI,KAAK,CAAC;AAAA,EAC1B,GAAK;AAAA,IACD4D;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA/C;AAAA,IACAC;AAAA,IACAC;AAAA,IACA;AAAA,EACJ;AACA;AACA,MAAMiM,WAAWlJ,GAAG;AAAA,EAClB,YAAY7D,GAAG;AACb,UAAK,GAAI0D,GAAG,MAAM1D,GAAG8M,IAAIF,IAAIxM,GAAG;AAAA,MAC9B,kBAAkB;AAAA,MAClB,aAAa;AAAA,MACb,WAAW;AAAA,MACX,eAAe;AAAA,IACrB,CAAK;AAAA,EACF;AACH;AACK,MAAC4M,KAAqB,oBAAI,IAAI;AAAA,EACjC,CAAC,aAAa,EAAE,MAAMf,IAAI;AAAA,EAC1B,CAAC,WAAW,EAAE,MAAMc,IAAI;AAC1B,CAAC,GAAGE,KAAK,MAAM,CAAC,GAAGD,GAAG,KAAI,CAAE,GAAGE,KAAK,CAACnN,MAAMiN,GAAG,IAAIjN,CAAC,GAAGoN,KAAK,CAACpN,GAAGC,GAAG,MAAMgN,GAAG,IAAIjN,GAAG,EAAE,MAAMC,GAAG,MAAM,EAAC,CAAE;AACtG,SAASoN,GAAGrN,GAAG;AACb,MAAIC,GAAG,GAAG,GAAGS,GAAGG;AAChB,SAAO;AAAA,IACL,IAAI;AACF,MAAAZ,IAAIoB,EAAE,GAAG,GAAG,IAAIA,EAAE,SAAS,GAAGX,IAAIW,EAAE,SAAS,GAAGK,EAAE,GAAG,SAAS,WAAW,GAAGA,EAAE,GAAG,SAAS;AAAA,MAC1F1B,EAAE,CAAC,IAAI,kBAAkB,MAAM,GAAG0B;AAAA,QAChC;AAAA,QACA;AAAA;AAAA,QAEA1B,EAAE,CAAC;AAAA,MACX,GAAS0B;AAAA,QACD;AAAA,QACA;AAAA;AAAA,QAEA1B,EAAE,CAAC;AAAA,MACX,GAAS0B;AAAA,QACD;AAAA,QACA;AAAA;AAAA,QAEA1B,EAAE,CAAC;AAAA,MACX,GAAS0B;AAAA,QACD;AAAA,QACA;AAAA;AAAA,QAEA1B,EAAE,CAAC;AAAA,MACJ,GAAE0B,EAAEhB,GAAG,SAAS,WAAW,GAAGgB;AAAA,QAC7BhB;AAAA,QACA;AAAA;AAAA,QAEAV,EAAE,CAAC;AAAA,MACX,GAAS0B;AAAA,QACDhB;AAAA,QACA;AAAA;AAAA,QAEAV,EAAE,CAAC;AAAA,MACX,GAAS0B;AAAA,QACDhB;AAAA,QACA;AAAA;AAAA,QAEAV,EAAE,CAAC;AAAA,MACX,GAAS0B;AAAA,QACDhB;AAAA,QACA;AAAA;AAAA,QAEAV,EAAE,CAAC;AAAA,MACX,GAAS0B;AAAA,QACDhB;AAAA,QACA;AAAA;AAAA,QAEAV,EAAE,CAAC;AAAA,MACX,GAAS0B,EAAEzB,GAAG,WAAWY;AAAA,MACnBb,EAAE,CAAC,EAAE,EAAE;AAAA,IACR;AAAA,IACD,EAAEc,GAAGC,GAAG;AACN,MAAAI,EAAEL,GAAGb,GAAGc,CAAC,GAAGG,GAAGjB,GAAG,CAAC,GAAGiB,GAAGjB,GAAGS,CAAC;AAAA,IAC9B;AAAA,IACD,EAAEI,GAAG,CAACC,CAAC,GAAG;AACR,MAAAA;AAAA,MACA,KAAK,OAAO;AAAA,MACZD,EAAE,CAAC,IAAI,kBAAkB,WAAWY,EAAE,GAAG,SAAS,CAAC,GAAGX;AAAA,MACtD,KAAKW;AAAA,QACHhB;AAAA,QACA;AAAA;AAAA,QAEAI,EAAE,CAAC;AAAA,MACX,GAASC;AAAA,MACH,KAAKF,OAAOA;AAAA,MACZC,EAAE,CAAC,EAAE,OAAOY,EAAEzB,GAAG,WAAWY,CAAC;AAAA,IAC9B;AAAA,IACD,GAAGf;AAAA,IACH,GAAGA;AAAA,IACH,EAAEgB,GAAG;AACH,MAAAA,KAAK,EAAEb,CAAC;AAAA,IACT;AAAA,EACL;AACA;AACA,SAASqN,GAAGtN,GAAGC,GAAG,GAAG;AACnB,MAAI,GAAG,EAAE,YAAYS,EAAC,IAAKT,GAAG,EAAE,MAAMY,EAAC,IAAKZ,GAAG,EAAE,OAAOa,IAAI,OAAQ,IAAGb;AACvE,QAAM,EAAE,IAAIc,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI6C,EAAG,IAAG/C;AACvC,SAAOb,EAAE,QAAQ,CAAC,MAAM;AACtB,oBAAgB,KAAK,EAAE,GAAGU,IAAI,EAAE,UAAU,GAAG,UAAU,KAAK,EAAE,GAAGG,IAAI,EAAE,IAAI,GAAG,WAAW,KAAK,EAAE,GAAGC,IAAI,EAAE,KAAK;AAAA,EAClH,GAAKd,EAAE,GAAG,SAAS,MAAM;AACrB,IAAAA,EAAE,GAAG;AAAA,IACL,OAAO,EAAE,GAAG,IAAI0L,GAAGhL,GAAGI,CAAC,CAAC;AAAA,EAC5B,GAAK,CAACJ,GAAG,GAAGK,GAAG,GAAG,GAAG6C,GAAG/C,GAAGC,CAAC;AAC5B;AACA,MAAM,WAAWgD,GAAG;AAAA,EAClB,YAAY7D,GAAG;AACb,UAAK,GAAI0D,GAAG,MAAM1D,GAAGqN,IAAID,IAAIhN,GAAG,EAAE,YAAY,GAAG,MAAM,GAAG,OAAO,EAAC,CAAE;AAAA,EACrE;AACH;AACA,SAASkN,GAAGvN,GAAG;AACb,MAAIC,GAAG,GAAG,GAAGS,GAAGG;AAChB,SAAO;AAAA,IACL,IAAI;AACF,MAAAZ,IAAIoB,EAAE,GAAG,GAAG,IAAIA,EAAE,SAAS,GAAGX,IAAIW,EAAE,SAAS,GAAGK,EAAE,GAAG,SAAS,WAAW,GAAGA,EAAE,GAAG,SAAS;AAAA,MAC1F1B,EAAE,CAAC,IAAI,kBAAkB,MAAM,GAAG0B;AAAA,QAChC;AAAA,QACA;AAAA;AAAA,QAEA1B,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,GAAG;AAAA,MACtB,GAAE0B,EAAEhB,GAAG,SAAS,WAAW,GAAGgB;AAAA,QAC7BhB;AAAA,QACA;AAAA;AAAA,QAEAV,EAAE,CAAC;AAAA,MACX,GAAS0B;AAAA,QACDhB;AAAA,QACA;AAAA;AAAA,QAEAV,EAAE,CAAC,EAAE,IAAIwN,EAAE,EAAE,KAAK,GAAG;AAAA,MAC7B,GAAS9L,EAAEzB,GAAG,WAAWY;AAAA,MACnBb,EAAE,CAAC,EAAE,EAAE;AAAA,IACR;AAAA,IACD,EAAEc,GAAGC,GAAG;AACN,MAAAI,EAAEL,GAAGb,GAAGc,CAAC,GAAGG,GAAGjB,GAAG,CAAC,GAAGiB,GAAGjB,GAAGS,CAAC;AAAA,IAC9B;AAAA,IACD,EAAEI,GAAG,CAACC,CAAC,GAAG;AACR,MAAAA;AAAA,MACA,KAAK,OAAO;AAAA,MACZD,EAAE,CAAC,IAAI,kBAAkB,WAAWY,EAAE,GAAG,SAAS,CAAC,GAAGX;AAAA,MACtD,KAAKW;AAAA,QACHhB;AAAA,QACA;AAAA;AAAA,QAEAI,EAAE,CAAC;AAAA,MACX,GAASC;AAAA,MACH,KAAKF,OAAOA;AAAA,MACZC,EAAE,CAAC,EAAE,OAAOY,EAAEzB,GAAG,WAAWY,CAAC;AAAA,IAC9B;AAAA,IACD,GAAGf;AAAA,IACH,GAAGA;AAAA,IACH,EAAEgB,GAAG;AACH,MAAAA,KAAK,EAAEb,CAAC;AAAA,IACT;AAAA,EACL;AACA;AACA,MAAM,KAAK,CAACD,MAAMA,EAAE,KAAK,GAAG,GAAGwN,KAAK,CAACxN,MAAMA,EAAE,KAAK,GAAG;AACrD,SAASyN,GAAGzN,GAAGC,GAAG,GAAG;AACnB,MAAI,GAAG,EAAE,YAAYS,EAAC,IAAKT,GAAG,EAAE,MAAMY,EAAC,IAAKZ,GAAG,EAAE,OAAOa,IAAI,OAAQ,IAAGb;AACvE,QAAM,EAAE,QAAQc,EAAG,IAAGF;AACtB,SAAOb,EAAE,QAAQ,CAAC,MAAM;AACtB,oBAAgB,KAAK,EAAE,GAAGU,IAAI,EAAE,UAAU,GAAG,UAAU,KAAK,EAAE,GAAGG,IAAI,EAAE,IAAI,GAAG,WAAW,KAAK,EAAE,GAAGC,IAAI,EAAE,KAAK;AAAA,EAClH,GAAKd,EAAE,GAAG,SAAS,MAAM;AACrB,IAAAA,EAAE,GAAG;AAAA,IACL,MAAM,EAAE,GAAG,IAAI0L,GAAGhL,GAAGI,CAAC,CAAC;AAAA,EAC3B,GAAK,CAACJ,GAAG,GAAGK,GAAGF,GAAGC,CAAC;AACnB;AACA,MAAM4M,WAAW5J,GAAG;AAAA,EAClB,YAAY7D,GAAG;AACb,UAAK,GAAI0D,GAAG,MAAM1D,GAAGwN,IAAIF,IAAIlN,GAAG,EAAE,YAAY,GAAG,MAAM,GAAG,OAAO,EAAC,CAAE;AAAA,EACrE;AACH;AACA,SAASsN,GAAG3N,GAAG;AACb,MAAIC,GAAG,GAAG,GAAGS,GAAGG;AAChB,SAAO;AAAA,IACL,IAAI;AACF,MAAAZ,IAAIoB,EAAE,GAAG,GAAG,IAAIA,EAAE,MAAM,GAAGX,IAAIW,EAAE,MAAM,GAAGK,EAAE,GAAG,SAAS,WAAW,GAAGA,EAAE,GAAG,SAAS;AAAA,MACpF1B,EAAE,CAAC,IAAI,kBAAkB,MAAM,GAAG0B;AAAA,QAChC;AAAA,QACA;AAAA;AAAA,QAEA1B,EAAE,CAAC;AAAA,MACX,GAAS0B;AAAA,QACD;AAAA,QACA;AAAA;AAAA,QAEA1B,EAAE,CAAC;AAAA,MACX,GAAS0B;AAAA,QACD;AAAA,QACA;AAAA;AAAA,QAEA1B,EAAE,CAAC;AAAA,MACX,GAAS0B;AAAA,QACD;AAAA,QACA;AAAA;AAAA,QAEA1B,EAAE,CAAC;AAAA,MACJ,GAAE0B,EAAEhB,GAAG,SAAS,WAAW,GAAGgB;AAAA,QAC7BhB;AAAA,QACA;AAAA;AAAA,QAEAV,EAAE,CAAC;AAAA,MACX,GAAS0B;AAAA,QACDhB;AAAA,QACA;AAAA;AAAA,QAEAV,EAAE,CAAC;AAAA,MACX,GAAS0B;AAAA,QACDhB;AAAA,QACA;AAAA;AAAA,QAEAV,EAAE,CAAC;AAAA,MACX,GAAS0B;AAAA,QACDhB;AAAA,QACA;AAAA;AAAA,QAEAV,EAAE,CAAC;AAAA,MACX,GAAS0B;AAAA,QACDhB;AAAA,QACA;AAAA;AAAA,QAEAV,EAAE,CAAC;AAAA,MACX,GAAS0B,EAAEzB,GAAG,WAAWY;AAAA,MACnBb,EAAE,CAAC,EAAE,EAAE;AAAA,IACR;AAAA,IACD,EAAEc,GAAGC,GAAG;AACN,MAAAI,EAAEL,GAAGb,GAAGc,CAAC,GAAGG,GAAGjB,GAAG,CAAC,GAAGiB,GAAGjB,GAAGS,CAAC;AAAA,IAC9B;AAAA,IACD,EAAEI,GAAG,CAACC,CAAC,GAAG;AACR,MAAAA;AAAA,MACA,MAAM,OAAO;AAAA,MACbD,EAAE,CAAC,IAAI,kBAAkB,WAAWY,EAAE,GAAG,SAAS,CAAC,GAAGX;AAAA,MACtD,MAAMW;AAAA,QACJ;AAAA,QACA;AAAA;AAAA,QAEAZ,EAAE,CAAC;AAAA,MACX,GAASC;AAAA,MACH,KAAKW;AAAA,QACH;AAAA,QACA;AAAA;AAAA,QAEAZ,EAAE,CAAC;AAAA,MACX,GAASC;AAAA,MACH,KAAKW;AAAA,QACH;AAAA,QACA;AAAA;AAAA,QAEAZ,EAAE,CAAC;AAAA,MACX,GAASC;AAAA,MACH,KAAKW;AAAA,QACH;AAAA,QACA;AAAA;AAAA,QAEAZ,EAAE,CAAC;AAAA,MACX,GAASC;AAAA,MACH,MAAMW;AAAA,QACJhB;AAAA,QACA;AAAA;AAAA,QAEAI,EAAE,CAAC;AAAA,MACX,GAASC;AAAA,MACH,MAAMW;AAAA,QACJhB;AAAA,QACA;AAAA;AAAA,QAEAI,EAAE,CAAC;AAAA,MACX,GAASC;AAAA,MACH,KAAKW;AAAA,QACHhB;AAAA,QACA;AAAA;AAAA,QAEAI,EAAE,CAAC;AAAA,MACX,GAASC;AAAA,MACH,KAAKW;AAAA,QACHhB;AAAA,QACA;AAAA;AAAA,QAEAI,EAAE,CAAC;AAAA,MACX,GAASC;AAAA,MACH,KAAKW;AAAA,QACHhB;AAAA,QACA;AAAA;AAAA,QAEAI,EAAE,CAAC;AAAA,MACX,GAASC;AAAA,MACH,KAAKF,OAAOA;AAAA,MACZC,EAAE,CAAC,EAAE,OAAOY,EAAEzB,GAAG,WAAWY,CAAC;AAAA,IAC9B;AAAA,IACD,GAAGf;AAAA,IACH,GAAGA;AAAA,IACH,EAAEgB,GAAG;AACH,MAAAA,KAAK,EAAEb,CAAC;AAAA,IACT;AAAA,EACL;AACA;AACA,SAAS2N,GAAG5N,GAAGC,GAAG,GAAG;AACnB,MAAI,GAAGS,GAAGG,GAAGC,GAAGC,GAAG,EAAE,YAAY,MAAMd,GAAG,EAAE,MAAM,EAAG,IAAGA,GAAG,EAAE,OAAO2D,IAAI,OAAQ,IAAG3D;AACnF,SAAOD,EAAE,QAAQ,CAAC,MAAM;AACtB,oBAAgB,KAAK,EAAE,GAAG,IAAI,EAAE,UAAU,GAAG,UAAU,KAAK,EAAE,GAAG,IAAI,EAAE,IAAI,GAAG,WAAW,KAAK,EAAE,GAAG4D,IAAI,EAAE,KAAK;AAAA,EAClH,GAAK5D,EAAE,GAAG,SAAS,MAAM;AACrB,IAAAA,EAAE,GAAG;AAAA,IACL,OAAO,EAAE,GAAG,IAAI0L,GAAG,GAAG9H,CAAC,CAAC,GAAG5D,EAAE,GAAG;AAAA,IAChC,MAAM,EAAE,GAAG,EAAE,GAAGU,GAAG,GAAGG,GAAG,GAAGC,GAAG,GAAGC,MAAM,GAAGL,IAAI,EAAE,GAAGG,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,GAAGC,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,GAAGC,CAAC,GAAG,EAAE,GAAG,CAAC;EAC1G,GAAK,CAAC,GAAGA,GAAGD,GAAGD,GAAGH,GAAG,GAAG,GAAGkD,CAAC;AAC5B;AACA,MAAMiK,WAAW/J,GAAG;AAAA,EAClB,YAAY7D,GAAG;AACb,UAAK,GAAI0D,GAAG,MAAM1D,GAAG2N,IAAID,IAAItN,GAAG,EAAE,YAAY,GAAG,MAAM,GAAG,OAAO,EAAC,CAAE;AAAA,EACrE;AACH;AACK,MAEFyN,KAAK,CAAC9N,OAAO;AAAA,EACd,gBAAgB,CAACC,GAAG,MAAM;AACxB,UAAM,IAAID,EAAE,sBAAqB,GAAIU,IAAIV,EAAE;AAC3C,IAAAU,EAAE,IAAIT,IAAI,EAAE,GAAGS,EAAE,IAAI,IAAI,EAAE;AAC3B,UAAM,EAAE,GAAGG,GAAG,GAAGC,EAAG,IAAGJ,EAAE,gBAAgBV,EAAE,eAAe,QAAS,CAAA;AACnE,WAAO,CAACa,GAAGC,CAAC;AAAA,EACb;AACH,IAAIiN,KAAK,KAAKC,KAAK,CAAChO,GAAGC,MAAM;AAC3B,QAAM,IAAIiC;AACV,MAAI;AACJ,SAAO,EAAE,eAAe,MAAM,IAAI,YAAY,OAAO,aAAa,CAAC,MAAM;AACvE,QAAI,YAAY,QAAQ,IAAI6L,IAAI;AAC9B,YAAM,EAAE,GAAGvB,GAAG,GAAGC,EAAC,IAAKwB,GAAG,GAAGjO,CAAC,GAAG4D,IAAI3D,EAAE,MAAMuM,GAAGC,CAAC;AACjD,MAAA7I,IAAI,EAAE,SAAS,EAAE,eAAe,GAAG,YAAYA,EAAC,CAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAG,CAAA;AAAA,IACtF;AAAA,EACL;AACA,GAAGqK,KAAK,CAACjO,GAAGC,MAAM;AAChB,QAAM,IAAIA,EAAE,eAAc,GAAI,IAAIA,EAAE,sBAAqB,GAAIS,IAAIV,EAAE,UAAU,EAAE,GAAGa,IAAIb,EAAE,UAAU,EAAE,GAAG,EAAE,MAAMc,GAAG,KAAKC,EAAC,IAAKd,EAAE,sBAAqB;AACpJ,SAAO,EAAE,IAAIS,IAAII,GAAG,EAAE,IAAID,IAAIE,GAAG,EAAE,gBAAgBd,EAAE,aAAc,EAAC,QAAO,CAAE;AAC/E;AACA,SAASiO,GAAGlO,GAAGC,GAAG,GAAG;AACnB,QAAM,IAAID,EAAE;AACZ,SAAO,EAAE,EAAE,IAAIC,EAAE,CAAC,GAAG;AACvB;AACA,SAASkO,GAAGnO,GAAGC,GAAG,GAAG;AACnB,QAAM,IAAID,EAAE;AACZ,SAAO,EAAE,EAAE,IAAIC,EAAE,CAAC,GAAG;AACvB;AACA,SAASmO,GAAGpO,GAAG;AACb,QAAMC,IAAID,EAAE,MAAK,GAAI;AAAA;AAAA,IAEnBC,EAAE,EAAE,EAAE,OAAO;AAAA;AAEf,SAAOA,EAAE,EAAE,IAAI,GAAGA;AACpB;AACA,SAASoO,GAAGrO,GAAG;AACb,MAAIC;AAAA;AAAA,IAEFD,EAAE,EAAE,EAAE;AAAA,KACL,GAAG,GAAGU,IAAI4N,GAAGtO,CAAC;AACjB,SAAO;AAAA,IACL,IAAI;AACF,MAAAU,EAAE,EAAC,GAAI,IAAIc,GAAE;AAAA,IACd;AAAA,IACD,EAAEX,GAAGC,GAAG;AACN,MAAAJ,EAAE,EAAEG,GAAGC,CAAC,GAAGK,EAAEN,GAAG,GAAGC,CAAC,GAAG,IAAI;AAAA,IAC5B;AAAA,IACD,EAAED,GAAGC,GAAG;AACN,MAAAA,EAAE,CAAC;AAAA,MACH,QAAQT,EAAEJ,GAAGA;AAAA,MACbY,EAAE,EAAE,EAAE,EAAE,KAAKsC,GAAE,GAAIG,EAAE5C,GAAG,GAAG,GAAGZ,CAAC,GAAGsD,GAAE,GAAI1C,IAAI4N,GAAGzN,CAAC,GAAGH,EAAE,EAAG,GAAE2C,EAAE3C,GAAG,CAAC,GAAGA,EAAE,EAAE,EAAE,YAAY,CAAC,KAAKA,EAAE,EAAEG,GAAGC,CAAC;AAAA,IACpG;AAAA,IACD,EAAED,GAAG;AACH,YAAMwC,EAAE3C,CAAC,GAAG,IAAI;AAAA,IACjB;AAAA,IACD,EAAEG,GAAG;AACH,MAAAyC,EAAE5C,CAAC,GAAG,IAAI;AAAA,IACX;AAAA,IACD,EAAEG,GAAG;AACH,MAAAA,KAAK,EAAE,CAAC,GAAGH,EAAE,EAAEG,CAAC;AAAA,IACjB;AAAA,EACL;AACA;AACA,SAAS0N,GAAGvO,GAAG;AACb,MAAIC,GAAG;AACP,SAAOA,IAAI,IAAIyN,GAAG;AAAA,IAChB,OAAO;AAAA,MACL;AAAA;AAAA,QAEE1N,EAAE,EAAE;AAAA;AAAA,MAEN;AAAA;AAAA,QAEEA,EAAE,EAAE,EAAE;AAAA;AAAA,MAER;AAAA;AAAA,QAEEA,EAAE,CAAC;AAAA;AAAA,IAEN;AAAA,EACL,CAAG,GAAG;AAAA,IACF,IAAI;AACF,MAAAuD,GAAGtD,EAAE,GAAG,QAAQ;AAAA,IACjB;AAAA,IACD,EAAE,GAAGS,GAAG;AACN,MAAA8C,GAAGvD,GAAG,GAAGS,CAAC,GAAG,IAAI;AAAA,IAClB;AAAA,IACD,EAAE,GAAGA,GAAG;AACN,YAAMG,IAAI,CAAA;AACV,MAAAH,EAAE,CAAC;AAAA,MACH,SAASG,EAAE;AAAA,MACX,EAAE,EAAE,IAAIH,EAAE,CAAC;AAAA,MACX,SAASG,EAAE;AAAA,MACX,EAAE,EAAE,EAAE,WAAWH,EAAE,CAAC;AAAA,MACpB,MAAMG,EAAE;AAAA,MACR,EAAE,CAAC,IAAIZ,EAAE,KAAKY,CAAC;AAAA,IAChB;AAAA,IACD,EAAE,GAAG;AACH,YAAMwC,EAAEpD,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI;AAAA,IAChC;AAAA,IACD,EAAE,GAAG;AACH,MAAAqD,EAAErD,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI;AAAA,IAC1B;AAAA,IACD,EAAE,GAAG;AACH,MAAAwD,GAAGxD,GAAG,CAAC;AAAA,IACR;AAAA,EACL;AACA;AACA,SAASuO,GAAGxO,GAAG;AACb,MAAIC,GAAG;AACP,SAAOA,IAAI,IAAI4N,GAAG;AAAA,IAChB,OAAO;AAAA,MACL;AAAA;AAAA,QAEE7N,EAAE,EAAE;AAAA;AAAA,MAEN;AAAA;AAAA,QAEEA,EAAE,EAAE,EAAE;AAAA;AAAA,MAER;AAAA;AAAA,QAEEA,EAAE,CAAC;AAAA;AAAA,IAEN;AAAA,EACL,CAAG,GAAG;AAAA,IACF,IAAI;AACF,MAAAuD,GAAGtD,EAAE,GAAG,QAAQ;AAAA,IACjB;AAAA,IACD,EAAE,GAAGS,GAAG;AACN,MAAA8C,GAAGvD,GAAG,GAAGS,CAAC,GAAG,IAAI;AAAA,IAClB;AAAA,IACD,EAAE,GAAGA,GAAG;AACN,YAAMG,IAAI,CAAA;AACV,MAAAH,EAAE,CAAC;AAAA,MACH,SAASG,EAAE;AAAA,MACX,EAAE,EAAE,IAAIH,EAAE,CAAC;AAAA,MACX,SAASG,EAAE;AAAA,MACX,EAAE,EAAE,EAAE,WAAWH,EAAE,CAAC;AAAA,MACpB,MAAMG,EAAE;AAAA,MACR,EAAE,CAAC,IAAIZ,EAAE,KAAKY,CAAC;AAAA,IAChB;AAAA,IACD,EAAE,GAAG;AACH,YAAMwC,EAAEpD,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI;AAAA,IAChC;AAAA,IACD,EAAE,GAAG;AACH,MAAAqD,EAAErD,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI;AAAA,IAC1B;AAAA,IACD,EAAE,GAAG;AACH,MAAAwD,GAAGxD,GAAG,CAAC;AAAA,IACR;AAAA,EACL;AACA;AACA,SAASwO,GAAGzO,GAAG;AACb,MAAIC,GAAG;AACP,SAAOA,IAAI,IAAI,GAAG;AAAA,IAChB,OAAO;AAAA,MACL;AAAA;AAAA,QAEED,EAAE,EAAE;AAAA;AAAA,MAEN;AAAA;AAAA,QAEEA,EAAE,EAAE,EAAE;AAAA;AAAA,MAER;AAAA;AAAA,QAEEA,EAAE,CAAC;AAAA;AAAA,IAEN;AAAA,EACL,CAAG,GAAG;AAAA,IACF,IAAI;AACF,MAAAuD,GAAGtD,EAAE,GAAG,QAAQ;AAAA,IACjB;AAAA,IACD,EAAE,GAAGS,GAAG;AACN,MAAA8C,GAAGvD,GAAG,GAAGS,CAAC,GAAG,IAAI;AAAA,IAClB;AAAA,IACD,EAAE,GAAGA,GAAG;AACN,YAAMG,IAAI,CAAA;AACV,MAAAH,EAAE,CAAC;AAAA,MACH,SAASG,EAAE;AAAA,MACX,EAAE,EAAE,IAAIH,EAAE,CAAC;AAAA,MACX,SAASG,EAAE;AAAA,MACX,EAAE,EAAE,EAAE,WAAWH,EAAE,CAAC;AAAA,MACpB,MAAMG,EAAE;AAAA,MACR,EAAE,CAAC,IAAIZ,EAAE,KAAKY,CAAC;AAAA,IAChB;AAAA,IACD,EAAE,GAAG;AACH,YAAMwC,EAAEpD,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI;AAAA,IAChC;AAAA,IACD,EAAE,GAAG;AACH,MAAAqD,EAAErD,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI;AAAA,IAC1B;AAAA,IACD,EAAE,GAAG;AACH,MAAAwD,GAAGxD,GAAG,CAAC;AAAA,IACR;AAAA,EACL;AACA;AACA,SAASqO,GAAGtO,GAAG;AACb,MAAIC,GAAG,GAAG,GAAGS;AACb,QAAMG,IAAI,CAAC4N,IAAID,IAAID,EAAE,GAAGzN,IAAI;AAC5B,WAASC,EAAE,GAAG,GAAG;AACf;AAAA;AAAA,MAEE,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU;AAAA;AAAA,QAEzB,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY;AAAA;AAAA,UAE3B,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,IAAI;AAAA;AAAA;AAAA;AAAA,EAItC;AACD,SAAO,EAAEd,IAAIc,EAAEf,CAAC,OAAO,IAAIc,EAAEb,CAAC,IAAIY,EAAEZ,CAAC,EAAED,CAAC,IAAI;AAAA,IAC1C,IAAI;AACF,WAAK,EAAE,EAAG,GAAE,IAAIwB,GAAE;AAAA,IACnB;AAAA,IACD,EAAE,GAAG,GAAG;AACN,OAACvB,KAAKa,EAAEb,CAAC,EAAE,EAAE,GAAG,CAAC,GAAGkB,EAAE,GAAG,GAAG,CAAC,GAAGT,IAAI;AAAA,IACrC;AAAA,IACD,EAAE,GAAG,GAAG;AACN,UAAIkD,IAAI3D;AACR,MAAAA,IAAIc,EAAE,CAAC,GAAGd,MAAM2D,IAAI,CAAC3D,KAAKa,EAAEb,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,MAAMkD,MAAMG,EAAExC,EAAE8C,CAAC,GAAG,GAAG,GAAG,MAAM;AACxE,QAAA9C,EAAE8C,CAAC,IAAI;AAAA,MACf,CAAO,GAAGR,GAAE,IAAK,CAACnD,KAAK,IAAIa,EAAEb,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,KAAK,IAAIa,EAAEb,CAAC,IAAIY,EAAEZ,CAAC,EAAE,CAAC,GAAG,EAAE,EAAC,IAAKoD,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,CAAC,KAAK,IAAI;AAAA,IAC9G;AAAA,IACD,EAAE,GAAG;AACH,MAAA3C,MAAM2C,EAAE,CAAC,GAAG3C,IAAI;AAAA,IACjB;AAAA,IACD,EAAE,GAAG;AACH,MAAA4C,EAAE,CAAC,GAAG5C,IAAI;AAAA,IACX;AAAA,IACD,EAAE,GAAG;AACH,OAACT,KAAKa,EAAEb,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC;AAAA,IAC1B;AAAA,EACL;AACA;AACA,SAASyO,GAAG1O,GAAG;AACb,MAAIC,IAAI;AAAA,EACRD,EAAE,CAAC;AAAA;AAAA,IAEDA,EAAE,EAAE;AAAA,EACR,GAAK,GAAG,GAAGU,IAAIT,KAAKoO,GAAGD,GAAGpO,CAAC,CAAC;AAC1B,SAAO;AAAA,IACL,IAAI;AACF,MAAAU,KAAKA,EAAE,EAAG,GAAE,IAAIc,GAAE;AAAA,IACnB;AAAA,IACD,EAAEX,GAAGC,GAAG;AACN,MAAAJ,KAAKA,EAAE,EAAEG,GAAGC,CAAC,GAAGK,EAAEN,GAAG,GAAGC,CAAC,GAAG,IAAI;AAAA,IACjC;AAAA,IACD,EAAED,GAAGC,GAAG;AACN,MAAAA,EAAE,CAAC;AAAA,MACH,SAASb,IAAI;AAAA,MACbY,EAAE,CAAC;AAAA;AAAA,QAEDA,EAAE,EAAE;AAAA,MACL,IAAGZ,IAAIS,KAAKA,EAAE,EAAE0N,GAAGvN,CAAC,GAAGC,CAAC,GAAGA,EAAE,CAAC;AAAA,MAC/B,QAAQuC,EAAE3C,GAAG,CAAC,MAAMA,IAAI2N,GAAGD,GAAGvN,CAAC,CAAC,GAAGH,EAAE,EAAG,GAAE2C,EAAE3C,GAAG,CAAC,GAAGA,EAAE,EAAE,EAAE,YAAY,CAAC,KAAKA,MAAMyC,GAAI,GAAEG,EAAE5C,GAAG,GAAG,GAAG,MAAM;AACtG,QAAAA,IAAI;AAAA,MACZ,CAAO,GAAG0C,GAAE;AAAA,IACP;AAAA,IACD,EAAEvC,GAAG;AACH,YAAMwC,EAAE3C,CAAC,GAAG,IAAI;AAAA,IACjB;AAAA,IACD,EAAEG,GAAG;AACH,MAAAyC,EAAE5C,CAAC,GAAG,IAAI;AAAA,IACX;AAAA,IACD,EAAEG,GAAG;AACH,MAAAH,KAAKA,EAAE,EAAEG,CAAC,GAAGA,KAAK,EAAE,CAAC;AAAA,IACtB;AAAA,EACL;AACA;AACA,SAAS8N,GAAG3O,GAAG;AACb,MAAIC,GAAG,GAAG,GAAGS;AACb,QAAMG,IAAI,CAAC+N,IAAIC,EAAE,GAAG/N,IAAI,CAAA;AACxB,WAASC,EAAE,GAAG,GAAG;AACf;AAAA;AAAA,MAEE,EAAE,CAAC,IAAI;AAAA;AAAA,QAEL,EAAE,CAAC;AAAA,QACH,EAAE,CAAC,IAAI,IAAI;AAAA;AAAA;AAAA,EAGhB;AACD,SAAO,EAAEd,IAAIc,EAAEf,CAAC,OAAO,IAAIc,EAAEb,CAAC,IAAIY,EAAEZ,CAAC,EAAED,CAAC,IAAI;AAAA,IAC1C,IAAI;AACF,WAAK,EAAE,EAAG,GAAE,IAAIwB,GAAE;AAAA,IACnB;AAAA,IACD,EAAE,GAAG,GAAG;AACN,OAACvB,KAAKa,EAAEb,CAAC,EAAE,EAAE,GAAG,CAAC,GAAGkB,EAAE,GAAG,GAAG,CAAC,GAAGT,IAAI;AAAA,IACrC;AAAA,IACD,EAAE,GAAG,GAAG;AACN,UAAIkD,IAAI3D;AACR,MAAAA,IAAIc,EAAE,CAAC,GAAGd,MAAM2D,IAAI,CAAC3D,KAAKa,EAAEb,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,MAAMkD,MAAMG,EAAExC,EAAE8C,CAAC,GAAG,GAAG,GAAG,MAAM;AACxE,QAAA9C,EAAE8C,CAAC,IAAI;AAAA,MACf,CAAO,GAAGR,GAAE,IAAK,CAACnD,KAAK,IAAIa,EAAEb,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,KAAK,IAAIa,EAAEb,CAAC,IAAIY,EAAEZ,CAAC,EAAE,CAAC,GAAG,EAAE,EAAC,IAAKoD,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,CAAC,KAAK,IAAI;AAAA,IAC9G;AAAA,IACD,EAAE,GAAG;AACH,MAAA3C,MAAM2C,EAAE,CAAC,GAAG3C,IAAI;AAAA,IACjB;AAAA,IACD,EAAE,GAAG;AACH,MAAA4C,EAAE,CAAC,GAAG5C,IAAI;AAAA,IACX;AAAA,IACD,EAAE,GAAG;AACH,OAACT,KAAKa,EAAEb,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC;AAAA,IAC1B;AAAA,EACL;AACA;AACA,SAAS4O,GAAG7O,GAAG;AACb,MAAIC;AAAA;AAAA,IAEFD,EAAE,CAAC;AAAA,KACF,GAAG,GAAGU,IAAIoO,GAAG9O,CAAC;AACjB,SAAO;AAAA,IACL,IAAI;AACF,MAAAU,EAAE,EAAC,GAAI,IAAIc,GAAE;AAAA,IACd;AAAA,IACD,EAAEX,GAAGC,GAAG;AACN,MAAAJ,EAAE,EAAEG,GAAGC,CAAC,GAAGK,EAAEN,GAAG,GAAGC,CAAC,GAAG,IAAI;AAAA,IAC5B;AAAA,IACD,EAAED,GAAGC,GAAG;AACN,MAAAA,EAAE,CAAC;AAAA,MACH,KAAKT,EAAEJ,GAAGA;AAAA,MACVY,EAAE,CAAC,CAAC,KAAKsC,GAAE,GAAIG,EAAE5C,GAAG,GAAG,GAAGZ,CAAC,GAAGsD,GAAE,GAAI1C,IAAIoO,GAAGjO,CAAC,GAAGH,EAAE,EAAC,GAAI2C,EAAE3C,GAAG,CAAC,GAAGA,EAAE,EAAE,EAAE,YAAY,CAAC,KAAKA,EAAE,EAAEG,GAAGC,CAAC;AAAA,IAChG;AAAA,IACD,EAAED,GAAG;AACH,YAAMwC,EAAE3C,CAAC,GAAG,IAAI;AAAA,IACjB;AAAA,IACD,EAAEG,GAAG;AACH,MAAAyC,EAAE5C,CAAC,GAAG,IAAI;AAAA,IACX;AAAA,IACD,EAAEG,GAAG;AACH,MAAAA,KAAK,EAAE,CAAC,GAAGH,EAAE,EAAEG,CAAC;AAAA,IACjB;AAAA,EACL;AACA;AACA,SAAS+N,GAAG5O,GAAG;AACb,MAAIC,GAAG,GAAG;AAAA;AAAA,IAERD,EAAE,CAAC;AAAA,KACFU,IAAI,CAAA;AACP,WAASI,IAAI,GAAGA,IAAI,EAAE,QAAQA,KAAK;AACjC,IAAAJ,EAAEI,CAAC,IAAIiO,GAAGb,GAAGlO,GAAG,GAAGc,CAAC,CAAC;AACvB,QAAMD,IAAI,CAACC,MAAMwC,EAAE5C,EAAEI,CAAC,GAAG,GAAG,GAAG,MAAM;AACnC,IAAAJ,EAAEI,CAAC,IAAI;AAAA,EACX,CAAG;AACD,SAAO;AAAA,IACL,IAAI;AACF,eAASA,IAAI,GAAGA,IAAIJ,EAAE,QAAQI,KAAK;AACjC,QAAAJ,EAAEI,CAAC,EAAE;AACP,MAAAb,IAAIuB,GAAE;AAAA,IACP;AAAA,IACD,EAAEV,GAAGC,GAAG;AACN,eAAS,IAAI,GAAG,IAAIL,EAAE,QAAQ,KAAK;AACjC,QAAAA,EAAE,CAAC,KAAKA,EAAE,CAAC,EAAE,EAAEI,GAAGC,CAAC;AACrB,MAAAI,EAAEL,GAAGb,GAAGc,CAAC,GAAG,IAAI;AAAA,IACjB;AAAA,IACD,EAAED,GAAGC,GAAG;AACN,UAAIA,EAAE,CAAC;AAAA,MACP,QAAQ;AACN;AAAA,QACAD,EAAE,CAAC;AACH,YAAI;AACJ,aAAK,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK,GAAG;AAChC,gBAAM,IAAIoN,GAAGpN,GAAG,GAAG,CAAC;AACpB,UAAAJ,EAAE,CAAC,KAAKA,EAAE,CAAC,EAAE,EAAE,GAAGK,CAAC,GAAGsC,EAAE3C,EAAE,CAAC,GAAG,CAAC,MAAMA,EAAE,CAAC,IAAIqO,GAAG,CAAC,GAAGrO,EAAE,CAAC,EAAE,EAAG,GAAE2C,EAAE3C,EAAE,CAAC,GAAG,CAAC,GAAGA,EAAE,CAAC,EAAE,EAAET,EAAE,YAAYA,CAAC;AAAA,QAChG;AACD,aAAKkD,GAAE,GAAI,IAAI,EAAE,QAAQ,IAAIzC,EAAE,QAAQ,KAAK;AAC1C,UAAAG,EAAE,CAAC;AACL,QAAAuC;MACD;AAAA,IACF;AAAA,IACD,EAAEtC,GAAG;AACH,UAAI,CAAC,GAAG;AACN,iBAASC,IAAI,GAAGA,IAAI,EAAE,QAAQA,KAAK;AACjC,UAAAsC,EAAE3C,EAAEK,CAAC,CAAC;AACR,YAAI;AAAA,MACL;AAAA,IACF;AAAA,IACD,EAAED,GAAG;AACH,MAAAJ,IAAIA,EAAE,OAAO,OAAO;AACpB,eAASK,IAAI,GAAGA,IAAIL,EAAE,QAAQK,KAAK;AACjC,QAAAuC,EAAE5C,EAAEK,CAAC,CAAC;AACR,UAAI;AAAA,IACL;AAAA,IACD,EAAED,GAAG;AACH,MAAAM,GAAGV,GAAGI,CAAC,GAAGA,KAAK,EAAEb,CAAC;AAAA,IACnB;AAAA,EACL;AACA;AACA,SAAS6O,GAAG9O,GAAG;AACb,MAAIC,GAAG;AACP,SAAOA,IAAI,IAAI6L,GAAG;AAAA,IAChB,OAAO;AAAA,MACL;AAAA;AAAA,QAEE9L,EAAE,CAAC;AAAA;AAAA,MAEL;AAAA;AAAA,QAEEA,EAAE,CAAC;AAAA;AAAA,MAEL;AAAA;AAAA,QAEEA,EAAE,EAAE;AAAA;AAAA,MAEN;AAAA;AAAA,QAEEA,EAAE,EAAE;AAAA;AAAA,MAEN;AAAA;AAAA,QAEEA,EAAE,EAAE;AAAA;AAAA,IAEP;AAAA,EACL,CAAG,GAAGC,EAAE;AAAA,IACJ;AAAA;AAAA,IAEAD,EAAE,EAAE;AAAA,EACR,GAAK;AAAA,IACD,IAAI;AACF,MAAAuD,GAAGtD,EAAE,GAAG,QAAQ;AAAA,IACjB;AAAA,IACD,EAAE,GAAGS,GAAG;AACN,MAAA8C,GAAGvD,GAAG,GAAGS,CAAC,GAAG,IAAI;AAAA,IAClB;AAAA,IACD,EAAE,GAAGA,GAAG;AACN,YAAMG,IAAI,CAAA;AACV,MAAAH,EAAE,CAAC;AAAA,MACH,OAAOG,EAAE;AAAA,MACT,EAAE,CAAC,IAAIH,EAAE,CAAC;AAAA,MACV,MAAMG,EAAE;AAAA,MACR,EAAE,CAAC,IAAIH,EAAE,CAAC;AAAA,MACV,SAASG,EAAE;AAAA,MACX,EAAE,EAAE,IAAIH,EAAE,CAAC;AAAA,MACX,SAASG,EAAE;AAAA,MACX,EAAE,EAAE,IAAIH,EAAE,CAAC;AAAA,MACX,SAASG,EAAE;AAAA,MACX,EAAE,EAAE,IAAIZ,EAAE,KAAKY,CAAC;AAAA,IACjB;AAAA,IACD,EAAE,GAAG;AACH,YAAMwC,EAAEpD,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI;AAAA,IAChC;AAAA,IACD,EAAE,GAAG;AACH,MAAAqD,EAAErD,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI;AAAA,IAC1B;AAAA,IACD,EAAE,GAAG;AACH,MAAAwD,GAAGxD,GAAG,CAAC;AAAA,IACR;AAAA,EACL;AACA;AACA,SAAS+O,GAAGhP,GAAG;AACb,MAAIC,GAAG;AACP,SAAOA,IAAI,IAAI2L,GAAG;AAAA,IAChB,OAAO;AAAA,MACL;AAAA;AAAA,QAEE5L,EAAE,CAAC;AAAA;AAAA,MAEL,QAAQoL;AAAA;AAAA,QAENpL,EAAE,EAAE,EAAE,OAAO;AAAA,MACd;AAAA,MACD;AAAA;AAAA,QAEEA,EAAE,EAAE;AAAA;AAAA,MAEN;AAAA;AAAA,QAEEA,EAAE,CAAC;AAAA;AAAA,MAEL;AAAA;AAAA,QAEEA,EAAE,EAAE;AAAA;AAAA,MAEN;AAAA;AAAA,QAEEA,EAAE,EAAE;AAAA;AAAA,IAEP;AAAA,EACF,CAAA,GAAGC,EAAE,IAAI,UAAU,WAAW;AAC7B;AAAA;AAAA,MAEED,EAAE,EAAE;AAAA;AAAA,QAEFA,EAAE,EAAE;AAAA,MACL;AAAA,IACP,KAASA,EAAE,EAAE;AAAA;AAAA,MAEPA,EAAE,EAAE;AAAA,IACV,EAAM,MAAM,MAAM,SAAS;AAAA,EAC3B,CAAG,GAAG;AAAA,IACF,IAAI;AACF,MAAAuD,GAAGtD,EAAE,GAAG,QAAQ;AAAA,IACjB;AAAA,IACD,EAAE,GAAGS,GAAG;AACN,MAAA8C,GAAGvD,GAAG,GAAGS,CAAC,GAAG,IAAI;AAAA,IAClB;AAAA,IACD,EAAE,GAAGA,GAAG;AACN,MAAAV,IAAI;AACJ,YAAMa,IAAI,CAAA;AACV,MAAAH,EAAE,CAAC;AAAA,MACH,OAAOG,EAAE;AAAA,MACTb,EAAE,CAAC,IAAIU,EAAE,CAAC;AAAA,MACV,OAAOG,EAAE,SAASuK;AAAA;AAAA,QAEhBpL,EAAE,EAAE,EAAE,OAAO;AAAA,MACrB,IAAUU,EAAE,CAAC;AAAA,MACP,OAAOG,EAAE;AAAA,MACTb,EAAE,EAAE,IAAIU,EAAE,CAAC;AAAA,MACX,MAAMG,EAAE;AAAA,MACRb,EAAE,CAAC,IAAIU,EAAE,CAAC;AAAA,MACV,SAASG,EAAE;AAAA,MACXb,EAAE,EAAE,IAAIU,EAAE,CAAC;AAAA,MACX,SAASG,EAAE;AAAA,MACXb,EAAE,EAAE,IAAIC,EAAE,KAAKY,CAAC;AAAA,IACjB;AAAA,IACD,EAAE,GAAG;AACH,YAAMwC,EAAEpD,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI;AAAA,IAChC;AAAA,IACD,EAAE,GAAG;AACH,MAAAqD,EAAErD,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI;AAAA,IAC1B;AAAA,IACD,EAAE,GAAG;AACH,MAAAwD,GAAGxD,GAAG,CAAC;AAAA,IACR;AAAA,EACL;AACA;AACA,SAAS8O,GAAG/O,GAAG;AACb,MAAIC;AAAA;AAAA,IAEFD,EAAE,EAAE,EAAE;AAAA,KACL,GAAG,GAAGU,IAAIsO,GAAGhP,CAAC;AACjB,SAAO;AAAA,IACL,IAAI;AACF,MAAAU,EAAE,EAAC,GAAI,IAAIc,GAAE;AAAA,IACd;AAAA,IACD,EAAEX,GAAGC,GAAG;AACN,MAAAJ,EAAE,EAAEG,GAAGC,CAAC,GAAGK,EAAEN,GAAG,GAAGC,CAAC,GAAG,IAAI;AAAA,IAC5B;AAAA,IACD,EAAED,GAAGC,GAAG;AACN,MAAAA,EAAE,CAAC;AAAA,MACH,MAAMT,EAAEJ,GAAGA;AAAA,MACXY,EAAE,EAAE,EAAE,EAAE,KAAKsC,GAAE,GAAIG,EAAE5C,GAAG,GAAG,GAAGZ,CAAC,GAAGsD,GAAE,GAAI1C,IAAIsO,GAAGnO,CAAC,GAAGH,EAAE,EAAG,GAAE2C,EAAE3C,GAAG,CAAC,GAAGA,EAAE,EAAE,EAAE,YAAY,CAAC,KAAKA,EAAE,EAAEG,GAAGC,CAAC;AAAA,IACpG;AAAA,IACD,EAAED,GAAG;AACH,YAAMwC,EAAE3C,CAAC,GAAG,IAAI;AAAA,IACjB;AAAA,IACD,EAAEG,GAAG;AACH,MAAAyC,EAAE5C,CAAC,GAAG,IAAI;AAAA,IACX;AAAA,IACD,EAAEG,GAAG;AACH,MAAAA,KAAK,EAAE,CAAC,GAAGH,EAAE,EAAEG,CAAC;AAAA,IACjB;AAAA,EACL;AACA;AACA,SAASoO,GAAGjP,GAAG;AACb,MAAIC,GAAG,GAAG,GAAGS,GAAGG,GAAGC,GAAGC;AAAA;AAAA,IAEpBf,EAAE,EAAE;AAAA,KACH,IAAI,CAAA;AACP,WAAS,IAAI,GAAG,IAAIe,EAAE,QAAQ,KAAK;AACjC,MAAE,CAAC,IAAI2N,GAAGP,GAAGnO,GAAGe,GAAG,CAAC,CAAC;AACvB,QAAM,IAAI,CAAC,MAAMuC,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,MAAM;AACnC,MAAE,CAAC,IAAI;AAAA,EACX,CAAG;AACD,MAAIM;AAAA;AAAA,IAEF5D,EAAE,CAAC,KAAK2O,GAAG3O,CAAC;AAAA;AAEd,SAAO;AAAA,IACL,IAAI;AACF,MAAAC,IAAIoB,EAAE,KAAK,GAAG,IAAIA,EAAE,GAAG;AACvB,eAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AACjC,UAAE,CAAC,EAAE;AACP,UAAIA,EAAE,GAAG,GAAGuC,KAAKA,EAAE,EAAC,GAAIlC,EAAE,GAAG,SAAS,SAAS,GAAGA,EAAEzB,GAAG,SAAS,qBAAqB,GAAG2B;AAAA,QACtF3B;AAAA,QACA;AAAA;AAAA,QAEAD,EAAE,CAAC;AAAA,MACX;AAAA,IACK;AAAA,IACD,EAAE,GAAG,GAAG;AACN,MAAAmB,EAAE,GAAGlB,GAAG,CAAC,GAAGiB,GAAGjB,GAAG,CAAC;AACnB,eAAS4D,IAAI,GAAGA,IAAI,EAAE,QAAQA,KAAK;AACjC,UAAEA,CAAC,KAAK,EAAEA,CAAC,EAAE,EAAE,GAAG,IAAI;AACxB,MAAA3C,GAAGjB,GAAG,CAAC,GAAG2D,KAAKA,EAAE,EAAE,GAAG,IAAI,GAAG5D,EAAE,EAAE,EAAE,CAAC,GAAGA,EAAE,EAAE,EAAEC,CAAC,GAAGS,IAAI,IAAIG,MAAMC,IAAI;AAAA,QACjEW,EAAExB,GAAG,aAAa,WAAW;AAC3B;AAAA;AAAA,YAEED,EAAE,CAAC;AAAA,UACf,KAAeA,EAAE,CAAC,EAAE,MAAM,MAAM,SAAS;AAAA,QACzC,CAAS;AAAA,QACDyB,EAAExB,GAAG,eAAe,WAAW;AAC7B;AAAA;AAAA,YAEED,EAAE,CAAC;AAAA,UACf,KAAeA,EAAE,CAAC,EAAE,MAAM,MAAM,SAAS;AAAA,QACzC,CAAS;AAAA,MACT,GAASa,IAAI;AAAA,IACR;AAAA,IACD,EAAE,GAAG,GAAG;AACN,UAAIb,IAAI,GAAG,EAAE,CAAC;AAAA,MACd,MAAM;AACJ,QAAAe;AAAA,QACAf,EAAE,EAAE;AACJ,YAAI6D;AACJ,aAAKA,IAAI,GAAGA,IAAI9C,EAAE,QAAQ8C,KAAK,GAAG;AAChC,gBAAM,IAAIsK,GAAGnO,GAAGe,GAAG8C,CAAC;AACpB,YAAEA,CAAC,KAAK,EAAEA,CAAC,EAAE,EAAE,GAAG,CAAC,GAAGR,EAAE,EAAEQ,CAAC,GAAG,CAAC,MAAM,EAAEA,CAAC,IAAI6K,GAAG,CAAC,GAAG,EAAE7K,CAAC,EAAE,EAAC,GAAIR,EAAE,EAAEQ,CAAC,GAAG,CAAC,GAAG,EAAEA,CAAC,EAAE,EAAE,GAAG,IAAI;AAAA,QACxF;AACD,aAAKV,GAAE,GAAIU,IAAI9C,EAAE,QAAQ8C,IAAI,EAAE,QAAQA,KAAK;AAC1C,YAAEA,CAAC;AACL,QAAAT;MACD;AAED,MAAApD,EAAE,CAAC,IAAI4D,KAAKA,EAAE,EAAE5D,GAAG,CAAC,GAAG,EAAE,CAAC;AAAA,MAC1B,MAAMqD,EAAEO,GAAG,CAAC,MAAMA,IAAI+K,GAAG3O,CAAC,GAAG4D,EAAE,EAAG,GAAEP,EAAEO,GAAG,CAAC,GAAGA,EAAE,EAAE,GAAG,IAAI,KAAKA,MAAMT,GAAE,GAAIG,EAAEM,GAAG,GAAG,GAAG,MAAM;AACxF,QAAAA,IAAI;AAAA,MACZ,CAAO,GAAGR,GAAE,KAAM,CAAC1C,KAAK,EAAE,CAAC;AAAA,MACrB,MAAMkB;AAAA,QACJ3B;AAAA,QACA;AAAA;AAAA,QAEAD,EAAE,CAAC;AAAA,MACX;AAAA,IACK;AAAA,IACD,EAAE,GAAG;AACH,UAAI,CAACU,GAAG;AACN,iBAAS,IAAI,GAAG,IAAIK,EAAE,QAAQ,KAAK;AACjC,UAAAsC,EAAE,EAAE,CAAC,CAAC;AACR,QAAAA,EAAEO,CAAC,GAAGlD,IAAI;AAAA,MACX;AAAA,IACF;AAAA,IACD,EAAE,GAAG;AACH,UAAI,EAAE,OAAO,OAAO;AACpB,eAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AACjC,QAAA4C,EAAE,EAAE,CAAC,CAAC;AACR,MAAAA,EAAEM,CAAC,GAAGlD,IAAI;AAAA,IACX;AAAA,IACD,EAAE,GAAG;AACH,WAAK,EAAET,CAAC,GAAGmB,GAAG,GAAG,CAAC,GAAGwC,KAAKA,EAAE,EAAG,GAAE5D,EAAE,EAAE,EAAE,IAAI,GAAGA,EAAE,EAAE,EAAE,IAAI,GAAGa,IAAI,IAAIT,GAAGU,CAAC;AAAA,IACxE;AAAA,EACL;AACA;AACA,SAASoO,GAAGlP,GAAGC,GAAG,GAAG;AACnB,MAAI,GAAGS,GAAGG,GAAGC,GAAGC,GAAG,GAAG,GAAG6C,GAAG,IAAI9D,GAAG,IAAI,OAAO,EAAG,GAAE,IAAIS,GAAGyG,GAAG,CAAC+C,MAAM,EAAE,IAAInG,IAAImG,CAAC,CAAC,GAAG/C;AACnF,EAAAhH,EAAE,GAAG,WAAW,KAAK,MAAM,EAAG,CAAA;AAC9B,MAAI,EAAE,gBAAgB6D,EAAC,IAAK5D,GAAG,EAAE,OAAO,EAAG,IAAGA,GAAG,EAAE,sBAAsBsE,EAAG,IAAGtE,GAAG,EAAE,OAAOqH,MAAMrH,GAAG,EAAE,OAAOsH,IAAI,OAAM,IAAKtH,GAAG,EAAE,MAAMuH,GAAG,MAAMC,MAAM0F,GAAG,WAAW,GAAG,EAAE,MAAMzF,IAAIF,GAAG,MAAMG,IAAIF,EAAC,IAAKxH,GAAG,EAAE,MAAM,EAAG,IAAGA,GAAG2H,GAAGb,GAAGC;AAChO,EAAA/E,GAAG,MAAM,EAAE,EAAE,GAAG+E,IAAIuF,GAAG,GAAGxF,CAAC,CAAC,CAAC,CAAC;AAC9B,QAAM,EAAE,WAAWE,GAAG,OAAOC,EAAC,IAAKI;AACnC,EAAA9G,GAAGR,GAAGiH,GAAG,CAAC8C,MAAM,EAAE,IAAI,IAAIA,CAAC,CAAC,GAAGvJ,GAAGR,GAAGkH,GAAG,CAAC6C,MAAM,EAAE,IAAI,IAAIA,CAAC,CAAC;AAC3D,MAAI5C,IAAI,MAAMC,IAAI;AAClB,QAAMC,IAAI,CAAC0C,MAAM;AACf,IAAA7C,EAAE,UAAUC,CAAC;AACb,UAAM6C,IAAID,EAAE,OAAO,CAAC,EAAE,UAAUE,EAAG,MAAKA,CAAC,EAAE,IAAI,CAAC,EAAE,IAAIA,EAAG,MAAKA,CAAC;AAC/D,IAAAD,EAAE,SAAS,KAAK,EAAE,GAAG5C,IAAI4C,EAAE,IAAI,CAACC,MAAM/C,EAAE,cAAc+C,CAAC,CAAC,CAAC,GAAG9C,IAAI,CAAC8C,MAAM;AACrE,YAAM,EAAE,SAASC,MAAMD,EAAE;AACzB,QAAE,GAAG7C,IAAI8C,EAAE,IAAI,CAACC,OAAOA,GAAG,QAAQ,CAAC;AAAA,IACpC,GAAEjD,EAAE,QAAQC,GAAG,EAAE,aAAa6C,GAAG,KAAK,EAAE,GAAG5C,IAAI,IAAI;AAAA,EACxD,GAAKuC,KAAK,CAACI,MAAM;AACb,UAAMC,IAAItE,GAAI,GAAEuE,IAAI;AAAA,MAClB,IAAID;AAAA,MACJ,QAAQ,CAAE;AAAA,MACV,QAAQ;AAAA,QACN,YAAYA;AAAA,QACZ,UAAUD,EAAE;AAAA,QACZ,SAAS;AAAA,QACT,SAAyB,oBAAI,KAAM;AAAA,MACpC;AAAA,IACP;AACI,IAAA7C,EAAE,cAAc+C,CAAC,GAAGhD,EAAE,YAAYgD,EAAE,EAAE;AAAA,EACvC,GAAEL,KAAK,CAACG,MAAM,CAACC,MAAM;AACpB,QAAII;AACJ,UAAM,EAAE,QAAQH,EAAC,IAAKF,GAAGG,KAAI,KAAK,KAAK,KAAKC,OAAOC,IAAKH,EAAE,YAAY,OAAO,SAASG,EAAG,QAAQ,EAAE,MAAM,CAACH,EAAE,YAA4B,oBAAI,KAAM,GAAE,QAAO,IAAKA,EAAE,QAAQ,QAAS,IAAGC;AACtL,IAAAhD,EAAE,aAAa;AAAA,MACb,GAAG+C;AAAA,MACH,UAAUD,EAAE;AAAA,MACZ,SAASG,KAAKF,EAAE,UAA0B,oBAAI,KAAM;AAAA,MACpD,SAASE,KAAqB,oBAAI,KAAI,IAAK;AAAA,MAC3C,WAAWA,KAAK,IAAI;AAAA,IAC1B,CAAK;AAAA,EACL;AACE,WAASN,GAAGE,GAAG;AACb,IAAA1H,GAAG0H,IAAI,YAAY,MAAM,EAAE,MAAM;AAC/B,MAAAnC,IAAImC,GAAG,EAAE,GAAGnC,CAAC;AAAA,IACnB,CAAK;AAAA,EACF;AACD,WAASkC,EAAEC,GAAG;AACZ,IAAA1H,GAAG0H,IAAI,YAAY,MAAM,EAAE,MAAM;AAC/B,MAAAhD,IAAIgD,GAAG,EAAE,GAAGhD,CAAC;AAAA,IACnB,CAAK;AAAA,EACF;AACD,SAAO/G,EAAE,QAAQ,CAAC+J,MAAM;AACtB,wBAAoBA,KAAK,EAAE,GAAGlG,IAAIkG,EAAE,cAAc,GAAG,WAAWA,KAAK,EAAE,IAAI,IAAIA,EAAE,KAAK,GAAG,0BAA0BA,KAAK,EAAE,IAAIxF,IAAIwF,EAAE,oBAAoB,GAAG,WAAWA,KAAK,EAAE,IAAIzC,IAAIyC,EAAE,KAAK,GAAG,WAAWA,KAAK,EAAE,GAAGxC,IAAIwC,EAAE,KAAK,GAAG,UAAUA,KAAK,EAAE,GAAGrC,IAAIqC,EAAE,IAAI,GAAG,UAAUA,KAAK,EAAE,IAAIpC,IAAIoC,EAAE,IAAI,GAAG,UAAUA,KAAK,EAAE,IAAI,IAAIA,EAAE,IAAI;AAAA,EACxU,GAAK/J,EAAE,GAAG,SAAS,MAAM;AACrB,IAAAA,EAAE,GAAG,MAAM,CAAC;AAAA,IACZ,WAAW,EAAE,IAAI,KAAK2H,KAAK,OAAO,SAASA,EAAE,gBAAgBpD,CAAC,GAAGvE,EAAE,GAAG,MAAM,CAAC;AAAA,IAC7E,KAAK,EAAE,IAAIU,IAAIoN,GAAG/G,CAAC,CAAC,GAAG/G,EAAE,GAAG,MAAM,CAAC;AAAA,IACnC,KAAK,EAAE,GAAG,EAAE,eAAea,GAAG,aAAaC,EAAG,IAAGkN,GAAGjH,GAAGG,CAAC,GAAGrG,IAAI,EAAE,GAAGC,CAAC,GAAG,EAAE,GAAGiG,CAAC,EAAC,GAAI/G,EAAE,GAAG,MAAM,CAAC;AAAA,IAC/F,WAAW,EAAE,GAAGe,IAAI,CAACgJ,MAAM,EAAE,SAAS,KAAK,CAACC,MAAMA,EAAE,OAAOD,EAAE,MAAMC,EAAE,QAAQ,CAAC,GAAGhK,EAAE,GAAG,MAAM,CAAC;AAAA,IAC7F,WAAWqH,EAAE,EAAE,QAAQ;AAAA,EAC3B,GAAK;AAAA,IACDxD;AAAA,IACA0D;AAAA,IACAG;AAAA,IACAX;AAAA,IACAa;AAAA,IACAZ;AAAA,IACAI;AAAA,IACArG;AAAA,IACAD;AAAA,IACAD;AAAA,IACAH;AAAA,IACA;AAAA,IACA;AAAA,IACAkD;AAAA,IACAqD;AAAA,IACAC;AAAA,IACAyC;AAAA,IACAC;AAAA,IACA;AAAA,IACArF;AAAA,IACA+C;AAAA,IACAK;AAAA,IACA;AAAA,IACA;AAAA,IACAkC;AAAA,IACAC;AAAA,EACJ;AACA;AACA,MAAMqF,WAAWrL,GAAG;AAAA,EAClB,YAAY7D,GAAG;AACb,UAAO,GAAE0D;AAAA,MACP;AAAA,MACA1D;AAAA,MACAiP;AAAA,MACAD;AAAA,MACA5O;AAAA,MACA;AAAA,QACE,gBAAgB;AAAA,QAChB,OAAO;AAAA,QACP,sBAAsB;AAAA,QACtB,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,MACP;AAAA,MACD;AAAA,MACA,CAAC,IAAI,EAAE;AAAA,IACb;AAAA,EACG;AACH;AACA,SAAS+O,GAAGpP,GAAGC,GAAG,GAAG,GAAGS,GAAG;AACzB,EAAA2O,GAAGrP,GAAGC,GAAG,KAAK,GAAG,KAAKD,EAAE,SAAS,GAAGU,KAAK4O,EAAE;AAC7C;AACA,SAASD,GAAGrP,GAAGC,GAAG,GAAG,GAAGS,GAAG;AACzB,SAAO,IAAI,KAAK;AACd,QAAI,IAAI,IAAI,KAAK;AACf,UAAIG,IAAI,IAAI,IAAI,GAAGC,IAAIb,IAAI,IAAI,GAAGc,IAAI,KAAK,IAAIF,CAAC,GAAG,IAAI,MAAM,KAAK,IAAI,IAAIE,IAAI,CAAC,GAAG,IAAI,MAAM,KAAK,KAAKA,IAAI,KAAKF,IAAI,KAAKA,CAAC,KAAKC,IAAID,IAAI,IAAI,IAAI,KAAK,IAAI+C,IAAI,KAAK,IAAI,GAAG,KAAK,MAAM3D,IAAIa,IAAI,IAAID,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,GAAG,KAAK,MAAMZ,KAAKY,IAAIC,KAAK,IAAID,IAAI,CAAC,CAAC;AAC1P,MAAAwO,GAAGrP,GAAGC,GAAG2D,GAAG,GAAGlD,CAAC;AAAA,IACjB;AACD,QAAI,IAAIV,EAAEC,CAAC,GAAG4D,IAAI,GAAG,IAAI;AACzB,SAAK0L,GAAGvP,GAAG,GAAGC,CAAC,GAAGS,EAAEV,EAAE,CAAC,GAAG,CAAC,IAAI,KAAKuP,GAAGvP,GAAG,GAAG,CAAC,GAAG6D,IAAI,KAAK;AACxD,WAAK0L,GAAGvP,GAAG6D,GAAG,CAAC,GAAGA,KAAK,KAAKnD,EAAEV,EAAE6D,CAAC,GAAG,CAAC,IAAI;AACvC,QAAAA;AACF,aAAOnD,EAAEV,EAAE,CAAC,GAAG,CAAC,IAAI;AAClB;AAAA,IACH;AACD,IAAAU,EAAEV,EAAE,CAAC,GAAG,CAAC,MAAM,IAAIuP,GAAGvP,GAAG,GAAG,CAAC,KAAK,KAAKuP,GAAGvP,GAAG,GAAG,CAAC,IAAI,KAAKC,MAAM,IAAI,IAAI,IAAIA,KAAK,MAAM,IAAI,IAAI;AAAA,EAChG;AACH;AACA,SAASsP,GAAGvP,GAAGC,GAAG,GAAG;AACnB,MAAI,IAAID,EAAEC,CAAC;AACX,EAAAD,EAAEC,CAAC,IAAID,EAAE,CAAC,GAAGA,EAAE,CAAC,IAAI;AACtB;AACA,SAASsP,GAAGtP,GAAGC,GAAG;AAChB,SAAOD,IAAIC,IAAI,KAAKD,IAAIC,IAAI,IAAI;AAClC;AACA,MAAMuP,GAAG;AAAA,EACP,YAAYvP,IAAI,GAAG;AACjB,SAAK,cAAc,KAAK,IAAI,GAAGA,CAAC,GAAG,KAAK,cAAc,KAAK,IAAI,GAAG,KAAK,KAAK,KAAK,cAAc,GAAG,CAAC,GAAG,KAAK;EAC5G;AAAA,EACD,MAAM;AACJ,WAAO,KAAK,KAAK,KAAK,MAAM,CAAE,CAAA;AAAA,EAC/B;AAAA,EACD,OAAOA,GAAG;AACR,QAAI,IAAI,KAAK;AACb,UAAM,IAAI,CAAA;AACV,QAAI,CAACwP,GAAGxP,GAAG,CAAC;AACV,aAAO;AACT,UAAMS,IAAI,KAAK,QAAQG,IAAI,CAAA;AAC3B,WAAO,KAAK;AACV,eAASC,IAAI,GAAGA,IAAI,EAAE,SAAS,QAAQA,KAAK;AAC1C,cAAMC,IAAI,EAAE,SAASD,CAAC,GAAG,IAAI,EAAE,OAAOJ,EAAEK,CAAC,IAAIA;AAC7C,QAAA0O,GAAGxP,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAKc,CAAC,IAAI2O,GAAGzP,GAAG,CAAC,IAAI,KAAK,KAAKc,GAAG,CAAC,IAAIF,EAAE,KAAKE,CAAC;AAAA,MACxE;AACD,UAAIF,EAAE;IACP;AACD,WAAO;AAAA,EACR;AAAA,EACD,SAASZ,GAAG;AACV,QAAI,IAAI,KAAK;AACb,QAAI,CAACwP,GAAGxP,GAAG,CAAC;AACV,aAAO;AACT,UAAM,IAAI,CAAA;AACV,WAAO,KAAK;AACV,eAASS,IAAI,GAAGA,IAAI,EAAE,SAAS,QAAQA,KAAK;AAC1C,cAAMG,IAAI,EAAE,SAASH,CAAC,GAAGI,IAAI,EAAE,OAAO,KAAK,OAAOD,CAAC,IAAIA;AACvD,YAAI4O,GAAGxP,GAAGa,CAAC,GAAG;AACZ,cAAI,EAAE,QAAQ4O,GAAGzP,GAAGa,CAAC;AACnB,mBAAO;AACT,YAAE,KAAKD,CAAC;AAAA,QACT;AAAA,MACF;AACD,UAAI,EAAE;IACP;AACD,WAAO;AAAA,EACR;AAAA,EACD,KAAKZ,GAAG;AACN,QAAI,EAAEA,KAAKA,EAAE;AACX,aAAO;AACT,QAAIA,EAAE,SAAS,KAAK,aAAa;AAC/B,eAAS,IAAI,GAAG,IAAIA,EAAE,QAAQ;AAC5B,aAAK,OAAOA,EAAE,CAAC,CAAC;AAClB,aAAO;AAAA,IACR;AACD,QAAI,IAAI,KAAK,OAAOA,EAAE,MAAK,GAAI,GAAGA,EAAE,SAAS,GAAG,CAAC;AACjD,QAAI,CAAC,KAAK,KAAK,SAAS;AACtB,WAAK,OAAO;AAAA,aACL,KAAK,KAAK,WAAW,EAAE;AAC9B,WAAK,WAAW,KAAK,MAAM,CAAC;AAAA,SACzB;AACH,UAAI,KAAK,KAAK,SAAS,EAAE,QAAQ;AAC/B,cAAM,IAAI,KAAK;AACf,aAAK,OAAO,GAAG,IAAI;AAAA,MACpB;AACD,WAAK,QAAQ,GAAG,KAAK,KAAK,SAAS,EAAE,SAAS,GAAG,EAAE;AAAA,IACpD;AACD,WAAO;AAAA,EACR;AAAA,EACD,OAAOA,GAAG;AACR,WAAOA,KAAK,KAAK,QAAQA,GAAG,KAAK,KAAK,SAAS,CAAC,GAAG;AAAA,EACpD;AAAA,EACD,QAAQ;AACN,WAAO,KAAK,OAAO0P,GAAG,CAAE,CAAA,GAAG;AAAA,EAC5B;AAAA,EACD,OAAO1P,GAAG,GAAG;AACX,QAAI,CAACA;AACH,aAAO;AACT,QAAI,IAAI,KAAK;AACb,UAAMS,IAAI,KAAK,OAAOT,CAAC,GAAGY,IAAI,CAAA,GAAIC,IAAI;AACtC,QAAIC,GAAG,GAAG;AACV,WAAO,KAAKF,EAAE,UAAU;AACtB,UAAI,MAAM,IAAIA,EAAE,IAAK,GAAE,IAAIA,EAAEA,EAAE,SAAS,CAAC,GAAGE,IAAID,EAAE,IAAK,GAAE,IAAI,KAAK,EAAE,MAAM;AACxE,cAAM8C,IAAIgM,GAAG3P,GAAG,EAAE,UAAU,CAAC;AAC7B,YAAI2D,MAAM;AACR,iBAAO,EAAE,SAAS,OAAOA,GAAG,CAAC,GAAG/C,EAAE,KAAK,CAAC,GAAG,KAAK,UAAUA,CAAC,GAAG;AAAA,MACjE;AACD,OAAC,KAAK,CAAC,EAAE,QAAQ6O,GAAG,GAAGhP,CAAC,KAAKG,EAAE,KAAK,CAAC,GAAGC,EAAE,KAAKC,CAAC,GAAGA,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,SAAS,CAAC,KAAK,KAAKA,KAAK,IAAI,EAAE,SAASA,CAAC,GAAG,IAAI,MAAM,IAAI;AAAA,IAClI;AACD,WAAO;AAAA,EACR;AAAA,EACD,OAAOd,GAAG;AACR,WAAOA;AAAA,EACR;AAAA,EACD,YAAYA,GAAG,GAAG;AAChB,WAAOA,EAAE,OAAO,EAAE;AAAA,EACnB;AAAA,EACD,YAAYA,GAAG,GAAG;AAChB,WAAOA,EAAE,OAAO,EAAE;AAAA,EACnB;AAAA,EACD,SAAS;AACP,WAAO,KAAK;AAAA,EACb;AAAA,EACD,SAASA,GAAG;AACV,WAAO,KAAK,OAAOA,GAAG;AAAA,EACvB;AAAA,EACD,KAAKA,GAAG,GAAG;AACT,UAAM,IAAI,CAAA;AACV,WAAOA;AACL,MAAAA,EAAE,OAAO,EAAE,KAAK,GAAGA,EAAE,QAAQ,IAAI,EAAE,KAAK,GAAGA,EAAE,QAAQ,GAAGA,IAAI,EAAE;AAChE,WAAO;AAAA,EACR;AAAA,EACD,OAAOA,GAAG,GAAG,GAAGS,GAAG;AACjB,UAAMG,IAAI,IAAI,IAAI;AAClB,QAAIC,IAAI,KAAK,aAAaC;AAC1B,QAAIF,KAAKC;AACP,aAAOC,IAAI4O,GAAG1P,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG4P,GAAG9O,GAAG,KAAK,MAAM,GAAGA;AACxD,IAAAL,MAAMA,IAAI,KAAK,KAAK,KAAK,IAAIG,CAAC,IAAI,KAAK,IAAIC,CAAC,CAAC,GAAGA,IAAI,KAAK,KAAKD,IAAI,KAAK,IAAIC,GAAGJ,IAAI,CAAC,CAAC,IAAIK,IAAI4O,GAAG,CAAE,CAAA,GAAG5O,EAAE,OAAO,IAAIA,EAAE,SAASL;AAC5H,UAAM,IAAI,KAAK,KAAKG,IAAIC,CAAC,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAKA,CAAC,CAAC;AAC1D,IAAAgP,GAAG7P,GAAG,GAAG,GAAG,GAAG,KAAK,WAAW;AAC/B,aAAS2D,IAAI,GAAGA,KAAK,GAAGA,KAAK,GAAG;AAC9B,YAAM,IAAI,KAAK,IAAIA,IAAI,IAAI,GAAG,CAAC;AAC/B,MAAAkM,GAAG7P,GAAG2D,GAAG,GAAG,GAAG,KAAK,WAAW;AAC/B,eAAS,IAAIA,GAAG,KAAK,GAAG,KAAK,GAAG;AAC9B,cAAMC,IAAI,KAAK,IAAI,IAAI,IAAI,GAAG,CAAC;AAC/B,QAAA9C,EAAE,SAAS,KAAK,KAAK,OAAOd,GAAG,GAAG4D,GAAGnD,IAAI,CAAC,CAAC;AAAA,MAC5C;AAAA,IACF;AACD,WAAOmP,GAAG9O,GAAG,KAAK,MAAM,GAAGA;AAAA,EAC5B;AAAA,EACD,eAAed,GAAG,GAAG,GAAGS,GAAG;AACzB,WAAOA,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,QAAQA,EAAE,SAAS,MAAM,MAAM;AACnD,UAAIG,IAAI,OAAOC,IAAI,IAAI,GAAGC;AAC1B,eAAS,IAAI,GAAG,IAAI,EAAE,SAAS,QAAQ,KAAK;AAC1C,cAAM,IAAI,EAAE,SAAS,CAAC,GAAG6C,IAAImM,GAAG,CAAC,GAAG,IAAIC,GAAG/P,GAAG,CAAC,IAAI2D;AACnD,YAAI9C,KAAKA,IAAI,GAAGD,IAAI+C,IAAI/C,IAAI+C,IAAI/C,GAAGE,IAAI,KAAK,MAAMD,KAAK8C,IAAI/C,MAAMA,IAAI+C,GAAG7C,IAAI;AAAA,MAC7E;AACD,UAAIA,KAAK,EAAE,SAAS,CAAC;AAAA,IACtB;AACD,WAAO;AAAA,EACR;AAAA,EACD,QAAQd,GAAG,GAAG,GAAG;AACf,UAAMS,IAAI,IAAIT,IAAI,KAAK,OAAOA,CAAC,GAAGY,IAAI,CAAA,GAAIC,IAAI,KAAK,eAAeJ,GAAG,KAAK,MAAM,GAAGG,CAAC;AACpF,SAAKC,EAAE,SAAS,KAAKb,CAAC,GAAGgQ,GAAGnP,GAAGJ,CAAC,GAAG,KAAK,KAAKG,EAAE,CAAC,EAAE,SAAS,SAAS,KAAK;AACvE,WAAK,OAAOA,GAAG,CAAC,GAAG;AACrB,SAAK,oBAAoBH,GAAGG,GAAG,CAAC;AAAA,EACjC;AAAA;AAAA,EAED,OAAOZ,GAAG,GAAG;AACX,UAAM,IAAIA,EAAE,CAAC,GAAGS,IAAI,EAAE,SAAS,QAAQG,IAAI,KAAK;AAChD,SAAK,iBAAiB,GAAGA,GAAGH,CAAC;AAC7B,UAAMI,IAAI,KAAK,kBAAkB,GAAGD,GAAGH,CAAC,GAAGK,IAAI4O,GAAG,EAAE,SAAS,OAAO7O,GAAG,EAAE,SAAS,SAASA,CAAC,CAAC;AAC7F,IAAAC,EAAE,SAAS,EAAE,QAAQA,EAAE,OAAO,EAAE,MAAM8O,GAAG,GAAG,KAAK,MAAM,GAAGA,GAAG9O,GAAG,KAAK,MAAM,GAAG,IAAId,EAAE,IAAI,CAAC,EAAE,SAAS,KAAKc,CAAC,IAAI,KAAK,WAAW,GAAGA,CAAC;AAAA,EACnI;AAAA,EACD,WAAWd,GAAG,GAAG;AACf,SAAK,OAAO0P,GAAG,CAAC1P,GAAG,CAAC,CAAC,GAAG,KAAK,KAAK,SAASA,EAAE,SAAS,GAAG,KAAK,KAAK,OAAO,IAAI4P,GAAG,KAAK,MAAM,KAAK,MAAM;AAAA,EACxG;AAAA,EACD,kBAAkB5P,GAAG,GAAG,GAAG;AACzB,QAAIS,GAAGG,IAAI,OAAOC,IAAI,IAAI;AAC1B,aAASC,IAAI,GAAGA,KAAK,IAAI,GAAGA,KAAK;AAC/B,YAAM,IAAImP,GAAGjQ,GAAG,GAAGc,GAAG,KAAK,MAAM,GAAG,IAAImP,GAAGjQ,GAAGc,GAAG,GAAG,KAAK,MAAM,GAAG6C,IAAIuM,GAAG,GAAG,CAAC,GAAG,IAAIJ,GAAG,CAAC,IAAIA,GAAG,CAAC;AAChG,MAAAnM,IAAI/C,KAAKA,IAAI+C,GAAGlD,IAAIK,GAAGD,IAAI,IAAIA,IAAI,IAAIA,KAAK8C,MAAM/C,KAAK,IAAIC,MAAMA,IAAI,GAAGJ,IAAIK;AAAA,IAC7E;AACD,WAAOL,KAAK,IAAI;AAAA,EACjB;AAAA;AAAA,EAED,iBAAiBT,GAAG,GAAG,GAAG;AACxB,UAAMS,IAAIT,EAAE,OAAO,KAAK,cAAcmQ,IAAIvP,IAAIZ,EAAE,OAAO,KAAK,cAAcoQ,IAAIvP,IAAI,KAAK,eAAeb,GAAG,GAAG,GAAGS,CAAC,GAAGK,IAAI,KAAK,eAAed,GAAG,GAAG,GAAGY,CAAC;AACrJ,IAAAC,IAAIC,KAAKd,EAAE,SAAS,KAAKS,CAAC;AAAA,EAC3B;AAAA;AAAA,EAED,eAAeT,GAAG,GAAG,GAAGS,GAAG;AACzB,IAAAT,EAAE,SAAS,KAAKS,CAAC;AACjB,UAAMG,IAAI,KAAK,QAAQC,IAAIoP,GAAGjQ,GAAG,GAAG,GAAGY,CAAC,GAAGE,IAAImP,GAAGjQ,GAAG,IAAI,GAAG,GAAGY,CAAC;AAChE,QAAI,IAAIyP,GAAGxP,CAAC,IAAIwP,GAAGvP,CAAC;AACpB,aAAS,IAAI,GAAG,IAAI,IAAI,GAAG,KAAK;AAC9B,YAAM6C,IAAI3D,EAAE,SAAS,CAAC;AACtB,MAAAgQ,GAAGnP,GAAGb,EAAE,OAAOY,EAAE+C,CAAC,IAAIA,CAAC,GAAG,KAAK0M,GAAGxP,CAAC;AAAA,IACpC;AACD,aAAS,IAAI,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK;AACnC,YAAM8C,IAAI3D,EAAE,SAAS,CAAC;AACtB,MAAAgQ,GAAGlP,GAAGd,EAAE,OAAOY,EAAE+C,CAAC,IAAIA,CAAC,GAAG,KAAK0M,GAAGvP,CAAC;AAAA,IACpC;AACD,WAAO;AAAA,EACR;AAAA,EACD,oBAAoBd,GAAG,GAAG,GAAG;AAC3B,aAASS,IAAI,GAAGA,KAAK,GAAGA;AACtB,MAAAuP,GAAG,EAAEvP,CAAC,GAAGT,CAAC;AAAA,EACb;AAAA,EACD,UAAUA,GAAG;AACX,aAAS,IAAIA,EAAE,SAAS,GAAG,GAAG,KAAK,GAAG;AACpC,MAAAA,EAAE,CAAC,EAAE,SAAS,WAAW,IAAI,IAAI,KAAK,IAAIA,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQA,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,MAAK,IAAK4P,GAAG5P,EAAE,CAAC,GAAG,KAAK,MAAM;AAAA,EACnI;AACH;AACA,SAAS2P,GAAG5P,GAAGC,GAAG,GAAG;AACnB,MAAI,CAAC;AACH,WAAOA,EAAE,QAAQD,CAAC;AACpB,WAAS,IAAI,GAAG,IAAIC,EAAE,QAAQ;AAC5B,QAAI,EAAED,GAAGC,EAAE,CAAC,CAAC;AACX,aAAO;AACX,SAAO;AACT;AACA,SAAS4P,GAAG7P,GAAGC,GAAG;AAChB,EAAAiQ,GAAGlQ,GAAG,GAAGA,EAAE,SAAS,QAAQC,GAAGD,CAAC;AAClC;AACA,SAASkQ,GAAGlQ,GAAGC,GAAG,GAAG,GAAGS,GAAG;AACzB,EAAAA,MAAMA,IAAIiP,GAAG,IAAI,IAAIjP,EAAE,OAAO,IAAI,GAAGA,EAAE,OAAO,IAAI,GAAGA,EAAE,OAAO,KAAK,GAAGA,EAAE,OAAO,KAAK;AACpF,WAASG,IAAIZ,GAAGY,IAAI,GAAGA,KAAK;AAC1B,UAAMC,IAAId,EAAE,SAASa,CAAC;AACtB,IAAAoP,GAAGvP,GAAGV,EAAE,OAAO,EAAEc,CAAC,IAAIA,CAAC;AAAA,EACxB;AACD,SAAOJ;AACT;AACA,SAASuP,GAAGjQ,GAAGC,GAAG;AAChB,SAAOD,EAAE,OAAO,KAAK,IAAIA,EAAE,MAAMC,EAAE,IAAI,GAAGD,EAAE,OAAO,KAAK,IAAIA,EAAE,MAAMC,EAAE,IAAI,GAAGD,EAAE,OAAO,KAAK,IAAIA,EAAE,MAAMC,EAAE,IAAI,GAAGD,EAAE,OAAO,KAAK,IAAIA,EAAE,MAAMC,EAAE,IAAI,GAAGD;AACrJ;AACA,SAASoQ,GAAGpQ,GAAGC,GAAG;AAChB,SAAOD,EAAE,OAAOC,EAAE;AACpB;AACA,SAASoQ,GAAGrQ,GAAGC,GAAG;AAChB,SAAOD,EAAE,OAAOC,EAAE;AACpB;AACA,SAAS8P,GAAG/P,GAAG;AACb,UAAQA,EAAE,OAAOA,EAAE,SAASA,EAAE,OAAOA,EAAE;AACzC;AACA,SAASsQ,GAAGtQ,GAAG;AACb,SAAOA,EAAE,OAAOA,EAAE,QAAQA,EAAE,OAAOA,EAAE;AACvC;AACA,SAASgQ,GAAGhQ,GAAGC,GAAG;AAChB,UAAQ,KAAK,IAAIA,EAAE,MAAMD,EAAE,IAAI,IAAI,KAAK,IAAIC,EAAE,MAAMD,EAAE,IAAI,MAAM,KAAK,IAAIC,EAAE,MAAMD,EAAE,IAAI,IAAI,KAAK,IAAIC,EAAE,MAAMD,EAAE,IAAI;AACpH;AACA,SAASmQ,GAAGnQ,GAAGC,GAAG;AAChB,QAAM,IAAI,KAAK,IAAID,EAAE,MAAMC,EAAE,IAAI,GAAG,IAAI,KAAK,IAAID,EAAE,MAAMC,EAAE,IAAI,GAAGS,IAAI,KAAK,IAAIV,EAAE,MAAMC,EAAE,IAAI,GAAGY,IAAI,KAAK,IAAIb,EAAE,MAAMC,EAAE,IAAI;AAC3H,SAAO,KAAK,IAAI,GAAGS,IAAI,CAAC,IAAI,KAAK,IAAI,GAAGG,IAAI,CAAC;AAC/C;AACA,SAAS6O,GAAG1P,GAAGC,GAAG;AAChB,SAAOD,EAAE,QAAQC,EAAE,QAAQD,EAAE,QAAQC,EAAE,QAAQA,EAAE,QAAQD,EAAE,QAAQC,EAAE,QAAQD,EAAE;AACjF;AACA,SAASyP,GAAGzP,GAAGC,GAAG;AAChB,SAAOA,EAAE,QAAQD,EAAE,QAAQC,EAAE,QAAQD,EAAE,QAAQC,EAAE,QAAQD,EAAE,QAAQC,EAAE,QAAQD,EAAE;AACjF;AACA,SAAS2P,GAAG3P,GAAG;AACb,SAAO;AAAA,IACL,UAAUA;AAAA,IACV,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM,IAAI;AAAA,IACV,MAAM,IAAI;AAAA,IACV,MAAM,KAAK;AAAA,IACX,MAAM,KAAK;AAAA,EACf;AACA;AACA,SAAS8P,GAAG9P,GAAGC,GAAG,GAAG,GAAGS,GAAG;AACzB,QAAMG,IAAI,CAACZ,GAAG,CAAC;AACf,SAAOY,EAAE,UAAU;AACjB,QAAI,IAAIA,EAAE,OAAOZ,IAAIY,EAAE,IAAK,GAAE,IAAIZ,KAAK;AACrC;AACF,UAAMa,IAAIb,IAAI,KAAK,MAAM,IAAIA,KAAK,IAAI,CAAC,IAAI;AAC3C,IAAAmP,GAAGpP,GAAGc,GAAGb,GAAG,GAAGS,CAAC,GAAGG,EAAE,KAAKZ,GAAGa,GAAGA,GAAG,CAAC;AAAA,EACrC;AACH;AACK,MAACyP,KAAK,MAAM;AACf,QAAMvQ,IAAI,IAAIwP,GAAI,GAAEvP,IAAoB,oBAAI,IAAK,GAAE,IAAI,MAAM,CAAC,GAAGA,EAAE,OAAM,CAAE,GAAG,IAAI,MAAM;AACtF,IAAAD,EAAE,MAAK,GAAIC,EAAE,MAAK;AAAA,EACtB,GAAKS,IAAI,CAAC8P,MAAM;AACZ,UAAM,EAAE,MAAMC,GAAG,MAAM5M,GAAG,MAAM6M,GAAG,MAAMnM,EAAC,IAAKiM,EAAE,SAAS,SAAS,QAAQlJ,IAAI,EAAE,MAAMmJ,GAAG,MAAM5M,GAAG,MAAM6M,GAAG,MAAMnM,GAAG,QAAQiM,EAAC;AAC9H,IAAAxQ,EAAE,OAAOsH,CAAC,GAAGrH,EAAE,IAAIuQ,EAAE,YAAYlJ,CAAC;AAAA,EACtC,GAAKzG,IAAI,CAAC2P,MAAM;AACZ,UAAMC,IAAIxQ,EAAE,IAAIuQ,EAAE,UAAU;AAC5B,IAAAxQ,EAAE,OAAOyQ,CAAC,GAAGxQ,EAAE,OAAOuQ,EAAE,UAAU;AAAA,EACtC;AACE,SAAO;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO,CAACA,GAAGC,MAAM;AACf,YAAMC,IAAI1Q,EAAE,OAAO;AAAA,QACjB,MAAMwQ;AAAA,QACN,MAAMC;AAAA,QACN,MAAMD;AAAA,QACN,MAAMC;AAAA,MACd,CAAO,EAAE,IAAI,CAAClM,MAAMA,EAAE,MAAM,EAAE,OAAO,CAACA,MAAMA,EAAE,SAAS,SAAS,EAAE,aAAaL,GAAGK,EAAE,UAAUiM,GAAGC,CAAC,CAAC;AAC7F,UAAIC,EAAE,SAAS;AACb,eAAOA,EAAE,KAAK,CAACnM,GAAG+C,MAAMrD,GAAGM,EAAE,QAAQ,IAAIN,GAAGqD,EAAE,QAAQ,CAAC,GAAGoJ,EAAE,CAAC;AAAA,IAChE;AAAA,IACD,iBAAiB,CAACF,GAAGC,GAAG5M,GAAG6M,MAAM1Q,EAAE,OAAO;AAAA,MACxC,MAAMwQ;AAAA,MACN,MAAMC;AAAA,MACN,MAAMD,IAAI3M;AAAA,MACV,MAAM4M,IAAIC;AAAA,IACX,CAAA,EAAE,IAAI,CAACnM,MAAMA,EAAE,MAAM;AAAA,IACtB,QAAQ7D;AAAA,IACR,QAAQG;AAAA,IACR,KAAK,CAAC2P,GAAGC,IAAI,OAAO;AAClB,MAAAA,KAAK,EAAC;AACN,YAAM5M,IAAI2M,EAAE,IAAI,CAACE,MAAM;AACrB,cAAM,EAAE,MAAMnM,GAAG,MAAM+C,GAAG,MAAMC,GAAG,MAAMC,EAAC,IAAKkJ,EAAE,SAAS,SAAS;AACnE,eAAO,EAAE,MAAMnM,GAAG,MAAM+C,GAAG,MAAMC,GAAG,MAAMC,GAAG,QAAQkJ,EAAC;AAAA,MAC9D,CAAO;AACD,MAAA7M,EAAE,QAAQ,CAAC6M,MAAMzQ,EAAE,IAAIyQ,EAAE,OAAO,YAAYA,CAAC,CAAC,GAAG1Q,EAAE,KAAK6D,CAAC;AAAA,IAC1D;AAAA,IACD,MAAM,MAAM7D,EAAE,IAAG,EAAG;AAAA,IACpB,QAAQ,CAACwQ,GAAGC,MAAM;AAChB,MAAA5P,EAAE2P,CAAC,GAAG9P,EAAE+P,CAAC;AAAA,IACV;AAAA,EACL;AACA,GAAGE,KAAK,CAAC3Q,MAAM;AACb,QAAMC,IAAI6G,MAAM,IAAIyJ,GAAI,GAAE,IAAInK,GAAGnG,GAAGD,EAAE,mBAAmB,GAAGU,IAAIuF,GAAGhG,CAAC,GAAGY,IAAIoH;AAC3E,SAAOhI,EAAE,QAAQ,CAAC,EAAE,SAASuM,EAAC,MAAO;AACnC,MAAE,IAAIA,EAAE,QAAQ,IAAI,CAACC,MAAMA,EAAE,MAAM,GAAG,EAAE,GAAGD,EAAE,QAAQ,QAAQ,CAACC,MAAM,EAAE,OAAOA,EAAE,MAAM,CAAC,GAAGD,EAAE,QAAQ,QAAQ,CAAC,EAAE,UAAUC,GAAG,UAAU7I,EAAG,MAAK,EAAE,OAAO6I,EAAE,QAAQ7I,EAAE,MAAM,CAAC;AAAA,EAC7K,CAAG,GAAG;AAAA,IACF,OAAO;AAAA,MACL,GAAG3D;AAAA,MACH,OAAO,CAACuM,GAAGC,MAAM;AACf,cAAM7I,IAAI,EAAE,MAAM4I,GAAGC,CAAC;AACtB,eAAO7I,IAAI3D,EAAE,cAAc2D,EAAE,UAAU,IAAI;AAAA,MAC5C;AAAA,MACD,iBAAiB,CAAC4I,GAAGC,GAAG7I,GAAG4M,MAAM,EAAE,gBAAgBhE,GAAGC,GAAG7I,GAAG4M,CAAC,EAAE,IAAI,CAACC,MAAMxQ,EAAE,cAAcwQ,EAAE,UAAU,CAAC;AAAA,IACxG;AAAA,IACD,WAAW;AAAA,IACX,OAAO/P;AAAA,IACP,UAAUG;AAAA,EACd;AACA,GAAG+P,KAAK,CAAC5Q,MAAM;AACb,QAAMC,IAAI0Q,GAAG3Q,CAAC;AACd,SAAO;AAAA,IACL,GAAGC;AAAA,IACH,OAAO4H,GAAG5H,EAAE,KAAK;AAAA,EACrB;AACA,GAAG4Q,KAAK,CAAC7Q,MAAM;AACb,MAAIC,GAAG;AACP,MAAID,EAAE,aAAa;AACjB,IAAAC,IAAID,GAAG,IAAIC,EAAE,WAAW,MAAM,EAAE,oBAAoB,GAAE,CAAE;AAAA,OACrD;AACH,UAAMS,IAAIV;AACV,IAAAC,IAAI,SAAS,cAAc,QAAQ,GAAGA,EAAE,QAAQS,EAAE,OAAOT,EAAE,SAASS,EAAE,QAAQ,IAAIT,EAAE,WAAW,MAAM,EAAE,oBAAoB,GAAE,CAAE,GAAG,EAAE,UAAUS,GAAG,GAAG,GAAGA,EAAE,OAAOA,EAAE,MAAM;AAAA,EACzK;AACD,MAAI,IAAI;AACR,WAASA,IAAI,GAAGA,IAAI,IAAIA;AACtB,aAASG,IAAI,GAAGA,IAAI,IAAIA,KAAK;AAC3B,YAAMC,IAAI,KAAK,MAAMD,IAAIZ,EAAE,QAAQ,EAAE,GAAGc,IAAI,KAAK,MAAML,IAAIT,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,aAAaa,GAAGC,GAAG,GAAG,CAAC,EAAE,MAAM,KAAK,QAAQ,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,KAAK;AACnK,WAAK;AAAA,IACN;AACH,SAAO,IAAI;AACb,GAAG+P,KAAK,CAAC9Q,MAAM;AACb,QAAMC,IAAI4Q,GAAG7Q,CAAC,GAAG,IAAIC,IAAI,MAAM,SAAS;AACxC,SAAO,QAAQ,IAAI,mCAAmCA,EAAE,QAAQ,CAAC,CAAC,aAAa,CAAC,SAAS,GAAG;AAC9F,GAAG8Q,KAAK,CAAC/Q,GAAGC,GAAG,MAAMA,EAAE,aAAa,cAAc,MAAM,SAAS6Q,GAAG9Q,CAAC,IAAI,CAAC,GAAGgR,KAAK,CAAChR,OAAO;AAAA,EACxF,GAAGA;AAAA,EACH,gBAAgBA,EAAE,mBAAmB,SAAS,KAAKA,EAAE;AAAA,EACrD,aAAaA,EAAE,eAAe;AAAA,EAC9B,qBAAqBA,EAAE,uBAAuBkG,GAAG;AAAA,EACjD,OAAOlG,EAAE,SAAS;AACpB,IAAIiR,KAAK,UAAU,UAAU,QAAQ,UAAU,MAAM,IAAIC,KAAK,CAAClR,GAAGC,MAAM;AACtE,QAAM,IAAIA,KAAK,UAAU,IAAI,CAACa,MAAM;AAClC,IAAAA,EAAE,QAAQ,OAAOA,EAAE,UAAUd,EAAE,KAAI,IAAKc,EAAE,QAAQ,OAAOA,EAAE,WAAWd,EAAE;EAC5E,GAAKU,IAAI,CAACI,MAAM;AACZ,IAAAA,EAAE,QAAQ,OAAOA,EAAE,YAAYA,EAAE,WAAWd,EAAE,KAAM,IAAGA,EAAE,KAAM;AAAA,EAChE,GAAEa,IAAI,MAAM;AACX,IAAAoQ,KAAK,EAAE,oBAAoB,WAAWvQ,CAAC,IAAI,EAAE,oBAAoB,WAAW,CAAC;AAAA,EACjF;AACE,SAAOuQ,KAAK,EAAE,iBAAiB,WAAWvQ,CAAC,IAAI,EAAE,iBAAiB,WAAW,CAAC,GAAG;AAAA,IAC/E,SAASG;AAAA,EACb;AACA,GACMsQ,KAAK,CAACnR,GAAGC,IAAI,OAAO;AACxB,MAAI,CAACD;AACH,UAAM;AACR,QAAM,IAAI,OAAOA,KAAK,WAAW,SAAS,eAAeA,CAAC,IAAIA,GAAG,IAAIgR,GAAG/Q,CAAC,GAAGS,IAAIkQ,GAAG,CAAC,GAAG,EAAE,WAAW/P,GAAG,OAAOC,EAAC,IAAKJ,GAAGK,IAAIiH,GAAGlH,CAAC,GAAG,IAAIoH;AAAA,IACpIxH;AAAA,IACAK;AAAA,IACA,EAAE;AAAA,IACF,EAAE;AAAA,EACH,GAAE,IAAI,SAAS,cAAc,KAAK;AACnC,IAAE,MAAM,WAAW,YAAY,EAAE,MAAM,UAAU,gBAAgB,EAAE,MAAM,UAAU,SAAS,EAAE,WAAW,aAAa,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC;AAC5I,QAAM6C,IAAIsN,GAAGnQ,CAAC;AACd,MAAI,IAAI2H;AACR,EAAAqI,GAAG,GAAG,GAAG,EAAE,KAAK;AAChB,QAAM,IAAI,IAAI5B,GAAG;AAAA,IACf,QAAQ;AAAA,IACR,OAAO;AAAA,MACL,gBAAgB,EAAE;AAAA,MAClB,OAAO;AAAA,MACP,sBAAsB,EAAE;AAAA,MACxB,OAAOzO;AAAA,MACP,OAAO,EAAE;AAAA,MACT,MAAM;AAAA,IACP;AAAA,EACL,CAAG;AACD,IAAE,IAAI,SAAS,CAACqG,MAAM;AACpB,UAAM,EAAE,eAAeC,GAAG,YAAYC,EAAG,IAAGF,EAAE;AAC9C,IAAAE,IAAIpG,EAAE,YAAYoG,EAAE,IAAID,CAAC,IAAInG,EAAE,QAAO,KAAMA,EAAE,MAAK;AAAA,EACvD,CAAG;AACD,QAAMgD,IAAIwE,GAAG3H,GAAGK,GAAG,EAAE,OAAO,GAAG,IAAI,MAAM;AACvC,MAAE,SAAQ,GAAI,EAAE,WAAW,aAAa,GAAG,CAAC,GAAG,EAAE,WAAW,YAAY,CAAC,GAAG6C,EAAE,WAAW7C,EAAE;EAC/F,GAAKwD,IAAI,MAAM,GAAG+C,IAAI,CAACP,GAAGC,GAAGC,MAAMmG,GAAGrG,GAAGC,GAAGC,CAAC,GAAGM,IAAI,CAACR,GAAGC,MAAMqE,GAAGtE,GAAGC,CAAC,GAAGQ,IAAI,CAACT,MAAM;AAC/E,UAAM,EAAE,MAAMC,GAAG,MAAMC,MAAMkG,GAAGpG,CAAC;AACjC,MAAE,KAAK,EAAE,MAAMC,GAAG,MAAMC,EAAC,CAAE;AAAA,EAC5B,GAAEQ,IAAI,CAACV,MAAM,EAAE,KAAK,EAAE,gBAAgBA,EAAG,CAAA,GAAGW,IAAI,CAACX,MAAM;AACtD,YAAQ,KAAK,4BAA4B;AAAA,EAC7C,GAAKY,IAAI,CAACZ,MAAM,EAAE,KAAK,EAAE,OAAOA,GAAG,GAAG,IAAI,CAACA,MAAMgK,GAAG,GAAG,GAAGhK,CAAC,GAAGa,IAAI,CAACb,MAAM;AACrE,QAAIA,GAAG,EAAE,KAAK,EAAE,MAAMA,EAAC,CAAE;AAAA,EAC7B;AACE,SAAO;AAAA,IACL,GAAGlD;AAAA,IACH,SAAS;AAAA,IACT,SAASU;AAAA,IACT,kBAAkB2I;AAAA,IAClB,IAAI,EAAE;AAAA,IACN,KAAK,EAAE;AAAA,IACP,qBAAqB5F;AAAA,IACrB,qBAAqBC;AAAA,IACrB,mBAAmBE;AAAA,IACnB,gBAAgBD;AAAA,IAChB,WAAWE;AAAA,IACX,UAAUC;AAAA,IACV,UAAU;AAAA,IACV,SAASC;AAAA,IACT,OAAOlH;AAAA,EACX;AACA;AAgJG,IAWkC0Q,KAAK,CAACpR,IAAI,OAAO,OAAO,gBAAgB,IAAI,WAAWA,CAAC,CAAC,EAAE,OAAO,CAACC,GAAG,OAAO,KAAK,IAAI,IAAI,KAAKA,KAAK,EAAE,SAAS,EAAE,IAAI,IAAI,KAAKA,MAAM,IAAI,IAAI,SAAS,EAAE,EAAE,YAAW,IAAK,IAAI,KAAKA,KAAK,MAAMA,KAAK,KAAKA,IAAI,EAAE;AA4D3JmR,GAAI;"}
|