import { w as e } from "./src-BEYP07TO.js";
import { A as t, B as n, F as r, H as i, O as a, R as o, S as s, U as c, V as l, b as u, c as d, g as ee, i as te, j as f, l as p, n as m, p as h, r as ne, s as re, t as ie, u as g, y as ae } from "./isArrayLikeObject-uEhZQuCW.js";
import { n as _, r as v } from "./src-hxErHTV1.js";
import { I as y, f as oe, m as b, r as se, s as x } from "./chunk-7R4GIKGN-DiZ1HYFd.js";
import "./math--xT1IZMK.js";
import { t as ce } from "./dist-CSE7pO-4.js";
//#region node_modules/lodash-es/isPlainObject.js
var le = "[object Object]", ue = Function.prototype, de = Object.prototype, S = ue.toString, fe = de.hasOwnProperty, pe = S.call(Object);
function me(e) {
	if (!i(e) || c(e) != le) return !1;
	var t = p(e);
	if (t === null) return !0;
	var n = fe.call(t, "constructor") && t.constructor;
	return typeof n == "function" && n instanceof n && S.call(n) == pe;
}
//#endregion
//#region node_modules/lodash-es/_assignMergeValue.js
function C(e, n, r) {
	(r !== void 0 && !t(e[n], r) || r === void 0 && !(n in e)) && f(e, n, r);
}
//#endregion
//#region node_modules/lodash-es/_safeGet.js
function w(e, t) {
	if (!(t === "constructor" && typeof e[t] == "function") && t != "__proto__") return e[t];
}
//#endregion
//#region node_modules/lodash-es/toPlainObject.js
function he(e) {
	return a(e, h(e));
}
//#endregion
//#region node_modules/lodash-es/_baseMergeDeep.js
function ge(e, t, i, a, s, c, d) {
	var f = w(e, i), p = w(t, i), m = d.get(p);
	if (m) {
		C(e, i, m);
		return;
	}
	var h = c ? c(f, p, i + "", e, t, d) : void 0, g = h === void 0;
	if (g) {
		var _ = l(p), v = !_ && ae(p), y = !_ && !v && ee(p);
		h = p, _ || v || y ? l(f) ? h = f : ie(f) ? h = r(f) : v ? (g = !1, h = re(p, !0)) : y ? (g = !1, h = te(p, !0)) : h = [] : me(p) || u(p) ? (h = f, u(f) ? h = he(f) : (!n(f) || o(f)) && (h = ne(p))) : g = !1;
	}
	g && (d.set(p, h), s(h, p, a, c, d), d.delete(p)), C(e, i, h);
}
//#endregion
//#region node_modules/lodash-es/_baseMerge.js
function _e(e, t, r, i, a) {
	e !== t && m(t, function(o, s) {
		if (a ||= new d(), n(o)) ge(e, t, s, r, _e, i, a);
		else {
			var c = i ? i(w(e, s), o, s + "", e, t, a) : void 0;
			c === void 0 && (c = o), C(e, s, c);
		}
	}, h);
}
//#endregion
//#region node_modules/lodash-es/merge.js
var ve = s(function(e, t, n) {
	_e(e, t, n);
});
//#endregion
//#region node_modules/d3-shape/src/curve/linear.js
function ye(e) {
	this._context = e;
}
ye.prototype = {
	areaStart: function() {
		this._line = 0;
	},
	areaEnd: function() {
		this._line = NaN;
	},
	lineStart: function() {
		this._point = 0;
	},
	lineEnd: function() {
		(this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
	},
	point: function(e, t) {
		switch (e = +e, t = +t, this._point) {
			case 0:
				this._point = 1, this._line ? this._context.lineTo(e, t) : this._context.moveTo(e, t);
				break;
			case 1: this._point = 2;
			default:
				this._context.lineTo(e, t);
				break;
		}
	}
};
function be(e) {
	return new ye(e);
}
//#endregion
//#region node_modules/d3-shape/src/curve/bump.js
var xe = class {
	constructor(e, t) {
		this._context = e, this._x = t;
	}
	areaStart() {
		this._line = 0;
	}
	areaEnd() {
		this._line = NaN;
	}
	lineStart() {
		this._point = 0;
	}
	lineEnd() {
		(this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
	}
	point(e, t) {
		switch (e = +e, t = +t, this._point) {
			case 0:
				this._point = 1, this._line ? this._context.lineTo(e, t) : this._context.moveTo(e, t);
				break;
			case 1: this._point = 2;
			default:
				this._x ? this._context.bezierCurveTo(this._x0 = (this._x0 + e) / 2, this._y0, this._x0, t, e, t) : this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + t) / 2, e, this._y0, e, t);
				break;
		}
		this._x0 = e, this._y0 = t;
	}
};
function T(e) {
	return new xe(e, !0);
}
function E(e) {
	return new xe(e, !1);
}
//#endregion
//#region node_modules/d3-shape/src/noop.js
function D() {}
//#endregion
//#region node_modules/d3-shape/src/curve/basis.js
function O(e, t, n) {
	e._context.bezierCurveTo((2 * e._x0 + e._x1) / 3, (2 * e._y0 + e._y1) / 3, (e._x0 + 2 * e._x1) / 3, (e._y0 + 2 * e._y1) / 3, (e._x0 + 4 * e._x1 + t) / 6, (e._y0 + 4 * e._y1 + n) / 6);
}
function k(e) {
	this._context = e;
}
k.prototype = {
	areaStart: function() {
		this._line = 0;
	},
	areaEnd: function() {
		this._line = NaN;
	},
	lineStart: function() {
		this._x0 = this._x1 = this._y0 = this._y1 = NaN, this._point = 0;
	},
	lineEnd: function() {
		switch (this._point) {
			case 3: O(this, this._x1, this._y1);
			case 2:
				this._context.lineTo(this._x1, this._y1);
				break;
		}
		(this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
	},
	point: function(e, t) {
		switch (e = +e, t = +t, this._point) {
			case 0:
				this._point = 1, this._line ? this._context.lineTo(e, t) : this._context.moveTo(e, t);
				break;
			case 1:
				this._point = 2;
				break;
			case 2: this._point = 3, this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6);
			default:
				O(this, e, t);
				break;
		}
		this._x0 = this._x1, this._x1 = e, this._y0 = this._y1, this._y1 = t;
	}
};
function A(e) {
	return new k(e);
}
//#endregion
//#region node_modules/d3-shape/src/curve/basisClosed.js
function j(e) {
	this._context = e;
}
j.prototype = {
	areaStart: D,
	areaEnd: D,
	lineStart: function() {
		this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN, this._point = 0;
	},
	lineEnd: function() {
		switch (this._point) {
			case 1:
				this._context.moveTo(this._x2, this._y2), this._context.closePath();
				break;
			case 2:
				this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3), this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3), this._context.closePath();
				break;
			case 3:
				this.point(this._x2, this._y2), this.point(this._x3, this._y3), this.point(this._x4, this._y4);
				break;
		}
	},
	point: function(e, t) {
		switch (e = +e, t = +t, this._point) {
			case 0:
				this._point = 1, this._x2 = e, this._y2 = t;
				break;
			case 1:
				this._point = 2, this._x3 = e, this._y3 = t;
				break;
			case 2:
				this._point = 3, this._x4 = e, this._y4 = t, this._context.moveTo((this._x0 + 4 * this._x1 + e) / 6, (this._y0 + 4 * this._y1 + t) / 6);
				break;
			default:
				O(this, e, t);
				break;
		}
		this._x0 = this._x1, this._x1 = e, this._y0 = this._y1, this._y1 = t;
	}
};
function Se(e) {
	return new j(e);
}
//#endregion
//#region node_modules/d3-shape/src/curve/basisOpen.js
function M(e) {
	this._context = e;
}
M.prototype = {
	areaStart: function() {
		this._line = 0;
	},
	areaEnd: function() {
		this._line = NaN;
	},
	lineStart: function() {
		this._x0 = this._x1 = this._y0 = this._y1 = NaN, this._point = 0;
	},
	lineEnd: function() {
		(this._line || this._line !== 0 && this._point === 3) && this._context.closePath(), this._line = 1 - this._line;
	},
	point: function(e, t) {
		switch (e = +e, t = +t, this._point) {
			case 0:
				this._point = 1;
				break;
			case 1:
				this._point = 2;
				break;
			case 2:
				this._point = 3;
				var n = (this._x0 + 4 * this._x1 + e) / 6, r = (this._y0 + 4 * this._y1 + t) / 6;
				this._line ? this._context.lineTo(n, r) : this._context.moveTo(n, r);
				break;
			case 3: this._point = 4;
			default:
				O(this, e, t);
				break;
		}
		this._x0 = this._x1, this._x1 = e, this._y0 = this._y1, this._y1 = t;
	}
};
function Ce(e) {
	return new M(e);
}
//#endregion
//#region node_modules/d3-shape/src/curve/bundle.js
function N(e, t) {
	this._basis = new k(e), this._beta = t;
}
N.prototype = {
	lineStart: function() {
		this._x = [], this._y = [], this._basis.lineStart();
	},
	lineEnd: function() {
		var e = this._x, t = this._y, n = e.length - 1;
		if (n > 0) for (var r = e[0], i = t[0], a = e[n] - r, o = t[n] - i, s = -1, c; ++s <= n;) c = s / n, this._basis.point(this._beta * e[s] + (1 - this._beta) * (r + c * a), this._beta * t[s] + (1 - this._beta) * (i + c * o));
		this._x = this._y = null, this._basis.lineEnd();
	},
	point: function(e, t) {
		this._x.push(+e), this._y.push(+t);
	}
};
var we = (function e(t) {
	function n(e) {
		return t === 1 ? new k(e) : new N(e, t);
	}
	return n.beta = function(t) {
		return e(+t);
	}, n;
})(.85);
//#endregion
//#region node_modules/d3-shape/src/curve/cardinal.js
function P(e, t, n) {
	e._context.bezierCurveTo(e._x1 + e._k * (e._x2 - e._x0), e._y1 + e._k * (e._y2 - e._y0), e._x2 + e._k * (e._x1 - t), e._y2 + e._k * (e._y1 - n), e._x2, e._y2);
}
function F(e, t) {
	this._context = e, this._k = (1 - t) / 6;
}
F.prototype = {
	areaStart: function() {
		this._line = 0;
	},
	areaEnd: function() {
		this._line = NaN;
	},
	lineStart: function() {
		this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN, this._point = 0;
	},
	lineEnd: function() {
		switch (this._point) {
			case 2:
				this._context.lineTo(this._x2, this._y2);
				break;
			case 3:
				P(this, this._x1, this._y1);
				break;
		}
		(this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
	},
	point: function(e, t) {
		switch (e = +e, t = +t, this._point) {
			case 0:
				this._point = 1, this._line ? this._context.lineTo(e, t) : this._context.moveTo(e, t);
				break;
			case 1:
				this._point = 2, this._x1 = e, this._y1 = t;
				break;
			case 2: this._point = 3;
			default:
				P(this, e, t);
				break;
		}
		this._x0 = this._x1, this._x1 = this._x2, this._x2 = e, this._y0 = this._y1, this._y1 = this._y2, this._y2 = t;
	}
};
var I = (function e(t) {
	function n(e) {
		return new F(e, t);
	}
	return n.tension = function(t) {
		return e(+t);
	}, n;
})(0);
//#endregion
//#region node_modules/d3-shape/src/curve/cardinalClosed.js
function L(e, t) {
	this._context = e, this._k = (1 - t) / 6;
}
L.prototype = {
	areaStart: D,
	areaEnd: D,
	lineStart: function() {
		this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN, this._point = 0;
	},
	lineEnd: function() {
		switch (this._point) {
			case 1:
				this._context.moveTo(this._x3, this._y3), this._context.closePath();
				break;
			case 2:
				this._context.lineTo(this._x3, this._y3), this._context.closePath();
				break;
			case 3:
				this.point(this._x3, this._y3), this.point(this._x4, this._y4), this.point(this._x5, this._y5);
				break;
		}
	},
	point: function(e, t) {
		switch (e = +e, t = +t, this._point) {
			case 0:
				this._point = 1, this._x3 = e, this._y3 = t;
				break;
			case 1:
				this._point = 2, this._context.moveTo(this._x4 = e, this._y4 = t);
				break;
			case 2:
				this._point = 3, this._x5 = e, this._y5 = t;
				break;
			default:
				P(this, e, t);
				break;
		}
		this._x0 = this._x1, this._x1 = this._x2, this._x2 = e, this._y0 = this._y1, this._y1 = this._y2, this._y2 = t;
	}
};
var Te = (function e(t) {
	function n(e) {
		return new L(e, t);
	}
	return n.tension = function(t) {
		return e(+t);
	}, n;
})(0);
//#endregion
//#region node_modules/d3-shape/src/curve/cardinalOpen.js
function R(e, t) {
	this._context = e, this._k = (1 - t) / 6;
}
R.prototype = {
	areaStart: function() {
		this._line = 0;
	},
	areaEnd: function() {
		this._line = NaN;
	},
	lineStart: function() {
		this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN, this._point = 0;
	},
	lineEnd: function() {
		(this._line || this._line !== 0 && this._point === 3) && this._context.closePath(), this._line = 1 - this._line;
	},
	point: function(e, t) {
		switch (e = +e, t = +t, this._point) {
			case 0:
				this._point = 1;
				break;
			case 1:
				this._point = 2;
				break;
			case 2:
				this._point = 3, this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);
				break;
			case 3: this._point = 4;
			default:
				P(this, e, t);
				break;
		}
		this._x0 = this._x1, this._x1 = this._x2, this._x2 = e, this._y0 = this._y1, this._y1 = this._y2, this._y2 = t;
	}
};
var Ee = (function e(t) {
	function n(e) {
		return new R(e, t);
	}
	return n.tension = function(t) {
		return e(+t);
	}, n;
})(0);
//#endregion
//#region node_modules/d3-shape/src/curve/catmullRom.js
function z(e, t, n) {
	var r = e._x1, i = e._y1, a = e._x2, o = e._y2;
	if (e._l01_a > 1e-12) {
		var s = 2 * e._l01_2a + 3 * e._l01_a * e._l12_a + e._l12_2a, c = 3 * e._l01_a * (e._l01_a + e._l12_a);
		r = (r * s - e._x0 * e._l12_2a + e._x2 * e._l01_2a) / c, i = (i * s - e._y0 * e._l12_2a + e._y2 * e._l01_2a) / c;
	}
	if (e._l23_a > 1e-12) {
		var l = 2 * e._l23_2a + 3 * e._l23_a * e._l12_a + e._l12_2a, u = 3 * e._l23_a * (e._l23_a + e._l12_a);
		a = (a * l + e._x1 * e._l23_2a - t * e._l12_2a) / u, o = (o * l + e._y1 * e._l23_2a - n * e._l12_2a) / u;
	}
	e._context.bezierCurveTo(r, i, a, o, e._x2, e._y2);
}
function De(e, t) {
	this._context = e, this._alpha = t;
}
De.prototype = {
	areaStart: function() {
		this._line = 0;
	},
	areaEnd: function() {
		this._line = NaN;
	},
	lineStart: function() {
		this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN, this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;
	},
	lineEnd: function() {
		switch (this._point) {
			case 2:
				this._context.lineTo(this._x2, this._y2);
				break;
			case 3:
				this.point(this._x2, this._y2);
				break;
		}
		(this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
	},
	point: function(e, t) {
		if (e = +e, t = +t, this._point) {
			var n = this._x2 - e, r = this._y2 - t;
			this._l23_a = Math.sqrt(this._l23_2a = (n * n + r * r) ** +this._alpha);
		}
		switch (this._point) {
			case 0:
				this._point = 1, this._line ? this._context.lineTo(e, t) : this._context.moveTo(e, t);
				break;
			case 1:
				this._point = 2;
				break;
			case 2: this._point = 3;
			default:
				z(this, e, t);
				break;
		}
		this._l01_a = this._l12_a, this._l12_a = this._l23_a, this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a, this._x0 = this._x1, this._x1 = this._x2, this._x2 = e, this._y0 = this._y1, this._y1 = this._y2, this._y2 = t;
	}
};
var Oe = (function e(t) {
	function n(e) {
		return t ? new De(e, t) : new F(e, 0);
	}
	return n.alpha = function(t) {
		return e(+t);
	}, n;
})(.5);
//#endregion
//#region node_modules/d3-shape/src/curve/catmullRomClosed.js
function ke(e, t) {
	this._context = e, this._alpha = t;
}
ke.prototype = {
	areaStart: D,
	areaEnd: D,
	lineStart: function() {
		this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN, this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;
	},
	lineEnd: function() {
		switch (this._point) {
			case 1:
				this._context.moveTo(this._x3, this._y3), this._context.closePath();
				break;
			case 2:
				this._context.lineTo(this._x3, this._y3), this._context.closePath();
				break;
			case 3:
				this.point(this._x3, this._y3), this.point(this._x4, this._y4), this.point(this._x5, this._y5);
				break;
		}
	},
	point: function(e, t) {
		if (e = +e, t = +t, this._point) {
			var n = this._x2 - e, r = this._y2 - t;
			this._l23_a = Math.sqrt(this._l23_2a = (n * n + r * r) ** +this._alpha);
		}
		switch (this._point) {
			case 0:
				this._point = 1, this._x3 = e, this._y3 = t;
				break;
			case 1:
				this._point = 2, this._context.moveTo(this._x4 = e, this._y4 = t);
				break;
			case 2:
				this._point = 3, this._x5 = e, this._y5 = t;
				break;
			default:
				z(this, e, t);
				break;
		}
		this._l01_a = this._l12_a, this._l12_a = this._l23_a, this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a, this._x0 = this._x1, this._x1 = this._x2, this._x2 = e, this._y0 = this._y1, this._y1 = this._y2, this._y2 = t;
	}
};
var Ae = (function e(t) {
	function n(e) {
		return t ? new ke(e, t) : new L(e, 0);
	}
	return n.alpha = function(t) {
		return e(+t);
	}, n;
})(.5);
//#endregion
//#region node_modules/d3-shape/src/curve/catmullRomOpen.js
function je(e, t) {
	this._context = e, this._alpha = t;
}
je.prototype = {
	areaStart: function() {
		this._line = 0;
	},
	areaEnd: function() {
		this._line = NaN;
	},
	lineStart: function() {
		this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN, this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;
	},
	lineEnd: function() {
		(this._line || this._line !== 0 && this._point === 3) && this._context.closePath(), this._line = 1 - this._line;
	},
	point: function(e, t) {
		if (e = +e, t = +t, this._point) {
			var n = this._x2 - e, r = this._y2 - t;
			this._l23_a = Math.sqrt(this._l23_2a = (n * n + r * r) ** +this._alpha);
		}
		switch (this._point) {
			case 0:
				this._point = 1;
				break;
			case 1:
				this._point = 2;
				break;
			case 2:
				this._point = 3, this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);
				break;
			case 3: this._point = 4;
			default:
				z(this, e, t);
				break;
		}
		this._l01_a = this._l12_a, this._l12_a = this._l23_a, this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a, this._x0 = this._x1, this._x1 = this._x2, this._x2 = e, this._y0 = this._y1, this._y1 = this._y2, this._y2 = t;
	}
};
var Me = (function e(t) {
	function n(e) {
		return t ? new je(e, t) : new R(e, 0);
	}
	return n.alpha = function(t) {
		return e(+t);
	}, n;
})(.5);
//#endregion
//#region node_modules/d3-shape/src/curve/linearClosed.js
function Ne(e) {
	this._context = e;
}
Ne.prototype = {
	areaStart: D,
	areaEnd: D,
	lineStart: function() {
		this._point = 0;
	},
	lineEnd: function() {
		this._point && this._context.closePath();
	},
	point: function(e, t) {
		e = +e, t = +t, this._point ? this._context.lineTo(e, t) : (this._point = 1, this._context.moveTo(e, t));
	}
};
function Pe(e) {
	return new Ne(e);
}
//#endregion
//#region node_modules/d3-shape/src/curve/monotone.js
function Fe(e) {
	return e < 0 ? -1 : 1;
}
function Ie(e, t, n) {
	var r = e._x1 - e._x0, i = t - e._x1, a = (e._y1 - e._y0) / (r || i < 0 && -0), o = (n - e._y1) / (i || r < 0 && -0), s = (a * i + o * r) / (r + i);
	return (Fe(a) + Fe(o)) * Math.min(Math.abs(a), Math.abs(o), .5 * Math.abs(s)) || 0;
}
function Le(e, t) {
	var n = e._x1 - e._x0;
	return n ? (3 * (e._y1 - e._y0) / n - t) / 2 : t;
}
function B(e, t, n) {
	var r = e._x0, i = e._y0, a = e._x1, o = e._y1, s = (a - r) / 3;
	e._context.bezierCurveTo(r + s, i + s * t, a - s, o - s * n, a, o);
}
function V(e) {
	this._context = e;
}
V.prototype = {
	areaStart: function() {
		this._line = 0;
	},
	areaEnd: function() {
		this._line = NaN;
	},
	lineStart: function() {
		this._x0 = this._x1 = this._y0 = this._y1 = this._t0 = NaN, this._point = 0;
	},
	lineEnd: function() {
		switch (this._point) {
			case 2:
				this._context.lineTo(this._x1, this._y1);
				break;
			case 3:
				B(this, this._t0, Le(this, this._t0));
				break;
		}
		(this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
	},
	point: function(e, t) {
		var n = NaN;
		if (e = +e, t = +t, !(e === this._x1 && t === this._y1)) {
			switch (this._point) {
				case 0:
					this._point = 1, this._line ? this._context.lineTo(e, t) : this._context.moveTo(e, t);
					break;
				case 1:
					this._point = 2;
					break;
				case 2:
					this._point = 3, B(this, Le(this, n = Ie(this, e, t)), n);
					break;
				default:
					B(this, this._t0, n = Ie(this, e, t));
					break;
			}
			this._x0 = this._x1, this._x1 = e, this._y0 = this._y1, this._y1 = t, this._t0 = n;
		}
	}
};
function Re(e) {
	this._context = new ze(e);
}
(Re.prototype = Object.create(V.prototype)).point = function(e, t) {
	V.prototype.point.call(this, t, e);
};
function ze(e) {
	this._context = e;
}
ze.prototype = {
	moveTo: function(e, t) {
		this._context.moveTo(t, e);
	},
	closePath: function() {
		this._context.closePath();
	},
	lineTo: function(e, t) {
		this._context.lineTo(t, e);
	},
	bezierCurveTo: function(e, t, n, r, i, a) {
		this._context.bezierCurveTo(t, e, r, n, a, i);
	}
};
function Be(e) {
	return new V(e);
}
function Ve(e) {
	return new Re(e);
}
//#endregion
//#region node_modules/d3-shape/src/curve/natural.js
function H(e) {
	this._context = e;
}
H.prototype = {
	areaStart: function() {
		this._line = 0;
	},
	areaEnd: function() {
		this._line = NaN;
	},
	lineStart: function() {
		this._x = [], this._y = [];
	},
	lineEnd: function() {
		var e = this._x, t = this._y, n = e.length;
		if (n) if (this._line ? this._context.lineTo(e[0], t[0]) : this._context.moveTo(e[0], t[0]), n === 2) this._context.lineTo(e[1], t[1]);
		else for (var r = He(e), i = He(t), a = 0, o = 1; o < n; ++a, ++o) this._context.bezierCurveTo(r[0][a], i[0][a], r[1][a], i[1][a], e[o], t[o]);
		(this._line || this._line !== 0 && n === 1) && this._context.closePath(), this._line = 1 - this._line, this._x = this._y = null;
	},
	point: function(e, t) {
		this._x.push(+e), this._y.push(+t);
	}
};
function He(e) {
	var t, n = e.length - 1, r, i = Array(n), a = Array(n), o = Array(n);
	for (i[0] = 0, a[0] = 2, o[0] = e[0] + 2 * e[1], t = 1; t < n - 1; ++t) i[t] = 1, a[t] = 4, o[t] = 4 * e[t] + 2 * e[t + 1];
	for (i[n - 1] = 2, a[n - 1] = 7, o[n - 1] = 8 * e[n - 1] + e[n], t = 1; t < n; ++t) r = i[t] / a[t - 1], a[t] -= r, o[t] -= r * o[t - 1];
	for (i[n - 1] = o[n - 1] / a[n - 1], t = n - 2; t >= 0; --t) i[t] = (o[t] - i[t + 1]) / a[t];
	for (a[n - 1] = (e[n] + i[n - 1]) / 2, t = 0; t < n - 1; ++t) a[t] = 2 * e[t + 1] - i[t + 1];
	return [i, a];
}
function Ue(e) {
	return new H(e);
}
//#endregion
//#region node_modules/d3-shape/src/curve/step.js
function U(e, t) {
	this._context = e, this._t = t;
}
U.prototype = {
	areaStart: function() {
		this._line = 0;
	},
	areaEnd: function() {
		this._line = NaN;
	},
	lineStart: function() {
		this._x = this._y = NaN, this._point = 0;
	},
	lineEnd: function() {
		0 < this._t && this._t < 1 && this._point === 2 && this._context.lineTo(this._x, this._y), (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line >= 0 && (this._t = 1 - this._t, this._line = 1 - this._line);
	},
	point: function(e, t) {
		switch (e = +e, t = +t, this._point) {
			case 0:
				this._point = 1, this._line ? this._context.lineTo(e, t) : this._context.moveTo(e, t);
				break;
			case 1: this._point = 2;
			default:
				if (this._t <= 0) this._context.lineTo(this._x, t), this._context.lineTo(e, t);
				else {
					var n = this._x * (1 - this._t) + e * this._t;
					this._context.lineTo(n, this._y), this._context.lineTo(n, t);
				}
				break;
		}
		this._x = e, this._y = t;
	}
};
function We(e) {
	return new U(e, .5);
}
function Ge(e) {
	return new U(e, 0);
}
function Ke(e) {
	return new U(e, 1);
}
//#endregion
//#region node_modules/mermaid/dist/chunks/mermaid.core/chunk-GEFDOKGD.mjs
var qe = ce(), Je = {
	curveBasis: A,
	curveBasisClosed: Se,
	curveBasisOpen: Ce,
	curveBumpX: T,
	curveBumpY: E,
	curveBundle: we,
	curveCardinalClosed: Te,
	curveCardinalOpen: Ee,
	curveCardinal: I,
	curveCatmullRomClosed: Ae,
	curveCatmullRomOpen: Me,
	curveCatmullRom: Oe,
	curveLinear: be,
	curveLinearClosed: Pe,
	curveMonotoneX: Be,
	curveMonotoneY: Ve,
	curveNatural: Ue,
	curveStep: We,
	curveStepAfter: Ke,
	curveStepBefore: Ge
}, Ye = /\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi, Xe = /* @__PURE__ */ _(function(e, t) {
	let n = Ze(e, /(?:init\b)|(?:initialize\b)/), r = {};
	if (Array.isArray(n)) {
		let e = n.map((e) => e.args);
		y(e), r = se(r, [...e]);
	} else r = n.args;
	if (!r) return;
	let i = oe(e, t), a = "config";
	return r[a] !== void 0 && (i === "flowchart-v2" && (i = "flowchart"), r[i] = r[a], delete r[a]), r;
}, "detectInit"), Ze = /* @__PURE__ */ _(function(e, t = null) {
	try {
		let n = RegExp(`[%]{2}(?![{]${Ye.source})(?=[}][%]{2}).*
`, "ig");
		e = e.trim().replace(n, "").replace(/'/gm, "\""), v.debug(`Detecting diagram directive${t === null ? "" : " type:" + t} based on the text:${e}`);
		let r, i = [];
		for (; (r = b.exec(e)) !== null;) if (r.index === b.lastIndex && b.lastIndex++, r && !t || t && r[1]?.match(t) || t && r[2]?.match(t)) {
			let e = r[1] ? r[1] : r[2], t = r[3] ? r[3].trim() : r[4] ? JSON.parse(r[4].trim()) : null;
			i.push({
				type: e,
				args: t
			});
		}
		return i.length === 0 ? {
			type: e,
			args: null
		} : i.length === 1 ? i[0] : i;
	} catch (n) {
		return v.error(`ERROR: ${n.message} - Unable to parse directive type: '${t}' based on the text: '${e}'`), {
			type: void 0,
			args: null
		};
	}
}, "detectDirective"), Qe = /* @__PURE__ */ _(function(e) {
	return e.replace(b, "");
}, "removeDirectives"), $e = /* @__PURE__ */ _(function(e, t) {
	for (let [n, r] of t.entries()) if (r.match(e)) return n;
	return -1;
}, "isSubstringInArray");
function W(e, t) {
	return e ? Je[`curve${e.charAt(0).toUpperCase() + e.slice(1)}`] ?? t : t;
}
_(W, "interpolateToCurve");
function et(e, t) {
	let n = e.trim();
	if (n) return t.securityLevel === "loose" ? n : (0, qe.sanitizeUrl)(n);
}
_(et, "formatUrl");
var tt = /* @__PURE__ */ _((e, ...t) => {
	let n = e.split("."), r = n.length - 1, i = n[r], a = window;
	for (let t = 0; t < r; t++) if (a = a[n[t]], !a) {
		v.error(`Function name: ${e} not found in window`);
		return;
	}
	a[i](...t);
}, "runFunc");
function G(e, t) {
	return !e || !t ? 0 : Math.sqrt((t.x - e.x) ** 2 + (t.y - e.y) ** 2);
}
_(G, "distance");
function nt(e) {
	let t, n = 0;
	return e.forEach((e) => {
		n += G(e, t), t = e;
	}), K(e, n / 2);
}
_(nt, "traverseEdge");
function rt(e) {
	return e.length === 1 ? e[0] : nt(e);
}
_(rt, "calcLabelPosition");
var it = /* @__PURE__ */ _((e, t = 2) => {
	let n = 10 ** t;
	return Math.round(e * n) / n;
}, "roundNumber"), K = /* @__PURE__ */ _((e, t) => {
	let n, r = t;
	for (let t of e) {
		if (n) {
			let e = G(t, n);
			if (e === 0) return n;
			if (e < r) r -= e;
			else {
				let i = r / e;
				if (i <= 0) return n;
				if (i >= 1) return {
					x: t.x,
					y: t.y
				};
				if (i > 0 && i < 1) return {
					x: it((1 - i) * n.x + i * t.x, 5),
					y: it((1 - i) * n.y + i * t.y, 5)
				};
			}
		}
		n = t;
	}
	throw Error("Could not find a suitable point for the given distance");
}, "calculatePoint"), at = /* @__PURE__ */ _((e, t, n) => {
	v.info(`our points ${JSON.stringify(t)}`), t[0] !== n && (t = t.reverse());
	let r = K(t, 25), i = e ? 10 : 5, a = Math.atan2(t[0].y - r.y, t[0].x - r.x), o = {
		x: 0,
		y: 0
	};
	return o.x = Math.sin(a) * i + (t[0].x + r.x) / 2, o.y = -Math.cos(a) * i + (t[0].y + r.y) / 2, o;
}, "calcCardinalityPosition");
function ot(e, t, n) {
	let r = structuredClone(n);
	v.info("our points", r), t !== "start_left" && t !== "start_right" && r.reverse();
	let i = K(r, 25 + e), a = 10 + e * .5, o = Math.atan2(r[0].y - i.y, r[0].x - i.x), s = {
		x: 0,
		y: 0
	};
	return t === "start_left" ? (s.x = Math.sin(o + Math.PI) * a + (r[0].x + i.x) / 2, s.y = -Math.cos(o + Math.PI) * a + (r[0].y + i.y) / 2) : t === "end_right" ? (s.x = Math.sin(o - Math.PI) * a + (r[0].x + i.x) / 2 - 5, s.y = -Math.cos(o - Math.PI) * a + (r[0].y + i.y) / 2 - 5) : t === "end_left" ? (s.x = Math.sin(o) * a + (r[0].x + i.x) / 2 - 5, s.y = -Math.cos(o) * a + (r[0].y + i.y) / 2 - 5) : (s.x = Math.sin(o) * a + (r[0].x + i.x) / 2, s.y = -Math.cos(o) * a + (r[0].y + i.y) / 2), s;
}
_(ot, "calcTerminalLabelPosition");
function q(e) {
	let t = "", n = "";
	for (let r of e) r !== void 0 && (r.startsWith("color:") || r.startsWith("text-align:") ? n = n + r + ";" : t = t + r + ";");
	return {
		style: t,
		labelStyle: n
	};
}
_(q, "getStylesFromArray");
var st = 0, ct = /* @__PURE__ */ _(() => (st++, "id-" + Math.random().toString(36).substr(2, 12) + "-" + st), "generateId");
function lt(e) {
	let t = "";
	for (let n = 0; n < e; n++) t += "0123456789abcdef".charAt(Math.floor(Math.random() * 16));
	return t;
}
_(lt, "makeRandomHex");
var ut = /* @__PURE__ */ _((e) => lt(e.length), "random"), dt = /* @__PURE__ */ _(function() {
	return {
		x: 0,
		y: 0,
		fill: void 0,
		anchor: "start",
		style: "#666",
		width: 100,
		height: 100,
		textMargin: 0,
		rx: 0,
		ry: 0,
		valign: void 0,
		text: ""
	};
}, "getTextObj"), ft = /* @__PURE__ */ _(function(e, t) {
	let n = t.text.replace(x.lineBreakRegex, " "), [, r] = Q(t.fontSize), i = e.append("text");
	i.attr("x", t.x), i.attr("y", t.y), i.style("text-anchor", t.anchor), i.style("font-family", t.fontFamily), i.style("font-size", r), i.style("font-weight", t.fontWeight), i.attr("fill", t.fill), t.class !== void 0 && i.attr("class", t.class);
	let a = i.append("tspan");
	return a.attr("x", t.x + t.textMargin * 2), a.attr("fill", t.fill), a.text(n), i;
}, "drawSimpleText"), pt = g((e, t, n) => {
	if (!e || (n = Object.assign({
		fontSize: 12,
		fontWeight: 400,
		fontFamily: "Arial",
		joinWith: "<br/>"
	}, n), x.lineBreakRegex.test(e))) return e;
	let r = e.split(" ").filter(Boolean), i = [], a = "";
	return r.forEach((e, o) => {
		let s = Y(`${e} `, n), c = Y(a, n);
		if (s > t) {
			let { hyphenatedStrings: r, remainingWord: o } = mt(e, t, "-", n);
			i.push(a, ...r), a = o;
		} else c + s >= t ? (i.push(a), a = e) : a = [a, e].filter(Boolean).join(" ");
		o + 1 === r.length && i.push(a);
	}), i.filter((e) => e !== "").join(n.joinWith);
}, (e, t, n) => `${e}${t}${n.fontSize}${n.fontWeight}${n.fontFamily}${n.joinWith}`), mt = g((e, t, n = "-", r) => {
	r = Object.assign({
		fontSize: 12,
		fontWeight: 400,
		fontFamily: "Arial",
		margin: 0
	}, r);
	let i = [...e], a = [], o = "";
	return i.forEach((e, s) => {
		let c = `${o}${e}`;
		if (Y(c, r) >= t) {
			let e = s + 1, t = i.length === e, r = `${c}${n}`;
			a.push(t ? c : r), o = "";
		} else o = c;
	}), {
		hyphenatedStrings: a,
		remainingWord: o
	};
}, (e, t, n = "-", r) => `${e}${t}${n}${r.fontSize}${r.fontWeight}${r.fontFamily}`);
function J(e, t) {
	return X(e, t).height;
}
_(J, "calculateTextHeight");
function Y(e, t) {
	return X(e, t).width;
}
_(Y, "calculateTextWidth");
var X = g((t, n) => {
	let { fontSize: r = 12, fontFamily: i = "Arial", fontWeight: a = 400 } = n;
	if (!t) return {
		width: 0,
		height: 0
	};
	let [, o] = Q(r), s = ["sans-serif", i], c = t.split(x.lineBreakRegex), l = [], u = e("body");
	if (!u.remove) return {
		width: 0,
		height: 0,
		lineHeight: 0
	};
	let d = u.append("svg");
	for (let e of s) {
		let t = 0, n = {
			width: 0,
			height: 0,
			lineHeight: 0
		};
		for (let r of c) {
			let i = dt();
			i.text = r || "​";
			let s = ft(d, i).style("font-size", o).style("font-weight", a).style("font-family", e), c = (s._groups || s)[0][0].getBBox();
			if (c.width === 0 && c.height === 0) throw Error("svg element not in render tree");
			n.width = Math.round(Math.max(n.width, c.width)), t = Math.round(c.height), n.height += t, n.lineHeight = Math.round(Math.max(n.lineHeight, t));
		}
		l.push(n);
	}
	return d.remove(), l[isNaN(l[1].height) || isNaN(l[1].width) || isNaN(l[1].lineHeight) || l[0].height > l[1].height && l[0].width > l[1].width && l[0].lineHeight > l[1].lineHeight ? 0 : 1];
}, (e, t) => `${e}${t.fontSize}${t.fontWeight}${t.fontFamily}`), ht = class {
	constructor(e = !1, t) {
		this.count = 0, this.count = t ? t.length : 0, this.next = e ? () => this.count++ : () => Date.now();
	}
	static {
		_(this, "InitIDGenerator");
	}
}, Z, gt = /* @__PURE__ */ _(function(e) {
	return Z ||= document.createElement("div"), e = escape(e).replace(/%26/g, "&").replace(/%23/g, "#").replace(/%3B/g, ";"), Z.innerHTML = e, unescape(Z.textContent);
}, "entityDecode");
function _t(e) {
	return "str" in e;
}
_(_t, "isDetailedError");
var vt = /* @__PURE__ */ _((e, t, n, r) => {
	if (!r) return;
	let i = e.node()?.getBBox();
	i && e.append("text").text(r).attr("text-anchor", "middle").attr("x", i.x + i.width / 2).attr("y", -n).attr("class", t);
}, "insertTitle"), Q = /* @__PURE__ */ _((e) => {
	if (typeof e == "number") return [e, e + "px"];
	let t = parseInt(e ?? "", 10);
	return Number.isNaN(t) ? [void 0, void 0] : e === String(t) ? [t, e + "px"] : [t, e];
}, "parseFontSize");
function $(e, t) {
	return ve({}, e, t);
}
_($, "cleanAndMerge");
var yt = {
	assignWithDepth: se,
	wrapLabel: pt,
	calculateTextHeight: J,
	calculateTextWidth: Y,
	calculateTextDimensions: X,
	cleanAndMerge: $,
	detectInit: Xe,
	detectDirective: Ze,
	isSubstringInArray: $e,
	interpolateToCurve: W,
	calcLabelPosition: rt,
	calcCardinalityPosition: at,
	calcTerminalLabelPosition: ot,
	formatUrl: et,
	getStylesFromArray: q,
	generateId: ct,
	random: ut,
	runFunc: tt,
	entityDecode: gt,
	insertTitle: vt,
	isLabelCoordinateInPath: wt,
	parseFontSize: Q,
	InitIDGenerator: ht
}, bt = /* @__PURE__ */ _(function(e) {
	let t = e;
	return t = t.replace(/style.*:\S*#.*;/g, function(e) {
		return e.substring(0, e.length - 1);
	}), t = t.replace(/classDef.*:\S*#.*;/g, function(e) {
		return e.substring(0, e.length - 1);
	}), t = t.replace(/#\w+;/g, function(e) {
		let t = e.substring(1, e.length - 1);
		return /^\+?\d+$/.test(t) ? "ﬂ°°" + t + "¶ß" : "ﬂ°" + t + "¶ß";
	}), t;
}, "encodeEntities"), xt = /* @__PURE__ */ _(function(e) {
	return e.replace(/ﬂ°°/g, "&#").replace(/ﬂ°/g, "&").replace(/¶ß/g, ";");
}, "decodeEntities"), St = /* @__PURE__ */ _((e, t, { counter: n = 0, prefix: r, suffix: i }, a) => a || `${r ? `${r}_` : ""}${e}_${t}_${n}${i ? `_${i}` : ""}`, "getEdgeId");
function Ct(e) {
	return e ?? null;
}
_(Ct, "handleUndefinedAttr");
function wt(e, t) {
	let n = Math.round(e.x), r = Math.round(e.y), i = t.replace(/(\d+\.\d+)/g, (e) => Math.round(parseFloat(e)).toString());
	return i.includes(n.toString()) || i.includes(r.toString());
}
_(wt, "isLabelCoordinateInPath");
//#endregion
export { Oe as C, E as D, T as E, be as O, Ve as S, A as T, Ke as _, bt as a, Ue as b, q as c, _t as d, Q as f, pt as g, yt as h, xt as i, ve as k, Ct as l, Qe as m, Y as n, ct as o, ut as p, $ as r, St as s, J as t, W as u, Ge as v, I as w, Be as x, We as y };

//# sourceMappingURL=chunk-GEFDOKGD-bXEkwPrJ.js.map