replicad-pantograph 0.10.3 → 0.11.1
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/es/replicad-pantograph.js +2092 -1933
- package/dist/es/replicad-pantograph.js.map +1 -1
- package/dist/studio/replicad-pantograph.js +2092 -1933
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replicad-pantograph.js","sources":["../../../pantograph/dist/QuadraticBezier-DCa0WGs0.js","../../../pantograph/dist/models-CFd5lRKc.js","../../../pantograph/dist/draw-CJWiicbK.js","../../../pantograph/dist/pantograph/drawShape.js","../../../pantograph/dist/svg-CD4q2GBE.js","../../../pantograph/dist/pantograph.js","../../index.ts"],"sourcesContent":["var Oe = Object.defineProperty;\nvar Me = (r) => {\n throw TypeError(r);\n};\nvar Be = (r, s, t) => s in r ? Oe(r, s, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[s] = t;\nvar q = (r, s, t) => Be(r, typeof s != \"symbol\" ? s + \"\" : s, t), oe = (r, s, t) => s.has(r) || Me(\"Cannot \" + t);\nvar ht = (r, s, t) => (oe(r, s, \"read from private field\"), t ? t.call(r) : s.get(r)), le = (r, s, t) => s.has(r) ? Me(\"Cannot add the same private member more than once\") : s instanceof WeakSet ? s.add(r) : s.set(r, t), Dt = (r, s, t, e) => (oe(r, s, \"write to private field\"), e ? e.call(r, t) : s.set(r, t), t), he = (r, s, t) => (oe(r, s, \"access private method\"), t);\nfunction zt(r, s, t, e) {\n return r <= e && s >= t;\n}\nclass mt {\n constructor(s = 1 / 0, t = 1 / 0, e = -1 / 0, n = -1 / 0) {\n q(this, \"xMin\");\n q(this, \"yMin\");\n q(this, \"xMax\");\n q(this, \"yMax\");\n this.xMin = s, this.yMin = t, this.xMax = e, this.yMax = n;\n }\n get width() {\n return this.xMax - this.xMin;\n }\n get height() {\n return this.yMax - this.yMin;\n }\n get center() {\n return [(this.xMin + this.xMax) / 2, (this.yMin + this.yMax) / 2];\n }\n grow(s) {\n return new mt(\n this.xMin - s,\n this.yMin - s,\n this.xMax + s,\n this.yMax + s\n );\n }\n contains(s) {\n const [t, e] = s;\n return zt(this.xMin, this.xMax, t, t) && zt(this.yMin, this.yMax, e, e);\n }\n overlaps(s) {\n return zt(this.xMin, this.xMax, s.xMin, s.xMax) && zt(this.yMin, this.yMax, s.yMin, s.yMax);\n }\n addPoint(s) {\n const [t, e] = s;\n return new mt(\n Math.min(this.xMin, t),\n Math.min(this.yMin, e),\n Math.max(this.xMax, t),\n Math.max(this.yMax, e)\n );\n }\n merge(s) {\n return new mt(\n Math.min(this.xMin, s.xMin),\n Math.min(this.yMin, s.yMin),\n Math.max(this.xMax, s.xMax),\n Math.max(this.yMax, s.yMax)\n );\n }\n intersection(s) {\n return new mt(\n Math.max(this.xMin, s.xMin),\n Math.max(this.yMin, s.yMin),\n Math.min(this.xMax, s.xMax),\n Math.min(this.yMax, s.yMax)\n );\n }\n}\nfunction ce(r) {\n return r.reduce((s, t) => s.addPoint(t), new mt());\n}\nconst ye = (r, s = 1e-9) => {\n let t = r;\n return Math.abs(r) < s && (t = 0), t.toFixed(-Math.log10(s));\n};\nfunction Te(r, s = 1e-9) {\n return Array.from(\n new Map(\n r.map(([t, e]) => [\n `[${ye(t, s)},${ye(e, s)}]`,\n [t, e]\n ])\n ).values()\n );\n}\nconst fe = Math.PI / 180, Ue = 180 / Math.PI, Z = (r) => `[${r[0]}, ${r[1]}]`, Y = ([r, s], [t, e], n = 1e-9) => Math.abs(r - t) <= n && Math.abs(s - e) <= n, it = ([r, s], [t, e]) => [r + t, s + e], Q = ([r, s], [t, e]) => [r - t, s - e], It = ([r, s]) => r * r + s * s, an = ([r, s]) => Math.sqrt(It([r, s])), nt = ([r, s], t) => [r * t, s * t], Rt = ([r, s], [t, e] = [0, 0]) => (r - t) ** 2 + (s - e) ** 2, J = (r, s = [0, 0]) => Math.sqrt(Rt(r, s));\nfunction St([r, s], [t, e]) {\n return r * e - s * t;\n}\nfunction Pe([r, s], [t, e]) {\n return r * t + s * e;\n}\nfunction un([r, s], [t, e] = [0, 0]) {\n return Math.atan2(e * r - s * t, r * t + s * e);\n}\nfunction H([r, s]) {\n const t = J([r, s]);\n return [r / t, s / t];\n}\nfunction Tt(r, s) {\n const t = Math.cos(s) * r, e = Math.sin(s) * r;\n return [t, e];\n}\nfunction Ye([r, s]) {\n return Math.atan2(s, r);\n}\nfunction We(r) {\n const s = J(r), t = Ye(r);\n return [s, t];\n}\nfunction Ie(r, s, t = 1e-9) {\n const e = St(r, s), n = It(r), i = It(s);\n return e * e < n * i * t * t;\n}\nfunction tt(r) {\n return [-r[1], r[0]];\n}\nfunction Qt(r) {\n return [r[1], -r[0]];\n}\nfunction Qe(r, s, t) {\n return Y(t, r) || Ie(Q(t, r), s);\n}\nconst Mt = (r, s) => {\n const [t, e, n, i, o, l, h, a, u] = r, [c, g, d, w, p, P, f, M, E] = s;\n return [\n t * c + e * w + n * f,\n t * g + e * p + n * M,\n t * d + e * P + n * E,\n i * c + o * w + l * f,\n i * g + o * p + l * M,\n i * d + o * P + l * E,\n h * c + a * w + u * f,\n h * g + a * p + u * M,\n h * d + a * P + u * E\n ];\n}, Ge = (r) => {\n const [s, t, e, n, i, o, l, h, a] = r, u = s * (i * a - o * h) - t * (n * a - o * l) + e * (n * h - i * l);\n return [\n (i * a - o * h) / u,\n (e * h - t * a) / u,\n (t * o - e * i) / u,\n (o * l - n * a) / u,\n (s * a - e * l) / u,\n (e * n - s * o) / u,\n (n * h - i * l) / u,\n (t * l - s * h) / u,\n (s * i - t * n) / u\n ];\n}, Xe = (r) => {\n const [s, t, e, n, i, o, l, h, a] = r;\n return [s, n, l, t, i, h, e, o, a];\n};\nclass et {\n constructor(s) {\n q(this, \"_matrix\", [1, 0, 0, 0, 1, 0, 0, 0, 1]);\n s && (this._matrix = [...s]);\n }\n clone() {\n return new et(this._matrix);\n }\n transpose() {\n return this._matrix = Xe(this._matrix), this;\n }\n inverse() {\n return this._matrix = Ge(this._matrix), this;\n }\n translate(s, t) {\n return this._matrix = Mt([1, 0, s, 0, 1, t, 0, 0, 1], this._matrix), this;\n }\n rotate(s, t) {\n const e = Math.cos(s), n = Math.sin(s), i = [e, -n, 0, n, e, 0, 0, 0, 1];\n return t && this.translate(-t[0], -t[1]), this._matrix = Mt(i, this._matrix), t && this.translate(t[0], t[1]), this;\n }\n mirrorX() {\n return this._matrix = Mt([1, 0, 0, 0, -1, 0, 0, 0, 1], this._matrix), this;\n }\n mirrorY() {\n return this._matrix = Mt([-1, 0, 0, 0, 1, 0, 0, 0, 1], this._matrix), this;\n }\n mirrorLine(s, t) {\n const [e, n] = s, i = Math.atan2(n, e);\n return t && this.translate(-t[0], -t[1]), this.rotate(-i), this.mirrorX(), this.rotate(i), t && this.translate(t[0], t[1]), this;\n }\n mirrorCenter(s) {\n return s && this.translate(-s[0], -s[1]), this._matrix = Mt([-1, 0, 0, 0, -1, 0, 0, 0, 1], this._matrix), s && this.translate(s[0], s[1]), this;\n }\n scale(s, t) {\n return t && this.translate(-t[0], -t[1]), this._matrix = Mt([s, 0, 0, 0, s, 0, 0, 0, 1], this._matrix), t && this.translate(t[0], t[1]), this;\n }\n transform(s) {\n const [t, e] = s, [n, i, o, l, h, a] = this._matrix;\n return [n * t + i * e + o, l * t + h * e + a];\n }\n transformAngle(s) {\n const [t, e] = this.transform([Math.cos(s), Math.sin(s)]), [n, i] = this.transform([0, 0]);\n return Math.atan2(e - i, t - n);\n }\n keepsOrientation() {\n const [s, , , , t] = this._matrix;\n return s * t > 0;\n }\n scaleFactor() {\n const [s, , , t] = this._matrix;\n return Math.sqrt(s * s + t * t);\n }\n}\nclass Ze {\n translateX(s) {\n const t = new et().translate(s, 0);\n return this.transform(t);\n }\n translateY(s) {\n const t = new et().translate(0, s);\n return this.transform(t);\n }\n translate(s, t) {\n const e = new et().translate(s, t);\n return this.transform(e);\n }\n translateTo([s, t]) {\n const e = new et().translate(s, t);\n return this.transform(e);\n }\n rotate(s, t) {\n const e = new et().rotate(\n s * fe,\n t\n );\n return this.transform(e);\n }\n scale(s, t) {\n const e = new et().scale(s, t);\n return this.transform(e);\n }\n mirrorCenter(s) {\n const t = new et().mirrorCenter(s);\n return this.transform(t);\n }\n mirror(s = \"x\", t) {\n const e = new et();\n return s === \"x\" ? e.mirrorX() : s === \"y\" ? e.mirrorY() : e.mirrorLine(s, t), this.transform(e);\n }\n}\nclass xt extends Ze {\n constructor(t, e) {\n super();\n q(this, \"precision\", 1e-9);\n this.firstPoint = t, this.lastPoint = e, this.firstPoint = t, this.lastPoint = e;\n }\n get repr() {\n return `${this.segmentType} ${Z(this.firstPoint)} - ${Z(\n this.lastPoint\n )}`;\n }\n get info() {\n return this.repr;\n }\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n return this.repr;\n }\n}\nclass at extends xt {\n constructor() {\n super(...arguments);\n q(this, \"segmentType\", \"LINE\");\n q(this, \"_V\", null);\n q(this, \"_slope\", null);\n q(this, \"_yIntercept\", null);\n q(this, \"_boundingBox\", null);\n }\n isValidParameter(t) {\n const e = this.length * this.precision;\n return t >= -e && 1 - t >= -e;\n }\n paramPoint(t) {\n return it(this.firstPoint, nt(this.V, t));\n }\n get length() {\n return J(this.firstPoint, this.lastPoint);\n }\n get squareLength() {\n return Rt(this.firstPoint, this.lastPoint);\n }\n get V() {\n return this._V === null && (this._V = Q(this.lastPoint, this.firstPoint)), this._V;\n }\n get slope() {\n if (this._slope === null) {\n const [t, e] = this.V;\n this._slope = e / t;\n }\n return this._slope;\n }\n get yIntercept() {\n return this._yIntercept === null && (this._yIntercept = this.firstPoint[1] - this.slope * this.firstPoint[0]), this._yIntercept;\n }\n get midPoint() {\n return it(this.firstPoint, nt(this.V, 0.5));\n }\n isSame(t) {\n return t instanceof at ? Y(this.firstPoint, t.firstPoint) && Y(this.lastPoint, t.lastPoint) || Y(this.lastPoint, t.firstPoint) && Y(this.firstPoint, t.lastPoint) : !1;\n }\n clone() {\n return new at(this.firstPoint, this.lastPoint);\n }\n reverse() {\n return new at(this.lastPoint, this.firstPoint);\n }\n get boundingBox() {\n return this._boundingBox === null && (this._boundingBox = new mt(\n Math.min(this.firstPoint[0], this.lastPoint[0]) - this.precision,\n Math.min(this.firstPoint[1], this.lastPoint[1]) - this.precision,\n Math.max(this.firstPoint[0], this.lastPoint[0]) + this.precision,\n Math.max(this.firstPoint[1], this.lastPoint[1]) + this.precision\n )), this._boundingBox;\n }\n distanceFrom(t) {\n const e = Q(t, this.firstPoint), n = Pe(e, this.V) / this.squareLength;\n if (n < 0)\n return J(t, this.firstPoint);\n if (n > 1)\n return J(t, this.lastPoint);\n const i = this.paramPoint(n);\n return J(t, i);\n }\n isOnSegment(t) {\n if (Y(t, this.firstPoint, this.precision)) return !0;\n const e = Q(t, this.firstPoint);\n if (!Ie(this.V, e)) return !1;\n const n = Pe(e, this.V) / this.squareLength;\n return this.isValidParameter(n);\n }\n gradientAt(t) {\n return this.V;\n }\n tangentAt(t) {\n if (!this.isOnSegment(t)) throw new Error(\"Point is not on segment\");\n return H(this.V);\n }\n get normalVector() {\n return tt(H(this.V));\n }\n get tangentAtFirstPoint() {\n return H(this.V);\n }\n get tangentAtLastPoint() {\n return H(this.V);\n }\n splitAt(t) {\n let e;\n if (Array.isArray(t) && t.length === 0)\n return [this];\n Array.isArray(t[0]) ? e = t : e = [t], e.forEach((a) => {\n if (!this.isOnSegment(a))\n throw new Error(\n `Point ${Z(a)} is not on segment ${this.repr}`\n );\n });\n const n = [this.firstPoint, ...e, this.lastPoint], i = Te(n), o = this.lastPoint[0] - this.firstPoint[0];\n let l = Math.sign(o), h = 0;\n return Math.abs(o) < this.precision && (l = Math.sign(this.lastPoint[1] - this.firstPoint[1]), h = 1), i.sort(\n (a, u) => l * (a[h] - u[h])\n ), i.flatMap((a, u) => u === i.length - 1 ? [] : new at(a, i[u + 1]));\n }\n transform(t) {\n return new at(\n t.transform(this.firstPoint),\n t.transform(this.lastPoint)\n );\n }\n}\nfunction Je(r) {\n return Array.from(Array(r).keys());\n}\nfunction Kt(r) {\n const s = Math.min(...r.map((t) => t.length));\n return Je(s).map((t) => r.map((e) => e[t]));\n}\nfunction wt(r, s = 1e-9) {\n return r < 0 ? r + 2 * Math.PI : r >= 2 * Math.PI ? r % (2 * Math.PI) : r > 2 * Math.PI - s ? 0 : r;\n}\nfunction Zt(r, s, t, e = 1e-9) {\n let n = s - r;\n return t && (n = -n), n < 0 && (n += 2 * Math.PI), n > 2 * Math.PI - e ? 0 : n;\n}\nconst me = (r, s, t) => {\n const e = St(r.V, s.V), n = It(r.V), i = It(s.V), o = t ? t * t : r.precision * s.precision;\n if (e * e < n * i * o)\n return \"parallel\";\n const l = Q(s.firstPoint, r.firstPoint), h = St(l, s.V) / e, a = St(l, r.V) / e;\n return {\n intersectionParam1: h,\n intersectionParam2: a\n };\n};\nfunction cn(r, s, t = !1, e) {\n const n = me(r, s, e);\n if (n === \"parallel\") {\n if (!t) return null;\n if (r.isSame(s)) return r;\n const l = Te(\n [\n s.isOnSegment(r.firstPoint) ? r.firstPoint : null,\n s.isOnSegment(r.lastPoint) ? r.lastPoint : null,\n r.isOnSegment(s.firstPoint) ? s.firstPoint : null,\n r.isOnSegment(s.lastPoint) ? s.lastPoint : null\n ].filter((h) => h !== null)\n ).sort((h, a) => h[0] - a[0]);\n if (l.length === 0) return null;\n if (l.length === 1) return null;\n if (l.length === 2) return new at(l[0], l[1]);\n throw console.error(l), new Error(\n \"Unexpected number of points while intersecting parallel lines\"\n );\n }\n const { intersectionParam1: i, intersectionParam2: o } = n;\n return !r.isValidParameter(i) || !s.isValidParameter(o) ? null : r.paramPoint(i);\n}\nconst Ot = (r, s) => {\n const t = Q(r, s);\n return We(t);\n};\nclass ct extends xt {\n constructor(t, e, n, i = !1, { ignoreChecks: o = !1 } = {}) {\n super(t, e);\n q(this, \"segmentType\", \"ARC\");\n q(this, \"center\");\n q(this, \"clockwise\");\n q(this, \"_coefficients\", null);\n q(this, \"_angularLength\", null);\n q(this, \"_radius\", null);\n q(this, \"_firstAngle\", null);\n q(this, \"_lastAngle\", null);\n q(this, \"_boundingBox\", null);\n if (this.center = n, this.clockwise = i, !o) {\n if (Y(t, e))\n throw new Error(\"Invalid arc, cannot be a full circle\");\n if (Math.abs(this.radius - J(this.lastPoint, this.center)) > this.precision)\n throw new Error(\n `Invalid arc, radius does not match between ${Z(\n t\n )} and ${Z(e)}} (center ${Z(n)})`\n );\n }\n }\n get info() {\n return `ARC(${Z(this.firstPoint)}, ${Z(\n this.lastPoint\n )}, ${Z(this.center)}, ${this.clockwise ? \"CW\" : \"CCW\"})`;\n }\n get coefficients() {\n if (this._coefficients === null) {\n const [t, e] = this.center, n = this.radius * this.radius;\n this._coefficients = {\n x2: 1 / n,\n xy: 0,\n y2: 1 / n,\n x: -(2 * t) / n,\n y: -(2 * e) / n,\n c: (t * t + e * e - n) / n\n };\n }\n return this._coefficients;\n }\n isValidParameter(t) {\n return 1 - t >= -this.precision && t >= -this.precision;\n }\n angleToParam(t) {\n return Zt(this.firstAngle, wt(t), this.clockwise) / this.angularLength;\n }\n get angularLength() {\n return this._angularLength || (this._angularLength = Zt(\n this.firstAngle,\n this.lastAngle,\n this.clockwise\n )), this._angularLength;\n }\n paramPoint(t) {\n return it(\n this.center,\n Tt(\n this.radius,\n this.firstAngle + t * this.angularLength * (this.clockwise ? -1 : 1)\n )\n );\n }\n pointToParam(t) {\n const [e, n] = Ot(t, this.center);\n if (Math.abs(e - this.radius) > this.precision)\n throw new Error(\n `Point ${Z(t)} is not on segment ${this.repr}`\n );\n const i = this.angleToParam(n);\n if (!this.isValidParameter(i))\n throw new Error(\n `Point ${Z(t)} is not on segment ${this.repr}`\n );\n return i;\n }\n get radius() {\n return this._radius === null && (this._radius = J(this.firstPoint, this.center)), this._radius;\n }\n get firstAngle() {\n if (this._firstAngle === null) {\n const [t, e] = Q(this.firstPoint, this.center);\n this._firstAngle = wt(Math.atan2(e, t));\n }\n return this._firstAngle;\n }\n get lastAngle() {\n if (this._lastAngle === null) {\n const [t, e] = Q(this.lastPoint, this.center);\n this._lastAngle = wt(Math.atan2(e, t));\n }\n return this._lastAngle;\n }\n get length() {\n return this.radius * this.angularLength;\n }\n get squareLength() {\n return this.length * this.length;\n }\n get midPoint() {\n return this.paramPoint(0.5);\n }\n isSame(t) {\n return !(t instanceof ct) || !Y(this.center, t.center) ? !1 : Y(this.firstPoint, t.firstPoint) && Y(this.lastPoint, t.lastPoint) && this.clockwise === t.clockwise || Y(this.lastPoint, t.firstPoint) && Y(this.firstPoint, t.lastPoint) && this.clockwise === !t.clockwise;\n }\n clone() {\n return new ct(\n this.firstPoint,\n this.lastPoint,\n this.center,\n this.clockwise\n );\n }\n reverse() {\n return new ct(\n this.lastPoint,\n this.firstPoint,\n this.center,\n !this.clockwise\n );\n }\n get boundingBox() {\n if (this._boundingBox === null) {\n const t = this.radius + this.precision, e = (n) => this.isValidParameter(this.angleToParam(n));\n this._boundingBox = new mt(\n e(Math.PI) ? this.center[0] - t : Math.min(this.firstPoint[0], this.lastPoint[0]) - this.precision,\n e(Math.PI * 1.5) ? this.center[1] - t : Math.min(this.firstPoint[1], this.lastPoint[1]) - this.precision,\n e(0) ? this.center[0] + t : Math.max(this.firstPoint[0], this.lastPoint[0]) + this.precision,\n e(Math.PI / 2) ? this.center[1] + t : Math.max(this.firstPoint[1], this.lastPoint[1]) + this.precision\n );\n }\n return this._boundingBox;\n }\n distanceFrom(t) {\n const [e, n] = Ot(t, this.center);\n return this.isValidParameter(this.angleToParam(n)) ? Math.abs(e - this.radius) : Math.sqrt(\n Math.min(\n Rt(t, this.firstPoint),\n Rt(t, this.lastPoint)\n )\n );\n }\n isOnSegment(t) {\n if (Y(t, this.firstPoint) || Y(t, this.lastPoint))\n return !0;\n const [e, n] = Ot(t, this.center);\n if (Math.abs(e - this.radius) > this.precision) return !1;\n const i = this.angleToParam(n);\n return this.isValidParameter(i);\n }\n gradientAt(t) {\n const e = this.firstAngle + t * this.angularLength * (this.clockwise ? -1 : 1), n = this.radius * this.angularLength, i = -n * Math.sin(e), o = n * Math.cos(e);\n return this.clockwise ? [-i, -o] : [i, o];\n }\n tangentAt(t) {\n const [e, n] = Ot(t, this.center);\n if (Math.abs(e - this.radius) > this.precision)\n throw new Error(\"Point is not on the arc\");\n const i = this.angleToParam(n);\n if (!this.isValidParameter(i))\n throw new Error(\"Point is not on the arc\");\n const o = Tt(1, n);\n return (this.clockwise ? Qt : tt)(H(o));\n }\n get tangentAtFirstPoint() {\n const t = Tt(1, this.firstAngle);\n return (this.clockwise ? Qt : tt)(H(t));\n }\n get tangentAtLastPoint() {\n const t = Tt(1, this.lastAngle);\n return (this.clockwise ? Qt : tt)(H(t));\n }\n splitAt(t) {\n let e;\n if (Array.isArray(t) && t.length === 0)\n return [this];\n Array.isArray(t[0]) ? e = t : e = [t];\n const i = [0, 1, ...e.map((h) => this.pointToParam(h))], o = new Map(\n Kt([i, [this.firstPoint, this.lastPoint, ...e]])\n );\n i.sort((h, a) => h - a);\n let l = null;\n return i.flatMap((h, a) => {\n if (a === i.length - 1) return [];\n const u = i[a + 1];\n if (u - h < this.precision)\n return l === null && (l = h), [];\n const c = l === null ? h : l, g = new ct(\n o.get(c) || this.paramPoint(c),\n o.get(u) || this.paramPoint(u),\n this.center,\n this.clockwise\n );\n return l = null, g;\n });\n }\n transform(t) {\n return new ct(\n t.transform(this.firstPoint),\n t.transform(this.lastPoint),\n t.transform(this.center),\n t.keepsOrientation() ? this.clockwise : !this.clockwise\n );\n }\n}\nfunction fn(r, s, t) {\n const e = new at(s, r), n = new at(s, t), i = tt(e.tangentAtFirstPoint), o = tt(n.tangentAtLastPoint), l = me(\n { firstPoint: e.midPoint, V: i, precision: 1e-9 },\n { firstPoint: n.midPoint, V: o, precision: 1e-9 }\n );\n if (l === \"parallel\")\n throw new Error(\"Cannot create an arc from three colinear points\");\n const h = St(\n Q(r, s),\n Q(t, s)\n ) > 0;\n return new ct(\n r,\n t,\n it(e.midPoint, nt(i, l.intersectionParam1)),\n h,\n { ignoreChecks: !0 }\n );\n}\nfunction mn(r, s, t) {\n const e = new at(r, s), n = tt(e.tangentAtFirstPoint), i = me(\n { firstPoint: e.midPoint, V: n, precision: 1e-9 },\n {\n firstPoint: r,\n V: tt(t),\n precision: 1e-9\n }\n );\n if (i === \"parallel\")\n throw new Error(\"Cannot create an arc from three colinear points\");\n const o = it(\n e.midPoint,\n nt(n, i.intersectionParam1)\n ), l = St(\n Q(o, r),\n Q(o, it(r, t))\n ) < 0;\n return new ct(r, s, o, l, {\n ignoreChecks: !0\n });\n}\nconst be = 1e-21, Bt = 1.618034;\nfunction Ee(r, s = 0, t = 1, e = 110, n = 1e3) {\n let i, o, l, h, a, u, c, g, d, w, p, P, f;\n for (o = r(s), l = r(t), o < l && ([s, t] = [t, s], [o, l] = [l, o]), f = t + Bt * (t - s), h = r(f), a = 3, c = 0; h < l; ) {\n if (g = (t - s) * (l - h), d = (t - f) * (l - o), w = d - g, Math.abs(w) < be ? i = 2 * be : i = 2 * w, p = t - ((t - f) * d - (t - s) * g) / i, P = t + e * (f - t), c > n)\n throw new Error(\"Too many iterations.\");\n if (c += 1, (p - f) * (t - p) > 0) {\n if (u = r(p), a += 1, u < h)\n return s = t, t = p, o = l, l = u, [s, t, f, o, l, h, a];\n if (u > l)\n return f = p, h = u, [s, t, f, o, l, h, a];\n p = f + Bt * (f - t), u = r(p), a += 1;\n } else\n (p - P) * (P - f) >= 0 ? (p = P, u = r(p), a += 1) : (p - P) * (f - p) > 0 ? (u = r(p), a += 1, u < h && (t = f, f = p, p = f + Bt * (f - t), l = h, h = u, u = r(p), a += 1)) : (p = f + Bt * (f - t), u = r(p), a += 1);\n s = t, t = f, f = p, o = l, l = h, h = u;\n }\n return [s, t, f, o, l, h, a];\n}\nconst _e = 0.381966, Ke = 1e-11;\nclass He {\n constructor(s, t = 148e-10, e = 500) {\n q(this, \"xmin\");\n q(this, \"fval\");\n q(this, \"iter\");\n q(this, \"funcalls\");\n q(this, \"brack\");\n this.func = s, this.tol = t, this.maxiter = e, this.func = s, this.tol = t, this.maxiter = e, this.xmin = 1 / 0, this.fval = 1 / 0, this.iter = 0, this.funcalls = 0, this.brack = null;\n }\n setBracket(s = null) {\n this.brack = s;\n }\n getBracketInfo() {\n let s, t, e, n, i, o, l;\n const h = this.func, a = this.brack;\n if (a === null)\n [i, o, l, s, t, e, n] = Ee(h);\n else if (a.length === 2)\n [i, o, l, s, t, e, n] = Ee(h, a[0], a[1]);\n else if (a.length === 3) {\n if ([i, o, l] = a, i > l && ([l, i] = [i, l]), !(i < o && o < l))\n throw new Error(\"Not a bracketing interval.\");\n if (s = h(i), t = h(o), e = h(l), !(t < s && t < e))\n throw new Error(\"Not a bracketing interval.\");\n n = 3;\n } else\n throw new Error(\n \"Bracketing interval must be length 2 or 3 sequence.\"\n );\n return [i, o, l, s, t, e, n];\n }\n optimize() {\n const s = this.func;\n let [t, e, n, , , , i] = this.getBracketInfo(), o = e, l = e, h = e, a = s(o), u = a, c = a, g, d;\n t < n ? (g = t, d = n) : (g = n, d = t);\n let w = 0;\n i = 1;\n let p = 0, P = 0, f;\n for (; p < this.maxiter; ) {\n const M = this.tol * Math.abs(o) + Ke, E = 2 * M, R = 0.5 * (g + d);\n if (Math.abs(o - R) < E - 0.5 * (d - g))\n break;\n if (Math.abs(w) <= M)\n o >= R ? w = g - o : w = d - o, P = _e * w;\n else {\n const L = (o - l) * (c - u);\n let S = (o - h) * (c - a), k = (o - h) * S - (o - l) * L;\n S = 2 * (S - L), S > 0 && (k = -k), S = Math.abs(S);\n const D = w;\n w = P, k > S * (g - o) && k < S * (d - o) && Math.abs(k) < Math.abs(0.5 * S * D) ? (P = k * 1 / S, f = o + P, (f - g < E || d - f < E) && (R - o >= 0 ? P = M : P = -M)) : (o >= R ? w = g - o : w = d - o, P = _e * w);\n }\n Math.abs(P) < M ? P >= 0 ? f = o + M : f = o - M : f = o + P;\n const v = s(f);\n i += 1, v > c ? (f < o ? g = f : d = f, v <= a || l === o ? (h = l, l = f, u = a, a = v) : (v <= u || h === o || h === l) && (h = f, u = v)) : (f >= o ? g = o : d = o, h = l, l = o, o = f, u = a, a = c, c = v), p += 1;\n }\n this.xmin = o, this.fval = c, this.iter = p, this.funcalls = i;\n }\n results() {\n return {\n argMin: this.xmin,\n fMin: this.fval,\n iterations: this.iter,\n funcCalls: this.funcalls\n };\n }\n run() {\n return this.optimize(), this.results();\n }\n}\nfunction Ce(r, s = 1e-8, t = 1e3) {\n const e = new He(r, s, t);\n return e.setBracket([0, 1]), e.run();\n}\nfunction qe(r) {\n if (r.__esModule) return r;\n var s = r.default;\n if (typeof s == \"function\") {\n var t = function e() {\n return this instanceof e ? Reflect.construct(s, arguments, this.constructor) : s.apply(this, arguments);\n };\n t.prototype = s.prototype;\n } else t = {};\n return Object.defineProperty(t, \"__esModule\", { value: !0 }), Object.keys(r).forEach(function(e) {\n var n = Object.getOwnPropertyDescriptor(r, e);\n Object.defineProperty(t, e, n.get ? n : {\n enumerable: !0,\n get: function() {\n return r[e];\n }\n });\n }), t;\n}\nvar $ = {};\nconst ts = Object.prototype.toString;\nfunction Ct(r) {\n const s = ts.call(r);\n return s.endsWith(\"Array]\") && !s.includes(\"Big\");\n}\nconst es = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n isAnyArray: Ct\n}, Symbol.toStringTag, { value: \"Module\" })), ss = /* @__PURE__ */ qe(es);\nfunction ns(r) {\n var s = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n if (!Ct(r))\n throw new TypeError(\"input must be an array\");\n if (r.length === 0)\n throw new TypeError(\"input must not be empty\");\n var t = s.fromIndex, e = t === void 0 ? 0 : t, n = s.toIndex, i = n === void 0 ? r.length : n;\n if (e < 0 || e >= r.length || !Number.isInteger(e))\n throw new Error(\"fromIndex must be a positive integer smaller than length\");\n if (i <= e || i > r.length || !Number.isInteger(i))\n throw new Error(\"toIndex must be an integer greater than fromIndex and at most equal to length\");\n for (var o = r[e], l = e + 1; l < i; l++)\n r[l] > o && (o = r[l]);\n return o;\n}\nfunction is(r) {\n var s = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n if (!Ct(r))\n throw new TypeError(\"input must be an array\");\n if (r.length === 0)\n throw new TypeError(\"input must not be empty\");\n var t = s.fromIndex, e = t === void 0 ? 0 : t, n = s.toIndex, i = n === void 0 ? r.length : n;\n if (e < 0 || e >= r.length || !Number.isInteger(e))\n throw new Error(\"fromIndex must be a positive integer smaller than length\");\n if (i <= e || i > r.length || !Number.isInteger(i))\n throw new Error(\"toIndex must be an integer greater than fromIndex and at most equal to length\");\n for (var o = r[e], l = e + 1; l < i; l++)\n r[l] < o && (o = r[l]);\n return o;\n}\nfunction rs(r) {\n var s = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n if (Ct(r)) {\n if (r.length === 0)\n throw new TypeError(\"input must not be empty\");\n } else throw new TypeError(\"input must be an array\");\n var t;\n if (s.output !== void 0) {\n if (!Ct(s.output))\n throw new TypeError(\"output option must be an array if specified\");\n t = s.output;\n } else\n t = new Array(r.length);\n var e = is(r), n = ns(r);\n if (e === n)\n throw new RangeError(\"minimum and maximum input values are equal. Cannot rescale a constant array\");\n var i = s.min, o = i === void 0 ? s.autoMinMax ? e : 0 : i, l = s.max, h = l === void 0 ? s.autoMinMax ? n : 1 : l;\n if (o >= h)\n throw new RangeError(\"min option must be smaller than max option\");\n for (var a = (h - o) / (n - e), u = 0; u < r.length; u++)\n t[u] = (r[u] - e) * a + o;\n return t;\n}\nconst os = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: rs\n}, Symbol.toStringTag, { value: \"Module\" })), ls = /* @__PURE__ */ qe(os);\nObject.defineProperty($, \"__esModule\", { value: !0 });\nvar st = ss, je = ls;\nconst Ut = \" \".repeat(2), Fe = \" \".repeat(4);\nfunction hs() {\n return xe(this);\n}\nfunction xe(r, s = {}) {\n const {\n maxRows: t = 15,\n maxColumns: e = 10,\n maxNumSize: n = 8,\n padMinus: i = \"auto\"\n } = s;\n return `${r.constructor.name} {\n${Ut}[\n${Fe}${as(r, t, e, n, i)}\n${Ut}]\n${Ut}rows: ${r.rows}\n${Ut}columns: ${r.columns}\n}`;\n}\nfunction as(r, s, t, e, n) {\n const { rows: i, columns: o } = r, l = Math.min(i, s), h = Math.min(o, t), a = [];\n if (n === \"auto\") {\n n = !1;\n t: for (let u = 0; u < l; u++)\n for (let c = 0; c < h; c++)\n if (r.get(u, c) < 0) {\n n = !0;\n break t;\n }\n }\n for (let u = 0; u < l; u++) {\n let c = [];\n for (let g = 0; g < h; g++)\n c.push(us(r.get(u, g), e, n));\n a.push(`${c.join(\" \")}`);\n }\n return h !== o && (a[a.length - 1] += ` ... ${o - t} more columns`), l !== i && a.push(`... ${i - s} more rows`), a.join(`\n${Fe}`);\n}\nfunction us(r, s, t) {\n return (r >= 0 && t ? ` ${Se(r, s - 1)}` : Se(r, s)).padEnd(s);\n}\nfunction Se(r, s) {\n let t = r.toString();\n if (t.length <= s) return t;\n let e = r.toFixed(s);\n if (e.length > s && (e = r.toFixed(Math.max(0, s - (e.length - s)))), e.length <= s && !e.startsWith(\"0.000\") && !e.startsWith(\"-0.000\"))\n return e;\n let n = r.toExponential(s);\n return n.length > s && (n = r.toExponential(Math.max(0, s - (n.length - s)))), n.slice(0);\n}\nfunction cs(r, s) {\n r.prototype.add = function(e) {\n return typeof e == \"number\" ? this.addS(e) : this.addM(e);\n }, r.prototype.addS = function(e) {\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) + e);\n return this;\n }, r.prototype.addM = function(e) {\n if (e = s.checkMatrix(e), this.rows !== e.rows || this.columns !== e.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) + e.get(n, i));\n return this;\n }, r.add = function(e, n) {\n return new s(e).add(n);\n }, r.prototype.sub = function(e) {\n return typeof e == \"number\" ? this.subS(e) : this.subM(e);\n }, r.prototype.subS = function(e) {\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) - e);\n return this;\n }, r.prototype.subM = function(e) {\n if (e = s.checkMatrix(e), this.rows !== e.rows || this.columns !== e.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) - e.get(n, i));\n return this;\n }, r.sub = function(e, n) {\n return new s(e).sub(n);\n }, r.prototype.subtract = r.prototype.sub, r.prototype.subtractS = r.prototype.subS, r.prototype.subtractM = r.prototype.subM, r.subtract = r.sub, r.prototype.mul = function(e) {\n return typeof e == \"number\" ? this.mulS(e) : this.mulM(e);\n }, r.prototype.mulS = function(e) {\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) * e);\n return this;\n }, r.prototype.mulM = function(e) {\n if (e = s.checkMatrix(e), this.rows !== e.rows || this.columns !== e.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) * e.get(n, i));\n return this;\n }, r.mul = function(e, n) {\n return new s(e).mul(n);\n }, r.prototype.multiply = r.prototype.mul, r.prototype.multiplyS = r.prototype.mulS, r.prototype.multiplyM = r.prototype.mulM, r.multiply = r.mul, r.prototype.div = function(e) {\n return typeof e == \"number\" ? this.divS(e) : this.divM(e);\n }, r.prototype.divS = function(e) {\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) / e);\n return this;\n }, r.prototype.divM = function(e) {\n if (e = s.checkMatrix(e), this.rows !== e.rows || this.columns !== e.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) / e.get(n, i));\n return this;\n }, r.div = function(e, n) {\n return new s(e).div(n);\n }, r.prototype.divide = r.prototype.div, r.prototype.divideS = r.prototype.divS, r.prototype.divideM = r.prototype.divM, r.divide = r.div, r.prototype.mod = function(e) {\n return typeof e == \"number\" ? this.modS(e) : this.modM(e);\n }, r.prototype.modS = function(e) {\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) % e);\n return this;\n }, r.prototype.modM = function(e) {\n if (e = s.checkMatrix(e), this.rows !== e.rows || this.columns !== e.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) % e.get(n, i));\n return this;\n }, r.mod = function(e, n) {\n return new s(e).mod(n);\n }, r.prototype.modulus = r.prototype.mod, r.prototype.modulusS = r.prototype.modS, r.prototype.modulusM = r.prototype.modM, r.modulus = r.mod, r.prototype.and = function(e) {\n return typeof e == \"number\" ? this.andS(e) : this.andM(e);\n }, r.prototype.andS = function(e) {\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) & e);\n return this;\n }, r.prototype.andM = function(e) {\n if (e = s.checkMatrix(e), this.rows !== e.rows || this.columns !== e.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) & e.get(n, i));\n return this;\n }, r.and = function(e, n) {\n return new s(e).and(n);\n }, r.prototype.or = function(e) {\n return typeof e == \"number\" ? this.orS(e) : this.orM(e);\n }, r.prototype.orS = function(e) {\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) | e);\n return this;\n }, r.prototype.orM = function(e) {\n if (e = s.checkMatrix(e), this.rows !== e.rows || this.columns !== e.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) | e.get(n, i));\n return this;\n }, r.or = function(e, n) {\n return new s(e).or(n);\n }, r.prototype.xor = function(e) {\n return typeof e == \"number\" ? this.xorS(e) : this.xorM(e);\n }, r.prototype.xorS = function(e) {\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) ^ e);\n return this;\n }, r.prototype.xorM = function(e) {\n if (e = s.checkMatrix(e), this.rows !== e.rows || this.columns !== e.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) ^ e.get(n, i));\n return this;\n }, r.xor = function(e, n) {\n return new s(e).xor(n);\n }, r.prototype.leftShift = function(e) {\n return typeof e == \"number\" ? this.leftShiftS(e) : this.leftShiftM(e);\n }, r.prototype.leftShiftS = function(e) {\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) << e);\n return this;\n }, r.prototype.leftShiftM = function(e) {\n if (e = s.checkMatrix(e), this.rows !== e.rows || this.columns !== e.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) << e.get(n, i));\n return this;\n }, r.leftShift = function(e, n) {\n return new s(e).leftShift(n);\n }, r.prototype.signPropagatingRightShift = function(e) {\n return typeof e == \"number\" ? this.signPropagatingRightShiftS(e) : this.signPropagatingRightShiftM(e);\n }, r.prototype.signPropagatingRightShiftS = function(e) {\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) >> e);\n return this;\n }, r.prototype.signPropagatingRightShiftM = function(e) {\n if (e = s.checkMatrix(e), this.rows !== e.rows || this.columns !== e.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) >> e.get(n, i));\n return this;\n }, r.signPropagatingRightShift = function(e, n) {\n return new s(e).signPropagatingRightShift(n);\n }, r.prototype.rightShift = function(e) {\n return typeof e == \"number\" ? this.rightShiftS(e) : this.rightShiftM(e);\n }, r.prototype.rightShiftS = function(e) {\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) >>> e);\n return this;\n }, r.prototype.rightShiftM = function(e) {\n if (e = s.checkMatrix(e), this.rows !== e.rows || this.columns !== e.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) >>> e.get(n, i));\n return this;\n }, r.rightShift = function(e, n) {\n return new s(e).rightShift(n);\n }, r.prototype.zeroFillRightShift = r.prototype.rightShift, r.prototype.zeroFillRightShiftS = r.prototype.rightShiftS, r.prototype.zeroFillRightShiftM = r.prototype.rightShiftM, r.zeroFillRightShift = r.rightShift, r.prototype.not = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, ~this.get(e, n));\n return this;\n }, r.not = function(e) {\n return new s(e).not();\n }, r.prototype.abs = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.abs(this.get(e, n)));\n return this;\n }, r.abs = function(e) {\n return new s(e).abs();\n }, r.prototype.acos = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.acos(this.get(e, n)));\n return this;\n }, r.acos = function(e) {\n return new s(e).acos();\n }, r.prototype.acosh = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.acosh(this.get(e, n)));\n return this;\n }, r.acosh = function(e) {\n return new s(e).acosh();\n }, r.prototype.asin = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.asin(this.get(e, n)));\n return this;\n }, r.asin = function(e) {\n return new s(e).asin();\n }, r.prototype.asinh = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.asinh(this.get(e, n)));\n return this;\n }, r.asinh = function(e) {\n return new s(e).asinh();\n }, r.prototype.atan = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.atan(this.get(e, n)));\n return this;\n }, r.atan = function(e) {\n return new s(e).atan();\n }, r.prototype.atanh = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.atanh(this.get(e, n)));\n return this;\n }, r.atanh = function(e) {\n return new s(e).atanh();\n }, r.prototype.cbrt = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.cbrt(this.get(e, n)));\n return this;\n }, r.cbrt = function(e) {\n return new s(e).cbrt();\n }, r.prototype.ceil = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.ceil(this.get(e, n)));\n return this;\n }, r.ceil = function(e) {\n return new s(e).ceil();\n }, r.prototype.clz32 = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.clz32(this.get(e, n)));\n return this;\n }, r.clz32 = function(e) {\n return new s(e).clz32();\n }, r.prototype.cos = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.cos(this.get(e, n)));\n return this;\n }, r.cos = function(e) {\n return new s(e).cos();\n }, r.prototype.cosh = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.cosh(this.get(e, n)));\n return this;\n }, r.cosh = function(e) {\n return new s(e).cosh();\n }, r.prototype.exp = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.exp(this.get(e, n)));\n return this;\n }, r.exp = function(e) {\n return new s(e).exp();\n }, r.prototype.expm1 = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.expm1(this.get(e, n)));\n return this;\n }, r.expm1 = function(e) {\n return new s(e).expm1();\n }, r.prototype.floor = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.floor(this.get(e, n)));\n return this;\n }, r.floor = function(e) {\n return new s(e).floor();\n }, r.prototype.fround = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.fround(this.get(e, n)));\n return this;\n }, r.fround = function(e) {\n return new s(e).fround();\n }, r.prototype.log = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.log(this.get(e, n)));\n return this;\n }, r.log = function(e) {\n return new s(e).log();\n }, r.prototype.log1p = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.log1p(this.get(e, n)));\n return this;\n }, r.log1p = function(e) {\n return new s(e).log1p();\n }, r.prototype.log10 = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.log10(this.get(e, n)));\n return this;\n }, r.log10 = function(e) {\n return new s(e).log10();\n }, r.prototype.log2 = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.log2(this.get(e, n)));\n return this;\n }, r.log2 = function(e) {\n return new s(e).log2();\n }, r.prototype.round = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.round(this.get(e, n)));\n return this;\n }, r.round = function(e) {\n return new s(e).round();\n }, r.prototype.sign = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.sign(this.get(e, n)));\n return this;\n }, r.sign = function(e) {\n return new s(e).sign();\n }, r.prototype.sin = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.sin(this.get(e, n)));\n return this;\n }, r.sin = function(e) {\n return new s(e).sin();\n }, r.prototype.sinh = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.sinh(this.get(e, n)));\n return this;\n }, r.sinh = function(e) {\n return new s(e).sinh();\n }, r.prototype.sqrt = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.sqrt(this.get(e, n)));\n return this;\n }, r.sqrt = function(e) {\n return new s(e).sqrt();\n }, r.prototype.tan = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.tan(this.get(e, n)));\n return this;\n }, r.tan = function(e) {\n return new s(e).tan();\n }, r.prototype.tanh = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.tanh(this.get(e, n)));\n return this;\n }, r.tanh = function(e) {\n return new s(e).tanh();\n }, r.prototype.trunc = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.trunc(this.get(e, n)));\n return this;\n }, r.trunc = function(e) {\n return new s(e).trunc();\n }, r.pow = function(e, n) {\n return new s(e).pow(n);\n }, r.prototype.pow = function(e) {\n return typeof e == \"number\" ? this.powS(e) : this.powM(e);\n }, r.prototype.powS = function(e) {\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) ** e);\n return this;\n }, r.prototype.powM = function(e) {\n if (e = s.checkMatrix(e), this.rows !== e.rows || this.columns !== e.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) ** e.get(n, i));\n return this;\n };\n}\nfunction ot(r, s, t) {\n let e = t ? r.rows : r.rows - 1;\n if (s < 0 || s > e)\n throw new RangeError(\"Row index out of range\");\n}\nfunction lt(r, s, t) {\n let e = t ? r.columns : r.columns - 1;\n if (s < 0 || s > e)\n throw new RangeError(\"Column index out of range\");\n}\nfunction Pt(r, s) {\n if (s.to1DArray && (s = s.to1DArray()), s.length !== r.columns)\n throw new RangeError(\n \"vector size must be the same as the number of columns\"\n );\n return s;\n}\nfunction bt(r, s) {\n if (s.to1DArray && (s = s.to1DArray()), s.length !== r.rows)\n throw new RangeError(\"vector size must be the same as the number of rows\");\n return s;\n}\nfunction ge(r, s) {\n if (!st.isAnyArray(s))\n throw new TypeError(\"row indices must be an array\");\n for (let t = 0; t < s.length; t++)\n if (s[t] < 0 || s[t] >= r.rows)\n throw new RangeError(\"row indices are out of range\");\n}\nfunction we(r, s) {\n if (!st.isAnyArray(s))\n throw new TypeError(\"column indices must be an array\");\n for (let t = 0; t < s.length; t++)\n if (s[t] < 0 || s[t] >= r.columns)\n throw new RangeError(\"column indices are out of range\");\n}\nfunction ae(r, s, t, e, n) {\n if (arguments.length !== 5)\n throw new RangeError(\"expected 4 arguments\");\n if (Yt(\"startRow\", s), Yt(\"endRow\", t), Yt(\"startColumn\", e), Yt(\"endColumn\", n), s > t || e > n || s < 0 || s >= r.rows || t < 0 || t >= r.rows || e < 0 || e >= r.columns || n < 0 || n >= r.columns)\n throw new RangeError(\"Submatrix indices are out of range\");\n}\nfunction Ht(r, s = 0) {\n let t = [];\n for (let e = 0; e < r; e++)\n t.push(s);\n return t;\n}\nfunction Yt(r, s) {\n if (typeof s != \"number\")\n throw new TypeError(`${r} must be a number`);\n}\nfunction yt(r) {\n if (r.isEmpty())\n throw new Error(\"Empty matrix has no elements to index\");\n}\nfunction fs(r) {\n let s = Ht(r.rows);\n for (let t = 0; t < r.rows; ++t)\n for (let e = 0; e < r.columns; ++e)\n s[t] += r.get(t, e);\n return s;\n}\nfunction ms(r) {\n let s = Ht(r.columns);\n for (let t = 0; t < r.rows; ++t)\n for (let e = 0; e < r.columns; ++e)\n s[e] += r.get(t, e);\n return s;\n}\nfunction gs(r) {\n let s = 0;\n for (let t = 0; t < r.rows; t++)\n for (let e = 0; e < r.columns; e++)\n s += r.get(t, e);\n return s;\n}\nfunction ws(r) {\n let s = Ht(r.rows, 1);\n for (let t = 0; t < r.rows; ++t)\n for (let e = 0; e < r.columns; ++e)\n s[t] *= r.get(t, e);\n return s;\n}\nfunction ps(r) {\n let s = Ht(r.columns, 1);\n for (let t = 0; t < r.rows; ++t)\n for (let e = 0; e < r.columns; ++e)\n s[e] *= r.get(t, e);\n return s;\n}\nfunction ds(r) {\n let s = 1;\n for (let t = 0; t < r.rows; t++)\n for (let e = 0; e < r.columns; e++)\n s *= r.get(t, e);\n return s;\n}\nfunction Ms(r, s, t) {\n const e = r.rows, n = r.columns, i = [];\n for (let o = 0; o < e; o++) {\n let l = 0, h = 0, a = 0;\n for (let u = 0; u < n; u++)\n a = r.get(o, u) - t[o], l += a, h += a * a;\n s ? i.push((h - l * l / n) / (n - 1)) : i.push((h - l * l / n) / n);\n }\n return i;\n}\nfunction ys(r, s, t) {\n const e = r.rows, n = r.columns, i = [];\n for (let o = 0; o < n; o++) {\n let l = 0, h = 0, a = 0;\n for (let u = 0; u < e; u++)\n a = r.get(u, o) - t[o], l += a, h += a * a;\n s ? i.push((h - l * l / e) / (e - 1)) : i.push((h - l * l / e) / e);\n }\n return i;\n}\nfunction Ps(r, s, t) {\n const e = r.rows, n = r.columns, i = e * n;\n let o = 0, l = 0, h = 0;\n for (let a = 0; a < e; a++)\n for (let u = 0; u < n; u++)\n h = r.get(a, u) - t, o += h, l += h * h;\n return s ? (l - o * o / i) / (i - 1) : (l - o * o / i) / i;\n}\nfunction bs(r, s) {\n for (let t = 0; t < r.rows; t++)\n for (let e = 0; e < r.columns; e++)\n r.set(t, e, r.get(t, e) - s[t]);\n}\nfunction Es(r, s) {\n for (let t = 0; t < r.rows; t++)\n for (let e = 0; e < r.columns; e++)\n r.set(t, e, r.get(t, e) - s[e]);\n}\nfunction _s(r, s) {\n for (let t = 0; t < r.rows; t++)\n for (let e = 0; e < r.columns; e++)\n r.set(t, e, r.get(t, e) - s);\n}\nfunction js(r) {\n const s = [];\n for (let t = 0; t < r.rows; t++) {\n let e = 0;\n for (let n = 0; n < r.columns; n++)\n e += r.get(t, n) ** 2 / (r.columns - 1);\n s.push(Math.sqrt(e));\n }\n return s;\n}\nfunction Ss(r, s) {\n for (let t = 0; t < r.rows; t++)\n for (let e = 0; e < r.columns; e++)\n r.set(t, e, r.get(t, e) / s[t]);\n}\nfunction ks(r) {\n const s = [];\n for (let t = 0; t < r.columns; t++) {\n let e = 0;\n for (let n = 0; n < r.rows; n++)\n e += r.get(n, t) ** 2 / (r.rows - 1);\n s.push(Math.sqrt(e));\n }\n return s;\n}\nfunction Rs(r, s) {\n for (let t = 0; t < r.rows; t++)\n for (let e = 0; e < r.columns; e++)\n r.set(t, e, r.get(t, e) / s[e]);\n}\nfunction vs(r) {\n const s = r.size - 1;\n let t = 0;\n for (let e = 0; e < r.columns; e++)\n for (let n = 0; n < r.rows; n++)\n t += r.get(n, e) ** 2 / s;\n return Math.sqrt(t);\n}\nfunction Ts(r, s) {\n for (let t = 0; t < r.rows; t++)\n for (let e = 0; e < r.columns; e++)\n r.set(t, e, r.get(t, e) / s);\n}\nclass V {\n static from1DArray(s, t, e) {\n if (s * t !== e.length)\n throw new RangeError(\"data length does not match given dimensions\");\n let i = new _(s, t);\n for (let o = 0; o < s; o++)\n for (let l = 0; l < t; l++)\n i.set(o, l, e[o * t + l]);\n return i;\n }\n static rowVector(s) {\n let t = new _(1, s.length);\n for (let e = 0; e < s.length; e++)\n t.set(0, e, s[e]);\n return t;\n }\n static columnVector(s) {\n let t = new _(s.length, 1);\n for (let e = 0; e < s.length; e++)\n t.set(e, 0, s[e]);\n return t;\n }\n static zeros(s, t) {\n return new _(s, t);\n }\n static ones(s, t) {\n return new _(s, t).fill(1);\n }\n static rand(s, t, e = {}) {\n if (typeof e != \"object\")\n throw new TypeError(\"options must be an object\");\n const { random: n = Math.random } = e;\n let i = new _(s, t);\n for (let o = 0; o < s; o++)\n for (let l = 0; l < t; l++)\n i.set(o, l, n());\n return i;\n }\n static randInt(s, t, e = {}) {\n if (typeof e != \"object\")\n throw new TypeError(\"options must be an object\");\n const { min: n = 0, max: i = 1e3, random: o = Math.random } = e;\n if (!Number.isInteger(n)) throw new TypeError(\"min must be an integer\");\n if (!Number.isInteger(i)) throw new TypeError(\"max must be an integer\");\n if (n >= i) throw new RangeError(\"min must be smaller than max\");\n let l = i - n, h = new _(s, t);\n for (let a = 0; a < s; a++)\n for (let u = 0; u < t; u++) {\n let c = n + Math.round(o() * l);\n h.set(a, u, c);\n }\n return h;\n }\n static eye(s, t, e) {\n t === void 0 && (t = s), e === void 0 && (e = 1);\n let n = Math.min(s, t), i = this.zeros(s, t);\n for (let o = 0; o < n; o++)\n i.set(o, o, e);\n return i;\n }\n static diag(s, t, e) {\n let n = s.length;\n t === void 0 && (t = n), e === void 0 && (e = t);\n let i = Math.min(n, t, e), o = this.zeros(t, e);\n for (let l = 0; l < i; l++)\n o.set(l, l, s[l]);\n return o;\n }\n static min(s, t) {\n s = this.checkMatrix(s), t = this.checkMatrix(t);\n let e = s.rows, n = s.columns, i = new _(e, n);\n for (let o = 0; o < e; o++)\n for (let l = 0; l < n; l++)\n i.set(o, l, Math.min(s.get(o, l), t.get(o, l)));\n return i;\n }\n static max(s, t) {\n s = this.checkMatrix(s), t = this.checkMatrix(t);\n let e = s.rows, n = s.columns, i = new this(e, n);\n for (let o = 0; o < e; o++)\n for (let l = 0; l < n; l++)\n i.set(o, l, Math.max(s.get(o, l), t.get(o, l)));\n return i;\n }\n static checkMatrix(s) {\n return V.isMatrix(s) ? s : new _(s);\n }\n static isMatrix(s) {\n return s != null && s.klass === \"Matrix\";\n }\n get size() {\n return this.rows * this.columns;\n }\n apply(s) {\n if (typeof s != \"function\")\n throw new TypeError(\"callback must be a function\");\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < this.columns; e++)\n s.call(this, t, e);\n return this;\n }\n to1DArray() {\n let s = [];\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < this.columns; e++)\n s.push(this.get(t, e));\n return s;\n }\n to2DArray() {\n let s = [];\n for (let t = 0; t < this.rows; t++) {\n s.push([]);\n for (let e = 0; e < this.columns; e++)\n s[t].push(this.get(t, e));\n }\n return s;\n }\n toJSON() {\n return this.to2DArray();\n }\n isRowVector() {\n return this.rows === 1;\n }\n isColumnVector() {\n return this.columns === 1;\n }\n isVector() {\n return this.rows === 1 || this.columns === 1;\n }\n isSquare() {\n return this.rows === this.columns;\n }\n isEmpty() {\n return this.rows === 0 || this.columns === 0;\n }\n isSymmetric() {\n if (this.isSquare()) {\n for (let s = 0; s < this.rows; s++)\n for (let t = 0; t <= s; t++)\n if (this.get(s, t) !== this.get(t, s))\n return !1;\n return !0;\n }\n return !1;\n }\n isDistance() {\n if (!this.isSymmetric()) return !1;\n for (let s = 0; s < this.rows; s++)\n if (this.get(s, s) !== 0) return !1;\n return !0;\n }\n isEchelonForm() {\n let s = 0, t = 0, e = -1, n = !0, i = !1;\n for (; s < this.rows && n; ) {\n for (t = 0, i = !1; t < this.columns && i === !1; )\n this.get(s, t) === 0 ? t++ : this.get(s, t) === 1 && t > e ? (i = !0, e = t) : (n = !1, i = !0);\n s++;\n }\n return n;\n }\n isReducedEchelonForm() {\n let s = 0, t = 0, e = -1, n = !0, i = !1;\n for (; s < this.rows && n; ) {\n for (t = 0, i = !1; t < this.columns && i === !1; )\n this.get(s, t) === 0 ? t++ : this.get(s, t) === 1 && t > e ? (i = !0, e = t) : (n = !1, i = !0);\n for (let o = t + 1; o < this.rows; o++)\n this.get(s, o) !== 0 && (n = !1);\n s++;\n }\n return n;\n }\n echelonForm() {\n let s = this.clone(), t = 0, e = 0;\n for (; t < s.rows && e < s.columns; ) {\n let n = t;\n for (let i = t; i < s.rows; i++)\n s.get(i, e) > s.get(n, e) && (n = i);\n if (s.get(n, e) === 0)\n e++;\n else {\n s.swapRows(t, n);\n let i = s.get(t, e);\n for (let o = e; o < s.columns; o++)\n s.set(t, o, s.get(t, o) / i);\n for (let o = t + 1; o < s.rows; o++) {\n let l = s.get(o, e) / s.get(t, e);\n s.set(o, e, 0);\n for (let h = e + 1; h < s.columns; h++)\n s.set(o, h, s.get(o, h) - s.get(t, h) * l);\n }\n t++, e++;\n }\n }\n return s;\n }\n reducedEchelonForm() {\n let s = this.echelonForm(), t = s.columns, e = s.rows, n = e - 1;\n for (; n >= 0; )\n if (s.maxRow(n) === 0)\n n--;\n else {\n let i = 0, o = !1;\n for (; i < e && o === !1; )\n s.get(n, i) === 1 ? o = !0 : i++;\n for (let l = 0; l < n; l++) {\n let h = s.get(l, i);\n for (let a = i; a < t; a++) {\n let u = s.get(l, a) - h * s.get(n, a);\n s.set(l, a, u);\n }\n }\n n--;\n }\n return s;\n }\n set() {\n throw new Error(\"set method is unimplemented\");\n }\n get() {\n throw new Error(\"get method is unimplemented\");\n }\n repeat(s = {}) {\n if (typeof s != \"object\")\n throw new TypeError(\"options must be an object\");\n const { rows: t = 1, columns: e = 1 } = s;\n if (!Number.isInteger(t) || t <= 0)\n throw new TypeError(\"rows must be a positive integer\");\n if (!Number.isInteger(e) || e <= 0)\n throw new TypeError(\"columns must be a positive integer\");\n let n = new _(this.rows * t, this.columns * e);\n for (let i = 0; i < t; i++)\n for (let o = 0; o < e; o++)\n n.setSubMatrix(this, this.rows * i, this.columns * o);\n return n;\n }\n fill(s) {\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < this.columns; e++)\n this.set(t, e, s);\n return this;\n }\n neg() {\n return this.mulS(-1);\n }\n getRow(s) {\n ot(this, s);\n let t = [];\n for (let e = 0; e < this.columns; e++)\n t.push(this.get(s, e));\n return t;\n }\n getRowVector(s) {\n return _.rowVector(this.getRow(s));\n }\n setRow(s, t) {\n ot(this, s), t = Pt(this, t);\n for (let e = 0; e < this.columns; e++)\n this.set(s, e, t[e]);\n return this;\n }\n swapRows(s, t) {\n ot(this, s), ot(this, t);\n for (let e = 0; e < this.columns; e++) {\n let n = this.get(s, e);\n this.set(s, e, this.get(t, e)), this.set(t, e, n);\n }\n return this;\n }\n getColumn(s) {\n lt(this, s);\n let t = [];\n for (let e = 0; e < this.rows; e++)\n t.push(this.get(e, s));\n return t;\n }\n getColumnVector(s) {\n return _.columnVector(this.getColumn(s));\n }\n setColumn(s, t) {\n lt(this, s), t = bt(this, t);\n for (let e = 0; e < this.rows; e++)\n this.set(e, s, t[e]);\n return this;\n }\n swapColumns(s, t) {\n lt(this, s), lt(this, t);\n for (let e = 0; e < this.rows; e++) {\n let n = this.get(e, s);\n this.set(e, s, this.get(e, t)), this.set(e, t, n);\n }\n return this;\n }\n addRowVector(s) {\n s = Pt(this, s);\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < this.columns; e++)\n this.set(t, e, this.get(t, e) + s[e]);\n return this;\n }\n subRowVector(s) {\n s = Pt(this, s);\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < this.columns; e++)\n this.set(t, e, this.get(t, e) - s[e]);\n return this;\n }\n mulRowVector(s) {\n s = Pt(this, s);\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < this.columns; e++)\n this.set(t, e, this.get(t, e) * s[e]);\n return this;\n }\n divRowVector(s) {\n s = Pt(this, s);\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < this.columns; e++)\n this.set(t, e, this.get(t, e) / s[e]);\n return this;\n }\n addColumnVector(s) {\n s = bt(this, s);\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < this.columns; e++)\n this.set(t, e, this.get(t, e) + s[t]);\n return this;\n }\n subColumnVector(s) {\n s = bt(this, s);\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < this.columns; e++)\n this.set(t, e, this.get(t, e) - s[t]);\n return this;\n }\n mulColumnVector(s) {\n s = bt(this, s);\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < this.columns; e++)\n this.set(t, e, this.get(t, e) * s[t]);\n return this;\n }\n divColumnVector(s) {\n s = bt(this, s);\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < this.columns; e++)\n this.set(t, e, this.get(t, e) / s[t]);\n return this;\n }\n mulRow(s, t) {\n ot(this, s);\n for (let e = 0; e < this.columns; e++)\n this.set(s, e, this.get(s, e) * t);\n return this;\n }\n mulColumn(s, t) {\n lt(this, s);\n for (let e = 0; e < this.rows; e++)\n this.set(e, s, this.get(e, s) * t);\n return this;\n }\n max(s) {\n if (this.isEmpty())\n return NaN;\n switch (s) {\n case \"row\": {\n const t = new Array(this.rows).fill(Number.NEGATIVE_INFINITY);\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.get(e, n) > t[e] && (t[e] = this.get(e, n));\n return t;\n }\n case \"column\": {\n const t = new Array(this.columns).fill(Number.NEGATIVE_INFINITY);\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.get(e, n) > t[n] && (t[n] = this.get(e, n));\n return t;\n }\n case void 0: {\n let t = this.get(0, 0);\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.get(e, n) > t && (t = this.get(e, n));\n return t;\n }\n default:\n throw new Error(`invalid option: ${s}`);\n }\n }\n maxIndex() {\n yt(this);\n let s = this.get(0, 0), t = [0, 0];\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.get(e, n) > s && (s = this.get(e, n), t[0] = e, t[1] = n);\n return t;\n }\n min(s) {\n if (this.isEmpty())\n return NaN;\n switch (s) {\n case \"row\": {\n const t = new Array(this.rows).fill(Number.POSITIVE_INFINITY);\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.get(e, n) < t[e] && (t[e] = this.get(e, n));\n return t;\n }\n case \"column\": {\n const t = new Array(this.columns).fill(Number.POSITIVE_INFINITY);\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.get(e, n) < t[n] && (t[n] = this.get(e, n));\n return t;\n }\n case void 0: {\n let t = this.get(0, 0);\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.get(e, n) < t && (t = this.get(e, n));\n return t;\n }\n default:\n throw new Error(`invalid option: ${s}`);\n }\n }\n minIndex() {\n yt(this);\n let s = this.get(0, 0), t = [0, 0];\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.get(e, n) < s && (s = this.get(e, n), t[0] = e, t[1] = n);\n return t;\n }\n maxRow(s) {\n if (ot(this, s), this.isEmpty())\n return NaN;\n let t = this.get(s, 0);\n for (let e = 1; e < this.columns; e++)\n this.get(s, e) > t && (t = this.get(s, e));\n return t;\n }\n maxRowIndex(s) {\n ot(this, s), yt(this);\n let t = this.get(s, 0), e = [s, 0];\n for (let n = 1; n < this.columns; n++)\n this.get(s, n) > t && (t = this.get(s, n), e[1] = n);\n return e;\n }\n minRow(s) {\n if (ot(this, s), this.isEmpty())\n return NaN;\n let t = this.get(s, 0);\n for (let e = 1; e < this.columns; e++)\n this.get(s, e) < t && (t = this.get(s, e));\n return t;\n }\n minRowIndex(s) {\n ot(this, s), yt(this);\n let t = this.get(s, 0), e = [s, 0];\n for (let n = 1; n < this.columns; n++)\n this.get(s, n) < t && (t = this.get(s, n), e[1] = n);\n return e;\n }\n maxColumn(s) {\n if (lt(this, s), this.isEmpty())\n return NaN;\n let t = this.get(0, s);\n for (let e = 1; e < this.rows; e++)\n this.get(e, s) > t && (t = this.get(e, s));\n return t;\n }\n maxColumnIndex(s) {\n lt(this, s), yt(this);\n let t = this.get(0, s), e = [0, s];\n for (let n = 1; n < this.rows; n++)\n this.get(n, s) > t && (t = this.get(n, s), e[0] = n);\n return e;\n }\n minColumn(s) {\n if (lt(this, s), this.isEmpty())\n return NaN;\n let t = this.get(0, s);\n for (let e = 1; e < this.rows; e++)\n this.get(e, s) < t && (t = this.get(e, s));\n return t;\n }\n minColumnIndex(s) {\n lt(this, s), yt(this);\n let t = this.get(0, s), e = [0, s];\n for (let n = 1; n < this.rows; n++)\n this.get(n, s) < t && (t = this.get(n, s), e[0] = n);\n return e;\n }\n diag() {\n let s = Math.min(this.rows, this.columns), t = [];\n for (let e = 0; e < s; e++)\n t.push(this.get(e, e));\n return t;\n }\n norm(s = \"frobenius\") {\n switch (s) {\n case \"max\":\n return this.max();\n case \"frobenius\":\n return Math.sqrt(this.dot(this));\n default:\n throw new RangeError(`unknown norm type: ${s}`);\n }\n }\n cumulativeSum() {\n let s = 0;\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < this.columns; e++)\n s += this.get(t, e), this.set(t, e, s);\n return this;\n }\n dot(s) {\n V.isMatrix(s) && (s = s.to1DArray());\n let t = this.to1DArray();\n if (t.length !== s.length)\n throw new RangeError(\"vectors do not have the same size\");\n let e = 0;\n for (let n = 0; n < t.length; n++)\n e += t[n] * s[n];\n return e;\n }\n mmul(s) {\n s = _.checkMatrix(s);\n let t = this.rows, e = this.columns, n = s.columns, i = new _(t, n), o = new Float64Array(e);\n for (let l = 0; l < n; l++) {\n for (let h = 0; h < e; h++)\n o[h] = s.get(h, l);\n for (let h = 0; h < t; h++) {\n let a = 0;\n for (let u = 0; u < e; u++)\n a += this.get(h, u) * o[u];\n i.set(h, l, a);\n }\n }\n return i;\n }\n mpow(s) {\n if (!this.isSquare())\n throw new RangeError(\"Matrix must be square\");\n if (!Number.isInteger(s) || s < 0)\n throw new RangeError(\"Exponent must be a non-negative integer\");\n let t = _.eye(this.rows), e = this;\n for (let n = s; n > 1; n /= 2)\n n & 1 && (t = t.mmul(e)), e = e.mmul(e);\n return t;\n }\n strassen2x2(s) {\n s = _.checkMatrix(s);\n let t = new _(2, 2);\n const e = this.get(0, 0), n = s.get(0, 0), i = this.get(0, 1), o = s.get(0, 1), l = this.get(1, 0), h = s.get(1, 0), a = this.get(1, 1), u = s.get(1, 1), c = (e + a) * (n + u), g = (l + a) * n, d = e * (o - u), w = a * (h - n), p = (e + i) * u, P = (l - e) * (n + o), f = (i - a) * (h + u), M = c + w - p + f, E = d + p, R = g + w, v = c - g + d + P;\n return t.set(0, 0, M), t.set(0, 1, E), t.set(1, 0, R), t.set(1, 1, v), t;\n }\n strassen3x3(s) {\n s = _.checkMatrix(s);\n let t = new _(3, 3);\n const e = this.get(0, 0), n = this.get(0, 1), i = this.get(0, 2), o = this.get(1, 0), l = this.get(1, 1), h = this.get(1, 2), a = this.get(2, 0), u = this.get(2, 1), c = this.get(2, 2), g = s.get(0, 0), d = s.get(0, 1), w = s.get(0, 2), p = s.get(1, 0), P = s.get(1, 1), f = s.get(1, 2), M = s.get(2, 0), E = s.get(2, 1), R = s.get(2, 2), v = (e + n + i - o - l - u - c) * P, L = (e - o) * (-d + P), S = l * (-g + d + p - P - f - M + R), k = (-e + o + l) * (g - d + P), D = (o + l) * (-g + d), m = e * g, b = (-e + a + u) * (g - w + f), j = (-e + a) * (w - f), y = (a + u) * (-g + w), C = (e + n + i - l - h - a - u) * f, F = u * (-g + w + p - P - f - M + E), I = (-i + u + c) * (P + M - E), B = (i - c) * (P - E), x = i * M, N = (u + c) * (-M + E), A = (-i + l + h) * (f + M - R), O = (i - h) * (f - R), U = (l + h) * (-M + R), T = n * p, z = h * E, X = o * w, G = a * d, W = c * R, se = m + x + T, ne = v + k + D + m + I + x + N, ie = m + b + y + C + x + A + U, re = L + S + k + m + x + A + O, At = L + k + D + m + z, Vt = x + A + O + U + X, Nt = m + b + j + F + I + B + x, $t = I + B + x + N + G, Lt = m + b + j + y + W;\n return t.set(0, 0, se), t.set(0, 1, ne), t.set(0, 2, ie), t.set(1, 0, re), t.set(1, 1, At), t.set(1, 2, Vt), t.set(2, 0, Nt), t.set(2, 1, $t), t.set(2, 2, Lt), t;\n }\n mmulStrassen(s) {\n s = _.checkMatrix(s);\n let t = this.clone(), e = t.rows, n = t.columns, i = s.rows, o = s.columns;\n n !== i && console.warn(\n `Multiplying ${e} x ${n} and ${i} x ${o} matrix: dimensions do not match.`\n );\n function l(c, g, d) {\n let w = c.rows, p = c.columns;\n if (w === g && p === d)\n return c;\n {\n let P = V.zeros(g, d);\n return P = P.setSubMatrix(c, 0, 0), P;\n }\n }\n let h = Math.max(e, i), a = Math.max(n, o);\n t = l(t, h, a), s = l(s, h, a);\n function u(c, g, d, w) {\n if (d <= 512 || w <= 512)\n return c.mmul(g);\n d % 2 === 1 && w % 2 === 1 ? (c = l(c, d + 1, w + 1), g = l(g, d + 1, w + 1)) : d % 2 === 1 ? (c = l(c, d + 1, w), g = l(g, d + 1, w)) : w % 2 === 1 && (c = l(c, d, w + 1), g = l(g, d, w + 1));\n let p = parseInt(c.rows / 2, 10), P = parseInt(c.columns / 2, 10), f = c.subMatrix(0, p - 1, 0, P - 1), M = g.subMatrix(0, p - 1, 0, P - 1), E = c.subMatrix(0, p - 1, P, c.columns - 1), R = g.subMatrix(0, p - 1, P, g.columns - 1), v = c.subMatrix(p, c.rows - 1, 0, P - 1), L = g.subMatrix(p, g.rows - 1, 0, P - 1), S = c.subMatrix(p, c.rows - 1, P, c.columns - 1), k = g.subMatrix(p, g.rows - 1, P, g.columns - 1), D = u(\n V.add(f, S),\n V.add(M, k),\n p,\n P\n ), m = u(V.add(v, S), M, p, P), b = u(f, V.sub(R, k), p, P), j = u(S, V.sub(L, M), p, P), y = u(V.add(f, E), k, p, P), C = u(\n V.sub(v, f),\n V.add(M, R),\n p,\n P\n ), F = u(\n V.sub(E, S),\n V.add(L, k),\n p,\n P\n ), I = V.add(D, j);\n I.sub(y), I.add(F);\n let B = V.add(b, y), x = V.add(m, j), N = V.sub(D, m);\n N.add(b), N.add(C);\n let A = V.zeros(2 * I.rows, 2 * I.columns);\n return A = A.setSubMatrix(I, 0, 0), A = A.setSubMatrix(B, I.rows, 0), A = A.setSubMatrix(x, 0, I.columns), A = A.setSubMatrix(N, I.rows, I.columns), A.subMatrix(0, d - 1, 0, w - 1);\n }\n return u(t, s, h, a);\n }\n scaleRows(s = {}) {\n if (typeof s != \"object\")\n throw new TypeError(\"options must be an object\");\n const { min: t = 0, max: e = 1 } = s;\n if (!Number.isFinite(t)) throw new TypeError(\"min must be a number\");\n if (!Number.isFinite(e)) throw new TypeError(\"max must be a number\");\n if (t >= e) throw new RangeError(\"min must be smaller than max\");\n let n = new _(this.rows, this.columns);\n for (let i = 0; i < this.rows; i++) {\n const o = this.getRow(i);\n o.length > 0 && je(o, { min: t, max: e, output: o }), n.setRow(i, o);\n }\n return n;\n }\n scaleColumns(s = {}) {\n if (typeof s != \"object\")\n throw new TypeError(\"options must be an object\");\n const { min: t = 0, max: e = 1 } = s;\n if (!Number.isFinite(t)) throw new TypeError(\"min must be a number\");\n if (!Number.isFinite(e)) throw new TypeError(\"max must be a number\");\n if (t >= e) throw new RangeError(\"min must be smaller than max\");\n let n = new _(this.rows, this.columns);\n for (let i = 0; i < this.columns; i++) {\n const o = this.getColumn(i);\n o.length && je(o, {\n min: t,\n max: e,\n output: o\n }), n.setColumn(i, o);\n }\n return n;\n }\n flipRows() {\n const s = Math.ceil(this.columns / 2);\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < s; e++) {\n let n = this.get(t, e), i = this.get(t, this.columns - 1 - e);\n this.set(t, e, i), this.set(t, this.columns - 1 - e, n);\n }\n return this;\n }\n flipColumns() {\n const s = Math.ceil(this.rows / 2);\n for (let t = 0; t < this.columns; t++)\n for (let e = 0; e < s; e++) {\n let n = this.get(e, t), i = this.get(this.rows - 1 - e, t);\n this.set(e, t, i), this.set(this.rows - 1 - e, t, n);\n }\n return this;\n }\n kroneckerProduct(s) {\n s = _.checkMatrix(s);\n let t = this.rows, e = this.columns, n = s.rows, i = s.columns, o = new _(t * n, e * i);\n for (let l = 0; l < t; l++)\n for (let h = 0; h < e; h++)\n for (let a = 0; a < n; a++)\n for (let u = 0; u < i; u++)\n o.set(n * l + a, i * h + u, this.get(l, h) * s.get(a, u));\n return o;\n }\n kroneckerSum(s) {\n if (s = _.checkMatrix(s), !this.isSquare() || !s.isSquare())\n throw new Error(\"Kronecker Sum needs two Square Matrices\");\n let t = this.rows, e = s.rows, n = this.kroneckerProduct(_.eye(e, e)), i = _.eye(t, t).kroneckerProduct(s);\n return n.add(i);\n }\n transpose() {\n let s = new _(this.columns, this.rows);\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < this.columns; e++)\n s.set(e, t, this.get(t, e));\n return s;\n }\n sortRows(s = ke) {\n for (let t = 0; t < this.rows; t++)\n this.setRow(t, this.getRow(t).sort(s));\n return this;\n }\n sortColumns(s = ke) {\n for (let t = 0; t < this.columns; t++)\n this.setColumn(t, this.getColumn(t).sort(s));\n return this;\n }\n subMatrix(s, t, e, n) {\n ae(this, s, t, e, n);\n let i = new _(\n t - s + 1,\n n - e + 1\n );\n for (let o = s; o <= t; o++)\n for (let l = e; l <= n; l++)\n i.set(o - s, l - e, this.get(o, l));\n return i;\n }\n subMatrixRow(s, t, e) {\n if (t === void 0 && (t = 0), e === void 0 && (e = this.columns - 1), t > e || t < 0 || t >= this.columns || e < 0 || e >= this.columns)\n throw new RangeError(\"Argument out of range\");\n let n = new _(s.length, e - t + 1);\n for (let i = 0; i < s.length; i++)\n for (let o = t; o <= e; o++) {\n if (s[i] < 0 || s[i] >= this.rows)\n throw new RangeError(`Row index out of range: ${s[i]}`);\n n.set(i, o - t, this.get(s[i], o));\n }\n return n;\n }\n subMatrixColumn(s, t, e) {\n if (t === void 0 && (t = 0), e === void 0 && (e = this.rows - 1), t > e || t < 0 || t >= this.rows || e < 0 || e >= this.rows)\n throw new RangeError(\"Argument out of range\");\n let n = new _(e - t + 1, s.length);\n for (let i = 0; i < s.length; i++)\n for (let o = t; o <= e; o++) {\n if (s[i] < 0 || s[i] >= this.columns)\n throw new RangeError(`Column index out of range: ${s[i]}`);\n n.set(o - t, i, this.get(o, s[i]));\n }\n return n;\n }\n setSubMatrix(s, t, e) {\n if (s = _.checkMatrix(s), s.isEmpty())\n return this;\n let n = t + s.rows - 1, i = e + s.columns - 1;\n ae(this, t, n, e, i);\n for (let o = 0; o < s.rows; o++)\n for (let l = 0; l < s.columns; l++)\n this.set(t + o, e + l, s.get(o, l));\n return this;\n }\n selection(s, t) {\n ge(this, s), we(this, t);\n let e = new _(s.length, t.length);\n for (let n = 0; n < s.length; n++) {\n let i = s[n];\n for (let o = 0; o < t.length; o++) {\n let l = t[o];\n e.set(n, o, this.get(i, l));\n }\n }\n return e;\n }\n trace() {\n let s = Math.min(this.rows, this.columns), t = 0;\n for (let e = 0; e < s; e++)\n t += this.get(e, e);\n return t;\n }\n clone() {\n return this.constructor.copy(this, new _(this.rows, this.columns));\n }\n /**\n * @template {AbstractMatrix} M\n * @param {AbstractMatrix} from\n * @param {M} to\n * @return {M}\n */\n static copy(s, t) {\n for (const [e, n, i] of s.entries())\n t.set(e, n, i);\n return t;\n }\n sum(s) {\n switch (s) {\n case \"row\":\n return fs(this);\n case \"column\":\n return ms(this);\n case void 0:\n return gs(this);\n default:\n throw new Error(`invalid option: ${s}`);\n }\n }\n product(s) {\n switch (s) {\n case \"row\":\n return ws(this);\n case \"column\":\n return ps(this);\n case void 0:\n return ds(this);\n default:\n throw new Error(`invalid option: ${s}`);\n }\n }\n mean(s) {\n const t = this.sum(s);\n switch (s) {\n case \"row\": {\n for (let e = 0; e < this.rows; e++)\n t[e] /= this.columns;\n return t;\n }\n case \"column\": {\n for (let e = 0; e < this.columns; e++)\n t[e] /= this.rows;\n return t;\n }\n case void 0:\n return t / this.size;\n default:\n throw new Error(`invalid option: ${s}`);\n }\n }\n variance(s, t = {}) {\n if (typeof s == \"object\" && (t = s, s = void 0), typeof t != \"object\")\n throw new TypeError(\"options must be an object\");\n const { unbiased: e = !0, mean: n = this.mean(s) } = t;\n if (typeof e != \"boolean\")\n throw new TypeError(\"unbiased must be a boolean\");\n switch (s) {\n case \"row\": {\n if (!st.isAnyArray(n))\n throw new TypeError(\"mean must be an array\");\n return Ms(this, e, n);\n }\n case \"column\": {\n if (!st.isAnyArray(n))\n throw new TypeError(\"mean must be an array\");\n return ys(this, e, n);\n }\n case void 0: {\n if (typeof n != \"number\")\n throw new TypeError(\"mean must be a number\");\n return Ps(this, e, n);\n }\n default:\n throw new Error(`invalid option: ${s}`);\n }\n }\n standardDeviation(s, t) {\n typeof s == \"object\" && (t = s, s = void 0);\n const e = this.variance(s, t);\n if (s === void 0)\n return Math.sqrt(e);\n for (let n = 0; n < e.length; n++)\n e[n] = Math.sqrt(e[n]);\n return e;\n }\n center(s, t = {}) {\n if (typeof s == \"object\" && (t = s, s = void 0), typeof t != \"object\")\n throw new TypeError(\"options must be an object\");\n const { center: e = this.mean(s) } = t;\n switch (s) {\n case \"row\": {\n if (!st.isAnyArray(e))\n throw new TypeError(\"center must be an array\");\n return bs(this, e), this;\n }\n case \"column\": {\n if (!st.isAnyArray(e))\n throw new TypeError(\"center must be an array\");\n return Es(this, e), this;\n }\n case void 0: {\n if (typeof e != \"number\")\n throw new TypeError(\"center must be a number\");\n return _s(this, e), this;\n }\n default:\n throw new Error(`invalid option: ${s}`);\n }\n }\n scale(s, t = {}) {\n if (typeof s == \"object\" && (t = s, s = void 0), typeof t != \"object\")\n throw new TypeError(\"options must be an object\");\n let e = t.scale;\n switch (s) {\n case \"row\": {\n if (e === void 0)\n e = js(this);\n else if (!st.isAnyArray(e))\n throw new TypeError(\"scale must be an array\");\n return Ss(this, e), this;\n }\n case \"column\": {\n if (e === void 0)\n e = ks(this);\n else if (!st.isAnyArray(e))\n throw new TypeError(\"scale must be an array\");\n return Rs(this, e), this;\n }\n case void 0: {\n if (e === void 0)\n e = vs(this);\n else if (typeof e != \"number\")\n throw new TypeError(\"scale must be a number\");\n return Ts(this, e), this;\n }\n default:\n throw new Error(`invalid option: ${s}`);\n }\n }\n toString(s) {\n return xe(this, s);\n }\n [Symbol.iterator]() {\n return this.entries();\n }\n /**\n * iterator from left to right, from top to bottom\n * yield [row, column, value]\n * @returns {Generator<[number, number, number], void, void>}\n */\n *entries() {\n for (let s = 0; s < this.rows; s++)\n for (let t = 0; t < this.columns; t++)\n yield [s, t, this.get(s, t)];\n }\n /**\n * iterator from left to right, from top to bottom\n * yield value\n * @returns {Generator<number, void, void>}\n */\n *values() {\n for (let s = 0; s < this.rows; s++)\n for (let t = 0; t < this.columns; t++)\n yield this.get(s, t);\n }\n}\nV.prototype.klass = \"Matrix\";\ntypeof Symbol < \"u\" && (V.prototype[Symbol.for(\"nodejs.util.inspect.custom\")] = hs);\nfunction ke(r, s) {\n return r - s;\n}\nfunction Is(r) {\n return r.every((s) => typeof s == \"number\");\n}\nV.random = V.rand;\nV.randomInt = V.randInt;\nV.diagonal = V.diag;\nV.prototype.diagonal = V.prototype.diag;\nV.identity = V.eye;\nV.prototype.negate = V.prototype.neg;\nV.prototype.tensorProduct = V.prototype.kroneckerProduct;\nvar Ft, ue, dt;\nlet _ = (dt = class extends V {\n constructor(t, e) {\n super();\n le(this, Ft);\n /**\n * @type {Float64Array[]}\n */\n q(this, \"data\");\n if (dt.isMatrix(t))\n he(this, Ft, ue).call(this, t.rows, t.columns), dt.copy(t, this);\n else if (Number.isInteger(t) && t >= 0)\n he(this, Ft, ue).call(this, t, e);\n else if (st.isAnyArray(t)) {\n const n = t;\n if (t = n.length, e = t ? n[0].length : 0, typeof e != \"number\")\n throw new TypeError(\n \"Data must be a 2D array with at least one element\"\n );\n this.data = [];\n for (let i = 0; i < t; i++) {\n if (n[i].length !== e)\n throw new RangeError(\"Inconsistent array dimensions\");\n if (!Is(n[i]))\n throw new TypeError(\"Input data contains non-numeric values\");\n this.data.push(Float64Array.from(n[i]));\n }\n this.rows = t, this.columns = e;\n } else\n throw new TypeError(\n \"First argument must be a positive number or an array\"\n );\n }\n set(t, e, n) {\n return this.data[t][e] = n, this;\n }\n get(t, e) {\n return this.data[t][e];\n }\n removeRow(t) {\n return ot(this, t), this.data.splice(t, 1), this.rows -= 1, this;\n }\n addRow(t, e) {\n return e === void 0 && (e = t, t = this.rows), ot(this, t, !0), e = Float64Array.from(Pt(this, e)), this.data.splice(t, 0, e), this.rows += 1, this;\n }\n removeColumn(t) {\n lt(this, t);\n for (let e = 0; e < this.rows; e++) {\n const n = new Float64Array(this.columns - 1);\n for (let i = 0; i < t; i++)\n n[i] = this.data[e][i];\n for (let i = t + 1; i < this.columns; i++)\n n[i - 1] = this.data[e][i];\n this.data[e] = n;\n }\n return this.columns -= 1, this;\n }\n addColumn(t, e) {\n typeof e > \"u\" && (e = t, t = this.columns), lt(this, t, !0), e = bt(this, e);\n for (let n = 0; n < this.rows; n++) {\n const i = new Float64Array(this.columns + 1);\n let o = 0;\n for (; o < t; o++)\n i[o] = this.data[n][o];\n for (i[o++] = e[n]; o < this.columns + 1; o++)\n i[o] = this.data[n][o - 1];\n this.data[n] = i;\n }\n return this.columns += 1, this;\n }\n}, Ft = new WeakSet(), /**\n * Init an empty matrix\n * @param {number} nRows\n * @param {number} nColumns\n */\nue = function(t, e) {\n if (this.data = [], Number.isInteger(e) && e >= 0)\n for (let n = 0; n < t; n++)\n this.data.push(new Float64Array(e));\n else\n throw new TypeError(\"nColumns must be a positive integer\");\n this.rows = t, this.columns = e;\n}, dt);\ncs(V, _);\nvar K;\nconst Jt = class Jt extends V {\n /**\n * @param {number | AbstractMatrix | ArrayLike<ArrayLike<number>>} diagonalSize\n * @return {this}\n */\n constructor(t) {\n super();\n /** @type {Matrix} */\n le(this, K);\n if (_.isMatrix(t)) {\n if (!t.isSymmetric())\n throw new TypeError(\"not symmetric data\");\n Dt(this, K, _.copy(\n t,\n new _(t.rows, t.rows)\n ));\n } else if (Number.isInteger(t) && t >= 0)\n Dt(this, K, new _(t, t));\n else if (Dt(this, K, new _(t)), !this.isSymmetric())\n throw new TypeError(\"not symmetric data\");\n }\n get size() {\n return ht(this, K).size;\n }\n get rows() {\n return ht(this, K).rows;\n }\n get columns() {\n return ht(this, K).columns;\n }\n get diagonalSize() {\n return this.rows;\n }\n /**\n * not the same as matrix.isSymmetric()\n * Here is to check if it's instanceof SymmetricMatrix without bundling issues\n *\n * @param value\n * @returns {boolean}\n */\n static isSymmetricMatrix(t) {\n return _.isMatrix(t) && t.klassType === \"SymmetricMatrix\";\n }\n /**\n * @param diagonalSize\n * @return {SymmetricMatrix}\n */\n static zeros(t) {\n return new this(t);\n }\n /**\n * @param diagonalSize\n * @return {SymmetricMatrix}\n */\n static ones(t) {\n return new this(t).fill(1);\n }\n clone() {\n const t = new Jt(this.diagonalSize);\n for (const [e, n, i] of this.upperRightEntries())\n t.set(e, n, i);\n return t;\n }\n toMatrix() {\n return new _(this);\n }\n get(t, e) {\n return ht(this, K).get(t, e);\n }\n set(t, e, n) {\n return ht(this, K).set(t, e, n), ht(this, K).set(e, t, n), this;\n }\n removeCross(t) {\n return ht(this, K).removeRow(t), ht(this, K).removeColumn(t), this;\n }\n addCross(t, e) {\n e === void 0 && (e = t, t = this.diagonalSize);\n const n = e.slice();\n return n.splice(t, 1), ht(this, K).addRow(t, n), ht(this, K).addColumn(t, e), this;\n }\n /**\n * @param {Mask[]} mask\n */\n applyMask(t) {\n if (t.length !== this.diagonalSize)\n throw new RangeError(\"Mask size do not match with matrix size\");\n const e = [];\n for (const [n, i] of t.entries())\n i || e.push(n);\n e.reverse();\n for (const n of e)\n this.removeCross(n);\n return this;\n }\n /**\n * Compact format upper-right corner of matrix\n * iterate from left to right, from top to bottom.\n *\n * ```\n * A B C D\n * A 1 2 3 4\n * B 2 5 6 7\n * C 3 6 8 9\n * D 4 7 9 10\n * ```\n *\n * will return compact 1D array `[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]`\n *\n * length is S(i=0, n=sideSize) => 10 for a 4 sideSized matrix\n *\n * @returns {number[]}\n */\n toCompact() {\n const { diagonalSize: t } = this, e = new Array(t * (t + 1) / 2);\n for (let n = 0, i = 0, o = 0; o < e.length; o++)\n e[o] = this.get(i, n), ++n >= t && (n = ++i);\n return e;\n }\n /**\n * @param {number[]} compact\n * @return {SymmetricMatrix}\n */\n static fromCompact(t) {\n const e = t.length, n = (Math.sqrt(8 * e + 1) - 1) / 2;\n if (!Number.isInteger(n))\n throw new TypeError(\n `This array is not a compact representation of a Symmetric Matrix, ${JSON.stringify(\n t\n )}`\n );\n const i = new Jt(n);\n for (let o = 0, l = 0, h = 0; h < e; h++)\n i.set(o, l, t[h]), ++o >= n && (o = ++l);\n return i;\n }\n /**\n * half iterator upper-right-corner from left to right, from top to bottom\n * yield [row, column, value]\n *\n * @returns {Generator<[number, number, number], void, void>}\n */\n *upperRightEntries() {\n for (let t = 0, e = 0; t < this.diagonalSize; void 0) {\n const n = this.get(t, e);\n yield [t, e, n], ++e >= this.diagonalSize && (e = ++t);\n }\n }\n /**\n * half iterator upper-right-corner from left to right, from top to bottom\n * yield value\n *\n * @returns {Generator<[number, number, number], void, void>}\n */\n *upperRightValues() {\n for (let t = 0, e = 0; t < this.diagonalSize; void 0)\n yield this.get(t, e), ++e >= this.diagonalSize && (e = ++t);\n }\n};\nK = new WeakMap();\nlet pt = Jt;\npt.prototype.klassType = \"SymmetricMatrix\";\nclass te extends pt {\n /**\n * not the same as matrix.isSymmetric()\n * Here is to check if it's instanceof SymmetricMatrix without bundling issues\n *\n * @param value\n * @returns {boolean}\n */\n static isDistanceMatrix(s) {\n return pt.isSymmetricMatrix(s) && s.klassSubType === \"DistanceMatrix\";\n }\n constructor(s) {\n if (super(s), !this.isDistance())\n throw new TypeError(\"Provided arguments do no produce a distance matrix\");\n }\n set(s, t, e) {\n return s === t && (e = 0), super.set(s, t, e);\n }\n addCross(s, t) {\n return t === void 0 && (t = s, s = this.diagonalSize), t = t.slice(), t[s] = 0, super.addCross(s, t);\n }\n toSymmetricMatrix() {\n return new pt(this);\n }\n clone() {\n const s = new te(this.diagonalSize);\n for (const [t, e, n] of this.upperRightEntries())\n t !== e && s.set(t, e, n);\n return s;\n }\n /**\n * Compact format upper-right corner of matrix\n * no diagonal (only zeros)\n * iterable from left to right, from top to bottom.\n *\n * ```\n * A B C D\n * A 0 1 2 3\n * B 1 0 4 5\n * C 2 4 0 6\n * D 3 5 6 0\n * ```\n *\n * will return compact 1D array `[1, 2, 3, 4, 5, 6]`\n *\n * length is S(i=0, n=sideSize-1) => 6 for a 4 side sized matrix\n *\n * @returns {number[]}\n */\n toCompact() {\n const { diagonalSize: s } = this, t = (s - 1) * s / 2, e = new Array(t);\n for (let n = 1, i = 0, o = 0; o < e.length; o++)\n e[o] = this.get(i, n), ++n >= s && (n = ++i + 1);\n return e;\n }\n /**\n * @param {number[]} compact\n */\n static fromCompact(s) {\n const t = s.length;\n if (t === 0)\n return new this(0);\n const e = (Math.sqrt(8 * t + 1) + 1) / 2;\n if (!Number.isInteger(e))\n throw new TypeError(\n `This array is not a compact representation of a DistanceMatrix, ${JSON.stringify(\n s\n )}`\n );\n const n = new this(e);\n for (let i = 1, o = 0, l = 0; l < t; l++)\n n.set(i, o, s[l]), ++i >= e && (i = ++o + 1);\n return n;\n }\n}\nte.prototype.klassSubType = \"DistanceMatrix\";\nclass ft extends V {\n constructor(s, t, e) {\n super(), this.matrix = s, this.rows = t, this.columns = e;\n }\n}\nclass Cs extends ft {\n constructor(s, t) {\n lt(s, t), super(s, s.rows, 1), this.column = t;\n }\n set(s, t, e) {\n return this.matrix.set(s, this.column, e), this;\n }\n get(s) {\n return this.matrix.get(s, this.column);\n }\n}\nclass qs extends ft {\n constructor(s, t) {\n we(s, t), super(s, s.rows, t.length), this.columnIndices = t;\n }\n set(s, t, e) {\n return this.matrix.set(s, this.columnIndices[t], e), this;\n }\n get(s, t) {\n return this.matrix.get(s, this.columnIndices[t]);\n }\n}\nclass Fs extends ft {\n constructor(s) {\n super(s, s.rows, s.columns);\n }\n set(s, t, e) {\n return this.matrix.set(s, this.columns - t - 1, e), this;\n }\n get(s, t) {\n return this.matrix.get(s, this.columns - t - 1);\n }\n}\nclass xs extends ft {\n constructor(s) {\n super(s, s.rows, s.columns);\n }\n set(s, t, e) {\n return this.matrix.set(this.rows - s - 1, t, e), this;\n }\n get(s, t) {\n return this.matrix.get(this.rows - s - 1, t);\n }\n}\nclass As extends ft {\n constructor(s, t) {\n ot(s, t), super(s, 1, s.columns), this.row = t;\n }\n set(s, t, e) {\n return this.matrix.set(this.row, t, e), this;\n }\n get(s, t) {\n return this.matrix.get(this.row, t);\n }\n}\nclass Vs extends ft {\n constructor(s, t) {\n ge(s, t), super(s, t.length, s.columns), this.rowIndices = t;\n }\n set(s, t, e) {\n return this.matrix.set(this.rowIndices[s], t, e), this;\n }\n get(s, t) {\n return this.matrix.get(this.rowIndices[s], t);\n }\n}\nclass Gt extends ft {\n constructor(s, t, e) {\n ge(s, t), we(s, e), super(s, t.length, e.length), this.rowIndices = t, this.columnIndices = e;\n }\n set(s, t, e) {\n return this.matrix.set(\n this.rowIndices[s],\n this.columnIndices[t],\n e\n ), this;\n }\n get(s, t) {\n return this.matrix.get(\n this.rowIndices[s],\n this.columnIndices[t]\n );\n }\n}\nclass Ns extends ft {\n constructor(s, t, e, n, i) {\n ae(s, t, e, n, i), super(s, e - t + 1, i - n + 1), this.startRow = t, this.startColumn = n;\n }\n set(s, t, e) {\n return this.matrix.set(\n this.startRow + s,\n this.startColumn + t,\n e\n ), this;\n }\n get(s, t) {\n return this.matrix.get(\n this.startRow + s,\n this.startColumn + t\n );\n }\n}\nclass $s extends ft {\n constructor(s) {\n super(s, s.columns, s.rows);\n }\n set(s, t, e) {\n return this.matrix.set(t, s, e), this;\n }\n get(s, t) {\n return this.matrix.get(t, s);\n }\n}\nclass Ae extends V {\n constructor(s, t = {}) {\n const { rows: e = 1 } = t;\n if (s.length % e !== 0)\n throw new Error(\"the data length is not divisible by the number of rows\");\n super(), this.rows = e, this.columns = s.length / e, this.data = s;\n }\n set(s, t, e) {\n let n = this._calculateIndex(s, t);\n return this.data[n] = e, this;\n }\n get(s, t) {\n let e = this._calculateIndex(s, t);\n return this.data[e];\n }\n _calculateIndex(s, t) {\n return s * this.columns + t;\n }\n}\nclass rt extends V {\n constructor(s) {\n super(), this.data = s, this.rows = s.length, this.columns = s[0].length;\n }\n set(s, t, e) {\n return this.data[s][t] = e, this;\n }\n get(s, t) {\n return this.data[s][t];\n }\n}\nfunction Ls(r, s) {\n if (st.isAnyArray(r))\n return r[0] && st.isAnyArray(r[0]) ? new rt(r) : new Ae(r, s);\n throw new Error(\"the argument is not an array\");\n}\nclass ee {\n constructor(s) {\n s = rt.checkMatrix(s);\n let t = s.clone(), e = t.rows, n = t.columns, i = new Float64Array(e), o = 1, l, h, a, u, c, g, d, w, p;\n for (l = 0; l < e; l++)\n i[l] = l;\n for (w = new Float64Array(e), h = 0; h < n; h++) {\n for (l = 0; l < e; l++)\n w[l] = t.get(l, h);\n for (l = 0; l < e; l++) {\n for (p = Math.min(l, h), c = 0, a = 0; a < p; a++)\n c += t.get(l, a) * w[a];\n w[l] -= c, t.set(l, h, w[l]);\n }\n for (u = h, l = h + 1; l < e; l++)\n Math.abs(w[l]) > Math.abs(w[u]) && (u = l);\n if (u !== h) {\n for (a = 0; a < n; a++)\n g = t.get(u, a), t.set(u, a, t.get(h, a)), t.set(h, a, g);\n d = i[u], i[u] = i[h], i[h] = d, o = -o;\n }\n if (h < e && t.get(h, h) !== 0)\n for (l = h + 1; l < e; l++)\n t.set(l, h, t.get(l, h) / t.get(h, h));\n }\n this.LU = t, this.pivotVector = i, this.pivotSign = o;\n }\n isSingular() {\n let s = this.LU, t = s.columns;\n for (let e = 0; e < t; e++)\n if (s.get(e, e) === 0)\n return !0;\n return !1;\n }\n solve(s) {\n s = _.checkMatrix(s);\n let t = this.LU;\n if (t.rows !== s.rows)\n throw new Error(\"Invalid matrix dimensions\");\n if (this.isSingular())\n throw new Error(\"LU matrix is singular\");\n let n = s.columns, i = s.subMatrixRow(this.pivotVector, 0, n - 1), o = t.columns, l, h, a;\n for (a = 0; a < o; a++)\n for (l = a + 1; l < o; l++)\n for (h = 0; h < n; h++)\n i.set(l, h, i.get(l, h) - i.get(a, h) * t.get(l, a));\n for (a = o - 1; a >= 0; a--) {\n for (h = 0; h < n; h++)\n i.set(a, h, i.get(a, h) / t.get(a, a));\n for (l = 0; l < a; l++)\n for (h = 0; h < n; h++)\n i.set(l, h, i.get(l, h) - i.get(a, h) * t.get(l, a));\n }\n return i;\n }\n get determinant() {\n let s = this.LU;\n if (!s.isSquare())\n throw new Error(\"Matrix must be square\");\n let t = this.pivotSign, e = s.columns;\n for (let n = 0; n < e; n++)\n t *= s.get(n, n);\n return t;\n }\n get lowerTriangularMatrix() {\n let s = this.LU, t = s.rows, e = s.columns, n = new _(t, e);\n for (let i = 0; i < t; i++)\n for (let o = 0; o < e; o++)\n i > o ? n.set(i, o, s.get(i, o)) : i === o ? n.set(i, o, 1) : n.set(i, o, 0);\n return n;\n }\n get upperTriangularMatrix() {\n let s = this.LU, t = s.rows, e = s.columns, n = new _(t, e);\n for (let i = 0; i < t; i++)\n for (let o = 0; o < e; o++)\n i <= o ? n.set(i, o, s.get(i, o)) : n.set(i, o, 0);\n return n;\n }\n get pivotPermutationVector() {\n return Array.from(this.pivotVector);\n }\n}\nfunction ut(r, s) {\n let t = 0;\n return Math.abs(r) > Math.abs(s) ? (t = s / r, Math.abs(r) * Math.sqrt(1 + t * t)) : s !== 0 ? (t = r / s, Math.abs(s) * Math.sqrt(1 + t * t)) : 0;\n}\nclass pe {\n constructor(s) {\n s = rt.checkMatrix(s);\n let t = s.clone(), e = s.rows, n = s.columns, i = new Float64Array(n), o, l, h, a;\n for (h = 0; h < n; h++) {\n let u = 0;\n for (o = h; o < e; o++)\n u = ut(u, t.get(o, h));\n if (u !== 0) {\n for (t.get(h, h) < 0 && (u = -u), o = h; o < e; o++)\n t.set(o, h, t.get(o, h) / u);\n for (t.set(h, h, t.get(h, h) + 1), l = h + 1; l < n; l++) {\n for (a = 0, o = h; o < e; o++)\n a += t.get(o, h) * t.get(o, l);\n for (a = -a / t.get(h, h), o = h; o < e; o++)\n t.set(o, l, t.get(o, l) + a * t.get(o, h));\n }\n }\n i[h] = -u;\n }\n this.QR = t, this.Rdiag = i;\n }\n solve(s) {\n s = _.checkMatrix(s);\n let t = this.QR, e = t.rows;\n if (s.rows !== e)\n throw new Error(\"Matrix row dimensions must agree\");\n if (!this.isFullRank())\n throw new Error(\"Matrix is rank deficient\");\n let n = s.columns, i = s.clone(), o = t.columns, l, h, a, u;\n for (a = 0; a < o; a++)\n for (h = 0; h < n; h++) {\n for (u = 0, l = a; l < e; l++)\n u += t.get(l, a) * i.get(l, h);\n for (u = -u / t.get(a, a), l = a; l < e; l++)\n i.set(l, h, i.get(l, h) + u * t.get(l, a));\n }\n for (a = o - 1; a >= 0; a--) {\n for (h = 0; h < n; h++)\n i.set(a, h, i.get(a, h) / this.Rdiag[a]);\n for (l = 0; l < a; l++)\n for (h = 0; h < n; h++)\n i.set(l, h, i.get(l, h) - i.get(a, h) * t.get(l, a));\n }\n return i.subMatrix(0, o - 1, 0, n - 1);\n }\n isFullRank() {\n let s = this.QR.columns;\n for (let t = 0; t < s; t++)\n if (this.Rdiag[t] === 0)\n return !1;\n return !0;\n }\n get upperTriangularMatrix() {\n let s = this.QR, t = s.columns, e = new _(t, t), n, i;\n for (n = 0; n < t; n++)\n for (i = 0; i < t; i++)\n n < i ? e.set(n, i, s.get(n, i)) : n === i ? e.set(n, i, this.Rdiag[n]) : e.set(n, i, 0);\n return e;\n }\n get orthogonalMatrix() {\n let s = this.QR, t = s.rows, e = s.columns, n = new _(t, e), i, o, l, h;\n for (l = e - 1; l >= 0; l--) {\n for (i = 0; i < t; i++)\n n.set(i, l, 0);\n for (n.set(l, l, 1), o = l; o < e; o++)\n if (s.get(l, l) !== 0) {\n for (h = 0, i = l; i < t; i++)\n h += s.get(i, l) * n.get(i, o);\n for (h = -h / s.get(l, l), i = l; i < t; i++)\n n.set(i, o, n.get(i, o) + h * s.get(i, l));\n }\n }\n return n;\n }\n}\nclass vt {\n constructor(s, t = {}) {\n if (s = rt.checkMatrix(s), s.isEmpty())\n throw new Error(\"Matrix must be non-empty\");\n let e = s.rows, n = s.columns;\n const {\n computeLeftSingularVectors: i = !0,\n computeRightSingularVectors: o = !0,\n autoTranspose: l = !1\n } = t;\n let h = !!i, a = !!o, u = !1, c;\n if (e < n)\n if (!l)\n c = s.clone(), console.warn(\n \"Computing SVD on a matrix with more columns than rows. Consider enabling autoTranspose\"\n );\n else {\n c = s.transpose(), e = c.rows, n = c.columns, u = !0;\n let m = h;\n h = a, a = m;\n }\n else\n c = s.clone();\n let g = Math.min(e, n), d = Math.min(e + 1, n), w = new Float64Array(d), p = new _(e, g), P = new _(n, n), f = new Float64Array(n), M = new Float64Array(e), E = new Float64Array(d);\n for (let m = 0; m < d; m++) E[m] = m;\n let R = Math.min(e - 1, n), v = Math.max(0, Math.min(n - 2, e)), L = Math.max(R, v);\n for (let m = 0; m < L; m++) {\n if (m < R) {\n w[m] = 0;\n for (let b = m; b < e; b++)\n w[m] = ut(w[m], c.get(b, m));\n if (w[m] !== 0) {\n c.get(m, m) < 0 && (w[m] = -w[m]);\n for (let b = m; b < e; b++)\n c.set(b, m, c.get(b, m) / w[m]);\n c.set(m, m, c.get(m, m) + 1);\n }\n w[m] = -w[m];\n }\n for (let b = m + 1; b < n; b++) {\n if (m < R && w[m] !== 0) {\n let j = 0;\n for (let y = m; y < e; y++)\n j += c.get(y, m) * c.get(y, b);\n j = -j / c.get(m, m);\n for (let y = m; y < e; y++)\n c.set(y, b, c.get(y, b) + j * c.get(y, m));\n }\n f[b] = c.get(m, b);\n }\n if (h && m < R)\n for (let b = m; b < e; b++)\n p.set(b, m, c.get(b, m));\n if (m < v) {\n f[m] = 0;\n for (let b = m + 1; b < n; b++)\n f[m] = ut(f[m], f[b]);\n if (f[m] !== 0) {\n f[m + 1] < 0 && (f[m] = 0 - f[m]);\n for (let b = m + 1; b < n; b++)\n f[b] /= f[m];\n f[m + 1] += 1;\n }\n if (f[m] = -f[m], m + 1 < e && f[m] !== 0) {\n for (let b = m + 1; b < e; b++)\n M[b] = 0;\n for (let b = m + 1; b < e; b++)\n for (let j = m + 1; j < n; j++)\n M[b] += f[j] * c.get(b, j);\n for (let b = m + 1; b < n; b++) {\n let j = -f[b] / f[m + 1];\n for (let y = m + 1; y < e; y++)\n c.set(y, b, c.get(y, b) + j * M[y]);\n }\n }\n if (a)\n for (let b = m + 1; b < n; b++)\n P.set(b, m, f[b]);\n }\n }\n let S = Math.min(n, e + 1);\n if (R < n && (w[R] = c.get(R, R)), e < S && (w[S - 1] = 0), v + 1 < S && (f[v] = c.get(v, S - 1)), f[S - 1] = 0, h) {\n for (let m = R; m < g; m++) {\n for (let b = 0; b < e; b++)\n p.set(b, m, 0);\n p.set(m, m, 1);\n }\n for (let m = R - 1; m >= 0; m--)\n if (w[m] !== 0) {\n for (let b = m + 1; b < g; b++) {\n let j = 0;\n for (let y = m; y < e; y++)\n j += p.get(y, m) * p.get(y, b);\n j = -j / p.get(m, m);\n for (let y = m; y < e; y++)\n p.set(y, b, p.get(y, b) + j * p.get(y, m));\n }\n for (let b = m; b < e; b++)\n p.set(b, m, -p.get(b, m));\n p.set(m, m, 1 + p.get(m, m));\n for (let b = 0; b < m - 1; b++)\n p.set(b, m, 0);\n } else {\n for (let b = 0; b < e; b++)\n p.set(b, m, 0);\n p.set(m, m, 1);\n }\n }\n if (a)\n for (let m = n - 1; m >= 0; m--) {\n if (m < v && f[m] !== 0)\n for (let b = m + 1; b < n; b++) {\n let j = 0;\n for (let y = m + 1; y < n; y++)\n j += P.get(y, m) * P.get(y, b);\n j = -j / P.get(m + 1, m);\n for (let y = m + 1; y < n; y++)\n P.set(y, b, P.get(y, b) + j * P.get(y, m));\n }\n for (let b = 0; b < n; b++)\n P.set(b, m, 0);\n P.set(m, m, 1);\n }\n let k = S - 1, D = Number.EPSILON;\n for (; S > 0; ) {\n let m, b;\n for (m = S - 2; m >= -1 && m !== -1; m--) {\n const j = Number.MIN_VALUE + D * Math.abs(w[m] + Math.abs(w[m + 1]));\n if (Math.abs(f[m]) <= j || Number.isNaN(f[m])) {\n f[m] = 0;\n break;\n }\n }\n if (m === S - 2)\n b = 4;\n else {\n let j;\n for (j = S - 1; j >= m && j !== m; j--) {\n let y = (j !== S ? Math.abs(f[j]) : 0) + (j !== m + 1 ? Math.abs(f[j - 1]) : 0);\n if (Math.abs(w[j]) <= D * y) {\n w[j] = 0;\n break;\n }\n }\n j === m ? b = 3 : j === S - 1 ? b = 1 : (b = 2, m = j);\n }\n switch (m++, b) {\n case 1: {\n let j = f[S - 2];\n f[S - 2] = 0;\n for (let y = S - 2; y >= m; y--) {\n let C = ut(w[y], j), F = w[y] / C, I = j / C;\n if (w[y] = C, y !== m && (j = -I * f[y - 1], f[y - 1] = F * f[y - 1]), a)\n for (let B = 0; B < n; B++)\n C = F * P.get(B, y) + I * P.get(B, S - 1), P.set(B, S - 1, -I * P.get(B, y) + F * P.get(B, S - 1)), P.set(B, y, C);\n }\n break;\n }\n case 2: {\n let j = f[m - 1];\n f[m - 1] = 0;\n for (let y = m; y < S; y++) {\n let C = ut(w[y], j), F = w[y] / C, I = j / C;\n if (w[y] = C, j = -I * f[y], f[y] = F * f[y], h)\n for (let B = 0; B < e; B++)\n C = F * p.get(B, y) + I * p.get(B, m - 1), p.set(B, m - 1, -I * p.get(B, y) + F * p.get(B, m - 1)), p.set(B, y, C);\n }\n break;\n }\n case 3: {\n const j = Math.max(\n Math.abs(w[S - 1]),\n Math.abs(w[S - 2]),\n Math.abs(f[S - 2]),\n Math.abs(w[m]),\n Math.abs(f[m])\n ), y = w[S - 1] / j, C = w[S - 2] / j, F = f[S - 2] / j, I = w[m] / j, B = f[m] / j, x = ((C + y) * (C - y) + F * F) / 2, N = y * F * (y * F);\n let A = 0;\n (x !== 0 || N !== 0) && (x < 0 ? A = 0 - Math.sqrt(x * x + N) : A = Math.sqrt(x * x + N), A = N / (x + A));\n let O = (I + y) * (I - y) + A, U = I * B;\n for (let T = m; T < S - 1; T++) {\n let z = ut(O, U);\n z === 0 && (z = Number.MIN_VALUE);\n let X = O / z, G = U / z;\n if (T !== m && (f[T - 1] = z), O = X * w[T] + G * f[T], f[T] = X * f[T] - G * w[T], U = G * w[T + 1], w[T + 1] = X * w[T + 1], a)\n for (let W = 0; W < n; W++)\n z = X * P.get(W, T) + G * P.get(W, T + 1), P.set(W, T + 1, -G * P.get(W, T) + X * P.get(W, T + 1)), P.set(W, T, z);\n if (z = ut(O, U), z === 0 && (z = Number.MIN_VALUE), X = O / z, G = U / z, w[T] = z, O = X * f[T] + G * w[T + 1], w[T + 1] = -G * f[T] + X * w[T + 1], U = G * f[T + 1], f[T + 1] = X * f[T + 1], h && T < e - 1)\n for (let W = 0; W < e; W++)\n z = X * p.get(W, T) + G * p.get(W, T + 1), p.set(W, T + 1, -G * p.get(W, T) + X * p.get(W, T + 1)), p.set(W, T, z);\n }\n f[S - 2] = O;\n break;\n }\n case 4: {\n if (w[m] <= 0 && (w[m] = w[m] < 0 ? -w[m] : 0, a))\n for (let j = 0; j <= k; j++)\n P.set(j, m, -P.get(j, m));\n for (; m < k && !(w[m] >= w[m + 1]); ) {\n let j = w[m];\n if (w[m] = w[m + 1], w[m + 1] = j, a && m < n - 1)\n for (let y = 0; y < n; y++)\n j = P.get(y, m + 1), P.set(y, m + 1, P.get(y, m)), P.set(y, m, j);\n if (h && m < e - 1)\n for (let y = 0; y < e; y++)\n j = p.get(y, m + 1), p.set(y, m + 1, p.get(y, m)), p.set(y, m, j);\n m++;\n }\n S--;\n break;\n }\n }\n }\n if (u) {\n let m = P;\n P = p, p = m;\n }\n this.m = e, this.n = n, this.s = w, this.U = p, this.V = P;\n }\n solve(s) {\n let t = s, e = this.threshold, n = this.s.length, i = _.zeros(n, n);\n for (let g = 0; g < n; g++)\n Math.abs(this.s[g]) <= e ? i.set(g, g, 0) : i.set(g, g, 1 / this.s[g]);\n let o = this.U, l = this.rightSingularVectors, h = l.mmul(i), a = l.rows, u = o.rows, c = _.zeros(a, u);\n for (let g = 0; g < a; g++)\n for (let d = 0; d < u; d++) {\n let w = 0;\n for (let p = 0; p < n; p++)\n w += h.get(g, p) * o.get(d, p);\n c.set(g, d, w);\n }\n return c.mmul(t);\n }\n solveForDiagonal(s) {\n return this.solve(_.diag(s));\n }\n inverse() {\n let s = this.V, t = this.threshold, e = s.rows, n = s.columns, i = new _(e, this.s.length);\n for (let u = 0; u < e; u++)\n for (let c = 0; c < n; c++)\n Math.abs(this.s[c]) > t && i.set(u, c, s.get(u, c) / this.s[c]);\n let o = this.U, l = o.rows, h = o.columns, a = new _(e, l);\n for (let u = 0; u < e; u++)\n for (let c = 0; c < l; c++) {\n let g = 0;\n for (let d = 0; d < h; d++)\n g += i.get(u, d) * o.get(c, d);\n a.set(u, c, g);\n }\n return a;\n }\n get condition() {\n return this.s[0] / this.s[Math.min(this.m, this.n) - 1];\n }\n get norm2() {\n return this.s[0];\n }\n get rank() {\n let s = Math.max(this.m, this.n) * this.s[0] * Number.EPSILON, t = 0, e = this.s;\n for (let n = 0, i = e.length; n < i; n++)\n e[n] > s && t++;\n return t;\n }\n get diagonal() {\n return Array.from(this.s);\n }\n get threshold() {\n return Number.EPSILON / 2 * Math.max(this.m, this.n) * this.s[0];\n }\n get leftSingularVectors() {\n return this.U;\n }\n get rightSingularVectors() {\n return this.V;\n }\n get diagonalMatrix() {\n return _.diag(this.s);\n }\n}\nfunction Ds(r, s = !1) {\n return r = rt.checkMatrix(r), s ? new vt(r).inverse() : Ve(r, _.eye(r.rows));\n}\nfunction Ve(r, s, t = !1) {\n return r = rt.checkMatrix(r), s = rt.checkMatrix(s), t ? new vt(r).solve(s) : r.isSquare() ? new ee(r).solve(s) : new pe(r).solve(s);\n}\nfunction Xt(r) {\n if (r = _.checkMatrix(r), r.isSquare()) {\n if (r.columns === 0)\n return 1;\n let s, t, e, n;\n if (r.columns === 2)\n return s = r.get(0, 0), t = r.get(0, 1), e = r.get(1, 0), n = r.get(1, 1), s * n - t * e;\n if (r.columns === 3) {\n let i, o, l;\n return i = new Gt(r, [1, 2], [1, 2]), o = new Gt(r, [1, 2], [0, 2]), l = new Gt(r, [1, 2], [0, 1]), s = r.get(0, 0), t = r.get(0, 1), e = r.get(0, 2), s * Xt(i) - t * Xt(o) + e * Xt(l);\n } else\n return new ee(r).determinant;\n } else\n throw Error(\"determinant can only be calculated for a square matrix\");\n}\nfunction zs(r, s) {\n let t = [];\n for (let e = 0; e < r; e++)\n e !== s && t.push(e);\n return t;\n}\nfunction Os(r, s, t, e = 1e-9, n = 1e-9) {\n if (r > n)\n return new Array(s.rows + 1).fill(0);\n {\n let i = s.addRow(t, [0]);\n for (let o = 0; o < i.rows; o++)\n Math.abs(i.get(o, 0)) < e && i.set(o, 0, 0);\n return i.to1DArray();\n }\n}\nfunction Bs(r, s = {}) {\n const { thresholdValue: t = 1e-9, thresholdError: e = 1e-9 } = s;\n r = _.checkMatrix(r);\n let n = r.rows, i = new _(n, n);\n for (let o = 0; o < n; o++) {\n let l = _.columnVector(r.getRow(o)), h = r.subMatrixRow(zs(n, o)).transpose(), u = new vt(h).solve(l), c = _.sub(l, h.mmul(u)).abs().max();\n i.setRow(\n o,\n Os(c, u, o, t, e)\n );\n }\n return i;\n}\nfunction Us(r, s = Number.EPSILON) {\n if (r = _.checkMatrix(r), r.isEmpty())\n return r.transpose();\n let t = new vt(r, { autoTranspose: !0 }), e = t.leftSingularVectors, n = t.rightSingularVectors, i = t.diagonal;\n for (let o = 0; o < i.length; o++)\n Math.abs(i[o]) > s ? i[o] = 1 / i[o] : i[o] = 0;\n return n.mmul(_.diag(i).mmul(e.transpose()));\n}\nfunction Ys(r, s = r, t = {}) {\n r = new _(r);\n let e = !1;\n if (typeof s == \"object\" && !_.isMatrix(s) && !st.isAnyArray(s) ? (t = s, s = r, e = !0) : s = new _(s), r.rows !== s.rows)\n throw new TypeError(\"Both matrices must have the same number of rows\");\n const { center: n = !0 } = t;\n n && (r = r.center(\"column\"), e || (s = s.center(\"column\")));\n const i = r.transpose().mmul(s);\n for (let o = 0; o < i.rows; o++)\n for (let l = 0; l < i.columns; l++)\n i.set(o, l, i.get(o, l) * (1 / (r.rows - 1)));\n return i;\n}\nfunction Ws(r, s = r, t = {}) {\n r = new _(r);\n let e = !1;\n if (typeof s == \"object\" && !_.isMatrix(s) && !st.isAnyArray(s) ? (t = s, s = r, e = !0) : s = new _(s), r.rows !== s.rows)\n throw new TypeError(\"Both matrices must have the same number of rows\");\n const { center: n = !0, scale: i = !0 } = t;\n n && (r.center(\"column\"), e || s.center(\"column\")), i && (r.scale(\"column\"), e || s.scale(\"column\"));\n const o = r.standardDeviation(\"column\", { unbiased: !0 }), l = e ? o : s.standardDeviation(\"column\", { unbiased: !0 }), h = r.transpose().mmul(s);\n for (let a = 0; a < h.rows; a++)\n for (let u = 0; u < h.columns; u++)\n h.set(\n a,\n u,\n h.get(a, u) * (1 / (o[a] * l[u])) * (1 / (r.rows - 1))\n );\n return h;\n}\nlet Ne = class {\n constructor(s, t = {}) {\n const { assumeSymmetric: e = !1 } = t;\n if (s = rt.checkMatrix(s), !s.isSquare())\n throw new Error(\"Matrix is not a square matrix\");\n if (s.isEmpty())\n throw new Error(\"Matrix must be non-empty\");\n let n = s.columns, i = new _(n, n), o = new Float64Array(n), l = new Float64Array(n), h = s, a, u, c = !1;\n if (e ? c = !0 : c = s.isSymmetric(), c) {\n for (a = 0; a < n; a++)\n for (u = 0; u < n; u++)\n i.set(a, u, h.get(a, u));\n Qs(n, l, o, i), Gs(n, l, o, i);\n } else {\n let g = new _(n, n), d = new Float64Array(n);\n for (u = 0; u < n; u++)\n for (a = 0; a < n; a++)\n g.set(a, u, h.get(a, u));\n Xs(n, g, d, i), Zs(n, l, o, i, g);\n }\n this.n = n, this.e = l, this.d = o, this.V = i;\n }\n get realEigenvalues() {\n return Array.from(this.d);\n }\n get imaginaryEigenvalues() {\n return Array.from(this.e);\n }\n get eigenvectorMatrix() {\n return this.V;\n }\n get diagonalMatrix() {\n let s = this.n, t = this.e, e = this.d, n = new _(s, s), i, o;\n for (i = 0; i < s; i++) {\n for (o = 0; o < s; o++)\n n.set(i, o, 0);\n n.set(i, i, e[i]), t[i] > 0 ? n.set(i, i + 1, t[i]) : t[i] < 0 && n.set(i, i - 1, t[i]);\n }\n return n;\n }\n};\nfunction Qs(r, s, t, e) {\n let n, i, o, l, h, a, u, c;\n for (h = 0; h < r; h++)\n t[h] = e.get(r - 1, h);\n for (l = r - 1; l > 0; l--) {\n for (c = 0, o = 0, a = 0; a < l; a++)\n c = c + Math.abs(t[a]);\n if (c === 0)\n for (s[l] = t[l - 1], h = 0; h < l; h++)\n t[h] = e.get(l - 1, h), e.set(l, h, 0), e.set(h, l, 0);\n else {\n for (a = 0; a < l; a++)\n t[a] /= c, o += t[a] * t[a];\n for (n = t[l - 1], i = Math.sqrt(o), n > 0 && (i = -i), s[l] = c * i, o = o - n * i, t[l - 1] = n - i, h = 0; h < l; h++)\n s[h] = 0;\n for (h = 0; h < l; h++) {\n for (n = t[h], e.set(h, l, n), i = s[h] + e.get(h, h) * n, a = h + 1; a <= l - 1; a++)\n i += e.get(a, h) * t[a], s[a] += e.get(a, h) * n;\n s[h] = i;\n }\n for (n = 0, h = 0; h < l; h++)\n s[h] /= o, n += s[h] * t[h];\n for (u = n / (o + o), h = 0; h < l; h++)\n s[h] -= u * t[h];\n for (h = 0; h < l; h++) {\n for (n = t[h], i = s[h], a = h; a <= l - 1; a++)\n e.set(a, h, e.get(a, h) - (n * s[a] + i * t[a]));\n t[h] = e.get(l - 1, h), e.set(l, h, 0);\n }\n }\n t[l] = o;\n }\n for (l = 0; l < r - 1; l++) {\n if (e.set(r - 1, l, e.get(l, l)), e.set(l, l, 1), o = t[l + 1], o !== 0) {\n for (a = 0; a <= l; a++)\n t[a] = e.get(a, l + 1) / o;\n for (h = 0; h <= l; h++) {\n for (i = 0, a = 0; a <= l; a++)\n i += e.get(a, l + 1) * e.get(a, h);\n for (a = 0; a <= l; a++)\n e.set(a, h, e.get(a, h) - i * t[a]);\n }\n }\n for (a = 0; a <= l; a++)\n e.set(a, l + 1, 0);\n }\n for (h = 0; h < r; h++)\n t[h] = e.get(r - 1, h), e.set(r - 1, h, 0);\n e.set(r - 1, r - 1, 1), s[0] = 0;\n}\nfunction Gs(r, s, t, e) {\n let n, i, o, l, h, a, u, c, g, d, w, p, P, f, M, E;\n for (o = 1; o < r; o++)\n s[o - 1] = s[o];\n s[r - 1] = 0;\n let R = 0, v = 0, L = Number.EPSILON;\n for (a = 0; a < r; a++) {\n for (v = Math.max(v, Math.abs(t[a]) + Math.abs(s[a])), u = a; u < r && !(Math.abs(s[u]) <= L * v); )\n u++;\n if (u > a)\n do {\n for (n = t[a], c = (t[a + 1] - n) / (2 * s[a]), g = ut(c, 1), c < 0 && (g = -g), t[a] = s[a] / (c + g), t[a + 1] = s[a] * (c + g), d = t[a + 1], i = n - t[a], o = a + 2; o < r; o++)\n t[o] -= i;\n for (R = R + i, c = t[u], w = 1, p = w, P = w, f = s[a + 1], M = 0, E = 0, o = u - 1; o >= a; o--)\n for (P = p, p = w, E = M, n = w * s[o], i = w * c, g = ut(c, s[o]), s[o + 1] = M * g, M = s[o] / g, w = c / g, c = w * t[o] - M * n, t[o + 1] = i + M * (w * n + M * t[o]), h = 0; h < r; h++)\n i = e.get(h, o + 1), e.set(h, o + 1, M * e.get(h, o) + w * i), e.set(h, o, w * e.get(h, o) - M * i);\n c = -M * E * P * f * s[a] / d, s[a] = M * c, t[a] = w * c;\n } while (Math.abs(s[a]) > L * v);\n t[a] = t[a] + R, s[a] = 0;\n }\n for (o = 0; o < r - 1; o++) {\n for (h = o, c = t[o], l = o + 1; l < r; l++)\n t[l] < c && (h = l, c = t[l]);\n if (h !== o)\n for (t[h] = t[o], t[o] = c, l = 0; l < r; l++)\n c = e.get(l, o), e.set(l, o, e.get(l, h)), e.set(l, h, c);\n }\n}\nfunction Xs(r, s, t, e) {\n let n = 0, i = r - 1, o, l, h, a, u, c, g;\n for (c = n + 1; c <= i - 1; c++) {\n for (g = 0, a = c; a <= i; a++)\n g = g + Math.abs(s.get(a, c - 1));\n if (g !== 0) {\n for (h = 0, a = i; a >= c; a--)\n t[a] = s.get(a, c - 1) / g, h += t[a] * t[a];\n for (l = Math.sqrt(h), t[c] > 0 && (l = -l), h = h - t[c] * l, t[c] = t[c] - l, u = c; u < r; u++) {\n for (o = 0, a = i; a >= c; a--)\n o += t[a] * s.get(a, u);\n for (o = o / h, a = c; a <= i; a++)\n s.set(a, u, s.get(a, u) - o * t[a]);\n }\n for (a = 0; a <= i; a++) {\n for (o = 0, u = i; u >= c; u--)\n o += t[u] * s.get(a, u);\n for (o = o / h, u = c; u <= i; u++)\n s.set(a, u, s.get(a, u) - o * t[u]);\n }\n t[c] = g * t[c], s.set(c, c - 1, g * l);\n }\n }\n for (a = 0; a < r; a++)\n for (u = 0; u < r; u++)\n e.set(a, u, a === u ? 1 : 0);\n for (c = i - 1; c >= n + 1; c--)\n if (s.get(c, c - 1) !== 0) {\n for (a = c + 1; a <= i; a++)\n t[a] = s.get(a, c - 1);\n for (u = c; u <= i; u++) {\n for (l = 0, a = c; a <= i; a++)\n l += t[a] * e.get(a, u);\n for (l = l / t[c] / s.get(c, c - 1), a = c; a <= i; a++)\n e.set(a, u, e.get(a, u) + l * t[a]);\n }\n }\n}\nfunction Zs(r, s, t, e, n) {\n let i = r - 1, o = 0, l = r - 1, h = Number.EPSILON, a = 0, u = 0, c = 0, g = 0, d = 0, w = 0, p = 0, P = 0, f, M, E, R, v, L, S, k, D, m, b, j, y, C, F;\n for (f = 0; f < r; f++)\n for ((f < o || f > l) && (t[f] = n.get(f, f), s[f] = 0), M = Math.max(f - 1, 0); M < r; M++)\n u = u + Math.abs(n.get(f, M));\n for (; i >= o; ) {\n for (R = i; R > o && (w = Math.abs(n.get(R - 1, R - 1)) + Math.abs(n.get(R, R)), w === 0 && (w = u), !(Math.abs(n.get(R, R - 1)) < h * w)); )\n R--;\n if (R === i)\n n.set(i, i, n.get(i, i) + a), t[i] = n.get(i, i), s[i] = 0, i--, P = 0;\n else if (R === i - 1) {\n if (S = n.get(i, i - 1) * n.get(i - 1, i), c = (n.get(i - 1, i - 1) - n.get(i, i)) / 2, g = c * c + S, p = Math.sqrt(Math.abs(g)), n.set(i, i, n.get(i, i) + a), n.set(i - 1, i - 1, n.get(i - 1, i - 1) + a), k = n.get(i, i), g >= 0) {\n for (p = c >= 0 ? c + p : c - p, t[i - 1] = k + p, t[i] = t[i - 1], p !== 0 && (t[i] = k - S / p), s[i - 1] = 0, s[i] = 0, k = n.get(i, i - 1), w = Math.abs(k) + Math.abs(p), c = k / w, g = p / w, d = Math.sqrt(c * c + g * g), c = c / d, g = g / d, M = i - 1; M < r; M++)\n p = n.get(i - 1, M), n.set(i - 1, M, g * p + c * n.get(i, M)), n.set(i, M, g * n.get(i, M) - c * p);\n for (f = 0; f <= i; f++)\n p = n.get(f, i - 1), n.set(f, i - 1, g * p + c * n.get(f, i)), n.set(f, i, g * n.get(f, i) - c * p);\n for (f = o; f <= l; f++)\n p = e.get(f, i - 1), e.set(f, i - 1, g * p + c * e.get(f, i)), e.set(f, i, g * e.get(f, i) - c * p);\n } else\n t[i - 1] = k + c, t[i] = k + c, s[i - 1] = p, s[i] = -p;\n i = i - 2, P = 0;\n } else {\n if (k = n.get(i, i), D = 0, S = 0, R < i && (D = n.get(i - 1, i - 1), S = n.get(i, i - 1) * n.get(i - 1, i)), P === 10) {\n for (a += k, f = o; f <= i; f++)\n n.set(f, f, n.get(f, f) - k);\n w = Math.abs(n.get(i, i - 1)) + Math.abs(n.get(i - 1, i - 2)), k = D = 0.75 * w, S = -0.4375 * w * w;\n }\n if (P === 30 && (w = (D - k) / 2, w = w * w + S, w > 0)) {\n for (w = Math.sqrt(w), D < k && (w = -w), w = k - S / ((D - k) / 2 + w), f = o; f <= i; f++)\n n.set(f, f, n.get(f, f) - w);\n a += w, k = D = S = 0.964;\n }\n for (P = P + 1, v = i - 2; v >= R && (p = n.get(v, v), d = k - p, w = D - p, c = (d * w - S) / n.get(v + 1, v) + n.get(v, v + 1), g = n.get(v + 1, v + 1) - p - d - w, d = n.get(v + 2, v + 1), w = Math.abs(c) + Math.abs(g) + Math.abs(d), c = c / w, g = g / w, d = d / w, !(v === R || Math.abs(n.get(v, v - 1)) * (Math.abs(g) + Math.abs(d)) < h * (Math.abs(c) * (Math.abs(n.get(v - 1, v - 1)) + Math.abs(p) + Math.abs(n.get(v + 1, v + 1)))))); )\n v--;\n for (f = v + 2; f <= i; f++)\n n.set(f, f - 2, 0), f > v + 2 && n.set(f, f - 3, 0);\n for (E = v; E <= i - 1 && (C = E !== i - 1, E !== v && (c = n.get(E, E - 1), g = n.get(E + 1, E - 1), d = C ? n.get(E + 2, E - 1) : 0, k = Math.abs(c) + Math.abs(g) + Math.abs(d), k !== 0 && (c = c / k, g = g / k, d = d / k)), k !== 0); E++)\n if (w = Math.sqrt(c * c + g * g + d * d), c < 0 && (w = -w), w !== 0) {\n for (E !== v ? n.set(E, E - 1, -w * k) : R !== v && n.set(E, E - 1, -n.get(E, E - 1)), c = c + w, k = c / w, D = g / w, p = d / w, g = g / c, d = d / c, M = E; M < r; M++)\n c = n.get(E, M) + g * n.get(E + 1, M), C && (c = c + d * n.get(E + 2, M), n.set(E + 2, M, n.get(E + 2, M) - c * p)), n.set(E, M, n.get(E, M) - c * k), n.set(E + 1, M, n.get(E + 1, M) - c * D);\n for (f = 0; f <= Math.min(i, E + 3); f++)\n c = k * n.get(f, E) + D * n.get(f, E + 1), C && (c = c + p * n.get(f, E + 2), n.set(f, E + 2, n.get(f, E + 2) - c * d)), n.set(f, E, n.get(f, E) - c), n.set(f, E + 1, n.get(f, E + 1) - c * g);\n for (f = o; f <= l; f++)\n c = k * e.get(f, E) + D * e.get(f, E + 1), C && (c = c + p * e.get(f, E + 2), e.set(f, E + 2, e.get(f, E + 2) - c * d)), e.set(f, E, e.get(f, E) - c), e.set(f, E + 1, e.get(f, E + 1) - c * g);\n }\n }\n }\n if (u !== 0) {\n for (i = r - 1; i >= 0; i--)\n if (c = t[i], g = s[i], g === 0)\n for (R = i, n.set(i, i, 1), f = i - 1; f >= 0; f--) {\n for (S = n.get(f, f) - c, d = 0, M = R; M <= i; M++)\n d = d + n.get(f, M) * n.get(M, i);\n if (s[f] < 0)\n p = S, w = d;\n else if (R = f, s[f] === 0 ? n.set(f, i, S !== 0 ? -d / S : -d / (h * u)) : (k = n.get(f, f + 1), D = n.get(f + 1, f), g = (t[f] - c) * (t[f] - c) + s[f] * s[f], L = (k * w - p * d) / g, n.set(f, i, L), n.set(\n f + 1,\n i,\n Math.abs(k) > Math.abs(p) ? (-d - S * L) / k : (-w - D * L) / p\n )), L = Math.abs(n.get(f, i)), h * L * L > 1)\n for (M = f; M <= i; M++)\n n.set(M, i, n.get(M, i) / L);\n }\n else if (g < 0)\n for (R = i - 1, Math.abs(n.get(i, i - 1)) > Math.abs(n.get(i - 1, i)) ? (n.set(i - 1, i - 1, g / n.get(i, i - 1)), n.set(i - 1, i, -(n.get(i, i) - c) / n.get(i, i - 1))) : (F = Wt(0, -n.get(i - 1, i), n.get(i - 1, i - 1) - c, g), n.set(i - 1, i - 1, F[0]), n.set(i - 1, i, F[1])), n.set(i, i - 1, 0), n.set(i, i, 1), f = i - 2; f >= 0; f--) {\n for (m = 0, b = 0, M = R; M <= i; M++)\n m = m + n.get(f, M) * n.get(M, i - 1), b = b + n.get(f, M) * n.get(M, i);\n if (S = n.get(f, f) - c, s[f] < 0)\n p = S, d = m, w = b;\n else if (R = f, s[f] === 0 ? (F = Wt(-m, -b, S, g), n.set(f, i - 1, F[0]), n.set(f, i, F[1])) : (k = n.get(f, f + 1), D = n.get(f + 1, f), j = (t[f] - c) * (t[f] - c) + s[f] * s[f] - g * g, y = (t[f] - c) * 2 * g, j === 0 && y === 0 && (j = h * u * (Math.abs(S) + Math.abs(g) + Math.abs(k) + Math.abs(D) + Math.abs(p))), F = Wt(\n k * d - p * m + g * b,\n k * w - p * b - g * m,\n j,\n y\n ), n.set(f, i - 1, F[0]), n.set(f, i, F[1]), Math.abs(k) > Math.abs(p) + Math.abs(g) ? (n.set(\n f + 1,\n i - 1,\n (-m - S * n.get(f, i - 1) + g * n.get(f, i)) / k\n ), n.set(\n f + 1,\n i,\n (-b - S * n.get(f, i) - g * n.get(f, i - 1)) / k\n )) : (F = Wt(\n -d - D * n.get(f, i - 1),\n -w - D * n.get(f, i),\n p,\n g\n ), n.set(f + 1, i - 1, F[0]), n.set(f + 1, i, F[1]))), L = Math.max(Math.abs(n.get(f, i - 1)), Math.abs(n.get(f, i))), h * L * L > 1)\n for (M = f; M <= i; M++)\n n.set(M, i - 1, n.get(M, i - 1) / L), n.set(M, i, n.get(M, i) / L);\n }\n for (f = 0; f < r; f++)\n if (f < o || f > l)\n for (M = f; M < r; M++)\n e.set(f, M, n.get(f, M));\n for (M = r - 1; M >= o; M--)\n for (f = o; f <= l; f++) {\n for (p = 0, E = o; E <= Math.min(M, l); E++)\n p = p + e.get(f, E) * n.get(E, M);\n e.set(f, M, p);\n }\n }\n}\nfunction Wt(r, s, t, e) {\n let n, i;\n return Math.abs(t) > Math.abs(e) ? (n = e / t, i = t + n * e, [(r + n * s) / i, (s - n * r) / i]) : (n = t / e, i = e + n * t, [(n * r + s) / i, (n * s - r) / i]);\n}\nclass $e {\n constructor(s) {\n if (s = rt.checkMatrix(s), !s.isSymmetric())\n throw new Error(\"Matrix is not symmetric\");\n let t = s, e = t.rows, n = new _(e, e), i = !0, o, l, h;\n for (l = 0; l < e; l++) {\n let a = 0;\n for (h = 0; h < l; h++) {\n let u = 0;\n for (o = 0; o < h; o++)\n u += n.get(h, o) * n.get(l, o);\n u = (t.get(l, h) - u) / n.get(h, h), n.set(l, h, u), a = a + u * u;\n }\n for (a = t.get(l, l) - a, i && (i = a > 0), n.set(l, l, Math.sqrt(Math.max(a, 0))), h = l + 1; h < e; h++)\n n.set(l, h, 0);\n }\n this.L = n, this.positiveDefinite = i;\n }\n isPositiveDefinite() {\n return this.positiveDefinite;\n }\n solve(s) {\n s = rt.checkMatrix(s);\n let t = this.L, e = t.rows;\n if (s.rows !== e)\n throw new Error(\"Matrix dimensions do not match\");\n if (this.isPositiveDefinite() === !1)\n throw new Error(\"Matrix is not positive definite\");\n let n = s.columns, i = s.clone(), o, l, h;\n for (h = 0; h < e; h++)\n for (l = 0; l < n; l++) {\n for (o = 0; o < h; o++)\n i.set(h, l, i.get(h, l) - i.get(o, l) * t.get(h, o));\n i.set(h, l, i.get(h, l) / t.get(h, h));\n }\n for (h = e - 1; h >= 0; h--)\n for (l = 0; l < n; l++) {\n for (o = h + 1; o < e; o++)\n i.set(h, l, i.get(h, l) - i.get(o, l) * t.get(o, h));\n i.set(h, l, i.get(h, l) / t.get(h, h));\n }\n return i;\n }\n get lowerTriangularMatrix() {\n return this.L;\n }\n}\nclass Le {\n constructor(s, t = {}) {\n s = rt.checkMatrix(s);\n let { Y: e } = t;\n const {\n scaleScores: n = !1,\n maxIterations: i = 1e3,\n terminationCriteria: o = 1e-10\n } = t;\n let l;\n if (e) {\n if (st.isAnyArray(e) && typeof e[0] == \"number\" ? e = _.columnVector(e) : e = rt.checkMatrix(e), e.rows !== s.rows)\n throw new Error(\"Y should have the same number of rows as X\");\n l = e.getColumnVector(0);\n } else\n l = s.getColumnVector(0);\n let h = 1, a, u, c, g;\n for (let d = 0; d < i && h > o; d++)\n c = s.transpose().mmul(l).div(l.transpose().mmul(l).get(0, 0)), c = c.div(c.norm()), a = s.mmul(c).div(c.transpose().mmul(c).get(0, 0)), d > 0 && (h = a.clone().sub(g).pow(2).sum()), g = a.clone(), e ? (u = e.transpose().mmul(a).div(a.transpose().mmul(a).get(0, 0)), u = u.div(u.norm()), l = e.mmul(u).div(u.transpose().mmul(u).get(0, 0))) : l = a;\n if (e) {\n let d = s.transpose().mmul(a).div(a.transpose().mmul(a).get(0, 0));\n d = d.div(d.norm());\n let w = s.clone().sub(a.clone().mmul(d.transpose())), p = l.transpose().mmul(a).div(a.transpose().mmul(a).get(0, 0)), P = e.clone().sub(\n a.clone().mulS(p.get(0, 0)).mmul(u.transpose())\n );\n this.t = a, this.p = d.transpose(), this.w = c.transpose(), this.q = u, this.u = l, this.s = a.transpose().mmul(a), this.xResidual = w, this.yResidual = P, this.betas = p;\n } else\n this.w = c.transpose(), this.s = a.transpose().mmul(a).sqrt(), n ? this.t = a.clone().div(this.s.get(0, 0)) : this.t = a, this.xResidual = s.sub(a.mmul(c.transpose()));\n }\n}\n$.AbstractMatrix = V;\n$.CHO = $e;\n$.CholeskyDecomposition = $e;\n$.DistanceMatrix = te;\n$.EVD = Ne;\nvar Js = $.EigenvalueDecomposition = Ne;\n$.LU = ee;\n$.LuDecomposition = ee;\nvar De = $.Matrix = _;\n$.MatrixColumnSelectionView = qs;\n$.MatrixColumnView = Cs;\n$.MatrixFlipColumnView = Fs;\n$.MatrixFlipRowView = xs;\n$.MatrixRowSelectionView = Vs;\n$.MatrixRowView = As;\n$.MatrixSelectionView = Gt;\n$.MatrixSubView = Ns;\n$.MatrixTransposeView = $s;\n$.NIPALS = Le;\n$.Nipals = Le;\n$.QR = pe;\n$.QrDecomposition = pe;\n$.SVD = vt;\n$.SingularValueDecomposition = vt;\n$.SymmetricMatrix = pt;\n$.WrapperMatrix1D = Ae;\n$.WrapperMatrix2D = rt;\n$.correlation = Ws;\n$.covariance = Ys;\nvar Re = $.default = _;\n$.determinant = Xt;\n$.inverse = Ds;\n$.linearDependencies = Bs;\n$.pseudoInverse = Us;\n$.solve = Ve;\n$.wrap = Ls;\nconst Ks = Js, Hs = De;\nRe.Matrix && Re.Matrix;\nfunction qt(r, s, t) {\n const e = r / t, n = s / t;\n if (!(isFinite(e) && isFinite(n))) {\n const h = -r / s;\n return isFinite(h) ? [h] : r == 0 && s == 0 ? [0] : [];\n }\n const i = n * n - 4 * e;\n let o = 0;\n if (isFinite(i)) {\n if (i < 0)\n return [];\n if (i == 0)\n return [-0.5 * n];\n o = -0.5 * (n + kt(Math.sqrt(i), n));\n } else\n o = -n;\n const l = e / o;\n return isFinite(l) ? l > o ? [o, l] : [l, o] : [o];\n}\nfunction ze(r, s, t, e) {\n const n = t / (3 * e), i = s / (3 * e), o = r / e;\n if (!(isFinite(o) && isFinite(i) && isFinite(n)))\n return qt(r, s, t);\n const l = -n * n + i, h = -i * n + o, a = n * o - i * i, u = 4 * l * a - h * h, c = -2 * n * l + h;\n if (u < 0) {\n const g = Math.sqrt(-0.25 * u), d = -0.5 * c;\n return [Math.cbrt(d + g) + Math.cbrt(d - g) - n];\n } else if (u == 0) {\n const g = kt(Math.sqrt(-l), c);\n return [g - n, -2 * g - n];\n } else {\n const g = Math.atan2(Math.sqrt(u), -c) / 3, d = Math.cos(g), w = Math.sin(g) * Math.sqrt(3), p = 0.5 * (-d + w), P = 0.5 * (-d - w), f = 2 * Math.sqrt(-l);\n return [f * d - n, f * p - n, f * P - n];\n }\n}\nfunction wn(r, s, t, e, n) {\n if (n == 0)\n return ze(r, s, t, e);\n const i = e / n, o = t / n, l = s / n, h = r / n;\n let a = ve(i, o, l, h, !1);\n if (a !== null)\n return a;\n const u = 716e74;\n for (let c = 0; c < 2; c++)\n if (a = ve(\n i / u,\n o / (u * u),\n l / (u * u * u),\n h / (u * u * u * u),\n c != 0\n ), a !== null) {\n for (let g = 0; g < a.length; g++)\n a[g] *= u;\n return a;\n }\n return [];\n}\nfunction gt(r, s) {\n return s == 0 ? Math.abs(r) : Math.abs((r - s) / s);\n}\nfunction ve(r, s, t, e, n) {\n const i = tn(r, s, t, e, n);\n if (i !== null && i.length == 4) {\n let o = [];\n for (let l = 0; l < 2; l++) {\n const h = i[l * 2], a = i[l * 2 + 1];\n o = o.concat(qt(a, h, 1));\n }\n return o;\n }\n return null;\n}\nfunction tn(r, s, t, e, n) {\n function i(x, N, A, O) {\n const U = gt(x + A, r), T = gt(N + x * A + O, s), z = gt(N * A + x * O, t);\n return U + T + z;\n }\n function o(x, N, A, O) {\n return i(x, N, A, O) + gt(N * O, e);\n }\n const l = 9 * r * r - 24 * s, h = l >= 0 ? -2 * s / (3 * r + kt(Math.sqrt(l), r)) : -0.25 * r, a = r + 4 * h, u = s + 3 * h * (r + 2 * h), c = t + h * (2 * s + h * (3 * r + 4 * h)), g = e + h * (t + h * (s + h * (r + h)));\n let d = 0, w = 0;\n const p = 349e100;\n if (n) {\n const x = a / p, N = u / p, A = c / p, O = g / p;\n d = x * A - 4 / p * O - 1 / 3 * N * N, w = (x * A - 8 / p * O - 2 / 9 * N * N) * (1 / 3) * N - A * (A / p) - x * x * O;\n } else\n d = a * c - 4 * g - 1 / 3 * u * u, w = (a * c + 8 * g - 2 / 9 * u * u) * (1 / 3) * u - c * c - a * a * g;\n if (!isFinite(d) && isFinite(w))\n return null;\n let P = en(d, w);\n n && (P *= p);\n const f = r * 0.5, M = 1 / 6 * s + 0.5 * P, E = t - r * M, R = 2 / 3 * s - P - f * f, v = 0.5 * E / R, L = 2 * (e - M * M) / E, S = 0.5 * E / L;\n let k = 0, D = 0, m = 0;\n for (let x = 0; x < 3; x++) {\n const N = x == 1 ? S : R, A = x == 0 ? v : L, O = gt(N + f * f + 2 * M, s), U = gt(2 * (N * A + f * M), t), T = gt(N * A * A + M * M, e), z = O + U + T;\n (x == 0 || z < m) && (k = N, D = A, m = z);\n }\n const b = k, j = D;\n let y = 0, C = 0, F = 0, I = 0;\n if (b < 0) {\n const x = Math.sqrt(-b);\n if (y = f + x, C = M + x * j, F = f - x, I = M - x * j, Math.abs(I) < Math.abs(C) ? I = e / C : Math.abs(I) > Math.abs(C) && (C = e / I), Math.abs(y) != Math.abs(F)) {\n let N = null, A = null;\n if (Math.abs(y) < Math.abs(F)) {\n const U = (t - C * F) / I, T = (s - I - C) / F;\n N = [r - F, U, T], A = [F, F, F];\n } else {\n const U = (t - y * I) / C, T = (s - I - C) / y, z = r - y;\n N = [y, y, y], A = [z, U, T];\n }\n let O = 0;\n for (let U = 0; U < 3; U++) {\n const T = N[U], z = A[U];\n if (isFinite(T) && isFinite(z)) {\n const X = i(T, C, z, I);\n (U == 0 || X < O) && (y = T, F = z, O = X);\n }\n }\n }\n } else if (b == 0) {\n const x = e - M * M;\n y = f, C = M + Math.sqrt(-x), F = f, I = M - Math.sqrt(-x), Math.abs(C) > Math.abs(I) ? I = e / C : Math.abs(I) > Math.abs(C) && (C = e / I);\n } else\n return [];\n let B = o(y, C, F, I);\n for (let x = 0; x < 8 && B != 0; x++) {\n const N = C * I - e, A = C * F + y * I - t, O = C + y * F + I - s, U = y + F - r, T = y - F, z = C * C - C * (F * T + 2 * I) + I * (y * T + I);\n if (z == 0)\n break;\n const X = 1 / z, G = I - C, W = C * F - y * I, se = T * N + G * A + W * O - (C * G + y * W) * U, ne = (y * T + G) * N - C * (T * A + G * O + W * U), ie = -T * N - G * A - W * O + (F * W + I * G) * U, re = -(F * T + G) * N + I * (T * A + G * O + W * U), At = y - X * se, Vt = C - X * ne, Nt = F - X * ie, $t = I - X * re, Lt = o(At, Vt, Nt, $t);\n if (Lt < B)\n y = At, C = Vt, F = Nt, I = $t, B = Lt;\n else\n break;\n }\n return [y, C, F, I];\n}\nfunction en(r, s) {\n const t = -0.3333333333333333 * r, e = 0.5 * s;\n let n, i = null;\n if ((Math.abs(t) >= 1e102 || Math.abs(e) >= 1e164) && (Math.abs(t) < Math.abs(e) ? i = 1 - t * (t / e) * (t / e) : i = Math.sign(t) * (e / t * (e / t) / t - 1)), i !== null && e == 0)\n r > 0 ? n = 0 : n = Math.sqrt(-r);\n else if (i !== null ? i < 0 : e * e < t * t * t) {\n const a = i !== null ? e / t / Math.sqrt(t) : e / Math.sqrt(t * t * t);\n n = -2 * Math.sqrt(t) * kt(Math.cos(Math.acos(Math.abs(a)) * (1 / 3)), a);\n } else {\n let a;\n i !== null ? Math.abs(t) < Math.abs(e) ? a = -e * (1 + Math.sqrt(i)) : a = -e - kt(Math.sqrt(Math.abs(t)) * t * Math.sqrt(i), e) : a = Math.cbrt(-e - kt(Math.sqrt(e * e - t * t * t), e));\n const u = a == 0 ? 0 : t / a;\n n = a + u;\n }\n let o = n, l = (o * o + r) * o + s;\n if (Math.abs(l) < 222045e-21 * Math.max(o * o * o, r * o, s))\n return o;\n for (let a = 0; a < 8; a++) {\n const u = 3 * o * o + r;\n if (u == 0)\n break;\n const c = o - l / u, g = (c * c + r) * c + s;\n if (g == 0)\n return c;\n if (Math.abs(g) >= Math.abs(l))\n break;\n o = c, l = g;\n }\n return o;\n}\nfunction kt(r, s) {\n const t = Math.abs(r);\n return s < 0 ? -t : t;\n}\nfunction sn(r, s = 1e-9) {\n if (r[r.length - 1] == 0)\n return sn(r.slice(0, -1), s);\n const t = new Hs([\n r.slice(0, -1).reverse().map((n) => -n / r[r.length - 1]),\n ...Array.from({ length: r.length - 2 }, (n, i) => {\n const o = new Array(r.length - 1).fill(0);\n return o[i] = 1, o;\n })\n ]), e = new Ks(t);\n return e.realEigenvalues.filter(\n (n, i) => Math.abs(e.imaginaryEigenvalues[i]) < s\n );\n}\nconst nn = (r, s, t) => [r[0] * (1 - t) + s[0] * t, r[1] * (1 - t) + s[1] * t];\nfunction rn(r) {\n const s = [];\n for (let t = 0; t < r.length - 1; t++)\n s.push([r[t], r[t + 1]]);\n return s;\n}\nfunction de(r, s) {\n const t = rn(r).map(([e, n]) => nn(e, n, s));\n return r.length === 2 ? [t] : [...de(t, s), t];\n}\nclass Et extends xt {\n constructor(t, e, n, i) {\n super(t, e);\n q(this, \"segmentType\", \"CUBIC_BEZIER\");\n q(this, \"firstControlPoint\");\n q(this, \"lastControlPoint\");\n q(this, \"_boundingBox\", null);\n q(this, \"_polynomialCoefficients\", null);\n this.firstControlPoint = n, this.lastControlPoint = i;\n }\n get midPoint() {\n return this.paramPoint(0.5);\n }\n _extremaInDirection(t) {\n const [e, n, i, o] = [\n this.firstPoint[t],\n this.firstControlPoint[t],\n this.lastControlPoint[t],\n this.lastPoint[t]\n ], l = -e + 3 * n - 3 * i + o, h = 2 * e - 4 * n + 2 * i, a = -e + n;\n return qt(a, h, l).filter(\n (u) => u >= -this.precision && u <= 1 + this.precision\n );\n }\n getParametersOfExtrema() {\n return Array.from(\n new Set(this._extremaInDirection(0).concat(this._extremaInDirection(1)))\n );\n }\n get alignedCurve() {\n const t = [-this.firstPoint[0], -this.firstPoint[1]], e = Q(this.lastPoint, this.firstPoint), n = Math.atan2(e[1], e[0]), i = new et();\n return i.translate(t[0], t[1]), i.rotate(-n), this.transform(i);\n }\n getInflexionParameters() {\n const t = this.alignedCurve, [e, n] = t.firstControlPoint, [i, o] = t.lastControlPoint, [l, h] = t.lastPoint, a = i * n, u = l * n, c = e * o, g = l * o, d = -3 * a + 2 * u + 3 * c - g, w = 3 * a - u - 3 * c, p = c - a;\n return qt(p, w, d).filter((P) => P >= 0 && P <= 1);\n }\n get boundingBox() {\n return this._boundingBox === null && (this._boundingBox = ce([\n this.firstPoint,\n ...this.getParametersOfExtrema().map((t) => this.paramPoint(t)),\n this.lastPoint\n ]).grow(this.precision)), this._boundingBox;\n }\n clone() {\n return new Et(\n this.firstPoint,\n this.lastPoint,\n this.firstControlPoint,\n this.lastControlPoint\n );\n }\n reverse() {\n return new Et(\n this.lastPoint,\n this.firstPoint,\n this.lastControlPoint,\n this.firstControlPoint\n );\n }\n isSame(t) {\n return t.segmentType !== \"CUBIC_BEZIER\" ? !1 : Y(this.firstPoint, t.firstPoint) && Y(this.lastPoint, t.lastPoint) && Y(this.firstControlPoint, t.firstControlPoint) && Y(this.lastControlPoint, t.lastControlPoint);\n }\n distanceFrom(t) {\n const n = Ce((i) => Rt(this.paramPoint(i), t), this.precision);\n return n.argMin < -this.precision || n.argMin > 1 + this.precision ? Math.min(\n J(this.firstPoint, t),\n J(this.lastPoint, t)\n ) : Math.sqrt(n.fMin);\n }\n isOnSegment(t) {\n if (!this.boundingBox.contains(t))\n return !1;\n try {\n const e = this.pointToParam(t);\n return e >= -this.precision && e <= 1 + this.precision;\n } catch {\n return !1;\n }\n }\n gradientAt(t) {\n const e = 1 - t, n = e * e, i = t * t, o = 3 * n, l = 6 * e * t, h = 3 * i, a = Q(this.firstControlPoint, this.firstPoint), u = Q(this.lastControlPoint, this.firstControlPoint), c = Q(this.lastPoint, this.lastControlPoint);\n return [\n o * a[0] + l * u[0] + h * c[0],\n o * a[1] + l * u[1] + h * c[1]\n ];\n }\n secondDerivativeAt(t) {\n const e = it(this.firstPoint, this.lastControlPoint), n = nt(this.firstControlPoint, 2), i = it(this.firstControlPoint, this.lastPoint), o = nt(this.lastControlPoint, 2), l = nt(Q(e, n), 6 * (1 - t)), h = nt(Q(i, o), 6 * t);\n return it(l, h);\n }\n tangentAt(t) {\n const e = this.pointToParam(t);\n return H(this.gradientAt(e));\n }\n get tangentAtFirstPoint() {\n return H(Q(this.firstControlPoint, this.firstPoint));\n }\n get tangentAtLastPoint() {\n return H(Q(this.lastPoint, this.lastControlPoint));\n }\n normalAt(t) {\n const e = this.tangentAt(t);\n return tt(e);\n }\n get normalAtFirstPoint() {\n return tt(this.tangentAtFirstPoint);\n }\n get normalAtLastPoint() {\n return tt(this.tangentAtLastPoint);\n }\n splitAtParameters(t, e = null) {\n const n = [...t];\n n.sort((o, l) => o - l);\n let i = {\n originalParam: 0,\n param: 0,\n p0: this.firstPoint,\n p1: this.firstControlPoint,\n p2: this.lastControlPoint\n };\n return n.flatMap((o, l) => {\n if (o - i.originalParam < this.precision)\n return [];\n let h = !1;\n o > 1 - this.precision && (h = !0);\n const a = (o - i.originalParam) / (1 - i.originalParam), u = de(\n [\n i.p0,\n i.p1,\n i.p2,\n this.lastPoint\n ],\n h ? 1 : a\n ), c = h ? this.lastPoint : (e == null ? void 0 : e.get(o)) ?? u[0][0], g = u[1][0], d = u[2][0], w = u[1][1], p = u[2][2], P = new Et(\n i.p0,\n c,\n d,\n g\n );\n return i = {\n param: a,\n originalParam: o,\n p0: c,\n p1: w,\n p2: p\n }, l === n.length - 1 && !h ? [\n P,\n new Et(\n i.p0,\n this.lastPoint,\n i.p1,\n i.p2\n )\n ] : P;\n });\n }\n splitAt(t) {\n let e;\n if (Array.isArray(t) && t.length === 0)\n return [this];\n Array.isArray(t[0]) ? e = t : e = [t];\n const n = e.map((o) => this.pointToParam(o)), i = new Map(\n Kt([n, e])\n );\n return this.splitAtParameters(n, i);\n }\n transform(t) {\n return new Et(\n t.transform(this.firstPoint),\n t.transform(this.lastPoint),\n t.transform(this.firstControlPoint),\n t.transform(this.lastControlPoint)\n );\n }\n paramPoint(t) {\n const e = 1 - t, n = e * e, i = t * t, o = n * e, l = 3 * n * t, h = 3 * e * i, a = i * t;\n return [\n o * this.firstPoint[0] + l * this.firstControlPoint[0] + h * this.lastControlPoint[0] + a * this.lastPoint[0],\n o * this.firstPoint[1] + l * this.firstControlPoint[1] + h * this.lastControlPoint[1] + a * this.lastPoint[1]\n ];\n }\n get polynomialCoefficients() {\n if (this._polynomialCoefficients === null) {\n const t = (e) => {\n const n = this.firstPoint[e], i = this.firstControlPoint[e], o = this.lastControlPoint[e], l = this.lastPoint[e], h = -n + 3 * i - 3 * o + l, a = 3 * n - 6 * i + 3 * o, u = -3 * n + 3 * i;\n return [n, u, a, h];\n };\n this._polynomialCoefficients = [t(0), t(1)];\n }\n return this._polynomialCoefficients;\n }\n paramsAtY(t) {\n const [e, n, i, o] = this.polynomialCoefficients[1];\n return ze(e - t, n, i, o).filter((l) => l >= -this.precision && l <= 1 + this.precision);\n }\n pointToParam(t) {\n if (Y(t, this.firstPoint, this.precision)) return 0;\n if (Y(t, this.lastPoint, this.precision)) return 1;\n const e = this.paramsAtY(t[1]);\n if (e.length === 0)\n throw new Error(\"Point is not on the curve\");\n const n = (o) => Math.abs(this.paramPoint(o)[0] - t[0]) <= this.precision, i = e.find(n);\n if (i === void 0)\n throw new Error(\"Point is not on the curve\");\n return i;\n }\n}\nclass jt extends xt {\n constructor(t, e, n, i, o, l, h = !1, {\n ignoreChecks: a = !1,\n angleUnits: u = \"deg\"\n } = {}) {\n super(t, e);\n q(this, \"segmentType\", \"ELLIPSE_ARC\");\n // I would need to do some more work to improve the precision that I can have\n // on an ellipse with intersection algorithms\n q(this, \"precision\", 1e-6);\n q(this, \"majorRadius\");\n q(this, \"minorRadius\");\n q(this, \"center\");\n q(this, \"tiltAngle\");\n q(this, \"clockwise\");\n q(this, \"_coefficients\", null);\n q(this, \"_boundingBox\");\n q(this, \"_linearExentricity\");\n q(this, \"_exentricity\");\n q(this, \"_focals\");\n q(this, \"_ellipseReferenceFrameTransform\");\n q(this, \"_reverseEllipseReferenceFrameTransform\");\n q(this, \"_rotateFromEllipseReferenceFrame\");\n q(this, \"_firstAngle\");\n q(this, \"_lastAngle\");\n q(this, \"_deltaAngle\");\n this.center = n;\n const c = i >= o;\n this.majorRadius = c ? i : o, this.minorRadius = c ? o : i;\n const g = u === \"deg\" ? l * fe : l;\n if (this.tiltAngle = wt(\n c ? g : g + Math.PI / 2\n ), this.clockwise = h, !a) {\n if (Y(t, e))\n throw new Error(\"Invalid arc, cannot be a full circle\");\n if (!this.isPointOnEllipse(t))\n throw new Error(\n `First point ${Z(\n t\n )} not on the ellipse defined by ${this.info}`\n );\n if (!this.isPointOnEllipse(e))\n throw new Error(\n `Last point ${Z(e)} not on the ellipse defined by ${this.info}`\n );\n if (Math.abs(this.majorRadius - this.minorRadius) < this.precision)\n throw new Error(\n \"Both radii should be different, create an arc instead\"\n );\n }\n }\n get coefficients() {\n if (this._coefficients === null) {\n const [t, e] = this.center, n = this.majorRadius * this.majorRadius, i = this.minorRadius * this.minorRadius, o = Math.cos(this.tiltAngle), l = Math.sin(this.tiltAngle), h = n * l * l + i * o * o, a = 2 * (i - n) * l * o, u = n * o * o + i * l * l;\n this._coefficients = {\n x2: h,\n xy: a,\n y2: u,\n x: -2 * h * t - a * e,\n y: -2 * u * e - a * t,\n c: h * t * t + a * t * e + u * e * e - n * i\n };\n }\n return this._coefficients;\n }\n get info() {\n return `ELLIPSE_ARC(${Z(this.firstPoint)}, ${Z(\n this.lastPoint\n )}, ${Z(this.center)}, ${this.majorRadius}, ${this.minorRadius}, ${this.tiltAngle * Ue}, ${this.clockwise ? \"CW\" : \"CCW\"})`;\n }\n reverse() {\n return new jt(\n this.lastPoint,\n this.firstPoint,\n this.center,\n this.majorRadius,\n this.minorRadius,\n this.tiltAngle,\n !this.clockwise,\n { ignoreChecks: !0, angleUnits: \"rad\" }\n );\n }\n clone() {\n return new jt(\n this.firstPoint,\n this.lastPoint,\n this.center,\n this.majorRadius,\n this.minorRadius,\n this.tiltAngle,\n this.clockwise,\n { ignoreChecks: !0, angleUnits: \"rad\" }\n );\n }\n computeEllipseExtrema() {\n const t = Math.tan(this.tiltAngle), e = this.minorRadius / this.majorRadius, n = -Math.atan(e * t), i = Math.atan(e / t);\n return [n, Math.PI + n, i, Math.PI + i].map((l) => this.thetaToParam(l)).filter((l) => this.isValidParameter(l)).map((l) => this.paramPoint(l));\n }\n get boundingBox() {\n if (this._boundingBox === void 0) {\n const t = this.computeEllipseExtrema(), e = [\n this.firstPoint,\n this.lastPoint,\n ...t\n ];\n this._boundingBox = ce(e).grow(this.precision);\n }\n return this._boundingBox;\n }\n get linearExentricity() {\n return this._linearExentricity === void 0 && (this._linearExentricity = Math.sqrt(\n this.majorRadius * this.majorRadius - this.minorRadius * this.minorRadius\n )), this._linearExentricity;\n }\n get exentricity() {\n return this._exentricity === void 0 && (this._exentricity = this.linearExentricity / this.majorRadius), this._exentricity;\n }\n get focals() {\n if (this._focals === void 0) {\n const t = this.majorAxis;\n this._focals = [\n it(this.center, nt(t, this.linearExentricity)),\n it(this.center, nt(t, -this.linearExentricity))\n ];\n }\n return this._focals;\n }\n get majorAxis() {\n return Tt(1, this.tiltAngle);\n }\n paramPoint(t) {\n const e = this.firstAngle + t * this.deltaAngle * (this.clockwise ? -1 : 1);\n return this.reverseEllipseReferenceFrameTransform.transform([\n this.majorRadius * Math.cos(e),\n this.minorRadius * Math.sin(e)\n ]);\n }\n pointToParam(t) {\n if (!this.isPointOnEllipse(t))\n throw new Error(\n `Point ${Z(t)} not on the ellipse defined by ${this.repr}`\n );\n const e = this.thetaToParam(this.pointTheta(t));\n if (!this.isValidParameter(e))\n throw new Error(\n `Point ${Z(t)} is not on segment ${this.repr}`\n );\n return e;\n }\n get midPoint() {\n return this.paramPoint(0.5);\n }\n isValidParameter(t) {\n return 1 - t >= -this.precision && t >= -this.precision;\n }\n isSame(t) {\n return Y(this.center, t.center) && Math.abs(this.majorRadius - t.majorRadius) < this.precision && Math.abs(this.minorRadius - t.minorRadius) < this.precision && (Math.abs(this.tiltAngle - t.tiltAngle) < this.precision || Math.abs(Math.abs(this.tiltAngle - t.tiltAngle) - Math.PI) < this.precision) && (Y(this.firstPoint, t.firstPoint) && this.clockwise === t.clockwise || Y(this.firstPoint, t.lastPoint) && this.clockwise !== t.clockwise);\n }\n pointTheta(t) {\n const e = this.ellipseReferenceFrameTransform.transform(t), n = Math.atan2(\n e[1] / this.minorRadius,\n e[0] / this.majorRadius\n );\n return wt(n);\n }\n thetaToParam(t) {\n return Zt(this.firstAngle, wt(t), this.clockwise) / this.deltaAngle;\n }\n isPointOnEllipse(t) {\n const [e, n] = this.focals, i = J(t, e), o = J(t, n);\n return Math.abs(2 * this.majorRadius - i - o) < this.precision;\n }\n isOnSegment(t) {\n return this.isPointOnEllipse(t) ? this.isValidParameter(this.thetaToParam(this.pointTheta(t))) : !1;\n }\n distanceFrom(t) {\n let e;\n if (Y(t, this.center) ? e = it(\n this.center,\n nt(tt(this.majorAxis), this.minorRadius)\n ) : e = this.reverseEllipseReferenceFrameTransform.transform(\n ln(\n this.majorRadius,\n this.minorRadius,\n this.ellipseReferenceFrameTransform.transform(t)\n )\n ), this.isValidParameter(this.thetaToParam(this.pointTheta(t))))\n return J(t, e);\n if (Qe(t, this.majorAxis, this.center)) {\n const n = wt(\n 2 * Math.PI - this.pointTheta(t)\n ), i = this.thetaToParam(n);\n if (this.isValidParameter(i))\n return J(t, this.paramPoint(i));\n }\n return Math.min(\n J(t, this.firstPoint),\n J(t, this.lastPoint)\n );\n }\n get ellipseReferenceFrameTransform() {\n return this._ellipseReferenceFrameTransform === void 0 && (this._ellipseReferenceFrameTransform = new et().translate(-this.center[0], -this.center[1]).rotate(-this.tiltAngle)), this._ellipseReferenceFrameTransform;\n }\n get reverseEllipseReferenceFrameTransform() {\n return this._reverseEllipseReferenceFrameTransform === void 0 && (this._reverseEllipseReferenceFrameTransform = new et().rotate(this.tiltAngle).translate(this.center[0], this.center[1])), this._reverseEllipseReferenceFrameTransform;\n }\n get rotateFromEllipseReferenceFrame() {\n return this._rotateFromEllipseReferenceFrame === void 0 && (this._rotateFromEllipseReferenceFrame = new et().rotate(\n this.tiltAngle\n )), this._rotateFromEllipseReferenceFrame;\n }\n get firstAngle() {\n return this._firstAngle === void 0 && (this._firstAngle = this.pointTheta(this.firstPoint)), this._firstAngle;\n }\n get lastAngle() {\n return this._lastAngle === void 0 && (this._lastAngle = this.pointTheta(this.lastPoint)), this._lastAngle;\n }\n get deltaAngle() {\n return this._deltaAngle === void 0 && (this._deltaAngle = Zt(\n this.firstAngle,\n this.lastAngle,\n this.clockwise\n )), this._deltaAngle;\n }\n normalAt(t) {\n const e = this.tangentAt(t);\n return this.clockwise ? tt(e) : Qt(e);\n }\n gradientAt(t) {\n const e = this.firstAngle + t * this.deltaAngle * (this.clockwise ? -1 : 1), n = -this.majorRadius * this.deltaAngle * Math.sin(e), i = this.minorRadius * this.deltaAngle * Math.cos(e), o = this.clockwise ? [-n, -i] : [n, i];\n return this.rotateFromEllipseReferenceFrame.transform(o);\n }\n tangentAt(t) {\n const e = this.pointTheta(t), n = -this.majorRadius * Math.sin(e), i = this.minorRadius * Math.cos(e), o = this.clockwise ? [-n, -i] : [n, i];\n return H(this.rotateFromEllipseReferenceFrame.transform(o));\n }\n get tangentAtFirstPoint() {\n const t = -this.majorRadius * Math.sin(this.firstAngle), e = this.minorRadius * Math.cos(this.firstAngle), n = this.clockwise ? [-t, -e] : [t, e];\n return H(this.rotateFromEllipseReferenceFrame.transform(n));\n }\n get tangentAtLastPoint() {\n const t = -this.majorRadius * Math.sin(this.lastAngle), e = this.minorRadius * Math.cos(this.lastAngle), n = this.clockwise ? [-t, -e] : [t, e];\n return H(this.rotateFromEllipseReferenceFrame.transform(n));\n }\n transform(t) {\n const e = t.transformAngle(this.tiltAngle), n = t.scaleFactor();\n return new jt(\n t.transform(this.firstPoint),\n t.transform(this.lastPoint),\n t.transform(this.center),\n this.majorRadius * n,\n this.minorRadius * n,\n e,\n t.keepsOrientation() ? this.clockwise : !this.clockwise,\n { angleUnits: \"rad\" }\n );\n }\n splitAt(t) {\n let e;\n if (Array.isArray(t) && t.length === 0)\n return [this];\n Array.isArray(t[0]) ? e = t : e = [t];\n const i = [0, 1, ...e.map((h) => this.pointToParam(h))], o = new Map(\n Kt([i, [this.firstPoint, this.lastPoint, ...e]])\n );\n i.sort((h, a) => h - a);\n let l = null;\n return i.flatMap((h, a) => {\n if (a === i.length - 1) return [];\n const u = i[a + 1];\n if (u - h < this.precision)\n return l === null && (l = h), [];\n const c = l === null ? h : l, g = new jt(\n o.get(c) || this.paramPoint(c),\n o.get(u) || this.paramPoint(u),\n this.center,\n this.majorRadius,\n this.minorRadius,\n this.tiltAngle,\n this.clockwise,\n { angleUnits: \"rad\" }\n );\n return l = null, g;\n });\n }\n}\nfunction pn(r, s, t, e, n, i, o) {\n const { center: l, rx: h, ry: a } = on(\n r,\n s,\n t,\n e,\n n * fe,\n !i,\n o\n );\n return Math.abs(h - a) < 1e-9 ? new ct(r, s, l, o) : new jt(r, s, l, h, a, n, o);\n}\nfunction on([r, s], [t, e], n, i, o, l, h) {\n if (n < 0 && (n = -n), i < 0 && (i = -i), n == 0 || i == 0)\n throw Error(\"rx and ry can not be 0\");\n const a = Math.sin(o), u = Math.cos(o), c = (r - t) / 2, g = (s - e) / 2, d = (r + t) / 2, w = (s + e) / 2, p = u * c + a * g, P = u * g - a * c, f = p * p / (n * n) + P * P / (i * i);\n f > 1 && (n = n * Math.sqrt(f), i = i * Math.sqrt(f));\n const M = n * i, E = n * P, R = i * p, v = E * E + R * R;\n if (!v)\n throw Error(\"start point can not be same as end point\");\n let L = Math.sqrt(Math.abs((M * M - v) / v));\n l == h && (L = -L);\n const S = L * E / i, k = -L * R / n, D = u * S - a * k + d, m = a * S + u * k + w;\n return {\n center: [D, m],\n rx: n,\n ry: i\n };\n}\nfunction ln(r, s, t) {\n const e = Math.abs(t[0]), n = Math.abs(t[1]);\n let i = 0.707, o = 0.707;\n const l = r, h = s;\n for (let a = 0; a < 3; a++) {\n const u = l * i, c = h * o, g = (l * l - h * h) * i ** 3 / l, d = (h * h - l * l) * o ** 3 / h, w = u - g, p = c - d, P = e - g, f = n - d, M = Math.hypot(w, p), E = Math.hypot(P, f);\n i = Math.min(1, Math.max(0, (P * M / E + g) / l)), o = Math.min(1, Math.max(0, (f * M / E + d) / h));\n const R = Math.hypot(i, o);\n i /= R, o /= R;\n }\n return [l * i * Math.sign(t[0]), h * o * Math.sign(t[1])];\n}\nclass _t extends xt {\n constructor(t, e, n) {\n super(t, e);\n q(this, \"segmentType\", \"QUADRATIC_BEZIER\");\n q(this, \"controlPoint\");\n q(this, \"_boundingBox\", null);\n q(this, \"_polynomialCoefficients\", null);\n this.controlPoint = n;\n }\n get midPoint() {\n return this.paramPoint(0.5);\n }\n _extremaInDirection(t) {\n const [e, n, i] = [\n this.firstPoint[t],\n this.controlPoint[t],\n this.lastPoint[t]\n ], o = e - 2 * n + i;\n if (!o)\n return [];\n const l = (e - n) / o;\n return l >= -this.precision && l <= 1 + this.precision ? [l] : [];\n }\n getParametersOfExtrema() {\n return Array.from(\n new Set(this._extremaInDirection(0).concat(this._extremaInDirection(1)))\n );\n }\n get boundingBox() {\n return this._boundingBox === null && (this._boundingBox = ce([\n this.firstPoint,\n // There is either one or zero extrema in each direction\n ...this.getParametersOfExtrema().map((t) => this.paramPoint(t)),\n this.lastPoint\n ]).grow(this.precision)), this._boundingBox;\n }\n clone() {\n return new _t(\n this.firstPoint,\n this.lastPoint,\n this.controlPoint\n );\n }\n reverse() {\n return new _t(\n this.lastPoint,\n this.firstPoint,\n this.controlPoint\n );\n }\n isSame(t) {\n return t.segmentType !== \"QUADRATIC_BEZIER\" ? !1 : Y(this.firstPoint, t.firstPoint) && Y(this.lastPoint, t.lastPoint) && Y(this.controlPoint, t.controlPoint);\n }\n distanceFrom(t) {\n const n = Ce((i) => Rt(this.paramPoint(i), t), this.precision);\n return n.argMin < -this.precision || n.argMin > 1 + this.precision ? Math.min(\n J(this.firstPoint, t),\n J(this.lastPoint, t)\n ) : Math.sqrt(n.fMin);\n }\n isOnSegment(t) {\n if (!this.boundingBox.contains(t))\n return !1;\n try {\n const e = this.pointToParam(t);\n return e >= -this.precision && e <= 1 + this.precision;\n } catch {\n return !1;\n }\n }\n gradientAt(t) {\n const e = (n) => {\n const i = this.firstPoint[n], o = this.controlPoint[n], l = this.lastPoint[n];\n return 2 * (t * (i - 2 * o + l) - i + o);\n };\n return [e(0), e(1)];\n }\n secondDerivativeAt(t) {\n return nt(\n Q(\n it(this.firstPoint, this.lastPoint),\n nt(this.controlPoint, 2)\n ),\n 2\n );\n }\n tangentAt(t) {\n const e = this.pointToParam(t);\n return H(this.gradientAt(e));\n }\n get tangentAtFirstPoint() {\n return H(Q(this.controlPoint, this.firstPoint));\n }\n get tangentAtLastPoint() {\n return H(Q(this.lastPoint, this.controlPoint));\n }\n normalAt(t) {\n const e = this.tangentAt(t);\n return tt(e);\n }\n get normalAtFirstPoint() {\n return tt(this.tangentAtFirstPoint);\n }\n get normalAtLastPoint() {\n return tt(this.tangentAtLastPoint);\n }\n splitAtParameters(t, e = null) {\n const n = [...t];\n n.sort((o, l) => o - l);\n let i = {\n originalParam: 0,\n param: 0,\n p0: this.firstPoint,\n p1: this.controlPoint\n };\n return n.flatMap((o, l) => {\n if (o - i.originalParam < this.precision)\n return [];\n let h = !1;\n o > 1 - this.precision && (h = !0);\n const a = (o - i.originalParam) / (1 - i.originalParam), u = de(\n [i.p0, i.p1, this.lastPoint],\n h ? 1 : a\n ), c = h ? this.lastPoint : (e == null ? void 0 : e.get(o)) ?? u[0][0], g = u[1][0], d = u[1][1], w = new _t(\n i.p0,\n c,\n g\n );\n return i = {\n param: a,\n originalParam: o,\n p0: c,\n p1: d\n }, l === n.length - 1 && !h ? [\n w,\n new _t(\n i.p0,\n this.lastPoint,\n i.p1\n )\n ] : w;\n });\n }\n splitAt(t) {\n let e;\n if (Array.isArray(t) && t.length === 0)\n return [this];\n Array.isArray(t[0]) ? e = t : e = [t];\n const n = e.map((o) => this.pointToParam(o)), i = new Map(\n Kt([n, e])\n );\n return this.splitAtParameters(n, i);\n }\n transform(t) {\n return new _t(\n t.transform(this.firstPoint),\n t.transform(this.lastPoint),\n t.transform(this.controlPoint)\n );\n }\n paramPoint(t) {\n const e = 1 - t, n = e * e, i = 2 * e * t, o = t * t;\n return [\n n * this.firstPoint[0] + i * this.controlPoint[0] + o * this.lastPoint[0],\n n * this.firstPoint[1] + i * this.controlPoint[1] + o * this.lastPoint[1]\n ];\n }\n get polynomialCoefficients() {\n if (this._polynomialCoefficients === null) {\n const t = (e) => {\n const n = this.firstPoint[e], i = this.controlPoint[e], o = this.lastPoint[e], l = n - 2 * i + o, h = 2 * (i - n);\n return [n, h, l];\n };\n this._polynomialCoefficients = [t(0), t(1)];\n }\n return this._polynomialCoefficients;\n }\n paramsAtY(t) {\n const [e, n, i] = this.polynomialCoefficients[1];\n return qt(e - t, n, i).filter(\n (o) => o >= -this.precision && o <= 1 + this.precision\n );\n }\n pointToParam(t) {\n const e = this.paramsAtY(t[1]);\n if (e.length === 0)\n throw new Error(\"Point is not on the curve!\");\n const n = (o) => Math.abs(this.paramPoint(o)[0] - t[0]) <= this.precision, i = e.find(n);\n if (i === void 0)\n throw new Error(\"Point is not on the curve\");\n return i;\n }\n}\nexport {\n ct as A,\n mt as B,\n Et as C,\n fe as D,\n jt as E,\n cn as F,\n Ze as G,\n Ie as H,\n Z as I,\n at as L,\n _t as Q,\n Ue as R,\n et as T,\n it as a,\n Q as b,\n St as c,\n Pe as d,\n J as e,\n Qt as f,\n Y as g,\n fn as h,\n pn as i,\n We as j,\n Tt as k,\n Te as l,\n me as m,\n H as n,\n Ye as o,\n tt as p,\n Rt as q,\n Je as r,\n nt as s,\n mn as t,\n un as u,\n sn as v,\n wn as w,\n It as x,\n an as y,\n Kt as z\n};\n//# sourceMappingURL=QuadraticBezier-DCa0WGs0.js.map\n","var nn = Object.defineProperty;\nvar en = (t, n, e) => n in t ? nn(t, n, { enumerable: !0, configurable: !0, writable: !0, value: e }) : t[n] = e;\nvar C = (t, n, e) => en(t, typeof n != \"symbol\" ? n + \"\" : n, e);\nimport { b as k, d as sn, e as Tt, a as z, s as V, n as on, p as Lt, l as U, A as S, g as P, v as qt, E as M, T as rn, w as ln, Q as I, x as $, C as A, c as un, y as cn, L as b, F as zt, G as ut, z as N, H as an, m as fn, q as hn, I as mt, B as pn } from \"./QuadraticBezier-DCa0WGs0.js\";\nfunction dn(t, n) {\n const e = k(n, t.firstPoint), s = sn(e, t.V) / t.squareLength;\n return t.paramPoint(s);\n}\nfunction K(t, n, e) {\n const s = e || t.precision, i = dn(t, n.center), o = Tt(i, n.center);\n if (o > n.radius + s) return [];\n if (Math.abs(o - n.radius) < s) {\n const c = i;\n return t.isOnSegment(c) && n.isOnSegment(c) ? [c] : [];\n }\n const l = [], r = Math.sqrt(\n n.radius * n.radius - o * o\n ), u = t.tangentAtFirstPoint, a = z(i, V(u, r));\n t.isOnSegment(a) && n.isOnSegment(a) && l.push(a);\n const f = z(i, V(u, -r));\n return t.isOnSegment(f) && n.isOnSegment(f) && l.push(f), l;\n}\nconst mn = (t) => {\n const { firstPoint: n, lastPoint: e, center: s, clockwise: i } = t;\n return new S(e, n, s, i, {\n ignoreChecks: !0\n });\n}, gn = (t, n) => {\n if (t.isSame(n))\n return [t];\n const e = U(\n [\n n.isOnSegment(t.firstPoint) ? t.firstPoint : null,\n n.isOnSegment(t.lastPoint) ? t.lastPoint : null,\n t.isOnSegment(n.firstPoint) ? n.firstPoint : null,\n t.isOnSegment(n.lastPoint) ? n.lastPoint : null\n ].filter((s) => s !== null)\n // We sort by the param value of the first arc. This means that the points\n // will be sorted with the same orientation than arc1\n ).sort((s, i) => t.pointToParam(s) - t.pointToParam(i));\n if (e.length === 0) return [];\n if (e.length === 1) return [];\n if (e.length === 2)\n return t.isSame(mn(n)) ? [] : [new S(e[0], e[1], t.center, t.clockwise)];\n if (e.length === 3) {\n const s = P(e[0], n.lastPoint) || P(e[0], n.firstPoint) ? 1 : 0;\n return [\n new S(\n e[0 + s],\n e[1 + s],\n t.center,\n t.clockwise\n )\n ];\n } else if (e.length === 4)\n return [\n new S(e[0], e[1], t.center, t.clockwise),\n new S(e[2], e[3], t.center, t.clockwise)\n ];\n throw new Error(\"Bug in the arc arc overlap algorithm\");\n};\nfunction Dt(t, n, e = !1, s) {\n const i = s || t.precision, o = Tt(t.center, n.center), l = t.radius + n.radius;\n if (o > l + i)\n return [];\n const r = Math.abs(t.radius - n.radius);\n if (o < r - i)\n return [];\n if (o < i)\n return r > i ? [] : e ? gn(t, n) : [];\n const u = on(k(n.center, t.center)), a = o > l - i;\n if (\n // circles are outside each other\n a || // circles are inside each other\n Math.abs(o - r) < i\n ) {\n const g = a || t.radius > n.radius ? 1 : -1, w = z(\n t.center,\n V(u, g * t.radius)\n );\n return t.isOnSegment(w) && n.isOnSegment(w) ? [w] : [];\n }\n const f = t.radius * t.radius / (2 * o) - n.radius * n.radius / (2 * o) + o / 2, c = z(\n t.center,\n V(u, f)\n ), h = Math.sqrt(\n t.radius * t.radius - f * f\n ), p = Lt(u), d = z(c, V(p, h)), m = z(c, V(p, -h)), x = [];\n return t.isOnSegment(d) && n.isOnSegment(d) && x.push(d), t.isOnSegment(m) && n.isOnSegment(m) && x.push(m), x;\n}\nfunction st(t, n, e = 1e-9) {\n const s = t.transform(n.ellipseReferenceFrameTransform), i = s.slope, o = s.yIntercept, l = n.majorRadius * n.majorRadius, r = n.minorRadius * n.minorRadius, u = n.majorRadius * n.minorRadius, a = s.slope * s.slope, f = s.yIntercept * s.yIntercept, c = (g) => g.map(\n (w) => n.reverseEllipseReferenceFrameTransform.transform(w)\n ).filter((w) => t.isOnSegment(w) && n.isOnSegment(w));\n if (!Number.isFinite(i)) {\n const g = s.firstPoint[0];\n if (Math.abs(g) - n.majorRadius > e) return [];\n if (Math.abs(Math.abs(g) - n.majorRadius) < e)\n return c([[g, 0]]);\n const w = n.minorRadius * Math.sqrt(1 - g * g / l), F = [g, w], y = [g, -w];\n return c([F, y]);\n }\n const h = l * a + r - f;\n if (h < -e)\n return [];\n const p = l * a + r;\n if (Math.abs(h) < e) {\n const g = -(l * i * o) / p, w = r * o / p;\n return c([[g, w]]);\n }\n const d = Math.sqrt(h), m = [\n -(l * i * o + u * d) / p,\n (r * o - u * i * d) / p\n ], x = [\n -(l * i * o - u * d) / p,\n (r * o + u * i * d) / p\n ];\n return c([m, x]);\n}\nfunction Rt(t, n) {\n const e = Math.max(t.precision, n.precision), s = t.coefficients, i = s.x2, o = s.xy, l = s.y2, r = s.x, u = s.y, a = s.c, f = n.coefficients, c = f.x2, h = f.xy, p = f.y2, d = f.x, m = f.y, x = f.c, g = {\n z0: a * i * d * d + i * i * x * x - r * i * d * x + c * c * a * a - 2 * i * x * c * a - r * d * c * a + c * r * r * x,\n z1: m * r * r * c - x * d * i * o - 2 * i * x * c * u - a * c * h * r + 2 * d * h * i * a + 2 * m * x * i * i + d * d * i * u - m * d * i * r - 2 * i * m * c * a - a * c * d * o + 2 * a * u * c * c - x * h * i * r - u * c * d * r + 2 * x * o * c * r,\n z2: m * m * i * i + 2 * p * x * i * i - u * c * d * o + x * c * o * o - u * c * h * r - x * h * i * o - 2 * i * m * c * u + 2 * d * h * i * u - p * d * i * r - 2 * i * p * c * a + h * h * i * a + 2 * m * o * c * r + u * u * c * c - l * c * d * r - m * h * i * r + 2 * a * l * c * c - a * c * h * o + p * r * r * c + d * d * i * l - m * d * i * o - 2 * i * x * c * l,\n z3: -2 * i * c * l * m + m * c * o * o + 2 * p * o * c * r - l * c * h * r + h * h * i * u - m * h * i * o - 2 * i * p * c * u - u * c * h * o - p * h * i * r + 2 * m * p * i * i + 2 * u * l * c * c - l * c * d * o + 2 * d * h * i * l - p * d * i * o,\n z4: i * i * p * p - 2 * i * p * c * l + c * c * l * l - o * i * h * p - o * h * c * l + o * o * c * p + l * i * h * h\n }, F = qt(\n [g.z0, g.z1, g.z2, g.z3, g.z4],\n e\n ).flatMap((y) => {\n const R = i * h * y + i * d - c * o * y - c * r;\n if (R)\n return [[-(i * x + i * p * y * y - c * l * y * y + i * m * y - c * u * y - c * a) / R, y]];\n const T = o * y + r, L = -T / (2 * i), j = l * y * y + u * y + a, q = T * T / (4 * i * i) - j / i;\n if (Math.abs(q) < e)\n return [[L, y]];\n if (q > 0) {\n const H = Math.sqrt(q);\n return [[L + H, y], [L - H, y]];\n }\n return [];\n });\n return U(F, e);\n}\nfunction gt(t, n) {\n return Rt(t, n).filter((s) => t.isOnSegment(s) && n.isOnSegment(s));\n}\nconst Pn = (t) => {\n const {\n firstPoint: n,\n lastPoint: e,\n center: s,\n majorRadius: i,\n minorRadius: o,\n tiltAngle: l,\n clockwise: r\n } = t;\n return new M(\n e,\n n,\n s,\n i,\n o,\n l,\n r,\n {\n ignoreChecks: !0,\n angleUnits: \"rad\"\n }\n );\n}, wn = (t, n) => {\n if (t.isSame(n))\n return [t];\n const e = (i, o) => new M(\n i,\n o,\n t.center,\n t.majorRadius,\n t.minorRadius,\n t.tiltAngle,\n t.clockwise,\n { ignoreChecks: !0, angleUnits: \"rad\" }\n ), s = U(\n [\n n.isOnSegment(t.firstPoint) ? t.firstPoint : null,\n n.isOnSegment(t.lastPoint) ? t.lastPoint : null,\n t.isOnSegment(n.firstPoint) ? n.firstPoint : null,\n t.isOnSegment(n.lastPoint) ? n.lastPoint : null\n ].filter((i) => i !== null)\n // We sort by the param value of the first arc. This means that the points\n // will be sorted with the same orientation than arc1\n ).sort((i, o) => t.pointToParam(i) - t.pointToParam(o));\n if (s.length === 0) return [];\n if (s.length === 1) return [];\n if (s.length === 2)\n return t.isSame(Pn(n)) ? [] : [e(s[0], s[1])];\n if (s.length === 3) {\n const i = P(s[0], n.lastPoint) || P(s[0], n.firstPoint) ? 1 : 0;\n return [e(s[0 + i], s[1 + i])];\n } else if (s.length === 4)\n return [e(s[0], s[1]), e(s[2], s[3])];\n throw new Error(\"Bug in the ellipse arc ellipse arc overlap algorithm\");\n};\nfunction xn(t, n, e = !1) {\n const s = Math.max(t.precision, n.precision);\n return P(t.center, n.center) && Math.abs(t.majorRadius - n.majorRadius) < s && Math.abs(t.minorRadius - n.minorRadius) < s && (Math.abs(t.tiltAngle - n.tiltAngle) < s || Math.abs(Math.abs(t.tiltAngle - n.tiltAngle) - Math.PI) < s) ? e ? wn(t, n) : [] : Rt(t, n).filter((l) => t.isOnSegment(l) && n.isOnSegment(l));\n}\nfunction Pt(t, n) {\n const [e, s] = t.firstPoint, [i, o] = t.lastPoint, l = new rn().translate(-e, -s).rotate(-Math.atan2(o - s, i - e)), r = l.clone().inverse(), u = n.transform(l);\n return u.paramsAtY(0).map((a) => u.paramPoint(a)).map((a) => r.transform(a)).filter((a) => t.isOnSegment(a));\n}\nconst Sn = (t, n = 1e-9) => {\n let e = t;\n return Math.abs(t) < n && (e = 0), e.toFixed(-Math.log10(n));\n};\nfunction Vt(t, n = 1e-9) {\n return Array.from(\n new Map(t.map((e) => [Sn(e, n), e])).values()\n );\n}\nconst yn = (t, n) => {\n const [[e, s, i, o], [l, r, u, a]] = n.polynomialCoefficients, f = t.coefficients, c = f.x2, h = f.xy, p = f.y2, d = f.x, m = f.y, x = f.c, g = e * e, w = s * s, F = i * i, y = o * o, R = l * l, T = r * r, L = u * u, j = a * a, q = x + d * e + c * g + m * l + h * e * l + p * R, H = d * s + 2 * c * e * s + h * s * l + m * r + h * e * r + 2 * p * l * r, Wt = c * w + d * i + 2 * c * e * i + h * i * l + h * s * r + p * T + m * u + h * e * u + 2 * p * l * u, Jt = 2 * c * s * i + d * o + 2 * c * e * o + h * o * l + h * i * r + h * s * u + 2 * p * r * u + m * a + h * e * a + 2 * p * l * a, Kt = c * F + 2 * c * s * o + h * o * r + h * i * u + p * L + h * s * a + 2 * p * r * a, Zt = 2 * c * i * o + h * o * u + h * i * a + 2 * p * u * a, tn = c * y + h * o * a + p * j;\n return [q, H, Wt, Jt, Kt, Zt, tn];\n};\nfunction wt(t, n) {\n const e = Math.max(t.precision, n.precision), s = yn(t, n), i = qt(s, e).filter((o) => o >= -n.precision && o <= 1 + n.precision);\n return Vt(i, e).map((o) => n.paramPoint(o)).filter((o) => t.isOnSegment(o));\n}\nconst bn = (t, n) => {\n const [[e, s, i], [o, l, r]] = n.polynomialCoefficients, u = t.coefficients, a = u.x2, f = u.xy, c = u.y2, h = u.x, p = u.y, d = u.c, m = e * e, x = s * s, g = i * i, w = o * o, F = l * l, y = r * r, R = a * m + f * e * o + c * w + h * e + p * o + d, T = 2 * a * e * s + f * e * l + f * s * o + 2 * c * o * l + h * s + p * l, L = 2 * a * e * i + a * x + f * e * r + f * s * l + f * i * o + 2 * c * o * r + c * F + h * i + p * r, j = 2 * a * s * i + f * s * r + f * i * l + 2 * c * l * r, q = a * g + f * i * r + c * y;\n return [R, T, L, j, q];\n};\nfunction xt(t, n) {\n const e = Math.max(t.precision, n.precision), s = bn(t, n), i = ln(...s).filter((o) => o >= -n.precision && o <= 1 + n.precision);\n return Vt(i, e).map((o) => n.paramPoint(o)).filter((o) => t.isOnSegment(o));\n}\nfunction E(t, { firstPoint: n, lastPoint: e }, s = 1e-9) {\n const i = k(e, n);\n return Math.abs(i[0]) < s ? i[1] > 0 ? n[0] - t[0] : t[0] - n[0] : Math.abs(i[1]) < s ? i[0] > 0 ? t[1] - n[1] : n[1] - t[1] : un(i, k(t, n)) / cn(i);\n}\nclass ct {\n constructor(n, e, s, i) {\n this.firstPoint = n, this.lastPoint = e, this.negativeThickness = s, this.positiveThickness = i;\n }\n get width() {\n return this.positiveThickness - this.negativeThickness;\n }\n}\nconst Cn = 3 / 4, Mn = 4 / 9;\nfunction In(t) {\n const n = E(t.firstControlPoint, t), e = E(t.lastControlPoint, t), s = n * e > 0 ? Cn : Mn;\n return new ct(\n t.firstPoint,\n t.lastPoint,\n s * Math.min(0, n, e),\n s * Math.max(0, n, e)\n );\n}\nfunction An(t) {\n const n = E(t.controlPoint, t);\n return new ct(\n t.firstPoint,\n t.lastPoint,\n Math.min(0, n / 2),\n Math.max(0, n / 2)\n );\n}\nfunction En(t) {\n if (t instanceof A)\n return In(t);\n if (t instanceof I)\n return An(t);\n throw new Error(\"Not implemented\");\n}\nfunction Fn(t) {\n const n = t.paramPoint(0.5), e = Lt(k(n, t.firstPoint)), s = z(n, e), i = {\n firstPoint: n,\n lastPoint: s\n }, o = [\n E(t.firstPoint, i),\n E(t.lastPoint, i)\n ];\n return t instanceof A ? o.push(\n E(t.firstControlPoint, i),\n E(t.lastControlPoint, i)\n ) : t instanceof I && o.push(E(t.controlPoint, i)), new ct(\n n,\n s,\n Math.min(...o),\n Math.max(...o)\n );\n}\nfunction St(t, n) {\n const e = [];\n for (let s = 1; s < t.length; s++) {\n const i = t[s];\n if (i[1] === n) {\n e.push(i[0]);\n continue;\n }\n const o = t[s - 1], l = n - o[1], r = n - i[1];\n if (l * r < 0) {\n e.push(\n o[0] + (n - o[1]) * (i[0] - o[0]) / (i[1] - o[1])\n );\n continue;\n }\n }\n return e;\n}\nclass Y {\n constructor(n, e) {\n this.from = n, this.to = e;\n }\n get size() {\n return this.from === \"start\" ? this.to === \"end\" ? 1 : this.to : this.to === \"end\" ? 1 - this.from : Math.abs(this.from - this.to);\n }\n clipCurve(n) {\n return this.from === \"start\" ? this.to === \"end\" ? n : n.splitAtParameters([this.to])[0] : this.to === \"end\" ? n.splitAtParameters([this.from])[1] : n.splitAtParameters([this.from, this.to])[1];\n }\n}\nfunction vn(t, n) {\n if (t instanceof A)\n return new kn([\n E(t.firstPoint, n),\n E(t.firstControlPoint, n),\n E(t.lastControlPoint, n),\n E(t.lastPoint, n)\n ]);\n if (t instanceof I)\n return new Bn([\n E(t.firstPoint, n),\n E(t.controlPoint, n),\n E(t.lastPoint, n)\n ]);\n throw new Error(\"Not implemented\");\n}\nclass Bn {\n constructor(n) {\n C(this, \"topHull\", []);\n C(this, \"bottomHull\", []);\n this.distances = n;\n const [e, s, i] = n, o = [0, e], l = [1 / 2, s], r = [1, i], u = i - e, a = e;\n s - (u * (1 / 2) + a) > 0 ? (this.topHull = [o, l, r], this.bottomHull = [o, r]) : (this.topHull = [o, r], this.bottomHull = [o, l, r]);\n }\n get startDistance() {\n return this.distances[0];\n }\n get endDistance() {\n return this.distances[2];\n }\n}\nclass kn {\n constructor(n) {\n C(this, \"topHull\", []);\n C(this, \"bottomHull\", []);\n this.distances = n;\n const [e, s, i, o] = n, l = [0, e], r = [1 / 3, s], u = [2 / 3, i], a = [1, o], f = o - e, c = e, h = s - (f * (1 / 3) + c), p = i - (f * (2 / 3) + c);\n let d = null, m = null;\n if (h * p < 0)\n d = [l, r, a], m = [l, u, a];\n else {\n const g = h / p;\n g >= 2 ? (d = [l, r, a], m = [l, a]) : g <= 0.5 ? (d = [l, u, a], m = [l, a]) : (d = [l, r, u, a], m = [l, a]);\n }\n h < 0 && ([d, m] = [m, d]), this.topHull = d, this.bottomHull = m;\n }\n get startDistance() {\n return this.distances[0];\n }\n get endDistance() {\n return this.distances[3];\n }\n}\nfunction yt(t, n) {\n const e = vn(n, t), s = St(\n e.topHull,\n t.negativeThickness\n ), i = St(\n e.bottomHull,\n t.positiveThickness\n ), o = e.endDistance >= t.negativeThickness && e.endDistance <= t.positiveThickness;\n if (!s.length && !i.length)\n return o ? new Y(\"start\", \"end\") : null;\n if (s.length === 1 && i.length === 1)\n return new Y(s[0], i[0]);\n if (s.length === 2 && i.length === 2)\n throw new Error(\n \"Bug in the clipping algorithm, unexpected number of crossing points\"\n );\n const l = s.length ? s : i;\n return l.length === 2 ? new Y(l[0], l[1]) : o ? new Y(l[0], \"end\") : new Y(\"start\", l[0]);\n}\nfunction bt(t, n) {\n const e = En(t), s = yt(e, n);\n if (!s)\n return null;\n const i = Fn(t), o = yt(\n i,\n n\n );\n return o ? s.size > o.size ? o.clipCurve(n) : s.clipCurve(n) : null;\n}\nconst W = (t) => t instanceof I ? $(k(t.controlPoint, t.firstPoint)) + $(k(t.controlPoint, t.lastPoint)) : $(k(t.firstControlPoint, t.firstPoint)) + $(k(t.lastControlPoint, t.firstControlPoint)) + $(k(t.lastControlPoint, t.lastPoint));\nfunction D(t, n, e = 1e-9, { maxIterations: s = 100 } = {}) {\n const i = Math.max(e * e, Number.EPSILON * 10);\n let o = t, l = n, r = W(o), u = W(l);\n for (let a = 0; a < s; a++) {\n const f = r > i ? bt(l, o) : o;\n if (!f) return [];\n const c = W(f), h = u > i ? bt(f, l) : l;\n if (!h) return [];\n const p = W(h);\n if (c <= i && p <= i)\n return [\n f.boundingBox.intersection(h.boundingBox).center\n ];\n if (P(f.firstPoint, f.lastPoint) && h.isOnSegment(f.firstPoint))\n return [f.firstPoint];\n if (P(h.firstPoint, h.lastPoint) && f.isOnSegment(h.firstPoint))\n return [h.firstPoint];\n if (c > 0.8 * r && p > 0.8 * u)\n if (c / r > p / u) {\n const [d, m] = f.splitAtParameters([\n 0.5\n ]);\n return U(\n [\n ...D(d, h, e, {\n maxIterations: s - a\n }),\n ...D(m, h, e, {\n maxIterations: s - a\n })\n ],\n e\n );\n } else {\n const [d, m] = h.splitAtParameters([\n 0.5\n ]);\n return U(\n [\n ...D(f, d, e, {\n maxIterations: s - a\n }),\n ...D(f, m, e, {\n maxIterations: s - a\n })\n ],\n e\n );\n }\n o = f, l = h, r = c, u = p;\n }\n throw new Error(\"Bézier clip: Maximum number of iterations reached\");\n}\nfunction On(t, n) {\n const e = [];\n if ([\n [t.firstPoint, n],\n [t.lastPoint, n],\n [n.firstPoint, t],\n [n.lastPoint, t]\n ].forEach(([i, o]) => {\n o.isOnSegment(i) && e.push(i);\n }), e.length < 2)\n return null;\n if (e.length === 2)\n return [t.splitAt(e)[1]];\n if (e.length === 3)\n return P(e[0], t.firstPoint) && P(e[1], t.lastPoint) ? [t] : [n];\n if (e.length === 4)\n return [t];\n}\nfunction _n(t, n, e = !1) {\n const s = Math.max(t.precision, n.precision);\n if (e) {\n const i = On(t, n);\n if (i)\n return i;\n }\n return D(t, n, s);\n}\nfunction Tn(t, n) {\n const e = [];\n if ([\n [t.firstPoint, n],\n [t.lastPoint, n],\n [n.firstPoint, t],\n [n.lastPoint, t]\n ].forEach(([i, o]) => {\n o.isOnSegment(i) && e.push(i);\n }), e.length < 2)\n return null;\n if (e.length === 2)\n return [t.splitAt(e)[1]];\n if (e.length === 3)\n return P(e[0], t.firstPoint) && P(e[1], t.lastPoint) ? [t] : [n];\n if (e.length === 4)\n return [t];\n}\nfunction Ln(t, n, e = !1) {\n const s = Math.max(t.precision, n.precision);\n if (e) {\n const i = Tn(t, n);\n if (i)\n return i;\n }\n return D(t, n, s);\n}\nfunction de(t, n, e) {\n if (t instanceof b && n instanceof b) {\n const s = zt(\n t,\n n,\n !1,\n e\n );\n return s === null ? [] : [s];\n }\n if (t instanceof b && n instanceof S)\n return K(t, n, e);\n if (t instanceof S && n instanceof b)\n return K(n, t, e);\n if (t instanceof S && n instanceof S)\n return Dt(t, n, !1, e);\n throw new Error(\"Not implemented\");\n}\nfunction Z(t, n, e) {\n if (t instanceof b && n instanceof b) {\n const s = zt(\n t,\n n,\n !0,\n e\n );\n return s === null ? { intersections: [], overlaps: [], count: 0 } : s instanceof b ? { intersections: [], overlaps: [s], count: 1 } : { intersections: [s], overlaps: [], count: 1 };\n }\n if (!t.boundingBox.overlaps(n.boundingBox))\n return { intersections: [], overlaps: [], count: 0 };\n if (t instanceof b && n instanceof S) {\n const s = K(t, n, e);\n return { intersections: s, overlaps: [], count: s.length };\n }\n if (t instanceof S && n instanceof b) {\n const s = K(n, t, e);\n return { intersections: s, overlaps: [], count: s.length };\n }\n if (t instanceof S && n instanceof S) {\n const s = Dt(\n t,\n n,\n !0,\n e\n );\n return s.length ? s[0] instanceof S ? {\n intersections: [],\n overlaps: s,\n count: s.length\n } : {\n intersections: s,\n overlaps: [],\n count: s.length\n } : { intersections: [], overlaps: [], count: 0 };\n }\n if (t instanceof b && n instanceof M) {\n const s = st(\n t,\n n,\n e\n );\n return { intersections: s, overlaps: [], count: s.length };\n }\n if (n instanceof b && t instanceof M) {\n const s = st(\n n,\n t,\n e\n );\n return { intersections: s, overlaps: [], count: s.length };\n }\n if (t instanceof S && n instanceof M) {\n const s = gt(t, n);\n return { intersections: s, overlaps: [], count: s.length };\n }\n if (n instanceof S && t instanceof M) {\n const s = gt(n, t);\n return { intersections: s, overlaps: [], count: s.length };\n }\n if (t instanceof M && n instanceof M) {\n const s = xn(\n t,\n n,\n !0\n );\n return s.length ? s[0] instanceof M ? {\n intersections: [],\n overlaps: s,\n count: s.length\n } : {\n intersections: s,\n overlaps: [],\n count: s.length\n } : { intersections: [], overlaps: [], count: 0 };\n }\n if (t instanceof b && (n instanceof A || n instanceof I)) {\n const s = Pt(t, n);\n return { intersections: s, overlaps: [], count: s.length };\n }\n if (n instanceof b && (t instanceof A || t instanceof I)) {\n const s = Pt(n, t);\n return { intersections: s, overlaps: [], count: s.length };\n }\n if ((t instanceof S || t instanceof M) && n instanceof I) {\n const s = xt(t, n);\n return { intersections: s, overlaps: [], count: s.length };\n }\n if ((n instanceof S || n instanceof M) && t instanceof I) {\n const s = xt(n, t);\n return { intersections: s, overlaps: [], count: s.length };\n }\n if ((t instanceof S || t instanceof M) && n instanceof A) {\n const s = wt(t, n);\n return { intersections: s, overlaps: [], count: s.length };\n }\n if ((n instanceof S || n instanceof M) && t instanceof A) {\n const s = wt(n, t);\n return { intersections: s, overlaps: [], count: s.length };\n }\n if (t instanceof I && n instanceof I) {\n const s = Ln(\n t,\n n\n );\n return s.length ? s[0] instanceof I ? {\n intersections: [],\n overlaps: s,\n count: s.length\n } : {\n intersections: s,\n overlaps: [],\n count: s.length\n } : { intersections: [], overlaps: [], count: 0 };\n }\n if (t instanceof I && n instanceof A || n instanceof I && t instanceof A) {\n const s = D(t, n);\n return { intersections: s, overlaps: [], count: s.length };\n }\n if (t instanceof A && n instanceof A) {\n const s = _n(\n t,\n n\n );\n return s.length ? s[0] instanceof A ? {\n intersections: [],\n overlaps: s,\n count: s.length\n } : {\n intersections: s,\n overlaps: [],\n count: s.length\n } : { intersections: [], overlaps: [], count: 0 };\n }\n throw new Error(\"Not implemented\");\n}\nfunction Nt(t) {\n const n = [];\n for (let e = 0; e < t; e++)\n for (let s = 0; s <= e; s++)\n n.push([e, s]);\n return n;\n}\nfunction* it(t) {\n for (const [n, e] of Nt(t.length))\n n !== e && (yield [t[n], t[e]]);\n}\nclass Ut extends ut {\n constructor(e, { ignoreChecks: s = !1 } = {}) {\n super();\n C(this, \"segments\");\n C(this, \"_boundingBox\", null);\n s || jt(e), this.segments = e;\n }\n get repr() {\n return this.segments.map((e) => e.repr).join(`\n`) + `\n`;\n }\n get info() {\n return this.repr;\n }\n get firstPoint() {\n return this.segments[0].firstPoint;\n }\n get lastPoint() {\n return this.segments[this.segments.length - 1].lastPoint;\n }\n get segmentsCount() {\n return this.segments.length;\n }\n onStroke(e) {\n return this.segments.some((s) => s.isOnSegment(e));\n }\n intersects(e) {\n return this.boundingBox.overlaps(e.boundingBox) ? this.segments.some(\n (s) => e.segments.some(\n (i) => Z(s, i).count > 0\n )\n ) : !1;\n }\n overlappingSegments(e) {\n return this.segments.flatMap((s) => e.segments.flatMap((i) => s.boundingBox.overlaps(i.boundingBox) ? Z(s, i).overlaps : []));\n }\n get boundingBox() {\n if (this._boundingBox === null) {\n let e = this.segments[0].boundingBox;\n this.segments.slice(1).forEach((s) => {\n e = e.merge(s.boundingBox);\n }), this._boundingBox = e;\n }\n return this._boundingBox;\n }\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n return this.repr;\n }\n}\nfunction qn(t, n = \"Stroke\") {\n Nt(t.length).forEach(\n ([e, s]) => {\n if (e === s) return;\n const i = t[e], o = t[s], l = Z(i, o), r = Math.max(i.precision, o.precision);\n if (l.count !== 0) {\n if (l.count === 1 && !l.overlaps.length) {\n const u = e - s, a = l.intersections[0];\n if (u === 1 && P(i.firstPoint, a, r) || u === -1 && P(i.lastPoint, a, r) || u === t.length - 1 && P(i.lastPoint, a, r) && P(o.firstPoint, a, r) || -u === t.length - 1 && P(i.firstPoint, a, r) && P(o.lastPoint, a, r))\n return;\n }\n if (!(l.count === 2 && t.length === 2 && (P(\n i.firstPoint,\n l.intersections[0],\n r\n ) && P(\n i.lastPoint,\n l.intersections[1],\n r\n ) || P(\n i.firstPoint,\n l.intersections[1],\n r\n ) && P(\n i.lastPoint,\n l.intersections[0],\n r\n ))))\n throw new Error(\n `${n} segments must not intersect, but segments ${i.info} and ${o.info} do at ${JSON.stringify(\n l.intersections\n )}`\n );\n }\n }\n );\n}\nfunction jt(t, n = \"Stroke\") {\n if (t.length === 0)\n throw new Error(`${n} must have at least one segment`);\n N([t.slice(0, -1), t.slice(1)]).forEach(\n ([e, s]) => {\n if (!P(e.lastPoint, s.firstPoint))\n throw new Error(\n `${n} segments must be connected, but ${e.info} and ${s.info} are not`\n );\n }\n ), qn(t, n);\n}\nfunction Ct(t, n) {\n return !!(t instanceof b && n instanceof b && an(t.V, n.V) || t instanceof S && n instanceof S && P(t.center, n.center) && t.radius - n.radius < t.precision);\n}\nfunction Mt(t, n) {\n if (t instanceof b && n instanceof b)\n return new b(t.firstPoint, n.lastPoint);\n if (t instanceof S && n instanceof S)\n return new S(\n t.firstPoint,\n n.lastPoint,\n t.center,\n t.clockwise\n );\n throw new Error(\"Not implemented\");\n}\nfunction Ht(t) {\n let n = !1;\n const e = [];\n for (const s of t.segments) {\n if (e.length === 0) {\n e.push(s);\n continue;\n }\n const i = e[e.length - 1];\n Ct(i, s) ? (n = !0, e.pop(), e.push(Mt(i, s))) : e.push(s);\n }\n if (P(t.firstPoint, t.lastPoint) && Ct(\n e[0],\n e[e.length - 1]\n )) {\n n = !0;\n const s = e.pop();\n e[0] = Mt(s, e[0]);\n }\n return n ? e : null;\n}\nclass B extends Ut {\n constructor() {\n super(...arguments);\n C(this, \"strokeType\", \"STRAND\");\n }\n reverse() {\n const e = this.segments.map((s) => s.reverse());\n return e.reverse(), new B(e, { ignoreChecks: !0 });\n }\n clone() {\n return new B(\n this.segments.map((e) => e.clone()),\n { ignoreChecks: !0 }\n );\n }\n extend(e) {\n if (!P(this.lastPoint, e.firstPoint))\n throw console.error(this.repr, e.repr), new Error(\"Cannot extend strand: connection point is not the same\");\n return new B([...this.segments, ...e.segments]);\n }\n simplify() {\n const e = Ht(this);\n return e ? new B(e, { ignoreChecks: !0 }) : this;\n }\n transform(e) {\n return new B(\n this.segments.map((s) => s.transform(e)),\n { ignoreChecks: !0 }\n );\n }\n}\nconst zn = (t, n) => {\n const e = fn(n, {\n V: [1, 0],\n firstPoint: t,\n precision: n.precision\n });\n if (e === \"parallel\")\n return 0;\n const { intersectionParam1: s, intersectionParam2: i } = e;\n if (!n.isValidParameter(s) || i <= -n.precision) return 0;\n if (Math.abs(s) < n.precision || Math.abs(s - 1) < n.precision) {\n const [, o] = n.midPoint;\n return t[1] - o < 0 ? 1 : 0;\n }\n return 1;\n};\nclass at {\n constructor(n) {\n C(this, \"_count\", 0);\n C(this, \"segment\");\n this.segment = n;\n }\n update(n, e = !1) {\n !e && !this.segment.isOnSegment(n) || (P(n, this.segment.firstPoint) ? this._count += this.segment.tangentAtFirstPoint[1] > 0 ? 1 : 0 : P(n, this.segment.lastPoint) ? this._count += this.segment.tangentAtLastPoint[1] > 0 ? 0 : 1 : this._count += 1);\n }\n get count() {\n return this._count;\n }\n}\nconst Dn = (t, n) => {\n const e = n.precision, s = Math.abs(t[1] - n.center[1]);\n if (s > n.radius + e) return 0;\n const i = hn(t, n.center), o = n.radius * n.radius, l = e * e;\n if (Math.abs(i - o) < l && n.isOnSegment(t))\n return 0;\n const r = i - o > l;\n if (r && n.center[0] < t[0]) return 0;\n const u = Math.sqrt(\n n.radius * n.radius - s * s\n ), a = new at(n);\n return a.update([n.center[0] + u, t[1]]), r && a.update([n.center[0] - u, t[1]]), a.count;\n}, Rn = (t, n) => {\n const e = n.boundingBox.xMax + n.boundingBox.width / 2, s = new b(t, [e, t[1]]), i = new at(n);\n return st(s, n).forEach((o) => {\n i.update(o, !0);\n }), i.count;\n}, Vn = (t, n) => {\n const e = new at(n);\n return n.paramsAtY(t[1]).map((s) => {\n try {\n return n.paramPoint(s);\n } catch {\n return null;\n }\n }).filter((s) => s !== null).filter((s) => {\n const [i] = s;\n return i >= t[0];\n }).forEach((s) => {\n e.update(s, !0);\n }), e.count;\n};\nfunction Nn(t, n) {\n if (n instanceof b)\n return zn(t, n);\n if (n instanceof S)\n return Dn(t, n);\n if (n instanceof M)\n return Rn(t, n);\n if (n instanceof A || n instanceof I)\n return Vn(t, n);\n throw new Error(\"Not implemented\");\n}\nclass _ extends Ut {\n constructor(e, { ignoreChecks: s = !1 } = {}) {\n super(e, { ignoreChecks: !0 });\n C(this, \"strokeType\", \"LOOP\");\n C(this, \"_clockwise\", null);\n s || Un(e);\n }\n get clockwise() {\n if (this._clockwise === null) {\n const e = this.segments.flatMap((i) => i instanceof b ? [i.firstPoint] : [i.firstPoint, i.paramPoint(0.5)]), s = e.map((i, o) => {\n const l = e[(o + 1) % e.length];\n return (l[0] - i[0]) * (l[1] + i[1]);\n }).reduce((i, o) => i + o, 0);\n this._clockwise = s > 0;\n }\n return this._clockwise;\n }\n clone() {\n return new _(\n this.segments.map((e) => e.clone()),\n { ignoreChecks: !0 }\n );\n }\n reverse() {\n const e = this.segments.map((s) => s.reverse());\n return e.reverse(), new _(e, { ignoreChecks: !0 });\n }\n transform(e) {\n return new _(\n this.segments.map((s) => s.transform(e)),\n { ignoreChecks: !0 }\n );\n }\n contains(e, { strokeIsInside: s = !1 } = {}) {\n return this.onStroke(e) ? s : this.boundingBox.contains(e) ? this.segments.reduce((o, l) => o + Nn(e, l), 0) % 2 === 1 : !1;\n }\n simplify() {\n const e = Ht(this);\n return e ? new _(e, { ignoreChecks: !0 }) : this;\n }\n}\nfunction Un(t) {\n if (jt(t, \"Loop\"), !P(t[0].firstPoint, t[t.length - 1].lastPoint))\n throw new Error(\"Loop segment must be closed\");\n}\nconst jn = [\n b,\n S,\n M,\n I,\n A\n];\nfunction Hn(t) {\n return jn.some((n) => t instanceof n);\n}\nfunction $t(t) {\n if (t instanceof b)\n return {\n type: t.segmentType,\n firstPoint: t.firstPoint,\n lastPoint: t.lastPoint\n };\n if (t instanceof S)\n return {\n type: t.segmentType,\n firstPoint: t.firstPoint,\n lastPoint: t.lastPoint,\n center: t.center,\n clockwise: t.clockwise\n };\n if (t instanceof M)\n return {\n type: t.segmentType,\n firstPoint: t.firstPoint,\n lastPoint: t.lastPoint,\n center: t.center,\n clockwise: t.clockwise,\n majorRadius: t.majorRadius,\n minorRadius: t.minorRadius,\n tiltAngle: t.tiltAngle\n };\n if (t instanceof I)\n return {\n type: t.segmentType,\n firstPoint: t.firstPoint,\n lastPoint: t.lastPoint,\n controlPoint: t.controlPoint\n };\n if (t instanceof A)\n return {\n type: t.segmentType,\n firstPoint: t.firstPoint,\n lastPoint: t.lastPoint,\n firstControlPoint: t.firstControlPoint,\n lastControlPoint: t.lastControlPoint\n };\n throw new Error(\"Unknown segment type\");\n}\nfunction ot(t) {\n return {\n type: \"LOOP\",\n segments: t.segments.map($t)\n };\n}\nfunction Yt(t) {\n return {\n type: \"FIGURE\",\n contour: ot(t.contour),\n holes: t.holes.map(ot)\n };\n}\nfunction $n(t) {\n return {\n type: \"DIAGRAM\",\n figures: t.figures.map(Yt)\n };\n}\nfunction It(t) {\n if (t instanceof O)\n return $n(t);\n if (t instanceof v)\n return Yt(t);\n if (t instanceof _)\n return ot(t);\n if (Hn(t))\n return $t(t);\n throw new Error(\"Unknown shape type\");\n}\nclass Yn {\n constructor() {\n this.ids = [], this.values = [], this.length = 0;\n }\n clear() {\n this.length = 0;\n }\n push(n, e) {\n let s = this.length++;\n for (; s > 0; ) {\n const i = s - 1 >> 1, o = this.values[i];\n if (e >= o) break;\n this.ids[s] = this.ids[i], this.values[s] = o, s = i;\n }\n this.ids[s] = n, this.values[s] = e;\n }\n pop() {\n if (this.length === 0) return;\n const n = this.ids[0];\n if (this.length--, this.length > 0) {\n const e = this.ids[0] = this.ids[this.length], s = this.values[0] = this.values[this.length], i = this.length >> 1;\n let o = 0;\n for (; o < i; ) {\n let l = (o << 1) + 1;\n const r = l + 1;\n let u = this.ids[l], a = this.values[l];\n const f = this.values[r];\n if (r < this.length && f < a && (l = r, u = this.ids[r], a = f), a >= s) break;\n this.ids[o] = u, this.values[o] = a, o = l;\n }\n this.ids[o] = e, this.values[o] = s;\n }\n return n;\n }\n peek() {\n if (this.length !== 0)\n return this.ids[0];\n }\n peekValue() {\n if (this.length !== 0)\n return this.values[0];\n }\n shrink() {\n this.ids.length = this.values.length = this.length;\n }\n}\nconst At = [Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array], et = 3;\nclass ft {\n /**\n * Recreate a Flatbush index from raw `ArrayBuffer` or `SharedArrayBuffer` data.\n * @param {ArrayBuffer | SharedArrayBuffer} data\n * @param {number} [byteOffset=0] byte offset to the start of the Flatbush buffer in the referenced ArrayBuffer.\n * @returns {Flatbush} index\n */\n static from(n, e = 0) {\n if (e % 8 !== 0)\n throw new Error(\"byteOffset must be 8-byte aligned.\");\n if (!n || n.byteLength === void 0 || n.buffer)\n throw new Error(\"Data must be an instance of ArrayBuffer or SharedArrayBuffer.\");\n const [s, i] = new Uint8Array(n, e + 0, 2);\n if (s !== 251)\n throw new Error(\"Data does not appear to be in a Flatbush format.\");\n const o = i >> 4;\n if (o !== et)\n throw new Error(`Got v${o} data when expected v${et}.`);\n const l = At[i & 15];\n if (!l)\n throw new Error(\"Unrecognized array type.\");\n const [r] = new Uint16Array(n, e + 2, 1), [u] = new Uint32Array(n, e + 4, 1);\n return new ft(u, r, l, void 0, n, e);\n }\n /**\n * Create a Flatbush index that will hold a given number of items.\n * @param {number} numItems\n * @param {number} [nodeSize=16] Size of the tree node (16 by default).\n * @param {TypedArrayConstructor} [ArrayType=Float64Array] The array type used for coordinates storage (`Float64Array` by default).\n * @param {ArrayBufferConstructor | SharedArrayBufferConstructor} [ArrayBufferType=ArrayBuffer] The array buffer type used to store data (`ArrayBuffer` by default).\n * @param {ArrayBuffer | SharedArrayBuffer} [data] (Only used internally)\n * @param {number} [byteOffset=0] (Only used internally)\n */\n constructor(n, e = 16, s = Float64Array, i = ArrayBuffer, o, l = 0) {\n if (n === void 0) throw new Error(\"Missing required argument: numItems.\");\n if (isNaN(n) || n <= 0) throw new Error(`Unexpected numItems value: ${n}.`);\n this.numItems = +n, this.nodeSize = Math.min(Math.max(+e, 2), 65535), this.byteOffset = l;\n let r = n, u = r;\n this._levelBounds = [r * 4];\n do\n r = Math.ceil(r / this.nodeSize), u += r, this._levelBounds.push(u * 4);\n while (r !== 1);\n this.ArrayType = s, this.IndexArrayType = u < 16384 ? Uint16Array : Uint32Array;\n const a = At.indexOf(this.ArrayType), f = u * 4 * this.ArrayType.BYTES_PER_ELEMENT;\n if (a < 0)\n throw new Error(`Unexpected typed array class: ${s}.`);\n o && o.byteLength !== void 0 && !o.buffer ? (this.data = o, this._boxes = new this.ArrayType(this.data, l + 8, u * 4), this._indices = new this.IndexArrayType(this.data, l + 8 + f, u), this._pos = u * 4, this.minX = this._boxes[this._pos - 4], this.minY = this._boxes[this._pos - 3], this.maxX = this._boxes[this._pos - 2], this.maxY = this._boxes[this._pos - 1]) : (this.data = new i(8 + f + u * this.IndexArrayType.BYTES_PER_ELEMENT), this._boxes = new this.ArrayType(this.data, 8, u * 4), this._indices = new this.IndexArrayType(this.data, 8 + f, u), this._pos = 0, this.minX = 1 / 0, this.minY = 1 / 0, this.maxX = -1 / 0, this.maxY = -1 / 0, new Uint8Array(this.data, 0, 2).set([251, (et << 4) + a]), new Uint16Array(this.data, 2, 1)[0] = e, new Uint32Array(this.data, 4, 1)[0] = n), this._queue = new Yn();\n }\n /**\n * Add a given rectangle to the index.\n * @param {number} minX\n * @param {number} minY\n * @param {number} maxX\n * @param {number} maxY\n * @returns {number} A zero-based, incremental number that represents the newly added rectangle.\n */\n add(n, e, s = n, i = e) {\n const o = this._pos >> 2, l = this._boxes;\n return this._indices[o] = o, l[this._pos++] = n, l[this._pos++] = e, l[this._pos++] = s, l[this._pos++] = i, n < this.minX && (this.minX = n), e < this.minY && (this.minY = e), s > this.maxX && (this.maxX = s), i > this.maxY && (this.maxY = i), o;\n }\n /** Perform indexing of the added rectangles. */\n finish() {\n if (this._pos >> 2 !== this.numItems)\n throw new Error(`Added ${this._pos >> 2} items when expected ${this.numItems}.`);\n const n = this._boxes;\n if (this.numItems <= this.nodeSize) {\n n[this._pos++] = this.minX, n[this._pos++] = this.minY, n[this._pos++] = this.maxX, n[this._pos++] = this.maxY;\n return;\n }\n const e = this.maxX - this.minX || 1, s = this.maxY - this.minY || 1, i = new Uint32Array(this.numItems), o = 65535;\n for (let l = 0, r = 0; l < this.numItems; l++) {\n const u = n[r++], a = n[r++], f = n[r++], c = n[r++], h = Math.floor(o * ((u + f) / 2 - this.minX) / e), p = Math.floor(o * ((a + c) / 2 - this.minY) / s);\n i[l] = Gn(h, p);\n }\n rt(i, n, this._indices, 0, this.numItems - 1, this.nodeSize);\n for (let l = 0, r = 0; l < this._levelBounds.length - 1; l++) {\n const u = this._levelBounds[l];\n for (; r < u; ) {\n const a = r;\n let f = n[r++], c = n[r++], h = n[r++], p = n[r++];\n for (let d = 1; d < this.nodeSize && r < u; d++)\n f = Math.min(f, n[r++]), c = Math.min(c, n[r++]), h = Math.max(h, n[r++]), p = Math.max(p, n[r++]);\n this._indices[this._pos >> 2] = a, n[this._pos++] = f, n[this._pos++] = c, n[this._pos++] = h, n[this._pos++] = p;\n }\n }\n }\n /**\n * Search the index by a bounding box.\n * @param {number} minX\n * @param {number} minY\n * @param {number} maxX\n * @param {number} maxY\n * @param {(index: number) => boolean} [filterFn] An optional function for filtering the results.\n * @returns {number[]} An array of indices of items intersecting or touching the given bounding box.\n */\n search(n, e, s, i, o) {\n if (this._pos !== this._boxes.length)\n throw new Error(\"Data not yet indexed - call index.finish().\");\n let l = this._boxes.length - 4;\n const r = [], u = [];\n for (; l !== void 0; ) {\n const a = Math.min(l + this.nodeSize * 4, Ft(l, this._levelBounds));\n for (let f = l; f < a; f += 4) {\n if (s < this._boxes[f] || i < this._boxes[f + 1] || n > this._boxes[f + 2] || e > this._boxes[f + 3]) continue;\n const c = this._indices[f >> 2] | 0;\n l >= this.numItems * 4 ? r.push(c) : (o === void 0 || o(c)) && u.push(c);\n }\n l = r.pop();\n }\n return u;\n }\n /**\n * Search items in order of distance from the given point.\n * @param {number} x\n * @param {number} y\n * @param {number} [maxResults=Infinity]\n * @param {number} [maxDistance=Infinity]\n * @param {(index: number) => boolean} [filterFn] An optional function for filtering the results.\n * @returns {number[]} An array of indices of items found.\n */\n neighbors(n, e, s = 1 / 0, i = 1 / 0, o) {\n if (this._pos !== this._boxes.length)\n throw new Error(\"Data not yet indexed - call index.finish().\");\n let l = this._boxes.length - 4;\n const r = this._queue, u = [], a = i * i;\n t: for (; l !== void 0; ) {\n const f = Math.min(l + this.nodeSize * 4, Ft(l, this._levelBounds));\n for (let c = l; c < f; c += 4) {\n const h = this._indices[c >> 2] | 0, p = Et(n, this._boxes[c], this._boxes[c + 2]), d = Et(e, this._boxes[c + 1], this._boxes[c + 3]), m = p * p + d * d;\n m > a || (l >= this.numItems * 4 ? r.push(h << 1, m) : (o === void 0 || o(h)) && r.push((h << 1) + 1, m));\n }\n for (; r.length && r.peek() & 1; )\n if (r.peekValue() > a || (u.push(r.pop() >> 1), u.length === s)) break t;\n l = r.length ? r.pop() >> 1 : void 0;\n }\n return r.clear(), u;\n }\n}\nfunction Et(t, n, e) {\n return t < n ? n - t : t <= e ? 0 : t - e;\n}\nfunction Ft(t, n) {\n let e = 0, s = n.length - 1;\n for (; e < s; ) {\n const i = e + s >> 1;\n n[i] > t ? s = i : e = i + 1;\n }\n return n[e];\n}\nfunction rt(t, n, e, s, i, o) {\n if (Math.floor(s / o) >= Math.floor(i / o)) return;\n const l = t[s + i >> 1];\n let r = s - 1, u = i + 1;\n for (; ; ) {\n do\n r++;\n while (t[r] < l);\n do\n u--;\n while (t[u] > l);\n if (r >= u) break;\n Xn(t, n, e, r, u);\n }\n rt(t, n, e, s, u, o), rt(t, n, e, u + 1, i, o);\n}\nfunction Xn(t, n, e, s, i) {\n const o = t[s];\n t[s] = t[i], t[i] = o;\n const l = 4 * s, r = 4 * i, u = n[l], a = n[l + 1], f = n[l + 2], c = n[l + 3];\n n[l] = n[r], n[l + 1] = n[r + 1], n[l + 2] = n[r + 2], n[l + 3] = n[r + 3], n[r] = u, n[r + 1] = a, n[r + 2] = f, n[r + 3] = c;\n const h = e[s];\n e[s] = e[i], e[i] = h;\n}\nfunction Gn(t, n) {\n let e = t ^ n, s = 65535 ^ e, i = 65535 ^ (t | n), o = t & (n ^ 65535), l = e | s >> 1, r = e >> 1 ^ e, u = i >> 1 ^ s & o >> 1 ^ i, a = e & i >> 1 ^ o >> 1 ^ o;\n e = l, s = r, i = u, o = a, l = e & e >> 2 ^ s & s >> 2, r = e & s >> 2 ^ s & (e ^ s) >> 2, u ^= e & i >> 2 ^ s & o >> 2, a ^= s & i >> 2 ^ (e ^ s) & o >> 2, e = l, s = r, i = u, o = a, l = e & e >> 4 ^ s & s >> 4, r = e & s >> 4 ^ s & (e ^ s) >> 4, u ^= e & i >> 4 ^ s & o >> 4, a ^= s & i >> 4 ^ (e ^ s) & o >> 4, e = l, s = r, i = u, o = a, u ^= e & i >> 8 ^ s & o >> 8, a ^= s & i >> 8 ^ (e ^ s) & o >> 8, e = u ^ u >> 1, s = a ^ a >> 1;\n let f = t ^ n, c = s | 65535 ^ (f | e);\n return f = (f | f << 8) & 16711935, f = (f | f << 4) & 252645135, f = (f | f << 2) & 858993459, f = (f | f << 1) & 1431655765, c = (c | c << 8) & 16711935, c = (c | c << 4) & 252645135, c = (c | c << 2) & 858993459, c = (c | c << 1) & 1431655765, (c << 1 | f) >>> 0;\n}\nfunction Xt(t, n = 1e-7) {\n if (t.length === 0) return [];\n if (t.length === 1) return [t];\n const e = new ft(t.length);\n t.forEach((o) => {\n const [l, r] = o.firstPoint;\n e.add(l - n, r - n, l + n, r + n);\n }), e.finish();\n const s = [], i = /* @__PURE__ */ new Set();\n return t.forEach((o, l) => {\n if (i.has(l)) return;\n const r = [o];\n let u = l;\n i.add(l);\n let a = t.length;\n for (; ; ) {\n if (a-- < 0)\n throw new Error(\"Infinite loop detected\");\n const f = r[r.length - 1].lastPoint, [c, h] = f, p = e.search(\n c - n,\n h - n,\n c + n,\n h + n\n ), d = (w) => Math.abs((u - w) % t.length), m = p.filter((w) => !i.has(w)).map((w) => [\n t[w],\n w,\n d(w)\n ]).sort(([, , w], [, , F]) => d(w) - d(F));\n if (m.length === 0) {\n s.push(r);\n break;\n }\n const [x, g] = m[0];\n r.push(x), i.add(g), u = g;\n }\n }), s;\n}\nclass v extends ut {\n constructor(e, s = [], { ignoreChecks: i = !1 } = {}) {\n super();\n C(this, \"contour\");\n C(this, \"holes\");\n i || Qn(e, s), this.contour = e, this.holes = s;\n }\n get boundingBox() {\n return this.contour.boundingBox;\n }\n get isFull() {\n return this.holes.length === 0;\n }\n get allLoops() {\n return [this.contour, ...this.holes];\n }\n clone() {\n return new v(\n this.contour.clone(),\n this.holes.map((e) => e.clone())\n );\n }\n transform(e) {\n return new v(\n this.contour.transform(e),\n this.holes.map((s) => s.transform(e))\n );\n }\n contains(e, { strokeIsInside: s = !1 } = {}) {\n return this.contour.contains(e, { strokeIsInside: s }) && !this.holes.some((i) => i.contains(e, { strokeIsInside: s }));\n }\n intersects(e) {\n return this.allLoops.some(\n (s) => e.allLoops.some((i) => s.intersects(i))\n );\n }\n overlappingStrands(e) {\n const s = e instanceof v ? e.allLoops : [e], i = this.allLoops.flatMap((o) => s.flatMap((l) => o.overlappingSegments(l)));\n return Xt(i).map((o) => new B(o));\n }\n}\nfunction Qn(t, n = []) {\n if (!t) throw new Error(\"Figure must have a contour\");\n for (const [e, s] of it([t, ...n]))\n if (e.intersects(s))\n throw new Error(\"Loops in a figure must not intersect\");\n if (n.some(\n (e) => !t.contains(e.firstPoint) && !t.onStroke(e.firstPoint)\n ))\n throw new Error(\"Holes must be inside the contour\");\n for (const [e, s] of it(n))\n if (e.contains(s.firstPoint))\n throw console.error(It(e), It(s)), new Error(\"Holes must not be inside other holes\");\n}\nconst J = (t, n, e = 1e-7) => Math.abs(t - n) <= e, Wn = (t, n) => {\n const e = t.boundingBox, s = n.boundingBox;\n return J(e.xMin, s.xMin) && J(e.yMin, s.yMin) && J(e.xMax, s.xMax) && J(e.yMax, s.yMax);\n}, Jn = (t, n) => {\n if (t.segmentsCount !== n.segmentsCount || !Wn(t, n)) return !1;\n const e = t.segments, s = n.segments, i = e.length, o = (l, r) => {\n for (let u = 0; u < i; u += 1) {\n const a = (l + r * u + i) % i;\n if (!e[u].isSame(s[a])) return !1;\n }\n return !0;\n };\n for (let l = 0; l < i; l += 1)\n if (e[0].isSame(s[l]) && (o(l, 1) || o(l, -1)))\n return !0;\n return !1;\n}, Kn = (t) => {\n const n = [];\n return t.forEach((e) => {\n n.some((s) => Jn(e, s)) || n.push(e);\n }), n;\n}, Zn = (t) => {\n const n = t.map((i, o) => t.slice(o + 1).map((l, r) => [r + o + 1, l]).filter(([, l]) => i.boundingBox.overlaps(l.boundingBox)).map(([l]) => l)), e = [], s = Array(n.length);\n return n.forEach((i, o) => {\n let l = s[o];\n l || (l = [], e.push(l)), l.push(t[o]), i.length && i.forEach((r) => {\n s[r] = l;\n });\n }), e;\n}, Gt = (t) => t.map((n, e) => {\n const i = n.segments[0].midPoint, o = t.filter((l, r) => e === r ? !1 : l.contains(i));\n return {\n loop: n,\n isIn: o\n };\n}), te = (t, n) => t.flatMap(({ loop: e }) => ht(\n n.filter(\n ({ loop: s, isIn: i }) => s === e || i.indexOf(e) !== -1\n )\n)), ne = (t, n) => {\n const e = n.filter(({ isIn: i }) => i.length <= 1), s = ht(\n Gt(t.map(({ loop: i }) => i))\n );\n return [e, ...s];\n}, ht = (t) => {\n if (!t.length) return [];\n const n = t.filter(({ isIn: s }) => !s.length), e = t.filter(({ isIn: s }) => s.length > 1);\n return n.length === 1 && e.length === 0 ? [t] : n.length > 1 ? te(n, t) : ne(e, t);\n};\nfunction X(t) {\n const n = Kn(t);\n return Zn(n).map(Gt).flatMap(ht).map((s) => {\n if (s.length === 1) return new v(s[0].loop);\n s.sort((l, r) => l.isIn.length - r.isIn.length);\n const [i, ...o] = s.map(({ loop: l }) => l);\n return new v(i, o);\n });\n}\nfunction ee(t, n) {\n const e = [];\n for (const s of t)\n for (const i of n)\n e.push([s, i]);\n return e;\n}\nfunction* vt(t, n, e) {\n const s = (r) => n.some((u) => P(u, r.lastPoint)), i = (r, u) => r.segmentType !== u.segmentType || !u.isOnSegment(r.firstPoint) || !u.isOnSegment(r.lastPoint) ? !1 : r.segmentType !== \"LINE\" ? u.isOnSegment(r.midPoint) : !0, o = (r) => e.some((u) => r.isSame(u) || i(r, u));\n let l = [];\n for (const r of t)\n s(r) ? (l.push(r), yield new B(l, { ignoreChecks: !0 }), l = []) : o(r) ? (l.length && (yield new B(l, { ignoreChecks: !0 }), l = []), yield new B([r], { ignoreChecks: !0 })) : l.push(r);\n l.length && (yield new B(l, { ignoreChecks: !0 }));\n}\nconst Bt = (t, n) => {\n const e = t.findIndex((o) => P(n, o.firstPoint)), s = t.slice(0, e);\n return t.slice(e).concat(s);\n}, kt = (t, n) => {\n let e = t;\n const s = (r) => P(r.firstPoint, n.firstPoint) && P(r.lastPoint, n.lastPoint);\n let i = t.findIndex(s);\n if (i === -1) {\n const r = t.map((u) => u.reverse());\n if (r.reverse(), i = r.findIndex(s), i === -1)\n throw console.error(\n r.map((u) => u.repr),\n n.repr\n ), new Error(\"Failed to rotate to segment start\");\n e = r;\n }\n const o = e.slice(0, i);\n return e.slice(i).concat(o);\n};\nfunction se(t, n, e) {\n return t.filter((s) => {\n const i = n.filter((r) => P(r.firstPoint, s) || P(r.lastPoint, s));\n if (i.length % 2)\n throw new Error(\"Bug in the intersection algo on non crossing point\");\n const o = i.map((r) => e.contains(r.midPoint));\n return !(o.every((r) => r) || !o.some((r) => r));\n });\n}\nfunction ie(t, n, e, s = !1) {\n let i = [];\n const o = [], l = new Array(t.segments.length).fill(0).map(() => []), r = new Array(n.segments.length).fill(0).map(() => []);\n if (t.segments.forEach((p, d) => {\n n.segments.forEach((m, x) => {\n const { intersections: g, overlaps: w } = Z(\n p,\n m,\n e\n );\n i.push(...g), l[d].push(...g), r[x].push(...g), o.push(...w);\n const F = w.flatMap((y) => [\n y.firstPoint,\n y.lastPoint\n ]);\n i.push(...F), l[d].push(...F), r[x].push(...F);\n });\n }), i = U(i, e), !i.length || i.length === 1) return null;\n const u = ([p, d]) => d.length ? p.splitAt(d) : [p];\n let a = N([t.segments, l]).flatMap(u), f = N([n.segments, r]).flatMap(u);\n if (i = se(\n i,\n a,\n n\n ), !i.length && !o.length) return null;\n if (o.length) {\n const p = o[0];\n a = kt(\n a,\n p\n ), f = kt(\n f,\n p\n );\n } else {\n const p = i[0];\n a = Bt(a, p), f = Bt(f, p);\n }\n let c = Array.from(\n vt(\n a,\n i,\n o\n )\n ), h = Array.from(\n vt(\n f,\n i,\n o\n )\n );\n return (!P(\n h[0].lastPoint,\n c[0].lastPoint\n ) || o.length > 0 && h[0].segmentsCount !== 1) && (h = h.map((p) => p.reverse()).reverse(), P(h[0].lastPoint, c[0].lastPoint) || (c = c.map((p) => p.reverse()).reverse())), N([c, h]).map(([p, d]) => {\n if (s) {\n if (((x) => x.segments.every(\n (g) => o.some(\n (w) => g.isSame(w) || g.segmentType === w.segmentType && w.isOnSegment(g.firstPoint) && w.isOnSegment(g.lastPoint) && (g.segmentType === \"LINE\" || w.isOnSegment(g.midPoint))\n )\n ))(p))\n return [p, \"same\"];\n } else if (p.segmentsCount === 1 && o.some((m) => p.segments[0].isSame(m)))\n return [p, \"same\"];\n return [p, d];\n });\n}\nfunction Ot(t) {\n let n = t[0];\n for (const e of t.slice(1))\n n = n.extend(e);\n if (!P(n.firstPoint, n.lastPoint))\n throw console.error(\n mt(n.firstPoint),\n mt(n.lastPoint)\n ), new Error(\"Bug in the intersection algo on non closing strand\");\n return new _(n.segments);\n}\nfunction oe(t, n) {\n const e = N([\n n.slice(0, -1),\n n.slice(1)\n ]).map(([i, o]) => Ot(t.slice(i, o)));\n let s = t.slice(\n n[n.length - 1]\n );\n return n[0] !== 0 && (s = s.concat(t.slice(0, n[0]))), e.push(Ot(s)), e;\n}\nfunction re(t) {\n if (!t.length) return [];\n const n = t.map((i) => i.firstPoint);\n let e = t.map((i) => i.lastPoint);\n e = e.slice(-1).concat(e.slice(0, -1));\n const s = N([n, e]).flatMap(\n ([i, o], l) => P(i, o) ? [] : l\n );\n try {\n return oe(t, s);\n } catch {\n return Xt(t.flatMap((o) => o.segments)).filter((o) => o.length > 1).filter((o) => P(o[0].firstPoint, o.at(-1).lastPoint)).map((o) => new _(o));\n }\n}\nconst _t = (t, n) => {\n if (t.length === 0) return [n];\n const e = t.at(-1);\n return P(e.lastPoint, n.firstPoint) ? t.slice(0, -1).concat([e.extend(n)]) : P(e.lastPoint, n.lastPoint) ? t.slice(0, -1).concat([e.extend(n.reverse())]) : t.concat([n]);\n}, le = (t, n) => t.length === 0 ? [n] : P(t[0].firstPoint, n.lastPoint) ? [n.extend(t[0])].concat(t.slice(1)) : [n].concat(t);\nfunction pt(t, n, {\n firstInside: e,\n secondInside: s,\n firstBoundaryInside: i = !1,\n secondBoundaryInside: o = !1\n}) {\n const l = ie(\n t,\n n,\n void 0,\n i || o\n );\n if (!l) {\n const f = t.segments[0].midPoint, c = n.contains(f, {\n strokeIsInside: o\n }), h = n.segments[0].midPoint, p = t.contains(h, {\n strokeIsInside: i\n });\n return {\n identical: !1,\n firstCurveInSecond: c,\n secondCurveInFirst: p\n };\n }\n if (l.every(([, f]) => f === \"same\"))\n return { identical: !0 };\n let r = null, u = null;\n const a = l.flatMap(([f, c]) => {\n let h = [], p = 0;\n if (c === \"same\")\n return u === 1 ? (u = 1, f) : u === 2 || u === 0 ? (u = null, []) : u === null ? (r ? r = r.extend(f) : r = f, []) : (console.error(\"weird situation\"), []);\n const d = f.segments[0].midPoint, m = n.contains(d, {\n strokeIsInside: o\n });\n (e === \"keep\" && m || e === \"remove\" && !m) && (p += 1, h = _t(h, f));\n const x = c.segments[0].midPoint, g = t.contains(x, {\n strokeIsInside: i\n });\n if (s === \"keep\" && g || s === \"remove\" && !g) {\n const w = c;\n p += 1, p === 2 && h.length ? (h = _t(h, w), r = null) : h = [w];\n }\n return u === null && p === 1 && r && (h = le(h, r)), p === 1 && (u = p, r = null), h.length ? h : (r = null, []);\n });\n return re(a);\n}\nconst ue = (t, n, e) => {\n const s = pt(t, n, {\n firstInside: \"remove\",\n secondInside: \"remove\",\n ...e\n });\n return Array.isArray(s) ? s : s.identical ? [t] : s.firstCurveInSecond ? [n] : s.secondCurveInFirst ? [t] : [t, n];\n}, tt = (t, n, e) => {\n const s = pt(t, n, {\n firstInside: \"remove\",\n secondInside: \"keep\",\n ...e\n });\n return Array.isArray(s) ? s : s.identical ? [] : s.firstCurveInSecond ? [] : s.secondCurveInFirst ? [t, n] : [t];\n}, dt = (t, n, e) => {\n const s = (e == null ? void 0 : e.firstBoundaryInside) ?? !1, i = (e == null ? void 0 : e.secondBoundaryInside) ?? !1, o = s || i, l = (u, a, f) => u.segments.every(\n (c) => a.contains(c.midPoint, { strokeIsInside: f })\n );\n if (o) {\n if (l(t, n, i))\n return [t];\n if (l(n, t, s))\n return [n];\n }\n const r = pt(t, n, {\n firstInside: \"keep\",\n secondInside: \"keep\",\n ...e\n });\n return Array.isArray(r) ? r : r.identical ? [t] : r.firstCurveInSecond ? [t] : r.secondCurveInFirst ? [n] : [];\n};\nfunction ce(t) {\n const n = /* @__PURE__ */ new Map(), e = [];\n return t.forEach((s, i) => {\n let o;\n n.has(i) ? o = n.get(i) : (o = { current: [s], fusedWith: /* @__PURE__ */ new Set([i]) }, e.push(o)), t.slice(i + 1).forEach((l, r) => {\n const u = o.current, a = i + r + 1;\n if (o.fusedWith.has(a)) return;\n let f = [l], c = !1;\n if (n.has(a) && (f = n.get(a).current, c = !0), !u.some(\n (d) => f.some((m) => d.intersects(m))\n )) return;\n let p;\n u.length > 1 || f.length > 1 ? p = G(u, f) : p = Qt(u[0], f[0]), o.fusedWith.add(a), o.current = p, c || n.set(a, o);\n });\n }), e.flatMap(({ current: s }) => s);\n}\nfunction Qt(t, n) {\n const e = ue(t.contour, n.contour), s = n.holes.flatMap((l) => tt(l, t.contour)), i = t.holes.flatMap((l) => tt(l, n.contour)), o = ee(t.holes, n.holes).flatMap(\n ([l, r]) => dt(l, r)\n );\n return X([\n ...e,\n ...s,\n ...i,\n ...o\n ]);\n}\nfunction nt(t, n) {\n if (t.isFull && n.isFull)\n return X(tt(t.contour, n.contour));\n if (t.isFull) {\n const s = tt(t.contour, n.contour), i = n.holes.flatMap(\n (o) => dt(o, t.contour, { firstBoundaryInside: !0 })\n );\n return X([...s, ...i]);\n } else if (n.isFull && !t.contour.intersects(n.contour))\n if (t.contour.contains(n.contour.firstPoint)) {\n const s = G(\n t.holes.map((i) => new v(i)),\n [n]\n );\n return X([\n t.contour,\n ...s.flatMap((i) => i.allLoops)\n ]);\n } else\n return [t];\n let e = nt(new v(t.contour), n);\n return t.holes.forEach((s) => {\n e = e.flatMap((i) => nt(i, new v(s)));\n }), e;\n}\nfunction ae(t, n) {\n const e = dt(t.contour, n.contour);\n if (!e.length) return [];\n let s = X(e);\n return s = Q(\n s,\n t.holes.map((i) => new v(i))\n ), Q(\n s,\n n.holes.map((i) => new v(i))\n );\n}\nfunction G(t, n) {\n if (!t.length) return n;\n if (!n.length) return t;\n if (t.length === 1 && n.length > 1 || n.length === 1 && t.length > 1)\n return ce([...t, ...n]);\n if (t.length > 1 && n.length > 1) {\n let e = G([t[0]], n);\n return t.slice(1).forEach((s) => {\n e = G([s], e);\n }), e;\n }\n return t.length === 1 && n.length === 1 ? Qt(t[0], n[0]) : [];\n}\nfunction Q(t, n) {\n if (!t.length) return [];\n if (!n.length) return t;\n if (t.length === 1 && n.length === 1)\n return nt(t[0], n[0]);\n if (t.length > 1)\n return t.flatMap((s) => Q([s], n));\n let e = nt(t[0], n[0]);\n return n.slice(1).forEach((s) => {\n e = Q(e, [s]);\n }), e;\n}\nfunction lt(t, n) {\n return !t.length || !n.length ? [] : t.length === 1 && n.length === 1 ? ae(t[0], n[0]) : t.length > 1 ? t.flatMap((e) => lt([e], n)) : n.flatMap((e) => lt(t, [e]));\n}\nclass O extends ut {\n constructor(e = [], { ignoreChecks: s = !1 } = {}) {\n super();\n C(this, \"figures\");\n C(this, \"_boundingBox\", null);\n s || fe(e), this.figures = e;\n }\n get isEmpty() {\n return this.figures.length === 0;\n }\n get boundingBox() {\n if (this.isEmpty) return new pn();\n if (this._boundingBox === null) {\n let e = this.figures[0].boundingBox;\n for (const s of this.figures.slice(1))\n e = e.merge(s.boundingBox);\n this._boundingBox = e;\n }\n return this._boundingBox;\n }\n clone() {\n return new O(this.figures.map((e) => e.clone()));\n }\n transform(e) {\n return new O(this.figures.map((s) => s.transform(e)));\n }\n contains(e, { strokeIsInside: s = !1 } = {}) {\n return this.figures.some(\n (i) => i.contains(e, { strokeIsInside: s })\n );\n }\n intersects(e) {\n return this.figures.some(\n (s) => e.figures.some((i) => s.intersects(i))\n );\n }\n overlappingStrands(e) {\n return this.figures.flatMap((s) => e instanceof O ? e.figures.flatMap(\n (i) => s.overlappingStrands(i)\n ) : s.overlappingStrands(e));\n }\n fuse(e) {\n return new O(G(this.figures, e.figures));\n }\n cut(e) {\n return new O(Q(this.figures, e.figures));\n }\n intersect(e) {\n return new O(lt(this.figures, e.figures));\n }\n}\nfunction fe(t) {\n for (const [n, e] of it(t))\n if (n.intersects(e))\n throw new Error(\"Diagram figures must not intersect\");\n}\nexport {\n O as D,\n v as F,\n _ as L,\n B as S,\n Z as a,\n G as b,\n Q as c,\n Dt as d,\n Xt as e,\n de as f,\n Hn as g,\n It as h,\n lt as i,\n K as l,\n dn as p,\n vt as s\n};\n//# sourceMappingURL=models-CFd5lRKc.js.map\n","var W = Object.defineProperty;\nvar q = (e, t, n) => t in e ? W(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;\nvar m = (e, t, n) => q(e, typeof t != \"symbol\" ? t + \"\" : t, n);\nimport { a as l, s as u, c as x, b as P, L as d, A as R, Q as w, C as D, p as E, d as G, e as T, t as k, f as Q, g as L, h as j, i as $, j as H, R as J, T as K, k as A, n as F, D as C } from \"./QuadraticBezier-DCa0WGs0.js\";\nimport { f as U, S as X, D as Z, F as tt, L as nt } from \"./models-CFd5lRKc.js\";\nconst B = (e, t, n) => {\n const r = x(e.V, t.V), i = e.precision * t.precision;\n if (r * r < i)\n return \"parallel\";\n const s = P(t.firstPoint, e.firstPoint), o = x(s, t.V) / r;\n return l(e.firstPoint, u(e.V, o));\n};\nclass S {\n constructor(t, n) {\n this.firstPoint = t, this.lastPoint = n;\n }\n}\nfunction y(e, t) {\n if (e instanceof d)\n return et(e, t);\n if (e instanceof R)\n return rt(e, t);\n if (e instanceof w || e instanceof D)\n return it(e, t);\n throw new Error(\"Not implemented\");\n}\nfunction et(e, t) {\n const { firstPoint: n, lastPoint: r } = e, i = e.normalVector;\n return new d(\n l(n, u(i, t)),\n l(r, u(i, t))\n );\n}\nfunction rt(e, t) {\n const n = l(\n e.firstPoint,\n u(E(e.tangentAtFirstPoint), t)\n ), r = l(\n e.lastPoint,\n u(E(e.tangentAtLastPoint), t)\n ), i = t * (e.clockwise ? 1 : -1);\n return e.radius + i < e.precision ? new S(n, r) : new R(n, r, e.center, e.clockwise);\n}\nfunction b(e, t, n, r, i) {\n const s = B(\n {\n V: n,\n firstPoint: r,\n precision: i\n },\n {\n V: P(t, e),\n firstPoint: e,\n precision: i\n }\n );\n if (s === \"parallel\")\n throw new Error(\n \"Parallel lines not expected in safe bezier offset control point calculation\"\n );\n return s;\n}\nfunction it(e, t) {\n const { firstPoint: n, lastPoint: r, normalAtFirstPoint: i, normalAtLastPoint: s } = e, o = B(\n { V: i, firstPoint: n, precision: e.precision },\n { V: s, firstPoint: r, precision: e.precision }\n ), a = l(\n n,\n u(i, t)\n ), h = l(\n r,\n u(s, t)\n );\n if (o === \"parallel\")\n throw new Error(\"Parallel lines not expected in safe bezier offset\");\n if (G(P(o, n), i) * t > 0 && Math.min(\n T(n, o),\n T(r, o)\n ) < t)\n return new S(a, h);\n if (e instanceof w) {\n const g = b(\n o,\n e.controlPoint,\n e.tangentAtFirstPoint,\n a,\n e.precision\n );\n return new w(\n a,\n h,\n g\n );\n }\n const p = b(\n o,\n e.firstControlPoint,\n e.tangentAtFirstPoint,\n a,\n e.precision\n ), f = b(\n o,\n e.lastControlPoint,\n e.tangentAtLastPoint,\n h,\n e.precision\n );\n return new D(\n a,\n h,\n p,\n f\n );\n}\nfunction M(e, t, n) {\n const r = x(\n e.tangentAtLastPoint,\n t.tangentAtFirstPoint\n );\n if (Math.abs(r) < 1e-10) return null;\n const i = r > 0 ? 1 : -1, s = Math.abs(n) * i, o = y(e, s), a = y(t, s);\n if (o instanceof S || a instanceof S)\n return null;\n let h;\n try {\n h = U(o, a, 1e-9).at(-1);\n } catch {\n return null;\n }\n if (!h)\n return null;\n const c = h, p = (v, O) => {\n const I = O.tangentAt(c), N = Q(I), Y = l(c, u(N, s));\n return v.splitAt(Y);\n }, [f] = p(e, o), [, g] = p(t, a);\n return { first: f, second: g, center: c };\n}\nfunction V(e, t, n) {\n const r = M(e, t, n);\n if (!r)\n return console.warn(\n \"Cannot fillet between segments\",\n e.repr,\n t.repr\n ), [e, t];\n const { first: i, second: s } = r;\n return [\n i,\n k(i.lastPoint, s.firstPoint, i.tangentAtLastPoint),\n s\n ];\n}\nfunction _(e, t, n) {\n const r = M(e, t, n);\n if (!r)\n return console.warn(\n \"Cannot chamfer between segments\",\n e.repr,\n t.repr\n ), [e, t];\n const { first: i, second: s } = r;\n return [i, new d(i.lastPoint, s.firstPoint), s];\n}\nconst st = (e) => {\n let t;\n e ? typeof e == \"number\" || Array.isArray(e) && e.length === 2 ? t = { endTangent: e } : t = { endTangent: 0, ...e } : t = { endTangent: [1, 0] };\n const {\n endTangent: n,\n startFactor: r = 1,\n endFactor: i = 1,\n startTangent: s\n } = t;\n let o;\n typeof n == \"number\" ? o = A(1, n * C) : o = n;\n let a;\n return typeof s == \"number\" ? a = A(1, s * C) : a = s, { endTangent: o, startFactor: r, endFactor: i, startTangent: a };\n};\nfunction z(e, { ignoreChecks: t = !1 } = {}) {\n return new Z([new tt(new nt([...e], { ignoreChecks: t }))]);\n}\nclass ot {\n constructor(t = [0, 0]) {\n m(this, \"pointer\");\n m(this, \"firstPoint\");\n m(this, \"pendingSegments\");\n m(this, \"_nextCorner\");\n this.pointer = t, this.firstPoint = t, this.pendingSegments = [], this._nextCorner = null;\n }\n movePointerTo(t) {\n if (this.pendingSegments.length)\n throw new Error(\n \"You can only move the pointer if there is no segment defined\"\n );\n return this.pointer = t, this.firstPoint = t, this;\n }\n saveSegment(t) {\n if (L(t.firstPoint, t.lastPoint))\n throw new Error(`Segment has no length, ${t.repr}`);\n if (!this._nextCorner)\n return this.pendingSegments.push(t), this;\n const n = this.pendingSegments.pop();\n if (!n) throw new Error(\"bug in the custom corner algorithm\");\n const r = this._nextCorner.mode === \"chamfer\" ? _ : V;\n return this.pendingSegments.push(\n ...r(n, t, this._nextCorner.radius)\n ), this._nextCorner = null, this;\n }\n lineTo(t) {\n const n = new d(this.pointer, t);\n return this.pointer = t, this.saveSegment(n);\n }\n line(t, n) {\n return this.lineTo([this.pointer[0] + t, this.pointer[1] + n]);\n }\n vLine(t) {\n return this.line(0, t);\n }\n hLine(t) {\n return this.line(t, 0);\n }\n vLineTo(t) {\n return this.lineTo([this.pointer[0], t]);\n }\n hLineTo(t) {\n return this.lineTo([t, this.pointer[1]]);\n }\n polarLineTo([t, n]) {\n const r = n * C, i = A(t, r);\n return this.lineTo(i);\n }\n polarLine(t, n) {\n const r = n * C, [i, s] = A(t, r);\n return this.line(i, s);\n }\n tangentLine(t) {\n const n = this.pendingSegments.at(-1);\n if (!n)\n throw new Error(\"You need a previous segment to sketch a tangent line\");\n const [r, i] = n.tangentAtLastPoint;\n return this.line(r * t, i * t);\n }\n threePointsArcTo(t, n) {\n return this.saveSegment(j(this.pointer, n, t)), this.pointer = t, this;\n }\n threePointsArc(t, n, r, i) {\n const [s, o] = this.pointer;\n return this.threePointsArcTo(\n [s + t, o + n],\n [s + r, o + i]\n );\n }\n sagittaArcTo(t, n) {\n if (!n) return this.lineTo(t);\n const r = new d(this.pointer, t), i = E(r.tangentAtFirstPoint), s = l(r.midPoint, u(i, n));\n return this.threePointsArcTo(t, s);\n }\n sagittaArc(t, n, r) {\n return this.sagittaArcTo(\n [t + this.pointer[0], n + this.pointer[1]],\n r\n );\n }\n vSagittaArc(t, n) {\n return this.sagittaArc(0, t, n);\n }\n hSagittaArc(t, n) {\n return this.sagittaArc(t, 0, n);\n }\n bulgeArcTo(t, n) {\n if (!n) return this.lineTo(t);\n const r = T(this.pointer, t) / 2, i = -n * r;\n return this.sagittaArcTo(t, i);\n }\n bulgeArc(t, n, r) {\n return this.bulgeArcTo(\n [t + this.pointer[0], n + this.pointer[1]],\n r\n );\n }\n vBulgeArc(t, n) {\n return this.bulgeArc(0, t, n);\n }\n hBulgeArc(t, n) {\n return this.bulgeArc(t, 0, n);\n }\n tangentArcTo(t, n) {\n const r = this.pendingSegments.at(-1);\n if (!r)\n throw new Error(\"You need a previous curve to sketch a tangent arc\");\n return this.saveSegment(\n k(\n this.pointer,\n t,\n n ?? r.tangentAtLastPoint\n )\n ), this.pointer = t, this;\n }\n tangentArc(t, n, r) {\n const [i, s] = this.pointer;\n return this.tangentArcTo([t + i, n + s], r);\n }\n ellipseTo(t, n, r, i, s, o) {\n return this.saveSegment(\n $(this.pointer, t, n, r, i, s, o)\n ), this.pointer = t, this;\n }\n ellipse(t, n, r, i, s, o, a) {\n return this.ellipseTo(\n [t + this.pointer[0], n + this.pointer[1]],\n r,\n i,\n s,\n o,\n a\n );\n }\n halfEllipseTo(t, n) {\n const [r, i] = H(P(t, this.pointer));\n return this.ellipseTo(\n t,\n r / 2,\n Math.abs(n),\n i * J,\n !0,\n n > 0\n );\n }\n halfEllipse(t, n, r) {\n return this.halfEllipseTo(\n [t + this.pointer[0], n + this.pointer[1]],\n r\n );\n }\n cubicBezierCurveTo(t, n, r) {\n return this.saveSegment(\n new D(this.pointer, t, n, r)\n ), this.pointer = t, this;\n }\n quadraticBezierCurveTo(t, n) {\n return this.saveSegment(new w(this.pointer, t, n)), this.pointer = t, this;\n }\n smoothCurveTo(t, n) {\n const { endTangent: r, startTangent: i, startFactor: s, endFactor: o } = st(n), a = this.pendingSegments.length ? this.pendingSegments[this.pendingSegments.length - 1] : null, h = T(this.pointer, t) / 3;\n let c;\n i ? c = i : a ? c = a.tangentAtLastPoint : c = [1, 0], c = F(c);\n const p = [\n this.pointer[0] + c[0] * s * h,\n this.pointer[1] + c[1] * s * h\n ];\n let f = r;\n f = F(f);\n const g = [\n t[0] - f[0] * o * h,\n t[1] - f[1] * o * h\n ];\n return this.cubicBezierCurveTo(t, p, g);\n }\n smoothCurve(t, n, r) {\n return this.smoothCurveTo(\n [t + this.pointer[0], n + this.pointer[1]],\n r\n );\n }\n customCorner(t, n = \"fillet\") {\n if (!this.pendingSegments.length)\n throw new Error(\"You need a segment defined to fillet the angle\");\n return t ? (this._nextCorner = { mode: n, radius: t }, this) : this;\n }\n _customCornerLastWithFirst(t, n = \"fillet\") {\n if (!t) return;\n const r = this.pendingSegments.pop(), i = this.pendingSegments.shift();\n if (!r || !i)\n throw new Error(\"Not enough curves to close and fillet\");\n const s = n === \"chamfer\" ? _ : V;\n this.pendingSegments.push(...s(r, i, t));\n }\n close(t = !1) {\n if (!this.pendingSegments.length) throw new Error(\"No segments to close\");\n const n = this.pendingSegments[0], r = this.pendingSegments.at(-1);\n return L(n.firstPoint, r.lastPoint) || this.lineTo(n.firstPoint), this._nextCorner !== null && (this._customCornerLastWithFirst(\n this._nextCorner.radius,\n this._nextCorner.mode\n ), this._nextCorner = null), z(this.pendingSegments, { ignoreChecks: t });\n }\n closeWithMirror(t = !1) {\n if (!this.pendingSegments.length) throw new Error(\"No segments to close\");\n const n = this.pendingSegments[0], r = this.pendingSegments.at(-1), i = P(\n r.lastPoint,\n n.firstPoint\n ), s = new K().mirrorLine(\n i,\n n.firstPoint\n ), o = this.pendingSegments.map(\n (a) => a.transform(s).reverse()\n );\n return o.reverse(), z(\n [...this.pendingSegments, ...o],\n { ignoreChecks: t }\n );\n }\n asStrand() {\n return new X([...this.pendingSegments]);\n }\n get isClosed() {\n var t;\n return L(this.pointer, (t = this.pendingSegments[0]) == null ? void 0 : t.firstPoint);\n }\n}\nfunction lt(e = [0, 0]) {\n return new ot(e);\n}\nexport {\n S as D,\n ot as a,\n lt as d,\n V as f,\n y as o\n};\n//# sourceMappingURL=draw-CJWiicbK.js.map\n","import { d as E } from \"../draw-CJWiicbK.js\";\nimport { r as G } from \"../QuadraticBezier-DCa0WGs0.js\";\nfunction ct(c) {\n return E([-c, 0]).sagittaArc(2 * c, 0, c).sagittaArc(-2 * c, 0, c).close();\n}\nfunction ot(c, e, t = 0) {\n const { rx: a = 0, ry: o = 0 } = typeof t == \"number\" ? { ry: t, rx: t } : t;\n let n = Math.min(a ?? t ?? 0, c / 2), r = Math.min(o ?? t ?? 0, e / 2);\n const s = n && r;\n s || (n = 0, r = 0);\n const h = n === r, f = E([Math.min(0, -(c / 2 - n)), -e / 2]), l = (k, i) => {\n s && (h ? f.tangentArc(k, i) : f.ellipse(k, i, n, r, 0, !1, !1));\n };\n return n < c / 2 && f.hLine(c - 2 * n), l(n, r), r < e / 2 && f.vLine(e - 2 * r), l(-n, r), n < c / 2 && f.hLine(-(c - 2 * n)), l(-n, -r), r < e / 2 && f.vLine(-(e - 2 * r)), l(n, -r), f.close();\n}\nfunction rt(c, e) {\n const t = E([-c, 0]);\n return t.halfEllipse(2 * c, 0, e), t.halfEllipse(-2 * c, 0, e), t.close();\n}\nfunction lt(c, e, t) {\n const a = G(e).map((n) => {\n const r = -(Math.PI * 2 / e) * n;\n return [c * Math.sin(r), c * Math.cos(r)];\n });\n let o = E(a[a.length - 1]);\n for (const n of a)\n t ? o = o.sagittaArcTo(n, t) : o = o.lineTo(n);\n return o.close();\n}\nconst N = 0, $ = 1, B = 2, m = { A: 7, a: 7, C: 6, c: 6, H: 1, h: 1, L: 2, l: 2, M: 2, m: 2, Q: 4, q: 4, S: 4, s: 4, T: 2, t: 2, V: 1, v: 1, Z: 0, z: 0 };\nfunction U(c) {\n const e = new Array();\n for (; c !== \"\"; )\n if (c.match(/^([ \\t\\r\\n,]+)/))\n c = c.substr(RegExp.$1.length);\n else if (c.match(/^([aAcChHlLmMqQsStTvVzZ])/))\n e[e.length] = { type: N, text: RegExp.$1 }, c = c.substr(RegExp.$1.length);\n else if (c.match(/^(([-+]?[0-9]+(\\.[0-9]*)?|[-+]?\\.[0-9]+)([eE][-+]?[0-9]+)?)/))\n e[e.length] = { type: $, text: `${parseFloat(RegExp.$1)}` }, c = c.substr(RegExp.$1.length);\n else\n return [];\n return e[e.length] = { type: B, text: \"\" }, e;\n}\nfunction z(c, e) {\n return c.type === e;\n}\nfunction O(c) {\n const e = [], t = U(c);\n let a = \"BOD\", o = 0, n = t[o];\n for (; !z(n, B); ) {\n let r = 0;\n const s = [];\n if (a === \"BOD\")\n if (n.text === \"M\" || n.text === \"m\")\n o++, r = m[n.text], a = n.text;\n else\n return O(\"M0,0\" + c);\n else z(n, $) ? r = m[a] : (o++, r = m[n.text], a = n.text);\n if (o + r < t.length) {\n for (let h = o; h < o + r; h++) {\n const f = t[h];\n if (z(f, $))\n s[s.length] = +f.text;\n else\n throw new Error(\"Param not a number: \" + a + \",\" + f.text);\n }\n if (typeof m[a] == \"number\") {\n const h = { key: a, data: s };\n e.push(h), o += r, n = t[o], a === \"M\" && (a = \"L\"), a === \"m\" && (a = \"l\");\n } else\n throw new Error(\"Bad segment: \" + a);\n } else\n throw new Error(\"Path data ended short\");\n }\n return e;\n}\nfunction X(c) {\n const e = [];\n for (const { key: t, data: a } of c)\n switch (e.push(t), t) {\n case \"C\":\n case \"c\":\n e.push(a[0], `${a[1]},`, a[2], `${a[3]},`, a[4], a[5]);\n break;\n case \"S\":\n case \"s\":\n case \"Q\":\n case \"q\":\n e.push(a[0], `${a[1]},`, a[2], a[3]);\n break;\n default:\n e.push(...a);\n break;\n }\n return e.join(\" \");\n}\nfunction Y(c) {\n let e = 0, t = 0, a = 0, o = 0;\n const n = [];\n for (const { key: r, data: s } of c)\n switch (r) {\n case \"M\":\n n.push({ key: \"M\", data: [...s] }), [e, t] = s, [a, o] = s;\n break;\n case \"m\":\n e += s[0], t += s[1], n.push({ key: \"M\", data: [e, t] }), a = e, o = t;\n break;\n case \"L\":\n n.push({ key: \"L\", data: [...s] }), [e, t] = s;\n break;\n case \"l\":\n e += s[0], t += s[1], n.push({ key: \"L\", data: [e, t] });\n break;\n case \"C\":\n n.push({ key: \"C\", data: [...s] }), e = s[4], t = s[5];\n break;\n case \"c\": {\n const h = s.map((f, l) => l % 2 ? f + t : f + e);\n n.push({ key: \"C\", data: h }), e = h[4], t = h[5];\n break;\n }\n case \"Q\":\n n.push({ key: \"Q\", data: [...s] }), e = s[2], t = s[3];\n break;\n case \"q\": {\n const h = s.map((f, l) => l % 2 ? f + t : f + e);\n n.push({ key: \"Q\", data: h }), e = h[2], t = h[3];\n break;\n }\n case \"A\":\n n.push({ key: \"A\", data: [...s] }), e = s[5], t = s[6];\n break;\n case \"a\":\n e += s[5], t += s[6], n.push({ key: \"A\", data: [s[0], s[1], s[2], s[3], s[4], e, t] });\n break;\n case \"H\":\n n.push({ key: \"H\", data: [...s] }), e = s[0];\n break;\n case \"h\":\n e += s[0], n.push({ key: \"H\", data: [e] });\n break;\n case \"V\":\n n.push({ key: \"V\", data: [...s] }), t = s[0];\n break;\n case \"v\":\n t += s[0], n.push({ key: \"V\", data: [t] });\n break;\n case \"S\":\n n.push({ key: \"S\", data: [...s] }), e = s[2], t = s[3];\n break;\n case \"s\": {\n const h = s.map((f, l) => l % 2 ? f + t : f + e);\n n.push({ key: \"S\", data: h }), e = h[2], t = h[3];\n break;\n }\n case \"T\":\n n.push({ key: \"T\", data: [...s] }), e = s[0], t = s[1];\n break;\n case \"t\":\n e += s[0], t += s[1], n.push({ key: \"T\", data: [e, t] });\n break;\n case \"Z\":\n case \"z\":\n n.push({ key: \"Z\", data: [] }), e = a, t = o;\n break;\n }\n return n;\n}\nfunction J(c) {\n const e = [];\n let t = \"\", a = 0, o = 0, n = 0, r = 0, s = 0, h = 0;\n for (const { key: f, data: l } of c) {\n switch (f) {\n case \"M\":\n e.push({ key: \"M\", data: [...l] }), [a, o] = l, [n, r] = l;\n break;\n case \"C\":\n e.push({ key: \"C\", data: [...l] }), a = l[4], o = l[5], s = l[2], h = l[3];\n break;\n case \"L\":\n e.push({ key: \"L\", data: [...l] }), [a, o] = l;\n break;\n case \"H\":\n a = l[0], e.push({ key: \"L\", data: [a, o] });\n break;\n case \"V\":\n o = l[0], e.push({ key: \"L\", data: [a, o] });\n break;\n case \"S\": {\n let k = 0, i = 0;\n t === \"C\" || t === \"S\" ? (k = a + (a - s), i = o + (o - h)) : (k = a, i = o), e.push({ key: \"C\", data: [k, i, ...l] }), s = l[0], h = l[1], a = l[2], o = l[3];\n break;\n }\n case \"T\": {\n const [k, i] = l;\n let u = 0, y = 0;\n t === \"Q\" || t === \"T\" ? (u = a + (a - s), y = o + (o - h)) : (u = a, y = o);\n const M = a + 2 * (u - a) / 3, p = o + 2 * (y - o) / 3, d = k + 2 * (u - k) / 3, g = i + 2 * (y - i) / 3;\n e.push({ key: \"C\", data: [M, p, d, g, k, i] }), s = u, h = y, a = k, o = i;\n break;\n }\n case \"Q\": {\n const [k, i, u, y] = l, M = a + 2 * (k - a) / 3, p = o + 2 * (i - o) / 3, d = u + 2 * (k - u) / 3, g = y + 2 * (i - y) / 3;\n e.push({ key: \"C\", data: [M, p, d, g, u, y] }), s = k, h = i, a = u, o = y;\n break;\n }\n case \"A\": {\n const k = Math.abs(l[0]), i = Math.abs(l[1]), u = l[2], y = l[3], M = l[4], p = l[5], d = l[6];\n k === 0 || i === 0 ? (e.push({ key: \"C\", data: [a, o, p, d, p, d] }), a = p, o = d) : (a !== p || o !== d) && (F(a, o, p, d, k, i, u, y, M).forEach(function(L) {\n e.push({ key: \"C\", data: L });\n }), a = p, o = d);\n break;\n }\n case \"Z\":\n e.push({ key: \"Z\", data: [] }), a = n, o = r;\n break;\n }\n t = f;\n }\n return e;\n}\nfunction K(c) {\n return Math.PI * c / 180;\n}\nfunction T(c, e, t) {\n const a = c * Math.cos(t) - e * Math.sin(t), o = c * Math.sin(t) + e * Math.cos(t);\n return [a, o];\n}\nfunction F(c, e, t, a, o, n, r, s, h, f) {\n const l = K(r);\n let k = [], i = 0, u = 0, y = 0, M = 0;\n if (f)\n [i, u, y, M] = f;\n else {\n [c, e] = T(c, e, -l), [t, a] = T(t, a, -l);\n const x = (c - t) / 2, b = (e - a) / 2;\n let w = x * x / (o * o) + b * b / (n * n);\n w > 1 && (w = Math.sqrt(w), o = w * o, n = w * n);\n const S = s === h ? -1 : 1, A = o * o, R = n * n, j = A * R - A * b * b - R * x * x, D = A * b * b + R * x * x, Z = S * Math.sqrt(Math.abs(j / D));\n y = Z * o * b / n + (c + t) / 2, M = Z * -n * x / o + (e + a) / 2, i = Math.asin(parseFloat(((e - M) / n).toFixed(9))), u = Math.asin(parseFloat(((a - M) / n).toFixed(9))), c < y && (i = Math.PI - i), t < y && (u = Math.PI - u), i < 0 && (i = Math.PI * 2 + i), u < 0 && (u = Math.PI * 2 + u), h && i > u && (i = i - Math.PI * 2), !h && u > i && (u = u - Math.PI * 2);\n }\n let p = u - i;\n if (Math.abs(p) > Math.PI * 120 / 180) {\n const x = u, b = t, w = a;\n h && u > i ? u = i + Math.PI * 120 / 180 * 1 : u = i + Math.PI * 120 / 180 * -1, t = y + o * Math.cos(u), a = M + n * Math.sin(u), k = F(t, a, b, w, o, n, r, 0, h, [u, x, y, M]);\n }\n p = u - i;\n const d = Math.cos(i), g = Math.sin(i), L = Math.cos(u), _ = Math.sin(u), I = Math.tan(p / 4), Q = 4 / 3 * o * I, V = 4 / 3 * n * I, q = [c, e], C = [c + Q * g, e - V * d], H = [t + Q * _, a - V * L], P = [t, a];\n if (C[0] = 2 * q[0] - C[0], C[1] = 2 * q[1] - C[1], f)\n return [C, H, P].concat(k);\n {\n k = [C, H, P].concat(k);\n const x = [];\n for (let b = 0; b < k.length; b += 3) {\n const w = T(k[b][0], k[b][1], l), S = T(k[b + 1][0], k[b + 1][1], l), A = T(k[b + 2][0], k[b + 2][1], l);\n x.push([w[0], w[1], S[0], S[1], A[0], A[1]]);\n }\n return x;\n }\n}\nconst W = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n absolutize: Y,\n normalize: J,\n parsePath: O,\n serialize: X\n}, Symbol.toStringTag, { value: \"Module\" })), { parsePath: v, absolutize: tt } = W, et = (c, e, t) => {\n let a, o = null, n = null;\n if (c.key === \"M\") {\n const [r, s] = c.data;\n return a = [r, s], { p: a };\n }\n if (c.key === \"H\") {\n const [r] = c.data;\n return a = [r, (e == null ? void 0 : e[1]) || 0], { p: a };\n }\n if (c.key === \"V\") {\n const [r] = c.data;\n return a = [(e == null ? void 0 : e[0]) || 0, r], { p: a };\n }\n if (c.key === \"L\") {\n const [r, s] = c.data;\n return a = [r, s], { p: a };\n }\n if (c.key === \"C\") {\n const [r, s, h, f, l, k] = c.data;\n return a = [l, k], o = [r, s], n = [h, f], {\n p: a,\n control1: o,\n control2: n\n };\n }\n if (c.key === \"S\") {\n const [r, s, h, f] = c.data;\n if (a = [h, f], n = [r, s], !e)\n throw new Error(\"S command without previous point\");\n if (o = e, t.control2) {\n const l = e;\n o = [\n l[0] + (l[0] - t.control2[0]),\n l[1] + (l[1] - t.control2[1])\n ];\n }\n return {\n p: a,\n control1: o,\n control2: n\n };\n }\n if (c.key === \"Q\") {\n const [r, s, h, f] = c.data;\n return a = [h, f], o = [r, s], {\n p: a,\n control1: o\n };\n }\n if (c.key === \"T\") {\n const [r, s] = c.data;\n if (a = [r, s], !e)\n throw new Error(\"T command without previous point\");\n if (o = e, t.control1 && !t.control2) {\n const h = e;\n o = [\n h[0] + (h[0] - t.control1[0]),\n h[1] + (h[1] - t.control1[1])\n ];\n }\n }\n if (c.key === \"A\") {\n const [r, s, h = 0, f = 0, l = 0, k, i] = c.data;\n if (a = [k, i], !e)\n throw new Error(\"A command without previous point\");\n const u = Math.sqrt(\n (e[0] - k) ** 2 + (e[1] - i) ** 2\n ), y = Math.max(r, s);\n let M = r, p = s;\n if (y < u / 2) {\n const d = u / 2 / y;\n M = r * d, p = s * d;\n }\n return {\n p: a,\n arcConfig: [M, p, h, !!f, !!l]\n };\n }\n throw new Error(`Unknown command ${c.key}`);\n};\nfunction* at(c) {\n const e = tt(v(c));\n let t = null, a = null, o = { control1: null, control2: null };\n for (const n of e) {\n if (n.key === \"Z\") {\n t && (yield t.close(!0)), t = null;\n continue;\n }\n const r = et(n, a, o), s = r.p, h = \"control1\" in r ? r.control1 : null, f = \"control1\" in r ? r.control2 : null, l = \"arcConfig\" in r ? r.arcConfig : null;\n if (n.key === \"M\") {\n t && (yield t.isClosed ? t.close() : t.asStrand()), t = E(s), a = s;\n continue;\n }\n if (a && Math.abs(s[0] - a[0]) < 1e-9 && Math.abs(s[1] - a[1]) < 1e-9) {\n a = s, o = { control1: h, control2: f };\n continue;\n }\n (n.key === \"L\" || n.key === \"H\" || n.key === \"V\") && (t == null || t.lineTo(s)), (n.key === \"C\" || n.key === \"S\") && (t == null || t.cubicBezierCurveTo(s, h, f)), (n.key === \"Q\" || n.key === \"T\") && (t == null || t.quadraticBezierCurveTo(s, h)), n.key === \"A\" && (t == null || t.ellipseTo(s, ...l)), a = s, o = { control1: h, control2: f };\n }\n t && (yield t.isClosed ? t.close() : t.asStrand());\n}\nfunction ht(c) {\n return Array.from(at(c));\n}\nexport {\n ct as drawCircle,\n rt as drawEllipse,\n lt as drawPolysides,\n ot as drawRect,\n ht as drawSVGPath\n};\n//# sourceMappingURL=drawShape.js.map\n","import { L as $, A as f, E as l, R as u, Q as e, C as h } from \"./QuadraticBezier-DCa0WGs0.js\";\nfunction i([t, n]) {\n return `${t} ${n}`;\n}\nfunction s(t) {\n if (t instanceof $)\n return `L ${i(t.lastPoint)}`;\n if (t instanceof f)\n return `A ${t.radius} ${t.radius} 0 ${t.angularLength > Math.PI ? \"1\" : \"0\"} ${t.clockwise ? \"0\" : \"1\"} ${i(t.lastPoint)}`;\n if (t instanceof l)\n return `A ${t.majorRadius} ${t.minorRadius} ${t.tiltAngle * u} ${t.deltaAngle > Math.PI ? \"1\" : \"0\"} ${t.clockwise ? \"0\" : \"1\"} ${i(t.lastPoint)}`;\n if (t instanceof e)\n return `Q ${[\n i(t.controlPoint),\n i(t.lastPoint)\n ].join(\" \")}`;\n if (t instanceof h)\n return `C ${[\n i(t.firstControlPoint),\n i(t.lastControlPoint),\n i(t.lastPoint)\n ].join(\" \")}`;\n throw new Error(\"Unknown segment type\");\n}\nfunction w(t) {\n const n = `M ${t.firstPoint.join(\" \")}`, o = t.segments.map(s).join(\" \");\n return `${n} ${o} Z`;\n}\nfunction p(t) {\n return `<path d=\"${t.allLoops.map(w).join(\" \")}\" />`;\n}\nfunction d(t) {\n return `<g>\n ${t.figures.map(p).join(`\n`)}\n</g>`;\n}\nfunction j(t) {\n const n = `M ${t.firstPoint.join(\" \")}`, o = t.segments.map(s).join(\" \");\n return `${n} ${o}`;\n}\nfunction v(t, n = 1) {\n const o = t.xMin - n, r = t.yMin - n;\n return `${o} ${r} ${t.width + 2 * n} ${t.height + 2 * n}`;\n}\nfunction A(t, n, o = 1, r) {\n const a = v(n, o), c = r ? `width=\"${n.width + 2 * o}${r}\" height=\"${n.height + 2 * o}${r}\"` : \"\";\n return `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"${a}\" fill=\"none\" stroke=\"grey\" stroke-width=\"0.2%\" vector-effect=\"non-scaling-stroke\" ${c}>\n ${t}\n</svg>`;\n}\nexport {\n p as a,\n w as b,\n j as c,\n s as d,\n v as e,\n d as s,\n A as w\n};\n//# sourceMappingURL=svg-CD4q2GBE.js.map\n","var yt = Object.defineProperty;\nvar Ct = (n, t, e) => t in n ? yt(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e;\nvar P = (n, t, e) => Ct(n, typeof t != \"symbol\" ? t + \"\" : t, e);\nimport { o as xt, D as U, f as lt } from \"./draw-CJWiicbK.js\";\nimport { a as _n, d as Vn } from \"./draw-CJWiicbK.js\";\nimport { F as m, L as w, D as h, a as N, s as Dt, b as Ot, c as Bt, i as Rt, S as y, l as zt, p as Tt, d as $t, e as ut, g as Gt } from \"./models-CFd5lRKc.js\";\nimport { h as qn } from \"./models-CFd5lRKc.js\";\nimport { l as Ut, z as _t, m as Vt, e as b, n as ht, b as F, a as Kt, s as qt, o as Ht, q as gt, L as A, A as E, C as $, p as Y, u as V, d as Nt, T as Jt, g as I, E as pt, Q as dt, t as Qt, c as Xt, D as Yt, B as Zt } from \"./QuadraticBezier-DCa0WGs0.js\";\nimport { s as Wt, a as jt, b as tn, c as nn, d as en, w as Z } from \"./svg-CD4q2GBE.js\";\nfunction L(n) {\n if (n instanceof m)\n return [n];\n if (n instanceof w)\n return [new m(n)];\n if (n instanceof h)\n return n.figures;\n throw new Error(\"Unknown shape\");\n}\nfunction mt(n, t, e = 1e-9) {\n let s = [];\n const r = [], i = new Array(t.segments.length).fill(0).map(() => []);\n t.segments.forEach((a, f) => {\n n.segments.forEach((c) => {\n const { intersections: l, overlaps: p } = N(\n a,\n c,\n e\n );\n s.push(...l), i[f].push(...l), r.push(...p);\n const g = p.flatMap((d) => [\n d.firstPoint,\n d.lastPoint\n ]);\n s.push(...g), i[f].push(...g);\n });\n }), s = Ut(s, e);\n const o = _t([t.segments, i]).flatMap(([a, f]) => f.length ? a.splitAt(f) : [a]);\n return Array.from(\n Dt(\n o,\n s,\n r\n )\n );\n}\nfunction J(n, t, e = !1) {\n return mt(t, n).filter((r) => {\n const i = r.segments[0].midPoint;\n return t.onStroke(i) ? !e : !t.contains(i);\n });\n}\nfunction Q(n, t, e = !1) {\n return mt(t, n).filter((r) => {\n const i = r.segments[0].midPoint;\n return t.onStroke(i) ? !e : t.contains(i);\n });\n}\nfunction W(n, t, e = !1) {\n const s = J(\n n,\n t.contour,\n e\n ), r = t.holes.flatMap(\n (i) => Q(n, i, e)\n );\n return [...s, ...r];\n}\nfunction j(n, t, e = !1) {\n let s = Q(\n n,\n t.contour,\n e\n );\n return t.holes.forEach((r) => {\n s = s.flatMap(\n (i) => J(i, r, e)\n );\n }), s;\n}\nfunction sn(n, t) {\n return new h(\n Ot(L(n), L(t))\n );\n}\nfunction z(n) {\n return n.reduce(\n (t, e) => sn(t, e),\n new h()\n );\n}\nfunction Pt(n, t) {\n return new h(\n Bt(L(n), L(t))\n );\n}\nfunction yn(n, t) {\n return new h(\n Rt(L(n), L(t))\n );\n}\nfunction Cn(n, t, e = !0) {\n if (t instanceof w)\n return J(n, t, e);\n if (t instanceof m)\n return W(n, t, e);\n let s = [new y([...n.segments])];\n return t.figures.forEach((r) => {\n s = s.flatMap((i) => W(i, r, e));\n }), s;\n}\nfunction xn(n, t, e = !1) {\n if (t instanceof w)\n return Q(n, t, e);\n if (t instanceof m)\n return j(n, t, e);\n let s = [new y([...n.segments])];\n return t.figures.forEach((r) => {\n s = s.flatMap((i) => j(i, r, e));\n }), s;\n}\nfunction tt(n) {\n return n < 0 ? \"before\" : n > 1 ? \"after\" : \"between\";\n}\nconst nt = (n, t, e) => {\n if (e === \"before\")\n return n.distanceFrom(t.firstPoint);\n if (e === \"after\")\n return n.distanceFrom(t.lastPoint);\n throw new Error(\"Invalid position\");\n};\nfunction rn(n, t) {\n const e = Vt(n, t);\n if (e === \"parallel\")\n return Math.min(\n n.distanceFrom(t.firstPoint),\n n.distanceFrom(t.lastPoint)\n );\n const { intersectionParam1: s, intersectionParam2: r } = e, i = tt(s), o = tt(r);\n if (i === \"between\" && o === \"between\")\n return 0;\n if (i === \"between\" && o !== \"between\")\n return nt(n, t, o);\n if (o === \"between\" && i !== \"between\")\n return nt(t, n, i);\n if (i === \"before\" && o === \"before\")\n return b(n.firstPoint, t.firstPoint);\n if (i === \"after\" && o === \"after\")\n return b(n.lastPoint, t.lastPoint);\n if (i === \"before\" && o === \"after\")\n return b(n.firstPoint, t.lastPoint);\n if (i === \"after\" && o === \"before\")\n return b(n.lastPoint, t.firstPoint);\n throw new Error(\"Invalid position\");\n}\nfunction et(n, t) {\n if (zt(n, t).length > 0)\n return 0;\n const e = Tt(n, t.center);\n if (n.isOnSegment(e)) {\n const s = b(e, t.center);\n if (Math.abs(s - t.radius) < n.precision && t.isOnSegment(e))\n return 0;\n if (s - t.radius > n.precision) {\n const r = ht(\n F(e, t.center)\n ), i = Kt(\n t.center,\n qt(r, t.radius)\n );\n if (t.isOnSegment(i))\n return b(i, e);\n }\n }\n return Math.min(\n t.distanceFrom(n.firstPoint),\n t.distanceFrom(n.lastPoint),\n n.distanceFrom(t.firstPoint),\n n.distanceFrom(t.lastPoint)\n );\n}\nconst on = (n, t) => {\n const e = n.angleToParam(t.firstAngle);\n if (n.isValidParameter(e)) return !0;\n const s = n.angleToParam(t.lastAngle);\n return !!n.isValidParameter(s);\n};\nfunction an(n, t) {\n if ($t(n, t, !0).length > 0) return 0;\n const e = b(n.center, t.center);\n if (e < n.precision && on(n, t))\n return Math.abs(n.radius - t.radius);\n const s = ht(F(t.center, n.center)), r = e - Math.abs(n.radius - t.radius) < n.precision;\n let i = Ht(s);\n r && t.radius > n.radius && (i += Math.PI);\n const o = r ? i : i + Math.PI, a = n.angleToParam(i), f = t.angleToParam(o);\n return n.isValidParameter(a) && t.isValidParameter(f) ? b(n.paramPoint(a), t.paramPoint(f)) : Math.min(\n n.distanceFrom(t.firstPoint),\n n.distanceFrom(t.lastPoint),\n t.distanceFrom(n.firstPoint),\n t.distanceFrom(n.lastPoint)\n );\n}\nfunction cn(n, t, e) {\n let s = 0, r = n.length - 1;\n for (; s <= r; ) {\n const i = Math.floor((s + r) / 2), o = e(n[i], t);\n if (o < 0)\n s = i + 1;\n else if (o > 0)\n r = i - 1;\n else\n return i;\n }\n return -(s + 1);\n}\nfunction fn(n, t, e) {\n const s = cn(n, t, e);\n s < 0 ? n.splice(-(s + 1), 0, t) : n.splice(s, 0, t);\n}\nclass ln {\n constructor() {\n P(this, \"buckets\");\n this.buckets = [];\n }\n addInterval(t) {\n const e = this.buckets[t.rectangle.diagonalBucketIndex];\n e === void 0 ? this.buckets[t.rectangle.diagonalBucketIndex] = [t] : fn(e, t, (s, r) => s.value - r.value);\n }\n removeInterval(t) {\n const e = this.buckets[t.rectangle.diagonalBucketIndex];\n if (e === void 0)\n throw new Error(\"Interval not found\");\n e.shift();\n }\n getBottomRightHullIntervals() {\n const t = [];\n for (let e = this.buckets.length - 1; e >= 0; e--) {\n const s = this.buckets[e];\n if (!s === void 0) continue;\n const r = s[0];\n if (r !== void 0) {\n if (!t.length) {\n t.push(r);\n continue;\n }\n for (; t.length && t[t.length - 1].value >= r.value; )\n t.pop();\n for (; t.length >= 2; ) {\n const i = t[t.length - 1], o = t[t.length - 2], a = (r.value - o.value) / ((r.rectangle.diagonal - o.rectangle.diagonal) * 2);\n if (o.value + (i.rectangle.diagonal - o.rectangle.diagonal) / 2 * a < i.value)\n t.pop();\n else\n break;\n }\n t.push(r);\n }\n }\n return t;\n }\n}\nclass un {\n constructor(t, e) {\n P(this, \"diagonal\");\n P(this, \"diagonalBucketIndex\");\n P(this, \"xLength\");\n P(this, \"yLength\");\n P(this, \"index\");\n this.x = t, this.y = e, this.xLength = Math.pow(3, -t), this.yLength = Math.pow(3, -e), this.diagonal = Math.sqrt(\n this.xLength * this.xLength + this.yLength * this.yLength\n ), this.diagonalBucketIndex = t + e, this.index = `${t},${e}`;\n }\n}\nclass hn {\n constructor(t, e = 1e-8, s = 1e3, r = 1e-6) {\n P(this, \"rectangles\");\n P(this, \"buckets\");\n P(this, \"fMin\");\n P(this, \"argMin\");\n P(this, \"tol\");\n this.fcn = t, this.endTolerance = e, this.maxIterations = s, this.epsilon = r, this.fcn = t, this.epsilon = r, this.endTolerance = e, this.maxIterations = s, this.rectangles = /* @__PURE__ */ new Map(), this.buckets = new ln();\n const i = [0.5, 0.5], o = this.rect(0, 0), a = this.fcn(i);\n this.buckets.addInterval(new O(i, a, o)), this.fMin = a, this.argMin = i, this.tol = o.diagonal;\n }\n registerInterval(t) {\n this.buckets.addInterval(t), t.value <= this.fMin && (this.fMin = t.value, this.argMin = t.center, this.tol = t.rectangle.diagonal);\n }\n rect(t, e) {\n const s = `${t},${e}`;\n return this.rectangles.has(s) || this.rectangles.set(s, new un(t, e)), this.rectangles.get(s);\n }\n splitInterval(t) {\n let e, s, r;\n const [i, o] = t.center;\n return t.rectangle.x <= t.rectangle.y ? (e = this.rect(t.rectangle.x + 1, t.rectangle.y), s = [i - e.xLength, o], r = [i + e.xLength, o]) : (e = this.rect(t.rectangle.x, t.rectangle.y + 1), s = [i, o - e.yLength], r = [i, o + e.yLength]), [\n new O(s, this.fcn(s), e),\n new O(t.center, t.value, e),\n new O(r, this.fcn(r), e)\n ];\n }\n single_iteration() {\n const t = this.buckets.getBottomRightHullIntervals();\n for (; t.length >= 2; ) {\n const e = t[0], s = t[1], r = (s.value - e.value) / ((s.rectangle.diagonal - e.rectangle.diagonal) / 2), i = e.value - r * s.value / 2;\n if ((this.fMin - i) / Math.abs(this.fMin) < this.epsilon)\n t.shift();\n else\n break;\n }\n t.forEach((e) => {\n this.buckets.removeInterval(e);\n });\n for (const e of t) {\n const [s, r, i] = this.splitInterval(e);\n this.registerInterval(s), this.registerInterval(r), this.registerInterval(i);\n }\n }\n run() {\n let t = 0;\n for (; this.tol > this.endTolerance / 2 && (this.single_iteration(), t++, !(t > this.maxIterations)); )\n ;\n return {\n fMin: this.fMin,\n argMin: this.argMin,\n tol: this.tol,\n iterations: t\n };\n }\n}\nclass O {\n constructor(t, e, s) {\n this.center = t, this.value = e, this.rectangle = s;\n }\n}\nfunction gn(n, t = 1e-8, e = 1e3, s = 1e-6) {\n return new hn(\n n,\n t,\n e,\n s\n ).run();\n}\nfunction pn(n, t, e = 1e-9) {\n const s = gn((r) => {\n const i = n.paramPoint(r[0]), o = t.paramPoint(r[1]);\n return gt(i, o);\n }, e);\n return Math.sqrt(s.fMin);\n}\nfunction dn(n, t) {\n return n instanceof A && t instanceof A ? rn(n, t) : n instanceof A && t instanceof E ? et(n, t) : n instanceof E && t instanceof A ? et(t, n) : n instanceof E && t instanceof E ? an(n, t) : pn(n, t);\n}\nfunction wt(n) {\n if (n instanceof $) {\n const r = F(n.lastPoint, n.firstPoint), i = F(n.firstControlPoint, n.firstPoint), o = F(n.lastControlPoint, n.firstPoint), a = V(r, i), f = V(r, o);\n if (a > 0 && f < 0 || a < 0 && f > 0) return !1;\n }\n const t = Y(n.tangentAtFirstPoint), e = Y(n.tangentAtLastPoint);\n let s = Nt(t, e);\n return Math.abs(Math.acos(s)) < Math.PI / 3;\n}\nfunction K(n) {\n if (wt(n)) return [n];\n const [t, e] = n.splitAtParameters([0.5]);\n return [\n ...K(t),\n ...K(e)\n ];\n}\nfunction st(n) {\n return wt(n) ? [n] : n.splitAtParameters(n.getParametersOfExtrema()).flatMap(K);\n}\nfunction mn(n) {\n const t = n.deltaAngle, e = Math.ceil(Math.abs(t) / (Math.PI / 2)), s = t / e, r = 4 * Math.tan(s / 4) / 3, i = n.clockwise ? -1 : 1, o = Array.from(\n { length: e + 1 },\n (f, c) => n.firstAngle + c * s * i\n );\n return o.slice(0, -1).map((f, c) => [f, o[c + 1]]).map(([f, c]) => {\n const l = Math.cos(f), p = Math.sin(f), g = Math.cos(c), d = Math.sin(c), [u, S] = n.center, M = n.minorRadius, v = n.majorRadius, k = new Jt().rotate(\n n.tiltAngle,\n n.center\n ), C = (Ft) => k.transform(Ft), D = C([u + v * l, S + M * p]), G = C([\n u + v * (l - r * p * i),\n S + M * (p + r * l * i)\n ]), kt = C([\n u + v * (g + r * d * i),\n S + M * (d - r * g * i)\n ]), Et = C([u + v * g, S + M * d]);\n return new $(D, Et, G, kt);\n });\n}\nconst X = 1e-8, Mt = (n) => n.flatMap((t) => t instanceof A ? [t] : t instanceof E ? [t] : t instanceof pt ? mn(t).flatMap(\n (e) => st(e)\n) : t instanceof dt || t instanceof $ ? st(t) : [new A(t.firstPoint, t.lastPoint)]);\nfunction q(n, t, e = !0) {\n const s = n.map((c) => ({\n offset: xt(c, t),\n original: c\n })), r = [];\n let i = e ? null : s.at(-1), o = e ? s.at(-1) : null;\n if (r.length === 1) return r;\n const a = (c) => {\n i ? c.offset instanceof U ? I(c.offset.firstPoint, c.offset.lastPoint) || r.push(\n new A(c.offset.firstPoint, c.offset.lastPoint)\n ) : r.push(c.offset) : i = c;\n }, f = function* () {\n for (const c of s.slice(0, -1))\n yield c;\n if (!i) throw new Error(\"Bug in the offset algorithm\");\n yield i;\n };\n for (const c of f()) {\n if (!o) {\n o = c;\n continue;\n }\n const l = o.offset.lastPoint, p = c.offset.firstPoint;\n if (I(l, p)) {\n a(o), o = c;\n continue;\n }\n let g = [];\n if (!(o.offset instanceof U) && !(c.offset instanceof U)) {\n const { intersections: M, overlaps: v } = N(\n o.offset,\n c.offset,\n X / 100\n );\n g = [\n ...M,\n ...v.flatMap((k) => [k.firstPoint, k.lastPoint])\n ];\n }\n if (g.length > 0) {\n let M = g[0];\n if (g.length > 1) {\n const C = o == null ? void 0 : o.original.lastPoint, D = g.map(\n (G) => gt(G, C)\n );\n M = g[D.indexOf(Math.min(...D))];\n }\n const v = o.offset.splitAt([\n M\n ])[0], k = c.offset.splitAt([M]).at(-1);\n if (!k) throw new Error(\"Bug in the splitting algo in offset\");\n a({\n offset: v,\n original: o.original\n }), o = { offset: k, original: c.original };\n continue;\n }\n const d = o.original.lastPoint, u = Xt(\n F(p, d),\n F(l, d)\n ) > 0, S = new E(l, p, d, u);\n a(o), r.push(S), o = c;\n }\n return o && a(o), r;\n}\nfunction It(n) {\n const t = /* @__PURE__ */ new Map(), e = (s, r) => {\n const i = t.get(s) || [];\n t.set(s, [...i, ...r]);\n };\n return n.forEach((s, r) => {\n n.slice(r + 1).forEach((i, o) => {\n const { intersections: a, overlaps: f } = N(s, i, X), c = [\n ...a,\n ...f.flatMap((l) => [l.firstPoint, l.lastPoint])\n ].filter((l) => {\n const p = I(l, s.firstPoint) || I(l, s.lastPoint), g = I(l, i.firstPoint) || I(l, i.lastPoint);\n return !(p && g);\n });\n c.length && (e(r, c), e(o + r + 1, c));\n });\n }), t;\n}\nfunction St(n, t) {\n return t.flatMap((e, s) => {\n if (!n.has(s)) return e;\n const r = n.get(s);\n return r ? e.splitAt(r) : e;\n });\n}\nfunction bt(n, t, e) {\n return n.filter((s) => !t.segments.some((i) => dn(i, s) < Math.abs(e) - X));\n}\nfunction T(n, t) {\n const e = n.clockwise ? t : -t, s = Mt(n.segments), r = q(s, e);\n if (r.length < 2) return new h();\n const i = It(r);\n if (!i.size) {\n const l = new w(r);\n return new h([new m(l)]);\n }\n const o = St(\n i,\n r\n ), a = bt(o, n, t);\n if (!a.length) return new h();\n const c = ut(a).filter((l) => l.length > 1).filter((l) => I(l[0].firstPoint, l.at(-1).lastPoint)).map((l) => new w(l));\n return c.length ? new h(c.map((l) => new m(l))) : new h();\n}\nfunction Pn(n, t, e = \"round\") {\n const s = t / 2, r = Mt(n.segments), i = q(r, s, !1), o = q(\n r,\n -s,\n !1\n ).map((u) => u.reverse());\n o.reverse();\n const a = (u, S) => e === \"round\" ? Qt(\n u.lastPoint,\n S.firstPoint,\n u.tangentAtLastPoint\n ) : new A(u.lastPoint, S.firstPoint), f = [\n ...i,\n a(\n i[i.length - 1],\n o[0]\n ),\n ...o,\n a(\n o[o.length - 1],\n i[0]\n )\n ], c = It(f);\n if (!c.size) {\n const u = new w(f);\n return new h([new m(u)]);\n }\n const l = St(\n c,\n f\n ), p = bt(l, n, s);\n if (!p.length) return new h();\n const d = ut(p).filter((u) => u.length > 1).filter((u) => I(u[0].firstPoint, u.at(-1).lastPoint)).map((u) => new w(u));\n return d.length ? new h(d.map((u) => new m(u))) : new h();\n}\nfunction wn(n, t) {\n const e = n.map((s) => {\n const r = z(\n s.holes.map((i) => T(i, t))\n );\n return Pt(T(s.contour, t), r);\n });\n return z(e);\n}\nfunction Mn(n, t) {\n const e = Math.abs(t / 2), s = n.map(\n (r) => z(\n r.allLoops.map((i) => Pt(T(i, e), T(i, -e)))\n )\n );\n return z(s);\n}\nfunction Dn(n, t) {\n return wn(L(n), t);\n}\nfunction On(n, t, { endCap: e = \"round\" } = {}) {\n return n instanceof y ? Pn(n, t, e) : Mn(L(n), t);\n}\nclass In {\n constructor() {\n P(this, \"filters\");\n this.filters = [];\n }\n delete() {\n this.filters = [];\n }\n /**\n * Combine logically a set of filter with an AND operation.\n *\n */\n and(t) {\n return t.forEach((e) => e(this)), this;\n }\n /**\n * Invert the result of a particular filter\n *\n */\n not(t) {\n const e = new this.constructor();\n t(e);\n const s = ({ element: r }) => !e.shouldKeep(r);\n return this.filters.push(s), this;\n }\n /**\n * Combine logically a set of filter with an OR operation.\n *\n */\n either(t) {\n const e = t.map((r) => {\n const i = new this.constructor();\n return r(i), i;\n }), s = ({ element: r }) => e.some((i) => i.shouldKeep(r));\n return this.filters.push(s), this;\n }\n}\nconst _ = 2 * Math.PI, rt = (n) => {\n const t = n % _, e = t < 0 ? t + _ : t;\n return e < Math.PI ? e : e === Math.PI ? 0 : Math.abs(e - _);\n};\nclass x extends In {\n clone() {\n const t = new x();\n return t.filters = [...this.filters], t;\n }\n /**\n * Filter to find corner that have their point are in the list.\n *\n */\n inList(t) {\n const e = ({ element: s }) => !!t.find((r) => I(r, s.point));\n return this.filters.push(e), this;\n }\n /**\n * Filter to find elements that are at a specified distance from a point.\n *\n */\n atDistance(t, e = [0, 0]) {\n function s({ element: r }) {\n return Math.abs(b(e, r.point) - t) < 1e-9;\n }\n return this.filters.push(s), this;\n }\n /**\n * Filter to find elements that contain a certain point\n *\n * @category Filter\n */\n atPoint(t) {\n function e({ element: s }) {\n return I(t, s.point);\n }\n return this.filters.push(e), this;\n }\n /**\n * Filter to find elements that are within a box\n *\n * @category Filter\n */\n inBox(t, e) {\n const [s, r] = t, [i, o] = e, a = Math.min(s, i), f = Math.max(s, i), c = Math.min(r, o), l = Math.max(r, o);\n function p({ element: g }) {\n const [d, u] = g.point;\n return d >= a && d <= f && u >= c && u <= l;\n }\n return this.filters.push(p), this;\n }\n /**\n * Filter to find corner that a certain angle between them - only between\n * 0 and 180.\n *\n */\n ofAngle(t) {\n function e({ element: s }) {\n const r = s.firstCurve.tangentAtLastPoint, i = s.secondCurve.tangentAtFirstPoint;\n return Math.abs(\n rt(V(r, i)) - rt(Yt * t)\n ) < 1e-9;\n }\n return this.filters.push(e), this;\n }\n above(t = 0) {\n function e({ element: s }) {\n return s.point[1] > t;\n }\n return this.filters.push(e), this;\n }\n below(t = 0) {\n function e({ element: s }) {\n return s.point[1] < t;\n }\n return this.filters.push(e), this;\n }\n leftOf(t = 0) {\n function e({ element: s }) {\n return s.point[0] < t;\n }\n return this.filters.push(e), this;\n }\n rightOf(t = 0) {\n function e({ element: s }) {\n return s.point[0] > t;\n }\n return this.filters.push(e), this;\n }\n shouldKeep(t) {\n return this.filters.every((s) => s({ element: t }));\n }\n asFilterFun() {\n return this.shouldKeep.bind(this);\n }\n}\nfunction At(n, t, e, s = () => !0) {\n const r = [t.segments[0]], i = (a, f) => {\n s({ firstCurve: a, secondCurve: f, point: a.lastPoint }) ? r.push(...n(a, f, e)) : r.push(a, f);\n };\n if (t.segments.slice(1).forEach((a) => {\n const f = r.pop();\n if (!f) throw new Error(\"Bug in the stroke filletting algo\");\n i(f, a);\n }), !r.at(-1)) throw new Error(\"Bug in the stroke corner algo\");\n if (t instanceof w) {\n const a = r.pop(), f = r.shift();\n if (!a || !f)\n throw new Error(\"Bug in the filletting algo\");\n return i(a, f), new w(r, { ignoreChecks: !0 });\n } else\n return new y(r, { ignoreChecks: !0 });\n}\nfunction B(n, t, e) {\n const s = typeof e == \"function\" ? e(new x()) : e, r = s && s.asFilterFun();\n if (n instanceof w || n instanceof y)\n return At(lt, n, t, r);\n if (n instanceof m) {\n const i = B(n.contour, t, s), o = n.holes.map((a) => B(a, t, s));\n return new m(i, o, { ignoreChecks: !0 });\n }\n if (n instanceof h) {\n const i = n.figures.map((o) => B(o, t, s));\n return new h(i, { ignoreChecks: !0 });\n }\n throw new Error(\"invalid shape to fillet\");\n}\nfunction R(n, t, e) {\n const s = typeof e == \"function\" ? e(new x()) : e, r = s && s.asFilterFun();\n if (n instanceof w || n instanceof y)\n return At(lt, n, t, r);\n if (n instanceof m) {\n const i = R(n.contour, t, s), o = n.holes.map((a) => R(a, t, s));\n return new m(i, o, { ignoreChecks: !0 });\n }\n if (n instanceof h) {\n const i = n.figures.map((o) => R(o, t, s));\n return new h(i, { ignoreChecks: !0 });\n }\n throw new Error(\"invalid shape to chamfer\");\n}\nclass Sn extends x {\n constructor(t) {\n super(), this.shape = t;\n }\n fillet(t) {\n return B(this.shape, t, this.clone());\n }\n chamfer(t) {\n return R(this.shape, t, this.clone());\n }\n}\nfunction Bn(n) {\n return new Sn(n);\n}\nfunction it(n) {\n if (n instanceof h)\n return Wt(n);\n if (n instanceof m)\n return jt(n);\n if (n instanceof w)\n return `<path d=\"${tn(n)}\" />`;\n if (n instanceof y)\n return `<path d=\"${nn(n)}\" />`;\n if (Gt(n))\n return `<path d=\"${`M ${n.firstPoint.join(\" \")}`} ${en(\n n\n )}\" />`;\n throw new Error(\"Unknown shape type\");\n}\nconst ot = (n) => \"shape\" in n ? n.shape : n, at = (n, t) => {\n if (!(\"shape\" in n)) return t;\n const { color: e } = n;\n return e ? `<g stroke=\"${e}\">${t}</g>` : t;\n}, ct = (n) => new Zt(n.xMin, -n.yMax, n.xMax, -n.yMin);\nfunction Rn(n, {\n margin: t = 1,\n unit: e = null,\n viewBox: s\n} = {}) {\n if (Array.isArray(n)) {\n const i = n.map((f) => ot(f).mirror()), o = i.map((f, c) => at(n[c], it(f))).join(`\n`), a = i.slice(1).reduce((f, c) => f.merge(c.boundingBox), i[0].boundingBox);\n return Z(o, s ? ct(s) : a, t, e);\n }\n const r = ot(n).mirror();\n return Z(\n at(n, it(r)),\n s ? ct(s) : r.boundingBox,\n t,\n e\n );\n}\nconst vt = (n) => {\n if (n.type === \"LINE\")\n return new A(n.firstPoint, n.lastPoint);\n if (n.type === \"ARC\")\n return new E(\n n.firstPoint,\n n.lastPoint,\n n.center,\n n.clockwise\n );\n if (n.type === \"ELLIPSE_ARC\")\n return new pt(\n n.firstPoint,\n n.lastPoint,\n n.center,\n n.majorRadius,\n n.minorRadius,\n n.tiltAngle,\n n.clockwise,\n { angleUnits: \"rad\" }\n );\n if (n.type === \"QUADRATIC_BEZIER\")\n return new dt(\n n.firstPoint,\n n.lastPoint,\n n.controlPoint\n );\n if (n.type === \"CUBIC_BEZIER\")\n return new $(\n n.firstPoint,\n n.lastPoint,\n n.firstControlPoint,\n n.lastControlPoint\n );\n throw new Error(\"Unknown segment type\");\n}, H = (n) => {\n const t = n.segments.map(vt);\n return new w(t);\n}, Lt = (n) => {\n const t = H(n.contour), e = n.holes.map(H);\n return new m(t, e);\n}, bn = (n) => {\n const t = n.figures.map(Lt);\n return new h(t);\n};\nfunction zn(n) {\n if (n.type === \"DIAGRAM\")\n return bn(n);\n if (n.type === \"FIGURE\")\n return Lt(n);\n if (n.type === \"LOOP\")\n return H(n);\n if (n.type === \"LINE\" || n.type === \"ARC\" || n.type === \"ELLIPSE_ARC\" || n.type === \"CUBIC_BEZIER\")\n return vt(n);\n throw new Error(\"Unknown shape type\");\n}\nconst ft = Math.PI / 180, An = 180 / Math.PI;\nfunction Tn(n, t) {\n const e = Math.cos(t * ft) * n, s = Math.sin(t * ft) * n;\n return [e, s];\n}\nfunction $n([n, t]) {\n const e = Math.sqrt(n * n + t * t), s = Math.atan2(t, n) * An;\n return [e, s];\n}\nexport {\n ft as DEG2RAD,\n _n as DrawingPen,\n An as RAD2DEG,\n $n as cartesianToPolar,\n R as chamfer,\n xn as confineStrand,\n Pt as cut,\n Vn as draw,\n Cn as eraseStrand,\n qn as exportJSON,\n Rn as exportSVG,\n B as fillet,\n sn as fuse,\n z as fuseAll,\n zn as importJSON,\n yn as intersect,\n Dn as offset,\n On as outlineStroke,\n Tn as polarToCartesian,\n Bn as selectCorners,\n it as svgBody\n};\n//# sourceMappingURL=pantograph.js.map\n",null],"names":["q","oe","ht","le","Dt","ce","mt","fe","Z","Y","it","Q","It","an","nt","Rt","J","St","un","H","tt","Qt","Mt","et","xt","wt","cn","at","Ot","fn","ct","mn","Bt","$","Ct","st","Ut","ot","lt","Pt","bt","ae","Yt","Ht","yt","_","V","Ft","ue","dt","K","pt","te","ft","rt","vt","ee","Xt","Gt","kt","wn","gt","en","sn","nn","rn","de","ln","pn","on","jt","dn","k","Tt","z","S","gn","U","P","Lt","qt","Pn","M","xn","Sn","yn","bn","Cn","Mn","In","An","A","I","Bn","W","On","Tn","b","zt","ut","N","zn","Dn","hn","Rn","$n","O","v","At","B","X","m","x","l","u","d","R","w","D","E","G","T","C","L","j","F","f","e","h","_t","y","Vt","Kt","$t","Nt","Jt","Wt","tn","Zt","Line","Arc","EllipseArc","QuadraticBezier","CubicBezier","Diagram","Figure","Loop","svgLoop","Strand","svgStrand","isSegment","svgSegmentToPath","svgViewbox","exportJSON","cut","fuse","intersect","fillet","chamfer","exportSVG","offset","DrawingPen","drawShape.drawCircle","drawShape.drawRect","drawShape.drawEllipse","drawShape.drawPolysides"],"mappings":"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AAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AACtmC,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE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AAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AAC9O,QAAQ,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;AACtR,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC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AAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3M,UAAU,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AACjC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC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AC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAClJ,IAAI,IAAI,CAAC,IAAI,CAAC;AACd,MAAM;AACN,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,E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GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AACzH,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7P,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AACjX,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AAC9P,I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,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,sBAAsB,EAAE,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CA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"}
|
|
1
|
+
{"version":3,"file":"replicad-pantograph.js","sources":["../../../pantograph/dist/QuadraticBezier-BeY2TXKH.js","../../../pantograph/dist/models-BHeLX0dj.js","../../../pantograph/dist/draw-DzKVhurb.js","../../../pantograph/dist/pantograph/drawShape.js","../../../pantograph/dist/svg-BTO7h1ix.js","../../../pantograph/dist/pantograph.js","../../index.ts"],"sourcesContent":["var Xe = Object.defineProperty;\nvar ye = (r) => {\n throw TypeError(r);\n};\nvar Ze = (r, s, t) => s in r ? Xe(r, s, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[s] = t;\nvar q = (r, s, t) => Ze(r, typeof s != \"symbol\" ? s + \"\" : s, t), oe = (r, s, t) => s.has(r) || ye(\"Cannot \" + t);\nvar ht = (r, s, t) => (oe(r, s, \"read from private field\"), t ? t.call(r) : s.get(r)), le = (r, s, t) => s.has(r) ? ye(\"Cannot add the same private member more than once\") : s instanceof WeakSet ? s.add(r) : s.set(r, t), Dt = (r, s, t, e) => (oe(r, s, \"write to private field\"), e ? e.call(r, t) : s.set(r, t), t), he = (r, s, t) => (oe(r, s, \"access private method\"), t);\nconst Me = Symbol.for(\"pantograph:BoundingBox\");\nfunction Ot(r, s, t, e) {\n return r <= e && s >= t;\n}\nclass mt {\n constructor(s = 1 / 0, t = 1 / 0, e = -1 / 0, n = -1 / 0) {\n q(this, \"xMin\");\n q(this, \"yMin\");\n q(this, \"xMax\");\n q(this, \"yMax\");\n Object.defineProperty(this, Me, { value: !0 }), this.xMin = s, this.yMin = t, this.xMax = e, this.yMax = n;\n }\n static isInstance(s) {\n return !!s && s[Me] === !0;\n }\n get width() {\n return this.xMax - this.xMin;\n }\n get height() {\n return this.yMax - this.yMin;\n }\n get center() {\n return [(this.xMin + this.xMax) / 2, (this.yMin + this.yMax) / 2];\n }\n grow(s) {\n return new mt(\n this.xMin - s,\n this.yMin - s,\n this.xMax + s,\n this.yMax + s\n );\n }\n contains(s) {\n const [t, e] = s;\n return Ot(this.xMin, this.xMax, t, t) && Ot(this.yMin, this.yMax, e, e);\n }\n overlaps(s) {\n return Ot(this.xMin, this.xMax, s.xMin, s.xMax) && Ot(this.yMin, this.yMax, s.yMin, s.yMax);\n }\n addPoint(s) {\n const [t, e] = s;\n return new mt(\n Math.min(this.xMin, t),\n Math.min(this.yMin, e),\n Math.max(this.xMax, t),\n Math.max(this.yMax, e)\n );\n }\n merge(s) {\n return new mt(\n Math.min(this.xMin, s.xMin),\n Math.min(this.yMin, s.yMin),\n Math.max(this.xMax, s.xMax),\n Math.max(this.yMax, s.yMax)\n );\n }\n intersection(s) {\n return new mt(\n Math.max(this.xMin, s.xMin),\n Math.max(this.yMin, s.yMin),\n Math.min(this.xMax, s.xMax),\n Math.min(this.yMax, s.yMax)\n );\n }\n}\nfunction ce(r) {\n return r.reduce((s, t) => s.addPoint(t), new mt());\n}\nconst Pe = (r, s = 1e-9) => {\n let t = r;\n return Math.abs(r) < s && (t = 0), t.toFixed(-Math.log10(s));\n};\nfunction Ne(r, s = 1e-9) {\n return Array.from(\n new Map(\n r.map(([t, e]) => [\n `[${Pe(t, s)},${Pe(e, s)}]`,\n [t, e]\n ])\n ).values()\n );\n}\nconst fe = Math.PI / 180, Je = 180 / Math.PI, Z = (r) => `[${r[0]}, ${r[1]}]`, Y = ([r, s], [t, e], n = 1e-9) => Math.abs(r - t) <= n && Math.abs(s - e) <= n, it = ([r, s], [t, e]) => [r + t, s + e], Q = ([r, s], [t, e]) => [r - t, s - e], Tt = ([r, s]) => r * r + s * s, pn = ([r, s]) => Math.sqrt(Tt([r, s])), nt = ([r, s], t) => [r * t, s * t], Rt = ([r, s], [t, e] = [0, 0]) => (r - t) ** 2 + (s - e) ** 2, J = (r, s = [0, 0]) => Math.sqrt(Rt(r, s));\nfunction St([r, s], [t, e]) {\n return r * e - s * t;\n}\nfunction be([r, s], [t, e]) {\n return r * t + s * e;\n}\nfunction dn([r, s], [t, e] = [0, 0]) {\n return Math.atan2(e * r - s * t, r * t + s * e);\n}\nfunction H([r, s]) {\n const t = J([r, s]);\n return [r / t, s / t];\n}\nfunction It(r, s) {\n const t = Math.cos(s) * r, e = Math.sin(s) * r;\n return [t, e];\n}\nfunction Ke([r, s]) {\n return Math.atan2(s, r);\n}\nfunction He(r) {\n const s = J(r), t = Ke(r);\n return [s, t];\n}\nfunction Ve(r, s, t = 1e-9) {\n const e = St(r, s), n = Tt(r), i = Tt(s);\n return e * e < n * i * t * t;\n}\nfunction tt(r) {\n return [-r[1], r[0]];\n}\nfunction Qt(r) {\n return [r[1], -r[0]];\n}\nfunction ts(r, s, t) {\n return Y(t, r) || Ve(Q(t, r), s);\n}\nconst Ee = Symbol.for(\n \"pantograph:TransformationMatrix\"\n), yt = (r, s) => {\n const [t, e, n, i, o, l, h, a, u] = r, [c, g, d, w, p, P, f, y, E] = s;\n return [\n t * c + e * w + n * f,\n t * g + e * p + n * y,\n t * d + e * P + n * E,\n i * c + o * w + l * f,\n i * g + o * p + l * y,\n i * d + o * P + l * E,\n h * c + a * w + u * f,\n h * g + a * p + u * y,\n h * d + a * P + u * E\n ];\n}, es = (r) => {\n const [s, t, e, n, i, o, l, h, a] = r, u = s * (i * a - o * h) - t * (n * a - o * l) + e * (n * h - i * l);\n return [\n (i * a - o * h) / u,\n (e * h - t * a) / u,\n (t * o - e * i) / u,\n (o * l - n * a) / u,\n (s * a - e * l) / u,\n (e * n - s * o) / u,\n (n * h - i * l) / u,\n (t * l - s * h) / u,\n (s * i - t * n) / u\n ];\n}, ss = (r) => {\n const [s, t, e, n, i, o, l, h, a] = r;\n return [s, n, l, t, i, h, e, o, a];\n};\nclass et {\n constructor(s) {\n q(this, \"_matrix\", [1, 0, 0, 0, 1, 0, 0, 0, 1]);\n Object.defineProperty(this, Ee, {\n value: !0\n }), s && (this._matrix = [...s]);\n }\n static isInstance(s) {\n return !!s && s[Ee] === !0;\n }\n clone() {\n return new et(this._matrix);\n }\n transpose() {\n return this._matrix = ss(this._matrix), this;\n }\n inverse() {\n return this._matrix = es(this._matrix), this;\n }\n translate(s, t) {\n return this._matrix = yt([1, 0, s, 0, 1, t, 0, 0, 1], this._matrix), this;\n }\n rotate(s, t) {\n const e = Math.cos(s), n = Math.sin(s), i = [e, -n, 0, n, e, 0, 0, 0, 1];\n return t && this.translate(-t[0], -t[1]), this._matrix = yt(i, this._matrix), t && this.translate(t[0], t[1]), this;\n }\n mirrorX() {\n return this._matrix = yt([1, 0, 0, 0, -1, 0, 0, 0, 1], this._matrix), this;\n }\n mirrorY() {\n return this._matrix = yt([-1, 0, 0, 0, 1, 0, 0, 0, 1], this._matrix), this;\n }\n mirrorLine(s, t) {\n const [e, n] = s, i = Math.atan2(n, e);\n return t && this.translate(-t[0], -t[1]), this.rotate(-i), this.mirrorX(), this.rotate(i), t && this.translate(t[0], t[1]), this;\n }\n mirrorCenter(s) {\n return s && this.translate(-s[0], -s[1]), this._matrix = yt([-1, 0, 0, 0, -1, 0, 0, 0, 1], this._matrix), s && this.translate(s[0], s[1]), this;\n }\n scale(s, t) {\n return t && this.translate(-t[0], -t[1]), this._matrix = yt([s, 0, 0, 0, s, 0, 0, 0, 1], this._matrix), t && this.translate(t[0], t[1]), this;\n }\n transform(s) {\n const [t, e] = s, [n, i, o, l, h, a] = this._matrix;\n return [n * t + i * e + o, l * t + h * e + a];\n }\n transformAngle(s) {\n const [t, e] = this.transform([Math.cos(s), Math.sin(s)]), [n, i] = this.transform([0, 0]);\n return Math.atan2(e - i, t - n);\n }\n keepsOrientation() {\n const [s, , , , t] = this._matrix;\n return s * t > 0;\n }\n scaleFactor() {\n const [s, , , t] = this._matrix;\n return Math.sqrt(s * s + t * t);\n }\n}\nclass ns {\n translateX(s) {\n const t = new et().translate(s, 0);\n return this.transform(t);\n }\n translateY(s) {\n const t = new et().translate(0, s);\n return this.transform(t);\n }\n translate(s, t) {\n const e = new et().translate(s, t);\n return this.transform(e);\n }\n translateTo([s, t]) {\n const e = new et().translate(s, t);\n return this.transform(e);\n }\n rotate(s, t) {\n const e = new et().rotate(\n s * fe,\n t\n );\n return this.transform(e);\n }\n scale(s, t) {\n const e = new et().scale(s, t);\n return this.transform(e);\n }\n mirrorCenter(s) {\n const t = new et().mirrorCenter(s);\n return this.transform(t);\n }\n mirror(s = \"x\", t) {\n const e = new et();\n return s === \"x\" ? e.mirrorX() : s === \"y\" ? e.mirrorY() : e.mirrorLine(s, t), this.transform(e);\n }\n}\nclass Ft extends ns {\n constructor(t, e) {\n super();\n q(this, \"precision\", 1e-9);\n this.firstPoint = t, this.lastPoint = e, this.firstPoint = t, this.lastPoint = e;\n }\n get repr() {\n return `${this.segmentType} ${Z(this.firstPoint)} - ${Z(\n this.lastPoint\n )}`;\n }\n get info() {\n return this.repr;\n }\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n return this.repr;\n }\n}\nconst _e = Symbol.for(\"pantograph:Line\");\nclass at extends Ft {\n constructor(t, e) {\n super(t, e);\n q(this, \"segmentType\", \"LINE\");\n q(this, \"_V\", null);\n q(this, \"_slope\", null);\n q(this, \"_yIntercept\", null);\n q(this, \"_boundingBox\", null);\n Object.defineProperty(this, _e, { value: !0 });\n }\n static isInstance(t) {\n return !!t && t[_e] === !0;\n }\n isValidParameter(t) {\n const e = this.length * this.precision;\n return t >= -e && 1 - t >= -e;\n }\n paramPoint(t) {\n return it(this.firstPoint, nt(this.V, t));\n }\n get length() {\n return J(this.firstPoint, this.lastPoint);\n }\n get squareLength() {\n return Rt(this.firstPoint, this.lastPoint);\n }\n get V() {\n return this._V === null && (this._V = Q(this.lastPoint, this.firstPoint)), this._V;\n }\n get slope() {\n if (this._slope === null) {\n const [t, e] = this.V;\n this._slope = e / t;\n }\n return this._slope;\n }\n get yIntercept() {\n return this._yIntercept === null && (this._yIntercept = this.firstPoint[1] - this.slope * this.firstPoint[0]), this._yIntercept;\n }\n get midPoint() {\n return it(this.firstPoint, nt(this.V, 0.5));\n }\n isSame(t) {\n return at.isInstance(t) ? Y(this.firstPoint, t.firstPoint) && Y(this.lastPoint, t.lastPoint) || Y(this.lastPoint, t.firstPoint) && Y(this.firstPoint, t.lastPoint) : !1;\n }\n clone() {\n return new at(this.firstPoint, this.lastPoint);\n }\n reverse() {\n return new at(this.lastPoint, this.firstPoint);\n }\n get boundingBox() {\n return this._boundingBox === null && (this._boundingBox = new mt(\n Math.min(this.firstPoint[0], this.lastPoint[0]) - this.precision,\n Math.min(this.firstPoint[1], this.lastPoint[1]) - this.precision,\n Math.max(this.firstPoint[0], this.lastPoint[0]) + this.precision,\n Math.max(this.firstPoint[1], this.lastPoint[1]) + this.precision\n )), this._boundingBox;\n }\n distanceFrom(t) {\n const e = Q(t, this.firstPoint), n = be(e, this.V) / this.squareLength;\n if (n < 0)\n return J(t, this.firstPoint);\n if (n > 1)\n return J(t, this.lastPoint);\n const i = this.paramPoint(n);\n return J(t, i);\n }\n isOnSegment(t) {\n if (Y(t, this.firstPoint, this.precision)) return !0;\n const e = Q(t, this.firstPoint);\n if (!Ve(this.V, e)) return !1;\n const n = be(e, this.V) / this.squareLength;\n return this.isValidParameter(n);\n }\n gradientAt(t) {\n return this.V;\n }\n tangentAt(t) {\n if (!this.isOnSegment(t)) throw new Error(\"Point is not on segment\");\n return H(this.V);\n }\n get normalVector() {\n return tt(H(this.V));\n }\n get tangentAtFirstPoint() {\n return H(this.V);\n }\n get tangentAtLastPoint() {\n return H(this.V);\n }\n splitAt(t) {\n let e;\n if (Array.isArray(t) && t.length === 0)\n return [this];\n Array.isArray(t[0]) ? e = t : e = [t], e.forEach((a) => {\n if (!this.isOnSegment(a))\n throw new Error(\n `Point ${Z(a)} is not on segment ${this.repr}`\n );\n });\n const n = [this.firstPoint, ...e, this.lastPoint], i = Ne(n), o = this.lastPoint[0] - this.firstPoint[0];\n let l = Math.sign(o), h = 0;\n return Math.abs(o) < this.precision && (l = Math.sign(this.lastPoint[1] - this.firstPoint[1]), h = 1), i.sort(\n (a, u) => l * (a[h] - u[h])\n ), i.flatMap((a, u) => u === i.length - 1 ? [] : new at(a, i[u + 1]));\n }\n transform(t) {\n return new at(\n t.transform(this.firstPoint),\n t.transform(this.lastPoint)\n );\n }\n}\nfunction is(r) {\n return Array.from(Array(r).keys());\n}\nfunction Kt(r) {\n const s = Math.min(...r.map((t) => t.length));\n return is(s).map((t) => r.map((e) => e[t]));\n}\nfunction wt(r, s = 1e-9) {\n return r < 0 ? r + 2 * Math.PI : r >= 2 * Math.PI ? r % (2 * Math.PI) : r > 2 * Math.PI - s ? 0 : r;\n}\nfunction Zt(r, s, t, e = 1e-9) {\n let n = s - r;\n return t && (n = -n), n < 0 && (n += 2 * Math.PI), n > 2 * Math.PI - e ? 0 : n;\n}\nconst me = (r, s, t) => {\n const e = St(r.V, s.V), n = Tt(r.V), i = Tt(s.V), o = t ? t * t : r.precision * s.precision;\n if (e * e < n * i * o)\n return \"parallel\";\n const l = Q(s.firstPoint, r.firstPoint), h = St(l, s.V) / e, a = St(l, r.V) / e;\n return {\n intersectionParam1: h,\n intersectionParam2: a\n };\n};\nfunction yn(r, s, t = !1, e) {\n const n = me(r, s, e);\n if (n === \"parallel\") {\n if (!t) return null;\n if (r.isSame(s)) return r;\n const l = Ne(\n [\n s.isOnSegment(r.firstPoint) ? r.firstPoint : null,\n s.isOnSegment(r.lastPoint) ? r.lastPoint : null,\n r.isOnSegment(s.firstPoint) ? s.firstPoint : null,\n r.isOnSegment(s.lastPoint) ? s.lastPoint : null\n ].filter((h) => h !== null)\n ).sort((h, a) => h[0] - a[0]);\n if (l.length === 0) return null;\n if (l.length === 1) return null;\n if (l.length === 2) return new at(l[0], l[1]);\n throw console.error(l), new Error(\n \"Unexpected number of points while intersecting parallel lines\"\n );\n }\n const { intersectionParam1: i, intersectionParam2: o } = n;\n return !r.isValidParameter(i) || !s.isValidParameter(o) ? null : r.paramPoint(i);\n}\nconst Bt = (r, s) => {\n const t = Q(r, s);\n return He(t);\n}, je = Symbol.for(\"pantograph:Arc\");\nclass ct extends Ft {\n constructor(t, e, n, i = !1, { ignoreChecks: o = !1 } = {}) {\n super(t, e);\n q(this, \"segmentType\", \"ARC\");\n q(this, \"center\");\n q(this, \"clockwise\");\n q(this, \"_coefficients\", null);\n q(this, \"_angularLength\", null);\n q(this, \"_radius\", null);\n q(this, \"_firstAngle\", null);\n q(this, \"_lastAngle\", null);\n q(this, \"_boundingBox\", null);\n if (Object.defineProperty(this, je, { value: !0 }), this.center = n, this.clockwise = i, !o) {\n if (Y(t, e))\n throw new Error(\"Invalid arc, cannot be a full circle\");\n if (Math.abs(this.radius - J(this.lastPoint, this.center)) > this.precision)\n throw new Error(\n `Invalid arc, radius does not match between ${Z(\n t\n )} and ${Z(e)}} (center ${Z(n)})`\n );\n }\n }\n static isInstance(t) {\n return !!t && t[je] === !0;\n }\n get info() {\n return `ARC(${Z(this.firstPoint)}, ${Z(\n this.lastPoint\n )}, ${Z(this.center)}, ${this.clockwise ? \"CW\" : \"CCW\"})`;\n }\n get coefficients() {\n if (this._coefficients === null) {\n const [t, e] = this.center, n = this.radius * this.radius;\n this._coefficients = {\n x2: 1 / n,\n xy: 0,\n y2: 1 / n,\n x: -(2 * t) / n,\n y: -(2 * e) / n,\n c: (t * t + e * e - n) / n\n };\n }\n return this._coefficients;\n }\n isValidParameter(t) {\n return 1 - t >= -this.precision && t >= -this.precision;\n }\n angleToParam(t) {\n return Zt(this.firstAngle, wt(t), this.clockwise) / this.angularLength;\n }\n get angularLength() {\n return this._angularLength || (this._angularLength = Zt(\n this.firstAngle,\n this.lastAngle,\n this.clockwise\n )), this._angularLength;\n }\n paramPoint(t) {\n return it(\n this.center,\n It(\n this.radius,\n this.firstAngle + t * this.angularLength * (this.clockwise ? -1 : 1)\n )\n );\n }\n pointToParam(t) {\n const [e, n] = Bt(t, this.center);\n if (Math.abs(e - this.radius) > this.precision)\n throw new Error(\n `Point ${Z(t)} is not on segment ${this.repr}`\n );\n const i = this.angleToParam(n);\n if (!this.isValidParameter(i))\n throw new Error(\n `Point ${Z(t)} is not on segment ${this.repr}`\n );\n return i;\n }\n get radius() {\n return this._radius === null && (this._radius = J(this.firstPoint, this.center)), this._radius;\n }\n get firstAngle() {\n if (this._firstAngle === null) {\n const [t, e] = Q(this.firstPoint, this.center);\n this._firstAngle = wt(Math.atan2(e, t));\n }\n return this._firstAngle;\n }\n get lastAngle() {\n if (this._lastAngle === null) {\n const [t, e] = Q(this.lastPoint, this.center);\n this._lastAngle = wt(Math.atan2(e, t));\n }\n return this._lastAngle;\n }\n get length() {\n return this.radius * this.angularLength;\n }\n get squareLength() {\n return this.length * this.length;\n }\n get midPoint() {\n return this.paramPoint(0.5);\n }\n isSame(t) {\n return !ct.isInstance(t) || !Y(this.center, t.center) ? !1 : Y(this.firstPoint, t.firstPoint) && Y(this.lastPoint, t.lastPoint) && this.clockwise === t.clockwise || Y(this.lastPoint, t.firstPoint) && Y(this.firstPoint, t.lastPoint) && this.clockwise === !t.clockwise;\n }\n clone() {\n return new ct(\n this.firstPoint,\n this.lastPoint,\n this.center,\n this.clockwise\n );\n }\n reverse() {\n return new ct(\n this.lastPoint,\n this.firstPoint,\n this.center,\n !this.clockwise\n );\n }\n get boundingBox() {\n if (this._boundingBox === null) {\n const t = this.radius + this.precision, e = (n) => this.isValidParameter(this.angleToParam(n));\n this._boundingBox = new mt(\n e(Math.PI) ? this.center[0] - t : Math.min(this.firstPoint[0], this.lastPoint[0]) - this.precision,\n e(Math.PI * 1.5) ? this.center[1] - t : Math.min(this.firstPoint[1], this.lastPoint[1]) - this.precision,\n e(0) ? this.center[0] + t : Math.max(this.firstPoint[0], this.lastPoint[0]) + this.precision,\n e(Math.PI / 2) ? this.center[1] + t : Math.max(this.firstPoint[1], this.lastPoint[1]) + this.precision\n );\n }\n return this._boundingBox;\n }\n distanceFrom(t) {\n const [e, n] = Bt(t, this.center);\n return this.isValidParameter(this.angleToParam(n)) ? Math.abs(e - this.radius) : Math.sqrt(\n Math.min(\n Rt(t, this.firstPoint),\n Rt(t, this.lastPoint)\n )\n );\n }\n isOnSegment(t) {\n if (Y(t, this.firstPoint) || Y(t, this.lastPoint))\n return !0;\n const [e, n] = Bt(t, this.center);\n if (Math.abs(e - this.radius) > this.precision) return !1;\n const i = this.angleToParam(n);\n return this.isValidParameter(i);\n }\n gradientAt(t) {\n const e = this.firstAngle + t * this.angularLength * (this.clockwise ? -1 : 1), n = this.radius * this.angularLength, i = -n * Math.sin(e), o = n * Math.cos(e);\n return this.clockwise ? [-i, -o] : [i, o];\n }\n tangentAt(t) {\n const [e, n] = Bt(t, this.center);\n if (Math.abs(e - this.radius) > this.precision)\n throw new Error(\"Point is not on the arc\");\n const i = this.angleToParam(n);\n if (!this.isValidParameter(i))\n throw new Error(\"Point is not on the arc\");\n const o = It(1, n);\n return (this.clockwise ? Qt : tt)(H(o));\n }\n get tangentAtFirstPoint() {\n const t = It(1, this.firstAngle);\n return (this.clockwise ? Qt : tt)(H(t));\n }\n get tangentAtLastPoint() {\n const t = It(1, this.lastAngle);\n return (this.clockwise ? Qt : tt)(H(t));\n }\n splitAt(t) {\n let e;\n if (Array.isArray(t) && t.length === 0)\n return [this];\n Array.isArray(t[0]) ? e = t : e = [t];\n const i = [0, 1, ...e.map((h) => this.pointToParam(h))], o = new Map(\n Kt([i, [this.firstPoint, this.lastPoint, ...e]])\n );\n i.sort((h, a) => h - a);\n let l = null;\n return i.flatMap((h, a) => {\n if (a === i.length - 1) return [];\n const u = i[a + 1];\n if (u - h < this.precision)\n return l === null && (l = h), [];\n const c = l === null ? h : l, g = new ct(\n o.get(c) || this.paramPoint(c),\n o.get(u) || this.paramPoint(u),\n this.center,\n this.clockwise\n );\n return l = null, g;\n });\n }\n transform(t) {\n return new ct(\n t.transform(this.firstPoint),\n t.transform(this.lastPoint),\n t.transform(this.center),\n t.keepsOrientation() ? this.clockwise : !this.clockwise\n );\n }\n}\nfunction Mn(r, s, t) {\n const e = new at(s, r), n = new at(s, t), i = tt(e.tangentAtFirstPoint), o = tt(n.tangentAtLastPoint), l = me(\n { firstPoint: e.midPoint, V: i, precision: 1e-9 },\n { firstPoint: n.midPoint, V: o, precision: 1e-9 }\n );\n if (l === \"parallel\")\n throw new Error(\"Cannot create an arc from three colinear points\");\n const h = St(\n Q(r, s),\n Q(t, s)\n ) > 0;\n return new ct(\n r,\n t,\n it(e.midPoint, nt(i, l.intersectionParam1)),\n h,\n { ignoreChecks: !0 }\n );\n}\nfunction Pn(r, s, t) {\n const e = new at(r, s), n = tt(e.tangentAtFirstPoint), i = me(\n { firstPoint: e.midPoint, V: n, precision: 1e-9 },\n {\n firstPoint: r,\n V: tt(t),\n precision: 1e-9\n }\n );\n if (i === \"parallel\")\n throw new Error(\"Cannot create an arc from three colinear points\");\n const o = it(\n e.midPoint,\n nt(n, i.intersectionParam1)\n ), l = St(\n Q(o, r),\n Q(o, it(r, t))\n ) < 0;\n return new ct(r, s, o, l, {\n ignoreChecks: !0\n });\n}\nconst Se = 1e-21, zt = 1.618034;\nfunction ke(r, s = 0, t = 1, e = 110, n = 1e3) {\n let i, o, l, h, a, u, c, g, d, w, p, P, f;\n for (o = r(s), l = r(t), o < l && ([s, t] = [t, s], [o, l] = [l, o]), f = t + zt * (t - s), h = r(f), a = 3, c = 0; h < l; ) {\n if (g = (t - s) * (l - h), d = (t - f) * (l - o), w = d - g, Math.abs(w) < Se ? i = 2 * Se : i = 2 * w, p = t - ((t - f) * d - (t - s) * g) / i, P = t + e * (f - t), c > n)\n throw new Error(\"Too many iterations.\");\n if (c += 1, (p - f) * (t - p) > 0) {\n if (u = r(p), a += 1, u < h)\n return s = t, t = p, o = l, l = u, [s, t, f, o, l, h, a];\n if (u > l)\n return f = p, h = u, [s, t, f, o, l, h, a];\n p = f + zt * (f - t), u = r(p), a += 1;\n } else\n (p - P) * (P - f) >= 0 ? (p = P, u = r(p), a += 1) : (p - P) * (f - p) > 0 ? (u = r(p), a += 1, u < h && (t = f, f = p, p = f + zt * (f - t), l = h, h = u, u = r(p), a += 1)) : (p = f + zt * (f - t), u = r(p), a += 1);\n s = t, t = f, f = p, o = l, l = h, h = u;\n }\n return [s, t, f, o, l, h, a];\n}\nconst Re = 0.381966, rs = 1e-11;\nclass os {\n constructor(s, t = 148e-10, e = 500) {\n q(this, \"xmin\");\n q(this, \"fval\");\n q(this, \"iter\");\n q(this, \"funcalls\");\n q(this, \"brack\");\n this.func = s, this.tol = t, this.maxiter = e, this.func = s, this.tol = t, this.maxiter = e, this.xmin = 1 / 0, this.fval = 1 / 0, this.iter = 0, this.funcalls = 0, this.brack = null;\n }\n setBracket(s = null) {\n this.brack = s;\n }\n getBracketInfo() {\n let s, t, e, n, i, o, l;\n const h = this.func, a = this.brack;\n if (a === null)\n [i, o, l, s, t, e, n] = ke(h);\n else if (a.length === 2)\n [i, o, l, s, t, e, n] = ke(h, a[0], a[1]);\n else if (a.length === 3) {\n if ([i, o, l] = a, i > l && ([l, i] = [i, l]), !(i < o && o < l))\n throw new Error(\"Not a bracketing interval.\");\n if (s = h(i), t = h(o), e = h(l), !(t < s && t < e))\n throw new Error(\"Not a bracketing interval.\");\n n = 3;\n } else\n throw new Error(\n \"Bracketing interval must be length 2 or 3 sequence.\"\n );\n return [i, o, l, s, t, e, n];\n }\n optimize() {\n const s = this.func;\n let [t, e, n, , , , i] = this.getBracketInfo(), o = e, l = e, h = e, a = s(o), u = a, c = a, g, d;\n t < n ? (g = t, d = n) : (g = n, d = t);\n let w = 0;\n i = 1;\n let p = 0, P = 0, f;\n for (; p < this.maxiter; ) {\n const y = this.tol * Math.abs(o) + rs, E = 2 * y, R = 0.5 * (g + d);\n if (Math.abs(o - R) < E - 0.5 * (d - g))\n break;\n if (Math.abs(w) <= y)\n o >= R ? w = g - o : w = d - o, P = Re * w;\n else {\n const L = (o - l) * (c - u);\n let S = (o - h) * (c - a), k = (o - h) * S - (o - l) * L;\n S = 2 * (S - L), S > 0 && (k = -k), S = Math.abs(S);\n const D = w;\n w = P, k > S * (g - o) && k < S * (d - o) && Math.abs(k) < Math.abs(0.5 * S * D) ? (P = k * 1 / S, f = o + P, (f - g < E || d - f < E) && (R - o >= 0 ? P = y : P = -y)) : (o >= R ? w = g - o : w = d - o, P = Re * w);\n }\n Math.abs(P) < y ? P >= 0 ? f = o + y : f = o - y : f = o + P;\n const v = s(f);\n i += 1, v > c ? (f < o ? g = f : d = f, v <= a || l === o ? (h = l, l = f, u = a, a = v) : (v <= u || h === o || h === l) && (h = f, u = v)) : (f >= o ? g = o : d = o, h = l, l = o, o = f, u = a, a = c, c = v), p += 1;\n }\n this.xmin = o, this.fval = c, this.iter = p, this.funcalls = i;\n }\n results() {\n return {\n argMin: this.xmin,\n fMin: this.fval,\n iterations: this.iter,\n funcCalls: this.funcalls\n };\n }\n run() {\n return this.optimize(), this.results();\n }\n}\nfunction $e(r, s = 1e-8, t = 1e3) {\n const e = new os(r, s, t);\n return e.setBracket([0, 1]), e.run();\n}\nfunction Le(r) {\n if (r.__esModule) return r;\n var s = r.default;\n if (typeof s == \"function\") {\n var t = function e() {\n return this instanceof e ? Reflect.construct(s, arguments, this.constructor) : s.apply(this, arguments);\n };\n t.prototype = s.prototype;\n } else t = {};\n return Object.defineProperty(t, \"__esModule\", { value: !0 }), Object.keys(r).forEach(function(e) {\n var n = Object.getOwnPropertyDescriptor(r, e);\n Object.defineProperty(t, e, n.get ? n : {\n enumerable: !0,\n get: function() {\n return r[e];\n }\n });\n }), t;\n}\nvar $ = {};\nconst ls = Object.prototype.toString;\nfunction Ct(r) {\n const s = ls.call(r);\n return s.endsWith(\"Array]\") && !s.includes(\"Big\");\n}\nconst hs = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n isAnyArray: Ct\n}, Symbol.toStringTag, { value: \"Module\" })), as = /* @__PURE__ */ Le(hs);\nfunction us(r) {\n var s = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n if (!Ct(r))\n throw new TypeError(\"input must be an array\");\n if (r.length === 0)\n throw new TypeError(\"input must not be empty\");\n var t = s.fromIndex, e = t === void 0 ? 0 : t, n = s.toIndex, i = n === void 0 ? r.length : n;\n if (e < 0 || e >= r.length || !Number.isInteger(e))\n throw new Error(\"fromIndex must be a positive integer smaller than length\");\n if (i <= e || i > r.length || !Number.isInteger(i))\n throw new Error(\"toIndex must be an integer greater than fromIndex and at most equal to length\");\n for (var o = r[e], l = e + 1; l < i; l++)\n r[l] > o && (o = r[l]);\n return o;\n}\nfunction cs(r) {\n var s = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n if (!Ct(r))\n throw new TypeError(\"input must be an array\");\n if (r.length === 0)\n throw new TypeError(\"input must not be empty\");\n var t = s.fromIndex, e = t === void 0 ? 0 : t, n = s.toIndex, i = n === void 0 ? r.length : n;\n if (e < 0 || e >= r.length || !Number.isInteger(e))\n throw new Error(\"fromIndex must be a positive integer smaller than length\");\n if (i <= e || i > r.length || !Number.isInteger(i))\n throw new Error(\"toIndex must be an integer greater than fromIndex and at most equal to length\");\n for (var o = r[e], l = e + 1; l < i; l++)\n r[l] < o && (o = r[l]);\n return o;\n}\nfunction fs(r) {\n var s = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n if (Ct(r)) {\n if (r.length === 0)\n throw new TypeError(\"input must not be empty\");\n } else throw new TypeError(\"input must be an array\");\n var t;\n if (s.output !== void 0) {\n if (!Ct(s.output))\n throw new TypeError(\"output option must be an array if specified\");\n t = s.output;\n } else\n t = new Array(r.length);\n var e = cs(r), n = us(r);\n if (e === n)\n throw new RangeError(\"minimum and maximum input values are equal. Cannot rescale a constant array\");\n var i = s.min, o = i === void 0 ? s.autoMinMax ? e : 0 : i, l = s.max, h = l === void 0 ? s.autoMinMax ? n : 1 : l;\n if (o >= h)\n throw new RangeError(\"min option must be smaller than max option\");\n for (var a = (h - o) / (n - e), u = 0; u < r.length; u++)\n t[u] = (r[u] - e) * a + o;\n return t;\n}\nconst ms = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: fs\n}, Symbol.toStringTag, { value: \"Module\" })), gs = /* @__PURE__ */ Le(ms);\nObject.defineProperty($, \"__esModule\", { value: !0 });\nvar st = as, ve = gs;\nconst Ut = \" \".repeat(2), De = \" \".repeat(4);\nfunction ws() {\n return Oe(this);\n}\nfunction Oe(r, s = {}) {\n const {\n maxRows: t = 15,\n maxColumns: e = 10,\n maxNumSize: n = 8,\n padMinus: i = \"auto\"\n } = s;\n return `${r.constructor.name} {\n${Ut}[\n${De}${ps(r, t, e, n, i)}\n${Ut}]\n${Ut}rows: ${r.rows}\n${Ut}columns: ${r.columns}\n}`;\n}\nfunction ps(r, s, t, e, n) {\n const { rows: i, columns: o } = r, l = Math.min(i, s), h = Math.min(o, t), a = [];\n if (n === \"auto\") {\n n = !1;\n t: for (let u = 0; u < l; u++)\n for (let c = 0; c < h; c++)\n if (r.get(u, c) < 0) {\n n = !0;\n break t;\n }\n }\n for (let u = 0; u < l; u++) {\n let c = [];\n for (let g = 0; g < h; g++)\n c.push(ds(r.get(u, g), e, n));\n a.push(`${c.join(\" \")}`);\n }\n return h !== o && (a[a.length - 1] += ` ... ${o - t} more columns`), l !== i && a.push(`... ${i - s} more rows`), a.join(`\n${De}`);\n}\nfunction ds(r, s, t) {\n return (r >= 0 && t ? ` ${Ie(r, s - 1)}` : Ie(r, s)).padEnd(s);\n}\nfunction Ie(r, s) {\n let t = r.toString();\n if (t.length <= s) return t;\n let e = r.toFixed(s);\n if (e.length > s && (e = r.toFixed(Math.max(0, s - (e.length - s)))), e.length <= s && !e.startsWith(\"0.000\") && !e.startsWith(\"-0.000\"))\n return e;\n let n = r.toExponential(s);\n return n.length > s && (n = r.toExponential(Math.max(0, s - (n.length - s)))), n.slice(0);\n}\nfunction ys(r, s) {\n r.prototype.add = function(e) {\n return typeof e == \"number\" ? this.addS(e) : this.addM(e);\n }, r.prototype.addS = function(e) {\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) + e);\n return this;\n }, r.prototype.addM = function(e) {\n if (e = s.checkMatrix(e), this.rows !== e.rows || this.columns !== e.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) + e.get(n, i));\n return this;\n }, r.add = function(e, n) {\n return new s(e).add(n);\n }, r.prototype.sub = function(e) {\n return typeof e == \"number\" ? this.subS(e) : this.subM(e);\n }, r.prototype.subS = function(e) {\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) - e);\n return this;\n }, r.prototype.subM = function(e) {\n if (e = s.checkMatrix(e), this.rows !== e.rows || this.columns !== e.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) - e.get(n, i));\n return this;\n }, r.sub = function(e, n) {\n return new s(e).sub(n);\n }, r.prototype.subtract = r.prototype.sub, r.prototype.subtractS = r.prototype.subS, r.prototype.subtractM = r.prototype.subM, r.subtract = r.sub, r.prototype.mul = function(e) {\n return typeof e == \"number\" ? this.mulS(e) : this.mulM(e);\n }, r.prototype.mulS = function(e) {\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) * e);\n return this;\n }, r.prototype.mulM = function(e) {\n if (e = s.checkMatrix(e), this.rows !== e.rows || this.columns !== e.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) * e.get(n, i));\n return this;\n }, r.mul = function(e, n) {\n return new s(e).mul(n);\n }, r.prototype.multiply = r.prototype.mul, r.prototype.multiplyS = r.prototype.mulS, r.prototype.multiplyM = r.prototype.mulM, r.multiply = r.mul, r.prototype.div = function(e) {\n return typeof e == \"number\" ? this.divS(e) : this.divM(e);\n }, r.prototype.divS = function(e) {\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) / e);\n return this;\n }, r.prototype.divM = function(e) {\n if (e = s.checkMatrix(e), this.rows !== e.rows || this.columns !== e.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) / e.get(n, i));\n return this;\n }, r.div = function(e, n) {\n return new s(e).div(n);\n }, r.prototype.divide = r.prototype.div, r.prototype.divideS = r.prototype.divS, r.prototype.divideM = r.prototype.divM, r.divide = r.div, r.prototype.mod = function(e) {\n return typeof e == \"number\" ? this.modS(e) : this.modM(e);\n }, r.prototype.modS = function(e) {\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) % e);\n return this;\n }, r.prototype.modM = function(e) {\n if (e = s.checkMatrix(e), this.rows !== e.rows || this.columns !== e.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) % e.get(n, i));\n return this;\n }, r.mod = function(e, n) {\n return new s(e).mod(n);\n }, r.prototype.modulus = r.prototype.mod, r.prototype.modulusS = r.prototype.modS, r.prototype.modulusM = r.prototype.modM, r.modulus = r.mod, r.prototype.and = function(e) {\n return typeof e == \"number\" ? this.andS(e) : this.andM(e);\n }, r.prototype.andS = function(e) {\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) & e);\n return this;\n }, r.prototype.andM = function(e) {\n if (e = s.checkMatrix(e), this.rows !== e.rows || this.columns !== e.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) & e.get(n, i));\n return this;\n }, r.and = function(e, n) {\n return new s(e).and(n);\n }, r.prototype.or = function(e) {\n return typeof e == \"number\" ? this.orS(e) : this.orM(e);\n }, r.prototype.orS = function(e) {\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) | e);\n return this;\n }, r.prototype.orM = function(e) {\n if (e = s.checkMatrix(e), this.rows !== e.rows || this.columns !== e.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) | e.get(n, i));\n return this;\n }, r.or = function(e, n) {\n return new s(e).or(n);\n }, r.prototype.xor = function(e) {\n return typeof e == \"number\" ? this.xorS(e) : this.xorM(e);\n }, r.prototype.xorS = function(e) {\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) ^ e);\n return this;\n }, r.prototype.xorM = function(e) {\n if (e = s.checkMatrix(e), this.rows !== e.rows || this.columns !== e.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) ^ e.get(n, i));\n return this;\n }, r.xor = function(e, n) {\n return new s(e).xor(n);\n }, r.prototype.leftShift = function(e) {\n return typeof e == \"number\" ? this.leftShiftS(e) : this.leftShiftM(e);\n }, r.prototype.leftShiftS = function(e) {\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) << e);\n return this;\n }, r.prototype.leftShiftM = function(e) {\n if (e = s.checkMatrix(e), this.rows !== e.rows || this.columns !== e.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) << e.get(n, i));\n return this;\n }, r.leftShift = function(e, n) {\n return new s(e).leftShift(n);\n }, r.prototype.signPropagatingRightShift = function(e) {\n return typeof e == \"number\" ? this.signPropagatingRightShiftS(e) : this.signPropagatingRightShiftM(e);\n }, r.prototype.signPropagatingRightShiftS = function(e) {\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) >> e);\n return this;\n }, r.prototype.signPropagatingRightShiftM = function(e) {\n if (e = s.checkMatrix(e), this.rows !== e.rows || this.columns !== e.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) >> e.get(n, i));\n return this;\n }, r.signPropagatingRightShift = function(e, n) {\n return new s(e).signPropagatingRightShift(n);\n }, r.prototype.rightShift = function(e) {\n return typeof e == \"number\" ? this.rightShiftS(e) : this.rightShiftM(e);\n }, r.prototype.rightShiftS = function(e) {\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) >>> e);\n return this;\n }, r.prototype.rightShiftM = function(e) {\n if (e = s.checkMatrix(e), this.rows !== e.rows || this.columns !== e.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) >>> e.get(n, i));\n return this;\n }, r.rightShift = function(e, n) {\n return new s(e).rightShift(n);\n }, r.prototype.zeroFillRightShift = r.prototype.rightShift, r.prototype.zeroFillRightShiftS = r.prototype.rightShiftS, r.prototype.zeroFillRightShiftM = r.prototype.rightShiftM, r.zeroFillRightShift = r.rightShift, r.prototype.not = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, ~this.get(e, n));\n return this;\n }, r.not = function(e) {\n return new s(e).not();\n }, r.prototype.abs = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.abs(this.get(e, n)));\n return this;\n }, r.abs = function(e) {\n return new s(e).abs();\n }, r.prototype.acos = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.acos(this.get(e, n)));\n return this;\n }, r.acos = function(e) {\n return new s(e).acos();\n }, r.prototype.acosh = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.acosh(this.get(e, n)));\n return this;\n }, r.acosh = function(e) {\n return new s(e).acosh();\n }, r.prototype.asin = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.asin(this.get(e, n)));\n return this;\n }, r.asin = function(e) {\n return new s(e).asin();\n }, r.prototype.asinh = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.asinh(this.get(e, n)));\n return this;\n }, r.asinh = function(e) {\n return new s(e).asinh();\n }, r.prototype.atan = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.atan(this.get(e, n)));\n return this;\n }, r.atan = function(e) {\n return new s(e).atan();\n }, r.prototype.atanh = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.atanh(this.get(e, n)));\n return this;\n }, r.atanh = function(e) {\n return new s(e).atanh();\n }, r.prototype.cbrt = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.cbrt(this.get(e, n)));\n return this;\n }, r.cbrt = function(e) {\n return new s(e).cbrt();\n }, r.prototype.ceil = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.ceil(this.get(e, n)));\n return this;\n }, r.ceil = function(e) {\n return new s(e).ceil();\n }, r.prototype.clz32 = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.clz32(this.get(e, n)));\n return this;\n }, r.clz32 = function(e) {\n return new s(e).clz32();\n }, r.prototype.cos = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.cos(this.get(e, n)));\n return this;\n }, r.cos = function(e) {\n return new s(e).cos();\n }, r.prototype.cosh = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.cosh(this.get(e, n)));\n return this;\n }, r.cosh = function(e) {\n return new s(e).cosh();\n }, r.prototype.exp = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.exp(this.get(e, n)));\n return this;\n }, r.exp = function(e) {\n return new s(e).exp();\n }, r.prototype.expm1 = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.expm1(this.get(e, n)));\n return this;\n }, r.expm1 = function(e) {\n return new s(e).expm1();\n }, r.prototype.floor = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.floor(this.get(e, n)));\n return this;\n }, r.floor = function(e) {\n return new s(e).floor();\n }, r.prototype.fround = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.fround(this.get(e, n)));\n return this;\n }, r.fround = function(e) {\n return new s(e).fround();\n }, r.prototype.log = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.log(this.get(e, n)));\n return this;\n }, r.log = function(e) {\n return new s(e).log();\n }, r.prototype.log1p = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.log1p(this.get(e, n)));\n return this;\n }, r.log1p = function(e) {\n return new s(e).log1p();\n }, r.prototype.log10 = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.log10(this.get(e, n)));\n return this;\n }, r.log10 = function(e) {\n return new s(e).log10();\n }, r.prototype.log2 = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.log2(this.get(e, n)));\n return this;\n }, r.log2 = function(e) {\n return new s(e).log2();\n }, r.prototype.round = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.round(this.get(e, n)));\n return this;\n }, r.round = function(e) {\n return new s(e).round();\n }, r.prototype.sign = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.sign(this.get(e, n)));\n return this;\n }, r.sign = function(e) {\n return new s(e).sign();\n }, r.prototype.sin = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.sin(this.get(e, n)));\n return this;\n }, r.sin = function(e) {\n return new s(e).sin();\n }, r.prototype.sinh = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.sinh(this.get(e, n)));\n return this;\n }, r.sinh = function(e) {\n return new s(e).sinh();\n }, r.prototype.sqrt = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.sqrt(this.get(e, n)));\n return this;\n }, r.sqrt = function(e) {\n return new s(e).sqrt();\n }, r.prototype.tan = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.tan(this.get(e, n)));\n return this;\n }, r.tan = function(e) {\n return new s(e).tan();\n }, r.prototype.tanh = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.tanh(this.get(e, n)));\n return this;\n }, r.tanh = function(e) {\n return new s(e).tanh();\n }, r.prototype.trunc = function() {\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.set(e, n, Math.trunc(this.get(e, n)));\n return this;\n }, r.trunc = function(e) {\n return new s(e).trunc();\n }, r.pow = function(e, n) {\n return new s(e).pow(n);\n }, r.prototype.pow = function(e) {\n return typeof e == \"number\" ? this.powS(e) : this.powM(e);\n }, r.prototype.powS = function(e) {\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) ** e);\n return this;\n }, r.prototype.powM = function(e) {\n if (e = s.checkMatrix(e), this.rows !== e.rows || this.columns !== e.columns)\n throw new RangeError(\"Matrices dimensions must be equal\");\n for (let n = 0; n < this.rows; n++)\n for (let i = 0; i < this.columns; i++)\n this.set(n, i, this.get(n, i) ** e.get(n, i));\n return this;\n };\n}\nfunction ot(r, s, t) {\n let e = t ? r.rows : r.rows - 1;\n if (s < 0 || s > e)\n throw new RangeError(\"Row index out of range\");\n}\nfunction lt(r, s, t) {\n let e = t ? r.columns : r.columns - 1;\n if (s < 0 || s > e)\n throw new RangeError(\"Column index out of range\");\n}\nfunction Pt(r, s) {\n if (s.to1DArray && (s = s.to1DArray()), s.length !== r.columns)\n throw new RangeError(\n \"vector size must be the same as the number of columns\"\n );\n return s;\n}\nfunction bt(r, s) {\n if (s.to1DArray && (s = s.to1DArray()), s.length !== r.rows)\n throw new RangeError(\"vector size must be the same as the number of rows\");\n return s;\n}\nfunction ge(r, s) {\n if (!st.isAnyArray(s))\n throw new TypeError(\"row indices must be an array\");\n for (let t = 0; t < s.length; t++)\n if (s[t] < 0 || s[t] >= r.rows)\n throw new RangeError(\"row indices are out of range\");\n}\nfunction we(r, s) {\n if (!st.isAnyArray(s))\n throw new TypeError(\"column indices must be an array\");\n for (let t = 0; t < s.length; t++)\n if (s[t] < 0 || s[t] >= r.columns)\n throw new RangeError(\"column indices are out of range\");\n}\nfunction ae(r, s, t, e, n) {\n if (arguments.length !== 5)\n throw new RangeError(\"expected 4 arguments\");\n if (Yt(\"startRow\", s), Yt(\"endRow\", t), Yt(\"startColumn\", e), Yt(\"endColumn\", n), s > t || e > n || s < 0 || s >= r.rows || t < 0 || t >= r.rows || e < 0 || e >= r.columns || n < 0 || n >= r.columns)\n throw new RangeError(\"Submatrix indices are out of range\");\n}\nfunction Ht(r, s = 0) {\n let t = [];\n for (let e = 0; e < r; e++)\n t.push(s);\n return t;\n}\nfunction Yt(r, s) {\n if (typeof s != \"number\")\n throw new TypeError(`${r} must be a number`);\n}\nfunction Mt(r) {\n if (r.isEmpty())\n throw new Error(\"Empty matrix has no elements to index\");\n}\nfunction Ms(r) {\n let s = Ht(r.rows);\n for (let t = 0; t < r.rows; ++t)\n for (let e = 0; e < r.columns; ++e)\n s[t] += r.get(t, e);\n return s;\n}\nfunction Ps(r) {\n let s = Ht(r.columns);\n for (let t = 0; t < r.rows; ++t)\n for (let e = 0; e < r.columns; ++e)\n s[e] += r.get(t, e);\n return s;\n}\nfunction bs(r) {\n let s = 0;\n for (let t = 0; t < r.rows; t++)\n for (let e = 0; e < r.columns; e++)\n s += r.get(t, e);\n return s;\n}\nfunction Es(r) {\n let s = Ht(r.rows, 1);\n for (let t = 0; t < r.rows; ++t)\n for (let e = 0; e < r.columns; ++e)\n s[t] *= r.get(t, e);\n return s;\n}\nfunction _s(r) {\n let s = Ht(r.columns, 1);\n for (let t = 0; t < r.rows; ++t)\n for (let e = 0; e < r.columns; ++e)\n s[e] *= r.get(t, e);\n return s;\n}\nfunction js(r) {\n let s = 1;\n for (let t = 0; t < r.rows; t++)\n for (let e = 0; e < r.columns; e++)\n s *= r.get(t, e);\n return s;\n}\nfunction Ss(r, s, t) {\n const e = r.rows, n = r.columns, i = [];\n for (let o = 0; o < e; o++) {\n let l = 0, h = 0, a = 0;\n for (let u = 0; u < n; u++)\n a = r.get(o, u) - t[o], l += a, h += a * a;\n s ? i.push((h - l * l / n) / (n - 1)) : i.push((h - l * l / n) / n);\n }\n return i;\n}\nfunction ks(r, s, t) {\n const e = r.rows, n = r.columns, i = [];\n for (let o = 0; o < n; o++) {\n let l = 0, h = 0, a = 0;\n for (let u = 0; u < e; u++)\n a = r.get(u, o) - t[o], l += a, h += a * a;\n s ? i.push((h - l * l / e) / (e - 1)) : i.push((h - l * l / e) / e);\n }\n return i;\n}\nfunction Rs(r, s, t) {\n const e = r.rows, n = r.columns, i = e * n;\n let o = 0, l = 0, h = 0;\n for (let a = 0; a < e; a++)\n for (let u = 0; u < n; u++)\n h = r.get(a, u) - t, o += h, l += h * h;\n return s ? (l - o * o / i) / (i - 1) : (l - o * o / i) / i;\n}\nfunction vs(r, s) {\n for (let t = 0; t < r.rows; t++)\n for (let e = 0; e < r.columns; e++)\n r.set(t, e, r.get(t, e) - s[t]);\n}\nfunction Is(r, s) {\n for (let t = 0; t < r.rows; t++)\n for (let e = 0; e < r.columns; e++)\n r.set(t, e, r.get(t, e) - s[e]);\n}\nfunction Ts(r, s) {\n for (let t = 0; t < r.rows; t++)\n for (let e = 0; e < r.columns; e++)\n r.set(t, e, r.get(t, e) - s);\n}\nfunction Cs(r) {\n const s = [];\n for (let t = 0; t < r.rows; t++) {\n let e = 0;\n for (let n = 0; n < r.columns; n++)\n e += r.get(t, n) ** 2 / (r.columns - 1);\n s.push(Math.sqrt(e));\n }\n return s;\n}\nfunction qs(r, s) {\n for (let t = 0; t < r.rows; t++)\n for (let e = 0; e < r.columns; e++)\n r.set(t, e, r.get(t, e) / s[t]);\n}\nfunction As(r) {\n const s = [];\n for (let t = 0; t < r.columns; t++) {\n let e = 0;\n for (let n = 0; n < r.rows; n++)\n e += r.get(n, t) ** 2 / (r.rows - 1);\n s.push(Math.sqrt(e));\n }\n return s;\n}\nfunction Fs(r, s) {\n for (let t = 0; t < r.rows; t++)\n for (let e = 0; e < r.columns; e++)\n r.set(t, e, r.get(t, e) / s[e]);\n}\nfunction xs(r) {\n const s = r.size - 1;\n let t = 0;\n for (let e = 0; e < r.columns; e++)\n for (let n = 0; n < r.rows; n++)\n t += r.get(n, e) ** 2 / s;\n return Math.sqrt(t);\n}\nfunction Ns(r, s) {\n for (let t = 0; t < r.rows; t++)\n for (let e = 0; e < r.columns; e++)\n r.set(t, e, r.get(t, e) / s);\n}\nclass N {\n static from1DArray(s, t, e) {\n if (s * t !== e.length)\n throw new RangeError(\"data length does not match given dimensions\");\n let i = new _(s, t);\n for (let o = 0; o < s; o++)\n for (let l = 0; l < t; l++)\n i.set(o, l, e[o * t + l]);\n return i;\n }\n static rowVector(s) {\n let t = new _(1, s.length);\n for (let e = 0; e < s.length; e++)\n t.set(0, e, s[e]);\n return t;\n }\n static columnVector(s) {\n let t = new _(s.length, 1);\n for (let e = 0; e < s.length; e++)\n t.set(e, 0, s[e]);\n return t;\n }\n static zeros(s, t) {\n return new _(s, t);\n }\n static ones(s, t) {\n return new _(s, t).fill(1);\n }\n static rand(s, t, e = {}) {\n if (typeof e != \"object\")\n throw new TypeError(\"options must be an object\");\n const { random: n = Math.random } = e;\n let i = new _(s, t);\n for (let o = 0; o < s; o++)\n for (let l = 0; l < t; l++)\n i.set(o, l, n());\n return i;\n }\n static randInt(s, t, e = {}) {\n if (typeof e != \"object\")\n throw new TypeError(\"options must be an object\");\n const { min: n = 0, max: i = 1e3, random: o = Math.random } = e;\n if (!Number.isInteger(n)) throw new TypeError(\"min must be an integer\");\n if (!Number.isInteger(i)) throw new TypeError(\"max must be an integer\");\n if (n >= i) throw new RangeError(\"min must be smaller than max\");\n let l = i - n, h = new _(s, t);\n for (let a = 0; a < s; a++)\n for (let u = 0; u < t; u++) {\n let c = n + Math.round(o() * l);\n h.set(a, u, c);\n }\n return h;\n }\n static eye(s, t, e) {\n t === void 0 && (t = s), e === void 0 && (e = 1);\n let n = Math.min(s, t), i = this.zeros(s, t);\n for (let o = 0; o < n; o++)\n i.set(o, o, e);\n return i;\n }\n static diag(s, t, e) {\n let n = s.length;\n t === void 0 && (t = n), e === void 0 && (e = t);\n let i = Math.min(n, t, e), o = this.zeros(t, e);\n for (let l = 0; l < i; l++)\n o.set(l, l, s[l]);\n return o;\n }\n static min(s, t) {\n s = this.checkMatrix(s), t = this.checkMatrix(t);\n let e = s.rows, n = s.columns, i = new _(e, n);\n for (let o = 0; o < e; o++)\n for (let l = 0; l < n; l++)\n i.set(o, l, Math.min(s.get(o, l), t.get(o, l)));\n return i;\n }\n static max(s, t) {\n s = this.checkMatrix(s), t = this.checkMatrix(t);\n let e = s.rows, n = s.columns, i = new this(e, n);\n for (let o = 0; o < e; o++)\n for (let l = 0; l < n; l++)\n i.set(o, l, Math.max(s.get(o, l), t.get(o, l)));\n return i;\n }\n static checkMatrix(s) {\n return N.isMatrix(s) ? s : new _(s);\n }\n static isMatrix(s) {\n return s != null && s.klass === \"Matrix\";\n }\n get size() {\n return this.rows * this.columns;\n }\n apply(s) {\n if (typeof s != \"function\")\n throw new TypeError(\"callback must be a function\");\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < this.columns; e++)\n s.call(this, t, e);\n return this;\n }\n to1DArray() {\n let s = [];\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < this.columns; e++)\n s.push(this.get(t, e));\n return s;\n }\n to2DArray() {\n let s = [];\n for (let t = 0; t < this.rows; t++) {\n s.push([]);\n for (let e = 0; e < this.columns; e++)\n s[t].push(this.get(t, e));\n }\n return s;\n }\n toJSON() {\n return this.to2DArray();\n }\n isRowVector() {\n return this.rows === 1;\n }\n isColumnVector() {\n return this.columns === 1;\n }\n isVector() {\n return this.rows === 1 || this.columns === 1;\n }\n isSquare() {\n return this.rows === this.columns;\n }\n isEmpty() {\n return this.rows === 0 || this.columns === 0;\n }\n isSymmetric() {\n if (this.isSquare()) {\n for (let s = 0; s < this.rows; s++)\n for (let t = 0; t <= s; t++)\n if (this.get(s, t) !== this.get(t, s))\n return !1;\n return !0;\n }\n return !1;\n }\n isDistance() {\n if (!this.isSymmetric()) return !1;\n for (let s = 0; s < this.rows; s++)\n if (this.get(s, s) !== 0) return !1;\n return !0;\n }\n isEchelonForm() {\n let s = 0, t = 0, e = -1, n = !0, i = !1;\n for (; s < this.rows && n; ) {\n for (t = 0, i = !1; t < this.columns && i === !1; )\n this.get(s, t) === 0 ? t++ : this.get(s, t) === 1 && t > e ? (i = !0, e = t) : (n = !1, i = !0);\n s++;\n }\n return n;\n }\n isReducedEchelonForm() {\n let s = 0, t = 0, e = -1, n = !0, i = !1;\n for (; s < this.rows && n; ) {\n for (t = 0, i = !1; t < this.columns && i === !1; )\n this.get(s, t) === 0 ? t++ : this.get(s, t) === 1 && t > e ? (i = !0, e = t) : (n = !1, i = !0);\n for (let o = t + 1; o < this.rows; o++)\n this.get(s, o) !== 0 && (n = !1);\n s++;\n }\n return n;\n }\n echelonForm() {\n let s = this.clone(), t = 0, e = 0;\n for (; t < s.rows && e < s.columns; ) {\n let n = t;\n for (let i = t; i < s.rows; i++)\n s.get(i, e) > s.get(n, e) && (n = i);\n if (s.get(n, e) === 0)\n e++;\n else {\n s.swapRows(t, n);\n let i = s.get(t, e);\n for (let o = e; o < s.columns; o++)\n s.set(t, o, s.get(t, o) / i);\n for (let o = t + 1; o < s.rows; o++) {\n let l = s.get(o, e) / s.get(t, e);\n s.set(o, e, 0);\n for (let h = e + 1; h < s.columns; h++)\n s.set(o, h, s.get(o, h) - s.get(t, h) * l);\n }\n t++, e++;\n }\n }\n return s;\n }\n reducedEchelonForm() {\n let s = this.echelonForm(), t = s.columns, e = s.rows, n = e - 1;\n for (; n >= 0; )\n if (s.maxRow(n) === 0)\n n--;\n else {\n let i = 0, o = !1;\n for (; i < e && o === !1; )\n s.get(n, i) === 1 ? o = !0 : i++;\n for (let l = 0; l < n; l++) {\n let h = s.get(l, i);\n for (let a = i; a < t; a++) {\n let u = s.get(l, a) - h * s.get(n, a);\n s.set(l, a, u);\n }\n }\n n--;\n }\n return s;\n }\n set() {\n throw new Error(\"set method is unimplemented\");\n }\n get() {\n throw new Error(\"get method is unimplemented\");\n }\n repeat(s = {}) {\n if (typeof s != \"object\")\n throw new TypeError(\"options must be an object\");\n const { rows: t = 1, columns: e = 1 } = s;\n if (!Number.isInteger(t) || t <= 0)\n throw new TypeError(\"rows must be a positive integer\");\n if (!Number.isInteger(e) || e <= 0)\n throw new TypeError(\"columns must be a positive integer\");\n let n = new _(this.rows * t, this.columns * e);\n for (let i = 0; i < t; i++)\n for (let o = 0; o < e; o++)\n n.setSubMatrix(this, this.rows * i, this.columns * o);\n return n;\n }\n fill(s) {\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < this.columns; e++)\n this.set(t, e, s);\n return this;\n }\n neg() {\n return this.mulS(-1);\n }\n getRow(s) {\n ot(this, s);\n let t = [];\n for (let e = 0; e < this.columns; e++)\n t.push(this.get(s, e));\n return t;\n }\n getRowVector(s) {\n return _.rowVector(this.getRow(s));\n }\n setRow(s, t) {\n ot(this, s), t = Pt(this, t);\n for (let e = 0; e < this.columns; e++)\n this.set(s, e, t[e]);\n return this;\n }\n swapRows(s, t) {\n ot(this, s), ot(this, t);\n for (let e = 0; e < this.columns; e++) {\n let n = this.get(s, e);\n this.set(s, e, this.get(t, e)), this.set(t, e, n);\n }\n return this;\n }\n getColumn(s) {\n lt(this, s);\n let t = [];\n for (let e = 0; e < this.rows; e++)\n t.push(this.get(e, s));\n return t;\n }\n getColumnVector(s) {\n return _.columnVector(this.getColumn(s));\n }\n setColumn(s, t) {\n lt(this, s), t = bt(this, t);\n for (let e = 0; e < this.rows; e++)\n this.set(e, s, t[e]);\n return this;\n }\n swapColumns(s, t) {\n lt(this, s), lt(this, t);\n for (let e = 0; e < this.rows; e++) {\n let n = this.get(e, s);\n this.set(e, s, this.get(e, t)), this.set(e, t, n);\n }\n return this;\n }\n addRowVector(s) {\n s = Pt(this, s);\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < this.columns; e++)\n this.set(t, e, this.get(t, e) + s[e]);\n return this;\n }\n subRowVector(s) {\n s = Pt(this, s);\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < this.columns; e++)\n this.set(t, e, this.get(t, e) - s[e]);\n return this;\n }\n mulRowVector(s) {\n s = Pt(this, s);\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < this.columns; e++)\n this.set(t, e, this.get(t, e) * s[e]);\n return this;\n }\n divRowVector(s) {\n s = Pt(this, s);\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < this.columns; e++)\n this.set(t, e, this.get(t, e) / s[e]);\n return this;\n }\n addColumnVector(s) {\n s = bt(this, s);\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < this.columns; e++)\n this.set(t, e, this.get(t, e) + s[t]);\n return this;\n }\n subColumnVector(s) {\n s = bt(this, s);\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < this.columns; e++)\n this.set(t, e, this.get(t, e) - s[t]);\n return this;\n }\n mulColumnVector(s) {\n s = bt(this, s);\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < this.columns; e++)\n this.set(t, e, this.get(t, e) * s[t]);\n return this;\n }\n divColumnVector(s) {\n s = bt(this, s);\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < this.columns; e++)\n this.set(t, e, this.get(t, e) / s[t]);\n return this;\n }\n mulRow(s, t) {\n ot(this, s);\n for (let e = 0; e < this.columns; e++)\n this.set(s, e, this.get(s, e) * t);\n return this;\n }\n mulColumn(s, t) {\n lt(this, s);\n for (let e = 0; e < this.rows; e++)\n this.set(e, s, this.get(e, s) * t);\n return this;\n }\n max(s) {\n if (this.isEmpty())\n return NaN;\n switch (s) {\n case \"row\": {\n const t = new Array(this.rows).fill(Number.NEGATIVE_INFINITY);\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.get(e, n) > t[e] && (t[e] = this.get(e, n));\n return t;\n }\n case \"column\": {\n const t = new Array(this.columns).fill(Number.NEGATIVE_INFINITY);\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.get(e, n) > t[n] && (t[n] = this.get(e, n));\n return t;\n }\n case void 0: {\n let t = this.get(0, 0);\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.get(e, n) > t && (t = this.get(e, n));\n return t;\n }\n default:\n throw new Error(`invalid option: ${s}`);\n }\n }\n maxIndex() {\n Mt(this);\n let s = this.get(0, 0), t = [0, 0];\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.get(e, n) > s && (s = this.get(e, n), t[0] = e, t[1] = n);\n return t;\n }\n min(s) {\n if (this.isEmpty())\n return NaN;\n switch (s) {\n case \"row\": {\n const t = new Array(this.rows).fill(Number.POSITIVE_INFINITY);\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.get(e, n) < t[e] && (t[e] = this.get(e, n));\n return t;\n }\n case \"column\": {\n const t = new Array(this.columns).fill(Number.POSITIVE_INFINITY);\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.get(e, n) < t[n] && (t[n] = this.get(e, n));\n return t;\n }\n case void 0: {\n let t = this.get(0, 0);\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.get(e, n) < t && (t = this.get(e, n));\n return t;\n }\n default:\n throw new Error(`invalid option: ${s}`);\n }\n }\n minIndex() {\n Mt(this);\n let s = this.get(0, 0), t = [0, 0];\n for (let e = 0; e < this.rows; e++)\n for (let n = 0; n < this.columns; n++)\n this.get(e, n) < s && (s = this.get(e, n), t[0] = e, t[1] = n);\n return t;\n }\n maxRow(s) {\n if (ot(this, s), this.isEmpty())\n return NaN;\n let t = this.get(s, 0);\n for (let e = 1; e < this.columns; e++)\n this.get(s, e) > t && (t = this.get(s, e));\n return t;\n }\n maxRowIndex(s) {\n ot(this, s), Mt(this);\n let t = this.get(s, 0), e = [s, 0];\n for (let n = 1; n < this.columns; n++)\n this.get(s, n) > t && (t = this.get(s, n), e[1] = n);\n return e;\n }\n minRow(s) {\n if (ot(this, s), this.isEmpty())\n return NaN;\n let t = this.get(s, 0);\n for (let e = 1; e < this.columns; e++)\n this.get(s, e) < t && (t = this.get(s, e));\n return t;\n }\n minRowIndex(s) {\n ot(this, s), Mt(this);\n let t = this.get(s, 0), e = [s, 0];\n for (let n = 1; n < this.columns; n++)\n this.get(s, n) < t && (t = this.get(s, n), e[1] = n);\n return e;\n }\n maxColumn(s) {\n if (lt(this, s), this.isEmpty())\n return NaN;\n let t = this.get(0, s);\n for (let e = 1; e < this.rows; e++)\n this.get(e, s) > t && (t = this.get(e, s));\n return t;\n }\n maxColumnIndex(s) {\n lt(this, s), Mt(this);\n let t = this.get(0, s), e = [0, s];\n for (let n = 1; n < this.rows; n++)\n this.get(n, s) > t && (t = this.get(n, s), e[0] = n);\n return e;\n }\n minColumn(s) {\n if (lt(this, s), this.isEmpty())\n return NaN;\n let t = this.get(0, s);\n for (let e = 1; e < this.rows; e++)\n this.get(e, s) < t && (t = this.get(e, s));\n return t;\n }\n minColumnIndex(s) {\n lt(this, s), Mt(this);\n let t = this.get(0, s), e = [0, s];\n for (let n = 1; n < this.rows; n++)\n this.get(n, s) < t && (t = this.get(n, s), e[0] = n);\n return e;\n }\n diag() {\n let s = Math.min(this.rows, this.columns), t = [];\n for (let e = 0; e < s; e++)\n t.push(this.get(e, e));\n return t;\n }\n norm(s = \"frobenius\") {\n switch (s) {\n case \"max\":\n return this.max();\n case \"frobenius\":\n return Math.sqrt(this.dot(this));\n default:\n throw new RangeError(`unknown norm type: ${s}`);\n }\n }\n cumulativeSum() {\n let s = 0;\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < this.columns; e++)\n s += this.get(t, e), this.set(t, e, s);\n return this;\n }\n dot(s) {\n N.isMatrix(s) && (s = s.to1DArray());\n let t = this.to1DArray();\n if (t.length !== s.length)\n throw new RangeError(\"vectors do not have the same size\");\n let e = 0;\n for (let n = 0; n < t.length; n++)\n e += t[n] * s[n];\n return e;\n }\n mmul(s) {\n s = _.checkMatrix(s);\n let t = this.rows, e = this.columns, n = s.columns, i = new _(t, n), o = new Float64Array(e);\n for (let l = 0; l < n; l++) {\n for (let h = 0; h < e; h++)\n o[h] = s.get(h, l);\n for (let h = 0; h < t; h++) {\n let a = 0;\n for (let u = 0; u < e; u++)\n a += this.get(h, u) * o[u];\n i.set(h, l, a);\n }\n }\n return i;\n }\n mpow(s) {\n if (!this.isSquare())\n throw new RangeError(\"Matrix must be square\");\n if (!Number.isInteger(s) || s < 0)\n throw new RangeError(\"Exponent must be a non-negative integer\");\n let t = _.eye(this.rows), e = this;\n for (let n = s; n > 1; n /= 2)\n n & 1 && (t = t.mmul(e)), e = e.mmul(e);\n return t;\n }\n strassen2x2(s) {\n s = _.checkMatrix(s);\n let t = new _(2, 2);\n const e = this.get(0, 0), n = s.get(0, 0), i = this.get(0, 1), o = s.get(0, 1), l = this.get(1, 0), h = s.get(1, 0), a = this.get(1, 1), u = s.get(1, 1), c = (e + a) * (n + u), g = (l + a) * n, d = e * (o - u), w = a * (h - n), p = (e + i) * u, P = (l - e) * (n + o), f = (i - a) * (h + u), y = c + w - p + f, E = d + p, R = g + w, v = c - g + d + P;\n return t.set(0, 0, y), t.set(0, 1, E), t.set(1, 0, R), t.set(1, 1, v), t;\n }\n strassen3x3(s) {\n s = _.checkMatrix(s);\n let t = new _(3, 3);\n const e = this.get(0, 0), n = this.get(0, 1), i = this.get(0, 2), o = this.get(1, 0), l = this.get(1, 1), h = this.get(1, 2), a = this.get(2, 0), u = this.get(2, 1), c = this.get(2, 2), g = s.get(0, 0), d = s.get(0, 1), w = s.get(0, 2), p = s.get(1, 0), P = s.get(1, 1), f = s.get(1, 2), y = s.get(2, 0), E = s.get(2, 1), R = s.get(2, 2), v = (e + n + i - o - l - u - c) * P, L = (e - o) * (-d + P), S = l * (-g + d + p - P - f - y + R), k = (-e + o + l) * (g - d + P), D = (o + l) * (-g + d), m = e * g, b = (-e + a + u) * (g - w + f), j = (-e + a) * (w - f), M = (a + u) * (-g + w), C = (e + n + i - l - h - a - u) * f, A = u * (-g + w + p - P - f - y + E), T = (-i + u + c) * (P + y - E), z = (i - c) * (P - E), F = i * y, V = (u + c) * (-y + E), x = (-i + l + h) * (f + y - R), B = (i - h) * (f - R), U = (l + h) * (-y + R), I = n * p, O = h * E, X = o * w, G = a * d, W = c * R, se = m + F + I, ne = v + k + D + m + T + F + V, ie = m + b + M + C + F + x + U, re = L + S + k + m + F + x + B, xt = L + k + D + m + O, Nt = F + x + B + U + X, Vt = m + b + j + A + T + z + F, $t = T + z + F + V + G, Lt = m + b + j + M + W;\n return t.set(0, 0, se), t.set(0, 1, ne), t.set(0, 2, ie), t.set(1, 0, re), t.set(1, 1, xt), t.set(1, 2, Nt), t.set(2, 0, Vt), t.set(2, 1, $t), t.set(2, 2, Lt), t;\n }\n mmulStrassen(s) {\n s = _.checkMatrix(s);\n let t = this.clone(), e = t.rows, n = t.columns, i = s.rows, o = s.columns;\n n !== i && console.warn(\n `Multiplying ${e} x ${n} and ${i} x ${o} matrix: dimensions do not match.`\n );\n function l(c, g, d) {\n let w = c.rows, p = c.columns;\n if (w === g && p === d)\n return c;\n {\n let P = N.zeros(g, d);\n return P = P.setSubMatrix(c, 0, 0), P;\n }\n }\n let h = Math.max(e, i), a = Math.max(n, o);\n t = l(t, h, a), s = l(s, h, a);\n function u(c, g, d, w) {\n if (d <= 512 || w <= 512)\n return c.mmul(g);\n d % 2 === 1 && w % 2 === 1 ? (c = l(c, d + 1, w + 1), g = l(g, d + 1, w + 1)) : d % 2 === 1 ? (c = l(c, d + 1, w), g = l(g, d + 1, w)) : w % 2 === 1 && (c = l(c, d, w + 1), g = l(g, d, w + 1));\n let p = parseInt(c.rows / 2, 10), P = parseInt(c.columns / 2, 10), f = c.subMatrix(0, p - 1, 0, P - 1), y = g.subMatrix(0, p - 1, 0, P - 1), E = c.subMatrix(0, p - 1, P, c.columns - 1), R = g.subMatrix(0, p - 1, P, g.columns - 1), v = c.subMatrix(p, c.rows - 1, 0, P - 1), L = g.subMatrix(p, g.rows - 1, 0, P - 1), S = c.subMatrix(p, c.rows - 1, P, c.columns - 1), k = g.subMatrix(p, g.rows - 1, P, g.columns - 1), D = u(\n N.add(f, S),\n N.add(y, k),\n p,\n P\n ), m = u(N.add(v, S), y, p, P), b = u(f, N.sub(R, k), p, P), j = u(S, N.sub(L, y), p, P), M = u(N.add(f, E), k, p, P), C = u(\n N.sub(v, f),\n N.add(y, R),\n p,\n P\n ), A = u(\n N.sub(E, S),\n N.add(L, k),\n p,\n P\n ), T = N.add(D, j);\n T.sub(M), T.add(A);\n let z = N.add(b, M), F = N.add(m, j), V = N.sub(D, m);\n V.add(b), V.add(C);\n let x = N.zeros(2 * T.rows, 2 * T.columns);\n return x = x.setSubMatrix(T, 0, 0), x = x.setSubMatrix(z, T.rows, 0), x = x.setSubMatrix(F, 0, T.columns), x = x.setSubMatrix(V, T.rows, T.columns), x.subMatrix(0, d - 1, 0, w - 1);\n }\n return u(t, s, h, a);\n }\n scaleRows(s = {}) {\n if (typeof s != \"object\")\n throw new TypeError(\"options must be an object\");\n const { min: t = 0, max: e = 1 } = s;\n if (!Number.isFinite(t)) throw new TypeError(\"min must be a number\");\n if (!Number.isFinite(e)) throw new TypeError(\"max must be a number\");\n if (t >= e) throw new RangeError(\"min must be smaller than max\");\n let n = new _(this.rows, this.columns);\n for (let i = 0; i < this.rows; i++) {\n const o = this.getRow(i);\n o.length > 0 && ve(o, { min: t, max: e, output: o }), n.setRow(i, o);\n }\n return n;\n }\n scaleColumns(s = {}) {\n if (typeof s != \"object\")\n throw new TypeError(\"options must be an object\");\n const { min: t = 0, max: e = 1 } = s;\n if (!Number.isFinite(t)) throw new TypeError(\"min must be a number\");\n if (!Number.isFinite(e)) throw new TypeError(\"max must be a number\");\n if (t >= e) throw new RangeError(\"min must be smaller than max\");\n let n = new _(this.rows, this.columns);\n for (let i = 0; i < this.columns; i++) {\n const o = this.getColumn(i);\n o.length && ve(o, {\n min: t,\n max: e,\n output: o\n }), n.setColumn(i, o);\n }\n return n;\n }\n flipRows() {\n const s = Math.ceil(this.columns / 2);\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < s; e++) {\n let n = this.get(t, e), i = this.get(t, this.columns - 1 - e);\n this.set(t, e, i), this.set(t, this.columns - 1 - e, n);\n }\n return this;\n }\n flipColumns() {\n const s = Math.ceil(this.rows / 2);\n for (let t = 0; t < this.columns; t++)\n for (let e = 0; e < s; e++) {\n let n = this.get(e, t), i = this.get(this.rows - 1 - e, t);\n this.set(e, t, i), this.set(this.rows - 1 - e, t, n);\n }\n return this;\n }\n kroneckerProduct(s) {\n s = _.checkMatrix(s);\n let t = this.rows, e = this.columns, n = s.rows, i = s.columns, o = new _(t * n, e * i);\n for (let l = 0; l < t; l++)\n for (let h = 0; h < e; h++)\n for (let a = 0; a < n; a++)\n for (let u = 0; u < i; u++)\n o.set(n * l + a, i * h + u, this.get(l, h) * s.get(a, u));\n return o;\n }\n kroneckerSum(s) {\n if (s = _.checkMatrix(s), !this.isSquare() || !s.isSquare())\n throw new Error(\"Kronecker Sum needs two Square Matrices\");\n let t = this.rows, e = s.rows, n = this.kroneckerProduct(_.eye(e, e)), i = _.eye(t, t).kroneckerProduct(s);\n return n.add(i);\n }\n transpose() {\n let s = new _(this.columns, this.rows);\n for (let t = 0; t < this.rows; t++)\n for (let e = 0; e < this.columns; e++)\n s.set(e, t, this.get(t, e));\n return s;\n }\n sortRows(s = Te) {\n for (let t = 0; t < this.rows; t++)\n this.setRow(t, this.getRow(t).sort(s));\n return this;\n }\n sortColumns(s = Te) {\n for (let t = 0; t < this.columns; t++)\n this.setColumn(t, this.getColumn(t).sort(s));\n return this;\n }\n subMatrix(s, t, e, n) {\n ae(this, s, t, e, n);\n let i = new _(\n t - s + 1,\n n - e + 1\n );\n for (let o = s; o <= t; o++)\n for (let l = e; l <= n; l++)\n i.set(o - s, l - e, this.get(o, l));\n return i;\n }\n subMatrixRow(s, t, e) {\n if (t === void 0 && (t = 0), e === void 0 && (e = this.columns - 1), t > e || t < 0 || t >= this.columns || e < 0 || e >= this.columns)\n throw new RangeError(\"Argument out of range\");\n let n = new _(s.length, e - t + 1);\n for (let i = 0; i < s.length; i++)\n for (let o = t; o <= e; o++) {\n if (s[i] < 0 || s[i] >= this.rows)\n throw new RangeError(`Row index out of range: ${s[i]}`);\n n.set(i, o - t, this.get(s[i], o));\n }\n return n;\n }\n subMatrixColumn(s, t, e) {\n if (t === void 0 && (t = 0), e === void 0 && (e = this.rows - 1), t > e || t < 0 || t >= this.rows || e < 0 || e >= this.rows)\n throw new RangeError(\"Argument out of range\");\n let n = new _(e - t + 1, s.length);\n for (let i = 0; i < s.length; i++)\n for (let o = t; o <= e; o++) {\n if (s[i] < 0 || s[i] >= this.columns)\n throw new RangeError(`Column index out of range: ${s[i]}`);\n n.set(o - t, i, this.get(o, s[i]));\n }\n return n;\n }\n setSubMatrix(s, t, e) {\n if (s = _.checkMatrix(s), s.isEmpty())\n return this;\n let n = t + s.rows - 1, i = e + s.columns - 1;\n ae(this, t, n, e, i);\n for (let o = 0; o < s.rows; o++)\n for (let l = 0; l < s.columns; l++)\n this.set(t + o, e + l, s.get(o, l));\n return this;\n }\n selection(s, t) {\n ge(this, s), we(this, t);\n let e = new _(s.length, t.length);\n for (let n = 0; n < s.length; n++) {\n let i = s[n];\n for (let o = 0; o < t.length; o++) {\n let l = t[o];\n e.set(n, o, this.get(i, l));\n }\n }\n return e;\n }\n trace() {\n let s = Math.min(this.rows, this.columns), t = 0;\n for (let e = 0; e < s; e++)\n t += this.get(e, e);\n return t;\n }\n clone() {\n return this.constructor.copy(this, new _(this.rows, this.columns));\n }\n /**\n * @template {AbstractMatrix} M\n * @param {AbstractMatrix} from\n * @param {M} to\n * @return {M}\n */\n static copy(s, t) {\n for (const [e, n, i] of s.entries())\n t.set(e, n, i);\n return t;\n }\n sum(s) {\n switch (s) {\n case \"row\":\n return Ms(this);\n case \"column\":\n return Ps(this);\n case void 0:\n return bs(this);\n default:\n throw new Error(`invalid option: ${s}`);\n }\n }\n product(s) {\n switch (s) {\n case \"row\":\n return Es(this);\n case \"column\":\n return _s(this);\n case void 0:\n return js(this);\n default:\n throw new Error(`invalid option: ${s}`);\n }\n }\n mean(s) {\n const t = this.sum(s);\n switch (s) {\n case \"row\": {\n for (let e = 0; e < this.rows; e++)\n t[e] /= this.columns;\n return t;\n }\n case \"column\": {\n for (let e = 0; e < this.columns; e++)\n t[e] /= this.rows;\n return t;\n }\n case void 0:\n return t / this.size;\n default:\n throw new Error(`invalid option: ${s}`);\n }\n }\n variance(s, t = {}) {\n if (typeof s == \"object\" && (t = s, s = void 0), typeof t != \"object\")\n throw new TypeError(\"options must be an object\");\n const { unbiased: e = !0, mean: n = this.mean(s) } = t;\n if (typeof e != \"boolean\")\n throw new TypeError(\"unbiased must be a boolean\");\n switch (s) {\n case \"row\": {\n if (!st.isAnyArray(n))\n throw new TypeError(\"mean must be an array\");\n return Ss(this, e, n);\n }\n case \"column\": {\n if (!st.isAnyArray(n))\n throw new TypeError(\"mean must be an array\");\n return ks(this, e, n);\n }\n case void 0: {\n if (typeof n != \"number\")\n throw new TypeError(\"mean must be a number\");\n return Rs(this, e, n);\n }\n default:\n throw new Error(`invalid option: ${s}`);\n }\n }\n standardDeviation(s, t) {\n typeof s == \"object\" && (t = s, s = void 0);\n const e = this.variance(s, t);\n if (s === void 0)\n return Math.sqrt(e);\n for (let n = 0; n < e.length; n++)\n e[n] = Math.sqrt(e[n]);\n return e;\n }\n center(s, t = {}) {\n if (typeof s == \"object\" && (t = s, s = void 0), typeof t != \"object\")\n throw new TypeError(\"options must be an object\");\n const { center: e = this.mean(s) } = t;\n switch (s) {\n case \"row\": {\n if (!st.isAnyArray(e))\n throw new TypeError(\"center must be an array\");\n return vs(this, e), this;\n }\n case \"column\": {\n if (!st.isAnyArray(e))\n throw new TypeError(\"center must be an array\");\n return Is(this, e), this;\n }\n case void 0: {\n if (typeof e != \"number\")\n throw new TypeError(\"center must be a number\");\n return Ts(this, e), this;\n }\n default:\n throw new Error(`invalid option: ${s}`);\n }\n }\n scale(s, t = {}) {\n if (typeof s == \"object\" && (t = s, s = void 0), typeof t != \"object\")\n throw new TypeError(\"options must be an object\");\n let e = t.scale;\n switch (s) {\n case \"row\": {\n if (e === void 0)\n e = Cs(this);\n else if (!st.isAnyArray(e))\n throw new TypeError(\"scale must be an array\");\n return qs(this, e), this;\n }\n case \"column\": {\n if (e === void 0)\n e = As(this);\n else if (!st.isAnyArray(e))\n throw new TypeError(\"scale must be an array\");\n return Fs(this, e), this;\n }\n case void 0: {\n if (e === void 0)\n e = xs(this);\n else if (typeof e != \"number\")\n throw new TypeError(\"scale must be a number\");\n return Ns(this, e), this;\n }\n default:\n throw new Error(`invalid option: ${s}`);\n }\n }\n toString(s) {\n return Oe(this, s);\n }\n [Symbol.iterator]() {\n return this.entries();\n }\n /**\n * iterator from left to right, from top to bottom\n * yield [row, column, value]\n * @returns {Generator<[number, number, number], void, void>}\n */\n *entries() {\n for (let s = 0; s < this.rows; s++)\n for (let t = 0; t < this.columns; t++)\n yield [s, t, this.get(s, t)];\n }\n /**\n * iterator from left to right, from top to bottom\n * yield value\n * @returns {Generator<number, void, void>}\n */\n *values() {\n for (let s = 0; s < this.rows; s++)\n for (let t = 0; t < this.columns; t++)\n yield this.get(s, t);\n }\n}\nN.prototype.klass = \"Matrix\";\ntypeof Symbol < \"u\" && (N.prototype[Symbol.for(\"nodejs.util.inspect.custom\")] = ws);\nfunction Te(r, s) {\n return r - s;\n}\nfunction Vs(r) {\n return r.every((s) => typeof s == \"number\");\n}\nN.random = N.rand;\nN.randomInt = N.randInt;\nN.diagonal = N.diag;\nN.prototype.diagonal = N.prototype.diag;\nN.identity = N.eye;\nN.prototype.negate = N.prototype.neg;\nN.prototype.tensorProduct = N.prototype.kroneckerProduct;\nvar At, ue, dt;\nlet _ = (dt = class extends N {\n constructor(t, e) {\n super();\n le(this, At);\n /**\n * @type {Float64Array[]}\n */\n q(this, \"data\");\n if (dt.isMatrix(t))\n he(this, At, ue).call(this, t.rows, t.columns), dt.copy(t, this);\n else if (Number.isInteger(t) && t >= 0)\n he(this, At, ue).call(this, t, e);\n else if (st.isAnyArray(t)) {\n const n = t;\n if (t = n.length, e = t ? n[0].length : 0, typeof e != \"number\")\n throw new TypeError(\n \"Data must be a 2D array with at least one element\"\n );\n this.data = [];\n for (let i = 0; i < t; i++) {\n if (n[i].length !== e)\n throw new RangeError(\"Inconsistent array dimensions\");\n if (!Vs(n[i]))\n throw new TypeError(\"Input data contains non-numeric values\");\n this.data.push(Float64Array.from(n[i]));\n }\n this.rows = t, this.columns = e;\n } else\n throw new TypeError(\n \"First argument must be a positive number or an array\"\n );\n }\n set(t, e, n) {\n return this.data[t][e] = n, this;\n }\n get(t, e) {\n return this.data[t][e];\n }\n removeRow(t) {\n return ot(this, t), this.data.splice(t, 1), this.rows -= 1, this;\n }\n addRow(t, e) {\n return e === void 0 && (e = t, t = this.rows), ot(this, t, !0), e = Float64Array.from(Pt(this, e)), this.data.splice(t, 0, e), this.rows += 1, this;\n }\n removeColumn(t) {\n lt(this, t);\n for (let e = 0; e < this.rows; e++) {\n const n = new Float64Array(this.columns - 1);\n for (let i = 0; i < t; i++)\n n[i] = this.data[e][i];\n for (let i = t + 1; i < this.columns; i++)\n n[i - 1] = this.data[e][i];\n this.data[e] = n;\n }\n return this.columns -= 1, this;\n }\n addColumn(t, e) {\n typeof e > \"u\" && (e = t, t = this.columns), lt(this, t, !0), e = bt(this, e);\n for (let n = 0; n < this.rows; n++) {\n const i = new Float64Array(this.columns + 1);\n let o = 0;\n for (; o < t; o++)\n i[o] = this.data[n][o];\n for (i[o++] = e[n]; o < this.columns + 1; o++)\n i[o] = this.data[n][o - 1];\n this.data[n] = i;\n }\n return this.columns += 1, this;\n }\n}, At = new WeakSet(), /**\n * Init an empty matrix\n * @param {number} nRows\n * @param {number} nColumns\n */\nue = function(t, e) {\n if (this.data = [], Number.isInteger(e) && e >= 0)\n for (let n = 0; n < t; n++)\n this.data.push(new Float64Array(e));\n else\n throw new TypeError(\"nColumns must be a positive integer\");\n this.rows = t, this.columns = e;\n}, dt);\nys(N, _);\nvar K;\nconst Jt = class Jt extends N {\n /**\n * @param {number | AbstractMatrix | ArrayLike<ArrayLike<number>>} diagonalSize\n * @return {this}\n */\n constructor(t) {\n super();\n /** @type {Matrix} */\n le(this, K);\n if (_.isMatrix(t)) {\n if (!t.isSymmetric())\n throw new TypeError(\"not symmetric data\");\n Dt(this, K, _.copy(\n t,\n new _(t.rows, t.rows)\n ));\n } else if (Number.isInteger(t) && t >= 0)\n Dt(this, K, new _(t, t));\n else if (Dt(this, K, new _(t)), !this.isSymmetric())\n throw new TypeError(\"not symmetric data\");\n }\n get size() {\n return ht(this, K).size;\n }\n get rows() {\n return ht(this, K).rows;\n }\n get columns() {\n return ht(this, K).columns;\n }\n get diagonalSize() {\n return this.rows;\n }\n /**\n * not the same as matrix.isSymmetric()\n * Here is to check if it's instanceof SymmetricMatrix without bundling issues\n *\n * @param value\n * @returns {boolean}\n */\n static isSymmetricMatrix(t) {\n return _.isMatrix(t) && t.klassType === \"SymmetricMatrix\";\n }\n /**\n * @param diagonalSize\n * @return {SymmetricMatrix}\n */\n static zeros(t) {\n return new this(t);\n }\n /**\n * @param diagonalSize\n * @return {SymmetricMatrix}\n */\n static ones(t) {\n return new this(t).fill(1);\n }\n clone() {\n const t = new Jt(this.diagonalSize);\n for (const [e, n, i] of this.upperRightEntries())\n t.set(e, n, i);\n return t;\n }\n toMatrix() {\n return new _(this);\n }\n get(t, e) {\n return ht(this, K).get(t, e);\n }\n set(t, e, n) {\n return ht(this, K).set(t, e, n), ht(this, K).set(e, t, n), this;\n }\n removeCross(t) {\n return ht(this, K).removeRow(t), ht(this, K).removeColumn(t), this;\n }\n addCross(t, e) {\n e === void 0 && (e = t, t = this.diagonalSize);\n const n = e.slice();\n return n.splice(t, 1), ht(this, K).addRow(t, n), ht(this, K).addColumn(t, e), this;\n }\n /**\n * @param {Mask[]} mask\n */\n applyMask(t) {\n if (t.length !== this.diagonalSize)\n throw new RangeError(\"Mask size do not match with matrix size\");\n const e = [];\n for (const [n, i] of t.entries())\n i || e.push(n);\n e.reverse();\n for (const n of e)\n this.removeCross(n);\n return this;\n }\n /**\n * Compact format upper-right corner of matrix\n * iterate from left to right, from top to bottom.\n *\n * ```\n * A B C D\n * A 1 2 3 4\n * B 2 5 6 7\n * C 3 6 8 9\n * D 4 7 9 10\n * ```\n *\n * will return compact 1D array `[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]`\n *\n * length is S(i=0, n=sideSize) => 10 for a 4 sideSized matrix\n *\n * @returns {number[]}\n */\n toCompact() {\n const { diagonalSize: t } = this, e = new Array(t * (t + 1) / 2);\n for (let n = 0, i = 0, o = 0; o < e.length; o++)\n e[o] = this.get(i, n), ++n >= t && (n = ++i);\n return e;\n }\n /**\n * @param {number[]} compact\n * @return {SymmetricMatrix}\n */\n static fromCompact(t) {\n const e = t.length, n = (Math.sqrt(8 * e + 1) - 1) / 2;\n if (!Number.isInteger(n))\n throw new TypeError(\n `This array is not a compact representation of a Symmetric Matrix, ${JSON.stringify(\n t\n )}`\n );\n const i = new Jt(n);\n for (let o = 0, l = 0, h = 0; h < e; h++)\n i.set(o, l, t[h]), ++o >= n && (o = ++l);\n return i;\n }\n /**\n * half iterator upper-right-corner from left to right, from top to bottom\n * yield [row, column, value]\n *\n * @returns {Generator<[number, number, number], void, void>}\n */\n *upperRightEntries() {\n for (let t = 0, e = 0; t < this.diagonalSize; void 0) {\n const n = this.get(t, e);\n yield [t, e, n], ++e >= this.diagonalSize && (e = ++t);\n }\n }\n /**\n * half iterator upper-right-corner from left to right, from top to bottom\n * yield value\n *\n * @returns {Generator<[number, number, number], void, void>}\n */\n *upperRightValues() {\n for (let t = 0, e = 0; t < this.diagonalSize; void 0)\n yield this.get(t, e), ++e >= this.diagonalSize && (e = ++t);\n }\n};\nK = new WeakMap();\nlet pt = Jt;\npt.prototype.klassType = \"SymmetricMatrix\";\nclass te extends pt {\n /**\n * not the same as matrix.isSymmetric()\n * Here is to check if it's instanceof SymmetricMatrix without bundling issues\n *\n * @param value\n * @returns {boolean}\n */\n static isDistanceMatrix(s) {\n return pt.isSymmetricMatrix(s) && s.klassSubType === \"DistanceMatrix\";\n }\n constructor(s) {\n if (super(s), !this.isDistance())\n throw new TypeError(\"Provided arguments do no produce a distance matrix\");\n }\n set(s, t, e) {\n return s === t && (e = 0), super.set(s, t, e);\n }\n addCross(s, t) {\n return t === void 0 && (t = s, s = this.diagonalSize), t = t.slice(), t[s] = 0, super.addCross(s, t);\n }\n toSymmetricMatrix() {\n return new pt(this);\n }\n clone() {\n const s = new te(this.diagonalSize);\n for (const [t, e, n] of this.upperRightEntries())\n t !== e && s.set(t, e, n);\n return s;\n }\n /**\n * Compact format upper-right corner of matrix\n * no diagonal (only zeros)\n * iterable from left to right, from top to bottom.\n *\n * ```\n * A B C D\n * A 0 1 2 3\n * B 1 0 4 5\n * C 2 4 0 6\n * D 3 5 6 0\n * ```\n *\n * will return compact 1D array `[1, 2, 3, 4, 5, 6]`\n *\n * length is S(i=0, n=sideSize-1) => 6 for a 4 side sized matrix\n *\n * @returns {number[]}\n */\n toCompact() {\n const { diagonalSize: s } = this, t = (s - 1) * s / 2, e = new Array(t);\n for (let n = 1, i = 0, o = 0; o < e.length; o++)\n e[o] = this.get(i, n), ++n >= s && (n = ++i + 1);\n return e;\n }\n /**\n * @param {number[]} compact\n */\n static fromCompact(s) {\n const t = s.length;\n if (t === 0)\n return new this(0);\n const e = (Math.sqrt(8 * t + 1) + 1) / 2;\n if (!Number.isInteger(e))\n throw new TypeError(\n `This array is not a compact representation of a DistanceMatrix, ${JSON.stringify(\n s\n )}`\n );\n const n = new this(e);\n for (let i = 1, o = 0, l = 0; l < t; l++)\n n.set(i, o, s[l]), ++i >= e && (i = ++o + 1);\n return n;\n }\n}\nte.prototype.klassSubType = \"DistanceMatrix\";\nclass ft extends N {\n constructor(s, t, e) {\n super(), this.matrix = s, this.rows = t, this.columns = e;\n }\n}\nclass $s extends ft {\n constructor(s, t) {\n lt(s, t), super(s, s.rows, 1), this.column = t;\n }\n set(s, t, e) {\n return this.matrix.set(s, this.column, e), this;\n }\n get(s) {\n return this.matrix.get(s, this.column);\n }\n}\nclass Ls extends ft {\n constructor(s, t) {\n we(s, t), super(s, s.rows, t.length), this.columnIndices = t;\n }\n set(s, t, e) {\n return this.matrix.set(s, this.columnIndices[t], e), this;\n }\n get(s, t) {\n return this.matrix.get(s, this.columnIndices[t]);\n }\n}\nclass Ds extends ft {\n constructor(s) {\n super(s, s.rows, s.columns);\n }\n set(s, t, e) {\n return this.matrix.set(s, this.columns - t - 1, e), this;\n }\n get(s, t) {\n return this.matrix.get(s, this.columns - t - 1);\n }\n}\nclass Os extends ft {\n constructor(s) {\n super(s, s.rows, s.columns);\n }\n set(s, t, e) {\n return this.matrix.set(this.rows - s - 1, t, e), this;\n }\n get(s, t) {\n return this.matrix.get(this.rows - s - 1, t);\n }\n}\nclass Bs extends ft {\n constructor(s, t) {\n ot(s, t), super(s, 1, s.columns), this.row = t;\n }\n set(s, t, e) {\n return this.matrix.set(this.row, t, e), this;\n }\n get(s, t) {\n return this.matrix.get(this.row, t);\n }\n}\nclass zs extends ft {\n constructor(s, t) {\n ge(s, t), super(s, t.length, s.columns), this.rowIndices = t;\n }\n set(s, t, e) {\n return this.matrix.set(this.rowIndices[s], t, e), this;\n }\n get(s, t) {\n return this.matrix.get(this.rowIndices[s], t);\n }\n}\nclass Gt extends ft {\n constructor(s, t, e) {\n ge(s, t), we(s, e), super(s, t.length, e.length), this.rowIndices = t, this.columnIndices = e;\n }\n set(s, t, e) {\n return this.matrix.set(\n this.rowIndices[s],\n this.columnIndices[t],\n e\n ), this;\n }\n get(s, t) {\n return this.matrix.get(\n this.rowIndices[s],\n this.columnIndices[t]\n );\n }\n}\nclass Us extends ft {\n constructor(s, t, e, n, i) {\n ae(s, t, e, n, i), super(s, e - t + 1, i - n + 1), this.startRow = t, this.startColumn = n;\n }\n set(s, t, e) {\n return this.matrix.set(\n this.startRow + s,\n this.startColumn + t,\n e\n ), this;\n }\n get(s, t) {\n return this.matrix.get(\n this.startRow + s,\n this.startColumn + t\n );\n }\n}\nclass Ys extends ft {\n constructor(s) {\n super(s, s.columns, s.rows);\n }\n set(s, t, e) {\n return this.matrix.set(t, s, e), this;\n }\n get(s, t) {\n return this.matrix.get(t, s);\n }\n}\nclass Be extends N {\n constructor(s, t = {}) {\n const { rows: e = 1 } = t;\n if (s.length % e !== 0)\n throw new Error(\"the data length is not divisible by the number of rows\");\n super(), this.rows = e, this.columns = s.length / e, this.data = s;\n }\n set(s, t, e) {\n let n = this._calculateIndex(s, t);\n return this.data[n] = e, this;\n }\n get(s, t) {\n let e = this._calculateIndex(s, t);\n return this.data[e];\n }\n _calculateIndex(s, t) {\n return s * this.columns + t;\n }\n}\nclass rt extends N {\n constructor(s) {\n super(), this.data = s, this.rows = s.length, this.columns = s[0].length;\n }\n set(s, t, e) {\n return this.data[s][t] = e, this;\n }\n get(s, t) {\n return this.data[s][t];\n }\n}\nfunction Ws(r, s) {\n if (st.isAnyArray(r))\n return r[0] && st.isAnyArray(r[0]) ? new rt(r) : new Be(r, s);\n throw new Error(\"the argument is not an array\");\n}\nclass ee {\n constructor(s) {\n s = rt.checkMatrix(s);\n let t = s.clone(), e = t.rows, n = t.columns, i = new Float64Array(e), o = 1, l, h, a, u, c, g, d, w, p;\n for (l = 0; l < e; l++)\n i[l] = l;\n for (w = new Float64Array(e), h = 0; h < n; h++) {\n for (l = 0; l < e; l++)\n w[l] = t.get(l, h);\n for (l = 0; l < e; l++) {\n for (p = Math.min(l, h), c = 0, a = 0; a < p; a++)\n c += t.get(l, a) * w[a];\n w[l] -= c, t.set(l, h, w[l]);\n }\n for (u = h, l = h + 1; l < e; l++)\n Math.abs(w[l]) > Math.abs(w[u]) && (u = l);\n if (u !== h) {\n for (a = 0; a < n; a++)\n g = t.get(u, a), t.set(u, a, t.get(h, a)), t.set(h, a, g);\n d = i[u], i[u] = i[h], i[h] = d, o = -o;\n }\n if (h < e && t.get(h, h) !== 0)\n for (l = h + 1; l < e; l++)\n t.set(l, h, t.get(l, h) / t.get(h, h));\n }\n this.LU = t, this.pivotVector = i, this.pivotSign = o;\n }\n isSingular() {\n let s = this.LU, t = s.columns;\n for (let e = 0; e < t; e++)\n if (s.get(e, e) === 0)\n return !0;\n return !1;\n }\n solve(s) {\n s = _.checkMatrix(s);\n let t = this.LU;\n if (t.rows !== s.rows)\n throw new Error(\"Invalid matrix dimensions\");\n if (this.isSingular())\n throw new Error(\"LU matrix is singular\");\n let n = s.columns, i = s.subMatrixRow(this.pivotVector, 0, n - 1), o = t.columns, l, h, a;\n for (a = 0; a < o; a++)\n for (l = a + 1; l < o; l++)\n for (h = 0; h < n; h++)\n i.set(l, h, i.get(l, h) - i.get(a, h) * t.get(l, a));\n for (a = o - 1; a >= 0; a--) {\n for (h = 0; h < n; h++)\n i.set(a, h, i.get(a, h) / t.get(a, a));\n for (l = 0; l < a; l++)\n for (h = 0; h < n; h++)\n i.set(l, h, i.get(l, h) - i.get(a, h) * t.get(l, a));\n }\n return i;\n }\n get determinant() {\n let s = this.LU;\n if (!s.isSquare())\n throw new Error(\"Matrix must be square\");\n let t = this.pivotSign, e = s.columns;\n for (let n = 0; n < e; n++)\n t *= s.get(n, n);\n return t;\n }\n get lowerTriangularMatrix() {\n let s = this.LU, t = s.rows, e = s.columns, n = new _(t, e);\n for (let i = 0; i < t; i++)\n for (let o = 0; o < e; o++)\n i > o ? n.set(i, o, s.get(i, o)) : i === o ? n.set(i, o, 1) : n.set(i, o, 0);\n return n;\n }\n get upperTriangularMatrix() {\n let s = this.LU, t = s.rows, e = s.columns, n = new _(t, e);\n for (let i = 0; i < t; i++)\n for (let o = 0; o < e; o++)\n i <= o ? n.set(i, o, s.get(i, o)) : n.set(i, o, 0);\n return n;\n }\n get pivotPermutationVector() {\n return Array.from(this.pivotVector);\n }\n}\nfunction ut(r, s) {\n let t = 0;\n return Math.abs(r) > Math.abs(s) ? (t = s / r, Math.abs(r) * Math.sqrt(1 + t * t)) : s !== 0 ? (t = r / s, Math.abs(s) * Math.sqrt(1 + t * t)) : 0;\n}\nclass pe {\n constructor(s) {\n s = rt.checkMatrix(s);\n let t = s.clone(), e = s.rows, n = s.columns, i = new Float64Array(n), o, l, h, a;\n for (h = 0; h < n; h++) {\n let u = 0;\n for (o = h; o < e; o++)\n u = ut(u, t.get(o, h));\n if (u !== 0) {\n for (t.get(h, h) < 0 && (u = -u), o = h; o < e; o++)\n t.set(o, h, t.get(o, h) / u);\n for (t.set(h, h, t.get(h, h) + 1), l = h + 1; l < n; l++) {\n for (a = 0, o = h; o < e; o++)\n a += t.get(o, h) * t.get(o, l);\n for (a = -a / t.get(h, h), o = h; o < e; o++)\n t.set(o, l, t.get(o, l) + a * t.get(o, h));\n }\n }\n i[h] = -u;\n }\n this.QR = t, this.Rdiag = i;\n }\n solve(s) {\n s = _.checkMatrix(s);\n let t = this.QR, e = t.rows;\n if (s.rows !== e)\n throw new Error(\"Matrix row dimensions must agree\");\n if (!this.isFullRank())\n throw new Error(\"Matrix is rank deficient\");\n let n = s.columns, i = s.clone(), o = t.columns, l, h, a, u;\n for (a = 0; a < o; a++)\n for (h = 0; h < n; h++) {\n for (u = 0, l = a; l < e; l++)\n u += t.get(l, a) * i.get(l, h);\n for (u = -u / t.get(a, a), l = a; l < e; l++)\n i.set(l, h, i.get(l, h) + u * t.get(l, a));\n }\n for (a = o - 1; a >= 0; a--) {\n for (h = 0; h < n; h++)\n i.set(a, h, i.get(a, h) / this.Rdiag[a]);\n for (l = 0; l < a; l++)\n for (h = 0; h < n; h++)\n i.set(l, h, i.get(l, h) - i.get(a, h) * t.get(l, a));\n }\n return i.subMatrix(0, o - 1, 0, n - 1);\n }\n isFullRank() {\n let s = this.QR.columns;\n for (let t = 0; t < s; t++)\n if (this.Rdiag[t] === 0)\n return !1;\n return !0;\n }\n get upperTriangularMatrix() {\n let s = this.QR, t = s.columns, e = new _(t, t), n, i;\n for (n = 0; n < t; n++)\n for (i = 0; i < t; i++)\n n < i ? e.set(n, i, s.get(n, i)) : n === i ? e.set(n, i, this.Rdiag[n]) : e.set(n, i, 0);\n return e;\n }\n get orthogonalMatrix() {\n let s = this.QR, t = s.rows, e = s.columns, n = new _(t, e), i, o, l, h;\n for (l = e - 1; l >= 0; l--) {\n for (i = 0; i < t; i++)\n n.set(i, l, 0);\n for (n.set(l, l, 1), o = l; o < e; o++)\n if (s.get(l, l) !== 0) {\n for (h = 0, i = l; i < t; i++)\n h += s.get(i, l) * n.get(i, o);\n for (h = -h / s.get(l, l), i = l; i < t; i++)\n n.set(i, o, n.get(i, o) + h * s.get(i, l));\n }\n }\n return n;\n }\n}\nclass vt {\n constructor(s, t = {}) {\n if (s = rt.checkMatrix(s), s.isEmpty())\n throw new Error(\"Matrix must be non-empty\");\n let e = s.rows, n = s.columns;\n const {\n computeLeftSingularVectors: i = !0,\n computeRightSingularVectors: o = !0,\n autoTranspose: l = !1\n } = t;\n let h = !!i, a = !!o, u = !1, c;\n if (e < n)\n if (!l)\n c = s.clone(), console.warn(\n \"Computing SVD on a matrix with more columns than rows. Consider enabling autoTranspose\"\n );\n else {\n c = s.transpose(), e = c.rows, n = c.columns, u = !0;\n let m = h;\n h = a, a = m;\n }\n else\n c = s.clone();\n let g = Math.min(e, n), d = Math.min(e + 1, n), w = new Float64Array(d), p = new _(e, g), P = new _(n, n), f = new Float64Array(n), y = new Float64Array(e), E = new Float64Array(d);\n for (let m = 0; m < d; m++) E[m] = m;\n let R = Math.min(e - 1, n), v = Math.max(0, Math.min(n - 2, e)), L = Math.max(R, v);\n for (let m = 0; m < L; m++) {\n if (m < R) {\n w[m] = 0;\n for (let b = m; b < e; b++)\n w[m] = ut(w[m], c.get(b, m));\n if (w[m] !== 0) {\n c.get(m, m) < 0 && (w[m] = -w[m]);\n for (let b = m; b < e; b++)\n c.set(b, m, c.get(b, m) / w[m]);\n c.set(m, m, c.get(m, m) + 1);\n }\n w[m] = -w[m];\n }\n for (let b = m + 1; b < n; b++) {\n if (m < R && w[m] !== 0) {\n let j = 0;\n for (let M = m; M < e; M++)\n j += c.get(M, m) * c.get(M, b);\n j = -j / c.get(m, m);\n for (let M = m; M < e; M++)\n c.set(M, b, c.get(M, b) + j * c.get(M, m));\n }\n f[b] = c.get(m, b);\n }\n if (h && m < R)\n for (let b = m; b < e; b++)\n p.set(b, m, c.get(b, m));\n if (m < v) {\n f[m] = 0;\n for (let b = m + 1; b < n; b++)\n f[m] = ut(f[m], f[b]);\n if (f[m] !== 0) {\n f[m + 1] < 0 && (f[m] = 0 - f[m]);\n for (let b = m + 1; b < n; b++)\n f[b] /= f[m];\n f[m + 1] += 1;\n }\n if (f[m] = -f[m], m + 1 < e && f[m] !== 0) {\n for (let b = m + 1; b < e; b++)\n y[b] = 0;\n for (let b = m + 1; b < e; b++)\n for (let j = m + 1; j < n; j++)\n y[b] += f[j] * c.get(b, j);\n for (let b = m + 1; b < n; b++) {\n let j = -f[b] / f[m + 1];\n for (let M = m + 1; M < e; M++)\n c.set(M, b, c.get(M, b) + j * y[M]);\n }\n }\n if (a)\n for (let b = m + 1; b < n; b++)\n P.set(b, m, f[b]);\n }\n }\n let S = Math.min(n, e + 1);\n if (R < n && (w[R] = c.get(R, R)), e < S && (w[S - 1] = 0), v + 1 < S && (f[v] = c.get(v, S - 1)), f[S - 1] = 0, h) {\n for (let m = R; m < g; m++) {\n for (let b = 0; b < e; b++)\n p.set(b, m, 0);\n p.set(m, m, 1);\n }\n for (let m = R - 1; m >= 0; m--)\n if (w[m] !== 0) {\n for (let b = m + 1; b < g; b++) {\n let j = 0;\n for (let M = m; M < e; M++)\n j += p.get(M, m) * p.get(M, b);\n j = -j / p.get(m, m);\n for (let M = m; M < e; M++)\n p.set(M, b, p.get(M, b) + j * p.get(M, m));\n }\n for (let b = m; b < e; b++)\n p.set(b, m, -p.get(b, m));\n p.set(m, m, 1 + p.get(m, m));\n for (let b = 0; b < m - 1; b++)\n p.set(b, m, 0);\n } else {\n for (let b = 0; b < e; b++)\n p.set(b, m, 0);\n p.set(m, m, 1);\n }\n }\n if (a)\n for (let m = n - 1; m >= 0; m--) {\n if (m < v && f[m] !== 0)\n for (let b = m + 1; b < n; b++) {\n let j = 0;\n for (let M = m + 1; M < n; M++)\n j += P.get(M, m) * P.get(M, b);\n j = -j / P.get(m + 1, m);\n for (let M = m + 1; M < n; M++)\n P.set(M, b, P.get(M, b) + j * P.get(M, m));\n }\n for (let b = 0; b < n; b++)\n P.set(b, m, 0);\n P.set(m, m, 1);\n }\n let k = S - 1, D = Number.EPSILON;\n for (; S > 0; ) {\n let m, b;\n for (m = S - 2; m >= -1 && m !== -1; m--) {\n const j = Number.MIN_VALUE + D * Math.abs(w[m] + Math.abs(w[m + 1]));\n if (Math.abs(f[m]) <= j || Number.isNaN(f[m])) {\n f[m] = 0;\n break;\n }\n }\n if (m === S - 2)\n b = 4;\n else {\n let j;\n for (j = S - 1; j >= m && j !== m; j--) {\n let M = (j !== S ? Math.abs(f[j]) : 0) + (j !== m + 1 ? Math.abs(f[j - 1]) : 0);\n if (Math.abs(w[j]) <= D * M) {\n w[j] = 0;\n break;\n }\n }\n j === m ? b = 3 : j === S - 1 ? b = 1 : (b = 2, m = j);\n }\n switch (m++, b) {\n case 1: {\n let j = f[S - 2];\n f[S - 2] = 0;\n for (let M = S - 2; M >= m; M--) {\n let C = ut(w[M], j), A = w[M] / C, T = j / C;\n if (w[M] = C, M !== m && (j = -T * f[M - 1], f[M - 1] = A * f[M - 1]), a)\n for (let z = 0; z < n; z++)\n C = A * P.get(z, M) + T * P.get(z, S - 1), P.set(z, S - 1, -T * P.get(z, M) + A * P.get(z, S - 1)), P.set(z, M, C);\n }\n break;\n }\n case 2: {\n let j = f[m - 1];\n f[m - 1] = 0;\n for (let M = m; M < S; M++) {\n let C = ut(w[M], j), A = w[M] / C, T = j / C;\n if (w[M] = C, j = -T * f[M], f[M] = A * f[M], h)\n for (let z = 0; z < e; z++)\n C = A * p.get(z, M) + T * p.get(z, m - 1), p.set(z, m - 1, -T * p.get(z, M) + A * p.get(z, m - 1)), p.set(z, M, C);\n }\n break;\n }\n case 3: {\n const j = Math.max(\n Math.abs(w[S - 1]),\n Math.abs(w[S - 2]),\n Math.abs(f[S - 2]),\n Math.abs(w[m]),\n Math.abs(f[m])\n ), M = w[S - 1] / j, C = w[S - 2] / j, A = f[S - 2] / j, T = w[m] / j, z = f[m] / j, F = ((C + M) * (C - M) + A * A) / 2, V = M * A * (M * A);\n let x = 0;\n (F !== 0 || V !== 0) && (F < 0 ? x = 0 - Math.sqrt(F * F + V) : x = Math.sqrt(F * F + V), x = V / (F + x));\n let B = (T + M) * (T - M) + x, U = T * z;\n for (let I = m; I < S - 1; I++) {\n let O = ut(B, U);\n O === 0 && (O = Number.MIN_VALUE);\n let X = B / O, G = U / O;\n if (I !== m && (f[I - 1] = O), B = X * w[I] + G * f[I], f[I] = X * f[I] - G * w[I], U = G * w[I + 1], w[I + 1] = X * w[I + 1], a)\n for (let W = 0; W < n; W++)\n O = X * P.get(W, I) + G * P.get(W, I + 1), P.set(W, I + 1, -G * P.get(W, I) + X * P.get(W, I + 1)), P.set(W, I, O);\n if (O = ut(B, U), O === 0 && (O = Number.MIN_VALUE), X = B / O, G = U / O, w[I] = O, B = X * f[I] + G * w[I + 1], w[I + 1] = -G * f[I] + X * w[I + 1], U = G * f[I + 1], f[I + 1] = X * f[I + 1], h && I < e - 1)\n for (let W = 0; W < e; W++)\n O = X * p.get(W, I) + G * p.get(W, I + 1), p.set(W, I + 1, -G * p.get(W, I) + X * p.get(W, I + 1)), p.set(W, I, O);\n }\n f[S - 2] = B;\n break;\n }\n case 4: {\n if (w[m] <= 0 && (w[m] = w[m] < 0 ? -w[m] : 0, a))\n for (let j = 0; j <= k; j++)\n P.set(j, m, -P.get(j, m));\n for (; m < k && !(w[m] >= w[m + 1]); ) {\n let j = w[m];\n if (w[m] = w[m + 1], w[m + 1] = j, a && m < n - 1)\n for (let M = 0; M < n; M++)\n j = P.get(M, m + 1), P.set(M, m + 1, P.get(M, m)), P.set(M, m, j);\n if (h && m < e - 1)\n for (let M = 0; M < e; M++)\n j = p.get(M, m + 1), p.set(M, m + 1, p.get(M, m)), p.set(M, m, j);\n m++;\n }\n S--;\n break;\n }\n }\n }\n if (u) {\n let m = P;\n P = p, p = m;\n }\n this.m = e, this.n = n, this.s = w, this.U = p, this.V = P;\n }\n solve(s) {\n let t = s, e = this.threshold, n = this.s.length, i = _.zeros(n, n);\n for (let g = 0; g < n; g++)\n Math.abs(this.s[g]) <= e ? i.set(g, g, 0) : i.set(g, g, 1 / this.s[g]);\n let o = this.U, l = this.rightSingularVectors, h = l.mmul(i), a = l.rows, u = o.rows, c = _.zeros(a, u);\n for (let g = 0; g < a; g++)\n for (let d = 0; d < u; d++) {\n let w = 0;\n for (let p = 0; p < n; p++)\n w += h.get(g, p) * o.get(d, p);\n c.set(g, d, w);\n }\n return c.mmul(t);\n }\n solveForDiagonal(s) {\n return this.solve(_.diag(s));\n }\n inverse() {\n let s = this.V, t = this.threshold, e = s.rows, n = s.columns, i = new _(e, this.s.length);\n for (let u = 0; u < e; u++)\n for (let c = 0; c < n; c++)\n Math.abs(this.s[c]) > t && i.set(u, c, s.get(u, c) / this.s[c]);\n let o = this.U, l = o.rows, h = o.columns, a = new _(e, l);\n for (let u = 0; u < e; u++)\n for (let c = 0; c < l; c++) {\n let g = 0;\n for (let d = 0; d < h; d++)\n g += i.get(u, d) * o.get(c, d);\n a.set(u, c, g);\n }\n return a;\n }\n get condition() {\n return this.s[0] / this.s[Math.min(this.m, this.n) - 1];\n }\n get norm2() {\n return this.s[0];\n }\n get rank() {\n let s = Math.max(this.m, this.n) * this.s[0] * Number.EPSILON, t = 0, e = this.s;\n for (let n = 0, i = e.length; n < i; n++)\n e[n] > s && t++;\n return t;\n }\n get diagonal() {\n return Array.from(this.s);\n }\n get threshold() {\n return Number.EPSILON / 2 * Math.max(this.m, this.n) * this.s[0];\n }\n get leftSingularVectors() {\n return this.U;\n }\n get rightSingularVectors() {\n return this.V;\n }\n get diagonalMatrix() {\n return _.diag(this.s);\n }\n}\nfunction Qs(r, s = !1) {\n return r = rt.checkMatrix(r), s ? new vt(r).inverse() : ze(r, _.eye(r.rows));\n}\nfunction ze(r, s, t = !1) {\n return r = rt.checkMatrix(r), s = rt.checkMatrix(s), t ? new vt(r).solve(s) : r.isSquare() ? new ee(r).solve(s) : new pe(r).solve(s);\n}\nfunction Xt(r) {\n if (r = _.checkMatrix(r), r.isSquare()) {\n if (r.columns === 0)\n return 1;\n let s, t, e, n;\n if (r.columns === 2)\n return s = r.get(0, 0), t = r.get(0, 1), e = r.get(1, 0), n = r.get(1, 1), s * n - t * e;\n if (r.columns === 3) {\n let i, o, l;\n return i = new Gt(r, [1, 2], [1, 2]), o = new Gt(r, [1, 2], [0, 2]), l = new Gt(r, [1, 2], [0, 1]), s = r.get(0, 0), t = r.get(0, 1), e = r.get(0, 2), s * Xt(i) - t * Xt(o) + e * Xt(l);\n } else\n return new ee(r).determinant;\n } else\n throw Error(\"determinant can only be calculated for a square matrix\");\n}\nfunction Gs(r, s) {\n let t = [];\n for (let e = 0; e < r; e++)\n e !== s && t.push(e);\n return t;\n}\nfunction Xs(r, s, t, e = 1e-9, n = 1e-9) {\n if (r > n)\n return new Array(s.rows + 1).fill(0);\n {\n let i = s.addRow(t, [0]);\n for (let o = 0; o < i.rows; o++)\n Math.abs(i.get(o, 0)) < e && i.set(o, 0, 0);\n return i.to1DArray();\n }\n}\nfunction Zs(r, s = {}) {\n const { thresholdValue: t = 1e-9, thresholdError: e = 1e-9 } = s;\n r = _.checkMatrix(r);\n let n = r.rows, i = new _(n, n);\n for (let o = 0; o < n; o++) {\n let l = _.columnVector(r.getRow(o)), h = r.subMatrixRow(Gs(n, o)).transpose(), u = new vt(h).solve(l), c = _.sub(l, h.mmul(u)).abs().max();\n i.setRow(\n o,\n Xs(c, u, o, t, e)\n );\n }\n return i;\n}\nfunction Js(r, s = Number.EPSILON) {\n if (r = _.checkMatrix(r), r.isEmpty())\n return r.transpose();\n let t = new vt(r, { autoTranspose: !0 }), e = t.leftSingularVectors, n = t.rightSingularVectors, i = t.diagonal;\n for (let o = 0; o < i.length; o++)\n Math.abs(i[o]) > s ? i[o] = 1 / i[o] : i[o] = 0;\n return n.mmul(_.diag(i).mmul(e.transpose()));\n}\nfunction Ks(r, s = r, t = {}) {\n r = new _(r);\n let e = !1;\n if (typeof s == \"object\" && !_.isMatrix(s) && !st.isAnyArray(s) ? (t = s, s = r, e = !0) : s = new _(s), r.rows !== s.rows)\n throw new TypeError(\"Both matrices must have the same number of rows\");\n const { center: n = !0 } = t;\n n && (r = r.center(\"column\"), e || (s = s.center(\"column\")));\n const i = r.transpose().mmul(s);\n for (let o = 0; o < i.rows; o++)\n for (let l = 0; l < i.columns; l++)\n i.set(o, l, i.get(o, l) * (1 / (r.rows - 1)));\n return i;\n}\nfunction Hs(r, s = r, t = {}) {\n r = new _(r);\n let e = !1;\n if (typeof s == \"object\" && !_.isMatrix(s) && !st.isAnyArray(s) ? (t = s, s = r, e = !0) : s = new _(s), r.rows !== s.rows)\n throw new TypeError(\"Both matrices must have the same number of rows\");\n const { center: n = !0, scale: i = !0 } = t;\n n && (r.center(\"column\"), e || s.center(\"column\")), i && (r.scale(\"column\"), e || s.scale(\"column\"));\n const o = r.standardDeviation(\"column\", { unbiased: !0 }), l = e ? o : s.standardDeviation(\"column\", { unbiased: !0 }), h = r.transpose().mmul(s);\n for (let a = 0; a < h.rows; a++)\n for (let u = 0; u < h.columns; u++)\n h.set(\n a,\n u,\n h.get(a, u) * (1 / (o[a] * l[u])) * (1 / (r.rows - 1))\n );\n return h;\n}\nlet Ue = class {\n constructor(s, t = {}) {\n const { assumeSymmetric: e = !1 } = t;\n if (s = rt.checkMatrix(s), !s.isSquare())\n throw new Error(\"Matrix is not a square matrix\");\n if (s.isEmpty())\n throw new Error(\"Matrix must be non-empty\");\n let n = s.columns, i = new _(n, n), o = new Float64Array(n), l = new Float64Array(n), h = s, a, u, c = !1;\n if (e ? c = !0 : c = s.isSymmetric(), c) {\n for (a = 0; a < n; a++)\n for (u = 0; u < n; u++)\n i.set(a, u, h.get(a, u));\n tn(n, l, o, i), en(n, l, o, i);\n } else {\n let g = new _(n, n), d = new Float64Array(n);\n for (u = 0; u < n; u++)\n for (a = 0; a < n; a++)\n g.set(a, u, h.get(a, u));\n sn(n, g, d, i), nn(n, l, o, i, g);\n }\n this.n = n, this.e = l, this.d = o, this.V = i;\n }\n get realEigenvalues() {\n return Array.from(this.d);\n }\n get imaginaryEigenvalues() {\n return Array.from(this.e);\n }\n get eigenvectorMatrix() {\n return this.V;\n }\n get diagonalMatrix() {\n let s = this.n, t = this.e, e = this.d, n = new _(s, s), i, o;\n for (i = 0; i < s; i++) {\n for (o = 0; o < s; o++)\n n.set(i, o, 0);\n n.set(i, i, e[i]), t[i] > 0 ? n.set(i, i + 1, t[i]) : t[i] < 0 && n.set(i, i - 1, t[i]);\n }\n return n;\n }\n};\nfunction tn(r, s, t, e) {\n let n, i, o, l, h, a, u, c;\n for (h = 0; h < r; h++)\n t[h] = e.get(r - 1, h);\n for (l = r - 1; l > 0; l--) {\n for (c = 0, o = 0, a = 0; a < l; a++)\n c = c + Math.abs(t[a]);\n if (c === 0)\n for (s[l] = t[l - 1], h = 0; h < l; h++)\n t[h] = e.get(l - 1, h), e.set(l, h, 0), e.set(h, l, 0);\n else {\n for (a = 0; a < l; a++)\n t[a] /= c, o += t[a] * t[a];\n for (n = t[l - 1], i = Math.sqrt(o), n > 0 && (i = -i), s[l] = c * i, o = o - n * i, t[l - 1] = n - i, h = 0; h < l; h++)\n s[h] = 0;\n for (h = 0; h < l; h++) {\n for (n = t[h], e.set(h, l, n), i = s[h] + e.get(h, h) * n, a = h + 1; a <= l - 1; a++)\n i += e.get(a, h) * t[a], s[a] += e.get(a, h) * n;\n s[h] = i;\n }\n for (n = 0, h = 0; h < l; h++)\n s[h] /= o, n += s[h] * t[h];\n for (u = n / (o + o), h = 0; h < l; h++)\n s[h] -= u * t[h];\n for (h = 0; h < l; h++) {\n for (n = t[h], i = s[h], a = h; a <= l - 1; a++)\n e.set(a, h, e.get(a, h) - (n * s[a] + i * t[a]));\n t[h] = e.get(l - 1, h), e.set(l, h, 0);\n }\n }\n t[l] = o;\n }\n for (l = 0; l < r - 1; l++) {\n if (e.set(r - 1, l, e.get(l, l)), e.set(l, l, 1), o = t[l + 1], o !== 0) {\n for (a = 0; a <= l; a++)\n t[a] = e.get(a, l + 1) / o;\n for (h = 0; h <= l; h++) {\n for (i = 0, a = 0; a <= l; a++)\n i += e.get(a, l + 1) * e.get(a, h);\n for (a = 0; a <= l; a++)\n e.set(a, h, e.get(a, h) - i * t[a]);\n }\n }\n for (a = 0; a <= l; a++)\n e.set(a, l + 1, 0);\n }\n for (h = 0; h < r; h++)\n t[h] = e.get(r - 1, h), e.set(r - 1, h, 0);\n e.set(r - 1, r - 1, 1), s[0] = 0;\n}\nfunction en(r, s, t, e) {\n let n, i, o, l, h, a, u, c, g, d, w, p, P, f, y, E;\n for (o = 1; o < r; o++)\n s[o - 1] = s[o];\n s[r - 1] = 0;\n let R = 0, v = 0, L = Number.EPSILON;\n for (a = 0; a < r; a++) {\n for (v = Math.max(v, Math.abs(t[a]) + Math.abs(s[a])), u = a; u < r && !(Math.abs(s[u]) <= L * v); )\n u++;\n if (u > a)\n do {\n for (n = t[a], c = (t[a + 1] - n) / (2 * s[a]), g = ut(c, 1), c < 0 && (g = -g), t[a] = s[a] / (c + g), t[a + 1] = s[a] * (c + g), d = t[a + 1], i = n - t[a], o = a + 2; o < r; o++)\n t[o] -= i;\n for (R = R + i, c = t[u], w = 1, p = w, P = w, f = s[a + 1], y = 0, E = 0, o = u - 1; o >= a; o--)\n for (P = p, p = w, E = y, n = w * s[o], i = w * c, g = ut(c, s[o]), s[o + 1] = y * g, y = s[o] / g, w = c / g, c = w * t[o] - y * n, t[o + 1] = i + y * (w * n + y * t[o]), h = 0; h < r; h++)\n i = e.get(h, o + 1), e.set(h, o + 1, y * e.get(h, o) + w * i), e.set(h, o, w * e.get(h, o) - y * i);\n c = -y * E * P * f * s[a] / d, s[a] = y * c, t[a] = w * c;\n } while (Math.abs(s[a]) > L * v);\n t[a] = t[a] + R, s[a] = 0;\n }\n for (o = 0; o < r - 1; o++) {\n for (h = o, c = t[o], l = o + 1; l < r; l++)\n t[l] < c && (h = l, c = t[l]);\n if (h !== o)\n for (t[h] = t[o], t[o] = c, l = 0; l < r; l++)\n c = e.get(l, o), e.set(l, o, e.get(l, h)), e.set(l, h, c);\n }\n}\nfunction sn(r, s, t, e) {\n let n = 0, i = r - 1, o, l, h, a, u, c, g;\n for (c = n + 1; c <= i - 1; c++) {\n for (g = 0, a = c; a <= i; a++)\n g = g + Math.abs(s.get(a, c - 1));\n if (g !== 0) {\n for (h = 0, a = i; a >= c; a--)\n t[a] = s.get(a, c - 1) / g, h += t[a] * t[a];\n for (l = Math.sqrt(h), t[c] > 0 && (l = -l), h = h - t[c] * l, t[c] = t[c] - l, u = c; u < r; u++) {\n for (o = 0, a = i; a >= c; a--)\n o += t[a] * s.get(a, u);\n for (o = o / h, a = c; a <= i; a++)\n s.set(a, u, s.get(a, u) - o * t[a]);\n }\n for (a = 0; a <= i; a++) {\n for (o = 0, u = i; u >= c; u--)\n o += t[u] * s.get(a, u);\n for (o = o / h, u = c; u <= i; u++)\n s.set(a, u, s.get(a, u) - o * t[u]);\n }\n t[c] = g * t[c], s.set(c, c - 1, g * l);\n }\n }\n for (a = 0; a < r; a++)\n for (u = 0; u < r; u++)\n e.set(a, u, a === u ? 1 : 0);\n for (c = i - 1; c >= n + 1; c--)\n if (s.get(c, c - 1) !== 0) {\n for (a = c + 1; a <= i; a++)\n t[a] = s.get(a, c - 1);\n for (u = c; u <= i; u++) {\n for (l = 0, a = c; a <= i; a++)\n l += t[a] * e.get(a, u);\n for (l = l / t[c] / s.get(c, c - 1), a = c; a <= i; a++)\n e.set(a, u, e.get(a, u) + l * t[a]);\n }\n }\n}\nfunction nn(r, s, t, e, n) {\n let i = r - 1, o = 0, l = r - 1, h = Number.EPSILON, a = 0, u = 0, c = 0, g = 0, d = 0, w = 0, p = 0, P = 0, f, y, E, R, v, L, S, k, D, m, b, j, M, C, A;\n for (f = 0; f < r; f++)\n for ((f < o || f > l) && (t[f] = n.get(f, f), s[f] = 0), y = Math.max(f - 1, 0); y < r; y++)\n u = u + Math.abs(n.get(f, y));\n for (; i >= o; ) {\n for (R = i; R > o && (w = Math.abs(n.get(R - 1, R - 1)) + Math.abs(n.get(R, R)), w === 0 && (w = u), !(Math.abs(n.get(R, R - 1)) < h * w)); )\n R--;\n if (R === i)\n n.set(i, i, n.get(i, i) + a), t[i] = n.get(i, i), s[i] = 0, i--, P = 0;\n else if (R === i - 1) {\n if (S = n.get(i, i - 1) * n.get(i - 1, i), c = (n.get(i - 1, i - 1) - n.get(i, i)) / 2, g = c * c + S, p = Math.sqrt(Math.abs(g)), n.set(i, i, n.get(i, i) + a), n.set(i - 1, i - 1, n.get(i - 1, i - 1) + a), k = n.get(i, i), g >= 0) {\n for (p = c >= 0 ? c + p : c - p, t[i - 1] = k + p, t[i] = t[i - 1], p !== 0 && (t[i] = k - S / p), s[i - 1] = 0, s[i] = 0, k = n.get(i, i - 1), w = Math.abs(k) + Math.abs(p), c = k / w, g = p / w, d = Math.sqrt(c * c + g * g), c = c / d, g = g / d, y = i - 1; y < r; y++)\n p = n.get(i - 1, y), n.set(i - 1, y, g * p + c * n.get(i, y)), n.set(i, y, g * n.get(i, y) - c * p);\n for (f = 0; f <= i; f++)\n p = n.get(f, i - 1), n.set(f, i - 1, g * p + c * n.get(f, i)), n.set(f, i, g * n.get(f, i) - c * p);\n for (f = o; f <= l; f++)\n p = e.get(f, i - 1), e.set(f, i - 1, g * p + c * e.get(f, i)), e.set(f, i, g * e.get(f, i) - c * p);\n } else\n t[i - 1] = k + c, t[i] = k + c, s[i - 1] = p, s[i] = -p;\n i = i - 2, P = 0;\n } else {\n if (k = n.get(i, i), D = 0, S = 0, R < i && (D = n.get(i - 1, i - 1), S = n.get(i, i - 1) * n.get(i - 1, i)), P === 10) {\n for (a += k, f = o; f <= i; f++)\n n.set(f, f, n.get(f, f) - k);\n w = Math.abs(n.get(i, i - 1)) + Math.abs(n.get(i - 1, i - 2)), k = D = 0.75 * w, S = -0.4375 * w * w;\n }\n if (P === 30 && (w = (D - k) / 2, w = w * w + S, w > 0)) {\n for (w = Math.sqrt(w), D < k && (w = -w), w = k - S / ((D - k) / 2 + w), f = o; f <= i; f++)\n n.set(f, f, n.get(f, f) - w);\n a += w, k = D = S = 0.964;\n }\n for (P = P + 1, v = i - 2; v >= R && (p = n.get(v, v), d = k - p, w = D - p, c = (d * w - S) / n.get(v + 1, v) + n.get(v, v + 1), g = n.get(v + 1, v + 1) - p - d - w, d = n.get(v + 2, v + 1), w = Math.abs(c) + Math.abs(g) + Math.abs(d), c = c / w, g = g / w, d = d / w, !(v === R || Math.abs(n.get(v, v - 1)) * (Math.abs(g) + Math.abs(d)) < h * (Math.abs(c) * (Math.abs(n.get(v - 1, v - 1)) + Math.abs(p) + Math.abs(n.get(v + 1, v + 1)))))); )\n v--;\n for (f = v + 2; f <= i; f++)\n n.set(f, f - 2, 0), f > v + 2 && n.set(f, f - 3, 0);\n for (E = v; E <= i - 1 && (C = E !== i - 1, E !== v && (c = n.get(E, E - 1), g = n.get(E + 1, E - 1), d = C ? n.get(E + 2, E - 1) : 0, k = Math.abs(c) + Math.abs(g) + Math.abs(d), k !== 0 && (c = c / k, g = g / k, d = d / k)), k !== 0); E++)\n if (w = Math.sqrt(c * c + g * g + d * d), c < 0 && (w = -w), w !== 0) {\n for (E !== v ? n.set(E, E - 1, -w * k) : R !== v && n.set(E, E - 1, -n.get(E, E - 1)), c = c + w, k = c / w, D = g / w, p = d / w, g = g / c, d = d / c, y = E; y < r; y++)\n c = n.get(E, y) + g * n.get(E + 1, y), C && (c = c + d * n.get(E + 2, y), n.set(E + 2, y, n.get(E + 2, y) - c * p)), n.set(E, y, n.get(E, y) - c * k), n.set(E + 1, y, n.get(E + 1, y) - c * D);\n for (f = 0; f <= Math.min(i, E + 3); f++)\n c = k * n.get(f, E) + D * n.get(f, E + 1), C && (c = c + p * n.get(f, E + 2), n.set(f, E + 2, n.get(f, E + 2) - c * d)), n.set(f, E, n.get(f, E) - c), n.set(f, E + 1, n.get(f, E + 1) - c * g);\n for (f = o; f <= l; f++)\n c = k * e.get(f, E) + D * e.get(f, E + 1), C && (c = c + p * e.get(f, E + 2), e.set(f, E + 2, e.get(f, E + 2) - c * d)), e.set(f, E, e.get(f, E) - c), e.set(f, E + 1, e.get(f, E + 1) - c * g);\n }\n }\n }\n if (u !== 0) {\n for (i = r - 1; i >= 0; i--)\n if (c = t[i], g = s[i], g === 0)\n for (R = i, n.set(i, i, 1), f = i - 1; f >= 0; f--) {\n for (S = n.get(f, f) - c, d = 0, y = R; y <= i; y++)\n d = d + n.get(f, y) * n.get(y, i);\n if (s[f] < 0)\n p = S, w = d;\n else if (R = f, s[f] === 0 ? n.set(f, i, S !== 0 ? -d / S : -d / (h * u)) : (k = n.get(f, f + 1), D = n.get(f + 1, f), g = (t[f] - c) * (t[f] - c) + s[f] * s[f], L = (k * w - p * d) / g, n.set(f, i, L), n.set(\n f + 1,\n i,\n Math.abs(k) > Math.abs(p) ? (-d - S * L) / k : (-w - D * L) / p\n )), L = Math.abs(n.get(f, i)), h * L * L > 1)\n for (y = f; y <= i; y++)\n n.set(y, i, n.get(y, i) / L);\n }\n else if (g < 0)\n for (R = i - 1, Math.abs(n.get(i, i - 1)) > Math.abs(n.get(i - 1, i)) ? (n.set(i - 1, i - 1, g / n.get(i, i - 1)), n.set(i - 1, i, -(n.get(i, i) - c) / n.get(i, i - 1))) : (A = Wt(0, -n.get(i - 1, i), n.get(i - 1, i - 1) - c, g), n.set(i - 1, i - 1, A[0]), n.set(i - 1, i, A[1])), n.set(i, i - 1, 0), n.set(i, i, 1), f = i - 2; f >= 0; f--) {\n for (m = 0, b = 0, y = R; y <= i; y++)\n m = m + n.get(f, y) * n.get(y, i - 1), b = b + n.get(f, y) * n.get(y, i);\n if (S = n.get(f, f) - c, s[f] < 0)\n p = S, d = m, w = b;\n else if (R = f, s[f] === 0 ? (A = Wt(-m, -b, S, g), n.set(f, i - 1, A[0]), n.set(f, i, A[1])) : (k = n.get(f, f + 1), D = n.get(f + 1, f), j = (t[f] - c) * (t[f] - c) + s[f] * s[f] - g * g, M = (t[f] - c) * 2 * g, j === 0 && M === 0 && (j = h * u * (Math.abs(S) + Math.abs(g) + Math.abs(k) + Math.abs(D) + Math.abs(p))), A = Wt(\n k * d - p * m + g * b,\n k * w - p * b - g * m,\n j,\n M\n ), n.set(f, i - 1, A[0]), n.set(f, i, A[1]), Math.abs(k) > Math.abs(p) + Math.abs(g) ? (n.set(\n f + 1,\n i - 1,\n (-m - S * n.get(f, i - 1) + g * n.get(f, i)) / k\n ), n.set(\n f + 1,\n i,\n (-b - S * n.get(f, i) - g * n.get(f, i - 1)) / k\n )) : (A = Wt(\n -d - D * n.get(f, i - 1),\n -w - D * n.get(f, i),\n p,\n g\n ), n.set(f + 1, i - 1, A[0]), n.set(f + 1, i, A[1]))), L = Math.max(Math.abs(n.get(f, i - 1)), Math.abs(n.get(f, i))), h * L * L > 1)\n for (y = f; y <= i; y++)\n n.set(y, i - 1, n.get(y, i - 1) / L), n.set(y, i, n.get(y, i) / L);\n }\n for (f = 0; f < r; f++)\n if (f < o || f > l)\n for (y = f; y < r; y++)\n e.set(f, y, n.get(f, y));\n for (y = r - 1; y >= o; y--)\n for (f = o; f <= l; f++) {\n for (p = 0, E = o; E <= Math.min(y, l); E++)\n p = p + e.get(f, E) * n.get(E, y);\n e.set(f, y, p);\n }\n }\n}\nfunction Wt(r, s, t, e) {\n let n, i;\n return Math.abs(t) > Math.abs(e) ? (n = e / t, i = t + n * e, [(r + n * s) / i, (s - n * r) / i]) : (n = t / e, i = e + n * t, [(n * r + s) / i, (n * s - r) / i]);\n}\nclass Ye {\n constructor(s) {\n if (s = rt.checkMatrix(s), !s.isSymmetric())\n throw new Error(\"Matrix is not symmetric\");\n let t = s, e = t.rows, n = new _(e, e), i = !0, o, l, h;\n for (l = 0; l < e; l++) {\n let a = 0;\n for (h = 0; h < l; h++) {\n let u = 0;\n for (o = 0; o < h; o++)\n u += n.get(h, o) * n.get(l, o);\n u = (t.get(l, h) - u) / n.get(h, h), n.set(l, h, u), a = a + u * u;\n }\n for (a = t.get(l, l) - a, i && (i = a > 0), n.set(l, l, Math.sqrt(Math.max(a, 0))), h = l + 1; h < e; h++)\n n.set(l, h, 0);\n }\n this.L = n, this.positiveDefinite = i;\n }\n isPositiveDefinite() {\n return this.positiveDefinite;\n }\n solve(s) {\n s = rt.checkMatrix(s);\n let t = this.L, e = t.rows;\n if (s.rows !== e)\n throw new Error(\"Matrix dimensions do not match\");\n if (this.isPositiveDefinite() === !1)\n throw new Error(\"Matrix is not positive definite\");\n let n = s.columns, i = s.clone(), o, l, h;\n for (h = 0; h < e; h++)\n for (l = 0; l < n; l++) {\n for (o = 0; o < h; o++)\n i.set(h, l, i.get(h, l) - i.get(o, l) * t.get(h, o));\n i.set(h, l, i.get(h, l) / t.get(h, h));\n }\n for (h = e - 1; h >= 0; h--)\n for (l = 0; l < n; l++) {\n for (o = h + 1; o < e; o++)\n i.set(h, l, i.get(h, l) - i.get(o, l) * t.get(o, h));\n i.set(h, l, i.get(h, l) / t.get(h, h));\n }\n return i;\n }\n get lowerTriangularMatrix() {\n return this.L;\n }\n}\nclass We {\n constructor(s, t = {}) {\n s = rt.checkMatrix(s);\n let { Y: e } = t;\n const {\n scaleScores: n = !1,\n maxIterations: i = 1e3,\n terminationCriteria: o = 1e-10\n } = t;\n let l;\n if (e) {\n if (st.isAnyArray(e) && typeof e[0] == \"number\" ? e = _.columnVector(e) : e = rt.checkMatrix(e), e.rows !== s.rows)\n throw new Error(\"Y should have the same number of rows as X\");\n l = e.getColumnVector(0);\n } else\n l = s.getColumnVector(0);\n let h = 1, a, u, c, g;\n for (let d = 0; d < i && h > o; d++)\n c = s.transpose().mmul(l).div(l.transpose().mmul(l).get(0, 0)), c = c.div(c.norm()), a = s.mmul(c).div(c.transpose().mmul(c).get(0, 0)), d > 0 && (h = a.clone().sub(g).pow(2).sum()), g = a.clone(), e ? (u = e.transpose().mmul(a).div(a.transpose().mmul(a).get(0, 0)), u = u.div(u.norm()), l = e.mmul(u).div(u.transpose().mmul(u).get(0, 0))) : l = a;\n if (e) {\n let d = s.transpose().mmul(a).div(a.transpose().mmul(a).get(0, 0));\n d = d.div(d.norm());\n let w = s.clone().sub(a.clone().mmul(d.transpose())), p = l.transpose().mmul(a).div(a.transpose().mmul(a).get(0, 0)), P = e.clone().sub(\n a.clone().mulS(p.get(0, 0)).mmul(u.transpose())\n );\n this.t = a, this.p = d.transpose(), this.w = c.transpose(), this.q = u, this.u = l, this.s = a.transpose().mmul(a), this.xResidual = w, this.yResidual = P, this.betas = p;\n } else\n this.w = c.transpose(), this.s = a.transpose().mmul(a).sqrt(), n ? this.t = a.clone().div(this.s.get(0, 0)) : this.t = a, this.xResidual = s.sub(a.mmul(c.transpose()));\n }\n}\n$.AbstractMatrix = N;\n$.CHO = Ye;\n$.CholeskyDecomposition = Ye;\n$.DistanceMatrix = te;\n$.EVD = Ue;\nvar rn = $.EigenvalueDecomposition = Ue;\n$.LU = ee;\n$.LuDecomposition = ee;\nvar Qe = $.Matrix = _;\n$.MatrixColumnSelectionView = Ls;\n$.MatrixColumnView = $s;\n$.MatrixFlipColumnView = Ds;\n$.MatrixFlipRowView = Os;\n$.MatrixRowSelectionView = zs;\n$.MatrixRowView = Bs;\n$.MatrixSelectionView = Gt;\n$.MatrixSubView = Us;\n$.MatrixTransposeView = Ys;\n$.NIPALS = We;\n$.Nipals = We;\n$.QR = pe;\n$.QrDecomposition = pe;\n$.SVD = vt;\n$.SingularValueDecomposition = vt;\n$.SymmetricMatrix = pt;\n$.WrapperMatrix1D = Be;\n$.WrapperMatrix2D = rt;\n$.correlation = Hs;\n$.covariance = Ks;\nvar Ce = $.default = _;\n$.determinant = Xt;\n$.inverse = Qs;\n$.linearDependencies = Zs;\n$.pseudoInverse = Js;\n$.solve = ze;\n$.wrap = Ws;\nconst on = rn, ln = Qe;\nCe.Matrix && Ce.Matrix;\nfunction qt(r, s, t) {\n const e = r / t, n = s / t;\n if (!(isFinite(e) && isFinite(n))) {\n const h = -r / s;\n return isFinite(h) ? [h] : r == 0 && s == 0 ? [0] : [];\n }\n const i = n * n - 4 * e;\n let o = 0;\n if (isFinite(i)) {\n if (i < 0)\n return [];\n if (i == 0)\n return [-0.5 * n];\n o = -0.5 * (n + kt(Math.sqrt(i), n));\n } else\n o = -n;\n const l = e / o;\n return isFinite(l) ? l > o ? [o, l] : [l, o] : [o];\n}\nfunction Ge(r, s, t, e) {\n const n = t / (3 * e), i = s / (3 * e), o = r / e;\n if (!(isFinite(o) && isFinite(i) && isFinite(n)))\n return qt(r, s, t);\n const l = -n * n + i, h = -i * n + o, a = n * o - i * i, u = 4 * l * a - h * h, c = -2 * n * l + h;\n if (u < 0) {\n const g = Math.sqrt(-0.25 * u), d = -0.5 * c;\n return [Math.cbrt(d + g) + Math.cbrt(d - g) - n];\n } else if (u == 0) {\n const g = kt(Math.sqrt(-l), c);\n return [g - n, -2 * g - n];\n } else {\n const g = Math.atan2(Math.sqrt(u), -c) / 3, d = Math.cos(g), w = Math.sin(g) * Math.sqrt(3), p = 0.5 * (-d + w), P = 0.5 * (-d - w), f = 2 * Math.sqrt(-l);\n return [f * d - n, f * p - n, f * P - n];\n }\n}\nfunction En(r, s, t, e, n) {\n if (n == 0)\n return Ge(r, s, t, e);\n const i = e / n, o = t / n, l = s / n, h = r / n;\n let a = qe(i, o, l, h, !1);\n if (a !== null)\n return a;\n const u = 716e74;\n for (let c = 0; c < 2; c++)\n if (a = qe(\n i / u,\n o / (u * u),\n l / (u * u * u),\n h / (u * u * u * u),\n c != 0\n ), a !== null) {\n for (let g = 0; g < a.length; g++)\n a[g] *= u;\n return a;\n }\n return [];\n}\nfunction gt(r, s) {\n return s == 0 ? Math.abs(r) : Math.abs((r - s) / s);\n}\nfunction qe(r, s, t, e, n) {\n const i = hn(r, s, t, e, n);\n if (i !== null && i.length == 4) {\n let o = [];\n for (let l = 0; l < 2; l++) {\n const h = i[l * 2], a = i[l * 2 + 1];\n o = o.concat(qt(a, h, 1));\n }\n return o;\n }\n return null;\n}\nfunction hn(r, s, t, e, n) {\n function i(F, V, x, B) {\n const U = gt(F + x, r), I = gt(V + F * x + B, s), O = gt(V * x + F * B, t);\n return U + I + O;\n }\n function o(F, V, x, B) {\n return i(F, V, x, B) + gt(V * B, e);\n }\n const l = 9 * r * r - 24 * s, h = l >= 0 ? -2 * s / (3 * r + kt(Math.sqrt(l), r)) : -0.25 * r, a = r + 4 * h, u = s + 3 * h * (r + 2 * h), c = t + h * (2 * s + h * (3 * r + 4 * h)), g = e + h * (t + h * (s + h * (r + h)));\n let d = 0, w = 0;\n const p = 349e100;\n if (n) {\n const F = a / p, V = u / p, x = c / p, B = g / p;\n d = F * x - 4 / p * B - 1 / 3 * V * V, w = (F * x - 8 / p * B - 2 / 9 * V * V) * (1 / 3) * V - x * (x / p) - F * F * B;\n } else\n d = a * c - 4 * g - 1 / 3 * u * u, w = (a * c + 8 * g - 2 / 9 * u * u) * (1 / 3) * u - c * c - a * a * g;\n if (!isFinite(d) && isFinite(w))\n return null;\n let P = an(d, w);\n n && (P *= p);\n const f = r * 0.5, y = 1 / 6 * s + 0.5 * P, E = t - r * y, R = 2 / 3 * s - P - f * f, v = 0.5 * E / R, L = 2 * (e - y * y) / E, S = 0.5 * E / L;\n let k = 0, D = 0, m = 0;\n for (let F = 0; F < 3; F++) {\n const V = F == 1 ? S : R, x = F == 0 ? v : L, B = gt(V + f * f + 2 * y, s), U = gt(2 * (V * x + f * y), t), I = gt(V * x * x + y * y, e), O = B + U + I;\n (F == 0 || O < m) && (k = V, D = x, m = O);\n }\n const b = k, j = D;\n let M = 0, C = 0, A = 0, T = 0;\n if (b < 0) {\n const F = Math.sqrt(-b);\n if (M = f + F, C = y + F * j, A = f - F, T = y - F * j, Math.abs(T) < Math.abs(C) ? T = e / C : Math.abs(T) > Math.abs(C) && (C = e / T), Math.abs(M) != Math.abs(A)) {\n let V = null, x = null;\n if (Math.abs(M) < Math.abs(A)) {\n const U = (t - C * A) / T, I = (s - T - C) / A;\n V = [r - A, U, I], x = [A, A, A];\n } else {\n const U = (t - M * T) / C, I = (s - T - C) / M, O = r - M;\n V = [M, M, M], x = [O, U, I];\n }\n let B = 0;\n for (let U = 0; U < 3; U++) {\n const I = V[U], O = x[U];\n if (isFinite(I) && isFinite(O)) {\n const X = i(I, C, O, T);\n (U == 0 || X < B) && (M = I, A = O, B = X);\n }\n }\n }\n } else if (b == 0) {\n const F = e - y * y;\n M = f, C = y + Math.sqrt(-F), A = f, T = y - Math.sqrt(-F), Math.abs(C) > Math.abs(T) ? T = e / C : Math.abs(T) > Math.abs(C) && (C = e / T);\n } else\n return [];\n let z = o(M, C, A, T);\n for (let F = 0; F < 8 && z != 0; F++) {\n const V = C * T - e, x = C * A + M * T - t, B = C + M * A + T - s, U = M + A - r, I = M - A, O = C * C - C * (A * I + 2 * T) + T * (M * I + T);\n if (O == 0)\n break;\n const X = 1 / O, G = T - C, W = C * A - M * T, se = I * V + G * x + W * B - (C * G + M * W) * U, ne = (M * I + G) * V - C * (I * x + G * B + W * U), ie = -I * V - G * x - W * B + (A * W + T * G) * U, re = -(A * I + G) * V + T * (I * x + G * B + W * U), xt = M - X * se, Nt = C - X * ne, Vt = A - X * ie, $t = T - X * re, Lt = o(xt, Nt, Vt, $t);\n if (Lt < z)\n M = xt, C = Nt, A = Vt, T = $t, z = Lt;\n else\n break;\n }\n return [M, C, A, T];\n}\nfunction an(r, s) {\n const t = -0.3333333333333333 * r, e = 0.5 * s;\n let n, i = null;\n if ((Math.abs(t) >= 1e102 || Math.abs(e) >= 1e164) && (Math.abs(t) < Math.abs(e) ? i = 1 - t * (t / e) * (t / e) : i = Math.sign(t) * (e / t * (e / t) / t - 1)), i !== null && e == 0)\n r > 0 ? n = 0 : n = Math.sqrt(-r);\n else if (i !== null ? i < 0 : e * e < t * t * t) {\n const a = i !== null ? e / t / Math.sqrt(t) : e / Math.sqrt(t * t * t);\n n = -2 * Math.sqrt(t) * kt(Math.cos(Math.acos(Math.abs(a)) * (1 / 3)), a);\n } else {\n let a;\n i !== null ? Math.abs(t) < Math.abs(e) ? a = -e * (1 + Math.sqrt(i)) : a = -e - kt(Math.sqrt(Math.abs(t)) * t * Math.sqrt(i), e) : a = Math.cbrt(-e - kt(Math.sqrt(e * e - t * t * t), e));\n const u = a == 0 ? 0 : t / a;\n n = a + u;\n }\n let o = n, l = (o * o + r) * o + s;\n if (Math.abs(l) < 222045e-21 * Math.max(o * o * o, r * o, s))\n return o;\n for (let a = 0; a < 8; a++) {\n const u = 3 * o * o + r;\n if (u == 0)\n break;\n const c = o - l / u, g = (c * c + r) * c + s;\n if (g == 0)\n return c;\n if (Math.abs(g) >= Math.abs(l))\n break;\n o = c, l = g;\n }\n return o;\n}\nfunction kt(r, s) {\n const t = Math.abs(r);\n return s < 0 ? -t : t;\n}\nfunction un(r, s = 1e-9) {\n if (r[r.length - 1] == 0)\n return un(r.slice(0, -1), s);\n const t = new ln([\n r.slice(0, -1).reverse().map((n) => -n / r[r.length - 1]),\n ...Array.from({ length: r.length - 2 }, (n, i) => {\n const o = new Array(r.length - 1).fill(0);\n return o[i] = 1, o;\n })\n ]), e = new on(t);\n return e.realEigenvalues.filter(\n (n, i) => Math.abs(e.imaginaryEigenvalues[i]) < s\n );\n}\nconst cn = (r, s, t) => [r[0] * (1 - t) + s[0] * t, r[1] * (1 - t) + s[1] * t];\nfunction fn(r) {\n const s = [];\n for (let t = 0; t < r.length - 1; t++)\n s.push([r[t], r[t + 1]]);\n return s;\n}\nfunction de(r, s) {\n const t = fn(r).map(([e, n]) => cn(e, n, s));\n return r.length === 2 ? [t] : [...de(t, s), t];\n}\nconst Ae = Symbol.for(\"pantograph:CubicBezier\");\nclass Et extends Ft {\n constructor(t, e, n, i) {\n super(t, e);\n q(this, \"segmentType\", \"CUBIC_BEZIER\");\n q(this, \"firstControlPoint\");\n q(this, \"lastControlPoint\");\n q(this, \"_boundingBox\", null);\n q(this, \"_polynomialCoefficients\", null);\n Object.defineProperty(this, Ae, { value: !0 }), this.firstControlPoint = n, this.lastControlPoint = i;\n }\n static isInstance(t) {\n return !!t && t[Ae] === !0;\n }\n get midPoint() {\n return this.paramPoint(0.5);\n }\n _extremaInDirection(t) {\n const [e, n, i, o] = [\n this.firstPoint[t],\n this.firstControlPoint[t],\n this.lastControlPoint[t],\n this.lastPoint[t]\n ], l = -e + 3 * n - 3 * i + o, h = 2 * e - 4 * n + 2 * i, a = -e + n;\n return qt(a, h, l).filter(\n (u) => u >= -this.precision && u <= 1 + this.precision\n );\n }\n getParametersOfExtrema() {\n return Array.from(\n new Set(this._extremaInDirection(0).concat(this._extremaInDirection(1)))\n );\n }\n get alignedCurve() {\n const t = [-this.firstPoint[0], -this.firstPoint[1]], e = Q(this.lastPoint, this.firstPoint), n = Math.atan2(e[1], e[0]), i = new et();\n return i.translate(t[0], t[1]), i.rotate(-n), this.transform(i);\n }\n getInflexionParameters() {\n const t = this.alignedCurve, [e, n] = t.firstControlPoint, [i, o] = t.lastControlPoint, [l, h] = t.lastPoint, a = i * n, u = l * n, c = e * o, g = l * o, d = -3 * a + 2 * u + 3 * c - g, w = 3 * a - u - 3 * c, p = c - a;\n return qt(p, w, d).filter((P) => P >= 0 && P <= 1);\n }\n get boundingBox() {\n return this._boundingBox === null && (this._boundingBox = ce([\n this.firstPoint,\n ...this.getParametersOfExtrema().map((t) => this.paramPoint(t)),\n this.lastPoint\n ]).grow(this.precision)), this._boundingBox;\n }\n clone() {\n return new Et(\n this.firstPoint,\n this.lastPoint,\n this.firstControlPoint,\n this.lastControlPoint\n );\n }\n reverse() {\n return new Et(\n this.lastPoint,\n this.firstPoint,\n this.lastControlPoint,\n this.firstControlPoint\n );\n }\n isSame(t) {\n return t.segmentType !== \"CUBIC_BEZIER\" ? !1 : Y(this.firstPoint, t.firstPoint) && Y(this.lastPoint, t.lastPoint) && Y(this.firstControlPoint, t.firstControlPoint) && Y(this.lastControlPoint, t.lastControlPoint);\n }\n distanceFrom(t) {\n const n = $e((i) => Rt(this.paramPoint(i), t), this.precision);\n return n.argMin < -this.precision || n.argMin > 1 + this.precision ? Math.min(\n J(this.firstPoint, t),\n J(this.lastPoint, t)\n ) : Math.sqrt(n.fMin);\n }\n isOnSegment(t) {\n if (!this.boundingBox.contains(t))\n return !1;\n try {\n const e = this.pointToParam(t);\n return e >= -this.precision && e <= 1 + this.precision;\n } catch {\n return !1;\n }\n }\n gradientAt(t) {\n const e = 1 - t, n = e * e, i = t * t, o = 3 * n, l = 6 * e * t, h = 3 * i, a = Q(this.firstControlPoint, this.firstPoint), u = Q(this.lastControlPoint, this.firstControlPoint), c = Q(this.lastPoint, this.lastControlPoint);\n return [\n o * a[0] + l * u[0] + h * c[0],\n o * a[1] + l * u[1] + h * c[1]\n ];\n }\n secondDerivativeAt(t) {\n const e = it(this.firstPoint, this.lastControlPoint), n = nt(this.firstControlPoint, 2), i = it(this.firstControlPoint, this.lastPoint), o = nt(this.lastControlPoint, 2), l = nt(Q(e, n), 6 * (1 - t)), h = nt(Q(i, o), 6 * t);\n return it(l, h);\n }\n tangentAt(t) {\n const e = this.pointToParam(t);\n return H(this.gradientAt(e));\n }\n get tangentAtFirstPoint() {\n return H(Q(this.firstControlPoint, this.firstPoint));\n }\n get tangentAtLastPoint() {\n return H(Q(this.lastPoint, this.lastControlPoint));\n }\n normalAt(t) {\n const e = this.tangentAt(t);\n return tt(e);\n }\n get normalAtFirstPoint() {\n return tt(this.tangentAtFirstPoint);\n }\n get normalAtLastPoint() {\n return tt(this.tangentAtLastPoint);\n }\n splitAtParameters(t, e = null) {\n const n = [...t];\n n.sort((o, l) => o - l);\n let i = {\n originalParam: 0,\n param: 0,\n p0: this.firstPoint,\n p1: this.firstControlPoint,\n p2: this.lastControlPoint\n };\n return n.flatMap((o, l) => {\n if (o - i.originalParam < this.precision)\n return [];\n let h = !1;\n o > 1 - this.precision && (h = !0);\n const a = (o - i.originalParam) / (1 - i.originalParam), u = de(\n [\n i.p0,\n i.p1,\n i.p2,\n this.lastPoint\n ],\n h ? 1 : a\n ), c = h ? this.lastPoint : (e == null ? void 0 : e.get(o)) ?? u[0][0], g = u[1][0], d = u[2][0], w = u[1][1], p = u[2][2], P = new Et(\n i.p0,\n c,\n d,\n g\n );\n return i = {\n param: a,\n originalParam: o,\n p0: c,\n p1: w,\n p2: p\n }, l === n.length - 1 && !h ? [\n P,\n new Et(\n i.p0,\n this.lastPoint,\n i.p1,\n i.p2\n )\n ] : P;\n });\n }\n splitAt(t) {\n let e;\n if (Array.isArray(t) && t.length === 0)\n return [this];\n Array.isArray(t[0]) ? e = t : e = [t];\n const n = e.map((o) => this.pointToParam(o)), i = new Map(\n Kt([n, e])\n );\n return this.splitAtParameters(n, i);\n }\n transform(t) {\n return new Et(\n t.transform(this.firstPoint),\n t.transform(this.lastPoint),\n t.transform(this.firstControlPoint),\n t.transform(this.lastControlPoint)\n );\n }\n paramPoint(t) {\n const e = 1 - t, n = e * e, i = t * t, o = n * e, l = 3 * n * t, h = 3 * e * i, a = i * t;\n return [\n o * this.firstPoint[0] + l * this.firstControlPoint[0] + h * this.lastControlPoint[0] + a * this.lastPoint[0],\n o * this.firstPoint[1] + l * this.firstControlPoint[1] + h * this.lastControlPoint[1] + a * this.lastPoint[1]\n ];\n }\n get polynomialCoefficients() {\n if (this._polynomialCoefficients === null) {\n const t = (e) => {\n const n = this.firstPoint[e], i = this.firstControlPoint[e], o = this.lastControlPoint[e], l = this.lastPoint[e], h = -n + 3 * i - 3 * o + l, a = 3 * n - 6 * i + 3 * o, u = -3 * n + 3 * i;\n return [n, u, a, h];\n };\n this._polynomialCoefficients = [t(0), t(1)];\n }\n return this._polynomialCoefficients;\n }\n paramsAtY(t) {\n const [e, n, i, o] = this.polynomialCoefficients[1];\n return Ge(e - t, n, i, o).filter((l) => l >= -this.precision && l <= 1 + this.precision);\n }\n pointToParam(t) {\n if (Y(t, this.firstPoint, this.precision)) return 0;\n if (Y(t, this.lastPoint, this.precision)) return 1;\n const e = this.paramsAtY(t[1]);\n if (e.length === 0)\n throw new Error(\"Point is not on the curve\");\n const n = (o) => Math.abs(this.paramPoint(o)[0] - t[0]) <= this.precision, i = e.find(n);\n if (i === void 0)\n throw new Error(\"Point is not on the curve\");\n return i;\n }\n}\nconst Fe = Symbol.for(\"pantograph:EllipseArc\");\nclass jt extends Ft {\n constructor(t, e, n, i, o, l, h = !1, {\n ignoreChecks: a = !1,\n angleUnits: u = \"deg\"\n } = {}) {\n super(t, e);\n q(this, \"segmentType\", \"ELLIPSE_ARC\");\n // I would need to do some more work to improve the precision that I can have\n // on an ellipse with intersection algorithms\n q(this, \"precision\", 1e-6);\n q(this, \"majorRadius\");\n q(this, \"minorRadius\");\n q(this, \"center\");\n q(this, \"tiltAngle\");\n q(this, \"clockwise\");\n q(this, \"_coefficients\", null);\n q(this, \"_boundingBox\");\n q(this, \"_linearExentricity\");\n q(this, \"_exentricity\");\n q(this, \"_focals\");\n q(this, \"_ellipseReferenceFrameTransform\");\n q(this, \"_reverseEllipseReferenceFrameTransform\");\n q(this, \"_rotateFromEllipseReferenceFrame\");\n q(this, \"_firstAngle\");\n q(this, \"_lastAngle\");\n q(this, \"_deltaAngle\");\n Object.defineProperty(this, Fe, { value: !0 }), this.center = n;\n const c = i >= o;\n this.majorRadius = c ? i : o, this.minorRadius = c ? o : i;\n const g = u === \"deg\" ? l * fe : l;\n if (this.tiltAngle = wt(\n c ? g : g + Math.PI / 2\n ), this.clockwise = h, !a) {\n if (Y(t, e))\n throw new Error(\"Invalid arc, cannot be a full circle\");\n if (!this.isPointOnEllipse(t))\n throw new Error(\n `First point ${Z(\n t\n )} not on the ellipse defined by ${this.info}`\n );\n if (!this.isPointOnEllipse(e))\n throw new Error(\n `Last point ${Z(e)} not on the ellipse defined by ${this.info}`\n );\n if (Math.abs(this.majorRadius - this.minorRadius) < this.precision)\n throw new Error(\n \"Both radii should be different, create an arc instead\"\n );\n }\n }\n static isInstance(t) {\n return !!t && t[Fe] === !0;\n }\n get coefficients() {\n if (this._coefficients === null) {\n const [t, e] = this.center, n = this.majorRadius * this.majorRadius, i = this.minorRadius * this.minorRadius, o = Math.cos(this.tiltAngle), l = Math.sin(this.tiltAngle), h = n * l * l + i * o * o, a = 2 * (i - n) * l * o, u = n * o * o + i * l * l;\n this._coefficients = {\n x2: h,\n xy: a,\n y2: u,\n x: -2 * h * t - a * e,\n y: -2 * u * e - a * t,\n c: h * t * t + a * t * e + u * e * e - n * i\n };\n }\n return this._coefficients;\n }\n get info() {\n return `ELLIPSE_ARC(${Z(this.firstPoint)}, ${Z(\n this.lastPoint\n )}, ${Z(this.center)}, ${this.majorRadius}, ${this.minorRadius}, ${this.tiltAngle * Je}, ${this.clockwise ? \"CW\" : \"CCW\"})`;\n }\n reverse() {\n return new jt(\n this.lastPoint,\n this.firstPoint,\n this.center,\n this.majorRadius,\n this.minorRadius,\n this.tiltAngle,\n !this.clockwise,\n { ignoreChecks: !0, angleUnits: \"rad\" }\n );\n }\n clone() {\n return new jt(\n this.firstPoint,\n this.lastPoint,\n this.center,\n this.majorRadius,\n this.minorRadius,\n this.tiltAngle,\n this.clockwise,\n { ignoreChecks: !0, angleUnits: \"rad\" }\n );\n }\n computeEllipseExtrema() {\n const t = Math.tan(this.tiltAngle), e = this.minorRadius / this.majorRadius, n = -Math.atan(e * t), i = Math.atan(e / t);\n return [n, Math.PI + n, i, Math.PI + i].map((l) => this.thetaToParam(l)).filter((l) => this.isValidParameter(l)).map((l) => this.paramPoint(l));\n }\n get boundingBox() {\n if (this._boundingBox === void 0) {\n const t = this.computeEllipseExtrema(), e = [\n this.firstPoint,\n this.lastPoint,\n ...t\n ];\n this._boundingBox = ce(e).grow(this.precision);\n }\n return this._boundingBox;\n }\n get linearExentricity() {\n return this._linearExentricity === void 0 && (this._linearExentricity = Math.sqrt(\n this.majorRadius * this.majorRadius - this.minorRadius * this.minorRadius\n )), this._linearExentricity;\n }\n get exentricity() {\n return this._exentricity === void 0 && (this._exentricity = this.linearExentricity / this.majorRadius), this._exentricity;\n }\n get focals() {\n if (this._focals === void 0) {\n const t = this.majorAxis;\n this._focals = [\n it(this.center, nt(t, this.linearExentricity)),\n it(this.center, nt(t, -this.linearExentricity))\n ];\n }\n return this._focals;\n }\n get majorAxis() {\n return It(1, this.tiltAngle);\n }\n paramPoint(t) {\n const e = this.firstAngle + t * this.deltaAngle * (this.clockwise ? -1 : 1);\n return this.reverseEllipseReferenceFrameTransform.transform([\n this.majorRadius * Math.cos(e),\n this.minorRadius * Math.sin(e)\n ]);\n }\n pointToParam(t) {\n if (!this.isPointOnEllipse(t))\n throw new Error(\n `Point ${Z(t)} not on the ellipse defined by ${this.repr}`\n );\n const e = this.thetaToParam(this.pointTheta(t));\n if (!this.isValidParameter(e))\n throw new Error(\n `Point ${Z(t)} is not on segment ${this.repr}`\n );\n return e;\n }\n get midPoint() {\n return this.paramPoint(0.5);\n }\n isValidParameter(t) {\n return 1 - t >= -this.precision && t >= -this.precision;\n }\n isSame(t) {\n return Y(this.center, t.center) && Math.abs(this.majorRadius - t.majorRadius) < this.precision && Math.abs(this.minorRadius - t.minorRadius) < this.precision && (Math.abs(this.tiltAngle - t.tiltAngle) < this.precision || Math.abs(Math.abs(this.tiltAngle - t.tiltAngle) - Math.PI) < this.precision) && (Y(this.firstPoint, t.firstPoint) && this.clockwise === t.clockwise || Y(this.firstPoint, t.lastPoint) && this.clockwise !== t.clockwise);\n }\n pointTheta(t) {\n const e = this.ellipseReferenceFrameTransform.transform(t), n = Math.atan2(\n e[1] / this.minorRadius,\n e[0] / this.majorRadius\n );\n return wt(n);\n }\n thetaToParam(t) {\n return Zt(this.firstAngle, wt(t), this.clockwise) / this.deltaAngle;\n }\n isPointOnEllipse(t) {\n const [e, n] = this.focals, i = J(t, e), o = J(t, n);\n return Math.abs(2 * this.majorRadius - i - o) < this.precision;\n }\n isOnSegment(t) {\n return this.isPointOnEllipse(t) ? this.isValidParameter(this.thetaToParam(this.pointTheta(t))) : !1;\n }\n distanceFrom(t) {\n let e;\n if (Y(t, this.center) ? e = it(\n this.center,\n nt(tt(this.majorAxis), this.minorRadius)\n ) : e = this.reverseEllipseReferenceFrameTransform.transform(\n gn(\n this.majorRadius,\n this.minorRadius,\n this.ellipseReferenceFrameTransform.transform(t)\n )\n ), this.isValidParameter(this.thetaToParam(this.pointTheta(t))))\n return J(t, e);\n if (ts(t, this.majorAxis, this.center)) {\n const n = wt(\n 2 * Math.PI - this.pointTheta(t)\n ), i = this.thetaToParam(n);\n if (this.isValidParameter(i))\n return J(t, this.paramPoint(i));\n }\n return Math.min(\n J(t, this.firstPoint),\n J(t, this.lastPoint)\n );\n }\n get ellipseReferenceFrameTransform() {\n return this._ellipseReferenceFrameTransform === void 0 && (this._ellipseReferenceFrameTransform = new et().translate(-this.center[0], -this.center[1]).rotate(-this.tiltAngle)), this._ellipseReferenceFrameTransform;\n }\n get reverseEllipseReferenceFrameTransform() {\n return this._reverseEllipseReferenceFrameTransform === void 0 && (this._reverseEllipseReferenceFrameTransform = new et().rotate(this.tiltAngle).translate(this.center[0], this.center[1])), this._reverseEllipseReferenceFrameTransform;\n }\n get rotateFromEllipseReferenceFrame() {\n return this._rotateFromEllipseReferenceFrame === void 0 && (this._rotateFromEllipseReferenceFrame = new et().rotate(\n this.tiltAngle\n )), this._rotateFromEllipseReferenceFrame;\n }\n get firstAngle() {\n return this._firstAngle === void 0 && (this._firstAngle = this.pointTheta(this.firstPoint)), this._firstAngle;\n }\n get lastAngle() {\n return this._lastAngle === void 0 && (this._lastAngle = this.pointTheta(this.lastPoint)), this._lastAngle;\n }\n get deltaAngle() {\n return this._deltaAngle === void 0 && (this._deltaAngle = Zt(\n this.firstAngle,\n this.lastAngle,\n this.clockwise\n )), this._deltaAngle;\n }\n normalAt(t) {\n const e = this.tangentAt(t);\n return this.clockwise ? tt(e) : Qt(e);\n }\n gradientAt(t) {\n const e = this.firstAngle + t * this.deltaAngle * (this.clockwise ? -1 : 1), n = -this.majorRadius * this.deltaAngle * Math.sin(e), i = this.minorRadius * this.deltaAngle * Math.cos(e), o = this.clockwise ? [-n, -i] : [n, i];\n return this.rotateFromEllipseReferenceFrame.transform(o);\n }\n tangentAt(t) {\n const e = this.pointTheta(t), n = -this.majorRadius * Math.sin(e), i = this.minorRadius * Math.cos(e), o = this.clockwise ? [-n, -i] : [n, i];\n return H(this.rotateFromEllipseReferenceFrame.transform(o));\n }\n get tangentAtFirstPoint() {\n const t = -this.majorRadius * Math.sin(this.firstAngle), e = this.minorRadius * Math.cos(this.firstAngle), n = this.clockwise ? [-t, -e] : [t, e];\n return H(this.rotateFromEllipseReferenceFrame.transform(n));\n }\n get tangentAtLastPoint() {\n const t = -this.majorRadius * Math.sin(this.lastAngle), e = this.minorRadius * Math.cos(this.lastAngle), n = this.clockwise ? [-t, -e] : [t, e];\n return H(this.rotateFromEllipseReferenceFrame.transform(n));\n }\n transform(t) {\n const e = t.transformAngle(this.tiltAngle), n = t.scaleFactor();\n return new jt(\n t.transform(this.firstPoint),\n t.transform(this.lastPoint),\n t.transform(this.center),\n this.majorRadius * n,\n this.minorRadius * n,\n e,\n t.keepsOrientation() ? this.clockwise : !this.clockwise,\n { angleUnits: \"rad\" }\n );\n }\n splitAt(t) {\n let e;\n if (Array.isArray(t) && t.length === 0)\n return [this];\n Array.isArray(t[0]) ? e = t : e = [t];\n const i = [0, 1, ...e.map((h) => this.pointToParam(h))], o = new Map(\n Kt([i, [this.firstPoint, this.lastPoint, ...e]])\n );\n i.sort((h, a) => h - a);\n let l = null;\n return i.flatMap((h, a) => {\n if (a === i.length - 1) return [];\n const u = i[a + 1];\n if (u - h < this.precision)\n return l === null && (l = h), [];\n const c = l === null ? h : l, g = new jt(\n o.get(c) || this.paramPoint(c),\n o.get(u) || this.paramPoint(u),\n this.center,\n this.majorRadius,\n this.minorRadius,\n this.tiltAngle,\n this.clockwise,\n { angleUnits: \"rad\" }\n );\n return l = null, g;\n });\n }\n}\nfunction _n(r, s, t, e, n, i, o) {\n const { center: l, rx: h, ry: a } = mn(\n r,\n s,\n t,\n e,\n n * fe,\n !i,\n o\n );\n return Math.abs(h - a) < 1e-9 ? new ct(r, s, l, o) : new jt(r, s, l, h, a, n, o);\n}\nfunction mn([r, s], [t, e], n, i, o, l, h) {\n if (n < 0 && (n = -n), i < 0 && (i = -i), n == 0 || i == 0)\n throw Error(\"rx and ry can not be 0\");\n const a = Math.sin(o), u = Math.cos(o), c = (r - t) / 2, g = (s - e) / 2, d = (r + t) / 2, w = (s + e) / 2, p = u * c + a * g, P = u * g - a * c, f = p * p / (n * n) + P * P / (i * i);\n f > 1 && (n = n * Math.sqrt(f), i = i * Math.sqrt(f));\n const y = n * i, E = n * P, R = i * p, v = E * E + R * R;\n if (!v)\n throw Error(\"start point can not be same as end point\");\n let L = Math.sqrt(Math.abs((y * y - v) / v));\n l == h && (L = -L);\n const S = L * E / i, k = -L * R / n, D = u * S - a * k + d, m = a * S + u * k + w;\n return {\n center: [D, m],\n rx: n,\n ry: i\n };\n}\nfunction gn(r, s, t) {\n const e = Math.abs(t[0]), n = Math.abs(t[1]);\n let i = 0.707, o = 0.707;\n const l = r, h = s;\n for (let a = 0; a < 3; a++) {\n const u = l * i, c = h * o, g = (l * l - h * h) * i ** 3 / l, d = (h * h - l * l) * o ** 3 / h, w = u - g, p = c - d, P = e - g, f = n - d, y = Math.hypot(w, p), E = Math.hypot(P, f);\n i = Math.min(1, Math.max(0, (P * y / E + g) / l)), o = Math.min(1, Math.max(0, (f * y / E + d) / h));\n const R = Math.hypot(i, o);\n i /= R, o /= R;\n }\n return [l * i * Math.sign(t[0]), h * o * Math.sign(t[1])];\n}\nconst xe = Symbol.for(\"pantograph:QuadraticBezier\");\nclass _t extends Ft {\n constructor(t, e, n) {\n super(t, e);\n q(this, \"segmentType\", \"QUADRATIC_BEZIER\");\n q(this, \"controlPoint\");\n q(this, \"_boundingBox\", null);\n q(this, \"_polynomialCoefficients\", null);\n Object.defineProperty(this, xe, { value: !0 }), this.controlPoint = n;\n }\n static isInstance(t) {\n return !!t && t[xe] === !0;\n }\n get midPoint() {\n return this.paramPoint(0.5);\n }\n _extremaInDirection(t) {\n const [e, n, i] = [\n this.firstPoint[t],\n this.controlPoint[t],\n this.lastPoint[t]\n ], o = e - 2 * n + i;\n if (!o)\n return [];\n const l = (e - n) / o;\n return l >= -this.precision && l <= 1 + this.precision ? [l] : [];\n }\n getParametersOfExtrema() {\n return Array.from(\n new Set(this._extremaInDirection(0).concat(this._extremaInDirection(1)))\n );\n }\n get boundingBox() {\n return this._boundingBox === null && (this._boundingBox = ce([\n this.firstPoint,\n // There is either one or zero extrema in each direction\n ...this.getParametersOfExtrema().map((t) => this.paramPoint(t)),\n this.lastPoint\n ]).grow(this.precision)), this._boundingBox;\n }\n clone() {\n return new _t(\n this.firstPoint,\n this.lastPoint,\n this.controlPoint\n );\n }\n reverse() {\n return new _t(\n this.lastPoint,\n this.firstPoint,\n this.controlPoint\n );\n }\n isSame(t) {\n return t.segmentType !== \"QUADRATIC_BEZIER\" ? !1 : Y(this.firstPoint, t.firstPoint) && Y(this.lastPoint, t.lastPoint) && Y(this.controlPoint, t.controlPoint);\n }\n distanceFrom(t) {\n const n = $e((i) => Rt(this.paramPoint(i), t), this.precision);\n return n.argMin < -this.precision || n.argMin > 1 + this.precision ? Math.min(\n J(this.firstPoint, t),\n J(this.lastPoint, t)\n ) : Math.sqrt(n.fMin);\n }\n isOnSegment(t) {\n if (!this.boundingBox.contains(t))\n return !1;\n try {\n const e = this.pointToParam(t);\n return e >= -this.precision && e <= 1 + this.precision;\n } catch {\n return !1;\n }\n }\n gradientAt(t) {\n const e = (n) => {\n const i = this.firstPoint[n], o = this.controlPoint[n], l = this.lastPoint[n];\n return 2 * (t * (i - 2 * o + l) - i + o);\n };\n return [e(0), e(1)];\n }\n secondDerivativeAt(t) {\n return nt(\n Q(\n it(this.firstPoint, this.lastPoint),\n nt(this.controlPoint, 2)\n ),\n 2\n );\n }\n tangentAt(t) {\n const e = this.pointToParam(t);\n return H(this.gradientAt(e));\n }\n get tangentAtFirstPoint() {\n return H(Q(this.controlPoint, this.firstPoint));\n }\n get tangentAtLastPoint() {\n return H(Q(this.lastPoint, this.controlPoint));\n }\n normalAt(t) {\n const e = this.tangentAt(t);\n return tt(e);\n }\n get normalAtFirstPoint() {\n return tt(this.tangentAtFirstPoint);\n }\n get normalAtLastPoint() {\n return tt(this.tangentAtLastPoint);\n }\n splitAtParameters(t, e = null) {\n const n = [...t];\n n.sort((o, l) => o - l);\n let i = {\n originalParam: 0,\n param: 0,\n p0: this.firstPoint,\n p1: this.controlPoint\n };\n return n.flatMap((o, l) => {\n if (o - i.originalParam < this.precision)\n return [];\n let h = !1;\n o > 1 - this.precision && (h = !0);\n const a = (o - i.originalParam) / (1 - i.originalParam), u = de(\n [i.p0, i.p1, this.lastPoint],\n h ? 1 : a\n ), c = h ? this.lastPoint : (e == null ? void 0 : e.get(o)) ?? u[0][0], g = u[1][0], d = u[1][1], w = new _t(\n i.p0,\n c,\n g\n );\n return i = {\n param: a,\n originalParam: o,\n p0: c,\n p1: d\n }, l === n.length - 1 && !h ? [\n w,\n new _t(\n i.p0,\n this.lastPoint,\n i.p1\n )\n ] : w;\n });\n }\n splitAt(t) {\n let e;\n if (Array.isArray(t) && t.length === 0)\n return [this];\n Array.isArray(t[0]) ? e = t : e = [t];\n const n = e.map((o) => this.pointToParam(o)), i = new Map(\n Kt([n, e])\n );\n return this.splitAtParameters(n, i);\n }\n transform(t) {\n return new _t(\n t.transform(this.firstPoint),\n t.transform(this.lastPoint),\n t.transform(this.controlPoint)\n );\n }\n paramPoint(t) {\n const e = 1 - t, n = e * e, i = 2 * e * t, o = t * t;\n return [\n n * this.firstPoint[0] + i * this.controlPoint[0] + o * this.lastPoint[0],\n n * this.firstPoint[1] + i * this.controlPoint[1] + o * this.lastPoint[1]\n ];\n }\n get polynomialCoefficients() {\n if (this._polynomialCoefficients === null) {\n const t = (e) => {\n const n = this.firstPoint[e], i = this.controlPoint[e], o = this.lastPoint[e], l = n - 2 * i + o, h = 2 * (i - n);\n return [n, h, l];\n };\n this._polynomialCoefficients = [t(0), t(1)];\n }\n return this._polynomialCoefficients;\n }\n paramsAtY(t) {\n const [e, n, i] = this.polynomialCoefficients[1];\n return qt(e - t, n, i).filter(\n (o) => o >= -this.precision && o <= 1 + this.precision\n );\n }\n pointToParam(t) {\n const e = this.paramsAtY(t[1]);\n if (e.length === 0)\n throw new Error(\"Point is not on the curve!\");\n const n = (o) => Math.abs(this.paramPoint(o)[0] - t[0]) <= this.precision, i = e.find(n);\n if (i === void 0)\n throw new Error(\"Point is not on the curve\");\n return i;\n }\n}\nexport {\n ct as A,\n mt as B,\n Et as C,\n fe as D,\n jt as E,\n yn as F,\n ns as G,\n Ve as H,\n Z as I,\n at as L,\n _t as Q,\n Je as R,\n et as T,\n it as a,\n Q as b,\n St as c,\n be as d,\n J as e,\n Qt as f,\n Y as g,\n Mn as h,\n _n as i,\n He as j,\n It as k,\n Ne as l,\n me as m,\n H as n,\n Ke as o,\n tt as p,\n Rt as q,\n is as r,\n nt as s,\n Pn as t,\n dn as u,\n pn as v,\n un as w,\n En as x,\n Tt as y,\n Kt as z\n};\n//# sourceMappingURL=QuadraticBezier-BeY2TXKH.js.map\n","var on = Object.defineProperty;\nvar ln = (t, n, e) => n in t ? on(t, n, { enumerable: !0, configurable: !0, writable: !0, value: e }) : t[n] = e;\nvar b = (t, n, e) => ln(t, typeof n != \"symbol\" ? n + \"\" : n, e);\nimport { b as k, d as un, e as Dt, a as z, s as N, n as cn, p as Rt, l as j, A as x, g as P, w as Nt, E as C, T as an, x as fn, Q as M, y as $, C as A, c as hn, v as pn, L as y, F as Vt, G as ut, z as V, H as dn, m as mn, q as gn, I as mt, B as Pn } from \"./QuadraticBezier-BeY2TXKH.js\";\nfunction In(t, n) {\n const e = k(n, t.firstPoint), s = un(e, t.V) / t.squareLength;\n return t.paramPoint(s);\n}\nfunction K(t, n, e) {\n const s = e || t.precision, i = In(t, n.center), r = Dt(i, n.center);\n if (r > n.radius + s) return [];\n if (Math.abs(r - n.radius) < s) {\n const c = i;\n return t.isOnSegment(c) && n.isOnSegment(c) ? [c] : [];\n }\n const l = [], o = Math.sqrt(\n n.radius * n.radius - r * r\n ), u = t.tangentAtFirstPoint, a = z(i, N(u, o));\n t.isOnSegment(a) && n.isOnSegment(a) && l.push(a);\n const f = z(i, N(u, -o));\n return t.isOnSegment(f) && n.isOnSegment(f) && l.push(f), l;\n}\nconst wn = (t) => {\n const { firstPoint: n, lastPoint: e, center: s, clockwise: i } = t;\n return new x(e, n, s, i, {\n ignoreChecks: !0\n });\n}, xn = (t, n) => {\n if (t.isSame(n))\n return [t];\n const e = j(\n [\n n.isOnSegment(t.firstPoint) ? t.firstPoint : null,\n n.isOnSegment(t.lastPoint) ? t.lastPoint : null,\n t.isOnSegment(n.firstPoint) ? n.firstPoint : null,\n t.isOnSegment(n.lastPoint) ? n.lastPoint : null\n ].filter((s) => s !== null)\n // We sort by the param value of the first arc. This means that the points\n // will be sorted with the same orientation than arc1\n ).sort((s, i) => t.pointToParam(s) - t.pointToParam(i));\n if (e.length === 0) return [];\n if (e.length === 1) return [];\n if (e.length === 2)\n return t.isSame(wn(n)) ? [] : [new x(e[0], e[1], t.center, t.clockwise)];\n if (e.length === 3) {\n const s = P(e[0], n.lastPoint) || P(e[0], n.firstPoint) ? 1 : 0;\n return [\n new x(\n e[0 + s],\n e[1 + s],\n t.center,\n t.clockwise\n )\n ];\n } else if (e.length === 4)\n return [\n new x(e[0], e[1], t.center, t.clockwise),\n new x(e[2], e[3], t.center, t.clockwise)\n ];\n throw new Error(\"Bug in the arc arc overlap algorithm\");\n};\nfunction jt(t, n, e = !1, s) {\n const i = s || t.precision, r = Dt(t.center, n.center), l = t.radius + n.radius;\n if (r > l + i)\n return [];\n const o = Math.abs(t.radius - n.radius);\n if (r < o - i)\n return [];\n if (r < i)\n return o > i ? [] : e ? xn(t, n) : [];\n const u = cn(k(n.center, t.center)), a = r > l - i;\n if (\n // circles are outside each other\n a || // circles are inside each other\n Math.abs(r - o) < i\n ) {\n const g = a || t.radius > n.radius ? 1 : -1, I = z(\n t.center,\n N(u, g * t.radius)\n );\n return t.isOnSegment(I) && n.isOnSegment(I) ? [I] : [];\n }\n const f = t.radius * t.radius / (2 * r) - n.radius * n.radius / (2 * r) + r / 2, c = z(\n t.center,\n N(u, f)\n ), h = Math.sqrt(\n t.radius * t.radius - f * f\n ), p = Rt(u), d = z(c, N(p, h)), m = z(c, N(p, -h)), w = [];\n return t.isOnSegment(d) && n.isOnSegment(d) && w.push(d), t.isOnSegment(m) && n.isOnSegment(m) && w.push(m), w;\n}\nfunction st(t, n, e = 1e-9) {\n const s = t.transform(n.ellipseReferenceFrameTransform), i = s.slope, r = s.yIntercept, l = n.majorRadius * n.majorRadius, o = n.minorRadius * n.minorRadius, u = n.majorRadius * n.minorRadius, a = s.slope * s.slope, f = s.yIntercept * s.yIntercept, c = (g) => g.map(\n (I) => n.reverseEllipseReferenceFrameTransform.transform(I)\n ).filter((I) => t.isOnSegment(I) && n.isOnSegment(I));\n if (!Number.isFinite(i)) {\n const g = s.firstPoint[0];\n if (Math.abs(g) - n.majorRadius > e) return [];\n if (Math.abs(Math.abs(g) - n.majorRadius) < e)\n return c([[g, 0]]);\n const I = n.minorRadius * Math.sqrt(1 - g * g / l), F = [g, I], S = [g, -I];\n return c([F, S]);\n }\n const h = l * a + o - f;\n if (h < -e)\n return [];\n const p = l * a + o;\n if (Math.abs(h) < e) {\n const g = -(l * i * r) / p, I = o * r / p;\n return c([[g, I]]);\n }\n const d = Math.sqrt(h), m = [\n -(l * i * r + u * d) / p,\n (o * r - u * i * d) / p\n ], w = [\n -(l * i * r - u * d) / p,\n (o * r + u * i * d) / p\n ];\n return c([m, w]);\n}\nfunction Ut(t, n) {\n const e = Math.max(t.precision, n.precision), s = t.coefficients, i = s.x2, r = s.xy, l = s.y2, o = s.x, u = s.y, a = s.c, f = n.coefficients, c = f.x2, h = f.xy, p = f.y2, d = f.x, m = f.y, w = f.c, g = {\n z0: a * i * d * d + i * i * w * w - o * i * d * w + c * c * a * a - 2 * i * w * c * a - o * d * c * a + c * o * o * w,\n z1: m * o * o * c - w * d * i * r - 2 * i * w * c * u - a * c * h * o + 2 * d * h * i * a + 2 * m * w * i * i + d * d * i * u - m * d * i * o - 2 * i * m * c * a - a * c * d * r + 2 * a * u * c * c - w * h * i * o - u * c * d * o + 2 * w * r * c * o,\n z2: m * m * i * i + 2 * p * w * i * i - u * c * d * r + w * c * r * r - u * c * h * o - w * h * i * r - 2 * i * m * c * u + 2 * d * h * i * u - p * d * i * o - 2 * i * p * c * a + h * h * i * a + 2 * m * r * c * o + u * u * c * c - l * c * d * o - m * h * i * o + 2 * a * l * c * c - a * c * h * r + p * o * o * c + d * d * i * l - m * d * i * r - 2 * i * w * c * l,\n z3: -2 * i * c * l * m + m * c * r * r + 2 * p * r * c * o - l * c * h * o + h * h * i * u - m * h * i * r - 2 * i * p * c * u - u * c * h * r - p * h * i * o + 2 * m * p * i * i + 2 * u * l * c * c - l * c * d * r + 2 * d * h * i * l - p * d * i * r,\n z4: i * i * p * p - 2 * i * p * c * l + c * c * l * l - r * i * h * p - r * h * c * l + r * r * c * p + l * i * h * h\n }, F = Nt(\n [g.z0, g.z1, g.z2, g.z3, g.z4],\n e\n ).flatMap((S) => {\n const R = i * h * S + i * d - c * r * S - c * o;\n if (R)\n return [[-(i * w + i * p * S * S - c * l * S * S + i * m * S - c * u * S - c * a) / R, S]];\n const T = r * S + o, L = -T / (2 * i), U = l * S * S + u * S + a, q = T * T / (4 * i * i) - U / i;\n if (Math.abs(q) < e)\n return [[L, S]];\n if (q > 0) {\n const H = Math.sqrt(q);\n return [[L + H, S], [L - H, S]];\n }\n return [];\n });\n return j(F, e);\n}\nfunction gt(t, n) {\n return Ut(t, n).filter((s) => t.isOnSegment(s) && n.isOnSegment(s));\n}\nconst Sn = (t) => {\n const {\n firstPoint: n,\n lastPoint: e,\n center: s,\n majorRadius: i,\n minorRadius: r,\n tiltAngle: l,\n clockwise: o\n } = t;\n return new C(\n e,\n n,\n s,\n i,\n r,\n l,\n o,\n {\n ignoreChecks: !0,\n angleUnits: \"rad\"\n }\n );\n}, yn = (t, n) => {\n if (t.isSame(n))\n return [t];\n const e = (i, r) => new C(\n i,\n r,\n t.center,\n t.majorRadius,\n t.minorRadius,\n t.tiltAngle,\n t.clockwise,\n { ignoreChecks: !0, angleUnits: \"rad\" }\n ), s = j(\n [\n n.isOnSegment(t.firstPoint) ? t.firstPoint : null,\n n.isOnSegment(t.lastPoint) ? t.lastPoint : null,\n t.isOnSegment(n.firstPoint) ? n.firstPoint : null,\n t.isOnSegment(n.lastPoint) ? n.lastPoint : null\n ].filter((i) => i !== null)\n // We sort by the param value of the first arc. This means that the points\n // will be sorted with the same orientation than arc1\n ).sort((i, r) => t.pointToParam(i) - t.pointToParam(r));\n if (s.length === 0) return [];\n if (s.length === 1) return [];\n if (s.length === 2)\n return t.isSame(Sn(n)) ? [] : [e(s[0], s[1])];\n if (s.length === 3) {\n const i = P(s[0], n.lastPoint) || P(s[0], n.firstPoint) ? 1 : 0;\n return [e(s[0 + i], s[1 + i])];\n } else if (s.length === 4)\n return [e(s[0], s[1]), e(s[2], s[3])];\n throw new Error(\"Bug in the ellipse arc ellipse arc overlap algorithm\");\n};\nfunction bn(t, n, e = !1) {\n const s = Math.max(t.precision, n.precision);\n return P(t.center, n.center) && Math.abs(t.majorRadius - n.majorRadius) < s && Math.abs(t.minorRadius - n.minorRadius) < s && (Math.abs(t.tiltAngle - n.tiltAngle) < s || Math.abs(Math.abs(t.tiltAngle - n.tiltAngle) - Math.PI) < s) ? e ? yn(t, n) : [] : Ut(t, n).filter((l) => t.isOnSegment(l) && n.isOnSegment(l));\n}\nfunction Pt(t, n) {\n const [e, s] = t.firstPoint, [i, r] = t.lastPoint, l = new an().translate(-e, -s).rotate(-Math.atan2(r - s, i - e)), o = l.clone().inverse(), u = n.transform(l);\n return u.paramsAtY(0).map((a) => u.paramPoint(a)).map((a) => o.transform(a)).filter((a) => t.isOnSegment(a));\n}\nconst Cn = (t, n = 1e-9) => {\n let e = t;\n return Math.abs(t) < n && (e = 0), e.toFixed(-Math.log10(n));\n};\nfunction Ht(t, n = 1e-9) {\n return Array.from(\n new Map(t.map((e) => [Cn(e, n), e])).values()\n );\n}\nconst Mn = (t, n) => {\n const [[e, s, i, r], [l, o, u, a]] = n.polynomialCoefficients, f = t.coefficients, c = f.x2, h = f.xy, p = f.y2, d = f.x, m = f.y, w = f.c, g = e * e, I = s * s, F = i * i, S = r * r, R = l * l, T = o * o, L = u * u, U = a * a, q = w + d * e + c * g + m * l + h * e * l + p * R, H = d * s + 2 * c * e * s + h * s * l + m * o + h * e * o + 2 * p * l * o, tn = c * I + d * i + 2 * c * e * i + h * i * l + h * s * o + p * T + m * u + h * e * u + 2 * p * l * u, nn = 2 * c * s * i + d * r + 2 * c * e * r + h * r * l + h * i * o + h * s * u + 2 * p * o * u + m * a + h * e * a + 2 * p * l * a, en = c * F + 2 * c * s * r + h * r * o + h * i * u + p * L + h * s * a + 2 * p * o * a, sn = 2 * c * i * r + h * r * u + h * i * a + 2 * p * u * a, rn = c * S + h * r * a + p * U;\n return [q, H, tn, nn, en, sn, rn];\n};\nfunction It(t, n) {\n const e = Math.max(t.precision, n.precision), s = Mn(t, n), i = Nt(s, e).filter((r) => r >= -n.precision && r <= 1 + n.precision);\n return Ht(i, e).map((r) => n.paramPoint(r)).filter((r) => t.isOnSegment(r));\n}\nconst An = (t, n) => {\n const [[e, s, i], [r, l, o]] = n.polynomialCoefficients, u = t.coefficients, a = u.x2, f = u.xy, c = u.y2, h = u.x, p = u.y, d = u.c, m = e * e, w = s * s, g = i * i, I = r * r, F = l * l, S = o * o, R = a * m + f * e * r + c * I + h * e + p * r + d, T = 2 * a * e * s + f * e * l + f * s * r + 2 * c * r * l + h * s + p * l, L = 2 * a * e * i + a * w + f * e * o + f * s * l + f * i * r + 2 * c * r * o + c * F + h * i + p * o, U = 2 * a * s * i + f * s * o + f * i * l + 2 * c * l * o, q = a * g + f * i * o + c * S;\n return [R, T, L, U, q];\n};\nfunction wt(t, n) {\n const e = Math.max(t.precision, n.precision), s = An(t, n), i = fn(...s).filter((r) => r >= -n.precision && r <= 1 + n.precision);\n return Ht(i, e).map((r) => n.paramPoint(r)).filter((r) => t.isOnSegment(r));\n}\nfunction E(t, { firstPoint: n, lastPoint: e }, s = 1e-9) {\n const i = k(e, n);\n return Math.abs(i[0]) < s ? i[1] > 0 ? n[0] - t[0] : t[0] - n[0] : Math.abs(i[1]) < s ? i[0] > 0 ? t[1] - n[1] : n[1] - t[1] : hn(i, k(t, n)) / pn(i);\n}\nclass ct {\n constructor(n, e, s, i) {\n this.firstPoint = n, this.lastPoint = e, this.negativeThickness = s, this.positiveThickness = i;\n }\n get width() {\n return this.positiveThickness - this.negativeThickness;\n }\n}\nconst En = 3 / 4, Fn = 4 / 9;\nfunction vn(t) {\n const n = E(t.firstControlPoint, t), e = E(t.lastControlPoint, t), s = n * e > 0 ? En : Fn;\n return new ct(\n t.firstPoint,\n t.lastPoint,\n s * Math.min(0, n, e),\n s * Math.max(0, n, e)\n );\n}\nfunction Bn(t) {\n const n = E(t.controlPoint, t);\n return new ct(\n t.firstPoint,\n t.lastPoint,\n Math.min(0, n / 2),\n Math.max(0, n / 2)\n );\n}\nfunction kn(t) {\n if (A.isInstance(t))\n return vn(t);\n if (M.isInstance(t))\n return Bn(t);\n throw new Error(\"Not implemented\");\n}\nfunction On(t) {\n const n = t.paramPoint(0.5), e = Rt(k(n, t.firstPoint)), s = z(n, e), i = {\n firstPoint: n,\n lastPoint: s\n }, r = [\n E(t.firstPoint, i),\n E(t.lastPoint, i)\n ];\n return A.isInstance(t) ? r.push(\n E(t.firstControlPoint, i),\n E(t.lastControlPoint, i)\n ) : M.isInstance(t) && r.push(E(t.controlPoint, i)), new ct(\n n,\n s,\n Math.min(...r),\n Math.max(...r)\n );\n}\nfunction xt(t, n) {\n const e = [];\n for (let s = 1; s < t.length; s++) {\n const i = t[s];\n if (i[1] === n) {\n e.push(i[0]);\n continue;\n }\n const r = t[s - 1], l = n - r[1], o = n - i[1];\n if (l * o < 0) {\n e.push(\n r[0] + (n - r[1]) * (i[0] - r[0]) / (i[1] - r[1])\n );\n continue;\n }\n }\n return e;\n}\nclass Y {\n constructor(n, e) {\n this.from = n, this.to = e;\n }\n get size() {\n return this.from === \"start\" ? this.to === \"end\" ? 1 : this.to : this.to === \"end\" ? 1 - this.from : Math.abs(this.from - this.to);\n }\n clipCurve(n) {\n return this.from === \"start\" ? this.to === \"end\" ? n : n.splitAtParameters([this.to])[0] : this.to === \"end\" ? n.splitAtParameters([this.from])[1] : n.splitAtParameters([this.from, this.to])[1];\n }\n}\nfunction _n(t, n) {\n if (A.isInstance(t))\n return new Ln([\n E(t.firstPoint, n),\n E(t.firstControlPoint, n),\n E(t.lastControlPoint, n),\n E(t.lastPoint, n)\n ]);\n if (M.isInstance(t))\n return new Tn([\n E(t.firstPoint, n),\n E(t.controlPoint, n),\n E(t.lastPoint, n)\n ]);\n throw new Error(\"Not implemented\");\n}\nclass Tn {\n constructor(n) {\n b(this, \"topHull\", []);\n b(this, \"bottomHull\", []);\n this.distances = n;\n const [e, s, i] = n, r = [0, e], l = [1 / 2, s], o = [1, i], u = i - e, a = e;\n s - (u * (1 / 2) + a) > 0 ? (this.topHull = [r, l, o], this.bottomHull = [r, o]) : (this.topHull = [r, o], this.bottomHull = [r, l, o]);\n }\n get startDistance() {\n return this.distances[0];\n }\n get endDistance() {\n return this.distances[2];\n }\n}\nclass Ln {\n constructor(n) {\n b(this, \"topHull\", []);\n b(this, \"bottomHull\", []);\n this.distances = n;\n const [e, s, i, r] = n, l = [0, e], o = [1 / 3, s], u = [2 / 3, i], a = [1, r], f = r - e, c = e, h = s - (f * (1 / 3) + c), p = i - (f * (2 / 3) + c);\n let d = null, m = null;\n if (h * p < 0)\n d = [l, o, a], m = [l, u, a];\n else {\n const g = h / p;\n g >= 2 ? (d = [l, o, a], m = [l, a]) : g <= 0.5 ? (d = [l, u, a], m = [l, a]) : (d = [l, o, u, a], m = [l, a]);\n }\n h < 0 && ([d, m] = [m, d]), this.topHull = d, this.bottomHull = m;\n }\n get startDistance() {\n return this.distances[0];\n }\n get endDistance() {\n return this.distances[3];\n }\n}\nfunction St(t, n) {\n const e = _n(n, t), s = xt(\n e.topHull,\n t.negativeThickness\n ), i = xt(\n e.bottomHull,\n t.positiveThickness\n ), r = e.endDistance >= t.negativeThickness && e.endDistance <= t.positiveThickness;\n if (!s.length && !i.length)\n return r ? new Y(\"start\", \"end\") : null;\n if (s.length === 1 && i.length === 1)\n return new Y(s[0], i[0]);\n if (s.length === 2 && i.length === 2)\n throw new Error(\n \"Bug in the clipping algorithm, unexpected number of crossing points\"\n );\n const l = s.length ? s : i;\n return l.length === 2 ? new Y(l[0], l[1]) : r ? new Y(l[0], \"end\") : new Y(\"start\", l[0]);\n}\nfunction yt(t, n) {\n const e = kn(t), s = St(e, n);\n if (!s)\n return null;\n const i = On(t), r = St(\n i,\n n\n );\n return r ? s.size > r.size ? r.clipCurve(n) : s.clipCurve(n) : null;\n}\nconst W = (t) => M.isInstance(t) ? $(k(t.controlPoint, t.firstPoint)) + $(k(t.controlPoint, t.lastPoint)) : $(k(t.firstControlPoint, t.firstPoint)) + $(k(t.lastControlPoint, t.firstControlPoint)) + $(k(t.lastControlPoint, t.lastPoint));\nfunction D(t, n, e = 1e-9, { maxIterations: s = 100 } = {}) {\n const i = Math.max(e * e, Number.EPSILON * 10);\n let r = t, l = n, o = W(r), u = W(l);\n for (let a = 0; a < s; a++) {\n const f = o > i ? yt(l, r) : r;\n if (!f) return [];\n const c = W(f), h = u > i ? yt(f, l) : l;\n if (!h) return [];\n const p = W(h);\n if (c <= i && p <= i)\n return [\n f.boundingBox.intersection(h.boundingBox).center\n ];\n if (P(f.firstPoint, f.lastPoint) && h.isOnSegment(f.firstPoint))\n return [f.firstPoint];\n if (P(h.firstPoint, h.lastPoint) && f.isOnSegment(h.firstPoint))\n return [h.firstPoint];\n if (c > 0.8 * o && p > 0.8 * u)\n if (c / o > p / u) {\n const [d, m] = f.splitAtParameters([\n 0.5\n ]);\n return j(\n [\n ...D(d, h, e, {\n maxIterations: s - a\n }),\n ...D(m, h, e, {\n maxIterations: s - a\n })\n ],\n e\n );\n } else {\n const [d, m] = h.splitAtParameters([\n 0.5\n ]);\n return j(\n [\n ...D(f, d, e, {\n maxIterations: s - a\n }),\n ...D(f, m, e, {\n maxIterations: s - a\n })\n ],\n e\n );\n }\n r = f, l = h, o = c, u = p;\n }\n throw new Error(\"Bézier clip: Maximum number of iterations reached\");\n}\nfunction qn(t, n) {\n const e = [];\n if ([\n [t.firstPoint, n],\n [t.lastPoint, n],\n [n.firstPoint, t],\n [n.lastPoint, t]\n ].forEach(([i, r]) => {\n r.isOnSegment(i) && e.push(i);\n }), e.length < 2)\n return null;\n if (e.length === 2)\n return [t.splitAt(e)[1]];\n if (e.length === 3)\n return P(e[0], t.firstPoint) && P(e[1], t.lastPoint) ? [t] : [n];\n if (e.length === 4)\n return [t];\n}\nfunction zn(t, n, e = !1) {\n const s = Math.max(t.precision, n.precision);\n if (e) {\n const i = qn(t, n);\n if (i)\n return i;\n }\n return D(t, n, s);\n}\nfunction Dn(t, n) {\n const e = [];\n if ([\n [t.firstPoint, n],\n [t.lastPoint, n],\n [n.firstPoint, t],\n [n.lastPoint, t]\n ].forEach(([i, r]) => {\n r.isOnSegment(i) && e.push(i);\n }), e.length < 2)\n return null;\n if (e.length === 2)\n return [t.splitAt(e)[1]];\n if (e.length === 3)\n return P(e[0], t.firstPoint) && P(e[1], t.lastPoint) ? [t] : [n];\n if (e.length === 4)\n return [t];\n}\nfunction Rn(t, n, e = !1) {\n const s = Math.max(t.precision, n.precision);\n if (e) {\n const i = Dn(t, n);\n if (i)\n return i;\n }\n return D(t, n, s);\n}\nfunction Ie(t, n, e) {\n if (y.isInstance(t) && y.isInstance(n)) {\n const s = Vt(\n t,\n n,\n !1,\n e\n );\n return s === null ? [] : [s];\n }\n if (y.isInstance(t) && x.isInstance(n))\n return K(t, n, e);\n if (x.isInstance(t) && y.isInstance(n))\n return K(n, t, e);\n if (x.isInstance(t) && x.isInstance(n))\n return jt(t, n, !1, e);\n throw new Error(\"Not implemented\");\n}\nfunction Z(t, n, e) {\n if (y.isInstance(t) && y.isInstance(n)) {\n const s = Vt(\n t,\n n,\n !0,\n e\n );\n return s === null ? { intersections: [], overlaps: [], count: 0 } : y.isInstance(s) ? { intersections: [], overlaps: [s], count: 1 } : { intersections: [s], overlaps: [], count: 1 };\n }\n if (!t.boundingBox.overlaps(n.boundingBox))\n return { intersections: [], overlaps: [], count: 0 };\n if (y.isInstance(t) && x.isInstance(n)) {\n const s = K(t, n, e);\n return { intersections: s, overlaps: [], count: s.length };\n }\n if (x.isInstance(t) && y.isInstance(n)) {\n const s = K(n, t, e);\n return { intersections: s, overlaps: [], count: s.length };\n }\n if (x.isInstance(t) && x.isInstance(n)) {\n const s = jt(\n t,\n n,\n !0,\n e\n );\n return s.length ? x.isInstance(s[0]) ? {\n intersections: [],\n overlaps: s,\n count: s.length\n } : {\n intersections: s,\n overlaps: [],\n count: s.length\n } : { intersections: [], overlaps: [], count: 0 };\n }\n if (y.isInstance(t) && C.isInstance(n)) {\n const s = st(\n t,\n n,\n e\n );\n return { intersections: s, overlaps: [], count: s.length };\n }\n if (y.isInstance(n) && C.isInstance(t)) {\n const s = st(\n n,\n t,\n e\n );\n return { intersections: s, overlaps: [], count: s.length };\n }\n if (x.isInstance(t) && C.isInstance(n)) {\n const s = gt(t, n);\n return { intersections: s, overlaps: [], count: s.length };\n }\n if (x.isInstance(n) && C.isInstance(t)) {\n const s = gt(n, t);\n return { intersections: s, overlaps: [], count: s.length };\n }\n if (C.isInstance(t) && C.isInstance(n)) {\n const s = bn(\n t,\n n,\n !0\n );\n return s.length ? C.isInstance(s[0]) ? {\n intersections: [],\n overlaps: s,\n count: s.length\n } : {\n intersections: s,\n overlaps: [],\n count: s.length\n } : { intersections: [], overlaps: [], count: 0 };\n }\n if (y.isInstance(t) && (A.isInstance(n) || M.isInstance(n))) {\n const s = Pt(t, n);\n return { intersections: s, overlaps: [], count: s.length };\n }\n if (y.isInstance(n) && (A.isInstance(t) || M.isInstance(t))) {\n const s = Pt(n, t);\n return { intersections: s, overlaps: [], count: s.length };\n }\n if ((x.isInstance(t) || C.isInstance(t)) && M.isInstance(n)) {\n const s = wt(t, n);\n return { intersections: s, overlaps: [], count: s.length };\n }\n if ((x.isInstance(n) || C.isInstance(n)) && M.isInstance(t)) {\n const s = wt(n, t);\n return { intersections: s, overlaps: [], count: s.length };\n }\n if ((x.isInstance(t) || C.isInstance(t)) && A.isInstance(n)) {\n const s = It(t, n);\n return { intersections: s, overlaps: [], count: s.length };\n }\n if ((x.isInstance(n) || C.isInstance(n)) && A.isInstance(t)) {\n const s = It(n, t);\n return { intersections: s, overlaps: [], count: s.length };\n }\n if (M.isInstance(t) && M.isInstance(n)) {\n const s = Rn(\n t,\n n\n );\n return s.length ? M.isInstance(s[0]) ? {\n intersections: [],\n overlaps: s,\n count: s.length\n } : {\n intersections: s,\n overlaps: [],\n count: s.length\n } : { intersections: [], overlaps: [], count: 0 };\n }\n if (M.isInstance(t) && A.isInstance(n) || M.isInstance(n) && A.isInstance(t)) {\n const s = D(t, n);\n return { intersections: s, overlaps: [], count: s.length };\n }\n if (A.isInstance(t) && A.isInstance(n)) {\n const s = zn(\n t,\n n\n );\n return s.length ? A.isInstance(s[0]) ? {\n intersections: [],\n overlaps: s,\n count: s.length\n } : {\n intersections: s,\n overlaps: [],\n count: s.length\n } : { intersections: [], overlaps: [], count: 0 };\n }\n throw new Error(\"Not implemented\");\n}\nfunction $t(t) {\n const n = [];\n for (let e = 0; e < t; e++)\n for (let s = 0; s <= e; s++)\n n.push([e, s]);\n return n;\n}\nfunction* it(t) {\n for (const [n, e] of $t(t.length))\n n !== e && (yield [t[n], t[e]]);\n}\nclass Yt extends ut {\n constructor(e, { ignoreChecks: s = !1 } = {}) {\n super();\n b(this, \"segments\");\n b(this, \"_boundingBox\", null);\n s || Xt(e), this.segments = e;\n }\n get repr() {\n return this.segments.map((e) => e.repr).join(`\n`) + `\n`;\n }\n get info() {\n return this.repr;\n }\n get firstPoint() {\n return this.segments[0].firstPoint;\n }\n get lastPoint() {\n return this.segments[this.segments.length - 1].lastPoint;\n }\n get segmentsCount() {\n return this.segments.length;\n }\n onStroke(e) {\n return this.segments.some((s) => s.isOnSegment(e));\n }\n intersects(e) {\n return this.boundingBox.overlaps(e.boundingBox) ? this.segments.some(\n (s) => e.segments.some(\n (i) => Z(s, i).count > 0\n )\n ) : !1;\n }\n overlappingSegments(e) {\n return this.segments.flatMap((s) => e.segments.flatMap((i) => s.boundingBox.overlaps(i.boundingBox) ? Z(s, i).overlaps : []));\n }\n get boundingBox() {\n if (this._boundingBox === null) {\n let e = this.segments[0].boundingBox;\n this.segments.slice(1).forEach((s) => {\n e = e.merge(s.boundingBox);\n }), this._boundingBox = e;\n }\n return this._boundingBox;\n }\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n return this.repr;\n }\n}\nfunction Nn(t, n = \"Stroke\") {\n $t(t.length).forEach(\n ([e, s]) => {\n if (e === s) return;\n const i = t[e], r = t[s], l = Z(i, r), o = Math.max(i.precision, r.precision);\n if (l.count !== 0) {\n if (l.count === 1 && !l.overlaps.length) {\n const u = e - s, a = l.intersections[0];\n if (u === 1 && P(i.firstPoint, a, o) || u === -1 && P(i.lastPoint, a, o) || u === t.length - 1 && P(i.lastPoint, a, o) && P(r.firstPoint, a, o) || -u === t.length - 1 && P(i.firstPoint, a, o) && P(r.lastPoint, a, o))\n return;\n }\n if (!(l.count === 2 && t.length === 2 && (P(\n i.firstPoint,\n l.intersections[0],\n o\n ) && P(\n i.lastPoint,\n l.intersections[1],\n o\n ) || P(\n i.firstPoint,\n l.intersections[1],\n o\n ) && P(\n i.lastPoint,\n l.intersections[0],\n o\n ))))\n throw new Error(\n `${n} segments must not intersect, but segments ${i.info} and ${r.info} do at ${JSON.stringify(\n l.intersections\n )}`\n );\n }\n }\n );\n}\nfunction Xt(t, n = \"Stroke\") {\n if (t.length === 0)\n throw new Error(`${n} must have at least one segment`);\n V([t.slice(0, -1), t.slice(1)]).forEach(\n ([e, s]) => {\n if (!P(e.lastPoint, s.firstPoint))\n throw new Error(\n `${n} segments must be connected, but ${e.info} and ${s.info} are not`\n );\n }\n ), Nn(t, n);\n}\nfunction bt(t, n) {\n return !!(y.isInstance(t) && y.isInstance(n) && dn(t.V, n.V) || x.isInstance(t) && x.isInstance(n) && P(t.center, n.center) && t.radius - n.radius < t.precision);\n}\nfunction Ct(t, n) {\n if (y.isInstance(t) && y.isInstance(n))\n return new y(t.firstPoint, n.lastPoint);\n if (x.isInstance(t) && x.isInstance(n))\n return new x(\n t.firstPoint,\n n.lastPoint,\n t.center,\n t.clockwise\n );\n throw new Error(\"Not implemented\");\n}\nfunction Gt(t) {\n let n = !1;\n const e = [];\n for (const s of t.segments) {\n if (e.length === 0) {\n e.push(s);\n continue;\n }\n const i = e[e.length - 1];\n bt(i, s) ? (n = !0, e.pop(), e.push(Ct(i, s))) : e.push(s);\n }\n if (P(t.firstPoint, t.lastPoint) && bt(\n e[0],\n e[e.length - 1]\n )) {\n n = !0;\n const s = e.pop();\n e[0] = Ct(s, e[0]);\n }\n return n ? e : null;\n}\nconst Mt = Symbol.for(\"pantograph:Strand\");\nclass B extends Yt {\n constructor(e, { ignoreChecks: s = !1 } = {}) {\n super(e, { ignoreChecks: s });\n b(this, \"strokeType\", \"STRAND\");\n Object.defineProperty(this, Mt, { value: !0 });\n }\n static isInstance(e) {\n return !!e && e[Mt] === !0;\n }\n reverse() {\n const e = this.segments.map((s) => s.reverse());\n return e.reverse(), new B(e, { ignoreChecks: !0 });\n }\n clone() {\n return new B(\n this.segments.map((e) => e.clone()),\n { ignoreChecks: !0 }\n );\n }\n extend(e) {\n if (!P(this.lastPoint, e.firstPoint))\n throw console.error(this.repr, e.repr), new Error(\"Cannot extend strand: connection point is not the same\");\n return new B([...this.segments, ...e.segments]);\n }\n simplify() {\n const e = Gt(this);\n return e ? new B(e, { ignoreChecks: !0 }) : this;\n }\n transform(e) {\n return new B(\n this.segments.map((s) => s.transform(e)),\n { ignoreChecks: !0 }\n );\n }\n}\nconst Vn = (t, n) => {\n const e = mn(n, {\n V: [1, 0],\n firstPoint: t,\n precision: n.precision\n });\n if (e === \"parallel\")\n return 0;\n const { intersectionParam1: s, intersectionParam2: i } = e;\n if (!n.isValidParameter(s) || i <= -n.precision) return 0;\n if (Math.abs(s) < n.precision || Math.abs(s - 1) < n.precision) {\n const [, r] = n.midPoint;\n return t[1] - r < 0 ? 1 : 0;\n }\n return 1;\n};\nclass at {\n constructor(n) {\n b(this, \"_count\", 0);\n b(this, \"segment\");\n this.segment = n;\n }\n update(n, e = !1) {\n !e && !this.segment.isOnSegment(n) || (P(n, this.segment.firstPoint) ? this._count += this.segment.tangentAtFirstPoint[1] > 0 ? 1 : 0 : P(n, this.segment.lastPoint) ? this._count += this.segment.tangentAtLastPoint[1] > 0 ? 0 : 1 : this._count += 1);\n }\n get count() {\n return this._count;\n }\n}\nconst jn = (t, n) => {\n const e = n.precision, s = Math.abs(t[1] - n.center[1]);\n if (s > n.radius + e) return 0;\n const i = gn(t, n.center), r = n.radius * n.radius, l = e * e;\n if (Math.abs(i - r) < l && n.isOnSegment(t))\n return 0;\n const o = i - r > l;\n if (o && n.center[0] < t[0]) return 0;\n const u = Math.sqrt(\n n.radius * n.radius - s * s\n ), a = new at(n);\n return a.update([n.center[0] + u, t[1]]), o && a.update([n.center[0] - u, t[1]]), a.count;\n}, Un = (t, n) => {\n const e = n.boundingBox.xMax + n.boundingBox.width / 2, s = new y(t, [e, t[1]]), i = new at(n);\n return st(s, n).forEach((r) => {\n i.update(r, !0);\n }), i.count;\n}, Hn = (t, n) => {\n const e = new at(n);\n return n.paramsAtY(t[1]).map((s) => {\n try {\n return n.paramPoint(s);\n } catch {\n return null;\n }\n }).filter((s) => s !== null).filter((s) => {\n const [i] = s;\n return i >= t[0];\n }).forEach((s) => {\n e.update(s, !0);\n }), e.count;\n};\nfunction $n(t, n) {\n if (y.isInstance(n))\n return Vn(t, n);\n if (x.isInstance(n))\n return jn(t, n);\n if (C.isInstance(n))\n return Un(t, n);\n if (A.isInstance(n) || M.isInstance(n))\n return Hn(t, n);\n throw new Error(\"Not implemented\");\n}\nconst At = Symbol.for(\"pantograph:Loop\");\nclass _ extends Yt {\n constructor(e, { ignoreChecks: s = !1 } = {}) {\n super(e, { ignoreChecks: !0 });\n b(this, \"strokeType\", \"LOOP\");\n b(this, \"_clockwise\", null);\n Object.defineProperty(this, At, { value: !0 }), s || Yn(e);\n }\n static isInstance(e) {\n return !!e && e[At] === !0;\n }\n get clockwise() {\n if (this._clockwise === null) {\n const e = this.segments.flatMap((i) => y.isInstance(i) ? [i.firstPoint] : [i.firstPoint, i.paramPoint(0.5)]), s = e.map((i, r) => {\n const l = e[(r + 1) % e.length];\n return (l[0] - i[0]) * (l[1] + i[1]);\n }).reduce((i, r) => i + r, 0);\n this._clockwise = s > 0;\n }\n return this._clockwise;\n }\n clone() {\n return new _(\n this.segments.map((e) => e.clone()),\n { ignoreChecks: !0 }\n );\n }\n reverse() {\n const e = this.segments.map((s) => s.reverse());\n return e.reverse(), new _(e, { ignoreChecks: !0 });\n }\n transform(e) {\n return new _(\n this.segments.map((s) => s.transform(e)),\n { ignoreChecks: !0 }\n );\n }\n contains(e, { strokeIsInside: s = !1 } = {}) {\n return this.onStroke(e) ? s : this.boundingBox.contains(e) ? this.segments.reduce((r, l) => r + $n(e, l), 0) % 2 === 1 : !1;\n }\n simplify() {\n const e = Gt(this);\n return e ? new _(e, { ignoreChecks: !0 }) : this;\n }\n}\nfunction Yn(t) {\n if (Xt(t, \"Loop\"), !P(t[0].firstPoint, t[t.length - 1].lastPoint))\n throw new Error(\"Loop segment must be closed\");\n}\nconst Xn = [\n y,\n x,\n C,\n M,\n A\n];\nfunction Gn(t) {\n return Xn.some((n) => n.isInstance(t));\n}\nfunction Qt(t) {\n if (y.isInstance(t))\n return {\n type: t.segmentType,\n firstPoint: t.firstPoint,\n lastPoint: t.lastPoint\n };\n if (x.isInstance(t))\n return {\n type: t.segmentType,\n firstPoint: t.firstPoint,\n lastPoint: t.lastPoint,\n center: t.center,\n clockwise: t.clockwise\n };\n if (C.isInstance(t))\n return {\n type: t.segmentType,\n firstPoint: t.firstPoint,\n lastPoint: t.lastPoint,\n center: t.center,\n clockwise: t.clockwise,\n majorRadius: t.majorRadius,\n minorRadius: t.minorRadius,\n tiltAngle: t.tiltAngle\n };\n if (M.isInstance(t))\n return {\n type: t.segmentType,\n firstPoint: t.firstPoint,\n lastPoint: t.lastPoint,\n controlPoint: t.controlPoint\n };\n if (A.isInstance(t))\n return {\n type: t.segmentType,\n firstPoint: t.firstPoint,\n lastPoint: t.lastPoint,\n firstControlPoint: t.firstControlPoint,\n lastControlPoint: t.lastControlPoint\n };\n throw new Error(\"Unknown segment type\");\n}\nfunction rt(t) {\n return {\n type: \"LOOP\",\n segments: t.segments.map(Qt)\n };\n}\nfunction Wt(t) {\n return {\n type: \"FIGURE\",\n contour: rt(t.contour),\n holes: t.holes.map(rt)\n };\n}\nfunction Qn(t) {\n return {\n type: \"DIAGRAM\",\n figures: t.figures.map(Wt)\n };\n}\nfunction Et(t) {\n if (O.isInstance(t))\n return Qn(t);\n if (v.isInstance(t))\n return Wt(t);\n if (_.isInstance(t))\n return rt(t);\n if (Gn(t))\n return Qt(t);\n throw new Error(\"Unknown shape type\");\n}\nclass Wn {\n constructor() {\n this.ids = [], this.values = [], this.length = 0;\n }\n clear() {\n this.length = 0;\n }\n push(n, e) {\n let s = this.length++;\n for (; s > 0; ) {\n const i = s - 1 >> 1, r = this.values[i];\n if (e >= r) break;\n this.ids[s] = this.ids[i], this.values[s] = r, s = i;\n }\n this.ids[s] = n, this.values[s] = e;\n }\n pop() {\n if (this.length === 0) return;\n const n = this.ids[0];\n if (this.length--, this.length > 0) {\n const e = this.ids[0] = this.ids[this.length], s = this.values[0] = this.values[this.length], i = this.length >> 1;\n let r = 0;\n for (; r < i; ) {\n let l = (r << 1) + 1;\n const o = l + 1;\n let u = this.ids[l], a = this.values[l];\n const f = this.values[o];\n if (o < this.length && f < a && (l = o, u = this.ids[o], a = f), a >= s) break;\n this.ids[r] = u, this.values[r] = a, r = l;\n }\n this.ids[r] = e, this.values[r] = s;\n }\n return n;\n }\n peek() {\n if (this.length !== 0)\n return this.ids[0];\n }\n peekValue() {\n if (this.length !== 0)\n return this.values[0];\n }\n shrink() {\n this.ids.length = this.values.length = this.length;\n }\n}\nconst Ft = [Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array], et = 3;\nclass ft {\n /**\n * Recreate a Flatbush index from raw `ArrayBuffer` or `SharedArrayBuffer` data.\n * @param {ArrayBuffer | SharedArrayBuffer} data\n * @param {number} [byteOffset=0] byte offset to the start of the Flatbush buffer in the referenced ArrayBuffer.\n * @returns {Flatbush} index\n */\n static from(n, e = 0) {\n if (e % 8 !== 0)\n throw new Error(\"byteOffset must be 8-byte aligned.\");\n if (!n || n.byteLength === void 0 || n.buffer)\n throw new Error(\"Data must be an instance of ArrayBuffer or SharedArrayBuffer.\");\n const [s, i] = new Uint8Array(n, e + 0, 2);\n if (s !== 251)\n throw new Error(\"Data does not appear to be in a Flatbush format.\");\n const r = i >> 4;\n if (r !== et)\n throw new Error(`Got v${r} data when expected v${et}.`);\n const l = Ft[i & 15];\n if (!l)\n throw new Error(\"Unrecognized array type.\");\n const [o] = new Uint16Array(n, e + 2, 1), [u] = new Uint32Array(n, e + 4, 1);\n return new ft(u, o, l, void 0, n, e);\n }\n /**\n * Create a Flatbush index that will hold a given number of items.\n * @param {number} numItems\n * @param {number} [nodeSize=16] Size of the tree node (16 by default).\n * @param {TypedArrayConstructor} [ArrayType=Float64Array] The array type used for coordinates storage (`Float64Array` by default).\n * @param {ArrayBufferConstructor | SharedArrayBufferConstructor} [ArrayBufferType=ArrayBuffer] The array buffer type used to store data (`ArrayBuffer` by default).\n * @param {ArrayBuffer | SharedArrayBuffer} [data] (Only used internally)\n * @param {number} [byteOffset=0] (Only used internally)\n */\n constructor(n, e = 16, s = Float64Array, i = ArrayBuffer, r, l = 0) {\n if (n === void 0) throw new Error(\"Missing required argument: numItems.\");\n if (isNaN(n) || n <= 0) throw new Error(`Unexpected numItems value: ${n}.`);\n this.numItems = +n, this.nodeSize = Math.min(Math.max(+e, 2), 65535), this.byteOffset = l;\n let o = n, u = o;\n this._levelBounds = [o * 4];\n do\n o = Math.ceil(o / this.nodeSize), u += o, this._levelBounds.push(u * 4);\n while (o !== 1);\n this.ArrayType = s, this.IndexArrayType = u < 16384 ? Uint16Array : Uint32Array;\n const a = Ft.indexOf(this.ArrayType), f = u * 4 * this.ArrayType.BYTES_PER_ELEMENT;\n if (a < 0)\n throw new Error(`Unexpected typed array class: ${s}.`);\n r && r.byteLength !== void 0 && !r.buffer ? (this.data = r, this._boxes = new this.ArrayType(this.data, l + 8, u * 4), this._indices = new this.IndexArrayType(this.data, l + 8 + f, u), this._pos = u * 4, this.minX = this._boxes[this._pos - 4], this.minY = this._boxes[this._pos - 3], this.maxX = this._boxes[this._pos - 2], this.maxY = this._boxes[this._pos - 1]) : (this.data = new i(8 + f + u * this.IndexArrayType.BYTES_PER_ELEMENT), this._boxes = new this.ArrayType(this.data, 8, u * 4), this._indices = new this.IndexArrayType(this.data, 8 + f, u), this._pos = 0, this.minX = 1 / 0, this.minY = 1 / 0, this.maxX = -1 / 0, this.maxY = -1 / 0, new Uint8Array(this.data, 0, 2).set([251, (et << 4) + a]), new Uint16Array(this.data, 2, 1)[0] = e, new Uint32Array(this.data, 4, 1)[0] = n), this._queue = new Wn();\n }\n /**\n * Add a given rectangle to the index.\n * @param {number} minX\n * @param {number} minY\n * @param {number} maxX\n * @param {number} maxY\n * @returns {number} A zero-based, incremental number that represents the newly added rectangle.\n */\n add(n, e, s = n, i = e) {\n const r = this._pos >> 2, l = this._boxes;\n return this._indices[r] = r, l[this._pos++] = n, l[this._pos++] = e, l[this._pos++] = s, l[this._pos++] = i, n < this.minX && (this.minX = n), e < this.minY && (this.minY = e), s > this.maxX && (this.maxX = s), i > this.maxY && (this.maxY = i), r;\n }\n /** Perform indexing of the added rectangles. */\n finish() {\n if (this._pos >> 2 !== this.numItems)\n throw new Error(`Added ${this._pos >> 2} items when expected ${this.numItems}.`);\n const n = this._boxes;\n if (this.numItems <= this.nodeSize) {\n n[this._pos++] = this.minX, n[this._pos++] = this.minY, n[this._pos++] = this.maxX, n[this._pos++] = this.maxY;\n return;\n }\n const e = this.maxX - this.minX || 1, s = this.maxY - this.minY || 1, i = new Uint32Array(this.numItems), r = 65535;\n for (let l = 0, o = 0; l < this.numItems; l++) {\n const u = n[o++], a = n[o++], f = n[o++], c = n[o++], h = Math.floor(r * ((u + f) / 2 - this.minX) / e), p = Math.floor(r * ((a + c) / 2 - this.minY) / s);\n i[l] = Kn(h, p);\n }\n ot(i, n, this._indices, 0, this.numItems - 1, this.nodeSize);\n for (let l = 0, o = 0; l < this._levelBounds.length - 1; l++) {\n const u = this._levelBounds[l];\n for (; o < u; ) {\n const a = o;\n let f = n[o++], c = n[o++], h = n[o++], p = n[o++];\n for (let d = 1; d < this.nodeSize && o < u; d++)\n f = Math.min(f, n[o++]), c = Math.min(c, n[o++]), h = Math.max(h, n[o++]), p = Math.max(p, n[o++]);\n this._indices[this._pos >> 2] = a, n[this._pos++] = f, n[this._pos++] = c, n[this._pos++] = h, n[this._pos++] = p;\n }\n }\n }\n /**\n * Search the index by a bounding box.\n * @param {number} minX\n * @param {number} minY\n * @param {number} maxX\n * @param {number} maxY\n * @param {(index: number) => boolean} [filterFn] An optional function for filtering the results.\n * @returns {number[]} An array of indices of items intersecting or touching the given bounding box.\n */\n search(n, e, s, i, r) {\n if (this._pos !== this._boxes.length)\n throw new Error(\"Data not yet indexed - call index.finish().\");\n let l = this._boxes.length - 4;\n const o = [], u = [];\n for (; l !== void 0; ) {\n const a = Math.min(l + this.nodeSize * 4, Bt(l, this._levelBounds));\n for (let f = l; f < a; f += 4) {\n if (s < this._boxes[f] || i < this._boxes[f + 1] || n > this._boxes[f + 2] || e > this._boxes[f + 3]) continue;\n const c = this._indices[f >> 2] | 0;\n l >= this.numItems * 4 ? o.push(c) : (r === void 0 || r(c)) && u.push(c);\n }\n l = o.pop();\n }\n return u;\n }\n /**\n * Search items in order of distance from the given point.\n * @param {number} x\n * @param {number} y\n * @param {number} [maxResults=Infinity]\n * @param {number} [maxDistance=Infinity]\n * @param {(index: number) => boolean} [filterFn] An optional function for filtering the results.\n * @returns {number[]} An array of indices of items found.\n */\n neighbors(n, e, s = 1 / 0, i = 1 / 0, r) {\n if (this._pos !== this._boxes.length)\n throw new Error(\"Data not yet indexed - call index.finish().\");\n let l = this._boxes.length - 4;\n const o = this._queue, u = [], a = i * i;\n t: for (; l !== void 0; ) {\n const f = Math.min(l + this.nodeSize * 4, Bt(l, this._levelBounds));\n for (let c = l; c < f; c += 4) {\n const h = this._indices[c >> 2] | 0, p = vt(n, this._boxes[c], this._boxes[c + 2]), d = vt(e, this._boxes[c + 1], this._boxes[c + 3]), m = p * p + d * d;\n m > a || (l >= this.numItems * 4 ? o.push(h << 1, m) : (r === void 0 || r(h)) && o.push((h << 1) + 1, m));\n }\n for (; o.length && o.peek() & 1; )\n if (o.peekValue() > a || (u.push(o.pop() >> 1), u.length === s)) break t;\n l = o.length ? o.pop() >> 1 : void 0;\n }\n return o.clear(), u;\n }\n}\nfunction vt(t, n, e) {\n return t < n ? n - t : t <= e ? 0 : t - e;\n}\nfunction Bt(t, n) {\n let e = 0, s = n.length - 1;\n for (; e < s; ) {\n const i = e + s >> 1;\n n[i] > t ? s = i : e = i + 1;\n }\n return n[e];\n}\nfunction ot(t, n, e, s, i, r) {\n if (Math.floor(s / r) >= Math.floor(i / r)) return;\n const l = t[s + i >> 1];\n let o = s - 1, u = i + 1;\n for (; ; ) {\n do\n o++;\n while (t[o] < l);\n do\n u--;\n while (t[u] > l);\n if (o >= u) break;\n Jn(t, n, e, o, u);\n }\n ot(t, n, e, s, u, r), ot(t, n, e, u + 1, i, r);\n}\nfunction Jn(t, n, e, s, i) {\n const r = t[s];\n t[s] = t[i], t[i] = r;\n const l = 4 * s, o = 4 * i, u = n[l], a = n[l + 1], f = n[l + 2], c = n[l + 3];\n n[l] = n[o], n[l + 1] = n[o + 1], n[l + 2] = n[o + 2], n[l + 3] = n[o + 3], n[o] = u, n[o + 1] = a, n[o + 2] = f, n[o + 3] = c;\n const h = e[s];\n e[s] = e[i], e[i] = h;\n}\nfunction Kn(t, n) {\n let e = t ^ n, s = 65535 ^ e, i = 65535 ^ (t | n), r = t & (n ^ 65535), l = e | s >> 1, o = e >> 1 ^ e, u = i >> 1 ^ s & r >> 1 ^ i, a = e & i >> 1 ^ r >> 1 ^ r;\n e = l, s = o, i = u, r = a, l = e & e >> 2 ^ s & s >> 2, o = e & s >> 2 ^ s & (e ^ s) >> 2, u ^= e & i >> 2 ^ s & r >> 2, a ^= s & i >> 2 ^ (e ^ s) & r >> 2, e = l, s = o, i = u, r = a, l = e & e >> 4 ^ s & s >> 4, o = e & s >> 4 ^ s & (e ^ s) >> 4, u ^= e & i >> 4 ^ s & r >> 4, a ^= s & i >> 4 ^ (e ^ s) & r >> 4, e = l, s = o, i = u, r = a, u ^= e & i >> 8 ^ s & r >> 8, a ^= s & i >> 8 ^ (e ^ s) & r >> 8, e = u ^ u >> 1, s = a ^ a >> 1;\n let f = t ^ n, c = s | 65535 ^ (f | e);\n return f = (f | f << 8) & 16711935, f = (f | f << 4) & 252645135, f = (f | f << 2) & 858993459, f = (f | f << 1) & 1431655765, c = (c | c << 8) & 16711935, c = (c | c << 4) & 252645135, c = (c | c << 2) & 858993459, c = (c | c << 1) & 1431655765, (c << 1 | f) >>> 0;\n}\nfunction Jt(t, n = 1e-7) {\n if (t.length === 0) return [];\n if (t.length === 1) return [t];\n const e = new ft(t.length);\n t.forEach((r) => {\n const [l, o] = r.firstPoint;\n e.add(l - n, o - n, l + n, o + n);\n }), e.finish();\n const s = [], i = /* @__PURE__ */ new Set();\n return t.forEach((r, l) => {\n if (i.has(l)) return;\n const o = [r];\n let u = l;\n i.add(l);\n let a = t.length;\n for (; ; ) {\n if (a-- < 0)\n throw new Error(\"Infinite loop detected\");\n const f = o[o.length - 1].lastPoint, [c, h] = f, p = e.search(\n c - n,\n h - n,\n c + n,\n h + n\n ), d = (I) => Math.abs((u - I) % t.length), m = p.filter((I) => !i.has(I)).map((I) => [\n t[I],\n I,\n d(I)\n ]).sort(([, , I], [, , F]) => d(I) - d(F));\n if (m.length === 0) {\n s.push(o);\n break;\n }\n const [w, g] = m[0];\n o.push(w), i.add(g), u = g;\n }\n }), s;\n}\nconst kt = Symbol.for(\"pantograph:Figure\");\nclass v extends ut {\n constructor(e, s = [], { ignoreChecks: i = !1 } = {}) {\n super();\n b(this, \"contour\");\n b(this, \"holes\");\n Object.defineProperty(this, kt, { value: !0 }), i || Zn(e, s), this.contour = e, this.holes = s;\n }\n static isInstance(e) {\n return !!e && e[kt] === !0;\n }\n get boundingBox() {\n return this.contour.boundingBox;\n }\n get isFull() {\n return this.holes.length === 0;\n }\n get allLoops() {\n return [this.contour, ...this.holes];\n }\n clone() {\n return new v(\n this.contour.clone(),\n this.holes.map((e) => e.clone())\n );\n }\n transform(e) {\n return new v(\n this.contour.transform(e),\n this.holes.map((s) => s.transform(e))\n );\n }\n contains(e, { strokeIsInside: s = !1 } = {}) {\n return this.contour.contains(e, { strokeIsInside: s }) && !this.holes.some((i) => i.contains(e, { strokeIsInside: s }));\n }\n intersects(e) {\n return this.allLoops.some(\n (s) => e.allLoops.some((i) => s.intersects(i))\n );\n }\n overlappingStrands(e) {\n const s = v.isInstance(e) ? e.allLoops : [e], i = this.allLoops.flatMap((r) => s.flatMap((l) => r.overlappingSegments(l)));\n return Jt(i).map((r) => new B(r));\n }\n}\nfunction Zn(t, n = []) {\n if (!t) throw new Error(\"Figure must have a contour\");\n for (const [e, s] of it([t, ...n]))\n if (e.intersects(s))\n throw new Error(\"Loops in a figure must not intersect\");\n if (n.some(\n (e) => !t.contains(e.firstPoint) && !t.onStroke(e.firstPoint)\n ))\n throw new Error(\"Holes must be inside the contour\");\n for (const [e, s] of it(n))\n if (e.contains(s.firstPoint))\n throw console.error(Et(e), Et(s)), new Error(\"Holes must not be inside other holes\");\n}\nconst J = (t, n, e = 1e-7) => Math.abs(t - n) <= e, te = (t, n) => {\n const e = t.boundingBox, s = n.boundingBox;\n return J(e.xMin, s.xMin) && J(e.yMin, s.yMin) && J(e.xMax, s.xMax) && J(e.yMax, s.yMax);\n}, ne = (t, n) => {\n if (t.segmentsCount !== n.segmentsCount || !te(t, n)) return !1;\n const e = t.segments, s = n.segments, i = e.length, r = (l, o) => {\n for (let u = 0; u < i; u += 1) {\n const a = (l + o * u + i) % i;\n if (!e[u].isSame(s[a])) return !1;\n }\n return !0;\n };\n for (let l = 0; l < i; l += 1)\n if (e[0].isSame(s[l]) && (r(l, 1) || r(l, -1)))\n return !0;\n return !1;\n}, ee = (t) => {\n const n = [];\n return t.forEach((e) => {\n n.some((s) => ne(e, s)) || n.push(e);\n }), n;\n}, se = (t) => {\n const n = t.map((i, r) => t.slice(r + 1).map((l, o) => [o + r + 1, l]).filter(([, l]) => i.boundingBox.overlaps(l.boundingBox)).map(([l]) => l)), e = [], s = Array(n.length);\n return n.forEach((i, r) => {\n let l = s[r];\n l || (l = [], e.push(l)), l.push(t[r]), i.length && i.forEach((o) => {\n s[o] = l;\n });\n }), e;\n}, Kt = (t) => t.map((n, e) => {\n const i = n.segments[0].midPoint, r = t.filter((l, o) => e === o ? !1 : l.contains(i));\n return {\n loop: n,\n isIn: r\n };\n}), ie = (t, n) => t.flatMap(({ loop: e }) => ht(\n n.filter(\n ({ loop: s, isIn: i }) => s === e || i.indexOf(e) !== -1\n )\n)), re = (t, n) => {\n const e = n.filter(({ isIn: i }) => i.length <= 1), s = ht(\n Kt(t.map(({ loop: i }) => i))\n );\n return [e, ...s];\n}, ht = (t) => {\n if (!t.length) return [];\n const n = t.filter(({ isIn: s }) => !s.length), e = t.filter(({ isIn: s }) => s.length > 1);\n return n.length === 1 && e.length === 0 ? [t] : n.length > 1 ? ie(n, t) : re(e, t);\n};\nfunction X(t) {\n const n = ee(t);\n return se(n).map(Kt).flatMap(ht).map((s) => {\n if (s.length === 1) return new v(s[0].loop);\n s.sort((l, o) => l.isIn.length - o.isIn.length);\n const [i, ...r] = s.map(({ loop: l }) => l);\n return new v(i, r);\n });\n}\nfunction oe(t, n) {\n const e = [];\n for (const s of t)\n for (const i of n)\n e.push([s, i]);\n return e;\n}\nfunction* Ot(t, n, e) {\n const s = (o) => n.some((u) => P(u, o.lastPoint)), i = (o, u) => o.segmentType !== u.segmentType || !u.isOnSegment(o.firstPoint) || !u.isOnSegment(o.lastPoint) ? !1 : o.segmentType !== \"LINE\" ? u.isOnSegment(o.midPoint) : !0, r = (o) => e.some((u) => o.isSame(u) || i(o, u));\n let l = [];\n for (const o of t)\n s(o) ? (l.push(o), yield new B(l, { ignoreChecks: !0 }), l = []) : r(o) ? (l.length && (yield new B(l, { ignoreChecks: !0 }), l = []), yield new B([o], { ignoreChecks: !0 })) : l.push(o);\n l.length && (yield new B(l, { ignoreChecks: !0 }));\n}\nconst _t = (t, n) => {\n const e = t.findIndex((r) => P(n, r.firstPoint)), s = t.slice(0, e);\n return t.slice(e).concat(s);\n}, Tt = (t, n) => {\n let e = t;\n const s = (o) => P(o.firstPoint, n.firstPoint) && P(o.lastPoint, n.lastPoint);\n let i = t.findIndex(s);\n if (i === -1) {\n const o = t.map((u) => u.reverse());\n if (o.reverse(), i = o.findIndex(s), i === -1)\n throw console.error(\n o.map((u) => u.repr),\n n.repr\n ), new Error(\"Failed to rotate to segment start\");\n e = o;\n }\n const r = e.slice(0, i);\n return e.slice(i).concat(r);\n};\nfunction le(t, n, e) {\n return t.filter((s) => {\n const i = n.filter((o) => P(o.firstPoint, s) || P(o.lastPoint, s));\n if (i.length % 2)\n throw new Error(\"Bug in the intersection algo on non crossing point\");\n const r = i.map((o) => e.contains(o.midPoint));\n return !(r.every((o) => o) || !r.some((o) => o));\n });\n}\nfunction ue(t, n, e, s = !1) {\n let i = [];\n const r = [], l = new Array(t.segments.length).fill(0).map(() => []), o = new Array(n.segments.length).fill(0).map(() => []);\n if (t.segments.forEach((p, d) => {\n n.segments.forEach((m, w) => {\n const { intersections: g, overlaps: I } = Z(\n p,\n m,\n e\n );\n i.push(...g), l[d].push(...g), o[w].push(...g), r.push(...I);\n const F = I.flatMap((S) => [\n S.firstPoint,\n S.lastPoint\n ]);\n i.push(...F), l[d].push(...F), o[w].push(...F);\n });\n }), i = j(i, e), !i.length || i.length === 1) return null;\n const u = ([p, d]) => d.length ? p.splitAt(d) : [p];\n let a = V([t.segments, l]).flatMap(u), f = V([n.segments, o]).flatMap(u);\n if (i = le(\n i,\n a,\n n\n ), !i.length && !r.length) return null;\n if (r.length) {\n const p = r[0];\n a = Tt(\n a,\n p\n ), f = Tt(\n f,\n p\n );\n } else {\n const p = i[0];\n a = _t(a, p), f = _t(f, p);\n }\n let c = Array.from(\n Ot(\n a,\n i,\n r\n )\n ), h = Array.from(\n Ot(\n f,\n i,\n r\n )\n );\n return (!P(\n h[0].lastPoint,\n c[0].lastPoint\n ) || r.length > 0 && h[0].segmentsCount !== 1) && (h = h.map((p) => p.reverse()).reverse(), P(h[0].lastPoint, c[0].lastPoint) || (c = c.map((p) => p.reverse()).reverse())), V([c, h]).map(([p, d]) => {\n if (s) {\n if (((w) => w.segments.every(\n (g) => r.some(\n (I) => g.isSame(I) || g.segmentType === I.segmentType && I.isOnSegment(g.firstPoint) && I.isOnSegment(g.lastPoint) && (g.segmentType === \"LINE\" || I.isOnSegment(g.midPoint))\n )\n ))(p))\n return [p, \"same\"];\n } else if (p.segmentsCount === 1 && r.some((m) => p.segments[0].isSame(m)))\n return [p, \"same\"];\n return [p, d];\n });\n}\nfunction Lt(t) {\n let n = t[0];\n for (const e of t.slice(1))\n n = n.extend(e);\n if (!P(n.firstPoint, n.lastPoint))\n throw console.error(\n mt(n.firstPoint),\n mt(n.lastPoint)\n ), new Error(\"Bug in the intersection algo on non closing strand\");\n return new _(n.segments);\n}\nfunction ce(t, n) {\n const e = V([\n n.slice(0, -1),\n n.slice(1)\n ]).map(([i, r]) => Lt(t.slice(i, r)));\n let s = t.slice(\n n[n.length - 1]\n );\n return n[0] !== 0 && (s = s.concat(t.slice(0, n[0]))), e.push(Lt(s)), e;\n}\nfunction ae(t) {\n if (!t.length) return [];\n const n = t.map((i) => i.firstPoint);\n let e = t.map((i) => i.lastPoint);\n e = e.slice(-1).concat(e.slice(0, -1));\n const s = V([n, e]).flatMap(\n ([i, r], l) => P(i, r) ? [] : l\n );\n try {\n return ce(t, s);\n } catch {\n return Jt(t.flatMap((r) => r.segments)).filter((r) => r.length > 1).filter((r) => P(r[0].firstPoint, r.at(-1).lastPoint)).map((r) => new _(r));\n }\n}\nconst qt = (t, n) => {\n if (t.length === 0) return [n];\n const e = t.at(-1);\n return P(e.lastPoint, n.firstPoint) ? t.slice(0, -1).concat([e.extend(n)]) : P(e.lastPoint, n.lastPoint) ? t.slice(0, -1).concat([e.extend(n.reverse())]) : t.concat([n]);\n}, fe = (t, n) => t.length === 0 ? [n] : P(t[0].firstPoint, n.lastPoint) ? [n.extend(t[0])].concat(t.slice(1)) : [n].concat(t);\nfunction pt(t, n, {\n firstInside: e,\n secondInside: s,\n firstBoundaryInside: i = !1,\n secondBoundaryInside: r = !1\n}) {\n const l = ue(\n t,\n n,\n void 0,\n i || r\n );\n if (!l) {\n const f = t.segments[0].midPoint, c = n.contains(f, {\n strokeIsInside: r\n }), h = n.segments[0].midPoint, p = t.contains(h, {\n strokeIsInside: i\n });\n return {\n identical: !1,\n firstCurveInSecond: c,\n secondCurveInFirst: p\n };\n }\n if (l.every(([, f]) => f === \"same\"))\n return { identical: !0 };\n let o = null, u = null;\n const a = l.flatMap(([f, c]) => {\n let h = [], p = 0;\n if (c === \"same\")\n return u === 1 ? (u = 1, f) : u === 2 || u === 0 ? (u = null, []) : u === null ? (o ? o = o.extend(f) : o = f, []) : (console.error(\"weird situation\"), []);\n const d = f.segments[0].midPoint, m = n.contains(d, {\n strokeIsInside: r\n });\n (e === \"keep\" && m || e === \"remove\" && !m) && (p += 1, h = qt(h, f));\n const w = c.segments[0].midPoint, g = t.contains(w, {\n strokeIsInside: i\n });\n if (s === \"keep\" && g || s === \"remove\" && !g) {\n const I = c;\n p += 1, p === 2 && h.length ? (h = qt(h, I), o = null) : h = [I];\n }\n return u === null && p === 1 && o && (h = fe(h, o)), p === 1 && (u = p, o = null), h.length ? h : (o = null, []);\n });\n return ae(a);\n}\nconst he = (t, n, e) => {\n const s = pt(t, n, {\n firstInside: \"remove\",\n secondInside: \"remove\",\n ...e\n });\n return Array.isArray(s) ? s : s.identical ? [t] : s.firstCurveInSecond ? [n] : s.secondCurveInFirst ? [t] : [t, n];\n}, tt = (t, n, e) => {\n const s = pt(t, n, {\n firstInside: \"remove\",\n secondInside: \"keep\",\n ...e\n });\n return Array.isArray(s) ? s : s.identical ? [] : s.firstCurveInSecond ? [] : s.secondCurveInFirst ? [t, n] : [t];\n}, dt = (t, n, e) => {\n const s = (e == null ? void 0 : e.firstBoundaryInside) ?? !1, i = (e == null ? void 0 : e.secondBoundaryInside) ?? !1, r = s || i, l = (u, a, f) => u.segments.every(\n (c) => a.contains(c.midPoint, { strokeIsInside: f })\n );\n if (r) {\n if (l(t, n, i))\n return [t];\n if (l(n, t, s))\n return [n];\n }\n const o = pt(t, n, {\n firstInside: \"keep\",\n secondInside: \"keep\",\n ...e\n });\n return Array.isArray(o) ? o : o.identical ? [t] : o.firstCurveInSecond ? [t] : o.secondCurveInFirst ? [n] : [];\n};\nfunction pe(t) {\n const n = /* @__PURE__ */ new Map(), e = [];\n return t.forEach((s, i) => {\n let r;\n n.has(i) ? r = n.get(i) : (r = { current: [s], fusedWith: /* @__PURE__ */ new Set([i]) }, e.push(r)), t.slice(i + 1).forEach((l, o) => {\n const u = r.current, a = i + o + 1;\n if (r.fusedWith.has(a)) return;\n let f = [l], c = !1;\n if (n.has(a) && (f = n.get(a).current, c = !0), !u.some(\n (d) => f.some((m) => d.intersects(m))\n )) return;\n let p;\n u.length > 1 || f.length > 1 ? p = G(u, f) : p = Zt(u[0], f[0]), r.fusedWith.add(a), r.current = p, c || n.set(a, r);\n });\n }), e.flatMap(({ current: s }) => s);\n}\nfunction Zt(t, n) {\n const e = he(t.contour, n.contour), s = n.holes.flatMap((l) => tt(l, t.contour)), i = t.holes.flatMap((l) => tt(l, n.contour)), r = oe(t.holes, n.holes).flatMap(\n ([l, o]) => dt(l, o)\n );\n return X([\n ...e,\n ...s,\n ...i,\n ...r\n ]);\n}\nfunction nt(t, n) {\n if (t.isFull && n.isFull)\n return X(tt(t.contour, n.contour));\n if (t.isFull) {\n const s = tt(t.contour, n.contour), i = n.holes.flatMap(\n (r) => dt(r, t.contour, { firstBoundaryInside: !0 })\n );\n return X([...s, ...i]);\n } else if (n.isFull && !t.contour.intersects(n.contour))\n if (t.contour.contains(n.contour.firstPoint)) {\n const s = G(\n t.holes.map((i) => new v(i)),\n [n]\n );\n return X([\n t.contour,\n ...s.flatMap((i) => i.allLoops)\n ]);\n } else\n return [t];\n let e = nt(new v(t.contour), n);\n return t.holes.forEach((s) => {\n e = e.flatMap((i) => nt(i, new v(s)));\n }), e;\n}\nfunction de(t, n) {\n const e = dt(t.contour, n.contour);\n if (!e.length) return [];\n let s = X(e);\n return s = Q(\n s,\n t.holes.map((i) => new v(i))\n ), Q(\n s,\n n.holes.map((i) => new v(i))\n );\n}\nfunction G(t, n) {\n if (!t.length) return n;\n if (!n.length) return t;\n if (t.length === 1 && n.length > 1 || n.length === 1 && t.length > 1)\n return pe([...t, ...n]);\n if (t.length > 1 && n.length > 1) {\n let e = G([t[0]], n);\n return t.slice(1).forEach((s) => {\n e = G([s], e);\n }), e;\n }\n return t.length === 1 && n.length === 1 ? Zt(t[0], n[0]) : [];\n}\nfunction Q(t, n) {\n if (!t.length) return [];\n if (!n.length) return t;\n if (t.length === 1 && n.length === 1)\n return nt(t[0], n[0]);\n if (t.length > 1)\n return t.flatMap((s) => Q([s], n));\n let e = nt(t[0], n[0]);\n return n.slice(1).forEach((s) => {\n e = Q(e, [s]);\n }), e;\n}\nfunction lt(t, n) {\n return !t.length || !n.length ? [] : t.length === 1 && n.length === 1 ? de(t[0], n[0]) : t.length > 1 ? t.flatMap((e) => lt([e], n)) : n.flatMap((e) => lt(t, [e]));\n}\nconst zt = Symbol.for(\"pantograph:Diagram\");\nclass O extends ut {\n constructor(e = [], { ignoreChecks: s = !1 } = {}) {\n super();\n b(this, \"figures\");\n b(this, \"_boundingBox\", null);\n Object.defineProperty(this, zt, { value: !0 }), s || me(e), this.figures = e;\n }\n static isInstance(e) {\n return !!e && e[zt] === !0;\n }\n get isEmpty() {\n return this.figures.length === 0;\n }\n get boundingBox() {\n if (this.isEmpty) return new Pn();\n if (this._boundingBox === null) {\n let e = this.figures[0].boundingBox;\n for (const s of this.figures.slice(1))\n e = e.merge(s.boundingBox);\n this._boundingBox = e;\n }\n return this._boundingBox;\n }\n clone() {\n return new O(this.figures.map((e) => e.clone()));\n }\n transform(e) {\n return new O(this.figures.map((s) => s.transform(e)));\n }\n contains(e, { strokeIsInside: s = !1 } = {}) {\n return this.figures.some(\n (i) => i.contains(e, { strokeIsInside: s })\n );\n }\n intersects(e) {\n return this.figures.some(\n (s) => e.figures.some((i) => s.intersects(i))\n );\n }\n overlappingStrands(e) {\n return this.figures.flatMap((s) => O.isInstance(e) ? e.figures.flatMap(\n (i) => s.overlappingStrands(i)\n ) : s.overlappingStrands(e));\n }\n fuse(e) {\n return new O(G(this.figures, e.figures));\n }\n cut(e) {\n return new O(Q(this.figures, e.figures));\n }\n intersect(e) {\n return new O(lt(this.figures, e.figures));\n }\n}\nfunction me(t) {\n for (const [n, e] of it(t))\n if (n.intersects(e))\n throw new Error(\"Diagram figures must not intersect\");\n}\nexport {\n O as D,\n v as F,\n _ as L,\n B as S,\n Z as a,\n G as b,\n Q as c,\n jt as d,\n Jt as e,\n Ie as f,\n Gn as g,\n Et as h,\n lt as i,\n K as l,\n In as p,\n Ot as s\n};\n//# sourceMappingURL=models-BHeLX0dj.js.map\n","var W = Object.defineProperty;\nvar j = (e, t, n) => t in e ? W(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;\nvar m = (e, t, n) => j(e, typeof t != \"symbol\" ? t + \"\" : t, n);\nimport { a as l, s as u, c as b, b as P, L as d, A as z, Q as w, C as D, p as x, d as q, e as T, t as k, f as Q, g as v, h as $, i as H, j as J, R as K, T as U, k as A, n as F, D as S } from \"./QuadraticBezier-BeY2TXKH.js\";\nimport { f as X, S as Z, D as tt, F as nt, L as et } from \"./models-BHeLX0dj.js\";\nconst B = (e, t, n) => {\n const r = b(e.V, t.V), i = e.precision * t.precision;\n if (r * r < i)\n return \"parallel\";\n const s = P(t.firstPoint, e.firstPoint), o = b(s, t.V) / r;\n return l(e.firstPoint, u(e.V, o));\n}, y = Symbol.for(\n \"pantograph:DegenerateSegment\"\n);\nclass C {\n constructor(t, n) {\n this.firstPoint = t, this.lastPoint = n, Object.defineProperty(this, y, { value: !0 });\n }\n static isInstance(t) {\n return !!t && t[y] === !0;\n }\n}\nfunction _(e, t) {\n if (d.isInstance(e))\n return rt(e, t);\n if (z.isInstance(e))\n return it(e, t);\n if (w.isInstance(e) || D.isInstance(e))\n return st(e, t);\n throw new Error(\"Not implemented\");\n}\nfunction rt(e, t) {\n const { firstPoint: n, lastPoint: r } = e, i = e.normalVector;\n return new d(\n l(n, u(i, t)),\n l(r, u(i, t))\n );\n}\nfunction it(e, t) {\n const n = l(\n e.firstPoint,\n u(x(e.tangentAtFirstPoint), t)\n ), r = l(\n e.lastPoint,\n u(x(e.tangentAtLastPoint), t)\n ), i = t * (e.clockwise ? 1 : -1);\n return e.radius + i < e.precision ? new C(n, r) : new z(n, r, e.center, e.clockwise);\n}\nfunction L(e, t, n, r, i) {\n const s = B(\n {\n V: n,\n firstPoint: r,\n precision: i\n },\n {\n V: P(t, e),\n firstPoint: e,\n precision: i\n }\n );\n if (s === \"parallel\")\n throw new Error(\n \"Parallel lines not expected in safe bezier offset control point calculation\"\n );\n return s;\n}\nfunction st(e, t) {\n const { firstPoint: n, lastPoint: r, normalAtFirstPoint: i, normalAtLastPoint: s } = e, o = B(\n { V: i, firstPoint: n, precision: e.precision },\n { V: s, firstPoint: r, precision: e.precision }\n ), a = l(\n n,\n u(i, t)\n ), c = l(\n r,\n u(s, t)\n );\n if (o === \"parallel\")\n throw new Error(\"Parallel lines not expected in safe bezier offset\");\n if (q(P(o, n), i) * t > 0 && Math.min(\n T(n, o),\n T(r, o)\n ) < t)\n return new C(a, c);\n if (w.isInstance(e)) {\n const f = L(\n o,\n e.controlPoint,\n e.tangentAtFirstPoint,\n a,\n e.precision\n );\n return new w(\n a,\n c,\n f\n );\n }\n const g = L(\n o,\n e.firstControlPoint,\n e.tangentAtFirstPoint,\n a,\n e.precision\n ), p = L(\n o,\n e.lastControlPoint,\n e.tangentAtLastPoint,\n c,\n e.precision\n );\n return new D(\n a,\n c,\n g,\n p\n );\n}\nfunction M(e, t, n) {\n const r = b(\n e.tangentAtLastPoint,\n t.tangentAtFirstPoint\n );\n if (Math.abs(r) < 1e-10) return null;\n const i = r > 0 ? 1 : -1, s = Math.abs(n) * i, o = _(e, s), a = _(t, s);\n if (C.isInstance(o) || C.isInstance(a))\n return null;\n let c;\n try {\n c = X(o, a, 1e-9).at(-1);\n } catch {\n return null;\n }\n if (!c)\n return null;\n const h = c, g = (E, N) => {\n const O = N.tangentAt(h), G = Q(O), Y = l(h, u(G, s));\n return E.splitAt(Y);\n }, [p] = g(e, o), [, f] = g(t, a);\n return { first: p, second: f, center: h };\n}\nfunction I(e, t, n) {\n const r = M(e, t, n);\n if (!r)\n return console.warn(\n \"Cannot fillet between segments\",\n e.repr,\n t.repr\n ), [e, t];\n const { first: i, second: s } = r;\n return [\n i,\n k(i.lastPoint, s.firstPoint, i.tangentAtLastPoint),\n s\n ];\n}\nfunction V(e, t, n) {\n const r = M(e, t, n);\n if (!r)\n return console.warn(\n \"Cannot chamfer between segments\",\n e.repr,\n t.repr\n ), [e, t];\n const { first: i, second: s } = r;\n return [i, new d(i.lastPoint, s.firstPoint), s];\n}\nconst ot = (e) => {\n let t;\n e ? typeof e == \"number\" || Array.isArray(e) && e.length === 2 ? t = { endTangent: e } : t = { endTangent: 0, ...e } : t = { endTangent: [1, 0] };\n const {\n endTangent: n,\n startFactor: r = 1,\n endFactor: i = 1,\n startTangent: s\n } = t;\n let o;\n typeof n == \"number\" ? o = A(1, n * S) : o = n;\n let a;\n return typeof s == \"number\" ? a = A(1, s * S) : a = s, { endTangent: o, startFactor: r, endFactor: i, startTangent: a };\n};\nfunction R(e, { ignoreChecks: t = !1 } = {}) {\n return new tt([new nt(new et([...e], { ignoreChecks: t }))]);\n}\nclass at {\n constructor(t = [0, 0]) {\n m(this, \"pointer\");\n m(this, \"firstPoint\");\n m(this, \"pendingSegments\");\n m(this, \"_nextCorner\");\n this.pointer = t, this.firstPoint = t, this.pendingSegments = [], this._nextCorner = null;\n }\n movePointerTo(t) {\n if (this.pendingSegments.length)\n throw new Error(\n \"You can only move the pointer if there is no segment defined\"\n );\n return this.pointer = t, this.firstPoint = t, this;\n }\n saveSegment(t) {\n if (v(t.firstPoint, t.lastPoint))\n throw new Error(`Segment has no length, ${t.repr}`);\n if (!this._nextCorner)\n return this.pendingSegments.push(t), this;\n const n = this.pendingSegments.pop();\n if (!n) throw new Error(\"bug in the custom corner algorithm\");\n const r = this._nextCorner.mode === \"chamfer\" ? V : I;\n return this.pendingSegments.push(\n ...r(n, t, this._nextCorner.radius)\n ), this._nextCorner = null, this;\n }\n lineTo(t) {\n const n = new d(this.pointer, t);\n return this.pointer = t, this.saveSegment(n);\n }\n line(t, n) {\n return this.lineTo([this.pointer[0] + t, this.pointer[1] + n]);\n }\n vLine(t) {\n return this.line(0, t);\n }\n hLine(t) {\n return this.line(t, 0);\n }\n vLineTo(t) {\n return this.lineTo([this.pointer[0], t]);\n }\n hLineTo(t) {\n return this.lineTo([t, this.pointer[1]]);\n }\n polarLineTo([t, n]) {\n const r = n * S, i = A(t, r);\n return this.lineTo(i);\n }\n polarLine(t, n) {\n const r = n * S, [i, s] = A(t, r);\n return this.line(i, s);\n }\n tangentLine(t) {\n const n = this.pendingSegments.at(-1);\n if (!n)\n throw new Error(\"You need a previous segment to sketch a tangent line\");\n const [r, i] = n.tangentAtLastPoint;\n return this.line(r * t, i * t);\n }\n threePointsArcTo(t, n) {\n return this.saveSegment($(this.pointer, n, t)), this.pointer = t, this;\n }\n threePointsArc(t, n, r, i) {\n const [s, o] = this.pointer;\n return this.threePointsArcTo(\n [s + t, o + n],\n [s + r, o + i]\n );\n }\n sagittaArcTo(t, n) {\n if (!n) return this.lineTo(t);\n const r = new d(this.pointer, t), i = x(r.tangentAtFirstPoint), s = l(r.midPoint, u(i, n));\n return this.threePointsArcTo(t, s);\n }\n sagittaArc(t, n, r) {\n return this.sagittaArcTo(\n [t + this.pointer[0], n + this.pointer[1]],\n r\n );\n }\n vSagittaArc(t, n) {\n return this.sagittaArc(0, t, n);\n }\n hSagittaArc(t, n) {\n return this.sagittaArc(t, 0, n);\n }\n bulgeArcTo(t, n) {\n if (!n) return this.lineTo(t);\n const r = T(this.pointer, t) / 2, i = -n * r;\n return this.sagittaArcTo(t, i);\n }\n bulgeArc(t, n, r) {\n return this.bulgeArcTo(\n [t + this.pointer[0], n + this.pointer[1]],\n r\n );\n }\n vBulgeArc(t, n) {\n return this.bulgeArc(0, t, n);\n }\n hBulgeArc(t, n) {\n return this.bulgeArc(t, 0, n);\n }\n tangentArcTo(t, n) {\n const r = this.pendingSegments.at(-1);\n if (!r)\n throw new Error(\"You need a previous curve to sketch a tangent arc\");\n return this.saveSegment(\n k(\n this.pointer,\n t,\n n ?? r.tangentAtLastPoint\n )\n ), this.pointer = t, this;\n }\n tangentArc(t, n, r) {\n const [i, s] = this.pointer;\n return this.tangentArcTo([t + i, n + s], r);\n }\n ellipseTo(t, n, r, i, s, o) {\n return this.saveSegment(\n H(this.pointer, t, n, r, i, s, o)\n ), this.pointer = t, this;\n }\n ellipse(t, n, r, i, s, o, a) {\n return this.ellipseTo(\n [t + this.pointer[0], n + this.pointer[1]],\n r,\n i,\n s,\n o,\n a\n );\n }\n halfEllipseTo(t, n) {\n const [r, i] = J(P(t, this.pointer));\n return this.ellipseTo(\n t,\n r / 2,\n Math.abs(n),\n i * K,\n !0,\n n > 0\n );\n }\n halfEllipse(t, n, r) {\n return this.halfEllipseTo(\n [t + this.pointer[0], n + this.pointer[1]],\n r\n );\n }\n cubicBezierCurveTo(t, n, r) {\n return this.saveSegment(\n new D(this.pointer, t, n, r)\n ), this.pointer = t, this;\n }\n quadraticBezierCurveTo(t, n) {\n return this.saveSegment(new w(this.pointer, t, n)), this.pointer = t, this;\n }\n smoothCurveTo(t, n) {\n const { endTangent: r, startTangent: i, startFactor: s, endFactor: o } = ot(n), a = this.pendingSegments.length ? this.pendingSegments[this.pendingSegments.length - 1] : null, c = T(this.pointer, t) / 3;\n let h;\n i ? h = i : a ? h = a.tangentAtLastPoint : h = [1, 0], h = F(h);\n const g = [\n this.pointer[0] + h[0] * s * c,\n this.pointer[1] + h[1] * s * c\n ];\n let p = r;\n p = F(p);\n const f = [\n t[0] - p[0] * o * c,\n t[1] - p[1] * o * c\n ];\n return this.cubicBezierCurveTo(t, g, f);\n }\n smoothCurve(t, n, r) {\n return this.smoothCurveTo(\n [t + this.pointer[0], n + this.pointer[1]],\n r\n );\n }\n customCorner(t, n = \"fillet\") {\n if (!this.pendingSegments.length)\n throw new Error(\"You need a segment defined to fillet the angle\");\n return t ? (this._nextCorner = { mode: n, radius: t }, this) : this;\n }\n _customCornerLastWithFirst(t, n = \"fillet\") {\n if (!t) return;\n const r = this.pendingSegments.pop(), i = this.pendingSegments.shift();\n if (!r || !i)\n throw new Error(\"Not enough curves to close and fillet\");\n const s = n === \"chamfer\" ? V : I;\n this.pendingSegments.push(...s(r, i, t));\n }\n close(t = !1) {\n if (!this.pendingSegments.length) throw new Error(\"No segments to close\");\n const n = this.pendingSegments[0], r = this.pendingSegments.at(-1);\n return v(n.firstPoint, r.lastPoint) || this.lineTo(n.firstPoint), this._nextCorner !== null && (this._customCornerLastWithFirst(\n this._nextCorner.radius,\n this._nextCorner.mode\n ), this._nextCorner = null), R(this.pendingSegments, { ignoreChecks: t });\n }\n closeWithMirror(t = !1) {\n if (!this.pendingSegments.length) throw new Error(\"No segments to close\");\n const n = this.pendingSegments[0], r = this.pendingSegments.at(-1), i = P(\n r.lastPoint,\n n.firstPoint\n ), s = new U().mirrorLine(\n i,\n n.firstPoint\n ), o = this.pendingSegments.map(\n (a) => a.transform(s).reverse()\n );\n return o.reverse(), R(\n [...this.pendingSegments, ...o],\n { ignoreChecks: t }\n );\n }\n asStrand() {\n return new Z([...this.pendingSegments]);\n }\n get isClosed() {\n var t;\n return v(this.pointer, (t = this.pendingSegments[0]) == null ? void 0 : t.firstPoint);\n }\n}\nfunction ut(e = [0, 0]) {\n return new at(e);\n}\nexport {\n C as D,\n at as a,\n ut as d,\n I as f,\n _ as o\n};\n//# sourceMappingURL=draw-DzKVhurb.js.map\n","import { d as E } from \"../draw-DzKVhurb.js\";\nimport { r as G } from \"../QuadraticBezier-BeY2TXKH.js\";\nfunction ct(c) {\n return E([-c, 0]).sagittaArc(2 * c, 0, c).sagittaArc(-2 * c, 0, c).close();\n}\nfunction ot(c, e, t = 0) {\n const { rx: a = 0, ry: o = 0 } = typeof t == \"number\" ? { ry: t, rx: t } : t;\n let n = Math.min(a ?? t ?? 0, c / 2), r = Math.min(o ?? t ?? 0, e / 2);\n const s = n && r;\n s || (n = 0, r = 0);\n const h = n === r, f = E([Math.min(0, -(c / 2 - n)), -e / 2]), l = (k, i) => {\n s && (h ? f.tangentArc(k, i) : f.ellipse(k, i, n, r, 0, !1, !1));\n };\n return n < c / 2 && f.hLine(c - 2 * n), l(n, r), r < e / 2 && f.vLine(e - 2 * r), l(-n, r), n < c / 2 && f.hLine(-(c - 2 * n)), l(-n, -r), r < e / 2 && f.vLine(-(e - 2 * r)), l(n, -r), f.close();\n}\nfunction rt(c, e) {\n const t = E([-c, 0]);\n return t.halfEllipse(2 * c, 0, e), t.halfEllipse(-2 * c, 0, e), t.close();\n}\nfunction lt(c, e, t) {\n const a = G(e).map((n) => {\n const r = -(Math.PI * 2 / e) * n;\n return [c * Math.sin(r), c * Math.cos(r)];\n });\n let o = E(a[a.length - 1]);\n for (const n of a)\n t ? o = o.sagittaArcTo(n, t) : o = o.lineTo(n);\n return o.close();\n}\nconst N = 0, $ = 1, B = 2, m = { A: 7, a: 7, C: 6, c: 6, H: 1, h: 1, L: 2, l: 2, M: 2, m: 2, Q: 4, q: 4, S: 4, s: 4, T: 2, t: 2, V: 1, v: 1, Z: 0, z: 0 };\nfunction U(c) {\n const e = new Array();\n for (; c !== \"\"; )\n if (c.match(/^([ \\t\\r\\n,]+)/))\n c = c.substr(RegExp.$1.length);\n else if (c.match(/^([aAcChHlLmMqQsStTvVzZ])/))\n e[e.length] = { type: N, text: RegExp.$1 }, c = c.substr(RegExp.$1.length);\n else if (c.match(/^(([-+]?[0-9]+(\\.[0-9]*)?|[-+]?\\.[0-9]+)([eE][-+]?[0-9]+)?)/))\n e[e.length] = { type: $, text: `${parseFloat(RegExp.$1)}` }, c = c.substr(RegExp.$1.length);\n else\n return [];\n return e[e.length] = { type: B, text: \"\" }, e;\n}\nfunction z(c, e) {\n return c.type === e;\n}\nfunction O(c) {\n const e = [], t = U(c);\n let a = \"BOD\", o = 0, n = t[o];\n for (; !z(n, B); ) {\n let r = 0;\n const s = [];\n if (a === \"BOD\")\n if (n.text === \"M\" || n.text === \"m\")\n o++, r = m[n.text], a = n.text;\n else\n return O(\"M0,0\" + c);\n else z(n, $) ? r = m[a] : (o++, r = m[n.text], a = n.text);\n if (o + r < t.length) {\n for (let h = o; h < o + r; h++) {\n const f = t[h];\n if (z(f, $))\n s[s.length] = +f.text;\n else\n throw new Error(\"Param not a number: \" + a + \",\" + f.text);\n }\n if (typeof m[a] == \"number\") {\n const h = { key: a, data: s };\n e.push(h), o += r, n = t[o], a === \"M\" && (a = \"L\"), a === \"m\" && (a = \"l\");\n } else\n throw new Error(\"Bad segment: \" + a);\n } else\n throw new Error(\"Path data ended short\");\n }\n return e;\n}\nfunction X(c) {\n const e = [];\n for (const { key: t, data: a } of c)\n switch (e.push(t), t) {\n case \"C\":\n case \"c\":\n e.push(a[0], `${a[1]},`, a[2], `${a[3]},`, a[4], a[5]);\n break;\n case \"S\":\n case \"s\":\n case \"Q\":\n case \"q\":\n e.push(a[0], `${a[1]},`, a[2], a[3]);\n break;\n default:\n e.push(...a);\n break;\n }\n return e.join(\" \");\n}\nfunction Y(c) {\n let e = 0, t = 0, a = 0, o = 0;\n const n = [];\n for (const { key: r, data: s } of c)\n switch (r) {\n case \"M\":\n n.push({ key: \"M\", data: [...s] }), [e, t] = s, [a, o] = s;\n break;\n case \"m\":\n e += s[0], t += s[1], n.push({ key: \"M\", data: [e, t] }), a = e, o = t;\n break;\n case \"L\":\n n.push({ key: \"L\", data: [...s] }), [e, t] = s;\n break;\n case \"l\":\n e += s[0], t += s[1], n.push({ key: \"L\", data: [e, t] });\n break;\n case \"C\":\n n.push({ key: \"C\", data: [...s] }), e = s[4], t = s[5];\n break;\n case \"c\": {\n const h = s.map((f, l) => l % 2 ? f + t : f + e);\n n.push({ key: \"C\", data: h }), e = h[4], t = h[5];\n break;\n }\n case \"Q\":\n n.push({ key: \"Q\", data: [...s] }), e = s[2], t = s[3];\n break;\n case \"q\": {\n const h = s.map((f, l) => l % 2 ? f + t : f + e);\n n.push({ key: \"Q\", data: h }), e = h[2], t = h[3];\n break;\n }\n case \"A\":\n n.push({ key: \"A\", data: [...s] }), e = s[5], t = s[6];\n break;\n case \"a\":\n e += s[5], t += s[6], n.push({ key: \"A\", data: [s[0], s[1], s[2], s[3], s[4], e, t] });\n break;\n case \"H\":\n n.push({ key: \"H\", data: [...s] }), e = s[0];\n break;\n case \"h\":\n e += s[0], n.push({ key: \"H\", data: [e] });\n break;\n case \"V\":\n n.push({ key: \"V\", data: [...s] }), t = s[0];\n break;\n case \"v\":\n t += s[0], n.push({ key: \"V\", data: [t] });\n break;\n case \"S\":\n n.push({ key: \"S\", data: [...s] }), e = s[2], t = s[3];\n break;\n case \"s\": {\n const h = s.map((f, l) => l % 2 ? f + t : f + e);\n n.push({ key: \"S\", data: h }), e = h[2], t = h[3];\n break;\n }\n case \"T\":\n n.push({ key: \"T\", data: [...s] }), e = s[0], t = s[1];\n break;\n case \"t\":\n e += s[0], t += s[1], n.push({ key: \"T\", data: [e, t] });\n break;\n case \"Z\":\n case \"z\":\n n.push({ key: \"Z\", data: [] }), e = a, t = o;\n break;\n }\n return n;\n}\nfunction J(c) {\n const e = [];\n let t = \"\", a = 0, o = 0, n = 0, r = 0, s = 0, h = 0;\n for (const { key: f, data: l } of c) {\n switch (f) {\n case \"M\":\n e.push({ key: \"M\", data: [...l] }), [a, o] = l, [n, r] = l;\n break;\n case \"C\":\n e.push({ key: \"C\", data: [...l] }), a = l[4], o = l[5], s = l[2], h = l[3];\n break;\n case \"L\":\n e.push({ key: \"L\", data: [...l] }), [a, o] = l;\n break;\n case \"H\":\n a = l[0], e.push({ key: \"L\", data: [a, o] });\n break;\n case \"V\":\n o = l[0], e.push({ key: \"L\", data: [a, o] });\n break;\n case \"S\": {\n let k = 0, i = 0;\n t === \"C\" || t === \"S\" ? (k = a + (a - s), i = o + (o - h)) : (k = a, i = o), e.push({ key: \"C\", data: [k, i, ...l] }), s = l[0], h = l[1], a = l[2], o = l[3];\n break;\n }\n case \"T\": {\n const [k, i] = l;\n let u = 0, y = 0;\n t === \"Q\" || t === \"T\" ? (u = a + (a - s), y = o + (o - h)) : (u = a, y = o);\n const M = a + 2 * (u - a) / 3, p = o + 2 * (y - o) / 3, d = k + 2 * (u - k) / 3, g = i + 2 * (y - i) / 3;\n e.push({ key: \"C\", data: [M, p, d, g, k, i] }), s = u, h = y, a = k, o = i;\n break;\n }\n case \"Q\": {\n const [k, i, u, y] = l, M = a + 2 * (k - a) / 3, p = o + 2 * (i - o) / 3, d = u + 2 * (k - u) / 3, g = y + 2 * (i - y) / 3;\n e.push({ key: \"C\", data: [M, p, d, g, u, y] }), s = k, h = i, a = u, o = y;\n break;\n }\n case \"A\": {\n const k = Math.abs(l[0]), i = Math.abs(l[1]), u = l[2], y = l[3], M = l[4], p = l[5], d = l[6];\n k === 0 || i === 0 ? (e.push({ key: \"C\", data: [a, o, p, d, p, d] }), a = p, o = d) : (a !== p || o !== d) && (F(a, o, p, d, k, i, u, y, M).forEach(function(L) {\n e.push({ key: \"C\", data: L });\n }), a = p, o = d);\n break;\n }\n case \"Z\":\n e.push({ key: \"Z\", data: [] }), a = n, o = r;\n break;\n }\n t = f;\n }\n return e;\n}\nfunction K(c) {\n return Math.PI * c / 180;\n}\nfunction T(c, e, t) {\n const a = c * Math.cos(t) - e * Math.sin(t), o = c * Math.sin(t) + e * Math.cos(t);\n return [a, o];\n}\nfunction F(c, e, t, a, o, n, r, s, h, f) {\n const l = K(r);\n let k = [], i = 0, u = 0, y = 0, M = 0;\n if (f)\n [i, u, y, M] = f;\n else {\n [c, e] = T(c, e, -l), [t, a] = T(t, a, -l);\n const x = (c - t) / 2, b = (e - a) / 2;\n let w = x * x / (o * o) + b * b / (n * n);\n w > 1 && (w = Math.sqrt(w), o = w * o, n = w * n);\n const S = s === h ? -1 : 1, A = o * o, R = n * n, j = A * R - A * b * b - R * x * x, D = A * b * b + R * x * x, Z = S * Math.sqrt(Math.abs(j / D));\n y = Z * o * b / n + (c + t) / 2, M = Z * -n * x / o + (e + a) / 2, i = Math.asin(parseFloat(((e - M) / n).toFixed(9))), u = Math.asin(parseFloat(((a - M) / n).toFixed(9))), c < y && (i = Math.PI - i), t < y && (u = Math.PI - u), i < 0 && (i = Math.PI * 2 + i), u < 0 && (u = Math.PI * 2 + u), h && i > u && (i = i - Math.PI * 2), !h && u > i && (u = u - Math.PI * 2);\n }\n let p = u - i;\n if (Math.abs(p) > Math.PI * 120 / 180) {\n const x = u, b = t, w = a;\n h && u > i ? u = i + Math.PI * 120 / 180 * 1 : u = i + Math.PI * 120 / 180 * -1, t = y + o * Math.cos(u), a = M + n * Math.sin(u), k = F(t, a, b, w, o, n, r, 0, h, [u, x, y, M]);\n }\n p = u - i;\n const d = Math.cos(i), g = Math.sin(i), L = Math.cos(u), _ = Math.sin(u), I = Math.tan(p / 4), Q = 4 / 3 * o * I, V = 4 / 3 * n * I, q = [c, e], C = [c + Q * g, e - V * d], H = [t + Q * _, a - V * L], P = [t, a];\n if (C[0] = 2 * q[0] - C[0], C[1] = 2 * q[1] - C[1], f)\n return [C, H, P].concat(k);\n {\n k = [C, H, P].concat(k);\n const x = [];\n for (let b = 0; b < k.length; b += 3) {\n const w = T(k[b][0], k[b][1], l), S = T(k[b + 1][0], k[b + 1][1], l), A = T(k[b + 2][0], k[b + 2][1], l);\n x.push([w[0], w[1], S[0], S[1], A[0], A[1]]);\n }\n return x;\n }\n}\nconst W = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n absolutize: Y,\n normalize: J,\n parsePath: O,\n serialize: X\n}, Symbol.toStringTag, { value: \"Module\" })), { parsePath: v, absolutize: tt } = W, et = (c, e, t) => {\n let a, o = null, n = null;\n if (c.key === \"M\") {\n const [r, s] = c.data;\n return a = [r, s], { p: a };\n }\n if (c.key === \"H\") {\n const [r] = c.data;\n return a = [r, (e == null ? void 0 : e[1]) || 0], { p: a };\n }\n if (c.key === \"V\") {\n const [r] = c.data;\n return a = [(e == null ? void 0 : e[0]) || 0, r], { p: a };\n }\n if (c.key === \"L\") {\n const [r, s] = c.data;\n return a = [r, s], { p: a };\n }\n if (c.key === \"C\") {\n const [r, s, h, f, l, k] = c.data;\n return a = [l, k], o = [r, s], n = [h, f], {\n p: a,\n control1: o,\n control2: n\n };\n }\n if (c.key === \"S\") {\n const [r, s, h, f] = c.data;\n if (a = [h, f], n = [r, s], !e)\n throw new Error(\"S command without previous point\");\n if (o = e, t.control2) {\n const l = e;\n o = [\n l[0] + (l[0] - t.control2[0]),\n l[1] + (l[1] - t.control2[1])\n ];\n }\n return {\n p: a,\n control1: o,\n control2: n\n };\n }\n if (c.key === \"Q\") {\n const [r, s, h, f] = c.data;\n return a = [h, f], o = [r, s], {\n p: a,\n control1: o\n };\n }\n if (c.key === \"T\") {\n const [r, s] = c.data;\n if (a = [r, s], !e)\n throw new Error(\"T command without previous point\");\n if (o = e, t.control1 && !t.control2) {\n const h = e;\n o = [\n h[0] + (h[0] - t.control1[0]),\n h[1] + (h[1] - t.control1[1])\n ];\n }\n }\n if (c.key === \"A\") {\n const [r, s, h = 0, f = 0, l = 0, k, i] = c.data;\n if (a = [k, i], !e)\n throw new Error(\"A command without previous point\");\n const u = Math.sqrt(\n (e[0] - k) ** 2 + (e[1] - i) ** 2\n ), y = Math.max(r, s);\n let M = r, p = s;\n if (y < u / 2) {\n const d = u / 2 / y;\n M = r * d, p = s * d;\n }\n return {\n p: a,\n arcConfig: [M, p, h, !!f, !!l]\n };\n }\n throw new Error(`Unknown command ${c.key}`);\n};\nfunction* at(c) {\n const e = tt(v(c));\n let t = null, a = null, o = { control1: null, control2: null };\n for (const n of e) {\n if (n.key === \"Z\") {\n t && (yield t.close(!0)), t = null;\n continue;\n }\n const r = et(n, a, o), s = r.p, h = \"control1\" in r ? r.control1 : null, f = \"control1\" in r ? r.control2 : null, l = \"arcConfig\" in r ? r.arcConfig : null;\n if (n.key === \"M\") {\n t && (yield t.isClosed ? t.close() : t.asStrand()), t = E(s), a = s;\n continue;\n }\n if (a && Math.abs(s[0] - a[0]) < 1e-9 && Math.abs(s[1] - a[1]) < 1e-9) {\n a = s, o = { control1: h, control2: f };\n continue;\n }\n (n.key === \"L\" || n.key === \"H\" || n.key === \"V\") && (t == null || t.lineTo(s)), (n.key === \"C\" || n.key === \"S\") && (t == null || t.cubicBezierCurveTo(s, h, f)), (n.key === \"Q\" || n.key === \"T\") && (t == null || t.quadraticBezierCurveTo(s, h)), n.key === \"A\" && (t == null || t.ellipseTo(s, ...l)), a = s, o = { control1: h, control2: f };\n }\n t && (yield t.isClosed ? t.close() : t.asStrand());\n}\nfunction ht(c) {\n return Array.from(at(c));\n}\nexport {\n ct as drawCircle,\n rt as drawEllipse,\n lt as drawPolysides,\n ot as drawRect,\n ht as drawSVGPath\n};\n//# sourceMappingURL=drawShape.js.map\n","import { L as $, A as l, E as u, R as e, Q as f, C as h } from \"./QuadraticBezier-BeY2TXKH.js\";\nfunction o([t, n]) {\n return `${t} ${n}`;\n}\nfunction r(t) {\n if ($.isInstance(t))\n return `L ${o(t.lastPoint)}`;\n if (l.isInstance(t))\n return `A ${t.radius} ${t.radius} 0 ${t.angularLength > Math.PI ? \"1\" : \"0\"} ${t.clockwise ? \"0\" : \"1\"} ${o(t.lastPoint)}`;\n if (u.isInstance(t))\n return `A ${t.majorRadius} ${t.minorRadius} ${t.tiltAngle * e} ${t.deltaAngle > Math.PI ? \"1\" : \"0\"} ${t.clockwise ? \"0\" : \"1\"} ${o(t.lastPoint)}`;\n if (f.isInstance(t))\n return `Q ${[\n o(t.controlPoint),\n o(t.lastPoint)\n ].join(\" \")}`;\n if (h.isInstance(t))\n return `C ${[\n o(t.firstControlPoint),\n o(t.lastControlPoint),\n o(t.lastPoint)\n ].join(\" \")}`;\n throw new Error(\"Unknown segment type\");\n}\nfunction w(t) {\n const n = `M ${t.firstPoint.join(\" \")}`, i = t.segments.map(r).join(\" \");\n return `${n} ${i} Z`;\n}\nfunction p(t) {\n return `<path d=\"${t.allLoops.map(w).join(\" \")}\" />`;\n}\nfunction d(t) {\n return `<g>\n ${t.figures.map(p).join(`\n`)}\n</g>`;\n}\nfunction j(t) {\n const n = `M ${t.firstPoint.join(\" \")}`, i = t.segments.map(r).join(\" \");\n return `${n} ${i}`;\n}\nfunction v(t, n = 1) {\n const i = t.xMin - n, s = t.yMin - n;\n return `${i} ${s} ${t.width + 2 * n} ${t.height + 2 * n}`;\n}\nfunction A(t, n, i = 1, s) {\n const a = v(n, i), c = s ? `width=\"${n.width + 2 * i}${s}\" height=\"${n.height + 2 * i}${s}\"` : \"\";\n return `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"${a}\" fill=\"none\" stroke=\"grey\" stroke-width=\"0.2%\" vector-effect=\"non-scaling-stroke\" ${c}>\n ${t}\n</svg>`;\n}\nexport {\n p as a,\n w as b,\n j as c,\n r as d,\n v as e,\n d as s,\n A as w\n};\n//# sourceMappingURL=svg-BTO7h1ix.js.map\n","var Ut = Object.defineProperty;\nvar Vt = (t, n, e) => n in t ? Ut(t, n, { enumerable: !0, configurable: !0, writable: !0, value: e }) : t[n] = e;\nvar I = (t, n, e) => Vt(t, typeof n != \"symbol\" ? n + \"\" : n, e);\nimport { o as Ht, D as U, f as It } from \"./draw-DzKVhurb.js\";\nimport { a as oe, d as ce } from \"./draw-DzKVhurb.js\";\nimport { F as m, L as P, D as h, a as W, s as Kt, b as Nt, c as qt, i as Xt, S as b, l as Jt, p as Qt, d as Yt, e as Mt, g as St } from \"./models-BHeLX0dj.js\";\nimport { h as fe } from \"./models-BHeLX0dj.js\";\nimport { l as Zt, z as Wt, m as jt, e as E, n as j, b as F, a as tn, s as nn, o as en, q as At, L as v, A as y, C as _, p as it, u as N, d as q, T as rn, g as A, E as vt, Q as bt, t as sn, c as on, D as Lt, v as Et, B as cn } from \"./QuadraticBezier-BeY2TXKH.js\";\nimport { s as an, a as fn, b as un, c as ln, d as hn, w as ot } from \"./svg-BTO7h1ix.js\";\nfunction x(t) {\n if (m.isInstance(t))\n return [t];\n if (P.isInstance(t))\n return [new m(t)];\n if (h.isInstance(t))\n return t.figures;\n throw new Error(\"Unknown shape\");\n}\nfunction kt(t, n, e = 1e-9) {\n let r = [];\n const s = [], i = new Array(n.segments.length).fill(0).map(() => []);\n n.segments.forEach((c, f) => {\n t.segments.forEach((a) => {\n const { intersections: u, overlaps: g } = W(\n c,\n a,\n e\n );\n r.push(...u), i[f].push(...u), s.push(...g);\n const p = g.flatMap((d) => [\n d.firstPoint,\n d.lastPoint\n ]);\n r.push(...p), i[f].push(...p);\n });\n }), r = Zt(r, e);\n const o = Wt([n.segments, i]).flatMap(([c, f]) => f.length ? c.splitAt(f) : [c]);\n return Array.from(\n Kt(\n o,\n r,\n s\n )\n );\n}\nfunction tt(t, n, e = !1) {\n return kt(n, t).filter((s) => {\n const i = s.segments[0].midPoint;\n return n.onStroke(i) ? !e : !n.contains(i);\n });\n}\nfunction nt(t, n, e = !1) {\n return kt(n, t).filter((s) => {\n const i = s.segments[0].midPoint;\n return n.onStroke(i) ? !e : n.contains(i);\n });\n}\nfunction ct(t, n, e = !1) {\n const r = tt(\n t,\n n.contour,\n e\n ), s = n.holes.flatMap(\n (i) => nt(t, i, e)\n );\n return [...r, ...s];\n}\nfunction at(t, n, e = !1) {\n let r = nt(\n t,\n n.contour,\n e\n );\n return n.holes.forEach((s) => {\n r = r.flatMap(\n (i) => tt(i, s, e)\n );\n }), r;\n}\nfunction gn(t, n) {\n return new h(\n Nt(x(t), x(n))\n );\n}\nfunction z(t) {\n return t.reduce(\n (n, e) => gn(n, e),\n new h()\n );\n}\nfunction Ft(t, n) {\n return new h(\n qt(x(t), x(n))\n );\n}\nfunction Xn(t, n) {\n return new h(\n Xt(x(t), x(n))\n );\n}\nfunction Jn(t, n, e = !0) {\n if (P.isInstance(n))\n return tt(t, n, e);\n if (m.isInstance(n))\n return ct(t, n, e);\n let r = [new b([...t.segments])];\n return n.figures.forEach((s) => {\n r = r.flatMap((i) => ct(i, s, e));\n }), r;\n}\nfunction Qn(t, n, e = !1) {\n if (P.isInstance(n))\n return nt(t, n, e);\n if (m.isInstance(n))\n return at(t, n, e);\n let r = [new b([...t.segments])];\n return n.figures.forEach((s) => {\n r = r.flatMap((i) => at(i, s, e));\n }), r;\n}\nfunction ft(t) {\n return t < 0 ? \"before\" : t > 1 ? \"after\" : \"between\";\n}\nconst ut = (t, n, e) => {\n if (e === \"before\")\n return t.distanceFrom(n.firstPoint);\n if (e === \"after\")\n return t.distanceFrom(n.lastPoint);\n throw new Error(\"Invalid position\");\n};\nfunction pn(t, n) {\n const e = jt(t, n);\n if (e === \"parallel\")\n return Math.min(\n t.distanceFrom(n.firstPoint),\n t.distanceFrom(n.lastPoint)\n );\n const { intersectionParam1: r, intersectionParam2: s } = e, i = ft(r), o = ft(s);\n if (i === \"between\" && o === \"between\")\n return 0;\n if (i === \"between\" && o !== \"between\")\n return ut(t, n, o);\n if (o === \"between\" && i !== \"between\")\n return ut(n, t, i);\n if (i === \"before\" && o === \"before\")\n return E(t.firstPoint, n.firstPoint);\n if (i === \"after\" && o === \"after\")\n return E(t.lastPoint, n.lastPoint);\n if (i === \"before\" && o === \"after\")\n return E(t.firstPoint, n.lastPoint);\n if (i === \"after\" && o === \"before\")\n return E(t.lastPoint, n.firstPoint);\n throw new Error(\"Invalid position\");\n}\nfunction lt(t, n) {\n if (Jt(t, n).length > 0)\n return 0;\n const e = Qt(t, n.center);\n if (t.isOnSegment(e)) {\n const r = E(e, n.center);\n if (Math.abs(r - n.radius) < t.precision && n.isOnSegment(e))\n return 0;\n if (r - n.radius > t.precision) {\n const s = j(\n F(e, n.center)\n ), i = tn(\n n.center,\n nn(s, n.radius)\n );\n if (n.isOnSegment(i))\n return E(i, e);\n }\n }\n return Math.min(\n n.distanceFrom(t.firstPoint),\n n.distanceFrom(t.lastPoint),\n t.distanceFrom(n.firstPoint),\n t.distanceFrom(n.lastPoint)\n );\n}\nconst dn = (t, n) => {\n const e = t.angleToParam(n.firstAngle);\n if (t.isValidParameter(e)) return !0;\n const r = t.angleToParam(n.lastAngle);\n return !!t.isValidParameter(r);\n};\nfunction mn(t, n) {\n if (Yt(t, n, !0).length > 0) return 0;\n const e = E(t.center, n.center);\n if (e < t.precision && dn(t, n))\n return Math.abs(t.radius - n.radius);\n const r = j(F(n.center, t.center)), s = e - Math.abs(t.radius - n.radius) < t.precision;\n let i = en(r);\n s && n.radius > t.radius && (i += Math.PI);\n const o = s ? i : i + Math.PI, c = t.angleToParam(i), f = n.angleToParam(o);\n return t.isValidParameter(c) && n.isValidParameter(f) ? E(t.paramPoint(c), n.paramPoint(f)) : Math.min(\n t.distanceFrom(n.firstPoint),\n t.distanceFrom(n.lastPoint),\n n.distanceFrom(t.firstPoint),\n n.distanceFrom(t.lastPoint)\n );\n}\nfunction Pn(t, n, e) {\n let r = 0, s = t.length - 1;\n for (; r <= s; ) {\n const i = Math.floor((r + s) / 2), o = e(t[i], n);\n if (o < 0)\n r = i + 1;\n else if (o > 0)\n s = i - 1;\n else\n return i;\n }\n return -(r + 1);\n}\nfunction wn(t, n, e) {\n const r = Pn(t, n, e);\n r < 0 ? t.splice(-(r + 1), 0, n) : t.splice(r, 0, n);\n}\nclass In {\n constructor() {\n I(this, \"buckets\");\n this.buckets = [];\n }\n addInterval(n) {\n const e = this.buckets[n.rectangle.diagonalBucketIndex];\n e === void 0 ? this.buckets[n.rectangle.diagonalBucketIndex] = [n] : wn(e, n, (r, s) => r.value - s.value);\n }\n removeInterval(n) {\n const e = this.buckets[n.rectangle.diagonalBucketIndex];\n if (e === void 0)\n throw new Error(\"Interval not found\");\n e.shift();\n }\n getBottomRightHullIntervals() {\n const n = [];\n for (let e = this.buckets.length - 1; e >= 0; e--) {\n const r = this.buckets[e];\n if (!r === void 0) continue;\n const s = r[0];\n if (s !== void 0) {\n if (!n.length) {\n n.push(s);\n continue;\n }\n for (; n.length && n[n.length - 1].value >= s.value; )\n n.pop();\n for (; n.length >= 2; ) {\n const i = n[n.length - 1], o = n[n.length - 2], c = (s.value - o.value) / ((s.rectangle.diagonal - o.rectangle.diagonal) * 2);\n if (o.value + (i.rectangle.diagonal - o.rectangle.diagonal) / 2 * c < i.value)\n n.pop();\n else\n break;\n }\n n.push(s);\n }\n }\n return n;\n }\n}\nclass Mn {\n constructor(n, e) {\n I(this, \"diagonal\");\n I(this, \"diagonalBucketIndex\");\n I(this, \"xLength\");\n I(this, \"yLength\");\n I(this, \"index\");\n this.x = n, this.y = e, this.xLength = Math.pow(3, -n), this.yLength = Math.pow(3, -e), this.diagonal = Math.sqrt(\n this.xLength * this.xLength + this.yLength * this.yLength\n ), this.diagonalBucketIndex = n + e, this.index = `${n},${e}`;\n }\n}\nclass Sn {\n constructor(n, e = 1e-8, r = 1e3, s = 1e-6) {\n I(this, \"rectangles\");\n I(this, \"buckets\");\n I(this, \"fMin\");\n I(this, \"argMin\");\n I(this, \"tol\");\n this.fcn = n, this.endTolerance = e, this.maxIterations = r, this.epsilon = s, this.fcn = n, this.epsilon = s, this.endTolerance = e, this.maxIterations = r, this.rectangles = /* @__PURE__ */ new Map(), this.buckets = new In();\n const i = [0.5, 0.5], o = this.rect(0, 0), c = this.fcn(i);\n this.buckets.addInterval(new O(i, c, o)), this.fMin = c, this.argMin = i, this.tol = o.diagonal;\n }\n registerInterval(n) {\n this.buckets.addInterval(n), n.value <= this.fMin && (this.fMin = n.value, this.argMin = n.center, this.tol = n.rectangle.diagonal);\n }\n rect(n, e) {\n const r = `${n},${e}`;\n return this.rectangles.has(r) || this.rectangles.set(r, new Mn(n, e)), this.rectangles.get(r);\n }\n splitInterval(n) {\n let e, r, s;\n const [i, o] = n.center;\n return n.rectangle.x <= n.rectangle.y ? (e = this.rect(n.rectangle.x + 1, n.rectangle.y), r = [i - e.xLength, o], s = [i + e.xLength, o]) : (e = this.rect(n.rectangle.x, n.rectangle.y + 1), r = [i, o - e.yLength], s = [i, o + e.yLength]), [\n new O(r, this.fcn(r), e),\n new O(n.center, n.value, e),\n new O(s, this.fcn(s), e)\n ];\n }\n single_iteration() {\n const n = this.buckets.getBottomRightHullIntervals();\n for (; n.length >= 2; ) {\n const e = n[0], r = n[1], s = (r.value - e.value) / ((r.rectangle.diagonal - e.rectangle.diagonal) / 2), i = e.value - s * r.value / 2;\n if ((this.fMin - i) / Math.abs(this.fMin) < this.epsilon)\n n.shift();\n else\n break;\n }\n n.forEach((e) => {\n this.buckets.removeInterval(e);\n });\n for (const e of n) {\n const [r, s, i] = this.splitInterval(e);\n this.registerInterval(r), this.registerInterval(s), this.registerInterval(i);\n }\n }\n run() {\n let n = 0;\n for (; this.tol > this.endTolerance / 2 && (this.single_iteration(), n++, !(n > this.maxIterations)); )\n ;\n return {\n fMin: this.fMin,\n argMin: this.argMin,\n tol: this.tol,\n iterations: n\n };\n }\n}\nclass O {\n constructor(n, e, r) {\n this.center = n, this.value = e, this.rectangle = r;\n }\n}\nfunction An(t, n = 1e-8, e = 1e3, r = 1e-6) {\n return new Sn(\n t,\n n,\n e,\n r\n ).run();\n}\nfunction vn(t, n, e = 1e-9) {\n const r = An((s) => {\n const i = t.paramPoint(s[0]), o = n.paramPoint(s[1]);\n return At(i, o);\n }, e);\n return Math.sqrt(r.fMin);\n}\nfunction bn(t, n) {\n return v.isInstance(t) && v.isInstance(n) ? pn(t, n) : v.isInstance(t) && y.isInstance(n) ? lt(t, n) : y.isInstance(t) && v.isInstance(n) ? lt(n, t) : y.isInstance(t) && y.isInstance(n) ? mn(t, n) : vn(t, n);\n}\nfunction xt(t) {\n if (_.isInstance(t)) {\n const s = F(t.lastPoint, t.firstPoint), i = F(t.firstControlPoint, t.firstPoint), o = F(t.lastControlPoint, t.firstPoint), c = N(s, i), f = N(s, o);\n if (c > 0 && f < 0 || c < 0 && f > 0) return !1;\n }\n const n = it(t.tangentAtFirstPoint), e = it(t.tangentAtLastPoint);\n let r = q(n, e);\n return Math.abs(Math.acos(r)) < Math.PI / 3;\n}\nfunction X(t) {\n if (xt(t)) return [t];\n const [n, e] = t.splitAtParameters([0.5]);\n return [\n ...X(n),\n ...X(e)\n ];\n}\nfunction ht(t) {\n return xt(t) ? [t] : t.splitAtParameters(t.getParametersOfExtrema()).flatMap(X);\n}\nfunction Ln(t) {\n const n = t.deltaAngle, e = Math.ceil(Math.abs(n) / (Math.PI / 2)), r = n / e, s = 4 * Math.tan(r / 4) / 3, i = t.clockwise ? -1 : 1, o = Array.from(\n { length: e + 1 },\n (f, a) => t.firstAngle + a * r * i\n );\n return o.slice(0, -1).map((f, a) => [f, o[a + 1]]).map(([f, a]) => {\n const u = Math.cos(f), g = Math.sin(f), p = Math.cos(a), d = Math.sin(a), [l, M] = t.center, w = t.minorRadius, S = t.majorRadius, L = new rn().rotate(\n t.tiltAngle,\n t.center\n ), k = ($t) => L.transform($t), D = k([l + S * u, M + w * g]), $ = k([\n l + S * (u - s * g * i),\n M + w * (g + s * u * i)\n ]), Gt = k([\n l + S * (p + s * d * i),\n M + w * (d - s * p * i)\n ]), _t = k([l + S * p, M + w * d]);\n return new _(D, _t, $, Gt);\n });\n}\nconst et = 1e-8, yt = (t) => t.flatMap((n) => v.isInstance(n) ? [n] : y.isInstance(n) ? [n] : vt.isInstance(n) ? Ln(n).flatMap(\n (e) => ht(e)\n) : bt.isInstance(n) || _.isInstance(n) ? ht(n) : [new v(n.firstPoint, n.lastPoint)]);\nfunction J(t, n, e = !0) {\n const r = t.map((a) => ({\n offset: Ht(a, n),\n original: a\n })), s = [];\n let i = e ? null : r.at(-1), o = e ? r.at(-1) : null;\n if (s.length === 1) return s;\n const c = (a) => {\n i ? U.isInstance(a.offset) ? A(a.offset.firstPoint, a.offset.lastPoint) || s.push(\n new v(a.offset.firstPoint, a.offset.lastPoint)\n ) : s.push(a.offset) : i = a;\n }, f = function* () {\n for (const a of r.slice(0, -1))\n yield a;\n if (!i) throw new Error(\"Bug in the offset algorithm\");\n yield i;\n };\n for (const a of f()) {\n if (!o) {\n o = a;\n continue;\n }\n const u = o.offset.lastPoint, g = a.offset.firstPoint;\n if (A(u, g)) {\n c(o), o = a;\n continue;\n }\n let p = [];\n if (!U.isInstance(o.offset) && !U.isInstance(a.offset)) {\n const { intersections: w, overlaps: S } = W(\n o.offset,\n a.offset,\n et / 100\n );\n p = [\n ...w,\n ...S.flatMap((L) => [L.firstPoint, L.lastPoint])\n ];\n }\n if (p.length > 0) {\n let w = p[0];\n if (p.length > 1) {\n const k = o == null ? void 0 : o.original.lastPoint, D = p.map(\n ($) => At($, k)\n );\n w = p[D.indexOf(Math.min(...D))];\n }\n const S = o.offset.splitAt([\n w\n ])[0], L = a.offset.splitAt([w]).at(-1);\n if (!L) throw new Error(\"Bug in the splitting algo in offset\");\n c({\n offset: S,\n original: o.original\n }), o = { offset: L, original: a.original };\n continue;\n }\n const d = o.original.lastPoint, l = on(\n F(g, d),\n F(u, d)\n ) > 0, M = new y(u, g, d, l);\n c(o), s.push(M), o = a;\n }\n return o && c(o), s;\n}\nfunction Ct(t) {\n const n = /* @__PURE__ */ new Map(), e = (r, s) => {\n const i = n.get(r) || [];\n n.set(r, [...i, ...s]);\n };\n return t.forEach((r, s) => {\n t.slice(s + 1).forEach((i, o) => {\n const { intersections: c, overlaps: f } = W(r, i, et), a = [\n ...c,\n ...f.flatMap((u) => [u.firstPoint, u.lastPoint])\n ].filter((u) => {\n const g = A(u, r.firstPoint) || A(u, r.lastPoint), p = A(u, i.firstPoint) || A(u, i.lastPoint);\n return !(g && p);\n });\n a.length && (e(s, a), e(o + s + 1, a));\n });\n }), n;\n}\nfunction Dt(t, n) {\n return n.flatMap((e, r) => {\n if (!t.has(r)) return e;\n const s = t.get(r);\n return s ? e.splitAt(s) : e;\n });\n}\nfunction Ot(t, n, e) {\n return t.filter((r) => !n.segments.some((i) => bn(i, r) < Math.abs(e) - et));\n}\nfunction G(t, n) {\n const e = t.clockwise ? n : -n, r = yt(t.segments), s = J(r, e);\n if (s.length < 2) return new h();\n const i = Ct(s);\n if (!i.size) {\n const u = new P(s);\n return new h([new m(u)]);\n }\n const o = Dt(\n i,\n s\n ), c = Ot(o, t, n);\n if (!c.length) return new h();\n const a = Mt(c).filter((u) => u.length > 1).filter((u) => A(u[0].firstPoint, u.at(-1).lastPoint)).map((u) => new P(u));\n return a.length ? new h(a.map((u) => new m(u))) : new h();\n}\nfunction En(t, n, e = \"round\") {\n const r = n / 2, s = yt(t.segments), i = J(s, r, !1), o = J(\n s,\n -r,\n !1\n ).map((l) => l.reverse());\n o.reverse();\n const c = (l, M) => e === \"round\" ? sn(\n l.lastPoint,\n M.firstPoint,\n l.tangentAtLastPoint\n ) : new v(l.lastPoint, M.firstPoint), f = [\n ...i,\n c(\n i[i.length - 1],\n o[0]\n ),\n ...o,\n c(\n o[o.length - 1],\n i[0]\n )\n ], a = Ct(f);\n if (!a.size) {\n const l = new P(f);\n return new h([new m(l)]);\n }\n const u = Dt(\n a,\n f\n ), g = Ot(u, t, r);\n if (!g.length) return new h();\n const d = Mt(g).filter((l) => l.length > 1).filter((l) => A(l[0].firstPoint, l.at(-1).lastPoint)).map((l) => new P(l));\n return d.length ? new h(d.map((l) => new m(l))) : new h();\n}\nfunction kn(t, n) {\n const e = t.map((r) => {\n const s = z(\n r.holes.map((i) => G(i, n))\n );\n return Ft(G(r.contour, n), s);\n });\n return z(e);\n}\nfunction Fn(t, n) {\n const e = Math.abs(n / 2), r = t.map(\n (s) => z(\n s.allLoops.map((i) => Ft(G(i, e), G(i, -e)))\n )\n );\n return z(r);\n}\nfunction Yn(t, n) {\n return kn(x(t), n);\n}\nfunction Zn(t, n, { endCap: e = \"round\" } = {}) {\n return b.isInstance(t) ? En(t, n, e) : Fn(x(t), n);\n}\nclass xn {\n constructor() {\n I(this, \"filters\");\n this.filters = [];\n }\n delete() {\n this.filters = [];\n }\n /**\n * Combine logically a set of filter with an AND operation.\n *\n */\n and(n) {\n return n.forEach((e) => e(this)), this;\n }\n /**\n * Invert the result of a particular filter\n *\n */\n not(n) {\n const e = new this.constructor();\n n(e);\n const r = ({ element: s }) => !e.shouldKeep(s);\n return this.filters.push(r), this;\n }\n /**\n * Combine logically a set of filter with an OR operation.\n *\n */\n either(n) {\n const e = n.map((s) => {\n const i = new this.constructor();\n return s(i), i;\n }), r = ({ element: s }) => e.some((i) => i.shouldKeep(s));\n return this.filters.push(r), this;\n }\n}\nconst V = 2 * Math.PI, gt = (t) => {\n const n = t % V, e = n < 0 ? n + V : n;\n return e < Math.PI ? e : e === Math.PI ? 0 : Math.abs(e - V);\n};\nclass C extends xn {\n clone() {\n const n = new C();\n return n.filters = [...this.filters], n;\n }\n /**\n * Filter to find corner that have their point are in the list.\n *\n */\n inList(n) {\n const e = ({ element: r }) => !!n.find((s) => A(s, r.point));\n return this.filters.push(e), this;\n }\n /**\n * Filter to find elements that are at a specified distance from a point.\n *\n */\n atDistance(n, e = [0, 0]) {\n function r({ element: s }) {\n return Math.abs(E(e, s.point) - n) < 1e-9;\n }\n return this.filters.push(r), this;\n }\n /**\n * Filter to find elements that contain a certain point\n *\n * @category Filter\n */\n atPoint(n) {\n function e({ element: r }) {\n return A(n, r.point);\n }\n return this.filters.push(e), this;\n }\n /**\n * Filter to find elements that are within a box\n *\n * @category Filter\n */\n inBox(n, e) {\n const [r, s] = n, [i, o] = e, c = Math.min(r, i), f = Math.max(r, i), a = Math.min(s, o), u = Math.max(s, o);\n function g({ element: p }) {\n const [d, l] = p.point;\n return d >= c && d <= f && l >= a && l <= u;\n }\n return this.filters.push(g), this;\n }\n /**\n * Filter to find corner that a certain angle between them - only between\n * 0 and 180.\n *\n */\n ofAngle(n) {\n function e({ element: r }) {\n const s = r.firstCurve.tangentAtLastPoint, i = r.secondCurve.tangentAtFirstPoint;\n return Math.abs(\n gt(N(s, i)) - gt(Lt * n)\n ) < 1e-9;\n }\n return this.filters.push(e), this;\n }\n above(n = 0) {\n function e({ element: r }) {\n return r.point[1] > n;\n }\n return this.filters.push(e), this;\n }\n below(n = 0) {\n function e({ element: r }) {\n return r.point[1] < n;\n }\n return this.filters.push(e), this;\n }\n leftOf(n = 0) {\n function e({ element: r }) {\n return r.point[0] < n;\n }\n return this.filters.push(e), this;\n }\n rightOf(n = 0) {\n function e({ element: r }) {\n return r.point[0] > n;\n }\n return this.filters.push(e), this;\n }\n shouldKeep(n) {\n return this.filters.every((r) => r({ element: n }));\n }\n asFilterFun() {\n return this.shouldKeep.bind(this);\n }\n}\nfunction Bt(t, n, e, r = () => !0) {\n const s = [n.segments[0]], i = (c, f) => {\n r({ firstCurve: c, secondCurve: f, point: c.lastPoint }) ? s.push(...t(c, f, e)) : s.push(c, f);\n };\n if (n.segments.slice(1).forEach((c) => {\n const f = s.pop();\n if (!f) throw new Error(\"Bug in the stroke filletting algo\");\n i(f, c);\n }), !s.at(-1)) throw new Error(\"Bug in the stroke corner algo\");\n if (P.isInstance(n)) {\n const c = s.pop(), f = s.shift();\n if (!c || !f)\n throw new Error(\"Bug in the filletting algo\");\n return i(c, f), new P(s, { ignoreChecks: !0 });\n } else\n return new b(s, { ignoreChecks: !0 });\n}\nfunction R(t, n, e) {\n const r = typeof e == \"function\" ? e(new C()) : e, s = r && r.asFilterFun();\n if (P.isInstance(t) || b.isInstance(t))\n return Bt(It, t, n, s);\n if (m.isInstance(t)) {\n const i = R(t.contour, n, r), o = t.holes.map((c) => R(c, n, r));\n return new m(i, o, { ignoreChecks: !0 });\n }\n if (h.isInstance(t)) {\n const i = t.figures.map((o) => R(o, n, r));\n return new h(i, { ignoreChecks: !0 });\n }\n throw new Error(\"invalid shape to fillet\");\n}\nfunction T(t, n, e) {\n const r = typeof e == \"function\" ? e(new C()) : e, s = r && r.asFilterFun();\n if (P.isInstance(t) || b.isInstance(t))\n return Bt(It, t, n, s);\n if (m.isInstance(t)) {\n const i = T(t.contour, n, r), o = t.holes.map((c) => T(c, n, r));\n return new m(i, o, { ignoreChecks: !0 });\n }\n if (h.isInstance(t)) {\n const i = t.figures.map((o) => T(o, n, r));\n return new h(i, { ignoreChecks: !0 });\n }\n throw new Error(\"invalid shape to chamfer\");\n}\nclass yn extends C {\n constructor(n) {\n super(), this.shape = n;\n }\n fillet(n) {\n return R(this.shape, n, this.clone());\n }\n chamfer(n) {\n return T(this.shape, n, this.clone());\n }\n}\nfunction Wn(t) {\n return new yn(t);\n}\nconst Cn = 1 * Lt, Dn = 24;\nfunction H(t, n, e, r) {\n const s = t.gradientAt(n);\n return Et(s) <= r ? e : j(s);\n}\nfunction Q(t, n, e, r, s, i) {\n const o = t.paramPoint(n), c = t.paramPoint(e), f = F(c, o), a = Et(f);\n if (a <= t.precision || i >= r.maxDepth)\n return [o, c];\n const u = [f[0] / a, f[1] / a], g = (n + e) * 0.5, p = H(t, n, u, t.precision), d = H(t, g, u, t.precision), l = H(t, e, u, t.precision), M = q(p, d), w = q(d, l);\n if (M >= s && w >= s)\n return [o, c];\n const S = t.paramPoint(g), L = M >= s ? [o, S] : Q(t, n, g, r, s, i + 1), k = w >= s ? [S, c] : Q(t, g, e, r, s, i + 1);\n return [...L.slice(0, -1), ...k];\n}\nfunction rt(t, n = {}) {\n const e = {\n maxAngle: n.maxAngle ?? Cn,\n maxDepth: n.maxDepth ?? Dn\n }, r = Math.cos(e.maxAngle);\n return Q(t, 0, 1, e, r, 0);\n}\nfunction On(t, n) {\n return new h(\n t.figures.map((e) => Rt(e, n))\n );\n}\nfunction Rt(t, n) {\n return new m(\n Y(t.contour, n),\n t.holes.map((e) => Y(e, n))\n );\n}\nfunction Y(t, n) {\n return new P(st(t.segments, n));\n}\nfunction Bn(t, n) {\n return new b(st(t.segments, n));\n}\nfunction st(t, n) {\n return t.flatMap(n);\n}\nfunction Rn(t, n) {\n if (h.isInstance(t))\n return On(t, n);\n if (m.isInstance(t))\n return Rt(t, n);\n if (P.isInstance(t))\n return Y(t, n);\n if (b.isInstance(t))\n return Bn(t, n);\n if (St(t))\n return st([t], n);\n throw new Error(\"Unsupported shape type\");\n}\nfunction Tn(t) {\n if (t.length < 2) return [];\n const n = [];\n for (let e = 0; e < t.length - 1; e += 1)\n n.push(new v(t[e], t[e + 1]));\n return n;\n}\nfunction zn(t, n) {\n return Tn(rt(t, n));\n}\nfunction B(t, n) {\n const e = [];\n return t.forEach((r, s) => {\n const i = rt(r, n);\n if (i.length !== 0) {\n if (s === 0) {\n e.push(...i);\n return;\n }\n e.push(...i.slice(1));\n }\n }), e.length > 1 && A(e[0], e[e.length - 1]) && e.pop(), e;\n}\nfunction Gn(t) {\n return t.length < 3 ? !1 : t.map((e, r) => {\n const s = t[(r + 1) % t.length];\n return (s[0] - e[0]) * (s[1] + e[1]);\n }).reduce((e, r) => e + r, 0) > 0;\n}\nfunction K(t, n) {\n return t.length < 3 || Gn(t) === n ? t : [...t].reverse();\n}\nfunction jn(t, n = {}) {\n return Rn(t, (r) => zn(r, n));\n}\nfunction _n(t, n = {}) {\n if (h.isInstance(t))\n return t.figures.flatMap((e) => _n(e, n));\n if (m.isInstance(t)) {\n const e = K(\n B(t.contour.segments, n),\n !1\n ), r = t.holes.map(\n (s) => K(B(s.segments, n), !0)\n );\n return [e, ...r];\n }\n return P.isInstance(t) ? [K(B(t.segments, n), !1)] : b.isInstance(t) ? [B(t.segments, n)] : [rt(t, n)];\n}\nfunction pt(t) {\n if (h.isInstance(t))\n return an(t);\n if (m.isInstance(t))\n return fn(t);\n if (P.isInstance(t))\n return `<path d=\"${un(t)}\" />`;\n if (b.isInstance(t))\n return `<path d=\"${ln(t)}\" />`;\n if (St(t))\n return `<path d=\"${`M ${t.firstPoint.join(\" \")}`} ${hn(\n t\n )}\" />`;\n throw new Error(\"Unknown shape type\");\n}\nconst dt = (t) => \"shape\" in t ? t.shape : t, mt = (t, n) => {\n if (!(\"shape\" in t)) return n;\n const { color: e } = t;\n return e ? `<g stroke=\"${e}\">${n}</g>` : n;\n}, Pt = (t) => new cn(t.xMin, -t.yMax, t.xMax, -t.yMin);\nfunction te(t, {\n margin: n = 1,\n unit: e = null,\n viewBox: r\n} = {}) {\n if (Array.isArray(t)) {\n const i = t.map((f) => dt(f).mirror()), o = i.map((f, a) => mt(t[a], pt(f))).join(`\n`), c = i.slice(1).reduce((f, a) => f.merge(a.boundingBox), i[0].boundingBox);\n return ot(o, r ? Pt(r) : c, n, e);\n }\n const s = dt(t).mirror();\n return ot(\n mt(t, pt(s)),\n r ? Pt(r) : s.boundingBox,\n n,\n e\n );\n}\nconst Tt = (t) => {\n if (t.type === \"LINE\")\n return new v(t.firstPoint, t.lastPoint);\n if (t.type === \"ARC\")\n return new y(\n t.firstPoint,\n t.lastPoint,\n t.center,\n t.clockwise\n );\n if (t.type === \"ELLIPSE_ARC\")\n return new vt(\n t.firstPoint,\n t.lastPoint,\n t.center,\n t.majorRadius,\n t.minorRadius,\n t.tiltAngle,\n t.clockwise,\n { angleUnits: \"rad\" }\n );\n if (t.type === \"QUADRATIC_BEZIER\")\n return new bt(\n t.firstPoint,\n t.lastPoint,\n t.controlPoint\n );\n if (t.type === \"CUBIC_BEZIER\")\n return new _(\n t.firstPoint,\n t.lastPoint,\n t.firstControlPoint,\n t.lastControlPoint\n );\n throw new Error(\"Unknown segment type\");\n}, Z = (t) => {\n const n = t.segments.map(Tt);\n return new P(n);\n}, zt = (t) => {\n const n = Z(t.contour), e = t.holes.map(Z);\n return new m(n, e);\n}, $n = (t) => {\n const n = t.figures.map(zt);\n return new h(n);\n};\nfunction ne(t) {\n if (t.type === \"DIAGRAM\")\n return $n(t);\n if (t.type === \"FIGURE\")\n return zt(t);\n if (t.type === \"LOOP\")\n return Z(t);\n if (t.type === \"LINE\" || t.type === \"ARC\" || t.type === \"ELLIPSE_ARC\" || t.type === \"CUBIC_BEZIER\")\n return Tt(t);\n throw new Error(\"Unknown shape type\");\n}\nconst wt = Math.PI / 180, Un = 180 / Math.PI;\nfunction ee(t, n) {\n const e = Math.cos(n * wt) * t, r = Math.sin(n * wt) * t;\n return [e, r];\n}\nfunction re([t, n]) {\n const e = Math.sqrt(t * t + n * n), r = Math.atan2(n, t) * Un;\n return [e, r];\n}\nexport {\n wt as DEG2RAD,\n oe as DrawingPen,\n Un as RAD2DEG,\n re as cartesianToPolar,\n T as chamfer,\n Qn as confineStrand,\n Ft as cut,\n ce as draw,\n Jn as eraseStrand,\n fe as exportJSON,\n te as exportSVG,\n R as fillet,\n gn as fuse,\n z as fuseAll,\n ne as importJSON,\n Xn as intersect,\n Yn as offset,\n Zn as outlineStroke,\n ee as polarToCartesian,\n Wn as selectCorners,\n pt as svgBody,\n jn as tesselate,\n _n as tesselatePoints\n};\n//# sourceMappingURL=pantograph.js.map\n",null],"names":["oe","ht","le","Dt","he","Ot","ce","mt","fe","Z","Y","it","Q","Tt","pn","nt","Rt","J","St","dn","H","It","tt","Qt","yt","et","Ft","Kt","wt","Zt","me","yn","at","Bt","Mn","ct","Pn","zt","$","Ct","st","Ut","Ie","ot","lt","Pt","bt","ae","Yt","Ht","Mt","_","N","At","ue","dt","K","Jt","pt","te","ft","rt","ut","vt","ee","pe","Xt","Gt","Wt","on","ln","qt","kt","En","gt","de","gn","_n","mn","jt","In","k","un","z","wn","x","xn","j","P","cn","Nt","Sn","C","bn","an","Cn","An","fn","hn","Fn","vn","Bn","kn","A","M","On","xt","Ln","Tn","W","zn","Dn","Rn","y","Vt","V","jn","Un","$n","Yn","Xn","Gn","Qn","O","v","Wn","Jn","Zn","B","ne","re","X","G","m","b","l","u","d","w","D","q","T","I","S","R","F","U","E","e","f","h","tn","nn","en","rn","sn","Lt","Et","Line","Arc","EllipseArc","QuadraticBezier","CubicBezier","Diagram","Figure","Loop","svgLoop","Strand","svgStrand","isSegment","svgSegmentToPath","svgViewbox","exportJSON","cut","fuse","intersect","fillet","chamfer","exportSVG","offset","DrawingPen","drawShape.drawCircle","drawShape.drawRect","drawShape.drawEllipse","drawShape.drawPolysides"],"mappings":"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AAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AACtmC,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC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GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9b,QAAQ,CAAC,EAAE;AACX,MAAM,KAAK,CAAC,GAAG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G,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAClJ,IAAI,IAAI,CAAC,IAAI,CAAC;AACd,MAAM;AACN,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAC3V,IAAI,IAAI,EAAE,GAAG,CAAC;AACd,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,E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,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG;AAC9M,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AACzH,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7P,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AACjX,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AAC9P,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG;AACxH,GAAG,EAAE,CAAC,GAAGiD,EAAE;AACX,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;AAClC,IAAI;AACJ,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;AACnB,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AACnD,IAAI,IAAI,CAAC;AACT,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAChG,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;AACrG,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACvB,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;AACf,MAAM,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5B,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACrC;AACA,IAAI,OAAO,EAAE;AACb,GAAG,CAAC;AACJ,EAAE,OAAOH,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAChB;AACA,SAASb,IAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AAClB,EAAE,OAAOjC,IAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACrE;AACA,MAAMkD,IAAE,GAAG,CAAC,CAAC,KAAK;AAClB,EAAE,MAAM;AACR,IAAI,UAAU,EAAE,CAAC;AACjB,IAAI,SAAS,EAAE,CAAC;AAChB,IAAI,MAAM,EAAE,CAAC;AACb,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,SAAS,EAAE,CAAC;AAChB,IAAI,SAAS,EAAE;AACf,GAAG,GAAG,CAAC;AACP,EAAE,OAAO,IAAIC,IAAC;AACd,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI;AACJ,MAAM,YAAY,EAAE,CAAC,CAAC;AACtB,MAAM,UAAU,EAAE;AAClB;AACA,GAAG;AACH,CAAC,EAAE7D,IAAE,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAClB,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACjB,IAAI,OAAO,CAAC,CAAC,CAAC;AACd,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI6D,IAAC;AAC3B,IAAI,CAAC;AACL,IAAI,CAAC;AACL,IAAI,CAAC,CAAC,MAAM;AACZ,IAAI,CAAC,CAAC,WAAW;AACjB,IAAI,CAAC,CAAC,WAAW;AACjB,IAAI,CAAC,CAAC,SAAS;AACf,IAAI,CAAC,CAAC,SAAS;AACf,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK;AACzC,GAAG,EAAE,CAAC,GAAGL,EAAC;AACV,IAAI;AACJ,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,IAAI;AACvD,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,IAAI;AACrD,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,IAAI;AACvD,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG;AACjD,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI;AAC9B;AACA;AACA,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACzD,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE;AAC/B,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE;AAC/B,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;AACpB,IAAI,OAAO,CAAC,CAAC,MAAM,CAACI,IAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACtB,IAAI,MAAM,CAAC,GAAGH,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,IAAIA,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;AACnE,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClC,GAAG,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;AAC3B,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,EAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC;AACzE,CAAC;AACD,SAASK,IAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC1B,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC;AAC9C,EAAE,OAAOL,GAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAGzD,IAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,GAAGU,IAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC3T;AACA,SAASI,IAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AAClB,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,GAAG,IAAIiD,IAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAClK,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC9G;AACA,MAAMC,IAAE,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK;AAC5B,EAAE,IAAI,CAAC,GAAG,CAAC;AACX,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AACD,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE;AACzB,EAAE,OAAO,KAAK,CAAC,IAAI;AACnB,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAACA,IAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AAC/C,GAAG;AACH;AACA,MAAM7D,IAAE,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AACrB,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,sBAAsB,EAAE,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,E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"}
|