@isbx/webshap
Version:
Explain any ML models anywhere
1,614 lines (1,612 loc) • 2.18 MB
JavaScript
var q2 = Object.defineProperty;
var K2 = (n, e, t) => e in n ? q2(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;
var Ke = (n, e, t) => (K2(n, typeof e != "symbol" ? e + "" : e, t), t);
function X2(n, e) {
for (var t = 0; t < e.length; t++) {
const s = e[t];
if (typeof s != "string" && !Array.isArray(s)) {
for (const r in s)
if (r !== "default" && !(r in n)) {
const o = Object.getOwnPropertyDescriptor(s, r);
o && Object.defineProperty(n, r, o.get ? o : {
enumerable: !0,
get: () => s[r]
});
}
}
}
return Object.freeze(Object.defineProperty(n, Symbol.toStringTag, { value: "Module" }));
}
const C1 = Math.random, j2 = function n(e) {
function t(s, r) {
return s = s == null ? 0 : +s, r = r == null ? 1 : +r, arguments.length === 1 ? (r = s, s = 0) : r -= s, function() {
return e() * r + s;
};
}
return t.source = n, t;
}(C1), Y2 = function n(e) {
function t(s, r) {
return arguments.length < 2 && (r = s, s = 0), s = Math.floor(s), r = Math.floor(r) - s, function() {
return Math.floor(e() * r + s);
};
}
return t.source = n, t;
}(C1), Z2 = 1664525, J2 = 1013904223, Wm = 1 / 4294967296;
function Um(n = Math.random()) {
let e = (0 <= n && n < 1 ? n / Wm : Math.abs(n)) | 0;
return () => (e = Z2 * e + J2 | 0, Wm * (e >>> 0));
}
const Gm = (n, e) => {
const t = Math.min(e, n - e);
return Array.from(new Array(t), (s, r) => r + 1).reduce((s, r) => s * (n + 1 - r) / r, 1);
}, Q2 = (n, e) => {
const t = [];
function s(r = 0, o = []) {
if (o.length === e) {
t.push(o);
return;
}
for (let i = r; i < n.length; i++)
s(i + 1, [...o, n[i]]);
}
return s(), t;
};
function ec() {
return ec = Object.assign ? Object.assign.bind() : function(n) {
for (var e = 1; e < arguments.length; e++) {
var t = arguments[e];
for (var s in t)
({}).hasOwnProperty.call(t, s) && (n[s] = t[s]);
}
return n;
}, ec.apply(null, arguments);
}
var D1 = {
// minimum relative difference between two compared values,
// used by all comparison functions
epsilon: 1e-12,
// type of default matrix output. Choose 'matrix' (default) or 'array'
matrix: "Matrix",
// type of default number output. Choose 'number' (default) 'BigNumber', or 'Fraction
number: "number",
// number of significant digits in BigNumbers
precision: 64,
// predictable output type of functions. When true, output type depends only
// on the input types. When false (default), output type can vary depending
// on input values. For example `math.sqrt(-4)` returns `complex('2i')` when
// predictable is false, and returns `NaN` when true.
predictable: !1,
// random seed for seeded pseudo random number generation
// null = randomly seed
randomSeed: null
};
function It(n) {
return typeof n == "number";
}
function zt(n) {
return !n || typeof n != "object" || typeof n.constructor != "function" ? !1 : n.isBigNumber === !0 && typeof n.constructor.prototype == "object" && n.constructor.prototype.isBigNumber === !0 || typeof n.constructor.isDecimal == "function" && n.constructor.isDecimal(n) === !0;
}
function $1(n) {
return n && typeof n == "object" && Object.getPrototypeOf(n).isComplex === !0 || !1;
}
function I1(n) {
return n && typeof n == "object" && Object.getPrototypeOf(n).isFraction === !0 || !1;
}
function S1(n) {
return n && n.constructor.prototype.isUnit === !0 || !1;
}
function xs(n) {
return typeof n == "string";
}
var dt = Array.isArray;
function ot(n) {
return n && n.constructor.prototype.isMatrix === !0 || !1;
}
function qi(n) {
return Array.isArray(n) || ot(n);
}
function e$(n) {
return n && n.isDenseMatrix && n.constructor.prototype.isMatrix === !0 || !1;
}
function t$(n) {
return n && n.isSparseMatrix && n.constructor.prototype.isMatrix === !0 || !1;
}
function N1(n) {
return n && n.constructor.prototype.isRange === !0 || !1;
}
function zd(n) {
return n && n.constructor.prototype.isIndex === !0 || !1;
}
function n$(n) {
return typeof n == "boolean";
}
function s$(n) {
return n && n.constructor.prototype.isResultSet === !0 || !1;
}
function r$(n) {
return n && n.constructor.prototype.isHelp === !0 || !1;
}
function o$(n) {
return typeof n == "function";
}
function i$(n) {
return n instanceof Date;
}
function a$(n) {
return n instanceof RegExp;
}
function k1(n) {
return !!(n && typeof n == "object" && n.constructor === Object && !$1(n) && !I1(n));
}
function u$(n) {
return n === null;
}
function c$(n) {
return n === void 0;
}
function l$(n) {
return n && n.isAccessorNode === !0 && n.constructor.prototype.isNode === !0 || !1;
}
function h$(n) {
return n && n.isArrayNode === !0 && n.constructor.prototype.isNode === !0 || !1;
}
function d$(n) {
return n && n.isAssignmentNode === !0 && n.constructor.prototype.isNode === !0 || !1;
}
function f$(n) {
return n && n.isBlockNode === !0 && n.constructor.prototype.isNode === !0 || !1;
}
function p$(n) {
return n && n.isConditionalNode === !0 && n.constructor.prototype.isNode === !0 || !1;
}
function m$(n) {
return n && n.isConstantNode === !0 && n.constructor.prototype.isNode === !0 || !1;
}
function g$(n) {
return n && n.isFunctionAssignmentNode === !0 && n.constructor.prototype.isNode === !0 || !1;
}
function x$(n) {
return n && n.isFunctionNode === !0 && n.constructor.prototype.isNode === !0 || !1;
}
function b$(n) {
return n && n.isIndexNode === !0 && n.constructor.prototype.isNode === !0 || !1;
}
function y$(n) {
return n && n.isNode === !0 && n.constructor.prototype.isNode === !0 || !1;
}
function v$(n) {
return n && n.isObjectNode === !0 && n.constructor.prototype.isNode === !0 || !1;
}
function w$(n) {
return n && n.isOperatorNode === !0 && n.constructor.prototype.isNode === !0 || !1;
}
function C$(n) {
return n && n.isParenthesisNode === !0 && n.constructor.prototype.isNode === !0 || !1;
}
function D$(n) {
return n && n.isRangeNode === !0 && n.constructor.prototype.isNode === !0 || !1;
}
function $$(n) {
return n && n.isRelationalNode === !0 && n.constructor.prototype.isNode === !0 || !1;
}
function I$(n) {
return n && n.isSymbolNode === !0 && n.constructor.prototype.isNode === !0 || !1;
}
function S$(n) {
return n && n.constructor.prototype.isChain === !0 || !1;
}
function Ls(n) {
var e = typeof n;
return e === "object" ? n === null ? "null" : zt(n) ? "BigNumber" : n.constructor && n.constructor.name ? n.constructor.name : "Object" : e;
}
function Je(n) {
var e = typeof n;
if (e === "number" || e === "string" || e === "boolean" || n === null || n === void 0)
return n;
if (typeof n.clone == "function")
return n.clone();
if (Array.isArray(n))
return n.map(function(t) {
return Je(t);
});
if (n instanceof Date)
return new Date(n.valueOf());
if (zt(n))
return n;
if (k1(n))
return N$(n, Je);
throw new TypeError("Cannot clone: unknown type of value (value: ".concat(n, ")"));
}
function N$(n, e) {
var t = {};
for (var s in n)
Ki(n, s) && (t[s] = e(n[s]));
return t;
}
function E1(n, e) {
for (var t in e)
Ki(e, t) && (n[t] = e[t]);
return n;
}
function jo(n, e) {
var t, s, r;
if (Array.isArray(n)) {
if (!Array.isArray(e) || n.length !== e.length)
return !1;
for (s = 0, r = n.length; s < r; s++)
if (!jo(n[s], e[s]))
return !1;
return !0;
} else {
if (typeof n == "function")
return n === e;
if (n instanceof Object) {
if (Array.isArray(e) || !(e instanceof Object))
return !1;
for (t in n)
if (!(t in e) || !jo(n[t], e[t]))
return !1;
for (t in e)
if (!(t in n))
return !1;
return !0;
} else
return n === e;
}
}
function Ki(n, e) {
return n && Object.hasOwnProperty.call(n, e);
}
function k$(n, e) {
for (var t = {}, s = 0; s < e.length; s++) {
var r = e[s], o = n[r];
o !== void 0 && (t[r] = o);
}
return t;
}
var E$ = ["Matrix", "Array"], A$ = ["number", "BigNumber", "Fraction"], Kn = function(e) {
if (e)
throw new Error(`The global config is readonly.
Please create a mathjs instance if you want to change the default configuration.
Example:
import { create, all } from 'mathjs';
const mathjs = create(all);
mathjs.config({ number: 'BigNumber' });
`);
return Object.freeze(D1);
};
ec(Kn, D1, {
MATRIX_OPTIONS: E$,
NUMBER_OPTIONS: A$
});
function Hm() {
return !0;
}
function Yn() {
return !1;
}
function Ro() {
}
const qm = "Argument is not a typed-function.";
function A1() {
function n(A) {
return typeof A == "object" && A !== null && A.constructor === Object;
}
const e = [{
name: "number",
test: function(A) {
return typeof A == "number";
}
}, {
name: "string",
test: function(A) {
return typeof A == "string";
}
}, {
name: "boolean",
test: function(A) {
return typeof A == "boolean";
}
}, {
name: "Function",
test: function(A) {
return typeof A == "function";
}
}, {
name: "Array",
test: Array.isArray
}, {
name: "Date",
test: function(A) {
return A instanceof Date;
}
}, {
name: "RegExp",
test: function(A) {
return A instanceof RegExp;
}
}, {
name: "Object",
test: n
}, {
name: "null",
test: function(A) {
return A === null;
}
}, {
name: "undefined",
test: function(A) {
return A === void 0;
}
}], t = {
name: "any",
test: Hm,
isAny: !0
};
let s, r, o = 0, i = {
createCount: 0
};
function a(A) {
const z = s.get(A);
if (z)
return z;
let q = 'Unknown type "' + A + '"';
const Q = A.toLowerCase();
let se;
for (se of r)
if (se.toLowerCase() === Q) {
q += '. Did you mean "' + se + '" ?';
break;
}
throw new TypeError(q);
}
function u(A) {
let z = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "any";
const q = z ? a(z).index : r.length, Q = [];
for (let ne = 0; ne < A.length; ++ne) {
if (!A[ne] || typeof A[ne].name != "string" || typeof A[ne].test != "function")
throw new TypeError("Object with properties {name: string, test: function} expected");
const ge = A[ne].name;
if (s.has(ge))
throw new TypeError('Duplicate type name "' + ge + '"');
Q.push(ge), s.set(ge, {
name: ge,
test: A[ne].test,
isAny: A[ne].isAny,
index: q + ne,
conversionsTo: []
// Newly added type can't have any conversions to it
});
}
const se = r.slice(q);
r = r.slice(0, q).concat(Q).concat(se);
for (let ne = q + Q.length; ne < r.length; ++ne)
s.get(r[ne]).index = ne;
}
function c() {
s = /* @__PURE__ */ new Map(), r = [], o = 0, u([t], !1);
}
c(), u(e);
function l() {
let A;
for (A of r)
s.get(A).conversionsTo = [];
o = 0;
}
function h(A) {
const z = r.filter((q) => {
const Q = s.get(q);
return !Q.isAny && Q.test(A);
});
return z.length ? z : ["any"];
}
function d(A) {
return A && typeof A == "function" && "_typedFunctionData" in A;
}
function f(A, z, q) {
if (!d(A))
throw new TypeError(qm);
const Q = q && q.exact, se = Array.isArray(z) ? z.join(",") : z, ne = v(se), ge = x(ne);
if (!Q || ge in A.signatures) {
const et = A._typedFunctionData.signatureMap.get(ge);
if (et)
return et;
}
const le = ne.length;
let xe;
if (Q) {
xe = [];
let et;
for (et in A.signatures)
xe.push(A._typedFunctionData.signatureMap.get(et));
} else
xe = A._typedFunctionData.signatures;
for (let et = 0; et < le; ++et) {
const ht = ne[et], Ft = [];
let Fn;
for (Fn of xe) {
const $n = $(Fn.params, et);
if (!(!$n || ht.restParam && !$n.restParam)) {
if (!$n.hasAny) {
const fs = y($n);
if (ht.types.some((ps) => !fs.has(ps.name)))
continue;
}
Ft.push(Fn);
}
}
if (xe = Ft, xe.length === 0)
break;
}
let ce;
for (ce of xe)
if (ce.params.length <= le)
return ce;
throw new TypeError("Signature not found (signature: " + (A.name || "unnamed") + "(" + x(ne, ", ") + "))");
}
function m(A, z, q) {
return f(A, z, q).implementation;
}
function p(A, z) {
const q = a(z);
if (q.test(A))
return A;
const Q = q.conversionsTo;
if (Q.length === 0)
throw new Error("There are no conversions to " + z + " defined.");
for (let se = 0; se < Q.length; se++)
if (a(Q[se].from).test(A))
return Q[se].convert(A);
throw new Error("Cannot convert " + A + " to " + z);
}
function x(A) {
let z = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : ",";
return A.map((q) => q.name).join(z);
}
function g(A) {
const z = A.indexOf("...") === 0, Q = (z ? A.length > 3 ? A.slice(3) : "any" : A).split("|").map((le) => a(le.trim()));
let se = !1, ne = z ? "..." : "";
return {
types: Q.map(function(le) {
return se = le.isAny || se, ne += le.name + "|", {
name: le.name,
typeIndex: le.index,
test: le.test,
isAny: le.isAny,
conversion: null,
conversionIndex: -1
};
}),
name: ne.slice(0, -1),
// remove trailing '|' from above
hasAny: se,
hasConversion: !1,
restParam: z
};
}
function b(A) {
const z = A.types.map((ge) => ge.name), q = U(z);
let Q = A.hasAny, se = A.name;
const ne = q.map(function(ge) {
const le = a(ge.from);
return Q = le.isAny || Q, se += "|" + ge.from, {
name: ge.from,
typeIndex: le.index,
test: le.test,
isAny: le.isAny,
conversion: ge,
conversionIndex: ge.index
};
});
return {
types: A.types.concat(ne),
name: se,
hasAny: Q,
hasConversion: ne.length > 0,
restParam: A.restParam
};
}
function y(A) {
return A.typeSet || (A.typeSet = /* @__PURE__ */ new Set(), A.types.forEach((z) => A.typeSet.add(z.name))), A.typeSet;
}
function v(A) {
const z = [];
if (typeof A != "string")
throw new TypeError("Signatures must be strings");
const q = A.trim();
if (q === "")
return z;
const Q = q.split(",");
for (let se = 0; se < Q.length; ++se) {
const ne = g(Q[se].trim());
if (ne.restParam && se !== Q.length - 1)
throw new SyntaxError('Unexpected rest parameter "' + Q[se] + '": only allowed for the last parameter');
if (ne.types.length === 0)
return null;
z.push(ne);
}
return z;
}
function w(A) {
const z = fe(A);
return z ? z.restParam : !1;
}
function C(A) {
if (!A || A.types.length === 0)
return Hm;
if (A.types.length === 1)
return a(A.types[0].name).test;
if (A.types.length === 2) {
const z = a(A.types[0].name).test, q = a(A.types[1].name).test;
return function(se) {
return z(se) || q(se);
};
} else {
const z = A.types.map(function(q) {
return a(q.name).test;
});
return function(Q) {
for (let se = 0; se < z.length; se++)
if (z[se](Q))
return !0;
return !1;
};
}
}
function D(A) {
let z, q, Q;
if (w(A)) {
z = De(A).map(C);
const se = z.length, ne = C(fe(A)), ge = function(le) {
for (let xe = se; xe < le.length; xe++)
if (!ne(le[xe]))
return !1;
return !0;
};
return function(xe) {
for (let ce = 0; ce < z.length; ce++)
if (!z[ce](xe[ce]))
return !1;
return ge(xe) && xe.length >= se + 1;
};
} else
return A.length === 0 ? function(ne) {
return ne.length === 0;
} : A.length === 1 ? (q = C(A[0]), function(ne) {
return q(ne[0]) && ne.length === 1;
}) : A.length === 2 ? (q = C(A[0]), Q = C(A[1]), function(ne) {
return q(ne[0]) && Q(ne[1]) && ne.length === 2;
}) : (z = A.map(C), function(ne) {
for (let ge = 0; ge < z.length; ge++)
if (!z[ge](ne[ge]))
return !1;
return ne.length === z.length;
});
}
function $(A, z) {
return z < A.length ? A[z] : w(A) ? fe(A) : null;
}
function I(A, z) {
const q = $(A, z);
return q ? y(q) : /* @__PURE__ */ new Set();
}
function S(A) {
return A.conversion === null || A.conversion === void 0;
}
function N(A, z) {
const q = /* @__PURE__ */ new Set();
return A.forEach((Q) => {
const se = I(Q.params, z);
let ne;
for (ne of se)
q.add(ne);
}), q.has("any") ? ["any"] : Array.from(q);
}
function E(A, z, q) {
let Q, se;
const ne = A || "unnamed";
let ge = q, le;
for (le = 0; le < z.length; le++) {
const ht = [];
if (ge.forEach((Ft) => {
const Fn = $(Ft.params, le), $n = C(Fn);
(le < Ft.params.length || w(Ft.params)) && $n(z[le]) && ht.push(Ft);
}), ht.length === 0) {
if (se = N(ge, le), se.length > 0) {
const Ft = h(z[le]);
return Q = new TypeError("Unexpected type of argument in function " + ne + " (expected: " + se.join(" or ") + ", actual: " + Ft.join(" | ") + ", index: " + le + ")"), Q.data = {
category: "wrongType",
fn: ne,
index: le,
actual: Ft,
expected: se
}, Q;
}
} else
ge = ht;
}
const xe = ge.map(function(ht) {
return w(ht.params) ? 1 / 0 : ht.params.length;
});
if (z.length < Math.min.apply(null, xe))
return se = N(ge, le), Q = new TypeError("Too few arguments in function " + ne + " (expected: " + se.join(" or ") + ", index: " + z.length + ")"), Q.data = {
category: "tooFewArgs",
fn: ne,
index: z.length,
expected: se
}, Q;
const ce = Math.max.apply(null, xe);
if (z.length > ce)
return Q = new TypeError("Too many arguments in function " + ne + " (expected: " + ce + ", actual: " + z.length + ")"), Q.data = {
category: "tooManyArgs",
fn: ne,
index: z.length,
expectedLength: ce
}, Q;
const et = [];
for (let ht = 0; ht < z.length; ++ht)
et.push(h(z[ht]).join("|"));
return Q = new TypeError('Arguments of type "' + et.join(", ") + '" do not match any of the defined signatures of function ' + ne + "."), Q.data = {
category: "mismatch",
actual: et
}, Q;
}
function M(A) {
let z = r.length + 1;
for (let q = 0; q < A.types.length; q++)
S(A.types[q]) && (z = Math.min(z, A.types[q].typeIndex));
return z;
}
function F(A) {
let z = o + 1;
for (let q = 0; q < A.types.length; q++)
S(A.types[q]) || (z = Math.min(z, A.types[q].conversionIndex));
return z;
}
function _(A, z) {
if (A.hasAny) {
if (!z.hasAny)
return 1;
} else if (z.hasAny)
return -1;
if (A.restParam) {
if (!z.restParam)
return 1;
} else if (z.restParam)
return -1;
if (A.hasConversion) {
if (!z.hasConversion)
return 1;
} else if (z.hasConversion)
return -1;
const q = M(A) - M(z);
if (q < 0)
return -1;
if (q > 0)
return 1;
const Q = F(A) - F(z);
return Q < 0 ? -1 : Q > 0 ? 1 : 0;
}
function T(A, z) {
const q = A.params, Q = z.params, se = fe(q), ne = fe(Q), ge = w(q), le = w(Q);
if (ge && se.hasAny) {
if (!le || !ne.hasAny)
return 1;
} else if (le && ne.hasAny)
return -1;
let xe = 0, ce = 0, et;
for (et of q)
et.hasAny && ++xe, et.hasConversion && ++ce;
let ht = 0, Ft = 0;
for (et of Q)
et.hasAny && ++ht, et.hasConversion && ++Ft;
if (xe !== ht)
return xe - ht;
if (ge && se.hasConversion) {
if (!le || !ne.hasConversion)
return 1;
} else if (le && ne.hasConversion)
return -1;
if (ce !== Ft)
return ce - Ft;
if (ge) {
if (!le)
return 1;
} else if (le)
return -1;
const Fn = (q.length - Q.length) * (ge ? -1 : 1);
if (Fn !== 0)
return Fn;
const $n = [];
let fs = 0;
for (let Fo = 0; Fo < q.length; ++Fo) {
const _u = _(q[Fo], Q[Fo]);
$n.push(_u), fs += _u;
}
if (fs !== 0)
return fs;
let ps;
for (ps of $n)
if (ps !== 0)
return ps;
return 0;
}
function U(A) {
if (A.length === 0)
return [];
const z = A.map(a);
A.length > 1 && z.sort((se, ne) => se.index - ne.index);
let q = z[0].conversionsTo;
if (A.length === 1)
return q;
q = q.concat([]);
const Q = new Set(A);
for (let se = 1; se < z.length; ++se) {
let ne;
for (ne of z[se].conversionsTo)
Q.has(ne.from) || (q.push(ne), Q.add(ne.from));
}
return q;
}
function L(A, z) {
let q = z;
if (A.some((se) => se.hasConversion)) {
const se = w(A), ne = A.map(G);
q = function() {
const le = [], xe = se ? arguments.length - 1 : arguments.length;
for (let ce = 0; ce < xe; ce++)
le[ce] = ne[ce](arguments[ce]);
return se && (le[xe] = arguments[xe].map(ne[xe])), z.apply(this, le);
};
}
let Q = q;
if (w(A)) {
const se = A.length - 1;
Q = function() {
return q.apply(this, Ce(arguments, 0, se).concat([Ce(arguments, se)]));
};
}
return Q;
}
function G(A) {
let z, q, Q, se;
const ne = [], ge = [];
switch (A.types.forEach(function(le) {
le.conversion && (ne.push(a(le.conversion.from).test), ge.push(le.conversion.convert));
}), ge.length) {
case 0:
return function(xe) {
return xe;
};
case 1:
return z = ne[0], Q = ge[0], function(xe) {
return z(xe) ? Q(xe) : xe;
};
case 2:
return z = ne[0], q = ne[1], Q = ge[0], se = ge[1], function(xe) {
return z(xe) ? Q(xe) : q(xe) ? se(xe) : xe;
};
default:
return function(xe) {
for (let ce = 0; ce < ge.length; ce++)
if (ne[ce](xe))
return ge[ce](xe);
return xe;
};
}
}
function X(A) {
function z(q, Q, se) {
if (Q < q.length) {
const ne = q[Q];
let ge = [];
if (ne.restParam) {
const le = ne.types.filter(S);
le.length < ne.types.length && ge.push({
types: le,
name: "..." + le.map((xe) => xe.name).join("|"),
hasAny: le.some((xe) => xe.isAny),
hasConversion: !1,
restParam: !0
}), ge.push(ne);
} else
ge = ne.types.map(function(le) {
return {
types: [le],
name: le.name,
hasAny: le.isAny,
hasConversion: le.conversion,
restParam: !1
};
});
return Me(ge, function(le) {
return z(q, Q + 1, se.concat([le]));
});
} else
return [se];
}
return z(A, 0, []);
}
function Z(A, z) {
const q = Math.max(A.length, z.length);
for (let le = 0; le < q; le++) {
const xe = I(A, le), ce = I(z, le);
let et = !1, ht;
for (ht of ce)
if (xe.has(ht)) {
et = !0;
break;
}
if (!et)
return !1;
}
const Q = A.length, se = z.length, ne = w(A), ge = w(z);
return ne ? ge ? Q === se : se >= Q : ge ? Q >= se : Q === se;
}
function te(A) {
return A.map((z) => Ze(z) ? Ve(z.referToSelf.callback) : He(z) ? ze(z.referTo.references, z.referTo.callback) : z);
}
function ee(A, z, q) {
const Q = [];
let se;
for (se of A) {
let ne = q[se];
if (typeof ne != "number")
throw new TypeError('No definition for referenced signature "' + se + '"');
if (ne = z[ne], typeof ne != "function")
return !1;
Q.push(ne);
}
return Q;
}
function ae(A, z, q) {
const Q = te(A), se = new Array(Q.length).fill(!1);
let ne = !0;
for (; ne; ) {
ne = !1;
let ge = !0;
for (let le = 0; le < Q.length; ++le) {
if (se[le])
continue;
const xe = Q[le];
if (Ze(xe))
Q[le] = xe.referToSelf.callback(q), Q[le].referToSelf = xe.referToSelf, se[le] = !0, ge = !1;
else if (He(xe)) {
const ce = ee(xe.referTo.references, Q, z);
ce ? (Q[le] = xe.referTo.callback.apply(this, ce), Q[le].referTo = xe.referTo, se[le] = !0, ge = !1) : ne = !0;
}
}
if (ge && ne)
throw new SyntaxError("Circular reference detected in resolving typed.referTo");
}
return Q;
}
function re(A) {
const z = /\bthis(\(|\.signatures\b)/;
Object.keys(A).forEach((q) => {
const Q = A[q];
if (z.test(Q.toString()))
throw new SyntaxError("Using `this` to self-reference a function is deprecated since typed-function@3. Use typed.referTo and typed.referToSelf instead.");
});
}
function he(A, z) {
if (i.createCount++, Object.keys(z).length === 0)
throw new SyntaxError("No signatures provided");
i.warnAgainstDeprecatedThis && re(z);
const q = [], Q = [], se = {}, ne = [];
let ge;
for (ge in z) {
if (!Object.prototype.hasOwnProperty.call(z, ge))
continue;
const ct = v(ge);
if (!ct)
continue;
q.forEach(function(Fi) {
if (Z(Fi, ct))
throw new TypeError('Conflicting signatures "' + x(Fi) + '" and "' + x(ct) + '".');
}), q.push(ct);
const Rn = Q.length;
Q.push(z[ge]);
const G2 = ct.map(b);
let Mu;
for (Mu of X(G2)) {
const Fi = x(Mu);
ne.push({
params: Mu,
name: Fi,
fn: Rn
}), Mu.every((H2) => !H2.hasConversion) && (se[Fi] = Rn);
}
}
ne.sort(T);
const le = ae(Q, se, Ti);
let xe;
for (xe in se)
Object.prototype.hasOwnProperty.call(se, xe) && (se[xe] = le[se[xe]]);
const ce = [], et = /* @__PURE__ */ new Map();
for (xe of ne)
et.has(xe.name) || (xe.fn = le[xe.fn], ce.push(xe), et.set(xe.name, xe));
const ht = ce[0] && ce[0].params.length <= 2 && !w(ce[0].params), Ft = ce[1] && ce[1].params.length <= 2 && !w(ce[1].params), Fn = ce[2] && ce[2].params.length <= 2 && !w(ce[2].params), $n = ce[3] && ce[3].params.length <= 2 && !w(ce[3].params), fs = ce[4] && ce[4].params.length <= 2 && !w(ce[4].params), ps = ce[5] && ce[5].params.length <= 2 && !w(ce[5].params), Fo = ht && Ft && Fn && $n && fs && ps;
for (let ct = 0; ct < ce.length; ++ct)
ce[ct].test = D(ce[ct].params);
const _u = ht ? C(ce[0].params[0]) : Yn, g2 = Ft ? C(ce[1].params[0]) : Yn, x2 = Fn ? C(ce[2].params[0]) : Yn, b2 = $n ? C(ce[3].params[0]) : Yn, y2 = fs ? C(ce[4].params[0]) : Yn, v2 = ps ? C(ce[5].params[0]) : Yn, w2 = ht ? C(ce[0].params[1]) : Yn, C2 = Ft ? C(ce[1].params[1]) : Yn, D2 = Fn ? C(ce[2].params[1]) : Yn, $2 = $n ? C(ce[3].params[1]) : Yn, I2 = fs ? C(ce[4].params[1]) : Yn, S2 = ps ? C(ce[5].params[1]) : Yn;
for (let ct = 0; ct < ce.length; ++ct)
ce[ct].implementation = L(ce[ct].params, ce[ct].fn);
const N2 = ht ? ce[0].implementation : Ro, k2 = Ft ? ce[1].implementation : Ro, E2 = Fn ? ce[2].implementation : Ro, A2 = $n ? ce[3].implementation : Ro, T2 = fs ? ce[4].implementation : Ro, F2 = ps ? ce[5].implementation : Ro, R2 = ht ? ce[0].params.length : -1, _2 = Ft ? ce[1].params.length : -1, M2 = Fn ? ce[2].params.length : -1, O2 = $n ? ce[3].params.length : -1, B2 = fs ? ce[4].params.length : -1, L2 = ps ? ce[5].params.length : -1, P2 = Fo ? 6 : 0, z2 = ce.length, V2 = ce.map((ct) => ct.test), W2 = ce.map((ct) => ct.implementation), U2 = function() {
for (let Rn = P2; Rn < z2; Rn++)
if (V2[Rn](arguments))
return W2[Rn].apply(this, arguments);
return i.onMismatch(A, arguments, ce);
};
function Ti(ct, Rn) {
return arguments.length === R2 && _u(ct) && w2(Rn) ? N2.apply(this, arguments) : arguments.length === _2 && g2(ct) && C2(Rn) ? k2.apply(this, arguments) : arguments.length === M2 && x2(ct) && D2(Rn) ? E2.apply(this, arguments) : arguments.length === O2 && b2(ct) && $2(Rn) ? A2.apply(this, arguments) : arguments.length === B2 && y2(ct) && I2(Rn) ? T2.apply(this, arguments) : arguments.length === L2 && v2(ct) && S2(Rn) ? F2.apply(this, arguments) : U2.apply(this, arguments);
}
try {
Object.defineProperty(Ti, "name", {
value: A
});
} catch {
}
return Ti.signatures = se, Ti._typedFunctionData = {
signatures: ce,
signatureMap: et
}, Ti;
}
function de(A, z, q) {
throw E(A, z, q);
}
function De(A) {
return Ce(A, 0, A.length - 1);
}
function fe(A) {
return A[A.length - 1];
}
function Ce(A, z, q) {
return Array.prototype.slice.call(A, z, q);
}
function Te(A, z) {
for (let q = 0; q < A.length; q++)
if (z(A[q]))
return A[q];
}
function Me(A, z) {
return Array.prototype.concat.apply([], A.map(z));
}
function Ee() {
const A = De(arguments).map((q) => x(v(q))), z = fe(arguments);
if (typeof z != "function")
throw new TypeError("Callback function expected as last argument");
return ze(A, z);
}
function ze(A, z) {
return {
referTo: {
references: A,
callback: z
}
};
}
function Ve(A) {
if (typeof A != "function")
throw new TypeError("Callback function expected as first argument");
return {
referToSelf: {
callback: A
}
};
}
function He(A) {
return A && typeof A.referTo == "object" && Array.isArray(A.referTo.references) && typeof A.referTo.callback == "function";
}
function Ze(A) {
return A && typeof A.referToSelf == "object" && typeof A.referToSelf.callback == "function";
}
function tt(A, z) {
if (!A)
return z;
if (z && z !== A) {
const q = new Error("Function names do not match (expected: " + A + ", actual: " + z + ")");
throw q.data = {
actual: z,
expected: A
}, q;
}
return A;
}
function fn(A) {
let z;
for (const q in A)
Object.prototype.hasOwnProperty.call(A, q) && (d(A[q]) || typeof A[q].signature == "string") && (z = tt(z, A[q].name));
return z;
}
function Tt(A, z) {
let q;
for (q in z)
if (Object.prototype.hasOwnProperty.call(z, q)) {
if (q in A && z[q] !== A[q]) {
const Q = new Error('Signature "' + q + '" is defined twice');
throw Q.data = {
signature: q,
sourceFunction: z[q],
destFunction: A[q]
}, Q;
}
A[q] = z[q];
}
}
const As = i;
i = function(A) {
const z = typeof A == "string", q = z ? 1 : 0;
let Q = z ? A : "";
const se = {};
for (let ne = q; ne < arguments.length; ++ne) {
const ge = arguments[ne];
let le = {}, xe;
if (typeof ge == "function" ? (xe = ge.name, typeof ge.signature == "string" ? le[ge.signature] = ge : d(ge) && (le = ge.signatures)) : n(ge) && (le = ge, z || (xe = fn(ge))), Object.keys(le).length === 0) {
const ce = new TypeError("Argument to 'typed' at index " + ne + " is not a (typed) function, nor an object with signatures as keys and functions as values.");
throw ce.data = {
index: ne,
argument: ge
}, ce;
}
z || (Q = tt(Q, xe)), Tt(se, le);
}
return he(Q || "", se);
}, i.create = A1, i.createCount = As.createCount, i.onMismatch = de, i.throwMismatchError = de, i.createError = E, i.clear = c, i.clearConversions = l, i.addTypes = u, i._findType = a, i.referTo = Ee, i.referToSelf = Ve, i.convert = p, i.findSignature = f, i.find = m, i.isTypedFunction = d, i.warnAgainstDeprecatedThis = !0, i.addType = function(A, z) {
let q = "any";
z !== !1 && s.has("Object") && (q = "Object"), i.addTypes([A], q);
};
function pn(A) {
if (!A || typeof A.from != "string" || typeof A.to != "string" || typeof A.convert != "function")
throw new TypeError("Object with properties {from: string, to: string, convert: function} expected");
if (A.to === A.from)
throw new SyntaxError('Illegal to define conversion from "' + A.from + '" to itself.');
}
return i.addConversion = function(A) {
let z = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {
override: !1
};
pn(A);
const q = a(A.to), Q = q.conversionsTo.find((se) => se.from === A.from);
if (Q)
if (z && z.override)
i.removeConversion({
from: Q.from,
to: A.to,
convert: Q.convert
});
else
throw new Error('There is already a conversion from "' + A.from + '" to "' + q.name + '"');
q.conversionsTo.push({
from: A.from,
convert: A.convert,
index: o++
});
}, i.addConversions = function(A, z) {
A.forEach((q) => i.addConversion(q, z));
}, i.removeConversion = function(A) {
pn(A);
const z = a(A.to), q = Te(z.conversionsTo, (se) => se.from === A.from);
if (!q)
throw new Error("Attempt to remove nonexistent conversion from " + A.from + " to " + A.to);
if (q.convert !== A.convert)
throw new Error("Conversion to remove does not match existing conversion");
const Q = z.conversionsTo.indexOf(q);
z.conversionsTo.splice(Q, 1);
}, i.resolve = function(A, z) {
if (!d(A))
throw new TypeError(qm);
const q = A._typedFunctionData.signatures;
for (let Q = 0; Q < q.length; ++Q)
if (q[Q].test(z))
return q[Q];
return null;
}, i;
}
const Km = A1();
function St(n) {
return typeof n == "boolean" ? !0 : isFinite(n) ? n === Math.round(n) : !1;
}
function Ih(n, e, t) {
var s = {
2: "0b",
8: "0o",
16: "0x"
}, r = s[e], o = "";
if (t) {
if (t < 1)
throw new Error("size must be in greater than 0");
if (!St(t))
throw new Error("size must be an integer");
if (n > 2 ** (t - 1) - 1 || n < -(2 ** (t - 1)))
throw new Error("Value must be in range [-2^".concat(t - 1, ", 2^").concat(t - 1, "-1]"));
if (!St(n))
throw new Error("Value must be an integer");
n < 0 && (n = n + 2 ** t), o = "i".concat(t);
}
var i = "";
return n < 0 && (n = -n, i = "-"), "".concat(i).concat(r).concat(n.toString(e)).concat(o);
}
function Xh(n, e) {
if (typeof e == "function")
return e(n);
if (n === 1 / 0)
return "Infinity";
if (n === -1 / 0)
return "-Infinity";
if (isNaN(n))
return "NaN";
var t = "auto", s, r;
if (e && (e.notation && (t = e.notation), It(e) ? s = e : It(e.precision) && (s = e.precision), e.wordSize && (r = e.wordSize, typeof r != "number")))
throw new Error('Option "wordSize" must be a number');
switch (t) {
case "fixed":
return F$(n, s);
case "exponential":
return T1(n, s);
case "engineering":
return T$(n, s);
case "bin":
return Ih(n, 2, r);
case "oct":
return Ih(n, 8, r);
case "hex":
return Ih(n, 16, r);
case "auto":
return R$(n, s, e && e).replace(/((\.\d*?)(0+))($|e)/, function() {
var o = arguments[2], i = arguments[4];
return o !== "." ? o + i : i;
});
default:
throw new Error('Unknown notation "' + t + '". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.');
}
}
function Wc(n) {
var e = String(n).toLowerCase().match(/^(-?)(\d+\.?\d*)(e([+-]?\d+))?$/);
if (!e)
throw new SyntaxError("Invalid number " + n);
var t = e[1], s = e[2], r = parseFloat(e[4] || "0"), o = s.indexOf(".");
r += o !== -1 ? o - 1 : s.length - 1;
var i = s.replace(".", "").replace(/^0*/, function(a) {
return r -= a.length, "";
}).replace(/0*$/, "").split("").map(function(a) {
return parseInt(a);
});
return i.length === 0 && (i.push(0), r++), {
sign: t,
coefficients: i,
exponent: r
};
}
function T$(n, e) {
if (isNaN(n) || !isFinite(n))
return String(n);
var t = Wc(n), s = Uc(t, e), r = s.exponent, o = s.coefficients, i = r % 3 === 0 ? r : r < 0 ? r - 3 - r % 3 : r - r % 3;
if (It(e))
for (; e > o.length || r - i + 1 > o.length; )
o.push(0);
else
for (var a = Math.abs(r - i) - (o.length - 1), u = 0; u < a; u++)
o.push(0);
for (var c = Math.abs(r - i), l = 1; c > 0; )
l++, c--;
var h = o.slice(l).join(""), d = It(e) && h.length || h.match(/[1-9]/) ? "." + h : "", f = o.slice(0, l).join("") + d + "e" + (r >= 0 ? "+" : "") + i.toString();
return s.sign + f;
}
function F$(n, e) {
if (isNaN(n) || !isFinite(n))
return String(n);
var t = Wc(n), s = typeof e == "number" ? Uc(t, t.exponent + 1 + e) : t, r = s.coefficients, o = s.exponent + 1, i = o + (e || 0);
return r.length < i && (r = r.concat(Uo(i - r.length))), o < 0 && (r = Uo(-o + 1).concat(r), o = 1), o < r.length && r.splice(o, 0, o === 0 ? "0." : "."), s.sign + r.join("");
}
function T1(n, e) {
if (isNaN(n) || !isFinite(n))
return String(n);
var t = Wc(n), s = e ? Uc(t, e) : t, r = s.coefficients, o = s.exponent;
r.length < e && (r = r.concat(Uo(e - r.length)));
var i = r.shift();
return s.sign + i + (r.length > 0 ? "." + r.join("") : "") + "e" + (o >= 0 ? "+" : "") + o;
}
function R$(n, e, t) {
if (isNaN(n) || !isFinite(n))
return String(n);
var s = t && t.lowerExp !== void 0 ? t.lowerExp : -3, r = t && t.upperExp !== void 0 ? t.upperExp : 5, o = Wc(n), i = e ? Uc(o, e) : o;
if (i.exponent < s || i.exponent >= r)
return T1(n, e);
var a = i.coefficients, u = i.exponent;
a.length < e && (a = a.concat(Uo(e - a.length))), a = a.concat(Uo(u - a.length + 1 + (a.length < e ? e - a.length : 0))), a = Uo(-u).concat(a);
var c = u > 0 ? u : 0;
return c < a.length - 1 && a.splice(c + 1, 0, "."), i.sign + a.join("");
}
function Uc(n, e) {
for (var t = {
sign: n.sign,
coefficients: n.coefficients,
exponent: n.exponent
}, s = t.coefficients; e <= 0; )
s.unshift(0), t.exponent++, e++;
if (s.length > e) {
var r = s.splice(e, s.length - e);
if (r[0] >= 5) {
var o = e - 1;
for (s[o]++; s[o] === 10; )
s.pop(), o === 0 && (s.unshift(0), t.exponent++, o++), o--, s[o]++;
}
}
return t;
}
function Uo(n) {
for (var e = [], t = 0; t < n; t++)
e.push(0);
return e;
}
function _$(n) {
return n.toExponential().replace(/e.*$/, "").replace(/^0\.?0*|\./, "").length;
}
var M$ = Number.EPSILON || 2220446049250313e-31;
function Cr(n, e, t) {
if (t == null)
return n === e;
if (n === e)
return !0;
if (isNaN(n) || isNaN(e))
return !1;
if (isFinite(n) && isFinite(e)) {
var s = Math.abs(n - e);
return s < M$ ? !0 : s <= Math.max(Math.abs(n), Math.abs(e)) * t;
}
return !1;
}
function Sh(n, e, t) {
var s = n.constructor, r = new s(2), o = "";
if (t) {
if (t < 1)
throw new Error("size must be in greater than 0");
if (!St(t))
throw new Error("size must be an integer");
if (n.greaterThan(r.pow(t - 1).sub(1)) || n.lessThan(r.pow(t - 1).mul(-1)))
throw new Error("Value must be in range [-2^".concat(t - 1, ", 2^").concat(t - 1, "-1]"));
if (!n.isInteger())
throw new Error("Value must be an integer");
n.lessThan(0) && (n = n.add(r.pow(t))), o = "i".concat(t);
}
switch (e) {
case 2:
return "".concat(n.toBinary()).concat(o);
case 8:
return "".concat(n.toOctal()).concat(o);
case 16:
return "".concat(n.toHexadecimal()).concat(o);
default:
throw new Error("Base ".concat(e, " not supported "));
}
}
function O$(n, e) {
if (typeof e == "function")
return e(n);
if (!n.isFinite())
return n.isNaN() ? "NaN" : n.gt(0) ? "Infinity" : "-Infinity";
var t = "auto", s, r;
if (e !== void 0 && (e.notation && (t = e.notation), typeof e == "number" ? s = e : e.precision !== void 0 && (s = e.precision), e.wordSize && (r = e.wordSize, typeof r != "number")))
throw new Error('Option "wordSize" must be a number');
switch (t) {
case "fixed":
return L$(n, s);
case "exponential":
return Xm(n, s);
case "engineering":
return B$(n, s);
case "bin":
return Sh(n, 2, r);
case "oct":
return Sh(n, 8, r);
case "hex":
return Sh(n, 16, r);
case "auto": {
var o = e && e.lowerExp !== void 0 ? e.lowerExp : -3, i = e && e.upperExp !== void 0 ? e.upperExp : 5;
if (n.isZero())
return "0";
var a, u = n.toSignificantDigits(s), c = u.e;
return c >= o && c < i ? a = u.toFixed() : a = Xm(n, s), a.replace(/((\.\d*?)(0+))($|e)/, function() {
var l = arguments[2], h = arguments[4];
return l !== "." ? l + h : h;
});
}
default:
throw new Error('Unknown notation "' + t + '". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.');
}
}
function B$(n, e) {
var t = n.e, s = t % 3 === 0 ? t : t < 0 ? t - 3 - t % 3 : t - t % 3, r = n.mul(Math.pow(10, -s)), o = r.toPrecision(e);
if (o.indexOf("e") !== -1) {
var i = n.constructor;
o = new i(o).toFixed();
}
return o + "e" + (t >= 0 ? "+" : "") + s.toString();
}
function Xm(n, e) {
return e !== void 0 ? n.toExponential(e - 1) : n.toExponential();
}
function L$(n, e) {
return n.toFixed(e);
}
function Et(n, e) {
var t = P$(n, e);
return e && typeof e == "object" && "truncate" in e && t.length > e.truncate ? t.substring(0, e.truncate - 3) + "..." : t;
}
function P$(n, e) {
if (typeof n == "number")
return Xh(n, e);
if (zt(n))
return O$(n, e);
if (z$(n))
return !e || e.fraction !== "decimal" ? n.s * n.n + "/" + n.d : n.toString();
if (Array.isArray(n))
return F1(n, e);
if (xs(n))
return jm(n);
if (typeof n == "function")
return n.syntax ? String(n.syntax) : "function";
if (n && typeof n == "object") {
if (typeof n.format == "function")
return n.format(e);
if (n && n.toString(e) !== {}.toString())
return n.toString(e);
var t = Object.keys(n).map((s) => jm(s) + ": " + Et(n[s], e));
return "{" + t.join(", ") + "}";
}
return String(n);
}
function jm(n) {
for (var e = String(n), t = "", s = 0; s < e.length; ) {
var r = e.charAt(s);
t += r in Ym ? Ym[r] : r, s++;
}
return '"' + t + '"';
}
var Ym = {
'"': '\\"',
"\\": "\\\\",
"\b": "\\b",
"\f": "\\f",
"\n": "\\n",
"\r": "\\r",
" ": "\\t"
};
function F1(n, e) {
if (Array.isArray(n)) {
for (var t = "[", s = n.length, r = 0; r < s; r++)
r !== 0 && (t += ", "), t += F1(n[r], e);
return t += "]", t;
} else
return Et(n, e);
}
function z$(n) {
return n && typeof n == "object" && typeof n.s == "number" && typeof n.n == "number" && typeof n.d == "number" || !1;
}
function it(n, e, t) {
if (!(this instanceof it))
throw new SyntaxError("Constructor must be called with the new operator");
this.actual = n, this.expected = e, this.relation = t, this.message = "Dimension mismatch (" + (Array.isArray(n) ? "[" + n.join(", ") + "]" : n) + " " + (this.relation || "!=") + " " + (Array.isArray(e) ? "[" + e.join(", ") + "]" : e) + ")", this.stack = new Error().stack;
}
it.prototype = new RangeError();
it.prototype.constructor = RangeError;
it.prototype.name = "DimensionError";
it.prototype.isDimensionError = !0;
function Ar(n, e, t) {
if (!(this instanceof Ar))
throw new SyntaxError("Constructor must be called with the new operator");
this.index = n, arguments.length < 3 ? (this.min = 0, this.max = e) : (this.min = e, this.max = t), this.min !== void 0 && this.index < this.min ? this.message = "Index out of range (" + this.index + " < " + this.min + ")" : this.max !== void 0 && this.index >= this.max ? this.message = "Index out of range (" + this.index + " > " + (this.max - 1) + ")" : this.message = "Index out of range (" + this.index + ")", this.stack = new Error().stack;
}
Ar.prototype = new RangeError();
Ar.prototype.constructor = RangeError;
Ar.prototype.name = "IndexError";
Ar.prototype.isIndexError = !0;
function At(n) {
for (var e = []; Array.isArray(n); )
e.push(n.length), n = n[0];
return e;
}
function R1(n, e, t) {
var s, r = n.length;
if (r !== e[t])
throw new it(r, e[t]);
if (t < e.length - 1) {
var o = t + 1;
for (s = 0; s < r; s++) {
var i = n[s];
if (!Array.isArray(i))
throw new it(e.length - 1, e.length, "<");
R1(n[s], e, o);
}
} else
for (s = 0; s < r; s++)
if (Array.isArray(n[s]))
throw new it(e.length + 1, e.length, ">");
}
function Zm(n, e) {
var t = e.length === 0;
if (t) {
if (Array.isArray(n))
throw new it(n.length, 0);
} else
R1(n, e, 0);
}
function Ct(n, e) {
if (n !== void 0) {
if (!It(n) || !St(n))
throw new TypeError("Index must be an integer (value: " + n + ")");
if (n < 0 || typeof e == "number" && n >= e)
throw new Ar(n, e);
}
}
function Xi(n, e, t) {
if (!Array.isArray(e))
throw new TypeError("Array expected");
if (e.length === 0)
throw new Error("Resizing to scalar is not supported");
e.forEach(function(r) {
if (!It(r) || !St(r) || r < 0)
throw new TypeError("Invalid size, must contain positive integers (size: " + Et(e) + ")");
}), (It(n) || zt(n)) && (n = [n]);
var s = t !== void 0 ? t : 0;
return jh(n, e, 0, s), n;
}
function jh(n, e, t, s) {
var r, o, i = n.length, a = e[t], u = Math.min(i, a);
if (n.length = a, t < e.length - 1) {
var c = t + 1;
for (r = 0; r < u; r++)
o = n[r], Array.isArray(o) || (o = [o], n[r] = o), jh(o, e, c, s);
for (r = u; r < a; r++)
o = [], n[r] = o, jh(o, e, c, s);
} else {
for (r = 0; r < u; r++)
for (; Array.isArray(n[r]); )
n[r] = n[r][0];
for (r = u; r < a; r++)
n[r] = s;
}
}
function Vd(n, e) {
var t = Yh(n), s = t.length;
if (!Array.isArray(n) || !Array.isArray(e))
throw new TypeError("Array expected");
if (e.length === 0)
throw new it(0, s, "!=");
e = Wd(e, s);
var r = _1(e);
if (s !== r)
throw new it(r, s, "!=");
try {
return V$(t, e);
} catch (o) {
throw o instanceof it ? new it(r, s, "!=") : o;
}
}
function Wd(n, e) {
var t = _1(n), s = n.slice(), r = -1, o = n.indexOf(r), i = n.indexOf(r, o + 1) >= 0;
if (i)
throw new Error("More than one wildcard in sizes");
var a = o >= 0, u = e % t === 0;
if (a)
if (u)
s[o] = -e / t;
else
throw new Error("Could not replace wildcard, since " + e + " is no multiple of " + -t);
return s;
}
function _1(n) {
return n.reduce((e, t) => e * t, 1);
}
function V$(n, e) {
for (var t = n, s, r = e.length - 1; r > 0; r--) {
var o = e[r];
s = [];
for (var i = t.length / o, a = 0; a < i; a++)
s.push(t.slice(a * o, (a + 1) * o));
t = s;
}
return t;
}
function Jm(n, e) {
for (var t = e || At(n); Array.isArray(n) && n.length === 1; )
n = n[0], t.shift();
for (var s = t.length; t[s - 1] === 1; )
s--;
return s < t.length && (n = M1(n, s, 0), t.length = s), n;
}
function M1(n, e, t) {
var s, r;
if (t < e) {
var o = t + 1;
for (s = 0, r = n.length; s < r; s++)
n[s] = M1(n[s], e, o);
} else
for (; Array.isArray(n); )
n = n[0];
return n;
}
function O1(n, e, t, s) {
var r = s || At(n);
if (t)
for (var o = 0; o < t; o++)
n = [n], r.unshift(1);
for (n = B1(n, e, 0); r.length < e; )
r.push(1);
return n;
}
function B1(n, e, t) {
var s, r;
if (Array.isArray(n)) {
var o = t + 1;
for (s = 0, r = n.length; s < r; s++)
n[s] = B1(n[s], e, o);
} else
for (var i = t; i < e; i++)
n = [n];
return n;
}
function Yh(n) {
if (!Array.isArray(n))
return n;
var e = [];
return n.forEach(function t(s) {
Array.isArray(s) ? s.forEach(t) : e.push(s);
}), e;
}
function ji(n, e) {
for (var t, s = 0, r = 0; r < n.length; r++) {
var o = n[r], i = Array.isArray(o);
if (r === 0 && i && (s = o.length), i && o.length !== s)
return;
var a = i ? ji(o, e) : e(o);
if (t === void 0)
t = a;
else if (t !== a)
return "mixed";
}
return t;
}
function L1(n, e, t, s) {
if (s < t) {
if (n.length !== e.length)
throw new it(n.length, e.length);
for (var r = [], o = 0; o < n.length; o++)
r[o] = L1(n[o], e[o], t, s + 1);
return r;
} else
return n.concat(e);
}
function P1() {
var n = Array.prototype.slice.call(arguments, 0, -1), e = Array.prototype.slice.call(arguments, -1);
if (n.length === 1)
return n[0];
if (n.length > 1)
return n.slice(1).reduce(function(t, s) {
return L1(t, s, e, 0);
}, n[0]);
throw new Error("Wrong number of arguments in function concat");
}
function W$() {
for (var n = arguments.length, e = new Array(n), t = 0; t < n; t++)
e[t] = arguments[t];
for (var s = e.map((d) => d.length), r = Math.max(...s), o = new Array(r).fill(null), i = 0; i < e.length; i++)
for (var a = e[i], u = s[i], c = 0; c < u; c++) {
var l = r - u + c;
a[c] > o[l] && (o[l] = a[c]);
}
for (var h = 0; h < e.length; h++)
tc(e[h], o);
return o;
}
function tc(n, e) {
for (var t = e.length, s = n.length, r = 0; r < s; r++) {
var o = t - s + r;
if (n[r] < e[o] && n[r] > 1 || n[r] > e[o])
throw new Error("shape missmatch: missmatch is found in arg with shape (".concat(n, ") not possible to broadcast dimension ").concat(s, " with size ").concat(n[r], " to size ").concat(e[o]));
}
}
function Qm(n, e) {
var t = At(n);
if (jo(t, e))